diff --git a/browser/swagger-core-api-min.js b/browser/swagger-core-api-min.js index 97a6992..33c0d98 100644 --- a/browser/swagger-core-api-min.js +++ b/browser/swagger-core-api-min.js @@ -1,9 +1,9 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SwaggerApi = f()}})(function(){var define,module,exports;return (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;o0&&(e.errors=e.errors.concat(i.errors)),i.warnings.length>0&&(e.warnings=e.warnings.concat(i.warnings))}var e=this;return this.errors=[],this.warnings=[],t(this.plugin.getJSONSchemaValidator()),0===this.errors.length&&(_.forEach(this.plugin.getSemanticValidators(),t),_.forEach(this.customValidators,t)),0===this.errors.length},module.exports={Operation:Operation,Parameter:Parameter,SwaggerApi:SwaggerApi}; -},{"debug":15}],5:[function(require,module,exports){ +},{"debug":16}],5:[function(require,module,exports){ "use strict";var _=window._,Base64=require("js-base64").Base64,stringMocker=require("json-schema-faker/lib/types/string");module.exports["byte"]=function(e,r){var s,t=_.cloneDeep(r);return delete t.format,s=stringMocker(t),Base64.encode(s)},module.exports.password=function(e,r){return stringMocker(r)}; -},{"js-base64":18,"json-schema-faker/lib/types/string":26}],6:[function(require,module,exports){ +},{"js-base64":19,"json-schema-faker/lib/types/string":27}],6:[function(require,module,exports){ "use strict";var _=window._;module.exports.int32=module.exports.int64=function(r){var t,e=!0;if(!_.isNumber(r))try{t=parseInt(r,10)}catch(o){e=!1}return _.isNumber(t)&&(e=t%1===0),e},module.exports["double"]=module.exports["float"]=function(r){var t=!0;if(!_.isNumber(r))try{parseFloat(r)}catch(e){t=!1}return t},module.exports["byte"]=function(r){return _.isString(r)},module.exports.password=function(r){return _.isString(r)}; },{}],7:[function(require,module,exports){ -"use strict";function getParameterSchema(e){var t;return _.isUndefined(e.schema)?(t={},_.each(parameterSchemaProperties,function(r){_.isUndefined(e[r])||(t[r]=e[r])})):t=e.schema,t}var _=window._,formatGenerators=require("./format-generators"),validators=require("./validators"),helpers=require("../../helpers"),JsonRefs=window.JsonRefs,types=require("../../types"),docsUrl="https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md",mocker=helpers.createJSONSchemaMocker({formatGenerators:formatGenerators}),parameterSchemaProperties=["default","description","enum","exclusiveMaximum","exclusiveMinimum","format","items","maxItems","maxLength","maximum","minItems","minLength","minimum","multipleOf","pattern","type","uniqueItems"],supportedHttpMethods=["get","put","post","delete","options","head","patch"],version="2.0";module.exports.documentation=docsUrl,module.exports.supportedHttpMethods=supportedHttpMethods,module.exports.version=version,module.exports.canProcess=function(e){return e.swagger===version},module.exports.createSwaggerApi=function(e,t){return new Promise(function(r,o){JsonRefs.resolveRefs(e,t.loaderOptions||{},function(n,a,s){var i;n?o(n):(i=new types.SwaggerApi(module.exports,e,a,s,t),r(i))})})},module.exports.getJSONSchemaValidator=function(){return validators.jsonSchemaValidator},module.exports.getOperations=function(e){var t=[];return _.forEach(e.resolved.paths,function(r,o){var n=["paths",o],a=_.reduce(r.parameters||{},function(e,t,r){return e[t.name+":"+t["in"]]={path:n.concat(["parameters",r.toString()]),definition:t},e},{});_.forEach(r,function(r,s){if(-1!==_.indexOf(supportedHttpMethods,s)){var i=_.cloneDeep(r),p={},m=n.concat(s);_.forEach(a,function(e,t){p[t]=e}),_.forEach(r.parameters,function(e,t){p[e.name+":"+e["in"]]={path:m.concat(["parameters",t.toString()]),definition:e}}),i.parameters=_.map(_.values(p),function(e){return e.definition.$$$ptr$$$=JsonRefs.pathToPointer(e.path),e.definition}),_.isUndefined(i.security)&&(i.security=e.resolved.security),t.push(new types.Operation(e,o,s,JsonRefs.pathToPointer(m),i))}})}),t},module.exports.getOperationParameters=function(e){return _.map(e.parameters,function(t){var r=t.$$$ptr$$$;return delete t.$$$ptr$$$,new types.Parameter(e,r,t,getParameterSchema(t))})},module.exports.getSample=function(e){return mocker(e)},module.exports.getSemanticValidators=function(){return validators.semanticValidators}; +"use strict";module.exports.supportedHttpMethods=["get","put","post","delete","options","head","patch"]; -},{"../../helpers":2,"../../types":4,"./format-generators":5,"./validators":9}],8:[function(require,module,exports){ +},{}],8:[function(require,module,exports){ +"use strict";function getParameterSchema(e){var r;return _.isUndefined(e.schema)?(r={},_.each(parameterSchemaProperties,function(t){_.isUndefined(e[t])||(r[t]=e[t])})):r=e.schema,r}var _=window._,JsonRefs=window.JsonRefs,formatGenerators=require("./format-generators"),helpers=require("../../helpers"),types=require("../../types"),validators=require("./validators"),vHelpers=require("./helpers"),docsUrl="https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md",mocker=helpers.createJSONSchemaMocker({formatGenerators:formatGenerators}),parameterSchemaProperties=["default","description","enum","exclusiveMaximum","exclusiveMinimum","format","items","maxItems","maxLength","maximum","minItems","minLength","minimum","multipleOf","pattern","type","uniqueItems"],version="2.0";module.exports.documentation=docsUrl,module.exports.supportedHttpMethods=vHelpers.supportedHttpMethods,module.exports.version=version,module.exports.canProcess=function(e){return e.swagger===version},module.exports.createSwaggerApi=function(e,r){return new Promise(function(t,o){JsonRefs.resolveRefs(e,r.loaderOptions||{},function(n,a,s){var i;n?o(n):(i=new types.SwaggerApi(module.exports,e,a,s,r),t(i))})})},module.exports.getJSONSchemaValidator=function(){return validators.jsonSchemaValidator},module.exports.getOperations=function(e){var r=[];return _.forEach(e.resolved.paths,function(t,o){var n=["paths",o],a=_.reduce(t.parameters||{},function(e,r,t){return e[r.name+":"+r["in"]]={path:n.concat(["parameters",t.toString()]),definition:r},e},{});_.forEach(t,function(t,s){if(-1!==_.indexOf(vHelpers.supportedHttpMethods,s)){var i=_.cloneDeep(t),m={},p=n.concat(s);_.forEach(a,function(e,r){m[r]=e}),_.forEach(t.parameters,function(e,r){m[e.name+":"+e["in"]]={path:p.concat(["parameters",r.toString()]),definition:e}}),i.parameters=_.map(_.values(m),function(e){return e.definition.$$$ptr$$$=JsonRefs.pathToPointer(e.path),e.definition}),_.isUndefined(i.security)&&(i.security=e.resolved.security),r.push(new types.Operation(e,o,s,JsonRefs.pathToPointer(p),i))}})}),r},module.exports.getOperationParameters=function(e){return _.map(e.parameters,function(r){var t=r.$$$ptr$$$;return delete r.$$$ptr$$$,new types.Parameter(e,t,r,getParameterSchema(r))})},module.exports.getSample=function(e){return mocker(e)},module.exports.getSemanticValidators=function(){return validators.semanticValidators}; + +},{"../../helpers":2,"../../types":4,"./format-generators":5,"./helpers":7,"./validators":10}],9:[function(require,module,exports){ module.exports={ "title": "A JSON Schema for Swagger 2.0 API.", "id": "http://swagger.io/v2/schema.json#", @@ -1663,313 +1666,313 @@ module.exports={ } } } -},{}],9:[function(require,module,exports){ -"use strict";function validateStructure(a){return helpers.validateAgainstSchema(helpers.createJSONValidator({formatValidators:customFormatValidators}),swaggerSchema,a.resolved)}var customFormatValidators=require("./format-validators"),helpers=require("../../helpers"),swaggerSchema=require("./schema.json");module.exports={jsonSchemaValidator:validateStructure,semanticValidators:[]}; +},{}],10:[function(require,module,exports){ +"use strict";function walkSchema(e,a,r,t){function s(a){return _.indexOf(e,JsonRefs.pathToPointer(a))>-1}function o(a,r){s(r)||(_.forEach(a,function(a,s){_.isNumber(s)&&(s=s.toString()),walkSchema(e,a,r.concat(s),t)}),t(a,r))}var n=a.type||"object";s(r)||(_.isUndefined(a.schema)?"array"!==n||_.isUndefined(a.items)?"object"===n&&(_.isUndefined(a.additionalProperties)||walkSchema(e,a.additionalProperties,r.concat("additionalProperties"),t),_.forEach(["allOf","properties"],function(e){_.isUndefined(a[e])||o(a[e],r.concat(e))})):o(a.items,r.concat("items")):walkSchema(e,a.schema,r.concat("schema"),t),t(a,r))}function validateStructure(e){return helpers.validateAgainstSchema(helpers.createJSONValidator({formatValidators:customFormatValidators}),swaggerSchema,e.resolved)}function validateArrayItems(e){function a(e,a){"array"===e.type&&_.isUndefined(e.items)&&o.errors.push({code:"OBJECT_MISSING_REQUIRED_PROPERTY",message:"Missing required property: items",path:a})}function r(e,r){_.forEach(e,function(e,t){_.isNumber(t)&&(t=t.toString()),walkSchema(s,e,r.concat(t),a)})}function t(e,r){_.forEach(e,function(e,t){var o=r.concat(t);_.forEach(e.headers,function(e,r){walkSchema(s,e,o.concat(["headers",r]),a)}),_.isUndefined(e.schema)||walkSchema(s,e.schema,o.concat("schema"),a)})}var s=_.reduce(e.references,function(e,a,r){var t=JsonRefs.pathFromPointer(r);return t.pop(),e.push(JsonRefs.pathToPointer(t)),e},[]),o={errors:[],warnings:[]};return _.forEach(e.resolved.definitions,function(e,r){walkSchema(s,e,["definitions",r],a)}),r(e.resolved.parameters,["parameters"]),t(e.resolved.responses,["responses"]),_.forEach(e.resolved.paths,function(e,a){var s=["paths",a];r(e.parameters,s.concat("parameters")),_.forEach(e,function(e,a){var o=s.concat(a);-1!==_.indexOf(vHelpers.supportedHttpMethods,a)&&(r(e.parameters,o.concat("parameters")),t(e.responses,o.concat("responses")))})}),o}var _=window._,customFormatValidators=require("./format-validators"),helpers=require("../../helpers"),JsonRefs=window.JsonRefs,swaggerSchema=require("./schema.json"),vHelpers=require("./helpers");module.exports={jsonSchemaValidator:validateStructure,semanticValidators:[validateArrayItems]}; -},{"../../helpers":2,"./format-validators":6,"./schema.json":8}],10:[function(require,module,exports){ +},{"../../helpers":2,"./format-validators":6,"./helpers":7,"./schema.json":9}],11:[function(require,module,exports){ function Buffer(t){return this instanceof Buffer?(this.length=0,this.parent=void 0,"number"==typeof t?fromNumber(this,t):"string"==typeof t?fromString(this,t,arguments.length>1?arguments[1]:"utf8"):fromObject(this,t)):arguments.length>1?new Buffer(t,arguments[1]):new Buffer(t)}function fromNumber(t,e){if(t=allocate(t,0>e?0:0|checked(e)),!Buffer.TYPED_ARRAY_SUPPORT)for(var r=0;e>r;r++)t[r]=0;return t}function fromString(t,e,r){("string"!=typeof r||""===r)&&(r="utf8");var n=0|byteLength(e,r);return t=allocate(t,n),t.write(e,r),t}function fromObject(t,e){if(Buffer.isBuffer(e))return fromBuffer(t,e);if(isArray(e))return fromArray(t,e);if(null==e)throw new TypeError("must start with number, buffer, array or string");return"undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer?fromTypedArray(t,e):e.length?fromArrayLike(t,e):fromJsonObject(t,e)}function fromBuffer(t,e){var r=0|checked(e.length);return t=allocate(t,r),e.copy(t,0,0,r),t}function fromArray(t,e){var r=0|checked(e.length);t=allocate(t,r);for(var n=0;r>n;n+=1)t[n]=255&e[n];return t}function fromTypedArray(t,e){var r=0|checked(e.length);t=allocate(t,r);for(var n=0;r>n;n+=1)t[n]=255&e[n];return t}function fromArrayLike(t,e){var r=0|checked(e.length);t=allocate(t,r);for(var n=0;r>n;n+=1)t[n]=255&e[n];return t}function fromJsonObject(t,e){var r,n=0;"Buffer"===e.type&&isArray(e.data)&&(r=e.data,n=0|checked(r.length)),t=allocate(t,n);for(var i=0;n>i;i+=1)t[i]=255&r[i];return t}function allocate(t,e){Buffer.TYPED_ARRAY_SUPPORT?t=Buffer._augment(new Uint8Array(e)):(t.length=e,t._isBuffer=!0);var r=0!==e&&e<=Buffer.poolSize>>>1;return r&&(t.parent=rootParent),t}function checked(t){if(t>=kMaxLength)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength.toString(16)+" bytes");return 0|t}function SlowBuffer(t,e){if(!(this instanceof SlowBuffer))return new SlowBuffer(t,e);var r=new Buffer(t,e);return delete r.parent,r}function byteLength(t,e){if("string"!=typeof t&&(t=String(t)),0===t.length)return 0;switch(e||"utf8"){case"ascii":case"binary":case"raw":return t.length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*t.length;case"hex":return t.length>>>1;case"utf8":case"utf-8":return utf8ToBytes(t).length;case"base64":return base64ToBytes(t).length;default:return t.length}}function hexWrite(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n),n>i&&(n=i)):n=i;var f=e.length;if(f%2!==0)throw new Error("Invalid hex string");n>f/2&&(n=f/2);for(var o=0;n>o;o++){var u=parseInt(e.substr(2*o,2),16);if(isNaN(u))throw new Error("Invalid hex string");t[r+o]=u}return o}function utf8Write(t,e,r,n){return blitBuffer(utf8ToBytes(e,t.length-r),t,r,n)}function asciiWrite(t,e,r,n){return blitBuffer(asciiToBytes(e),t,r,n)}function binaryWrite(t,e,r,n){return asciiWrite(t,e,r,n)}function base64Write(t,e,r,n){return blitBuffer(base64ToBytes(e),t,r,n)}function ucs2Write(t,e,r,n){return blitBuffer(utf16leToBytes(e,t.length-r),t,r,n)}function base64Slice(t,e,r){return base64.fromByteArray(0===e&&r===t.length?t:t.slice(e,r))}function utf8Slice(t,e,r){var n="",i="";r=Math.min(t.length,r);for(var f=e;r>f;f++)t[f]<=127?(n+=decodeUtf8Char(i)+String.fromCharCode(t[f]),i=""):i+="%"+t[f].toString(16);return n+decodeUtf8Char(i)}function asciiSlice(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;r>i;i++)n+=String.fromCharCode(127&t[i]);return n}function binarySlice(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;r>i;i++)n+=String.fromCharCode(t[i]);return n}function hexSlice(t,e,r){var n=t.length;(!e||0>e)&&(e=0),(!r||0>r||r>n)&&(r=n);for(var i="",f=e;r>f;f++)i+=toHex(t[f]);return i}function utf16leSlice(t,e,r){for(var n=t.slice(e,r),i="",f=0;ft)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function checkInt(t,e,r,n,i,f){if(!Buffer.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");if(e>i||f>e)throw new RangeError("value is out of bounds");if(r+n>t.length)throw new RangeError("index out of range")}function objectWriteUInt16(t,e,r,n){0>e&&(e=65535+e+1);for(var i=0,f=Math.min(t.length-r,2);f>i;i++)t[r+i]=(e&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function objectWriteUInt32(t,e,r,n){0>e&&(e=4294967295+e+1);for(var i=0,f=Math.min(t.length-r,4);f>i;i++)t[r+i]=e>>>8*(n?i:3-i)&255}function checkIEEE754(t,e,r,n,i,f){if(e>i||f>e)throw new RangeError("value is out of bounds");if(r+n>t.length)throw new RangeError("index out of range");if(0>r)throw new RangeError("index out of range")}function writeFloat(t,e,r,n,i){return i||checkIEEE754(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(t,e,r,n,23,4),r+4}function writeDouble(t,e,r,n,i){return i||checkIEEE754(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(t,e,r,n,52,8),r+8}function base64clean(t){if(t=stringtrim(t).replace(INVALID_BASE64_RE,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function stringtrim(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function toHex(t){return 16>t?"0"+t.toString(16):t.toString(16)}function utf8ToBytes(t,e){e=e||1/0;for(var r,n=t.length,i=null,f=[],o=0;n>o;o++){if(r=t.charCodeAt(o),r>55295&&57344>r){if(!i){if(r>56319){(e-=3)>-1&&f.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&f.push(239,191,189);continue}i=r;continue}if(56320>r){(e-=3)>-1&&f.push(239,191,189),i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&((e-=3)>-1&&f.push(239,191,189),i=null);if(128>r){if((e-=1)<0)break;f.push(r)}else if(2048>r){if((e-=2)<0)break;f.push(r>>6|192,63&r|128)}else if(65536>r){if((e-=3)<0)break;f.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(2097152>r))throw new Error("Invalid code point");if((e-=4)<0)break;f.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return f}function asciiToBytes(t){for(var e=[],r=0;r>8,i=r%256,f.push(i),f.push(n);return f}function base64ToBytes(t){return base64.toByteArray(base64clean(t))}function blitBuffer(t,e,r,n){for(var i=0;n>i&&!(i+r>=e.length||i>=t.length);i++)e[i+r]=t[i];return i}function decodeUtf8Char(t){try{return decodeURIComponent(t)}catch(e){return String.fromCharCode(65533)}}var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("is-array");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var kMaxLength=1073741823,rootParent={};Buffer.TYPED_ARRAY_SUPPORT=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(r){return!1}}(),Buffer.isBuffer=function(t){return!(null==t||!t._isBuffer)},Buffer.compare=function(t,e){if(!Buffer.isBuffer(t)||!Buffer.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,f=Math.min(r,n);f>i&&t[i]===e[i];)++i;return i!==f&&(r=t[i],n=e[i]),n>r?-1:r>n?1:0},Buffer.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.concat=function(t,e){if(!isArray(t))throw new TypeError("list argument must be an Array of Buffers.");if(0===t.length)return new Buffer(0);if(1===t.length)return t[0];var r;if(void 0===e)for(e=0,r=0;re&&(e=0),r>this.length&&(r=this.length),e>=r)return"";for(;;)switch(t){case"hex":return hexSlice(this,e,r);case"utf8":case"utf-8":return utf8Slice(this,e,r);case"ascii":return asciiSlice(this,e,r);case"binary":return binarySlice(this,e,r);case"base64":return base64Slice(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}},Buffer.prototype.equals=function(t){if(!Buffer.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?!0:0===Buffer.compare(this,t)},Buffer.prototype.inspect=function(){var t="",e=exports.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},Buffer.prototype.compare=function(t){if(!Buffer.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?0:Buffer.compare(this,t)},Buffer.prototype.indexOf=function(t,e){function r(t,e,r){for(var n=-1,i=0;r+i2147483647?e=2147483647:-2147483648>e&&(e=-2147483648),e>>=0,0===this.length)return-1;if(e>=this.length)return-1;if(0>e&&(e=Math.max(this.length+e,0)),"string"==typeof t)return 0===t.length?-1:String.prototype.indexOf.call(this,t,e);if(Buffer.isBuffer(t))return r(this,t,e);if("number"==typeof t)return Buffer.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,t,e):r(this,[t],e);throw new TypeError("val must be string, number or Buffer")},Buffer.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},Buffer.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},Buffer.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else if(isFinite(e))e=0|e,isFinite(r)?(r=0|r,void 0===n&&(n="utf8")):(n=r,r=void 0);else{var i=n;n=e,e=0|r,r=i}var f=this.length-e;if((void 0===r||r>f)&&(r=f),t.length>0&&(0>r||0>e)||e>this.length)throw new RangeError("attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return hexWrite(this,t,e,r);case"utf8":case"utf-8":return utf8Write(this,t,e,r);case"ascii":return asciiWrite(this,t,e,r);case"binary":return binaryWrite(this,t,e,r);case"base64":return base64Write(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Buffer.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,0>t?(t+=r,0>t&&(t=0)):t>r&&(t=r),0>e?(e+=r,0>e&&(e=0)):e>r&&(e=r),t>e&&(e=t);var n;if(Buffer.TYPED_ARRAY_SUPPORT)n=Buffer._augment(this.subarray(t,e));else{var i=e-t;n=new Buffer(i,void 0);for(var f=0;i>f;f++)n[f]=this[f+t]}return n.length&&(n.parent=this.parent||this),n},Buffer.prototype.readUIntLE=function(t,e,r){t=0|t,e=0|e,r||checkOffset(t,e,this.length);for(var n=this[t],i=1,f=0;++f0&&(i*=256);)n+=this[t+--e]*i;return n},Buffer.prototype.readUInt8=function(t,e){return e||checkOffset(t,1,this.length),this[t]},Buffer.prototype.readUInt16LE=function(t,e){return e||checkOffset(t,2,this.length),this[t]|this[t+1]<<8},Buffer.prototype.readUInt16BE=function(t,e){return e||checkOffset(t,2,this.length),this[t]<<8|this[t+1]},Buffer.prototype.readUInt32LE=function(t,e){return e||checkOffset(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Buffer.prototype.readUInt32BE=function(t,e){return e||checkOffset(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Buffer.prototype.readIntLE=function(t,e,r){t=0|t,e=0|e,r||checkOffset(t,e,this.length);for(var n=this[t],i=1,f=0;++f=i&&(n-=Math.pow(2,8*e)),n},Buffer.prototype.readIntBE=function(t,e,r){t=0|t,e=0|e,r||checkOffset(t,e,this.length);for(var n=e,i=1,f=this[t+--n];n>0&&(i*=256);)f+=this[t+--n]*i;return i*=128,f>=i&&(f-=Math.pow(2,8*e)),f},Buffer.prototype.readInt8=function(t,e){return e||checkOffset(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Buffer.prototype.readInt16LE=function(t,e){e||checkOffset(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt16BE=function(t,e){e||checkOffset(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt32LE=function(t,e){return e||checkOffset(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Buffer.prototype.readInt32BE=function(t,e){return e||checkOffset(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Buffer.prototype.readFloatLE=function(t,e){return e||checkOffset(t,4,this.length),ieee754.read(this,t,!0,23,4)},Buffer.prototype.readFloatBE=function(t,e){return e||checkOffset(t,4,this.length),ieee754.read(this,t,!1,23,4)},Buffer.prototype.readDoubleLE=function(t,e){return e||checkOffset(t,8,this.length),ieee754.read(this,t,!0,52,8)},Buffer.prototype.readDoubleBE=function(t,e){return e||checkOffset(t,8,this.length),ieee754.read(this,t,!1,52,8)},Buffer.prototype.writeUIntLE=function(t,e,r,n){t=+t,e=0|e,r=0|r,n||checkInt(this,t,e,r,Math.pow(2,8*r),0);var i=1,f=0;for(this[e]=255&t;++f=0&&(f*=256);)this[e+i]=t/f&255;return e+r},Buffer.prototype.writeUInt8=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=t,e+1},Buffer.prototype.writeUInt16LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):objectWriteUInt16(this,t,e,!0),e+2},Buffer.prototype.writeUInt16BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):objectWriteUInt16(this,t,e,!1),e+2},Buffer.prototype.writeUInt32LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=t):objectWriteUInt32(this,t,e,!0),e+4},Buffer.prototype.writeUInt32BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):objectWriteUInt32(this,t,e,!1),e+4},Buffer.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e=0|e,!n){var i=Math.pow(2,8*r-1);checkInt(this,t,e,r,i-1,-i)}var f=0,o=1,u=0>t?1:0;for(this[e]=255&t;++f>0)-u&255;return e+r},Buffer.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e=0|e,!n){var i=Math.pow(2,8*r-1);checkInt(this,t,e,r,i-1,-i)}var f=r-1,o=1,u=0>t?1:0;for(this[e+f]=255&t;--f>=0&&(o*=256);)this[e+f]=(t/o>>0)-u&255;return e+r},Buffer.prototype.writeInt8=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),0>t&&(t=255+t+1),this[e]=t,e+1},Buffer.prototype.writeInt16LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):objectWriteUInt16(this,t,e,!0),e+2},Buffer.prototype.writeInt16BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):objectWriteUInt16(this,t,e,!1),e+2},Buffer.prototype.writeInt32LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):objectWriteUInt32(this,t,e,!0),e+4},Buffer.prototype.writeInt32BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,2147483647,-2147483648),0>t&&(t=4294967295+t+1),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):objectWriteUInt32(this,t,e,!1),e+4},Buffer.prototype.writeFloatLE=function(t,e,r){return writeFloat(this,t,e,!0,r)},Buffer.prototype.writeFloatBE=function(t,e,r){return writeFloat(this,t,e,!1,r)},Buffer.prototype.writeDoubleLE=function(t,e,r){return writeDouble(this,t,e,!0,r)},Buffer.prototype.writeDoubleBE=function(t,e,r){return writeDouble(this,t,e,!1,r)},Buffer.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&r>n&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(0>e)throw new RangeError("targetStart out of bounds");if(0>r||r>=this.length)throw new RangeError("sourceStart out of bounds");if(0>n)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-ei||!Buffer.TYPED_ARRAY_SUPPORT)for(var f=0;i>f;f++)t[f+e]=this[f+r];else t._set(this.subarray(r,r+i),e);return i},Buffer.prototype.fill=function(t,e,r){if(t||(t=0),e||(e=0),r||(r=this.length),e>r)throw new RangeError("end < start");if(r!==e&&0!==this.length){if(0>e||e>=this.length)throw new RangeError("start out of bounds");if(0>r||r>this.length)throw new RangeError("end out of bounds");var n;if("number"==typeof t)for(n=e;r>n;n++)this[n]=t;else{var i=utf8ToBytes(t.toString()),f=i.length;for(n=e;r>n;n++)this[n]=i[n%f]}return this}},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(Buffer.TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var t=new Uint8Array(this.length),e=0,r=t.length;r>e;e+=1)t[e]=this[e];return t.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(t){return t.constructor=Buffer,t._isBuffer=!0,t._set=t.set,t.get=BP.get,t.set=BP.set,t.write=BP.write,t.toString=BP.toString,t.toLocaleString=BP.toString,t.toJSON=BP.toJSON,t.equals=BP.equals,t.compare=BP.compare,t.indexOf=BP.indexOf,t.copy=BP.copy,t.slice=BP.slice,t.readUIntLE=BP.readUIntLE,t.readUIntBE=BP.readUIntBE,t.readUInt8=BP.readUInt8,t.readUInt16LE=BP.readUInt16LE,t.readUInt16BE=BP.readUInt16BE,t.readUInt32LE=BP.readUInt32LE,t.readUInt32BE=BP.readUInt32BE,t.readIntLE=BP.readIntLE,t.readIntBE=BP.readIntBE,t.readInt8=BP.readInt8,t.readInt16LE=BP.readInt16LE,t.readInt16BE=BP.readInt16BE,t.readInt32LE=BP.readInt32LE,t.readInt32BE=BP.readInt32BE,t.readFloatLE=BP.readFloatLE,t.readFloatBE=BP.readFloatBE,t.readDoubleLE=BP.readDoubleLE,t.readDoubleBE=BP.readDoubleBE,t.writeUInt8=BP.writeUInt8,t.writeUIntLE=BP.writeUIntLE,t.writeUIntBE=BP.writeUIntBE,t.writeUInt16LE=BP.writeUInt16LE,t.writeUInt16BE=BP.writeUInt16BE,t.writeUInt32LE=BP.writeUInt32LE,t.writeUInt32BE=BP.writeUInt32BE,t.writeIntLE=BP.writeIntLE,t.writeIntBE=BP.writeIntBE,t.writeInt8=BP.writeInt8,t.writeInt16LE=BP.writeInt16LE,t.writeInt16BE=BP.writeInt16BE,t.writeInt32LE=BP.writeInt32LE,t.writeInt32BE=BP.writeInt32BE,t.writeFloatLE=BP.writeFloatLE,t.writeFloatBE=BP.writeFloatBE,t.writeDoubleLE=BP.writeDoubleLE,t.writeDoubleBE=BP.writeDoubleBE,t.fill=BP.fill,t.inspect=BP.inspect,t.toArrayBuffer=BP.toArrayBuffer,t};var INVALID_BASE64_RE=/[^+\/0-9A-z\-]/g; -},{"base64-js":11,"ieee754":12,"is-array":13}],11:[function(require,module,exports){ +},{"base64-js":12,"ieee754":13,"is-array":14}],12:[function(require,module,exports){ var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(t){"use strict";function r(t){var r=t.charCodeAt(0);return r===h||r===u?62:r===c||r===f?63:o>r?-1:o+10>r?r-o+26+26:i+26>r?r-i:A+26>r?r-A+26:void 0}function e(t){function e(t){i[f++]=t}var n,h,c,o,A,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var u=t.length;A="="===t.charAt(u-2)?2:"="===t.charAt(u-1)?1:0,i=new a(3*t.length/4-A),c=A>0?t.length-4:t.length;var f=0;for(n=0,h=0;c>n;n+=4,h+=3)o=r(t.charAt(n))<<18|r(t.charAt(n+1))<<12|r(t.charAt(n+2))<<6|r(t.charAt(n+3)),e((16711680&o)>>16),e((65280&o)>>8),e(255&o);return 2===A?(o=r(t.charAt(n))<<2|r(t.charAt(n+1))>>4,e(255&o)):1===A&&(o=r(t.charAt(n))<<10|r(t.charAt(n+1))<<4|r(t.charAt(n+2))>>2,e(o>>8&255),e(255&o)),i}function n(t){function r(t){return lookup.charAt(t)}function e(t){return r(t>>18&63)+r(t>>12&63)+r(t>>6&63)+r(63&t)}var n,a,h,c=t.length%3,o="";for(n=0,h=t.length-c;h>n;n+=3)a=(t[n]<<16)+(t[n+1]<<8)+t[n+2],o+=e(a);switch(c){case 1:a=t[t.length-1],o+=r(a>>2),o+=r(a<<4&63),o+="==";break;case 2:a=(t[t.length-2]<<8)+t[t.length-1],o+=r(a>>10),o+=r(a>>4&63),o+=r(a<<2&63),o+="="}return o}var a="undefined"!=typeof Uint8Array?Uint8Array:Array,h="+".charCodeAt(0),c="/".charCodeAt(0),o="0".charCodeAt(0),A="a".charCodeAt(0),i="A".charCodeAt(0),u="-".charCodeAt(0),f="_".charCodeAt(0);t.toByteArray=e,t.fromByteArray=n}("undefined"==typeof exports?this.base64js={}:exports); -},{}],12:[function(require,module,exports){ +},{}],13:[function(require,module,exports){ exports.read=function(a,o,t,r,h){var M,p,w=8*h-r-1,f=(1<>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:(s?-1:1)*(1/0);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=0>o||0===o&&0>1/o?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),o+=p+N>=1?n/f:n*Math.pow(2,1-N),o*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l}; -},{}],13:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ var isArray=Array.isArray,str=Object.prototype.toString;module.exports=isArray||function(r){return!!r&&"[object Array]"==str.call(r)}; -},{}],14:[function(require,module,exports){ +},{}],15:[function(require,module,exports){ function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var e=setTimeout(cleanUpNextTick);draining=!0;for(var n=queue.length;n;){for(currentQueue=queue,queue=[];++queueIndex1)for(var r=1;r=31}function formatArgs(){var o=arguments,e=this.useColors;if(o[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+o[0]+(e?"%c ":" ")+"+"+exports.humanize(this.diff),!e)return o;var r="color: "+this.color;o=[o[0],r,"color: inherit"].concat(Array.prototype.slice.call(o,1));var t=0,s=0;return o[0].replace(/%[a-z%]/g,function(o){"%%"!==o&&(t++,"%c"===o&&(s=t))}),o.splice(s,0,r),o}function log(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function save(o){try{null==o?exports.storage.removeItem("debug"):exports.storage.debug=o}catch(e){}}function load(){var o;try{o=exports.storage.debug}catch(e){}return o}function localstorage(){try{return window.localStorage}catch(o){}}exports=module.exports=require("./debug"),exports.log=log,exports.formatArgs=formatArgs,exports.save=save,exports.load=load,exports.useColors=useColors,exports.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:localstorage(),exports.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],exports.formatters.j=function(o){return JSON.stringify(o)},exports.enable(load()); -},{"./debug":16}],16:[function(require,module,exports){ +},{"./debug":17}],17:[function(require,module,exports){ function selectColor(){return exports.colors[prevColor++%exports.colors.length]}function debug(e){function r(){}function o(){var e=o,r=+new Date,s=r-(prevTime||r);e.diff=s,e.prev=prevTime,e.curr=r,prevTime=r,null==e.useColors&&(e.useColors=exports.useColors()),null==e.color&&e.useColors&&(e.color=selectColor());var t=Array.prototype.slice.call(arguments);t[0]=exports.coerce(t[0]),"string"!=typeof t[0]&&(t=["%o"].concat(t));var n=0;t[0]=t[0].replace(/%([a-z%])/g,function(r,o){if("%%"===r)return r;n++;var s=exports.formatters[o];if("function"==typeof s){var p=t[n];r=s.call(e,p),t.splice(n,1),n--}return r}),"function"==typeof exports.formatArgs&&(t=exports.formatArgs.apply(e,t));var p=o.log||exports.log||console.log.bind(console);p.apply(e,t)}r.enabled=!1,o.enabled=!0;var s=exports.enabled(e)?o:r;return s.namespace=e,s}function enable(e){exports.save(e);for(var r=(e||"").split(/[\s,]+/),o=r.length,s=0;o>s;s++)r[s]&&(e=r[s].replace(/\*/g,".*?"),"-"===e[0]?exports.skips.push(new RegExp("^"+e.substr(1)+"$")):exports.names.push(new RegExp("^"+e+"$")))}function disable(){exports.enable("")}function enabled(e){var r,o;for(r=0,o=exports.skips.length;o>r;r++)if(exports.skips[r].test(e))return!1;for(r=0,o=exports.names.length;o>r;r++)if(exports.names[r].test(e))return!0;return!1}function coerce(e){return e instanceof Error?e.stack||e.message:e}exports=module.exports=debug,exports.coerce=coerce,exports.disable=disable,exports.enable=enable,exports.enabled=enabled,exports.humanize=require("ms"),exports.names=[],exports.skips=[],exports.formatters={};var prevColor=0,prevTime; -},{"ms":17}],17:[function(require,module,exports){ +},{"ms":18}],18:[function(require,module,exports){ function parse(e){if(e=""+e,!(e.length>1e4)){var a=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(a){var r=parseFloat(a[1]),c=(a[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return r*y;case"days":case"day":case"d":return r*d;case"hours":case"hour":case"hrs":case"hr":case"h":return r*h;case"minutes":case"minute":case"mins":case"min":case"m":return r*m;case"seconds":case"second":case"secs":case"sec":case"s":return r*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r}}}}function short(e){return e>=d?Math.round(e/d)+"d":e>=h?Math.round(e/h)+"h":e>=m?Math.round(e/m)+"m":e>=s?Math.round(e/s)+"s":e+"ms"}function long(e){return plural(e,d,"day")||plural(e,h,"hour")||plural(e,m,"minute")||plural(e,s,"second")||e+" ms"}function plural(s,e,a){return e>s?void 0:1.5*e>s?Math.floor(s/e)+" "+a:Math.ceil(s/e)+" "+a+"s"}var s=1e3,m=60*s,h=60*m,d=24*h,y=365.25*d;module.exports=function(s,e){return e=e||{},"string"==typeof s?parse(s):e["long"]?long(s):short(s)}; -},{}],18:[function(require,module,exports){ +},{}],19:[function(require,module,exports){ !function(t){"use strict";var r,e=t.Base64,n="2.1.8";"undefined"!=typeof module&&module.exports&&(r=require("buffer").Buffer);var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=function(t){for(var r={},e=0,n=t.length;n>e;e++)r[t.charAt(e)]=e;return r}(o),u=String.fromCharCode,a=function(t){if(t.length<2){var r=t.charCodeAt(0);return 128>r?t:2048>r?u(192|r>>>6)+u(128|63&r):u(224|r>>>12&15)+u(128|r>>>6&63)+u(128|63&r)}var r=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return u(240|r>>>18&7)+u(128|r>>>12&63)+u(128|r>>>6&63)+u(128|63&r)},i=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,f=function(t){return t.replace(i,a)},h=function(t){var r=[0,2,1][t.length%3],e=t.charCodeAt(0)<<16|(t.length>1?t.charCodeAt(1):0)<<8|(t.length>2?t.charCodeAt(2):0),n=[o.charAt(e>>>18),o.charAt(e>>>12&63),r>=2?"=":o.charAt(e>>>6&63),r>=1?"=":o.charAt(63&e)];return n.join("")},d=t.btoa?function(r){return t.btoa(r)}:function(t){return t.replace(/[\s\S]{1,3}/g,h)},s=r?function(t){return(t.constructor===r.constructor?t:new r(t)).toString("base64")}:function(t){return d(f(t))},g=function(t,r){return r?s(String(t)).replace(/[+\/]/g,function(t){return"+"==t?"-":"_"}).replace(/=/g,""):s(String(t))},A=function(t){return g(t,!0)},l=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"g"),p=function(t){switch(t.length){case 4:var r=(7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3),e=r-65536;return u((e>>>10)+55296)+u((1023&e)+56320);case 3:return u((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return u((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},C=function(t){return t.replace(l,p)},b=function(t){var r=t.length,e=r%4,n=(r>0?c[t.charAt(0)]<<18:0)|(r>1?c[t.charAt(1)]<<12:0)|(r>2?c[t.charAt(2)]<<6:0)|(r>3?c[t.charAt(3)]:0),o=[u(n>>>16),u(n>>>8&255),u(255&n)];return o.length-=[0,0,2,1][e],o.join("")},B=t.atob?function(r){return t.atob(r)}:function(t){return t.replace(/[\s\S]{1,4}/g,b)},S=r?function(t){return(t.constructor===r.constructor?t:new r(t,"base64")).toString()}:function(t){return C(B(t))},v=function(t){return S(String(t).replace(/[-_]/g,function(t){return"-"==t?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))},y=function(){var r=t.Base64;return t.Base64=e,r};if(t.Base64={VERSION:n,atob:B,btoa:d,fromBase64:v,toBase64:g,utob:f,encode:g,encodeURI:A,btou:C,decode:v,noConflict:y},"function"==typeof Object.defineProperty){var j=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}};t.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",j(function(){return v(this)})),Object.defineProperty(String.prototype,"toBase64",j(function(t){return g(this,t)})),Object.defineProperty(String.prototype,"toBase64URI",j(function(){return g(this,!0)}))}}t.Meteor&&(Base64=t.Base64)}(this); -},{"buffer":10}],19:[function(require,module,exports){ +},{"buffer":11}],20:[function(require,module,exports){ "use strict";function generate(e,r){var t=deref();try{return Array.isArray(r)?traverse(t(e,r,!0)):(t.refs=r||{},traverse(t(e,!0)))}catch(a){throw a.path?new Error(a.message+" in /"+a.path.join("/")):a}}var container=require("./util/container"),traverse=require("./util/traverse"),formats=require("./util/formats"),deref=require("deref");generate.formats=formats,generate.extend=container.set,module.exports=generate; -},{"./util/container":28,"./util/formats":30,"./util/traverse":35,"deref":37}],20:[function(require,module,exports){ +},{"./util/container":29,"./util/formats":31,"./util/traverse":36,"deref":38}],21:[function(require,module,exports){ "use strict";function unique(r,e,t,i){function s(r){var e=JSON.stringify(r);-1===n.indexOf(e)&&(n.push(e),a.push(r))}var a=[],n=[];e.forEach(s);for(var o=100;a.length!==e.length&&(s(traverse(t.items||i,r)),o--););return a}var random=require("../util/random"),traverse=require("../util/traverse"),hasProps=require("../util/has-props"),ParseError=require("../util/error");module.exports=function(r,e){var t=[];if(!r.items&&!r.additionalItems){if(hasProps(r,"minItems","maxItems","uniqueItems"))throw new ParseError("missing items for "+JSON.stringify(r),e);return t}if(Array.isArray(r.items))return Array.prototype.concat.apply(t,r.items.map(function(r,t){return traverse(r,e.concat(["items",t]))}));for(var i=random(r.minItems,r.maxItems,1,5),s="object"==typeof r.additionalItems?r.additionalItems:{},a=t.length;i>a;a+=1)t.push(traverse(r.items||s,e.concat(["items",a])));return r.uniqueItems?unique(e.concat(["items"]),t,r,s):t}; -},{"../util/error":29,"../util/has-props":31,"../util/random":34,"../util/traverse":35}],21:[function(require,module,exports){ +},{"../util/error":30,"../util/has-props":32,"../util/random":35,"../util/traverse":36}],22:[function(require,module,exports){ "use strict";module.exports=function(){return Math.random()>.5}; -},{}],22:[function(require,module,exports){ +},{}],23:[function(require,module,exports){ "use strict";var number=require("./number");module.exports=function(r){return r.hasPrecision=!1,Math.floor(number(r))}; -},{"./number":24}],23:[function(require,module,exports){ +},{"./number":25}],24:[function(require,module,exports){ "use strict";module.exports=function(){return null}; -},{}],24:[function(require,module,exports){ +},{}],25:[function(require,module,exports){ "use strict";var MIN_INTEGER=-1e8,MAX_INTEGER=1e8,string=require("./string"),random=require("../util/random");module.exports=function(m){if(m.faker||m.chance)return string(m);var i="undefined"==typeof m.minimum?MIN_INTEGER:m.minimum,e="undefined"==typeof m.maximum?MAX_INTEGER:m.maximum;if(m.exclusiveMinimum&&m.minimum&&(i+=1),m.exclusiveMaximum&&m.maximum&&(e-=1),m.multipleOf){for(var r=random(Math.floor(i/m.multipleOf),Math.floor(e/m.multipleOf))*m.multipleOf;i>r;)r+=m.multipleOf;return r}return m.hasPrecision?random(!1,i,e):random(Math.random()>.5,i,e)}; -},{"../util/random":34,"./string":26}],25:[function(require,module,exports){ +},{"../util/random":35,"./string":27}],26:[function(require,module,exports){ "use strict";var container=require("../util/container"),random=require("../util/random"),traverse=require("../util/traverse"),hasProps=require("../util/has-props"),faker=container.get("faker"),RandExp=container.get("randexp"),randexp=RandExp.randexp,ParseError=require("../util/error");module.exports=function(r,e){var t={};if(!(r.properties||r.patternProperties||r.additionalProperties)){if(hasProps(r,"minProperties","maxProperties","dependencies","required"))throw new ParseError("missing properties for "+JSON.stringify(r),e);return t}var i=r.required||[],o=r.properties?Object.keys(r.properties):[];i.forEach(function(e){r.properties&&r.properties[e]&&(t[e]=r.properties[e])});var p=o.filter(function(r){return-1===i.indexOf(r)});r.patternProperties&&(p=Array.prototype.concat.apply(p,Object.keys(r.patternProperties)));var a=random(r.minProperties,r.maxProperties,0,p.length);random.shuffle(p).slice(0,a).forEach(function(e){r.properties&&r.properties[e]?t[e]=r.properties[e]:t[randexp(e)]=r.patternProperties[e]});var n=Object.keys(t).length,s="object"==typeof r.additionalProperties?r.additionalProperties:{};return a>n&&faker.lorem.words(a-n).forEach(function(r){t[r+randexp("\\w{1,10}")]=s}),traverse(t,e.concat(["properties"]))}; -},{"../util/container":28,"../util/error":29,"../util/has-props":31,"../util/random":34,"../util/traverse":35}],26:[function(require,module,exports){ +},{"../util/container":29,"../util/error":30,"../util/has-props":32,"../util/random":35,"../util/traverse":36}],27:[function(require,module,exports){ "use strict";function get(e,r){for(var n=r.split(".");n.length;){var a=n.shift();if(!e[a])break;e=e[a]}return e}function generate(e){if(e.use){var r=[],n=e.key;"object"==typeof n&&(n=Object.keys(n)[0],Array.isArray(e.key[n])?r=e.key[n]:r.push(e.key[n]));var a=get(e.gen,n);if("function"!=typeof a)throw new Error("unknown "+e.use+"-generator for "+JSON.stringify(e.key));return a.apply(e.gen,r)}switch(e.format){case"date-time":return new Date(random(0,1e14)).toISOString();case"email":case"hostname":case"ipv6":case"uri":return randexp(regexps[e.format]).replace(/\{(\w+)\}/,function(e,r){return randexp(regexps[r])});case"ipv4":return[0,0,0,0].map(function(){return random(0,255)}).join(".");default:var t=formats(e.format);if("function"!=typeof t)throw new Error("unknown generator for "+JSON.stringify(e.format));var o={faker:faker,chance:chance,randexp:randexp};return t(o,e)}}var container=require("../util/container"),faker=container.get("faker"),Chance=container.get("chance"),RandExp=container.get("randexp"),chance=new Chance,randexp=RandExp.randexp,random=require("../util/random"),formats=require("../util/formats"),regexps={email:"[a-zA-Z\\d][a-zA-Z\\d-]{1,13}[a-zA-Z\\d]@{hostname}",hostname:"[a-zA-Z]{1,33}\\.[a-z]{2,4}",ipv6:"[abcdef\\d]{4}(:[abcdef\\d]{4}){7}",uri:"[a-zA-Z\\d_][\\w\\/\\d_-]{1,40}"};module.exports=function(e){if(e.faker||e.chance)return generate({use:e.faker?"faker":"chance",gen:e.faker?faker:chance,key:e.faker||e.chance});if(e.format)return generate(e);if(e.pattern)return randexp(e.pattern);if(e.minLength||e.maxLength){var r=Math.max(0,e.minLength||0),n=random(r,e.maxLength);return randexp(".{"+r+","+n+"}")}return faker.lorem.words(random(1,5)).join(" ")}; -},{"../util/container":28,"../util/formats":30,"../util/random":34}],27:[function(require,module,exports){ +},{"../util/container":29,"../util/formats":31,"../util/random":35}],28:[function(require,module,exports){ "use strict";function combine(o){var r=Array.prototype.slice.call(arguments,1);r.forEach(function(r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(o[t]=r[t])})}module.exports=combine; -},{}],28:[function(require,module,exports){ +},{}],29:[function(require,module,exports){ "use strict";var container={faker:require("faker"),chance:require("chance"),randexp:require("randexp")};module.exports={set:function(e,n){if("undefined"==typeof container[e])throw new ReferenceError('"'+e+"\" dependency doesn't exist.");container[e]=n(container[e])},get:function(e){return container[e]}}; -},{"chance":36,"faker":43,"randexp":87}],29:[function(require,module,exports){ +},{"chance":37,"faker":44,"randexp":88}],30:[function(require,module,exports){ "use strict";function ParseError(r,e){this.message=r,this.path=e,this.name="ParseError"}ParseError.prototype=Error.prototype,module.exports=ParseError; -},{}],30:[function(require,module,exports){ +},{}],31:[function(require,module,exports){ "use strict";var registry={};module.exports=function(r,e){if(e)registry[r]=e;else if("object"==typeof r)for(var t in r)registry[t]=r[t];else if(r)return registry[r];return registry}; -},{}],31:[function(require,module,exports){ +},{}],32:[function(require,module,exports){ "use strict";module.exports=function(e){return Array.prototype.slice.call(arguments,1).filter(function(t){return"undefined"!=typeof e[t]}).length>0}; -},{}],32:[function(require,module,exports){ +},{}],33:[function(require,module,exports){ "use strict";function mayHaveType(e,r){return Object.keys(e).filter(function(e){return r.indexOf(e)>-1}).length>0}var inferredProperties={array:["additionalItems","items","maxItems","minItems","uniqueItems"],integer:["exclusiveMaximum","exclusiveMinimum","maximum","minimum","multipleOf"],object:["additionalProperties","dependencies","maxProperties","minProperties","patternProperties","properties","required"],string:["maxLength","menlength","pattern"]};inferredProperties.number=inferredProperties.integer,module.exports=function(e){for(var r in inferredProperties)if(mayHaveType(e,inferredProperties[r]))return r}; -},{}],33:[function(require,module,exports){ +},{}],34:[function(require,module,exports){ "use strict";module.exports={array:require("../types/array"),"boolean":require("../types/boolean"),integer:require("../types/integer"),number:require("../types/number"),"null":require("../types/null"),object:require("../types/object"),string:require("../types/string")}; -},{"../types/array":20,"../types/boolean":21,"../types/integer":22,"../types/null":23,"../types/number":24,"../types/object":25,"../types/string":26}],34:[function(require,module,exports){ +},{"../types/array":21,"../types/boolean":22,"../types/integer":23,"../types/null":24,"../types/number":25,"../types/object":26,"../types/string":27}],35:[function(require,module,exports){ "use strict";var container=require("./container"),faker=container.get("faker"),random=module.exports=function(n,r,e,a){var o=!0;return"boolean"==typeof n&&(o=n,n=arguments[1],r=arguments[2],e=arguments[3],a=arguments[4]),e="undefined"==typeof e?random.MIN_NUMBER:e,a="undefined"==typeof a?random.MAX_NUMBER:a,n="undefined"==typeof n?e:n,r="undefined"==typeof r?a:r,n>r&&(r+=n),faker.random.number({min:n,max:Math.max(r,n+1),precision:o?1:Math.random()})};random.shuffle=function(n){for(var r=n.slice(),e=n.length;e>0;){var a=Math.floor(Math.random()*e),o=r[--e];r[e]=r[a],r[a]=o}return r},random.pick=function(n){return n[Math.floor(Math.random()*n.length)]},random.MIN_NUMBER=-100,random.MAX_NUMBER=100; -},{"./container":28}],35:[function(require,module,exports){ +},{"./container":29}],36:[function(require,module,exports){ "use strict";function reduce(r){var e=r.allOf||r.anyOf||r.oneOf;if(e&&e.length){(r.oneOf||r.anyOf)&&e.length&&(e=[random.pick(e)]),delete r.allOf,delete r.anyOf,delete r.oneOf;var n={};for(e.forEach(function(r){combine(n,r)}),combine(r,n);r.allOf||r.anyOf||r.oneOf;)reduce(r)}else for(var i in r){var a=r[i];"object"==typeof a&&"enum"!==i&&"required"!==i&&reduce(a)}}function traverse(r,e){var n=require("./primitives"),i={};if(Array.isArray(r)&&(i=[]),e=e||[],reduce(r),Array.isArray(r["enum"]))return random.pick(r["enum"]);var a=r.type;if(Array.isArray(a)?a=random.pick(a):"undefined"==typeof a&&(a=inferredType(r)||a),"string"==typeof a){if(!n[a])throw new ParseError("unknown primitive "+JSON.stringify(a),e.concat(["type"]));try{return n[a](r,e)}catch(o){if("undefined"==typeof o.path)throw new ParseError(o.message,e);throw o}}for(var t in r){var f=r[t];"object"==typeof f?i[t]=traverse(f,e.concat([t])):i[t]=f}return i}var random=require("./random"),combine=require("./combine"),ParseError=require("./error"),inferredType=require("./inferred");module.exports=traverse; -},{"./combine":27,"./error":29,"./inferred":32,"./primitives":33,"./random":34}],36:[function(require,module,exports){ +},{"./combine":28,"./error":30,"./inferred":33,"./primitives":34,"./random":35}],37:[function(require,module,exports){ (function (Buffer){ !function(){function a(e){if(!(this instanceof a))return null==e?new a:new a(e);if("function"==typeof e)return this.random=e,this;var n;arguments.length&&(this.seed=0);for(var i=0;it;t++)n=i[t],e[n]=a[n]||e[n]}function r(a,e){for(var n=0,i=a.length;i>n;n++)e[n]=a[n]}function o(a,e){var n=Array.isArray(a),i=e||(n?new Array(a.length):{});return n?r(a,i):t(a,i),i}var s=9007199254740992,m=-s,l="0123456789",h="abcdefghijklmnopqrstuvwxyz",b=h.toUpperCase(),c=l+"abcdef",u=Array.prototype.slice;a.prototype.VERSION="0.7.5";var d=function(){throw new Error("No Base64 encoder available.")};!function(){"function"==typeof btoa?d=btoa:"function"==typeof Buffer&&(d=function(a){return new Buffer(a).toString("base64")})}(),a.prototype.bool=function(a){return a=e(a,{likelihood:50}),n(a.likelihood<0||a.likelihood>100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()r,"Chance: Max specified is out of range with fixed. Max should be, at most, "+r),a=e(a,{min:o,max:r}),i=this.integer({min:a.min*t,max:a.max*t});var m=(i/t).toFixed(a.fixed);return parseFloat(m)},a.prototype.integer=function(a){return a=e(a,{min:m,max:s}),n(a.min>a.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(a.max-a.min+1)+a.min)},a.prototype.natural=function(a){return a=e(a,{min:0,max:s}),n(a.min<0,"Chance: Min cannot be less than zero."),this.integer(a)},a.prototype.string=function(a){a=e(a,{length:this.natural({min:5,max:20})}),n(a.length<0,"Chance: Length cannot be less than zero.");var i=a.length,t=this.n(this.character,i,a);return t.join("")},a.prototype.capitalize=function(a){return a.charAt(0).toUpperCase()+a.substr(1)},a.prototype.mixin=function(e){for(var n in e)a.prototype[n]=e[n];return this},a.prototype.unique=function(a,i,t){n("function"!=typeof a,"Chance: The first argument must be a function."),t=e(t,{comparator:function(a,e){return-1!==a.indexOf(e)}});for(var r,o=[],s=0,m=50*i,l=u.call(arguments,2);o.lengthm)throw new RangeError("Chance: num is likely too large for sample set");return o},a.prototype.n=function(a,e){n("function"!=typeof a,"Chance: The first argument must be a function."),"undefined"==typeof e&&(e=1);var i=e,t=[],r=u.call(arguments,2);for(i=Math.max(0,i),null;i--;null)t.push(a.apply(this,r));return t},a.prototype.pad=function(a,e,n){return n=n||"0",a+="",a.length>=e?a:new Array(e-a.length+1).join(n)+a},a.prototype.pick=function(a,e){if(0===a.length)throw new RangeError("Chance: Cannot pick() from an empty array");return e&&1!==e?this.shuffle(a).slice(0,e):a[this.natural({max:a.length-1})]},a.prototype.shuffle=function(a){for(var e=a.slice(0),n=[],i=0,t=Number(e.length),r=0;t>r;r++)i=this.natural({max:e.length-1}),n[r]=e[i],e.splice(i,1);return n},a.prototype.weighted=function(a,e){if(a.length!==e.length)throw new RangeError("Chance: length of array and weights must match");for(var n=e.length-1;n>=0;--n)e[n]<=0&&(a.splice(n,1),e.splice(n,1));if(e.some(function(a){return 1>a})){var i=e.reduce(function(a,e){return a>e?e:a},e[0]),t=1/i;e=e.map(function(a){return a*t})}var r,o=e.reduce(function(a,e){return a+e},0),s=this.natural({min:1,max:o}),m=0;return e.some(function(e,n){return m+e>=s?(r=a[n],!0):(m+=e,!1)}),r},a.prototype.paragraph=function(a){a=e(a);var n=a.sentences||this.natural({min:3,max:7}),i=this.n(this.sentence,n);return i.join(" ")},a.prototype.sentence=function(a){a=e(a);var n,i=a.words||this.natural({min:12,max:18}),t=this.n(this.word,i);return n=t.join(" "),n=this.capitalize(n)+"."},a.prototype.syllable=function(a){a=e(a);for(var n,i=a.length||this.natural({min:2,max:3}),t="bcdfghjklmnprstvwz",r="aeiou",o=t+r,s="",m=0;i>m;m++)n=this.character(0===m?{pool:o}:-1===t.indexOf(n)?{pool:t}:{pool:r}),s+=n;return s},a.prototype.word=function(a){a=e(a),n(a.syllables&&a.length,"Chance: Cannot specify both syllables AND length.");var i=a.syllables||this.natural({min:1,max:3}),t="";if(a.length){do t+=this.syllable();while(t.lengthr;r++)t+=this.syllable();return t},a.prototype.age=function(a){a=e(a);var n;switch(a.type){case"child":n={min:1,max:12};break;case"teen":n={min:13,max:19};break;case"adult":n={min:18,max:65};break;case"senior":n={min:65,max:100};break;case"all":n={min:1,max:100};break;default:n={min:18,max:65}}return this.natural(n)},a.prototype.birthday=function(a){return a=e(a,{year:(new Date).getFullYear()-this.age(a)}),this.date(a)},a.prototype.cpf=function(){var a=this.n(this.natural,9,{max:9}),e=2*a[8]+3*a[7]+4*a[6]+5*a[5]+6*a[4]+7*a[3]+8*a[2]+9*a[1]+10*a[0];e=11-e%11,e>=10&&(e=0);var n=2*e+3*a[8]+4*a[7]+5*a[6]+6*a[5]+7*a[4]+8*a[3]+9*a[2]+10*a[1]+11*a[0];return n=11-n%11,n>=10&&(n=0),""+a[0]+a[1]+a[2]+"."+a[3]+a[4]+a[5]+"."+a[6]+a[7]+a[8]+"-"+e+n},a.prototype.first=function(a){return a=e(a,{gender:this.gender()}),this.pick(this.get("firstNames")[a.gender.toLowerCase()])},a.prototype.gender=function(){return this.pick(["Male","Female"])},a.prototype.last=function(){return this.pick(this.get("lastNames"))},a.prototype.mrz=function(a){var n=function(a){var e="0?"."+this.pick(a.extensions):"",i=a.domain_prefix?a.domain_prefix+"."+a.domain:a.domain;return a.protocol+"://"+i+"/"+a.path+n},a.prototype.address=function(a){return a=e(a),this.natural({min:5,max:2e3})+" "+this.street(a)},a.prototype.altitude=function(a){return a=e(a,{fixed:5,min:0,max:8848}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.areacode=function(a){a=e(a,{parens:!0});var n=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return a.parens?"("+n+")":n},a.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},a.prototype.coordinates=function(a){return this.latitude(a)+", "+this.longitude(a)},a.prototype.countries=function(){return this.get("countries")},a.prototype.country=function(a){a=e(a);var n=this.pick(this.countries());return a.full?n.name:n.abbreviation},a.prototype.depth=function(a){return a=e(a,{fixed:5,min:-2550,max:0}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.geohash=function(a){return a=e(a,{length:7}),this.string({length:a.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},a.prototype.geojson=function(a){return this.latitude(a)+", "+this.longitude(a)+", "+this.altitude(a)},a.prototype.latitude=function(a){return a=e(a,{fixed:5,min:-90,max:90}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.longitude=function(a){return a=e(a,{fixed:5,min:-180,max:180}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.phone=function(a){var n,i=this,t=function(a){var e=[];return a.sections.forEach(function(a){e.push(i.string({pool:"0123456789",length:a}))}),a.area+e.join(" ")};a=e(a,{formatted:!0,country:"us",mobile:!1}),a.formatted||(a.parens=!1);var r;switch(a.country){case"fr":a.mobile?(n=this.pick(["06","07"])+i.string({pool:"0123456789",length:8}),r=a.formatted?n.match(/../g).join(" "):n):(n=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+i.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+i.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+i.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+i.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+i.string({pool:"0123456789",length:6}),"09"+i.string({pool:"0123456789",length:8})]),r=a.formatted?n.match(/../g).join(" "):n);break;case"uk":a.mobile?(n=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),r=a.formatted?t(n):t(n).replace(" ","")):(n=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[5]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[5]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[5]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[5]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[5]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[5]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[5]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[5]}]),r=a.formatted?t(n):t(n).replace(" ","","g"));break;case"us":var o=this.areacode(a).toString(),s=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),m=this.natural({min:1e3,max:9999}).toString();r=a.formatted?o+" "+s+"-"+m:o+s+m}return r},a.prototype.postal=function(){var a=this.character({pool:"XVTSRPNKLMHJGECBA"}),e=a+this.natural({max:9})+this.character({alpha:!0,casing:"upper"}),n=this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9});return e+" "+n},a.prototype.provinces=function(){return this.get("provinces")},a.prototype.province=function(a){return a&&a.full?this.pick(this.provinces()).name:this.pick(this.provinces()).abbreviation},a.prototype.state=function(a){return a&&a.full?this.pick(this.states(a)).name:this.pick(this.states(a)).abbreviation},a.prototype.states=function(a){a=e(a);var n,i=this.get("us_states_and_dc"),t=this.get("territories"),r=this.get("armed_forces");return n=i,a.territories&&(n=n.concat(t)),a.armed_forces&&(n=n.concat(r)),n},a.prototype.street=function(a){a=e(a);var n=this.word({syllables:2});return n=this.capitalize(n),n+=" ",n+=a.short_suffix?this.street_suffix().abbreviation:this.street_suffix().name},a.prototype.street_suffix=function(){return this.pick(this.street_suffixes())},a.prototype.street_suffixes=function(){return this.get("street_suffixes")},a.prototype.zip=function(a){var e=this.n(this.natural,5,{max:9});return a&&a.plusfour===!0&&(e.push("-"),e=e.concat(this.n(this.natural,4,{max:9}))),e.join("")},a.prototype.ampm=function(){return this.bool()?"am":"pm"},a.prototype.date=function(a){var n,i;if(a&&(a.min||a.max)){a=e(a,{american:!0,string:!1});var t="undefined"!=typeof a.min?a.min.getTime():1,r="undefined"!=typeof a.max?a.max.getTime():864e13;i=new Date(this.natural({min:t,max:r}))}else{var o=this.month({raw:!0}),s=o.days;a&&a.month&&(s=this.get("months")[(a.month%12+12)%12].days),a=e(a,{year:parseInt(this.year(),10),month:o.numeric-1,day:this.natural({min:1,max:s}),hour:this.hour(),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),i=new Date(a.year,a.month,a.day,a.hour,a.minute,a.second,a.millisecond)}return n=a.american?i.getMonth()+1+"/"+i.getDate()+"/"+i.getFullYear():i.getDate()+"/"+(i.getMonth()+1)+"/"+i.getFullYear(),a.string?n:i},a.prototype.hammertime=function(a){return this.date(a).getTime()},a.prototype.hour=function(a){return a=e(a,{min:1,max:a&&a.twentyfour?24:12}),n(a.min<1,"Chance: Min cannot be less than 1."),n(a.twentyfour&&a.max>24,"Chance: Max cannot be greater than 24 for twentyfour option."),n(!a.twentyfour&&a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.millisecond=function(){return this.natural({max:999})},a.prototype.minute=a.prototype.second=function(a){return a=e(a,{min:0,max:59}),n(a.min<0,"Chance: Min cannot be less than 0."),n(a.max>59,"Chance: Max cannot be greater than 59."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.month=function(a){a=e(a,{min:1,max:12}),n(a.min<1,"Chance: Min cannot be less than 1."),n(a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max.");var i=this.pick(this.months().slice(a.min-1,a.max));return a.raw?i:i.name},a.prototype.months=function(){return this.get("months")},a.prototype.second=function(){return this.natural({max:59})},a.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},a.prototype.year=function(a){return a=e(a,{min:(new Date).getFullYear()}),a.max="undefined"!=typeof a.max?a.max:a.min+100,this.natural(a).toString()},a.prototype.cc=function(a){a=e(a);var n,i,t;return n=this.cc_type(a.type?{name:a.type,raw:!0}:{raw:!0}),i=n.prefix.split(""),t=n.length-n.prefix.length-1,i=i.concat(this.n(this.integer,t,{min:0,max:9})),i.push(this.luhn_calculate(i.join(""))),i.join("")},a.prototype.cc_types=function(){return this.get("cc_types")},a.prototype.cc_type=function(a){a=e(a);var n=this.cc_types(),i=null;if(a.name){for(var t=0;tn?"-$"+n.replace("-",""):"$"+n},a.prototype.exp=function(a){a=e(a);var n={};return n.year=this.exp_year(),n.year===(new Date).getFullYear()?n.month=this.exp_month({future:!0}):n.month=this.exp_month(),a.raw?n:n.month+"/"+n.year},a.prototype.exp_month=function(a){a=e(a);var n,i,t=(new Date).getMonth();if(a.future){do n=this.month({raw:!0}).numeric,i=parseInt(n,10);while(t>i)}else n=this.month({raw:!0}).numeric;return n},a.prototype.exp_year=function(){return this.year({max:(new Date).getFullYear()+10})},a.prototype.d4=i({min:1,max:4}),a.prototype.d6=i({min:1,max:6}),a.prototype.d8=i({min:1,max:8}),a.prototype.d10=i({min:1,max:10}),a.prototype.d12=i({min:1,max:12}),a.prototype.d20=i({min:1,max:20}),a.prototype.d30=i({min:1,max:30}),a.prototype.d100=i({min:1,max:100}),a.prototype.rpg=function(a,n){if(n=e(n),a){var i=a.toLowerCase().split("d"),t=[];if(2!==i.length||!parseInt(i[0],10)||!parseInt(i[1],10))throw new Error("Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die");for(var r=i[0];r>0;r--)t[r-1]=this.natural({min:1,max:i[1]});return"undefined"!=typeof n.sum&&n.sum?t.reduce(function(a,e){return a+e}):t}throw new RangeError("A type of die roll must be included")},a.prototype.guid=function(a){a=e(a,{version:5});var n="abcdef1234567890",i="ab89",t=this.string({pool:n,length:8})+"-"+this.string({pool:n,length:4})+"-"+a.version+this.string({pool:n,length:3})+"-"+this.string({pool:i,length:1})+this.string({pool:n,length:3})+"-"+this.string({pool:n,length:12});return t},a.prototype.hash=function(a){a=e(a,{length:40,casing:"lower"});var n="upper"===a.casing?c.toUpperCase():c;return this.string({pool:n,length:a.length})},a.prototype.luhn_check=function(a){var e=a.toString(),n=+e.substring(e.length-1);return n===this.luhn_calculate(+e.substring(0,e.length-1))},a.prototype.luhn_calculate=function(a){for(var e,n=a.toString().split("").reverse(),i=0,t=0,r=n.length;r>t;++t)e=+n[t],t%2===0&&(e*=2,e>9&&(e-=9)),i+=e;return 9*i%10},a.prototype.md5=function(a){var n={str:"",key:null,raw:!1};if(a)if("string"==typeof a)n.str=a,a={};else{if("object"!=typeof a)return null;if("Array"===a.constructor)return null}else n.str=this.string(),a={};if(n=e(a,n),!n.str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(n.str,n.key,n.raw)};var p={firstNames:{male:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],female:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","John","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"]},lastNames:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"], countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua and Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia and Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Bouvet Island",abbreviation:"BV"},{name:"Brazil",abbreviation:"BR"},{name:"British Antarctic Territory",abbreviation:"BQ"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canton and Enderbury Islands",abbreviation:"CT"},{name:"Cape Verde",abbreviation:"CV"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos [Keeling] Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Côte d’Ivoire",abbreviation:"CI"},{name:"Denmark",abbreviation:"DK"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Dronning Maud Land",abbreviation:"NQ"},{name:"East Germany",abbreviation:"DD"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"French Southern and Antarctic Territories",abbreviation:"FQ"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Heard Island and McDonald Islands",abbreviation:"HM"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Johnston Island",abbreviation:"JT"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Metropolitan France",abbreviation:"FX"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Midway Islands",abbreviation:"MI"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar [Burma]",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"Netherlands Antilles",abbreviation:"AN"},{name:"Neutral Zone",abbreviation:"NT"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"North Vietnam",abbreviation:"VD"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pacific Islands Trust Territory",abbreviation:"PC"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Panama Canal Zone",abbreviation:"PZ"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"People's Democratic Republic of Yemen",abbreviation:"YD"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Réunion",abbreviation:"RE"},{name:"Saint Barthélemy",abbreviation:"BL"},{name:"Saint Helena",abbreviation:"SH"},{name:"Saint Kitts and Nevis",abbreviation:"KN"},{name:"Saint Lucia",abbreviation:"LC"},{name:"Saint Martin",abbreviation:"MF"},{name:"Saint Pierre and Miquelon",abbreviation:"PM"},{name:"Saint Vincent and the Grenadines",abbreviation:"VC"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Serbia and Montenegro",abbreviation:"CS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia and the South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard and Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad and Tobago",abbreviation:"TT"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks and Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Minor Outlying Islands",abbreviation:"UM"},{name:"U.S. Miscellaneous Pacific Islands",abbreviation:"PU"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"Union of Soviet Socialist Republics",abbreviation:"SU"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Unknown or Invalid Region",abbreviation:"ZZ"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wake Island",abbreviation:"WK"},{name:"Wallis and Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"},{name:"Åland Islands",abbreviation:"AX"}],provinces:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],street_suffixes:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}]},v=Object.prototype.hasOwnProperty,f=Object.keys||function(a){var e=[];for(var n in a)v.call(a,n)&&e.push(n);return e};a.prototype.get=function(a){return o(p[a])},a.prototype.mac_address=function(a){a=e(a),a.separator||(a.separator=a.networkVersion?".":":");var n="ABCDEF1234567890",i="";return i=a.networkVersion?this.n(this.string,3,{pool:n,length:4}).join(a.separator):this.n(this.string,6,{pool:n,length:2}).join(a.separator)},a.prototype.normal=function(a){a=e(a,{mean:0,dev:1});var n,i,t,r,o=a.mean,s=a.dev;do i=2*this.random()-1,t=2*this.random()-1,n=i*i+t*t;while(n>=1);return r=i*Math.sqrt(-2*Math.log(n)/n),s*r+o},a.prototype.radio=function(a){a=e(a,{side:"?"});var n="";switch(a.side.toLowerCase()){case"east":case"e":n="W";break;case"west":case"w":n="K";break;default:n=this.character({pool:"KW"})}return n+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},a.prototype.set=function(a,e){"string"==typeof a?p[a]=e:p=o(a,p)},a.prototype.tv=function(a){return this.radio(a)},a.prototype.cnpj=function(){var a=this.n(this.natural,8,{max:9}),e=2+6*a[7]+7*a[6]+8*a[5]+9*a[4]+2*a[3]+3*a[2]+4*a[1]+5*a[0];e=11-e%11,e>=10&&(e=0);var n=2*e+3+7*a[7]+8*a[6]+9*a[5]+2*a[4]+3*a[3]+4*a[2]+5*a[1]+6*a[0];return n=11-n%11,n>=10&&(n=0),""+a[0]+a[1]+"."+a[2]+a[3]+a[4]+"."+a[5]+a[6]+a[7]+"/0001-"+e+n},a.prototype.mersenne_twister=function(a){return new g(a)},a.prototype.blueimp_md5=function(){return new y};var g=function(a){void 0===a&&(a=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(a)};g.prototype.init_genrand=function(a){for(this.mt[0]=a>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&a)>>>16)<<16)+1812433253*(65535&a)+this.mti,this.mt[this.mti]>>>=0},g.prototype.init_by_array=function(a,e){var n,i,t=1,r=0;for(this.init_genrand(19650218),n=this.N>e?this.N:e;n;n--)i=this.mt[t-1]^this.mt[t-1]>>>30,this.mt[t]=(this.mt[t]^(1664525*((4294901760&i)>>>16)<<16)+1664525*(65535&i))+a[r]+r,this.mt[t]>>>=0,t++,r++,t>=this.N&&(this.mt[0]=this.mt[this.N-1],t=1),r>=e&&(r=0);for(n=this.N-1;n;n--)i=this.mt[t-1]^this.mt[t-1]>>>30,this.mt[t]=(this.mt[t]^(1566083941*((4294901760&i)>>>16)<<16)+1566083941*(65535&i))-t,this.mt[t]>>>=0,t++,t>=this.N&&(this.mt[0]=this.mt[this.N-1],t=1);this.mt[0]=2147483648},g.prototype.genrand_int32=function(){var a,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti===this.N+1&&this.init_genrand(5489),n=0;n>>1^e[1&a];for(;n>>1^e[1&a];a=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^a>>>1^e[1&a],this.mti=0}return a=this.mt[this.mti++],a^=a>>>11,a^=a<<7&2636928640,a^=a<<15&4022730752,a^=a>>>18,a>>>0},g.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},g.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},g.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},g.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},g.prototype.genrand_res53=function(){var a=this.genrand_int32()>>>5,e=this.genrand_int32()>>>6;return(67108864*a+e)*(1/9007199254740992)};var y=function(){};y.prototype.VERSION="1.0.1",y.prototype.safe_add=function(a,e){var n=(65535&a)+(65535&e),i=(a>>16)+(e>>16)+(n>>16);return i<<16|65535&n},y.prototype.bit_roll=function(a,e){return a<>>32-e},y.prototype.md5_cmn=function(a,e,n,i,t,r){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(e,a),this.safe_add(i,r)),t),n)},y.prototype.md5_ff=function(a,e,n,i,t,r,o){return this.md5_cmn(e&n|~e&i,a,e,t,r,o)},y.prototype.md5_gg=function(a,e,n,i,t,r,o){return this.md5_cmn(e&i|n&~i,a,e,t,r,o)},y.prototype.md5_hh=function(a,e,n,i,t,r,o){return this.md5_cmn(e^n^i,a,e,t,r,o)},y.prototype.md5_ii=function(a,e,n,i,t,r,o){return this.md5_cmn(n^(e|~i),a,e,t,r,o)},y.prototype.binl_md5=function(a,e){a[e>>5]|=128<>>9<<4)+14]=e;var n,i,t,r,o,s=1732584193,m=-271733879,l=-1732584194,h=271733878;for(n=0;n>5]>>>e%32&255);return n},y.prototype.rstr2binl=function(a){var e,n=[];for(n[(a.length>>2)-1]=void 0,e=0;e>5]|=(255&a.charCodeAt(e/8))<16&&(t=this.binl_md5(t,8*a.length)),n=0;16>n;n+=1)r[n]=909522486^t[n],o[n]=1549556828^t[n];return i=this.binl_md5(r.concat(this.rstr2binl(e)),512+8*e.length),this.binl2rstr(this.binl_md5(o.concat(i),640))},y.prototype.rstr2hex=function(a){var e,n,i="0123456789abcdef",t="";for(n=0;n>>4&15)+i.charAt(15&e);return t},y.prototype.str2rstr_utf8=function(a){return unescape(encodeURIComponent(a))},y.prototype.raw_md5=function(a){return this.rstr_md5(this.str2rstr_utf8(a))},y.prototype.hex_md5=function(a){return this.rstr2hex(this.raw_md5(a))},y.prototype.raw_hmac_md5=function(a,e){return this.rstr_hmac_md5(this.str2rstr_utf8(a),this.str2rstr_utf8(e))},y.prototype.hex_hmac_md5=function(a,e){return this.rstr2hex(this.raw_hmac_md5(a,e))},y.prototype.md5=function(a,e,n){return e?n?this.raw_hmac_md5(e,a):this.hex_hmac_md5(e,a):n?this.raw_md5(a):this.hex_md5(a)},"undefined"!=typeof exports&&("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.Chance=a),"function"==typeof define&&define.amd&&define([],function(){return a}),"undefined"!=typeof importScripts&&(chance=new a),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=a,window.chance=new a)}(); }).call(this,require("buffer").Buffer) -},{"buffer":10}],37:[function(require,module,exports){ +},{"buffer":11}],38:[function(require,module,exports){ "use strict";var $=require("./util/uri-helpers");$.findByRef=require("./util/find-reference"),$.resolveSchema=require("./util/resolve-schema"),$.normalizeSchema=require("./util/normalize-schema");var instance=module.exports=function(){function e(r,i,t,n){function a(i){if("string"==typeof i.id){var t=$.resolveURL(r,i.id).replace(/\/#?$/,"");if(t.indexOf("#")>-1){var n=t.split("#");t="/"===n[1].charAt()?n[0]:n[1]||n[0]}e.refs[t]||(e.refs[t]=i)}}return"object"==typeof r&&(n=t,t=i,i=r,r=void 0),Array.isArray(t)||(n=!!t,t=[]),t.concat([i]).forEach(function(e){i=$.normalizeSchema(r,e,a),a(i)}),$.resolveSchema(i,e.refs,n)}return e.refs={},e.util=$,e};instance.util=$; -},{"./util/find-reference":39,"./util/normalize-schema":40,"./util/resolve-schema":41,"./util/uri-helpers":42}],38:[function(require,module,exports){ +},{"./util/find-reference":40,"./util/normalize-schema":41,"./util/resolve-schema":42,"./util/uri-helpers":43}],39:[function(require,module,exports){ "use strict";var clone=module.exports=function(r){function t(r,t){o[r]=clone(t)}if(!r||"object"!=typeof r)return r;var o=Array.isArray(r)?[]:{};return Array.isArray(o)?r.forEach(function(r,o){t(o,r)}):"[object Object]"===Object.prototype.toString.call(r)&&Object.keys(r).forEach(function(o){t(o,r[o])}),o}; -},{}],39:[function(require,module,exports){ +},{}],40:[function(require,module,exports){ "use strict";function get(e,r){for(var n=r.split("#")[1],t=n.split("/").slice(1);t.length;){var f=decodeURIComponent(t.shift()).replace(/~1/g,"/").replace(/~0/g,"~");if("undefined"==typeof e[f])throw new Error("Reference not found: "+r);e=e[f]}return e}var $=require("./uri-helpers"),find=module.exports=function(e,r){var n=r[e]||r[e.split("#")[1]]||r[$.getDocumentURI(e)];if(n)n=e.indexOf("#/")>-1?get(n,e):n;else for(var t in r)if($.resolveURL(r[t].id,e)===r[t].id){n=r[t];break}if(!n)throw new Error("Reference not found: "+e);for(;n.$ref;)n=find(n.$ref,r);return n}; -},{"./uri-helpers":42}],40:[function(require,module,exports){ +},{"./uri-helpers":43}],41:[function(require,module,exports){ "use strict";function expand(e,r,o){if(e){var n="string"==typeof e.id?e.id:"#";$.isURL(n)||(n=$.resolveURL(r===n?null:r,n)),"string"!=typeof e.$ref||$.isURL(e.$ref)||(e.$ref=$.resolveURL(n,e.$ref)),"string"==typeof e.id&&(e.id=r=n)}for(var i in e){var s=e[i];"object"==typeof s&&"enum"!==i&&"required"!==i&&expand(s,r,o)}"function"==typeof o&&o(e)}var $=require("./uri-helpers"),cloneObj=require("./clone-obj"),SCHEMA_URI=["http://json-schema.org/schema#","http://json-schema.org/draft-04/schema#"];module.exports=function(e,r,o){"object"==typeof e&&(o=r,r=e,e=null);var n=e||"",i=cloneObj(r);if(i.$schema&&-1===SCHEMA_URI.indexOf(i.$schema))throw new Error("Unsupported schema version (v4 only)");return n=$.resolveURL(i.$schema||SCHEMA_URI[0],n),expand(i,$.resolveURL(i.id,n),o),i.id=i.id||"#",i}; -},{"./clone-obj":38,"./uri-helpers":42}],41:[function(require,module,exports){ +},{"./clone-obj":39,"./uri-helpers":43}],42:[function(require,module,exports){ "use strict";function clone(e,r,i,n){var t={};if(Array.isArray(e)&&(t=[]),$.isURL(e.$ref)){var f=find(e.$ref,r);if(f&&n){var o="string"==typeof f.id?f.id:"#";if(e=f,e.$ref!==o)return clone(f,r,!0,n);delete e.$ref}}for(var d in e){var u=e[d];"object"==typeof u&&"enum"!==d&&"required"!==d?t[d]=clone(u,r,!0,n):t[d]=u}return i&&("string"==typeof t.$schema&&delete t.$schema,"string"==typeof t.id&&delete t.id),t}var $=require("./uri-helpers"),find=require("./find-reference");module.exports=function(e,r,i){return clone(e,r,!1,i)}; -},{"./find-reference":39,"./uri-helpers":42}],42:[function(require,module,exports){ +},{"./find-reference":40,"./uri-helpers":43}],43:[function(require,module,exports){ "use strict";function URLUtils(t,s){var e=String(t).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@]*)(?::([^:@]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);if(!e)throw new RangeError;var r=e[0]||"",h=e[1]||"",o=e[2]||"",n=e[3]||"",a=e[4]||"",i=e[5]||"",p=e[6]||"",c=e[7]||"",U=e[8]||"",u=e[9]||"";if(void 0!==s){var R=new URLUtils(s),m=""===h&&""===a&&""===o;m&&""===c&&""===U&&(U=R.search),m&&"/"!==c.charAt(0)&&(c=""!==c?R.pathname.slice(0,R.pathname.lastIndexOf("/")+1)+c:R.pathname);var f=[];c.replace(/\/?[^\/]+/g,function(t){"/.."===t?f.pop():f.push(t)}),c=f.join("")||"/",m&&(p=R.port,i=R.hostname,a=R.host,n=R.password,o=R.username),""===h&&(h=R.protocol),r=h+(""!==a?"//":"")+(""!==o?o+(""!==n?":"+n:"")+"@":"")+a+c+U+u}this.href=r,this.origin=h+(""!==a?"//"+a:""),this.protocol=h,this.username=o,this.password=n,this.host=a,this.hostname=i,this.port=p,this.pathname=c,this.search=U,this.hash=u}function isURL(t){return"string"==typeof t&&/^\w+:\/\//.test(t)?!0:void 0}function parseURI(t,s){return new URLUtils(t,s)}function resolveURL(t,s){return t=t||"http://json-schema.org/schema#",s=parseURI(s,t),t=parseURI(t),t.hash&&!s.hash?s.href+t.hash:s.href}function getDocumentURI(t){return"string"==typeof t&&t.split("#")[0]}module.exports={isURL:isURL,parseURI:parseURI,resolveURL:resolveURL,getDocumentURI:getDocumentURI}; -},{}],43:[function(require,module,exports){ +},{}],44:[function(require,module,exports){ exports.name=require("./lib/name"),exports.address=require("./lib/address"),exports.phone=require("./lib/phone_number"),exports.internet=require("./lib/internet"),exports.company=require("./lib/company"),exports.image=require("./lib/image"),exports.lorem=require("./lib/lorem"),exports.helpers=require("./lib/helpers"),exports.date=require("./lib/date"),exports.random=require("./lib/random"),exports.finance=require("./lib/finance"),exports.hacker=require("./lib/hacker");var locales=exports.locales=require("./lib/locales");exports.locale="en",exports.localeFallback="en",exports.definitions={};var _definitions={name:["first_name","last_name","prefix","suffix"],address:["city_prefix","city_suffix","street_suffix","county","country","state","state_abbr"],company:["adjective","noun","descriptor","bs_adjective","bs_noun","bs_verb"],lorem:["words"],hacker:["abbreviation","adjective","noun","verb","ingverb"],phone_number:["formats"],finance:["account_type","transaction_type","currency"],internet:["avatar_uri","domain_suffix","free_email","password"]};Object.keys(_definitions).forEach(function(e){"undefined"==typeof exports.definitions[e]&&(exports.definitions[e]={}),_definitions[e].forEach(function(r){Object.defineProperty(exports.definitions[e],r,{get:function(){return"undefined"==typeof locales[exports.locale][e]||"undefined"==typeof locales[exports.locale][e][r]?locales[exports.localeFallback][e][r]:locales[exports.locale][e][r]}})})}); -},{"./lib/address":44,"./lib/company":45,"./lib/date":46,"./lib/finance":47,"./lib/hacker":48,"./lib/helpers":49,"./lib/image":50,"./lib/internet":51,"./lib/locales":52,"./lib/lorem":80,"./lib/name":81,"./lib/phone_number":82,"./lib/random":83}],44:[function(require,module,exports){ +},{"./lib/address":45,"./lib/company":46,"./lib/date":47,"./lib/finance":48,"./lib/hacker":49,"./lib/helpers":50,"./lib/image":51,"./lib/internet":52,"./lib/locales":53,"./lib/lorem":81,"./lib/name":82,"./lib/phone_number":83,"./lib/random":84}],45:[function(require,module,exports){ var Helpers=require("./helpers"),faker=require("../index"),address={zipCode:function(){return Helpers.replaceSymbolWithNumber(faker.random.array_element(["#####","#####-####"]))},city:function(){var e;switch(faker.random.number(3)){case 0:e=faker.address.cityPrefix()+" "+faker.name.firstName()+faker.address.citySuffix();break;case 1:e=faker.address.cityPrefix()+" "+faker.name.firstName();break;case 2:e=faker.name.firstName()+faker.address.citySuffix();break;case 3:e=faker.name.lastName()+faker.address.citySuffix()}return e},cityPrefix:function(){return faker.random.array_element(faker.definitions.address.city_prefix)},citySuffix:function(){return faker.random.array_element(faker.definitions.address.city_suffix)},streetName:function(){var e;switch(faker.random.number(1)){case 0:e=faker.name.lastName()+" "+faker.address.streetSuffix();break;case 1:e=faker.name.firstName()+" "+faker.address.streetSuffix()}return e},streetAddress:function(e){void 0===e&&(e=!1);var r="";switch(faker.random.number(2)){case 0:r=Helpers.replaceSymbolWithNumber("#####")+" "+faker.address.streetName();break;case 1:r=Helpers.replaceSymbolWithNumber("####")+" "+faker.address.streetName();break;case 2:r=Helpers.replaceSymbolWithNumber("###")+" "+faker.address.streetName()}return e?r+" "+faker.address.secondaryAddress():r},streetSuffix:function(){return faker.random.array_element(faker.definitions.address.street_suffix)},secondaryAddress:function(){return Helpers.replaceSymbolWithNumber(faker.random.array_element(["Apt. ###","Suite ###"]))},county:function(){return faker.random.array_element(faker.definitions.address.county)},country:function(){return faker.random.array_element(faker.definitions.address.country)},state:function(e){return faker.random.array_element(faker.definitions.address.state)},stateAbbr:function(){return faker.random.array_element(faker.definitions.address.state_abbr)},latitude:function(){return(faker.random.number(18e5)/1e4-90).toFixed(4)},longitude:function(){return(faker.random.number(36e5)/1e4-180).toFixed(4)}};module.exports=address; -},{"../index":43,"./helpers":49}],45:[function(require,module,exports){ +},{"../index":44,"./helpers":50}],46:[function(require,module,exports){ var faker=require("../index"),company={suffixes:function(){return["Inc","and Sons","LLC","Group","and Daughters"]},companyName:function(e){switch(e?e:faker.random.number(2)){case 0:return faker.name.lastName()+" "+faker.company.companySuffix();case 1:return faker.name.lastName()+"-"+faker.name.lastName();case 2:return faker.name.lastName()+", "+faker.name.lastName()+" and "+faker.name.lastName()}},companySuffix:function(){return faker.random.array_element(faker.company.suffixes())},catchPhrase:function(){return faker.company.catchPhraseAdjective()+" "+faker.company.catchPhraseDescriptor()+" "+faker.company.catchPhraseNoun()},bs:function(){return faker.company.bsAdjective()+" "+faker.company.bsBuzz()+" "+faker.company.bsNoun()},catchPhraseAdjective:function(){return faker.random.array_element(faker.definitions.company.adjective)},catchPhraseDescriptor:function(){return faker.random.array_element(faker.definitions.company.descriptor)},catchPhraseNoun:function(){return faker.random.array_element(faker.definitions.company.noun)},bsAdjective:function(){return faker.random.array_element(faker.definitions.company.bs_adjective)},bsBuzz:function(){return faker.random.array_element(faker.definitions.company.bs_verb)},bsNoun:function(){return faker.random.array_element(faker.definitions.company.bs_noun)}};module.exports=company; -},{"../index":43}],46:[function(require,module,exports){ +},{"../index":44}],47:[function(require,module,exports){ var faker=require("../index"),date={past:function(e,r){var a=r?new Date(Date.parse(r)):new Date,n={min:1e3,max:365*(e||1)*24*3600*1e3},t=a.getTime();return t-=faker.random.number(n),a.setTime(t),a},future:function(e,r){var a=r?new Date(Date.parse(r)):new Date,n={min:1e3,max:365*(e||1)*24*3600*1e3},t=a.getTime();return t+=faker.random.number(n),a.setTime(t),a},between:function(e,r){var a=Date.parse(e),n=faker.random.number(Date.parse(r)-a),t=new Date(a+n);return t},recent:function(e){var r=new Date,a={min:1e3,max:24*(e||1)*3600*1e3},n=r.getTime();return n-=faker.random.number(a),r.setTime(n),r}};module.exports=date; -},{"../index":43}],47:[function(require,module,exports){ +},{"../index":44}],48:[function(require,module,exports){ var Helpers=require("./helpers"),faker=require("../index"),finance={account:function(e){e=e||8;for(var n="",r=0;e>r;r++)n+="#";return e=null,Helpers.replaceSymbolWithNumber(n)},accountName:function(){return[Helpers.randomize(faker.definitions.finance.account_type),"Account"].join(" ")},mask:function(e,n,r){e=0!=e&&e&&"undefined"!=typeof e?e:4,n=null===n?!0:n,r=null===r?!0:r;for(var o="",t=0;e>t;t++)o+="#";return o=r?["...",o].join(""):o,o=n?["(",o,")"].join(""):o,o=Helpers.replaceSymbolWithNumber(o)},amount:function(e,n,r,o){return e=e||0,n=n||1e3,r=r||2,o=o||"",o+(Math.round((Math.random()*(n-e)+e)*Math.pow(10,r))/Math.pow(10,r)).toFixed(r)},transactionType:function(){return Helpers.randomize(faker.definitions.finance.transaction_type)},currencyCode:function(){return faker.random.object_element(faker.definitions.finance.currency).code},currencyName:function(){return faker.random.object_element(faker.definitions.finance.currency,"key")},currencySymbol:function(){for(var e;!e;)e=faker.random.object_element(faker.definitions.finance.currency).symbol;return e}};module.exports=finance; -},{"../index":43,"./helpers":49}],48:[function(require,module,exports){ +},{"../index":44,"./helpers":50}],49:[function(require,module,exports){ var faker=require("../index"),hacker={abbreviation:function(){return faker.random.array_element(faker.definitions.hacker.abbreviation)},adjective:function(){return faker.random.array_element(faker.definitions.hacker.adjective)},noun:function(){return faker.random.array_element(faker.definitions.hacker.noun)},verb:function(){return faker.random.array_element(faker.definitions.hacker.verb)},ingverb:function(){return faker.random.array_element(faker.definitions.hacker.ingverb)},phrase:function(){var e={abbreviation:hacker.abbreviation(),adjective:hacker.adjective(),ingverb:hacker.ingverb(),noun:hacker.noun(),verb:hacker.verb()},n=faker.random.array_element(["If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!","We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!","Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!","You can't {{verb}} the {{noun}} without {{ingverb}} the {{adjective}} {{abbreviation}} {{noun}}!","Use the {{adjective}} {{abbreviation}} {{noun}}, then you can {{verb}} the {{adjective}} {{noun}}!","The {{abbreviation}} {{noun}} is down, {{verb}} the {{adjective}} {{noun}} so we can {{verb}} the {{abbreviation}} {{noun}}!","{{ingverb}} the {{noun}} won't do anything, we need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!","I'll {{verb}} the {{adjective}} {{abbreviation}} {{noun}}, that should {{noun}} the {{abbreviation}} {{noun}}!"]);return faker.helpers.mustache(n,e)}};module.exports=hacker; -},{"../index":43}],49:[function(require,module,exports){ +},{"../index":44}],50:[function(require,module,exports){ var faker=require("../index");exports.randomNumber=function(e){return faker.random.number(e)},exports.randomize=function(e){return e=e||["a","b","c"],faker.random.array_element(e)},exports.slugify=function(e){return e=e||"",e.replace(/ /g,"-").replace(/[^\w\.\-]+/g,"")},exports.replaceSymbolWithNumber=function(e,a){e=e||"",void 0===a&&(a="#");for(var r="",n=0;nn;n++)r[n]=e();return r.join(".")},userAgent:function(){return random_ua.generate()},color:function(e,r,n){e=e||0,r=r||0,n=n||0;var a=Math.floor((faker.random.number(256)+e)/2),t=Math.floor((faker.random.number(256)+r)/2),o=Math.floor((faker.random.number(256)+n)/2),i=a.toString(16),f=t.toString(16),u=o.toString(16);return"#"+(1===i.length?"0":"")+i+(1===f.length?"0":"")+f+(1===u.length?"0":"")+u},password:function(e,r,n,a){return e=e||15,"undefined"==typeof r&&(r=!1),password_generator(e,r,n,a)}};module.exports=internet; -},{"../index":43,"../vendor/password-generator.js":85,"../vendor/user-agent":86}],52:[function(require,module,exports){ +},{"../index":44,"../vendor/password-generator.js":86,"../vendor/user-agent":87}],53:[function(require,module,exports){ var faker=require("../index");exports.de=require("./locales/de.js"),exports.de_AT=require("./locales/de_AT.js"),exports.de_CH=require("./locales/de_CH.js"),exports.en=require("./locales/en.js"),exports.en_AU=require("./locales/en_AU.js"),exports.en_BORK=require("./locales/en_BORK.js"),exports.en_CA=require("./locales/en_CA.js"),exports.en_GB=require("./locales/en_GB.js"),exports.en_IND=require("./locales/en_IND.js"),exports.en_US=require("./locales/en_US.js"),exports.en_au_ocker=require("./locales/en_au_ocker.js"),exports.es=require("./locales/es.js"),exports.fa=require("./locales/fa.js"),exports.fr=require("./locales/fr.js"),exports.it=require("./locales/it.js"),exports.ja=require("./locales/ja.js"),exports.ko=require("./locales/ko.js"),exports.nb_NO=require("./locales/nb_NO.js"),exports.nep=require("./locales/nep.js"),exports.nl=require("./locales/nl.js"),exports.pl=require("./locales/pl.js"),exports.pt_BR=require("./locales/pt_BR.js"),exports.ru=require("./locales/ru.js"),exports.sk=require("./locales/sk.js"),exports.sv=require("./locales/sv.js"),exports.vi=require("./locales/vi.js"),exports.zh_CN=require("./locales/zh_CN.js"); -},{"../index":43,"./locales/de.js":53,"./locales/de_AT.js":54,"./locales/de_CH.js":55,"./locales/en.js":56,"./locales/en_AU.js":57,"./locales/en_BORK.js":58,"./locales/en_CA.js":59,"./locales/en_GB.js":60,"./locales/en_IND.js":61,"./locales/en_US.js":62,"./locales/en_au_ocker.js":63,"./locales/es.js":64,"./locales/fa.js":65,"./locales/fr.js":66,"./locales/it.js":67,"./locales/ja.js":68,"./locales/ko.js":69,"./locales/nb_NO.js":70,"./locales/nep.js":71,"./locales/nl.js":72,"./locales/pl.js":73,"./locales/pt_BR.js":74,"./locales/ru.js":75,"./locales/sk.js":76,"./locales/sv.js":77,"./locales/vi.js":78,"./locales/zh_CN.js":79}],53:[function(require,module,exports){ +},{"../index":44,"./locales/de.js":54,"./locales/de_AT.js":55,"./locales/de_CH.js":56,"./locales/en.js":57,"./locales/en_AU.js":58,"./locales/en_BORK.js":59,"./locales/en_CA.js":60,"./locales/en_GB.js":61,"./locales/en_IND.js":62,"./locales/en_US.js":63,"./locales/en_au_ocker.js":64,"./locales/es.js":65,"./locales/fa.js":66,"./locales/fr.js":67,"./locales/it.js":68,"./locales/ja.js":69,"./locales/ko.js":70,"./locales/nb_NO.js":71,"./locales/nep.js":72,"./locales/nl.js":73,"./locales/pl.js":74,"./locales/pt_BR.js":75,"./locales/ru.js":76,"./locales/sk.js":77,"./locales/sv.js":78,"./locales/vi.js":79,"./locales/zh_CN.js":80}],54:[function(require,module,exports){ var de={};module.exports=de,de.title="German",de.address={city_prefix:["Nord","Ost","West","Süd","Neu","Alt","Bad"],city_suffix:["stadt","dorf","land","scheid","burg"],country:["Ägypten","Äquatorialguinea","Äthiopien","Österreich","Afghanistan","Albanien","Algerien","Amerikanisch-Samoa","Amerikanische Jungferninseln","Andorra","Angola","Anguilla","Antarktis","Antigua und Barbuda","Argentinien","Armenien","Aruba","Aserbaidschan","Australien","Bahamas","Bahrain","Bangladesch","Barbados","Belarus","Belgien","Belize","Benin","die Bermudas","Bhutan","Bolivien","Bosnien und Herzegowina","Botsuana","Bouvetinsel","Brasilien","Britische Jungferninseln","Britisches Territorium im Indischen Ozean","Brunei Darussalam","Bulgarien","Burkina Faso","Burundi","Chile","China","Cookinseln","Costa Rica","Dänemark","Demokratische Republik Kongo","Demokratische Volksrepublik Korea","Deutschland","Dominica","Dominikanische Republik","Dschibuti","Ecuador","El Salvador","Eritrea","Estland","Färöer","Falklandinseln","Fidschi","Finnland","Frankreich","Französisch-Guayana","Französisch-Polynesien","Französische Gebiete im südlichen Indischen Ozean","Gabun","Gambia","Georgien","Ghana","Gibraltar","Grönland","Grenada","Griechenland","Guadeloupe","Guam","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Heard und McDonaldinseln","Honduras","Hongkong","Indien","Indonesien","Irak","Iran","Irland","Island","Israel","Italien","Jamaika","Japan","Jemen","Jordanien","Jugoslawien","Kaimaninseln","Kambodscha","Kamerun","Kanada","Kap Verde","Kasachstan","Katar","Kenia","Kirgisistan","Kiribati","Kleinere amerikanische Überseeinseln","Kokosinseln","Kolumbien","Komoren","Kongo","Kroatien","Kuba","Kuwait","Laos","Lesotho","Lettland","Libanon","Liberia","Libyen","Liechtenstein","Litauen","Luxemburg","Macau","Madagaskar","Malawi","Malaysia","Malediven","Mali","Malta","ehemalige jugoslawische Republik Mazedonien","Marokko","Marshallinseln","Martinique","Mauretanien","Mauritius","Mayotte","Mexiko","Mikronesien","Monaco","Mongolei","Montserrat","Mosambik","Myanmar","Nördliche Marianen","Namibia","Nauru","Nepal","Neukaledonien","Neuseeland","Nicaragua","Niederländische Antillen","Niederlande","Niger","Nigeria","Niue","Norfolkinsel","Norwegen","Oman","Osttimor","Pakistan","Palau","Panama","Papua-Neuguinea","Paraguay","Peru","Philippinen","Pitcairninseln","Polen","Portugal","Puerto Rico","Réunion","Republik Korea","Republik Moldau","Ruanda","Rumänien","Russische Föderation","São Tomé und Príncipe","Südafrika","Südgeorgien und Südliche Sandwichinseln","Salomonen","Sambia","Samoa","San Marino","Saudi-Arabien","Schweden","Schweiz","Senegal","Seychellen","Sierra Leone","Simbabwe","Singapur","Slowakei","Slowenien","Somalien","Spanien","Sri Lanka","St. Helena","St. Kitts und Nevis","St. Lucia","St. Pierre und Miquelon","St. Vincent und die Grenadinen","Sudan","Surinam","Svalbard und Jan Mayen","Swasiland","Syrien","Türkei","Tadschikistan","Taiwan","Tansania","Thailand","Togo","Tokelau","Tonga","Trinidad und Tobago","Tschad","Tschechische Republik","Tunesien","Turkmenistan","Turks- und Caicosinseln","Tuvalu","Uganda","Ukraine","Ungarn","Uruguay","Usbekistan","Vanuatu","Vatikanstadt","Venezuela","Vereinigte Arabische Emirate","Vereinigte Staaten","Vereinigtes Königreich","Vietnam","Wallis und Futuna","Weihnachtsinsel","Westsahara","Zentralafrikanische Republik","Zypern"],street_root:["Ackerweg","Adalbert-Stifter-Str.","Adalbertstr.","Adolf-Baeyer-Str.","Adolf-Kaschny-Str.","Adolf-Reichwein-Str.","Adolfsstr.","Ahornweg","Ahrstr.","Akazienweg","Albert-Einstein-Str.","Albert-Schweitzer-Str.","Albertus-Magnus-Str.","Albert-Zarthe-Weg","Albin-Edelmann-Str.","Albrecht-Haushofer-Str.","Aldegundisstr.","Alexanderstr.","Alfred-Delp-Str.","Alfred-Kubin-Str.","Alfred-Stock-Str.","Alkenrather Str.","Allensteiner Str.","Alsenstr.","Alt Steinbücheler Weg","Alte Garten","Alte Heide","Alte Landstr.","Alte Ziegelei","Altenberger Str.","Altenhof","Alter Grenzweg","Altstadtstr.","Am Alten Gaswerk","Am Alten Schafstall","Am Arenzberg","Am Benthal","Am Birkenberg","Am Blauen Berg","Am Borsberg","Am Brungen","Am Büchelter Hof","Am Buttermarkt","Am Ehrenfriedhof","Am Eselsdamm","Am Falkenberg","Am Frankenberg","Am Gesundheitspark","Am Gierlichshof","Am Graben","Am Hagelkreuz","Am Hang","Am Heidkamp","Am Hemmelrather Hof","Am Hofacker","Am Hohen Ufer","Am Höllers Eck","Am Hühnerberg","Am Jägerhof","Am Junkernkamp","Am Kemperstiegel","Am Kettnersbusch","Am Kiesberg","Am Klösterchen","Am Knechtsgraben","Am Köllerweg","Am Köttersbach","Am Kreispark","Am Kronefeld","Am Küchenhof","Am Kühnsbusch","Am Lindenfeld","Am Märchen","Am Mittelberg","Am Mönchshof","Am Mühlenbach","Am Neuenhof","Am Nonnenbruch","Am Plattenbusch","Am Quettinger Feld","Am Rosenhügel","Am Sandberg","Am Scherfenbrand","Am Schokker","Am Silbersee","Am Sonnenhang","Am Sportplatz","Am Stadtpark","Am Steinberg","Am Telegraf","Am Thelenhof","Am Vogelkreuz","Am Vogelsang","Am Vogelsfeldchen","Am Wambacher Hof","Am Wasserturm","Am Weidenbusch","Am Weiher","Am Weingarten","Am Werth","Amselweg","An den Irlen","An den Rheinauen","An der Bergerweide","An der Dingbank","An der Evangelischen Kirche","An der Evgl. Kirche","An der Feldgasse","An der Fettehenne","An der Kante","An der Laach","An der Lehmkuhle","An der Lichtenburg","An der Luisenburg","An der Robertsburg","An der Schmitten","An der Schusterinsel","An der Steinrütsch","An St. Andreas","An St. Remigius","Andreasstr.","Ankerweg","Annette-Kolb-Str.","Apenrader Str.","Arnold-Ohletz-Str.","Atzlenbacher Str.","Auerweg","Auestr.","Auf dem Acker","Auf dem Blahnenhof","Auf dem Bohnbüchel","Auf dem Bruch","Auf dem End","Auf dem Forst","Auf dem Herberg","Auf dem Lehn","Auf dem Stein","Auf dem Weierberg","Auf dem Weiherhahn","Auf den Reien","Auf der Donnen","Auf der Grieße","Auf der Ohmer","Auf der Weide","Auf'm Berg","Auf'm Kamp","Augustastr.","August-Kekulé-Str.","A.-W.-v.-Hofmann-Str.","Bahnallee","Bahnhofstr.","Baltrumstr.","Bamberger Str.","Baumberger Str.","Bebelstr.","Beckers Kämpchen","Beerenstr.","Beethovenstr.","Behringstr.","Bendenweg","Bensberger Str.","Benzstr.","Bergische Landstr.","Bergstr.","Berliner Platz","Berliner Str.","Bernhard-Letterhaus-Str.","Bernhard-Lichtenberg-Str.","Bernhard-Ridder-Str.","Bernsteinstr.","Bertha-Middelhauve-Str.","Bertha-von-Suttner-Str.","Bertolt-Brecht-Str.","Berzeliusstr.","Bielertstr.","Biesenbach","Billrothstr.","Birkenbergstr.","Birkengartenstr.","Birkenweg","Bismarckstr.","Bitterfelder Str.","Blankenburg","Blaukehlchenweg","Blütenstr.","Boberstr.","Böcklerstr.","Bodelschwinghstr.","Bodestr.","Bogenstr.","Bohnenkampsweg","Bohofsweg","Bonifatiusstr.","Bonner Str.","Borkumstr.","Bornheimer Str.","Borsigstr.","Borussiastr.","Bracknellstr.","Brahmsweg","Brandenburger Str.","Breidenbachstr.","Breslauer Str.","Bruchhauser Str.","Brückenstr.","Brucknerstr.","Brüder-Bonhoeffer-Str.","Buchenweg","Bürgerbuschweg","Burgloch","Burgplatz","Burgstr.","Burgweg","Bürriger Weg","Burscheider Str.","Buschkämpchen","Butterheider Str.","Carl-Duisberg-Platz","Carl-Duisberg-Str.","Carl-Leverkus-Str.","Carl-Maria-von-Weber-Platz","Carl-Maria-von-Weber-Str.","Carlo-Mierendorff-Str.","Carl-Rumpff-Str.","Carl-von-Ossietzky-Str.","Charlottenburger Str.","Christian-Heß-Str.","Claasbruch","Clemens-Winkler-Str.","Concordiastr.","Cranachstr.","Dahlemer Str.","Daimlerstr.","Damaschkestr.","Danziger Str.","Debengasse","Dechant-Fein-Str.","Dechant-Krey-Str.","Deichtorstr.","Dhünnberg","Dhünnstr.","Dianastr.","Diedenhofener Str.","Diepental","Diepenthaler Str.","Dieselstr.","Dillinger Str.","Distelkamp","Dohrgasse","Domblick","Dönhoffstr.","Dornierstr.","Drachenfelsstr.","Dr.-August-Blank-Str.","Dresdener Str.","Driescher Hecke","Drosselweg","Dudweilerstr.","Dünenweg","Dünfelder Str.","Dünnwalder Grenzweg","Düppeler Str.","Dürerstr.","Dürscheider Weg","Düsseldorfer Str.","Edelrather Weg","Edmund-Husserl-Str.","Eduard-Spranger-Str.","Ehrlichstr.","Eichenkamp","Eichenweg","Eidechsenweg","Eifelstr.","Eifgenstr.","Eintrachtstr.","Elbestr.","Elisabeth-Langgässer-Str.","Elisabethstr.","Elisabeth-von-Thadden-Str.","Elisenstr.","Elsa-Brändström-Str.","Elsbachstr.","Else-Lasker-Schüler-Str.","Elsterstr.","Emil-Fischer-Str.","Emil-Nolde-Str.","Engelbertstr.","Engstenberger Weg","Entenpfuhl","Erbelegasse","Erftstr.","Erfurter Str.","Erich-Heckel-Str.","Erich-Klausener-Str.","Erich-Ollenhauer-Str.","Erlenweg","Ernst-Bloch-Str.","Ernst-Ludwig-Kirchner-Str.","Erzbergerstr.","Eschenallee","Eschenweg","Esmarchstr.","Espenweg","Euckenstr.","Eulengasse","Eulenkamp","Ewald-Flamme-Str.","Ewald-Röll-Str.","Fährstr.","Farnweg","Fasanenweg","Faßbacher Hof","Felderstr.","Feldkampstr.","Feldsiefer Weg","Feldsiefer Wiesen","Feldstr.","Feldtorstr.","Felix-von-Roll-Str.","Ferdinand-Lassalle-Str.","Fester Weg","Feuerbachstr.","Feuerdornweg","Fichtenweg","Fichtestr.","Finkelsteinstr.","Finkenweg","Fixheider Str.","Flabbenhäuschen","Flensburger Str.","Fliederweg","Florastr.","Florianweg","Flotowstr.","Flurstr.","Föhrenweg","Fontanestr.","Forellental","Fortunastr.","Franz-Esser-Str.","Franz-Hitze-Str.","Franz-Kail-Str.","Franz-Marc-Str.","Freiburger Str.","Freiheitstr.","Freiherr-vom-Stein-Str.","Freudenthal","Freudenthaler Weg","Fridtjof-Nansen-Str.","Friedenberger Str.","Friedensstr.","Friedhofstr.","Friedlandstr.","Friedlieb-Ferdinand-Runge-Str.","Friedrich-Bayer-Str.","Friedrich-Bergius-Platz","Friedrich-Ebert-Platz","Friedrich-Ebert-Str.","Friedrich-Engels-Str.","Friedrich-List-Str.","Friedrich-Naumann-Str.","Friedrich-Sertürner-Str.","Friedrichstr.","Friedrich-Weskott-Str.","Friesenweg","Frischenberg","Fritz-Erler-Str.","Fritz-Henseler-Str.","Fröbelstr.","Fürstenbergplatz","Fürstenbergstr.","Gabriele-Münter-Str.","Gartenstr.","Gebhardstr.","Geibelstr.","Gellertstr.","Georg-von-Vollmar-Str.","Gerhard-Domagk-Str.","Gerhart-Hauptmann-Str.","Gerichtsstr.","Geschwister-Scholl-Str.","Gezelinallee","Gierener Weg","Ginsterweg","Gisbert-Cremer-Str.","Glücksburger Str.","Gluckstr.","Gneisenaustr.","Goetheplatz","Goethestr.","Golo-Mann-Str.","Görlitzer Str.","Görresstr.","Graebestr.","Graf-Galen-Platz","Gregor-Mendel-Str.","Greifswalder Str.","Grillenweg","Gronenborner Weg","Große Kirchstr.","Grunder Wiesen","Grundermühle","Grundermühlenhof","Grundermühlenweg","Grüner Weg","Grunewaldstr.","Grünstr.","Günther-Weisenborn-Str.","Gustav-Freytag-Str.","Gustav-Heinemann-Str.","Gustav-Radbruch-Str.","Gut Reuschenberg","Gutenbergstr.","Haberstr.","Habichtgasse","Hafenstr.","Hagenauer Str.","Hahnenblecher","Halenseestr.","Halfenleimbach","Hallesche Str.","Halligstr.","Hamberger Str.","Hammerweg","Händelstr.","Hannah-Höch-Str.","Hans-Arp-Str.","Hans-Gerhard-Str.","Hans-Sachs-Str.","Hans-Schlehahn-Str.","Hans-von-Dohnanyi-Str.","Hardenbergstr.","Haselweg","Hauptstr.","Haus-Vorster-Str.","Hauweg","Havelstr.","Havensteinstr.","Haydnstr.","Hebbelstr.","Heckenweg","Heerweg","Hegelstr.","Heidberg","Heidehöhe","Heidestr.","Heimstättenweg","Heinrich-Böll-Str.","Heinrich-Brüning-Str.","Heinrich-Claes-Str.","Heinrich-Heine-Str.","Heinrich-Hörlein-Str.","Heinrich-Lübke-Str.","Heinrich-Lützenkirchen-Weg","Heinrichstr.","Heinrich-Strerath-Str.","Heinrich-von-Kleist-Str.","Heinrich-von-Stephan-Str.","Heisterbachstr.","Helenenstr.","Helmestr.","Hemmelrather Weg","Henry-T.-v.-Böttinger-Str.","Herderstr.","Heribertstr.","Hermann-Ehlers-Str.","Hermann-Hesse-Str.","Hermann-König-Str.","Hermann-Löns-Str.","Hermann-Milde-Str.","Hermann-Nörrenberg-Str.","Hermann-von-Helmholtz-Str.","Hermann-Waibel-Str.","Herzogstr.","Heymannstr.","Hindenburgstr.","Hirzenberg","Hitdorfer Kirchweg","Hitdorfer Str.","Höfer Mühle","Höfer Weg","Hohe Str.","Höhenstr.","Höltgestal","Holunderweg","Holzer Weg","Holzer Wiesen","Hornpottweg","Hubertusweg","Hufelandstr.","Hufer Weg","Humboldtstr.","Hummelsheim","Hummelweg","Humperdinckstr.","Hüscheider Gärten","Hüscheider Str.","Hütte","Ilmstr.","Im Bergischen Heim","Im Bruch","Im Buchenhain","Im Bühl","Im Burgfeld","Im Dorf","Im Eisholz","Im Friedenstal","Im Frohental","Im Grunde","Im Hederichsfeld","Im Jücherfeld","Im Kalkfeld","Im Kirberg","Im Kirchfeld","Im Kreuzbruch","Im Mühlenfeld","Im Nesselrader Kamp","Im Oberdorf","Im Oberfeld","Im Rosengarten","Im Rottland","Im Scheffengarten","Im Staderfeld","Im Steinfeld","Im Weidenblech","Im Winkel","Im Ziegelfeld","Imbach","Imbacher Weg","Immenweg","In den Blechenhöfen","In den Dehlen","In der Birkenau","In der Dasladen","In der Felderhütten","In der Hartmannswiese","In der Höhle","In der Schaafsdellen","In der Wasserkuhl","In der Wüste","In Holzhausen","Insterstr.","Jacob-Fröhlen-Str.","Jägerstr.","Jahnstr.","Jakob-Eulenberg-Weg","Jakobistr.","Jakob-Kaiser-Str.","Jenaer Str.","Johannes-Baptist-Str.","Johannes-Dott-Str.","Johannes-Popitz-Str.","Johannes-Wislicenus-Str.","Johannisburger Str.","Johann-Janssen-Str.","Johann-Wirtz-Weg","Josefstr.","Jüch","Julius-Doms-Str.","Julius-Leber-Str.","Kaiserplatz","Kaiserstr.","Kaiser-Wilhelm-Allee","Kalkstr.","Kämpchenstr.","Kämpenwiese","Kämper Weg","Kamptalweg","Kanalstr.","Kandinskystr.","Kantstr.","Kapellenstr.","Karl-Arnold-Str.","Karl-Bosch-Str.","Karl-Bückart-Str.","Karl-Carstens-Ring","Karl-Friedrich-Goerdeler-Str.","Karl-Jaspers-Str.","Karl-König-Str.","Karl-Krekeler-Str.","Karl-Marx-Str.","Karlstr.","Karl-Ulitzka-Str.","Karl-Wichmann-Str.","Karl-Wingchen-Str.","Käsenbrod","Käthe-Kollwitz-Str.","Katzbachstr.","Kerschensteinerstr.","Kiefernweg","Kieler Str.","Kieselstr.","Kiesweg","Kinderhausen","Kleiberweg","Kleine Kirchstr.","Kleingansweg","Kleinheider Weg","Klief","Kneippstr.","Knochenbergsweg","Kochergarten","Kocherstr.","Kockelsberg","Kolberger Str.","Kolmarer Str.","Kölner Gasse","Kölner Str.","Kolpingstr.","Königsberger Platz","Konrad-Adenauer-Platz","Köpenicker Str.","Kopernikusstr.","Körnerstr.","Köschenberg","Köttershof","Kreuzbroicher Str.","Kreuzkamp","Krummer Weg","Kruppstr.","Kuhlmannweg","Kump","Kumper Weg","Kunstfeldstr.","Küppersteger Str.","Kursiefen","Kursiefer Weg","Kurtekottenweg","Kurt-Schumacher-Ring","Kyllstr.","Langenfelder Str.","Längsleimbach","Lärchenweg","Legienstr.","Lehner Mühle","Leichlinger Str.","Leimbacher Hof","Leinestr.","Leineweberstr.","Leipziger Str.","Lerchengasse","Lessingstr.","Libellenweg","Lichstr.","Liebigstr.","Lindenstr.","Lingenfeld","Linienstr.","Lippe","Löchergraben","Löfflerstr.","Loheweg","Lohrbergstr.","Lohrstr.","Löhstr.","Lortzingstr.","Lötzener Str.","Löwenburgstr.","Lucasstr.","Ludwig-Erhard-Platz","Ludwig-Girtler-Str.","Ludwig-Knorr-Str.","Luisenstr.","Lupinenweg","Lurchenweg","Lützenkirchener Str.","Lycker Str.","Maashofstr.","Manforter Str.","Marc-Chagall-Str.","Maria-Dresen-Str.","Maria-Terwiel-Str.","Marie-Curie-Str.","Marienburger Str.","Mariendorfer Str.","Marienwerderstr.","Marie-Schlei-Str.","Marktplatz","Markusweg","Martin-Buber-Str.","Martin-Heidegger-Str.","Martin-Luther-Str.","Masurenstr.","Mathildenweg","Maurinusstr.","Mauspfad","Max-Beckmann-Str.","Max-Delbrück-Str.","Max-Ernst-Str.","Max-Holthausen-Platz","Max-Horkheimer-Str.","Max-Liebermann-Str.","Max-Pechstein-Str.","Max-Planck-Str.","Max-Scheler-Str.","Max-Schönenberg-Str.","Maybachstr.","Meckhofer Feld","Meisenweg","Memelstr.","Menchendahler Str.","Mendelssohnstr.","Merziger Str.","Mettlacher Str.","Metzer Str.","Michaelsweg","Miselohestr.","Mittelstr.","Mohlenstr.","Moltkestr.","Monheimer Str.","Montanusstr.","Montessoriweg","Moosweg","Morsbroicher Str.","Moselstr.","Moskauer Str.","Mozartstr.","Mühlenweg","Muhrgasse","Muldestr.","Mülhausener Str.","Mülheimer Str.","Münsters Gäßchen","Münzstr.","Müritzstr.","Myliusstr.","Nachtigallenweg","Nauener Str.","Neißestr.","Nelly-Sachs-Str.","Netzestr.","Neuendriesch","Neuenhausgasse","Neuenkamp","Neujudenhof","Neukronenberger Str.","Neustadtstr.","Nicolai-Hartmann-Str.","Niederblecher","Niederfeldstr.","Nietzschestr.","Nikolaus-Groß-Str.","Nobelstr.","Norderneystr.","Nordstr.","Ober dem Hof","Obere Lindenstr.","Obere Str.","Oberölbach","Odenthaler Str.","Oderstr.","Okerstr.","Olof-Palme-Str.","Ophovener Str.","Opladener Platz","Opladener Str.","Ortelsburger Str.","Oskar-Moll-Str.","Oskar-Schlemmer-Str.","Oststr.","Oswald-Spengler-Str.","Otto-Dix-Str.","Otto-Grimm-Str.","Otto-Hahn-Str.","Otto-Müller-Str.","Otto-Stange-Str.","Ottostr.","Otto-Varnhagen-Str.","Otto-Wels-Str.","Ottweilerstr.","Oulustr.","Overfeldweg","Pappelweg","Paracelsusstr.","Parkstr.","Pastor-Louis-Str.","Pastor-Scheibler-Str.","Pastorskamp","Paul-Klee-Str.","Paul-Löbe-Str.","Paulstr.","Peenestr.","Pescher Busch","Peschstr.","Pestalozzistr.","Peter-Grieß-Str.","Peter-Joseph-Lenné-Str.","Peter-Neuenheuser-Str.","Petersbergstr.","Peterstr.","Pfarrer-Jekel-Str.","Pfarrer-Klein-Str.","Pfarrer-Röhr-Str.","Pfeilshofstr.","Philipp-Ott-Str.","Piet-Mondrian-Str.","Platanenweg","Pommernstr.","Porschestr.","Poststr.","Potsdamer Str.","Pregelstr.","Prießnitzstr.","Pützdelle","Quarzstr.","Quettinger Str.","Rat-Deycks-Str.","Rathenaustr.","Ratherkämp","Ratiborer Str.","Raushofstr.","Regensburger Str.","Reinickendorfer Str.","Renkgasse","Rennbaumplatz","Rennbaumstr.","Reuschenberger Str.","Reusrather Str.","Reuterstr.","Rheinallee","Rheindorfer Str.","Rheinstr.","Rhein-Wupper-Platz","Richard-Wagner-Str.","Rilkestr.","Ringstr.","Robert-Blum-Str.","Robert-Koch-Str.","Robert-Medenwald-Str.","Rolandstr.","Romberg","Röntgenstr.","Roonstr.","Ropenstall","Ropenstaller Weg","Rosenthal","Rostocker Str.","Rotdornweg","Röttgerweg","Rückertstr.","Rudolf-Breitscheid-Str.","Rudolf-Mann-Platz","Rudolf-Stracke-Str.","Ruhlachplatz","Ruhlachstr.","Rüttersweg","Saalestr.","Saarbrücker Str.","Saarlauterner Str.","Saarstr.","Salamanderweg","Samlandstr.","Sanddornstr.","Sandstr.","Sauerbruchstr.","Schäfershütte","Scharnhorststr.","Scheffershof","Scheidemannstr.","Schellingstr.","Schenkendorfstr.","Schießbergstr.","Schillerstr.","Schlangenhecke","Schlebuscher Heide","Schlebuscher Str.","Schlebuschrath","Schlehdornstr.","Schleiermacherstr.","Schloßstr.","Schmalenbruch","Schnepfenflucht","Schöffenweg","Schöllerstr.","Schöne Aussicht","Schöneberger Str.","Schopenhauerstr.","Schubertplatz","Schubertstr.","Schulberg","Schulstr.","Schumannstr.","Schwalbenweg","Schwarzastr.","Sebastianusweg","Semmelweisstr.","Siebelplatz","Siemensstr.","Solinger Str.","Sonderburger Str.","Spandauer Str.","Speestr.","Sperberweg","Sperlingsweg","Spitzwegstr.","Sporrenberger Mühle","Spreestr.","St. Ingberter Str.","Starenweg","Stauffenbergstr.","Stefan-Zweig-Str.","Stegerwaldstr.","Steglitzer Str.","Steinbücheler Feld","Steinbücheler Str.","Steinstr.","Steinweg","Stephan-Lochner-Str.","Stephanusstr.","Stettiner Str.","Stixchesstr.","Stöckenstr.","Stralsunder Str.","Straßburger Str.","Stresemannplatz","Strombergstr.","Stromstr.","Stüttekofener Str.","Sudestr.","Sürderstr.","Syltstr.","Talstr.","Tannenbergstr.","Tannenweg","Taubenweg","Teitscheider Weg","Telegrafenstr.","Teltower Str.","Tempelhofer Str.","Theodor-Adorno-Str.","Theodor-Fliedner-Str.","Theodor-Gierath-Str.","Theodor-Haubach-Str.","Theodor-Heuss-Ring","Theodor-Storm-Str.","Theodorstr.","Thomas-Dehler-Str.","Thomas-Morus-Str.","Thomas-von-Aquin-Str.","Tönges Feld","Torstr.","Treptower Str.","Treuburger Str.","Uhlandstr.","Ulmenweg","Ulmer Str.","Ulrichstr.","Ulrich-von-Hassell-Str.","Umlag","Unstrutstr.","Unter dem Schildchen","Unterölbach","Unterstr.","Uppersberg","Van\\'t-Hoff-Str.","Veit-Stoß-Str.","Vereinsstr.","Viktor-Meyer-Str.","Vincent-van-Gogh-Str.","Virchowstr.","Voigtslach","Volhardstr.","Völklinger Str.","Von-Brentano-Str.","Von-Diergardt-Str.","Von-Eichendorff-Str.","Von-Ketteler-Str.","Von-Knoeringen-Str.","Von-Pettenkofer-Str.","Von-Siebold-Str.","Wacholderweg","Waldstr.","Walter-Flex-Str.","Walter-Hempel-Str.","Walter-Hochapfel-Str.","Walter-Nernst-Str.","Wannseestr.","Warnowstr.","Warthestr.","Weddigenstr.","Weichselstr.","Weidenstr.","Weidfeldstr.","Weiherfeld","Weiherstr.","Weinhäuser Str.","Weißdornweg","Weißenseestr.","Weizkamp","Werftstr.","Werkstättenstr.","Werner-Heisenberg-Str.","Werrastr.","Weyerweg","Widdauener Str.","Wiebertshof","Wiehbachtal","Wiembachallee","Wiesdorfer Platz","Wiesenstr.","Wilhelm-Busch-Str.","Wilhelm-Hastrich-Str.","Wilhelm-Leuschner-Str.","Wilhelm-Liebknecht-Str.","Wilhelmsgasse","Wilhelmstr.","Willi-Baumeister-Str.","Willy-Brandt-Ring","Winand-Rossi-Str.","Windthorststr.","Winkelweg","Winterberg","Wittenbergstr.","Wolf-Vostell-Str.","Wolkenburgstr.","Wupperstr.","Wuppertalstr.","Wüstenhof","Yitzhak-Rabin-Str.","Zauberkuhle","Zedernweg","Zehlendorfer Str.","Zehntenweg","Zeisigweg","Zeppelinstr.","Zschopaustr.","Zum Claashäuschen","Zündhütchenweg","Zur Alten Brauerei","Zur alten Fabrik"],building_number:["###","##","#","##a","##b","##c"],secondary_address:["Apt. ###","Zimmer ###","# OG"],postcode:["#####","#####"],state:["Baden-Württemberg","Bayern","Berlin","Brandenburg","Bremen","Hamburg","Hessen","Mecklenburg-Vorpommern","Niedersachsen","Nordrhein-Westfalen","Rheinland-Pfalz","Saarland","Sachsen","Sachsen-Anhalt","Schleswig-Holstein","Thüringen"],state_abbr:["BW","BY","BE","BB","HB","HH","HE","MV","NI","NW","RP","SL","SN","ST","SH","TH"],city:["#{city_prefix} #{Name.first_name}#{city_suffix}","#{city_prefix} #{Name.first_name}","#{Name.first_name}#{city_suffix}","#{Name.last_name}#{city_suffix}"],street_name:["#{street_root}"],street_address:["#{street_name} #{building_number}"],default_country:["Deutschland"]},de.company={suffix:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],legal_form:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"]},de.internet={free_email:["gmail.com","yahoo.com","hotmail.com"],domain_suffix:["com","info","name","net","org","de","ch"]},de.lorem={words:["alias","consequatur","aut","perferendis","sit","voluptatem","accusantium","doloremque","aperiam","eaque","ipsa","quae","ab","illo","inventore","veritatis","et","quasi","architecto","beatae","vitae","dicta","sunt","explicabo","aspernatur","aut","odit","aut","fugit","sed","quia","consequuntur","magni","dolores","eos","qui","ratione","voluptatem","sequi","nesciunt","neque","dolorem","ipsum","quia","dolor","sit","amet","consectetur","adipisci","velit","sed","quia","non","numquam","eius","modi","tempora","incidunt","ut","labore","et","dolore","magnam","aliquam","quaerat","voluptatem","ut","enim","ad","minima","veniam","quis","nostrum","exercitationem","ullam","corporis","nemo","enim","ipsam","voluptatem","quia","voluptas","sit","suscipit","laboriosam","nisi","ut","aliquid","ex","ea","commodi","consequatur","quis","autem","vel","eum","iure","reprehenderit","qui","in","ea","voluptate","velit","esse","quam","nihil","molestiae","et","iusto","odio","dignissimos","ducimus","qui","blanditiis","praesentium","laudantium","totam","rem","voluptatum","deleniti","atque","corrupti","quos","dolores","et","quas","molestias","excepturi","sint","occaecati","cupiditate","non","provident","sed","ut","perspiciatis","unde","omnis","iste","natus","error","similique","sunt","in","culpa","qui","officia","deserunt","mollitia","animi","id","est","laborum","et","dolorum","fuga","et","harum","quidem","rerum","facilis","est","et","expedita","distinctio","nam","libero","tempore","cum","soluta","nobis","est","eligendi","optio","cumque","nihil","impedit","quo","porro","quisquam","est","qui","minus","id","quod","maxime","placeat","facere","possimus","omnis","voluptas","assumenda","est","omnis","dolor","repellendus","temporibus","autem","quibusdam","et","aut","consequatur","vel","illum","qui","dolorem","eum","fugiat","quo","voluptas","nulla","pariatur","at","vero","eos","et","accusamus","officiis","debitis","aut","rerum","necessitatibus","saepe","eveniet","ut","et","voluptates","repudiandae","sint","et","molestiae","non","recusandae","itaque","earum","rerum","hic","tenetur","a","sapiente","delectus","ut","aut","reiciendis","voluptatibus","maiores","doloribus","asperiores","repellat"]},de.name={first_name:["Aaron","Abdul","Abdullah","Adam","Adrian","Adriano","Ahmad","Ahmed","Ahmet","Alan","Albert","Alessandro","Alessio","Alex","Alexander","Alfred","Ali","Amar","Amir","Amon","Andre","Andreas","Andrew","Angelo","Ansgar","Anthony","Anton","Antonio","Arda","Arian","Armin","Arne","Arno","Arthur","Artur","Arved","Arvid","Ayman","Baran","Baris","Bastian","Batuhan","Bela","Ben","Benedikt","Benjamin","Bennet","Bennett","Benno","Bent","Berat","Berkay","Bernd","Bilal","Bjarne","Björn","Bo","Boris","Brandon","Brian","Bruno","Bryan","Burak","Calvin","Can","Carl","Carlo","Carlos","Caspar","Cedric","Cedrik","Cem","Charlie","Chris","Christian","Christiano","Christoph","Christopher","Claas","Clemens","Colin","Collin","Conner","Connor","Constantin","Corvin","Curt","Damian","Damien","Daniel","Danilo","Danny","Darian","Dario","Darius","Darren","David","Davide","Davin","Dean","Deniz","Dennis","Denny","Devin","Diego","Dion","Domenic","Domenik","Dominic","Dominik","Dorian","Dustin","Dylan","Ecrin","Eddi","Eddy","Edgar","Edwin","Efe","Ege","Elia","Eliah","Elias","Elijah","Emanuel","Emil","Emilian","Emilio","Emir","Emirhan","Emre","Enes","Enno","Enrico","Eren","Eric","Erik","Etienne","Fabian","Fabien","Fabio","Fabrice","Falk","Felix","Ferdinand","Fiete","Filip","Finlay","Finley","Finn","Finnley","Florian","Francesco","Franz","Frederic","Frederick","Frederik","Friedrich","Fritz","Furkan","Fynn","Gabriel","Georg","Gerrit","Gian","Gianluca","Gino","Giuliano","Giuseppe","Gregor","Gustav","Hagen","Hamza","Hannes","Hanno","Hans","Hasan","Hassan","Hauke","Hendrik","Hennes","Henning","Henri","Henrick","Henrik","Henry","Hugo","Hussein","Ian","Ibrahim","Ilias","Ilja","Ilyas","Immanuel","Ismael","Ismail","Ivan","Iven","Jack","Jacob","Jaden","Jakob","Jamal","James","Jamie","Jan","Janek","Janis","Janne","Jannek","Jannes","Jannik","Jannis","Jano","Janosch","Jared","Jari","Jarne","Jarno","Jaron","Jason","Jasper","Jay","Jayden","Jayson","Jean","Jens","Jeremias","Jeremie","Jeremy","Jermaine","Jerome","Jesper","Jesse","Jim","Jimmy","Joe","Joel","Joey","Johann","Johannes","John","Johnny","Jon","Jona","Jonah","Jonas","Jonathan","Jonte","Joost","Jordan","Joris","Joscha","Joschua","Josef","Joseph","Josh","Joshua","Josua","Juan","Julian","Julien","Julius","Juri","Justin","Justus","Kaan","Kai","Kalle","Karim","Karl","Karlo","Kay","Keanu","Kenan","Kenny","Keno","Kerem","Kerim","Kevin","Kian","Kilian","Kim","Kimi","Kjell","Klaas","Klemens","Konrad","Konstantin","Koray","Korbinian","Kurt","Lars","Lasse","Laurence","Laurens","Laurenz","Laurin","Lean","Leander","Leandro","Leif","Len","Lenn","Lennard","Lennart","Lennert","Lennie","Lennox","Lenny","Leo","Leon","Leonard","Leonardo","Leonhard","Leonidas","Leopold","Leroy","Levent","Levi","Levin","Lewin","Lewis","Liam","Lian","Lias","Lino","Linus","Lio","Lion","Lionel","Logan","Lorenz","Lorenzo","Loris","Louis","Luan","Luc","Luca","Lucas","Lucian","Lucien","Ludwig","Luis","Luiz","Luk","Luka","Lukas","Luke","Lutz","Maddox","Mads","Magnus","Maik","Maksim","Malik","Malte","Manuel","Marc","Marcel","Marco","Marcus","Marek","Marian","Mario","Marius","Mark","Marko","Markus","Marlo","Marlon","Marten","Martin","Marvin","Marwin","Mateo","Mathis","Matis","Mats","Matteo","Mattes","Matthias","Matthis","Matti","Mattis","Maurice","Max","Maxim","Maximilian","Mehmet","Meik","Melvin","Merlin","Mert","Michael","Michel","Mick","Miguel","Mika","Mikail","Mike","Milan","Milo","Mio","Mirac","Mirco","Mirko","Mohamed","Mohammad","Mohammed","Moritz","Morten","Muhammed","Murat","Mustafa","Nathan","Nathanael","Nelson","Neo","Nevio","Nick","Niclas","Nico","Nicolai","Nicolas","Niels","Nikita","Niklas","Niko","Nikolai","Nikolas","Nils","Nino","Noah","Noel","Norman","Odin","Oke","Ole","Oliver","Omar","Onur","Oscar","Oskar","Pascal","Patrice","Patrick","Paul","Peer","Pepe","Peter","Phil","Philip","Philipp","Pierre","Piet","Pit","Pius","Quentin","Quirin","Rafael","Raik","Ramon","Raphael","Rasmus","Raul","Rayan","René","Ricardo","Riccardo","Richard","Rick","Rico","Robert","Robin","Rocco","Roman","Romeo","Ron","Ruben","Ryan","Said","Salih","Sam","Sami","Sammy","Samuel","Sandro","Santino","Sascha","Sean","Sebastian","Selim","Semih","Shawn","Silas","Simeon","Simon","Sinan","Sky","Stefan","Steffen","Stephan","Steve","Steven","Sven","Sönke","Sören","Taha","Tamino","Tammo","Tarik","Tayler","Taylor","Teo","Theo","Theodor","Thies","Thilo","Thomas","Thorben","Thore","Thorge","Tiago","Til","Till","Tillmann","Tim","Timm","Timo","Timon","Timothy","Tino","Titus","Tizian","Tjark","Tobias","Tom","Tommy","Toni","Tony","Torben","Tore","Tristan","Tyler","Tyron","Umut","Valentin","Valentino","Veit","Victor","Viktor","Vin","Vincent","Vito","Vitus","Wilhelm","Willi","William","Willy","Xaver","Yannic","Yannick","Yannik","Yannis","Yasin","Youssef","Yunus","Yusuf","Yven","Yves","Ömer","Aaliyah","Abby","Abigail","Ada","Adelina","Adriana","Aileen","Aimee","Alana","Alea","Alena","Alessa","Alessia","Alexa","Alexandra","Alexia","Alexis","Aleyna","Alia","Alica","Alice","Alicia","Alina","Alisa","Alisha","Alissa","Aliya","Aliyah","Allegra","Alma","Alyssa","Amalia","Amanda","Amelia","Amelie","Amina","Amira","Amy","Ana","Anabel","Anastasia","Andrea","Angela","Angelina","Angelique","Anja","Ann","Anna","Annabel","Annabell","Annabelle","Annalena","Anne","Anneke","Annelie","Annemarie","Anni","Annie","Annika","Anny","Anouk","Antonia","Arda","Ariana","Ariane","Arwen","Ashley","Asya","Aurelia","Aurora","Ava","Ayleen","Aylin","Ayse","Azra","Betty","Bianca","Bianka","Caitlin","Cara","Carina","Carla","Carlotta","Carmen","Carolin","Carolina","Caroline","Cassandra","Catharina","Catrin","Cecile","Cecilia","Celia","Celina","Celine","Ceyda","Ceylin","Chantal","Charleen","Charlotta","Charlotte","Chayenne","Cheyenne","Chiara","Christin","Christina","Cindy","Claire","Clara","Clarissa","Colleen","Collien","Cora","Corinna","Cosima","Dana","Daniela","Daria","Darleen","Defne","Delia","Denise","Diana","Dilara","Dina","Dorothea","Ecrin","Eda","Eileen","Ela","Elaine","Elanur","Elea","Elena","Eleni","Eleonora","Eliana","Elif","Elina","Elisa","Elisabeth","Ella","Ellen","Elli","Elly","Elsa","Emelie","Emely","Emilia","Emilie","Emily","Emma","Emmely","Emmi","Emmy","Enie","Enna","Enya","Esma","Estelle","Esther","Eva","Evelin","Evelina","Eveline","Evelyn","Fabienne","Fatima","Fatma","Felicia","Felicitas","Felina","Femke","Fenja","Fine","Finia","Finja","Finnja","Fiona","Flora","Florentine","Francesca","Franka","Franziska","Frederike","Freya","Frida","Frieda","Friederike","Giada","Gina","Giulia","Giuliana","Greta","Hailey","Hana","Hanna","Hannah","Heidi","Helen","Helena","Helene","Helin","Henriette","Henrike","Hermine","Ida","Ilayda","Imke","Ina","Ines","Inga","Inka","Irem","Isa","Isabel","Isabell","Isabella","Isabelle","Ivonne","Jacqueline","Jamie","Jamila","Jana","Jane","Janin","Janina","Janine","Janna","Janne","Jara","Jasmin","Jasmina","Jasmine","Jella","Jenna","Jennifer","Jenny","Jessica","Jessy","Jette","Jil","Jill","Joana","Joanna","Joelina","Joeline","Joelle","Johanna","Joleen","Jolie","Jolien","Jolin","Jolina","Joline","Jona","Jonah","Jonna","Josefin","Josefine","Josephin","Josephine","Josie","Josy","Joy","Joyce","Judith","Judy","Jule","Julia","Juliana","Juliane","Julie","Julienne","Julika","Julina","Juna","Justine","Kaja","Karina","Karla","Karlotta","Karolina","Karoline","Kassandra","Katarina","Katharina","Kathrin","Katja","Katrin","Kaya","Kayra","Kiana","Kiara","Kim","Kimberley","Kimberly","Kira","Klara","Korinna","Kristin","Kyra","Laila","Lana","Lara","Larissa","Laura","Laureen","Lavinia","Lea","Leah","Leana","Leandra","Leann","Lee","Leila","Lena","Lene","Leni","Lenia","Lenja","Lenya","Leona","Leoni","Leonie","Leonora","Leticia","Letizia","Levke","Leyla","Lia","Liah","Liana","Lili","Lilia","Lilian","Liliana","Lilith","Lilli","Lillian","Lilly","Lily","Lina","Linda","Lindsay","Line","Linn","Linnea","Lisa","Lisann","Lisanne","Liv","Livia","Liz","Lola","Loreen","Lorena","Lotta","Lotte","Louisa","Louise","Luana","Luca","Lucia","Lucie","Lucienne","Lucy","Luisa","Luise","Luka","Luna","Luzie","Lya","Lydia","Lyn","Lynn","Madeleine","Madita","Madleen","Madlen","Magdalena","Maike","Mailin","Maira","Maja","Malena","Malia","Malin","Malina","Mandy","Mara","Marah","Mareike","Maren","Maria","Mariam","Marie","Marieke","Mariella","Marika","Marina","Marisa","Marissa","Marit","Marla","Marleen","Marlen","Marlena","Marlene","Marta","Martha","Mary","Maryam","Mathilda","Mathilde","Matilda","Maxi","Maxima","Maxine","Maya","Mayra","Medina","Medine","Meike","Melanie","Melek","Melike","Melina","Melinda","Melis","Melisa","Melissa","Merle","Merve","Meryem","Mette","Mia","Michaela","Michelle","Mieke","Mila","Milana","Milena","Milla","Mina","Mira","Miray","Miriam","Mirja","Mona","Monique","Nadine","Nadja","Naemi","Nancy","Naomi","Natalia","Natalie","Nathalie","Neele","Nela","Nele","Nelli","Nelly","Nia","Nicole","Nika","Nike","Nikita","Nila","Nina","Nisa","Noemi","Nora","Olivia","Patricia","Patrizia","Paula","Paulina","Pauline","Penelope","Philine","Phoebe","Pia","Rahel","Rania","Rebecca","Rebekka","Riana","Rieke","Rike","Romina","Romy","Ronja","Rosa","Rosalie","Ruby","Sabrina","Sahra","Sally","Salome","Samantha","Samia","Samira","Sandra","Sandy","Sanja","Saphira","Sara","Sarah","Saskia","Selin","Selina","Selma","Sena","Sidney","Sienna","Silja","Sina","Sinja","Smilla","Sofia","Sofie","Sonja","Sophia","Sophie","Soraya","Stefanie","Stella","Stephanie","Stina","Sude","Summer","Susanne","Svea","Svenja","Sydney","Tabea","Talea","Talia","Tamara","Tamia","Tamina","Tanja","Tara","Tarja","Teresa","Tessa","Thalea","Thalia","Thea","Theresa","Tia","Tina","Tomke","Tuana","Valentina","Valeria","Valerie","Vanessa","Vera","Veronika","Victoria","Viktoria","Viola","Vivian","Vivien","Vivienne","Wibke","Wiebke","Xenia","Yara","Yaren","Yasmin","Ylvi","Ylvie","Yvonne","Zara","Zehra","Zeynep","Zoe","Zoey","Zoé"], last_name:["Abel","Abicht","Abraham","Abramovic","Abt","Achilles","Achkinadze","Ackermann","Adam","Adams","Ade","Agostini","Ahlke","Ahrenberg","Ahrens","Aigner","Albert","Albrecht","Alexa","Alexander","Alizadeh","Allgeyer","Amann","Amberg","Anding","Anggreny","Apitz","Arendt","Arens","Arndt","Aryee","Aschenbroich","Assmus","Astafei","Auer","Axmann","Baarck","Bachmann","Badane","Bader","Baganz","Bahl","Bak","Balcer","Balck","Balkow","Balnuweit","Balzer","Banse","Barr","Bartels","Barth","Barylla","Baseda","Battke","Bauer","Bauermeister","Baumann","Baumeister","Bauschinger","Bauschke","Bayer","Beavogui","Beck","Beckel","Becker","Beckmann","Bedewitz","Beele","Beer","Beggerow","Beh","Behr","Behrenbruch","Belz","Bender","Benecke","Benner","Benninger","Benzing","Berends","Berger","Berner","Berning","Bertenbreiter","Best","Bethke","Betz","Beushausen","Beutelspacher","Beyer","Biba","Bichler","Bickel","Biedermann","Bieler","Bielert","Bienasch","Bienias","Biesenbach","Bigdeli","Birkemeyer","Bittner","Blank","Blaschek","Blassneck","Bloch","Blochwitz","Blockhaus","Blum","Blume","Bock","Bode","Bogdashin","Bogenrieder","Bohge","Bolm","Borgschulze","Bork","Bormann","Bornscheuer","Borrmann","Borsch","Boruschewski","Bos","Bosler","Bourrouag","Bouschen","Boxhammer","Boyde","Bozsik","Brand","Brandenburg","Brandis","Brandt","Brauer","Braun","Brehmer","Breitenstein","Bremer","Bremser","Brenner","Brettschneider","Breu","Breuer","Briesenick","Bringmann","Brinkmann","Brix","Broening","Brosch","Bruckmann","Bruder","Bruhns","Brunner","Bruns","Bräutigam","Brömme","Brüggmann","Buchholz","Buchrucker","Buder","Bultmann","Bunjes","Burger","Burghagen","Burkhard","Burkhardt","Burmeister","Busch","Buschbaum","Busemann","Buss","Busse","Bussmann","Byrd","Bäcker","Böhm","Bönisch","Börgeling","Börner","Böttner","Büchele","Bühler","Büker","Büngener","Bürger","Bürklein","Büscher","Büttner","Camara","Carlowitz","Carlsohn","Caspari","Caspers","Chapron","Christ","Cierpinski","Clarius","Cleem","Cleve","Co","Conrad","Cordes","Cornelsen","Cors","Cotthardt","Crews","Cronjäger","Crosskofp","Da","Dahm","Dahmen","Daimer","Damaske","Danneberg","Danner","Daub","Daubner","Daudrich","Dauer","Daum","Dauth","Dautzenberg","De","Decker","Deckert","Deerberg","Dehmel","Deja","Delonge","Demut","Dengler","Denner","Denzinger","Derr","Dertmann","Dethloff","Deuschle","Dieckmann","Diedrich","Diekmann","Dienel","Dies","Dietrich","Dietz","Dietzsch","Diezel","Dilla","Dingelstedt","Dippl","Dittmann","Dittmar","Dittmer","Dix","Dobbrunz","Dobler","Dohring","Dolch","Dold","Dombrowski","Donie","Doskoczynski","Dragu","Drechsler","Drees","Dreher","Dreier","Dreissigacker","Dressler","Drews","Duma","Dutkiewicz","Dyett","Dylus","Dächert","Döbel","Döring","Dörner","Dörre","Dück","Eberhard","Eberhardt","Ecker","Eckhardt","Edorh","Effler","Eggenmueller","Ehm","Ehmann","Ehrig","Eich","Eichmann","Eifert","Einert","Eisenlauer","Ekpo","Elbe","Eleyth","Elss","Emert","Emmelmann","Ender","Engel","Engelen","Engelmann","Eplinius","Erdmann","Erhardt","Erlei","Erm","Ernst","Ertl","Erwes","Esenwein","Esser","Evers","Everts","Ewald","Fahner","Faller","Falter","Farber","Fassbender","Faulhaber","Fehrig","Feld","Felke","Feller","Fenner","Fenske","Feuerbach","Fietz","Figl","Figura","Filipowski","Filsinger","Fincke","Fink","Finke","Fischer","Fitschen","Fleischer","Fleischmann","Floder","Florczak","Flore","Flottmann","Forkel","Forst","Frahmeke","Frank","Franke","Franta","Frantz","Franz","Franzis","Franzmann","Frauen","Frauendorf","Freigang","Freimann","Freimuth","Freisen","Frenzel","Frey","Fricke","Fried","Friedek","Friedenberg","Friedmann","Friedrich","Friess","Frisch","Frohn","Frosch","Fuchs","Fuhlbrügge","Fusenig","Fust","Förster","Gaba","Gabius","Gabler","Gadschiew","Gakstädter","Galander","Gamlin","Gamper","Gangnus","Ganzmann","Garatva","Gast","Gastel","Gatzka","Gauder","Gebhardt","Geese","Gehre","Gehrig","Gehring","Gehrke","Geiger","Geisler","Geissler","Gelling","Gens","Gerbennow","Gerdel","Gerhardt","Gerschler","Gerson","Gesell","Geyer","Ghirmai","Ghosh","Giehl","Gierisch","Giesa","Giesche","Gilde","Glatting","Goebel","Goedicke","Goldbeck","Goldfuss","Goldkamp","Goldkühle","Goller","Golling","Gollnow","Golomski","Gombert","Gotthardt","Gottschalk","Gotz","Goy","Gradzki","Graf","Grams","Grasse","Gratzky","Grau","Greb","Green","Greger","Greithanner","Greschner","Griem","Griese","Grimm","Gromisch","Gross","Grosser","Grossheim","Grosskopf","Grothaus","Grothkopp","Grotke","Grube","Gruber","Grundmann","Gruning","Gruszecki","Gröss","Grötzinger","Grün","Grüner","Gummelt","Gunkel","Gunther","Gutjahr","Gutowicz","Gutschank","Göbel","Göckeritz","Göhler","Görlich","Görmer","Götz","Götzelmann","Güldemeister","Günther","Günz","Gürbig","Haack","Haaf","Habel","Hache","Hackbusch","Hackelbusch","Hadfield","Hadwich","Haferkamp","Hahn","Hajek","Hallmann","Hamann","Hanenberger","Hannecker","Hanniske","Hansen","Hardy","Hargasser","Harms","Harnapp","Harter","Harting","Hartlieb","Hartmann","Hartwig","Hartz","Haschke","Hasler","Hasse","Hassfeld","Haug","Hauke","Haupt","Haverney","Heberstreit","Hechler","Hecht","Heck","Hedermann","Hehl","Heidelmann","Heidler","Heinemann","Heinig","Heinke","Heinrich","Heinze","Heiser","Heist","Hellmann","Helm","Helmke","Helpling","Hengmith","Henkel","Hennes","Henry","Hense","Hensel","Hentel","Hentschel","Hentschke","Hepperle","Herberger","Herbrand","Hering","Hermann","Hermecke","Herms","Herold","Herrmann","Herschmann","Hertel","Herweg","Herwig","Herzenberg","Hess","Hesse","Hessek","Hessler","Hetzler","Heuck","Heydemüller","Hiebl","Hildebrand","Hildenbrand","Hilgendorf","Hillard","Hiller","Hingsen","Hingst","Hinrichs","Hirsch","Hirschberg","Hirt","Hodea","Hoffman","Hoffmann","Hofmann","Hohenberger","Hohl","Hohn","Hohnheiser","Hold","Holdt","Holinski","Holl","Holtfreter","Holz","Holzdeppe","Holzner","Hommel","Honz","Hooss","Hoppe","Horak","Horn","Horna","Hornung","Hort","Howard","Huber","Huckestein","Hudak","Huebel","Hugo","Huhn","Hujo","Huke","Huls","Humbert","Huneke","Huth","Häber","Häfner","Höcke","Höft","Höhne","Hönig","Hördt","Hübenbecker","Hübl","Hübner","Hügel","Hüttcher","Hütter","Ibe","Ihly","Illing","Isak","Isekenmeier","Itt","Jacob","Jacobs","Jagusch","Jahn","Jahnke","Jakobs","Jakubczyk","Jambor","Jamrozy","Jander","Janich","Janke","Jansen","Jarets","Jaros","Jasinski","Jasper","Jegorov","Jellinghaus","Jeorga","Jerschabek","Jess","John","Jonas","Jossa","Jucken","Jung","Jungbluth","Jungton","Just","Jürgens","Kaczmarek","Kaesmacher","Kahl","Kahlert","Kahles","Kahlmeyer","Kaiser","Kalinowski","Kallabis","Kallensee","Kampf","Kampschulte","Kappe","Kappler","Karhoff","Karrass","Karst","Karsten","Karus","Kass","Kasten","Kastner","Katzinski","Kaufmann","Kaul","Kausemann","Kawohl","Kazmarek","Kedzierski","Keil","Keiner","Keller","Kelm","Kempe","Kemper","Kempter","Kerl","Kern","Kesselring","Kesselschläger","Kette","Kettenis","Keutel","Kick","Kiessling","Kinadeter","Kinzel","Kinzy","Kirch","Kirst","Kisabaka","Klaas","Klabuhn","Klapper","Klauder","Klaus","Kleeberg","Kleiber","Klein","Kleinert","Kleininger","Kleinmann","Kleinsteuber","Kleiss","Klemme","Klimczak","Klinger","Klink","Klopsch","Klose","Kloss","Kluge","Kluwe","Knabe","Kneifel","Knetsch","Knies","Knippel","Knobel","Knoblich","Knoll","Knorr","Knorscheidt","Knut","Kobs","Koch","Kochan","Kock","Koczulla","Koderisch","Koehl","Koehler","Koenig","Koester","Kofferschlager","Koha","Kohle","Kohlmann","Kohnle","Kohrt","Koj","Kolb","Koleiski","Kolokas","Komoll","Konieczny","Konig","Konow","Konya","Koob","Kopf","Kosenkow","Koster","Koszewski","Koubaa","Kovacs","Kowalick","Kowalinski","Kozakiewicz","Krabbe","Kraft","Kral","Kramer","Krauel","Kraus","Krause","Krauspe","Kreb","Krebs","Kreissig","Kresse","Kreutz","Krieger","Krippner","Krodinger","Krohn","Krol","Kron","Krueger","Krug","Kruger","Krull","Kruschinski","Krämer","Kröckert","Kröger","Krüger","Kubera","Kufahl","Kuhlee","Kuhnen","Kulimann","Kulma","Kumbernuss","Kummle","Kunz","Kupfer","Kupprion","Kuprion","Kurnicki","Kurrat","Kurschilgen","Kuschewitz","Kuschmann","Kuske","Kustermann","Kutscherauer","Kutzner","Kwadwo","Kähler","Käther","Köhler","Köhrbrück","Köhre","Kölotzei","König","Köpernick","Köseoglu","Kúhn","Kúhnert","Kühn","Kühnel","Kühnemund","Kühnert","Kühnke","Küsters","Küter","Laack","Lack","Ladewig","Lakomy","Lammert","Lamos","Landmann","Lang","Lange","Langfeld","Langhirt","Lanig","Lauckner","Lauinger","Laurén","Lausecker","Laux","Laws","Lax","Leberer","Lehmann","Lehner","Leibold","Leide","Leimbach","Leipold","Leist","Leiter","Leiteritz","Leitheim","Leiwesmeier","Lenfers","Lenk","Lenz","Lenzen","Leo","Lepthin","Lesch","Leschnik","Letzelter","Lewin","Lewke","Leyckes","Lg","Lichtenfeld","Lichtenhagen","Lichtl","Liebach","Liebe","Liebich","Liebold","Lieder","Lienshöft","Linden","Lindenberg","Lindenmayer","Lindner","Linke","Linnenbaum","Lippe","Lipske","Lipus","Lischka","Lobinger","Logsch","Lohmann","Lohre","Lohse","Lokar","Loogen","Lorenz","Losch","Loska","Lott","Loy","Lubina","Ludolf","Lufft","Lukoschek","Lutje","Lutz","Löser","Löwa","Lübke","Maak","Maczey","Madetzky","Madubuko","Mai","Maier","Maisch","Malek","Malkus","Mallmann","Malucha","Manns","Manz","Marahrens","Marchewski","Margis","Markowski","Marl","Marner","Marquart","Marschek","Martel","Marten","Martin","Marx","Marxen","Mathes","Mathies","Mathiszik","Matschke","Mattern","Matthes","Matula","Mau","Maurer","Mauroff","May","Maybach","Mayer","Mebold","Mehl","Mehlhorn","Mehlorn","Meier","Meisch","Meissner","Meloni","Melzer","Menga","Menne","Mensah","Mensing","Merkel","Merseburg","Mertens","Mesloh","Metzger","Metzner","Mewes","Meyer","Michallek","Michel","Mielke","Mikitenko","Milde","Minah","Mintzlaff","Mockenhaupt","Moede","Moedl","Moeller","Moguenara","Mohr","Mohrhard","Molitor","Moll","Moller","Molzan","Montag","Moormann","Mordhorst","Morgenstern","Morhelfer","Moritz","Moser","Motchebon","Motzenbbäcker","Mrugalla","Muckenthaler","Mues","Muller","Mulrain","Mächtig","Mäder","Möcks","Mögenburg","Möhsner","Möldner","Möllenbeck","Möller","Möllinger","Mörsch","Mühleis","Müller","Münch","Nabein","Nabow","Nagel","Nannen","Nastvogel","Nau","Naubert","Naumann","Ne","Neimke","Nerius","Neubauer","Neubert","Neuendorf","Neumair","Neumann","Neupert","Neurohr","Neuschwander","Newton","Ney","Nicolay","Niedermeier","Nieklauson","Niklaus","Nitzsche","Noack","Nodler","Nolte","Normann","Norris","Northoff","Nowak","Nussbeck","Nwachukwu","Nytra","Nöh","Oberem","Obergföll","Obermaier","Ochs","Oeser","Olbrich","Onnen","Ophey","Oppong","Orth","Orthmann","Oschkenat","Osei","Osenberg","Ostendarp","Ostwald","Otte","Otto","Paesler","Pajonk","Pallentin","Panzig","Paschke","Patzwahl","Paukner","Peselman","Peter","Peters","Petzold","Pfeiffer","Pfennig","Pfersich","Pfingsten","Pflieger","Pflügner","Philipp","Pichlmaier","Piesker","Pietsch","Pingpank","Pinnock","Pippig","Pitschugin","Plank","Plass","Platzer","Plauk","Plautz","Pletsch","Plotzitzka","Poehn","Poeschl","Pogorzelski","Pohl","Pohland","Pohle","Polifka","Polizzi","Pollmächer","Pomp","Ponitzsch","Porsche","Porth","Poschmann","Poser","Pottel","Prah","Prange","Prediger","Pressler","Preuk","Preuss","Prey","Priemer","Proske","Pusch","Pöche","Pöge","Raabe","Rabenstein","Rach","Radtke","Rahn","Ranftl","Rangen","Ranz","Rapp","Rath","Rau","Raubuch","Raukuc","Rautenkranz","Rehwagen","Reiber","Reichardt","Reichel","Reichling","Reif","Reifenrath","Reimann","Reinberg","Reinelt","Reinhardt","Reinke","Reitze","Renk","Rentz","Renz","Reppin","Restle","Restorff","Retzke","Reuber","Reumann","Reus","Reuss","Reusse","Rheder","Rhoden","Richards","Richter","Riedel","Riediger","Rieger","Riekmann","Riepl","Riermeier","Riester","Riethmüller","Rietmüller","Rietscher","Ringel","Ringer","Rink","Ripken","Ritosek","Ritschel","Ritter","Rittweg","Ritz","Roba","Rockmeier","Rodehau","Rodowski","Roecker","Roggatz","Rohländer","Rohrer","Rokossa","Roleder","Roloff","Roos","Rosbach","Roschinsky","Rose","Rosenauer","Rosenbauer","Rosenthal","Rosksch","Rossberg","Rossler","Roth","Rother","Ruch","Ruckdeschel","Rumpf","Rupprecht","Ruth","Ryjikh","Ryzih","Rädler","Räntsch","Rödiger","Röse","Röttger","Rücker","Rüdiger","Rüter","Sachse","Sack","Saflanis","Sagafe","Sagonas","Sahner","Saile","Sailer","Salow","Salzer","Salzmann","Sammert","Sander","Sarvari","Sattelmaier","Sauer","Sauerland","Saumweber","Savoia","Scc","Schacht","Schaefer","Schaffarzik","Schahbasian","Scharf","Schedler","Scheer","Schelk","Schellenbeck","Schembera","Schenk","Scherbarth","Scherer","Schersing","Scherz","Scheurer","Scheuring","Scheytt","Schielke","Schieskow","Schildhauer","Schilling","Schima","Schimmer","Schindzielorz","Schirmer","Schirrmeister","Schlachter","Schlangen","Schlawitz","Schlechtweg","Schley","Schlicht","Schlitzer","Schmalzle","Schmid","Schmidt","Schmidtchen","Schmitt","Schmitz","Schmuhl","Schneider","Schnelting","Schnieder","Schniedermeier","Schnürer","Schoberg","Scholz","Schonberg","Schondelmaier","Schorr","Schott","Schottmann","Schouren","Schrader","Schramm","Schreck","Schreiber","Schreiner","Schreiter","Schroder","Schröder","Schuermann","Schuff","Schuhaj","Schuldt","Schult","Schulte","Schultz","Schultze","Schulz","Schulze","Schumacher","Schumann","Schupp","Schuri","Schuster","Schwab","Schwalm","Schwanbeck","Schwandke","Schwanitz","Schwarthoff","Schwartz","Schwarz","Schwarzer","Schwarzkopf","Schwarzmeier","Schwatlo","Schweisfurth","Schwennen","Schwerdtner","Schwidde","Schwirkschlies","Schwuchow","Schäfer","Schäffel","Schäffer","Schäning","Schöckel","Schönball","Schönbeck","Schönberg","Schönebeck","Schönenberger","Schönfeld","Schönherr","Schönlebe","Schötz","Schüler","Schüppel","Schütz","Schütze","Seeger","Seelig","Sehls","Seibold","Seidel","Seiders","Seigel","Seiler","Seitz","Semisch","Senkel","Sewald","Siebel","Siebert","Siegling","Sielemann","Siemon","Siener","Sievers","Siewert","Sihler","Sillah","Simon","Sinnhuber","Sischka","Skibicki","Sladek","Slotta","Smieja","Soboll","Sokolowski","Soller","Sollner","Sommer","Somssich","Sonn","Sonnabend","Spahn","Spank","Spelmeyer","Spiegelburg","Spielvogel","Spinner","Spitzmüller","Splinter","Sporrer","Sprenger","Spöttel","Stahl","Stang","Stanger","Stauss","Steding","Steffen","Steffny","Steidl","Steigauf","Stein","Steinecke","Steinert","Steinkamp","Steinmetz","Stelkens","Stengel","Stengl","Stenzel","Stepanov","Stephan","Stern","Steuk","Stief","Stifel","Stoll","Stolle","Stolz","Storl","Storp","Stoutjesdijk","Stratmann","Straub","Strausa","Streck","Streese","Strege","Streit","Streller","Strieder","Striezel","Strogies","Strohschank","Strunz","Strutz","Stube","Stöckert","Stöppler","Stöwer","Stürmer","Suffa","Sujew","Sussmann","Suthe","Sutschet","Swillims","Szendrei","Sören","Sürth","Tafelmeier","Tang","Tasche","Taufratshofer","Tegethof","Teichmann","Tepper","Terheiden","Terlecki","Teufel","Theele","Thieke","Thimm","Thiomas","Thomas","Thriene","Thränhardt","Thust","Thyssen","Thöne","Tidow","Tiedtke","Tietze","Tilgner","Tillack","Timmermann","Tischler","Tischmann","Tittman","Tivontschik","Tonat","Tonn","Trampeli","Trauth","Trautmann","Travan","Treff","Tremmel","Tress","Tsamonikian","Tschiers","Tschirch","Tuch","Tucholke","Tudow","Tuschmo","Tächl","Többen","Töpfer","Uhlemann","Uhlig","Uhrig","Uibel","Uliczka","Ullmann","Ullrich","Umbach","Umlauft","Umminger","Unger","Unterpaintner","Urban","Urbaniak","Urbansky","Urhig","Vahlensieck","Van","Vangermain","Vater","Venghaus","Verniest","Verzi","Vey","Viellehner","Vieweg","Voelkel","Vogel","Vogelgsang","Vogt","Voigt","Vokuhl","Volk","Volker","Volkmann","Von","Vona","Vontein","Wachenbrunner","Wachtel","Wagner","Waibel","Wakan","Waldmann","Wallner","Wallstab","Walter","Walther","Walton","Walz","Wanner","Wartenberg","Waschbüsch","Wassilew","Wassiluk","Weber","Wehrsen","Weidlich","Weidner","Weigel","Weight","Weiler","Weimer","Weis","Weiss","Weller","Welsch","Welz","Welzel","Weniger","Wenk","Werle","Werner","Werrmann","Wessel","Wessinghage","Weyel","Wezel","Wichmann","Wickert","Wiebe","Wiechmann","Wiegelmann","Wierig","Wiese","Wieser","Wilhelm","Wilky","Will","Willwacher","Wilts","Wimmer","Winkelmann","Winkler","Winter","Wischek","Wischer","Wissing","Wittich","Wittl","Wolf","Wolfarth","Wolff","Wollenberg","Wollmann","Woytkowska","Wujak","Wurm","Wyludda","Wölpert","Wöschler","Wühn","Wünsche","Zach","Zaczkiewicz","Zahn","Zaituc","Zandt","Zanner","Zapletal","Zauber","Zeidler","Zekl","Zender","Zeuch","Zeyen","Zeyhle","Ziegler","Zimanyi","Zimmer","Zimmermann","Zinser","Zintl","Zipp","Zipse","Zschunke","Zuber","Zwiener","Zümsande","Östringer","Überacker"],prefix:["Hr.","Fr.","Dr.","Prof. Dr."],nobility_title_prefix:["zu","von","vom","von der"],name:["#{prefix} #{first_name} #{last_name}","#{first_name} #{nobility_title_prefix} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}"]},de.phone_number={formats:["(0###) #########","(0####) #######","+49-###-#######","+49-####-########"]},de.cell_phone={formats:["+49-1##-#######","+49-1###-########"]}; -},{}],54:[function(require,module,exports){ +},{}],55:[function(require,module,exports){ var de_AT={};module.exports=de_AT,de_AT.title="German (Austria)",de_AT.address={country:["Ägypten","Äquatorialguinea","Äthiopien","Österreich","Afghanistan","Albanien","Algerien","Amerikanisch-Samoa","Amerikanische Jungferninseln","Andorra","Angola","Anguilla","Antarktis","Antigua und Barbuda","Argentinien","Armenien","Aruba","Aserbaidschan","Australien","Bahamas","Bahrain","Bangladesch","Barbados","Belarus","Belgien","Belize","Benin","die Bermudas","Bhutan","Bolivien","Bosnien und Herzegowina","Botsuana","Bouvetinsel","Brasilien","Britische Jungferninseln","Britisches Territorium im Indischen Ozean","Brunei Darussalam","Bulgarien","Burkina Faso","Burundi","Chile","China","Cookinseln","Costa Rica","Dänemark","Demokratische Republik Kongo","Demokratische Volksrepublik Korea","Deutschland","Dominica","Dominikanische Republik","Dschibuti","Ecuador","El Salvador","Eritrea","Estland","Färöer","Falklandinseln","Fidschi","Finnland","Frankreich","Französisch-Guayana","Französisch-Polynesien","Französische Gebiete im südlichen Indischen Ozean","Gabun","Gambia","Georgien","Ghana","Gibraltar","Grönland","Grenada","Griechenland","Guadeloupe","Guam","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Heard und McDonaldinseln","Honduras","Hongkong","Indien","Indonesien","Irak","Iran","Irland","Island","Israel","Italien","Jamaika","Japan","Jemen","Jordanien","Jugoslawien","Kaimaninseln","Kambodscha","Kamerun","Kanada","Kap Verde","Kasachstan","Katar","Kenia","Kirgisistan","Kiribati","Kleinere amerikanische Überseeinseln","Kokosinseln","Kolumbien","Komoren","Kongo","Kroatien","Kuba","Kuwait","Laos","Lesotho","Lettland","Libanon","Liberia","Libyen","Liechtenstein","Litauen","Luxemburg","Macau","Madagaskar","Malawi","Malaysia","Malediven","Mali","Malta","ehemalige jugoslawische Republik Mazedonien","Marokko","Marshallinseln","Martinique","Mauretanien","Mauritius","Mayotte","Mexiko","Mikronesien","Monaco","Mongolei","Montserrat","Mosambik","Myanmar","Nördliche Marianen","Namibia","Nauru","Nepal","Neukaledonien","Neuseeland","Nicaragua","Niederländische Antillen","Niederlande","Niger","Nigeria","Niue","Norfolkinsel","Norwegen","Oman","Osttimor","Pakistan","Palau","Panama","Papua-Neuguinea","Paraguay","Peru","Philippinen","Pitcairninseln","Polen","Portugal","Puerto Rico","Réunion","Republik Korea","Republik Moldau","Ruanda","Rumänien","Russische Föderation","São Tomé und Príncipe","Südafrika","Südgeorgien und Südliche Sandwichinseln","Salomonen","Sambia","Samoa","San Marino","Saudi-Arabien","Schweden","Schweiz","Senegal","Seychellen","Sierra Leone","Simbabwe","Singapur","Slowakei","Slowenien","Somalien","Spanien","Sri Lanka","St. Helena","St. Kitts und Nevis","St. Lucia","St. Pierre und Miquelon","St. Vincent und die Grenadinen","Sudan","Surinam","Svalbard und Jan Mayen","Swasiland","Syrien","Türkei","Tadschikistan","Taiwan","Tansania","Thailand","Togo","Tokelau","Tonga","Trinidad und Tobago","Tschad","Tschechische Republik","Tunesien","Turkmenistan","Turks- und Caicosinseln","Tuvalu","Uganda","Ukraine","Ungarn","Uruguay","Usbekistan","Vanuatu","Vatikanstadt","Venezuela","Vereinigte Arabische Emirate","Vereinigte Staaten","Vereinigtes Königreich","Vietnam","Wallis und Futuna","Weihnachtsinsel","Westsahara","Zentralafrikanische Republik","Zypern"],street_root:["Ahorn","Ahorngasse (St. Andrä)","Alleestraße (Poysbrunn)","Alpenlandstraße","Alte Poststraße","Alte Ufergasse","Am Kronawett (Hagenbrunn)","Am Mühlwasser","Am Rebenhang","Am Sternweg","Anton Wildgans-Straße","Auer-von-Welsbach-Weg","Auf der Stift","Aufeldgasse","Bahngasse","Bahnhofstraße","Bahnstraße (Gerhaus)","Basteigasse","Berggasse","Bergstraße","Birkenweg","Blasiussteig","Blattur","Bruderhofgasse","Brunnelligasse","Bühelweg","Darnautgasse","Donaugasse","Dorfplatz (Haselbach)","Dr.-Oberreiter-Straße","Dr.Karl Holoubek-Str.","Drautal Bundesstraße","Dürnrohrer Straße","Ebenthalerstraße","Eckgrabenweg","Erlenstraße","Erlenweg","Eschenweg","Etrichgasse","Fassergasse","Feichteggerwiese","Feld-Weg","Feldgasse","Feldstapfe","Fischpointweg","Flachbergstraße","Flurweg","Franz Schubert-Gasse","Franz-Schneeweiß-Weg","Franz-von-Assisi-Straße","Fritz-Pregl-Straße","Fuchsgrubenweg","Födlerweg","Föhrenweg","Fünfhaus (Paasdorf)","Gabelsbergerstraße","Gartenstraße","Geigen","Geigergasse","Gemeindeaugasse","Gemeindeplatz","Georg-Aichinger-Straße","Glanfeldbachweg","Graben (Burgauberg)","Grub","Gröretgasse","Grünbach","Gösting","Hainschwang","Hans-Mauracher-Straße","Hart","Teichstraße","Hauptplatz","Hauptstraße","Heideweg","Heinrich Landauer Gasse","Helenengasse","Hermann von Gilmweg","Hermann-Löns-Gasse","Herminengasse","Hernstorferstraße","Hirsdorf","Hochfeistritz","Hochhaus Neue Donau","Hof","Hussovits Gasse","Höggen","Hütten","Janzgasse","Jochriemgutstraße","Johann-Strauß-Gasse","Julius-Raab-Straße","Kahlenberger Straße","Karl Kraft-Straße","Kegelprielstraße","Keltenberg-Eponaweg","Kennedybrücke","Kerpelystraße","Kindergartenstraße","Kinderheimgasse","Kirchenplatz","Kirchweg","Klagenfurter Straße","Klamm","Kleinbaumgarten","Klingergasse","Koloniestraße","Konrad-Duden-Gasse","Krankenhausstraße","Kubinstraße","Köhldorfergasse","Lackenweg","Lange Mekotte","Leifling","Leopold Frank-Straße (Pellendorf)","Lerchengasse (Pirka)","Lichtensternsiedlung V","Lindenhofstraße","Lindenweg","Luegstraße","Maierhof","Malerweg","Mitterweg","Mittlere Hauptstraße","Moosbachgasse","Morettigasse","Musikpavillon Riezlern","Mühlboden","Mühle","Mühlenweg","Neustiftgasse","Niederegg","Niedergams","Nordwestbahnbrücke","Oberbödenalm","Obere Berggasse","Oedt","Am Färberberg","Ottogasse","Paul Peters-Gasse","Perspektivstraße","Poppichl","Privatweg","Prixgasse","Pyhra","Radetzkystraße","Raiden","Reichensteinstraße","Reitbauernstraße","Reiterweg","Reitschulgasse","Ringweg","Rupertistraße","Römerstraße","Römerweg","Sackgasse","Schaunbergerstraße","Schloßweg","Schulgasse (Langeck)","Schönholdsiedlung","Seeblick","Seestraße","Semriacherstraße","Simling","Sipbachzeller Straße","Sonnenweg","Spargelfeldgasse","Spiesmayrweg","Sportplatzstraße","St.Ulrich","Steilmannstraße","Steingrüneredt","Strassfeld","Straßerau","Stöpflweg","Stüra","Taferngasse","Tennweg","Thomas Koschat-Gasse","Tiroler Straße","Torrogasse","Uferstraße (Schwarzau am Steinfeld)","Unterdörfl","Unterer Sonnrainweg","Verwaltersiedlung","Waldhang","Wasen","Weidenstraße","Weiherweg","Wettsteingasse","Wiener Straße","Windisch","Zebragasse","Zellerstraße","Ziehrerstraße","Zulechnerweg","Zwergjoch","Ötzbruck"],building_number:["###","##","#","##a","##b","##c"],secondary_address:["Apt. ###","Zimmer ###","# OG"],postcode:["####"],state:["Burgenland","Kärnten","Niederösterreich","Oberösterreich","Salzburg","Steiermark","Tirol","Vorarlberg","Wien"],state_abbr:["Bgld.","Ktn.","NÖ","OÖ","Sbg.","Stmk.","T","Vbg.","W"],city_name:["Aigen im Mühlkreis","Allerheiligen bei Wildon","Altenfelden","Arriach","Axams","Baumgartenberg","Bergern im Dunkelsteinerwald","Berndorf bei Salzburg","Bregenz","Breitenbach am Inn","Deutsch-Wagram","Dienten am Hochkönig","Dietach","Dornbirn","Dürnkrut","Eben im Pongau","Ebenthal in Kärnten","Eichgraben","Eisenstadt","Ellmau","Feistritz am Wechsel","Finkenberg","Fiss","Frantschach-St. Gertraud","Fritzens","Gams bei Hieflau","Geiersberg","Graz","Großhöflein","Gößnitz","Hartl","Hausleiten","Herzogenburg","Hinterhornbach","Hochwolkersdorf","Ilz","Ilztal","Innerbraz","Innsbruck","Itter","Jagerberg","Jeging","Johnsbach","Johnsdorf-Brunn","Jungholz","Kirchdorf am Inn","Klagenfurt","Kottes-Purk","Krumau am Kamp","Krumbach","Lavamünd","Lech","Linz","Ludesch","Lödersdorf","Marbach an der Donau","Mattsee","Mautern an der Donau","Mauterndorf","Mitterbach am Erlaufsee","Neudorf bei Passail","Neudorf bei Staatz","Neukirchen an der Enknach","Neustift an der Lafnitz","Niederleis","Oberndorf in Tirol","Oberstorcha","Oberwaltersdorf","Oed-Oehling","Ort im Innkreis","Pilgersdorf","Pitschgau","Pollham","Preitenegg","Purbach am Neusiedler See","Rabenwald","Raiding","Rastenfeld","Ratten","Rettenegg","Salzburg","Sankt Johann im Saggautal","St. Peter am Kammersberg","St. Pölten","St. Veit an der Glan","Taxenbach","Tragwein","Trebesing","Trieben","Turnau","Ungerdorf","Unterauersbach","Unterstinkenbrunn","Untertilliach","Uttendorf","Vals","Velden am Wörther See","Viehhofen","Villach","Vitis","Waidhofen an der Thaya","Waldkirchen am Wesen","Weißkirchen an der Traun","Wien","Wimpassing im Schwarzatale","Ybbs an der Donau","Ybbsitz","Yspertal","Zeillern","Zell am Pettenfirst","Zell an der Pram","Zerlach","Zwölfaxing","Öblarn","Übelbach","Überackern","Übersaxen","Übersbach"],city:["#{city_name}"],street_name:["#{street_root}"],street_address:["#{street_name} #{building_number}"],default_country:["Österreich"]},de_AT.company={suffix:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],legal_form:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"]},de_AT.internet={free_email:["gmail.com","yahoo.com","hotmail.com"],domain_suffix:["com","info","name","net","org","de","ch","at"]},de_AT.name={first_name:["Aaron","Abdul","Abdullah","Adam","Adrian","Adriano","Ahmad","Ahmed","Ahmet","Alan","Albert","Alessandro","Alessio","Alex","Alexander","Alfred","Ali","Amar","Amir","Amon","Andre","Andreas","Andrew","Angelo","Ansgar","Anthony","Anton","Antonio","Arda","Arian","Armin","Arne","Arno","Arthur","Artur","Arved","Arvid","Ayman","Baran","Baris","Bastian","Batuhan","Bela","Ben","Benedikt","Benjamin","Bennet","Bennett","Benno","Bent","Berat","Berkay","Bernd","Bilal","Bjarne","Björn","Bo","Boris","Brandon","Brian","Bruno","Bryan","Burak","Calvin","Can","Carl","Carlo","Carlos","Caspar","Cedric","Cedrik","Cem","Charlie","Chris","Christian","Christiano","Christoph","Christopher","Claas","Clemens","Colin","Collin","Conner","Connor","Constantin","Corvin","Curt","Damian","Damien","Daniel","Danilo","Danny","Darian","Dario","Darius","Darren","David","Davide","Davin","Dean","Deniz","Dennis","Denny","Devin","Diego","Dion","Domenic","Domenik","Dominic","Dominik","Dorian","Dustin","Dylan","Ecrin","Eddi","Eddy","Edgar","Edwin","Efe","Ege","Elia","Eliah","Elias","Elijah","Emanuel","Emil","Emilian","Emilio","Emir","Emirhan","Emre","Enes","Enno","Enrico","Eren","Eric","Erik","Etienne","Fabian","Fabien","Fabio","Fabrice","Falk","Felix","Ferdinand","Fiete","Filip","Finlay","Finley","Finn","Finnley","Florian","Francesco","Franz","Frederic","Frederick","Frederik","Friedrich","Fritz","Furkan","Fynn","Gabriel","Georg","Gerrit","Gian","Gianluca","Gino","Giuliano","Giuseppe","Gregor","Gustav","Hagen","Hamza","Hannes","Hanno","Hans","Hasan","Hassan","Hauke","Hendrik","Hennes","Henning","Henri","Henrick","Henrik","Henry","Hugo","Hussein","Ian","Ibrahim","Ilias","Ilja","Ilyas","Immanuel","Ismael","Ismail","Ivan","Iven","Jack","Jacob","Jaden","Jakob","Jamal","James","Jamie","Jan","Janek","Janis","Janne","Jannek","Jannes","Jannik","Jannis","Jano","Janosch","Jared","Jari","Jarne","Jarno","Jaron","Jason","Jasper","Jay","Jayden","Jayson","Jean","Jens","Jeremias","Jeremie","Jeremy","Jermaine","Jerome","Jesper","Jesse","Jim","Jimmy","Joe","Joel","Joey","Johann","Johannes","John","Johnny","Jon","Jona","Jonah","Jonas","Jonathan","Jonte","Joost","Jordan","Joris","Joscha","Joschua","Josef","Joseph","Josh","Joshua","Josua","Juan","Julian","Julien","Julius","Juri","Justin","Justus","Kaan","Kai","Kalle","Karim","Karl","Karlo","Kay","Keanu","Kenan","Kenny","Keno","Kerem","Kerim","Kevin","Kian","Kilian","Kim","Kimi","Kjell","Klaas","Klemens","Konrad","Konstantin","Koray","Korbinian","Kurt","Lars","Lasse","Laurence","Laurens","Laurenz","Laurin","Lean","Leander","Leandro","Leif","Len","Lenn","Lennard","Lennart","Lennert","Lennie","Lennox","Lenny","Leo","Leon","Leonard","Leonardo","Leonhard","Leonidas","Leopold","Leroy","Levent","Levi","Levin","Lewin","Lewis","Liam","Lian","Lias","Lino","Linus","Lio","Lion","Lionel","Logan","Lorenz","Lorenzo","Loris","Louis","Luan","Luc","Luca","Lucas","Lucian","Lucien","Ludwig","Luis","Luiz","Luk","Luka","Lukas","Luke","Lutz","Maddox","Mads","Magnus","Maik","Maksim","Malik","Malte","Manuel","Marc","Marcel","Marco","Marcus","Marek","Marian","Mario","Marius","Mark","Marko","Markus","Marlo","Marlon","Marten","Martin","Marvin","Marwin","Mateo","Mathis","Matis","Mats","Matteo","Mattes","Matthias","Matthis","Matti","Mattis","Maurice","Max","Maxim","Maximilian","Mehmet","Meik","Melvin","Merlin","Mert","Michael","Michel","Mick","Miguel","Mika","Mikail","Mike","Milan","Milo","Mio","Mirac","Mirco","Mirko","Mohamed","Mohammad","Mohammed","Moritz","Morten","Muhammed","Murat","Mustafa","Nathan","Nathanael","Nelson","Neo","Nevio","Nick","Niclas","Nico","Nicolai","Nicolas","Niels","Nikita","Niklas","Niko","Nikolai","Nikolas","Nils","Nino","Noah","Noel","Norman","Odin","Oke","Ole","Oliver","Omar","Onur","Oscar","Oskar","Pascal","Patrice","Patrick","Paul","Peer","Pepe","Peter","Phil","Philip","Philipp","Pierre","Piet","Pit","Pius","Quentin","Quirin","Rafael","Raik","Ramon","Raphael","Rasmus","Raul","Rayan","René","Ricardo","Riccardo","Richard","Rick","Rico","Robert","Robin","Rocco","Roman","Romeo","Ron","Ruben","Ryan","Said","Salih","Sam","Sami","Sammy","Samuel","Sandro","Santino","Sascha","Sean","Sebastian","Selim","Semih","Shawn","Silas","Simeon","Simon","Sinan","Sky","Stefan","Steffen","Stephan","Steve","Steven","Sven","Sönke","Sören","Taha","Tamino","Tammo","Tarik","Tayler","Taylor","Teo","Theo","Theodor","Thies","Thilo","Thomas","Thorben","Thore","Thorge","Tiago","Til","Till","Tillmann","Tim","Timm","Timo","Timon","Timothy","Tino","Titus","Tizian","Tjark","Tobias","Tom","Tommy","Toni","Tony","Torben","Tore","Tristan","Tyler","Tyron","Umut","Valentin","Valentino","Veit","Victor","Viktor","Vin","Vincent","Vito","Vitus","Wilhelm","Willi","William","Willy","Xaver","Yannic","Yannick","Yannik","Yannis","Yasin","Youssef","Yunus","Yusuf","Yven","Yves","Ömer","Aaliyah","Abby","Abigail","Ada","Adelina","Adriana","Aileen","Aimee","Alana","Alea","Alena","Alessa","Alessia","Alexa","Alexandra","Alexia","Alexis","Aleyna","Alia","Alica","Alice","Alicia","Alina","Alisa","Alisha","Alissa","Aliya","Aliyah","Allegra","Alma","Alyssa","Amalia","Amanda","Amelia","Amelie","Amina","Amira","Amy","Ana","Anabel","Anastasia","Andrea","Angela","Angelina","Angelique","Anja","Ann","Anna","Annabel","Annabell","Annabelle","Annalena","Anne","Anneke","Annelie","Annemarie","Anni","Annie","Annika","Anny","Anouk","Antonia","Arda","Ariana","Ariane","Arwen","Ashley","Asya","Aurelia","Aurora","Ava","Ayleen","Aylin","Ayse","Azra","Betty","Bianca","Bianka","Caitlin","Cara","Carina","Carla","Carlotta","Carmen","Carolin","Carolina","Caroline","Cassandra","Catharina","Catrin","Cecile","Cecilia","Celia","Celina","Celine","Ceyda","Ceylin","Chantal","Charleen","Charlotta","Charlotte","Chayenne","Cheyenne","Chiara","Christin","Christina","Cindy","Claire","Clara","Clarissa","Colleen","Collien","Cora","Corinna","Cosima","Dana","Daniela","Daria","Darleen","Defne","Delia","Denise","Diana","Dilara","Dina","Dorothea","Ecrin","Eda","Eileen","Ela","Elaine","Elanur","Elea","Elena","Eleni","Eleonora","Eliana","Elif","Elina","Elisa","Elisabeth","Ella","Ellen","Elli","Elly","Elsa","Emelie","Emely","Emilia","Emilie","Emily","Emma","Emmely","Emmi","Emmy","Enie","Enna","Enya","Esma","Estelle","Esther","Eva","Evelin","Evelina","Eveline","Evelyn","Fabienne","Fatima","Fatma","Felicia","Felicitas","Felina","Femke","Fenja","Fine","Finia","Finja","Finnja","Fiona","Flora","Florentine","Francesca","Franka","Franziska","Frederike","Freya","Frida","Frieda","Friederike","Giada","Gina","Giulia","Giuliana","Greta","Hailey","Hana","Hanna","Hannah","Heidi","Helen","Helena","Helene","Helin","Henriette","Henrike","Hermine","Ida","Ilayda","Imke","Ina","Ines","Inga","Inka","Irem","Isa","Isabel","Isabell","Isabella","Isabelle","Ivonne","Jacqueline","Jamie","Jamila","Jana","Jane","Janin","Janina","Janine","Janna","Janne","Jara","Jasmin","Jasmina","Jasmine","Jella","Jenna","Jennifer","Jenny","Jessica","Jessy","Jette","Jil","Jill","Joana","Joanna","Joelina","Joeline","Joelle","Johanna","Joleen","Jolie","Jolien","Jolin","Jolina","Joline","Jona","Jonah","Jonna","Josefin","Josefine","Josephin","Josephine","Josie","Josy","Joy","Joyce","Judith","Judy","Jule","Julia","Juliana","Juliane","Julie","Julienne","Julika","Julina","Juna","Justine","Kaja","Karina","Karla","Karlotta","Karolina","Karoline","Kassandra","Katarina","Katharina","Kathrin","Katja","Katrin","Kaya","Kayra","Kiana","Kiara","Kim","Kimberley","Kimberly","Kira","Klara","Korinna","Kristin","Kyra","Laila","Lana","Lara","Larissa","Laura","Laureen","Lavinia","Lea","Leah","Leana","Leandra","Leann","Lee","Leila","Lena","Lene","Leni","Lenia","Lenja","Lenya","Leona","Leoni","Leonie","Leonora","Leticia","Letizia","Levke","Leyla","Lia","Liah","Liana","Lili","Lilia","Lilian","Liliana","Lilith","Lilli","Lillian","Lilly","Lily","Lina","Linda","Lindsay","Line","Linn","Linnea","Lisa","Lisann","Lisanne","Liv","Livia","Liz","Lola","Loreen","Lorena","Lotta","Lotte","Louisa","Louise","Luana","Luca","Lucia","Lucie","Lucienne","Lucy","Luisa","Luise","Luka","Luna","Luzie","Lya","Lydia","Lyn","Lynn","Madeleine","Madita","Madleen","Madlen","Magdalena","Maike","Mailin","Maira","Maja","Malena","Malia","Malin","Malina","Mandy","Mara","Marah","Mareike","Maren","Maria","Mariam","Marie","Marieke","Mariella","Marika","Marina","Marisa","Marissa","Marit","Marla","Marleen","Marlen","Marlena","Marlene","Marta","Martha","Mary","Maryam","Mathilda","Mathilde","Matilda","Maxi","Maxima","Maxine","Maya","Mayra","Medina","Medine","Meike","Melanie","Melek","Melike","Melina","Melinda","Melis","Melisa","Melissa","Merle","Merve","Meryem","Mette","Mia","Michaela","Michelle","Mieke","Mila","Milana","Milena","Milla","Mina","Mira","Miray","Miriam","Mirja","Mona","Monique","Nadine","Nadja","Naemi","Nancy","Naomi","Natalia","Natalie","Nathalie","Neele","Nela","Nele","Nelli","Nelly","Nia","Nicole","Nika","Nike","Nikita","Nila","Nina","Nisa","Noemi","Nora","Olivia","Patricia","Patrizia","Paula","Paulina","Pauline","Penelope","Philine","Phoebe","Pia","Rahel","Rania","Rebecca","Rebekka","Riana","Rieke","Rike","Romina","Romy","Ronja","Rosa","Rosalie","Ruby","Sabrina","Sahra","Sally","Salome","Samantha","Samia","Samira","Sandra","Sandy","Sanja","Saphira","Sara","Sarah","Saskia","Selin","Selina","Selma","Sena","Sidney","Sienna","Silja","Sina","Sinja","Smilla","Sofia","Sofie","Sonja","Sophia","Sophie","Soraya","Stefanie","Stella","Stephanie","Stina","Sude","Summer","Susanne","Svea","Svenja","Sydney","Tabea","Talea","Talia","Tamara","Tamia","Tamina","Tanja","Tara","Tarja","Teresa","Tessa","Thalea","Thalia","Thea","Theresa","Tia","Tina","Tomke","Tuana","Valentina","Valeria","Valerie","Vanessa","Vera","Veronika","Victoria","Viktoria","Viola","Vivian","Vivien","Vivienne","Wibke","Wiebke","Xenia","Yara","Yaren","Yasmin","Ylvi","Ylvie","Yvonne","Zara","Zehra","Zeynep","Zoe","Zoey","Zoé"],last_name:["Abel","Abicht","Abraham","Abramovic","Abt","Achilles","Achkinadze","Ackermann","Adam","Adams","Ade","Agostini","Ahlke","Ahrenberg","Ahrens","Aigner","Albert","Albrecht","Alexa","Alexander","Alizadeh","Allgeyer","Amann","Amberg","Anding","Anggreny","Apitz","Arendt","Arens","Arndt","Aryee","Aschenbroich","Assmus","Astafei","Auer","Axmann","Baarck","Bachmann","Badane","Bader","Baganz","Bahl","Bak","Balcer","Balck","Balkow","Balnuweit","Balzer","Banse","Barr","Bartels","Barth","Barylla","Baseda","Battke","Bauer","Bauermeister","Baumann","Baumeister","Bauschinger","Bauschke","Bayer","Beavogui","Beck","Beckel","Becker","Beckmann","Bedewitz","Beele","Beer","Beggerow","Beh","Behr","Behrenbruch","Belz","Bender","Benecke","Benner","Benninger","Benzing","Berends","Berger","Berner","Berning","Bertenbreiter","Best","Bethke","Betz","Beushausen","Beutelspacher","Beyer","Biba","Bichler","Bickel","Biedermann","Bieler","Bielert","Bienasch","Bienias","Biesenbach","Bigdeli","Birkemeyer","Bittner","Blank","Blaschek","Blassneck","Bloch","Blochwitz","Blockhaus","Blum","Blume","Bock","Bode","Bogdashin","Bogenrieder","Bohge","Bolm","Borgschulze","Bork","Bormann","Bornscheuer","Borrmann","Borsch","Boruschewski","Bos","Bosler","Bourrouag","Bouschen","Boxhammer","Boyde","Bozsik","Brand","Brandenburg","Brandis","Brandt","Brauer","Braun","Brehmer","Breitenstein","Bremer","Bremser","Brenner","Brettschneider","Breu","Breuer","Briesenick","Bringmann","Brinkmann","Brix","Broening","Brosch","Bruckmann","Bruder","Bruhns","Brunner","Bruns","Bräutigam","Brömme","Brüggmann","Buchholz","Buchrucker","Buder","Bultmann","Bunjes","Burger","Burghagen","Burkhard","Burkhardt","Burmeister","Busch","Buschbaum","Busemann","Buss","Busse","Bussmann","Byrd","Bäcker","Böhm","Bönisch","Börgeling","Börner","Böttner","Büchele","Bühler","Büker","Büngener","Bürger","Bürklein","Büscher","Büttner","Camara","Carlowitz","Carlsohn","Caspari","Caspers","Chapron","Christ","Cierpinski","Clarius","Cleem","Cleve","Co","Conrad","Cordes","Cornelsen","Cors","Cotthardt","Crews","Cronjäger","Crosskofp","Da","Dahm","Dahmen","Daimer","Damaske","Danneberg","Danner","Daub","Daubner","Daudrich","Dauer","Daum","Dauth","Dautzenberg","De","Decker","Deckert","Deerberg","Dehmel","Deja","Delonge","Demut","Dengler","Denner","Denzinger","Derr","Dertmann","Dethloff","Deuschle","Dieckmann","Diedrich","Diekmann","Dienel","Dies","Dietrich","Dietz","Dietzsch","Diezel","Dilla","Dingelstedt","Dippl","Dittmann","Dittmar","Dittmer","Dix","Dobbrunz","Dobler","Dohring","Dolch","Dold","Dombrowski","Donie","Doskoczynski","Dragu","Drechsler","Drees","Dreher","Dreier","Dreissigacker","Dressler","Drews","Duma","Dutkiewicz","Dyett","Dylus","Dächert","Döbel","Döring","Dörner","Dörre","Dück","Eberhard","Eberhardt","Ecker","Eckhardt","Edorh","Effler","Eggenmueller","Ehm","Ehmann","Ehrig","Eich","Eichmann","Eifert","Einert","Eisenlauer","Ekpo","Elbe","Eleyth","Elss","Emert","Emmelmann","Ender","Engel","Engelen","Engelmann","Eplinius","Erdmann","Erhardt","Erlei","Erm","Ernst","Ertl","Erwes","Esenwein","Esser","Evers","Everts","Ewald","Fahner","Faller","Falter","Farber","Fassbender","Faulhaber","Fehrig","Feld","Felke","Feller","Fenner","Fenske","Feuerbach","Fietz","Figl","Figura","Filipowski","Filsinger","Fincke","Fink","Finke","Fischer","Fitschen","Fleischer","Fleischmann","Floder","Florczak","Flore","Flottmann","Forkel","Forst","Frahmeke","Frank","Franke","Franta","Frantz","Franz","Franzis","Franzmann","Frauen","Frauendorf","Freigang","Freimann","Freimuth","Freisen","Frenzel","Frey","Fricke","Fried","Friedek","Friedenberg","Friedmann","Friedrich","Friess","Frisch","Frohn","Frosch","Fuchs","Fuhlbrügge","Fusenig","Fust","Förster","Gaba","Gabius","Gabler","Gadschiew","Gakstädter","Galander","Gamlin","Gamper","Gangnus","Ganzmann","Garatva","Gast","Gastel","Gatzka","Gauder","Gebhardt","Geese","Gehre","Gehrig","Gehring","Gehrke","Geiger","Geisler","Geissler","Gelling","Gens","Gerbennow","Gerdel","Gerhardt","Gerschler","Gerson","Gesell","Geyer","Ghirmai","Ghosh","Giehl","Gierisch","Giesa","Giesche","Gilde","Glatting","Goebel","Goedicke","Goldbeck","Goldfuss","Goldkamp","Goldkühle","Goller","Golling","Gollnow","Golomski","Gombert","Gotthardt","Gottschalk","Gotz","Goy","Gradzki","Graf","Grams","Grasse","Gratzky","Grau","Greb","Green","Greger","Greithanner","Greschner","Griem","Griese","Grimm","Gromisch","Gross","Grosser","Grossheim","Grosskopf","Grothaus","Grothkopp","Grotke","Grube","Gruber","Grundmann","Gruning","Gruszecki","Gröss","Grötzinger","Grün","Grüner","Gummelt","Gunkel","Gunther","Gutjahr","Gutowicz","Gutschank","Göbel","Göckeritz","Göhler","Görlich","Görmer","Götz","Götzelmann","Güldemeister","Günther","Günz","Gürbig","Haack","Haaf","Habel","Hache","Hackbusch","Hackelbusch","Hadfield","Hadwich","Haferkamp","Hahn","Hajek","Hallmann","Hamann","Hanenberger","Hannecker","Hanniske","Hansen","Hardy","Hargasser","Harms","Harnapp","Harter","Harting","Hartlieb","Hartmann","Hartwig","Hartz","Haschke","Hasler","Hasse","Hassfeld","Haug","Hauke","Haupt","Haverney","Heberstreit","Hechler","Hecht","Heck","Hedermann","Hehl","Heidelmann","Heidler","Heinemann","Heinig","Heinke","Heinrich","Heinze","Heiser","Heist","Hellmann","Helm","Helmke","Helpling","Hengmith","Henkel","Hennes","Henry","Hense","Hensel","Hentel","Hentschel","Hentschke","Hepperle","Herberger","Herbrand","Hering","Hermann","Hermecke","Herms","Herold","Herrmann","Herschmann","Hertel","Herweg","Herwig","Herzenberg","Hess","Hesse","Hessek","Hessler","Hetzler","Heuck","Heydemüller","Hiebl","Hildebrand","Hildenbrand","Hilgendorf","Hillard","Hiller","Hingsen","Hingst","Hinrichs","Hirsch","Hirschberg","Hirt","Hodea","Hoffman","Hoffmann","Hofmann","Hohenberger","Hohl","Hohn","Hohnheiser","Hold","Holdt","Holinski","Holl","Holtfreter","Holz","Holzdeppe","Holzner","Hommel","Honz","Hooss","Hoppe","Horak","Horn","Horna","Hornung","Hort","Howard","Huber","Huckestein","Hudak","Huebel","Hugo","Huhn","Hujo","Huke","Huls","Humbert","Huneke","Huth","Häber","Häfner","Höcke","Höft","Höhne","Hönig","Hördt","Hübenbecker","Hübl","Hübner","Hügel","Hüttcher","Hütter","Ibe","Ihly","Illing","Isak","Isekenmeier","Itt","Jacob","Jacobs","Jagusch","Jahn","Jahnke","Jakobs","Jakubczyk","Jambor","Jamrozy","Jander","Janich","Janke","Jansen","Jarets","Jaros","Jasinski","Jasper","Jegorov","Jellinghaus","Jeorga","Jerschabek","Jess","John","Jonas","Jossa","Jucken","Jung","Jungbluth","Jungton","Just","Jürgens","Kaczmarek","Kaesmacher","Kahl","Kahlert","Kahles","Kahlmeyer","Kaiser","Kalinowski","Kallabis","Kallensee","Kampf","Kampschulte","Kappe","Kappler","Karhoff","Karrass","Karst","Karsten","Karus","Kass","Kasten","Kastner","Katzinski","Kaufmann","Kaul","Kausemann","Kawohl","Kazmarek","Kedzierski","Keil","Keiner","Keller","Kelm","Kempe","Kemper","Kempter","Kerl","Kern","Kesselring","Kesselschläger","Kette","Kettenis","Keutel","Kick","Kiessling","Kinadeter","Kinzel","Kinzy","Kirch","Kirst","Kisabaka","Klaas","Klabuhn","Klapper","Klauder","Klaus","Kleeberg","Kleiber","Klein","Kleinert","Kleininger","Kleinmann","Kleinsteuber","Kleiss","Klemme","Klimczak","Klinger","Klink","Klopsch","Klose","Kloss","Kluge","Kluwe","Knabe","Kneifel","Knetsch","Knies","Knippel","Knobel","Knoblich","Knoll","Knorr","Knorscheidt","Knut","Kobs","Koch","Kochan","Kock","Koczulla","Koderisch","Koehl","Koehler","Koenig","Koester","Kofferschlager","Koha","Kohle","Kohlmann","Kohnle","Kohrt","Koj","Kolb","Koleiski","Kolokas","Komoll","Konieczny","Konig","Konow","Konya","Koob","Kopf","Kosenkow","Koster","Koszewski","Koubaa","Kovacs","Kowalick","Kowalinski","Kozakiewicz","Krabbe","Kraft","Kral","Kramer","Krauel","Kraus","Krause","Krauspe","Kreb","Krebs","Kreissig","Kresse","Kreutz","Krieger","Krippner","Krodinger","Krohn","Krol","Kron","Krueger","Krug","Kruger","Krull","Kruschinski","Krämer","Kröckert","Kröger","Krüger","Kubera","Kufahl","Kuhlee","Kuhnen","Kulimann","Kulma","Kumbernuss","Kummle","Kunz","Kupfer","Kupprion","Kuprion","Kurnicki","Kurrat","Kurschilgen","Kuschewitz","Kuschmann","Kuske","Kustermann","Kutscherauer","Kutzner","Kwadwo","Kähler","Käther","Köhler","Köhrbrück","Köhre","Kölotzei","König","Köpernick","Köseoglu","Kúhn","Kúhnert","Kühn","Kühnel","Kühnemund","Kühnert","Kühnke","Küsters","Küter","Laack","Lack","Ladewig","Lakomy","Lammert","Lamos","Landmann","Lang","Lange","Langfeld","Langhirt","Lanig","Lauckner","Lauinger","Laurén","Lausecker","Laux","Laws","Lax","Leberer","Lehmann","Lehner","Leibold","Leide","Leimbach","Leipold","Leist","Leiter","Leiteritz","Leitheim","Leiwesmeier","Lenfers","Lenk","Lenz","Lenzen","Leo","Lepthin","Lesch","Leschnik","Letzelter","Lewin","Lewke","Leyckes","Lg","Lichtenfeld","Lichtenhagen","Lichtl","Liebach","Liebe","Liebich","Liebold","Lieder","Lienshöft","Linden","Lindenberg","Lindenmayer","Lindner","Linke","Linnenbaum","Lippe","Lipske","Lipus","Lischka","Lobinger","Logsch","Lohmann","Lohre","Lohse","Lokar","Loogen","Lorenz","Losch","Loska","Lott","Loy","Lubina","Ludolf","Lufft","Lukoschek","Lutje","Lutz","Löser","Löwa","Lübke","Maak","Maczey","Madetzky","Madubuko","Mai","Maier","Maisch","Malek","Malkus","Mallmann","Malucha","Manns","Manz","Marahrens","Marchewski","Margis","Markowski","Marl","Marner","Marquart","Marschek","Martel","Marten","Martin","Marx","Marxen","Mathes","Mathies","Mathiszik","Matschke","Mattern","Matthes","Matula","Mau","Maurer","Mauroff","May","Maybach","Mayer","Mebold","Mehl","Mehlhorn","Mehlorn","Meier","Meisch","Meissner","Meloni","Melzer","Menga","Menne","Mensah","Mensing","Merkel","Merseburg","Mertens","Mesloh","Metzger","Metzner","Mewes","Meyer","Michallek","Michel","Mielke","Mikitenko","Milde","Minah","Mintzlaff","Mockenhaupt","Moede","Moedl","Moeller","Moguenara","Mohr","Mohrhard","Molitor","Moll","Moller","Molzan","Montag","Moormann","Mordhorst","Morgenstern","Morhelfer","Moritz","Moser","Motchebon","Motzenbbäcker","Mrugalla","Muckenthaler","Mues","Muller","Mulrain","Mächtig","Mäder","Möcks","Mögenburg","Möhsner","Möldner","Möllenbeck","Möller","Möllinger","Mörsch","Mühleis","Müller","Münch","Nabein","Nabow","Nagel","Nannen","Nastvogel","Nau","Naubert","Naumann","Ne","Neimke","Nerius","Neubauer","Neubert","Neuendorf","Neumair","Neumann","Neupert","Neurohr","Neuschwander","Newton","Ney","Nicolay","Niedermeier","Nieklauson","Niklaus","Nitzsche","Noack","Nodler","Nolte","Normann","Norris","Northoff","Nowak","Nussbeck","Nwachukwu","Nytra","Nöh","Oberem","Obergföll","Obermaier","Ochs","Oeser","Olbrich","Onnen","Ophey","Oppong","Orth","Orthmann","Oschkenat","Osei","Osenberg","Ostendarp","Ostwald","Otte","Otto","Paesler","Pajonk","Pallentin","Panzig","Paschke","Patzwahl","Paukner","Peselman","Peter","Peters","Petzold","Pfeiffer","Pfennig","Pfersich","Pfingsten","Pflieger","Pflügner","Philipp","Pichlmaier","Piesker","Pietsch","Pingpank","Pinnock","Pippig","Pitschugin","Plank","Plass","Platzer","Plauk","Plautz","Pletsch","Plotzitzka","Poehn","Poeschl","Pogorzelski","Pohl","Pohland","Pohle","Polifka","Polizzi","Pollmächer","Pomp","Ponitzsch","Porsche","Porth","Poschmann","Poser","Pottel","Prah","Prange","Prediger","Pressler","Preuk","Preuss","Prey","Priemer","Proske","Pusch","Pöche","Pöge","Raabe","Rabenstein","Rach","Radtke","Rahn","Ranftl","Rangen","Ranz","Rapp","Rath","Rau","Raubuch","Raukuc","Rautenkranz","Rehwagen","Reiber","Reichardt","Reichel","Reichling","Reif","Reifenrath","Reimann","Reinberg","Reinelt","Reinhardt","Reinke","Reitze","Renk","Rentz","Renz","Reppin","Restle","Restorff","Retzke","Reuber","Reumann","Reus","Reuss","Reusse","Rheder","Rhoden","Richards","Richter","Riedel","Riediger","Rieger","Riekmann","Riepl","Riermeier","Riester","Riethmüller","Rietmüller","Rietscher","Ringel","Ringer","Rink","Ripken","Ritosek","Ritschel","Ritter","Rittweg","Ritz","Roba","Rockmeier","Rodehau","Rodowski","Roecker","Roggatz","Rohländer","Rohrer","Rokossa","Roleder","Roloff","Roos","Rosbach","Roschinsky","Rose","Rosenauer","Rosenbauer","Rosenthal","Rosksch","Rossberg","Rossler","Roth","Rother","Ruch","Ruckdeschel","Rumpf","Rupprecht","Ruth","Ryjikh","Ryzih","Rädler","Räntsch","Rödiger","Röse","Röttger","Rücker","Rüdiger","Rüter","Sachse","Sack","Saflanis","Sagafe","Sagonas","Sahner","Saile","Sailer","Salow","Salzer","Salzmann","Sammert","Sander","Sarvari","Sattelmaier","Sauer","Sauerland","Saumweber","Savoia","Scc","Schacht","Schaefer","Schaffarzik","Schahbasian","Scharf","Schedler","Scheer","Schelk","Schellenbeck","Schembera","Schenk","Scherbarth","Scherer","Schersing","Scherz","Scheurer","Scheuring","Scheytt","Schielke","Schieskow","Schildhauer","Schilling","Schima","Schimmer","Schindzielorz","Schirmer","Schirrmeister","Schlachter","Schlangen","Schlawitz","Schlechtweg","Schley","Schlicht","Schlitzer","Schmalzle","Schmid","Schmidt","Schmidtchen","Schmitt","Schmitz","Schmuhl","Schneider","Schnelting","Schnieder","Schniedermeier","Schnürer","Schoberg","Scholz","Schonberg","Schondelmaier","Schorr","Schott","Schottmann","Schouren","Schrader","Schramm","Schreck","Schreiber","Schreiner","Schreiter","Schroder","Schröder","Schuermann","Schuff","Schuhaj","Schuldt","Schult","Schulte","Schultz","Schultze","Schulz","Schulze","Schumacher","Schumann","Schupp","Schuri","Schuster","Schwab","Schwalm","Schwanbeck","Schwandke","Schwanitz","Schwarthoff","Schwartz","Schwarz","Schwarzer","Schwarzkopf","Schwarzmeier","Schwatlo","Schweisfurth","Schwennen","Schwerdtner","Schwidde","Schwirkschlies","Schwuchow","Schäfer","Schäffel","Schäffer","Schäning","Schöckel","Schönball","Schönbeck","Schönberg","Schönebeck","Schönenberger","Schönfeld","Schönherr","Schönlebe","Schötz","Schüler","Schüppel","Schütz","Schütze","Seeger","Seelig","Sehls","Seibold","Seidel","Seiders","Seigel","Seiler","Seitz","Semisch","Senkel","Sewald","Siebel","Siebert","Siegling","Sielemann","Siemon","Siener","Sievers","Siewert","Sihler","Sillah","Simon","Sinnhuber","Sischka","Skibicki","Sladek","Slotta","Smieja","Soboll","Sokolowski","Soller","Sollner","Sommer","Somssich","Sonn","Sonnabend","Spahn","Spank","Spelmeyer","Spiegelburg","Spielvogel","Spinner","Spitzmüller","Splinter","Sporrer","Sprenger","Spöttel","Stahl","Stang","Stanger","Stauss","Steding","Steffen","Steffny","Steidl","Steigauf","Stein","Steinecke","Steinert","Steinkamp","Steinmetz","Stelkens","Stengel","Stengl","Stenzel","Stepanov","Stephan","Stern","Steuk","Stief","Stifel","Stoll","Stolle","Stolz","Storl","Storp","Stoutjesdijk","Stratmann","Straub","Strausa","Streck","Streese","Strege","Streit","Streller","Strieder","Striezel","Strogies","Strohschank","Strunz","Strutz","Stube","Stöckert","Stöppler","Stöwer","Stürmer","Suffa","Sujew","Sussmann","Suthe","Sutschet","Swillims","Szendrei","Sören","Sürth","Tafelmeier","Tang","Tasche","Taufratshofer","Tegethof","Teichmann","Tepper","Terheiden","Terlecki","Teufel","Theele","Thieke","Thimm","Thiomas","Thomas","Thriene","Thränhardt","Thust","Thyssen","Thöne","Tidow","Tiedtke","Tietze","Tilgner","Tillack","Timmermann","Tischler","Tischmann","Tittman","Tivontschik","Tonat","Tonn","Trampeli","Trauth","Trautmann","Travan","Treff","Tremmel","Tress","Tsamonikian","Tschiers","Tschirch","Tuch","Tucholke","Tudow","Tuschmo","Tächl","Többen","Töpfer","Uhlemann","Uhlig","Uhrig","Uibel","Uliczka","Ullmann","Ullrich","Umbach","Umlauft","Umminger","Unger","Unterpaintner","Urban","Urbaniak","Urbansky","Urhig","Vahlensieck","Van","Vangermain","Vater","Venghaus","Verniest","Verzi","Vey","Viellehner","Vieweg","Voelkel","Vogel","Vogelgsang","Vogt","Voigt","Vokuhl","Volk","Volker","Volkmann","Von","Vona","Vontein","Wachenbrunner","Wachtel","Wagner","Waibel","Wakan","Waldmann","Wallner","Wallstab","Walter","Walther","Walton","Walz","Wanner","Wartenberg","Waschbüsch","Wassilew","Wassiluk","Weber","Wehrsen","Weidlich","Weidner","Weigel","Weight","Weiler","Weimer","Weis","Weiss","Weller","Welsch","Welz","Welzel","Weniger","Wenk","Werle","Werner","Werrmann","Wessel","Wessinghage","Weyel","Wezel","Wichmann","Wickert","Wiebe","Wiechmann","Wiegelmann","Wierig","Wiese","Wieser","Wilhelm","Wilky","Will","Willwacher","Wilts","Wimmer","Winkelmann","Winkler","Winter","Wischek","Wischer","Wissing","Wittich","Wittl","Wolf","Wolfarth","Wolff","Wollenberg","Wollmann","Woytkowska","Wujak","Wurm","Wyludda","Wölpert","Wöschler","Wühn","Wünsche","Zach","Zaczkiewicz","Zahn","Zaituc","Zandt","Zanner","Zapletal","Zauber","Zeidler","Zekl","Zender","Zeuch","Zeyen","Zeyhle","Ziegler","Zimanyi","Zimmer","Zimmermann","Zinser","Zintl","Zipp","Zipse","Zschunke","Zuber","Zwiener","Zümsande","Östringer","Überacker"], prefix:["Dr.","Prof. Dr."],nobility_title_prefix:["zu","von","vom","von der"],name:["#{prefix} #{first_name} #{last_name}","#{first_name} #{nobility_title_prefix} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}"]},de_AT.phone_number={formats:["01 #######","01#######","+43-1-#######","+431#######","0#### ####","0#########","+43-####-####","+43 ########"]},de_AT.cell_phone={formats:["+43-6##-#######","06##-########","+436#########","06##########"]}; -},{}],55:[function(require,module,exports){ +},{}],56:[function(require,module,exports){ var de_CH={};module.exports=de_CH,de_CH.title="German (Switzerland)",de_CH.address={country_code:["CH","CH","CH","DE","AT","US","LI","US","HK","VN"],postcode:["1###","2###","3###","4###","5###","6###","7###","8###","9###"],default_country:["Schweiz"]},de_CH.company={suffix:["AG","GmbH","und Söhne","und Partner","& Co.","Gruppe","LLC","Inc."],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"]},de_CH.internet={domain_suffix:["com","net","biz","ch","de","li","at","ch","ch"]},de_CH.phone_number={formats:["0800 ### ###","0800 ## ## ##","0## ### ## ##","0## ### ## ##","+41 ## ### ## ##","0900 ### ###","076 ### ## ##","+4178 ### ## ##","0041 79 ### ## ##"]}; -},{}],56:[function(require,module,exports){ +},{}],57:[function(require,module,exports){ var en={};module.exports=en,en.title="English",en.separator=" & ",en.address={city_prefix:["North","East","West","South","New","Lake","Port"],city_suffix:["town","ton","land","ville","berg","burgh","borough","bury","view","port","mouth","stad","furt","chester","mouth","fort","haven","side","shire"],county:["Avon","Bedfordshire","Berkshire","Borders","Buckinghamshire","Cambridgeshire"],country:["Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica (the territory South of 60 deg S)","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Bouvet Island (Bouvetoya)","Brazil","British Indian Ocean Territory (Chagos Archipelago)","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo","Congo","Cook Islands","Costa Rica","Cote d'Ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Faroe Islands","Falkland Islands (Malvinas)","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea-Bissau","Guyana","Haiti","Heard Island and McDonald Islands","Holy See (Vatican City State)","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Democratic People's Republic of Korea","Republic of Korea","Kuwait","Kyrgyz Republic","Lao People's Democratic Republic","Latvia","Lebanon","Lesotho","Liberia","Libyan Arab Jamahiriya","Liechtenstein","Lithuania","Luxembourg","Macao","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands Antilles","Netherlands","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestinian Territory","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn Islands","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saint Barthelemy","Saint Helena","Saint Kitts and Nevis","Saint Lucia","Saint Martin","Saint Pierre and Miquelon","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia (Slovak Republic)","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and the South Sandwich Islands","Spain","Sri Lanka","Sudan","Suriname","Svalbard & Jan Mayen Islands","Swaziland","Sweden","Switzerland","Syrian Arab Republic","Taiwan","Tajikistan","Tanzania","Thailand","Timor-Leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States of America","United States Minor Outlying Islands","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Virgin Islands, British","Virgin Islands, U.S.","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe"],country_code:["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],building_number:["#####","####","###"],street_suffix:["Alley","Avenue","Branch","Bridge","Brook","Brooks","Burg","Burgs","Bypass","Camp","Canyon","Cape","Causeway","Center","Centers","Circle","Circles","Cliff","Cliffs","Club","Common","Corner","Corners","Course","Court","Courts","Cove","Coves","Creek","Crescent","Crest","Crossing","Crossroad","Curve","Dale","Dam","Divide","Drive","Drive","Drives","Estate","Estates","Expressway","Extension","Extensions","Fall","Falls","Ferry","Field","Fields","Flat","Flats","Ford","Fords","Forest","Forge","Forges","Fork","Forks","Fort","Freeway","Garden","Gardens","Gateway","Glen","Glens","Green","Greens","Grove","Groves","Harbor","Harbors","Haven","Heights","Highway","Hill","Hills","Hollow","Inlet","Inlet","Island","Island","Islands","Islands","Isle","Isle","Junction","Junctions","Key","Keys","Knoll","Knolls","Lake","Lakes","Land","Landing","Lane","Light","Lights","Loaf","Lock","Locks","Locks","Lodge","Lodge","Loop","Mall","Manor","Manors","Meadow","Meadows","Mews","Mill","Mills","Mission","Mission","Motorway","Mount","Mountain","Mountain","Mountains","Mountains","Neck","Orchard","Oval","Overpass","Park","Parks","Parkway","Parkways","Pass","Passage","Path","Pike","Pine","Pines","Place","Plain","Plains","Plains","Plaza","Plaza","Point","Points","Port","Port","Ports","Ports","Prairie","Prairie","Radial","Ramp","Ranch","Rapid","Rapids","Rest","Ridge","Ridges","River","Road","Road","Roads","Roads","Route","Row","Rue","Run","Shoal","Shoals","Shore","Shores","Skyway","Spring","Springs","Springs","Spur","Spurs","Square","Square","Squares","Squares","Station","Station","Stravenue","Stravenue","Stream","Stream","Street","Street","Streets","Summit","Summit","Terrace","Throughway","Trace","Track","Trafficway","Trail","Trail","Tunnel","Tunnel","Turnpike","Turnpike","Underpass","Union","Unions","Valley","Valleys","Via","Viaduct","View","Views","Village","Village","Villages","Ville","Vista","Vista","Walk","Walks","Wall","Way","Ways","Well","Wells"],secondary_address:["Apt. ###","Suite ###"],postcode:["#####","#####-####"],postcode_by_state:["#####","#####-####"],state:["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],state_abbr:["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"],time_zone:["Pacific/Midway","Pacific/Pago_Pago","Pacific/Honolulu","America/Juneau","America/Los_Angeles","America/Tijuana","America/Denver","America/Phoenix","America/Chihuahua","America/Mazatlan","America/Chicago","America/Regina","America/Mexico_City","America/Mexico_City","America/Monterrey","America/Guatemala","America/New_York","America/Indiana/Indianapolis","America/Bogota","America/Lima","America/Lima","America/Halifax","America/Caracas","America/La_Paz","America/Santiago","America/St_Johns","America/Sao_Paulo","America/Argentina/Buenos_Aires","America/Guyana","America/Godthab","Atlantic/South_Georgia","Atlantic/Azores","Atlantic/Cape_Verde","Europe/Dublin","Europe/London","Europe/Lisbon","Europe/London","Africa/Casablanca","Africa/Monrovia","Etc/UTC","Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Prague","Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris","Europe/Amsterdam","Europe/Berlin","Europe/Berlin","Europe/Rome","Europe/Stockholm","Europe/Vienna","Africa/Algiers","Europe/Bucharest","Africa/Cairo","Europe/Helsinki","Europe/Kiev","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Vilnius","Europe/Athens","Europe/Istanbul","Europe/Minsk","Asia/Jerusalem","Africa/Harare","Africa/Johannesburg","Europe/Moscow","Europe/Moscow","Europe/Moscow","Asia/Kuwait","Asia/Riyadh","Africa/Nairobi","Asia/Baghdad","Asia/Tehran","Asia/Muscat","Asia/Muscat","Asia/Baku","Asia/Tbilisi","Asia/Yerevan","Asia/Kabul","Asia/Yekaterinburg","Asia/Karachi","Asia/Karachi","Asia/Tashkent","Asia/Kolkata","Asia/Kolkata","Asia/Kolkata","Asia/Kolkata","Asia/Kathmandu","Asia/Dhaka","Asia/Dhaka","Asia/Colombo","Asia/Almaty","Asia/Novosibirsk","Asia/Rangoon","Asia/Bangkok","Asia/Bangkok","Asia/Jakarta","Asia/Krasnoyarsk","Asia/Shanghai","Asia/Chongqing","Asia/Hong_Kong","Asia/Urumqi","Asia/Kuala_Lumpur","Asia/Singapore","Asia/Taipei","Australia/Perth","Asia/Irkutsk","Asia/Ulaanbaatar","Asia/Seoul","Asia/Tokyo","Asia/Tokyo","Asia/Tokyo","Asia/Yakutsk","Australia/Darwin","Australia/Adelaide","Australia/Melbourne","Australia/Melbourne","Australia/Sydney","Australia/Brisbane","Australia/Hobart","Asia/Vladivostok","Pacific/Guam","Pacific/Port_Moresby","Asia/Magadan","Asia/Magadan","Pacific/Noumea","Pacific/Fiji","Asia/Kamchatka","Pacific/Majuro","Pacific/Auckland","Pacific/Auckland","Pacific/Tongatapu","Pacific/Fakaofo","Pacific/Apia"],city:["#{city_prefix} #{Name.first_name}#{city_suffix}","#{city_prefix} #{Name.first_name}","#{Name.first_name}#{city_suffix}","#{Name.last_name}#{city_suffix}"],street_name:["#{Name.first_name} #{street_suffix}","#{Name.last_name} #{street_suffix}"],street_address:["#{building_number} #{street_name}"],default_country:["United States of America"]},en.credit_card={visa:["/4###########L/","/4###-####-####-###L/"],mastercard:["/5[1-5]##-####-####-###L/","/6771-89##-####-###L/"],discover:["/6011-####-####-###L/","/65##-####-####-###L/","/64[4-9]#-####-####-###L/","/6011-62##-####-####-###L/","/65##-62##-####-####-###L/","/64[4-9]#-62##-####-####-###L/"],american_express:["/34##-######-####L/","/37##-######-####L/"],diners_club:["/30[0-5]#-######-###L/","/368#-######-###L/"],jcb:["/3528-####-####-###L/","/3529-####-####-###L/","/35[3-8]#-####-####-###L/"],"switch":["/6759-####-####-###L/","/6759-####-####-####-#L/","/6759-####-####-####-##L/"],solo:["/6767-####-####-###L/","/6767-####-####-####-#L/","/6767-####-####-####-##L/"],dankort:"/5019-####-####-###L/",maestro:["/50#{9,16}L/","/5[6-8]#{9,16}L/","/56##{9,16}L/"],forbrugsforeningen:"/6007-22##-####-###L/",laser:["/6304###########L/","/6706###########L/","/6771###########L/","/6709###########L/","/6304#########{5,6}L/","/6706#########{5,6}L/","/6771#########{5,6}L/","/6709#########{5,6}L/"]},en.company={suffix:["Inc","and Sons","LLC","Group"],adjective:["Adaptive","Advanced","Ameliorated","Assimilated","Automated","Balanced","Business-focused","Centralized","Cloned","Compatible","Configurable","Cross-group","Cross-platform","Customer-focused","Customizable","Decentralized","De-engineered","Devolved","Digitized","Distributed","Diverse","Down-sized","Enhanced","Enterprise-wide","Ergonomic","Exclusive","Expanded","Extended","Face to face","Focused","Front-line","Fully-configurable","Function-based","Fundamental","Future-proofed","Grass-roots","Horizontal","Implemented","Innovative","Integrated","Intuitive","Inverse","Managed","Mandatory","Monitored","Multi-channelled","Multi-lateral","Multi-layered","Multi-tiered","Networked","Object-based","Open-architected","Open-source","Operative","Optimized","Optional","Organic","Organized","Persevering","Persistent","Phased","Polarised","Pre-emptive","Proactive","Profit-focused","Profound","Programmable","Progressive","Public-key","Quality-focused","Reactive","Realigned","Re-contextualized","Re-engineered","Reduced","Reverse-engineered","Right-sized","Robust","Seamless","Secured","Self-enabling","Sharable","Stand-alone","Streamlined","Switchable","Synchronised","Synergistic","Synergized","Team-oriented","Total","Triple-buffered","Universal","Up-sized","Upgradable","User-centric","User-friendly","Versatile","Virtual","Visionary","Vision-oriented"],descriptor:["24 hour","24/7","3rd generation","4th generation","5th generation","6th generation","actuating","analyzing","asymmetric","asynchronous","attitude-oriented","background","bandwidth-monitored","bi-directional","bifurcated","bottom-line","clear-thinking","client-driven","client-server","coherent","cohesive","composite","context-sensitive","contextually-based","content-based","dedicated","demand-driven","didactic","directional","discrete","disintermediate","dynamic","eco-centric","empowering","encompassing","even-keeled","executive","explicit","exuding","fault-tolerant","foreground","fresh-thinking","full-range","global","grid-enabled","heuristic","high-level","holistic","homogeneous","human-resource","hybrid","impactful","incremental","intangible","interactive","intermediate","leading edge","local","logistical","maximized","methodical","mission-critical","mobile","modular","motivating","multimedia","multi-state","multi-tasking","national","needs-based","neutral","next generation","non-volatile","object-oriented","optimal","optimizing","radical","real-time","reciprocal","regional","responsive","scalable","secondary","solution-oriented","stable","static","systematic","systemic","system-worthy","tangible","tertiary","transitional","uniform","upward-trending","user-facing","value-added","web-enabled","well-modulated","zero administration","zero defect","zero tolerance"],noun:["ability","access","adapter","algorithm","alliance","analyzer","application","approach","architecture","archive","artificial intelligence","array","attitude","benchmark","budgetary management","capability","capacity","challenge","circuit","collaboration","complexity","concept","conglomeration","contingency","core","customer loyalty","database","data-warehouse","definition","emulation","encoding","encryption","extranet","firmware","flexibility","focus group","forecast","frame","framework","function","functionalities","Graphic Interface","groupware","Graphical User Interface","hardware","help-desk","hierarchy","hub","implementation","info-mediaries","infrastructure","initiative","installation","instruction set","interface","internet solution","intranet","knowledge user","knowledge base","local area network","leverage","matrices","matrix","methodology","middleware","migration","model","moderator","monitoring","moratorium","neural-net","open architecture","open system","orchestration","paradigm","parallelism","policy","portal","pricing structure","process improvement","product","productivity","project","projection","protocol","secured line","service-desk","software","solution","standardization","strategy","structure","success","superstructure","support","synergy","system engine","task-force","throughput","time-frame","toolset","utilisation","website","workforce"],bs_verb:["implement","utilize","integrate","streamline","optimize","evolve","transform","embrace","enable","orchestrate","leverage","reinvent","aggregate","architect","enhance","incentivize","morph","empower","envisioneer","monetize","harness","facilitate","seize","disintermediate","synergize","strategize","deploy","brand","grow","target","syndicate","synthesize","deliver","mesh","incubate","engage","maximize","benchmark","expedite","reintermediate","whiteboard","visualize","repurpose","innovate","scale","unleash","drive","extend","engineer","revolutionize","generate","exploit","transition","e-enable","iterate","cultivate","matrix","productize","redefine","recontextualize"],bs_adjective:["clicks-and-mortar","value-added","vertical","proactive","robust","revolutionary","scalable","leading-edge","innovative","intuitive","strategic","e-business","mission-critical","sticky","one-to-one","24/7","end-to-end","global","B2B","B2C","granular","frictionless","virtual","viral","dynamic","24/365","best-of-breed","killer","magnetic","bleeding-edge","web-enabled","interactive","dot-com","sexy","back-end","real-time","efficient","front-end","distributed","seamless","extensible","turn-key","world-class","open-source","cross-platform","cross-media","synergistic","bricks-and-clicks","out-of-the-box","enterprise","integrated","impactful","wireless","transparent","next-generation","cutting-edge","user-centric","visionary","customized","ubiquitous","plug-and-play","collaborative","compelling","holistic","rich"],bs_noun:["synergies","web-readiness","paradigms","markets","partnerships","infrastructures","platforms","initiatives","channels","eyeballs","communities","ROI","solutions","e-tailers","e-services","action-items","portals","niches","technologies","content","vortals","supply-chains","convergence","relationships","architectures","interfaces","e-markets","e-commerce","systems","bandwidth","infomediaries","models","mindshare","deliverables","users","schemas","networks","applications","metrics","e-business","functionalities","experiences","web services","methodologies"],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} and #{Name.last_name}"]},en.internet={free_email:["gmail.com","yahoo.com","hotmail.com"],domain_suffix:["com","biz","info","name","net","org"]};var avatarUri=["jarjan/128.jpg","mahdif/128.jpg","sprayaga/128.jpg","ruzinav/128.jpg","Skyhartman/128.jpg","moscoz/128.jpg","kurafire/128.jpg","91bilal/128.jpg","igorgarybaldi/128.jpg","calebogden/128.jpg","malykhinv/128.jpg","joelhelin/128.jpg","kushsolitary/128.jpg","coreyweb/128.jpg","snowshade/128.jpg","areus/128.jpg","holdenweb/128.jpg","heyimjuani/128.jpg","envex/128.jpg","unterdreht/128.jpg","collegeman/128.jpg","peejfancher/128.jpg","andyisonline/128.jpg","ultragex/128.jpg","fuck_you_two/128.jpg","adellecharles/128.jpg","ateneupopular/128.jpg","ahmetalpbalkan/128.jpg","Stievius/128.jpg","kerem/128.jpg","osvaldas/128.jpg","angelceballos/128.jpg","thierrykoblentz/128.jpg","peterlandt/128.jpg","catarino/128.jpg","wr/128.jpg","weglov/128.jpg","brandclay/128.jpg","flame_kaizar/128.jpg","ahmetsulek/128.jpg","nicolasfolliot/128.jpg","jayrobinson/128.jpg","victorerixon/128.jpg","kolage/128.jpg","michzen/128.jpg","markjenkins/128.jpg","nicolai_larsen/128.jpg","gt/128.jpg","noxdzine/128.jpg","alagoon/128.jpg","idiot/128.jpg","mizko/128.jpg","chadengle/128.jpg","mutlu82/128.jpg","simobenso/128.jpg","vocino/128.jpg","guiiipontes/128.jpg","soyjavi/128.jpg","joshaustin/128.jpg","tomaslau/128.jpg","VinThomas/128.jpg","ManikRathee/128.jpg","langate/128.jpg","cemshid/128.jpg","leemunroe/128.jpg","_shahedk/128.jpg","enda/128.jpg","BillSKenney/128.jpg","divya/128.jpg","joshhemsley/128.jpg","sindresorhus/128.jpg","soffes/128.jpg","9lessons/128.jpg","linux29/128.jpg","Chakintosh/128.jpg","anaami/128.jpg","joreira/128.jpg","shadeed9/128.jpg","scottkclark/128.jpg","jedbridges/128.jpg","salleedesign/128.jpg","marakasina/128.jpg","ariil/128.jpg","BrianPurkiss/128.jpg","michaelmartinho/128.jpg","bublienko/128.jpg","devankoshal/128.jpg","ZacharyZorbas/128.jpg","timmillwood/128.jpg","joshuasortino/128.jpg","damenleeturks/128.jpg","tomas_janousek/128.jpg","herrhaase/128.jpg","RussellBishop/128.jpg","brajeshwar/128.jpg","nachtmeister/128.jpg","cbracco/128.jpg","bermonpainter/128.jpg","abdullindenis/128.jpg","isacosta/128.jpg","suprb/128.jpg","yalozhkin/128.jpg","chandlervdw/128.jpg","iamgarth/128.jpg","_victa/128.jpg","commadelimited/128.jpg","roybarberuk/128.jpg","axel/128.jpg","vladarbatov/128.jpg","ffbel/128.jpg","syropian/128.jpg","ankitind/128.jpg","traneblow/128.jpg","flashmurphy/128.jpg","ChrisFarina78/128.jpg","baliomega/128.jpg","saschamt/128.jpg","jm_denis/128.jpg","anoff/128.jpg","kennyadr/128.jpg","chatyrko/128.jpg","dingyi/128.jpg","mds/128.jpg","terryxlife/128.jpg","aaroni/128.jpg","kinday/128.jpg","prrstn/128.jpg","eduardostuart/128.jpg","dhilipsiva/128.jpg","GavicoInd/128.jpg","baires/128.jpg","rohixx/128.jpg","bigmancho/128.jpg","blakesimkins/128.jpg","leeiio/128.jpg","tjrus/128.jpg","uberschizo/128.jpg","kylefoundry/128.jpg","claudioguglieri/128.jpg","ripplemdk/128.jpg","exentrich/128.jpg","jakemoore/128.jpg","joaoedumedeiros/128.jpg","poormini/128.jpg","tereshenkov/128.jpg","keryilmaz/128.jpg","haydn_woods/128.jpg","rude/128.jpg","llun/128.jpg","sgaurav_baghel/128.jpg","jamiebrittain/128.jpg","badlittleduck/128.jpg","pifagor/128.jpg","agromov/128.jpg","benefritz/128.jpg","erwanhesry/128.jpg","diesellaws/128.jpg","jeremiaha/128.jpg","koridhandy/128.jpg","chaensel/128.jpg","andrewcohen/128.jpg","smaczny/128.jpg","gonzalorobaina/128.jpg","nandini_m/128.jpg","sydlawrence/128.jpg","cdharrison/128.jpg","tgerken/128.jpg","lewisainslie/128.jpg","charliecwaite/128.jpg","robbschiller/128.jpg","flexrs/128.jpg","mattdetails/128.jpg","raquelwilson/128.jpg","karsh/128.jpg","mrmartineau/128.jpg","opnsrce/128.jpg","hgharrygo/128.jpg","maximseshuk/128.jpg","uxalex/128.jpg","samihah/128.jpg","chanpory/128.jpg","sharvin/128.jpg","josemarques/128.jpg","jefffis/128.jpg","krystalfister/128.jpg","lokesh_coder/128.jpg","thedamianhdez/128.jpg","dpmachado/128.jpg","funwatercat/128.jpg","timothycd/128.jpg","ivanfilipovbg/128.jpg","picard102/128.jpg","marcobarbosa/128.jpg","krasnoukhov/128.jpg","g3d/128.jpg","ademilter/128.jpg","rickdt/128.jpg","operatino/128.jpg","bungiwan/128.jpg","hugomano/128.jpg","logorado/128.jpg","dc_user/128.jpg","horaciobella/128.jpg","SlaapMe/128.jpg","teeragit/128.jpg","iqonicd/128.jpg","ilya_pestov/128.jpg","andrewarrow/128.jpg","ssiskind/128.jpg","stan/128.jpg","HenryHoffman/128.jpg","rdsaunders/128.jpg","adamsxu/128.jpg","curiousoffice/128.jpg","themadray/128.jpg","michigangraham/128.jpg","kohette/128.jpg","nickfratter/128.jpg","runningskull/128.jpg","madysondesigns/128.jpg","brenton_clarke/128.jpg","jennyshen/128.jpg","bradenhamm/128.jpg","kurtinc/128.jpg","amanruzaini/128.jpg","coreyhaggard/128.jpg","Karimmove/128.jpg","aaronalfred/128.jpg","wtrsld/128.jpg","jitachi/128.jpg","therealmarvin/128.jpg","pmeissner/128.jpg","ooomz/128.jpg","chacky14/128.jpg","jesseddy/128.jpg","thinmatt/128.jpg","shanehudson/128.jpg","akmur/128.jpg","IsaryAmairani/128.jpg","arthurholcombe1/128.jpg","andychipster/128.jpg","boxmodel/128.jpg","ehsandiary/128.jpg","LucasPerdidao/128.jpg","shalt0ni/128.jpg","swaplord/128.jpg","kaelifa/128.jpg","plbabin/128.jpg","guillemboti/128.jpg","arindam_/128.jpg","renbyrd/128.jpg","thiagovernetti/128.jpg","jmillspaysbills/128.jpg","mikemai2awesome/128.jpg","jervo/128.jpg","mekal/128.jpg","sta1ex/128.jpg","robergd/128.jpg","felipecsl/128.jpg","andrea211087/128.jpg","garand/128.jpg","dhooyenga/128.jpg","abovefunction/128.jpg","pcridesagain/128.jpg","randomlies/128.jpg","BryanHorsey/128.jpg","heykenneth/128.jpg","dahparra/128.jpg","allthingssmitty/128.jpg","danvernon/128.jpg","beweinreich/128.jpg","increase/128.jpg","falvarad/128.jpg","alxndrustinov/128.jpg","souuf/128.jpg","orkuncaylar/128.jpg","AM_Kn2/128.jpg","gearpixels/128.jpg","bassamology/128.jpg","vimarethomas/128.jpg","kosmar/128.jpg","SULiik/128.jpg","mrjamesnoble/128.jpg","silvanmuhlemann/128.jpg","shaneIxD/128.jpg","nacho/128.jpg","yigitpinarbasi/128.jpg","buzzusborne/128.jpg","aaronkwhite/128.jpg","rmlewisuk/128.jpg","giancarlon/128.jpg","nbirckel/128.jpg","d_nny_m_cher/128.jpg","sdidonato/128.jpg","atariboy/128.jpg","abotap/128.jpg","karalek/128.jpg","psdesignuk/128.jpg","ludwiczakpawel/128.jpg","nemanjaivanovic/128.jpg","baluli/128.jpg","ahmadajmi/128.jpg","vovkasolovev/128.jpg","samgrover/128.jpg","derienzo777/128.jpg","jonathansimmons/128.jpg","nelsonjoyce/128.jpg","S0ufi4n3/128.jpg","xtopherpaul/128.jpg","oaktreemedia/128.jpg","nateschulte/128.jpg","findingjenny/128.jpg","namankreative/128.jpg","antonyzotov/128.jpg","we_social/128.jpg","leehambley/128.jpg","solid_color/128.jpg","abelcabans/128.jpg","mbilderbach/128.jpg","kkusaa/128.jpg","jordyvdboom/128.jpg","carlosgavina/128.jpg","pechkinator/128.jpg","vc27/128.jpg","rdbannon/128.jpg","croakx/128.jpg","suribbles/128.jpg","kerihenare/128.jpg","catadeleon/128.jpg","gcmorley/128.jpg","duivvv/128.jpg","saschadroste/128.jpg","victorDubugras/128.jpg","wintopia/128.jpg","mattbilotti/128.jpg","taylorling/128.jpg","megdraws/128.jpg","meln1ks/128.jpg","mahmoudmetwally/128.jpg","Silveredge9/128.jpg","derekebradley/128.jpg","happypeter1983/128.jpg","travis_arnold/128.jpg","artem_kostenko/128.jpg","adobi/128.jpg","daykiine/128.jpg","alek_djuric/128.jpg","scips/128.jpg","miguelmendes/128.jpg","justinrhee/128.jpg","alsobrooks/128.jpg","fronx/128.jpg","mcflydesign/128.jpg","santi_urso/128.jpg","allfordesign/128.jpg","stayuber/128.jpg","bertboerland/128.jpg","marosholly/128.jpg","adamnac/128.jpg","cynthiasavard/128.jpg","muringa/128.jpg","danro/128.jpg","hiemil/128.jpg","jackiesaik/128.jpg","zacsnider/128.jpg","iduuck/128.jpg","antjanus/128.jpg","aroon_sharma/128.jpg","dshster/128.jpg","thehacker/128.jpg","michaelbrooksjr/128.jpg","ryanmclaughlin/128.jpg","clubb3rry/128.jpg","taybenlor/128.jpg","xripunov/128.jpg","myastro/128.jpg","adityasutomo/128.jpg","digitalmaverick/128.jpg","hjartstrorn/128.jpg","itolmach/128.jpg","vaughanmoffitt/128.jpg","abdots/128.jpg","isnifer/128.jpg","sergeysafonov/128.jpg","maz/128.jpg","scrapdnb/128.jpg","chrismj83/128.jpg","vitorleal/128.jpg","sokaniwaal/128.jpg","zaki3d/128.jpg","illyzoren/128.jpg","mocabyte/128.jpg","osmanince/128.jpg","djsherman/128.jpg","davidhemphill/128.jpg","waghner/128.jpg","necodymiconer/128.jpg","praveen_vijaya/128.jpg","fabbrucci/128.jpg","cliffseal/128.jpg","travishines/128.jpg","kuldarkalvik/128.jpg","Elt_n/128.jpg","phillapier/128.jpg","okseanjay/128.jpg","id835559/128.jpg","kudretkeskin/128.jpg","anjhero/128.jpg","duck4fuck/128.jpg","scott_riley/128.jpg","noufalibrahim/128.jpg","h1brd/128.jpg","borges_marcos/128.jpg","devinhalladay/128.jpg","ciaranr/128.jpg","stefooo/128.jpg","mikebeecham/128.jpg","tonymillion/128.jpg","joshuaraichur/128.jpg","irae/128.jpg","petrangr/128.jpg","dmitriychuta/128.jpg","charliegann/128.jpg","arashmanteghi/128.jpg","adhamdannaway/128.jpg","ainsleywagon/128.jpg","svenlen/128.jpg","faisalabid/128.jpg","beshur/128.jpg","carlyson/128.jpg","dutchnadia/128.jpg","teddyzetterlund/128.jpg","samuelkraft/128.jpg","aoimedia/128.jpg","toddrew/128.jpg","codepoet_ru/128.jpg","artvavs/128.jpg","benoitboucart/128.jpg","jomarmen/128.jpg","kolmarlopez/128.jpg","creartinc/128.jpg","homka/128.jpg","gaborenton/128.jpg","robinclediere/128.jpg","maximsorokin/128.jpg","plasticine/128.jpg","j2deme/128.jpg","peachananr/128.jpg","kapaluccio/128.jpg","de_ascanio/128.jpg","rikas/128.jpg","dawidwu/128.jpg","marcoramires/128.jpg","angelcreative/128.jpg","rpatey/128.jpg","popey/128.jpg","rehatkathuria/128.jpg","the_purplebunny/128.jpg","1markiz/128.jpg","ajaxy_ru/128.jpg","brenmurrell/128.jpg","dudestein/128.jpg","oskarlevinson/128.jpg","victorstuber/128.jpg","nehfy/128.jpg","vicivadeline/128.jpg","leandrovaranda/128.jpg","scottgallant/128.jpg","victor_haydin/128.jpg","sawrb/128.jpg","ryhanhassan/128.jpg","amayvs/128.jpg","a_brixen/128.jpg","karolkrakowiak_/128.jpg","herkulano/128.jpg","geran7/128.jpg","cggaurav/128.jpg","chris_witko/128.jpg","lososina/128.jpg","polarity/128.jpg","mattlat/128.jpg","brandonburke/128.jpg","constantx/128.jpg","teylorfeliz/128.jpg","craigelimeliah/128.jpg","rachelreveley/128.jpg","reabo101/128.jpg","rahmeen/128.jpg","ky/128.jpg","rickyyean/128.jpg","j04ntoh/128.jpg","spbroma/128.jpg","sebashton/128.jpg","jpenico/128.jpg","francis_vega/128.jpg","oktayelipek/128.jpg","kikillo/128.jpg","fabbianz/128.jpg","larrygerard/128.jpg","BroumiYoussef/128.jpg","0therplanet/128.jpg","mbilalsiddique1/128.jpg","ionuss/128.jpg","grrr_nl/128.jpg","liminha/128.jpg","rawdiggie/128.jpg","ryandownie/128.jpg","sethlouey/128.jpg","pixage/128.jpg","arpitnj/128.jpg","switmer777/128.jpg","josevnclch/128.jpg","kanickairaj/128.jpg","puzik/128.jpg","tbakdesigns/128.jpg","besbujupi/128.jpg","supjoey/128.jpg","lowie/128.jpg","linkibol/128.jpg","balintorosz/128.jpg","imcoding/128.jpg","agustincruiz/128.jpg","gusoto/128.jpg","thomasschrijer/128.jpg","superoutman/128.jpg","kalmerrautam/128.jpg","gabrielizalo/128.jpg","gojeanyn/128.jpg","davidbaldie/128.jpg","_vojto/128.jpg","laurengray/128.jpg","jydesign/128.jpg","mymyboy/128.jpg","nellleo/128.jpg","marciotoledo/128.jpg","ninjad3m0/128.jpg","to_soham/128.jpg","hasslunsford/128.jpg","muridrahhal/128.jpg","levisan/128.jpg","grahamkennery/128.jpg","lepetitogre/128.jpg","antongenkin/128.jpg","nessoila/128.jpg","amandabuzard/128.jpg","safrankov/128.jpg","cocolero/128.jpg","dss49/128.jpg","matt3224/128.jpg","bluesix/128.jpg","quailandquasar/128.jpg","AlbertoCococi/128.jpg","lepinski/128.jpg","sementiy/128.jpg","mhudobivnik/128.jpg","thibaut_re/128.jpg","olgary/128.jpg","shojberg/128.jpg","mtolokonnikov/128.jpg","bereto/128.jpg","naupintos/128.jpg","wegotvices/128.jpg","xadhix/128.jpg","macxim/128.jpg","rodnylobos/128.jpg","madcampos/128.jpg","madebyvadim/128.jpg","bartoszdawydzik/128.jpg","supervova/128.jpg","markretzloff/128.jpg","vonachoo/128.jpg","darylws/128.jpg","stevedesigner/128.jpg","mylesb/128.jpg","herbigt/128.jpg","depaulawagner/128.jpg","geshan/128.jpg","gizmeedevil1991/128.jpg","_scottburgess/128.jpg","lisovsky/128.jpg","davidsasda/128.jpg","artd_sign/128.jpg","YoungCutlass/128.jpg","mgonto/128.jpg","itstotallyamy/128.jpg","victorquinn/128.jpg","osmond/128.jpg","oksanafrewer/128.jpg","zauerkraut/128.jpg","iamkeithmason/128.jpg","nitinhayaran/128.jpg","lmjabreu/128.jpg","mandalareopens/128.jpg","thinkleft/128.jpg","ponchomendivil/128.jpg","juamperro/128.jpg","brunodesign1206/128.jpg","caseycavanagh/128.jpg","luxe/128.jpg","dotgridline/128.jpg","spedwig/128.jpg","madewulf/128.jpg","mattsapii/128.jpg","helderleal/128.jpg","chrisstumph/128.jpg","jayphen/128.jpg","nsamoylov/128.jpg","chrisvanderkooi/128.jpg","justme_timothyg/128.jpg","otozk/128.jpg","prinzadi/128.jpg","gu5taf/128.jpg","cyril_gaillard/128.jpg","d_kobelyatsky/128.jpg","daniloc/128.jpg","nwdsha/128.jpg","romanbulah/128.jpg","skkirilov/128.jpg","dvdwinden/128.jpg","dannol/128.jpg","thekevinjones/128.jpg","jwalter14/128.jpg","timgthomas/128.jpg","buddhasource/128.jpg","uxpiper/128.jpg","thatonetommy/128.jpg","diansigitp/128.jpg","adrienths/128.jpg","klimmka/128.jpg","gkaam/128.jpg","derekcramer/128.jpg","jennyyo/128.jpg","nerrsoft/128.jpg","xalionmalik/128.jpg","edhenderson/128.jpg","keyuri85/128.jpg","roxanejammet/128.jpg","kimcool/128.jpg","edkf/128.jpg","matkins/128.jpg","alessandroribe/128.jpg","jacksonlatka/128.jpg","lebronjennan/128.jpg","kostaspt/128.jpg","karlkanall/128.jpg","moynihan/128.jpg","danpliego/128.jpg","saulihirvi/128.jpg","wesleytrankin/128.jpg","fjaguero/128.jpg","bowbrick/128.jpg","mashaaaaal/128.jpg","yassiryahya/128.jpg","dparrelli/128.jpg","fotomagin/128.jpg","aka_james/128.jpg","denisepires/128.jpg","iqbalperkasa/128.jpg","martinansty/128.jpg","jarsen/128.jpg","r_oy/128.jpg","justinrob/128.jpg","gabrielrosser/128.jpg","malgordon/128.jpg","carlfairclough/128.jpg","michaelabehsera/128.jpg","pierrestoffe/128.jpg","enjoythetau/128.jpg","loganjlambert/128.jpg","rpeezy/128.jpg","coreyginnivan/128.jpg","michalhron/128.jpg","msveet/128.jpg","lingeswaran/128.jpg","kolsvein/128.jpg","peter576/128.jpg","reideiredale/128.jpg","joeymurdah/128.jpg","raphaelnikson/128.jpg","mvdheuvel/128.jpg","maxlinderman/128.jpg","jimmuirhead/128.jpg","begreative/128.jpg","frankiefreesbie/128.jpg","robturlinckx/128.jpg","Talbi_ConSept/128.jpg","longlivemyword/128.jpg","vanchesz/128.jpg","maiklam/128.jpg","hermanobrother/128.jpg","rez___a/128.jpg","gregsqueeb/128.jpg","greenbes/128.jpg","_ragzor/128.jpg","anthonysukow/128.jpg","fluidbrush/128.jpg","dactrtr/128.jpg","jehnglynn/128.jpg","bergmartin/128.jpg","hugocornejo/128.jpg","_kkga/128.jpg","dzantievm/128.jpg","sawalazar/128.jpg","sovesove/128.jpg","jonsgotwood/128.jpg","byryan/128.jpg","vytautas_a/128.jpg","mizhgan/128.jpg","cicerobr/128.jpg","nilshelmersson/128.jpg","d33pthought/128.jpg","davecraige/128.jpg","nckjrvs/128.jpg","alexandermayes/128.jpg","jcubic/128.jpg","craigrcoles/128.jpg","bagawarman/128.jpg","rob_thomas10/128.jpg","cofla/128.jpg","maikelk/128.jpg","rtgibbons/128.jpg","russell_baylis/128.jpg","mhesslow/128.jpg","codysanfilippo/128.jpg","webtanya/128.jpg","madebybrenton/128.jpg","dcalonaci/128.jpg","perfectflow/128.jpg","jjsiii/128.jpg","saarabpreet/128.jpg","kumarrajan12123/128.jpg","iamsteffen/128.jpg","themikenagle/128.jpg","ceekaytweet/128.jpg","larrybolt/128.jpg","conspirator/128.jpg","dallasbpeters/128.jpg","n3dmax/128.jpg","terpimost/128.jpg","kirillz/128.jpg","byrnecore/128.jpg","j_drake_/128.jpg","calebjoyce/128.jpg","russoedu/128.jpg","hoangloi/128.jpg","tobysaxon/128.jpg","gofrasdesign/128.jpg","dimaposnyy/128.jpg","tjisousa/128.jpg","okandungel/128.jpg","billyroshan/128.jpg","oskamaya/128.jpg","motionthinks/128.jpg","knilob/128.jpg","ashocka18/128.jpg","marrimo/128.jpg","bartjo/128.jpg","omnizya/128.jpg","ernestsemerda/128.jpg","andreas_pr/128.jpg","edgarchris99/128.jpg","thomasgeisen/128.jpg","gseguin/128.jpg","joannefournier/128.jpg","demersdesigns/128.jpg","adammarsbar/128.jpg","nasirwd/128.jpg","n_tassone/128.jpg","javorszky/128.jpg","themrdave/128.jpg","yecidsm/128.jpg","nicollerich/128.jpg","canapud/128.jpg","nicoleglynn/128.jpg","judzhin_miles/128.jpg","designervzm/128.jpg","kianoshp/128.jpg","evandrix/128.jpg","alterchuca/128.jpg","dhrubo/128.jpg","ma_tiax/128.jpg","ssbb_me/128.jpg","dorphern/128.jpg","mauriolg/128.jpg","bruno_mart/128.jpg","mactopus/128.jpg","the_winslet/128.jpg","joemdesign/128.jpg","Shriiiiimp/128.jpg","jacobbennett/128.jpg","nfedoroff/128.jpg","iamglimy/128.jpg","allagringaus/128.jpg","aiiaiiaii/128.jpg","olaolusoga/128.jpg","buryaknick/128.jpg","wim1k/128.jpg","nicklacke/128.jpg","a1chapone/128.jpg","steynviljoen/128.jpg","strikewan/128.jpg","ryankirkman/128.jpg","andrewabogado/128.jpg","doooon/128.jpg","jagan123/128.jpg","ariffsetiawan/128.jpg","elenadissi/128.jpg","mwarkentin/128.jpg","thierrymeier_/128.jpg","r_garcia/128.jpg","dmackerman/128.jpg","borantula/128.jpg","konus/128.jpg","spacewood_/128.jpg","ryuchi311/128.jpg","evanshajed/128.jpg","tristanlegros/128.jpg","shoaib253/128.jpg","aislinnkelly/128.jpg","okcoker/128.jpg","timpetricola/128.jpg","sunshinedgirl/128.jpg","chadami/128.jpg","aleclarsoniv/128.jpg","nomidesigns/128.jpg","petebernardo/128.jpg","scottiedude/128.jpg","millinet/128.jpg","imsoper/128.jpg","imammuht/128.jpg","benjamin_knight/128.jpg","nepdud/128.jpg","joki4/128.jpg","lanceguyatt/128.jpg","bboy1895/128.jpg","amywebbb/128.jpg","rweve/128.jpg","haruintesettden/128.jpg","ricburton/128.jpg","nelshd/128.jpg","batsirai/128.jpg","primozcigler/128.jpg","jffgrdnr/128.jpg","8d3k/128.jpg","geneseleznev/128.jpg","al_li/128.jpg","souperphly/128.jpg","mslarkina/128.jpg","2fockus/128.jpg","cdavis565/128.jpg","xiel/128.jpg","turkutuuli/128.jpg","uxward/128.jpg","lebinoclard/128.jpg","gauravjassal/128.jpg","davidmerrique/128.jpg","mdsisto/128.jpg","andrewofficer/128.jpg","kojourin/128.jpg","dnirmal/128.jpg","kevka/128.jpg","mr_shiznit/128.jpg","aluisio_azevedo/128.jpg","cloudstudio/128.jpg","danvierich/128.jpg","alexivanichkin/128.jpg","fran_mchamy/128.jpg","perretmagali/128.jpg","betraydan/128.jpg","cadikkara/128.jpg","matbeedotcom/128.jpg","jeremyworboys/128.jpg","bpartridge/128.jpg","michaelkoper/128.jpg","silv3rgvn/128.jpg","alevizio/128.jpg","johnsmithagency/128.jpg","lawlbwoy/128.jpg","vitor376/128.jpg","desastrozo/128.jpg","thimo_cz/128.jpg","jasonmarkjones/128.jpg","lhausermann/128.jpg","xravil/128.jpg","guischmitt/128.jpg","vigobronx/128.jpg","panghal0/128.jpg","miguelkooreman/128.jpg","surgeonist/128.jpg","christianoliff/128.jpg","caspergrl/128.jpg","iamkarna/128.jpg","ipavelek/128.jpg","pierre_nel/128.jpg","y2graphic/128.jpg","sterlingrules/128.jpg","elbuscainfo/128.jpg","bennyjien/128.jpg","stushona/128.jpg","estebanuribe/128.jpg","embrcecreations/128.jpg","danillos/128.jpg","elliotlewis/128.jpg","charlesrpratt/128.jpg","vladyn/128.jpg","emmeffess/128.jpg","carlosblanco_eu/128.jpg","leonfedotov/128.jpg","rangafangs/128.jpg","chris_frees/128.jpg","tgormtx/128.jpg","bryan_topham/128.jpg","jpscribbles/128.jpg","mighty55/128.jpg","carbontwelve/128.jpg","isaacfifth/128.jpg","iamjdeleon/128.jpg","snowwrite/128.jpg","barputro/128.jpg","drewbyreese/128.jpg","sachacorazzi/128.jpg","bistrianiosip/128.jpg","magoo04/128.jpg","pehamondello/128.jpg","yayteejay/128.jpg","a_harris88/128.jpg","algunsanabria/128.jpg","zforrester/128.jpg","ovall/128.jpg","carlosjgsousa/128.jpg","geobikas/128.jpg","ah_lice/128.jpg","looneydoodle/128.jpg","nerdgr8/128.jpg","ddggccaa/128.jpg","zackeeler/128.jpg","normanbox/128.jpg","el_fuertisimo/128.jpg","ismail_biltagi/128.jpg","juangomezw/128.jpg","jnmnrd/128.jpg","patrickcoombe/128.jpg","ryanjohnson_me/128.jpg","markolschesky/128.jpg","jeffgolenski/128.jpg","kvasnic/128.jpg","lindseyzilla/128.jpg","gauchomatt/128.jpg","afusinatto/128.jpg","kevinoh/128.jpg","okansurreel/128.jpg","adamawesomeface/128.jpg","emileboudeling/128.jpg","arishi_/128.jpg","juanmamartinez/128.jpg","wikiziner/128.jpg","danthms/128.jpg","mkginfo/128.jpg","terrorpixel/128.jpg","curiousonaut/128.jpg","prheemo/128.jpg","michaelcolenso/128.jpg","foczzi/128.jpg","martip07/128.jpg","thaodang17/128.jpg","johncafazza/128.jpg","robinlayfield/128.jpg","franciscoamk/128.jpg","abdulhyeuk/128.jpg","marklamb/128.jpg","edobene/128.jpg","andresenfredrik/128.jpg","mikaeljorhult/128.jpg","chrisslowik/128.jpg","vinciarts/128.jpg","meelford/128.jpg","elliotnolten/128.jpg","yehudab/128.jpg","vijaykarthik/128.jpg","bfrohs/128.jpg","josep_martins/128.jpg","attacks/128.jpg","sur4dye/128.jpg","tumski/128.jpg","instalox/128.jpg","mangosango/128.jpg","paulfarino/128.jpg","kazaky999/128.jpg","kiwiupover/128.jpg","nvkznemo/128.jpg","tom_even/128.jpg","ratbus/128.jpg","woodsman001/128.jpg","joshmedeski/128.jpg","thewillbeard/128.jpg","psaikali/128.jpg","joe_black/128.jpg","aleinadsays/128.jpg","marcusgorillius/128.jpg","hota_v/128.jpg","jghyllebert/128.jpg","shinze/128.jpg","janpalounek/128.jpg","jeremiespoken/128.jpg","her_ruu/128.jpg","dansowter/128.jpg","felipeapiress/128.jpg","magugzbrand2d/128.jpg","posterjob/128.jpg","nathalie_fs/128.jpg","bobbytwoshoes/128.jpg","dreizle/128.jpg","jeremymouton/128.jpg","elisabethkjaer/128.jpg","notbadart/128.jpg","mohanrohith/128.jpg","jlsolerdeltoro/128.jpg","itskawsar/128.jpg","slowspock/128.jpg","zvchkelly/128.jpg","wiljanslofstra/128.jpg","craighenneberry/128.jpg","trubeatto/128.jpg","juaumlol/128.jpg","samscouto/128.jpg","BenouarradeM/128.jpg","gipsy_raf/128.jpg","netonet_il/128.jpg","arkokoley/128.jpg","itsajimithing/128.jpg","smalonso/128.jpg","victordeanda/128.jpg","_dwite_/128.jpg","richardgarretts/128.jpg","gregrwilkinson/128.jpg","anatolinicolae/128.jpg","lu4sh1i/128.jpg","stefanotirloni/128.jpg","ostirbu/128.jpg","darcystonge/128.jpg","naitanamoreno/128.jpg","michaelcomiskey/128.jpg","adhiardana/128.jpg","marcomano_/128.jpg","davidcazalis/128.jpg","falconerie/128.jpg","gregkilian/128.jpg","bcrad/128.jpg","bolzanmarco/128.jpg","low_res/128.jpg","vlajki/128.jpg","petar_prog/128.jpg","jonkspr/128.jpg","akmalfikri/128.jpg","mfacchinello/128.jpg","atanism/128.jpg","harry_sistalam/128.jpg","murrayswift/128.jpg","bobwassermann/128.jpg","gavr1l0/128.jpg","madshensel/128.jpg","mr_subtle/128.jpg","deviljho_/128.jpg","salimianoff/128.jpg","joetruesdell/128.jpg","twittypork/128.jpg","airskylar/128.jpg","dnezkumar/128.jpg","dgajjar/128.jpg","cherif_b/128.jpg","salvafc/128.jpg","louis_currie/128.jpg","deeenright/128.jpg","cybind/128.jpg","eyronn/128.jpg","vickyshits/128.jpg","sweetdelisa/128.jpg","cboller1/128.jpg","andresdjasso/128.jpg","melvindidit/128.jpg","andysolomon/128.jpg","thaisselenator_/128.jpg","lvovenok/128.jpg","giuliusa/128.jpg","belyaev_rs/128.jpg","overcloacked/128.jpg","kamal_chaneman/128.jpg","incubo82/128.jpg","hellofeverrrr/128.jpg","mhaligowski/128.jpg","sunlandictwin/128.jpg","bu7921/128.jpg","andytlaw/128.jpg","jeremery/128.jpg","finchjke/128.jpg","manigm/128.jpg","umurgdk/128.jpg","scottfeltham/128.jpg","ganserene/128.jpg","mutu_krish/128.jpg","jodytaggart/128.jpg","ntfblog/128.jpg","tanveerrao/128.jpg","hfalucas/128.jpg","alxleroydeval/128.jpg","kucingbelang4/128.jpg","bargaorobalo/128.jpg","colgruv/128.jpg","stalewine/128.jpg","kylefrost/128.jpg","baumannzone/128.jpg","angelcolberg/128.jpg","sachingawas/128.jpg","jjshaw14/128.jpg","ramanathan_pdy/128.jpg","johndezember/128.jpg","nilshoenson/128.jpg","brandonmorreale/128.jpg","nutzumi/128.jpg","brandonflatsoda/128.jpg","sergeyalmone/128.jpg","klefue/128.jpg","kirangopal/128.jpg","baumann_alex/128.jpg","matthewkay_/128.jpg","jay_wilburn/128.jpg","shesgared/128.jpg","apriendeau/128.jpg","johnriordan/128.jpg","wake_gs/128.jpg","aleksitappura/128.jpg","emsgulam/128.jpg","xilantra/128.jpg","imomenui/128.jpg","sircalebgrove/128.jpg","newbrushes/128.jpg","hsinyo23/128.jpg","m4rio/128.jpg","katiemdaly/128.jpg","s4f1/128.jpg","ecommerceil/128.jpg","marlinjayakody/128.jpg","swooshycueb/128.jpg","sangdth/128.jpg","coderdiaz/128.jpg","bluefx_/128.jpg","vivekprvr/128.jpg","sasha_shestakov/128.jpg","eugeneeweb/128.jpg","dgclegg/128.jpg","n1ght_coder/128.jpg","dixchen/128.jpg","blakehawksworth/128.jpg","trueblood_33/128.jpg","hai_ninh_nguyen/128.jpg","marclgonzales/128.jpg","yesmeck/128.jpg","stephcoue/128.jpg","doronmalki/128.jpg","ruehldesign/128.jpg","anasnakawa/128.jpg","kijanmaharjan/128.jpg","wearesavas/128.jpg","stefvdham/128.jpg","tweetubhai/128.jpg","alecarpentier/128.jpg","fiterik/128.jpg","antonyryndya/128.jpg","d00maz/128.jpg","theonlyzeke/128.jpg","missaaamy/128.jpg","carlosm/128.jpg","manekenthe/128.jpg","reetajayendra/128.jpg","jeremyshimko/128.jpg","justinrgraham/128.jpg","stefanozoffoli/128.jpg","overra/128.jpg","mrebay007/128.jpg","shvelo96/128.jpg","pyronite/128.jpg","thedjpetersen/128.jpg","rtyukmaev/128.jpg","_williamguerra/128.jpg","albertaugustin/128.jpg","vikashpathak18/128.jpg","kevinjohndayy/128.jpg","vj_demien/128.jpg","colirpixoil/128.jpg","goddardlewis/128.jpg","laasli/128.jpg","jqiuss/128.jpg","heycamtaylor/128.jpg","nastya_mane/128.jpg","mastermindesign/128.jpg","ccinojasso1/128.jpg","nyancecom/128.jpg","sandywoodruff/128.jpg","bighanddesign/128.jpg","sbtransparent/128.jpg","aviddayentonbay/128.jpg","richwild/128.jpg","kaysix_dizzy/128.jpg","tur8le/128.jpg","seyedhossein1/128.jpg","privetwagner/128.jpg","emmandenn/128.jpg","dev_essentials/128.jpg","jmfsocial/128.jpg","_yardenoon/128.jpg","mateaodviteza/128.jpg","weavermedia/128.jpg","mufaddal_mw/128.jpg","hafeeskhan/128.jpg","ashernatali/128.jpg","sulaqo/128.jpg","eddiechen/128.jpg","josecarlospsh/128.jpg","vm_f/128.jpg","enricocicconi/128.jpg","danmartin70/128.jpg","gmourier/128.jpg","donjain/128.jpg","mrxloka/128.jpg","_pedropinho/128.jpg","eitarafa/128.jpg","oscarowusu/128.jpg","ralph_lam/128.jpg","panchajanyag/128.jpg","woodydotmx/128.jpg","jerrybai1907/128.jpg","marshallchen_/128.jpg","xamorep/128.jpg","aio___/128.jpg","chaabane_wail/128.jpg","txcx/128.jpg","akashsharma39/128.jpg","falling_soul/128.jpg","sainraja/128.jpg","mugukamil/128.jpg","johannesneu/128.jpg","markwienands/128.jpg","karthipanraj/128.jpg","balakayuriy/128.jpg","alan_zhang_/128.jpg","layerssss/128.jpg","kaspernordkvist/128.jpg","mirfanqureshi/128.jpg","hanna_smi/128.jpg","VMilescu/128.jpg","aeon56/128.jpg","m_kalibry/128.jpg","sreejithexp/128.jpg","dicesales/128.jpg","dhoot_amit/128.jpg","smenov/128.jpg","lonesomelemon/128.jpg","vladimirdevic/128.jpg","joelcipriano/128.jpg","haligaliharun/128.jpg","buleswapnil/128.jpg","serefka/128.jpg","ifarafonow/128.jpg","vikasvinfotech/128.jpg","urrutimeoli/128.jpg","areandacom/128.jpg"]; en.internet.avatar_uri=[];for(var i=0;i0;e--)r.push(faker.lorem.sentence());return r.join("\n")},paragraph:function(e){return"undefined"==typeof e&&(e=3),faker.lorem.sentences(e+faker.random.number(3))},paragraphs:function(e){"undefined"==typeof e&&(e=3);var r=[];for(e;e>0;e--)r.push(faker.lorem.paragraph());return r.join("\n \r ")}};module.exports=lorem; -},{"../index":43,"./helpers":49}],81:[function(require,module,exports){ +},{"../index":44,"./helpers":50}],82:[function(require,module,exports){ var faker=require("../index"),_name={firstName:function(){if("undefined"!=typeof faker.definitions.name.male_first_name&&"undefined"!=typeof faker.definitions.name.female_first_name){var e=faker.random.number(1);return faker.random.array_element(0===e?faker.locales[faker.locale].name.male_first_name:faker.locales[faker.locale].name.female_first_name)}return faker.random.array_element(faker.definitions.name.first_name)},lastName:function(){if("undefined"!=typeof faker.definitions.name.male_last_name&&"undefined"!=typeof faker.defintions.name.female_last_name){var e=faker.random.number(1);return faker.random.array_element(0===e?faker.locales[faker.locale].name.male_last_name:faker.locales[faker.locale].name.female_last_name)}return faker.random.array_element(faker.definitions.name.last_name)},findName:function(e,a){var n=faker.random.number(8);switch(e=e||faker.name.firstName(),a=a||faker.name.lastName(),n){case 0:return faker.name.prefix()+" "+e+" "+a;case 1:return e+" "+a+" "+faker.name.suffix()}return e+" "+a},prefix:function(){return faker.random.array_element(faker.definitions.name.prefix)},suffix:function(){return faker.random.array_element(faker.definitions.name.suffix)}};module.exports=_name; -},{"../index":43}],82:[function(require,module,exports){ +},{"../index":44}],83:[function(require,module,exports){ var faker=require("../index"),phone={phoneNumber:function(e){return e=e||faker.phone.phoneFormats(),faker.helpers.replaceSymbolWithNumber(e)},phoneNumberFormat:function(e){return e=e||0,faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[e])},phoneFormats:function(){return faker.random.array_element(faker.definitions.phone_number.formats)}};module.exports=phone; -},{"../index":43}],83:[function(require,module,exports){ +},{"../index":44}],84:[function(require,module,exports){ var mersenne=require("../vendor/mersenne"),faker=require("../index"),random={number:function(e){"number"==typeof e&&(e={max:e}),e=e||{},"undefined"==typeof e.min&&(e.min=0),"undefined"==typeof e.max&&(e.max=1),"undefined"==typeof e.precision&&(e.precision=1);var n=e.max;n>0&&(n+=e.precision);var r=e.precision*Math.floor(mersenne.rand(n/e.precision,e.min/e.precision));return r},array_element:function(e){e=e||["a","b","c"];var n=faker.random.number({max:e.length-1});return e[n]},object_element:function(e,n){e=e||{};var r=Object.keys(e),x=faker.random.array_element(r);return"key"===n?x:e[x]},uuid:function(){var e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",n=function(e){var n=16*Math.random()|0,r="x"==e?n:3&n|8;return r.toString(16)};return e.replace(/[xy]/g,n)}};module.exports=random; -},{"../index":43,"../vendor/mersenne":84}],84:[function(require,module,exports){ +},{"../index":44,"../vendor/mersenne":85}],85:[function(require,module,exports){ function MersenneTwister19937(){function n(n){return 0>n?(n^s)+s:n}function r(r,e){return e>r?n(4294967296-(e-r)&4294967295):r-e}function e(r,e){return n(r+e&4294967295)}function t(r,t){for(var i=0,a=0;32>a;++a)r>>>a&1&&(i=e(i,n(t<g;g++)f[g]=e(t(1812433253,n(f[g-1]^f[g-1]>>>30)),g),f[g]=n(4294967295&f[g])},this.init_by_array=function(a,o){var s,u,g;for(this.init_genrand(19650218),s=1,u=0,g=i>o?i:o;g;g--)f[s]=e(e(n(f[s]^t(n(f[s-1]^f[s-1]>>>30),1664525)),a[u]),u),f[s]=n(4294967295&f[s]),s++,u++,s>=i&&(f[0]=f[i-1],s=1),u>=o&&(u=0);for(g=i-1;g;g--)f[s]=r(n((dbg=f[s])^t(n(f[s-1]^f[s-1]>>>30),1566083941)),s),f[s]=n(4294967295&f[s]),s++,s>=i&&(f[0]=f[i-1],s=1);f[0]=2147483648};var d=[0,o];this.genrand_int32=function(){var r;if(g>=i){var e;for(g==i+1&&this.init_genrand(5489),e=0;i-a>e;e++)r=n(f[e]&s|f[e+1]&u),f[e]=n(f[e+a]^r>>>1^d[1&r]);for(;i-1>e;e++)r=n(f[e]&s|f[e+1]&u),f[e]=n(f[e+(a-i)]^r>>>1^d[1&r]);r=n(f[i-1]&s|f[0]&u),f[i-1]=n(f[a-1]^r>>>1^d[1&r]),g=0}return r=f[g++],r=n(r^r>>>11),r=n(r^r<<7&2636928640),r=n(r^r<<15&4022730752),r=n(r^r>>>18)},this.genrand_int31=function(){return this.genrand_int32()>>>1},this.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},this.genrand_real2=function(){return this.genrand_int32()*(1/4294967296)},this.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},this.genrand_res53=function(){var n=this.genrand_int32()>>>5,r=this.genrand_int32()>>>6;return(67108864*n+r)*(1/9007199254740992)}}exports.MersenneTwister19937=MersenneTwister19937;var gen=new MersenneTwister19937;gen.init_genrand((new Date).getTime()%1e9),exports.rand=function(n,r){return n||(r=0,n=32768),Math.floor(gen.genrand_real2()*(n-r)+r)},exports.seed=function(n){if("number"!=typeof n)throw new Error("seed(S) must take numeric argument; is "+typeof n);gen.init_genrand(n)},exports.seed_array=function(n){if("object"!=typeof n)throw new Error("seed_array(A) must take array of numbers; is "+typeof n);gen.init_by_array(n)}; -},{}],85:[function(require,module,exports){ +},{}],86:[function(require,module,exports){ !function(e){var o,r,t,n,a;t=/[a-zA-Z]$/,a=/[aeiouAEIOU]$/,r=/[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/,o=e.localPasswordGeneratorLibraryName||"generatePassword",n=function(e,o,t,l){var d,u;return null==e&&(e=10),null==o&&(o=!0),null==t&&(t=/\w/),null==l&&(l=""),l.length>=e?l:(o&&(t=l.match(r)?a:r),u=Math.floor(94*Math.random())+33,d=String.fromCharCode(u),o&&(d=d.toLowerCase()),d.match(t)?n(e,o,t,""+l+d):n(e,o,t,l))},("undefined"!=typeof exports?exports:e)[o]=n,"undefined"!=typeof exports&&"undefined"!=typeof module&&module.exports&&(module.exports=n)}(this); -},{}],86:[function(require,module,exports){ +},{}],87:[function(require,module,exports){ function rnd(r,n){if(r=r||0,n=n||100,"number"==typeof n&&"number"==typeof r)return function(r,n){if(r>n)throw new RangeError("expected min <= max; got min = "+r+", max = "+n);return Math.floor(Math.random()*(n-r+1))+r}(r,n);if("[object Array]"===Object.prototype.toString.call(r))return r[Math.floor(Math.random()*r.length)];if(r&&"object"==typeof r)return function(r){var n,o,i=rnd(0,100)/100,e=0,t=0;for(n in r)if(r.hasOwnProperty(n)){if(t=r[n]+e,o=n,i>=e&&t>=i)break;e+=r[n]}return o}(r);throw new TypeError("Invalid arguments passed to rnd. ("+(n?r+", "+n:r)+")")}function randomLang(){return rnd(["AB","AF","AN","AR","AS","AZ","BE","BG","BN","BO","BR","BS","CA","CE","CO","CS","CU","CY","DA","DE","EL","EN","EO","ES","ET","EU","FA","FI","FJ","FO","FR","FY","GA","GD","GL","GV","HE","HI","HR","HT","HU","HY","ID","IS","IT","JA","JV","KA","KG","KO","KU","KW","KY","LA","LB","LI","LN","LT","LV","MG","MK","MN","MO","MS","MT","MY","NB","NE","NL","NN","NO","OC","PL","PT","RM","RO","RU","SC","SE","SK","SL","SO","SQ","SR","SV","SW","TK","TR","TY","UK","UR","UZ","VI","VO","YI","ZH"])}function randomBrowserAndOS(){var r=rnd({chrome:.45132810566,iexplorer:.27477061836,firefox:.19384170608,safari:.06186781118,opera:.01574236955}),n={chrome:{win:.89,mac:.09,lin:.02},firefox:{win:.83,mac:.16,lin:.01},opera:{win:.91,mac:.03,lin:.06},safari:{win:.04,mac:.96},iexplorer:["win"]};return[r,rnd(n[r])]}function randomProc(r){var n={lin:["i686","x86_64"],mac:{Intel:.48,PPC:.01,"U; Intel":.48,"U; PPC":.01},win:["","WOW64","Win64; x64"]};return rnd(n[r])}function randomRevision(r){for(var n="",o=0;r>o;o++)n+="."+rnd(0,9);return n}var version_string={net:function(){return[rnd(1,4),rnd(0,9),rnd(1e4,99999),rnd(0,9)].join(".")},nt:function(){return rnd(5,6)+"."+rnd(0,3)},ie:function(){return rnd(7,11)},trident:function(){return rnd(3,7)+"."+rnd(0,1)},osx:function(r){return[10,rnd(5,10),rnd(0,9)].join(r||".")},chrome:function(){return[rnd(13,39),0,rnd(800,899),0].join(".")},presto:function(){return"2.9."+rnd(160,190)},presto2:function(){return rnd(10,12)+".00"},safari:function(){return rnd(531,538)+"."+rnd(0,2)+"."+rnd(0,2)}},browser={firefox:function(r){var n=rnd(5,15)+randomRevision(2),o="Gecko/20100101 Firefox/"+n,i=randomProc(r),e="win"===r?"(Windows NT "+version_string.nt()+(i?"; "+i:""):"mac"===r?"(Macintosh; "+i+" Mac OS X "+version_string.osx():"(X11; Linux "+i;return"Mozilla/5.0 "+e+"; rv:"+n.slice(0,-2)+") "+o},iexplorer:function(){var r=version_string.ie();return r>=11?"Mozilla/5.0 (Windows NT 6."+rnd(1,3)+"; Trident/7.0; "+rnd(["Touch; ",""])+"rv:11.0) like Gecko":"Mozilla/5.0 (compatible; MSIE "+r+".0; Windows NT "+version_string.nt()+"; Trident/"+version_string.trident()+(1===rnd(0,1)?"; .NET CLR "+version_string.net():"")+")"},opera:function(r){var n=" Presto/"+version_string.presto()+" Version/"+version_string.presto2()+")",o="win"===r?"(Windows NT "+version_string.nt()+"; U; "+randomLang()+n:"lin"===r?"(X11; Linux "+randomProc(r)+"; U; "+randomLang()+n:"(Macintosh; Intel Mac OS X "+version_string.osx()+" U; "+randomLang()+" Presto/"+version_string.presto()+" Version/"+version_string.presto2()+")";return"Opera/"+rnd(9,14)+"."+rnd(0,99)+" "+o},safari:function r(n){var r=version_string.safari(),o=rnd(4,7)+"."+rnd(0,1)+"."+rnd(0,10),i="mac"===n?"(Macintosh; "+randomProc("mac")+" Mac OS X "+version_string.osx("_")+" rv:"+rnd(2,6)+".0; "+randomLang()+") ":"(Windows; U; Windows NT "+version_string.nt()+")";return"Mozilla/5.0 "+i+"AppleWebKit/"+r+" (KHTML, like Gecko) Version/"+o+" Safari/"+r},chrome:function(r){var n=version_string.safari(),o="mac"===r?"(Macintosh; "+randomProc("mac")+" Mac OS X "+version_string.osx("_")+") ":"win"===r?"(Windows; U; Windows NT "+version_string.nt()+")":"(X11; Linux "+randomProc(r);return"Mozilla/5.0 "+o+" AppleWebKit/"+n+" (KHTML, like Gecko) Chrome/"+version_string.chrome()+" Safari/"+n}};exports.generate=function(){var r=randomBrowserAndOS();return browser[r[0]](r[1])}; -},{}],87:[function(require,module,exports){ +},{}],88:[function(require,module,exports){ function toOtherCase(e){return e+(e>=97&&122>=e?-32:e>=65&&90>=e?32:0)}function randBool(){return!this.randInt(0,1)}function randSelect(e){return e instanceof DRange?e.index(this.randInt(0,e.length-1)):e[this.randInt(0,e.length-1)]}function char(e,t){return e=t&&randBool.call(this)?toOtherCase(e):e,String.fromCharCode(e)}function expand(e){if(e.type===ret.types.CHAR)return new DRange(e.value);if(e.type===ret.types.RANGE)return new DRange(e.from,e.to);if(e.type===ret.types.SET){for(var t=new DRange,n=0;ni;i++)r+=gen.call(this,n[i],t);return e.remember&&(t[e.groupNumber]=r),r;case types.POSITION:return"";case types.SET:var s=expand.call(this,e);return s.length?char.call(this,randSelect.call(this,s),this.ignoreCase):"";case types.RANGE:return char.call(this,this.randInt(e.from,e.to),this.ignoreCase);case types.REPETITION:for(a=this.randInt(e.min,e.max===1/0?e.min+this.max:e.max),r="",i=0;a>i;i++)r+=gen.call(this,e.value,t);return r;case types.REFERENCE:return t[e.value-1]||"";case types.CHAR:return char.call(this,e.value,this.ignoreCase)}}var ret=require("ret"),DRange=require("discontinuous-range"),types=ret.types,RandExp=module.exports=function(e,t){if(this.defaultRange=this.defaultRange.clone(),e instanceof RegExp)this.ignoreCase=e.ignoreCase,this.multiline=e.multiline,"number"==typeof e.max&&(this.max=e.max),e=e.source;else{if("string"!=typeof e)throw new Error("Expected a regexp or string");this.ignoreCase=t&&-1!==t.indexOf("i"),this.multiline=t&&-1!==t.indexOf("m")}this.tokens=ret(e)};RandExp.prototype.max=100,RandExp.prototype.gen=function(){return gen.call(this,this.tokens,[])},RandExp.randexp=function(e,t){var n;return void 0===e._randexp?(n=new RandExp(e,t),e._randexp=n):(n=e._randexp,"number"==typeof e.max&&(n.max=e.max),e.defaultRange instanceof DRange&&(n.defaultRange=e.defaultRange),"function"==typeof e.randInt&&(n.randInt=e.randInt)),n.gen()},RandExp.sugar=function(){RegExp.prototype.gen=function(){return RandExp.randexp(this)}},RandExp.prototype.defaultRange=new DRange(32,126),RandExp.prototype.randInt=function(e,t){return e+Math.floor(Math.random()*(1+t-e))}; -},{"discontinuous-range":88,"ret":89}],88:[function(require,module,exports){ +},{"discontinuous-range":89,"ret":90}],89:[function(require,module,exports){ function _SubRange(n,t){this.low=n,this.high=t,this.length=1+t-n}function DiscontinuousRange(n,t){return this instanceof DiscontinuousRange?(this.ranges=[],this.length=0,void 0!==n&&this.add(n,t),void 0):new DiscontinuousRange(n,t)}function _update_length(n){n.length=n.ranges.reduce(function(n,t){return n+t.length},0)}_SubRange.prototype.overlaps=function(n){return!(this.highn.high)},_SubRange.prototype.touches=function(n){return!(this.high+1n.high)},_SubRange.prototype.add=function(n){return this.touches(n)&&new _SubRange(Math.min(this.low,n.low),Math.max(this.high,n.high))},_SubRange.prototype.subtract=function(n){return this.overlaps(n)?n.low<=this.low&&n.high>=this.high?[]:n.low>this.low&&n.high=this.ranges.length?null:this.ranges[t].low+n},DiscontinuousRange.prototype.toString=function(){return"[ "+this.ranges.join(", ")+" ]"},DiscontinuousRange.prototype.clone=function(){return new DiscontinuousRange(this)},module.exports=DiscontinuousRange; -},{}],89:[function(require,module,exports){ +},{}],90:[function(require,module,exports){ var util=require("./util"),types=require("./types"),sets=require("./sets"),positions=require("./positions");module.exports=function(e){var s,t,a=0,p={type:types.ROOT,stack:[]},r=p,o=p.stack,u=[],n=function(s){util.error(e,"Nothing to repeat at column "+(s-1))},i=util.strToChars(e);for(s=i.length;s>a;)switch(t=i[a++]){case"\\":switch(t=i[a++]){case"b":o.push(positions.wordBoundary());break;case"B":o.push(positions.nonWordBoundary());break;case"w":o.push(sets.words());break;case"W":o.push(sets.notWords());break;case"d":o.push(sets.ints());break;case"D":o.push(sets.notInts());break;case"s":o.push(sets.whitespace());break;case"S":o.push(sets.notWhitespace());break;default:o.push(/\d/.test(t)?{type:types.REFERENCE,value:parseInt(t,10)}:{type:types.CHAR,value:t.charCodeAt(0)})}break;case"^":o.push(positions.begin());break;case"$":o.push(positions.end());break;case"[":var c;"^"===i[a]?(c=!0,a++):c=!1;var l=util.tokenizeClass(i.slice(a),e);a+=l[1],o.push({type:types.SET,set:l[0],not:c});break;case".":o.push(sets.anyChar());break;case"(":var h={type:types.GROUP,stack:[],remember:!0};t=i[a],"?"===t&&(t=i[a+1],a+=2,"="===t?h.followedBy=!0:"!"===t?h.notFollowedBy=!0:":"!==t&&util.error(e,"Invalid group, character '"+t+"' after '?' at column "+(a-1)),h.remember=!1),o.push(h),u.push(r),r=h,o=h.stack;break;case")":0===u.length&&util.error(e,"Unmatched ) at column "+(a-1)),r=u.pop(),o=r.options?r.options[r.options.length-1]:r.stack;break;case"|":r.options||(r.options=[r.stack],delete r.stack);var y=[];r.options.push(y),o=y;break;case"{":var k,b,d=/^(\d+)(,(\d+)?)?\}/.exec(i.slice(a));null!==d?(k=parseInt(d[1],10),b=d[2]?d[3]?parseInt(d[3],10):1/0:k,a+=d[0].length,o.push({type:types.REPETITION,min:k,max:b,value:o.pop()})):o.push({type:types.CHAR,value:123});break;case"?":0===o.length&&n(a),o.push({type:types.REPETITION,min:0,max:1,value:o.pop()});break;case"+":0===o.length&&n(a),o.push({type:types.REPETITION,min:1,max:1/0,value:o.pop()});break;case"*":0===o.length&&n(a),o.push({type:types.REPETITION,min:0,max:1/0,value:o.pop()});break;default:o.push({type:types.CHAR,value:t.charCodeAt(0)})}return 0!==u.length&&util.error(e,"Unterminated group"),p},module.exports.types=types; -},{"./positions":90,"./sets":91,"./types":92,"./util":93}],90:[function(require,module,exports){ +},{"./positions":91,"./sets":92,"./types":93,"./util":94}],91:[function(require,module,exports){ var types=require("./types");exports.wordBoundary=function(){return{type:types.POSITION,value:"b"}},exports.nonWordBoundary=function(){return{type:types.POSITION,value:"B"}},exports.begin=function(){return{type:types.POSITION,value:"^"}},exports.end=function(){return{type:types.POSITION,value:"$"}}; -},{"./types":92}],91:[function(require,module,exports){ +},{"./types":93}],92:[function(require,module,exports){ var types=require("./types"),INTS=function(){return[{type:types.RANGE,from:48,to:57}]},WORDS=function(){return[{type:types.CHAR,value:95},{type:types.RANGE,from:97,to:122},{type:types.RANGE,from:65,to:90}].concat(INTS())},WHITESPACE=function(){return[{type:types.CHAR,value:9},{type:types.CHAR,value:10},{type:types.CHAR,value:11},{type:types.CHAR,value:12},{type:types.CHAR,value:13},{type:types.CHAR,value:32},{type:types.CHAR,value:160},{type:types.CHAR,value:5760},{type:types.CHAR,value:6158},{type:types.CHAR,value:8192},{type:types.CHAR,value:8193},{type:types.CHAR,value:8194},{type:types.CHAR,value:8195},{type:types.CHAR,value:8196},{type:types.CHAR,value:8197},{type:types.CHAR,value:8198},{type:types.CHAR,value:8199},{type:types.CHAR,value:8200},{type:types.CHAR,value:8201},{type:types.CHAR,value:8202},{type:types.CHAR,value:8232},{type:types.CHAR,value:8233},{type:types.CHAR,value:8239},{type:types.CHAR,value:8287},{type:types.CHAR,value:12288},{type:types.CHAR,value:65279}]},NOTANYCHAR=function(){return[{type:types.CHAR,value:10},{type:types.CHAR,value:13},{type:types.CHAR,value:8232},{type:types.CHAR,value:8233}]};exports.words=function(){return{type:types.SET,set:WORDS(),not:!1}},exports.notWords=function(){return{type:types.SET,set:WORDS(),not:!0}},exports.ints=function(){return{type:types.SET,set:INTS(),not:!1}},exports.notInts=function(){return{type:types.SET,set:INTS(),not:!0}},exports.whitespace=function(){return{type:types.SET,set:WHITESPACE(),not:!1}},exports.notWhitespace=function(){return{type:types.SET,set:WHITESPACE(),not:!0}},exports.anyChar=function(){return{type:types.SET,set:NOTANYCHAR(),not:!0}}; -},{"./types":92}],92:[function(require,module,exports){ +},{"./types":93}],93:[function(require,module,exports){ module.exports={ROOT:0,GROUP:1,POSITION:2,SET:3,RANGE:4,REPETITION:5,REFERENCE:6,CHAR:7}; -},{}],93:[function(require,module,exports){ +},{}],94:[function(require,module,exports){ var types=require("./types"),sets=require("./sets"),CTRL="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?",SLSH={0:0,t:9,n:10,v:11,f:12,r:13};exports.strToChars=function(e){var s=/(\[\\b\])|\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|(0?[0-7]{2})|c([@A-Z\[\\\]\^?])|([0tnvfr]))/g;return e=e.replace(s,function(e,s,r,t,n,o,a){var p=s?8:r?parseInt(r,16):t?parseInt(t,16):n?parseInt(n,8):o?CTRL.indexOf(o):a?SLSH[a]:void 0,i=String.fromCharCode(p);return/[\[\]{}\^$.|?*+()]/.test(i)&&(i="\\"+i),i})},exports.tokenizeClass=function(e,s){for(var r,t,n=[],o=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(?:\\)?([^\]]))|(\])|(?:\\)?(.)/g;null!=(r=o.exec(e));)if(r[1])n.push(sets.words());else if(r[2])n.push(sets.ints());else if(r[3])n.push(sets.whitespace());else if(r[4])n.push(sets.notWords());else if(r[5])n.push(sets.notInts());else if(r[6])n.push(sets.notWhitespace());else if(r[7])n.push({type:types.RANGE,from:(r[8]||r[9]).charCodeAt(0),to:r[10].charCodeAt(0)});else{if(!(t=r[12]))return[n,o.lastIndex];n.push({type:types.CHAR,value:t.charCodeAt(0)})}exports.error(s,"Unterminated character class")},exports.error=function(e,s){throw new SyntaxError("Invalid regular expression: /"+e+"/: "+s)}; -},{"./sets":91,"./types":92}],94:[function(require,module,exports){ +},{"./sets":92,"./types":93}],95:[function(require,module,exports){ (function (global){ !function(t,n,e){n[t]=n[t]||e(),"undefined"!=typeof module&&module.exports?module.exports=n[t]:"function"==typeof define&&define.amd&&define(function(){return n[t]})}("Promise","undefined"!=typeof global?global:this,function(){"use strict";function t(t,n){l.add(t,n),h||(h=y(l.drain))}function n(t){var n,e=typeof t;return null==t||"object"!=e&&"function"!=e||(n=t.then),"function"==typeof n?n:!1}function e(){for(var t=0;t0&&t(e,a))}catch(s){i.call(u||new f(a),s)}}}function i(n){var o=this;o.triggered||(o.triggered=!0,o.def&&(o=o.def),o.msg=n,o.state=2,o.chain.length>0&&t(e,o))}function c(t,n,e,o){for(var r=0;r$/i,o=/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,a=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/,s=/^(?:[0-9]{9}X|[0-9]{10})$/,l=/^(?:[0-9]{13})$/,f=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/,c=/^[0-9A-F]{1,4}$/i,F={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i},p=/^[A-Z]+$/i,g=/^[0-9A-Z]+$/i,x=/^[-+]?[0-9]+$/,d=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,_=/^(?:[-+]?(?:[0-9]+))?(?:\.[0-9]*)?(?:[eE][\+\-]?(?:[0-9]+))?$/,h=/^[0-9A-F]+$/i,A=/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i,v=/^[\x00-\x7F]+$/,$=/[^\x00-\x7F]/,w=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/,m=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/,D=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,b=/^(?:[A-Z0-9+\/]{4})*(?:[A-Z0-9+\/]{2}==|[A-Z0-9+\/]{3}=|[A-Z0-9+\/]{4})$/i,y={"zh-CN":/^(\+?0?86\-?)?1[345789]\d{9}$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-HK":/^(\+?852\-?)?[569]\d{3}\-?\d{4}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"pt-PT":/^(\+351)?9[1236]\d{7}$/,"el-GR":/^(\+30)?((2\d{9})|(69\d{8}))$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-US":/^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/,"en-ZM":/^(\+26)?09[567]\d{7}$/};t.extend=function(e,r){t[e]=function(){var e=Array.prototype.slice.call(arguments);return e[0]=t.toString(e[0]),r.apply(t,e)}},t.init=function(){for(var e in t)"function"==typeof t[e]&&"toString"!==e&&"toDate"!==e&&"extend"!==e&&"init"!==e&&t.extend(e,t[e])},t.toString=function(t){return"object"==typeof t&&null!==t&&t.toString?t=t.toString():null===t||"undefined"==typeof t||isNaN(t)&&!t.length?t="":"string"!=typeof t&&(t+=""),t},t.toDate=function(t){return"[object Date]"===Object.prototype.toString.call(t)?t:(t=Date.parse(t),isNaN(t)?null:new Date(t))},t.toFloat=function(t){return parseFloat(t)},t.toInt=function(t,e){return parseInt(t,e||10)},t.toBoolean=function(t,e){return e?"1"===t||"true"===t:"0"!==t&&"false"!==t&&""!==t},t.equals=function(e,r){return e===t.toString(r)},t.contains=function(e,r){return e.indexOf(t.toString(r))>=0},t.matches=function(t,e,r){return"[object RegExp]"!==Object.prototype.toString.call(e)&&(e=new RegExp(e,r)),e.test(t)};var E={allow_display_name:!1,allow_utf8_local_part:!0,require_tld:!0};t.isEmail=function(r,o){if(o=e(o,E),o.allow_display_name){var a=r.match(u);a&&(r=a[1])}else if(/\s/.test(r))return!1;var s=r.split("@"),l=s.pop(),f=s.join("@");return t.isFQDN(l,{require_tld:o.require_tld})?o.allow_utf8_local_part?i.test(f):n.test(f):!1};var O={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1};t.isURL=function(r,n){if(!r||r.length>=2083||/\s/.test(r))return!1;if(0===r.indexOf("mailto:"))return!1;n=e(n,O);var i,u,o,a,s,l,f;if(f=r.split("://"),f.length>1){if(i=f.shift(),-1===n.protocols.indexOf(i))return!1}else{if(n.require_protocol)return!1;n.allow_protocol_relative_urls&&"//"===r.substr(0,2)&&(f[0]=r.substr(2))}return r=f.join("://"),f=r.split("#"),r=f.shift(),f=r.split("?"),r=f.shift(),f=r.split("/"),r=f.shift(),f=r.split("@"),f.length>1&&(u=f.shift(),u.indexOf(":")>=0&&u.split(":").length>2)?!1:(a=f.join("@"),f=a.split(":"),o=f.shift(),f.length&&(l=f.join(":"),s=parseInt(l,10),!/^[0-9]+$/.test(l)||0>=s||s>65535)?!1:t.isIP(o)||t.isFQDN(o,n)||"localhost"===o?n.host_whitelist&&-1===n.host_whitelist.indexOf(o)?!1:n.host_blacklist&&-1!==n.host_blacklist.indexOf(o)?!1:!0:!1)},t.isIP=function(e,r){if(r=t.toString(r),!r)return t.isIP(e,4)||t.isIP(e,6);if("4"===r){if(!f.test(e))return!1;var n=e.split(".").sort(function(t,e){return t-e});return n[3]<=255}if("6"===r){var i=e.split(":"),u=!1;if(i.length>8)return!1;if("::"===e)return!0;"::"===e.substr(0,2)?(i.shift(),i.shift(),u=!0):"::"===e.substr(e.length-2)&&(i.pop(),i.pop(),u=!0);for(var o=0;o0&&o=1:8===i.length}return!1};var C={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1};t.isFQDN=function(t,r){r=e(r,C),r.allow_trailing_dot&&"."===t[t.length-1]&&(t=t.substring(0,t.length-1));var n=t.split(".");if(r.require_tld){var i=n.pop();if(!n.length||!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(i))return!1}for(var u,o=0;o=0)return!1;u=u.replace(/_/g,"")}if(!/^[a-z\u00a1-\uffff0-9-]+$/i.test(u))return!1;if("-"===u[0]||"-"===u[u.length-1]||u.indexOf("---")>=0)return!1}return!0},t.isBoolean=function(t){return["true","false","1","0"].indexOf(t)>=0},t.isAlpha=function(t){return p.test(t)},t.isAlphanumeric=function(t){return g.test(t)},t.isNumeric=function(t){return x.test(t)},t.isHexadecimal=function(t){return h.test(t)},t.isHexColor=function(t){return A.test(t)},t.isLowercase=function(t){return t===t.toLowerCase()},t.isUppercase=function(t){return t===t.toUpperCase()},t.isInt=function(t,e){return e=e||{},d.test(t)&&(!e.hasOwnProperty("min")||t>=e.min)&&(!e.hasOwnProperty("max")||t<=e.max)},t.isFloat=function(t,e){return e=e||{},""!==t&&_.test(t)&&(!e.hasOwnProperty("min")||t>=e.min)&&(!e.hasOwnProperty("max")||t<=e.max)},t.isDivisibleBy=function(e,r){return t.toFloat(e)%t.toInt(r)===0},t.isNull=function(t){return 0===t.length},t.isLength=function(t,e,r){var n=t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],i=t.length-n.length;return i>=e&&("undefined"==typeof r||r>=i)},t.isByteLength=function(t,e,r){return t.length>=e&&("undefined"==typeof r||t.length<=r)},t.isUUID=function(t,e){var r=F[e?e:"all"];return r&&r.test(t)},t.isDate=function(t){return!isNaN(Date.parse(t))},t.isAfter=function(e,r){var n=t.toDate(r||new Date),i=t.toDate(e);return!!(i&&n&&i>n)},t.isBefore=function(e,r){var n=t.toDate(r||new Date),i=t.toDate(e);return i&&n&&n>i},t.isIn=function(e,r){var n;if("[object Array]"===Object.prototype.toString.call(r)){var i=[];for(n in r)i[n]=t.toString(r[n]);return i.indexOf(e)>=0}return"object"==typeof r?r.hasOwnProperty(e):r&&"function"==typeof r.indexOf?r.indexOf(e)>=0:!1},t.isCreditCard=function(t){var e=t.replace(/[^0-9]+/g,"");if(!o.test(e))return!1;for(var r,n,i,u=0,a=e.length-1;a>=0;a--)r=e.substring(a,a+1),n=parseInt(r,10),i?(n*=2,u+=n>=10?n%10+1:n):u+=n,i=!i;return!!(u%10===0?e:!1)},t.isISIN=function(t){if(!a.test(t))return!1;for(var e,r,n=t.replace(/[A-Z]/g,function(t){return parseInt(t,36)}),i=0,u=!0,o=n.length-2;o>=0;o--)e=n.substring(o,o+1),r=parseInt(e,10),u?(r*=2,i+=r>=10?r+1:r):i+=r,u=!u;return parseInt(t.substr(t.length-1),10)===(1e4-i)%10},t.isISBN=function(e,r){if(r=t.toString(r),!r)return t.isISBN(e,10)||t.isISBN(e,13);var n,i=e.replace(/[\s-]+/g,""),u=0;if("10"===r){if(!s.test(i))return!1;for(n=0;9>n;n++)u+=(n+1)*i.charAt(n);if(u+="X"===i.charAt(9)?100:10*i.charAt(9),u%11===0)return!!i}else if("13"===r){if(!l.test(i))return!1;var o=[1,3];for(n=0;12>n;n++)u+=o[n%2]*i.charAt(n);if(i.charAt(12)-(10-u%10)%10===0)return!!i}return!1},t.isMobilePhone=function(t,e){return e in y?y[e].test(t):!1};var I={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_space_after_digits:!1};t.isCurrency=function(t,n){return n=e(n,I),r(n).test(t)},t.isJSON=function(t){try{JSON.parse(t)}catch(e){return!1}return!0},t.isMultibyte=function(t){return $.test(t)},t.isAscii=function(t){return v.test(t)},t.isFullWidth=function(t){return w.test(t)},t.isHalfWidth=function(t){return m.test(t)},t.isVariableWidth=function(t){return w.test(t)&&m.test(t)},t.isSurrogatePair=function(t){return D.test(t)},t.isBase64=function(t){return b.test(t)},t.isMongoId=function(e){return t.isHexadecimal(e)&&24===e.length},t.ltrim=function(t,e){var r=e?new RegExp("^["+e+"]+","g"):/^\s+/g;return t.replace(r,"")},t.rtrim=function(t,e){var r=e?new RegExp("["+e+"]+$","g"):/\s+$/g;return t.replace(r,"")},t.trim=function(t,e){var r=e?new RegExp("^["+e+"]+|["+e+"]+$","g"):/^\s+|\s+$/g;return t.replace(r,"")},t.escape=function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/").replace(/\`/g,"`")},t.stripLow=function(e,r){var n=r?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return t.blacklist(e,n)},t.whitelist=function(t,e){return t.replace(new RegExp("[^"+e+"]+","g"),"")},t.blacklist=function(t,e){return t.replace(new RegExp("["+e+"]+","g"),"")};var S={lowercase:!0};return t.normalizeEmail=function(r,n){if(n=e(n,S),!t.isEmail(r))return!1;var i=r.split("@",2);if(i[1]=i[1].toLowerCase(),"gmail.com"===i[1]||"googlemail.com"===i[1]){if(i[0]=i[0].toLowerCase().replace(/\./g,""),"+"===i[0][0])return!1;i[0]=i[0].split("+")[0],i[1]="gmail.com"}else n.lowercase&&(i[0]=i[0].toLowerCase());return i.join("@")},t.init(),t}); -},{}],96:[function(require,module,exports){ +},{}],97:[function(require,module,exports){ "use strict";module.exports={INVALID_TYPE:"Expected type {0} but found type {1}",INVALID_FORMAT:"Object didn't pass validation for format {0}: {1}",ENUM_MISMATCH:"No enum match for: {0}",ANY_OF_MISSING:"Data does not match any schemas from 'anyOf'",ONE_OF_MISSING:"Data does not match any schemas from 'oneOf'",ONE_OF_MULTIPLE:"Data is valid against more than one schema from 'oneOf'",NOT_PASSED:"Data matches schema from 'not'",ARRAY_LENGTH_SHORT:"Array is too short ({0}), minimum {1}",ARRAY_LENGTH_LONG:"Array is too long ({0}), maximum {1}",ARRAY_UNIQUE:"Array items are not unique (indexes {0} and {1})",ARRAY_ADDITIONAL_ITEMS:"Additional items not allowed",MULTIPLE_OF:"Value {0} is not a multiple of {1}",MINIMUM:"Value {0} is less than minimum {1}",MINIMUM_EXCLUSIVE:"Value {0} is equal or less than exclusive minimum {1}",MAXIMUM:"Value {0} is greater than maximum {1}",MAXIMUM_EXCLUSIVE:"Value {0} is equal or greater than exclusive maximum {1}",OBJECT_PROPERTIES_MINIMUM:"Too few properties defined ({0}), minimum {1}",OBJECT_PROPERTIES_MAXIMUM:"Too many properties defined ({0}), maximum {1}",OBJECT_MISSING_REQUIRED_PROPERTY:"Missing required property: {0}",OBJECT_ADDITIONAL_PROPERTIES:"Additional properties not allowed: {0}",OBJECT_DEPENDENCY_KEY:"Dependency failed - key must exist: {0} (due to key: {1})",MIN_LENGTH:"String is too short ({0} chars), minimum {1}",MAX_LENGTH:"String is too long ({0} chars), maximum {1}",PATTERN:"String does not match pattern {0}: {1}",KEYWORD_TYPE_EXPECTED:"Keyword '{0}' is expected to be of type '{1}'",KEYWORD_UNDEFINED_STRICT:"Keyword '{0}' must be defined in strict mode",KEYWORD_UNEXPECTED:"Keyword '{0}' is not expected to appear in the schema",KEYWORD_MUST_BE:"Keyword '{0}' must be {1}",KEYWORD_DEPENDENCY:"Keyword '{0}' requires keyword '{1}'",KEYWORD_PATTERN:"Keyword '{0}' is not a valid RegExp pattern: {1}",KEYWORD_VALUE_TYPE:"Each element of keyword '{0}' array must be a '{1}'",UNKNOWN_FORMAT:"There is no validation function for format '{0}'",CUSTOM_MODE_FORCE_PROPERTIES:"{0} must define at least one property if present",REF_UNRESOLVED:"Reference has not been resolved during compilation: {0}",UNRESOLVABLE_REFERENCE:"Reference could not be resolved: {0}",SCHEMA_NOT_REACHABLE:"Validator was not able to read schema with uri: {0}",SCHEMA_TYPE_EXPECTED:"Schema is expected to be of type 'object'",SCHEMA_NOT_AN_OBJECT:"Schema is not an object: {0}",ASYNC_TIMEOUT:"{0} asynchronous task(s) have timed out after {1} ms",PARENT_SCHEMA_VALIDATION_FAILED:"Schema failed to validate against its parent schema, see inner errors for details.",REMOTE_NOT_VALID:"Remote reference didn't compile successfully: {0}"}; -},{}],97:[function(require,module,exports){ +},{}],98:[function(require,module,exports){ var validator=require("validator"),FormatValidators={date:function(t){if("string"!=typeof t)return!0;var r=/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/.exec(t);return null===r?!1:r[2]<"01"||r[2]>"12"||r[3]<"01"||r[3]>"31"?!1:!0},"date-time":function(t){if("string"!=typeof t)return!0;var r=t.toLowerCase().split("t");if(!FormatValidators.date(r[0]))return!1;var i=/^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$/.exec(r[1]);return null===i?!1:i[1]>"23"||i[2]>"59"||i[3]>"59"?!1:!0},email:function(t){return"string"!=typeof t?!0:validator.isEmail(t,{require_tld:!0})},hostname:function(t){if("string"!=typeof t)return!0;var r=/^[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?(\.[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?)*$/.test(t);if(r){if(t.length>255)return!1;for(var i=t.split("."),e=0;e63)return!1}return r},"host-name":function(t){return FormatValidators.hostname.call(this,t)},ipv4:function(t){return"string"!=typeof t?!0:validator.isIP(t,4)},ipv6:function(t){return"string"!=typeof t?!0:validator.isIP(t,6)},regex:function(t){try{return RegExp(t),!0}catch(r){return!1}},uri:function(t){return this.options.strictUris?FormatValidators["strict-uri"].apply(this,arguments):"string"!=typeof t||RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?").test(t)},"strict-uri":function(t){return"string"!=typeof t||validator.isURL(t)}};module.exports=FormatValidators; -},{"validator":95}],98:[function(require,module,exports){ +},{"validator":96}],99:[function(require,module,exports){ "use strict";var FormatValidators=require("./FormatValidators"),Report=require("./Report"),Utils=require("./Utils"),JsonValidators={multipleOf:function(r,e,t){"number"==typeof t&&"integer"!==Utils.whatIs(t/e.multipleOf)&&r.addError("MULTIPLE_OF",[t,e.multipleOf],null,e.description)},maximum:function(r,e,t){"number"==typeof t&&(e.exclusiveMaximum!==!0?t>e.maximum&&r.addError("MAXIMUM",[t,e.maximum],null,e.description):t>=e.maximum&&r.addError("MAXIMUM_EXCLUSIVE",[t,e.maximum],null,e.description))},exclusiveMaximum:function(){},minimum:function(r,e,t){"number"==typeof t&&(e.exclusiveMinimum!==!0?te.maxLength&&r.addError("MAX_LENGTH",[t.length,e.maxLength],null,e.description)},minLength:function(r,e,t){"string"==typeof t&&Utils.ucs2decode(t).lengthe.items.length&&r.addError("ARRAY_ADDITIONAL_ITEMS",null,null,e.description)},items:function(){},maxItems:function(r,e,t){Array.isArray(t)&&t.length>e.maxItems&&r.addError("ARRAY_LENGTH_LONG",[t.length,e.maxItems],null,e.description)},minItems:function(r,e,t){Array.isArray(t)&&t.lengthe.maxProperties&&r.addError("OBJECT_PROPERTIES_MAXIMUM",[i,e.maxProperties],null,e.description)}},minProperties:function(r,e,t){if("object"===Utils.whatIs(t)){var i=Object.keys(t).length;i0&&r.addError("OBJECT_ADDITIONAL_PROPERTIES",[o],null,e.description)}}},dependencies:function(r,e,t){if("object"===Utils.whatIs(t))for(var i=Object.keys(e.dependencies),n=i.length;n--;){var o=i[n];if(t[o]){var a=e.dependencies[o];if("object"===Utils.whatIs(a))exports.validate.call(this,r,a,t);else for(var s=a.length;s--;){var l=a[s];void 0===t[l]&&r.addError("OBJECT_DEPENDENCY_KEY",[l,o],null,e.description)}}}},"enum":function(r,e,t){for(var i=!1,n=e["enum"].length;n--;)if(Utils.areEqual(t,e["enum"][n])){i=!0;break}i===!1&&r.addError("ENUM_MISMATCH",[t],null,e.description)},allOf:function(r,e,t){for(var i=e.allOf.length;i--&&exports.validate.call(this,r,e.allOf[i],t)!==!1;);},anyOf:function(r,e,t){for(var i=[],n=!1,o=e.anyOf.length;o--&&n===!1;){var a=new Report(r);i.push(a),n=exports.validate.call(this,a,e.anyOf[o],t)}n===!1&&r.addError("ANY_OF_MISSING",void 0,i,e.description)},oneOf:function(r,e,t){for(var i=0,n=[],o=e.oneOf.length;o--;){var a=new Report(r,{maxErrors:1});n.push(a),exports.validate.call(this,a,e.oneOf[o],t)===!0&&i++}0===i?r.addError("ONE_OF_MISSING",void 0,n,e.description):i>1&&r.addError("ONE_OF_MULTIPLE",null,null,e.description)},not:function(r,e,t){var i=new Report(r);exports.validate.call(this,i,e.not,t)===!0&&r.addError("NOT_PASSED",null,null,e.description)},definitions:function(){},format:function(r,e,t){var i=FormatValidators[e.format];"function"==typeof i?2===i.length?r.addAsyncTask(i,[t],function(i){i!==!0&&r.addError("INVALID_FORMAT",[e.format,t],null,e.description)}):i.call(this,t)!==!0&&r.addError("INVALID_FORMAT",[e.format,t],null,e.description):r.addError("UNKNOWN_FORMAT",[e.format],null,e.description)}},recurseArray=function(r,e,t){var i=t.length;if(Array.isArray(e.items))for(;i--;)i0;){if(!e.__$refResolved){r.addError("REF_UNRESOLVED",[e.$ref],null,e.description);break}if(e.__$refResolved===e)break;e=e.__$refResolved,n=Object.keys(e),a--}if(0===a)throw new Error("Circular dependency by $ref references!")}var s=Utils.whatIs(t);if(e.type)if("string"==typeof e.type){if(s!==e.type&&("integer"!==s||"number"!==e.type)&&(r.addError("INVALID_TYPE",[e.type,s],null,e.description),this.options.breakOnFirstError))return!1}else if(-1===e.type.indexOf(s)&&("integer"!==s||-1===e.type.indexOf("number"))&&(r.addError("INVALID_TYPE",[e.type,s],null,e.description),this.options.breakOnFirstError))return!1;for(var l=n.length;l--&&!(JsonValidators[n[l]]&&(JsonValidators[n[l]].call(this,r,e,t),r.errors.length&&this.options.breakOnFirstError)););return(0===r.errors.length||this.options.breakOnFirstError===!1)&&("array"===s?recurseArray.call(this,r,e,t):"object"===s&&recurseObject.call(this,r,e,t)),o&&(r.rootSchema=void 0),0===r.errors.length}; -},{"./FormatValidators":97,"./Report":100,"./Utils":104}],99:[function(require,module,exports){ +},{"./FormatValidators":98,"./Report":101,"./Utils":105}],100:[function(require,module,exports){ "function"!=typeof Number.isFinite&&(Number.isFinite=function(e){return"number"!=typeof e?!1:e!==e||e===1/0||e===-(1/0)?!1:!0}); -},{}],100:[function(require,module,exports){ +},{}],101:[function(require,module,exports){ (function (process){ "use strict";function Report(r,t){this.parentReport=r instanceof Report?r:void 0,this.options=r instanceof Report?r.options:r||{},this.reportOptions=t||{},this.errors=[],this.path=[],this.asyncTasks=[]}var Errors=require("./Errors"),Utils=require("./Utils");Report.prototype.isValid=function(){if(this.asyncTasks.length>0)throw new Error("Async tasks pending, can't answer isValid");return 0===this.errors.length},Report.prototype.addAsyncTask=function(r,t,o){this.asyncTasks.push([r,t,o])},Report.prototype.processAsyncTasks=function(r,t){function o(){process.nextTick(function(){var r=0===p.errors.length,o=r?void 0:p.errors;t(o,r)})}function s(r){return function(t){a||(r(t),0===--n&&o())}}var e=r||2e3,n=this.asyncTasks.length,i=n,a=!1,p=this;if(0===n||this.errors.length>0)return void o();for(;i--;){var h=this.asyncTasks[i];h[0].apply(null,h[1].concat(s(h[2])))}setTimeout(function(){n>0&&(a=!0,p.addError("ASYNC_TIMEOUT",[n,e]),t(p.errors,!1))},e)},Report.prototype.getPath=function(){var r=[];return this.parentReport&&(r=r.concat(this.parentReport.path)),r=r.concat(this.path),this.options.reportPathAsArray!==!0&&(r="#/"+r.map(function(r){return Utils.isAbsoluteUri(r)?"uri("+r+")":r.replace("~","~0").replace("/","~1")}).join("/")),r},Report.prototype.addError=function(r,t,o,s){if(!(this.errors.length>=this.reportOptions.maxErrors)){if(!r)throw new Error("No errorCode passed into addError()");if(!Errors[r])throw new Error("No errorMessage known for code "+r);t=t||[];for(var e=t.length,n=Errors[r];e--;){var i=Utils.whatIs(t[e]),a="object"===i||"null"===i?JSON.stringify(t[e]):t[e];n=n.replace("{"+e+"}",a)}var p={code:r,params:t,message:n,path:this.getPath()};if(s&&(p.description=s),null!=o){for(Array.isArray(o)||(o=[o]),p.inner=[],e=o.length;e--;)for(var h=o[e],c=h.errors.length;c--;)p.inner.push(h.errors[c]);0===p.inner.length&&(p.inner=void 0)}this.errors.push(p)}},module.exports=Report; }).call(this,require('_process')) -},{"./Errors":96,"./Utils":104,"_process":14}],101:[function(require,module,exports){ +},{"./Errors":97,"./Utils":105,"_process":15}],102:[function(require,module,exports){ "use strict";function decodeJSONPointer(e){return decodeURIComponent(e).replace(/~[0-1]/g,function(e){return"~1"===e?"/":"~"})}function getRemotePath(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function getQueryPath(e){var t=e.indexOf("#"),r=-1===t?void 0:e.slice(t+1);return r}function findId(e,t){if("object"==typeof e&&null!==e){if(!t)return e;if(e.id&&(e.id===t||"#"===e.id[0]&&e.id.substring(1)===t))return e;var r,i;if(Array.isArray(e)){for(r=e.length;r--;)if(i=findId(e[r],t))return i}else{var a=Object.keys(e);for(r=a.length;r--;){var n=a[r];if(0!==n.indexOf("__$")&&(i=findId(e[n],t)))return i}}}}var Report=require("./Report"),SchemaCompilation=require("./SchemaCompilation"),SchemaValidation=require("./SchemaValidation"),Utils=require("./Utils");exports.cacheSchemaByUri=function(e,t){var r=getRemotePath(e);r&&(this.cache[r]=t)},exports.removeFromCacheByUri=function(e){var t=getRemotePath(e);t&&(this.cache[t]=void 0)},exports.checkCacheForUri=function(e){var t=getRemotePath(e);return t?null!=this.cache[t]:!1},exports.getSchema=function(e,t){return"object"==typeof t&&(t=exports.getSchemaByReference.call(this,e,t)),"string"==typeof t&&(t=exports.getSchemaByUri.call(this,e,t)),t},exports.getSchemaByReference=function(e,t){for(var r=this.referenceCache.length;r--;)if(this.referenceCache[r][0]===t)return this.referenceCache[r][1];var i=Utils.cloneDeep(t);return this.referenceCache.push([t,i]),i},exports.getSchemaByUri=function(e,t,r){var i=getRemotePath(t),a=getQueryPath(t),n=i?this.cache[i]:r;if(n&&i){var c=n!==r;if(c){e.path.push(i);var o=new Report(e);SchemaCompilation.compileSchema.call(this,o,n)&&SchemaValidation.validateSchema.call(this,o,n);var h=o.isValid();if(h||e.addError("REMOTE_NOT_VALID",[t],o),e.path.pop(),!h)return void 0}}if(n&&a)for(var f=a.split("/"),s=0,u=f.length;u>s;s++){var l=decodeJSONPointer(f[s]);n=0===s?findId(n,l):n[l]}return n},exports.getRemotePath=getRemotePath; -},{"./Report":100,"./SchemaCompilation":102,"./SchemaValidation":103,"./Utils":104}],102:[function(require,module,exports){ +},{"./Report":101,"./SchemaCompilation":103,"./SchemaValidation":104,"./Utils":105}],103:[function(require,module,exports){ "use strict";function mergeReference(e,r){if(Utils.isAbsoluteUri(r))return r;var i,s=e.join(""),c=Utils.isAbsoluteUri(s),t=Utils.isRelativeUri(s),a=Utils.isRelativeUri(r);c&&a?(i=s.match(/\/[^\/]*$/),i&&(s=s.slice(0,i.index+1))):t&&a?s="":(i=s.match(/[^#/]+$/),i&&(s=s.slice(0,i.index)));var o=s+r;return o=o.replace(/##/,"#")}function collectReferences(e,r,i,s){if(r=r||[],i=i||[],s=s||[],"object"!=typeof e||null===e)return r;"string"==typeof e.id&&i.push(e.id),"string"==typeof e.$ref&&"undefined"==typeof e.__$refResolved&&r.push({ref:mergeReference(i,e.$ref),key:"$ref",obj:e,path:s.slice(0)}),"string"==typeof e.$schema&&"undefined"==typeof e.__$schemaResolved&&r.push({ref:mergeReference(i,e.$schema),key:"$schema",obj:e,path:s.slice(0)});var c;if(Array.isArray(e))for(c=e.length;c--;)s.push(c.toString()),collectReferences(e[c],r,i,s),s.pop();else{var t=Object.keys(e);for(c=t.length;c--;)0!==t[c].indexOf("__$")&&(s.push(t[c]),collectReferences(e[t[c]],r,i,s),s.pop())}return"string"==typeof e.id&&i.pop(),r}function findId(e,r){for(var i=e.length;i--;)if(e[i].id===r)return e[i];return null}var Report=require("./Report"),SchemaCache=require("./SchemaCache"),Utils=require("./Utils"),compileArrayOfSchemasLoop=function(e,r){for(var i=r.length,s=0;i--;){var c=new Report(e),t=exports.compileSchema.call(this,c,r[i]);t&&s++,e.errors=e.errors.concat(c.errors)}return s},compileArrayOfSchemas=function(e,r){var i,s=0;do{for(var c=e.errors.length;c--;)"UNRESOLVABLE_REFERENCE"===e.errors[c].code&&e.errors.splice(c,1);for(i=s,s=compileArrayOfSchemasLoop.call(this,e,r),c=r.length;c--;){var t=r[c];if(t.__$missingReferences){for(var a=t.__$missingReferences.length;a--;){var o=t.__$missingReferences[a],l=findId(r,o.ref);l&&(o.obj["__"+o.key+"Resolved"]=l,t.__$missingReferences.splice(a,1))}0===t.__$missingReferences.length&&delete t.__$missingReferences}}}while(s!==r.length&&s!==i);return e.isValid()};exports.compileSchema=function(e,r){if(e.commonErrorMessage="SCHEMA_COMPILATION_FAILED","string"==typeof r){var i=SchemaCache.getSchemaByUri.call(this,e,r);if(!i)return e.addError("SCHEMA_NOT_REACHABLE",[r]),!1;r=i}if(Array.isArray(r))return compileArrayOfSchemas.call(this,e,r);if(r.__$compiled&&r.id&&SchemaCache.checkCacheForUri.call(this,r.id)===!1&&(r.__$compiled=void 0),r.__$compiled)return!0;r.id&&SchemaCache.cacheSchemaByUri.call(this,r.id,r);var s=e.isValid();delete r.__$missingReferences;for(var c=collectReferences.call(this,r),t=c.length;t--;){var a=c[t],o=SchemaCache.getSchemaByUri.call(this,e,a.ref,r);if(!o){var l=this.getSchemaReader();if(l){var n=l(a.ref);if(n){n.id=a.ref;var h=new Report(e);exports.compileSchema.call(this,h,n)?o=SchemaCache.getSchemaByUri.call(this,e,a.ref,r):e.errors=e.errors.concat(h.errors)}}}if(!o){var f=Utils.isAbsoluteUri(a.ref),m=!1,p=this.options.ignoreUnresolvableReferences===!0;f&&(m=SchemaCache.checkCacheForUri.call(this,a.ref)),f&&(m||p)||(Array.prototype.push.apply(e.path,a.path),e.addError("UNRESOLVABLE_REFERENCE",[a.ref]),e.path.slice(0,-a.path.length),s&&(r.__$missingReferences=r.__$missingReferences||[],r.__$missingReferences.push(a)))}a.obj["__"+a.key+"Resolved"]=o}var _=e.isValid();return _?r.__$compiled=!0:r.id&&SchemaCache.removeFromCacheByUri.call(this,r.id),_}; -},{"./Report":100,"./SchemaCache":101,"./Utils":104}],103:[function(require,module,exports){ +},{"./Report":101,"./SchemaCache":102,"./Utils":105}],104:[function(require,module,exports){ "use strict";var FormatValidators=require("./FormatValidators"),JsonValidation=require("./JsonValidation"),Report=require("./Report"),Utils=require("./Utils"),SchemaValidators={$ref:function(r,e){"string"!=typeof e.$ref&&r.addError("KEYWORD_TYPE_EXPECTED",["$ref","string"])},$schema:function(r,e){"string"!=typeof e.$schema&&r.addError("KEYWORD_TYPE_EXPECTED",["$schema","string"])},multipleOf:function(r,e){"number"!=typeof e.multipleOf?r.addError("KEYWORD_TYPE_EXPECTED",["multipleOf","number"]):e.multipleOf<=0&&r.addError("KEYWORD_MUST_BE",["multipleOf","strictly greater than 0"])},maximum:function(r,e){"number"!=typeof e.maximum&&r.addError("KEYWORD_TYPE_EXPECTED",["maximum","number"])},exclusiveMaximum:function(r,e){"boolean"!=typeof e.exclusiveMaximum?r.addError("KEYWORD_TYPE_EXPECTED",["exclusiveMaximum","boolean"]):void 0===e.maximum&&r.addError("KEYWORD_DEPENDENCY",["exclusiveMaximum","maximum"])},minimum:function(r,e){"number"!=typeof e.minimum&&r.addError("KEYWORD_TYPE_EXPECTED",["minimum","number"])},exclusiveMinimum:function(r,e){"boolean"!=typeof e.exclusiveMinimum?r.addError("KEYWORD_TYPE_EXPECTED",["exclusiveMinimum","boolean"]):void 0===e.minimum&&r.addError("KEYWORD_DEPENDENCY",["exclusiveMinimum","minimum"])},maxLength:function(r,e){"integer"!==Utils.whatIs(e.maxLength)?r.addError("KEYWORD_TYPE_EXPECTED",["maxLength","integer"]):e.maxLength<0&&r.addError("KEYWORD_MUST_BE",["maxLength","greater than, or equal to 0"])},minLength:function(r,e){"integer"!==Utils.whatIs(e.minLength)?r.addError("KEYWORD_TYPE_EXPECTED",["minLength","integer"]):e.minLength<0&&r.addError("KEYWORD_MUST_BE",["minLength","greater than, or equal to 0"])},pattern:function(r,e){if("string"!=typeof e.pattern)r.addError("KEYWORD_TYPE_EXPECTED",["pattern","string"]);else try{RegExp(e.pattern)}catch(t){r.addError("KEYWORD_PATTERN",["pattern",e.pattern])}},additionalItems:function(r,e){var t=Utils.whatIs(e.additionalItems);"boolean"!==t&&"object"!==t?r.addError("KEYWORD_TYPE_EXPECTED",["additionalItems",["boolean","object"]]):"object"===t&&(r.path.push("additionalItems"),exports.validateSchema.call(this,r,e.additionalItems),r.path.pop())},items:function(r,e){var t=Utils.whatIs(e.items);if("object"===t)r.path.push("items"),exports.validateSchema.call(this,r,e.items),r.path.pop();else if("array"===t)for(var a=e.items.length;a--;)r.path.push("items"),r.path.push(a.toString()),exports.validateSchema.call(this,r,e.items[a]),r.path.pop(),r.path.pop();else r.addError("KEYWORD_TYPE_EXPECTED",["items",["array","object"]]);this.options.forceAdditional===!0&&void 0===e.additionalItems&&Array.isArray(e.items)&&r.addError("KEYWORD_UNDEFINED_STRICT",["additionalItems"]),this.options.assumeAdditional===!0&&void 0===e.additionalItems&&Array.isArray(e.items)&&(e.additionalItems=!1)},maxItems:function(r,e){"number"!=typeof e.maxItems?r.addError("KEYWORD_TYPE_EXPECTED",["maxItems","integer"]):e.maxItems<0&&r.addError("KEYWORD_MUST_BE",["maxItems","greater than, or equal to 0"])},minItems:function(r,e){"integer"!==Utils.whatIs(e.minItems)?r.addError("KEYWORD_TYPE_EXPECTED",["minItems","integer"]):e.minItems<0&&r.addError("KEYWORD_MUST_BE",["minItems","greater than, or equal to 0"])},uniqueItems:function(r,e){"boolean"!=typeof e.uniqueItems&&r.addError("KEYWORD_TYPE_EXPECTED",["uniqueItems","boolean"])},maxProperties:function(r,e){"integer"!==Utils.whatIs(e.maxProperties)?r.addError("KEYWORD_TYPE_EXPECTED",["maxProperties","integer"]):e.maxProperties<0&&r.addError("KEYWORD_MUST_BE",["maxProperties","greater than, or equal to 0"])},minProperties:function(r,e){"integer"!==Utils.whatIs(e.minProperties)?r.addError("KEYWORD_TYPE_EXPECTED",["minProperties","integer"]):e.minProperties<0&&r.addError("KEYWORD_MUST_BE",["minProperties","greater than, or equal to 0"])},required:function(r,e){if("array"!==Utils.whatIs(e.required))r.addError("KEYWORD_TYPE_EXPECTED",["required","array"]);else if(0===e.required.length)r.addError("KEYWORD_MUST_BE",["required","an array with at least one element"]);else{for(var t=e.required.length;t--;)"string"!=typeof e.required[t]&&r.addError("KEYWORD_VALUE_TYPE",["required","string"]);Utils.isUniqueArray(e.required)===!1&&r.addError("KEYWORD_MUST_BE",["required","an array with unique items"])}},additionalProperties:function(r,e){var t=Utils.whatIs(e.additionalProperties);"boolean"!==t&&"object"!==t?r.addError("KEYWORD_TYPE_EXPECTED",["additionalProperties",["boolean","object"]]):"object"===t&&(r.path.push("additionalProperties"),exports.validateSchema.call(this,r,e.additionalProperties),r.path.pop())},properties:function(r,e){if("object"!==Utils.whatIs(e.properties))return void r.addError("KEYWORD_TYPE_EXPECTED",["properties","object"]);for(var t=Object.keys(e.properties),a=t.length;a--;){var i=t[a],o=e.properties[i];r.path.push("properties"),r.path.push(i),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop()}this.options.forceAdditional===!0&&void 0===e.additionalProperties&&r.addError("KEYWORD_UNDEFINED_STRICT",["additionalProperties"]),this.options.assumeAdditional===!0&&void 0===e.additionalProperties&&(e.additionalProperties=!1),this.options.forceProperties===!0&&0===t.length&&r.addError("CUSTOM_MODE_FORCE_PROPERTIES",["properties"])},patternProperties:function(r,e){if("object"!==Utils.whatIs(e.patternProperties))return void r.addError("KEYWORD_TYPE_EXPECTED",["patternProperties","object"]);for(var t=Object.keys(e.patternProperties),a=t.length;a--;){var i=t[a],o=e.patternProperties[i];try{RegExp(i)}catch(n){r.addError("KEYWORD_PATTERN",["patternProperties",i])}r.path.push("patternProperties"),r.path.push(i.toString()),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop()}this.options.forceProperties===!0&&0===t.length&&r.addError("CUSTOM_MODE_FORCE_PROPERTIES",["patternProperties"])},dependencies:function(r,e){if("object"!==Utils.whatIs(e.dependencies))r.addError("KEYWORD_TYPE_EXPECTED",["dependencies","object"]);else for(var t=Object.keys(e.dependencies),a=t.length;a--;){var i=t[a],o=e.dependencies[i],n=Utils.whatIs(o);if("object"===n)r.path.push("dependencies"),r.path.push(i),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop();else if("array"===n){var E=o.length;for(0===E&&r.addError("KEYWORD_MUST_BE",["dependencies","not empty array"]);E--;)"string"!=typeof o[E]&&r.addError("KEYWORD_VALUE_TYPE",["dependensices","string"]);Utils.isUniqueArray(o)===!1&&r.addError("KEYWORD_MUST_BE",["dependencies","an array with unique items"])}else r.addError("KEYWORD_VALUE_TYPE",["dependencies","object or array"])}},"enum":function(r,e){Array.isArray(e["enum"])===!1?r.addError("KEYWORD_TYPE_EXPECTED",["enum","array"]):0===e["enum"].length?r.addError("KEYWORD_MUST_BE",["enum","an array with at least one element"]):Utils.isUniqueArray(e["enum"])===!1&&r.addError("KEYWORD_MUST_BE",["enum","an array with unique elements"])},type:function(r,e){var t=["array","boolean","integer","number","null","object","string"],a=t.join(","),i=Array.isArray(e.type);if(i){for(var o=e.type.length;o--;)-1===t.indexOf(e.type[o])&&r.addError("KEYWORD_TYPE_EXPECTED",["type",a]);Utils.isUniqueArray(e.type)===!1&&r.addError("KEYWORD_MUST_BE",["type","an object with unique properties"])}else"string"==typeof e.type?-1===t.indexOf(e.type)&&r.addError("KEYWORD_TYPE_EXPECTED",["type",a]):r.addError("KEYWORD_TYPE_EXPECTED",["type",["string","array"]]);this.options.noEmptyStrings===!0&&("string"===e.type||i&&-1!==e.type.indexOf("string"))&&void 0===e.minLength&&void 0===e["enum"]&&void 0===e.format&&(e.minLength=1),this.options.noEmptyArrays===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.minItems&&(e.minItems=1),this.options.forceProperties===!0&&("object"===e.type||i&&-1!==e.type.indexOf("object"))&&void 0===e.properties&&void 0===e.patternProperties&&r.addError("KEYWORD_UNDEFINED_STRICT",["properties"]),this.options.forceItems===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.items&&r.addError("KEYWORD_UNDEFINED_STRICT",["items"]),this.options.forceMinItems===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.minItems&&r.addError("KEYWORD_UNDEFINED_STRICT",["minItems"]),this.options.forceMaxItems===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.maxItems&&r.addError("KEYWORD_UNDEFINED_STRICT",["maxItems"]),this.options.forceMinLength===!0&&("string"===e.type||i&&-1!==e.type.indexOf("string"))&&void 0===e.minLength&&void 0===e.format&&void 0===e["enum"]&&void 0===e.pattern&&r.addError("KEYWORD_UNDEFINED_STRICT",["minLength"]),this.options.forceMaxLength===!0&&("string"===e.type||i&&-1!==e.type.indexOf("string"))&&void 0===e.maxLength&&void 0===e.format&&void 0===e["enum"]&&void 0===e.pattern&&r.addError("KEYWORD_UNDEFINED_STRICT",["maxLength"])},allOf:function(r,e){if(Array.isArray(e.allOf)===!1)r.addError("KEYWORD_TYPE_EXPECTED",["allOf","array"]);else if(0===e.allOf.length)r.addError("KEYWORD_MUST_BE",["allOf","an array with at least one element"]);else for(var t=e.allOf.length;t--;)r.path.push("allOf"),r.path.push(t.toString()),exports.validateSchema.call(this,r,e.allOf[t]),r.path.pop(),r.path.pop()},anyOf:function(r,e){if(Array.isArray(e.anyOf)===!1)r.addError("KEYWORD_TYPE_EXPECTED",["anyOf","array"]);else if(0===e.anyOf.length)r.addError("KEYWORD_MUST_BE",["anyOf","an array with at least one element"]);else for(var t=e.anyOf.length;t--;)r.path.push("anyOf"),r.path.push(t.toString()),exports.validateSchema.call(this,r,e.anyOf[t]),r.path.pop(),r.path.pop()},oneOf:function(r,e){if(Array.isArray(e.oneOf)===!1)r.addError("KEYWORD_TYPE_EXPECTED",["oneOf","array"]);else if(0===e.oneOf.length)r.addError("KEYWORD_MUST_BE",["oneOf","an array with at least one element"]);else for(var t=e.oneOf.length;t--;)r.path.push("oneOf"),r.path.push(t.toString()),exports.validateSchema.call(this,r,e.oneOf[t]),r.path.pop(),r.path.pop()},not:function(r,e){"object"!==Utils.whatIs(e.not)?r.addError("KEYWORD_TYPE_EXPECTED",["not","object"]):(r.path.push("not"),exports.validateSchema.call(this,r,e.not),r.path.pop())},definitions:function(r,e){if("object"!==Utils.whatIs(e.definitions))r.addError("KEYWORD_TYPE_EXPECTED",["definitions","object"]);else for(var t=Object.keys(e.definitions),a=t.length;a--;){var i=t[a],o=e.definitions[i];r.path.push("definitions"),r.path.push(i),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop()}},format:function(r,e){"string"!=typeof e.format?r.addError("KEYWORD_TYPE_EXPECTED",["format","string"]):void 0===FormatValidators[e.format]&&r.addError("UNKNOWN_FORMAT",[e.format])},id:function(r,e){"string"!=typeof e.id&&r.addError("KEYWORD_TYPE_EXPECTED",["id","string"])},title:function(r,e){"string"!=typeof e.title&&r.addError("KEYWORD_TYPE_EXPECTED",["title","string"])},description:function(r,e){"string"!=typeof e.description&&r.addError("KEYWORD_TYPE_EXPECTED",["description","string"])},"default":function(){}},validateArrayOfSchemas=function(r,e){for(var t=e.length;t--;)exports.validateSchema.call(this,r,e[t]);return r.isValid()};exports.validateSchema=function(r,e){if(r.commonErrorMessage="SCHEMA_VALIDATION_FAILED",Array.isArray(e))return validateArrayOfSchemas.call(this,r,e);if(e.__$validated)return!0;var t=e.$schema&&e.id!==e.$schema;if(t)if(e.__$schemaResolved&&e.__$schemaResolved!==e){var a=new Report(r),i=JsonValidation.validate.call(this,a,e.__$schemaResolved,e);i===!1&&r.addError("PARENT_SCHEMA_VALIDATION_FAILED",null,a)}else this.options.ignoreUnresolvableReferences!==!0&&r.addError("REF_UNRESOLVED",[e.$schema]);if(this.options.noTypeless===!0){if(void 0!==e.type){var o=[];Array.isArray(e.anyOf)&&(o=o.concat(e.anyOf)),Array.isArray(e.oneOf)&&(o=o.concat(e.oneOf)),Array.isArray(e.allOf)&&(o=o.concat(e.allOf)),o.forEach(function(r){r.type||(r.type=e.type)})}void 0===e["enum"]&&void 0===e.type&&void 0===e.anyOf&&void 0===e.oneOf&&void 0===e.not&&void 0===e.$ref&&r.addError("KEYWORD_UNDEFINED_STRICT",["type"])}for(var n=Object.keys(e),E=n.length;E--;){var s=n[E];0!==s.indexOf("__")&&(void 0!==SchemaValidators[s]?SchemaValidators[s].call(this,r,e):t||this.options.noExtraKeywords===!0&&r.addError("KEYWORD_UNEXPECTED",[s]))}var d=r.isValid();return d&&(e.__$validated=!0),d}; -},{"./FormatValidators":97,"./JsonValidation":98,"./Report":100,"./Utils":104}],104:[function(require,module,exports){ +},{"./FormatValidators":98,"./JsonValidation":99,"./Report":101,"./Utils":105}],105:[function(require,module,exports){ "use strict";exports.isAbsoluteUri=function(r){return/^https?:\/\//.test(r)},exports.isRelativeUri=function(r){return/.+#/.test(r)},exports.whatIs=function(r){var e=typeof r;return"object"===e?null===r?"null":Array.isArray(r)?"array":"object":"number"===e?Number.isFinite(r)?r%1===0?"integer":"number":Number.isNaN(r)?"not-a-number":"unknown-number":e},exports.areEqual=function r(e,t){if(e===t)return!0;var n,u;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(u=e.length,n=0;u>n;n++)if(!r(e[n],t[n]))return!1;return!0}if("object"===exports.whatIs(e)&&"object"===exports.whatIs(t)){var o=Object.keys(e),s=Object.keys(t);if(!r(o,s))return!1;for(u=o.length,n=0;u>n;n++)if(!r(e[o[n]],t[o[n]]))return!1;return!0}return!1},exports.isUniqueArray=function(r,e){var t,n,u=r.length;for(t=0;u>t;t++)for(n=t+1;u>n;n++)if(exports.areEqual(r[t],r[n]))return e&&e.push(t,n),!1;return!0},exports.difference=function(r,e){for(var t=[],n=r.length;n--;)-1===e.indexOf(r[n])&&t.push(r[n]);return t},exports.clone=function(r){if("object"!=typeof r||null===r)return r;var e,t;if(Array.isArray(r))for(e=[],t=r.length;t--;)e[t]=r[t];else{e={};var n=Object.keys(r);for(t=n.length;t--;){var u=n[t];e[u]=r[u]}}return e},exports.cloneDeep=function(r){function e(r){if("object"!=typeof r||null===r)return r;var u,o,s;if(s=t.indexOf(r),-1!==s)return n[s];if(t.push(r),Array.isArray(r))for(u=[],n.push(u),o=r.length;o--;)u[o]=e(r[o]);else{u={},n.push(u);var i=Object.keys(r);for(o=i.length;o--;){var f=i[o];u[f]=e(r[f])}}return u}var t=[],n=[];return e(r)},exports.ucs2decode=function(r){for(var e,t,n=[],u=0,o=r.length;o>u;)e=r.charCodeAt(u++),e>=55296&&56319>=e&&o>u?(t=r.charCodeAt(u++),56320==(64512&t)?n.push(((1023&e)<<10)+(1023&t)+65536):(n.push(e),u--)):n.push(e);return n}; -},{}],105:[function(require,module,exports){ +},{}],106:[function(require,module,exports){ (function (process){ "use strict";function ZSchema(e){if(this.cache={},this.referenceCache=[],this.setRemoteReference("http://json-schema.org/draft-04/schema",Draft4Schema),this.setRemoteReference("http://json-schema.org/draft-04/hyper-schema",Draft4HyperSchema),"object"==typeof e){for(var t=Object.keys(e),r=t.length;r--;){var a=t[r];if(void 0===defaultOptions[a])throw new Error("Unexpected option passed to constructor: "+a)}this.options=e}else this.options=Utils.clone(defaultOptions);this.options.strictMode===!0&&(this.options.forceAdditional=!0,this.options.forceItems=!0,this.options.forceMaxLength=!0,this.options.forceProperties=!0,this.options.noExtraKeywords=!0,this.options.noTypeless=!0,this.options.noEmptyStrings=!0,this.options.noEmptyArrays=!0)}require("./Polyfills");var Report=require("./Report"),FormatValidators=require("./FormatValidators"),JsonValidation=require("./JsonValidation"),SchemaCache=require("./SchemaCache"),SchemaCompilation=require("./SchemaCompilation"),SchemaValidation=require("./SchemaValidation"),Utils=require("./Utils"),Draft4Schema=require("./schemas/schema.json"),Draft4HyperSchema=require("./schemas/hyper-schema.json"),defaultOptions={asyncTimeout:2e3,forceAdditional:!1,assumeAdditional:!1,forceItems:!1,forceMinItems:!1,forceMaxItems:!1,forceMinLength:!1,forceMaxLength:!1,forceProperties:!1,ignoreUnresolvableReferences:!1,noExtraKeywords:!1,noTypeless:!1,noEmptyStrings:!1,noEmptyArrays:!1,strictUris:!1,strictMode:!1,reportPathAsArray:!1,breakOnFirstError:!0};ZSchema.prototype.compileSchema=function(e){var t=new Report(this.options);return e=SchemaCache.getSchema.call(this,t,e),SchemaCompilation.compileSchema.call(this,t,e),this.lastReport=t,t.isValid()},ZSchema.prototype.validateSchema=function(e){if(Array.isArray(e)&&0===e.length)throw new Error(".validateSchema was called with an empty array");var t=new Report(this.options);e=SchemaCache.getSchema.call(this,t,e);var r=SchemaCompilation.compileSchema.call(this,t,e);return r&&SchemaValidation.validateSchema.call(this,t,e),this.lastReport=t,t.isValid()},ZSchema.prototype.validate=function(e,t,r){var a=Utils.whatIs(t);if("string"!==a&&"object"!==a){var o=new Error("Invalid .validate call - schema must be an string or object but "+a+" was passed!");if(r)return void process.nextTick(function(){r(o,!1)});throw o}var s=!1,i=new Report(this.options);t=SchemaCache.getSchema.call(this,i,t);var n=!1;s||(n=SchemaCompilation.compileSchema.call(this,i,t)),n||(this.lastReport=i,s=!0);var c=!1;if(s||(c=SchemaValidation.validateSchema.call(this,i,t)),c||(this.lastReport=i,s=!0),s||JsonValidation.validate.call(this,i,t,e),r)return void i.processAsyncTasks(this.options.asyncTimeout,r);if(i.asyncTasks.length>0)throw new Error("This validation has async tasks and cannot be done in sync mode, please provide callback argument.");return this.lastReport=i,i.isValid()},ZSchema.prototype.getLastError=function(){if(0===this.lastReport.errors.length)return null;var e=new Error;return e.name="z-schema validation error",e.message=this.lastReport.commonErrorMessage,e.details=this.lastReport.errors,e},ZSchema.prototype.getLastErrors=function(){return this.lastReport.errors.length>0?this.lastReport.errors:void 0},ZSchema.prototype.getMissingReferences=function(){for(var e=[],t=this.lastReport.errors.length;t--;){var r=this.lastReport.errors[t];if("UNRESOLVABLE_REFERENCE"===r.code){var a=r.params[0];-1===e.indexOf(a)&&e.push(a)}}return e},ZSchema.prototype.getMissingRemoteReferences=function(){for(var e=this.getMissingReferences(),t=[],r=e.length;r--;){var a=SchemaCache.getRemotePath(e[r]);a&&-1===t.indexOf(a)&&t.push(a)}return t},ZSchema.prototype.setRemoteReference=function(e,t){"string"==typeof t&&(t=JSON.parse(t)),SchemaCache.cacheSchemaByUri.call(this,e,t)},ZSchema.prototype.getResolvedSchema=function(e){var t=new Report(this.options);e=SchemaCache.getSchema.call(this,t,e),e=Utils.cloneDeep(e);var r=[],a=function(e){var t,o=Utils.whatIs(e);if(("object"===o||"array"===o)&&!e.___$visited){if(e.___$visited=!0,r.push(e),e.$ref&&e.__$refResolved){var s=e.__$refResolved,i=e;delete e.$ref,delete e.__$refResolved;for(t in s)s.hasOwnProperty(t)&&(i[t]=s[t])}for(t in e)e.hasOwnProperty(t)&&(0===t.indexOf("__$")?delete e[t]:a(e[t]))}};if(a(e),r.forEach(function(e){delete e.___$visited}),this.lastReport=t,t.isValid())return e;throw this.getLastError()},ZSchema.prototype.setSchemaReader=function(e){return ZSchema.setSchemaReader(e)},ZSchema.prototype.getSchemaReader=function(){return ZSchema.schemaReader},ZSchema.setSchemaReader=function(e){ZSchema.schemaReader=e},ZSchema.registerFormat=function(e,t){FormatValidators[e]=t},ZSchema.getDefaultOptions=function(){return Utils.cloneDeep(defaultOptions)},module.exports=ZSchema; }).call(this,require('_process')) -},{"./FormatValidators":97,"./JsonValidation":98,"./Polyfills":99,"./Report":100,"./SchemaCache":101,"./SchemaCompilation":102,"./SchemaValidation":103,"./Utils":104,"./schemas/hyper-schema.json":106,"./schemas/schema.json":107,"_process":14}],106:[function(require,module,exports){ +},{"./FormatValidators":98,"./JsonValidation":99,"./Polyfills":100,"./Report":101,"./SchemaCache":102,"./SchemaCompilation":103,"./SchemaValidation":104,"./Utils":105,"./schemas/hyper-schema.json":107,"./schemas/schema.json":108,"_process":15}],107:[function(require,module,exports){ module.exports={ "$schema": "http://json-schema.org/draft-04/hyper-schema#", "id": "http://json-schema.org/draft-04/hyper-schema#", @@ -2129,7 +2132,7 @@ module.exports={ } -},{}],107:[function(require,module,exports){ +},{}],108:[function(require,module,exports){ arguments[4][3][0].apply(exports,arguments) },{"dup":3}]},{},[1])(1) }); \ No newline at end of file diff --git a/browser/swagger-core-api-standalone-min.js b/browser/swagger-core-api-standalone-min.js index 0831b45..bf0234d 100644 --- a/browser/swagger-core-api-standalone-min.js +++ b/browser/swagger-core-api-standalone-min.js @@ -1,9 +1,9 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SwaggerApi = f()}})(function(){var define,module,exports;return (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;o0&&(e.errors=e.errors.concat(i.errors)),i.warnings.length>0&&(e.warnings=e.warnings.concat(i.warnings))}var e=this;return this.errors=[],this.warnings=[],t(this.plugin.getJSONSchemaValidator()),0===this.errors.length&&(_.forEach(this.plugin.getSemanticValidators(),t),_.forEach(this.customValidators,t)),0===this.errors.length},module.exports={Operation:Operation,Parameter:Parameter,SwaggerApi:SwaggerApi}; -},{"debug":16,"lodash-compat":137}],5:[function(require,module,exports){ +},{"debug":17,"lodash-compat":138}],5:[function(require,module,exports){ "use strict";var _=require("lodash-compat"),Base64=require("js-base64").Base64,stringMocker=require("json-schema-faker/lib/types/string");module.exports["byte"]=function(e,r){var s,t=_.cloneDeep(r);return delete t.format,s=stringMocker(t),Base64.encode(s)},module.exports.password=function(e,r){return stringMocker(r)}; -},{"js-base64":19,"json-schema-faker/lib/types/string":64,"lodash-compat":137}],6:[function(require,module,exports){ +},{"js-base64":20,"json-schema-faker/lib/types/string":65,"lodash-compat":138}],6:[function(require,module,exports){ "use strict";var _=require("lodash-compat");module.exports.int32=module.exports.int64=function(r){var t,e=!0;if(!_.isNumber(r))try{t=parseInt(r,10)}catch(o){e=!1}return _.isNumber(t)&&(e=t%1===0),e},module.exports["double"]=module.exports["float"]=function(r){var t=!0;if(!_.isNumber(r))try{parseFloat(r)}catch(e){t=!1}return t},module.exports["byte"]=function(r){return _.isString(r)},module.exports.password=function(r){return _.isString(r)}; -},{"lodash-compat":137}],7:[function(require,module,exports){ -"use strict";function getParameterSchema(e){var t;return _.isUndefined(e.schema)?(t={},_.each(parameterSchemaProperties,function(r){_.isUndefined(e[r])||(t[r]=e[r])})):t=e.schema,t}var _=require("lodash-compat"),formatGenerators=require("./format-generators"),validators=require("./validators"),helpers=require("../../helpers"),JsonRefs=require("json-refs"),types=require("../../types"),docsUrl="https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md",mocker=helpers.createJSONSchemaMocker({formatGenerators:formatGenerators}),parameterSchemaProperties=["default","description","enum","exclusiveMaximum","exclusiveMinimum","format","items","maxItems","maxLength","maximum","minItems","minLength","minimum","multipleOf","pattern","type","uniqueItems"],supportedHttpMethods=["get","put","post","delete","options","head","patch"],version="2.0";module.exports.documentation=docsUrl,module.exports.supportedHttpMethods=supportedHttpMethods,module.exports.version=version,module.exports.canProcess=function(e){return e.swagger===version},module.exports.createSwaggerApi=function(e,t){return new Promise(function(r,o){JsonRefs.resolveRefs(e,t.loaderOptions||{},function(a,n,s){var i;a?o(a):(i=new types.SwaggerApi(module.exports,e,n,s,t),r(i))})})},module.exports.getJSONSchemaValidator=function(){return validators.jsonSchemaValidator},module.exports.getOperations=function(e){var t=[];return _.forEach(e.resolved.paths,function(r,o){var a=["paths",o],n=_.reduce(r.parameters||{},function(e,t,r){return e[t.name+":"+t["in"]]={path:a.concat(["parameters",r.toString()]),definition:t},e},{});_.forEach(r,function(r,s){if(-1!==_.indexOf(supportedHttpMethods,s)){var i=_.cloneDeep(r),p={},m=a.concat(s);_.forEach(n,function(e,t){p[t]=e}),_.forEach(r.parameters,function(e,t){p[e.name+":"+e["in"]]={path:m.concat(["parameters",t.toString()]),definition:e}}),i.parameters=_.map(_.values(p),function(e){return e.definition.$$$ptr$$$=JsonRefs.pathToPointer(e.path),e.definition}),_.isUndefined(i.security)&&(i.security=e.resolved.security),t.push(new types.Operation(e,o,s,JsonRefs.pathToPointer(m),i))}})}),t},module.exports.getOperationParameters=function(e){return _.map(e.parameters,function(t){var r=t.$$$ptr$$$;return delete t.$$$ptr$$$,new types.Parameter(e,r,t,getParameterSchema(t))})},module.exports.getSample=function(e){return mocker(e)},module.exports.getSemanticValidators=function(){return validators.semanticValidators}; +},{"lodash-compat":138}],7:[function(require,module,exports){ +"use strict";module.exports.supportedHttpMethods=["get","put","post","delete","options","head","patch"]; -},{"../../helpers":2,"../../types":4,"./format-generators":5,"./validators":9,"json-refs":51,"lodash-compat":137}],8:[function(require,module,exports){ +},{}],8:[function(require,module,exports){ +"use strict";function getParameterSchema(e){var r;return _.isUndefined(e.schema)?(r={},_.each(parameterSchemaProperties,function(t){_.isUndefined(e[t])||(r[t]=e[t])})):r=e.schema,r}var _=require("lodash-compat"),JsonRefs=require("json-refs"),formatGenerators=require("./format-generators"),helpers=require("../../helpers"),types=require("../../types"),validators=require("./validators"),vHelpers=require("./helpers"),docsUrl="https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md",mocker=helpers.createJSONSchemaMocker({formatGenerators:formatGenerators}),parameterSchemaProperties=["default","description","enum","exclusiveMaximum","exclusiveMinimum","format","items","maxItems","maxLength","maximum","minItems","minLength","minimum","multipleOf","pattern","type","uniqueItems"],version="2.0";module.exports.documentation=docsUrl,module.exports.supportedHttpMethods=vHelpers.supportedHttpMethods,module.exports.version=version,module.exports.canProcess=function(e){return e.swagger===version},module.exports.createSwaggerApi=function(e,r){return new Promise(function(t,o){JsonRefs.resolveRefs(e,r.loaderOptions||{},function(n,a,s){var i;n?o(n):(i=new types.SwaggerApi(module.exports,e,a,s,r),t(i))})})},module.exports.getJSONSchemaValidator=function(){return validators.jsonSchemaValidator},module.exports.getOperations=function(e){var r=[];return _.forEach(e.resolved.paths,function(t,o){var n=["paths",o],a=_.reduce(t.parameters||{},function(e,r,t){return e[r.name+":"+r["in"]]={path:n.concat(["parameters",t.toString()]),definition:r},e},{});_.forEach(t,function(t,s){if(-1!==_.indexOf(vHelpers.supportedHttpMethods,s)){var i=_.cloneDeep(t),m={},p=n.concat(s);_.forEach(a,function(e,r){m[r]=e}),_.forEach(t.parameters,function(e,r){m[e.name+":"+e["in"]]={path:p.concat(["parameters",r.toString()]),definition:e}}),i.parameters=_.map(_.values(m),function(e){return e.definition.$$$ptr$$$=JsonRefs.pathToPointer(e.path),e.definition}),_.isUndefined(i.security)&&(i.security=e.resolved.security),r.push(new types.Operation(e,o,s,JsonRefs.pathToPointer(p),i))}})}),r},module.exports.getOperationParameters=function(e){return _.map(e.parameters,function(r){var t=r.$$$ptr$$$;return delete r.$$$ptr$$$,new types.Parameter(e,t,r,getParameterSchema(r))})},module.exports.getSample=function(e){return mocker(e)},module.exports.getSemanticValidators=function(){return validators.semanticValidators}; + +},{"../../helpers":2,"../../types":4,"./format-generators":5,"./helpers":7,"./validators":10,"json-refs":52,"lodash-compat":138}],9:[function(require,module,exports){ module.exports={ "title": "A JSON Schema for Swagger 2.0 API.", "id": "http://swagger.io/v2/schema.json#", @@ -1663,680 +1666,680 @@ module.exports={ } } } -},{}],9:[function(require,module,exports){ -"use strict";function validateStructure(a){return helpers.validateAgainstSchema(helpers.createJSONValidator({formatValidators:customFormatValidators}),swaggerSchema,a.resolved)}var customFormatValidators=require("./format-validators"),helpers=require("../../helpers"),swaggerSchema=require("./schema.json");module.exports={jsonSchemaValidator:validateStructure,semanticValidators:[]}; +},{}],10:[function(require,module,exports){ +"use strict";function walkSchema(e,a,r,t){function s(a){return _.indexOf(e,JsonRefs.pathToPointer(a))>-1}function o(a,r){s(r)||(_.forEach(a,function(a,s){_.isNumber(s)&&(s=s.toString()),walkSchema(e,a,r.concat(s),t)}),t(a,r))}var n=a.type||"object";s(r)||(_.isUndefined(a.schema)?"array"!==n||_.isUndefined(a.items)?"object"===n&&(_.isUndefined(a.additionalProperties)||walkSchema(e,a.additionalProperties,r.concat("additionalProperties"),t),_.forEach(["allOf","properties"],function(e){_.isUndefined(a[e])||o(a[e],r.concat(e))})):o(a.items,r.concat("items")):walkSchema(e,a.schema,r.concat("schema"),t),t(a,r))}function validateStructure(e){return helpers.validateAgainstSchema(helpers.createJSONValidator({formatValidators:customFormatValidators}),swaggerSchema,e.resolved)}function validateArrayItems(e){function a(e,a){"array"===e.type&&_.isUndefined(e.items)&&o.errors.push({code:"OBJECT_MISSING_REQUIRED_PROPERTY",message:"Missing required property: items",path:a})}function r(e,r){_.forEach(e,function(e,t){_.isNumber(t)&&(t=t.toString()),walkSchema(s,e,r.concat(t),a)})}function t(e,r){_.forEach(e,function(e,t){var o=r.concat(t);_.forEach(e.headers,function(e,r){walkSchema(s,e,o.concat(["headers",r]),a)}),_.isUndefined(e.schema)||walkSchema(s,e.schema,o.concat("schema"),a)})}var s=_.reduce(e.references,function(e,a,r){var t=JsonRefs.pathFromPointer(r);return t.pop(),e.push(JsonRefs.pathToPointer(t)),e},[]),o={errors:[],warnings:[]};return _.forEach(e.resolved.definitions,function(e,r){walkSchema(s,e,["definitions",r],a)}),r(e.resolved.parameters,["parameters"]),t(e.resolved.responses,["responses"]),_.forEach(e.resolved.paths,function(e,a){var s=["paths",a];r(e.parameters,s.concat("parameters")),_.forEach(e,function(e,a){var o=s.concat(a);-1!==_.indexOf(vHelpers.supportedHttpMethods,a)&&(r(e.parameters,o.concat("parameters")),t(e.responses,o.concat("responses")))})}),o}var _=require("lodash-compat"),customFormatValidators=require("./format-validators"),helpers=require("../../helpers"),JsonRefs=require("json-refs"),swaggerSchema=require("./schema.json"),vHelpers=require("./helpers");module.exports={jsonSchemaValidator:validateStructure,semanticValidators:[validateArrayItems]}; -},{"../../helpers":2,"./format-validators":6,"./schema.json":8}],10:[function(require,module,exports){ +},{"../../helpers":2,"./format-validators":6,"./helpers":7,"./schema.json":9,"json-refs":52,"lodash-compat":138}],11:[function(require,module,exports){ -},{}],11:[function(require,module,exports){ +},{}],12:[function(require,module,exports){ function Buffer(t){return this instanceof Buffer?(this.length=0,this.parent=void 0,"number"==typeof t?fromNumber(this,t):"string"==typeof t?fromString(this,t,arguments.length>1?arguments[1]:"utf8"):fromObject(this,t)):arguments.length>1?new Buffer(t,arguments[1]):new Buffer(t)}function fromNumber(t,e){if(t=allocate(t,0>e?0:0|checked(e)),!Buffer.TYPED_ARRAY_SUPPORT)for(var r=0;e>r;r++)t[r]=0;return t}function fromString(t,e,r){("string"!=typeof r||""===r)&&(r="utf8");var n=0|byteLength(e,r);return t=allocate(t,n),t.write(e,r),t}function fromObject(t,e){if(Buffer.isBuffer(e))return fromBuffer(t,e);if(isArray(e))return fromArray(t,e);if(null==e)throw new TypeError("must start with number, buffer, array or string");return"undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer?fromTypedArray(t,e):e.length?fromArrayLike(t,e):fromJsonObject(t,e)}function fromBuffer(t,e){var r=0|checked(e.length);return t=allocate(t,r),e.copy(t,0,0,r),t}function fromArray(t,e){var r=0|checked(e.length);t=allocate(t,r);for(var n=0;r>n;n+=1)t[n]=255&e[n];return t}function fromTypedArray(t,e){var r=0|checked(e.length);t=allocate(t,r);for(var n=0;r>n;n+=1)t[n]=255&e[n];return t}function fromArrayLike(t,e){var r=0|checked(e.length);t=allocate(t,r);for(var n=0;r>n;n+=1)t[n]=255&e[n];return t}function fromJsonObject(t,e){var r,n=0;"Buffer"===e.type&&isArray(e.data)&&(r=e.data,n=0|checked(r.length)),t=allocate(t,n);for(var i=0;n>i;i+=1)t[i]=255&r[i];return t}function allocate(t,e){Buffer.TYPED_ARRAY_SUPPORT?t=Buffer._augment(new Uint8Array(e)):(t.length=e,t._isBuffer=!0);var r=0!==e&&e<=Buffer.poolSize>>>1;return r&&(t.parent=rootParent),t}function checked(t){if(t>=kMaxLength)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength.toString(16)+" bytes");return 0|t}function SlowBuffer(t,e){if(!(this instanceof SlowBuffer))return new SlowBuffer(t,e);var r=new Buffer(t,e);return delete r.parent,r}function byteLength(t,e){if("string"!=typeof t&&(t=String(t)),0===t.length)return 0;switch(e||"utf8"){case"ascii":case"binary":case"raw":return t.length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*t.length;case"hex":return t.length>>>1;case"utf8":case"utf-8":return utf8ToBytes(t).length;case"base64":return base64ToBytes(t).length;default:return t.length}}function hexWrite(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n),n>i&&(n=i)):n=i;var f=e.length;if(f%2!==0)throw new Error("Invalid hex string");n>f/2&&(n=f/2);for(var o=0;n>o;o++){var u=parseInt(e.substr(2*o,2),16);if(isNaN(u))throw new Error("Invalid hex string");t[r+o]=u}return o}function utf8Write(t,e,r,n){return blitBuffer(utf8ToBytes(e,t.length-r),t,r,n)}function asciiWrite(t,e,r,n){return blitBuffer(asciiToBytes(e),t,r,n)}function binaryWrite(t,e,r,n){return asciiWrite(t,e,r,n)}function base64Write(t,e,r,n){return blitBuffer(base64ToBytes(e),t,r,n)}function ucs2Write(t,e,r,n){return blitBuffer(utf16leToBytes(e,t.length-r),t,r,n)}function base64Slice(t,e,r){return base64.fromByteArray(0===e&&r===t.length?t:t.slice(e,r))}function utf8Slice(t,e,r){var n="",i="";r=Math.min(t.length,r);for(var f=e;r>f;f++)t[f]<=127?(n+=decodeUtf8Char(i)+String.fromCharCode(t[f]),i=""):i+="%"+t[f].toString(16);return n+decodeUtf8Char(i)}function asciiSlice(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;r>i;i++)n+=String.fromCharCode(127&t[i]);return n}function binarySlice(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;r>i;i++)n+=String.fromCharCode(t[i]);return n}function hexSlice(t,e,r){var n=t.length;(!e||0>e)&&(e=0),(!r||0>r||r>n)&&(r=n);for(var i="",f=e;r>f;f++)i+=toHex(t[f]);return i}function utf16leSlice(t,e,r){for(var n=t.slice(e,r),i="",f=0;ft)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function checkInt(t,e,r,n,i,f){if(!Buffer.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");if(e>i||f>e)throw new RangeError("value is out of bounds");if(r+n>t.length)throw new RangeError("index out of range")}function objectWriteUInt16(t,e,r,n){0>e&&(e=65535+e+1);for(var i=0,f=Math.min(t.length-r,2);f>i;i++)t[r+i]=(e&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function objectWriteUInt32(t,e,r,n){0>e&&(e=4294967295+e+1);for(var i=0,f=Math.min(t.length-r,4);f>i;i++)t[r+i]=e>>>8*(n?i:3-i)&255}function checkIEEE754(t,e,r,n,i,f){if(e>i||f>e)throw new RangeError("value is out of bounds");if(r+n>t.length)throw new RangeError("index out of range");if(0>r)throw new RangeError("index out of range")}function writeFloat(t,e,r,n,i){return i||checkIEEE754(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(t,e,r,n,23,4),r+4}function writeDouble(t,e,r,n,i){return i||checkIEEE754(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(t,e,r,n,52,8),r+8}function base64clean(t){if(t=stringtrim(t).replace(INVALID_BASE64_RE,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function stringtrim(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function toHex(t){return 16>t?"0"+t.toString(16):t.toString(16)}function utf8ToBytes(t,e){e=e||1/0;for(var r,n=t.length,i=null,f=[],o=0;n>o;o++){if(r=t.charCodeAt(o),r>55295&&57344>r){if(!i){if(r>56319){(e-=3)>-1&&f.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&f.push(239,191,189);continue}i=r;continue}if(56320>r){(e-=3)>-1&&f.push(239,191,189),i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&((e-=3)>-1&&f.push(239,191,189),i=null);if(128>r){if((e-=1)<0)break;f.push(r)}else if(2048>r){if((e-=2)<0)break;f.push(r>>6|192,63&r|128)}else if(65536>r){if((e-=3)<0)break;f.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(2097152>r))throw new Error("Invalid code point");if((e-=4)<0)break;f.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return f}function asciiToBytes(t){for(var e=[],r=0;r>8,i=r%256,f.push(i),f.push(n);return f}function base64ToBytes(t){return base64.toByteArray(base64clean(t))}function blitBuffer(t,e,r,n){for(var i=0;n>i&&!(i+r>=e.length||i>=t.length);i++)e[i+r]=t[i];return i}function decodeUtf8Char(t){try{return decodeURIComponent(t)}catch(e){return String.fromCharCode(65533)}}var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("is-array");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var kMaxLength=1073741823,rootParent={};Buffer.TYPED_ARRAY_SUPPORT=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(r){return!1}}(),Buffer.isBuffer=function(t){return!(null==t||!t._isBuffer)},Buffer.compare=function(t,e){if(!Buffer.isBuffer(t)||!Buffer.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,f=Math.min(r,n);f>i&&t[i]===e[i];)++i;return i!==f&&(r=t[i],n=e[i]),n>r?-1:r>n?1:0},Buffer.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.concat=function(t,e){if(!isArray(t))throw new TypeError("list argument must be an Array of Buffers.");if(0===t.length)return new Buffer(0);if(1===t.length)return t[0];var r;if(void 0===e)for(e=0,r=0;re&&(e=0),r>this.length&&(r=this.length),e>=r)return"";for(;;)switch(t){case"hex":return hexSlice(this,e,r);case"utf8":case"utf-8":return utf8Slice(this,e,r);case"ascii":return asciiSlice(this,e,r);case"binary":return binarySlice(this,e,r);case"base64":return base64Slice(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}},Buffer.prototype.equals=function(t){if(!Buffer.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?!0:0===Buffer.compare(this,t)},Buffer.prototype.inspect=function(){var t="",e=exports.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},Buffer.prototype.compare=function(t){if(!Buffer.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?0:Buffer.compare(this,t)},Buffer.prototype.indexOf=function(t,e){function r(t,e,r){for(var n=-1,i=0;r+i2147483647?e=2147483647:-2147483648>e&&(e=-2147483648),e>>=0,0===this.length)return-1;if(e>=this.length)return-1;if(0>e&&(e=Math.max(this.length+e,0)),"string"==typeof t)return 0===t.length?-1:String.prototype.indexOf.call(this,t,e);if(Buffer.isBuffer(t))return r(this,t,e);if("number"==typeof t)return Buffer.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,t,e):r(this,[t],e);throw new TypeError("val must be string, number or Buffer")},Buffer.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},Buffer.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},Buffer.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else if(isFinite(e))e=0|e,isFinite(r)?(r=0|r,void 0===n&&(n="utf8")):(n=r,r=void 0);else{var i=n;n=e,e=0|r,r=i}var f=this.length-e;if((void 0===r||r>f)&&(r=f),t.length>0&&(0>r||0>e)||e>this.length)throw new RangeError("attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return hexWrite(this,t,e,r);case"utf8":case"utf-8":return utf8Write(this,t,e,r);case"ascii":return asciiWrite(this,t,e,r);case"binary":return binaryWrite(this,t,e,r);case"base64":return base64Write(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Buffer.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,0>t?(t+=r,0>t&&(t=0)):t>r&&(t=r),0>e?(e+=r,0>e&&(e=0)):e>r&&(e=r),t>e&&(e=t);var n;if(Buffer.TYPED_ARRAY_SUPPORT)n=Buffer._augment(this.subarray(t,e));else{var i=e-t;n=new Buffer(i,void 0);for(var f=0;i>f;f++)n[f]=this[f+t]}return n.length&&(n.parent=this.parent||this),n},Buffer.prototype.readUIntLE=function(t,e,r){t=0|t,e=0|e,r||checkOffset(t,e,this.length);for(var n=this[t],i=1,f=0;++f0&&(i*=256);)n+=this[t+--e]*i;return n},Buffer.prototype.readUInt8=function(t,e){return e||checkOffset(t,1,this.length),this[t]},Buffer.prototype.readUInt16LE=function(t,e){return e||checkOffset(t,2,this.length),this[t]|this[t+1]<<8},Buffer.prototype.readUInt16BE=function(t,e){return e||checkOffset(t,2,this.length),this[t]<<8|this[t+1]},Buffer.prototype.readUInt32LE=function(t,e){return e||checkOffset(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Buffer.prototype.readUInt32BE=function(t,e){return e||checkOffset(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Buffer.prototype.readIntLE=function(t,e,r){t=0|t,e=0|e,r||checkOffset(t,e,this.length);for(var n=this[t],i=1,f=0;++f=i&&(n-=Math.pow(2,8*e)),n},Buffer.prototype.readIntBE=function(t,e,r){t=0|t,e=0|e,r||checkOffset(t,e,this.length);for(var n=e,i=1,f=this[t+--n];n>0&&(i*=256);)f+=this[t+--n]*i;return i*=128,f>=i&&(f-=Math.pow(2,8*e)),f},Buffer.prototype.readInt8=function(t,e){return e||checkOffset(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Buffer.prototype.readInt16LE=function(t,e){e||checkOffset(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt16BE=function(t,e){e||checkOffset(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt32LE=function(t,e){return e||checkOffset(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Buffer.prototype.readInt32BE=function(t,e){return e||checkOffset(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Buffer.prototype.readFloatLE=function(t,e){return e||checkOffset(t,4,this.length),ieee754.read(this,t,!0,23,4)},Buffer.prototype.readFloatBE=function(t,e){return e||checkOffset(t,4,this.length),ieee754.read(this,t,!1,23,4)},Buffer.prototype.readDoubleLE=function(t,e){return e||checkOffset(t,8,this.length),ieee754.read(this,t,!0,52,8)},Buffer.prototype.readDoubleBE=function(t,e){return e||checkOffset(t,8,this.length),ieee754.read(this,t,!1,52,8)},Buffer.prototype.writeUIntLE=function(t,e,r,n){t=+t,e=0|e,r=0|r,n||checkInt(this,t,e,r,Math.pow(2,8*r),0);var i=1,f=0;for(this[e]=255&t;++f=0&&(f*=256);)this[e+i]=t/f&255;return e+r},Buffer.prototype.writeUInt8=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=t,e+1},Buffer.prototype.writeUInt16LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):objectWriteUInt16(this,t,e,!0),e+2},Buffer.prototype.writeUInt16BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):objectWriteUInt16(this,t,e,!1),e+2},Buffer.prototype.writeUInt32LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=t):objectWriteUInt32(this,t,e,!0),e+4},Buffer.prototype.writeUInt32BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):objectWriteUInt32(this,t,e,!1),e+4},Buffer.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e=0|e,!n){var i=Math.pow(2,8*r-1);checkInt(this,t,e,r,i-1,-i)}var f=0,o=1,u=0>t?1:0;for(this[e]=255&t;++f>0)-u&255;return e+r},Buffer.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e=0|e,!n){var i=Math.pow(2,8*r-1);checkInt(this,t,e,r,i-1,-i)}var f=r-1,o=1,u=0>t?1:0;for(this[e+f]=255&t;--f>=0&&(o*=256);)this[e+f]=(t/o>>0)-u&255;return e+r},Buffer.prototype.writeInt8=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),0>t&&(t=255+t+1),this[e]=t,e+1},Buffer.prototype.writeInt16LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):objectWriteUInt16(this,t,e,!0),e+2},Buffer.prototype.writeInt16BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):objectWriteUInt16(this,t,e,!1),e+2},Buffer.prototype.writeInt32LE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):objectWriteUInt32(this,t,e,!0),e+4},Buffer.prototype.writeInt32BE=function(t,e,r){return t=+t,e=0|e,r||checkInt(this,t,e,4,2147483647,-2147483648),0>t&&(t=4294967295+t+1),Buffer.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):objectWriteUInt32(this,t,e,!1),e+4},Buffer.prototype.writeFloatLE=function(t,e,r){return writeFloat(this,t,e,!0,r)},Buffer.prototype.writeFloatBE=function(t,e,r){return writeFloat(this,t,e,!1,r)},Buffer.prototype.writeDoubleLE=function(t,e,r){return writeDouble(this,t,e,!0,r)},Buffer.prototype.writeDoubleBE=function(t,e,r){return writeDouble(this,t,e,!1,r)},Buffer.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&r>n&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(0>e)throw new RangeError("targetStart out of bounds");if(0>r||r>=this.length)throw new RangeError("sourceStart out of bounds");if(0>n)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-ei||!Buffer.TYPED_ARRAY_SUPPORT)for(var f=0;i>f;f++)t[f+e]=this[f+r];else t._set(this.subarray(r,r+i),e);return i},Buffer.prototype.fill=function(t,e,r){if(t||(t=0),e||(e=0),r||(r=this.length),e>r)throw new RangeError("end < start");if(r!==e&&0!==this.length){if(0>e||e>=this.length)throw new RangeError("start out of bounds");if(0>r||r>this.length)throw new RangeError("end out of bounds");var n;if("number"==typeof t)for(n=e;r>n;n++)this[n]=t;else{var i=utf8ToBytes(t.toString()),f=i.length;for(n=e;r>n;n++)this[n]=i[n%f]}return this}},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(Buffer.TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var t=new Uint8Array(this.length),e=0,r=t.length;r>e;e+=1)t[e]=this[e];return t.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(t){return t.constructor=Buffer,t._isBuffer=!0,t._set=t.set,t.get=BP.get,t.set=BP.set,t.write=BP.write,t.toString=BP.toString,t.toLocaleString=BP.toString,t.toJSON=BP.toJSON,t.equals=BP.equals,t.compare=BP.compare,t.indexOf=BP.indexOf,t.copy=BP.copy,t.slice=BP.slice,t.readUIntLE=BP.readUIntLE,t.readUIntBE=BP.readUIntBE,t.readUInt8=BP.readUInt8,t.readUInt16LE=BP.readUInt16LE,t.readUInt16BE=BP.readUInt16BE,t.readUInt32LE=BP.readUInt32LE,t.readUInt32BE=BP.readUInt32BE,t.readIntLE=BP.readIntLE,t.readIntBE=BP.readIntBE,t.readInt8=BP.readInt8,t.readInt16LE=BP.readInt16LE,t.readInt16BE=BP.readInt16BE,t.readInt32LE=BP.readInt32LE,t.readInt32BE=BP.readInt32BE,t.readFloatLE=BP.readFloatLE,t.readFloatBE=BP.readFloatBE,t.readDoubleLE=BP.readDoubleLE,t.readDoubleBE=BP.readDoubleBE,t.writeUInt8=BP.writeUInt8,t.writeUIntLE=BP.writeUIntLE,t.writeUIntBE=BP.writeUIntBE,t.writeUInt16LE=BP.writeUInt16LE,t.writeUInt16BE=BP.writeUInt16BE,t.writeUInt32LE=BP.writeUInt32LE,t.writeUInt32BE=BP.writeUInt32BE,t.writeIntLE=BP.writeIntLE,t.writeIntBE=BP.writeIntBE,t.writeInt8=BP.writeInt8,t.writeInt16LE=BP.writeInt16LE,t.writeInt16BE=BP.writeInt16BE,t.writeInt32LE=BP.writeInt32LE,t.writeInt32BE=BP.writeInt32BE,t.writeFloatLE=BP.writeFloatLE,t.writeFloatBE=BP.writeFloatBE,t.writeDoubleLE=BP.writeDoubleLE,t.writeDoubleBE=BP.writeDoubleBE,t.fill=BP.fill,t.inspect=BP.inspect,t.toArrayBuffer=BP.toArrayBuffer,t};var INVALID_BASE64_RE=/[^+\/0-9A-z\-]/g; -},{"base64-js":12,"ieee754":13,"is-array":14}],12:[function(require,module,exports){ +},{"base64-js":13,"ieee754":14,"is-array":15}],13:[function(require,module,exports){ var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(t){"use strict";function r(t){var r=t.charCodeAt(0);return r===h||r===u?62:r===c||r===f?63:o>r?-1:o+10>r?r-o+26+26:i+26>r?r-i:A+26>r?r-A+26:void 0}function e(t){function e(t){i[f++]=t}var n,h,c,o,A,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var u=t.length;A="="===t.charAt(u-2)?2:"="===t.charAt(u-1)?1:0,i=new a(3*t.length/4-A),c=A>0?t.length-4:t.length;var f=0;for(n=0,h=0;c>n;n+=4,h+=3)o=r(t.charAt(n))<<18|r(t.charAt(n+1))<<12|r(t.charAt(n+2))<<6|r(t.charAt(n+3)),e((16711680&o)>>16),e((65280&o)>>8),e(255&o);return 2===A?(o=r(t.charAt(n))<<2|r(t.charAt(n+1))>>4,e(255&o)):1===A&&(o=r(t.charAt(n))<<10|r(t.charAt(n+1))<<4|r(t.charAt(n+2))>>2,e(o>>8&255),e(255&o)),i}function n(t){function r(t){return lookup.charAt(t)}function e(t){return r(t>>18&63)+r(t>>12&63)+r(t>>6&63)+r(63&t)}var n,a,h,c=t.length%3,o="";for(n=0,h=t.length-c;h>n;n+=3)a=(t[n]<<16)+(t[n+1]<<8)+t[n+2],o+=e(a);switch(c){case 1:a=t[t.length-1],o+=r(a>>2),o+=r(a<<4&63),o+="==";break;case 2:a=(t[t.length-2]<<8)+t[t.length-1],o+=r(a>>10),o+=r(a>>4&63),o+=r(a<<2&63),o+="="}return o}var a="undefined"!=typeof Uint8Array?Uint8Array:Array,h="+".charCodeAt(0),c="/".charCodeAt(0),o="0".charCodeAt(0),A="a".charCodeAt(0),i="A".charCodeAt(0),u="-".charCodeAt(0),f="_".charCodeAt(0);t.toByteArray=e,t.fromByteArray=n}("undefined"==typeof exports?this.base64js={}:exports); -},{}],13:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ exports.read=function(a,o,t,r,h){var M,p,w=8*h-r-1,f=(1<>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:(s?-1:1)*(1/0);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=0>o||0===o&&0>1/o?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),o+=p+N>=1?n/f:n*Math.pow(2,1-N),o*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l}; -},{}],14:[function(require,module,exports){ +},{}],15:[function(require,module,exports){ var isArray=Array.isArray,str=Object.prototype.toString;module.exports=isArray||function(r){return!!r&&"[object Array]"==str.call(r)}; -},{}],15:[function(require,module,exports){ +},{}],16:[function(require,module,exports){ function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var e=setTimeout(cleanUpNextTick);draining=!0;for(var n=queue.length;n;){for(currentQueue=queue,queue=[];++queueIndex1)for(var r=1;r=31}function formatArgs(){var o=arguments,e=this.useColors;if(o[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+o[0]+(e?"%c ":" ")+"+"+exports.humanize(this.diff),!e)return o;var r="color: "+this.color;o=[o[0],r,"color: inherit"].concat(Array.prototype.slice.call(o,1));var t=0,s=0;return o[0].replace(/%[a-z%]/g,function(o){"%%"!==o&&(t++,"%c"===o&&(s=t))}),o.splice(s,0,r),o}function log(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function save(o){try{null==o?exports.storage.removeItem("debug"):exports.storage.debug=o}catch(e){}}function load(){var o;try{o=exports.storage.debug}catch(e){}return o}function localstorage(){try{return window.localStorage}catch(o){}}exports=module.exports=require("./debug"),exports.log=log,exports.formatArgs=formatArgs,exports.save=save,exports.load=load,exports.useColors=useColors,exports.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:localstorage(),exports.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],exports.formatters.j=function(o){return JSON.stringify(o)},exports.enable(load()); -},{"./debug":17}],17:[function(require,module,exports){ +},{"./debug":18}],18:[function(require,module,exports){ function selectColor(){return exports.colors[prevColor++%exports.colors.length]}function debug(e){function r(){}function o(){var e=o,r=+new Date,s=r-(prevTime||r);e.diff=s,e.prev=prevTime,e.curr=r,prevTime=r,null==e.useColors&&(e.useColors=exports.useColors()),null==e.color&&e.useColors&&(e.color=selectColor());var t=Array.prototype.slice.call(arguments);t[0]=exports.coerce(t[0]),"string"!=typeof t[0]&&(t=["%o"].concat(t));var n=0;t[0]=t[0].replace(/%([a-z%])/g,function(r,o){if("%%"===r)return r;n++;var s=exports.formatters[o];if("function"==typeof s){var p=t[n];r=s.call(e,p),t.splice(n,1),n--}return r}),"function"==typeof exports.formatArgs&&(t=exports.formatArgs.apply(e,t));var p=o.log||exports.log||console.log.bind(console);p.apply(e,t)}r.enabled=!1,o.enabled=!0;var s=exports.enabled(e)?o:r;return s.namespace=e,s}function enable(e){exports.save(e);for(var r=(e||"").split(/[\s,]+/),o=r.length,s=0;o>s;s++)r[s]&&(e=r[s].replace(/\*/g,".*?"),"-"===e[0]?exports.skips.push(new RegExp("^"+e.substr(1)+"$")):exports.names.push(new RegExp("^"+e+"$")))}function disable(){exports.enable("")}function enabled(e){var r,o;for(r=0,o=exports.skips.length;o>r;r++)if(exports.skips[r].test(e))return!1;for(r=0,o=exports.names.length;o>r;r++)if(exports.names[r].test(e))return!0;return!1}function coerce(e){return e instanceof Error?e.stack||e.message:e}exports=module.exports=debug,exports.coerce=coerce,exports.disable=disable,exports.enable=enable,exports.enabled=enabled,exports.humanize=require("ms"),exports.names=[],exports.skips=[],exports.formatters={};var prevColor=0,prevTime; -},{"ms":18}],18:[function(require,module,exports){ +},{"ms":19}],19:[function(require,module,exports){ function parse(e){if(e=""+e,!(e.length>1e4)){var a=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(a){var r=parseFloat(a[1]),c=(a[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return r*y;case"days":case"day":case"d":return r*d;case"hours":case"hour":case"hrs":case"hr":case"h":return r*h;case"minutes":case"minute":case"mins":case"min":case"m":return r*m;case"seconds":case"second":case"secs":case"sec":case"s":return r*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r}}}}function short(e){return e>=d?Math.round(e/d)+"d":e>=h?Math.round(e/h)+"h":e>=m?Math.round(e/m)+"m":e>=s?Math.round(e/s)+"s":e+"ms"}function long(e){return plural(e,d,"day")||plural(e,h,"hour")||plural(e,m,"minute")||plural(e,s,"second")||e+" ms"}function plural(s,e,a){return e>s?void 0:1.5*e>s?Math.floor(s/e)+" "+a:Math.ceil(s/e)+" "+a+"s"}var s=1e3,m=60*s,h=60*m,d=24*h,y=365.25*d;module.exports=function(s,e){return e=e||{},"string"==typeof s?parse(s):e["long"]?long(s):short(s)}; -},{}],19:[function(require,module,exports){ +},{}],20:[function(require,module,exports){ !function(t){"use strict";var r,e=t.Base64,n="2.1.8";"undefined"!=typeof module&&module.exports&&(r=require("buffer").Buffer);var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=function(t){for(var r={},e=0,n=t.length;n>e;e++)r[t.charAt(e)]=e;return r}(o),u=String.fromCharCode,a=function(t){if(t.length<2){var r=t.charCodeAt(0);return 128>r?t:2048>r?u(192|r>>>6)+u(128|63&r):u(224|r>>>12&15)+u(128|r>>>6&63)+u(128|63&r)}var r=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return u(240|r>>>18&7)+u(128|r>>>12&63)+u(128|r>>>6&63)+u(128|63&r)},i=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,f=function(t){return t.replace(i,a)},h=function(t){var r=[0,2,1][t.length%3],e=t.charCodeAt(0)<<16|(t.length>1?t.charCodeAt(1):0)<<8|(t.length>2?t.charCodeAt(2):0),n=[o.charAt(e>>>18),o.charAt(e>>>12&63),r>=2?"=":o.charAt(e>>>6&63),r>=1?"=":o.charAt(63&e)];return n.join("")},d=t.btoa?function(r){return t.btoa(r)}:function(t){return t.replace(/[\s\S]{1,3}/g,h)},s=r?function(t){return(t.constructor===r.constructor?t:new r(t)).toString("base64")}:function(t){return d(f(t))},g=function(t,r){return r?s(String(t)).replace(/[+\/]/g,function(t){return"+"==t?"-":"_"}).replace(/=/g,""):s(String(t))},A=function(t){return g(t,!0)},l=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"g"),p=function(t){switch(t.length){case 4:var r=(7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3),e=r-65536;return u((e>>>10)+55296)+u((1023&e)+56320);case 3:return u((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return u((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},C=function(t){return t.replace(l,p)},b=function(t){var r=t.length,e=r%4,n=(r>0?c[t.charAt(0)]<<18:0)|(r>1?c[t.charAt(1)]<<12:0)|(r>2?c[t.charAt(2)]<<6:0)|(r>3?c[t.charAt(3)]:0),o=[u(n>>>16),u(n>>>8&255),u(255&n)];return o.length-=[0,0,2,1][e],o.join("")},B=t.atob?function(r){return t.atob(r)}:function(t){return t.replace(/[\s\S]{1,4}/g,b)},S=r?function(t){return(t.constructor===r.constructor?t:new r(t,"base64")).toString()}:function(t){return C(B(t))},v=function(t){return S(String(t).replace(/[-_]/g,function(t){return"-"==t?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))},y=function(){var r=t.Base64;return t.Base64=e,r};if(t.Base64={VERSION:n,atob:B,btoa:d,fromBase64:v,toBase64:g,utob:f,encode:g,encodeURI:A,btou:C,decode:v,noConflict:y},"function"==typeof Object.defineProperty){var j=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}};t.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",j(function(){return v(this)})),Object.defineProperty(String.prototype,"toBase64",j(function(t){return g(this,t)})),Object.defineProperty(String.prototype,"toBase64URI",j(function(){return g(this,!0)}))}}t.Meteor&&(Base64=t.Base64)}(this); -},{"buffer":11}],20:[function(require,module,exports){ +},{"buffer":12}],21:[function(require,module,exports){ "use strict";var yaml=require("./lib/js-yaml.js");module.exports=yaml; -},{"./lib/js-yaml.js":21}],21:[function(require,module,exports){ +},{"./lib/js-yaml.js":22}],22:[function(require,module,exports){ "use strict";function deprecated(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var loader=require("./js-yaml/loader"),dumper=require("./js-yaml/dumper");module.exports.Type=require("./js-yaml/type"),module.exports.Schema=require("./js-yaml/schema"),module.exports.FAILSAFE_SCHEMA=require("./js-yaml/schema/failsafe"),module.exports.JSON_SCHEMA=require("./js-yaml/schema/json"),module.exports.CORE_SCHEMA=require("./js-yaml/schema/core"),module.exports.DEFAULT_SAFE_SCHEMA=require("./js-yaml/schema/default_safe"),module.exports.DEFAULT_FULL_SCHEMA=require("./js-yaml/schema/default_full"),module.exports.load=loader.load,module.exports.loadAll=loader.loadAll,module.exports.safeLoad=loader.safeLoad,module.exports.safeLoadAll=loader.safeLoadAll,module.exports.dump=dumper.dump,module.exports.safeDump=dumper.safeDump,module.exports.YAMLException=require("./js-yaml/exception"),module.exports.MINIMAL_SCHEMA=require("./js-yaml/schema/failsafe"),module.exports.SAFE_SCHEMA=require("./js-yaml/schema/default_safe"),module.exports.DEFAULT_SCHEMA=require("./js-yaml/schema/default_full"),module.exports.scan=deprecated("scan"),module.exports.parse=deprecated("parse"),module.exports.compose=deprecated("compose"),module.exports.addConstructor=deprecated("addConstructor"); -},{"./js-yaml/dumper":23,"./js-yaml/exception":24,"./js-yaml/loader":25,"./js-yaml/schema":27,"./js-yaml/schema/core":28,"./js-yaml/schema/default_full":29,"./js-yaml/schema/default_safe":30,"./js-yaml/schema/failsafe":31,"./js-yaml/schema/json":32,"./js-yaml/type":33}],22:[function(require,module,exports){ +},{"./js-yaml/dumper":24,"./js-yaml/exception":25,"./js-yaml/loader":26,"./js-yaml/schema":28,"./js-yaml/schema/core":29,"./js-yaml/schema/default_full":30,"./js-yaml/schema/default_safe":31,"./js-yaml/schema/failsafe":32,"./js-yaml/schema/json":33,"./js-yaml/type":34}],23:[function(require,module,exports){ "use strict";function isNothing(e){return"undefined"==typeof e||null===e}function isObject(e){return"object"==typeof e&&null!==e}function toArray(e){return Array.isArray(e)?e:isNothing(e)?[]:[e]}function extend(e,t){var r,o,n,i;if(t)for(i=Object.keys(t),r=0,o=i.length;o>r;r+=1)n=i[r],e[n]=t[n];return e}function repeat(e,t){var r,o="";for(r=0;t>r;r+=1)o+=e;return o}function isNegativeZero(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e}module.exports.isNothing=isNothing,module.exports.isObject=isObject,module.exports.toArray=toArray,module.exports.repeat=repeat,module.exports.isNegativeZero=isNegativeZero,module.exports.extend=extend; -},{}],23:[function(require,module,exports){ +},{}],24:[function(require,module,exports){ "use strict";function compileStyleMap(e,t){var n,i,r,E,o,s,c;if(null===t)return{};for(n={},i=Object.keys(t),r=0,E=i.length;E>r;r+=1)o=i[r],s=String(t[o]),"!!"===o.slice(0,2)&&(o="tag:yaml.org,2002:"+o.slice(2)),c=e.compiledTypeMap[o],c&&_hasOwnProperty.call(c.styleAliases,s)&&(s=c.styleAliases[s]),n[o]=s;return n}function encodeHex(e){var t,n,i;if(t=e.toString(16).toUpperCase(),255>=e)n="x",i=2;else if(65535>=e)n="u",i=4;else{if(!(4294967295>=e))throw new YAMLException("code point within a string may not be greater than 0xFFFFFFFF");n="U",i=8}return"\\"+n+common.repeat("0",i-t.length)+t}function State(e){this.schema=e.schema||DEFAULT_FULL_SCHEMA,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=common.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=compileStyleMap(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function indentString(e,t){for(var n,i=common.repeat(" ",t),r=0,E=-1,o="",s=e.length;s>r;)E=e.indexOf("\n",r),-1===E?(n=e.slice(r),r=s):(n=e.slice(r,E+1),r=E+1),n.length&&"\n"!==n&&(o+=i),o+=n;return o}function generateNextLine(e,t){return"\n"+common.repeat(" ",e.indent*t)}function testImplicitResolving(e,t){var n,i,r;for(n=0,i=e.implicitTypes.length;i>n;n+=1)if(r=e.implicitTypes[n],r.resolve(t))return!0;return!1}function StringBuilder(e){this.source=e,this.result="",this.checkpoint=0}function writeScalar(e,t,n){var i,r,E,o,s,c,p,l,u,A,a,C,_,d,S,f,h,R,m,g,N;if(0===t.length)return void(e.dump="''");if(-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(t))return void(e.dump="'"+t+"'");for(i=!0,r=t.length?t.charCodeAt(0):0,E=CHAR_SPACE===r||CHAR_SPACE===t.charCodeAt(t.length-1),(CHAR_MINUS===r||CHAR_QUESTION===r||CHAR_COMMERCIAL_AT===r||CHAR_GRAVE_ACCENT===r)&&(i=!1),E?(i=!1,o=!1,s=!1):(o=!0,s=!0),c=!0,p=new StringBuilder(t),l=!1,u=0,A=0,a=e.indent*n,C=80,40>a?C-=a:C=40,d=0;d0&&(h=t.charCodeAt(d-1),h===CHAR_SPACE&&(s=!1,o=!1)),o&&(R=d-u,u=d,R>A&&(A=R))),_!==CHAR_DOUBLE_QUOTE&&(c=!1),p.takeUpTo(d),p.escapeChar())}if(i&&testImplicitResolving(e,t)&&(i=!1),m="",(o||s)&&(g=0,t.charCodeAt(t.length-1)===CHAR_LINE_FEED&&(g+=1,t.charCodeAt(t.length-2)===CHAR_LINE_FEED&&(g+=1)),0===g?m="-":2===g&&(m="+")),s&&C>A&&(o=!1),l||(s=!1),i)e.dump=t;else if(c)e.dump="'"+t+"'";else if(o)N=fold(t,C),e.dump=">"+m+"\n"+indentString(N,a);else if(s)m||(t=t.replace(/\n$/,"")),e.dump="|"+m+"\n"+indentString(t,a);else{if(!p)throw new Error("Failed to dump scalar value");p.finish(),e.dump='"'+p.result+'"'}}function fold(e,t){var n,i="",r=0,E=e.length,o=/\n+$/.exec(e);for(o&&(E=o.index+1);E>r;)n=e.indexOf("\n",r),n>E||-1===n?(i&&(i+="\n\n"),i+=foldLine(e.slice(r,E),t),r=E):(i&&(i+="\n\n"),i+=foldLine(e.slice(r,n),t),r=n+1);return o&&"\n"!==o[0]&&(i+=o[0]),i}function foldLine(e,t){if(""===e)return e;for(var n,i,r,E=/[^\s] [^\s]/g,o="",s=0,c=0,p=E.exec(e);p;)n=p.index,n-c>t&&(i=s!==c?s:n,o&&(o+="\n"),r=e.slice(c,i),o+=r,c=i+1),s=n+1,p=E.exec(e);return o&&(o+="\n"),o+=c!==s&&e.length-c>t?e.slice(c,s)+"\n"+e.slice(s+1):e.slice(c)}function simpleChar(e){return CHAR_TAB!==e&&CHAR_LINE_FEED!==e&&CHAR_CARRIAGE_RETURN!==e&&CHAR_COMMA!==e&&CHAR_LEFT_SQUARE_BRACKET!==e&&CHAR_RIGHT_SQUARE_BRACKET!==e&&CHAR_LEFT_CURLY_BRACKET!==e&&CHAR_RIGHT_CURLY_BRACKET!==e&&CHAR_SHARP!==e&&CHAR_AMPERSAND!==e&&CHAR_ASTERISK!==e&&CHAR_EXCLAMATION!==e&&CHAR_VERTICAL_LINE!==e&&CHAR_GREATER_THAN!==e&&CHAR_SINGLE_QUOTE!==e&&CHAR_DOUBLE_QUOTE!==e&&CHAR_PERCENT!==e&&CHAR_COLON!==e&&!ESCAPE_SEQUENCES[e]&&!needsHexEscape(e)}function needsHexEscape(e){return!(e>=32&&126>=e||133===e||e>=160&&55295>=e||e>=57344&&65533>=e||e>=65536&&1114111>=e)}function writeFlowSequence(e,t,n){var i,r,E="",o=e.tag;for(i=0,r=n.length;r>i;i+=1)writeNode(e,t,n[i],!1,!1)&&(0!==i&&(E+=", "),E+=e.dump);e.tag=o,e.dump="["+E+"]"}function writeBlockSequence(e,t,n,i){var r,E,o="",s=e.tag;for(r=0,E=n.length;E>r;r+=1)writeNode(e,t+1,n[r],!0,!0)&&(i&&0===r||(o+=generateNextLine(e,t)),o+="- "+e.dump);e.tag=s,e.dump=o||"[]"}function writeFlowMapping(e,t,n){var i,r,E,o,s,c="",p=e.tag,l=Object.keys(n);for(i=0,r=l.length;r>i;i+=1)s="",0!==i&&(s+=", "),E=l[i],o=n[E],writeNode(e,t,E,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+": ",writeNode(e,t,o,!1,!1)&&(s+=e.dump,c+=s));e.tag=p,e.dump="{"+c+"}"}function writeBlockMapping(e,t,n,i){var r,E,o,s,c,p,l="",u=e.tag,A=Object.keys(n);if(e.sortKeys===!0)A.sort();else if("function"==typeof e.sortKeys)A.sort(e.sortKeys);else if(e.sortKeys)throw new YAMLException("sortKeys must be a boolean or a function");for(r=0,E=A.length;E>r;r+=1)p="",i&&0===r||(p+=generateNextLine(e,t)),o=A[r],s=n[o],writeNode(e,t+1,o,!0,!0)&&(c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024,c&&(p+=e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?"?":"? "),p+=e.dump,c&&(p+=generateNextLine(e,t)),writeNode(e,t+1,s,!0,c)&&(p+=e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?":":": ",p+=e.dump,l+=p));e.tag=u,e.dump=l||"{}"}function detectType(e,t,n){var i,r,E,o,s,c;for(r=n?e.explicitTypes:e.implicitTypes,E=0,o=r.length;o>E;E+=1)if(s=r[E],(s.instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(c=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===_toString.call(s.represent))i=s.represent(t,c);else{if(!_hasOwnProperty.call(s.represent,c))throw new YAMLException("!<"+s.tag+'> tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function writeNode(e,t,n,i,r){e.tag=null,e.dump=n,detectType(e,n,!1)||detectType(e,n,!0);var E=_toString.call(e.dump);i&&(i=0>e.flowLevel||e.flowLevel>t),(null!==e.tag&&"?"!==e.tag||2!==e.indent&&t>0)&&(r=!1);var o,s,c="[object Object]"===E||"[object Array]"===E;if(c&&(o=e.duplicates.indexOf(n),s=-1!==o),s&&e.usedDuplicates[o])e.dump="*ref_"+o;else{if(c&&s&&!e.usedDuplicates[o]&&(e.usedDuplicates[o]=!0),"[object Object]"===E)i&&0!==Object.keys(e.dump).length?(writeBlockMapping(e,t,e.dump,r),s&&(e.dump="&ref_"+o+(0===t?"\n":"")+e.dump)):(writeFlowMapping(e,t,e.dump),s&&(e.dump="&ref_"+o+" "+e.dump));else if("[object Array]"===E)i&&0!==e.dump.length?(writeBlockSequence(e,t,e.dump,r),s&&(e.dump="&ref_"+o+(0===t?"\n":"")+e.dump)):(writeFlowSequence(e,t,e.dump),s&&(e.dump="&ref_"+o+" "+e.dump));else{if("[object String]"!==E){if(e.skipInvalid)return!1;throw new YAMLException("unacceptable kind of an object to dump "+E)}"?"!==e.tag&&writeScalar(e,e.dump,t)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function getDuplicateReferences(e,t){var n,i,r=[],E=[];for(inspectNode(e,r,E),n=0,i=E.length;i>n;n+=1)t.duplicates.push(r[E[n]]);t.usedDuplicates=new Array(i)}function inspectNode(e,t,n){var i,r,E;_toString.call(e);if(null!==e&&"object"==typeof e)if(r=t.indexOf(e),-1!==r)-1===n.indexOf(r)&&n.push(r);else if(t.push(e),Array.isArray(e))for(r=0,E=e.length;E>r;r+=1)inspectNode(e[r],t,n);else for(i=Object.keys(e),r=0,E=i.length;E>r;r+=1)inspectNode(e[i[r]],t,n)}function dump(e,t){t=t||{};var n=new State(t);return getDuplicateReferences(e,n),writeNode(n,0,e,!0,!0)?n.dump+"\n":""}function safeDump(e,t){return dump(e,common.extend({schema:DEFAULT_SAFE_SCHEMA},t))}var common=require("./common"),YAMLException=require("./exception"),DEFAULT_FULL_SCHEMA=require("./schema/default_full"),DEFAULT_SAFE_SCHEMA=require("./schema/default_safe"),_toString=Object.prototype.toString,_hasOwnProperty=Object.prototype.hasOwnProperty,CHAR_TAB=9,CHAR_LINE_FEED=10,CHAR_CARRIAGE_RETURN=13,CHAR_SPACE=32,CHAR_EXCLAMATION=33,CHAR_DOUBLE_QUOTE=34,CHAR_SHARP=35,CHAR_PERCENT=37,CHAR_AMPERSAND=38,CHAR_SINGLE_QUOTE=39,CHAR_ASTERISK=42,CHAR_COMMA=44,CHAR_MINUS=45,CHAR_COLON=58,CHAR_GREATER_THAN=62,CHAR_QUESTION=63,CHAR_COMMERCIAL_AT=64,CHAR_LEFT_SQUARE_BRACKET=91,CHAR_RIGHT_SQUARE_BRACKET=93,CHAR_GRAVE_ACCENT=96,CHAR_LEFT_CURLY_BRACKET=123,CHAR_VERTICAL_LINE=124,CHAR_RIGHT_CURLY_BRACKET=125,ESCAPE_SEQUENCES={};ESCAPE_SEQUENCES[0]="\\0",ESCAPE_SEQUENCES[7]="\\a",ESCAPE_SEQUENCES[8]="\\b",ESCAPE_SEQUENCES[9]="\\t",ESCAPE_SEQUENCES[10]="\\n",ESCAPE_SEQUENCES[11]="\\v",ESCAPE_SEQUENCES[12]="\\f",ESCAPE_SEQUENCES[13]="\\r",ESCAPE_SEQUENCES[27]="\\e",ESCAPE_SEQUENCES[34]='\\"',ESCAPE_SEQUENCES[92]="\\\\",ESCAPE_SEQUENCES[133]="\\N",ESCAPE_SEQUENCES[160]="\\_",ESCAPE_SEQUENCES[8232]="\\L",ESCAPE_SEQUENCES[8233]="\\P";var DEPRECATED_BOOLEANS_SYNTAX=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];StringBuilder.prototype.takeUpTo=function(e){var t;if(e checkpoint"),t.position=e,t.checkpoint=this.checkpoint,t;return this.result+=this.source.slice(this.checkpoint,e),this.checkpoint=e,this},StringBuilder.prototype.escapeChar=function(){var e,t;return e=this.source.charCodeAt(this.checkpoint),t=ESCAPE_SEQUENCES[e]||encodeHex(e),this.result+=t,this.checkpoint+=1,this},StringBuilder.prototype.finish=function(){this.source.length>this.checkpoint&&this.takeUpTo(this.source.length)},module.exports.dump=dump,module.exports.safeDump=safeDump; -},{"./common":22,"./exception":24,"./schema/default_full":29,"./schema/default_safe":30}],24:[function(require,module,exports){ +},{"./common":23,"./exception":25,"./schema/default_full":30,"./schema/default_safe":31}],25:[function(require,module,exports){ "use strict";function YAMLException(t,n){this.name="YAMLException",this.reason=t,this.mark=n,this.message=this.toString(!1)}YAMLException.prototype.toString=function(t){var n;return n="JS-YAML: "+(this.reason||"(unknown reason)"),!t&&this.mark&&(n+=" "+this.mark.toString()),n},module.exports=YAMLException; -},{}],25:[function(require,module,exports){ +},{}],26:[function(require,module,exports){ "use strict";function is_EOL(e){return 10===e||13===e}function is_WHITE_SPACE(e){return 9===e||32===e}function is_WS_OR_EOL(e){return 9===e||32===e||10===e||13===e}function is_FLOW_INDICATOR(e){return 44===e||91===e||93===e||123===e||125===e}function fromHexCode(e){var t;return e>=48&&57>=e?e-48:(t=32|e,t>=97&&102>=t?t-97+10:-1)}function escapedHexLen(e){return 120===e?2:117===e?4:85===e?8:0}function fromDecimalCode(e){return e>=48&&57>=e?e-48:-1}function simpleEscapeSequence(e){return 48===e?"\x00":97===e?"":98===e?"\b":116===e?" ":9===e?" ":110===e?"\n":118===e?" ":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function charFromCodepoint(e){return 65535>=e?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function State(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||DEFAULT_FULL_SCHEMA,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(e,t){return new YAMLException(t,new Mark(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,t){throw generateError(e,t)}function throwWarning(e,t){var n=generateError(e,t);if(!e.onWarning)throw n;e.onWarning.call(null,n)}function captureSegment(e,t,n,i){var o,r,a,p;if(n>t){if(p=e.input.slice(t,n),i)for(o=0,r=p.length;r>o;o+=1)a=p.charCodeAt(o),9===a||a>=32&&1114111>=a||throwError(e,"expected valid JSON character");e.result+=p}}function mergeMappings(e,t,n){var i,o,r,a;for(common.isObject(n)||throwError(e,"cannot merge mappings; the provided source object is unacceptable"),i=Object.keys(n),r=0,a=i.length;a>r;r+=1)o=i[r],_hasOwnProperty.call(t,o)||(t[o]=n[o])}function storeMappingPair(e,t,n,i,o){var r,a;if(i=String(i),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(o))for(r=0,a=o.length;a>r;r+=1)mergeMappings(e,t,o[r]);else mergeMappings(e,t,o);else t[i]=o;return t}function readLineBreak(e){var t;t=e.input.charCodeAt(e.position),10===t?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):throwError(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function skipSeparationSpace(e,t,n){for(var i=0,o=e.input.charCodeAt(e.position);0!==o;){for(;is_WHITE_SPACE(o);)o=e.input.charCodeAt(++e.position);if(t&&35===o)do o=e.input.charCodeAt(++e.position);while(10!==o&&13!==o&&0!==o);if(!is_EOL(o))break;for(readLineBreak(e),o=e.input.charCodeAt(e.position),i++,e.lineIndent=0;32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position)}return-1!==n&&0!==i&&e.lineIndent1&&(e.result+=common.repeat("\n",t-1))}function readPlainScalar(e,t,n){var i,o,r,a,p,s,c,l,u,d=e.kind,h=e.result;if(u=e.input.charCodeAt(e.position),is_WS_OR_EOL(u)||is_FLOW_INDICATOR(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(o=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(o)||n&&is_FLOW_INDICATOR(o)))return!1;for(e.kind="scalar",e.result="",r=a=e.position,p=!1;0!==u;){if(58===u){if(o=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(o)||n&&is_FLOW_INDICATOR(o))break}else if(35===u){if(i=e.input.charCodeAt(e.position-1),is_WS_OR_EOL(i))break}else{if(e.position===e.lineStart&&testDocumentSeparator(e)||n&&is_FLOW_INDICATOR(u))break;if(is_EOL(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,skipSeparationSpace(e,!1,-1),e.lineIndent>=t){p=!0,u=e.input.charCodeAt(e.position);continue}e.position=a,e.line=s,e.lineStart=c,e.lineIndent=l;break}}p&&(captureSegment(e,r,a,!1),writeFoldedLines(e,e.line-s),r=a=e.position,p=!1),is_WHITE_SPACE(u)||(a=e.position+1),u=e.input.charCodeAt(++e.position)}return captureSegment(e,r,a,!1),e.result?!0:(e.kind=d,e.result=h,!1)}function readSingleQuotedScalar(e,t){var n,i,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,i=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(captureSegment(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;i=o=e.position,e.position++}else is_EOL(n)?(captureSegment(e,i,o,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),i=o=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,t){var n,i,o,r,a,p;if(p=e.input.charCodeAt(e.position),34!==p)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(p=e.input.charCodeAt(e.position));){if(34===p)return captureSegment(e,n,e.position,!0),e.position++,!0;if(92===p){if(captureSegment(e,n,e.position,!0),p=e.input.charCodeAt(++e.position),is_EOL(p))skipSeparationSpace(e,!1,t);else if(256>p&&simpleEscapeCheck[p])e.result+=simpleEscapeMap[p],e.position++;else if((a=escapedHexLen(p))>0){for(o=a,r=0;o>0;o--)p=e.input.charCodeAt(++e.position),(a=fromHexCode(p))>=0?r=(r<<4)+a:throwError(e,"expected hexadecimal character");e.result+=charFromCodepoint(r),e.position++}else throwError(e,"unknown escape sequence");n=i=e.position}else is_EOL(p)?(captureSegment(e,n,i,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),n=i=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,t){var n,i,o,r,a,p,s,c,l,u,d,h=!0,f=e.tag,_=e.anchor;if(d=e.input.charCodeAt(e.position),91===d)r=93,s=!1,i=[];else{if(123!==d)return!1;r=125,s=!0,i={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),d=e.input.charCodeAt(++e.position);0!==d;){if(skipSeparationSpace(e,!0,t),d=e.input.charCodeAt(e.position),d===r)return e.position++,e.tag=f,e.anchor=_,e.kind=s?"mapping":"sequence",e.result=i,!0;h||throwError(e,"missed comma between flow collection entries"),l=c=u=null,a=p=!1,63===d&&(o=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(o)&&(a=p=!0,e.position++,skipSeparationSpace(e,!0,t))),n=e.line,composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),l=e.tag,c=e.result,skipSeparationSpace(e,!0,t),d=e.input.charCodeAt(e.position),!p&&e.line!==n||58!==d||(a=!0,d=e.input.charCodeAt(++e.position),skipSeparationSpace(e,!0,t),composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),u=e.result),s?storeMappingPair(e,i,l,c,u):i.push(a?storeMappingPair(e,null,l,c,u):c),skipSeparationSpace(e,!0,t),d=e.input.charCodeAt(e.position),44===d?(h=!0,d=e.input.charCodeAt(++e.position)):h=!1}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,t){var n,i,o,r,a=CHOMPING_CLIP,p=!1,s=t,c=0,l=!1;if(r=e.input.charCodeAt(e.position),124===r)i=!1;else{if(62!==r)return!1;i=!0}for(e.kind="scalar",e.result="";0!==r;)if(r=e.input.charCodeAt(++e.position),43===r||45===r)CHOMPING_CLIP===a?a=43===r?CHOMPING_KEEP:CHOMPING_STRIP:throwError(e,"repeat of a chomping mode identifier");else{if(!((o=fromDecimalCode(r))>=0))break;0===o?throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):p?throwError(e,"repeat of an indentation width identifier"):(s=t+o-1,p=!0)}if(is_WHITE_SPACE(r)){do r=e.input.charCodeAt(++e.position);while(is_WHITE_SPACE(r));if(35===r)do r=e.input.charCodeAt(++e.position);while(!is_EOL(r)&&0!==r)}for(;0!==r;){for(readLineBreak(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!p||e.lineIndents&&(s=e.lineIndent),is_EOL(r))c++;else{if(e.lineIndentt)&&0!==o)throwError(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(composeNode(e,t,CONTEXT_BLOCK_OUT,!0,o)&&(h?u=e.result:d=e.result),h||(storeMappingPair(e,c,l,u,d),l=u=d=null),skipSeparationSpace(e,!0,-1),a=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==a)throwError(e,"bad indentation of a mapping entry");else if(e.lineIndentt?h=1:e.lineIndent===t?h=0:e.lineIndentt?h=1:e.lineIndent===t?h=0:e.lineIndents;s+=1)if(l=e.implicitTypes[s],l.resolve(e.result)){e.result=l.construct(e.result),e.tag=l.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else _hasOwnProperty.call(e.typeMap,e.tag)?(l=e.typeMap[e.tag],null!==e.result&&l.kind!==e.kind&&throwError(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):throwWarning(e,"unknown tag !<"+e.tag+">");return null!==e.tag||null!==e.anchor||_}function readDocument(e){var t,n,i,o,r=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(skipSeparationSpace(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(a=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!is_WS_OR_EOL(o);)o=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),i=[],n.length<1&&throwError(e,"directive name must not be less than one character in length");0!==o;){for(;is_WHITE_SPACE(o);)o=e.input.charCodeAt(++e.position);if(35===o){do o=e.input.charCodeAt(++e.position);while(0!==o&&!is_EOL(o));break}if(is_EOL(o))break;for(t=e.position;0!==o&&!is_WS_OR_EOL(o);)o=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==o&&readLineBreak(e),_hasOwnProperty.call(directiveHandlers,n)?directiveHandlers[n](e,n,i):throwWarning(e,'unknown document directive "'+n+'"')}return skipSeparationSpace(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,skipSeparationSpace(e,!0,-1)):a&&throwError(e,"directives end mark is expected"),composeNode(e,e.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(e,!0,-1),e.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(e.input.slice(r,e.position))&&throwWarning(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&testDocumentSeparator(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,skipSeparationSpace(e,!0,-1))):void(e.positioni;i+=1)t(r[i])}function load(e,t){var n=loadDocuments(e,t);if(0===n.length)return void 0;if(1===n.length)return n[0];throw new YAMLException("expected a single document in the stream, but found more")}function safeLoadAll(e,t,n){loadAll(e,t,common.extend({schema:DEFAULT_SAFE_SCHEMA},n))}function safeLoad(e,t){return load(e,common.extend({schema:DEFAULT_SAFE_SCHEMA},t))}for(var common=require("./common"),YAMLException=require("./exception"),Mark=require("./mark"),DEFAULT_SAFE_SCHEMA=require("./schema/default_safe"),DEFAULT_FULL_SCHEMA=require("./schema/default_full"),_hasOwnProperty=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;256>i;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);var directiveHandlers={YAML:function(e,t,n){var i,o,r;null!==e.version&&throwError(e,"duplication of %YAML directive"),1!==n.length&&throwError(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),null===i&&throwError(e,"ill-formed argument of the YAML directive"),o=parseInt(i[1],10),r=parseInt(i[2],10),1!==o&&throwError(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=2>r,1!==r&&2!==r&&throwWarning(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,o;2!==n.length&&throwError(e,"TAG directive accepts exactly two arguments"),i=n[0],o=n[1],PATTERN_TAG_HANDLE.test(i)||throwError(e,"ill-formed tag handle (first argument) of the TAG directive"),_hasOwnProperty.call(e.tagMap,i)&&throwError(e,'there is a previously declared suffix for "'+i+'" tag handle'),PATTERN_TAG_URI.test(o)||throwError(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[i]=o}};module.exports.loadAll=loadAll,module.exports.load=load,module.exports.safeLoadAll=safeLoadAll,module.exports.safeLoad=safeLoad; -},{"./common":22,"./exception":24,"./mark":26,"./schema/default_full":29,"./schema/default_safe":30}],26:[function(require,module,exports){ +},{"./common":23,"./exception":25,"./mark":27,"./schema/default_full":30,"./schema/default_safe":31}],27:[function(require,module,exports){ "use strict";function Mark(t,i,n,e,r){this.name=t,this.buffer=i,this.position=n,this.line=e,this.column=r}var common=require("./common");Mark.prototype.getSnippet=function(t,i){var n,e,r,o,s;if(!this.buffer)return null;for(t=t||4,i=i||75,n="",e=this.position;e>0&&-1==="\x00\r\n…\u2028\u2029".indexOf(this.buffer.charAt(e-1));)if(e-=1,this.position-e>i/2-1){n=" ... ",e+=5;break}for(r="",o=this.position;oi/2-1){r=" ... ",o-=5;break}return s=this.buffer.slice(e,o),common.repeat(" ",t)+n+s+r+"\n"+common.repeat(" ",t+this.position-e+n.length)+"^"},Mark.prototype.toString=function(t){var i,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),t||(i=this.getSnippet(),i&&(n+=":\n"+i)),n},module.exports=Mark; -},{"./common":22}],27:[function(require,module,exports){ +},{"./common":23}],28:[function(require,module,exports){ "use strict";function compileList(i,e,t){var c=[];return i.include.forEach(function(i){t=compileList(i,e,t)}),i[e].forEach(function(i){t.forEach(function(e,t){e.tag===i.tag&&c.push(t)}),t.push(i)}),t.filter(function(i,e){return-1===c.indexOf(e)})}function compileMap(){function i(i){c[i.tag]=i}var e,t,c={};for(e=0,t=arguments.length;t>e;e+=1)arguments[e].forEach(i);return c}function Schema(i){this.include=i.include||[],this.implicit=i.implicit||[],this.explicit=i.explicit||[],this.implicit.forEach(function(i){if(i.loadKind&&"scalar"!==i.loadKind)throw new YAMLException("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=compileMap(this.compiledImplicit,this.compiledExplicit)}var common=require("./common"),YAMLException=require("./exception"),Type=require("./type");Schema.DEFAULT=null,Schema.create=function(){var i,e;switch(arguments.length){case 1:i=Schema.DEFAULT,e=arguments[0];break;case 2:i=arguments[0],e=arguments[1];break;default:throw new YAMLException("Wrong number of arguments for Schema.create function")}if(i=common.toArray(i),e=common.toArray(e),!i.every(function(i){return i instanceof Schema}))throw new YAMLException("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!e.every(function(i){return i instanceof Type}))throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Schema({include:i,explicit:e})},module.exports=Schema; -},{"./common":22,"./exception":24,"./type":33}],28:[function(require,module,exports){ +},{"./common":23,"./exception":25,"./type":34}],29:[function(require,module,exports){ "use strict";var Schema=require("../schema");module.exports=new Schema({include:[require("./json")]}); -},{"../schema":27,"./json":32}],29:[function(require,module,exports){ +},{"../schema":28,"./json":33}],30:[function(require,module,exports){ "use strict";var Schema=require("../schema");module.exports=Schema.DEFAULT=new Schema({include:[require("./default_safe")],explicit:[require("../type/js/undefined"),require("../type/js/regexp"),require("../type/js/function")]}); -},{"../schema":27,"../type/js/function":38,"../type/js/regexp":39,"../type/js/undefined":40,"./default_safe":30}],30:[function(require,module,exports){ +},{"../schema":28,"../type/js/function":39,"../type/js/regexp":40,"../type/js/undefined":41,"./default_safe":31}],31:[function(require,module,exports){ "use strict";var Schema=require("../schema");module.exports=new Schema({include:[require("./core")],implicit:[require("../type/timestamp"),require("../type/merge")],explicit:[require("../type/binary"),require("../type/omap"),require("../type/pairs"),require("../type/set")]}); -},{"../schema":27,"../type/binary":34,"../type/merge":42,"../type/omap":44,"../type/pairs":45,"../type/set":47,"../type/timestamp":49,"./core":28}],31:[function(require,module,exports){ +},{"../schema":28,"../type/binary":35,"../type/merge":43,"../type/omap":45,"../type/pairs":46,"../type/set":48,"../type/timestamp":50,"./core":29}],32:[function(require,module,exports){ "use strict";var Schema=require("../schema");module.exports=new Schema({explicit:[require("../type/str"),require("../type/seq"),require("../type/map")]}); -},{"../schema":27,"../type/map":41,"../type/seq":46,"../type/str":48}],32:[function(require,module,exports){ +},{"../schema":28,"../type/map":42,"../type/seq":47,"../type/str":49}],33:[function(require,module,exports){ "use strict";var Schema=require("../schema");module.exports=new Schema({include:[require("./failsafe")],implicit:[require("../type/null"),require("../type/bool"),require("../type/int"),require("../type/float")]}); -},{"../schema":27,"../type/bool":35,"../type/float":36,"../type/int":37,"../type/null":43,"./failsafe":31}],33:[function(require,module,exports){ +},{"../schema":28,"../type/bool":36,"../type/float":37,"../type/int":38,"../type/null":44,"./failsafe":32}],34:[function(require,module,exports){ "use strict";function compileStyleAliases(e){var t={};return null!==e&&Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[String(e)]=n})}),t}function Type(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(t))throw new YAMLException('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=compileStyleAliases(t.styleAliases||null),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new YAMLException('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var YAMLException=require("./exception"),TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"];module.exports=Type; -},{"./exception":24}],34:[function(require,module,exports){ +},{"./exception":25}],35:[function(require,module,exports){ "use strict";function resolveYamlBinary(r){if(null===r)return!1;var e,n,u=0,t=r.length,f=BASE64_MAP;for(n=0;t>n;n++)if(e=f.indexOf(r.charAt(n)),!(e>64)){if(0>e)return!1;u+=6}return u%8===0}function constructYamlBinary(r){var e,n,u=r.replace(/[\r\n=]/g,""),t=u.length,f=BASE64_MAP,a=0,i=[];for(e=0;t>e;e++)e%4===0&&e&&(i.push(a>>16&255),i.push(a>>8&255),i.push(255&a)),a=a<<6|f.indexOf(u.charAt(e));return n=t%4*6,0===n?(i.push(a>>16&255),i.push(a>>8&255),i.push(255&a)):18===n?(i.push(a>>10&255),i.push(a>>2&255)):12===n&&i.push(a>>4&255),NodeBuffer?new NodeBuffer(i):i}function representYamlBinary(r){var e,n,u="",t=0,f=r.length,a=BASE64_MAP;for(e=0;f>e;e++)e%3===0&&e&&(u+=a[t>>18&63],u+=a[t>>12&63],u+=a[t>>6&63],u+=a[63&t]),t=(t<<8)+r[e];return n=f%3,0===n?(u+=a[t>>18&63],u+=a[t>>12&63],u+=a[t>>6&63],u+=a[63&t]):2===n?(u+=a[t>>10&63],u+=a[t>>4&63],u+=a[t<<2&63],u+=a[64]):1===n&&(u+=a[t>>2&63],u+=a[t<<4&63],u+=a[64],u+=a[64]),u}function isBinary(r){return NodeBuffer&&NodeBuffer.isBuffer(r)}var NodeBuffer=require("buffer").Buffer,Type=require("../type"),BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";module.exports=new Type("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary}); -},{"../type":33,"buffer":10}],35:[function(require,module,exports){ +},{"../type":34,"buffer":11}],36:[function(require,module,exports){ "use strict";function resolveYamlBoolean(e){if(null===e)return!1;var r=e.length;return 4===r&&("true"===e||"True"===e||"TRUE"===e)||5===r&&("false"===e||"False"===e||"FALSE"===e)}function constructYamlBoolean(e){return"true"===e||"True"===e||"TRUE"===e}function isBoolean(e){return"[object Boolean]"===Object.prototype.toString.call(e)}var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"}); -},{"../type":33}],36:[function(require,module,exports){ +},{"../type":34}],37:[function(require,module,exports){ "use strict";function resolveYamlFloat(e){if(null===e)return!1;return YAML_FLOAT_PATTERN.test(e)?!0:!1}function constructYamlFloat(e){var r,t,a,n;return r=e.replace(/_/g,"").toLowerCase(),t="-"===r[0]?-1:1,n=[],0<="+-".indexOf(r[0])&&(r=r.slice(1)),".inf"===r?1===t?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===r?NaN:0<=r.indexOf(":")?(r.split(":").forEach(function(e){n.unshift(parseFloat(e,10))}),r=0,a=1,n.forEach(function(e){r+=e*a,a*=60}),t*r):t*parseFloat(r,10)}function representYamlFloat(e,r){if(isNaN(e))switch(r){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(r){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(r){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(common.isNegativeZero(e))return"-0.0";return e.toString(10)}function isFloat(e){return"[object Number]"===Object.prototype.toString.call(e)&&(0!==e%1||common.isNegativeZero(e))}var common=require("../common"),Type=require("../type"),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");module.exports=new Type("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"}); -},{"../common":22,"../type":33}],37:[function(require,module,exports){ +},{"../common":23,"../type":34}],38:[function(require,module,exports){ "use strict";function isHexCode(e){return e>=48&&57>=e||e>=65&&70>=e||e>=97&&102>=e}function isOctCode(e){return e>=48&&55>=e}function isDecCode(e){return e>=48&&57>=e}function resolveYamlInteger(e){if(null===e)return!1;var r,t=e.length,n=0,i=!1;if(!t)return!1;if(r=e[n],("-"===r||"+"===r)&&(r=e[++n]),"0"===r){if(n+1===t)return!0;if(r=e[++n],"b"===r){for(n++;t>n;n++)if(r=e[n],"_"!==r){if("0"!==r&&"1"!==r)return!1;i=!0}return i}if("x"===r){for(n++;t>n;n++)if(r=e[n],"_"!==r){if(!isHexCode(e.charCodeAt(n)))return!1;i=!0}return i}for(;t>n;n++)if(r=e[n],"_"!==r){if(!isOctCode(e.charCodeAt(n)))return!1;i=!0}return i}for(;t>n;n++)if(r=e[n],"_"!==r){if(":"===r)break;if(!isDecCode(e.charCodeAt(n)))return!1;i=!0}return i?":"!==r?!0:/^(:[0-5]?[0-9])+$/.test(e.slice(n)):!1}function constructYamlInteger(e){var r,t,n=e,i=1,o=[];return-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),r=n[0],("-"===r||"+"===r)&&("-"===r&&(i=-1),n=n.slice(1),r=n[0]),"0"===n?0:"0"===r?"b"===n[1]?i*parseInt(n.slice(2),2):"x"===n[1]?i*parseInt(n,16):i*parseInt(n,8):-1!==n.indexOf(":")?(n.split(":").forEach(function(e){o.unshift(parseInt(e,10))}),n=0,t=1,o.forEach(function(e){n+=e*t,t*=60}),i*n):i*parseInt(n,10)}function isInteger(e){return"[object Number]"===Object.prototype.toString.call(e)&&0===e%1&&!common.isNegativeZero(e)}var common=require("../common"),Type=require("../type");module.exports=new Type("tag:yaml.org,2002:int",{kind:"scalar",resolve:resolveYamlInteger,construct:constructYamlInteger,predicate:isInteger,represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}); -},{"../common":22,"../type":33}],38:[function(require,module,exports){ +},{"../common":23,"../type":34}],39:[function(require,module,exports){ "use strict";function resolveJavascriptFunction(e){if(null===e)return!1;try{var r="("+e+")",n=esprima.parse(r,{range:!0});return"Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"FunctionExpression"!==n.body[0].expression.type?!1:!0}catch(t){return!1}}function constructJavascriptFunction(e){var r,n="("+e+")",t=esprima.parse(n,{range:!0}),o=[];if("Program"!==t.type||1!==t.body.length||"ExpressionStatement"!==t.body[0].type||"FunctionExpression"!==t.body[0].expression.type)throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(e){o.push(e.name)}),r=t.body[0].expression.body.range,new Function(o,n.slice(r[0]+1,r[1]-1))}function representJavascriptFunction(e){return e.toString()}function isFunction(e){return"[object Function]"===Object.prototype.toString.call(e)}var esprima;try{esprima=require("esprima")}catch(_){"undefined"!=typeof window&&(esprima=window.esprima)}var Type=require("../../type");module.exports=new Type("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:resolveJavascriptFunction,construct:constructJavascriptFunction,predicate:isFunction,represent:representJavascriptFunction}); -},{"../../type":33,"esprima":50}],39:[function(require,module,exports){ +},{"../../type":34,"esprima":51}],40:[function(require,module,exports){ "use strict";function resolveJavascriptRegExp(e){if(null===e)return!1;if(0===e.length)return!1;var r=e,t=/\/([gim]*)$/.exec(e),n="";if("/"===r[0]){if(t&&(n=t[1]),n.length>3)return!1;if("/"!==r[r.length-n.length-1])return!1;r=r.slice(1,r.length-n.length-1)}try{new RegExp(r,n);return!0}catch(i){return!1}}function constructJavascriptRegExp(e){var r=e,t=/\/([gim]*)$/.exec(e),n="";return"/"===r[0]&&(t&&(n=t[1]),r=r.slice(1,r.length-n.length-1)),new RegExp(r,n)}function representJavascriptRegExp(e){var r="/"+e.source+"/";return e.global&&(r+="g"),e.multiline&&(r+="m"),e.ignoreCase&&(r+="i"),r}function isRegExp(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var Type=require("../../type");module.exports=new Type("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp}); -},{"../../type":33}],40:[function(require,module,exports){ +},{"../../type":34}],41:[function(require,module,exports){ "use strict";function resolveJavascriptUndefined(){return!0}function constructJavascriptUndefined(){return void 0}function representJavascriptUndefined(){return""}function isUndefined(e){return"undefined"==typeof e}var Type=require("../../type");module.exports=new Type("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:resolveJavascriptUndefined,construct:constructJavascriptUndefined,predicate:isUndefined,represent:representJavascriptUndefined}); -},{"../../type":33}],41:[function(require,module,exports){ +},{"../../type":34}],42:[function(require,module,exports){ "use strict";var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}}); -},{"../type":33}],42:[function(require,module,exports){ +},{"../type":34}],43:[function(require,module,exports){ "use strict";function resolveYamlMerge(e){return"<<"===e||null===e}var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge}); -},{"../type":33}],43:[function(require,module,exports){ +},{"../type":34}],44:[function(require,module,exports){ "use strict";function resolveYamlNull(l){if(null===l)return!0;var e=l.length;return 1===e&&"~"===l||4===e&&("null"===l||"Null"===l||"NULL"===l)}function constructYamlNull(){return null}function isNull(l){return null===l}var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"}); -},{"../type":33}],44:[function(require,module,exports){ +},{"../type":34}],45:[function(require,module,exports){ "use strict";function resolveYamlOmap(r){if(null===r)return!0;var t,e,n,o,u,a=[],l=r;for(t=0,e=l.length;e>t;t+=1){if(n=l[t],u=!1,"[object Object]"!==_toString.call(n))return!1;for(o in n)if(_hasOwnProperty.call(n,o)){if(u)return!1;u=!0}if(!u)return!1;if(-1!==a.indexOf(o))return!1;a.push(o)}return!0}function constructYamlOmap(r){return null!==r?r:[]}var Type=require("../type"),_hasOwnProperty=Object.prototype.hasOwnProperty,_toString=Object.prototype.toString;module.exports=new Type("tag:yaml.org,2002:omap",{kind:"sequence",resolve:resolveYamlOmap,construct:constructYamlOmap}); -},{"../type":33}],45:[function(require,module,exports){ +},{"../type":34}],46:[function(require,module,exports){ "use strict";function resolveYamlPairs(r){if(null===r)return!0;var e,t,n,l,o,a=r;for(o=new Array(a.length),e=0,t=a.length;t>e;e+=1){if(n=a[e],"[object Object]"!==_toString.call(n))return!1;if(l=Object.keys(n),1!==l.length)return!1;o[e]=[l[0],n[l[0]]]}return!0}function constructYamlPairs(r){if(null===r)return[];var e,t,n,l,o,a=r;for(o=new Array(a.length),e=0,t=a.length;t>e;e+=1)n=a[e],l=Object.keys(n),o[e]=[l[0],n[l[0]]];return o}var Type=require("../type"),_toString=Object.prototype.toString;module.exports=new Type("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:resolveYamlPairs,construct:constructYamlPairs}); -},{"../type":33}],46:[function(require,module,exports){ +},{"../type":34}],47:[function(require,module,exports){ "use strict";var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}}); -},{"../type":33}],47:[function(require,module,exports){ +},{"../type":34}],48:[function(require,module,exports){ "use strict";function resolveYamlSet(e){if(null===e)return!0;var r,t=e;for(r in t)if(_hasOwnProperty.call(t,r)&&null!==t[r])return!1;return!0}function constructYamlSet(e){return null!==e?e:{}}var Type=require("../type"),_hasOwnProperty=Object.prototype.hasOwnProperty;module.exports=new Type("tag:yaml.org,2002:set",{kind:"mapping",resolve:resolveYamlSet,construct:constructYamlSet}); -},{"../type":33}],48:[function(require,module,exports){ +},{"../type":34}],49:[function(require,module,exports){ "use strict";var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return null!==r?r:""}}); -},{"../type":33}],49:[function(require,module,exports){ +},{"../type":34}],50:[function(require,module,exports){ "use strict";function resolveYamlTimestamp(e){if(null===e)return!1;var t;return t=YAML_TIMESTAMP_REGEXP.exec(e),null===t?!1:!0}function constructYamlTimestamp(e){var t,r,n,a,m,s,l,i,T,o,u=0,c=null;if(t=YAML_TIMESTAMP_REGEXP.exec(e),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(r,n,a));if(m=+t[4],s=+t[5],l=+t[6],t[7]){for(u=t[7].slice(0,3);u.length<3;)u+="0";u=+u}return t[9]&&(i=+t[10],T=+(t[11]||0),c=6e4*(60*i+T),"-"===t[9]&&(c=-c)),o=new Date(Date.UTC(r,n,a,m,s,l,u)),c&&o.setTime(o.getTime()-c),o}function representYamlTimestamp(e){return e.toISOString()}var Type=require("../type"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?)?$");module.exports=new Type("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp}); -},{"../type":33}],50:[function(require,module,exports){ +},{"../type":34}],51:[function(require,module,exports){ !function(e,t){"use strict";"function"==typeof define&&define.amd?define(["exports"],t):t("undefined"!=typeof exports?exports:e.esprima={})}(this,function(e){"use strict";function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function n(e){return e>=48&&57>=e}function i(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function r(e){return"01234567".indexOf(e)>=0}function a(e){var t="0"!==e,n="01234567".indexOf(e);return mn>nn&&r(Zt[nn])&&(t=!0,n=8*n+"01234567".indexOf(Zt[nn++]),"0123".indexOf(e)>=0&&mn>nn&&r(Zt[nn])&&(n=8*n+"01234567".indexOf(Zt[nn++]))),{code:n,octal:t}}function s(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function o(e){return 10===e||13===e||8232===e||8233===e}function l(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||92===e||e>=128&&Yt.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function u(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||e>=48&&57>=e||92===e||e>=128&&Yt.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}}function f(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function h(e){return"eval"===e||"arguments"===e}function p(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function m(e,n,i,r,a){var s;t("number"==typeof i,"Comment must have valid position"),yn.lastCommentStart=i,s={type:e,value:n},gn.range&&(s.range=[i,r]),gn.loc&&(s.loc=a),gn.comments.push(s),gn.attachComment&&(gn.leadingComments.push(s),gn.trailingComments.push(s))}function d(e){var t,n,i,r;for(t=nn-e,n={start:{line:rn,column:nn-an-e}};mn>nn;)if(i=Zt.charCodeAt(nn),++nn,o(i))return sn=!0,gn.comments&&(r=Zt.slice(t+e,nn-1),n.end={line:rn,column:nn-an-1},m("Line",r,t,nn-1,n)),13===i&&10===Zt.charCodeAt(nn)&&++nn,++rn,void(an=nn);gn.comments&&(r=Zt.slice(t+e,nn),n.end={line:rn,column:nn-an},m("Line",r,t,nn,n))}function y(){var e,t,n,i;for(gn.comments&&(e=nn-2,t={start:{line:rn,column:nn-an-2}});mn>nn;)if(n=Zt.charCodeAt(nn),o(n))13===n&&10===Zt.charCodeAt(nn+1)&&++nn,sn=!0,++rn,++nn,an=nn;else if(42===n){if(47===Zt.charCodeAt(nn+1))return++nn,++nn,void(gn.comments&&(i=Zt.slice(e+2,nn-2),t.end={line:rn,column:nn-an},m("Block",i,e,nn,t)));++nn}else++nn;gn.comments&&(t.end={line:rn,column:nn-an},i=Zt.slice(e+2,nn),m("Block",i,e,nn,t)),Z()}function g(){var e,t;for(sn=!1,t=0===nn;mn>nn;)if(e=Zt.charCodeAt(nn),s(e))++nn;else if(o(e))sn=!0,++nn,13===e&&10===Zt.charCodeAt(nn)&&++nn,++rn,an=nn,t=!0;else if(47===e)if(e=Zt.charCodeAt(nn+1),47===e)++nn,++nn,d(2),t=!0;else{if(42!==e)break;++nn,++nn,y()}else if(t&&45===e){if(45!==Zt.charCodeAt(nn+1)||62!==Zt.charCodeAt(nn+2))break;nn+=3,d(3)}else{if(60!==e)break;if("!--"!==Zt.slice(nn+1,nn+4))break;++nn,++nn,++nn,++nn,d(4)}}function S(e){var t,n,r,a=0;for(n="u"===e?4:2,t=0;n>t;++t){if(!(mn>nn&&i(Zt[nn])))return"";r=Zt[nn++],a=16*a+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(a)}function v(){var e,t,n,r;for(e=Zt[nn],t=0,"}"===e&&Y();mn>nn&&(e=Zt[nn++],i(e));)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&Y(),65535>=t?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function x(){var e,t;for(e=Zt.charCodeAt(nn++),t=String.fromCharCode(e),92===e&&(117!==Zt.charCodeAt(nn)&&Y(),++nn,e=S("u"),e&&"\\"!==e&&l(e.charCodeAt(0))||Y(),t=e);mn>nn&&(e=Zt.charCodeAt(nn),u(e));)++nn,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==Zt.charCodeAt(nn)&&Y(),++nn,e=S("u"),e&&"\\"!==e&&u(e.charCodeAt(0))||Y(),t+=e);return t}function w(){var e,t;for(e=nn++;mn>nn;){if(t=Zt.charCodeAt(nn),92===t)return nn=e,x();if(!u(t))break;++nn}return Zt.slice(e,nn)}function b(){var e,t,n;return e=nn,t=92===Zt.charCodeAt(nn)?x():w(),n=1===t.length?_t.Identifier:p(t)?_t.Keyword:"null"===t?_t.NullLiteral:"true"===t||"false"===t?_t.BooleanLiteral:_t.Identifier,{type:n,value:t,lineNumber:rn,lineStart:an,start:e,end:nn}}function E(){var e,t;switch(e={type:_t.Punctuator,value:"",lineNumber:rn,lineStart:an,start:nn,end:nn},t=Zt[nn]){case"(":gn.tokenize&&(gn.openParenToken=gn.tokens.length),++nn;break;case"{":gn.tokenize&&(gn.openCurlyToken=gn.tokens.length),yn.curlyStack.push("{"),++nn;break;case".":++nn,"."===Zt[nn]&&"."===Zt[nn+1]&&(nn+=2,t="...");break;case"}":++nn,yn.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++nn;break;default:t=Zt.substr(nn,4),">>>="===t?nn+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t?nn+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t?nn+=2:(t=Zt[nn],"<>=!+-*%&|^/".indexOf(t)>=0&&++nn)))}return nn===e.start&&Y(),e.end=nn,e.value=t,e}function C(e){for(var t="";mn>nn&&i(Zt[nn]);)t+=Zt[nn++];return 0===t.length&&Y(),l(Zt.charCodeAt(nn))&&Y(),{type:_t.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:rn,lineStart:an,start:e,end:nn}}function k(e){var t,i;for(i="";mn>nn&&(t=Zt[nn],"0"===t||"1"===t);)i+=Zt[nn++];return 0===i.length&&Y(),mn>nn&&(t=Zt.charCodeAt(nn),(l(t)||n(t))&&Y()),{type:_t.NumericLiteral,value:parseInt(i,2),lineNumber:rn,lineStart:an,start:e,end:nn}}function I(e,t){var i,a;for(r(e)?(a=!0,i="0"+Zt[nn++]):(a=!1,++nn,i="");mn>nn&&r(Zt[nn]);)i+=Zt[nn++];return a||0!==i.length||Y(),(l(Zt.charCodeAt(nn))||n(Zt.charCodeAt(nn)))&&Y(),{type:_t.NumericLiteral,value:parseInt(i,8),octal:a,lineNumber:rn,lineStart:an,start:t,end:nn}}function P(){var e,t;for(e=nn+1;mn>e;++e){if(t=Zt[e],"8"===t||"9"===t)return!1;if(!r(t))return!0}return!0}function A(){var e,i,a;if(a=Zt[nn],t(n(a.charCodeAt(0))||"."===a,"Numeric literal must start with a decimal digit or a decimal point"),i=nn,e="","."!==a){if(e=Zt[nn++],a=Zt[nn],"0"===e){if("x"===a||"X"===a)return++nn,C(i);if("b"===a||"B"===a)return++nn,k(i);if("o"===a||"O"===a)return I(a,i);if(r(a)&&P())return I(a,i)}for(;n(Zt.charCodeAt(nn));)e+=Zt[nn++];a=Zt[nn]}if("."===a){for(e+=Zt[nn++];n(Zt.charCodeAt(nn));)e+=Zt[nn++];a=Zt[nn]}if("e"===a||"E"===a)if(e+=Zt[nn++],a=Zt[nn],("+"===a||"-"===a)&&(e+=Zt[nn++]),n(Zt.charCodeAt(nn)))for(;n(Zt.charCodeAt(nn));)e+=Zt[nn++];else Y();return l(Zt.charCodeAt(nn))&&Y(),{type:_t.NumericLiteral,value:parseFloat(e),lineNumber:rn,lineStart:an,start:i,end:nn}}function D(){var e,n,i,s,l,u="",c=!1;for(e=Zt[nn],t("'"===e||'"'===e,"String literal must starts with a quote"),n=nn,++nn;mn>nn;){if(i=Zt[nn++],i===e){e="";break}if("\\"===i)if(i=Zt[nn++],i&&o(i.charCodeAt(0)))++rn,"\r"===i&&"\n"===Zt[nn]&&++nn,an=nn;else switch(i){case"u":case"x":if("{"===Zt[nn])++nn,u+=v();else{if(s=S(i),!s)throw Y();u+=s}break;case"n":u+="\n";break;case"r":u+="\r";break;case"t":u+=" ";break;case"b":u+="\b";break;case"f":u+="\f";break;case"v":u+=" ";break;case"8":case"9":throw Y();default:r(i)?(l=a(i),c=l.octal||c,u+=String.fromCharCode(l.code)):u+=i}else{if(o(i.charCodeAt(0)))break;u+=i}}return""!==e&&Y(),{type:_t.StringLiteral,value:u,octal:c,lineNumber:fn,lineStart:hn,start:n,end:nn}}function L(){var e,t,i,a,s,l,u,c,f="";for(a=!1,l=!1,t=nn,s="`"===Zt[nn],i=2,++nn;mn>nn;){if(e=Zt[nn++],"`"===e){i=1,l=!0,a=!0;break}if("$"===e){if("{"===Zt[nn]){yn.curlyStack.push("${"),++nn,a=!0;break}f+=e}else if("\\"===e)if(e=Zt[nn++],o(e.charCodeAt(0)))++rn,"\r"===e&&"\n"===Zt[nn]&&++nn,an=nn;else switch(e){case"n":f+="\n";break;case"r":f+="\r";break;case"t":f+=" ";break;case"u":case"x":"{"===Zt[nn]?(++nn,f+=v()):(u=nn,c=S(e),c?f+=c:(nn=u,f+=e));break;case"b":f+="\b";break;case"f":f+="\f";break;case"v":f+=" ";break;default:"0"===e?(n(Zt.charCodeAt(nn))&&X(Qt.TemplateOctalLiteral),f+="\x00"):r(e)?X(Qt.TemplateOctalLiteral):f+=e}else o(e.charCodeAt(0))?(++rn,"\r"===e&&"\n"===Zt[nn]&&++nn,an=nn,f+="\n"):f+=e}return a||Y(),s||yn.curlyStack.pop(),{type:_t.Template,value:{cooked:f,raw:Zt.slice(t+1,nn-i)},head:s,tail:l,lineNumber:rn,lineStart:an,start:t,end:nn}}function T(e,t){var n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t){return parseInt(t,16)<=1114111?"x":void Y(null,Qt.InvalidRegExp)}).replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{RegExp(n)}catch(i){Y(null,Qt.InvalidRegExp)}try{return new RegExp(e,t)}catch(r){return null}}function N(){var e,n,i,r,a;for(e=Zt[nn],t("/"===e,"Regular expression literal must start with a slash"),n=Zt[nn++],i=!1,r=!1;mn>nn;)if(e=Zt[nn++],n+=e,"\\"===e)e=Zt[nn++],o(e.charCodeAt(0))&&Y(null,Qt.UnterminatedRegExp),n+=e;else if(o(e.charCodeAt(0)))Y(null,Qt.UnterminatedRegExp);else if(i)"]"===e&&(i=!1);else{if("/"===e){r=!0;break}"["===e&&(i=!0)}return r||Y(null,Qt.UnterminatedRegExp),a=n.substr(1,n.length-2),{value:a,literal:n}}function R(){var e,t,n,i;for(t="",n="";mn>nn&&(e=Zt[nn],u(e.charCodeAt(0)));)if(++nn,"\\"===e&&mn>nn)if(e=Zt[nn],"u"===e){if(++nn,i=nn,e=S("u"))for(n+=e,t+="\\u";nn>i;++i)t+=Zt[i];else nn=i,n+="u",t+="\\u";Z()}else t+="\\",Z();else n+=e,t+=e;return{value:n,literal:t}}function F(){pn=!0;var e,t,n,i;return dn=null,g(),e=nn,t=N(),n=R(),i=T(t.value,n.value),pn=!1,gn.tokenize?{type:_t.RegularExpression,value:i,regex:{pattern:t.value,flags:n.value},lineNumber:rn,lineStart:an,start:e,end:nn}:{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:nn}}function O(){var e,t,n,i;return g(),e=nn,t={start:{line:rn,column:nn-an}},n=F(),t.end={line:rn,column:nn-an},gn.tokenize||(gn.tokens.length>0&&(i=gn.tokens[gn.tokens.length-1],i.range[0]===e&&"Punctuator"===i.type&&("/"===i.value||"/="===i.value)&&gn.tokens.pop()),gn.tokens.push({type:"RegularExpression",value:n.literal,regex:n.regex,range:[e,nn],loc:t})),n}function U(e){return e.type===_t.Identifier||e.type===_t.Keyword||e.type===_t.BooleanLiteral||e.type===_t.NullLiteral}function B(){var e,t;if(e=gn.tokens[gn.tokens.length-1],!e)return O();if("Punctuator"===e.type){if("]"===e.value)return E();if(")"===e.value)return t=gn.tokens[gn.openParenToken-1],!t||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?E():O();if("}"===e.value){if(gn.tokens[gn.openCurlyToken-3]&&"Keyword"===gn.tokens[gn.openCurlyToken-3].type){if(t=gn.tokens[gn.openCurlyToken-4],!t)return E()}else{if(!gn.tokens[gn.openCurlyToken-4]||"Keyword"!==gn.tokens[gn.openCurlyToken-4].type)return E();if(t=gn.tokens[gn.openCurlyToken-5],!t)return O()}return Gt.indexOf(t.value)>=0?E():O()}return O()}return"Keyword"===e.type&&"this"!==e.value?O():E()}function M(){var e,t;return nn>=mn?{type:_t.EOF,lineNumber:rn,lineStart:an,start:nn,end:nn}:(e=Zt.charCodeAt(nn),l(e)?(t=b(),en&&f(t.value)&&(t.type=_t.Keyword),t):40===e||41===e||59===e?E():39===e||34===e?D():46===e?n(Zt.charCodeAt(nn+1))?A():E():n(e)?A():gn.tokenize&&47===e?B():96===e||125===e&&"${"===yn.curlyStack[yn.curlyStack.length-1]?L():E())}function j(){var e,t,n,i;return e={start:{line:rn,column:nn-an}},t=M(),e.end={line:rn,column:nn-an},t.type!==_t.EOF&&(n=Zt.slice(t.start,t.end),i={type:$t[t.type],value:n,range:[t.start,t.end],loc:e},t.regex&&(i.regex={pattern:t.regex.pattern,flags:t.regex.flags}),gn.tokens.push(i)),t}function W(){var e;return pn=!0,on=nn,ln=rn,un=an,g(),e=dn,cn=nn,fn=rn,hn=an,dn="undefined"!=typeof gn.tokens?j():M(),pn=!1,e}function K(){pn=!0,g(),on=nn,ln=rn,un=an,cn=nn,fn=rn,hn=an,dn="undefined"!=typeof gn.tokens?j():M(),pn=!1}function H(){this.line=fn,this.column=cn-hn}function V(){this.start=new H,this.end=null}function q(e){this.start={line:e.lineNumber,column:e.start-e.lineStart},this.end=null}function z(){gn.range&&(this.range=[cn,0]),gn.loc&&(this.loc=new V)}function _(e){gn.range&&(this.range=[e.start,0]),gn.loc&&(this.loc=new q(e))}function $(e){var t,n;for(t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function oe(){return 59===Zt.charCodeAt(cn)||ie(";")?void W():void(sn||(on=cn,ln=fn,un=hn,dn.type===_t.EOF||ie("}")||Y(dn)))}function le(e){var t,n=Sn,i=vn,r=xn;return Sn=!0,vn=!0,xn=null,t=e(),null!==xn&&Y(xn),Sn=n,vn=i,xn=r,t}function ue(e){var t,n=Sn,i=vn,r=xn;return Sn=!0,vn=!0,xn=null,t=e(),Sn=Sn&&n,vn=vn&&i,xn=r||xn,t}function ce(){var e,t,n=new z,i=[];for(ee("[");!ie("]");)if(ie(","))W(),i.push(null);else{if(ie("...")){t=new z,W(),e=Je(),i.push(t.finishRestElement(e));break}i.push(me()),ie("]")||ee(",")}return ee("]"),n.finishArrayPattern(i)}function fe(){var e,t,n=new z,i=ie("[");if(dn.type===_t.Identifier){if(e=Je(),ie("="))return W(),t=ze(),n.finishProperty("init",e,!1,new _(e).finishAssignmentPattern(e,t),!1,!1);if(!ie(":"))return n.finishProperty("init",e,!1,e,!1,!0)}else e=Se();return ee(":"),t=me(),n.finishProperty("init",e,i,t,!1,!1)}function he(){var e=new z,t=[];for(ee("{");!ie("}");)t.push(fe()),ie("}")||ee(",");return W(),e.finishObjectPattern(t)}function pe(){return dn.type===_t.Identifier?Je():ie("[")?ce():ie("{")?he():void Y(dn)}function me(){var e,t,n=dn;return e=pe(),ie("=")&&(W(),t=le(ze),e=new _(n).finishAssignmentPattern(e,t)),e}function de(){var e,t=[],n=new z;for(ee("[");!ie("]");)ie(",")?(W(),t.push(null)):ie("...")?(e=new z,W(),e.finishSpreadElement(ue(ze)),ie("]")||(vn=Sn=!1,ee(",")),t.push(e)):(t.push(ue(ze)),ie("]")||ee(","));return W(),n.finishArrayExpression(t)}function ye(e,t){var n,i;return vn=Sn=!1,n=en,i=le(wt),en&&t.firstRestricted&&Z(t.firstRestricted,t.message),en&&t.stricted&&Z(t.stricted,t.message),en=n,e.finishFunctionExpression(null,t.params,t.defaults,i)}function ge(){var e,t,n=new z;return e=Ct(),t=ye(n,e)}function Se(){var e,t,n=new z;switch(e=W(),e.type){case _t.StringLiteral:case _t.NumericLiteral:return en&&e.octal&&Z(e,Qt.StrictOctalLiteral),n.finishLiteral(e);case _t.Identifier:case _t.BooleanLiteral:case _t.NullLiteral:case _t.Keyword:return n.finishIdentifier(e.value);case _t.Punctuator:if("["===e.value)return t=le(ze),ee("]"),t}Y(e)}function ve(){switch(dn.type){case _t.Identifier:case _t.StringLiteral:case _t.BooleanLiteral:case _t.NullLiteral:case _t.NumericLiteral:case _t.Keyword:return!0;case _t.Punctuator:return"["===dn.value}return!1}function xe(e,t,n,i){var r,a,s;if(e.type===_t.Identifier){if("get"===e.value&&ve())return n=ie("["),t=Se(),s=new z,ee("("),ee(")"),r=ye(s,{params:[],defaults:[],stricted:null,firstRestricted:null,message:null}),i.finishProperty("get",t,n,r,!1,!1);if("set"===e.value&&ve())return n=ie("["),t=Se(),s=new z,ee("("),a={params:[],defaultCount:0,defaults:[],firstRestricted:null,paramSet:{}},ie(")")?Z(dn):(Et(a),0===a.defaultCount&&(a.defaults=[])),ee(")"),r=ye(s,a),i.finishProperty("set",t,n,r,!1,!1)}return ie("(")?(r=ge(),i.finishProperty("init",t,n,r,!0,!1)):null}function we(e,t,n){t===!1&&(e.type===Xt.Identifier&&"__proto__"===e.name||e.type===Xt.Literal&&"__proto__"===e.value)&&(n.value?J(Qt.DuplicateProtoProperty):n.value=!0)}function be(e){var t,n,i,r,a=dn,s=new z;return t=ie("["),n=Se(),(i=xe(a,n,t,s))?(we(i.key,i.computed,e),i):(we(n,t,e),ie(":")?(W(),r=ue(ze),s.finishProperty("init",n,t,r,!1,!1)):a.type===_t.Identifier?ie("=")?(xn=dn,W(),r=le(ze),s.finishProperty("init",n,t,new _(a).finishAssignmentPattern(n,r),!1,!0)):s.finishProperty("init",n,t,n,!1,!0):void Y(dn))}function Ee(){var e=[],t={value:!1},n=new z;for(ee("{");!ie("}");)e.push(be(t)),ie("}")||te();return ee("}"),n.finishObjectExpression(e)}function Ce(e){var t;switch(e.type){case Xt.Identifier:case Xt.MemberExpression:case Xt.RestElement:case Xt.AssignmentPattern:break;case Xt.SpreadElement:e.type=Xt.RestElement,Ce(e.argument);break;case Xt.ArrayExpression:for(e.type=Xt.ArrayPattern,t=0;t")||ee("=>"),{type:Jt.ArrowParameterPlaceHolder,params:[]};if(n=dn,ie("..."))return e=it(),ee(")"),ie("=>")||ee("=>"),{type:Jt.ArrowParameterPlaceHolder,params:[e]};if(Sn=!0,e=ue(ze),ie(",")){for(vn=!1,t=[e];mn>cn&&ie(",");){if(W(),ie("...")){for(Sn||Y(dn),t.push(it()),ee(")"),ie("=>")||ee("=>"),Sn=!1,i=0;i")){if(Sn||Y(dn),e.type===Xt.SequenceExpression)for(i=0;icn&&(e.push(le(ze)),!ie(")"));)te();return ee(")"),e}function Le(){var e,t=new z;return e=W(),U(e)||Y(e),t.finishIdentifier(e.value)}function Te(){return ee("."),Le()}function Ne(){var e;return ee("["),e=le(_e),ee("]"),e}function Re(){var e,t,n=new z;return ne("new"),e=le(Oe),t=ie("(")?De():[],vn=Sn=!1,n.finishNewExpression(e,t)}function Fe(){var e,t,n,i,r,a=yn.allowIn;for(r=dn,yn.allowIn=!0,re("super")&&yn.inFunctionBody?(t=new z,W(),t=t.finishSuper(),ie("(")||ie(".")||ie("[")||Y(dn)):t=ue(re("new")?Re:Ae);;)if(ie("."))Sn=!1,vn=!0,i=Te(),t=new _(r).finishMemberExpression(".",t,i);else if(ie("("))Sn=!1,vn=!1,n=De(),t=new _(r).finishCallExpression(t,n);else if(ie("["))Sn=!1,vn=!0,i=Ne(),t=new _(r).finishMemberExpression("[",t,i);else{if(dn.type!==_t.Template||!dn.head)break;e=Ie(),t=new _(r).finishTaggedTemplateExpression(t,e)}return yn.allowIn=a,t}function Oe(){var e,n,i,r;for(t(yn.allowIn,"callee of new expression always allow in keyword."),r=dn,re("super")&&yn.inFunctionBody?(n=new z,W(),n=n.finishSuper(),ie("[")||ie(".")||Y(dn)):n=ue(re("new")?Re:Ae);;)if(ie("["))Sn=!1,vn=!0,i=Ne(),n=new _(r).finishMemberExpression("[",n,i);else if(ie("."))Sn=!1,vn=!0,i=Te(),n=new _(r).finishMemberExpression(".",n,i);else{if(dn.type!==_t.Template||!dn.head)break;e=Ie(),n=new _(r).finishTaggedTemplateExpression(n,e)}return n}function Ue(){var e,t,n=dn;return e=ue(Fe),sn||dn.type!==_t.Punctuator||(ie("++")||ie("--"))&&(en&&e.type===Xt.Identifier&&h(e.name)&&J(Qt.StrictLHSPostfix),vn||J(Qt.InvalidLHSInAssignment),vn=Sn=!1,t=W(),e=new _(n).finishPostfixExpression(t.value,e)),e}function Be(){var e,t,n;return dn.type!==_t.Punctuator&&dn.type!==_t.Keyword?t=Ue():ie("++")||ie("--")?(n=dn,e=W(),t=ue(Be),en&&t.type===Xt.Identifier&&h(t.name)&&J(Qt.StrictLHSPrefix),vn||J(Qt.InvalidLHSInAssignment),t=new _(n).finishUnaryExpression(e.value,t),vn=Sn=!1):ie("+")||ie("-")||ie("~")||ie("!")?(n=dn,e=W(),t=ue(Be),t=new _(n).finishUnaryExpression(e.value,t),vn=Sn=!1):re("delete")||re("void")||re("typeof")?(n=dn,e=W(),t=ue(Be),t=new _(n).finishUnaryExpression(e.value,t),en&&"delete"===t.operator&&t.argument.type===Xt.Identifier&&J(Qt.StrictDelete),vn=Sn=!1):t=Ue(),t}function Me(e,t){var n=0;if(e.type!==_t.Punctuator&&e.type!==_t.Keyword)return 0;switch(e.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":n=7;break;case"in":n=t?7:0;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function je(){var e,t,n,i,r,a,s,o,l,u;if(e=dn,l=ue(Be),i=dn,r=Me(i,yn.allowIn),0===r)return l;for(vn=Sn=!1,i.prec=r,W(),t=[e,dn],s=le(Be),a=[l,i,s];(r=Me(dn,yn.allowIn))>0;){for(;a.length>2&&r<=a[a.length-2].prec;)s=a.pop(),o=a.pop().value,l=a.pop(),t.pop(),n=new _(t[t.length-1]).finishBinaryExpression(o,l,s),a.push(n);i=W(),i.prec=r,a.push(i),t.push(dn),n=le(Be),a.push(n)}for(u=a.length-1,n=a[u],t.pop();u>1;)n=new _(t.pop()).finishBinaryExpression(a[u-1].value,a[u-2],n),u-=2;return n}function We(){var e,t,n,i,r;return r=dn,e=ue(je),ie("?")&&(W(),t=yn.allowIn,yn.allowIn=!0,n=le(ze),yn.allowIn=t,ee(":"),i=le(ze),e=new _(r).finishConditionalExpression(e,n,i),vn=Sn=!1),e}function Ke(){return ie("{")?wt():le(ze)}function He(e,n){var i;switch(n.type){case Xt.Identifier:bt(e,n,n.name);break;case Xt.RestElement:He(e,n.argument);break;case Xt.AssignmentPattern:He(e,n.left);break;case Xt.ArrayPattern:for(i=0;it;t+=1)switch(i=r[t],i.type){case Xt.AssignmentPattern:r[t]=i.left,a.push(i.right),++s,He(o,i.left);break;default:He(o,i),r[t]=i,a.push(null)}return o.message===Qt.StrictParamDupe&&(l=en?o.stricted:o.firstRestricted,Y(l,o.message)),0===s&&(a=[]),{params:r,defaults:a,stricted:o.stricted,firstRestricted:o.firstRestricted,message:o.message}}function qe(e,t){var n,i;return sn&&Z(dn),ee("=>"),n=en,i=Ke(),en&&e.firstRestricted&&Y(e.firstRestricted,e.message),en&&e.stricted&&Z(e.stricted,e.message),en=n,t.finishArrowFunctionExpression(e.params,e.defaults,i,i.type!==Xt.BlockStatement)}function ze(){var e,t,n,i,r;return r=dn,e=dn,t=We(),t.type===Jt.ArrowParameterPlaceHolder||ie("=>")?(vn=Sn=!1,i=Ve(t),i?(xn=null,qe(i,new _(r))):t):(se()&&(vn||J(Qt.InvalidLHSInAssignment),en&&t.type===Xt.Identifier&&h(t.name)&&Z(e,Qt.StrictLHSAssignment),ie("=")?Ce(t):vn=Sn=!1,e=W(),n=le(ze),t=new _(r).finishAssignmentExpression(e.value,t,n),xn=null),t)}function _e(){var e,t,n=dn;if(e=le(ze),ie(",")){for(t=[e];mn>cn&&ie(",");)W(),t.push(le(ze));e=new _(n).finishSequenceExpression(t)}return e}function $e(){if(dn.type===_t.Keyword)switch(dn.value){case"export":return"module"!==tn&&Z(dn,Qt.IllegalExportDeclaration),Ot();case"import":return"module"!==tn&&Z(dn,Qt.IllegalImportDeclaration),Wt();case"const":case"let":return nt({inFor:!1});case"function":return kt(new z);case"class":return At()}return xt()}function Ge(){for(var e=[];mn>cn&&!ie("}");)e.push($e());return e}function Xe(){var e,t=new z;return ee("{"),e=Ge(),ee("}"),t.finishBlockStatement(e)}function Je(){var e,t=new z;return e=W(),e.type!==_t.Identifier&&(en&&e.type===_t.Keyword&&f(e.value)?Z(e,Qt.StrictReservedWord):Y(e)),t.finishIdentifier(e.value)}function Qe(){var e,t=null,n=new z;return e=pe(),en&&h(e.name)&&J(Qt.StrictVarName),ie("=")?(W(),t=le(ze)):e.type!==Xt.Identifier&&ee("="),n.finishVariableDeclarator(e,t)}function Ye(){var e=[];do{if(e.push(Qe()),!ie(","))break;W()}while(mn>cn);return e}function Ze(e){var t;return ne("var"),t=Ye(),oe(),e.finishVariableDeclaration(t)}function et(e,t){var n,i=null,r=new z;return n=pe(),en&&n.type===Xt.Identifier&&h(n.name)&&J(Qt.StrictVarName),"const"===e?re("in")||(ee("="),i=le(ze)):(!t.inFor&&n.type!==Xt.Identifier||ie("="))&&(ee("="),i=le(ze)),r.finishVariableDeclarator(n,i)}function tt(e,t){var n=[];do{if(n.push(et(e,t)),!ie(","))break;W()}while(mn>cn);return n}function nt(e){var n,i,r=new z;return n=W().value,t("let"===n||"const"===n,"Lexical declaration must be either let or const"),i=tt(n,e),oe(),r.finishLexicalDeclaration(i,n)}function it(){var e,t=new z;return W(),ie("{")&&X(Qt.ObjectPatternAsRestParameter),e=Je(),ie("=")&&X(Qt.DefaultRestParameter),ie(")")||X(Qt.ParameterAfterRestParameter),t.finishRestElement(e)}function rt(e){return ee(";"),e.finishEmptyStatement()}function at(e){var t=_e();return oe(),e.finishExpressionStatement(t)}function st(e){var t,n,i;return ne("if"),ee("("),t=_e(),ee(")"),n=xt(),re("else")?(W(),i=xt()):i=null,e.finishIfStatement(t,n,i)}function ot(e){var t,n,i;return ne("do"),i=yn.inIteration,yn.inIteration=!0,t=xt(),yn.inIteration=i,ne("while"),ee("("),n=_e(),ee(")"),ie(";")&&W(),e.finishDoWhileStatement(t,n)}function lt(e){var t,n,i;return ne("while"),ee("("),t=_e(),ee(")"),i=yn.inIteration,yn.inIteration=!0,n=xt(),yn.inIteration=i,e.finishWhileStatement(t,n)}function ut(e){var t,n,i,r,a,s,o,l,u,c,f,h=yn.allowIn;if(t=r=a=null,ne("for"),ee("("),ie(";"))W();else if(re("var"))t=new z,W(),yn.allowIn=!1,t=t.finishVariableDeclaration(Ye()),yn.allowIn=h,1===t.declarations.length&&re("in")?(W(),s=t,o=_e(),t=null):ee(";");else if(re("const")||re("let"))t=new z,l=W().value,yn.allowIn=!1,u=tt(l,{inFor:!0}),yn.allowIn=h,1===u.length&&null===u[0].init&&re("in")?(t=t.finishLexicalDeclaration(u,l),W(),s=t,o=_e(),t=null):(oe(),t=t.finishLexicalDeclaration(u,l));else if(i=dn,yn.allowIn=!1,t=ue(ze),yn.allowIn=h,re("in"))vn||J(Qt.InvalidLHSInForIn),W(),Ce(t),s=t,o=_e(),t=null;else{if(ie(",")){for(n=[t];ie(",");)W(),n.push(le(ze));t=new _(i).finishSequenceExpression(n)}ee(";")}return"undefined"==typeof s&&(ie(";")||(r=_e()),ee(";"),ie(")")||(a=_e())),ee(")"),f=yn.inIteration,yn.inIteration=!0,c=le(xt),yn.inIteration=f,"undefined"==typeof s?e.finishForStatement(t,r,a,c):e.finishForInStatement(s,o,c)}function ct(e){var t,n=null;return ne("continue"),59===Zt.charCodeAt(cn)?(W(),yn.inIteration||X(Qt.IllegalContinue),e.finishContinueStatement(null)):sn?(yn.inIteration||X(Qt.IllegalContinue),e.finishContinueStatement(null)):(dn.type===_t.Identifier&&(n=Je(),t="$"+n.name,Object.prototype.hasOwnProperty.call(yn.labelSet,t)||X(Qt.UnknownLabel,n.name)),oe(),null!==n||yn.inIteration||X(Qt.IllegalContinue),e.finishContinueStatement(n))}function ft(e){var t,n=null;return ne("break"),59===Zt.charCodeAt(on)?(W(),yn.inIteration||yn.inSwitch||X(Qt.IllegalBreak),e.finishBreakStatement(null)):sn?(yn.inIteration||yn.inSwitch||X(Qt.IllegalBreak),e.finishBreakStatement(null)):(dn.type===_t.Identifier&&(n=Je(),t="$"+n.name,Object.prototype.hasOwnProperty.call(yn.labelSet,t)||X(Qt.UnknownLabel,n.name)),oe(),null!==n||yn.inIteration||yn.inSwitch||X(Qt.IllegalBreak),e.finishBreakStatement(n))}function ht(e){var t=null;return ne("return"),yn.inFunctionBody||J(Qt.IllegalReturn),32===Zt.charCodeAt(on)&&l(Zt.charCodeAt(on+1))?(t=_e(),oe(),e.finishReturnStatement(t)):sn?e.finishReturnStatement(null):(ie(";")||ie("}")||dn.type===_t.EOF||(t=_e()),oe(),e.finishReturnStatement(t))}function pt(e){var t,n;return en&&J(Qt.StrictModeWith),ne("with"),ee("("),t=_e(),ee(")"),n=xt(),e.finishWithStatement(t,n)}function mt(){var e,t,n=[],i=new z;for(re("default")?(W(),e=null):(ne("case"),e=_e()),ee(":");mn>cn&&!(ie("}")||re("default")||re("case"));)t=$e(),n.push(t);return i.finishSwitchCase(e,n)}function dt(e){var t,n,i,r,a;if(ne("switch"),ee("("),t=_e(),ee(")"),ee("{"),n=[],ie("}"))return W(),e.finishSwitchStatement(t,n);for(r=yn.inSwitch,yn.inSwitch=!0,a=!1;mn>cn&&!ie("}");)i=mt(),null===i.test&&(a&&X(Qt.MultipleDefaultsInSwitch),a=!0),n.push(i);return yn.inSwitch=r,ee("}"),e.finishSwitchStatement(t,n)}function yt(e){var t;return ne("throw"),sn&&X(Qt.NewlineAfterThrow),t=_e(),oe(),e.finishThrowStatement(t)}function gt(){var e,t,n=new z;return ne("catch"),ee("("),ie(")")&&Y(dn),e=pe(),en&&h(e.name)&&J(Qt.StrictCatchVariable),ee(")"),t=Xe(),n.finishCatchClause(e,t)}function St(e){var t,n=null,i=null;return ne("try"),t=Xe(),re("catch")&&(n=gt()),re("finally")&&(W(),i=Xe()),n||i||X(Qt.NoCatchOrFinally),e.finishTryStatement(t,n,i)}function vt(e){return ne("debugger"),oe(),e.finishDebuggerStatement()}function xt(){var e,t,n,i,r=dn.type;if(r===_t.EOF&&Y(dn),r===_t.Punctuator&&"{"===dn.value)return Xe();if(vn=Sn=!0,i=new z,r===_t.Punctuator)switch(dn.value){case";":return rt(i);case"(":return at(i)}else if(r===_t.Keyword)switch(dn.value){case"break":return ft(i);case"continue":return ct(i);case"debugger":return vt(i);case"do":return ot(i);case"for":return ut(i);case"function":return kt(i);case"if":return st(i);case"return":return ht(i);case"switch":return dt(i);case"throw":return yt(i);case"try":return St(i);case"var":return Ze(i);case"while":return lt(i);case"with":return pt(i)}return e=_e(),e.type===Xt.Identifier&&ie(":")?(W(),n="$"+e.name,Object.prototype.hasOwnProperty.call(yn.labelSet,n)&&X(Qt.Redeclaration,"Label",e.name),yn.labelSet[n]=!0,t=xt(),delete yn.labelSet[n],i.finishLabeledStatement(e,t)):(oe(),i.finishExpressionStatement(e))}function wt(){var e,t,n,i,r,a,s,o,l,u=[],c=new z;for(ee("{");mn>cn&&dn.type===_t.StringLiteral&&(t=dn,e=$e(),u.push(e),e.expression.type===Xt.Literal);)n=Zt.slice(t.start+1,t.end-1),"use strict"===n?(en=!0,i&&Z(i,Qt.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(r=yn.labelSet,a=yn.inIteration,s=yn.inSwitch,o=yn.inFunctionBody,l=yn.parenthesizedCount,yn.labelSet={},yn.inIteration=!1,yn.inSwitch=!1,yn.inFunctionBody=!0,yn.parenthesizedCount=0;mn>cn&&!ie("}");)u.push($e());return ee("}"),yn.labelSet=r,yn.inIteration=a,yn.inSwitch=s,yn.inFunctionBody=o, yn.parenthesizedCount=l,c.finishBlockStatement(u)}function bt(e,t,n){var i="$"+n;en?(h(n)&&(e.stricted=t,e.message=Qt.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,i)&&(e.stricted=t,e.message=Qt.StrictParamDupe)):e.firstRestricted||(h(n)?(e.firstRestricted=t,e.message=Qt.StrictParamName):f(n)?(e.firstRestricted=t,e.message=Qt.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,i)&&(e.firstRestricted=t,e.message=Qt.StrictParamDupe)),e.paramSet[i]=!0}function Et(e){var t,n,i;return t=dn,"..."===t.value?(n=it(),bt(e,n.argument,n.argument.name),e.params.push(n),e.defaults.push(null),!1):(n=me(),bt(e,t,t.value),n.type===Xt.AssignmentPattern&&(i=n.right,n=n.left,++e.defaultCount),e.params.push(n),e.defaults.push(i),!ie(")"))}function Ct(e){var t;if(t={params:[],defaultCount:0,defaults:[],firstRestricted:e},ee("("),!ie(")"))for(t.paramSet={};mn>cn&&Et(t);)ee(",");return ee(")"),0===t.defaultCount&&(t.defaults=[]),{params:t.params,defaults:t.defaults,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}}function kt(e,t){var n,i,r,a,s,o,l,u=null,c=[],p=[];return ne("function"),t&&ie("(")||(i=dn,u=Je(),en?h(i.value)&&Z(i,Qt.StrictFunctionName):h(i.value)?(s=i,o=Qt.StrictFunctionName):f(i.value)&&(s=i,o=Qt.StrictReservedWord)),a=Ct(s),c=a.params,p=a.defaults,r=a.stricted,s=a.firstRestricted,a.message&&(o=a.message),l=en,n=wt(),en&&s&&Y(s,o),en&&r&&Z(r,o),en=l,e.finishFunctionDeclaration(u,c,p,n)}function It(){var e,t,n,i,r,a,s,o=null,l=[],u=[],c=new z;return ne("function"),ie("(")||(e=dn,o=Je(),en?h(e.value)&&Z(e,Qt.StrictFunctionName):h(e.value)?(n=e,i=Qt.StrictFunctionName):f(e.value)&&(n=e,i=Qt.StrictReservedWord)),r=Ct(n),l=r.params,u=r.defaults,t=r.stricted,n=r.firstRestricted,r.message&&(i=r.message),s=en,a=wt(),en&&n&&Y(n,i),en&&t&&Z(t,i),en=s,c.finishFunctionExpression(o,l,u,a)}function Pt(){var e,t,n,i,r,a,s,o=!1;for(e=new z,ee("{"),i=[];!ie("}");)ie(";")?W():(r=new z,t=dn,n=!1,a=ie("["),s=Se(),"static"===s.name&&ve()&&(t=dn,n=!0,a=ie("["),s=Se()),r=xe(t,s,a,r),r?(r["static"]=n,"init"===r.kind&&(r.kind="method"),n?r.computed||"prototype"!==(r.key.name||r.key.value.toString())||Y(t,Qt.StaticPrototype):r.computed||"constructor"!==(r.key.name||r.key.value.toString())||(("method"!==r.kind||!r.method||r.value.generator)&&Y(t,Qt.ConstructorSpecialMethod),o?Y(t,Qt.DuplicateConstructor):o=!0,r.kind="constructor"),r.type=Xt.MethodDefinition,delete r.method,delete r.shorthand,i.push(r)):Y(dn));return W(),e.finishClassBody(i)}function At(e){var t,n=null,i=null,r=new z,a=en;return en=!0,ne("class"),e&&dn.type!==_t.Identifier||(n=Je()),re("extends")&&(W(),i=le(Fe)),t=Pt(),en=a,r.finishClassDeclaration(n,i,t)}function Dt(){var e,t=null,n=null,i=new z,r=en;return en=!0,ne("class"),dn.type===_t.Identifier&&(t=Je()),re("extends")&&(W(),n=le(Fe)),e=Pt(),en=r,i.finishClassExpression(t,n,e)}function Lt(){var e=new z;return dn.type!==_t.StringLiteral&&X(Qt.InvalidModuleSpecifier),e.finishLiteral(W())}function Tt(){var e,t,n,i=new z;return re("default")?(n=new z,W(),t=n.finishIdentifier("default")):t=Je(),ae("as")&&(W(),e=Le()),i.finishExportSpecifier(t,e)}function Nt(e){var t,n=null,i=null,r=[];if(dn.type===_t.Keyword)switch(dn.value){case"let":case"const":case"var":case"class":case"function":return n=$e(),e.finishExportNamedDeclaration(n,r,null)}if(ee("{"),!ie("}"))do t=t||re("default"),r.push(Tt());while(ie(",")&&W());return ee("}"),ae("from")?(W(),i=Lt(),oe()):t?X(dn.value?Qt.UnexpectedToken:Qt.MissingFromClause,dn.value):oe(),e.finishExportNamedDeclaration(n,r,i)}function Rt(e){var t=null,n=null;return ne("default"),re("function")?(t=kt(new z,!0),e.finishExportDefaultDeclaration(t)):re("class")?(t=At(!0),e.finishExportDefaultDeclaration(t)):(ae("from")&&X(Qt.UnexpectedToken,dn.value),n=ie("{")?Ee():ie("[")?de():ze(),oe(),e.finishExportDefaultDeclaration(n))}function Ft(e){var t;return ee("*"),ae("from")||X(dn.value?Qt.UnexpectedToken:Qt.MissingFromClause,dn.value),W(),t=Lt(),oe(),e.finishExportAllDeclaration(t)}function Ot(){var e=new z;return yn.inFunctionBody&&X(Qt.IllegalExportDeclaration),ne("export"),re("default")?Rt(e):ie("*")?Ft(e):Nt(e)}function Ut(){var e,t,n=new z;return t=Le(),ae("as")&&(W(),e=Je()),n.finishImportSpecifier(e,t)}function Bt(){var e=[];if(ee("{"),!ie("}"))do e.push(Ut());while(ie(",")&&W());return ee("}"),e}function Mt(){var e,t=new z;return e=Le(),t.finishImportDefaultSpecifier(e)}function jt(){var e,t=new z;return ee("*"),ae("as")||X(Qt.NoAsAfterImportNamespace),W(),e=Le(),t.finishImportNamespaceSpecifier(e)}function Wt(){var e,t,n=new z;return yn.inFunctionBody&&X(Qt.IllegalImportDeclaration),ne("import"),e=[],dn.type===_t.StringLiteral?(t=Lt(),oe(),n.finishImportDeclaration(e,t)):(!re("default")&&U(dn)&&(e.push(Mt()),ie(",")&&W()),ie("*")?e.push(jt()):ie("{")&&(e=e.concat(Bt())),ae("from")||X(dn.value?Qt.UnexpectedToken:Qt.MissingFromClause,dn.value),W(),t=Lt(),oe(),n.finishImportDeclaration(e,t))}function Kt(){for(var e,t,n,i,r=[];mn>cn&&(t=dn,t.type===_t.StringLiteral)&&(e=$e(),r.push(e),e.expression.type===Xt.Literal);)n=Zt.slice(t.start+1,t.end-1),"use strict"===n?(en=!0,i&&Z(i,Qt.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(;mn>cn&&(e=$e(),"undefined"!=typeof e);)r.push(e);return r}function Ht(){var e,t;return K(),t=new z,e=Kt(),t.finishProgram(e)}function Vt(){var e,t,n,i=[];for(e=0;e0?1:0,an=0,cn=nn,fn=rn,hn=an,mn=Zt.length,dn=null,yn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[]},gn={},t=t||{},t.tokens=!0,gn.tokens=[],gn.tokenize=!0,gn.openParenToken=-1,gn.openCurlyToken=-1,gn.range="boolean"==typeof t.range&&t.range,gn.loc="boolean"==typeof t.loc&&t.loc,"boolean"==typeof t.comment&&t.comment&&(gn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(gn.errors=[]);try{if(K(),dn.type===_t.EOF)return gn.tokens;for(W();dn.type!==_t.EOF;)try{W()}catch(r){if(gn.errors){$(r);break}throw r}Vt(),i=gn.tokens,"undefined"!=typeof gn.comments&&(i.comments=gn.comments),"undefined"!=typeof gn.errors&&(i.errors=gn.errors)}catch(a){throw a}finally{gn={}}return i}function zt(e,t){var n,i;i=String,"string"==typeof e||e instanceof String||(e=i(e)),Zt=e,nn=0,rn=Zt.length>0?1:0,an=0,cn=nn,fn=rn,hn=an,mn=Zt.length,dn=null,yn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[]},tn="script",en=!1,gn={},"undefined"!=typeof t&&(gn.range="boolean"==typeof t.range&&t.range,gn.loc="boolean"==typeof t.loc&&t.loc,gn.attachComment="boolean"==typeof t.attachComment&&t.attachComment,gn.loc&&null!==t.source&&void 0!==t.source&&(gn.source=i(t.source)),"boolean"==typeof t.tokens&&t.tokens&&(gn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(gn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(gn.errors=[]),gn.attachComment&&(gn.range=!0,gn.comments=[],gn.bottomRightStack=[],gn.trailingComments=[],gn.leadingComments=[]),"module"===t.sourceType&&(tn=t.sourceType,en=!0));try{n=Ht(),"undefined"!=typeof gn.comments&&(n.comments=gn.comments),"undefined"!=typeof gn.tokens&&(Vt(),n.tokens=gn.tokens),"undefined"!=typeof gn.errors&&(n.errors=gn.errors)}catch(r){throw r}finally{gn={}}return n}var _t,$t,Gt,Xt,Jt,Qt,Yt,Zt,en,tn,nn,rn,an,sn,on,ln,un,cn,fn,hn,pn,mn,dn,yn,gn,Sn,vn,xn;_t={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9,Template:10},$t={},$t[_t.BooleanLiteral]="Boolean",$t[_t.EOF]="",$t[_t.Identifier]="Identifier",$t[_t.Keyword]="Keyword",$t[_t.NullLiteral]="Null",$t[_t.NumericLiteral]="Numeric",$t[_t.Punctuator]="Punctuator",$t[_t.StringLiteral]="String",$t[_t.RegularExpression]="RegularExpression",$t[_t.Template]="Template",Gt=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],Xt={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},Jt={ArrowParameterPlaceHolder:"ArrowParameterPlaceHolder"},Qt={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",ObjectPatternAsRestParameter:"Unexpected token {",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token"},Yt={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},_.prototype=z.prototype={processComment:function(){var e,t,n,i,r,a=gn.bottomRightStack,s=a[a.length-1];if(!(this.type===Xt.Program&&this.body.length>0)){if(gn.trailingComments.length>0){for(n=[],i=gn.trailingComments.length-1;i>=0;--i)r=gn.trailingComments[i],r.range[0]>=this.range[1]&&(n.unshift(r),gn.trailingComments.splice(i,1));gn.trailingComments=[]}else s&&s.trailingComments&&s.trailingComments[0].range[0]>=this.range[1]&&(n=s.trailingComments,delete s.trailingComments);if(s)for(;s&&s.range[0]>=this.range[0];)e=s,s=a.pop();if(e)e.leadingComments&&e.leadingComments[e.leadingComments.length-1].range[1]<=this.range[0]&&(this.leadingComments=e.leadingComments,e.leadingComments=void 0);else if(gn.leadingComments.length>0)for(t=[],i=gn.leadingComments.length-1;i>=0;--i)r=gn.leadingComments[i],r.range[1]<=this.range[0]&&(t.unshift(r),gn.leadingComments.splice(i,1));t&&t.length>0&&(this.leadingComments=t),n&&n.length>0&&(this.trailingComments=n),a.push(this)}},finish:function(){gn.range&&(this.range[1]=on),gn.loc&&(this.loc.end={line:ln,column:on-un},gn.source&&(this.loc.source=gn.source)),gn.attachComment&&this.processComment()},finishArrayExpression:function(e){return this.type=Xt.ArrayExpression,this.elements=e,this.finish(),this},finishArrayPattern:function(e){return this.type=Xt.ArrayPattern,this.elements=e,this.finish(),this},finishArrowFunctionExpression:function(e,t,n,i){return this.type=Xt.ArrowFunctionExpression,this.id=null,this.params=e,this.defaults=t,this.body=n,this.generator=!1,this.expression=i,this.finish(),this},finishAssignmentExpression:function(e,t,n){return this.type=Xt.AssignmentExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishAssignmentPattern:function(e,t){return this.type=Xt.AssignmentPattern,this.left=e,this.right=t,this.finish(),this},finishBinaryExpression:function(e,t,n){return this.type="||"===e||"&&"===e?Xt.LogicalExpression:Xt.BinaryExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishBlockStatement:function(e){return this.type=Xt.BlockStatement,this.body=e,this.finish(),this},finishBreakStatement:function(e){return this.type=Xt.BreakStatement,this.label=e,this.finish(),this},finishCallExpression:function(e,t){return this.type=Xt.CallExpression,this.callee=e,this.arguments=t,this.finish(),this},finishCatchClause:function(e,t){return this.type=Xt.CatchClause,this.param=e,this.body=t,this.finish(),this},finishClassBody:function(e){return this.type=Xt.ClassBody,this.body=e,this.finish(),this},finishClassDeclaration:function(e,t,n){return this.type=Xt.ClassDeclaration,this.id=e,this.superClass=t,this.body=n,this.finish(),this},finishClassExpression:function(e,t,n){return this.type=Xt.ClassExpression,this.id=e,this.superClass=t,this.body=n,this.finish(),this},finishConditionalExpression:function(e,t,n){return this.type=Xt.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n,this.finish(),this},finishContinueStatement:function(e){return this.type=Xt.ContinueStatement,this.label=e,this.finish(),this},finishDebuggerStatement:function(){return this.type=Xt.DebuggerStatement,this.finish(),this},finishDoWhileStatement:function(e,t){return this.type=Xt.DoWhileStatement,this.body=e,this.test=t,this.finish(),this},finishEmptyStatement:function(){return this.type=Xt.EmptyStatement,this.finish(),this},finishExpressionStatement:function(e){return this.type=Xt.ExpressionStatement,this.expression=e,this.finish(),this},finishForStatement:function(e,t,n,i){return this.type=Xt.ForStatement,this.init=e,this.test=t,this.update=n,this.body=i,this.finish(),this},finishForInStatement:function(e,t,n){return this.type=Xt.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1,this.finish(),this},finishFunctionDeclaration:function(e,t,n,i){return this.type=Xt.FunctionDeclaration,this.id=e,this.params=t,this.defaults=n,this.body=i,this.generator=!1,this.expression=!1,this.finish(),this},finishFunctionExpression:function(e,t,n,i){return this.type=Xt.FunctionExpression,this.id=e,this.params=t,this.defaults=n,this.body=i,this.generator=!1,this.expression=!1,this.finish(),this},finishIdentifier:function(e){return this.type=Xt.Identifier,this.name=e,this.finish(),this},finishIfStatement:function(e,t,n){return this.type=Xt.IfStatement,this.test=e,this.consequent=t,this.alternate=n,this.finish(),this},finishLabeledStatement:function(e,t){return this.type=Xt.LabeledStatement,this.label=e,this.body=t,this.finish(),this},finishLiteral:function(e){return this.type=Xt.Literal,this.value=e.value,this.raw=Zt.slice(e.start,e.end),e.regex&&(this.regex=e.regex),this.finish(),this},finishMemberExpression:function(e,t,n){return this.type=Xt.MemberExpression,this.computed="["===e,this.object=t,this.property=n,this.finish(),this},finishNewExpression:function(e,t){return this.type=Xt.NewExpression,this.callee=e,this.arguments=t,this.finish(),this},finishObjectExpression:function(e){return this.type=Xt.ObjectExpression,this.properties=e,this.finish(),this},finishObjectPattern:function(e){return this.type=Xt.ObjectPattern,this.properties=e,this.finish(),this},finishPostfixExpression:function(e,t){return this.type=Xt.UpdateExpression,this.operator=e,this.argument=t,this.prefix=!1,this.finish(),this},finishProgram:function(e){return this.type=Xt.Program,this.body=e,"module"===tn&&(this.sourceType=tn),this.finish(),this},finishProperty:function(e,t,n,i,r,a){return this.type=Xt.Property,this.key=t,this.computed=n,this.value=i,this.kind=e,this.method=r,this.shorthand=a,this.finish(),this},finishRestElement:function(e){return this.type=Xt.RestElement,this.argument=e,this.finish(),this},finishReturnStatement:function(e){return this.type=Xt.ReturnStatement,this.argument=e,this.finish(),this},finishSequenceExpression:function(e){return this.type=Xt.SequenceExpression,this.expressions=e,this.finish(),this},finishSpreadElement:function(e){return this.type=Xt.SpreadElement,this.argument=e,this.finish(),this},finishSwitchCase:function(e,t){return this.type=Xt.SwitchCase,this.test=e,this.consequent=t,this.finish(),this},finishSuper:function(){return this.type=Xt.Super,this.finish(),this},finishSwitchStatement:function(e,t){return this.type=Xt.SwitchStatement,this.discriminant=e,this.cases=t,this.finish(),this},finishTaggedTemplateExpression:function(e,t){return this.type=Xt.TaggedTemplateExpression,this.tag=e,this.quasi=t,this.finish(),this},finishTemplateElement:function(e,t){return this.type=Xt.TemplateElement,this.value=e,this.tail=t,this.finish(),this},finishTemplateLiteral:function(e,t){return this.type=Xt.TemplateLiteral,this.quasis=e,this.expressions=t,this.finish(),this},finishThisExpression:function(){return this.type=Xt.ThisExpression,this.finish(),this},finishThrowStatement:function(e){return this.type=Xt.ThrowStatement,this.argument=e,this.finish(),this},finishTryStatement:function(e,t,n){return this.type=Xt.TryStatement,this.block=e,this.guardedHandlers=[],this.handlers=t?[t]:[],this.handler=t,this.finalizer=n,this.finish(),this},finishUnaryExpression:function(e,t){return this.type="++"===e||"--"===e?Xt.UpdateExpression:Xt.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0,this.finish(),this},finishVariableDeclaration:function(e){return this.type=Xt.VariableDeclaration,this.declarations=e,this.kind="var",this.finish(),this},finishLexicalDeclaration:function(e,t){return this.type=Xt.VariableDeclaration,this.declarations=e,this.kind=t,this.finish(),this},finishVariableDeclarator:function(e,t){return this.type=Xt.VariableDeclarator,this.id=e,this.init=t,this.finish(),this},finishWhileStatement:function(e,t){return this.type=Xt.WhileStatement,this.test=e,this.body=t,this.finish(),this},finishWithStatement:function(e,t){return this.type=Xt.WithStatement,this.object=e,this.body=t,this.finish(),this},finishExportSpecifier:function(e,t){return this.type=Xt.ExportSpecifier,this.exported=t||e,this.local=e,this.finish(),this},finishImportDefaultSpecifier:function(e){return this.type=Xt.ImportDefaultSpecifier,this.local=e,this.finish(),this},finishImportNamespaceSpecifier:function(e){return this.type=Xt.ImportNamespaceSpecifier,this.local=e,this.finish(),this},finishExportNamedDeclaration:function(e,t,n){return this.type=Xt.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n,this.finish(),this},finishExportDefaultDeclaration:function(e){return this.type=Xt.ExportDefaultDeclaration,this.declaration=e,this.finish(),this},finishExportAllDeclaration:function(e){return this.type=Xt.ExportAllDeclaration,this.source=e,this.finish(),this},finishImportSpecifier:function(e,t){return this.type=Xt.ImportSpecifier,this.local=e||t,this.imported=t,this.finish(),this},finishImportDeclaration:function(e,t){return this.type=Xt.ImportDeclaration,this.specifiers=e,this.source=t,this.finish(),this}},e.version="2.2.0",e.tokenize=qt,e.parse=zt,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in Xt)Xt.hasOwnProperty(e)&&(t[e]=Xt[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()}); -},{}],51:[function(require,module,exports){ +},{}],52:[function(require,module,exports){ "use strict";var _={cloneDeep:require("lodash-compat/lang/cloneDeep"),each:require("lodash-compat/collection/each"),indexOf:require("lodash-compat/array/indexOf"),isArray:require("lodash-compat/lang/isArray"),isFunction:require("lodash-compat/lang/isFunction"),isPlainObject:require("lodash-compat/lang/isPlainObject"),isString:require("lodash-compat/lang/isString"),isUndefined:require("lodash-compat/lang/isUndefined"),keys:require("lodash-compat/object/keys"),map:require("lodash-compat/collection/map")},async=require("async"),request=require("superagent"),traverse=require("traverse"),remoteCache={},supportedSchemes=["http","https"],getRemoteJson=function(e,r,t){var n,i,o=e.split("#")[0],s=remoteCache[o];_.isUndefined(s)?(i=request.get(e).set("user-agent","whitlockjc/json-refs"),_.isUndefined(r.prepareRequest)||r.prepareRequest(i,e),_.isFunction(i.buffer)&&i.buffer(!0),i.end(function(i,a){if(i)n=i;else if(a.error)n=a.error;else if(_.isUndefined(r.processContent))try{s=JSON.parse(a.text)}catch(u){n=u}else try{s=r.processContent(a.text,e,a)}catch(u){n=u}remoteCache[o]=s,t(n,s)})):t(n,s)};module.exports.clearCache=function(){remoteCache={}};var isJsonReference=module.exports.isJsonReference=function(e){return _.isPlainObject(e)&&_.isString(e.$ref)},pathToPointer=module.exports.pathToPointer=function(e){if(_.isUndefined(e))throw new Error("path is required");if(!_.isArray(e))throw new Error("path must be an array");var r="#";return e.length>0&&(r+="/"+_.map(e,function(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")),r},findRefs=module.exports.findRefs=function(e){if(_.isUndefined(e))throw new Error("json is required");if(!_.isPlainObject(e))throw new Error("json must be an object");return traverse(e).reduce(function(e){var r=this.node;return"$ref"===this.key&&isJsonReference(this.parent.node)&&(e[pathToPointer(this.path)]=r),e},{})},isRemotePointer=module.exports.isRemotePointer=function(e){if(_.isUndefined(e))throw new Error("ptr is required");if(!_.isString(e))throw new Error("ptr must be a string");return/^(([a-zA-Z0-9+.-]+):\/\/|\.{1,2}\/)/.test(e)},pathFromPointer=module.exports.pathFromPointer=function(e){if(_.isUndefined(e))throw new Error("ptr is required");if(!_.isString(e))throw new Error("ptr must be a string");var r=[];return isRemotePointer(e)?r=e:"#"===e.charAt(0)&&"#"!==e&&(r=_.map(e.substring(1).split("/"),function(e){return e.replace(/~0/g,"~").replace(/~1/g,"/")}),r.length>1&&r.shift()),r},resolveRefs=module.exports.resolveRefs=function e(r,t,n){if(arguments.length<3&&(n=arguments[1],t={}),_.isUndefined(r))throw new Error("json is required");if(!_.isPlainObject(r))throw new Error("json must be an object");if(!_.isPlainObject(t))throw new Error("options must be an object");if(_.isUndefined(n))throw new Error("done is required");if(!_.isFunction(n))throw new Error("done must be a function");if(!_.isUndefined(t.prepareRequest)&&!_.isFunction(t.prepareRequest))throw new Error("options.prepareRequest must be a function");if(!_.isUndefined(t.processContent)&&!_.isFunction(t.processContent))throw new Error("options.processContent must be a function");var i,o=findRefs(r),s=function(e){return e.map(function(){this.circular&&this.update(traverse(this.node).map(function(){this.circular&&this.parent.remove()}))})},a={};if(Object.keys(o).length>0){i=traverse(_.cloneDeep(r));var u=function(e,r,t,n){var i,o,s,u={ref:t},c=!1;t=-1===t.indexOf("#")?"#":t.substring(t.indexOf("#")),o=pathFromPointer(n),i=o.slice(0,o.length-1),0===i.length?(c=!_.isUndefined(r.value),s=r.value,e.value=s):(c=!r.has(pathFromPointer(t)),s=r.get(pathFromPointer(t)),e.set(i,s)),c||(u.value=s),a[n]=u},c={};_.each(o,function(e,r){isRemotePointer(e)?c[r]=e:u(i,i,e,r)}),async.map(_.keys(c),function(r,n){var o=c[r],s=o.split(":")[0];"."===o.charAt(0)||-1===_.indexOf(supportedSchemes,s)?n():getRemoteJson(o,t,function(s,a){s?n(s):e(a,t,function(e,t){delete c[r],e?n(e):(u(i,traverse(t),o,r),n())})})},function(e){e?n(e):n(void 0,s(i),a)})}else n(void 0,r,a)}; -},{"async":52,"lodash-compat/array/indexOf":132,"lodash-compat/collection/each":134,"lodash-compat/collection/map":136,"lodash-compat/lang/cloneDeep":189,"lodash-compat/lang/isArray":191,"lodash-compat/lang/isFunction":192,"lodash-compat/lang/isPlainObject":195,"lodash-compat/lang/isString":196,"lodash-compat/lang/isUndefined":198,"lodash-compat/object/keys":199,"superagent":53,"traverse":56}],52:[function(require,module,exports){ +},{"async":53,"lodash-compat/array/indexOf":133,"lodash-compat/collection/each":135,"lodash-compat/collection/map":137,"lodash-compat/lang/cloneDeep":190,"lodash-compat/lang/isArray":192,"lodash-compat/lang/isFunction":193,"lodash-compat/lang/isPlainObject":196,"lodash-compat/lang/isString":197,"lodash-compat/lang/isUndefined":199,"lodash-compat/object/keys":200,"superagent":54,"traverse":57}],53:[function(require,module,exports){ (function (process){ !function(){function n(n){var e=!1;return function(){if(e)throw new Error("Callback was already called.");e=!0,n.apply(t,arguments)}}var t,e,r={};t=this,null!=t&&(e=t.async),r.noConflict=function(){return t.async=e,r};var u=Object.prototype.toString,i=Array.isArray||function(n){return"[object Array]"===u.call(n)},c=function(n,t){if(n.forEach)return n.forEach(t);for(var e=0;e=t.length&&r())}if(r=r||function(){},!t.length)return r();var i=0;c(t,function(t){e(t,n(u))})},r.forEach=r.each,r.eachSeries=function(n,t,e){if(e=e||function(){},!n.length)return e();var r=0,u=function(){t(n[r],function(t){t?(e(t),e=function(){}):(r+=1,r>=n.length?e():u())})};u()},r.forEachSeries=r.eachSeries,r.eachLimit=function(n,t,e,r){var u=f(t);u.apply(null,[n,e,r])},r.forEachLimit=r.eachLimit;var f=function(n){return function(t,e,r){if(r=r||function(){},!t.length||0>=n)return r();var u=0,i=0,c=0;!function a(){if(u>=t.length)return r();for(;n>c&&i=t.length?r():a())})}()}},s=function(n){return function(){var t=Array.prototype.slice.call(arguments);return n.apply(null,[r.each].concat(t))}},p=function(n,t){return function(){var e=Array.prototype.slice.call(arguments);return t.apply(null,[f(n)].concat(e))}},d=function(n){return function(){var t=Array.prototype.slice.call(arguments);return n.apply(null,[r.eachSeries].concat(t))}},y=function(n,t,e,r){if(t=a(t,function(n,t){return{index:t,value:n}}),r){var u=[];n(t,function(n,t){e(n.value,function(e,r){u[n.index]=r,t(e)})},function(n){r(n,u)})}else n(t,function(n,t){e(n.value,function(n){t(n)})})};r.map=s(y),r.mapSeries=d(y),r.mapLimit=function(n,t,e,r){return m(t)(n,e,r)};var m=function(n){return p(n,y)};r.reduce=function(n,t,e,u){r.eachSeries(n,function(n,r){e(t,n,function(n,e){t=e,r(n)})},function(n){u(n,t)})},r.inject=r.reduce,r.foldl=r.reduce,r.reduceRight=function(n,t,e,u){var i=a(n,function(n){return n}).reverse();r.reduce(i,t,e,u)},r.foldr=r.reduceRight;var v=function(n,t,e,r){var u=[];t=a(t,function(n,t){return{index:t,value:n}}),n(t,function(n,t){e(n.value,function(e){e&&u.push(n),t()})},function(n){r(a(u.sort(function(n,t){return n.index-t.index}),function(n){return n.value}))})};r.filter=s(v),r.filterSeries=d(v),r.select=r.filter,r.selectSeries=r.filterSeries;var h=function(n,t,e,r){var u=[];t=a(t,function(n,t){return{index:t,value:n}}),n(t,function(n,t){e(n.value,function(e){e||u.push(n),t()})},function(n){r(a(u.sort(function(n,t){return n.index-t.index}),function(n){return n.value}))})};r.reject=s(h),r.rejectSeries=d(h);var g=function(n,t,e,r){n(t,function(n,t){e(n,function(e){e?(r(n),r=function(){}):t()})},function(n){r()})};r.detect=s(g),r.detectSeries=d(g),r.some=function(n,t,e){r.each(n,function(n,r){t(n,function(n){n&&(e(!0),e=function(){}),r()})},function(n){e(!1)})},r.any=r.some,r.every=function(n,t,e){r.each(n,function(n,r){t(n,function(n){n||(e(!1),e=function(){}),r()})},function(n){e(!0)})},r.all=r.every,r.sortBy=function(n,t,e){r.map(n,function(n,e){t(n,function(t,r){t?e(t):e(null,{value:n,criteria:r})})},function(n,t){if(n)return e(n);var r=function(n,t){var e=n.criteria,r=t.criteria;return r>e?-1:e>r?1:0};e(null,a(t.sort(r),function(n){return n.value}))})},r.auto=function(n,t){t=t||function(){};var e=l(n),u=e.length;if(!u)return t();var a={},f=[],s=function(n){f.unshift(n)},p=function(n){for(var t=0;tr;){var i=r+(u-r+1>>>1);e(t,n[i])>=0?r=i:u=i-1}return r}function a(n,t,a,o){return n.started||(n.started=!0),i(t)||(t=[t]),0==t.length?r.setImmediate(function(){n.drain&&n.drain()}):void c(t,function(t){var i={data:t,priority:a,callback:"function"==typeof o?o:null};n.tasks.splice(u(n.tasks,i,e)+1,0,i),n.saturated&&n.tasks.length===n.concurrency&&n.saturated(),r.setImmediate(n.process)})}var o=r.queue(n,t);return o.push=function(n,t,e){a(o,n,t,e)},delete o.unshift,o},r.cargo=function(n,t){var e=!1,u=[],o={tasks:u,payload:t,saturated:null,empty:null,drain:null,drained:!0,push:function(n,e){i(n)||(n=[n]),c(n,function(n){u.push({data:n,callback:"function"==typeof e?e:null}),o.drained=!1,o.saturated&&u.length===t&&o.saturated()}),r.setImmediate(o.process)},process:function l(){if(!e){if(0===u.length)return o.drain&&!o.drained&&o.drain(),void(o.drained=!0);var r="number"==typeof t?u.splice(0,t):u.splice(0,u.length),i=a(r,function(n){return n.data});o.empty&&o.empty(),e=!0,n(i,function(){e=!1;var n=arguments;c(r,function(t){t.callback&&t.callback.apply(null,n)}),l()})}},length:function(){return u.length},running:function(){return e}};return o};var x=function(n){return function(t){var e=Array.prototype.slice.call(arguments,1);t.apply(null,e.concat([function(t){var e=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(t?console.error&&console.error(t):console[n]&&c(e,function(t){console[n](t)}))}]))}};r.log=x("log"),r.dir=x("dir"),r.memoize=function(n,t){var e={},u={};t=t||function(n){return n};var i=function(){var i=Array.prototype.slice.call(arguments),c=i.pop(),a=t.apply(null,i);a in e?r.nextTick(function(){c.apply(null,e[a])}):a in u?u[a].push(c):(u[a]=[c],n.apply(null,i.concat([function(){e[a]=arguments;var n=u[a];delete u[a];for(var t=0,r=n.length;r>t;t++)n[t].apply(null,arguments)}])))};return i.memo=e,i.unmemoized=n,i},r.unmemoize=function(n){return function(){return(n.unmemoized||n).apply(null,arguments)}},r.times=function(n,t,e){for(var u=[],i=0;n>i;i++)u.push(i);return r.map(u,t,e)},r.timesSeries=function(n,t,e){for(var u=[],i=0;n>i;i++)u.push(i);return r.mapSeries(u,t,e)},r.seq=function(){var n=arguments;return function(){var t=this,e=Array.prototype.slice.call(arguments),u=e.pop();r.reduce(n,e,function(n,e,r){e.apply(t,n.concat([function(){var n=arguments[0],t=Array.prototype.slice.call(arguments,1);r(n,t)}]))},function(n,e){u.apply(t,[n].concat(e))})}},r.compose=function(){return r.seq.apply(null,Array.prototype.reverse.call(arguments))};var S=function(n,t){var e=function(){var e=this,r=Array.prototype.slice.call(arguments),u=r.pop();return n(t,function(n,t){n.apply(e,r.concat([t]))},u)};if(arguments.length>2){var r=Array.prototype.slice.call(arguments,2);return e.apply(this,r)}return e};r.applyEach=s(S),r.applyEachSeries=d(S),r.forever=function(n,t){function e(r){if(r){if(t)return t(r);throw r}n(e)}e()},"undefined"!=typeof module&&module.exports?module.exports=r:"undefined"!=typeof define&&define.amd?define([],function(){return r}):t.async=r}(); }).call(this,require('_process')) -},{"_process":15}],53:[function(require,module,exports){ +},{"_process":16}],54:[function(require,module,exports){ function noop(){}function isHost(t){var e={}.toString.call(t);switch(e){case"[object File]":case"[object Blob]":case"[object FormData]":return!0;default:return!1}}function getXHR(){if(root.XMLHttpRequest&&("file:"!=root.location.protocol||!root.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(t){}return!1}function isObject(t){return t===Object(t)}function serialize(t){if(!isObject(t))return t;var e=[];for(var r in t)null!=t[r]&&e.push(encodeURIComponent(r)+"="+encodeURIComponent(t[r]));return e.join("&")}function parseString(t){for(var e,r,s={},i=t.split("&"),o=0,n=i.length;n>o;++o)r=i[o],e=r.split("="),s[decodeURIComponent(e[0])]=decodeURIComponent(e[1]);return s}function parseHeader(t){var e,r,s,i,o=t.split(/\r?\n/),n={};o.pop();for(var u=0,a=o.length;a>u;++u)r=o[u],e=r.indexOf(":"),s=r.slice(0,e).toLowerCase(),i=trim(r.slice(e+1)),n[s]=i;return n}function type(t){return t.split(/ *; */).shift()}function params(t){return reduce(t.split(/ *; */),function(t,e){var r=e.split(/ *= */),s=r.shift(),i=r.shift();return s&&i&&(t[s]=i),t},{})}function Response(t,e){e=e||{},this.req=t,this.xhr=this.req.xhr,this.text="HEAD"!=this.req.method?this.xhr.responseText:null,this.setStatusProperties(this.xhr.status),this.header=this.headers=parseHeader(this.xhr.getAllResponseHeaders()),this.header["content-type"]=this.xhr.getResponseHeader("content-type"),this.setHeaderProperties(this.header),this.body="HEAD"!=this.req.method?this.parseBody(this.text):null}function Request(t,e){var r=this;Emitter.call(this),this._query=this._query||[],this.method=t,this.url=e,this.header={},this._header={},this.on("end",function(){var t=null,e=null;try{e=new Response(r)}catch(s){t=new Error("Parser is unable to parse the response"),t.parse=!0,t.original=s}r.callback(t,e)})}function request(t,e){return"function"==typeof e?new Request("GET",t).end(e):1==arguments.length?new Request("GET",t):new Request(t,e)}var Emitter=require("emitter"),reduce=require("reduce"),root="undefined"==typeof window?this:window,trim="".trim?function(t){return t.trim()}:function(t){return t.replace(/(^\s*|\s*$)/g,"")};request.serializeObject=serialize,request.parseString=parseString,request.types={html:"text/html",json:"application/json",xml:"application/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},request.serialize={"application/x-www-form-urlencoded":serialize,"application/json":JSON.stringify},request.parse={"application/x-www-form-urlencoded":parseString,"application/json":JSON.parse},Response.prototype.get=function(t){return this.header[t.toLowerCase()]},Response.prototype.setHeaderProperties=function(t){var e=this.header["content-type"]||"";this.type=type(e);var r=params(e);for(var s in r)this[s]=r[s]},Response.prototype.parseBody=function(t){var e=request.parse[this.type];return e&&t&&t.length?e(t):null},Response.prototype.setStatusProperties=function(t){var e=t/100|0;this.status=t,this.statusType=e,this.info=1==e,this.ok=2==e,this.clientError=4==e,this.serverError=5==e,this.error=4==e||5==e?this.toError():!1,this.accepted=202==t,this.noContent=204==t||1223==t,this.badRequest=400==t,this.unauthorized=401==t,this.notAcceptable=406==t,this.notFound=404==t,this.forbidden=403==t},Response.prototype.toError=function(){var t=this.req,e=t.method,r=t.url,s="cannot "+e+" "+r+" ("+this.status+")",i=new Error(s);return i.status=this.status,i.method=e,i.url=r,i},request.Response=Response,Emitter(Request.prototype),Request.prototype.use=function(t){return t(this),this},Request.prototype.timeout=function(t){return this._timeout=t,this},Request.prototype.clearTimeout=function(){return this._timeout=0,clearTimeout(this._timer),this},Request.prototype.abort=function(){return this.aborted?void 0:(this.aborted=!0,this.xhr.abort(),this.clearTimeout(),this.emit("abort"),this)},Request.prototype.set=function(t,e){if(isObject(t)){for(var r in t)this.set(r,t[r]);return this}return this._header[t.toLowerCase()]=e,this.header[t]=e,this},Request.prototype.unset=function(t){return delete this._header[t.toLowerCase()],delete this.header[t],this},Request.prototype.getHeader=function(t){return this._header[t.toLowerCase()]},Request.prototype.type=function(t){return this.set("Content-Type",request.types[t]||t),this},Request.prototype.accept=function(t){return this.set("Accept",request.types[t]||t),this},Request.prototype.auth=function(t,e){var r=btoa(t+":"+e);return this.set("Authorization","Basic "+r),this},Request.prototype.query=function(t){return"string"!=typeof t&&(t=serialize(t)),t&&this._query.push(t),this},Request.prototype.field=function(t,e){return this._formData||(this._formData=new FormData),this._formData.append(t,e),this},Request.prototype.attach=function(t,e,r){return this._formData||(this._formData=new FormData),this._formData.append(t,e,r),this},Request.prototype.send=function(t){var e=isObject(t),r=this.getHeader("Content-Type");if(e&&isObject(this._data))for(var s in t)this._data[s]=t[s];else"string"==typeof t?(r||this.type("form"),r=this.getHeader("Content-Type"),"application/x-www-form-urlencoded"==r?this._data=this._data?this._data+"&"+t:t:this._data=(this._data||"")+t):this._data=t;return e?(r||this.type("json"),this):this},Request.prototype.callback=function(t,e){var r=this._callback;return this.clearTimeout(),2==r.length?r(t,e):t?this.emit("error",t):void r(e)},Request.prototype.crossDomainError=function(){var t=new Error("Origin is not allowed by Access-Control-Allow-Origin");t.crossDomain=!0,this.callback(t)},Request.prototype.timeoutError=function(){var t=this._timeout,e=new Error("timeout of "+t+"ms exceeded");e.timeout=t,this.callback(e)},Request.prototype.withCredentials=function(){return this._withCredentials=!0,this},Request.prototype.end=function(t){var e=this,r=this.xhr=getXHR(),s=this._query.join("&"),i=this._timeout,o=this._formData||this._data;if(this._callback=t||noop,r.onreadystatechange=function(){return 4==r.readyState?0==r.status?e.aborted?e.timeoutError():e.crossDomainError():void e.emit("end"):void 0},r.upload&&(r.upload.onprogress=function(t){t.percent=t.loaded/t.total*100,e.emit("progress",t)}),i&&!this._timer&&(this._timer=setTimeout(function(){e.abort()},i)),s&&(s=request.serializeObject(s),this.url+=~this.url.indexOf("?")?"&"+s:"?"+s),r.open(this.method,this.url,!0),this._withCredentials&&(r.withCredentials=!0),"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof o&&!isHost(o)){var n=request.serialize[this.getHeader("Content-Type")];n&&(o=n(o))}for(var u in this.header)null!=this.header[u]&&r.setRequestHeader(u,this.header[u]);return this.emit("request",this),r.send(o),this},request.Request=Request,request.get=function(t,e,r){var s=request("GET",t);return"function"==typeof e&&(r=e,e=null),e&&s.query(e),r&&s.end(r),s},request.head=function(t,e,r){var s=request("HEAD",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},request.del=function(t,e){var r=request("DELETE",t);return e&&r.end(e),r},request.patch=function(t,e,r){var s=request("PATCH",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},request.post=function(t,e,r){var s=request("POST",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},request.put=function(t,e,r){var s=request("PUT",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},module.exports=request; -},{"emitter":54,"reduce":55}],54:[function(require,module,exports){ +},{"emitter":55,"reduce":56}],55:[function(require,module,exports){ function Emitter(t){return t?mixin(t):void 0}function mixin(t){for(var e in Emitter.prototype)t[e]=Emitter.prototype[e];return t}module.exports=Emitter,Emitter.prototype.on=Emitter.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},Emitter.prototype.once=function(t,e){function i(){r.off(t,i),e.apply(this,arguments)}var r=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var r,s=0;sr;++r)i[r].apply(this,e)}return this},Emitter.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},Emitter.prototype.hasListeners=function(t){return!!this.listeners(t).length}; -},{}],55:[function(require,module,exports){ +},{}],56:[function(require,module,exports){ module.exports=function(l,n,e){for(var r=0,t=l.length,u=3==arguments.length?e:l[r++];t>r;)u=n.call(null,u,l[r],++r,l);return u}; -},{}],56:[function(require,module,exports){ +},{}],57:[function(require,module,exports){ function Traverse(e){this.value=e}function walk(e,t,r){var o=[],n=[],a=!0;return function i(e){function c(){if("object"==typeof l.node&&null!==l.node){l.keys&&l.node_===l.node||(l.keys=objectKeys(l.node)),l.isLeaf=0==l.keys.length;for(var t=0;ta;a+=1)t.push(traverse(r.items||s,e.concat(["items",a])));return r.uniqueItems?unique(e.concat(["items"]),t,r,s):t}; -},{"../util/error":67,"../util/has-props":69,"../util/random":72,"../util/traverse":73}],59:[function(require,module,exports){ +},{"../util/error":68,"../util/has-props":70,"../util/random":73,"../util/traverse":74}],60:[function(require,module,exports){ "use strict";module.exports=function(){return Math.random()>.5}; -},{}],60:[function(require,module,exports){ +},{}],61:[function(require,module,exports){ "use strict";var number=require("./number");module.exports=function(r){return r.hasPrecision=!1,Math.floor(number(r))}; -},{"./number":62}],61:[function(require,module,exports){ +},{"./number":63}],62:[function(require,module,exports){ "use strict";module.exports=function(){return null}; -},{}],62:[function(require,module,exports){ +},{}],63:[function(require,module,exports){ "use strict";var MIN_INTEGER=-1e8,MAX_INTEGER=1e8,string=require("./string"),random=require("../util/random");module.exports=function(m){if(m.faker||m.chance)return string(m);var i="undefined"==typeof m.minimum?MIN_INTEGER:m.minimum,e="undefined"==typeof m.maximum?MAX_INTEGER:m.maximum;if(m.exclusiveMinimum&&m.minimum&&(i+=1),m.exclusiveMaximum&&m.maximum&&(e-=1),m.multipleOf){for(var r=random(Math.floor(i/m.multipleOf),Math.floor(e/m.multipleOf))*m.multipleOf;i>r;)r+=m.multipleOf;return r}return m.hasPrecision?random(!1,i,e):random(Math.random()>.5,i,e)}; -},{"../util/random":72,"./string":64}],63:[function(require,module,exports){ +},{"../util/random":73,"./string":65}],64:[function(require,module,exports){ "use strict";var container=require("../util/container"),random=require("../util/random"),traverse=require("../util/traverse"),hasProps=require("../util/has-props"),faker=container.get("faker"),RandExp=container.get("randexp"),randexp=RandExp.randexp,ParseError=require("../util/error");module.exports=function(r,e){var t={};if(!(r.properties||r.patternProperties||r.additionalProperties)){if(hasProps(r,"minProperties","maxProperties","dependencies","required"))throw new ParseError("missing properties for "+JSON.stringify(r),e);return t}var i=r.required||[],o=r.properties?Object.keys(r.properties):[];i.forEach(function(e){r.properties&&r.properties[e]&&(t[e]=r.properties[e])});var p=o.filter(function(r){return-1===i.indexOf(r)});r.patternProperties&&(p=Array.prototype.concat.apply(p,Object.keys(r.patternProperties)));var a=random(r.minProperties,r.maxProperties,0,p.length);random.shuffle(p).slice(0,a).forEach(function(e){r.properties&&r.properties[e]?t[e]=r.properties[e]:t[randexp(e)]=r.patternProperties[e]});var n=Object.keys(t).length,s="object"==typeof r.additionalProperties?r.additionalProperties:{};return a>n&&faker.lorem.words(a-n).forEach(function(r){t[r+randexp("\\w{1,10}")]=s}),traverse(t,e.concat(["properties"]))}; -},{"../util/container":66,"../util/error":67,"../util/has-props":69,"../util/random":72,"../util/traverse":73}],64:[function(require,module,exports){ +},{"../util/container":67,"../util/error":68,"../util/has-props":70,"../util/random":73,"../util/traverse":74}],65:[function(require,module,exports){ "use strict";function get(e,r){for(var n=r.split(".");n.length;){var a=n.shift();if(!e[a])break;e=e[a]}return e}function generate(e){if(e.use){var r=[],n=e.key;"object"==typeof n&&(n=Object.keys(n)[0],Array.isArray(e.key[n])?r=e.key[n]:r.push(e.key[n]));var a=get(e.gen,n);if("function"!=typeof a)throw new Error("unknown "+e.use+"-generator for "+JSON.stringify(e.key));return a.apply(e.gen,r)}switch(e.format){case"date-time":return new Date(random(0,1e14)).toISOString();case"email":case"hostname":case"ipv6":case"uri":return randexp(regexps[e.format]).replace(/\{(\w+)\}/,function(e,r){return randexp(regexps[r])});case"ipv4":return[0,0,0,0].map(function(){return random(0,255)}).join(".");default:var t=formats(e.format);if("function"!=typeof t)throw new Error("unknown generator for "+JSON.stringify(e.format));var o={faker:faker,chance:chance,randexp:randexp};return t(o,e)}}var container=require("../util/container"),faker=container.get("faker"),Chance=container.get("chance"),RandExp=container.get("randexp"),chance=new Chance,randexp=RandExp.randexp,random=require("../util/random"),formats=require("../util/formats"),regexps={email:"[a-zA-Z\\d][a-zA-Z\\d-]{1,13}[a-zA-Z\\d]@{hostname}",hostname:"[a-zA-Z]{1,33}\\.[a-z]{2,4}",ipv6:"[abcdef\\d]{4}(:[abcdef\\d]{4}){7}",uri:"[a-zA-Z\\d_][\\w\\/\\d_-]{1,40}"};module.exports=function(e){if(e.faker||e.chance)return generate({use:e.faker?"faker":"chance",gen:e.faker?faker:chance,key:e.faker||e.chance});if(e.format)return generate(e);if(e.pattern)return randexp(e.pattern);if(e.minLength||e.maxLength){var r=Math.max(0,e.minLength||0),n=random(r,e.maxLength);return randexp(".{"+r+","+n+"}")}return faker.lorem.words(random(1,5)).join(" ")}; -},{"../util/container":66,"../util/formats":68,"../util/random":72}],65:[function(require,module,exports){ +},{"../util/container":67,"../util/formats":69,"../util/random":73}],66:[function(require,module,exports){ "use strict";function combine(o){var r=Array.prototype.slice.call(arguments,1);r.forEach(function(r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(o[t]=r[t])})}module.exports=combine; -},{}],66:[function(require,module,exports){ +},{}],67:[function(require,module,exports){ "use strict";var container={faker:require("faker"),chance:require("chance"),randexp:require("randexp")};module.exports={set:function(e,n){if("undefined"==typeof container[e])throw new ReferenceError('"'+e+"\" dependency doesn't exist.");container[e]=n(container[e])},get:function(e){return container[e]}}; -},{"chance":74,"faker":81,"randexp":125}],67:[function(require,module,exports){ +},{"chance":75,"faker":82,"randexp":126}],68:[function(require,module,exports){ "use strict";function ParseError(r,e){this.message=r,this.path=e,this.name="ParseError"}ParseError.prototype=Error.prototype,module.exports=ParseError; -},{}],68:[function(require,module,exports){ +},{}],69:[function(require,module,exports){ "use strict";var registry={};module.exports=function(r,e){if(e)registry[r]=e;else if("object"==typeof r)for(var t in r)registry[t]=r[t];else if(r)return registry[r];return registry}; -},{}],69:[function(require,module,exports){ +},{}],70:[function(require,module,exports){ "use strict";module.exports=function(e){return Array.prototype.slice.call(arguments,1).filter(function(t){return"undefined"!=typeof e[t]}).length>0}; -},{}],70:[function(require,module,exports){ +},{}],71:[function(require,module,exports){ "use strict";function mayHaveType(e,r){return Object.keys(e).filter(function(e){return r.indexOf(e)>-1}).length>0}var inferredProperties={array:["additionalItems","items","maxItems","minItems","uniqueItems"],integer:["exclusiveMaximum","exclusiveMinimum","maximum","minimum","multipleOf"],object:["additionalProperties","dependencies","maxProperties","minProperties","patternProperties","properties","required"],string:["maxLength","menlength","pattern"]};inferredProperties.number=inferredProperties.integer,module.exports=function(e){for(var r in inferredProperties)if(mayHaveType(e,inferredProperties[r]))return r}; -},{}],71:[function(require,module,exports){ +},{}],72:[function(require,module,exports){ "use strict";module.exports={array:require("../types/array"),"boolean":require("../types/boolean"),integer:require("../types/integer"),number:require("../types/number"),"null":require("../types/null"),object:require("../types/object"),string:require("../types/string")}; -},{"../types/array":58,"../types/boolean":59,"../types/integer":60,"../types/null":61,"../types/number":62,"../types/object":63,"../types/string":64}],72:[function(require,module,exports){ +},{"../types/array":59,"../types/boolean":60,"../types/integer":61,"../types/null":62,"../types/number":63,"../types/object":64,"../types/string":65}],73:[function(require,module,exports){ "use strict";var container=require("./container"),faker=container.get("faker"),random=module.exports=function(n,r,e,a){var o=!0;return"boolean"==typeof n&&(o=n,n=arguments[1],r=arguments[2],e=arguments[3],a=arguments[4]),e="undefined"==typeof e?random.MIN_NUMBER:e,a="undefined"==typeof a?random.MAX_NUMBER:a,n="undefined"==typeof n?e:n,r="undefined"==typeof r?a:r,n>r&&(r+=n),faker.random.number({min:n,max:Math.max(r,n+1),precision:o?1:Math.random()})};random.shuffle=function(n){for(var r=n.slice(),e=n.length;e>0;){var a=Math.floor(Math.random()*e),o=r[--e];r[e]=r[a],r[a]=o}return r},random.pick=function(n){return n[Math.floor(Math.random()*n.length)]},random.MIN_NUMBER=-100,random.MAX_NUMBER=100; -},{"./container":66}],73:[function(require,module,exports){ +},{"./container":67}],74:[function(require,module,exports){ "use strict";function reduce(r){var e=r.allOf||r.anyOf||r.oneOf;if(e&&e.length){(r.oneOf||r.anyOf)&&e.length&&(e=[random.pick(e)]),delete r.allOf,delete r.anyOf,delete r.oneOf;var n={};for(e.forEach(function(r){combine(n,r)}),combine(r,n);r.allOf||r.anyOf||r.oneOf;)reduce(r)}else for(var i in r){var a=r[i];"object"==typeof a&&"enum"!==i&&"required"!==i&&reduce(a)}}function traverse(r,e){var n=require("./primitives"),i={};if(Array.isArray(r)&&(i=[]),e=e||[],reduce(r),Array.isArray(r["enum"]))return random.pick(r["enum"]);var a=r.type;if(Array.isArray(a)?a=random.pick(a):"undefined"==typeof a&&(a=inferredType(r)||a),"string"==typeof a){if(!n[a])throw new ParseError("unknown primitive "+JSON.stringify(a),e.concat(["type"]));try{return n[a](r,e)}catch(o){if("undefined"==typeof o.path)throw new ParseError(o.message,e);throw o}}for(var t in r){var f=r[t];"object"==typeof f?i[t]=traverse(f,e.concat([t])):i[t]=f}return i}var random=require("./random"),combine=require("./combine"),ParseError=require("./error"),inferredType=require("./inferred");module.exports=traverse; -},{"./combine":65,"./error":67,"./inferred":70,"./primitives":71,"./random":72}],74:[function(require,module,exports){ +},{"./combine":66,"./error":68,"./inferred":71,"./primitives":72,"./random":73}],75:[function(require,module,exports){ (function (Buffer){ !function(){function a(e){if(!(this instanceof a))return null==e?new a:new a(e);if("function"==typeof e)return this.random=e,this;var n;arguments.length&&(this.seed=0);for(var i=0;it;t++)n=i[t],e[n]=a[n]||e[n]}function r(a,e){for(var n=0,i=a.length;i>n;n++)e[n]=a[n]}function o(a,e){var n=Array.isArray(a),i=e||(n?new Array(a.length):{});return n?r(a,i):t(a,i),i}var s=9007199254740992,m=-s,l="0123456789",h="abcdefghijklmnopqrstuvwxyz",b=h.toUpperCase(),c=l+"abcdef",u=Array.prototype.slice;a.prototype.VERSION="0.7.5";var d=function(){throw new Error("No Base64 encoder available.")};!function(){"function"==typeof btoa?d=btoa:"function"==typeof Buffer&&(d=function(a){return new Buffer(a).toString("base64")})}(),a.prototype.bool=function(a){return a=e(a,{likelihood:50}),n(a.likelihood<0||a.likelihood>100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()r,"Chance: Max specified is out of range with fixed. Max should be, at most, "+r),a=e(a,{min:o,max:r}),i=this.integer({min:a.min*t,max:a.max*t});var m=(i/t).toFixed(a.fixed);return parseFloat(m)},a.prototype.integer=function(a){return a=e(a,{min:m,max:s}),n(a.min>a.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(a.max-a.min+1)+a.min)},a.prototype.natural=function(a){return a=e(a,{min:0,max:s}),n(a.min<0,"Chance: Min cannot be less than zero."),this.integer(a)},a.prototype.string=function(a){a=e(a,{length:this.natural({min:5,max:20})}),n(a.length<0,"Chance: Length cannot be less than zero.");var i=a.length,t=this.n(this.character,i,a);return t.join("")},a.prototype.capitalize=function(a){return a.charAt(0).toUpperCase()+a.substr(1)},a.prototype.mixin=function(e){for(var n in e)a.prototype[n]=e[n];return this},a.prototype.unique=function(a,i,t){n("function"!=typeof a,"Chance: The first argument must be a function."),t=e(t,{comparator:function(a,e){return-1!==a.indexOf(e)}});for(var r,o=[],s=0,m=50*i,l=u.call(arguments,2);o.lengthm)throw new RangeError("Chance: num is likely too large for sample set");return o},a.prototype.n=function(a,e){n("function"!=typeof a,"Chance: The first argument must be a function."),"undefined"==typeof e&&(e=1);var i=e,t=[],r=u.call(arguments,2);for(i=Math.max(0,i),null;i--;null)t.push(a.apply(this,r));return t},a.prototype.pad=function(a,e,n){return n=n||"0",a+="",a.length>=e?a:new Array(e-a.length+1).join(n)+a},a.prototype.pick=function(a,e){if(0===a.length)throw new RangeError("Chance: Cannot pick() from an empty array");return e&&1!==e?this.shuffle(a).slice(0,e):a[this.natural({max:a.length-1})]},a.prototype.shuffle=function(a){for(var e=a.slice(0),n=[],i=0,t=Number(e.length),r=0;t>r;r++)i=this.natural({max:e.length-1}),n[r]=e[i],e.splice(i,1);return n},a.prototype.weighted=function(a,e){if(a.length!==e.length)throw new RangeError("Chance: length of array and weights must match");for(var n=e.length-1;n>=0;--n)e[n]<=0&&(a.splice(n,1),e.splice(n,1));if(e.some(function(a){return 1>a})){var i=e.reduce(function(a,e){return a>e?e:a},e[0]),t=1/i;e=e.map(function(a){return a*t})}var r,o=e.reduce(function(a,e){return a+e},0),s=this.natural({min:1,max:o}),m=0;return e.some(function(e,n){return m+e>=s?(r=a[n],!0):(m+=e,!1)}),r},a.prototype.paragraph=function(a){a=e(a);var n=a.sentences||this.natural({min:3,max:7}),i=this.n(this.sentence,n);return i.join(" ")},a.prototype.sentence=function(a){a=e(a);var n,i=a.words||this.natural({min:12,max:18}),t=this.n(this.word,i);return n=t.join(" "),n=this.capitalize(n)+"."},a.prototype.syllable=function(a){a=e(a);for(var n,i=a.length||this.natural({min:2,max:3}),t="bcdfghjklmnprstvwz",r="aeiou",o=t+r,s="",m=0;i>m;m++)n=this.character(0===m?{pool:o}:-1===t.indexOf(n)?{pool:t}:{pool:r}),s+=n;return s},a.prototype.word=function(a){a=e(a),n(a.syllables&&a.length,"Chance: Cannot specify both syllables AND length.");var i=a.syllables||this.natural({min:1,max:3}),t="";if(a.length){do t+=this.syllable();while(t.lengthr;r++)t+=this.syllable();return t},a.prototype.age=function(a){a=e(a);var n;switch(a.type){case"child":n={min:1,max:12};break;case"teen":n={min:13,max:19};break;case"adult":n={min:18,max:65};break;case"senior":n={min:65,max:100};break;case"all":n={min:1,max:100};break;default:n={min:18,max:65}}return this.natural(n)},a.prototype.birthday=function(a){return a=e(a,{year:(new Date).getFullYear()-this.age(a)}),this.date(a)},a.prototype.cpf=function(){var a=this.n(this.natural,9,{max:9}),e=2*a[8]+3*a[7]+4*a[6]+5*a[5]+6*a[4]+7*a[3]+8*a[2]+9*a[1]+10*a[0];e=11-e%11,e>=10&&(e=0);var n=2*e+3*a[8]+4*a[7]+5*a[6]+6*a[5]+7*a[4]+8*a[3]+9*a[2]+10*a[1]+11*a[0];return n=11-n%11,n>=10&&(n=0),""+a[0]+a[1]+a[2]+"."+a[3]+a[4]+a[5]+"."+a[6]+a[7]+a[8]+"-"+e+n},a.prototype.first=function(a){return a=e(a,{gender:this.gender()}),this.pick(this.get("firstNames")[a.gender.toLowerCase()])},a.prototype.gender=function(){return this.pick(["Male","Female"])},a.prototype.last=function(){return this.pick(this.get("lastNames"))},a.prototype.mrz=function(a){var n=function(a){var e="0?"."+this.pick(a.extensions):"",i=a.domain_prefix?a.domain_prefix+"."+a.domain:a.domain;return a.protocol+"://"+i+"/"+a.path+n},a.prototype.address=function(a){return a=e(a),this.natural({min:5,max:2e3})+" "+this.street(a)},a.prototype.altitude=function(a){return a=e(a,{fixed:5,min:0,max:8848}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.areacode=function(a){a=e(a,{parens:!0});var n=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return a.parens?"("+n+")":n},a.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},a.prototype.coordinates=function(a){return this.latitude(a)+", "+this.longitude(a)},a.prototype.countries=function(){return this.get("countries")},a.prototype.country=function(a){a=e(a);var n=this.pick(this.countries());return a.full?n.name:n.abbreviation},a.prototype.depth=function(a){return a=e(a,{fixed:5,min:-2550,max:0}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.geohash=function(a){return a=e(a,{length:7}),this.string({length:a.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},a.prototype.geojson=function(a){return this.latitude(a)+", "+this.longitude(a)+", "+this.altitude(a)},a.prototype.latitude=function(a){return a=e(a,{fixed:5,min:-90,max:90}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.longitude=function(a){return a=e(a,{fixed:5,min:-180,max:180}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.phone=function(a){var n,i=this,t=function(a){var e=[];return a.sections.forEach(function(a){e.push(i.string({pool:"0123456789",length:a}))}),a.area+e.join(" ")};a=e(a,{formatted:!0,country:"us",mobile:!1}),a.formatted||(a.parens=!1);var r;switch(a.country){case"fr":a.mobile?(n=this.pick(["06","07"])+i.string({pool:"0123456789",length:8}),r=a.formatted?n.match(/../g).join(" "):n):(n=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+i.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+i.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+i.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+i.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+i.string({pool:"0123456789",length:6}),"09"+i.string({pool:"0123456789",length:8})]),r=a.formatted?n.match(/../g).join(" "):n);break;case"uk":a.mobile?(n=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),r=a.formatted?t(n):t(n).replace(" ","")):(n=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[5]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[5]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[5]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[5]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[5]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[5]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[5]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[5]}]),r=a.formatted?t(n):t(n).replace(" ","","g"));break;case"us":var o=this.areacode(a).toString(),s=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),m=this.natural({min:1e3,max:9999}).toString();r=a.formatted?o+" "+s+"-"+m:o+s+m}return r},a.prototype.postal=function(){var a=this.character({pool:"XVTSRPNKLMHJGECBA"}),e=a+this.natural({max:9})+this.character({alpha:!0,casing:"upper"}),n=this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9});return e+" "+n},a.prototype.provinces=function(){return this.get("provinces")},a.prototype.province=function(a){return a&&a.full?this.pick(this.provinces()).name:this.pick(this.provinces()).abbreviation},a.prototype.state=function(a){return a&&a.full?this.pick(this.states(a)).name:this.pick(this.states(a)).abbreviation},a.prototype.states=function(a){a=e(a);var n,i=this.get("us_states_and_dc"),t=this.get("territories"),r=this.get("armed_forces");return n=i,a.territories&&(n=n.concat(t)),a.armed_forces&&(n=n.concat(r)),n},a.prototype.street=function(a){a=e(a);var n=this.word({syllables:2});return n=this.capitalize(n),n+=" ",n+=a.short_suffix?this.street_suffix().abbreviation:this.street_suffix().name},a.prototype.street_suffix=function(){return this.pick(this.street_suffixes())},a.prototype.street_suffixes=function(){return this.get("street_suffixes")},a.prototype.zip=function(a){var e=this.n(this.natural,5,{max:9});return a&&a.plusfour===!0&&(e.push("-"),e=e.concat(this.n(this.natural,4,{max:9}))),e.join("")},a.prototype.ampm=function(){return this.bool()?"am":"pm"},a.prototype.date=function(a){var n,i;if(a&&(a.min||a.max)){a=e(a,{american:!0,string:!1});var t="undefined"!=typeof a.min?a.min.getTime():1,r="undefined"!=typeof a.max?a.max.getTime():864e13;i=new Date(this.natural({min:t,max:r}))}else{var o=this.month({raw:!0}),s=o.days;a&&a.month&&(s=this.get("months")[(a.month%12+12)%12].days),a=e(a,{year:parseInt(this.year(),10),month:o.numeric-1,day:this.natural({min:1,max:s}),hour:this.hour(),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),i=new Date(a.year,a.month,a.day,a.hour,a.minute,a.second,a.millisecond)}return n=a.american?i.getMonth()+1+"/"+i.getDate()+"/"+i.getFullYear():i.getDate()+"/"+(i.getMonth()+1)+"/"+i.getFullYear(),a.string?n:i},a.prototype.hammertime=function(a){return this.date(a).getTime()},a.prototype.hour=function(a){return a=e(a,{min:1,max:a&&a.twentyfour?24:12}),n(a.min<1,"Chance: Min cannot be less than 1."),n(a.twentyfour&&a.max>24,"Chance: Max cannot be greater than 24 for twentyfour option."),n(!a.twentyfour&&a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.millisecond=function(){return this.natural({max:999})},a.prototype.minute=a.prototype.second=function(a){return a=e(a,{min:0,max:59}),n(a.min<0,"Chance: Min cannot be less than 0."),n(a.max>59,"Chance: Max cannot be greater than 59."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.month=function(a){a=e(a,{min:1,max:12}),n(a.min<1,"Chance: Min cannot be less than 1."),n(a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max.");var i=this.pick(this.months().slice(a.min-1,a.max));return a.raw?i:i.name},a.prototype.months=function(){return this.get("months")},a.prototype.second=function(){return this.natural({max:59})},a.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},a.prototype.year=function(a){return a=e(a,{min:(new Date).getFullYear()}),a.max="undefined"!=typeof a.max?a.max:a.min+100,this.natural(a).toString()},a.prototype.cc=function(a){a=e(a);var n,i,t;return n=this.cc_type(a.type?{name:a.type,raw:!0}:{raw:!0}),i=n.prefix.split(""),t=n.length-n.prefix.length-1,i=i.concat(this.n(this.integer,t,{min:0,max:9})),i.push(this.luhn_calculate(i.join(""))),i.join("")},a.prototype.cc_types=function(){return this.get("cc_types")},a.prototype.cc_type=function(a){a=e(a);var n=this.cc_types(),i=null;if(a.name){for(var t=0;tn?"-$"+n.replace("-",""):"$"+n},a.prototype.exp=function(a){a=e(a);var n={};return n.year=this.exp_year(),n.year===(new Date).getFullYear()?n.month=this.exp_month({future:!0}):n.month=this.exp_month(),a.raw?n:n.month+"/"+n.year},a.prototype.exp_month=function(a){a=e(a);var n,i,t=(new Date).getMonth();if(a.future){do n=this.month({raw:!0}).numeric,i=parseInt(n,10);while(t>i)}else n=this.month({raw:!0}).numeric;return n},a.prototype.exp_year=function(){return this.year({max:(new Date).getFullYear()+10})},a.prototype.d4=i({min:1,max:4}),a.prototype.d6=i({min:1,max:6}),a.prototype.d8=i({min:1,max:8}),a.prototype.d10=i({min:1,max:10}),a.prototype.d12=i({min:1,max:12}),a.prototype.d20=i({min:1,max:20}),a.prototype.d30=i({min:1,max:30}),a.prototype.d100=i({min:1,max:100}),a.prototype.rpg=function(a,n){if(n=e(n),a){var i=a.toLowerCase().split("d"),t=[];if(2!==i.length||!parseInt(i[0],10)||!parseInt(i[1],10))throw new Error("Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die");for(var r=i[0];r>0;r--)t[r-1]=this.natural({min:1,max:i[1]});return"undefined"!=typeof n.sum&&n.sum?t.reduce(function(a,e){return a+e}):t}throw new RangeError("A type of die roll must be included")},a.prototype.guid=function(a){a=e(a,{version:5});var n="abcdef1234567890",i="ab89",t=this.string({pool:n,length:8})+"-"+this.string({pool:n,length:4})+"-"+a.version+this.string({pool:n,length:3})+"-"+this.string({pool:i,length:1})+this.string({pool:n,length:3})+"-"+this.string({pool:n,length:12});return t},a.prototype.hash=function(a){a=e(a,{length:40,casing:"lower"});var n="upper"===a.casing?c.toUpperCase():c;return this.string({pool:n,length:a.length})},a.prototype.luhn_check=function(a){var e=a.toString(),n=+e.substring(e.length-1);return n===this.luhn_calculate(+e.substring(0,e.length-1))},a.prototype.luhn_calculate=function(a){for(var e,n=a.toString().split("").reverse(),i=0,t=0,r=n.length;r>t;++t)e=+n[t],t%2===0&&(e*=2,e>9&&(e-=9)),i+=e;return 9*i%10},a.prototype.md5=function(a){var n={str:"",key:null,raw:!1};if(a)if("string"==typeof a)n.str=a,a={};else{if("object"!=typeof a)return null;if("Array"===a.constructor)return null}else n.str=this.string(),a={};if(n=e(a,n),!n.str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(n.str,n.key,n.raw)};var p={firstNames:{male:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],female:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","John","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"]},lastNames:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"], countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua and Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia and Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Bouvet Island",abbreviation:"BV"},{name:"Brazil",abbreviation:"BR"},{name:"British Antarctic Territory",abbreviation:"BQ"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canton and Enderbury Islands",abbreviation:"CT"},{name:"Cape Verde",abbreviation:"CV"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos [Keeling] Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Côte d’Ivoire",abbreviation:"CI"},{name:"Denmark",abbreviation:"DK"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Dronning Maud Land",abbreviation:"NQ"},{name:"East Germany",abbreviation:"DD"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"French Southern and Antarctic Territories",abbreviation:"FQ"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Heard Island and McDonald Islands",abbreviation:"HM"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Johnston Island",abbreviation:"JT"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Metropolitan France",abbreviation:"FX"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Midway Islands",abbreviation:"MI"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar [Burma]",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"Netherlands Antilles",abbreviation:"AN"},{name:"Neutral Zone",abbreviation:"NT"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"North Vietnam",abbreviation:"VD"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pacific Islands Trust Territory",abbreviation:"PC"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Panama Canal Zone",abbreviation:"PZ"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"People's Democratic Republic of Yemen",abbreviation:"YD"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Réunion",abbreviation:"RE"},{name:"Saint Barthélemy",abbreviation:"BL"},{name:"Saint Helena",abbreviation:"SH"},{name:"Saint Kitts and Nevis",abbreviation:"KN"},{name:"Saint Lucia",abbreviation:"LC"},{name:"Saint Martin",abbreviation:"MF"},{name:"Saint Pierre and Miquelon",abbreviation:"PM"},{name:"Saint Vincent and the Grenadines",abbreviation:"VC"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Serbia and Montenegro",abbreviation:"CS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia and the South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard and Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad and Tobago",abbreviation:"TT"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks and Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Minor Outlying Islands",abbreviation:"UM"},{name:"U.S. Miscellaneous Pacific Islands",abbreviation:"PU"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"Union of Soviet Socialist Republics",abbreviation:"SU"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Unknown or Invalid Region",abbreviation:"ZZ"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wake Island",abbreviation:"WK"},{name:"Wallis and Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"},{name:"Åland Islands",abbreviation:"AX"}],provinces:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],street_suffixes:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}]},v=Object.prototype.hasOwnProperty,f=Object.keys||function(a){var e=[];for(var n in a)v.call(a,n)&&e.push(n);return e};a.prototype.get=function(a){return o(p[a])},a.prototype.mac_address=function(a){a=e(a),a.separator||(a.separator=a.networkVersion?".":":");var n="ABCDEF1234567890",i="";return i=a.networkVersion?this.n(this.string,3,{pool:n,length:4}).join(a.separator):this.n(this.string,6,{pool:n,length:2}).join(a.separator)},a.prototype.normal=function(a){a=e(a,{mean:0,dev:1});var n,i,t,r,o=a.mean,s=a.dev;do i=2*this.random()-1,t=2*this.random()-1,n=i*i+t*t;while(n>=1);return r=i*Math.sqrt(-2*Math.log(n)/n),s*r+o},a.prototype.radio=function(a){a=e(a,{side:"?"});var n="";switch(a.side.toLowerCase()){case"east":case"e":n="W";break;case"west":case"w":n="K";break;default:n=this.character({pool:"KW"})}return n+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},a.prototype.set=function(a,e){"string"==typeof a?p[a]=e:p=o(a,p)},a.prototype.tv=function(a){return this.radio(a)},a.prototype.cnpj=function(){var a=this.n(this.natural,8,{max:9}),e=2+6*a[7]+7*a[6]+8*a[5]+9*a[4]+2*a[3]+3*a[2]+4*a[1]+5*a[0];e=11-e%11,e>=10&&(e=0);var n=2*e+3+7*a[7]+8*a[6]+9*a[5]+2*a[4]+3*a[3]+4*a[2]+5*a[1]+6*a[0];return n=11-n%11,n>=10&&(n=0),""+a[0]+a[1]+"."+a[2]+a[3]+a[4]+"."+a[5]+a[6]+a[7]+"/0001-"+e+n},a.prototype.mersenne_twister=function(a){return new g(a)},a.prototype.blueimp_md5=function(){return new y};var g=function(a){void 0===a&&(a=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(a)};g.prototype.init_genrand=function(a){for(this.mt[0]=a>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&a)>>>16)<<16)+1812433253*(65535&a)+this.mti,this.mt[this.mti]>>>=0},g.prototype.init_by_array=function(a,e){var n,i,t=1,r=0;for(this.init_genrand(19650218),n=this.N>e?this.N:e;n;n--)i=this.mt[t-1]^this.mt[t-1]>>>30,this.mt[t]=(this.mt[t]^(1664525*((4294901760&i)>>>16)<<16)+1664525*(65535&i))+a[r]+r,this.mt[t]>>>=0,t++,r++,t>=this.N&&(this.mt[0]=this.mt[this.N-1],t=1),r>=e&&(r=0);for(n=this.N-1;n;n--)i=this.mt[t-1]^this.mt[t-1]>>>30,this.mt[t]=(this.mt[t]^(1566083941*((4294901760&i)>>>16)<<16)+1566083941*(65535&i))-t,this.mt[t]>>>=0,t++,t>=this.N&&(this.mt[0]=this.mt[this.N-1],t=1);this.mt[0]=2147483648},g.prototype.genrand_int32=function(){var a,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti===this.N+1&&this.init_genrand(5489),n=0;n>>1^e[1&a];for(;n>>1^e[1&a];a=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^a>>>1^e[1&a],this.mti=0}return a=this.mt[this.mti++],a^=a>>>11,a^=a<<7&2636928640,a^=a<<15&4022730752,a^=a>>>18,a>>>0},g.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},g.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},g.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},g.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},g.prototype.genrand_res53=function(){var a=this.genrand_int32()>>>5,e=this.genrand_int32()>>>6;return(67108864*a+e)*(1/9007199254740992)};var y=function(){};y.prototype.VERSION="1.0.1",y.prototype.safe_add=function(a,e){var n=(65535&a)+(65535&e),i=(a>>16)+(e>>16)+(n>>16);return i<<16|65535&n},y.prototype.bit_roll=function(a,e){return a<>>32-e},y.prototype.md5_cmn=function(a,e,n,i,t,r){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(e,a),this.safe_add(i,r)),t),n)},y.prototype.md5_ff=function(a,e,n,i,t,r,o){return this.md5_cmn(e&n|~e&i,a,e,t,r,o)},y.prototype.md5_gg=function(a,e,n,i,t,r,o){return this.md5_cmn(e&i|n&~i,a,e,t,r,o)},y.prototype.md5_hh=function(a,e,n,i,t,r,o){return this.md5_cmn(e^n^i,a,e,t,r,o)},y.prototype.md5_ii=function(a,e,n,i,t,r,o){return this.md5_cmn(n^(e|~i),a,e,t,r,o)},y.prototype.binl_md5=function(a,e){a[e>>5]|=128<>>9<<4)+14]=e;var n,i,t,r,o,s=1732584193,m=-271733879,l=-1732584194,h=271733878;for(n=0;n>5]>>>e%32&255);return n},y.prototype.rstr2binl=function(a){var e,n=[];for(n[(a.length>>2)-1]=void 0,e=0;e>5]|=(255&a.charCodeAt(e/8))<16&&(t=this.binl_md5(t,8*a.length)),n=0;16>n;n+=1)r[n]=909522486^t[n],o[n]=1549556828^t[n];return i=this.binl_md5(r.concat(this.rstr2binl(e)),512+8*e.length),this.binl2rstr(this.binl_md5(o.concat(i),640))},y.prototype.rstr2hex=function(a){var e,n,i="0123456789abcdef",t="";for(n=0;n>>4&15)+i.charAt(15&e);return t},y.prototype.str2rstr_utf8=function(a){return unescape(encodeURIComponent(a))},y.prototype.raw_md5=function(a){return this.rstr_md5(this.str2rstr_utf8(a))},y.prototype.hex_md5=function(a){return this.rstr2hex(this.raw_md5(a))},y.prototype.raw_hmac_md5=function(a,e){return this.rstr_hmac_md5(this.str2rstr_utf8(a),this.str2rstr_utf8(e))},y.prototype.hex_hmac_md5=function(a,e){return this.rstr2hex(this.raw_hmac_md5(a,e))},y.prototype.md5=function(a,e,n){return e?n?this.raw_hmac_md5(e,a):this.hex_hmac_md5(e,a):n?this.raw_md5(a):this.hex_md5(a)},"undefined"!=typeof exports&&("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.Chance=a),"function"==typeof define&&define.amd&&define([],function(){return a}),"undefined"!=typeof importScripts&&(chance=new a),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=a,window.chance=new a)}(); }).call(this,require("buffer").Buffer) -},{"buffer":11}],75:[function(require,module,exports){ +},{"buffer":12}],76:[function(require,module,exports){ "use strict";var $=require("./util/uri-helpers");$.findByRef=require("./util/find-reference"),$.resolveSchema=require("./util/resolve-schema"),$.normalizeSchema=require("./util/normalize-schema");var instance=module.exports=function(){function e(r,i,t,n){function a(i){if("string"==typeof i.id){var t=$.resolveURL(r,i.id).replace(/\/#?$/,"");if(t.indexOf("#")>-1){var n=t.split("#");t="/"===n[1].charAt()?n[0]:n[1]||n[0]}e.refs[t]||(e.refs[t]=i)}}return"object"==typeof r&&(n=t,t=i,i=r,r=void 0),Array.isArray(t)||(n=!!t,t=[]),t.concat([i]).forEach(function(e){i=$.normalizeSchema(r,e,a),a(i)}),$.resolveSchema(i,e.refs,n)}return e.refs={},e.util=$,e};instance.util=$; -},{"./util/find-reference":77,"./util/normalize-schema":78,"./util/resolve-schema":79,"./util/uri-helpers":80}],76:[function(require,module,exports){ +},{"./util/find-reference":78,"./util/normalize-schema":79,"./util/resolve-schema":80,"./util/uri-helpers":81}],77:[function(require,module,exports){ "use strict";var clone=module.exports=function(r){function t(r,t){o[r]=clone(t)}if(!r||"object"!=typeof r)return r;var o=Array.isArray(r)?[]:{};return Array.isArray(o)?r.forEach(function(r,o){t(o,r)}):"[object Object]"===Object.prototype.toString.call(r)&&Object.keys(r).forEach(function(o){t(o,r[o])}),o}; -},{}],77:[function(require,module,exports){ +},{}],78:[function(require,module,exports){ "use strict";function get(e,r){for(var n=r.split("#")[1],t=n.split("/").slice(1);t.length;){var f=decodeURIComponent(t.shift()).replace(/~1/g,"/").replace(/~0/g,"~");if("undefined"==typeof e[f])throw new Error("Reference not found: "+r);e=e[f]}return e}var $=require("./uri-helpers"),find=module.exports=function(e,r){var n=r[e]||r[e.split("#")[1]]||r[$.getDocumentURI(e)];if(n)n=e.indexOf("#/")>-1?get(n,e):n;else for(var t in r)if($.resolveURL(r[t].id,e)===r[t].id){n=r[t];break}if(!n)throw new Error("Reference not found: "+e);for(;n.$ref;)n=find(n.$ref,r);return n}; -},{"./uri-helpers":80}],78:[function(require,module,exports){ +},{"./uri-helpers":81}],79:[function(require,module,exports){ "use strict";function expand(e,r,o){if(e){var n="string"==typeof e.id?e.id:"#";$.isURL(n)||(n=$.resolveURL(r===n?null:r,n)),"string"!=typeof e.$ref||$.isURL(e.$ref)||(e.$ref=$.resolveURL(n,e.$ref)),"string"==typeof e.id&&(e.id=r=n)}for(var i in e){var s=e[i];"object"==typeof s&&"enum"!==i&&"required"!==i&&expand(s,r,o)}"function"==typeof o&&o(e)}var $=require("./uri-helpers"),cloneObj=require("./clone-obj"),SCHEMA_URI=["http://json-schema.org/schema#","http://json-schema.org/draft-04/schema#"];module.exports=function(e,r,o){"object"==typeof e&&(o=r,r=e,e=null);var n=e||"",i=cloneObj(r);if(i.$schema&&-1===SCHEMA_URI.indexOf(i.$schema))throw new Error("Unsupported schema version (v4 only)");return n=$.resolveURL(i.$schema||SCHEMA_URI[0],n),expand(i,$.resolveURL(i.id,n),o),i.id=i.id||"#",i}; -},{"./clone-obj":76,"./uri-helpers":80}],79:[function(require,module,exports){ +},{"./clone-obj":77,"./uri-helpers":81}],80:[function(require,module,exports){ "use strict";function clone(e,r,i,n){var t={};if(Array.isArray(e)&&(t=[]),$.isURL(e.$ref)){var f=find(e.$ref,r);if(f&&n){var o="string"==typeof f.id?f.id:"#";if(e=f,e.$ref!==o)return clone(f,r,!0,n);delete e.$ref}}for(var d in e){var u=e[d];"object"==typeof u&&"enum"!==d&&"required"!==d?t[d]=clone(u,r,!0,n):t[d]=u}return i&&("string"==typeof t.$schema&&delete t.$schema,"string"==typeof t.id&&delete t.id),t}var $=require("./uri-helpers"),find=require("./find-reference");module.exports=function(e,r,i){return clone(e,r,!1,i)}; -},{"./find-reference":77,"./uri-helpers":80}],80:[function(require,module,exports){ +},{"./find-reference":78,"./uri-helpers":81}],81:[function(require,module,exports){ "use strict";function URLUtils(t,s){var e=String(t).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@]*)(?::([^:@]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);if(!e)throw new RangeError;var r=e[0]||"",h=e[1]||"",o=e[2]||"",n=e[3]||"",a=e[4]||"",i=e[5]||"",p=e[6]||"",c=e[7]||"",U=e[8]||"",u=e[9]||"";if(void 0!==s){var R=new URLUtils(s),m=""===h&&""===a&&""===o;m&&""===c&&""===U&&(U=R.search),m&&"/"!==c.charAt(0)&&(c=""!==c?R.pathname.slice(0,R.pathname.lastIndexOf("/")+1)+c:R.pathname);var f=[];c.replace(/\/?[^\/]+/g,function(t){"/.."===t?f.pop():f.push(t)}),c=f.join("")||"/",m&&(p=R.port,i=R.hostname,a=R.host,n=R.password,o=R.username),""===h&&(h=R.protocol),r=h+(""!==a?"//":"")+(""!==o?o+(""!==n?":"+n:"")+"@":"")+a+c+U+u}this.href=r,this.origin=h+(""!==a?"//"+a:""),this.protocol=h,this.username=o,this.password=n,this.host=a,this.hostname=i,this.port=p,this.pathname=c,this.search=U,this.hash=u}function isURL(t){return"string"==typeof t&&/^\w+:\/\//.test(t)?!0:void 0}function parseURI(t,s){return new URLUtils(t,s)}function resolveURL(t,s){return t=t||"http://json-schema.org/schema#",s=parseURI(s,t),t=parseURI(t),t.hash&&!s.hash?s.href+t.hash:s.href}function getDocumentURI(t){return"string"==typeof t&&t.split("#")[0]}module.exports={isURL:isURL,parseURI:parseURI,resolveURL:resolveURL,getDocumentURI:getDocumentURI}; -},{}],81:[function(require,module,exports){ +},{}],82:[function(require,module,exports){ exports.name=require("./lib/name"),exports.address=require("./lib/address"),exports.phone=require("./lib/phone_number"),exports.internet=require("./lib/internet"),exports.company=require("./lib/company"),exports.image=require("./lib/image"),exports.lorem=require("./lib/lorem"),exports.helpers=require("./lib/helpers"),exports.date=require("./lib/date"),exports.random=require("./lib/random"),exports.finance=require("./lib/finance"),exports.hacker=require("./lib/hacker");var locales=exports.locales=require("./lib/locales");exports.locale="en",exports.localeFallback="en",exports.definitions={};var _definitions={name:["first_name","last_name","prefix","suffix"],address:["city_prefix","city_suffix","street_suffix","county","country","state","state_abbr"],company:["adjective","noun","descriptor","bs_adjective","bs_noun","bs_verb"],lorem:["words"],hacker:["abbreviation","adjective","noun","verb","ingverb"],phone_number:["formats"],finance:["account_type","transaction_type","currency"],internet:["avatar_uri","domain_suffix","free_email","password"]};Object.keys(_definitions).forEach(function(e){"undefined"==typeof exports.definitions[e]&&(exports.definitions[e]={}),_definitions[e].forEach(function(r){Object.defineProperty(exports.definitions[e],r,{get:function(){return"undefined"==typeof locales[exports.locale][e]||"undefined"==typeof locales[exports.locale][e][r]?locales[exports.localeFallback][e][r]:locales[exports.locale][e][r]}})})}); -},{"./lib/address":82,"./lib/company":83,"./lib/date":84,"./lib/finance":85,"./lib/hacker":86,"./lib/helpers":87,"./lib/image":88,"./lib/internet":89,"./lib/locales":90,"./lib/lorem":118,"./lib/name":119,"./lib/phone_number":120,"./lib/random":121}],82:[function(require,module,exports){ +},{"./lib/address":83,"./lib/company":84,"./lib/date":85,"./lib/finance":86,"./lib/hacker":87,"./lib/helpers":88,"./lib/image":89,"./lib/internet":90,"./lib/locales":91,"./lib/lorem":119,"./lib/name":120,"./lib/phone_number":121,"./lib/random":122}],83:[function(require,module,exports){ var Helpers=require("./helpers"),faker=require("../index"),address={zipCode:function(){return Helpers.replaceSymbolWithNumber(faker.random.array_element(["#####","#####-####"]))},city:function(){var e;switch(faker.random.number(3)){case 0:e=faker.address.cityPrefix()+" "+faker.name.firstName()+faker.address.citySuffix();break;case 1:e=faker.address.cityPrefix()+" "+faker.name.firstName();break;case 2:e=faker.name.firstName()+faker.address.citySuffix();break;case 3:e=faker.name.lastName()+faker.address.citySuffix()}return e},cityPrefix:function(){return faker.random.array_element(faker.definitions.address.city_prefix)},citySuffix:function(){return faker.random.array_element(faker.definitions.address.city_suffix)},streetName:function(){var e;switch(faker.random.number(1)){case 0:e=faker.name.lastName()+" "+faker.address.streetSuffix();break;case 1:e=faker.name.firstName()+" "+faker.address.streetSuffix()}return e},streetAddress:function(e){void 0===e&&(e=!1);var r="";switch(faker.random.number(2)){case 0:r=Helpers.replaceSymbolWithNumber("#####")+" "+faker.address.streetName();break;case 1:r=Helpers.replaceSymbolWithNumber("####")+" "+faker.address.streetName();break;case 2:r=Helpers.replaceSymbolWithNumber("###")+" "+faker.address.streetName()}return e?r+" "+faker.address.secondaryAddress():r},streetSuffix:function(){return faker.random.array_element(faker.definitions.address.street_suffix)},secondaryAddress:function(){return Helpers.replaceSymbolWithNumber(faker.random.array_element(["Apt. ###","Suite ###"]))},county:function(){return faker.random.array_element(faker.definitions.address.county)},country:function(){return faker.random.array_element(faker.definitions.address.country)},state:function(e){return faker.random.array_element(faker.definitions.address.state)},stateAbbr:function(){return faker.random.array_element(faker.definitions.address.state_abbr)},latitude:function(){return(faker.random.number(18e5)/1e4-90).toFixed(4)},longitude:function(){return(faker.random.number(36e5)/1e4-180).toFixed(4)}};module.exports=address; -},{"../index":81,"./helpers":87}],83:[function(require,module,exports){ +},{"../index":82,"./helpers":88}],84:[function(require,module,exports){ var faker=require("../index"),company={suffixes:function(){return["Inc","and Sons","LLC","Group","and Daughters"]},companyName:function(e){switch(e?e:faker.random.number(2)){case 0:return faker.name.lastName()+" "+faker.company.companySuffix();case 1:return faker.name.lastName()+"-"+faker.name.lastName();case 2:return faker.name.lastName()+", "+faker.name.lastName()+" and "+faker.name.lastName()}},companySuffix:function(){return faker.random.array_element(faker.company.suffixes())},catchPhrase:function(){return faker.company.catchPhraseAdjective()+" "+faker.company.catchPhraseDescriptor()+" "+faker.company.catchPhraseNoun()},bs:function(){return faker.company.bsAdjective()+" "+faker.company.bsBuzz()+" "+faker.company.bsNoun()},catchPhraseAdjective:function(){return faker.random.array_element(faker.definitions.company.adjective)},catchPhraseDescriptor:function(){return faker.random.array_element(faker.definitions.company.descriptor)},catchPhraseNoun:function(){return faker.random.array_element(faker.definitions.company.noun)},bsAdjective:function(){return faker.random.array_element(faker.definitions.company.bs_adjective)},bsBuzz:function(){return faker.random.array_element(faker.definitions.company.bs_verb)},bsNoun:function(){return faker.random.array_element(faker.definitions.company.bs_noun)}};module.exports=company; -},{"../index":81}],84:[function(require,module,exports){ +},{"../index":82}],85:[function(require,module,exports){ var faker=require("../index"),date={past:function(e,r){var a=r?new Date(Date.parse(r)):new Date,n={min:1e3,max:365*(e||1)*24*3600*1e3},t=a.getTime();return t-=faker.random.number(n),a.setTime(t),a},future:function(e,r){var a=r?new Date(Date.parse(r)):new Date,n={min:1e3,max:365*(e||1)*24*3600*1e3},t=a.getTime();return t+=faker.random.number(n),a.setTime(t),a},between:function(e,r){var a=Date.parse(e),n=faker.random.number(Date.parse(r)-a),t=new Date(a+n);return t},recent:function(e){var r=new Date,a={min:1e3,max:24*(e||1)*3600*1e3},n=r.getTime();return n-=faker.random.number(a),r.setTime(n),r}};module.exports=date; -},{"../index":81}],85:[function(require,module,exports){ +},{"../index":82}],86:[function(require,module,exports){ var Helpers=require("./helpers"),faker=require("../index"),finance={account:function(e){e=e||8;for(var n="",r=0;e>r;r++)n+="#";return e=null,Helpers.replaceSymbolWithNumber(n)},accountName:function(){return[Helpers.randomize(faker.definitions.finance.account_type),"Account"].join(" ")},mask:function(e,n,r){e=0!=e&&e&&"undefined"!=typeof e?e:4,n=null===n?!0:n,r=null===r?!0:r;for(var o="",t=0;e>t;t++)o+="#";return o=r?["...",o].join(""):o,o=n?["(",o,")"].join(""):o,o=Helpers.replaceSymbolWithNumber(o)},amount:function(e,n,r,o){return e=e||0,n=n||1e3,r=r||2,o=o||"",o+(Math.round((Math.random()*(n-e)+e)*Math.pow(10,r))/Math.pow(10,r)).toFixed(r)},transactionType:function(){return Helpers.randomize(faker.definitions.finance.transaction_type)},currencyCode:function(){return faker.random.object_element(faker.definitions.finance.currency).code},currencyName:function(){return faker.random.object_element(faker.definitions.finance.currency,"key")},currencySymbol:function(){for(var e;!e;)e=faker.random.object_element(faker.definitions.finance.currency).symbol;return e}};module.exports=finance; -},{"../index":81,"./helpers":87}],86:[function(require,module,exports){ +},{"../index":82,"./helpers":88}],87:[function(require,module,exports){ var faker=require("../index"),hacker={abbreviation:function(){return faker.random.array_element(faker.definitions.hacker.abbreviation)},adjective:function(){return faker.random.array_element(faker.definitions.hacker.adjective)},noun:function(){return faker.random.array_element(faker.definitions.hacker.noun)},verb:function(){return faker.random.array_element(faker.definitions.hacker.verb)},ingverb:function(){return faker.random.array_element(faker.definitions.hacker.ingverb)},phrase:function(){var e={abbreviation:hacker.abbreviation(),adjective:hacker.adjective(),ingverb:hacker.ingverb(),noun:hacker.noun(),verb:hacker.verb()},n=faker.random.array_element(["If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!","We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!","Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!","You can't {{verb}} the {{noun}} without {{ingverb}} the {{adjective}} {{abbreviation}} {{noun}}!","Use the {{adjective}} {{abbreviation}} {{noun}}, then you can {{verb}} the {{adjective}} {{noun}}!","The {{abbreviation}} {{noun}} is down, {{verb}} the {{adjective}} {{noun}} so we can {{verb}} the {{abbreviation}} {{noun}}!","{{ingverb}} the {{noun}} won't do anything, we need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!","I'll {{verb}} the {{adjective}} {{abbreviation}} {{noun}}, that should {{noun}} the {{abbreviation}} {{noun}}!"]);return faker.helpers.mustache(n,e)}};module.exports=hacker; -},{"../index":81}],87:[function(require,module,exports){ +},{"../index":82}],88:[function(require,module,exports){ var faker=require("../index");exports.randomNumber=function(e){return faker.random.number(e)},exports.randomize=function(e){return e=e||["a","b","c"],faker.random.array_element(e)},exports.slugify=function(e){return e=e||"",e.replace(/ /g,"-").replace(/[^\w\.\-]+/g,"")},exports.replaceSymbolWithNumber=function(e,a){e=e||"",void 0===a&&(a="#");for(var r="",n=0;nn;n++)r[n]=e();return r.join(".")},userAgent:function(){return random_ua.generate()},color:function(e,r,n){e=e||0,r=r||0,n=n||0;var a=Math.floor((faker.random.number(256)+e)/2),t=Math.floor((faker.random.number(256)+r)/2),o=Math.floor((faker.random.number(256)+n)/2),i=a.toString(16),f=t.toString(16),u=o.toString(16);return"#"+(1===i.length?"0":"")+i+(1===f.length?"0":"")+f+(1===u.length?"0":"")+u},password:function(e,r,n,a){return e=e||15,"undefined"==typeof r&&(r=!1),password_generator(e,r,n,a)}};module.exports=internet; -},{"../index":81,"../vendor/password-generator.js":123,"../vendor/user-agent":124}],90:[function(require,module,exports){ +},{"../index":82,"../vendor/password-generator.js":124,"../vendor/user-agent":125}],91:[function(require,module,exports){ var faker=require("../index");exports.de=require("./locales/de.js"),exports.de_AT=require("./locales/de_AT.js"),exports.de_CH=require("./locales/de_CH.js"),exports.en=require("./locales/en.js"),exports.en_AU=require("./locales/en_AU.js"),exports.en_BORK=require("./locales/en_BORK.js"),exports.en_CA=require("./locales/en_CA.js"),exports.en_GB=require("./locales/en_GB.js"),exports.en_IND=require("./locales/en_IND.js"),exports.en_US=require("./locales/en_US.js"),exports.en_au_ocker=require("./locales/en_au_ocker.js"),exports.es=require("./locales/es.js"),exports.fa=require("./locales/fa.js"),exports.fr=require("./locales/fr.js"),exports.it=require("./locales/it.js"),exports.ja=require("./locales/ja.js"),exports.ko=require("./locales/ko.js"),exports.nb_NO=require("./locales/nb_NO.js"),exports.nep=require("./locales/nep.js"),exports.nl=require("./locales/nl.js"),exports.pl=require("./locales/pl.js"),exports.pt_BR=require("./locales/pt_BR.js"),exports.ru=require("./locales/ru.js"),exports.sk=require("./locales/sk.js"),exports.sv=require("./locales/sv.js"),exports.vi=require("./locales/vi.js"),exports.zh_CN=require("./locales/zh_CN.js"); -},{"../index":81,"./locales/de.js":91,"./locales/de_AT.js":92,"./locales/de_CH.js":93,"./locales/en.js":94,"./locales/en_AU.js":95,"./locales/en_BORK.js":96,"./locales/en_CA.js":97,"./locales/en_GB.js":98,"./locales/en_IND.js":99,"./locales/en_US.js":100,"./locales/en_au_ocker.js":101,"./locales/es.js":102,"./locales/fa.js":103,"./locales/fr.js":104,"./locales/it.js":105,"./locales/ja.js":106,"./locales/ko.js":107,"./locales/nb_NO.js":108,"./locales/nep.js":109,"./locales/nl.js":110,"./locales/pl.js":111,"./locales/pt_BR.js":112,"./locales/ru.js":113,"./locales/sk.js":114,"./locales/sv.js":115,"./locales/vi.js":116,"./locales/zh_CN.js":117}],91:[function(require,module,exports){ +},{"../index":82,"./locales/de.js":92,"./locales/de_AT.js":93,"./locales/de_CH.js":94,"./locales/en.js":95,"./locales/en_AU.js":96,"./locales/en_BORK.js":97,"./locales/en_CA.js":98,"./locales/en_GB.js":99,"./locales/en_IND.js":100,"./locales/en_US.js":101,"./locales/en_au_ocker.js":102,"./locales/es.js":103,"./locales/fa.js":104,"./locales/fr.js":105,"./locales/it.js":106,"./locales/ja.js":107,"./locales/ko.js":108,"./locales/nb_NO.js":109,"./locales/nep.js":110,"./locales/nl.js":111,"./locales/pl.js":112,"./locales/pt_BR.js":113,"./locales/ru.js":114,"./locales/sk.js":115,"./locales/sv.js":116,"./locales/vi.js":117,"./locales/zh_CN.js":118}],92:[function(require,module,exports){ var de={};module.exports=de,de.title="German",de.address={city_prefix:["Nord","Ost","West","Süd","Neu","Alt","Bad"],city_suffix:["stadt","dorf","land","scheid","burg"],country:["Ägypten","Äquatorialguinea","Äthiopien","Österreich","Afghanistan","Albanien","Algerien","Amerikanisch-Samoa","Amerikanische Jungferninseln","Andorra","Angola","Anguilla","Antarktis","Antigua und Barbuda","Argentinien","Armenien","Aruba","Aserbaidschan","Australien","Bahamas","Bahrain","Bangladesch","Barbados","Belarus","Belgien","Belize","Benin","die Bermudas","Bhutan","Bolivien","Bosnien und Herzegowina","Botsuana","Bouvetinsel","Brasilien","Britische Jungferninseln","Britisches Territorium im Indischen Ozean","Brunei Darussalam","Bulgarien","Burkina Faso","Burundi","Chile","China","Cookinseln","Costa Rica","Dänemark","Demokratische Republik Kongo","Demokratische Volksrepublik Korea","Deutschland","Dominica","Dominikanische Republik","Dschibuti","Ecuador","El Salvador","Eritrea","Estland","Färöer","Falklandinseln","Fidschi","Finnland","Frankreich","Französisch-Guayana","Französisch-Polynesien","Französische Gebiete im südlichen Indischen Ozean","Gabun","Gambia","Georgien","Ghana","Gibraltar","Grönland","Grenada","Griechenland","Guadeloupe","Guam","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Heard und McDonaldinseln","Honduras","Hongkong","Indien","Indonesien","Irak","Iran","Irland","Island","Israel","Italien","Jamaika","Japan","Jemen","Jordanien","Jugoslawien","Kaimaninseln","Kambodscha","Kamerun","Kanada","Kap Verde","Kasachstan","Katar","Kenia","Kirgisistan","Kiribati","Kleinere amerikanische Überseeinseln","Kokosinseln","Kolumbien","Komoren","Kongo","Kroatien","Kuba","Kuwait","Laos","Lesotho","Lettland","Libanon","Liberia","Libyen","Liechtenstein","Litauen","Luxemburg","Macau","Madagaskar","Malawi","Malaysia","Malediven","Mali","Malta","ehemalige jugoslawische Republik Mazedonien","Marokko","Marshallinseln","Martinique","Mauretanien","Mauritius","Mayotte","Mexiko","Mikronesien","Monaco","Mongolei","Montserrat","Mosambik","Myanmar","Nördliche Marianen","Namibia","Nauru","Nepal","Neukaledonien","Neuseeland","Nicaragua","Niederländische Antillen","Niederlande","Niger","Nigeria","Niue","Norfolkinsel","Norwegen","Oman","Osttimor","Pakistan","Palau","Panama","Papua-Neuguinea","Paraguay","Peru","Philippinen","Pitcairninseln","Polen","Portugal","Puerto Rico","Réunion","Republik Korea","Republik Moldau","Ruanda","Rumänien","Russische Föderation","São Tomé und Príncipe","Südafrika","Südgeorgien und Südliche Sandwichinseln","Salomonen","Sambia","Samoa","San Marino","Saudi-Arabien","Schweden","Schweiz","Senegal","Seychellen","Sierra Leone","Simbabwe","Singapur","Slowakei","Slowenien","Somalien","Spanien","Sri Lanka","St. Helena","St. Kitts und Nevis","St. Lucia","St. Pierre und Miquelon","St. Vincent und die Grenadinen","Sudan","Surinam","Svalbard und Jan Mayen","Swasiland","Syrien","Türkei","Tadschikistan","Taiwan","Tansania","Thailand","Togo","Tokelau","Tonga","Trinidad und Tobago","Tschad","Tschechische Republik","Tunesien","Turkmenistan","Turks- und Caicosinseln","Tuvalu","Uganda","Ukraine","Ungarn","Uruguay","Usbekistan","Vanuatu","Vatikanstadt","Venezuela","Vereinigte Arabische Emirate","Vereinigte Staaten","Vereinigtes Königreich","Vietnam","Wallis und Futuna","Weihnachtsinsel","Westsahara","Zentralafrikanische Republik","Zypern"],street_root:["Ackerweg","Adalbert-Stifter-Str.","Adalbertstr.","Adolf-Baeyer-Str.","Adolf-Kaschny-Str.","Adolf-Reichwein-Str.","Adolfsstr.","Ahornweg","Ahrstr.","Akazienweg","Albert-Einstein-Str.","Albert-Schweitzer-Str.","Albertus-Magnus-Str.","Albert-Zarthe-Weg","Albin-Edelmann-Str.","Albrecht-Haushofer-Str.","Aldegundisstr.","Alexanderstr.","Alfred-Delp-Str.","Alfred-Kubin-Str.","Alfred-Stock-Str.","Alkenrather Str.","Allensteiner Str.","Alsenstr.","Alt Steinbücheler Weg","Alte Garten","Alte Heide","Alte Landstr.","Alte Ziegelei","Altenberger Str.","Altenhof","Alter Grenzweg","Altstadtstr.","Am Alten Gaswerk","Am Alten Schafstall","Am Arenzberg","Am Benthal","Am Birkenberg","Am Blauen Berg","Am Borsberg","Am Brungen","Am Büchelter Hof","Am Buttermarkt","Am Ehrenfriedhof","Am Eselsdamm","Am Falkenberg","Am Frankenberg","Am Gesundheitspark","Am Gierlichshof","Am Graben","Am Hagelkreuz","Am Hang","Am Heidkamp","Am Hemmelrather Hof","Am Hofacker","Am Hohen Ufer","Am Höllers Eck","Am Hühnerberg","Am Jägerhof","Am Junkernkamp","Am Kemperstiegel","Am Kettnersbusch","Am Kiesberg","Am Klösterchen","Am Knechtsgraben","Am Köllerweg","Am Köttersbach","Am Kreispark","Am Kronefeld","Am Küchenhof","Am Kühnsbusch","Am Lindenfeld","Am Märchen","Am Mittelberg","Am Mönchshof","Am Mühlenbach","Am Neuenhof","Am Nonnenbruch","Am Plattenbusch","Am Quettinger Feld","Am Rosenhügel","Am Sandberg","Am Scherfenbrand","Am Schokker","Am Silbersee","Am Sonnenhang","Am Sportplatz","Am Stadtpark","Am Steinberg","Am Telegraf","Am Thelenhof","Am Vogelkreuz","Am Vogelsang","Am Vogelsfeldchen","Am Wambacher Hof","Am Wasserturm","Am Weidenbusch","Am Weiher","Am Weingarten","Am Werth","Amselweg","An den Irlen","An den Rheinauen","An der Bergerweide","An der Dingbank","An der Evangelischen Kirche","An der Evgl. Kirche","An der Feldgasse","An der Fettehenne","An der Kante","An der Laach","An der Lehmkuhle","An der Lichtenburg","An der Luisenburg","An der Robertsburg","An der Schmitten","An der Schusterinsel","An der Steinrütsch","An St. Andreas","An St. Remigius","Andreasstr.","Ankerweg","Annette-Kolb-Str.","Apenrader Str.","Arnold-Ohletz-Str.","Atzlenbacher Str.","Auerweg","Auestr.","Auf dem Acker","Auf dem Blahnenhof","Auf dem Bohnbüchel","Auf dem Bruch","Auf dem End","Auf dem Forst","Auf dem Herberg","Auf dem Lehn","Auf dem Stein","Auf dem Weierberg","Auf dem Weiherhahn","Auf den Reien","Auf der Donnen","Auf der Grieße","Auf der Ohmer","Auf der Weide","Auf'm Berg","Auf'm Kamp","Augustastr.","August-Kekulé-Str.","A.-W.-v.-Hofmann-Str.","Bahnallee","Bahnhofstr.","Baltrumstr.","Bamberger Str.","Baumberger Str.","Bebelstr.","Beckers Kämpchen","Beerenstr.","Beethovenstr.","Behringstr.","Bendenweg","Bensberger Str.","Benzstr.","Bergische Landstr.","Bergstr.","Berliner Platz","Berliner Str.","Bernhard-Letterhaus-Str.","Bernhard-Lichtenberg-Str.","Bernhard-Ridder-Str.","Bernsteinstr.","Bertha-Middelhauve-Str.","Bertha-von-Suttner-Str.","Bertolt-Brecht-Str.","Berzeliusstr.","Bielertstr.","Biesenbach","Billrothstr.","Birkenbergstr.","Birkengartenstr.","Birkenweg","Bismarckstr.","Bitterfelder Str.","Blankenburg","Blaukehlchenweg","Blütenstr.","Boberstr.","Böcklerstr.","Bodelschwinghstr.","Bodestr.","Bogenstr.","Bohnenkampsweg","Bohofsweg","Bonifatiusstr.","Bonner Str.","Borkumstr.","Bornheimer Str.","Borsigstr.","Borussiastr.","Bracknellstr.","Brahmsweg","Brandenburger Str.","Breidenbachstr.","Breslauer Str.","Bruchhauser Str.","Brückenstr.","Brucknerstr.","Brüder-Bonhoeffer-Str.","Buchenweg","Bürgerbuschweg","Burgloch","Burgplatz","Burgstr.","Burgweg","Bürriger Weg","Burscheider Str.","Buschkämpchen","Butterheider Str.","Carl-Duisberg-Platz","Carl-Duisberg-Str.","Carl-Leverkus-Str.","Carl-Maria-von-Weber-Platz","Carl-Maria-von-Weber-Str.","Carlo-Mierendorff-Str.","Carl-Rumpff-Str.","Carl-von-Ossietzky-Str.","Charlottenburger Str.","Christian-Heß-Str.","Claasbruch","Clemens-Winkler-Str.","Concordiastr.","Cranachstr.","Dahlemer Str.","Daimlerstr.","Damaschkestr.","Danziger Str.","Debengasse","Dechant-Fein-Str.","Dechant-Krey-Str.","Deichtorstr.","Dhünnberg","Dhünnstr.","Dianastr.","Diedenhofener Str.","Diepental","Diepenthaler Str.","Dieselstr.","Dillinger Str.","Distelkamp","Dohrgasse","Domblick","Dönhoffstr.","Dornierstr.","Drachenfelsstr.","Dr.-August-Blank-Str.","Dresdener Str.","Driescher Hecke","Drosselweg","Dudweilerstr.","Dünenweg","Dünfelder Str.","Dünnwalder Grenzweg","Düppeler Str.","Dürerstr.","Dürscheider Weg","Düsseldorfer Str.","Edelrather Weg","Edmund-Husserl-Str.","Eduard-Spranger-Str.","Ehrlichstr.","Eichenkamp","Eichenweg","Eidechsenweg","Eifelstr.","Eifgenstr.","Eintrachtstr.","Elbestr.","Elisabeth-Langgässer-Str.","Elisabethstr.","Elisabeth-von-Thadden-Str.","Elisenstr.","Elsa-Brändström-Str.","Elsbachstr.","Else-Lasker-Schüler-Str.","Elsterstr.","Emil-Fischer-Str.","Emil-Nolde-Str.","Engelbertstr.","Engstenberger Weg","Entenpfuhl","Erbelegasse","Erftstr.","Erfurter Str.","Erich-Heckel-Str.","Erich-Klausener-Str.","Erich-Ollenhauer-Str.","Erlenweg","Ernst-Bloch-Str.","Ernst-Ludwig-Kirchner-Str.","Erzbergerstr.","Eschenallee","Eschenweg","Esmarchstr.","Espenweg","Euckenstr.","Eulengasse","Eulenkamp","Ewald-Flamme-Str.","Ewald-Röll-Str.","Fährstr.","Farnweg","Fasanenweg","Faßbacher Hof","Felderstr.","Feldkampstr.","Feldsiefer Weg","Feldsiefer Wiesen","Feldstr.","Feldtorstr.","Felix-von-Roll-Str.","Ferdinand-Lassalle-Str.","Fester Weg","Feuerbachstr.","Feuerdornweg","Fichtenweg","Fichtestr.","Finkelsteinstr.","Finkenweg","Fixheider Str.","Flabbenhäuschen","Flensburger Str.","Fliederweg","Florastr.","Florianweg","Flotowstr.","Flurstr.","Föhrenweg","Fontanestr.","Forellental","Fortunastr.","Franz-Esser-Str.","Franz-Hitze-Str.","Franz-Kail-Str.","Franz-Marc-Str.","Freiburger Str.","Freiheitstr.","Freiherr-vom-Stein-Str.","Freudenthal","Freudenthaler Weg","Fridtjof-Nansen-Str.","Friedenberger Str.","Friedensstr.","Friedhofstr.","Friedlandstr.","Friedlieb-Ferdinand-Runge-Str.","Friedrich-Bayer-Str.","Friedrich-Bergius-Platz","Friedrich-Ebert-Platz","Friedrich-Ebert-Str.","Friedrich-Engels-Str.","Friedrich-List-Str.","Friedrich-Naumann-Str.","Friedrich-Sertürner-Str.","Friedrichstr.","Friedrich-Weskott-Str.","Friesenweg","Frischenberg","Fritz-Erler-Str.","Fritz-Henseler-Str.","Fröbelstr.","Fürstenbergplatz","Fürstenbergstr.","Gabriele-Münter-Str.","Gartenstr.","Gebhardstr.","Geibelstr.","Gellertstr.","Georg-von-Vollmar-Str.","Gerhard-Domagk-Str.","Gerhart-Hauptmann-Str.","Gerichtsstr.","Geschwister-Scholl-Str.","Gezelinallee","Gierener Weg","Ginsterweg","Gisbert-Cremer-Str.","Glücksburger Str.","Gluckstr.","Gneisenaustr.","Goetheplatz","Goethestr.","Golo-Mann-Str.","Görlitzer Str.","Görresstr.","Graebestr.","Graf-Galen-Platz","Gregor-Mendel-Str.","Greifswalder Str.","Grillenweg","Gronenborner Weg","Große Kirchstr.","Grunder Wiesen","Grundermühle","Grundermühlenhof","Grundermühlenweg","Grüner Weg","Grunewaldstr.","Grünstr.","Günther-Weisenborn-Str.","Gustav-Freytag-Str.","Gustav-Heinemann-Str.","Gustav-Radbruch-Str.","Gut Reuschenberg","Gutenbergstr.","Haberstr.","Habichtgasse","Hafenstr.","Hagenauer Str.","Hahnenblecher","Halenseestr.","Halfenleimbach","Hallesche Str.","Halligstr.","Hamberger Str.","Hammerweg","Händelstr.","Hannah-Höch-Str.","Hans-Arp-Str.","Hans-Gerhard-Str.","Hans-Sachs-Str.","Hans-Schlehahn-Str.","Hans-von-Dohnanyi-Str.","Hardenbergstr.","Haselweg","Hauptstr.","Haus-Vorster-Str.","Hauweg","Havelstr.","Havensteinstr.","Haydnstr.","Hebbelstr.","Heckenweg","Heerweg","Hegelstr.","Heidberg","Heidehöhe","Heidestr.","Heimstättenweg","Heinrich-Böll-Str.","Heinrich-Brüning-Str.","Heinrich-Claes-Str.","Heinrich-Heine-Str.","Heinrich-Hörlein-Str.","Heinrich-Lübke-Str.","Heinrich-Lützenkirchen-Weg","Heinrichstr.","Heinrich-Strerath-Str.","Heinrich-von-Kleist-Str.","Heinrich-von-Stephan-Str.","Heisterbachstr.","Helenenstr.","Helmestr.","Hemmelrather Weg","Henry-T.-v.-Böttinger-Str.","Herderstr.","Heribertstr.","Hermann-Ehlers-Str.","Hermann-Hesse-Str.","Hermann-König-Str.","Hermann-Löns-Str.","Hermann-Milde-Str.","Hermann-Nörrenberg-Str.","Hermann-von-Helmholtz-Str.","Hermann-Waibel-Str.","Herzogstr.","Heymannstr.","Hindenburgstr.","Hirzenberg","Hitdorfer Kirchweg","Hitdorfer Str.","Höfer Mühle","Höfer Weg","Hohe Str.","Höhenstr.","Höltgestal","Holunderweg","Holzer Weg","Holzer Wiesen","Hornpottweg","Hubertusweg","Hufelandstr.","Hufer Weg","Humboldtstr.","Hummelsheim","Hummelweg","Humperdinckstr.","Hüscheider Gärten","Hüscheider Str.","Hütte","Ilmstr.","Im Bergischen Heim","Im Bruch","Im Buchenhain","Im Bühl","Im Burgfeld","Im Dorf","Im Eisholz","Im Friedenstal","Im Frohental","Im Grunde","Im Hederichsfeld","Im Jücherfeld","Im Kalkfeld","Im Kirberg","Im Kirchfeld","Im Kreuzbruch","Im Mühlenfeld","Im Nesselrader Kamp","Im Oberdorf","Im Oberfeld","Im Rosengarten","Im Rottland","Im Scheffengarten","Im Staderfeld","Im Steinfeld","Im Weidenblech","Im Winkel","Im Ziegelfeld","Imbach","Imbacher Weg","Immenweg","In den Blechenhöfen","In den Dehlen","In der Birkenau","In der Dasladen","In der Felderhütten","In der Hartmannswiese","In der Höhle","In der Schaafsdellen","In der Wasserkuhl","In der Wüste","In Holzhausen","Insterstr.","Jacob-Fröhlen-Str.","Jägerstr.","Jahnstr.","Jakob-Eulenberg-Weg","Jakobistr.","Jakob-Kaiser-Str.","Jenaer Str.","Johannes-Baptist-Str.","Johannes-Dott-Str.","Johannes-Popitz-Str.","Johannes-Wislicenus-Str.","Johannisburger Str.","Johann-Janssen-Str.","Johann-Wirtz-Weg","Josefstr.","Jüch","Julius-Doms-Str.","Julius-Leber-Str.","Kaiserplatz","Kaiserstr.","Kaiser-Wilhelm-Allee","Kalkstr.","Kämpchenstr.","Kämpenwiese","Kämper Weg","Kamptalweg","Kanalstr.","Kandinskystr.","Kantstr.","Kapellenstr.","Karl-Arnold-Str.","Karl-Bosch-Str.","Karl-Bückart-Str.","Karl-Carstens-Ring","Karl-Friedrich-Goerdeler-Str.","Karl-Jaspers-Str.","Karl-König-Str.","Karl-Krekeler-Str.","Karl-Marx-Str.","Karlstr.","Karl-Ulitzka-Str.","Karl-Wichmann-Str.","Karl-Wingchen-Str.","Käsenbrod","Käthe-Kollwitz-Str.","Katzbachstr.","Kerschensteinerstr.","Kiefernweg","Kieler Str.","Kieselstr.","Kiesweg","Kinderhausen","Kleiberweg","Kleine Kirchstr.","Kleingansweg","Kleinheider Weg","Klief","Kneippstr.","Knochenbergsweg","Kochergarten","Kocherstr.","Kockelsberg","Kolberger Str.","Kolmarer Str.","Kölner Gasse","Kölner Str.","Kolpingstr.","Königsberger Platz","Konrad-Adenauer-Platz","Köpenicker Str.","Kopernikusstr.","Körnerstr.","Köschenberg","Köttershof","Kreuzbroicher Str.","Kreuzkamp","Krummer Weg","Kruppstr.","Kuhlmannweg","Kump","Kumper Weg","Kunstfeldstr.","Küppersteger Str.","Kursiefen","Kursiefer Weg","Kurtekottenweg","Kurt-Schumacher-Ring","Kyllstr.","Langenfelder Str.","Längsleimbach","Lärchenweg","Legienstr.","Lehner Mühle","Leichlinger Str.","Leimbacher Hof","Leinestr.","Leineweberstr.","Leipziger Str.","Lerchengasse","Lessingstr.","Libellenweg","Lichstr.","Liebigstr.","Lindenstr.","Lingenfeld","Linienstr.","Lippe","Löchergraben","Löfflerstr.","Loheweg","Lohrbergstr.","Lohrstr.","Löhstr.","Lortzingstr.","Lötzener Str.","Löwenburgstr.","Lucasstr.","Ludwig-Erhard-Platz","Ludwig-Girtler-Str.","Ludwig-Knorr-Str.","Luisenstr.","Lupinenweg","Lurchenweg","Lützenkirchener Str.","Lycker Str.","Maashofstr.","Manforter Str.","Marc-Chagall-Str.","Maria-Dresen-Str.","Maria-Terwiel-Str.","Marie-Curie-Str.","Marienburger Str.","Mariendorfer Str.","Marienwerderstr.","Marie-Schlei-Str.","Marktplatz","Markusweg","Martin-Buber-Str.","Martin-Heidegger-Str.","Martin-Luther-Str.","Masurenstr.","Mathildenweg","Maurinusstr.","Mauspfad","Max-Beckmann-Str.","Max-Delbrück-Str.","Max-Ernst-Str.","Max-Holthausen-Platz","Max-Horkheimer-Str.","Max-Liebermann-Str.","Max-Pechstein-Str.","Max-Planck-Str.","Max-Scheler-Str.","Max-Schönenberg-Str.","Maybachstr.","Meckhofer Feld","Meisenweg","Memelstr.","Menchendahler Str.","Mendelssohnstr.","Merziger Str.","Mettlacher Str.","Metzer Str.","Michaelsweg","Miselohestr.","Mittelstr.","Mohlenstr.","Moltkestr.","Monheimer Str.","Montanusstr.","Montessoriweg","Moosweg","Morsbroicher Str.","Moselstr.","Moskauer Str.","Mozartstr.","Mühlenweg","Muhrgasse","Muldestr.","Mülhausener Str.","Mülheimer Str.","Münsters Gäßchen","Münzstr.","Müritzstr.","Myliusstr.","Nachtigallenweg","Nauener Str.","Neißestr.","Nelly-Sachs-Str.","Netzestr.","Neuendriesch","Neuenhausgasse","Neuenkamp","Neujudenhof","Neukronenberger Str.","Neustadtstr.","Nicolai-Hartmann-Str.","Niederblecher","Niederfeldstr.","Nietzschestr.","Nikolaus-Groß-Str.","Nobelstr.","Norderneystr.","Nordstr.","Ober dem Hof","Obere Lindenstr.","Obere Str.","Oberölbach","Odenthaler Str.","Oderstr.","Okerstr.","Olof-Palme-Str.","Ophovener Str.","Opladener Platz","Opladener Str.","Ortelsburger Str.","Oskar-Moll-Str.","Oskar-Schlemmer-Str.","Oststr.","Oswald-Spengler-Str.","Otto-Dix-Str.","Otto-Grimm-Str.","Otto-Hahn-Str.","Otto-Müller-Str.","Otto-Stange-Str.","Ottostr.","Otto-Varnhagen-Str.","Otto-Wels-Str.","Ottweilerstr.","Oulustr.","Overfeldweg","Pappelweg","Paracelsusstr.","Parkstr.","Pastor-Louis-Str.","Pastor-Scheibler-Str.","Pastorskamp","Paul-Klee-Str.","Paul-Löbe-Str.","Paulstr.","Peenestr.","Pescher Busch","Peschstr.","Pestalozzistr.","Peter-Grieß-Str.","Peter-Joseph-Lenné-Str.","Peter-Neuenheuser-Str.","Petersbergstr.","Peterstr.","Pfarrer-Jekel-Str.","Pfarrer-Klein-Str.","Pfarrer-Röhr-Str.","Pfeilshofstr.","Philipp-Ott-Str.","Piet-Mondrian-Str.","Platanenweg","Pommernstr.","Porschestr.","Poststr.","Potsdamer Str.","Pregelstr.","Prießnitzstr.","Pützdelle","Quarzstr.","Quettinger Str.","Rat-Deycks-Str.","Rathenaustr.","Ratherkämp","Ratiborer Str.","Raushofstr.","Regensburger Str.","Reinickendorfer Str.","Renkgasse","Rennbaumplatz","Rennbaumstr.","Reuschenberger Str.","Reusrather Str.","Reuterstr.","Rheinallee","Rheindorfer Str.","Rheinstr.","Rhein-Wupper-Platz","Richard-Wagner-Str.","Rilkestr.","Ringstr.","Robert-Blum-Str.","Robert-Koch-Str.","Robert-Medenwald-Str.","Rolandstr.","Romberg","Röntgenstr.","Roonstr.","Ropenstall","Ropenstaller Weg","Rosenthal","Rostocker Str.","Rotdornweg","Röttgerweg","Rückertstr.","Rudolf-Breitscheid-Str.","Rudolf-Mann-Platz","Rudolf-Stracke-Str.","Ruhlachplatz","Ruhlachstr.","Rüttersweg","Saalestr.","Saarbrücker Str.","Saarlauterner Str.","Saarstr.","Salamanderweg","Samlandstr.","Sanddornstr.","Sandstr.","Sauerbruchstr.","Schäfershütte","Scharnhorststr.","Scheffershof","Scheidemannstr.","Schellingstr.","Schenkendorfstr.","Schießbergstr.","Schillerstr.","Schlangenhecke","Schlebuscher Heide","Schlebuscher Str.","Schlebuschrath","Schlehdornstr.","Schleiermacherstr.","Schloßstr.","Schmalenbruch","Schnepfenflucht","Schöffenweg","Schöllerstr.","Schöne Aussicht","Schöneberger Str.","Schopenhauerstr.","Schubertplatz","Schubertstr.","Schulberg","Schulstr.","Schumannstr.","Schwalbenweg","Schwarzastr.","Sebastianusweg","Semmelweisstr.","Siebelplatz","Siemensstr.","Solinger Str.","Sonderburger Str.","Spandauer Str.","Speestr.","Sperberweg","Sperlingsweg","Spitzwegstr.","Sporrenberger Mühle","Spreestr.","St. Ingberter Str.","Starenweg","Stauffenbergstr.","Stefan-Zweig-Str.","Stegerwaldstr.","Steglitzer Str.","Steinbücheler Feld","Steinbücheler Str.","Steinstr.","Steinweg","Stephan-Lochner-Str.","Stephanusstr.","Stettiner Str.","Stixchesstr.","Stöckenstr.","Stralsunder Str.","Straßburger Str.","Stresemannplatz","Strombergstr.","Stromstr.","Stüttekofener Str.","Sudestr.","Sürderstr.","Syltstr.","Talstr.","Tannenbergstr.","Tannenweg","Taubenweg","Teitscheider Weg","Telegrafenstr.","Teltower Str.","Tempelhofer Str.","Theodor-Adorno-Str.","Theodor-Fliedner-Str.","Theodor-Gierath-Str.","Theodor-Haubach-Str.","Theodor-Heuss-Ring","Theodor-Storm-Str.","Theodorstr.","Thomas-Dehler-Str.","Thomas-Morus-Str.","Thomas-von-Aquin-Str.","Tönges Feld","Torstr.","Treptower Str.","Treuburger Str.","Uhlandstr.","Ulmenweg","Ulmer Str.","Ulrichstr.","Ulrich-von-Hassell-Str.","Umlag","Unstrutstr.","Unter dem Schildchen","Unterölbach","Unterstr.","Uppersberg","Van\\'t-Hoff-Str.","Veit-Stoß-Str.","Vereinsstr.","Viktor-Meyer-Str.","Vincent-van-Gogh-Str.","Virchowstr.","Voigtslach","Volhardstr.","Völklinger Str.","Von-Brentano-Str.","Von-Diergardt-Str.","Von-Eichendorff-Str.","Von-Ketteler-Str.","Von-Knoeringen-Str.","Von-Pettenkofer-Str.","Von-Siebold-Str.","Wacholderweg","Waldstr.","Walter-Flex-Str.","Walter-Hempel-Str.","Walter-Hochapfel-Str.","Walter-Nernst-Str.","Wannseestr.","Warnowstr.","Warthestr.","Weddigenstr.","Weichselstr.","Weidenstr.","Weidfeldstr.","Weiherfeld","Weiherstr.","Weinhäuser Str.","Weißdornweg","Weißenseestr.","Weizkamp","Werftstr.","Werkstättenstr.","Werner-Heisenberg-Str.","Werrastr.","Weyerweg","Widdauener Str.","Wiebertshof","Wiehbachtal","Wiembachallee","Wiesdorfer Platz","Wiesenstr.","Wilhelm-Busch-Str.","Wilhelm-Hastrich-Str.","Wilhelm-Leuschner-Str.","Wilhelm-Liebknecht-Str.","Wilhelmsgasse","Wilhelmstr.","Willi-Baumeister-Str.","Willy-Brandt-Ring","Winand-Rossi-Str.","Windthorststr.","Winkelweg","Winterberg","Wittenbergstr.","Wolf-Vostell-Str.","Wolkenburgstr.","Wupperstr.","Wuppertalstr.","Wüstenhof","Yitzhak-Rabin-Str.","Zauberkuhle","Zedernweg","Zehlendorfer Str.","Zehntenweg","Zeisigweg","Zeppelinstr.","Zschopaustr.","Zum Claashäuschen","Zündhütchenweg","Zur Alten Brauerei","Zur alten Fabrik"],building_number:["###","##","#","##a","##b","##c"],secondary_address:["Apt. ###","Zimmer ###","# OG"],postcode:["#####","#####"],state:["Baden-Württemberg","Bayern","Berlin","Brandenburg","Bremen","Hamburg","Hessen","Mecklenburg-Vorpommern","Niedersachsen","Nordrhein-Westfalen","Rheinland-Pfalz","Saarland","Sachsen","Sachsen-Anhalt","Schleswig-Holstein","Thüringen"],state_abbr:["BW","BY","BE","BB","HB","HH","HE","MV","NI","NW","RP","SL","SN","ST","SH","TH"],city:["#{city_prefix} #{Name.first_name}#{city_suffix}","#{city_prefix} #{Name.first_name}","#{Name.first_name}#{city_suffix}","#{Name.last_name}#{city_suffix}"],street_name:["#{street_root}"],street_address:["#{street_name} #{building_number}"],default_country:["Deutschland"]},de.company={suffix:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],legal_form:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"]},de.internet={free_email:["gmail.com","yahoo.com","hotmail.com"],domain_suffix:["com","info","name","net","org","de","ch"]},de.lorem={words:["alias","consequatur","aut","perferendis","sit","voluptatem","accusantium","doloremque","aperiam","eaque","ipsa","quae","ab","illo","inventore","veritatis","et","quasi","architecto","beatae","vitae","dicta","sunt","explicabo","aspernatur","aut","odit","aut","fugit","sed","quia","consequuntur","magni","dolores","eos","qui","ratione","voluptatem","sequi","nesciunt","neque","dolorem","ipsum","quia","dolor","sit","amet","consectetur","adipisci","velit","sed","quia","non","numquam","eius","modi","tempora","incidunt","ut","labore","et","dolore","magnam","aliquam","quaerat","voluptatem","ut","enim","ad","minima","veniam","quis","nostrum","exercitationem","ullam","corporis","nemo","enim","ipsam","voluptatem","quia","voluptas","sit","suscipit","laboriosam","nisi","ut","aliquid","ex","ea","commodi","consequatur","quis","autem","vel","eum","iure","reprehenderit","qui","in","ea","voluptate","velit","esse","quam","nihil","molestiae","et","iusto","odio","dignissimos","ducimus","qui","blanditiis","praesentium","laudantium","totam","rem","voluptatum","deleniti","atque","corrupti","quos","dolores","et","quas","molestias","excepturi","sint","occaecati","cupiditate","non","provident","sed","ut","perspiciatis","unde","omnis","iste","natus","error","similique","sunt","in","culpa","qui","officia","deserunt","mollitia","animi","id","est","laborum","et","dolorum","fuga","et","harum","quidem","rerum","facilis","est","et","expedita","distinctio","nam","libero","tempore","cum","soluta","nobis","est","eligendi","optio","cumque","nihil","impedit","quo","porro","quisquam","est","qui","minus","id","quod","maxime","placeat","facere","possimus","omnis","voluptas","assumenda","est","omnis","dolor","repellendus","temporibus","autem","quibusdam","et","aut","consequatur","vel","illum","qui","dolorem","eum","fugiat","quo","voluptas","nulla","pariatur","at","vero","eos","et","accusamus","officiis","debitis","aut","rerum","necessitatibus","saepe","eveniet","ut","et","voluptates","repudiandae","sint","et","molestiae","non","recusandae","itaque","earum","rerum","hic","tenetur","a","sapiente","delectus","ut","aut","reiciendis","voluptatibus","maiores","doloribus","asperiores","repellat"]},de.name={first_name:["Aaron","Abdul","Abdullah","Adam","Adrian","Adriano","Ahmad","Ahmed","Ahmet","Alan","Albert","Alessandro","Alessio","Alex","Alexander","Alfred","Ali","Amar","Amir","Amon","Andre","Andreas","Andrew","Angelo","Ansgar","Anthony","Anton","Antonio","Arda","Arian","Armin","Arne","Arno","Arthur","Artur","Arved","Arvid","Ayman","Baran","Baris","Bastian","Batuhan","Bela","Ben","Benedikt","Benjamin","Bennet","Bennett","Benno","Bent","Berat","Berkay","Bernd","Bilal","Bjarne","Björn","Bo","Boris","Brandon","Brian","Bruno","Bryan","Burak","Calvin","Can","Carl","Carlo","Carlos","Caspar","Cedric","Cedrik","Cem","Charlie","Chris","Christian","Christiano","Christoph","Christopher","Claas","Clemens","Colin","Collin","Conner","Connor","Constantin","Corvin","Curt","Damian","Damien","Daniel","Danilo","Danny","Darian","Dario","Darius","Darren","David","Davide","Davin","Dean","Deniz","Dennis","Denny","Devin","Diego","Dion","Domenic","Domenik","Dominic","Dominik","Dorian","Dustin","Dylan","Ecrin","Eddi","Eddy","Edgar","Edwin","Efe","Ege","Elia","Eliah","Elias","Elijah","Emanuel","Emil","Emilian","Emilio","Emir","Emirhan","Emre","Enes","Enno","Enrico","Eren","Eric","Erik","Etienne","Fabian","Fabien","Fabio","Fabrice","Falk","Felix","Ferdinand","Fiete","Filip","Finlay","Finley","Finn","Finnley","Florian","Francesco","Franz","Frederic","Frederick","Frederik","Friedrich","Fritz","Furkan","Fynn","Gabriel","Georg","Gerrit","Gian","Gianluca","Gino","Giuliano","Giuseppe","Gregor","Gustav","Hagen","Hamza","Hannes","Hanno","Hans","Hasan","Hassan","Hauke","Hendrik","Hennes","Henning","Henri","Henrick","Henrik","Henry","Hugo","Hussein","Ian","Ibrahim","Ilias","Ilja","Ilyas","Immanuel","Ismael","Ismail","Ivan","Iven","Jack","Jacob","Jaden","Jakob","Jamal","James","Jamie","Jan","Janek","Janis","Janne","Jannek","Jannes","Jannik","Jannis","Jano","Janosch","Jared","Jari","Jarne","Jarno","Jaron","Jason","Jasper","Jay","Jayden","Jayson","Jean","Jens","Jeremias","Jeremie","Jeremy","Jermaine","Jerome","Jesper","Jesse","Jim","Jimmy","Joe","Joel","Joey","Johann","Johannes","John","Johnny","Jon","Jona","Jonah","Jonas","Jonathan","Jonte","Joost","Jordan","Joris","Joscha","Joschua","Josef","Joseph","Josh","Joshua","Josua","Juan","Julian","Julien","Julius","Juri","Justin","Justus","Kaan","Kai","Kalle","Karim","Karl","Karlo","Kay","Keanu","Kenan","Kenny","Keno","Kerem","Kerim","Kevin","Kian","Kilian","Kim","Kimi","Kjell","Klaas","Klemens","Konrad","Konstantin","Koray","Korbinian","Kurt","Lars","Lasse","Laurence","Laurens","Laurenz","Laurin","Lean","Leander","Leandro","Leif","Len","Lenn","Lennard","Lennart","Lennert","Lennie","Lennox","Lenny","Leo","Leon","Leonard","Leonardo","Leonhard","Leonidas","Leopold","Leroy","Levent","Levi","Levin","Lewin","Lewis","Liam","Lian","Lias","Lino","Linus","Lio","Lion","Lionel","Logan","Lorenz","Lorenzo","Loris","Louis","Luan","Luc","Luca","Lucas","Lucian","Lucien","Ludwig","Luis","Luiz","Luk","Luka","Lukas","Luke","Lutz","Maddox","Mads","Magnus","Maik","Maksim","Malik","Malte","Manuel","Marc","Marcel","Marco","Marcus","Marek","Marian","Mario","Marius","Mark","Marko","Markus","Marlo","Marlon","Marten","Martin","Marvin","Marwin","Mateo","Mathis","Matis","Mats","Matteo","Mattes","Matthias","Matthis","Matti","Mattis","Maurice","Max","Maxim","Maximilian","Mehmet","Meik","Melvin","Merlin","Mert","Michael","Michel","Mick","Miguel","Mika","Mikail","Mike","Milan","Milo","Mio","Mirac","Mirco","Mirko","Mohamed","Mohammad","Mohammed","Moritz","Morten","Muhammed","Murat","Mustafa","Nathan","Nathanael","Nelson","Neo","Nevio","Nick","Niclas","Nico","Nicolai","Nicolas","Niels","Nikita","Niklas","Niko","Nikolai","Nikolas","Nils","Nino","Noah","Noel","Norman","Odin","Oke","Ole","Oliver","Omar","Onur","Oscar","Oskar","Pascal","Patrice","Patrick","Paul","Peer","Pepe","Peter","Phil","Philip","Philipp","Pierre","Piet","Pit","Pius","Quentin","Quirin","Rafael","Raik","Ramon","Raphael","Rasmus","Raul","Rayan","René","Ricardo","Riccardo","Richard","Rick","Rico","Robert","Robin","Rocco","Roman","Romeo","Ron","Ruben","Ryan","Said","Salih","Sam","Sami","Sammy","Samuel","Sandro","Santino","Sascha","Sean","Sebastian","Selim","Semih","Shawn","Silas","Simeon","Simon","Sinan","Sky","Stefan","Steffen","Stephan","Steve","Steven","Sven","Sönke","Sören","Taha","Tamino","Tammo","Tarik","Tayler","Taylor","Teo","Theo","Theodor","Thies","Thilo","Thomas","Thorben","Thore","Thorge","Tiago","Til","Till","Tillmann","Tim","Timm","Timo","Timon","Timothy","Tino","Titus","Tizian","Tjark","Tobias","Tom","Tommy","Toni","Tony","Torben","Tore","Tristan","Tyler","Tyron","Umut","Valentin","Valentino","Veit","Victor","Viktor","Vin","Vincent","Vito","Vitus","Wilhelm","Willi","William","Willy","Xaver","Yannic","Yannick","Yannik","Yannis","Yasin","Youssef","Yunus","Yusuf","Yven","Yves","Ömer","Aaliyah","Abby","Abigail","Ada","Adelina","Adriana","Aileen","Aimee","Alana","Alea","Alena","Alessa","Alessia","Alexa","Alexandra","Alexia","Alexis","Aleyna","Alia","Alica","Alice","Alicia","Alina","Alisa","Alisha","Alissa","Aliya","Aliyah","Allegra","Alma","Alyssa","Amalia","Amanda","Amelia","Amelie","Amina","Amira","Amy","Ana","Anabel","Anastasia","Andrea","Angela","Angelina","Angelique","Anja","Ann","Anna","Annabel","Annabell","Annabelle","Annalena","Anne","Anneke","Annelie","Annemarie","Anni","Annie","Annika","Anny","Anouk","Antonia","Arda","Ariana","Ariane","Arwen","Ashley","Asya","Aurelia","Aurora","Ava","Ayleen","Aylin","Ayse","Azra","Betty","Bianca","Bianka","Caitlin","Cara","Carina","Carla","Carlotta","Carmen","Carolin","Carolina","Caroline","Cassandra","Catharina","Catrin","Cecile","Cecilia","Celia","Celina","Celine","Ceyda","Ceylin","Chantal","Charleen","Charlotta","Charlotte","Chayenne","Cheyenne","Chiara","Christin","Christina","Cindy","Claire","Clara","Clarissa","Colleen","Collien","Cora","Corinna","Cosima","Dana","Daniela","Daria","Darleen","Defne","Delia","Denise","Diana","Dilara","Dina","Dorothea","Ecrin","Eda","Eileen","Ela","Elaine","Elanur","Elea","Elena","Eleni","Eleonora","Eliana","Elif","Elina","Elisa","Elisabeth","Ella","Ellen","Elli","Elly","Elsa","Emelie","Emely","Emilia","Emilie","Emily","Emma","Emmely","Emmi","Emmy","Enie","Enna","Enya","Esma","Estelle","Esther","Eva","Evelin","Evelina","Eveline","Evelyn","Fabienne","Fatima","Fatma","Felicia","Felicitas","Felina","Femke","Fenja","Fine","Finia","Finja","Finnja","Fiona","Flora","Florentine","Francesca","Franka","Franziska","Frederike","Freya","Frida","Frieda","Friederike","Giada","Gina","Giulia","Giuliana","Greta","Hailey","Hana","Hanna","Hannah","Heidi","Helen","Helena","Helene","Helin","Henriette","Henrike","Hermine","Ida","Ilayda","Imke","Ina","Ines","Inga","Inka","Irem","Isa","Isabel","Isabell","Isabella","Isabelle","Ivonne","Jacqueline","Jamie","Jamila","Jana","Jane","Janin","Janina","Janine","Janna","Janne","Jara","Jasmin","Jasmina","Jasmine","Jella","Jenna","Jennifer","Jenny","Jessica","Jessy","Jette","Jil","Jill","Joana","Joanna","Joelina","Joeline","Joelle","Johanna","Joleen","Jolie","Jolien","Jolin","Jolina","Joline","Jona","Jonah","Jonna","Josefin","Josefine","Josephin","Josephine","Josie","Josy","Joy","Joyce","Judith","Judy","Jule","Julia","Juliana","Juliane","Julie","Julienne","Julika","Julina","Juna","Justine","Kaja","Karina","Karla","Karlotta","Karolina","Karoline","Kassandra","Katarina","Katharina","Kathrin","Katja","Katrin","Kaya","Kayra","Kiana","Kiara","Kim","Kimberley","Kimberly","Kira","Klara","Korinna","Kristin","Kyra","Laila","Lana","Lara","Larissa","Laura","Laureen","Lavinia","Lea","Leah","Leana","Leandra","Leann","Lee","Leila","Lena","Lene","Leni","Lenia","Lenja","Lenya","Leona","Leoni","Leonie","Leonora","Leticia","Letizia","Levke","Leyla","Lia","Liah","Liana","Lili","Lilia","Lilian","Liliana","Lilith","Lilli","Lillian","Lilly","Lily","Lina","Linda","Lindsay","Line","Linn","Linnea","Lisa","Lisann","Lisanne","Liv","Livia","Liz","Lola","Loreen","Lorena","Lotta","Lotte","Louisa","Louise","Luana","Luca","Lucia","Lucie","Lucienne","Lucy","Luisa","Luise","Luka","Luna","Luzie","Lya","Lydia","Lyn","Lynn","Madeleine","Madita","Madleen","Madlen","Magdalena","Maike","Mailin","Maira","Maja","Malena","Malia","Malin","Malina","Mandy","Mara","Marah","Mareike","Maren","Maria","Mariam","Marie","Marieke","Mariella","Marika","Marina","Marisa","Marissa","Marit","Marla","Marleen","Marlen","Marlena","Marlene","Marta","Martha","Mary","Maryam","Mathilda","Mathilde","Matilda","Maxi","Maxima","Maxine","Maya","Mayra","Medina","Medine","Meike","Melanie","Melek","Melike","Melina","Melinda","Melis","Melisa","Melissa","Merle","Merve","Meryem","Mette","Mia","Michaela","Michelle","Mieke","Mila","Milana","Milena","Milla","Mina","Mira","Miray","Miriam","Mirja","Mona","Monique","Nadine","Nadja","Naemi","Nancy","Naomi","Natalia","Natalie","Nathalie","Neele","Nela","Nele","Nelli","Nelly","Nia","Nicole","Nika","Nike","Nikita","Nila","Nina","Nisa","Noemi","Nora","Olivia","Patricia","Patrizia","Paula","Paulina","Pauline","Penelope","Philine","Phoebe","Pia","Rahel","Rania","Rebecca","Rebekka","Riana","Rieke","Rike","Romina","Romy","Ronja","Rosa","Rosalie","Ruby","Sabrina","Sahra","Sally","Salome","Samantha","Samia","Samira","Sandra","Sandy","Sanja","Saphira","Sara","Sarah","Saskia","Selin","Selina","Selma","Sena","Sidney","Sienna","Silja","Sina","Sinja","Smilla","Sofia","Sofie","Sonja","Sophia","Sophie","Soraya","Stefanie","Stella","Stephanie","Stina","Sude","Summer","Susanne","Svea","Svenja","Sydney","Tabea","Talea","Talia","Tamara","Tamia","Tamina","Tanja","Tara","Tarja","Teresa","Tessa","Thalea","Thalia","Thea","Theresa","Tia","Tina","Tomke","Tuana","Valentina","Valeria","Valerie","Vanessa","Vera","Veronika","Victoria","Viktoria","Viola","Vivian","Vivien","Vivienne","Wibke","Wiebke","Xenia","Yara","Yaren","Yasmin","Ylvi","Ylvie","Yvonne","Zara","Zehra","Zeynep","Zoe","Zoey","Zoé"], last_name:["Abel","Abicht","Abraham","Abramovic","Abt","Achilles","Achkinadze","Ackermann","Adam","Adams","Ade","Agostini","Ahlke","Ahrenberg","Ahrens","Aigner","Albert","Albrecht","Alexa","Alexander","Alizadeh","Allgeyer","Amann","Amberg","Anding","Anggreny","Apitz","Arendt","Arens","Arndt","Aryee","Aschenbroich","Assmus","Astafei","Auer","Axmann","Baarck","Bachmann","Badane","Bader","Baganz","Bahl","Bak","Balcer","Balck","Balkow","Balnuweit","Balzer","Banse","Barr","Bartels","Barth","Barylla","Baseda","Battke","Bauer","Bauermeister","Baumann","Baumeister","Bauschinger","Bauschke","Bayer","Beavogui","Beck","Beckel","Becker","Beckmann","Bedewitz","Beele","Beer","Beggerow","Beh","Behr","Behrenbruch","Belz","Bender","Benecke","Benner","Benninger","Benzing","Berends","Berger","Berner","Berning","Bertenbreiter","Best","Bethke","Betz","Beushausen","Beutelspacher","Beyer","Biba","Bichler","Bickel","Biedermann","Bieler","Bielert","Bienasch","Bienias","Biesenbach","Bigdeli","Birkemeyer","Bittner","Blank","Blaschek","Blassneck","Bloch","Blochwitz","Blockhaus","Blum","Blume","Bock","Bode","Bogdashin","Bogenrieder","Bohge","Bolm","Borgschulze","Bork","Bormann","Bornscheuer","Borrmann","Borsch","Boruschewski","Bos","Bosler","Bourrouag","Bouschen","Boxhammer","Boyde","Bozsik","Brand","Brandenburg","Brandis","Brandt","Brauer","Braun","Brehmer","Breitenstein","Bremer","Bremser","Brenner","Brettschneider","Breu","Breuer","Briesenick","Bringmann","Brinkmann","Brix","Broening","Brosch","Bruckmann","Bruder","Bruhns","Brunner","Bruns","Bräutigam","Brömme","Brüggmann","Buchholz","Buchrucker","Buder","Bultmann","Bunjes","Burger","Burghagen","Burkhard","Burkhardt","Burmeister","Busch","Buschbaum","Busemann","Buss","Busse","Bussmann","Byrd","Bäcker","Böhm","Bönisch","Börgeling","Börner","Böttner","Büchele","Bühler","Büker","Büngener","Bürger","Bürklein","Büscher","Büttner","Camara","Carlowitz","Carlsohn","Caspari","Caspers","Chapron","Christ","Cierpinski","Clarius","Cleem","Cleve","Co","Conrad","Cordes","Cornelsen","Cors","Cotthardt","Crews","Cronjäger","Crosskofp","Da","Dahm","Dahmen","Daimer","Damaske","Danneberg","Danner","Daub","Daubner","Daudrich","Dauer","Daum","Dauth","Dautzenberg","De","Decker","Deckert","Deerberg","Dehmel","Deja","Delonge","Demut","Dengler","Denner","Denzinger","Derr","Dertmann","Dethloff","Deuschle","Dieckmann","Diedrich","Diekmann","Dienel","Dies","Dietrich","Dietz","Dietzsch","Diezel","Dilla","Dingelstedt","Dippl","Dittmann","Dittmar","Dittmer","Dix","Dobbrunz","Dobler","Dohring","Dolch","Dold","Dombrowski","Donie","Doskoczynski","Dragu","Drechsler","Drees","Dreher","Dreier","Dreissigacker","Dressler","Drews","Duma","Dutkiewicz","Dyett","Dylus","Dächert","Döbel","Döring","Dörner","Dörre","Dück","Eberhard","Eberhardt","Ecker","Eckhardt","Edorh","Effler","Eggenmueller","Ehm","Ehmann","Ehrig","Eich","Eichmann","Eifert","Einert","Eisenlauer","Ekpo","Elbe","Eleyth","Elss","Emert","Emmelmann","Ender","Engel","Engelen","Engelmann","Eplinius","Erdmann","Erhardt","Erlei","Erm","Ernst","Ertl","Erwes","Esenwein","Esser","Evers","Everts","Ewald","Fahner","Faller","Falter","Farber","Fassbender","Faulhaber","Fehrig","Feld","Felke","Feller","Fenner","Fenske","Feuerbach","Fietz","Figl","Figura","Filipowski","Filsinger","Fincke","Fink","Finke","Fischer","Fitschen","Fleischer","Fleischmann","Floder","Florczak","Flore","Flottmann","Forkel","Forst","Frahmeke","Frank","Franke","Franta","Frantz","Franz","Franzis","Franzmann","Frauen","Frauendorf","Freigang","Freimann","Freimuth","Freisen","Frenzel","Frey","Fricke","Fried","Friedek","Friedenberg","Friedmann","Friedrich","Friess","Frisch","Frohn","Frosch","Fuchs","Fuhlbrügge","Fusenig","Fust","Förster","Gaba","Gabius","Gabler","Gadschiew","Gakstädter","Galander","Gamlin","Gamper","Gangnus","Ganzmann","Garatva","Gast","Gastel","Gatzka","Gauder","Gebhardt","Geese","Gehre","Gehrig","Gehring","Gehrke","Geiger","Geisler","Geissler","Gelling","Gens","Gerbennow","Gerdel","Gerhardt","Gerschler","Gerson","Gesell","Geyer","Ghirmai","Ghosh","Giehl","Gierisch","Giesa","Giesche","Gilde","Glatting","Goebel","Goedicke","Goldbeck","Goldfuss","Goldkamp","Goldkühle","Goller","Golling","Gollnow","Golomski","Gombert","Gotthardt","Gottschalk","Gotz","Goy","Gradzki","Graf","Grams","Grasse","Gratzky","Grau","Greb","Green","Greger","Greithanner","Greschner","Griem","Griese","Grimm","Gromisch","Gross","Grosser","Grossheim","Grosskopf","Grothaus","Grothkopp","Grotke","Grube","Gruber","Grundmann","Gruning","Gruszecki","Gröss","Grötzinger","Grün","Grüner","Gummelt","Gunkel","Gunther","Gutjahr","Gutowicz","Gutschank","Göbel","Göckeritz","Göhler","Görlich","Görmer","Götz","Götzelmann","Güldemeister","Günther","Günz","Gürbig","Haack","Haaf","Habel","Hache","Hackbusch","Hackelbusch","Hadfield","Hadwich","Haferkamp","Hahn","Hajek","Hallmann","Hamann","Hanenberger","Hannecker","Hanniske","Hansen","Hardy","Hargasser","Harms","Harnapp","Harter","Harting","Hartlieb","Hartmann","Hartwig","Hartz","Haschke","Hasler","Hasse","Hassfeld","Haug","Hauke","Haupt","Haverney","Heberstreit","Hechler","Hecht","Heck","Hedermann","Hehl","Heidelmann","Heidler","Heinemann","Heinig","Heinke","Heinrich","Heinze","Heiser","Heist","Hellmann","Helm","Helmke","Helpling","Hengmith","Henkel","Hennes","Henry","Hense","Hensel","Hentel","Hentschel","Hentschke","Hepperle","Herberger","Herbrand","Hering","Hermann","Hermecke","Herms","Herold","Herrmann","Herschmann","Hertel","Herweg","Herwig","Herzenberg","Hess","Hesse","Hessek","Hessler","Hetzler","Heuck","Heydemüller","Hiebl","Hildebrand","Hildenbrand","Hilgendorf","Hillard","Hiller","Hingsen","Hingst","Hinrichs","Hirsch","Hirschberg","Hirt","Hodea","Hoffman","Hoffmann","Hofmann","Hohenberger","Hohl","Hohn","Hohnheiser","Hold","Holdt","Holinski","Holl","Holtfreter","Holz","Holzdeppe","Holzner","Hommel","Honz","Hooss","Hoppe","Horak","Horn","Horna","Hornung","Hort","Howard","Huber","Huckestein","Hudak","Huebel","Hugo","Huhn","Hujo","Huke","Huls","Humbert","Huneke","Huth","Häber","Häfner","Höcke","Höft","Höhne","Hönig","Hördt","Hübenbecker","Hübl","Hübner","Hügel","Hüttcher","Hütter","Ibe","Ihly","Illing","Isak","Isekenmeier","Itt","Jacob","Jacobs","Jagusch","Jahn","Jahnke","Jakobs","Jakubczyk","Jambor","Jamrozy","Jander","Janich","Janke","Jansen","Jarets","Jaros","Jasinski","Jasper","Jegorov","Jellinghaus","Jeorga","Jerschabek","Jess","John","Jonas","Jossa","Jucken","Jung","Jungbluth","Jungton","Just","Jürgens","Kaczmarek","Kaesmacher","Kahl","Kahlert","Kahles","Kahlmeyer","Kaiser","Kalinowski","Kallabis","Kallensee","Kampf","Kampschulte","Kappe","Kappler","Karhoff","Karrass","Karst","Karsten","Karus","Kass","Kasten","Kastner","Katzinski","Kaufmann","Kaul","Kausemann","Kawohl","Kazmarek","Kedzierski","Keil","Keiner","Keller","Kelm","Kempe","Kemper","Kempter","Kerl","Kern","Kesselring","Kesselschläger","Kette","Kettenis","Keutel","Kick","Kiessling","Kinadeter","Kinzel","Kinzy","Kirch","Kirst","Kisabaka","Klaas","Klabuhn","Klapper","Klauder","Klaus","Kleeberg","Kleiber","Klein","Kleinert","Kleininger","Kleinmann","Kleinsteuber","Kleiss","Klemme","Klimczak","Klinger","Klink","Klopsch","Klose","Kloss","Kluge","Kluwe","Knabe","Kneifel","Knetsch","Knies","Knippel","Knobel","Knoblich","Knoll","Knorr","Knorscheidt","Knut","Kobs","Koch","Kochan","Kock","Koczulla","Koderisch","Koehl","Koehler","Koenig","Koester","Kofferschlager","Koha","Kohle","Kohlmann","Kohnle","Kohrt","Koj","Kolb","Koleiski","Kolokas","Komoll","Konieczny","Konig","Konow","Konya","Koob","Kopf","Kosenkow","Koster","Koszewski","Koubaa","Kovacs","Kowalick","Kowalinski","Kozakiewicz","Krabbe","Kraft","Kral","Kramer","Krauel","Kraus","Krause","Krauspe","Kreb","Krebs","Kreissig","Kresse","Kreutz","Krieger","Krippner","Krodinger","Krohn","Krol","Kron","Krueger","Krug","Kruger","Krull","Kruschinski","Krämer","Kröckert","Kröger","Krüger","Kubera","Kufahl","Kuhlee","Kuhnen","Kulimann","Kulma","Kumbernuss","Kummle","Kunz","Kupfer","Kupprion","Kuprion","Kurnicki","Kurrat","Kurschilgen","Kuschewitz","Kuschmann","Kuske","Kustermann","Kutscherauer","Kutzner","Kwadwo","Kähler","Käther","Köhler","Köhrbrück","Köhre","Kölotzei","König","Köpernick","Köseoglu","Kúhn","Kúhnert","Kühn","Kühnel","Kühnemund","Kühnert","Kühnke","Küsters","Küter","Laack","Lack","Ladewig","Lakomy","Lammert","Lamos","Landmann","Lang","Lange","Langfeld","Langhirt","Lanig","Lauckner","Lauinger","Laurén","Lausecker","Laux","Laws","Lax","Leberer","Lehmann","Lehner","Leibold","Leide","Leimbach","Leipold","Leist","Leiter","Leiteritz","Leitheim","Leiwesmeier","Lenfers","Lenk","Lenz","Lenzen","Leo","Lepthin","Lesch","Leschnik","Letzelter","Lewin","Lewke","Leyckes","Lg","Lichtenfeld","Lichtenhagen","Lichtl","Liebach","Liebe","Liebich","Liebold","Lieder","Lienshöft","Linden","Lindenberg","Lindenmayer","Lindner","Linke","Linnenbaum","Lippe","Lipske","Lipus","Lischka","Lobinger","Logsch","Lohmann","Lohre","Lohse","Lokar","Loogen","Lorenz","Losch","Loska","Lott","Loy","Lubina","Ludolf","Lufft","Lukoschek","Lutje","Lutz","Löser","Löwa","Lübke","Maak","Maczey","Madetzky","Madubuko","Mai","Maier","Maisch","Malek","Malkus","Mallmann","Malucha","Manns","Manz","Marahrens","Marchewski","Margis","Markowski","Marl","Marner","Marquart","Marschek","Martel","Marten","Martin","Marx","Marxen","Mathes","Mathies","Mathiszik","Matschke","Mattern","Matthes","Matula","Mau","Maurer","Mauroff","May","Maybach","Mayer","Mebold","Mehl","Mehlhorn","Mehlorn","Meier","Meisch","Meissner","Meloni","Melzer","Menga","Menne","Mensah","Mensing","Merkel","Merseburg","Mertens","Mesloh","Metzger","Metzner","Mewes","Meyer","Michallek","Michel","Mielke","Mikitenko","Milde","Minah","Mintzlaff","Mockenhaupt","Moede","Moedl","Moeller","Moguenara","Mohr","Mohrhard","Molitor","Moll","Moller","Molzan","Montag","Moormann","Mordhorst","Morgenstern","Morhelfer","Moritz","Moser","Motchebon","Motzenbbäcker","Mrugalla","Muckenthaler","Mues","Muller","Mulrain","Mächtig","Mäder","Möcks","Mögenburg","Möhsner","Möldner","Möllenbeck","Möller","Möllinger","Mörsch","Mühleis","Müller","Münch","Nabein","Nabow","Nagel","Nannen","Nastvogel","Nau","Naubert","Naumann","Ne","Neimke","Nerius","Neubauer","Neubert","Neuendorf","Neumair","Neumann","Neupert","Neurohr","Neuschwander","Newton","Ney","Nicolay","Niedermeier","Nieklauson","Niklaus","Nitzsche","Noack","Nodler","Nolte","Normann","Norris","Northoff","Nowak","Nussbeck","Nwachukwu","Nytra","Nöh","Oberem","Obergföll","Obermaier","Ochs","Oeser","Olbrich","Onnen","Ophey","Oppong","Orth","Orthmann","Oschkenat","Osei","Osenberg","Ostendarp","Ostwald","Otte","Otto","Paesler","Pajonk","Pallentin","Panzig","Paschke","Patzwahl","Paukner","Peselman","Peter","Peters","Petzold","Pfeiffer","Pfennig","Pfersich","Pfingsten","Pflieger","Pflügner","Philipp","Pichlmaier","Piesker","Pietsch","Pingpank","Pinnock","Pippig","Pitschugin","Plank","Plass","Platzer","Plauk","Plautz","Pletsch","Plotzitzka","Poehn","Poeschl","Pogorzelski","Pohl","Pohland","Pohle","Polifka","Polizzi","Pollmächer","Pomp","Ponitzsch","Porsche","Porth","Poschmann","Poser","Pottel","Prah","Prange","Prediger","Pressler","Preuk","Preuss","Prey","Priemer","Proske","Pusch","Pöche","Pöge","Raabe","Rabenstein","Rach","Radtke","Rahn","Ranftl","Rangen","Ranz","Rapp","Rath","Rau","Raubuch","Raukuc","Rautenkranz","Rehwagen","Reiber","Reichardt","Reichel","Reichling","Reif","Reifenrath","Reimann","Reinberg","Reinelt","Reinhardt","Reinke","Reitze","Renk","Rentz","Renz","Reppin","Restle","Restorff","Retzke","Reuber","Reumann","Reus","Reuss","Reusse","Rheder","Rhoden","Richards","Richter","Riedel","Riediger","Rieger","Riekmann","Riepl","Riermeier","Riester","Riethmüller","Rietmüller","Rietscher","Ringel","Ringer","Rink","Ripken","Ritosek","Ritschel","Ritter","Rittweg","Ritz","Roba","Rockmeier","Rodehau","Rodowski","Roecker","Roggatz","Rohländer","Rohrer","Rokossa","Roleder","Roloff","Roos","Rosbach","Roschinsky","Rose","Rosenauer","Rosenbauer","Rosenthal","Rosksch","Rossberg","Rossler","Roth","Rother","Ruch","Ruckdeschel","Rumpf","Rupprecht","Ruth","Ryjikh","Ryzih","Rädler","Räntsch","Rödiger","Röse","Röttger","Rücker","Rüdiger","Rüter","Sachse","Sack","Saflanis","Sagafe","Sagonas","Sahner","Saile","Sailer","Salow","Salzer","Salzmann","Sammert","Sander","Sarvari","Sattelmaier","Sauer","Sauerland","Saumweber","Savoia","Scc","Schacht","Schaefer","Schaffarzik","Schahbasian","Scharf","Schedler","Scheer","Schelk","Schellenbeck","Schembera","Schenk","Scherbarth","Scherer","Schersing","Scherz","Scheurer","Scheuring","Scheytt","Schielke","Schieskow","Schildhauer","Schilling","Schima","Schimmer","Schindzielorz","Schirmer","Schirrmeister","Schlachter","Schlangen","Schlawitz","Schlechtweg","Schley","Schlicht","Schlitzer","Schmalzle","Schmid","Schmidt","Schmidtchen","Schmitt","Schmitz","Schmuhl","Schneider","Schnelting","Schnieder","Schniedermeier","Schnürer","Schoberg","Scholz","Schonberg","Schondelmaier","Schorr","Schott","Schottmann","Schouren","Schrader","Schramm","Schreck","Schreiber","Schreiner","Schreiter","Schroder","Schröder","Schuermann","Schuff","Schuhaj","Schuldt","Schult","Schulte","Schultz","Schultze","Schulz","Schulze","Schumacher","Schumann","Schupp","Schuri","Schuster","Schwab","Schwalm","Schwanbeck","Schwandke","Schwanitz","Schwarthoff","Schwartz","Schwarz","Schwarzer","Schwarzkopf","Schwarzmeier","Schwatlo","Schweisfurth","Schwennen","Schwerdtner","Schwidde","Schwirkschlies","Schwuchow","Schäfer","Schäffel","Schäffer","Schäning","Schöckel","Schönball","Schönbeck","Schönberg","Schönebeck","Schönenberger","Schönfeld","Schönherr","Schönlebe","Schötz","Schüler","Schüppel","Schütz","Schütze","Seeger","Seelig","Sehls","Seibold","Seidel","Seiders","Seigel","Seiler","Seitz","Semisch","Senkel","Sewald","Siebel","Siebert","Siegling","Sielemann","Siemon","Siener","Sievers","Siewert","Sihler","Sillah","Simon","Sinnhuber","Sischka","Skibicki","Sladek","Slotta","Smieja","Soboll","Sokolowski","Soller","Sollner","Sommer","Somssich","Sonn","Sonnabend","Spahn","Spank","Spelmeyer","Spiegelburg","Spielvogel","Spinner","Spitzmüller","Splinter","Sporrer","Sprenger","Spöttel","Stahl","Stang","Stanger","Stauss","Steding","Steffen","Steffny","Steidl","Steigauf","Stein","Steinecke","Steinert","Steinkamp","Steinmetz","Stelkens","Stengel","Stengl","Stenzel","Stepanov","Stephan","Stern","Steuk","Stief","Stifel","Stoll","Stolle","Stolz","Storl","Storp","Stoutjesdijk","Stratmann","Straub","Strausa","Streck","Streese","Strege","Streit","Streller","Strieder","Striezel","Strogies","Strohschank","Strunz","Strutz","Stube","Stöckert","Stöppler","Stöwer","Stürmer","Suffa","Sujew","Sussmann","Suthe","Sutschet","Swillims","Szendrei","Sören","Sürth","Tafelmeier","Tang","Tasche","Taufratshofer","Tegethof","Teichmann","Tepper","Terheiden","Terlecki","Teufel","Theele","Thieke","Thimm","Thiomas","Thomas","Thriene","Thränhardt","Thust","Thyssen","Thöne","Tidow","Tiedtke","Tietze","Tilgner","Tillack","Timmermann","Tischler","Tischmann","Tittman","Tivontschik","Tonat","Tonn","Trampeli","Trauth","Trautmann","Travan","Treff","Tremmel","Tress","Tsamonikian","Tschiers","Tschirch","Tuch","Tucholke","Tudow","Tuschmo","Tächl","Többen","Töpfer","Uhlemann","Uhlig","Uhrig","Uibel","Uliczka","Ullmann","Ullrich","Umbach","Umlauft","Umminger","Unger","Unterpaintner","Urban","Urbaniak","Urbansky","Urhig","Vahlensieck","Van","Vangermain","Vater","Venghaus","Verniest","Verzi","Vey","Viellehner","Vieweg","Voelkel","Vogel","Vogelgsang","Vogt","Voigt","Vokuhl","Volk","Volker","Volkmann","Von","Vona","Vontein","Wachenbrunner","Wachtel","Wagner","Waibel","Wakan","Waldmann","Wallner","Wallstab","Walter","Walther","Walton","Walz","Wanner","Wartenberg","Waschbüsch","Wassilew","Wassiluk","Weber","Wehrsen","Weidlich","Weidner","Weigel","Weight","Weiler","Weimer","Weis","Weiss","Weller","Welsch","Welz","Welzel","Weniger","Wenk","Werle","Werner","Werrmann","Wessel","Wessinghage","Weyel","Wezel","Wichmann","Wickert","Wiebe","Wiechmann","Wiegelmann","Wierig","Wiese","Wieser","Wilhelm","Wilky","Will","Willwacher","Wilts","Wimmer","Winkelmann","Winkler","Winter","Wischek","Wischer","Wissing","Wittich","Wittl","Wolf","Wolfarth","Wolff","Wollenberg","Wollmann","Woytkowska","Wujak","Wurm","Wyludda","Wölpert","Wöschler","Wühn","Wünsche","Zach","Zaczkiewicz","Zahn","Zaituc","Zandt","Zanner","Zapletal","Zauber","Zeidler","Zekl","Zender","Zeuch","Zeyen","Zeyhle","Ziegler","Zimanyi","Zimmer","Zimmermann","Zinser","Zintl","Zipp","Zipse","Zschunke","Zuber","Zwiener","Zümsande","Östringer","Überacker"],prefix:["Hr.","Fr.","Dr.","Prof. Dr."],nobility_title_prefix:["zu","von","vom","von der"],name:["#{prefix} #{first_name} #{last_name}","#{first_name} #{nobility_title_prefix} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}"]},de.phone_number={formats:["(0###) #########","(0####) #######","+49-###-#######","+49-####-########"]},de.cell_phone={formats:["+49-1##-#######","+49-1###-########"]}; -},{}],92:[function(require,module,exports){ +},{}],93:[function(require,module,exports){ var de_AT={};module.exports=de_AT,de_AT.title="German (Austria)",de_AT.address={country:["Ägypten","Äquatorialguinea","Äthiopien","Österreich","Afghanistan","Albanien","Algerien","Amerikanisch-Samoa","Amerikanische Jungferninseln","Andorra","Angola","Anguilla","Antarktis","Antigua und Barbuda","Argentinien","Armenien","Aruba","Aserbaidschan","Australien","Bahamas","Bahrain","Bangladesch","Barbados","Belarus","Belgien","Belize","Benin","die Bermudas","Bhutan","Bolivien","Bosnien und Herzegowina","Botsuana","Bouvetinsel","Brasilien","Britische Jungferninseln","Britisches Territorium im Indischen Ozean","Brunei Darussalam","Bulgarien","Burkina Faso","Burundi","Chile","China","Cookinseln","Costa Rica","Dänemark","Demokratische Republik Kongo","Demokratische Volksrepublik Korea","Deutschland","Dominica","Dominikanische Republik","Dschibuti","Ecuador","El Salvador","Eritrea","Estland","Färöer","Falklandinseln","Fidschi","Finnland","Frankreich","Französisch-Guayana","Französisch-Polynesien","Französische Gebiete im südlichen Indischen Ozean","Gabun","Gambia","Georgien","Ghana","Gibraltar","Grönland","Grenada","Griechenland","Guadeloupe","Guam","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Heard und McDonaldinseln","Honduras","Hongkong","Indien","Indonesien","Irak","Iran","Irland","Island","Israel","Italien","Jamaika","Japan","Jemen","Jordanien","Jugoslawien","Kaimaninseln","Kambodscha","Kamerun","Kanada","Kap Verde","Kasachstan","Katar","Kenia","Kirgisistan","Kiribati","Kleinere amerikanische Überseeinseln","Kokosinseln","Kolumbien","Komoren","Kongo","Kroatien","Kuba","Kuwait","Laos","Lesotho","Lettland","Libanon","Liberia","Libyen","Liechtenstein","Litauen","Luxemburg","Macau","Madagaskar","Malawi","Malaysia","Malediven","Mali","Malta","ehemalige jugoslawische Republik Mazedonien","Marokko","Marshallinseln","Martinique","Mauretanien","Mauritius","Mayotte","Mexiko","Mikronesien","Monaco","Mongolei","Montserrat","Mosambik","Myanmar","Nördliche Marianen","Namibia","Nauru","Nepal","Neukaledonien","Neuseeland","Nicaragua","Niederländische Antillen","Niederlande","Niger","Nigeria","Niue","Norfolkinsel","Norwegen","Oman","Osttimor","Pakistan","Palau","Panama","Papua-Neuguinea","Paraguay","Peru","Philippinen","Pitcairninseln","Polen","Portugal","Puerto Rico","Réunion","Republik Korea","Republik Moldau","Ruanda","Rumänien","Russische Föderation","São Tomé und Príncipe","Südafrika","Südgeorgien und Südliche Sandwichinseln","Salomonen","Sambia","Samoa","San Marino","Saudi-Arabien","Schweden","Schweiz","Senegal","Seychellen","Sierra Leone","Simbabwe","Singapur","Slowakei","Slowenien","Somalien","Spanien","Sri Lanka","St. Helena","St. Kitts und Nevis","St. Lucia","St. Pierre und Miquelon","St. Vincent und die Grenadinen","Sudan","Surinam","Svalbard und Jan Mayen","Swasiland","Syrien","Türkei","Tadschikistan","Taiwan","Tansania","Thailand","Togo","Tokelau","Tonga","Trinidad und Tobago","Tschad","Tschechische Republik","Tunesien","Turkmenistan","Turks- und Caicosinseln","Tuvalu","Uganda","Ukraine","Ungarn","Uruguay","Usbekistan","Vanuatu","Vatikanstadt","Venezuela","Vereinigte Arabische Emirate","Vereinigte Staaten","Vereinigtes Königreich","Vietnam","Wallis und Futuna","Weihnachtsinsel","Westsahara","Zentralafrikanische Republik","Zypern"],street_root:["Ahorn","Ahorngasse (St. Andrä)","Alleestraße (Poysbrunn)","Alpenlandstraße","Alte Poststraße","Alte Ufergasse","Am Kronawett (Hagenbrunn)","Am Mühlwasser","Am Rebenhang","Am Sternweg","Anton Wildgans-Straße","Auer-von-Welsbach-Weg","Auf der Stift","Aufeldgasse","Bahngasse","Bahnhofstraße","Bahnstraße (Gerhaus)","Basteigasse","Berggasse","Bergstraße","Birkenweg","Blasiussteig","Blattur","Bruderhofgasse","Brunnelligasse","Bühelweg","Darnautgasse","Donaugasse","Dorfplatz (Haselbach)","Dr.-Oberreiter-Straße","Dr.Karl Holoubek-Str.","Drautal Bundesstraße","Dürnrohrer Straße","Ebenthalerstraße","Eckgrabenweg","Erlenstraße","Erlenweg","Eschenweg","Etrichgasse","Fassergasse","Feichteggerwiese","Feld-Weg","Feldgasse","Feldstapfe","Fischpointweg","Flachbergstraße","Flurweg","Franz Schubert-Gasse","Franz-Schneeweiß-Weg","Franz-von-Assisi-Straße","Fritz-Pregl-Straße","Fuchsgrubenweg","Födlerweg","Föhrenweg","Fünfhaus (Paasdorf)","Gabelsbergerstraße","Gartenstraße","Geigen","Geigergasse","Gemeindeaugasse","Gemeindeplatz","Georg-Aichinger-Straße","Glanfeldbachweg","Graben (Burgauberg)","Grub","Gröretgasse","Grünbach","Gösting","Hainschwang","Hans-Mauracher-Straße","Hart","Teichstraße","Hauptplatz","Hauptstraße","Heideweg","Heinrich Landauer Gasse","Helenengasse","Hermann von Gilmweg","Hermann-Löns-Gasse","Herminengasse","Hernstorferstraße","Hirsdorf","Hochfeistritz","Hochhaus Neue Donau","Hof","Hussovits Gasse","Höggen","Hütten","Janzgasse","Jochriemgutstraße","Johann-Strauß-Gasse","Julius-Raab-Straße","Kahlenberger Straße","Karl Kraft-Straße","Kegelprielstraße","Keltenberg-Eponaweg","Kennedybrücke","Kerpelystraße","Kindergartenstraße","Kinderheimgasse","Kirchenplatz","Kirchweg","Klagenfurter Straße","Klamm","Kleinbaumgarten","Klingergasse","Koloniestraße","Konrad-Duden-Gasse","Krankenhausstraße","Kubinstraße","Köhldorfergasse","Lackenweg","Lange Mekotte","Leifling","Leopold Frank-Straße (Pellendorf)","Lerchengasse (Pirka)","Lichtensternsiedlung V","Lindenhofstraße","Lindenweg","Luegstraße","Maierhof","Malerweg","Mitterweg","Mittlere Hauptstraße","Moosbachgasse","Morettigasse","Musikpavillon Riezlern","Mühlboden","Mühle","Mühlenweg","Neustiftgasse","Niederegg","Niedergams","Nordwestbahnbrücke","Oberbödenalm","Obere Berggasse","Oedt","Am Färberberg","Ottogasse","Paul Peters-Gasse","Perspektivstraße","Poppichl","Privatweg","Prixgasse","Pyhra","Radetzkystraße","Raiden","Reichensteinstraße","Reitbauernstraße","Reiterweg","Reitschulgasse","Ringweg","Rupertistraße","Römerstraße","Römerweg","Sackgasse","Schaunbergerstraße","Schloßweg","Schulgasse (Langeck)","Schönholdsiedlung","Seeblick","Seestraße","Semriacherstraße","Simling","Sipbachzeller Straße","Sonnenweg","Spargelfeldgasse","Spiesmayrweg","Sportplatzstraße","St.Ulrich","Steilmannstraße","Steingrüneredt","Strassfeld","Straßerau","Stöpflweg","Stüra","Taferngasse","Tennweg","Thomas Koschat-Gasse","Tiroler Straße","Torrogasse","Uferstraße (Schwarzau am Steinfeld)","Unterdörfl","Unterer Sonnrainweg","Verwaltersiedlung","Waldhang","Wasen","Weidenstraße","Weiherweg","Wettsteingasse","Wiener Straße","Windisch","Zebragasse","Zellerstraße","Ziehrerstraße","Zulechnerweg","Zwergjoch","Ötzbruck"],building_number:["###","##","#","##a","##b","##c"],secondary_address:["Apt. ###","Zimmer ###","# OG"],postcode:["####"],state:["Burgenland","Kärnten","Niederösterreich","Oberösterreich","Salzburg","Steiermark","Tirol","Vorarlberg","Wien"],state_abbr:["Bgld.","Ktn.","NÖ","OÖ","Sbg.","Stmk.","T","Vbg.","W"],city_name:["Aigen im Mühlkreis","Allerheiligen bei Wildon","Altenfelden","Arriach","Axams","Baumgartenberg","Bergern im Dunkelsteinerwald","Berndorf bei Salzburg","Bregenz","Breitenbach am Inn","Deutsch-Wagram","Dienten am Hochkönig","Dietach","Dornbirn","Dürnkrut","Eben im Pongau","Ebenthal in Kärnten","Eichgraben","Eisenstadt","Ellmau","Feistritz am Wechsel","Finkenberg","Fiss","Frantschach-St. Gertraud","Fritzens","Gams bei Hieflau","Geiersberg","Graz","Großhöflein","Gößnitz","Hartl","Hausleiten","Herzogenburg","Hinterhornbach","Hochwolkersdorf","Ilz","Ilztal","Innerbraz","Innsbruck","Itter","Jagerberg","Jeging","Johnsbach","Johnsdorf-Brunn","Jungholz","Kirchdorf am Inn","Klagenfurt","Kottes-Purk","Krumau am Kamp","Krumbach","Lavamünd","Lech","Linz","Ludesch","Lödersdorf","Marbach an der Donau","Mattsee","Mautern an der Donau","Mauterndorf","Mitterbach am Erlaufsee","Neudorf bei Passail","Neudorf bei Staatz","Neukirchen an der Enknach","Neustift an der Lafnitz","Niederleis","Oberndorf in Tirol","Oberstorcha","Oberwaltersdorf","Oed-Oehling","Ort im Innkreis","Pilgersdorf","Pitschgau","Pollham","Preitenegg","Purbach am Neusiedler See","Rabenwald","Raiding","Rastenfeld","Ratten","Rettenegg","Salzburg","Sankt Johann im Saggautal","St. Peter am Kammersberg","St. Pölten","St. Veit an der Glan","Taxenbach","Tragwein","Trebesing","Trieben","Turnau","Ungerdorf","Unterauersbach","Unterstinkenbrunn","Untertilliach","Uttendorf","Vals","Velden am Wörther See","Viehhofen","Villach","Vitis","Waidhofen an der Thaya","Waldkirchen am Wesen","Weißkirchen an der Traun","Wien","Wimpassing im Schwarzatale","Ybbs an der Donau","Ybbsitz","Yspertal","Zeillern","Zell am Pettenfirst","Zell an der Pram","Zerlach","Zwölfaxing","Öblarn","Übelbach","Überackern","Übersaxen","Übersbach"],city:["#{city_name}"],street_name:["#{street_root}"],street_address:["#{street_name} #{building_number}"],default_country:["Österreich"]},de_AT.company={suffix:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],legal_form:["GmbH","AG","Gruppe","KG","GmbH & Co. KG","UG","OHG"],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"]},de_AT.internet={free_email:["gmail.com","yahoo.com","hotmail.com"],domain_suffix:["com","info","name","net","org","de","ch","at"]},de_AT.name={first_name:["Aaron","Abdul","Abdullah","Adam","Adrian","Adriano","Ahmad","Ahmed","Ahmet","Alan","Albert","Alessandro","Alessio","Alex","Alexander","Alfred","Ali","Amar","Amir","Amon","Andre","Andreas","Andrew","Angelo","Ansgar","Anthony","Anton","Antonio","Arda","Arian","Armin","Arne","Arno","Arthur","Artur","Arved","Arvid","Ayman","Baran","Baris","Bastian","Batuhan","Bela","Ben","Benedikt","Benjamin","Bennet","Bennett","Benno","Bent","Berat","Berkay","Bernd","Bilal","Bjarne","Björn","Bo","Boris","Brandon","Brian","Bruno","Bryan","Burak","Calvin","Can","Carl","Carlo","Carlos","Caspar","Cedric","Cedrik","Cem","Charlie","Chris","Christian","Christiano","Christoph","Christopher","Claas","Clemens","Colin","Collin","Conner","Connor","Constantin","Corvin","Curt","Damian","Damien","Daniel","Danilo","Danny","Darian","Dario","Darius","Darren","David","Davide","Davin","Dean","Deniz","Dennis","Denny","Devin","Diego","Dion","Domenic","Domenik","Dominic","Dominik","Dorian","Dustin","Dylan","Ecrin","Eddi","Eddy","Edgar","Edwin","Efe","Ege","Elia","Eliah","Elias","Elijah","Emanuel","Emil","Emilian","Emilio","Emir","Emirhan","Emre","Enes","Enno","Enrico","Eren","Eric","Erik","Etienne","Fabian","Fabien","Fabio","Fabrice","Falk","Felix","Ferdinand","Fiete","Filip","Finlay","Finley","Finn","Finnley","Florian","Francesco","Franz","Frederic","Frederick","Frederik","Friedrich","Fritz","Furkan","Fynn","Gabriel","Georg","Gerrit","Gian","Gianluca","Gino","Giuliano","Giuseppe","Gregor","Gustav","Hagen","Hamza","Hannes","Hanno","Hans","Hasan","Hassan","Hauke","Hendrik","Hennes","Henning","Henri","Henrick","Henrik","Henry","Hugo","Hussein","Ian","Ibrahim","Ilias","Ilja","Ilyas","Immanuel","Ismael","Ismail","Ivan","Iven","Jack","Jacob","Jaden","Jakob","Jamal","James","Jamie","Jan","Janek","Janis","Janne","Jannek","Jannes","Jannik","Jannis","Jano","Janosch","Jared","Jari","Jarne","Jarno","Jaron","Jason","Jasper","Jay","Jayden","Jayson","Jean","Jens","Jeremias","Jeremie","Jeremy","Jermaine","Jerome","Jesper","Jesse","Jim","Jimmy","Joe","Joel","Joey","Johann","Johannes","John","Johnny","Jon","Jona","Jonah","Jonas","Jonathan","Jonte","Joost","Jordan","Joris","Joscha","Joschua","Josef","Joseph","Josh","Joshua","Josua","Juan","Julian","Julien","Julius","Juri","Justin","Justus","Kaan","Kai","Kalle","Karim","Karl","Karlo","Kay","Keanu","Kenan","Kenny","Keno","Kerem","Kerim","Kevin","Kian","Kilian","Kim","Kimi","Kjell","Klaas","Klemens","Konrad","Konstantin","Koray","Korbinian","Kurt","Lars","Lasse","Laurence","Laurens","Laurenz","Laurin","Lean","Leander","Leandro","Leif","Len","Lenn","Lennard","Lennart","Lennert","Lennie","Lennox","Lenny","Leo","Leon","Leonard","Leonardo","Leonhard","Leonidas","Leopold","Leroy","Levent","Levi","Levin","Lewin","Lewis","Liam","Lian","Lias","Lino","Linus","Lio","Lion","Lionel","Logan","Lorenz","Lorenzo","Loris","Louis","Luan","Luc","Luca","Lucas","Lucian","Lucien","Ludwig","Luis","Luiz","Luk","Luka","Lukas","Luke","Lutz","Maddox","Mads","Magnus","Maik","Maksim","Malik","Malte","Manuel","Marc","Marcel","Marco","Marcus","Marek","Marian","Mario","Marius","Mark","Marko","Markus","Marlo","Marlon","Marten","Martin","Marvin","Marwin","Mateo","Mathis","Matis","Mats","Matteo","Mattes","Matthias","Matthis","Matti","Mattis","Maurice","Max","Maxim","Maximilian","Mehmet","Meik","Melvin","Merlin","Mert","Michael","Michel","Mick","Miguel","Mika","Mikail","Mike","Milan","Milo","Mio","Mirac","Mirco","Mirko","Mohamed","Mohammad","Mohammed","Moritz","Morten","Muhammed","Murat","Mustafa","Nathan","Nathanael","Nelson","Neo","Nevio","Nick","Niclas","Nico","Nicolai","Nicolas","Niels","Nikita","Niklas","Niko","Nikolai","Nikolas","Nils","Nino","Noah","Noel","Norman","Odin","Oke","Ole","Oliver","Omar","Onur","Oscar","Oskar","Pascal","Patrice","Patrick","Paul","Peer","Pepe","Peter","Phil","Philip","Philipp","Pierre","Piet","Pit","Pius","Quentin","Quirin","Rafael","Raik","Ramon","Raphael","Rasmus","Raul","Rayan","René","Ricardo","Riccardo","Richard","Rick","Rico","Robert","Robin","Rocco","Roman","Romeo","Ron","Ruben","Ryan","Said","Salih","Sam","Sami","Sammy","Samuel","Sandro","Santino","Sascha","Sean","Sebastian","Selim","Semih","Shawn","Silas","Simeon","Simon","Sinan","Sky","Stefan","Steffen","Stephan","Steve","Steven","Sven","Sönke","Sören","Taha","Tamino","Tammo","Tarik","Tayler","Taylor","Teo","Theo","Theodor","Thies","Thilo","Thomas","Thorben","Thore","Thorge","Tiago","Til","Till","Tillmann","Tim","Timm","Timo","Timon","Timothy","Tino","Titus","Tizian","Tjark","Tobias","Tom","Tommy","Toni","Tony","Torben","Tore","Tristan","Tyler","Tyron","Umut","Valentin","Valentino","Veit","Victor","Viktor","Vin","Vincent","Vito","Vitus","Wilhelm","Willi","William","Willy","Xaver","Yannic","Yannick","Yannik","Yannis","Yasin","Youssef","Yunus","Yusuf","Yven","Yves","Ömer","Aaliyah","Abby","Abigail","Ada","Adelina","Adriana","Aileen","Aimee","Alana","Alea","Alena","Alessa","Alessia","Alexa","Alexandra","Alexia","Alexis","Aleyna","Alia","Alica","Alice","Alicia","Alina","Alisa","Alisha","Alissa","Aliya","Aliyah","Allegra","Alma","Alyssa","Amalia","Amanda","Amelia","Amelie","Amina","Amira","Amy","Ana","Anabel","Anastasia","Andrea","Angela","Angelina","Angelique","Anja","Ann","Anna","Annabel","Annabell","Annabelle","Annalena","Anne","Anneke","Annelie","Annemarie","Anni","Annie","Annika","Anny","Anouk","Antonia","Arda","Ariana","Ariane","Arwen","Ashley","Asya","Aurelia","Aurora","Ava","Ayleen","Aylin","Ayse","Azra","Betty","Bianca","Bianka","Caitlin","Cara","Carina","Carla","Carlotta","Carmen","Carolin","Carolina","Caroline","Cassandra","Catharina","Catrin","Cecile","Cecilia","Celia","Celina","Celine","Ceyda","Ceylin","Chantal","Charleen","Charlotta","Charlotte","Chayenne","Cheyenne","Chiara","Christin","Christina","Cindy","Claire","Clara","Clarissa","Colleen","Collien","Cora","Corinna","Cosima","Dana","Daniela","Daria","Darleen","Defne","Delia","Denise","Diana","Dilara","Dina","Dorothea","Ecrin","Eda","Eileen","Ela","Elaine","Elanur","Elea","Elena","Eleni","Eleonora","Eliana","Elif","Elina","Elisa","Elisabeth","Ella","Ellen","Elli","Elly","Elsa","Emelie","Emely","Emilia","Emilie","Emily","Emma","Emmely","Emmi","Emmy","Enie","Enna","Enya","Esma","Estelle","Esther","Eva","Evelin","Evelina","Eveline","Evelyn","Fabienne","Fatima","Fatma","Felicia","Felicitas","Felina","Femke","Fenja","Fine","Finia","Finja","Finnja","Fiona","Flora","Florentine","Francesca","Franka","Franziska","Frederike","Freya","Frida","Frieda","Friederike","Giada","Gina","Giulia","Giuliana","Greta","Hailey","Hana","Hanna","Hannah","Heidi","Helen","Helena","Helene","Helin","Henriette","Henrike","Hermine","Ida","Ilayda","Imke","Ina","Ines","Inga","Inka","Irem","Isa","Isabel","Isabell","Isabella","Isabelle","Ivonne","Jacqueline","Jamie","Jamila","Jana","Jane","Janin","Janina","Janine","Janna","Janne","Jara","Jasmin","Jasmina","Jasmine","Jella","Jenna","Jennifer","Jenny","Jessica","Jessy","Jette","Jil","Jill","Joana","Joanna","Joelina","Joeline","Joelle","Johanna","Joleen","Jolie","Jolien","Jolin","Jolina","Joline","Jona","Jonah","Jonna","Josefin","Josefine","Josephin","Josephine","Josie","Josy","Joy","Joyce","Judith","Judy","Jule","Julia","Juliana","Juliane","Julie","Julienne","Julika","Julina","Juna","Justine","Kaja","Karina","Karla","Karlotta","Karolina","Karoline","Kassandra","Katarina","Katharina","Kathrin","Katja","Katrin","Kaya","Kayra","Kiana","Kiara","Kim","Kimberley","Kimberly","Kira","Klara","Korinna","Kristin","Kyra","Laila","Lana","Lara","Larissa","Laura","Laureen","Lavinia","Lea","Leah","Leana","Leandra","Leann","Lee","Leila","Lena","Lene","Leni","Lenia","Lenja","Lenya","Leona","Leoni","Leonie","Leonora","Leticia","Letizia","Levke","Leyla","Lia","Liah","Liana","Lili","Lilia","Lilian","Liliana","Lilith","Lilli","Lillian","Lilly","Lily","Lina","Linda","Lindsay","Line","Linn","Linnea","Lisa","Lisann","Lisanne","Liv","Livia","Liz","Lola","Loreen","Lorena","Lotta","Lotte","Louisa","Louise","Luana","Luca","Lucia","Lucie","Lucienne","Lucy","Luisa","Luise","Luka","Luna","Luzie","Lya","Lydia","Lyn","Lynn","Madeleine","Madita","Madleen","Madlen","Magdalena","Maike","Mailin","Maira","Maja","Malena","Malia","Malin","Malina","Mandy","Mara","Marah","Mareike","Maren","Maria","Mariam","Marie","Marieke","Mariella","Marika","Marina","Marisa","Marissa","Marit","Marla","Marleen","Marlen","Marlena","Marlene","Marta","Martha","Mary","Maryam","Mathilda","Mathilde","Matilda","Maxi","Maxima","Maxine","Maya","Mayra","Medina","Medine","Meike","Melanie","Melek","Melike","Melina","Melinda","Melis","Melisa","Melissa","Merle","Merve","Meryem","Mette","Mia","Michaela","Michelle","Mieke","Mila","Milana","Milena","Milla","Mina","Mira","Miray","Miriam","Mirja","Mona","Monique","Nadine","Nadja","Naemi","Nancy","Naomi","Natalia","Natalie","Nathalie","Neele","Nela","Nele","Nelli","Nelly","Nia","Nicole","Nika","Nike","Nikita","Nila","Nina","Nisa","Noemi","Nora","Olivia","Patricia","Patrizia","Paula","Paulina","Pauline","Penelope","Philine","Phoebe","Pia","Rahel","Rania","Rebecca","Rebekka","Riana","Rieke","Rike","Romina","Romy","Ronja","Rosa","Rosalie","Ruby","Sabrina","Sahra","Sally","Salome","Samantha","Samia","Samira","Sandra","Sandy","Sanja","Saphira","Sara","Sarah","Saskia","Selin","Selina","Selma","Sena","Sidney","Sienna","Silja","Sina","Sinja","Smilla","Sofia","Sofie","Sonja","Sophia","Sophie","Soraya","Stefanie","Stella","Stephanie","Stina","Sude","Summer","Susanne","Svea","Svenja","Sydney","Tabea","Talea","Talia","Tamara","Tamia","Tamina","Tanja","Tara","Tarja","Teresa","Tessa","Thalea","Thalia","Thea","Theresa","Tia","Tina","Tomke","Tuana","Valentina","Valeria","Valerie","Vanessa","Vera","Veronika","Victoria","Viktoria","Viola","Vivian","Vivien","Vivienne","Wibke","Wiebke","Xenia","Yara","Yaren","Yasmin","Ylvi","Ylvie","Yvonne","Zara","Zehra","Zeynep","Zoe","Zoey","Zoé"],last_name:["Abel","Abicht","Abraham","Abramovic","Abt","Achilles","Achkinadze","Ackermann","Adam","Adams","Ade","Agostini","Ahlke","Ahrenberg","Ahrens","Aigner","Albert","Albrecht","Alexa","Alexander","Alizadeh","Allgeyer","Amann","Amberg","Anding","Anggreny","Apitz","Arendt","Arens","Arndt","Aryee","Aschenbroich","Assmus","Astafei","Auer","Axmann","Baarck","Bachmann","Badane","Bader","Baganz","Bahl","Bak","Balcer","Balck","Balkow","Balnuweit","Balzer","Banse","Barr","Bartels","Barth","Barylla","Baseda","Battke","Bauer","Bauermeister","Baumann","Baumeister","Bauschinger","Bauschke","Bayer","Beavogui","Beck","Beckel","Becker","Beckmann","Bedewitz","Beele","Beer","Beggerow","Beh","Behr","Behrenbruch","Belz","Bender","Benecke","Benner","Benninger","Benzing","Berends","Berger","Berner","Berning","Bertenbreiter","Best","Bethke","Betz","Beushausen","Beutelspacher","Beyer","Biba","Bichler","Bickel","Biedermann","Bieler","Bielert","Bienasch","Bienias","Biesenbach","Bigdeli","Birkemeyer","Bittner","Blank","Blaschek","Blassneck","Bloch","Blochwitz","Blockhaus","Blum","Blume","Bock","Bode","Bogdashin","Bogenrieder","Bohge","Bolm","Borgschulze","Bork","Bormann","Bornscheuer","Borrmann","Borsch","Boruschewski","Bos","Bosler","Bourrouag","Bouschen","Boxhammer","Boyde","Bozsik","Brand","Brandenburg","Brandis","Brandt","Brauer","Braun","Brehmer","Breitenstein","Bremer","Bremser","Brenner","Brettschneider","Breu","Breuer","Briesenick","Bringmann","Brinkmann","Brix","Broening","Brosch","Bruckmann","Bruder","Bruhns","Brunner","Bruns","Bräutigam","Brömme","Brüggmann","Buchholz","Buchrucker","Buder","Bultmann","Bunjes","Burger","Burghagen","Burkhard","Burkhardt","Burmeister","Busch","Buschbaum","Busemann","Buss","Busse","Bussmann","Byrd","Bäcker","Böhm","Bönisch","Börgeling","Börner","Böttner","Büchele","Bühler","Büker","Büngener","Bürger","Bürklein","Büscher","Büttner","Camara","Carlowitz","Carlsohn","Caspari","Caspers","Chapron","Christ","Cierpinski","Clarius","Cleem","Cleve","Co","Conrad","Cordes","Cornelsen","Cors","Cotthardt","Crews","Cronjäger","Crosskofp","Da","Dahm","Dahmen","Daimer","Damaske","Danneberg","Danner","Daub","Daubner","Daudrich","Dauer","Daum","Dauth","Dautzenberg","De","Decker","Deckert","Deerberg","Dehmel","Deja","Delonge","Demut","Dengler","Denner","Denzinger","Derr","Dertmann","Dethloff","Deuschle","Dieckmann","Diedrich","Diekmann","Dienel","Dies","Dietrich","Dietz","Dietzsch","Diezel","Dilla","Dingelstedt","Dippl","Dittmann","Dittmar","Dittmer","Dix","Dobbrunz","Dobler","Dohring","Dolch","Dold","Dombrowski","Donie","Doskoczynski","Dragu","Drechsler","Drees","Dreher","Dreier","Dreissigacker","Dressler","Drews","Duma","Dutkiewicz","Dyett","Dylus","Dächert","Döbel","Döring","Dörner","Dörre","Dück","Eberhard","Eberhardt","Ecker","Eckhardt","Edorh","Effler","Eggenmueller","Ehm","Ehmann","Ehrig","Eich","Eichmann","Eifert","Einert","Eisenlauer","Ekpo","Elbe","Eleyth","Elss","Emert","Emmelmann","Ender","Engel","Engelen","Engelmann","Eplinius","Erdmann","Erhardt","Erlei","Erm","Ernst","Ertl","Erwes","Esenwein","Esser","Evers","Everts","Ewald","Fahner","Faller","Falter","Farber","Fassbender","Faulhaber","Fehrig","Feld","Felke","Feller","Fenner","Fenske","Feuerbach","Fietz","Figl","Figura","Filipowski","Filsinger","Fincke","Fink","Finke","Fischer","Fitschen","Fleischer","Fleischmann","Floder","Florczak","Flore","Flottmann","Forkel","Forst","Frahmeke","Frank","Franke","Franta","Frantz","Franz","Franzis","Franzmann","Frauen","Frauendorf","Freigang","Freimann","Freimuth","Freisen","Frenzel","Frey","Fricke","Fried","Friedek","Friedenberg","Friedmann","Friedrich","Friess","Frisch","Frohn","Frosch","Fuchs","Fuhlbrügge","Fusenig","Fust","Förster","Gaba","Gabius","Gabler","Gadschiew","Gakstädter","Galander","Gamlin","Gamper","Gangnus","Ganzmann","Garatva","Gast","Gastel","Gatzka","Gauder","Gebhardt","Geese","Gehre","Gehrig","Gehring","Gehrke","Geiger","Geisler","Geissler","Gelling","Gens","Gerbennow","Gerdel","Gerhardt","Gerschler","Gerson","Gesell","Geyer","Ghirmai","Ghosh","Giehl","Gierisch","Giesa","Giesche","Gilde","Glatting","Goebel","Goedicke","Goldbeck","Goldfuss","Goldkamp","Goldkühle","Goller","Golling","Gollnow","Golomski","Gombert","Gotthardt","Gottschalk","Gotz","Goy","Gradzki","Graf","Grams","Grasse","Gratzky","Grau","Greb","Green","Greger","Greithanner","Greschner","Griem","Griese","Grimm","Gromisch","Gross","Grosser","Grossheim","Grosskopf","Grothaus","Grothkopp","Grotke","Grube","Gruber","Grundmann","Gruning","Gruszecki","Gröss","Grötzinger","Grün","Grüner","Gummelt","Gunkel","Gunther","Gutjahr","Gutowicz","Gutschank","Göbel","Göckeritz","Göhler","Görlich","Görmer","Götz","Götzelmann","Güldemeister","Günther","Günz","Gürbig","Haack","Haaf","Habel","Hache","Hackbusch","Hackelbusch","Hadfield","Hadwich","Haferkamp","Hahn","Hajek","Hallmann","Hamann","Hanenberger","Hannecker","Hanniske","Hansen","Hardy","Hargasser","Harms","Harnapp","Harter","Harting","Hartlieb","Hartmann","Hartwig","Hartz","Haschke","Hasler","Hasse","Hassfeld","Haug","Hauke","Haupt","Haverney","Heberstreit","Hechler","Hecht","Heck","Hedermann","Hehl","Heidelmann","Heidler","Heinemann","Heinig","Heinke","Heinrich","Heinze","Heiser","Heist","Hellmann","Helm","Helmke","Helpling","Hengmith","Henkel","Hennes","Henry","Hense","Hensel","Hentel","Hentschel","Hentschke","Hepperle","Herberger","Herbrand","Hering","Hermann","Hermecke","Herms","Herold","Herrmann","Herschmann","Hertel","Herweg","Herwig","Herzenberg","Hess","Hesse","Hessek","Hessler","Hetzler","Heuck","Heydemüller","Hiebl","Hildebrand","Hildenbrand","Hilgendorf","Hillard","Hiller","Hingsen","Hingst","Hinrichs","Hirsch","Hirschberg","Hirt","Hodea","Hoffman","Hoffmann","Hofmann","Hohenberger","Hohl","Hohn","Hohnheiser","Hold","Holdt","Holinski","Holl","Holtfreter","Holz","Holzdeppe","Holzner","Hommel","Honz","Hooss","Hoppe","Horak","Horn","Horna","Hornung","Hort","Howard","Huber","Huckestein","Hudak","Huebel","Hugo","Huhn","Hujo","Huke","Huls","Humbert","Huneke","Huth","Häber","Häfner","Höcke","Höft","Höhne","Hönig","Hördt","Hübenbecker","Hübl","Hübner","Hügel","Hüttcher","Hütter","Ibe","Ihly","Illing","Isak","Isekenmeier","Itt","Jacob","Jacobs","Jagusch","Jahn","Jahnke","Jakobs","Jakubczyk","Jambor","Jamrozy","Jander","Janich","Janke","Jansen","Jarets","Jaros","Jasinski","Jasper","Jegorov","Jellinghaus","Jeorga","Jerschabek","Jess","John","Jonas","Jossa","Jucken","Jung","Jungbluth","Jungton","Just","Jürgens","Kaczmarek","Kaesmacher","Kahl","Kahlert","Kahles","Kahlmeyer","Kaiser","Kalinowski","Kallabis","Kallensee","Kampf","Kampschulte","Kappe","Kappler","Karhoff","Karrass","Karst","Karsten","Karus","Kass","Kasten","Kastner","Katzinski","Kaufmann","Kaul","Kausemann","Kawohl","Kazmarek","Kedzierski","Keil","Keiner","Keller","Kelm","Kempe","Kemper","Kempter","Kerl","Kern","Kesselring","Kesselschläger","Kette","Kettenis","Keutel","Kick","Kiessling","Kinadeter","Kinzel","Kinzy","Kirch","Kirst","Kisabaka","Klaas","Klabuhn","Klapper","Klauder","Klaus","Kleeberg","Kleiber","Klein","Kleinert","Kleininger","Kleinmann","Kleinsteuber","Kleiss","Klemme","Klimczak","Klinger","Klink","Klopsch","Klose","Kloss","Kluge","Kluwe","Knabe","Kneifel","Knetsch","Knies","Knippel","Knobel","Knoblich","Knoll","Knorr","Knorscheidt","Knut","Kobs","Koch","Kochan","Kock","Koczulla","Koderisch","Koehl","Koehler","Koenig","Koester","Kofferschlager","Koha","Kohle","Kohlmann","Kohnle","Kohrt","Koj","Kolb","Koleiski","Kolokas","Komoll","Konieczny","Konig","Konow","Konya","Koob","Kopf","Kosenkow","Koster","Koszewski","Koubaa","Kovacs","Kowalick","Kowalinski","Kozakiewicz","Krabbe","Kraft","Kral","Kramer","Krauel","Kraus","Krause","Krauspe","Kreb","Krebs","Kreissig","Kresse","Kreutz","Krieger","Krippner","Krodinger","Krohn","Krol","Kron","Krueger","Krug","Kruger","Krull","Kruschinski","Krämer","Kröckert","Kröger","Krüger","Kubera","Kufahl","Kuhlee","Kuhnen","Kulimann","Kulma","Kumbernuss","Kummle","Kunz","Kupfer","Kupprion","Kuprion","Kurnicki","Kurrat","Kurschilgen","Kuschewitz","Kuschmann","Kuske","Kustermann","Kutscherauer","Kutzner","Kwadwo","Kähler","Käther","Köhler","Köhrbrück","Köhre","Kölotzei","König","Köpernick","Köseoglu","Kúhn","Kúhnert","Kühn","Kühnel","Kühnemund","Kühnert","Kühnke","Küsters","Küter","Laack","Lack","Ladewig","Lakomy","Lammert","Lamos","Landmann","Lang","Lange","Langfeld","Langhirt","Lanig","Lauckner","Lauinger","Laurén","Lausecker","Laux","Laws","Lax","Leberer","Lehmann","Lehner","Leibold","Leide","Leimbach","Leipold","Leist","Leiter","Leiteritz","Leitheim","Leiwesmeier","Lenfers","Lenk","Lenz","Lenzen","Leo","Lepthin","Lesch","Leschnik","Letzelter","Lewin","Lewke","Leyckes","Lg","Lichtenfeld","Lichtenhagen","Lichtl","Liebach","Liebe","Liebich","Liebold","Lieder","Lienshöft","Linden","Lindenberg","Lindenmayer","Lindner","Linke","Linnenbaum","Lippe","Lipske","Lipus","Lischka","Lobinger","Logsch","Lohmann","Lohre","Lohse","Lokar","Loogen","Lorenz","Losch","Loska","Lott","Loy","Lubina","Ludolf","Lufft","Lukoschek","Lutje","Lutz","Löser","Löwa","Lübke","Maak","Maczey","Madetzky","Madubuko","Mai","Maier","Maisch","Malek","Malkus","Mallmann","Malucha","Manns","Manz","Marahrens","Marchewski","Margis","Markowski","Marl","Marner","Marquart","Marschek","Martel","Marten","Martin","Marx","Marxen","Mathes","Mathies","Mathiszik","Matschke","Mattern","Matthes","Matula","Mau","Maurer","Mauroff","May","Maybach","Mayer","Mebold","Mehl","Mehlhorn","Mehlorn","Meier","Meisch","Meissner","Meloni","Melzer","Menga","Menne","Mensah","Mensing","Merkel","Merseburg","Mertens","Mesloh","Metzger","Metzner","Mewes","Meyer","Michallek","Michel","Mielke","Mikitenko","Milde","Minah","Mintzlaff","Mockenhaupt","Moede","Moedl","Moeller","Moguenara","Mohr","Mohrhard","Molitor","Moll","Moller","Molzan","Montag","Moormann","Mordhorst","Morgenstern","Morhelfer","Moritz","Moser","Motchebon","Motzenbbäcker","Mrugalla","Muckenthaler","Mues","Muller","Mulrain","Mächtig","Mäder","Möcks","Mögenburg","Möhsner","Möldner","Möllenbeck","Möller","Möllinger","Mörsch","Mühleis","Müller","Münch","Nabein","Nabow","Nagel","Nannen","Nastvogel","Nau","Naubert","Naumann","Ne","Neimke","Nerius","Neubauer","Neubert","Neuendorf","Neumair","Neumann","Neupert","Neurohr","Neuschwander","Newton","Ney","Nicolay","Niedermeier","Nieklauson","Niklaus","Nitzsche","Noack","Nodler","Nolte","Normann","Norris","Northoff","Nowak","Nussbeck","Nwachukwu","Nytra","Nöh","Oberem","Obergföll","Obermaier","Ochs","Oeser","Olbrich","Onnen","Ophey","Oppong","Orth","Orthmann","Oschkenat","Osei","Osenberg","Ostendarp","Ostwald","Otte","Otto","Paesler","Pajonk","Pallentin","Panzig","Paschke","Patzwahl","Paukner","Peselman","Peter","Peters","Petzold","Pfeiffer","Pfennig","Pfersich","Pfingsten","Pflieger","Pflügner","Philipp","Pichlmaier","Piesker","Pietsch","Pingpank","Pinnock","Pippig","Pitschugin","Plank","Plass","Platzer","Plauk","Plautz","Pletsch","Plotzitzka","Poehn","Poeschl","Pogorzelski","Pohl","Pohland","Pohle","Polifka","Polizzi","Pollmächer","Pomp","Ponitzsch","Porsche","Porth","Poschmann","Poser","Pottel","Prah","Prange","Prediger","Pressler","Preuk","Preuss","Prey","Priemer","Proske","Pusch","Pöche","Pöge","Raabe","Rabenstein","Rach","Radtke","Rahn","Ranftl","Rangen","Ranz","Rapp","Rath","Rau","Raubuch","Raukuc","Rautenkranz","Rehwagen","Reiber","Reichardt","Reichel","Reichling","Reif","Reifenrath","Reimann","Reinberg","Reinelt","Reinhardt","Reinke","Reitze","Renk","Rentz","Renz","Reppin","Restle","Restorff","Retzke","Reuber","Reumann","Reus","Reuss","Reusse","Rheder","Rhoden","Richards","Richter","Riedel","Riediger","Rieger","Riekmann","Riepl","Riermeier","Riester","Riethmüller","Rietmüller","Rietscher","Ringel","Ringer","Rink","Ripken","Ritosek","Ritschel","Ritter","Rittweg","Ritz","Roba","Rockmeier","Rodehau","Rodowski","Roecker","Roggatz","Rohländer","Rohrer","Rokossa","Roleder","Roloff","Roos","Rosbach","Roschinsky","Rose","Rosenauer","Rosenbauer","Rosenthal","Rosksch","Rossberg","Rossler","Roth","Rother","Ruch","Ruckdeschel","Rumpf","Rupprecht","Ruth","Ryjikh","Ryzih","Rädler","Räntsch","Rödiger","Röse","Röttger","Rücker","Rüdiger","Rüter","Sachse","Sack","Saflanis","Sagafe","Sagonas","Sahner","Saile","Sailer","Salow","Salzer","Salzmann","Sammert","Sander","Sarvari","Sattelmaier","Sauer","Sauerland","Saumweber","Savoia","Scc","Schacht","Schaefer","Schaffarzik","Schahbasian","Scharf","Schedler","Scheer","Schelk","Schellenbeck","Schembera","Schenk","Scherbarth","Scherer","Schersing","Scherz","Scheurer","Scheuring","Scheytt","Schielke","Schieskow","Schildhauer","Schilling","Schima","Schimmer","Schindzielorz","Schirmer","Schirrmeister","Schlachter","Schlangen","Schlawitz","Schlechtweg","Schley","Schlicht","Schlitzer","Schmalzle","Schmid","Schmidt","Schmidtchen","Schmitt","Schmitz","Schmuhl","Schneider","Schnelting","Schnieder","Schniedermeier","Schnürer","Schoberg","Scholz","Schonberg","Schondelmaier","Schorr","Schott","Schottmann","Schouren","Schrader","Schramm","Schreck","Schreiber","Schreiner","Schreiter","Schroder","Schröder","Schuermann","Schuff","Schuhaj","Schuldt","Schult","Schulte","Schultz","Schultze","Schulz","Schulze","Schumacher","Schumann","Schupp","Schuri","Schuster","Schwab","Schwalm","Schwanbeck","Schwandke","Schwanitz","Schwarthoff","Schwartz","Schwarz","Schwarzer","Schwarzkopf","Schwarzmeier","Schwatlo","Schweisfurth","Schwennen","Schwerdtner","Schwidde","Schwirkschlies","Schwuchow","Schäfer","Schäffel","Schäffer","Schäning","Schöckel","Schönball","Schönbeck","Schönberg","Schönebeck","Schönenberger","Schönfeld","Schönherr","Schönlebe","Schötz","Schüler","Schüppel","Schütz","Schütze","Seeger","Seelig","Sehls","Seibold","Seidel","Seiders","Seigel","Seiler","Seitz","Semisch","Senkel","Sewald","Siebel","Siebert","Siegling","Sielemann","Siemon","Siener","Sievers","Siewert","Sihler","Sillah","Simon","Sinnhuber","Sischka","Skibicki","Sladek","Slotta","Smieja","Soboll","Sokolowski","Soller","Sollner","Sommer","Somssich","Sonn","Sonnabend","Spahn","Spank","Spelmeyer","Spiegelburg","Spielvogel","Spinner","Spitzmüller","Splinter","Sporrer","Sprenger","Spöttel","Stahl","Stang","Stanger","Stauss","Steding","Steffen","Steffny","Steidl","Steigauf","Stein","Steinecke","Steinert","Steinkamp","Steinmetz","Stelkens","Stengel","Stengl","Stenzel","Stepanov","Stephan","Stern","Steuk","Stief","Stifel","Stoll","Stolle","Stolz","Storl","Storp","Stoutjesdijk","Stratmann","Straub","Strausa","Streck","Streese","Strege","Streit","Streller","Strieder","Striezel","Strogies","Strohschank","Strunz","Strutz","Stube","Stöckert","Stöppler","Stöwer","Stürmer","Suffa","Sujew","Sussmann","Suthe","Sutschet","Swillims","Szendrei","Sören","Sürth","Tafelmeier","Tang","Tasche","Taufratshofer","Tegethof","Teichmann","Tepper","Terheiden","Terlecki","Teufel","Theele","Thieke","Thimm","Thiomas","Thomas","Thriene","Thränhardt","Thust","Thyssen","Thöne","Tidow","Tiedtke","Tietze","Tilgner","Tillack","Timmermann","Tischler","Tischmann","Tittman","Tivontschik","Tonat","Tonn","Trampeli","Trauth","Trautmann","Travan","Treff","Tremmel","Tress","Tsamonikian","Tschiers","Tschirch","Tuch","Tucholke","Tudow","Tuschmo","Tächl","Többen","Töpfer","Uhlemann","Uhlig","Uhrig","Uibel","Uliczka","Ullmann","Ullrich","Umbach","Umlauft","Umminger","Unger","Unterpaintner","Urban","Urbaniak","Urbansky","Urhig","Vahlensieck","Van","Vangermain","Vater","Venghaus","Verniest","Verzi","Vey","Viellehner","Vieweg","Voelkel","Vogel","Vogelgsang","Vogt","Voigt","Vokuhl","Volk","Volker","Volkmann","Von","Vona","Vontein","Wachenbrunner","Wachtel","Wagner","Waibel","Wakan","Waldmann","Wallner","Wallstab","Walter","Walther","Walton","Walz","Wanner","Wartenberg","Waschbüsch","Wassilew","Wassiluk","Weber","Wehrsen","Weidlich","Weidner","Weigel","Weight","Weiler","Weimer","Weis","Weiss","Weller","Welsch","Welz","Welzel","Weniger","Wenk","Werle","Werner","Werrmann","Wessel","Wessinghage","Weyel","Wezel","Wichmann","Wickert","Wiebe","Wiechmann","Wiegelmann","Wierig","Wiese","Wieser","Wilhelm","Wilky","Will","Willwacher","Wilts","Wimmer","Winkelmann","Winkler","Winter","Wischek","Wischer","Wissing","Wittich","Wittl","Wolf","Wolfarth","Wolff","Wollenberg","Wollmann","Woytkowska","Wujak","Wurm","Wyludda","Wölpert","Wöschler","Wühn","Wünsche","Zach","Zaczkiewicz","Zahn","Zaituc","Zandt","Zanner","Zapletal","Zauber","Zeidler","Zekl","Zender","Zeuch","Zeyen","Zeyhle","Ziegler","Zimanyi","Zimmer","Zimmermann","Zinser","Zintl","Zipp","Zipse","Zschunke","Zuber","Zwiener","Zümsande","Östringer","Überacker"], prefix:["Dr.","Prof. Dr."],nobility_title_prefix:["zu","von","vom","von der"],name:["#{prefix} #{first_name} #{last_name}","#{first_name} #{nobility_title_prefix} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}","#{first_name} #{last_name}"]},de_AT.phone_number={formats:["01 #######","01#######","+43-1-#######","+431#######","0#### ####","0#########","+43-####-####","+43 ########"]},de_AT.cell_phone={formats:["+43-6##-#######","06##-########","+436#########","06##########"]}; -},{}],93:[function(require,module,exports){ +},{}],94:[function(require,module,exports){ var de_CH={};module.exports=de_CH,de_CH.title="German (Switzerland)",de_CH.address={country_code:["CH","CH","CH","DE","AT","US","LI","US","HK","VN"],postcode:["1###","2###","3###","4###","5###","6###","7###","8###","9###"],default_country:["Schweiz"]},de_CH.company={suffix:["AG","GmbH","und Söhne","und Partner","& Co.","Gruppe","LLC","Inc."],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"]},de_CH.internet={domain_suffix:["com","net","biz","ch","de","li","at","ch","ch"]},de_CH.phone_number={formats:["0800 ### ###","0800 ## ## ##","0## ### ## ##","0## ### ## ##","+41 ## ### ## ##","0900 ### ###","076 ### ## ##","+4178 ### ## ##","0041 79 ### ## ##"]}; -},{}],94:[function(require,module,exports){ +},{}],95:[function(require,module,exports){ var en={};module.exports=en,en.title="English",en.separator=" & ",en.address={city_prefix:["North","East","West","South","New","Lake","Port"],city_suffix:["town","ton","land","ville","berg","burgh","borough","bury","view","port","mouth","stad","furt","chester","mouth","fort","haven","side","shire"],county:["Avon","Bedfordshire","Berkshire","Borders","Buckinghamshire","Cambridgeshire"],country:["Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica (the territory South of 60 deg S)","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Bouvet Island (Bouvetoya)","Brazil","British Indian Ocean Territory (Chagos Archipelago)","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo","Congo","Cook Islands","Costa Rica","Cote d'Ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Faroe Islands","Falkland Islands (Malvinas)","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea-Bissau","Guyana","Haiti","Heard Island and McDonald Islands","Holy See (Vatican City State)","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Democratic People's Republic of Korea","Republic of Korea","Kuwait","Kyrgyz Republic","Lao People's Democratic Republic","Latvia","Lebanon","Lesotho","Liberia","Libyan Arab Jamahiriya","Liechtenstein","Lithuania","Luxembourg","Macao","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands Antilles","Netherlands","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestinian Territory","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn Islands","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saint Barthelemy","Saint Helena","Saint Kitts and Nevis","Saint Lucia","Saint Martin","Saint Pierre and Miquelon","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia (Slovak Republic)","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and the South Sandwich Islands","Spain","Sri Lanka","Sudan","Suriname","Svalbard & Jan Mayen Islands","Swaziland","Sweden","Switzerland","Syrian Arab Republic","Taiwan","Tajikistan","Tanzania","Thailand","Timor-Leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States of America","United States Minor Outlying Islands","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Virgin Islands, British","Virgin Islands, U.S.","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe"],country_code:["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],building_number:["#####","####","###"],street_suffix:["Alley","Avenue","Branch","Bridge","Brook","Brooks","Burg","Burgs","Bypass","Camp","Canyon","Cape","Causeway","Center","Centers","Circle","Circles","Cliff","Cliffs","Club","Common","Corner","Corners","Course","Court","Courts","Cove","Coves","Creek","Crescent","Crest","Crossing","Crossroad","Curve","Dale","Dam","Divide","Drive","Drive","Drives","Estate","Estates","Expressway","Extension","Extensions","Fall","Falls","Ferry","Field","Fields","Flat","Flats","Ford","Fords","Forest","Forge","Forges","Fork","Forks","Fort","Freeway","Garden","Gardens","Gateway","Glen","Glens","Green","Greens","Grove","Groves","Harbor","Harbors","Haven","Heights","Highway","Hill","Hills","Hollow","Inlet","Inlet","Island","Island","Islands","Islands","Isle","Isle","Junction","Junctions","Key","Keys","Knoll","Knolls","Lake","Lakes","Land","Landing","Lane","Light","Lights","Loaf","Lock","Locks","Locks","Lodge","Lodge","Loop","Mall","Manor","Manors","Meadow","Meadows","Mews","Mill","Mills","Mission","Mission","Motorway","Mount","Mountain","Mountain","Mountains","Mountains","Neck","Orchard","Oval","Overpass","Park","Parks","Parkway","Parkways","Pass","Passage","Path","Pike","Pine","Pines","Place","Plain","Plains","Plains","Plaza","Plaza","Point","Points","Port","Port","Ports","Ports","Prairie","Prairie","Radial","Ramp","Ranch","Rapid","Rapids","Rest","Ridge","Ridges","River","Road","Road","Roads","Roads","Route","Row","Rue","Run","Shoal","Shoals","Shore","Shores","Skyway","Spring","Springs","Springs","Spur","Spurs","Square","Square","Squares","Squares","Station","Station","Stravenue","Stravenue","Stream","Stream","Street","Street","Streets","Summit","Summit","Terrace","Throughway","Trace","Track","Trafficway","Trail","Trail","Tunnel","Tunnel","Turnpike","Turnpike","Underpass","Union","Unions","Valley","Valleys","Via","Viaduct","View","Views","Village","Village","Villages","Ville","Vista","Vista","Walk","Walks","Wall","Way","Ways","Well","Wells"],secondary_address:["Apt. ###","Suite ###"],postcode:["#####","#####-####"],postcode_by_state:["#####","#####-####"],state:["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],state_abbr:["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"],time_zone:["Pacific/Midway","Pacific/Pago_Pago","Pacific/Honolulu","America/Juneau","America/Los_Angeles","America/Tijuana","America/Denver","America/Phoenix","America/Chihuahua","America/Mazatlan","America/Chicago","America/Regina","America/Mexico_City","America/Mexico_City","America/Monterrey","America/Guatemala","America/New_York","America/Indiana/Indianapolis","America/Bogota","America/Lima","America/Lima","America/Halifax","America/Caracas","America/La_Paz","America/Santiago","America/St_Johns","America/Sao_Paulo","America/Argentina/Buenos_Aires","America/Guyana","America/Godthab","Atlantic/South_Georgia","Atlantic/Azores","Atlantic/Cape_Verde","Europe/Dublin","Europe/London","Europe/Lisbon","Europe/London","Africa/Casablanca","Africa/Monrovia","Etc/UTC","Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Prague","Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris","Europe/Amsterdam","Europe/Berlin","Europe/Berlin","Europe/Rome","Europe/Stockholm","Europe/Vienna","Africa/Algiers","Europe/Bucharest","Africa/Cairo","Europe/Helsinki","Europe/Kiev","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Vilnius","Europe/Athens","Europe/Istanbul","Europe/Minsk","Asia/Jerusalem","Africa/Harare","Africa/Johannesburg","Europe/Moscow","Europe/Moscow","Europe/Moscow","Asia/Kuwait","Asia/Riyadh","Africa/Nairobi","Asia/Baghdad","Asia/Tehran","Asia/Muscat","Asia/Muscat","Asia/Baku","Asia/Tbilisi","Asia/Yerevan","Asia/Kabul","Asia/Yekaterinburg","Asia/Karachi","Asia/Karachi","Asia/Tashkent","Asia/Kolkata","Asia/Kolkata","Asia/Kolkata","Asia/Kolkata","Asia/Kathmandu","Asia/Dhaka","Asia/Dhaka","Asia/Colombo","Asia/Almaty","Asia/Novosibirsk","Asia/Rangoon","Asia/Bangkok","Asia/Bangkok","Asia/Jakarta","Asia/Krasnoyarsk","Asia/Shanghai","Asia/Chongqing","Asia/Hong_Kong","Asia/Urumqi","Asia/Kuala_Lumpur","Asia/Singapore","Asia/Taipei","Australia/Perth","Asia/Irkutsk","Asia/Ulaanbaatar","Asia/Seoul","Asia/Tokyo","Asia/Tokyo","Asia/Tokyo","Asia/Yakutsk","Australia/Darwin","Australia/Adelaide","Australia/Melbourne","Australia/Melbourne","Australia/Sydney","Australia/Brisbane","Australia/Hobart","Asia/Vladivostok","Pacific/Guam","Pacific/Port_Moresby","Asia/Magadan","Asia/Magadan","Pacific/Noumea","Pacific/Fiji","Asia/Kamchatka","Pacific/Majuro","Pacific/Auckland","Pacific/Auckland","Pacific/Tongatapu","Pacific/Fakaofo","Pacific/Apia"],city:["#{city_prefix} #{Name.first_name}#{city_suffix}","#{city_prefix} #{Name.first_name}","#{Name.first_name}#{city_suffix}","#{Name.last_name}#{city_suffix}"],street_name:["#{Name.first_name} #{street_suffix}","#{Name.last_name} #{street_suffix}"],street_address:["#{building_number} #{street_name}"],default_country:["United States of America"]},en.credit_card={visa:["/4###########L/","/4###-####-####-###L/"],mastercard:["/5[1-5]##-####-####-###L/","/6771-89##-####-###L/"],discover:["/6011-####-####-###L/","/65##-####-####-###L/","/64[4-9]#-####-####-###L/","/6011-62##-####-####-###L/","/65##-62##-####-####-###L/","/64[4-9]#-62##-####-####-###L/"],american_express:["/34##-######-####L/","/37##-######-####L/"],diners_club:["/30[0-5]#-######-###L/","/368#-######-###L/"],jcb:["/3528-####-####-###L/","/3529-####-####-###L/","/35[3-8]#-####-####-###L/"],"switch":["/6759-####-####-###L/","/6759-####-####-####-#L/","/6759-####-####-####-##L/"],solo:["/6767-####-####-###L/","/6767-####-####-####-#L/","/6767-####-####-####-##L/"],dankort:"/5019-####-####-###L/",maestro:["/50#{9,16}L/","/5[6-8]#{9,16}L/","/56##{9,16}L/"],forbrugsforeningen:"/6007-22##-####-###L/",laser:["/6304###########L/","/6706###########L/","/6771###########L/","/6709###########L/","/6304#########{5,6}L/","/6706#########{5,6}L/","/6771#########{5,6}L/","/6709#########{5,6}L/"]},en.company={suffix:["Inc","and Sons","LLC","Group"],adjective:["Adaptive","Advanced","Ameliorated","Assimilated","Automated","Balanced","Business-focused","Centralized","Cloned","Compatible","Configurable","Cross-group","Cross-platform","Customer-focused","Customizable","Decentralized","De-engineered","Devolved","Digitized","Distributed","Diverse","Down-sized","Enhanced","Enterprise-wide","Ergonomic","Exclusive","Expanded","Extended","Face to face","Focused","Front-line","Fully-configurable","Function-based","Fundamental","Future-proofed","Grass-roots","Horizontal","Implemented","Innovative","Integrated","Intuitive","Inverse","Managed","Mandatory","Monitored","Multi-channelled","Multi-lateral","Multi-layered","Multi-tiered","Networked","Object-based","Open-architected","Open-source","Operative","Optimized","Optional","Organic","Organized","Persevering","Persistent","Phased","Polarised","Pre-emptive","Proactive","Profit-focused","Profound","Programmable","Progressive","Public-key","Quality-focused","Reactive","Realigned","Re-contextualized","Re-engineered","Reduced","Reverse-engineered","Right-sized","Robust","Seamless","Secured","Self-enabling","Sharable","Stand-alone","Streamlined","Switchable","Synchronised","Synergistic","Synergized","Team-oriented","Total","Triple-buffered","Universal","Up-sized","Upgradable","User-centric","User-friendly","Versatile","Virtual","Visionary","Vision-oriented"],descriptor:["24 hour","24/7","3rd generation","4th generation","5th generation","6th generation","actuating","analyzing","asymmetric","asynchronous","attitude-oriented","background","bandwidth-monitored","bi-directional","bifurcated","bottom-line","clear-thinking","client-driven","client-server","coherent","cohesive","composite","context-sensitive","contextually-based","content-based","dedicated","demand-driven","didactic","directional","discrete","disintermediate","dynamic","eco-centric","empowering","encompassing","even-keeled","executive","explicit","exuding","fault-tolerant","foreground","fresh-thinking","full-range","global","grid-enabled","heuristic","high-level","holistic","homogeneous","human-resource","hybrid","impactful","incremental","intangible","interactive","intermediate","leading edge","local","logistical","maximized","methodical","mission-critical","mobile","modular","motivating","multimedia","multi-state","multi-tasking","national","needs-based","neutral","next generation","non-volatile","object-oriented","optimal","optimizing","radical","real-time","reciprocal","regional","responsive","scalable","secondary","solution-oriented","stable","static","systematic","systemic","system-worthy","tangible","tertiary","transitional","uniform","upward-trending","user-facing","value-added","web-enabled","well-modulated","zero administration","zero defect","zero tolerance"],noun:["ability","access","adapter","algorithm","alliance","analyzer","application","approach","architecture","archive","artificial intelligence","array","attitude","benchmark","budgetary management","capability","capacity","challenge","circuit","collaboration","complexity","concept","conglomeration","contingency","core","customer loyalty","database","data-warehouse","definition","emulation","encoding","encryption","extranet","firmware","flexibility","focus group","forecast","frame","framework","function","functionalities","Graphic Interface","groupware","Graphical User Interface","hardware","help-desk","hierarchy","hub","implementation","info-mediaries","infrastructure","initiative","installation","instruction set","interface","internet solution","intranet","knowledge user","knowledge base","local area network","leverage","matrices","matrix","methodology","middleware","migration","model","moderator","monitoring","moratorium","neural-net","open architecture","open system","orchestration","paradigm","parallelism","policy","portal","pricing structure","process improvement","product","productivity","project","projection","protocol","secured line","service-desk","software","solution","standardization","strategy","structure","success","superstructure","support","synergy","system engine","task-force","throughput","time-frame","toolset","utilisation","website","workforce"],bs_verb:["implement","utilize","integrate","streamline","optimize","evolve","transform","embrace","enable","orchestrate","leverage","reinvent","aggregate","architect","enhance","incentivize","morph","empower","envisioneer","monetize","harness","facilitate","seize","disintermediate","synergize","strategize","deploy","brand","grow","target","syndicate","synthesize","deliver","mesh","incubate","engage","maximize","benchmark","expedite","reintermediate","whiteboard","visualize","repurpose","innovate","scale","unleash","drive","extend","engineer","revolutionize","generate","exploit","transition","e-enable","iterate","cultivate","matrix","productize","redefine","recontextualize"],bs_adjective:["clicks-and-mortar","value-added","vertical","proactive","robust","revolutionary","scalable","leading-edge","innovative","intuitive","strategic","e-business","mission-critical","sticky","one-to-one","24/7","end-to-end","global","B2B","B2C","granular","frictionless","virtual","viral","dynamic","24/365","best-of-breed","killer","magnetic","bleeding-edge","web-enabled","interactive","dot-com","sexy","back-end","real-time","efficient","front-end","distributed","seamless","extensible","turn-key","world-class","open-source","cross-platform","cross-media","synergistic","bricks-and-clicks","out-of-the-box","enterprise","integrated","impactful","wireless","transparent","next-generation","cutting-edge","user-centric","visionary","customized","ubiquitous","plug-and-play","collaborative","compelling","holistic","rich"],bs_noun:["synergies","web-readiness","paradigms","markets","partnerships","infrastructures","platforms","initiatives","channels","eyeballs","communities","ROI","solutions","e-tailers","e-services","action-items","portals","niches","technologies","content","vortals","supply-chains","convergence","relationships","architectures","interfaces","e-markets","e-commerce","systems","bandwidth","infomediaries","models","mindshare","deliverables","users","schemas","networks","applications","metrics","e-business","functionalities","experiences","web services","methodologies"],name:["#{Name.last_name} #{suffix}","#{Name.last_name}-#{Name.last_name}","#{Name.last_name}, #{Name.last_name} and #{Name.last_name}"]},en.internet={free_email:["gmail.com","yahoo.com","hotmail.com"],domain_suffix:["com","biz","info","name","net","org"]};var avatarUri=["jarjan/128.jpg","mahdif/128.jpg","sprayaga/128.jpg","ruzinav/128.jpg","Skyhartman/128.jpg","moscoz/128.jpg","kurafire/128.jpg","91bilal/128.jpg","igorgarybaldi/128.jpg","calebogden/128.jpg","malykhinv/128.jpg","joelhelin/128.jpg","kushsolitary/128.jpg","coreyweb/128.jpg","snowshade/128.jpg","areus/128.jpg","holdenweb/128.jpg","heyimjuani/128.jpg","envex/128.jpg","unterdreht/128.jpg","collegeman/128.jpg","peejfancher/128.jpg","andyisonline/128.jpg","ultragex/128.jpg","fuck_you_two/128.jpg","adellecharles/128.jpg","ateneupopular/128.jpg","ahmetalpbalkan/128.jpg","Stievius/128.jpg","kerem/128.jpg","osvaldas/128.jpg","angelceballos/128.jpg","thierrykoblentz/128.jpg","peterlandt/128.jpg","catarino/128.jpg","wr/128.jpg","weglov/128.jpg","brandclay/128.jpg","flame_kaizar/128.jpg","ahmetsulek/128.jpg","nicolasfolliot/128.jpg","jayrobinson/128.jpg","victorerixon/128.jpg","kolage/128.jpg","michzen/128.jpg","markjenkins/128.jpg","nicolai_larsen/128.jpg","gt/128.jpg","noxdzine/128.jpg","alagoon/128.jpg","idiot/128.jpg","mizko/128.jpg","chadengle/128.jpg","mutlu82/128.jpg","simobenso/128.jpg","vocino/128.jpg","guiiipontes/128.jpg","soyjavi/128.jpg","joshaustin/128.jpg","tomaslau/128.jpg","VinThomas/128.jpg","ManikRathee/128.jpg","langate/128.jpg","cemshid/128.jpg","leemunroe/128.jpg","_shahedk/128.jpg","enda/128.jpg","BillSKenney/128.jpg","divya/128.jpg","joshhemsley/128.jpg","sindresorhus/128.jpg","soffes/128.jpg","9lessons/128.jpg","linux29/128.jpg","Chakintosh/128.jpg","anaami/128.jpg","joreira/128.jpg","shadeed9/128.jpg","scottkclark/128.jpg","jedbridges/128.jpg","salleedesign/128.jpg","marakasina/128.jpg","ariil/128.jpg","BrianPurkiss/128.jpg","michaelmartinho/128.jpg","bublienko/128.jpg","devankoshal/128.jpg","ZacharyZorbas/128.jpg","timmillwood/128.jpg","joshuasortino/128.jpg","damenleeturks/128.jpg","tomas_janousek/128.jpg","herrhaase/128.jpg","RussellBishop/128.jpg","brajeshwar/128.jpg","nachtmeister/128.jpg","cbracco/128.jpg","bermonpainter/128.jpg","abdullindenis/128.jpg","isacosta/128.jpg","suprb/128.jpg","yalozhkin/128.jpg","chandlervdw/128.jpg","iamgarth/128.jpg","_victa/128.jpg","commadelimited/128.jpg","roybarberuk/128.jpg","axel/128.jpg","vladarbatov/128.jpg","ffbel/128.jpg","syropian/128.jpg","ankitind/128.jpg","traneblow/128.jpg","flashmurphy/128.jpg","ChrisFarina78/128.jpg","baliomega/128.jpg","saschamt/128.jpg","jm_denis/128.jpg","anoff/128.jpg","kennyadr/128.jpg","chatyrko/128.jpg","dingyi/128.jpg","mds/128.jpg","terryxlife/128.jpg","aaroni/128.jpg","kinday/128.jpg","prrstn/128.jpg","eduardostuart/128.jpg","dhilipsiva/128.jpg","GavicoInd/128.jpg","baires/128.jpg","rohixx/128.jpg","bigmancho/128.jpg","blakesimkins/128.jpg","leeiio/128.jpg","tjrus/128.jpg","uberschizo/128.jpg","kylefoundry/128.jpg","claudioguglieri/128.jpg","ripplemdk/128.jpg","exentrich/128.jpg","jakemoore/128.jpg","joaoedumedeiros/128.jpg","poormini/128.jpg","tereshenkov/128.jpg","keryilmaz/128.jpg","haydn_woods/128.jpg","rude/128.jpg","llun/128.jpg","sgaurav_baghel/128.jpg","jamiebrittain/128.jpg","badlittleduck/128.jpg","pifagor/128.jpg","agromov/128.jpg","benefritz/128.jpg","erwanhesry/128.jpg","diesellaws/128.jpg","jeremiaha/128.jpg","koridhandy/128.jpg","chaensel/128.jpg","andrewcohen/128.jpg","smaczny/128.jpg","gonzalorobaina/128.jpg","nandini_m/128.jpg","sydlawrence/128.jpg","cdharrison/128.jpg","tgerken/128.jpg","lewisainslie/128.jpg","charliecwaite/128.jpg","robbschiller/128.jpg","flexrs/128.jpg","mattdetails/128.jpg","raquelwilson/128.jpg","karsh/128.jpg","mrmartineau/128.jpg","opnsrce/128.jpg","hgharrygo/128.jpg","maximseshuk/128.jpg","uxalex/128.jpg","samihah/128.jpg","chanpory/128.jpg","sharvin/128.jpg","josemarques/128.jpg","jefffis/128.jpg","krystalfister/128.jpg","lokesh_coder/128.jpg","thedamianhdez/128.jpg","dpmachado/128.jpg","funwatercat/128.jpg","timothycd/128.jpg","ivanfilipovbg/128.jpg","picard102/128.jpg","marcobarbosa/128.jpg","krasnoukhov/128.jpg","g3d/128.jpg","ademilter/128.jpg","rickdt/128.jpg","operatino/128.jpg","bungiwan/128.jpg","hugomano/128.jpg","logorado/128.jpg","dc_user/128.jpg","horaciobella/128.jpg","SlaapMe/128.jpg","teeragit/128.jpg","iqonicd/128.jpg","ilya_pestov/128.jpg","andrewarrow/128.jpg","ssiskind/128.jpg","stan/128.jpg","HenryHoffman/128.jpg","rdsaunders/128.jpg","adamsxu/128.jpg","curiousoffice/128.jpg","themadray/128.jpg","michigangraham/128.jpg","kohette/128.jpg","nickfratter/128.jpg","runningskull/128.jpg","madysondesigns/128.jpg","brenton_clarke/128.jpg","jennyshen/128.jpg","bradenhamm/128.jpg","kurtinc/128.jpg","amanruzaini/128.jpg","coreyhaggard/128.jpg","Karimmove/128.jpg","aaronalfred/128.jpg","wtrsld/128.jpg","jitachi/128.jpg","therealmarvin/128.jpg","pmeissner/128.jpg","ooomz/128.jpg","chacky14/128.jpg","jesseddy/128.jpg","thinmatt/128.jpg","shanehudson/128.jpg","akmur/128.jpg","IsaryAmairani/128.jpg","arthurholcombe1/128.jpg","andychipster/128.jpg","boxmodel/128.jpg","ehsandiary/128.jpg","LucasPerdidao/128.jpg","shalt0ni/128.jpg","swaplord/128.jpg","kaelifa/128.jpg","plbabin/128.jpg","guillemboti/128.jpg","arindam_/128.jpg","renbyrd/128.jpg","thiagovernetti/128.jpg","jmillspaysbills/128.jpg","mikemai2awesome/128.jpg","jervo/128.jpg","mekal/128.jpg","sta1ex/128.jpg","robergd/128.jpg","felipecsl/128.jpg","andrea211087/128.jpg","garand/128.jpg","dhooyenga/128.jpg","abovefunction/128.jpg","pcridesagain/128.jpg","randomlies/128.jpg","BryanHorsey/128.jpg","heykenneth/128.jpg","dahparra/128.jpg","allthingssmitty/128.jpg","danvernon/128.jpg","beweinreich/128.jpg","increase/128.jpg","falvarad/128.jpg","alxndrustinov/128.jpg","souuf/128.jpg","orkuncaylar/128.jpg","AM_Kn2/128.jpg","gearpixels/128.jpg","bassamology/128.jpg","vimarethomas/128.jpg","kosmar/128.jpg","SULiik/128.jpg","mrjamesnoble/128.jpg","silvanmuhlemann/128.jpg","shaneIxD/128.jpg","nacho/128.jpg","yigitpinarbasi/128.jpg","buzzusborne/128.jpg","aaronkwhite/128.jpg","rmlewisuk/128.jpg","giancarlon/128.jpg","nbirckel/128.jpg","d_nny_m_cher/128.jpg","sdidonato/128.jpg","atariboy/128.jpg","abotap/128.jpg","karalek/128.jpg","psdesignuk/128.jpg","ludwiczakpawel/128.jpg","nemanjaivanovic/128.jpg","baluli/128.jpg","ahmadajmi/128.jpg","vovkasolovev/128.jpg","samgrover/128.jpg","derienzo777/128.jpg","jonathansimmons/128.jpg","nelsonjoyce/128.jpg","S0ufi4n3/128.jpg","xtopherpaul/128.jpg","oaktreemedia/128.jpg","nateschulte/128.jpg","findingjenny/128.jpg","namankreative/128.jpg","antonyzotov/128.jpg","we_social/128.jpg","leehambley/128.jpg","solid_color/128.jpg","abelcabans/128.jpg","mbilderbach/128.jpg","kkusaa/128.jpg","jordyvdboom/128.jpg","carlosgavina/128.jpg","pechkinator/128.jpg","vc27/128.jpg","rdbannon/128.jpg","croakx/128.jpg","suribbles/128.jpg","kerihenare/128.jpg","catadeleon/128.jpg","gcmorley/128.jpg","duivvv/128.jpg","saschadroste/128.jpg","victorDubugras/128.jpg","wintopia/128.jpg","mattbilotti/128.jpg","taylorling/128.jpg","megdraws/128.jpg","meln1ks/128.jpg","mahmoudmetwally/128.jpg","Silveredge9/128.jpg","derekebradley/128.jpg","happypeter1983/128.jpg","travis_arnold/128.jpg","artem_kostenko/128.jpg","adobi/128.jpg","daykiine/128.jpg","alek_djuric/128.jpg","scips/128.jpg","miguelmendes/128.jpg","justinrhee/128.jpg","alsobrooks/128.jpg","fronx/128.jpg","mcflydesign/128.jpg","santi_urso/128.jpg","allfordesign/128.jpg","stayuber/128.jpg","bertboerland/128.jpg","marosholly/128.jpg","adamnac/128.jpg","cynthiasavard/128.jpg","muringa/128.jpg","danro/128.jpg","hiemil/128.jpg","jackiesaik/128.jpg","zacsnider/128.jpg","iduuck/128.jpg","antjanus/128.jpg","aroon_sharma/128.jpg","dshster/128.jpg","thehacker/128.jpg","michaelbrooksjr/128.jpg","ryanmclaughlin/128.jpg","clubb3rry/128.jpg","taybenlor/128.jpg","xripunov/128.jpg","myastro/128.jpg","adityasutomo/128.jpg","digitalmaverick/128.jpg","hjartstrorn/128.jpg","itolmach/128.jpg","vaughanmoffitt/128.jpg","abdots/128.jpg","isnifer/128.jpg","sergeysafonov/128.jpg","maz/128.jpg","scrapdnb/128.jpg","chrismj83/128.jpg","vitorleal/128.jpg","sokaniwaal/128.jpg","zaki3d/128.jpg","illyzoren/128.jpg","mocabyte/128.jpg","osmanince/128.jpg","djsherman/128.jpg","davidhemphill/128.jpg","waghner/128.jpg","necodymiconer/128.jpg","praveen_vijaya/128.jpg","fabbrucci/128.jpg","cliffseal/128.jpg","travishines/128.jpg","kuldarkalvik/128.jpg","Elt_n/128.jpg","phillapier/128.jpg","okseanjay/128.jpg","id835559/128.jpg","kudretkeskin/128.jpg","anjhero/128.jpg","duck4fuck/128.jpg","scott_riley/128.jpg","noufalibrahim/128.jpg","h1brd/128.jpg","borges_marcos/128.jpg","devinhalladay/128.jpg","ciaranr/128.jpg","stefooo/128.jpg","mikebeecham/128.jpg","tonymillion/128.jpg","joshuaraichur/128.jpg","irae/128.jpg","petrangr/128.jpg","dmitriychuta/128.jpg","charliegann/128.jpg","arashmanteghi/128.jpg","adhamdannaway/128.jpg","ainsleywagon/128.jpg","svenlen/128.jpg","faisalabid/128.jpg","beshur/128.jpg","carlyson/128.jpg","dutchnadia/128.jpg","teddyzetterlund/128.jpg","samuelkraft/128.jpg","aoimedia/128.jpg","toddrew/128.jpg","codepoet_ru/128.jpg","artvavs/128.jpg","benoitboucart/128.jpg","jomarmen/128.jpg","kolmarlopez/128.jpg","creartinc/128.jpg","homka/128.jpg","gaborenton/128.jpg","robinclediere/128.jpg","maximsorokin/128.jpg","plasticine/128.jpg","j2deme/128.jpg","peachananr/128.jpg","kapaluccio/128.jpg","de_ascanio/128.jpg","rikas/128.jpg","dawidwu/128.jpg","marcoramires/128.jpg","angelcreative/128.jpg","rpatey/128.jpg","popey/128.jpg","rehatkathuria/128.jpg","the_purplebunny/128.jpg","1markiz/128.jpg","ajaxy_ru/128.jpg","brenmurrell/128.jpg","dudestein/128.jpg","oskarlevinson/128.jpg","victorstuber/128.jpg","nehfy/128.jpg","vicivadeline/128.jpg","leandrovaranda/128.jpg","scottgallant/128.jpg","victor_haydin/128.jpg","sawrb/128.jpg","ryhanhassan/128.jpg","amayvs/128.jpg","a_brixen/128.jpg","karolkrakowiak_/128.jpg","herkulano/128.jpg","geran7/128.jpg","cggaurav/128.jpg","chris_witko/128.jpg","lososina/128.jpg","polarity/128.jpg","mattlat/128.jpg","brandonburke/128.jpg","constantx/128.jpg","teylorfeliz/128.jpg","craigelimeliah/128.jpg","rachelreveley/128.jpg","reabo101/128.jpg","rahmeen/128.jpg","ky/128.jpg","rickyyean/128.jpg","j04ntoh/128.jpg","spbroma/128.jpg","sebashton/128.jpg","jpenico/128.jpg","francis_vega/128.jpg","oktayelipek/128.jpg","kikillo/128.jpg","fabbianz/128.jpg","larrygerard/128.jpg","BroumiYoussef/128.jpg","0therplanet/128.jpg","mbilalsiddique1/128.jpg","ionuss/128.jpg","grrr_nl/128.jpg","liminha/128.jpg","rawdiggie/128.jpg","ryandownie/128.jpg","sethlouey/128.jpg","pixage/128.jpg","arpitnj/128.jpg","switmer777/128.jpg","josevnclch/128.jpg","kanickairaj/128.jpg","puzik/128.jpg","tbakdesigns/128.jpg","besbujupi/128.jpg","supjoey/128.jpg","lowie/128.jpg","linkibol/128.jpg","balintorosz/128.jpg","imcoding/128.jpg","agustincruiz/128.jpg","gusoto/128.jpg","thomasschrijer/128.jpg","superoutman/128.jpg","kalmerrautam/128.jpg","gabrielizalo/128.jpg","gojeanyn/128.jpg","davidbaldie/128.jpg","_vojto/128.jpg","laurengray/128.jpg","jydesign/128.jpg","mymyboy/128.jpg","nellleo/128.jpg","marciotoledo/128.jpg","ninjad3m0/128.jpg","to_soham/128.jpg","hasslunsford/128.jpg","muridrahhal/128.jpg","levisan/128.jpg","grahamkennery/128.jpg","lepetitogre/128.jpg","antongenkin/128.jpg","nessoila/128.jpg","amandabuzard/128.jpg","safrankov/128.jpg","cocolero/128.jpg","dss49/128.jpg","matt3224/128.jpg","bluesix/128.jpg","quailandquasar/128.jpg","AlbertoCococi/128.jpg","lepinski/128.jpg","sementiy/128.jpg","mhudobivnik/128.jpg","thibaut_re/128.jpg","olgary/128.jpg","shojberg/128.jpg","mtolokonnikov/128.jpg","bereto/128.jpg","naupintos/128.jpg","wegotvices/128.jpg","xadhix/128.jpg","macxim/128.jpg","rodnylobos/128.jpg","madcampos/128.jpg","madebyvadim/128.jpg","bartoszdawydzik/128.jpg","supervova/128.jpg","markretzloff/128.jpg","vonachoo/128.jpg","darylws/128.jpg","stevedesigner/128.jpg","mylesb/128.jpg","herbigt/128.jpg","depaulawagner/128.jpg","geshan/128.jpg","gizmeedevil1991/128.jpg","_scottburgess/128.jpg","lisovsky/128.jpg","davidsasda/128.jpg","artd_sign/128.jpg","YoungCutlass/128.jpg","mgonto/128.jpg","itstotallyamy/128.jpg","victorquinn/128.jpg","osmond/128.jpg","oksanafrewer/128.jpg","zauerkraut/128.jpg","iamkeithmason/128.jpg","nitinhayaran/128.jpg","lmjabreu/128.jpg","mandalareopens/128.jpg","thinkleft/128.jpg","ponchomendivil/128.jpg","juamperro/128.jpg","brunodesign1206/128.jpg","caseycavanagh/128.jpg","luxe/128.jpg","dotgridline/128.jpg","spedwig/128.jpg","madewulf/128.jpg","mattsapii/128.jpg","helderleal/128.jpg","chrisstumph/128.jpg","jayphen/128.jpg","nsamoylov/128.jpg","chrisvanderkooi/128.jpg","justme_timothyg/128.jpg","otozk/128.jpg","prinzadi/128.jpg","gu5taf/128.jpg","cyril_gaillard/128.jpg","d_kobelyatsky/128.jpg","daniloc/128.jpg","nwdsha/128.jpg","romanbulah/128.jpg","skkirilov/128.jpg","dvdwinden/128.jpg","dannol/128.jpg","thekevinjones/128.jpg","jwalter14/128.jpg","timgthomas/128.jpg","buddhasource/128.jpg","uxpiper/128.jpg","thatonetommy/128.jpg","diansigitp/128.jpg","adrienths/128.jpg","klimmka/128.jpg","gkaam/128.jpg","derekcramer/128.jpg","jennyyo/128.jpg","nerrsoft/128.jpg","xalionmalik/128.jpg","edhenderson/128.jpg","keyuri85/128.jpg","roxanejammet/128.jpg","kimcool/128.jpg","edkf/128.jpg","matkins/128.jpg","alessandroribe/128.jpg","jacksonlatka/128.jpg","lebronjennan/128.jpg","kostaspt/128.jpg","karlkanall/128.jpg","moynihan/128.jpg","danpliego/128.jpg","saulihirvi/128.jpg","wesleytrankin/128.jpg","fjaguero/128.jpg","bowbrick/128.jpg","mashaaaaal/128.jpg","yassiryahya/128.jpg","dparrelli/128.jpg","fotomagin/128.jpg","aka_james/128.jpg","denisepires/128.jpg","iqbalperkasa/128.jpg","martinansty/128.jpg","jarsen/128.jpg","r_oy/128.jpg","justinrob/128.jpg","gabrielrosser/128.jpg","malgordon/128.jpg","carlfairclough/128.jpg","michaelabehsera/128.jpg","pierrestoffe/128.jpg","enjoythetau/128.jpg","loganjlambert/128.jpg","rpeezy/128.jpg","coreyginnivan/128.jpg","michalhron/128.jpg","msveet/128.jpg","lingeswaran/128.jpg","kolsvein/128.jpg","peter576/128.jpg","reideiredale/128.jpg","joeymurdah/128.jpg","raphaelnikson/128.jpg","mvdheuvel/128.jpg","maxlinderman/128.jpg","jimmuirhead/128.jpg","begreative/128.jpg","frankiefreesbie/128.jpg","robturlinckx/128.jpg","Talbi_ConSept/128.jpg","longlivemyword/128.jpg","vanchesz/128.jpg","maiklam/128.jpg","hermanobrother/128.jpg","rez___a/128.jpg","gregsqueeb/128.jpg","greenbes/128.jpg","_ragzor/128.jpg","anthonysukow/128.jpg","fluidbrush/128.jpg","dactrtr/128.jpg","jehnglynn/128.jpg","bergmartin/128.jpg","hugocornejo/128.jpg","_kkga/128.jpg","dzantievm/128.jpg","sawalazar/128.jpg","sovesove/128.jpg","jonsgotwood/128.jpg","byryan/128.jpg","vytautas_a/128.jpg","mizhgan/128.jpg","cicerobr/128.jpg","nilshelmersson/128.jpg","d33pthought/128.jpg","davecraige/128.jpg","nckjrvs/128.jpg","alexandermayes/128.jpg","jcubic/128.jpg","craigrcoles/128.jpg","bagawarman/128.jpg","rob_thomas10/128.jpg","cofla/128.jpg","maikelk/128.jpg","rtgibbons/128.jpg","russell_baylis/128.jpg","mhesslow/128.jpg","codysanfilippo/128.jpg","webtanya/128.jpg","madebybrenton/128.jpg","dcalonaci/128.jpg","perfectflow/128.jpg","jjsiii/128.jpg","saarabpreet/128.jpg","kumarrajan12123/128.jpg","iamsteffen/128.jpg","themikenagle/128.jpg","ceekaytweet/128.jpg","larrybolt/128.jpg","conspirator/128.jpg","dallasbpeters/128.jpg","n3dmax/128.jpg","terpimost/128.jpg","kirillz/128.jpg","byrnecore/128.jpg","j_drake_/128.jpg","calebjoyce/128.jpg","russoedu/128.jpg","hoangloi/128.jpg","tobysaxon/128.jpg","gofrasdesign/128.jpg","dimaposnyy/128.jpg","tjisousa/128.jpg","okandungel/128.jpg","billyroshan/128.jpg","oskamaya/128.jpg","motionthinks/128.jpg","knilob/128.jpg","ashocka18/128.jpg","marrimo/128.jpg","bartjo/128.jpg","omnizya/128.jpg","ernestsemerda/128.jpg","andreas_pr/128.jpg","edgarchris99/128.jpg","thomasgeisen/128.jpg","gseguin/128.jpg","joannefournier/128.jpg","demersdesigns/128.jpg","adammarsbar/128.jpg","nasirwd/128.jpg","n_tassone/128.jpg","javorszky/128.jpg","themrdave/128.jpg","yecidsm/128.jpg","nicollerich/128.jpg","canapud/128.jpg","nicoleglynn/128.jpg","judzhin_miles/128.jpg","designervzm/128.jpg","kianoshp/128.jpg","evandrix/128.jpg","alterchuca/128.jpg","dhrubo/128.jpg","ma_tiax/128.jpg","ssbb_me/128.jpg","dorphern/128.jpg","mauriolg/128.jpg","bruno_mart/128.jpg","mactopus/128.jpg","the_winslet/128.jpg","joemdesign/128.jpg","Shriiiiimp/128.jpg","jacobbennett/128.jpg","nfedoroff/128.jpg","iamglimy/128.jpg","allagringaus/128.jpg","aiiaiiaii/128.jpg","olaolusoga/128.jpg","buryaknick/128.jpg","wim1k/128.jpg","nicklacke/128.jpg","a1chapone/128.jpg","steynviljoen/128.jpg","strikewan/128.jpg","ryankirkman/128.jpg","andrewabogado/128.jpg","doooon/128.jpg","jagan123/128.jpg","ariffsetiawan/128.jpg","elenadissi/128.jpg","mwarkentin/128.jpg","thierrymeier_/128.jpg","r_garcia/128.jpg","dmackerman/128.jpg","borantula/128.jpg","konus/128.jpg","spacewood_/128.jpg","ryuchi311/128.jpg","evanshajed/128.jpg","tristanlegros/128.jpg","shoaib253/128.jpg","aislinnkelly/128.jpg","okcoker/128.jpg","timpetricola/128.jpg","sunshinedgirl/128.jpg","chadami/128.jpg","aleclarsoniv/128.jpg","nomidesigns/128.jpg","petebernardo/128.jpg","scottiedude/128.jpg","millinet/128.jpg","imsoper/128.jpg","imammuht/128.jpg","benjamin_knight/128.jpg","nepdud/128.jpg","joki4/128.jpg","lanceguyatt/128.jpg","bboy1895/128.jpg","amywebbb/128.jpg","rweve/128.jpg","haruintesettden/128.jpg","ricburton/128.jpg","nelshd/128.jpg","batsirai/128.jpg","primozcigler/128.jpg","jffgrdnr/128.jpg","8d3k/128.jpg","geneseleznev/128.jpg","al_li/128.jpg","souperphly/128.jpg","mslarkina/128.jpg","2fockus/128.jpg","cdavis565/128.jpg","xiel/128.jpg","turkutuuli/128.jpg","uxward/128.jpg","lebinoclard/128.jpg","gauravjassal/128.jpg","davidmerrique/128.jpg","mdsisto/128.jpg","andrewofficer/128.jpg","kojourin/128.jpg","dnirmal/128.jpg","kevka/128.jpg","mr_shiznit/128.jpg","aluisio_azevedo/128.jpg","cloudstudio/128.jpg","danvierich/128.jpg","alexivanichkin/128.jpg","fran_mchamy/128.jpg","perretmagali/128.jpg","betraydan/128.jpg","cadikkara/128.jpg","matbeedotcom/128.jpg","jeremyworboys/128.jpg","bpartridge/128.jpg","michaelkoper/128.jpg","silv3rgvn/128.jpg","alevizio/128.jpg","johnsmithagency/128.jpg","lawlbwoy/128.jpg","vitor376/128.jpg","desastrozo/128.jpg","thimo_cz/128.jpg","jasonmarkjones/128.jpg","lhausermann/128.jpg","xravil/128.jpg","guischmitt/128.jpg","vigobronx/128.jpg","panghal0/128.jpg","miguelkooreman/128.jpg","surgeonist/128.jpg","christianoliff/128.jpg","caspergrl/128.jpg","iamkarna/128.jpg","ipavelek/128.jpg","pierre_nel/128.jpg","y2graphic/128.jpg","sterlingrules/128.jpg","elbuscainfo/128.jpg","bennyjien/128.jpg","stushona/128.jpg","estebanuribe/128.jpg","embrcecreations/128.jpg","danillos/128.jpg","elliotlewis/128.jpg","charlesrpratt/128.jpg","vladyn/128.jpg","emmeffess/128.jpg","carlosblanco_eu/128.jpg","leonfedotov/128.jpg","rangafangs/128.jpg","chris_frees/128.jpg","tgormtx/128.jpg","bryan_topham/128.jpg","jpscribbles/128.jpg","mighty55/128.jpg","carbontwelve/128.jpg","isaacfifth/128.jpg","iamjdeleon/128.jpg","snowwrite/128.jpg","barputro/128.jpg","drewbyreese/128.jpg","sachacorazzi/128.jpg","bistrianiosip/128.jpg","magoo04/128.jpg","pehamondello/128.jpg","yayteejay/128.jpg","a_harris88/128.jpg","algunsanabria/128.jpg","zforrester/128.jpg","ovall/128.jpg","carlosjgsousa/128.jpg","geobikas/128.jpg","ah_lice/128.jpg","looneydoodle/128.jpg","nerdgr8/128.jpg","ddggccaa/128.jpg","zackeeler/128.jpg","normanbox/128.jpg","el_fuertisimo/128.jpg","ismail_biltagi/128.jpg","juangomezw/128.jpg","jnmnrd/128.jpg","patrickcoombe/128.jpg","ryanjohnson_me/128.jpg","markolschesky/128.jpg","jeffgolenski/128.jpg","kvasnic/128.jpg","lindseyzilla/128.jpg","gauchomatt/128.jpg","afusinatto/128.jpg","kevinoh/128.jpg","okansurreel/128.jpg","adamawesomeface/128.jpg","emileboudeling/128.jpg","arishi_/128.jpg","juanmamartinez/128.jpg","wikiziner/128.jpg","danthms/128.jpg","mkginfo/128.jpg","terrorpixel/128.jpg","curiousonaut/128.jpg","prheemo/128.jpg","michaelcolenso/128.jpg","foczzi/128.jpg","martip07/128.jpg","thaodang17/128.jpg","johncafazza/128.jpg","robinlayfield/128.jpg","franciscoamk/128.jpg","abdulhyeuk/128.jpg","marklamb/128.jpg","edobene/128.jpg","andresenfredrik/128.jpg","mikaeljorhult/128.jpg","chrisslowik/128.jpg","vinciarts/128.jpg","meelford/128.jpg","elliotnolten/128.jpg","yehudab/128.jpg","vijaykarthik/128.jpg","bfrohs/128.jpg","josep_martins/128.jpg","attacks/128.jpg","sur4dye/128.jpg","tumski/128.jpg","instalox/128.jpg","mangosango/128.jpg","paulfarino/128.jpg","kazaky999/128.jpg","kiwiupover/128.jpg","nvkznemo/128.jpg","tom_even/128.jpg","ratbus/128.jpg","woodsman001/128.jpg","joshmedeski/128.jpg","thewillbeard/128.jpg","psaikali/128.jpg","joe_black/128.jpg","aleinadsays/128.jpg","marcusgorillius/128.jpg","hota_v/128.jpg","jghyllebert/128.jpg","shinze/128.jpg","janpalounek/128.jpg","jeremiespoken/128.jpg","her_ruu/128.jpg","dansowter/128.jpg","felipeapiress/128.jpg","magugzbrand2d/128.jpg","posterjob/128.jpg","nathalie_fs/128.jpg","bobbytwoshoes/128.jpg","dreizle/128.jpg","jeremymouton/128.jpg","elisabethkjaer/128.jpg","notbadart/128.jpg","mohanrohith/128.jpg","jlsolerdeltoro/128.jpg","itskawsar/128.jpg","slowspock/128.jpg","zvchkelly/128.jpg","wiljanslofstra/128.jpg","craighenneberry/128.jpg","trubeatto/128.jpg","juaumlol/128.jpg","samscouto/128.jpg","BenouarradeM/128.jpg","gipsy_raf/128.jpg","netonet_il/128.jpg","arkokoley/128.jpg","itsajimithing/128.jpg","smalonso/128.jpg","victordeanda/128.jpg","_dwite_/128.jpg","richardgarretts/128.jpg","gregrwilkinson/128.jpg","anatolinicolae/128.jpg","lu4sh1i/128.jpg","stefanotirloni/128.jpg","ostirbu/128.jpg","darcystonge/128.jpg","naitanamoreno/128.jpg","michaelcomiskey/128.jpg","adhiardana/128.jpg","marcomano_/128.jpg","davidcazalis/128.jpg","falconerie/128.jpg","gregkilian/128.jpg","bcrad/128.jpg","bolzanmarco/128.jpg","low_res/128.jpg","vlajki/128.jpg","petar_prog/128.jpg","jonkspr/128.jpg","akmalfikri/128.jpg","mfacchinello/128.jpg","atanism/128.jpg","harry_sistalam/128.jpg","murrayswift/128.jpg","bobwassermann/128.jpg","gavr1l0/128.jpg","madshensel/128.jpg","mr_subtle/128.jpg","deviljho_/128.jpg","salimianoff/128.jpg","joetruesdell/128.jpg","twittypork/128.jpg","airskylar/128.jpg","dnezkumar/128.jpg","dgajjar/128.jpg","cherif_b/128.jpg","salvafc/128.jpg","louis_currie/128.jpg","deeenright/128.jpg","cybind/128.jpg","eyronn/128.jpg","vickyshits/128.jpg","sweetdelisa/128.jpg","cboller1/128.jpg","andresdjasso/128.jpg","melvindidit/128.jpg","andysolomon/128.jpg","thaisselenator_/128.jpg","lvovenok/128.jpg","giuliusa/128.jpg","belyaev_rs/128.jpg","overcloacked/128.jpg","kamal_chaneman/128.jpg","incubo82/128.jpg","hellofeverrrr/128.jpg","mhaligowski/128.jpg","sunlandictwin/128.jpg","bu7921/128.jpg","andytlaw/128.jpg","jeremery/128.jpg","finchjke/128.jpg","manigm/128.jpg","umurgdk/128.jpg","scottfeltham/128.jpg","ganserene/128.jpg","mutu_krish/128.jpg","jodytaggart/128.jpg","ntfblog/128.jpg","tanveerrao/128.jpg","hfalucas/128.jpg","alxleroydeval/128.jpg","kucingbelang4/128.jpg","bargaorobalo/128.jpg","colgruv/128.jpg","stalewine/128.jpg","kylefrost/128.jpg","baumannzone/128.jpg","angelcolberg/128.jpg","sachingawas/128.jpg","jjshaw14/128.jpg","ramanathan_pdy/128.jpg","johndezember/128.jpg","nilshoenson/128.jpg","brandonmorreale/128.jpg","nutzumi/128.jpg","brandonflatsoda/128.jpg","sergeyalmone/128.jpg","klefue/128.jpg","kirangopal/128.jpg","baumann_alex/128.jpg","matthewkay_/128.jpg","jay_wilburn/128.jpg","shesgared/128.jpg","apriendeau/128.jpg","johnriordan/128.jpg","wake_gs/128.jpg","aleksitappura/128.jpg","emsgulam/128.jpg","xilantra/128.jpg","imomenui/128.jpg","sircalebgrove/128.jpg","newbrushes/128.jpg","hsinyo23/128.jpg","m4rio/128.jpg","katiemdaly/128.jpg","s4f1/128.jpg","ecommerceil/128.jpg","marlinjayakody/128.jpg","swooshycueb/128.jpg","sangdth/128.jpg","coderdiaz/128.jpg","bluefx_/128.jpg","vivekprvr/128.jpg","sasha_shestakov/128.jpg","eugeneeweb/128.jpg","dgclegg/128.jpg","n1ght_coder/128.jpg","dixchen/128.jpg","blakehawksworth/128.jpg","trueblood_33/128.jpg","hai_ninh_nguyen/128.jpg","marclgonzales/128.jpg","yesmeck/128.jpg","stephcoue/128.jpg","doronmalki/128.jpg","ruehldesign/128.jpg","anasnakawa/128.jpg","kijanmaharjan/128.jpg","wearesavas/128.jpg","stefvdham/128.jpg","tweetubhai/128.jpg","alecarpentier/128.jpg","fiterik/128.jpg","antonyryndya/128.jpg","d00maz/128.jpg","theonlyzeke/128.jpg","missaaamy/128.jpg","carlosm/128.jpg","manekenthe/128.jpg","reetajayendra/128.jpg","jeremyshimko/128.jpg","justinrgraham/128.jpg","stefanozoffoli/128.jpg","overra/128.jpg","mrebay007/128.jpg","shvelo96/128.jpg","pyronite/128.jpg","thedjpetersen/128.jpg","rtyukmaev/128.jpg","_williamguerra/128.jpg","albertaugustin/128.jpg","vikashpathak18/128.jpg","kevinjohndayy/128.jpg","vj_demien/128.jpg","colirpixoil/128.jpg","goddardlewis/128.jpg","laasli/128.jpg","jqiuss/128.jpg","heycamtaylor/128.jpg","nastya_mane/128.jpg","mastermindesign/128.jpg","ccinojasso1/128.jpg","nyancecom/128.jpg","sandywoodruff/128.jpg","bighanddesign/128.jpg","sbtransparent/128.jpg","aviddayentonbay/128.jpg","richwild/128.jpg","kaysix_dizzy/128.jpg","tur8le/128.jpg","seyedhossein1/128.jpg","privetwagner/128.jpg","emmandenn/128.jpg","dev_essentials/128.jpg","jmfsocial/128.jpg","_yardenoon/128.jpg","mateaodviteza/128.jpg","weavermedia/128.jpg","mufaddal_mw/128.jpg","hafeeskhan/128.jpg","ashernatali/128.jpg","sulaqo/128.jpg","eddiechen/128.jpg","josecarlospsh/128.jpg","vm_f/128.jpg","enricocicconi/128.jpg","danmartin70/128.jpg","gmourier/128.jpg","donjain/128.jpg","mrxloka/128.jpg","_pedropinho/128.jpg","eitarafa/128.jpg","oscarowusu/128.jpg","ralph_lam/128.jpg","panchajanyag/128.jpg","woodydotmx/128.jpg","jerrybai1907/128.jpg","marshallchen_/128.jpg","xamorep/128.jpg","aio___/128.jpg","chaabane_wail/128.jpg","txcx/128.jpg","akashsharma39/128.jpg","falling_soul/128.jpg","sainraja/128.jpg","mugukamil/128.jpg","johannesneu/128.jpg","markwienands/128.jpg","karthipanraj/128.jpg","balakayuriy/128.jpg","alan_zhang_/128.jpg","layerssss/128.jpg","kaspernordkvist/128.jpg","mirfanqureshi/128.jpg","hanna_smi/128.jpg","VMilescu/128.jpg","aeon56/128.jpg","m_kalibry/128.jpg","sreejithexp/128.jpg","dicesales/128.jpg","dhoot_amit/128.jpg","smenov/128.jpg","lonesomelemon/128.jpg","vladimirdevic/128.jpg","joelcipriano/128.jpg","haligaliharun/128.jpg","buleswapnil/128.jpg","serefka/128.jpg","ifarafonow/128.jpg","vikasvinfotech/128.jpg","urrutimeoli/128.jpg","areandacom/128.jpg"]; en.internet.avatar_uri=[];for(var i=0;i0;e--)r.push(faker.lorem.sentence());return r.join("\n")},paragraph:function(e){return"undefined"==typeof e&&(e=3),faker.lorem.sentences(e+faker.random.number(3))},paragraphs:function(e){"undefined"==typeof e&&(e=3);var r=[];for(e;e>0;e--)r.push(faker.lorem.paragraph());return r.join("\n \r ")}};module.exports=lorem; -},{"../index":81,"./helpers":87}],119:[function(require,module,exports){ +},{"../index":82,"./helpers":88}],120:[function(require,module,exports){ var faker=require("../index"),_name={firstName:function(){if("undefined"!=typeof faker.definitions.name.male_first_name&&"undefined"!=typeof faker.definitions.name.female_first_name){var e=faker.random.number(1);return faker.random.array_element(0===e?faker.locales[faker.locale].name.male_first_name:faker.locales[faker.locale].name.female_first_name)}return faker.random.array_element(faker.definitions.name.first_name)},lastName:function(){if("undefined"!=typeof faker.definitions.name.male_last_name&&"undefined"!=typeof faker.defintions.name.female_last_name){var e=faker.random.number(1);return faker.random.array_element(0===e?faker.locales[faker.locale].name.male_last_name:faker.locales[faker.locale].name.female_last_name)}return faker.random.array_element(faker.definitions.name.last_name)},findName:function(e,a){var n=faker.random.number(8);switch(e=e||faker.name.firstName(),a=a||faker.name.lastName(),n){case 0:return faker.name.prefix()+" "+e+" "+a;case 1:return e+" "+a+" "+faker.name.suffix()}return e+" "+a},prefix:function(){return faker.random.array_element(faker.definitions.name.prefix)},suffix:function(){return faker.random.array_element(faker.definitions.name.suffix)}};module.exports=_name; -},{"../index":81}],120:[function(require,module,exports){ +},{"../index":82}],121:[function(require,module,exports){ var faker=require("../index"),phone={phoneNumber:function(e){return e=e||faker.phone.phoneFormats(),faker.helpers.replaceSymbolWithNumber(e)},phoneNumberFormat:function(e){return e=e||0,faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[e])},phoneFormats:function(){return faker.random.array_element(faker.definitions.phone_number.formats)}};module.exports=phone; -},{"../index":81}],121:[function(require,module,exports){ +},{"../index":82}],122:[function(require,module,exports){ var mersenne=require("../vendor/mersenne"),faker=require("../index"),random={number:function(e){"number"==typeof e&&(e={max:e}),e=e||{},"undefined"==typeof e.min&&(e.min=0),"undefined"==typeof e.max&&(e.max=1),"undefined"==typeof e.precision&&(e.precision=1);var n=e.max;n>0&&(n+=e.precision);var r=e.precision*Math.floor(mersenne.rand(n/e.precision,e.min/e.precision));return r},array_element:function(e){e=e||["a","b","c"];var n=faker.random.number({max:e.length-1});return e[n]},object_element:function(e,n){e=e||{};var r=Object.keys(e),x=faker.random.array_element(r);return"key"===n?x:e[x]},uuid:function(){var e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",n=function(e){var n=16*Math.random()|0,r="x"==e?n:3&n|8;return r.toString(16)};return e.replace(/[xy]/g,n)}};module.exports=random; -},{"../index":81,"../vendor/mersenne":122}],122:[function(require,module,exports){ +},{"../index":82,"../vendor/mersenne":123}],123:[function(require,module,exports){ function MersenneTwister19937(){function n(n){return 0>n?(n^s)+s:n}function r(r,e){return e>r?n(4294967296-(e-r)&4294967295):r-e}function e(r,e){return n(r+e&4294967295)}function t(r,t){for(var i=0,a=0;32>a;++a)r>>>a&1&&(i=e(i,n(t<g;g++)f[g]=e(t(1812433253,n(f[g-1]^f[g-1]>>>30)),g),f[g]=n(4294967295&f[g])},this.init_by_array=function(a,o){var s,u,g;for(this.init_genrand(19650218),s=1,u=0,g=i>o?i:o;g;g--)f[s]=e(e(n(f[s]^t(n(f[s-1]^f[s-1]>>>30),1664525)),a[u]),u),f[s]=n(4294967295&f[s]),s++,u++,s>=i&&(f[0]=f[i-1],s=1),u>=o&&(u=0);for(g=i-1;g;g--)f[s]=r(n((dbg=f[s])^t(n(f[s-1]^f[s-1]>>>30),1566083941)),s),f[s]=n(4294967295&f[s]),s++,s>=i&&(f[0]=f[i-1],s=1);f[0]=2147483648};var d=[0,o];this.genrand_int32=function(){var r;if(g>=i){var e;for(g==i+1&&this.init_genrand(5489),e=0;i-a>e;e++)r=n(f[e]&s|f[e+1]&u),f[e]=n(f[e+a]^r>>>1^d[1&r]);for(;i-1>e;e++)r=n(f[e]&s|f[e+1]&u),f[e]=n(f[e+(a-i)]^r>>>1^d[1&r]);r=n(f[i-1]&s|f[0]&u),f[i-1]=n(f[a-1]^r>>>1^d[1&r]),g=0}return r=f[g++],r=n(r^r>>>11),r=n(r^r<<7&2636928640),r=n(r^r<<15&4022730752),r=n(r^r>>>18)},this.genrand_int31=function(){return this.genrand_int32()>>>1},this.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},this.genrand_real2=function(){return this.genrand_int32()*(1/4294967296)},this.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},this.genrand_res53=function(){var n=this.genrand_int32()>>>5,r=this.genrand_int32()>>>6;return(67108864*n+r)*(1/9007199254740992)}}exports.MersenneTwister19937=MersenneTwister19937;var gen=new MersenneTwister19937;gen.init_genrand((new Date).getTime()%1e9),exports.rand=function(n,r){return n||(r=0,n=32768),Math.floor(gen.genrand_real2()*(n-r)+r)},exports.seed=function(n){if("number"!=typeof n)throw new Error("seed(S) must take numeric argument; is "+typeof n);gen.init_genrand(n)},exports.seed_array=function(n){if("object"!=typeof n)throw new Error("seed_array(A) must take array of numbers; is "+typeof n);gen.init_by_array(n)}; -},{}],123:[function(require,module,exports){ +},{}],124:[function(require,module,exports){ !function(e){var o,r,t,n,a;t=/[a-zA-Z]$/,a=/[aeiouAEIOU]$/,r=/[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/,o=e.localPasswordGeneratorLibraryName||"generatePassword",n=function(e,o,t,l){var d,u;return null==e&&(e=10),null==o&&(o=!0),null==t&&(t=/\w/),null==l&&(l=""),l.length>=e?l:(o&&(t=l.match(r)?a:r),u=Math.floor(94*Math.random())+33,d=String.fromCharCode(u),o&&(d=d.toLowerCase()),d.match(t)?n(e,o,t,""+l+d):n(e,o,t,l))},("undefined"!=typeof exports?exports:e)[o]=n,"undefined"!=typeof exports&&"undefined"!=typeof module&&module.exports&&(module.exports=n)}(this); -},{}],124:[function(require,module,exports){ +},{}],125:[function(require,module,exports){ function rnd(r,n){if(r=r||0,n=n||100,"number"==typeof n&&"number"==typeof r)return function(r,n){if(r>n)throw new RangeError("expected min <= max; got min = "+r+", max = "+n);return Math.floor(Math.random()*(n-r+1))+r}(r,n);if("[object Array]"===Object.prototype.toString.call(r))return r[Math.floor(Math.random()*r.length)];if(r&&"object"==typeof r)return function(r){var n,o,i=rnd(0,100)/100,e=0,t=0;for(n in r)if(r.hasOwnProperty(n)){if(t=r[n]+e,o=n,i>=e&&t>=i)break;e+=r[n]}return o}(r);throw new TypeError("Invalid arguments passed to rnd. ("+(n?r+", "+n:r)+")")}function randomLang(){return rnd(["AB","AF","AN","AR","AS","AZ","BE","BG","BN","BO","BR","BS","CA","CE","CO","CS","CU","CY","DA","DE","EL","EN","EO","ES","ET","EU","FA","FI","FJ","FO","FR","FY","GA","GD","GL","GV","HE","HI","HR","HT","HU","HY","ID","IS","IT","JA","JV","KA","KG","KO","KU","KW","KY","LA","LB","LI","LN","LT","LV","MG","MK","MN","MO","MS","MT","MY","NB","NE","NL","NN","NO","OC","PL","PT","RM","RO","RU","SC","SE","SK","SL","SO","SQ","SR","SV","SW","TK","TR","TY","UK","UR","UZ","VI","VO","YI","ZH"])}function randomBrowserAndOS(){var r=rnd({chrome:.45132810566,iexplorer:.27477061836,firefox:.19384170608,safari:.06186781118,opera:.01574236955}),n={chrome:{win:.89,mac:.09,lin:.02},firefox:{win:.83,mac:.16,lin:.01},opera:{win:.91,mac:.03,lin:.06},safari:{win:.04,mac:.96},iexplorer:["win"]};return[r,rnd(n[r])]}function randomProc(r){var n={lin:["i686","x86_64"],mac:{Intel:.48,PPC:.01,"U; Intel":.48,"U; PPC":.01},win:["","WOW64","Win64; x64"]};return rnd(n[r])}function randomRevision(r){for(var n="",o=0;r>o;o++)n+="."+rnd(0,9);return n}var version_string={net:function(){return[rnd(1,4),rnd(0,9),rnd(1e4,99999),rnd(0,9)].join(".")},nt:function(){return rnd(5,6)+"."+rnd(0,3)},ie:function(){return rnd(7,11)},trident:function(){return rnd(3,7)+"."+rnd(0,1)},osx:function(r){return[10,rnd(5,10),rnd(0,9)].join(r||".")},chrome:function(){return[rnd(13,39),0,rnd(800,899),0].join(".")},presto:function(){return"2.9."+rnd(160,190)},presto2:function(){return rnd(10,12)+".00"},safari:function(){return rnd(531,538)+"."+rnd(0,2)+"."+rnd(0,2)}},browser={firefox:function(r){var n=rnd(5,15)+randomRevision(2),o="Gecko/20100101 Firefox/"+n,i=randomProc(r),e="win"===r?"(Windows NT "+version_string.nt()+(i?"; "+i:""):"mac"===r?"(Macintosh; "+i+" Mac OS X "+version_string.osx():"(X11; Linux "+i;return"Mozilla/5.0 "+e+"; rv:"+n.slice(0,-2)+") "+o},iexplorer:function(){var r=version_string.ie();return r>=11?"Mozilla/5.0 (Windows NT 6."+rnd(1,3)+"; Trident/7.0; "+rnd(["Touch; ",""])+"rv:11.0) like Gecko":"Mozilla/5.0 (compatible; MSIE "+r+".0; Windows NT "+version_string.nt()+"; Trident/"+version_string.trident()+(1===rnd(0,1)?"; .NET CLR "+version_string.net():"")+")"},opera:function(r){var n=" Presto/"+version_string.presto()+" Version/"+version_string.presto2()+")",o="win"===r?"(Windows NT "+version_string.nt()+"; U; "+randomLang()+n:"lin"===r?"(X11; Linux "+randomProc(r)+"; U; "+randomLang()+n:"(Macintosh; Intel Mac OS X "+version_string.osx()+" U; "+randomLang()+" Presto/"+version_string.presto()+" Version/"+version_string.presto2()+")";return"Opera/"+rnd(9,14)+"."+rnd(0,99)+" "+o},safari:function r(n){var r=version_string.safari(),o=rnd(4,7)+"."+rnd(0,1)+"."+rnd(0,10),i="mac"===n?"(Macintosh; "+randomProc("mac")+" Mac OS X "+version_string.osx("_")+" rv:"+rnd(2,6)+".0; "+randomLang()+") ":"(Windows; U; Windows NT "+version_string.nt()+")";return"Mozilla/5.0 "+i+"AppleWebKit/"+r+" (KHTML, like Gecko) Version/"+o+" Safari/"+r},chrome:function(r){var n=version_string.safari(),o="mac"===r?"(Macintosh; "+randomProc("mac")+" Mac OS X "+version_string.osx("_")+") ":"win"===r?"(Windows; U; Windows NT "+version_string.nt()+")":"(X11; Linux "+randomProc(r);return"Mozilla/5.0 "+o+" AppleWebKit/"+n+" (KHTML, like Gecko) Chrome/"+version_string.chrome()+" Safari/"+n}};exports.generate=function(){var r=randomBrowserAndOS();return browser[r[0]](r[1])}; -},{}],125:[function(require,module,exports){ +},{}],126:[function(require,module,exports){ function toOtherCase(e){return e+(e>=97&&122>=e?-32:e>=65&&90>=e?32:0)}function randBool(){return!this.randInt(0,1)}function randSelect(e){return e instanceof DRange?e.index(this.randInt(0,e.length-1)):e[this.randInt(0,e.length-1)]}function char(e,t){return e=t&&randBool.call(this)?toOtherCase(e):e,String.fromCharCode(e)}function expand(e){if(e.type===ret.types.CHAR)return new DRange(e.value);if(e.type===ret.types.RANGE)return new DRange(e.from,e.to);if(e.type===ret.types.SET){for(var t=new DRange,n=0;ni;i++)r+=gen.call(this,n[i],t);return e.remember&&(t[e.groupNumber]=r),r;case types.POSITION:return"";case types.SET:var s=expand.call(this,e);return s.length?char.call(this,randSelect.call(this,s),this.ignoreCase):"";case types.RANGE:return char.call(this,this.randInt(e.from,e.to),this.ignoreCase);case types.REPETITION:for(a=this.randInt(e.min,e.max===1/0?e.min+this.max:e.max),r="",i=0;a>i;i++)r+=gen.call(this,e.value,t);return r;case types.REFERENCE:return t[e.value-1]||"";case types.CHAR:return char.call(this,e.value,this.ignoreCase)}}var ret=require("ret"),DRange=require("discontinuous-range"),types=ret.types,RandExp=module.exports=function(e,t){if(this.defaultRange=this.defaultRange.clone(),e instanceof RegExp)this.ignoreCase=e.ignoreCase,this.multiline=e.multiline,"number"==typeof e.max&&(this.max=e.max),e=e.source;else{if("string"!=typeof e)throw new Error("Expected a regexp or string");this.ignoreCase=t&&-1!==t.indexOf("i"),this.multiline=t&&-1!==t.indexOf("m")}this.tokens=ret(e)};RandExp.prototype.max=100,RandExp.prototype.gen=function(){return gen.call(this,this.tokens,[])},RandExp.randexp=function(e,t){var n;return void 0===e._randexp?(n=new RandExp(e,t),e._randexp=n):(n=e._randexp,"number"==typeof e.max&&(n.max=e.max),e.defaultRange instanceof DRange&&(n.defaultRange=e.defaultRange),"function"==typeof e.randInt&&(n.randInt=e.randInt)),n.gen()},RandExp.sugar=function(){RegExp.prototype.gen=function(){return RandExp.randexp(this)}},RandExp.prototype.defaultRange=new DRange(32,126),RandExp.prototype.randInt=function(e,t){return e+Math.floor(Math.random()*(1+t-e))}; -},{"discontinuous-range":126,"ret":127}],126:[function(require,module,exports){ +},{"discontinuous-range":127,"ret":128}],127:[function(require,module,exports){ function _SubRange(n,t){this.low=n,this.high=t,this.length=1+t-n}function DiscontinuousRange(n,t){return this instanceof DiscontinuousRange?(this.ranges=[],this.length=0,void 0!==n&&this.add(n,t),void 0):new DiscontinuousRange(n,t)}function _update_length(n){n.length=n.ranges.reduce(function(n,t){return n+t.length},0)}_SubRange.prototype.overlaps=function(n){return!(this.highn.high)},_SubRange.prototype.touches=function(n){return!(this.high+1n.high)},_SubRange.prototype.add=function(n){return this.touches(n)&&new _SubRange(Math.min(this.low,n.low),Math.max(this.high,n.high))},_SubRange.prototype.subtract=function(n){return this.overlaps(n)?n.low<=this.low&&n.high>=this.high?[]:n.low>this.low&&n.high=this.ranges.length?null:this.ranges[t].low+n},DiscontinuousRange.prototype.toString=function(){return"[ "+this.ranges.join(", ")+" ]"},DiscontinuousRange.prototype.clone=function(){return new DiscontinuousRange(this)},module.exports=DiscontinuousRange; -},{}],127:[function(require,module,exports){ +},{}],128:[function(require,module,exports){ var util=require("./util"),types=require("./types"),sets=require("./sets"),positions=require("./positions");module.exports=function(e){var s,t,a=0,p={type:types.ROOT,stack:[]},r=p,o=p.stack,u=[],n=function(s){util.error(e,"Nothing to repeat at column "+(s-1))},i=util.strToChars(e);for(s=i.length;s>a;)switch(t=i[a++]){case"\\":switch(t=i[a++]){case"b":o.push(positions.wordBoundary());break;case"B":o.push(positions.nonWordBoundary());break;case"w":o.push(sets.words());break;case"W":o.push(sets.notWords());break;case"d":o.push(sets.ints());break;case"D":o.push(sets.notInts());break;case"s":o.push(sets.whitespace());break;case"S":o.push(sets.notWhitespace());break;default:o.push(/\d/.test(t)?{type:types.REFERENCE,value:parseInt(t,10)}:{type:types.CHAR,value:t.charCodeAt(0)})}break;case"^":o.push(positions.begin());break;case"$":o.push(positions.end());break;case"[":var c;"^"===i[a]?(c=!0,a++):c=!1;var l=util.tokenizeClass(i.slice(a),e);a+=l[1],o.push({type:types.SET,set:l[0],not:c});break;case".":o.push(sets.anyChar());break;case"(":var h={type:types.GROUP,stack:[],remember:!0};t=i[a],"?"===t&&(t=i[a+1],a+=2,"="===t?h.followedBy=!0:"!"===t?h.notFollowedBy=!0:":"!==t&&util.error(e,"Invalid group, character '"+t+"' after '?' at column "+(a-1)),h.remember=!1),o.push(h),u.push(r),r=h,o=h.stack;break;case")":0===u.length&&util.error(e,"Unmatched ) at column "+(a-1)),r=u.pop(),o=r.options?r.options[r.options.length-1]:r.stack;break;case"|":r.options||(r.options=[r.stack],delete r.stack);var y=[];r.options.push(y),o=y;break;case"{":var k,b,d=/^(\d+)(,(\d+)?)?\}/.exec(i.slice(a));null!==d?(k=parseInt(d[1],10),b=d[2]?d[3]?parseInt(d[3],10):1/0:k,a+=d[0].length,o.push({type:types.REPETITION,min:k,max:b,value:o.pop()})):o.push({type:types.CHAR,value:123});break;case"?":0===o.length&&n(a),o.push({type:types.REPETITION,min:0,max:1,value:o.pop()});break;case"+":0===o.length&&n(a),o.push({type:types.REPETITION,min:1,max:1/0,value:o.pop()});break;case"*":0===o.length&&n(a),o.push({type:types.REPETITION,min:0,max:1/0,value:o.pop()});break;default:o.push({type:types.CHAR,value:t.charCodeAt(0)})}return 0!==u.length&&util.error(e,"Unterminated group"),p},module.exports.types=types; -},{"./positions":128,"./sets":129,"./types":130,"./util":131}],128:[function(require,module,exports){ +},{"./positions":129,"./sets":130,"./types":131,"./util":132}],129:[function(require,module,exports){ var types=require("./types");exports.wordBoundary=function(){return{type:types.POSITION,value:"b"}},exports.nonWordBoundary=function(){return{type:types.POSITION,value:"B"}},exports.begin=function(){return{type:types.POSITION,value:"^"}},exports.end=function(){return{type:types.POSITION,value:"$"}}; -},{"./types":130}],129:[function(require,module,exports){ +},{"./types":131}],130:[function(require,module,exports){ var types=require("./types"),INTS=function(){return[{type:types.RANGE,from:48,to:57}]},WORDS=function(){return[{type:types.CHAR,value:95},{type:types.RANGE,from:97,to:122},{type:types.RANGE,from:65,to:90}].concat(INTS())},WHITESPACE=function(){return[{type:types.CHAR,value:9},{type:types.CHAR,value:10},{type:types.CHAR,value:11},{type:types.CHAR,value:12},{type:types.CHAR,value:13},{type:types.CHAR,value:32},{type:types.CHAR,value:160},{type:types.CHAR,value:5760},{type:types.CHAR,value:6158},{type:types.CHAR,value:8192},{type:types.CHAR,value:8193},{type:types.CHAR,value:8194},{type:types.CHAR,value:8195},{type:types.CHAR,value:8196},{type:types.CHAR,value:8197},{type:types.CHAR,value:8198},{type:types.CHAR,value:8199},{type:types.CHAR,value:8200},{type:types.CHAR,value:8201},{type:types.CHAR,value:8202},{type:types.CHAR,value:8232},{type:types.CHAR,value:8233},{type:types.CHAR,value:8239},{type:types.CHAR,value:8287},{type:types.CHAR,value:12288},{type:types.CHAR,value:65279}]},NOTANYCHAR=function(){return[{type:types.CHAR,value:10},{type:types.CHAR,value:13},{type:types.CHAR,value:8232},{type:types.CHAR,value:8233}]};exports.words=function(){return{type:types.SET,set:WORDS(),not:!1}},exports.notWords=function(){return{type:types.SET,set:WORDS(),not:!0}},exports.ints=function(){return{type:types.SET,set:INTS(),not:!1}},exports.notInts=function(){return{type:types.SET,set:INTS(),not:!0}},exports.whitespace=function(){return{type:types.SET,set:WHITESPACE(),not:!1}},exports.notWhitespace=function(){return{type:types.SET,set:WHITESPACE(),not:!0}},exports.anyChar=function(){return{type:types.SET,set:NOTANYCHAR(),not:!0}}; -},{"./types":130}],130:[function(require,module,exports){ +},{"./types":131}],131:[function(require,module,exports){ module.exports={ROOT:0,GROUP:1,POSITION:2,SET:3,RANGE:4,REPETITION:5,REFERENCE:6,CHAR:7}; -},{}],131:[function(require,module,exports){ +},{}],132:[function(require,module,exports){ var types=require("./types"),sets=require("./sets"),CTRL="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?",SLSH={0:0,t:9,n:10,v:11,f:12,r:13};exports.strToChars=function(e){var s=/(\[\\b\])|\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|(0?[0-7]{2})|c([@A-Z\[\\\]\^?])|([0tnvfr]))/g;return e=e.replace(s,function(e,s,r,t,n,o,a){var p=s?8:r?parseInt(r,16):t?parseInt(t,16):n?parseInt(n,8):o?CTRL.indexOf(o):a?SLSH[a]:void 0,i=String.fromCharCode(p);return/[\[\]{}\^$.|?*+()]/.test(i)&&(i="\\"+i),i})},exports.tokenizeClass=function(e,s){for(var r,t,n=[],o=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(?:\\)?([^\]]))|(\])|(?:\\)?(.)/g;null!=(r=o.exec(e));)if(r[1])n.push(sets.words());else if(r[2])n.push(sets.ints());else if(r[3])n.push(sets.whitespace());else if(r[4])n.push(sets.notWords());else if(r[5])n.push(sets.notInts());else if(r[6])n.push(sets.notWhitespace());else if(r[7])n.push({type:types.RANGE,from:(r[8]||r[9]).charCodeAt(0),to:r[10].charCodeAt(0)});else{if(!(t=r[12]))return[n,o.lastIndex];n.push({type:types.CHAR,value:t.charCodeAt(0)})}exports.error(s,"Unterminated character class")},exports.error=function(e,s){throw new SyntaxError("Invalid regular expression: /"+e+"/: "+s)}; -},{"./sets":129,"./types":130}],132:[function(require,module,exports){ +},{"./sets":130,"./types":131}],133:[function(require,module,exports){ function indexOf(e,n,r){var a=e?e.length:0;if(!a)return-1;if("number"==typeof r)r=0>r?nativeMax(a+r,0):r;else if(r){var i=binaryIndex(e,n),t=e[i];return(n===n?n===t:t!==t)?i:-1}return baseIndexOf(e,n,r||0)}var baseIndexOf=require("../internal/baseIndexOf"),binaryIndex=require("../internal/binaryIndex"),nativeMax=Math.max;module.exports=indexOf; -},{"../internal/baseIndexOf":150,"../internal/binaryIndex":162}],133:[function(require,module,exports){ +},{"../internal/baseIndexOf":151,"../internal/binaryIndex":163}],134:[function(require,module,exports){ function last(t){var e=t?t.length:0;return e?t[e-1]:void 0}module.exports=last; -},{}],134:[function(require,module,exports){ +},{}],135:[function(require,module,exports){ module.exports=require("./forEach"); -},{"./forEach":135}],135:[function(require,module,exports){ +},{"./forEach":136}],136:[function(require,module,exports){ var arrayEach=require("../internal/arrayEach"),baseEach=require("../internal/baseEach"),createForEach=require("../internal/createForEach"),forEach=createForEach(arrayEach,baseEach);module.exports=forEach; -},{"../internal/arrayEach":139,"../internal/baseEach":145,"../internal/createForEach":168}],136:[function(require,module,exports){ +},{"../internal/arrayEach":140,"../internal/baseEach":146,"../internal/createForEach":169}],137:[function(require,module,exports){ function map(a,r,e){var i=isArray(a)?arrayMap:baseMap;return r=baseCallback(r,e,3),i(a,r)}var arrayMap=require("../internal/arrayMap"),baseCallback=require("../internal/baseCallback"),baseMap=require("../internal/baseMap"),isArray=require("../lang/isArray");module.exports=map; -},{"../internal/arrayMap":140,"../internal/baseCallback":142,"../internal/baseMap":155,"../lang/isArray":191}],137:[function(require,module,exports){ +},{"../internal/arrayMap":141,"../internal/baseCallback":143,"../internal/baseMap":156,"../lang/isArray":192}],138:[function(require,module,exports){ (function (global){ (function(){function n(n,t){if(n!==t){var r=n===n,e=t===t;if(n>t||!r||n===x&&e)return 1;if(t>n||!e||t===x&&r)return-1}return 0}function t(n,t,r){for(var e=n.length,u=r?e:-1;r?u--:++u-1;);return r}function a(n,t){for(var r=n.length;r--&&t.indexOf(n.charAt(r))>-1;);return r}function f(t,r){return n(t.criteria,r.criteria)||t.index-r.index}function c(t,r,e){for(var u=-1,o=t.criteria,i=r.criteria,a=o.length,f=e.length;++u=f?c:c*(e[u]?1:-1)}return t.index-r.index}function l(n){return qn[n]}function s(n){return Kn[n]}function p(n){return"\\"+Gn[n]}function h(n,t,r){for(var e=n.length,u=t+(r?0:-1);r?u--:++u=n&&n>=9&&13>=n||32==n||160==n||5760==n||6158==n||n>=8192&&(8202>=n||8232==n||8233==n||8239==n||8287==n||12288==n||65279==n)}function g(n,t){for(var r=-1,e=n.length,u=-1,o=[];++rt,e=zr(0,n.length,this.__views__),u=e.start,o=e.end,i=o-u,a=r?o:u-1,f=mi(i,this.__takeCount__),c=this.__iteratees__,l=c?c.length:0,s=0,p=[];n:for(;i--&&f>s;){a+=t;for(var h=-1,v=n[a];++h_.index:a<_.index)&&(_.count=0,_.done=!1),_.index=a,!_.done){var d=_.limit;if(!(_.done=d>-1?_.count++>=d:!g(v)))continue n}}else{var m=g(v);if(y==P)v=m;else if(!m){if(y==L)continue n;break n}}}p[s++]=v}return p}function Gn(){this.__data__={}}function Jn(n){return this.has(n)&&delete this.__data__[n]}function Xn(n){return"__proto__"==n?x:this.__data__[n]}function Zn(n){return"__proto__"!=n&&Vo.call(this.__data__,n)}function Hn(n,t){return"__proto__"!=n&&(this.__data__[n]=t),this}function Qn(n){var t=n?n.length:0;for(this.data={hash:_i(null),set:new ai};t--;)this.push(n[t])}function nt(n,t){var r=n.data,e="string"==typeof t||Eu(t)?r.set.has(t):r.hash[t];return e?0:-1}function ut(n){var t=this.data;"string"==typeof n||Eu(n)?t.set.add(n):t.hash[n]=!0}function ot(n,t){var r=-1,e=n.length;for(t||(t=So(e));++re&&(e=u)}return e}function pt(n){for(var t=-1,r=n.length,e=Oi;++tu&&(e=u)}return e}function ht(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u=200?Mi(t):null,c=t.length;f&&(i=nt,a=!1,t=f);n:for(;++or&&(r=-r>u?0:u+r),e=e===x||e>u?u:+e||0,0>e&&(e+=u),u=r>e?0:e>>>0,r>>>=0;u>r;)n[r++]=t;return n}function Rt(n,t){var r=[];return Li(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function kt(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,!1):void 0}),u}function St(n,t,r){for(var e=-1,u=n.length,o=-1,i=[];++et&&(t=-t>u?0:u+t),r=r===x||r>u?u:+r||0,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var o=So(u);++e=200,f=a?Mi():null,c=[];f?(u=nt,i=!1):(a=!1,f=t?[]:c);n:for(;++e=u){for(;u>e;){var o=e+u>>>1,i=n[o];(r?t>=i:t>i)?e=o+1:u=o}return u}return or(n,t,go,r)}function or(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,a=t===x;o>u;){var f=ti((u+o)/2),c=r(n[f]),l=c===c;if(i)var s=l||e;else s=a?l&&(e||c!==x):e?t>=c:t>c;s?u=f+1:o=f}return mi(o,Ii)}function ir(n,t,r){if("function"!=typeof n)return go;if(t===x)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)};case 5:return function(r,e,u,o,i){return n.call(t,r,e,u,o,i)}}return function(){return n.apply(t,arguments)}}function ar(n){return Ho.call(n,0)}function fr(n,t,r){for(var e=r.length,u=-1,o=di(n.length-e,0),i=-1,a=t.length,f=So(o+a);++i2&&r[u-2],i=u>2&&r[2],a=u>1&&r[u-1];for("function"==typeof o?(o=ir(o,a,5),u-=2):(o="function"==typeof a?a:null,u-=o?1:0),i&&Gr(r[0],r[1],i)&&(o=3>u?null:o,u=1);++e-1?e[i]:x}return kt(e,u,n)}}function wr(n){return function(r,e,u){return r&&r.length?(e=Pr(e,u,3),t(r,e,n)):-1}}function br(n){return function(t,r,e){return r=Pr(r,e,3),kt(t,r,n,!0)}}function xr(n){return function(){var t=arguments.length;if(!t)return function(){return arguments[0]};for(var r,e=n?t:-1,u=0,o=So(t);n?e--:++ew){var R=a?ot(a):null,C=di(c-w,0),T=v?I:null,U=v?null:I,W=v?A:null,F=v?null:A;t|=v?k:S,t&=~(v?S:k),_||(t&=~(j|O));var N=[n,t,r,W,T,F,U,R,f,C],$=Sr.apply(x,N);return Xr(n)&&Gi($,N),$.placeholder=E,$}}var L=p?r:this;h&&(n=L[m]),a&&(A=re(A,a)),s&&f=t||!gi(t))return"";var u=t-e;return r=null==r?" ":r+"",oo(r,Qo(u/r.length)).slice(0,u)}function Tr(n,t,r,e){function u(){for(var t=-1,a=arguments.length,f=-1,c=e.length,l=So(a+c);++ff))return!1;for(;l&&++af:f>u)||f===e&&f===o)&&(u=f,o=n)}),o}function Pr(n,t,r){var e=G.callback||vo;return e=e===vo?xt:e,r?e(n,t,r):e}function Br(n,t,e){var u=G.indexOf||me;return u=u===me?r:u,n?u(n,t,e):u}function zr(n,t,r){for(var e=-1,u=r?r.length:0;++e-1&&n%1==0&&t>n}function Gr(n,t,r){if(!Eu(r))return!1;var e=typeof t;if("number"==e?Vr(r)&&Yr(t,r.length):"string"==e&&t in r){var u=r[t];return n===n?n===u:u!==u}return!1}function Jr(n,t){var r=typeof n;if("string"==r&&An.test(n)||"number"==r)return!0;if(Ca(n))return!1;var e=!xn.test(n);return e||null!=t&&n in ie(t)}function Xr(n){var t=Ki(n);return!!t&&n===G[t]&&t in qn.prototype}function Zr(n){return"number"==typeof n&&n>-1&&n%1==0&&Si>=n}function Hr(n){return n===n&&!Eu(n)}function Qr(n,t){var r=n[1],e=t[1],u=r|e,o=C>u,i=e==C&&r==I||e==C&&r==T&&n[7].length<=t[8]||e==(C|T)&&r==I;if(!o&&!i)return n;e&j&&(n[2]=t[2],u|=r&j?0:E);var a=t[3];if(a){var f=n[3];n[3]=f?fr(f,a,t[4]):ot(a),n[4]=f?g(n[3],z):ot(t[4])}return a=t[5],a&&(f=n[5],n[5]=f?cr(f,a,t[6]):ot(a),n[6]=f?g(n[5],z):ot(t[6])),a=t[7],a&&(n[7]=ot(a)),e&C&&(n[8]=null==n[8]?t[8]:mi(n[8],t[8])),null==n[9]&&(n[9]=t[9]),n[0]=t[0],n[1]=u,n}function ne(n,t){n=ie(n);for(var r=-1,e=t.length,u={};++re;)i[++o]=Jt(n,e,e+=t);return i}function le(n){for(var t=-1,r=n?n.length:0,e=-1,u=[];++tt?0:t)):[]}function pe(n,t,r){var e=n?n.length:0;return e?((r?Gr(n,t,r):null==t)&&(t=1),t=e-(+t||0),Jt(n,0,0>t?0:t)):[]}function he(n,t,r){return n&&n.length?rr(n,Pr(t,r,3),!0,!0):[]}function ve(n,t,r){return n&&n.length?rr(n,Pr(t,r,3),!0):[]}function _e(n,t,r,e){var u=n?n.length:0;return u?(r&&"number"!=typeof r&&Gr(n,t,r)&&(r=0,e=u),It(n,t,r,e)):[]}function ge(n){return n?n[0]:x}function ye(n,t,r){var e=n?n.length:0;return r&&Gr(n,t,r)&&(t=!1),e?St(n,t):[]}function de(n){var t=n?n.length:0;return t?St(n,!0):[]}function me(n,t,e){var u=n?n.length:0;if(!u)return-1;if("number"==typeof e)e=0>e?di(u+e,0):e;else if(e){var o=ur(n,t),i=n[o];return(t===t?t===i:i!==i)?o:-1}return r(n,t,e||0)}function we(n){return pe(n,1)}function be(){for(var n=[],t=-1,e=arguments.length,u=[],o=Br(),i=o==r,a=[];++t=120?Mi(t&&f):null))}if(e=n.length,2>e)return a;var c=n[0],l=-1,s=c?c.length:0,p=u[0];n:for(;++lr?di(e+r,0):mi(r||0,e-1))+1;else if(r){u=ur(n,t,!0)-1;var o=n[u];return(t===t?t===o:o!==o)?u:-1}if(t!==t)return h(n,u,!0);for(;u--;)if(n[u]===t)return u;return-1}function je(){var n=arguments,t=n[0];if(!t||!t.length)return t;for(var r=0,e=Br(),u=n.length;++r-1;)ci.call(t,o,1);return t}function Oe(n,t,r){var e=[];if(!n||!n.length)return e;var u=-1,o=[],i=n.length;for(t=Pr(t,r,3);++ut?0:t)):[]}function ke(n,t,r){var e=n?n.length:0;return e?((r?Gr(n,t,r):null==t)&&(t=1),t=e-(+t||0),Jt(n,0>t?0:t)):[]}function Se(n,t,r){return n&&n.length?rr(n,Pr(t,r,3),!1,!0):[]}function Ce(n,t,r){return n&&n.length?rr(n,Pr(t,r,3)):[]}function Te(n,t,e,u){var o=n?n.length:0;if(!o)return[];null!=t&&"boolean"!=typeof t&&(u=e,e=Gr(n,t,u)?null:t,t=!1);var i=Pr();return(i!==xt||null!=e)&&(e=i(e,u,3)),t&&Br()==r?y(n,e):nr(n,e)}function Ue(n){if(!n||!n.length)return[];var t=-1,r=0;n=ct(n,function(n){return Vr(n)?(r=di(n.length,r),!0):void 0});for(var e=So(r);++tr?di(u+r,0):r||0,"string"==typeof n||!Ca(n)&&Uu(n)?u>r&&n.indexOf(t,r)>-1:Br(n,t,r)>-1):!1}function Xe(n,t,r){var e=Ca(n)?lt:Pt;return t=Pr(t,r,3),e(n,t)}function Ze(n,t){return Xe(n,Ao(t))}function He(n,t,r){var e=Ca(n)?ct:Rt;return t=Pr(t,r,3),e(n,function(n,r,e){return!t(n,r,e)})}function Qe(n,t,r){if(r?Gr(n,t,r):null==t){n=oe(n);var e=n.length;return e>0?n[Yt(0,e-1)]:x}var u=nu(n);return u.length=mi(0>t?0:+t||0,u.length),u}function nu(n){n=oe(n);for(var t=-1,r=n.length,e=So(r);++t0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}}function cu(n,t,r){function e(){p&&ni(p),f&&ni(f),f=p=h=x}function u(){var r=t-(da()-l);if(0>=r||r>t){f&&ni(f);var e=h;f=p=h=x,e&&(v=da(),c=n.apply(s,a),p||f||(a=s=null))}else p=fi(u,r)}function o(){p&&ni(p),f=p=h=x,(g||_!==t)&&(v=da(),c=n.apply(s,a),p||f||(a=s=null))}function i(){if(a=arguments,l=da(),s=this,h=g&&(p||!y),_===!1)var r=y&&!p;else{f||y||(v=l);var e=_-(l-v),i=0>=e||e>_;i?(f&&(f=ni(f)),v=l,c=n.apply(s,a)):f||(f=fi(o,e))}return i&&p?p=ni(p):p||t===_||(p=fi(u,t)),r&&(i=!0,c=n.apply(s,a)),!i||p||f||(a=s=null),c}var a,f,c,l,s,p,h,v=0,_=!1,g=!0;if("function"!=typeof n)throw new Po(B);if(t=0>t?0:+t||0,r===!0){var y=!0;g=!1}else Eu(r)&&(y=r.leading,_="maxWait"in r&&di(+r.maxWait||0,t),g="trailing"in r?r.trailing:g);return i.cancel=e,i}function lu(n,t){if("function"!=typeof n||t&&"function"!=typeof t)throw new Po(B);var r=function(){var e=arguments,u=r.cache,o=t?t.apply(this,e):e[0];if(u.has(o))return u.get(o);var i=n.apply(this,e);return u.set(o,i),i};return r.cache=new lu.Cache,r}function su(n){if("function"!=typeof n)throw new Po(B);return function(){return!n.apply(this,arguments)}}function pu(n){return fu(2,n)}function hu(n,t){if("function"!=typeof n)throw new Po(B);return t=di(t===x?n.length-1:+t||0,0),function(){for(var r=arguments,e=-1,u=di(r.length-t,0),o=So(u);++e-1:rt(n))}function Au(n){return null==n?!0:Vr(n)&&(Ca(n)||Uu(n)||mu(n)||v(n)&&Ua(n.splice))?!n.length:!Ma(n).length}function ju(n,t,r,e){if(r="function"==typeof r&&ir(r,e,3),!r&&Hr(n)&&Hr(t))return n===t;var u=r?r(n,t):x;return u===x?Nt(n,t,r):!!u}function Ou(n){return v(n)&&"string"==typeof n.message&&Go.call(n)==V}function Eu(n){var t=typeof n;return"function"==t||!!n&&"object"==t}function Iu(n,t,r,e){var u=Ma(t),o=u.length;if(!o)return!0;if(null==n)return!1;if(r="function"==typeof r&&ir(r,e,3),n=ie(n),!r&&1==o){var i=u[0],a=t[i];if(Hr(a))return a===n[i]&&(a!==x||i in n)}for(var f=So(o),c=So(o);o--;)a=f[o]=t[u[o]],c[o]=Hr(a);return Lt(n,u,f,c,r)}function Ru(n){return Cu(n)&&n!=+n}function ku(n){return null==n?!1:Go.call(n)==Y?Xo.test(Ko.call(n)):v(n)&&(rt(n)?Xo:Tn).test(n)}function Su(n){return null===n}function Cu(n){return"number"==typeof n||v(n)&&Go.call(n)==J}function Tu(n){return Eu(n)&&Go.call(n)==Z}function Uu(n){return"string"==typeof n||v(n)&&Go.call(n)==Q}function Wu(n){return v(n)&&Zr(n.length)&&!!zn[Go.call(n)]}function Fu(n){return n===x}function Nu(n){var t=n?Vi(n):0;return Zr(t)?t?G.support.unindexedChars&&Uu(n)?n.split(""):ot(n):[]:Gu(n)}function $u(n){return bt(n,Mu(n))}function Lu(n,t,r){var e=$i(n);return r&&Gr(n,t,r)&&(t=null),t?Ni(e,t):e}function Pu(n){return Wt(n,Mu(n))}function Bu(n,t,r){var e=null==n?x:Ft(n,ae(t),t+"");return e===x?r:e}function zu(n,t){if(null==n)return!1;var r=Vo.call(n,t);return r||Jr(t)||(t=ae(t),n=1==t.length?n:Ft(n,Jt(t,0,-1)),t=xe(t),r=null!=n&&Vo.call(n,t)),r||G.support.nonEnumStrings&&Uu(n)&&Yr(t,n.length)}function Du(n,t,r){r&&Gr(n,t,r)&&(t=null);for(var e=-1,u=Ma(n),o=u.length,i={};++e0,c=r.enumErrorProps&&(n===zo||n instanceof To),l=r.enumPrototypes&&Ua(n);++u=mi(t,r)&&nr?0:+r||0,e),r-=t.length,r>=0&&n.indexOf(t,r)==r}function to(n){return n=u(n),n&&dn.test(n)?n.replace(gn,s):n}function ro(n){return n=u(n),n&&En.test(n)?n.replace(On,"\\$&"):n}function eo(n,t,r){n=u(n),t=+t;var e=n.length;if(e>=t||!gi(t))return n;var o=(t-e)/2,i=ti(o),a=Qo(o);return r=Cr("",a,r),r.slice(0,i)+n+r}function uo(n,t,r){return r&&Gr(n,t,r)&&(t=0),xi(n,t)}function oo(n,t){var r="";if(n=u(n),t=+t,1>t||!n||!gi(t))return r;do t%2&&(r+=n),t=ti(t/2),n+=n;while(t);return r}function io(n,t,r){return n=u(n),r=null==r?0:mi(0>r?0:+r||0,n.length),n.lastIndexOf(t,r)==r}function ao(n,t,r){var e=G.templateSettings;r&&Gr(n,t,r)&&(t=r=null),n=u(n),t=mt(Ni({},r||t),e,dt);var o,i,a=mt(Ni({},t.imports),e.imports,dt),f=Ma(a),c=tr(a,f),l=0,s=t.interpolate||Wn,h="__p += '",v=$o((t.escape||Wn).source+"|"+s.source+"|"+(s===bn?kn:Wn).source+"|"+(t.evaluate||Wn).source+"|$","g"),_="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++Bn+"]")+"\n";n.replace(v,function(t,r,e,u,a,f){return e||(e=u),h+=n.slice(l,f).replace(Fn,p),r&&(o=!0,h+="' +\n__e("+r+") +\n'"),a&&(i=!0,h+="';\n"+a+";\n__p += '"),e&&(h+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),l=f+t.length,t}),h+="';\n";var g=t.variable;g||(h="with (obj) {\n"+h+"\n}\n"),h=(i?h.replace(pn,""):h).replace(hn,"$1").replace(vn,"$1;"),h="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(i?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var y=tf(function(){return Uo(f,_+"return "+h).apply(x,c)});if(y.source=h,Ou(y))throw y;return y}function fo(n,t,r){var e=n;return(n=u(n))?(r?Gr(e,t,r):null==t)?n.slice(d(n),m(n)+1):(t+="",n.slice(i(n,t),a(n,t)+1)):n}function co(n,t,r){var e=n;return n=u(n),n?n.slice((r?Gr(e,t,r):null==t)?d(n):i(n,t+"")):n}function lo(n,t,r){var e=n;return n=u(n),n?(r?Gr(e,t,r):null==t)?n.slice(0,m(n)+1):n.slice(0,a(n,t+"")+1):n}function so(n,t,r){r&&Gr(n,t,r)&&(t=null);var e=U,o=W;if(null!=t)if(Eu(t)){var i="separator"in t?t.separator:i;e="length"in t?+t.length||0:e,o="omission"in t?u(t.omission):o}else e=+t||0;if(n=u(n),e>=n.length)return n;var a=e-o.length;if(1>a)return o;var f=n.slice(0,a);if(null==i)return f+o;if(Tu(i)){if(n.slice(a).search(i)){var c,l,s=n.slice(0,a);for(i.global||(i=$o(i.source,(Sn.exec(i)||"")+"g")),i.lastIndex=0;c=i.exec(s);)l=c.index;f=f.slice(0,null==l?a:l)}}else if(n.indexOf(i,a)!=a){var p=f.lastIndexOf(i);p>-1&&(f=f.slice(0,p))}return f+o}function po(n){return n=u(n),n&&yn.test(n)?n.replace(_n,w):n}function ho(n,t,r){return r&&Gr(n,t,r)&&(t=null),n=u(n),n.match(t||Nn)||[]}function vo(n,t,r){return r&&Gr(n,t,r)&&(t=null),v(n)?yo(n):xt(n,t)}function _o(n){return function(){return n}}function go(n){return n}function yo(n){return Bt(At(n,!0))}function mo(n,t){return zt(n,At(t,!0))}function wo(n,t,r){if(null==r){var e=Eu(t),u=e&&Ma(t),o=u&&u.length&&Wt(t,u);(o?o.length:e)||(o=!1,r=t,t=n,n=this)}o||(o=Wt(t,Ma(t)));var i=!0,a=-1,f=Ua(n),c=o.length;r===!1?i=!1:Eu(r)&&"chain"in r&&(i=r.chain);for(;++an||!gi(n))return[];var e=-1,u=So(mi(n,Ei));for(t=ir(t,r,1);++ee?u[e]=t(e):t(e);return u}function Io(n){var t=++Yo;return u(n)+t}function Ro(n,t){return(+n||0)+(+t||0)}function ko(n,t,r){r&&Gr(n,t,r)&&(t=null);var e=Pr(),u=null==t;return e===xt&&u||(u=!1,t=e(t,r,3)),u?gt(Ca(n)?n:oe(n)):Qt(n,t)}_=_?et.defaults(tt.Object(),_,et.pick(tt,Ln)):tt;var So=_.Array,Co=_.Date,To=_.Error,Uo=_.Function,Wo=_.Math,Fo=_.Number,No=_.Object,$o=_.RegExp,Lo=_.String,Po=_.TypeError,Bo=So.prototype,zo=To.prototype,Do=No.prototype,Mo=Lo.prototype,qo=(qo=_.window)&&qo.document,Ko=Uo.prototype.toString,Vo=Do.hasOwnProperty,Yo=0,Go=Do.toString,Jo=_._,Xo=$o("^"+ro(Go).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Zo=ku(Zo=_.ArrayBuffer)&&Zo,Ho=ku(Ho=Zo&&new Zo(0).slice)&&Ho,Qo=Wo.ceil,ni=_.clearTimeout,ti=Wo.floor,ri=ku(ri=No.getOwnPropertySymbols)&&ri,ei=ku(ei=No.getPrototypeOf)&&ei,ui=Bo.push,oi=ku(oi=No.preventExtensions)&&oi,ii=Do.propertyIsEnumerable,ai=ku(ai=_.Set)&&ai,fi=_.setTimeout,ci=Bo.splice,li=ku(li=_.Uint8Array)&&li,si=ku(si=_.WeakMap)&&si,pi=function(){try{var n=ku(n=_.Float64Array)&&n,t=new n(new Zo(10),0,1)&&n}catch(r){}return t}(),hi=function(){var n=oi&&ku(n=No.assign)&&n;try{if(n){var t=oi({1:0});t[0]=1}}catch(r){try{n(t,"xo")}catch(r){}return!t[1]&&n}return!1}(),vi=ku(vi=So.isArray)&&vi,_i=ku(_i=No.create)&&_i,gi=_.isFinite,yi=ku(yi=No.keys)&&yi,di=Wo.max,mi=Wo.min,wi=ku(wi=Co.now)&&wi,bi=ku(bi=Fo.isFinite)&&bi,xi=_.parseInt,Ai=Wo.random,ji=Fo.NEGATIVE_INFINITY,Oi=Fo.POSITIVE_INFINITY,Ei=Wo.pow(2,32)-1,Ii=Ei-1,Ri=Ei>>>1,ki=pi?pi.BYTES_PER_ELEMENT:0,Si=Wo.pow(2,53)-1,Ci=si&&new si,Ti={},Ui={};Ui[rn]=_.Float32Array,Ui[en]=_.Float64Array,Ui[un]=_.Int8Array,Ui[on]=_.Int16Array,Ui[an]=_.Int32Array,Ui[fn]=_.Uint8Array,Ui[cn]=_.Uint8ClampedArray,Ui[ln]=_.Uint16Array,Ui[sn]=_.Uint32Array;var Wi={};Wi[M]=Wi[K]=Wi[J]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Wi[q]=Wi[Q]={constructor:!0,toString:!0,valueOf:!0},Wi[V]=Wi[Y]=Wi[Z]={constructor:!0,toString:!0},Wi[X]={constructor:!0},it(Pn,function(n){for(var t in Wi)if(Vo.call(Wi,t)){var r=Wi[t];r[n]=Vo.call(r,n)}});var Fi=G.support={};!function(n){var t=function(){this.x=n},r=arguments,e={0:n,length:n},u=[];t.prototype={valueOf:n,y:n};for(var o in new t)u.push(o);Fi.argsTag=Go.call(r)==D,Fi.enumErrorProps=ii.call(zo,"message")||ii.call(zo,"name"),Fi.enumPrototypes=ii.call(t,"prototype"),Fi.funcDecomp=/\bthis\b/.test(function(){return this}),Fi.funcNames="string"==typeof Uo.name,Fi.nodeTag=Go.call(qo)!=X,Fi.nonEnumStrings=!ii.call("x",0),Fi.nonEnumShadows=!/valueOf/.test(u),Fi.ownLast="x"!=u[0],Fi.spliceObjects=(ci.call(e,0,1),!e[0]),Fi.unindexedChars="x"[0]+No("x")[0]!="xx";try{Fi.dom=11===qo.createDocumentFragment().nodeType}catch(i){Fi.dom=!1}try{Fi.nonEnumArgs=!ii.call(r,1)}catch(i){Fi.nonEnumArgs=!0}}(1,0),G.templateSettings={escape:mn,evaluate:wn,interpolate:bn,variable:"",imports:{_:G}};var Ni=hi||function(n,t){return null==t?n:bt(t,Yi(t),bt(t,Ma(t),n))},$i=function(){function n(){}return function(t){if(Eu(t)){n.prototype=t;var r=new n;n.prototype=null}return r||_.Object()}}(),Li=pr(Tt),Pi=pr(Ut,!0),Bi=hr(),zi=hr(!0),Di=Ci?function(n,t){return Ci.set(n,t),n}:go;Ho||(ar=Zo&&li?function(n){var t=n.byteLength,r=pi?ti(t/ki):0,e=r*ki,u=new Zo(t);if(r){var o=new pi(u,0,r);o.set(new pi(n,0,r))}return t!=e&&(o=new li(u,e),o.set(new li(n,e))),u}:_o(null));var Mi=_i&&ai?function(n){return new Qn(n)}:_o(null),qi=Ci?function(n){return Ci.get(n)}:xo,Ki=function(){return Fi.funcNames?"constant"==_o.name?qt("name"):function(n){for(var t=n.name,r=Ti[t],e=r?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==n)return u.name}return t}:_o("")}(),Vi=qt("length"),Yi=ri?function(n){return ri(ie(n))}:_o([]),Gi=function(){var n=0,t=0;return function(r,e){var u=da(),o=N-(u-t);if(t=u,o>0){if(++n>=F)return r}else n=0;return Di(r,e)}}(),Ji=hu(function(n,t){return Vr(n)?Ot(n,St(t,!1,!0)):[]}),Xi=wr(),Zi=wr(!0),Hi=hu(function(t,r){r=St(r);var e=wt(t,r);return Vt(t,r.sort(n)),e}),Qi=Ur(),na=Ur(!0),ta=hu(function(n){return nr(St(n,!1,!0))}),ra=hu(function(n,t){return Vr(n)?Ot(n,t):[]}),ea=hu(Ue),ua=hu(function(n){var t=n.length,r=n[t-2],e=n[t-1];return t>2&&"function"==typeof r?t-=2:(r=t>1&&"function"==typeof e?(--t,e):x,e=x),n.length=t,We(n,r,e)}),oa=hu(function(n,t){return Vr(n)&&(n=oe(n)),wt(n,St(t))}),ia=lr(function(n,t,r){Vo.call(n,r)?++n[r]:n[r]=1}),aa=mr(Li),fa=mr(Pi,!0),ca=Ar(it,Li),la=Ar(at,Pi),sa=lr(function(n,t,r){Vo.call(n,r)?n[r].push(t):n[r]=[t]}),pa=lr(function(n,t,r){n[r]=t}),ha=hu(function(n,t,r){var e=-1,u="function"==typeof t,o=Jr(t),i=Vr(n)?So(n.length):[];return Li(n,function(n){var a=u?t:o&&null!=n&&n[t];i[++e]=a?a.apply(n,r):Kr(n,t,r)}),i}),va=lr(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),_a=kr(ht,Li),ga=kr(vt,Pi),ya=hu(function(n,t){if(null==n)return[];var r=t[2];return r&&Gr(t[0],t[1],r)&&(t.length=1),Ht(n,St(t),[])}),da=wi||function(){return(new Co).getTime()},ma=hu(function(n,t,r){var e=j;if(r.length){var u=g(r,ma.placeholder);e|=k}return Wr(n,e,t,r,u)}),wa=hu(function(n,t){t=t.length?St(t):Pu(n);for(var r=-1,e=t.length;++rn?r=this.takeRight(-n):n&&(r=this.drop(n)),t!==x&&(t=+t||0,r=0>t?r.dropRight(-t):r.take(t-n)),r},qn.prototype.toArray=function(){return this.drop(0)},Tt(qn.prototype,function(n,t){var r=G[t];if(r){var e=/^(?:filter|map|reject)|While$/.test(t),u=/^(?:first|last)$/.test(t);G.prototype[t]=function(){var t=arguments,o=this.__chain__,i=this.__wrapped__,a=!!this.__actions__.length,f=i instanceof qn,c=t[0],l=f||Ca(i);l&&e&&"function"==typeof c&&1!=c.length&&(f=l=!1);var s=f&&!a;if(u&&!o)return s?n.call(i):r.call(G,this.value());var p=function(n){var e=[n];return ui.apply(e,t),r.apply(G,e)};if(l){var h=s?i:new qn(this),v=n.apply(h,t);if(!u&&(a||v.__actions__)){var _=v.__actions__||(v.__actions__=[]);_.push({func:Pe,args:[p],thisArg:G})}return new nn(v,o)}return this.thru(p)}}}),it(["concat","join","pop","push","replace","shift","sort","splice","split","unshift"],function(n){var t=(/^(?:replace|split)$/.test(n)?Mo:Bo)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=!Fi.spliceObjects&&/^(?:pop|shift|splice)$/.test(n),u=/^(?:join|pop|replace|shift)$/.test(n),o=e?function(){var n=t.apply(this,arguments);return 0===this.length&&delete this[0],n}:t;G.prototype[n]=function(){var n=arguments;return u&&!this.__chain__?o.apply(this.value(),n):this[r](function(t){return o.apply(t,n)})}}),Tt(qn.prototype,function(n,t){var r=G[t];if(r){var e=r.name,u=Ti[e]||(Ti[e]=[]);u.push({name:t,func:r})}}),Ti[Sr(null,O).name]=[{name:"wrapper",func:null}],qn.prototype.clone=Kn,qn.prototype.reverse=Vn,qn.prototype.value=Yn,G.prototype.chain=Be,G.prototype.commit=ze,G.prototype.plant=De,G.prototype.reverse=Me,G.prototype.toString=qe,G.prototype.run=G.prototype.toJSON=G.prototype.valueOf=G.prototype.value=Ke,G.prototype.collect=G.prototype.map,G.prototype.head=G.prototype.first,G.prototype.select=G.prototype.filter,G.prototype.tail=G.prototype.rest,G}var x,A="3.8.0",j=1,O=2,E=4,I=8,R=16,k=32,S=64,C=128,T=256,U=30,W="...",F=150,N=16,$=0,L=1,P=2,B="Expected a function",z="__lodash_placeholder__",D="[object Arguments]",M="[object Array]",q="[object Boolean]",K="[object Date]",V="[object Error]",Y="[object Function]",G="[object Map]",J="[object Number]",X="[object Object]",Z="[object RegExp]",H="[object Set]",Q="[object String]",nn="[object WeakMap]",tn="[object ArrayBuffer]",rn="[object Float32Array]",en="[object Float64Array]",un="[object Int8Array]",on="[object Int16Array]",an="[object Int32Array]",fn="[object Uint8Array]",cn="[object Uint8ClampedArray]",ln="[object Uint16Array]",sn="[object Uint32Array]",pn=/\b__p \+= '';/g,hn=/\b(__p \+=) '' \+/g,vn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,_n=/&(?:amp|lt|gt|quot|#39|#96);/g,gn=/[&<>"'`]/g,yn=RegExp(_n.source),dn=RegExp(gn.source),mn=/<%-([\s\S]+?)%>/g,wn=/<%([\s\S]+?)%>/g,bn=/<%=([\s\S]+?)%>/g,xn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,An=/^\w*$/,jn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,On=/[.*+?^${}()|[\]\/\\]/g,En=RegExp(On.source),In=/[\u0300-\u036f\ufe20-\ufe23]/g,Rn=/\\(\\)?/g,kn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Sn=/\w*$/,Cn=/^0[xX]/,Tn=/^\[object .+?Constructor\]$/,Un=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Wn=/($^)/,Fn=/['\n\r\u2028\u2029\\]/g,Nn=function(){var n="[A-Z\\xc0-\\xd6\\xd8-\\xde]",t="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(n+"+(?="+n+t+")|"+n+"?"+t+"|"+n+"+|[0-9]+","g")}(),$n=" \f \ufeff\n\r\u2028\u2029 ᠎              ",Ln=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","document","isFinite","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","window"],Pn=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Bn=-1,zn={};zn[rn]=zn[en]=zn[un]=zn[on]=zn[an]=zn[fn]=zn[cn]=zn[ln]=zn[sn]=!0,zn[D]=zn[M]=zn[tn]=zn[q]=zn[K]=zn[V]=zn[Y]=zn[G]=zn[J]=zn[X]=zn[Z]=zn[H]=zn[Q]=zn[nn]=!1;var Dn={};Dn[D]=Dn[M]=Dn[tn]=Dn[q]=Dn[K]=Dn[rn]=Dn[en]=Dn[un]=Dn[on]=Dn[an]=Dn[J]=Dn[X]=Dn[Z]=Dn[Q]=Dn[fn]=Dn[cn]=Dn[ln]=Dn[sn]=!0,Dn[V]=Dn[Y]=Dn[G]=Dn[H]=Dn[nn]=!1;var Mn={leading:!1,maxWait:0,trailing:!1},qn={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Kn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Vn={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Yn={"function":!0,object:!0},Gn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Jn=Yn[typeof exports]&&exports&&!exports.nodeType&&exports,Xn=Yn[typeof module]&&module&&!module.nodeType&&module,Zn=Jn&&Xn&&"object"==typeof global&&global&&global.Object&&global,Hn=Yn[typeof self]&&self&&self.Object&&self,Qn=Yn[typeof window]&&window&&window.Object&&window,nt=Xn&&Xn.exports===Jn&&Jn,tt=Zn||Qn!==(this&&this.window)&&Qn||Hn||this,rt=function(){try{Object({toString:0}+"")}catch(n){return function(){return!1}}return function(n){return"function"!=typeof n.toString&&"string"==typeof(n+"")}}(),et=b();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(tt._=et,define(function(){return et})):Jn&&Xn?nt?(Xn.exports=et)._=et:Jn._=et:tt._=et}).call(this); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],138:[function(require,module,exports){ +},{}],139:[function(require,module,exports){ function arrayCopy(r,a){var o=-1,y=r.length;for(a||(a=Array(y));++or&&(r=-r>n?0:n+r),l=void 0===l||l>n?n:+l||0,0>l&&(l+=n),n=r>l?0:l-r>>>0,r>>>=0;for(var o=Array(n);++a=t){for(;t>i;){var A=i+t>>>1,y=e[A];(r?n>=y:n>y)?i=A+1:t=A}return t}return binaryIndexBy(e,n,identity,r)}var binaryIndexBy=require("./binaryIndexBy"),identity=require("../utility/identity"),MAX_ARRAY_LENGTH=Math.pow(2,32)-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1;module.exports=binaryIndex; -},{"../utility/identity":204,"./binaryIndexBy":163}],163:[function(require,module,exports){ +},{"../utility/identity":205,"./binaryIndexBy":164}],164:[function(require,module,exports){ function binaryIndexBy(n,o,r,A){o=r(o);for(var a=0,i=n?n.length:0,e=o!==o,t=void 0===o;i>a;){var M=floor((a+i)/2),v=r(n[M]),R=v===v;if(e)var _=R||A;else _=t?R&&(A||void 0!==v):A?o>=v:o>v;_?a=M+1:i=M}return nativeMin(i,MAX_ARRAY_INDEX)}var floor=Math.floor,nativeMin=Math.min,MAX_ARRAY_LENGTH=Math.pow(2,32)-1,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1;module.exports=binaryIndexBy; -},{}],164:[function(require,module,exports){ +},{}],165:[function(require,module,exports){ function bindCallback(n,t,r){if("function"!=typeof n)return identity;if(void 0===t)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)};case 5:return function(r,e,u,i,c){return n.call(t,r,e,u,i,c)}}return function(){return n.apply(t,arguments)}}var identity=require("../utility/identity");module.exports=bindCallback; -},{"../utility/identity":204}],165:[function(require,module,exports){ +},{"../utility/identity":205}],166:[function(require,module,exports){ (function (global){ function bufferClone(r){return bufferSlice.call(r,0)}var constant=require("../utility/constant"),isNative=require("../lang/isNative"),ArrayBuffer=isNative(ArrayBuffer=global.ArrayBuffer)&&ArrayBuffer,bufferSlice=isNative(bufferSlice=ArrayBuffer&&new ArrayBuffer(0).slice)&&bufferSlice,floor=Math.floor,Uint8Array=isNative(Uint8Array=global.Uint8Array)&&Uint8Array,Float64Array=function(){try{var r=isNative(r=global.Float64Array)&&r,e=new r(new ArrayBuffer(10),0,1)&&r}catch(a){}return e}(),FLOAT64_BYTES_PER_ELEMENT=Float64Array?Float64Array.BYTES_PER_ELEMENT:0;bufferSlice||(bufferClone=ArrayBuffer&&Uint8Array?function(r){var e=r.byteLength,a=Float64Array?floor(e/FLOAT64_BYTES_PER_ELEMENT):0,t=a*FLOAT64_BYTES_PER_ELEMENT,f=new ArrayBuffer(e);if(a){var n=new Float64Array(f,0,a);n.set(new Float64Array(r,0,a))}return e!=t&&(n=new Uint8Array(f,t),n.set(new Uint8Array(r,t))),f}:constant(null)),module.exports=bufferClone; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../lang/isNative":193,"../utility/constant":203}],166:[function(require,module,exports){ +},{"../lang/isNative":194,"../utility/constant":204}],167:[function(require,module,exports){ function createBaseEach(e,t){return function(r,n){var a=r?getLength(r):0;if(!isLength(a))return e(r,n);for(var c=t?a:-1,g=toObject(r);(t?c--:++ct))return!1;for(;v&&++n-1&&n%1==0&&E>n}var MAX_SAFE_INTEGER=Math.pow(2,53)-1;module.exports=isIndex; -},{}],181:[function(require,module,exports){ +},{}],182:[function(require,module,exports){ function isKey(r,e){var t=typeof r;if("string"==t&&reIsPlainProp.test(r)||"number"==t)return!0;if(isArray(r))return!1;var i=!reIsDeepProp.test(r);return i||null!=e&&r in toObject(e)}var isArray=require("../lang/isArray"),toObject=require("./toObject"),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;module.exports=isKey; -},{"../lang/isArray":191,"./toObject":187}],182:[function(require,module,exports){ +},{"../lang/isArray":192,"./toObject":188}],183:[function(require,module,exports){ function isLength(e){return"number"==typeof e&&e>-1&&e%1==0&&MAX_SAFE_INTEGER>=e}var MAX_SAFE_INTEGER=Math.pow(2,53)-1;module.exports=isLength; -},{}],183:[function(require,module,exports){ +},{}],184:[function(require,module,exports){ function isObjectLike(e){return!!e&&"object"==typeof e}module.exports=isObjectLike; -},{}],184:[function(require,module,exports){ +},{}],185:[function(require,module,exports){ function isStrictComparable(e){return e===e&&!isObject(e)}var isObject=require("../lang/isObject");module.exports=isStrictComparable; -},{"../lang/isObject":194}],185:[function(require,module,exports){ +},{"../lang/isObject":195}],186:[function(require,module,exports){ function shimIsPlainObject(t){var r;if(!isObjectLike(t)||objToString.call(t)!=objectTag||isHostObject(t)||!hasOwnProperty.call(t,"constructor")&&(r=t.constructor,"function"==typeof r&&!(r instanceof r))||!support.argsTag&&isArguments(t))return!1;var e;return support.ownLast?(baseForIn(t,function(t,r,o){return e=hasOwnProperty.call(o,r),!1}),e!==!1):(baseForIn(t,function(t,r){e=r}),void 0===e||hasOwnProperty.call(t,e))}var baseForIn=require("./baseForIn"),isArguments=require("../lang/isArguments"),isHostObject=require("./isHostObject"),isObjectLike=require("./isObjectLike"),support=require("../support"),objectTag="[object Object]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString;module.exports=shimIsPlainObject; -},{"../lang/isArguments":190,"../support":202,"./baseForIn":147,"./isHostObject":179,"./isObjectLike":183}],186:[function(require,module,exports){ +},{"../lang/isArguments":191,"../support":203,"./baseForIn":148,"./isHostObject":180,"./isObjectLike":184}],187:[function(require,module,exports){ function shimKeys(r){for(var e=keysIn(r),s=e.length,n=s&&r.length,t=n&&isLength(n)&&(isArray(r)||support.nonEnumStrings&&isString(r)||support.nonEnumArgs&&isArguments(r)),i=-1,o=[];++i0,u=support.enumErrorProps&&(r===errorProto||r instanceof Error),p=support.enumPrototypes&&isFunction(r);++t0&&t(e,a))}catch(s){i.call(u||new f(a),s)}}}function i(n){var o=this;o.triggered||(o.triggered=!0,o.def&&(o=o.def),o.msg=n,o.state=2,o.chain.length>0&&t(e,o))}function c(t,n,e,o){for(var r=0;ro;++o)r=i[o],e=r.split("="),s[decodeURIComponent(e[0])]=decodeURIComponent(e[1]);return s}function parseHeader(t){var e,r,s,i,o=t.split(/\r?\n/),n={};o.pop();for(var a=0,u=o.length;u>a;++a)r=o[a],e=r.indexOf(":"),s=r.slice(0,e).toLowerCase(),i=trim(r.slice(e+1)),n[s]=i;return n}function type(t){return t.split(/ *; */).shift()}function params(t){return reduce(t.split(/ *; */),function(t,e){var r=e.split(/ *= */),s=r.shift(),i=r.shift();return s&&i&&(t[s]=i),t},{})}function Response(t,e){e=e||{},this.req=t,this.xhr=this.req.xhr,this.text="HEAD"!=this.req.method&&(""===this.xhr.responseType||"text"===this.xhr.responseType)||"undefined"==typeof this.xhr.responseType?this.xhr.responseText:null,this.statusText=this.req.xhr.statusText,this.setStatusProperties(this.xhr.status),this.header=this.headers=parseHeader(this.xhr.getAllResponseHeaders()),this.header["content-type"]=this.xhr.getResponseHeader("content-type"),this.setHeaderProperties(this.header),this.body="HEAD"!=this.req.method?this.parseBody(this.text?this.text:this.xhr.response):null}function Request(t,e){var r=this;Emitter.call(this),this._query=this._query||[],this.method=t,this.url=e,this.header={},this._header={},this.on("end",function(){var t=null,e=null;try{e=new Response(r)}catch(s){return t=new Error("Parser is unable to parse the response"),t.parse=!0,t.original=s,r.callback(t)}if(r.emit("response",e),t)return r.callback(t,e);if(e.status>=200&&e.status<300)return r.callback(t,e);var i=new Error(e.statusText||"Unsuccessful HTTP response");i.original=t,i.response=e,i.status=e.status,r.callback(t||i,e)})}function request(t,e){return"function"==typeof e?new Request("GET",t).end(e):1==arguments.length?new Request("GET",t):new Request(t,e)}var Emitter=require("emitter"),reduce=require("reduce"),root="undefined"==typeof window?this||self:window;request.getXHR=function(){if(!(!root.XMLHttpRequest||root.location&&"file:"==root.location.protocol&&root.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(t){}return!1};var trim="".trim?function(t){return t.trim()}:function(t){return t.replace(/(^\s*|\s*$)/g,"")};request.serializeObject=serialize,request.parseString=parseString,request.types={html:"text/html",json:"application/json",xml:"application/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},request.serialize={"application/x-www-form-urlencoded":serialize,"application/json":JSON.stringify},request.parse={"application/x-www-form-urlencoded":parseString,"application/json":JSON.parse},Response.prototype.get=function(t){return this.header[t.toLowerCase()]},Response.prototype.setHeaderProperties=function(t){var e=this.header["content-type"]||"";this.type=type(e);var r=params(e);for(var s in r)this[s]=r[s]},Response.prototype.parseBody=function(t){var e=request.parse[this.type];return e&&t&&(t.length||t instanceof Object)?e(t):null},Response.prototype.setStatusProperties=function(t){1223===t&&(t=204);var e=t/100|0;this.status=t,this.statusType=e,this.info=1==e,this.ok=2==e,this.clientError=4==e,this.serverError=5==e,this.error=4==e||5==e?this.toError():!1,this.accepted=202==t,this.noContent=204==t,this.badRequest=400==t,this.unauthorized=401==t,this.notAcceptable=406==t,this.notFound=404==t,this.forbidden=403==t},Response.prototype.toError=function(){var t=this.req,e=t.method,r=t.url,s="cannot "+e+" "+r+" ("+this.status+")",i=new Error(s);return i.status=this.status,i.method=e,i.url=r,i},request.Response=Response,Emitter(Request.prototype),Request.prototype.use=function(t){return t(this),this},Request.prototype.timeout=function(t){return this._timeout=t,this},Request.prototype.clearTimeout=function(){return this._timeout=0,clearTimeout(this._timer),this},Request.prototype.abort=function(){return this.aborted?void 0:(this.aborted=!0,this.xhr.abort(),this.clearTimeout(),this.emit("abort"),this)},Request.prototype.set=function(t,e){if(isObject(t)){for(var r in t)this.set(r,t[r]);return this}return this._header[t.toLowerCase()]=e,this.header[t]=e,this},Request.prototype.unset=function(t){return delete this._header[t.toLowerCase()],delete this.header[t],this},Request.prototype.getHeader=function(t){return this._header[t.toLowerCase()]},Request.prototype.type=function(t){return this.set("Content-Type",request.types[t]||t),this},Request.prototype.accept=function(t){return this.set("Accept",request.types[t]||t),this},Request.prototype.auth=function(t,e){var r=btoa(t+":"+e);return this.set("Authorization","Basic "+r),this},Request.prototype.query=function(t){return"string"!=typeof t&&(t=serialize(t)),t&&this._query.push(t),this},Request.prototype.field=function(t,e){return this._formData||(this._formData=new root.FormData),this._formData.append(t,e),this},Request.prototype.attach=function(t,e,r){return this._formData||(this._formData=new root.FormData),this._formData.append(t,e,r),this},Request.prototype.send=function(t){var e=isObject(t),r=this.getHeader("Content-Type");if(e&&isObject(this._data))for(var s in t)this._data[s]=t[s];else"string"==typeof t?(r||this.type("form"),r=this.getHeader("Content-Type"),"application/x-www-form-urlencoded"==r?this._data=this._data?this._data+"&"+t:t:this._data=(this._data||"")+t):this._data=t;return!e||isHost(t)?this:(r||this.type("json"),this)},Request.prototype.callback=function(t,e){var r=this._callback;this.clearTimeout(),r(t,e)},Request.prototype.crossDomainError=function(){var t=new Error("Origin is not allowed by Access-Control-Allow-Origin");t.crossDomain=!0,this.callback(t)},Request.prototype.timeoutError=function(){var t=this._timeout,e=new Error("timeout of "+t+"ms exceeded");e.timeout=t,this.callback(e)},Request.prototype.withCredentials=function(){return this._withCredentials=!0,this},Request.prototype.end=function(t){var e=this,r=this.xhr=request.getXHR(),s=this._query.join("&"),i=this._timeout,o=this._formData||this._data;this._callback=t||noop,r.onreadystatechange=function(){if(4==r.readyState){var t;try{t=r.status}catch(s){t=0}if(0==t){if(e.timedout)return e.timeoutError();if(e.aborted)return;return e.crossDomainError()}e.emit("end")}};var n=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.emit("progress",t)};this.hasListeners("progress")&&(r.onprogress=n);try{r.upload&&this.hasListeners("progress")&&(r.upload.onprogress=n)}catch(a){}if(i&&!this._timer&&(this._timer=setTimeout(function(){e.timedout=!0,e.abort()},i)),s&&(s=request.serializeObject(s),this.url+=~this.url.indexOf("?")?"&"+s:"?"+s),r.open(this.method,this.url,!0),this._withCredentials&&(r.withCredentials=!0),"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof o&&!isHost(o)){var u=request.serialize[this.getHeader("Content-Type")];u&&(o=u(o))}for(var h in this.header)null!=this.header[h]&&r.setRequestHeader(h,this.header[h]);return this.emit("request",this),r.send(o),this},request.Request=Request,request.get=function(t,e,r){var s=request("GET",t);return"function"==typeof e&&(r=e,e=null),e&&s.query(e),r&&s.end(r),s},request.head=function(t,e,r){var s=request("HEAD",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},request.del=function(t,e){var r=request("DELETE",t);return e&&r.end(e),r},request.patch=function(t,e,r){var s=request("PATCH",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},request.post=function(t,e,r){var s=request("POST",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},request.put=function(t,e,r){var s=request("PUT",t);return"function"==typeof e&&(r=e,e=null),e&&s.send(e),r&&s.end(r),s},module.exports=request; -},{"emitter":211,"reduce":212}],211:[function(require,module,exports){ +},{"emitter":212,"reduce":213}],212:[function(require,module,exports){ function Emitter(t){return t?mixin(t):void 0}function mixin(t){for(var e in Emitter.prototype)t[e]=Emitter.prototype[e];return t}module.exports=Emitter,Emitter.prototype.on=Emitter.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},Emitter.prototype.once=function(t,e){function i(){r.off(t,i),e.apply(this,arguments)}var r=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var r,s=0;sr;++r)i[r].apply(this,e)}return this},Emitter.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},Emitter.prototype.hasListeners=function(t){return!!this.listeners(t).length}; -},{}],212:[function(require,module,exports){ +},{}],213:[function(require,module,exports){ module.exports=function(l,n,e){for(var r=0,t=l.length,u=3==arguments.length?e:l[r++];t>r;)u=n.call(null,u,l[r],++r,l);return u}; -},{}],213:[function(require,module,exports){ +},{}],214:[function(require,module,exports){ !function(t,e){"undefined"!=typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&"object"==typeof define.amd?define(e):this[t]=e()}("validator",function(t){"use strict";function e(t,e){t=t||{};for(var r in e)"undefined"==typeof t[r]&&(t[r]=e[r]);return t}function r(t){var e="(\\"+t.symbol.replace(/\./g,"\\.")+")"+(t.require_symbol?"":"?"),r="-?",n="[1-9]\\d*",i="[1-9]\\d{0,2}(\\"+t.thousands_separator+"\\d{3})*",u=["0",n,i],o="("+u.join("|")+")?",a="(\\"+t.decimal_separator+"\\d{2})?",s=o+a;return t.allow_negatives&&!t.parens_for_negatives&&(t.negative_sign_after_digits?s+=r:t.negative_sign_before_digits&&(s=r+s)),t.allow_negative_sign_placeholder?s="( (?!\\-))?"+s:t.allow_space_after_symbol?s=" ?"+s:t.allow_space_after_digits&&(s+="( (?!$))?"),t.symbol_after_digits?s+=e:s=e+s,t.allow_negatives&&(t.parens_for_negatives?s="(\\("+s+"\\)|"+s+")":t.negative_sign_before_digits||t.negative_sign_after_digits||(s=r+s)),new RegExp("^(?!-? )(?=.*\\d)"+s+"$")}t={version:"3.40.0"};var n=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e])|(\\[\x01-\x09\x0b\x0c\x0d-\x7f])))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))$/i,i=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))$/i,u=/^(?:[a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~\.]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(?:[a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~\.]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\s)*<(.+)>$/i,o=/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,a=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/,s=/^(?:[0-9]{9}X|[0-9]{10})$/,l=/^(?:[0-9]{13})$/,f=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/,c=/^[0-9A-F]{1,4}$/i,F={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i},p=/^[A-Z]+$/i,g=/^[0-9A-Z]+$/i,x=/^[-+]?[0-9]+$/,d=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,_=/^(?:[-+]?(?:[0-9]+))?(?:\.[0-9]*)?(?:[eE][\+\-]?(?:[0-9]+))?$/,h=/^[0-9A-F]+$/i,A=/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i,v=/^[\x00-\x7F]+$/,$=/[^\x00-\x7F]/,w=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/,m=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/,D=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,b=/^(?:[A-Z0-9+\/]{4})*(?:[A-Z0-9+\/]{2}==|[A-Z0-9+\/]{3}=|[A-Z0-9+\/]{4})$/i,y={"zh-CN":/^(\+?0?86\-?)?1[345789]\d{9}$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-HK":/^(\+?852\-?)?[569]\d{3}\-?\d{4}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"pt-PT":/^(\+351)?9[1236]\d{7}$/,"el-GR":/^(\+30)?((2\d{9})|(69\d{8}))$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-US":/^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/,"en-ZM":/^(\+26)?09[567]\d{7}$/};t.extend=function(e,r){t[e]=function(){var e=Array.prototype.slice.call(arguments);return e[0]=t.toString(e[0]),r.apply(t,e)}},t.init=function(){for(var e in t)"function"==typeof t[e]&&"toString"!==e&&"toDate"!==e&&"extend"!==e&&"init"!==e&&t.extend(e,t[e])},t.toString=function(t){return"object"==typeof t&&null!==t&&t.toString?t=t.toString():null===t||"undefined"==typeof t||isNaN(t)&&!t.length?t="":"string"!=typeof t&&(t+=""),t},t.toDate=function(t){return"[object Date]"===Object.prototype.toString.call(t)?t:(t=Date.parse(t),isNaN(t)?null:new Date(t))},t.toFloat=function(t){return parseFloat(t)},t.toInt=function(t,e){return parseInt(t,e||10)},t.toBoolean=function(t,e){return e?"1"===t||"true"===t:"0"!==t&&"false"!==t&&""!==t},t.equals=function(e,r){return e===t.toString(r)},t.contains=function(e,r){return e.indexOf(t.toString(r))>=0},t.matches=function(t,e,r){return"[object RegExp]"!==Object.prototype.toString.call(e)&&(e=new RegExp(e,r)),e.test(t)};var E={allow_display_name:!1,allow_utf8_local_part:!0,require_tld:!0};t.isEmail=function(r,o){if(o=e(o,E),o.allow_display_name){var a=r.match(u);a&&(r=a[1])}else if(/\s/.test(r))return!1;var s=r.split("@"),l=s.pop(),f=s.join("@");return t.isFQDN(l,{require_tld:o.require_tld})?o.allow_utf8_local_part?i.test(f):n.test(f):!1};var O={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1};t.isURL=function(r,n){if(!r||r.length>=2083||/\s/.test(r))return!1;if(0===r.indexOf("mailto:"))return!1;n=e(n,O);var i,u,o,a,s,l,f;if(f=r.split("://"),f.length>1){if(i=f.shift(),-1===n.protocols.indexOf(i))return!1}else{if(n.require_protocol)return!1;n.allow_protocol_relative_urls&&"//"===r.substr(0,2)&&(f[0]=r.substr(2))}return r=f.join("://"),f=r.split("#"),r=f.shift(),f=r.split("?"),r=f.shift(),f=r.split("/"),r=f.shift(),f=r.split("@"),f.length>1&&(u=f.shift(),u.indexOf(":")>=0&&u.split(":").length>2)?!1:(a=f.join("@"),f=a.split(":"),o=f.shift(),f.length&&(l=f.join(":"),s=parseInt(l,10),!/^[0-9]+$/.test(l)||0>=s||s>65535)?!1:t.isIP(o)||t.isFQDN(o,n)||"localhost"===o?n.host_whitelist&&-1===n.host_whitelist.indexOf(o)?!1:n.host_blacklist&&-1!==n.host_blacklist.indexOf(o)?!1:!0:!1)},t.isIP=function(e,r){if(r=t.toString(r),!r)return t.isIP(e,4)||t.isIP(e,6);if("4"===r){if(!f.test(e))return!1;var n=e.split(".").sort(function(t,e){return t-e});return n[3]<=255}if("6"===r){var i=e.split(":"),u=!1;if(i.length>8)return!1;if("::"===e)return!0;"::"===e.substr(0,2)?(i.shift(),i.shift(),u=!0):"::"===e.substr(e.length-2)&&(i.pop(),i.pop(),u=!0);for(var o=0;o0&&o=1:8===i.length}return!1};var C={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1};t.isFQDN=function(t,r){r=e(r,C),r.allow_trailing_dot&&"."===t[t.length-1]&&(t=t.substring(0,t.length-1));var n=t.split(".");if(r.require_tld){var i=n.pop();if(!n.length||!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(i))return!1}for(var u,o=0;o=0)return!1;u=u.replace(/_/g,"")}if(!/^[a-z\u00a1-\uffff0-9-]+$/i.test(u))return!1;if("-"===u[0]||"-"===u[u.length-1]||u.indexOf("---")>=0)return!1}return!0},t.isBoolean=function(t){return["true","false","1","0"].indexOf(t)>=0},t.isAlpha=function(t){return p.test(t)},t.isAlphanumeric=function(t){return g.test(t)},t.isNumeric=function(t){return x.test(t)},t.isHexadecimal=function(t){return h.test(t)},t.isHexColor=function(t){return A.test(t)},t.isLowercase=function(t){return t===t.toLowerCase()},t.isUppercase=function(t){return t===t.toUpperCase()},t.isInt=function(t,e){return e=e||{},d.test(t)&&(!e.hasOwnProperty("min")||t>=e.min)&&(!e.hasOwnProperty("max")||t<=e.max)},t.isFloat=function(t,e){return e=e||{},""!==t&&_.test(t)&&(!e.hasOwnProperty("min")||t>=e.min)&&(!e.hasOwnProperty("max")||t<=e.max)},t.isDivisibleBy=function(e,r){return t.toFloat(e)%t.toInt(r)===0},t.isNull=function(t){return 0===t.length},t.isLength=function(t,e,r){var n=t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],i=t.length-n.length;return i>=e&&("undefined"==typeof r||r>=i)},t.isByteLength=function(t,e,r){return t.length>=e&&("undefined"==typeof r||t.length<=r)},t.isUUID=function(t,e){var r=F[e?e:"all"];return r&&r.test(t)},t.isDate=function(t){return!isNaN(Date.parse(t))},t.isAfter=function(e,r){var n=t.toDate(r||new Date),i=t.toDate(e);return!!(i&&n&&i>n)},t.isBefore=function(e,r){var n=t.toDate(r||new Date),i=t.toDate(e);return i&&n&&n>i},t.isIn=function(e,r){var n;if("[object Array]"===Object.prototype.toString.call(r)){var i=[];for(n in r)i[n]=t.toString(r[n]);return i.indexOf(e)>=0}return"object"==typeof r?r.hasOwnProperty(e):r&&"function"==typeof r.indexOf?r.indexOf(e)>=0:!1},t.isCreditCard=function(t){var e=t.replace(/[^0-9]+/g,"");if(!o.test(e))return!1;for(var r,n,i,u=0,a=e.length-1;a>=0;a--)r=e.substring(a,a+1),n=parseInt(r,10),i?(n*=2,u+=n>=10?n%10+1:n):u+=n,i=!i;return!!(u%10===0?e:!1)},t.isISIN=function(t){if(!a.test(t))return!1;for(var e,r,n=t.replace(/[A-Z]/g,function(t){return parseInt(t,36)}),i=0,u=!0,o=n.length-2;o>=0;o--)e=n.substring(o,o+1),r=parseInt(e,10),u?(r*=2,i+=r>=10?r+1:r):i+=r,u=!u;return parseInt(t.substr(t.length-1),10)===(1e4-i)%10},t.isISBN=function(e,r){if(r=t.toString(r),!r)return t.isISBN(e,10)||t.isISBN(e,13);var n,i=e.replace(/[\s-]+/g,""),u=0;if("10"===r){if(!s.test(i))return!1;for(n=0;9>n;n++)u+=(n+1)*i.charAt(n);if(u+="X"===i.charAt(9)?100:10*i.charAt(9),u%11===0)return!!i}else if("13"===r){if(!l.test(i))return!1;var o=[1,3];for(n=0;12>n;n++)u+=o[n%2]*i.charAt(n);if(i.charAt(12)-(10-u%10)%10===0)return!!i}return!1},t.isMobilePhone=function(t,e){return e in y?y[e].test(t):!1};var I={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_space_after_digits:!1};t.isCurrency=function(t,n){return n=e(n,I),r(n).test(t)},t.isJSON=function(t){try{JSON.parse(t)}catch(e){return!1}return!0},t.isMultibyte=function(t){return $.test(t)},t.isAscii=function(t){return v.test(t)},t.isFullWidth=function(t){return w.test(t)},t.isHalfWidth=function(t){return m.test(t)},t.isVariableWidth=function(t){return w.test(t)&&m.test(t)},t.isSurrogatePair=function(t){return D.test(t)},t.isBase64=function(t){return b.test(t)},t.isMongoId=function(e){return t.isHexadecimal(e)&&24===e.length},t.ltrim=function(t,e){var r=e?new RegExp("^["+e+"]+","g"):/^\s+/g;return t.replace(r,"")},t.rtrim=function(t,e){var r=e?new RegExp("["+e+"]+$","g"):/\s+$/g;return t.replace(r,"")},t.trim=function(t,e){var r=e?new RegExp("^["+e+"]+|["+e+"]+$","g"):/^\s+|\s+$/g;return t.replace(r,"")},t.escape=function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/").replace(/\`/g,"`")},t.stripLow=function(e,r){var n=r?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return t.blacklist(e,n)},t.whitelist=function(t,e){return t.replace(new RegExp("[^"+e+"]+","g"),"")},t.blacklist=function(t,e){return t.replace(new RegExp("["+e+"]+","g"),"")};var S={lowercase:!0};return t.normalizeEmail=function(r,n){if(n=e(n,S),!t.isEmail(r))return!1;var i=r.split("@",2);if(i[1]=i[1].toLowerCase(),"gmail.com"===i[1]||"googlemail.com"===i[1]){if(i[0]=i[0].toLowerCase().replace(/\./g,""),"+"===i[0][0])return!1;i[0]=i[0].split("+")[0],i[1]="gmail.com"}else n.lowercase&&(i[0]=i[0].toLowerCase());return i.join("@")},t.init(),t}); -},{}],214:[function(require,module,exports){ +},{}],215:[function(require,module,exports){ "use strict";module.exports={INVALID_TYPE:"Expected type {0} but found type {1}",INVALID_FORMAT:"Object didn't pass validation for format {0}: {1}",ENUM_MISMATCH:"No enum match for: {0}",ANY_OF_MISSING:"Data does not match any schemas from 'anyOf'",ONE_OF_MISSING:"Data does not match any schemas from 'oneOf'",ONE_OF_MULTIPLE:"Data is valid against more than one schema from 'oneOf'",NOT_PASSED:"Data matches schema from 'not'",ARRAY_LENGTH_SHORT:"Array is too short ({0}), minimum {1}",ARRAY_LENGTH_LONG:"Array is too long ({0}), maximum {1}",ARRAY_UNIQUE:"Array items are not unique (indexes {0} and {1})",ARRAY_ADDITIONAL_ITEMS:"Additional items not allowed",MULTIPLE_OF:"Value {0} is not a multiple of {1}",MINIMUM:"Value {0} is less than minimum {1}",MINIMUM_EXCLUSIVE:"Value {0} is equal or less than exclusive minimum {1}",MAXIMUM:"Value {0} is greater than maximum {1}",MAXIMUM_EXCLUSIVE:"Value {0} is equal or greater than exclusive maximum {1}",OBJECT_PROPERTIES_MINIMUM:"Too few properties defined ({0}), minimum {1}",OBJECT_PROPERTIES_MAXIMUM:"Too many properties defined ({0}), maximum {1}",OBJECT_MISSING_REQUIRED_PROPERTY:"Missing required property: {0}",OBJECT_ADDITIONAL_PROPERTIES:"Additional properties not allowed: {0}",OBJECT_DEPENDENCY_KEY:"Dependency failed - key must exist: {0} (due to key: {1})",MIN_LENGTH:"String is too short ({0} chars), minimum {1}",MAX_LENGTH:"String is too long ({0} chars), maximum {1}",PATTERN:"String does not match pattern {0}: {1}",KEYWORD_TYPE_EXPECTED:"Keyword '{0}' is expected to be of type '{1}'",KEYWORD_UNDEFINED_STRICT:"Keyword '{0}' must be defined in strict mode",KEYWORD_UNEXPECTED:"Keyword '{0}' is not expected to appear in the schema",KEYWORD_MUST_BE:"Keyword '{0}' must be {1}",KEYWORD_DEPENDENCY:"Keyword '{0}' requires keyword '{1}'",KEYWORD_PATTERN:"Keyword '{0}' is not a valid RegExp pattern: {1}",KEYWORD_VALUE_TYPE:"Each element of keyword '{0}' array must be a '{1}'",UNKNOWN_FORMAT:"There is no validation function for format '{0}'",CUSTOM_MODE_FORCE_PROPERTIES:"{0} must define at least one property if present",REF_UNRESOLVED:"Reference has not been resolved during compilation: {0}",UNRESOLVABLE_REFERENCE:"Reference could not be resolved: {0}",SCHEMA_NOT_REACHABLE:"Validator was not able to read schema with uri: {0}",SCHEMA_TYPE_EXPECTED:"Schema is expected to be of type 'object'",SCHEMA_NOT_AN_OBJECT:"Schema is not an object: {0}",ASYNC_TIMEOUT:"{0} asynchronous task(s) have timed out after {1} ms",PARENT_SCHEMA_VALIDATION_FAILED:"Schema failed to validate against its parent schema, see inner errors for details.",REMOTE_NOT_VALID:"Remote reference didn't compile successfully: {0}"}; -},{}],215:[function(require,module,exports){ +},{}],216:[function(require,module,exports){ var validator=require("validator"),FormatValidators={date:function(t){if("string"!=typeof t)return!0;var r=/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/.exec(t);return null===r?!1:r[2]<"01"||r[2]>"12"||r[3]<"01"||r[3]>"31"?!1:!0},"date-time":function(t){if("string"!=typeof t)return!0;var r=t.toLowerCase().split("t");if(!FormatValidators.date(r[0]))return!1;var i=/^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$/.exec(r[1]);return null===i?!1:i[1]>"23"||i[2]>"59"||i[3]>"59"?!1:!0},email:function(t){return"string"!=typeof t?!0:validator.isEmail(t,{require_tld:!0})},hostname:function(t){if("string"!=typeof t)return!0;var r=/^[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?(\.[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?)*$/.test(t);if(r){if(t.length>255)return!1;for(var i=t.split("."),e=0;e63)return!1}return r},"host-name":function(t){return FormatValidators.hostname.call(this,t)},ipv4:function(t){return"string"!=typeof t?!0:validator.isIP(t,4)},ipv6:function(t){return"string"!=typeof t?!0:validator.isIP(t,6)},regex:function(t){try{return RegExp(t),!0}catch(r){return!1}},uri:function(t){return this.options.strictUris?FormatValidators["strict-uri"].apply(this,arguments):"string"!=typeof t||RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?").test(t)},"strict-uri":function(t){return"string"!=typeof t||validator.isURL(t)}};module.exports=FormatValidators; -},{"validator":213}],216:[function(require,module,exports){ +},{"validator":214}],217:[function(require,module,exports){ "use strict";var FormatValidators=require("./FormatValidators"),Report=require("./Report"),Utils=require("./Utils"),JsonValidators={multipleOf:function(r,e,t){"number"==typeof t&&"integer"!==Utils.whatIs(t/e.multipleOf)&&r.addError("MULTIPLE_OF",[t,e.multipleOf],null,e.description)},maximum:function(r,e,t){"number"==typeof t&&(e.exclusiveMaximum!==!0?t>e.maximum&&r.addError("MAXIMUM",[t,e.maximum],null,e.description):t>=e.maximum&&r.addError("MAXIMUM_EXCLUSIVE",[t,e.maximum],null,e.description))},exclusiveMaximum:function(){},minimum:function(r,e,t){"number"==typeof t&&(e.exclusiveMinimum!==!0?te.maxLength&&r.addError("MAX_LENGTH",[t.length,e.maxLength],null,e.description)},minLength:function(r,e,t){"string"==typeof t&&Utils.ucs2decode(t).lengthe.items.length&&r.addError("ARRAY_ADDITIONAL_ITEMS",null,null,e.description)},items:function(){},maxItems:function(r,e,t){Array.isArray(t)&&t.length>e.maxItems&&r.addError("ARRAY_LENGTH_LONG",[t.length,e.maxItems],null,e.description)},minItems:function(r,e,t){Array.isArray(t)&&t.lengthe.maxProperties&&r.addError("OBJECT_PROPERTIES_MAXIMUM",[i,e.maxProperties],null,e.description)}},minProperties:function(r,e,t){if("object"===Utils.whatIs(t)){var i=Object.keys(t).length;i0&&r.addError("OBJECT_ADDITIONAL_PROPERTIES",[o],null,e.description)}}},dependencies:function(r,e,t){if("object"===Utils.whatIs(t))for(var i=Object.keys(e.dependencies),n=i.length;n--;){var o=i[n];if(t[o]){var a=e.dependencies[o];if("object"===Utils.whatIs(a))exports.validate.call(this,r,a,t);else for(var s=a.length;s--;){var l=a[s];void 0===t[l]&&r.addError("OBJECT_DEPENDENCY_KEY",[l,o],null,e.description)}}}},"enum":function(r,e,t){for(var i=!1,n=e["enum"].length;n--;)if(Utils.areEqual(t,e["enum"][n])){i=!0;break}i===!1&&r.addError("ENUM_MISMATCH",[t],null,e.description)},allOf:function(r,e,t){for(var i=e.allOf.length;i--&&exports.validate.call(this,r,e.allOf[i],t)!==!1;);},anyOf:function(r,e,t){for(var i=[],n=!1,o=e.anyOf.length;o--&&n===!1;){var a=new Report(r);i.push(a),n=exports.validate.call(this,a,e.anyOf[o],t)}n===!1&&r.addError("ANY_OF_MISSING",void 0,i,e.description)},oneOf:function(r,e,t){for(var i=0,n=[],o=e.oneOf.length;o--;){var a=new Report(r,{maxErrors:1});n.push(a),exports.validate.call(this,a,e.oneOf[o],t)===!0&&i++}0===i?r.addError("ONE_OF_MISSING",void 0,n,e.description):i>1&&r.addError("ONE_OF_MULTIPLE",null,null,e.description)},not:function(r,e,t){var i=new Report(r);exports.validate.call(this,i,e.not,t)===!0&&r.addError("NOT_PASSED",null,null,e.description)},definitions:function(){},format:function(r,e,t){var i=FormatValidators[e.format];"function"==typeof i?2===i.length?r.addAsyncTask(i,[t],function(i){i!==!0&&r.addError("INVALID_FORMAT",[e.format,t],null,e.description)}):i.call(this,t)!==!0&&r.addError("INVALID_FORMAT",[e.format,t],null,e.description):r.addError("UNKNOWN_FORMAT",[e.format],null,e.description)}},recurseArray=function(r,e,t){var i=t.length;if(Array.isArray(e.items))for(;i--;)i0;){if(!e.__$refResolved){r.addError("REF_UNRESOLVED",[e.$ref],null,e.description);break}if(e.__$refResolved===e)break;e=e.__$refResolved,n=Object.keys(e),a--}if(0===a)throw new Error("Circular dependency by $ref references!")}var s=Utils.whatIs(t);if(e.type)if("string"==typeof e.type){if(s!==e.type&&("integer"!==s||"number"!==e.type)&&(r.addError("INVALID_TYPE",[e.type,s],null,e.description),this.options.breakOnFirstError))return!1}else if(-1===e.type.indexOf(s)&&("integer"!==s||-1===e.type.indexOf("number"))&&(r.addError("INVALID_TYPE",[e.type,s],null,e.description),this.options.breakOnFirstError))return!1;for(var l=n.length;l--&&!(JsonValidators[n[l]]&&(JsonValidators[n[l]].call(this,r,e,t),r.errors.length&&this.options.breakOnFirstError)););return(0===r.errors.length||this.options.breakOnFirstError===!1)&&("array"===s?recurseArray.call(this,r,e,t):"object"===s&&recurseObject.call(this,r,e,t)),o&&(r.rootSchema=void 0),0===r.errors.length}; -},{"./FormatValidators":215,"./Report":218,"./Utils":222}],217:[function(require,module,exports){ +},{"./FormatValidators":216,"./Report":219,"./Utils":223}],218:[function(require,module,exports){ "function"!=typeof Number.isFinite&&(Number.isFinite=function(e){return"number"!=typeof e?!1:e!==e||e===1/0||e===-(1/0)?!1:!0}); -},{}],218:[function(require,module,exports){ +},{}],219:[function(require,module,exports){ (function (process){ "use strict";function Report(r,t){this.parentReport=r instanceof Report?r:void 0,this.options=r instanceof Report?r.options:r||{},this.reportOptions=t||{},this.errors=[],this.path=[],this.asyncTasks=[]}var Errors=require("./Errors"),Utils=require("./Utils");Report.prototype.isValid=function(){if(this.asyncTasks.length>0)throw new Error("Async tasks pending, can't answer isValid");return 0===this.errors.length},Report.prototype.addAsyncTask=function(r,t,o){this.asyncTasks.push([r,t,o])},Report.prototype.processAsyncTasks=function(r,t){function o(){process.nextTick(function(){var r=0===p.errors.length,o=r?void 0:p.errors;t(o,r)})}function s(r){return function(t){a||(r(t),0===--n&&o())}}var e=r||2e3,n=this.asyncTasks.length,i=n,a=!1,p=this;if(0===n||this.errors.length>0)return void o();for(;i--;){var h=this.asyncTasks[i];h[0].apply(null,h[1].concat(s(h[2])))}setTimeout(function(){n>0&&(a=!0,p.addError("ASYNC_TIMEOUT",[n,e]),t(p.errors,!1))},e)},Report.prototype.getPath=function(){var r=[];return this.parentReport&&(r=r.concat(this.parentReport.path)),r=r.concat(this.path),this.options.reportPathAsArray!==!0&&(r="#/"+r.map(function(r){return Utils.isAbsoluteUri(r)?"uri("+r+")":r.replace("~","~0").replace("/","~1")}).join("/")),r},Report.prototype.addError=function(r,t,o,s){if(!(this.errors.length>=this.reportOptions.maxErrors)){if(!r)throw new Error("No errorCode passed into addError()");if(!Errors[r])throw new Error("No errorMessage known for code "+r);t=t||[];for(var e=t.length,n=Errors[r];e--;){var i=Utils.whatIs(t[e]),a="object"===i||"null"===i?JSON.stringify(t[e]):t[e];n=n.replace("{"+e+"}",a)}var p={code:r,params:t,message:n,path:this.getPath()};if(s&&(p.description=s),null!=o){for(Array.isArray(o)||(o=[o]),p.inner=[],e=o.length;e--;)for(var h=o[e],c=h.errors.length;c--;)p.inner.push(h.errors[c]);0===p.inner.length&&(p.inner=void 0)}this.errors.push(p)}},module.exports=Report; }).call(this,require('_process')) -},{"./Errors":214,"./Utils":222,"_process":15}],219:[function(require,module,exports){ +},{"./Errors":215,"./Utils":223,"_process":16}],220:[function(require,module,exports){ "use strict";function decodeJSONPointer(e){return decodeURIComponent(e).replace(/~[0-1]/g,function(e){return"~1"===e?"/":"~"})}function getRemotePath(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function getQueryPath(e){var t=e.indexOf("#"),r=-1===t?void 0:e.slice(t+1);return r}function findId(e,t){if("object"==typeof e&&null!==e){if(!t)return e;if(e.id&&(e.id===t||"#"===e.id[0]&&e.id.substring(1)===t))return e;var r,i;if(Array.isArray(e)){for(r=e.length;r--;)if(i=findId(e[r],t))return i}else{var a=Object.keys(e);for(r=a.length;r--;){var n=a[r];if(0!==n.indexOf("__$")&&(i=findId(e[n],t)))return i}}}}var Report=require("./Report"),SchemaCompilation=require("./SchemaCompilation"),SchemaValidation=require("./SchemaValidation"),Utils=require("./Utils");exports.cacheSchemaByUri=function(e,t){var r=getRemotePath(e);r&&(this.cache[r]=t)},exports.removeFromCacheByUri=function(e){var t=getRemotePath(e);t&&(this.cache[t]=void 0)},exports.checkCacheForUri=function(e){var t=getRemotePath(e);return t?null!=this.cache[t]:!1},exports.getSchema=function(e,t){return"object"==typeof t&&(t=exports.getSchemaByReference.call(this,e,t)),"string"==typeof t&&(t=exports.getSchemaByUri.call(this,e,t)),t},exports.getSchemaByReference=function(e,t){for(var r=this.referenceCache.length;r--;)if(this.referenceCache[r][0]===t)return this.referenceCache[r][1];var i=Utils.cloneDeep(t);return this.referenceCache.push([t,i]),i},exports.getSchemaByUri=function(e,t,r){var i=getRemotePath(t),a=getQueryPath(t),n=i?this.cache[i]:r;if(n&&i){var c=n!==r;if(c){e.path.push(i);var o=new Report(e);SchemaCompilation.compileSchema.call(this,o,n)&&SchemaValidation.validateSchema.call(this,o,n);var h=o.isValid();if(h||e.addError("REMOTE_NOT_VALID",[t],o),e.path.pop(),!h)return void 0}}if(n&&a)for(var f=a.split("/"),s=0,u=f.length;u>s;s++){var l=decodeJSONPointer(f[s]);n=0===s?findId(n,l):n[l]}return n},exports.getRemotePath=getRemotePath; -},{"./Report":218,"./SchemaCompilation":220,"./SchemaValidation":221,"./Utils":222}],220:[function(require,module,exports){ +},{"./Report":219,"./SchemaCompilation":221,"./SchemaValidation":222,"./Utils":223}],221:[function(require,module,exports){ "use strict";function mergeReference(e,r){if(Utils.isAbsoluteUri(r))return r;var i,s=e.join(""),c=Utils.isAbsoluteUri(s),t=Utils.isRelativeUri(s),a=Utils.isRelativeUri(r);c&&a?(i=s.match(/\/[^\/]*$/),i&&(s=s.slice(0,i.index+1))):t&&a?s="":(i=s.match(/[^#/]+$/),i&&(s=s.slice(0,i.index)));var o=s+r;return o=o.replace(/##/,"#")}function collectReferences(e,r,i,s){if(r=r||[],i=i||[],s=s||[],"object"!=typeof e||null===e)return r;"string"==typeof e.id&&i.push(e.id),"string"==typeof e.$ref&&"undefined"==typeof e.__$refResolved&&r.push({ref:mergeReference(i,e.$ref),key:"$ref",obj:e,path:s.slice(0)}),"string"==typeof e.$schema&&"undefined"==typeof e.__$schemaResolved&&r.push({ref:mergeReference(i,e.$schema),key:"$schema",obj:e,path:s.slice(0)});var c;if(Array.isArray(e))for(c=e.length;c--;)s.push(c.toString()),collectReferences(e[c],r,i,s),s.pop();else{var t=Object.keys(e);for(c=t.length;c--;)0!==t[c].indexOf("__$")&&(s.push(t[c]),collectReferences(e[t[c]],r,i,s),s.pop())}return"string"==typeof e.id&&i.pop(),r}function findId(e,r){for(var i=e.length;i--;)if(e[i].id===r)return e[i];return null}var Report=require("./Report"),SchemaCache=require("./SchemaCache"),Utils=require("./Utils"),compileArrayOfSchemasLoop=function(e,r){for(var i=r.length,s=0;i--;){var c=new Report(e),t=exports.compileSchema.call(this,c,r[i]);t&&s++,e.errors=e.errors.concat(c.errors)}return s},compileArrayOfSchemas=function(e,r){var i,s=0;do{for(var c=e.errors.length;c--;)"UNRESOLVABLE_REFERENCE"===e.errors[c].code&&e.errors.splice(c,1);for(i=s,s=compileArrayOfSchemasLoop.call(this,e,r),c=r.length;c--;){var t=r[c];if(t.__$missingReferences){for(var a=t.__$missingReferences.length;a--;){var o=t.__$missingReferences[a],l=findId(r,o.ref);l&&(o.obj["__"+o.key+"Resolved"]=l,t.__$missingReferences.splice(a,1))}0===t.__$missingReferences.length&&delete t.__$missingReferences}}}while(s!==r.length&&s!==i);return e.isValid()};exports.compileSchema=function(e,r){if(e.commonErrorMessage="SCHEMA_COMPILATION_FAILED","string"==typeof r){var i=SchemaCache.getSchemaByUri.call(this,e,r);if(!i)return e.addError("SCHEMA_NOT_REACHABLE",[r]),!1;r=i}if(Array.isArray(r))return compileArrayOfSchemas.call(this,e,r);if(r.__$compiled&&r.id&&SchemaCache.checkCacheForUri.call(this,r.id)===!1&&(r.__$compiled=void 0),r.__$compiled)return!0;r.id&&SchemaCache.cacheSchemaByUri.call(this,r.id,r);var s=e.isValid();delete r.__$missingReferences;for(var c=collectReferences.call(this,r),t=c.length;t--;){var a=c[t],o=SchemaCache.getSchemaByUri.call(this,e,a.ref,r);if(!o){var l=this.getSchemaReader();if(l){var n=l(a.ref);if(n){n.id=a.ref;var h=new Report(e);exports.compileSchema.call(this,h,n)?o=SchemaCache.getSchemaByUri.call(this,e,a.ref,r):e.errors=e.errors.concat(h.errors)}}}if(!o){var f=Utils.isAbsoluteUri(a.ref),m=!1,p=this.options.ignoreUnresolvableReferences===!0;f&&(m=SchemaCache.checkCacheForUri.call(this,a.ref)),f&&(m||p)||(Array.prototype.push.apply(e.path,a.path),e.addError("UNRESOLVABLE_REFERENCE",[a.ref]),e.path.slice(0,-a.path.length),s&&(r.__$missingReferences=r.__$missingReferences||[],r.__$missingReferences.push(a)))}a.obj["__"+a.key+"Resolved"]=o}var _=e.isValid();return _?r.__$compiled=!0:r.id&&SchemaCache.removeFromCacheByUri.call(this,r.id),_}; -},{"./Report":218,"./SchemaCache":219,"./Utils":222}],221:[function(require,module,exports){ +},{"./Report":219,"./SchemaCache":220,"./Utils":223}],222:[function(require,module,exports){ "use strict";var FormatValidators=require("./FormatValidators"),JsonValidation=require("./JsonValidation"),Report=require("./Report"),Utils=require("./Utils"),SchemaValidators={$ref:function(r,e){"string"!=typeof e.$ref&&r.addError("KEYWORD_TYPE_EXPECTED",["$ref","string"])},$schema:function(r,e){"string"!=typeof e.$schema&&r.addError("KEYWORD_TYPE_EXPECTED",["$schema","string"])},multipleOf:function(r,e){"number"!=typeof e.multipleOf?r.addError("KEYWORD_TYPE_EXPECTED",["multipleOf","number"]):e.multipleOf<=0&&r.addError("KEYWORD_MUST_BE",["multipleOf","strictly greater than 0"])},maximum:function(r,e){"number"!=typeof e.maximum&&r.addError("KEYWORD_TYPE_EXPECTED",["maximum","number"])},exclusiveMaximum:function(r,e){"boolean"!=typeof e.exclusiveMaximum?r.addError("KEYWORD_TYPE_EXPECTED",["exclusiveMaximum","boolean"]):void 0===e.maximum&&r.addError("KEYWORD_DEPENDENCY",["exclusiveMaximum","maximum"])},minimum:function(r,e){"number"!=typeof e.minimum&&r.addError("KEYWORD_TYPE_EXPECTED",["minimum","number"])},exclusiveMinimum:function(r,e){"boolean"!=typeof e.exclusiveMinimum?r.addError("KEYWORD_TYPE_EXPECTED",["exclusiveMinimum","boolean"]):void 0===e.minimum&&r.addError("KEYWORD_DEPENDENCY",["exclusiveMinimum","minimum"])},maxLength:function(r,e){"integer"!==Utils.whatIs(e.maxLength)?r.addError("KEYWORD_TYPE_EXPECTED",["maxLength","integer"]):e.maxLength<0&&r.addError("KEYWORD_MUST_BE",["maxLength","greater than, or equal to 0"])},minLength:function(r,e){"integer"!==Utils.whatIs(e.minLength)?r.addError("KEYWORD_TYPE_EXPECTED",["minLength","integer"]):e.minLength<0&&r.addError("KEYWORD_MUST_BE",["minLength","greater than, or equal to 0"])},pattern:function(r,e){if("string"!=typeof e.pattern)r.addError("KEYWORD_TYPE_EXPECTED",["pattern","string"]);else try{RegExp(e.pattern)}catch(t){r.addError("KEYWORD_PATTERN",["pattern",e.pattern])}},additionalItems:function(r,e){var t=Utils.whatIs(e.additionalItems);"boolean"!==t&&"object"!==t?r.addError("KEYWORD_TYPE_EXPECTED",["additionalItems",["boolean","object"]]):"object"===t&&(r.path.push("additionalItems"),exports.validateSchema.call(this,r,e.additionalItems),r.path.pop())},items:function(r,e){var t=Utils.whatIs(e.items);if("object"===t)r.path.push("items"),exports.validateSchema.call(this,r,e.items),r.path.pop();else if("array"===t)for(var a=e.items.length;a--;)r.path.push("items"),r.path.push(a.toString()),exports.validateSchema.call(this,r,e.items[a]),r.path.pop(),r.path.pop();else r.addError("KEYWORD_TYPE_EXPECTED",["items",["array","object"]]);this.options.forceAdditional===!0&&void 0===e.additionalItems&&Array.isArray(e.items)&&r.addError("KEYWORD_UNDEFINED_STRICT",["additionalItems"]),this.options.assumeAdditional===!0&&void 0===e.additionalItems&&Array.isArray(e.items)&&(e.additionalItems=!1)},maxItems:function(r,e){"number"!=typeof e.maxItems?r.addError("KEYWORD_TYPE_EXPECTED",["maxItems","integer"]):e.maxItems<0&&r.addError("KEYWORD_MUST_BE",["maxItems","greater than, or equal to 0"])},minItems:function(r,e){"integer"!==Utils.whatIs(e.minItems)?r.addError("KEYWORD_TYPE_EXPECTED",["minItems","integer"]):e.minItems<0&&r.addError("KEYWORD_MUST_BE",["minItems","greater than, or equal to 0"])},uniqueItems:function(r,e){"boolean"!=typeof e.uniqueItems&&r.addError("KEYWORD_TYPE_EXPECTED",["uniqueItems","boolean"])},maxProperties:function(r,e){"integer"!==Utils.whatIs(e.maxProperties)?r.addError("KEYWORD_TYPE_EXPECTED",["maxProperties","integer"]):e.maxProperties<0&&r.addError("KEYWORD_MUST_BE",["maxProperties","greater than, or equal to 0"])},minProperties:function(r,e){"integer"!==Utils.whatIs(e.minProperties)?r.addError("KEYWORD_TYPE_EXPECTED",["minProperties","integer"]):e.minProperties<0&&r.addError("KEYWORD_MUST_BE",["minProperties","greater than, or equal to 0"])},required:function(r,e){if("array"!==Utils.whatIs(e.required))r.addError("KEYWORD_TYPE_EXPECTED",["required","array"]);else if(0===e.required.length)r.addError("KEYWORD_MUST_BE",["required","an array with at least one element"]);else{for(var t=e.required.length;t--;)"string"!=typeof e.required[t]&&r.addError("KEYWORD_VALUE_TYPE",["required","string"]);Utils.isUniqueArray(e.required)===!1&&r.addError("KEYWORD_MUST_BE",["required","an array with unique items"])}},additionalProperties:function(r,e){var t=Utils.whatIs(e.additionalProperties);"boolean"!==t&&"object"!==t?r.addError("KEYWORD_TYPE_EXPECTED",["additionalProperties",["boolean","object"]]):"object"===t&&(r.path.push("additionalProperties"),exports.validateSchema.call(this,r,e.additionalProperties),r.path.pop())},properties:function(r,e){if("object"!==Utils.whatIs(e.properties))return void r.addError("KEYWORD_TYPE_EXPECTED",["properties","object"]);for(var t=Object.keys(e.properties),a=t.length;a--;){var i=t[a],o=e.properties[i];r.path.push("properties"),r.path.push(i),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop()}this.options.forceAdditional===!0&&void 0===e.additionalProperties&&r.addError("KEYWORD_UNDEFINED_STRICT",["additionalProperties"]),this.options.assumeAdditional===!0&&void 0===e.additionalProperties&&(e.additionalProperties=!1),this.options.forceProperties===!0&&0===t.length&&r.addError("CUSTOM_MODE_FORCE_PROPERTIES",["properties"])},patternProperties:function(r,e){if("object"!==Utils.whatIs(e.patternProperties))return void r.addError("KEYWORD_TYPE_EXPECTED",["patternProperties","object"]);for(var t=Object.keys(e.patternProperties),a=t.length;a--;){var i=t[a],o=e.patternProperties[i];try{RegExp(i)}catch(n){r.addError("KEYWORD_PATTERN",["patternProperties",i])}r.path.push("patternProperties"),r.path.push(i.toString()),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop()}this.options.forceProperties===!0&&0===t.length&&r.addError("CUSTOM_MODE_FORCE_PROPERTIES",["patternProperties"])},dependencies:function(r,e){if("object"!==Utils.whatIs(e.dependencies))r.addError("KEYWORD_TYPE_EXPECTED",["dependencies","object"]);else for(var t=Object.keys(e.dependencies),a=t.length;a--;){var i=t[a],o=e.dependencies[i],n=Utils.whatIs(o);if("object"===n)r.path.push("dependencies"),r.path.push(i),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop();else if("array"===n){var E=o.length;for(0===E&&r.addError("KEYWORD_MUST_BE",["dependencies","not empty array"]);E--;)"string"!=typeof o[E]&&r.addError("KEYWORD_VALUE_TYPE",["dependensices","string"]);Utils.isUniqueArray(o)===!1&&r.addError("KEYWORD_MUST_BE",["dependencies","an array with unique items"])}else r.addError("KEYWORD_VALUE_TYPE",["dependencies","object or array"])}},"enum":function(r,e){Array.isArray(e["enum"])===!1?r.addError("KEYWORD_TYPE_EXPECTED",["enum","array"]):0===e["enum"].length?r.addError("KEYWORD_MUST_BE",["enum","an array with at least one element"]):Utils.isUniqueArray(e["enum"])===!1&&r.addError("KEYWORD_MUST_BE",["enum","an array with unique elements"])},type:function(r,e){var t=["array","boolean","integer","number","null","object","string"],a=t.join(","),i=Array.isArray(e.type);if(i){for(var o=e.type.length;o--;)-1===t.indexOf(e.type[o])&&r.addError("KEYWORD_TYPE_EXPECTED",["type",a]);Utils.isUniqueArray(e.type)===!1&&r.addError("KEYWORD_MUST_BE",["type","an object with unique properties"])}else"string"==typeof e.type?-1===t.indexOf(e.type)&&r.addError("KEYWORD_TYPE_EXPECTED",["type",a]):r.addError("KEYWORD_TYPE_EXPECTED",["type",["string","array"]]);this.options.noEmptyStrings===!0&&("string"===e.type||i&&-1!==e.type.indexOf("string"))&&void 0===e.minLength&&void 0===e["enum"]&&void 0===e.format&&(e.minLength=1),this.options.noEmptyArrays===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.minItems&&(e.minItems=1),this.options.forceProperties===!0&&("object"===e.type||i&&-1!==e.type.indexOf("object"))&&void 0===e.properties&&void 0===e.patternProperties&&r.addError("KEYWORD_UNDEFINED_STRICT",["properties"]),this.options.forceItems===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.items&&r.addError("KEYWORD_UNDEFINED_STRICT",["items"]),this.options.forceMinItems===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.minItems&&r.addError("KEYWORD_UNDEFINED_STRICT",["minItems"]),this.options.forceMaxItems===!0&&("array"===e.type||i&&-1!==e.type.indexOf("array"))&&void 0===e.maxItems&&r.addError("KEYWORD_UNDEFINED_STRICT",["maxItems"]),this.options.forceMinLength===!0&&("string"===e.type||i&&-1!==e.type.indexOf("string"))&&void 0===e.minLength&&void 0===e.format&&void 0===e["enum"]&&void 0===e.pattern&&r.addError("KEYWORD_UNDEFINED_STRICT",["minLength"]),this.options.forceMaxLength===!0&&("string"===e.type||i&&-1!==e.type.indexOf("string"))&&void 0===e.maxLength&&void 0===e.format&&void 0===e["enum"]&&void 0===e.pattern&&r.addError("KEYWORD_UNDEFINED_STRICT",["maxLength"])},allOf:function(r,e){if(Array.isArray(e.allOf)===!1)r.addError("KEYWORD_TYPE_EXPECTED",["allOf","array"]);else if(0===e.allOf.length)r.addError("KEYWORD_MUST_BE",["allOf","an array with at least one element"]);else for(var t=e.allOf.length;t--;)r.path.push("allOf"),r.path.push(t.toString()),exports.validateSchema.call(this,r,e.allOf[t]),r.path.pop(),r.path.pop()},anyOf:function(r,e){if(Array.isArray(e.anyOf)===!1)r.addError("KEYWORD_TYPE_EXPECTED",["anyOf","array"]);else if(0===e.anyOf.length)r.addError("KEYWORD_MUST_BE",["anyOf","an array with at least one element"]);else for(var t=e.anyOf.length;t--;)r.path.push("anyOf"),r.path.push(t.toString()),exports.validateSchema.call(this,r,e.anyOf[t]),r.path.pop(),r.path.pop()},oneOf:function(r,e){if(Array.isArray(e.oneOf)===!1)r.addError("KEYWORD_TYPE_EXPECTED",["oneOf","array"]);else if(0===e.oneOf.length)r.addError("KEYWORD_MUST_BE",["oneOf","an array with at least one element"]);else for(var t=e.oneOf.length;t--;)r.path.push("oneOf"),r.path.push(t.toString()),exports.validateSchema.call(this,r,e.oneOf[t]),r.path.pop(),r.path.pop()},not:function(r,e){"object"!==Utils.whatIs(e.not)?r.addError("KEYWORD_TYPE_EXPECTED",["not","object"]):(r.path.push("not"),exports.validateSchema.call(this,r,e.not),r.path.pop())},definitions:function(r,e){if("object"!==Utils.whatIs(e.definitions))r.addError("KEYWORD_TYPE_EXPECTED",["definitions","object"]);else for(var t=Object.keys(e.definitions),a=t.length;a--;){var i=t[a],o=e.definitions[i];r.path.push("definitions"),r.path.push(i),exports.validateSchema.call(this,r,o),r.path.pop(),r.path.pop()}},format:function(r,e){"string"!=typeof e.format?r.addError("KEYWORD_TYPE_EXPECTED",["format","string"]):void 0===FormatValidators[e.format]&&r.addError("UNKNOWN_FORMAT",[e.format])},id:function(r,e){"string"!=typeof e.id&&r.addError("KEYWORD_TYPE_EXPECTED",["id","string"])},title:function(r,e){"string"!=typeof e.title&&r.addError("KEYWORD_TYPE_EXPECTED",["title","string"])},description:function(r,e){"string"!=typeof e.description&&r.addError("KEYWORD_TYPE_EXPECTED",["description","string"])},"default":function(){}},validateArrayOfSchemas=function(r,e){for(var t=e.length;t--;)exports.validateSchema.call(this,r,e[t]);return r.isValid()};exports.validateSchema=function(r,e){if(r.commonErrorMessage="SCHEMA_VALIDATION_FAILED",Array.isArray(e))return validateArrayOfSchemas.call(this,r,e);if(e.__$validated)return!0;var t=e.$schema&&e.id!==e.$schema;if(t)if(e.__$schemaResolved&&e.__$schemaResolved!==e){var a=new Report(r),i=JsonValidation.validate.call(this,a,e.__$schemaResolved,e);i===!1&&r.addError("PARENT_SCHEMA_VALIDATION_FAILED",null,a)}else this.options.ignoreUnresolvableReferences!==!0&&r.addError("REF_UNRESOLVED",[e.$schema]);if(this.options.noTypeless===!0){if(void 0!==e.type){var o=[];Array.isArray(e.anyOf)&&(o=o.concat(e.anyOf)),Array.isArray(e.oneOf)&&(o=o.concat(e.oneOf)),Array.isArray(e.allOf)&&(o=o.concat(e.allOf)),o.forEach(function(r){r.type||(r.type=e.type)})}void 0===e["enum"]&&void 0===e.type&&void 0===e.anyOf&&void 0===e.oneOf&&void 0===e.not&&void 0===e.$ref&&r.addError("KEYWORD_UNDEFINED_STRICT",["type"])}for(var n=Object.keys(e),E=n.length;E--;){var s=n[E];0!==s.indexOf("__")&&(void 0!==SchemaValidators[s]?SchemaValidators[s].call(this,r,e):t||this.options.noExtraKeywords===!0&&r.addError("KEYWORD_UNEXPECTED",[s]))}var d=r.isValid();return d&&(e.__$validated=!0),d}; -},{"./FormatValidators":215,"./JsonValidation":216,"./Report":218,"./Utils":222}],222:[function(require,module,exports){ +},{"./FormatValidators":216,"./JsonValidation":217,"./Report":219,"./Utils":223}],223:[function(require,module,exports){ "use strict";exports.isAbsoluteUri=function(r){return/^https?:\/\//.test(r)},exports.isRelativeUri=function(r){return/.+#/.test(r)},exports.whatIs=function(r){var e=typeof r;return"object"===e?null===r?"null":Array.isArray(r)?"array":"object":"number"===e?Number.isFinite(r)?r%1===0?"integer":"number":Number.isNaN(r)?"not-a-number":"unknown-number":e},exports.areEqual=function r(e,t){if(e===t)return!0;var n,u;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(u=e.length,n=0;u>n;n++)if(!r(e[n],t[n]))return!1;return!0}if("object"===exports.whatIs(e)&&"object"===exports.whatIs(t)){var o=Object.keys(e),s=Object.keys(t);if(!r(o,s))return!1;for(u=o.length,n=0;u>n;n++)if(!r(e[o[n]],t[o[n]]))return!1;return!0}return!1},exports.isUniqueArray=function(r,e){var t,n,u=r.length;for(t=0;u>t;t++)for(n=t+1;u>n;n++)if(exports.areEqual(r[t],r[n]))return e&&e.push(t,n),!1;return!0},exports.difference=function(r,e){for(var t=[],n=r.length;n--;)-1===e.indexOf(r[n])&&t.push(r[n]);return t},exports.clone=function(r){if("object"!=typeof r||null===r)return r;var e,t;if(Array.isArray(r))for(e=[],t=r.length;t--;)e[t]=r[t];else{e={};var n=Object.keys(r);for(t=n.length;t--;){var u=n[t];e[u]=r[u]}}return e},exports.cloneDeep=function(r){function e(r){if("object"!=typeof r||null===r)return r;var u,o,s;if(s=t.indexOf(r),-1!==s)return n[s];if(t.push(r),Array.isArray(r))for(u=[],n.push(u),o=r.length;o--;)u[o]=e(r[o]);else{u={},n.push(u);var i=Object.keys(r);for(o=i.length;o--;){var f=i[o];u[f]=e(r[f])}}return u}var t=[],n=[];return e(r)},exports.ucs2decode=function(r){for(var e,t,n=[],u=0,o=r.length;o>u;)e=r.charCodeAt(u++),e>=55296&&56319>=e&&o>u?(t=r.charCodeAt(u++),56320==(64512&t)?n.push(((1023&e)<<10)+(1023&t)+65536):(n.push(e),u--)):n.push(e);return n}; -},{}],223:[function(require,module,exports){ +},{}],224:[function(require,module,exports){ (function (process){ "use strict";function ZSchema(e){if(this.cache={},this.referenceCache=[],this.setRemoteReference("http://json-schema.org/draft-04/schema",Draft4Schema),this.setRemoteReference("http://json-schema.org/draft-04/hyper-schema",Draft4HyperSchema),"object"==typeof e){for(var t=Object.keys(e),r=t.length;r--;){var a=t[r];if(void 0===defaultOptions[a])throw new Error("Unexpected option passed to constructor: "+a)}this.options=e}else this.options=Utils.clone(defaultOptions);this.options.strictMode===!0&&(this.options.forceAdditional=!0,this.options.forceItems=!0,this.options.forceMaxLength=!0,this.options.forceProperties=!0,this.options.noExtraKeywords=!0,this.options.noTypeless=!0,this.options.noEmptyStrings=!0,this.options.noEmptyArrays=!0)}require("./Polyfills");var Report=require("./Report"),FormatValidators=require("./FormatValidators"),JsonValidation=require("./JsonValidation"),SchemaCache=require("./SchemaCache"),SchemaCompilation=require("./SchemaCompilation"),SchemaValidation=require("./SchemaValidation"),Utils=require("./Utils"),Draft4Schema=require("./schemas/schema.json"),Draft4HyperSchema=require("./schemas/hyper-schema.json"),defaultOptions={asyncTimeout:2e3,forceAdditional:!1,assumeAdditional:!1,forceItems:!1,forceMinItems:!1,forceMaxItems:!1,forceMinLength:!1,forceMaxLength:!1,forceProperties:!1,ignoreUnresolvableReferences:!1,noExtraKeywords:!1,noTypeless:!1,noEmptyStrings:!1,noEmptyArrays:!1,strictUris:!1,strictMode:!1,reportPathAsArray:!1,breakOnFirstError:!0};ZSchema.prototype.compileSchema=function(e){var t=new Report(this.options);return e=SchemaCache.getSchema.call(this,t,e),SchemaCompilation.compileSchema.call(this,t,e),this.lastReport=t,t.isValid()},ZSchema.prototype.validateSchema=function(e){if(Array.isArray(e)&&0===e.length)throw new Error(".validateSchema was called with an empty array");var t=new Report(this.options);e=SchemaCache.getSchema.call(this,t,e);var r=SchemaCompilation.compileSchema.call(this,t,e);return r&&SchemaValidation.validateSchema.call(this,t,e),this.lastReport=t,t.isValid()},ZSchema.prototype.validate=function(e,t,r){var a=Utils.whatIs(t);if("string"!==a&&"object"!==a){var o=new Error("Invalid .validate call - schema must be an string or object but "+a+" was passed!");if(r)return void process.nextTick(function(){r(o,!1)});throw o}var s=!1,i=new Report(this.options);t=SchemaCache.getSchema.call(this,i,t);var n=!1;s||(n=SchemaCompilation.compileSchema.call(this,i,t)),n||(this.lastReport=i,s=!0);var c=!1;if(s||(c=SchemaValidation.validateSchema.call(this,i,t)),c||(this.lastReport=i,s=!0),s||JsonValidation.validate.call(this,i,t,e),r)return void i.processAsyncTasks(this.options.asyncTimeout,r);if(i.asyncTasks.length>0)throw new Error("This validation has async tasks and cannot be done in sync mode, please provide callback argument.");return this.lastReport=i,i.isValid()},ZSchema.prototype.getLastError=function(){if(0===this.lastReport.errors.length)return null;var e=new Error;return e.name="z-schema validation error",e.message=this.lastReport.commonErrorMessage,e.details=this.lastReport.errors,e},ZSchema.prototype.getLastErrors=function(){return this.lastReport.errors.length>0?this.lastReport.errors:void 0},ZSchema.prototype.getMissingReferences=function(){for(var e=[],t=this.lastReport.errors.length;t--;){var r=this.lastReport.errors[t];if("UNRESOLVABLE_REFERENCE"===r.code){var a=r.params[0];-1===e.indexOf(a)&&e.push(a)}}return e},ZSchema.prototype.getMissingRemoteReferences=function(){for(var e=this.getMissingReferences(),t=[],r=e.length;r--;){var a=SchemaCache.getRemotePath(e[r]);a&&-1===t.indexOf(a)&&t.push(a)}return t},ZSchema.prototype.setRemoteReference=function(e,t){"string"==typeof t&&(t=JSON.parse(t)),SchemaCache.cacheSchemaByUri.call(this,e,t)},ZSchema.prototype.getResolvedSchema=function(e){var t=new Report(this.options);e=SchemaCache.getSchema.call(this,t,e),e=Utils.cloneDeep(e);var r=[],a=function(e){var t,o=Utils.whatIs(e);if(("object"===o||"array"===o)&&!e.___$visited){if(e.___$visited=!0,r.push(e),e.$ref&&e.__$refResolved){var s=e.__$refResolved,i=e;delete e.$ref,delete e.__$refResolved;for(t in s)s.hasOwnProperty(t)&&(i[t]=s[t])}for(t in e)e.hasOwnProperty(t)&&(0===t.indexOf("__$")?delete e[t]:a(e[t]))}};if(a(e),r.forEach(function(e){delete e.___$visited}),this.lastReport=t,t.isValid())return e;throw this.getLastError()},ZSchema.prototype.setSchemaReader=function(e){return ZSchema.setSchemaReader(e)},ZSchema.prototype.getSchemaReader=function(){return ZSchema.schemaReader},ZSchema.setSchemaReader=function(e){ZSchema.schemaReader=e},ZSchema.registerFormat=function(e,t){FormatValidators[e]=t},ZSchema.getDefaultOptions=function(){return Utils.cloneDeep(defaultOptions)},module.exports=ZSchema; }).call(this,require('_process')) -},{"./FormatValidators":215,"./JsonValidation":216,"./Polyfills":217,"./Report":218,"./SchemaCache":219,"./SchemaCompilation":220,"./SchemaValidation":221,"./Utils":222,"./schemas/hyper-schema.json":224,"./schemas/schema.json":225,"_process":15}],224:[function(require,module,exports){ +},{"./FormatValidators":216,"./JsonValidation":217,"./Polyfills":218,"./Report":219,"./SchemaCache":220,"./SchemaCompilation":221,"./SchemaValidation":222,"./Utils":223,"./schemas/hyper-schema.json":225,"./schemas/schema.json":226,"_process":16}],225:[function(require,module,exports){ module.exports={ "$schema": "http://json-schema.org/draft-04/hyper-schema#", "id": "http://json-schema.org/draft-04/hyper-schema#", @@ -2496,7 +2499,7 @@ module.exports={ } -},{}],225:[function(require,module,exports){ +},{}],226:[function(require,module,exports){ arguments[4][3][0].apply(exports,arguments) },{"dup":3}]},{},[1])(1) }); \ No newline at end of file diff --git a/browser/swagger-core-api-standalone.js b/browser/swagger-core-api-standalone.js index cc1853d..05afdfb 100644 --- a/browser/swagger-core-api-standalone.js +++ b/browser/swagger-core-api-standalone.js @@ -141,7 +141,7 @@ module.exports.create = function (options, callback) { return allTasks; }; -},{"./lib/versions/2.0/":7,"js-yaml":20,"lodash-compat":137,"native-promise-only":206,"path-loader":207}],2:[function(require,module,exports){ +},{"./lib/versions/2.0/":8,"js-yaml":21,"lodash-compat":138,"native-promise-only":207,"path-loader":208}],2:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -264,7 +264,7 @@ module.exports.validateAgainstSchema = function (validator, schema, value) { return response; }; -},{"./json-schema-draft-04.json":3,"json-schema-faker":57,"lodash-compat":137,"z-schema":223}],3:[function(require,module,exports){ +},{"./json-schema-draft-04.json":3,"json-schema-faker":58,"lodash-compat":138,"z-schema":224}],3:[function(require,module,exports){ module.exports={ "id": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#", @@ -735,7 +735,7 @@ module.exports = { SwaggerApi: SwaggerApi }; -},{"debug":16,"lodash-compat":137}],5:[function(require,module,exports){ +},{"debug":17,"lodash-compat":138}],5:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -782,7 +782,7 @@ module.exports.password = function (gen, schema) { return stringMocker(schema); }; -},{"js-base64":19,"json-schema-faker/lib/types/string":64,"lodash-compat":137}],6:[function(require,module,exports){ +},{"js-base64":20,"json-schema-faker/lib/types/string":65,"lodash-compat":138}],6:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -853,7 +853,36 @@ module.exports.password = function (val) { return _.isString(val); }; -},{"lodash-compat":137}],7:[function(require,module,exports){ +},{"lodash-compat":138}],7:[function(require,module,exports){ +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 Apigee Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +'use strict'; + +module.exports.supportedHttpMethods = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch']; + +},{}],8:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -881,11 +910,12 @@ module.exports.password = function (val) { 'use strict'; var _ = require('lodash-compat'); -var formatGenerators = require('./format-generators'); -var validators = require('./validators'); -var helpers = require('../../helpers'); var JsonRefs = require('json-refs'); +var formatGenerators = require('./format-generators'); +var helpers = require('../../helpers'); var types = require('../../types'); +var validators = require('./validators'); +var vHelpers = require('./helpers'); var docsUrl = 'https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md'; var mocker = helpers.createJSONSchemaMocker({ @@ -911,7 +941,6 @@ var parameterSchemaProperties = [ 'type', 'uniqueItems' ]; -var supportedHttpMethods = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch']; var version = '2.0'; function getParameterSchema (parameter) { @@ -937,7 +966,7 @@ function getParameterSchema (parameter) { module.exports.documentation = docsUrl; // The array of supported HTTP methods for each path -module.exports.supportedHttpMethods = supportedHttpMethods; +module.exports.supportedHttpMethods = vHelpers.supportedHttpMethods; // The version for this Swagger version module.exports.version = version; @@ -1010,7 +1039,7 @@ module.exports.getOperations = function (api) { _.forEach(pathDef, function (operation, method) { // Do not process non-operations - if (_.indexOf(supportedHttpMethods, method) === -1) { + if (_.indexOf(vHelpers.supportedHttpMethods, method) === -1) { return; } @@ -1089,7 +1118,7 @@ module.exports.getSemanticValidators = function () { return validators.semanticValidators; }; -},{"../../helpers":2,"../../types":4,"./format-generators":5,"./validators":9,"json-refs":51,"lodash-compat":137}],8:[function(require,module,exports){ +},{"../../helpers":2,"../../types":4,"./format-generators":5,"./helpers":7,"./validators":10,"json-refs":52,"lodash-compat":138}],9:[function(require,module,exports){ module.exports={ "title": "A JSON Schema for Swagger 2.0 API.", "id": "http://swagger.io/v2/schema.json#", @@ -2585,7 +2614,7 @@ module.exports={ } } } -},{}],9:[function(require,module,exports){ +},{}],10:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -2612,9 +2641,60 @@ module.exports={ 'use strict'; +var _ = require('lodash-compat'); var customFormatValidators = require('./format-validators'); var helpers = require('../../helpers'); +var JsonRefs = require('json-refs'); var swaggerSchema = require('./schema.json'); +var vHelpers = require('./helpers'); + +function walkSchema (blacklist, schema, path, handler) { + var type = schema.type || 'object'; + + function shouldSkip (cPath) { + return _.indexOf(blacklist, JsonRefs.pathToPointer(cPath)) > -1; + } + + // Do not process items in the blacklist as they've been processed already + if (shouldSkip(path)) { + return; + } + + function walker (pSchema, pPath) { + // Do not process items in the blacklist as they've been processed already + if (shouldSkip(pPath)) { + return; + } + + _.forEach(pSchema, function (item, name) { + if (_.isNumber(name)) { + name = name.toString(); + } + + walkSchema(blacklist, item, pPath.concat(name), handler); + }); + + handler(pSchema, pPath); + } + + if (!_.isUndefined(schema.schema)) { + walkSchema(blacklist, schema.schema, path.concat('schema'), handler); + } else if (type === 'array' && !_.isUndefined(schema.items)) { + walker(schema.items, path.concat('items')); + } else if (type === 'object') { + if (!_.isUndefined(schema.additionalProperties)) { + walkSchema(blacklist, schema.additionalProperties, path.concat('additionalProperties'), handler); + } + + _.forEach(['allOf', 'properties'], function (propName) { + if (!_.isUndefined(schema[propName])) { + walker(schema[propName], path.concat(propName)); + } + }); + } + + handler(schema, path); +} /** * Validates the resolved Swagger document against the Swagger 2.0 JSON Schema. @@ -2629,16 +2709,113 @@ function validateStructure (api) { }), swaggerSchema, api.resolved); } +/** + * Validates that all arrays have their required items property. + * + * @see {@link https://github.com/swagger-api/swagger-spec/issues/174} + * + * @param {SwaggerApi} api - The SwaggerApi object + * + * @returns {object} Object containing the errors and warnings of the validation + */ +function validateArrayItems (api) { + // Build a blacklist to avoid cascading errors/warnings + var blacklist = _.reduce(api.references, function (list, metadata, ptr) { + var refPath = JsonRefs.pathFromPointer(ptr); + + // Remove the $ref part of the path + refPath.pop(); + + list.push(JsonRefs.pathToPointer(refPath)); + + return list; + }, []); + var response = { + errors: [], + warnings: [] + }; + + function validate (schema, path) { + if (schema.type === 'array' && _.isUndefined(schema.items)) { + response.errors.push({ + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: path + }); + } + } + + function validateParameters (parameters, path) { + _.forEach(parameters, function (parameterDef, name) { + if (_.isNumber(name)) { + name = name.toString(); + } + + walkSchema(blacklist, parameterDef, path.concat(name), validate); + }); + } + + function validateResponses (responses, path) { + _.forEach(responses, function (responseDef, name) { + var rPath = path.concat(name); + + _.forEach(responseDef.headers, function (header, hName) { + walkSchema(blacklist, header, rPath.concat(['headers', hName]), validate); + }); + + if (!_.isUndefined(responseDef.schema)) { + walkSchema(blacklist, responseDef.schema, rPath.concat('schema'), validate); + } + }); + } + + // Validate definitions + _.forEach(api.resolved.definitions, function (definitionDef, name) { + walkSchema(blacklist, definitionDef, ['definitions', name], validate); + }); + + // Validate global parameter definitions + validateParameters(api.resolved.parameters, ['parameters']); + + // Validate global response definitions + validateResponses(api.resolved.responses, ['responses']); + + // Validate paths and operations + _.forEach(api.resolved.paths, function (pathDef, path) { + var pPath = ['paths', path]; + + // Validate path-level parameter definitions + validateParameters(pathDef.parameters, pPath.concat('parameters')); + + _.forEach(pathDef, function (operationDef, method) { + var oPath = pPath.concat(method); + + // Do not process non-operations + if (_.indexOf(vHelpers.supportedHttpMethods, method) === -1) { + return; + } + + // Validate operation parameter definitions + validateParameters(operationDef.parameters, oPath.concat('parameters')); + + // Validate operation response definitions + validateResponses(operationDef.responses, oPath.concat('responses')); + }); + }); + + return response; +} + module.exports = { jsonSchemaValidator: validateStructure, semanticValidators: [ - + validateArrayItems ] }; -},{"../../helpers":2,"./format-validators":6,"./schema.json":8}],10:[function(require,module,exports){ +},{"../../helpers":2,"./format-validators":6,"./helpers":7,"./schema.json":9,"json-refs":52,"lodash-compat":138}],11:[function(require,module,exports){ -},{}],11:[function(require,module,exports){ +},{}],12:[function(require,module,exports){ /*! * The buffer module from node.js, for the browser. * @@ -4054,7 +4231,7 @@ function decodeUtf8Char (str) { } } -},{"base64-js":12,"ieee754":13,"is-array":14}],12:[function(require,module,exports){ +},{"base64-js":13,"ieee754":14,"is-array":15}],13:[function(require,module,exports){ var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; ;(function (exports) { @@ -4180,7 +4357,7 @@ var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; exports.fromByteArray = uint8ToBase64 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports)) -},{}],13:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m, eLen = nBytes * 8 - mLen - 1, @@ -4266,7 +4443,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { buffer[offset + i - d] |= s * 128 } -},{}],14:[function(require,module,exports){ +},{}],15:[function(require,module,exports){ /** * isArray @@ -4301,7 +4478,7 @@ module.exports = isArray || function (val) { return !! val && '[object Array]' == str.call(val); }; -},{}],15:[function(require,module,exports){ +},{}],16:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -4393,7 +4570,7 @@ process.chdir = function (dir) { }; process.umask = function() { return 0; }; -},{}],16:[function(require,module,exports){ +},{}],17:[function(require,module,exports){ /** * This is the web browser implementation of `debug()`. @@ -4563,7 +4740,7 @@ function localstorage(){ } catch (e) {} } -},{"./debug":17}],17:[function(require,module,exports){ +},{"./debug":18}],18:[function(require,module,exports){ /** * This is the common logic for both the Node.js and web browser @@ -4762,7 +4939,7 @@ function coerce(val) { return val; } -},{"ms":18}],18:[function(require,module,exports){ +},{"ms":19}],19:[function(require,module,exports){ /** * Helpers. */ @@ -4889,7 +5066,7 @@ function plural(ms, n, name) { return Math.ceil(ms / n) + ' ' + name + 's'; } -},{}],19:[function(require,module,exports){ +},{}],20:[function(require,module,exports){ /* * $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $ * @@ -5083,7 +5260,7 @@ function plural(ms, n, name) { } })(this); -},{"buffer":11}],20:[function(require,module,exports){ +},{"buffer":12}],21:[function(require,module,exports){ 'use strict'; @@ -5092,7 +5269,7 @@ var yaml = require('./lib/js-yaml.js'); module.exports = yaml; -},{"./lib/js-yaml.js":21}],21:[function(require,module,exports){ +},{"./lib/js-yaml.js":22}],22:[function(require,module,exports){ 'use strict'; @@ -5133,7 +5310,7 @@ module.exports.parse = deprecated('parse'); module.exports.compose = deprecated('compose'); module.exports.addConstructor = deprecated('addConstructor'); -},{"./js-yaml/dumper":23,"./js-yaml/exception":24,"./js-yaml/loader":25,"./js-yaml/schema":27,"./js-yaml/schema/core":28,"./js-yaml/schema/default_full":29,"./js-yaml/schema/default_safe":30,"./js-yaml/schema/failsafe":31,"./js-yaml/schema/json":32,"./js-yaml/type":33}],22:[function(require,module,exports){ +},{"./js-yaml/dumper":24,"./js-yaml/exception":25,"./js-yaml/loader":26,"./js-yaml/schema":28,"./js-yaml/schema/core":29,"./js-yaml/schema/default_full":30,"./js-yaml/schema/default_safe":31,"./js-yaml/schema/failsafe":32,"./js-yaml/schema/json":33,"./js-yaml/type":34}],23:[function(require,module,exports){ 'use strict'; @@ -5196,7 +5373,7 @@ module.exports.repeat = repeat; module.exports.isNegativeZero = isNegativeZero; module.exports.extend = extend; -},{}],23:[function(require,module,exports){ +},{}],24:[function(require,module,exports){ 'use strict'; /*eslint-disable no-use-before-define*/ @@ -6040,7 +6217,7 @@ function safeDump(input, options) { module.exports.dump = dump; module.exports.safeDump = safeDump; -},{"./common":22,"./exception":24,"./schema/default_full":29,"./schema/default_safe":30}],24:[function(require,module,exports){ +},{"./common":23,"./exception":25,"./schema/default_full":30,"./schema/default_safe":31}],25:[function(require,module,exports){ 'use strict'; @@ -6067,7 +6244,7 @@ YAMLException.prototype.toString = function toString(compact) { module.exports = YAMLException; -},{}],25:[function(require,module,exports){ +},{}],26:[function(require,module,exports){ 'use strict'; /*eslint-disable max-len,no-use-before-define*/ @@ -7655,7 +7832,7 @@ module.exports.load = load; module.exports.safeLoadAll = safeLoadAll; module.exports.safeLoad = safeLoad; -},{"./common":22,"./exception":24,"./mark":26,"./schema/default_full":29,"./schema/default_safe":30}],26:[function(require,module,exports){ +},{"./common":23,"./exception":25,"./mark":27,"./schema/default_full":30,"./schema/default_safe":31}],27:[function(require,module,exports){ 'use strict'; @@ -7735,7 +7912,7 @@ Mark.prototype.toString = function toString(compact) { module.exports = Mark; -},{"./common":22}],27:[function(require,module,exports){ +},{"./common":23}],28:[function(require,module,exports){ 'use strict'; /*eslint-disable max-len*/ @@ -7841,7 +8018,7 @@ Schema.create = function createSchema() { module.exports = Schema; -},{"./common":22,"./exception":24,"./type":33}],28:[function(require,module,exports){ +},{"./common":23,"./exception":25,"./type":34}],29:[function(require,module,exports){ // Standard YAML's Core schema. // http://www.yaml.org/spec/1.2/spec.html#id2804923 // @@ -7861,7 +8038,7 @@ module.exports = new Schema({ ] }); -},{"../schema":27,"./json":32}],29:[function(require,module,exports){ +},{"../schema":28,"./json":33}],30:[function(require,module,exports){ // JS-YAML's default schema for `load` function. // It is not described in the YAML specification. // @@ -7888,7 +8065,7 @@ module.exports = Schema.DEFAULT = new Schema({ ] }); -},{"../schema":27,"../type/js/function":38,"../type/js/regexp":39,"../type/js/undefined":40,"./default_safe":30}],30:[function(require,module,exports){ +},{"../schema":28,"../type/js/function":39,"../type/js/regexp":40,"../type/js/undefined":41,"./default_safe":31}],31:[function(require,module,exports){ // JS-YAML's default schema for `safeLoad` function. // It is not described in the YAML specification. // @@ -7918,7 +8095,7 @@ module.exports = new Schema({ ] }); -},{"../schema":27,"../type/binary":34,"../type/merge":42,"../type/omap":44,"../type/pairs":45,"../type/set":47,"../type/timestamp":49,"./core":28}],31:[function(require,module,exports){ +},{"../schema":28,"../type/binary":35,"../type/merge":43,"../type/omap":45,"../type/pairs":46,"../type/set":48,"../type/timestamp":50,"./core":29}],32:[function(require,module,exports){ // Standard YAML's Failsafe schema. // http://www.yaml.org/spec/1.2/spec.html#id2802346 @@ -7937,7 +8114,7 @@ module.exports = new Schema({ ] }); -},{"../schema":27,"../type/map":41,"../type/seq":46,"../type/str":48}],32:[function(require,module,exports){ +},{"../schema":28,"../type/map":42,"../type/seq":47,"../type/str":49}],33:[function(require,module,exports){ // Standard YAML's JSON schema. // http://www.yaml.org/spec/1.2/spec.html#id2803231 // @@ -7964,7 +8141,7 @@ module.exports = new Schema({ ] }); -},{"../schema":27,"../type/bool":35,"../type/float":36,"../type/int":37,"../type/null":43,"./failsafe":31}],33:[function(require,module,exports){ +},{"../schema":28,"../type/bool":36,"../type/float":37,"../type/int":38,"../type/null":44,"./failsafe":32}],34:[function(require,module,exports){ 'use strict'; var YAMLException = require('./exception'); @@ -8027,7 +8204,7 @@ function Type(tag, options) { module.exports = Type; -},{"./exception":24}],34:[function(require,module,exports){ +},{"./exception":25}],35:[function(require,module,exports){ 'use strict'; /*eslint-disable no-bitwise*/ @@ -8163,7 +8340,7 @@ module.exports = new Type('tag:yaml.org,2002:binary', { represent: representYamlBinary }); -},{"../type":33,"buffer":10}],35:[function(require,module,exports){ +},{"../type":34,"buffer":11}],36:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8202,7 +8379,7 @@ module.exports = new Type('tag:yaml.org,2002:bool', { defaultStyle: 'lowercase' }); -},{"../type":33}],36:[function(require,module,exports){ +},{"../type":34}],37:[function(require,module,exports){ 'use strict'; var common = require('../common'); @@ -8312,7 +8489,7 @@ module.exports = new Type('tag:yaml.org,2002:float', { defaultStyle: 'lowercase' }); -},{"../common":22,"../type":33}],37:[function(require,module,exports){ +},{"../common":23,"../type":34}],38:[function(require,module,exports){ 'use strict'; var common = require('../common'); @@ -8497,7 +8674,7 @@ module.exports = new Type('tag:yaml.org,2002:int', { } }); -},{"../common":22,"../type":33}],38:[function(require,module,exports){ +},{"../common":23,"../type":34}],39:[function(require,module,exports){ 'use strict'; var esprima; @@ -8585,7 +8762,7 @@ module.exports = new Type('tag:yaml.org,2002:js/function', { represent: representJavascriptFunction }); -},{"../../type":33,"esprima":50}],39:[function(require,module,exports){ +},{"../../type":34,"esprima":51}],40:[function(require,module,exports){ 'use strict'; var Type = require('../../type'); @@ -8671,7 +8848,7 @@ module.exports = new Type('tag:yaml.org,2002:js/regexp', { represent: representJavascriptRegExp }); -},{"../../type":33}],40:[function(require,module,exports){ +},{"../../type":34}],41:[function(require,module,exports){ 'use strict'; var Type = require('../../type'); @@ -8701,7 +8878,7 @@ module.exports = new Type('tag:yaml.org,2002:js/undefined', { represent: representJavascriptUndefined }); -},{"../../type":33}],41:[function(require,module,exports){ +},{"../../type":34}],42:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8711,7 +8888,7 @@ module.exports = new Type('tag:yaml.org,2002:map', { construct: function (data) { return null !== data ? data : {}; } }); -},{"../type":33}],42:[function(require,module,exports){ +},{"../type":34}],43:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8725,7 +8902,7 @@ module.exports = new Type('tag:yaml.org,2002:merge', { resolve: resolveYamlMerge }); -},{"../type":33}],43:[function(require,module,exports){ +},{"../type":34}],44:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8763,7 +8940,7 @@ module.exports = new Type('tag:yaml.org,2002:null', { defaultStyle: 'lowercase' }); -},{"../type":33}],44:[function(require,module,exports){ +},{"../type":34}],45:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8821,7 +8998,7 @@ module.exports = new Type('tag:yaml.org,2002:omap', { construct: constructYamlOmap }); -},{"../type":33}],45:[function(require,module,exports){ +},{"../type":34}],46:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8884,7 +9061,7 @@ module.exports = new Type('tag:yaml.org,2002:pairs', { construct: constructYamlPairs }); -},{"../type":33}],46:[function(require,module,exports){ +},{"../type":34}],47:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8894,7 +9071,7 @@ module.exports = new Type('tag:yaml.org,2002:seq', { construct: function (data) { return null !== data ? data : []; } }); -},{"../type":33}],47:[function(require,module,exports){ +},{"../type":34}],48:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8929,7 +9106,7 @@ module.exports = new Type('tag:yaml.org,2002:set', { construct: constructYamlSet }); -},{"../type":33}],48:[function(require,module,exports){ +},{"../type":34}],49:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -8939,7 +9116,7 @@ module.exports = new Type('tag:yaml.org,2002:str', { construct: function (data) { return null !== data ? data : ''; } }); -},{"../type":33}],49:[function(require,module,exports){ +},{"../type":34}],50:[function(require,module,exports){ 'use strict'; var Type = require('../type'); @@ -9039,7 +9216,7 @@ module.exports = new Type('tag:yaml.org,2002:timestamp', { represent: representYamlTimestamp }); -},{"../type":33}],50:[function(require,module,exports){ +},{"../type":34}],51:[function(require,module,exports){ /* Copyright (C) 2013 Ariya Hidayat Copyright (C) 2013 Thaddee Tyl @@ -14362,7 +14539,7 @@ module.exports = new Type('tag:yaml.org,2002:timestamp', { })); /* vim: set sw=4 ts=4 et tw=80 : */ -},{}],51:[function(require,module,exports){ +},{}],52:[function(require,module,exports){ /* exported findRefs, isJsonReference, isRemotePointer, pathFromPointer, pathToPointer, resolveRefs */ /* @@ -14773,7 +14950,7 @@ var resolveRefs = module.exports.resolveRefs = function resolveRefs (json, optio } }; -},{"async":52,"lodash-compat/array/indexOf":132,"lodash-compat/collection/each":134,"lodash-compat/collection/map":136,"lodash-compat/lang/cloneDeep":189,"lodash-compat/lang/isArray":191,"lodash-compat/lang/isFunction":192,"lodash-compat/lang/isPlainObject":195,"lodash-compat/lang/isString":196,"lodash-compat/lang/isUndefined":198,"lodash-compat/object/keys":199,"superagent":53,"traverse":56}],52:[function(require,module,exports){ +},{"async":53,"lodash-compat/array/indexOf":133,"lodash-compat/collection/each":135,"lodash-compat/collection/map":137,"lodash-compat/lang/cloneDeep":190,"lodash-compat/lang/isArray":192,"lodash-compat/lang/isFunction":193,"lodash-compat/lang/isPlainObject":196,"lodash-compat/lang/isString":197,"lodash-compat/lang/isUndefined":199,"lodash-compat/object/keys":200,"superagent":54,"traverse":57}],53:[function(require,module,exports){ (function (process){ /*! * async @@ -15901,7 +16078,7 @@ var resolveRefs = module.exports.resolveRefs = function resolveRefs (json, optio }).call(this,require('_process')) -},{"_process":15}],53:[function(require,module,exports){ +},{"_process":16}],54:[function(require,module,exports){ /** * Module dependencies. */ @@ -16984,7 +17161,7 @@ request.put = function(url, data, fn){ module.exports = request; -},{"emitter":54,"reduce":55}],54:[function(require,module,exports){ +},{"emitter":55,"reduce":56}],55:[function(require,module,exports){ /** * Expose `Emitter`. @@ -17150,7 +17327,7 @@ Emitter.prototype.hasListeners = function(event){ return !! this.listeners(event).length; }; -},{}],55:[function(require,module,exports){ +},{}],56:[function(require,module,exports){ /** * Reduce `arr` with `fn`. @@ -17175,7 +17352,7 @@ module.exports = function(arr, fn, initial){ return curr; }; -},{}],56:[function(require,module,exports){ +},{}],57:[function(require,module,exports){ var traverse = module.exports = function (obj) { return new Traverse(obj); }; @@ -17491,7 +17668,7 @@ var hasOwnProperty = Object.hasOwnProperty || function (obj, key) { return key in obj; }; -},{}],57:[function(require,module,exports){ +},{}],58:[function(require,module,exports){ 'use strict'; var container = require('./util/container'), @@ -17525,7 +17702,7 @@ generate.extend = container.set; module.exports = generate; -},{"./util/container":66,"./util/formats":68,"./util/traverse":73,"deref":75}],58:[function(require,module,exports){ +},{"./util/container":67,"./util/formats":69,"./util/traverse":74,"deref":76}],59:[function(require,module,exports){ 'use strict'; var random = require('../util/random'), @@ -17594,14 +17771,14 @@ module.exports = function(value, path) { return items; }; -},{"../util/error":67,"../util/has-props":69,"../util/random":72,"../util/traverse":73}],59:[function(require,module,exports){ +},{"../util/error":68,"../util/has-props":70,"../util/random":73,"../util/traverse":74}],60:[function(require,module,exports){ 'use strict'; module.exports = function() { return Math.random() > 0.5; }; -},{}],60:[function(require,module,exports){ +},{}],61:[function(require,module,exports){ 'use strict'; var number = require('./number'); @@ -17612,14 +17789,14 @@ module.exports = function(value) { return Math.floor(number(value)); }; -},{"./number":62}],61:[function(require,module,exports){ +},{"./number":63}],62:[function(require,module,exports){ 'use strict'; module.exports = function() { return null; }; -},{}],62:[function(require,module,exports){ +},{}],63:[function(require,module,exports){ 'use strict'; var MIN_INTEGER = -100000000, @@ -17661,7 +17838,7 @@ module.exports = function(value) { return random(Math.random() > 0.5, min, max); }; -},{"../util/random":72,"./string":64}],63:[function(require,module,exports){ +},{"../util/random":73,"./string":65}],64:[function(require,module,exports){ 'use strict'; var container = require('../util/container'), @@ -17725,7 +17902,7 @@ module.exports = function(value, path) { return traverse(props, path.concat(['properties'])); }; -},{"../util/container":66,"../util/error":67,"../util/has-props":69,"../util/random":72,"../util/traverse":73}],64:[function(require,module,exports){ +},{"../util/container":67,"../util/error":68,"../util/has-props":70,"../util/random":73,"../util/traverse":74}],65:[function(require,module,exports){ 'use strict'; var container = require('../util/container'); @@ -17847,7 +18024,7 @@ module.exports = function(value) { return faker.lorem.words(random(1, 5)).join(' '); }; -},{"../util/container":66,"../util/formats":68,"../util/random":72}],65:[function(require,module,exports){ +},{"../util/container":67,"../util/formats":69,"../util/random":73}],66:[function(require,module,exports){ 'use strict'; function combine(target) { @@ -17864,7 +18041,7 @@ function combine(target) { module.exports = combine; -},{}],66:[function(require,module,exports){ +},{}],67:[function(require,module,exports){ 'use strict'; // static requires - handle both initial dependency load (deps will be available @@ -17888,7 +18065,7 @@ module.exports = { } }; -},{"chance":74,"faker":81,"randexp":125}],67:[function(require,module,exports){ +},{"chance":75,"faker":82,"randexp":126}],68:[function(require,module,exports){ 'use strict'; function ParseError(message, path) { @@ -17901,7 +18078,7 @@ ParseError.prototype = Error.prototype; module.exports = ParseError; -},{}],68:[function(require,module,exports){ +},{}],69:[function(require,module,exports){ 'use strict'; var registry = {}; @@ -17920,7 +18097,7 @@ module.exports = function(name, callback) { return registry; }; -},{}],69:[function(require,module,exports){ +},{}],70:[function(require,module,exports){ 'use strict'; module.exports = function(obj) { @@ -17929,7 +18106,7 @@ module.exports = function(obj) { }).length > 0; }; -},{}],70:[function(require,module,exports){ +},{}],71:[function(require,module,exports){ 'use strict'; var inferredProperties = { @@ -17979,7 +18156,7 @@ module.exports = function(obj) { } }; -},{}],71:[function(require,module,exports){ +},{}],72:[function(require,module,exports){ 'use strict'; module.exports = { @@ -17992,7 +18169,7 @@ module.exports = { string: require('../types/string') }; -},{"../types/array":58,"../types/boolean":59,"../types/integer":60,"../types/null":61,"../types/number":62,"../types/object":63,"../types/string":64}],72:[function(require,module,exports){ +},{"../types/array":59,"../types/boolean":60,"../types/integer":61,"../types/null":62,"../types/number":63,"../types/object":64,"../types/string":65}],73:[function(require,module,exports){ 'use strict'; var container = require('./container'); @@ -18050,7 +18227,7 @@ random.pick = function(obj) { random.MIN_NUMBER = -100; random.MAX_NUMBER = 100; -},{"./container":66}],73:[function(require,module,exports){ +},{"./container":67}],74:[function(require,module,exports){ 'use strict'; var random = require('./random'), @@ -18153,7 +18330,7 @@ function traverse(obj, path) { module.exports = traverse; -},{"./combine":65,"./error":67,"./inferred":70,"./primitives":71,"./random":72}],74:[function(require,module,exports){ +},{"./combine":66,"./error":68,"./inferred":71,"./primitives":72,"./random":73}],75:[function(require,module,exports){ (function (Buffer){ // Chance.js 0.7.5 // http://chancejs.com @@ -20670,7 +20847,7 @@ module.exports = traverse; }).call(this,require("buffer").Buffer) -},{"buffer":11}],75:[function(require,module,exports){ +},{"buffer":12}],76:[function(require,module,exports){ 'use strict'; var $ = require('./util/uri-helpers'); @@ -20729,7 +20906,7 @@ var instance = module.exports = function() { instance.util = $; -},{"./util/find-reference":77,"./util/normalize-schema":78,"./util/resolve-schema":79,"./util/uri-helpers":80}],76:[function(require,module,exports){ +},{"./util/find-reference":78,"./util/normalize-schema":79,"./util/resolve-schema":80,"./util/uri-helpers":81}],77:[function(require,module,exports){ 'use strict'; var clone = module.exports = function(obj) { @@ -20756,7 +20933,7 @@ var clone = module.exports = function(obj) { return target; }; -},{}],77:[function(require,module,exports){ +},{}],78:[function(require,module,exports){ 'use strict'; var $ = require('./uri-helpers'); @@ -20804,7 +20981,7 @@ var find = module.exports = function(id, refs) { return target; }; -},{"./uri-helpers":80}],78:[function(require,module,exports){ +},{"./uri-helpers":81}],79:[function(require,module,exports){ 'use strict'; var $ = require('./uri-helpers'); @@ -20870,7 +21047,7 @@ module.exports = function(fakeroot, schema, push) { return copy; }; -},{"./clone-obj":76,"./uri-helpers":80}],79:[function(require,module,exports){ +},{"./clone-obj":77,"./uri-helpers":81}],80:[function(require,module,exports){ 'use strict'; var $ = require('./uri-helpers'); @@ -20928,7 +21105,7 @@ module.exports = function(obj, refs, expand) { return clone(obj, refs, false, expand); }; -},{"./find-reference":77,"./uri-helpers":80}],80:[function(require,module,exports){ +},{"./find-reference":78,"./uri-helpers":81}],81:[function(require,module,exports){ 'use strict'; // https://gist.github.com/pjt33/efb2f1134bab986113fd @@ -21029,7 +21206,7 @@ module.exports = { getDocumentURI: getDocumentURI }; -},{}],81:[function(require,module,exports){ +},{}],82:[function(require,module,exports){ /* this index.js file is used for including the faker library as a CommonJS module, instead of a bundle @@ -21103,7 +21280,7 @@ Object.keys(_definitions).forEach(function(d){ }); }); }); -},{"./lib/address":82,"./lib/company":83,"./lib/date":84,"./lib/finance":85,"./lib/hacker":86,"./lib/helpers":87,"./lib/image":88,"./lib/internet":89,"./lib/locales":90,"./lib/lorem":118,"./lib/name":119,"./lib/phone_number":120,"./lib/random":121}],82:[function(require,module,exports){ +},{"./lib/address":83,"./lib/company":84,"./lib/date":85,"./lib/finance":86,"./lib/hacker":87,"./lib/helpers":88,"./lib/image":89,"./lib/internet":90,"./lib/locales":91,"./lib/lorem":119,"./lib/name":120,"./lib/phone_number":121,"./lib/random":122}],83:[function(require,module,exports){ var Helpers = require('./helpers'); var faker = require('../index'); @@ -21212,7 +21389,7 @@ var address = { module.exports = address; -},{"../index":81,"./helpers":87}],83:[function(require,module,exports){ +},{"../index":82,"./helpers":88}],84:[function(require,module,exports){ var faker = require('../index'); var company = { @@ -21276,7 +21453,7 @@ var company = { module.exports = company; -},{"../index":81}],84:[function(require,module,exports){ +},{"../index":82}],85:[function(require,module,exports){ var faker = require("../index"); var date = { @@ -21334,7 +21511,7 @@ var date = { }; module.exports = date; -},{"../index":81}],85:[function(require,module,exports){ +},{"../index":82}],86:[function(require,module,exports){ var Helpers = require('./helpers'), faker = require('../index'); @@ -21422,7 +21599,7 @@ var finance = { }; module.exports = finance; -},{"../index":81,"./helpers":87}],86:[function(require,module,exports){ +},{"../index":82,"./helpers":88}],87:[function(require,module,exports){ var faker = require('../index'); var hacker = { @@ -21476,7 +21653,7 @@ var hacker = { module.exports = hacker; -},{"../index":81}],87:[function(require,module,exports){ +},{"../index":82}],88:[function(require,module,exports){ var faker = require('../index'); // backword-compatibility @@ -21655,7 +21832,7 @@ String.prototype.capitalize = function () { //v1.0 */ -},{"../index":81}],88:[function(require,module,exports){ +},{"../index":82}],89:[function(require,module,exports){ var faker = require('../index'); var image = { @@ -21719,7 +21896,7 @@ var image = { module.exports = image; -},{"../index":81}],89:[function(require,module,exports){ +},{"../index":82}],90:[function(require,module,exports){ var faker = require('../index'), password_generator = require('../vendor/password-generator.js'), random_ua = require('../vendor/user-agent'); @@ -21813,7 +21990,7 @@ var internet = { module.exports = internet; -},{"../index":81,"../vendor/password-generator.js":123,"../vendor/user-agent":124}],90:[function(require,module,exports){ +},{"../index":82,"../vendor/password-generator.js":124,"../vendor/user-agent":125}],91:[function(require,module,exports){ var faker = require('../index'); exports['de'] = require('./locales/de.js'); exports['de_AT'] = require('./locales/de_AT.js'); @@ -21842,7 +22019,7 @@ exports['sk'] = require('./locales/sk.js'); exports['sv'] = require('./locales/sv.js'); exports['vi'] = require('./locales/vi.js'); exports['zh_CN'] = require('./locales/zh_CN.js'); -},{"../index":81,"./locales/de.js":91,"./locales/de_AT.js":92,"./locales/de_CH.js":93,"./locales/en.js":94,"./locales/en_AU.js":95,"./locales/en_BORK.js":96,"./locales/en_CA.js":97,"./locales/en_GB.js":98,"./locales/en_IND.js":99,"./locales/en_US.js":100,"./locales/en_au_ocker.js":101,"./locales/es.js":102,"./locales/fa.js":103,"./locales/fr.js":104,"./locales/it.js":105,"./locales/ja.js":106,"./locales/ko.js":107,"./locales/nb_NO.js":108,"./locales/nep.js":109,"./locales/nl.js":110,"./locales/pl.js":111,"./locales/pt_BR.js":112,"./locales/ru.js":113,"./locales/sk.js":114,"./locales/sv.js":115,"./locales/vi.js":116,"./locales/zh_CN.js":117}],91:[function(require,module,exports){ +},{"../index":82,"./locales/de.js":92,"./locales/de_AT.js":93,"./locales/de_CH.js":94,"./locales/en.js":95,"./locales/en_AU.js":96,"./locales/en_BORK.js":97,"./locales/en_CA.js":98,"./locales/en_GB.js":99,"./locales/en_IND.js":100,"./locales/en_US.js":101,"./locales/en_au_ocker.js":102,"./locales/es.js":103,"./locales/fa.js":104,"./locales/fr.js":105,"./locales/it.js":106,"./locales/ja.js":107,"./locales/ko.js":108,"./locales/nb_NO.js":109,"./locales/nep.js":110,"./locales/nl.js":111,"./locales/pl.js":112,"./locales/pt_BR.js":113,"./locales/ru.js":114,"./locales/sk.js":115,"./locales/sv.js":116,"./locales/vi.js":117,"./locales/zh_CN.js":118}],92:[function(require,module,exports){ var de = {}; module["exports"] = de; de.title = "German"; @@ -26383,7 +26560,7 @@ de.cell_phone = { ] }; -},{}],92:[function(require,module,exports){ +},{}],93:[function(require,module,exports){ var de_AT = {}; module["exports"] = de_AT; de_AT.title = "German (Austria)"; @@ -29929,7 +30106,7 @@ de_AT.cell_phone = { ] }; -},{}],93:[function(require,module,exports){ +},{}],94:[function(require,module,exports){ var de_CH = {}; module["exports"] = de_CH; de_CH.title = "German (Switzerland)"; @@ -30005,7 +30182,7 @@ de_CH.phone_number = { ] }; -},{}],94:[function(require,module,exports){ +},{}],95:[function(require,module,exports){ var en = {}; module["exports"] = en; en.title = "English"; @@ -38706,7 +38883,7 @@ en.finance.currency = { "symbol": "" } }; -},{}],95:[function(require,module,exports){ +},{}],96:[function(require,module,exports){ var en_AU = {}; module["exports"] = en_AU; en_AU.title = "Australia (English)"; @@ -39309,7 +39486,7 @@ en_AU.phone_number = { ] }; -},{}],96:[function(require,module,exports){ +},{}],97:[function(require,module,exports){ var en_BORK = {}; module["exports"] = en_BORK; en_BORK.title = "Bork (English)"; @@ -39421,7 +39598,7 @@ en_BORK.lorem = { ] }; -},{}],97:[function(require,module,exports){ +},{}],98:[function(require,module,exports){ var en_CA = {}; module["exports"] = en_CA; en_CA.title = "Canada (English)"; @@ -39501,7 +39678,7 @@ en_CA.phone_number = { ] }; -},{}],98:[function(require,module,exports){ +},{}],99:[function(require,module,exports){ var en_GB = {}; module["exports"] = en_GB; en_GB.title = "Great Britain (English)"; @@ -39631,7 +39808,7 @@ en_GB.cell_phone = { ] }; -},{}],99:[function(require,module,exports){ +},{}],100:[function(require,module,exports){ var en_IND = {}; module["exports"] = en_IND; en_IND.title = "India (English)"; @@ -40613,7 +40790,7 @@ en_IND.phone_number = { ] }; -},{}],100:[function(require,module,exports){ +},{}],101:[function(require,module,exports){ var en_US = {}; module["exports"] = en_US; en_US.title = "United States (English)"; @@ -41262,7 +41439,7 @@ en_US.phone_number = { ] }; -},{}],101:[function(require,module,exports){ +},{}],102:[function(require,module,exports){ var en_au_ocker = {}; module["exports"] = en_au_ocker; en_au_ocker.title = "Australia Ocker (English)"; @@ -41550,7 +41727,7 @@ en_au_ocker.phone_number = { ] }; -},{}],102:[function(require,module,exports){ +},{}],103:[function(require,module,exports){ var es = {}; module["exports"] = es; es.title = "Spanish"; @@ -43485,7 +43662,7 @@ es.cell_phone = { ] }; -},{}],103:[function(require,module,exports){ +},{}],104:[function(require,module,exports){ var fa = {}; module["exports"] = fa; fa.title = "Farsi"; @@ -44367,7 +44544,7 @@ fa.name = { ] }; -},{}],104:[function(require,module,exports){ +},{}],105:[function(require,module,exports){ var fr = {}; module["exports"] = fr; fr.title = "French"; @@ -46516,7 +46693,7 @@ fr.phone_number = { ] }; -},{}],105:[function(require,module,exports){ +},{}],106:[function(require,module,exports){ var it = {}; module["exports"] = it; it.title = "Italian"; @@ -47911,7 +48088,7 @@ it.phone_number = { ] }; -},{}],106:[function(require,module,exports){ +},{}],107:[function(require,module,exports){ var ja = {}; module["exports"] = ja; ja.title = "Japanese"; @@ -48109,7 +48286,7 @@ ja.name = { ] }; -},{}],107:[function(require,module,exports){ +},{}],108:[function(require,module,exports){ var ko = {}; module["exports"] = ko; ko.title = "Korean"; @@ -48458,7 +48635,7 @@ ko.name = { ] }; -},{}],108:[function(require,module,exports){ +},{}],109:[function(require,module,exports){ var nb_NO = {}; module["exports"] = nb_NO; nb_NO.title = "Norwegian"; @@ -49008,7 +49185,7 @@ nb_NO.phone_number = { ] }; -},{}],109:[function(require,module,exports){ +},{}],110:[function(require,module,exports){ var nep = {}; module["exports"] = nep; nep.title = "Nepalese"; @@ -49224,7 +49401,7 @@ nep.phone_number = { ] }; -},{}],110:[function(require,module,exports){ +},{}],111:[function(require,module,exports){ var nl = {}; module["exports"] = nl; nl.title = "Dutch"; @@ -50847,7 +51024,7 @@ nl.phone_number = { ] }; -},{}],111:[function(require,module,exports){ +},{}],112:[function(require,module,exports){ var pl = {}; module["exports"] = pl; pl.title = "Polish"; @@ -54929,7 +55106,7 @@ pl.cell_phone = { ] }; -},{}],112:[function(require,module,exports){ +},{}],113:[function(require,module,exports){ var pt_BR = {}; module["exports"] = pt_BR; pt_BR.title = "Portuguese (Brazil)"; @@ -55693,7 +55870,7 @@ pt_BR.phone_number = { ] }; -},{}],113:[function(require,module,exports){ +},{}],114:[function(require,module,exports){ var ru = {}; module["exports"] = ru; ru.title = "Russian"; @@ -57060,7 +57237,7 @@ ru.company = { ] }; -},{}],114:[function(require,module,exports){ +},{}],115:[function(require,module,exports){ var sk = {}; module["exports"] = sk; sk.title = "Slovakian"; @@ -61535,7 +61712,7 @@ sk.phone_number = { ] }; -},{}],115:[function(require,module,exports){ +},{}],116:[function(require,module,exports){ var sv = {}; module["exports"] = sv; sv.title = "Swedish"; @@ -62178,7 +62355,7 @@ sv.team = { ] }; -},{}],116:[function(require,module,exports){ +},{}],117:[function(require,module,exports){ var vi = {}; module["exports"] = vi; vi.title = "Vietnamese"; @@ -62598,7 +62775,7 @@ vi.lorem = { ] }; -},{}],117:[function(require,module,exports){ +},{}],118:[function(require,module,exports){ var zh_CN = {}; module["exports"] = zh_CN; zh_CN.title = "Chinese"; @@ -63003,7 +63180,7 @@ zh_CN.phone_number = { ] }; -},{}],118:[function(require,module,exports){ +},{}],119:[function(require,module,exports){ var faker = require('../index'); var Helpers = require('./helpers'); @@ -63049,7 +63226,7 @@ var lorem = { module.exports = lorem; -},{"../index":81,"./helpers":87}],119:[function(require,module,exports){ +},{"../index":82,"./helpers":88}],120:[function(require,module,exports){ var faker = require('../index'); var _name = { @@ -63108,7 +63285,7 @@ var _name = { module.exports = _name; -},{"../index":81}],120:[function(require,module,exports){ +},{"../index":82}],121:[function(require,module,exports){ var faker = require('../index'); var phone = { @@ -63131,7 +63308,7 @@ var phone = { module.exports = phone; -},{"../index":81}],121:[function(require,module,exports){ +},{"../index":82}],122:[function(require,module,exports){ var mersenne = require('../vendor/mersenne'); var faker = require('../index'); @@ -63200,7 +63377,7 @@ var random = { module.exports = random; -},{"../index":81,"../vendor/mersenne":122}],122:[function(require,module,exports){ +},{"../index":82,"../vendor/mersenne":123}],123:[function(require,module,exports){ // this program is a JavaScript version of Mersenne Twister, with concealment and encapsulation in class, // an almost straight conversion from the original program, mt19937ar.c, // translated by y. okada on July 17, 2006. @@ -63489,7 +63666,7 @@ exports.seed_array = function(A) { } -},{}],123:[function(require,module,exports){ +},{}],124:[function(require,module,exports){ /* * password-generator * Copyright(c) 2011-2013 Bermi Ferrer @@ -63555,7 +63732,7 @@ exports.seed_array = function(A) { // Establish the root object, `window` in the browser, or `global` on the server. }(this)); -},{}],124:[function(require,module,exports){ +},{}],125:[function(require,module,exports){ /* Copyright (c) 2012-2014 Jeffrey Mealo @@ -63766,7 +63943,7 @@ exports.generate = function generate() { return browser[random[0]](random[1]); }; -},{}],125:[function(require,module,exports){ +},{}],126:[function(require,module,exports){ var ret = require('ret'); var DRange = require('discontinuous-range'); var types = ret.types; @@ -64013,7 +64190,7 @@ function gen(token, groups) { -},{"discontinuous-range":126,"ret":127}],126:[function(require,module,exports){ +},{"discontinuous-range":127,"ret":128}],127:[function(require,module,exports){ //protected helper class function _SubRange(low, high) { this.low = low; @@ -64159,7 +64336,7 @@ DiscontinuousRange.prototype.clone = function () { module.exports = DiscontinuousRange; -},{}],127:[function(require,module,exports){ +},{}],128:[function(require,module,exports){ var util = require('./util'); var types = require('./types'); var sets = require('./sets'); @@ -64439,7 +64616,7 @@ module.exports = function(regexpStr) { module.exports.types = types; -},{"./positions":128,"./sets":129,"./types":130,"./util":131}],128:[function(require,module,exports){ +},{"./positions":129,"./sets":130,"./types":131,"./util":132}],129:[function(require,module,exports){ var types = require('./types'); exports.wordBoundary = function() { @@ -64458,7 +64635,7 @@ exports.end = function() { return { type: types.POSITION, value: '$' }; }; -},{"./types":130}],129:[function(require,module,exports){ +},{"./types":131}],130:[function(require,module,exports){ var types = require('./types'); var INTS = function() { @@ -64542,7 +64719,7 @@ exports.anyChar = function() { return { type: types.SET, set: NOTANYCHAR(), not: true }; }; -},{"./types":130}],130:[function(require,module,exports){ +},{"./types":131}],131:[function(require,module,exports){ module.exports = { ROOT : 0 , GROUP : 1 @@ -64554,7 +64731,7 @@ module.exports = { , CHAR : 7 }; -},{}],131:[function(require,module,exports){ +},{}],132:[function(require,module,exports){ var types = require('./types'); var sets = require('./sets'); @@ -64662,7 +64839,7 @@ exports.error = function(regexp, msg) { throw new SyntaxError('Invalid regular expression: /' + regexp + '/: ' + msg); }; -},{"./sets":129,"./types":130}],132:[function(require,module,exports){ +},{"./sets":130,"./types":131}],133:[function(require,module,exports){ var baseIndexOf = require('../internal/baseIndexOf'), binaryIndex = require('../internal/binaryIndex'); @@ -64718,7 +64895,7 @@ function indexOf(array, value, fromIndex) { module.exports = indexOf; -},{"../internal/baseIndexOf":150,"../internal/binaryIndex":162}],133:[function(require,module,exports){ +},{"../internal/baseIndexOf":151,"../internal/binaryIndex":163}],134:[function(require,module,exports){ /** * Gets the last element of `array`. * @@ -64739,10 +64916,10 @@ function last(array) { module.exports = last; -},{}],134:[function(require,module,exports){ +},{}],135:[function(require,module,exports){ module.exports = require('./forEach'); -},{"./forEach":135}],135:[function(require,module,exports){ +},{"./forEach":136}],136:[function(require,module,exports){ var arrayEach = require('../internal/arrayEach'), baseEach = require('../internal/baseEach'), createForEach = require('../internal/createForEach'); @@ -64781,7 +64958,7 @@ var forEach = createForEach(arrayEach, baseEach); module.exports = forEach; -},{"../internal/arrayEach":139,"../internal/baseEach":145,"../internal/createForEach":168}],136:[function(require,module,exports){ +},{"../internal/arrayEach":140,"../internal/baseEach":146,"../internal/createForEach":169}],137:[function(require,module,exports){ var arrayMap = require('../internal/arrayMap'), baseCallback = require('../internal/baseCallback'), baseMap = require('../internal/baseMap'), @@ -64851,7 +65028,7 @@ function map(collection, iteratee, thisArg) { module.exports = map; -},{"../internal/arrayMap":140,"../internal/baseCallback":142,"../internal/baseMap":155,"../lang/isArray":191}],137:[function(require,module,exports){ +},{"../internal/arrayMap":141,"../internal/baseCallback":143,"../internal/baseMap":156,"../lang/isArray":192}],138:[function(require,module,exports){ (function (global){ /** * @license @@ -77289,7 +77466,7 @@ module.exports = map; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],138:[function(require,module,exports){ +},{}],139:[function(require,module,exports){ /** * Copies the values of `source` to `array`. * @@ -77311,7 +77488,7 @@ function arrayCopy(source, array) { module.exports = arrayCopy; -},{}],139:[function(require,module,exports){ +},{}],140:[function(require,module,exports){ /** * A specialized version of `_.forEach` for arrays without support for callback * shorthands and `this` binding. @@ -77335,7 +77512,7 @@ function arrayEach(array, iteratee) { module.exports = arrayEach; -},{}],140:[function(require,module,exports){ +},{}],141:[function(require,module,exports){ /** * A specialized version of `_.map` for arrays without support for callback * shorthands and `this` binding. @@ -77358,7 +77535,7 @@ function arrayMap(array, iteratee) { module.exports = arrayMap; -},{}],141:[function(require,module,exports){ +},{}],142:[function(require,module,exports){ var baseCopy = require('./baseCopy'), getSymbols = require('./getSymbols'), isNative = require('../lang/isNative'), @@ -77407,7 +77584,7 @@ var baseAssign = nativeAssign || function(object, source) { module.exports = baseAssign; -},{"../lang/isNative":193,"../object/keys":199,"./baseCopy":144,"./getSymbols":173}],142:[function(require,module,exports){ +},{"../lang/isNative":194,"../object/keys":200,"./baseCopy":145,"./getSymbols":174}],143:[function(require,module,exports){ var baseMatches = require('./baseMatches'), baseMatchesProperty = require('./baseMatchesProperty'), bindCallback = require('./bindCallback'), @@ -77444,7 +77621,7 @@ function baseCallback(func, thisArg, argCount) { module.exports = baseCallback; -},{"../utility/identity":204,"../utility/property":205,"./baseMatches":156,"./baseMatchesProperty":157,"./bindCallback":164}],143:[function(require,module,exports){ +},{"../utility/identity":205,"../utility/property":206,"./baseMatches":157,"./baseMatchesProperty":158,"./bindCallback":165}],144:[function(require,module,exports){ var arrayCopy = require('./arrayCopy'), arrayEach = require('./arrayEach'), baseAssign = require('./baseAssign'), @@ -77578,7 +77755,7 @@ function baseClone(value, isDeep, customizer, key, object, stackA, stackB) { module.exports = baseClone; -},{"../lang/isArray":191,"../lang/isObject":194,"./arrayCopy":138,"./arrayEach":139,"./baseAssign":141,"./baseForOwn":148,"./initCloneArray":175,"./initCloneByTag":176,"./initCloneObject":177,"./isHostObject":179}],144:[function(require,module,exports){ +},{"../lang/isArray":192,"../lang/isObject":195,"./arrayCopy":139,"./arrayEach":140,"./baseAssign":142,"./baseForOwn":149,"./initCloneArray":176,"./initCloneByTag":177,"./initCloneObject":178,"./isHostObject":180}],145:[function(require,module,exports){ /** * Copies properties of `source` to `object`. * @@ -77603,7 +77780,7 @@ function baseCopy(source, props, object) { module.exports = baseCopy; -},{}],145:[function(require,module,exports){ +},{}],146:[function(require,module,exports){ var baseForOwn = require('./baseForOwn'), createBaseEach = require('./createBaseEach'); @@ -77620,7 +77797,7 @@ var baseEach = createBaseEach(baseForOwn); module.exports = baseEach; -},{"./baseForOwn":148,"./createBaseEach":166}],146:[function(require,module,exports){ +},{"./baseForOwn":149,"./createBaseEach":167}],147:[function(require,module,exports){ var createBaseFor = require('./createBaseFor'); /** @@ -77639,7 +77816,7 @@ var baseFor = createBaseFor(); module.exports = baseFor; -},{"./createBaseFor":167}],147:[function(require,module,exports){ +},{"./createBaseFor":168}],148:[function(require,module,exports){ var baseFor = require('./baseFor'), keysIn = require('../object/keysIn'); @@ -77658,7 +77835,7 @@ function baseForIn(object, iteratee) { module.exports = baseForIn; -},{"../object/keysIn":200,"./baseFor":146}],148:[function(require,module,exports){ +},{"../object/keysIn":201,"./baseFor":147}],149:[function(require,module,exports){ var baseFor = require('./baseFor'), keys = require('../object/keys'); @@ -77677,7 +77854,7 @@ function baseForOwn(object, iteratee) { module.exports = baseForOwn; -},{"../object/keys":199,"./baseFor":146}],149:[function(require,module,exports){ +},{"../object/keys":200,"./baseFor":147}],150:[function(require,module,exports){ var toObject = require('./toObject'); /** @@ -77709,7 +77886,7 @@ function baseGet(object, path, pathKey) { module.exports = baseGet; -},{"./toObject":187}],150:[function(require,module,exports){ +},{"./toObject":188}],151:[function(require,module,exports){ var indexOfNaN = require('./indexOfNaN'); /** @@ -77738,7 +77915,7 @@ function baseIndexOf(array, value, fromIndex) { module.exports = baseIndexOf; -},{"./indexOfNaN":174}],151:[function(require,module,exports){ +},{"./indexOfNaN":175}],152:[function(require,module,exports){ var baseIsEqualDeep = require('./baseIsEqualDeep'); /** @@ -77773,7 +77950,7 @@ function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { module.exports = baseIsEqual; -},{"./baseIsEqualDeep":152}],152:[function(require,module,exports){ +},{"./baseIsEqualDeep":153}],153:[function(require,module,exports){ var equalArrays = require('./equalArrays'), equalByTag = require('./equalByTag'), equalObjects = require('./equalObjects'), @@ -77878,7 +78055,7 @@ function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, module.exports = baseIsEqualDeep; -},{"../lang/isArray":191,"../lang/isTypedArray":197,"./equalArrays":169,"./equalByTag":170,"./equalObjects":171,"./isHostObject":179}],153:[function(require,module,exports){ +},{"../lang/isArray":192,"../lang/isTypedArray":198,"./equalArrays":170,"./equalByTag":171,"./equalObjects":172,"./isHostObject":180}],154:[function(require,module,exports){ /** * The base implementation of `_.isFunction` without support for environments * with incorrect `typeof` results. @@ -77895,7 +78072,7 @@ function baseIsFunction(value) { module.exports = baseIsFunction; -},{}],154:[function(require,module,exports){ +},{}],155:[function(require,module,exports){ var baseIsEqual = require('./baseIsEqual'); /** @@ -77946,7 +78123,7 @@ function baseIsMatch(object, props, values, strictCompareFlags, customizer) { module.exports = baseIsMatch; -},{"./baseIsEqual":151}],155:[function(require,module,exports){ +},{"./baseIsEqual":152}],156:[function(require,module,exports){ var baseEach = require('./baseEach'), isArrayLike = require('./isArrayLike'); @@ -77971,7 +78148,7 @@ function baseMap(collection, iteratee) { module.exports = baseMap; -},{"./baseEach":145,"./isArrayLike":178}],156:[function(require,module,exports){ +},{"./baseEach":146,"./isArrayLike":179}],157:[function(require,module,exports){ var baseIsMatch = require('./baseIsMatch'), constant = require('../utility/constant'), isStrictComparable = require('./isStrictComparable'), @@ -78021,7 +78198,7 @@ function baseMatches(source) { module.exports = baseMatches; -},{"../object/keys":199,"../utility/constant":203,"./baseIsMatch":154,"./isStrictComparable":184,"./toObject":187}],157:[function(require,module,exports){ +},{"../object/keys":200,"../utility/constant":204,"./baseIsMatch":155,"./isStrictComparable":185,"./toObject":188}],158:[function(require,module,exports){ var baseGet = require('./baseGet'), baseIsEqual = require('./baseIsEqual'), baseSlice = require('./baseSlice'), @@ -78069,7 +78246,7 @@ function baseMatchesProperty(path, value) { module.exports = baseMatchesProperty; -},{"../array/last":133,"../lang/isArray":191,"./baseGet":149,"./baseIsEqual":151,"./baseSlice":160,"./isKey":181,"./isStrictComparable":184,"./toObject":187,"./toPath":188}],158:[function(require,module,exports){ +},{"../array/last":134,"../lang/isArray":192,"./baseGet":150,"./baseIsEqual":152,"./baseSlice":161,"./isKey":182,"./isStrictComparable":185,"./toObject":188,"./toPath":189}],159:[function(require,module,exports){ var toObject = require('./toObject'); /** @@ -78087,7 +78264,7 @@ function baseProperty(key) { module.exports = baseProperty; -},{"./toObject":187}],159:[function(require,module,exports){ +},{"./toObject":188}],160:[function(require,module,exports){ var baseGet = require('./baseGet'), toPath = require('./toPath'); @@ -78108,7 +78285,7 @@ function basePropertyDeep(path) { module.exports = basePropertyDeep; -},{"./baseGet":149,"./toPath":188}],160:[function(require,module,exports){ +},{"./baseGet":150,"./toPath":189}],161:[function(require,module,exports){ /** * The base implementation of `_.slice` without an iteratee call guard. * @@ -78142,7 +78319,7 @@ function baseSlice(array, start, end) { module.exports = baseSlice; -},{}],161:[function(require,module,exports){ +},{}],162:[function(require,module,exports){ /** * Converts `value` to a string if it is not one. An empty string is returned * for `null` or `undefined` values. @@ -78160,7 +78337,7 @@ function baseToString(value) { module.exports = baseToString; -},{}],162:[function(require,module,exports){ +},{}],163:[function(require,module,exports){ var binaryIndexBy = require('./binaryIndexBy'), identity = require('../utility/identity'); @@ -78201,7 +78378,7 @@ function binaryIndex(array, value, retHighest) { module.exports = binaryIndex; -},{"../utility/identity":204,"./binaryIndexBy":163}],163:[function(require,module,exports){ +},{"../utility/identity":205,"./binaryIndexBy":164}],164:[function(require,module,exports){ /** Native method references. */ var floor = Math.floor; @@ -78256,7 +78433,7 @@ function binaryIndexBy(array, value, iteratee, retHighest) { module.exports = binaryIndexBy; -},{}],164:[function(require,module,exports){ +},{}],165:[function(require,module,exports){ var identity = require('../utility/identity'); /** @@ -78297,7 +78474,7 @@ function bindCallback(func, thisArg, argCount) { module.exports = bindCallback; -},{"../utility/identity":204}],165:[function(require,module,exports){ +},{"../utility/identity":205}],166:[function(require,module,exports){ (function (global){ var constant = require('../utility/constant'), isNative = require('../lang/isNative'); @@ -78357,7 +78534,7 @@ module.exports = bufferClone; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../lang/isNative":193,"../utility/constant":203}],166:[function(require,module,exports){ +},{"../lang/isNative":194,"../utility/constant":204}],167:[function(require,module,exports){ var getLength = require('./getLength'), isLength = require('./isLength'), toObject = require('./toObject'); @@ -78390,7 +78567,7 @@ function createBaseEach(eachFunc, fromRight) { module.exports = createBaseEach; -},{"./getLength":172,"./isLength":182,"./toObject":187}],167:[function(require,module,exports){ +},{"./getLength":173,"./isLength":183,"./toObject":188}],168:[function(require,module,exports){ var toObject = require('./toObject'); /** @@ -78419,7 +78596,7 @@ function createBaseFor(fromRight) { module.exports = createBaseFor; -},{"./toObject":187}],168:[function(require,module,exports){ +},{"./toObject":188}],169:[function(require,module,exports){ var bindCallback = require('./bindCallback'), isArray = require('../lang/isArray'); @@ -78441,7 +78618,7 @@ function createForEach(arrayFunc, eachFunc) { module.exports = createForEach; -},{"../lang/isArray":191,"./bindCallback":164}],169:[function(require,module,exports){ +},{"../lang/isArray":192,"./bindCallback":165}],170:[function(require,module,exports){ /** * A specialized version of `baseIsEqualDeep` for arrays with support for * partial deep comparisons. @@ -78497,7 +78674,7 @@ function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stack module.exports = equalArrays; -},{}],170:[function(require,module,exports){ +},{}],171:[function(require,module,exports){ /** `Object#toString` result references. */ var boolTag = '[object Boolean]', dateTag = '[object Date]', @@ -78547,7 +78724,7 @@ function equalByTag(object, other, tag) { module.exports = equalByTag; -},{}],171:[function(require,module,exports){ +},{}],172:[function(require,module,exports){ var keys = require('../object/keys'); /** Used for native method references. */ @@ -78623,7 +78800,7 @@ function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, sta module.exports = equalObjects; -},{"../object/keys":199}],172:[function(require,module,exports){ +},{"../object/keys":200}],173:[function(require,module,exports){ var baseProperty = require('./baseProperty'); /** @@ -78640,7 +78817,7 @@ var getLength = baseProperty('length'); module.exports = getLength; -},{"./baseProperty":158}],173:[function(require,module,exports){ +},{"./baseProperty":159}],174:[function(require,module,exports){ var constant = require('../utility/constant'), isNative = require('../lang/isNative'), toObject = require('./toObject'); @@ -78661,7 +78838,7 @@ var getSymbols = !getOwnPropertySymbols ? constant([]) : function(object) { module.exports = getSymbols; -},{"../lang/isNative":193,"../utility/constant":203,"./toObject":187}],174:[function(require,module,exports){ +},{"../lang/isNative":194,"../utility/constant":204,"./toObject":188}],175:[function(require,module,exports){ /** * Gets the index at which the first occurrence of `NaN` is found in `array`. * @@ -78686,7 +78863,7 @@ function indexOfNaN(array, fromIndex, fromRight) { module.exports = indexOfNaN; -},{}],175:[function(require,module,exports){ +},{}],176:[function(require,module,exports){ /** Used for native method references. */ var objectProto = Object.prototype; @@ -78714,7 +78891,7 @@ function initCloneArray(array) { module.exports = initCloneArray; -},{}],176:[function(require,module,exports){ +},{}],177:[function(require,module,exports){ (function (global){ var bufferClone = require('./bufferClone'); @@ -78798,7 +78975,7 @@ module.exports = initCloneByTag; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./bufferClone":165}],177:[function(require,module,exports){ +},{"./bufferClone":166}],178:[function(require,module,exports){ /** * Initializes an object clone. * @@ -78816,7 +78993,7 @@ function initCloneObject(object) { module.exports = initCloneObject; -},{}],178:[function(require,module,exports){ +},{}],179:[function(require,module,exports){ var getLength = require('./getLength'), isLength = require('./isLength'); @@ -78833,7 +79010,7 @@ function isArrayLike(value) { module.exports = isArrayLike; -},{"./getLength":172,"./isLength":182}],179:[function(require,module,exports){ +},{"./getLength":173,"./isLength":183}],180:[function(require,module,exports){ /** * Checks if `value` is a host object in IE < 9. * @@ -78856,7 +79033,7 @@ var isHostObject = (function() { module.exports = isHostObject; -},{}],180:[function(require,module,exports){ +},{}],181:[function(require,module,exports){ /** * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) * of an array-like value. @@ -78879,7 +79056,7 @@ function isIndex(value, length) { module.exports = isIndex; -},{}],181:[function(require,module,exports){ +},{}],182:[function(require,module,exports){ var isArray = require('../lang/isArray'), toObject = require('./toObject'); @@ -78909,7 +79086,7 @@ function isKey(value, object) { module.exports = isKey; -},{"../lang/isArray":191,"./toObject":187}],182:[function(require,module,exports){ +},{"../lang/isArray":192,"./toObject":188}],183:[function(require,module,exports){ /** * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) * of an array-like value. @@ -78931,7 +79108,7 @@ function isLength(value) { module.exports = isLength; -},{}],183:[function(require,module,exports){ +},{}],184:[function(require,module,exports){ /** * Checks if `value` is object-like. * @@ -78945,7 +79122,7 @@ function isObjectLike(value) { module.exports = isObjectLike; -},{}],184:[function(require,module,exports){ +},{}],185:[function(require,module,exports){ var isObject = require('../lang/isObject'); /** @@ -78962,7 +79139,7 @@ function isStrictComparable(value) { module.exports = isStrictComparable; -},{"../lang/isObject":194}],185:[function(require,module,exports){ +},{"../lang/isObject":195}],186:[function(require,module,exports){ var baseForIn = require('./baseForIn'), isArguments = require('../lang/isArguments'), isHostObject = require('./isHostObject'), @@ -79025,7 +79202,7 @@ function shimIsPlainObject(value) { module.exports = shimIsPlainObject; -},{"../lang/isArguments":190,"../support":202,"./baseForIn":147,"./isHostObject":179,"./isObjectLike":183}],186:[function(require,module,exports){ +},{"../lang/isArguments":191,"../support":203,"./baseForIn":148,"./isHostObject":180,"./isObjectLike":184}],187:[function(require,module,exports){ var isArguments = require('../lang/isArguments'), isArray = require('../lang/isArray'), isIndex = require('./isIndex'), @@ -79071,7 +79248,7 @@ function shimKeys(object) { module.exports = shimKeys; -},{"../lang/isArguments":190,"../lang/isArray":191,"../lang/isString":196,"../object/keysIn":200,"../support":202,"./isIndex":180,"./isLength":182}],187:[function(require,module,exports){ +},{"../lang/isArguments":191,"../lang/isArray":192,"../lang/isString":197,"../object/keysIn":201,"../support":203,"./isIndex":181,"./isLength":183}],188:[function(require,module,exports){ var isObject = require('../lang/isObject'), isString = require('../lang/isString'), support = require('../support'); @@ -79099,7 +79276,7 @@ function toObject(value) { module.exports = toObject; -},{"../lang/isObject":194,"../lang/isString":196,"../support":202}],188:[function(require,module,exports){ +},{"../lang/isObject":195,"../lang/isString":197,"../support":203}],189:[function(require,module,exports){ var baseToString = require('./baseToString'), isArray = require('../lang/isArray'); @@ -79129,7 +79306,7 @@ function toPath(value) { module.exports = toPath; -},{"../lang/isArray":191,"./baseToString":161}],189:[function(require,module,exports){ +},{"../lang/isArray":192,"./baseToString":162}],190:[function(require,module,exports){ var baseClone = require('../internal/baseClone'), bindCallback = require('../internal/bindCallback'); @@ -79185,7 +79362,7 @@ function cloneDeep(value, customizer, thisArg) { module.exports = cloneDeep; -},{"../internal/baseClone":143,"../internal/bindCallback":164}],190:[function(require,module,exports){ +},{"../internal/baseClone":144,"../internal/bindCallback":165}],191:[function(require,module,exports){ var isArrayLike = require('../internal/isArrayLike'), isObjectLike = require('../internal/isObjectLike'), support = require('../support'); @@ -79237,7 +79414,7 @@ if (!support.argsTag) { module.exports = isArguments; -},{"../internal/isArrayLike":178,"../internal/isObjectLike":183,"../support":202}],191:[function(require,module,exports){ +},{"../internal/isArrayLike":179,"../internal/isObjectLike":184,"../support":203}],192:[function(require,module,exports){ var isLength = require('../internal/isLength'), isNative = require('./isNative'), isObjectLike = require('../internal/isObjectLike'); @@ -79279,7 +79456,7 @@ var isArray = nativeIsArray || function(value) { module.exports = isArray; -},{"../internal/isLength":182,"../internal/isObjectLike":183,"./isNative":193}],192:[function(require,module,exports){ +},{"../internal/isLength":183,"../internal/isObjectLike":184,"./isNative":194}],193:[function(require,module,exports){ (function (global){ var baseIsFunction = require('../internal/baseIsFunction'), isNative = require('./isNative'); @@ -79326,7 +79503,7 @@ module.exports = isFunction; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../internal/baseIsFunction":153,"./isNative":193}],193:[function(require,module,exports){ +},{"../internal/baseIsFunction":154,"./isNative":194}],194:[function(require,module,exports){ var escapeRegExp = require('../string/escapeRegExp'), isHostObject = require('../internal/isHostObject'), isObjectLike = require('../internal/isObjectLike'); @@ -79383,7 +79560,7 @@ function isNative(value) { module.exports = isNative; -},{"../internal/isHostObject":179,"../internal/isObjectLike":183,"../string/escapeRegExp":201}],194:[function(require,module,exports){ +},{"../internal/isHostObject":180,"../internal/isObjectLike":184,"../string/escapeRegExp":202}],195:[function(require,module,exports){ /** * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) @@ -79413,7 +79590,7 @@ function isObject(value) { module.exports = isObject; -},{}],195:[function(require,module,exports){ +},{}],196:[function(require,module,exports){ var isArguments = require('./isArguments'), isNative = require('./isNative'), shimIsPlainObject = require('../internal/shimIsPlainObject'), @@ -79478,7 +79655,7 @@ var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) { module.exports = isPlainObject; -},{"../internal/shimIsPlainObject":185,"../support":202,"./isArguments":190,"./isNative":193}],196:[function(require,module,exports){ +},{"../internal/shimIsPlainObject":186,"../support":203,"./isArguments":191,"./isNative":194}],197:[function(require,module,exports){ var isObjectLike = require('../internal/isObjectLike'); /** `Object#toString` result references. */ @@ -79515,7 +79692,7 @@ function isString(value) { module.exports = isString; -},{"../internal/isObjectLike":183}],197:[function(require,module,exports){ +},{"../internal/isObjectLike":184}],198:[function(require,module,exports){ var isLength = require('../internal/isLength'), isObjectLike = require('../internal/isObjectLike'); @@ -79591,7 +79768,7 @@ function isTypedArray(value) { module.exports = isTypedArray; -},{"../internal/isLength":182,"../internal/isObjectLike":183}],198:[function(require,module,exports){ +},{"../internal/isLength":183,"../internal/isObjectLike":184}],199:[function(require,module,exports){ /** * Checks if `value` is `undefined`. * @@ -79614,7 +79791,7 @@ function isUndefined(value) { module.exports = isUndefined; -},{}],199:[function(require,module,exports){ +},{}],200:[function(require,module,exports){ var isArrayLike = require('../internal/isArrayLike'), isNative = require('../lang/isNative'), isObject = require('../lang/isObject'), @@ -79662,7 +79839,7 @@ var keys = !nativeKeys ? shimKeys : function(object) { module.exports = keys; -},{"../internal/isArrayLike":178,"../internal/shimKeys":186,"../lang/isNative":193,"../lang/isObject":194,"../support":202}],200:[function(require,module,exports){ +},{"../internal/isArrayLike":179,"../internal/shimKeys":187,"../lang/isNative":194,"../lang/isObject":195,"../support":203}],201:[function(require,module,exports){ var arrayEach = require('../internal/arrayEach'), isArguments = require('../lang/isArguments'), isArray = require('../lang/isArray'), @@ -79801,7 +79978,7 @@ function keysIn(object) { module.exports = keysIn; -},{"../internal/arrayEach":139,"../internal/isIndex":180,"../internal/isLength":182,"../lang/isArguments":190,"../lang/isArray":191,"../lang/isFunction":192,"../lang/isObject":194,"../lang/isString":196,"../support":202}],201:[function(require,module,exports){ +},{"../internal/arrayEach":140,"../internal/isIndex":181,"../internal/isLength":183,"../lang/isArguments":191,"../lang/isArray":192,"../lang/isFunction":193,"../lang/isObject":195,"../lang/isString":197,"../support":203}],202:[function(require,module,exports){ var baseToString = require('../internal/baseToString'); /** @@ -79835,7 +80012,7 @@ function escapeRegExp(string) { module.exports = escapeRegExp; -},{"../internal/baseToString":161}],202:[function(require,module,exports){ +},{"../internal/baseToString":162}],203:[function(require,module,exports){ (function (global){ /** `Object#toString` result references. */ var argsTag = '[object Arguments]', @@ -80023,7 +80200,7 @@ module.exports = support; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],203:[function(require,module,exports){ +},{}],204:[function(require,module,exports){ /** * Creates a function that returns `value`. * @@ -80048,7 +80225,7 @@ function constant(value) { module.exports = constant; -},{}],204:[function(require,module,exports){ +},{}],205:[function(require,module,exports){ /** * This method returns the first argument provided to it. * @@ -80070,7 +80247,7 @@ function identity(value) { module.exports = identity; -},{}],205:[function(require,module,exports){ +},{}],206:[function(require,module,exports){ var baseProperty = require('../internal/baseProperty'), basePropertyDeep = require('../internal/basePropertyDeep'), isKey = require('../internal/isKey'); @@ -80103,7 +80280,7 @@ function property(path) { module.exports = property; -},{"../internal/baseProperty":158,"../internal/basePropertyDeep":159,"../internal/isKey":181}],206:[function(require,module,exports){ +},{"../internal/baseProperty":159,"../internal/basePropertyDeep":160,"../internal/isKey":182}],207:[function(require,module,exports){ (function (global){ /*! Native Promise Only v0.7.8-a (c) Kyle Simpson @@ -80113,7 +80290,7 @@ module.exports = property; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],207:[function(require,module,exports){ +},{}],208:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -80247,7 +80424,7 @@ module.exports.load = function (location, options, done) { return allTasks; }; -},{"./lib/loaders/file":208,"./lib/loaders/http":209,"native-promise-only":206}],208:[function(require,module,exports){ +},{"./lib/loaders/file":209,"./lib/loaders/http":210,"native-promise-only":207}],209:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -80285,7 +80462,7 @@ module.exports.load = function (location, options, callback) { callback(new TypeError('The \'file\' scheme is not supported in the browser')); }; -},{}],209:[function(require,module,exports){ +},{}],210:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -80364,7 +80541,7 @@ module.exports.load = function (location, options, callback) { } }; -},{"superagent":210}],210:[function(require,module,exports){ +},{"superagent":211}],211:[function(require,module,exports){ /** * Module dependencies. */ @@ -81489,11 +81666,11 @@ request.put = function(url, data, fn){ module.exports = request; -},{"emitter":211,"reduce":212}],211:[function(require,module,exports){ -arguments[4][54][0].apply(exports,arguments) -},{"dup":54}],212:[function(require,module,exports){ +},{"emitter":212,"reduce":213}],212:[function(require,module,exports){ arguments[4][55][0].apply(exports,arguments) },{"dup":55}],213:[function(require,module,exports){ +arguments[4][56][0].apply(exports,arguments) +},{"dup":56}],214:[function(require,module,exports){ /*! * Copyright (c) 2015 Chris O'Hara * @@ -82231,7 +82408,7 @@ arguments[4][55][0].apply(exports,arguments) }); -},{}],214:[function(require,module,exports){ +},{}],215:[function(require,module,exports){ "use strict"; module.exports = { @@ -82292,7 +82469,7 @@ module.exports = { }; -},{}],215:[function(require,module,exports){ +},{}],216:[function(require,module,exports){ /*jshint maxlen: false*/ var validator = require("validator"); @@ -82423,7 +82600,7 @@ var FormatValidators = { module.exports = FormatValidators; -},{"validator":213}],216:[function(require,module,exports){ +},{"validator":214}],217:[function(require,module,exports){ "use strict"; var FormatValidators = require("./FormatValidators"), @@ -82949,7 +83126,7 @@ exports.validate = function (report, schema, json) { }; -},{"./FormatValidators":215,"./Report":218,"./Utils":222}],217:[function(require,module,exports){ +},{"./FormatValidators":216,"./Report":219,"./Utils":223}],218:[function(require,module,exports){ // Number.isFinite polyfill // http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite if (typeof Number.isFinite !== "function") { @@ -82967,7 +83144,7 @@ if (typeof Number.isFinite !== "function") { }; } -},{}],218:[function(require,module,exports){ +},{}],219:[function(require,module,exports){ (function (process){ "use strict"; @@ -83122,7 +83299,7 @@ module.exports = Report; }).call(this,require('_process')) -},{"./Errors":214,"./Utils":222,"_process":15}],219:[function(require,module,exports){ +},{"./Errors":215,"./Utils":223,"_process":16}],220:[function(require,module,exports){ "use strict"; var Report = require("./Report"); @@ -83277,7 +83454,7 @@ exports.getSchemaByUri = function (report, uri, root) { exports.getRemotePath = getRemotePath; -},{"./Report":218,"./SchemaCompilation":220,"./SchemaValidation":221,"./Utils":222}],220:[function(require,module,exports){ +},{"./Report":219,"./SchemaCompilation":221,"./SchemaValidation":222,"./Utils":223}],221:[function(require,module,exports){ "use strict"; var Report = require("./Report"); @@ -83558,7 +83735,7 @@ exports.compileSchema = function (report, schema) { }; -},{"./Report":218,"./SchemaCache":219,"./Utils":222}],221:[function(require,module,exports){ +},{"./Report":219,"./SchemaCache":220,"./Utils":223}],222:[function(require,module,exports){ "use strict"; var FormatValidators = require("./FormatValidators"), @@ -84144,7 +84321,7 @@ exports.validateSchema = function (report, schema) { }; -},{"./FormatValidators":215,"./JsonValidation":216,"./Report":218,"./Utils":222}],222:[function(require,module,exports){ +},{"./FormatValidators":216,"./JsonValidation":217,"./Report":219,"./Utils":223}],223:[function(require,module,exports){ "use strict"; exports.isAbsoluteUri = function (uri) { @@ -84362,7 +84539,7 @@ exports.ucs2decode = function (string) { }; /*jshint +W016*/ -},{}],223:[function(require,module,exports){ +},{}],224:[function(require,module,exports){ (function (process){ "use strict"; @@ -84663,7 +84840,7 @@ module.exports = ZSchema; }).call(this,require('_process')) -},{"./FormatValidators":215,"./JsonValidation":216,"./Polyfills":217,"./Report":218,"./SchemaCache":219,"./SchemaCompilation":220,"./SchemaValidation":221,"./Utils":222,"./schemas/hyper-schema.json":224,"./schemas/schema.json":225,"_process":15}],224:[function(require,module,exports){ +},{"./FormatValidators":216,"./JsonValidation":217,"./Polyfills":218,"./Report":219,"./SchemaCache":220,"./SchemaCompilation":221,"./SchemaValidation":222,"./Utils":223,"./schemas/hyper-schema.json":225,"./schemas/schema.json":226,"_process":16}],225:[function(require,module,exports){ module.exports={ "$schema": "http://json-schema.org/draft-04/hyper-schema#", "id": "http://json-schema.org/draft-04/hyper-schema#", @@ -84823,8 +85000,8 @@ module.exports={ } -},{}],225:[function(require,module,exports){ +},{}],226:[function(require,module,exports){ arguments[4][3][0].apply(exports,arguments) },{"dup":3}]},{},[1])(1) }); -//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJpbmRleC5qcyIsImxpYi9oZWxwZXJzLmpzIiwibGliL2pzb24tc2NoZW1hLWRyYWZ0LTA0Lmpzb24iLCJsaWIvdHlwZXMuanMiLCJsaWIvdmVyc2lvbnMvMi4wL2Zvcm1hdC1nZW5lcmF0b3JzLmpzIiwibGliL3ZlcnNpb25zLzIuMC9mb3JtYXQtdmFsaWRhdG9ycy5qcyIsImxpYi92ZXJzaW9ucy8yLjAvaW5kZXguanMiLCJsaWIvdmVyc2lvbnMvMi4wL3NjaGVtYS5qc29uIiwibGliL3ZlcnNpb25zLzIuMC92YWxpZGF0b3JzLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXItcmVzb2x2ZS9lbXB0eS5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9iYXNlNjQtanMvbGliL2I2NC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2llZWU3NTQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9pcy1hcnJheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvZGVidWcvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9kZWJ1Zy9kZWJ1Zy5qcyIsIm5vZGVfbW9kdWxlcy9kZWJ1Zy9ub2RlX21vZHVsZXMvbXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvanMtYmFzZTY0L2Jhc2U2NC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9jb21tb24uanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9kdW1wZXIuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9leGNlcHRpb24uanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9sb2FkZXIuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9tYXJrLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2NvcmUuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEvZGVmYXVsdF9mdWxsLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfc2FmZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9mYWlsc2FmZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9qc29uLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvYmluYXJ5LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9ib29sLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9mbG9hdC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvaW50LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9qcy9mdW5jdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvanMvcmVnZXhwLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9qcy91bmRlZmluZWQuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL21hcC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbWVyZ2UuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL251bGwuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL29tYXAuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3BhaXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9zZXEuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3NldC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvc3RyLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS90aW1lc3RhbXAuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9ub2RlX21vZHVsZXMvZXNwcmltYS9lc3ByaW1hLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tcmVmcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL2FzeW5jL2xpYi9hc3luYy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL2NsaWVudC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbm9kZV9tb2R1bGVzL2NvbXBvbmVudC1lbWl0dGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tcmVmcy9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9ub2RlX21vZHVsZXMvcmVkdWNlLWNvbXBvbmVudC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL3RyYXZlcnNlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvYXJyYXkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2Jvb2xlYW4uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2ludGVnZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bGwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bWJlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvb2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi90eXBlcy9zdHJpbmcuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvY29tYmluZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9jb250YWluZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZXJyb3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZm9ybWF0cy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9oYXMtcHJvcHMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvaW5mZXJyZWQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvcHJpbWl0aXZlcy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9yYW5kb20uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvdHJhdmVyc2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2NoYW5jZS9jaGFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvY2xvbmUtb2JqLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9kZXJlZi9saWIvdXRpbC9maW5kLXJlZmVyZW5jZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvbm9ybWFsaXplLXNjaGVtYS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvcmVzb2x2ZS1zY2hlbWEuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi91dGlsL3VyaS1oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2FkZHJlc3MuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9jb21wYW55LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvZGF0ZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2ZpbmFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oYWNrZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvaW1hZ2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9pbnRlcm5ldC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2RlLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9kZV9BVC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZGVfQ0guanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9BVS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQk9SSy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQ0EuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX0dCLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9JTkQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX1VTLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9hdV9vY2tlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2ZhLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9mci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvaXQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2phLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9rby5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmJfTk8uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL25lcC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3BsLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9wdF9CUi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvcnUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3NrLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9zdi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvdmkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3poX0NOLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9yZW0uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9uYW1lLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcGhvbmVfbnVtYmVyLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcmFuZG9tLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci92ZW5kb3IvbWVyc2VubmUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci9wYXNzd29yZC1nZW5lcmF0b3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci91c2VyLWFnZW50LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL2xpYi9yYW5kZXhwLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9kaXNjb250aW51b3VzLXJhbmdlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3Bvc2l0aW9ucy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvcmFuZGV4cC9ub2RlX21vZHVsZXMvcmV0L2xpYi9zZXRzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3R5cGVzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvYXJyYXkvbGFzdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZm9yRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vbWFwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9hcnJheUNvcHkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9hcnJheUVhY2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9hcnJheU1hcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VBc3NpZ24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlQ2FsbGJhY2suanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlQ2xvbmUuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlQ29weS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VFYWNoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUZvci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JJbi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JPd24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlR2V0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUluZGV4T2YuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlSXNFcXVhbC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc0VxdWFsRGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc0Z1bmN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUlzTWF0Y2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlTWFwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZU1hdGNoZXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlTWF0Y2hlc1Byb3BlcnR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZVByb3BlcnR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZVByb3BlcnR5RGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VTbGljZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VUb1N0cmluZy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2JpbmFyeUluZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmluYXJ5SW5kZXhCeS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2JpbmRDYWxsYmFjay5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2J1ZmZlckNsb25lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlQmFzZUVhY2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVCYXNlRm9yLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlRm9yRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2VxdWFsQXJyYXlzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZXF1YWxCeVRhZy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2VxdWFsT2JqZWN0cy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2dldExlbmd0aC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2dldFN5bWJvbHMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pbmRleE9mTmFOLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaW5pdENsb25lQXJyYXkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pbml0Q2xvbmVCeVRhZy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2luaXRDbG9uZU9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzQXJyYXlMaWtlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNIb3N0T2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNJbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzS2V5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNMZW5ndGguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc09iamVjdExpa2UuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc1N0cmljdENvbXBhcmFibGUuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9zaGltSXNQbGFpbk9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3NoaW1LZXlzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvdG9PYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC90b1BhdGguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2Nsb25lRGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNBcmd1bWVudHMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzQXJyYXkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzRnVuY3Rpb24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzTmF0aXZlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc09iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNQbGFpbk9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNTdHJpbmcuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzVHlwZWRBcnJheS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNVbmRlZmluZWQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9vYmplY3Qva2V5cy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L29iamVjdC9rZXlzSW4uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9zdHJpbmcvZXNjYXBlUmVnRXhwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvc3VwcG9ydC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L3V0aWxpdHkvY29uc3RhbnQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC91dGlsaXR5L2lkZW50aXR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvdXRpbGl0eS9wcm9wZXJ0eS5qcyIsIm5vZGVfbW9kdWxlcy9uYXRpdmUtcHJvbWlzZS1vbmx5L25wby5qcyIsIm5vZGVfbW9kdWxlcy9wYXRoLWxvYWRlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYXRoLWxvYWRlci9saWIvbG9hZGVycy9maWxlLWJyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvcGF0aC1sb2FkZXIvbGliL2xvYWRlcnMvaHR0cC5qcyIsIm5vZGVfbW9kdWxlcy9wYXRoLWxvYWRlci9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvY2xpZW50LmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL25vZGVfbW9kdWxlcy92YWxpZGF0b3IvdmFsaWRhdG9yLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9FcnJvcnMuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL0Zvcm1hdFZhbGlkYXRvcnMuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL0pzb25WYWxpZGF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9Qb2x5ZmlsbHMuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1JlcG9ydC5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvU2NoZW1hQ2FjaGUuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1NjaGVtYUNvbXBpbGF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9TY2hlbWFWYWxpZGF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9VdGlscy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvWlNjaGVtYS5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvc2NoZW1hcy9oeXBlci1zY2hlbWEuanNvbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0OUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakRBOztBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdDRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbGpEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pzS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDelpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNubUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDempDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNyR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2g5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzM3SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4OUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzMvUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6bEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3A5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3NERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaDNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbm1FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ozQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcGlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ROQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JsREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaC9IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3IxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDejNJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDam9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25aQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDak5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3REQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBOztBQ0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDcEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNqcFlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUN2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3ZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQzFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDeENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN2TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDbm1DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2h1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDdEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3hOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN4U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gcmVxdWlyZSgnbG9kYXNoLWNvbXBhdCcpO1xudmFyIHBhdGhMb2FkZXIgPSByZXF1aXJlKCdwYXRoLWxvYWRlcicpO1xudmFyIFlBTUwgPSByZXF1aXJlKCdqcy15YW1sJyk7XG5cbi8vIExvYWQgcHJvbWlzZXMgcG9seWZpbGwgaWYgbmVjZXNzYXJ5XG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmICh0eXBlb2YgUHJvbWlzZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgcmVxdWlyZSgnbmF0aXZlLXByb21pc2Utb25seScpO1xufVxuXG52YXIgc3VwcG9ydGVkVmVyc2lvbnMgPSB7XG4gICcyLjAnOiByZXF1aXJlKCcuL2xpYi92ZXJzaW9ucy8yLjAvJylcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIFN3YWdnZXJBcGkgb2JqZWN0IGZyb20gaXRzIFN3YWdnZXIgZGVmaW5pdGlvbihzKS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBsb2FkaW5nIHRoZSBkZWZpbml0aW9uKHMpXG4gKiBAcGFyYW0ge29iamVjdHxzdHJpbmd9IG9wdGlvbnMuZGVmaW5pdGlvbiAtIFRoZSBTd2FnZ2VyIGRlZmluaXRpb24gbG9jYXRpb24gb3Igc3RydWN0dXJlXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMubG9hZGVyT3B0aW9uc10gLSBUaGUgb3B0aW9ucyB0byBwYXNzIHRvIHBhdGgtbG9hZGVyXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrW119IFtvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnNdIC0gVGhlIGN1c3RvbSB2YWxpZGF0b3JzXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gTm9kZS5qcyBlcnJvci1maXJzdCBjYWxsYmFja1xuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgaXMgYWx3YXlzIHJldHVybmVkIGV2ZW4gaWYgeW91IHByb3ZpZGUgYSBjYWxsYmFjayBidXQgaXQgaXMgbm90IHJlcXVpcmVkIHRvIGJlIHVzZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBwcm9taXNlc1xuICogU3dhZ2dlckFwaS5jcmVhdGUoe2RlZmluaXRpb246ICdodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLnlhbWwnfSlcbiAqICAgLnRoZW4oZnVuY3Rpb24gKGFwaSkge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBjYWxsYmFja3NcbiAqIFN3YWdnZXJBcGkuY3JlYXRlKHtkZWZpbml0aW9uOiAnaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci55YW1sJ30sIGZ1bmN0aW9uIChlcnIsIGFwaSkge1xuICogICBpZiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9IGVsc2Uge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9KTtcbiAqL1xubW9kdWxlLmV4cG9ydHMuY3JlYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciBhbGxUYXNrcyA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8vIFZhbGlkYXRlIGFyZ3VtZW50c1xuICBhbGxUYXNrcyA9IGFsbFRhc2tzLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMuZGVmaW5pdGlvbiBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMuZGVmaW5pdGlvbikgJiYgIV8uaXNTdHJpbmcob3B0aW9ucy5kZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmRlZmluaXRpb24gbXVzdCBiZSBlaXRoZXIgYW4gb2JqZWN0IG9yIGEgc3RyaW5nJyk7XG4gICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnMubG9hZGVyT3B0aW9ucykgJiYgIV8uaXNQbGFpbk9iamVjdChvcHRpb25zLmxvYWRlck9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMubG9hZGVyT3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMpICYmICFfLmlzQXJyYXkob3B0aW9ucy5jdXN0b21WYWxpZGF0b3JzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChjYWxsYmFjaykgJiYgIV8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIF8uZm9yRWFjaChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMsIGZ1bmN0aW9uICh2YWxpZGF0b3IsIGluZGV4KSB7XG4gICAgICAgIGlmICghXy5pc0Z1bmN0aW9uKHZhbGlkYXRvcikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgYXQgaW5kZXggJyArIGluZGV4ICsgJyBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGlucHV0IG9wdGlvbnMgc28gYXMgbm90IHRvIGFsdGVyIHRoZW1cbiAgb3B0aW9ucyA9IF8uY2xvbmVEZWVwKG9wdGlvbnMpO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBkZWZpbml0aW9uIGlmIGl0IGlzIGEgcGF0aC9VUkxcbiAgYWxsVGFza3MgPSBhbGxUYXNrc1xuICAgIC8vIExvYWQgdGhlIHJlbW90ZSBkZWZpbml0aW9uIG9yIHJldHVybiBvcHRpb25zLmRlZmluaXRpb25cbiAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoXy5pc1N0cmluZyhvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBwYXRoTG9hZGVyLmxvYWQob3B0aW9ucy5kZWZpbml0aW9uLCBvcHRpb25zLmxvYWRlck9wdGlvbnMgfHwge30pLnRoZW4oWUFNTC5zYWZlTG9hZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5kZWZpbml0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIFByb2Nlc3MgdGhlIFN3YWdnZXIgZGVmaW5pdGlvbiAoaWYgcG9zc2libGUpXG4gIGFsbFRhc2tzID0gYWxsVGFza3NcbiAgICAudGhlbihmdW5jdGlvbiAoYXBpRGVmaW5pdGlvbikge1xuICAgICAgdmFyIGRlZmluaXRpb24gPSBfLmZpbmQoc3VwcG9ydGVkVmVyc2lvbnMsIGZ1bmN0aW9uIChwRGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gcERlZmluaXRpb24uY2FuUHJvY2VzcyhhcGlEZWZpbml0aW9uKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChkZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmFibGUgdG8gaWRlbnRpZnkgdGhlIFN3YWdnZXIgdmVyc2lvbiBvciB0aGUgU3dhZ2dlciB2ZXJzaW9uIGlzIHVuc3VwcG9ydGVkJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uLmNyZWF0ZVN3YWdnZXJBcGkoYXBpRGVmaW5pdGlvbiwgb3B0aW9ucyk7XG4gICAgfSk7XG5cbiAgLy8gVXNlIHRoZSBjYWxsYmFjayBpZiBwcm92aWRlZCBhbmQgaXQgaXMgYSBmdW5jdGlvblxuICBpZiAoIV8uaXNVbmRlZmluZWQoY2FsbGJhY2spICYmIF8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICBhbGxUYXNrcyA9IGFsbFRhc2tzXG4gICAgICAudGhlbihmdW5jdGlvbiAoc3dhZ2dlckFwaSkge1xuICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIHN3YWdnZXJBcGkpO1xuICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4gYWxsVGFza3M7XG59O1xuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gtY29tcGF0Jyk7XG52YXIgbW9ja2VyID0gcmVxdWlyZSgnanNvbi1zY2hlbWEtZmFrZXInKTtcbnZhciBaU2NoZW1hID0gcmVxdWlyZSgnei1zY2hlbWEnKTtcblxudmFyIGRyYWZ0MDRKc29uID0gcmVxdWlyZSgnLi9qc29uLXNjaGVtYS1kcmFmdC0wNC5qc29uJyk7XG52YXIgZHJhZnQwNFVybCA9ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSc7XG5cbmZ1bmN0aW9uIHJlbW92ZVZhbGlkYXRpb25FcnJvclBhcmFtcyAob2JqKSB7XG4gIGRlbGV0ZSBvYmoucGFyYW1zO1xuXG4gIGlmIChvYmouaW5uZXIpIHtcbiAgICBfLmVhY2gob2JqLmlubmVyLCBmdW5jdGlvbiAobk9iaikge1xuICAgICAgcmVtb3ZlVmFsaWRhdGlvbkVycm9yUGFyYW1zKG5PYmopO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSBKU09OIFNjaGVtYSBNb2NrZXIuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSAtIFRoZSBtb2NrZXIgb3B0aW9uc1xuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLmZvcm1hdEdlbmVyYXRvcnNdIC0gVGhlIGN1c3RvbSBmb3JtYXQgZ2VuZXJhdG9ycyB0byB1c2VcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgSlNPTiBTY2hlbWEgbW9ja2VyXG4gKi9cbm1vZHVsZS5leHBvcnRzLmNyZWF0ZUpTT05TY2hlbWFNb2NrZXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICAvLyBBZGQgdGhlIGN1c3RvbSBmb3JtYXQgZ2VuZXJhdG9yc1xuICBfLmVhY2gob3B0aW9ucy5mb3JtYXRHZW5lcmF0b3JzLCBmdW5jdGlvbiAoaGFuZGxlciwgbmFtZSkge1xuICAgIG1vY2tlci5mb3JtYXRzKG5hbWUsIGhhbmRsZXIpO1xuICB9KTtcblxuICByZXR1cm4gbW9ja2VyO1xufTtcblxuLyoqXG4gKiBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIEpTT04gVmFsaWRhdG9yLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBUaGUgdmFsaWRhdG9yIG9wdGlvbnNcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5mb3JtYXRWYWxpZGF0b3JzXSAtIFRoZSBjdXN0b20gZm9ybWF0IHZhbGlkYXRvcnMgdG8gdXNlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hIHZhbGlkYXRvclxuICovXG5tb2R1bGUuZXhwb3J0cy5jcmVhdGVKU09OVmFsaWRhdG9yID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgdmFyIHZhbGlkYXRvciA9IG5ldyBaU2NoZW1hKHtcbiAgICByZXBvcnRQYXRoQXNBcnJheTogdHJ1ZVxuICB9KTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICAvLyBBZGQgdGhlIGRyYWZ0LTA0IHNwZWNcbiAgdmFsaWRhdG9yLnNldFJlbW90ZVJlZmVyZW5jZShkcmFmdDA0VXJsLCBkcmFmdDA0SnNvbik7XG5cbiAgLy8gQWRkIHRoZSBjdXN0b20gdmFsaWRhdG9yc1xuICBfLmVhY2gob3B0aW9ucy5mb3JtYXRWYWxpZGF0b3JzLCBmdW5jdGlvbiAoaGFuZGxlciwgbmFtZSkge1xuICAgIFpTY2hlbWEucmVnaXN0ZXJGb3JtYXQobmFtZSwgaGFuZGxlcik7XG4gIH0pO1xuXG4gIHJldHVybiB2YWxpZGF0b3I7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgcHJvdmlkZWQgdmFsdWUgYWdhaW5zdCB0aGUgSlNPTiBTY2hlbWEgYnkgbmFtZSBvciB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsaWRhdG9yIC0gVGhlIEpTT04gU2NoZW1hIHZhbGlkYXRvciBjcmVhdGVkIHZpYSB7QGxpbmsgI2NyZWF0ZUpTT05WYWxpZGF0b3J9XG4gKiBAcGFyYW0ge29iamVjdH0gc2NoZW1hIC0gVGhlIEpTT04gU2NoZW1hXG4gKiBAcGFyYW0geyp9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIHZhbGlkYXRlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGVycm9ycyBhbmQgd2FybmluZ3Mgb2YgdGhlIHZhbGlkYXRpb25cbiAqL1xubW9kdWxlLmV4cG9ydHMudmFsaWRhdGVBZ2FpbnN0U2NoZW1hID0gZnVuY3Rpb24gKHZhbGlkYXRvciwgc2NoZW1hLCB2YWx1ZSkge1xuICBzY2hlbWEgPSBfLmNsb25lRGVlcChzY2hlbWEpOyAvLyBDbG9uZSB0aGUgc2NoZW1hIGFzIHotc2NoZW1hIGFsdGVycyB0aGUgcHJvdmlkZWQgZG9jdW1lbnRcblxuICB2YXIgcmVzcG9uc2UgPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW11cbiAgfTtcblxuICBpZiAoIXZhbGlkYXRvci52YWxpZGF0ZSh2YWx1ZSwgc2NoZW1hKSkge1xuICAgIHJlc3BvbnNlLmVycm9ycyA9IF8ubWFwKHZhbGlkYXRvci5nZXRMYXN0RXJyb3JzKCksIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIHJlbW92ZVZhbGlkYXRpb25FcnJvclBhcmFtcyhlcnIpO1xuXG4gICAgICByZXR1cm4gZXJyO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgICBcImlkXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjXCIsXG4gICAgXCIkc2NoZW1hXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hXCIsXG4gICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICAgIFwic2NoZW1hQXJyYXlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgIFwiaXRlbXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfVxuICAgICAgICB9LFxuICAgICAgICBcInBvc2l0aXZlSW50ZWdlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcIm1pbmltdW1cIjogMFxuICAgICAgICB9LFxuICAgICAgICBcInBvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCI6IHtcbiAgICAgICAgICAgIFwiYWxsT2ZcIjogWyB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCIgfSwgeyBcImRlZmF1bHRcIjogMCB9IF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzaW1wbGVUeXBlc1wiOiB7XG4gICAgICAgICAgICBcImVudW1cIjogWyBcImFycmF5XCIsIFwiYm9vbGVhblwiLCBcImludGVnZXJcIiwgXCJudWxsXCIsIFwibnVtYmVyXCIsIFwib2JqZWN0XCIsIFwic3RyaW5nXCIgXVxuICAgICAgICB9LFxuICAgICAgICBcInN0cmluZ0FycmF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgICB9XG4gICAgfSxcbiAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImlkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcIiRzY2hlbWFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGl0bGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge30sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwibWluaW11bVwiOiAwLFxuICAgICAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwicmVnZXhcIlxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiI1wiIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCIgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcIm1heFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInJlcXVpcmVkXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheVwiIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcInR5cGVcIjogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5XCIgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlc1wiIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlc1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImFsbE9mXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH0sXG4gICAgICAgIFwiYW55T2ZcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCIgfSxcbiAgICAgICAgXCJvbmVPZlwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9LFxuICAgICAgICBcIm5vdFwiOiB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgfSxcbiAgICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiBbIFwibWF4aW11bVwiIF0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiBbIFwibWluaW11bVwiIF1cbiAgICB9LFxuICAgIFwiZGVmYXVsdFwiOiB7fVxufVxuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gtY29tcGF0Jyk7XG52YXIgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdzd2FnZ2VyLWNvcmUtYXBpJyk7XG5cbi8qKlxuICogVGhlIFN3YWdnZXIgT3BlcmF0aW9uIG9iamVjdC5cbiAqXG4gKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IERvIG5vdCB1c2UgZGlyZWN0bHkuXG4gKlxuICogQHBhcmFtIHtTd2FnZ2VyQXBpfSBhcGkgLSBUaGUgU3dhZ2dlciBBUEkgb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSBvcGVyYXRpb24gcGF0aFxuICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZCAtIFRoZSBvcGVyYXRpb24gbWV0aG9kXG4gKiBAcGFyYW0ge3N0cmluZ30gcHRyIC0gVGhlIEpTT04gUG9pbnRlciB0byB0aGUgb3BlcmF0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmaW5pdGlvbiAtIFRoZSBvcGVyYXRpb24gZGVmaW5pdGlvblxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBPcGVyYXRpb24gKGFwaSwgcGF0aCwgbWV0aG9kLCBwdHIsIGRlZmluaXRpb24pIHtcbiAgdGhpcy5hcGkgPSBhcGk7XG4gIHRoaXMucGF0aCA9IHBhdGg7XG4gIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICB0aGlzLnB0ciA9IHB0cjtcbiAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAvLyBBc3NpZ24gU3dhZ2dlciBkZWZpbml0aW9uIHByb3BlcnRpZXMgdG8gdGhlIG9wZXJhdGlvbiBmb3IgZWFzeSBhY2Nlc3NcbiAgXy5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG5cbiAgZGVidWcoJ0ZvdW5kIG9wZXJhdGlvbiBhdCAlcycsIHB0cik7XG5cbiAgdGhpcy5wYXJhbWV0ZXJPYmplY3RzID0gYXBpLnBsdWdpbi5nZXRPcGVyYXRpb25QYXJhbWV0ZXJzKHRoaXMpO1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24uXG4gKlxuICogQHJldHVybnMge1BhcmFtZXRlcltdfSBBbGwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi5cbiAqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJPYmplY3RzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBKU09OIFNjaGVtYSBmb3IgdGhlIHJlcXVlc3RlZCBjb2RlIG9yIHRoZSBkZWZhdWx0IHJlc3BvbnNlIGlmIG5vIGNvZGUgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBbY29kZT1kZWZhdWx0XSAtIFRoZSByZXNwb25zZSBjb2RlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hIGZvciB0aGUgcmVzcG9uc2UsIHdoaWNoIGNhbiBiZSB1bmRlZmluZWQgaWYgdGhlIHJlc3BvbnNlIHNjaGVtYSBpcyBub3QgcHJvdmlkZWRcbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3duIHdoZW5ldmVyIHRoZSByZXF1ZXN0ZWQgY29kZSBkb2VzIG5vdCBleGlzdCAoVGhyb3dpbmcgYW4gZXJyb3IgaW5zdGVhZCBvZiByZXR1cm5pbmcgdW5kZWZpbmVkXG4gKiAgICAgICAgICAgICAgICAgaXMgcmVxdWlyZWQgZHVlIHRvIHVuZGVmaW5lZCBiZWluZyBhIHZhbGlkIHJlc3BvbnNlIHNjaGVtYSBpbmRpY2F0aW5nIGEgdm9pZCByZXNwb25zZSlcbiAqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRSZXNwb25zZVNjaGVtYSA9IGZ1bmN0aW9uIChjb2RlKSB7XG4gIHZhciByZXNwb25zZTtcblxuICBpZiAoXy5pc1VuZGVmaW5lZChjb2RlKSkge1xuICAgIGNvZGUgPSAnZGVmYXVsdCc7XG4gIH0gZWxzZSBpZiAoXy5pc051bWJlcihjb2RlKSkge1xuICAgIGNvZGUgPSAoTWF0aC5mbG9vcigxMDAgKiBjb2RlKSAvIDEwMCkudG9GaXhlZCgpOyAvLyBPdmVybHkgY2F1dGlvdXMgYnV0IG9oIHdlbGwuLi5cbiAgfVxuXG4gIHJlc3BvbnNlID0gdGhpcy5kZWZpbml0aW9uLnJlc3BvbnNlc1tjb2RlXTtcblxuICBpZiAoXy5pc1VuZGVmaW5lZChyZXNwb25zZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgb3BlcmF0aW9uIGRvZXMgbm90IGhhdmUgYSBkZWZpbmVkIFxcJycgKyBjb2RlICsgJ1xcJyByZXNwb25zZSBjb2RlJyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnNjaGVtYTtcbiAgfVxufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgc2FtcGxlIHZhbHVlIGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgY29kZSBvciB0aGUgZGVmYXVsdCByZXNwb25zZSBpZiBubyBjb2RlIGlzIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gW2NvZGU9ZGVmYXVsdF0gLSBUaGUgcmVzcG9uc2UgY29kZVxuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgc2FtcGxlIHZhbHVlIGZvciB0aGUgcmVzcG9uc2UsIHdoaWNoIGNhbiBiZSB1bmRlZmluZWQgaWYgdGhlIHJlc3BvbnNlIHNjaGVtYSBpcyBub3QgcHJvdmlkZWRcbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3duIHdoZW5ldmVyIHRoZSByZXF1ZXN0ZWQgY29kZSBkb2VzIG5vdCBleGlzdCAoVGhyb3dpbmcgYW4gZXJyb3IgaW5zdGVhZCBvZiByZXR1cm5pbmcgdW5kZWZpbmVkXG4gKiAgICAgICAgICAgICAgICAgaXMgcmVxdWlyZWQgZHVlIHRvIHVuZGVmaW5lZCBiZWluZyBhIHZhbGlkIHJlc3BvbnNlIHNjaGVtYSBpbmRpY2F0aW5nIGEgdm9pZCByZXNwb25zZSlcbiAqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRSZXNwb25zZVNhbXBsZSA9IGZ1bmN0aW9uIChjb2RlKSB7XG4gIHZhciBzY2hlbWEgPSB0aGlzLmdldFJlc3BvbnNlU2NoZW1hKGNvZGUpO1xuICB2YXIgc2FtcGxlO1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWEpKSB7XG4gICAgc2FtcGxlID0gdGhpcy5hcGkucGx1Z2luLmdldFNhbXBsZShzY2hlbWEpO1xuICB9XG5cbiAgcmV0dXJuIHNhbXBsZTtcbn07XG5cbi8qKlxuICogVGhlIFN3YWdnZXIgUGFyYW1ldGVyIG9iamVjdC5cbiAqXG4gKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IERvIG5vdCB1c2UgZGlyZWN0bHkuXG4gKlxuICogQHBhcmFtIHtPcGVyYXRpb259IG9wZXJhdGlvbiAtIFRoZSBTd2FnZ2VyIE9wZXJhdGlvbiBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwdHIgLSBUaGUgSlNPTiBQb2ludGVyIHRvIHRoZSBwYXJhbWV0ZXJcbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIHBhcmFtZXRlciBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gc2NoZW1hIC0gVGhlIEpTT04gU2NoZW1hIGZvciB0aGUgcGFyYW1ldGVyXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFBhcmFtZXRlciAob3BlcmF0aW9uLCBwdHIsIGRlZmluaXRpb24sIHNjaGVtYSkge1xuICB0aGlzLm9wZXJhdGlvbiA9IG9wZXJhdGlvbjtcbiAgdGhpcy5wdHIgPSBwdHI7XG4gIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gIHRoaXMuY29tcHV0ZWRTY2hlbWEgPSBzY2hlbWE7XG5cbiAgLy8gQXNzaWduIFN3YWdnZXIgZGVmaW5pdGlvbiBwcm9wZXJ0aWVzIHRvIHRoZSBwYXJhbWV0ZXIgZm9yIGVhc3kgYWNjZXNzXG4gIF8uYXNzaWduKHRoaXMsIGRlZmluaXRpb24pO1xuXG4gIGRlYnVnKCdGb3VuZCBvcGVyYXRpb24gcGFyYW1ldGVyICglcyAlcykgYXQgJXMnLCBvcGVyYXRpb24ubWV0aG9kLnRvVXBwZXJDYXNlKCksIG9wZXJhdGlvbi5wYXRoLCBwdHIpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNvbXB1dGVkIEpTT04gU2NoZW1hIGZvciB0aGlzIHBhcmFtZXRlciBvYmplY3QuXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hXG4gKi9cblBhcmFtZXRlci5wcm90b3R5cGUuZ2V0U2NoZW1hID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5jb21wdXRlZFNjaGVtYTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIHNhbXBsZSB2YWx1ZSBmb3IgdGhlIHBhcmFtZXRlciBiYXNlZCBvbiBpdHMgc2NoZW1hO1xuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgc2FtcGxlIHZhbHVlXG4gKi9cblBhcmFtZXRlci5wcm90b3R5cGUuZ2V0U2FtcGxlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2FtcGxlO1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmNvbXB1dGVkU2NoZW1hKSkge1xuICAgIHNhbXBsZSA9IHRoaXMub3BlcmF0aW9uLmFwaS5wbHVnaW4uZ2V0U2FtcGxlKHRoaXMuY29tcHV0ZWRTY2hlbWEpO1xuICB9XG5cbiAgcmV0dXJuIHNhbXBsZTtcbn07XG5cbi8qKlxuICogQ2FsbGJhY2sgdXNlZCBmb3IgdmFsaWRhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1N3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyIEFQSSBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBPYmplY3QgY29udGFpbmluZyB0aGUgZXJyb3JzIGFuZCB3YXJuaW5ncyBvZiB0aGUgdmFsaWRhdGlvblxuICpcbiAqIEBjYWxsYmFjayB2YWxpZGF0b3JDYWxsYmFja1xuICovXG5cbi8qKlxuICogVGhlIFN3YWdnZXIgQVBJIG9iamVjdC5cbiAqXG4gKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IERvIG5vdCB1c2UgZGlyZWN0bHkuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHBsdWdpbiAtIFRoZSBTd2FnZ2VyIHZlcnNpb24gcGx1Z2luXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmaW5pdGlvbiAtIFRoZSBTd2FnZ2VyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSByZXNvbHZlZCAtIFRoZSBmdWxseSByZXNvbHZlZCBTd2FnZ2VyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSByZWZlcmVuY2VzIC0gVGhlIGxvY2F0aW9uIGFuZCByZXNvbHV0aW9uIG9mIHRoZSByZXNvbHZlZCByZWZlcmVuY2VzIGluIHRoZSBTd2FnZ2VyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgcGFzc2VkIHRvIHN3YWdnZXJBcGkuY3JlYXRlXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrW119IFtvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnNdIC0gVGhlIGN1c3RvbSB2YWxpZGF0b3JzXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFN3YWdnZXJBcGkgKHBsdWdpbiwgZGVmaW5pdGlvbiwgcmVzb2x2ZWQsIHJlZmVyZW5jZXMsIG9wdGlvbnMpIHtcbiAgdGhpcy5jdXN0b21WYWxpZGF0b3JzID0gW107XG4gIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gIHRoaXMuZG9jdW1lbnRhdGlvbiA9IHBsdWdpbi5kb2N1bWVudGF0aW9uO1xuICB0aGlzLmVycm9ycyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XG4gIHRoaXMucmVmZXJlbmNlcyA9IHJlZmVyZW5jZXM7XG4gIHRoaXMucmVzb2x2ZWQgPSByZXNvbHZlZDtcbiAgdGhpcy52ZXJzaW9uID0gcGx1Z2luLnZlcnNpb247XG4gIHRoaXMud2FybmluZ3MgPSB1bmRlZmluZWQ7XG4gIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgLy8gQXNzaWduIFN3YWdnZXIgZGVmaW5pdGlvbiBwcm9wZXJ0aWVzIHRvIHRoZSBhcGkgZm9yIGVhc3kgYWNjZXNzXG4gIF8uYXNzaWduKHRoaXMsIGRlZmluaXRpb24pO1xuXG4gIGRlYnVnKCdOZXcgU3dhZ2dlciBBUEkgKCVzKScsIF8uaXNTdHJpbmcob3B0aW9ucy5kZWZpbml0aW9uKSA/IG9wdGlvbnMuZGVmaW5pdGlvbiA6ICdKYXZhU2NyaXB0IE9iamVjdCcpO1xuXG4gIHRoaXMub3BlcmF0aW9uT2JqZWN0cyA9IHBsdWdpbi5nZXRPcGVyYXRpb25zKHRoaXMpO1xuXG4gIC8vIFJlZ2lzdGVyIGN1c3RvbSB2YWxpZGF0b3JzXG4gIF8uZm9yRWFjaChvcHRpb25zLnZhbGlkYXRvcnMsIHRoaXMucmVnaXN0ZXJWYWxpZGF0b3IpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGVycm9ycyBmcm9tIHRoZSBsYXN0IHZhbGlkYXRlIGNhbGwuXG4gKlxuICogQHJldHVybnMge29iamVjdFtdfSBUaGUgZXJyb3JzIGZyb20gdGhlIHByZXZpb3VzIGNhbGwgdG8gdmFsaWRhdGUgb3IgdW5kZWZpbmVkIGlmIHZhbGlkYXRlIHdhcyBuZXZlciBjYWxsZWRcbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUuZ2V0TGFzdEVycm9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZXJyb3JzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB3YXJuaW5ncyBmcm9tIHRoZSBsYXN0IHZhbGlkYXRlIGNhbGwuXG4gKlxuICogQHJldHVybnMge29iamVjdFtdfSBUaGUgd2FybmluZ3MgZnJvbSB0aGUgcHJldmlvdXMgY2FsbCB0byB2YWxpZGF0ZSBvciB1bmRlZmluZWQgaWYgdmFsaWRhdGUgd2FzIG5ldmVyIGNhbGxlZFxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRMYXN0V2FybmluZ3MgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLndhcm5pbmdzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcGVyYXRpb24gZm9yIHRoZSBwcm92aWRlZCBwYXRoIGFuZCBtZXRob2QuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBUaGUgU3dhZ2dlciBwYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gVGhlIFN3YWdnZXIgb3BlcmF0aW9uIG1ldGhvZFxuICpcbiAqIEByZXR1cm5zIHtPcGVyYXRpb259IFRoZSBvcGVyYXRpb24gZm9yIHRoZSBwcm92aWRlZCBwYXRoIGFuZCBtZXRob2Qgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIG9wZXJhdGlvbiBmb3IgdGhhdFxuICogICAgICAgICAgICAgICAgICAgICAgcGF0aCBhbmQgbWV0aG9kIGNvbWJpbmF0aW9uLlxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRPcGVyYXRpb24gPSBmdW5jdGlvbiAocGF0aCwgbWV0aG9kKSB7XG4gIHJldHVybiBfLmZpbmQodGhpcy5vcGVyYXRpb25PYmplY3RzLCBmdW5jdGlvbiAob3BlcmF0aW9uKSB7XG4gICAgcmV0dXJuIG9wZXJhdGlvbi5wYXRoID09PSBwYXRoICYmIG9wZXJhdGlvbi5tZXRob2QgPT09IG1ldGhvZC50b0xvd2VyQ2FzZSgpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgb3BlcmF0aW9ucyBmb3IgdGhlIHByb3ZpZGVkIHBhdGggb3IgYWxsIG9wZXJhdGlvbnMgaW4gdGhlIEFQSS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhdIC0gVGhlIFN3YWdnZXIgcGF0aFxuICpcbiAqIEByZXR1cm5zIHtPcGVyYXRpb25bXX0gQWxsIG9wZXJhdGlvbnMgZm9yIHRoZSBwcm92aWRlZCBwYXRoIG9yIGFsbCBBUEkgb3BlcmF0aW9ucy5cbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUuZ2V0T3BlcmF0aW9ucyA9IGZ1bmN0aW9uIChwYXRoKSB7XG4gIHJldHVybiBfLmZpbHRlcih0aGlzLm9wZXJhdGlvbk9iamVjdHMsIGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChwYXRoKSA/IHRydWUgOiBvcGVyYXRpb24ucGF0aCA9PT0gcGF0aDtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVycyBhIHZhbGlkYXRvci5cbiAqXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrfSB2YWxpZGF0b3IgLSBUaGUgdmFsaWRhdG9yXG4gKlxuICogQHRocm93cyB7VHlwZUVycm9yfSBJZiB0aGUgdmFsaWRhdG9yIGlzIG5vdCBhIGZ1bmN0aW9uXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLnJlZ2lzdGVyVmFsaWRhdG9yID0gZnVuY3Rpb24gKHZhbGlkYXRvcikge1xuICBpZiAoXy5pc1VuZGVmaW5lZCh2YWxpZGF0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsaWRhdG9yIGlzIHJlcXVpcmVkJyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNGdW5jdGlvbih2YWxpZGF0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsaWRhdG9yIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgdGhpcy5jdXN0b21WYWxpZGF0b3JzLnB1c2godmFsaWRhdG9yKTtcbn07XG5cbi8qKlxuICogUGVyZm9ybXMgdmFsaWRhdGlvbiBvZiB0aGUgU3dhZ2dlciBBUEkgZG9jdW1lbnQocykuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgYWxsIHZhbGlkYXRvcnMgcHJvZHVjZSB6ZXJvIGVycm9ycyBhbmQgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLnZhbGlkYXRlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgLy8gUmVzZXQgdGhlIGVycm9ycyBhbmQgd2FybmluZ3NcbiAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgdGhpcy53YXJuaW5ncyA9IFtdO1xuXG4gIGZ1bmN0aW9uIGRvVmFsaWRhdGlvbiAodmFsaWRhdG9yKSB7XG4gICAgdmFyIHJlc3VsdHMgPSB2YWxpZGF0b3Ioc2VsZik7XG5cbiAgICBpZiAocmVzdWx0cy5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZi5lcnJvcnMgPSBzZWxmLmVycm9ycy5jb25jYXQocmVzdWx0cy5lcnJvcnMpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLndhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGYud2FybmluZ3MgPSBzZWxmLndhcm5pbmdzLmNvbmNhdChyZXN1bHRzLndhcm5pbmdzKTtcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0ZSB0aGUgZG9jdW1lbnQgc3RydWN0dXJhbGx5XG4gIGRvVmFsaWRhdGlvbih0aGlzLnBsdWdpbi5nZXRKU09OU2NoZW1hVmFsaWRhdG9yKCkpO1xuXG4gIC8vIFBlcmZvcm0gcmVtYWluaW5nIHZhbGlkYXRpb24gb25seSBpZiB0aGUgZG9jdW1lbnQgaXMgc3RydWN0dXJhbGx5IHZhbGlkXG4gIGlmICh0aGlzLmVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAvLyBSdW4gcGx1Z2luIHZhbGlkYXRvcnNcbiAgICBfLmZvckVhY2godGhpcy5wbHVnaW4uZ2V0U2VtYW50aWNWYWxpZGF0b3JzKCksIGRvVmFsaWRhdGlvbik7XG5cbiAgICAvLyBSdW4gY3VzdG9tIHZhbGlkYXRvcnNcbiAgICBfLmZvckVhY2godGhpcy5jdXN0b21WYWxpZGF0b3JzLCBkb1ZhbGlkYXRpb24pO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBPcGVyYXRpb246IE9wZXJhdGlvbixcbiAgUGFyYW1ldGVyOiBQYXJhbWV0ZXIsXG4gIFN3YWdnZXJBcGk6IFN3YWdnZXJBcGlcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQnKTtcbnZhciBCYXNlNjQgPSByZXF1aXJlKCdqcy1iYXNlNjQnKS5CYXNlNjQ7XG52YXIgc3RyaW5nTW9ja2VyID0gcmVxdWlyZSgnanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL3N0cmluZycpO1xuXG4vLyBCdWlsZCB0aGUgbGlzdCBvZiBjdXN0b20gSlNPTiBTY2hlbWEgZ2VuZXJhdG9yIGZvcm1hdHNcbm1vZHVsZS5leHBvcnRzLmJ5dGUgPSBmdW5jdGlvbiAoZ2VuLCBzY2hlbWEpIHtcbiAgdmFyIGNTY2hlbWEgPSBfLmNsb25lRGVlcChzY2hlbWEpO1xuICB2YXIgc2FtcGxlO1xuXG4gIGRlbGV0ZSBjU2NoZW1hLmZvcm1hdDtcblxuICBzYW1wbGUgPSBzdHJpbmdNb2NrZXIoY1NjaGVtYSk7XG5cbiAgcmV0dXJuIEJhc2U2NC5lbmNvZGUoc2FtcGxlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLnBhc3N3b3JkID0gZnVuY3Rpb24gKGdlbiwgc2NoZW1hKSB7XG4gIHJldHVybiBzdHJpbmdNb2NrZXIoc2NoZW1hKTtcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQnKTtcblxubW9kdWxlLmV4cG9ydHMuaW50MzIgPSBtb2R1bGUuZXhwb3J0cy5pbnQ2NCA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgdmFyIHZhbGlkID0gdHJ1ZTtcbiAgdmFyIGNWYWw7XG5cbiAgaWYgKCFfLmlzTnVtYmVyKHZhbCkpIHtcbiAgICB0cnkge1xuICAgICAgY1ZhbCA9IHBhcnNlSW50KHZhbCwgMTApO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBpZiAoXy5pc051bWJlcihjVmFsKSkge1xuICAgIHZhbGlkID0gY1ZhbCAlIDEgPT09IDA7XG4gIH1cblxuICByZXR1cm4gdmFsaWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5kb3VibGUgPSBtb2R1bGUuZXhwb3J0cy5mbG9hdCA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgdmFyIHZhbGlkID0gdHJ1ZTtcblxuICBpZiAoIV8uaXNOdW1iZXIodmFsKSkge1xuICAgIHRyeSB7XG4gICAgICBwYXJzZUZsb2F0KHZhbCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB2YWxpZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzLmJ5dGUgPSBmdW5jdGlvbiAodmFsKSB7XG4gIC8vIFRPRE86IFdlIGNvdWxkIGRvIG1vcmUgaGVyZSBzaW5jZSB0ZWNobmljYWxseSAnYnl0ZScgbWVhbnMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmdcbiAgcmV0dXJuIF8uaXNTdHJpbmcodmFsKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLnBhc3N3b3JkID0gZnVuY3Rpb24gKHZhbCkge1xuICByZXR1cm4gXy5pc1N0cmluZyh2YWwpO1xufTtcbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gcmVxdWlyZSgnbG9kYXNoLWNvbXBhdCcpO1xudmFyIGZvcm1hdEdlbmVyYXRvcnMgPSByZXF1aXJlKCcuL2Zvcm1hdC1nZW5lcmF0b3JzJyk7XG52YXIgdmFsaWRhdG9ycyA9IHJlcXVpcmUoJy4vdmFsaWRhdG9ycycpO1xudmFyIGhlbHBlcnMgPSByZXF1aXJlKCcuLi8uLi9oZWxwZXJzJyk7XG52YXIgSnNvblJlZnMgPSByZXF1aXJlKCdqc29uLXJlZnMnKTtcbnZhciB0eXBlcyA9IHJlcXVpcmUoJy4uLy4uL3R5cGVzJyk7XG5cbnZhciBkb2NzVXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kJztcbnZhciBtb2NrZXIgPSBoZWxwZXJzLmNyZWF0ZUpTT05TY2hlbWFNb2NrZXIoe1xuICBmb3JtYXRHZW5lcmF0b3JzOiBmb3JtYXRHZW5lcmF0b3JzXG59KTtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI3BhcmFtZXRlci1vYmplY3RcbnZhciBwYXJhbWV0ZXJTY2hlbWFQcm9wZXJ0aWVzID0gW1xuICAnZGVmYXVsdCcsXG4gICdkZXNjcmlwdGlvbicsXG4gICdlbnVtJyxcbiAgJ2V4Y2x1c2l2ZU1heGltdW0nLFxuICAnZXhjbHVzaXZlTWluaW11bScsXG4gICdmb3JtYXQnLFxuICAnaXRlbXMnLFxuICAnbWF4SXRlbXMnLFxuICAnbWF4TGVuZ3RoJyxcbiAgJ21heGltdW0nLFxuICAnbWluSXRlbXMnLFxuICAnbWluTGVuZ3RoJyxcbiAgJ21pbmltdW0nLFxuICAnbXVsdGlwbGVPZicsXG4gICdwYXR0ZXJuJyxcbiAgJ3R5cGUnLFxuICAndW5pcXVlSXRlbXMnXG5dO1xudmFyIHN1cHBvcnRlZEh0dHBNZXRob2RzID0gWydnZXQnLCAncHV0JywgJ3Bvc3QnLCAnZGVsZXRlJywgJ29wdGlvbnMnLCAnaGVhZCcsICdwYXRjaCddO1xudmFyIHZlcnNpb24gPSAnMi4wJztcblxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyU2NoZW1hIChwYXJhbWV0ZXIpIHtcbiAgdmFyIHNjaGVtYTtcblxuICBpZiAoXy5pc1VuZGVmaW5lZChwYXJhbWV0ZXIuc2NoZW1hKSkge1xuICAgIHNjaGVtYSA9IHt9O1xuXG4gICAgLy8gQnVpbGQgdGhlIHNjaGVtYSBmcm9tIHRoZSBzY2hlbWEtbGlrZSBwYXJhbWV0ZXIgc3RydWN0dXJlXG4gICAgXy5lYWNoKHBhcmFtZXRlclNjaGVtYVByb3BlcnRpZXMsIGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQocGFyYW1ldGVyW25hbWVdKSkge1xuICAgICAgICBzY2hlbWFbbmFtZV0gPSBwYXJhbWV0ZXJbbmFtZV07XG4gICAgICB9XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgc2NoZW1hID0gcGFyYW1ldGVyLnNjaGVtYTtcbiAgfVxuXG4gIHJldHVybiBzY2hlbWE7XG59XG5cbi8vIFRoZSBVUkwgdG8gdGhlIFN3YWdnZXIgMi4wIGRvY3VtZW50YXRpb25cbm1vZHVsZS5leHBvcnRzLmRvY3VtZW50YXRpb24gPSBkb2NzVXJsO1xuXG4vLyBUaGUgYXJyYXkgb2Ygc3VwcG9ydGVkIEhUVFAgbWV0aG9kcyBmb3IgZWFjaCBwYXRoXG5tb2R1bGUuZXhwb3J0cy5zdXBwb3J0ZWRIdHRwTWV0aG9kcyA9IHN1cHBvcnRlZEh0dHBNZXRob2RzO1xuXG4vLyBUaGUgdmVyc2lvbiBmb3IgdGhpcyBTd2FnZ2VyIHZlcnNpb25cbm1vZHVsZS5leHBvcnRzLnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHByb3ZpZGVkIGRlZmluaXRpb24gY2FuIGJlIHByb2Nlc3NlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmaW5pdGlvbiAtIFRoZSBwb3RlbnRpYWwgU3dhZ2dlciBkZWZpbml0aW9uIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIG9ubHkgaWYgdGhlIGRlZmluaXRpb24gcmVwcmVzZW50cyBhIFN3YWdnZXIgMi4wIGRlZmluaXRpb25cbiAqL1xubW9kdWxlLmV4cG9ydHMuY2FuUHJvY2VzcyA9IGZ1bmN0aW9uIChkZWZpbml0aW9uKSB7XG4gIHJldHVybiBkZWZpbml0aW9uLnN3YWdnZXIgPT09IHZlcnNpb247XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTd2FnZ2VyQXBpIG9iamVjdCBmcm9tIHRoZSBwcm92aWRlZCBTd2FnZ2VyIGRlZmluaXRpb24uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGRlZmluaXRpb24gLSBUaGUgU3dhZ2dlciBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHBhc3NlZCB0byBzd2FnZ2VyQXBpLmNyZWF0ZVxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0aGUgU3dhZ2dlckFwaSBhZnRlciBwcm9jZXNzaW5nXG4gKi9cbm1vZHVsZS5leHBvcnRzLmNyZWF0ZVN3YWdnZXJBcGkgPSBmdW5jdGlvbiAoZGVmaW5pdGlvbiwgb3B0aW9ucykge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIEpzb25SZWZzLnJlc29sdmVSZWZzKGRlZmluaXRpb24sIG9wdGlvbnMubG9hZGVyT3B0aW9ucyB8fCB7fSwgZnVuY3Rpb24gKGVyciwgcmVzb2x2ZWQsIG1ldGFkYXRhKSB7XG4gICAgICB2YXIgYXBpO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcGkgPSBuZXcgdHlwZXMuU3dhZ2dlckFwaShtb2R1bGUuZXhwb3J0cywgZGVmaW5pdGlvbiwgcmVzb2x2ZWQsIG1ldGFkYXRhLCBvcHRpb25zKTtcblxuICAgICAgICByZXNvbHZlKGFwaSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdXNlZCB0byB2YWxpZGF0ZSBTd2FnZ2VyIDIuMCBkb2N1bWVudHMgYWdhaW5zdCBpdHMgSlNPTiBTY2hlbWEuXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBUaGUgdmFsaWRhdG9yIHRvIHVzZVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRKU09OU2NoZW1hVmFsaWRhdG9yID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdmFsaWRhdG9ycy5qc29uU2NoZW1hVmFsaWRhdG9yO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIE9wZXJhdGlvbiBvYmplY3RzIGZvciBlYWNoIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBTd2FnZ2VyIGRvY3VtZW50XG4gKlxuICogQHBhcmFtIHt0eXBlcy5Td2FnZ2VyQXBpfSBhcGkgLSBUaGUgU3dhZ2dlciBBUEkgb2JqZWN0XG4gKlxuICogQHJldHVybnMge3R5cGVzLk9wZXJhdGlvbltdfSBUaGUgT3BlcmF0aW9uIG9iamVjdCBhcnJheVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRPcGVyYXRpb25zID0gZnVuY3Rpb24gKGFwaSkge1xuICB2YXIgb3BlcmF0aW9ucyA9IFtdO1xuXG4gIF8uZm9yRWFjaChhcGkucmVzb2x2ZWQucGF0aHMsIGZ1bmN0aW9uIChwYXRoRGVmLCBwYXRoKSB7XG4gICAgdmFyIHBQYXRoID0gWydwYXRocycsIHBhdGhdO1xuICAgIHZhciBwUGFyYW1zID0gXy5yZWR1Y2UocGF0aERlZi5wYXJhbWV0ZXJzIHx8IHt9LCBmdW5jdGlvbiAocGFyYW1ldGVycywgcGFyYW1EZWYsIGluZGV4KSB7XG4gICAgICBwYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWUgKyAnOicgKyBwYXJhbURlZi5pbl0gPSB7XG4gICAgICAgIHBhdGg6IHBQYXRoLmNvbmNhdChbJ3BhcmFtZXRlcnMnLCBpbmRleC50b1N0cmluZygpXSksXG4gICAgICAgIGRlZmluaXRpb246IHBhcmFtRGVmXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9LCB7fSk7XG5cbiAgICBfLmZvckVhY2gocGF0aERlZiwgZnVuY3Rpb24gKG9wZXJhdGlvbiwgbWV0aG9kKSB7XG4gICAgICAvLyBEbyBub3QgcHJvY2VzcyBub24tb3BlcmF0aW9uc1xuICAgICAgaWYgKF8uaW5kZXhPZihzdXBwb3J0ZWRIdHRwTWV0aG9kcywgbWV0aG9kKSA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgY09wZXJhdGlvbiA9IF8uY2xvbmVEZWVwKG9wZXJhdGlvbik7IC8vIENsb25lIHNvIHdlIGRvIG5vdCBhbHRlciB0aGUgaW5wdXRcbiAgICAgIHZhciBvUGFyYW1zID0ge307IC8vIFVzZWQgdG8ga2VlcCB0cmFjayBvZiB1bmlxdWUgcGFyYW1ldGVyc1xuICAgICAgdmFyIG9QYXRoID0gcFBhdGguY29uY2F0KG1ldGhvZCk7XG5cbiAgICAgIC8vIEFkZCBwYXRoIHBhcmFtZXRlcnNcbiAgICAgIF8uZm9yRWFjaChwUGFyYW1zLCBmdW5jdGlvbiAocFBhcmFtLCBrZXkpIHtcbiAgICAgICAgb1BhcmFtc1trZXldID0gcFBhcmFtO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEFkZCBvcGVyYXRpb24gcGFyYW1ldGVycyAoT3ZlcnJpZGVzIHBhdGgtbGV2ZWwgcGFyYW1ldGVycyBvZiBzYW1lIG5hbWUraW4gY29tYmluYXRpb24pXG4gICAgICBfLmZvckVhY2gob3BlcmF0aW9uLnBhcmFtZXRlcnMsIGZ1bmN0aW9uIChwYXJhbURlZiwgaW5kZXgpIHtcbiAgICAgICAgb1BhcmFtc1twYXJhbURlZi5uYW1lICsgJzonICsgcGFyYW1EZWYuaW5dID0ge1xuICAgICAgICAgIHBhdGg6IG9QYXRoLmNvbmNhdChbJ3BhcmFtZXRlcnMnLCBpbmRleC50b1N0cmluZygpXSksXG4gICAgICAgICAgZGVmaW5pdGlvbjogcGFyYW1EZWZcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBBdHRhY2ggb3VyIGNvbXB1dGVkIHBhcmFtZXRlcnMvc2VjdXJpdHkgdG8gdGhlIG9wZXJhdGlvblxuICAgICAgY09wZXJhdGlvbi5wYXJhbWV0ZXJzID0gXy5tYXAoXy52YWx1ZXMob1BhcmFtcyksIGZ1bmN0aW9uIChwYXJhbWV0ZXIpIHtcbiAgICAgICAgLy8gVXNlZCBsYXRlciBieSBnZXRPcGVyYXRpb25QYXJhbWV0ZXJzIHRvIGNpcmN1bXZlbnQgdGhlIGNoaWNrZW4vZWdnIHNpdHVhdGlvbiAoUmVtb3ZlZCB0aGVyZSBhcyB3ZWxsKVxuICAgICAgICBwYXJhbWV0ZXIuZGVmaW5pdGlvbi4kJCRwdHIkJCQgPSBKc29uUmVmcy5wYXRoVG9Qb2ludGVyKHBhcmFtZXRlci5wYXRoKTtcblxuICAgICAgICByZXR1cm4gcGFyYW1ldGVyLmRlZmluaXRpb247XG4gICAgICB9KTtcblxuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChjT3BlcmF0aW9uLnNlY3VyaXR5KSkge1xuICAgICAgICBjT3BlcmF0aW9uLnNlY3VyaXR5ID0gYXBpLnJlc29sdmVkLnNlY3VyaXR5O1xuICAgICAgfVxuXG4gICAgICBvcGVyYXRpb25zLnB1c2gobmV3IHR5cGVzLk9wZXJhdGlvbihhcGksIHBhdGgsIG1ldGhvZCwgSnNvblJlZnMucGF0aFRvUG9pbnRlcihvUGF0aCksIGNPcGVyYXRpb24pKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG9wZXJhdGlvbnM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gYXJyYXkgb2YgUGFyYW1ldGVyIG9iamVjdHMgZm9yIHRoZSBwcm92aWNlZCBPcGVyYXRpb24uXG4gKlxuICogQHBhcmFtIHt0eXBlcy5PcGVyYXRpb259IG9wZXJhdGlvbiAtIFRoZSBPcGVyYXRpb24gb2JqZWN0XG4gKlxuICogQHJldHVybnMge3R5cGVzLlBhcmFtZXRlcltdfSBUaGUgUGFyYW1ldGVyIG9iamVjdCBhcnJheVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRPcGVyYXRpb25QYXJhbWV0ZXJzID0gZnVuY3Rpb24gKG9wZXJhdGlvbikge1xuICByZXR1cm4gXy5tYXAob3BlcmF0aW9uLnBhcmFtZXRlcnMsIGZ1bmN0aW9uIChwYXJhbURlZikge1xuICAgIHZhciBwdHIgPSBwYXJhbURlZi4kJCRwdHIkJCQ7XG5cbiAgICAvLyBSZW1vdmUgc28gd2UgZG8gbm90IGhhdmUgdGhlc2UgcHJvcGVydGllcyBsaXRlcmVkIHRocm91Z2hvdXQgdGhlIGRvY3VtZW50XG4gICAgZGVsZXRlIHBhcmFtRGVmLiQkJHB0ciQkJDtcblxuICAgIHJldHVybiBuZXcgdHlwZXMuUGFyYW1ldGVyKG9wZXJhdGlvbiwgcHRyLCBwYXJhbURlZiwgZ2V0UGFyYW1ldGVyU2NoZW1hKHBhcmFtRGVmKSk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc2FtcGxlIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgSlNPTiBTY2hlbWEuXG4gKlxuICogQHBhcmFtIHsqfSBzY2hlbWEgLSBUaGUgSlNPTiBTY2hlbWFcbiAqXG4gKiBAcmV0dXJucyB7Kn0gVGhlIHNhbXBsZSB2YWx1ZVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRTYW1wbGUgPSBmdW5jdGlvbiAoc2NoZW1hKSB7XG4gIHJldHVybiBtb2NrZXIoc2NoZW1hKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBmdW5jdGlvbnMgdXNlZCB0byB2YWxpZGF0ZSBTd2FnZ2VyIDIuMCBkb2N1bWVudHMgc2VtYW50aWNhbGx5LlxuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbltdfSBUaGUgdmFsaWRhdG9ycyB0byB1c2VcbiAqL1xubW9kdWxlLmV4cG9ydHMuZ2V0U2VtYW50aWNWYWxpZGF0b3JzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdmFsaWRhdG9ycy5zZW1hbnRpY1ZhbGlkYXRvcnM7XG59O1xuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInRpdGxlXCI6IFwiQSBKU09OIFNjaGVtYSBmb3IgU3dhZ2dlciAyLjAgQVBJLlwiLFxuICBcImlkXCI6IFwiaHR0cDovL3N3YWdnZXIuaW8vdjIvc2NoZW1hLmpzb24jXCIsXG4gIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiLFxuICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgXCJyZXF1aXJlZFwiOiBbXG4gICAgXCJzd2FnZ2VyXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJwYXRoc1wiXG4gIF0sXG4gIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgIFwiXngtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICB9XG4gIH0sXG4gIFwicHJvcGVydGllc1wiOiB7XG4gICAgXCJzd2FnZ2VyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgXCIyLjBcIlxuICAgICAgXSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgU3dhZ2dlciB2ZXJzaW9uIG9mIHRoaXMgZG9jdW1lbnQuXCJcbiAgICB9LFxuICAgIFwiaW5mb1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luZm9cIlxuICAgIH0sXG4gICAgXCJob3N0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIixcbiAgICAgIFwicGF0dGVyblwiOiBcIl5bXnt9LyA6XFxcXFxcXFxdKyg/OjpcXFxcZCspPyRcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgZnVsbHkgcXVhbGlmaWVkIFVSSSB0byB0aGUgaG9zdCBvZiB0aGUgQVBJLlwiXG4gICAgfSxcbiAgICBcImJhc2VQYXRoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJwYXR0ZXJuXCI6IFwiXi9cIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgYmFzZSBwYXRoIHRvIHRoZSBBUEkuIEV4YW1wbGU6ICcvYXBpJy5cIlxuICAgIH0sXG4gICAgXCJzY2hlbWVzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1lc0xpc3RcIlxuICAgIH0sXG4gICAgXCJjb25zdW1lc1wiOiB7XG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIE1JTUUgdHlwZXMgYWNjZXB0ZWQgYnkgdGhlIEFQSS5cIixcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWVkaWFUeXBlTGlzdFwiXG4gICAgfSxcbiAgICBcInByb2R1Y2VzXCI6IHtcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgTUlNRSB0eXBlcyB0aGUgQVBJIGNhbiBwcm9kdWNlLlwiLFxuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tZWRpYVR5cGVMaXN0XCJcbiAgICB9LFxuICAgIFwicGF0aHNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXRoc1wiXG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmaW5pdGlvbnNcIlxuICAgIH0sXG4gICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyRGVmaW5pdGlvbnNcIlxuICAgIH0sXG4gICAgXCJyZXNwb25zZXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZURlZmluaXRpb25zXCJcbiAgICB9LFxuICAgIFwic2VjdXJpdHlcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eVwiXG4gICAgfSxcbiAgICBcInNlY3VyaXR5RGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eURlZmluaXRpb25zXCJcbiAgICB9LFxuICAgIFwidGFnc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdGFnXCJcbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwiZXh0ZXJuYWxEb2NzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXh0ZXJuYWxEb2NzXCJcbiAgICB9XG4gIH0sXG4gIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgIFwiaW5mb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBBUEkuXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ2ZXJzaW9uXCIsXG4gICAgICAgIFwidGl0bGVcIlxuICAgICAgXSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidGl0bGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIHVuaXF1ZSBhbmQgcHJlY2lzZSB0aXRsZSBvZiB0aGUgQVBJLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIgb2YgdGhlIEFQSS5cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsb25nZXIgZGVzY3JpcHRpb24gb2YgdGhlIEFQSS4gU2hvdWxkIGJlIGRpZmZlcmVudCBmcm9tIHRoZSB0aXRsZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGVybXNPZlNlcnZpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgdGVybXMgb2Ygc2VydmljZSBmb3IgdGhlIEFQSS5cIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbnRhY3RcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29udGFjdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGljZW5zZVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9saWNlbnNlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJjb250YWN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbnRhY3QgaW5mb3JtYXRpb24gZm9yIHRoZSBvd25lcnMgb2YgdGhlIEFQSS5cIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgaWRlbnRpZnlpbmcgbmFtZSBvZiB0aGUgY29udGFjdCBwZXJzb24vb3JnYW5pemF0aW9uLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIFVSTCBwb2ludGluZyB0byB0aGUgY29udGFjdCBpbmZvcm1hdGlvbi5cIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW1haWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgY29udGFjdCBwZXJzb24vb3JnYW5pemF0aW9uLlwiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwiZW1haWxcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcImxpY2Vuc2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJuYW1lXCJcbiAgICAgIF0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIGxpY2Vuc2UgdHlwZS4gSXQncyBlbmNvdXJhZ2VkIHRvIHVzZSBhbiBPU0kgY29tcGF0aWJsZSBsaWNlbnNlLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIFVSTCBwb2ludGluZyB0byB0aGUgbGljZW5zZS5cIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicGF0aHNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVsYXRpdmUgcGF0aHMgdG8gdGhlIGluZGl2aWR1YWwgZW5kcG9pbnRzLiBUaGV5IG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlICdiYXNlUGF0aCcuXCIsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJeL1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXRoSXRlbVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgIH0sXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiT25lIG9yIG1vcmUgSlNPTiBvYmplY3RzIGRlc2NyaWJpbmcgdGhlIHNjaGVtYXMgYmVpbmcgY29uc3VtZWQgYW5kIHByb2R1Y2VkIGJ5IHRoZSBBUEkuXCJcbiAgICB9LFxuICAgIFwicGFyYW1ldGVyRGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbWV0ZXJcIlxuICAgICAgfSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJPbmUgb3IgbW9yZSBKU09OIHJlcHJlc2VudGF0aW9ucyBmb3IgcGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcInJlc3BvbnNlRGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZVwiXG4gICAgICB9LFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk9uZSBvciBtb3JlIEpTT04gcmVwcmVzZW50YXRpb25zIGZvciBwYXJhbWV0ZXJzXCJcbiAgICB9LFxuICAgIFwiZXh0ZXJuYWxEb2NzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpbmZvcm1hdGlvbiBhYm91dCBleHRlcm5hbCBkb2N1bWVudGF0aW9uXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ1cmxcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiZXhhbXBsZXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeW2EtejAtOS1dKy9bYS16MC05XFxcXC0rXSskXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJtaW1lVHlwZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgTUlNRSB0eXBlIG9mIHRoZSBIVFRQIG1lc3NhZ2UuXCJcbiAgICB9LFxuICAgIFwib3BlcmF0aW9uXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwicmVzcG9uc2VzXCJcbiAgICAgIF0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwic3VtbWFyeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgc3VtbWFyeSBvZiB0aGUgb3BlcmF0aW9uLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxvbmdlciBkZXNjcmlwdGlvbiBvZiB0aGUgb3BlcmF0aW9uLCBnaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4dGVybmFsRG9jc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leHRlcm5hbERvY3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIm9wZXJhdGlvbklkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBmcmllbmRseSBuYW1lIG9mIHRoZSBvcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInByb2R1Y2VzXCI6IHtcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIE1JTUUgdHlwZXMgdGhlIEFQSSBjYW4gcHJvZHVjZS5cIixcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21lZGlhVHlwZUxpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbnN1bWVzXCI6IHtcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIE1JTUUgdHlwZXMgdGhlIEFQSSBjYW4gY29uc3VtZS5cIixcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21lZGlhVHlwZUxpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyc0xpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInNjaGVtZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1lc0xpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZWN1cml0eVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicGF0aEl0ZW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2V0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHV0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicG9zdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlbGV0ZVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIm9wdGlvbnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJoZWFkXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0Y2hcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFtZXRlcnNMaXN0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJyZXNwb25zZXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVzcG9uc2Ugb2JqZWN0cyBuYW1lcyBjYW4gZWl0aGVyIGJlIGFueSB2YWxpZCBIVFRQIHN0YXR1cyBjb2RlIG9yICdkZWZhdWx0Jy5cIixcbiAgICAgIFwibWluUHJvcGVydGllc1wiOiAxLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl4oWzAtOV17M30pJHxeKGRlZmF1bHQpJFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZVZhbHVlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwibm90XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicmVzcG9uc2VWYWx1ZVwiOiB7XG4gICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmVzcG9uc2VcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qc29uUmVmZXJlbmNlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJyZXNwb25zZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcImRlc2NyaXB0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInNjaGVtYVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICB9LFxuICAgICAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaGVhZGVyc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhhbXBsZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhhbXBsZXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJoZWFkZXJzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaGVhZGVyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiaGVhZGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiYXJyYXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJ2ZW5kb3JFeHRlbnNpb25cIjoge1xuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkFueSBwcm9wZXJ0eSBzdGFydGluZyB3aXRoIHgtIGlzIHZhbGlkLlwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJhZGRpdGlvbmFsSXRlbXNcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJib2R5UGFyYW1ldGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiLFxuICAgICAgICBcImluXCIsXG4gICAgICAgIFwic2NoZW1hXCJcbiAgICAgIF0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZiB1c2UuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGFyYW1ldGVyLlwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImJvZHlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcInNjaGVtYVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJoZWFkZXJQYXJhbWV0ZXJTdWJTY2hlbWFcIjoge1xuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcImluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB0aGUgbG9jYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJoZWFkZXJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJhcnJheVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInF1ZXJ5UGFyYW1ldGVyU3ViU2NoZW1hXCI6IHtcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBvciBvcHRpb25hbC5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwicXVlcnlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxvd0VtcHR5VmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2UsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbG93cyBzZW5kaW5nIGEgcGFyYW1ldGVyIGJ5IG5hbWUgb25seSBvciB3aXRoIGFuIGVtcHR5IHZhbHVlLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYXJyYXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRXaXRoTXVsdGlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJmb3JtRGF0YVBhcmFtZXRlclN1YlNjaGVtYVwiOiB7XG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGFyYW1ldGVyLlwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImZvcm1EYXRhXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZiB1c2UuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxsb3dFbXB0eVZhbHVlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGxvd3Mgc2VuZGluZyBhIHBhcmFtZXRlciBieSBuYW1lIG9ubHkgb3Igd2l0aCBhbiBlbXB0eSB2YWx1ZS5cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICBcImZpbGVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRXaXRoTXVsdGlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJwYXRoUGFyYW1ldGVyU3ViU2NoZW1hXCI6IHtcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwicGF0aFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVyLiBUaGlzIGNvdWxkIGNvbnRhaW4gZXhhbXBsZXMgb2YgdXNlLiAgR2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImFycmF5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ByaW1pdGl2ZXNJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb2xsZWN0aW9uRm9ybWF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heExlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkxlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwibm9uQm9keVBhcmFtZXRlclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgXCJpblwiLFxuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9oZWFkZXJQYXJhbWV0ZXJTdWJTY2hlbWFcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9mb3JtRGF0YVBhcmFtZXRlclN1YlNjaGVtYVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3F1ZXJ5UGFyYW1ldGVyU3ViU2NoZW1hXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0aFBhcmFtZXRlclN1YlNjaGVtYVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwicGFyYW1ldGVyXCI6IHtcbiAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ib2R5UGFyYW1ldGVyXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbm9uQm9keVBhcmFtZXRlclwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwic2NoZW1hXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgZGV0ZXJtaW5pc3RpYyB2ZXJzaW9uIG9mIGEgSlNPTiBTY2hlbWEgb2JqZWN0LlwiLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy90aXRsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9hZGRpdGlvbmFsUHJvcGVydGllc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvdHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxsT2ZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImRpc2NyaW1pbmF0b3JcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJ4bWxcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMveG1sXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleHRlcm5hbERvY3NcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXh0ZXJuYWxEb2NzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGFtcGxlXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJwcmltaXRpdmVzSXRlbXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJhcnJheVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eVJlcXVpcmVtZW50XCJcbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwic2VjdXJpdHlSZXF1aXJlbWVudFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIFwieG1sXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJlZml4XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcIndyYXBwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJ0YWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4dGVybmFsRG9jc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leHRlcm5hbERvY3NcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwic2VjdXJpdHlEZWZpbml0aW9uc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2Jhc2ljQXV0aGVudGljYXRpb25TZWN1cml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FwaUtleVNlY3VyaXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgySW1wbGljaXRTZWN1cml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMlBhc3N3b3JkU2VjdXJpdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJBcHBsaWNhdGlvblNlY3VyaXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyQWNjZXNzQ29kZVNlY3VyaXR5XCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiYmFzaWNBdXRoZW50aWNhdGlvblNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYmFzaWNcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcImFwaUtleVNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwiaW5cIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYXBpS2V5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcInF1ZXJ5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJvYXV0aDJJbXBsaWNpdFNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJmbG93XCIsXG4gICAgICAgIFwiYXV0aG9yaXphdGlvblVybFwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJvYXV0aDJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmbG93XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJpbXBsaWNpdFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJTY29wZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhvcml6YXRpb25VcmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm9hdXRoMlBhc3N3b3JkU2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcImZsb3dcIixcbiAgICAgICAgXCJ0b2tlblVybFwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJvYXV0aDJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmbG93XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJwYXNzd29yZFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJTY29wZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInRva2VuVXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJvYXV0aDJBcHBsaWNhdGlvblNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJmbG93XCIsXG4gICAgICAgIFwidG9rZW5VcmxcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwib2F1dGgyXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmxvd1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYXBwbGljYXRpb25cIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyU2NvcGVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0b2tlblVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwib2F1dGgyQWNjZXNzQ29kZVNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJmbG93XCIsXG4gICAgICAgIFwiYXV0aG9yaXphdGlvblVybFwiLFxuICAgICAgICBcInRva2VuVXJsXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcIm9hdXRoMlwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZsb3dcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImFjY2Vzc0NvZGVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyU2NvcGVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRob3JpemF0aW9uVXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidG9rZW5VcmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm9hdXRoMlNjb3Blc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJtZWRpYVR5cGVMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW1lVHlwZVwiXG4gICAgICB9LFxuICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcInBhcmFtZXRlcnNMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIHBhcmFtZXRlcnMgbmVlZGVkIHRvIHNlbmQgYSB2YWxpZCBBUEkgY2FsbC5cIixcbiAgICAgIFwiYWRkaXRpb25hbEl0ZW1zXCI6IGZhbHNlLFxuICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvanNvblJlZmVyZW5jZVwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcInNjaGVtZXNMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIHRyYW5zZmVyIHByb3RvY29sIG9mIHRoZSBBUEkuXCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgXCJodHRwXCIsXG4gICAgICAgICAgXCJodHRwc1wiLFxuICAgICAgICAgIFwid3NcIixcbiAgICAgICAgICBcIndzc1wiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgIFwiY3N2XCIsXG4gICAgICAgIFwic3N2XCIsXG4gICAgICAgIFwidHN2XCIsXG4gICAgICAgIFwicGlwZXNcIlxuICAgICAgXSxcbiAgICAgIFwiZGVmYXVsdFwiOiBcImNzdlwiXG4gICAgfSxcbiAgICBcImNvbGxlY3Rpb25Gb3JtYXRXaXRoTXVsdGlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcImVudW1cIjogW1xuICAgICAgICBcImNzdlwiLFxuICAgICAgICBcInNzdlwiLFxuICAgICAgICBcInRzdlwiLFxuICAgICAgICBcInBpcGVzXCIsXG4gICAgICAgIFwibXVsdGlcIlxuICAgICAgXSxcbiAgICAgIFwiZGVmYXVsdFwiOiBcImNzdlwiXG4gICAgfSxcbiAgICBcInRpdGxlXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3RpdGxlXCJcbiAgICB9LFxuICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZGVzY3JpcHRpb25cIlxuICAgIH0sXG4gICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2RlZmF1bHRcIlxuICAgIH0sXG4gICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL211bHRpcGxlT2ZcIlxuICAgIH0sXG4gICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL21heGltdW1cIlxuICAgIH0sXG4gICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgIH0sXG4gICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL21pbmltdW1cIlxuICAgIH0sXG4gICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgIH0sXG4gICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiXG4gICAgfSxcbiAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIlxuICAgIH0sXG4gICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3BhdHRlcm5cIlxuICAgIH0sXG4gICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCJcbiAgICB9LFxuICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCJcbiAgICB9LFxuICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvdW5pcXVlSXRlbXNcIlxuICAgIH0sXG4gICAgXCJlbnVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2VudW1cIlxuICAgIH0sXG4gICAgXCJqc29uUmVmZXJlbmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBjdXN0b21Gb3JtYXRWYWxpZGF0b3JzID0gcmVxdWlyZSgnLi9mb3JtYXQtdmFsaWRhdG9ycycpO1xudmFyIGhlbHBlcnMgPSByZXF1aXJlKCcuLi8uLi9oZWxwZXJzJyk7XG52YXIgc3dhZ2dlclNjaGVtYSA9IHJlcXVpcmUoJy4vc2NoZW1hLmpzb24nKTtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHJlc29sdmVkIFN3YWdnZXIgZG9jdW1lbnQgYWdhaW5zdCB0aGUgU3dhZ2dlciAyLjAgSlNPTiBTY2hlbWEuXG4gKlxuICogQHBhcmFtIHtTd2FnZ2VyQXBpfSBhcGkgLSBUaGUgU3dhZ2dlckFwaSBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBPYmplY3QgY29udGFpbmluZyB0aGUgZXJyb3JzIGFuZCB3YXJuaW5ncyBvZiB0aGUgdmFsaWRhdGlvblxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVN0cnVjdHVyZSAoYXBpKSB7XG4gIHJldHVybiBoZWxwZXJzLnZhbGlkYXRlQWdhaW5zdFNjaGVtYShoZWxwZXJzLmNyZWF0ZUpTT05WYWxpZGF0b3Ioe1xuICAgIGZvcm1hdFZhbGlkYXRvcnM6IGN1c3RvbUZvcm1hdFZhbGlkYXRvcnNcbiAgfSksIHN3YWdnZXJTY2hlbWEsIGFwaS5yZXNvbHZlZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBqc29uU2NoZW1hVmFsaWRhdG9yOiB2YWxpZGF0ZVN0cnVjdHVyZSxcbiAgc2VtYW50aWNWYWxpZGF0b3JzOiBbXG5cbiAgXVxufTtcbiIsbnVsbCwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzLWFycmF5JylcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbnZhciBrTWF4TGVuZ3RoID0gMHgzZmZmZmZmZlxudmFyIHJvb3RQYXJlbnQgPSB7fVxuXG4vKipcbiAqIElmIGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGA6XG4gKiAgID09PSB0cnVlICAgIFVzZSBVaW50OEFycmF5IGltcGxlbWVudGF0aW9uIChmYXN0ZXN0KVxuICogICA9PT0gZmFsc2UgICBVc2UgT2JqZWN0IGltcGxlbWVudGF0aW9uIChtb3N0IGNvbXBhdGlibGUsIGV2ZW4gSUU2KVxuICpcbiAqIEJyb3dzZXJzIHRoYXQgc3VwcG9ydCB0eXBlZCBhcnJheXMgYXJlIElFIDEwKywgRmlyZWZveCA0KywgQ2hyb21lIDcrLCBTYWZhcmkgNS4xKyxcbiAqIE9wZXJhIDExLjYrLCBpT1MgNC4yKy5cbiAqXG4gKiBOb3RlOlxuICpcbiAqIC0gSW1wbGVtZW50YXRpb24gbXVzdCBzdXBwb3J0IGFkZGluZyBuZXcgcHJvcGVydGllcyB0byBgVWludDhBcnJheWAgaW5zdGFuY2VzLlxuICogICBGaXJlZm94IDQtMjkgbGFja2VkIHN1cHBvcnQsIGZpeGVkIGluIEZpcmVmb3ggMzArLlxuICogICBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQzOC5cbiAqXG4gKiAgLSBDaHJvbWUgOS0xMCBpcyBtaXNzaW5nIHRoZSBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uLlxuICpcbiAqICAtIElFMTAgaGFzIGEgYnJva2VuIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhcnJheXMgb2ZcbiAqICAgIGluY29ycmVjdCBsZW5ndGggaW4gc29tZSBzaXR1YXRpb25zLlxuICpcbiAqIFdlIGRldGVjdCB0aGVzZSBidWdneSBicm93c2VycyBhbmQgc2V0IGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGAgdG8gYGZhbHNlYCBzbyB0aGV5IHdpbGxcbiAqIGdldCB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyBzbG93ZXIgYnV0IHdpbGwgd29yayBjb3JyZWN0bHkuXG4gKi9cbkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gKGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgYnVmID0gbmV3IEFycmF5QnVmZmVyKDApXG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KGJ1ZilcbiAgICBhcnIuZm9vID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNDIgfVxuICAgIHJldHVybiBhcnIuZm9vKCkgPT09IDQyICYmIC8vIHR5cGVkIGFycmF5IGluc3RhbmNlcyBjYW4gYmUgYXVnbWVudGVkXG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgJiYgLy8gY2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gICAgICAgIG5ldyBVaW50OEFycmF5KDEpLnN1YmFycmF5KDEsIDEpLmJ5dGVMZW5ndGggPT09IDAgLy8gaWUxMCBoYXMgYnJva2VuIGBzdWJhcnJheWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59KSgpXG5cbi8qKlxuICogQ2xhc3M6IEJ1ZmZlclxuICogPT09PT09PT09PT09PVxuICpcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgYXJlIGF1Z21lbnRlZFxuICogd2l0aCBmdW5jdGlvbiBwcm9wZXJ0aWVzIGZvciBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgQVBJIGZ1bmN0aW9ucy4gV2UgdXNlXG4gKiBgVWludDhBcnJheWAgc28gdGhhdCBzcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdCByZXR1cm5zXG4gKiBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBCeSBhdWdtZW50aW5nIHRoZSBpbnN0YW5jZXMsIHdlIGNhbiBhdm9pZCBtb2RpZnlpbmcgdGhlIGBVaW50OEFycmF5YFxuICogcHJvdG90eXBlLlxuICovXG5mdW5jdGlvbiBCdWZmZXIgKGFyZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQnVmZmVyKSkge1xuICAgIC8vIEF2b2lkIGdvaW5nIHRocm91Z2ggYW4gQXJndW1lbnRzQWRhcHRvclRyYW1wb2xpbmUgaW4gdGhlIGNvbW1vbiBjYXNlLlxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBhcmd1bWVudHNbMV0pXG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnKVxuICB9XG5cbiAgdGhpcy5sZW5ndGggPSAwXG4gIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkXG5cbiAgLy8gQ29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBmcm9tTnVtYmVyKHRoaXMsIGFyZylcbiAgfVxuXG4gIC8vIFNsaWdodGx5IGxlc3MgY29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoaXMsIGFyZywgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiAndXRmOCcpXG4gIH1cblxuICAvLyBVbnVzdWFsLlxuICByZXR1cm4gZnJvbU9iamVjdCh0aGlzLCBhcmcpXG59XG5cbmZ1bmN0aW9uIGZyb21OdW1iZXIgKHRoYXQsIGxlbmd0aCkge1xuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoIDwgMCA/IDAgOiBjaGVja2VkKGxlbmd0aCkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgdGhhdFtpXSA9IDBcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgLy8gQXNzdW1wdGlvbjogYnl0ZUxlbmd0aCgpIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBrTWF4TGVuZ3RoLlxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcblxuICB0aGF0LndyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHJldHVybiBmcm9tQnVmZmVyKHRoYXQsIG9iamVjdClcblxuICBpZiAoaXNBcnJheShvYmplY3QpKSByZXR1cm4gZnJvbUFycmF5KHRoYXQsIG9iamVjdClcblxuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHN0YXJ0IHdpdGggbnVtYmVyLCBidWZmZXIsIGFycmF5IG9yIHN0cmluZycpXG4gIH1cblxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBvYmplY3QuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbVR5cGVkQXJyYXkodGhhdCwgb2JqZWN0KVxuICB9XG5cbiAgaWYgKG9iamVjdC5sZW5ndGgpIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iamVjdClcblxuICByZXR1cm4gZnJvbUpzb25PYmplY3QodGhhdCwgb2JqZWN0KVxufVxuXG5mdW5jdGlvbiBmcm9tQnVmZmVyICh0aGF0LCBidWZmZXIpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYnVmZmVyLmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGJ1ZmZlci5jb3B5KHRoYXQsIDAsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5ICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLy8gRHVwbGljYXRlIG9mIGZyb21BcnJheSgpIHRvIGtlZXAgZnJvbUFycmF5KCkgbW9ub21vcnBoaWMuXG5mdW5jdGlvbiBmcm9tVHlwZWRBcnJheSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgLy8gVHJ1bmNhdGluZyB0aGUgZWxlbWVudHMgaXMgcHJvYmFibHkgbm90IHdoYXQgcGVvcGxlIGV4cGVjdCBmcm9tIHR5cGVkXG4gIC8vIGFycmF5cyB3aXRoIEJZVEVTX1BFUl9FTEVNRU5UID4gMSBidXQgaXQncyBjb21wYXRpYmxlIHdpdGggdGhlIGJlaGF2aW9yXG4gIC8vIG9mIHRoZSBvbGQgQnVmZmVyIGNvbnN0cnVjdG9yLlxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5TGlrZSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8vIERlc2VyaWFsaXplIHsgdHlwZTogJ0J1ZmZlcicsIGRhdGE6IFsxLDIsMywuLi5dIH0gaW50byBhIEJ1ZmZlciBvYmplY3QuXG4vLyBSZXR1cm5zIGEgemVyby1sZW5ndGggYnVmZmVyIGZvciBpbnB1dHMgdGhhdCBkb24ndCBjb25mb3JtIHRvIHRoZSBzcGVjLlxuZnVuY3Rpb24gZnJvbUpzb25PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICB2YXIgYXJyYXlcbiAgdmFyIGxlbmd0aCA9IDBcblxuICBpZiAob2JqZWN0LnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqZWN0LmRhdGEpKSB7XG4gICAgYXJyYXkgPSBvYmplY3QuZGF0YVxuICAgIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgfVxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBhbGxvY2F0ZSAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBCdWZmZXIuX2F1Z21lbnQobmV3IFVpbnQ4QXJyYXkobGVuZ3RoKSlcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGF0Ll9pc0J1ZmZlciA9IHRydWVcbiAgfVxuXG4gIHZhciBmcm9tUG9vbCA9IGxlbmd0aCAhPT0gMCAmJiBsZW5ndGggPD0gQnVmZmVyLnBvb2xTaXplID4+PiAxXG4gIGlmIChmcm9tUG9vbCkgdGhhdC5wYXJlbnQgPSByb290UGFyZW50XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGhgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICdzaXplOiAweCcgKyBrTWF4TGVuZ3RoLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKVxuICB9XG4gIHJldHVybiBsZW5ndGggfCAwXG59XG5cbmZ1bmN0aW9uIFNsb3dCdWZmZXIgKHN1YmplY3QsIGVuY29kaW5nKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTbG93QnVmZmVyKSkgcmV0dXJuIG5ldyBTbG93QnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuICBkZWxldGUgYnVmLnBhcmVudFxuICByZXR1cm4gYnVmXG59XG5cbkJ1ZmZlci5pc0J1ZmZlciA9IGZ1bmN0aW9uIGlzQnVmZmVyIChiKSB7XG4gIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpXG59XG5cbkJ1ZmZlci5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYSwgYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihhKSB8fCAhQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIG11c3QgYmUgQnVmZmVycycpXG4gIH1cblxuICBpZiAoYSA9PT0gYikgcmV0dXJuIDBcblxuICB2YXIgeCA9IGEubGVuZ3RoXG4gIHZhciB5ID0gYi5sZW5ndGhcblxuICB2YXIgaSA9IDBcbiAgdmFyIGxlbiA9IE1hdGgubWluKHgsIHkpXG4gIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgaWYgKGFbaV0gIT09IGJbaV0pIGJyZWFrXG5cbiAgICArK2lcbiAgfVxuXG4gIGlmIChpICE9PSBsZW4pIHtcbiAgICB4ID0gYVtpXVxuICAgIHkgPSBiW2ldXG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbkJ1ZmZlci5pc0VuY29kaW5nID0gZnVuY3Rpb24gaXNFbmNvZGluZyAoZW5jb2RpbmcpIHtcbiAgc3dpdGNoIChTdHJpbmcoZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlICdoZXgnOlxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3V0Zi04JzpcbiAgICBjYXNlICdhc2NpaSc6XG4gICAgY2FzZSAnYmluYXJ5JzpcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgIGNhc2UgJ3Jhdyc6XG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldHVybiB0cnVlXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbkJ1ZmZlci5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQgKGxpc3QsIGxlbmd0aCkge1xuICBpZiAoIWlzQXJyYXkobGlzdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2xpc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzLicpXG5cbiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoMClcbiAgfSBlbHNlIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBsaXN0WzBdXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKGxlbmd0aClcbiAgdmFyIHBvcyA9IDBcbiAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV1cbiAgICBpdGVtLmNvcHkoYnVmLCBwb3MpXG4gICAgcG9zICs9IGl0ZW0ubGVuZ3RoXG4gIH1cbiAgcmV0dXJuIGJ1ZlxufVxuXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykgc3RyaW5nID0gU3RyaW5nKHN0cmluZylcblxuICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDBcblxuICBzd2l0Y2ggKGVuY29kaW5nIHx8ICd1dGY4Jykge1xuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdiaW5hcnknOlxuICAgIGNhc2UgJ3Jhdyc6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aCAqIDJcbiAgICBjYXNlICdoZXgnOlxuICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGggPj4+IDFcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgcmV0dXJuIGJhc2U2NFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGhcbiAgfVxufVxuQnVmZmVyLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoXG5cbi8vIHByZS1zZXQgZm9yIHZhbHVlcyB0aGF0IG1heSBleGlzdCBpbiB0aGUgZnV0dXJlXG5CdWZmZXIucHJvdG90eXBlLmxlbmd0aCA9IHVuZGVmaW5lZFxuQnVmZmVyLnByb3RvdHlwZS5wYXJlbnQgPSB1bmRlZmluZWRcblxuLy8gdG9TdHJpbmcoZW5jb2RpbmcsIHN0YXJ0PTAsIGVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nIChlbmNvZGluZywgc3RhcnQsIGVuZCkge1xuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuXG4gIHN0YXJ0ID0gc3RhcnQgfCAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA9PT0gSW5maW5pdHkgPyB0aGlzLmxlbmd0aCA6IGVuZCB8IDBcblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAoZW5kIDw9IHN0YXJ0KSByZXR1cm4gJydcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBiaW5hcnlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbWF4KSBzdHIgKz0gJyAuLi4gJ1xuICB9XG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIDBcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIGluZGV4T2YgKHZhbCwgYnl0ZU9mZnNldCkge1xuICBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIGJ5dGVPZmZzZXQgPSAweDdmZmZmZmZmXG4gIGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAtMHg4MDAwMDAwMCkgYnl0ZU9mZnNldCA9IC0weDgwMDAwMDAwXG4gIGJ5dGVPZmZzZXQgPj49IDBcblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiAtMVxuICBpZiAoYnl0ZU9mZnNldCA+PSB0aGlzLmxlbmd0aCkgcmV0dXJuIC0xXG5cbiAgLy8gTmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBNYXRoLm1heCh0aGlzLmxlbmd0aCArIGJ5dGVPZmZzZXQsIDApXG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHJldHVybiAtMSAvLyBzcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZyBhbHdheXMgZmFpbHNcbiAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgIHJldHVybiBhcnJheUluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZih0aGlzLCBbIHZhbCBdLCBieXRlT2Zmc2V0KVxuICB9XG5cbiAgZnVuY3Rpb24gYXJyYXlJbmRleE9mIChhcnIsIHZhbCwgYnl0ZU9mZnNldCkge1xuICAgIHZhciBmb3VuZEluZGV4ID0gLTFcbiAgICBmb3IgKHZhciBpID0gMDsgYnl0ZU9mZnNldCArIGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJbYnl0ZU9mZnNldCArIGldID09PSB2YWxbZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXhdKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsLmxlbmd0aCkgcmV0dXJuIGJ5dGVPZmZzZXQgKyBmb3VuZEluZGV4XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3VuZEluZGV4ID0gLTFcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG4vLyBgZ2V0YCB3aWxsIGJlIHJlbW92ZWQgaW4gTm9kZSAwLjEzK1xuQnVmZmVyLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiBnZXQgKG9mZnNldCkge1xuICBjb25zb2xlLmxvZygnLmdldCgpIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB1c2luZyBhcnJheSBpbmRleGVzIGluc3RlYWQuJylcbiAgcmV0dXJuIHRoaXMucmVhZFVJbnQ4KG9mZnNldClcbn1cblxuLy8gYHNldGAgd2lsbCBiZSByZW1vdmVkIGluIE5vZGUgMC4xMytcbkJ1ZmZlci5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gc2V0ICh2LCBvZmZzZXQpIHtcbiAgY29uc29sZS5sb2coJy5zZXQoKSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdXNpbmcgYXJyYXkgaW5kZXhlcyBpbnN0ZWFkLicpXG4gIHJldHVybiB0aGlzLndyaXRlVUludDgodiwgb2Zmc2V0KVxufVxuXG5mdW5jdGlvbiBoZXhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDBcbiAgdmFyIHJlbWFpbmluZyA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSBOdW1iZXIobGVuZ3RoKVxuICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHtcbiAgICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICAgIH1cbiAgfVxuXG4gIC8vIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YgZGlnaXRzXG4gIHZhciBzdHJMZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChzdHJMZW4gJSAyICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpXG5cbiAgaWYgKGxlbmd0aCA+IHN0ckxlbiAvIDIpIHtcbiAgICBsZW5ndGggPSBzdHJMZW4gLyAyXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJzZWQgPSBwYXJzZUludChzdHJpbmcuc3Vic3RyKGkgKiAyLCAyKSwgMTYpXG4gICAgaWYgKGlzTmFOKHBhcnNlZCkpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSBwYXJzZWRcbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBhc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGJpbmFyeVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgICBpZiAoaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoIHwgMFxuICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kaW5nID0gbGVuZ3RoXG4gICAgICBsZW5ndGggPSB1bmRlZmluZWRcbiAgICB9XG4gIC8vIGxlZ2FjeSB3cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXQsIGxlbmd0aCkgLSByZW1vdmUgaW4gdjAuMTNcbiAgfSBlbHNlIHtcbiAgICB2YXIgc3dhcCA9IGVuY29kaW5nXG4gICAgZW5jb2RpbmcgPSBvZmZzZXRcbiAgICBvZmZzZXQgPSBsZW5ndGggfCAwXG4gICAgbGVuZ3RoID0gc3dhcFxuICB9XG5cbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBsZW5ndGggPiByZW1haW5pbmcpIGxlbmd0aCA9IHJlbWFpbmluZ1xuXG4gIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2F0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzJylcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBiaW5hcnlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICAvLyBXYXJuaW5nOiBtYXhMZW5ndGggbm90IHRha2VuIGludG8gYWNjb3VudCBpbiBiYXNlNjRXcml0ZVxuICAgICAgICByZXR1cm4gYmFzZTY0V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHVjczJXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiB0b0pTT04gKCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCdWZmZXInLFxuICAgIGRhdGE6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2FyciB8fCB0aGlzLCAwKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKHN0YXJ0ID09PSAwICYmIGVuZCA9PT0gYnVmLmxlbmd0aCkge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1Zi5zbGljZShzdGFydCwgZW5kKSlcbiAgfVxufVxuXG5mdW5jdGlvbiB1dGY4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmVzID0gJydcbiAgdmFyIHRtcCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIGlmIChidWZbaV0gPD0gMHg3Rikge1xuICAgICAgcmVzICs9IGRlY29kZVV0ZjhDaGFyKHRtcCkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSlcbiAgICAgIHRtcCA9ICcnXG4gICAgfSBlbHNlIHtcbiAgICAgIHRtcCArPSAnJScgKyBidWZbaV0udG9TdHJpbmcoMTYpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcyArIGRlY29kZVV0ZjhDaGFyKHRtcClcbn1cblxuZnVuY3Rpb24gYXNjaWlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0gJiAweDdGKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gYmluYXJ5U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gaGV4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuXG4gIGlmICghc3RhcnQgfHwgc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgfHwgZW5kIDwgMCB8fCBlbmQgPiBsZW4pIGVuZCA9IGxlblxuXG4gIHZhciBvdXQgPSAnJ1xuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIG91dCArPSB0b0hleChidWZbaV0pXG4gIH1cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiB1dGYxNmxlU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgYnl0ZXMgPSBidWYuc2xpY2Uoc3RhcnQsIGVuZClcbiAgdmFyIHJlcyA9ICcnXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSArIGJ5dGVzW2kgKyAxXSAqIDI1NilcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiBzbGljZSAoc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgc3RhcnQgPSB+fnN0YXJ0XG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogfn5lbmRcblxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgKz0gbGVuXG4gICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIH0gZWxzZSBpZiAoc3RhcnQgPiBsZW4pIHtcbiAgICBzdGFydCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuXG4gICAgaWYgKGVuZCA8IDApIGVuZCA9IDBcbiAgfSBlbHNlIGlmIChlbmQgPiBsZW4pIHtcbiAgICBlbmQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICB2YXIgbmV3QnVmXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIG5ld0J1ZiA9IEJ1ZmZlci5fYXVnbWVudCh0aGlzLnN1YmFycmF5KHN0YXJ0LCBlbmQpKVxuICB9IGVsc2Uge1xuICAgIHZhciBzbGljZUxlbiA9IGVuZCAtIHN0YXJ0XG4gICAgbmV3QnVmID0gbmV3IEJ1ZmZlcihzbGljZUxlbiwgdW5kZWZpbmVkKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VMZW47IGkrKykge1xuICAgICAgbmV3QnVmW2ldID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9XG5cbiAgaWYgKG5ld0J1Zi5sZW5ndGgpIG5ld0J1Zi5wYXJlbnQgPSB0aGlzLnBhcmVudCB8fCB0aGlzXG5cbiAgcmV0dXJuIG5ld0J1ZlxufVxuXG4vKlxuICogTmVlZCB0byBtYWtlIHN1cmUgdGhhdCBidWZmZXIgaXNuJ3QgdHJ5aW5nIHRvIHdyaXRlIG91dCBvZiBib3VuZHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrT2Zmc2V0IChvZmZzZXQsIGV4dCwgbGVuZ3RoKSB7XG4gIGlmICgob2Zmc2V0ICUgMSkgIT09IDAgfHwgb2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBpcyBub3QgdWludCcpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBsZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFID0gZnVuY3Rpb24gcmVhZFVJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFID0gZnVuY3Rpb24gcmVhZFVJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcbiAgfVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF1cbiAgdmFyIG11bCA9IDFcbiAgd2hpbGUgKGJ5dGVMZW5ndGggPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OCA9IGZ1bmN0aW9uIHJlYWRVSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkxFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCA4KSB8IHRoaXNbb2Zmc2V0ICsgMV1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyTEUgPSBmdW5jdGlvbiByZWFkVUludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKCh0aGlzW29mZnNldF0pIHxcbiAgICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSkgK1xuICAgICAgKHRoaXNbb2Zmc2V0ICsgM10gKiAweDEwMDAwMDApXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkJFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gKiAweDEwMDAwMDApICtcbiAgICAoKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgdGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEUgPSBmdW5jdGlvbiByZWFkSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50QkUgPSBmdW5jdGlvbiByZWFkSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgaSA9IGJ5dGVMZW5ndGhcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1pXVxuICB3aGlsZSAoaSA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OCA9IGZ1bmN0aW9uIHJlYWRJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIGlmICghKHRoaXNbb2Zmc2V0XSAmIDB4ODApKSByZXR1cm4gKHRoaXNbb2Zmc2V0XSlcbiAgcmV0dXJuICgoMHhmZiAtIHRoaXNbb2Zmc2V0XSArIDEpICogLTEpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2TEUgPSBmdW5jdGlvbiByZWFkSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkJFID0gZnVuY3Rpb24gcmVhZEludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgMV0gfCAodGhpc1tvZmZzZXRdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0pIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSA8PCAyNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgMjQpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdExFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdEJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFID0gZnVuY3Rpb24gcmVhZERvdWJsZUxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCA1MiwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlQkUgPSBmdW5jdGlvbiByZWFkRG91YmxlQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCA1MiwgOClcbn1cblxuZnVuY3Rpb24gY2hlY2tJbnQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdidWZmZXIgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpXG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3ZhbHVlIGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50OCA9IGZ1bmN0aW9uIHdyaXRlVUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHhmZiwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQxNiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCAyKTsgaSA8IGo7IGkrKykge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSAmICgweGZmIDw8ICg4ICogKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkpKSkgPj4+XG4gICAgICAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSAqIDhcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgNCk7IGkgPCBqOyBpKyspIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgPj4+IChsaXR0bGVFbmRpYW4gPyBpIDogMyAtIGkpICogOCkgJiAweGZmXG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEUgPSBmdW5jdGlvbiB3cml0ZUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gMFxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gdmFsdWUgPCAwID8gMSA6IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFID0gZnVuY3Rpb24gd3JpdGVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSB2YWx1ZSA8IDAgPyAxIDogMFxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4N2YsIC0weDgwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMVxuICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5mdW5jdGlvbiBjaGVja0lFRUU3NTQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCd2YWx1ZSBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxuICBpZiAob2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvYXQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgNCwgMy40MDI4MjM0NjYzODUyODg2ZSszOCwgLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpXG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFID0gZnVuY3Rpb24gd3JpdGVGbG9hdExFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgOCwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCA1MiwgOClcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG4vLyBjb3B5KHRhcmdldEJ1ZmZlciwgdGFyZ2V0U3RhcnQ9MCwgc291cmNlU3RhcnQ9MCwgc291cmNlRW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5ICh0YXJnZXQsIHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXRTdGFydCA+PSB0YXJnZXQubGVuZ3RoKSB0YXJnZXRTdGFydCA9IHRhcmdldC5sZW5ndGhcbiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwXG4gIGlmIChlbmQgPiAwICYmIGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuIDBcbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgdGhpcy5sZW5ndGggPT09IDApIHJldHVybiAwXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBpZiAodGFyZ2V0U3RhcnQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICB9XG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgLy8gQXJlIHdlIG9vYj9cbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0IDwgZW5kIC0gc3RhcnQpIHtcbiAgICBlbmQgPSB0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgKyBzdGFydFxuICB9XG5cbiAgdmFyIGxlbiA9IGVuZCAtIHN0YXJ0XG5cbiAgaWYgKGxlbiA8IDEwMDAgfHwgIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0Ll9zZXQodGhpcy5zdWJhcnJheShzdGFydCwgc3RhcnQgKyBsZW4pLCB0YXJnZXRTdGFydClcbiAgfVxuXG4gIHJldHVybiBsZW5cbn1cblxuLy8gZmlsbCh2YWx1ZSwgc3RhcnQ9MCwgZW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiBmaWxsICh2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXZhbHVlKSB2YWx1ZSA9IDBcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kKSBlbmQgPSB0aGlzLmxlbmd0aFxuXG4gIGlmIChlbmQgPCBzdGFydCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2VuZCA8IHN0YXJ0JylcblxuICAvLyBGaWxsIDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVyblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVyblxuXG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDAgfHwgZW5kID4gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdlbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgdmFyIGlcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICB0aGlzW2ldID0gdmFsdWVcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ5dGVzID0gdXRmOFRvQnl0ZXModmFsdWUudG9TdHJpbmcoKSlcbiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdGhpc1tpXSA9IGJ5dGVzW2kgJSBsZW5dXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBBcnJheUJ1ZmZlcmAgd2l0aCB0aGUgKmNvcGllZCogbWVtb3J5IG9mIHRoZSBidWZmZXIgaW5zdGFuY2UuXG4gKiBBZGRlZCBpbiBOb2RlIDAuMTIuIE9ubHkgYXZhaWxhYmxlIGluIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBBcnJheUJ1ZmZlci5cbiAqL1xuQnVmZmVyLnByb3RvdHlwZS50b0FycmF5QnVmZmVyID0gZnVuY3Rpb24gdG9BcnJheUJ1ZmZlciAoKSB7XG4gIGlmICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAgIHJldHVybiAobmV3IEJ1ZmZlcih0aGlzKSkuYnVmZmVyXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh0aGlzLmxlbmd0aClcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBidWYubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgYnVmW2ldID0gdGhpc1tpXVxuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1Zi5idWZmZXJcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQnVmZmVyLnRvQXJyYXlCdWZmZXIgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXInKVxuICB9XG59XG5cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT1cblxudmFyIEJQID0gQnVmZmVyLnByb3RvdHlwZVxuXG4vKipcbiAqIEF1Z21lbnQgYSBVaW50OEFycmF5ICppbnN0YW5jZSogKG5vdCB0aGUgVWludDhBcnJheSBjbGFzcyEpIHdpdGggQnVmZmVyIG1ldGhvZHNcbiAqL1xuQnVmZmVyLl9hdWdtZW50ID0gZnVuY3Rpb24gX2F1Z21lbnQgKGFycikge1xuICBhcnIuY29uc3RydWN0b3IgPSBCdWZmZXJcbiAgYXJyLl9pc0J1ZmZlciA9IHRydWVcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byBvcmlnaW5hbCBVaW50OEFycmF5IHNldCBtZXRob2QgYmVmb3JlIG92ZXJ3cml0aW5nXG4gIGFyci5fc2V0ID0gYXJyLnNldFxuXG4gIC8vIGRlcHJlY2F0ZWQsIHdpbGwgYmUgcmVtb3ZlZCBpbiBub2RlIDAuMTMrXG4gIGFyci5nZXQgPSBCUC5nZXRcbiAgYXJyLnNldCA9IEJQLnNldFxuXG4gIGFyci53cml0ZSA9IEJQLndyaXRlXG4gIGFyci50b1N0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0xvY2FsZVN0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0pTT04gPSBCUC50b0pTT05cbiAgYXJyLmVxdWFscyA9IEJQLmVxdWFsc1xuICBhcnIuY29tcGFyZSA9IEJQLmNvbXBhcmVcbiAgYXJyLmluZGV4T2YgPSBCUC5pbmRleE9mXG4gIGFyci5jb3B5ID0gQlAuY29weVxuICBhcnIuc2xpY2UgPSBCUC5zbGljZVxuICBhcnIucmVhZFVJbnRMRSA9IEJQLnJlYWRVSW50TEVcbiAgYXJyLnJlYWRVSW50QkUgPSBCUC5yZWFkVUludEJFXG4gIGFyci5yZWFkVUludDggPSBCUC5yZWFkVUludDhcbiAgYXJyLnJlYWRVSW50MTZMRSA9IEJQLnJlYWRVSW50MTZMRVxuICBhcnIucmVhZFVJbnQxNkJFID0gQlAucmVhZFVJbnQxNkJFXG4gIGFyci5yZWFkVUludDMyTEUgPSBCUC5yZWFkVUludDMyTEVcbiAgYXJyLnJlYWRVSW50MzJCRSA9IEJQLnJlYWRVSW50MzJCRVxuICBhcnIucmVhZEludExFID0gQlAucmVhZEludExFXG4gIGFyci5yZWFkSW50QkUgPSBCUC5yZWFkSW50QkVcbiAgYXJyLnJlYWRJbnQ4ID0gQlAucmVhZEludDhcbiAgYXJyLnJlYWRJbnQxNkxFID0gQlAucmVhZEludDE2TEVcbiAgYXJyLnJlYWRJbnQxNkJFID0gQlAucmVhZEludDE2QkVcbiAgYXJyLnJlYWRJbnQzMkxFID0gQlAucmVhZEludDMyTEVcbiAgYXJyLnJlYWRJbnQzMkJFID0gQlAucmVhZEludDMyQkVcbiAgYXJyLnJlYWRGbG9hdExFID0gQlAucmVhZEZsb2F0TEVcbiAgYXJyLnJlYWRGbG9hdEJFID0gQlAucmVhZEZsb2F0QkVcbiAgYXJyLnJlYWREb3VibGVMRSA9IEJQLnJlYWREb3VibGVMRVxuICBhcnIucmVhZERvdWJsZUJFID0gQlAucmVhZERvdWJsZUJFXG4gIGFyci53cml0ZVVJbnQ4ID0gQlAud3JpdGVVSW50OFxuICBhcnIud3JpdGVVSW50TEUgPSBCUC53cml0ZVVJbnRMRVxuICBhcnIud3JpdGVVSW50QkUgPSBCUC53cml0ZVVJbnRCRVxuICBhcnIud3JpdGVVSW50MTZMRSA9IEJQLndyaXRlVUludDE2TEVcbiAgYXJyLndyaXRlVUludDE2QkUgPSBCUC53cml0ZVVJbnQxNkJFXG4gIGFyci53cml0ZVVJbnQzMkxFID0gQlAud3JpdGVVSW50MzJMRVxuICBhcnIud3JpdGVVSW50MzJCRSA9IEJQLndyaXRlVUludDMyQkVcbiAgYXJyLndyaXRlSW50TEUgPSBCUC53cml0ZUludExFXG4gIGFyci53cml0ZUludEJFID0gQlAud3JpdGVJbnRCRVxuICBhcnIud3JpdGVJbnQ4ID0gQlAud3JpdGVJbnQ4XG4gIGFyci53cml0ZUludDE2TEUgPSBCUC53cml0ZUludDE2TEVcbiAgYXJyLndyaXRlSW50MTZCRSA9IEJQLndyaXRlSW50MTZCRVxuICBhcnIud3JpdGVJbnQzMkxFID0gQlAud3JpdGVJbnQzMkxFXG4gIGFyci53cml0ZUludDMyQkUgPSBCUC53cml0ZUludDMyQkVcbiAgYXJyLndyaXRlRmxvYXRMRSA9IEJQLndyaXRlRmxvYXRMRVxuICBhcnIud3JpdGVGbG9hdEJFID0gQlAud3JpdGVGbG9hdEJFXG4gIGFyci53cml0ZURvdWJsZUxFID0gQlAud3JpdGVEb3VibGVMRVxuICBhcnIud3JpdGVEb3VibGVCRSA9IEJQLndyaXRlRG91YmxlQkVcbiAgYXJyLmZpbGwgPSBCUC5maWxsXG4gIGFyci5pbnNwZWN0ID0gQlAuaW5zcGVjdFxuICBhcnIudG9BcnJheUJ1ZmZlciA9IEJQLnRvQXJyYXlCdWZmZXJcblxuICByZXR1cm4gYXJyXG59XG5cbnZhciBJTlZBTElEX0JBU0U2NF9SRSA9IC9bXitcXC8wLTlBLXpcXC1dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHN0cmlwcyBvdXQgaW52YWxpZCBjaGFyYWN0ZXJzIGxpa2UgXFxuIGFuZCBcXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgc3RyID0gc3RyaW5ndHJpbShzdHIpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbmZ1bmN0aW9uIHRvSGV4IChuKSB7XG4gIGlmIChuIDwgMTYpIHJldHVybiAnMCcgKyBuLnRvU3RyaW5nKDE2KVxuICByZXR1cm4gbi50b1N0cmluZygxNilcbn1cblxuZnVuY3Rpb24gdXRmOFRvQnl0ZXMgKHN0cmluZywgdW5pdHMpIHtcbiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eVxuICB2YXIgY29kZVBvaW50XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICB2YXIgYnl0ZXMgPSBbXVxuICB2YXIgaSA9IDBcblxuICBmb3IgKDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgY29kZVBvaW50ID0gc3RyaW5nLmNoYXJDb2RlQXQoaSlcblxuICAgIC8vIGlzIHN1cnJvZ2F0ZSBjb21wb25lbnRcbiAgICBpZiAoY29kZVBvaW50ID4gMHhEN0ZGICYmIGNvZGVQb2ludCA8IDB4RTAwMCkge1xuICAgICAgLy8gbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAgIC8vIDIgbGVhZHMgaW4gYSByb3dcbiAgICAgICAgaWYgKGNvZGVQb2ludCA8IDB4REMwMCkge1xuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgICAgY29kZVBvaW50ID0gbGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCA8PCAxMCB8IGNvZGVQb2ludCAtIDB4REMwMCB8IDB4MTAwMDBcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBubyBsZWFkIHlldFxuXG4gICAgICAgIGlmIChjb2RlUG9pbnQgPiAweERCRkYpIHtcbiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdW5wYWlyZWQgbGVhZFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdmFsaWQgbGVhZFxuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAvLyB2YWxpZCBibXAgY2hhciwgYnV0IGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gICAgfVxuXG4gICAgLy8gZW5jb2RlIHV0ZjhcbiAgICBpZiAoY29kZVBvaW50IDwgMHg4MCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKGNvZGVQb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4ODAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgfCAweEMwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDIHwgMHhFMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgyMDAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gNCkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyLCB1bml0cykge1xuICB2YXIgYywgaGksIGxvXG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoKGkgKyBvZmZzZXQgPj0gZHN0Lmxlbmd0aCkgfHwgKGkgPj0gc3JjLmxlbmd0aCkpIGJyZWFrXG4gICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gZGVjb2RlVXRmOENoYXIgKHN0cikge1xuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgweEZGRkQpIC8vIFVURiA4IGludmFsaWQgY2hhclxuICB9XG59XG4iLCJ2YXIgbG9va3VwID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuXG47KGZ1bmN0aW9uIChleHBvcnRzKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuICB2YXIgQXJyID0gKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJylcbiAgICA/IFVpbnQ4QXJyYXlcbiAgICA6IEFycmF5XG5cblx0dmFyIFBMVVMgICA9ICcrJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSCAgPSAnLycuY2hhckNvZGVBdCgwKVxuXHR2YXIgTlVNQkVSID0gJzAnLmNoYXJDb2RlQXQoMClcblx0dmFyIExPV0VSICA9ICdhJy5jaGFyQ29kZUF0KDApXG5cdHZhciBVUFBFUiAgPSAnQScuY2hhckNvZGVBdCgwKVxuXHR2YXIgUExVU19VUkxfU0FGRSA9ICctJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSF9VUkxfU0FGRSA9ICdfJy5jaGFyQ29kZUF0KDApXG5cblx0ZnVuY3Rpb24gZGVjb2RlIChlbHQpIHtcblx0XHR2YXIgY29kZSA9IGVsdC5jaGFyQ29kZUF0KDApXG5cdFx0aWYgKGNvZGUgPT09IFBMVVMgfHxcblx0XHQgICAgY29kZSA9PT0gUExVU19VUkxfU0FGRSlcblx0XHRcdHJldHVybiA2MiAvLyAnKydcblx0XHRpZiAoY29kZSA9PT0gU0xBU0ggfHxcblx0XHQgICAgY29kZSA9PT0gU0xBU0hfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjMgLy8gJy8nXG5cdFx0aWYgKGNvZGUgPCBOVU1CRVIpXG5cdFx0XHRyZXR1cm4gLTEgLy9ubyBtYXRjaFxuXHRcdGlmIChjb2RlIDwgTlVNQkVSICsgMTApXG5cdFx0XHRyZXR1cm4gY29kZSAtIE5VTUJFUiArIDI2ICsgMjZcblx0XHRpZiAoY29kZSA8IFVQUEVSICsgMjYpXG5cdFx0XHRyZXR1cm4gY29kZSAtIFVQUEVSXG5cdFx0aWYgKGNvZGUgPCBMT1dFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBMT1dFUiArIDI2XG5cdH1cblxuXHRmdW5jdGlvbiBiNjRUb0J5dGVBcnJheSAoYjY0KSB7XG5cdFx0dmFyIGksIGosIGwsIHRtcCwgcGxhY2VIb2xkZXJzLCBhcnJcblxuXHRcdGlmIChiNjQubGVuZ3RoICUgNCA+IDApIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCcpXG5cdFx0fVxuXG5cdFx0Ly8gdGhlIG51bWJlciBvZiBlcXVhbCBzaWducyAocGxhY2UgaG9sZGVycylcblx0XHQvLyBpZiB0aGVyZSBhcmUgdHdvIHBsYWNlaG9sZGVycywgdGhhbiB0aGUgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIGl0XG5cdFx0Ly8gcmVwcmVzZW50IG9uZSBieXRlXG5cdFx0Ly8gaWYgdGhlcmUgaXMgb25seSBvbmUsIHRoZW4gdGhlIHRocmVlIGNoYXJhY3RlcnMgYmVmb3JlIGl0IHJlcHJlc2VudCAyIGJ5dGVzXG5cdFx0Ly8gdGhpcyBpcyBqdXN0IGEgY2hlYXAgaGFjayB0byBub3QgZG8gaW5kZXhPZiB0d2ljZVxuXHRcdHZhciBsZW4gPSBiNjQubGVuZ3RoXG5cdFx0cGxhY2VIb2xkZXJzID0gJz0nID09PSBiNjQuY2hhckF0KGxlbiAtIDIpID8gMiA6ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAxKSA/IDEgOiAwXG5cblx0XHQvLyBiYXNlNjQgaXMgNC8zICsgdXAgdG8gdHdvIGNoYXJhY3RlcnMgb2YgdGhlIG9yaWdpbmFsIGRhdGFcblx0XHRhcnIgPSBuZXcgQXJyKGI2NC5sZW5ndGggKiAzIC8gNCAtIHBsYWNlSG9sZGVycylcblxuXHRcdC8vIGlmIHRoZXJlIGFyZSBwbGFjZWhvbGRlcnMsIG9ubHkgZ2V0IHVwIHRvIHRoZSBsYXN0IGNvbXBsZXRlIDQgY2hhcnNcblx0XHRsID0gcGxhY2VIb2xkZXJzID4gMCA/IGI2NC5sZW5ndGggLSA0IDogYjY0Lmxlbmd0aFxuXG5cdFx0dmFyIEwgPSAwXG5cblx0XHRmdW5jdGlvbiBwdXNoICh2KSB7XG5cdFx0XHRhcnJbTCsrXSA9IHZcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGw7IGkgKz0gNCwgaiArPSAzKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDE4KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDEyKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpIDw8IDYpIHwgZGVjb2RlKGI2NC5jaGFyQXQoaSArIDMpKVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwMDApID4+IDE2KVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwKSA+PiA4KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdGlmIChwbGFjZUhvbGRlcnMgPT09IDIpIHtcblx0XHRcdHRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA+PiA0KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH0gZWxzZSBpZiAocGxhY2VIb2xkZXJzID09PSAxKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDEwKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDQpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAyKSkgPj4gMilcblx0XHRcdHB1c2goKHRtcCA+PiA4KSAmIDB4RkYpXG5cdFx0XHRwdXNoKHRtcCAmIDB4RkYpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFyclxuXHR9XG5cblx0ZnVuY3Rpb24gdWludDhUb0Jhc2U2NCAodWludDgpIHtcblx0XHR2YXIgaSxcblx0XHRcdGV4dHJhQnl0ZXMgPSB1aW50OC5sZW5ndGggJSAzLCAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlc1xuXHRcdFx0b3V0cHV0ID0gXCJcIixcblx0XHRcdHRlbXAsIGxlbmd0aFxuXG5cdFx0ZnVuY3Rpb24gZW5jb2RlIChudW0pIHtcblx0XHRcdHJldHVybiBsb29rdXAuY2hhckF0KG51bSlcblx0XHR9XG5cblx0XHRmdW5jdGlvbiB0cmlwbGV0VG9CYXNlNjQgKG51bSkge1xuXHRcdFx0cmV0dXJuIGVuY29kZShudW0gPj4gMTggJiAweDNGKSArIGVuY29kZShudW0gPj4gMTIgJiAweDNGKSArIGVuY29kZShudW0gPj4gNiAmIDB4M0YpICsgZW5jb2RlKG51bSAmIDB4M0YpXG5cdFx0fVxuXG5cdFx0Ly8gZ28gdGhyb3VnaCB0aGUgYXJyYXkgZXZlcnkgdGhyZWUgYnl0ZXMsIHdlJ2xsIGRlYWwgd2l0aCB0cmFpbGluZyBzdHVmZiBsYXRlclxuXHRcdGZvciAoaSA9IDAsIGxlbmd0aCA9IHVpbnQ4Lmxlbmd0aCAtIGV4dHJhQnl0ZXM7IGkgPCBsZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0dGVtcCA9ICh1aW50OFtpXSA8PCAxNikgKyAodWludDhbaSArIDFdIDw8IDgpICsgKHVpbnQ4W2kgKyAyXSlcblx0XHRcdG91dHB1dCArPSB0cmlwbGV0VG9CYXNlNjQodGVtcClcblx0XHR9XG5cblx0XHQvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG5cdFx0c3dpdGNoIChleHRyYUJ5dGVzKSB7XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRcdHRlbXAgPSB1aW50OFt1aW50OC5sZW5ndGggLSAxXVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMilcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA8PCA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSAnPT0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlIDI6XG5cdFx0XHRcdHRlbXAgPSAodWludDhbdWludDgubGVuZ3RoIC0gMl0gPDwgOCkgKyAodWludDhbdWludDgubGVuZ3RoIC0gMV0pXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUodGVtcCA+PiAxMClcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA+PiA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgMikgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0fVxuXG5cdFx0cmV0dXJuIG91dHB1dFxuXHR9XG5cblx0ZXhwb3J0cy50b0J5dGVBcnJheSA9IGI2NFRvQnl0ZUFycmF5XG5cdGV4cG9ydHMuZnJvbUJ5dGVBcnJheSA9IHVpbnQ4VG9CYXNlNjRcbn0odHlwZW9mIGV4cG9ydHMgPT09ICd1bmRlZmluZWQnID8gKHRoaXMuYmFzZTY0anMgPSB7fSkgOiBleHBvcnRzKSlcbiIsImV4cG9ydHMucmVhZCA9IGZ1bmN0aW9uIChidWZmZXIsIG9mZnNldCwgaXNMRSwgbUxlbiwgbkJ5dGVzKSB7XG4gIHZhciBlLCBtLFxuICAgICAgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMSxcbiAgICAgIGVNYXggPSAoMSA8PCBlTGVuKSAtIDEsXG4gICAgICBlQmlhcyA9IGVNYXggPj4gMSxcbiAgICAgIG5CaXRzID0gLTcsXG4gICAgICBpID0gaXNMRSA/IChuQnl0ZXMgLSAxKSA6IDAsXG4gICAgICBkID0gaXNMRSA/IC0xIDogMSxcbiAgICAgIHMgPSBidWZmZXJbb2Zmc2V0ICsgaV1cblxuICBpICs9IGRcblxuICBlID0gcyAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBzID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBlTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IGUgPSBlICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgbSA9IGUgJiAoKDEgPDwgKC1uQml0cykpIC0gMSlcbiAgZSA+Pj0gKC1uQml0cylcbiAgbkJpdHMgKz0gbUxlblxuICBmb3IgKDsgbkJpdHMgPiAwOyBtID0gbSAqIDI1NiArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGMsXG4gICAgICBlTGVuID0gbkJ5dGVzICogOCAtIG1MZW4gLSAxLFxuICAgICAgZU1heCA9ICgxIDw8IGVMZW4pIC0gMSxcbiAgICAgIGVCaWFzID0gZU1heCA+PiAxLFxuICAgICAgcnQgPSAobUxlbiA9PT0gMjMgPyBNYXRoLnBvdygyLCAtMjQpIC0gTWF0aC5wb3coMiwgLTc3KSA6IDApLFxuICAgICAgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpLFxuICAgICAgZCA9IGlzTEUgPyAxIDogLTEsXG4gICAgICBzID0gdmFsdWUgPCAwIHx8ICh2YWx1ZSA9PT0gMCAmJiAxIC8gdmFsdWUgPCAwKSA/IDEgOiAwXG5cbiAgdmFsdWUgPSBNYXRoLmFicyh2YWx1ZSlcblxuICBpZiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBJbmZpbml0eSkge1xuICAgIG0gPSBpc05hTih2YWx1ZSkgPyAxIDogMFxuICAgIGUgPSBlTWF4XG4gIH0gZWxzZSB7XG4gICAgZSA9IE1hdGguZmxvb3IoTWF0aC5sb2codmFsdWUpIC8gTWF0aC5MTjIpXG4gICAgaWYgKHZhbHVlICogKGMgPSBNYXRoLnBvdygyLCAtZSkpIDwgMSkge1xuICAgICAgZS0tXG4gICAgICBjICo9IDJcbiAgICB9XG4gICAgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICB2YWx1ZSArPSBydCAvIGNcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgKz0gcnQgKiBNYXRoLnBvdygyLCAxIC0gZUJpYXMpXG4gICAgfVxuICAgIGlmICh2YWx1ZSAqIGMgPj0gMikge1xuICAgICAgZSsrXG4gICAgICBjIC89IDJcbiAgICB9XG5cbiAgICBpZiAoZSArIGVCaWFzID49IGVNYXgpIHtcbiAgICAgIG0gPSAwXG4gICAgICBlID0gZU1heFxuICAgIH0gZWxzZSBpZiAoZSArIGVCaWFzID49IDEpIHtcbiAgICAgIG0gPSAodmFsdWUgKiBjIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IGUgKyBlQmlhc1xuICAgIH0gZWxzZSB7XG4gICAgICBtID0gdmFsdWUgKiBNYXRoLnBvdygyLCBlQmlhcyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSAwXG4gICAgfVxuICB9XG5cbiAgZm9yICg7IG1MZW4gPj0gODsgYnVmZmVyW29mZnNldCArIGldID0gbSAmIDB4ZmYsIGkgKz0gZCwgbSAvPSAyNTYsIG1MZW4gLT0gOCkge31cblxuICBlID0gKGUgPDwgbUxlbikgfCBtXG4gIGVMZW4gKz0gbUxlblxuICBmb3IgKDsgZUxlbiA+IDA7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGUgJiAweGZmLCBpICs9IGQsIGUgLz0gMjU2LCBlTGVuIC09IDgpIHt9XG5cbiAgYnVmZmVyW29mZnNldCArIGkgLSBkXSB8PSBzICogMTI4XG59XG4iLCJcbi8qKlxuICogaXNBcnJheVxuICovXG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuLyoqXG4gKiB0b1N0cmluZ1xuICovXG5cbnZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBgdmFsYFxuICogaXMgYW4gYXJyYXkuXG4gKlxuICogZXhhbXBsZTpcbiAqXG4gKiAgICAgICAgaXNBcnJheShbXSk7XG4gKiAgICAgICAgLy8gPiB0cnVlXG4gKiAgICAgICAgaXNBcnJheShhcmd1bWVudHMpO1xuICogICAgICAgIC8vID4gZmFsc2VcbiAqICAgICAgICBpc0FycmF5KCcnKTtcbiAqICAgICAgICAvLyA+IGZhbHNlXG4gKlxuICogQHBhcmFtIHttaXhlZH0gdmFsXG4gKiBAcmV0dXJuIHtib29sfVxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheSB8fCBmdW5jdGlvbiAodmFsKSB7XG4gIHJldHVybiAhISB2YWwgJiYgJ1tvYmplY3QgQXJyYXldJyA9PSBzdHIuY2FsbCh2YWwpO1xufTtcbiIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxuXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmICghZHJhaW5pbmcpIHtcbiAgICAgICAgc2V0VGltZW91dChkcmFpblF1ZXVlLCAwKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbi8vIFRPRE8oc2h0eWxtYW4pXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgd2ViIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gb2YgYGRlYnVnKClgLlxuICpcbiAqIEV4cG9zZSBgZGVidWcoKWAgYXMgdGhlIG1vZHVsZS5cbiAqL1xuXG5leHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2RlYnVnJyk7XG5leHBvcnRzLmxvZyA9IGxvZztcbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5zdG9yYWdlID0gJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZVxuICAgICAgICAgICAgICAgJiYgJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZS5zdG9yYWdlXG4gICAgICAgICAgICAgICAgICA/IGNocm9tZS5zdG9yYWdlLmxvY2FsXG4gICAgICAgICAgICAgICAgICA6IGxvY2Fsc3RvcmFnZSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcbiAgJ2xpZ2h0c2VhZ3JlZW4nLFxuICAnZm9yZXN0Z3JlZW4nLFxuICAnZ29sZGVucm9kJyxcbiAgJ2RvZGdlcmJsdWUnLFxuICAnZGFya29yY2hpZCcsXG4gICdjcmltc29uJ1xuXTtcblxuLyoqXG4gKiBDdXJyZW50bHkgb25seSBXZWJLaXQtYmFzZWQgV2ViIEluc3BlY3RvcnMsIEZpcmVmb3ggPj0gdjMxLFxuICogYW5kIHRoZSBGaXJlYnVnIGV4dGVuc2lvbiAoYW55IEZpcmVmb3ggdmVyc2lvbikgYXJlIGtub3duXG4gKiB0byBzdXBwb3J0IFwiJWNcIiBDU1MgY3VzdG9taXphdGlvbnMuXG4gKlxuICogVE9ETzogYWRkIGEgYGxvY2FsU3RvcmFnZWAgdmFyaWFibGUgdG8gZXhwbGljaXRseSBlbmFibGUvZGlzYWJsZSBjb2xvcnNcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG4gIC8vIGlzIHdlYmtpdD8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTY0NTk2MDYvMzc2NzczXG4gIHJldHVybiAoJ1dlYmtpdEFwcGVhcmFuY2UnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkgfHxcbiAgICAvLyBpcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG4gICAgKHdpbmRvdy5jb25zb2xlICYmIChjb25zb2xlLmZpcmVidWcgfHwgKGNvbnNvbGUuZXhjZXB0aW9uICYmIGNvbnNvbGUudGFibGUpKSkgfHxcbiAgICAvLyBpcyBmaXJlZm94ID49IHYzMT9cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcbiAgICAobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLykgJiYgcGFyc2VJbnQoUmVnRXhwLiQxLCAxMCkgPj0gMzEpO1xufVxuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdHRlcnMuaiA9IGZ1bmN0aW9uKHYpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHYpO1xufTtcblxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoKSB7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICB2YXIgdXNlQ29sb3JzID0gdGhpcy51c2VDb2xvcnM7XG5cbiAgYXJnc1swXSA9ICh1c2VDb2xvcnMgPyAnJWMnIDogJycpXG4gICAgKyB0aGlzLm5hbWVzcGFjZVxuICAgICsgKHVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKVxuICAgICsgYXJnc1swXVxuICAgICsgKHVzZUNvbG9ycyA/ICclYyAnIDogJyAnKVxuICAgICsgJysnICsgZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG4gIGlmICghdXNlQ29sb3JzKSByZXR1cm4gYXJncztcblxuICB2YXIgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG4gIGFyZ3MgPSBbYXJnc1swXSwgYywgJ2NvbG9yOiBpbmhlcml0J10uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MsIDEpKTtcblxuICAvLyB0aGUgZmluYWwgXCIlY1wiIGlzIHNvbWV3aGF0IHRyaWNreSwgYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBvdGhlclxuICAvLyBhcmd1bWVudHMgcGFzc2VkIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlICVjLCBzbyB3ZSBuZWVkIHRvXG4gIC8vIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3QgaW5kZXggdG8gaW5zZXJ0IHRoZSBDU1MgaW50b1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgbGFzdEMgPSAwO1xuICBhcmdzWzBdLnJlcGxhY2UoLyVbYS16JV0vZywgZnVuY3Rpb24obWF0Y2gpIHtcbiAgICBpZiAoJyUlJyA9PT0gbWF0Y2gpIHJldHVybjtcbiAgICBpbmRleCsrO1xuICAgIGlmICgnJWMnID09PSBtYXRjaCkge1xuICAgICAgLy8gd2Ugb25seSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgKmxhc3QqICVjXG4gICAgICAvLyAodGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgdGhlaXIgb3duKVxuICAgICAgbGFzdEMgPSBpbmRleDtcbiAgICB9XG4gIH0pO1xuXG4gIGFyZ3Muc3BsaWNlKGxhc3RDLCAwLCBjKTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5sb2coKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmxvZ2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gbG9nKCkge1xuICAvLyB0aGlzIGhhY2tlcnkgaXMgcmVxdWlyZWQgZm9yIElFOC85LCB3aGVyZVxuICAvLyB0aGUgYGNvbnNvbGUubG9nYCBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgJ2FwcGx5J1xuICByZXR1cm4gJ29iamVjdCcgPT09IHR5cGVvZiBjb25zb2xlXG4gICAgJiYgY29uc29sZS5sb2dcbiAgICAmJiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZywgY29uc29sZSwgYXJndW1lbnRzKTtcbn1cblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG4gIHRyeSB7XG4gICAgaWYgKG51bGwgPT0gbmFtZXNwYWNlcykge1xuICAgICAgZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZyA9IG5hbWVzcGFjZXM7XG4gICAgfVxuICB9IGNhdGNoKGUpIHt9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9hZCgpIHtcbiAgdmFyIHI7XG4gIHRyeSB7XG4gICAgciA9IGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZztcbiAgfSBjYXRjaChlKSB7fVxuICByZXR1cm4gcjtcbn1cblxuLyoqXG4gKiBFbmFibGUgbmFtZXNwYWNlcyBsaXN0ZWQgaW4gYGxvY2FsU3RvcmFnZS5kZWJ1Z2AgaW5pdGlhbGx5LlxuICovXG5cbmV4cG9ydHMuZW5hYmxlKGxvYWQoKSk7XG5cbi8qKlxuICogTG9jYWxzdG9yYWdlIGF0dGVtcHRzIHRvIHJldHVybiB0aGUgbG9jYWxzdG9yYWdlLlxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2FmYXJpIHRocm93c1xuICogd2hlbiBhIHVzZXIgZGlzYWJsZXMgY29va2llcy9sb2NhbHN0b3JhZ2VcbiAqIGFuZCB5b3UgYXR0ZW1wdCB0byBhY2Nlc3MgaXQuXG4gKlxuICogQHJldHVybiB7TG9jYWxTdG9yYWdlfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9jYWxzdG9yYWdlKCl7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gIH0gY2F0Y2ggKGUpIHt9XG59XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqXG4gKiBFeHBvc2UgYGRlYnVnKClgIGFzIHRoZSBtb2R1bGUuXG4gKi9cblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZGVidWc7XG5leHBvcnRzLmNvZXJjZSA9IGNvZXJjZTtcbmV4cG9ydHMuZGlzYWJsZSA9IGRpc2FibGU7XG5leHBvcnRzLmVuYWJsZSA9IGVuYWJsZTtcbmV4cG9ydHMuZW5hYmxlZCA9IGVuYWJsZWQ7XG5leHBvcnRzLmh1bWFuaXplID0gcmVxdWlyZSgnbXMnKTtcblxuLyoqXG4gKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBkZWJ1ZyBtb2RlIG5hbWVzLCBhbmQgbmFtZXMgdG8gc2tpcC5cbiAqL1xuXG5leHBvcnRzLm5hbWVzID0gW107XG5leHBvcnRzLnNraXBzID0gW107XG5cbi8qKlxuICogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuICpcbiAqIFZhbGlkIGtleSBuYW1lcyBhcmUgYSBzaW5nbGUsIGxvd2VyY2FzZWQgbGV0dGVyLCBpLmUuIFwiblwiLlxuICovXG5cbmV4cG9ydHMuZm9ybWF0dGVycyA9IHt9O1xuXG4vKipcbiAqIFByZXZpb3VzbHkgYXNzaWduZWQgY29sb3IuXG4gKi9cblxudmFyIHByZXZDb2xvciA9IDA7XG5cbi8qKlxuICogUHJldmlvdXMgbG9nIHRpbWVzdGFtcC5cbiAqL1xuXG52YXIgcHJldlRpbWU7XG5cbi8qKlxuICogU2VsZWN0IGEgY29sb3IuXG4gKlxuICogQHJldHVybiB7TnVtYmVyfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VsZWN0Q29sb3IoKSB7XG4gIHJldHVybiBleHBvcnRzLmNvbG9yc1twcmV2Q29sb3IrKyAlIGV4cG9ydHMuY29sb3JzLmxlbmd0aF07XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZVxuICogQHJldHVybiB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGRlYnVnKG5hbWVzcGFjZSkge1xuXG4gIC8vIGRlZmluZSB0aGUgYGRpc2FibGVkYCB2ZXJzaW9uXG4gIGZ1bmN0aW9uIGRpc2FibGVkKCkge1xuICB9XG4gIGRpc2FibGVkLmVuYWJsZWQgPSBmYWxzZTtcblxuICAvLyBkZWZpbmUgdGhlIGBlbmFibGVkYCB2ZXJzaW9uXG4gIGZ1bmN0aW9uIGVuYWJsZWQoKSB7XG5cbiAgICB2YXIgc2VsZiA9IGVuYWJsZWQ7XG5cbiAgICAvLyBzZXQgYGRpZmZgIHRpbWVzdGFtcFxuICAgIHZhciBjdXJyID0gK25ldyBEYXRlKCk7XG4gICAgdmFyIG1zID0gY3VyciAtIChwcmV2VGltZSB8fCBjdXJyKTtcbiAgICBzZWxmLmRpZmYgPSBtcztcbiAgICBzZWxmLnByZXYgPSBwcmV2VGltZTtcbiAgICBzZWxmLmN1cnIgPSBjdXJyO1xuICAgIHByZXZUaW1lID0gY3VycjtcblxuICAgIC8vIGFkZCB0aGUgYGNvbG9yYCBpZiBub3Qgc2V0XG4gICAgaWYgKG51bGwgPT0gc2VsZi51c2VDb2xvcnMpIHNlbGYudXNlQ29sb3JzID0gZXhwb3J0cy51c2VDb2xvcnMoKTtcbiAgICBpZiAobnVsbCA9PSBzZWxmLmNvbG9yICYmIHNlbGYudXNlQ29sb3JzKSBzZWxmLmNvbG9yID0gc2VsZWN0Q29sb3IoKTtcblxuICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblxuICAgIGFyZ3NbMF0gPSBleHBvcnRzLmNvZXJjZShhcmdzWzBdKTtcblxuICAgIGlmICgnc3RyaW5nJyAhPT0gdHlwZW9mIGFyZ3NbMF0pIHtcbiAgICAgIC8vIGFueXRoaW5nIGVsc2UgbGV0J3MgaW5zcGVjdCB3aXRoICVvXG4gICAgICBhcmdzID0gWyclbyddLmNvbmNhdChhcmdzKTtcbiAgICB9XG5cbiAgICAvLyBhcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgYXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16JV0pL2csIGZ1bmN0aW9uKG1hdGNoLCBmb3JtYXQpIHtcbiAgICAgIC8vIGlmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcbiAgICAgIGlmIChtYXRjaCA9PT0gJyUlJykgcmV0dXJuIG1hdGNoO1xuICAgICAgaW5kZXgrKztcbiAgICAgIHZhciBmb3JtYXR0ZXIgPSBleHBvcnRzLmZvcm1hdHRlcnNbZm9ybWF0XTtcbiAgICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgZm9ybWF0dGVyKSB7XG4gICAgICAgIHZhciB2YWwgPSBhcmdzW2luZGV4XTtcbiAgICAgICAgbWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG4gICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcbiAgICAgICAgYXJncy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBpbmRleC0tO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1hdGNoO1xuICAgIH0pO1xuXG4gICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBleHBvcnRzLmZvcm1hdEFyZ3MpIHtcbiAgICAgIGFyZ3MgPSBleHBvcnRzLmZvcm1hdEFyZ3MuYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuICAgIHZhciBsb2dGbiA9IGVuYWJsZWQubG9nIHx8IGV4cG9ydHMubG9nIHx8IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7XG4gICAgbG9nRm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gIH1cbiAgZW5hYmxlZC5lbmFibGVkID0gdHJ1ZTtcblxuICB2YXIgZm4gPSBleHBvcnRzLmVuYWJsZWQobmFtZXNwYWNlKSA/IGVuYWJsZWQgOiBkaXNhYmxlZDtcblxuICBmbi5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cbiAgcmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcbiAqIHNlcGFyYXRlZCBieSBhIGNvbG9uIGFuZCB3aWxkY2FyZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcbiAgZXhwb3J0cy5zYXZlKG5hbWVzcGFjZXMpO1xuXG4gIHZhciBzcGxpdCA9IChuYW1lc3BhY2VzIHx8ICcnKS5zcGxpdCgvW1xccyxdKy8pO1xuICB2YXIgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoIXNwbGl0W2ldKSBjb250aW51ZTsgLy8gaWdub3JlIGVtcHR5IHN0cmluZ3NcbiAgICBuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcbiAgICBpZiAobmFtZXNwYWNlc1swXSA9PT0gJy0nKSB7XG4gICAgICBleHBvcnRzLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzLnN1YnN0cigxKSArICckJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHBvcnRzLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkaXNhYmxlKCkge1xuICBleHBvcnRzLmVuYWJsZSgnJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBlbmFibGVkKG5hbWUpIHtcbiAgdmFyIGksIGxlbjtcbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5za2lwcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLnNraXBzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ29lcmNlIGB2YWxgLlxuICpcbiAqIEBwYXJhbSB7TWl4ZWR9IHZhbFxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb2VyY2UodmFsKSB7XG4gIGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikgcmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcbiAgcmV0dXJuIHZhbDtcbn1cbiIsIi8qKlxuICogSGVscGVycy5cbiAqL1xuXG52YXIgcyA9IDEwMDA7XG52YXIgbSA9IHMgKiA2MDtcbnZhciBoID0gbSAqIDYwO1xudmFyIGQgPSBoICogMjQ7XG52YXIgeSA9IGQgKiAzNjUuMjU7XG5cbi8qKlxuICogUGFyc2Ugb3IgZm9ybWF0IHRoZSBnaXZlbiBgdmFsYC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAtIGBsb25nYCB2ZXJib3NlIGZvcm1hdHRpbmcgW2ZhbHNlXVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0gdmFsXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWwsIG9wdGlvbnMpe1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgaWYgKCdzdHJpbmcnID09IHR5cGVvZiB2YWwpIHJldHVybiBwYXJzZSh2YWwpO1xuICByZXR1cm4gb3B0aW9ucy5sb25nXG4gICAgPyBsb25nKHZhbClcbiAgICA6IHNob3J0KHZhbCk7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBgc3RyYCBhbmQgcmV0dXJuIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgc3RyID0gJycgKyBzdHI7XG4gIGlmIChzdHIubGVuZ3RoID4gMTAwMDApIHJldHVybjtcbiAgdmFyIG1hdGNoID0gL14oKD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhzdHIpO1xuICBpZiAoIW1hdGNoKSByZXR1cm47XG4gIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gIHZhciB0eXBlID0gKG1hdGNoWzJdIHx8ICdtcycpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3llYXJzJzpcbiAgICBjYXNlICd5ZWFyJzpcbiAgICBjYXNlICd5cnMnOlxuICAgIGNhc2UgJ3lyJzpcbiAgICBjYXNlICd5JzpcbiAgICAgIHJldHVybiBuICogeTtcbiAgICBjYXNlICdkYXlzJzpcbiAgICBjYXNlICdkYXknOlxuICAgIGNhc2UgJ2QnOlxuICAgICAgcmV0dXJuIG4gKiBkO1xuICAgIGNhc2UgJ2hvdXJzJzpcbiAgICBjYXNlICdob3VyJzpcbiAgICBjYXNlICdocnMnOlxuICAgIGNhc2UgJ2hyJzpcbiAgICBjYXNlICdoJzpcbiAgICAgIHJldHVybiBuICogaDtcbiAgICBjYXNlICdtaW51dGVzJzpcbiAgICBjYXNlICdtaW51dGUnOlxuICAgIGNhc2UgJ21pbnMnOlxuICAgIGNhc2UgJ21pbic6XG4gICAgY2FzZSAnbSc6XG4gICAgICByZXR1cm4gbiAqIG07XG4gICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgY2FzZSAnc2Vjb25kJzpcbiAgICBjYXNlICdzZWNzJzpcbiAgICBjYXNlICdzZWMnOlxuICAgIGNhc2UgJ3MnOlxuICAgICAgcmV0dXJuIG4gKiBzO1xuICAgIGNhc2UgJ21pbGxpc2Vjb25kcyc6XG4gICAgY2FzZSAnbWlsbGlzZWNvbmQnOlxuICAgIGNhc2UgJ21zZWNzJzpcbiAgICBjYXNlICdtc2VjJzpcbiAgICBjYXNlICdtcyc6XG4gICAgICByZXR1cm4gbjtcbiAgfVxufVxuXG4vKipcbiAqIFNob3J0IGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNob3J0KG1zKSB7XG4gIGlmIChtcyA+PSBkKSByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGQpICsgJ2QnO1xuICBpZiAobXMgPj0gaCkgcmV0dXJuIE1hdGgucm91bmQobXMgLyBoKSArICdoJztcbiAgaWYgKG1zID49IG0pIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gbSkgKyAnbSc7XG4gIGlmIChtcyA+PSBzKSByZXR1cm4gTWF0aC5yb3VuZChtcyAvIHMpICsgJ3MnO1xuICByZXR1cm4gbXMgKyAnbXMnO1xufVxuXG4vKipcbiAqIExvbmcgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9uZyhtcykge1xuICByZXR1cm4gcGx1cmFsKG1zLCBkLCAnZGF5JylcbiAgICB8fCBwbHVyYWwobXMsIGgsICdob3VyJylcbiAgICB8fCBwbHVyYWwobXMsIG0sICdtaW51dGUnKVxuICAgIHx8IHBsdXJhbChtcywgcywgJ3NlY29uZCcpXG4gICAgfHwgbXMgKyAnIG1zJztcbn1cblxuLyoqXG4gKiBQbHVyYWxpemF0aW9uIGhlbHBlci5cbiAqL1xuXG5mdW5jdGlvbiBwbHVyYWwobXMsIG4sIG5hbWUpIHtcbiAgaWYgKG1zIDwgbikgcmV0dXJuO1xuICBpZiAobXMgPCBuICogMS41KSByZXR1cm4gTWF0aC5mbG9vcihtcyAvIG4pICsgJyAnICsgbmFtZTtcbiAgcmV0dXJuIE1hdGguY2VpbChtcyAvIG4pICsgJyAnICsgbmFtZSArICdzJztcbn1cbiIsIi8qXG4gKiAkSWQ6IGJhc2U2NC5qcyx2IDIuMTUgMjAxNC8wNC8wNSAxMjo1ODo1NyBkYW5rb2dhaSBFeHAgZGFua29nYWkgJFxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqXG4gKiAgUmVmZXJlbmNlczpcbiAqICAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFzZTY0XG4gKi9cblxuKGZ1bmN0aW9uKGdsb2JhbCkge1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICAvLyBleGlzdGluZyB2ZXJzaW9uIGZvciBub0NvbmZsaWN0KClcbiAgICB2YXIgX0Jhc2U2NCA9IGdsb2JhbC5CYXNlNjQ7XG4gICAgdmFyIHZlcnNpb24gPSBcIjIuMS44XCI7XG4gICAgLy8gaWYgbm9kZS5qcywgd2UgdXNlIEJ1ZmZlclxuICAgIHZhciBidWZmZXI7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgIGJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcbiAgICB9XG4gICAgLy8gY29uc3RhbnRzXG4gICAgdmFyIGI2NGNoYXJzXG4gICAgICAgID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuICAgIHZhciBiNjR0YWIgPSBmdW5jdGlvbihiaW4pIHtcbiAgICAgICAgdmFyIHQgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBiaW4ubGVuZ3RoOyBpIDwgbDsgaSsrKSB0W2Jpbi5jaGFyQXQoaSldID0gaTtcbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfShiNjRjaGFycyk7XG4gICAgdmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG4gICAgLy8gZW5jb2RlciBzdHVmZlxuICAgIHZhciBjYl91dG9iID0gZnVuY3Rpb24oYykge1xuICAgICAgICBpZiAoYy5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICB2YXIgY2MgPSBjLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgICByZXR1cm4gY2MgPCAweDgwID8gY1xuICAgICAgICAgICAgICAgIDogY2MgPCAweDgwMCA/IChmcm9tQ2hhckNvZGUoMHhjMCB8IChjYyA+Pj4gNikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoY2MgJiAweDNmKSkpXG4gICAgICAgICAgICAgICAgOiAoZnJvbUNoYXJDb2RlKDB4ZTAgfCAoKGNjID4+PiAxMikgJiAweDBmKSlcbiAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKChjYyA+Pj4gIDYpICYgMHgzZikpXG4gICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8ICggY2MgICAgICAgICAmIDB4M2YpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgY2MgPSAweDEwMDAwXG4gICAgICAgICAgICAgICAgKyAoYy5jaGFyQ29kZUF0KDApIC0gMHhEODAwKSAqIDB4NDAwXG4gICAgICAgICAgICAgICAgKyAoYy5jaGFyQ29kZUF0KDEpIC0gMHhEQzAwKTtcbiAgICAgICAgICAgIHJldHVybiAoZnJvbUNoYXJDb2RlKDB4ZjAgfCAoKGNjID4+PiAxOCkgJiAweDA3KSlcbiAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8ICgoY2MgPj4+IDEyKSAmIDB4M2YpKVxuICAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKChjYyA+Pj4gIDYpICYgMHgzZikpXG4gICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoIGNjICAgICAgICAgJiAweDNmKSkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB2YXIgcmVfdXRvYiA9IC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZGXXxbXlxceDAwLVxceDdGXS9nO1xuICAgIHZhciB1dG9iID0gZnVuY3Rpb24odSkge1xuICAgICAgICByZXR1cm4gdS5yZXBsYWNlKHJlX3V0b2IsIGNiX3V0b2IpO1xuICAgIH07XG4gICAgdmFyIGNiX2VuY29kZSA9IGZ1bmN0aW9uKGNjYykge1xuICAgICAgICB2YXIgcGFkbGVuID0gWzAsIDIsIDFdW2NjYy5sZW5ndGggJSAzXSxcbiAgICAgICAgb3JkID0gY2NjLmNoYXJDb2RlQXQoMCkgPDwgMTZcbiAgICAgICAgICAgIHwgKChjY2MubGVuZ3RoID4gMSA/IGNjYy5jaGFyQ29kZUF0KDEpIDogMCkgPDwgOClcbiAgICAgICAgICAgIHwgKChjY2MubGVuZ3RoID4gMiA/IGNjYy5jaGFyQ29kZUF0KDIpIDogMCkpLFxuICAgICAgICBjaGFycyA9IFtcbiAgICAgICAgICAgIGI2NGNoYXJzLmNoYXJBdCggb3JkID4+PiAxOCksXG4gICAgICAgICAgICBiNjRjaGFycy5jaGFyQXQoKG9yZCA+Pj4gMTIpICYgNjMpLFxuICAgICAgICAgICAgcGFkbGVuID49IDIgPyAnPScgOiBiNjRjaGFycy5jaGFyQXQoKG9yZCA+Pj4gNikgJiA2MyksXG4gICAgICAgICAgICBwYWRsZW4gPj0gMSA/ICc9JyA6IGI2NGNoYXJzLmNoYXJBdChvcmQgJiA2MylcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICAgIH07XG4gICAgdmFyIGJ0b2EgPSBnbG9iYWwuYnRvYSA/IGZ1bmN0aW9uKGIpIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbC5idG9hKGIpO1xuICAgIH0gOiBmdW5jdGlvbihiKSB7XG4gICAgICAgIHJldHVybiBiLnJlcGxhY2UoL1tcXHNcXFNdezEsM30vZywgY2JfZW5jb2RlKTtcbiAgICB9O1xuICAgIHZhciBfZW5jb2RlID0gYnVmZmVyID8gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgcmV0dXJuICh1LmNvbnN0cnVjdG9yID09PSBidWZmZXIuY29uc3RydWN0b3IgPyB1IDogbmV3IGJ1ZmZlcih1KSlcbiAgICAgICAgLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgIH1cbiAgICA6IGZ1bmN0aW9uICh1KSB7IHJldHVybiBidG9hKHV0b2IodSkpIH1cbiAgICA7XG4gICAgdmFyIGVuY29kZSA9IGZ1bmN0aW9uKHUsIHVyaXNhZmUpIHtcbiAgICAgICAgcmV0dXJuICF1cmlzYWZlXG4gICAgICAgICAgICA/IF9lbmNvZGUoU3RyaW5nKHUpKVxuICAgICAgICAgICAgOiBfZW5jb2RlKFN0cmluZyh1KSkucmVwbGFjZSgvWytcXC9dL2csIGZ1bmN0aW9uKG0wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG0wID09ICcrJyA/ICctJyA6ICdfJztcbiAgICAgICAgICAgIH0pLnJlcGxhY2UoLz0vZywgJycpO1xuICAgIH07XG4gICAgdmFyIGVuY29kZVVSSSA9IGZ1bmN0aW9uKHUpIHsgcmV0dXJuIGVuY29kZSh1LCB0cnVlKSB9O1xuICAgIC8vIGRlY29kZXIgc3R1ZmZcbiAgICB2YXIgcmVfYnRvdSA9IG5ldyBSZWdFeHAoW1xuICAgICAgICAnW1xceEMwLVxceERGXVtcXHg4MC1cXHhCRl0nLFxuICAgICAgICAnW1xceEUwLVxceEVGXVtcXHg4MC1cXHhCRl17Mn0nLFxuICAgICAgICAnW1xceEYwLVxceEY3XVtcXHg4MC1cXHhCRl17M30nXG4gICAgXS5qb2luKCd8JyksICdnJyk7XG4gICAgdmFyIGNiX2J0b3UgPSBmdW5jdGlvbihjY2NjKSB7XG4gICAgICAgIHN3aXRjaChjY2NjLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICB2YXIgY3AgPSAoKDB4MDcgJiBjY2NjLmNoYXJDb2RlQXQoMCkpIDw8IDE4KVxuICAgICAgICAgICAgICAgIHwgICAgKCgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKSA8PCAxMilcbiAgICAgICAgICAgICAgICB8ICAgICgoMHgzZiAmIGNjY2MuY2hhckNvZGVBdCgyKSkgPDwgIDYpXG4gICAgICAgICAgICAgICAgfCAgICAgKDB4M2YgJiBjY2NjLmNoYXJDb2RlQXQoMykpLFxuICAgICAgICAgICAgb2Zmc2V0ID0gY3AgLSAweDEwMDAwO1xuICAgICAgICAgICAgcmV0dXJuIChmcm9tQ2hhckNvZGUoKG9mZnNldCAgPj4+IDEwKSArIDB4RDgwMClcbiAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoKG9mZnNldCAmIDB4M0ZGKSArIDB4REMwMCkpO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gZnJvbUNoYXJDb2RlKFxuICAgICAgICAgICAgICAgICgoMHgwZiAmIGNjY2MuY2hhckNvZGVBdCgwKSkgPDwgMTIpXG4gICAgICAgICAgICAgICAgICAgIHwgKCgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKSA8PCA2KVxuICAgICAgICAgICAgICAgICAgICB8ICAoMHgzZiAmIGNjY2MuY2hhckNvZGVBdCgyKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gIGZyb21DaGFyQ29kZShcbiAgICAgICAgICAgICAgICAoKDB4MWYgJiBjY2NjLmNoYXJDb2RlQXQoMCkpIDw8IDYpXG4gICAgICAgICAgICAgICAgICAgIHwgICgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdmFyIGJ0b3UgPSBmdW5jdGlvbihiKSB7XG4gICAgICAgIHJldHVybiBiLnJlcGxhY2UocmVfYnRvdSwgY2JfYnRvdSk7XG4gICAgfTtcbiAgICB2YXIgY2JfZGVjb2RlID0gZnVuY3Rpb24oY2NjYykge1xuICAgICAgICB2YXIgbGVuID0gY2NjYy5sZW5ndGgsXG4gICAgICAgIHBhZGxlbiA9IGxlbiAlIDQsXG4gICAgICAgIG4gPSAobGVuID4gMCA/IGI2NHRhYltjY2NjLmNoYXJBdCgwKV0gPDwgMTggOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMSA/IGI2NHRhYltjY2NjLmNoYXJBdCgxKV0gPDwgMTIgOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMiA/IGI2NHRhYltjY2NjLmNoYXJBdCgyKV0gPDwgIDYgOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMyA/IGI2NHRhYltjY2NjLmNoYXJBdCgzKV0gICAgICAgOiAwKSxcbiAgICAgICAgY2hhcnMgPSBbXG4gICAgICAgICAgICBmcm9tQ2hhckNvZGUoIG4gPj4+IDE2KSxcbiAgICAgICAgICAgIGZyb21DaGFyQ29kZSgobiA+Pj4gIDgpICYgMHhmZiksXG4gICAgICAgICAgICBmcm9tQ2hhckNvZGUoIG4gICAgICAgICAmIDB4ZmYpXG4gICAgICAgIF07XG4gICAgICAgIGNoYXJzLmxlbmd0aCAtPSBbMCwgMCwgMiwgMV1bcGFkbGVuXTtcbiAgICAgICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICAgIH07XG4gICAgdmFyIGF0b2IgPSBnbG9iYWwuYXRvYiA/IGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbC5hdG9iKGEpO1xuICAgIH0gOiBmdW5jdGlvbihhKXtcbiAgICAgICAgcmV0dXJuIGEucmVwbGFjZSgvW1xcc1xcU117MSw0fS9nLCBjYl9kZWNvZGUpO1xuICAgIH07XG4gICAgdmFyIF9kZWNvZGUgPSBidWZmZXIgPyBmdW5jdGlvbihhKSB7XG4gICAgICAgIHJldHVybiAoYS5jb25zdHJ1Y3RvciA9PT0gYnVmZmVyLmNvbnN0cnVjdG9yXG4gICAgICAgICAgICAgICAgPyBhIDogbmV3IGJ1ZmZlcihhLCAnYmFzZTY0JykpLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIDogZnVuY3Rpb24oYSkgeyByZXR1cm4gYnRvdShhdG9iKGEpKSB9O1xuICAgIHZhciBkZWNvZGUgPSBmdW5jdGlvbihhKXtcbiAgICAgICAgcmV0dXJuIF9kZWNvZGUoXG4gICAgICAgICAgICBTdHJpbmcoYSkucmVwbGFjZSgvWy1fXS9nLCBmdW5jdGlvbihtMCkgeyByZXR1cm4gbTAgPT0gJy0nID8gJysnIDogJy8nIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1teQS1aYS16MC05XFwrXFwvXS9nLCAnJylcbiAgICAgICAgKTtcbiAgICB9O1xuICAgIHZhciBub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBCYXNlNjQgPSBnbG9iYWwuQmFzZTY0O1xuICAgICAgICBnbG9iYWwuQmFzZTY0ID0gX0Jhc2U2NDtcbiAgICAgICAgcmV0dXJuIEJhc2U2NDtcbiAgICB9O1xuICAgIC8vIGV4cG9ydCBCYXNlNjRcbiAgICBnbG9iYWwuQmFzZTY0ID0ge1xuICAgICAgICBWRVJTSU9OOiB2ZXJzaW9uLFxuICAgICAgICBhdG9iOiBhdG9iLFxuICAgICAgICBidG9hOiBidG9hLFxuICAgICAgICBmcm9tQmFzZTY0OiBkZWNvZGUsXG4gICAgICAgIHRvQmFzZTY0OiBlbmNvZGUsXG4gICAgICAgIHV0b2I6IHV0b2IsXG4gICAgICAgIGVuY29kZTogZW5jb2RlLFxuICAgICAgICBlbmNvZGVVUkk6IGVuY29kZVVSSSxcbiAgICAgICAgYnRvdTogYnRvdSxcbiAgICAgICAgZGVjb2RlOiBkZWNvZGUsXG4gICAgICAgIG5vQ29uZmxpY3Q6IG5vQ29uZmxpY3RcbiAgICB9O1xuICAgIC8vIGlmIEVTNSBpcyBhdmFpbGFibGUsIG1ha2UgQmFzZTY0LmV4dGVuZFN0cmluZygpIGF2YWlsYWJsZVxuICAgIGlmICh0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBub0VudW0gPSBmdW5jdGlvbih2KXtcbiAgICAgICAgICAgIHJldHVybiB7dmFsdWU6dixlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9O1xuICAgICAgICB9O1xuICAgICAgICBnbG9iYWwuQmFzZTY0LmV4dGVuZFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLCAnZnJvbUJhc2U2NCcsIG5vRW51bShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGUodGhpcylcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZSwgJ3RvQmFzZTY0Jywgbm9FbnVtKGZ1bmN0aW9uICh1cmlzYWZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGUodGhpcywgdXJpc2FmZSlcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZSwgJ3RvQmFzZTY0VVJJJywgbm9FbnVtKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZSh0aGlzLCB0cnVlKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gdGhhdCdzIGl0IVxuICAgIGlmIChnbG9iYWxbJ01ldGVvciddKSB7XG4gICAgICAgQmFzZTY0ID0gZ2xvYmFsLkJhc2U2NDsgLy8gZm9yIG5vcm1hbCBleHBvcnQgaW4gTWV0ZW9yLmpzXG4gICAgfVxufSkodGhpcyk7XG4iLCIndXNlIHN0cmljdCc7XG5cblxudmFyIHlhbWwgPSByZXF1aXJlKCcuL2xpYi9qcy15YW1sLmpzJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSB5YW1sO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBsb2FkZXIgPSByZXF1aXJlKCcuL2pzLXlhbWwvbG9hZGVyJyk7XG52YXIgZHVtcGVyID0gcmVxdWlyZSgnLi9qcy15YW1sL2R1bXBlcicpO1xuXG5cbmZ1bmN0aW9uIGRlcHJlY2F0ZWQobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRnVuY3Rpb24gJyArIG5hbWUgKyAnIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkLicpO1xuICB9O1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLlR5cGUgICAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvdHlwZScpO1xubW9kdWxlLmV4cG9ydHMuU2NoZW1hICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEnKTtcbm1vZHVsZS5leHBvcnRzLkZBSUxTQUZFX1NDSEVNQSAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2ZhaWxzYWZlJyk7XG5tb2R1bGUuZXhwb3J0cy5KU09OX1NDSEVNQSAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9qc29uJyk7XG5tb2R1bGUuZXhwb3J0cy5DT1JFX1NDSEVNQSAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9jb3JlJyk7XG5tb2R1bGUuZXhwb3J0cy5ERUZBVUxUX1NBRkVfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbm1vZHVsZS5leHBvcnRzLkRFRkFVTFRfRlVMTF9TQ0hFTUEgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfZnVsbCcpO1xubW9kdWxlLmV4cG9ydHMubG9hZCAgICAgICAgICAgICAgICA9IGxvYWRlci5sb2FkO1xubW9kdWxlLmV4cG9ydHMubG9hZEFsbCAgICAgICAgICAgICA9IGxvYWRlci5sb2FkQWxsO1xubW9kdWxlLmV4cG9ydHMuc2FmZUxvYWQgICAgICAgICAgICA9IGxvYWRlci5zYWZlTG9hZDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsICAgICAgICAgPSBsb2FkZXIuc2FmZUxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5kdW1wICAgICAgICAgICAgICAgID0gZHVtcGVyLmR1bXA7XG5tb2R1bGUuZXhwb3J0cy5zYWZlRHVtcCAgICAgICAgICAgID0gZHVtcGVyLnNhZmVEdW1wO1xubW9kdWxlLmV4cG9ydHMuWUFNTEV4Y2VwdGlvbiAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9leGNlcHRpb24nKTtcblxuLy8gRGVwcmVjYXJlZCBzY2hlbWEgbmFtZXMgZnJvbSBKUy1ZQU1MIDIuMC54XG5tb2R1bGUuZXhwb3J0cy5NSU5JTUFMX1NDSEVNQSA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZmFpbHNhZmUnKTtcbm1vZHVsZS5leHBvcnRzLlNBRkVfU0NIRU1BICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbm1vZHVsZS5leHBvcnRzLkRFRkFVTFRfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X2Z1bGwnKTtcblxuLy8gRGVwcmVjYXRlZCBmdW5jdGlvbnMgZnJvbSBKUy1ZQU1MIDEueC54XG5tb2R1bGUuZXhwb3J0cy5zY2FuICAgICAgICAgICA9IGRlcHJlY2F0ZWQoJ3NjYW4nKTtcbm1vZHVsZS5leHBvcnRzLnBhcnNlICAgICAgICAgID0gZGVwcmVjYXRlZCgncGFyc2UnKTtcbm1vZHVsZS5leHBvcnRzLmNvbXBvc2UgICAgICAgID0gZGVwcmVjYXRlZCgnY29tcG9zZScpO1xubW9kdWxlLmV4cG9ydHMuYWRkQ29uc3RydWN0b3IgPSBkZXByZWNhdGVkKCdhZGRDb25zdHJ1Y3RvcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIHN1YmplY3QgPT09ICd1bmRlZmluZWQnKSB8fCAobnVsbCA9PT0gc3ViamVjdCk7XG59XG5cblxuZnVuY3Rpb24gaXNPYmplY3Qoc3ViamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBzdWJqZWN0ID09PSAnb2JqZWN0JykgJiYgKG51bGwgIT09IHN1YmplY3QpO1xufVxuXG5cbmZ1bmN0aW9uIHRvQXJyYXkoc2VxdWVuY2UpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc2VxdWVuY2UpKSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlO1xuICB9IGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFsgc2VxdWVuY2UgXTtcbn1cblxuXG5mdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIGtleSwgc291cmNlS2V5cztcblxuICBpZiAoc291cmNlKSB7XG4gICAgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gc291cmNlS2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuXG5mdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkge1xuICB2YXIgcmVzdWx0ID0gJycsIGN5Y2xlO1xuXG4gIGZvciAoY3ljbGUgPSAwOyBjeWNsZSA8IGNvdW50OyBjeWNsZSArPSAxKSB7XG4gICAgcmVzdWx0ICs9IHN0cmluZztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cblxuZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7XG4gIHJldHVybiAoMCA9PT0gbnVtYmVyKSAmJiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSAxIC8gbnVtYmVyKTtcbn1cblxuXG5tb2R1bGUuZXhwb3J0cy5pc05vdGhpbmcgICAgICA9IGlzTm90aGluZztcbm1vZHVsZS5leHBvcnRzLmlzT2JqZWN0ICAgICAgID0gaXNPYmplY3Q7XG5tb2R1bGUuZXhwb3J0cy50b0FycmF5ICAgICAgICA9IHRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0cy5yZXBlYXQgICAgICAgICA9IHJlcGVhdDtcbm1vZHVsZS5leHBvcnRzLmlzTmVnYXRpdmVaZXJvID0gaXNOZWdhdGl2ZVplcm87XG5tb2R1bGUuZXhwb3J0cy5leHRlbmQgICAgICAgICA9IGV4dGVuZDtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSovXG5cbnZhciBjb21tb24gICAgICAgICAgICAgID0gcmVxdWlyZSgnLi9jb21tb24nKTtcbnZhciBZQU1MRXhjZXB0aW9uICAgICAgID0gcmVxdWlyZSgnLi9leGNlcHRpb24nKTtcbnZhciBERUZBVUxUX0ZVTExfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG52YXIgREVGQVVMVF9TQUZFX1NDSEVNQSA9IHJlcXVpcmUoJy4vc2NoZW1hL2RlZmF1bHRfc2FmZScpO1xuXG52YXIgX3RvU3RyaW5nICAgICAgID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgQ0hBUl9UQUIgICAgICAgICAgICAgICAgICA9IDB4MDk7IC8qIFRhYiAqL1xudmFyIENIQVJfTElORV9GRUVEICAgICAgICAgICAgPSAweDBBOyAvKiBMRiAqL1xudmFyIENIQVJfQ0FSUklBR0VfUkVUVVJOICAgICAgPSAweDBEOyAvKiBDUiAqL1xudmFyIENIQVJfU1BBQ0UgICAgICAgICAgICAgICAgPSAweDIwOyAvKiBTcGFjZSAqL1xudmFyIENIQVJfRVhDTEFNQVRJT04gICAgICAgICAgPSAweDIxOyAvKiAhICovXG52YXIgQ0hBUl9ET1VCTEVfUVVPVEUgICAgICAgICA9IDB4MjI7IC8qIFwiICovXG52YXIgQ0hBUl9TSEFSUCAgICAgICAgICAgICAgICA9IDB4MjM7IC8qICMgKi9cbnZhciBDSEFSX1BFUkNFTlQgICAgICAgICAgICAgID0gMHgyNTsgLyogJSAqL1xudmFyIENIQVJfQU1QRVJTQU5EICAgICAgICAgICAgPSAweDI2OyAvKiAmICovXG52YXIgQ0hBUl9TSU5HTEVfUVVPVEUgICAgICAgICA9IDB4Mjc7IC8qICcgKi9cbnZhciBDSEFSX0FTVEVSSVNLICAgICAgICAgICAgID0gMHgyQTsgLyogKiAqL1xudmFyIENIQVJfQ09NTUEgICAgICAgICAgICAgICAgPSAweDJDOyAvKiAsICovXG52YXIgQ0hBUl9NSU5VUyAgICAgICAgICAgICAgICA9IDB4MkQ7IC8qIC0gKi9cbnZhciBDSEFSX0NPTE9OICAgICAgICAgICAgICAgID0gMHgzQTsgLyogOiAqL1xudmFyIENIQVJfR1JFQVRFUl9USEFOICAgICAgICAgPSAweDNFOyAvKiA+ICovXG52YXIgQ0hBUl9RVUVTVElPTiAgICAgICAgICAgICA9IDB4M0Y7IC8qID8gKi9cbnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgICAgICAgID0gMHg0MDsgLyogQCAqL1xudmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCAgPSAweDVCOyAvKiBbICovXG52YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDB4NUQ7IC8qIF0gKi9cbnZhciBDSEFSX0dSQVZFX0FDQ0VOVCAgICAgICAgID0gMHg2MDsgLyogYCAqL1xudmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICAgPSAweDdCOyAvKiB7ICovXG52YXIgQ0hBUl9WRVJUSUNBTF9MSU5FICAgICAgICA9IDB4N0M7IC8qIHwgKi9cbnZhciBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgID0gMHg3RDsgLyogfSAqL1xuXG52YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9O1xuXG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDBdICAgPSAnXFxcXDAnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDA3XSAgID0gJ1xcXFxhJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwOF0gICA9ICdcXFxcYic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDldICAgPSAnXFxcXHQnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBBXSAgID0gJ1xcXFxuJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwQl0gICA9ICdcXFxcdic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MENdICAgPSAnXFxcXGYnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBEXSAgID0gJ1xcXFxyJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgxQl0gICA9ICdcXFxcZSc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjJdICAgPSAnXFxcXFwiJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHg1Q10gICA9ICdcXFxcXFxcXCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4ODVdICAgPSAnXFxcXE4nO1xuRVNDQVBFX1NFUVVFTkNFU1sweEEwXSAgID0gJ1xcXFxfJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMDI4XSA9ICdcXFxcTCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjAyOV0gPSAnXFxcXFAnO1xuXG52YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbXG4gICd5JywgJ1knLCAneWVzJywgJ1llcycsICdZRVMnLCAnb24nLCAnT24nLCAnT04nLFxuICAnbicsICdOJywgJ25vJywgJ05vJywgJ05PJywgJ29mZicsICdPZmYnLCAnT0ZGJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlTWFwKHNjaGVtYSwgbWFwKSB7XG4gIHZhciByZXN1bHQsIGtleXMsIGluZGV4LCBsZW5ndGgsIHRhZywgc3R5bGUsIHR5cGU7XG5cbiAgaWYgKG51bGwgPT09IG1hcCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJlc3VsdCA9IHt9O1xuICBrZXlzID0gT2JqZWN0LmtleXMobWFwKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0ga2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgdGFnID0ga2V5c1tpbmRleF07XG4gICAgc3R5bGUgPSBTdHJpbmcobWFwW3RhZ10pO1xuXG4gICAgaWYgKCchIScgPT09IHRhZy5zbGljZSgwLCAyKSkge1xuICAgICAgdGFnID0gJ3RhZzp5YW1sLm9yZywyMDAyOicgKyB0YWcuc2xpY2UoMik7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5jb21waWxlZFR5cGVNYXBbdGFnXTtcblxuICAgIGlmICh0eXBlICYmIF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHtcbiAgICAgIHN0eWxlID0gdHlwZS5zdHlsZUFsaWFzZXNbc3R5bGVdO1xuICAgIH1cblxuICAgIHJlc3VsdFt0YWddID0gc3R5bGU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7XG4gIHZhciBzdHJpbmcsIGhhbmRsZSwgbGVuZ3RoO1xuXG4gIHN0cmluZyA9IGNoYXJhY3Rlci50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblxuICBpZiAoY2hhcmFjdGVyIDw9IDB4RkYpIHtcbiAgICBoYW5kbGUgPSAneCc7XG4gICAgbGVuZ3RoID0gMjtcbiAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPD0gMHhGRkZGKSB7XG4gICAgaGFuZGxlID0gJ3UnO1xuICAgIGxlbmd0aCA9IDQ7XG4gIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDB4RkZGRkZGRkYpIHtcbiAgICBoYW5kbGUgPSAnVSc7XG4gICAgbGVuZ3RoID0gODtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignY29kZSBwb2ludCB3aXRoaW4gYSBzdHJpbmcgbWF5IG5vdCBiZSBncmVhdGVyIHRoYW4gMHhGRkZGRkZGRicpO1xuICB9XG5cbiAgcmV0dXJuICdcXFxcJyArIGhhbmRsZSArIGNvbW1vbi5yZXBlYXQoJzAnLCBsZW5ndGggLSBzdHJpbmcubGVuZ3RoKSArIHN0cmluZztcbn1cblxuZnVuY3Rpb24gU3RhdGUob3B0aW9ucykge1xuICB0aGlzLnNjaGVtYSAgICAgID0gb3B0aW9uc1snc2NoZW1hJ10gfHwgREVGQVVMVF9GVUxMX1NDSEVNQTtcbiAgdGhpcy5pbmRlbnQgICAgICA9IE1hdGgubWF4KDEsIChvcHRpb25zWydpbmRlbnQnXSB8fCAyKSk7XG4gIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zWydza2lwSW52YWxpZCddIHx8IGZhbHNlO1xuICB0aGlzLmZsb3dMZXZlbCAgID0gKGNvbW1vbi5pc05vdGhpbmcob3B0aW9uc1snZmxvd0xldmVsJ10pID8gLTEgOiBvcHRpb25zWydmbG93TGV2ZWwnXSk7XG4gIHRoaXMuc3R5bGVNYXAgICAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbJ3N0eWxlcyddIHx8IG51bGwpO1xuICB0aGlzLnNvcnRLZXlzICAgID0gb3B0aW9uc1snc29ydEtleXMnXSB8fCBmYWxzZTtcblxuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLmV4cGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0O1xuXG4gIHRoaXMudGFnID0gbnVsbDtcbiAgdGhpcy5yZXN1bHQgPSAnJztcblxuICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTtcbiAgdGhpcy51c2VkRHVwbGljYXRlcyA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGluZGVudFN0cmluZyhzdHJpbmcsIHNwYWNlcykge1xuICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdCgnICcsIHNwYWNlcyksXG4gICAgICBwb3NpdGlvbiA9IDAsXG4gICAgICBuZXh0ID0gLTEsXG4gICAgICByZXN1bHQgPSAnJyxcbiAgICAgIGxpbmUsXG4gICAgICBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXG4gIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCkge1xuICAgIG5leHQgPSBzdHJpbmcuaW5kZXhPZignXFxuJywgcG9zaXRpb24pO1xuICAgIGlmIChuZXh0ID09PSAtMSkge1xuICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7XG4gICAgICBwb3NpdGlvbiA9IGxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpO1xuICAgICAgcG9zaXRpb24gPSBuZXh0ICsgMTtcbiAgICB9XG4gICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09ICdcXG4nKSB7XG4gICAgICByZXN1bHQgKz0gaW5kO1xuICAgIH1cbiAgICByZXN1bHQgKz0gbGluZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKSB7XG4gIHJldHVybiAnXFxuJyArIGNvbW1vbi5yZXBlYXQoJyAnLCBzdGF0ZS5pbmRlbnQgKiBsZXZlbCk7XG59XG5cbmZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyKSB7XG4gIHZhciBpbmRleCwgbGVuZ3RoLCB0eXBlO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzdGF0ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0eXBlID0gc3RhdGUuaW1wbGljaXRUeXBlc1tpbmRleF07XG5cbiAgICBpZiAodHlwZS5yZXNvbHZlKHN0cikpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gU3RyaW5nQnVpbGRlcihzb3VyY2UpIHtcbiAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gIHRoaXMucmVzdWx0ID0gJyc7XG4gIHRoaXMuY2hlY2twb2ludCA9IDA7XG59XG5cblN0cmluZ0J1aWxkZXIucHJvdG90eXBlLnRha2VVcFRvID0gZnVuY3Rpb24gKHBvc2l0aW9uKSB7XG4gIHZhciBlcjtcblxuICBpZiAocG9zaXRpb24gPCB0aGlzLmNoZWNrcG9pbnQpIHtcbiAgICBlciA9IG5ldyBFcnJvcigncG9zaXRpb24gc2hvdWxkIGJlID4gY2hlY2twb2ludCcpO1xuICAgIGVyLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgZXIuY2hlY2twb2ludCA9IHRoaXMuY2hlY2twb2ludDtcbiAgICB0aHJvdyBlcjtcbiAgfVxuXG4gIHRoaXMucmVzdWx0ICs9IHRoaXMuc291cmNlLnNsaWNlKHRoaXMuY2hlY2twb2ludCwgcG9zaXRpb24pO1xuICB0aGlzLmNoZWNrcG9pbnQgPSBwb3NpdGlvbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5TdHJpbmdCdWlsZGVyLnByb3RvdHlwZS5lc2NhcGVDaGFyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgY2hhcmFjdGVyLCBlc2M7XG5cbiAgY2hhcmFjdGVyID0gdGhpcy5zb3VyY2UuY2hhckNvZGVBdCh0aGlzLmNoZWNrcG9pbnQpO1xuICBlc2MgPSBFU0NBUEVfU0VRVUVOQ0VTW2NoYXJhY3Rlcl0gfHwgZW5jb2RlSGV4KGNoYXJhY3Rlcik7XG4gIHRoaXMucmVzdWx0ICs9IGVzYztcbiAgdGhpcy5jaGVja3BvaW50ICs9IDE7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5TdHJpbmdCdWlsZGVyLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLmNoZWNrcG9pbnQpIHtcbiAgICB0aGlzLnRha2VVcFRvKHRoaXMuc291cmNlLmxlbmd0aCk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHdyaXRlU2NhbGFyKHN0YXRlLCBvYmplY3QsIGxldmVsKSB7XG4gIHZhciBzaW1wbGUsIGZpcnN0LCBzcGFjZVdyYXAsIGZvbGRlZCwgbGl0ZXJhbCwgc2luZ2xlLCBkb3VibGUsXG4gICAgICBzYXdMaW5lRmVlZCwgbGluZVBvc2l0aW9uLCBsb25nZXN0TGluZSwgaW5kZW50LCBtYXgsIGNoYXJhY3RlcixcbiAgICAgIHBvc2l0aW9uLCBlc2NhcGVTZXEsIGhleEVzYywgcHJldmlvdXMsIGxpbmVMZW5ndGgsIG1vZGlmaWVyLFxuICAgICAgdHJhaWxpbmdMaW5lQnJlYWtzLCByZXN1bHQ7XG5cbiAgaWYgKDAgPT09IG9iamVjdC5sZW5ndGgpIHtcbiAgICBzdGF0ZS5kdW1wID0gXCInJ1wiO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICgtMSAhPT0gREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVguaW5kZXhPZihvYmplY3QpKSB7XG4gICAgc3RhdGUuZHVtcCA9IFwiJ1wiICsgb2JqZWN0ICsgXCInXCI7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2ltcGxlID0gdHJ1ZTtcbiAgZmlyc3QgPSBvYmplY3QubGVuZ3RoID8gb2JqZWN0LmNoYXJDb2RlQXQoMCkgOiAwO1xuICBzcGFjZVdyYXAgPSAoQ0hBUl9TUEFDRSA9PT0gZmlyc3QgfHxcbiAgICAgICAgICAgICAgIENIQVJfU1BBQ0UgPT09IG9iamVjdC5jaGFyQ29kZUF0KG9iamVjdC5sZW5ndGggLSAxKSk7XG5cbiAgLy8gU2ltcGxpZmllZCBjaGVjayBmb3IgcmVzdHJpY3RlZCBmaXJzdCBjaGFyYWN0ZXJzXG4gIC8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI25zLXBsYWluLWZpcnN0JTI4YyUyOVxuICBpZiAoQ0hBUl9NSU5VUyAgICAgICAgID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9RVUVTVElPTiAgICAgID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9DT01NRVJDSUFMX0FUID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9HUkFWRV9BQ0NFTlQgID09PSBmaXJzdCkge1xuICAgIHNpbXBsZSA9IGZhbHNlO1xuICB9XG5cbiAgLy8gY2FuIG9ubHkgdXNlID4gYW5kIHwgaWYgbm90IHdyYXBwZWQgaW4gc3BhY2VzLlxuICBpZiAoc3BhY2VXcmFwKSB7XG4gICAgc2ltcGxlID0gZmFsc2U7XG4gICAgZm9sZGVkID0gZmFsc2U7XG4gICAgbGl0ZXJhbCA9IGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIGZvbGRlZCA9IHRydWU7XG4gICAgbGl0ZXJhbCA9IHRydWU7XG4gIH1cblxuICBzaW5nbGUgPSB0cnVlO1xuICBkb3VibGUgPSBuZXcgU3RyaW5nQnVpbGRlcihvYmplY3QpO1xuXG4gIHNhd0xpbmVGZWVkID0gZmFsc2U7XG4gIGxpbmVQb3NpdGlvbiA9IDA7XG4gIGxvbmdlc3RMaW5lID0gMDtcblxuICBpbmRlbnQgPSBzdGF0ZS5pbmRlbnQgKiBsZXZlbDtcbiAgbWF4ID0gODA7XG4gIGlmIChpbmRlbnQgPCA0MCkge1xuICAgIG1heCAtPSBpbmRlbnQ7XG4gIH0gZWxzZSB7XG4gICAgbWF4ID0gNDA7XG4gIH1cblxuICBmb3IgKHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBvYmplY3QubGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgY2hhcmFjdGVyID0gb2JqZWN0LmNoYXJDb2RlQXQocG9zaXRpb24pO1xuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIC8vIENoYXJhY3RlcnMgdGhhdCBjYW4gbmV2ZXIgYXBwZWFyIGluIHRoZSBzaW1wbGUgc2NhbGFyXG4gICAgICBpZiAoIXNpbXBsZUNoYXIoY2hhcmFjdGVyKSkge1xuICAgICAgICBzaW1wbGUgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0aWxsIHNpbXBsZS4gIElmIHdlIG1ha2UgaXQgYWxsIHRoZSB3YXkgdGhyb3VnaCBsaWtlXG4gICAgICAgIC8vIHRoaXMsIHRoZW4gd2UgY2FuIGp1c3QgZHVtcCB0aGUgc3RyaW5nIGFzLWlzLlxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2luZ2xlICYmIGNoYXJhY3RlciA9PT0gQ0hBUl9TSU5HTEVfUVVPVEUpIHtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcmFjdGVyXTtcbiAgICBoZXhFc2MgPSBuZWVkc0hleEVzY2FwZShjaGFyYWN0ZXIpO1xuXG4gICAgaWYgKCFlc2NhcGVTZXEgJiYgIWhleEVzYykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ0hBUl9MSU5FX0ZFRUQgJiZcbiAgICAgICAgY2hhcmFjdGVyICE9PSBDSEFSX0RPVUJMRV9RVU9URSAmJlxuICAgICAgICBjaGFyYWN0ZXIgIT09IENIQVJfU0lOR0xFX1FVT1RFKSB7XG4gICAgICBmb2xkZWQgPSBmYWxzZTtcbiAgICAgIGxpdGVyYWwgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ0hBUl9MSU5FX0ZFRUQpIHtcbiAgICAgIHNhd0xpbmVGZWVkID0gdHJ1ZTtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgICAgaWYgKHBvc2l0aW9uID4gMCkge1xuICAgICAgICBwcmV2aW91cyA9IG9iamVjdC5jaGFyQ29kZUF0KHBvc2l0aW9uIC0gMSk7XG4gICAgICAgIGlmIChwcmV2aW91cyA9PT0gQ0hBUl9TUEFDRSkge1xuICAgICAgICAgIGxpdGVyYWwgPSBmYWxzZTtcbiAgICAgICAgICBmb2xkZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvbGRlZCkge1xuICAgICAgICBsaW5lTGVuZ3RoID0gcG9zaXRpb24gLSBsaW5lUG9zaXRpb247XG4gICAgICAgIGxpbmVQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICBpZiAobGluZUxlbmd0aCA+IGxvbmdlc3RMaW5lKSB7XG4gICAgICAgICAgbG9uZ2VzdExpbmUgPSBsaW5lTGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ0hBUl9ET1VCTEVfUVVPVEUpIHtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGRvdWJsZS50YWtlVXBUbyhwb3NpdGlvbik7XG4gICAgZG91YmxlLmVzY2FwZUNoYXIoKTtcbiAgfVxuXG4gIGlmIChzaW1wbGUgJiYgdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBvYmplY3QpKSB7XG4gICAgc2ltcGxlID0gZmFsc2U7XG4gIH1cblxuICBtb2RpZmllciA9ICcnO1xuICBpZiAoZm9sZGVkIHx8IGxpdGVyYWwpIHtcbiAgICB0cmFpbGluZ0xpbmVCcmVha3MgPSAwO1xuICAgIGlmIChvYmplY3QuY2hhckNvZGVBdChvYmplY3QubGVuZ3RoIC0gMSkgPT09IENIQVJfTElORV9GRUVEKSB7XG4gICAgICB0cmFpbGluZ0xpbmVCcmVha3MgKz0gMTtcbiAgICAgIGlmIChvYmplY3QuY2hhckNvZGVBdChvYmplY3QubGVuZ3RoIC0gMikgPT09IENIQVJfTElORV9GRUVEKSB7XG4gICAgICAgIHRyYWlsaW5nTGluZUJyZWFrcyArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0cmFpbGluZ0xpbmVCcmVha3MgPT09IDApIHtcbiAgICAgIG1vZGlmaWVyID0gJy0nO1xuICAgIH0gZWxzZSBpZiAodHJhaWxpbmdMaW5lQnJlYWtzID09PSAyKSB7XG4gICAgICBtb2RpZmllciA9ICcrJztcbiAgICB9XG4gIH1cblxuICBpZiAobGl0ZXJhbCAmJiBsb25nZXN0TGluZSA8IG1heCkge1xuICAgIGZvbGRlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gSWYgaXQncyBsaXRlcmFsbHkgb25lIGxpbmUsIHRoZW4gZG9uJ3QgYm90aGVyIHdpdGggdGhlIGxpdGVyYWwuXG4gIC8vIFdlIG1heSBzdGlsbCB3YW50IHRvIGRvIGEgZm9sZCwgdGhvdWdoLCBpZiBpdCdzIGEgc3VwZXIgbG9uZyBsaW5lLlxuICBpZiAoIXNhd0xpbmVGZWVkKSB7XG4gICAgbGl0ZXJhbCA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHNpbXBsZSkge1xuICAgIHN0YXRlLmR1bXAgPSBvYmplY3Q7XG4gIH0gZWxzZSBpZiAoc2luZ2xlKSB7XG4gICAgc3RhdGUuZHVtcCA9ICdcXCcnICsgb2JqZWN0ICsgJ1xcJyc7XG4gIH0gZWxzZSBpZiAoZm9sZGVkKSB7XG4gICAgcmVzdWx0ID0gZm9sZChvYmplY3QsIG1heCk7XG4gICAgc3RhdGUuZHVtcCA9ICc+JyArIG1vZGlmaWVyICsgJ1xcbicgKyBpbmRlbnRTdHJpbmcocmVzdWx0LCBpbmRlbnQpO1xuICB9IGVsc2UgaWYgKGxpdGVyYWwpIHtcbiAgICBpZiAoIW1vZGlmaWVyKSB7XG4gICAgICBvYmplY3QgPSBvYmplY3QucmVwbGFjZSgvXFxuJC8sICcnKTtcbiAgICB9XG4gICAgc3RhdGUuZHVtcCA9ICd8JyArIG1vZGlmaWVyICsgJ1xcbicgKyBpbmRlbnRTdHJpbmcob2JqZWN0LCBpbmRlbnQpO1xuICB9IGVsc2UgaWYgKGRvdWJsZSkge1xuICAgIGRvdWJsZS5maW5pc2goKTtcbiAgICBzdGF0ZS5kdW1wID0gJ1wiJyArIGRvdWJsZS5yZXN1bHQgKyAnXCInO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGR1bXAgc2NhbGFyIHZhbHVlJyk7XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8vIFRoZSBgdHJhaWxpbmdgIHZhciBpcyBhIHJlZ2V4cCBtYXRjaCBvZiBhbnkgdHJhaWxpbmcgYFxcbmAgY2hhcmFjdGVycy5cbi8vXG4vLyBUaGVyZSBhcmUgdGhyZWUgY2FzZXMgd2UgY2FyZSBhYm91dDpcbi8vXG4vLyAxLiBPbmUgdHJhaWxpbmcgYFxcbmAgb24gdGhlIHN0cmluZy4gIEp1c3QgdXNlIGB8YCBvciBgPmAuXG4vLyAgICBUaGlzIGlzIHRoZSBhc3N1bWVkIGRlZmF1bHQuICh0cmFpbGluZyA9IG51bGwpXG4vLyAyLiBObyB0cmFpbGluZyBgXFxuYCBvbiB0aGUgc3RyaW5nLiAgVXNlIGB8LWAgb3IgYD4tYCB0byBcImNob21wXCIgdGhlIGVuZC5cbi8vIDMuIE1vcmUgdGhhbiBvbmUgdHJhaWxpbmcgYFxcbmAgb24gdGhlIHN0cmluZy4gIFVzZSBgfCtgIG9yIGA+K2AuXG4vL1xuLy8gSW4gdGhlIGNhc2Ugb2YgYD4rYCwgdGhlc2UgbGluZSBicmVha3MgYXJlICpub3QqIGRvdWJsZWQgKGxpa2UgdGhlIGxpbmVcbi8vIGJyZWFrcyB3aXRoaW4gdGhlIHN0cmluZyksIHNvIGl0J3MgaW1wb3J0YW50IHRvIG9ubHkgZW5kIHdpdGggdGhlIGV4YWN0XG4vLyBzYW1lIG51bWJlciBhcyB3ZSBzdGFydGVkLlxuZnVuY3Rpb24gZm9sZChvYmplY3QsIG1heCkge1xuICB2YXIgcmVzdWx0ID0gJycsXG4gICAgICBwb3NpdGlvbiA9IDAsXG4gICAgICBsZW5ndGggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgdHJhaWxpbmcgPSAvXFxuKyQvLmV4ZWMob2JqZWN0KSxcbiAgICAgIG5ld0xpbmU7XG5cbiAgaWYgKHRyYWlsaW5nKSB7XG4gICAgbGVuZ3RoID0gdHJhaWxpbmcuaW5kZXggKyAxO1xuICB9XG5cbiAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoKSB7XG4gICAgbmV3TGluZSA9IG9iamVjdC5pbmRleE9mKCdcXG4nLCBwb3NpdGlvbik7XG4gICAgaWYgKG5ld0xpbmUgPiBsZW5ndGggfHwgbmV3TGluZSA9PT0gLTEpIHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ICs9ICdcXG5cXG4nO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IGZvbGRMaW5lKG9iamVjdC5zbGljZShwb3NpdGlvbiwgbGVuZ3RoKSwgbWF4KTtcbiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdCArPSAnXFxuXFxuJztcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSBmb2xkTGluZShvYmplY3Quc2xpY2UocG9zaXRpb24sIG5ld0xpbmUpLCBtYXgpO1xuICAgICAgcG9zaXRpb24gPSBuZXdMaW5lICsgMTtcbiAgICB9XG4gIH1cbiAgaWYgKHRyYWlsaW5nICYmIHRyYWlsaW5nWzBdICE9PSAnXFxuJykge1xuICAgIHJlc3VsdCArPSB0cmFpbGluZ1swXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGZvbGRMaW5lKGxpbmUsIG1heCkge1xuICBpZiAobGluZSA9PT0gJycpIHtcbiAgICByZXR1cm4gbGluZTtcbiAgfVxuXG4gIHZhciBmb2xkUmUgPSAvW15cXHNdIFteXFxzXS9nLFxuICAgICAgcmVzdWx0ID0gJycsXG4gICAgICBwcmV2TWF0Y2ggPSAwLFxuICAgICAgZm9sZFN0YXJ0ID0gMCxcbiAgICAgIG1hdGNoID0gZm9sZFJlLmV4ZWMobGluZSksXG4gICAgICBpbmRleCxcbiAgICAgIGZvbGRFbmQsXG4gICAgICBmb2xkZWQ7XG5cbiAgd2hpbGUgKG1hdGNoKSB7XG4gICAgaW5kZXggPSBtYXRjaC5pbmRleDtcblxuICAgIC8vIHdoZW4gd2UgY3Jvc3MgdGhlIG1heCBsZW4sIGlmIHRoZSBwcmV2aW91cyBtYXRjaCB3b3VsZCd2ZVxuICAgIC8vIGJlZW4gb2ssIHVzZSB0aGF0IG9uZSwgYW5kIGNhcnJ5IG9uLiAgSWYgdGhlcmUgd2FzIG5vIHByZXZpb3VzXG4gICAgLy8gbWF0Y2ggb24gdGhpcyBmb2xkIHNlY3Rpb24sIHRoZW4ganVzdCBoYXZlIGEgbG9uZyBsaW5lLlxuICAgIGlmIChpbmRleCAtIGZvbGRTdGFydCA+IG1heCkge1xuICAgICAgaWYgKHByZXZNYXRjaCAhPT0gZm9sZFN0YXJ0KSB7XG4gICAgICAgIGZvbGRFbmQgPSBwcmV2TWF0Y2g7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb2xkRW5kID0gaW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ICs9ICdcXG4nO1xuICAgICAgfVxuICAgICAgZm9sZGVkID0gbGluZS5zbGljZShmb2xkU3RhcnQsIGZvbGRFbmQpO1xuICAgICAgcmVzdWx0ICs9IGZvbGRlZDtcbiAgICAgIGZvbGRTdGFydCA9IGZvbGRFbmQgKyAxO1xuICAgIH1cbiAgICBwcmV2TWF0Y2ggPSBpbmRleCArIDE7XG4gICAgbWF0Y2ggPSBmb2xkUmUuZXhlYyhsaW5lKTtcbiAgfVxuXG4gIGlmIChyZXN1bHQpIHtcbiAgICByZXN1bHQgKz0gJ1xcbic7XG4gIH1cblxuICAvLyBpZiB3ZSBlbmQgdXAgd2l0aCBvbmUgbGFzdCB3b3JkIGF0IHRoZSBlbmQsIHRoZW4gdGhlIGxhc3QgYml0IG1pZ2h0XG4gIC8vIGJlIHNsaWdodGx5IGJpZ2dlciB0aGFuIHdlIHdhbnRlZCwgYmVjYXVzZSB3ZSBleGl0ZWQgb3V0IG9mIHRoZSBsb29wLlxuICBpZiAoZm9sZFN0YXJ0ICE9PSBwcmV2TWF0Y2ggJiYgbGluZS5sZW5ndGggLSBmb2xkU3RhcnQgPiBtYXgpIHtcbiAgICByZXN1bHQgKz0gbGluZS5zbGljZShmb2xkU3RhcnQsIHByZXZNYXRjaCkgKyAnXFxuJyArXG4gICAgICAgICAgICAgIGxpbmUuc2xpY2UocHJldk1hdGNoICsgMSk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ICs9IGxpbmUuc2xpY2UoZm9sZFN0YXJ0KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiBjaGFyYWN0ZXIgY2FuIGJlIGZvdW5kIGluIGEgc2ltcGxlIHNjYWxhclxuZnVuY3Rpb24gc2ltcGxlQ2hhcihjaGFyYWN0ZXIpIHtcbiAgcmV0dXJuIENIQVJfVEFCICAgICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9MSU5FX0ZFRUQgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTiAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQ09NTUEgICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1NIQVJQICAgICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQU1QRVJTQU5EICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9BU1RFUklTSyAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0VYQ0xBTUFUSU9OICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfVkVSVElDQUxfTElORSAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9HUkVBVEVSX1RIQU4gICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1NJTkdMRV9RVU9URSAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfRE9VQkxFX1FVT1RFICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9QRVJDRU5UICAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0NPTE9OICAgICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgICFFU0NBUEVfU0VRVUVOQ0VTW2NoYXJhY3Rlcl0gICAgICAgICAgICAmJlxuICAgICAgICAgIW5lZWRzSGV4RXNjYXBlKGNoYXJhY3Rlcik7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGNvZGUgbmVlZHMgdG8gYmUgZXNjYXBlZC5cbmZ1bmN0aW9uIG5lZWRzSGV4RXNjYXBlKGNoYXJhY3Rlcikge1xuICByZXR1cm4gISgoMHgwMDAyMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDAwMDdFKSB8fFxuICAgICAgICAgICAoMHgwMDA4NSA9PT0gY2hhcmFjdGVyKSAgICAgICAgICAgICAgICAgICAgICAgICB8fFxuICAgICAgICAgICAoMHgwMDBBMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDBEN0ZGKSB8fFxuICAgICAgICAgICAoMHgwRTAwMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDBGRkZEKSB8fFxuICAgICAgICAgICAoMHgxMDAwMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MTBGRkZGKSk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvd1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgLy8gV3JpdGUgb25seSB2YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0W2luZGV4XSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgaWYgKDAgIT09IGluZGV4KSB7XG4gICAgICAgIF9yZXN1bHQgKz0gJywgJztcbiAgICAgIH1cbiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gJ1snICsgX3Jlc3VsdCArICddJztcbn1cblxuZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgLy8gV3JpdGUgb25seSB2YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdFtpbmRleF0sIHRydWUsIHRydWUpKSB7XG4gICAgICBpZiAoIWNvbXBhY3QgfHwgMCAhPT0gaW5kZXgpIHtcbiAgICAgICAgX3Jlc3VsdCArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgICB9XG4gICAgICBfcmVzdWx0ICs9ICctICcgKyBzdGF0ZS5kdW1wO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICdbXSc7IC8vIEVtcHR5IHNlcXVlbmNlIGlmIG5vIHZhbGlkIHZhbHVlcy5cbn1cblxuZnVuY3Rpb24gd3JpdGVGbG93TWFwcGluZyhzdGF0ZSwgbGV2ZWwsIG9iamVjdCkge1xuICB2YXIgX3Jlc3VsdCAgICAgICA9ICcnLFxuICAgICAgX3RhZyAgICAgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGgsXG4gICAgICBvYmplY3RLZXksXG4gICAgICBvYmplY3RWYWx1ZSxcbiAgICAgIHBhaXJCdWZmZXI7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdEtleUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXJCdWZmZXIgPSAnJztcblxuICAgIGlmICgwICE9PSBpbmRleCkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnLCAnO1xuICAgIH1cblxuICAgIG9iamVjdEtleSA9IG9iamVjdEtleUxpc3RbaW5kZXhdO1xuICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdEtleSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBwYWlyIGJlY2F1c2Ugb2YgaW52YWxpZCBrZXk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNCkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnPyAnO1xuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcCArICc6ICc7XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdFZhbHVlLCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIHZhbHVlLlxuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcblxuICAgIC8vIEJvdGgga2V5IGFuZCB2YWx1ZSBhcmUgdmFsaWQuXG4gICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyO1xuICB9XG5cbiAgc3RhdGUudGFnID0gX3RhZztcbiAgc3RhdGUuZHVtcCA9ICd7JyArIF9yZXN1bHQgKyAnfSc7XG59XG5cbmZ1bmN0aW9uIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ICAgICAgID0gJycsXG4gICAgICBfdGFnICAgICAgICAgID0gc3RhdGUudGFnLFxuICAgICAgb2JqZWN0S2V5TGlzdCA9IE9iamVjdC5rZXlzKG9iamVjdCksXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aCxcbiAgICAgIG9iamVjdEtleSxcbiAgICAgIG9iamVjdFZhbHVlLFxuICAgICAgZXhwbGljaXRQYWlyLFxuICAgICAgcGFpckJ1ZmZlcjtcblxuICAvLyBBbGxvdyBzb3J0aW5nIGtleXMgc28gdGhhdCB0aGUgb3V0cHV0IGZpbGUgaXMgZGV0ZXJtaW5pc3RpY1xuICBpZiAoc3RhdGUuc29ydEtleXMgPT09IHRydWUpIHtcbiAgICAvLyBEZWZhdWx0IHNvcnRpbmdcbiAgICBvYmplY3RLZXlMaXN0LnNvcnQoKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBDdXN0b20gc29ydCBmdW5jdGlvblxuICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7XG4gIH0gZWxzZSBpZiAoc3RhdGUuc29ydEtleXMpIHtcbiAgICAvLyBTb21ldGhpbmcgaXMgd3JvbmdcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignc29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdEtleUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXJCdWZmZXIgPSAnJztcblxuICAgIGlmICghY29tcGFjdCB8fCAwICE9PSBpbmRleCkge1xuICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgfVxuXG4gICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07XG4gICAgb2JqZWN0VmFsdWUgPSBvYmplY3Rbb2JqZWN0S2V5XTtcblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdEtleSwgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgcGFpciBiZWNhdXNlIG9mIGludmFsaWQga2V5LlxuICAgIH1cblxuICAgIGV4cGxpY2l0UGFpciA9IChudWxsICE9PSBzdGF0ZS50YWcgJiYgJz8nICE9PSBzdGF0ZS50YWcpIHx8XG4gICAgICAgICAgICAgICAgICAgKHN0YXRlLmR1bXAgJiYgc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KTtcblxuICAgIGlmIChleHBsaWNpdFBhaXIpIHtcbiAgICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgcGFpckJ1ZmZlciArPSAnPyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYWlyQnVmZmVyICs9ICc/ICc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wO1xuXG4gICAgaWYgKGV4cGxpY2l0UGFpcikge1xuICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0VmFsdWUsIHRydWUsIGV4cGxpY2l0UGFpcikpIHtcbiAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgcGFpciBiZWNhdXNlIG9mIGludmFsaWQgdmFsdWUuXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmR1bXAgJiYgQ0hBUl9MSU5FX0ZFRUQgPT09IHN0YXRlLmR1bXAuY2hhckNvZGVBdCgwKSkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnOic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gJzogJztcbiAgICB9XG5cbiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7XG5cbiAgICAvLyBCb3RoIGtleSBhbmQgdmFsdWUgYXJlIHZhbGlkLlxuICAgIF9yZXN1bHQgKz0gcGFpckJ1ZmZlcjtcbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICd7fSc7IC8vIEVtcHR5IG1hcHBpbmcgaWYgbm8gdmFsaWQgcGFpcnMuXG59XG5cbmZ1bmN0aW9uIGRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgZXhwbGljaXQpIHtcbiAgdmFyIF9yZXN1bHQsIHR5cGVMaXN0LCBpbmRleCwgbGVuZ3RoLCB0eXBlLCBzdHlsZTtcblxuICB0eXBlTGlzdCA9IGV4cGxpY2l0ID8gc3RhdGUuZXhwbGljaXRUeXBlcyA6IHN0YXRlLmltcGxpY2l0VHlwZXM7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHR5cGVMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0eXBlID0gdHlwZUxpc3RbaW5kZXhdO1xuXG4gICAgaWYgKCh0eXBlLmluc3RhbmNlT2YgIHx8IHR5cGUucHJlZGljYXRlKSAmJlxuICAgICAgICAoIXR5cGUuaW5zdGFuY2VPZiB8fCAoKCdvYmplY3QnID09PSB0eXBlb2Ygb2JqZWN0KSAmJiAob2JqZWN0IGluc3RhbmNlb2YgdHlwZS5pbnN0YW5jZU9mKSkpICYmXG4gICAgICAgICghdHlwZS5wcmVkaWNhdGUgIHx8IHR5cGUucHJlZGljYXRlKG9iamVjdCkpKSB7XG5cbiAgICAgIHN0YXRlLnRhZyA9IGV4cGxpY2l0ID8gdHlwZS50YWcgOiAnPyc7XG5cbiAgICAgIGlmICh0eXBlLnJlcHJlc2VudCkge1xuICAgICAgICBzdHlsZSA9IHN0YXRlLnN0eWxlTWFwW3R5cGUudGFnXSB8fCB0eXBlLmRlZmF1bHRTdHlsZTtcblxuICAgICAgICBpZiAoJ1tvYmplY3QgRnVuY3Rpb25dJyA9PT0gX3RvU3RyaW5nLmNhbGwodHlwZS5yZXByZXNlbnQpKSB7XG4gICAgICAgICAgX3Jlc3VsdCA9IHR5cGUucmVwcmVzZW50KG9iamVjdCwgc3R5bGUpO1xuICAgICAgICB9IGVsc2UgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUucmVwcmVzZW50LCBzdHlsZSkpIHtcbiAgICAgICAgICBfcmVzdWx0ID0gdHlwZS5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCchPCcgKyB0eXBlLnRhZyArICc+IHRhZyByZXNvbHZlciBhY2NlcHRzIG5vdCBcIicgKyBzdHlsZSArICdcIiBzdHlsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUuZHVtcCA9IF9yZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gU2VyaWFsaXplcyBgb2JqZWN0YCBhbmQgd3JpdGVzIGl0IHRvIGdsb2JhbCBgcmVzdWx0YC5cbi8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBvciBmYWxzZSBvbiBpbnZhbGlkIG9iamVjdC5cbi8vXG5mdW5jdGlvbiB3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3QsIGJsb2NrLCBjb21wYWN0KSB7XG4gIHN0YXRlLnRhZyA9IG51bGw7XG4gIHN0YXRlLmR1bXAgPSBvYmplY3Q7XG5cbiAgaWYgKCFkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGZhbHNlKSkge1xuICAgIGRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgdHJ1ZSk7XG4gIH1cblxuICB2YXIgdHlwZSA9IF90b1N0cmluZy5jYWxsKHN0YXRlLmR1bXApO1xuXG4gIGlmIChibG9jaykge1xuICAgIGJsb2NrID0gKDAgPiBzdGF0ZS5mbG93TGV2ZWwgfHwgc3RhdGUuZmxvd0xldmVsID4gbGV2ZWwpO1xuICB9XG5cbiAgaWYgKChudWxsICE9PSBzdGF0ZS50YWcgJiYgJz8nICE9PSBzdGF0ZS50YWcpIHx8ICgyICE9PSBzdGF0ZS5pbmRlbnQgJiYgbGV2ZWwgPiAwKSkge1xuICAgIGNvbXBhY3QgPSBmYWxzZTtcbiAgfVxuXG4gIHZhciBvYmplY3RPckFycmF5ID0gJ1tvYmplY3QgT2JqZWN0XScgPT09IHR5cGUgfHwgJ1tvYmplY3QgQXJyYXldJyA9PT0gdHlwZSxcbiAgICAgIGR1cGxpY2F0ZUluZGV4LFxuICAgICAgZHVwbGljYXRlO1xuXG4gIGlmIChvYmplY3RPckFycmF5KSB7XG4gICAgZHVwbGljYXRlSW5kZXggPSBzdGF0ZS5kdXBsaWNhdGVzLmluZGV4T2Yob2JqZWN0KTtcbiAgICBkdXBsaWNhdGUgPSBkdXBsaWNhdGVJbmRleCAhPT0gLTE7XG4gIH1cblxuICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgIHN0YXRlLmR1bXAgPSAnKnJlZl8nICsgZHVwbGljYXRlSW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHtcbiAgICAgIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSA9IHRydWU7XG4gICAgfVxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyA9PT0gdHlwZSkge1xuICAgICAgaWYgKGJsb2NrICYmICgwICE9PSBPYmplY3Qua2V5cyhzdGF0ZS5kdW1wKS5sZW5ndGgpKSB7XG4gICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgKDAgPT09IGxldmVsID8gJ1xcbicgOiAnJykgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3cml0ZUZsb3dNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgJyAnICsgc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoJ1tvYmplY3QgQXJyYXldJyA9PT0gdHlwZSkge1xuICAgICAgaWYgKGJsb2NrICYmICgwICE9PSBzdGF0ZS5kdW1wLmxlbmd0aCkpIHtcbiAgICAgICAgd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgKDAgPT09IGxldmVsID8gJ1xcbicgOiAnJykgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXApO1xuICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgc3RhdGUuZHVtcCA9ICcmcmVmXycgKyBkdXBsaWNhdGVJbmRleCArICcgJyArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCdbb2JqZWN0IFN0cmluZ10nID09PSB0eXBlKSB7XG4gICAgICBpZiAoJz8nICE9PSBzdGF0ZS50YWcpIHtcbiAgICAgICAgd3JpdGVTY2FsYXIoc3RhdGUsIHN0YXRlLmR1bXAsIGxldmVsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLnNraXBJbnZhbGlkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCd1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAnICsgdHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKG51bGwgIT09IHN0YXRlLnRhZyAmJiAnPycgIT09IHN0YXRlLnRhZykge1xuICAgICAgc3RhdGUuZHVtcCA9ICchPCcgKyBzdGF0ZS50YWcgKyAnPiAnICsgc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhvYmplY3QsIHN0YXRlKSB7XG4gIHZhciBvYmplY3RzID0gW10sXG4gICAgICBkdXBsaWNhdGVzSW5kZXhlcyA9IFtdLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBzdGF0ZS5kdXBsaWNhdGVzLnB1c2gob2JqZWN0c1tkdXBsaWNhdGVzSW5kZXhlc1tpbmRleF1dKTtcbiAgfVxuICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBpbnNwZWN0Tm9kZShvYmplY3QsIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKSB7XG4gIHZhciB0eXBlID0gX3RvU3RyaW5nLmNhbGwob2JqZWN0KSxcbiAgICAgIG9iamVjdEtleUxpc3QsXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBpZiAobnVsbCAhPT0gb2JqZWN0ICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqZWN0KSB7XG4gICAgaW5kZXggPSBvYmplY3RzLmluZGV4T2Yob2JqZWN0KTtcbiAgICBpZiAoLTEgIT09IGluZGV4KSB7XG4gICAgICBpZiAoLTEgPT09IGR1cGxpY2F0ZXNJbmRleGVzLmluZGV4T2YoaW5kZXgpKSB7XG4gICAgICAgIGR1cGxpY2F0ZXNJbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3Rbb2JqZWN0S2V5TGlzdFtpbmRleF1dLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZHVtcChpbnB1dCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUob3B0aW9ucyk7XG5cbiAgZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhpbnB1dCwgc3RhdGUpO1xuXG4gIGlmICh3cml0ZU5vZGUoc3RhdGUsIDAsIGlucHV0LCB0cnVlLCB0cnVlKSkge1xuICAgIHJldHVybiBzdGF0ZS5kdW1wICsgJ1xcbic7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBzYWZlRHVtcChpbnB1dCwgb3B0aW9ucykge1xuICByZXR1cm4gZHVtcChpbnB1dCwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzLmR1bXAgICAgID0gZHVtcDtcbm1vZHVsZS5leHBvcnRzLnNhZmVEdW1wID0gc2FmZUR1bXA7XG4iLCIndXNlIHN0cmljdCc7XG5cblxuZnVuY3Rpb24gWUFNTEV4Y2VwdGlvbihyZWFzb24sIG1hcmspIHtcbiAgdGhpcy5uYW1lICAgID0gJ1lBTUxFeGNlcHRpb24nO1xuICB0aGlzLnJlYXNvbiAgPSByZWFzb247XG4gIHRoaXMubWFyayAgICA9IG1hcms7XG4gIHRoaXMubWVzc2FnZSA9IHRoaXMudG9TdHJpbmcoZmFsc2UpO1xufVxuXG5cbllBTUxFeGNlcHRpb24ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoY29tcGFjdCkge1xuICB2YXIgcmVzdWx0O1xuXG4gIHJlc3VsdCA9ICdKUy1ZQU1MOiAnICsgKHRoaXMucmVhc29uIHx8ICcodW5rbm93biByZWFzb24pJyk7XG5cbiAgaWYgKCFjb21wYWN0ICYmIHRoaXMubWFyaykge1xuICAgIHJlc3VsdCArPSAnICcgKyB0aGlzLm1hcmsudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gWUFNTEV4Y2VwdGlvbjtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBtYXgtbGVuLG5vLXVzZS1iZWZvcmUtZGVmaW5lKi9cblxudmFyIGNvbW1vbiAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIFlBTUxFeGNlcHRpb24gICAgICAgPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xudmFyIE1hcmsgICAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL21hcmsnKTtcbnZhciBERUZBVUxUX1NBRkVfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9zYWZlJyk7XG52YXIgREVGQVVMVF9GVUxMX1NDSEVNQSA9IHJlcXVpcmUoJy4vc2NoZW1hL2RlZmF1bHRfZnVsbCcpO1xuXG5cbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5cbnZhciBDT05URVhUX0ZMT1dfSU4gICA9IDE7XG52YXIgQ09OVEVYVF9GTE9XX09VVCAgPSAyO1xudmFyIENPTlRFWFRfQkxPQ0tfSU4gID0gMztcbnZhciBDT05URVhUX0JMT0NLX09VVCA9IDQ7XG5cblxudmFyIENIT01QSU5HX0NMSVAgID0gMTtcbnZhciBDSE9NUElOR19TVFJJUCA9IDI7XG52YXIgQ0hPTVBJTkdfS0VFUCAgPSAzO1xuXG5cbnZhciBQQVRURVJOX05PTl9QUklOVEFCTEUgICAgICAgICA9IC9bXFx4MDAtXFx4MDhcXHgwQlxceDBDXFx4MEUtXFx4MUZcXHg3Ri1cXHg4NFxceDg2LVxceDlGXFx1RkZGRVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdLztcbnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXFx4ODVcXHUyMDI4XFx1MjAyOV0vO1xudmFyIFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTICAgICAgID0gL1ssXFxbXFxdXFx7XFx9XS87XG52YXIgUEFUVEVSTl9UQUdfSEFORExFICAgICAgICAgICAgPSAvXig/OiF8ISF8IVthLXpcXC1dKyEpJC9pO1xudmFyIFBBVFRFUk5fVEFHX1VSSSAgICAgICAgICAgICAgID0gL14oPzohfFteLFxcW1xcXVxce1xcfV0pKD86JVswLTlhLWZdezJ9fFswLTlhLXpcXC0jO1xcL1xcPzpAJj1cXCtcXCQsX1xcLiF+XFwqJ1xcKFxcKVxcW1xcXV0pKiQvaTtcblxuXG5mdW5jdGlvbiBpc19FT0woYykge1xuICByZXR1cm4gKGMgPT09IDB4MEEvKiBMRiAqLykgfHwgKGMgPT09IDB4MEQvKiBDUiAqLyk7XG59XG5cbmZ1bmN0aW9uIGlzX1dISVRFX1NQQUNFKGMpIHtcbiAgcmV0dXJuIChjID09PSAweDA5LyogVGFiICovKSB8fCAoYyA9PT0gMHgyMC8qIFNwYWNlICovKTtcbn1cblxuZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHtcbiAgcmV0dXJuIChjID09PSAweDA5LyogVGFiICovKSB8fFxuICAgICAgICAgKGMgPT09IDB4MjAvKiBTcGFjZSAqLykgfHxcbiAgICAgICAgIChjID09PSAweDBBLyogTEYgKi8pIHx8XG4gICAgICAgICAoYyA9PT0gMHgwRC8qIENSICovKTtcbn1cblxuZnVuY3Rpb24gaXNfRkxPV19JTkRJQ0FUT1IoYykge1xuICByZXR1cm4gMHgyQy8qICwgKi8gPT09IGMgfHxcbiAgICAgICAgIDB4NUIvKiBbICovID09PSBjIHx8XG4gICAgICAgICAweDVELyogXSAqLyA9PT0gYyB8fFxuICAgICAgICAgMHg3Qi8qIHsgKi8gPT09IGMgfHxcbiAgICAgICAgIDB4N0QvKiB9ICovID09PSBjO1xufVxuXG5mdW5jdGlvbiBmcm9tSGV4Q29kZShjKSB7XG4gIHZhciBsYztcblxuICBpZiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkge1xuICAgIHJldHVybiBjIC0gMHgzMDtcbiAgfVxuXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSovXG4gIGxjID0gYyB8IDB4MjA7XG5cbiAgaWYgKCgweDYxLyogYSAqLyA8PSBsYykgJiYgKGxjIDw9IDB4NjYvKiBmICovKSkge1xuICAgIHJldHVybiBsYyAtIDB4NjEgKyAxMDtcbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7XG4gIGlmIChjID09PSAweDc4LyogeCAqLykgeyByZXR1cm4gMjsgfVxuICBpZiAoYyA9PT0gMHg3NS8qIHUgKi8pIHsgcmV0dXJuIDQ7IH1cbiAgaWYgKGMgPT09IDB4NTUvKiBVICovKSB7IHJldHVybiA4OyB9XG4gIHJldHVybiAwO1xufVxuXG5mdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykge1xuICBpZiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkge1xuICAgIHJldHVybiBjIC0gMHgzMDtcbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cblxuZnVuY3Rpb24gc2ltcGxlRXNjYXBlU2VxdWVuY2UoYykge1xuICByZXR1cm4gKGMgPT09IDB4MzAvKiAwICovKSA/ICdcXHgwMCcgOlxuICAgICAgICAoYyA9PT0gMHg2MS8qIGEgKi8pID8gJ1xceDA3JyA6XG4gICAgICAgIChjID09PSAweDYyLyogYiAqLykgPyAnXFx4MDgnIDpcbiAgICAgICAgKGMgPT09IDB4NzQvKiB0ICovKSA/ICdcXHgwOScgOlxuICAgICAgICAoYyA9PT0gMHgwOS8qIFRhYiAqLykgPyAnXFx4MDknIDpcbiAgICAgICAgKGMgPT09IDB4NkUvKiBuICovKSA/ICdcXHgwQScgOlxuICAgICAgICAoYyA9PT0gMHg3Ni8qIHYgKi8pID8gJ1xceDBCJyA6XG4gICAgICAgIChjID09PSAweDY2LyogZiAqLykgPyAnXFx4MEMnIDpcbiAgICAgICAgKGMgPT09IDB4NzIvKiByICovKSA/ICdcXHgwRCcgOlxuICAgICAgICAoYyA9PT0gMHg2NS8qIGUgKi8pID8gJ1xceDFCJyA6XG4gICAgICAgIChjID09PSAweDIwLyogU3BhY2UgKi8pID8gJyAnIDpcbiAgICAgICAgKGMgPT09IDB4MjIvKiBcIiAqLykgPyAnXFx4MjInIDpcbiAgICAgICAgKGMgPT09IDB4MkYvKiAvICovKSA/ICcvJyA6XG4gICAgICAgIChjID09PSAweDVDLyogXFwgKi8pID8gJ1xceDVDJyA6XG4gICAgICAgIChjID09PSAweDRFLyogTiAqLykgPyAnXFx4ODUnIDpcbiAgICAgICAgKGMgPT09IDB4NUYvKiBfICovKSA/ICdcXHhBMCcgOlxuICAgICAgICAoYyA9PT0gMHg0Qy8qIEwgKi8pID8gJ1xcdTIwMjgnIDpcbiAgICAgICAgKGMgPT09IDB4NTAvKiBQICovKSA/ICdcXHUyMDI5JyA6ICcnO1xufVxuXG5mdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7XG4gIGlmIChjIDw9IDB4RkZGRikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICB9XG4gIC8vIEVuY29kZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXJcbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX1UuMkIwMTAwMDBfdG9fVS4yQjEwRkZGRlxuICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgLSAweDAxMDAwMCkgPj4gMTApICsgMHhEODAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGMgLSAweDAxMDAwMCkgJiAweDAzRkYpICsgMHhEQzAwKTtcbn1cblxudmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7IC8vIGludGVnZXIsIGZvciBmYXN0IGFjY2Vzc1xudmFyIHNpbXBsZUVzY2FwZU1hcCA9IG5ldyBBcnJheSgyNTYpO1xuZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBzaW1wbGVFc2NhcGVDaGVja1tpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpID8gMSA6IDA7XG4gIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpO1xufVxuXG5cbmZ1bmN0aW9uIFN0YXRlKGlucHV0LCBvcHRpb25zKSB7XG4gIHRoaXMuaW5wdXQgPSBpbnB1dDtcblxuICB0aGlzLmZpbGVuYW1lICA9IG9wdGlvbnNbJ2ZpbGVuYW1lJ10gIHx8IG51bGw7XG4gIHRoaXMuc2NoZW1hICAgID0gb3B0aW9uc1snc2NoZW1hJ10gICAgfHwgREVGQVVMVF9GVUxMX1NDSEVNQTtcbiAgdGhpcy5vbldhcm5pbmcgPSBvcHRpb25zWydvbldhcm5pbmcnXSB8fCBudWxsO1xuICB0aGlzLmxlZ2FjeSAgICA9IG9wdGlvbnNbJ2xlZ2FjeSddICAgIHx8IGZhbHNlO1xuXG4gIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7XG4gIHRoaXMudHlwZU1hcCAgICAgICA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcDtcblxuICB0aGlzLmxlbmd0aCAgICAgPSBpbnB1dC5sZW5ndGg7XG4gIHRoaXMucG9zaXRpb24gICA9IDA7XG4gIHRoaXMubGluZSAgICAgICA9IDA7XG4gIHRoaXMubGluZVN0YXJ0ICA9IDA7XG4gIHRoaXMubGluZUluZGVudCA9IDA7XG5cbiAgdGhpcy5kb2N1bWVudHMgPSBbXTtcblxuICAvKlxuICB0aGlzLnZlcnNpb247XG4gIHRoaXMuY2hlY2tMaW5lQnJlYWtzO1xuICB0aGlzLnRhZ01hcDtcbiAgdGhpcy5hbmNob3JNYXA7XG4gIHRoaXMudGFnO1xuICB0aGlzLmFuY2hvcjtcbiAgdGhpcy5raW5kO1xuICB0aGlzLnJlc3VsdDsqL1xuXG59XG5cblxuZnVuY3Rpb24gZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkge1xuICByZXR1cm4gbmV3IFlBTUxFeGNlcHRpb24oXG4gICAgbWVzc2FnZSxcbiAgICBuZXcgTWFyayhzdGF0ZS5maWxlbmFtZSwgc3RhdGUuaW5wdXQsIHN0YXRlLnBvc2l0aW9uLCBzdGF0ZS5saW5lLCAoc3RhdGUucG9zaXRpb24gLSBzdGF0ZS5saW5lU3RhcnQpKSk7XG59XG5cbmZ1bmN0aW9uIHRocm93RXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHtcbiAgdGhyb3cgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIHRocm93V2FybmluZyhzdGF0ZSwgbWVzc2FnZSkge1xuICB2YXIgZXJyb3IgPSBnZW5lcmF0ZUVycm9yKHN0YXRlLCBtZXNzYWdlKTtcblxuICBpZiAoc3RhdGUub25XYXJuaW5nKSB7XG4gICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZXJyb3IpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cblxudmFyIGRpcmVjdGl2ZUhhbmRsZXJzID0ge1xuXG4gIFlBTUw6IGZ1bmN0aW9uIGhhbmRsZVlhbWxEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHtcblxuICAgICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7XG5cbiAgICAgIGlmIChudWxsICE9PSBzdGF0ZS52ZXJzaW9uKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKDEgIT09IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdZQU1MIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgICB9XG5cbiAgICAgIG1hdGNoID0gL14oWzAtOV0rKVxcLihbMC05XSspJC8uZXhlYyhhcmdzWzBdKTtcblxuICAgICAgaWYgKG51bGwgPT09IG1hdGNoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZScpO1xuICAgICAgfVxuXG4gICAgICBtYWpvciA9IHBhcnNlSW50KG1hdGNoWzFdLCAxMCk7XG4gICAgICBtaW5vciA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG5cbiAgICAgIGlmICgxICE9PSBtYWpvcikge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQnKTtcbiAgICAgIH1cblxuICAgICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07XG4gICAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSAobWlub3IgPCAyKTtcblxuICAgICAgaWYgKDEgIT09IG1pbm9yICYmIDIgIT09IG1pbm9yKSB7XG4gICAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQnKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gIFRBRzogZnVuY3Rpb24gaGFuZGxlVGFnRGlyZWN0aXZlKHN0YXRlLCBuYW1lLCBhcmdzKSB7XG5cbiAgICAgIHZhciBoYW5kbGUsIHByZWZpeDtcblxuICAgICAgaWYgKDIgIT09IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzJyk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IGFyZ3NbMF07XG4gICAgICBwcmVmaXggPSBhcmdzWzFdO1xuXG4gICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2lsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yIFwiJyArIGhhbmRsZSArICdcIiB0YWcgaGFuZGxlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghUEFUVEVSTl9UQUdfVVJJLnRlc3QocHJlZml4KSkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLnRhZ01hcFtoYW5kbGVdID0gcHJlZml4O1xuICAgIH1cbn07XG5cblxuZnVuY3Rpb24gY2FwdHVyZVNlZ21lbnQoc3RhdGUsIHN0YXJ0LCBlbmQsIGNoZWNrSnNvbikge1xuICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0O1xuXG4gIGlmIChzdGFydCA8IGVuZCkge1xuICAgIF9yZXN1bHQgPSBzdGF0ZS5pbnB1dC5zbGljZShzdGFydCwgZW5kKTtcblxuICAgIGlmIChjaGVja0pzb24pIHtcbiAgICAgIGZvciAoX3Bvc2l0aW9uID0gMCwgX2xlbmd0aCA9IF9yZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICBfcG9zaXRpb24gPCBfbGVuZ3RoO1xuICAgICAgICAgICBfcG9zaXRpb24gKz0gMSkge1xuICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG4gICAgICAgIGlmICghKDB4MDkgPT09IF9jaGFyYWN0ZXIgfHxcbiAgICAgICAgICAgICAgMHgyMCA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMHgxMEZGRkYpKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2V4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0ZS5yZXN1bHQgKz0gX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlKSB7XG4gIHZhciBzb3VyY2VLZXlzLCBrZXksIGluZGV4LCBxdWFudGl0eTtcblxuICBpZiAoIWNvbW1vbi5pc09iamVjdChzb3VyY2UpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2Nhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlJyk7XG4gIH1cblxuICBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcblxuICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaW5kZXhdO1xuXG4gICAgaWYgKCFfaGFzT3duUHJvcGVydHkuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkge1xuICAgICAgZGVzdGluYXRpb25ba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSkge1xuICB2YXIgaW5kZXgsIHF1YW50aXR5O1xuXG4gIGtleU5vZGUgPSBTdHJpbmcoa2V5Tm9kZSk7XG5cbiAgaWYgKG51bGwgPT09IF9yZXN1bHQpIHtcbiAgICBfcmVzdWx0ID0ge307XG4gIH1cblxuICBpZiAoJ3RhZzp5YW1sLm9yZywyMDAyOm1lcmdlJyA9PT0ga2V5VGFnKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVOb2RlKSkge1xuICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gdmFsdWVOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgICAgICBtZXJnZU1hcHBpbmdzKHN0YXRlLCBfcmVzdWx0LCB2YWx1ZU5vZGVbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVyZ2VNYXBwaW5ncyhzdGF0ZSwgX3Jlc3VsdCwgdmFsdWVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgX3Jlc3VsdFtrZXlOb2RlXSA9IHZhbHVlTm9kZTtcbiAgfVxuXG4gIHJldHVybiBfcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZWFkTGluZUJyZWFrKHN0YXRlKSB7XG4gIHZhciBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDBBLyogTEYgKi8gPT09IGNoKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgfSBlbHNlIGlmICgweDBELyogQ1IgKi8gPT09IGNoKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgICBpZiAoMHgwQS8qIExGICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2EgbGluZSBicmVhayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgc3RhdGUubGluZSArPSAxO1xuICBzdGF0ZS5saW5lU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcbn1cblxuZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHtcbiAgdmFyIGxpbmVCcmVha3MgPSAwLFxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoMCAhPT0gY2gpIHtcbiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93Q29tbWVudHMgJiYgMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBkbyB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH0gd2hpbGUgKGNoICE9PSAweDBBLyogTEYgKi8gJiYgY2ggIT09IDB4MEQvKiBDUiAqLyAmJiAwICE9PSBjaCk7XG4gICAgfVxuXG4gICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgbGluZUJyZWFrcysrO1xuICAgICAgc3RhdGUubGluZUluZGVudCA9IDA7XG5cbiAgICAgIHdoaWxlICgweDIwLyogU3BhY2UgKi8gPT09IGNoKSB7XG4gICAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoLTEgIT09IGNoZWNrSW5kZW50ICYmIDAgIT09IGxpbmVCcmVha3MgJiYgc3RhdGUubGluZUluZGVudCA8IGNoZWNrSW5kZW50KSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnZGVmaWNpZW50IGluZGVudGF0aW9uJyk7XG4gIH1cblxuICByZXR1cm4gbGluZUJyZWFrcztcbn1cblxuZnVuY3Rpb24gdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSB7XG4gIHZhciBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbixcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuXG4gIC8vIENvbmRpdGlvbiBzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0IGlzIHRlc3RlZFxuICAvLyBpbiBwYXJlbnQgb24gZWFjaCBjYWxsLCBmb3IgZWZmaWNpZW5jeS4gTm8gbmVlZHMgdG8gdGVzdCBoZXJlIGFnYWluLlxuICBpZiAoKDB4MkQvKiAtICovID09PSBjaCB8fCAweDJFLyogLiAqLyA9PT0gY2gpICYmXG4gICAgICBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbiArIDEpID09PSBjaCAmJlxuICAgICAgc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24gKyAyKSA9PT0gY2gpIHtcblxuICAgIF9wb3NpdGlvbiArPSAzO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG5cbiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBjb3VudCkge1xuICBpZiAoMSA9PT0gY291bnQpIHtcbiAgICBzdGF0ZS5yZXN1bHQgKz0gJyAnO1xuICB9IGVsc2UgaWYgKGNvdW50ID4gMSkge1xuICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBjb3VudCAtIDEpO1xuICB9XG59XG5cblxuZnVuY3Rpb24gcmVhZFBsYWluU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50LCB3aXRoaW5GbG93Q29sbGVjdGlvbikge1xuICB2YXIgcHJlY2VkaW5nLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgY2FwdHVyZVN0YXJ0LFxuICAgICAgY2FwdHVyZUVuZCxcbiAgICAgIGhhc1BlbmRpbmdDb250ZW50LFxuICAgICAgX2xpbmUsXG4gICAgICBfbGluZVN0YXJ0LFxuICAgICAgX2xpbmVJbmRlbnQsXG4gICAgICBfa2luZCA9IHN0YXRlLmtpbmQsXG4gICAgICBfcmVzdWx0ID0gc3RhdGUucmVzdWx0LFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoaXNfV1NfT1JfRU9MKGNoKSAgICAgICAgICAgICB8fFxuICAgICAgaXNfRkxPV19JTkRJQ0FUT1IoY2gpICAgICAgICB8fFxuICAgICAgMHgyMy8qICMgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyNi8qICYgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyQS8qICogKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyMS8qICEgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHg3Qy8qIHwgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgzRS8qID4gKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyNy8qICcgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyMi8qIFwiICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4MjUvKiAlICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4NDAvKiBAICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4NjAvKiBgICovICAgICAgICAgICA9PT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoMHgzRi8qID8gKi8gPT09IGNoIHx8IDB4MkQvKiAtICovID09PSBjaCkge1xuICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fFxuICAgICAgICB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIGlmICgweDNBLyogOiAqLyA9PT0gY2gpIHtcbiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpIHx8XG4gICAgICAgICAgd2l0aGluRmxvd0NvbGxlY3Rpb24gJiYgaXNfRkxPV19JTkRJQ0FUT1IoZm9sbG93aW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBwcmVjZWRpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uIC0gMSk7XG5cbiAgICAgIGlmIChpc19XU19PUl9FT0wocHJlY2VkaW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgfHxcbiAgICAgICAgICAgICAgIHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgICAgYnJlYWs7XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIF9saW5lID0gc3RhdGUubGluZTtcbiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7XG4gICAgICBfbGluZUluZGVudCA9IHN0YXRlLmxpbmVJbmRlbnQ7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgLTEpO1xuXG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+PSBub2RlSW5kZW50KSB7XG4gICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbiA9IGNhcHR1cmVFbmQ7XG4gICAgICAgIHN0YXRlLmxpbmUgPSBfbGluZTtcbiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDtcbiAgICAgICAgc3RhdGUubGluZUluZGVudCA9IF9saW5lSW5kZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzUGVuZGluZ0NvbnRlbnQpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb24gKyAxO1xuICAgIH1cblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgfVxuXG4gIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcblxuICBpZiAoc3RhdGUucmVzdWx0KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gX2tpbmQ7XG4gIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgY2gsXG4gICAgICBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQ7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoMHgyNy8qICcgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgc3RhdGUucG9zaXRpb24rKztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSAoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICBpZiAoMHgyNy8qICcgKi8gPT09IGNoKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgIGlmICgweDI3LyogJyAqLyA9PT0gY2gpIHtcbiAgICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyJyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhcicpO1xufVxuXG5mdW5jdGlvbiByZWFkRG91YmxlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBjYXB0dXJlU3RhcnQsXG4gICAgICBjYXB0dXJlRW5kLFxuICAgICAgaGV4TGVuZ3RoLFxuICAgICAgaGV4UmVzdWx0LFxuICAgICAgdG1wLCB0bXBFc2MsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDIyLyogXCIgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgc3RhdGUucG9zaXRpb24rKztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSAoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICBpZiAoMHgyMi8qIFwiICovID09PSBjaCkge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpO1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgfSBlbHNlIGlmICgweDVDLyogXFwgKi8gPT09IGNoKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCBub2RlSW5kZW50KTtcblxuICAgICAgICAvLyBUT0RPOiByZXdvcmsgdG8gaW5saW5lIGZuIHdpdGggbm8gdHlwZSBjYXN0P1xuICAgICAgfSBlbHNlIGlmIChjaCA8IDI1NiAmJiBzaW1wbGVFc2NhcGVDaGVja1tjaF0pIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IHNpbXBsZUVzY2FwZU1hcFtjaF07XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG5cbiAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGVzY2FwZWRIZXhMZW4oY2gpKSA+IDApIHtcbiAgICAgICAgaGV4TGVuZ3RoID0gdG1wO1xuICAgICAgICBoZXhSZXN1bHQgPSAwO1xuXG4gICAgICAgIGZvciAoOyBoZXhMZW5ndGggPiAwOyBoZXhMZW5ndGgtLSkge1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7XG4gICAgICAgICAgICBoZXhSZXN1bHQgPSAoaGV4UmVzdWx0IDw8IDQpICsgdG1wO1xuXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY2hhckZyb21Db2RlcG9pbnQoaGV4UmVzdWx0KTtcblxuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5rbm93biBlc2NhcGUgc2VxdWVuY2UnKTtcbiAgICAgIH1cblxuICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCB0cnVlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCBub2RlSW5kZW50KSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhcicpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXInKTtcbn1cblxuZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciByZWFkTmV4dCA9IHRydWUsXG4gICAgICBfbGluZSxcbiAgICAgIF90YWcgICAgID0gc3RhdGUudGFnLFxuICAgICAgX3Jlc3VsdCxcbiAgICAgIF9hbmNob3IgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgdGVybWluYXRvcixcbiAgICAgIGlzUGFpcixcbiAgICAgIGlzRXhwbGljaXRQYWlyLFxuICAgICAgaXNNYXBwaW5nLFxuICAgICAga2V5Tm9kZSxcbiAgICAgIGtleVRhZyxcbiAgICAgIHZhbHVlTm9kZSxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDVCLyogWyAqLykge1xuICAgIHRlcm1pbmF0b3IgPSAweDVEOy8qIF0gKi9cbiAgICBpc01hcHBpbmcgPSBmYWxzZTtcbiAgICBfcmVzdWx0ID0gW107XG4gIH0gZWxzZSBpZiAoY2ggPT09IDB4N0IvKiB7ICovKSB7XG4gICAgdGVybWluYXRvciA9IDB4N0Q7LyogfSAqL1xuICAgIGlzTWFwcGluZyA9IHRydWU7XG4gICAgX3Jlc3VsdCA9IHt9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKGNoID09PSB0ZXJtaW5hdG9yKSB7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICBzdGF0ZS5raW5kID0gaXNNYXBwaW5nID8gJ21hcHBpbmcnIDogJ3NlcXVlbmNlJztcbiAgICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ21pc3NlZCBjb21tYSBiZXR3ZWVuIGZsb3cgY29sbGVjdGlvbiBlbnRyaWVzJyk7XG4gICAgfVxuXG4gICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSBmYWxzZTtcblxuICAgIGlmICgweDNGLyogPyAqLyA9PT0gY2gpIHtcbiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG4gICAgICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBrZXlUYWcgPSBzdGF0ZS50YWc7XG4gICAga2V5Tm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoKGlzRXhwbGljaXRQYWlyIHx8IHN0YXRlLmxpbmUgPT09IF9saW5lKSAmJiAweDNBLyogOiAqLyA9PT0gY2gpIHtcbiAgICAgIGlzUGFpciA9IHRydWU7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAoaXNNYXBwaW5nKSB7XG4gICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSk7XG4gICAgfSBlbHNlIGlmIChpc1BhaXIpIHtcbiAgICAgIF9yZXN1bHQucHVzaChzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBudWxsLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBfcmVzdWx0LnB1c2goa2V5Tm9kZSk7XG4gICAgfVxuXG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKDB4MkMvKiAsICovID09PSBjaCkge1xuICAgICAgcmVhZE5leHQgPSB0cnVlO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFkTmV4dCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbicpO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIGNhcHR1cmVTdGFydCxcbiAgICAgIGZvbGRpbmcsXG4gICAgICBjaG9tcGluZyAgICAgICA9IENIT01QSU5HX0NMSVAsXG4gICAgICBkZXRlY3RlZEluZGVudCA9IGZhbHNlLFxuICAgICAgdGV4dEluZGVudCAgICAgPSBub2RlSW5kZW50LFxuICAgICAgZW1wdHlMaW5lcyAgICAgPSAwLFxuICAgICAgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSxcbiAgICAgIHRtcCxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDdDLyogfCAqLykge1xuICAgIGZvbGRpbmcgPSBmYWxzZTtcbiAgfSBlbHNlIGlmIChjaCA9PT0gMHgzRS8qID4gKi8pIHtcbiAgICBmb2xkaW5nID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmICgweDJCLyogKyAqLyA9PT0gY2ggfHwgMHgyRC8qIC0gKi8gPT09IGNoKSB7XG4gICAgICBpZiAoQ0hPTVBJTkdfQ0xJUCA9PT0gY2hvbXBpbmcpIHtcbiAgICAgICAgY2hvbXBpbmcgPSAoMHgyQi8qICsgKi8gPT09IGNoKSA/IENIT01QSU5HX0tFRVAgOiBDSE9NUElOR19TVFJJUDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXInKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHRtcCA9IGZyb21EZWNpbWFsQ29kZShjaCkpID49IDApIHtcbiAgICAgIGlmICh0bXAgPT09IDApIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUnKTtcbiAgICAgIH0gZWxzZSBpZiAoIWRldGVjdGVkSW5kZW50KSB7XG4gICAgICAgIHRleHRJbmRlbnQgPSBub2RlSW5kZW50ICsgdG1wIC0gMTtcbiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3JlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyJyk7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSk7XG5cbiAgICBpZiAoMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgd2hpbGUgKCFpc19FT0woY2gpICYmICgwICE9PSBjaCkpO1xuICAgIH1cbiAgfVxuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIHdoaWxlICgoIWRldGVjdGVkSW5kZW50IHx8IHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSAmJlxuICAgICAgICAgICAoMHgyMC8qIFNwYWNlICovID09PSBjaCkpIHtcbiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoIWRldGVjdGVkSW5kZW50ICYmIHN0YXRlLmxpbmVJbmRlbnQgPiB0ZXh0SW5kZW50KSB7XG4gICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDtcbiAgICB9XG5cbiAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgZW1wdHlMaW5lcysrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gRW5kIG9mIHRoZSBzY2FsYXIuXG4gICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSB7XG5cbiAgICAgIC8vIFBlcmZvcm0gdGhlIGNob21waW5nLlxuICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hvbXBpbmcgPT09IENIT01QSU5HX0NMSVApIHtcbiAgICAgICAgaWYgKGRldGVjdGVkSW5kZW50KSB7IC8vIGkuZS4gb25seSBpZiB0aGUgc2NhbGFyIGlzIG5vdCBlbXB0eS5cbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gJ1xcbic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQnJlYWsgdGhpcyBgd2hpbGVgIGN5Y2xlIGFuZCBnbyB0byB0aGUgZnVuY2l0b24ncyBlcGlsb2d1ZS5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEZvbGRlZCBzdHlsZTogdXNlIGZhbmN5IHJ1bGVzIHRvIGhhbmRsZSBsaW5lIGJyZWFrcy5cbiAgICBpZiAoZm9sZGluZykge1xuXG4gICAgICAvLyBMaW5lcyBzdGFydGluZyB3aXRoIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMgKG1vcmUtaW5kZW50ZWQgbGluZXMpIGFyZSBub3QgZm9sZGVkLlxuICAgICAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICBhdE1vcmVJbmRlbnRlZCA9IHRydWU7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzICsgMSk7XG5cbiAgICAgIC8vIEVuZCBvZiBtb3JlLWluZGVudGVkIGJsb2NrLlxuICAgICAgfSBlbHNlIGlmIChhdE1vcmVJbmRlbnRlZCkge1xuICAgICAgICBhdE1vcmVJbmRlbnRlZCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyArIDEpO1xuXG4gICAgICAvLyBKdXN0IG9uZSBsaW5lIGJyZWFrIC0gcGVyY2VpdmUgYXMgdGhlIHNhbWUgbGluZS5cbiAgICAgIH0gZWxzZSBpZiAoMCA9PT0gZW1wdHlMaW5lcykge1xuICAgICAgICBpZiAoZGV0ZWN0ZWRJbmRlbnQpIHsgLy8gaS5lLiBvbmx5IGlmIHdlIGhhdmUgYWxyZWFkeSByZWFkIHNvbWUgc2NhbGFyIGNvbnRlbnQuXG4gICAgICAgICAgc3RhdGUucmVzdWx0ICs9ICcgJztcbiAgICAgICAgfVxuXG4gICAgICAvLyBTZXZlcmFsIGxpbmUgYnJlYWtzIC0gcGVyY2VpdmUgYXMgZGlmZmVyZW50IGxpbmVzLlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGVtcHR5TGluZXMpO1xuICAgICAgfVxuXG4gICAgLy8gTGl0ZXJhbCBzdHlsZToganVzdCBhZGQgZXhhY3QgbnVtYmVyIG9mIGxpbmUgYnJlYWtzIGJldHdlZW4gY29udGVudCBsaW5lcy5cbiAgICB9IGVsc2UgaWYgKGRldGVjdGVkSW5kZW50KSB7XG4gICAgICAvLyBJZiBjdXJyZW50IGxpbmUgaXNuJ3QgdGhlIGZpcnN0IG9uZSAtIGNvdW50IGxpbmUgYnJlYWsgZnJvbSB0aGUgbGFzdCBjb250ZW50IGxpbmUuXG4gICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyArIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJbiBjYXNlIG9mIHRoZSBmaXJzdCBjb250ZW50IGxpbmUgLSBjb3VudCBvbmx5IGVtcHR5IGxpbmVzLlxuICAgIH1cblxuICAgIGRldGVjdGVkSW5kZW50ID0gdHJ1ZTtcbiAgICBlbXB0eUxpbmVzID0gMDtcbiAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIHdoaWxlICghaXNfRU9MKGNoKSAmJiAoMCAhPT0gY2gpKSB7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIGZhbHNlKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgX2xpbmUsXG4gICAgICBfdGFnICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfYW5jaG9yICAgPSBzdGF0ZS5hbmNob3IsXG4gICAgICBfcmVzdWx0ICAgPSBbXSxcbiAgICAgIGZvbGxvd2luZyxcbiAgICAgIGRldGVjdGVkICA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG5cbiAgICBpZiAoMHgyRC8qIC0gKi8gIT09IGNoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG5cbiAgICBpZiAoIWlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgc3RhdGUucG9zaXRpb24rKztcblxuICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHtcbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50IDw9IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgX3Jlc3VsdC5wdXNoKG51bGwpO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbGluZSA9IHN0YXRlLmxpbmU7XG4gICAgY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBfcmVzdWx0LnB1c2goc3RhdGUucmVzdWx0KTtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgKDAgIT09IGNoKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Jyk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgbm9kZUluZGVudCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGRldGVjdGVkKSB7XG4gICAgc3RhdGUudGFnID0gX3RhZztcbiAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgIHN0YXRlLmtpbmQgPSAnc2VxdWVuY2UnO1xuICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7XG4gIHZhciBmb2xsb3dpbmcsXG4gICAgICBhbGxvd0NvbXBhY3QsXG4gICAgICBfbGluZSxcbiAgICAgIF90YWcgICAgICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfYW5jaG9yICAgICAgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgX3Jlc3VsdCAgICAgICA9IHt9LFxuICAgICAga2V5VGFnICAgICAgICA9IG51bGwsXG4gICAgICBrZXlOb2RlICAgICAgID0gbnVsbCxcbiAgICAgIHZhbHVlTm9kZSAgICAgPSBudWxsLFxuICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlLFxuICAgICAgZGV0ZWN0ZWQgICAgICA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuICAgIF9saW5lID0gc3RhdGUubGluZTsgLy8gU2F2ZSB0aGUgY3VycmVudCBsaW5lLlxuXG4gICAgLy9cbiAgICAvLyBFeHBsaWNpdCBub3RhdGlvbiBjYXNlLiBUaGVyZSBhcmUgdHdvIHNlcGFyYXRlIGJsb2NrczpcbiAgICAvLyBmaXJzdCBmb3IgdGhlIGtleSAoZGVub3RlZCBieSBcIj9cIikgYW5kIHNlY29uZCBmb3IgdGhlIHZhbHVlIChkZW5vdGVkIGJ5IFwiOlwiKVxuICAgIC8vXG4gICAgaWYgKCgweDNGLyogPyAqLyA9PT0gY2ggfHwgMHgzQS8qIDogKi8gID09PSBjaCkgJiYgaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcblxuICAgICAgaWYgKDB4M0YvKiA/ICovID09PSBjaCkge1xuICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gICAgICAgICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgIGF0RXhwbGljaXRLZXkgPSB0cnVlO1xuICAgICAgICBhbGxvd0NvbXBhY3QgPSB0cnVlO1xuXG4gICAgICB9IGVsc2UgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgLy8gaS5lLiAweDNBLyogOiAqLyA9PT0gY2hhcmFjdGVyIGFmdGVyIHRoZSBleHBsaWNpdCBrZXkuXG4gICAgICAgIGF0RXhwbGljaXRLZXkgPSBmYWxzZTtcbiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2luY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZCcpO1xuICAgICAgfVxuXG4gICAgICBzdGF0ZS5wb3NpdGlvbiArPSAxO1xuICAgICAgY2ggPSBmb2xsb3dpbmc7XG5cbiAgICAvL1xuICAgIC8vIEltcGxpY2l0IG5vdGF0aW9uIGNhc2UuIEZsb3ctc3R5bGUgbm9kZSBhcyB0aGUga2V5IGZpcnN0LCB0aGVuIFwiOlwiLCBhbmQgdGhlIHZhbHVlLlxuICAgIC8vXG4gICAgfSBlbHNlIGlmIChjb21wb3NlTm9kZShzdGF0ZSwgZmxvd0luZGVudCwgQ09OVEVYVF9GTE9XX09VVCwgZmFsc2UsIHRydWUpKSB7XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoMHgzQS8qIDogKi8gPT09IGNoKSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gICAgICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlO1xuICAgICAgICAgIGFsbG93Q29tcGFjdCA9IGZhbHNlO1xuICAgICAgICAgIGtleVRhZyA9IHN0YXRlLnRhZztcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuXG4gICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGFuIGltcGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBjb2xvbiBpcyBtaXNzZWQnKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gS2VlcCB0aGUgcmVzdWx0IG9mIGBjb21wb3NlTm9kZWAuXG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Jyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBLZWVwIHRoZSByZXN1bHQgb2YgYGNvbXBvc2VOb2RlYC5cbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhazsgLy8gUmVhZGluZyBpcyBkb25lLiBHbyB0byB0aGUgZXBpbG9ndWUuXG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBDb21tb24gcmVhZGluZyBjb2RlIGZvciBib3RoIGV4cGxpY2l0IGFuZCBpbXBsaWNpdCBub3RhdGlvbnMuXG4gICAgLy9cbiAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpIHtcbiAgICAgIGlmIChjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19PVVQsIHRydWUsIGFsbG93Q29tcGFjdCkpIHtcbiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUpO1xuICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQgJiYgKDAgIT09IGNoKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnknKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBFcGlsb2d1ZS5cbiAgLy9cblxuICAvLyBTcGVjaWFsIGNhc2U6IGxhc3QgbWFwcGluZydzIG5vZGUgY29udGFpbnMgb25seSB0aGUga2V5IGluIGV4cGxpY2l0IG5vdGF0aW9uLlxuICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gIH1cblxuICAvLyBFeHBvc2UgdGhlIHJlc3VsdGluZyBtYXBwaW5nLlxuICBpZiAoZGV0ZWN0ZWQpIHtcbiAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgc3RhdGUua2luZCA9ICdtYXBwaW5nJztcbiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIGRldGVjdGVkO1xufVxuXG5mdW5jdGlvbiByZWFkVGFnUHJvcGVydHkoc3RhdGUpIHtcbiAgdmFyIF9wb3NpdGlvbixcbiAgICAgIGlzVmVyYmF0aW0gPSBmYWxzZSxcbiAgICAgIGlzTmFtZWQgICAgPSBmYWxzZSxcbiAgICAgIHRhZ0hhbmRsZSxcbiAgICAgIHRhZ05hbWUsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDIxLyogISAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAobnVsbCAhPT0gc3RhdGUudGFnKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2R1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Jyk7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKDB4M0MvKiA8ICovID09PSBjaCkge1xuICAgIGlzVmVyYmF0aW0gPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICB9IGVsc2UgaWYgKDB4MjEvKiAhICovID09PSBjaCkge1xuICAgIGlzTmFtZWQgPSB0cnVlO1xuICAgIHRhZ0hhbmRsZSA9ICchISc7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIH0gZWxzZSB7XG4gICAgdGFnSGFuZGxlID0gJyEnO1xuICB9XG5cbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgaWYgKGlzVmVyYmF0aW0pIHtcbiAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgIHdoaWxlICgwICE9PSBjaCAmJiAweDNFLyogPiAqLyAhPT0gY2gpO1xuXG4gICAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoKSB7XG4gICAgICB0YWdOYW1lID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHZlcmJhdGltIHRhZycpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcblxuICAgICAgaWYgKDB4MjEvKiAhICovID09PSBjaCkge1xuICAgICAgICBpZiAoIWlzTmFtZWQpIHtcbiAgICAgICAgICB0YWdIYW5kbGUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24gLSAxLCBzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICAgICAgaWYgKCFQQVRURVJOX1RBR19IQU5ETEUudGVzdCh0YWdIYW5kbGUpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTtcbiAgICAgICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbiArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gIH1cblxuICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAnICsgdGFnTmFtZSk7XG4gIH1cblxuICBpZiAoaXNWZXJiYXRpbSkge1xuICAgIHN0YXRlLnRhZyA9IHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHtcbiAgICBzdGF0ZS50YWcgPSBzdGF0ZS50YWdNYXBbdGFnSGFuZGxlXSArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICgnIScgPT09IHRhZ0hhbmRsZSkge1xuICAgIHN0YXRlLnRhZyA9ICchJyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICgnISEnID09PSB0YWdIYW5kbGUpIHtcbiAgICBzdGF0ZS50YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5kZWNsYXJlZCB0YWcgaGFuZGxlIFwiJyArIHRhZ0hhbmRsZSArICdcIicpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbmNob3JQcm9wZXJ0eShzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoMHgyNi8qICYgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHknKTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKDAgIT09IGNoICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBzdGF0ZS5hbmNob3IgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbGlhcyhzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLCBhbGlhcyxcbiAgICAgIGxlbiA9IHN0YXRlLmxlbmd0aCxcbiAgICAgIGlucHV0ID0gc3RhdGUuaW5wdXQsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDJBLyogKiAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSAmJiAhaXNfRkxPV19JTkRJQ0FUT1IoY2gpKSB7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBfcG9zaXRpb24pIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBhbGlhcyA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICghc3RhdGUuYW5jaG9yTWFwLmhhc093blByb3BlcnR5KGFsaWFzKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmlkZW50aWZpZWQgYWxpYXMgXCInICsgYWxpYXMgKyAnXCInKTtcbiAgfVxuXG4gIHN0YXRlLnJlc3VsdCA9IHN0YXRlLmFuY2hvck1hcFthbGlhc107XG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbXBvc2VOb2RlKHN0YXRlLCBwYXJlbnRJbmRlbnQsIG5vZGVDb250ZXh0LCBhbGxvd1RvU2VlaywgYWxsb3dDb21wYWN0KSB7XG4gIHZhciBhbGxvd0Jsb2NrU3R5bGVzLFxuICAgICAgYWxsb3dCbG9ja1NjYWxhcnMsXG4gICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMsXG4gICAgICBpbmRlbnRTdGF0dXMgPSAxLCAvLyAxOiB0aGlzPnBhcmVudCwgMDogdGhpcz1wYXJlbnQsIC0xOiB0aGlzPHBhcmVudFxuICAgICAgYXROZXdMaW5lICA9IGZhbHNlLFxuICAgICAgaGFzQ29udGVudCA9IGZhbHNlLFxuICAgICAgdHlwZUluZGV4LFxuICAgICAgdHlwZVF1YW50aXR5LFxuICAgICAgdHlwZSxcbiAgICAgIGZsb3dJbmRlbnQsXG4gICAgICBibG9ja0luZGVudCxcbiAgICAgIF9yZXN1bHQ7XG5cbiAgc3RhdGUudGFnICAgID0gbnVsbDtcbiAgc3RhdGUuYW5jaG9yID0gbnVsbDtcbiAgc3RhdGUua2luZCAgID0gbnVsbDtcbiAgc3RhdGUucmVzdWx0ID0gbnVsbDtcblxuICBhbGxvd0Jsb2NrU3R5bGVzID0gYWxsb3dCbG9ja1NjYWxhcnMgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPVxuICAgIENPTlRFWFRfQkxPQ0tfT1VUID09PSBub2RlQ29udGV4dCB8fFxuICAgIENPTlRFWFRfQkxPQ0tfSU4gID09PSBub2RlQ29udGV4dDtcblxuICBpZiAoYWxsb3dUb1NlZWspIHtcbiAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7XG4gICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuXG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAxO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgaW5kZW50U3RhdHVzID0gMDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAtMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoMSA9PT0gaW5kZW50U3RhdHVzKSB7XG4gICAgd2hpbGUgKHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSkge1xuICAgICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkge1xuICAgICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhbGxvd0Jsb2NrU3R5bGVzO1xuXG4gICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgaW5kZW50U3RhdHVzID0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAtMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucykge1xuICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGF0TmV3TGluZSB8fCBhbGxvd0NvbXBhY3Q7XG4gIH1cblxuICBpZiAoMSA9PT0gaW5kZW50U3RhdHVzIHx8IENPTlRFWFRfQkxPQ0tfT1VUID09PSBub2RlQ29udGV4dCkge1xuICAgIGlmIChDT05URVhUX0ZMT1dfSU4gPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfRkxPV19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50ICsgMTtcbiAgICB9XG5cbiAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0O1xuXG4gICAgaWYgKDEgPT09IGluZGVudFN0YXR1cykge1xuICAgICAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJlxuICAgICAgICAgIChyZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpIHx8XG4gICAgICAgICAgIHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHxcbiAgICAgICAgICByZWFkRmxvd0NvbGxlY3Rpb24oc3RhdGUsIGZsb3dJbmRlbnQpKSB7XG4gICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKChhbGxvd0Jsb2NrU2NhbGFycyAmJiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB8fFxuICAgICAgICAgICAgcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZSwgZmxvd0luZGVudCkgfHxcbiAgICAgICAgICAgIHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWFkQWxpYXMoc3RhdGUpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAobnVsbCAhPT0gc3RhdGUudGFnIHx8IG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2FsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSBpZiAocmVhZFBsYWluU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfSU4gPT09IG5vZGVDb250ZXh0KSkge1xuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKG51bGwgPT09IHN0YXRlLnRhZykge1xuICAgICAgICAgICAgc3RhdGUudGFnID0gJz8nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoMCA9PT0gaW5kZW50U3RhdHVzKSB7XG4gICAgICAvLyBTcGVjaWFsIGNhc2U6IGJsb2NrIHNlcXVlbmNlcyBhcmUgYWxsb3dlZCB0byBoYXZlIHNhbWUgaW5kZW50YXRpb24gbGV2ZWwgYXMgdGhlIHBhcmVudC5cbiAgICAgIC8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjc5OTc4NFxuICAgICAgaGFzQ29udGVudCA9IGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJiByZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChudWxsICE9PSBzdGF0ZS50YWcgJiYgJyEnICE9PSBzdGF0ZS50YWcpIHtcbiAgICBpZiAoJz8nID09PSBzdGF0ZS50YWcpIHtcbiAgICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgIHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTtcbiAgICAgICAgICAgdHlwZUluZGV4ICs9IDEpIHtcbiAgICAgICAgdHlwZSA9IHN0YXRlLmltcGxpY2l0VHlwZXNbdHlwZUluZGV4XTtcblxuICAgICAgICAvLyBJbXBsaWNpdCByZXNvbHZpbmcgaXMgbm90IGFsbG93ZWQgZm9yIG5vbi1zY2FsYXIgdHlwZXMsIGFuZCAnPydcbiAgICAgICAgLy8gbm9uLXNwZWNpZmljIHRhZyBpcyBvbmx5IGFzc2lnbmVkIHRvIHBsYWluIHNjYWxhcnMuIFNvLCBpdCBpc24ndFxuICAgICAgICAvLyBuZWVkZWQgdG8gY2hlY2sgZm9yICdraW5kJyBjb25mb3JtaXR5LlxuXG4gICAgICAgIGlmICh0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlLmNvbnN0cnVjdChzdGF0ZS5yZXN1bHQpO1xuICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUudGFnO1xuICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwoc3RhdGUudHlwZU1hcCwgc3RhdGUudGFnKSkge1xuICAgICAgdHlwZSA9IHN0YXRlLnR5cGVNYXBbc3RhdGUudGFnXTtcblxuICAgICAgaWYgKG51bGwgIT09IHN0YXRlLnJlc3VsdCAmJiB0eXBlLmtpbmQgIT09IHN0YXRlLmtpbmQpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8JyArIHN0YXRlLnRhZyArICc+IHRhZzsgaXQgc2hvdWxkIGJlIFwiJyArIHR5cGUua2luZCArICdcIiwgbm90IFwiJyArIHN0YXRlLmtpbmQgKyAnXCInKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2Nhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8JyArIHN0YXRlLnRhZyArICc+IGV4cGxpY2l0IHRhZycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ID0gdHlwZS5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTtcbiAgICAgICAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vua25vd24gdGFnICE8JyArIHN0YXRlLnRhZyArICc+Jyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGwgIT09IHN0YXRlLnRhZyB8fCBudWxsICE9PSBzdGF0ZS5hbmNob3IgfHwgaGFzQ29udGVudDtcbn1cblxuZnVuY3Rpb24gcmVhZERvY3VtZW50KHN0YXRlKSB7XG4gIHZhciBkb2N1bWVudFN0YXJ0ID0gc3RhdGUucG9zaXRpb24sXG4gICAgICBfcG9zaXRpb24sXG4gICAgICBkaXJlY3RpdmVOYW1lLFxuICAgICAgZGlyZWN0aXZlQXJncyxcbiAgICAgIGhhc0RpcmVjdGl2ZXMgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIHN0YXRlLnZlcnNpb24gPSBudWxsO1xuICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBzdGF0ZS5sZWdhY3k7XG4gIHN0YXRlLnRhZ01hcCA9IHt9O1xuICBzdGF0ZS5hbmNob3JNYXAgPSB7fTtcblxuICB3aGlsZSAoMCAhPT0gKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gMCB8fCAweDI1LyogJSAqLyAhPT0gY2gpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGRpcmVjdGl2ZU5hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICBkaXJlY3RpdmVBcmdzID0gW107XG5cbiAgICBpZiAoZGlyZWN0aXZlTmFtZS5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoJyk7XG4gICAgfVxuXG4gICAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKDB4MjMvKiAjICovID09PSBjaCkge1xuICAgICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX0VPTChjaCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICBkaXJlY3RpdmVBcmdzLnB1c2goc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbikpO1xuICAgIH1cblxuICAgIGlmICgwICE9PSBjaCkge1xuICAgICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKGRpcmVjdGl2ZUhhbmRsZXJzLCBkaXJlY3RpdmVOYW1lKSkge1xuICAgICAgZGlyZWN0aXZlSGFuZGxlcnNbZGlyZWN0aXZlTmFtZV0oc3RhdGUsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSBcIicgKyBkaXJlY3RpdmVOYW1lICsgJ1wiJyk7XG4gICAgfVxuICB9XG5cbiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gIGlmICgwID09PSBzdGF0ZS5saW5lSW5kZW50ICYmXG4gICAgICAweDJELyogLSAqLyA9PT0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgJiZcbiAgICAgIDB4MkQvKiAtICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgJiZcbiAgICAgIDB4MkQvKiAtICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMikpIHtcbiAgICBzdGF0ZS5wb3NpdGlvbiArPSAzO1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICB9IGVsc2UgaWYgKGhhc0RpcmVjdGl2ZXMpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgY29tcG9zZU5vZGUoc3RhdGUsIHN0YXRlLmxpbmVJbmRlbnQgLSAxLCBDT05URVhUX0JMT0NLX09VVCwgZmFsc2UsIHRydWUpO1xuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgaWYgKHN0YXRlLmNoZWNrTGluZUJyZWFrcyAmJlxuICAgICAgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnbm9uLUFTQ0lJIGxpbmUgYnJlYWtzIGFyZSBpbnRlcnByZXRlZCBhcyBjb250ZW50Jyk7XG4gIH1cblxuICBzdGF0ZS5kb2N1bWVudHMucHVzaChzdGF0ZS5yZXN1bHQpO1xuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkpIHtcblxuICAgIGlmICgweDJFLyogLiAqLyA9PT0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA8IChzdGF0ZS5sZW5ndGggLSAxKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdlbmQgb2YgdGhlIHN0cmVhbSBvciBhIGRvY3VtZW50IHNlcGFyYXRvciBpcyBleHBlY3RlZCcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybjtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpIHtcbiAgaW5wdXQgPSBTdHJpbmcoaW5wdXQpO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7XG5cbiAgICAvLyBBZGQgdGFpbGluZyBgXFxuYCBpZiBub3QgZXhpc3RzXG4gICAgaWYgKDB4MEEvKiBMRiAqLyAhPT0gaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAmJlxuICAgICAgICAweDBELyogQ1IgKi8gIT09IGlucHV0LmNoYXJDb2RlQXQoaW5wdXQubGVuZ3RoIC0gMSkpIHtcbiAgICAgIGlucHV0ICs9ICdcXG4nO1xuICAgIH1cblxuICAgIC8vIFN0cmlwIEJPTVxuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICAgIGlucHV0ID0gaW5wdXQuc2xpY2UoMSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKGlucHV0LCBvcHRpb25zKTtcblxuICBpZiAoUEFUVEVSTl9OT05fUFJJTlRBQkxFLnRlc3Qoc3RhdGUuaW5wdXQpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzJyk7XG4gIH1cblxuICAvLyBVc2UgMCBhcyBzdHJpbmcgdGVybWluYXRvci4gVGhhdCBzaWduaWZpY2FudGx5IHNpbXBsaWZpZXMgYm91bmRzIGNoZWNrLlxuICBzdGF0ZS5pbnB1dCArPSAnXFwwJztcblxuICB3aGlsZSAoMHgyMC8qIFNwYWNlICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkge1xuICAgIHN0YXRlLmxpbmVJbmRlbnQgKz0gMTtcbiAgICBzdGF0ZS5wb3NpdGlvbiArPSAxO1xuICB9XG5cbiAgd2hpbGUgKHN0YXRlLnBvc2l0aW9uIDwgKHN0YXRlLmxlbmd0aCAtIDEpKSB7XG4gICAgcmVhZERvY3VtZW50KHN0YXRlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5kb2N1bWVudHM7XG59XG5cblxuZnVuY3Rpb24gbG9hZEFsbChpbnB1dCwgaXRlcmF0b3IsIG9wdGlvbnMpIHtcbiAgdmFyIGRvY3VtZW50cyA9IGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpLCBpbmRleCwgbGVuZ3RoO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGl0ZXJhdG9yKGRvY3VtZW50c1tpbmRleF0pO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbG9hZChpbnB1dCwgb3B0aW9ucykge1xuICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyksIGluZGV4LCBsZW5ndGg7XG5cbiAgaWYgKDAgPT09IGRvY3VtZW50cy5sZW5ndGgpIHtcbiAgICAvKmVzbGludC1kaXNhYmxlIG5vLXVuZGVmaW5lZCovXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIGlmICgxID09PSBkb2N1bWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50c1swXTtcbiAgfVxuICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUnKTtcbn1cblxuXG5mdW5jdGlvbiBzYWZlTG9hZEFsbChpbnB1dCwgb3V0cHV0LCBvcHRpb25zKSB7XG4gIGxvYWRBbGwoaW5wdXQsIG91dHB1dCwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cblxuZnVuY3Rpb24gc2FmZUxvYWQoaW5wdXQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGxvYWQoaW5wdXQsIGNvbW1vbi5leHRlbmQoeyBzY2hlbWE6IERFRkFVTFRfU0FGRV9TQ0hFTUEgfSwgb3B0aW9ucykpO1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLmxvYWRBbGwgICAgID0gbG9hZEFsbDtcbm1vZHVsZS5leHBvcnRzLmxvYWQgICAgICAgID0gbG9hZDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsID0gc2FmZUxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5zYWZlTG9hZCAgICA9IHNhZmVMb2FkO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuL2NvbW1vbicpO1xuXG5cbmZ1bmN0aW9uIE1hcmsobmFtZSwgYnVmZmVyLCBwb3NpdGlvbiwgbGluZSwgY29sdW1uKSB7XG4gIHRoaXMubmFtZSAgICAgPSBuYW1lO1xuICB0aGlzLmJ1ZmZlciAgID0gYnVmZmVyO1xuICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIHRoaXMubGluZSAgICAgPSBsaW5lO1xuICB0aGlzLmNvbHVtbiAgID0gY29sdW1uO1xufVxuXG5cbk1hcmsucHJvdG90eXBlLmdldFNuaXBwZXQgPSBmdW5jdGlvbiBnZXRTbmlwcGV0KGluZGVudCwgbWF4TGVuZ3RoKSB7XG4gIHZhciBoZWFkLCBzdGFydCwgdGFpbCwgZW5kLCBzbmlwcGV0O1xuXG4gIGlmICghdGhpcy5idWZmZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGluZGVudCA9IGluZGVudCB8fCA0O1xuICBtYXhMZW5ndGggPSBtYXhMZW5ndGggfHwgNzU7XG5cbiAgaGVhZCA9ICcnO1xuICBzdGFydCA9IHRoaXMucG9zaXRpb247XG5cbiAgd2hpbGUgKHN0YXJ0ID4gMCAmJiAtMSA9PT0gJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoc3RhcnQgLSAxKSkpIHtcbiAgICBzdGFydCAtPSAxO1xuICAgIGlmICh0aGlzLnBvc2l0aW9uIC0gc3RhcnQgPiAobWF4TGVuZ3RoIC8gMiAtIDEpKSB7XG4gICAgICBoZWFkID0gJyAuLi4gJztcbiAgICAgIHN0YXJ0ICs9IDU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0YWlsID0gJyc7XG4gIGVuZCA9IHRoaXMucG9zaXRpb247XG5cbiAgd2hpbGUgKGVuZCA8IHRoaXMuYnVmZmVyLmxlbmd0aCAmJiAtMSA9PT0gJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoZW5kKSkpIHtcbiAgICBlbmQgKz0gMTtcbiAgICBpZiAoZW5kIC0gdGhpcy5wb3NpdGlvbiA+IChtYXhMZW5ndGggLyAyIC0gMSkpIHtcbiAgICAgIHRhaWwgPSAnIC4uLiAnO1xuICAgICAgZW5kIC09IDU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzbmlwcGV0ID0gdGhpcy5idWZmZXIuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgcmV0dXJuIGNvbW1vbi5yZXBlYXQoJyAnLCBpbmRlbnQpICsgaGVhZCArIHNuaXBwZXQgKyB0YWlsICsgJ1xcbicgK1xuICAgICAgICAgY29tbW9uLnJlcGVhdCgnICcsIGluZGVudCArIHRoaXMucG9zaXRpb24gLSBzdGFydCArIGhlYWQubGVuZ3RoKSArICdeJztcbn07XG5cblxuTWFyay5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7XG4gIHZhciBzbmlwcGV0LCB3aGVyZSA9ICcnO1xuXG4gIGlmICh0aGlzLm5hbWUpIHtcbiAgICB3aGVyZSArPSAnaW4gXCInICsgdGhpcy5uYW1lICsgJ1wiICc7XG4gIH1cblxuICB3aGVyZSArPSAnYXQgbGluZSAnICsgKHRoaXMubGluZSArIDEpICsgJywgY29sdW1uICcgKyAodGhpcy5jb2x1bW4gKyAxKTtcblxuICBpZiAoIWNvbXBhY3QpIHtcbiAgICBzbmlwcGV0ID0gdGhpcy5nZXRTbmlwcGV0KCk7XG5cbiAgICBpZiAoc25pcHBldCkge1xuICAgICAgd2hlcmUgKz0gJzpcXG4nICsgc25pcHBldDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd2hlcmU7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gTWFyaztcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBtYXgtbGVuKi9cblxudmFyIGNvbW1vbiAgICAgICAgPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIFlBTUxFeGNlcHRpb24gPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xudmFyIFR5cGUgICAgICAgICAgPSByZXF1aXJlKCcuL3R5cGUnKTtcblxuXG5mdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEsIG5hbWUsIHJlc3VsdCkge1xuICB2YXIgZXhjbHVkZSA9IFtdO1xuXG4gIHNjaGVtYS5pbmNsdWRlLmZvckVhY2goZnVuY3Rpb24gKGluY2x1ZGVkU2NoZW1hKSB7XG4gICAgcmVzdWx0ID0gY29tcGlsZUxpc3QoaW5jbHVkZWRTY2hlbWEsIG5hbWUsIHJlc3VsdCk7XG4gIH0pO1xuXG4gIHNjaGVtYVtuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uIChjdXJyZW50VHlwZSkge1xuICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uIChwcmV2aW91c1R5cGUsIHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIGlmIChwcmV2aW91c1R5cGUudGFnID09PSBjdXJyZW50VHlwZS50YWcpIHtcbiAgICAgICAgZXhjbHVkZS5wdXNoKHByZXZpb3VzSW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVzdWx0LnB1c2goY3VycmVudFR5cGUpO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0LmZpbHRlcihmdW5jdGlvbiAodHlwZSwgaW5kZXgpIHtcbiAgICByZXR1cm4gLTEgPT09IGV4Y2x1ZGUuaW5kZXhPZihpbmRleCk7XG4gIH0pO1xufVxuXG5cbmZ1bmN0aW9uIGNvbXBpbGVNYXAoLyogbGlzdHMuLi4gKi8pIHtcbiAgdmFyIHJlc3VsdCA9IHt9LCBpbmRleCwgbGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIGNvbGxlY3RUeXBlKHR5cGUpIHtcbiAgICByZXN1bHRbdHlwZS50YWddID0gdHlwZTtcbiAgfVxuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5cbmZ1bmN0aW9uIFNjaGVtYShkZWZpbml0aW9uKSB7XG4gIHRoaXMuaW5jbHVkZSAgPSBkZWZpbml0aW9uLmluY2x1ZGUgIHx8IFtdO1xuICB0aGlzLmltcGxpY2l0ID0gZGVmaW5pdGlvbi5pbXBsaWNpdCB8fCBbXTtcbiAgdGhpcy5leHBsaWNpdCA9IGRlZmluaXRpb24uZXhwbGljaXQgfHwgW107XG5cbiAgdGhpcy5pbXBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgaWYgKHR5cGUubG9hZEtpbmQgJiYgJ3NjYWxhcicgIT09IHR5cGUubG9hZEtpbmQpIHtcbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIHRoaXMuY29tcGlsZWRJbXBsaWNpdCA9IGNvbXBpbGVMaXN0KHRoaXMsICdpbXBsaWNpdCcsIFtdKTtcbiAgdGhpcy5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QodGhpcywgJ2V4cGxpY2l0JywgW10pO1xuICB0aGlzLmNvbXBpbGVkVHlwZU1hcCAgPSBjb21waWxlTWFwKHRoaXMuY29tcGlsZWRJbXBsaWNpdCwgdGhpcy5jb21waWxlZEV4cGxpY2l0KTtcbn1cblxuXG5TY2hlbWEuREVGQVVMVCA9IG51bGw7XG5cblxuU2NoZW1hLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZVNjaGVtYSgpIHtcbiAgdmFyIHNjaGVtYXMsIHR5cGVzO1xuXG4gIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICBjYXNlIDE6XG4gICAgc2NoZW1hcyA9IFNjaGVtYS5ERUZBVUxUO1xuICAgIHR5cGVzID0gYXJndW1lbnRzWzBdO1xuICAgIGJyZWFrO1xuXG4gIGNhc2UgMjpcbiAgICBzY2hlbWFzID0gYXJndW1lbnRzWzBdO1xuICAgIHR5cGVzID0gYXJndW1lbnRzWzFdO1xuICAgIGJyZWFrO1xuXG4gIGRlZmF1bHQ6XG4gICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1dyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIFNjaGVtYS5jcmVhdGUgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIHNjaGVtYXMgPSBjb21tb24udG9BcnJheShzY2hlbWFzKTtcbiAgdHlwZXMgPSBjb21tb24udG9BcnJheSh0eXBlcyk7XG5cbiAgaWYgKCFzY2hlbWFzLmV2ZXJ5KGZ1bmN0aW9uIChzY2hlbWEpIHsgcmV0dXJuIHNjaGVtYSBpbnN0YW5jZW9mIFNjaGVtYTsgfSkpIHtcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignU3BlY2lmaWVkIGxpc3Qgb2Ygc3VwZXIgc2NoZW1hcyAob3IgYSBzaW5nbGUgU2NoZW1hIG9iamVjdCkgY29udGFpbnMgYSBub24tU2NoZW1hIG9iamVjdC4nKTtcbiAgfVxuXG4gIGlmICghdHlwZXMuZXZlcnkoZnVuY3Rpb24gKHR5cGUpIHsgcmV0dXJuIHR5cGUgaW5zdGFuY2VvZiBUeXBlOyB9KSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuJyk7XG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYSh7XG4gICAgaW5jbHVkZTogc2NoZW1hcyxcbiAgICBleHBsaWNpdDogdHlwZXNcbiAgfSk7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gU2NoZW1hO1xuIiwiLy8gU3RhbmRhcmQgWUFNTCdzIENvcmUgc2NoZW1hLlxuLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyODA0OTIzXG4vL1xuLy8gTk9URTogSlMtWUFNTCBkb2VzIG5vdCBzdXBwb3J0IHNjaGVtYS1zcGVjaWZpYyB0YWcgcmVzb2x1dGlvbiByZXN0cmljdGlvbnMuXG4vLyBTbywgQ29yZSBzY2hlbWEgaGFzIG5vIGRpc3RpbmN0aW9ucyBmcm9tIEpTT04gc2NoZW1hIGlzIEpTLVlBTUwuXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9qc29uJylcbiAgXVxufSk7XG4iLCIvLyBKUy1ZQU1MJ3MgZGVmYXVsdCBzY2hlbWEgZm9yIGBsb2FkYCBmdW5jdGlvbi5cbi8vIEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vXG4vLyBUaGlzIHNjaGVtYSBpcyBiYXNlZCBvbiBKUy1ZQU1MJ3MgZGVmYXVsdCBzYWZlIHNjaGVtYSBhbmQgaW5jbHVkZXNcbi8vIEphdmFTY3JpcHQtc3BlY2lmaWMgdHlwZXM6ICEhanMvdW5kZWZpbmVkLCAhIWpzL3JlZ2V4cCBhbmQgISFqcy9mdW5jdGlvbi5cbi8vXG4vLyBBbHNvIHRoaXMgc2NoZW1hIGlzIHVzZWQgYXMgZGVmYXVsdCBiYXNlIHNjaGVtYSBhdCBgU2NoZW1hLmNyZWF0ZWAgZnVuY3Rpb24uXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IFNjaGVtYS5ERUZBVUxUID0gbmV3IFNjaGVtYSh7XG4gIGluY2x1ZGU6IFtcbiAgICByZXF1aXJlKCcuL2RlZmF1bHRfc2FmZScpXG4gIF0sXG4gIGV4cGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9qcy91bmRlZmluZWQnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL2pzL3JlZ2V4cCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvanMvZnVuY3Rpb24nKVxuICBdXG59KTtcbiIsIi8vIEpTLVlBTUwncyBkZWZhdWx0IHNjaGVtYSBmb3IgYHNhZmVMb2FkYCBmdW5jdGlvbi5cbi8vIEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vXG4vLyBUaGlzIHNjaGVtYSBpcyBiYXNlZCBvbiBzdGFuZGFyZCBZQU1MJ3MgQ29yZSBzY2hlbWEgYW5kIGluY2x1ZGVzIG1vc3Qgb2Zcbi8vIGV4dHJhIHR5cGVzIGRlc2NyaWJlZCBhdCBZQU1MIHRhZyByZXBvc2l0b3J5LiAoaHR0cDovL3lhbWwub3JnL3R5cGUvKVxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vY29yZScpXG4gIF0sXG4gIGltcGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS90aW1lc3RhbXAnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL21lcmdlJylcbiAgXSxcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL2JpbmFyeScpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvb21hcCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvcGFpcnMnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL3NldCcpXG4gIF1cbn0pO1xuIiwiLy8gU3RhbmRhcmQgWUFNTCdzIEZhaWxzYWZlIHNjaGVtYS5cbi8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMjM0NlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL3N0cicpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvc2VxJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9tYXAnKVxuICBdXG59KTtcbiIsIi8vIFN0YW5kYXJkIFlBTUwncyBKU09OIHNjaGVtYS5cbi8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMzIzMVxuLy9cbi8vIE5PVEU6IEpTLVlBTUwgZG9lcyBub3Qgc3VwcG9ydCBzY2hlbWEtc3BlY2lmaWMgdGFnIHJlc29sdXRpb24gcmVzdHJpY3Rpb25zLlxuLy8gU28sIHRoaXMgc2NoZW1hIGlzIG5vdCBzdWNoIHN0cmljdCBhcyBkZWZpbmVkIGluIHRoZSBZQU1MIHNwZWNpZmljYXRpb24uXG4vLyBJdCBhbGxvd3MgbnVtYmVycyBpbiBiaW5hcnkgbm90YWlvbiwgdXNlIGBOdWxsYCBhbmQgYE5VTExgIGFzIGBudWxsYCwgZXRjLlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vZmFpbHNhZmUnKVxuICBdLFxuICBpbXBsaWNpdDogW1xuICAgIHJlcXVpcmUoJy4uL3R5cGUvbnVsbCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvYm9vbCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvaW50JyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9mbG9hdCcpXG4gIF1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgWUFNTEV4Y2VwdGlvbiA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG5cbnZhciBUWVBFX0NPTlNUUlVDVE9SX09QVElPTlMgPSBbXG4gICdraW5kJyxcbiAgJ3Jlc29sdmUnLFxuICAnY29uc3RydWN0JyxcbiAgJ2luc3RhbmNlT2YnLFxuICAncHJlZGljYXRlJyxcbiAgJ3JlcHJlc2VudCcsXG4gICdkZWZhdWx0U3R5bGUnLFxuICAnc3R5bGVBbGlhc2VzJ1xuXTtcblxudmFyIFlBTUxfTk9ERV9LSU5EUyA9IFtcbiAgJ3NjYWxhcicsXG4gICdzZXF1ZW5jZScsXG4gICdtYXBwaW5nJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlQWxpYXNlcyhtYXApIHtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuXG4gIGlmIChudWxsICE9PSBtYXApIHtcbiAgICBPYmplY3Qua2V5cyhtYXApLmZvckVhY2goZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICBtYXBbc3R5bGVdLmZvckVhY2goZnVuY3Rpb24gKGFsaWFzKSB7XG4gICAgICAgIHJlc3VsdFtTdHJpbmcoYWxpYXMpXSA9IHN0eWxlO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBUeXBlKHRhZywgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKC0xID09PSBUWVBFX0NPTlNUUlVDVE9SX09QVElPTlMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1Vua25vd24gb3B0aW9uIFwiJyArIG5hbWUgKyAnXCIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRPRE86IEFkZCB0YWcgZm9ybWF0IGNoZWNrLlxuICB0aGlzLnRhZyAgICAgICAgICA9IHRhZztcbiAgdGhpcy5raW5kICAgICAgICAgPSBvcHRpb25zWydraW5kJ10gICAgICAgICB8fCBudWxsO1xuICB0aGlzLnJlc29sdmUgICAgICA9IG9wdGlvbnNbJ3Jlc29sdmUnXSAgICAgIHx8IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRydWU7IH07XG4gIHRoaXMuY29uc3RydWN0ICAgID0gb3B0aW9uc1snY29uc3RydWN0J10gICAgfHwgZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIGRhdGE7IH07XG4gIHRoaXMuaW5zdGFuY2VPZiAgID0gb3B0aW9uc1snaW5zdGFuY2VPZiddICAgfHwgbnVsbDtcbiAgdGhpcy5wcmVkaWNhdGUgICAgPSBvcHRpb25zWydwcmVkaWNhdGUnXSAgICB8fCBudWxsO1xuICB0aGlzLnJlcHJlc2VudCAgICA9IG9wdGlvbnNbJ3JlcHJlc2VudCddICAgIHx8IG51bGw7XG4gIHRoaXMuZGVmYXVsdFN0eWxlID0gb3B0aW9uc1snZGVmYXVsdFN0eWxlJ10gfHwgbnVsbDtcbiAgdGhpcy5zdHlsZUFsaWFzZXMgPSBjb21waWxlU3R5bGVBbGlhc2VzKG9wdGlvbnNbJ3N0eWxlQWxpYXNlcyddIHx8IG51bGwpO1xuXG4gIGlmICgtMSA9PT0gWUFNTF9OT0RFX0tJTkRTLmluZGV4T2YodGhpcy5raW5kKSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdVbmtub3duIGtpbmQgXCInICsgdGhpcy5raW5kICsgJ1wiIGlzIHNwZWNpZmllZCBmb3IgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFR5cGU7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSovXG5cbi8vIEEgdHJpY2sgZm9yIGJyb3dzZXJpZmllZCB2ZXJzaW9uLlxuLy8gU2luY2Ugd2UgbWFrZSBicm93c2VyaWZpZXIgdG8gaWdub3JlIGBidWZmZXJgIG1vZHVsZSwgTm9kZUJ1ZmZlciB3aWxsIGJlIHVuZGVmaW5lZFxudmFyIE5vZGVCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG52YXIgVHlwZSAgICAgICA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuXG4vLyBbIDY0LCA2NSwgNjYgXSAtPiBbIHBhZGRpbmcsIENSLCBMRiBdXG52YXIgQkFTRTY0X01BUCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxcblxccic7XG5cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxCaW5hcnkoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBjb2RlLCBpZHgsIGJpdGxlbiA9IDAsIGxlbiA9IDAsIG1heCA9IGRhdGEubGVuZ3RoLCBtYXAgPSBCQVNFNjRfTUFQO1xuXG4gIC8vIENvbnZlcnQgb25lIGJ5IG9uZS5cbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgY29kZSA9IG1hcC5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpO1xuXG4gICAgLy8gU2tpcCBDUi9MRlxuICAgIGlmIChjb2RlID4gNjQpIHsgY29udGludWU7IH1cblxuICAgIC8vIEZhaWwgb24gaWxsZWdhbCBjaGFyYWN0ZXJzXG4gICAgaWYgKGNvZGUgPCAwKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgYml0bGVuICs9IDY7XG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgYW55IGJpdHMgbGVmdCwgc291cmNlIHdhcyBjb3JydXB0ZWRcbiAgcmV0dXJuIChiaXRsZW4gJSA4KSA9PT0gMDtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEJpbmFyeShkYXRhKSB7XG4gIHZhciBjb2RlLCBpZHgsIHRhaWxiaXRzLFxuICAgICAgaW5wdXQgPSBkYXRhLnJlcGxhY2UoL1tcXHJcXG49XS9nLCAnJyksIC8vIHJlbW92ZSBDUi9MRiAmIHBhZGRpbmcgdG8gc2ltcGxpZnkgc2NhblxuICAgICAgbWF4ID0gaW5wdXQubGVuZ3RoLFxuICAgICAgbWFwID0gQkFTRTY0X01BUCxcbiAgICAgIGJpdHMgPSAwLFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgLy8gQ29sbGVjdCBieSA2KjQgYml0cyAoMyBieXRlcylcblxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBpZiAoKGlkeCAlIDQgPT09IDApICYmIGlkeCkge1xuICAgICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMTYpICYgMHhGRik7XG4gICAgICByZXN1bHQucHVzaCgoYml0cyA+PiA4KSAmIDB4RkYpO1xuICAgICAgcmVzdWx0LnB1c2goYml0cyAmIDB4RkYpO1xuICAgIH1cblxuICAgIGJpdHMgPSAoYml0cyA8PCA2KSB8IG1hcC5pbmRleE9mKGlucHV0LmNoYXJBdChpZHgpKTtcbiAgfVxuXG4gIC8vIER1bXAgdGFpbFxuXG4gIHRhaWxiaXRzID0gKG1heCAlIDQpICogNjtcblxuICBpZiAodGFpbGJpdHMgPT09IDApIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAxNikgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiA4KSAmIDB4RkYpO1xuICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAweEZGKTtcbiAgfSBlbHNlIGlmICh0YWlsYml0cyA9PT0gMTgpIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAxMCkgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAyKSAmIDB4RkYpO1xuICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxMikge1xuICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDQpICYgMHhGRik7XG4gIH1cblxuICAvLyBXcmFwIGludG8gQnVmZmVyIGZvciBOb2RlSlMgYW5kIGxlYXZlIEFycmF5IGZvciBicm93c2VyXG4gIGlmIChOb2RlQnVmZmVyKSB7XG4gICAgcmV0dXJuIG5ldyBOb2RlQnVmZmVyKHJlc3VsdCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCAvKiwgc3R5bGUqLykge1xuICB2YXIgcmVzdWx0ID0gJycsIGJpdHMgPSAwLCBpZHgsIHRhaWwsXG4gICAgICBtYXggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgbWFwID0gQkFTRTY0X01BUDtcblxuICAvLyBDb252ZXJ0IGV2ZXJ5IHRocmVlIGJ5dGVzIHRvIDQgQVNDSUkgY2hhcmFjdGVycy5cblxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBpZiAoKGlkeCAlIDMgPT09IDApICYmIGlkeCkge1xuICAgICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMTIpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDYpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgICB9XG5cbiAgICBiaXRzID0gKGJpdHMgPDwgOCkgKyBvYmplY3RbaWR4XTtcbiAgfVxuXG4gIC8vIER1bXAgdGFpbFxuXG4gIHRhaWwgPSBtYXggJSAzO1xuXG4gIGlmICh0YWlsID09PSAwKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDEyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNikgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxMCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDQpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCAyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9IGVsc2UgaWYgKHRhaWwgPT09IDEpIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCA0KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaXNCaW5hcnkob2JqZWN0KSB7XG4gIHJldHVybiBOb2RlQnVmZmVyICYmIE5vZGVCdWZmZXIuaXNCdWZmZXIob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCaW5hcnksXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSxcbiAgcHJlZGljYXRlOiBpc0JpbmFyeSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sQmluYXJ5XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sQm9vbGVhbihkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuXG4gIHJldHVybiAobWF4ID09PSA0ICYmIChkYXRhID09PSAndHJ1ZScgfHwgZGF0YSA9PT0gJ1RydWUnIHx8IGRhdGEgPT09ICdUUlVFJykpIHx8XG4gICAgICAgICAobWF4ID09PSA1ICYmIChkYXRhID09PSAnZmFsc2UnIHx8IGRhdGEgPT09ICdGYWxzZScgfHwgZGF0YSA9PT0gJ0ZBTFNFJykpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7XG4gIHJldHVybiBkYXRhID09PSAndHJ1ZScgfHxcbiAgICAgICAgIGRhdGEgPT09ICdUcnVlJyB8fFxuICAgICAgICAgZGF0YSA9PT0gJ1RSVUUnO1xufVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW4ob2JqZWN0KSB7XG4gIHJldHVybiAnW29iamVjdCBCb29sZWFuXScgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpib29sJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCb29sZWFuLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLFxuICBwcmVkaWNhdGU6IGlzQm9vbGVhbixcbiAgcmVwcmVzZW50OiB7XG4gICAgbG93ZXJjYXNlOiBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiBvYmplY3QgPyAndHJ1ZScgOiAnZmFsc2UnOyB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gb2JqZWN0ID8gJ1RSVUUnIDogJ0ZBTFNFJzsgfSxcbiAgICBjYW1lbGNhc2U6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuIG9iamVjdCA/ICdUcnVlJyA6ICdGYWxzZSc7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBUeXBlICAgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBZQU1MX0ZMT0FUX1BBVFRFUk4gPSBuZXcgUmVnRXhwKFxuICAnXig/OlstK10/KD86WzAtOV1bMC05X10qKVxcXFwuWzAtOV9dKig/OltlRV1bLStdWzAtOV0rKT8nICtcbiAgJ3xcXFxcLlswLTlfXSsoPzpbZUVdWy0rXVswLTldKyk/JyArXG4gICd8Wy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pK1xcXFwuWzAtOV9dKicgK1xuICAnfFstK10/XFxcXC4oPzppbmZ8SW5mfElORiknICtcbiAgJ3xcXFxcLig/Om5hbnxOYU58TkFOKSkkJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB2YWx1ZSwgc2lnbiwgYmFzZSwgZGlnaXRzO1xuXG4gIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7XG4gIHZhciB2YWx1ZSwgc2lnbiwgYmFzZSwgZGlnaXRzO1xuXG4gIHZhbHVlICA9IGRhdGEucmVwbGFjZSgvXy9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgc2lnbiAgID0gJy0nID09PSB2YWx1ZVswXSA/IC0xIDogMTtcbiAgZGlnaXRzID0gW107XG5cbiAgaWYgKDAgPD0gJystJy5pbmRleE9mKHZhbHVlWzBdKSkge1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7XG4gIH1cblxuICBpZiAoJy5pbmYnID09PSB2YWx1ZSkge1xuICAgIHJldHVybiAoMSA9PT0gc2lnbikgPyBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgOiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7XG5cbiAgfSBlbHNlIGlmICgnLm5hbicgPT09IHZhbHVlKSB7XG4gICAgcmV0dXJuIE5hTjtcblxuICB9IGVsc2UgaWYgKDAgPD0gdmFsdWUuaW5kZXhPZignOicpKSB7XG4gICAgdmFsdWUuc3BsaXQoJzonKS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7XG4gICAgICBkaWdpdHMudW5zaGlmdChwYXJzZUZsb2F0KHYsIDEwKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZSA9IDAuMDtcbiAgICBiYXNlID0gMTtcblxuICAgIGRpZ2l0cy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7XG4gICAgICB2YWx1ZSArPSBkICogYmFzZTtcbiAgICAgIGJhc2UgKj0gNjA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbiAqIHZhbHVlO1xuXG4gIH1cbiAgcmV0dXJuIHNpZ24gKiBwYXJzZUZsb2F0KHZhbHVlLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxGbG9hdChvYmplY3QsIHN0eWxlKSB7XG4gIGlmIChpc05hTihvYmplY3QpKSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgIGNhc2UgJ2xvd2VyY2FzZSc6XG4gICAgICByZXR1cm4gJy5uYW4nO1xuICAgIGNhc2UgJ3VwcGVyY2FzZSc6XG4gICAgICByZXR1cm4gJy5OQU4nO1xuICAgIGNhc2UgJ2NhbWVsY2FzZSc6XG4gICAgICByZXR1cm4gJy5OYU4nO1xuICAgIH1cbiAgfSBlbHNlIGlmIChOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkge1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICBjYXNlICdsb3dlcmNhc2UnOlxuICAgICAgcmV0dXJuICcuaW5mJztcbiAgICBjYXNlICd1cHBlcmNhc2UnOlxuICAgICAgcmV0dXJuICcuSU5GJztcbiAgICBjYXNlICdjYW1lbGNhc2UnOlxuICAgICAgcmV0dXJuICcuSW5mJztcbiAgICB9XG4gIH0gZWxzZSBpZiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSBvYmplY3QpIHtcbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgY2FzZSAnbG93ZXJjYXNlJzpcbiAgICAgIHJldHVybiAnLS5pbmYnO1xuICAgIGNhc2UgJ3VwcGVyY2FzZSc6XG4gICAgICByZXR1cm4gJy0uSU5GJztcbiAgICBjYXNlICdjYW1lbGNhc2UnOlxuICAgICAgcmV0dXJuICctLkluZic7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKSB7XG4gICAgcmV0dXJuICctMC4wJztcbiAgfVxuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKDEwKTtcbn1cblxuZnVuY3Rpb24gaXNGbG9hdChvYmplY3QpIHtcbiAgcmV0dXJuICgnW29iamVjdCBOdW1iZXJdJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpICYmXG4gICAgICAgICAoMCAhPT0gb2JqZWN0ICUgMSB8fCBjb21tb24uaXNOZWdhdGl2ZVplcm8ob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmZsb2F0Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxGbG9hdCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sRmxvYXQsXG4gIHByZWRpY2F0ZTogaXNGbG9hdCxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sRmxvYXQsXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi4vY29tbW9uJyk7XG52YXIgVHlwZSAgID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5mdW5jdGlvbiBpc0hleENvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM5LyogOSAqLykpIHx8XG4gICAgICAgICAoKDB4NDEvKiBBICovIDw9IGMpICYmIChjIDw9IDB4NDYvKiBGICovKSkgfHxcbiAgICAgICAgICgoMHg2MS8qIGEgKi8gPD0gYykgJiYgKGMgPD0gMHg2Ni8qIGYgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzNy8qIDcgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNEZWNDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxJbnRlZ2VyKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgbWF4ID0gZGF0YS5sZW5ndGgsXG4gICAgICBpbmRleCA9IDAsXG4gICAgICBoYXNEaWdpdHMgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIGlmICghbWF4KSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIGNoID0gZGF0YVtpbmRleF07XG5cbiAgLy8gc2lnblxuICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJysnKSB7XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuICB9XG5cbiAgaWYgKGNoID09PSAnMCcpIHtcbiAgICAvLyAwXG4gICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KSB7IHJldHVybiB0cnVlOyB9XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuXG4gICAgLy8gYmFzZSAyLCBiYXNlIDgsIGJhc2UgMTZcblxuICAgIGlmIChjaCA9PT0gJ2InKSB7XG4gICAgICAvLyBiYXNlIDJcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoY2ggIT09ICcwJyAmJiBjaCAhPT0gJzEnKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzRGlnaXRzO1xuICAgIH1cblxuXG4gICAgaWYgKGNoID09PSAneCcpIHtcbiAgICAgIC8vIGJhc2UgMTZcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoIWlzSGV4Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0RpZ2l0cztcbiAgICB9XG5cbiAgICAvLyBiYXNlIDhcbiAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgIGNoID0gZGF0YVtpbmRleF07XG4gICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgaWYgKCFpc09jdENvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0RpZ2l0cztcbiAgfVxuXG4gIC8vIGJhc2UgMTAgKGV4Y2VwdCAwKSBvciBiYXNlIDYwXG5cbiAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgIGlmIChjaCA9PT0gJzonKSB7IGJyZWFrOyB9XG4gICAgaWYgKCFpc0RlY0NvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghaGFzRGlnaXRzKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIC8vIGlmICFiYXNlNjAgLSBkb25lO1xuICBpZiAoY2ggIT09ICc6JykgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gIC8vIGJhc2U2MCBhbG1vc3Qgbm90IHVzZWQsIG5vIG5lZWRzIHRvIG9wdGltaXplXG4gIHJldHVybiAvXig6WzAtNV0/WzAtOV0pKyQvLnRlc3QoZGF0YS5zbGljZShpbmRleCkpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7XG4gIHZhciB2YWx1ZSA9IGRhdGEsIHNpZ24gPSAxLCBjaCwgYmFzZSwgZGlnaXRzID0gW107XG5cbiAgaWYgKHZhbHVlLmluZGV4T2YoJ18nKSAhPT0gLTEpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgJycpO1xuICB9XG5cbiAgY2ggPSB2YWx1ZVswXTtcblxuICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJysnKSB7XG4gICAgaWYgKGNoID09PSAnLScpIHsgc2lnbiA9IC0xOyB9XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgICBjaCA9IHZhbHVlWzBdO1xuICB9XG5cbiAgaWYgKCcwJyA9PT0gdmFsdWUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChjaCA9PT0gJzAnKSB7XG4gICAgaWYgKHZhbHVlWzFdID09PSAnYicpIHtcbiAgICAgIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDIpO1xuICAgIH1cbiAgICBpZiAodmFsdWVbMV0gPT09ICd4Jykge1xuICAgICAgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZSwgMTYpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCA4KTtcblxuICB9XG5cbiAgaWYgKHZhbHVlLmluZGV4T2YoJzonKSAhPT0gLTEpIHtcbiAgICB2YWx1ZS5zcGxpdCgnOicpLmZvckVhY2goZnVuY3Rpb24gKHYpIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KHBhcnNlSW50KHYsIDEwKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZSA9IDA7XG4gICAgYmFzZSA9IDE7XG5cbiAgICBkaWdpdHMuZm9yRWFjaChmdW5jdGlvbiAoZCkge1xuICAgICAgdmFsdWUgKz0gKGQgKiBiYXNlKTtcbiAgICAgIGJhc2UgKj0gNjA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbiAqIHZhbHVlO1xuXG4gIH1cblxuICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7XG59XG5cbmZ1bmN0aW9uIGlzSW50ZWdlcihvYmplY3QpIHtcbiAgcmV0dXJuICgnW29iamVjdCBOdW1iZXJdJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpICYmXG4gICAgICAgICAoMCA9PT0gb2JqZWN0ICUgMSAmJiAhY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEludGVnZXIsXG4gIHByZWRpY2F0ZTogaXNJbnRlZ2VyLFxuICByZXByZXNlbnQ6IHtcbiAgICBiaW5hcnk6ICAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gJzBiJyArIG9iamVjdC50b1N0cmluZygyKTsgfSxcbiAgICBvY3RhbDogICAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gJzAnICArIG9iamVjdC50b1N0cmluZyg4KTsgfSxcbiAgICBkZWNpbWFsOiAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gICAgICAgIG9iamVjdC50b1N0cmluZygxMCk7IH0sXG4gICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuICcweCcgKyBvYmplY3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnZGVjaW1hbCcsXG4gIHN0eWxlQWxpYXNlczoge1xuICAgIGJpbmFyeTogICAgICBbIDIsICAnYmluJyBdLFxuICAgIG9jdGFsOiAgICAgICBbIDgsICAnb2N0JyBdLFxuICAgIGRlY2ltYWw6ICAgICBbIDEwLCAnZGVjJyBdLFxuICAgIGhleGFkZWNpbWFsOiBbIDE2LCAnaGV4JyBdXG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZXNwcmltYTtcblxuLy8gQnJvd3NlcmlmaWVkIHZlcnNpb24gZG9lcyBub3QgaGF2ZSBlc3ByaW1hXG4vL1xuLy8gMS4gRm9yIG5vZGUuanMganVzdCByZXF1aXJlIG1vZHVsZSBhcyBkZXBzXG4vLyAyLiBGb3IgYnJvd3NlciB0cnkgdG8gcmVxdWlyZSBtdWR1bGUgdmlhIGV4dGVybmFsIEFNRCBzeXN0ZW0uXG4vLyAgICBJZiBub3QgZm91bmQgLSB0cnkgdG8gZmFsbGJhY2sgdG8gd2luZG93LmVzcHJpbWEuIElmIG5vdFxuLy8gICAgZm91bmQgdG9vIC0gdGhlbiBmYWlsIHRvIHBhcnNlLlxuLy9cbnRyeSB7XG4gIGVzcHJpbWEgPSByZXF1aXJlKCdlc3ByaW1hJyk7XG59IGNhdGNoIChfKSB7XG4gIC8qZ2xvYmFsIHdpbmRvdyAqL1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgZXNwcmltYSA9IHdpbmRvdy5lc3ByaW1hOyB9XG59XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cnkge1xuICAgIHZhciBzb3VyY2UgPSAnKCcgKyBkYXRhICsgJyknLFxuICAgICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KSxcbiAgICAgICAgcGFyYW1zID0gW10sXG4gICAgICAgIGJvZHk7XG5cbiAgICBpZiAoJ1Byb2dyYW0nICAgICAgICAgICAgICE9PSBhc3QudHlwZSAgICAgICAgIHx8XG4gICAgICAgIDEgICAgICAgICAgICAgICAgICAgICAhPT0gYXN0LmJvZHkubGVuZ3RoICB8fFxuICAgICAgICAnRXhwcmVzc2lvblN0YXRlbWVudCcgIT09IGFzdC5ib2R5WzBdLnR5cGUgfHxcbiAgICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbicgICE9PSBhc3QuYm9keVswXS5leHByZXNzaW9uLnR5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbihkYXRhKSB7XG4gIC8qanNsaW50IGV2aWw6dHJ1ZSovXG5cbiAgdmFyIHNvdXJjZSA9ICcoJyArIGRhdGEgKyAnKScsXG4gICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KSxcbiAgICAgIHBhcmFtcyA9IFtdLFxuICAgICAgYm9keTtcblxuICBpZiAoJ1Byb2dyYW0nICAgICAgICAgICAgICE9PSBhc3QudHlwZSAgICAgICAgIHx8XG4gICAgICAxICAgICAgICAgICAgICAgICAgICAgIT09IGFzdC5ib2R5Lmxlbmd0aCAgfHxcbiAgICAgICdFeHByZXNzaW9uU3RhdGVtZW50JyAhPT0gYXN0LmJvZHlbMF0udHlwZSB8fFxuICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbicgICE9PSBhc3QuYm9keVswXS5leHByZXNzaW9uLnR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byByZXNvbHZlIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBhc3QuYm9keVswXS5leHByZXNzaW9uLnBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uIChwYXJhbSkge1xuICAgIHBhcmFtcy5wdXNoKHBhcmFtLm5hbWUpO1xuICB9KTtcblxuICBib2R5ID0gYXN0LmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnJhbmdlO1xuXG4gIC8vIEVzcHJpbWEncyByYW5nZXMgaW5jbHVkZSB0aGUgZmlyc3QgJ3snIGFuZCB0aGUgbGFzdCAnfScgY2hhcmFjdGVycyBvblxuICAvLyBmdW5jdGlvbiBleHByZXNzaW9ucy4gU28gY3V0IHRoZW0gb3V0LlxuICAvKmVzbGludC1kaXNhYmxlIG5vLW5ldy1mdW5jKi9cbiAgcmV0dXJuIG5ldyBGdW5jdGlvbihwYXJhbXMsIHNvdXJjZS5zbGljZShib2R5WzBdICsgMSwgYm9keVsxXSAtIDEpKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdEZ1bmN0aW9uKG9iamVjdCAvKiwgc3R5bGUqLykge1xuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24ob2JqZWN0KSB7XG4gIHJldHVybiAnW29iamVjdCBGdW5jdGlvbl0nID09PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6anMvZnVuY3Rpb24nLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbixcbiAgcHJlZGljYXRlOiBpc0Z1bmN0aW9uLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRGdW5jdGlvblxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdFJlZ0V4cChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKDAgPT09IGRhdGEubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHJlZ2V4cCA9IGRhdGEsXG4gICAgICB0YWlsICAgPSAvXFwvKFtnaW1dKikkLy5leGVjKGRhdGEpLFxuICAgICAgbW9kaWZpZXJzID0gJyc7XG5cbiAgLy8gaWYgcmVnZXhwIHN0YXJ0cyB3aXRoICcvJyBpdCBjYW4gaGF2ZSBtb2RpZmllcnMgYW5kIG11c3QgYmUgcHJvcGVybHkgY2xvc2VkXG4gIC8vIGAvZm9vL2dpbWAgLSBtb2RpZmllcnMgdGFpbCBjYW4gYmUgbWF4aW11bSAzIGNoYXJzXG4gIGlmICgnLycgPT09IHJlZ2V4cFswXSkge1xuICAgIGlmICh0YWlsKSB7XG4gICAgICBtb2RpZmllcnMgPSB0YWlsWzFdO1xuICAgIH1cblxuICAgIGlmIChtb2RpZmllcnMubGVuZ3RoID4gMykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAvLyBpZiBleHByZXNzaW9uIHN0YXJ0cyB3aXRoIC8sIGlzIHNob3VsZCBiZSBwcm9wZXJseSB0ZXJtaW5hdGVkXG4gICAgaWYgKHJlZ2V4cFtyZWdleHAubGVuZ3RoIC0gbW9kaWZpZXJzLmxlbmd0aCAtIDFdICE9PSAnLycpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICByZWdleHAgPSByZWdleHAuc2xpY2UoMSwgcmVnZXhwLmxlbmd0aCAtIG1vZGlmaWVycy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIGR1bW15ID0gbmV3IFJlZ0V4cChyZWdleHAsIG1vZGlmaWVycyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRSZWdFeHAoZGF0YSkge1xuICB2YXIgcmVnZXhwID0gZGF0YSxcbiAgICAgIHRhaWwgICA9IC9cXC8oW2dpbV0qKSQvLmV4ZWMoZGF0YSksXG4gICAgICBtb2RpZmllcnMgPSAnJztcblxuICAvLyBgL2Zvby9naW1gIC0gdGFpbCBjYW4gYmUgbWF4aW11bSA0IGNoYXJzXG4gIGlmICgnLycgPT09IHJlZ2V4cFswXSkge1xuICAgIGlmICh0YWlsKSB7XG4gICAgICBtb2RpZmllcnMgPSB0YWlsWzFdO1xuICAgIH1cbiAgICByZWdleHAgPSByZWdleHAuc2xpY2UoMSwgcmVnZXhwLmxlbmd0aCAtIG1vZGlmaWVycy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVnRXhwKHJlZ2V4cCwgbW9kaWZpZXJzKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdFJlZ0V4cChvYmplY3QgLyosIHN0eWxlKi8pIHtcbiAgdmFyIHJlc3VsdCA9ICcvJyArIG9iamVjdC5zb3VyY2UgKyAnLyc7XG5cbiAgaWYgKG9iamVjdC5nbG9iYWwpIHtcbiAgICByZXN1bHQgKz0gJ2cnO1xuICB9XG5cbiAgaWYgKG9iamVjdC5tdWx0aWxpbmUpIHtcbiAgICByZXN1bHQgKz0gJ20nO1xuICB9XG5cbiAgaWYgKG9iamVjdC5pZ25vcmVDYXNlKSB7XG4gICAgcmVzdWx0ICs9ICdpJztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGlzUmVnRXhwKG9iamVjdCkge1xuICByZXR1cm4gJ1tvYmplY3QgUmVnRXhwXScgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpqcy9yZWdleHAnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdFJlZ0V4cCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RKYXZhc2NyaXB0UmVnRXhwLFxuICBwcmVkaWNhdGU6IGlzUmVnRXhwLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRSZWdFeHBcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uLy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUphdmFzY3JpcHRVbmRlZmluZWQoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RKYXZhc2NyaXB0VW5kZWZpbmVkKCkge1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXVuZGVmaW5lZCovXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudEphdmFzY3JpcHRVbmRlZmluZWQoKSB7XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gaXNVbmRlZmluZWQob2JqZWN0KSB7XG4gIHJldHVybiAndW5kZWZpbmVkJyA9PT0gdHlwZW9mIG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6anMvdW5kZWZpbmVkJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZUphdmFzY3JpcHRVbmRlZmluZWQsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0SmF2YXNjcmlwdFVuZGVmaW5lZCxcbiAgcHJlZGljYXRlOiBpc1VuZGVmaW5lZCxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRKYXZhc2NyaXB0VW5kZWZpbmVkXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOm1hcCcsIHtcbiAga2luZDogJ21hcHBpbmcnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IHt9OyB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sTWVyZ2UoZGF0YSkge1xuICByZXR1cm4gJzw8JyA9PT0gZGF0YSB8fCBudWxsID09PSBkYXRhO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjptZXJnZScsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTWVyZ2Vcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxOdWxsKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBtYXggPSBkYXRhLmxlbmd0aDtcblxuICByZXR1cm4gKG1heCA9PT0gMSAmJiBkYXRhID09PSAnficpIHx8XG4gICAgICAgICAobWF4ID09PSA0ICYmIChkYXRhID09PSAnbnVsbCcgfHwgZGF0YSA9PT0gJ051bGwnIHx8IGRhdGEgPT09ICdOVUxMJykpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbChvYmplY3QpIHtcbiAgcmV0dXJuIG51bGwgPT09IG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6bnVsbCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTnVsbCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCxcbiAgcHJlZGljYXRlOiBpc051bGwsXG4gIHJlcHJlc2VudDoge1xuICAgIGNhbm9uaWNhbDogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ34nOyAgICB9LFxuICAgIGxvd2VyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ251bGwnOyB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ05VTEwnOyB9LFxuICAgIGNhbWVsY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ051bGwnOyB9XG4gIH0sXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX3RvU3RyaW5nICAgICAgID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBvYmplY3RLZXlzID0gW10sIGluZGV4LCBsZW5ndGgsIHBhaXIsIHBhaXJLZXksIHBhaXJIYXNLZXksXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuICAgIHBhaXJIYXNLZXkgPSBmYWxzZTtcblxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyAhPT0gX3RvU3RyaW5nLmNhbGwocGFpcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikge1xuICAgICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhaXIsIHBhaXJLZXkpKSB7XG4gICAgICAgIGlmICghcGFpckhhc0tleSkge1xuICAgICAgICAgIHBhaXJIYXNLZXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcGFpckhhc0tleSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgtMSA9PT0gb2JqZWN0S2V5cy5pbmRleE9mKHBhaXJLZXkpKSB7XG4gICAgICBvYmplY3RLZXlzLnB1c2gocGFpcktleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbE9tYXAoZGF0YSkge1xuICByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6b21hcCcsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxPbWFwLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBpbmRleCwgbGVuZ3RoLCBwYWlyLCBrZXlzLCByZXN1bHQsXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIHJlc3VsdCA9IG5ldyBBcnJheShvYmplY3QubGVuZ3RoKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTtcblxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyAhPT0gX3RvU3RyaW5nLmNhbGwocGFpcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICBpZiAoMSAhPT0ga2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXN1bHRbaW5kZXhdID0gWyBrZXlzWzBdLCBwYWlyW2tleXNbMF1dIF07XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbFBhaXJzKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgaW5kZXgsIGxlbmd0aCwgcGFpciwga2V5cywgcmVzdWx0LFxuICAgICAgb2JqZWN0ID0gZGF0YTtcblxuICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICByZXN1bHRbaW5kZXhdID0gWyBrZXlzWzBdLCBwYWlyW2tleXNbMF1dIF07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpwYWlycycsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycyxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sUGFpcnNcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2VxJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IFtdOyB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFNldChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIga2V5LCBvYmplY3QgPSBkYXRhO1xuXG4gIGZvciAoa2V5IGluIG9iamVjdCkge1xuICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgIGlmIChudWxsICE9PSBvYmplY3Rba2V5XSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxTZXQoZGF0YSkge1xuICByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiB7fTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2V0Jywge1xuICBraW5kOiAnbWFwcGluZycsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sU2V0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxTZXRcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c3RyJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiAnJzsgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG52YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cChcbiAgJ14oWzAtOV1bMC05XVswLTldWzAtOV0pJyAgICAgICAgICArIC8vIFsxXSB5ZWFyXG4gICctKFswLTldWzAtOV0/KScgICAgICAgICAgICAgICAgICAgKyAvLyBbMl0gbW9udGhcbiAgJy0oWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICArIC8vIFszXSBkYXlcbiAgJyg/Oig/OltUdF18WyBcXFxcdF0rKScgICAgICAgICAgICAgICsgLy8gLi4uXG4gICcoWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNF0gaG91clxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzVdIG1pbnV0ZVxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzZdIHNlY29uZFxuICAnKD86XFxcXC4oWzAtOV0qKSk/JyAgICAgICAgICAgICAgICAgKyAvLyBbN10gZnJhY3Rpb25cbiAgJyg/OlsgXFxcXHRdKihafChbLStdKShbMC05XVswLTldPyknICsgLy8gWzhdIHR6IFs5XSB0el9zaWduIFsxMF0gdHpfaG91clxuICAnKD86OihbMC05XVswLTldKSk/KSk/KT8kJyk7ICAgICAgICAgLy8gWzExXSB0el9taW51dGVcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCxcbiAgICAgIGRlbHRhID0gbnVsbCwgdHpfaG91ciwgdHpfbWludXRlLCBkYXRlO1xuXG4gIG1hdGNoID0gWUFNTF9USU1FU1RBTVBfUkVHRVhQLmV4ZWMoZGF0YSk7XG5cbiAgaWYgKG51bGwgPT09IG1hdGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICB2YXIgbWF0Y2gsIHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBmcmFjdGlvbiA9IDAsXG4gICAgICBkZWx0YSA9IG51bGwsIHR6X2hvdXIsIHR6X21pbnV0ZSwgZGF0ZTtcblxuICBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpO1xuXG4gIGlmIChudWxsID09PSBtYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRGF0ZSByZXNvbHZlIGVycm9yJyk7XG4gIH1cblxuICAvLyBtYXRjaDogWzFdIHllYXIgWzJdIG1vbnRoIFszXSBkYXlcblxuICB5ZWFyID0gKyhtYXRjaFsxXSk7XG4gIG1vbnRoID0gKyhtYXRjaFsyXSkgLSAxOyAvLyBKUyBtb250aCBzdGFydHMgd2l0aCAwXG4gIGRheSA9ICsobWF0Y2hbM10pO1xuXG4gIGlmICghbWF0Y2hbNF0pIHsgLy8gbm8gaG91clxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5KSk7XG4gIH1cblxuICAvLyBtYXRjaDogWzRdIGhvdXIgWzVdIG1pbnV0ZSBbNl0gc2Vjb25kIFs3XSBmcmFjdGlvblxuXG4gIGhvdXIgPSArKG1hdGNoWzRdKTtcbiAgbWludXRlID0gKyhtYXRjaFs1XSk7XG4gIHNlY29uZCA9ICsobWF0Y2hbNl0pO1xuXG4gIGlmIChtYXRjaFs3XSkge1xuICAgIGZyYWN0aW9uID0gbWF0Y2hbN10uc2xpY2UoMCwgMyk7XG4gICAgd2hpbGUgKGZyYWN0aW9uLmxlbmd0aCA8IDMpIHsgLy8gbWlsbGktc2Vjb25kc1xuICAgICAgZnJhY3Rpb24gKz0gJzAnO1xuICAgIH1cbiAgICBmcmFjdGlvbiA9ICtmcmFjdGlvbjtcbiAgfVxuXG4gIC8vIG1hdGNoOiBbOF0gdHogWzldIHR6X3NpZ24gWzEwXSB0el9ob3VyIFsxMV0gdHpfbWludXRlXG5cbiAgaWYgKG1hdGNoWzldKSB7XG4gICAgdHpfaG91ciA9ICsobWF0Y2hbMTBdKTtcbiAgICB0el9taW51dGUgPSArKG1hdGNoWzExXSB8fCAwKTtcbiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNjAwMDA7IC8vIGRlbHRhIGluIG1pbGktc2Vjb25kc1xuICAgIGlmICgnLScgPT09IG1hdGNoWzldKSB7XG4gICAgICBkZWx0YSA9IC1kZWx0YTtcbiAgICB9XG4gIH1cblxuICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7XG5cbiAgaWYgKGRlbHRhKSB7XG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpIC0gZGVsdGEpO1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxUaW1lc3RhbXAob2JqZWN0IC8qLCBzdHlsZSovKSB7XG4gIHJldHVybiBvYmplY3QudG9JU09TdHJpbmcoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbFRpbWVzdGFtcCxcbiAgaW5zdGFuY2VPZjogRGF0ZSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wXG59KTtcbiIsIi8qXG4gIENvcHlyaWdodCAoQykgMjAxMyBBcml5YSBIaWRheWF0IDxhcml5YS5oaWRheWF0QGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEzIFRoYWRkZWUgVHlsIDx0aGFkZGVlLnR5bEBnbWFpbC5jb20+XG4gIENvcHlyaWdodCAoQykgMjAxMyBNYXRoaWFzIEJ5bmVucyA8bWF0aGlhc0BxaXdpLmJlPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgQXJpeWEgSGlkYXlhdCA8YXJpeWEuaGlkYXlhdEBnbWFpbC5jb20+XG4gIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyA8bWF0aGlhc0BxaXdpLmJlPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgSm9vc3QtV2ltIEJvZWtlc3RlaWpuIDxqb29zdC13aW1AYm9la2VzdGVpam4ubmw+XG4gIENvcHlyaWdodCAoQykgMjAxMiBLcmlzIEtvd2FsIDxrcmlzLmtvd2FsQGNpeGFyLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIEFycGFkIEJvcnNvcyA8YXJwYWQuYm9yc29zQGdvb2dsZW1haWwuY29tPlxuICBDb3B5cmlnaHQgKEMpIDIwMTEgQXJpeWEgSGlkYXlhdCA8YXJpeWEuaGlkYXlhdEBnbWFpbC5jb20+XG5cbiAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0XG4gIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuXG4gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHRcbiAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGVcbiAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cbiAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbiAgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRVxuICBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRVxuICBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgPENPUFlSSUdIVCBIT0xERVI+IEJFIExJQUJMRSBGT1IgQU5ZXG4gIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUztcbiAgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EXG4gIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuKi9cblxuKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8gVW5pdmVyc2FsIE1vZHVsZSBEZWZpbml0aW9uIChVTUQpIHRvIHN1cHBvcnQgQU1ELCBDb21tb25KUy9Ob2RlLmpzLFxuICAgIC8vIFJoaW5vLCBhbmQgcGxhaW4gYnJvd3NlciBsb2FkaW5nLlxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIGRlZmluZShbJ2V4cG9ydHMnXSwgZmFjdG9yeSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgZmFjdG9yeShleHBvcnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmYWN0b3J5KChyb290LmVzcHJpbWEgPSB7fSkpO1xuICAgIH1cbn0odGhpcywgZnVuY3Rpb24gKGV4cG9ydHMpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgVG9rZW4sXG4gICAgICAgIFRva2VuTmFtZSxcbiAgICAgICAgRm5FeHByVG9rZW5zLFxuICAgICAgICBTeW50YXgsXG4gICAgICAgIFBsYWNlSG9sZGVycyxcbiAgICAgICAgTWVzc2FnZXMsXG4gICAgICAgIFJlZ2V4LFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHN0cmljdCxcbiAgICAgICAgc291cmNlVHlwZSxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIGxpbmVOdW1iZXIsXG4gICAgICAgIGxpbmVTdGFydCxcbiAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IsXG4gICAgICAgIGxhc3RJbmRleCxcbiAgICAgICAgbGFzdExpbmVOdW1iZXIsXG4gICAgICAgIGxhc3RMaW5lU3RhcnQsXG4gICAgICAgIHN0YXJ0SW5kZXgsXG4gICAgICAgIHN0YXJ0TGluZU51bWJlcixcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQsXG4gICAgICAgIHNjYW5uaW5nLFxuICAgICAgICBsZW5ndGgsXG4gICAgICAgIGxvb2thaGVhZCxcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIGV4dHJhLFxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50LFxuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQsXG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcblxuICAgIFRva2VuID0ge1xuICAgICAgICBCb29sZWFuTGl0ZXJhbDogMSxcbiAgICAgICAgRU9GOiAyLFxuICAgICAgICBJZGVudGlmaWVyOiAzLFxuICAgICAgICBLZXl3b3JkOiA0LFxuICAgICAgICBOdWxsTGl0ZXJhbDogNSxcbiAgICAgICAgTnVtZXJpY0xpdGVyYWw6IDYsXG4gICAgICAgIFB1bmN0dWF0b3I6IDcsXG4gICAgICAgIFN0cmluZ0xpdGVyYWw6IDgsXG4gICAgICAgIFJlZ3VsYXJFeHByZXNzaW9uOiA5LFxuICAgICAgICBUZW1wbGF0ZTogMTBcbiAgICB9O1xuXG4gICAgVG9rZW5OYW1lID0ge307XG4gICAgVG9rZW5OYW1lW1Rva2VuLkJvb2xlYW5MaXRlcmFsXSA9ICdCb29sZWFuJztcbiAgICBUb2tlbk5hbWVbVG9rZW4uRU9GXSA9ICc8ZW5kPic7XG4gICAgVG9rZW5OYW1lW1Rva2VuLklkZW50aWZpZXJdID0gJ0lkZW50aWZpZXInO1xuICAgIFRva2VuTmFtZVtUb2tlbi5LZXl3b3JkXSA9ICdLZXl3b3JkJztcbiAgICBUb2tlbk5hbWVbVG9rZW4uTnVsbExpdGVyYWxdID0gJ051bGwnO1xuICAgIFRva2VuTmFtZVtUb2tlbi5OdW1lcmljTGl0ZXJhbF0gPSAnTnVtZXJpYyc7XG4gICAgVG9rZW5OYW1lW1Rva2VuLlB1bmN0dWF0b3JdID0gJ1B1bmN0dWF0b3InO1xuICAgIFRva2VuTmFtZVtUb2tlbi5TdHJpbmdMaXRlcmFsXSA9ICdTdHJpbmcnO1xuICAgIFRva2VuTmFtZVtUb2tlbi5SZWd1bGFyRXhwcmVzc2lvbl0gPSAnUmVndWxhckV4cHJlc3Npb24nO1xuICAgIFRva2VuTmFtZVtUb2tlbi5UZW1wbGF0ZV0gPSAnVGVtcGxhdGUnO1xuXG4gICAgLy8gQSBmdW5jdGlvbiBmb2xsb3dpbmcgb25lIG9mIHRob3NlIHRva2VucyBpcyBhbiBleHByZXNzaW9uLlxuICAgIEZuRXhwclRva2VucyA9IFsnKCcsICd7JywgJ1snLCAnaW4nLCAndHlwZW9mJywgJ2luc3RhbmNlb2YnLCAnbmV3JyxcbiAgICAgICAgICAgICAgICAgICAgJ3JldHVybicsICdjYXNlJywgJ2RlbGV0ZScsICd0aHJvdycsICd2b2lkJyxcbiAgICAgICAgICAgICAgICAgICAgLy8gYXNzaWdubWVudCBvcGVyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgJz0nLCAnKz0nLCAnLT0nLCAnKj0nLCAnLz0nLCAnJT0nLCAnPDw9JywgJz4+PScsICc+Pj49JyxcbiAgICAgICAgICAgICAgICAgICAgJyY9JywgJ3w9JywgJ149JywgJywnLFxuICAgICAgICAgICAgICAgICAgICAvLyBiaW5hcnkvdW5hcnkgb3BlcmF0b3JzXG4gICAgICAgICAgICAgICAgICAgICcrJywgJy0nLCAnKicsICcvJywgJyUnLCAnKysnLCAnLS0nLCAnPDwnLCAnPj4nLCAnPj4+JywgJyYnLFxuICAgICAgICAgICAgICAgICAgICAnfCcsICdeJywgJyEnLCAnficsICcmJicsICd8fCcsICc/JywgJzonLCAnPT09JywgJz09JywgJz49JyxcbiAgICAgICAgICAgICAgICAgICAgJzw9JywgJzwnLCAnPicsICchPScsICchPT0nXTtcblxuICAgIFN5bnRheCA9IHtcbiAgICAgICAgQXNzaWdubWVudEV4cHJlc3Npb246ICdBc3NpZ25tZW50RXhwcmVzc2lvbicsXG4gICAgICAgIEFzc2lnbm1lbnRQYXR0ZXJuOiAnQXNzaWdubWVudFBhdHRlcm4nLFxuICAgICAgICBBcnJheUV4cHJlc3Npb246ICdBcnJheUV4cHJlc3Npb24nLFxuICAgICAgICBBcnJheVBhdHRlcm46ICdBcnJheVBhdHRlcm4nLFxuICAgICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICAgICAgQmxvY2tTdGF0ZW1lbnQ6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICAgIEJpbmFyeUV4cHJlc3Npb246ICdCaW5hcnlFeHByZXNzaW9uJyxcbiAgICAgICAgQnJlYWtTdGF0ZW1lbnQ6ICdCcmVha1N0YXRlbWVudCcsXG4gICAgICAgIENhbGxFeHByZXNzaW9uOiAnQ2FsbEV4cHJlc3Npb24nLFxuICAgICAgICBDYXRjaENsYXVzZTogJ0NhdGNoQ2xhdXNlJyxcbiAgICAgICAgQ2xhc3NCb2R5OiAnQ2xhc3NCb2R5JyxcbiAgICAgICAgQ2xhc3NEZWNsYXJhdGlvbjogJ0NsYXNzRGVjbGFyYXRpb24nLFxuICAgICAgICBDbGFzc0V4cHJlc3Npb246ICdDbGFzc0V4cHJlc3Npb24nLFxuICAgICAgICBDb25kaXRpb25hbEV4cHJlc3Npb246ICdDb25kaXRpb25hbEV4cHJlc3Npb24nLFxuICAgICAgICBDb250aW51ZVN0YXRlbWVudDogJ0NvbnRpbnVlU3RhdGVtZW50JyxcbiAgICAgICAgRG9XaGlsZVN0YXRlbWVudDogJ0RvV2hpbGVTdGF0ZW1lbnQnLFxuICAgICAgICBEZWJ1Z2dlclN0YXRlbWVudDogJ0RlYnVnZ2VyU3RhdGVtZW50JyxcbiAgICAgICAgRW1wdHlTdGF0ZW1lbnQ6ICdFbXB0eVN0YXRlbWVudCcsXG4gICAgICAgIEV4cG9ydEFsbERlY2xhcmF0aW9uOiAnRXhwb3J0QWxsRGVjbGFyYXRpb24nLFxuICAgICAgICBFeHBvcnREZWZhdWx0RGVjbGFyYXRpb246ICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nLFxuICAgICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uOiAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicsXG4gICAgICAgIEV4cG9ydFNwZWNpZmllcjogJ0V4cG9ydFNwZWNpZmllcicsXG4gICAgICAgIEV4cHJlc3Npb25TdGF0ZW1lbnQ6ICdFeHByZXNzaW9uU3RhdGVtZW50JyxcbiAgICAgICAgRm9yU3RhdGVtZW50OiAnRm9yU3RhdGVtZW50JyxcbiAgICAgICAgRm9ySW5TdGF0ZW1lbnQ6ICdGb3JJblN0YXRlbWVudCcsXG4gICAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246ICdGdW5jdGlvbkRlY2xhcmF0aW9uJyxcbiAgICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiAnRnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICAgICAgSWRlbnRpZmllcjogJ0lkZW50aWZpZXInLFxuICAgICAgICBJZlN0YXRlbWVudDogJ0lmU3RhdGVtZW50JyxcbiAgICAgICAgSW1wb3J0RGVjbGFyYXRpb246ICdJbXBvcnREZWNsYXJhdGlvbicsXG4gICAgICAgIEltcG9ydERlZmF1bHRTcGVjaWZpZXI6ICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJyxcbiAgICAgICAgSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyOiAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJyxcbiAgICAgICAgSW1wb3J0U3BlY2lmaWVyOiAnSW1wb3J0U3BlY2lmaWVyJyxcbiAgICAgICAgTGl0ZXJhbDogJ0xpdGVyYWwnLFxuICAgICAgICBMYWJlbGVkU3RhdGVtZW50OiAnTGFiZWxlZFN0YXRlbWVudCcsXG4gICAgICAgIExvZ2ljYWxFeHByZXNzaW9uOiAnTG9naWNhbEV4cHJlc3Npb24nLFxuICAgICAgICBNZW1iZXJFeHByZXNzaW9uOiAnTWVtYmVyRXhwcmVzc2lvbicsXG4gICAgICAgIE1ldGhvZERlZmluaXRpb246ICdNZXRob2REZWZpbml0aW9uJyxcbiAgICAgICAgTmV3RXhwcmVzc2lvbjogJ05ld0V4cHJlc3Npb24nLFxuICAgICAgICBPYmplY3RFeHByZXNzaW9uOiAnT2JqZWN0RXhwcmVzc2lvbicsXG4gICAgICAgIE9iamVjdFBhdHRlcm46ICdPYmplY3RQYXR0ZXJuJyxcbiAgICAgICAgUHJvZ3JhbTogJ1Byb2dyYW0nLFxuICAgICAgICBQcm9wZXJ0eTogJ1Byb3BlcnR5JyxcbiAgICAgICAgUmVzdEVsZW1lbnQ6ICdSZXN0RWxlbWVudCcsXG4gICAgICAgIFJldHVyblN0YXRlbWVudDogJ1JldHVyblN0YXRlbWVudCcsXG4gICAgICAgIFNlcXVlbmNlRXhwcmVzc2lvbjogJ1NlcXVlbmNlRXhwcmVzc2lvbicsXG4gICAgICAgIFNwcmVhZEVsZW1lbnQ6ICdTcHJlYWRFbGVtZW50JyxcbiAgICAgICAgU3VwZXI6ICdTdXBlcicsXG4gICAgICAgIFN3aXRjaENhc2U6ICdTd2l0Y2hDYXNlJyxcbiAgICAgICAgU3dpdGNoU3RhdGVtZW50OiAnU3dpdGNoU3RhdGVtZW50JyxcbiAgICAgICAgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uOiAnVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uJyxcbiAgICAgICAgVGVtcGxhdGVFbGVtZW50OiAnVGVtcGxhdGVFbGVtZW50JyxcbiAgICAgICAgVGVtcGxhdGVMaXRlcmFsOiAnVGVtcGxhdGVMaXRlcmFsJyxcbiAgICAgICAgVGhpc0V4cHJlc3Npb246ICdUaGlzRXhwcmVzc2lvbicsXG4gICAgICAgIFRocm93U3RhdGVtZW50OiAnVGhyb3dTdGF0ZW1lbnQnLFxuICAgICAgICBUcnlTdGF0ZW1lbnQ6ICdUcnlTdGF0ZW1lbnQnLFxuICAgICAgICBVbmFyeUV4cHJlc3Npb246ICdVbmFyeUV4cHJlc3Npb24nLFxuICAgICAgICBVcGRhdGVFeHByZXNzaW9uOiAnVXBkYXRlRXhwcmVzc2lvbicsXG4gICAgICAgIFZhcmlhYmxlRGVjbGFyYXRpb246ICdWYXJpYWJsZURlY2xhcmF0aW9uJyxcbiAgICAgICAgVmFyaWFibGVEZWNsYXJhdG9yOiAnVmFyaWFibGVEZWNsYXJhdG9yJyxcbiAgICAgICAgV2hpbGVTdGF0ZW1lbnQ6ICdXaGlsZVN0YXRlbWVudCcsXG4gICAgICAgIFdpdGhTdGF0ZW1lbnQ6ICdXaXRoU3RhdGVtZW50J1xuICAgIH07XG5cbiAgICBQbGFjZUhvbGRlcnMgPSB7XG4gICAgICAgIEFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXI6ICdBcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyJ1xuICAgIH07XG5cbiAgICAvLyBFcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgaWRlbnRpY2FsIHRvIFY4LlxuICAgIE1lc3NhZ2VzID0ge1xuICAgICAgICBVbmV4cGVjdGVkVG9rZW46ICdVbmV4cGVjdGVkIHRva2VuICUwJyxcbiAgICAgICAgVW5leHBlY3RlZE51bWJlcjogJ1VuZXhwZWN0ZWQgbnVtYmVyJyxcbiAgICAgICAgVW5leHBlY3RlZFN0cmluZzogJ1VuZXhwZWN0ZWQgc3RyaW5nJyxcbiAgICAgICAgVW5leHBlY3RlZElkZW50aWZpZXI6ICdVbmV4cGVjdGVkIGlkZW50aWZpZXInLFxuICAgICAgICBVbmV4cGVjdGVkUmVzZXJ2ZWQ6ICdVbmV4cGVjdGVkIHJlc2VydmVkIHdvcmQnLFxuICAgICAgICBVbmV4cGVjdGVkVGVtcGxhdGU6ICdVbmV4cGVjdGVkIHF1YXNpICUwJyxcbiAgICAgICAgVW5leHBlY3RlZEVPUzogJ1VuZXhwZWN0ZWQgZW5kIG9mIGlucHV0JyxcbiAgICAgICAgTmV3bGluZUFmdGVyVGhyb3c6ICdJbGxlZ2FsIG5ld2xpbmUgYWZ0ZXIgdGhyb3cnLFxuICAgICAgICBJbnZhbGlkUmVnRXhwOiAnSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb24nLFxuICAgICAgICBVbnRlcm1pbmF0ZWRSZWdFeHA6ICdJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbWlzc2luZyAvJyxcbiAgICAgICAgSW52YWxpZExIU0luQXNzaWdubWVudDogJ0ludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXNzaWdubWVudCcsXG4gICAgICAgIEludmFsaWRMSFNJbkZvckluOiAnSW52YWxpZCBsZWZ0LWhhbmQgc2lkZSBpbiBmb3ItaW4nLFxuICAgICAgICBNdWx0aXBsZURlZmF1bHRzSW5Td2l0Y2g6ICdNb3JlIHRoYW4gb25lIGRlZmF1bHQgY2xhdXNlIGluIHN3aXRjaCBzdGF0ZW1lbnQnLFxuICAgICAgICBOb0NhdGNoT3JGaW5hbGx5OiAnTWlzc2luZyBjYXRjaCBvciBmaW5hbGx5IGFmdGVyIHRyeScsXG4gICAgICAgIFVua25vd25MYWJlbDogJ1VuZGVmaW5lZCBsYWJlbCBcXCclMFxcJycsXG4gICAgICAgIFJlZGVjbGFyYXRpb246ICclMCBcXCclMVxcJyBoYXMgYWxyZWFkeSBiZWVuIGRlY2xhcmVkJyxcbiAgICAgICAgSWxsZWdhbENvbnRpbnVlOiAnSWxsZWdhbCBjb250aW51ZSBzdGF0ZW1lbnQnLFxuICAgICAgICBJbGxlZ2FsQnJlYWs6ICdJbGxlZ2FsIGJyZWFrIHN0YXRlbWVudCcsXG4gICAgICAgIElsbGVnYWxSZXR1cm46ICdJbGxlZ2FsIHJldHVybiBzdGF0ZW1lbnQnLFxuICAgICAgICBTdHJpY3RNb2RlV2l0aDogJ1N0cmljdCBtb2RlIGNvZGUgbWF5IG5vdCBpbmNsdWRlIGEgd2l0aCBzdGF0ZW1lbnQnLFxuICAgICAgICBTdHJpY3RDYXRjaFZhcmlhYmxlOiAnQ2F0Y2ggdmFyaWFibGUgbWF5IG5vdCBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdFZhck5hbWU6ICdWYXJpYWJsZSBuYW1lIG1heSBub3QgYmUgZXZhbCBvciBhcmd1bWVudHMgaW4gc3RyaWN0IG1vZGUnLFxuICAgICAgICBTdHJpY3RQYXJhbU5hbWU6ICdQYXJhbWV0ZXIgbmFtZSBldmFsIG9yIGFyZ3VtZW50cyBpcyBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdFBhcmFtRHVwZTogJ1N0cmljdCBtb2RlIGZ1bmN0aW9uIG1heSBub3QgaGF2ZSBkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWVzJyxcbiAgICAgICAgU3RyaWN0RnVuY3Rpb25OYW1lOiAnRnVuY3Rpb24gbmFtZSBtYXkgbm90IGJlIGV2YWwgb3IgYXJndW1lbnRzIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0T2N0YWxMaXRlcmFsOiAnT2N0YWwgbGl0ZXJhbHMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlLicsXG4gICAgICAgIFN0cmljdERlbGV0ZTogJ0RlbGV0ZSBvZiBhbiB1bnF1YWxpZmllZCBpZGVudGlmaWVyIGluIHN0cmljdCBtb2RlLicsXG4gICAgICAgIFN0cmljdExIU0Fzc2lnbm1lbnQ6ICdBc3NpZ25tZW50IHRvIGV2YWwgb3IgYXJndW1lbnRzIGlzIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0TEhTUG9zdGZpeDogJ1Bvc3RmaXggaW5jcmVtZW50L2RlY3JlbWVudCBtYXkgbm90IGhhdmUgZXZhbCBvciBhcmd1bWVudHMgb3BlcmFuZCBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdExIU1ByZWZpeDogJ1ByZWZpeCBpbmNyZW1lbnQvZGVjcmVtZW50IG1heSBub3QgaGF2ZSBldmFsIG9yIGFyZ3VtZW50cyBvcGVyYW5kIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0UmVzZXJ2ZWRXb3JkOiAnVXNlIG9mIGZ1dHVyZSByZXNlcnZlZCB3b3JkIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgVGVtcGxhdGVPY3RhbExpdGVyYWw6ICdPY3RhbCBsaXRlcmFscyBhcmUgbm90IGFsbG93ZWQgaW4gdGVtcGxhdGUgc3RyaW5ncy4nLFxuICAgICAgICBQYXJhbWV0ZXJBZnRlclJlc3RQYXJhbWV0ZXI6ICdSZXN0IHBhcmFtZXRlciBtdXN0IGJlIGxhc3QgZm9ybWFsIHBhcmFtZXRlcicsXG4gICAgICAgIERlZmF1bHRSZXN0UGFyYW1ldGVyOiAnVW5leHBlY3RlZCB0b2tlbiA9JyxcbiAgICAgICAgT2JqZWN0UGF0dGVybkFzUmVzdFBhcmFtZXRlcjogJ1VuZXhwZWN0ZWQgdG9rZW4geycsXG4gICAgICAgIER1cGxpY2F0ZVByb3RvUHJvcGVydHk6ICdEdXBsaWNhdGUgX19wcm90b19fIGZpZWxkcyBhcmUgbm90IGFsbG93ZWQgaW4gb2JqZWN0IGxpdGVyYWxzJyxcbiAgICAgICAgQ29uc3RydWN0b3JTcGVjaWFsTWV0aG9kOiAnQ2xhc3MgY29uc3RydWN0b3IgbWF5IG5vdCBiZSBhbiBhY2Nlc3NvcicsXG4gICAgICAgIER1cGxpY2F0ZUNvbnN0cnVjdG9yOiAnQSBjbGFzcyBtYXkgb25seSBoYXZlIG9uZSBjb25zdHJ1Y3RvcicsXG4gICAgICAgIFN0YXRpY1Byb3RvdHlwZTogJ0NsYXNzZXMgbWF5IG5vdCBoYXZlIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBwcm90b3R5cGUnLFxuICAgICAgICBNaXNzaW5nRnJvbUNsYXVzZTogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBOb0FzQWZ0ZXJJbXBvcnROYW1lc3BhY2U6ICdVbmV4cGVjdGVkIHRva2VuJyxcbiAgICAgICAgSW52YWxpZE1vZHVsZVNwZWNpZmllcjogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBJbGxlZ2FsSW1wb3J0RGVjbGFyYXRpb246ICdVbmV4cGVjdGVkIHRva2VuJyxcbiAgICAgICAgSWxsZWdhbEV4cG9ydERlY2xhcmF0aW9uOiAnVW5leHBlY3RlZCB0b2tlbidcbiAgICB9O1xuXG4gICAgLy8gU2VlIGFsc28gdG9vbHMvZ2VuZXJhdGUtdW5pY29kZS1yZWdleC5weS5cbiAgICBSZWdleCA9IHtcbiAgICAgICAgTm9uQXNjaWlJZGVudGlmaWVyU3RhcnQ6IG5ldyBSZWdFeHAoJ1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4QTAtXFx1MDhCMlxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OFxcdTBDNTlcXHUwQzYwXFx1MEM2MVxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ2MFxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y0XFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlDMS1cXHUxOUM3XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YxXFx1MUNGNVxcdTFDRjZcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJEXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkNDXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjFGXFx1QTYyQVxcdUE2MkJcXHVBNjQwLVxcdUE2NkVcXHVBNjdGLVxcdUE2OURcXHVBNkEwLVxcdUE2RUZcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3OEVcXHVBNzkwLVxcdUE3QURcXHVBN0IwXFx1QTdCMVxcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjVGXFx1QUI2NFxcdUFCNjVcXHVBQkMwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdJyksXG4gICAgICAgIE5vbkFzY2lpSWRlbnRpZmllclBhcnQ6IG5ldyBSZWdFeHAoJ1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDMwMC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDgzLVxcdTA0ODdcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYxMC1cXHUwNjFBXFx1MDYyMC1cXHUwNjY5XFx1MDY2RS1cXHUwNkQzXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU4XFx1MDZFQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTAtXFx1MDc0QVxcdTA3NEQtXFx1MDdCMVxcdTA3QzAtXFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MkRcXHUwODQwLVxcdTA4NUJcXHUwOEEwLVxcdTA4QjJcXHUwOEU0LVxcdTA5NjNcXHUwOTY2LVxcdTA5NkZcXHUwOTcxLVxcdTA5ODNcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJDLVxcdTA5QzRcXHUwOUM3XFx1MDlDOFxcdTA5Q0ItXFx1MDlDRVxcdTA5RDdcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFM1xcdTA5RTYtXFx1MDlGMVxcdTBBMDEtXFx1MEEwM1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEEzQ1xcdTBBM0UtXFx1MEE0MlxcdTBBNDdcXHUwQTQ4XFx1MEE0Qi1cXHUwQTREXFx1MEE1MVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTY2LVxcdTBBNzVcXHUwQTgxLVxcdTBBODNcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkMtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRDBcXHUwQUUwLVxcdTBBRTNcXHUwQUU2LVxcdTBBRUZcXHUwQjAxLVxcdTBCMDNcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzQy1cXHUwQjQ0XFx1MEI0N1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYzXFx1MEI2Ni1cXHUwQjZGXFx1MEI3MVxcdTBCODJcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCQkUtXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDRFxcdTBCRDBcXHUwQkQ3XFx1MEJFNi1cXHUwQkVGXFx1MEMwMC1cXHUwQzAzXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRC1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzU4XFx1MEM1OVxcdTBDNjAtXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODEtXFx1MEM4M1xcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkMtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENERVxcdTBDRTAtXFx1MENFM1xcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwMS1cXHUwRDAzXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRC1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRFXFx1MEQ1N1xcdTBENjAtXFx1MEQ2M1xcdTBENjYtXFx1MEQ2RlxcdTBEN0EtXFx1MEQ3RlxcdTBEODJcXHUwRDgzXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBEQ0FcXHUwRENGLVxcdTBERDRcXHUwREQ2XFx1MEREOC1cXHUwRERGXFx1MERFNi1cXHUwREVGXFx1MERGMlxcdTBERjNcXHUwRTAxLVxcdTBFM0FcXHUwRTQwLVxcdTBFNEVcXHUwRTUwLVxcdTBFNTlcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCOVxcdTBFQkItXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRUM4LVxcdTBFQ0RcXHUwRUQwLVxcdTBFRDlcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEYxOFxcdTBGMTlcXHUwRjIwLVxcdTBGMjlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjcxLVxcdTBGODRcXHUwRjg2LVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAwMC1cXHUxMDQ5XFx1MTA1MC1cXHUxMDlEXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzNUQtXFx1MTM1RlxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxNFxcdTE3MjAtXFx1MTczNFxcdTE3NDAtXFx1MTc1M1xcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3NzJcXHUxNzczXFx1MTc4MC1cXHUxN0QzXFx1MTdEN1xcdTE3RENcXHUxN0REXFx1MTdFMC1cXHUxN0U5XFx1MTgwQi1cXHUxODBEXFx1MTgxMC1cXHUxODE5XFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MTlEMC1cXHUxOUQ5XFx1MUEwMC1cXHUxQTFCXFx1MUEyMC1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFBN1xcdTFBQjAtXFx1MUFCRFxcdTFCMDAtXFx1MUI0QlxcdTFCNTAtXFx1MUI1OVxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUJGM1xcdTFDMDAtXFx1MUMzN1xcdTFDNDAtXFx1MUM0OVxcdTFDNEQtXFx1MUM3RFxcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNGNlxcdTFDRjhcXHUxQ0Y5XFx1MUQwMC1cXHUxREY1XFx1MURGQy1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwMENcXHUyMDBEXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEN0YtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJERTAtXFx1MkRGRlxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMkZcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDk5XFx1MzA5QVxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRFxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZDQ1xcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYyQlxcdUE2NDAtXFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2N0YtXFx1QTY5RFxcdUE2OUYtXFx1QTZGMVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTc4RVxcdUE3OTAtXFx1QTdBRFxcdUE3QjBcXHVBN0IxXFx1QTdGNy1cXHVBODI3XFx1QTg0MC1cXHVBODczXFx1QTg4MC1cXHVBOEM0XFx1QThEMC1cXHVBOEQ5XFx1QThFMC1cXHVBOEY3XFx1QThGQlxcdUE5MDAtXFx1QTkyRFxcdUE5MzAtXFx1QTk1M1xcdUE5NjAtXFx1QTk3Q1xcdUE5ODAtXFx1QTlDMFxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlGRVxcdUFBMDAtXFx1QUEzNlxcdUFBNDAtXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0EtXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFRlxcdUFBRjItXFx1QUFGNlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI1RlxcdUFCNjRcXHVBQjY1XFx1QUJDMC1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVBQkYwLVxcdUFCRjlcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFELVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFMDAtXFx1RkUwRlxcdUZFMjAtXFx1RkUyRFxcdUZFMzNcXHVGRTM0XFx1RkU0RC1cXHVGRTRGXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYxMC1cXHVGRjE5XFx1RkYyMS1cXHVGRjNBXFx1RkYzRlxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ10nKVxuICAgIH07XG5cbiAgICAvLyBFbnN1cmUgdGhlIGNvbmRpdGlvbiBpcyB0cnVlLCBvdGhlcndpc2UgdGhyb3cgYW4gZXJyb3IuXG4gICAgLy8gVGhpcyBpcyBvbmx5IHRvIGhhdmUgYSBiZXR0ZXIgY29udHJhY3Qgc2VtYW50aWMsIGkuZS4gYW5vdGhlciBzYWZldHkgbmV0XG4gICAgLy8gdG8gY2F0Y2ggYSBsb2dpYyBlcnJvci4gVGhlIGNvbmRpdGlvbiBzaGFsbCBiZSBmdWxmaWxsZWQgaW4gbm9ybWFsIGNhc2UuXG4gICAgLy8gRG8gTk9UIHVzZSB0aGlzIHRvIGVuZm9yY2UgYSBjZXJ0YWluIGNvbmRpdGlvbiBvbiBhbnkgdXNlciBpbnB1dC5cblxuICAgIGZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FTU0VSVDogJyArIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEZWNpbWFsRGlnaXQoY2gpIHtcbiAgICAgICAgcmV0dXJuIChjaCA+PSAweDMwICYmIGNoIDw9IDB4MzkpOyAgIC8vIDAuLjlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0hleERpZ2l0KGNoKSB7XG4gICAgICAgIHJldHVybiAnMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRicuaW5kZXhPZihjaCkgPj0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09jdGFsRGlnaXQoY2gpIHtcbiAgICAgICAgcmV0dXJuICcwMTIzNDU2NycuaW5kZXhPZihjaCkgPj0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvY3RhbFRvRGVjaW1hbChjaCkge1xuICAgICAgICAvLyBcXDAgaXMgbm90IG9jdGFsIGVzY2FwZSBzZXF1ZW5jZVxuICAgICAgICB2YXIgb2N0YWwgPSAoY2ggIT09ICcwJyksIGNvZGUgPSAnMDEyMzQ1NjcnLmluZGV4T2YoY2gpO1xuXG4gICAgICAgIGlmIChpbmRleCA8IGxlbmd0aCAmJiBpc09jdGFsRGlnaXQoc291cmNlW2luZGV4XSkpIHtcbiAgICAgICAgICAgIG9jdGFsID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvZGUgPSBjb2RlICogOCArICcwMTIzNDU2NycuaW5kZXhPZihzb3VyY2VbaW5kZXgrK10pO1xuXG4gICAgICAgICAgICAvLyAzIGRpZ2l0cyBhcmUgb25seSBhbGxvd2VkIHdoZW4gc3RyaW5nIHN0YXJ0c1xuICAgICAgICAgICAgLy8gd2l0aCAwLCAxLCAyLCAzXG4gICAgICAgICAgICBpZiAoJzAxMjMnLmluZGV4T2YoY2gpID49IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBsZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgICAgaXNPY3RhbERpZ2l0KHNvdXJjZVtpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgY29kZSA9IGNvZGUgKiA4ICsgJzAxMjM0NTY3Jy5pbmRleE9mKHNvdXJjZVtpbmRleCsrXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZTogY29kZSxcbiAgICAgICAgICAgIG9jdGFsOiBvY3RhbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIDcuMiBXaGl0ZSBTcGFjZVxuXG4gICAgZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGNoKSB7XG4gICAgICAgIHJldHVybiAoY2ggPT09IDB4MjApIHx8IChjaCA9PT0gMHgwOSkgfHwgKGNoID09PSAweDBCKSB8fCAoY2ggPT09IDB4MEMpIHx8IChjaCA9PT0gMHhBMCkgfHxcbiAgICAgICAgICAgIChjaCA+PSAweDE2ODAgJiYgWzB4MTY4MCwgMHgxODBFLCAweDIwMDAsIDB4MjAwMSwgMHgyMDAyLCAweDIwMDMsIDB4MjAwNCwgMHgyMDA1LCAweDIwMDYsIDB4MjAwNywgMHgyMDA4LCAweDIwMDksIDB4MjAwQSwgMHgyMDJGLCAweDIwNUYsIDB4MzAwMCwgMHhGRUZGXS5pbmRleE9mKGNoKSA+PSAwKTtcbiAgICB9XG5cbiAgICAvLyA3LjMgTGluZSBUZXJtaW5hdG9yc1xuXG4gICAgZnVuY3Rpb24gaXNMaW5lVGVybWluYXRvcihjaCkge1xuICAgICAgICByZXR1cm4gKGNoID09PSAweDBBKSB8fCAoY2ggPT09IDB4MEQpIHx8IChjaCA9PT0gMHgyMDI4KSB8fCAoY2ggPT09IDB4MjAyOSk7XG4gICAgfVxuXG4gICAgLy8gNy42IElkZW50aWZpZXIgTmFtZXMgYW5kIElkZW50aWZpZXJzXG5cbiAgICBmdW5jdGlvbiBpc0lkZW50aWZpZXJTdGFydChjaCkge1xuICAgICAgICByZXR1cm4gKGNoID09PSAweDI0KSB8fCAoY2ggPT09IDB4NUYpIHx8ICAvLyAkIChkb2xsYXIpIGFuZCBfICh1bmRlcnNjb3JlKVxuICAgICAgICAgICAgKGNoID49IDB4NDEgJiYgY2ggPD0gMHg1QSkgfHwgICAgICAgICAvLyBBLi5aXG4gICAgICAgICAgICAoY2ggPj0gMHg2MSAmJiBjaCA8PSAweDdBKSB8fCAgICAgICAgIC8vIGEuLnpcbiAgICAgICAgICAgIChjaCA9PT0gMHg1QykgfHwgICAgICAgICAgICAgICAgICAgICAgLy8gXFwgKGJhY2tzbGFzaClcbiAgICAgICAgICAgICgoY2ggPj0gMHg4MCkgJiYgUmVnZXguTm9uQXNjaWlJZGVudGlmaWVyU3RhcnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGNoKSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSWRlbnRpZmllclBhcnQoY2gpIHtcbiAgICAgICAgcmV0dXJuIChjaCA9PT0gMHgyNCkgfHwgKGNoID09PSAweDVGKSB8fCAgLy8gJCAoZG9sbGFyKSBhbmQgXyAodW5kZXJzY29yZSlcbiAgICAgICAgICAgIChjaCA+PSAweDQxICYmIGNoIDw9IDB4NUEpIHx8ICAgICAgICAgLy8gQS4uWlxuICAgICAgICAgICAgKGNoID49IDB4NjEgJiYgY2ggPD0gMHg3QSkgfHwgICAgICAgICAvLyBhLi56XG4gICAgICAgICAgICAoY2ggPj0gMHgzMCAmJiBjaCA8PSAweDM5KSB8fCAgICAgICAgIC8vIDAuLjlcbiAgICAgICAgICAgIChjaCA9PT0gMHg1QykgfHwgICAgICAgICAgICAgICAgICAgICAgLy8gXFwgKGJhY2tzbGFzaClcbiAgICAgICAgICAgICgoY2ggPj0gMHg4MCkgJiYgUmVnZXguTm9uQXNjaWlJZGVudGlmaWVyUGFydC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpKSk7XG4gICAgfVxuXG4gICAgLy8gNy42LjEuMiBGdXR1cmUgUmVzZXJ2ZWQgV29yZHNcblxuICAgIGZ1bmN0aW9uIGlzRnV0dXJlUmVzZXJ2ZWRXb3JkKGlkKSB7XG4gICAgICAgIHN3aXRjaCAoaWQpIHtcbiAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgIGNhc2UgJ2V4cG9ydCc6XG4gICAgICAgIGNhc2UgJ2ltcG9ydCc6XG4gICAgICAgIGNhc2UgJ3N1cGVyJzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gMTEuNi4yLjIgRnV0dXJlIFJlc2VydmVkIFdvcmRzXG5cbiAgICBmdW5jdGlvbiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQoaWQpIHtcbiAgICAgICAgc3dpdGNoIChpZCkge1xuICAgICAgICBjYXNlICdpbXBsZW1lbnRzJzpcbiAgICAgICAgY2FzZSAnaW50ZXJmYWNlJzpcbiAgICAgICAgY2FzZSAncGFja2FnZSc6XG4gICAgICAgIGNhc2UgJ3ByaXZhdGUnOlxuICAgICAgICBjYXNlICdwcm90ZWN0ZWQnOlxuICAgICAgICBjYXNlICdwdWJsaWMnOlxuICAgICAgICBjYXNlICdzdGF0aWMnOlxuICAgICAgICBjYXNlICd5aWVsZCc6XG4gICAgICAgIGNhc2UgJ2xldCc6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzUmVzdHJpY3RlZFdvcmQoaWQpIHtcbiAgICAgICAgcmV0dXJuIGlkID09PSAnZXZhbCcgfHwgaWQgPT09ICdhcmd1bWVudHMnO1xuICAgIH1cblxuICAgIC8vIDcuNi4xLjEgS2V5d29yZHNcblxuICAgIGZ1bmN0aW9uIGlzS2V5d29yZChpZCkge1xuXG4gICAgICAgIC8vICdjb25zdCcgaXMgc3BlY2lhbGl6ZWQgYXMgS2V5d29yZCBpbiBWOC5cbiAgICAgICAgLy8gJ3lpZWxkJyBhbmQgJ2xldCcgYXJlIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU3BpZGVyTW9ua2V5IGFuZCBFUy5uZXh0LlxuICAgICAgICAvLyBTb21lIG90aGVycyBhcmUgZnJvbSBmdXR1cmUgcmVzZXJ2ZWQgd29yZHMuXG5cbiAgICAgICAgc3dpdGNoIChpZC5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ2lmJykgfHwgKGlkID09PSAnaW4nKSB8fCAoaWQgPT09ICdkbycpO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAndmFyJykgfHwgKGlkID09PSAnZm9yJykgfHwgKGlkID09PSAnbmV3JykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICd0cnknKSB8fCAoaWQgPT09ICdsZXQnKTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ3RoaXMnKSB8fCAoaWQgPT09ICdlbHNlJykgfHwgKGlkID09PSAnY2FzZScpIHx8XG4gICAgICAgICAgICAgICAgKGlkID09PSAndm9pZCcpIHx8IChpZCA9PT0gJ3dpdGgnKSB8fCAoaWQgPT09ICdlbnVtJyk7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHJldHVybiAoaWQgPT09ICd3aGlsZScpIHx8IChpZCA9PT0gJ2JyZWFrJykgfHwgKGlkID09PSAnY2F0Y2gnKSB8fFxuICAgICAgICAgICAgICAgIChpZCA9PT0gJ3Rocm93JykgfHwgKGlkID09PSAnY29uc3QnKSB8fCAoaWQgPT09ICd5aWVsZCcpIHx8XG4gICAgICAgICAgICAgICAgKGlkID09PSAnY2xhc3MnKSB8fCAoaWQgPT09ICdzdXBlcicpO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAncmV0dXJuJykgfHwgKGlkID09PSAndHlwZW9mJykgfHwgKGlkID09PSAnZGVsZXRlJykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICdzd2l0Y2gnKSB8fCAoaWQgPT09ICdleHBvcnQnKSB8fCAoaWQgPT09ICdpbXBvcnQnKTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ2RlZmF1bHQnKSB8fCAoaWQgPT09ICdmaW5hbGx5JykgfHwgKGlkID09PSAnZXh0ZW5kcycpO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnZnVuY3Rpb24nKSB8fCAoaWQgPT09ICdjb250aW51ZScpIHx8IChpZCA9PT0gJ2RlYnVnZ2VyJyk7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnaW5zdGFuY2VvZicpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gNy40IENvbW1lbnRzXG5cbiAgICBmdW5jdGlvbiBhZGRDb21tZW50KHR5cGUsIHZhbHVlLCBzdGFydCwgZW5kLCBsb2MpIHtcbiAgICAgICAgdmFyIGNvbW1lbnQ7XG5cbiAgICAgICAgYXNzZXJ0KHR5cGVvZiBzdGFydCA9PT0gJ251bWJlcicsICdDb21tZW50IG11c3QgaGF2ZSB2YWxpZCBwb3NpdGlvbicpO1xuXG4gICAgICAgIHN0YXRlLmxhc3RDb21tZW50U3RhcnQgPSBzdGFydDtcblxuICAgICAgICBjb21tZW50ID0ge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbW1lbnQucmFuZ2UgPSBbc3RhcnQsIGVuZF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgY29tbWVudC5sb2MgPSBsb2M7XG4gICAgICAgIH1cbiAgICAgICAgZXh0cmEuY29tbWVudHMucHVzaChjb21tZW50KTtcbiAgICAgICAgaWYgKGV4dHJhLmF0dGFjaENvbW1lbnQpIHtcbiAgICAgICAgICAgIGV4dHJhLmxlYWRpbmdDb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICAgICAgZXh0cmEudHJhaWxpbmdDb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tpcFNpbmdsZUxpbmVDb21tZW50KG9mZnNldCkge1xuICAgICAgICB2YXIgc3RhcnQsIGxvYywgY2gsIGNvbW1lbnQ7XG5cbiAgICAgICAgc3RhcnQgPSBpbmRleCAtIG9mZnNldDtcbiAgICAgICAgbG9jID0ge1xuICAgICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnQgLSBvZmZzZXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoKSkge1xuICAgICAgICAgICAgICAgIGhhc0xpbmVUZXJtaW5hdG9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9IHNvdXJjZS5zbGljZShzdGFydCArIG9mZnNldCwgaW5kZXggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgbG9jLmVuZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0IC0gMVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBhZGRDb21tZW50KCdMaW5lJywgY29tbWVudCwgc3RhcnQsIGluZGV4IC0gMSwgbG9jKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAxMyAmJiBzb3VyY2UuY2hhckNvZGVBdChpbmRleCkgPT09IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICBsaW5lU3RhcnQgPSBpbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgIGNvbW1lbnQgPSBzb3VyY2Uuc2xpY2Uoc3RhcnQgKyBvZmZzZXQsIGluZGV4KTtcbiAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYWRkQ29tbWVudCgnTGluZScsIGNvbW1lbnQsIHN0YXJ0LCBpbmRleCwgbG9jKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNraXBNdWx0aUxpbmVDb21tZW50KCkge1xuICAgICAgICB2YXIgc3RhcnQsIGxvYywgY2gsIGNvbW1lbnQ7XG5cbiAgICAgICAgaWYgKGV4dHJhLmNvbW1lbnRzKSB7XG4gICAgICAgICAgICBzdGFydCA9IGluZGV4IC0gMjtcbiAgICAgICAgICAgIGxvYyA9IHtcbiAgICAgICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0IC0gMlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2gpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAweDBEICYmIHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkgPT09IDB4MEEpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIGxpbmVTdGFydCA9IGluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgyQSkge1xuICAgICAgICAgICAgICAgIC8vIEJsb2NrIGNvbW1lbnQgZW5kcyB3aXRoICcqLycuXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkgPT09IDB4MkYpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhLmNvbW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gc291cmNlLnNsaWNlKHN0YXJ0ICsgMiwgaW5kZXggLSAyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ29tbWVudCgnQmxvY2snLCBjb21tZW50LCBzdGFydCwgaW5kZXgsIGxvYyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmFuIG9mZiB0aGUgZW5kIG9mIHRoZSBmaWxlIC0gdGhlIHdob2xlIHRoaW5nIGlzIGEgY29tbWVudFxuICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29tbWVudCA9IHNvdXJjZS5zbGljZShzdGFydCArIDIsIGluZGV4KTtcbiAgICAgICAgICAgIGFkZENvbW1lbnQoJ0Jsb2NrJywgY29tbWVudCwgc3RhcnQsIGluZGV4LCBsb2MpO1xuICAgICAgICB9XG4gICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tpcENvbW1lbnQoKSB7XG4gICAgICAgIHZhciBjaCwgc3RhcnQ7XG4gICAgICAgIGhhc0xpbmVUZXJtaW5hdG9yID0gZmFsc2U7XG5cbiAgICAgICAgc3RhcnQgPSAoaW5kZXggPT09IDApO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuXG4gICAgICAgICAgICBpZiAoaXNXaGl0ZVNwYWNlKGNoKSkge1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2gpKSB7XG4gICAgICAgICAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAweDBEICYmIHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSA9PT0gMHgwQSkge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgyRikgeyAvLyBVKzAwMkYgaXMgJy8nXG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gMHgyRikge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoMik7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAweDJBKSB7ICAvLyBVKzAwMkEgaXMgJyonXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHNraXBNdWx0aUxpbmVDb21tZW50KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCAmJiBjaCA9PT0gMHgyRCkgeyAvLyBVKzAwMkQgaXMgJy0nXG4gICAgICAgICAgICAgICAgLy8gVSswMDNFIGlzICc+J1xuICAgICAgICAgICAgICAgIGlmICgoc291cmNlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSA9PT0gMHgyRCkgJiYgKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMikgPT09IDB4M0UpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vICctLT4nIGlzIGEgc2luZ2xlLWxpbmUgY29tbWVudFxuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAzO1xuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoMyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgzQykgeyAvLyBVKzAwM0MgaXMgJzwnXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5zbGljZShpbmRleCArIDEsIGluZGV4ICsgNCkgPT09ICchLS0nKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7IC8vIGA8YFxuICAgICAgICAgICAgICAgICAgICArK2luZGV4OyAvLyBgIWBcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDsgLy8gYC1gXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7IC8vIGAtYFxuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoNCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5IZXhFc2NhcGUocHJlZml4KSB7XG4gICAgICAgIHZhciBpLCBsZW4sIGNoLCBjb2RlID0gMDtcblxuICAgICAgICBsZW4gPSAocHJlZml4ID09PSAndScpID8gNCA6IDI7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmIGlzSGV4RGlnaXQoc291cmNlW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICBjb2RlID0gY29kZSAqIDE2ICsgJzAxMjM0NTY3ODlhYmNkZWYnLmluZGV4T2YoY2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpIHtcbiAgICAgICAgdmFyIGNoLCBjb2RlLCBjdTEsIGN1MjtcblxuICAgICAgICBjaCA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgIGNvZGUgPSAwO1xuXG4gICAgICAgIC8vIEF0IGxlYXN0LCBvbmUgaGV4IGRpZ2l0IGlzIHJlcXVpcmVkLlxuICAgICAgICBpZiAoY2ggPT09ICd9Jykge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICBpZiAoIWlzSGV4RGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2RlID0gY29kZSAqIDE2ICsgJzAxMjM0NTY3ODlhYmNkZWYnLmluZGV4T2YoY2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29kZSA+IDB4MTBGRkZGIHx8IGNoICE9PSAnfScpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVVEYtMTYgRW5jb2RpbmdcbiAgICAgICAgaWYgKGNvZGUgPD0gMHhGRkZGKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBjdTEgPSAoKGNvZGUgLSAweDEwMDAwKSA+PiAxMCkgKyAweEQ4MDA7XG4gICAgICAgIGN1MiA9ICgoY29kZSAtIDB4MTAwMDApICYgMTAyMykgKyAweERDMDA7XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGN1MSwgY3UyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRFc2NhcGVkSWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIGNoLCBpZDtcblxuICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KyspO1xuICAgICAgICBpZCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpO1xuXG4gICAgICAgIC8vICdcXHUnIChVKzAwNUMsIFUrMDA3NSkgZGVub3RlcyBhbiBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICAgICAgaWYgKGNoID09PSAweDVDKSB7XG4gICAgICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpICE9PSAweDc1KSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBjaCA9IHNjYW5IZXhFc2NhcGUoJ3UnKTtcbiAgICAgICAgICAgIGlmICghY2ggfHwgY2ggPT09ICdcXFxcJyB8fCAhaXNJZGVudGlmaWVyU3RhcnQoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQgPSBjaDtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoIWlzSWRlbnRpZmllclBhcnQoY2gpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgaWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjaCk7XG5cbiAgICAgICAgICAgIC8vICdcXHUnIChVKzAwNUMsIFUrMDA3NSkgZGVub3RlcyBhbiBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICAgICAgICAgIGlmIChjaCA9PT0gMHg1Qykge1xuICAgICAgICAgICAgICAgIGlkID0gaWQuc3Vic3RyKDAsIGlkLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkgIT09IDB4NzUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICBjaCA9IHNjYW5IZXhFc2NhcGUoJ3UnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNoIHx8IGNoID09PSAnXFxcXCcgfHwgIWlzSWRlbnRpZmllclBhcnQoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWQgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIHN0YXJ0LCBjaDtcblxuICAgICAgICBzdGFydCA9IGluZGV4Kys7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoY2ggPT09IDB4NUMpIHtcbiAgICAgICAgICAgICAgICAvLyBCbGFja3NsYXNoIChVKzAwNUMpIG1hcmtzIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlLlxuICAgICAgICAgICAgICAgIGluZGV4ID0gc3RhcnQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEVzY2FwZWRJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyUGFydChjaCkpIHtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzb3VyY2Uuc2xpY2Uoc3RhcnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuSWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIHN0YXJ0LCBpZCwgdHlwZTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuXG4gICAgICAgIC8vIEJhY2tzbGFzaCAoVSswMDVDKSBzdGFydHMgYW4gZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAgICAgIGlkID0gKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSA9PT0gMHg1QykgPyBnZXRFc2NhcGVkSWRlbnRpZmllcigpIDogZ2V0SWRlbnRpZmllcigpO1xuXG4gICAgICAgIC8vIFRoZXJlIGlzIG5vIGtleXdvcmQgb3IgbGl0ZXJhbCB3aXRoIG9ubHkgb25lIGNoYXJhY3Rlci5cbiAgICAgICAgLy8gVGh1cywgaXQgbXVzdCBiZSBhbiBpZGVudGlmaWVyLlxuICAgICAgICBpZiAoaWQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uSWRlbnRpZmllcjtcbiAgICAgICAgfSBlbHNlIGlmIChpc0tleXdvcmQoaWQpKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uS2V5d29yZDtcbiAgICAgICAgfSBlbHNlIGlmIChpZCA9PT0gJ251bGwnKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uTnVsbExpdGVyYWw7XG4gICAgICAgIH0gZWxzZSBpZiAoaWQgPT09ICd0cnVlJyB8fCBpZCA9PT0gJ2ZhbHNlJykge1xuICAgICAgICAgICAgdHlwZSA9IFRva2VuLkJvb2xlYW5MaXRlcmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHlwZSA9IFRva2VuLklkZW50aWZpZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiBpZCxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cblxuICAgIC8vIDcuNyBQdW5jdHVhdG9yc1xuXG4gICAgZnVuY3Rpb24gc2NhblB1bmN0dWF0b3IoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgc3RyO1xuXG4gICAgICAgIHRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uUHVuY3R1YXRvcixcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgbW9zdCBjb21tb24gc2luZ2xlLWNoYXJhY3RlciBwdW5jdHVhdG9ycy5cbiAgICAgICAgc3RyID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgc3dpdGNoIChzdHIpIHtcblxuICAgICAgICBjYXNlICcoJzpcbiAgICAgICAgICAgIGlmIChleHRyYS50b2tlbml6ZSkge1xuICAgICAgICAgICAgICAgIGV4dHJhLm9wZW5QYXJlblRva2VuID0gZXh0cmEudG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICd7JzpcbiAgICAgICAgICAgIGlmIChleHRyYS50b2tlbml6ZSkge1xuICAgICAgICAgICAgICAgIGV4dHJhLm9wZW5DdXJseVRva2VuID0gZXh0cmEudG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucHVzaCgneycpO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJy4nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAnLicgJiYgc291cmNlW2luZGV4ICsgMV0gPT09ICcuJykge1xuICAgICAgICAgICAgICAgIC8vIFNwcmVhZCBvcGVyYXRvcjogLi4uXG4gICAgICAgICAgICAgICAgaW5kZXggKz0gMjtcbiAgICAgICAgICAgICAgICBzdHIgPSAnLi4uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ30nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucG9wKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKSc6XG4gICAgICAgIGNhc2UgJzsnOlxuICAgICAgICBjYXNlICcsJzpcbiAgICAgICAgY2FzZSAnWyc6XG4gICAgICAgIGNhc2UgJ10nOlxuICAgICAgICBjYXNlICc6JzpcbiAgICAgICAgY2FzZSAnPyc6XG4gICAgICAgIGNhc2UgJ34nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyA0LWNoYXJhY3RlciBwdW5jdHVhdG9yLlxuICAgICAgICAgICAgc3RyID0gc291cmNlLnN1YnN0cihpbmRleCwgNCk7XG4gICAgICAgICAgICBpZiAoc3RyID09PSAnPj4+PScpIHtcbiAgICAgICAgICAgICAgICBpbmRleCArPSA0O1xuICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgIC8vIDMtY2hhcmFjdGVyIHB1bmN0dWF0b3JzLlxuICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMyk7XG4gICAgICAgICAgICAgICAgaWYgKHN0ciA9PT0gJz09PScgfHwgc3RyID09PSAnIT09JyB8fCBzdHIgPT09ICc+Pj4nIHx8XG4gICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJzw8PScgfHwgc3RyID09PSAnPj49Jykge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gMi1jaGFyYWN0ZXIgcHVuY3R1YXRvcnMuXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdHIgPT09ICcmJicgfHwgc3RyID09PSAnfHwnIHx8IHN0ciA9PT0gJz09JyB8fCBzdHIgPT09ICchPScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJys9JyB8fCBzdHIgPT09ICctPScgfHwgc3RyID09PSAnKj0nIHx8IHN0ciA9PT0gJy89JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID09PSAnKysnIHx8IHN0ciA9PT0gJy0tJyB8fCBzdHIgPT09ICc8PCcgfHwgc3RyID09PSAnPj4nIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPT09ICcmPScgfHwgc3RyID09PSAnfD0nIHx8IHN0ciA9PT0gJ149JyB8fCBzdHIgPT09ICclPScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJzw9JyB8fCBzdHIgPT09ICc+PScgfHwgc3RyID09PSAnPT4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAxLWNoYXJhY3RlciBwdW5jdHVhdG9ycy5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJzw+PSErLSolJnxeLycuaW5kZXhPZihzdHIpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSB0b2tlbi5zdGFydCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRva2VuLmVuZCA9IGluZGV4O1xuICAgICAgICB0b2tlbi52YWx1ZSA9IHN0cjtcbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIC8vIDcuOC4zIE51bWVyaWMgTGl0ZXJhbHNcblxuICAgIGZ1bmN0aW9uIHNjYW5IZXhMaXRlcmFsKHN0YXJ0KSB7XG4gICAgICAgIHZhciBudW1iZXIgPSAnJztcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICghaXNIZXhEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1iZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQoJzB4JyArIG51bWJlciwgMTYpLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5CaW5hcnlMaXRlcmFsKHN0YXJ0KSB7XG4gICAgICAgIHZhciBjaCwgbnVtYmVyO1xuXG4gICAgICAgIG51bWJlciA9ICcnO1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoICE9PSAnMCcgJiYgY2ggIT09ICcxJykge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1iZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBvbmx5IDBiIG9yIDBCXG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoY2gpIHx8IGlzRGVjaW1hbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQobnVtYmVyLCAyKSxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuT2N0YWxMaXRlcmFsKHByZWZpeCwgc3RhcnQpIHtcbiAgICAgICAgdmFyIG51bWJlciwgb2N0YWw7XG5cbiAgICAgICAgaWYgKGlzT2N0YWxEaWdpdChwcmVmaXgpKSB7XG4gICAgICAgICAgICBvY3RhbCA9IHRydWU7XG4gICAgICAgICAgICBudW1iZXIgPSAnMCcgKyBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvY3RhbCA9IGZhbHNlO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIG51bWJlciA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoIWlzT2N0YWxEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb2N0YWwgJiYgbnVtYmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gb25seSAwbyBvciAwT1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpIHx8IGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQobnVtYmVyLCA4KSxcbiAgICAgICAgICAgIG9jdGFsOiBvY3RhbCxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0ltcGxpY2l0T2N0YWxMaXRlcmFsKCkge1xuICAgICAgICB2YXIgaSwgY2g7XG5cbiAgICAgICAgLy8gSW1wbGljaXQgb2N0YWwsIHVubGVzcyB0aGVyZSBpcyBhIG5vbi1vY3RhbCBkaWdpdC5cbiAgICAgICAgLy8gKEFubmV4IEIuMS4xIG9uIE51bWVyaWMgTGl0ZXJhbHMpXG4gICAgICAgIGZvciAoaSA9IGluZGV4ICsgMTsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpXTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJzgnIHx8IGNoID09PSAnOScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzT2N0YWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5OdW1lcmljTGl0ZXJhbCgpIHtcbiAgICAgICAgdmFyIG51bWJlciwgc3RhcnQsIGNoO1xuXG4gICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgYXNzZXJ0KGlzRGVjaW1hbERpZ2l0KGNoLmNoYXJDb2RlQXQoMCkpIHx8IChjaCA9PT0gJy4nKSxcbiAgICAgICAgICAgICdOdW1lcmljIGxpdGVyYWwgbXVzdCBzdGFydCB3aXRoIGEgZGVjaW1hbCBkaWdpdCBvciBhIGRlY2ltYWwgcG9pbnQnKTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuICAgICAgICBudW1iZXIgPSAnJztcbiAgICAgICAgaWYgKGNoICE9PSAnLicpIHtcbiAgICAgICAgICAgIG51bWJlciA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcblxuICAgICAgICAgICAgLy8gSGV4IG51bWJlciBzdGFydHMgd2l0aCAnMHgnLlxuICAgICAgICAgICAgLy8gT2N0YWwgbnVtYmVyIHN0YXJ0cyB3aXRoICcwJy5cbiAgICAgICAgICAgIC8vIE9jdGFsIG51bWJlciBpbiBFUzYgc3RhcnRzIHdpdGggJzBvJy5cbiAgICAgICAgICAgIC8vIEJpbmFyeSBudW1iZXIgaW4gRVM2IHN0YXJ0cyB3aXRoICcwYicuXG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAnMCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICd4JyB8fCBjaCA9PT0gJ1gnKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuSGV4TGl0ZXJhbChzdGFydCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ2InIHx8IGNoID09PSAnQicpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5CaW5hcnlMaXRlcmFsKHN0YXJ0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnbycgfHwgY2ggPT09ICdPJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2Nhbk9jdGFsTGl0ZXJhbChjaCwgc3RhcnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc09jdGFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0ltcGxpY2l0T2N0YWxMaXRlcmFsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuT2N0YWxMaXRlcmFsKGNoLCBzdGFydCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaCA9PT0gJy4nKSB7XG4gICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgd2hpbGUgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoID09PSAnZScgfHwgY2ggPT09ICdFJykge1xuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcblxuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnKycgfHwgY2ggPT09ICctJykge1xuICAgICAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNEZWNpbWFsRGlnaXQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgICAgICAgIHdoaWxlIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VGbG9hdChudW1iZXIpLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIDcuOC40IFN0cmluZyBMaXRlcmFsc1xuXG4gICAgZnVuY3Rpb24gc2NhblN0cmluZ0xpdGVyYWwoKSB7XG4gICAgICAgIHZhciBzdHIgPSAnJywgcXVvdGUsIHN0YXJ0LCBjaCwgdW5lc2NhcGVkLCBvY3RUb0RlYywgb2N0YWwgPSBmYWxzZTtcblxuICAgICAgICBxdW90ZSA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgIGFzc2VydCgocXVvdGUgPT09ICdcXCcnIHx8IHF1b3RlID09PSAnXCInKSxcbiAgICAgICAgICAgICdTdHJpbmcgbGl0ZXJhbCBtdXN0IHN0YXJ0cyB3aXRoIGEgcXVvdGUnKTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuICAgICAgICArK2luZGV4O1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG5cbiAgICAgICAgICAgIGlmIChjaCA9PT0gcXVvdGUpIHtcbiAgICAgICAgICAgICAgICBxdW90ZSA9ICcnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gJ1xcXFwnKSB7XG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICAgICAgaWYgKCFjaCB8fCAhaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmVzY2FwZWQgPSBzY2FuSGV4RXNjYXBlKGNoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVuZXNjYXBlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gdW5lc2NhcGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXGInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXGYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHgwQic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnOCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJzknOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcblxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT2N0YWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RUb0RlYyA9IG9jdGFsVG9EZWNpbWFsKGNoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGFsID0gb2N0VG9EZWMub2N0YWwgfHwgb2N0YWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUob2N0VG9EZWMuY29kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBjaDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXHInICYmIHNvdXJjZVtpbmRleF0gPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxpbmVTdGFydCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHIgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocXVvdGUgIT09ICcnKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuLlN0cmluZ0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogc3RyLFxuICAgICAgICAgICAgb2N0YWw6IG9jdGFsLFxuICAgICAgICAgICAgbGluZU51bWJlcjogc3RhcnRMaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBzdGFydExpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuVGVtcGxhdGUoKSB7XG4gICAgICAgIHZhciBjb29rZWQgPSAnJywgY2gsIHN0YXJ0LCByYXdPZmZzZXQsIHRlcm1pbmF0ZWQsIGhlYWQsIHRhaWwsIHJlc3RvcmUsIHVuZXNjYXBlZDtcblxuICAgICAgICB0ZXJtaW5hdGVkID0gZmFsc2U7XG4gICAgICAgIHRhaWwgPSBmYWxzZTtcbiAgICAgICAgc3RhcnQgPSBpbmRleDtcbiAgICAgICAgaGVhZCA9IChzb3VyY2VbaW5kZXhdID09PSAnYCcpO1xuICAgICAgICByYXdPZmZzZXQgPSAyO1xuXG4gICAgICAgICsraW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJ2AnKSB7XG4gICAgICAgICAgICAgICAgcmF3T2Zmc2V0ID0gMTtcbiAgICAgICAgICAgICAgICB0YWlsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0ZXJtaW5hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09ICckJykge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuY3VybHlTdGFjay5wdXNoKCckeycpO1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvb2tlZCArPSBjaDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgICAgIGlmICghaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXHInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5lc2NhcGVkID0gc2NhbkhleEVzY2FwZShjaCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuZXNjYXBlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gdW5lc2NhcGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gcmVzdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdiJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFxiJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFxmJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd2JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFx2JztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICcwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElsbGVnYWw6IFxcMDEgXFwwMiBhbmQgc28gb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5UZW1wbGF0ZU9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFwwJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNPY3RhbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElsbGVnYWw6IFxcMSBcXDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlRlbXBsYXRlT2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2luZGV4XSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2luZGV4XSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgY29va2VkICs9ICdcXG4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb29rZWQgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRlcm1pbmF0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhlYWQpIHtcbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uVGVtcGxhdGUsXG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGNvb2tlZDogY29va2VkLFxuICAgICAgICAgICAgICAgIHJhdzogc291cmNlLnNsaWNlKHN0YXJ0ICsgMSwgaW5kZXggLSByYXdPZmZzZXQpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVhZDogaGVhZCxcbiAgICAgICAgICAgIHRhaWw6IHRhaWwsXG4gICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBmbGFncykge1xuICAgICAgICB2YXIgdG1wID0gcGF0dGVybjtcblxuICAgICAgICBpZiAoZmxhZ3MuaW5kZXhPZigndScpID49IDApIHtcbiAgICAgICAgICAgIC8vIFJlcGxhY2UgZWFjaCBhc3RyYWwgc3ltYm9sIGFuZCBldmVyeSBVbmljb2RlIGVzY2FwZSBzZXF1ZW5jZVxuICAgICAgICAgICAgLy8gdGhhdCBwb3NzaWJseSByZXByZXNlbnRzIGFuIGFzdHJhbCBzeW1ib2wgb3IgYSBwYWlyZWQgc3Vycm9nYXRlXG4gICAgICAgICAgICAvLyB3aXRoIGEgc2luZ2xlIEFTQ0lJIHN5bWJvbCB0byBhdm9pZCB0aHJvd2luZyBvbiByZWd1bGFyXG4gICAgICAgICAgICAvLyBleHByZXNzaW9ucyB0aGF0IGFyZSBvbmx5IHZhbGlkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGAvdWBcbiAgICAgICAgICAgIC8vIGZsYWcuXG4gICAgICAgICAgICAvLyBOb3RlOiByZXBsYWNpbmcgd2l0aCB0aGUgQVNDSUkgc3ltYm9sIGB4YCBtaWdodCBjYXVzZSBmYWxzZVxuICAgICAgICAgICAgLy8gbmVnYXRpdmVzIGluIHVubGlrZWx5IHNjZW5hcmlvcy4gRm9yIGV4YW1wbGUsIGBbXFx1ezYxfS1iXWAgaXMgYVxuICAgICAgICAgICAgLy8gcGVyZmVjdGx5IHZhbGlkIHBhdHRlcm4gdGhhdCBpcyBlcXVpdmFsZW50IHRvIGBbYS1iXWAsIGJ1dCBpdFxuICAgICAgICAgICAgLy8gd291bGQgYmUgcmVwbGFjZWQgYnkgYFt4LWJdYCB3aGljaCB0aHJvd3MgYW4gZXJyb3IuXG4gICAgICAgICAgICB0bXAgPSB0bXBcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXHVcXHsoWzAtOWEtZkEtRl0rKVxcfS9nLCBmdW5jdGlvbiAoJDAsICQxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUludCgkMSwgMTYpIDw9IDB4MTBGRkZGKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3gnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLkludmFsaWRSZWdFeHApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgIC9cXFxcdShbYS1mQS1GMC05XXs0fSl8W1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nLFxuICAgICAgICAgICAgICAgICAgICAneCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlyc3QsIGRldGVjdCBpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbnMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBSZWdFeHAodG1wKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuSW52YWxpZFJlZ0V4cCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IGZvciB0aGlzIHBhdHRlcm4tZmxhZyBwYWlyLCBvclxuICAgICAgICAvLyBgbnVsbGAgaW4gY2FzZSB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBkb2Vzbid0IHN1cHBvcnQgdGhlIGZsYWdzIGl0XG4gICAgICAgIC8vIHVzZXMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuUmVnRXhwQm9keSgpIHtcbiAgICAgICAgdmFyIGNoLCBzdHIsIGNsYXNzTWFya2VyLCB0ZXJtaW5hdGVkLCBib2R5O1xuXG4gICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgYXNzZXJ0KGNoID09PSAnLycsICdSZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCBtdXN0IHN0YXJ0IHdpdGggYSBzbGFzaCcpO1xuICAgICAgICBzdHIgPSBzb3VyY2VbaW5kZXgrK107XG5cbiAgICAgICAgY2xhc3NNYXJrZXIgPSBmYWxzZTtcbiAgICAgICAgdGVybWluYXRlZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICAvLyBFQ01BLTI2MiA3LjguNVxuICAgICAgICAgICAgICAgIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLlVudGVybWluYXRlZFJlZ0V4cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0ciArPSBjaDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLlVudGVybWluYXRlZFJlZ0V4cCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNsYXNzTWFya2VyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnXScpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NNYXJrZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJy8nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAnWycpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NNYXJrZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGVybWluYXRlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuVW50ZXJtaW5hdGVkUmVnRXhwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4Y2x1ZGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc2xhc2guXG4gICAgICAgIGJvZHkgPSBzdHIuc3Vic3RyKDEsIHN0ci5sZW5ndGggLSAyKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBib2R5LFxuICAgICAgICAgICAgbGl0ZXJhbDogc3RyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2NhblJlZ0V4cEZsYWdzKCkge1xuICAgICAgICB2YXIgY2gsIHN0ciwgZmxhZ3MsIHJlc3RvcmU7XG5cbiAgICAgICAgc3RyID0gJyc7XG4gICAgICAgIGZsYWdzID0gJyc7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKCFpc0lkZW50aWZpZXJQYXJ0KGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBpZiAoY2ggPT09ICdcXFxcJyAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICd1Jykge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICByZXN0b3JlID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGNoID0gc2NhbkhleEVzY2FwZSgndScpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzdHIgKz0gJ1xcXFx1JzsgcmVzdG9yZSA8IGluZGV4OyArK3Jlc3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gc291cmNlW3Jlc3RvcmVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSByZXN0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgKz0gJ3UnO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcdSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFwnO1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZmxhZ3MgKz0gY2g7XG4gICAgICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBmbGFncyxcbiAgICAgICAgICAgIGxpdGVyYWw6IHN0clxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5SZWdFeHAoKSB7XG4gICAgICAgIHNjYW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgdmFyIHN0YXJ0LCBib2R5LCBmbGFncywgdmFsdWU7XG5cbiAgICAgICAgbG9va2FoZWFkID0gbnVsbDtcbiAgICAgICAgc2tpcENvbW1lbnQoKTtcbiAgICAgICAgc3RhcnQgPSBpbmRleDtcblxuICAgICAgICBib2R5ID0gc2NhblJlZ0V4cEJvZHkoKTtcbiAgICAgICAgZmxhZ3MgPSBzY2FuUmVnRXhwRmxhZ3MoKTtcbiAgICAgICAgdmFsdWUgPSB0ZXN0UmVnRXhwKGJvZHkudmFsdWUsIGZsYWdzLnZhbHVlKTtcbiAgICAgICAgc2Nhbm5pbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKGV4dHJhLnRva2VuaXplKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuLlJlZ3VsYXJFeHByZXNzaW9uLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICByZWdleDoge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBib2R5LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogZmxhZ3MudmFsdWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGl0ZXJhbDogYm9keS5saXRlcmFsICsgZmxhZ3MubGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHJlZ2V4OiB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjogYm9keS52YWx1ZSxcbiAgICAgICAgICAgICAgICBmbGFnczogZmxhZ3MudmFsdWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29sbGVjdFJlZ2V4KCkge1xuICAgICAgICB2YXIgcG9zLCBsb2MsIHJlZ2V4LCB0b2tlbjtcblxuICAgICAgICBza2lwQ29tbWVudCgpO1xuXG4gICAgICAgIHBvcyA9IGluZGV4O1xuICAgICAgICBsb2MgPSB7XG4gICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJlZ2V4ID0gc2NhblJlZ0V4cCgpO1xuXG4gICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICB9O1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGlmICghZXh0cmEudG9rZW5pemUpIHtcbiAgICAgICAgICAgIC8vIFBvcCB0aGUgcHJldmlvdXMgdG9rZW4sIHdoaWNoIGlzIGxpa2VseSAnLycgb3IgJy89J1xuICAgICAgICAgICAgaWYgKGV4dHJhLnRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi5yYW5nZVswXSA9PT0gcG9zICYmIHRva2VuLnR5cGUgPT09ICdQdW5jdHVhdG9yJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4udmFsdWUgPT09ICcvJyB8fCB0b2tlbi52YWx1ZSA9PT0gJy89Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHRyYS50b2tlbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ1JlZ3VsYXJFeHByZXNzaW9uJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVnZXgubGl0ZXJhbCxcbiAgICAgICAgICAgICAgICByZWdleDogcmVnZXgucmVnZXgsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFtwb3MsIGluZGV4XSxcbiAgICAgICAgICAgICAgICBsb2M6IGxvY1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVnZXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNJZGVudGlmaWVyTmFtZSh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllciB8fFxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW4uS2V5d29yZCB8fFxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW4uQm9vbGVhbkxpdGVyYWwgfHxcbiAgICAgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuLk51bGxMaXRlcmFsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkdmFuY2VTbGFzaCgpIHtcbiAgICAgICAgdmFyIHByZXZUb2tlbixcbiAgICAgICAgICAgIGNoZWNrVG9rZW47XG4gICAgICAgIC8vIFVzaW5nIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zd2VldC5qcy93aWtpL2Rlc2lnblxuICAgICAgICBwcmV2VG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoIXByZXZUb2tlbikge1xuICAgICAgICAgICAgLy8gTm90aGluZyBiZWZvcmUgdGhhdDogaXQgY2Fubm90IGJlIGEgZGl2aXNpb24uXG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZUb2tlbi50eXBlID09PSAnUHVuY3R1YXRvcicpIHtcbiAgICAgICAgICAgIGlmIChwcmV2VG9rZW4udmFsdWUgPT09ICddJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByZXZUb2tlbi52YWx1ZSA9PT0gJyknKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuUGFyZW5Ub2tlbiAtIDFdO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja1Rva2VuICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnR5cGUgPT09ICdLZXl3b3JkJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrVG9rZW4udmFsdWUgPT09ICdpZicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnZhbHVlID09PSAnd2hpbGUnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUb2tlbi52YWx1ZSA9PT0gJ2ZvcicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnZhbHVlID09PSAnd2l0aCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJldlRva2VuLnZhbHVlID09PSAnfScpIHtcbiAgICAgICAgICAgICAgICAvLyBEaXZpZGluZyBhIGZ1bmN0aW9uIGJ5IGFueXRoaW5nIG1ha2VzIGxpdHRsZSBzZW5zZSxcbiAgICAgICAgICAgICAgICAvLyBidXQgd2UgaGF2ZSB0byBjaGVjayBmb3IgdGhhdC5cbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gM10gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDNdLnR5cGUgPT09ICdLZXl3b3JkJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbm9ueW1vdXMgZnVuY3Rpb24uXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrVG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEub3BlbkN1cmx5VG9rZW4gLSA0XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NhblB1bmN0dWF0b3IoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gNF0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDRdLnR5cGUgPT09ICdLZXl3b3JkJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBOYW1lZCBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgY2hlY2tUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoZWNrVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjaGVja1Rva2VuIGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gaXNcbiAgICAgICAgICAgICAgICAvLyBhIGRlY2xhcmF0aW9uIG9yIGFuIGV4cHJlc3Npb24uXG4gICAgICAgICAgICAgICAgaWYgKEZuRXhwclRva2Vucy5pbmRleE9mKGNoZWNrVG9rZW4udmFsdWUpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSXQgaXMgYW4gZXhwcmVzc2lvbi5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEl0IGlzIGEgZGVjbGFyYXRpb24uXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2VG9rZW4udHlwZSA9PT0gJ0tleXdvcmQnICYmIHByZXZUb2tlbi52YWx1ZSAhPT0gJ3RoaXMnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWR2YW5jZSgpIHtcbiAgICAgICAgdmFyIGNoLCB0b2tlbjtcblxuICAgICAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuLkVPRixcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KGNoKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBzY2FuSWRlbnRpZmllcigpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9IFRva2VuLktleXdvcmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJ5IGNvbW1vbjogKCBhbmQgKSBhbmQgO1xuICAgICAgICBpZiAoY2ggPT09IDB4MjggfHwgY2ggPT09IDB4MjkgfHwgY2ggPT09IDB4M0IpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RyaW5nIGxpdGVyYWwgc3RhcnRzIHdpdGggc2luZ2xlIHF1b3RlIChVKzAwMjcpIG9yIGRvdWJsZSBxdW90ZSAoVSswMDIyKS5cbiAgICAgICAgaWYgKGNoID09PSAweDI3IHx8IGNoID09PSAweDIyKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhblN0cmluZ0xpdGVyYWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvdCAoLikgVSswMDJFIGNhbiBhbHNvIHN0YXJ0IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLCBoZW5jZSB0aGUgbmVlZFxuICAgICAgICAvLyB0byBjaGVjayB0aGUgbmV4dCBjaGFyYWN0ZXIuXG4gICAgICAgIGlmIChjaCA9PT0gMHgyRSkge1xuICAgICAgICAgICAgaWYgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5OdW1lcmljTGl0ZXJhbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZWNpbWFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICByZXR1cm4gc2Nhbk51bWVyaWNMaXRlcmFsKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTbGFzaCAoLykgVSswMDJGIGNhbiBhbHNvIHN0YXJ0IGEgcmVnZXguXG4gICAgICAgIGlmIChleHRyYS50b2tlbml6ZSAmJiBjaCA9PT0gMHgyRikge1xuICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VTbGFzaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGl0ZXJhbHMgc3RhcnQgd2l0aCBgIChVKzAwNjApIGZvciB0ZW1wbGF0ZSBoZWFkXG4gICAgICAgIC8vIG9yIH0gKFUrMDA3RCkgZm9yIHRlbXBsYXRlIG1pZGRsZSBvciB0ZW1wbGF0ZSB0YWlsLlxuICAgICAgICBpZiAoY2ggPT09IDB4NjAgfHwgKGNoID09PSAweDdEICYmIHN0YXRlLmN1cmx5U3RhY2tbc3RhdGUuY3VybHlTdGFjay5sZW5ndGggLSAxXSA9PT0gJyR7JykpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuVGVtcGxhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbGxlY3RUb2tlbigpIHtcbiAgICAgICAgdmFyIGxvYywgdG9rZW4sIHZhbHVlLCBlbnRyeTtcblxuICAgICAgICBsb2MgPSB7XG4gICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRva2VuID0gYWR2YW5jZSgpO1xuICAgICAgICBsb2MuZW5kID0ge1xuICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnRcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uRU9GKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgICAgICAgICAgIGVudHJ5ID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuTmFtZVt0b2tlbi50eXBlXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFt0b2tlbi5zdGFydCwgdG9rZW4uZW5kXSxcbiAgICAgICAgICAgICAgICBsb2M6IGxvY1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5yZWdleCkge1xuICAgICAgICAgICAgICAgIGVudHJ5LnJlZ2V4ID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiB0b2tlbi5yZWdleC5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogdG9rZW4ucmVnZXguZmxhZ3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXh0cmEudG9rZW5zLnB1c2goZW50cnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICBzY2FubmluZyA9IHRydWU7XG5cbiAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgbGFzdExpbmVTdGFydCA9IGxpbmVTdGFydDtcblxuICAgICAgICBza2lwQ29tbWVudCgpO1xuXG4gICAgICAgIHRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG5cbiAgICAgICAgbG9va2FoZWFkID0gKHR5cGVvZiBleHRyYS50b2tlbnMgIT09ICd1bmRlZmluZWQnKSA/IGNvbGxlY3RUb2tlbigpIDogYWR2YW5jZSgpO1xuICAgICAgICBzY2FubmluZyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGVlaygpIHtcbiAgICAgICAgc2Nhbm5pbmcgPSB0cnVlO1xuXG4gICAgICAgIHNraXBDb21tZW50KCk7XG5cbiAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgbGFzdExpbmVTdGFydCA9IGxpbmVTdGFydDtcblxuICAgICAgICBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHN0YXJ0TGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG4gICAgICAgIHN0YXJ0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuXG4gICAgICAgIGxvb2thaGVhZCA9ICh0eXBlb2YgZXh0cmEudG9rZW5zICE9PSAndW5kZWZpbmVkJykgPyBjb2xsZWN0VG9rZW4oKSA6IGFkdmFuY2UoKTtcbiAgICAgICAgc2Nhbm5pbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBQb3NpdGlvbigpIHtcbiAgICAgICAgdGhpcy5saW5lID0gc3RhcnRMaW5lTnVtYmVyO1xuICAgICAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0SW5kZXggLSBzdGFydExpbmVTdGFydDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBTb3VyY2VMb2NhdGlvbigpIHtcbiAgICAgICAgdGhpcy5zdGFydCA9IG5ldyBQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmVuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gV3JhcHBpbmdTb3VyY2VMb2NhdGlvbihzdGFydFRva2VuKSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSB7XG4gICAgICAgICAgICBsaW5lOiBzdGFydFRva2VuLmxpbmVOdW1iZXIsXG4gICAgICAgICAgICBjb2x1bW46IHN0YXJ0VG9rZW4uc3RhcnQgLSBzdGFydFRva2VuLmxpbmVTdGFydFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTm9kZSgpIHtcbiAgICAgICAgaWYgKGV4dHJhLnJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlID0gW3N0YXJ0SW5kZXgsIDBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHRyYS5sb2MpIHtcbiAgICAgICAgICAgIHRoaXMubG9jID0gbmV3IFNvdXJjZUxvY2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikge1xuICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucmFuZ2UgPSBbc3RhcnRUb2tlbi5zdGFydCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgdGhpcy5sb2MgPSBuZXcgV3JhcHBpbmdTb3VyY2VMb2NhdGlvbihzdGFydFRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFdyYXBwaW5nTm9kZS5wcm90b3R5cGUgPSBOb2RlLnByb3RvdHlwZSA9IHtcblxuICAgICAgICBwcm9jZXNzQ29tbWVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGxhc3RDaGlsZCxcbiAgICAgICAgICAgICAgICBsZWFkaW5nQ29tbWVudHMsXG4gICAgICAgICAgICAgICAgdHJhaWxpbmdDb21tZW50cyxcbiAgICAgICAgICAgICAgICBib3R0b21SaWdodCA9IGV4dHJhLmJvdHRvbVJpZ2h0U3RhY2ssXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgICAgICAgIGxhc3QgPSBib3R0b21SaWdodFtib3R0b21SaWdodC5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gU3ludGF4LlByb2dyYW0pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ib2R5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGV4dHJhLnRyYWlsaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRyYWlsaW5nQ29tbWVudHMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSBleHRyYS50cmFpbGluZ0NvbW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBleHRyYS50cmFpbGluZ0NvbW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5yYW5nZVswXSA+PSB0aGlzLnJhbmdlWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ0NvbW1lbnRzLnVuc2hpZnQoY29tbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChsYXN0ICYmIGxhc3QudHJhaWxpbmdDb21tZW50cyAmJiBsYXN0LnRyYWlsaW5nQ29tbWVudHNbMF0ucmFuZ2VbMF0gPj0gdGhpcy5yYW5nZVsxXSkge1xuICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ0NvbW1lbnRzID0gbGFzdC50cmFpbGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbGFzdC50cmFpbGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRWF0aW5nIHRoZSBzdGFjay5cbiAgICAgICAgICAgIGlmIChsYXN0KSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGxhc3QgJiYgbGFzdC5yYW5nZVswXSA+PSB0aGlzLnJhbmdlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RDaGlsZCA9IGxhc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgPSBib3R0b21SaWdodC5wb3AoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsYXN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICBpZiAobGFzdENoaWxkLmxlYWRpbmdDb21tZW50cyAmJiBsYXN0Q2hpbGQubGVhZGluZ0NvbW1lbnRzW2xhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHMubGVuZ3RoIC0gMV0ucmFuZ2VbMV0gPD0gdGhpcy5yYW5nZVswXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxlYWRpbmdDb21tZW50cyA9IGxhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHM7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChleHRyYS5sZWFkaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxlYWRpbmdDb21tZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IGV4dHJhLmxlYWRpbmdDb21tZW50cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gZXh0cmEubGVhZGluZ0NvbW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5yYW5nZVsxXSA8PSB0aGlzLnJhbmdlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nQ29tbWVudHMudW5zaGlmdChjb21tZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLmxlYWRpbmdDb21tZW50cy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgaWYgKGxlYWRpbmdDb21tZW50cyAmJiBsZWFkaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVhZGluZ0NvbW1lbnRzID0gbGVhZGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRyYWlsaW5nQ29tbWVudHMgJiYgdHJhaWxpbmdDb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpbGluZ0NvbW1lbnRzID0gdHJhaWxpbmdDb21tZW50cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm90dG9tUmlnaHQucHVzaCh0aGlzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2g6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChleHRyYS5yYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VbMV0gPSBsYXN0SW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXh0cmEubG9jKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2MuZW5kID0ge1xuICAgICAgICAgICAgICAgICAgICBsaW5lOiBsYXN0TGluZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBsYXN0SW5kZXggLSBsYXN0TGluZVN0YXJ0XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEuc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jLnNvdXJjZSA9IGV4dHJhLnNvdXJjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChleHRyYS5hdHRhY2hDb21tZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ29tbWVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycmF5RXhwcmVzc2lvbjogZnVuY3Rpb24gKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXJyYXlFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycmF5UGF0dGVybjogZnVuY3Rpb24gKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXJyYXlQYXR0ZXJuO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbiAocGFyYW1zLCBkZWZhdWx0cywgYm9keSwgZXhwcmVzc2lvbikge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkFycm93RnVuY3Rpb25FeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5pZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hBc3NpZ25tZW50RXhwcmVzc2lvbjogZnVuY3Rpb24gKG9wZXJhdG9yLCBsZWZ0LCByaWdodCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkFzc2lnbm1lbnRFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5sZWZ0ID0gbGVmdDtcbiAgICAgICAgICAgIHRoaXMucmlnaHQgPSByaWdodDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hBc3NpZ25tZW50UGF0dGVybjogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXNzaWdubWVudFBhdHRlcm47XG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgICAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEJpbmFyeUV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgbGVmdCwgcmlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IChvcGVyYXRvciA9PT0gJ3x8JyB8fCBvcGVyYXRvciA9PT0gJyYmJykgPyBTeW50YXguTG9naWNhbEV4cHJlc3Npb24gOiBTeW50YXguQmluYXJ5RXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMubGVmdCA9IGxlZnQ7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0ID0gcmlnaHQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQmxvY2tTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQmxvY2tTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEJyZWFrU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5CcmVha1N0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gKGNhbGxlZSwgYXJncykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNhbGxFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5jYWxsZWUgPSBjYWxsZWU7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50cyA9IGFyZ3M7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQ2F0Y2hDbGF1c2U6IGZ1bmN0aW9uIChwYXJhbSwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNhdGNoQ2xhdXNlO1xuICAgICAgICAgICAgdGhpcy5wYXJhbSA9IHBhcmFtO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDbGFzc0JvZHk6IGZ1bmN0aW9uIChib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQ2xhc3NCb2R5O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDbGFzc0RlY2xhcmF0aW9uOiBmdW5jdGlvbiAoaWQsIHN1cGVyQ2xhc3MsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5DbGFzc0RlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICAgICAgdGhpcy5zdXBlckNsYXNzID0gc3VwZXJDbGFzcztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQ2xhc3NFeHByZXNzaW9uOiBmdW5jdGlvbiAoaWQsIHN1cGVyQ2xhc3MsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5DbGFzc0V4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ2xhc3MgPSBzdXBlckNsYXNzO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDb25kaXRpb25hbEV4cHJlc3Npb246IGZ1bmN0aW9uICh0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Db25kaXRpb25hbEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5jb25zZXF1ZW50ID0gY29uc2VxdWVudDtcbiAgICAgICAgICAgIHRoaXMuYWx0ZXJuYXRlID0gYWx0ZXJuYXRlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaENvbnRpbnVlU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Db250aW51ZVN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hEZWJ1Z2dlclN0YXRlbWVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkRlYnVnZ2VyU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaERvV2hpbGVTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChib2R5LCB0ZXN0KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRG9XaGlsZVN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEVtcHR5U3RhdGVtZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRW1wdHlTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudDogZnVuY3Rpb24gKGV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHByZXNzaW9uU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hGb3JTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChpbml0LCB0ZXN0LCB1cGRhdGUsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Gb3JTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlID0gdXBkYXRlO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hGb3JJblN0YXRlbWVudDogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0LCBib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRm9ySW5TdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgICAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZWFjaCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEZ1bmN0aW9uRGVjbGFyYXRpb246IGZ1bmN0aW9uIChpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkZ1bmN0aW9uRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbiAoaWQsIHBhcmFtcywgZGVmYXVsdHMsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5GdW5jdGlvbkV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSWRlbnRpZmllcjogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JZGVudGlmaWVyO1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJZlN0YXRlbWVudDogZnVuY3Rpb24gKHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LklmU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMuY29uc2VxdWVudCA9IGNvbnNlcXVlbnQ7XG4gICAgICAgICAgICB0aGlzLmFsdGVybmF0ZSA9IGFsdGVybmF0ZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hMYWJlbGVkU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5MYWJlbGVkU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hMaXRlcmFsOiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5MaXRlcmFsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRva2VuLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5yYXcgPSBzb3VyY2Uuc2xpY2UodG9rZW4uc3RhcnQsIHRva2VuLmVuZCk7XG4gICAgICAgICAgICBpZiAodG9rZW4ucmVnZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4ID0gdG9rZW4ucmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoTWVtYmVyRXhwcmVzc2lvbjogZnVuY3Rpb24gKGFjY2Vzc29yLCBvYmplY3QsIHByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguTWVtYmVyRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWQgPSBhY2Nlc3NvciA9PT0gJ1snO1xuICAgICAgICAgICAgdGhpcy5vYmplY3QgPSBvYmplY3Q7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoTmV3RXhwcmVzc2lvbjogZnVuY3Rpb24gKGNhbGxlZSwgYXJncykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4Lk5ld0V4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmNhbGxlZSA9IGNhbGxlZTtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnRzID0gYXJncztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hPYmplY3RFeHByZXNzaW9uOiBmdW5jdGlvbiAocHJvcGVydGllcykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4Lk9iamVjdEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaE9iamVjdFBhdHRlcm46IGZ1bmN0aW9uIChwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguT2JqZWN0UGF0dGVybjtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoUG9zdGZpeEV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5VcGRhdGVFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5hcmd1bWVudCA9IGFyZ3VtZW50O1xuICAgICAgICAgICAgdGhpcy5wcmVmaXggPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hQcm9ncmFtOiBmdW5jdGlvbiAoYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlByb2dyYW07XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgaWYgKHNvdXJjZVR5cGUgPT09ICdtb2R1bGUnKSB7XG4gICAgICAgICAgICAgICAgLy8gdmVyeSByZXN0cmljdGl2ZSBmb3Igbm93XG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VUeXBlID0gc291cmNlVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hQcm9wZXJ0eTogZnVuY3Rpb24gKGtpbmQsIGtleSwgY29tcHV0ZWQsIHZhbHVlLCBtZXRob2QsIHNob3J0aGFuZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkID0gY29tcHV0ZWQ7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmtpbmQgPSBraW5kO1xuICAgICAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgICAgICAgICB0aGlzLnNob3J0aGFuZCA9IHNob3J0aGFuZDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hSZXN0RWxlbWVudDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguUmVzdEVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoUmV0dXJuU3RhdGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5SZXR1cm5TdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoU2VxdWVuY2VFeHByZXNzaW9uOiBmdW5jdGlvbiAoZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5TZXF1ZW5jZUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zID0gZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoU3ByZWFkRWxlbWVudDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguU3ByZWFkRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTd2l0Y2hDYXNlOiBmdW5jdGlvbiAodGVzdCwgY29uc2VxdWVudCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlN3aXRjaENhc2U7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5jb25zZXF1ZW50ID0gY29uc2VxdWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTdXBlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlN1cGVyO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFN3aXRjaFN0YXRlbWVudDogZnVuY3Rpb24gKGRpc2NyaW1pbmFudCwgY2FzZXMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Td2l0Y2hTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmRpc2NyaW1pbmFudCA9IGRpc2NyaW1pbmFudDtcbiAgICAgICAgICAgIHRoaXMuY2FzZXMgPSBjYXNlcztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246IGZ1bmN0aW9uICh0YWcsIHF1YXNpKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgICAgICB0aGlzLnF1YXNpID0gcXVhc2k7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVGVtcGxhdGVFbGVtZW50OiBmdW5jdGlvbiAodmFsdWUsIHRhaWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UZW1wbGF0ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnRhaWwgPSB0YWlsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRlbXBsYXRlTGl0ZXJhbDogZnVuY3Rpb24gKHF1YXNpcywgZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UZW1wbGF0ZUxpdGVyYWw7XG4gICAgICAgICAgICB0aGlzLnF1YXNpcyA9IHF1YXNpcztcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBleHByZXNzaW9ucztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUaGlzRXhwcmVzc2lvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlRoaXNFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRocm93U3RhdGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UaHJvd1N0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUcnlTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChibG9jaywgaGFuZGxlciwgZmluYWxpemVyKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVHJ5U3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5ibG9jayA9IGJsb2NrO1xuICAgICAgICAgICAgdGhpcy5ndWFyZGVkSGFuZGxlcnMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMgPSBoYW5kbGVyID8gWyBoYW5kbGVyIF0gOiBbXTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgICAgICB0aGlzLmZpbmFsaXplciA9IGZpbmFsaXplcjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hVbmFyeUV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IChvcGVyYXRvciA9PT0gJysrJyB8fCBvcGVyYXRvciA9PT0gJy0tJykgPyBTeW50YXguVXBkYXRlRXhwcmVzc2lvbiA6IFN5bnRheC5VbmFyeUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gb3BlcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnByZWZpeCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVmFyaWFibGVEZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlZhcmlhYmxlRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgICAgICAgICAgIHRoaXMua2luZCA9ICd2YXInO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaExleGljYWxEZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9ucywga2luZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlZhcmlhYmxlRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgICAgICAgICAgIHRoaXMua2luZCA9IGtpbmQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVmFyaWFibGVEZWNsYXJhdG9yOiBmdW5jdGlvbiAoaWQsIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5WYXJpYWJsZURlY2xhcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFdoaWxlU3RhdGVtZW50OiBmdW5jdGlvbiAodGVzdCwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LldoaWxlU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoV2l0aFN0YXRlbWVudDogZnVuY3Rpb24gKG9iamVjdCwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LldpdGhTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0U3BlY2lmaWVyOiBmdW5jdGlvbiAobG9jYWwsIGV4cG9ydGVkKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0U3BlY2lmaWVyO1xuICAgICAgICAgICAgdGhpcy5leHBvcnRlZCA9IGV4cG9ydGVkIHx8IGxvY2FsO1xuICAgICAgICAgICAgdGhpcy5sb2NhbCA9IGxvY2FsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEltcG9ydERlZmF1bHRTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkltcG9ydERlZmF1bHRTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyOiBmdW5jdGlvbiAobG9jYWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0TmFtZWREZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9uLCBzcGVjaWZpZXJzLCBzcmMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHBvcnROYW1lZERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5kZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5zcGVjaWZpZXJzID0gc3BlY2lmaWVycztcbiAgICAgICAgICAgIHRoaXMuc291cmNlID0gc3JjO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5kZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEV4cG9ydEFsbERlY2xhcmF0aW9uOiBmdW5jdGlvbiAoc3JjKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0QWxsRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNyYztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJbXBvcnRTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCwgaW1wb3J0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnRTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWwgfHwgaW1wb3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLmltcG9ydGVkID0gaW1wb3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIChzcGVjaWZpZXJzLCBzcmMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnREZWNsYXJhdGlvbjtcbiAgICAgICAgICAgIHRoaXMuc3BlY2lmaWVycyA9IHNwZWNpZmllcnM7XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNyYztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH07XG5cblxuICAgIGZ1bmN0aW9uIHJlY29yZEVycm9yKGVycm9yKSB7XG4gICAgICAgIHZhciBlLCBleGlzdGluZztcblxuICAgICAgICBmb3IgKGUgPSAwOyBlIDwgZXh0cmEuZXJyb3JzLmxlbmd0aDsgZSsrKSB7XG4gICAgICAgICAgICBleGlzdGluZyA9IGV4dHJhLmVycm9yc1tlXTtcbiAgICAgICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlZCBlcnJvci5cbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcuaW5kZXggPT09IGVycm9yLmluZGV4ICYmIGV4aXN0aW5nLm1lc3NhZ2UgPT09IGVycm9yLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRyYS5lcnJvcnMucHVzaChlcnJvcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRXJyb3IobGluZSwgcG9zLCBkZXNjcmlwdGlvbikge1xuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoJ0xpbmUgJyArIGxpbmUgKyAnOiAnICsgZGVzY3JpcHRpb24pO1xuICAgICAgICBlcnJvci5pbmRleCA9IHBvcztcbiAgICAgICAgZXJyb3IubGluZU51bWJlciA9IGxpbmU7XG4gICAgICAgIGVycm9yLmNvbHVtbiA9IHBvcyAtIChzY2FubmluZyA/IGxpbmVTdGFydCA6IGxhc3RMaW5lU3RhcnQpICsgMTtcbiAgICAgICAgZXJyb3IuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vIFRocm93IGFuIGV4Y2VwdGlvblxuXG4gICAgZnVuY3Rpb24gdGhyb3dFcnJvcihtZXNzYWdlRm9ybWF0KSB7XG4gICAgICAgIHZhciBhcmdzLCBtc2c7XG5cbiAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIG1zZyA9IG1lc3NhZ2VGb3JtYXQucmVwbGFjZSgvJShcXGQpL2csXG4gICAgICAgICAgICBmdW5jdGlvbiAod2hvbGUsIGlkeCkge1xuICAgICAgICAgICAgICAgIGFzc2VydChpZHggPCBhcmdzLmxlbmd0aCwgJ01lc3NhZ2UgcmVmZXJlbmNlIG11c3QgYmUgaW4gcmFuZ2UnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJnc1tpZHhdO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRocm93IGNyZWF0ZUVycm9yKGxhc3RMaW5lTnVtYmVyLCBsYXN0SW5kZXgsIG1zZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9sZXJhdGVFcnJvcihtZXNzYWdlRm9ybWF0KSB7XG4gICAgICAgIHZhciBhcmdzLCBtc2csIGVycm9yO1xuXG4gICAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBtc2cgPSBtZXNzYWdlRm9ybWF0LnJlcGxhY2UoLyUoXFxkKS9nLFxuICAgICAgICAgICAgZnVuY3Rpb24gKHdob2xlLCBpZHgpIHtcbiAgICAgICAgICAgICAgICBhc3NlcnQoaWR4IDwgYXJncy5sZW5ndGgsICdNZXNzYWdlIHJlZmVyZW5jZSBtdXN0IGJlIGluIHJhbmdlJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3NbaWR4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBlcnJvciA9IGNyZWF0ZUVycm9yKGxpbmVOdW1iZXIsIGxhc3RJbmRleCwgbXNnKTtcbiAgICAgICAgaWYgKGV4dHJhLmVycm9ycykge1xuICAgICAgICAgICAgcmVjb3JkRXJyb3IoZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaHJvdyBhbiBleGNlcHRpb24gYmVjYXVzZSBvZiB0aGUgdG9rZW4uXG5cbiAgICBmdW5jdGlvbiB1bmV4cGVjdGVkVG9rZW5FcnJvcih0b2tlbiwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgdmFsdWUsIG1zZyA9IG1lc3NhZ2UgfHwgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuO1xuXG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgbXNnID0gKHRva2VuLnR5cGUgPT09IFRva2VuLkVPRikgPyBNZXNzYWdlcy5VbmV4cGVjdGVkRU9TIDpcbiAgICAgICAgICAgICAgICAgICAgKHRva2VuLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpID8gTWVzc2FnZXMuVW5leHBlY3RlZElkZW50aWZpZXIgOlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4udHlwZSA9PT0gVG9rZW4uTnVtZXJpY0xpdGVyYWwpID8gTWVzc2FnZXMuVW5leHBlY3RlZE51bWJlciA6XG4gICAgICAgICAgICAgICAgICAgICh0b2tlbi50eXBlID09PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSA/IE1lc3NhZ2VzLlVuZXhwZWN0ZWRTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4udHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUpID8gTWVzc2FnZXMuVW5leHBlY3RlZFRlbXBsYXRlIDpcbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnV0dXJlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gTWVzc2FnZXMuVW5leHBlY3RlZFJlc2VydmVkO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBNZXNzYWdlcy5TdHJpY3RSZXNlcnZlZFdvcmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbHVlID0gKHRva2VuLnR5cGUgPT09IFRva2VuLlRlbXBsYXRlKSA/IHRva2VuLnZhbHVlLnJhdyA6IHRva2VuLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSAnSUxMRUdBTCc7XG4gICAgICAgIH1cblxuICAgICAgICBtc2cgPSBtc2cucmVwbGFjZSgnJTAnLCB2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuICh0b2tlbiAmJiB0eXBlb2YgdG9rZW4ubGluZU51bWJlciA9PT0gJ251bWJlcicpID9cbiAgICAgICAgICAgIGNyZWF0ZUVycm9yKHRva2VuLmxpbmVOdW1iZXIsIHRva2VuLnN0YXJ0LCBtc2cpIDpcbiAgICAgICAgICAgIGNyZWF0ZUVycm9yKHNjYW5uaW5nID8gbGluZU51bWJlciA6IGxhc3RMaW5lTnVtYmVyLCBzY2FubmluZyA/IGluZGV4IDogbGFzdEluZGV4LCBtc2cpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBtZXNzYWdlKSB7XG4gICAgICAgIHRocm93IHVuZXhwZWN0ZWRUb2tlbkVycm9yKHRva2VuLCBtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgZXJyb3IgPSB1bmV4cGVjdGVkVG9rZW5FcnJvcih0b2tlbiwgbWVzc2FnZSk7XG4gICAgICAgIGlmIChleHRyYS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHJlY29yZEVycm9yKGVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwZWN0IHRoZSBuZXh0IHRva2VuIHRvIG1hdGNoIHRoZSBzcGVjaWZpZWQgcHVuY3R1YXRvci5cbiAgICAvLyBJZiBub3QsIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cblxuICAgIGZ1bmN0aW9uIGV4cGVjdCh2YWx1ZSkge1xuICAgICAgICB2YXIgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IFRva2VuLlB1bmN0dWF0b3IgfHwgdG9rZW4udmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbmFtZSBleHBlY3RDb21tYVNlcGFyYXRvclxuICAgICAqIEBkZXNjcmlwdGlvbiBRdWlldGx5IGV4cGVjdCBhIGNvbW1hIHdoZW4gaW4gdG9sZXJhbnQgbW9kZSwgb3RoZXJ3aXNlIGRlbGVnYXRlc1xuICAgICAqIHRvIDxjb2RlPmV4cGVjdCh2YWx1ZSk8L2NvZGU+XG4gICAgICogQHNpbmNlIDIuMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV4cGVjdENvbW1hU2VwYXJhdG9yKCkge1xuICAgICAgICB2YXIgdG9rZW47XG5cbiAgICAgICAgaWYgKGV4dHJhLmVycm9ycykge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiB0b2tlbi52YWx1ZSA9PT0gJywnKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLlB1bmN0dWF0b3IgJiYgdG9rZW4udmFsdWUgPT09ICc7Jykge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGVjdCB0aGUgbmV4dCB0b2tlbiB0byBtYXRjaCB0aGUgc3BlY2lmaWVkIGtleXdvcmQuXG4gICAgLy8gSWYgbm90LCBhbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uXG5cbiAgICBmdW5jdGlvbiBleHBlY3RLZXl3b3JkKGtleXdvcmQpIHtcbiAgICAgICAgdmFyIHRva2VuID0gbGV4KCk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5LZXl3b3JkIHx8IHRva2VuLnZhbHVlICE9PSBrZXl3b3JkKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgbmV4dCB0b2tlbiBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgcHVuY3R1YXRvci5cblxuICAgIGZ1bmN0aW9uIG1hdGNoKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiBsb29rYWhlYWQudmFsdWUgPT09IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBrZXl3b3JkXG5cbiAgICBmdW5jdGlvbiBtYXRjaEtleXdvcmQoa2V5d29yZCkge1xuICAgICAgICByZXR1cm4gbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLktleXdvcmQgJiYgbG9va2FoZWFkLnZhbHVlID09PSBrZXl3b3JkO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBjb250ZXh0dWFsIGtleXdvcmRcbiAgICAvLyAod2hlcmUgYW4gaWRlbnRpZmllciBpcyBzb21ldGltZXMgYSBrZXl3b3JkIGRlcGVuZGluZyBvbiB0aGUgY29udGV4dClcblxuICAgIGZ1bmN0aW9uIG1hdGNoQ29udGV4dHVhbEtleXdvcmQoa2V5d29yZCkge1xuICAgICAgICByZXR1cm4gbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIgJiYgbG9va2FoZWFkLnZhbHVlID09PSBrZXl3b3JkO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIGlzIGFuIGFzc2lnbm1lbnQgb3BlcmF0b3JcblxuICAgIGZ1bmN0aW9uIG1hdGNoQXNzaWduKCkge1xuICAgICAgICB2YXIgb3A7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5QdW5jdHVhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb3AgPSBsb29rYWhlYWQudmFsdWU7XG4gICAgICAgIHJldHVybiBvcCA9PT0gJz0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJyo9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICcvPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnJT0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJys9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICctPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnPDw9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICc+Pj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJz4+Pj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJyY9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICdePScgfHxcbiAgICAgICAgICAgIG9wID09PSAnfD0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnN1bWVTZW1pY29sb24oKSB7XG4gICAgICAgIC8vIENhdGNoIHRoZSB2ZXJ5IGNvbW1vbiBjYXNlIGZpcnN0OiBpbW1lZGlhdGVseSBhIHNlbWljb2xvbiAoVSswMDNCKS5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KHN0YXJ0SW5kZXgpID09PSAweDNCIHx8IG1hdGNoKCc7JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0xpbmVUZXJtaW5hdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGSVhNRShpa2FyaWVuYXRvcik6IHRoaXMgaXMgc2VlbWluZ2x5IGFuIGlzc3VlIGluIHRoZSBwcmV2aW91cyBsb2NhdGlvbiBpbmZvIGNvbnZlbnRpb24uXG4gICAgICAgIGxhc3RJbmRleCA9IHN0YXJ0SW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gc3RhcnRMaW5lTnVtYmVyO1xuICAgICAgICBsYXN0TGluZVN0YXJ0ID0gc3RhcnRMaW5lU3RhcnQ7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5FT0YgJiYgIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb3ZlciBncmFtbWFyIHN1cHBvcnQuXG4gICAgLy9cbiAgICAvLyBXaGVuIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiBwb3NpdGlvbiBzdGFydHMgd2l0aCBhbiBsZWZ0IHBhcmVudGhlc2lzLCB0aGUgZGV0ZXJtaW5hdGlvbiBvZiB0aGUgdHlwZVxuICAgIC8vIG9mIHRoZSBzeW50YXggaXMgdG8gYmUgZGVmZXJyZWQgYXJiaXRyYXJpbHkgbG9uZyB1bnRpbCB0aGUgZW5kIG9mIHRoZSBwYXJlbnRoZXNlcyBwYWlyIChwbHVzIGEgbG9va2FoZWFkKVxuICAgIC8vIG9yIHRoZSBmaXJzdCBjb21tYS4gVGhpcyBzaXR1YXRpb24gYWxzbyBkZWZlcnMgdGhlIGRldGVybWluYXRpb24gb2YgYWxsIHRoZSBleHByZXNzaW9ucyBuZXN0ZWQgaW4gdGhlIHBhaXIuXG4gICAgLy9cbiAgICAvLyBUaGVyZSBhcmUgdGhyZWUgcHJvZHVjdGlvbnMgdGhhdCBjYW4gYmUgcGFyc2VkIGluIGEgcGFyZW50aGVzZXMgcGFpciB0aGF0IG5lZWRzIHRvIGJlIGRldGVybWluZWRcbiAgICAvLyBhZnRlciB0aGUgb3V0ZXJtb3N0IHBhaXIgaXMgY2xvc2VkLiBUaGV5IGFyZTpcbiAgICAvL1xuICAgIC8vICAgMS4gQXNzaWdubWVudEV4cHJlc3Npb25cbiAgICAvLyAgIDIuIEJpbmRpbmdFbGVtZW50c1xuICAgIC8vICAgMy4gQXNzaWdubWVudFRhcmdldHNcbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIGV4cG9uZW50aWFsIGJhY2t0cmFja2luZywgd2UgdXNlIHR3byBmbGFncyB0byBkZW5vdGUgaWYgdGhlIHByb2R1Y3Rpb24gY2FuIGJlXG4gICAgLy8gYmluZGluZyBlbGVtZW50IG9yIGFzc2lnbm1lbnQgdGFyZ2V0LlxuICAgIC8vXG4gICAgLy8gVGhlIHRocmVlIHByb2R1Y3Rpb25zIGhhdmUgdGhlIHJlbGF0aW9uc2hpcDpcbiAgICAvL1xuICAgIC8vICAgQmluZGluZ0VsZW1lbnRzIOKKhiBBc3NpZ25tZW50VGFyZ2V0cyDiioYgQXNzaWdubWVudEV4cHJlc3Npb25cbiAgICAvL1xuICAgIC8vIHdpdGggYSBzaW5nbGUgZXhjZXB0aW9uIHRoYXQgQ292ZXJJbml0aWFsaXplZE5hbWUgd2hlbiB1c2VkIGRpcmVjdGx5IGluIGFuIEV4cHJlc3Npb24sIGdlbmVyYXRlc1xuICAgIC8vIGFuIGVhcmx5IGVycm9yLiBUaGVyZWZvcmUsIHdlIG5lZWQgdGhlIHRoaXJkIHN0YXRlLCBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IsIHRvIHRyYWNrIHRoZVxuICAgIC8vIGZpcnN0IHVzYWdlIG9mIENvdmVySW5pdGlhbGl6ZWROYW1lIGFuZCByZXBvcnQgaXQgd2hlbiB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHBhcmVudGhlc2VzIHBhaXIuXG4gICAgLy9cbiAgICAvLyBpc29sYXRlQ292ZXJHcmFtbWFyIGZ1bmN0aW9uIHJ1bnMgdGhlIGdpdmVuIHBhcnNlciBmdW5jdGlvbiB3aXRoIGEgbmV3IGNvdmVyIGdyYW1tYXIgY29udGV4dCwgYW5kIGl0IGRvZXMgbm90XG4gICAgLy8gZWZmZWN0IHRoZSBjdXJyZW50IGZsYWdzLiBUaGlzIG1lYW5zIHRoZSBwcm9kdWN0aW9uIHRoZSBwYXJzZXIgcGFyc2VzIGlzIG9ubHkgdXNlZCBhcyBhbiBleHByZXNzaW9uLiBUaGVyZWZvcmVcbiAgICAvLyB0aGUgQ292ZXJJbml0aWFsaXplZE5hbWUgY2hlY2sgaXMgY29uZHVjdGVkLlxuICAgIC8vXG4gICAgLy8gaW5oZXJpdENvdmVyR3JhbW1hciBmdW5jdGlvbiBydW5zIHRoZSBnaXZlbiBwYXJzZSBmdW5jdGlvbiB3aXRoIGEgbmV3IGNvdmVyIGdyYW1tYXIgY29udGV4dCwgYW5kIGl0IHByb3BhZ2F0ZXNcbiAgICAvLyB0aGUgZmxhZ3Mgb3V0c2lkZSBvZiB0aGUgcGFyc2VyLiBUaGlzIG1lYW5zIHRoZSBwcm9kdWN0aW9uIHRoZSBwYXJzZXIgcGFyc2VzIGlzIHVzZWQgYXMgYSBwYXJ0IG9mIGEgcG90ZW50aWFsXG4gICAgLy8gcGF0dGVybi4gVGhlIENvdmVySW5pdGlhbGl6ZWROYW1lIGNoZWNrIGlzIGRlZmVycmVkLlxuICAgIGZ1bmN0aW9uIGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VyKSB7XG4gICAgICAgIHZhciBvbGRJc0JpbmRpbmdFbGVtZW50ID0gaXNCaW5kaW5nRWxlbWVudCxcbiAgICAgICAgICAgIG9sZElzQXNzaWdubWVudFRhcmdldCA9IGlzQXNzaWdubWVudFRhcmdldCxcbiAgICAgICAgICAgIG9sZEZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcixcbiAgICAgICAgICAgIHJlc3VsdDtcbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IHRydWU7XG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG51bGw7XG4gICAgICAgIHJlc3VsdCA9IHBhcnNlcigpO1xuICAgICAgICBpZiAoZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBvbGRJc0JpbmRpbmdFbGVtZW50O1xuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBvbGRJc0Fzc2lnbm1lbnRUYXJnZXQ7XG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG9sZEZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlcikge1xuICAgICAgICB2YXIgb2xkSXNCaW5kaW5nRWxlbWVudCA9IGlzQmluZGluZ0VsZW1lbnQsXG4gICAgICAgICAgICBvbGRJc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0Fzc2lnbm1lbnRUYXJnZXQsXG4gICAgICAgICAgICBvbGRGaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IsXG4gICAgICAgICAgICByZXN1bHQ7XG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSB0cnVlO1xuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBudWxsO1xuICAgICAgICByZXN1bHQgPSBwYXJzZXIoKTtcbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGlzQmluZGluZ0VsZW1lbnQgJiYgb2xkSXNCaW5kaW5nRWxlbWVudDtcbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNBc3NpZ25tZW50VGFyZ2V0ICYmIG9sZElzQXNzaWdubWVudFRhcmdldDtcbiAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gb2xkRmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yIHx8IGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUFycmF5UGF0dGVybigpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgTm9kZSgpLCBlbGVtZW50cyA9IFtdLCByZXN0LCByZXN0Tm9kZTtcbiAgICAgICAgZXhwZWN0KCdbJyk7XG5cbiAgICAgICAgd2hpbGUgKCFtYXRjaCgnXScpKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdE5vZGUgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gocmVzdE5vZGUuZmluaXNoUmVzdEVsZW1lbnQocmVzdCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKHBhcnNlUGF0dGVybldpdGhEZWZhdWx0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0KCcsJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ10nKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hBcnJheVBhdHRlcm4oZWxlbWVudHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvcGVydHlQYXR0ZXJuKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCksIGtleSwgY29tcHV0ZWQgPSBtYXRjaCgnWycpLCBpbml0O1xuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGtleSA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGluaXQgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICdpbml0Jywga2V5LCBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbmV3IFdyYXBwaW5nTm9kZShrZXkpLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKGtleSwgaW5pdCksIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFtYXRjaCgnOicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoJ2luaXQnLCBrZXksIGZhbHNlLCBrZXksIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJzonKTtcbiAgICAgICAgaW5pdCA9IHBhcnNlUGF0dGVybldpdGhEZWZhdWx0KCk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwgaW5pdCwgZmFsc2UsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdFBhdHRlcm4oKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IE5vZGUoKSwgcHJvcGVydGllcyA9IFtdO1xuXG4gICAgICAgIGV4cGVjdCgneycpO1xuXG4gICAgICAgIHdoaWxlICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHBhcnNlUHJvcGVydHlQYXR0ZXJuKCkpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hPYmplY3RQYXR0ZXJuKHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGF0dGVybigpIHtcbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VBcnJheVBhdHRlcm4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgneycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VPYmplY3RQYXR0ZXJuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVBhdHRlcm5XaXRoRGVmYXVsdCgpIHtcbiAgICAgICAgdmFyIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQsIHBhdHRlcm4sIHJpZ2h0O1xuICAgICAgICBwYXR0ZXJuID0gcGFyc2VQYXR0ZXJuKCk7XG4gICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHJpZ2h0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKHBhdHRlcm4sIHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGF0dGVybjtcbiAgICB9XG5cbiAgICAvLyAxMS4xLjQgQXJyYXkgSW5pdGlhbGlzZXJcblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJyYXlJbml0aWFsaXNlcigpIHtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gW10sIG5vZGUgPSBuZXcgTm9kZSgpLCByZXN0U3ByZWFkO1xuXG4gICAgICAgIGV4cGVjdCgnWycpO1xuXG4gICAgICAgIHdoaWxlICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICByZXN0U3ByZWFkID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICByZXN0U3ByZWFkLmZpbmlzaFNwcmVhZEVsZW1lbnQoaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChyZXN0U3ByZWFkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcblxuICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hBcnJheUV4cHJlc3Npb24oZWxlbWVudHMpO1xuICAgIH1cblxuICAgIC8vIDExLjEuNSBPYmplY3QgSW5pdGlhbGlzZXJcblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvcGVydHlGdW5jdGlvbihub2RlLCBwYXJhbUluZm8pIHtcbiAgICAgICAgdmFyIHByZXZpb3VzU3RyaWN0LCBib2R5O1xuXG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICBwcmV2aW91c1N0cmljdCA9IHN0cmljdDtcbiAgICAgICAgYm9keSA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VGdW5jdGlvblNvdXJjZUVsZW1lbnRzKTtcblxuICAgICAgICBpZiAoc3RyaWN0ICYmIHBhcmFtSW5mby5maXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHBhcmFtSW5mby5maXJzdFJlc3RyaWN0ZWQsIHBhcmFtSW5mby5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaWN0ICYmIHBhcmFtSW5mby5zdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4ocGFyYW1JbmZvLnN0cmljdGVkLCBwYXJhbUluZm8ubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRnVuY3Rpb25FeHByZXNzaW9uKG51bGwsIHBhcmFtSW5mby5wYXJhbXMsIHBhcmFtSW5mby5kZWZhdWx0cywgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eU1ldGhvZEZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFyYW1zLCBtZXRob2QsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIHBhcmFtcyA9IHBhcnNlUGFyYW1zKCk7XG4gICAgICAgIG1ldGhvZCA9IHBhcnNlUHJvcGVydHlGdW5jdGlvbihub2RlLCBwYXJhbXMpO1xuXG4gICAgICAgIHJldHVybiBtZXRob2Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpIHtcbiAgICAgICAgdmFyIHRva2VuLCBub2RlID0gbmV3IE5vZGUoKSwgZXhwcjtcblxuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIC8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgZnJvbSBwYXJzZU9iamVjdFByb3BlcnR5KCksIHdoZXJlXG4gICAgICAgIC8vIEVPRiBhbmQgUHVuY3R1YXRvciB0b2tlbnMgYXJlIGFscmVhZHkgZmlsdGVyZWQgb3V0LlxuXG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuLlN0cmluZ0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVtZXJpY0xpdGVyYWw6XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIHRva2VuLm9jdGFsKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hMaXRlcmFsKHRva2VuKTtcbiAgICAgICAgY2FzZSBUb2tlbi5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFRva2VuLkJvb2xlYW5MaXRlcmFsOlxuICAgICAgICBjYXNlIFRva2VuLk51bGxMaXRlcmFsOlxuICAgICAgICBjYXNlIFRva2VuLktleXdvcmQ6XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZGVudGlmaWVyKHRva2VuLnZhbHVlKTtcbiAgICAgICAgY2FzZSBUb2tlbi5QdW5jdHVhdG9yOlxuICAgICAgICAgICAgaWYgKHRva2VuLnZhbHVlID09PSAnWycpIHtcbiAgICAgICAgICAgICAgICBleHByID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBleHBlY3QoJ10nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhwcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSB7XG4gICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnR5cGUpIHtcbiAgICAgICAgY2FzZSBUb2tlbi5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFRva2VuLlN0cmluZ0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uQm9vbGVhbkxpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVsbExpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVtZXJpY0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uS2V5d29yZDpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjYXNlIFRva2VuLlB1bmN0dWF0b3I6XG4gICAgICAgICAgICByZXR1cm4gbG9va2FoZWFkLnZhbHVlID09PSAnWyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgdG8gdHJ5IHRvIHBhcnNlIGEgTWV0aG9kRGVmaW5pdGlvbiBhcyBkZWZpbmVkIGluIDE0LjMuIEJ1dCBpbiB0aGUgY2FzZSBvZiBvYmplY3QgbGl0ZXJhbHMsXG4gICAgLy8gaXQgbWlnaHQgYmUgY2FsbGVkIGF0IGEgcG9zaXRpb24gd2hlcmUgdGhlcmUgaXMgaW4gZmFjdCBhIHNob3J0IGhhbmQgaWRlbnRpZmllciBwYXR0ZXJuIG9yIGEgZGF0YSBwcm9wZXJ0eS5cbiAgICAvLyBUaGlzIGNhbiBvbmx5IGJlIGRldGVybWluZWQgYWZ0ZXIgd2UgY29uc3VtZWQgdXAgdG8gdGhlIGxlZnQgcGFyZW50aGVzZXMuXG4gICAgLy9cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBiYWNrIHRyYWNraW5nLCBpdCByZXR1cm5zIGBudWxsYCBpZiB0aGUgcG9zaXRpb24gaXMgbm90IGEgTWV0aG9kRGVmaW5pdGlvbiBhbmQgdGhlIGNhbGxlclxuICAgIC8vIGlzIHJlc3BvbnNpYmxlIHRvIHZpc2l0IG90aGVyIG9wdGlvbnMuXG4gICAgZnVuY3Rpb24gdHJ5UGFyc2VNZXRob2REZWZpbml0aW9uKHRva2VuLCBrZXksIGNvbXB1dGVkLCBub2RlKSB7XG4gICAgICAgIHZhciB2YWx1ZSwgb3B0aW9ucywgbWV0aG9kTm9kZTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGBnZXRgIGFuZCBgc2V0YDtcblxuICAgICAgICAgICAgaWYgKHRva2VuLnZhbHVlID09PSAnZ2V0JyAmJiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgbWV0aG9kTm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcoJyk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZVByb3BlcnR5RnVuY3Rpb24obWV0aG9kTm9kZSwge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0czogW10sXG4gICAgICAgICAgICAgICAgICAgIHN0cmljdGVkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnZ2V0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnZhbHVlID09PSAnc2V0JyAmJiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgbWV0aG9kTm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q291bnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbVNldDoge31cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VQYXJhbShvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZGVmYXVsdENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmRlZmF1bHRzID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlUHJvcGVydHlGdW5jdGlvbihtZXRob2ROb2RlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnc2V0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBwYXJzZVByb3BlcnR5TWV0aG9kRnVuY3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdCBhIE1ldGhvZERlZmluaXRpb24uXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrUHJvdG8oa2V5LCBjb21wdXRlZCwgaGFzUHJvdG8pIHtcbiAgICAgICAgaWYgKGNvbXB1dGVkID09PSBmYWxzZSAmJiAoa2V5LnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGtleS5uYW1lID09PSAnX19wcm90b19fJyB8fFxuICAgICAgICAgICAga2V5LnR5cGUgPT09IFN5bnRheC5MaXRlcmFsICYmIGtleS52YWx1ZSA9PT0gJ19fcHJvdG9fXycpKSB7XG4gICAgICAgICAgICBpZiAoaGFzUHJvdG8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkR1cGxpY2F0ZVByb3RvUHJvcGVydHkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYXNQcm90by52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdFByb3BlcnR5KGhhc1Byb3RvKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IGxvb2thaGVhZCwgbm9kZSA9IG5ldyBOb2RlKCksIGNvbXB1dGVkLCBrZXksIG1heWJlTWV0aG9kLCB2YWx1ZTtcblxuICAgICAgICBjb21wdXRlZCA9IG1hdGNoKCdbJyk7XG4gICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgbWF5YmVNZXRob2QgPSB0cnlQYXJzZU1ldGhvZERlZmluaXRpb24odG9rZW4sIGtleSwgY29tcHV0ZWQsIG5vZGUpO1xuXG4gICAgICAgIGlmIChtYXliZU1ldGhvZCkge1xuICAgICAgICAgICAgY2hlY2tQcm90byhtYXliZU1ldGhvZC5rZXksIG1heWJlTWV0aG9kLmNvbXB1dGVkLCBoYXNQcm90byk7XG4gICAgICAgICAgICAvLyBmaW5pc2hlZFxuICAgICAgICAgICAgcmV0dXJuIG1heWJlTWV0aG9kO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdCBwcm9wZXJ0eSBvciBzaG9ydCBoYW5kIHByb3BlcnR5LlxuICAgICAgICBjaGVja1Byb3RvKGtleSwgY29tcHV0ZWQsIGhhc1Byb3RvKTtcblxuICAgICAgICBpZiAobWF0Y2goJzonKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB2YWx1ZSA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsIHZhbHVlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbG9va2FoZWFkO1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsXG4gICAgICAgICAgICAgICAgICAgIG5ldyBXcmFwcGluZ05vZGUodG9rZW4pLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKGtleSwgdmFsdWUpLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsIGtleSwgZmFsc2UsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdEluaXRpYWxpc2VyKCkge1xuICAgICAgICB2YXIgcHJvcGVydGllcyA9IFtdLCBoYXNQcm90byA9IHt2YWx1ZTogZmFsc2V9LCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICB3aGlsZSAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChwYXJzZU9iamVjdFByb3BlcnR5KGhhc1Byb3RvKSk7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGV4cGVjdENvbW1hU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ30nKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hPYmplY3RFeHByZXNzaW9uKHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByKSB7XG4gICAgICAgIHZhciBpO1xuICAgICAgICBzd2l0Y2ggKGV4cHIudHlwZSkge1xuICAgICAgICBjYXNlIFN5bnRheC5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFN5bnRheC5NZW1iZXJFeHByZXNzaW9uOlxuICAgICAgICBjYXNlIFN5bnRheC5SZXN0RWxlbWVudDpcbiAgICAgICAgY2FzZSBTeW50YXguQXNzaWdubWVudFBhdHRlcm46XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguU3ByZWFkRWxlbWVudDpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5SZXN0RWxlbWVudDtcbiAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLmFyZ3VtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5BcnJheUV4cHJlc3Npb246XG4gICAgICAgICAgICBleHByLnR5cGUgPSBTeW50YXguQXJyYXlQYXR0ZXJuO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHIuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5lbGVtZW50c1tpXSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwci5lbGVtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4Lk9iamVjdEV4cHJlc3Npb246XG4gICAgICAgICAgICBleHByLnR5cGUgPSBTeW50YXguT2JqZWN0UGF0dGVybjtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHByLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwci5wcm9wZXJ0aWVzW2ldLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5Bc3NpZ25tZW50RXhwcmVzc2lvbjpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjtcbiAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLmxlZnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBBbGxvdyBvdGhlciBub2RlIHR5cGUgZm9yIHRvbGVyYW50IHBhcnNpbmcuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVGVtcGxhdGVFbGVtZW50KG9wdGlvbikge1xuICAgICAgICB2YXIgbm9kZSwgdG9rZW47XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5UZW1wbGF0ZSB8fCAob3B0aW9uLmhlYWQgJiYgIWxvb2thaGVhZC5oZWFkKSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBuZXcgTm9kZSgpO1xuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFRlbXBsYXRlRWxlbWVudCh7IHJhdzogdG9rZW4udmFsdWUucmF3LCBjb29rZWQ6IHRva2VuLnZhbHVlLmNvb2tlZCB9LCB0b2tlbi50YWlsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVRlbXBsYXRlTGl0ZXJhbCgpIHtcbiAgICAgICAgdmFyIHF1YXNpLCBxdWFzaXMsIGV4cHJlc3Npb25zLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVFbGVtZW50KHsgaGVhZDogdHJ1ZSB9KTtcbiAgICAgICAgcXVhc2lzID0gWyBxdWFzaSBdO1xuICAgICAgICBleHByZXNzaW9ucyA9IFtdO1xuXG4gICAgICAgIHdoaWxlICghcXVhc2kudGFpbCkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChwYXJzZUV4cHJlc3Npb24oKSk7XG4gICAgICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVFbGVtZW50KHsgaGVhZDogZmFsc2UgfSk7XG4gICAgICAgICAgICBxdWFzaXMucHVzaChxdWFzaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUZW1wbGF0ZUxpdGVyYWwocXVhc2lzLCBleHByZXNzaW9ucyk7XG4gICAgfVxuXG4gICAgLy8gMTEuMS42IFRoZSBHcm91cGluZyBPcGVyYXRvclxuXG4gICAgZnVuY3Rpb24gcGFyc2VHcm91cEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBleHByZXNzaW9ucywgc3RhcnRUb2tlbiwgaTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAobWF0Y2goJyknKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCc9PicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcixcbiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgaWYgKG1hdGNoKCcuLi4nKSkge1xuICAgICAgICAgICAgZXhwciA9IHBhcnNlUmVzdEVsZW1lbnQoKTtcbiAgICAgICAgICAgIGV4cGVjdCgnKScpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnPT4nKSkge1xuICAgICAgICAgICAgICAgIGV4cGVjdCgnPT4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogUGxhY2VIb2xkZXJzLkFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBbZXhwcl1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG5cbiAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGZhbHNlO1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMgPSBbZXhwcl07XG5cbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXgoKTtcblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JpbmRpbmdFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zLnB1c2gocGFyc2VSZXN0RWxlbWVudCgpKTtcbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJz0+JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdCgnPT4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHByZXNzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHJlc3Npb25zW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogUGxhY2VIb2xkZXJzLkFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGV4cHJlc3Npb25zXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoU2VxdWVuY2VFeHByZXNzaW9uKGV4cHJlc3Npb25zKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgaWYgKG1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICBpZiAoIWlzQmluZGluZ0VsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXhwci50eXBlID09PSBTeW50YXguU2VxdWVuY2VFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHIuZXhwcmVzc2lvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIuZXhwcmVzc2lvbnNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFBsYWNlSG9sZGVycy5BcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyLFxuICAgICAgICAgICAgICAgIHBhcmFtczogZXhwci50eXBlID09PSBTeW50YXguU2VxdWVuY2VFeHByZXNzaW9uID8gZXhwci5leHByZXNzaW9ucyA6IFtleHByXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuXG4gICAgLy8gMTEuMSBQcmltYXJ5IEV4cHJlc3Npb25zXG5cbiAgICBmdW5jdGlvbiBwYXJzZVByaW1hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdHlwZSwgdG9rZW4sIGV4cHIsIG5vZGU7XG5cbiAgICAgICAgaWYgKG1hdGNoKCcoJykpIHtcbiAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlR3JvdXBFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFycmF5SW5pdGlhbGlzZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlT2JqZWN0SW5pdGlhbGlzZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHlwZSA9IGxvb2thaGVhZC50eXBlO1xuICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgZXhwciA9IG5vZGUuZmluaXNoSWRlbnRpZmllcihsZXgoKS52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVG9rZW4uU3RyaW5nTGl0ZXJhbCB8fCB0eXBlID09PSBUb2tlbi5OdW1lcmljTGl0ZXJhbCkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBsb29rYWhlYWQub2N0YWwpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQsIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHByID0gbm9kZS5maW5pc2hMaXRlcmFsKGxleCgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25FeHByZXNzaW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCd0aGlzJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUaGlzRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnY2xhc3MnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUNsYXNzRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obGV4KCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLkJvb2xlYW5MaXRlcmFsKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgdG9rZW4udmFsdWUgPSAodG9rZW4udmFsdWUgPT09ICd0cnVlJyk7XG4gICAgICAgICAgICBleHByID0gbm9kZS5maW5pc2hMaXRlcmFsKHRva2VuKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUb2tlbi5OdWxsTGl0ZXJhbCkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIHRva2VuLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcvJykgfHwgbWF0Y2goJy89JykpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGluZGV4ID0gc3RhcnRJbmRleDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS50b2tlbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBzY2FuUmVnRXhwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLlRlbXBsYXRlKSB7XG4gICAgICAgICAgICBleHByID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxleCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIC8vIDExLjIgTGVmdC1IYW5kLVNpZGUgRXhwcmVzc2lvbnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJndW1lbnRzKCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIGlmICghbWF0Y2goJyknKSkge1xuICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4cGVjdENvbW1hU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICByZXR1cm4gYXJncztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5vbkNvbXB1dGVkUHJvcGVydHkoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuICAgICAgICBpZiAoIWlzSWRlbnRpZmllck5hbWUodG9rZW4pKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZGVudGlmaWVyKHRva2VuLnZhbHVlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5vbkNvbXB1dGVkTWVtYmVyKCkge1xuICAgICAgICBleHBlY3QoJy4nKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb21wdXRlZE1lbWJlcigpIHtcbiAgICAgICAgdmFyIGV4cHI7XG5cbiAgICAgICAgZXhwZWN0KCdbJyk7XG5cbiAgICAgICAgZXhwciA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VFeHByZXNzaW9uKTtcblxuICAgICAgICBleHBlY3QoJ10nKTtcblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5ld0V4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBjYWxsZWUsIGFyZ3MsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ25ldycpO1xuICAgICAgICBjYWxsZWUgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlTGVmdEhhbmRTaWRlRXhwcmVzc2lvbik7XG4gICAgICAgIGFyZ3MgPSBtYXRjaCgnKCcpID8gcGFyc2VBcmd1bWVudHMoKSA6IFtdO1xuXG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hOZXdFeHByZXNzaW9uKGNhbGxlZSwgYXJncyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKCkge1xuICAgICAgICB2YXIgcXVhc2ksIGV4cHIsIGFyZ3MsIHByb3BlcnR5LCBzdGFydFRva2VuLCBwcmV2aW91c0FsbG93SW4gPSBzdGF0ZS5hbGxvd0luO1xuXG4gICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgIHN0YXRlLmFsbG93SW4gPSB0cnVlO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ3N1cGVyJykgJiYgc3RhdGUuaW5GdW5jdGlvbkJvZHkpIHtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBleHByID0gZXhwci5maW5pc2hTdXBlcigpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnKCcpICYmICFtYXRjaCgnLicpICYmICFtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKG1hdGNoS2V5d29yZCgnbmV3JykgPyBwYXJzZU5ld0V4cHJlc3Npb24gOiBwYXJzZVByaW1hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnLicpKSB7XG4gICAgICAgICAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcHJvcGVydHkgPSBwYXJzZU5vbkNvbXB1dGVkTWVtYmVyKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoTWVtYmVyRXhwcmVzc2lvbignLicsIGV4cHIsIHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJygnKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBhcmdzID0gcGFyc2VBcmd1bWVudHMoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hDYWxsRXhwcmVzc2lvbihleHByLCBhcmdzKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJ1snKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VDb21wdXRlZE1lbWJlcigpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaE1lbWJlckV4cHJlc3Npb24oJ1snLCBleHByLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5UZW1wbGF0ZSAmJiBsb29rYWhlYWQuaGVhZCkge1xuICAgICAgICAgICAgICAgIHF1YXNpID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24oZXhwciwgcXVhc2kpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGVmdEhhbmRTaWRlRXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIHF1YXNpLCBleHByLCBwcm9wZXJ0eSwgc3RhcnRUb2tlbjtcbiAgICAgICAgYXNzZXJ0KHN0YXRlLmFsbG93SW4sICdjYWxsZWUgb2YgbmV3IGV4cHJlc3Npb24gYWx3YXlzIGFsbG93IGluIGtleXdvcmQuJyk7XG5cbiAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdzdXBlcicpICYmIHN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICBleHByID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGV4cHIuZmluaXNoU3VwZXIoKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJ1snKSAmJiAhbWF0Y2goJy4nKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByID0gaW5oZXJpdENvdmVyR3JhbW1hcihtYXRjaEtleXdvcmQoJ25ldycpID8gcGFyc2VOZXdFeHByZXNzaW9uIDogcGFyc2VQcmltYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ1snKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VDb21wdXRlZE1lbWJlcigpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaE1lbWJlckV4cHJlc3Npb24oJ1snLCBleHByLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcuJykpIHtcbiAgICAgICAgICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IHBhcnNlTm9uQ29tcHV0ZWRNZW1iZXIoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hNZW1iZXJFeHByZXNzaW9uKCcuJywgZXhwciwgcHJvcGVydHkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUgJiYgbG9va2FoZWFkLmhlYWQpIHtcbiAgICAgICAgICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVMaXRlcmFsKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKGV4cHIsIHF1YXNpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuMyBQb3N0Zml4IEV4cHJlc3Npb25zXG5cbiAgICBmdW5jdGlvbiBwYXJzZVBvc3RmaXhFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgZXhwciwgdG9rZW4sIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG5cbiAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcblxuICAgICAgICBpZiAoIWhhc0xpbmVUZXJtaW5hdG9yICYmIGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5QdW5jdHVhdG9yKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJysrJykgfHwgbWF0Y2goJy0tJykpIHtcbiAgICAgICAgICAgICAgICAvLyAxMS4zLjEsIDExLjMuMlxuICAgICAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZXhwci50eXBlID09PSBTeW50YXguSWRlbnRpZmllciAmJiBpc1Jlc3RyaWN0ZWRXb3JkKGV4cHIubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RMSFNQb3N0Zml4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWlzQXNzaWdubWVudFRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkludmFsaWRMSFNJbkFzc2lnbm1lbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoUG9zdGZpeEV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuNCBVbmFyeSBPcGVyYXRvcnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlVW5hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdG9rZW4sIGV4cHIsIHN0YXJ0VG9rZW47XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5QdW5jdHVhdG9yICYmIGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBleHByID0gcGFyc2VQb3N0Zml4RXhwcmVzc2lvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcrKycpIHx8IG1hdGNoKCctLScpKSB7XG4gICAgICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIC8vIDExLjQuNCwgMTEuNC41XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGV4cHIudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIgJiYgaXNSZXN0cmljdGVkV29yZChleHByLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RMSFNQcmVmaXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzQXNzaWdubWVudFRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuSW52YWxpZExIU0luQXNzaWdubWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hVbmFyeUV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcrJykgfHwgbWF0Y2goJy0nKSB8fCBtYXRjaCgnficpIHx8IG1hdGNoKCchJykpIHtcbiAgICAgICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVW5hcnlFeHByZXNzaW9uKHRva2VuLnZhbHVlLCBleHByKTtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaEtleXdvcmQoJ2RlbGV0ZScpIHx8IG1hdGNoS2V5d29yZCgndm9pZCcpIHx8IG1hdGNoS2V5d29yZCgndHlwZW9mJykpIHtcbiAgICAgICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVW5hcnlFeHByZXNzaW9uKHRva2VuLnZhbHVlLCBleHByKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZXhwci5vcGVyYXRvciA9PT0gJ2RlbGV0ZScgJiYgZXhwci5hcmd1bWVudC50eXBlID09PSBTeW50YXguSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0RGVsZXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHIgPSBwYXJzZVBvc3RmaXhFeHByZXNzaW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiaW5hcnlQcmVjZWRlbmNlKHRva2VuLCBhbGxvd0luKSB7XG4gICAgICAgIHZhciBwcmVjID0gMDtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uUHVuY3R1YXRvciAmJiB0b2tlbi50eXBlICE9PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcbiAgICAgICAgY2FzZSAnfHwnOlxuICAgICAgICAgICAgcHJlYyA9IDE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICcmJic6XG4gICAgICAgICAgICBwcmVjID0gMjtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3wnOlxuICAgICAgICAgICAgcHJlYyA9IDM7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICAgIHByZWMgPSA0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnJic6XG4gICAgICAgICAgICBwcmVjID0gNTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJz09JzpcbiAgICAgICAgY2FzZSAnIT0nOlxuICAgICAgICBjYXNlICc9PT0nOlxuICAgICAgICBjYXNlICchPT0nOlxuICAgICAgICAgICAgcHJlYyA9IDY7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgY2FzZSAnPic6XG4gICAgICAgIGNhc2UgJzw9JzpcbiAgICAgICAgY2FzZSAnPj0nOlxuICAgICAgICBjYXNlICdpbnN0YW5jZW9mJzpcbiAgICAgICAgICAgIHByZWMgPSA3O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnaW4nOlxuICAgICAgICAgICAgcHJlYyA9IGFsbG93SW4gPyA3IDogMDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJzw8JzpcbiAgICAgICAgY2FzZSAnPj4nOlxuICAgICAgICBjYXNlICc+Pj4nOlxuICAgICAgICAgICAgcHJlYyA9IDg7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICBwcmVjID0gOTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJyonOlxuICAgICAgICBjYXNlICcvJzpcbiAgICAgICAgY2FzZSAnJSc6XG4gICAgICAgICAgICBwcmVjID0gMTE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJlYztcbiAgICB9XG5cbiAgICAvLyAxMS41IE11bHRpcGxpY2F0aXZlIE9wZXJhdG9yc1xuICAgIC8vIDExLjYgQWRkaXRpdmUgT3BlcmF0b3JzXG4gICAgLy8gMTEuNyBCaXR3aXNlIFNoaWZ0IE9wZXJhdG9yc1xuICAgIC8vIDExLjggUmVsYXRpb25hbCBPcGVyYXRvcnNcbiAgICAvLyAxMS45IEVxdWFsaXR5IE9wZXJhdG9yc1xuICAgIC8vIDExLjEwIEJpbmFyeSBCaXR3aXNlIE9wZXJhdG9yc1xuICAgIC8vIDExLjExIEJpbmFyeSBMb2dpY2FsIE9wZXJhdG9yc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VCaW5hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgbWFya2VyLCBtYXJrZXJzLCBleHByLCB0b2tlbiwgcHJlYywgc3RhY2ssIHJpZ2h0LCBvcGVyYXRvciwgbGVmdCwgaTtcblxuICAgICAgICBtYXJrZXIgPSBsb29rYWhlYWQ7XG4gICAgICAgIGxlZnQgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcblxuICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgcHJlYyA9IGJpbmFyeVByZWNlZGVuY2UodG9rZW4sIHN0YXRlLmFsbG93SW4pO1xuICAgICAgICBpZiAocHJlYyA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB0b2tlbi5wcmVjID0gcHJlYztcbiAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgbWFya2VycyA9IFttYXJrZXIsIGxvb2thaGVhZF07XG4gICAgICAgIHJpZ2h0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZVVuYXJ5RXhwcmVzc2lvbik7XG5cbiAgICAgICAgc3RhY2sgPSBbbGVmdCwgdG9rZW4sIHJpZ2h0XTtcblxuICAgICAgICB3aGlsZSAoKHByZWMgPSBiaW5hcnlQcmVjZWRlbmNlKGxvb2thaGVhZCwgc3RhdGUuYWxsb3dJbikpID4gMCkge1xuXG4gICAgICAgICAgICAvLyBSZWR1Y2U6IG1ha2UgYSBiaW5hcnkgZXhwcmVzc2lvbiBmcm9tIHRoZSB0aHJlZSB0b3Btb3N0IGVudHJpZXMuXG4gICAgICAgICAgICB3aGlsZSAoKHN0YWNrLmxlbmd0aCA+IDIpICYmIChwcmVjIDw9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDJdLnByZWMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgICBvcGVyYXRvciA9IHN0YWNrLnBvcCgpLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxlZnQgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgICBtYXJrZXJzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKG1hcmtlcnNbbWFya2Vycy5sZW5ndGggLSAxXSkuZmluaXNoQmluYXJ5RXhwcmVzc2lvbihvcGVyYXRvciwgbGVmdCwgcmlnaHQpO1xuICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goZXhwcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNoaWZ0LlxuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIHRva2VuLnByZWMgPSBwcmVjO1xuICAgICAgICAgICAgc3RhY2sucHVzaCh0b2tlbik7XG4gICAgICAgICAgICBtYXJrZXJzLnB1c2gobG9va2FoZWFkKTtcbiAgICAgICAgICAgIGV4cHIgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goZXhwcik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaW5hbCByZWR1Y2UgdG8gY2xlYW4tdXAgdGhlIHN0YWNrLlxuICAgICAgICBpID0gc3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgZXhwciA9IHN0YWNrW2ldO1xuICAgICAgICBtYXJrZXJzLnBvcCgpO1xuICAgICAgICB3aGlsZSAoaSA+IDEpIHtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKG1hcmtlcnMucG9wKCkpLmZpbmlzaEJpbmFyeUV4cHJlc3Npb24oc3RhY2tbaSAtIDFdLnZhbHVlLCBzdGFja1tpIC0gMl0sIGV4cHIpO1xuICAgICAgICAgICAgaSAtPSAyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG5cbiAgICAvLyAxMS4xMiBDb25kaXRpb25hbCBPcGVyYXRvclxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb25kaXRpb25hbEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBwcmV2aW91c0FsbG93SW4sIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSwgc3RhcnRUb2tlbjtcblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQmluYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgIGlmIChtYXRjaCgnPycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHByZXZpb3VzQWxsb3dJbiA9IHN0YXRlLmFsbG93SW47XG4gICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnNlcXVlbnQgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHByZXZpb3VzQWxsb3dJbjtcbiAgICAgICAgICAgIGV4cGVjdCgnOicpO1xuICAgICAgICAgICAgYWx0ZXJuYXRlID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcblxuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoQ29uZGl0aW9uYWxFeHByZXNzaW9uKGV4cHIsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSk7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICAvLyBbRVM2XSAxNC4yIEFycm93IEZ1bmN0aW9uXG5cbiAgICBmdW5jdGlvbiBwYXJzZUNvbmNpc2VCb2R5KCkge1xuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25Tb3VyY2VFbGVtZW50cygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtKSB7XG4gICAgICAgIHZhciBpO1xuICAgICAgICBzd2l0Y2ggKHBhcmFtLnR5cGUpIHtcbiAgICAgICAgY2FzZSBTeW50YXguSWRlbnRpZmllcjpcbiAgICAgICAgICAgIHZhbGlkYXRlUGFyYW0ob3B0aW9ucywgcGFyYW0sIHBhcmFtLm5hbWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LlJlc3RFbGVtZW50OlxuICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0uYXJndW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LkFzc2lnbm1lbnRQYXR0ZXJuOlxuICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0ubGVmdCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguQXJyYXlQYXR0ZXJuOlxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcmFtLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtLmVsZW1lbnRzW2ldICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtLmVsZW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGFzc2VydChwYXJhbS50eXBlID09PSBTeW50YXguT2JqZWN0UGF0dGVybiwgJ0ludmFsaWQgdHlwZScpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcmFtLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbS5wcm9wZXJ0aWVzW2ldLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlaW50ZXJwcmV0QXNDb3ZlckZvcm1hbHNMaXN0KGV4cHIpIHtcbiAgICAgICAgdmFyIGksIGxlbiwgcGFyYW0sIHBhcmFtcywgZGVmYXVsdHMsIGRlZmF1bHRDb3VudCwgb3B0aW9ucywgdG9rZW47XG5cbiAgICAgICAgZGVmYXVsdHMgPSBbXTtcbiAgICAgICAgZGVmYXVsdENvdW50ID0gMDtcbiAgICAgICAgcGFyYW1zID0gW2V4cHJdO1xuXG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgIGNhc2UgU3ludGF4LklkZW50aWZpZXI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcjpcbiAgICAgICAgICAgIHBhcmFtcyA9IGV4cHIucGFyYW1zO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwYXJhbVNldDoge31cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSBwYXJhbXMubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgICAgIHBhcmFtID0gcGFyYW1zW2ldO1xuICAgICAgICAgICAgc3dpdGNoIChwYXJhbS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjpcbiAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBwYXJhbS5sZWZ0O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzLnB1c2gocGFyYW0ucmlnaHQpO1xuICAgICAgICAgICAgICAgICsrZGVmYXVsdENvdW50O1xuICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtLmxlZnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbSk7XG4gICAgICAgICAgICAgICAgcGFyYW1zW2ldID0gcGFyYW07XG4gICAgICAgICAgICAgICAgZGVmYXVsdHMucHVzaChudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IE1lc3NhZ2VzLlN0cmljdFBhcmFtRHVwZSkge1xuICAgICAgICAgICAgdG9rZW4gPSBzdHJpY3QgPyBvcHRpb25zLnN0cmljdGVkIDogb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbiwgb3B0aW9ucy5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWZhdWx0Q291bnQgPT09IDApIHtcbiAgICAgICAgICAgIGRlZmF1bHRzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICAgICAgICBkZWZhdWx0czogZGVmYXVsdHMsXG4gICAgICAgICAgICBzdHJpY3RlZDogb3B0aW9ucy5zdHJpY3RlZCxcbiAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZDogb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQsXG4gICAgICAgICAgICBtZXNzYWdlOiBvcHRpb25zLm1lc3NhZ2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUFycm93RnVuY3Rpb25FeHByZXNzaW9uKG9wdGlvbnMsIG5vZGUpIHtcbiAgICAgICAgdmFyIHByZXZpb3VzU3RyaWN0LCBib2R5O1xuXG4gICAgICAgIGlmIChoYXNMaW5lVGVybWluYXRvcikge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJz0+Jyk7XG4gICAgICAgIHByZXZpb3VzU3RyaWN0ID0gc3RyaWN0O1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZUNvbmNpc2VCb2R5KCk7XG5cbiAgICAgICAgaWYgKHN0cmljdCAmJiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4ob3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQsIG9wdGlvbnMubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBvcHRpb25zLnN0cmljdGVkKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihvcHRpb25zLnN0cmljdGVkLCBvcHRpb25zLm1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyaWN0ID0gcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24ob3B0aW9ucy5wYXJhbXMsIG9wdGlvbnMuZGVmYXVsdHMsIGJvZHksIGJvZHkudHlwZSAhPT0gU3ludGF4LkJsb2NrU3RhdGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyAxMS4xMyBBc3NpZ25tZW50IE9wZXJhdG9yc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIHRva2VuLCBleHByLCByaWdodCwgbGlzdCwgc3RhcnRUb2tlbjtcblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICBleHByID0gcGFyc2VDb25kaXRpb25hbEV4cHJlc3Npb24oKTtcblxuICAgICAgICBpZiAoZXhwci50eXBlID09PSBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlciB8fCBtYXRjaCgnPT4nKSkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgbGlzdCA9IHJlaW50ZXJwcmV0QXNDb3ZlckZvcm1hbHNMaXN0KGV4cHIpO1xuXG4gICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24obGlzdCwgbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hdGNoQXNzaWduKCkpIHtcbiAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5JbnZhbGlkTEhTSW5Bc3NpZ25tZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gMTEuMTMuMVxuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBleHByLnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGlzUmVzdHJpY3RlZFdvcmQoZXhwci5uYW1lKSkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RMSFNBc3NpZ25tZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICByaWdodCA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hBc3NpZ25tZW50RXhwcmVzc2lvbih0b2tlbi52YWx1ZSwgZXhwciwgcmlnaHQpO1xuICAgICAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIC8vIDExLjE0IENvbW1hIE9wZXJhdG9yXG5cbiAgICBmdW5jdGlvbiBwYXJzZUV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBzdGFydFRva2VuID0gbG9va2FoZWFkLCBleHByZXNzaW9ucztcblxuICAgICAgICBleHByID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcblxuICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMgPSBbZXhwcl07XG5cbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hTZXF1ZW5jZUV4cHJlc3Npb24oZXhwcmVzc2lvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTIuMSBCbG9ja1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpIHtcbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZC52YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkLCBNZXNzYWdlcy5JbGxlZ2FsRXhwb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFeHBvcnREZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAnaW1wb3J0JzpcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkLCBNZXNzYWdlcy5JbGxlZ2FsSW1wb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbXBvcnREZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAnY29uc3QnOlxuICAgICAgICAgICAgY2FzZSAnbGV0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VMZXhpY2FsRGVjbGFyYXRpb24oe2luRm9yOiBmYWxzZX0pO1xuICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24obmV3IE5vZGUoKSk7XG4gICAgICAgICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NEZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlU3RhdGVtZW50KCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnRMaXN0KCkge1xuICAgICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3QucHVzaChwYXJzZVN0YXRlbWVudExpc3RJdGVtKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VCbG9jaygpIHtcbiAgICAgICAgdmFyIGJsb2NrLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICBibG9jayA9IHBhcnNlU3RhdGVtZW50TGlzdCgpO1xuXG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEJsb2NrU3RhdGVtZW50KGJsb2NrKTtcbiAgICB9XG5cbiAgICAvLyAxMi4yIFZhcmlhYmxlIFN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiB0b2tlbi50eXBlID09PSBUb2tlbi5LZXl3b3JkICYmIGlzU3RyaWN0TW9kZVJlc2VydmVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuU3RyaWN0UmVzZXJ2ZWRXb3JkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSWRlbnRpZmllcih0b2tlbi52YWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uKCkge1xuICAgICAgICB2YXIgaW5pdCA9IG51bGwsIGlkLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZCA9IHBhcnNlUGF0dGVybigpO1xuXG4gICAgICAgIC8vIDEyLjIuMVxuICAgICAgICBpZiAoc3RyaWN0ICYmIGlzUmVzdHJpY3RlZFdvcmQoaWQubmFtZSkpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0VmFyTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBpbml0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChpZC50eXBlICE9PSBTeW50YXguSWRlbnRpZmllcikge1xuICAgICAgICAgICAgZXhwZWN0KCc9Jyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hWYXJpYWJsZURlY2xhcmF0b3IoaWQsIGluaXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QoKSB7XG4gICAgICAgIHZhciBsaXN0ID0gW107XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgbGlzdC5wdXNoKHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbigpKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb25zO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3ZhcicpO1xuXG4gICAgICAgIGRlY2xhcmF0aW9ucyA9IHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QoKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoVmFyaWFibGVEZWNsYXJhdGlvbihkZWNsYXJhdGlvbnMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGV4aWNhbEJpbmRpbmcoa2luZCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgaW5pdCA9IG51bGwsIGlkLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZCA9IHBhcnNlUGF0dGVybigpO1xuXG4gICAgICAgIC8vIDEyLjIuMVxuICAgICAgICBpZiAoc3RyaWN0ICYmIGlkLnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGlzUmVzdHJpY3RlZFdvcmQoaWQubmFtZSkpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0VmFyTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2luZCA9PT0gJ2NvbnN0Jykge1xuICAgICAgICAgICAgaWYgKCFtYXRjaEtleXdvcmQoJ2luJykpIHtcbiAgICAgICAgICAgICAgICBleHBlY3QoJz0nKTtcbiAgICAgICAgICAgICAgICBpbml0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgoIW9wdGlvbnMuaW5Gb3IgJiYgaWQudHlwZSAhPT0gU3ludGF4LklkZW50aWZpZXIpIHx8IG1hdGNoKCc9JykpIHtcbiAgICAgICAgICAgIGV4cGVjdCgnPScpO1xuICAgICAgICAgICAgaW5pdCA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hWYXJpYWJsZURlY2xhcmF0b3IoaWQsIGluaXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlQmluZGluZ0xpc3Qoa2luZCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgbGlzdCA9IFtdO1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGxpc3QucHVzaChwYXJzZUxleGljYWxCaW5kaW5nKGtpbmQsIG9wdGlvbnMpKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGV4aWNhbERlY2xhcmF0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGtpbmQsIGRlY2xhcmF0aW9ucywgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAga2luZCA9IGxleCgpLnZhbHVlO1xuICAgICAgICBhc3NlcnQoa2luZCA9PT0gJ2xldCcgfHwga2luZCA9PT0gJ2NvbnN0JywgJ0xleGljYWwgZGVjbGFyYXRpb24gbXVzdCBiZSBlaXRoZXIgbGV0IG9yIGNvbnN0Jyk7XG5cbiAgICAgICAgZGVjbGFyYXRpb25zID0gcGFyc2VCaW5kaW5nTGlzdChraW5kLCBvcHRpb25zKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoTGV4aWNhbERlY2xhcmF0aW9uKGRlY2xhcmF0aW9ucywga2luZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VSZXN0RWxlbWVudCgpIHtcbiAgICAgICAgdmFyIHBhcmFtLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5PYmplY3RQYXR0ZXJuQXNSZXN0UGFyYW1ldGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5EZWZhdWx0UmVzdFBhcmFtZXRlcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuUGFyYW1ldGVyQWZ0ZXJSZXN0UGFyYW1ldGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFJlc3RFbGVtZW50KHBhcmFtKTtcbiAgICB9XG5cbiAgICAvLyAxMi4zIEVtcHR5IFN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VFbXB0eVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIGV4cGVjdCgnOycpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFbXB0eVN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIC8vIDEyLjQgRXhwcmVzc2lvbiBTdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwcmVzc2lvblN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBleHByID0gcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudChleHByKTtcbiAgICB9XG5cbiAgICAvLyAxMi41IElmIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VJZlN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciB0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGU7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnaWYnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICB0ZXN0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgY29uc2VxdWVudCA9IHBhcnNlU3RhdGVtZW50KCk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZWxzZScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGFsdGVybmF0ZSA9IHBhcnNlU3RhdGVtZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbHRlcm5hdGUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSWZTdGF0ZW1lbnQodGVzdCwgY29uc2VxdWVudCwgYWx0ZXJuYXRlKTtcbiAgICB9XG5cbiAgICAvLyAxMi42IEl0ZXJhdGlvbiBTdGF0ZW1lbnRzXG5cbiAgICBmdW5jdGlvbiBwYXJzZURvV2hpbGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYm9keSwgdGVzdCwgb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZG8nKTtcblxuICAgICAgICBvbGRJbkl0ZXJhdGlvbiA9IHN0YXRlLmluSXRlcmF0aW9uO1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IHRydWU7XG5cbiAgICAgICAgYm9keSA9IHBhcnNlU3RhdGVtZW50KCk7XG5cbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCd3aGlsZScpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBpZiAobWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hEb1doaWxlU3RhdGVtZW50KGJvZHksIHRlc3QpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlV2hpbGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgdGVzdCwgYm9keSwgb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnd2hpbGUnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICB0ZXN0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgb2xkSW5JdGVyYXRpb24gPSBzdGF0ZS5pbkl0ZXJhdGlvbjtcbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSB0cnVlO1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZVN0YXRlbWVudCgpO1xuXG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoV2hpbGVTdGF0ZW1lbnQodGVzdCwgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VGb3JTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgaW5pdCwgaW5pdFNlcSwgaW5pdFN0YXJ0VG9rZW4sIHRlc3QsIHVwZGF0ZSwgbGVmdCwgcmlnaHQsIGtpbmQsIGRlY2xhcmF0aW9ucyxcbiAgICAgICAgICAgIGJvZHksIG9sZEluSXRlcmF0aW9uLCBwcmV2aW91c0FsbG93SW4gPSBzdGF0ZS5hbGxvd0luO1xuXG4gICAgICAgIGluaXQgPSB0ZXN0ID0gdXBkYXRlID0gbnVsbDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdmb3InKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAobWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCd2YXInKSkge1xuICAgICAgICAgICAgICAgIGluaXQgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbml0LmZpbmlzaFZhcmlhYmxlRGVjbGFyYXRpb24ocGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCgpKTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluaXQuZGVjbGFyYXRpb25zLmxlbmd0aCA9PT0gMSAmJiBtYXRjaEtleXdvcmQoJ2luJykpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJzsnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoS2V5d29yZCgnY29uc3QnKSB8fCBtYXRjaEtleXdvcmQoJ2xldCcpKSB7XG4gICAgICAgICAgICAgICAgaW5pdCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAga2luZCA9IGxleCgpLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9ucyA9IHBhcnNlQmluZGluZ0xpc3Qoa2luZCwge2luRm9yOiB0cnVlfSk7XG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHByZXZpb3VzQWxsb3dJbjtcblxuICAgICAgICAgICAgICAgIGlmIChkZWNsYXJhdGlvbnMubGVuZ3RoID09PSAxICYmIGRlY2xhcmF0aW9uc1swXS5pbml0ID09PSBudWxsICYmIG1hdGNoS2V5d29yZCgnaW4nKSkge1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gaW5pdC5maW5pc2hMZXhpY2FsRGVjbGFyYXRpb24oZGVjbGFyYXRpb25zLCBraW5kKTtcbiAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSBpbml0LmZpbmlzaExleGljYWxEZWNsYXJhdGlvbihkZWNsYXJhdGlvbnMsIGtpbmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5pdFN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIHN0YXRlLmFsbG93SW4gPSBwcmV2aW91c0FsbG93SW47XG5cbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdpbicpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkludmFsaWRMSFNJbkZvckluKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oaW5pdCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFNlcSA9IFtpbml0XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFNlcS5wdXNoKGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCA9IG5ldyBXcmFwcGluZ05vZGUoaW5pdFN0YXJ0VG9rZW4pLmZpbmlzaFNlcXVlbmNlRXhwcmVzc2lvbihpbml0U2VxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJzsnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGxlZnQgPT09ICd1bmRlZmluZWQnKSB7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4cGVjdCgnOycpO1xuXG4gICAgICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGUgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIG9sZEluSXRlcmF0aW9uID0gc3RhdGUuaW5JdGVyYXRpb247XG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gdHJ1ZTtcblxuICAgICAgICBib2R5ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZVN0YXRlbWVudCk7XG5cbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICByZXR1cm4gKHR5cGVvZiBsZWZ0ID09PSAndW5kZWZpbmVkJykgP1xuICAgICAgICAgICAgICAgIG5vZGUuZmluaXNoRm9yU3RhdGVtZW50KGluaXQsIHRlc3QsIHVwZGF0ZSwgYm9keSkgOlxuICAgICAgICAgICAgICAgIG5vZGUuZmluaXNoRm9ySW5TdGF0ZW1lbnQobGVmdCwgcmlnaHQsIGJvZHkpO1xuICAgIH1cblxuICAgIC8vIDEyLjcgVGhlIGNvbnRpbnVlIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb250aW51ZVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBsYWJlbCA9IG51bGwsIGtleTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdjb250aW51ZScpO1xuXG4gICAgICAgIC8vIE9wdGltaXplIHRoZSBtb3N0IGNvbW1vbiBmb3JtOiAnY29udGludWU7Jy5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KHN0YXJ0SW5kZXgpID09PSAweDNCKSB7XG4gICAgICAgICAgICBsZXgoKTtcblxuICAgICAgICAgICAgaWYgKCFzdGF0ZS5pbkl0ZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbENvbnRpbnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQ29udGludWVTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIGlmICghc3RhdGUuaW5JdGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxDb250aW51ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaENvbnRpbnVlU3RhdGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBsYWJlbCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG5cbiAgICAgICAgICAgIGtleSA9ICckJyArIGxhYmVsLm5hbWU7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS5sYWJlbFNldCwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuVW5rbm93bkxhYmVsLCBsYWJlbC5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICBpZiAobGFiZWwgPT09IG51bGwgJiYgIXN0YXRlLmluSXRlcmF0aW9uKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxDb250aW51ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hDb250aW51ZVN0YXRlbWVudChsYWJlbCk7XG4gICAgfVxuXG4gICAgLy8gMTIuOCBUaGUgYnJlYWsgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUJyZWFrU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGxhYmVsID0gbnVsbCwga2V5O1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2JyZWFrJyk7XG5cbiAgICAgICAgLy8gQ2F0Y2ggdGhlIHZlcnkgY29tbW9uIGNhc2UgZmlyc3Q6IGltbWVkaWF0ZWx5IGEgc2VtaWNvbG9uIChVKzAwM0IpLlxuICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQobGFzdEluZGV4KSA9PT0gMHgzQikge1xuICAgICAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgICAgIGlmICghKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbEJyZWFrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIGlmICghKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbEJyZWFrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGxhYmVsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICAgICAga2V5ID0gJyQnICsgbGFiZWwubmFtZTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLmxhYmVsU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Vbmtub3duTGFiZWwsIGxhYmVsLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIGlmIChsYWJlbCA9PT0gbnVsbCAmJiAhKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsQnJlYWspO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobGFiZWwpO1xuICAgIH1cblxuICAgIC8vIDEyLjkgVGhlIHJldHVybiBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlUmV0dXJuU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGFyZ3VtZW50ID0gbnVsbDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdyZXR1cm4nKTtcblxuICAgICAgICBpZiAoIXN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLklsbGVnYWxSZXR1cm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gJ3JldHVybicgZm9sbG93ZWQgYnkgYSBzcGFjZSBhbmQgYW4gaWRlbnRpZmllciBpcyB2ZXJ5IGNvbW1vbi5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KGxhc3RJbmRleCkgPT09IDB4MjApIHtcbiAgICAgICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChzb3VyY2UuY2hhckNvZGVBdChsYXN0SW5kZXggKyAxKSkpIHtcbiAgICAgICAgICAgICAgICBhcmd1bWVudCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0xpbmVUZXJtaW5hdG9yKSB7XG4gICAgICAgICAgICAvLyBIQUNLXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoKCc7JykpIHtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJ30nKSAmJiBsb29rYWhlYWQudHlwZSAhPT0gVG9rZW4uRU9GKSB7XG4gICAgICAgICAgICAgICAgYXJndW1lbnQgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIC8vIDEyLjEwIFRoZSB3aXRoIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VXaXRoU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIG9iamVjdCwgYm9keTtcblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLlN0cmljdE1vZGVXaXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3dpdGgnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBvYmplY3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hXaXRoU3RhdGVtZW50KG9iamVjdCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gMTIuMTAgVGhlIHN3aXRoIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VTd2l0Y2hDYXNlKCkge1xuICAgICAgICB2YXIgdGVzdCwgY29uc2VxdWVudCA9IFtdLCBzdGF0ZW1lbnQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2RlZmF1bHQnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB0ZXN0ID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cGVjdEtleXdvcmQoJ2Nhc2UnKTtcbiAgICAgICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJzonKTtcblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCd9JykgfHwgbWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykgfHwgbWF0Y2hLZXl3b3JkKCdjYXNlJykpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKTtcbiAgICAgICAgICAgIGNvbnNlcXVlbnQucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoU3dpdGNoQ2FzZSh0ZXN0LCBjb25zZXF1ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVN3aXRjaFN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBkaXNjcmltaW5hbnQsIGNhc2VzLCBjbGF1c2UsIG9sZEluU3dpdGNoLCBkZWZhdWx0Rm91bmQ7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnc3dpdGNoJyk7XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgZGlzY3JpbWluYW50ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgZXhwZWN0KCd7Jyk7XG5cbiAgICAgICAgY2FzZXMgPSBbXTtcblxuICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hTd2l0Y2hTdGF0ZW1lbnQoZGlzY3JpbWluYW50LCBjYXNlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRJblN3aXRjaCA9IHN0YXRlLmluU3dpdGNoO1xuICAgICAgICBzdGF0ZS5pblN3aXRjaCA9IHRydWU7XG4gICAgICAgIGRlZmF1bHRGb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2xhdXNlID0gcGFyc2VTd2l0Y2hDYXNlKCk7XG4gICAgICAgICAgICBpZiAoY2xhdXNlLnRlc3QgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTXVsdGlwbGVEZWZhdWx0c0luU3dpdGNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2VzLnB1c2goY2xhdXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLmluU3dpdGNoID0gb2xkSW5Td2l0Y2g7XG5cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoU3dpdGNoU3RhdGVtZW50KGRpc2NyaW1pbmFudCwgY2FzZXMpO1xuICAgIH1cblxuICAgIC8vIDEyLjEzIFRoZSB0aHJvdyBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlVGhyb3dTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYXJndW1lbnQ7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgndGhyb3cnKTtcblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTmV3bGluZUFmdGVyVGhyb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJndW1lbnQgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoVGhyb3dTdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIC8vIDEyLjE0IFRoZSB0cnkgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNhdGNoQ2xhdXNlKCkge1xuICAgICAgICB2YXIgcGFyYW0sIGJvZHksIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2NhdGNoJyk7XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG4gICAgICAgIGlmIChtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyYW0gPSBwYXJzZVBhdHRlcm4oKTtcblxuICAgICAgICAvLyAxMi4xNC4xXG4gICAgICAgIGlmIChzdHJpY3QgJiYgaXNSZXN0cmljdGVkV29yZChwYXJhbS5uYW1lKSkge1xuICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RDYXRjaFZhcmlhYmxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuICAgICAgICBib2R5ID0gcGFyc2VCbG9jaygpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hDYXRjaENsYXVzZShwYXJhbSwgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VUcnlTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYmxvY2ssIGhhbmRsZXIgPSBudWxsLCBmaW5hbGl6ZXIgPSBudWxsO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3RyeScpO1xuXG4gICAgICAgIGJsb2NrID0gcGFyc2VCbG9jaygpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2NhdGNoJykpIHtcbiAgICAgICAgICAgIGhhbmRsZXIgPSBwYXJzZUNhdGNoQ2xhdXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdmaW5hbGx5JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgZmluYWxpemVyID0gcGFyc2VCbG9jaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFoYW5kbGVyICYmICFmaW5hbGl6ZXIpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTm9DYXRjaE9yRmluYWxseSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUcnlTdGF0ZW1lbnQoYmxvY2ssIGhhbmRsZXIsIGZpbmFsaXplcik7XG4gICAgfVxuXG4gICAgLy8gMTIuMTUgVGhlIGRlYnVnZ2VyIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VEZWJ1Z2dlclN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2RlYnVnZ2VyJyk7XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaERlYnVnZ2VyU3RhdGVtZW50KCk7XG4gICAgfVxuXG4gICAgLy8gMTIgU3RhdGVtZW50c1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnQoKSB7XG4gICAgICAgIHZhciB0eXBlID0gbG9va2FoZWFkLnR5cGUsXG4gICAgICAgICAgICBleHByLFxuICAgICAgICAgICAgbGFiZWxlZEJvZHksXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBub2RlO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiBsb29rYWhlYWQudmFsdWUgPT09ICd7Jykge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmxvY2soKTtcbiAgICAgICAgfVxuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09IFRva2VuLlB1bmN0dWF0b3IpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICc7JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFbXB0eVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJygnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICdicmVhayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQnJlYWtTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdjb250aW51ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29udGludWVTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdkZWJ1Z2dlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRGVidWdnZXJTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdkbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRG9XaGlsZVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ2Zvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRm9yU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgICAgICBjYXNlICdpZic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSWZTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdyZXR1cm4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJldHVyblN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlU3dpdGNoU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAndGhyb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRocm93U3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAndHJ5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VUcnlTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICd2YXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVZhcmlhYmxlU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnd2hpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVdoaWxlU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnd2l0aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlV2l0aFN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHByID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgLy8gMTIuMTIgTGFiZWxsZWQgU3RhdGVtZW50c1xuICAgICAgICBpZiAoKGV4cHIudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIpICYmIG1hdGNoKCc6JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICBrZXkgPSAnJCcgKyBleHByLm5hbWU7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLmxhYmVsU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5SZWRlY2xhcmF0aW9uLCAnTGFiZWwnLCBleHByLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZS5sYWJlbFNldFtrZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIGxhYmVsZWRCb2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTtcbiAgICAgICAgICAgIGRlbGV0ZSBzdGF0ZS5sYWJlbFNldFtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoTGFiZWxlZFN0YXRlbWVudChleHByLCBsYWJlbGVkQm9keSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudChleHByKTtcbiAgICB9XG5cbiAgICAvLyAxMyBGdW5jdGlvbiBEZWZpbml0aW9uXG5cbiAgICBmdW5jdGlvbiBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKSB7XG4gICAgICAgIHZhciBzdGF0ZW1lbnQsIGJvZHkgPSBbXSwgdG9rZW4sIGRpcmVjdGl2ZSwgZmlyc3RSZXN0cmljdGVkLFxuICAgICAgICAgICAgb2xkTGFiZWxTZXQsIG9sZEluSXRlcmF0aW9uLCBvbGRJblN3aXRjaCwgb2xkSW5GdW5jdGlvbkJvZHksIG9sZFBhcmVudGhlc2lzQ291bnQsXG4gICAgICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgYm9keS5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgICAgICBpZiAoc3RhdGVtZW50LmV4cHJlc3Npb24udHlwZSAhPT0gU3ludGF4LkxpdGVyYWwpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCBkaXJlY3RpdmVcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpcmVjdGl2ZSA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCArIDEsIHRva2VuLmVuZCAtIDEpO1xuICAgICAgICAgICAgaWYgKGRpcmVjdGl2ZSA9PT0gJ3VzZSBzdHJpY3QnKSB7XG4gICAgICAgICAgICAgICAgc3RyaWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgTWVzc2FnZXMuU3RyaWN0T2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghZmlyc3RSZXN0cmljdGVkICYmIHRva2VuLm9jdGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG9sZExhYmVsU2V0ID0gc3RhdGUubGFiZWxTZXQ7XG4gICAgICAgIG9sZEluSXRlcmF0aW9uID0gc3RhdGUuaW5JdGVyYXRpb247XG4gICAgICAgIG9sZEluU3dpdGNoID0gc3RhdGUuaW5Td2l0Y2g7XG4gICAgICAgIG9sZEluRnVuY3Rpb25Cb2R5ID0gc3RhdGUuaW5GdW5jdGlvbkJvZHk7XG4gICAgICAgIG9sZFBhcmVudGhlc2lzQ291bnQgPSBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQ7XG5cbiAgICAgICAgc3RhdGUubGFiZWxTZXQgPSB7fTtcbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaW5Td2l0Y2ggPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaW5GdW5jdGlvbkJvZHkgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQgPSAwO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9keS5wdXNoKHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ30nKTtcblxuICAgICAgICBzdGF0ZS5sYWJlbFNldCA9IG9sZExhYmVsU2V0O1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IG9sZEluSXRlcmF0aW9uO1xuICAgICAgICBzdGF0ZS5pblN3aXRjaCA9IG9sZEluU3dpdGNoO1xuICAgICAgICBzdGF0ZS5pbkZ1bmN0aW9uQm9keSA9IG9sZEluRnVuY3Rpb25Cb2R5O1xuICAgICAgICBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQgPSBvbGRQYXJlbnRoZXNpc0NvdW50O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEJsb2NrU3RhdGVtZW50KGJvZHkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlUGFyYW0ob3B0aW9ucywgcGFyYW0sIG5hbWUpIHtcbiAgICAgICAgdmFyIGtleSA9ICckJyArIG5hbWU7XG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgIGlmIChpc1Jlc3RyaWN0ZWRXb3JkKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFBhcmFtTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucy5wYXJhbVNldCwga2V5KSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuc3RyaWN0ZWQgPSBwYXJhbTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSBNZXNzYWdlcy5TdHJpY3RQYXJhbUR1cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkV29yZChuYW1lKSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlyc3RSZXN0cmljdGVkID0gcGFyYW07XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5tZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UGFyYW1OYW1lO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMucGFyYW1TZXQsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFBhcmFtRHVwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zLnBhcmFtU2V0W2tleV0gPSB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGFyYW0ob3B0aW9ucykge1xuICAgICAgICB2YXIgdG9rZW4sIHBhcmFtLCBkZWY7XG5cbiAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgIGlmICh0b2tlbi52YWx1ZSA9PT0gJy4uLicpIHtcbiAgICAgICAgICAgIHBhcmFtID0gcGFyc2VSZXN0RWxlbWVudCgpO1xuICAgICAgICAgICAgdmFsaWRhdGVQYXJhbShvcHRpb25zLCBwYXJhbS5hcmd1bWVudCwgcGFyYW0uYXJndW1lbnQubmFtZSk7XG4gICAgICAgICAgICBvcHRpb25zLnBhcmFtcy5wdXNoKHBhcmFtKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZGVmYXVsdHMucHVzaChudWxsKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtID0gcGFyc2VQYXR0ZXJuV2l0aERlZmF1bHQoKTtcbiAgICAgICAgdmFsaWRhdGVQYXJhbShvcHRpb25zLCB0b2tlbiwgdG9rZW4udmFsdWUpO1xuXG4gICAgICAgIGlmIChwYXJhbS50eXBlID09PSBTeW50YXguQXNzaWdubWVudFBhdHRlcm4pIHtcbiAgICAgICAgICAgIGRlZiA9IHBhcmFtLnJpZ2h0O1xuICAgICAgICAgICAgcGFyYW0gPSBwYXJhbS5sZWZ0O1xuICAgICAgICAgICAgKytvcHRpb25zLmRlZmF1bHRDb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMucGFyYW1zLnB1c2gocGFyYW0pO1xuICAgICAgICBvcHRpb25zLmRlZmF1bHRzLnB1c2goZGVmKTtcblxuICAgICAgICByZXR1cm4gIW1hdGNoKCcpJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQYXJhbXMoZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgIHZhciBvcHRpb25zO1xuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgZGVmYXVsdENvdW50OiAwLFxuICAgICAgICAgICAgZGVmYXVsdHM6IFtdLFxuICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBmaXJzdFJlc3RyaWN0ZWRcbiAgICAgICAgfTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMucGFyYW1TZXQgPSB7fTtcbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJzZVBhcmFtKG9wdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmRlZmF1bHRDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgb3B0aW9ucy5kZWZhdWx0cyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucy5wYXJhbXMsXG4gICAgICAgICAgICBkZWZhdWx0czogb3B0aW9ucy5kZWZhdWx0cyxcbiAgICAgICAgICAgIHN0cmljdGVkOiBvcHRpb25zLnN0cmljdGVkLFxuICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMubWVzc2FnZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25EZWNsYXJhdGlvbihub2RlLCBpZGVudGlmaWVySXNPcHRpb25hbCkge1xuICAgICAgICB2YXIgaWQgPSBudWxsLCBwYXJhbXMgPSBbXSwgZGVmYXVsdHMgPSBbXSwgYm9keSwgdG9rZW4sIHN0cmljdGVkLCB0bXAsIGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSwgcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZnVuY3Rpb24nKTtcbiAgICAgICAgaWYgKCFpZGVudGlmaWVySXNPcHRpb25hbCB8fCAhbWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0RnVuY3Rpb25OYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpY3RNb2RlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0bXAgPSBwYXJzZVBhcmFtcyhmaXJzdFJlc3RyaWN0ZWQpO1xuICAgICAgICBwYXJhbXMgPSB0bXAucGFyYW1zO1xuICAgICAgICBkZWZhdWx0cyA9IHRtcC5kZWZhdWx0cztcbiAgICAgICAgc3RyaWN0ZWQgPSB0bXAuc3RyaWN0ZWQ7XG4gICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRtcC5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgIGlmICh0bXAubWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRtcC5tZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIGJvZHkgPSBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiBmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBzdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oc3RyaWN0ZWQsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEZ1bmN0aW9uRGVjbGFyYXRpb24oaWQsIHBhcmFtcywgZGVmYXVsdHMsIGJvZHkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25FeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdG9rZW4sIGlkID0gbnVsbCwgc3RyaWN0ZWQsIGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSwgdG1wLFxuICAgICAgICAgICAgcGFyYW1zID0gW10sIGRlZmF1bHRzID0gW10sIGJvZHksIHByZXZpb3VzU3RyaWN0LCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdmdW5jdGlvbicpO1xuXG4gICAgICAgIGlmICghbWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0RnVuY3Rpb25OYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpY3RNb2RlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0bXAgPSBwYXJzZVBhcmFtcyhmaXJzdFJlc3RyaWN0ZWQpO1xuICAgICAgICBwYXJhbXMgPSB0bXAucGFyYW1zO1xuICAgICAgICBkZWZhdWx0cyA9IHRtcC5kZWZhdWx0cztcbiAgICAgICAgc3RyaWN0ZWQgPSB0bXAuc3RyaWN0ZWQ7XG4gICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRtcC5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgIGlmICh0bXAubWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRtcC5tZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIGJvZHkgPSBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiBmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBzdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oc3RyaWN0ZWQsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEZ1bmN0aW9uRXhwcmVzc2lvbihpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSk7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBwYXJzZUNsYXNzQm9keSgpIHtcbiAgICAgICAgdmFyIGNsYXNzQm9keSwgdG9rZW4sIGlzU3RhdGljLCBoYXNDb25zdHJ1Y3RvciA9IGZhbHNlLCBib2R5LCBtZXRob2QsIGNvbXB1dGVkLCBrZXk7XG5cbiAgICAgICAgY2xhc3NCb2R5ID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcbiAgICAgICAgYm9keSA9IFtdO1xuICAgICAgICB3aGlsZSAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnOycpKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1ldGhvZCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgaXNTdGF0aWMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb21wdXRlZCA9IG1hdGNoKCdbJyk7XG4gICAgICAgICAgICAgICAga2V5ID0gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpO1xuICAgICAgICAgICAgICAgIGlmIChrZXkubmFtZSA9PT0gJ3N0YXRpYycgJiYgbG9va2FoZWFkUHJvcGVydHlOYW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgICAgIGlzU3RhdGljID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWQgPSBtYXRjaCgnWycpO1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1ldGhvZCA9IHRyeVBhcnNlTWV0aG9kRGVmaW5pdGlvbih0b2tlbiwga2V5LCBjb21wdXRlZCwgbWV0aG9kKTtcbiAgICAgICAgICAgICAgICBpZiAobWV0aG9kKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZFsnc3RhdGljJ10gPSBpc1N0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZC5raW5kID09PSAnaW5pdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC5raW5kID0gJ21ldGhvZCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1N0YXRpYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtZXRob2QuY29tcHV0ZWQgJiYgKG1ldGhvZC5rZXkubmFtZSB8fCBtZXRob2Qua2V5LnZhbHVlLnRvU3RyaW5nKCkpID09PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZC5raW5kICE9PSAnbWV0aG9kJyB8fCAhbWV0aG9kLm1ldGhvZCB8fCBtZXRob2QudmFsdWUuZ2VuZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5Db25zdHJ1Y3RvclNwZWNpYWxNZXRob2QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLkR1cGxpY2F0ZUNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNDb25zdHJ1Y3RvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC5raW5kID0gJ2NvbnN0cnVjdG9yJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWV0aG9kLmNvbXB1dGVkICYmIChtZXRob2Qua2V5Lm5hbWUgfHwgbWV0aG9kLmtleS52YWx1ZS50b1N0cmluZygpKSA9PT0gJ3Byb3RvdHlwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuU3RhdGljUHJvdG90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtZXRob2QudHlwZSA9IFN5bnRheC5NZXRob2REZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbWV0aG9kLm1ldGhvZDtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1ldGhvZC5zaG9ydGhhbmQ7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkucHVzaChtZXRob2QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICByZXR1cm4gY2xhc3NCb2R5LmZpbmlzaENsYXNzQm9keShib2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNsYXNzRGVjbGFyYXRpb24oaWRlbnRpZmllcklzT3B0aW9uYWwpIHtcbiAgICAgICAgdmFyIGlkID0gbnVsbCwgc3VwZXJDbGFzcyA9IG51bGwsIGNsYXNzTm9kZSA9IG5ldyBOb2RlKCksIGNsYXNzQm9keSwgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIHN0cmljdCA9IHRydWU7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnY2xhc3MnKTtcblxuICAgICAgICBpZiAoIWlkZW50aWZpZXJJc09wdGlvbmFsIHx8IGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdleHRlbmRzJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgc3VwZXJDbGFzcyA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjbGFzc0JvZHkgPSBwYXJzZUNsYXNzQm9keSgpO1xuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICByZXR1cm4gY2xhc3NOb2RlLmZpbmlzaENsYXNzRGVjbGFyYXRpb24oaWQsIHN1cGVyQ2xhc3MsIGNsYXNzQm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VDbGFzc0V4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBpZCA9IG51bGwsIHN1cGVyQ2xhc3MgPSBudWxsLCBjbGFzc05vZGUgPSBuZXcgTm9kZSgpLCBjbGFzc0JvZHksIHByZXZpb3VzU3RyaWN0ID0gc3RyaWN0O1xuICAgICAgICBzdHJpY3QgPSB0cnVlO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2NsYXNzJyk7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdleHRlbmRzJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgc3VwZXJDbGFzcyA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjbGFzc0JvZHkgPSBwYXJzZUNsYXNzQm9keSgpO1xuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICByZXR1cm4gY2xhc3NOb2RlLmZpbmlzaENsYXNzRXhwcmVzc2lvbihpZCwgc3VwZXJDbGFzcywgY2xhc3NCb2R5KTtcbiAgICB9XG5cbiAgICAvLyBNb2R1bGVzIGdyYW1tYXIgZnJvbTpcbiAgICAvLyBwZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWxcblxuICAgIGZ1bmN0aW9uIHBhcnNlTW9kdWxlU3BlY2lmaWVyKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLkludmFsaWRNb2R1bGVTcGVjaWZpZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaExpdGVyYWwobGV4KCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0U3BlY2lmaWVyKCkge1xuICAgICAgICB2YXIgZXhwb3J0ZWQsIGxvY2FsLCBub2RlID0gbmV3IE5vZGUoKSwgZGVmO1xuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykpIHtcbiAgICAgICAgICAgIC8vIGV4cG9ydCB7ZGVmYXVsdH0gZnJvbSAnc29tZXRoaW5nJztcbiAgICAgICAgICAgIGRlZiA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGxvY2FsID0gZGVmLmZpbmlzaElkZW50aWZpZXIoJ2RlZmF1bHQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvY2FsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnYXMnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBleHBvcnRlZCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydFNwZWNpZmllcihsb2NhbCwgZXhwb3J0ZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0TmFtZWREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIHZhciBkZWNsYXJhdGlvbiA9IG51bGwsXG4gICAgICAgICAgICBpc0V4cG9ydEZyb21JZGVudGlmaWVyLFxuICAgICAgICAgICAgc3JjID0gbnVsbCwgc3BlY2lmaWVycyA9IFtdO1xuXG4gICAgICAgIC8vIG5vbi1kZWZhdWx0IGV4cG9ydFxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGV4cG9ydCB2YXIgZiA9IDE7XG4gICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xldCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnY29uc3QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3Zhcic6XG4gICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBwYXJzZVN0YXRlbWVudExpc3RJdGVtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydE5hbWVkRGVjbGFyYXRpb24oZGVjbGFyYXRpb24sIHNwZWNpZmllcnMsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0KCd7Jyk7XG4gICAgICAgIGlmICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGlzRXhwb3J0RnJvbUlkZW50aWZpZXIgPSBpc0V4cG9ydEZyb21JZGVudGlmaWVyIHx8IG1hdGNoS2V5d29yZCgnZGVmYXVsdCcpO1xuICAgICAgICAgICAgICAgIHNwZWNpZmllcnMucHVzaChwYXJzZUV4cG9ydFNwZWNpZmllcigpKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKG1hdGNoKCcsJykgJiYgbGV4KCkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdmcm9tJykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyaW5nOlxuICAgICAgICAgICAgLy8gZXhwb3J0IHtkZWZhdWx0fSBmcm9tICdmb28nO1xuICAgICAgICAgICAgLy8gZXhwb3J0IHtmb299IGZyb20gJ2Zvbyc7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHNyYyA9IHBhcnNlTW9kdWxlU3BlY2lmaWVyKCk7XG4gICAgICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFeHBvcnRGcm9tSWRlbnRpZmllcikge1xuICAgICAgICAgICAgLy8gY292ZXJpbmc6XG4gICAgICAgICAgICAvLyBleHBvcnQge2RlZmF1bHR9OyAvLyBtaXNzaW5nIGZyb21DbGF1c2VcbiAgICAgICAgICAgIHRocm93RXJyb3IobG9va2FoZWFkLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuIDogTWVzc2FnZXMuTWlzc2luZ0Zyb21DbGF1c2UsIGxvb2thaGVhZC52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjb3ZlclxuICAgICAgICAgICAgLy8gZXhwb3J0IHtmb299O1xuICAgICAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydE5hbWVkRGVjbGFyYXRpb24oZGVjbGFyYXRpb24sIHNwZWNpZmllcnMsIHNyYyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb24gPSBudWxsLFxuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IG51bGw7XG5cbiAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCAuLi5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZGVmYXVsdCcpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvbyAoKSB7fVxuICAgICAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKCkge31cbiAgICAgICAgICAgIGRlY2xhcmF0aW9uID0gcGFyc2VGdW5jdGlvbkRlY2xhcmF0aW9uKG5ldyBOb2RlKCksIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdjbGFzcycpKSB7XG4gICAgICAgICAgICBkZWNsYXJhdGlvbiA9IHBhcnNlQ2xhc3NEZWNsYXJhdGlvbih0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihkZWNsYXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiwgbG9va2FoZWFkLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQge307XG4gICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0IFtdO1xuICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCAoMSArIDIpO1xuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IHBhcnNlT2JqZWN0SW5pdGlhbGlzZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gcGFyc2VBcnJheUluaXRpYWxpc2VyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKGV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0QWxsRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICB2YXIgc3JjO1xuXG4gICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgLy8gZXhwb3J0ICogZnJvbSAnZm9vJztcbiAgICAgICAgZXhwZWN0KCcqJyk7XG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKGxvb2thaGVhZC52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiA6IE1lc3NhZ2VzLk1pc3NpbmdGcm9tQ2xhdXNlLCBsb29rYWhlYWQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBzcmMgPSBwYXJzZU1vZHVsZVNwZWNpZmllcigpO1xuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0QWxsRGVjbGFyYXRpb24oc3JjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgIGlmIChzdGF0ZS5pbkZ1bmN0aW9uQm9keSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsRXhwb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZXhwb3J0Jyk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZGVmYXVsdCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKCcqJykpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cG9ydEFsbERlY2xhcmF0aW9uKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZUV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnRTcGVjaWZpZXIoKSB7XG4gICAgICAgIC8vIGltcG9ydCB7PGZvbyBhcyBiYXI+fSAuLi47XG4gICAgICAgIHZhciBsb2NhbCwgaW1wb3J0ZWQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGltcG9ydGVkID0gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdhcycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGxvY2FsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydFNwZWNpZmllcihsb2NhbCwgaW1wb3J0ZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTmFtZWRJbXBvcnRzKCkge1xuICAgICAgICB2YXIgc3BlY2lmaWVycyA9IFtdO1xuICAgICAgICAvLyB7Zm9vLCBiYXIgYXMgYmFzfVxuICAgICAgICBleHBlY3QoJ3snKTtcbiAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgc3BlY2lmaWVycy5wdXNoKHBhcnNlSW1wb3J0U3BlY2lmaWVyKCkpO1xuICAgICAgICAgICAgfSB3aGlsZSAobWF0Y2goJywnKSAmJiBsZXgoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG4gICAgICAgIHJldHVybiBzcGVjaWZpZXJzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSW1wb3J0RGVmYXVsdFNwZWNpZmllcigpIHtcbiAgICAgICAgLy8gaW1wb3J0IDxmb28+IC4uLjtcbiAgICAgICAgdmFyIGxvY2FsLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBsb2NhbCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydERlZmF1bHRTcGVjaWZpZXIobG9jYWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKCkge1xuICAgICAgICAvLyBpbXBvcnQgPCogYXMgZm9vPiAuLi47XG4gICAgICAgIHZhciBsb2NhbCwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgZXhwZWN0KCcqJyk7XG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnYXMnKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Ob0FzQWZ0ZXJJbXBvcnROYW1lc3BhY2UpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBsb2NhbCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydE5hbWVzcGFjZVNwZWNpZmllcihsb2NhbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnREZWNsYXJhdGlvbigpIHtcbiAgICAgICAgdmFyIHNwZWNpZmllcnMsIHNyYywgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKHN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxJbXBvcnREZWNsYXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdpbXBvcnQnKTtcbiAgICAgICAgc3BlY2lmaWVycyA9IFtdO1xuXG4gICAgICAgIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uU3RyaW5nTGl0ZXJhbCkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0ICdmb28nO1xuICAgICAgICAgICAgc3JjID0gcGFyc2VNb2R1bGVTcGVjaWZpZXIoKTtcbiAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydERlY2xhcmF0aW9uKHNwZWNpZmllcnMsIHNyYyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoS2V5d29yZCgnZGVmYXVsdCcpICYmIGlzSWRlbnRpZmllck5hbWUobG9va2FoZWFkKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0IGZvb1xuICAgICAgICAgICAgLy8gaW1wb3J0IGZvbywgLi4uXG4gICAgICAgICAgICBzcGVjaWZpZXJzLnB1c2gocGFyc2VJbXBvcnREZWZhdWx0U3BlY2lmaWVyKCkpO1xuICAgICAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2goJyonKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0IGZvbywgKiBhcyBmb29cbiAgICAgICAgICAgIC8vIGltcG9ydCAqIGFzIGZvb1xuICAgICAgICAgICAgc3BlY2lmaWVycy5wdXNoKHBhcnNlSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGltcG9ydCBmb28sIHtiYXJ9XG4gICAgICAgICAgICAvLyBpbXBvcnQge2Jhcn1cbiAgICAgICAgICAgIHNwZWNpZmllcnMgPSBzcGVjaWZpZXJzLmNvbmNhdChwYXJzZU5hbWVkSW1wb3J0cygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKGxvb2thaGVhZC52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiA6IE1lc3NhZ2VzLk1pc3NpbmdGcm9tQ2xhdXNlLCBsb29rYWhlYWQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBzcmMgPSBwYXJzZU1vZHVsZVNwZWNpZmllcigpO1xuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSW1wb3J0RGVjbGFyYXRpb24oc3BlY2lmaWVycywgc3JjKTtcbiAgICB9XG5cbiAgICAvLyAxNCBQcm9ncmFtXG5cbiAgICBmdW5jdGlvbiBwYXJzZVNjcmlwdEJvZHkoKSB7XG4gICAgICAgIHZhciBzdGF0ZW1lbnQsIGJvZHkgPSBbXSwgdG9rZW4sIGRpcmVjdGl2ZSwgZmlyc3RSZXN0cmljdGVkO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKTtcbiAgICAgICAgICAgIGJvZHkucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHN0YXRlbWVudC5leHByZXNzaW9uLnR5cGUgIT09IFN5bnRheC5MaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgZGlyZWN0aXZlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXJlY3RpdmUgPSBzb3VyY2Uuc2xpY2UodG9rZW4uc3RhcnQgKyAxLCB0b2tlbi5lbmQgLSAxKTtcbiAgICAgICAgICAgIGlmIChkaXJlY3RpdmUgPT09ICd1c2Ugc3RyaWN0Jykge1xuICAgICAgICAgICAgICAgIHN0cmljdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihmaXJzdFJlc3RyaWN0ZWQsIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0UmVzdHJpY3RlZCAmJiB0b2tlbi5vY3RhbCkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICBpZiAodHlwZW9mIHN0YXRlbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJvZHkucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib2R5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvZ3JhbSgpIHtcbiAgICAgICAgdmFyIGJvZHksIG5vZGU7XG5cbiAgICAgICAgcGVlaygpO1xuICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBib2R5ID0gcGFyc2VTY3JpcHRCb2R5KCk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb2dyYW0oYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmlsdGVyVG9rZW5Mb2NhdGlvbigpIHtcbiAgICAgICAgdmFyIGksIGVudHJ5LCB0b2tlbiwgdG9rZW5zID0gW107XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4dHJhLnRva2Vucy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgZW50cnkgPSBleHRyYS50b2tlbnNbaV07XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlbnRyeS50eXBlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlbnRyeS52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChlbnRyeS5yZWdleCkge1xuICAgICAgICAgICAgICAgIHRva2VuLnJlZ2V4ID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBlbnRyeS5yZWdleC5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogZW50cnkucmVnZXguZmxhZ3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4dHJhLnJhbmdlKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucmFuZ2UgPSBlbnRyeS5yYW5nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChleHRyYS5sb2MpIHtcbiAgICAgICAgICAgICAgICB0b2tlbi5sb2MgPSBlbnRyeS5sb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBleHRyYS50b2tlbnMgPSB0b2tlbnM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9rZW5pemUoY29kZSwgb3B0aW9ucykge1xuICAgICAgICB2YXIgdG9TdHJpbmcsXG4gICAgICAgICAgICB0b2tlbnM7XG5cbiAgICAgICAgdG9TdHJpbmcgPSBTdHJpbmc7XG4gICAgICAgIGlmICh0eXBlb2YgY29kZSAhPT0gJ3N0cmluZycgJiYgIShjb2RlIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgY29kZSA9IHRvU3RyaW5nKGNvZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc291cmNlID0gY29kZTtcbiAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICBsaW5lTnVtYmVyID0gKHNvdXJjZS5sZW5ndGggPiAwKSA/IDEgOiAwO1xuICAgICAgICBsaW5lU3RhcnQgPSAwO1xuICAgICAgICBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHN0YXJ0TGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG4gICAgICAgIHN0YXJ0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuICAgICAgICBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICBsb29rYWhlYWQgPSBudWxsO1xuICAgICAgICBzdGF0ZSA9IHtcbiAgICAgICAgICAgIGFsbG93SW46IHRydWUsXG4gICAgICAgICAgICBsYWJlbFNldDoge30sXG4gICAgICAgICAgICBpbkZ1bmN0aW9uQm9keTogZmFsc2UsXG4gICAgICAgICAgICBpbkl0ZXJhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBpblN3aXRjaDogZmFsc2UsXG4gICAgICAgICAgICBsYXN0Q29tbWVudFN0YXJ0OiAtMSxcbiAgICAgICAgICAgIGN1cmx5U3RhY2s6IFtdXG4gICAgICAgIH07XG5cbiAgICAgICAgZXh0cmEgPSB7fTtcblxuICAgICAgICAvLyBPcHRpb25zIG1hdGNoaW5nLlxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICAvLyBPZiBjb3Vyc2Ugd2UgY29sbGVjdCB0b2tlbnMgaGVyZS5cbiAgICAgICAgb3B0aW9ucy50b2tlbnMgPSB0cnVlO1xuICAgICAgICBleHRyYS50b2tlbnMgPSBbXTtcbiAgICAgICAgZXh0cmEudG9rZW5pemUgPSB0cnVlO1xuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHR3byBmaWVsZHMgYXJlIG5lY2Vzc2FyeSB0byBjb21wdXRlIHRoZSBSZWdleCB0b2tlbnMuXG4gICAgICAgIGV4dHJhLm9wZW5QYXJlblRva2VuID0gLTE7XG4gICAgICAgIGV4dHJhLm9wZW5DdXJseVRva2VuID0gLTE7XG5cbiAgICAgICAgZXh0cmEucmFuZ2UgPSAodHlwZW9mIG9wdGlvbnMucmFuZ2UgPT09ICdib29sZWFuJykgJiYgb3B0aW9ucy5yYW5nZTtcbiAgICAgICAgZXh0cmEubG9jID0gKHR5cGVvZiBvcHRpb25zLmxvYyA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmxvYztcblxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY29tbWVudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMuY29tbWVudCkge1xuICAgICAgICAgICAgZXh0cmEuY29tbWVudHMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudG9sZXJhbnQgPT09ICdib29sZWFuJyAmJiBvcHRpb25zLnRvbGVyYW50KSB7XG4gICAgICAgICAgICBleHRyYS5lcnJvcnMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwZWVrKCk7XG4gICAgICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLkVPRikge1xuICAgICAgICAgICAgICAgIHJldHVybiBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgd2hpbGUgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChsZXhFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXh0cmEuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRFcnJvcihsZXhFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGJyZWFrIG9uIHRoZSBmaXJzdCBlcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYXZvaWQgaW5maW5pdGUgbG9vcHMuXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGxleEVycm9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJUb2tlbkxvY2F0aW9uKCk7XG4gICAgICAgICAgICB0b2tlbnMgPSBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmNvbW1lbnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHRva2Vucy5jb21tZW50cyA9IGV4dHJhLmNvbW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS5lcnJvcnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdG9rZW5zLmVycm9ycyA9IGV4dHJhLmVycm9ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGV4dHJhID0ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VucztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZShjb2RlLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBwcm9ncmFtLCB0b1N0cmluZztcblxuICAgICAgICB0b1N0cmluZyA9IFN0cmluZztcbiAgICAgICAgaWYgKHR5cGVvZiBjb2RlICE9PSAnc3RyaW5nJyAmJiAhKGNvZGUgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICBjb2RlID0gdG9TdHJpbmcoY29kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzb3VyY2UgPSBjb2RlO1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIGxpbmVOdW1iZXIgPSAoc291cmNlLmxlbmd0aCA+IDApID8gMSA6IDA7XG4gICAgICAgIGxpbmVTdGFydCA9IDA7XG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG4gICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgICAgIGxvb2thaGVhZCA9IG51bGw7XG4gICAgICAgIHN0YXRlID0ge1xuICAgICAgICAgICAgYWxsb3dJbjogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsU2V0OiB7fSxcbiAgICAgICAgICAgIGluRnVuY3Rpb25Cb2R5OiBmYWxzZSxcbiAgICAgICAgICAgIGluSXRlcmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIGluU3dpdGNoOiBmYWxzZSxcbiAgICAgICAgICAgIGxhc3RDb21tZW50U3RhcnQ6IC0xLFxuICAgICAgICAgICAgY3VybHlTdGFjazogW11cbiAgICAgICAgfTtcbiAgICAgICAgc291cmNlVHlwZSA9ICdzY3JpcHQnO1xuICAgICAgICBzdHJpY3QgPSBmYWxzZTtcblxuICAgICAgICBleHRyYSA9IHt9O1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBleHRyYS5yYW5nZSA9ICh0eXBlb2Ygb3B0aW9ucy5yYW5nZSA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLnJhbmdlO1xuICAgICAgICAgICAgZXh0cmEubG9jID0gKHR5cGVvZiBvcHRpb25zLmxvYyA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmxvYztcbiAgICAgICAgICAgIGV4dHJhLmF0dGFjaENvbW1lbnQgPSAodHlwZW9mIG9wdGlvbnMuYXR0YWNoQ29tbWVudCA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmF0dGFjaENvbW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChleHRyYS5sb2MgJiYgb3B0aW9ucy5zb3VyY2UgIT09IG51bGwgJiYgb3B0aW9ucy5zb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLnNvdXJjZSA9IHRvU3RyaW5nKG9wdGlvbnMuc291cmNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRva2VucyA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMudG9rZW5zKSB7XG4gICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY29tbWVudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLmNvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudG9sZXJhbnQgPT09ICdib29sZWFuJyAmJiBvcHRpb25zLnRvbGVyYW50KSB7XG4gICAgICAgICAgICAgICAgZXh0cmEuZXJyb3JzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXh0cmEuYXR0YWNoQ29tbWVudCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLnJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBleHRyYS5jb21tZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIGV4dHJhLmJvdHRvbVJpZ2h0U3RhY2sgPSBbXTtcbiAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICAgICAgZXh0cmEubGVhZGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zb3VyY2VUeXBlID09PSAnbW9kdWxlJykge1xuICAgICAgICAgICAgICAgIC8vIHZlcnkgcmVzdHJpY3RpdmUgY29uZGl0aW9uIGZvciBub3dcbiAgICAgICAgICAgICAgICBzb3VyY2VUeXBlID0gb3B0aW9ucy5zb3VyY2VUeXBlO1xuICAgICAgICAgICAgICAgIHN0cmljdCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcHJvZ3JhbSA9IHBhcnNlUHJvZ3JhbSgpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS5jb21tZW50cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBwcm9ncmFtLmNvbW1lbnRzID0gZXh0cmEuY29tbWVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLnRva2VucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJUb2tlbkxvY2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgcHJvZ3JhbS50b2tlbnMgPSBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmVycm9ycyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBwcm9ncmFtLmVycm9ycyA9IGV4dHJhLmVycm9ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGV4dHJhID0ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJvZ3JhbTtcbiAgICB9XG5cbiAgICAvLyBTeW5jIHdpdGggKi5qc29uIG1hbmlmZXN0cy5cbiAgICBleHBvcnRzLnZlcnNpb24gPSAnMi4yLjAnO1xuXG4gICAgZXhwb3J0cy50b2tlbml6ZSA9IHRva2VuaXplO1xuXG4gICAgZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuXG4gICAgLy8gRGVlcCBjb3B5LlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZXhwb3J0cy5TeW50YXggPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbmFtZSwgdHlwZXMgPSB7fTtcblxuICAgICAgICBpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHR5cGVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobmFtZSBpbiBTeW50YXgpIHtcbiAgICAgICAgICAgIGlmIChTeW50YXguaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0eXBlc1tuYW1lXSA9IFN5bnRheFtuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmZyZWV6ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSh0eXBlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgfSgpKTtcblxufSkpO1xuLyogdmltOiBzZXQgc3c9NCB0cz00IGV0IHR3PTgwIDogKi9cbiIsIi8qIGV4cG9ydGVkIGZpbmRSZWZzLCBpc0pzb25SZWZlcmVuY2UsIGlzUmVtb3RlUG9pbnRlciwgcGF0aEZyb21Qb2ludGVyLCBwYXRoVG9Qb2ludGVyLCByZXNvbHZlUmVmcyAqL1xuXG4vKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE0IEplcmVteSBXaGl0bG9ja1xuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHtcbiAgY2xvbmVEZWVwOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvY2xvbmVEZWVwJyksXG4gIGVhY2g6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9lYWNoJyksXG4gIGluZGV4T2Y6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvYXJyYXkvaW5kZXhPZicpLFxuICBpc0FycmF5OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNBcnJheScpLFxuICBpc0Z1bmN0aW9uOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNGdW5jdGlvbicpLFxuICBpc1BsYWluT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNQbGFpbk9iamVjdCcpLFxuICBpc1N0cmluZzogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzU3RyaW5nJyksXG4gIGlzVW5kZWZpbmVkOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNVbmRlZmluZWQnKSxcbiAga2V5czogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9vYmplY3Qva2V5cycpLFxuICBtYXA6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9tYXAnKVxufTtcbnZhciBhc3luYyA9IHJlcXVpcmUoJ2FzeW5jJyk7XG52YXIgcmVxdWVzdCA9IHJlcXVpcmUoJ3N1cGVyYWdlbnQnKTtcbnZhciB0cmF2ZXJzZSA9IHJlcXVpcmUoJ3RyYXZlcnNlJyk7XG5cbnZhciByZW1vdGVDYWNoZSA9IHt9O1xudmFyIHN1cHBvcnRlZFNjaGVtZXMgPSBbJ2h0dHAnLCAnaHR0cHMnXTtcblxuLyoqXG4gKiBDYWxsYmFjayB1c2VkIGJ5IGFsbCBqc29uLXJlZnMgZnVuY3Rpb25zLlxuICpcbiAqIEBwYXJhbSB7ZXJyb3J9IFtlcnJdIC0gVGhlIGVycm9yIGlmIHRoZXJlIGlzIGEgcHJvYmxlbVxuICogQHBhcmFtIHsqfSBbcmVzdWx0XSAtIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uXG4gKlxuICogQGNhbGxiYWNrIHJlc3VsdENhbGxiYWNrXG4gKi9cblxuLyoqXG4gKiBDYWxsYmFjayB1c2VkIHRvIHByb3ZpZGUgYWNjZXNzIHRvIGFsdGVyaW5nIGEgcmVtb3RlIHJlcXVlc3QgcHJpb3IgdG8gdGhlIHJlcXVlc3QgYmVpbmcgbWFkZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gcmVxIC0gVGhlIFN1cGVyYWdlbnQgcmVxdWVzdCBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWYgLSBUaGUgcmVmZXJlbmNlIGJlaW5nIHJlc29sdmVkIChXaGVuIGFwcGxpY2FibGUpXG4gKlxuICogQGNhbGxiYWNrIHByZXBhcmVSZXF1ZXN0Q2FsbGJhY2tcbiAqL1xuXG4vKipcbiAqIENhbGxiYWNrIHVzZWQgdG8gcHJvY2VzcyB0aGUgY29udGVudCBvZiBhIHJlZmVyZW5jZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udGVudCAtIFRoZSBjb250ZW50IGxvYWRlZCBmcm9tIHRoZSBmaWxlL1VSTFxuICogQHBhcmFtIHtzdHJpbmd9IHJlZiAtIFRoZSByZWZlcmVuY2Ugc3RyaW5nIChXaGVuIGFwcGxpY2FibGUpXG4gKiBAcGFyYW0ge29iamVjdH0gW3Jlc10gLSBUaGUgU3VwZXJhZ2VudCByZXNwb25zZSBvYmplY3QgKEZvciByZW1vdGUgVVJMIHJlcXVlc3RzIG9ubHkpXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEphdmFTY3JpcHQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZWZlcmVuY2VcbiAqXG4gKiBAY2FsbGJhY2sgcHJvY2Vzc0NvbnRlbnRDYWxsYmFja1xuICovXG5cbi8qIEludGVybmFsIEZ1bmN0aW9ucyAqL1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgY29udGVudCBhdCB0aGUgVVJMIGFuZCByZXR1cm5zIGl0cyBKU09OIGNvbnRlbnQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gcmV0cmlldmVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgcGFzc2VkIHRvIHJlc29sdmVSZWZzXG4gKiBAcGFyYW0ge3Jlc3VsdENhbGxiYWNrfSBkb25lIC0gVGhlIHJlc3VsdCBjYWxsYmFja1xuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlcmUgaXMgYSBwcm9ibGVtIG1ha2luZyB0aGUgcmVxdWVzdCBvciB0aGUgY29udGVudCBpcyBub3QgSlNPTlxuICovXG52YXIgZ2V0UmVtb3RlSnNvbiA9IGZ1bmN0aW9uIGdldFJlbW90ZUpzb24gKHVybCwgb3B0aW9ucywgZG9uZSkge1xuICB2YXIgcmVhbFVybCA9IHVybC5zcGxpdCgnIycpWzBdO1xuICB2YXIganNvbiA9IHJlbW90ZUNhY2hlW3JlYWxVcmxdO1xuICB2YXIgdXNlckVycjtcbiAgdmFyIHJlYWxSZXF1ZXN0O1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZChqc29uKSkge1xuICAgIGRvbmUodXNlckVyciwganNvbik7XG4gIH0gZWxzZSB7XG4gICAgcmVhbFJlcXVlc3QgPSByZXF1ZXN0LmdldCh1cmwpXG4gICAgICAuc2V0KCd1c2VyLWFnZW50JywgJ3doaXRsb2NramMvanNvbi1yZWZzJyk7XG5cbiAgICBpZiAoIV8uaXNVbmRlZmluZWQob3B0aW9ucy5wcmVwYXJlUmVxdWVzdCkpIHtcbiAgICAgIG9wdGlvbnMucHJlcGFyZVJlcXVlc3QocmVhbFJlcXVlc3QsIHVybCk7XG4gICAgfVxuXG4gICAgLy8gYnVmZmVyKCkgaXMgb25seSBhdmFpbGFibGUgaW4gTm9kZS5qc1xuICAgIGlmIChfLmlzRnVuY3Rpb24ocmVhbFJlcXVlc3QuYnVmZmVyKSkge1xuICAgICAgcmVhbFJlcXVlc3QuYnVmZmVyKHRydWUpO1xuICAgIH1cblxuICAgIHJlYWxSZXF1ZXN0XG4gICAgICAuZW5kKGZ1bmN0aW9uIChlcnIsIHJlcykge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgdXNlckVyciA9IGVycjtcbiAgICAgICAgfSBlbHNlIGlmIChyZXMuZXJyb3IpIHtcbiAgICAgICAgICB1c2VyRXJyID0gcmVzLmVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnMucHJvY2Vzc0NvbnRlbnQpKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGpzb24gPSBvcHRpb25zLnByb2Nlc3NDb250ZW50KHJlcy50ZXh0LCB1cmwsIHJlcyk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdXNlckVyciA9IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShyZXMudGV4dCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdXNlckVyciA9IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVtb3RlQ2FjaGVbcmVhbFVybF0gPSBqc29uO1xuXG4gICAgICAgIGRvbmUodXNlckVyciwganNvbik7XG4gICAgICB9KTtcbiAgfVxufTtcblxuLyogRXhwb3J0ZWQgRnVuY3Rpb25zICovXG5cbi8qKlxuICogQ2xlYXJzIHRoZSBpbnRlcm5hbCBjYWNoZSBvZiB1cmwgLT4gSmF2YVNjcmlwdCBvYmplY3QgbWFwcGluZ3MgYmFzZWQgb24gcHJldmlvdXNseSByZXNvbHZlZCByZWZlcmVuY2VzLlxuICovXG5tb2R1bGUuZXhwb3J0cy5jbGVhckNhY2hlID0gZnVuY3Rpb24gY2xlYXJDYWNoZSAoKSB7XG4gIHJlbW90ZUNhY2hlID0ge307XG59O1xuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIG9iamVjdCByZXByZXNlbnRzIGEgSlNPTiBSZWZlcmVuY2UuXG4gKlxuICogQHBhcmFtIHsqfSBbb2JqXSAtIFRoZSBvYmplY3QgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBhcmd1bWVudCBpcyBhbiBvYmplY3QgYW5kIGl0cyAkcmVmIHByb3BlcnR5IGlzIGEgc3RyaW5nIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAqL1xudmFyIGlzSnNvblJlZmVyZW5jZSA9IG1vZHVsZS5leHBvcnRzLmlzSnNvblJlZmVyZW5jZSA9IGZ1bmN0aW9uIGlzSnNvblJlZmVyZW5jZSAob2JqKSB7XG4gIC8vIFRPRE86IEFkZCBjaGVjayB0aGF0IHRoZSB2YWx1ZSBpcyBhIHZhbGlkIEpTT04gUG9pbnRlclxuICByZXR1cm4gXy5pc1BsYWluT2JqZWN0KG9iaikgJiYgXy5pc1N0cmluZyhvYmouJHJlZik7XG59O1xuXG4vKipcbiAqIFRha2VzIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMgYW5kIGNyZWF0ZXMgYSBKU09OIFBvaW50ZXIgZnJvbSBpdC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2OTAxfVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGggLSBUaGUgcGF0aCBzZWdtZW50c1xuICpcbiAqIEByZXR1cm5zIGEgSlNPTiBQb2ludGVyIGJhc2VkIG9uIHRoZSBwYXRoIHNlZ21lbnRzXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgYXJndW1lbnRzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xudmFyIHBhdGhUb1BvaW50ZXIgPSBtb2R1bGUuZXhwb3J0cy5wYXRoVG9Qb2ludGVyID0gZnVuY3Rpb24gcGF0aFRvUG9pbnRlciAocGF0aCkge1xuICBpZiAoXy5pc1VuZGVmaW5lZChwYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGF0aCBpcyByZXF1aXJlZCcpO1xuICB9IGVsc2UgaWYgKCFfLmlzQXJyYXkocGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhdGggbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG5cbiAgdmFyIHB0ciA9ICcjJztcblxuICBpZiAocGF0aC5sZW5ndGggPiAwKSB7XG4gICAgcHRyICs9ICcvJyArIF8ubWFwKHBhdGgsIGZ1bmN0aW9uIChwYXJ0KSB7XG4gICAgICByZXR1cm4gcGFydC5yZXBsYWNlKC9+L2csICd+MCcpLnJlcGxhY2UoL1xcLy9nLCAnfjEnKTtcbiAgICB9KS5qb2luKCcvJyk7XG4gIH1cblxuICByZXR1cm4gcHRyO1xufTtcblxuLyoqXG4gKiBGaW5kIGFsbCBKU09OIFJlZmVyZW5jZXMgaW4gdGhlIGRvY3VtZW50LlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXBicnlhbi16eXAtanNvbi1yZWYtMDMjc2VjdGlvbi0zfVxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gZG9jdW1lbnQgdG8gZmluZCByZWZlcmVuY2VzIGluXG4gKlxuICogQHJldHVybnMgYW4gb2JqZWN0IHdob3NlIGtleXMgYXJlIEpTT04gUG9pbnRlcnMgdG8gdGhlICckcmVmJyBub2RlIG9mIHRoZSBKU09OIFJlZmVyZW5jZVxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGFyZ3VtZW50cyBhcmUgbWlzc2luZyBvciBpbnZhbGlkXG4gKi9cbnZhciBmaW5kUmVmcyA9IG1vZHVsZS5leHBvcnRzLmZpbmRSZWZzID0gZnVuY3Rpb24gZmluZFJlZnMgKGpzb24pIHtcbiAgaWYgKF8uaXNVbmRlZmluZWQoanNvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2pzb24gaXMgcmVxdWlyZWQnKTtcbiAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KGpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdqc29uIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gIH1cblxuICByZXR1cm4gdHJhdmVyc2UoanNvbikucmVkdWNlKGZ1bmN0aW9uIChhY2MpIHtcbiAgICB2YXIgdmFsID0gdGhpcy5ub2RlO1xuXG4gICAgaWYgKHRoaXMua2V5ID09PSAnJHJlZicgJiYgaXNKc29uUmVmZXJlbmNlKHRoaXMucGFyZW50Lm5vZGUpKSB7XG4gICAgICBhY2NbcGF0aFRvUG9pbnRlcih0aGlzLnBhdGgpXSA9IHZhbDtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIEpTT04gUG9pbnRlciBpcyBhIHJlbW90ZSByZWZlcmVuY2UuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHB0ciAtIFRoZSBKU09OIFBvaW50ZXJcbiAqXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBKU09OIFBvaW50ZXIgaXMgcmVtb3RlIG9yIGZhbHNlIGlmIG5vdFxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGFyZ3VtZW50cyBhcmUgbWlzc2luZyBvciBpbnZhbGlkXG4gKi9cbnZhciBpc1JlbW90ZVBvaW50ZXIgPSBtb2R1bGUuZXhwb3J0cy5pc1JlbW90ZVBvaW50ZXIgPSBmdW5jdGlvbiBpc1JlbW90ZVBvaW50ZXIgKHB0cikge1xuICBpZiAoXy5pc1VuZGVmaW5lZChwdHIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwdHIgaXMgcmVxdWlyZWQnKTtcbiAgfSBlbHNlIGlmICghXy5pc1N0cmluZyhwdHIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwdHIgbXVzdCBiZSBhIHN0cmluZycpO1xuICB9XG5cbiAgcmV0dXJuIC9eKChbYS16QS1aMC05Ky4tXSspOlxcL1xcL3xcXC57MSwyfVxcLykvLnRlc3QocHRyKTtcbn07XG5cbi8qKlxuICogVGFrZXMgYSBKU09OIFJlZmVyZW5jZSBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY5MDF9XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHB0ciAtIFRoZSBKU09OIFBvaW50ZXIgZm9yIHRoZSBKU09OIFJlZmVyZW5jZVxuICpcbiAqIEByZXR1cm5zIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMgb3IgdGhlIHBhc3NlZCBpbiBzdHJpbmcgaWYgaXQgaXMgYSByZW1vdGUgcmVmZXJlbmNlXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgYXJndW1lbnRzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xudmFyIHBhdGhGcm9tUG9pbnRlciA9IG1vZHVsZS5leHBvcnRzLnBhdGhGcm9tUG9pbnRlciA9IGZ1bmN0aW9uIHBhdGhGcm9tUG9pbnRlciAocHRyKSB7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHB0cikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3B0ciBpcyByZXF1aXJlZCcpO1xuICB9IGVsc2UgaWYgKCFfLmlzU3RyaW5nKHB0cikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3B0ciBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gIH1cblxuICB2YXIgcGF0aCA9IFtdO1xuXG4gIGlmIChpc1JlbW90ZVBvaW50ZXIocHRyKSkge1xuICAgIHBhdGggPSBwdHI7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHB0ci5jaGFyQXQoMCkgPT09ICcjJyAmJiBwdHIgIT09ICcjJykge1xuICAgICAgcGF0aCA9IF8ubWFwKHB0ci5zdWJzdHJpbmcoMSkuc3BsaXQoJy8nKSwgZnVuY3Rpb24gKHBhcnQpIHtcbiAgICAgICAgcmV0dXJuIHBhcnQucmVwbGFjZSgvfjAvZywgJ34nKS5yZXBsYWNlKC9+MS9nLCAnLycpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vICcvJyBieSBpdHNlbGYgY29ycmVzcG9uZHMgdG8gWycnXSBvdGhlcndpc2UsIHJlbW92ZSB0aGUgZmlyc3QgZW50cnlcbiAgICAgIGlmIChwYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcGF0aC5zaGlmdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXRoO1xufTtcblxuLyoqXG4gKiBUYWtlcyBhIEpTT04gZG9jdW1lbnQsIHJlc29sdmVzIGFsbCBKU09OIFJlZmVyZW5jZXMgYW5kIHJldHVybnMgYSBmdWxseSByZXNvbHZlZCBlcXVpdmFsZW50LlxuICpcbiAqIElmIHRoZSBkb2N1bWVudCBoYXMgbm8gSlNPTiBSZWZlcmVuY2VzLCB0aGUgcGFzc2VkIGluIGRvY3VtZW50IGlzIHJldHVybmVkIHVudG91Y2hlZC4gIElmIHRoZXJlIGFyZSByZWZlcmVuY2VzIHRvIGJlXG4gKiByZXNvbHZlZCwgdGhlIHJldHVybmVkIGRvY3VtZW50IGlzIGNsb25lZCBhbmQgcmV0dXJuZWQgZnVsbHkgcmVzb2x2ZWQuICBUaGUgb3JpZ2luYWwgZG9jdW1lbnQgaXMgdW50b3VjaGVkLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gIGRvY3VtZW50IGhhdmluZyB6ZXJvIG9yIG1vcmUgSlNPTiBSZWZlcmVuY2VzXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gVGhlIG9wdGlvbnNcbiAqIEBwYXJhbSB7cHJlcGFyZVJlcXVlc3RDYWxsYmFja30gW29wdGlvbnMucHJlcGFyZVJlcXVlc3RdIC0gVGhlIGNhbGxiYWNrIHVzZWQgdG8gcHJlcGFyZSBhIHJlcXVlc3RcbiAqIEBwYXJhbSB7cHJvY2Vzc0NvbnRlbnRDYWxsYmFja30gW29wdGlvbnMucHJvY2Vzc0NvbnRlbnRdIC0gVGhlIGNhbGxiYWNrIHVzZWQgdG8gcHJvY2VzcyBhIHJlZmVyZW5jZSdzIGNvbnRlbnRcbiAqIEBwYXJhbSB7cmVzdWx0Q2FsbGJhY2t9IGRvbmUgLSBUaGUgcmVzdWx0IGNhbGxiYWNrXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgYXJndW1lbnRzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xudmFyIHJlc29sdmVSZWZzID0gbW9kdWxlLmV4cG9ydHMucmVzb2x2ZVJlZnMgPSBmdW5jdGlvbiByZXNvbHZlUmVmcyAoanNvbiwgb3B0aW9ucywgZG9uZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDMpIHtcbiAgICBkb25lID0gYXJndW1lbnRzWzFdO1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGlmIChfLmlzVW5kZWZpbmVkKGpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdqc29uIGlzIHJlcXVpcmVkJyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNQbGFpbk9iamVjdChqc29uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignanNvbiBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICB9IGVsc2UgaWYgKCFfLmlzUGxhaW5PYmplY3Qob3B0aW9ucykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfSBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKGRvbmUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkb25lIGlzIHJlcXVpcmVkJyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNGdW5jdGlvbihkb25lKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZG9uZSBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHRoZSBvcHRpb25zXG4gIGlmICghXy5pc1VuZGVmaW5lZChvcHRpb25zLnByZXBhcmVSZXF1ZXN0KSAmJiAhXy5pc0Z1bmN0aW9uKG9wdGlvbnMucHJlcGFyZVJlcXVlc3QpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdvcHRpb25zLnByZXBhcmVSZXF1ZXN0IG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnMucHJvY2Vzc0NvbnRlbnQpICYmICFfLmlzRnVuY3Rpb24ob3B0aW9ucy5wcm9jZXNzQ29udGVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdGlvbnMucHJvY2Vzc0NvbnRlbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICB2YXIgcmVmcyA9IGZpbmRSZWZzKGpzb24pO1xuICB2YXIgcmVtb3ZlQ2lyY3VsYXIgPSBmdW5jdGlvbiByZW1vdmVDaXJjdWxhciAoanNvblQpIHtcbiAgICAvLyBSZW1vdmUgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgIHJldHVybiBqc29uVC5tYXAoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHRoaXMuY2lyY3VsYXIpIHtcbiAgICAgICAgLy8gQWx3YXlzIHRyYXZlcnNlIG9uZSBkZXB0aCBhZnRlciByZWNvZ25pemluZyBhIGNpcmN1bGFyIGRlcGVuZGVuY3lcbiAgICAgICAgdGhpcy51cGRhdGUodHJhdmVyc2UodGhpcy5ub2RlKS5tYXAoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2lyY3VsYXIpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50LnJlbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICB2YXIgbWV0YWRhdGEgPSB7fTtcbiAgdmFyIGNKc29uVDtcblxuICBpZiAoT2JqZWN0LmtleXMocmVmcykubGVuZ3RoID4gMCkge1xuICAgIGNKc29uVCA9IHRyYXZlcnNlKF8uY2xvbmVEZWVwKGpzb24pKTsgLy8gQ2xvbmUgdGhlIGlucHV0IEpTT04gdG8gYXZvaWQgYWx0ZXJpbmcgaXRcblxuICAgIHZhciByZXBsYWNlUmVmZXJlbmNlID0gZnVuY3Rpb24gKHRvLCBmcm9tLCByZWYsIHJlZlB0cikge1xuICAgICAgdmFyIHJlZk1ldGFkYXRhID0ge1xuICAgICAgICByZWY6IHJlZlxuICAgICAgfTtcbiAgICAgIHZhciBtaXNzaW5nID0gZmFsc2U7XG4gICAgICB2YXIgcGFyZW50UGF0aDtcbiAgICAgIHZhciByZWZQYXRoO1xuICAgICAgdmFyIHZhbHVlO1xuXG4gICAgICByZWYgPSByZWYuaW5kZXhPZignIycpID09PSAtMSA/XG4gICAgICAgICcjJyA6XG4gICAgICAgIHJlZi5zdWJzdHJpbmcocmVmLmluZGV4T2YoJyMnKSk7XG4gICAgICByZWZQYXRoID0gcGF0aEZyb21Qb2ludGVyKHJlZlB0cik7XG4gICAgICBwYXJlbnRQYXRoID0gcmVmUGF0aC5zbGljZSgwLCByZWZQYXRoLmxlbmd0aCAtIDEpO1xuXG4gICAgICBpZiAocGFyZW50UGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgbWlzc2luZyA9ICFfLmlzVW5kZWZpbmVkKGZyb20udmFsdWUpO1xuICAgICAgICB2YWx1ZSA9IGZyb20udmFsdWU7XG4gICAgICAgIHRvLnZhbHVlID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtaXNzaW5nID0gIWZyb20uaGFzKHBhdGhGcm9tUG9pbnRlcihyZWYpKTtcbiAgICAgICAgdmFsdWUgPSBmcm9tLmdldChwYXRoRnJvbVBvaW50ZXIocmVmKSk7XG4gICAgICAgIHRvLnNldChwYXJlbnRQYXRoLCB2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghbWlzc2luZykge1xuICAgICAgICByZWZNZXRhZGF0YS52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICBtZXRhZGF0YVtyZWZQdHJdID0gcmVmTWV0YWRhdGE7XG4gICAgfTtcbiAgICB2YXIgcmVtb3RlUmVmcyA9IHt9O1xuXG4gICAgXy5lYWNoKHJlZnMsIGZ1bmN0aW9uIChyZWYsIHJlZlB0cikge1xuICAgICAgaWYgKGlzUmVtb3RlUG9pbnRlcihyZWYpKSB7XG4gICAgICAgIHJlbW90ZVJlZnNbcmVmUHRyXSA9IHJlZjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcGxhY2VSZWZlcmVuY2UoY0pzb25ULCBjSnNvblQsIHJlZiwgcmVmUHRyKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFzeW5jLm1hcChfLmtleXMocmVtb3RlUmVmcyksIGZ1bmN0aW9uIChyZWZQdHIsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgcmVmID0gcmVtb3RlUmVmc1tyZWZQdHJdO1xuICAgICAgdmFyIHNjaGVtZSA9IHJlZi5zcGxpdCgnOicpWzBdO1xuXG4gICAgICAvLyBEbyBub3QgcHJvY2VzcyByZWxhdGl2ZSByZWZlcmVuY2VzIG9yIHJlZmVyZW5jZXMgdG8gdW5zdXBwb3J0ZWQgcmVzb3VyY2VzXG4gICAgICBpZiAocmVmLmNoYXJBdCgwKSA9PT0gJy4nIHx8IF8uaW5kZXhPZihzdXBwb3J0ZWRTY2hlbWVzLCBzY2hlbWUpID09PSAtMSkge1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ2V0UmVtb3RlSnNvbihyZWYsIG9wdGlvbnMsIGZ1bmN0aW9uIChlcnIsIGpzb24pIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlUmVmcyhqc29uLCBvcHRpb25zLCBmdW5jdGlvbiAoZXJyLCBqc29uKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSByZW1vdGVSZWZzW3JlZlB0cl07XG5cbiAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVwbGFjZVJlZmVyZW5jZShjSnNvblQsIHRyYXZlcnNlKGpzb24pLCByZWYsIHJlZlB0cik7XG5cbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgZG9uZShlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9uZSh1bmRlZmluZWQsIHJlbW92ZUNpcmN1bGFyKGNKc29uVCksIG1ldGFkYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBkb25lKHVuZGVmaW5lZCwganNvbiwgbWV0YWRhdGEpO1xuICB9XG59O1xuIiwiLyohXG4gKiBhc3luY1xuICogaHR0cHM6Ly9naXRodWIuY29tL2Nhb2xhbi9hc3luY1xuICpcbiAqIENvcHlyaWdodCAyMDEwLTIwMTQgQ2FvbGFuIE1jTWFob25cbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICovXG4vKmpzaGludCBvbmV2YXI6IGZhbHNlLCBpbmRlbnQ6NCAqL1xuLypnbG9iYWwgc2V0SW1tZWRpYXRlOiBmYWxzZSwgc2V0VGltZW91dDogZmFsc2UsIGNvbnNvbGU6IGZhbHNlICovXG4oZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGFzeW5jID0ge307XG5cbiAgICAvLyBnbG9iYWwgb24gdGhlIHNlcnZlciwgd2luZG93IGluIHRoZSBicm93c2VyXG4gICAgdmFyIHJvb3QsIHByZXZpb3VzX2FzeW5jO1xuXG4gICAgcm9vdCA9IHRoaXM7XG4gICAgaWYgKHJvb3QgIT0gbnVsbCkge1xuICAgICAgcHJldmlvdXNfYXN5bmMgPSByb290LmFzeW5jO1xuICAgIH1cblxuICAgIGFzeW5jLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJvb3QuYXN5bmMgPSBwcmV2aW91c19hc3luYztcbiAgICAgICAgcmV0dXJuIGFzeW5jO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBvbmx5X29uY2UoZm4pIHtcbiAgICAgICAgdmFyIGNhbGxlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoY2FsbGVkKSB0aHJvdyBuZXcgRXJyb3IoXCJDYWxsYmFjayB3YXMgYWxyZWFkeSBjYWxsZWQuXCIpO1xuICAgICAgICAgICAgY2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGZuLmFwcGx5KHJvb3QsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLy8vIGNyb3NzLWJyb3dzZXIgY29tcGF0aWJsaXR5IGZ1bmN0aW9ucyAvLy8vXG5cbiAgICB2YXIgX3RvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuICAgIHZhciBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICByZXR1cm4gX3RvU3RyaW5nLmNhbGwob2JqKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbiAgICB9O1xuXG4gICAgdmFyIF9lYWNoID0gZnVuY3Rpb24gKGFyciwgaXRlcmF0b3IpIHtcbiAgICAgICAgaWYgKGFyci5mb3JFYWNoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyLmZvckVhY2goaXRlcmF0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBpdGVyYXRvcihhcnJbaV0sIGksIGFycik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIF9tYXAgPSBmdW5jdGlvbiAoYXJyLCBpdGVyYXRvcikge1xuICAgICAgICBpZiAoYXJyLm1hcCkge1xuICAgICAgICAgICAgcmV0dXJuIGFyci5tYXAoaXRlcmF0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHRzID0gW107XG4gICAgICAgIF9lYWNoKGFyciwgZnVuY3Rpb24gKHgsIGksIGEpIHtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChpdGVyYXRvcih4LCBpLCBhKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9O1xuXG4gICAgdmFyIF9yZWR1Y2UgPSBmdW5jdGlvbiAoYXJyLCBpdGVyYXRvciwgbWVtbykge1xuICAgICAgICBpZiAoYXJyLnJlZHVjZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFyci5yZWR1Y2UoaXRlcmF0b3IsIG1lbW8pO1xuICAgICAgICB9XG4gICAgICAgIF9lYWNoKGFyciwgZnVuY3Rpb24gKHgsIGksIGEpIHtcbiAgICAgICAgICAgIG1lbW8gPSBpdGVyYXRvcihtZW1vLCB4LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtZW1vO1xuICAgIH07XG5cbiAgICB2YXIgX2tleXMgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleXMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgayBpbiBvYmopIHtcbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICBrZXlzLnB1c2goayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfTtcblxuICAgIC8vLy8gZXhwb3J0ZWQgYXN5bmMgbW9kdWxlIGZ1bmN0aW9ucyAvLy8vXG5cbiAgICAvLy8vIG5leHRUaWNrIGltcGxlbWVudGF0aW9uIHdpdGggYnJvd3Nlci1jb21wYXRpYmxlIGZhbGxiYWNrIC8vLy9cbiAgICBpZiAodHlwZW9mIHByb2Nlc3MgPT09ICd1bmRlZmluZWQnIHx8ICEocHJvY2Vzcy5uZXh0VGljaykpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZXRJbW1lZGlhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGFzeW5jLm5leHRUaWNrID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgICAgICAgICAgLy8gbm90IGEgZGlyZWN0IGFsaWFzIGZvciBJRTEwIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgICAgICBzZXRJbW1lZGlhdGUoZm4pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFzeW5jLnNldEltbWVkaWF0ZSA9IGFzeW5jLm5leHRUaWNrO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYXN5bmMubmV4dFRpY2sgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZuLCAwKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhc3luYy5zZXRJbW1lZGlhdGUgPSBhc3luYy5uZXh0VGljaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgYXN5bmMubmV4dFRpY2sgPSBwcm9jZXNzLm5leHRUaWNrO1xuICAgICAgICBpZiAodHlwZW9mIHNldEltbWVkaWF0ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGFzeW5jLnNldEltbWVkaWF0ZSA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICAgICAgICAvLyBub3QgYSBkaXJlY3QgYWxpYXMgZm9yIElFMTAgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICBzZXRJbW1lZGlhdGUoZm4pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFzeW5jLnNldEltbWVkaWF0ZSA9IGFzeW5jLm5leHRUaWNrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMuZWFjaCA9IGZ1bmN0aW9uIChhcnIsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICBpZiAoIWFyci5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb21wbGV0ZWQgPSAwO1xuICAgICAgICBfZWFjaChhcnIsIGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICBpdGVyYXRvcih4LCBvbmx5X29uY2UoZG9uZSkgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGRvbmUoZXJyKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgY29tcGxldGVkICs9IDE7XG4gICAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgPj0gYXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgYXN5bmMuZm9yRWFjaCA9IGFzeW5jLmVhY2g7XG5cbiAgICBhc3luYy5lYWNoU2VyaWVzID0gZnVuY3Rpb24gKGFyciwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG4gICAgICAgIGlmICghYXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvbXBsZXRlZCA9IDA7XG4gICAgICAgIHZhciBpdGVyYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaXRlcmF0b3IoYXJyW2NvbXBsZXRlZF0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWQgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZCA+PSBhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGl0ZXJhdGUoKTtcbiAgICB9O1xuICAgIGFzeW5jLmZvckVhY2hTZXJpZXMgPSBhc3luYy5lYWNoU2VyaWVzO1xuXG4gICAgYXN5bmMuZWFjaExpbWl0ID0gZnVuY3Rpb24gKGFyciwgbGltaXQsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgZm4gPSBfZWFjaExpbWl0KGxpbWl0KTtcbiAgICAgICAgZm4uYXBwbHkobnVsbCwgW2FyciwgaXRlcmF0b3IsIGNhbGxiYWNrXSk7XG4gICAgfTtcbiAgICBhc3luYy5mb3JFYWNoTGltaXQgPSBhc3luYy5lYWNoTGltaXQ7XG5cbiAgICB2YXIgX2VhY2hMaW1pdCA9IGZ1bmN0aW9uIChsaW1pdCkge1xuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoYXJyLCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICBpZiAoIWFyci5sZW5ndGggfHwgbGltaXQgPD0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNvbXBsZXRlZCA9IDA7XG4gICAgICAgICAgICB2YXIgc3RhcnRlZCA9IDA7XG4gICAgICAgICAgICB2YXIgcnVubmluZyA9IDA7XG5cbiAgICAgICAgICAgIChmdW5jdGlvbiByZXBsZW5pc2ggKCkge1xuICAgICAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgPj0gYXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAocnVubmluZyA8IGxpbWl0ICYmIHN0YXJ0ZWQgPCBhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ZWQgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgcnVubmluZyArPSAxO1xuICAgICAgICAgICAgICAgICAgICBpdGVyYXRvcihhcnJbc3RhcnRlZCAtIDFdLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVubmluZyAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgPj0gYXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9O1xuICAgIH07XG5cblxuICAgIHZhciBkb1BhcmFsbGVsID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgW2FzeW5jLmVhY2hdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICB2YXIgZG9QYXJhbGxlbExpbWl0ID0gZnVuY3Rpb24obGltaXQsIGZuKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgW19lYWNoTGltaXQobGltaXQpXS5jb25jYXQoYXJncykpO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgdmFyIGRvU2VyaWVzID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgW2FzeW5jLmVhY2hTZXJpZXNdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH07XG4gICAgfTtcblxuXG4gICAgdmFyIF9hc3luY01hcCA9IGZ1bmN0aW9uIChlYWNoZm4sIGFyciwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIGFyciA9IF9tYXAoYXJyLCBmdW5jdGlvbiAoeCwgaSkge1xuICAgICAgICAgICAgcmV0dXJuIHtpbmRleDogaSwgdmFsdWU6IHh9O1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgICAgZWFjaGZuKGFyciwgZnVuY3Rpb24gKHgsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaXRlcmF0b3IoeC52YWx1ZSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgZWFjaGZuKGFyciwgZnVuY3Rpb24gKHgsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaXRlcmF0b3IoeC52YWx1ZSwgZnVuY3Rpb24gKGVyciwgdikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzW3guaW5kZXhdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGFzeW5jLm1hcCA9IGRvUGFyYWxsZWwoX2FzeW5jTWFwKTtcbiAgICBhc3luYy5tYXBTZXJpZXMgPSBkb1NlcmllcyhfYXN5bmNNYXApO1xuICAgIGFzeW5jLm1hcExpbWl0ID0gZnVuY3Rpb24gKGFyciwgbGltaXQsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gX21hcExpbWl0KGxpbWl0KShhcnIsIGl0ZXJhdG9yLCBjYWxsYmFjayk7XG4gICAgfTtcblxuICAgIHZhciBfbWFwTGltaXQgPSBmdW5jdGlvbihsaW1pdCkge1xuICAgICAgICByZXR1cm4gZG9QYXJhbGxlbExpbWl0KGxpbWl0LCBfYXN5bmNNYXApO1xuICAgIH07XG5cbiAgICAvLyByZWR1Y2Ugb25seSBoYXMgYSBzZXJpZXMgdmVyc2lvbiwgYXMgZG9pbmcgcmVkdWNlIGluIHBhcmFsbGVsIHdvbid0XG4gICAgLy8gd29yayBpbiBtYW55IHNpdHVhdGlvbnMuXG4gICAgYXN5bmMucmVkdWNlID0gZnVuY3Rpb24gKGFyciwgbWVtbywgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIGFzeW5jLmVhY2hTZXJpZXMoYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKG1lbW8sIHgsIGZ1bmN0aW9uIChlcnIsIHYpIHtcbiAgICAgICAgICAgICAgICBtZW1vID0gdjtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgbWVtbyk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gaW5qZWN0IGFsaWFzXG4gICAgYXN5bmMuaW5qZWN0ID0gYXN5bmMucmVkdWNlO1xuICAgIC8vIGZvbGRsIGFsaWFzXG4gICAgYXN5bmMuZm9sZGwgPSBhc3luYy5yZWR1Y2U7XG5cbiAgICBhc3luYy5yZWR1Y2VSaWdodCA9IGZ1bmN0aW9uIChhcnIsIG1lbW8sIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgcmV2ZXJzZWQgPSBfbWFwKGFyciwgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICB9KS5yZXZlcnNlKCk7XG4gICAgICAgIGFzeW5jLnJlZHVjZShyZXZlcnNlZCwgbWVtbywgaXRlcmF0b3IsIGNhbGxiYWNrKTtcbiAgICB9O1xuICAgIC8vIGZvbGRyIGFsaWFzXG4gICAgYXN5bmMuZm9sZHIgPSBhc3luYy5yZWR1Y2VSaWdodDtcblxuICAgIHZhciBfZmlsdGVyID0gZnVuY3Rpb24gKGVhY2hmbiwgYXJyLCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgYXJyID0gX21hcChhcnIsIGZ1bmN0aW9uICh4LCBpKSB7XG4gICAgICAgICAgICByZXR1cm4ge2luZGV4OiBpLCB2YWx1ZTogeH07XG4gICAgICAgIH0pO1xuICAgICAgICBlYWNoZm4oYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKHgudmFsdWUsIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKF9tYXAocmVzdWx0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuaW5kZXggLSBiLmluZGV4O1xuICAgICAgICAgICAgfSksIGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHgudmFsdWU7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgYXN5bmMuZmlsdGVyID0gZG9QYXJhbGxlbChfZmlsdGVyKTtcbiAgICBhc3luYy5maWx0ZXJTZXJpZXMgPSBkb1NlcmllcyhfZmlsdGVyKTtcbiAgICAvLyBzZWxlY3QgYWxpYXNcbiAgICBhc3luYy5zZWxlY3QgPSBhc3luYy5maWx0ZXI7XG4gICAgYXN5bmMuc2VsZWN0U2VyaWVzID0gYXN5bmMuZmlsdGVyU2VyaWVzO1xuXG4gICAgdmFyIF9yZWplY3QgPSBmdW5jdGlvbiAoZWFjaGZuLCBhcnIsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgICBhcnIgPSBfbWFwKGFyciwgZnVuY3Rpb24gKHgsIGkpIHtcbiAgICAgICAgICAgIHJldHVybiB7aW5kZXg6IGksIHZhbHVlOiB4fTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVhY2hmbihhcnIsIGZ1bmN0aW9uICh4LCBjYWxsYmFjaykge1xuICAgICAgICAgICAgaXRlcmF0b3IoeC52YWx1ZSwgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKF9tYXAocmVzdWx0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuaW5kZXggLSBiLmluZGV4O1xuICAgICAgICAgICAgfSksIGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHgudmFsdWU7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgYXN5bmMucmVqZWN0ID0gZG9QYXJhbGxlbChfcmVqZWN0KTtcbiAgICBhc3luYy5yZWplY3RTZXJpZXMgPSBkb1NlcmllcyhfcmVqZWN0KTtcblxuICAgIHZhciBfZGV0ZWN0ID0gZnVuY3Rpb24gKGVhY2hmbiwgYXJyLCBpdGVyYXRvciwgbWFpbl9jYWxsYmFjaykge1xuICAgICAgICBlYWNoZm4oYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKHgsIGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1haW5fY2FsbGJhY2soeCk7XG4gICAgICAgICAgICAgICAgICAgIG1haW5fY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIG1haW5fY2FsbGJhY2soKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBhc3luYy5kZXRlY3QgPSBkb1BhcmFsbGVsKF9kZXRlY3QpO1xuICAgIGFzeW5jLmRldGVjdFNlcmllcyA9IGRvU2VyaWVzKF9kZXRlY3QpO1xuXG4gICAgYXN5bmMuc29tZSA9IGZ1bmN0aW9uIChhcnIsIGl0ZXJhdG9yLCBtYWluX2NhbGxiYWNrKSB7XG4gICAgICAgIGFzeW5jLmVhY2goYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKHgsIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFpbl9jYWxsYmFjayh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgbWFpbl9jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIG1haW5fY2FsbGJhY2soZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIGFueSBhbGlhc1xuICAgIGFzeW5jLmFueSA9IGFzeW5jLnNvbWU7XG5cbiAgICBhc3luYy5ldmVyeSA9IGZ1bmN0aW9uIChhcnIsIGl0ZXJhdG9yLCBtYWluX2NhbGxiYWNrKSB7XG4gICAgICAgIGFzeW5jLmVhY2goYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKHgsIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF2KSB7XG4gICAgICAgICAgICAgICAgICAgIG1haW5fY2FsbGJhY2soZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBtYWluX2NhbGxiYWNrID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgbWFpbl9jYWxsYmFjayh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvLyBhbGwgYWxpYXNcbiAgICBhc3luYy5hbGwgPSBhc3luYy5ldmVyeTtcblxuICAgIGFzeW5jLnNvcnRCeSA9IGZ1bmN0aW9uIChhcnIsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICBhc3luYy5tYXAoYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKHgsIGZ1bmN0aW9uIChlcnIsIGNyaXRlcmlhKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwge3ZhbHVlOiB4LCBjcml0ZXJpYTogY3JpdGVyaWF9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVyciwgcmVzdWx0cykge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIGZuID0gZnVuY3Rpb24gKGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhID0gbGVmdC5jcml0ZXJpYSwgYiA9IHJpZ2h0LmNyaXRlcmlhO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCBfbWFwKHJlc3VsdHMuc29ydChmbiksIGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB4LnZhbHVlO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzeW5jLmF1dG8gPSBmdW5jdGlvbiAodGFza3MsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG4gICAgICAgIHZhciBrZXlzID0gX2tleXModGFza3MpO1xuICAgICAgICB2YXIgcmVtYWluaW5nVGFza3MgPSBrZXlzLmxlbmd0aFxuICAgICAgICBpZiAoIXJlbWFpbmluZ1Rhc2tzKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciByZXN1bHRzID0ge307XG5cbiAgICAgICAgdmFyIGxpc3RlbmVycyA9IFtdO1xuICAgICAgICB2YXIgYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KGZuKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHJlbW92ZUxpc3RlbmVyID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lcnNbaV0gPT09IGZuKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciB0YXNrQ29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZW1haW5pbmdUYXNrcy0tXG4gICAgICAgICAgICBfZWFjaChsaXN0ZW5lcnMuc2xpY2UoMCksIGZ1bmN0aW9uIChmbikge1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBhZGRMaXN0ZW5lcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXJlbWFpbmluZ1Rhc2tzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoZUNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgLy8gcHJldmVudCBmaW5hbCBjYWxsYmFjayBmcm9tIGNhbGxpbmcgaXRzZWxmIGlmIGl0IGVycm9yc1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAgICAgICAgICAgICB0aGVDYWxsYmFjayhudWxsLCByZXN1bHRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgX2VhY2goa2V5cywgZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICAgIHZhciB0YXNrID0gX2lzQXJyYXkodGFza3Nba10pID8gdGFza3Nba106IFt0YXNrc1trXV07XG4gICAgICAgICAgICB2YXIgdGFza0NhbGxiYWNrID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgICAgICAgICBhcmdzID0gYXJnc1swXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2FmZVJlc3VsdHMgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgX2VhY2goX2tleXMocmVzdWx0cyksIGZ1bmN0aW9uKHJrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVSZXN1bHRzW3JrZXldID0gcmVzdWx0c1tya2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHNhZmVSZXN1bHRzW2tdID0gYXJncztcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCBzYWZlUmVzdWx0cyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN0b3Agc3Vic2VxdWVudCBlcnJvcnMgaGl0dGluZyBjYWxsYmFjayBtdWx0aXBsZSB0aW1lc1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1trXSA9IGFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIGFzeW5jLnNldEltbWVkaWF0ZSh0YXNrQ29tcGxldGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgcmVxdWlyZXMgPSB0YXNrLnNsaWNlKDAsIE1hdGguYWJzKHRhc2subGVuZ3RoIC0gMSkpIHx8IFtdO1xuICAgICAgICAgICAgdmFyIHJlYWR5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfcmVkdWNlKHJlcXVpcmVzLCBmdW5jdGlvbiAoYSwgeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGEgJiYgcmVzdWx0cy5oYXNPd25Qcm9wZXJ0eSh4KSk7XG4gICAgICAgICAgICAgICAgfSwgdHJ1ZSkgJiYgIXJlc3VsdHMuaGFzT3duUHJvcGVydHkoayk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJlYWR5KCkpIHtcbiAgICAgICAgICAgICAgICB0YXNrW3Rhc2subGVuZ3RoIC0gMV0odGFza0NhbGxiYWNrLCByZXN1bHRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBsaXN0ZW5lciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlYWR5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tbdGFzay5sZW5ndGggLSAxXSh0YXNrQ2FsbGJhY2ssIHJlc3VsdHMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3luYy5yZXRyeSA9IGZ1bmN0aW9uKHRpbWVzLCB0YXNrLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgREVGQVVMVF9USU1FUyA9IDU7XG4gICAgICAgIHZhciBhdHRlbXB0cyA9IFtdO1xuICAgICAgICAvLyBVc2UgZGVmYXVsdHMgaWYgdGltZXMgbm90IHBhc3NlZFxuICAgICAgICBpZiAodHlwZW9mIHRpbWVzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWxsYmFjayA9IHRhc2s7XG4gICAgICAgICAgICB0YXNrID0gdGltZXM7XG4gICAgICAgICAgICB0aW1lcyA9IERFRkFVTFRfVElNRVM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTWFrZSBzdXJlIHRpbWVzIGlzIGEgbnVtYmVyXG4gICAgICAgIHRpbWVzID0gcGFyc2VJbnQodGltZXMsIDEwKSB8fCBERUZBVUxUX1RJTUVTO1xuICAgICAgICB2YXIgd3JhcHBlZFRhc2sgPSBmdW5jdGlvbih3cmFwcGVkQ2FsbGJhY2ssIHdyYXBwZWRSZXN1bHRzKSB7XG4gICAgICAgICAgICB2YXIgcmV0cnlBdHRlbXB0ID0gZnVuY3Rpb24odGFzaywgZmluYWxBdHRlbXB0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNlcmllc0NhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2soZnVuY3Rpb24oZXJyLCByZXN1bHQpe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWVzQ2FsbGJhY2soIWVyciB8fCBmaW5hbEF0dGVtcHQsIHtlcnI6IGVyciwgcmVzdWx0OiByZXN1bHR9KTtcbiAgICAgICAgICAgICAgICAgICAgfSwgd3JhcHBlZFJlc3VsdHMpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2hpbGUgKHRpbWVzKSB7XG4gICAgICAgICAgICAgICAgYXR0ZW1wdHMucHVzaChyZXRyeUF0dGVtcHQodGFzaywgISh0aW1lcy09MSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFzeW5jLnNlcmllcyhhdHRlbXB0cywgZnVuY3Rpb24oZG9uZSwgZGF0YSl7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGRhdGFbZGF0YS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAod3JhcHBlZENhbGxiYWNrIHx8IGNhbGxiYWNrKShkYXRhLmVyciwgZGF0YS5yZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgYSBjYWxsYmFjayBpcyBwYXNzZWQsIHJ1biB0aGlzIGFzIGEgY29udHJvbGwgZmxvd1xuICAgICAgICByZXR1cm4gY2FsbGJhY2sgPyB3cmFwcGVkVGFzaygpIDogd3JhcHBlZFRhc2tcbiAgICB9O1xuXG4gICAgYXN5bmMud2F0ZXJmYWxsID0gZnVuY3Rpb24gKHRhc2tzLCBjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICBpZiAoIV9pc0FycmF5KHRhc2tzKSkge1xuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IHRvIHdhdGVyZmFsbCBtdXN0IGJlIGFuIGFycmF5IG9mIGZ1bmN0aW9ucycpO1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGFza3MubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd3JhcEl0ZXJhdG9yID0gZnVuY3Rpb24gKGl0ZXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2god3JhcEl0ZXJhdG9yKG5leHQpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaChjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXN5bmMuc2V0SW1tZWRpYXRlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgICB3cmFwSXRlcmF0b3IoYXN5bmMuaXRlcmF0b3IodGFza3MpKSgpO1xuICAgIH07XG5cbiAgICB2YXIgX3BhcmFsbGVsID0gZnVuY3Rpb24oZWFjaGZuLCB0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgaWYgKF9pc0FycmF5KHRhc2tzKSkge1xuICAgICAgICAgICAgZWFjaGZuLm1hcCh0YXNrcywgZnVuY3Rpb24gKGZuLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmIChmbikge1xuICAgICAgICAgICAgICAgICAgICBmbihmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChudWxsLCBlcnIsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHt9O1xuICAgICAgICAgICAgZWFjaGZuLmVhY2goX2tleXModGFza3MpLCBmdW5jdGlvbiAoaywgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB0YXNrc1trXShmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzBdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHNba10gPSBhcmdzO1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgcmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBhc3luYy5wYXJhbGxlbCA9IGZ1bmN0aW9uICh0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgICAgX3BhcmFsbGVsKHsgbWFwOiBhc3luYy5tYXAsIGVhY2g6IGFzeW5jLmVhY2ggfSwgdGFza3MsIGNhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgYXN5bmMucGFyYWxsZWxMaW1pdCA9IGZ1bmN0aW9uKHRhc2tzLCBsaW1pdCwgY2FsbGJhY2spIHtcbiAgICAgICAgX3BhcmFsbGVsKHsgbWFwOiBfbWFwTGltaXQobGltaXQpLCBlYWNoOiBfZWFjaExpbWl0KGxpbWl0KSB9LCB0YXNrcywgY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBhc3luYy5zZXJpZXMgPSBmdW5jdGlvbiAodGFza3MsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG4gICAgICAgIGlmIChfaXNBcnJheSh0YXNrcykpIHtcbiAgICAgICAgICAgIGFzeW5jLm1hcFNlcmllcyh0YXNrcywgZnVuY3Rpb24gKGZuLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmIChmbikge1xuICAgICAgICAgICAgICAgICAgICBmbihmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChudWxsLCBlcnIsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHt9O1xuICAgICAgICAgICAgYXN5bmMuZWFjaFNlcmllcyhfa2V5cyh0YXNrcyksIGZ1bmN0aW9uIChrLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHRhc2tzW2tdKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGFyZ3NbMF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1trXSA9IGFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCByZXN1bHRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGFzeW5jLml0ZXJhdG9yID0gZnVuY3Rpb24gKHRhc2tzKSB7XG4gICAgICAgIHZhciBtYWtlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgICAgICAgIHZhciBmbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGFza3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tzW2luZGV4XS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZm4ubmV4dCgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZuLm5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChpbmRleCA8IHRhc2tzLmxlbmd0aCAtIDEpID8gbWFrZUNhbGxiYWNrKGluZGV4ICsgMSk6IG51bGw7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbWFrZUNhbGxiYWNrKDApO1xuICAgIH07XG5cbiAgICBhc3luYy5hcHBseSA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkoXG4gICAgICAgICAgICAgICAgbnVsbCwgYXJncy5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHZhciBfY29uY2F0ID0gZnVuY3Rpb24gKGVhY2hmbiwgYXJyLCBmbiwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHIgPSBbXTtcbiAgICAgICAgZWFjaGZuKGFyciwgZnVuY3Rpb24gKHgsIGNiKSB7XG4gICAgICAgICAgICBmbih4LCBmdW5jdGlvbiAoZXJyLCB5KSB7XG4gICAgICAgICAgICAgICAgciA9IHIuY29uY2F0KHkgfHwgW10pO1xuICAgICAgICAgICAgICAgIGNiKGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyLCByKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBhc3luYy5jb25jYXQgPSBkb1BhcmFsbGVsKF9jb25jYXQpO1xuICAgIGFzeW5jLmNvbmNhdFNlcmllcyA9IGRvU2VyaWVzKF9jb25jYXQpO1xuXG4gICAgYXN5bmMud2hpbHN0ID0gZnVuY3Rpb24gKHRlc3QsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAodGVzdCgpKSB7XG4gICAgICAgICAgICBpdGVyYXRvcihmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXN5bmMud2hpbHN0KHRlc3QsIGl0ZXJhdG9yLCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgYXN5bmMuZG9XaGlsc3QgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIHRlc3QsIGNhbGxiYWNrKSB7XG4gICAgICAgIGl0ZXJhdG9yKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgIGlmICh0ZXN0LmFwcGx5KG51bGwsIGFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgYXN5bmMuZG9XaGlsc3QoaXRlcmF0b3IsIHRlc3QsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3luYy51bnRpbCA9IGZ1bmN0aW9uICh0ZXN0LCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0ZXN0KCkpIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhc3luYy51bnRpbCh0ZXN0LCBpdGVyYXRvciwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGFzeW5jLmRvVW50aWwgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIHRlc3QsIGNhbGxiYWNrKSB7XG4gICAgICAgIGl0ZXJhdG9yKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgIGlmICghdGVzdC5hcHBseShudWxsLCBhcmdzKSkge1xuICAgICAgICAgICAgICAgIGFzeW5jLmRvVW50aWwoaXRlcmF0b3IsIHRlc3QsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3luYy5xdWV1ZSA9IGZ1bmN0aW9uICh3b3JrZXIsIGNvbmN1cnJlbmN5KSB7XG4gICAgICAgIGlmIChjb25jdXJyZW5jeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25jdXJyZW5jeSA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gX2luc2VydChxLCBkYXRhLCBwb3MsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgaWYgKCFxLnN0YXJ0ZWQpe1xuICAgICAgICAgICAgcS5zdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFfaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICBkYXRhID0gW2RhdGFdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZihkYXRhLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgLy8gY2FsbCBkcmFpbiBpbW1lZGlhdGVseSBpZiB0aGVyZSBhcmUgbm8gdGFza3NcbiAgICAgICAgICAgICByZXR1cm4gYXN5bmMuc2V0SW1tZWRpYXRlKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICBpZiAocS5kcmFpbikge1xuICAgICAgICAgICAgICAgICAgICAgcS5kcmFpbigpO1xuICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIF9lYWNoKGRhdGEsIGZ1bmN0aW9uKHRhc2spIHtcbiAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiB0YXNrLFxuICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyA/IGNhbGxiYWNrIDogbnVsbFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIGlmIChwb3MpIHtcbiAgICAgICAgICAgICAgICBxLnRhc2tzLnVuc2hpZnQoaXRlbSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcS50YXNrcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHEuc2F0dXJhdGVkICYmIHEudGFza3MubGVuZ3RoID09PSBxLmNvbmN1cnJlbmN5KSB7XG4gICAgICAgICAgICAgICAgICBxLnNhdHVyYXRlZCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFzeW5jLnNldEltbWVkaWF0ZShxLnByb2Nlc3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHdvcmtlcnMgPSAwO1xuICAgICAgICB2YXIgcSA9IHtcbiAgICAgICAgICAgIHRhc2tzOiBbXSxcbiAgICAgICAgICAgIGNvbmN1cnJlbmN5OiBjb25jdXJyZW5jeSxcbiAgICAgICAgICAgIHNhdHVyYXRlZDogbnVsbCxcbiAgICAgICAgICAgIGVtcHR5OiBudWxsLFxuICAgICAgICAgICAgZHJhaW46IG51bGwsXG4gICAgICAgICAgICBzdGFydGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHBhdXNlZDogZmFsc2UsXG4gICAgICAgICAgICBwdXNoOiBmdW5jdGlvbiAoZGF0YSwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgX2luc2VydChxLCBkYXRhLCBmYWxzZSwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtpbGw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcS5kcmFpbiA9IG51bGw7XG4gICAgICAgICAgICAgIHEudGFza3MgPSBbXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1bnNoaWZ0OiBmdW5jdGlvbiAoZGF0YSwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgX2luc2VydChxLCBkYXRhLCB0cnVlLCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvY2VzczogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICghcS5wYXVzZWQgJiYgd29ya2VycyA8IHEuY29uY3VycmVuY3kgJiYgcS50YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhc2sgPSBxLnRhc2tzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxLmVtcHR5ICYmIHEudGFza3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBxLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd29ya2VycyArPSAxO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnMgLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXNrLmNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFzay5jYWxsYmFjay5hcHBseSh0YXNrLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHEuZHJhaW4gJiYgcS50YXNrcy5sZW5ndGggKyB3b3JrZXJzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcS5kcmFpbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcS5wcm9jZXNzKCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYiA9IG9ubHlfb25jZShuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgd29ya2VyKHRhc2suZGF0YSwgY2IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsZW5ndGg6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcS50YXNrcy5sZW5ndGg7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcnVubmluZzogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3b3JrZXJzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlkbGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBxLnRhc2tzLmxlbmd0aCArIHdvcmtlcnMgPT09IDA7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGF1c2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAocS5wYXVzZWQgPT09IHRydWUpIHsgcmV0dXJuOyB9XG4gICAgICAgICAgICAgICAgcS5wYXVzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHEucHJvY2VzcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc3VtZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChxLnBhdXNlZCA9PT0gZmFsc2UpIHsgcmV0dXJuOyB9XG4gICAgICAgICAgICAgICAgcS5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBxLnByb2Nlc3MoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHE7XG4gICAgfTtcbiAgICBcbiAgICBhc3luYy5wcmlvcml0eVF1ZXVlID0gZnVuY3Rpb24gKHdvcmtlciwgY29uY3VycmVuY3kpIHtcbiAgICAgICAgXG4gICAgICAgIGZ1bmN0aW9uIF9jb21wYXJlVGFza3MoYSwgYil7XG4gICAgICAgICAgcmV0dXJuIGEucHJpb3JpdHkgLSBiLnByaW9yaXR5O1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgZnVuY3Rpb24gX2JpbmFyeVNlYXJjaChzZXF1ZW5jZSwgaXRlbSwgY29tcGFyZSkge1xuICAgICAgICAgIHZhciBiZWcgPSAtMSxcbiAgICAgICAgICAgICAgZW5kID0gc2VxdWVuY2UubGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAoYmVnIDwgZW5kKSB7XG4gICAgICAgICAgICB2YXIgbWlkID0gYmVnICsgKChlbmQgLSBiZWcgKyAxKSA+Pj4gMSk7XG4gICAgICAgICAgICBpZiAoY29tcGFyZShpdGVtLCBzZXF1ZW5jZVttaWRdKSA+PSAwKSB7XG4gICAgICAgICAgICAgIGJlZyA9IG1pZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVuZCA9IG1pZCAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiZWc7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGZ1bmN0aW9uIF9pbnNlcnQocSwgZGF0YSwgcHJpb3JpdHksIGNhbGxiYWNrKSB7XG4gICAgICAgICAgaWYgKCFxLnN0YXJ0ZWQpe1xuICAgICAgICAgICAgcS5zdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFfaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICBkYXRhID0gW2RhdGFdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZihkYXRhLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgLy8gY2FsbCBkcmFpbiBpbW1lZGlhdGVseSBpZiB0aGVyZSBhcmUgbm8gdGFza3NcbiAgICAgICAgICAgICByZXR1cm4gYXN5bmMuc2V0SW1tZWRpYXRlKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICBpZiAocS5kcmFpbikge1xuICAgICAgICAgICAgICAgICAgICAgcS5kcmFpbigpO1xuICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIF9lYWNoKGRhdGEsIGZ1bmN0aW9uKHRhc2spIHtcbiAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiB0YXNrLFxuICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IHByaW9yaXR5LFxuICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyA/IGNhbGxiYWNrIDogbnVsbFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgcS50YXNrcy5zcGxpY2UoX2JpbmFyeVNlYXJjaChxLnRhc2tzLCBpdGVtLCBfY29tcGFyZVRhc2tzKSArIDEsIDAsIGl0ZW0pO1xuXG4gICAgICAgICAgICAgIGlmIChxLnNhdHVyYXRlZCAmJiBxLnRhc2tzLmxlbmd0aCA9PT0gcS5jb25jdXJyZW5jeSkge1xuICAgICAgICAgICAgICAgICAgcS5zYXR1cmF0ZWQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhc3luYy5zZXRJbW1lZGlhdGUocS5wcm9jZXNzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gU3RhcnQgd2l0aCBhIG5vcm1hbCBxdWV1ZVxuICAgICAgICB2YXIgcSA9IGFzeW5jLnF1ZXVlKHdvcmtlciwgY29uY3VycmVuY3kpO1xuICAgICAgICBcbiAgICAgICAgLy8gT3ZlcnJpZGUgcHVzaCB0byBhY2NlcHQgc2Vjb25kIHBhcmFtZXRlciByZXByZXNlbnRpbmcgcHJpb3JpdHlcbiAgICAgICAgcS5wdXNoID0gZnVuY3Rpb24gKGRhdGEsIHByaW9yaXR5LCBjYWxsYmFjaykge1xuICAgICAgICAgIF9pbnNlcnQocSwgZGF0YSwgcHJpb3JpdHksIGNhbGxiYWNrKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlbW92ZSB1bnNoaWZ0IGZ1bmN0aW9uXG4gICAgICAgIGRlbGV0ZSBxLnVuc2hpZnQ7XG5cbiAgICAgICAgcmV0dXJuIHE7XG4gICAgfTtcblxuICAgIGFzeW5jLmNhcmdvID0gZnVuY3Rpb24gKHdvcmtlciwgcGF5bG9hZCkge1xuICAgICAgICB2YXIgd29ya2luZyAgICAgPSBmYWxzZSxcbiAgICAgICAgICAgIHRhc2tzICAgICAgID0gW107XG5cbiAgICAgICAgdmFyIGNhcmdvID0ge1xuICAgICAgICAgICAgdGFza3M6IHRhc2tzLFxuICAgICAgICAgICAgcGF5bG9hZDogcGF5bG9hZCxcbiAgICAgICAgICAgIHNhdHVyYXRlZDogbnVsbCxcbiAgICAgICAgICAgIGVtcHR5OiBudWxsLFxuICAgICAgICAgICAgZHJhaW46IG51bGwsXG4gICAgICAgICAgICBkcmFpbmVkOiB0cnVlLFxuICAgICAgICAgICAgcHVzaDogZnVuY3Rpb24gKGRhdGEsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0gW2RhdGFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfZWFjaChkYXRhLCBmdW5jdGlvbih0YXNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogdGFzayxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicgPyBjYWxsYmFjayA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNhcmdvLmRyYWluZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhcmdvLnNhdHVyYXRlZCAmJiB0YXNrcy5sZW5ndGggPT09IHBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcmdvLnNhdHVyYXRlZCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYXN5bmMuc2V0SW1tZWRpYXRlKGNhcmdvLnByb2Nlc3MpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb2Nlc3M6IGZ1bmN0aW9uIHByb2Nlc3MoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtpbmcpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAodGFza3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmKGNhcmdvLmRyYWluICYmICFjYXJnby5kcmFpbmVkKSBjYXJnby5kcmFpbigpO1xuICAgICAgICAgICAgICAgICAgICBjYXJnby5kcmFpbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciB0cyA9IHR5cGVvZiBwYXlsb2FkID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGFza3Muc3BsaWNlKDAsIHBheWxvYWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YXNrcy5zcGxpY2UoMCwgdGFza3MubGVuZ3RoKTtcblxuICAgICAgICAgICAgICAgIHZhciBkcyA9IF9tYXAodHMsIGZ1bmN0aW9uICh0YXNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXNrLmRhdGE7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZihjYXJnby5lbXB0eSkgY2FyZ28uZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB3b3JraW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB3b3JrZXIoZHMsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgd29ya2luZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICBfZWFjaCh0cywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5jYWxsYmFjay5hcHBseShudWxsLCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcHJvY2VzcygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxlbmd0aDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YXNrcy5sZW5ndGg7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcnVubmluZzogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3b3JraW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY2FyZ287XG4gICAgfTtcblxuICAgIHZhciBfY29uc29sZV9mbiA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgIGZuLmFwcGx5KG51bGwsIGFyZ3MuY29uY2F0KFtmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnNvbGUuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29uc29sZVtuYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2VhY2goYXJncywgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlW25hbWVdKHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XSkpO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgYXN5bmMubG9nID0gX2NvbnNvbGVfZm4oJ2xvZycpO1xuICAgIGFzeW5jLmRpciA9IF9jb25zb2xlX2ZuKCdkaXInKTtcbiAgICAvKmFzeW5jLmluZm8gPSBfY29uc29sZV9mbignaW5mbycpO1xuICAgIGFzeW5jLndhcm4gPSBfY29uc29sZV9mbignd2FybicpO1xuICAgIGFzeW5jLmVycm9yID0gX2NvbnNvbGVfZm4oJ2Vycm9yJyk7Ki9cblxuICAgIGFzeW5jLm1lbW9pemUgPSBmdW5jdGlvbiAoZm4sIGhhc2hlcikge1xuICAgICAgICB2YXIgbWVtbyA9IHt9O1xuICAgICAgICB2YXIgcXVldWVzID0ge307XG4gICAgICAgIGhhc2hlciA9IGhhc2hlciB8fCBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBtZW1vaXplZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3MucG9wKCk7XG4gICAgICAgICAgICB2YXIga2V5ID0gaGFzaGVyLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgICAgICAgICAgaWYgKGtleSBpbiBtZW1vKSB7XG4gICAgICAgICAgICAgICAgYXN5bmMubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5hcHBseShudWxsLCBtZW1vW2tleV0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoa2V5IGluIHF1ZXVlcykge1xuICAgICAgICAgICAgICAgIHF1ZXVlc1trZXldLnB1c2goY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcXVldWVzW2tleV0gPSBbY2FsbGJhY2tdO1xuICAgICAgICAgICAgICAgIGZuLmFwcGx5KG51bGwsIGFyZ3MuY29uY2F0KFtmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbW9ba2V5XSA9IGFyZ3VtZW50cztcbiAgICAgICAgICAgICAgICAgICAgdmFyIHEgPSBxdWV1ZXNba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHF1ZXVlc1trZXldO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcVtpXS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgbWVtb2l6ZWQubWVtbyA9IG1lbW87XG4gICAgICAgIG1lbW9pemVkLnVubWVtb2l6ZWQgPSBmbjtcbiAgICAgICAgcmV0dXJuIG1lbW9pemVkO1xuICAgIH07XG5cbiAgICBhc3luYy51bm1lbW9pemUgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoZm4udW5tZW1vaXplZCB8fCBmbikuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGFzeW5jLnRpbWVzID0gZnVuY3Rpb24gKGNvdW50LCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGNvdW50ZXIgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBjb3VudGVyLnB1c2goaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFzeW5jLm1hcChjb3VudGVyLCBpdGVyYXRvciwgY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBhc3luYy50aW1lc1NlcmllcyA9IGZ1bmN0aW9uIChjb3VudCwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBjb3VudGVyID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgY291bnRlci5wdXNoKGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhc3luYy5tYXBTZXJpZXMoY291bnRlciwgaXRlcmF0b3IsIGNhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgYXN5bmMuc2VxID0gZnVuY3Rpb24gKC8qIGZ1bmN0aW9ucy4uLiAqLykge1xuICAgICAgICB2YXIgZm5zID0gYXJndW1lbnRzO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJncy5wb3AoKTtcbiAgICAgICAgICAgIGFzeW5jLnJlZHVjZShmbnMsIGFyZ3MsIGZ1bmN0aW9uIChuZXdhcmdzLCBmbiwgY2IpIHtcbiAgICAgICAgICAgICAgICBmbi5hcHBseSh0aGF0LCBuZXdhcmdzLmNvbmNhdChbZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXJyID0gYXJndW1lbnRzWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgICAgICAgICBjYihlcnIsIG5leHRhcmdzKTtcbiAgICAgICAgICAgICAgICB9XSkpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVuY3Rpb24gKGVyciwgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KHRoYXQsIFtlcnJdLmNvbmNhdChyZXN1bHRzKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgYXN5bmMuY29tcG9zZSA9IGZ1bmN0aW9uICgvKiBmdW5jdGlvbnMuLi4gKi8pIHtcbiAgICAgIHJldHVybiBhc3luYy5zZXEuYXBwbHkobnVsbCwgQXJyYXkucHJvdG90eXBlLnJldmVyc2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgdmFyIF9hcHBseUVhY2ggPSBmdW5jdGlvbiAoZWFjaGZuLCBmbnMgLyphcmdzLi4uKi8pIHtcbiAgICAgICAgdmFyIGdvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJncy5wb3AoKTtcbiAgICAgICAgICAgIHJldHVybiBlYWNoZm4oZm5zLCBmdW5jdGlvbiAoZm4sIGNiKSB7XG4gICAgICAgICAgICAgICAgZm4uYXBwbHkodGhhdCwgYXJncy5jb25jYXQoW2NiXSkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbGxiYWNrKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG4gICAgICAgICAgICByZXR1cm4gZ28uYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ287XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGFzeW5jLmFwcGx5RWFjaCA9IGRvUGFyYWxsZWwoX2FwcGx5RWFjaCk7XG4gICAgYXN5bmMuYXBwbHlFYWNoU2VyaWVzID0gZG9TZXJpZXMoX2FwcGx5RWFjaCk7XG5cbiAgICBhc3luYy5mb3JldmVyID0gZnVuY3Rpb24gKGZuLCBjYWxsYmFjaykge1xuICAgICAgICBmdW5jdGlvbiBuZXh0KGVycikge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm4obmV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgbmV4dCgpO1xuICAgIH07XG5cbiAgICAvLyBOb2RlLmpzXG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gYXN5bmM7XG4gICAgfVxuICAgIC8vIEFNRCAvIFJlcXVpcmVKU1xuICAgIGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgIT09ICd1bmRlZmluZWQnICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgZGVmaW5lKFtdLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmM7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBpbmNsdWRlZCBkaXJlY3RseSB2aWEgPHNjcmlwdD4gdGFnXG4gICAgZWxzZSB7XG4gICAgICAgIHJvb3QuYXN5bmMgPSBhc3luYztcbiAgICB9XG5cbn0oKSk7XG4iLCIvKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIEVtaXR0ZXIgPSByZXF1aXJlKCdlbWl0dGVyJyk7XG52YXIgcmVkdWNlID0gcmVxdWlyZSgncmVkdWNlJyk7XG5cbi8qKlxuICogUm9vdCByZWZlcmVuY2UgZm9yIGlmcmFtZXMuXG4gKi9cblxudmFyIHJvb3QgPSAndW5kZWZpbmVkJyA9PSB0eXBlb2Ygd2luZG93XG4gID8gdGhpc1xuICA6IHdpbmRvdztcblxuLyoqXG4gKiBOb29wLlxuICovXG5cbmZ1bmN0aW9uIG5vb3AoKXt9O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGEgaG9zdCBvYmplY3QsXG4gKiB3ZSBkb24ndCB3YW50IHRvIHNlcmlhbGl6ZSB0aGVzZSA6KVxuICpcbiAqIFRPRE86IGZ1dHVyZSBwcm9vZiwgbW92ZSB0byBjb21wb2VudCBsYW5kXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzSG9zdChvYmopIHtcbiAgdmFyIHN0ciA9IHt9LnRvU3RyaW5nLmNhbGwob2JqKTtcblxuICBzd2l0Y2ggKHN0cikge1xuICAgIGNhc2UgJ1tvYmplY3QgRmlsZV0nOlxuICAgIGNhc2UgJ1tvYmplY3QgQmxvYl0nOlxuICAgIGNhc2UgJ1tvYmplY3QgRm9ybURhdGFdJzpcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgWEhSLlxuICovXG5cbmZ1bmN0aW9uIGdldFhIUigpIHtcbiAgaWYgKHJvb3QuWE1MSHR0cFJlcXVlc3RcbiAgICAmJiAoJ2ZpbGU6JyAhPSByb290LmxvY2F0aW9uLnByb3RvY29sIHx8ICFyb290LkFjdGl2ZVhPYmplY3QpKSB7XG4gICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgfSBlbHNlIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjYuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUC4zLjAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UsIGFkZGVkIHRvIHN1cHBvcnQgSUUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbnZhciB0cmltID0gJycudHJpbVxuICA/IGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMudHJpbSgpOyB9XG4gIDogZnVuY3Rpb24ocykgeyByZXR1cm4gcy5yZXBsYWNlKC8oXlxccyp8XFxzKiQpL2csICcnKTsgfTtcblxuLyoqXG4gKiBDaGVjayBpZiBgb2JqYCBpcyBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzT2JqZWN0KG9iaikge1xuICByZXR1cm4gb2JqID09PSBPYmplY3Qob2JqKTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIGdpdmVuIGBvYmpgLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZShvYmopIHtcbiAgaWYgKCFpc09iamVjdChvYmopKSByZXR1cm4gb2JqO1xuICB2YXIgcGFpcnMgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGlmIChudWxsICE9IG9ialtrZXldKSB7XG4gICAgICBwYWlycy5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChrZXkpXG4gICAgICAgICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG9ialtrZXldKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYWlycy5qb2luKCcmJyk7XG59XG5cbi8qKlxuICogRXhwb3NlIHNlcmlhbGl6YXRpb24gbWV0aG9kLlxuICovXG5cbiByZXF1ZXN0LnNlcmlhbGl6ZU9iamVjdCA9IHNlcmlhbGl6ZTtcblxuIC8qKlxuICAqIFBhcnNlIHRoZSBnaXZlbiB4LXd3dy1mb3JtLXVybGVuY29kZWQgYHN0cmAuXG4gICpcbiAgKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gICogQHJldHVybiB7T2JqZWN0fVxuICAqIEBhcGkgcHJpdmF0ZVxuICAqL1xuXG5mdW5jdGlvbiBwYXJzZVN0cmluZyhzdHIpIHtcbiAgdmFyIG9iaiA9IHt9O1xuICB2YXIgcGFpcnMgPSBzdHIuc3BsaXQoJyYnKTtcbiAgdmFyIHBhcnRzO1xuICB2YXIgcGFpcjtcblxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gcGFpcnMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICBwYWlyID0gcGFpcnNbaV07XG4gICAgcGFydHMgPSBwYWlyLnNwbGl0KCc9Jyk7XG4gICAgb2JqW2RlY29kZVVSSUNvbXBvbmVudChwYXJ0c1swXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzFdKTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogRXhwb3NlIHBhcnNlci5cbiAqL1xuXG5yZXF1ZXN0LnBhcnNlU3RyaW5nID0gcGFyc2VTdHJpbmc7XG5cbi8qKlxuICogRGVmYXVsdCBNSU1FIHR5cGUgbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqL1xuXG5yZXF1ZXN0LnR5cGVzID0ge1xuICBodG1sOiAndGV4dC9odG1sJyxcbiAganNvbjogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB4bWw6ICdhcHBsaWNhdGlvbi94bWwnLFxuICB1cmxlbmNvZGVkOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgJ2Zvcm0nOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgJ2Zvcm0tZGF0YSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG59O1xuXG4vKipcbiAqIERlZmF1bHQgc2VyaWFsaXphdGlvbiBtYXAuXG4gKlxuICogICAgIHN1cGVyYWdlbnQuc2VyaWFsaXplWydhcHBsaWNhdGlvbi94bWwnXSA9IGZ1bmN0aW9uKG9iail7XG4gKiAgICAgICByZXR1cm4gJ2dlbmVyYXRlZCB4bWwgaGVyZSc7XG4gKiAgICAgfTtcbiAqXG4gKi9cblxuIHJlcXVlc3Quc2VyaWFsaXplID0ge1xuICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHNlcmlhbGl6ZSxcbiAgICdhcHBsaWNhdGlvbi9qc29uJzogSlNPTi5zdHJpbmdpZnlcbiB9O1xuXG4gLyoqXG4gICogRGVmYXVsdCBwYXJzZXJzLlxuICAqXG4gICogICAgIHN1cGVyYWdlbnQucGFyc2VbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24oc3RyKXtcbiAgKiAgICAgICByZXR1cm4geyBvYmplY3QgcGFyc2VkIGZyb20gc3RyIH07XG4gICogICAgIH07XG4gICpcbiAgKi9cblxucmVxdWVzdC5wYXJzZSA9IHtcbiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHBhcnNlU3RyaW5nLFxuICAnYXBwbGljYXRpb24vanNvbic6IEpTT04ucGFyc2Vcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGhlYWRlciBgc3RyYCBpbnRvXG4gKiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbWFwcGVkIGZpZWxkcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZUhlYWRlcihzdHIpIHtcbiAgdmFyIGxpbmVzID0gc3RyLnNwbGl0KC9cXHI/XFxuLyk7XG4gIHZhciBmaWVsZHMgPSB7fTtcbiAgdmFyIGluZGV4O1xuICB2YXIgbGluZTtcbiAgdmFyIGZpZWxkO1xuICB2YXIgdmFsO1xuXG4gIGxpbmVzLnBvcCgpOyAvLyB0cmFpbGluZyBDUkxGXG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGxpbmVzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgbGluZSA9IGxpbmVzW2ldO1xuICAgIGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgZmllbGQgPSBsaW5lLnNsaWNlKDAsIGluZGV4KS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IHRyaW0obGluZS5zbGljZShpbmRleCArIDEpKTtcbiAgICBmaWVsZHNbZmllbGRdID0gdmFsO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIG1pbWUgdHlwZSBmb3IgdGhlIGdpdmVuIGBzdHJgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHR5cGUoc3RyKXtcbiAgcmV0dXJuIHN0ci5zcGxpdCgvICo7ICovKS5zaGlmdCgpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gaGVhZGVyIGZpZWxkIHBhcmFtZXRlcnMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyYW1zKHN0cil7XG4gIHJldHVybiByZWR1Y2Uoc3RyLnNwbGl0KC8gKjsgKi8pLCBmdW5jdGlvbihvYmosIHN0cil7XG4gICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KC8gKj0gKi8pXG4gICAgICAsIGtleSA9IHBhcnRzLnNoaWZ0KClcbiAgICAgICwgdmFsID0gcGFydHMuc2hpZnQoKTtcblxuICAgIGlmIChrZXkgJiYgdmFsKSBvYmpba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gb2JqO1xuICB9LCB7fSk7XG59O1xuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgYFJlc3BvbnNlYCB3aXRoIHRoZSBnaXZlbiBgeGhyYC5cbiAqXG4gKiAgLSBzZXQgZmxhZ3MgKC5vaywgLmVycm9yLCBldGMpXG4gKiAgLSBwYXJzZSBoZWFkZXJcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgQWxpYXNpbmcgYHN1cGVyYWdlbnRgIGFzIGByZXF1ZXN0YCBpcyBuaWNlOlxuICpcbiAqICAgICAgcmVxdWVzdCA9IHN1cGVyYWdlbnQ7XG4gKlxuICogIFdlIGNhbiB1c2UgdGhlIHByb21pc2UtbGlrZSBBUEksIG9yIHBhc3MgY2FsbGJhY2tzOlxuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy8nKS5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqICAgICAgcmVxdWVzdC5nZXQoJy8nLCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBTZW5kaW5nIGRhdGEgY2FuIGJlIGNoYWluZWQ6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJylcbiAqICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIE9yIHBhc3NlZCB0byBgLnNlbmQoKWA6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJylcbiAqICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSwgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAucG9zdCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInLCB7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogT3IgZnVydGhlciByZWR1Y2VkIHRvIGEgc2luZ2xlIGNhbGwgZm9yIHNpbXBsZSBjYXNlczpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInLCB7IG5hbWU6ICd0aicgfSwgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBAcGFyYW0ge1hNTEhUVFBSZXF1ZXN0fSB4aHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBSZXNwb25zZShyZXEsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHRoaXMucmVxID0gcmVxO1xuICB0aGlzLnhociA9IHRoaXMucmVxLnhocjtcbiAgdGhpcy50ZXh0ID0gdGhpcy5yZXEubWV0aG9kICE9J0hFQUQnIFxuICAgICA/IHRoaXMueGhyLnJlc3BvbnNlVGV4dCBcbiAgICAgOiBudWxsO1xuICB0aGlzLnNldFN0YXR1c1Byb3BlcnRpZXModGhpcy54aHIuc3RhdHVzKTtcbiAgdGhpcy5oZWFkZXIgPSB0aGlzLmhlYWRlcnMgPSBwYXJzZUhlYWRlcih0aGlzLnhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gIC8vIGdldEFsbFJlc3BvbnNlSGVhZGVycyBzb21ldGltZXMgZmFsc2VseSByZXR1cm5zIFwiXCIgZm9yIENPUlMgcmVxdWVzdHMsIGJ1dFxuICAvLyBnZXRSZXNwb25zZUhlYWRlciBzdGlsbCB3b3Jrcy4gc28gd2UgZ2V0IGNvbnRlbnQtdHlwZSBldmVuIGlmIGdldHRpbmdcbiAgLy8gb3RoZXIgaGVhZGVycyBmYWlscy5cbiAgdGhpcy5oZWFkZXJbJ2NvbnRlbnQtdHlwZSddID0gdGhpcy54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ2NvbnRlbnQtdHlwZScpO1xuICB0aGlzLnNldEhlYWRlclByb3BlcnRpZXModGhpcy5oZWFkZXIpO1xuICB0aGlzLmJvZHkgPSB0aGlzLnJlcS5tZXRob2QgIT0gJ0hFQUQnXG4gICAgPyB0aGlzLnBhcnNlQm9keSh0aGlzLnRleHQpXG4gICAgOiBudWxsO1xufVxuXG4vKipcbiAqIEdldCBjYXNlLWluc2Vuc2l0aXZlIGBmaWVsZGAgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHJldHVybiB0aGlzLmhlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciByZWxhdGVkIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGAudHlwZWAgdGhlIGNvbnRlbnQgdHlwZSB3aXRob3V0IHBhcmFtc1xuICpcbiAqIEEgcmVzcG9uc2Ugb2YgXCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLThcIlxuICogd2lsbCBwcm92aWRlIHlvdSB3aXRoIGEgYC50eXBlYCBvZiBcInRleHQvcGxhaW5cIi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaGVhZGVyXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuc2V0SGVhZGVyUHJvcGVydGllcyA9IGZ1bmN0aW9uKGhlYWRlcil7XG4gIC8vIGNvbnRlbnQtdHlwZVxuICB2YXIgY3QgPSB0aGlzLmhlYWRlclsnY29udGVudC10eXBlJ10gfHwgJyc7XG4gIHRoaXMudHlwZSA9IHR5cGUoY3QpO1xuXG4gIC8vIHBhcmFtc1xuICB2YXIgb2JqID0gcGFyYW1zKGN0KTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikgdGhpc1trZXldID0gb2JqW2tleV07XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBib2R5IGBzdHJgLlxuICpcbiAqIFVzZWQgZm9yIGF1dG8tcGFyc2luZyBvZiBib2RpZXMuIFBhcnNlcnNcbiAqIGFyZSBkZWZpbmVkIG9uIHRoZSBgc3VwZXJhZ2VudC5wYXJzZWAgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge01peGVkfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnBhcnNlQm9keSA9IGZ1bmN0aW9uKHN0cil7XG4gIHZhciBwYXJzZSA9IHJlcXVlc3QucGFyc2VbdGhpcy50eXBlXTtcbiAgcmV0dXJuIHBhcnNlICYmIHN0ciAmJiBzdHIubGVuZ3RoXG4gICAgPyBwYXJzZShzdHIpXG4gICAgOiBudWxsO1xufTtcblxuLyoqXG4gKiBTZXQgZmxhZ3Mgc3VjaCBhcyBgLm9rYCBiYXNlZCBvbiBgc3RhdHVzYC5cbiAqXG4gKiBGb3IgZXhhbXBsZSBhIDJ4eCByZXNwb25zZSB3aWxsIGdpdmUgeW91IGEgYC5va2Agb2YgX190cnVlX19cbiAqIHdoZXJlYXMgNXh4IHdpbGwgYmUgX19mYWxzZV9fIGFuZCBgLmVycm9yYCB3aWxsIGJlIF9fdHJ1ZV9fLiBUaGVcbiAqIGAuY2xpZW50RXJyb3JgIGFuZCBgLnNlcnZlckVycm9yYCBhcmUgYWxzbyBhdmFpbGFibGUgdG8gYmUgbW9yZVxuICogc3BlY2lmaWMsIGFuZCBgLnN0YXR1c1R5cGVgIGlzIHRoZSBjbGFzcyBvZiBlcnJvciByYW5naW5nIGZyb20gMS4uNVxuICogc29tZXRpbWVzIHVzZWZ1bCBmb3IgbWFwcGluZyByZXNwb25kIGNvbG9ycyBldGMuXG4gKlxuICogXCJzdWdhclwiIHByb3BlcnRpZXMgYXJlIGFsc28gZGVmaW5lZCBmb3IgY29tbW9uIGNhc2VzLiBDdXJyZW50bHkgcHJvdmlkaW5nOlxuICpcbiAqICAgLSAubm9Db250ZW50XG4gKiAgIC0gLmJhZFJlcXVlc3RcbiAqICAgLSAudW5hdXRob3JpemVkXG4gKiAgIC0gLm5vdEFjY2VwdGFibGVcbiAqICAgLSAubm90Rm91bmRcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gc3RhdHVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuc2V0U3RhdHVzUHJvcGVydGllcyA9IGZ1bmN0aW9uKHN0YXR1cyl7XG4gIHZhciB0eXBlID0gc3RhdHVzIC8gMTAwIHwgMDtcblxuICAvLyBzdGF0dXMgLyBjbGFzc1xuICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgdGhpcy5zdGF0dXNUeXBlID0gdHlwZTtcblxuICAvLyBiYXNpY3NcbiAgdGhpcy5pbmZvID0gMSA9PSB0eXBlO1xuICB0aGlzLm9rID0gMiA9PSB0eXBlO1xuICB0aGlzLmNsaWVudEVycm9yID0gNCA9PSB0eXBlO1xuICB0aGlzLnNlcnZlckVycm9yID0gNSA9PSB0eXBlO1xuICB0aGlzLmVycm9yID0gKDQgPT0gdHlwZSB8fCA1ID09IHR5cGUpXG4gICAgPyB0aGlzLnRvRXJyb3IoKVxuICAgIDogZmFsc2U7XG5cbiAgLy8gc3VnYXJcbiAgdGhpcy5hY2NlcHRlZCA9IDIwMiA9PSBzdGF0dXM7XG4gIHRoaXMubm9Db250ZW50ID0gMjA0ID09IHN0YXR1cyB8fCAxMjIzID09IHN0YXR1cztcbiAgdGhpcy5iYWRSZXF1ZXN0ID0gNDAwID09IHN0YXR1cztcbiAgdGhpcy51bmF1dGhvcml6ZWQgPSA0MDEgPT0gc3RhdHVzO1xuICB0aGlzLm5vdEFjY2VwdGFibGUgPSA0MDYgPT0gc3RhdHVzO1xuICB0aGlzLm5vdEZvdW5kID0gNDA0ID09IHN0YXR1cztcbiAgdGhpcy5mb3JiaWRkZW4gPSA0MDMgPT0gc3RhdHVzO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYEVycm9yYCByZXByZXNlbnRhdGl2ZSBvZiB0aGlzIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm4ge0Vycm9yfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9FcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gIHZhciB1cmwgPSByZXEudXJsO1xuXG4gIHZhciBtc2cgPSAnY2Fubm90ICcgKyBtZXRob2QgKyAnICcgKyB1cmwgKyAnICgnICsgdGhpcy5zdGF0dXMgKyAnKSc7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gbWV0aG9kO1xuICBlcnIudXJsID0gdXJsO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VgLlxuICovXG5cbnJlcXVlc3QuUmVzcG9uc2UgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0YCB3aXRoIHRoZSBnaXZlbiBgbWV0aG9kYCBhbmQgYHVybGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgRW1pdHRlci5jYWxsKHRoaXMpO1xuICB0aGlzLl9xdWVyeSA9IHRoaXMuX3F1ZXJ5IHx8IFtdO1xuICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgdGhpcy51cmwgPSB1cmw7XG4gIHRoaXMuaGVhZGVyID0ge307XG4gIHRoaXMuX2hlYWRlciA9IHt9O1xuICB0aGlzLm9uKCdlbmQnLCBmdW5jdGlvbigpe1xuICAgIHZhciBlcnIgPSBudWxsO1xuICAgIHZhciByZXMgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IG5ldyBSZXNwb25zZShzZWxmKTsgXG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBlcnIgPSBuZXcgRXJyb3IoJ1BhcnNlciBpcyB1bmFibGUgdG8gcGFyc2UgdGhlIHJlc3BvbnNlJyk7XG4gICAgICBlcnIucGFyc2UgPSB0cnVlO1xuICAgICAgZXJyLm9yaWdpbmFsID0gZTtcbiAgICB9XG5cbiAgICBzZWxmLmNhbGxiYWNrKGVyciwgcmVzKTtcbiAgfSk7XG59XG5cbi8qKlxuICogTWl4aW4gYEVtaXR0ZXJgLlxuICovXG5cbkVtaXR0ZXIoUmVxdWVzdC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIEFsbG93IGZvciBleHRlbnNpb25cbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbihmbikge1xuICBmbih0aGlzKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogU2V0IHRpbWVvdXQgdG8gYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS50aW1lb3V0ID0gZnVuY3Rpb24obXMpe1xuICB0aGlzLl90aW1lb3V0ID0gbXM7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDbGVhciBwcmV2aW91cyB0aW1lb3V0LlxuICpcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jbGVhclRpbWVvdXQgPSBmdW5jdGlvbigpe1xuICB0aGlzLl90aW1lb3V0ID0gMDtcbiAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEFib3J0IHRoZSByZXF1ZXN0LCBhbmQgY2xlYXIgcG90ZW50aWFsIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYWJvcnQgPSBmdW5jdGlvbigpe1xuICBpZiAodGhpcy5hYm9ydGVkKSByZXR1cm47XG4gIHRoaXMuYWJvcnRlZCA9IHRydWU7XG4gIHRoaXMueGhyLmFib3J0KCk7XG4gIHRoaXMuY2xlYXJUaW1lb3V0KCk7XG4gIHRoaXMuZW1pdCgnYWJvcnQnKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBoZWFkZXIgYGZpZWxkYCB0byBgdmFsYCwgb3IgbXVsdGlwbGUgZmllbGRzIHdpdGggb25lIG9iamVjdC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC5zZXQoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJylcbiAqICAgICAgICAuc2V0KCdYLUFQSS1LZXknLCAnZm9vYmFyJylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC5zZXQoeyBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJywgJ1gtQVBJLUtleSc6ICdmb29iYXInIH0pXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBmaWVsZFxuICogQHBhcmFtIHtTdHJpbmd9IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKGZpZWxkLCB2YWwpe1xuICBpZiAoaXNPYmplY3QoZmllbGQpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGZpZWxkKSB7XG4gICAgICB0aGlzLnNldChrZXksIGZpZWxkW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV0gPSB2YWw7XG4gIHRoaXMuaGVhZGVyW2ZpZWxkXSA9IHZhbDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBoZWFkZXIgYGZpZWxkYC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnVuc2V0KCdVc2VyLUFnZW50JylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS51bnNldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgZGVsZXRlIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbiAgZGVsZXRlIHRoaXMuaGVhZGVyW2ZpZWxkXTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEdldCBjYXNlLWluc2Vuc2l0aXZlIGhlYWRlciBgZmllbGRgIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuZ2V0SGVhZGVyID0gZnVuY3Rpb24oZmllbGQpe1xuICByZXR1cm4gdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xufTtcblxuLyoqXG4gKiBTZXQgQ29udGVudC1UeXBlIHRvIGB0eXBlYCwgbWFwcGluZyB2YWx1ZXMgZnJvbSBgcmVxdWVzdC50eXBlc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqICAgICAgcmVxdWVzdC5wb3N0KCcvJylcbiAqICAgICAgICAudHlwZSgneG1sJylcbiAqICAgICAgICAuc2VuZCh4bWxzdHJpbmcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCdhcHBsaWNhdGlvbi94bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnR5cGUgPSBmdW5jdGlvbih0eXBlKXtcbiAgdGhpcy5zZXQoJ0NvbnRlbnQtVHlwZScsIHJlcXVlc3QudHlwZXNbdHlwZV0gfHwgdHlwZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgQWNjZXB0IHRvIGB0eXBlYCwgbWFwcGluZyB2YWx1ZXMgZnJvbSBgcmVxdWVzdC50eXBlc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICBzdXBlcmFnZW50LnR5cGVzLmpzb24gPSAnYXBwbGljYXRpb24vanNvbic7XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnL2FnZW50JylcbiAqICAgICAgICAuYWNjZXB0KCdqc29uJylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhY2NlcHRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hY2NlcHQgPSBmdW5jdGlvbih0eXBlKXtcbiAgdGhpcy5zZXQoJ0FjY2VwdCcsIHJlcXVlc3QudHlwZXNbdHlwZV0gfHwgdHlwZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgQXV0aG9yaXphdGlvbiBmaWVsZCB2YWx1ZSB3aXRoIGB1c2VyYCBhbmQgYHBhc3NgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFzc1xuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmF1dGggPSBmdW5jdGlvbih1c2VyLCBwYXNzKXtcbiAgdmFyIHN0ciA9IGJ0b2EodXNlciArICc6JyArIHBhc3MpO1xuICB0aGlzLnNldCgnQXV0aG9yaXphdGlvbicsICdCYXNpYyAnICsgc3RyKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiogQWRkIHF1ZXJ5LXN0cmluZyBgdmFsYC5cbipcbiogRXhhbXBsZXM6XG4qXG4qICAgcmVxdWVzdC5nZXQoJy9zaG9lcycpXG4qICAgICAucXVlcnkoJ3NpemU9MTAnKVxuKiAgICAgLnF1ZXJ5KHsgY29sb3I6ICdibHVlJyB9KVxuKlxuKiBAcGFyYW0ge09iamVjdHxTdHJpbmd9IHZhbFxuKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiogQGFwaSBwdWJsaWNcbiovXG5cblJlcXVlc3QucHJvdG90eXBlLnF1ZXJ5ID0gZnVuY3Rpb24odmFsKXtcbiAgaWYgKCdzdHJpbmcnICE9IHR5cGVvZiB2YWwpIHZhbCA9IHNlcmlhbGl6ZSh2YWwpO1xuICBpZiAodmFsKSB0aGlzLl9xdWVyeS5wdXNoKHZhbCk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBXcml0ZSB0aGUgZmllbGQgYG5hbWVgIGFuZCBgdmFsYCBmb3IgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCJcbiAqIHJlcXVlc3QgYm9kaWVzLlxuICpcbiAqIGBgYCBqc1xuICogcmVxdWVzdC5wb3N0KCcvdXBsb2FkJylcbiAqICAgLmZpZWxkKCdmb28nLCAnYmFyJylcbiAqICAgLmVuZChjYWxsYmFjayk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd8QmxvYnxGaWxlfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5maWVsZCA9IGZ1bmN0aW9uKG5hbWUsIHZhbCl7XG4gIGlmICghdGhpcy5fZm9ybURhdGEpIHRoaXMuX2Zvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gIHRoaXMuX2Zvcm1EYXRhLmFwcGVuZChuYW1lLCB2YWwpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUXVldWUgdGhlIGdpdmVuIGBmaWxlYCBhcyBhbiBhdHRhY2htZW50IHRvIHRoZSBzcGVjaWZpZWQgYGZpZWxkYCxcbiAqIHdpdGggb3B0aW9uYWwgYGZpbGVuYW1lYC5cbiAqXG4gKiBgYGAganNcbiAqIHJlcXVlc3QucG9zdCgnL3VwbG9hZCcpXG4gKiAgIC5hdHRhY2gobmV3IEJsb2IoWyc8YSBpZD1cImFcIj48YiBpZD1cImJcIj5oZXkhPC9iPjwvYT4nXSwgeyB0eXBlOiBcInRleHQvaHRtbFwifSkpXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcGFyYW0ge0Jsb2J8RmlsZX0gZmlsZVxuICogQHBhcmFtIHtTdHJpbmd9IGZpbGVuYW1lXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXR0YWNoID0gZnVuY3Rpb24oZmllbGQsIGZpbGUsIGZpbGVuYW1lKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkgdGhpcy5fZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgdGhpcy5fZm9ybURhdGEuYXBwZW5kKGZpZWxkLCBmaWxlLCBmaWxlbmFtZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZW5kIGBkYXRhYCwgZGVmYXVsdGluZyB0aGUgYC50eXBlKClgIHRvIFwianNvblwiIHdoZW5cbiAqIGFuIG9iamVjdCBpcyBnaXZlbi5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgICAvLyBxdWVyeXN0cmluZ1xuICogICAgICAgcmVxdWVzdC5nZXQoJy9zZWFyY2gnKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG11bHRpcGxlIGRhdGEgXCJ3cml0ZXNcIlxuICogICAgICAgcmVxdWVzdC5nZXQoJy9zZWFyY2gnKVxuICogICAgICAgICAuc2VuZCh7IHNlYXJjaDogJ3F1ZXJ5JyB9KVxuICogICAgICAgICAuc2VuZCh7IHJhbmdlOiAnMS4uNScgfSlcbiAqICAgICAgICAgLnNlbmQoeyBvcmRlcjogJ2Rlc2MnIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gbWFudWFsIGpzb25cbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnanNvbicpXG4gKiAgICAgICAgIC5zZW5kKCd7XCJuYW1lXCI6XCJ0alwifSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIGpzb25cbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBtYW51YWwgeC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2Zvcm0nKVxuICogICAgICAgICAuc2VuZCgnbmFtZT10aicpXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gYXV0byB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGRlZmF1bHRzIHRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAqICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gICogICAgICAgIC5zZW5kKCduYW1lPXRvYmknKVxuICAqICAgICAgICAuc2VuZCgnc3BlY2llcz1mZXJyZXQnKVxuICAqICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZGF0YVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbihkYXRhKXtcbiAgdmFyIG9iaiA9IGlzT2JqZWN0KGRhdGEpO1xuICB2YXIgdHlwZSA9IHRoaXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKTtcblxuICAvLyBtZXJnZVxuICBpZiAob2JqICYmIGlzT2JqZWN0KHRoaXMuX2RhdGEpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGFba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoJ3N0cmluZycgPT0gdHlwZW9mIGRhdGEpIHtcbiAgICBpZiAoIXR5cGUpIHRoaXMudHlwZSgnZm9ybScpO1xuICAgIHR5cGUgPSB0aGlzLmdldEhlYWRlcignQ29udGVudC1UeXBlJyk7XG4gICAgaWYgKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnID09IHR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9kYXRhXG4gICAgICAgID8gdGhpcy5fZGF0YSArICcmJyArIGRhdGFcbiAgICAgICAgOiBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRhID0gKHRoaXMuX2RhdGEgfHwgJycpICsgZGF0YTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gIH1cblxuICBpZiAoIW9iaikgcmV0dXJuIHRoaXM7XG4gIGlmICghdHlwZSkgdGhpcy50eXBlKCdqc29uJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBJbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggYGVycmAgYW5kIGByZXNgXG4gKiBhbmQgaGFuZGxlIGFyaXR5IGNoZWNrLlxuICpcbiAqIEBwYXJhbSB7RXJyb3J9IGVyclxuICogQHBhcmFtIHtSZXNwb25zZX0gcmVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jYWxsYmFjayA9IGZ1bmN0aW9uKGVyciwgcmVzKXtcbiAgdmFyIGZuID0gdGhpcy5fY2FsbGJhY2s7XG4gIHRoaXMuY2xlYXJUaW1lb3V0KCk7XG4gIGlmICgyID09IGZuLmxlbmd0aCkgcmV0dXJuIGZuKGVyciwgcmVzKTtcbiAgaWYgKGVycikgcmV0dXJuIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICBmbihyZXMpO1xufTtcblxuLyoqXG4gKiBJbnZva2UgY2FsbGJhY2sgd2l0aCB4LWRvbWFpbiBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jcm9zc0RvbWFpbkVycm9yID0gZnVuY3Rpb24oKXtcbiAgdmFyIGVyciA9IG5ldyBFcnJvcignT3JpZ2luIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicpO1xuICBlcnIuY3Jvc3NEb21haW4gPSB0cnVlO1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHRpbWVvdXQgZXJyb3IuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudGltZW91dEVycm9yID0gZnVuY3Rpb24oKXtcbiAgdmFyIHRpbWVvdXQgPSB0aGlzLl90aW1lb3V0O1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCd0aW1lb3V0IG9mICcgKyB0aW1lb3V0ICsgJ21zIGV4Y2VlZGVkJyk7XG4gIGVyci50aW1lb3V0ID0gdGltZW91dDtcbiAgdGhpcy5jYWxsYmFjayhlcnIpO1xufTtcblxuLyoqXG4gKiBFbmFibGUgdHJhbnNtaXNzaW9uIG9mIGNvb2tpZXMgd2l0aCB4LWRvbWFpbiByZXF1ZXN0cy5cbiAqXG4gKiBOb3RlIHRoYXQgZm9yIHRoaXMgdG8gd29yayB0aGUgb3JpZ2luIG11c3Qgbm90IGJlXG4gKiB1c2luZyBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiIHdpdGggYSB3aWxkY2FyZCxcbiAqIGFuZCBhbHNvIG11c3Qgc2V0IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHNcIlxuICogdG8gXCJ0cnVlXCIuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS53aXRoQ3JlZGVudGlhbHMgPSBmdW5jdGlvbigpe1xuICB0aGlzLl93aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogSW5pdGlhdGUgcmVxdWVzdCwgaW52b2tpbmcgY2FsbGJhY2sgYGZuKHJlcylgXG4gKiB3aXRoIGFuIGluc3RhbmNlb2YgYFJlc3BvbnNlYC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKGZuKXtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgeGhyID0gdGhpcy54aHIgPSBnZXRYSFIoKTtcbiAgdmFyIHF1ZXJ5ID0gdGhpcy5fcXVlcnkuam9pbignJicpO1xuICB2YXIgdGltZW91dCA9IHRoaXMuX3RpbWVvdXQ7XG4gIHZhciBkYXRhID0gdGhpcy5fZm9ybURhdGEgfHwgdGhpcy5fZGF0YTtcblxuICAvLyBzdG9yZSBjYWxsYmFja1xuICB0aGlzLl9jYWxsYmFjayA9IGZuIHx8IG5vb3A7XG5cbiAgLy8gc3RhdGUgY2hhbmdlXG4gIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpe1xuICAgIGlmICg0ICE9IHhoci5yZWFkeVN0YXRlKSByZXR1cm47XG4gICAgaWYgKDAgPT0geGhyLnN0YXR1cykge1xuICAgICAgaWYgKHNlbGYuYWJvcnRlZCkgcmV0dXJuIHNlbGYudGltZW91dEVycm9yKCk7XG4gICAgICByZXR1cm4gc2VsZi5jcm9zc0RvbWFpbkVycm9yKCk7XG4gICAgfVxuICAgIHNlbGYuZW1pdCgnZW5kJyk7XG4gIH07XG5cbiAgLy8gcHJvZ3Jlc3NcbiAgaWYgKHhoci51cGxvYWQpIHtcbiAgICB4aHIudXBsb2FkLm9ucHJvZ3Jlc3MgPSBmdW5jdGlvbihlKXtcbiAgICAgIGUucGVyY2VudCA9IGUubG9hZGVkIC8gZS50b3RhbCAqIDEwMDtcbiAgICAgIHNlbGYuZW1pdCgncHJvZ3Jlc3MnLCBlKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gdGltZW91dFxuICBpZiAodGltZW91dCAmJiAhdGhpcy5fdGltZXIpIHtcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgIHNlbGYuYWJvcnQoKTtcbiAgICB9LCB0aW1lb3V0KTtcbiAgfVxuXG4gIC8vIHF1ZXJ5c3RyaW5nXG4gIGlmIChxdWVyeSkge1xuICAgIHF1ZXJ5ID0gcmVxdWVzdC5zZXJpYWxpemVPYmplY3QocXVlcnkpO1xuICAgIHRoaXMudXJsICs9IH50aGlzLnVybC5pbmRleE9mKCc/JylcbiAgICAgID8gJyYnICsgcXVlcnlcbiAgICAgIDogJz8nICsgcXVlcnk7XG4gIH1cblxuICAvLyBpbml0aWF0ZSByZXF1ZXN0XG4gIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSk7XG5cbiAgLy8gQ09SU1xuICBpZiAodGhpcy5fd2l0aENyZWRlbnRpYWxzKSB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcblxuICAvLyBib2R5XG4gIGlmICgnR0VUJyAhPSB0aGlzLm1ldGhvZCAmJiAnSEVBRCcgIT0gdGhpcy5tZXRob2QgJiYgJ3N0cmluZycgIT0gdHlwZW9mIGRhdGEgJiYgIWlzSG9zdChkYXRhKSkge1xuICAgIC8vIHNlcmlhbGl6ZSBzdHVmZlxuICAgIHZhciBzZXJpYWxpemUgPSByZXF1ZXN0LnNlcmlhbGl6ZVt0aGlzLmdldEhlYWRlcignQ29udGVudC1UeXBlJyldO1xuICAgIGlmIChzZXJpYWxpemUpIGRhdGEgPSBzZXJpYWxpemUoZGF0YSk7XG4gIH1cblxuICAvLyBzZXQgaGVhZGVyIGZpZWxkc1xuICBmb3IgKHZhciBmaWVsZCBpbiB0aGlzLmhlYWRlcikge1xuICAgIGlmIChudWxsID09IHRoaXMuaGVhZGVyW2ZpZWxkXSkgY29udGludWU7XG4gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoZmllbGQsIHRoaXMuaGVhZGVyW2ZpZWxkXSk7XG4gIH1cblxuICAvLyBzZW5kIHN0dWZmXG4gIHRoaXMuZW1pdCgncmVxdWVzdCcsIHRoaXMpO1xuICB4aHIuc2VuZChkYXRhKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVxdWVzdGAuXG4gKi9cblxucmVxdWVzdC5SZXF1ZXN0ID0gUmVxdWVzdDtcblxuLyoqXG4gKiBJc3N1ZSBhIHJlcXVlc3Q6XG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVxdWVzdCgnR0VUJywgJy91c2VycycpLmVuZChjYWxsYmFjaylcbiAqICAgIHJlcXVlc3QoJy91c2VycycpLmVuZChjYWxsYmFjaylcbiAqICAgIHJlcXVlc3QoJy91c2VycycsIGNhbGxiYWNrKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtZXRob2RcbiAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSB1cmwgb3IgY2FsbGJhY2tcbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHJlcXVlc3QobWV0aG9kLCB1cmwpIHtcbiAgLy8gY2FsbGJhY2tcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIHVybCkge1xuICAgIHJldHVybiBuZXcgUmVxdWVzdCgnR0VUJywgbWV0aG9kKS5lbmQodXJsKTtcbiAgfVxuXG4gIC8vIHVybCBmaXJzdFxuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0KCdHRVQnLCBtZXRob2QpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KG1ldGhvZCwgdXJsKTtcbn1cblxuLyoqXG4gKiBHRVQgYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gZGF0YSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZ2V0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdHRVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5xdWVyeShkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogSEVBRCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBkYXRhIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5oZWFkID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdIRUFEJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogREVMRVRFIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LmRlbCA9IGZ1bmN0aW9uKHVybCwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnREVMRVRFJywgdXJsKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogUEFUQ0ggYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBkYXRhXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wYXRjaCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUEFUQ0gnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQT1NUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gZGF0YVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucG9zdCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUE9TVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBVVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IGRhdGEgb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnB1dCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUFVUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogRXhwb3NlIGByZXF1ZXN0YC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVlc3Q7XG4iLCJcbi8qKlxuICogRXhwb3NlIGBFbWl0dGVyYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IEVtaXR0ZXI7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgRW1pdHRlcmAuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBFbWl0dGVyKG9iaikge1xuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcbn07XG5cbi8qKlxuICogTWl4aW4gdGhlIGVtaXR0ZXIgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBtaXhpbihvYmopIHtcbiAgZm9yICh2YXIga2V5IGluIEVtaXR0ZXIucHJvdG90eXBlKSB7XG4gICAgb2JqW2tleV0gPSBFbWl0dGVyLnByb3RvdHlwZVtrZXldO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogTGlzdGVuIG9uIHRoZSBnaXZlbiBgZXZlbnRgIHdpdGggYGZuYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5vbiA9XG5FbWl0dGVyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuICAodGhpcy5fY2FsbGJhY2tzW2V2ZW50XSA9IHRoaXMuX2NhbGxiYWNrc1tldmVudF0gfHwgW10pXG4gICAgLnB1c2goZm4pO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWRkcyBhbiBgZXZlbnRgIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBpbnZva2VkIGEgc2luZ2xlXG4gKiB0aW1lIHRoZW4gYXV0b21hdGljYWxseSByZW1vdmVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcblxuICBmdW5jdGlvbiBvbigpIHtcbiAgICBzZWxmLm9mZihldmVudCwgb24pO1xuICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBvbi5mbiA9IGZuO1xuICB0aGlzLm9uKGV2ZW50LCBvbik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdpdmVuIGNhbGxiYWNrIGZvciBgZXZlbnRgIG9yIGFsbFxuICogcmVnaXN0ZXJlZCBjYWxsYmFja3MuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUub2ZmID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG5FbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuXG4gIC8vIGFsbFxuICBpZiAoMCA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgdGhpcy5fY2FsbGJhY2tzID0ge307XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBzcGVjaWZpYyBldmVudFxuICB2YXIgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzW2V2ZW50XTtcbiAgaWYgKCFjYWxsYmFja3MpIHJldHVybiB0aGlzO1xuXG4gIC8vIHJlbW92ZSBhbGwgaGFuZGxlcnNcbiAgaWYgKDEgPT0gYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbZXZlbnRdO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gcmVtb3ZlIHNwZWNpZmljIGhhbmRsZXJcbiAgdmFyIGNiO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuICAgIGNiID0gY2FsbGJhY2tzW2ldO1xuICAgIGlmIChjYiA9PT0gZm4gfHwgY2IuZm4gPT09IGZuKSB7XG4gICAgICBjYWxsYmFja3Muc3BsaWNlKGksIDEpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBFbWl0IGBldmVudGAgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7TWl4ZWR9IC4uLlxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24oZXZlbnQpe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG4gIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpXG4gICAgLCBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbZXZlbnRdO1xuXG4gIGlmIChjYWxsYmFja3MpIHtcbiAgICBjYWxsYmFja3MgPSBjYWxsYmFja3Muc2xpY2UoMCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNhbGxiYWNrcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgICAgY2FsbGJhY2tzW2ldLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYXJyYXkgb2YgY2FsbGJhY2tzIGZvciBgZXZlbnRgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuICByZXR1cm4gdGhpcy5fY2FsbGJhY2tzW2V2ZW50XSB8fCBbXTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBlbWl0dGVyIGhhcyBgZXZlbnRgIGhhbmRsZXJzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzID0gZnVuY3Rpb24oZXZlbnQpe1xuICByZXR1cm4gISEgdGhpcy5saXN0ZW5lcnMoZXZlbnQpLmxlbmd0aDtcbn07XG4iLCJcbi8qKlxuICogUmVkdWNlIGBhcnJgIHdpdGggYGZuYC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcGFyYW0ge01peGVkfSBpbml0aWFsXG4gKlxuICogVE9ETzogY29tYmF0aWJsZSBlcnJvciBoYW5kbGluZz9cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGFyciwgZm4sIGluaXRpYWwpeyAgXG4gIHZhciBpZHggPSAwO1xuICB2YXIgbGVuID0gYXJyLmxlbmd0aDtcbiAgdmFyIGN1cnIgPSBhcmd1bWVudHMubGVuZ3RoID09IDNcbiAgICA/IGluaXRpYWxcbiAgICA6IGFycltpZHgrK107XG5cbiAgd2hpbGUgKGlkeCA8IGxlbikge1xuICAgIGN1cnIgPSBmbi5jYWxsKG51bGwsIGN1cnIsIGFycltpZHhdLCArK2lkeCwgYXJyKTtcbiAgfVxuICBcbiAgcmV0dXJuIGN1cnI7XG59OyIsInZhciB0cmF2ZXJzZSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiBuZXcgVHJhdmVyc2Uob2JqKTtcbn07XG5cbmZ1bmN0aW9uIFRyYXZlcnNlIChvYmopIHtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xufVxuXG5UcmF2ZXJzZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKHBzKSB7XG4gICAgdmFyIG5vZGUgPSB0aGlzLnZhbHVlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHMubGVuZ3RoOyBpICsrKSB7XG4gICAgICAgIHZhciBrZXkgPSBwc1tpXTtcbiAgICAgICAgaWYgKCFub2RlIHx8ICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUsIGtleSkpIHtcbiAgICAgICAgICAgIG5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBub2RlID0gbm9kZVtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5cblRyYXZlcnNlLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiAocHMpIHtcbiAgICB2YXIgbm9kZSA9IHRoaXMudmFsdWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcy5sZW5ndGg7IGkgKyspIHtcbiAgICAgICAgdmFyIGtleSA9IHBzW2ldO1xuICAgICAgICBpZiAoIW5vZGUgfHwgIWhhc093blByb3BlcnR5LmNhbGwobm9kZSwga2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBub2RlW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuVHJhdmVyc2UucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChwcywgdmFsdWUpIHtcbiAgICB2YXIgbm9kZSA9IHRoaXMudmFsdWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcy5sZW5ndGggLSAxOyBpICsrKSB7XG4gICAgICAgIHZhciBrZXkgPSBwc1tpXTtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUsIGtleSkpIG5vZGVba2V5XSA9IHt9O1xuICAgICAgICBub2RlID0gbm9kZVtrZXldO1xuICAgIH1cbiAgICBub2RlW3BzW2ldXSA9IHZhbHVlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5cblRyYXZlcnNlLnByb3RvdHlwZS5tYXAgPSBmdW5jdGlvbiAoY2IpIHtcbiAgICByZXR1cm4gd2Fsayh0aGlzLnZhbHVlLCBjYiwgdHJ1ZSk7XG59O1xuXG5UcmF2ZXJzZS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYikge1xuICAgIHRoaXMudmFsdWUgPSB3YWxrKHRoaXMudmFsdWUsIGNiLCBmYWxzZSk7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG59O1xuXG5UcmF2ZXJzZS5wcm90b3R5cGUucmVkdWNlID0gZnVuY3Rpb24gKGNiLCBpbml0KSB7XG4gICAgdmFyIHNraXAgPSBhcmd1bWVudHMubGVuZ3RoID09PSAxO1xuICAgIHZhciBhY2MgPSBza2lwID8gdGhpcy52YWx1ZSA6IGluaXQ7XG4gICAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1Jvb3QgfHwgIXNraXApIHtcbiAgICAgICAgICAgIGFjYyA9IGNiLmNhbGwodGhpcywgYWNjLCB4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhY2M7XG59O1xuXG5UcmF2ZXJzZS5wcm90b3R5cGUucGF0aHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFjYyA9IFtdO1xuICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICBhY2MucHVzaCh0aGlzLnBhdGgpOyBcbiAgICB9KTtcbiAgICByZXR1cm4gYWNjO1xufTtcblxuVHJhdmVyc2UucHJvdG90eXBlLm5vZGVzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBhY2MgPSBbXTtcbiAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgYWNjLnB1c2godGhpcy5ub2RlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWNjO1xufTtcblxuVHJhdmVyc2UucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBwYXJlbnRzID0gW10sIG5vZGVzID0gW107XG4gICAgXG4gICAgcmV0dXJuIChmdW5jdGlvbiBjbG9uZSAoc3JjKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhcmVudHNbaV0gPT09IHNyYykge1xuICAgICAgICAgICAgICAgIHJldHVybiBub2Rlc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiBzcmMgPT09ICdvYmplY3QnICYmIHNyYyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGRzdCA9IGNvcHkoc3JjKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcGFyZW50cy5wdXNoKHNyYyk7XG4gICAgICAgICAgICBub2Rlcy5wdXNoKGRzdCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGZvckVhY2gob2JqZWN0S2V5cyhzcmMpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgZHN0W2tleV0gPSBjbG9uZShzcmNba2V5XSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcGFyZW50cy5wb3AoKTtcbiAgICAgICAgICAgIG5vZGVzLnBvcCgpO1xuICAgICAgICAgICAgcmV0dXJuIGRzdDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBzcmM7XG4gICAgICAgIH1cbiAgICB9KSh0aGlzLnZhbHVlKTtcbn07XG5cbmZ1bmN0aW9uIHdhbGsgKHJvb3QsIGNiLCBpbW11dGFibGUpIHtcbiAgICB2YXIgcGF0aCA9IFtdO1xuICAgIHZhciBwYXJlbnRzID0gW107XG4gICAgdmFyIGFsaXZlID0gdHJ1ZTtcbiAgICBcbiAgICByZXR1cm4gKGZ1bmN0aW9uIHdhbGtlciAobm9kZV8pIHtcbiAgICAgICAgdmFyIG5vZGUgPSBpbW11dGFibGUgPyBjb3B5KG5vZGVfKSA6IG5vZGVfO1xuICAgICAgICB2YXIgbW9kaWZpZXJzID0ge307XG4gICAgICAgIFxuICAgICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgICAgXG4gICAgICAgIHZhciBzdGF0ZSA9IHtcbiAgICAgICAgICAgIG5vZGUgOiBub2RlLFxuICAgICAgICAgICAgbm9kZV8gOiBub2RlXyxcbiAgICAgICAgICAgIHBhdGggOiBbXS5jb25jYXQocGF0aCksXG4gICAgICAgICAgICBwYXJlbnQgOiBwYXJlbnRzW3BhcmVudHMubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgICBwYXJlbnRzIDogcGFyZW50cyxcbiAgICAgICAgICAgIGtleSA6IHBhdGguc2xpY2UoLTEpWzBdLFxuICAgICAgICAgICAgaXNSb290IDogcGF0aC5sZW5ndGggPT09IDAsXG4gICAgICAgICAgICBsZXZlbCA6IHBhdGgubGVuZ3RoLFxuICAgICAgICAgICAgY2lyY3VsYXIgOiBudWxsLFxuICAgICAgICAgICAgdXBkYXRlIDogZnVuY3Rpb24gKHgsIHN0b3BIZXJlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGF0ZS5pc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUucGFyZW50Lm5vZGVbc3RhdGUua2V5XSA9IHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0YXRlLm5vZGUgPSB4O1xuICAgICAgICAgICAgICAgIGlmIChzdG9wSGVyZSkga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2RlbGV0ZScgOiBmdW5jdGlvbiAoc3RvcEhlcmUpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgc3RhdGUucGFyZW50Lm5vZGVbc3RhdGUua2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcEhlcmUpIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlbW92ZSA6IGZ1bmN0aW9uIChzdG9wSGVyZSkge1xuICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KHN0YXRlLnBhcmVudC5ub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5wYXJlbnQubm9kZS5zcGxpY2Uoc3RhdGUua2V5LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzdGF0ZS5wYXJlbnQubm9kZVtzdGF0ZS5rZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3RvcEhlcmUpIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtleXMgOiBudWxsLFxuICAgICAgICAgICAgYmVmb3JlIDogZnVuY3Rpb24gKGYpIHsgbW9kaWZpZXJzLmJlZm9yZSA9IGYgfSxcbiAgICAgICAgICAgIGFmdGVyIDogZnVuY3Rpb24gKGYpIHsgbW9kaWZpZXJzLmFmdGVyID0gZiB9LFxuICAgICAgICAgICAgcHJlIDogZnVuY3Rpb24gKGYpIHsgbW9kaWZpZXJzLnByZSA9IGYgfSxcbiAgICAgICAgICAgIHBvc3QgOiBmdW5jdGlvbiAoZikgeyBtb2RpZmllcnMucG9zdCA9IGYgfSxcbiAgICAgICAgICAgIHN0b3AgOiBmdW5jdGlvbiAoKSB7IGFsaXZlID0gZmFsc2UgfSxcbiAgICAgICAgICAgIGJsb2NrIDogZnVuY3Rpb24gKCkgeyBrZWVwR29pbmcgPSBmYWxzZSB9XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBpZiAoIWFsaXZlKSByZXR1cm4gc3RhdGU7XG4gICAgICAgIFxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZSgpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhdGUubm9kZSA9PT0gJ29iamVjdCcgJiYgc3RhdGUubm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICghc3RhdGUua2V5cyB8fCBzdGF0ZS5ub2RlXyAhPT0gc3RhdGUubm9kZSkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5rZXlzID0gb2JqZWN0S2V5cyhzdGF0ZS5ub2RlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBzdGF0ZS5pc0xlYWYgPSBzdGF0ZS5rZXlzLmxlbmd0aCA9PSAwO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50c1tpXS5ub2RlXyA9PT0gbm9kZV8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmNpcmN1bGFyID0gcGFyZW50c1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuaXNMZWFmID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5rZXlzID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgc3RhdGUubm90TGVhZiA9ICFzdGF0ZS5pc0xlYWY7XG4gICAgICAgICAgICBzdGF0ZS5ub3RSb290ID0gIXN0YXRlLmlzUm9vdDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdXBkYXRlU3RhdGUoKTtcbiAgICAgICAgXG4gICAgICAgIC8vIHVzZSByZXR1cm4gdmFsdWVzIHRvIHVwZGF0ZSBpZiBkZWZpbmVkXG4gICAgICAgIHZhciByZXQgPSBjYi5jYWxsKHN0YXRlLCBzdGF0ZS5ub2RlKTtcbiAgICAgICAgaWYgKHJldCAhPT0gdW5kZWZpbmVkICYmIHN0YXRlLnVwZGF0ZSkgc3RhdGUudXBkYXRlKHJldCk7XG4gICAgICAgIFxuICAgICAgICBpZiAobW9kaWZpZXJzLmJlZm9yZSkgbW9kaWZpZXJzLmJlZm9yZS5jYWxsKHN0YXRlLCBzdGF0ZS5ub2RlKTtcbiAgICAgICAgXG4gICAgICAgIGlmICgha2VlcEdvaW5nKSByZXR1cm4gc3RhdGU7XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHN0YXRlLm5vZGUgPT0gJ29iamVjdCdcbiAgICAgICAgJiYgc3RhdGUubm9kZSAhPT0gbnVsbCAmJiAhc3RhdGUuY2lyY3VsYXIpIHtcbiAgICAgICAgICAgIHBhcmVudHMucHVzaChzdGF0ZSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHVwZGF0ZVN0YXRlKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGZvckVhY2goc3RhdGUua2V5cywgZnVuY3Rpb24gKGtleSwgaSkge1xuICAgICAgICAgICAgICAgIHBhdGgucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmIChtb2RpZmllcnMucHJlKSBtb2RpZmllcnMucHJlLmNhbGwoc3RhdGUsIHN0YXRlLm5vZGVba2V5XSwga2V5KTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSB3YWxrZXIoc3RhdGUubm9kZVtrZXldKTtcbiAgICAgICAgICAgICAgICBpZiAoaW1tdXRhYmxlICYmIGhhc093blByb3BlcnR5LmNhbGwoc3RhdGUubm9kZSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5ub2RlW2tleV0gPSBjaGlsZC5ub2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBjaGlsZC5pc0xhc3QgPSBpID09IHN0YXRlLmtleXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICBjaGlsZC5pc0ZpcnN0ID0gaSA9PSAwO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmIChtb2RpZmllcnMucG9zdCkgbW9kaWZpZXJzLnBvc3QuY2FsbChzdGF0ZSwgY2hpbGQpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHBhdGgucG9wKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHBhcmVudHMucG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmIChtb2RpZmllcnMuYWZ0ZXIpIG1vZGlmaWVycy5hZnRlci5jYWxsKHN0YXRlLCBzdGF0ZS5ub2RlKTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9KShyb290KS5ub2RlO1xufVxuXG5mdW5jdGlvbiBjb3B5IChzcmMpIHtcbiAgICBpZiAodHlwZW9mIHNyYyA9PT0gJ29iamVjdCcgJiYgc3JjICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBkc3Q7XG4gICAgICAgIFxuICAgICAgICBpZiAoaXNBcnJheShzcmMpKSB7XG4gICAgICAgICAgICBkc3QgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0RhdGUoc3JjKSkge1xuICAgICAgICAgICAgZHN0ID0gbmV3IERhdGUoc3JjLmdldFRpbWUgPyBzcmMuZ2V0VGltZSgpIDogc3JjKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1JlZ0V4cChzcmMpKSB7XG4gICAgICAgICAgICBkc3QgPSBuZXcgUmVnRXhwKHNyYyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNFcnJvcihzcmMpKSB7XG4gICAgICAgICAgICBkc3QgPSB7IG1lc3NhZ2U6IHNyYy5tZXNzYWdlIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNCb29sZWFuKHNyYykpIHtcbiAgICAgICAgICAgIGRzdCA9IG5ldyBCb29sZWFuKHNyYyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXIoc3JjKSkge1xuICAgICAgICAgICAgZHN0ID0gbmV3IE51bWJlcihzcmMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKHNyYykpIHtcbiAgICAgICAgICAgIGRzdCA9IG5ldyBTdHJpbmcoc3JjKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChPYmplY3QuY3JlYXRlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZikge1xuICAgICAgICAgICAgZHN0ID0gT2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc3JjKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3JjLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcbiAgICAgICAgICAgIGRzdCA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyIHByb3RvID1cbiAgICAgICAgICAgICAgICAoc3JjLmNvbnN0cnVjdG9yICYmIHNyYy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUpXG4gICAgICAgICAgICAgICAgfHwgc3JjLl9fcHJvdG9fX1xuICAgICAgICAgICAgICAgIHx8IHt9XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICB2YXIgVCA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgVC5wcm90b3R5cGUgPSBwcm90bztcbiAgICAgICAgICAgIGRzdCA9IG5ldyBUO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBmb3JFYWNoKG9iamVjdEtleXMoc3JjKSwgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgZHN0W2tleV0gPSBzcmNba2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkc3Q7XG4gICAgfVxuICAgIGVsc2UgcmV0dXJuIHNyYztcbn1cblxudmFyIG9iamVjdEtleXMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzIChvYmopIHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIga2V5IGluIG9iaikgcmVzLnB1c2goa2V5KVxuICAgIHJldHVybiByZXM7XG59O1xuXG5mdW5jdGlvbiB0b1MgKG9iaikgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgfVxuZnVuY3Rpb24gaXNEYXRlIChvYmopIHsgcmV0dXJuIHRvUyhvYmopID09PSAnW29iamVjdCBEYXRlXScgfVxuZnVuY3Rpb24gaXNSZWdFeHAgKG9iaikgeyByZXR1cm4gdG9TKG9iaikgPT09ICdbb2JqZWN0IFJlZ0V4cF0nIH1cbmZ1bmN0aW9uIGlzRXJyb3IgKG9iaikgeyByZXR1cm4gdG9TKG9iaikgPT09ICdbb2JqZWN0IEVycm9yXScgfVxuZnVuY3Rpb24gaXNCb29sZWFuIChvYmopIHsgcmV0dXJuIHRvUyhvYmopID09PSAnW29iamVjdCBCb29sZWFuXScgfVxuZnVuY3Rpb24gaXNOdW1iZXIgKG9iaikgeyByZXR1cm4gdG9TKG9iaikgPT09ICdbb2JqZWN0IE51bWJlcl0nIH1cbmZ1bmN0aW9uIGlzU3RyaW5nIChvYmopIHsgcmV0dXJuIHRvUyhvYmopID09PSAnW29iamVjdCBTdHJpbmddJyB9XG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5ICh4cykge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeHMpID09PSAnW29iamVjdCBBcnJheV0nO1xufTtcblxudmFyIGZvckVhY2ggPSBmdW5jdGlvbiAoeHMsIGZuKSB7XG4gICAgaWYgKHhzLmZvckVhY2gpIHJldHVybiB4cy5mb3JFYWNoKGZuKVxuICAgIGVsc2UgZm9yICh2YXIgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBmbih4c1tpXSwgaSwgeHMpO1xuICAgIH1cbn07XG5cbmZvckVhY2gob2JqZWN0S2V5cyhUcmF2ZXJzZS5wcm90b3R5cGUpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdHJhdmVyc2Vba2V5XSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIHZhciB0ID0gbmV3IFRyYXZlcnNlKG9iaik7XG4gICAgICAgIHJldHVybiB0W2tleV0uYXBwbHkodCwgYXJncyk7XG4gICAgfTtcbn0pO1xuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QuaGFzT3duUHJvcGVydHkgfHwgZnVuY3Rpb24gKG9iaiwga2V5KSB7XG4gICAgcmV0dXJuIGtleSBpbiBvYmo7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29udGFpbmVyID0gcmVxdWlyZSgnLi91dGlsL2NvbnRhaW5lcicpLFxuICAgIHRyYXZlcnNlID0gcmVxdWlyZSgnLi91dGlsL3RyYXZlcnNlJyksXG4gICAgZm9ybWF0cyA9IHJlcXVpcmUoJy4vdXRpbC9mb3JtYXRzJyk7XG5cbnZhciBkZXJlZiA9IHJlcXVpcmUoJ2RlcmVmJyk7XG5cbmZ1bmN0aW9uIGdlbmVyYXRlKHNjaGVtYSwgcmVmcykge1xuICB2YXIgJCA9IGRlcmVmKCk7XG5cbiAgdHJ5IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgcmV0dXJuIHRyYXZlcnNlKCQoc2NoZW1hLCByZWZzLCB0cnVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICQucmVmcyA9IHJlZnMgfHwge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYXZlcnNlKCQoc2NoZW1hLCB0cnVlKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZS5tZXNzYWdlICsgJyBpbiAnICsgJy8nICsgZS5wYXRoLmpvaW4oJy8nKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG5cbmdlbmVyYXRlLmZvcm1hdHMgPSBmb3JtYXRzO1xuZ2VuZXJhdGUuZXh0ZW5kID0gY29udGFpbmVyLnNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBnZW5lcmF0ZTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJhbmRvbSA9IHJlcXVpcmUoJy4uL3V0aWwvcmFuZG9tJyksXG4gICAgdHJhdmVyc2UgPSByZXF1aXJlKCcuLi91dGlsL3RyYXZlcnNlJyksXG4gICAgaGFzUHJvcHMgPSByZXF1aXJlKCcuLi91dGlsL2hhcy1wcm9wcycpO1xuXG52YXIgUGFyc2VFcnJvciA9IHJlcXVpcmUoJy4uL3V0aWwvZXJyb3InKTtcblxuZnVuY3Rpb24gdW5pcXVlKHBhdGgsIGl0ZW1zLCB2YWx1ZSwgc2FtcGxlKSB7XG4gIHZhciB0bXAgPSBbXSxcbiAgICAgIHNlZW4gPSBbXTtcblxuICBmdW5jdGlvbiB3YWxrKG9iaikge1xuICAgIHZhciBqc29uID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcblxuICAgIGlmIChzZWVuLmluZGV4T2YoanNvbikgPT09IC0xKSB7XG4gICAgICBzZWVuLnB1c2goanNvbik7XG4gICAgICB0bXAucHVzaChvYmopO1xuICAgIH1cbiAgfVxuXG4gIGl0ZW1zLmZvckVhY2god2Fsayk7XG5cbiAgLy8gVE9ETzogZmluZCBhIGJldHRlciBzb2x1dGlvbj9cbiAgdmFyIGxpbWl0ID0gMTAwO1xuXG4gIHdoaWxlICh0bXAubGVuZ3RoICE9PSBpdGVtcy5sZW5ndGgpIHtcbiAgICB3YWxrKHRyYXZlcnNlKHZhbHVlLml0ZW1zIHx8IHNhbXBsZSwgcGF0aCkpO1xuXG4gICAgaWYgKCFsaW1pdC0tKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG1wO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlLCBwYXRoKSB7XG4gIHZhciBpdGVtcyA9IFtdO1xuXG4gIGlmICghKHZhbHVlLml0ZW1zIHx8IHZhbHVlLmFkZGl0aW9uYWxJdGVtcykpIHtcbiAgICBpZiAoaGFzUHJvcHModmFsdWUsICdtaW5JdGVtcycsICdtYXhJdGVtcycsICd1bmlxdWVJdGVtcycpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcignbWlzc2luZyBpdGVtcyBmb3IgJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlKSwgcGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUuaXRlbXMpKSB7XG4gICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoaXRlbXMsIHZhbHVlLml0ZW1zLm1hcChmdW5jdGlvbihpdGVtLCBrZXkpIHtcbiAgICAgIHJldHVybiB0cmF2ZXJzZShpdGVtLCBwYXRoLmNvbmNhdChbJ2l0ZW1zJywga2V5XSkpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSByYW5kb20odmFsdWUubWluSXRlbXMsIHZhbHVlLm1heEl0ZW1zLCAxLCA1KSxcbiAgICAgIHNhbXBsZSA9IHR5cGVvZiB2YWx1ZS5hZGRpdGlvbmFsSXRlbXMgPT09ICdvYmplY3QnID8gdmFsdWUuYWRkaXRpb25hbEl0ZW1zIDoge307XG5cbiAgZm9yICh2YXIgY3VycmVudCA9IGl0ZW1zLmxlbmd0aDsgY3VycmVudCA8IGxlbmd0aDsgY3VycmVudCArPSAxKSB7XG4gICAgaXRlbXMucHVzaCh0cmF2ZXJzZSh2YWx1ZS5pdGVtcyB8fCBzYW1wbGUsIHBhdGguY29uY2F0KFsnaXRlbXMnLCBjdXJyZW50XSkpKTtcbiAgfVxuXG4gIGlmICh2YWx1ZS51bmlxdWVJdGVtcykge1xuICAgIHJldHVybiB1bmlxdWUocGF0aC5jb25jYXQoWydpdGVtcyddKSwgaXRlbXMsIHZhbHVlLCBzYW1wbGUpO1xuICB9XG5cbiAgcmV0dXJuIGl0ZW1zO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkgPiAwLjU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnLi9udW1iZXInKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWx1ZSkge1xuICB2YWx1ZS5oYXNQcmVjaXNpb24gPSBmYWxzZTtcblxuICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIodmFsdWUpKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBudWxsO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIE1JTl9JTlRFR0VSID0gLTEwMDAwMDAwMCxcbiAgICBNQVhfSU5URUdFUiA9IDEwMDAwMDAwMDtcblxudmFyIHN0cmluZyA9IHJlcXVpcmUoJy4vc3RyaW5nJyksXG4gICAgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBpZiAodmFsdWUuZmFrZXIgfHwgdmFsdWUuY2hhbmNlKSB7XG4gICAgcmV0dXJuIHN0cmluZyh2YWx1ZSk7XG4gIH1cblxuICB2YXIgbWluID0gdHlwZW9mIHZhbHVlLm1pbmltdW0gPT09ICd1bmRlZmluZWQnID8gTUlOX0lOVEVHRVIgOiB2YWx1ZS5taW5pbXVtLFxuICAgICAgbWF4ID0gdHlwZW9mIHZhbHVlLm1heGltdW0gPT09ICd1bmRlZmluZWQnID8gTUFYX0lOVEVHRVIgOiB2YWx1ZS5tYXhpbXVtO1xuXG4gIGlmICh2YWx1ZS5leGNsdXNpdmVNaW5pbXVtICYmIHZhbHVlLm1pbmltdW0pIHtcbiAgICBtaW4gKz0gMTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5leGNsdXNpdmVNYXhpbXVtICYmIHZhbHVlLm1heGltdW0pIHtcbiAgICBtYXggLT0gMTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5tdWx0aXBsZU9mKSB7XG4gICAgdmFyIGJhc2UgPSByYW5kb20oTWF0aC5mbG9vcihtaW4gLyB2YWx1ZS5tdWx0aXBsZU9mKSwgTWF0aC5mbG9vcihtYXggLyB2YWx1ZS5tdWx0aXBsZU9mKSkgKiB2YWx1ZS5tdWx0aXBsZU9mO1xuXG4gICAgd2hpbGUgKGJhc2UgPCBtaW4pIHtcbiAgICAgIGJhc2UgKz0gdmFsdWUubXVsdGlwbGVPZjtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFzZTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5oYXNQcmVjaXNpb24pIHtcbiAgICByZXR1cm4gcmFuZG9tKGZhbHNlLCBtaW4sIG1heCk7XG4gIH1cblxuICByZXR1cm4gcmFuZG9tKE1hdGgucmFuZG9tKCkgPiAwLjUsIG1pbiwgbWF4KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuLi91dGlsL2NvbnRhaW5lcicpLFxuICAgIHJhbmRvbSA9IHJlcXVpcmUoJy4uL3V0aWwvcmFuZG9tJyksXG4gICAgdHJhdmVyc2UgPSByZXF1aXJlKCcuLi91dGlsL3RyYXZlcnNlJyksXG4gICAgaGFzUHJvcHMgPSByZXF1aXJlKCcuLi91dGlsL2hhcy1wcm9wcycpO1xuXG52YXIgZmFrZXIgPSBjb250YWluZXIuZ2V0KCdmYWtlcicpLFxuICAgIFJhbmRFeHAgPSBjb250YWluZXIuZ2V0KCdyYW5kZXhwJyksXG4gICAgcmFuZGV4cCA9IFJhbmRFeHAucmFuZGV4cDtcblxudmFyIFBhcnNlRXJyb3IgPSByZXF1aXJlKCcuLi91dGlsL2Vycm9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgdmFyIHByb3BzID0ge307XG5cbiAgaWYgKCEodmFsdWUucHJvcGVydGllcyB8fCB2YWx1ZS5wYXR0ZXJuUHJvcGVydGllcyB8fCB2YWx1ZS5hZGRpdGlvbmFsUHJvcGVydGllcykpIHtcbiAgICBpZiAoaGFzUHJvcHModmFsdWUsICdtaW5Qcm9wZXJ0aWVzJywgJ21heFByb3BlcnRpZXMnLCAnZGVwZW5kZW5jaWVzJywgJ3JlcXVpcmVkJykpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKCdtaXNzaW5nIHByb3BlcnRpZXMgZm9yICcgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSksIHBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wcztcbiAgfVxuXG4gIHZhciByZXFQcm9wcyA9IHZhbHVlLnJlcXVpcmVkIHx8IFtdLFxuICAgICAgYWxsUHJvcHMgPSB2YWx1ZS5wcm9wZXJ0aWVzID8gT2JqZWN0LmtleXModmFsdWUucHJvcGVydGllcykgOiBbXTtcblxuICByZXFQcm9wcy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIGlmICh2YWx1ZS5wcm9wZXJ0aWVzICYmIHZhbHVlLnByb3BlcnRpZXNba2V5XSkge1xuICAgICAgcHJvcHNba2V5XSA9IHZhbHVlLnByb3BlcnRpZXNba2V5XTtcbiAgICB9XG4gIH0pO1xuXG4gIHZhciBvcHRQcm9wcyA9IGFsbFByb3BzLmZpbHRlcihmdW5jdGlvbihwcm9wKSB7XG4gICAgcmV0dXJuIHJlcVByb3BzLmluZGV4T2YocHJvcCkgPT09IC0xO1xuICB9KTtcblxuICBpZiAodmFsdWUucGF0dGVyblByb3BlcnRpZXMpIHtcbiAgICBvcHRQcm9wcyA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkob3B0UHJvcHMsIE9iamVjdC5rZXlzKHZhbHVlLnBhdHRlcm5Qcm9wZXJ0aWVzKSk7XG4gIH1cblxuICB2YXIgbGVuZ3RoID0gcmFuZG9tKHZhbHVlLm1pblByb3BlcnRpZXMsIHZhbHVlLm1heFByb3BlcnRpZXMsIDAsIG9wdFByb3BzLmxlbmd0aCk7XG5cbiAgcmFuZG9tLnNodWZmbGUob3B0UHJvcHMpLnNsaWNlKDAsIGxlbmd0aCkuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICBpZiAodmFsdWUucHJvcGVydGllcyAmJiB2YWx1ZS5wcm9wZXJ0aWVzW2tleV0pIHtcbiAgICAgIHByb3BzW2tleV0gPSB2YWx1ZS5wcm9wZXJ0aWVzW2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb3BzW3JhbmRleHAoa2V5KV0gPSB2YWx1ZS5wYXR0ZXJuUHJvcGVydGllc1trZXldO1xuICAgIH1cbiAgfSk7XG5cbiAgdmFyIGN1cnJlbnQgPSBPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoLFxuICAgICAgc2FtcGxlID0gdHlwZW9mIHZhbHVlLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSAnb2JqZWN0JyA/IHZhbHVlLmFkZGl0aW9uYWxQcm9wZXJ0aWVzIDoge307XG5cbiAgaWYgKGN1cnJlbnQgPCBsZW5ndGgpIHtcbiAgICBmYWtlci5sb3JlbS53b3JkcyhsZW5ndGggLSBjdXJyZW50KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgcHJvcHNba2V5ICsgcmFuZGV4cCgnXFxcXHd7MSwxMH0nKV0gPSBzYW1wbGU7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdHJhdmVyc2UocHJvcHMsIHBhdGguY29uY2F0KFsncHJvcGVydGllcyddKSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29udGFpbmVyID0gcmVxdWlyZSgnLi4vdXRpbC9jb250YWluZXInKTtcblxudmFyIGZha2VyID0gY29udGFpbmVyLmdldCgnZmFrZXInKSxcbiAgICBDaGFuY2UgPSBjb250YWluZXIuZ2V0KCdjaGFuY2UnKSxcbiAgICBSYW5kRXhwID0gY29udGFpbmVyLmdldCgncmFuZGV4cCcpLFxuICAgIGNoYW5jZSA9IG5ldyBDaGFuY2UoKSxcbiAgICByYW5kZXhwID0gUmFuZEV4cC5yYW5kZXhwO1xuXG52YXIgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKSxcbiAgICBmb3JtYXRzID0gcmVxdWlyZSgnLi4vdXRpbC9mb3JtYXRzJyk7XG5cbnZhciByZWdleHBzID0ge1xuICBlbWFpbDogJ1thLXpBLVpcXFxcZF1bYS16QS1aXFxcXGQtXXsxLDEzfVthLXpBLVpcXFxcZF1Ae2hvc3RuYW1lfScsXG4gIGhvc3RuYW1lOiAnW2EtekEtWl17MSwzM31cXFxcLlthLXpdezIsNH0nLFxuICBpcHY2OiAnW2FiY2RlZlxcXFxkXXs0fSg6W2FiY2RlZlxcXFxkXXs0fSl7N30nLFxuICB1cmk6ICdbYS16QS1aXFxcXGRfXVtcXFxcd1xcXFxcXC9cXFxcZF8tXXsxLDQwfSdcbn07XG5cbmZ1bmN0aW9uIGdldChvYmosIGtleSkge1xuICB2YXIgcGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcblxuICB3aGlsZSAocGFydHMubGVuZ3RoKSB7XG4gICAgdmFyIHByb3AgPSBwYXJ0cy5zaGlmdCgpO1xuXG4gICAgaWYgKCFvYmpbcHJvcF0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIG9iaiA9IG9ialtwcm9wXTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlKHZhbHVlKSB7XG4gIGlmICh2YWx1ZS51c2UpIHtcbiAgICB2YXIgYXJncyA9IFtdLFxuICAgICAgICBwYXRoID0gdmFsdWUua2V5O1xuXG4gICAgaWYgKHR5cGVvZiBwYXRoID09PSAnb2JqZWN0Jykge1xuICAgICAgcGF0aCA9IE9iamVjdC5rZXlzKHBhdGgpWzBdO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZS5rZXlbcGF0aF0pKSB7XG4gICAgICAgIGFyZ3MgPSB2YWx1ZS5rZXlbcGF0aF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcmdzLnB1c2godmFsdWUua2V5W3BhdGhdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZ2VuID0gZ2V0KHZhbHVlLmdlbiwgcGF0aCk7XG5cbiAgICBpZiAodHlwZW9mIGdlbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duICcgKyB2YWx1ZS51c2UgKyAnLWdlbmVyYXRvciBmb3IgJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlLmtleSkpO1xuICAgIH1cblxuICAgIHJldHVybiBnZW4uYXBwbHkodmFsdWUuZ2VuLCBhcmdzKTtcbiAgfVxuXG4gIHN3aXRjaCAodmFsdWUuZm9ybWF0KSB7XG4gICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgIHJldHVybiBuZXcgRGF0ZShyYW5kb20oMCwgMTAwMDAwMDAwMDAwMDAwKSkudG9JU09TdHJpbmcoKTtcblxuICAgIGNhc2UgJ2VtYWlsJzpcbiAgICBjYXNlICdob3N0bmFtZSc6XG4gICAgY2FzZSAnaXB2Nic6XG4gICAgY2FzZSAndXJpJzpcbiAgICAgIHJldHVybiByYW5kZXhwKHJlZ2V4cHNbdmFsdWUuZm9ybWF0XSkucmVwbGFjZSgvXFx7KFxcdyspXFx9LywgZnVuY3Rpb24obWF0Y2hlcywga2V5KSB7XG4gICAgICAgIHJldHVybiByYW5kZXhwKHJlZ2V4cHNba2V5XSk7XG4gICAgICB9KTtcblxuICAgIGNhc2UgJ2lwdjQnOlxuICAgICAgcmV0dXJuIFswLCAwLCAwLCAwXS5tYXAoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByYW5kb20oMCwgMjU1KTtcbiAgICAgIH0pLmpvaW4oJy4nKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB2YXIgY2FsbGJhY2sgPSBmb3JtYXRzKHZhbHVlLmZvcm1hdCk7XG5cbiAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGdlbmVyYXRvciBmb3IgJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlLmZvcm1hdCkpO1xuICAgICAgfVxuXG4gICAgICB2YXIgZ2VuZXJhdG9ycyA9IHtcbiAgICAgICAgZmFrZXI6IGZha2VyLFxuICAgICAgICBjaGFuY2U6IGNoYW5jZSxcbiAgICAgICAgcmFuZGV4cDogcmFuZGV4cFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGNhbGxiYWNrKGdlbmVyYXRvcnMsIHZhbHVlKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICh2YWx1ZS5mYWtlciB8fCB2YWx1ZS5jaGFuY2UpIHtcbiAgICByZXR1cm4gZ2VuZXJhdGUoe1xuICAgICAgdXNlOiB2YWx1ZS5mYWtlciA/ICdmYWtlcicgOiAnY2hhbmNlJyxcbiAgICAgIGdlbjogdmFsdWUuZmFrZXIgPyBmYWtlciA6IGNoYW5jZSxcbiAgICAgIGtleTogdmFsdWUuZmFrZXIgfHwgdmFsdWUuY2hhbmNlXG4gICAgfSk7XG4gIH1cblxuICBpZiAodmFsdWUuZm9ybWF0KSB7XG4gICAgcmV0dXJuIGdlbmVyYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5wYXR0ZXJuKSB7XG4gICAgcmV0dXJuIHJhbmRleHAodmFsdWUucGF0dGVybik7XG4gIH1cblxuICBpZiAodmFsdWUubWluTGVuZ3RoIHx8IHZhbHVlLm1heExlbmd0aCkge1xuICAgIHZhciBtaW4gPSBNYXRoLm1heCgwLCB2YWx1ZS5taW5MZW5ndGggfHwgMCksXG4gICAgICAgIG1heCA9IHJhbmRvbShtaW4sIHZhbHVlLm1heExlbmd0aCk7XG5cbiAgICByZXR1cm4gcmFuZGV4cCgnLnsnICsgbWluICsgJywnICsgbWF4ICsgJ30nKTtcbiAgfVxuXG4gIHJldHVybiBmYWtlci5sb3JlbS53b3JkcyhyYW5kb20oMSwgNSkpLmpvaW4oJyAnKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNvbWJpbmUodGFyZ2V0KSB7XG4gIHZhciBwcm9wcyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG5cbiAgcHJvcHMuZm9yRWFjaChmdW5jdGlvbihvYmopIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICB0YXJnZXRba2V5XSA9IG9ialtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tYmluZTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gc3RhdGljIHJlcXVpcmVzIC0gaGFuZGxlIGJvdGggaW5pdGlhbCBkZXBlbmRlbmN5IGxvYWQgKGRlcHMgd2lsbCBiZSBhdmFpbGFibGVcbi8vIGFtb25nIG90aGVyIG1vZHVsZXMpIGFzIHdlbGwgYXMgdGhleSB3aWxsIGJlIGluY2x1ZGVkIGJ5IGJyb3dzZXJpZnkgQVNUXG52YXIgY29udGFpbmVyID0ge1xuICBmYWtlcjogcmVxdWlyZSgnZmFrZXInKSxcbiAgY2hhbmNlOiByZXF1aXJlKCdjaGFuY2UnKSxcbiAgcmFuZGV4cDogcmVxdWlyZSgncmFuZGV4cCcpXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBmdW5jdGlvbihuYW1lLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY29udGFpbmVyW25hbWVdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCdcIicgKyBuYW1lICsgJ1wiIGRlcGVuZGVuY3kgZG9lc25cXCd0IGV4aXN0LicpO1xuICAgIH1cblxuICAgIGNvbnRhaW5lcltuYW1lXSA9IGNhbGxiYWNrKGNvbnRhaW5lcltuYW1lXSk7XG4gIH0sXG4gIGdldDogZnVuY3Rpb24obmFtZSkge1xuICAgIHJldHVybiBjb250YWluZXJbbmFtZV07XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIFBhcnNlRXJyb3IobWVzc2FnZSwgcGF0aCkge1xuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICB0aGlzLnBhdGggPSBwYXRoO1xuICB0aGlzLm5hbWUgPSAnUGFyc2VFcnJvcic7XG59XG5cblBhcnNlRXJyb3IucHJvdG90eXBlID0gRXJyb3IucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFBhcnNlRXJyb3I7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciByZWdpc3RyeSA9IHt9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG5hbWUsIGNhbGxiYWNrKSB7XG4gIGlmIChjYWxsYmFjaykge1xuICAgIHJlZ2lzdHJ5W25hbWVdID0gY2FsbGJhY2s7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yICh2YXIgbWV0aG9kIGluIG5hbWUpIHtcbiAgICAgIHJlZ2lzdHJ5W21ldGhvZF0gPSBuYW1lW21ldGhvZF07XG4gICAgfVxuICB9IGVsc2UgaWYgKG5hbWUpIHtcbiAgICByZXR1cm4gcmVnaXN0cnlbbmFtZV07XG4gIH1cblxuICByZXR1cm4gcmVnaXN0cnk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iaikge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKS5maWx0ZXIoZnVuY3Rpb24oa2V5KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmpba2V5XSAhPT0gJ3VuZGVmaW5lZCc7XG4gIH0pLmxlbmd0aCA+IDA7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaW5mZXJyZWRQcm9wZXJ0aWVzID0ge1xuICBhcnJheTogW1xuICAgICdhZGRpdGlvbmFsSXRlbXMnLFxuICAgICdpdGVtcycsXG4gICAgJ21heEl0ZW1zJyxcbiAgICAnbWluSXRlbXMnLFxuICAgICd1bmlxdWVJdGVtcydcbiAgXSxcbiAgaW50ZWdlcjogW1xuICAgICdleGNsdXNpdmVNYXhpbXVtJyxcbiAgICAnZXhjbHVzaXZlTWluaW11bScsXG4gICAgJ21heGltdW0nLFxuICAgICdtaW5pbXVtJyxcbiAgICAnbXVsdGlwbGVPZidcbiAgXSxcbiAgb2JqZWN0OiBbXG4gICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJyxcbiAgICAnZGVwZW5kZW5jaWVzJyxcbiAgICAnbWF4UHJvcGVydGllcycsXG4gICAgJ21pblByb3BlcnRpZXMnLFxuICAgICdwYXR0ZXJuUHJvcGVydGllcycsXG4gICAgJ3Byb3BlcnRpZXMnLFxuICAgICdyZXF1aXJlZCdcbiAgXSxcbiAgc3RyaW5nOiBbXG4gICAgJ21heExlbmd0aCcsXG4gICAgJ21lbmxlbmd0aCcsXG4gICAgJ3BhdHRlcm4nXG4gIF1cbn07XG5cbmluZmVycmVkUHJvcGVydGllcy5udW1iZXIgPSBpbmZlcnJlZFByb3BlcnRpZXMuaW50ZWdlcjtcblxuZnVuY3Rpb24gbWF5SGF2ZVR5cGUob2JqLCBwcm9wcykge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5maWx0ZXIoZnVuY3Rpb24ocHJvcCkge1xuICAgIHJldHVybiBwcm9wcy5pbmRleE9mKHByb3ApID4gLTE7XG4gIH0pLmxlbmd0aCA+IDA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqKSB7XG4gIGZvciAodmFyIHR5cGUgaW4gaW5mZXJyZWRQcm9wZXJ0aWVzKSB7XG4gICAgaWYgKG1heUhhdmVUeXBlKG9iaiwgaW5mZXJyZWRQcm9wZXJ0aWVzW3R5cGVdKSkge1xuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYXJyYXk6IHJlcXVpcmUoJy4uL3R5cGVzL2FycmF5JyksXG4gIGJvb2xlYW46IHJlcXVpcmUoJy4uL3R5cGVzL2Jvb2xlYW4nKSxcbiAgaW50ZWdlcjogcmVxdWlyZSgnLi4vdHlwZXMvaW50ZWdlcicpLFxuICBudW1iZXI6IHJlcXVpcmUoJy4uL3R5cGVzL251bWJlcicpLFxuICBudWxsOiByZXF1aXJlKCcuLi90eXBlcy9udWxsJyksXG4gIG9iamVjdDogcmVxdWlyZSgnLi4vdHlwZXMvb2JqZWN0JyksXG4gIHN0cmluZzogcmVxdWlyZSgnLi4vdHlwZXMvc3RyaW5nJylcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuL2NvbnRhaW5lcicpO1xuXG52YXIgZmFrZXIgPSBjb250YWluZXIuZ2V0KCdmYWtlcicpO1xuXG52YXIgcmFuZG9tID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihtaW4sIG1heCwgZGVmTWluLCBkZWZNYXgpIHtcbiAgdmFyIGlzSW50ZWdlciA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBtaW4gPT09ICdib29sZWFuJykge1xuICAgIC8vIG5vbi1pbnRlZ2VyIHZhbHVlc1xuICAgIGlzSW50ZWdlciA9IG1pbjtcbiAgICBtaW4gPSBhcmd1bWVudHNbMV07XG4gICAgbWF4ID0gYXJndW1lbnRzWzJdO1xuICAgIGRlZk1pbiA9IGFyZ3VtZW50c1szXTtcbiAgICBkZWZNYXggPSBhcmd1bWVudHNbNF07XG4gIH1cblxuICBkZWZNaW4gPSB0eXBlb2YgZGVmTWluID09PSAndW5kZWZpbmVkJyA/IHJhbmRvbS5NSU5fTlVNQkVSIDogZGVmTWluO1xuICBkZWZNYXggPSB0eXBlb2YgZGVmTWF4ID09PSAndW5kZWZpbmVkJyA/IHJhbmRvbS5NQVhfTlVNQkVSIDogZGVmTWF4O1xuXG4gIG1pbiA9IHR5cGVvZiBtaW4gPT09ICd1bmRlZmluZWQnID8gZGVmTWluIDogbWluO1xuICBtYXggPSB0eXBlb2YgbWF4ID09PSAndW5kZWZpbmVkJyA/IGRlZk1heCA6IG1heDtcblxuICBpZiAobWF4IDwgbWluKSB7XG4gICAgbWF4ICs9IG1pbjtcbiAgfVxuXG4gIHJldHVybiBmYWtlci5yYW5kb20ubnVtYmVyKHtcbiAgICBtaW46IG1pbixcbiAgICBtYXg6IE1hdGgubWF4KG1heCwgbWluICsgMSksXG4gICAgcHJlY2lzaW9uOiBpc0ludGVnZXIgPyAxIDogTWF0aC5yYW5kb20oKVxuICB9KTtcbn07XG5cbnJhbmRvbS5zaHVmZmxlID0gZnVuY3Rpb24ob2JqKSB7XG4gIHZhciBjb3B5ID0gb2JqLnNsaWNlKCksXG4gICAgICBsZW5ndGggPSBvYmoubGVuZ3RoO1xuXG4gIGZvciAoOyBsZW5ndGggPiAwOykge1xuICAgIHZhciBrZXkgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBsZW5ndGgpLFxuICAgICAgICB0bXAgPSBjb3B5Wy0tbGVuZ3RoXTtcblxuICAgIGNvcHlbbGVuZ3RoXSA9IGNvcHlba2V5XTtcbiAgICBjb3B5W2tleV0gPSB0bXA7XG4gIH1cblxuICByZXR1cm4gY29weTtcbn07XG5cbnJhbmRvbS5waWNrID0gZnVuY3Rpb24ob2JqKSB7XG4gIHJldHVybiBvYmpbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogb2JqLmxlbmd0aCldO1xufTtcblxucmFuZG9tLk1JTl9OVU1CRVIgPSAtMTAwO1xucmFuZG9tLk1BWF9OVU1CRVIgPSAxMDA7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciByYW5kb20gPSByZXF1aXJlKCcuL3JhbmRvbScpLFxuICAgIGNvbWJpbmUgPSByZXF1aXJlKCcuL2NvbWJpbmUnKTtcblxudmFyIFBhcnNlRXJyb3IgPSByZXF1aXJlKCcuL2Vycm9yJyk7XG5cbnZhciBpbmZlcnJlZFR5cGUgPSByZXF1aXJlKCcuL2luZmVycmVkJyk7XG5cbmZ1bmN0aW9uIHJlZHVjZShvYmopIHtcbiAgdmFyIG1peCA9IG9iai5hbGxPZiB8fCBvYmouYW55T2YgfHwgb2JqLm9uZU9mO1xuXG4gIGlmICghKG1peCAmJiBtaXgubGVuZ3RoKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIHZhciB2YWx1ZSA9IG9ialtrZXldO1xuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhKGtleSA9PT0gJ2VudW0nIHx8IGtleSA9PT0gJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgcmVkdWNlKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoKG9iai5vbmVPZiB8fCBvYmouYW55T2YpICYmIG1peC5sZW5ndGgpIHtcbiAgICBtaXggPSBbcmFuZG9tLnBpY2sobWl4KV07XG4gIH1cblxuICBkZWxldGUgb2JqLmFsbE9mO1xuICBkZWxldGUgb2JqLmFueU9mO1xuICBkZWxldGUgb2JqLm9uZU9mO1xuXG4gIHZhciBmaXhlZCA9IHt9O1xuXG4gIG1peC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgY29tYmluZShmaXhlZCwgdmFsdWUpO1xuICB9KTtcblxuICBjb21iaW5lKG9iaiwgZml4ZWQpO1xuXG4gIHdoaWxlIChvYmouYWxsT2YgfHwgb2JqLmFueU9mIHx8IG9iai5vbmVPZikge1xuICAgIHJlZHVjZShvYmopO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYXZlcnNlKG9iaiwgcGF0aCkge1xuICB2YXIgcHJpbWl0aXZlcyA9IHJlcXVpcmUoJy4vcHJpbWl0aXZlcycpO1xuXG4gIHZhciBjb3B5ID0ge307XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGNvcHkgPSBbXTtcbiAgfVxuXG4gIHBhdGggPSBwYXRoIHx8IFtdO1xuXG4gIHJlZHVjZShvYmopO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG9iai5lbnVtKSkge1xuICAgIHJldHVybiByYW5kb20ucGljayhvYmouZW51bSk7XG4gIH1cblxuICB2YXIgdHlwZSA9IG9iai50eXBlO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KHR5cGUpKSB7XG4gICAgdHlwZSA9IHJhbmRvbS5waWNrKHR5cGUpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEF0dGVtcHQgdG8gaW5mZXIgdGhlIHR5cGVcbiAgICB0eXBlID0gaW5mZXJyZWRUeXBlKG9iaikgfHwgdHlwZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoIXByaW1pdGl2ZXNbdHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKCd1bmtub3duIHByaW1pdGl2ZSAnICsgSlNPTi5zdHJpbmdpZnkodHlwZSksIHBhdGguY29uY2F0KFsndHlwZSddKSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBwcmltaXRpdmVzW3R5cGVdKG9iaiwgcGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKHR5cGVvZiBlLnBhdGggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKGUubWVzc2FnZSwgcGF0aClcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgY29weVtrZXldID0gdHJhdmVyc2UodmFsdWUsIHBhdGguY29uY2F0KFtrZXldKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvcHlba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRyYXZlcnNlO1xuIiwiLy8gIENoYW5jZS5qcyAwLjcuNVxuLy8gIGh0dHA6Ly9jaGFuY2Vqcy5jb21cbi8vICAoYykgMjAxMyBWaWN0b3IgUXVpbm5cbi8vICBDaGFuY2UgbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZCBvciBtb2RpZmllZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG5cbihmdW5jdGlvbiAoKSB7XG5cbiAgICAvLyBDb25zdGFudHNcbiAgICB2YXIgTUFYX0lOVCA9IDkwMDcxOTkyNTQ3NDA5OTI7XG4gICAgdmFyIE1JTl9JTlQgPSAtTUFYX0lOVDtcbiAgICB2YXIgTlVNQkVSUyA9ICcwMTIzNDU2Nzg5JztcbiAgICB2YXIgQ0hBUlNfTE9XRVIgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonO1xuICAgIHZhciBDSEFSU19VUFBFUiA9IENIQVJTX0xPV0VSLnRvVXBwZXJDYXNlKCk7XG4gICAgdmFyIEhFWF9QT09MICA9IE5VTUJFUlMgKyBcImFiY2RlZlwiO1xuXG4gICAgLy8gQ2FjaGVkIGFycmF5IGhlbHBlcnNcbiAgICB2YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG5cbiAgICAvLyBDb25zdHJ1Y3RvclxuICAgIGZ1bmN0aW9uIENoYW5jZSAoc2VlZCkge1xuICAgICAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQ2hhbmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNlZWQgPT0gbnVsbCA/IG5ldyBDaGFuY2UoKSA6IG5ldyBDaGFuY2Uoc2VlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiB1c2VyIGhhcyBwcm92aWRlZCBhIGZ1bmN0aW9uLCB1c2UgdGhhdCBhcyB0aGUgZ2VuZXJhdG9yXG4gICAgICAgIGlmICh0eXBlb2Ygc2VlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5yYW5kb20gPSBzZWVkO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2VlZGxpbmc7XG5cbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIHNldCBhIHN0YXJ0aW5nIHZhbHVlIG9mIHplcm8gc28gd2UgY2FuIGFkZCB0byBpdFxuICAgICAgICAgICAgdGhpcy5zZWVkID0gMDtcbiAgICAgICAgfVxuICAgICAgICAvLyBvdGhlcndpc2UsIGxlYXZlIHRoaXMuc2VlZCBibGFuayBzbyB0aGF0IE1UIHdpbGwgcmVjaWV2ZSBhIGJsYW5rXG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHNlZWRsaW5nID0gMDtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYXJndW1lbnRzW2ldID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJndW1lbnRzW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlZWRsaW5nICs9IChhcmd1bWVudHNbaV0ubGVuZ3RoIC0gaikgKiBhcmd1bWVudHNbaV0uY2hhckNvZGVBdChqKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlZWRsaW5nID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZWVkICs9IChhcmd1bWVudHMubGVuZ3RoIC0gaSkgKiBzZWVkbGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIG5vIGdlbmVyYXRvciBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHVzZSBvdXIgTVRcbiAgICAgICAgdGhpcy5tdCA9IHRoaXMubWVyc2VubmVfdHdpc3Rlcih0aGlzLnNlZWQpO1xuICAgICAgICB0aGlzLmJpbWQ1ID0gdGhpcy5ibHVlaW1wX21kNSgpO1xuICAgICAgICB0aGlzLnJhbmRvbSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm10LnJhbmRvbSh0aGlzLnNlZWQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIENoYW5jZS5wcm90b3R5cGUuVkVSU0lPTiA9IFwiMC43LjVcIjtcblxuICAgIC8vIFJhbmRvbSBoZWxwZXIgZnVuY3Rpb25zXG4gICAgZnVuY3Rpb24gaW5pdE9wdGlvbnMob3B0aW9ucywgZGVmYXVsdHMpIHtcbiAgICAgICAgb3B0aW9ucyB8fCAob3B0aW9ucyA9IHt9KTtcblxuICAgICAgICBpZiAoZGVmYXVsdHMpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgaW4gZGVmYXVsdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNbaV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbaV0gPSBkZWZhdWx0c1tpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0ZXN0UmFuZ2UodGVzdCwgZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIGlmICh0ZXN0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5jb2RlIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCBCYXNlNjQuXG4gICAgICovXG4gICAgdmFyIGJhc2U2NCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIEJhc2U2NCBlbmNvZGVyIGF2YWlsYWJsZS4nKTtcbiAgICB9O1xuXG4gICAgLy8gU2VsZWN0IHByb3BlciBCYXNlNjQgZW5jb2Rlci5cbiAgICAoZnVuY3Rpb24gZGV0ZXJtaW5lQmFzZTY0RW5jb2RlcigpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBidG9hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBiYXNlNjQgPSBidG9hO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBCdWZmZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGJhc2U2NCA9IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXIoaW5wdXQpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgLy8gLS0gQmFzaWNzIC0tXG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIGJvb2wsIGVpdGhlciB0cnVlIG9yIGZhbHNlXG4gICAgICpcbiAgICAgKiAgQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXsgbGlrZWxpaG9vZDogNTAgfV0gYWx0ZXIgdGhlIGxpa2VsaWhvb2Qgb2ZcbiAgICAgKiAgICByZWNlaXZpbmcgYSB0cnVlIG9yIGZhbHNlIHZhbHVlIGJhY2suXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGlmIHRoZSBsaWtlbGlob29kIGlzIG91dCBvZiBib3VuZHNcbiAgICAgKiAgQHJldHVybnMge0Jvb2x9IGVpdGhlciB0cnVlIG9yIGZhbHNlXG4gICAgICovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5ib29sID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgLy8gbGlrZWxpaG9vZCBvZiBzdWNjZXNzICh0cnVlKVxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2xpa2VsaWhvb2QgOiA1MH0pO1xuXG4gICAgICAgIC8vIE5vdGUsIHdlIGNvdWxkIGdldCBzb21lIG1pbm9yIHBlcmYgb3B0aW1pemF0aW9ucyBieSBjaGVja2luZyByYW5nZVxuICAgICAgICAvLyBwcmlvciB0byBpbml0aWFsaXppbmcgZGVmYXVsdHMsIGJ1dCB0aGF0IG1ha2VzIGNvZGUgYSBiaXQgbWVzc2llclxuICAgICAgICAvLyBhbmQgdGhlIGNoZWNrIG1vcmUgY29tcGxpY2F0ZWQgYXMgd2UgaGF2ZSB0byBjaGVjayBleGlzdGVuY2Ugb2ZcbiAgICAgICAgLy8gdGhlIG9iamVjdCB0aGVuIGV4aXN0ZW5jZSBvZiB0aGUga2V5IGJlZm9yZSBjaGVja2luZyBjb25zdHJhaW50cy5cbiAgICAgICAgLy8gU2luY2UgdGhlIG9wdGlvbnMgaW5pdGlhbGl6YXRpb24gc2hvdWxkIGJlIG1pbm9yIGNvbXB1dGF0aW9uYWxseSxcbiAgICAgICAgLy8gZGVjaXNpb24gbWFkZSBmb3IgY29kZSBjbGVhbmxpbmVzcyBpbnRlbnRpb25hbGx5LiBUaGlzIGlzIG1lbnRpb25lZFxuICAgICAgICAvLyBoZXJlIGFzIGl0J3MgdGhlIGZpcnN0IG9jY3VycmVuY2UsIHdpbGwgbm90IGJlIG1lbnRpb25lZCBhZ2Fpbi5cbiAgICAgICAgdGVzdFJhbmdlKFxuICAgICAgICAgICAgb3B0aW9ucy5saWtlbGlob29kIDwgMCB8fCBvcHRpb25zLmxpa2VsaWhvb2QgPiAxMDAsXG4gICAgICAgICAgICBcIkNoYW5jZTogTGlrZWxpaG9vZCBhY2NlcHRzIHZhbHVlcyBmcm9tIDAgdG8gMTAwLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZG9tKCkgKiAxMDAgPCBvcHRpb25zLmxpa2VsaWhvb2Q7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqICBSZXR1cm4gYSByYW5kb20gY2hhcmFjdGVyLlxuICAgICAqXG4gICAgICogIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gY2FuIHNwZWNpZnkgYSBjaGFyYWN0ZXIgcG9vbCwgb25seSBhbHBoYSxcbiAgICAgKiAgICBvbmx5IHN5bWJvbHMsIGFuZCBjYXNpbmcgKGxvd2VyIG9yIHVwcGVyKVxuICAgICAqICBAcmV0dXJucyB7U3RyaW5nfSBhIHNpbmdsZSByYW5kb20gY2hhcmFjdGVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IENhbiBvbmx5IHNwZWNpZnkgYWxwaGEgb3Igc3ltYm9scywgbm90IGJvdGhcbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmNoYXJhY3RlciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgdGVzdFJhbmdlKFxuICAgICAgICAgICAgb3B0aW9ucy5hbHBoYSAmJiBvcHRpb25zLnN5bWJvbHMsXG4gICAgICAgICAgICBcIkNoYW5jZTogQ2Fubm90IHNwZWNpZnkgYm90aCBhbHBoYSBhbmQgc3ltYm9scy5cIlxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBzeW1ib2xzID0gXCIhQCMkJV4mKigpW11cIixcbiAgICAgICAgICAgIGxldHRlcnMsIHBvb2w7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuY2FzaW5nID09PSAnbG93ZXInKSB7XG4gICAgICAgICAgICBsZXR0ZXJzID0gQ0hBUlNfTE9XRVI7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5jYXNpbmcgPT09ICd1cHBlcicpIHtcbiAgICAgICAgICAgIGxldHRlcnMgPSBDSEFSU19VUFBFUjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldHRlcnMgPSBDSEFSU19MT1dFUiArIENIQVJTX1VQUEVSO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucG9vbCkge1xuICAgICAgICAgICAgcG9vbCA9IG9wdGlvbnMucG9vbDtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmFscGhhKSB7XG4gICAgICAgICAgICBwb29sID0gbGV0dGVycztcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnN5bWJvbHMpIHtcbiAgICAgICAgICAgIHBvb2wgPSBzeW1ib2xzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9vbCA9IGxldHRlcnMgKyBOVU1CRVJTICsgc3ltYm9scztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwb29sLmNoYXJBdCh0aGlzLm5hdHVyYWwoe21heDogKHBvb2wubGVuZ3RoIC0gMSl9KSk7XG4gICAgfTtcblxuICAgIC8vIE5vdGUsIHdhbnRlZCB0byB1c2UgXCJmbG9hdFwiIG9yIFwiZG91YmxlXCIgYnV0IHRob3NlIGFyZSBib3RoIEpTIHJlc2VydmVkIHdvcmRzLlxuXG4gICAgLy8gTm90ZSwgZml4ZWQgbWVhbnMgTiBPUiBMRVNTIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbC4gVGhpcyBiZWNhdXNlXG4gICAgLy8gSXQgY291bGQgYmUgMTQuOTAwMCBidXQgaW4gSmF2YVNjcmlwdCwgd2hlbiB0aGlzIGlzIGNhc3QgYXMgYSBudW1iZXIsXG4gICAgLy8gdGhlIHRyYWlsaW5nIHplcm9lcyBhcmUgZHJvcHBlZC4gTGVmdCB0byB0aGUgY29uc3VtZXIgaWYgdHJhaWxpbmcgemVyb2VzIGFyZVxuICAgIC8vIG5lZWRlZFxuICAgIC8qKlxuICAgICAqICBSZXR1cm4gYSByYW5kb20gZmxvYXRpbmcgcG9pbnQgbnVtYmVyXG4gICAgICpcbiAgICAgKiAgQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBjYW4gc3BlY2lmeSBhIGZpeGVkIHByZWNpc2lvbiwgbWluLCBtYXhcbiAgICAgKiAgQHJldHVybnMge051bWJlcn0gYSBzaW5nbGUgZmxvYXRpbmcgcG9pbnQgbnVtYmVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IENhbiBvbmx5IHNwZWNpZnkgZml4ZWQgb3IgcHJlY2lzaW9uLCBub3QgYm90aC4gQWxzb1xuICAgICAqICAgIG1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuZmxvYXRpbmcgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2ZpeGVkIDogNH0pO1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLmZpeGVkICYmIG9wdGlvbnMucHJlY2lzaW9uLFxuICAgICAgICAgICAgXCJDaGFuY2U6IENhbm5vdCBzcGVjaWZ5IGJvdGggZml4ZWQgYW5kIHByZWNpc2lvbi5cIlxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBudW07XG4gICAgICAgIHZhciBmaXhlZCA9IE1hdGgucG93KDEwLCBvcHRpb25zLmZpeGVkKTtcblxuICAgICAgICB2YXIgbWF4ID0gTUFYX0lOVCAvIGZpeGVkO1xuICAgICAgICB2YXIgbWluID0gLW1heDtcblxuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLm1pbiAmJiBvcHRpb25zLmZpeGVkICYmIG9wdGlvbnMubWluIDwgbWluLFxuICAgICAgICAgICAgXCJDaGFuY2U6IE1pbiBzcGVjaWZpZWQgaXMgb3V0IG9mIHJhbmdlIHdpdGggZml4ZWQuIE1pbiBzaG91bGQgYmUsIGF0IGxlYXN0LCBcIiArIG1pblxuICAgICAgICApO1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLm1heCAmJiBvcHRpb25zLmZpeGVkICYmIG9wdGlvbnMubWF4ID4gbWF4LFxuICAgICAgICAgICAgXCJDaGFuY2U6IE1heCBzcGVjaWZpZWQgaXMgb3V0IG9mIHJhbmdlIHdpdGggZml4ZWQuIE1heCBzaG91bGQgYmUsIGF0IG1vc3QsIFwiICsgbWF4XG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgbWluIDogbWluLCBtYXggOiBtYXggfSk7XG5cbiAgICAgICAgLy8gVG9kbyAtIE1ha2UgdGhpcyB3b3JrIVxuICAgICAgICAvLyBvcHRpb25zLnByZWNpc2lvbiA9ICh0eXBlb2Ygb3B0aW9ucy5wcmVjaXNpb24gIT09IFwidW5kZWZpbmVkXCIpID8gb3B0aW9ucy5wcmVjaXNpb24gOiBmYWxzZTtcblxuICAgICAgICBudW0gPSB0aGlzLmludGVnZXIoe21pbjogb3B0aW9ucy5taW4gKiBmaXhlZCwgbWF4OiBvcHRpb25zLm1heCAqIGZpeGVkfSk7XG4gICAgICAgIHZhciBudW1fZml4ZWQgPSAobnVtIC8gZml4ZWQpLnRvRml4ZWQob3B0aW9ucy5maXhlZCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtX2ZpeGVkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBpbnRlZ2VyXG4gICAgICpcbiAgICAgKiAgTk9URSB0aGUgbWF4IGFuZCBtaW4gYXJlIElOQ0xVREVEIGluIHRoZSByYW5nZS4gU286XG4gICAgICogIGNoYW5jZS5pbnRlZ2VyKHttaW46IDEsIG1heDogM30pO1xuICAgICAqICB3b3VsZCByZXR1cm4gZWl0aGVyIDEsIDIsIG9yIDMuXG4gICAgICpcbiAgICAgKiAgQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBjYW4gc3BlY2lmeSBhIG1pbiBhbmQvb3IgbWF4XG4gICAgICogIEByZXR1cm5zIHtOdW1iZXJ9IGEgc2luZ2xlIHJhbmRvbSBpbnRlZ2VyIG51bWJlclxuICAgICAqICBAdGhyb3dzIHtSYW5nZUVycm9yfSBtaW4gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhcbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmludGVnZXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyA5MDA3MTk5MjU0NzQwOTkyICgyXjUzKSBpcyB0aGUgbWF4IGludGVnZXIgbnVtYmVyIGluIEphdmFTY3JpcHRcbiAgICAgICAgLy8gU2VlOiBodHRwOi8vdnEuaW8vMTMyc2EyalxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogTUlOX0lOVCwgbWF4OiBNQVhfSU5UfSk7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnJhbmRvbSgpICogKG9wdGlvbnMubWF4IC0gb3B0aW9ucy5taW4gKyAxKSArIG9wdGlvbnMubWluKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBuYXR1cmFsXG4gICAgICpcbiAgICAgKiAgTk9URSB0aGUgbWF4IGFuZCBtaW4gYXJlIElOQ0xVREVEIGluIHRoZSByYW5nZS4gU286XG4gICAgICogIGNoYW5jZS5uYXR1cmFsKHttaW46IDEsIG1heDogM30pO1xuICAgICAqICB3b3VsZCByZXR1cm4gZWl0aGVyIDEsIDIsIG9yIDMuXG4gICAgICpcbiAgICAgKiAgQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBjYW4gc3BlY2lmeSBhIG1pbiBhbmQvb3IgbWF4XG4gICAgICogIEByZXR1cm5zIHtOdW1iZXJ9IGEgc2luZ2xlIHJhbmRvbSBpbnRlZ2VyIG51bWJlclxuICAgICAqICBAdGhyb3dzIHtSYW5nZUVycm9yfSBtaW4gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhcbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLm5hdHVyYWwgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMCwgbWF4OiBNQVhfSU5UfSk7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA8IDAsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZWdlcihvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBzdHJpbmdcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgbGVuZ3RoXG4gICAgICogIEByZXR1cm5zIHtTdHJpbmd9IGEgc3RyaW5nIG9mIHJhbmRvbSBsZW5ndGhcbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gbGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVyb1xuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuc3RyaW5nID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgbGVuZ3RoOiB0aGlzLm5hdHVyYWwoe21pbjogNSwgbWF4OiAyMH0pIH0pO1xuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5sZW5ndGggPCAwLCBcIkNoYW5jZTogTGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVyby5cIik7XG4gICAgICAgIHZhciBsZW5ndGggPSBvcHRpb25zLmxlbmd0aCxcbiAgICAgICAgICAgIHRleHQgPSB0aGlzLm4odGhpcy5jaGFyYWN0ZXIsIGxlbmd0aCwgb3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIHRleHQuam9pbihcIlwiKTtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIEJhc2ljcyAtLVxuXG4gICAgLy8gLS0gSGVscGVycyAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jYXBpdGFsaXplID0gZnVuY3Rpb24gKHdvcmQpIHtcbiAgICAgICAgcmV0dXJuIHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnN1YnN0cigxKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5taXhpbiA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgZm9yICh2YXIgZnVuY19uYW1lIGluIG9iaikge1xuICAgICAgICAgICAgQ2hhbmNlLnByb3RvdHlwZVtmdW5jX25hbWVdID0gb2JqW2Z1bmNfbmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqICBHaXZlbiBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHNvbWV0aGluZyByYW5kb20gYW5kIGEgbnVtYmVyIG9mIGl0ZW1zIHRvIGdlbmVyYXRlLFxuICAgICAqICAgIHJldHVybiBhbiBhcnJheSBvZiBpdGVtcyB3aGVyZSBub25lIHJlcGVhdC5cbiAgICAgKlxuICAgICAqICBAcGFyYW0ge0Z1bmN0aW9ufSBmbiB0aGUgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgc29tZXRoaW5nIHJhbmRvbVxuICAgICAqICBAcGFyYW0ge051bWJlcn0gbnVtIG51bWJlciBvZiB0ZXJtcyB0byBnZW5lcmF0ZVxuICAgICAqICBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBhbnkgb3B0aW9ucyB0byBwYXNzIG9uIHRvIHRoZSBnZW5lcmF0b3IgZnVuY3Rpb25cbiAgICAgKiAgQHJldHVybnMge0FycmF5fSBhbiBhcnJheSBvZiBsZW5ndGggYG51bWAgd2l0aCBldmVyeSBpdGVtIGdlbmVyYXRlZCBieSBgZm5gIGFuZCB1bmlxdWVcbiAgICAgKlxuICAgICAqICBUaGVyZSBjYW4gYmUgbW9yZSBwYXJhbWV0ZXJzIGFmdGVyIHRoZXNlLiBBbGwgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZCB0byB0aGUgZ2l2ZW4gZnVuY3Rpb25cbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLnVuaXF1ZSA9IGZ1bmN0aW9uKGZuLCBudW0sIG9wdGlvbnMpIHtcbiAgICAgICAgdGVzdFJhbmdlKFxuICAgICAgICAgICAgdHlwZW9mIGZuICE9PSBcImZ1bmN0aW9uXCIsXG4gICAgICAgICAgICBcIkNoYW5jZTogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbi5cIlxuICAgICAgICApO1xuXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICAvLyBEZWZhdWx0IGNvbXBhcmF0b3IgdG8gY2hlY2sgdGhhdCB2YWwgaXMgbm90IGFscmVhZHkgaW4gYXJyLlxuICAgICAgICAgICAgLy8gU2hvdWxkIHJldHVybiBgZmFsc2VgIGlmIGl0ZW0gbm90IGluIGFycmF5LCBgdHJ1ZWAgb3RoZXJ3aXNlXG4gICAgICAgICAgICBjb21wYXJhdG9yOiBmdW5jdGlvbihhcnIsIHZhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZih2YWwpICE9PSAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIGFyciA9IFtdLCBjb3VudCA9IDAsIHJlc3VsdCwgTUFYX0RVUExJQ0FURVMgPSBudW0gKiA1MCwgcGFyYW1zID0gc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpO1xuXG4gICAgICAgIHdoaWxlIChhcnIubGVuZ3RoIDwgbnVtKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBmbi5hcHBseSh0aGlzLCBwYXJhbXMpO1xuICAgICAgICAgICAgaWYgKCFvcHRpb25zLmNvbXBhcmF0b3IoYXJyLCByZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgYXJyLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAvLyByZXNldCBjb3VudCB3aGVuIHVuaXF1ZSBmb3VuZFxuICAgICAgICAgICAgICAgIGNvdW50ID0gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCsrY291bnQgPiBNQVhfRFVQTElDQVRFUykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiQ2hhbmNlOiBudW0gaXMgbGlrZWx5IHRvbyBsYXJnZSBmb3Igc2FtcGxlIHNldFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgR2l2ZXMgYW4gYXJyYXkgb2YgbiByYW5kb20gdGVybXNcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge0Z1bmN0aW9ufSBmbiB0aGUgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgc29tZXRoaW5nIHJhbmRvbVxuICAgICAqICBAcGFyYW0ge051bWJlcn0gbiBudW1iZXIgb2YgdGVybXMgdG8gZ2VuZXJhdGVcbiAgICAgKiAgQHJldHVybnMge0FycmF5fSBhbiBhcnJheSBvZiBsZW5ndGggYG5gIHdpdGggaXRlbXMgZ2VuZXJhdGVkIGJ5IGBmbmBcbiAgICAgKlxuICAgICAqICBUaGVyZSBjYW4gYmUgbW9yZSBwYXJhbWV0ZXJzIGFmdGVyIHRoZXNlLiBBbGwgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZCB0byB0aGUgZ2l2ZW4gZnVuY3Rpb25cbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLm4gPSBmdW5jdGlvbihmbiwgbikge1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICB0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIixcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBuID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbiA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGkgPSBuLCBhcnIgPSBbXSwgcGFyYW1zID0gc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpO1xuXG4gICAgICAgIC8vIFByb3ZpZGluZyBhIG5lZ2F0aXZlIGNvdW50IHNob3VsZCByZXN1bHQgaW4gYSBub29wLlxuICAgICAgICBpID0gTWF0aC5tYXgoIDAsIGkgKTtcblxuICAgICAgICBmb3IgKG51bGw7IGktLTsgbnVsbCkge1xuICAgICAgICAgICAgYXJyLnB1c2goZm4uYXBwbHkodGhpcywgcGFyYW1zKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH07XG5cbiAgICAvLyBIL1QgdG8gU08gZm9yIHRoaXMgb25lOiBodHRwOi8vdnEuaW8vT3RVclo1XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wYWQgPSBmdW5jdGlvbiAobnVtYmVyLCB3aWR0aCwgcGFkKSB7XG4gICAgICAgIC8vIERlZmF1bHQgcGFkIHRvIDAgaWYgbm9uZSBwcm92aWRlZFxuICAgICAgICBwYWQgPSBwYWQgfHwgJzAnO1xuICAgICAgICAvLyBDb252ZXJ0IG51bWJlciB0byBhIHN0cmluZ1xuICAgICAgICBudW1iZXIgPSBudW1iZXIgKyAnJztcbiAgICAgICAgcmV0dXJuIG51bWJlci5sZW5ndGggPj0gd2lkdGggPyBudW1iZXIgOiBuZXcgQXJyYXkod2lkdGggLSBudW1iZXIubGVuZ3RoICsgMSkuam9pbihwYWQpICsgbnVtYmVyO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnBpY2sgPSBmdW5jdGlvbiAoYXJyLCBjb3VudCkge1xuICAgICAgICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDaGFuY2U6IENhbm5vdCBwaWNrKCkgZnJvbSBhbiBlbXB0eSBhcnJheVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvdW50IHx8IGNvdW50ID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyW3RoaXMubmF0dXJhbCh7bWF4OiBhcnIubGVuZ3RoIC0gMX0pXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNodWZmbGUoYXJyKS5zbGljZSgwLCBjb3VudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zaHVmZmxlID0gZnVuY3Rpb24gKGFycikge1xuICAgICAgICB2YXIgb2xkX2FycmF5ID0gYXJyLnNsaWNlKDApLFxuICAgICAgICAgICAgbmV3X2FycmF5ID0gW10sXG4gICAgICAgICAgICBqID0gMCxcbiAgICAgICAgICAgIGxlbmd0aCA9IE51bWJlcihvbGRfYXJyYXkubGVuZ3RoKTtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAvLyBQaWNrIGEgcmFuZG9tIGluZGV4IGZyb20gdGhlIGFycmF5XG4gICAgICAgICAgICBqID0gdGhpcy5uYXR1cmFsKHttYXg6IG9sZF9hcnJheS5sZW5ndGggLSAxfSk7XG4gICAgICAgICAgICAvLyBBZGQgaXQgdG8gdGhlIG5ldyBhcnJheVxuICAgICAgICAgICAgbmV3X2FycmF5W2ldID0gb2xkX2FycmF5W2pdO1xuICAgICAgICAgICAgLy8gUmVtb3ZlIHRoYXQgZWxlbWVudCBmcm9tIHRoZSBvcmlnaW5hbCBhcnJheVxuICAgICAgICAgICAgb2xkX2FycmF5LnNwbGljZShqLCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXdfYXJyYXk7XG4gICAgfTtcblxuICAgIC8vIFJldHVybnMgYSBzaW5nbGUgaXRlbSBmcm9tIGFuIGFycmF5IHdpdGggcmVsYXRpdmUgd2VpZ2h0aW5nIG9mIG9kZHNcbiAgICBDaGFuY2UucHJvdG90eXBlLndlaWdodGVkID0gZnVuY3Rpb24oYXJyLCB3ZWlnaHRzKSB7XG4gICAgICAgIGlmIChhcnIubGVuZ3RoICE9PSB3ZWlnaHRzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDaGFuY2U6IGxlbmd0aCBvZiBhcnJheSBhbmQgd2VpZ2h0cyBtdXN0IG1hdGNoXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIHdlaWdodHMgdGhhdCBhcmUgbGVzcyBvciBlcXVhbCB0byB6ZXJvLlxuICAgICAgICBmb3IgKHZhciB3ZWlnaHRJbmRleCA9IHdlaWdodHMubGVuZ3RoIC0gMTsgd2VpZ2h0SW5kZXggPj0gMDsgLS13ZWlnaHRJbmRleCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHdlaWdodCBpcyBsZXNzIG9yIGVxdWFsIHRvIHplcm8sIHJlbW92ZSBpdCBhbmQgdGhlIHZhbHVlLlxuICAgICAgICAgICAgaWYgKHdlaWdodHNbd2VpZ2h0SW5kZXhdIDw9IDApIHtcbiAgICAgICAgICAgICAgICBhcnIuc3BsaWNlKHdlaWdodEluZGV4LDEpO1xuICAgICAgICAgICAgICAgIHdlaWdodHMuc3BsaWNlKHdlaWdodEluZGV4LDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgYW55IG9mIHRoZSB3ZWlnaHRzIGFyZSBsZXNzIHRoYW4gMSwgd2Ugd2FudCB0byBzY2FsZSB0aGVtIHVwIHRvIHdob2xlXG4gICAgICAgIC8vICAgbnVtYmVycyBmb3IgdGhlIHJlc3Qgb2YgdGhpcyBsb2dpYyB0byB3b3JrXG4gICAgICAgIGlmICh3ZWlnaHRzLnNvbWUoZnVuY3Rpb24od2VpZ2h0KSB7IHJldHVybiB3ZWlnaHQgPCAxOyB9KSkge1xuICAgICAgICAgICAgdmFyIG1pbiA9IHdlaWdodHMucmVkdWNlKGZ1bmN0aW9uKG1pbiwgd2VpZ2h0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh3ZWlnaHQgPCBtaW4pID8gd2VpZ2h0IDogbWluO1xuICAgICAgICAgICAgfSwgd2VpZ2h0c1swXSk7XG5cbiAgICAgICAgICAgIHZhciBzY2FsaW5nX2ZhY3RvciA9IDEgLyBtaW47XG5cbiAgICAgICAgICAgIHdlaWdodHMgPSB3ZWlnaHRzLm1hcChmdW5jdGlvbih3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2VpZ2h0ICogc2NhbGluZ19mYWN0b3I7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzdW0gPSB3ZWlnaHRzLnJlZHVjZShmdW5jdGlvbih0b3RhbCwgd2VpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4gdG90YWwgKyB3ZWlnaHQ7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIC8vIGdldCBhbiBpbmRleFxuICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGlzLm5hdHVyYWwoeyBtaW46IDEsIG1heDogc3VtIH0pO1xuXG4gICAgICAgIHZhciB0b3RhbCA9IDA7XG4gICAgICAgIHZhciBjaG9zZW47XG4gICAgICAgIC8vIFVzaW5nIHNvbWUoKSBoZXJlIHNvIHdlIGNhbiBiYWlsIGFzIHNvb24gYXMgd2UgZ2V0IG91ciBtYXRjaFxuICAgICAgICB3ZWlnaHRzLnNvbWUoZnVuY3Rpb24od2VpZ2h0LCBpbmRleCkge1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkIDw9IHRvdGFsICsgd2VpZ2h0KSB7XG4gICAgICAgICAgICAgICAgY2hvc2VuID0gYXJyW2luZGV4XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdGFsICs9IHdlaWdodDtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNob3NlbjtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIEhlbHBlcnMgLS1cblxuICAgIC8vIC0tIFRleHQgLS1cblxuICAgIENoYW5jZS5wcm90b3R5cGUucGFyYWdyYXBoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBzZW50ZW5jZXMgPSBvcHRpb25zLnNlbnRlbmNlcyB8fCB0aGlzLm5hdHVyYWwoe21pbjogMywgbWF4OiA3fSksXG4gICAgICAgICAgICBzZW50ZW5jZV9hcnJheSA9IHRoaXMubih0aGlzLnNlbnRlbmNlLCBzZW50ZW5jZXMpO1xuXG4gICAgICAgIHJldHVybiBzZW50ZW5jZV9hcnJheS5qb2luKCcgJyk7XG4gICAgfTtcblxuICAgIC8vIENvdWxkIGdldCBzbWFydGVyIGFib3V0IHRoaXMgdGhhbiBnZW5lcmF0aW5nIHJhbmRvbSB3b3JkcyBhbmRcbiAgICAvLyBjaGFpbmluZyB0aGVtIHRvZ2V0aGVyLiBTdWNoIGFzOiBodHRwOi8vdnEuaW8vMWE1Y2VPaFxuICAgIENoYW5jZS5wcm90b3R5cGUuc2VudGVuY2UgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHdvcmRzID0gb3B0aW9ucy53b3JkcyB8fCB0aGlzLm5hdHVyYWwoe21pbjogMTIsIG1heDogMTh9KSxcbiAgICAgICAgICAgIHRleHQsIHdvcmRfYXJyYXkgPSB0aGlzLm4odGhpcy53b3JkLCB3b3Jkcyk7XG5cbiAgICAgICAgdGV4dCA9IHdvcmRfYXJyYXkuam9pbignICcpO1xuXG4gICAgICAgIC8vIENhcGl0YWxpemUgZmlyc3QgbGV0dGVyIG9mIHNlbnRlbmNlLCBhZGQgcGVyaW9kIGF0IGVuZFxuICAgICAgICB0ZXh0ID0gdGhpcy5jYXBpdGFsaXplKHRleHQpICsgJy4nO1xuXG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnN5bGxhYmxlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBsZW5ndGggPSBvcHRpb25zLmxlbmd0aCB8fCB0aGlzLm5hdHVyYWwoe21pbjogMiwgbWF4OiAzfSksXG4gICAgICAgICAgICBjb25zb25hbnRzID0gJ2JjZGZnaGprbG1ucHJzdHZ3eicsIC8vIGNvbnNvbmFudHMgZXhjZXB0IGhhcmQgdG8gc3BlYWsgb25lc1xuICAgICAgICAgICAgdm93ZWxzID0gJ2FlaW91JywgLy8gdm93ZWxzXG4gICAgICAgICAgICBhbGwgPSBjb25zb25hbnRzICsgdm93ZWxzLCAvLyBhbGxcbiAgICAgICAgICAgIHRleHQgPSAnJyxcbiAgICAgICAgICAgIGNocjtcblxuICAgICAgICAvLyBJJ20gc3VyZSB0aGVyZSdzIGEgbW9yZSBlbGVnYW50IHdheSB0byBkbyB0aGlzLCBidXQgdGhpcyB3b3Jrc1xuICAgICAgICAvLyBkZWNlbnRseSB3ZWxsLlxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIEZpcnN0IGNoYXJhY3RlciBjYW4gYmUgYW55dGhpbmdcbiAgICAgICAgICAgICAgICBjaHIgPSB0aGlzLmNoYXJhY3Rlcih7cG9vbDogYWxsfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnNvbmFudHMuaW5kZXhPZihjaHIpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIC8vIExhc3QgY2hhcmFjdGVyIHdhcyBhIHZvd2VsLCBub3cgd2Ugd2FudCBhIGNvbnNvbmFudFxuICAgICAgICAgICAgICAgIGNociA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiBjb25zb25hbnRzfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIExhc3QgY2hhcmFjdGVyIHdhcyBhIGNvbnNvbmFudCwgbm93IHdlIHdhbnQgYSB2b3dlbFxuICAgICAgICAgICAgICAgIGNociA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiB2b3dlbHN9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGV4dCArPSBjaHI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS53b3JkID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMuc3lsbGFibGVzICYmIG9wdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgXCJDaGFuY2U6IENhbm5vdCBzcGVjaWZ5IGJvdGggc3lsbGFibGVzIEFORCBsZW5ndGguXCJcbiAgICAgICAgKTtcblxuICAgICAgICB2YXIgc3lsbGFibGVzID0gb3B0aW9ucy5zeWxsYWJsZXMgfHwgdGhpcy5uYXR1cmFsKHttaW46IDEsIG1heDogM30pLFxuICAgICAgICAgICAgdGV4dCA9ICcnO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gRWl0aGVyIGJvdW5kIHdvcmQgYnkgbGVuZ3RoXG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgdGV4dCArPSB0aGlzLnN5bGxhYmxlKCk7XG4gICAgICAgICAgICB9IHdoaWxlICh0ZXh0Lmxlbmd0aCA8IG9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCBvcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBPciBieSBudW1iZXIgb2Ygc3lsbGFibGVzXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN5bGxhYmxlczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGV4dCArPSB0aGlzLnN5bGxhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBUZXh0IC0tXG5cbiAgICAvLyAtLSBQZXJzb24gLS1cblxuICAgIENoYW5jZS5wcm90b3R5cGUuYWdlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgYWdlUmFuZ2U7XG5cbiAgICAgICAgc3dpdGNoIChvcHRpb25zLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NoaWxkJzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDEsIG1heDogMTJ9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndGVlbic6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiAxMywgbWF4OiAxOX07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhZHVsdCc6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiAxOCwgbWF4OiA2NX07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZW5pb3InOlxuICAgICAgICAgICAgICAgIGFnZVJhbmdlID0ge21pbjogNjUsIG1heDogMTAwfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiAxLCBtYXg6IDEwMH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGFnZVJhbmdlID0ge21pbjogMTgsIG1heDogNjV9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbChhZ2VSYW5nZSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuYmlydGhkYXkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge1xuICAgICAgICAgICAgeWVhcjogKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIHRoaXMuYWdlKG9wdGlvbnMpKVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICAvLyBDUEY7IElEIHRvIGlkZW50aWZ5IHRheHBheWVycyBpbiBCcmF6aWxcbiAgICBDaGFuY2UucHJvdG90eXBlLmNwZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLm4odGhpcy5uYXR1cmFsLCA5LCB7IG1heDogOSB9KTtcbiAgICAgICAgdmFyIGQxID0gbls4XSoyK25bN10qMytuWzZdKjQrbls1XSo1K25bNF0qNituWzNdKjcrblsyXSo4K25bMV0qOStuWzBdKjEwO1xuICAgICAgICBkMSA9IDExIC0gKGQxICUgMTEpO1xuICAgICAgICBpZiAoZDE+PTEwKSB7XG4gICAgICAgICAgICBkMSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGQyID0gZDEqMituWzhdKjMrbls3XSo0K25bNl0qNStuWzVdKjYrbls0XSo3K25bM10qOCtuWzJdKjkrblsxXSoxMCtuWzBdKjExO1xuICAgICAgICBkMiA9IDExIC0gKGQyICUgMTEpO1xuICAgICAgICBpZiAoZDI+PTEwKSB7XG4gICAgICAgICAgICBkMiA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnK25bMF0rblsxXStuWzJdKycuJytuWzNdK25bNF0rbls1XSsnLicrbls2XStuWzddK25bOF0rJy0nK2QxK2QyO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmZpcnN0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtnZW5kZXI6IHRoaXMuZ2VuZGVyKCl9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayh0aGlzLmdldChcImZpcnN0TmFtZXNcIilbb3B0aW9ucy5nZW5kZXIudG9Mb3dlckNhc2UoKV0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmdlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayhbJ01hbGUnLCAnRmVtYWxlJ10pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmxhc3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy5nZXQoXCJsYXN0TmFtZXNcIikpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1yeiA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBjaGVja0RpZ2l0ID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICB2YXIgYWxwaGEgPSBcIjxBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWFpcIi5zcGxpdCgnJyksXG4gICAgICAgICAgICAgICAgbXVsdGlwbGllcnMgPSBbIDcsIDMsIDEgXSxcbiAgICAgICAgICAgICAgICBydW5uaW5nVG90YWwgPSAwO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXQuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24oY2hhcmFjdGVyLCBpZHgpIHtcbiAgICAgICAgICAgICAgICB2YXIgcG9zID0gYWxwaGEuaW5kZXhPZihjaGFyYWN0ZXIpO1xuXG4gICAgICAgICAgICAgICAgaWYocG9zICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgPSBwb3MgPT09IDAgPyAwIDogcG9zICsgOTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgPSBwYXJzZUludChjaGFyYWN0ZXIsIDEwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyICo9IG11bHRpcGxpZXJzW2lkeCAlIG11bHRpcGxpZXJzLmxlbmd0aF07XG4gICAgICAgICAgICAgICAgcnVubmluZ1RvdGFsICs9IGNoYXJhY3RlcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJ1bm5pbmdUb3RhbCAlIDEwO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZ2VuZXJhdGUgPSBmdW5jdGlvbiAob3B0cykge1xuICAgICAgICAgICAgdmFyIHBhZCA9IGZ1bmN0aW9uIChsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5KGxlbmd0aCArIDEpLmpvaW4oJzwnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgbnVtYmVyID0gWyAnUDwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5pc3N1ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmxhc3QudG9VcHBlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8PCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmZpcnN0LnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBwYWQoMzkgLSAob3B0cy5sYXN0Lmxlbmd0aCArIG9wdHMuZmlyc3QubGVuZ3RoICsgMikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5wYXNzcG9ydE51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQob3B0cy5wYXNzcG9ydE51bWJlciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLm5hdGlvbmFsaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5kb2IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RpZ2l0KG9wdHMuZG9iKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZ2VuZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5leHBpcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RpZ2l0KG9wdHMuZXhwaXJ5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZCgxNCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RpZ2l0KHBhZCgxNCkpIF0uam9pbignJyk7XG5cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgK1xuICAgICAgICAgICAgICAgIChjaGVja0RpZ2l0KG51bWJlci5zdWJzdHIoNDQsIDEwKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyLnN1YnN0cig1NywgNykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlci5zdWJzdHIoNjUsIDcpKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICBmaXJzdDogdGhpcy5maXJzdCgpLFxuICAgICAgICAgICAgbGFzdDogdGhpcy5sYXN0KCksXG4gICAgICAgICAgICBwYXNzcG9ydE51bWJlcjogdGhpcy5pbnRlZ2VyKHttaW46IDEwMDAwMDAwMCwgbWF4OiA5OTk5OTk5OTl9KSxcbiAgICAgICAgICAgIGRvYjogKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0ZSA9IHRoYXQuYmlydGhkYXkoe3R5cGU6ICdhZHVsdCd9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW2RhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpLnN1YnN0cigyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucGFkKGRhdGUuZ2V0TW9udGgoKSArIDEsIDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5wYWQoZGF0ZS5nZXREYXRlKCksIDIpXS5qb2luKCcnKTtcbiAgICAgICAgICAgIH0oKSksXG4gICAgICAgICAgICBleHBpcnk6IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbKGRhdGUuZ2V0RnVsbFllYXIoKSArIDUpLnRvU3RyaW5nKCkuc3Vic3RyKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5wYWQoZGF0ZS5nZXRNb250aCgpICsgMSwgMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnBhZChkYXRlLmdldERhdGUoKSwgMildLmpvaW4oJycpO1xuICAgICAgICAgICAgfSgpKSxcbiAgICAgICAgICAgIGdlbmRlcjogdGhpcy5nZW5kZXIoKSA9PT0gJ0ZlbWFsZScgPyAnRic6ICdNJyxcbiAgICAgICAgICAgIGlzc3VlcjogJ0dCUicsXG4gICAgICAgICAgICBuYXRpb25hbGl0eTogJ0dCUidcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBnZW5lcmF0ZSAob3B0aW9ucyk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB2YXIgZmlyc3QgPSB0aGlzLmZpcnN0KG9wdGlvbnMpLFxuICAgICAgICAgICAgbGFzdCA9IHRoaXMubGFzdCgpLFxuICAgICAgICAgICAgbmFtZTtcblxuICAgICAgICBpZiAob3B0aW9ucy5taWRkbGUpIHtcbiAgICAgICAgICAgIG5hbWUgPSBmaXJzdCArICcgJyArIHRoaXMuZmlyc3Qob3B0aW9ucykgKyAnICcgKyBsYXN0O1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMubWlkZGxlX2luaXRpYWwpIHtcbiAgICAgICAgICAgIG5hbWUgPSBmaXJzdCArICcgJyArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiAndXBwZXInfSkgKyAnLiAnICsgbGFzdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5hbWUgPSBmaXJzdCArICcgJyArIGxhc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5wcmVmaXgpIHtcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLnByZWZpeChvcHRpb25zKSArICcgJyArIG5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5zdWZmaXgpIHtcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgJyAnICsgdGhpcy5zdWZmaXgob3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmFtZTtcbiAgICB9O1xuXG4gICAgLy8gUmV0dXJuIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBuYW1lIHByZWZpeGVzIGJhc2VkIG9uIHN1cHBsaWVkIGdlbmRlci5cbiAgICBDaGFuY2UucHJvdG90eXBlLm5hbWVfcHJlZml4ZXMgPSBmdW5jdGlvbiAoZ2VuZGVyKSB7XG4gICAgICAgIGdlbmRlciA9IGdlbmRlciB8fCBcImFsbFwiO1xuICAgICAgICBnZW5kZXIgPSBnZW5kZXIudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICB2YXIgcHJlZml4ZXMgPSBbXG4gICAgICAgICAgICB7IG5hbWU6ICdEb2N0b3InLCBhYmJyZXZpYXRpb246ICdEci4nIH1cbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoZ2VuZGVyID09PSBcIm1hbGVcIiB8fCBnZW5kZXIgPT09IFwiYWxsXCIpIHtcbiAgICAgICAgICAgIHByZWZpeGVzLnB1c2goeyBuYW1lOiAnTWlzdGVyJywgYWJicmV2aWF0aW9uOiAnTXIuJyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChnZW5kZXIgPT09IFwiZmVtYWxlXCIgfHwgZ2VuZGVyID09PSBcImFsbFwiKSB7XG4gICAgICAgICAgICBwcmVmaXhlcy5wdXNoKHsgbmFtZTogJ01pc3MnLCBhYmJyZXZpYXRpb246ICdNaXNzJyB9KTtcbiAgICAgICAgICAgIHByZWZpeGVzLnB1c2goeyBuYW1lOiAnTWlzc2VzJywgYWJicmV2aWF0aW9uOiAnTXJzLicgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJlZml4ZXM7XG4gICAgfTtcblxuICAgIC8vIEFsaWFzIGZvciBuYW1lX3ByZWZpeFxuICAgIENoYW5jZS5wcm90b3R5cGUucHJlZml4ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZV9wcmVmaXgob3B0aW9ucyk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZV9wcmVmaXggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBnZW5kZXI6IFwiYWxsXCIgfSk7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmZ1bGwgP1xuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMubmFtZV9wcmVmaXhlcyhvcHRpb25zLmdlbmRlcikpLm5hbWUgOlxuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMubmFtZV9wcmVmaXhlcyhvcHRpb25zLmdlbmRlcikpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zc24gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge3NzbkZvdXI6IGZhbHNlLCBkYXNoZXM6IHRydWV9KTtcbiAgICAgICAgdmFyIHNzbl9wb29sID0gXCIxMjM0NTY3ODkwXCIsXG4gICAgICAgICAgICBzc24sXG4gICAgICAgICAgICBkYXNoID0gb3B0aW9ucy5kYXNoZXMgPyAnLScgOiAnJztcblxuICAgICAgICBpZighb3B0aW9ucy5zc25Gb3VyKSB7XG4gICAgICAgICAgICBzc24gPSB0aGlzLnN0cmluZyh7cG9vbDogc3NuX3Bvb2wsIGxlbmd0aDogM30pICsgZGFzaCArXG4gICAgICAgICAgICB0aGlzLnN0cmluZyh7cG9vbDogc3NuX3Bvb2wsIGxlbmd0aDogMn0pICsgZGFzaCArXG4gICAgICAgICAgICB0aGlzLnN0cmluZyh7cG9vbDogc3NuX3Bvb2wsIGxlbmd0aDogNH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3NuID0gdGhpcy5zdHJpbmcoe3Bvb2w6IHNzbl9wb29sLCBsZW5ndGg6IDR9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3NuO1xuICAgIH07XG5cbiAgICAvLyBSZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG5hbWUgc3VmZml4ZXNcbiAgICBDaGFuY2UucHJvdG90eXBlLm5hbWVfc3VmZml4ZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzdWZmaXhlcyA9IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3RvciBvZiBPc3Rlb3BhdGhpYyBNZWRpY2luZScsIGFiYnJldmlhdGlvbjogJ0QuTy4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdEb2N0b3Igb2YgUGhpbG9zb3BoeScsIGFiYnJldmlhdGlvbjogJ1BoLkQuJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnRXNxdWlyZScsIGFiYnJldmlhdGlvbjogJ0VzcS4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdKdW5pb3InLCBhYmJyZXZpYXRpb246ICdKci4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdKdXJpcyBEb2N0b3InLCBhYmJyZXZpYXRpb246ICdKLkQuJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnTWFzdGVyIG9mIEFydHMnLCBhYmJyZXZpYXRpb246ICdNLkEuJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnTWFzdGVyIG9mIEJ1c2luZXNzIEFkbWluaXN0cmF0aW9uJywgYWJicmV2aWF0aW9uOiAnTS5CLkEuJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnTWFzdGVyIG9mIFNjaWVuY2UnLCBhYmJyZXZpYXRpb246ICdNLlMuJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnTWVkaWNhbCBEb2N0b3InLCBhYmJyZXZpYXRpb246ICdNLkQuJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnU2VuaW9yJywgYWJicmV2aWF0aW9uOiAnU3IuJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnVGhlIFRoaXJkJywgYWJicmV2aWF0aW9uOiAnSUlJJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnVGhlIEZvdXJ0aCcsIGFiYnJldmlhdGlvbjogJ0lWJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnQmFjaGVsb3Igb2YgRW5naW5lZXJpbmcnLCBhYmJyZXZpYXRpb246ICdCLkUnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdCYWNoZWxvciBvZiBUZWNobm9sb2d5JywgYWJicmV2aWF0aW9uOiAnQi5URUNIJyB9XG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiBzdWZmaXhlcztcbiAgICB9O1xuXG4gICAgLy8gQWxpYXMgZm9yIG5hbWVfc3VmZml4XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdWZmaXggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lX3N1ZmZpeChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5uYW1lX3N1ZmZpeCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZnVsbCA/XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3N1ZmZpeGVzKCkpLm5hbWUgOlxuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMubmFtZV9zdWZmaXhlcygpKS5hYmJyZXZpYXRpb247XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBQZXJzb24gLS1cblxuICAgIC8vIC0tIE1vYmlsZSAtLVxuICAgIC8vIEFuZHJvaWQgR0NNIFJlZ2lzdHJhdGlvbiBJRFxuICAgIENoYW5jZS5wcm90b3R5cGUuYW5kcm9pZF9pZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFwiQVBBOTFcIiArIHRoaXMuc3RyaW5nKHsgcG9vbDogXCIwMTIzNDU2Nzg5YWJjZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV9cIiwgbGVuZ3RoOiAxNzggfSk7XG4gICAgfTtcblxuICAgIC8vIEFwcGxlIFB1c2ggVG9rZW5cbiAgICBDaGFuY2UucHJvdG90eXBlLmFwcGxlX3Rva2VuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmcoeyBwb29sOiBcImFiY2RlZjEyMzQ1Njc4OTBcIiwgbGVuZ3RoOiA2NCB9KTtcbiAgICB9O1xuXG4gICAgLy8gV2luZG93cyBQaG9uZSA4IEFOSUQyXG4gICAgQ2hhbmNlLnByb3RvdHlwZS53cDhfYW5pZDIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBiYXNlNjQoIHRoaXMuaGFzaCggeyBsZW5ndGggOiAzMiB9ICkgKTtcbiAgICB9O1xuXG4gICAgLy8gV2luZG93cyBQaG9uZSA3IEFOSURcbiAgICBDaGFuY2UucHJvdG90eXBlLndwN19hbmlkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJ0E9JyArIHRoaXMuZ3VpZCgpLnJlcGxhY2UoLy0vZywgJycpLnRvVXBwZXJDYXNlKCkgKyAnJkU9JyArIHRoaXMuaGFzaCh7IGxlbmd0aDozIH0pICsgJyZXPScgKyB0aGlzLmludGVnZXIoeyBtaW46MCwgbWF4OjkgfSk7XG4gICAgfTtcblxuICAgIC8vIEJsYWNrQmVycnkgRGV2aWNlIFBJTlxuICAgIENoYW5jZS5wcm90b3R5cGUuYmJfcGluID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNoKHsgbGVuZ3RoOiA4IH0pO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgTW9iaWxlIC0tXG5cbiAgICAvLyAtLSBXZWIgLS1cbiAgICBDaGFuY2UucHJvdG90eXBlLmF2YXRhciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciB1cmwgPSBudWxsO1xuICAgICAgICB2YXIgVVJMX0JBU0UgPSAnLy93d3cuZ3JhdmF0YXIuY29tL2F2YXRhci8nO1xuICAgICAgICB2YXIgUFJPVE9DT0xTID0ge1xuICAgICAgICAgICAgaHR0cDogJ2h0dHAnLFxuICAgICAgICAgICAgaHR0cHM6ICdodHRwcydcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIEZJTEVfVFlQRVMgPSB7XG4gICAgICAgICAgICBibXA6ICdibXAnLFxuICAgICAgICAgICAgZ2lmOiAnZ2lmJyxcbiAgICAgICAgICAgIGpwZzogJ2pwZycsXG4gICAgICAgICAgICBwbmc6ICdwbmcnXG4gICAgICAgIH07XG4gICAgICAgIHZhciBGQUxMQkFDS1MgPSB7XG4gICAgICAgICAgICAnNDA0JzogJzQwNCcsIC8vIFJldHVybiA0MDQgaWYgbm90IGZvdW5kXG4gICAgICAgICAgICBtbTogJ21tJywgLy8gTXlzdGVyeSBtYW5cbiAgICAgICAgICAgIGlkZW50aWNvbjogJ2lkZW50aWNvbicsIC8vIEdlb21ldHJpYyBwYXR0ZXJuIGJhc2VkIG9uIGhhc2hcbiAgICAgICAgICAgIG1vbnN0ZXJpZDogJ21vbnN0ZXJpZCcsIC8vIEEgZ2VuZXJhdGVkIG1vbnN0ZXIgaWNvblxuICAgICAgICAgICAgd2F2YXRhcjogJ3dhdmF0YXInLCAvLyBBIGdlbmVyYXRlZCBmYWNlXG4gICAgICAgICAgICByZXRybzogJ3JldHJvJywgLy8gOC1iaXQgaWNvblxuICAgICAgICAgICAgYmxhbms6ICdibGFuaycgLy8gQSB0cmFuc3BhcmVudCBwbmdcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIFJBVElOR1MgPSB7XG4gICAgICAgICAgICBnOiAnZycsXG4gICAgICAgICAgICBwZzogJ3BnJyxcbiAgICAgICAgICAgIHI6ICdyJyxcbiAgICAgICAgICAgIHg6ICd4J1xuICAgICAgICB9O1xuICAgICAgICB2YXIgb3B0cyA9IHtcbiAgICAgICAgICAgIHByb3RvY29sOiBudWxsLFxuICAgICAgICAgICAgZW1haWw6IG51bGwsXG4gICAgICAgICAgICBmaWxlRXh0ZW5zaW9uOiBudWxsLFxuICAgICAgICAgICAgc2l6ZTogbnVsbCxcbiAgICAgICAgICAgIGZhbGxiYWNrOiBudWxsLFxuICAgICAgICAgICAgcmF0aW5nOiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICAvLyBTZXQgdG8gYSByYW5kb20gZW1haWxcbiAgICAgICAgICAgIG9wdHMuZW1haWwgPSB0aGlzLmVtYWlsKCk7XG4gICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBvcHRzLmVtYWlsID0gb3B0aW9ucztcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbnMuY29uc3RydWN0b3IgPT09ICdBcnJheScpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0cyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIG9wdHMpO1xuXG4gICAgICAgIGlmICghb3B0cy5lbWFpbCkge1xuICAgICAgICAgICAgLy8gU2V0IHRvIGEgcmFuZG9tIGVtYWlsXG4gICAgICAgICAgICBvcHRzLmVtYWlsID0gdGhpcy5lbWFpbCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2FmZSBjaGVja2luZyBmb3IgcGFyYW1zXG4gICAgICAgIG9wdHMucHJvdG9jb2wgPSBQUk9UT0NPTFNbb3B0cy5wcm90b2NvbF0gPyBvcHRzLnByb3RvY29sICsgJzonIDogJyc7XG4gICAgICAgIG9wdHMuc2l6ZSA9IHBhcnNlSW50KG9wdHMuc2l6ZSwgMCkgPyBvcHRzLnNpemUgOiAnJztcbiAgICAgICAgb3B0cy5yYXRpbmcgPSBSQVRJTkdTW29wdHMucmF0aW5nXSA/IG9wdHMucmF0aW5nIDogJyc7XG4gICAgICAgIG9wdHMuZmFsbGJhY2sgPSBGQUxMQkFDS1Nbb3B0cy5mYWxsYmFja10gPyBvcHRzLmZhbGxiYWNrIDogJyc7XG4gICAgICAgIG9wdHMuZmlsZUV4dGVuc2lvbiA9IEZJTEVfVFlQRVNbb3B0cy5maWxlRXh0ZW5zaW9uXSA/IG9wdHMuZmlsZUV4dGVuc2lvbiA6ICcnO1xuXG4gICAgICAgIHVybCA9XG4gICAgICAgICAgICBvcHRzLnByb3RvY29sICtcbiAgICAgICAgICAgIFVSTF9CQVNFICtcbiAgICAgICAgICAgIHRoaXMuYmltZDUubWQ1KG9wdHMuZW1haWwpICtcbiAgICAgICAgICAgIChvcHRzLmZpbGVFeHRlbnNpb24gPyAnLicgKyBvcHRzLmZpbGVFeHRlbnNpb24gOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMuc2l6ZSB8fCBvcHRzLnJhdGluZyB8fCBvcHRzLmZhbGxiYWNrID8gJz8nIDogJycpICtcbiAgICAgICAgICAgIChvcHRzLnNpemUgPyAnJnM9JyArIG9wdHMuc2l6ZS50b1N0cmluZygpIDogJycpICtcbiAgICAgICAgICAgIChvcHRzLnJhdGluZyA/ICcmcj0nICsgb3B0cy5yYXRpbmcgOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMuZmFsbGJhY2sgPyAnJmQ9JyArIG9wdHMuZmFsbGJhY2sgOiAnJylcbiAgICAgICAgICAgIDtcblxuICAgICAgICByZXR1cm4gdXJsO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNvbG9yID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgZnVuY3Rpb24gZ3JheSh2YWx1ZSwgZGVsaW1pdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gW3ZhbHVlLCB2YWx1ZSwgdmFsdWVdLmpvaW4oZGVsaW1pdGVyIHx8ICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMucGljayhbJ2hleCcsICdzaG9ydGhleCcsICdyZ2InLCAncmdiYScsICcweCddKSxcbiAgICAgICAgICAgIGdyYXlzY2FsZTogZmFsc2UsXG4gICAgICAgICAgICBjYXNpbmc6ICdsb3dlcidcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIGlzR3JheXNjYWxlID0gb3B0aW9ucy5ncmF5c2NhbGU7XG4gICAgICAgIHZhciBjb2xvclZhbHVlO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmZvcm1hdCA9PT0gJ2hleCcpIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUgPSAnIycgKyAoaXNHcmF5c2NhbGUgPyBncmF5KHRoaXMuaGFzaCh7bGVuZ3RoOiAyfSkpIDogdGhpcy5oYXNoKHtsZW5ndGg6IDZ9KSk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmZvcm1hdCA9PT0gJ3Nob3J0aGV4Jykge1xuICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICcjJyArIChpc0dyYXlzY2FsZSA/IGdyYXkodGhpcy5oYXNoKHtsZW5ndGg6IDF9KSkgOiB0aGlzLmhhc2goe2xlbmd0aDogM30pKTtcblxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAncmdiJykge1xuICAgICAgICAgICAgaWYgKGlzR3JheXNjYWxlKSB7XG4gICAgICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICdyZ2IoJyArIGdyYXkodGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pLCAnLCcpICsgJyknO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvclZhbHVlID0gJ3JnYignICsgdGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pICsgJywnICsgdGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pICsgJywnICsgdGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pICsgJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAncmdiYScpIHtcbiAgICAgICAgICAgIGlmIChpc0dyYXlzY2FsZSkge1xuICAgICAgICAgICAgICAgIGNvbG9yVmFsdWUgPSAncmdiYSgnICsgZ3JheSh0aGlzLm5hdHVyYWwoe21heDogMjU1fSksICcsJykgKyAnLCcgKyB0aGlzLmZsb2F0aW5nKHttaW46MCwgbWF4OjF9KSArICcpJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICdyZ2JhKCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLmZsb2F0aW5nKHttaW46MCwgbWF4OjF9KSArICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmZvcm1hdCA9PT0gJzB4Jykge1xuICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICcweCcgKyAoaXNHcmF5c2NhbGUgPyBncmF5KHRoaXMuaGFzaCh7bGVuZ3RoOiAyfSkpIDogdGhpcy5oYXNoKHtsZW5ndGg6IDZ9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCBmb3JtYXQgcHJvdmlkZWQuIFBsZWFzZSBwcm92aWRlIG9uZSBvZiBcImhleFwiLCBcInNob3J0aGV4XCIsIFwicmdiXCIsIFwicmdiYVwiLCBvciBcIjB4XCIuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5jYXNpbmcgPT09ICd1cHBlcicgKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlID0gY29sb3JWYWx1ZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbG9yVmFsdWU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZG9tYWluID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhpcy53b3JkKCkgKyAnLicgKyAob3B0aW9ucy50bGQgfHwgdGhpcy50bGQoKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZW1haWwgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLndvcmQoe2xlbmd0aDogb3B0aW9ucy5sZW5ndGh9KSArICdAJyArIChvcHRpb25zLmRvbWFpbiB8fCB0aGlzLmRvbWFpbigpKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5mYmlkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoJzEwMDAwJyArIHRoaXMubmF0dXJhbCh7bWF4OiAxMDAwMDAwMDAwMDB9KSwgMTApO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmdvb2dsZV9hbmFseXRpY3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBhY2NvdW50ID0gdGhpcy5wYWQodGhpcy5uYXR1cmFsKHttYXg6IDk5OTk5OX0pLCA2KTtcbiAgICAgICAgdmFyIHByb3BlcnR5ID0gdGhpcy5wYWQodGhpcy5uYXR1cmFsKHttYXg6IDk5fSksIDIpO1xuXG4gICAgICAgIHJldHVybiAnVUEtJyArIGFjY291bnQgKyAnLScgKyBwcm9wZXJ0eTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5oYXNodGFnID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJyMnICsgdGhpcy53b3JkKCk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuaXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIFRvZG86IFRoaXMgY291bGQgcmV0dXJuIHNvbWUgcmVzZXJ2ZWQgSVBzLiBTZWUgaHR0cDovL3ZxLmlvLzEzN2RnWXlcbiAgICAgICAgLy8gdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgdXBkYXRlZCB0byBhY2NvdW50IGZvciB0aGF0IHJhcmUgYXMgaXQgbWF5IGJlXG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLicgK1xuICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pICsgJy4nICtcbiAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcuJyArXG4gICAgICAgICAgICAgICB0aGlzLm5hdHVyYWwoe21heDogMjU1fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuaXB2NiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGlwX2FkZHIgPSB0aGlzLm4odGhpcy5oYXNoLCA4LCB7bGVuZ3RoOiA0fSk7XG5cbiAgICAgICAgcmV0dXJuIGlwX2FkZHIuam9pbihcIjpcIik7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUua2xvdXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiA5OX0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnRsZHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBbJ2NvbScsICdvcmcnLCAnZWR1JywgJ2dvdicsICdjby51aycsICduZXQnLCAnaW8nXTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS50bGQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy50bGRzKCkpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnR3aXR0ZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnQCcgKyB0aGlzLndvcmQoKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS51cmwgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBwcm90b2NvbDogXCJodHRwXCIsIGRvbWFpbjogdGhpcy5kb21haW4ob3B0aW9ucyksIGRvbWFpbl9wcmVmaXg6IFwiXCIsIHBhdGg6IHRoaXMud29yZCgpLCBleHRlbnNpb25zOiBbXX0pO1xuXG4gICAgICAgIHZhciBleHRlbnNpb24gPSBvcHRpb25zLmV4dGVuc2lvbnMubGVuZ3RoID4gMCA/IFwiLlwiICsgdGhpcy5waWNrKG9wdGlvbnMuZXh0ZW5zaW9ucykgOiBcIlwiO1xuICAgICAgICB2YXIgZG9tYWluID0gb3B0aW9ucy5kb21haW5fcHJlZml4ID8gb3B0aW9ucy5kb21haW5fcHJlZml4ICsgXCIuXCIgKyBvcHRpb25zLmRvbWFpbiA6IG9wdGlvbnMuZG9tYWluO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnByb3RvY29sICsgXCI6Ly9cIiArIGRvbWFpbiArIFwiL1wiICsgb3B0aW9ucy5wYXRoICsgZXh0ZW5zaW9uO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgV2ViIC0tXG5cbiAgICAvLyAtLSBMb2NhdGlvbiAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hZGRyZXNzID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IDUsIG1heDogMjAwMH0pICsgJyAnICsgdGhpcy5zdHJlZXQob3B0aW9ucyk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuYWx0aXR1ZGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2ZpeGVkOiA1LCBtaW46IDAsIG1heDogODg0OH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5mbG9hdGluZyh7XG4gICAgICAgICAgICBtaW46IG9wdGlvbnMubWluLFxuICAgICAgICAgICAgbWF4OiBvcHRpb25zLm1heCxcbiAgICAgICAgICAgIGZpeGVkOiBvcHRpb25zLmZpeGVkXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmFyZWFjb2RlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtwYXJlbnMgOiB0cnVlfSk7XG4gICAgICAgIC8vIERvbid0IHdhbnQgYXJlYSBjb2RlcyB0byBzdGFydCB3aXRoIDEsIG9yIGhhdmUgYSA5IGFzIHRoZSBzZWNvbmQgZGlnaXRcbiAgICAgICAgdmFyIGFyZWFjb2RlID0gdGhpcy5uYXR1cmFsKHttaW46IDIsIG1heDogOX0pLnRvU3RyaW5nKCkgK1xuICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWluOiAwLCBtYXg6IDh9KS50b1N0cmluZygpICtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdHVyYWwoe21pbjogMCwgbWF4OiA5fSkudG9TdHJpbmcoKTtcblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5wYXJlbnMgPyAnKCcgKyBhcmVhY29kZSArICcpJyA6IGFyZWFjb2RlO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNpdHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcGl0YWxpemUodGhpcy53b3JkKHtzeWxsYWJsZXM6IDN9KSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY29vcmRpbmF0ZXMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXRpdHVkZShvcHRpb25zKSArICcsICcgKyB0aGlzLmxvbmdpdHVkZShvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jb3VudHJpZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcImNvdW50cmllc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jb3VudHJ5ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgY291bnRyeSA9IHRoaXMucGljayh0aGlzLmNvdW50cmllcygpKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZnVsbCA/IGNvdW50cnkubmFtZSA6IGNvdW50cnkuYWJicmV2aWF0aW9uO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmRlcHRoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtmaXhlZDogNSwgbWluOiAtMjU1MCwgbWF4OiAwfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb2F0aW5nKHtcbiAgICAgICAgICAgIG1pbjogb3B0aW9ucy5taW4sXG4gICAgICAgICAgICBtYXg6IG9wdGlvbnMubWF4LFxuICAgICAgICAgICAgZml4ZWQ6IG9wdGlvbnMuZml4ZWRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZ2VvaGFzaCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IGxlbmd0aDogNyB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nKHsgbGVuZ3RoOiBvcHRpb25zLmxlbmd0aCwgcG9vbDogJzAxMjM0NTY3ODliY2RlZmdoamttbnBxcnN0dXZ3eHl6JyB9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5nZW9qc29uID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF0aXR1ZGUob3B0aW9ucykgKyAnLCAnICsgdGhpcy5sb25naXR1ZGUob3B0aW9ucykgKyAnLCAnICsgdGhpcy5hbHRpdHVkZShvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5sYXRpdHVkZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQ6IDUsIG1pbjogLTkwLCBtYXg6IDkwfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb2F0aW5nKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4LCBmaXhlZDogb3B0aW9ucy5maXhlZH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmxvbmdpdHVkZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQ6IDUsIG1pbjogLTE4MCwgbWF4OiAxODB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXRpbmcoe21pbjogb3B0aW9ucy5taW4sIG1heDogb3B0aW9ucy5tYXgsIGZpeGVkOiBvcHRpb25zLmZpeGVkfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucGhvbmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgICAgICBudW1QaWNrLFxuICAgICAgICAgICAgdWtOdW0gPSBmdW5jdGlvbiAocGFydHMpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgIC8vZmlsbHMgdGhlIHNlY3Rpb24gcGFydCBvZiB0aGUgcGhvbmUgbnVtYmVyIHdpdGggcmFuZG9tIG51bWJlcnMuXG4gICAgICAgICAgICAgICAgcGFydHMuc2VjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb24ucHVzaChzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiBufSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJ0cy5hcmVhICsgc2VjdGlvbi5qb2luKCcgJyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge1xuICAgICAgICAgICAgZm9ybWF0dGVkOiB0cnVlLFxuICAgICAgICAgICAgY291bnRyeTogJ3VzJyxcbiAgICAgICAgICAgIG1vYmlsZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghb3B0aW9ucy5mb3JtYXR0ZWQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMucGFyZW5zID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBob25lO1xuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuY291bnRyeSkge1xuICAgICAgICAgICAgY2FzZSAnZnInOlxuICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtUGljayA9IHRoaXMucGljayhbXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCB6b25lIGFuZCBkw6lwYXJ0ZW1lbnQgY29kZXMuXG4gICAgICAgICAgICAgICAgICAgICAgICAnMDEnICsgdGhpcy5waWNrKFsnMzAnLCAnMzQnLCAnMzknLCAnNDAnLCAnNDEnLCAnNDInLCAnNDMnLCAnNDQnLCAnNDUnLCAnNDYnLCAnNDcnLCAnNDgnLCAnNDknLCAnNTMnLCAnNTUnLCAnNTYnLCAnNTgnLCAnNjAnLCAnNjQnLCAnNjknLCAnNzAnLCAnNzInLCAnNzMnLCAnNzQnLCAnNzUnLCAnNzYnLCAnNzcnLCAnNzgnLCAnNzknLCAnODAnLCAnODEnLCAnODInLCAnODMnXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA2fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAnMDInICsgdGhpcy5waWNrKFsnMTQnLCAnMTgnLCAnMjInLCAnMjMnLCAnMjgnLCAnMjknLCAnMzAnLCAnMzEnLCAnMzInLCAnMzMnLCAnMzQnLCAnMzUnLCAnMzYnLCAnMzcnLCAnMzgnLCAnNDAnLCAnNDEnLCAnNDMnLCAnNDQnLCAnNDUnLCAnNDYnLCAnNDcnLCAnNDgnLCAnNDknLCAnNTAnLCAnNTEnLCAnNTInLCAnNTMnLCAnNTQnLCAnNTYnLCAnNTcnLCAnNjEnLCAnNjInLCAnNjknLCAnNzInLCAnNzYnLCAnNzcnLCAnNzgnLCAnODUnLCAnOTAnLCAnOTYnLCAnOTcnLCAnOTgnLCAnOTknXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA2fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAnMDMnICsgdGhpcy5waWNrKFsnMTAnLCAnMjAnLCAnMjEnLCAnMjInLCAnMjMnLCAnMjQnLCAnMjUnLCAnMjYnLCAnMjcnLCAnMjgnLCAnMjknLCAnMzknLCAnNDQnLCAnNDUnLCAnNTEnLCAnNTInLCAnNTQnLCAnNTUnLCAnNTcnLCAnNTgnLCAnNTknLCAnNjAnLCAnNjEnLCAnNjInLCAnNjMnLCAnNjQnLCAnNjUnLCAnNjYnLCAnNjcnLCAnNjgnLCAnNjknLCAnNzAnLCAnNzEnLCAnNzInLCAnNzMnLCAnODAnLCAnODEnLCAnODInLCAnODMnLCAnODQnLCAnODUnLCAnODYnLCAnODcnLCAnODgnLCAnODknLCAnOTAnXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA2fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAnMDQnICsgdGhpcy5waWNrKFsnMTEnLCAnMTMnLCAnMTUnLCAnMjAnLCAnMjInLCAnMjYnLCAnMjcnLCAnMzAnLCAnMzInLCAnMzQnLCAnMzcnLCAnNDInLCAnNDMnLCAnNDQnLCAnNTAnLCAnNTYnLCAnNTcnLCAnNjMnLCAnNjYnLCAnNjcnLCAnNjgnLCAnNjknLCAnNzAnLCAnNzEnLCAnNzInLCAnNzMnLCAnNzQnLCAnNzUnLCAnNzYnLCAnNzcnLCAnNzgnLCAnNzknLCAnODAnLCAnODEnLCAnODInLCAnODMnLCAnODQnLCAnODUnLCAnODYnLCAnODgnLCAnODknLCAnOTAnLCAnOTEnLCAnOTInLCAnOTMnLCAnOTQnLCAnOTUnLCAnOTcnLCAnOTgnXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA2fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAnMDUnICsgdGhpcy5waWNrKFsnMDgnLCAnMTYnLCAnMTcnLCAnMTknLCAnMjQnLCAnMzEnLCAnMzInLCAnMzMnLCAnMzQnLCAnMzUnLCAnNDAnLCAnNDUnLCAnNDYnLCAnNDcnLCAnNDknLCAnNTMnLCAnNTUnLCAnNTYnLCAnNTcnLCAnNTgnLCAnNTknLCAnNjEnLCAnNjInLCAnNjMnLCAnNjQnLCAnNjUnLCAnNjcnLCAnNzknLCAnODEnLCAnODInLCAnODYnLCAnODcnLCAnOTAnLCAnOTQnXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA2fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAnMDknICsgc2VsZi5zdHJpbmcoeyBwb29sOiAnMDEyMzQ1Njc4OScsIGxlbmd0aDogOH0pLFxuICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgcGhvbmUgPSBvcHRpb25zLmZvcm1hdHRlZCA/IG51bVBpY2subWF0Y2goLy4uL2cpLmpvaW4oJyAnKSA6IG51bVBpY2s7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtUGljayA9IHRoaXMucGljayhbJzA2JywgJzA3J10pICsgc2VsZi5zdHJpbmcoeyBwb29sOiAnMDEyMzQ1Njc4OScsIGxlbmd0aDogOH0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gbnVtUGljay5tYXRjaCgvLi4vZykuam9pbignICcpIDogbnVtUGljaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1ayc6XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLm1vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICBudW1QaWNrID0gdGhpcy5waWNrKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFsaWQgYXJlYSBjb2RlcyBvZiBtYWpvciBjaXRpZXMvY291bnRpZXMgZm9sbG93ZWQgYnkgcmFuZG9tIG51bWJlcnMgaW4gcmVxdWlyZWQgZm9ybWF0LlxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDEnICsgdGhpcy5jaGFyYWN0ZXIoeyBwb29sOiAnMjM0NTY5JyB9KSArICcxICcsIHNlY3Rpb25zOiBbMyw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDIwICcgKyB0aGlzLmNoYXJhY3Rlcih7IHBvb2w6ICczNzgnIH0pLCBzZWN0aW9uczogWzMsNF0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAyMyAnICsgdGhpcy5jaGFyYWN0ZXIoeyBwb29sOiAnODknIH0pLCBzZWN0aW9uczogWzMsNF0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAyNCA3Jywgc2VjdGlvbnM6IFszLDRdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMjggJyArIHRoaXMucGljayhbJzI1JywnMjgnLCczNycsJzcxJywnODInLCc5MCcsJzkyJywnOTUnXSksIHNlY3Rpb25zOiBbMiw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDEyJyArIHRoaXMucGljayhbJzA0JywnMDgnLCc1NCcsJzc2JywnOTcnLCc5OCddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDEzJyArIHRoaXMucGljayhbJzYzJywnNjQnLCc4NCcsJzg2J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTQnICsgdGhpcy5waWNrKFsnMDQnLCcyMCcsJzYwJywnNjEnLCc4MCcsJzg4J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTUnICsgdGhpcy5waWNrKFsnMjQnLCcyNycsJzYyJywnNjYnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNicgKyB0aGlzLnBpY2soWycwNicsJzI5JywnMzUnLCc0NycsJzU5JywnOTUnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNycgKyB0aGlzLnBpY2soWycyNicsJzQ0JywnNTAnLCc2OCddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDE4JyArIHRoaXMucGljayhbJzI3JywnMzcnLCc4NCcsJzk3J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTknICsgdGhpcy5waWNrKFsnMDAnLCcwNScsJzM1JywnNDYnLCc0OScsJzYzJywnOTUnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfVxuICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgcGhvbmUgPSBvcHRpb25zLmZvcm1hdHRlZCA/IHVrTnVtKG51bVBpY2spIDogdWtOdW0obnVtUGljaykucmVwbGFjZSgnICcsICcnLCAnZycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG51bVBpY2sgPSB0aGlzLnBpY2soW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDcnICsgdGhpcy5waWNrKFsnNCcsJzUnLCc3JywnOCcsJzknXSksIHNlY3Rpb25zOiBbMiw2XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDc2MjQgJywgc2VjdGlvbnM6IFs2XSB9XG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gdWtOdW0obnVtUGljaykgOiB1a051bShudW1QaWNrKS5yZXBsYWNlKCcgJywgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VzJzpcbiAgICAgICAgICAgICAgICB2YXIgYXJlYWNvZGUgPSB0aGlzLmFyZWFjb2RlKG9wdGlvbnMpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgdmFyIGV4Y2hhbmdlID0gdGhpcy5uYXR1cmFsKHsgbWluOiAyLCBtYXg6IDkgfSkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7IG1pbjogMCwgbWF4OiA5IH0pLnRvU3RyaW5nKCkgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdHVyYWwoeyBtaW46IDAsIG1heDogOSB9KS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIHZhciBzdWJzY3JpYmVyID0gdGhpcy5uYXR1cmFsKHsgbWluOiAxMDAwLCBtYXg6IDk5OTkgfSkudG9TdHJpbmcoKTsgLy8gdGhpcyBjb3VsZCBiZSByYW5kb20gWzAtOV17NH1cbiAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gYXJlYWNvZGUgKyAnICcgKyBleGNoYW5nZSArICctJyArIHN1YnNjcmliZXIgOiBhcmVhY29kZSArIGV4Y2hhbmdlICsgc3Vic2NyaWJlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGhvbmU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucG9zdGFsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBQb3N0YWwgRGlzdHJpY3RcbiAgICAgICAgdmFyIHBkID0gdGhpcy5jaGFyYWN0ZXIoe3Bvb2w6IFwiWFZUU1JQTktMTUhKR0VDQkFcIn0pO1xuICAgICAgICAvLyBGb3J3YXJkIFNvcnRhdGlvbiBBcmVhIChGU0EpXG4gICAgICAgIHZhciBmc2EgPSBwZCArIHRoaXMubmF0dXJhbCh7bWF4OiA5fSkgKyB0aGlzLmNoYXJhY3Rlcih7YWxwaGE6IHRydWUsIGNhc2luZzogXCJ1cHBlclwifSk7XG4gICAgICAgIC8vIExvY2FsIERlbGl2ZXJ5IFVudXQgKExEVSlcbiAgICAgICAgdmFyIGxkdSA9IHRoaXMubmF0dXJhbCh7bWF4OiA5fSkgKyB0aGlzLmNoYXJhY3Rlcih7YWxwaGE6IHRydWUsIGNhc2luZzogXCJ1cHBlclwifSkgKyB0aGlzLm5hdHVyYWwoe21heDogOX0pO1xuXG4gICAgICAgIHJldHVybiBmc2EgKyBcIiBcIiArIGxkdTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wcm92aW5jZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcInByb3ZpbmNlc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wcm92aW5jZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiAob3B0aW9ucyAmJiBvcHRpb25zLmZ1bGwpID9cbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLnByb3ZpbmNlcygpKS5uYW1lIDpcbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLnByb3ZpbmNlcygpKS5hYmJyZXZpYXRpb247XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RhdGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gKG9wdGlvbnMgJiYgb3B0aW9ucy5mdWxsKSA/XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5zdGF0ZXMob3B0aW9ucykpLm5hbWUgOlxuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMuc3RhdGVzKG9wdGlvbnMpKS5hYmJyZXZpYXRpb247XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RhdGVzID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBzdGF0ZXMsXG4gICAgICAgICAgICB1c19zdGF0ZXNfYW5kX2RjID0gdGhpcy5nZXQoXCJ1c19zdGF0ZXNfYW5kX2RjXCIpLFxuICAgICAgICAgICAgdGVycml0b3JpZXMgPSB0aGlzLmdldChcInRlcnJpdG9yaWVzXCIpLFxuICAgICAgICAgICAgYXJtZWRfZm9yY2VzID0gdGhpcy5nZXQoXCJhcm1lZF9mb3JjZXNcIik7XG5cbiAgICAgICAgc3RhdGVzID0gdXNfc3RhdGVzX2FuZF9kYztcblxuICAgICAgICBpZiAob3B0aW9ucy50ZXJyaXRvcmllcykge1xuICAgICAgICAgICAgc3RhdGVzID0gc3RhdGVzLmNvbmNhdCh0ZXJyaXRvcmllcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuYXJtZWRfZm9yY2VzKSB7XG4gICAgICAgICAgICBzdGF0ZXMgPSBzdGF0ZXMuY29uY2F0KGFybWVkX2ZvcmNlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RhdGVzO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnN0cmVldCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB2YXIgc3RyZWV0ID0gdGhpcy53b3JkKHtzeWxsYWJsZXM6IDJ9KTtcbiAgICAgICAgc3RyZWV0ID0gdGhpcy5jYXBpdGFsaXplKHN0cmVldCk7XG4gICAgICAgIHN0cmVldCArPSAnICc7XG4gICAgICAgIHN0cmVldCArPSBvcHRpb25zLnNob3J0X3N1ZmZpeCA/XG4gICAgICAgICAgICB0aGlzLnN0cmVldF9zdWZmaXgoKS5hYmJyZXZpYXRpb24gOlxuICAgICAgICAgICAgdGhpcy5zdHJlZXRfc3VmZml4KCkubmFtZTtcbiAgICAgICAgcmV0dXJuIHN0cmVldDtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdHJlZXRfc3VmZml4ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKHRoaXMuc3RyZWV0X3N1ZmZpeGVzKCkpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnN0cmVldF9zdWZmaXhlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBtb3N0IGNvbW1vbiBzdWZmaXhlcy5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwic3RyZWV0X3N1ZmZpeGVzXCIpO1xuICAgIH07XG5cbiAgICAvLyBOb3RlOiBvbmx5IHJldHVybmluZyBVUyB6aXAgY29kZXMsIGludGVybmF0aW9uYWxpemF0aW9uIHdpbGwgYmUgYSB3aG9sZVxuICAgIC8vIG90aGVyIGJlYXN0IHRvIHRhY2tsZSBhdCBzb21lIHBvaW50LlxuICAgIENoYW5jZS5wcm90b3R5cGUuemlwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHppcCA9IHRoaXMubih0aGlzLm5hdHVyYWwsIDUsIHttYXg6IDl9KTtcblxuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnBsdXNmb3VyID09PSB0cnVlKSB7XG4gICAgICAgICAgICB6aXAucHVzaCgnLScpO1xuICAgICAgICAgICAgemlwID0gemlwLmNvbmNhdCh0aGlzLm4odGhpcy5uYXR1cmFsLCA0LCB7bWF4OiA5fSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHppcC5qb2luKFwiXCIpO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgTG9jYXRpb24gLS1cblxuICAgIC8vIC0tIFRpbWVcblxuICAgIENoYW5jZS5wcm90b3R5cGUuYW1wbSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9vbCgpID8gJ2FtJyA6ICdwbSc7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZGF0ZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBkYXRlX3N0cmluZywgZGF0ZTtcblxuICAgICAgICAvLyBJZiBpbnRlcnZhbCBpcyBzcGVjaWZpZWQgd2UgaWdub3JlIHByZXNldFxuICAgICAgICBpZihvcHRpb25zICYmIChvcHRpb25zLm1pbiB8fCBvcHRpb25zLm1heCkpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICAgICAgYW1lcmljYW46IHRydWUsXG4gICAgICAgICAgICAgICAgc3RyaW5nOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgbWluID0gdHlwZW9mIG9wdGlvbnMubWluICE9PSBcInVuZGVmaW5lZFwiID8gb3B0aW9ucy5taW4uZ2V0VGltZSgpIDogMTtcbiAgICAgICAgICAgIC8vIDEwMCwwMDAsMDAwIGRheXMgbWVhc3VyZWQgcmVsYXRpdmUgdG8gbWlkbmlnaHQgYXQgdGhlIGJlZ2lubmluZyBvZiAwMSBKYW51YXJ5LCAxOTcwIFVUQy4gaHR0cDovL2VzNS5naXRodWIuaW8vI3gxNS45LjEuMVxuICAgICAgICAgICAgdmFyIG1heCA9IHR5cGVvZiBvcHRpb25zLm1heCAhPT0gXCJ1bmRlZmluZWRcIiA/IG9wdGlvbnMubWF4LmdldFRpbWUoKSA6IDg2NDAwMDAwMDAwMDAwMDA7XG5cbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh0aGlzLm5hdHVyYWwoe21pbjogbWluLCBtYXg6IG1heH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBtID0gdGhpcy5tb250aCh7cmF3OiB0cnVlfSk7XG4gICAgICAgICAgICB2YXIgZGF5c0luTW9udGggPSBtLmRheXM7XG5cbiAgICAgICAgICAgIGlmKG9wdGlvbnMgJiYgb3B0aW9ucy5tb250aCkge1xuICAgICAgICAgICAgICAgIC8vIE1vZCAxMiB0byBhbGxvdyBtb250aHMgb3V0c2lkZSByYW5nZSBvZiAwLTExIChub3QgZW5jb3VyYWdlZCwgYnV0IGFsc28gbm90IHByZXZlbnRlZCkuXG4gICAgICAgICAgICAgICAgZGF5c0luTW9udGggPSB0aGlzLmdldCgnbW9udGhzJylbKChvcHRpb25zLm1vbnRoICUgMTIpICsgMTIpICUgMTJdLmRheXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICAgICAgeWVhcjogcGFyc2VJbnQodGhpcy55ZWFyKCksIDEwKSxcbiAgICAgICAgICAgICAgICAvLyBOZWNlc3NhcnkgdG8gc3VidHJhY3QgMSBiZWNhdXNlIERhdGUoKSAwLWluZGV4ZXMgbW9udGggYnV0IG5vdCBkYXkgb3IgeWVhclxuICAgICAgICAgICAgICAgIC8vIGZvciBzb21lIHJlYXNvbi5cbiAgICAgICAgICAgICAgICBtb250aDogbS5udW1lcmljIC0gMSxcbiAgICAgICAgICAgICAgICBkYXk6IHRoaXMubmF0dXJhbCh7bWluOiAxLCBtYXg6IGRheXNJbk1vbnRofSksXG4gICAgICAgICAgICAgICAgaG91cjogdGhpcy5ob3VyKCksXG4gICAgICAgICAgICAgICAgbWludXRlOiB0aGlzLm1pbnV0ZSgpLFxuICAgICAgICAgICAgICAgIHNlY29uZDogdGhpcy5zZWNvbmQoKSxcbiAgICAgICAgICAgICAgICBtaWxsaXNlY29uZDogdGhpcy5taWxsaXNlY29uZCgpLFxuICAgICAgICAgICAgICAgIGFtZXJpY2FuOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0cmluZzogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUob3B0aW9ucy55ZWFyLCBvcHRpb25zLm1vbnRoLCBvcHRpb25zLmRheSwgb3B0aW9ucy5ob3VyLCBvcHRpb25zLm1pbnV0ZSwgb3B0aW9ucy5zZWNvbmQsIG9wdGlvbnMubWlsbGlzZWNvbmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuYW1lcmljYW4pIHtcbiAgICAgICAgICAgIC8vIEFkZGluZyAxIHRvIHRoZSBtb250aCBpcyBuZWNlc3NhcnkgYmVjYXVzZSBEYXRlKCkgMC1pbmRleGVzXG4gICAgICAgICAgICAvLyBtb250aHMgYnV0IG5vdCBkYXkgZm9yIHNvbWUgb2RkIHJlYXNvbi5cbiAgICAgICAgICAgIGRhdGVfc3RyaW5nID0gKGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy8nICsgZGF0ZS5nZXREYXRlKCkgKyAnLycgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRlX3N0cmluZyA9IGRhdGUuZ2V0RGF0ZSgpICsgJy8nICsgKGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy8nICsgZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuc3RyaW5nID8gZGF0ZV9zdHJpbmcgOiBkYXRlO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmhhbW1lcnRpbWUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlKG9wdGlvbnMpLmdldFRpbWUoKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5ob3VyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttaW46IDEsIG1heDogb3B0aW9ucyAmJiBvcHRpb25zLnR3ZW50eWZvdXIgPyAyNCA6IDEyfSk7XG5cbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWluIDwgMSwgXCJDaGFuY2U6IE1pbiBjYW5ub3QgYmUgbGVzcyB0aGFuIDEuXCIpO1xuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy50d2VudHlmb3VyICYmIG9wdGlvbnMubWF4ID4gMjQsIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAyNCBmb3IgdHdlbnR5Zm91ciBvcHRpb24uXCIpO1xuICAgICAgICB0ZXN0UmFuZ2UoIW9wdGlvbnMudHdlbnR5Zm91ciAmJiBvcHRpb25zLm1heCA+IDEyLCBcIkNoYW5jZTogTWF4IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMTIuXCIpO1xuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPiBvcHRpb25zLm1heCwgXCJDaGFuY2U6IE1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIE1heC5cIik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWluOiBvcHRpb25zLm1pbiwgbWF4OiBvcHRpb25zLm1heH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1pbGxpc2Vjb25kID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttYXg6IDk5OX0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1pbnV0ZSA9IENoYW5jZS5wcm90b3R5cGUuc2Vjb25kID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttaW46IDAsIG1heDogNTl9KTtcblxuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPCAwLCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBsZXNzIHRoYW4gMC5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1heCA+IDU5LCBcIkNoYW5jZTogTWF4IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gNTkuXCIpO1xuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPiBvcHRpb25zLm1heCwgXCJDaGFuY2U6IE1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIE1heC5cIik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWluOiBvcHRpb25zLm1pbiwgbWF4OiBvcHRpb25zLm1heH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1vbnRoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttaW46IDEsIG1heDogMTJ9KTtcblxuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPCAxLCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBsZXNzIHRoYW4gMS5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1heCA+IDEyLCBcIkNoYW5jZTogTWF4IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMTIuXCIpO1xuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPiBvcHRpb25zLm1heCwgXCJDaGFuY2U6IE1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIE1heC5cIik7XG5cbiAgICAgICAgdmFyIG1vbnRoID0gdGhpcy5waWNrKHRoaXMubW9udGhzKCkuc2xpY2Uob3B0aW9ucy5taW4gLSAxLCBvcHRpb25zLm1heCkpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5yYXcgPyBtb250aCA6IG1vbnRoLm5hbWU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubW9udGhzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoXCJtb250aHNcIik7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc2Vjb25kID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttYXg6IDU5fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudGltZXN0YW1wID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IDEsIG1heDogcGFyc2VJbnQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwLCAxMCl9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS55ZWFyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHllYXIgYXMgbWluIGlmIG5vbmUgc3BlY2lmaWVkXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWluOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCl9KTtcblxuICAgICAgICAvLyBEZWZhdWx0IHRvIG9uZSBjZW50dXJ5IGFmdGVyIGN1cnJlbnQgeWVhciBhcyBtYXggaWYgbm9uZSBzcGVjaWZpZWRcbiAgICAgICAgb3B0aW9ucy5tYXggPSAodHlwZW9mIG9wdGlvbnMubWF4ICE9PSBcInVuZGVmaW5lZFwiKSA/IG9wdGlvbnMubWF4IDogb3B0aW9ucy5taW4gKyAxMDA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbChvcHRpb25zKS50b1N0cmluZygpO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgVGltZVxuXG4gICAgLy8gLS0gRmluYW5jZSAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jYyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB2YXIgdHlwZSwgbnVtYmVyLCB0b19nZW5lcmF0ZTtcblxuICAgICAgICB0eXBlID0gKG9wdGlvbnMudHlwZSkgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNjX3R5cGUoeyBuYW1lOiBvcHRpb25zLnR5cGUsIHJhdzogdHJ1ZSB9KSA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2NfdHlwZSh7IHJhdzogdHJ1ZSB9KTtcblxuICAgICAgICBudW1iZXIgPSB0eXBlLnByZWZpeC5zcGxpdChcIlwiKTtcbiAgICAgICAgdG9fZ2VuZXJhdGUgPSB0eXBlLmxlbmd0aCAtIHR5cGUucHJlZml4Lmxlbmd0aCAtIDE7XG5cbiAgICAgICAgLy8gR2VuZXJhdGVzIG4gLSAxIGRpZ2l0c1xuICAgICAgICBudW1iZXIgPSBudW1iZXIuY29uY2F0KHRoaXMubih0aGlzLmludGVnZXIsIHRvX2dlbmVyYXRlLCB7bWluOiAwLCBtYXg6IDl9KSk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGVzIHRoZSBsYXN0IGRpZ2l0IGFjY29yZGluZyB0byBMdWhuIGFsZ29yaXRobVxuICAgICAgICBudW1iZXIucHVzaCh0aGlzLmx1aG5fY2FsY3VsYXRlKG51bWJlci5qb2luKFwiXCIpKSk7XG5cbiAgICAgICAgcmV0dXJuIG51bWJlci5qb2luKFwiXCIpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNjX3R5cGVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JhbmtfY2FyZF9udW1iZXIjSXNzdWVyX2lkZW50aWZpY2F0aW9uX251bWJlcl8uMjhJSU4uMjlcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwiY2NfdHlwZXNcIik7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY2NfdHlwZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgdmFyIHR5cGVzID0gdGhpcy5jY190eXBlcygpLFxuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubmFtZSkge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIC8vIEFjY2VwdCBlaXRoZXIgbmFtZSBvciBzaG9ydF9uYW1lIHRvIHNwZWNpZnkgY2FyZCB0eXBlXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVzW2ldLm5hbWUgPT09IG9wdGlvbnMubmFtZSB8fCB0eXBlc1tpXS5zaG9ydF9uYW1lID09PSBvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IHR5cGVzW2ldO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiQ3JlZGl0IGNhcmQgdHlwZSAnXCIgKyBvcHRpb25zLm5hbWUgKyBcIicnIGlzIG5vdCBzdXBwb3J0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eXBlID0gdGhpcy5waWNrKHR5cGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnJhdyA/IHR5cGUgOiB0eXBlLm5hbWU7XG4gICAgfTtcblxuICAgIC8vcmV0dXJuIGFsbCB3b3JsZCBjdXJyZW5jeSBieSBJU08gNDIxN1xuICAgIENoYW5jZS5wcm90b3R5cGUuY3VycmVuY3lfdHlwZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcImN1cnJlbmN5X3R5cGVzXCIpO1xuICAgIH07XG5cbiAgICAvL3JldHVybiByYW5kb20gd29ybGQgY3VycmVuY3kgYnkgSVNPIDQyMTdcbiAgICBDaGFuY2UucHJvdG90eXBlLmN1cnJlbmN5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKHRoaXMuY3VycmVuY3lfdHlwZXMoKSk7XG4gICAgfTtcblxuICAgIC8vUmV0dXJuIHJhbmRvbSBjb3JyZWN0IGN1cnJlbmN5IGV4Y2hhbmdlIHBhaXIgKGUuZy4gRVVSL1VTRCkgb3IgYXJyYXkgb2YgY3VycmVuY3kgY29kZVxuICAgIENoYW5jZS5wcm90b3R5cGUuY3VycmVuY3lfcGFpciA9IGZ1bmN0aW9uIChyZXR1cm5Bc1N0cmluZykge1xuICAgICAgICB2YXIgY3VycmVuY2llcyA9IHRoaXMudW5pcXVlKHRoaXMuY3VycmVuY3ksIDIsIHtcbiAgICAgICAgICAgIGNvbXBhcmF0b3I6IGZ1bmN0aW9uKGFyciwgdmFsKSB7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyLnJlZHVjZShmdW5jdGlvbihhY2MsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYSBtYXRjaCBoYXMgYmVlbiBmb3VuZCwgc2hvcnQgY2lyY3VpdCBjaGVjayBhbmQganVzdCByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYyB8fCAoaXRlbS5jb2RlID09PSB2YWwuY29kZSk7XG4gICAgICAgICAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmV0dXJuQXNTdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW5jaWVzWzBdLmNvZGUgKyAnLycgKyBjdXJyZW5jaWVzWzFdLmNvZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVuY2llcztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmRvbGxhciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIC8vIEJ5IGRlZmF1bHQsIGEgc29tZXdoYXQgbW9yZSBzYW5lIG1heCBmb3IgZG9sbGFyIHRoYW4gYWxsIGF2YWlsYWJsZSBudW1iZXJzXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWF4IDogMTAwMDAsIG1pbiA6IDB9KTtcblxuICAgICAgICB2YXIgZG9sbGFyID0gdGhpcy5mbG9hdGluZyh7bWluOiBvcHRpb25zLm1pbiwgbWF4OiBvcHRpb25zLm1heCwgZml4ZWQ6IDJ9KS50b1N0cmluZygpLFxuICAgICAgICAgICAgY2VudHMgPSBkb2xsYXIuc3BsaXQoJy4nKVsxXTtcblxuICAgICAgICBpZiAoY2VudHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9sbGFyICs9ICcuMDAnO1xuICAgICAgICB9IGVsc2UgaWYgKGNlbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIGRvbGxhciA9IGRvbGxhciArICcwJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkb2xsYXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gJy0kJyArIGRvbGxhci5yZXBsYWNlKCctJywgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICckJyArIGRvbGxhcjtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmV4cCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgdmFyIGV4cCA9IHt9O1xuXG4gICAgICAgIGV4cC55ZWFyID0gdGhpcy5leHBfeWVhcigpO1xuXG4gICAgICAgIC8vIElmIHRoZSB5ZWFyIGlzIHRoaXMgeWVhciwgbmVlZCB0byBlbnN1cmUgbW9udGggaXMgZ3JlYXRlciB0aGFuIHRoZVxuICAgICAgICAvLyBjdXJyZW50IG1vbnRoIG9yIHRoaXMgZXhwaXJhdGlvbiB3aWxsIG5vdCBiZSB2YWxpZFxuICAgICAgICBpZiAoZXhwLnllYXIgPT09IChuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkpKSB7XG4gICAgICAgICAgICBleHAubW9udGggPSB0aGlzLmV4cF9tb250aCh7ZnV0dXJlOiB0cnVlfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHAubW9udGggPSB0aGlzLmV4cF9tb250aCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucmF3ID8gZXhwIDogZXhwLm1vbnRoICsgJy8nICsgZXhwLnllYXI7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZXhwX21vbnRoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgbW9udGgsIG1vbnRoX2ludCxcbiAgICAgICAgICAgIGN1ck1vbnRoID0gbmV3IERhdGUoKS5nZXRNb250aCgpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmZ1dHVyZSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIG1vbnRoID0gdGhpcy5tb250aCh7cmF3OiB0cnVlfSkubnVtZXJpYztcbiAgICAgICAgICAgICAgICBtb250aF9pbnQgPSBwYXJzZUludChtb250aCwgMTApO1xuICAgICAgICAgICAgfSB3aGlsZSAobW9udGhfaW50IDwgY3VyTW9udGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9udGggPSB0aGlzLm1vbnRoKHtyYXc6IHRydWV9KS5udW1lcmljO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1vbnRoO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmV4cF95ZWFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyKHttYXg6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSArIDEwfSk7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBGaW5hbmNlXG5cbiAgICAvLyAtLSBNaXNjZWxsYW5lb3VzIC0tXG5cbiAgICAvLyBEaWNlIC0gRm9yIGFsbCB0aGUgYm9hcmQgZ2FtZSBnZWVrcyBvdXQgdGhlcmUsIG15c2VsZiBpbmNsdWRlZCA7KVxuICAgIGZ1bmN0aW9uIGRpY2VGbiAocmFuZ2UpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwocmFuZ2UpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBDaGFuY2UucHJvdG90eXBlLmQ0ID0gZGljZUZuKHttaW46IDEsIG1heDogNH0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDYgPSBkaWNlRm4oe21pbjogMSwgbWF4OiA2fSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kOCA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDh9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQxMCA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDEwfSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kMTIgPSBkaWNlRm4oe21pbjogMSwgbWF4OiAxMn0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDIwID0gZGljZUZuKHttaW46IDEsIG1heDogMjB9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQzMCA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDMwfSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kMTAwID0gZGljZUZuKHttaW46IDEsIG1heDogMTAwfSk7XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnJwZyA9IGZ1bmN0aW9uICh0aHJvd24sIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBpZiAoIXRocm93bikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJBIHR5cGUgb2YgZGllIHJvbGwgbXVzdCBiZSBpbmNsdWRlZFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBiaXRzID0gdGhyb3duLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCJkXCIpLFxuICAgICAgICAgICAgICAgIHJvbGxzID0gW107XG5cbiAgICAgICAgICAgIGlmIChiaXRzLmxlbmd0aCAhPT0gMiB8fCAhcGFyc2VJbnQoYml0c1swXSwgMTApIHx8ICFwYXJzZUludChiaXRzWzFdLCAxMCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGZvcm1hdCBwcm92aWRlZC4gUGxlYXNlIHByb3ZpZGUgI2QjIHdoZXJlIHRoZSBmaXJzdCAjIGlzIHRoZSBudW1iZXIgb2YgZGljZSB0byByb2xsLCB0aGUgc2Vjb25kICMgaXMgdGhlIG1heCBvZiBlYWNoIGRpZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBiaXRzWzBdOyBpID4gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgcm9sbHNbaSAtIDFdID0gdGhpcy5uYXR1cmFsKHttaW46IDEsIG1heDogYml0c1sxXX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0eXBlb2Ygb3B0aW9ucy5zdW0gIT09ICd1bmRlZmluZWQnICYmIG9wdGlvbnMuc3VtKSA/IHJvbGxzLnJlZHVjZShmdW5jdGlvbiAocCwgYykgeyByZXR1cm4gcCArIGM7IH0pIDogcm9sbHM7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gR3VpZFxuICAgIENoYW5jZS5wcm90b3R5cGUuZ3VpZCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IHZlcnNpb246IDUgfSk7XG5cbiAgICAgICAgdmFyIGd1aWRfcG9vbCA9IFwiYWJjZGVmMTIzNDU2Nzg5MFwiLFxuICAgICAgICAgICAgdmFyaWFudF9wb29sID0gXCJhYjg5XCIsXG4gICAgICAgICAgICBndWlkID0gdGhpcy5zdHJpbmcoeyBwb29sOiBndWlkX3Bvb2wsIGxlbmd0aDogOCB9KSArICctJyArXG4gICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoeyBwb29sOiBndWlkX3Bvb2wsIGxlbmd0aDogNCB9KSArICctJyArXG4gICAgICAgICAgICAgICAgICAgLy8gVGhlIFZlcnNpb25cbiAgICAgICAgICAgICAgICAgICBvcHRpb25zLnZlcnNpb24gK1xuICAgICAgICAgICAgICAgICAgIHRoaXMuc3RyaW5nKHsgcG9vbDogZ3VpZF9wb29sLCBsZW5ndGg6IDMgfSkgKyAnLScgK1xuICAgICAgICAgICAgICAgICAgIC8vIFRoZSBWYXJpYW50XG4gICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoeyBwb29sOiB2YXJpYW50X3Bvb2wsIGxlbmd0aDogMSB9KSArXG4gICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoeyBwb29sOiBndWlkX3Bvb2wsIGxlbmd0aDogMyB9KSArICctJyArXG4gICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoeyBwb29sOiBndWlkX3Bvb2wsIGxlbmd0aDogMTIgfSk7XG4gICAgICAgIHJldHVybiBndWlkO1xuICAgIH07XG5cbiAgICAvLyBIYXNoXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5oYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtsZW5ndGggOiA0MCwgY2FzaW5nOiAnbG93ZXInfSk7XG4gICAgICAgIHZhciBwb29sID0gb3B0aW9ucy5jYXNpbmcgPT09ICd1cHBlcicgPyBIRVhfUE9PTC50b1VwcGVyQ2FzZSgpIDogSEVYX1BPT0w7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZyh7cG9vbDogcG9vbCwgbGVuZ3RoOiBvcHRpb25zLmxlbmd0aH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmx1aG5fY2hlY2sgPSBmdW5jdGlvbiAobnVtKSB7XG4gICAgICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKTtcbiAgICAgICAgdmFyIGNoZWNrRGlnaXQgPSArc3RyLnN1YnN0cmluZyhzdHIubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiBjaGVja0RpZ2l0ID09PSB0aGlzLmx1aG5fY2FsY3VsYXRlKCtzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGggLSAxKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubHVobl9jYWxjdWxhdGUgPSBmdW5jdGlvbiAobnVtKSB7XG4gICAgICAgIHZhciBkaWdpdHMgPSBudW0udG9TdHJpbmcoKS5zcGxpdChcIlwiKS5yZXZlcnNlKCk7XG4gICAgICAgIHZhciBzdW0gPSAwO1xuICAgICAgICB2YXIgZGlnaXQ7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBkaWdpdHMubGVuZ3RoOyBsID4gaTsgKytpKSB7XG4gICAgICAgICAgICBkaWdpdCA9ICtkaWdpdHNbaV07XG4gICAgICAgICAgICBpZiAoaSAlIDIgPT09IDApIHtcbiAgICAgICAgICAgICAgICBkaWdpdCAqPSAyO1xuICAgICAgICAgICAgICAgIGlmIChkaWdpdCA+IDkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlnaXQgLT0gOTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdW0gKz0gZGlnaXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChzdW0gKiA5KSAlIDEwO1xuICAgIH07XG5cbiAgICAvLyBNRDUgSGFzaFxuICAgIENoYW5jZS5wcm90b3R5cGUubWQ1ID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgICAgICB2YXIgb3B0cyA9IHsgc3RyOiAnJywga2V5OiBudWxsLCByYXc6IGZhbHNlIH07XG5cbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICBvcHRzLnN0ciA9IHRoaXMuc3RyaW5nKCk7XG4gICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBvcHRzLnN0ciA9IG9wdGlvbnM7XG4gICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKG9wdGlvbnMuY29uc3RydWN0b3IgPT09ICdBcnJheScpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0cyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIG9wdHMpO1xuXG4gICAgICAgIGlmKCFvcHRzLnN0cil7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHJldHVybiBhbiBtZDUgaGFzaC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmJpbWQ1Lm1kNShvcHRzLnN0ciwgb3B0cy5rZXksIG9wdHMucmF3KTtcbiAgICB9O1xuXG4gICAgdmFyIGRhdGEgPSB7XG5cbiAgICAgICAgZmlyc3ROYW1lczoge1xuICAgICAgICAgICAgXCJtYWxlXCI6IFtcIkphbWVzXCIsIFwiSm9oblwiLCBcIlJvYmVydFwiLCBcIk1pY2hhZWxcIiwgXCJXaWxsaWFtXCIsIFwiRGF2aWRcIiwgXCJSaWNoYXJkXCIsIFwiSm9zZXBoXCIsIFwiQ2hhcmxlc1wiLCBcIlRob21hc1wiLCBcIkNocmlzdG9waGVyXCIsIFwiRGFuaWVsXCIsIFwiTWF0dGhld1wiLCBcIkdlb3JnZVwiLCBcIkRvbmFsZFwiLCBcIkFudGhvbnlcIiwgXCJQYXVsXCIsIFwiTWFya1wiLCBcIkVkd2FyZFwiLCBcIlN0ZXZlblwiLCBcIktlbm5ldGhcIiwgXCJBbmRyZXdcIiwgXCJCcmlhblwiLCBcIkpvc2h1YVwiLCBcIktldmluXCIsIFwiUm9uYWxkXCIsIFwiVGltb3RoeVwiLCBcIkphc29uXCIsIFwiSmVmZnJleVwiLCBcIkZyYW5rXCIsIFwiR2FyeVwiLCBcIlJ5YW5cIiwgXCJOaWNob2xhc1wiLCBcIkVyaWNcIiwgXCJTdGVwaGVuXCIsIFwiSmFjb2JcIiwgXCJMYXJyeVwiLCBcIkpvbmF0aGFuXCIsIFwiU2NvdHRcIiwgXCJSYXltb25kXCIsIFwiSnVzdGluXCIsIFwiQnJhbmRvblwiLCBcIkdyZWdvcnlcIiwgXCJTYW11ZWxcIiwgXCJCZW5qYW1pblwiLCBcIlBhdHJpY2tcIiwgXCJKYWNrXCIsIFwiSGVucnlcIiwgXCJXYWx0ZXJcIiwgXCJEZW5uaXNcIiwgXCJKZXJyeVwiLCBcIkFsZXhhbmRlclwiLCBcIlBldGVyXCIsIFwiVHlsZXJcIiwgXCJEb3VnbGFzXCIsIFwiSGFyb2xkXCIsIFwiQWFyb25cIiwgXCJKb3NlXCIsIFwiQWRhbVwiLCBcIkFydGh1clwiLCBcIlphY2hhcnlcIiwgXCJDYXJsXCIsIFwiTmF0aGFuXCIsIFwiQWxiZXJ0XCIsIFwiS3lsZVwiLCBcIkxhd3JlbmNlXCIsIFwiSm9lXCIsIFwiV2lsbGllXCIsIFwiR2VyYWxkXCIsIFwiUm9nZXJcIiwgXCJLZWl0aFwiLCBcIkplcmVteVwiLCBcIlRlcnJ5XCIsIFwiSGFycnlcIiwgXCJSYWxwaFwiLCBcIlNlYW5cIiwgXCJKZXNzZVwiLCBcIlJveVwiLCBcIkxvdWlzXCIsIFwiQmlsbHlcIiwgXCJBdXN0aW5cIiwgXCJCcnVjZVwiLCBcIkV1Z2VuZVwiLCBcIkNocmlzdGlhblwiLCBcIkJyeWFuXCIsIFwiV2F5bmVcIiwgXCJSdXNzZWxsXCIsIFwiSG93YXJkXCIsIFwiRnJlZFwiLCBcIkV0aGFuXCIsIFwiSm9yZGFuXCIsIFwiUGhpbGlwXCIsIFwiQWxhblwiLCBcIkp1YW5cIiwgXCJSYW5keVwiLCBcIlZpbmNlbnRcIiwgXCJCb2JieVwiLCBcIkR5bGFuXCIsIFwiSm9obm55XCIsIFwiUGhpbGxpcFwiLCBcIlZpY3RvclwiLCBcIkNsYXJlbmNlXCIsIFwiRXJuZXN0XCIsIFwiTWFydGluXCIsIFwiQ3JhaWdcIiwgXCJTdGFubGV5XCIsIFwiU2hhd25cIiwgXCJUcmF2aXNcIiwgXCJCcmFkbGV5XCIsIFwiTGVvbmFyZFwiLCBcIkVhcmxcIiwgXCJHYWJyaWVsXCIsIFwiSmltbXlcIiwgXCJGcmFuY2lzXCIsIFwiVG9kZFwiLCBcIk5vYWhcIiwgXCJEYW5ueVwiLCBcIkRhbGVcIiwgXCJDb2R5XCIsIFwiQ2FybG9zXCIsIFwiQWxsZW5cIiwgXCJGcmVkZXJpY2tcIiwgXCJMb2dhblwiLCBcIkN1cnRpc1wiLCBcIkFsZXhcIiwgXCJKb2VsXCIsIFwiTHVpc1wiLCBcIk5vcm1hblwiLCBcIk1hcnZpblwiLCBcIkdsZW5uXCIsIFwiVG9ueVwiLCBcIk5hdGhhbmllbFwiLCBcIlJvZG5leVwiLCBcIk1lbHZpblwiLCBcIkFsZnJlZFwiLCBcIlN0ZXZlXCIsIFwiQ2FtZXJvblwiLCBcIkNoYWRcIiwgXCJFZHdpblwiLCBcIkNhbGViXCIsIFwiRXZhblwiLCBcIkFudG9uaW9cIiwgXCJMZWVcIiwgXCJIZXJiZXJ0XCIsIFwiSmVmZmVyeVwiLCBcIklzYWFjXCIsIFwiRGVyZWtcIiwgXCJSaWNreVwiLCBcIk1hcmN1c1wiLCBcIlRoZW9kb3JlXCIsIFwiRWxpamFoXCIsIFwiTHVrZVwiLCBcIkplc3VzXCIsIFwiRWRkaWVcIiwgXCJUcm95XCIsIFwiTWlrZVwiLCBcIkR1c3RpblwiLCBcIlJheVwiLCBcIkFkcmlhblwiLCBcIkJlcm5hcmRcIiwgXCJMZXJveVwiLCBcIkFuZ2VsXCIsIFwiUmFuZGFsbFwiLCBcIldlc2xleVwiLCBcIklhblwiLCBcIkphcmVkXCIsIFwiTWFzb25cIiwgXCJIdW50ZXJcIiwgXCJDYWx2aW5cIiwgXCJPc2NhclwiLCBcIkNsaWZmb3JkXCIsIFwiSmF5XCIsIFwiU2hhbmVcIiwgXCJSb25uaWVcIiwgXCJCYXJyeVwiLCBcIkx1Y2FzXCIsIFwiQ29yZXlcIiwgXCJNYW51ZWxcIiwgXCJMZW9cIiwgXCJUb21teVwiLCBcIldhcnJlblwiLCBcIkphY2tzb25cIiwgXCJJc2FpYWhcIiwgXCJDb25ub3JcIiwgXCJEb25cIiwgXCJEZWFuXCIsIFwiSm9uXCIsIFwiSnVsaWFuXCIsIFwiTWlndWVsXCIsIFwiQmlsbFwiLCBcIkxsb3lkXCIsIFwiQ2hhcmxpZVwiLCBcIk1pdGNoZWxsXCIsIFwiTGVvblwiLCBcIkplcm9tZVwiLCBcIkRhcnJlbGxcIiwgXCJKZXJlbWlhaFwiLCBcIkFsdmluXCIsIFwiQnJldHRcIiwgXCJTZXRoXCIsIFwiRmxveWRcIiwgXCJKaW1cIiwgXCJCbGFrZVwiLCBcIk1pY2hlYWxcIiwgXCJHb3Jkb25cIiwgXCJUcmV2b3JcIiwgXCJMZXdpc1wiLCBcIkVyaWtcIiwgXCJFZGdhclwiLCBcIlZlcm5vblwiLCBcIkRldmluXCIsIFwiR2F2aW5cIiwgXCJKYXlkZW5cIiwgXCJDaHJpc1wiLCBcIkNseWRlXCIsIFwiVG9tXCIsIFwiRGVycmlja1wiLCBcIk1hcmlvXCIsIFwiQnJlbnRcIiwgXCJNYXJjXCIsIFwiSGVybWFuXCIsIFwiQ2hhc2VcIiwgXCJEb21pbmljXCIsIFwiUmljYXJkb1wiLCBcIkZyYW5rbGluXCIsIFwiTWF1cmljZVwiLCBcIk1heFwiLCBcIkFpZGVuXCIsIFwiT3dlblwiLCBcIkxlc3RlclwiLCBcIkdpbGJlcnRcIiwgXCJFbG1lclwiLCBcIkdlbmVcIiwgXCJGcmFuY2lzY29cIiwgXCJHbGVuXCIsIFwiQ29yeVwiLCBcIkdhcnJldHRcIiwgXCJDbGF5dG9uXCIsIFwiU2FtXCIsIFwiSm9yZ2VcIiwgXCJDaGVzdGVyXCIsIFwiQWxlamFuZHJvXCIsIFwiSmVmZlwiLCBcIkhhcnZleVwiLCBcIk1pbHRvblwiLCBcIkNvbGVcIiwgXCJJdmFuXCIsIFwiQW5kcmVcIiwgXCJEdWFuZVwiLCBcIkxhbmRvblwiXSxcbiAgICAgICAgICAgIFwiZmVtYWxlXCI6IFtcIk1hcnlcIiwgXCJFbW1hXCIsIFwiRWxpemFiZXRoXCIsIFwiTWlubmllXCIsIFwiTWFyZ2FyZXRcIiwgXCJJZGFcIiwgXCJBbGljZVwiLCBcIkJlcnRoYVwiLCBcIlNhcmFoXCIsIFwiQW5uaWVcIiwgXCJDbGFyYVwiLCBcIkVsbGFcIiwgXCJGbG9yZW5jZVwiLCBcIkNvcmFcIiwgXCJNYXJ0aGFcIiwgXCJMYXVyYVwiLCBcIk5lbGxpZVwiLCBcIkdyYWNlXCIsIFwiQ2FycmllXCIsIFwiTWF1ZGVcIiwgXCJNYWJlbFwiLCBcIkJlc3NpZVwiLCBcIkplbm5pZVwiLCBcIkdlcnRydWRlXCIsIFwiSnVsaWFcIiwgXCJIYXR0aWVcIiwgXCJFZGl0aFwiLCBcIk1hdHRpZVwiLCBcIlJvc2VcIiwgXCJDYXRoZXJpbmVcIiwgXCJMaWxsaWFuXCIsIFwiQWRhXCIsIFwiTGlsbGllXCIsIFwiSGVsZW5cIiwgXCJKZXNzaWVcIiwgXCJMb3Vpc2VcIiwgXCJFdGhlbFwiLCBcIkx1bGFcIiwgXCJNeXJ0bGVcIiwgXCJFdmFcIiwgXCJGcmFuY2VzXCIsIFwiTGVuYVwiLCBcIkx1Y3lcIiwgXCJFZG5hXCIsIFwiTWFnZ2llXCIsIFwiUGVhcmxcIiwgXCJEYWlzeVwiLCBcIkZhbm5pZVwiLCBcIkpvc2VwaGluZVwiLCBcIkRvcmFcIiwgXCJSb3NhXCIsIFwiS2F0aGVyaW5lXCIsIFwiQWduZXNcIiwgXCJNYXJpZVwiLCBcIk5vcmFcIiwgXCJNYXlcIiwgXCJNYW1pZVwiLCBcIkJsYW5jaGVcIiwgXCJTdGVsbGFcIiwgXCJFbGxlblwiLCBcIk5hbmN5XCIsIFwiRWZmaWVcIiwgXCJTYWxsaWVcIiwgXCJOZXR0aWVcIiwgXCJEZWxsYVwiLCBcIkxpenppZVwiLCBcIkZsb3JhXCIsIFwiU3VzaWVcIiwgXCJNYXVkXCIsIFwiTWFlXCIsIFwiRXR0YVwiLCBcIkhhcnJpZXRcIiwgXCJTYWRpZVwiLCBcIkNhcm9saW5lXCIsIFwiS2F0aWVcIiwgXCJMeWRpYVwiLCBcIkVsc2llXCIsIFwiS2F0ZVwiLCBcIlN1c2FuXCIsIFwiTW9sbGllXCIsIFwiQWxtYVwiLCBcIkFkZGllXCIsIFwiR2VvcmdpYVwiLCBcIkVsaXphXCIsIFwiTHVsdVwiLCBcIk5hbm5pZVwiLCBcIkxvdHRpZVwiLCBcIkFtYW5kYVwiLCBcIkJlbGxlXCIsIFwiQ2hhcmxvdHRlXCIsIFwiUmViZWNjYVwiLCBcIlJ1dGhcIiwgXCJWaW9sYVwiLCBcIk9saXZlXCIsIFwiQW1lbGlhXCIsIFwiSGFubmFoXCIsIFwiSmFuZVwiLCBcIlZpcmdpbmlhXCIsIFwiRW1pbHlcIiwgXCJNYXRpbGRhXCIsIFwiSXJlbmVcIiwgXCJLYXRocnluXCIsIFwiRXN0aGVyXCIsIFwiV2lsbGllXCIsIFwiSGVucmlldHRhXCIsIFwiT2xsaWVcIiwgXCJBbXlcIiwgXCJSYWNoZWxcIiwgXCJTYXJhXCIsIFwiRXN0ZWxsYVwiLCBcIlRoZXJlc2FcIiwgXCJBdWd1c3RhXCIsIFwiT3JhXCIsIFwiUGF1bGluZVwiLCBcIkpvc2llXCIsIFwiTG9sYVwiLCBcIlNvcGhpYVwiLCBcIkxlb25hXCIsIFwiQW5uZVwiLCBcIk1pbGRyZWRcIiwgXCJBbm5cIiwgXCJCZXVsYWhcIiwgXCJDYWxsaWVcIiwgXCJMb3VcIiwgXCJEZWxpYVwiLCBcIkVsZWFub3JcIiwgXCJCYXJiYXJhXCIsIFwiSXZhXCIsIFwiTG91aXNhXCIsIFwiTWFyaWFcIiwgXCJNYXltZVwiLCBcIkV2ZWx5blwiLCBcIkVzdGVsbGVcIiwgXCJOaW5hXCIsIFwiQmV0dHlcIiwgXCJNYXJpb25cIiwgXCJCZXR0aWVcIiwgXCJEb3JvdGh5XCIsIFwiTHVlbGxhXCIsIFwiSW5lelwiLCBcIkxlbGFcIiwgXCJSb3NpZVwiLCBcIkFsbGllXCIsIFwiTWlsbGllXCIsIFwiSmFuaWVcIiwgXCJDb3JuZWxpYVwiLCBcIlZpY3RvcmlhXCIsIFwiUnVieVwiLCBcIldpbmlmcmVkXCIsIFwiQWx0YVwiLCBcIkNlbGlhXCIsIFwiQ2hyaXN0aW5lXCIsIFwiQmVhdHJpY2VcIiwgXCJCaXJkaWVcIiwgXCJIYXJyaWV0dFwiLCBcIk1hYmxlXCIsIFwiTXlyYVwiLCBcIlNvcGhpZVwiLCBcIlRpbGxpZVwiLCBcIklzYWJlbFwiLCBcIlN5bHZpYVwiLCBcIkNhcm9seW5cIiwgXCJJc2FiZWxsZVwiLCBcIkxlaWxhXCIsIFwiU2FsbHlcIiwgXCJJbmFcIiwgXCJFc3NpZVwiLCBcIkJlcnRpZVwiLCBcIk5lbGxcIiwgXCJBbGJlcnRhXCIsIFwiS2F0aGFyaW5lXCIsIFwiTG9yYVwiLCBcIlJlbmFcIiwgXCJNaW5hXCIsIFwiUmhvZGFcIiwgXCJNYXRoaWxkYVwiLCBcIkFiYmllXCIsIFwiRXVsYVwiLCBcIkRvbGxpZVwiLCBcIkhldHRpZVwiLCBcIkV1bmljZVwiLCBcIkZhbm55XCIsIFwiT2xhXCIsIFwiTGVub3JhXCIsIFwiQWRlbGFpZGVcIiwgXCJDaHJpc3RpbmFcIiwgXCJMZWxpYVwiLCBcIk5lbGxlXCIsIFwiU3VlXCIsIFwiSm9oYW5uYVwiLCBcIkxpbGx5XCIsIFwiTHVjaW5kYVwiLCBcIk1pbmVydmFcIiwgXCJMZXR0aWVcIiwgXCJSb3hpZVwiLCBcIkN5bnRoaWFcIiwgXCJIZWxlbmFcIiwgXCJIaWxkYVwiLCBcIkh1bGRhXCIsIFwiQmVybmljZVwiLCBcIkdlbmV2aWV2ZVwiLCBcIkplYW5cIiwgXCJDb3JkZWxpYVwiLCBcIk1hcmlhblwiLCBcIkZyYW5jaXNcIiwgXCJKZWFuZXR0ZVwiLCBcIkFkZWxpbmVcIiwgXCJHdXNzaWVcIiwgXCJMZWFoXCIsIFwiTG9pc1wiLCBcIkx1cmFcIiwgXCJNaXR0aWVcIiwgXCJIYWxsaWVcIiwgXCJJc2FiZWxsYVwiLCBcIk9sZ2FcIiwgXCJQaG9lYmVcIiwgXCJUZXJlc2FcIiwgXCJIZXN0ZXJcIiwgXCJMaWRhXCIsIFwiTGluYVwiLCBcIldpbm5pZVwiLCBcIkNsYXVkaWFcIiwgXCJNYXJndWVyaXRlXCIsIFwiVmVyYVwiLCBcIkNlY2VsaWFcIiwgXCJCZXNzXCIsIFwiRW1pbGllXCIsIFwiSm9oblwiLCBcIlJvc2V0dGFcIiwgXCJWZXJuYVwiLCBcIk15cnRpZVwiLCBcIkNlY2lsaWFcIiwgXCJFbHZhXCIsIFwiT2xpdmlhXCIsIFwiT3BoZWxpYVwiLCBcIkdlb3JnaWVcIiwgXCJFbG5vcmFcIiwgXCJWaW9sZXRcIiwgXCJBZGVsZVwiLCBcIkxpbHlcIiwgXCJMaW5uaWVcIiwgXCJMb3JldHRhXCIsIFwiTWFkZ2VcIiwgXCJQb2xseVwiLCBcIlZpcmdpZVwiLCBcIkV1Z2VuaWFcIiwgXCJMdWNpbGVcIiwgXCJMdWNpbGxlXCIsIFwiTWFiZWxsZVwiLCBcIlJvc2FsaWVcIl1cbiAgICAgICAgfSxcblxuICAgICAgICBsYXN0TmFtZXM6IFsnU21pdGgnLCAnSm9obnNvbicsICdXaWxsaWFtcycsICdKb25lcycsICdCcm93bicsICdEYXZpcycsICdNaWxsZXInLCAnV2lsc29uJywgJ01vb3JlJywgJ1RheWxvcicsICdBbmRlcnNvbicsICdUaG9tYXMnLCAnSmFja3NvbicsICdXaGl0ZScsICdIYXJyaXMnLCAnTWFydGluJywgJ1Rob21wc29uJywgJ0dhcmNpYScsICdNYXJ0aW5leicsICdSb2JpbnNvbicsICdDbGFyaycsICdSb2RyaWd1ZXonLCAnTGV3aXMnLCAnTGVlJywgJ1dhbGtlcicsICdIYWxsJywgJ0FsbGVuJywgJ1lvdW5nJywgJ0hlcm5hbmRleicsICdLaW5nJywgJ1dyaWdodCcsICdMb3BleicsICdIaWxsJywgJ1Njb3R0JywgJ0dyZWVuJywgJ0FkYW1zJywgJ0Jha2VyJywgJ0dvbnphbGV6JywgJ05lbHNvbicsICdDYXJ0ZXInLCAnTWl0Y2hlbGwnLCAnUGVyZXonLCAnUm9iZXJ0cycsICdUdXJuZXInLCAnUGhpbGxpcHMnLCAnQ2FtcGJlbGwnLCAnUGFya2VyJywgJ0V2YW5zJywgJ0Vkd2FyZHMnLCAnQ29sbGlucycsICdTdGV3YXJ0JywgJ1NhbmNoZXonLCAnTW9ycmlzJywgJ1JvZ2VycycsICdSZWVkJywgJ0Nvb2snLCAnTW9yZ2FuJywgJ0JlbGwnLCAnTXVycGh5JywgJ0JhaWxleScsICdSaXZlcmEnLCAnQ29vcGVyJywgJ1JpY2hhcmRzb24nLCAnQ294JywgJ0hvd2FyZCcsICdXYXJkJywgJ1RvcnJlcycsICdQZXRlcnNvbicsICdHcmF5JywgJ1JhbWlyZXonLCAnSmFtZXMnLCAnV2F0c29uJywgJ0Jyb29rcycsICdLZWxseScsICdTYW5kZXJzJywgJ1ByaWNlJywgJ0Jlbm5ldHQnLCAnV29vZCcsICdCYXJuZXMnLCAnUm9zcycsICdIZW5kZXJzb24nLCAnQ29sZW1hbicsICdKZW5raW5zJywgJ1BlcnJ5JywgJ1Bvd2VsbCcsICdMb25nJywgJ1BhdHRlcnNvbicsICdIdWdoZXMnLCAnRmxvcmVzJywgJ1dhc2hpbmd0b24nLCAnQnV0bGVyJywgJ1NpbW1vbnMnLCAnRm9zdGVyJywgJ0dvbnphbGVzJywgJ0JyeWFudCcsICdBbGV4YW5kZXInLCAnUnVzc2VsbCcsICdHcmlmZmluJywgJ0RpYXonLCAnSGF5ZXMnLCAnTXllcnMnLCAnRm9yZCcsICdIYW1pbHRvbicsICdHcmFoYW0nLCAnU3VsbGl2YW4nLCAnV2FsbGFjZScsICdXb29kcycsICdDb2xlJywgJ1dlc3QnLCAnSm9yZGFuJywgJ093ZW5zJywgJ1JleW5vbGRzJywgJ0Zpc2hlcicsICdFbGxpcycsICdIYXJyaXNvbicsICdHaWJzb24nLCAnTWNEb25hbGQnLCAnQ3J1eicsICdNYXJzaGFsbCcsICdPcnRpeicsICdHb21leicsICdNdXJyYXknLCAnRnJlZW1hbicsICdXZWxscycsICdXZWJiJywgJ1NpbXBzb24nLCAnU3RldmVucycsICdUdWNrZXInLCAnUG9ydGVyJywgJ0h1bnRlcicsICdIaWNrcycsICdDcmF3Zm9yZCcsICdIZW5yeScsICdCb3lkJywgJ01hc29uJywgJ01vcmFsZXMnLCAnS2VubmVkeScsICdXYXJyZW4nLCAnRGl4b24nLCAnUmFtb3MnLCAnUmV5ZXMnLCAnQnVybnMnLCAnR29yZG9uJywgJ1NoYXcnLCAnSG9sbWVzJywgJ1JpY2UnLCAnUm9iZXJ0c29uJywgJ0h1bnQnLCAnQmxhY2snLCAnRGFuaWVscycsICdQYWxtZXInLCAnTWlsbHMnLCAnTmljaG9scycsICdHcmFudCcsICdLbmlnaHQnLCAnRmVyZ3Vzb24nLCAnUm9zZScsICdTdG9uZScsICdIYXdraW5zJywgJ0R1bm4nLCAnUGVya2lucycsICdIdWRzb24nLCAnU3BlbmNlcicsICdHYXJkbmVyJywgJ1N0ZXBoZW5zJywgJ1BheW5lJywgJ1BpZXJjZScsICdCZXJyeScsICdNYXR0aGV3cycsICdBcm5vbGQnLCAnV2FnbmVyJywgJ1dpbGxpcycsICdSYXknLCAnV2F0a2lucycsICdPbHNvbicsICdDYXJyb2xsJywgJ0R1bmNhbicsICdTbnlkZXInLCAnSGFydCcsICdDdW5uaW5naGFtJywgJ0JyYWRsZXknLCAnTGFuZScsICdBbmRyZXdzJywgJ1J1aXonLCAnSGFycGVyJywgJ0ZveCcsICdSaWxleScsICdBcm1zdHJvbmcnLCAnQ2FycGVudGVyJywgJ1dlYXZlcicsICdHcmVlbmUnLCAnTGF3cmVuY2UnLCAnRWxsaW90dCcsICdDaGF2ZXonLCAnU2ltcycsICdBdXN0aW4nLCAnUGV0ZXJzJywgJ0tlbGxleScsICdGcmFua2xpbicsICdMYXdzb24nLCAnRmllbGRzJywgJ0d1dGllcnJleicsICdSeWFuJywgJ1NjaG1pZHQnLCAnQ2FycicsICdWYXNxdWV6JywgJ0Nhc3RpbGxvJywgJ1doZWVsZXInLCAnQ2hhcG1hbicsICdPbGl2ZXInLCAnTW9udGdvbWVyeScsICdSaWNoYXJkcycsICdXaWxsaWFtc29uJywgJ0pvaG5zdG9uJywgJ0JhbmtzJywgJ01leWVyJywgJ0Jpc2hvcCcsICdNY0NveScsICdIb3dlbGwnLCAnQWx2YXJleicsICdNb3JyaXNvbicsICdIYW5zZW4nLCAnRmVybmFuZGV6JywgJ0dhcnphJywgJ0hhcnZleScsICdMaXR0bGUnLCAnQnVydG9uJywgJ1N0YW5sZXknLCAnTmd1eWVuJywgJ0dlb3JnZScsICdKYWNvYnMnLCAnUmVpZCcsICdLaW0nLCAnRnVsbGVyJywgJ0x5bmNoJywgJ0RlYW4nLCAnR2lsYmVydCcsICdHYXJyZXR0JywgJ1JvbWVybycsICdXZWxjaCcsICdMYXJzb24nLCAnRnJhemllcicsICdCdXJrZScsICdIYW5zb24nLCAnRGF5JywgJ01lbmRvemEnLCAnTW9yZW5vJywgJ0Jvd21hbicsICdNZWRpbmEnLCAnRm93bGVyJywgJ0JyZXdlcicsICdIb2ZmbWFuJywgJ0Nhcmxzb24nLCAnU2lsdmEnLCAnUGVhcnNvbicsICdIb2xsYW5kJywgJ0RvdWdsYXMnLCAnRmxlbWluZycsICdKZW5zZW4nLCAnVmFyZ2FzJywgJ0J5cmQnLCAnRGF2aWRzb24nLCAnSG9wa2lucycsICdNYXknLCAnVGVycnknLCAnSGVycmVyYScsICdXYWRlJywgJ1NvdG8nLCAnV2FsdGVycycsICdDdXJ0aXMnLCAnTmVhbCcsICdDYWxkd2VsbCcsICdMb3dlJywgJ0plbm5pbmdzJywgJ0Jhcm5ldHQnLCAnR3JhdmVzJywgJ0ppbWVuZXonLCAnSG9ydG9uJywgJ1NoZWx0b24nLCAnQmFycmV0dCcsICdPYnJpZW4nLCAnQ2FzdHJvJywgJ1N1dHRvbicsICdHcmVnb3J5JywgJ01jS2lubmV5JywgJ0x1Y2FzJywgJ01pbGVzJywgJ0NyYWlnJywgJ1JvZHJpcXVleicsICdDaGFtYmVycycsICdIb2x0JywgJ0xhbWJlcnQnLCAnRmxldGNoZXInLCAnV2F0dHMnLCAnQmF0ZXMnLCAnSGFsZScsICdSaG9kZXMnLCAnUGVuYScsICdCZWNrJywgJ05ld21hbicsICdIYXluZXMnLCAnTWNEYW5pZWwnLCAnTWVuZGV6JywgJ0J1c2gnLCAnVmF1Z2huJywgJ1BhcmtzJywgJ0Rhd3NvbicsICdTYW50aWFnbycsICdOb3JyaXMnLCAnSGFyZHknLCAnTG92ZScsICdTdGVlbGUnLCAnQ3VycnknLCAnUG93ZXJzJywgJ1NjaHVsdHonLCAnQmFya2VyJywgJ0d1em1hbicsICdQYWdlJywgJ011bm96JywgJ0JhbGwnLCAnS2VsbGVyJywgJ0NoYW5kbGVyJywgJ1dlYmVyJywgJ0xlb25hcmQnLCAnV2Fsc2gnLCAnTHlvbnMnLCAnUmFtc2V5JywgJ1dvbGZlJywgJ1NjaG5laWRlcicsICdNdWxsaW5zJywgJ0JlbnNvbicsICdTaGFycCcsICdCb3dlbicsICdEYW5pZWwnLCAnQmFyYmVyJywgJ0N1bW1pbmdzJywgJ0hpbmVzJywgJ0JhbGR3aW4nLCAnR3JpZmZpdGgnLCAnVmFsZGV6JywgJ0h1YmJhcmQnLCAnU2FsYXphcicsICdSZWV2ZXMnLCAnV2FybmVyJywgJ1N0ZXZlbnNvbicsICdCdXJnZXNzJywgJ1NhbnRvcycsICdUYXRlJywgJ0Nyb3NzJywgJ0dhcm5lcicsICdNYW5uJywgJ01hY2snLCAnTW9zcycsICdUaG9ybnRvbicsICdEZW5uaXMnLCAnTWNHZWUnLCAnRmFybWVyJywgJ0RlbGdhZG8nLCAnQWd1aWxhcicsICdWZWdhJywgJ0dsb3ZlcicsICdNYW5uaW5nJywgJ0NvaGVuJywgJ0hhcm1vbicsICdSb2RnZXJzJywgJ1JvYmJpbnMnLCAnTmV3dG9uJywgJ1RvZGQnLCAnQmxhaXInLCAnSGlnZ2lucycsICdJbmdyYW0nLCAnUmVlc2UnLCAnQ2Fubm9uJywgJ1N0cmlja2xhbmQnLCAnVG93bnNlbmQnLCAnUG90dGVyJywgJ0dvb2R3aW4nLCAnV2FsdG9uJywgJ1Jvd2UnLCAnSGFtcHRvbicsICdPcnRlZ2EnLCAnUGF0dG9uJywgJ1N3YW5zb24nLCAnSm9zZXBoJywgJ0ZyYW5jaXMnLCAnR29vZG1hbicsICdNYWxkb25hZG8nLCAnWWF0ZXMnLCAnQmVja2VyJywgJ0VyaWNrc29uJywgJ0hvZGdlcycsICdSaW9zJywgJ0Nvbm5lcicsICdBZGtpbnMnLCAnV2Vic3RlcicsICdOb3JtYW4nLCAnTWFsb25lJywgJ0hhbW1vbmQnLCAnRmxvd2VycycsICdDb2JiJywgJ01vb2R5JywgJ1F1aW5uJywgJ0JsYWtlJywgJ01heHdlbGwnLCAnUG9wZScsICdGbG95ZCcsICdPc2Jvcm5lJywgJ1BhdWwnLCAnTWNDYXJ0aHknLCAnR3VlcnJlcm8nLCAnTGluZHNleScsICdFc3RyYWRhJywgJ1NhbmRvdmFsJywgJ0dpYmJzJywgJ1R5bGVyJywgJ0dyb3NzJywgJ0ZpdHpnZXJhbGQnLCAnU3Rva2VzJywgJ0RveWxlJywgJ1NoZXJtYW4nLCAnU2F1bmRlcnMnLCAnV2lzZScsICdDb2xvbicsICdHaWxsJywgJ0FsdmFyYWRvJywgJ0dyZWVyJywgJ1BhZGlsbGEnLCAnU2ltb24nLCAnV2F0ZXJzJywgJ051bmV6JywgJ0JhbGxhcmQnLCAnU2Nod2FydHonLCAnTWNCcmlkZScsICdIb3VzdG9uJywgJ0NocmlzdGVuc2VuJywgJ0tsZWluJywgJ1ByYXR0JywgJ0JyaWdncycsICdQYXJzb25zJywgJ01jTGF1Z2hsaW4nLCAnWmltbWVybWFuJywgJ0ZyZW5jaCcsICdCdWNoYW5hbicsICdNb3JhbicsICdDb3BlbGFuZCcsICdSb3knLCAnUGl0dG1hbicsICdCcmFkeScsICdNY0Nvcm1pY2snLCAnSG9sbG93YXknLCAnQnJvY2snLCAnUG9vbGUnLCAnRnJhbmsnLCAnTG9nYW4nLCAnT3dlbicsICdCYXNzJywgJ01hcnNoJywgJ0RyYWtlJywgJ1dvbmcnLCAnSmVmZmVyc29uJywgJ1BhcmsnLCAnTW9ydG9uJywgJ0FiYm90dCcsICdTcGFya3MnLCAnUGF0cmljaycsICdOb3J0b24nLCAnSHVmZicsICdDbGF5dG9uJywgJ01hc3NleScsICdMbG95ZCcsICdGaWd1ZXJvYScsICdDYXJzb24nLCAnQm93ZXJzJywgJ1JvYmVyc29uJywgJ0JhcnRvbicsICdUcmFuJywgJ0xhbWInLCAnSGFycmluZ3RvbicsICdDYXNleScsICdCb29uZScsICdDb3J0ZXonLCAnQ2xhcmtlJywgJ01hdGhpcycsICdTaW5nbGV0b24nLCAnV2lsa2lucycsICdDYWluJywgJ0JyeWFuJywgJ1VuZGVyd29vZCcsICdIb2dhbicsICdNY0tlbnppZScsICdDb2xsaWVyJywgJ0x1bmEnLCAnUGhlbHBzJywgJ01jR3VpcmUnLCAnQWxsaXNvbicsICdCcmlkZ2VzJywgJ1dpbGtlcnNvbicsICdOYXNoJywgJ1N1bW1lcnMnLCAnQXRraW5zJ10sXG5cbiAgICAgICAgLy8gRGF0YSB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bXBpcnNreS9jb3VudHJ5LWxpc3QvYmxvYi9tYXN0ZXIvY291bnRyeS9jbGRyL2VuX1VTL2NvdW50cnkuanNvblxuICAgICAgICBjb3VudHJpZXM6IFt7XCJuYW1lXCI6XCJBZmdoYW5pc3RhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJBRlwifSx7XCJuYW1lXCI6XCJBbGJhbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFMXCJ9LHtcIm5hbWVcIjpcIkFsZ2VyaWFcIixcImFiYnJldmlhdGlvblwiOlwiRFpcIn0se1wibmFtZVwiOlwiQW1lcmljYW4gU2Ftb2FcIixcImFiYnJldmlhdGlvblwiOlwiQVNcIn0se1wibmFtZVwiOlwiQW5kb3JyYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBRFwifSx7XCJuYW1lXCI6XCJBbmdvbGFcIixcImFiYnJldmlhdGlvblwiOlwiQU9cIn0se1wibmFtZVwiOlwiQW5ndWlsbGFcIixcImFiYnJldmlhdGlvblwiOlwiQUlcIn0se1wibmFtZVwiOlwiQW50YXJjdGljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBUVwifSx7XCJuYW1lXCI6XCJBbnRpZ3VhIGFuZCBCYXJidWRhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFHXCJ9LHtcIm5hbWVcIjpcIkFyZ2VudGluYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBUlwifSx7XCJuYW1lXCI6XCJBcm1lbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFNXCJ9LHtcIm5hbWVcIjpcIkFydWJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFXXCJ9LHtcIm5hbWVcIjpcIkF1c3RyYWxpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBVVwifSx7XCJuYW1lXCI6XCJBdXN0cmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFUXCJ9LHtcIm5hbWVcIjpcIkF6ZXJiYWlqYW5cIixcImFiYnJldmlhdGlvblwiOlwiQVpcIn0se1wibmFtZVwiOlwiQmFoYW1hc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCU1wifSx7XCJuYW1lXCI6XCJCYWhyYWluXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJIXCJ9LHtcIm5hbWVcIjpcIkJhbmdsYWRlc2hcIixcImFiYnJldmlhdGlvblwiOlwiQkRcIn0se1wibmFtZVwiOlwiQmFyYmFkb3NcIixcImFiYnJldmlhdGlvblwiOlwiQkJcIn0se1wibmFtZVwiOlwiQmVsYXJ1c1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCWVwifSx7XCJuYW1lXCI6XCJCZWxnaXVtXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJFXCJ9LHtcIm5hbWVcIjpcIkJlbGl6ZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCWlwifSx7XCJuYW1lXCI6XCJCZW5pblwiLFwiYWJicmV2aWF0aW9uXCI6XCJCSlwifSx7XCJuYW1lXCI6XCJCZXJtdWRhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJNXCJ9LHtcIm5hbWVcIjpcIkJodXRhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJCVFwifSx7XCJuYW1lXCI6XCJCb2xpdmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJPXCJ9LHtcIm5hbWVcIjpcIkJvc25pYSBhbmQgSGVyemVnb3ZpbmFcIixcImFiYnJldmlhdGlvblwiOlwiQkFcIn0se1wibmFtZVwiOlwiQm90c3dhbmFcIixcImFiYnJldmlhdGlvblwiOlwiQldcIn0se1wibmFtZVwiOlwiQm91dmV0IElzbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJCVlwifSx7XCJuYW1lXCI6XCJCcmF6aWxcIixcImFiYnJldmlhdGlvblwiOlwiQlJcIn0se1wibmFtZVwiOlwiQnJpdGlzaCBBbnRhcmN0aWMgVGVycml0b3J5XCIsXCJhYmJyZXZpYXRpb25cIjpcIkJRXCJ9LHtcIm5hbWVcIjpcIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJT1wifSx7XCJuYW1lXCI6XCJCcml0aXNoIFZpcmdpbiBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlZHXCJ9LHtcIm5hbWVcIjpcIkJydW5laVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCTlwifSx7XCJuYW1lXCI6XCJCdWxnYXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCR1wifSx7XCJuYW1lXCI6XCJCdXJraW5hIEZhc29cIixcImFiYnJldmlhdGlvblwiOlwiQkZcIn0se1wibmFtZVwiOlwiQnVydW5kaVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCSVwifSx7XCJuYW1lXCI6XCJDYW1ib2RpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJLSFwifSx7XCJuYW1lXCI6XCJDYW1lcm9vblwiLFwiYWJicmV2aWF0aW9uXCI6XCJDTVwifSx7XCJuYW1lXCI6XCJDYW5hZGFcIixcImFiYnJldmlhdGlvblwiOlwiQ0FcIn0se1wibmFtZVwiOlwiQ2FudG9uIGFuZCBFbmRlcmJ1cnkgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDVFwifSx7XCJuYW1lXCI6XCJDYXBlIFZlcmRlXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNWXCJ9LHtcIm5hbWVcIjpcIkNheW1hbiBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIktZXCJ9LHtcIm5hbWVcIjpcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDRlwifSx7XCJuYW1lXCI6XCJDaGFkXCIsXCJhYmJyZXZpYXRpb25cIjpcIlREXCJ9LHtcIm5hbWVcIjpcIkNoaWxlXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNMXCJ9LHtcIm5hbWVcIjpcIkNoaW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNOXCJ9LHtcIm5hbWVcIjpcIkNocmlzdG1hcyBJc2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiQ1hcIn0se1wibmFtZVwiOlwiQ29jb3MgW0tlZWxpbmddIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiQ0NcIn0se1wibmFtZVwiOlwiQ29sb21iaWFcIixcImFiYnJldmlhdGlvblwiOlwiQ09cIn0se1wibmFtZVwiOlwiQ29tb3Jvc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJLTVwifSx7XCJuYW1lXCI6XCJDb25nbyAtIEJyYXp6YXZpbGxlXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNHXCJ9LHtcIm5hbWVcIjpcIkNvbmdvIC0gS2luc2hhc2FcIixcImFiYnJldmlhdGlvblwiOlwiQ0RcIn0se1wibmFtZVwiOlwiQ29vayBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNLXCJ9LHtcIm5hbWVcIjpcIkNvc3RhIFJpY2FcIixcImFiYnJldmlhdGlvblwiOlwiQ1JcIn0se1wibmFtZVwiOlwiQ3JvYXRpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIUlwifSx7XCJuYW1lXCI6XCJDdWJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNVXCJ9LHtcIm5hbWVcIjpcIkN5cHJ1c1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDWVwifSx7XCJuYW1lXCI6XCJDemVjaCBSZXB1YmxpY1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDWlwifSx7XCJuYW1lXCI6XCJDw7R0ZSBk4oCZSXZvaXJlXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNJXCJ9LHtcIm5hbWVcIjpcIkRlbm1hcmtcIixcImFiYnJldmlhdGlvblwiOlwiREtcIn0se1wibmFtZVwiOlwiRGppYm91dGlcIixcImFiYnJldmlhdGlvblwiOlwiREpcIn0se1wibmFtZVwiOlwiRG9taW5pY2FcIixcImFiYnJldmlhdGlvblwiOlwiRE1cIn0se1wibmFtZVwiOlwiRG9taW5pY2FuIFJlcHVibGljXCIsXCJhYmJyZXZpYXRpb25cIjpcIkRPXCJ9LHtcIm5hbWVcIjpcIkRyb25uaW5nIE1hdWQgTGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJOUVwifSx7XCJuYW1lXCI6XCJFYXN0IEdlcm1hbnlcIixcImFiYnJldmlhdGlvblwiOlwiRERcIn0se1wibmFtZVwiOlwiRWN1YWRvclwiLFwiYWJicmV2aWF0aW9uXCI6XCJFQ1wifSx7XCJuYW1lXCI6XCJFZ3lwdFwiLFwiYWJicmV2aWF0aW9uXCI6XCJFR1wifSx7XCJuYW1lXCI6XCJFbCBTYWx2YWRvclwiLFwiYWJicmV2aWF0aW9uXCI6XCJTVlwifSx7XCJuYW1lXCI6XCJFcXVhdG9yaWFsIEd1aW5lYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHUVwifSx7XCJuYW1lXCI6XCJFcml0cmVhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVSXCJ9LHtcIm5hbWVcIjpcIkVzdG9uaWFcIixcImFiYnJldmlhdGlvblwiOlwiRUVcIn0se1wibmFtZVwiOlwiRXRoaW9waWFcIixcImFiYnJldmlhdGlvblwiOlwiRVRcIn0se1wibmFtZVwiOlwiRmFsa2xhbmQgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJGS1wifSx7XCJuYW1lXCI6XCJGYXJvZSBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZPXCJ9LHtcIm5hbWVcIjpcIkZpamlcIixcImFiYnJldmlhdGlvblwiOlwiRkpcIn0se1wibmFtZVwiOlwiRmlubGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJGSVwifSx7XCJuYW1lXCI6XCJGcmFuY2VcIixcImFiYnJldmlhdGlvblwiOlwiRlJcIn0se1wibmFtZVwiOlwiRnJlbmNoIEd1aWFuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHRlwifSx7XCJuYW1lXCI6XCJGcmVuY2ggUG9seW5lc2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBGXCJ9LHtcIm5hbWVcIjpcIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJURlwifSx7XCJuYW1lXCI6XCJGcmVuY2ggU291dGhlcm4gYW5kIEFudGFyY3RpYyBUZXJyaXRvcmllc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJGUVwifSx7XCJuYW1lXCI6XCJHYWJvblwiLFwiYWJicmV2aWF0aW9uXCI6XCJHQVwifSx7XCJuYW1lXCI6XCJHYW1iaWFcIixcImFiYnJldmlhdGlvblwiOlwiR01cIn0se1wibmFtZVwiOlwiR2VvcmdpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHRVwifSx7XCJuYW1lXCI6XCJHZXJtYW55XCIsXCJhYmJyZXZpYXRpb25cIjpcIkRFXCJ9LHtcIm5hbWVcIjpcIkdoYW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdIXCJ9LHtcIm5hbWVcIjpcIkdpYnJhbHRhclwiLFwiYWJicmV2aWF0aW9uXCI6XCJHSVwifSx7XCJuYW1lXCI6XCJHcmVlY2VcIixcImFiYnJldmlhdGlvblwiOlwiR1JcIn0se1wibmFtZVwiOlwiR3JlZW5sYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdMXCJ9LHtcIm5hbWVcIjpcIkdyZW5hZGFcIixcImFiYnJldmlhdGlvblwiOlwiR0RcIn0se1wibmFtZVwiOlwiR3VhZGVsb3VwZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHUFwifSx7XCJuYW1lXCI6XCJHdWFtXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdVXCJ9LHtcIm5hbWVcIjpcIkd1YXRlbWFsYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHVFwifSx7XCJuYW1lXCI6XCJHdWVybnNleVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHR1wifSx7XCJuYW1lXCI6XCJHdWluZWFcIixcImFiYnJldmlhdGlvblwiOlwiR05cIn0se1wibmFtZVwiOlwiR3VpbmVhLUJpc3NhdVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHV1wifSx7XCJuYW1lXCI6XCJHdXlhbmFcIixcImFiYnJldmlhdGlvblwiOlwiR1lcIn0se1wibmFtZVwiOlwiSGFpdGlcIixcImFiYnJldmlhdGlvblwiOlwiSFRcIn0se1wibmFtZVwiOlwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkhNXCJ9LHtcIm5hbWVcIjpcIkhvbmR1cmFzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkhOXCJ9LHtcIm5hbWVcIjpcIkhvbmcgS29uZyBTQVIgQ2hpbmFcIixcImFiYnJldmlhdGlvblwiOlwiSEtcIn0se1wibmFtZVwiOlwiSHVuZ2FyeVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIVVwifSx7XCJuYW1lXCI6XCJJY2VsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIklTXCJ9LHtcIm5hbWVcIjpcIkluZGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIklOXCJ9LHtcIm5hbWVcIjpcIkluZG9uZXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJRFwifSx7XCJuYW1lXCI6XCJJcmFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIklSXCJ9LHtcIm5hbWVcIjpcIklyYXFcIixcImFiYnJldmlhdGlvblwiOlwiSVFcIn0se1wibmFtZVwiOlwiSXJlbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJJRVwifSx7XCJuYW1lXCI6XCJJc2xlIG9mIE1hblwiLFwiYWJicmV2aWF0aW9uXCI6XCJJTVwifSx7XCJuYW1lXCI6XCJJc3JhZWxcIixcImFiYnJldmlhdGlvblwiOlwiSUxcIn0se1wibmFtZVwiOlwiSXRhbHlcIixcImFiYnJldmlhdGlvblwiOlwiSVRcIn0se1wibmFtZVwiOlwiSmFtYWljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJKTVwifSx7XCJuYW1lXCI6XCJKYXBhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJKUFwifSx7XCJuYW1lXCI6XCJKZXJzZXlcIixcImFiYnJldmlhdGlvblwiOlwiSkVcIn0se1wibmFtZVwiOlwiSm9obnN0b24gSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpUXCJ9LHtcIm5hbWVcIjpcIkpvcmRhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJKT1wifSx7XCJuYW1lXCI6XCJLYXpha2hzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIktaXCJ9LHtcIm5hbWVcIjpcIktlbnlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIktFXCJ9LHtcIm5hbWVcIjpcIktpcmliYXRpXCIsXCJhYmJyZXZpYXRpb25cIjpcIktJXCJ9LHtcIm5hbWVcIjpcIkt1d2FpdFwiLFwiYWJicmV2aWF0aW9uXCI6XCJLV1wifSx7XCJuYW1lXCI6XCJLeXJneXpzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIktHXCJ9LHtcIm5hbWVcIjpcIkxhb3NcIixcImFiYnJldmlhdGlvblwiOlwiTEFcIn0se1wibmFtZVwiOlwiTGF0dmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxWXCJ9LHtcIm5hbWVcIjpcIkxlYmFub25cIixcImFiYnJldmlhdGlvblwiOlwiTEJcIn0se1wibmFtZVwiOlwiTGVzb3Rob1wiLFwiYWJicmV2aWF0aW9uXCI6XCJMU1wifSx7XCJuYW1lXCI6XCJMaWJlcmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxSXCJ9LHtcIm5hbWVcIjpcIkxpYnlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxZXCJ9LHtcIm5hbWVcIjpcIkxpZWNodGVuc3RlaW5cIixcImFiYnJldmlhdGlvblwiOlwiTElcIn0se1wibmFtZVwiOlwiTGl0aHVhbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxUXCJ9LHtcIm5hbWVcIjpcIkx1eGVtYm91cmdcIixcImFiYnJldmlhdGlvblwiOlwiTFVcIn0se1wibmFtZVwiOlwiTWFjYXUgU0FSIENoaW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1PXCJ9LHtcIm5hbWVcIjpcIk1hY2Vkb25pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNS1wifSx7XCJuYW1lXCI6XCJNYWRhZ2FzY2FyXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1HXCJ9LHtcIm5hbWVcIjpcIk1hbGF3aVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNV1wifSx7XCJuYW1lXCI6XCJNYWxheXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNWVwifSx7XCJuYW1lXCI6XCJNYWxkaXZlc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNVlwifSx7XCJuYW1lXCI6XCJNYWxpXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1MXCJ9LHtcIm5hbWVcIjpcIk1hbHRhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1UXCJ9LHtcIm5hbWVcIjpcIk1hcnNoYWxsIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiTUhcIn0se1wibmFtZVwiOlwiTWFydGluaXF1ZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNUVwifSx7XCJuYW1lXCI6XCJNYXVyaXRhbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1SXCJ9LHtcIm5hbWVcIjpcIk1hdXJpdGl1c1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNVVwifSx7XCJuYW1lXCI6XCJNYXlvdHRlXCIsXCJhYmJyZXZpYXRpb25cIjpcIllUXCJ9LHtcIm5hbWVcIjpcIk1ldHJvcG9saXRhbiBGcmFuY2VcIixcImFiYnJldmlhdGlvblwiOlwiRlhcIn0se1wibmFtZVwiOlwiTWV4aWNvXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1YXCJ9LHtcIm5hbWVcIjpcIk1pY3JvbmVzaWFcIixcImFiYnJldmlhdGlvblwiOlwiRk1cIn0se1wibmFtZVwiOlwiTWlkd2F5IElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiTUlcIn0se1wibmFtZVwiOlwiTW9sZG92YVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNRFwifSx7XCJuYW1lXCI6XCJNb25hY29cIixcImFiYnJldmlhdGlvblwiOlwiTUNcIn0se1wibmFtZVwiOlwiTW9uZ29saWFcIixcImFiYnJldmlhdGlvblwiOlwiTU5cIn0se1wibmFtZVwiOlwiTW9udGVuZWdyb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNRVwifSx7XCJuYW1lXCI6XCJNb250c2VycmF0XCIsXCJhYmJyZXZpYXRpb25cIjpcIk1TXCJ9LHtcIm5hbWVcIjpcIk1vcm9jY29cIixcImFiYnJldmlhdGlvblwiOlwiTUFcIn0se1wibmFtZVwiOlwiTW96YW1iaXF1ZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNWlwifSx7XCJuYW1lXCI6XCJNeWFubWFyIFtCdXJtYV1cIixcImFiYnJldmlhdGlvblwiOlwiTU1cIn0se1wibmFtZVwiOlwiTmFtaWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOQVwifSx7XCJuYW1lXCI6XCJOYXVydVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOUlwifSx7XCJuYW1lXCI6XCJOZXBhbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJOUFwifSx7XCJuYW1lXCI6XCJOZXRoZXJsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJOTFwifSx7XCJuYW1lXCI6XCJOZXRoZXJsYW5kcyBBbnRpbGxlc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJBTlwifSx7XCJuYW1lXCI6XCJOZXV0cmFsIFpvbmVcIixcImFiYnJldmlhdGlvblwiOlwiTlRcIn0se1wibmFtZVwiOlwiTmV3IENhbGVkb25pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOQ1wifSx7XCJuYW1lXCI6XCJOZXcgWmVhbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJOWlwifSx7XCJuYW1lXCI6XCJOaWNhcmFndWFcIixcImFiYnJldmlhdGlvblwiOlwiTklcIn0se1wibmFtZVwiOlwiTmlnZXJcIixcImFiYnJldmlhdGlvblwiOlwiTkVcIn0se1wibmFtZVwiOlwiTmlnZXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOR1wifSx7XCJuYW1lXCI6XCJOaXVlXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5VXCJ9LHtcIm5hbWVcIjpcIk5vcmZvbGsgSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5GXCJ9LHtcIm5hbWVcIjpcIk5vcnRoIEtvcmVhXCIsXCJhYmJyZXZpYXRpb25cIjpcIktQXCJ9LHtcIm5hbWVcIjpcIk5vcnRoIFZpZXRuYW1cIixcImFiYnJldmlhdGlvblwiOlwiVkRcIn0se1wibmFtZVwiOlwiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1QXCJ9LHtcIm5hbWVcIjpcIk5vcndheVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOT1wifSx7XCJuYW1lXCI6XCJPbWFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIk9NXCJ9LHtcIm5hbWVcIjpcIlBhY2lmaWMgSXNsYW5kcyBUcnVzdCBUZXJyaXRvcnlcIixcImFiYnJldmlhdGlvblwiOlwiUENcIn0se1wibmFtZVwiOlwiUGFraXN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiUEtcIn0se1wibmFtZVwiOlwiUGFsYXVcIixcImFiYnJldmlhdGlvblwiOlwiUFdcIn0se1wibmFtZVwiOlwiUGFsZXN0aW5pYW4gVGVycml0b3JpZXNcIixcImFiYnJldmlhdGlvblwiOlwiUFNcIn0se1wibmFtZVwiOlwiUGFuYW1hXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBBXCJ9LHtcIm5hbWVcIjpcIlBhbmFtYSBDYW5hbCBab25lXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBaXCJ9LHtcIm5hbWVcIjpcIlBhcHVhIE5ldyBHdWluZWFcIixcImFiYnJldmlhdGlvblwiOlwiUEdcIn0se1wibmFtZVwiOlwiUGFyYWd1YXlcIixcImFiYnJldmlhdGlvblwiOlwiUFlcIn0se1wibmFtZVwiOlwiUGVvcGxlJ3MgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiBZZW1lblwiLFwiYWJicmV2aWF0aW9uXCI6XCJZRFwifSx7XCJuYW1lXCI6XCJQZXJ1XCIsXCJhYmJyZXZpYXRpb25cIjpcIlBFXCJ9LHtcIm5hbWVcIjpcIlBoaWxpcHBpbmVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBIXCJ9LHtcIm5hbWVcIjpcIlBpdGNhaXJuIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiUE5cIn0se1wibmFtZVwiOlwiUG9sYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBMXCJ9LHtcIm5hbWVcIjpcIlBvcnR1Z2FsXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBUXCJ9LHtcIm5hbWVcIjpcIlB1ZXJ0byBSaWNvXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBSXCJ9LHtcIm5hbWVcIjpcIlFhdGFyXCIsXCJhYmJyZXZpYXRpb25cIjpcIlFBXCJ9LHtcIm5hbWVcIjpcIlJvbWFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiUk9cIn0se1wibmFtZVwiOlwiUnVzc2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJVXCJ9LHtcIm5hbWVcIjpcIlJ3YW5kYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJSV1wifSx7XCJuYW1lXCI6XCJSw6l1bmlvblwiLFwiYWJicmV2aWF0aW9uXCI6XCJSRVwifSx7XCJuYW1lXCI6XCJTYWludCBCYXJ0aMOpbGVteVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCTFwifSx7XCJuYW1lXCI6XCJTYWludCBIZWxlbmFcIixcImFiYnJldmlhdGlvblwiOlwiU0hcIn0se1wibmFtZVwiOlwiU2FpbnQgS2l0dHMgYW5kIE5ldmlzXCIsXCJhYmJyZXZpYXRpb25cIjpcIktOXCJ9LHtcIm5hbWVcIjpcIlNhaW50IEx1Y2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxDXCJ9LHtcIm5hbWVcIjpcIlNhaW50IE1hcnRpblwiLFwiYWJicmV2aWF0aW9uXCI6XCJNRlwifSx7XCJuYW1lXCI6XCJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBNXCJ9LHtcIm5hbWVcIjpcIlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlZDXCJ9LHtcIm5hbWVcIjpcIlNhbW9hXCIsXCJhYmJyZXZpYXRpb25cIjpcIldTXCJ9LHtcIm5hbWVcIjpcIlNhbiBNYXJpbm9cIixcImFiYnJldmlhdGlvblwiOlwiU01cIn0se1wibmFtZVwiOlwiU2F1ZGkgQXJhYmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNBXCJ9LHtcIm5hbWVcIjpcIlNlbmVnYWxcIixcImFiYnJldmlhdGlvblwiOlwiU05cIn0se1wibmFtZVwiOlwiU2VyYmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJTXCJ9LHtcIm5hbWVcIjpcIlNlcmJpYSBhbmQgTW9udGVuZWdyb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDU1wifSx7XCJuYW1lXCI6XCJTZXljaGVsbGVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNDXCJ9LHtcIm5hbWVcIjpcIlNpZXJyYSBMZW9uZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTTFwifSx7XCJuYW1lXCI6XCJTaW5nYXBvcmVcIixcImFiYnJldmlhdGlvblwiOlwiU0dcIn0se1wibmFtZVwiOlwiU2xvdmFraWFcIixcImFiYnJldmlhdGlvblwiOlwiU0tcIn0se1wibmFtZVwiOlwiU2xvdmVuaWFcIixcImFiYnJldmlhdGlvblwiOlwiU0lcIn0se1wibmFtZVwiOlwiU29sb21vbiBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNCXCJ9LHtcIm5hbWVcIjpcIlNvbWFsaWFcIixcImFiYnJldmlhdGlvblwiOlwiU09cIn0se1wibmFtZVwiOlwiU291dGggQWZyaWNhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlpBXCJ9LHtcIm5hbWVcIjpcIlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdTXCJ9LHtcIm5hbWVcIjpcIlNvdXRoIEtvcmVhXCIsXCJhYmJyZXZpYXRpb25cIjpcIktSXCJ9LHtcIm5hbWVcIjpcIlNwYWluXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVTXCJ9LHtcIm5hbWVcIjpcIlNyaSBMYW5rYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJMS1wifSx7XCJuYW1lXCI6XCJTdWRhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJTRFwifSx7XCJuYW1lXCI6XCJTdXJpbmFtZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTUlwifSx7XCJuYW1lXCI6XCJTdmFsYmFyZCBhbmQgSmFuIE1heWVuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNKXCJ9LHtcIm5hbWVcIjpcIlN3YXppbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJTWlwifSx7XCJuYW1lXCI6XCJTd2VkZW5cIixcImFiYnJldmlhdGlvblwiOlwiU0VcIn0se1wibmFtZVwiOlwiU3dpdHplcmxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiQ0hcIn0se1wibmFtZVwiOlwiU3lyaWFcIixcImFiYnJldmlhdGlvblwiOlwiU1lcIn0se1wibmFtZVwiOlwiU8OjbyBUb23DqSBhbmQgUHLDrW5jaXBlXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNUXCJ9LHtcIm5hbWVcIjpcIlRhaXdhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJUV1wifSx7XCJuYW1lXCI6XCJUYWppa2lzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRKXCJ9LHtcIm5hbWVcIjpcIlRhbnphbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRaXCJ9LHtcIm5hbWVcIjpcIlRoYWlsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRIXCJ9LHtcIm5hbWVcIjpcIlRpbW9yLUxlc3RlXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRMXCJ9LHtcIm5hbWVcIjpcIlRvZ29cIixcImFiYnJldmlhdGlvblwiOlwiVEdcIn0se1wibmFtZVwiOlwiVG9rZWxhdVwiLFwiYWJicmV2aWF0aW9uXCI6XCJUS1wifSx7XCJuYW1lXCI6XCJUb25nYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJUT1wifSx7XCJuYW1lXCI6XCJUcmluaWRhZCBhbmQgVG9iYWdvXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRUXCJ9LHtcIm5hbWVcIjpcIlR1bmlzaWFcIixcImFiYnJldmlhdGlvblwiOlwiVE5cIn0se1wibmFtZVwiOlwiVHVya2V5XCIsXCJhYmJyZXZpYXRpb25cIjpcIlRSXCJ9LHtcIm5hbWVcIjpcIlR1cmttZW5pc3RhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJUTVwifSx7XCJuYW1lXCI6XCJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiVENcIn0se1wibmFtZVwiOlwiVHV2YWx1XCIsXCJhYmJyZXZpYXRpb25cIjpcIlRWXCJ9LHtcIm5hbWVcIjpcIlUuUy4gTWlub3IgT3V0bHlpbmcgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJVTVwifSx7XCJuYW1lXCI6XCJVLlMuIE1pc2NlbGxhbmVvdXMgUGFjaWZpYyBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlBVXCJ9LHtcIm5hbWVcIjpcIlUuUy4gVmlyZ2luIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiVklcIn0se1wibmFtZVwiOlwiVWdhbmRhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVHXCJ9LHtcIm5hbWVcIjpcIlVrcmFpbmVcIixcImFiYnJldmlhdGlvblwiOlwiVUFcIn0se1wibmFtZVwiOlwiVW5pb24gb2YgU292aWV0IFNvY2lhbGlzdCBSZXB1YmxpY3NcIixcImFiYnJldmlhdGlvblwiOlwiU1VcIn0se1wibmFtZVwiOlwiVW5pdGVkIEFyYWIgRW1pcmF0ZXNcIixcImFiYnJldmlhdGlvblwiOlwiQUVcIn0se1wibmFtZVwiOlwiVW5pdGVkIEtpbmdkb21cIixcImFiYnJldmlhdGlvblwiOlwiR0JcIn0se1wibmFtZVwiOlwiVW5pdGVkIFN0YXRlc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJVU1wifSx7XCJuYW1lXCI6XCJVbmtub3duIG9yIEludmFsaWQgUmVnaW9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIlpaXCJ9LHtcIm5hbWVcIjpcIlVydWd1YXlcIixcImFiYnJldmlhdGlvblwiOlwiVVlcIn0se1wibmFtZVwiOlwiVXpiZWtpc3RhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJVWlwifSx7XCJuYW1lXCI6XCJWYW51YXR1XCIsXCJhYmJyZXZpYXRpb25cIjpcIlZVXCJ9LHtcIm5hbWVcIjpcIlZhdGljYW4gQ2l0eVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWQVwifSx7XCJuYW1lXCI6XCJWZW5lenVlbGFcIixcImFiYnJldmlhdGlvblwiOlwiVkVcIn0se1wibmFtZVwiOlwiVmlldG5hbVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWTlwifSx7XCJuYW1lXCI6XCJXYWtlIElzbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJXS1wifSx7XCJuYW1lXCI6XCJXYWxsaXMgYW5kIEZ1dHVuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJXRlwifSx7XCJuYW1lXCI6XCJXZXN0ZXJuIFNhaGFyYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJFSFwifSx7XCJuYW1lXCI6XCJZZW1lblwiLFwiYWJicmV2aWF0aW9uXCI6XCJZRVwifSx7XCJuYW1lXCI6XCJaYW1iaWFcIixcImFiYnJldmlhdGlvblwiOlwiWk1cIn0se1wibmFtZVwiOlwiWmltYmFid2VcIixcImFiYnJldmlhdGlvblwiOlwiWldcIn0se1wibmFtZVwiOlwiw4VsYW5kIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiQVhcIn1dLFxuXG4gICAgICAgIHByb3ZpbmNlczogW1xuICAgICAgICAgICAge25hbWU6ICdBbGJlcnRhJywgYWJicmV2aWF0aW9uOiAnQUInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQnJpdGlzaCBDb2x1bWJpYScsIGFiYnJldmlhdGlvbjogJ0JDJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hbml0b2JhJywgYWJicmV2aWF0aW9uOiAnTUInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3IEJydW5zd2ljaycsIGFiYnJldmlhdGlvbjogJ05CJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3InLCBhYmJyZXZpYXRpb246ICdOTCd9LFxuICAgICAgICAgICAge25hbWU6ICdOb3ZhIFNjb3RpYScsIGFiYnJldmlhdGlvbjogJ05TJ30sXG4gICAgICAgICAgICB7bmFtZTogJ09udGFyaW8nLCBhYmJyZXZpYXRpb246ICdPTid9LFxuICAgICAgICAgICAge25hbWU6ICdQcmluY2UgRWR3YXJkIElzbGFuZCcsIGFiYnJldmlhdGlvbjogJ1BFJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1F1ZWJlYycsIGFiYnJldmlhdGlvbjogJ1FDJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Nhc2thdGNoZXdhbicsIGFiYnJldmlhdGlvbjogJ1NLJ30sXG5cbiAgICAgICAgICAgIC8vIFRoZSBjYXNlIGNvdWxkIGJlIG1hZGUgdGhhdCB0aGUgZm9sbG93aW5nIGFyZSBub3QgYWN0dWFsbHkgcHJvdmluY2VzXG4gICAgICAgICAgICAvLyBzaW5jZSB0aGV5IGFyZSB0ZWNobmljYWxseSBjb25zaWRlcmVkIFwidGVycml0b3JpZXNcIiBob3dldmVyIHRoZXkgYWxsXG4gICAgICAgICAgICAvLyBsb29rIHRoZSBzYW1lIG9uIGFuIGVudmVsb3BlIVxuICAgICAgICAgICAge25hbWU6ICdOb3J0aHdlc3QgVGVycml0b3JpZXMnLCBhYmJyZXZpYXRpb246ICdOVCd9LFxuICAgICAgICAgICAge25hbWU6ICdOdW5hdnV0JywgYWJicmV2aWF0aW9uOiAnTlUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnWXVrb24nLCBhYmJyZXZpYXRpb246ICdZVCd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgdXNfc3RhdGVzX2FuZF9kYzogW1xuICAgICAgICAgICAge25hbWU6ICdBbGFiYW1hJywgYWJicmV2aWF0aW9uOiAnQUwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQWxhc2thJywgYWJicmV2aWF0aW9uOiAnQUsnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXJpem9uYScsIGFiYnJldmlhdGlvbjogJ0FaJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0Fya2Fuc2FzJywgYWJicmV2aWF0aW9uOiAnQVInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ2FsaWZvcm5pYScsIGFiYnJldmlhdGlvbjogJ0NBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0NvbG9yYWRvJywgYWJicmV2aWF0aW9uOiAnQ08nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ29ubmVjdGljdXQnLCBhYmJyZXZpYXRpb246ICdDVCd9LFxuICAgICAgICAgICAge25hbWU6ICdEZWxhd2FyZScsIGFiYnJldmlhdGlvbjogJ0RFJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0Rpc3RyaWN0IG9mIENvbHVtYmlhJywgYWJicmV2aWF0aW9uOiAnREMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRmxvcmlkYScsIGFiYnJldmlhdGlvbjogJ0ZMJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0dlb3JnaWEnLCBhYmJyZXZpYXRpb246ICdHQSd9LFxuICAgICAgICAgICAge25hbWU6ICdIYXdhaWknLCBhYmJyZXZpYXRpb246ICdISSd9LFxuICAgICAgICAgICAge25hbWU6ICdJZGFobycsIGFiYnJldmlhdGlvbjogJ0lEJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0lsbGlub2lzJywgYWJicmV2aWF0aW9uOiAnSUwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSW5kaWFuYScsIGFiYnJldmlhdGlvbjogJ0lOJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0lvd2EnLCBhYmJyZXZpYXRpb246ICdJQSd9LFxuICAgICAgICAgICAge25hbWU6ICdLYW5zYXMnLCBhYmJyZXZpYXRpb246ICdLUyd9LFxuICAgICAgICAgICAge25hbWU6ICdLZW50dWNreScsIGFiYnJldmlhdGlvbjogJ0tZJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0xvdWlzaWFuYScsIGFiYnJldmlhdGlvbjogJ0xBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01haW5lJywgYWJicmV2aWF0aW9uOiAnTUUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFyeWxhbmQnLCBhYmJyZXZpYXRpb246ICdNRCd9LFxuICAgICAgICAgICAge25hbWU6ICdNYXNzYWNodXNldHRzJywgYWJicmV2aWF0aW9uOiAnTUEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWljaGlnYW4nLCBhYmJyZXZpYXRpb246ICdNSSd9LFxuICAgICAgICAgICAge25hbWU6ICdNaW5uZXNvdGEnLCBhYmJyZXZpYXRpb246ICdNTid9LFxuICAgICAgICAgICAge25hbWU6ICdNaXNzaXNzaXBwaScsIGFiYnJldmlhdGlvbjogJ01TJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pc3NvdXJpJywgYWJicmV2aWF0aW9uOiAnTU8nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTW9udGFuYScsIGFiYnJldmlhdGlvbjogJ01UJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05lYnJhc2thJywgYWJicmV2aWF0aW9uOiAnTkUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV2YWRhJywgYWJicmV2aWF0aW9uOiAnTlYnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3IEhhbXBzaGlyZScsIGFiYnJldmlhdGlvbjogJ05IJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05ldyBKZXJzZXknLCBhYmJyZXZpYXRpb246ICdOSid9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgTWV4aWNvJywgYWJicmV2aWF0aW9uOiAnTk0nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3IFlvcmsnLCBhYmJyZXZpYXRpb246ICdOWSd9LFxuICAgICAgICAgICAge25hbWU6ICdOb3J0aCBDYXJvbGluYScsIGFiYnJldmlhdGlvbjogJ05DJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRoIERha290YScsIGFiYnJldmlhdGlvbjogJ05EJ30sXG4gICAgICAgICAgICB7bmFtZTogJ09oaW8nLCBhYmJyZXZpYXRpb246ICdPSCd9LFxuICAgICAgICAgICAge25hbWU6ICdPa2xhaG9tYScsIGFiYnJldmlhdGlvbjogJ09LJ30sXG4gICAgICAgICAgICB7bmFtZTogJ09yZWdvbicsIGFiYnJldmlhdGlvbjogJ09SJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Blbm5zeWx2YW5pYScsIGFiYnJldmlhdGlvbjogJ1BBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Job2RlIElzbGFuZCcsIGFiYnJldmlhdGlvbjogJ1JJJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1NvdXRoIENhcm9saW5hJywgYWJicmV2aWF0aW9uOiAnU0MnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU291dGggRGFrb3RhJywgYWJicmV2aWF0aW9uOiAnU0QnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVGVubmVzc2VlJywgYWJicmV2aWF0aW9uOiAnVE4nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVGV4YXMnLCBhYmJyZXZpYXRpb246ICdUWCd9LFxuICAgICAgICAgICAge25hbWU6ICdVdGFoJywgYWJicmV2aWF0aW9uOiAnVVQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmVybW9udCcsIGFiYnJldmlhdGlvbjogJ1ZUJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1ZpcmdpbmlhJywgYWJicmV2aWF0aW9uOiAnVkEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnV2FzaGluZ3RvbicsIGFiYnJldmlhdGlvbjogJ1dBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1dlc3QgVmlyZ2luaWEnLCBhYmJyZXZpYXRpb246ICdXVid9LFxuICAgICAgICAgICAge25hbWU6ICdXaXNjb25zaW4nLCBhYmJyZXZpYXRpb246ICdXSSd9LFxuICAgICAgICAgICAge25hbWU6ICdXeW9taW5nJywgYWJicmV2aWF0aW9uOiAnV1knfVxuICAgICAgICBdLFxuXG4gICAgICAgIHRlcnJpdG9yaWVzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FtZXJpY2FuIFNhbW9hJywgYWJicmV2aWF0aW9uOiAnQVMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRmVkZXJhdGVkIFN0YXRlcyBvZiBNaWNyb25lc2lhJywgYWJicmV2aWF0aW9uOiAnRk0nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnR3VhbScsIGFiYnJldmlhdGlvbjogJ0dVJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hcnNoYWxsIElzbGFuZHMnLCBhYmJyZXZpYXRpb246ICdNSCd9LFxuICAgICAgICAgICAge25hbWU6ICdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnLCBhYmJyZXZpYXRpb246ICdNUCd9LFxuICAgICAgICAgICAge25hbWU6ICdQdWVydG8gUmljbycsIGFiYnJldmlhdGlvbjogJ1BSJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1ZpcmdpbiBJc2xhbmRzLCBVLlMuJywgYWJicmV2aWF0aW9uOiAnVkknfVxuICAgICAgICBdLFxuXG4gICAgICAgIGFybWVkX2ZvcmNlczogW1xuICAgICAgICAgICAge25hbWU6ICdBcm1lZCBGb3JjZXMgRXVyb3BlJywgYWJicmV2aWF0aW9uOiAnQUUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXJtZWQgRm9yY2VzIFBhY2lmaWMnLCBhYmJyZXZpYXRpb246ICdBUCd9LFxuICAgICAgICAgICAge25hbWU6ICdBcm1lZCBGb3JjZXMgdGhlIEFtZXJpY2FzJywgYWJicmV2aWF0aW9uOiAnQUEnfVxuICAgICAgICBdLFxuXG4gICAgICAgIHN0cmVldF9zdWZmaXhlczogW1xuICAgICAgICAgICAge25hbWU6ICdBdmVudWUnLCBhYmJyZXZpYXRpb246ICdBdmUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQm91bGV2YXJkJywgYWJicmV2aWF0aW9uOiAnQmx2ZCd9LFxuICAgICAgICAgICAge25hbWU6ICdDZW50ZXInLCBhYmJyZXZpYXRpb246ICdDdHInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ2lyY2xlJywgYWJicmV2aWF0aW9uOiAnQ2lyJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0NvdXJ0JywgYWJicmV2aWF0aW9uOiAnQ3QnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRHJpdmUnLCBhYmJyZXZpYXRpb246ICdEcid9LFxuICAgICAgICAgICAge25hbWU6ICdFeHRlbnNpb24nLCBhYmJyZXZpYXRpb246ICdFeHQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnR2xlbicsIGFiYnJldmlhdGlvbjogJ0dsbid9LFxuICAgICAgICAgICAge25hbWU6ICdHcm92ZScsIGFiYnJldmlhdGlvbjogJ0dydid9LFxuICAgICAgICAgICAge25hbWU6ICdIZWlnaHRzJywgYWJicmV2aWF0aW9uOiAnSHRzJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0hpZ2h3YXknLCBhYmJyZXZpYXRpb246ICdId3knfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSnVuY3Rpb24nLCBhYmJyZXZpYXRpb246ICdKY3QnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnS2V5JywgYWJicmV2aWF0aW9uOiAnS2V5J30sXG4gICAgICAgICAgICB7bmFtZTogJ0xhbmUnLCBhYmJyZXZpYXRpb246ICdMbid9LFxuICAgICAgICAgICAge25hbWU6ICdMb29wJywgYWJicmV2aWF0aW9uOiAnTG9vcCd9LFxuICAgICAgICAgICAge25hbWU6ICdNYW5vcicsIGFiYnJldmlhdGlvbjogJ01ucid9LFxuICAgICAgICAgICAge25hbWU6ICdNaWxsJywgYWJicmV2aWF0aW9uOiAnTWlsbCd9LFxuICAgICAgICAgICAge25hbWU6ICdQYXJrJywgYWJicmV2aWF0aW9uOiAnUGFyayd9LFxuICAgICAgICAgICAge25hbWU6ICdQYXJrd2F5JywgYWJicmV2aWF0aW9uOiAnUGt3eSd9LFxuICAgICAgICAgICAge25hbWU6ICdQYXNzJywgYWJicmV2aWF0aW9uOiAnUGFzcyd9LFxuICAgICAgICAgICAge25hbWU6ICdQYXRoJywgYWJicmV2aWF0aW9uOiAnUGF0aCd9LFxuICAgICAgICAgICAge25hbWU6ICdQaWtlJywgYWJicmV2aWF0aW9uOiAnUGlrZSd9LFxuICAgICAgICAgICAge25hbWU6ICdQbGFjZScsIGFiYnJldmlhdGlvbjogJ1BsJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BsYXphJywgYWJicmV2aWF0aW9uOiAnUGx6J30sXG4gICAgICAgICAgICB7bmFtZTogJ1BvaW50JywgYWJicmV2aWF0aW9uOiAnUHQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUmlkZ2UnLCBhYmJyZXZpYXRpb246ICdSZGcnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUml2ZXInLCBhYmJyZXZpYXRpb246ICdSaXYnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUm9hZCcsIGFiYnJldmlhdGlvbjogJ1JkJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1NxdWFyZScsIGFiYnJldmlhdGlvbjogJ1NxJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1N0cmVldCcsIGFiYnJldmlhdGlvbjogJ1N0J30sXG4gICAgICAgICAgICB7bmFtZTogJ1RlcnJhY2UnLCBhYmJyZXZpYXRpb246ICdUZXInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVHJhaWwnLCBhYmJyZXZpYXRpb246ICdUcmwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVHVybnBpa2UnLCBhYmJyZXZpYXRpb246ICdUcGtlJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1ZpZXcnLCBhYmJyZXZpYXRpb246ICdWdyd9LFxuICAgICAgICAgICAge25hbWU6ICdXYXknLCBhYmJyZXZpYXRpb246ICdXYXknfVxuICAgICAgICBdLFxuXG4gICAgICAgIG1vbnRoczogW1xuICAgICAgICAgICAge25hbWU6ICdKYW51YXJ5Jywgc2hvcnRfbmFtZTogJ0phbicsIG51bWVyaWM6ICcwMScsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIC8vIE5vdCBtZXNzaW5nIHdpdGggbGVhcCB5ZWFycy4uLlxuICAgICAgICAgICAge25hbWU6ICdGZWJydWFyeScsIHNob3J0X25hbWU6ICdGZWInLCBudW1lcmljOiAnMDInLCBkYXlzOiAyOH0sXG4gICAgICAgICAgICB7bmFtZTogJ01hcmNoJywgc2hvcnRfbmFtZTogJ01hcicsIG51bWVyaWM6ICcwMycsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXByaWwnLCBzaG9ydF9uYW1lOiAnQXByJywgbnVtZXJpYzogJzA0JywgZGF5czogMzB9LFxuICAgICAgICAgICAge25hbWU6ICdNYXknLCBzaG9ydF9uYW1lOiAnTWF5JywgbnVtZXJpYzogJzA1JywgZGF5czogMzF9LFxuICAgICAgICAgICAge25hbWU6ICdKdW5lJywgc2hvcnRfbmFtZTogJ0p1bicsIG51bWVyaWM6ICcwNicsIGRheXM6IDMwfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSnVseScsIHNob3J0X25hbWU6ICdKdWwnLCBudW1lcmljOiAnMDcnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ0F1Z3VzdCcsIHNob3J0X25hbWU6ICdBdWcnLCBudW1lcmljOiAnMDgnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ1NlcHRlbWJlcicsIHNob3J0X25hbWU6ICdTZXAnLCBudW1lcmljOiAnMDknLCBkYXlzOiAzMH0sXG4gICAgICAgICAgICB7bmFtZTogJ09jdG9iZXInLCBzaG9ydF9uYW1lOiAnT2N0JywgbnVtZXJpYzogJzEwJywgZGF5czogMzF9LFxuICAgICAgICAgICAge25hbWU6ICdOb3ZlbWJlcicsIHNob3J0X25hbWU6ICdOb3YnLCBudW1lcmljOiAnMTEnLCBkYXlzOiAzMH0sXG4gICAgICAgICAgICB7bmFtZTogJ0RlY2VtYmVyJywgc2hvcnRfbmFtZTogJ0RlYycsIG51bWVyaWM6ICcxMicsIGRheXM6IDMxfVxuICAgICAgICBdLFxuXG4gICAgICAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFua19jYXJkX251bWJlciNJc3N1ZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyXy4yOElJTi4yOVxuICAgICAgICBjY190eXBlczogW1xuICAgICAgICAgICAge25hbWU6IFwiQW1lcmljYW4gRXhwcmVzc1wiLCBzaG9ydF9uYW1lOiAnYW1leCcsIHByZWZpeDogJzM0JywgbGVuZ3RoOiAxNX0sXG4gICAgICAgICAgICB7bmFtZTogXCJCYW5rY2FyZFwiLCBzaG9ydF9uYW1lOiAnYmFua2NhcmQnLCBwcmVmaXg6ICc1NjEwJywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJDaGluYSBVbmlvblBheVwiLCBzaG9ydF9uYW1lOiAnY2hpbmF1bmlvbicsIHByZWZpeDogJzYyJywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaW5lcnMgQ2x1YiBDYXJ0ZSBCbGFuY2hlXCIsIHNob3J0X25hbWU6ICdkY2NhcnRlJywgcHJlZml4OiAnMzAwJywgbGVuZ3RoOiAxNH0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaW5lcnMgQ2x1YiBlblJvdXRlXCIsIHNob3J0X25hbWU6ICdkY2Vucm91dGUnLCBwcmVmaXg6ICcyMDE0JywgbGVuZ3RoOiAxNX0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaW5lcnMgQ2x1YiBJbnRlcm5hdGlvbmFsXCIsIHNob3J0X25hbWU6ICdkY2ludGwnLCBwcmVmaXg6ICczNicsIGxlbmd0aDogMTR9LFxuICAgICAgICAgICAge25hbWU6IFwiRGluZXJzIENsdWIgVW5pdGVkIFN0YXRlcyAmIENhbmFkYVwiLCBzaG9ydF9uYW1lOiAnZGN1c2MnLCBwcmVmaXg6ICc1NCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiRGlzY292ZXIgQ2FyZFwiLCBzaG9ydF9uYW1lOiAnZGlzY292ZXInLCBwcmVmaXg6ICc2MDExJywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJJbnN0YVBheW1lbnRcIiwgc2hvcnRfbmFtZTogJ2luc3RhcGF5JywgcHJlZml4OiAnNjM3JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJKQ0JcIiwgc2hvcnRfbmFtZTogJ2pjYicsIHByZWZpeDogJzM1MjgnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkxhc2VyXCIsIHNob3J0X25hbWU6ICdsYXNlcicsIHByZWZpeDogJzYzMDQnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIk1hZXN0cm9cIiwgc2hvcnRfbmFtZTogJ21hZXN0cm8nLCBwcmVmaXg6ICc1MDE4JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJNYXN0ZXJjYXJkXCIsIHNob3J0X25hbWU6ICdtYycsIHByZWZpeDogJzUxJywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJTb2xvXCIsIHNob3J0X25hbWU6ICdzb2xvJywgcHJlZml4OiAnNjMzNCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiU3dpdGNoXCIsIHNob3J0X25hbWU6ICdzd2l0Y2gnLCBwcmVmaXg6ICc0OTAzJywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJWaXNhXCIsIHNob3J0X25hbWU6ICd2aXNhJywgcHJlZml4OiAnNCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiVmlzYSBFbGVjdHJvblwiLCBzaG9ydF9uYW1lOiAnZWxlY3Ryb24nLCBwcmVmaXg6ICc0MDI2JywgbGVuZ3RoOiAxNn1cbiAgICAgICAgXSxcblxuICAgICAgICAvL3JldHVybiBhbGwgd29ybGQgY3VycmVuY3kgYnkgSVNPIDQyMTdcbiAgICAgICAgY3VycmVuY3lfdHlwZXM6IFtcbiAgICAgICAgICAgIHsnY29kZScgOiAnQUVEJywgJ25hbWUnIDogJ1VuaXRlZCBBcmFiIEVtaXJhdGVzIERpcmhhbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBRk4nLCAnbmFtZScgOiAnQWZnaGFuaXN0YW4gQWZnaGFuaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBTEwnLCAnbmFtZScgOiAnQWxiYW5pYSBMZWsnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQU1EJywgJ25hbWUnIDogJ0FybWVuaWEgRHJhbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBTkcnLCAnbmFtZScgOiAnTmV0aGVybGFuZHMgQW50aWxsZXMgR3VpbGRlcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBT0EnLCAnbmFtZScgOiAnQW5nb2xhIEt3YW56YSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBUlMnLCAnbmFtZScgOiAnQXJnZW50aW5hIFBlc28nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQVVEJywgJ25hbWUnIDogJ0F1c3RyYWxpYSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQVdHJywgJ25hbWUnIDogJ0FydWJhIEd1aWxkZXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQVpOJywgJ25hbWUnIDogJ0F6ZXJiYWlqYW4gTmV3IE1hbmF0J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JBTScsICduYW1lJyA6ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hIENvbnZlcnRpYmxlIE1hcmthJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JCRCcsICduYW1lJyA6ICdCYXJiYWRvcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkRUJywgJ25hbWUnIDogJ0JhbmdsYWRlc2ggVGFrYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCR04nLCAnbmFtZScgOiAnQnVsZ2FyaWEgTGV2J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JIRCcsICduYW1lJyA6ICdCYWhyYWluIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JJRicsICduYW1lJyA6ICdCdXJ1bmRpIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JNRCcsICduYW1lJyA6ICdCZXJtdWRhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCTkQnLCAnbmFtZScgOiAnQnJ1bmVpIERhcnVzc2FsYW0gRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JPQicsICduYW1lJyA6ICdCb2xpdmlhIEJvbGl2aWFubyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCUkwnLCAnbmFtZScgOiAnQnJhemlsIFJlYWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQlNEJywgJ25hbWUnIDogJ0JhaGFtYXMgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JUTicsICduYW1lJyA6ICdCaHV0YW4gTmd1bHRydW0nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQldQJywgJ25hbWUnIDogJ0JvdHN3YW5hIFB1bGEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQllSJywgJ25hbWUnIDogJ0JlbGFydXMgUnVibGUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQlpEJywgJ25hbWUnIDogJ0JlbGl6ZSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ0FEJywgJ25hbWUnIDogJ0NhbmFkYSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ0RGJywgJ25hbWUnIDogJ0NvbmdvL0tpbnNoYXNhIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NIRicsICduYW1lJyA6ICdTd2l0emVybGFuZCBGcmFuYyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDTFAnLCAnbmFtZScgOiAnQ2hpbGUgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDTlknLCAnbmFtZScgOiAnQ2hpbmEgWXVhbiBSZW5taW5iaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDT1AnLCAnbmFtZScgOiAnQ29sb21iaWEgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDUkMnLCAnbmFtZScgOiAnQ29zdGEgUmljYSBDb2xvbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDVUMnLCAnbmFtZScgOiAnQ3ViYSBDb252ZXJ0aWJsZSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NVUCcsICduYW1lJyA6ICdDdWJhIFBlc28nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ1ZFJywgJ25hbWUnIDogJ0NhcGUgVmVyZGUgRXNjdWRvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NaSycsICduYW1lJyA6ICdDemVjaCBSZXB1YmxpYyBLb3J1bmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnREpGJywgJ25hbWUnIDogJ0RqaWJvdXRpIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0RLSycsICduYW1lJyA6ICdEZW5tYXJrIEtyb25lJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0RPUCcsICduYW1lJyA6ICdEb21pbmljYW4gUmVwdWJsaWMgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdEWkQnLCAnbmFtZScgOiAnQWxnZXJpYSBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFR1AnLCAnbmFtZScgOiAnRWd5cHQgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnRVJOJywgJ25hbWUnIDogJ0VyaXRyZWEgTmFrZmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnRVRCJywgJ25hbWUnIDogJ0V0aGlvcGlhIEJpcnInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnRVVSJywgJ25hbWUnIDogJ0V1cm8gTWVtYmVyIENvdW50cmllcyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdGSkQnLCAnbmFtZScgOiAnRmlqaSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnRktQJywgJ25hbWUnIDogJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHQlAnLCAnbmFtZScgOiAnVW5pdGVkIEtpbmdkb20gUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnR0VMJywgJ25hbWUnIDogJ0dlb3JnaWEgTGFyaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHR1AnLCAnbmFtZScgOiAnR3Vlcm5zZXkgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnR0hTJywgJ25hbWUnIDogJ0doYW5hIENlZGknfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnR0lQJywgJ25hbWUnIDogJ0dpYnJhbHRhciBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHTUQnLCAnbmFtZScgOiAnR2FtYmlhIERhbGFzaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHTkYnLCAnbmFtZScgOiAnR3VpbmVhIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dUUScsICduYW1lJyA6ICdHdWF0ZW1hbGEgUXVldHphbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHWUQnLCAnbmFtZScgOiAnR3V5YW5hIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdIS0QnLCAnbmFtZScgOiAnSG9uZyBLb25nIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdITkwnLCAnbmFtZScgOiAnSG9uZHVyYXMgTGVtcGlyYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdIUksnLCAnbmFtZScgOiAnQ3JvYXRpYSBLdW5hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hURycsICduYW1lJyA6ICdIYWl0aSBHb3VyZGUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSFVGJywgJ25hbWUnIDogJ0h1bmdhcnkgRm9yaW50J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lEUicsICduYW1lJyA6ICdJbmRvbmVzaWEgUnVwaWFoJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lMUycsICduYW1lJyA6ICdJc3JhZWwgU2hla2VsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lNUCcsICduYW1lJyA6ICdJc2xlIG9mIE1hbiBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJTlInLCAnbmFtZScgOiAnSW5kaWEgUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSVFEJywgJ25hbWUnIDogJ0lyYXEgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSVJSJywgJ25hbWUnIDogJ0lyYW4gUmlhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJU0snLCAnbmFtZScgOiAnSWNlbGFuZCBLcm9uYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdKRVAnLCAnbmFtZScgOiAnSmVyc2V5IFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pNRCcsICduYW1lJyA6ICdKYW1haWNhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdKT0QnLCAnbmFtZScgOiAnSm9yZGFuIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pQWScsICduYW1lJyA6ICdKYXBhbiBZZW4nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS0VTJywgJ25hbWUnIDogJ0tlbnlhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tHUycsICduYW1lJyA6ICdLeXJneXpzdGFuIFNvbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLSFInLCAnbmFtZScgOiAnQ2FtYm9kaWEgUmllbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLTUYnLCAnbmFtZScgOiAnQ29tb3JvcyBGcmFuYyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLUFcnLCAnbmFtZScgOiAnS29yZWEgKE5vcnRoKSBXb24nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS1JXJywgJ25hbWUnIDogJ0tvcmVhIChTb3V0aCkgV29uJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tXRCcsICduYW1lJyA6ICdLdXdhaXQgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS1lEJywgJ25hbWUnIDogJ0NheW1hbiBJc2xhbmRzIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLWlQnLCAnbmFtZScgOiAnS2F6YWtoc3RhbiBUZW5nZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMQUsnLCAnbmFtZScgOiAnTGFvcyBLaXAnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTEJQJywgJ25hbWUnIDogJ0xlYmFub24gUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTEtSJywgJ25hbWUnIDogJ1NyaSBMYW5rYSBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMUkQnLCAnbmFtZScgOiAnTGliZXJpYSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTFNMJywgJ25hbWUnIDogJ0xlc290aG8gTG90aSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMVEwnLCAnbmFtZScgOiAnTGl0aHVhbmlhIExpdGFzJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xZRCcsICduYW1lJyA6ICdMaWJ5YSBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNQUQnLCAnbmFtZScgOiAnTW9yb2NjbyBEaXJoYW0nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTURMJywgJ25hbWUnIDogJ01vbGRvdmEgTGV1J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01HQScsICduYW1lJyA6ICdNYWRhZ2FzY2FyIEFyaWFyeSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNS0QnLCAnbmFtZScgOiAnTWFjZWRvbmlhIERlbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01NSycsICduYW1lJyA6ICdNeWFubWFyIChCdXJtYSkgS3lhdCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNTlQnLCAnbmFtZScgOiAnTW9uZ29saWEgVHVnaHJpayd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNT1AnLCAnbmFtZScgOiAnTWFjYXUgUGF0YWNhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01STycsICduYW1lJyA6ICdNYXVyaXRhbmlhIE91Z3VpeWEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTVVSJywgJ25hbWUnIDogJ01hdXJpdGl1cyBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNVlInLCAnbmFtZScgOiAnTWFsZGl2ZXMgKE1hbGRpdmUgSXNsYW5kcykgUnVmaXlhYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNV0snLCAnbmFtZScgOiAnTWFsYXdpIEt3YWNoYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNWE4nLCAnbmFtZScgOiAnTWV4aWNvIFBlc28nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTVlSJywgJ25hbWUnIDogJ01hbGF5c2lhIFJpbmdnaXQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTVpOJywgJ25hbWUnIDogJ01vemFtYmlxdWUgTWV0aWNhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOQUQnLCAnbmFtZScgOiAnTmFtaWJpYSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTkdOJywgJ25hbWUnIDogJ05pZ2VyaWEgTmFpcmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTklPJywgJ25hbWUnIDogJ05pY2FyYWd1YSBDb3Jkb2JhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ05PSycsICduYW1lJyA6ICdOb3J3YXkgS3JvbmUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTlBSJywgJ25hbWUnIDogJ05lcGFsIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ05aRCcsICduYW1lJyA6ICdOZXcgWmVhbGFuZCBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnT01SJywgJ25hbWUnIDogJ09tYW4gUmlhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQQUInLCAnbmFtZScgOiAnUGFuYW1hIEJhbGJvYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQRU4nLCAnbmFtZScgOiAnUGVydSBOdWV2byBTb2wnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnUEdLJywgJ25hbWUnIDogJ1BhcHVhIE5ldyBHdWluZWEgS2luYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQSFAnLCAnbmFtZScgOiAnUGhpbGlwcGluZXMgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQS1InLCAnbmFtZScgOiAnUGFraXN0YW4gUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnUExOJywgJ25hbWUnIDogJ1BvbGFuZCBabG90eSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQWUcnLCAnbmFtZScgOiAnUGFyYWd1YXkgR3VhcmFuaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdRQVInLCAnbmFtZScgOiAnUWF0YXIgUml5YWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnUk9OJywgJ25hbWUnIDogJ1JvbWFuaWEgTmV3IExldSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdSU0QnLCAnbmFtZScgOiAnU2VyYmlhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1JVQicsICduYW1lJyA6ICdSdXNzaWEgUnVibGUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnUldGJywgJ25hbWUnIDogJ1J3YW5kYSBGcmFuYyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTQVInLCAnbmFtZScgOiAnU2F1ZGkgQXJhYmlhIFJpeWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NCRCcsICduYW1lJyA6ICdTb2xvbW9uIElzbGFuZHMgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NDUicsICduYW1lJyA6ICdTZXljaGVsbGVzIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NERycsICduYW1lJyA6ICdTdWRhbiBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTRUsnLCAnbmFtZScgOiAnU3dlZGVuIEtyb25hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NHRCcsICduYW1lJyA6ICdTaW5nYXBvcmUgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NIUCcsICduYW1lJyA6ICdTYWludCBIZWxlbmEgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0xMJywgJ25hbWUnIDogJ1NpZXJyYSBMZW9uZSBMZW9uZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTT1MnLCAnbmFtZScgOiAnU29tYWxpYSBTaGlsbGluZyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTUEwnLCAnbmFtZScgOiAnU2Vib3JnYSBMdWlnaW5vJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NSRCcsICduYW1lJyA6ICdTdXJpbmFtZSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1REJywgJ25hbWUnIDogJ1PDo28gVG9tw6kgYW5kIFByw61uY2lwZSBEb2JyYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTVkMnLCAnbmFtZScgOiAnRWwgU2FsdmFkb3IgQ29sb24nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1lQJywgJ25hbWUnIDogJ1N5cmlhIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NaTCcsICduYW1lJyA6ICdTd2F6aWxhbmQgTGlsYW5nZW5pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RIQicsICduYW1lJyA6ICdUaGFpbGFuZCBCYWh0J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RKUycsICduYW1lJyA6ICdUYWppa2lzdGFuIFNvbW9uaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUTVQnLCAnbmFtZScgOiAnVHVya21lbmlzdGFuIE1hbmF0J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RORCcsICduYW1lJyA6ICdUdW5pc2lhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RPUCcsICduYW1lJyA6ICdUb25nYSBQYVxcJ2FuZ2EnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVFJZJywgJ25hbWUnIDogJ1R1cmtleSBMaXJhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RURCcsICduYW1lJyA6ICdUcmluaWRhZCBhbmQgVG9iYWdvIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUVkQnLCAnbmFtZScgOiAnVHV2YWx1IERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUV0QnLCAnbmFtZScgOiAnVGFpd2FuIE5ldyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVFpTJywgJ25hbWUnIDogJ1RhbnphbmlhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1VBSCcsICduYW1lJyA6ICdVa3JhaW5lIEhyeXZuaWEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVUdYJywgJ25hbWUnIDogJ1VnYW5kYSBTaGlsbGluZyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVU0QnLCAnbmFtZScgOiAnVW5pdGVkIFN0YXRlcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVVlVJywgJ25hbWUnIDogJ1VydWd1YXkgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVWlMnLCAnbmFtZScgOiAnVXpiZWtpc3RhbiBTb20nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVkVGJywgJ25hbWUnIDogJ1ZlbmV6dWVsYSBCb2xpdmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1ZORCcsICduYW1lJyA6ICdWaWV0IE5hbSBEb25nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1ZVVicsICduYW1lJyA6ICdWYW51YXR1IFZhdHUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnV1NUJywgJ25hbWUnIDogJ1NhbW9hIFRhbGEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWEFGJywgJ25hbWUnIDogJ0NvbW11bmF1dMOpIEZpbmFuY2nDqHJlIEFmcmljYWluZSAoQkVBQykgQ0ZBIEZyYW5jIEJFQUMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWENEJywgJ25hbWUnIDogJ0Vhc3QgQ2FyaWJiZWFuIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYRFInLCAnbmFtZScgOiAnSW50ZXJuYXRpb25hbCBNb25ldGFyeSBGdW5kIChJTUYpIFNwZWNpYWwgRHJhd2luZyBSaWdodHMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWE9GJywgJ25hbWUnIDogJ0NvbW11bmF1dMOpIEZpbmFuY2nDqHJlIEFmcmljYWluZSAoQkNFQU8pIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1hQRicsICduYW1lJyA6ICdDb21wdG9pcnMgRnJhbsOnYWlzIGR1IFBhY2lmaXF1ZSAoQ0ZQKSBGcmFuYyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdZRVInLCAnbmFtZScgOiAnWWVtZW4gUmlhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdaQVInLCAnbmFtZScgOiAnU291dGggQWZyaWNhIFJhbmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWk1XJywgJ25hbWUnIDogJ1phbWJpYSBLd2FjaGEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWldEJywgJ25hbWUnIDogJ1ppbWJhYndlIERvbGxhcid9XG4gICAgICAgIF1cbiAgICB9O1xuXG4gICAgdmFyIG9faGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICAgIHZhciBvX2tleXMgPSAoT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ob2JqKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChvX2hhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gX2NvcHlPYmplY3Qoc291cmNlLCB0YXJnZXQpIHtcbiAgICAgIHZhciBrZXlzID0gb19rZXlzKHNvdXJjZSk7XG4gICAgICB2YXIga2V5O1xuXG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGtleXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV0gfHwgdGFyZ2V0W2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gX2NvcHlBcnJheShzb3VyY2UsIHRhcmdldCkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBzb3VyY2UubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHRhcmdldFtpXSA9IHNvdXJjZVtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb3B5T2JqZWN0KHNvdXJjZSwgX3RhcmdldCkge1xuICAgICAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKTtcbiAgICAgICAgdmFyIHRhcmdldCA9IF90YXJnZXQgfHwgKGlzQXJyYXkgPyBuZXcgQXJyYXkoc291cmNlLmxlbmd0aCkgOiB7fSk7XG5cbiAgICAgICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgICAgICBfY29weUFycmF5KHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfY29weU9iamVjdChzb3VyY2UsIHRhcmdldCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKiBHZXQgdGhlIGRhdGEgYmFzZWQgb24ga2V5KiovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICByZXR1cm4gY29weU9iamVjdChkYXRhW25hbWVdKTtcbiAgICB9O1xuXG4gICAgLy8gTWFjIEFkZHJlc3NcbiAgICBDaGFuY2UucHJvdG90eXBlLm1hY19hZGRyZXNzID0gZnVuY3Rpb24ob3B0aW9ucyl7XG4gICAgICAgIC8vIHR5cGljYWxseSBtYWMgYWRkcmVzc2VzIGFyZSBzZXBhcmF0ZWQgYnkgXCI6XCJcbiAgICAgICAgLy8gaG93ZXZlciB0aGV5IGNhbiBhbHNvIGJlIHNlcGFyYXRlZCBieSBcIi1cIlxuICAgICAgICAvLyB0aGUgbmV0d29yayB2YXJpYW50IHVzZXMgYSBkb3QgZXZlcnkgZm91cnRoIGJ5dGVcblxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIGlmKCFvcHRpb25zLnNlcGFyYXRvcikge1xuICAgICAgICAgICAgb3B0aW9ucy5zZXBhcmF0b3IgPSAgb3B0aW9ucy5uZXR3b3JrVmVyc2lvbiA/IFwiLlwiIDogXCI6XCI7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWFjX3Bvb2w9XCJBQkNERUYxMjM0NTY3ODkwXCIsXG4gICAgICAgICAgICBtYWMgPSBcIlwiO1xuICAgICAgICBpZighb3B0aW9ucy5uZXR3b3JrVmVyc2lvbikge1xuICAgICAgICAgICAgbWFjID0gdGhpcy5uKHRoaXMuc3RyaW5nLCA2LCB7IHBvb2w6IG1hY19wb29sLCBsZW5ndGg6MiB9KS5qb2luKG9wdGlvbnMuc2VwYXJhdG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1hYyA9IHRoaXMubih0aGlzLnN0cmluZywgMywgeyBwb29sOiBtYWNfcG9vbCwgbGVuZ3RoOjQgfSkuam9pbihvcHRpb25zLnNlcGFyYXRvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFjO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm5vcm1hbCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWVhbiA6IDAsIGRldiA6IDF9KTtcblxuICAgICAgICAvLyBUaGUgTWFyc2FnbGlhIFBvbGFyIG1ldGhvZFxuICAgICAgICB2YXIgcywgdSwgdiwgbm9ybSxcbiAgICAgICAgICAgIG1lYW4gPSBvcHRpb25zLm1lYW4sXG4gICAgICAgICAgICBkZXYgPSBvcHRpb25zLmRldjtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICAvLyBVIGFuZCBWIGFyZSBmcm9tIHRoZSB1bmlmb3JtIGRpc3RyaWJ1dGlvbiBvbiAoLTEsIDEpXG4gICAgICAgICAgICB1ID0gdGhpcy5yYW5kb20oKSAqIDIgLSAxO1xuICAgICAgICAgICAgdiA9IHRoaXMucmFuZG9tKCkgKiAyIC0gMTtcblxuICAgICAgICAgICAgcyA9IHUgKiB1ICsgdiAqIHY7XG4gICAgICAgIH0gd2hpbGUgKHMgPj0gMSk7XG5cbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgc3RhbmRhcmQgbm9ybWFsIHZhcmlhdGVcbiAgICAgICAgbm9ybSA9IHUgKiBNYXRoLnNxcnQoLTIgKiBNYXRoLmxvZyhzKSAvIHMpO1xuXG4gICAgICAgIC8vIFNoYXBlIGFuZCBzY2FsZVxuICAgICAgICByZXR1cm4gZGV2ICogbm9ybSArIG1lYW47XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucmFkaW8gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyBJbml0aWFsIExldHRlciAoVHlwaWNhbGx5IERlc2lnbmF0ZWQgYnkgU2lkZSBvZiBNaXNzaXNzaXBwaSBSaXZlcilcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtzaWRlIDogXCI/XCJ9KTtcbiAgICAgICAgdmFyIGZsID0gXCJcIjtcbiAgICAgICAgc3dpdGNoIChvcHRpb25zLnNpZGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlIFwiZWFzdFwiOlxuICAgICAgICBjYXNlIFwiZVwiOlxuICAgICAgICAgICAgZmwgPSBcIldcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwid2VzdFwiOlxuICAgICAgICBjYXNlIFwid1wiOlxuICAgICAgICAgICAgZmwgPSBcIktcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZmwgPSB0aGlzLmNoYXJhY3Rlcih7cG9vbDogXCJLV1wifSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmbCArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KSArXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXIoe2FscGhhOiB0cnVlLCBjYXNpbmc6IFwidXBwZXJcIn0pICtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3Rlcih7YWxwaGE6IHRydWUsIGNhc2luZzogXCJ1cHBlclwifSk7XG4gICAgfTtcblxuICAgIC8vIFNldCB0aGUgZGF0YSBhcyBrZXkgYW5kIGRhdGEgb3IgdGhlIGRhdGEgbWFwXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWVzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgZGF0YVtuYW1lXSA9IHZhbHVlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGEgPSBjb3B5T2JqZWN0KG5hbWUsIGRhdGEpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudHYgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5yYWRpbyhvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgLy8gSUQgbnVtYmVyIGZvciBCcmF6aWwgY29tcGFuaWVzXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jbnBqID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMubih0aGlzLm5hdHVyYWwsIDgsIHsgbWF4OiA5IH0pO1xuICAgICAgICB2YXIgZDEgPSAyK25bN10qNituWzZdKjcrbls1XSo4K25bNF0qOStuWzNdKjIrblsyXSozK25bMV0qNCtuWzBdKjU7XG4gICAgICAgIGQxID0gMTEgLSAoZDEgJSAxMSk7XG4gICAgICAgIGlmIChkMT49MTApe1xuICAgICAgICAgICAgZDEgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkMiA9IGQxKjIrMytuWzddKjcrbls2XSo4K25bNV0qOStuWzRdKjIrblszXSozK25bMl0qNCtuWzFdKjUrblswXSo2O1xuICAgICAgICBkMiA9IDExIC0gKGQyICUgMTEpO1xuICAgICAgICBpZiAoZDI+PTEwKXtcbiAgICAgICAgICAgIGQyID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJycrblswXStuWzFdKycuJytuWzJdK25bM10rbls0XSsnLicrbls1XStuWzZdK25bN10rJy8wMDAxLScrZDErZDI7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBNaXNjZWxsYW5lb3VzIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1lcnNlbm5lX3R3aXN0ZXIgPSBmdW5jdGlvbiAoc2VlZCkge1xuICAgICAgICByZXR1cm4gbmV3IE1lcnNlbm5lVHdpc3RlcihzZWVkKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5ibHVlaW1wX21kNSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCbHVlSW1wTUQ1KCk7XG4gICAgfTtcblxuICAgIC8vIE1lcnNlbm5lIFR3aXN0ZXIgZnJvbSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9iYW5rc2Vhbi8zMDA0OTRcbiAgICB2YXIgTWVyc2VubmVUd2lzdGVyID0gZnVuY3Rpb24gKHNlZWQpIHtcbiAgICAgICAgaWYgKHNlZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8ga2VwdCByYW5kb20gbnVtYmVyIHNhbWUgc2l6ZSBhcyB0aW1lIHVzZWQgcHJldmlvdXNseSB0byBlbnN1cmUgbm8gdW5leHBlY3RlZCByZXN1bHRzIGRvd25zdHJlYW1cbiAgICAgICAgICAgIHNlZWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTWF0aC5wb3coMTAsMTMpKTtcbiAgICAgICAgfVxuICAgICAgICAvKiBQZXJpb2QgcGFyYW1ldGVycyAqL1xuICAgICAgICB0aGlzLk4gPSA2MjQ7XG4gICAgICAgIHRoaXMuTSA9IDM5NztcbiAgICAgICAgdGhpcy5NQVRSSVhfQSA9IDB4OTkwOGIwZGY7ICAgLyogY29uc3RhbnQgdmVjdG9yIGEgKi9cbiAgICAgICAgdGhpcy5VUFBFUl9NQVNLID0gMHg4MDAwMDAwMDsgLyogbW9zdCBzaWduaWZpY2FudCB3LXIgYml0cyAqL1xuICAgICAgICB0aGlzLkxPV0VSX01BU0sgPSAweDdmZmZmZmZmOyAvKiBsZWFzdCBzaWduaWZpY2FudCByIGJpdHMgKi9cblxuICAgICAgICB0aGlzLm10ID0gbmV3IEFycmF5KHRoaXMuTik7IC8qIHRoZSBhcnJheSBmb3IgdGhlIHN0YXRlIHZlY3RvciAqL1xuICAgICAgICB0aGlzLm10aSA9IHRoaXMuTiArIDE7IC8qIG10aT09TiArIDEgbWVhbnMgbXRbTl0gaXMgbm90IGluaXRpYWxpemVkICovXG5cbiAgICAgICAgdGhpcy5pbml0X2dlbnJhbmQoc2VlZCk7XG4gICAgfTtcblxuICAgIC8qIGluaXRpYWxpemVzIG10W05dIHdpdGggYSBzZWVkICovXG4gICAgTWVyc2VubmVUd2lzdGVyLnByb3RvdHlwZS5pbml0X2dlbnJhbmQgPSBmdW5jdGlvbiAocykge1xuICAgICAgICB0aGlzLm10WzBdID0gcyA+Pj4gMDtcbiAgICAgICAgZm9yICh0aGlzLm10aSA9IDE7IHRoaXMubXRpIDwgdGhpcy5OOyB0aGlzLm10aSsrKSB7XG4gICAgICAgICAgICBzID0gdGhpcy5tdFt0aGlzLm10aSAtIDFdIF4gKHRoaXMubXRbdGhpcy5tdGkgLSAxXSA+Pj4gMzApO1xuICAgICAgICAgICAgdGhpcy5tdFt0aGlzLm10aV0gPSAoKCgoKHMgJiAweGZmZmYwMDAwKSA+Pj4gMTYpICogMTgxMjQzMzI1MykgPDwgMTYpICsgKHMgJiAweDAwMDBmZmZmKSAqIDE4MTI0MzMyNTMpICsgdGhpcy5tdGk7XG4gICAgICAgICAgICAvKiBTZWUgS251dGggVEFPQ1AgVm9sMi4gM3JkIEVkLiBQLjEwNiBmb3IgbXVsdGlwbGllci4gKi9cbiAgICAgICAgICAgIC8qIEluIHRoZSBwcmV2aW91cyB2ZXJzaW9ucywgTVNCcyBvZiB0aGUgc2VlZCBhZmZlY3QgICAqL1xuICAgICAgICAgICAgLyogb25seSBNU0JzIG9mIHRoZSBhcnJheSBtdFtdLiAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAvKiAyMDAyLzAxLzA5IG1vZGlmaWVkIGJ5IE1ha290byBNYXRzdW1vdG8gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMubXRbdGhpcy5tdGldID4+Pj0gMDtcbiAgICAgICAgICAgIC8qIGZvciA+MzIgYml0IG1hY2hpbmVzICovXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyogaW5pdGlhbGl6ZSBieSBhbiBhcnJheSB3aXRoIGFycmF5LWxlbmd0aCAqL1xuICAgIC8qIGluaXRfa2V5IGlzIHRoZSBhcnJheSBmb3IgaW5pdGlhbGl6aW5nIGtleXMgKi9cbiAgICAvKiBrZXlfbGVuZ3RoIGlzIGl0cyBsZW5ndGggKi9cbiAgICAvKiBzbGlnaHQgY2hhbmdlIGZvciBDKyssIDIwMDQvMi8yNiAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuaW5pdF9ieV9hcnJheSA9IGZ1bmN0aW9uIChpbml0X2tleSwga2V5X2xlbmd0aCkge1xuICAgICAgICB2YXIgaSA9IDEsIGogPSAwLCBrLCBzO1xuICAgICAgICB0aGlzLmluaXRfZ2VucmFuZCgxOTY1MDIxOCk7XG4gICAgICAgIGsgPSAodGhpcy5OID4ga2V5X2xlbmd0aCA/IHRoaXMuTiA6IGtleV9sZW5ndGgpO1xuICAgICAgICBmb3IgKDsgazsgay0tKSB7XG4gICAgICAgICAgICBzID0gdGhpcy5tdFtpIC0gMV0gXiAodGhpcy5tdFtpIC0gMV0gPj4+IDMwKTtcbiAgICAgICAgICAgIHRoaXMubXRbaV0gPSAodGhpcy5tdFtpXSBeICgoKCgocyAmIDB4ZmZmZjAwMDApID4+PiAxNikgKiAxNjY0NTI1KSA8PCAxNikgKyAoKHMgJiAweDAwMDBmZmZmKSAqIDE2NjQ1MjUpKSkgKyBpbml0X2tleVtqXSArIGo7IC8qIG5vbiBsaW5lYXIgKi9cbiAgICAgICAgICAgIHRoaXMubXRbaV0gPj4+PSAwOyAvKiBmb3IgV09SRFNJWkUgPiAzMiBtYWNoaW5lcyAqL1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgaisrO1xuICAgICAgICAgICAgaWYgKGkgPj0gdGhpcy5OKSB7IHRoaXMubXRbMF0gPSB0aGlzLm10W3RoaXMuTiAtIDFdOyBpID0gMTsgfVxuICAgICAgICAgICAgaWYgKGogPj0ga2V5X2xlbmd0aCkgeyBqID0gMDsgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoayA9IHRoaXMuTiAtIDE7IGs7IGstLSkge1xuICAgICAgICAgICAgcyA9IHRoaXMubXRbaSAtIDFdIF4gKHRoaXMubXRbaSAtIDFdID4+PiAzMCk7XG4gICAgICAgICAgICB0aGlzLm10W2ldID0gKHRoaXMubXRbaV0gXiAoKCgoKHMgJiAweGZmZmYwMDAwKSA+Pj4gMTYpICogMTU2NjA4Mzk0MSkgPDwgMTYpICsgKHMgJiAweDAwMDBmZmZmKSAqIDE1NjYwODM5NDEpKSAtIGk7IC8qIG5vbiBsaW5lYXIgKi9cbiAgICAgICAgICAgIHRoaXMubXRbaV0gPj4+PSAwOyAvKiBmb3IgV09SRFNJWkUgPiAzMiBtYWNoaW5lcyAqL1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgaWYgKGkgPj0gdGhpcy5OKSB7IHRoaXMubXRbMF0gPSB0aGlzLm10W3RoaXMuTiAtIDFdOyBpID0gMTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tdFswXSA9IDB4ODAwMDAwMDA7IC8qIE1TQiBpcyAxOyBhc3N1cmluZyBub24temVybyBpbml0aWFsIGFycmF5ICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMHhmZmZmZmZmZl0taW50ZXJ2YWwgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLmdlbnJhbmRfaW50MzIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB5O1xuICAgICAgICB2YXIgbWFnMDEgPSBuZXcgQXJyYXkoMHgwLCB0aGlzLk1BVFJJWF9BKTtcbiAgICAgICAgLyogbWFnMDFbeF0gPSB4ICogTUFUUklYX0EgIGZvciB4PTAsMSAqL1xuXG4gICAgICAgIGlmICh0aGlzLm10aSA+PSB0aGlzLk4pIHsgLyogZ2VuZXJhdGUgTiB3b3JkcyBhdCBvbmUgdGltZSAqL1xuICAgICAgICAgICAgdmFyIGtrO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tdGkgPT09IHRoaXMuTiArIDEpIHsgICAvKiBpZiBpbml0X2dlbnJhbmQoKSBoYXMgbm90IGJlZW4gY2FsbGVkLCAqL1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdF9nZW5yYW5kKDU0ODkpOyAvKiBhIGRlZmF1bHQgaW5pdGlhbCBzZWVkIGlzIHVzZWQgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoa2sgPSAwOyBrayA8IHRoaXMuTiAtIHRoaXMuTTsga2srKykge1xuICAgICAgICAgICAgICAgIHkgPSAodGhpcy5tdFtra10mdGhpcy5VUFBFUl9NQVNLKXwodGhpcy5tdFtrayArIDFdJnRoaXMuTE9XRVJfTUFTSyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tdFtra10gPSB0aGlzLm10W2trICsgdGhpcy5NXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICg7a2sgPCB0aGlzLk4gLSAxOyBraysrKSB7XG4gICAgICAgICAgICAgICAgeSA9ICh0aGlzLm10W2trXSZ0aGlzLlVQUEVSX01BU0spfCh0aGlzLm10W2trICsgMV0mdGhpcy5MT1dFUl9NQVNLKTtcbiAgICAgICAgICAgICAgICB0aGlzLm10W2trXSA9IHRoaXMubXRba2sgKyAodGhpcy5NIC0gdGhpcy5OKV0gXiAoeSA+Pj4gMSkgXiBtYWcwMVt5ICYgMHgxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHkgPSAodGhpcy5tdFt0aGlzLk4gLSAxXSZ0aGlzLlVQUEVSX01BU0spfCh0aGlzLm10WzBdJnRoaXMuTE9XRVJfTUFTSyk7XG4gICAgICAgICAgICB0aGlzLm10W3RoaXMuTiAtIDFdID0gdGhpcy5tdFt0aGlzLk0gLSAxXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXG4gICAgICAgICAgICB0aGlzLm10aSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB5ID0gdGhpcy5tdFt0aGlzLm10aSsrXTtcblxuICAgICAgICAvKiBUZW1wZXJpbmcgKi9cbiAgICAgICAgeSBePSAoeSA+Pj4gMTEpO1xuICAgICAgICB5IF49ICh5IDw8IDcpICYgMHg5ZDJjNTY4MDtcbiAgICAgICAgeSBePSAoeSA8PCAxNSkgJiAweGVmYzYwMDAwO1xuICAgICAgICB5IF49ICh5ID4+PiAxOCk7XG5cbiAgICAgICAgcmV0dXJuIHkgPj4+IDA7XG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMHg3ZmZmZmZmZl0taW50ZXJ2YWwgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLmdlbnJhbmRfaW50MzEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5nZW5yYW5kX2ludDMyKCkgPj4+IDEpO1xuICAgIH07XG5cbiAgICAvKiBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9uIFswLDFdLXJlYWwtaW50ZXJ2YWwgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLmdlbnJhbmRfcmVhbDEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdlbnJhbmRfaW50MzIoKSAqICgxLjAgLyA0Mjk0OTY3Mjk1LjApO1xuICAgICAgICAvKiBkaXZpZGVkIGJ5IDJeMzItMSAqL1xuICAgIH07XG5cbiAgICAvKiBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9uIFswLDEpLXJlYWwtaW50ZXJ2YWwgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLnJhbmRvbSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpICogKDEuMCAvIDQyOTQ5NjcyOTYuMCk7XG4gICAgICAgIC8qIGRpdmlkZWQgYnkgMl4zMiAqL1xuICAgIH07XG5cbiAgICAvKiBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9uICgwLDEpLXJlYWwtaW50ZXJ2YWwgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLmdlbnJhbmRfcmVhbDMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5nZW5yYW5kX2ludDMyKCkgKyAwLjUpICogKDEuMCAvIDQyOTQ5NjcyOTYuMCk7XG4gICAgICAgIC8qIGRpdmlkZWQgYnkgMl4zMiAqL1xuICAgIH07XG5cbiAgICAvKiBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9uIFswLDEpIHdpdGggNTMtYml0IHJlc29sdXRpb24qL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9yZXM1MyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGEgPSB0aGlzLmdlbnJhbmRfaW50MzIoKT4+PjUsIGIgPSB0aGlzLmdlbnJhbmRfaW50MzIoKT4+PjY7XG4gICAgICAgIHJldHVybiAoYSAqIDY3MTA4ODY0LjAgKyBiKSAqICgxLjAgLyA5MDA3MTk5MjU0NzQwOTkyLjApO1xuICAgIH07XG5cbiAgICAvLyBCbHVlSW1wIE1ENSBoYXNoaW5nIGFsZ29yaXRobSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlaW1wL0phdmFTY3JpcHQtTUQ1XG4gICAgdmFyIEJsdWVJbXBNRDUgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLlZFUlNJT04gPSAnMS4wLjEnO1xuXG4gICAgLypcbiAgICAqIEFkZCBpbnRlZ2Vycywgd3JhcHBpbmcgYXQgMl4zMi4gVGhpcyB1c2VzIDE2LWJpdCBvcGVyYXRpb25zIGludGVybmFsbHlcbiAgICAqIHRvIHdvcmsgYXJvdW5kIGJ1Z3MgaW4gc29tZSBKUyBpbnRlcnByZXRlcnMuXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5zYWZlX2FkZCA9IGZ1bmN0aW9uIHNhZmVfYWRkKHgsIHkpIHtcbiAgICAgICAgdmFyIGxzdyA9ICh4ICYgMHhGRkZGKSArICh5ICYgMHhGRkZGKSxcbiAgICAgICAgICAgIG1zdyA9ICh4ID4+IDE2KSArICh5ID4+IDE2KSArIChsc3cgPj4gMTYpO1xuICAgICAgICByZXR1cm4gKG1zdyA8PCAxNikgfCAobHN3ICYgMHhGRkZGKTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIEJpdHdpc2Ugcm90YXRlIGEgMzItYml0IG51bWJlciB0byB0aGUgbGVmdC5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLmJpdF9yb2xsID0gZnVuY3Rpb24gKG51bSwgY250KSB7XG4gICAgICAgIHJldHVybiAobnVtIDw8IGNudCkgfCAobnVtID4+PiAoMzIgLSBjbnQpKTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIFRoZXNlIGZ1bmN0aW9ucyBpbXBsZW1lbnQgdGhlIGZpdmUgYmFzaWMgb3BlcmF0aW9ucyB0aGUgYWxnb3JpdGhtIHVzZXMuXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfY21uID0gZnVuY3Rpb24gKHEsIGEsIGIsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZV9hZGQodGhpcy5iaXRfcm9sbCh0aGlzLnNhZmVfYWRkKHRoaXMuc2FmZV9hZGQoYSwgcSksIHRoaXMuc2FmZV9hZGQoeCwgdCkpLCBzKSwgYik7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfZmYgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZDVfY21uKChiICYgYykgfCAoKH5iKSAmIGQpLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNV9nZyA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1kNV9jbW4oKGIgJiBkKSB8IChjICYgKH5kKSksIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUubWQ1X2hoID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWQ1X2NtbihiIF4gYyBeIGQsIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUubWQ1X2lpID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWQ1X2NtbihjIF4gKGIgfCAofmQpKSwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDYWxjdWxhdGUgdGhlIE1ENSBvZiBhbiBhcnJheSBvZiBsaXR0bGUtZW5kaWFuIHdvcmRzLCBhbmQgYSBiaXQgbGVuZ3RoLlxuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuYmlubF9tZDUgPSBmdW5jdGlvbiAoeCwgbGVuKSB7XG4gICAgICAgIC8qIGFwcGVuZCBwYWRkaW5nICovXG4gICAgICAgIHhbbGVuID4+IDVdIHw9IDB4ODAgPDwgKGxlbiAlIDMyKTtcbiAgICAgICAgeFsoKChsZW4gKyA2NCkgPj4+IDkpIDw8IDQpICsgMTRdID0gbGVuO1xuXG4gICAgICAgIHZhciBpLCBvbGRhLCBvbGRiLCBvbGRjLCBvbGRkLFxuICAgICAgICAgICAgYSA9ICAxNzMyNTg0MTkzLFxuICAgICAgICAgICAgYiA9IC0yNzE3MzM4NzksXG4gICAgICAgICAgICBjID0gLTE3MzI1ODQxOTQsXG4gICAgICAgICAgICBkID0gIDI3MTczMzg3ODtcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkgKz0gMTYpIHtcbiAgICAgICAgICAgIG9sZGEgPSBhO1xuICAgICAgICAgICAgb2xkYiA9IGI7XG4gICAgICAgICAgICBvbGRjID0gYztcbiAgICAgICAgICAgIG9sZGQgPSBkO1xuXG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpXSwgICAgICAgNywgLTY4MDg3NjkzNik7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgIDFdLCAxMiwgLTM4OTU2NDU4Nik7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgIDJdLCAxNywgIDYwNjEwNTgxOSk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfZmYoYiwgYywgZCwgYSwgeFtpICsgIDNdLCAyMiwgLTEwNDQ1MjUzMzApO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArICA0XSwgIDcsIC0xNzY0MTg4OTcpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2ZmKGQsIGEsIGIsIGMsIHhbaSArICA1XSwgMTIsICAxMjAwMDgwNDI2KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9mZihjLCBkLCBhLCBiLCB4W2kgKyAgNl0sIDE3LCAtMTQ3MzIzMTM0MSk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfZmYoYiwgYywgZCwgYSwgeFtpICsgIDddLCAyMiwgLTQ1NzA1OTgzKTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9mZihhLCBiLCBjLCBkLCB4W2kgKyAgOF0sICA3LCAgMTc3MDAzNTQxNik7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgIDldLCAxMiwgLTE5NTg0MTQ0MTcpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArIDEwXSwgMTcsIC00MjA2Myk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfZmYoYiwgYywgZCwgYSwgeFtpICsgMTFdLCAyMiwgLTE5OTA0MDQxNjIpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArIDEyXSwgIDcsICAxODA0NjAzNjgyKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAxM10sIDEyLCAtNDAzNDExMDEpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArIDE0XSwgMTcsIC0xNTAyMDAyMjkwKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAxNV0sIDIyLCAgMTIzNjUzNTMyOSk7XG5cbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyAgMV0sICA1LCAtMTY1Nzk2NTEwKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyAgNl0sICA5LCAtMTA2OTUwMTYzMik7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZ2coYywgZCwgYSwgYiwgeFtpICsgMTFdLCAxNCwgIDY0MzcxNzcxMyk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfZ2coYiwgYywgZCwgYSwgeFtpXSwgICAgICAyMCwgLTM3Mzg5NzMwMik7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZ2coYSwgYiwgYywgZCwgeFtpICsgIDVdLCAgNSwgLTcwMTU1ODY5MSk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfZ2coZCwgYSwgYiwgYywgeFtpICsgMTBdLCAgOSwgIDM4MDE2MDgzKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAxNV0sIDE0LCAtNjYwNDc4MzM1KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyAgNF0sIDIwLCAtNDA1NTM3ODQ4KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyAgOV0sICA1LCAgNTY4NDQ2NDM4KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyAxNF0sICA5LCAtMTAxOTgwMzY5MCk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZ2coYywgZCwgYSwgYiwgeFtpICsgIDNdLCAxNCwgLTE4NzM2Mzk2MSk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfZ2coYiwgYywgZCwgYSwgeFtpICsgIDhdLCAyMCwgIDExNjM1MzE1MDEpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArIDEzXSwgIDUsIC0xNDQ0NjgxNDY3KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyAgMl0sICA5LCAtNTE0MDM3ODQpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArICA3XSwgMTQsICAxNzM1MzI4NDczKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyAxMl0sIDIwLCAtMTkyNjYwNzczNCk7XG5cbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAgNV0sICA0LCAtMzc4NTU4KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9oaChkLCBhLCBiLCBjLCB4W2kgKyAgOF0sIDExLCAtMjAyMjU3NDQ2Myk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfaGgoYywgZCwgYSwgYiwgeFtpICsgMTFdLCAxNiwgIDE4MzkwMzA1NjIpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArIDE0XSwgMjMsIC0zNTMwOTU1Nik7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfaGgoYSwgYiwgYywgZCwgeFtpICsgIDFdLCAgNCwgLTE1MzA5OTIwNjApO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArICA0XSwgMTEsICAxMjcyODkzMzUzKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAgN10sIDE2LCAtMTU1NDk3NjMyKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAxMF0sIDIzLCAtMTA5NDczMDY0MCk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfaGgoYSwgYiwgYywgZCwgeFtpICsgMTNdLCAgNCwgIDY4MTI3OTE3NCk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpXSwgICAgICAxMSwgLTM1ODUzNzIyMik7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfaGgoYywgZCwgYSwgYiwgeFtpICsgIDNdLCAxNiwgLTcyMjUyMTk3OSk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaGgoYiwgYywgZCwgYSwgeFtpICsgIDZdLCAyMywgIDc2MDI5MTg5KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAgOV0sICA0LCAtNjQwMzY0NDg3KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9oaChkLCBhLCBiLCBjLCB4W2kgKyAxMl0sIDExLCAtNDIxODE1ODM1KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAxNV0sIDE2LCAgNTMwNzQyNTIwKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAgMl0sIDIzLCAtOTk1MzM4NjUxKTtcblxuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaV0sICAgICAgIDYsIC0xOTg2MzA4NDQpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArICA3XSwgMTAsICAxMTI2ODkxNDE1KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAxNF0sIDE1LCAtMTQxNjM1NDkwNSk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaWkoYiwgYywgZCwgYSwgeFtpICsgIDVdLCAyMSwgLTU3NDM0MDU1KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9paShhLCBiLCBjLCBkLCB4W2kgKyAxMl0sICA2LCAgMTcwMDQ4NTU3MSk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgIDNdLCAxMCwgLTE4OTQ5ODY2MDYpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2lpKGMsIGQsIGEsIGIsIHhbaSArIDEwXSwgMTUsIC0xMDUxNTIzKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAgMV0sIDIxLCAtMjA1NDkyMjc5OSk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfaWkoYSwgYiwgYywgZCwgeFtpICsgIDhdLCAgNiwgIDE4NzMzMTMzNTkpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArIDE1XSwgMTAsIC0zMDYxMTc0NCk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgIDZdLCAxNSwgLTE1NjAxOTgzODApO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2lpKGIsIGMsIGQsIGEsIHhbaSArIDEzXSwgMjEsICAxMzA5MTUxNjQ5KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9paShhLCBiLCBjLCBkLCB4W2kgKyAgNF0sICA2LCAtMTQ1NTIzMDcwKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9paShkLCBhLCBiLCBjLCB4W2kgKyAxMV0sIDEwLCAtMTEyMDIxMDM3OSk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgIDJdLCAxNSwgIDcxODc4NzI1OSk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaWkoYiwgYywgZCwgYSwgeFtpICsgIDldLCAyMSwgLTM0MzQ4NTU1MSk7XG5cbiAgICAgICAgICAgIGEgPSB0aGlzLnNhZmVfYWRkKGEsIG9sZGEpO1xuICAgICAgICAgICAgYiA9IHRoaXMuc2FmZV9hZGQoYiwgb2xkYik7XG4gICAgICAgICAgICBjID0gdGhpcy5zYWZlX2FkZChjLCBvbGRjKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLnNhZmVfYWRkKGQsIG9sZGQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbYSwgYiwgYywgZF07XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHMgdG8gYSBzdHJpbmdcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLmJpbmwycnN0ciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIG91dHB1dCA9ICcnO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoICogMzI7IGkgKz0gOCkge1xuICAgICAgICAgICAgb3V0cHV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKGlucHV0W2kgPj4gNV0gPj4+IChpICUgMzIpKSAmIDB4RkYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDb252ZXJ0IGEgcmF3IHN0cmluZyB0byBhbiBhcnJheSBvZiBsaXR0bGUtZW5kaWFuIHdvcmRzXG4gICAgKiBDaGFyYWN0ZXJzID4yNTUgaGF2ZSB0aGVpciBoaWdoLWJ5dGUgc2lsZW50bHkgaWdub3JlZC5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHIyYmlubCA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIG91dHB1dCA9IFtdO1xuICAgICAgICBvdXRwdXRbKGlucHV0Lmxlbmd0aCA+PiAyKSAtIDFdID0gdW5kZWZpbmVkO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb3V0cHV0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBvdXRwdXRbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGggKiA4OyBpICs9IDgpIHtcbiAgICAgICAgICAgIG91dHB1dFtpID4+IDVdIHw9IChpbnB1dC5jaGFyQ29kZUF0KGkgLyA4KSAmIDB4RkYpIDw8IChpICUgMzIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDYWxjdWxhdGUgdGhlIE1ENSBvZiBhIHJhdyBzdHJpbmdcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHJfbWQ1ID0gZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmlubDJyc3RyKHRoaXMuYmlubF9tZDUodGhpcy5yc3RyMmJpbmwocyksIHMubGVuZ3RoICogOCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogQ2FsY3VsYXRlIHRoZSBITUFDLU1ENSwgb2YgYSBrZXkgYW5kIHNvbWUgZGF0YSAocmF3IHN0cmluZ3MpXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5yc3RyX2htYWNfbWQ1ID0gZnVuY3Rpb24gKGtleSwgZGF0YSkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGJrZXkgPSB0aGlzLnJzdHIyYmlubChrZXkpLFxuICAgICAgICAgICAgaXBhZCA9IFtdLFxuICAgICAgICAgICAgb3BhZCA9IFtdLFxuICAgICAgICAgICAgaGFzaDtcbiAgICAgICAgaXBhZFsxNV0gPSBvcGFkWzE1XSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGJrZXkubGVuZ3RoID4gMTYpIHtcbiAgICAgICAgICAgIGJrZXkgPSB0aGlzLmJpbmxfbWQ1KGJrZXksIGtleS5sZW5ndGggKiA4KTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkgKz0gMSkge1xuICAgICAgICAgICAgaXBhZFtpXSA9IGJrZXlbaV0gXiAweDM2MzYzNjM2O1xuICAgICAgICAgICAgb3BhZFtpXSA9IGJrZXlbaV0gXiAweDVDNUM1QzVDO1xuICAgICAgICB9XG4gICAgICAgIGhhc2ggPSB0aGlzLmJpbmxfbWQ1KGlwYWQuY29uY2F0KHRoaXMucnN0cjJiaW5sKGRhdGEpKSwgNTEyICsgZGF0YS5sZW5ndGggKiA4KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmlubDJyc3RyKHRoaXMuYmlubF9tZDUob3BhZC5jb25jYXQoaGFzaCksIDUxMiArIDEyOCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogQ29udmVydCBhIHJhdyBzdHJpbmcgdG8gYSBoZXggc3RyaW5nXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5yc3RyMmhleCA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICB2YXIgaGV4X3RhYiA9ICcwMTIzNDU2Nzg5YWJjZGVmJyxcbiAgICAgICAgICAgIG91dHB1dCA9ICcnLFxuICAgICAgICAgICAgeCxcbiAgICAgICAgICAgIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgeCA9IGlucHV0LmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBvdXRwdXQgKz0gaGV4X3RhYi5jaGFyQXQoKHggPj4+IDQpICYgMHgwRikgK1xuICAgICAgICAgICAgICAgIGhleF90YWIuY2hhckF0KHggJiAweDBGKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH07XG5cbiAgICAvKlxuICAgICogRW5jb2RlIGEgc3RyaW5nIGFzIHV0Zi04XG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5zdHIycnN0cl91dGY4ID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoaW5wdXQpKTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIFRha2Ugc3RyaW5nIGFyZ3VtZW50cyBhbmQgcmV0dXJuIGVpdGhlciByYXcgb3IgaGV4IGVuY29kZWQgc3RyaW5nc1xuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucmF3X21kNSA9IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJzdHJfbWQ1KHRoaXMuc3RyMnJzdHJfdXRmOChzKSk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5oZXhfbWQ1ID0gZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cjJoZXgodGhpcy5yYXdfbWQ1KHMpKTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJhd19obWFjX21kNSA9IGZ1bmN0aW9uIChrLCBkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJzdHJfaG1hY19tZDUodGhpcy5zdHIycnN0cl91dGY4KGspLCB0aGlzLnN0cjJyc3RyX3V0ZjgoZCkpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuaGV4X2htYWNfbWQ1ID0gZnVuY3Rpb24gKGssIGQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cjJoZXgodGhpcy5yYXdfaG1hY19tZDUoaywgZCkpO1xuICAgIH07XG5cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDUgPSBmdW5jdGlvbiAoc3RyaW5nLCBrZXksIHJhdykge1xuICAgICAgICBpZiAoIWtleSkge1xuICAgICAgICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oZXhfbWQ1KHN0cmluZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJhd19tZDUoc3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmF3KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oZXhfaG1hY19tZDUoa2V5LCBzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmF3X2htYWNfbWQ1KGtleSwgc3RyaW5nKTtcbiAgICB9O1xuXG4gICAgLy8gQ29tbW9uSlMgbW9kdWxlXG4gICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAgICAgICAgIGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IENoYW5jZTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRzLkNoYW5jZSA9IENoYW5jZTtcbiAgICB9XG5cbiAgICAvLyBSZWdpc3RlciBhcyBhbiBhbm9ueW1vdXMgQU1EIG1vZHVsZVxuICAgIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgZGVmaW5lKFtdLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gQ2hhbmNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGVyZSBpcyBhIGltcG9ydHNTY3JpcHMgb2JqZWN0IGRlZmluZSBjaGFuY2UgZm9yIHdvcmtlclxuICAgIGlmICh0eXBlb2YgaW1wb3J0U2NyaXB0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY2hhbmNlID0gbmV3IENoYW5jZSgpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGlzIGEgd2luZG93IG9iamVjdCwgdGhhdCBhdCBsZWFzdCBoYXMgYSBkb2N1bWVudCBwcm9wZXJ0eSxcbiAgICAvLyBpbnN0YW50aWF0ZSBhbmQgZGVmaW5lIGNoYW5jZSBvbiB0aGUgd2luZG93XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICB3aW5kb3cuQ2hhbmNlID0gQ2hhbmNlO1xuICAgICAgICB3aW5kb3cuY2hhbmNlID0gbmV3IENoYW5jZSgpO1xuICAgIH1cbn0pKCk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciAkID0gcmVxdWlyZSgnLi91dGlsL3VyaS1oZWxwZXJzJyk7XG5cbiQuZmluZEJ5UmVmID0gcmVxdWlyZSgnLi91dGlsL2ZpbmQtcmVmZXJlbmNlJyk7XG4kLnJlc29sdmVTY2hlbWEgPSByZXF1aXJlKCcuL3V0aWwvcmVzb2x2ZS1zY2hlbWEnKTtcbiQubm9ybWFsaXplU2NoZW1hID0gcmVxdWlyZSgnLi91dGlsL25vcm1hbGl6ZS1zY2hlbWEnKTtcblxudmFyIGluc3RhbmNlID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gJHJlZihmYWtlcm9vdCwgc2NoZW1hLCByZWZzLCBleCkge1xuICAgIGlmICh0eXBlb2YgZmFrZXJvb3QgPT09ICdvYmplY3QnKSB7XG4gICAgICBleCA9IHJlZnM7XG4gICAgICByZWZzID0gc2NoZW1hO1xuICAgICAgc2NoZW1hID0gZmFrZXJvb3Q7XG4gICAgICBmYWtlcm9vdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVmcykpIHtcbiAgICAgIGV4ID0gISFyZWZzO1xuICAgICAgcmVmcyA9IFtdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHB1c2gocmVmKSB7XG4gICAgICBpZiAodHlwZW9mIHJlZi5pZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmFyIGlkID0gJC5yZXNvbHZlVVJMKGZha2Vyb290LCByZWYuaWQpLnJlcGxhY2UoL1xcLyM/JC8sICcnKTtcblxuICAgICAgICBpZiAoaWQuaW5kZXhPZignIycpID4gLTEpIHtcbiAgICAgICAgICB2YXIgcGFydHMgPSBpZC5zcGxpdCgnIycpO1xuXG4gICAgICAgICAgaWYgKHBhcnRzWzFdLmNoYXJBdCgpID09PSAnLycpIHtcbiAgICAgICAgICAgIGlkID0gcGFydHNbMF07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlkID0gcGFydHNbMV0gfHwgcGFydHNbMF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEkcmVmLnJlZnNbaWRdKSB7XG4gICAgICAgICAgJHJlZi5yZWZzW2lkXSA9IHJlZjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJlZnMuY29uY2F0KFtzY2hlbWFdKS5mb3JFYWNoKGZ1bmN0aW9uKHJlZikge1xuICAgICAgc2NoZW1hID0gJC5ub3JtYWxpemVTY2hlbWEoZmFrZXJvb3QsIHJlZiwgcHVzaCk7XG4gICAgICBwdXNoKHNjaGVtYSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gJC5yZXNvbHZlU2NoZW1hKHNjaGVtYSwgJHJlZi5yZWZzLCBleCk7XG4gIH1cblxuICAkcmVmLnJlZnMgPSB7fTtcbiAgJHJlZi51dGlsID0gJDtcblxuICByZXR1cm4gJHJlZjtcbn07XG5cbmluc3RhbmNlLnV0aWwgPSAkO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xvbmUgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iaikge1xuICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICB2YXIgdGFyZ2V0ID0gQXJyYXkuaXNBcnJheShvYmopID8gW10gOiB7fTtcblxuICBmdW5jdGlvbiBjb3B5KGtleSwgdmFsdWUpIHtcbiAgICB0YXJnZXRba2V5XSA9IGNsb25lKHZhbHVlKTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICBvYmouZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICBjb3B5KGtleSwgdmFsdWUpO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgIGNvcHkoa2V5LCBvYmpba2V5XSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyICQgPSByZXF1aXJlKCcuL3VyaS1oZWxwZXJzJyk7XG5cbmZ1bmN0aW9uIGdldChvYmosIHBhdGgpIHtcbiAgdmFyIGhhc2ggPSBwYXRoLnNwbGl0KCcjJylbMV07XG5cbiAgdmFyIHBhcnRzID0gaGFzaC5zcGxpdCgnLycpLnNsaWNlKDEpO1xuXG4gIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzLnNoaWZ0KCkpLnJlcGxhY2UoL34xL2csICcvJykucmVwbGFjZSgvfjAvZywgJ34nKTtcblxuICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZmVyZW5jZSBub3QgZm91bmQ6ICcgKyBwYXRoKTtcbiAgICB9XG5cbiAgICBvYmogPSBvYmpba2V5XTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbnZhciBmaW5kID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpZCwgcmVmcykge1xuICB2YXIgdGFyZ2V0ID0gcmVmc1tpZF0gfHwgcmVmc1tpZC5zcGxpdCgnIycpWzFdXSB8fCByZWZzWyQuZ2V0RG9jdW1lbnRVUkkoaWQpXTtcblxuICBpZiAodGFyZ2V0KSB7XG4gICAgdGFyZ2V0ID0gaWQuaW5kZXhPZignIy8nKSA+IC0xID8gZ2V0KHRhcmdldCwgaWQpIDogdGFyZ2V0O1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGtleSBpbiByZWZzKSB7XG4gICAgICBpZiAoJC5yZXNvbHZlVVJMKHJlZnNba2V5XS5pZCwgaWQpID09PSByZWZzW2tleV0uaWQpIHtcbiAgICAgICAgdGFyZ2V0ID0gcmVmc1trZXldO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVmZXJlbmNlIG5vdCBmb3VuZDogJyArIGlkKTtcbiAgfVxuXG4gIHdoaWxlICh0YXJnZXQuJHJlZikge1xuICAgIHRhcmdldCA9IGZpbmQodGFyZ2V0LiRyZWYsIHJlZnMpO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciAkID0gcmVxdWlyZSgnLi91cmktaGVscGVycycpO1xuXG52YXIgY2xvbmVPYmogPSByZXF1aXJlKCcuL2Nsb25lLW9iaicpO1xuXG52YXIgU0NIRU1BX1VSSSA9IFtcbiAgJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hIycsXG4gICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMnXG5dO1xuXG5mdW5jdGlvbiBleHBhbmQob2JqLCBwYXJlbnQsIGNhbGxiYWNrKSB7XG4gIGlmIChvYmopIHtcbiAgICB2YXIgaWQgPSB0eXBlb2Ygb2JqLmlkID09PSAnc3RyaW5nJyA/IG9iai5pZCA6ICcjJztcblxuICAgIGlmICghJC5pc1VSTChpZCkpIHtcbiAgICAgIGlkID0gJC5yZXNvbHZlVVJMKHBhcmVudCA9PT0gaWQgPyBudWxsIDogcGFyZW50LCBpZCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouJHJlZiA9PT0gJ3N0cmluZycgJiYgISQuaXNVUkwob2JqLiRyZWYpKSB7XG4gICAgICBvYmouJHJlZiA9ICQucmVzb2x2ZVVSTChpZCwgb2JqLiRyZWYpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb2JqLmlkID09PSAnc3RyaW5nJykge1xuICAgICAgb2JqLmlkID0gcGFyZW50ID0gaWQ7XG4gICAgfVxuICB9XG5cbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIHZhciB2YWx1ZSA9IG9ialtrZXldO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIShrZXkgPT09ICdlbnVtJyB8fCBrZXkgPT09ICdyZXF1aXJlZCcpKSB7XG4gICAgICBleHBhbmQodmFsdWUsIHBhcmVudCwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYWxsYmFjayhvYmopO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZmFrZXJvb3QsIHNjaGVtYSwgcHVzaCkge1xuICBpZiAodHlwZW9mIGZha2Vyb290ID09PSAnb2JqZWN0Jykge1xuICAgIHB1c2ggPSBzY2hlbWE7XG4gICAgc2NoZW1hID0gZmFrZXJvb3Q7XG4gICAgZmFrZXJvb3QgPSBudWxsO1xuICB9XG5cbiAgdmFyIGJhc2UgPSBmYWtlcm9vdCB8fCAnJyxcbiAgICAgIGNvcHkgPSBjbG9uZU9iaihzY2hlbWEpO1xuXG4gIGlmIChjb3B5LiRzY2hlbWEgJiYgU0NIRU1BX1VSSS5pbmRleE9mKGNvcHkuJHNjaGVtYSkgPT09IC0xKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBzY2hlbWEgdmVyc2lvbiAodjQgb25seSknKTtcbiAgfVxuXG4gIGJhc2UgPSAkLnJlc29sdmVVUkwoY29weS4kc2NoZW1hIHx8IFNDSEVNQV9VUklbMF0sIGJhc2UpO1xuXG4gIGV4cGFuZChjb3B5LCAkLnJlc29sdmVVUkwoY29weS5pZCwgYmFzZSksIHB1c2gpO1xuXG4gIC8vIFRPRE86IHJlcXVpcmVkIGZvciBqc29uLXBvaW50ZXIgdG8gaXRzZWxmP1xuICBjb3B5LmlkID0gY29weS5pZCB8fCAnIyc7XG5cbiAgcmV0dXJuIGNvcHk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgJCA9IHJlcXVpcmUoJy4vdXJpLWhlbHBlcnMnKTtcblxudmFyIGZpbmQgPSByZXF1aXJlKCcuL2ZpbmQtcmVmZXJlbmNlJyk7XG5cbmZ1bmN0aW9uIGNsb25lKG9iaiwgcmVmcywgY2hpbGQsIGV4cGFuZCkge1xuICB2YXIgY29weSA9IHt9O1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICBjb3B5ID0gW107XG4gIH1cblxuICBpZiAoJC5pc1VSTChvYmouJHJlZikpIHtcbiAgICB2YXIgZml4ZWQgPSBmaW5kKG9iai4kcmVmLCByZWZzKTtcblxuICAgIGlmIChmaXhlZCAmJiBleHBhbmQpIHtcbiAgICAgIHZhciBpZCA9IHR5cGVvZiBmaXhlZC5pZCA9PT0gJ3N0cmluZycgPyBmaXhlZC5pZCA6ICcjJztcblxuICAgICAgb2JqID0gZml4ZWQ7XG5cbiAgICAgIGlmIChvYmouJHJlZiAhPT0gaWQpIHtcbiAgICAgICAgcmV0dXJuIGNsb25lKGZpeGVkLCByZWZzLCB0cnVlLCBleHBhbmQpO1xuICAgICAgfVxuXG4gICAgICBkZWxldGUgb2JqLiRyZWY7XG4gICAgfVxuICB9XG5cbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIHZhciB2YWx1ZSA9IG9ialtrZXldO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIShrZXkgPT09ICdlbnVtJyB8fCBrZXkgPT09ICdyZXF1aXJlZCcpKSB7XG4gICAgICBjb3B5W2tleV0gPSBjbG9uZSh2YWx1ZSwgcmVmcywgdHJ1ZSwgZXhwYW5kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29weVtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogc2VyaW91c2x5IGFyZSByZXF1aXJlZCBvciBub3Q/XG4gIGlmIChjaGlsZCkge1xuICAgIGlmICh0eXBlb2YgY29weS4kc2NoZW1hID09PSAnc3RyaW5nJykge1xuICAgICAgZGVsZXRlIGNvcHkuJHNjaGVtYTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvcHkuaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZWxldGUgY29weS5pZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29weTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvYmosIHJlZnMsIGV4cGFuZCkge1xuICByZXR1cm4gY2xvbmUob2JqLCByZWZzLCBmYWxzZSwgZXhwYW5kKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3BqdDMzL2VmYjJmMTEzNGJhYjk4NjExM2ZkXG5cbmZ1bmN0aW9uIFVSTFV0aWxzKHVybCwgYmFzZVVSTCkge1xuICB2YXIgbSA9IFN0cmluZyh1cmwpLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKS5tYXRjaCgvXihbXjpcXC8/I10rOik/KD86XFwvXFwvKD86KFteOkBdKikoPzo6KFteOkBdKikpP0ApPygoW146XFwvPyNdKikoPzo6KFxcZCopKT8pKT8oW14/I10qKShcXD9bXiNdKik/KCNbXFxzXFxTXSopPy8pO1xuICBpZiAoIW0pIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigpO1xuICB9XG4gIHZhciBocmVmID0gbVswXSB8fCAnJztcbiAgdmFyIHByb3RvY29sID0gbVsxXSB8fCAnJztcbiAgdmFyIHVzZXJuYW1lID0gbVsyXSB8fCAnJztcbiAgdmFyIHBhc3N3b3JkID0gbVszXSB8fCAnJztcbiAgdmFyIGhvc3QgPSBtWzRdIHx8ICcnO1xuICB2YXIgaG9zdG5hbWUgPSBtWzVdIHx8ICcnO1xuICB2YXIgcG9ydCA9IG1bNl0gfHwgJyc7XG4gIHZhciBwYXRobmFtZSA9IG1bN10gfHwgJyc7XG4gIHZhciBzZWFyY2ggPSBtWzhdIHx8ICcnO1xuICB2YXIgaGFzaCA9IG1bOV0gfHwgJyc7XG4gIGlmIChiYXNlVVJMICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgYmFzZSA9IG5ldyBVUkxVdGlscyhiYXNlVVJMKTtcbiAgICB2YXIgZmxhZyA9IHByb3RvY29sID09PSAnJyAmJiBob3N0ID09PSAnJyAmJiB1c2VybmFtZSA9PT0gJyc7XG4gICAgaWYgKGZsYWcgJiYgcGF0aG5hbWUgPT09ICcnICYmIHNlYXJjaCA9PT0gJycpIHtcbiAgICAgIHNlYXJjaCA9IGJhc2Uuc2VhcmNoO1xuICAgIH1cbiAgICBpZiAoZmxhZyAmJiBwYXRobmFtZS5jaGFyQXQoMCkgIT09ICcvJykge1xuICAgICAgcGF0aG5hbWUgPSAocGF0aG5hbWUgIT09ICcnID8gKGJhc2UucGF0aG5hbWUuc2xpY2UoMCwgYmFzZS5wYXRobmFtZS5sYXN0SW5kZXhPZignLycpICsgMSkgKyBwYXRobmFtZSkgOiBiYXNlLnBhdGhuYW1lKTtcbiAgICB9XG4gICAgLy8gZG90IHNlZ21lbnRzIHJlbW92YWxcbiAgICB2YXIgb3V0cHV0ID0gW107XG5cbiAgICBwYXRobmFtZS5yZXBsYWNlKC9cXC8/W15cXC9dKy9nLCBmdW5jdGlvbihwKSB7XG4gICAgICBpZiAocCA9PT0gJy8uLicpIHtcbiAgICAgICAgb3V0cHV0LnBvcCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0LnB1c2gocCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBwYXRobmFtZSA9IG91dHB1dC5qb2luKCcnKSB8fCAnLyc7XG5cbiAgICBpZiAoZmxhZykge1xuICAgICAgcG9ydCA9IGJhc2UucG9ydDtcbiAgICAgIGhvc3RuYW1lID0gYmFzZS5ob3N0bmFtZTtcbiAgICAgIGhvc3QgPSBiYXNlLmhvc3Q7XG4gICAgICBwYXNzd29yZCA9IGJhc2UucGFzc3dvcmQ7XG4gICAgICB1c2VybmFtZSA9IGJhc2UudXNlcm5hbWU7XG4gICAgfVxuICAgIGlmIChwcm90b2NvbCA9PT0gJycpIHtcbiAgICAgIHByb3RvY29sID0gYmFzZS5wcm90b2NvbDtcbiAgICB9XG4gICAgaHJlZiA9IHByb3RvY29sICsgKGhvc3QgIT09ICcnID8gJy8vJyA6ICcnKSArICh1c2VybmFtZSAhPT0gJycgPyB1c2VybmFtZSArIChwYXNzd29yZCAhPT0gJycgPyAnOicgKyBwYXNzd29yZCA6ICcnKSArICdAJyA6ICcnKSArIGhvc3QgKyBwYXRobmFtZSArIHNlYXJjaCArIGhhc2g7XG4gIH1cbiAgdGhpcy5ocmVmID0gaHJlZjtcbiAgdGhpcy5vcmlnaW4gPSBwcm90b2NvbCArIChob3N0ICE9PSAnJyA/ICcvLycgKyBob3N0IDogJycpO1xuICB0aGlzLnByb3RvY29sID0gcHJvdG9jb2w7XG4gIHRoaXMudXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgdGhpcy5wYXNzd29yZCA9IHBhc3N3b3JkO1xuICB0aGlzLmhvc3QgPSBob3N0O1xuICB0aGlzLmhvc3RuYW1lID0gaG9zdG5hbWU7XG4gIHRoaXMucG9ydCA9IHBvcnQ7XG4gIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgdGhpcy5zZWFyY2ggPSBzZWFyY2g7XG4gIHRoaXMuaGFzaCA9IGhhc2g7XG59XG5cbmZ1bmN0aW9uIGlzVVJMKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJyAmJiAvXlxcdys6XFwvXFwvLy50ZXN0KHBhdGgpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VVUkkoaHJlZiwgYmFzZSkge1xuICByZXR1cm4gbmV3IFVSTFV0aWxzKGhyZWYsIGJhc2UpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlVVJMKGJhc2UsIGhyZWYpIHtcbiAgYmFzZSA9IGJhc2UgfHwgJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hIyc7XG5cbiAgaHJlZiA9IHBhcnNlVVJJKGhyZWYsIGJhc2UpO1xuICBiYXNlID0gcGFyc2VVUkkoYmFzZSk7XG5cbiAgaWYgKGJhc2UuaGFzaCAmJiAhaHJlZi5oYXNoKSB7XG4gICAgcmV0dXJuIGhyZWYuaHJlZiArIGJhc2UuaGFzaDtcbiAgfVxuXG4gIHJldHVybiBocmVmLmhyZWY7XG59XG5cbmZ1bmN0aW9uIGdldERvY3VtZW50VVJJKHVyaSkge1xuICByZXR1cm4gdHlwZW9mIHVyaSA9PT0gJ3N0cmluZycgJiYgdXJpLnNwbGl0KCcjJylbMF07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpc1VSTDogaXNVUkwsXG4gIHBhcnNlVVJJOiBwYXJzZVVSSSxcbiAgcmVzb2x2ZVVSTDogcmVzb2x2ZVVSTCxcbiAgZ2V0RG9jdW1lbnRVUkk6IGdldERvY3VtZW50VVJJXG59O1xuIiwiLypcblxuICAgdGhpcyBpbmRleC5qcyBmaWxlIGlzIHVzZWQgZm9yIGluY2x1ZGluZyB0aGUgZmFrZXIgbGlicmFyeSBhcyBhIENvbW1vbkpTIG1vZHVsZSwgaW5zdGVhZCBvZiBhIGJ1bmRsZVxuXG4gICB5b3UgY2FuIGluY2x1ZGUgdGhlIGZha2VyIGxpYnJhcnkgaW50byB5b3VyIGV4aXN0aW5nIG5vZGUuanMgYXBwbGljYXRpb24gYnkgcmVxdWlyaW5nIHRoZSBlbnRpcmUgL2Zha2VyIGRpcmVjdG9yeVxuXG4gICAgdmFyIGZha2VyID0gcmVxdWlyZSguL2Zha2VyKTtcbiAgICB2YXIgcmFuZG9tTmFtZSA9IGZha2VyLm5hbWUuZmluZE5hbWUoKTtcblxuICAgeW91IGNhbiBhbHNvIHNpbXBseSBpbmNsdWRlIHRoZSBcImZha2VyLmpzXCIgZmlsZSB3aGljaCBpcyB0aGUgYXV0by1nZW5lcmF0ZWQgYnVuZGxlZCB2ZXJzaW9uIG9mIHRoZSBmYWtlciBsaWJyYXJ5XG5cbiAgICB2YXIgZmFrZXIgPSByZXF1aXJlKC4vY3VzdG9tQXBwUGF0aC9mYWtlcik7XG4gICAgdmFyIHJhbmRvbU5hbWUgPSBmYWtlci5uYW1lLmZpbmROYW1lKCk7XG5cblxuICBpZiB5b3UgcGxhbiBvbiBtb2RpZnlpbmcgdGhlIGZha2VyIGxpYnJhcnkgeW91IHNob3VsZCBiZSBwZXJmb3JtaW5nIHlvdXIgY2hhbmdlcyBpbiB0aGUgL2xpYi8gZGlyZWN0b3J5XG5cbiovXG5cbmV4cG9ydHMubmFtZSA9IHJlcXVpcmUoJy4vbGliL25hbWUnKTtcbmV4cG9ydHMuYWRkcmVzcyA9IHJlcXVpcmUoJy4vbGliL2FkZHJlc3MnKTtcbmV4cG9ydHMucGhvbmUgPSByZXF1aXJlKCcuL2xpYi9waG9uZV9udW1iZXInKTtcbmV4cG9ydHMuaW50ZXJuZXQgPSByZXF1aXJlKCcuL2xpYi9pbnRlcm5ldCcpO1xuZXhwb3J0cy5jb21wYW55ID0gcmVxdWlyZSgnLi9saWIvY29tcGFueScpO1xuZXhwb3J0cy5pbWFnZSA9IHJlcXVpcmUoJy4vbGliL2ltYWdlJyk7XG5leHBvcnRzLmxvcmVtID0gcmVxdWlyZSgnLi9saWIvbG9yZW0nKTtcbmV4cG9ydHMuaGVscGVycyA9ICByZXF1aXJlKCcuL2xpYi9oZWxwZXJzJyk7XG5leHBvcnRzLmRhdGUgPSByZXF1aXJlKCcuL2xpYi9kYXRlJyk7XG5leHBvcnRzLnJhbmRvbSA9IHJlcXVpcmUoJy4vbGliL3JhbmRvbScpO1xuZXhwb3J0cy5maW5hbmNlID0gcmVxdWlyZSgnLi9saWIvZmluYW5jZScpO1xuZXhwb3J0cy5oYWNrZXIgPSByZXF1aXJlKCcuL2xpYi9oYWNrZXInKTtcblxudmFyIGxvY2FsZXMgPSBleHBvcnRzLmxvY2FsZXMgPSByZXF1aXJlKCcuL2xpYi9sb2NhbGVzJyk7XG5cbi8vIGRlZmF1bHQgbG9jYWxlXG5leHBvcnRzLmxvY2FsZSA9IFwiZW5cIjtcblxuLy8gaW4gY2FzZSBhIGxvY2FsZSBpcyBtaXNzaW5nIGEgZGVmaW5pdGlvbiwgZmFsbGJhY2sgdG8gdGhpcyBsb2NhbGVcbmV4cG9ydHMubG9jYWxlRmFsbGJhY2sgPSBcImVuXCI7XG5cbmV4cG9ydHMuZGVmaW5pdGlvbnMgPSB7fTtcblxudmFyIF9kZWZpbml0aW9ucyA9IHtcbiAgXCJuYW1lXCI6IFtcImZpcnN0X25hbWVcIiwgXCJsYXN0X25hbWVcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIl0sXG4gIFwiYWRkcmVzc1wiOiBbXCJjaXR5X3ByZWZpeFwiLCBcImNpdHlfc3VmZml4XCIsIFwic3RyZWV0X3N1ZmZpeFwiLCBcImNvdW50eVwiLCBcImNvdW50cnlcIiwgXCJzdGF0ZVwiLCBcInN0YXRlX2FiYnJcIl0sXG4gIFwiY29tcGFueVwiOiBbXCJhZGplY3RpdmVcIiwgXCJub3VuXCIsIFwiZGVzY3JpcHRvclwiLCBcImJzX2FkamVjdGl2ZVwiLCBcImJzX25vdW5cIiwgXCJic192ZXJiXCJdLFxuICBcImxvcmVtXCI6IFtcIndvcmRzXCJdLFxuICBcImhhY2tlclwiOiBbXCJhYmJyZXZpYXRpb25cIiwgXCJhZGplY3RpdmVcIiwgXCJub3VuXCIsIFwidmVyYlwiLCBcImluZ3ZlcmJcIl0sXG4gIFwicGhvbmVfbnVtYmVyXCI6IFtcImZvcm1hdHNcIl0sXG4gIFwiZmluYW5jZVwiOiBbXCJhY2NvdW50X3R5cGVcIiwgXCJ0cmFuc2FjdGlvbl90eXBlXCIsIFwiY3VycmVuY3lcIl0sXG4gIFwiaW50ZXJuZXRcIjogW1wiYXZhdGFyX3VyaVwiLCBcImRvbWFpbl9zdWZmaXhcIiwgXCJmcmVlX2VtYWlsXCIsIFwicGFzc3dvcmRcIl1cbn07XG5cbi8vIENyZWF0ZSBhIEdldHRlciBmb3IgYWxsIGRlZmluaXRpb25zLmZvby5iYXIgcHJvcGV0cmllc1xuT2JqZWN0LmtleXMoX2RlZmluaXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe1xuICBpZiAodHlwZW9mIGV4cG9ydHMuZGVmaW5pdGlvbnNbZF0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBleHBvcnRzLmRlZmluaXRpb25zW2RdID0ge307XG4gIH1cbiAgX2RlZmluaXRpb25zW2RdLmZvckVhY2goZnVuY3Rpb24ocCl7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmaW5pdGlvbnNbZF0sIHAsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodHlwZW9mIGxvY2FsZXNbZXhwb3J0cy5sb2NhbGVdW2RdID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiBsb2NhbGVzW2V4cG9ydHMubG9jYWxlXVtkXVtwXSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIC8vIGNlcnRhaW4gbG9jYWxpemF0aW9uIHNldHMgY29udGFpbiBsZXNzIGRhdGEgdGhlbiBvdGhlcnMuXG4gICAgICAgICAgLy8gaW4gdGhlIGNhc2Ugb2YgYSBtaXNzaW5nIGRlZmludGlvbiwgdXNlIHRoZSBkZWZhdWx0IGxvY2FsZUZhbGxiYWNrIHRvIHN1YnN0aXR1dGUgdGhlIG1pc3Npbmcgc2V0IGRhdGFcbiAgICAgICAgICByZXR1cm4gbG9jYWxlc1tleHBvcnRzLmxvY2FsZUZhbGxiYWNrXVtkXVtwXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyByZXR1cm4gbG9jYWxpemVkIGRhdGFcbiAgICAgICAgICByZXR1cm4gbG9jYWxlc1tleHBvcnRzLmxvY2FsZV1bZF1bcF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTsiLCJ2YXIgSGVscGVycyA9IHJlcXVpcmUoJy4vaGVscGVycycpO1xudmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGFkZHJlc3MgPSB7XG4gICAgemlwQ29kZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gSGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbXCIjIyMjI1wiLCAnIyMjIyMtIyMjIyddKSk7XG4gICAgfSxcblxuICAgIGNpdHk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdDtcbiAgICAgICAgc3dpdGNoIChmYWtlci5yYW5kb20ubnVtYmVyKDMpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHJlc3VsdCA9IGZha2VyLmFkZHJlc3MuY2l0eVByZWZpeCgpICsgXCIgXCIgKyBmYWtlci5uYW1lLmZpcnN0TmFtZSgpICsgZmFrZXIuYWRkcmVzcy5jaXR5U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIuYWRkcmVzcy5jaXR5UHJlZml4KCkgKyBcIiBcIiArIGZha2VyLm5hbWUuZmlyc3ROYW1lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIubmFtZS5maXJzdE5hbWUoKSArIGZha2VyLmFkZHJlc3MuY2l0eVN1ZmZpeCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGZha2VyLm5hbWUubGFzdE5hbWUoKSArIGZha2VyLmFkZHJlc3MuY2l0eVN1ZmZpeCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuXG4gICAgY2l0eVByZWZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3MuY2l0eV9wcmVmaXgpO1xuICAgIH0sXG5cbiAgICBjaXR5U3VmZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5jaXR5X3N1ZmZpeCk7XG4gICAgfSxcblxuICAgIHN0cmVldE5hbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdDtcbiAgICAgICAgc3dpdGNoIChmYWtlci5yYW5kb20ubnVtYmVyKDEpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHJlc3VsdCA9IGZha2VyLm5hbWUubGFzdE5hbWUoKSArIFwiIFwiICsgZmFrZXIuYWRkcmVzcy5zdHJlZXRTdWZmaXgoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXN1bHQgPSBmYWtlci5uYW1lLmZpcnN0TmFtZSgpICsgXCIgXCIgKyBmYWtlci5hZGRyZXNzLnN0cmVldFN1ZmZpeCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuXG4gICAgLy9cbiAgICAvLyBUT0RPOiBjaGFuZ2UgYWxsIHRoZXNlIG1ldGhvZHMgdGhhdCBhY2NlcHQgYSBib29sZWFuIHRvIGluc3RlYWQgYWNjZXB0IGFuIG9wdGlvbnMgaGFzaC5cbiAgICAvL1xuICAgIHN0cmVldEFkZHJlc3M6IGZ1bmN0aW9uICh1c2VGdWxsQWRkcmVzcykge1xuICAgICAgICBpZiAodXNlRnVsbEFkZHJlc3MgPT09IHVuZGVmaW5lZCkgeyB1c2VGdWxsQWRkcmVzcyA9IGZhbHNlOyB9XG4gICAgICAgIHZhciBhZGRyZXNzID0gXCJcIjtcbiAgICAgICAgc3dpdGNoIChmYWtlci5yYW5kb20ubnVtYmVyKDIpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIGFkZHJlc3MgPSBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKFwiIyMjIyNcIikgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0TmFtZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIGFkZHJlc3MgPSBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKFwiIyMjI1wiKSArICBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0TmFtZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGFkZHJlc3MgPSBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKFwiIyMjXCIpICsgXCIgXCIgKyBmYWtlci5hZGRyZXNzLnN0cmVldE5hbWUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1c2VGdWxsQWRkcmVzcyA/IChhZGRyZXNzICsgXCIgXCIgKyBmYWtlci5hZGRyZXNzLnNlY29uZGFyeUFkZHJlc3MoKSkgOiBhZGRyZXNzO1xuICAgIH0sXG5cbiAgICBzdHJlZXRTdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3Muc3RyZWV0X3N1ZmZpeCk7XG4gICAgfSxcblxuICAgIHNlY29uZGFyeUFkZHJlc3M6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ0FwdC4gIyMjJyxcbiAgICAgICAgICAgICAgICAnU3VpdGUgIyMjJ1xuICAgICAgICAgICAgXVxuICAgICAgICApKTtcbiAgICB9LFxuXG4gICAgY291bnR5OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5jb3VudHkpO1xuICAgIH0sXG5cbiAgICBjb3VudHJ5OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5jb3VudHJ5KTtcbiAgICB9LFxuXG4gICAgc3RhdGU6IGZ1bmN0aW9uICh1c2VBYmJyKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLnN0YXRlKTtcbiAgICB9LFxuXG4gICAgc3RhdGVBYmJyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLnN0YXRlX2FiYnIpO1xuICAgIH0sXG5cbiAgICBsYXRpdHVkZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKGZha2VyLnJhbmRvbS5udW1iZXIoMTgwICogMTAwMDApIC8gMTAwMDAuMCAtIDkwLjApLnRvRml4ZWQoNCk7XG4gICAgfSxcblxuICAgIGxvbmdpdHVkZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKGZha2VyLnJhbmRvbS5udW1iZXIoMzYwICogMTAwMDApIC8gMTAwMDAuMCAtIDE4MC4wKS50b0ZpeGVkKDQpO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYWRkcmVzcztcbiIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbnZhciBjb21wYW55ID0ge1xuXG4gICAgc3VmZml4ZXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtcIkluY1wiLCBcImFuZCBTb25zXCIsIFwiTExDXCIsIFwiR3JvdXBcIiwgXCJhbmQgRGF1Z2h0ZXJzXCJdO1xuICAgIH0sXG5cbiAgICBjb21wYW55TmFtZTogZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICBzd2l0Y2ggKChmb3JtYXQgPyBmb3JtYXQgOiBmYWtlci5yYW5kb20ubnVtYmVyKDIpKSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCIgXCIgKyBmYWtlci5jb21wYW55LmNvbXBhbnlTdWZmaXgoKTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGZha2VyLm5hbWUubGFzdE5hbWUoKSArIFwiLVwiICsgZmFrZXIubmFtZS5sYXN0TmFtZSgpO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCIsIFwiICsgZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCIgYW5kIFwiICsgZmFrZXIubmFtZS5sYXN0TmFtZSgpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBhbnlTdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmNvbXBhbnkuc3VmZml4ZXMoKSk7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlQWRqZWN0aXZlKCkgKyBcIiBcIiArXG4gICAgICAgICAgICBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlRGVzY3JpcHRvcigpICsgXCIgXCIgK1xuICAgICAgICAgICAgZmFrZXIuY29tcGFueS5jYXRjaFBocmFzZU5vdW4oKTtcbiAgICB9LFxuXG4gICAgYnM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLmNvbXBhbnkuYnNBZGplY3RpdmUoKSArIFwiIFwiICtcbiAgICAgICAgICAgIGZha2VyLmNvbXBhbnkuYnNCdXp6KCkgKyBcIiBcIiArXG4gICAgICAgICAgICBmYWtlci5jb21wYW55LmJzTm91bigpO1xuICAgIH0sXG5cbiAgICBjYXRjaFBocmFzZUFkamVjdGl2ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5hZGplY3RpdmUpO1xuICAgIH0sXG5cbiAgICBjYXRjaFBocmFzZURlc2NyaXB0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmNvbXBhbnkuZGVzY3JpcHRvcik7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlTm91bjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5ub3VuKTtcbiAgICB9LFxuXG4gICAgYnNBZGplY3RpdmU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmNvbXBhbnkuYnNfYWRqZWN0aXZlKTtcbiAgICB9LFxuXG4gICAgYnNCdXp6OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5jb21wYW55LmJzX3ZlcmIpO1xuICAgIH0sXG5cbiAgICBic05vdW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmNvbXBhbnkuYnNfbm91bik7XG4gICAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXBhbnk7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKFwiLi4vaW5kZXhcIik7XG5cbnZhciBkYXRlID0ge1xuXG4gICAgcGFzdDogZnVuY3Rpb24gKHllYXJzLCByZWZEYXRlKSB7XG4gICAgICAgIHZhciBkYXRlID0gKHJlZkRhdGUpID8gbmV3IERhdGUoRGF0ZS5wYXJzZShyZWZEYXRlKSkgOiBuZXcgRGF0ZSgpO1xuICAgICAgICB2YXIgcmFuZ2UgPSB7XG4gICAgICAgICAgbWluOiAxMDAwLFxuICAgICAgICAgIG1heDogKHllYXJzIHx8IDEpICogMzY1ICogMjQgKiAzNjAwICogMTAwMFxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBwYXN0ID0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIHBhc3QgLT0gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7IC8vIHNvbWUgdGltZSBmcm9tIG5vdyB0byBOIHllYXJzIGFnbywgaW4gbWlsbGlzZWNvbmRzXG4gICAgICAgIGRhdGUuc2V0VGltZShwYXN0KTtcblxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9LFxuXG4gICAgZnV0dXJlOiBmdW5jdGlvbiAoeWVhcnMsIHJlZkRhdGUpIHtcbiAgICAgICAgdmFyIGRhdGUgPSAocmVmRGF0ZSkgPyBuZXcgRGF0ZShEYXRlLnBhcnNlKHJlZkRhdGUpKSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIHZhciByYW5nZSA9IHtcbiAgICAgICAgICBtaW46IDEwMDAsXG4gICAgICAgICAgbWF4OiAoeWVhcnMgfHwgMSkgKiAzNjUgKiAyNCAqIDM2MDAgKiAxMDAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZ1dHVyZSA9IGRhdGUuZ2V0VGltZSgpO1xuICAgICAgICBmdXR1cmUgKz0gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7IC8vIHNvbWUgdGltZSBmcm9tIG5vdyB0byBOIHllYXJzIGxhdGVyLCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgZGF0ZS5zZXRUaW1lKGZ1dHVyZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfSxcblxuICAgIGJldHdlZW46IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgICB2YXIgZnJvbU1pbGxpID0gRGF0ZS5wYXJzZShmcm9tKTtcbiAgICAgICAgdmFyIGRhdGVPZmZzZXQgPSBmYWtlci5yYW5kb20ubnVtYmVyKERhdGUucGFyc2UodG8pIC0gZnJvbU1pbGxpKTtcblxuICAgICAgICB2YXIgbmV3RGF0ZSA9IG5ldyBEYXRlKGZyb21NaWxsaSArIGRhdGVPZmZzZXQpO1xuXG4gICAgICAgIHJldHVybiBuZXdEYXRlO1xuICAgIH0sXG5cbiAgICByZWNlbnQ6IGZ1bmN0aW9uIChkYXlzKSB7XG4gICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgdmFyIHJhbmdlID0ge1xuICAgICAgICAgIG1pbjogMTAwMCxcbiAgICAgICAgICBtYXg6IChkYXlzIHx8IDEpICogMjQgKiAzNjAwICogMTAwMFxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBmdXR1cmUgPSBkYXRlLmdldFRpbWUoKTtcbiAgICAgICAgZnV0dXJlIC09IGZha2VyLnJhbmRvbS5udW1iZXIocmFuZ2UpOyAvLyBzb21lIHRpbWUgZnJvbSBub3cgdG8gTiBkYXlzIGFnbywgaW4gbWlsbGlzZWNvbmRzXG4gICAgICAgIGRhdGUuc2V0VGltZShmdXR1cmUpO1xuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cbn07XG5tb2R1bGUuZXhwb3J0cyA9IGRhdGU7XG4iLCJ2YXIgSGVscGVycyA9IHJlcXVpcmUoJy4vaGVscGVycycpLFxuICAgIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGZpbmFuY2UgPSB7XG5cbiAgICBhY2NvdW50OiBmdW5jdGlvbiAobGVuZ3RoKSB7XG5cbiAgICAgICAgbGVuZ3RoID0gbGVuZ3RoIHx8IDg7XG5cbiAgICAgICAgdmFyIHRlbXBsYXRlID0gJyc7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZSArICcjJztcbiAgICAgICAgfVxuICAgICAgICBsZW5ndGggPSBudWxsO1xuICAgICAgICByZXR1cm4gSGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcih0ZW1wbGF0ZSk7XG4gICAgfSxcblxuICAgIGFjY291bnROYW1lOiBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgcmV0dXJuIFtIZWxwZXJzLnJhbmRvbWl6ZShmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmFjY291bnRfdHlwZSksICdBY2NvdW50J10uam9pbignICcpO1xuICAgIH0sXG5cbiAgICBtYXNrOiBmdW5jdGlvbiAobGVuZ3RoLCBwYXJlbnMsIGVsaXBzaXMpIHtcblxuXG4gICAgICAgIC8vc2V0IGRlZmF1bHRzXG4gICAgICAgIGxlbmd0aCA9IChsZW5ndGggPT0gMCB8fCAhbGVuZ3RoIHx8IHR5cGVvZiBsZW5ndGggPT0gJ3VuZGVmaW5lZCcpID8gNCA6IGxlbmd0aDtcbiAgICAgICAgcGFyZW5zID0gKHBhcmVucyA9PT0gbnVsbCkgPyB0cnVlIDogcGFyZW5zO1xuICAgICAgICBlbGlwc2lzID0gKGVsaXBzaXMgPT09IG51bGwpID8gdHJ1ZSA6IGVsaXBzaXM7XG5cbiAgICAgICAgLy9jcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgbGVuZ3RoXG4gICAgICAgIHZhciB0ZW1wbGF0ZSA9ICcnO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRlbXBsYXRlID0gdGVtcGxhdGUgKyAnIyc7XG4gICAgICAgIH1cblxuICAgICAgICAvL3ByZWZpeCB3aXRoIGVsaXBzaXNcbiAgICAgICAgdGVtcGxhdGUgPSAoZWxpcHNpcykgPyBbJy4uLicsIHRlbXBsYXRlXS5qb2luKCcnKSA6IHRlbXBsYXRlO1xuXG4gICAgICAgIHRlbXBsYXRlID0gKHBhcmVucykgPyBbJygnLCB0ZW1wbGF0ZSwgJyknXS5qb2luKCcnKSA6IHRlbXBsYXRlO1xuXG4gICAgICAgIC8vZ2VuZXJhdGUgcmFuZG9tIG51bWJlcnNcbiAgICAgICAgdGVtcGxhdGUgPSBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKHRlbXBsYXRlKTtcblxuICAgICAgICByZXR1cm4gdGVtcGxhdGU7XG5cbiAgICB9LFxuXG4gICAgLy9taW4gYW5kIG1heCB0YWtlIGluIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50cywgZGVjIGlzIHRoZSBkZWNpbWFsIHBsYWNlIHlvdSB3YW50IHJvdW5kZWQgdG8sIHN5bWJvbCBpcyAkLCDigqwsIMKjLCBldGNcbiAgICAvL05PVEU6IHRoaXMgcmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUsIGlmIHlvdSB3YW50IGEgbnVtYmVyIHVzZSBwYXJzZUZsb2F0IGFuZCBubyBzeW1ib2xcblxuICAgIGFtb3VudDogZnVuY3Rpb24gKG1pbiwgbWF4LCBkZWMsIHN5bWJvbCkge1xuXG4gICAgICAgIG1pbiA9IG1pbiB8fCAwO1xuICAgICAgICBtYXggPSBtYXggfHwgMTAwMDtcbiAgICAgICAgZGVjID0gZGVjIHx8IDI7XG4gICAgICAgIHN5bWJvbCA9IHN5bWJvbCB8fCAnJztcblxuICAgICAgICByZXR1cm4gc3ltYm9sICsgKE1hdGgucm91bmQoKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbikgKiBNYXRoLnBvdygxMCwgZGVjKSkgLyBNYXRoLnBvdygxMCwgZGVjKSkudG9GaXhlZChkZWMpO1xuXG4gICAgfSxcblxuICAgIHRyYW5zYWN0aW9uVHlwZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gSGVscGVycy5yYW5kb21pemUoZmFrZXIuZGVmaW5pdGlvbnMuZmluYW5jZS50cmFuc2FjdGlvbl90eXBlKTtcbiAgICB9LFxuXG4gICAgY3VycmVuY3lDb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20ub2JqZWN0X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuZmluYW5jZS5jdXJyZW5jeSlbJ2NvZGUnXTtcbiAgICB9LFxuXG4gICAgY3VycmVuY3lOYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20ub2JqZWN0X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuZmluYW5jZS5jdXJyZW5jeSwgJ2tleScpO1xuICAgIH0sXG5cbiAgICBjdXJyZW5jeVN5bWJvbDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgc3ltYm9sO1xuXG4gICAgICAgIHdoaWxlICghc3ltYm9sKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBmYWtlci5yYW5kb20ub2JqZWN0X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuZmluYW5jZS5jdXJyZW5jeSlbJ3N5bWJvbCddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzeW1ib2w7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmaW5hbmNlOyIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbnZhciBoYWNrZXIgPSB7XG5cbiAgYWJicmV2aWF0aW9uIDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5oYWNrZXIuYWJicmV2aWF0aW9uKTtcbiAgfSxcblxuICBhZGplY3RpdmUgOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci5hZGplY3RpdmUpO1xuICB9LFxuXG4gIG5vdW4gOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci5ub3VuKTtcbiAgfSxcblxuICB2ZXJiIDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5oYWNrZXIudmVyYik7XG4gIH0sXG5cbiAgaW5ndmVyYiA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaGFja2VyLmluZ3ZlcmIpO1xuICB9LFxuXG4gIHBocmFzZSA6IGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBkYXRhID0ge1xuICAgICAgYWJicmV2aWF0aW9uOiBoYWNrZXIuYWJicmV2aWF0aW9uKCksXG4gICAgICBhZGplY3RpdmU6IGhhY2tlci5hZGplY3RpdmUoKSxcbiAgICAgIGluZ3ZlcmI6IGhhY2tlci5pbmd2ZXJiKCksXG4gICAgICBub3VuOiBoYWNrZXIubm91bigpLFxuICAgICAgdmVyYjogaGFja2VyLnZlcmIoKVxuICAgIH07XG5cbiAgICB2YXIgcGhyYXNlID0gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoWyBcIklmIHdlIHt7dmVyYn19IHRoZSB7e25vdW59fSwgd2UgY2FuIGdldCB0byB0aGUge3thYmJyZXZpYXRpb259fSB7e25vdW59fSB0aHJvdWdoIHRoZSB7e2FkamVjdGl2ZX19IHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0hXCIsXG4gICAgICBcIldlIG5lZWQgdG8ge3t2ZXJifX0gdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSFcIixcbiAgICAgIFwiVHJ5IHRvIHt7dmVyYn19IHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19LCBtYXliZSBpdCB3aWxsIHt7dmVyYn19IHRoZSB7e2FkamVjdGl2ZX19IHt7bm91bn19IVwiLFxuICAgICAgXCJZb3UgY2FuJ3Qge3t2ZXJifX0gdGhlIHt7bm91bn19IHdpdGhvdXQge3tpbmd2ZXJifX0gdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSFcIixcbiAgICAgIFwiVXNlIHRoZSB7e2FkamVjdGl2ZX19IHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0sIHRoZW4geW91IGNhbiB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e25vdW59fSFcIixcbiAgICAgIFwiVGhlIHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0gaXMgZG93biwge3t2ZXJifX0gdGhlIHt7YWRqZWN0aXZlfX0ge3tub3VufX0gc28gd2UgY2FuIHt7dmVyYn19IHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJ7e2luZ3ZlcmJ9fSB0aGUge3tub3VufX0gd29uJ3QgZG8gYW55dGhpbmcsIHdlIG5lZWQgdG8ge3t2ZXJifX0gdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSFcIixcbiAgICAgIFwiSSdsbCB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19LCB0aGF0IHNob3VsZCB7e25vdW59fSB0aGUge3thYmJyZXZpYXRpb259fSB7e25vdW59fSFcIlxuICAgXSk7XG5cbiAgIHJldHVybiBmYWtlci5oZWxwZXJzLm11c3RhY2hlKHBocmFzZSwgZGF0YSk7XG5cbiAgfSxcblxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGhhY2tlcjtcbiIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbi8vIGJhY2t3b3JkLWNvbXBhdGliaWxpdHlcbmV4cG9ydHMucmFuZG9tTnVtYmVyID0gZnVuY3Rpb24gKHJhbmdlKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5udW1iZXIocmFuZ2UpO1xufTtcblxuLy8gYmFja3dvcmQtY29tcGF0aWJpbGl0eVxuZXhwb3J0cy5yYW5kb21pemUgPSBmdW5jdGlvbiAoYXJyYXkpIHtcbiAgICBhcnJheSA9IGFycmF5IHx8IFtcImFcIiwgXCJiXCIsIFwiY1wiXTtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoYXJyYXkpO1xufTtcblxuLy8gc2x1Z2lmaWVzIHN0cmluZ1xuZXhwb3J0cy5zbHVnaWZ5ID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgIHN0cmluZyA9IHN0cmluZyB8fCBcIlwiO1xuICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvIC9nLCAnLScpLnJlcGxhY2UoL1teXFx3XFwuXFwtXSsvZywgJycpO1xufTtcblxuLy8gcGFyc2VzIHN0cmluZyBmb3IgYSBzeW1ib2wgYW5kIHJlcGxhY2UgaXQgd2l0aCBhIHJhbmRvbSBudW1iZXIgZnJvbSAxLTEwXG5leHBvcnRzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyID0gZnVuY3Rpb24gKHN0cmluZywgc3ltYm9sKSB7XG4gICAgc3RyaW5nID0gc3RyaW5nIHx8IFwiXCI7XG4gICAgLy8gZGVmYXVsdCBzeW1ib2wgaXMgJyMnXG4gICAgaWYgKHN5bWJvbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN5bWJvbCA9ICcjJztcbiAgICB9XG5cbiAgICB2YXIgc3RyID0gJyc7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHN0cmluZy5jaGFyQXQoaSkgPT0gc3ltYm9sKSB7XG4gICAgICAgICAgICBzdHIgKz0gZmFrZXIucmFuZG9tLm51bWJlcig5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0ciArPSBzdHJpbmcuY2hhckF0KGkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59O1xuXG4vLyB0YWtlcyBhbiBhcnJheSBhbmQgcmV0dXJucyBpdCByYW5kb21pemVkXG5leHBvcnRzLnNodWZmbGUgPSBmdW5jdGlvbiAobykge1xuICAgIG8gPSBvIHx8IFtcImFcIiwgXCJiXCIsIFwiY1wiXTtcbiAgICBmb3IgKHZhciBqLCB4LCBpID0gby5sZW5ndGgtMTsgaTsgaiA9IGZha2VyLnJhbmRvbS5udW1iZXIoaSksIHggPSBvWy0taV0sIG9baV0gPSBvW2pdLCBvW2pdID0geCk7XG4gICAgcmV0dXJuIG87XG59O1xuXG5leHBvcnRzLm11c3RhY2hlID0gZnVuY3Rpb24gKHN0ciwgZGF0YSkge1xuICBmb3IodmFyIHAgaW4gZGF0YSkge1xuICAgIHZhciByZSA9IG5ldyBSZWdFeHAoJ3t7JyArIHAgKyAnfX0nLCAnZycpXG4gICAgc3RyID0gc3RyLnJlcGxhY2UocmUsIGRhdGFbcF0pO1xuICB9XG4gIHJldHVybiBzdHI7XG59O1xuXG5leHBvcnRzLmNyZWF0ZUNhcmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgXCJuYW1lXCI6IGZha2VyLm5hbWUuZmluZE5hbWUoKSxcbiAgICAgICAgXCJ1c2VybmFtZVwiOiBmYWtlci5pbnRlcm5ldC51c2VyTmFtZSgpLFxuICAgICAgICBcImVtYWlsXCI6IGZha2VyLmludGVybmV0LmVtYWlsKCksXG4gICAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcInN0cmVldEFcIjogZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKCksXG4gICAgICAgICAgICBcInN0cmVldEJcIjogZmFrZXIuYWRkcmVzcy5zdHJlZXRBZGRyZXNzKCksXG4gICAgICAgICAgICBcInN0cmVldENcIjogZmFrZXIuYWRkcmVzcy5zdHJlZXRBZGRyZXNzKHRydWUpLFxuICAgICAgICAgICAgXCJzdHJlZXREXCI6IGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpLFxuICAgICAgICAgICAgXCJjaXR5XCI6IGZha2VyLmFkZHJlc3MuY2l0eSgpLFxuICAgICAgICAgICAgXCJzdGF0ZVwiOiBmYWtlci5hZGRyZXNzLnN0YXRlKCksXG4gICAgICAgICAgICBcImNvdW50cnlcIjogZmFrZXIuYWRkcmVzcy5jb3VudHJ5KCksXG4gICAgICAgICAgICBcInppcGNvZGVcIjogZmFrZXIuYWRkcmVzcy56aXBDb2RlKCksXG4gICAgICAgICAgICBcImdlb1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsYXRcIjogZmFrZXIuYWRkcmVzcy5sYXRpdHVkZSgpLFxuICAgICAgICAgICAgICAgIFwibG5nXCI6IGZha2VyLmFkZHJlc3MubG9uZ2l0dWRlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwaG9uZVwiOiBmYWtlci5waG9uZS5waG9uZU51bWJlcigpLFxuICAgICAgICBcIndlYnNpdGVcIjogZmFrZXIuaW50ZXJuZXQuZG9tYWluTmFtZSgpLFxuICAgICAgICBcImNvbXBhbnlcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IGZha2VyLmNvbXBhbnkuY29tcGFueU5hbWUoKSxcbiAgICAgICAgICAgIFwiY2F0Y2hQaHJhc2VcIjogZmFrZXIuY29tcGFueS5jYXRjaFBocmFzZSgpLFxuICAgICAgICAgICAgXCJic1wiOiBmYWtlci5jb21wYW55LmJzKClcbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3N0c1wiOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJ3b3Jkc1wiOiBmYWtlci5sb3JlbS53b3JkcygpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VcIjogZmFrZXIubG9yZW0uc2VudGVuY2UoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlc1wiOiBmYWtlci5sb3JlbS5zZW50ZW5jZXMoKSxcbiAgICAgICAgICAgICAgICBcInBhcmFncmFwaFwiOiBmYWtlci5sb3JlbS5wYXJhZ3JhcGgoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIndvcmRzXCI6IGZha2VyLmxvcmVtLndvcmRzKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZVwiOiBmYWtlci5sb3JlbS5zZW50ZW5jZSgpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VzXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlcygpLFxuICAgICAgICAgICAgICAgIFwicGFyYWdyYXBoXCI6IGZha2VyLmxvcmVtLnBhcmFncmFwaCgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwid29yZHNcIjogZmFrZXIubG9yZW0ud29yZHMoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZXNcIjogZmFrZXIubG9yZW0uc2VudGVuY2VzKCksXG4gICAgICAgICAgICAgICAgXCJwYXJhZ3JhcGhcIjogZmFrZXIubG9yZW0ucGFyYWdyYXBoKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgXCJhY2NvdW50SGlzdG9yeVwiOiBbZmFrZXIuaGVscGVycy5jcmVhdGVUcmFuc2FjdGlvbigpLCBmYWtlci5oZWxwZXJzLmNyZWF0ZVRyYW5zYWN0aW9uKCksIGZha2VyLmhlbHBlcnMuY3JlYXRlVHJhbnNhY3Rpb24oKV1cbiAgICB9O1xufTtcblxuZXhwb3J0cy5jb250ZXh0dWFsQ2FyZCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIG5hbWUgPSBmYWtlci5uYW1lLmZpcnN0TmFtZSgpLFxuICAgICAgdXNlck5hbWUgPSBmYWtlci5pbnRlcm5ldC51c2VyTmFtZShuYW1lKTtcbiAgcmV0dXJuIHtcbiAgICAgIFwibmFtZVwiOiBuYW1lLFxuICAgICAgXCJ1c2VybmFtZVwiOiB1c2VyTmFtZSxcbiAgICAgIFwiYXZhdGFyXCI6IGZha2VyLmludGVybmV0LmF2YXRhcigpLFxuICAgICAgXCJlbWFpbFwiOiBmYWtlci5pbnRlcm5ldC5lbWFpbCh1c2VyTmFtZSksXG4gICAgICBcImRvYlwiOiBmYWtlci5kYXRlLnBhc3QoNTAsIG5ldyBEYXRlKFwiU2F0IFNlcCAyMCAxOTkyIDIxOjM1OjAyIEdNVCswMjAwIChDRVNUKVwiKSksXG4gICAgICBcInBob25lXCI6IGZha2VyLnBob25lLnBob25lTnVtYmVyKCksXG4gICAgICBcImFkZHJlc3NcIjoge1xuICAgICAgICAgIFwic3RyZWV0XCI6IGZha2VyLmFkZHJlc3Muc3RyZWV0TmFtZSh0cnVlKSxcbiAgICAgICAgICBcInN1aXRlXCI6IGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpLFxuICAgICAgICAgIFwiY2l0eVwiOiBmYWtlci5hZGRyZXNzLmNpdHkoKSxcbiAgICAgICAgICBcInppcGNvZGVcIjogZmFrZXIuYWRkcmVzcy56aXBDb2RlKCksXG4gICAgICAgICAgXCJnZW9cIjoge1xuICAgICAgICAgICAgICBcImxhdFwiOiBmYWtlci5hZGRyZXNzLmxhdGl0dWRlKCksXG4gICAgICAgICAgICAgIFwibG5nXCI6IGZha2VyLmFkZHJlc3MubG9uZ2l0dWRlKClcbiAgICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3ZWJzaXRlXCI6IGZha2VyLmludGVybmV0LmRvbWFpbk5hbWUoKSxcbiAgICAgIFwiY29tcGFueVwiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IGZha2VyLmNvbXBhbnkuY29tcGFueU5hbWUoKSxcbiAgICAgICAgICBcImNhdGNoUGhyYXNlXCI6IGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2UoKSxcbiAgICAgICAgICBcImJzXCI6IGZha2VyLmNvbXBhbnkuYnMoKVxuICAgICAgfVxuICB9O1xufTtcblxuXG5leHBvcnRzLnVzZXJDYXJkID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIFwibmFtZVwiOiBmYWtlci5uYW1lLmZpbmROYW1lKCksXG4gICAgICAgIFwidXNlcm5hbWVcIjogZmFrZXIuaW50ZXJuZXQudXNlck5hbWUoKSxcbiAgICAgICAgXCJlbWFpbFwiOiBmYWtlci5pbnRlcm5ldC5lbWFpbCgpLFxuICAgICAgICBcImFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJzdHJlZXRcIjogZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKHRydWUpLFxuICAgICAgICAgICAgXCJzdWl0ZVwiOiBmYWtlci5hZGRyZXNzLnNlY29uZGFyeUFkZHJlc3MoKSxcbiAgICAgICAgICAgIFwiY2l0eVwiOiBmYWtlci5hZGRyZXNzLmNpdHkoKSxcbiAgICAgICAgICAgIFwiemlwY29kZVwiOiBmYWtlci5hZGRyZXNzLnppcENvZGUoKSxcbiAgICAgICAgICAgIFwiZ2VvXCI6IHtcbiAgICAgICAgICAgICAgICBcImxhdFwiOiBmYWtlci5hZGRyZXNzLmxhdGl0dWRlKCksXG4gICAgICAgICAgICAgICAgXCJsbmdcIjogZmFrZXIuYWRkcmVzcy5sb25naXR1ZGUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBob25lXCI6IGZha2VyLnBob25lLnBob25lTnVtYmVyKCksXG4gICAgICAgIFwid2Vic2l0ZVwiOiBmYWtlci5pbnRlcm5ldC5kb21haW5OYW1lKCksXG4gICAgICAgIFwiY29tcGFueVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgICAgICAgICAgXCJjYXRjaFBocmFzZVwiOiBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlKCksXG4gICAgICAgICAgICBcImJzXCI6IGZha2VyLmNvbXBhbnkuYnMoKVxuICAgICAgICB9XG4gICAgfTtcbn07XG5cbmV4cG9ydHMuY3JlYXRlVHJhbnNhY3Rpb24gPSBmdW5jdGlvbigpe1xuICByZXR1cm4ge1xuICAgIFwiYW1vdW50XCIgOiBmYWtlci5maW5hbmNlLmFtb3VudCgpLFxuICAgIFwiZGF0ZVwiIDogbmV3IERhdGUoMjAxMiwgMSwgMiksICAvL1RPRE86IGFkZCBhIHJhbmdlZCBkYXRlIG1ldGhvZFxuICAgIFwiYnVzaW5lc3NcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgIFwibmFtZVwiOiBbZmFrZXIuZmluYW5jZS5hY2NvdW50TmFtZSgpLCBmYWtlci5maW5hbmNlLm1hc2soKV0uam9pbignICcpLFxuICAgIFwidHlwZVwiIDogZXhwb3J0cy5yYW5kb21pemUoZmFrZXIuZGVmaW5pdGlvbnMuZmluYW5jZS50cmFuc2FjdGlvbl90eXBlKSxcbiAgICBcImFjY291bnRcIiA6IGZha2VyLmZpbmFuY2UuYWNjb3VudCgpXG4gIH07XG59O1xuXG4vKlxuU3RyaW5nLnByb3RvdHlwZS5jYXBpdGFsaXplID0gZnVuY3Rpb24gKCkgeyAvL3YxLjBcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC9cXHcrL2csIGZ1bmN0aW9uIChhKSB7XG4gICAgICAgIHJldHVybiBhLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYS5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTtcbiAgICB9KTtcbn07XG4qL1xuXG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgaW1hZ2UgPSB7XG4gIGltYWdlOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGNhdGVnb3JpZXMgPSBbXCJhYnN0cmFjdFwiLCBcImFuaW1hbHNcIiwgXCJidXNpbmVzc1wiLCBcImNhdHNcIiwgXCJjaXR5XCIsIFwiZm9vZFwiLCBcIm5pZ2h0bGlmZVwiLCBcImZhc2hpb25cIiwgXCJwZW9wbGVcIiwgXCJuYXR1cmVcIiwgXCJzcG9ydHNcIiwgXCJ0ZWNobmljc1wiLCBcInRyYW5zcG9ydFwiXTtcbiAgICByZXR1cm4gaW1hZ2VbZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoY2F0ZWdvcmllcyldKCk7XG4gIH0sXG4gIGF2YXRhcjogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWtlci5pbnRlcm5ldC5hdmF0YXIoKTtcbiAgfSxcbiAgaW1hZ2VVcmw6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0LCBjYXRlZ29yeSkge1xuICAgICAgdmFyIHdpZHRoID0gd2lkdGggfHwgNjQwO1xuICAgICAgdmFyIGhlaWdodCA9IGhlaWdodCB8fCA0ODA7XG5cbiAgICAgIHZhciB1cmwgPSdodHRwOi8vbG9yZW1waXhlbC5jb20vJyArIHdpZHRoICsgJy8nICsgaGVpZ2h0O1xuICAgICAgaWYgKHR5cGVvZiBjYXRlZ29yeSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdXJsICs9ICcvJyArIGNhdGVnb3J5O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVybDtcbiAgfSxcbiAgYWJzdHJhY3Q6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdhYnN0cmFjdCcpO1xuICB9LFxuICBhbmltYWxzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnYW5pbWFscycpO1xuICB9LFxuICBidXNpbmVzczogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2J1c2luZXNzJyk7XG4gIH0sXG4gIGNhdHM6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdjYXRzJyk7XG4gIH0sXG4gIGNpdHk6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdjaXR5Jyk7XG4gIH0sXG4gIGZvb2Q6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdmb29kJyk7XG4gIH0sXG4gIG5pZ2h0bGlmZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ25pZ2h0bGlmZScpO1xuICB9LFxuICBmYXNoaW9uOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnZmFzaGlvbicpO1xuICB9LFxuICBwZW9wbGU6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdwZW9wbGUnKTtcbiAgfSxcbiAgbmF0dXJlOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnbmF0dXJlJyk7XG4gIH0sXG4gIHNwb3J0czogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ3Nwb3J0cycpO1xuICB9LFxuICB0ZWNobmljczogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ3RlY2huaWNzJyk7XG4gIH0sXG4gIHRyYW5zcG9ydDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ3RyYW5zcG9ydCcpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGltYWdlO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKSxcbiAgICBwYXNzd29yZF9nZW5lcmF0b3IgPSByZXF1aXJlKCcuLi92ZW5kb3IvcGFzc3dvcmQtZ2VuZXJhdG9yLmpzJyksXG4gICAgcmFuZG9tX3VhID0gcmVxdWlyZSgnLi4vdmVuZG9yL3VzZXItYWdlbnQnKTtcblxudmFyIGludGVybmV0ID0ge1xuXG4gICAgYXZhdGFyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5pbnRlcm5ldC5hdmF0YXJfdXJpKTtcbiAgICB9LFxuXG4gICAgZW1haWw6IGZ1bmN0aW9uIChmaXJzdE5hbWUsIGxhc3ROYW1lLCBwcm92aWRlcikge1xuICAgICAgICBwcm92aWRlciA9IHByb3ZpZGVyIHx8IGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmludGVybmV0LmZyZWVfZW1haWwpO1xuICAgICAgICByZXR1cm4gIGZha2VyLmhlbHBlcnMuc2x1Z2lmeShmYWtlci5pbnRlcm5ldC51c2VyTmFtZShmaXJzdE5hbWUsIGxhc3ROYW1lKSkgKyBcIkBcIiArIHByb3ZpZGVyO1xuICAgIH0sXG5cbiAgICB1c2VyTmFtZTogZnVuY3Rpb24gKGZpcnN0TmFtZSwgbGFzdE5hbWUpIHtcbiAgICAgICAgdmFyIHJlc3VsdDtcbiAgICAgICAgZmlyc3ROYW1lID0gZmlyc3ROYW1lIHx8IGZha2VyLm5hbWUuZmlyc3ROYW1lKCk7XG4gICAgICAgIGxhc3ROYW1lID0gbGFzdE5hbWUgfHwgZmFrZXIubmFtZS5sYXN0TmFtZSgpO1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMikpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmlyc3ROYW1lICsgZmFrZXIucmFuZG9tLm51bWJlcig5OSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmlyc3ROYW1lICsgZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoW1wiLlwiLCBcIl9cIl0pICsgbGFzdE5hbWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmlyc3ROYW1lICsgZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoW1wiLlwiLCBcIl9cIl0pICsgbGFzdE5hbWUgKyBmYWtlci5yYW5kb20ubnVtYmVyKDk5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC8nL2csIFwiXCIpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvIC9nLCBcIlwiKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuXG4gICAgZG9tYWluTmFtZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIuaW50ZXJuZXQuZG9tYWluV29yZCgpICsgXCIuXCIgKyBmYWtlci5pbnRlcm5ldC5kb21haW5TdWZmaXgoKTtcbiAgICB9LFxuXG4gICAgZG9tYWluU3VmZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5pbnRlcm5ldC5kb21haW5fc3VmZml4KTtcbiAgICB9LFxuXG4gICAgZG9tYWluV29yZDogIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLm5hbWUuZmlyc3ROYW1lKCkucmVwbGFjZSgvKFteQS1aMC05Ll8lKy1dKS9pZywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfSxcblxuICAgIGlwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciByYW5kTnVtID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIChmYWtlci5yYW5kb20ubnVtYmVyKDI1NSkpLnRvRml4ZWQoMCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgICAgICAgcmVzdWx0W2ldID0gcmFuZE51bSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdC5qb2luKFwiLlwiKTtcbiAgICB9LFxuXG4gICAgdXNlckFnZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmFuZG9tX3VhLmdlbmVyYXRlKCk7XG4gICAgfSxcblxuICAgIGNvbG9yOiBmdW5jdGlvbiAoYmFzZVJlZDI1NSwgYmFzZUdyZWVuMjU1LCBiYXNlQmx1ZTI1NSkge1xuICAgICAgICBiYXNlUmVkMjU1ID0gYmFzZVJlZDI1NSB8fCAwO1xuICAgICAgICBiYXNlR3JlZW4yNTUgPSBiYXNlR3JlZW4yNTUgfHwgMDtcbiAgICAgICAgYmFzZUJsdWUyNTUgPSBiYXNlQmx1ZTI1NSB8fCAwO1xuICAgICAgICAvLyBiYXNlZCBvbiBhd2Vzb21lIHJlc3BvbnNlIDogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MzA0NC9hbGdvcml0aG0tdG8tcmFuZG9tbHktZ2VuZXJhdGUtYW4tYWVzdGhldGljYWxseS1wbGVhc2luZy1jb2xvci1wYWxldHRlXG4gICAgICAgIHZhciByZWQgPSBNYXRoLmZsb29yKChmYWtlci5yYW5kb20ubnVtYmVyKDI1NikgKyBiYXNlUmVkMjU1KSAvIDIpO1xuICAgICAgICB2YXIgZ3JlZW4gPSBNYXRoLmZsb29yKChmYWtlci5yYW5kb20ubnVtYmVyKDI1NikgKyBiYXNlR3JlZW4yNTUpIC8gMik7XG4gICAgICAgIHZhciBibHVlID0gTWF0aC5mbG9vcigoZmFrZXIucmFuZG9tLm51bWJlcigyNTYpICsgYmFzZUJsdWUyNTUpIC8gMik7XG4gICAgICAgIHZhciByZWRTdHIgPSByZWQudG9TdHJpbmcoMTYpO1xuICAgICAgICB2YXIgZ3JlZW5TdHIgPSBncmVlbi50b1N0cmluZygxNik7XG4gICAgICAgIHZhciBibHVlU3RyID0gYmx1ZS50b1N0cmluZygxNik7XG4gICAgICAgIHJldHVybiAnIycgK1xuICAgICAgICAgIChyZWRTdHIubGVuZ3RoID09PSAxID8gJzAnIDogJycpICsgcmVkU3RyICtcbiAgICAgICAgICAoZ3JlZW5TdHIubGVuZ3RoID09PSAxID8gJzAnIDogJycpICsgZ3JlZW5TdHIgK1xuICAgICAgICAgIChibHVlU3RyLmxlbmd0aCA9PT0gMSA/ICcwJzogJycpICsgYmx1ZVN0cjtcblxuICAgIH0sXG5cbiAgICBwYXNzd29yZDogZnVuY3Rpb24gKGxlbiwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpIHtcbiAgICAgIGxlbiA9IGxlbiB8fCAxNTtcbiAgICAgIGlmICh0eXBlb2YgbWVtb3JhYmxlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIG1lbW9yYWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhc3N3b3JkX2dlbmVyYXRvcihsZW4sIG1lbW9yYWJsZSwgcGF0dGVybiwgcHJlZml4KTtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGludGVybmV0O1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcbmV4cG9ydHNbJ2RlJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZGUuanMnKTtcbmV4cG9ydHNbJ2RlX0FUJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZGVfQVQuanMnKTtcbmV4cG9ydHNbJ2RlX0NIJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZGVfQ0guanMnKTtcbmV4cG9ydHNbJ2VuJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW4uanMnKTtcbmV4cG9ydHNbJ2VuX0FVJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fQVUuanMnKTtcbmV4cG9ydHNbJ2VuX0JPUksnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9CT1JLLmpzJyk7XG5leHBvcnRzWydlbl9DQSddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0NBLmpzJyk7XG5leHBvcnRzWydlbl9HQiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0dCLmpzJyk7XG5leHBvcnRzWydlbl9JTkQnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9JTkQuanMnKTtcbmV4cG9ydHNbJ2VuX1VTJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fVVMuanMnKTtcbmV4cG9ydHNbJ2VuX2F1X29ja2VyJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fYXVfb2NrZXIuanMnKTtcbmV4cG9ydHNbJ2VzJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZXMuanMnKTtcbmV4cG9ydHNbJ2ZhJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZmEuanMnKTtcbmV4cG9ydHNbJ2ZyJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZnIuanMnKTtcbmV4cG9ydHNbJ2l0J10gPSByZXF1aXJlKCcuL2xvY2FsZXMvaXQuanMnKTtcbmV4cG9ydHNbJ2phJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvamEuanMnKTtcbmV4cG9ydHNbJ2tvJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMva28uanMnKTtcbmV4cG9ydHNbJ25iX05PJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvbmJfTk8uanMnKTtcbmV4cG9ydHNbJ25lcCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL25lcC5qcycpO1xuZXhwb3J0c1snbmwnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9ubC5qcycpO1xuZXhwb3J0c1sncGwnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9wbC5qcycpO1xuZXhwb3J0c1sncHRfQlInXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9wdF9CUi5qcycpO1xuZXhwb3J0c1sncnUnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9ydS5qcycpO1xuZXhwb3J0c1snc2snXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9zay5qcycpO1xuZXhwb3J0c1snc3YnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9zdi5qcycpO1xuZXhwb3J0c1sndmknXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy92aS5qcycpO1xuZXhwb3J0c1snemhfQ04nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy96aF9DTi5qcycpOyIsInZhciBkZSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGRlO1xuZGUudGl0bGUgPSBcIkdlcm1hblwiO1xuZGUuYWRkcmVzcyA9IHtcbiAgXCJjaXR5X3ByZWZpeFwiOiBbXG4gICAgXCJOb3JkXCIsXG4gICAgXCJPc3RcIixcbiAgICBcIldlc3RcIixcbiAgICBcIlPDvGRcIixcbiAgICBcIk5ldVwiLFxuICAgIFwiQWx0XCIsXG4gICAgXCJCYWRcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcInN0YWR0XCIsXG4gICAgXCJkb3JmXCIsXG4gICAgXCJsYW5kXCIsXG4gICAgXCJzY2hlaWRcIixcbiAgICBcImJ1cmdcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiw4RneXB0ZW5cIixcbiAgICBcIsOEcXVhdG9yaWFsZ3VpbmVhXCIsXG4gICAgXCLDhHRoaW9waWVuXCIsXG4gICAgXCLDlnN0ZXJyZWljaFwiLFxuICAgIFwiQWZnaGFuaXN0YW5cIixcbiAgICBcIkFsYmFuaWVuXCIsXG4gICAgXCJBbGdlcmllblwiLFxuICAgIFwiQW1lcmlrYW5pc2NoLVNhbW9hXCIsXG4gICAgXCJBbWVyaWthbmlzY2hlIEp1bmdmZXJuaW5zZWxuXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcmt0aXNcIixcbiAgICBcIkFudGlndWEgdW5kIEJhcmJ1ZGFcIixcbiAgICBcIkFyZ2VudGluaWVuXCIsXG4gICAgXCJBcm1lbmllblwiLFxuICAgIFwiQXJ1YmFcIixcbiAgICBcIkFzZXJiYWlkc2NoYW5cIixcbiAgICBcIkF1c3RyYWxpZW5cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhaHJhaW5cIixcbiAgICBcIkJhbmdsYWRlc2NoXCIsXG4gICAgXCJCYXJiYWRvc1wiLFxuICAgIFwiQmVsYXJ1c1wiLFxuICAgIFwiQmVsZ2llblwiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZW5pblwiLFxuICAgIFwiZGllIEJlcm11ZGFzXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbGl2aWVuXCIsXG4gICAgXCJCb3NuaWVuIHVuZCBIZXJ6ZWdvd2luYVwiLFxuICAgIFwiQm90c3VhbmFcIixcbiAgICBcIkJvdXZldGluc2VsXCIsXG4gICAgXCJCcmFzaWxpZW5cIixcbiAgICBcIkJyaXRpc2NoZSBKdW5nZmVybmluc2VsblwiLFxuICAgIFwiQnJpdGlzY2hlcyBUZXJyaXRvcml1bSBpbSBJbmRpc2NoZW4gT3plYW5cIixcbiAgICBcIkJydW5laSBEYXJ1c3NhbGFtXCIsXG4gICAgXCJCdWxnYXJpZW5cIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJDb29raW5zZWxuXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJEw6RuZW1hcmtcIixcbiAgICBcIkRlbW9rcmF0aXNjaGUgUmVwdWJsaWsgS29uZ29cIixcbiAgICBcIkRlbW9rcmF0aXNjaGUgVm9sa3NyZXB1YmxpayBLb3JlYVwiLFxuICAgIFwiRGV1dHNjaGxhbmRcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJEb21pbmlrYW5pc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiRHNjaGlidXRpXCIsXG4gICAgXCJFY3VhZG9yXCIsXG4gICAgXCJFbCBTYWx2YWRvclwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0bGFuZFwiLFxuICAgIFwiRsOkcsO2ZXJcIixcbiAgICBcIkZhbGtsYW5kaW5zZWxuXCIsXG4gICAgXCJGaWRzY2hpXCIsXG4gICAgXCJGaW5ubGFuZFwiLFxuICAgIFwiRnJhbmtyZWljaFwiLFxuICAgIFwiRnJhbnrDtnNpc2NoLUd1YXlhbmFcIixcbiAgICBcIkZyYW56w7ZzaXNjaC1Qb2x5bmVzaWVuXCIsXG4gICAgXCJGcmFuesO2c2lzY2hlIEdlYmlldGUgaW0gc8O8ZGxpY2hlbiBJbmRpc2NoZW4gT3plYW5cIixcbiAgICBcIkdhYnVuXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWVuXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR2licmFsdGFyXCIsXG4gICAgXCJHcsO2bmxhbmRcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIkdyaWVjaGVubGFuZFwiLFxuICAgIFwiR3VhZGVsb3VwZVwiLFxuICAgIFwiR3VhbVwiLFxuICAgIFwiR3VhdGVtYWxhXCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhlYXJkIHVuZCBNY0RvbmFsZGluc2VsblwiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmdrb25nXCIsXG4gICAgXCJJbmRpZW5cIixcbiAgICBcIkluZG9uZXNpZW5cIixcbiAgICBcIklyYWtcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklybGFuZFwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkl0YWxpZW5cIixcbiAgICBcIkphbWFpa2FcIixcbiAgICBcIkphcGFuXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiSm9yZGFuaWVuXCIsXG4gICAgXCJKdWdvc2xhd2llblwiLFxuICAgIFwiS2FpbWFuaW5zZWxuXCIsXG4gICAgXCJLYW1ib2RzY2hhXCIsXG4gICAgXCJLYW1lcnVuXCIsXG4gICAgXCJLYW5hZGFcIixcbiAgICBcIkthcCBWZXJkZVwiLFxuICAgIFwiS2FzYWNoc3RhblwiLFxuICAgIFwiS2F0YXJcIixcbiAgICBcIktlbmlhXCIsXG4gICAgXCJLaXJnaXNpc3RhblwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIktsZWluZXJlIGFtZXJpa2FuaXNjaGUgw5xiZXJzZWVpbnNlbG5cIixcbiAgICBcIktva29zaW5zZWxuXCIsXG4gICAgXCJLb2x1bWJpZW5cIixcbiAgICBcIktvbW9yZW5cIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJLcm9hdGllblwiLFxuICAgIFwiS3ViYVwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJMYW9zXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMZXR0bGFuZFwiLFxuICAgIFwiTGliYW5vblwiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGlieWVuXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXRhdWVuXCIsXG4gICAgXCJMdXhlbWJ1cmdcIixcbiAgICBcIk1hY2F1XCIsXG4gICAgXCJNYWRhZ2Fza2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGF5c2lhXCIsXG4gICAgXCJNYWxlZGl2ZW5cIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJlaGVtYWxpZ2UganVnb3NsYXdpc2NoZSBSZXB1YmxpayBNYXplZG9uaWVuXCIsXG4gICAgXCJNYXJva2tvXCIsXG4gICAgXCJNYXJzaGFsbGluc2VsblwiLFxuICAgIFwiTWFydGluaXF1ZVwiLFxuICAgIFwiTWF1cmV0YW5pZW5cIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTWV4aWtvXCIsXG4gICAgXCJNaWtyb25lc2llblwiLFxuICAgIFwiTW9uYWNvXCIsXG4gICAgXCJNb25nb2xlaVwiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTW9zYW1iaWtcIixcbiAgICBcIk15YW5tYXJcIixcbiAgICBcIk7DtnJkbGljaGUgTWFyaWFuZW5cIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmV1a2FsZWRvbmllblwiLFxuICAgIFwiTmV1c2VlbGFuZFwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWVkZXJsw6RuZGlzY2hlIEFudGlsbGVuXCIsXG4gICAgXCJOaWVkZXJsYW5kZVwiLFxuICAgIFwiTmlnZXJcIixcbiAgICBcIk5pZ2VyaWFcIixcbiAgICBcIk5pdWVcIixcbiAgICBcIk5vcmZvbGtpbnNlbFwiLFxuICAgIFwiTm9yd2VnZW5cIixcbiAgICBcIk9tYW5cIixcbiAgICBcIk9zdHRpbW9yXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbmFtYVwiLFxuICAgIFwiUGFwdWEtTmV1Z3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiUGhpbGlwcGluZW5cIixcbiAgICBcIlBpdGNhaXJuaW5zZWxuXCIsXG4gICAgXCJQb2xlblwiLFxuICAgIFwiUG9ydHVnYWxcIixcbiAgICBcIlB1ZXJ0byBSaWNvXCIsXG4gICAgXCJSw6l1bmlvblwiLFxuICAgIFwiUmVwdWJsaWsgS29yZWFcIixcbiAgICBcIlJlcHVibGlrIE1vbGRhdVwiLFxuICAgIFwiUnVhbmRhXCIsXG4gICAgXCJSdW3DpG5pZW5cIixcbiAgICBcIlJ1c3Npc2NoZSBGw7ZkZXJhdGlvblwiLFxuICAgIFwiU8OjbyBUb23DqSB1bmQgUHLDrW5jaXBlXCIsXG4gICAgXCJTw7xkYWZyaWthXCIsXG4gICAgXCJTw7xkZ2VvcmdpZW4gdW5kIFPDvGRsaWNoZSBTYW5kd2ljaGluc2VsblwiLFxuICAgIFwiU2Fsb21vbmVuXCIsXG4gICAgXCJTYW1iaWFcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYXVkaS1BcmFiaWVuXCIsXG4gICAgXCJTY2h3ZWRlblwiLFxuICAgIFwiU2Nod2VpelwiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU2V5Y2hlbGxlblwiLFxuICAgIFwiU2llcnJhIExlb25lXCIsXG4gICAgXCJTaW1iYWJ3ZVwiLFxuICAgIFwiU2luZ2FwdXJcIixcbiAgICBcIlNsb3dha2VpXCIsXG4gICAgXCJTbG93ZW5pZW5cIixcbiAgICBcIlNvbWFsaWVuXCIsXG4gICAgXCJTcGFuaWVuXCIsXG4gICAgXCJTcmkgTGFua2FcIixcbiAgICBcIlN0LiBIZWxlbmFcIixcbiAgICBcIlN0LiBLaXR0cyB1bmQgTmV2aXNcIixcbiAgICBcIlN0LiBMdWNpYVwiLFxuICAgIFwiU3QuIFBpZXJyZSB1bmQgTWlxdWVsb25cIixcbiAgICBcIlN0LiBWaW5jZW50IHVuZCBkaWUgR3JlbmFkaW5lblwiLFxuICAgIFwiU3VkYW5cIixcbiAgICBcIlN1cmluYW1cIixcbiAgICBcIlN2YWxiYXJkIHVuZCBKYW4gTWF5ZW5cIixcbiAgICBcIlN3YXNpbGFuZFwiLFxuICAgIFwiU3lyaWVuXCIsXG4gICAgXCJUw7xya2VpXCIsXG4gICAgXCJUYWRzY2hpa2lzdGFuXCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIlRhbnNhbmlhXCIsXG4gICAgXCJUaGFpbGFuZFwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG9rZWxhdVwiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIlRyaW5pZGFkIHVuZCBUb2JhZ29cIixcbiAgICBcIlRzY2hhZFwiLFxuICAgIFwiVHNjaGVjaGlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJUdW5lc2llblwiLFxuICAgIFwiVHVya21lbmlzdGFuXCIsXG4gICAgXCJUdXJrcy0gdW5kIENhaWNvc2luc2VsblwiLFxuICAgIFwiVHV2YWx1XCIsXG4gICAgXCJVZ2FuZGFcIixcbiAgICBcIlVrcmFpbmVcIixcbiAgICBcIlVuZ2FyblwiLFxuICAgIFwiVXJ1Z3VheVwiLFxuICAgIFwiVXNiZWtpc3RhblwiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmF0aWthbnN0YWR0XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZlcmVpbmlndGUgQXJhYmlzY2hlIEVtaXJhdGVcIixcbiAgICBcIlZlcmVpbmlndGUgU3RhYXRlblwiLFxuICAgIFwiVmVyZWluaWd0ZXMgS8O2bmlncmVpY2hcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIldhbGxpcyB1bmQgRnV0dW5hXCIsXG4gICAgXCJXZWlobmFjaHRzaW5zZWxcIixcbiAgICBcIldlc3RzYWhhcmFcIixcbiAgICBcIlplbnRyYWxhZnJpa2FuaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIlp5cGVyblwiXG4gIF0sXG4gIFwic3RyZWV0X3Jvb3RcIjogW1xuICAgIFwiQWNrZXJ3ZWdcIixcbiAgICBcIkFkYWxiZXJ0LVN0aWZ0ZXItU3RyLlwiLFxuICAgIFwiQWRhbGJlcnRzdHIuXCIsXG4gICAgXCJBZG9sZi1CYWV5ZXItU3RyLlwiLFxuICAgIFwiQWRvbGYtS2FzY2hueS1TdHIuXCIsXG4gICAgXCJBZG9sZi1SZWljaHdlaW4tU3RyLlwiLFxuICAgIFwiQWRvbGZzc3RyLlwiLFxuICAgIFwiQWhvcm53ZWdcIixcbiAgICBcIkFocnN0ci5cIixcbiAgICBcIkFrYXppZW53ZWdcIixcbiAgICBcIkFsYmVydC1FaW5zdGVpbi1TdHIuXCIsXG4gICAgXCJBbGJlcnQtU2Nod2VpdHplci1TdHIuXCIsXG4gICAgXCJBbGJlcnR1cy1NYWdudXMtU3RyLlwiLFxuICAgIFwiQWxiZXJ0LVphcnRoZS1XZWdcIixcbiAgICBcIkFsYmluLUVkZWxtYW5uLVN0ci5cIixcbiAgICBcIkFsYnJlY2h0LUhhdXNob2Zlci1TdHIuXCIsXG4gICAgXCJBbGRlZ3VuZGlzc3RyLlwiLFxuICAgIFwiQWxleGFuZGVyc3RyLlwiLFxuICAgIFwiQWxmcmVkLURlbHAtU3RyLlwiLFxuICAgIFwiQWxmcmVkLUt1YmluLVN0ci5cIixcbiAgICBcIkFsZnJlZC1TdG9jay1TdHIuXCIsXG4gICAgXCJBbGtlbnJhdGhlciBTdHIuXCIsXG4gICAgXCJBbGxlbnN0ZWluZXIgU3RyLlwiLFxuICAgIFwiQWxzZW5zdHIuXCIsXG4gICAgXCJBbHQgU3RlaW5iw7xjaGVsZXIgV2VnXCIsXG4gICAgXCJBbHRlIEdhcnRlblwiLFxuICAgIFwiQWx0ZSBIZWlkZVwiLFxuICAgIFwiQWx0ZSBMYW5kc3RyLlwiLFxuICAgIFwiQWx0ZSBaaWVnZWxlaVwiLFxuICAgIFwiQWx0ZW5iZXJnZXIgU3RyLlwiLFxuICAgIFwiQWx0ZW5ob2ZcIixcbiAgICBcIkFsdGVyIEdyZW56d2VnXCIsXG4gICAgXCJBbHRzdGFkdHN0ci5cIixcbiAgICBcIkFtIEFsdGVuIEdhc3dlcmtcIixcbiAgICBcIkFtIEFsdGVuIFNjaGFmc3RhbGxcIixcbiAgICBcIkFtIEFyZW56YmVyZ1wiLFxuICAgIFwiQW0gQmVudGhhbFwiLFxuICAgIFwiQW0gQmlya2VuYmVyZ1wiLFxuICAgIFwiQW0gQmxhdWVuIEJlcmdcIixcbiAgICBcIkFtIEJvcnNiZXJnXCIsXG4gICAgXCJBbSBCcnVuZ2VuXCIsXG4gICAgXCJBbSBCw7xjaGVsdGVyIEhvZlwiLFxuICAgIFwiQW0gQnV0dGVybWFya3RcIixcbiAgICBcIkFtIEVocmVuZnJpZWRob2ZcIixcbiAgICBcIkFtIEVzZWxzZGFtbVwiLFxuICAgIFwiQW0gRmFsa2VuYmVyZ1wiLFxuICAgIFwiQW0gRnJhbmtlbmJlcmdcIixcbiAgICBcIkFtIEdlc3VuZGhlaXRzcGFya1wiLFxuICAgIFwiQW0gR2llcmxpY2hzaG9mXCIsXG4gICAgXCJBbSBHcmFiZW5cIixcbiAgICBcIkFtIEhhZ2Vsa3JldXpcIixcbiAgICBcIkFtIEhhbmdcIixcbiAgICBcIkFtIEhlaWRrYW1wXCIsXG4gICAgXCJBbSBIZW1tZWxyYXRoZXIgSG9mXCIsXG4gICAgXCJBbSBIb2ZhY2tlclwiLFxuICAgIFwiQW0gSG9oZW4gVWZlclwiLFxuICAgIFwiQW0gSMO2bGxlcnMgRWNrXCIsXG4gICAgXCJBbSBIw7xobmVyYmVyZ1wiLFxuICAgIFwiQW0gSsOkZ2VyaG9mXCIsXG4gICAgXCJBbSBKdW5rZXJua2FtcFwiLFxuICAgIFwiQW0gS2VtcGVyc3RpZWdlbFwiLFxuICAgIFwiQW0gS2V0dG5lcnNidXNjaFwiLFxuICAgIFwiQW0gS2llc2JlcmdcIixcbiAgICBcIkFtIEtsw7ZzdGVyY2hlblwiLFxuICAgIFwiQW0gS25lY2h0c2dyYWJlblwiLFxuICAgIFwiQW0gS8O2bGxlcndlZ1wiLFxuICAgIFwiQW0gS8O2dHRlcnNiYWNoXCIsXG4gICAgXCJBbSBLcmVpc3BhcmtcIixcbiAgICBcIkFtIEtyb25lZmVsZFwiLFxuICAgIFwiQW0gS8O8Y2hlbmhvZlwiLFxuICAgIFwiQW0gS8O8aG5zYnVzY2hcIixcbiAgICBcIkFtIExpbmRlbmZlbGRcIixcbiAgICBcIkFtIE3DpHJjaGVuXCIsXG4gICAgXCJBbSBNaXR0ZWxiZXJnXCIsXG4gICAgXCJBbSBNw7ZuY2hzaG9mXCIsXG4gICAgXCJBbSBNw7xobGVuYmFjaFwiLFxuICAgIFwiQW0gTmV1ZW5ob2ZcIixcbiAgICBcIkFtIE5vbm5lbmJydWNoXCIsXG4gICAgXCJBbSBQbGF0dGVuYnVzY2hcIixcbiAgICBcIkFtIFF1ZXR0aW5nZXIgRmVsZFwiLFxuICAgIFwiQW0gUm9zZW5ow7xnZWxcIixcbiAgICBcIkFtIFNhbmRiZXJnXCIsXG4gICAgXCJBbSBTY2hlcmZlbmJyYW5kXCIsXG4gICAgXCJBbSBTY2hva2tlclwiLFxuICAgIFwiQW0gU2lsYmVyc2VlXCIsXG4gICAgXCJBbSBTb25uZW5oYW5nXCIsXG4gICAgXCJBbSBTcG9ydHBsYXR6XCIsXG4gICAgXCJBbSBTdGFkdHBhcmtcIixcbiAgICBcIkFtIFN0ZWluYmVyZ1wiLFxuICAgIFwiQW0gVGVsZWdyYWZcIixcbiAgICBcIkFtIFRoZWxlbmhvZlwiLFxuICAgIFwiQW0gVm9nZWxrcmV1elwiLFxuICAgIFwiQW0gVm9nZWxzYW5nXCIsXG4gICAgXCJBbSBWb2dlbHNmZWxkY2hlblwiLFxuICAgIFwiQW0gV2FtYmFjaGVyIEhvZlwiLFxuICAgIFwiQW0gV2Fzc2VydHVybVwiLFxuICAgIFwiQW0gV2VpZGVuYnVzY2hcIixcbiAgICBcIkFtIFdlaWhlclwiLFxuICAgIFwiQW0gV2VpbmdhcnRlblwiLFxuICAgIFwiQW0gV2VydGhcIixcbiAgICBcIkFtc2Vsd2VnXCIsXG4gICAgXCJBbiBkZW4gSXJsZW5cIixcbiAgICBcIkFuIGRlbiBSaGVpbmF1ZW5cIixcbiAgICBcIkFuIGRlciBCZXJnZXJ3ZWlkZVwiLFxuICAgIFwiQW4gZGVyIERpbmdiYW5rXCIsXG4gICAgXCJBbiBkZXIgRXZhbmdlbGlzY2hlbiBLaXJjaGVcIixcbiAgICBcIkFuIGRlciBFdmdsLiBLaXJjaGVcIixcbiAgICBcIkFuIGRlciBGZWxkZ2Fzc2VcIixcbiAgICBcIkFuIGRlciBGZXR0ZWhlbm5lXCIsXG4gICAgXCJBbiBkZXIgS2FudGVcIixcbiAgICBcIkFuIGRlciBMYWFjaFwiLFxuICAgIFwiQW4gZGVyIExlaG1rdWhsZVwiLFxuICAgIFwiQW4gZGVyIExpY2h0ZW5idXJnXCIsXG4gICAgXCJBbiBkZXIgTHVpc2VuYnVyZ1wiLFxuICAgIFwiQW4gZGVyIFJvYmVydHNidXJnXCIsXG4gICAgXCJBbiBkZXIgU2NobWl0dGVuXCIsXG4gICAgXCJBbiBkZXIgU2NodXN0ZXJpbnNlbFwiLFxuICAgIFwiQW4gZGVyIFN0ZWlucsO8dHNjaFwiLFxuICAgIFwiQW4gU3QuIEFuZHJlYXNcIixcbiAgICBcIkFuIFN0LiBSZW1pZ2l1c1wiLFxuICAgIFwiQW5kcmVhc3N0ci5cIixcbiAgICBcIkFua2Vyd2VnXCIsXG4gICAgXCJBbm5ldHRlLUtvbGItU3RyLlwiLFxuICAgIFwiQXBlbnJhZGVyIFN0ci5cIixcbiAgICBcIkFybm9sZC1PaGxldHotU3RyLlwiLFxuICAgIFwiQXR6bGVuYmFjaGVyIFN0ci5cIixcbiAgICBcIkF1ZXJ3ZWdcIixcbiAgICBcIkF1ZXN0ci5cIixcbiAgICBcIkF1ZiBkZW0gQWNrZXJcIixcbiAgICBcIkF1ZiBkZW0gQmxhaG5lbmhvZlwiLFxuICAgIFwiQXVmIGRlbSBCb2huYsO8Y2hlbFwiLFxuICAgIFwiQXVmIGRlbSBCcnVjaFwiLFxuICAgIFwiQXVmIGRlbSBFbmRcIixcbiAgICBcIkF1ZiBkZW0gRm9yc3RcIixcbiAgICBcIkF1ZiBkZW0gSGVyYmVyZ1wiLFxuICAgIFwiQXVmIGRlbSBMZWhuXCIsXG4gICAgXCJBdWYgZGVtIFN0ZWluXCIsXG4gICAgXCJBdWYgZGVtIFdlaWVyYmVyZ1wiLFxuICAgIFwiQXVmIGRlbSBXZWloZXJoYWhuXCIsXG4gICAgXCJBdWYgZGVuIFJlaWVuXCIsXG4gICAgXCJBdWYgZGVyIERvbm5lblwiLFxuICAgIFwiQXVmIGRlciBHcmllw59lXCIsXG4gICAgXCJBdWYgZGVyIE9obWVyXCIsXG4gICAgXCJBdWYgZGVyIFdlaWRlXCIsXG4gICAgXCJBdWYnbSBCZXJnXCIsXG4gICAgXCJBdWYnbSBLYW1wXCIsXG4gICAgXCJBdWd1c3Rhc3RyLlwiLFxuICAgIFwiQXVndXN0LUtla3Vsw6ktU3RyLlwiLFxuICAgIFwiQS4tVy4tdi4tSG9mbWFubi1TdHIuXCIsXG4gICAgXCJCYWhuYWxsZWVcIixcbiAgICBcIkJhaG5ob2ZzdHIuXCIsXG4gICAgXCJCYWx0cnVtc3RyLlwiLFxuICAgIFwiQmFtYmVyZ2VyIFN0ci5cIixcbiAgICBcIkJhdW1iZXJnZXIgU3RyLlwiLFxuICAgIFwiQmViZWxzdHIuXCIsXG4gICAgXCJCZWNrZXJzIEvDpG1wY2hlblwiLFxuICAgIFwiQmVlcmVuc3RyLlwiLFxuICAgIFwiQmVldGhvdmVuc3RyLlwiLFxuICAgIFwiQmVocmluZ3N0ci5cIixcbiAgICBcIkJlbmRlbndlZ1wiLFxuICAgIFwiQmVuc2JlcmdlciBTdHIuXCIsXG4gICAgXCJCZW56c3RyLlwiLFxuICAgIFwiQmVyZ2lzY2hlIExhbmRzdHIuXCIsXG4gICAgXCJCZXJnc3RyLlwiLFxuICAgIFwiQmVybGluZXIgUGxhdHpcIixcbiAgICBcIkJlcmxpbmVyIFN0ci5cIixcbiAgICBcIkJlcm5oYXJkLUxldHRlcmhhdXMtU3RyLlwiLFxuICAgIFwiQmVybmhhcmQtTGljaHRlbmJlcmctU3RyLlwiLFxuICAgIFwiQmVybmhhcmQtUmlkZGVyLVN0ci5cIixcbiAgICBcIkJlcm5zdGVpbnN0ci5cIixcbiAgICBcIkJlcnRoYS1NaWRkZWxoYXV2ZS1TdHIuXCIsXG4gICAgXCJCZXJ0aGEtdm9uLVN1dHRuZXItU3RyLlwiLFxuICAgIFwiQmVydG9sdC1CcmVjaHQtU3RyLlwiLFxuICAgIFwiQmVyemVsaXVzc3RyLlwiLFxuICAgIFwiQmllbGVydHN0ci5cIixcbiAgICBcIkJpZXNlbmJhY2hcIixcbiAgICBcIkJpbGxyb3Roc3RyLlwiLFxuICAgIFwiQmlya2VuYmVyZ3N0ci5cIixcbiAgICBcIkJpcmtlbmdhcnRlbnN0ci5cIixcbiAgICBcIkJpcmtlbndlZ1wiLFxuICAgIFwiQmlzbWFyY2tzdHIuXCIsXG4gICAgXCJCaXR0ZXJmZWxkZXIgU3RyLlwiLFxuICAgIFwiQmxhbmtlbmJ1cmdcIixcbiAgICBcIkJsYXVrZWhsY2hlbndlZ1wiLFxuICAgIFwiQmzDvHRlbnN0ci5cIixcbiAgICBcIkJvYmVyc3RyLlwiLFxuICAgIFwiQsO2Y2tsZXJzdHIuXCIsXG4gICAgXCJCb2RlbHNjaHdpbmdoc3RyLlwiLFxuICAgIFwiQm9kZXN0ci5cIixcbiAgICBcIkJvZ2Vuc3RyLlwiLFxuICAgIFwiQm9obmVua2FtcHN3ZWdcIixcbiAgICBcIkJvaG9mc3dlZ1wiLFxuICAgIFwiQm9uaWZhdGl1c3N0ci5cIixcbiAgICBcIkJvbm5lciBTdHIuXCIsXG4gICAgXCJCb3JrdW1zdHIuXCIsXG4gICAgXCJCb3JuaGVpbWVyIFN0ci5cIixcbiAgICBcIkJvcnNpZ3N0ci5cIixcbiAgICBcIkJvcnVzc2lhc3RyLlwiLFxuICAgIFwiQnJhY2tuZWxsc3RyLlwiLFxuICAgIFwiQnJhaG1zd2VnXCIsXG4gICAgXCJCcmFuZGVuYnVyZ2VyIFN0ci5cIixcbiAgICBcIkJyZWlkZW5iYWNoc3RyLlwiLFxuICAgIFwiQnJlc2xhdWVyIFN0ci5cIixcbiAgICBcIkJydWNoaGF1c2VyIFN0ci5cIixcbiAgICBcIkJyw7xja2Vuc3RyLlwiLFxuICAgIFwiQnJ1Y2tuZXJzdHIuXCIsXG4gICAgXCJCcsO8ZGVyLUJvbmhvZWZmZXItU3RyLlwiLFxuICAgIFwiQnVjaGVud2VnXCIsXG4gICAgXCJCw7xyZ2VyYnVzY2h3ZWdcIixcbiAgICBcIkJ1cmdsb2NoXCIsXG4gICAgXCJCdXJncGxhdHpcIixcbiAgICBcIkJ1cmdzdHIuXCIsXG4gICAgXCJCdXJnd2VnXCIsXG4gICAgXCJCw7xycmlnZXIgV2VnXCIsXG4gICAgXCJCdXJzY2hlaWRlciBTdHIuXCIsXG4gICAgXCJCdXNjaGvDpG1wY2hlblwiLFxuICAgIFwiQnV0dGVyaGVpZGVyIFN0ci5cIixcbiAgICBcIkNhcmwtRHVpc2JlcmctUGxhdHpcIixcbiAgICBcIkNhcmwtRHVpc2JlcmctU3RyLlwiLFxuICAgIFwiQ2FybC1MZXZlcmt1cy1TdHIuXCIsXG4gICAgXCJDYXJsLU1hcmlhLXZvbi1XZWJlci1QbGF0elwiLFxuICAgIFwiQ2FybC1NYXJpYS12b24tV2ViZXItU3RyLlwiLFxuICAgIFwiQ2FybG8tTWllcmVuZG9yZmYtU3RyLlwiLFxuICAgIFwiQ2FybC1SdW1wZmYtU3RyLlwiLFxuICAgIFwiQ2FybC12b24tT3NzaWV0emt5LVN0ci5cIixcbiAgICBcIkNoYXJsb3R0ZW5idXJnZXIgU3RyLlwiLFxuICAgIFwiQ2hyaXN0aWFuLUhlw58tU3RyLlwiLFxuICAgIFwiQ2xhYXNicnVjaFwiLFxuICAgIFwiQ2xlbWVucy1XaW5rbGVyLVN0ci5cIixcbiAgICBcIkNvbmNvcmRpYXN0ci5cIixcbiAgICBcIkNyYW5hY2hzdHIuXCIsXG4gICAgXCJEYWhsZW1lciBTdHIuXCIsXG4gICAgXCJEYWltbGVyc3RyLlwiLFxuICAgIFwiRGFtYXNjaGtlc3RyLlwiLFxuICAgIFwiRGFuemlnZXIgU3RyLlwiLFxuICAgIFwiRGViZW5nYXNzZVwiLFxuICAgIFwiRGVjaGFudC1GZWluLVN0ci5cIixcbiAgICBcIkRlY2hhbnQtS3JleS1TdHIuXCIsXG4gICAgXCJEZWljaHRvcnN0ci5cIixcbiAgICBcIkRow7xubmJlcmdcIixcbiAgICBcIkRow7xubnN0ci5cIixcbiAgICBcIkRpYW5hc3RyLlwiLFxuICAgIFwiRGllZGVuaG9mZW5lciBTdHIuXCIsXG4gICAgXCJEaWVwZW50YWxcIixcbiAgICBcIkRpZXBlbnRoYWxlciBTdHIuXCIsXG4gICAgXCJEaWVzZWxzdHIuXCIsXG4gICAgXCJEaWxsaW5nZXIgU3RyLlwiLFxuICAgIFwiRGlzdGVsa2FtcFwiLFxuICAgIFwiRG9ocmdhc3NlXCIsXG4gICAgXCJEb21ibGlja1wiLFxuICAgIFwiRMO2bmhvZmZzdHIuXCIsXG4gICAgXCJEb3JuaWVyc3RyLlwiLFxuICAgIFwiRHJhY2hlbmZlbHNzdHIuXCIsXG4gICAgXCJEci4tQXVndXN0LUJsYW5rLVN0ci5cIixcbiAgICBcIkRyZXNkZW5lciBTdHIuXCIsXG4gICAgXCJEcmllc2NoZXIgSGVja2VcIixcbiAgICBcIkRyb3NzZWx3ZWdcIixcbiAgICBcIkR1ZHdlaWxlcnN0ci5cIixcbiAgICBcIkTDvG5lbndlZ1wiLFxuICAgIFwiRMO8bmZlbGRlciBTdHIuXCIsXG4gICAgXCJEw7xubndhbGRlciBHcmVuendlZ1wiLFxuICAgIFwiRMO8cHBlbGVyIFN0ci5cIixcbiAgICBcIkTDvHJlcnN0ci5cIixcbiAgICBcIkTDvHJzY2hlaWRlciBXZWdcIixcbiAgICBcIkTDvHNzZWxkb3JmZXIgU3RyLlwiLFxuICAgIFwiRWRlbHJhdGhlciBXZWdcIixcbiAgICBcIkVkbXVuZC1IdXNzZXJsLVN0ci5cIixcbiAgICBcIkVkdWFyZC1TcHJhbmdlci1TdHIuXCIsXG4gICAgXCJFaHJsaWNoc3RyLlwiLFxuICAgIFwiRWljaGVua2FtcFwiLFxuICAgIFwiRWljaGVud2VnXCIsXG4gICAgXCJFaWRlY2hzZW53ZWdcIixcbiAgICBcIkVpZmVsc3RyLlwiLFxuICAgIFwiRWlmZ2Vuc3RyLlwiLFxuICAgIFwiRWludHJhY2h0c3RyLlwiLFxuICAgIFwiRWxiZXN0ci5cIixcbiAgICBcIkVsaXNhYmV0aC1MYW5nZ8Okc3Nlci1TdHIuXCIsXG4gICAgXCJFbGlzYWJldGhzdHIuXCIsXG4gICAgXCJFbGlzYWJldGgtdm9uLVRoYWRkZW4tU3RyLlwiLFxuICAgIFwiRWxpc2Vuc3RyLlwiLFxuICAgIFwiRWxzYS1CcsOkbmRzdHLDtm0tU3RyLlwiLFxuICAgIFwiRWxzYmFjaHN0ci5cIixcbiAgICBcIkVsc2UtTGFza2VyLVNjaMO8bGVyLVN0ci5cIixcbiAgICBcIkVsc3RlcnN0ci5cIixcbiAgICBcIkVtaWwtRmlzY2hlci1TdHIuXCIsXG4gICAgXCJFbWlsLU5vbGRlLVN0ci5cIixcbiAgICBcIkVuZ2VsYmVydHN0ci5cIixcbiAgICBcIkVuZ3N0ZW5iZXJnZXIgV2VnXCIsXG4gICAgXCJFbnRlbnBmdWhsXCIsXG4gICAgXCJFcmJlbGVnYXNzZVwiLFxuICAgIFwiRXJmdHN0ci5cIixcbiAgICBcIkVyZnVydGVyIFN0ci5cIixcbiAgICBcIkVyaWNoLUhlY2tlbC1TdHIuXCIsXG4gICAgXCJFcmljaC1LbGF1c2VuZXItU3RyLlwiLFxuICAgIFwiRXJpY2gtT2xsZW5oYXVlci1TdHIuXCIsXG4gICAgXCJFcmxlbndlZ1wiLFxuICAgIFwiRXJuc3QtQmxvY2gtU3RyLlwiLFxuICAgIFwiRXJuc3QtTHVkd2lnLUtpcmNobmVyLVN0ci5cIixcbiAgICBcIkVyemJlcmdlcnN0ci5cIixcbiAgICBcIkVzY2hlbmFsbGVlXCIsXG4gICAgXCJFc2NoZW53ZWdcIixcbiAgICBcIkVzbWFyY2hzdHIuXCIsXG4gICAgXCJFc3BlbndlZ1wiLFxuICAgIFwiRXVja2Vuc3RyLlwiLFxuICAgIFwiRXVsZW5nYXNzZVwiLFxuICAgIFwiRXVsZW5rYW1wXCIsXG4gICAgXCJFd2FsZC1GbGFtbWUtU3RyLlwiLFxuICAgIFwiRXdhbGQtUsO2bGwtU3RyLlwiLFxuICAgIFwiRsOkaHJzdHIuXCIsXG4gICAgXCJGYXJud2VnXCIsXG4gICAgXCJGYXNhbmVud2VnXCIsXG4gICAgXCJGYcOfYmFjaGVyIEhvZlwiLFxuICAgIFwiRmVsZGVyc3RyLlwiLFxuICAgIFwiRmVsZGthbXBzdHIuXCIsXG4gICAgXCJGZWxkc2llZmVyIFdlZ1wiLFxuICAgIFwiRmVsZHNpZWZlciBXaWVzZW5cIixcbiAgICBcIkZlbGRzdHIuXCIsXG4gICAgXCJGZWxkdG9yc3RyLlwiLFxuICAgIFwiRmVsaXgtdm9uLVJvbGwtU3RyLlwiLFxuICAgIFwiRmVyZGluYW5kLUxhc3NhbGxlLVN0ci5cIixcbiAgICBcIkZlc3RlciBXZWdcIixcbiAgICBcIkZldWVyYmFjaHN0ci5cIixcbiAgICBcIkZldWVyZG9ybndlZ1wiLFxuICAgIFwiRmljaHRlbndlZ1wiLFxuICAgIFwiRmljaHRlc3RyLlwiLFxuICAgIFwiRmlua2Vsc3RlaW5zdHIuXCIsXG4gICAgXCJGaW5rZW53ZWdcIixcbiAgICBcIkZpeGhlaWRlciBTdHIuXCIsXG4gICAgXCJGbGFiYmVuaMOkdXNjaGVuXCIsXG4gICAgXCJGbGVuc2J1cmdlciBTdHIuXCIsXG4gICAgXCJGbGllZGVyd2VnXCIsXG4gICAgXCJGbG9yYXN0ci5cIixcbiAgICBcIkZsb3JpYW53ZWdcIixcbiAgICBcIkZsb3Rvd3N0ci5cIixcbiAgICBcIkZsdXJzdHIuXCIsXG4gICAgXCJGw7ZocmVud2VnXCIsXG4gICAgXCJGb250YW5lc3RyLlwiLFxuICAgIFwiRm9yZWxsZW50YWxcIixcbiAgICBcIkZvcnR1bmFzdHIuXCIsXG4gICAgXCJGcmFuei1Fc3Nlci1TdHIuXCIsXG4gICAgXCJGcmFuei1IaXR6ZS1TdHIuXCIsXG4gICAgXCJGcmFuei1LYWlsLVN0ci5cIixcbiAgICBcIkZyYW56LU1hcmMtU3RyLlwiLFxuICAgIFwiRnJlaWJ1cmdlciBTdHIuXCIsXG4gICAgXCJGcmVpaGVpdHN0ci5cIixcbiAgICBcIkZyZWloZXJyLXZvbS1TdGVpbi1TdHIuXCIsXG4gICAgXCJGcmV1ZGVudGhhbFwiLFxuICAgIFwiRnJldWRlbnRoYWxlciBXZWdcIixcbiAgICBcIkZyaWR0am9mLU5hbnNlbi1TdHIuXCIsXG4gICAgXCJGcmllZGVuYmVyZ2VyIFN0ci5cIixcbiAgICBcIkZyaWVkZW5zc3RyLlwiLFxuICAgIFwiRnJpZWRob2ZzdHIuXCIsXG4gICAgXCJGcmllZGxhbmRzdHIuXCIsXG4gICAgXCJGcmllZGxpZWItRmVyZGluYW5kLVJ1bmdlLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1CYXllci1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtQmVyZ2l1cy1QbGF0elwiLFxuICAgIFwiRnJpZWRyaWNoLUViZXJ0LVBsYXR6XCIsXG4gICAgXCJGcmllZHJpY2gtRWJlcnQtU3RyLlwiLFxuICAgIFwiRnJpZWRyaWNoLUVuZ2Vscy1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtTGlzdC1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtTmF1bWFubi1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtU2VydMO8cm5lci1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2hzdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtV2Vza290dC1TdHIuXCIsXG4gICAgXCJGcmllc2Vud2VnXCIsXG4gICAgXCJGcmlzY2hlbmJlcmdcIixcbiAgICBcIkZyaXR6LUVybGVyLVN0ci5cIixcbiAgICBcIkZyaXR6LUhlbnNlbGVyLVN0ci5cIixcbiAgICBcIkZyw7ZiZWxzdHIuXCIsXG4gICAgXCJGw7xyc3RlbmJlcmdwbGF0elwiLFxuICAgIFwiRsO8cnN0ZW5iZXJnc3RyLlwiLFxuICAgIFwiR2FicmllbGUtTcO8bnRlci1TdHIuXCIsXG4gICAgXCJHYXJ0ZW5zdHIuXCIsXG4gICAgXCJHZWJoYXJkc3RyLlwiLFxuICAgIFwiR2VpYmVsc3RyLlwiLFxuICAgIFwiR2VsbGVydHN0ci5cIixcbiAgICBcIkdlb3JnLXZvbi1Wb2xsbWFyLVN0ci5cIixcbiAgICBcIkdlcmhhcmQtRG9tYWdrLVN0ci5cIixcbiAgICBcIkdlcmhhcnQtSGF1cHRtYW5uLVN0ci5cIixcbiAgICBcIkdlcmljaHRzc3RyLlwiLFxuICAgIFwiR2VzY2h3aXN0ZXItU2Nob2xsLVN0ci5cIixcbiAgICBcIkdlemVsaW5hbGxlZVwiLFxuICAgIFwiR2llcmVuZXIgV2VnXCIsXG4gICAgXCJHaW5zdGVyd2VnXCIsXG4gICAgXCJHaXNiZXJ0LUNyZW1lci1TdHIuXCIsXG4gICAgXCJHbMO8Y2tzYnVyZ2VyIFN0ci5cIixcbiAgICBcIkdsdWNrc3RyLlwiLFxuICAgIFwiR25laXNlbmF1c3RyLlwiLFxuICAgIFwiR29ldGhlcGxhdHpcIixcbiAgICBcIkdvZXRoZXN0ci5cIixcbiAgICBcIkdvbG8tTWFubi1TdHIuXCIsXG4gICAgXCJHw7ZybGl0emVyIFN0ci5cIixcbiAgICBcIkfDtnJyZXNzdHIuXCIsXG4gICAgXCJHcmFlYmVzdHIuXCIsXG4gICAgXCJHcmFmLUdhbGVuLVBsYXR6XCIsXG4gICAgXCJHcmVnb3ItTWVuZGVsLVN0ci5cIixcbiAgICBcIkdyZWlmc3dhbGRlciBTdHIuXCIsXG4gICAgXCJHcmlsbGVud2VnXCIsXG4gICAgXCJHcm9uZW5ib3JuZXIgV2VnXCIsXG4gICAgXCJHcm/Dn2UgS2lyY2hzdHIuXCIsXG4gICAgXCJHcnVuZGVyIFdpZXNlblwiLFxuICAgIFwiR3J1bmRlcm3DvGhsZVwiLFxuICAgIFwiR3J1bmRlcm3DvGhsZW5ob2ZcIixcbiAgICBcIkdydW5kZXJtw7xobGVud2VnXCIsXG4gICAgXCJHcsO8bmVyIFdlZ1wiLFxuICAgIFwiR3J1bmV3YWxkc3RyLlwiLFxuICAgIFwiR3LDvG5zdHIuXCIsXG4gICAgXCJHw7xudGhlci1XZWlzZW5ib3JuLVN0ci5cIixcbiAgICBcIkd1c3Rhdi1GcmV5dGFnLVN0ci5cIixcbiAgICBcIkd1c3Rhdi1IZWluZW1hbm4tU3RyLlwiLFxuICAgIFwiR3VzdGF2LVJhZGJydWNoLVN0ci5cIixcbiAgICBcIkd1dCBSZXVzY2hlbmJlcmdcIixcbiAgICBcIkd1dGVuYmVyZ3N0ci5cIixcbiAgICBcIkhhYmVyc3RyLlwiLFxuICAgIFwiSGFiaWNodGdhc3NlXCIsXG4gICAgXCJIYWZlbnN0ci5cIixcbiAgICBcIkhhZ2VuYXVlciBTdHIuXCIsXG4gICAgXCJIYWhuZW5ibGVjaGVyXCIsXG4gICAgXCJIYWxlbnNlZXN0ci5cIixcbiAgICBcIkhhbGZlbmxlaW1iYWNoXCIsXG4gICAgXCJIYWxsZXNjaGUgU3RyLlwiLFxuICAgIFwiSGFsbGlnc3RyLlwiLFxuICAgIFwiSGFtYmVyZ2VyIFN0ci5cIixcbiAgICBcIkhhbW1lcndlZ1wiLFxuICAgIFwiSMOkbmRlbHN0ci5cIixcbiAgICBcIkhhbm5haC1Iw7ZjaC1TdHIuXCIsXG4gICAgXCJIYW5zLUFycC1TdHIuXCIsXG4gICAgXCJIYW5zLUdlcmhhcmQtU3RyLlwiLFxuICAgIFwiSGFucy1TYWNocy1TdHIuXCIsXG4gICAgXCJIYW5zLVNjaGxlaGFobi1TdHIuXCIsXG4gICAgXCJIYW5zLXZvbi1Eb2huYW55aS1TdHIuXCIsXG4gICAgXCJIYXJkZW5iZXJnc3RyLlwiLFxuICAgIFwiSGFzZWx3ZWdcIixcbiAgICBcIkhhdXB0c3RyLlwiLFxuICAgIFwiSGF1cy1Wb3JzdGVyLVN0ci5cIixcbiAgICBcIkhhdXdlZ1wiLFxuICAgIFwiSGF2ZWxzdHIuXCIsXG4gICAgXCJIYXZlbnN0ZWluc3RyLlwiLFxuICAgIFwiSGF5ZG5zdHIuXCIsXG4gICAgXCJIZWJiZWxzdHIuXCIsXG4gICAgXCJIZWNrZW53ZWdcIixcbiAgICBcIkhlZXJ3ZWdcIixcbiAgICBcIkhlZ2Vsc3RyLlwiLFxuICAgIFwiSGVpZGJlcmdcIixcbiAgICBcIkhlaWRlaMO2aGVcIixcbiAgICBcIkhlaWRlc3RyLlwiLFxuICAgIFwiSGVpbXN0w6R0dGVud2VnXCIsXG4gICAgXCJIZWlucmljaC1Cw7ZsbC1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1CcsO8bmluZy1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1DbGFlcy1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1IZWluZS1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1Iw7ZybGVpbi1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1Mw7xia2UtU3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtTMO8dHplbmtpcmNoZW4tV2VnXCIsXG4gICAgXCJIZWlucmljaHN0ci5cIixcbiAgICBcIkhlaW5yaWNoLVN0cmVyYXRoLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLXZvbi1LbGVpc3QtU3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtdm9uLVN0ZXBoYW4tU3RyLlwiLFxuICAgIFwiSGVpc3RlcmJhY2hzdHIuXCIsXG4gICAgXCJIZWxlbmVuc3RyLlwiLFxuICAgIFwiSGVsbWVzdHIuXCIsXG4gICAgXCJIZW1tZWxyYXRoZXIgV2VnXCIsXG4gICAgXCJIZW5yeS1ULi12Li1Cw7Z0dGluZ2VyLVN0ci5cIixcbiAgICBcIkhlcmRlcnN0ci5cIixcbiAgICBcIkhlcmliZXJ0c3RyLlwiLFxuICAgIFwiSGVybWFubi1FaGxlcnMtU3RyLlwiLFxuICAgIFwiSGVybWFubi1IZXNzZS1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLUvDtm5pZy1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLUzDtm5zLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tTWlsZGUtU3RyLlwiLFxuICAgIFwiSGVybWFubi1Ow7ZycmVuYmVyZy1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLXZvbi1IZWxtaG9sdHotU3RyLlwiLFxuICAgIFwiSGVybWFubi1XYWliZWwtU3RyLlwiLFxuICAgIFwiSGVyem9nc3RyLlwiLFxuICAgIFwiSGV5bWFubnN0ci5cIixcbiAgICBcIkhpbmRlbmJ1cmdzdHIuXCIsXG4gICAgXCJIaXJ6ZW5iZXJnXCIsXG4gICAgXCJIaXRkb3JmZXIgS2lyY2h3ZWdcIixcbiAgICBcIkhpdGRvcmZlciBTdHIuXCIsXG4gICAgXCJIw7ZmZXIgTcO8aGxlXCIsXG4gICAgXCJIw7ZmZXIgV2VnXCIsXG4gICAgXCJIb2hlIFN0ci5cIixcbiAgICBcIkjDtmhlbnN0ci5cIixcbiAgICBcIkjDtmx0Z2VzdGFsXCIsXG4gICAgXCJIb2x1bmRlcndlZ1wiLFxuICAgIFwiSG9semVyIFdlZ1wiLFxuICAgIFwiSG9semVyIFdpZXNlblwiLFxuICAgIFwiSG9ybnBvdHR3ZWdcIixcbiAgICBcIkh1YmVydHVzd2VnXCIsXG4gICAgXCJIdWZlbGFuZHN0ci5cIixcbiAgICBcIkh1ZmVyIFdlZ1wiLFxuICAgIFwiSHVtYm9sZHRzdHIuXCIsXG4gICAgXCJIdW1tZWxzaGVpbVwiLFxuICAgIFwiSHVtbWVsd2VnXCIsXG4gICAgXCJIdW1wZXJkaW5ja3N0ci5cIixcbiAgICBcIkjDvHNjaGVpZGVyIEfDpHJ0ZW5cIixcbiAgICBcIkjDvHNjaGVpZGVyIFN0ci5cIixcbiAgICBcIkjDvHR0ZVwiLFxuICAgIFwiSWxtc3RyLlwiLFxuICAgIFwiSW0gQmVyZ2lzY2hlbiBIZWltXCIsXG4gICAgXCJJbSBCcnVjaFwiLFxuICAgIFwiSW0gQnVjaGVuaGFpblwiLFxuICAgIFwiSW0gQsO8aGxcIixcbiAgICBcIkltIEJ1cmdmZWxkXCIsXG4gICAgXCJJbSBEb3JmXCIsXG4gICAgXCJJbSBFaXNob2x6XCIsXG4gICAgXCJJbSBGcmllZGVuc3RhbFwiLFxuICAgIFwiSW0gRnJvaGVudGFsXCIsXG4gICAgXCJJbSBHcnVuZGVcIixcbiAgICBcIkltIEhlZGVyaWNoc2ZlbGRcIixcbiAgICBcIkltIErDvGNoZXJmZWxkXCIsXG4gICAgXCJJbSBLYWxrZmVsZFwiLFxuICAgIFwiSW0gS2lyYmVyZ1wiLFxuICAgIFwiSW0gS2lyY2hmZWxkXCIsXG4gICAgXCJJbSBLcmV1emJydWNoXCIsXG4gICAgXCJJbSBNw7xobGVuZmVsZFwiLFxuICAgIFwiSW0gTmVzc2VscmFkZXIgS2FtcFwiLFxuICAgIFwiSW0gT2JlcmRvcmZcIixcbiAgICBcIkltIE9iZXJmZWxkXCIsXG4gICAgXCJJbSBSb3NlbmdhcnRlblwiLFxuICAgIFwiSW0gUm90dGxhbmRcIixcbiAgICBcIkltIFNjaGVmZmVuZ2FydGVuXCIsXG4gICAgXCJJbSBTdGFkZXJmZWxkXCIsXG4gICAgXCJJbSBTdGVpbmZlbGRcIixcbiAgICBcIkltIFdlaWRlbmJsZWNoXCIsXG4gICAgXCJJbSBXaW5rZWxcIixcbiAgICBcIkltIFppZWdlbGZlbGRcIixcbiAgICBcIkltYmFjaFwiLFxuICAgIFwiSW1iYWNoZXIgV2VnXCIsXG4gICAgXCJJbW1lbndlZ1wiLFxuICAgIFwiSW4gZGVuIEJsZWNoZW5ow7ZmZW5cIixcbiAgICBcIkluIGRlbiBEZWhsZW5cIixcbiAgICBcIkluIGRlciBCaXJrZW5hdVwiLFxuICAgIFwiSW4gZGVyIERhc2xhZGVuXCIsXG4gICAgXCJJbiBkZXIgRmVsZGVyaMO8dHRlblwiLFxuICAgIFwiSW4gZGVyIEhhcnRtYW5uc3dpZXNlXCIsXG4gICAgXCJJbiBkZXIgSMO2aGxlXCIsXG4gICAgXCJJbiBkZXIgU2NoYWFmc2RlbGxlblwiLFxuICAgIFwiSW4gZGVyIFdhc3Nlcmt1aGxcIixcbiAgICBcIkluIGRlciBXw7xzdGVcIixcbiAgICBcIkluIEhvbHpoYXVzZW5cIixcbiAgICBcIkluc3RlcnN0ci5cIixcbiAgICBcIkphY29iLUZyw7ZobGVuLVN0ci5cIixcbiAgICBcIkrDpGdlcnN0ci5cIixcbiAgICBcIkphaG5zdHIuXCIsXG4gICAgXCJKYWtvYi1FdWxlbmJlcmctV2VnXCIsXG4gICAgXCJKYWtvYmlzdHIuXCIsXG4gICAgXCJKYWtvYi1LYWlzZXItU3RyLlwiLFxuICAgIFwiSmVuYWVyIFN0ci5cIixcbiAgICBcIkpvaGFubmVzLUJhcHRpc3QtU3RyLlwiLFxuICAgIFwiSm9oYW5uZXMtRG90dC1TdHIuXCIsXG4gICAgXCJKb2hhbm5lcy1Qb3BpdHotU3RyLlwiLFxuICAgIFwiSm9oYW5uZXMtV2lzbGljZW51cy1TdHIuXCIsXG4gICAgXCJKb2hhbm5pc2J1cmdlciBTdHIuXCIsXG4gICAgXCJKb2hhbm4tSmFuc3Nlbi1TdHIuXCIsXG4gICAgXCJKb2hhbm4tV2lydHotV2VnXCIsXG4gICAgXCJKb3NlZnN0ci5cIixcbiAgICBcIkrDvGNoXCIsXG4gICAgXCJKdWxpdXMtRG9tcy1TdHIuXCIsXG4gICAgXCJKdWxpdXMtTGViZXItU3RyLlwiLFxuICAgIFwiS2Fpc2VycGxhdHpcIixcbiAgICBcIkthaXNlcnN0ci5cIixcbiAgICBcIkthaXNlci1XaWxoZWxtLUFsbGVlXCIsXG4gICAgXCJLYWxrc3RyLlwiLFxuICAgIFwiS8OkbXBjaGVuc3RyLlwiLFxuICAgIFwiS8OkbXBlbndpZXNlXCIsXG4gICAgXCJLw6RtcGVyIFdlZ1wiLFxuICAgIFwiS2FtcHRhbHdlZ1wiLFxuICAgIFwiS2FuYWxzdHIuXCIsXG4gICAgXCJLYW5kaW5za3lzdHIuXCIsXG4gICAgXCJLYW50c3RyLlwiLFxuICAgIFwiS2FwZWxsZW5zdHIuXCIsXG4gICAgXCJLYXJsLUFybm9sZC1TdHIuXCIsXG4gICAgXCJLYXJsLUJvc2NoLVN0ci5cIixcbiAgICBcIkthcmwtQsO8Y2thcnQtU3RyLlwiLFxuICAgIFwiS2FybC1DYXJzdGVucy1SaW5nXCIsXG4gICAgXCJLYXJsLUZyaWVkcmljaC1Hb2VyZGVsZXItU3RyLlwiLFxuICAgIFwiS2FybC1KYXNwZXJzLVN0ci5cIixcbiAgICBcIkthcmwtS8O2bmlnLVN0ci5cIixcbiAgICBcIkthcmwtS3Jla2VsZXItU3RyLlwiLFxuICAgIFwiS2FybC1NYXJ4LVN0ci5cIixcbiAgICBcIkthcmxzdHIuXCIsXG4gICAgXCJLYXJsLVVsaXR6a2EtU3RyLlwiLFxuICAgIFwiS2FybC1XaWNobWFubi1TdHIuXCIsXG4gICAgXCJLYXJsLVdpbmdjaGVuLVN0ci5cIixcbiAgICBcIkvDpHNlbmJyb2RcIixcbiAgICBcIkvDpHRoZS1Lb2xsd2l0ei1TdHIuXCIsXG4gICAgXCJLYXR6YmFjaHN0ci5cIixcbiAgICBcIktlcnNjaGVuc3RlaW5lcnN0ci5cIixcbiAgICBcIktpZWZlcm53ZWdcIixcbiAgICBcIktpZWxlciBTdHIuXCIsXG4gICAgXCJLaWVzZWxzdHIuXCIsXG4gICAgXCJLaWVzd2VnXCIsXG4gICAgXCJLaW5kZXJoYXVzZW5cIixcbiAgICBcIktsZWliZXJ3ZWdcIixcbiAgICBcIktsZWluZSBLaXJjaHN0ci5cIixcbiAgICBcIktsZWluZ2Fuc3dlZ1wiLFxuICAgIFwiS2xlaW5oZWlkZXIgV2VnXCIsXG4gICAgXCJLbGllZlwiLFxuICAgIFwiS25laXBwc3RyLlwiLFxuICAgIFwiS25vY2hlbmJlcmdzd2VnXCIsXG4gICAgXCJLb2NoZXJnYXJ0ZW5cIixcbiAgICBcIktvY2hlcnN0ci5cIixcbiAgICBcIktvY2tlbHNiZXJnXCIsXG4gICAgXCJLb2xiZXJnZXIgU3RyLlwiLFxuICAgIFwiS29sbWFyZXIgU3RyLlwiLFxuICAgIFwiS8O2bG5lciBHYXNzZVwiLFxuICAgIFwiS8O2bG5lciBTdHIuXCIsXG4gICAgXCJLb2xwaW5nc3RyLlwiLFxuICAgIFwiS8O2bmlnc2JlcmdlciBQbGF0elwiLFxuICAgIFwiS29ucmFkLUFkZW5hdWVyLVBsYXR6XCIsXG4gICAgXCJLw7ZwZW5pY2tlciBTdHIuXCIsXG4gICAgXCJLb3Blcm5pa3Vzc3RyLlwiLFxuICAgIFwiS8O2cm5lcnN0ci5cIixcbiAgICBcIkvDtnNjaGVuYmVyZ1wiLFxuICAgIFwiS8O2dHRlcnNob2ZcIixcbiAgICBcIktyZXV6YnJvaWNoZXIgU3RyLlwiLFxuICAgIFwiS3JldXprYW1wXCIsXG4gICAgXCJLcnVtbWVyIFdlZ1wiLFxuICAgIFwiS3J1cHBzdHIuXCIsXG4gICAgXCJLdWhsbWFubndlZ1wiLFxuICAgIFwiS3VtcFwiLFxuICAgIFwiS3VtcGVyIFdlZ1wiLFxuICAgIFwiS3Vuc3RmZWxkc3RyLlwiLFxuICAgIFwiS8O8cHBlcnN0ZWdlciBTdHIuXCIsXG4gICAgXCJLdXJzaWVmZW5cIixcbiAgICBcIkt1cnNpZWZlciBXZWdcIixcbiAgICBcIkt1cnRla290dGVud2VnXCIsXG4gICAgXCJLdXJ0LVNjaHVtYWNoZXItUmluZ1wiLFxuICAgIFwiS3lsbHN0ci5cIixcbiAgICBcIkxhbmdlbmZlbGRlciBTdHIuXCIsXG4gICAgXCJMw6RuZ3NsZWltYmFjaFwiLFxuICAgIFwiTMOkcmNoZW53ZWdcIixcbiAgICBcIkxlZ2llbnN0ci5cIixcbiAgICBcIkxlaG5lciBNw7xobGVcIixcbiAgICBcIkxlaWNobGluZ2VyIFN0ci5cIixcbiAgICBcIkxlaW1iYWNoZXIgSG9mXCIsXG4gICAgXCJMZWluZXN0ci5cIixcbiAgICBcIkxlaW5ld2ViZXJzdHIuXCIsXG4gICAgXCJMZWlwemlnZXIgU3RyLlwiLFxuICAgIFwiTGVyY2hlbmdhc3NlXCIsXG4gICAgXCJMZXNzaW5nc3RyLlwiLFxuICAgIFwiTGliZWxsZW53ZWdcIixcbiAgICBcIkxpY2hzdHIuXCIsXG4gICAgXCJMaWViaWdzdHIuXCIsXG4gICAgXCJMaW5kZW5zdHIuXCIsXG4gICAgXCJMaW5nZW5mZWxkXCIsXG4gICAgXCJMaW5pZW5zdHIuXCIsXG4gICAgXCJMaXBwZVwiLFxuICAgIFwiTMO2Y2hlcmdyYWJlblwiLFxuICAgIFwiTMO2ZmZsZXJzdHIuXCIsXG4gICAgXCJMb2hld2VnXCIsXG4gICAgXCJMb2hyYmVyZ3N0ci5cIixcbiAgICBcIkxvaHJzdHIuXCIsXG4gICAgXCJMw7Zoc3RyLlwiLFxuICAgIFwiTG9ydHppbmdzdHIuXCIsXG4gICAgXCJMw7Z0emVuZXIgU3RyLlwiLFxuICAgIFwiTMO2d2VuYnVyZ3N0ci5cIixcbiAgICBcIkx1Y2Fzc3RyLlwiLFxuICAgIFwiTHVkd2lnLUVyaGFyZC1QbGF0elwiLFxuICAgIFwiTHVkd2lnLUdpcnRsZXItU3RyLlwiLFxuICAgIFwiTHVkd2lnLUtub3JyLVN0ci5cIixcbiAgICBcIkx1aXNlbnN0ci5cIixcbiAgICBcIkx1cGluZW53ZWdcIixcbiAgICBcIkx1cmNoZW53ZWdcIixcbiAgICBcIkzDvHR6ZW5raXJjaGVuZXIgU3RyLlwiLFxuICAgIFwiTHlja2VyIFN0ci5cIixcbiAgICBcIk1hYXNob2ZzdHIuXCIsXG4gICAgXCJNYW5mb3J0ZXIgU3RyLlwiLFxuICAgIFwiTWFyYy1DaGFnYWxsLVN0ci5cIixcbiAgICBcIk1hcmlhLURyZXNlbi1TdHIuXCIsXG4gICAgXCJNYXJpYS1UZXJ3aWVsLVN0ci5cIixcbiAgICBcIk1hcmllLUN1cmllLVN0ci5cIixcbiAgICBcIk1hcmllbmJ1cmdlciBTdHIuXCIsXG4gICAgXCJNYXJpZW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiTWFyaWVud2VyZGVyc3RyLlwiLFxuICAgIFwiTWFyaWUtU2NobGVpLVN0ci5cIixcbiAgICBcIk1hcmt0cGxhdHpcIixcbiAgICBcIk1hcmt1c3dlZ1wiLFxuICAgIFwiTWFydGluLUJ1YmVyLVN0ci5cIixcbiAgICBcIk1hcnRpbi1IZWlkZWdnZXItU3RyLlwiLFxuICAgIFwiTWFydGluLUx1dGhlci1TdHIuXCIsXG4gICAgXCJNYXN1cmVuc3RyLlwiLFxuICAgIFwiTWF0aGlsZGVud2VnXCIsXG4gICAgXCJNYXVyaW51c3N0ci5cIixcbiAgICBcIk1hdXNwZmFkXCIsXG4gICAgXCJNYXgtQmVja21hbm4tU3RyLlwiLFxuICAgIFwiTWF4LURlbGJyw7xjay1TdHIuXCIsXG4gICAgXCJNYXgtRXJuc3QtU3RyLlwiLFxuICAgIFwiTWF4LUhvbHRoYXVzZW4tUGxhdHpcIixcbiAgICBcIk1heC1Ib3JraGVpbWVyLVN0ci5cIixcbiAgICBcIk1heC1MaWViZXJtYW5uLVN0ci5cIixcbiAgICBcIk1heC1QZWNoc3RlaW4tU3RyLlwiLFxuICAgIFwiTWF4LVBsYW5jay1TdHIuXCIsXG4gICAgXCJNYXgtU2NoZWxlci1TdHIuXCIsXG4gICAgXCJNYXgtU2Now7ZuZW5iZXJnLVN0ci5cIixcbiAgICBcIk1heWJhY2hzdHIuXCIsXG4gICAgXCJNZWNraG9mZXIgRmVsZFwiLFxuICAgIFwiTWVpc2Vud2VnXCIsXG4gICAgXCJNZW1lbHN0ci5cIixcbiAgICBcIk1lbmNoZW5kYWhsZXIgU3RyLlwiLFxuICAgIFwiTWVuZGVsc3NvaG5zdHIuXCIsXG4gICAgXCJNZXJ6aWdlciBTdHIuXCIsXG4gICAgXCJNZXR0bGFjaGVyIFN0ci5cIixcbiAgICBcIk1ldHplciBTdHIuXCIsXG4gICAgXCJNaWNoYWVsc3dlZ1wiLFxuICAgIFwiTWlzZWxvaGVzdHIuXCIsXG4gICAgXCJNaXR0ZWxzdHIuXCIsXG4gICAgXCJNb2hsZW5zdHIuXCIsXG4gICAgXCJNb2x0a2VzdHIuXCIsXG4gICAgXCJNb25oZWltZXIgU3RyLlwiLFxuICAgIFwiTW9udGFudXNzdHIuXCIsXG4gICAgXCJNb250ZXNzb3Jpd2VnXCIsXG4gICAgXCJNb29zd2VnXCIsXG4gICAgXCJNb3JzYnJvaWNoZXIgU3RyLlwiLFxuICAgIFwiTW9zZWxzdHIuXCIsXG4gICAgXCJNb3NrYXVlciBTdHIuXCIsXG4gICAgXCJNb3phcnRzdHIuXCIsXG4gICAgXCJNw7xobGVud2VnXCIsXG4gICAgXCJNdWhyZ2Fzc2VcIixcbiAgICBcIk11bGRlc3RyLlwiLFxuICAgIFwiTcO8bGhhdXNlbmVyIFN0ci5cIixcbiAgICBcIk3DvGxoZWltZXIgU3RyLlwiLFxuICAgIFwiTcO8bnN0ZXJzIEfDpMOfY2hlblwiLFxuICAgIFwiTcO8bnpzdHIuXCIsXG4gICAgXCJNw7xyaXR6c3RyLlwiLFxuICAgIFwiTXlsaXVzc3RyLlwiLFxuICAgIFwiTmFjaHRpZ2FsbGVud2VnXCIsXG4gICAgXCJOYXVlbmVyIFN0ci5cIixcbiAgICBcIk5lacOfZXN0ci5cIixcbiAgICBcIk5lbGx5LVNhY2hzLVN0ci5cIixcbiAgICBcIk5ldHplc3RyLlwiLFxuICAgIFwiTmV1ZW5kcmllc2NoXCIsXG4gICAgXCJOZXVlbmhhdXNnYXNzZVwiLFxuICAgIFwiTmV1ZW5rYW1wXCIsXG4gICAgXCJOZXVqdWRlbmhvZlwiLFxuICAgIFwiTmV1a3JvbmVuYmVyZ2VyIFN0ci5cIixcbiAgICBcIk5ldXN0YWR0c3RyLlwiLFxuICAgIFwiTmljb2xhaS1IYXJ0bWFubi1TdHIuXCIsXG4gICAgXCJOaWVkZXJibGVjaGVyXCIsXG4gICAgXCJOaWVkZXJmZWxkc3RyLlwiLFxuICAgIFwiTmlldHpzY2hlc3RyLlwiLFxuICAgIFwiTmlrb2xhdXMtR3Jvw58tU3RyLlwiLFxuICAgIFwiTm9iZWxzdHIuXCIsXG4gICAgXCJOb3JkZXJuZXlzdHIuXCIsXG4gICAgXCJOb3Jkc3RyLlwiLFxuICAgIFwiT2JlciBkZW0gSG9mXCIsXG4gICAgXCJPYmVyZSBMaW5kZW5zdHIuXCIsXG4gICAgXCJPYmVyZSBTdHIuXCIsXG4gICAgXCJPYmVyw7ZsYmFjaFwiLFxuICAgIFwiT2RlbnRoYWxlciBTdHIuXCIsXG4gICAgXCJPZGVyc3RyLlwiLFxuICAgIFwiT2tlcnN0ci5cIixcbiAgICBcIk9sb2YtUGFsbWUtU3RyLlwiLFxuICAgIFwiT3Bob3ZlbmVyIFN0ci5cIixcbiAgICBcIk9wbGFkZW5lciBQbGF0elwiLFxuICAgIFwiT3BsYWRlbmVyIFN0ci5cIixcbiAgICBcIk9ydGVsc2J1cmdlciBTdHIuXCIsXG4gICAgXCJPc2thci1Nb2xsLVN0ci5cIixcbiAgICBcIk9za2FyLVNjaGxlbW1lci1TdHIuXCIsXG4gICAgXCJPc3RzdHIuXCIsXG4gICAgXCJPc3dhbGQtU3BlbmdsZXItU3RyLlwiLFxuICAgIFwiT3R0by1EaXgtU3RyLlwiLFxuICAgIFwiT3R0by1HcmltbS1TdHIuXCIsXG4gICAgXCJPdHRvLUhhaG4tU3RyLlwiLFxuICAgIFwiT3R0by1Nw7xsbGVyLVN0ci5cIixcbiAgICBcIk90dG8tU3RhbmdlLVN0ci5cIixcbiAgICBcIk90dG9zdHIuXCIsXG4gICAgXCJPdHRvLVZhcm5oYWdlbi1TdHIuXCIsXG4gICAgXCJPdHRvLVdlbHMtU3RyLlwiLFxuICAgIFwiT3R0d2VpbGVyc3RyLlwiLFxuICAgIFwiT3VsdXN0ci5cIixcbiAgICBcIk92ZXJmZWxkd2VnXCIsXG4gICAgXCJQYXBwZWx3ZWdcIixcbiAgICBcIlBhcmFjZWxzdXNzdHIuXCIsXG4gICAgXCJQYXJrc3RyLlwiLFxuICAgIFwiUGFzdG9yLUxvdWlzLVN0ci5cIixcbiAgICBcIlBhc3Rvci1TY2hlaWJsZXItU3RyLlwiLFxuICAgIFwiUGFzdG9yc2thbXBcIixcbiAgICBcIlBhdWwtS2xlZS1TdHIuXCIsXG4gICAgXCJQYXVsLUzDtmJlLVN0ci5cIixcbiAgICBcIlBhdWxzdHIuXCIsXG4gICAgXCJQZWVuZXN0ci5cIixcbiAgICBcIlBlc2NoZXIgQnVzY2hcIixcbiAgICBcIlBlc2Noc3RyLlwiLFxuICAgIFwiUGVzdGFsb3p6aXN0ci5cIixcbiAgICBcIlBldGVyLUdyaWXDny1TdHIuXCIsXG4gICAgXCJQZXRlci1Kb3NlcGgtTGVubsOpLVN0ci5cIixcbiAgICBcIlBldGVyLU5ldWVuaGV1c2VyLVN0ci5cIixcbiAgICBcIlBldGVyc2JlcmdzdHIuXCIsXG4gICAgXCJQZXRlcnN0ci5cIixcbiAgICBcIlBmYXJyZXItSmVrZWwtU3RyLlwiLFxuICAgIFwiUGZhcnJlci1LbGVpbi1TdHIuXCIsXG4gICAgXCJQZmFycmVyLVLDtmhyLVN0ci5cIixcbiAgICBcIlBmZWlsc2hvZnN0ci5cIixcbiAgICBcIlBoaWxpcHAtT3R0LVN0ci5cIixcbiAgICBcIlBpZXQtTW9uZHJpYW4tU3RyLlwiLFxuICAgIFwiUGxhdGFuZW53ZWdcIixcbiAgICBcIlBvbW1lcm5zdHIuXCIsXG4gICAgXCJQb3JzY2hlc3RyLlwiLFxuICAgIFwiUG9zdHN0ci5cIixcbiAgICBcIlBvdHNkYW1lciBTdHIuXCIsXG4gICAgXCJQcmVnZWxzdHIuXCIsXG4gICAgXCJQcmllw59uaXR6c3RyLlwiLFxuICAgIFwiUMO8dHpkZWxsZVwiLFxuICAgIFwiUXVhcnpzdHIuXCIsXG4gICAgXCJRdWV0dGluZ2VyIFN0ci5cIixcbiAgICBcIlJhdC1EZXlja3MtU3RyLlwiLFxuICAgIFwiUmF0aGVuYXVzdHIuXCIsXG4gICAgXCJSYXRoZXJrw6RtcFwiLFxuICAgIFwiUmF0aWJvcmVyIFN0ci5cIixcbiAgICBcIlJhdXNob2ZzdHIuXCIsXG4gICAgXCJSZWdlbnNidXJnZXIgU3RyLlwiLFxuICAgIFwiUmVpbmlja2VuZG9yZmVyIFN0ci5cIixcbiAgICBcIlJlbmtnYXNzZVwiLFxuICAgIFwiUmVubmJhdW1wbGF0elwiLFxuICAgIFwiUmVubmJhdW1zdHIuXCIsXG4gICAgXCJSZXVzY2hlbmJlcmdlciBTdHIuXCIsXG4gICAgXCJSZXVzcmF0aGVyIFN0ci5cIixcbiAgICBcIlJldXRlcnN0ci5cIixcbiAgICBcIlJoZWluYWxsZWVcIixcbiAgICBcIlJoZWluZG9yZmVyIFN0ci5cIixcbiAgICBcIlJoZWluc3RyLlwiLFxuICAgIFwiUmhlaW4tV3VwcGVyLVBsYXR6XCIsXG4gICAgXCJSaWNoYXJkLVdhZ25lci1TdHIuXCIsXG4gICAgXCJSaWxrZXN0ci5cIixcbiAgICBcIlJpbmdzdHIuXCIsXG4gICAgXCJSb2JlcnQtQmx1bS1TdHIuXCIsXG4gICAgXCJSb2JlcnQtS29jaC1TdHIuXCIsXG4gICAgXCJSb2JlcnQtTWVkZW53YWxkLVN0ci5cIixcbiAgICBcIlJvbGFuZHN0ci5cIixcbiAgICBcIlJvbWJlcmdcIixcbiAgICBcIlLDtm50Z2Vuc3RyLlwiLFxuICAgIFwiUm9vbnN0ci5cIixcbiAgICBcIlJvcGVuc3RhbGxcIixcbiAgICBcIlJvcGVuc3RhbGxlciBXZWdcIixcbiAgICBcIlJvc2VudGhhbFwiLFxuICAgIFwiUm9zdG9ja2VyIFN0ci5cIixcbiAgICBcIlJvdGRvcm53ZWdcIixcbiAgICBcIlLDtnR0Z2Vyd2VnXCIsXG4gICAgXCJSw7xja2VydHN0ci5cIixcbiAgICBcIlJ1ZG9sZi1CcmVpdHNjaGVpZC1TdHIuXCIsXG4gICAgXCJSdWRvbGYtTWFubi1QbGF0elwiLFxuICAgIFwiUnVkb2xmLVN0cmFja2UtU3RyLlwiLFxuICAgIFwiUnVobGFjaHBsYXR6XCIsXG4gICAgXCJSdWhsYWNoc3RyLlwiLFxuICAgIFwiUsO8dHRlcnN3ZWdcIixcbiAgICBcIlNhYWxlc3RyLlwiLFxuICAgIFwiU2FhcmJyw7xja2VyIFN0ci5cIixcbiAgICBcIlNhYXJsYXV0ZXJuZXIgU3RyLlwiLFxuICAgIFwiU2FhcnN0ci5cIixcbiAgICBcIlNhbGFtYW5kZXJ3ZWdcIixcbiAgICBcIlNhbWxhbmRzdHIuXCIsXG4gICAgXCJTYW5kZG9ybnN0ci5cIixcbiAgICBcIlNhbmRzdHIuXCIsXG4gICAgXCJTYXVlcmJydWNoc3RyLlwiLFxuICAgIFwiU2Now6RmZXJzaMO8dHRlXCIsXG4gICAgXCJTY2hhcm5ob3JzdHN0ci5cIixcbiAgICBcIlNjaGVmZmVyc2hvZlwiLFxuICAgIFwiU2NoZWlkZW1hbm5zdHIuXCIsXG4gICAgXCJTY2hlbGxpbmdzdHIuXCIsXG4gICAgXCJTY2hlbmtlbmRvcmZzdHIuXCIsXG4gICAgXCJTY2hpZcOfYmVyZ3N0ci5cIixcbiAgICBcIlNjaGlsbGVyc3RyLlwiLFxuICAgIFwiU2NobGFuZ2VuaGVja2VcIixcbiAgICBcIlNjaGxlYnVzY2hlciBIZWlkZVwiLFxuICAgIFwiU2NobGVidXNjaGVyIFN0ci5cIixcbiAgICBcIlNjaGxlYnVzY2hyYXRoXCIsXG4gICAgXCJTY2hsZWhkb3Juc3RyLlwiLFxuICAgIFwiU2NobGVpZXJtYWNoZXJzdHIuXCIsXG4gICAgXCJTY2hsb8Ofc3RyLlwiLFxuICAgIFwiU2NobWFsZW5icnVjaFwiLFxuICAgIFwiU2NobmVwZmVuZmx1Y2h0XCIsXG4gICAgXCJTY2jDtmZmZW53ZWdcIixcbiAgICBcIlNjaMO2bGxlcnN0ci5cIixcbiAgICBcIlNjaMO2bmUgQXVzc2ljaHRcIixcbiAgICBcIlNjaMO2bmViZXJnZXIgU3RyLlwiLFxuICAgIFwiU2Nob3BlbmhhdWVyc3RyLlwiLFxuICAgIFwiU2NodWJlcnRwbGF0elwiLFxuICAgIFwiU2NodWJlcnRzdHIuXCIsXG4gICAgXCJTY2h1bGJlcmdcIixcbiAgICBcIlNjaHVsc3RyLlwiLFxuICAgIFwiU2NodW1hbm5zdHIuXCIsXG4gICAgXCJTY2h3YWxiZW53ZWdcIixcbiAgICBcIlNjaHdhcnphc3RyLlwiLFxuICAgIFwiU2ViYXN0aWFudXN3ZWdcIixcbiAgICBcIlNlbW1lbHdlaXNzdHIuXCIsXG4gICAgXCJTaWViZWxwbGF0elwiLFxuICAgIFwiU2llbWVuc3N0ci5cIixcbiAgICBcIlNvbGluZ2VyIFN0ci5cIixcbiAgICBcIlNvbmRlcmJ1cmdlciBTdHIuXCIsXG4gICAgXCJTcGFuZGF1ZXIgU3RyLlwiLFxuICAgIFwiU3BlZXN0ci5cIixcbiAgICBcIlNwZXJiZXJ3ZWdcIixcbiAgICBcIlNwZXJsaW5nc3dlZ1wiLFxuICAgIFwiU3BpdHp3ZWdzdHIuXCIsXG4gICAgXCJTcG9ycmVuYmVyZ2VyIE3DvGhsZVwiLFxuICAgIFwiU3ByZWVzdHIuXCIsXG4gICAgXCJTdC4gSW5nYmVydGVyIFN0ci5cIixcbiAgICBcIlN0YXJlbndlZ1wiLFxuICAgIFwiU3RhdWZmZW5iZXJnc3RyLlwiLFxuICAgIFwiU3RlZmFuLVp3ZWlnLVN0ci5cIixcbiAgICBcIlN0ZWdlcndhbGRzdHIuXCIsXG4gICAgXCJTdGVnbGl0emVyIFN0ci5cIixcbiAgICBcIlN0ZWluYsO8Y2hlbGVyIEZlbGRcIixcbiAgICBcIlN0ZWluYsO8Y2hlbGVyIFN0ci5cIixcbiAgICBcIlN0ZWluc3RyLlwiLFxuICAgIFwiU3RlaW53ZWdcIixcbiAgICBcIlN0ZXBoYW4tTG9jaG5lci1TdHIuXCIsXG4gICAgXCJTdGVwaGFudXNzdHIuXCIsXG4gICAgXCJTdGV0dGluZXIgU3RyLlwiLFxuICAgIFwiU3RpeGNoZXNzdHIuXCIsXG4gICAgXCJTdMO2Y2tlbnN0ci5cIixcbiAgICBcIlN0cmFsc3VuZGVyIFN0ci5cIixcbiAgICBcIlN0cmHDn2J1cmdlciBTdHIuXCIsXG4gICAgXCJTdHJlc2VtYW5ucGxhdHpcIixcbiAgICBcIlN0cm9tYmVyZ3N0ci5cIixcbiAgICBcIlN0cm9tc3RyLlwiLFxuICAgIFwiU3TDvHR0ZWtvZmVuZXIgU3RyLlwiLFxuICAgIFwiU3VkZXN0ci5cIixcbiAgICBcIlPDvHJkZXJzdHIuXCIsXG4gICAgXCJTeWx0c3RyLlwiLFxuICAgIFwiVGFsc3RyLlwiLFxuICAgIFwiVGFubmVuYmVyZ3N0ci5cIixcbiAgICBcIlRhbm5lbndlZ1wiLFxuICAgIFwiVGF1YmVud2VnXCIsXG4gICAgXCJUZWl0c2NoZWlkZXIgV2VnXCIsXG4gICAgXCJUZWxlZ3JhZmVuc3RyLlwiLFxuICAgIFwiVGVsdG93ZXIgU3RyLlwiLFxuICAgIFwiVGVtcGVsaG9mZXIgU3RyLlwiLFxuICAgIFwiVGhlb2Rvci1BZG9ybm8tU3RyLlwiLFxuICAgIFwiVGhlb2Rvci1GbGllZG5lci1TdHIuXCIsXG4gICAgXCJUaGVvZG9yLUdpZXJhdGgtU3RyLlwiLFxuICAgIFwiVGhlb2Rvci1IYXViYWNoLVN0ci5cIixcbiAgICBcIlRoZW9kb3ItSGV1c3MtUmluZ1wiLFxuICAgIFwiVGhlb2Rvci1TdG9ybS1TdHIuXCIsXG4gICAgXCJUaGVvZG9yc3RyLlwiLFxuICAgIFwiVGhvbWFzLURlaGxlci1TdHIuXCIsXG4gICAgXCJUaG9tYXMtTW9ydXMtU3RyLlwiLFxuICAgIFwiVGhvbWFzLXZvbi1BcXVpbi1TdHIuXCIsXG4gICAgXCJUw7ZuZ2VzIEZlbGRcIixcbiAgICBcIlRvcnN0ci5cIixcbiAgICBcIlRyZXB0b3dlciBTdHIuXCIsXG4gICAgXCJUcmV1YnVyZ2VyIFN0ci5cIixcbiAgICBcIlVobGFuZHN0ci5cIixcbiAgICBcIlVsbWVud2VnXCIsXG4gICAgXCJVbG1lciBTdHIuXCIsXG4gICAgXCJVbHJpY2hzdHIuXCIsXG4gICAgXCJVbHJpY2gtdm9uLUhhc3NlbGwtU3RyLlwiLFxuICAgIFwiVW1sYWdcIixcbiAgICBcIlVuc3RydXRzdHIuXCIsXG4gICAgXCJVbnRlciBkZW0gU2NoaWxkY2hlblwiLFxuICAgIFwiVW50ZXLDtmxiYWNoXCIsXG4gICAgXCJVbnRlcnN0ci5cIixcbiAgICBcIlVwcGVyc2JlcmdcIixcbiAgICBcIlZhblxcXFwndC1Ib2ZmLVN0ci5cIixcbiAgICBcIlZlaXQtU3Rvw58tU3RyLlwiLFxuICAgIFwiVmVyZWluc3N0ci5cIixcbiAgICBcIlZpa3Rvci1NZXllci1TdHIuXCIsXG4gICAgXCJWaW5jZW50LXZhbi1Hb2doLVN0ci5cIixcbiAgICBcIlZpcmNob3dzdHIuXCIsXG4gICAgXCJWb2lndHNsYWNoXCIsXG4gICAgXCJWb2xoYXJkc3RyLlwiLFxuICAgIFwiVsO2bGtsaW5nZXIgU3RyLlwiLFxuICAgIFwiVm9uLUJyZW50YW5vLVN0ci5cIixcbiAgICBcIlZvbi1EaWVyZ2FyZHQtU3RyLlwiLFxuICAgIFwiVm9uLUVpY2hlbmRvcmZmLVN0ci5cIixcbiAgICBcIlZvbi1LZXR0ZWxlci1TdHIuXCIsXG4gICAgXCJWb24tS25vZXJpbmdlbi1TdHIuXCIsXG4gICAgXCJWb24tUGV0dGVua29mZXItU3RyLlwiLFxuICAgIFwiVm9uLVNpZWJvbGQtU3RyLlwiLFxuICAgIFwiV2FjaG9sZGVyd2VnXCIsXG4gICAgXCJXYWxkc3RyLlwiLFxuICAgIFwiV2FsdGVyLUZsZXgtU3RyLlwiLFxuICAgIFwiV2FsdGVyLUhlbXBlbC1TdHIuXCIsXG4gICAgXCJXYWx0ZXItSG9jaGFwZmVsLVN0ci5cIixcbiAgICBcIldhbHRlci1OZXJuc3QtU3RyLlwiLFxuICAgIFwiV2FubnNlZXN0ci5cIixcbiAgICBcIldhcm5vd3N0ci5cIixcbiAgICBcIldhcnRoZXN0ci5cIixcbiAgICBcIldlZGRpZ2Vuc3RyLlwiLFxuICAgIFwiV2VpY2hzZWxzdHIuXCIsXG4gICAgXCJXZWlkZW5zdHIuXCIsXG4gICAgXCJXZWlkZmVsZHN0ci5cIixcbiAgICBcIldlaWhlcmZlbGRcIixcbiAgICBcIldlaWhlcnN0ci5cIixcbiAgICBcIldlaW5ow6R1c2VyIFN0ci5cIixcbiAgICBcIldlacOfZG9ybndlZ1wiLFxuICAgIFwiV2Vpw59lbnNlZXN0ci5cIixcbiAgICBcIldlaXprYW1wXCIsXG4gICAgXCJXZXJmdHN0ci5cIixcbiAgICBcIldlcmtzdMOkdHRlbnN0ci5cIixcbiAgICBcIldlcm5lci1IZWlzZW5iZXJnLVN0ci5cIixcbiAgICBcIldlcnJhc3RyLlwiLFxuICAgIFwiV2V5ZXJ3ZWdcIixcbiAgICBcIldpZGRhdWVuZXIgU3RyLlwiLFxuICAgIFwiV2llYmVydHNob2ZcIixcbiAgICBcIldpZWhiYWNodGFsXCIsXG4gICAgXCJXaWVtYmFjaGFsbGVlXCIsXG4gICAgXCJXaWVzZG9yZmVyIFBsYXR6XCIsXG4gICAgXCJXaWVzZW5zdHIuXCIsXG4gICAgXCJXaWxoZWxtLUJ1c2NoLVN0ci5cIixcbiAgICBcIldpbGhlbG0tSGFzdHJpY2gtU3RyLlwiLFxuICAgIFwiV2lsaGVsbS1MZXVzY2huZXItU3RyLlwiLFxuICAgIFwiV2lsaGVsbS1MaWVia25lY2h0LVN0ci5cIixcbiAgICBcIldpbGhlbG1zZ2Fzc2VcIixcbiAgICBcIldpbGhlbG1zdHIuXCIsXG4gICAgXCJXaWxsaS1CYXVtZWlzdGVyLVN0ci5cIixcbiAgICBcIldpbGx5LUJyYW5kdC1SaW5nXCIsXG4gICAgXCJXaW5hbmQtUm9zc2ktU3RyLlwiLFxuICAgIFwiV2luZHRob3JzdHN0ci5cIixcbiAgICBcIldpbmtlbHdlZ1wiLFxuICAgIFwiV2ludGVyYmVyZ1wiLFxuICAgIFwiV2l0dGVuYmVyZ3N0ci5cIixcbiAgICBcIldvbGYtVm9zdGVsbC1TdHIuXCIsXG4gICAgXCJXb2xrZW5idXJnc3RyLlwiLFxuICAgIFwiV3VwcGVyc3RyLlwiLFxuICAgIFwiV3VwcGVydGFsc3RyLlwiLFxuICAgIFwiV8O8c3RlbmhvZlwiLFxuICAgIFwiWWl0emhhay1SYWJpbi1TdHIuXCIsXG4gICAgXCJaYXViZXJrdWhsZVwiLFxuICAgIFwiWmVkZXJud2VnXCIsXG4gICAgXCJaZWhsZW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiWmVobnRlbndlZ1wiLFxuICAgIFwiWmVpc2lnd2VnXCIsXG4gICAgXCJaZXBwZWxpbnN0ci5cIixcbiAgICBcIlpzY2hvcGF1c3RyLlwiLFxuICAgIFwiWnVtIENsYWFzaMOkdXNjaGVuXCIsXG4gICAgXCJaw7xuZGjDvHRjaGVud2VnXCIsXG4gICAgXCJadXIgQWx0ZW4gQnJhdWVyZWlcIixcbiAgICBcIlp1ciBhbHRlbiBGYWJyaWtcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCIsXG4gICAgXCIjI2FcIixcbiAgICBcIiMjYlwiLFxuICAgIFwiIyNjXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHQuICMjI1wiLFxuICAgIFwiWmltbWVyICMjI1wiLFxuICAgIFwiIyBPR1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCYWRlbi1Xw7xydHRlbWJlcmdcIixcbiAgICBcIkJheWVyblwiLFxuICAgIFwiQmVybGluXCIsXG4gICAgXCJCcmFuZGVuYnVyZ1wiLFxuICAgIFwiQnJlbWVuXCIsXG4gICAgXCJIYW1idXJnXCIsXG4gICAgXCJIZXNzZW5cIixcbiAgICBcIk1lY2tsZW5idXJnLVZvcnBvbW1lcm5cIixcbiAgICBcIk5pZWRlcnNhY2hzZW5cIixcbiAgICBcIk5vcmRyaGVpbi1XZXN0ZmFsZW5cIixcbiAgICBcIlJoZWlubGFuZC1QZmFselwiLFxuICAgIFwiU2FhcmxhbmRcIixcbiAgICBcIlNhY2hzZW5cIixcbiAgICBcIlNhY2hzZW4tQW5oYWx0XCIsXG4gICAgXCJTY2hsZXN3aWctSG9sc3RlaW5cIixcbiAgICBcIlRow7xyaW5nZW5cIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQldcIixcbiAgICBcIkJZXCIsXG4gICAgXCJCRVwiLFxuICAgIFwiQkJcIixcbiAgICBcIkhCXCIsXG4gICAgXCJISFwiLFxuICAgIFwiSEVcIixcbiAgICBcIk1WXCIsXG4gICAgXCJOSVwiLFxuICAgIFwiTldcIixcbiAgICBcIlJQXCIsXG4gICAgXCJTTFwiLFxuICAgIFwiU05cIixcbiAgICBcIlNUXCIsXG4gICAgXCJTSFwiLFxuICAgIFwiVEhcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJEZXV0c2NobGFuZFwiXG4gIF1cbn07XG5kZS5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibGVnYWxfZm9ybVwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gdW5kICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmRlLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIixcbiAgICBcImRlXCIsXG4gICAgXCJjaFwiXG4gIF1cbn07XG5kZS5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdXG59O1xuZGUubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJBYmR1bFwiLFxuICAgIFwiQWJkdWxsYWhcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQWRyaWFub1wiLFxuICAgIFwiQWhtYWRcIixcbiAgICBcIkFobWVkXCIsXG4gICAgXCJBaG1ldFwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGVzc2FuZHJvXCIsXG4gICAgXCJBbGVzc2lvXCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkFsZnJlZFwiLFxuICAgIFwiQWxpXCIsXG4gICAgXCJBbWFyXCIsXG4gICAgXCJBbWlyXCIsXG4gICAgXCJBbW9uXCIsXG4gICAgXCJBbmRyZVwiLFxuICAgIFwiQW5kcmVhc1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbmdlbG9cIixcbiAgICBcIkFuc2dhclwiLFxuICAgIFwiQW50aG9ueVwiLFxuICAgIFwiQW50b25cIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuXCIsXG4gICAgXCJBcm1pblwiLFxuICAgIFwiQXJuZVwiLFxuICAgIFwiQXJub1wiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJBcnR1clwiLFxuICAgIFwiQXJ2ZWRcIixcbiAgICBcIkFydmlkXCIsXG4gICAgXCJBeW1hblwiLFxuICAgIFwiQmFyYW5cIixcbiAgICBcIkJhcmlzXCIsXG4gICAgXCJCYXN0aWFuXCIsXG4gICAgXCJCYXR1aGFuXCIsXG4gICAgXCJCZWxhXCIsXG4gICAgXCJCZW5cIixcbiAgICBcIkJlbmVkaWt0XCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQmVubmV0XCIsXG4gICAgXCJCZW5uZXR0XCIsXG4gICAgXCJCZW5ub1wiLFxuICAgIFwiQmVudFwiLFxuICAgIFwiQmVyYXRcIixcbiAgICBcIkJlcmtheVwiLFxuICAgIFwiQmVybmRcIixcbiAgICBcIkJpbGFsXCIsXG4gICAgXCJCamFybmVcIixcbiAgICBcIkJqw7ZyblwiLFxuICAgIFwiQm9cIixcbiAgICBcIkJvcmlzXCIsXG4gICAgXCJCcmFuZG9uXCIsXG4gICAgXCJCcmlhblwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkJyeWFuXCIsXG4gICAgXCJCdXJha1wiLFxuICAgIFwiQ2FsdmluXCIsXG4gICAgXCJDYW5cIixcbiAgICBcIkNhcmxcIixcbiAgICBcIkNhcmxvXCIsXG4gICAgXCJDYXJsb3NcIixcbiAgICBcIkNhc3BhclwiLFxuICAgIFwiQ2VkcmljXCIsXG4gICAgXCJDZWRyaWtcIixcbiAgICBcIkNlbVwiLFxuICAgIFwiQ2hhcmxpZVwiLFxuICAgIFwiQ2hyaXNcIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiQ2hyaXN0aWFub1wiLFxuICAgIFwiQ2hyaXN0b3BoXCIsXG4gICAgXCJDaHJpc3RvcGhlclwiLFxuICAgIFwiQ2xhYXNcIixcbiAgICBcIkNsZW1lbnNcIixcbiAgICBcIkNvbGluXCIsXG4gICAgXCJDb2xsaW5cIixcbiAgICBcIkNvbm5lclwiLFxuICAgIFwiQ29ubm9yXCIsXG4gICAgXCJDb25zdGFudGluXCIsXG4gICAgXCJDb3J2aW5cIixcbiAgICBcIkN1cnRcIixcbiAgICBcIkRhbWlhblwiLFxuICAgIFwiRGFtaWVuXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIkRhbmlsb1wiLFxuICAgIFwiRGFubnlcIixcbiAgICBcIkRhcmlhblwiLFxuICAgIFwiRGFyaW9cIixcbiAgICBcIkRhcml1c1wiLFxuICAgIFwiRGFycmVuXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiRGF2aWRlXCIsXG4gICAgXCJEYXZpblwiLFxuICAgIFwiRGVhblwiLFxuICAgIFwiRGVuaXpcIixcbiAgICBcIkRlbm5pc1wiLFxuICAgIFwiRGVubnlcIixcbiAgICBcIkRldmluXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRGlvblwiLFxuICAgIFwiRG9tZW5pY1wiLFxuICAgIFwiRG9tZW5pa1wiLFxuICAgIFwiRG9taW5pY1wiLFxuICAgIFwiRG9taW5pa1wiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJEdXN0aW5cIixcbiAgICBcIkR5bGFuXCIsXG4gICAgXCJFY3JpblwiLFxuICAgIFwiRWRkaVwiLFxuICAgIFwiRWRkeVwiLFxuICAgIFwiRWRnYXJcIixcbiAgICBcIkVkd2luXCIsXG4gICAgXCJFZmVcIixcbiAgICBcIkVnZVwiLFxuICAgIFwiRWxpYVwiLFxuICAgIFwiRWxpYWhcIixcbiAgICBcIkVsaWFzXCIsXG4gICAgXCJFbGlqYWhcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtaWxpYW5cIixcbiAgICBcIkVtaWxpb1wiLFxuICAgIFwiRW1pclwiLFxuICAgIFwiRW1pcmhhblwiLFxuICAgIFwiRW1yZVwiLFxuICAgIFwiRW5lc1wiLFxuICAgIFwiRW5ub1wiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFcmVuXCIsXG4gICAgXCJFcmljXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJFdGllbm5lXCIsXG4gICAgXCJGYWJpYW5cIixcbiAgICBcIkZhYmllblwiLFxuICAgIFwiRmFiaW9cIixcbiAgICBcIkZhYnJpY2VcIixcbiAgICBcIkZhbGtcIixcbiAgICBcIkZlbGl4XCIsXG4gICAgXCJGZXJkaW5hbmRcIixcbiAgICBcIkZpZXRlXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiRmlubGF5XCIsXG4gICAgXCJGaW5sZXlcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZpbm5sZXlcIixcbiAgICBcIkZsb3JpYW5cIixcbiAgICBcIkZyYW5jZXNjb1wiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyZWRlcmljXCIsXG4gICAgXCJGcmVkZXJpY2tcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaXR6XCIsXG4gICAgXCJGdXJrYW5cIixcbiAgICBcIkZ5bm5cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlb3JnXCIsXG4gICAgXCJHZXJyaXRcIixcbiAgICBcIkdpYW5cIixcbiAgICBcIkdpYW5sdWNhXCIsXG4gICAgXCJHaW5vXCIsXG4gICAgXCJHaXVsaWFub1wiLFxuICAgIFwiR2l1c2VwcGVcIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiR3VzdGF2XCIsXG4gICAgXCJIYWdlblwiLFxuICAgIFwiSGFtemFcIixcbiAgICBcIkhhbm5lc1wiLFxuICAgIFwiSGFubm9cIixcbiAgICBcIkhhbnNcIixcbiAgICBcIkhhc2FuXCIsXG4gICAgXCJIYXNzYW5cIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIZW5kcmlrXCIsXG4gICAgXCJIZW5uZXNcIixcbiAgICBcIkhlbm5pbmdcIixcbiAgICBcIkhlbnJpXCIsXG4gICAgXCJIZW5yaWNrXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJIdXNzZWluXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklicmFoaW1cIixcbiAgICBcIklsaWFzXCIsXG4gICAgXCJJbGphXCIsXG4gICAgXCJJbHlhc1wiLFxuICAgIFwiSW1tYW51ZWxcIixcbiAgICBcIklzbWFlbFwiLFxuICAgIFwiSXNtYWlsXCIsXG4gICAgXCJJdmFuXCIsXG4gICAgXCJJdmVuXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSmFkZW5cIixcbiAgICBcIkpha29iXCIsXG4gICAgXCJKYW1hbFwiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW5cIixcbiAgICBcIkphbmVrXCIsXG4gICAgXCJKYW5pc1wiLFxuICAgIFwiSmFubmVcIixcbiAgICBcIkphbm5la1wiLFxuICAgIFwiSmFubmVzXCIsXG4gICAgXCJKYW5uaWtcIixcbiAgICBcIkphbm5pc1wiLFxuICAgIFwiSmFub1wiLFxuICAgIFwiSmFub3NjaFwiLFxuICAgIFwiSmFyZWRcIixcbiAgICBcIkphcmlcIixcbiAgICBcIkphcm5lXCIsXG4gICAgXCJKYXJub1wiLFxuICAgIFwiSmFyb25cIixcbiAgICBcIkphc29uXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJKYXlzb25cIixcbiAgICBcIkplYW5cIixcbiAgICBcIkplbnNcIixcbiAgICBcIkplcmVtaWFzXCIsXG4gICAgXCJKZXJlbWllXCIsXG4gICAgXCJKZXJlbXlcIixcbiAgICBcIkplcm1haW5lXCIsXG4gICAgXCJKZXJvbWVcIixcbiAgICBcIkplc3BlclwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkppbVwiLFxuICAgIFwiSmltbXlcIixcbiAgICBcIkpvZVwiLFxuICAgIFwiSm9lbFwiLFxuICAgIFwiSm9leVwiLFxuICAgIFwiSm9oYW5uXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9obm55XCIsXG4gICAgXCJKb25cIixcbiAgICBcIkpvbmFcIixcbiAgICBcIkpvbmFoXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkpvbnRlXCIsXG4gICAgXCJKb29zdFwiLFxuICAgIFwiSm9yZGFuXCIsXG4gICAgXCJKb3Jpc1wiLFxuICAgIFwiSm9zY2hhXCIsXG4gICAgXCJKb3NjaHVhXCIsXG4gICAgXCJKb3NlZlwiLFxuICAgIFwiSm9zZXBoXCIsXG4gICAgXCJKb3NoXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIkpvc3VhXCIsXG4gICAgXCJKdWFuXCIsXG4gICAgXCJKdWxpYW5cIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiSnVsaXVzXCIsXG4gICAgXCJKdXJpXCIsXG4gICAgXCJKdXN0aW5cIixcbiAgICBcIkp1c3R1c1wiLFxuICAgIFwiS2FhblwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJLYWxsZVwiLFxuICAgIFwiS2FyaW1cIixcbiAgICBcIkthcmxcIixcbiAgICBcIkthcmxvXCIsXG4gICAgXCJLYXlcIixcbiAgICBcIktlYW51XCIsXG4gICAgXCJLZW5hblwiLFxuICAgIFwiS2VubnlcIixcbiAgICBcIktlbm9cIixcbiAgICBcIktlcmVtXCIsXG4gICAgXCJLZXJpbVwiLFxuICAgIFwiS2V2aW5cIixcbiAgICBcIktpYW5cIixcbiAgICBcIktpbGlhblwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1pXCIsXG4gICAgXCJLamVsbFwiLFxuICAgIFwiS2xhYXNcIixcbiAgICBcIktsZW1lbnNcIixcbiAgICBcIktvbnJhZFwiLFxuICAgIFwiS29uc3RhbnRpblwiLFxuICAgIFwiS29yYXlcIixcbiAgICBcIktvcmJpbmlhblwiLFxuICAgIFwiS3VydFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiTGFzc2VcIixcbiAgICBcIkxhdXJlbmNlXCIsXG4gICAgXCJMYXVyZW5zXCIsXG4gICAgXCJMYXVyZW56XCIsXG4gICAgXCJMYXVyaW5cIixcbiAgICBcIkxlYW5cIixcbiAgICBcIkxlYW5kZXJcIixcbiAgICBcIkxlYW5kcm9cIixcbiAgICBcIkxlaWZcIixcbiAgICBcIkxlblwiLFxuICAgIFwiTGVublwiLFxuICAgIFwiTGVubmFyZFwiLFxuICAgIFwiTGVubmFydFwiLFxuICAgIFwiTGVubmVydFwiLFxuICAgIFwiTGVubmllXCIsXG4gICAgXCJMZW5ub3hcIixcbiAgICBcIkxlbm55XCIsXG4gICAgXCJMZW9cIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25hcmRvXCIsXG4gICAgXCJMZW9uaGFyZFwiLFxuICAgIFwiTGVvbmlkYXNcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkxlcm95XCIsXG4gICAgXCJMZXZlbnRcIixcbiAgICBcIkxldmlcIixcbiAgICBcIkxldmluXCIsXG4gICAgXCJMZXdpblwiLFxuICAgIFwiTGV3aXNcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkxpYW5cIixcbiAgICBcIkxpYXNcIixcbiAgICBcIkxpbm9cIixcbiAgICBcIkxpbnVzXCIsXG4gICAgXCJMaW9cIixcbiAgICBcIkxpb25cIixcbiAgICBcIkxpb25lbFwiLFxuICAgIFwiTG9nYW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTG9yaXNcIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJMdWFuXCIsXG4gICAgXCJMdWNcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWNpYW5cIixcbiAgICBcIkx1Y2llblwiLFxuICAgIFwiTHVkd2lnXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWl6XCIsXG4gICAgXCJMdWtcIixcbiAgICBcIkx1a2FcIixcbiAgICBcIkx1a2FzXCIsXG4gICAgXCJMdWtlXCIsXG4gICAgXCJMdXR6XCIsXG4gICAgXCJNYWRkb3hcIixcbiAgICBcIk1hZHNcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFpa1wiLFxuICAgIFwiTWFrc2ltXCIsXG4gICAgXCJNYWxpa1wiLFxuICAgIFwiTWFsdGVcIixcbiAgICBcIk1hbnVlbFwiLFxuICAgIFwiTWFyY1wiLFxuICAgIFwiTWFyY2VsXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyY3VzXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFyaWFuXCIsXG4gICAgXCJNYXJpb1wiLFxuICAgIFwiTWFyaXVzXCIsXG4gICAgXCJNYXJrXCIsXG4gICAgXCJNYXJrb1wiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXJsb1wiLFxuICAgIFwiTWFybG9uXCIsXG4gICAgXCJNYXJ0ZW5cIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXJ3aW5cIixcbiAgICBcIk1hdGVvXCIsXG4gICAgXCJNYXRoaXNcIixcbiAgICBcIk1hdGlzXCIsXG4gICAgXCJNYXRzXCIsXG4gICAgXCJNYXR0ZW9cIixcbiAgICBcIk1hdHRlc1wiLFxuICAgIFwiTWF0dGhpYXNcIixcbiAgICBcIk1hdHRoaXNcIixcbiAgICBcIk1hdHRpXCIsXG4gICAgXCJNYXR0aXNcIixcbiAgICBcIk1hdXJpY2VcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWF4aW1cIixcbiAgICBcIk1heGltaWxpYW5cIixcbiAgICBcIk1laG1ldFwiLFxuICAgIFwiTWVpa1wiLFxuICAgIFwiTWVsdmluXCIsXG4gICAgXCJNZXJsaW5cIixcbiAgICBcIk1lcnRcIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWlja1wiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWthXCIsXG4gICAgXCJNaWthaWxcIixcbiAgICBcIk1pa2VcIixcbiAgICBcIk1pbGFuXCIsXG4gICAgXCJNaWxvXCIsXG4gICAgXCJNaW9cIixcbiAgICBcIk1pcmFjXCIsXG4gICAgXCJNaXJjb1wiLFxuICAgIFwiTWlya29cIixcbiAgICBcIk1vaGFtZWRcIixcbiAgICBcIk1vaGFtbWFkXCIsXG4gICAgXCJNb2hhbW1lZFwiLFxuICAgIFwiTW9yaXR6XCIsXG4gICAgXCJNb3J0ZW5cIixcbiAgICBcIk11aGFtbWVkXCIsXG4gICAgXCJNdXJhdFwiLFxuICAgIFwiTXVzdGFmYVwiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJOYXRoYW5hZWxcIixcbiAgICBcIk5lbHNvblwiLFxuICAgIFwiTmVvXCIsXG4gICAgXCJOZXZpb1wiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmljbGFzXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOaWNvbGFpXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOaWVsc1wiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWtsYXNcIixcbiAgICBcIk5pa29cIixcbiAgICBcIk5pa29sYWlcIixcbiAgICBcIk5pa29sYXNcIixcbiAgICBcIk5pbHNcIixcbiAgICBcIk5pbm9cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIk5vZWxcIixcbiAgICBcIk5vcm1hblwiLFxuICAgIFwiT2RpblwiLFxuICAgIFwiT2tlXCIsXG4gICAgXCJPbGVcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiT21hclwiLFxuICAgIFwiT251clwiLFxuICAgIFwiT3NjYXJcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJQYXNjYWxcIixcbiAgICBcIlBhdHJpY2VcIixcbiAgICBcIlBhdHJpY2tcIixcbiAgICBcIlBhdWxcIixcbiAgICBcIlBlZXJcIixcbiAgICBcIlBlcGVcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQaGlsXCIsXG4gICAgXCJQaGlsaXBcIixcbiAgICBcIlBoaWxpcHBcIixcbiAgICBcIlBpZXJyZVwiLFxuICAgIFwiUGlldFwiLFxuICAgIFwiUGl0XCIsXG4gICAgXCJQaXVzXCIsXG4gICAgXCJRdWVudGluXCIsXG4gICAgXCJRdWlyaW5cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFpa1wiLFxuICAgIFwiUmFtb25cIixcbiAgICBcIlJhcGhhZWxcIixcbiAgICBcIlJhc211c1wiLFxuICAgIFwiUmF1bFwiLFxuICAgIFwiUmF5YW5cIixcbiAgICBcIlJlbsOpXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSaWNjYXJkb1wiLFxuICAgIFwiUmljaGFyZFwiLFxuICAgIFwiUmlja1wiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2JpblwiLFxuICAgIFwiUm9jY29cIixcbiAgICBcIlJvbWFuXCIsXG4gICAgXCJSb21lb1wiLFxuICAgIFwiUm9uXCIsXG4gICAgXCJSdWJlblwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiU2FpZFwiLFxuICAgIFwiU2FsaWhcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiU2FtaVwiLFxuICAgIFwiU2FtbXlcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiU2FuZHJvXCIsXG4gICAgXCJTYW50aW5vXCIsXG4gICAgXCJTYXNjaGFcIixcbiAgICBcIlNlYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiU2VsaW1cIixcbiAgICBcIlNlbWloXCIsXG4gICAgXCJTaGF3blwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlNpbWVvblwiLFxuICAgIFwiU2ltb25cIixcbiAgICBcIlNpbmFuXCIsXG4gICAgXCJTa3lcIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiU3RlZmZlblwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3RldmVcIixcbiAgICBcIlN0ZXZlblwiLFxuICAgIFwiU3ZlblwiLFxuICAgIFwiU8O2bmtlXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlRhaGFcIixcbiAgICBcIlRhbWlub1wiLFxuICAgIFwiVGFtbW9cIixcbiAgICBcIlRhcmlrXCIsXG4gICAgXCJUYXlsZXJcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiVGVvXCIsXG4gICAgXCJUaGVvXCIsXG4gICAgXCJUaGVvZG9yXCIsXG4gICAgXCJUaGllc1wiLFxuICAgIFwiVGhpbG9cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiVGhvcmJlblwiLFxuICAgIFwiVGhvcmVcIixcbiAgICBcIlRob3JnZVwiLFxuICAgIFwiVGlhZ29cIixcbiAgICBcIlRpbFwiLFxuICAgIFwiVGlsbFwiLFxuICAgIFwiVGlsbG1hbm5cIixcbiAgICBcIlRpbVwiLFxuICAgIFwiVGltbVwiLFxuICAgIFwiVGltb1wiLFxuICAgIFwiVGltb25cIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRpbm9cIixcbiAgICBcIlRpdHVzXCIsXG4gICAgXCJUaXppYW5cIixcbiAgICBcIlRqYXJrXCIsXG4gICAgXCJUb2JpYXNcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiVG9tbXlcIixcbiAgICBcIlRvbmlcIixcbiAgICBcIlRvbnlcIixcbiAgICBcIlRvcmJlblwiLFxuICAgIFwiVG9yZVwiLFxuICAgIFwiVHJpc3RhblwiLFxuICAgIFwiVHlsZXJcIixcbiAgICBcIlR5cm9uXCIsXG4gICAgXCJVbXV0XCIsXG4gICAgXCJWYWxlbnRpblwiLFxuICAgIFwiVmFsZW50aW5vXCIsXG4gICAgXCJWZWl0XCIsXG4gICAgXCJWaWN0b3JcIixcbiAgICBcIlZpa3RvclwiLFxuICAgIFwiVmluXCIsXG4gICAgXCJWaW5jZW50XCIsXG4gICAgXCJWaXRvXCIsXG4gICAgXCJWaXR1c1wiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsbGlcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIldpbGx5XCIsXG4gICAgXCJYYXZlclwiLFxuICAgIFwiWWFubmljXCIsXG4gICAgXCJZYW5uaWNrXCIsXG4gICAgXCJZYW5uaWtcIixcbiAgICBcIllhbm5pc1wiLFxuICAgIFwiWWFzaW5cIixcbiAgICBcIllvdXNzZWZcIixcbiAgICBcIll1bnVzXCIsXG4gICAgXCJZdXN1ZlwiLFxuICAgIFwiWXZlblwiLFxuICAgIFwiWXZlc1wiLFxuICAgIFwiw5ZtZXJcIixcbiAgICBcIkFhbGl5YWhcIixcbiAgICBcIkFiYnlcIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIkFkYVwiLFxuICAgIFwiQWRlbGluYVwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWlsZWVuXCIsXG4gICAgXCJBaW1lZVwiLFxuICAgIFwiQWxhbmFcIixcbiAgICBcIkFsZWFcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJBbGVzc2FcIixcbiAgICBcIkFsZXNzaWFcIixcbiAgICBcIkFsZXhhXCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkFsZXhpYVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJBbGV5bmFcIixcbiAgICBcIkFsaWFcIixcbiAgICBcIkFsaWNhXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiQWxpY2lhXCIsXG4gICAgXCJBbGluYVwiLFxuICAgIFwiQWxpc2FcIixcbiAgICBcIkFsaXNoYVwiLFxuICAgIFwiQWxpc3NhXCIsXG4gICAgXCJBbGl5YVwiLFxuICAgIFwiQWxpeWFoXCIsXG4gICAgXCJBbGxlZ3JhXCIsXG4gICAgXCJBbG1hXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbWVsaWFcIixcbiAgICBcIkFtZWxpZVwiLFxuICAgIFwiQW1pbmFcIixcbiAgICBcIkFtaXJhXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFuYVwiLFxuICAgIFwiQW5hYmVsXCIsXG4gICAgXCJBbmFzdGFzaWFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJBbmdlbGluYVwiLFxuICAgIFwiQW5nZWxpcXVlXCIsXG4gICAgXCJBbmphXCIsXG4gICAgXCJBbm5cIixcbiAgICBcIkFubmFcIixcbiAgICBcIkFubmFiZWxcIixcbiAgICBcIkFubmFiZWxsXCIsXG4gICAgXCJBbm5hYmVsbGVcIixcbiAgICBcIkFubmFsZW5hXCIsXG4gICAgXCJBbm5lXCIsXG4gICAgXCJBbm5la2VcIixcbiAgICBcIkFubmVsaWVcIixcbiAgICBcIkFubmVtYXJpZVwiLFxuICAgIFwiQW5uaVwiLFxuICAgIFwiQW5uaWVcIixcbiAgICBcIkFubmlrYVwiLFxuICAgIFwiQW5ueVwiLFxuICAgIFwiQW5vdWtcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuYVwiLFxuICAgIFwiQXJpYW5lXCIsXG4gICAgXCJBcndlblwiLFxuICAgIFwiQXNobGV5XCIsXG4gICAgXCJBc3lhXCIsXG4gICAgXCJBdXJlbGlhXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkF2YVwiLFxuICAgIFwiQXlsZWVuXCIsXG4gICAgXCJBeWxpblwiLFxuICAgIFwiQXlzZVwiLFxuICAgIFwiQXpyYVwiLFxuICAgIFwiQmV0dHlcIixcbiAgICBcIkJpYW5jYVwiLFxuICAgIFwiQmlhbmthXCIsXG4gICAgXCJDYWl0bGluXCIsXG4gICAgXCJDYXJhXCIsXG4gICAgXCJDYXJpbmFcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJDYXJsb3R0YVwiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJvbGluXCIsXG4gICAgXCJDYXJvbGluYVwiLFxuICAgIFwiQ2Fyb2xpbmVcIixcbiAgICBcIkNhc3NhbmRyYVwiLFxuICAgIFwiQ2F0aGFyaW5hXCIsXG4gICAgXCJDYXRyaW5cIixcbiAgICBcIkNlY2lsZVwiLFxuICAgIFwiQ2VjaWxpYVwiLFxuICAgIFwiQ2VsaWFcIixcbiAgICBcIkNlbGluYVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJDZXlkYVwiLFxuICAgIFwiQ2V5bGluXCIsXG4gICAgXCJDaGFudGFsXCIsXG4gICAgXCJDaGFybGVlblwiLFxuICAgIFwiQ2hhcmxvdHRhXCIsXG4gICAgXCJDaGFybG90dGVcIixcbiAgICBcIkNoYXllbm5lXCIsXG4gICAgXCJDaGV5ZW5uZVwiLFxuICAgIFwiQ2hpYXJhXCIsXG4gICAgXCJDaHJpc3RpblwiLFxuICAgIFwiQ2hyaXN0aW5hXCIsXG4gICAgXCJDaW5keVwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiQ2xhcmlzc2FcIixcbiAgICBcIkNvbGxlZW5cIixcbiAgICBcIkNvbGxpZW5cIixcbiAgICBcIkNvcmFcIixcbiAgICBcIkNvcmlubmFcIixcbiAgICBcIkNvc2ltYVwiLFxuICAgIFwiRGFuYVwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiRGFyaWFcIixcbiAgICBcIkRhcmxlZW5cIixcbiAgICBcIkRlZm5lXCIsXG4gICAgXCJEZWxpYVwiLFxuICAgIFwiRGVuaXNlXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGlsYXJhXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEb3JvdGhlYVwiLFxuICAgIFwiRWNyaW5cIixcbiAgICBcIkVkYVwiLFxuICAgIFwiRWlsZWVuXCIsXG4gICAgXCJFbGFcIixcbiAgICBcIkVsYWluZVwiLFxuICAgIFwiRWxhbnVyXCIsXG4gICAgXCJFbGVhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxlbmlcIixcbiAgICBcIkVsZW9ub3JhXCIsXG4gICAgXCJFbGlhbmFcIixcbiAgICBcIkVsaWZcIixcbiAgICBcIkVsaW5hXCIsXG4gICAgXCJFbGlzYVwiLFxuICAgIFwiRWxpc2FiZXRoXCIsXG4gICAgXCJFbGxhXCIsXG4gICAgXCJFbGxlblwiLFxuICAgIFwiRWxsaVwiLFxuICAgIFwiRWxseVwiLFxuICAgIFwiRWxzYVwiLFxuICAgIFwiRW1lbGllXCIsXG4gICAgXCJFbWVseVwiLFxuICAgIFwiRW1pbGlhXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkVtaWx5XCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJFbW1lbHlcIixcbiAgICBcIkVtbWlcIixcbiAgICBcIkVtbXlcIixcbiAgICBcIkVuaWVcIixcbiAgICBcIkVubmFcIixcbiAgICBcIkVueWFcIixcbiAgICBcIkVzbWFcIixcbiAgICBcIkVzdGVsbGVcIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJFdmVsaW5cIixcbiAgICBcIkV2ZWxpbmFcIixcbiAgICBcIkV2ZWxpbmVcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiRmFiaWVubmVcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmF0bWFcIixcbiAgICBcIkZlbGljaWFcIixcbiAgICBcIkZlbGljaXRhc1wiLFxuICAgIFwiRmVsaW5hXCIsXG4gICAgXCJGZW1rZVwiLFxuICAgIFwiRmVuamFcIixcbiAgICBcIkZpbmVcIixcbiAgICBcIkZpbmlhXCIsXG4gICAgXCJGaW5qYVwiLFxuICAgIFwiRmlubmphXCIsXG4gICAgXCJGaW9uYVwiLFxuICAgIFwiRmxvcmFcIixcbiAgICBcIkZsb3JlbnRpbmVcIixcbiAgICBcIkZyYW5jZXNjYVwiLFxuICAgIFwiRnJhbmthXCIsXG4gICAgXCJGcmFuemlza2FcIixcbiAgICBcIkZyZWRlcmlrZVwiLFxuICAgIFwiRnJleWFcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJGcmllZGFcIixcbiAgICBcIkZyaWVkZXJpa2VcIixcbiAgICBcIkdpYWRhXCIsXG4gICAgXCJHaW5hXCIsXG4gICAgXCJHaXVsaWFcIixcbiAgICBcIkdpdWxpYW5hXCIsXG4gICAgXCJHcmV0YVwiLFxuICAgIFwiSGFpbGV5XCIsXG4gICAgXCJIYW5hXCIsXG4gICAgXCJIYW5uYVwiLFxuICAgIFwiSGFubmFoXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiSGVsZW5cIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJIZWxpblwiLFxuICAgIFwiSGVucmlldHRlXCIsXG4gICAgXCJIZW5yaWtlXCIsXG4gICAgXCJIZXJtaW5lXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIklsYXlkYVwiLFxuICAgIFwiSW1rZVwiLFxuICAgIFwiSW5hXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJJbmdhXCIsXG4gICAgXCJJbmthXCIsXG4gICAgXCJJcmVtXCIsXG4gICAgXCJJc2FcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNhYmVsbFwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIklzYWJlbGxlXCIsXG4gICAgXCJJdm9ubmVcIixcbiAgICBcIkphY3F1ZWxpbmVcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW1pbGFcIixcbiAgICBcIkphbmFcIixcbiAgICBcIkphbmVcIixcbiAgICBcIkphbmluXCIsXG4gICAgXCJKYW5pbmFcIixcbiAgICBcIkphbmluZVwiLFxuICAgIFwiSmFubmFcIixcbiAgICBcIkphbm5lXCIsXG4gICAgXCJKYXJhXCIsXG4gICAgXCJKYXNtaW5cIixcbiAgICBcIkphc21pbmFcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkplbGxhXCIsXG4gICAgXCJKZW5uYVwiLFxuICAgIFwiSmVubmlmZXJcIixcbiAgICBcIkplbm55XCIsXG4gICAgXCJKZXNzaWNhXCIsXG4gICAgXCJKZXNzeVwiLFxuICAgIFwiSmV0dGVcIixcbiAgICBcIkppbFwiLFxuICAgIFwiSmlsbFwiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkpvYW5uYVwiLFxuICAgIFwiSm9lbGluYVwiLFxuICAgIFwiSm9lbGluZVwiLFxuICAgIFwiSm9lbGxlXCIsXG4gICAgXCJKb2hhbm5hXCIsXG4gICAgXCJKb2xlZW5cIixcbiAgICBcIkpvbGllXCIsXG4gICAgXCJKb2xpZW5cIixcbiAgICBcIkpvbGluXCIsXG4gICAgXCJKb2xpbmFcIixcbiAgICBcIkpvbGluZVwiLFxuICAgIFwiSm9uYVwiLFxuICAgIFwiSm9uYWhcIixcbiAgICBcIkpvbm5hXCIsXG4gICAgXCJKb3NlZmluXCIsXG4gICAgXCJKb3NlZmluZVwiLFxuICAgIFwiSm9zZXBoaW5cIixcbiAgICBcIkpvc2VwaGluZVwiLFxuICAgIFwiSm9zaWVcIixcbiAgICBcIkpvc3lcIixcbiAgICBcIkpveVwiLFxuICAgIFwiSm95Y2VcIixcbiAgICBcIkp1ZGl0aFwiLFxuICAgIFwiSnVkeVwiLFxuICAgIFwiSnVsZVwiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhbmFcIixcbiAgICBcIkp1bGlhbmVcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJKdWxpZW5uZVwiLFxuICAgIFwiSnVsaWthXCIsXG4gICAgXCJKdWxpbmFcIixcbiAgICBcIkp1bmFcIixcbiAgICBcIkp1c3RpbmVcIixcbiAgICBcIkthamFcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiS2FybGFcIixcbiAgICBcIkthcmxvdHRhXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiS2Fyb2xpbmVcIixcbiAgICBcIkthc3NhbmRyYVwiLFxuICAgIFwiS2F0YXJpbmFcIixcbiAgICBcIkthdGhhcmluYVwiLFxuICAgIFwiS2F0aHJpblwiLFxuICAgIFwiS2F0amFcIixcbiAgICBcIkthdHJpblwiLFxuICAgIFwiS2F5YVwiLFxuICAgIFwiS2F5cmFcIixcbiAgICBcIktpYW5hXCIsXG4gICAgXCJLaWFyYVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1iZXJsZXlcIixcbiAgICBcIktpbWJlcmx5XCIsXG4gICAgXCJLaXJhXCIsXG4gICAgXCJLbGFyYVwiLFxuICAgIFwiS29yaW5uYVwiLFxuICAgIFwiS3Jpc3RpblwiLFxuICAgIFwiS3lyYVwiLFxuICAgIFwiTGFpbGFcIixcbiAgICBcIkxhbmFcIixcbiAgICBcIkxhcmFcIixcbiAgICBcIkxhcmlzc2FcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMYXVyZWVuXCIsXG4gICAgXCJMYXZpbmlhXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlYWhcIixcbiAgICBcIkxlYW5hXCIsXG4gICAgXCJMZWFuZHJhXCIsXG4gICAgXCJMZWFublwiLFxuICAgIFwiTGVlXCIsXG4gICAgXCJMZWlsYVwiLFxuICAgIFwiTGVuYVwiLFxuICAgIFwiTGVuZVwiLFxuICAgIFwiTGVuaVwiLFxuICAgIFwiTGVuaWFcIixcbiAgICBcIkxlbmphXCIsXG4gICAgXCJMZW55YVwiLFxuICAgIFwiTGVvbmFcIixcbiAgICBcIkxlb25pXCIsXG4gICAgXCJMZW9uaWVcIixcbiAgICBcIkxlb25vcmFcIixcbiAgICBcIkxldGljaWFcIixcbiAgICBcIkxldGl6aWFcIixcbiAgICBcIkxldmtlXCIsXG4gICAgXCJMZXlsYVwiLFxuICAgIFwiTGlhXCIsXG4gICAgXCJMaWFoXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTGlsaVwiLFxuICAgIFwiTGlsaWFcIixcbiAgICBcIkxpbGlhblwiLFxuICAgIFwiTGlsaWFuYVwiLFxuICAgIFwiTGlsaXRoXCIsXG4gICAgXCJMaWxsaVwiLFxuICAgIFwiTGlsbGlhblwiLFxuICAgIFwiTGlsbHlcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIkxpbmFcIixcbiAgICBcIkxpbmRhXCIsXG4gICAgXCJMaW5kc2F5XCIsXG4gICAgXCJMaW5lXCIsXG4gICAgXCJMaW5uXCIsXG4gICAgXCJMaW5uZWFcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxpc2FublwiLFxuICAgIFwiTGlzYW5uZVwiLFxuICAgIFwiTGl2XCIsXG4gICAgXCJMaXZpYVwiLFxuICAgIFwiTGl6XCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJMb3JlZW5cIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG90dGFcIixcbiAgICBcIkxvdHRlXCIsXG4gICAgXCJMb3Vpc2FcIixcbiAgICBcIkxvdWlzZVwiLFxuICAgIFwiTHVhbmFcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiTHVjaWVubmVcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkx1aXNhXCIsXG4gICAgXCJMdWlzZVwiLFxuICAgIFwiTHVrYVwiLFxuICAgIFwiTHVuYVwiLFxuICAgIFwiTHV6aWVcIixcbiAgICBcIkx5YVwiLFxuICAgIFwiTHlkaWFcIixcbiAgICBcIkx5blwiLFxuICAgIFwiTHlublwiLFxuICAgIFwiTWFkZWxlaW5lXCIsXG4gICAgXCJNYWRpdGFcIixcbiAgICBcIk1hZGxlZW5cIixcbiAgICBcIk1hZGxlblwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYWlrZVwiLFxuICAgIFwiTWFpbGluXCIsXG4gICAgXCJNYWlyYVwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiTWFsZW5hXCIsXG4gICAgXCJNYWxpYVwiLFxuICAgIFwiTWFsaW5cIixcbiAgICBcIk1hbGluYVwiLFxuICAgIFwiTWFuZHlcIixcbiAgICBcIk1hcmFcIixcbiAgICBcIk1hcmFoXCIsXG4gICAgXCJNYXJlaWtlXCIsXG4gICAgXCJNYXJlblwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhbVwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIk1hcmlla2VcIixcbiAgICBcIk1hcmllbGxhXCIsXG4gICAgXCJNYXJpa2FcIixcbiAgICBcIk1hcmluYVwiLFxuICAgIFwiTWFyaXNhXCIsXG4gICAgXCJNYXJpc3NhXCIsXG4gICAgXCJNYXJpdFwiLFxuICAgIFwiTWFybGFcIixcbiAgICBcIk1hcmxlZW5cIixcbiAgICBcIk1hcmxlblwiLFxuICAgIFwiTWFybGVuYVwiLFxuICAgIFwiTWFybGVuZVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIk1hcnRoYVwiLFxuICAgIFwiTWFyeVwiLFxuICAgIFwiTWFyeWFtXCIsXG4gICAgXCJNYXRoaWxkYVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIk1heGlcIixcbiAgICBcIk1heGltYVwiLFxuICAgIFwiTWF4aW5lXCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJNYXlyYVwiLFxuICAgIFwiTWVkaW5hXCIsXG4gICAgXCJNZWRpbmVcIixcbiAgICBcIk1laWtlXCIsXG4gICAgXCJNZWxhbmllXCIsXG4gICAgXCJNZWxla1wiLFxuICAgIFwiTWVsaWtlXCIsXG4gICAgXCJNZWxpbmFcIixcbiAgICBcIk1lbGluZGFcIixcbiAgICBcIk1lbGlzXCIsXG4gICAgXCJNZWxpc2FcIixcbiAgICBcIk1lbGlzc2FcIixcbiAgICBcIk1lcmxlXCIsXG4gICAgXCJNZXJ2ZVwiLFxuICAgIFwiTWVyeWVtXCIsXG4gICAgXCJNZXR0ZVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiTWljaGVsbGVcIixcbiAgICBcIk1pZWtlXCIsXG4gICAgXCJNaWxhXCIsXG4gICAgXCJNaWxhbmFcIixcbiAgICBcIk1pbGVuYVwiLFxuICAgIFwiTWlsbGFcIixcbiAgICBcIk1pbmFcIixcbiAgICBcIk1pcmFcIixcbiAgICBcIk1pcmF5XCIsXG4gICAgXCJNaXJpYW1cIixcbiAgICBcIk1pcmphXCIsXG4gICAgXCJNb25hXCIsXG4gICAgXCJNb25pcXVlXCIsXG4gICAgXCJOYWRpbmVcIixcbiAgICBcIk5hZGphXCIsXG4gICAgXCJOYWVtaVwiLFxuICAgIFwiTmFuY3lcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJOYXRoYWxpZVwiLFxuICAgIFwiTmVlbGVcIixcbiAgICBcIk5lbGFcIixcbiAgICBcIk5lbGVcIixcbiAgICBcIk5lbGxpXCIsXG4gICAgXCJOZWxseVwiLFxuICAgIFwiTmlhXCIsXG4gICAgXCJOaWNvbGVcIixcbiAgICBcIk5pa2FcIixcbiAgICBcIk5pa2VcIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlsYVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTmlzYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIk9saXZpYVwiLFxuICAgIFwiUGF0cmljaWFcIixcbiAgICBcIlBhdHJpemlhXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGF1bGluYVwiLFxuICAgIFwiUGF1bGluZVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBoaWxpbmVcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiUGlhXCIsXG4gICAgXCJSYWhlbFwiLFxuICAgIFwiUmFuaWFcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJlYmVra2FcIixcbiAgICBcIlJpYW5hXCIsXG4gICAgXCJSaWVrZVwiLFxuICAgIFwiUmlrZVwiLFxuICAgIFwiUm9taW5hXCIsXG4gICAgXCJSb215XCIsXG4gICAgXCJSb25qYVwiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zYWxpZVwiLFxuICAgIFwiUnVieVwiLFxuICAgIFwiU2FicmluYVwiLFxuICAgIFwiU2FocmFcIixcbiAgICBcIlNhbGx5XCIsXG4gICAgXCJTYWxvbWVcIixcbiAgICBcIlNhbWFudGhhXCIsXG4gICAgXCJTYW1pYVwiLFxuICAgIFwiU2FtaXJhXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIlNhbmR5XCIsXG4gICAgXCJTYW5qYVwiLFxuICAgIFwiU2FwaGlyYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIlNhc2tpYVwiLFxuICAgIFwiU2VsaW5cIixcbiAgICBcIlNlbGluYVwiLFxuICAgIFwiU2VsbWFcIixcbiAgICBcIlNlbmFcIixcbiAgICBcIlNpZG5leVwiLFxuICAgIFwiU2llbm5hXCIsXG4gICAgXCJTaWxqYVwiLFxuICAgIFwiU2luYVwiLFxuICAgIFwiU2luamFcIixcbiAgICBcIlNtaWxsYVwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIlNvZmllXCIsXG4gICAgXCJTb25qYVwiLFxuICAgIFwiU29waGlhXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIlNvcmF5YVwiLFxuICAgIFwiU3RlZmFuaWVcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlcGhhbmllXCIsXG4gICAgXCJTdGluYVwiLFxuICAgIFwiU3VkZVwiLFxuICAgIFwiU3VtbWVyXCIsXG4gICAgXCJTdXNhbm5lXCIsXG4gICAgXCJTdmVhXCIsXG4gICAgXCJTdmVuamFcIixcbiAgICBcIlN5ZG5leVwiLFxuICAgIFwiVGFiZWFcIixcbiAgICBcIlRhbGVhXCIsXG4gICAgXCJUYWxpYVwiLFxuICAgIFwiVGFtYXJhXCIsXG4gICAgXCJUYW1pYVwiLFxuICAgIFwiVGFtaW5hXCIsXG4gICAgXCJUYW5qYVwiLFxuICAgIFwiVGFyYVwiLFxuICAgIFwiVGFyamFcIixcbiAgICBcIlRlcmVzYVwiLFxuICAgIFwiVGVzc2FcIixcbiAgICBcIlRoYWxlYVwiLFxuICAgIFwiVGhhbGlhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUaGVyZXNhXCIsXG4gICAgXCJUaWFcIixcbiAgICBcIlRpbmFcIixcbiAgICBcIlRvbWtlXCIsXG4gICAgXCJUdWFuYVwiLFxuICAgIFwiVmFsZW50aW5hXCIsXG4gICAgXCJWYWxlcmlhXCIsXG4gICAgXCJWYWxlcmllXCIsXG4gICAgXCJWYW5lc3NhXCIsXG4gICAgXCJWZXJhXCIsXG4gICAgXCJWZXJvbmlrYVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpa3RvcmlhXCIsXG4gICAgXCJWaW9sYVwiLFxuICAgIFwiVml2aWFuXCIsXG4gICAgXCJWaXZpZW5cIixcbiAgICBcIlZpdmllbm5lXCIsXG4gICAgXCJXaWJrZVwiLFxuICAgIFwiV2llYmtlXCIsXG4gICAgXCJYZW5pYVwiLFxuICAgIFwiWWFyYVwiLFxuICAgIFwiWWFyZW5cIixcbiAgICBcIllhc21pblwiLFxuICAgIFwiWWx2aVwiLFxuICAgIFwiWWx2aWVcIixcbiAgICBcIll2b25uZVwiLFxuICAgIFwiWmFyYVwiLFxuICAgIFwiWmVocmFcIixcbiAgICBcIlpleW5lcFwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJab2V5XCIsXG4gICAgXCJab8OpXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJlbFwiLFxuICAgIFwiQWJpY2h0XCIsXG4gICAgXCJBYnJhaGFtXCIsXG4gICAgXCJBYnJhbW92aWNcIixcbiAgICBcIkFidFwiLFxuICAgIFwiQWNoaWxsZXNcIixcbiAgICBcIkFjaGtpbmFkemVcIixcbiAgICBcIkFja2VybWFublwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiQWRhbXNcIixcbiAgICBcIkFkZVwiLFxuICAgIFwiQWdvc3RpbmlcIixcbiAgICBcIkFobGtlXCIsXG4gICAgXCJBaHJlbmJlcmdcIixcbiAgICBcIkFocmVuc1wiLFxuICAgIFwiQWlnbmVyXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsYnJlY2h0XCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGl6YWRlaFwiLFxuICAgIFwiQWxsZ2V5ZXJcIixcbiAgICBcIkFtYW5uXCIsXG4gICAgXCJBbWJlcmdcIixcbiAgICBcIkFuZGluZ1wiLFxuICAgIFwiQW5nZ3JlbnlcIixcbiAgICBcIkFwaXR6XCIsXG4gICAgXCJBcmVuZHRcIixcbiAgICBcIkFyZW5zXCIsXG4gICAgXCJBcm5kdFwiLFxuICAgIFwiQXJ5ZWVcIixcbiAgICBcIkFzY2hlbmJyb2ljaFwiLFxuICAgIFwiQXNzbXVzXCIsXG4gICAgXCJBc3RhZmVpXCIsXG4gICAgXCJBdWVyXCIsXG4gICAgXCJBeG1hbm5cIixcbiAgICBcIkJhYXJja1wiLFxuICAgIFwiQmFjaG1hbm5cIixcbiAgICBcIkJhZGFuZVwiLFxuICAgIFwiQmFkZXJcIixcbiAgICBcIkJhZ2FuelwiLFxuICAgIFwiQmFobFwiLFxuICAgIFwiQmFrXCIsXG4gICAgXCJCYWxjZXJcIixcbiAgICBcIkJhbGNrXCIsXG4gICAgXCJCYWxrb3dcIixcbiAgICBcIkJhbG51d2VpdFwiLFxuICAgIFwiQmFsemVyXCIsXG4gICAgXCJCYW5zZVwiLFxuICAgIFwiQmFyclwiLFxuICAgIFwiQmFydGVsc1wiLFxuICAgIFwiQmFydGhcIixcbiAgICBcIkJhcnlsbGFcIixcbiAgICBcIkJhc2VkYVwiLFxuICAgIFwiQmF0dGtlXCIsXG4gICAgXCJCYXVlclwiLFxuICAgIFwiQmF1ZXJtZWlzdGVyXCIsXG4gICAgXCJCYXVtYW5uXCIsXG4gICAgXCJCYXVtZWlzdGVyXCIsXG4gICAgXCJCYXVzY2hpbmdlclwiLFxuICAgIFwiQmF1c2Noa2VcIixcbiAgICBcIkJheWVyXCIsXG4gICAgXCJCZWF2b2d1aVwiLFxuICAgIFwiQmVja1wiLFxuICAgIFwiQmVja2VsXCIsXG4gICAgXCJCZWNrZXJcIixcbiAgICBcIkJlY2ttYW5uXCIsXG4gICAgXCJCZWRld2l0elwiLFxuICAgIFwiQmVlbGVcIixcbiAgICBcIkJlZXJcIixcbiAgICBcIkJlZ2dlcm93XCIsXG4gICAgXCJCZWhcIixcbiAgICBcIkJlaHJcIixcbiAgICBcIkJlaHJlbmJydWNoXCIsXG4gICAgXCJCZWx6XCIsXG4gICAgXCJCZW5kZXJcIixcbiAgICBcIkJlbmVja2VcIixcbiAgICBcIkJlbm5lclwiLFxuICAgIFwiQmVubmluZ2VyXCIsXG4gICAgXCJCZW56aW5nXCIsXG4gICAgXCJCZXJlbmRzXCIsXG4gICAgXCJCZXJnZXJcIixcbiAgICBcIkJlcm5lclwiLFxuICAgIFwiQmVybmluZ1wiLFxuICAgIFwiQmVydGVuYnJlaXRlclwiLFxuICAgIFwiQmVzdFwiLFxuICAgIFwiQmV0aGtlXCIsXG4gICAgXCJCZXR6XCIsXG4gICAgXCJCZXVzaGF1c2VuXCIsXG4gICAgXCJCZXV0ZWxzcGFjaGVyXCIsXG4gICAgXCJCZXllclwiLFxuICAgIFwiQmliYVwiLFxuICAgIFwiQmljaGxlclwiLFxuICAgIFwiQmlja2VsXCIsXG4gICAgXCJCaWVkZXJtYW5uXCIsXG4gICAgXCJCaWVsZXJcIixcbiAgICBcIkJpZWxlcnRcIixcbiAgICBcIkJpZW5hc2NoXCIsXG4gICAgXCJCaWVuaWFzXCIsXG4gICAgXCJCaWVzZW5iYWNoXCIsXG4gICAgXCJCaWdkZWxpXCIsXG4gICAgXCJCaXJrZW1leWVyXCIsXG4gICAgXCJCaXR0bmVyXCIsXG4gICAgXCJCbGFua1wiLFxuICAgIFwiQmxhc2NoZWtcIixcbiAgICBcIkJsYXNzbmVja1wiLFxuICAgIFwiQmxvY2hcIixcbiAgICBcIkJsb2Nod2l0elwiLFxuICAgIFwiQmxvY2toYXVzXCIsXG4gICAgXCJCbHVtXCIsXG4gICAgXCJCbHVtZVwiLFxuICAgIFwiQm9ja1wiLFxuICAgIFwiQm9kZVwiLFxuICAgIFwiQm9nZGFzaGluXCIsXG4gICAgXCJCb2dlbnJpZWRlclwiLFxuICAgIFwiQm9oZ2VcIixcbiAgICBcIkJvbG1cIixcbiAgICBcIkJvcmdzY2h1bHplXCIsXG4gICAgXCJCb3JrXCIsXG4gICAgXCJCb3JtYW5uXCIsXG4gICAgXCJCb3Juc2NoZXVlclwiLFxuICAgIFwiQm9ycm1hbm5cIixcbiAgICBcIkJvcnNjaFwiLFxuICAgIFwiQm9ydXNjaGV3c2tpXCIsXG4gICAgXCJCb3NcIixcbiAgICBcIkJvc2xlclwiLFxuICAgIFwiQm91cnJvdWFnXCIsXG4gICAgXCJCb3VzY2hlblwiLFxuICAgIFwiQm94aGFtbWVyXCIsXG4gICAgXCJCb3lkZVwiLFxuICAgIFwiQm96c2lrXCIsXG4gICAgXCJCcmFuZFwiLFxuICAgIFwiQnJhbmRlbmJ1cmdcIixcbiAgICBcIkJyYW5kaXNcIixcbiAgICBcIkJyYW5kdFwiLFxuICAgIFwiQnJhdWVyXCIsXG4gICAgXCJCcmF1blwiLFxuICAgIFwiQnJlaG1lclwiLFxuICAgIFwiQnJlaXRlbnN0ZWluXCIsXG4gICAgXCJCcmVtZXJcIixcbiAgICBcIkJyZW1zZXJcIixcbiAgICBcIkJyZW5uZXJcIixcbiAgICBcIkJyZXR0c2NobmVpZGVyXCIsXG4gICAgXCJCcmV1XCIsXG4gICAgXCJCcmV1ZXJcIixcbiAgICBcIkJyaWVzZW5pY2tcIixcbiAgICBcIkJyaW5nbWFublwiLFxuICAgIFwiQnJpbmttYW5uXCIsXG4gICAgXCJCcml4XCIsXG4gICAgXCJCcm9lbmluZ1wiLFxuICAgIFwiQnJvc2NoXCIsXG4gICAgXCJCcnVja21hbm5cIixcbiAgICBcIkJydWRlclwiLFxuICAgIFwiQnJ1aG5zXCIsXG4gICAgXCJCcnVubmVyXCIsXG4gICAgXCJCcnVuc1wiLFxuICAgIFwiQnLDpHV0aWdhbVwiLFxuICAgIFwiQnLDtm1tZVwiLFxuICAgIFwiQnLDvGdnbWFublwiLFxuICAgIFwiQnVjaGhvbHpcIixcbiAgICBcIkJ1Y2hydWNrZXJcIixcbiAgICBcIkJ1ZGVyXCIsXG4gICAgXCJCdWx0bWFublwiLFxuICAgIFwiQnVuamVzXCIsXG4gICAgXCJCdXJnZXJcIixcbiAgICBcIkJ1cmdoYWdlblwiLFxuICAgIFwiQnVya2hhcmRcIixcbiAgICBcIkJ1cmtoYXJkdFwiLFxuICAgIFwiQnVybWVpc3RlclwiLFxuICAgIFwiQnVzY2hcIixcbiAgICBcIkJ1c2NoYmF1bVwiLFxuICAgIFwiQnVzZW1hbm5cIixcbiAgICBcIkJ1c3NcIixcbiAgICBcIkJ1c3NlXCIsXG4gICAgXCJCdXNzbWFublwiLFxuICAgIFwiQnlyZFwiLFxuICAgIFwiQsOkY2tlclwiLFxuICAgIFwiQsO2aG1cIixcbiAgICBcIkLDtm5pc2NoXCIsXG4gICAgXCJCw7ZyZ2VsaW5nXCIsXG4gICAgXCJCw7ZybmVyXCIsXG4gICAgXCJCw7Z0dG5lclwiLFxuICAgIFwiQsO8Y2hlbGVcIixcbiAgICBcIkLDvGhsZXJcIixcbiAgICBcIkLDvGtlclwiLFxuICAgIFwiQsO8bmdlbmVyXCIsXG4gICAgXCJCw7xyZ2VyXCIsXG4gICAgXCJCw7xya2xlaW5cIixcbiAgICBcIkLDvHNjaGVyXCIsXG4gICAgXCJCw7x0dG5lclwiLFxuICAgIFwiQ2FtYXJhXCIsXG4gICAgXCJDYXJsb3dpdHpcIixcbiAgICBcIkNhcmxzb2huXCIsXG4gICAgXCJDYXNwYXJpXCIsXG4gICAgXCJDYXNwZXJzXCIsXG4gICAgXCJDaGFwcm9uXCIsXG4gICAgXCJDaHJpc3RcIixcbiAgICBcIkNpZXJwaW5za2lcIixcbiAgICBcIkNsYXJpdXNcIixcbiAgICBcIkNsZWVtXCIsXG4gICAgXCJDbGV2ZVwiLFxuICAgIFwiQ29cIixcbiAgICBcIkNvbnJhZFwiLFxuICAgIFwiQ29yZGVzXCIsXG4gICAgXCJDb3JuZWxzZW5cIixcbiAgICBcIkNvcnNcIixcbiAgICBcIkNvdHRoYXJkdFwiLFxuICAgIFwiQ3Jld3NcIixcbiAgICBcIkNyb25qw6RnZXJcIixcbiAgICBcIkNyb3Nza29mcFwiLFxuICAgIFwiRGFcIixcbiAgICBcIkRhaG1cIixcbiAgICBcIkRhaG1lblwiLFxuICAgIFwiRGFpbWVyXCIsXG4gICAgXCJEYW1hc2tlXCIsXG4gICAgXCJEYW5uZWJlcmdcIixcbiAgICBcIkRhbm5lclwiLFxuICAgIFwiRGF1YlwiLFxuICAgIFwiRGF1Ym5lclwiLFxuICAgIFwiRGF1ZHJpY2hcIixcbiAgICBcIkRhdWVyXCIsXG4gICAgXCJEYXVtXCIsXG4gICAgXCJEYXV0aFwiLFxuICAgIFwiRGF1dHplbmJlcmdcIixcbiAgICBcIkRlXCIsXG4gICAgXCJEZWNrZXJcIixcbiAgICBcIkRlY2tlcnRcIixcbiAgICBcIkRlZXJiZXJnXCIsXG4gICAgXCJEZWhtZWxcIixcbiAgICBcIkRlamFcIixcbiAgICBcIkRlbG9uZ2VcIixcbiAgICBcIkRlbXV0XCIsXG4gICAgXCJEZW5nbGVyXCIsXG4gICAgXCJEZW5uZXJcIixcbiAgICBcIkRlbnppbmdlclwiLFxuICAgIFwiRGVyclwiLFxuICAgIFwiRGVydG1hbm5cIixcbiAgICBcIkRldGhsb2ZmXCIsXG4gICAgXCJEZXVzY2hsZVwiLFxuICAgIFwiRGllY2ttYW5uXCIsXG4gICAgXCJEaWVkcmljaFwiLFxuICAgIFwiRGlla21hbm5cIixcbiAgICBcIkRpZW5lbFwiLFxuICAgIFwiRGllc1wiLFxuICAgIFwiRGlldHJpY2hcIixcbiAgICBcIkRpZXR6XCIsXG4gICAgXCJEaWV0enNjaFwiLFxuICAgIFwiRGllemVsXCIsXG4gICAgXCJEaWxsYVwiLFxuICAgIFwiRGluZ2Vsc3RlZHRcIixcbiAgICBcIkRpcHBsXCIsXG4gICAgXCJEaXR0bWFublwiLFxuICAgIFwiRGl0dG1hclwiLFxuICAgIFwiRGl0dG1lclwiLFxuICAgIFwiRGl4XCIsXG4gICAgXCJEb2JicnVuelwiLFxuICAgIFwiRG9ibGVyXCIsXG4gICAgXCJEb2hyaW5nXCIsXG4gICAgXCJEb2xjaFwiLFxuICAgIFwiRG9sZFwiLFxuICAgIFwiRG9tYnJvd3NraVwiLFxuICAgIFwiRG9uaWVcIixcbiAgICBcIkRvc2tvY3p5bnNraVwiLFxuICAgIFwiRHJhZ3VcIixcbiAgICBcIkRyZWNoc2xlclwiLFxuICAgIFwiRHJlZXNcIixcbiAgICBcIkRyZWhlclwiLFxuICAgIFwiRHJlaWVyXCIsXG4gICAgXCJEcmVpc3NpZ2Fja2VyXCIsXG4gICAgXCJEcmVzc2xlclwiLFxuICAgIFwiRHJld3NcIixcbiAgICBcIkR1bWFcIixcbiAgICBcIkR1dGtpZXdpY3pcIixcbiAgICBcIkR5ZXR0XCIsXG4gICAgXCJEeWx1c1wiLFxuICAgIFwiRMOkY2hlcnRcIixcbiAgICBcIkTDtmJlbFwiLFxuICAgIFwiRMO2cmluZ1wiLFxuICAgIFwiRMO2cm5lclwiLFxuICAgIFwiRMO2cnJlXCIsXG4gICAgXCJEw7xja1wiLFxuICAgIFwiRWJlcmhhcmRcIixcbiAgICBcIkViZXJoYXJkdFwiLFxuICAgIFwiRWNrZXJcIixcbiAgICBcIkVja2hhcmR0XCIsXG4gICAgXCJFZG9yaFwiLFxuICAgIFwiRWZmbGVyXCIsXG4gICAgXCJFZ2dlbm11ZWxsZXJcIixcbiAgICBcIkVobVwiLFxuICAgIFwiRWhtYW5uXCIsXG4gICAgXCJFaHJpZ1wiLFxuICAgIFwiRWljaFwiLFxuICAgIFwiRWljaG1hbm5cIixcbiAgICBcIkVpZmVydFwiLFxuICAgIFwiRWluZXJ0XCIsXG4gICAgXCJFaXNlbmxhdWVyXCIsXG4gICAgXCJFa3BvXCIsXG4gICAgXCJFbGJlXCIsXG4gICAgXCJFbGV5dGhcIixcbiAgICBcIkVsc3NcIixcbiAgICBcIkVtZXJ0XCIsXG4gICAgXCJFbW1lbG1hbm5cIixcbiAgICBcIkVuZGVyXCIsXG4gICAgXCJFbmdlbFwiLFxuICAgIFwiRW5nZWxlblwiLFxuICAgIFwiRW5nZWxtYW5uXCIsXG4gICAgXCJFcGxpbml1c1wiLFxuICAgIFwiRXJkbWFublwiLFxuICAgIFwiRXJoYXJkdFwiLFxuICAgIFwiRXJsZWlcIixcbiAgICBcIkVybVwiLFxuICAgIFwiRXJuc3RcIixcbiAgICBcIkVydGxcIixcbiAgICBcIkVyd2VzXCIsXG4gICAgXCJFc2Vud2VpblwiLFxuICAgIFwiRXNzZXJcIixcbiAgICBcIkV2ZXJzXCIsXG4gICAgXCJFdmVydHNcIixcbiAgICBcIkV3YWxkXCIsXG4gICAgXCJGYWhuZXJcIixcbiAgICBcIkZhbGxlclwiLFxuICAgIFwiRmFsdGVyXCIsXG4gICAgXCJGYXJiZXJcIixcbiAgICBcIkZhc3NiZW5kZXJcIixcbiAgICBcIkZhdWxoYWJlclwiLFxuICAgIFwiRmVocmlnXCIsXG4gICAgXCJGZWxkXCIsXG4gICAgXCJGZWxrZVwiLFxuICAgIFwiRmVsbGVyXCIsXG4gICAgXCJGZW5uZXJcIixcbiAgICBcIkZlbnNrZVwiLFxuICAgIFwiRmV1ZXJiYWNoXCIsXG4gICAgXCJGaWV0elwiLFxuICAgIFwiRmlnbFwiLFxuICAgIFwiRmlndXJhXCIsXG4gICAgXCJGaWxpcG93c2tpXCIsXG4gICAgXCJGaWxzaW5nZXJcIixcbiAgICBcIkZpbmNrZVwiLFxuICAgIFwiRmlua1wiLFxuICAgIFwiRmlua2VcIixcbiAgICBcIkZpc2NoZXJcIixcbiAgICBcIkZpdHNjaGVuXCIsXG4gICAgXCJGbGVpc2NoZXJcIixcbiAgICBcIkZsZWlzY2htYW5uXCIsXG4gICAgXCJGbG9kZXJcIixcbiAgICBcIkZsb3JjemFrXCIsXG4gICAgXCJGbG9yZVwiLFxuICAgIFwiRmxvdHRtYW5uXCIsXG4gICAgXCJGb3JrZWxcIixcbiAgICBcIkZvcnN0XCIsXG4gICAgXCJGcmFobWVrZVwiLFxuICAgIFwiRnJhbmtcIixcbiAgICBcIkZyYW5rZVwiLFxuICAgIFwiRnJhbnRhXCIsXG4gICAgXCJGcmFudHpcIixcbiAgICBcIkZyYW56XCIsXG4gICAgXCJGcmFuemlzXCIsXG4gICAgXCJGcmFuem1hbm5cIixcbiAgICBcIkZyYXVlblwiLFxuICAgIFwiRnJhdWVuZG9yZlwiLFxuICAgIFwiRnJlaWdhbmdcIixcbiAgICBcIkZyZWltYW5uXCIsXG4gICAgXCJGcmVpbXV0aFwiLFxuICAgIFwiRnJlaXNlblwiLFxuICAgIFwiRnJlbnplbFwiLFxuICAgIFwiRnJleVwiLFxuICAgIFwiRnJpY2tlXCIsXG4gICAgXCJGcmllZFwiLFxuICAgIFwiRnJpZWRla1wiLFxuICAgIFwiRnJpZWRlbmJlcmdcIixcbiAgICBcIkZyaWVkbWFublwiLFxuICAgIFwiRnJpZWRyaWNoXCIsXG4gICAgXCJGcmllc3NcIixcbiAgICBcIkZyaXNjaFwiLFxuICAgIFwiRnJvaG5cIixcbiAgICBcIkZyb3NjaFwiLFxuICAgIFwiRnVjaHNcIixcbiAgICBcIkZ1aGxicsO8Z2dlXCIsXG4gICAgXCJGdXNlbmlnXCIsXG4gICAgXCJGdXN0XCIsXG4gICAgXCJGw7Zyc3RlclwiLFxuICAgIFwiR2FiYVwiLFxuICAgIFwiR2FiaXVzXCIsXG4gICAgXCJHYWJsZXJcIixcbiAgICBcIkdhZHNjaGlld1wiLFxuICAgIFwiR2Frc3TDpGR0ZXJcIixcbiAgICBcIkdhbGFuZGVyXCIsXG4gICAgXCJHYW1saW5cIixcbiAgICBcIkdhbXBlclwiLFxuICAgIFwiR2FuZ251c1wiLFxuICAgIFwiR2Fuem1hbm5cIixcbiAgICBcIkdhcmF0dmFcIixcbiAgICBcIkdhc3RcIixcbiAgICBcIkdhc3RlbFwiLFxuICAgIFwiR2F0emthXCIsXG4gICAgXCJHYXVkZXJcIixcbiAgICBcIkdlYmhhcmR0XCIsXG4gICAgXCJHZWVzZVwiLFxuICAgIFwiR2VocmVcIixcbiAgICBcIkdlaHJpZ1wiLFxuICAgIFwiR2VocmluZ1wiLFxuICAgIFwiR2VocmtlXCIsXG4gICAgXCJHZWlnZXJcIixcbiAgICBcIkdlaXNsZXJcIixcbiAgICBcIkdlaXNzbGVyXCIsXG4gICAgXCJHZWxsaW5nXCIsXG4gICAgXCJHZW5zXCIsXG4gICAgXCJHZXJiZW5ub3dcIixcbiAgICBcIkdlcmRlbFwiLFxuICAgIFwiR2VyaGFyZHRcIixcbiAgICBcIkdlcnNjaGxlclwiLFxuICAgIFwiR2Vyc29uXCIsXG4gICAgXCJHZXNlbGxcIixcbiAgICBcIkdleWVyXCIsXG4gICAgXCJHaGlybWFpXCIsXG4gICAgXCJHaG9zaFwiLFxuICAgIFwiR2llaGxcIixcbiAgICBcIkdpZXJpc2NoXCIsXG4gICAgXCJHaWVzYVwiLFxuICAgIFwiR2llc2NoZVwiLFxuICAgIFwiR2lsZGVcIixcbiAgICBcIkdsYXR0aW5nXCIsXG4gICAgXCJHb2ViZWxcIixcbiAgICBcIkdvZWRpY2tlXCIsXG4gICAgXCJHb2xkYmVja1wiLFxuICAgIFwiR29sZGZ1c3NcIixcbiAgICBcIkdvbGRrYW1wXCIsXG4gICAgXCJHb2xka8O8aGxlXCIsXG4gICAgXCJHb2xsZXJcIixcbiAgICBcIkdvbGxpbmdcIixcbiAgICBcIkdvbGxub3dcIixcbiAgICBcIkdvbG9tc2tpXCIsXG4gICAgXCJHb21iZXJ0XCIsXG4gICAgXCJHb3R0aGFyZHRcIixcbiAgICBcIkdvdHRzY2hhbGtcIixcbiAgICBcIkdvdHpcIixcbiAgICBcIkdveVwiLFxuICAgIFwiR3JhZHpraVwiLFxuICAgIFwiR3JhZlwiLFxuICAgIFwiR3JhbXNcIixcbiAgICBcIkdyYXNzZVwiLFxuICAgIFwiR3JhdHpreVwiLFxuICAgIFwiR3JhdVwiLFxuICAgIFwiR3JlYlwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWdlclwiLFxuICAgIFwiR3JlaXRoYW5uZXJcIixcbiAgICBcIkdyZXNjaG5lclwiLFxuICAgIFwiR3JpZW1cIixcbiAgICBcIkdyaWVzZVwiLFxuICAgIFwiR3JpbW1cIixcbiAgICBcIkdyb21pc2NoXCIsXG4gICAgXCJHcm9zc1wiLFxuICAgIFwiR3Jvc3NlclwiLFxuICAgIFwiR3Jvc3NoZWltXCIsXG4gICAgXCJHcm9zc2tvcGZcIixcbiAgICBcIkdyb3RoYXVzXCIsXG4gICAgXCJHcm90aGtvcHBcIixcbiAgICBcIkdyb3RrZVwiLFxuICAgIFwiR3J1YmVcIixcbiAgICBcIkdydWJlclwiLFxuICAgIFwiR3J1bmRtYW5uXCIsXG4gICAgXCJHcnVuaW5nXCIsXG4gICAgXCJHcnVzemVja2lcIixcbiAgICBcIkdyw7Zzc1wiLFxuICAgIFwiR3LDtnR6aW5nZXJcIixcbiAgICBcIkdyw7xuXCIsXG4gICAgXCJHcsO8bmVyXCIsXG4gICAgXCJHdW1tZWx0XCIsXG4gICAgXCJHdW5rZWxcIixcbiAgICBcIkd1bnRoZXJcIixcbiAgICBcIkd1dGphaHJcIixcbiAgICBcIkd1dG93aWN6XCIsXG4gICAgXCJHdXRzY2hhbmtcIixcbiAgICBcIkfDtmJlbFwiLFxuICAgIFwiR8O2Y2tlcml0elwiLFxuICAgIFwiR8O2aGxlclwiLFxuICAgIFwiR8O2cmxpY2hcIixcbiAgICBcIkfDtnJtZXJcIixcbiAgICBcIkfDtnR6XCIsXG4gICAgXCJHw7Z0emVsbWFublwiLFxuICAgIFwiR8O8bGRlbWVpc3RlclwiLFxuICAgIFwiR8O8bnRoZXJcIixcbiAgICBcIkfDvG56XCIsXG4gICAgXCJHw7xyYmlnXCIsXG4gICAgXCJIYWFja1wiLFxuICAgIFwiSGFhZlwiLFxuICAgIFwiSGFiZWxcIixcbiAgICBcIkhhY2hlXCIsXG4gICAgXCJIYWNrYnVzY2hcIixcbiAgICBcIkhhY2tlbGJ1c2NoXCIsXG4gICAgXCJIYWRmaWVsZFwiLFxuICAgIFwiSGFkd2ljaFwiLFxuICAgIFwiSGFmZXJrYW1wXCIsXG4gICAgXCJIYWhuXCIsXG4gICAgXCJIYWpla1wiLFxuICAgIFwiSGFsbG1hbm5cIixcbiAgICBcIkhhbWFublwiLFxuICAgIFwiSGFuZW5iZXJnZXJcIixcbiAgICBcIkhhbm5lY2tlclwiLFxuICAgIFwiSGFubmlza2VcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyZHlcIixcbiAgICBcIkhhcmdhc3NlclwiLFxuICAgIFwiSGFybXNcIixcbiAgICBcIkhhcm5hcHBcIixcbiAgICBcIkhhcnRlclwiLFxuICAgIFwiSGFydGluZ1wiLFxuICAgIFwiSGFydGxpZWJcIixcbiAgICBcIkhhcnRtYW5uXCIsXG4gICAgXCJIYXJ0d2lnXCIsXG4gICAgXCJIYXJ0elwiLFxuICAgIFwiSGFzY2hrZVwiLFxuICAgIFwiSGFzbGVyXCIsXG4gICAgXCJIYXNzZVwiLFxuICAgIFwiSGFzc2ZlbGRcIixcbiAgICBcIkhhdWdcIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIYXVwdFwiLFxuICAgIFwiSGF2ZXJuZXlcIixcbiAgICBcIkhlYmVyc3RyZWl0XCIsXG4gICAgXCJIZWNobGVyXCIsXG4gICAgXCJIZWNodFwiLFxuICAgIFwiSGVja1wiLFxuICAgIFwiSGVkZXJtYW5uXCIsXG4gICAgXCJIZWhsXCIsXG4gICAgXCJIZWlkZWxtYW5uXCIsXG4gICAgXCJIZWlkbGVyXCIsXG4gICAgXCJIZWluZW1hbm5cIixcbiAgICBcIkhlaW5pZ1wiLFxuICAgIFwiSGVpbmtlXCIsXG4gICAgXCJIZWlucmljaFwiLFxuICAgIFwiSGVpbnplXCIsXG4gICAgXCJIZWlzZXJcIixcbiAgICBcIkhlaXN0XCIsXG4gICAgXCJIZWxsbWFublwiLFxuICAgIFwiSGVsbVwiLFxuICAgIFwiSGVsbWtlXCIsXG4gICAgXCJIZWxwbGluZ1wiLFxuICAgIFwiSGVuZ21pdGhcIixcbiAgICBcIkhlbmtlbFwiLFxuICAgIFwiSGVubmVzXCIsXG4gICAgXCJIZW5yeVwiLFxuICAgIFwiSGVuc2VcIixcbiAgICBcIkhlbnNlbFwiLFxuICAgIFwiSGVudGVsXCIsXG4gICAgXCJIZW50c2NoZWxcIixcbiAgICBcIkhlbnRzY2hrZVwiLFxuICAgIFwiSGVwcGVybGVcIixcbiAgICBcIkhlcmJlcmdlclwiLFxuICAgIFwiSGVyYnJhbmRcIixcbiAgICBcIkhlcmluZ1wiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWVja2VcIixcbiAgICBcIkhlcm1zXCIsXG4gICAgXCJIZXJvbGRcIixcbiAgICBcIkhlcnJtYW5uXCIsXG4gICAgXCJIZXJzY2htYW5uXCIsXG4gICAgXCJIZXJ0ZWxcIixcbiAgICBcIkhlcndlZ1wiLFxuICAgIFwiSGVyd2lnXCIsXG4gICAgXCJIZXJ6ZW5iZXJnXCIsXG4gICAgXCJIZXNzXCIsXG4gICAgXCJIZXNzZVwiLFxuICAgIFwiSGVzc2VrXCIsXG4gICAgXCJIZXNzbGVyXCIsXG4gICAgXCJIZXR6bGVyXCIsXG4gICAgXCJIZXVja1wiLFxuICAgIFwiSGV5ZGVtw7xsbGVyXCIsXG4gICAgXCJIaWVibFwiLFxuICAgIFwiSGlsZGVicmFuZFwiLFxuICAgIFwiSGlsZGVuYnJhbmRcIixcbiAgICBcIkhpbGdlbmRvcmZcIixcbiAgICBcIkhpbGxhcmRcIixcbiAgICBcIkhpbGxlclwiLFxuICAgIFwiSGluZ3NlblwiLFxuICAgIFwiSGluZ3N0XCIsXG4gICAgXCJIaW5yaWNoc1wiLFxuICAgIFwiSGlyc2NoXCIsXG4gICAgXCJIaXJzY2hiZXJnXCIsXG4gICAgXCJIaXJ0XCIsXG4gICAgXCJIb2RlYVwiLFxuICAgIFwiSG9mZm1hblwiLFxuICAgIFwiSG9mZm1hbm5cIixcbiAgICBcIkhvZm1hbm5cIixcbiAgICBcIkhvaGVuYmVyZ2VyXCIsXG4gICAgXCJIb2hsXCIsXG4gICAgXCJIb2huXCIsXG4gICAgXCJIb2huaGVpc2VyXCIsXG4gICAgXCJIb2xkXCIsXG4gICAgXCJIb2xkdFwiLFxuICAgIFwiSG9saW5za2lcIixcbiAgICBcIkhvbGxcIixcbiAgICBcIkhvbHRmcmV0ZXJcIixcbiAgICBcIkhvbHpcIixcbiAgICBcIkhvbHpkZXBwZVwiLFxuICAgIFwiSG9sem5lclwiLFxuICAgIFwiSG9tbWVsXCIsXG4gICAgXCJIb256XCIsXG4gICAgXCJIb29zc1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvcmFrXCIsXG4gICAgXCJIb3JuXCIsXG4gICAgXCJIb3JuYVwiLFxuICAgIFwiSG9ybnVuZ1wiLFxuICAgIFwiSG9ydFwiLFxuICAgIFwiSG93YXJkXCIsXG4gICAgXCJIdWJlclwiLFxuICAgIFwiSHVja2VzdGVpblwiLFxuICAgIFwiSHVkYWtcIixcbiAgICBcIkh1ZWJlbFwiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiSHVoblwiLFxuICAgIFwiSHVqb1wiLFxuICAgIFwiSHVrZVwiLFxuICAgIFwiSHVsc1wiLFxuICAgIFwiSHVtYmVydFwiLFxuICAgIFwiSHVuZWtlXCIsXG4gICAgXCJIdXRoXCIsXG4gICAgXCJIw6RiZXJcIixcbiAgICBcIkjDpGZuZXJcIixcbiAgICBcIkjDtmNrZVwiLFxuICAgIFwiSMO2ZnRcIixcbiAgICBcIkjDtmhuZVwiLFxuICAgIFwiSMO2bmlnXCIsXG4gICAgXCJIw7ZyZHRcIixcbiAgICBcIkjDvGJlbmJlY2tlclwiLFxuICAgIFwiSMO8YmxcIixcbiAgICBcIkjDvGJuZXJcIixcbiAgICBcIkjDvGdlbFwiLFxuICAgIFwiSMO8dHRjaGVyXCIsXG4gICAgXCJIw7x0dGVyXCIsXG4gICAgXCJJYmVcIixcbiAgICBcIklobHlcIixcbiAgICBcIklsbGluZ1wiLFxuICAgIFwiSXNha1wiLFxuICAgIFwiSXNla2VubWVpZXJcIixcbiAgICBcIkl0dFwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkphY29ic1wiLFxuICAgIFwiSmFndXNjaFwiLFxuICAgIFwiSmFoblwiLFxuICAgIFwiSmFobmtlXCIsXG4gICAgXCJKYWtvYnNcIixcbiAgICBcIkpha3ViY3p5a1wiLFxuICAgIFwiSmFtYm9yXCIsXG4gICAgXCJKYW1yb3p5XCIsXG4gICAgXCJKYW5kZXJcIixcbiAgICBcIkphbmljaFwiLFxuICAgIFwiSmFua2VcIixcbiAgICBcIkphbnNlblwiLFxuICAgIFwiSmFyZXRzXCIsXG4gICAgXCJKYXJvc1wiLFxuICAgIFwiSmFzaW5za2lcIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSmVnb3JvdlwiLFxuICAgIFwiSmVsbGluZ2hhdXNcIixcbiAgICBcIkplb3JnYVwiLFxuICAgIFwiSmVyc2NoYWJla1wiLFxuICAgIFwiSmVzc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkpvc3NhXCIsXG4gICAgXCJKdWNrZW5cIixcbiAgICBcIkp1bmdcIixcbiAgICBcIkp1bmdibHV0aFwiLFxuICAgIFwiSnVuZ3RvblwiLFxuICAgIFwiSnVzdFwiLFxuICAgIFwiSsO8cmdlbnNcIixcbiAgICBcIkthY3ptYXJla1wiLFxuICAgIFwiS2Flc21hY2hlclwiLFxuICAgIFwiS2FobFwiLFxuICAgIFwiS2FobGVydFwiLFxuICAgIFwiS2FobGVzXCIsXG4gICAgXCJLYWhsbWV5ZXJcIixcbiAgICBcIkthaXNlclwiLFxuICAgIFwiS2FsaW5vd3NraVwiLFxuICAgIFwiS2FsbGFiaXNcIixcbiAgICBcIkthbGxlbnNlZVwiLFxuICAgIFwiS2FtcGZcIixcbiAgICBcIkthbXBzY2h1bHRlXCIsXG4gICAgXCJLYXBwZVwiLFxuICAgIFwiS2FwcGxlclwiLFxuICAgIFwiS2FyaG9mZlwiLFxuICAgIFwiS2FycmFzc1wiLFxuICAgIFwiS2Fyc3RcIixcbiAgICBcIkthcnN0ZW5cIixcbiAgICBcIkthcnVzXCIsXG4gICAgXCJLYXNzXCIsXG4gICAgXCJLYXN0ZW5cIixcbiAgICBcIkthc3RuZXJcIixcbiAgICBcIkthdHppbnNraVwiLFxuICAgIFwiS2F1Zm1hbm5cIixcbiAgICBcIkthdWxcIixcbiAgICBcIkthdXNlbWFublwiLFxuICAgIFwiS2F3b2hsXCIsXG4gICAgXCJLYXptYXJla1wiLFxuICAgIFwiS2VkemllcnNraVwiLFxuICAgIFwiS2VpbFwiLFxuICAgIFwiS2VpbmVyXCIsXG4gICAgXCJLZWxsZXJcIixcbiAgICBcIktlbG1cIixcbiAgICBcIktlbXBlXCIsXG4gICAgXCJLZW1wZXJcIixcbiAgICBcIktlbXB0ZXJcIixcbiAgICBcIktlcmxcIixcbiAgICBcIktlcm5cIixcbiAgICBcIktlc3NlbHJpbmdcIixcbiAgICBcIktlc3NlbHNjaGzDpGdlclwiLFxuICAgIFwiS2V0dGVcIixcbiAgICBcIktldHRlbmlzXCIsXG4gICAgXCJLZXV0ZWxcIixcbiAgICBcIktpY2tcIixcbiAgICBcIktpZXNzbGluZ1wiLFxuICAgIFwiS2luYWRldGVyXCIsXG4gICAgXCJLaW56ZWxcIixcbiAgICBcIktpbnp5XCIsXG4gICAgXCJLaXJjaFwiLFxuICAgIFwiS2lyc3RcIixcbiAgICBcIktpc2FiYWthXCIsXG4gICAgXCJLbGFhc1wiLFxuICAgIFwiS2xhYnVoblwiLFxuICAgIFwiS2xhcHBlclwiLFxuICAgIFwiS2xhdWRlclwiLFxuICAgIFwiS2xhdXNcIixcbiAgICBcIktsZWViZXJnXCIsXG4gICAgXCJLbGVpYmVyXCIsXG4gICAgXCJLbGVpblwiLFxuICAgIFwiS2xlaW5lcnRcIixcbiAgICBcIktsZWluaW5nZXJcIixcbiAgICBcIktsZWlubWFublwiLFxuICAgIFwiS2xlaW5zdGV1YmVyXCIsXG4gICAgXCJLbGVpc3NcIixcbiAgICBcIktsZW1tZVwiLFxuICAgIFwiS2xpbWN6YWtcIixcbiAgICBcIktsaW5nZXJcIixcbiAgICBcIktsaW5rXCIsXG4gICAgXCJLbG9wc2NoXCIsXG4gICAgXCJLbG9zZVwiLFxuICAgIFwiS2xvc3NcIixcbiAgICBcIktsdWdlXCIsXG4gICAgXCJLbHV3ZVwiLFxuICAgIFwiS25hYmVcIixcbiAgICBcIktuZWlmZWxcIixcbiAgICBcIktuZXRzY2hcIixcbiAgICBcIktuaWVzXCIsXG4gICAgXCJLbmlwcGVsXCIsXG4gICAgXCJLbm9iZWxcIixcbiAgICBcIktub2JsaWNoXCIsXG4gICAgXCJLbm9sbFwiLFxuICAgIFwiS25vcnJcIixcbiAgICBcIktub3JzY2hlaWR0XCIsXG4gICAgXCJLbnV0XCIsXG4gICAgXCJLb2JzXCIsXG4gICAgXCJLb2NoXCIsXG4gICAgXCJLb2NoYW5cIixcbiAgICBcIktvY2tcIixcbiAgICBcIktvY3p1bGxhXCIsXG4gICAgXCJLb2RlcmlzY2hcIixcbiAgICBcIktvZWhsXCIsXG4gICAgXCJLb2VobGVyXCIsXG4gICAgXCJLb2VuaWdcIixcbiAgICBcIktvZXN0ZXJcIixcbiAgICBcIktvZmZlcnNjaGxhZ2VyXCIsXG4gICAgXCJLb2hhXCIsXG4gICAgXCJLb2hsZVwiLFxuICAgIFwiS29obG1hbm5cIixcbiAgICBcIktvaG5sZVwiLFxuICAgIFwiS29ocnRcIixcbiAgICBcIktvalwiLFxuICAgIFwiS29sYlwiLFxuICAgIFwiS29sZWlza2lcIixcbiAgICBcIktvbG9rYXNcIixcbiAgICBcIktvbW9sbFwiLFxuICAgIFwiS29uaWVjem55XCIsXG4gICAgXCJLb25pZ1wiLFxuICAgIFwiS29ub3dcIixcbiAgICBcIktvbnlhXCIsXG4gICAgXCJLb29iXCIsXG4gICAgXCJLb3BmXCIsXG4gICAgXCJLb3Nlbmtvd1wiLFxuICAgIFwiS29zdGVyXCIsXG4gICAgXCJLb3N6ZXdza2lcIixcbiAgICBcIktvdWJhYVwiLFxuICAgIFwiS292YWNzXCIsXG4gICAgXCJLb3dhbGlja1wiLFxuICAgIFwiS293YWxpbnNraVwiLFxuICAgIFwiS296YWtpZXdpY3pcIixcbiAgICBcIktyYWJiZVwiLFxuICAgIFwiS3JhZnRcIixcbiAgICBcIktyYWxcIixcbiAgICBcIktyYW1lclwiLFxuICAgIFwiS3JhdWVsXCIsXG4gICAgXCJLcmF1c1wiLFxuICAgIFwiS3JhdXNlXCIsXG4gICAgXCJLcmF1c3BlXCIsXG4gICAgXCJLcmViXCIsXG4gICAgXCJLcmVic1wiLFxuICAgIFwiS3JlaXNzaWdcIixcbiAgICBcIktyZXNzZVwiLFxuICAgIFwiS3JldXR6XCIsXG4gICAgXCJLcmllZ2VyXCIsXG4gICAgXCJLcmlwcG5lclwiLFxuICAgIFwiS3JvZGluZ2VyXCIsXG4gICAgXCJLcm9oblwiLFxuICAgIFwiS3JvbFwiLFxuICAgIFwiS3JvblwiLFxuICAgIFwiS3J1ZWdlclwiLFxuICAgIFwiS3J1Z1wiLFxuICAgIFwiS3J1Z2VyXCIsXG4gICAgXCJLcnVsbFwiLFxuICAgIFwiS3J1c2NoaW5za2lcIixcbiAgICBcIktyw6RtZXJcIixcbiAgICBcIktyw7Zja2VydFwiLFxuICAgIFwiS3LDtmdlclwiLFxuICAgIFwiS3LDvGdlclwiLFxuICAgIFwiS3ViZXJhXCIsXG4gICAgXCJLdWZhaGxcIixcbiAgICBcIkt1aGxlZVwiLFxuICAgIFwiS3VobmVuXCIsXG4gICAgXCJLdWxpbWFublwiLFxuICAgIFwiS3VsbWFcIixcbiAgICBcIkt1bWJlcm51c3NcIixcbiAgICBcIkt1bW1sZVwiLFxuICAgIFwiS3VuelwiLFxuICAgIFwiS3VwZmVyXCIsXG4gICAgXCJLdXBwcmlvblwiLFxuICAgIFwiS3VwcmlvblwiLFxuICAgIFwiS3Vybmlja2lcIixcbiAgICBcIkt1cnJhdFwiLFxuICAgIFwiS3Vyc2NoaWxnZW5cIixcbiAgICBcIkt1c2NoZXdpdHpcIixcbiAgICBcIkt1c2NobWFublwiLFxuICAgIFwiS3Vza2VcIixcbiAgICBcIkt1c3Rlcm1hbm5cIixcbiAgICBcIkt1dHNjaGVyYXVlclwiLFxuICAgIFwiS3V0em5lclwiLFxuICAgIFwiS3dhZHdvXCIsXG4gICAgXCJLw6RobGVyXCIsXG4gICAgXCJLw6R0aGVyXCIsXG4gICAgXCJLw7ZobGVyXCIsXG4gICAgXCJLw7ZocmJyw7xja1wiLFxuICAgIFwiS8O2aHJlXCIsXG4gICAgXCJLw7Zsb3R6ZWlcIixcbiAgICBcIkvDtm5pZ1wiLFxuICAgIFwiS8O2cGVybmlja1wiLFxuICAgIFwiS8O2c2VvZ2x1XCIsXG4gICAgXCJLw7poblwiLFxuICAgIFwiS8O6aG5lcnRcIixcbiAgICBcIkvDvGhuXCIsXG4gICAgXCJLw7xobmVsXCIsXG4gICAgXCJLw7xobmVtdW5kXCIsXG4gICAgXCJLw7xobmVydFwiLFxuICAgIFwiS8O8aG5rZVwiLFxuICAgIFwiS8O8c3RlcnNcIixcbiAgICBcIkvDvHRlclwiLFxuICAgIFwiTGFhY2tcIixcbiAgICBcIkxhY2tcIixcbiAgICBcIkxhZGV3aWdcIixcbiAgICBcIkxha29teVwiLFxuICAgIFwiTGFtbWVydFwiLFxuICAgIFwiTGFtb3NcIixcbiAgICBcIkxhbmRtYW5uXCIsXG4gICAgXCJMYW5nXCIsXG4gICAgXCJMYW5nZVwiLFxuICAgIFwiTGFuZ2ZlbGRcIixcbiAgICBcIkxhbmdoaXJ0XCIsXG4gICAgXCJMYW5pZ1wiLFxuICAgIFwiTGF1Y2tuZXJcIixcbiAgICBcIkxhdWluZ2VyXCIsXG4gICAgXCJMYXVyw6luXCIsXG4gICAgXCJMYXVzZWNrZXJcIixcbiAgICBcIkxhdXhcIixcbiAgICBcIkxhd3NcIixcbiAgICBcIkxheFwiLFxuICAgIFwiTGViZXJlclwiLFxuICAgIFwiTGVobWFublwiLFxuICAgIFwiTGVobmVyXCIsXG4gICAgXCJMZWlib2xkXCIsXG4gICAgXCJMZWlkZVwiLFxuICAgIFwiTGVpbWJhY2hcIixcbiAgICBcIkxlaXBvbGRcIixcbiAgICBcIkxlaXN0XCIsXG4gICAgXCJMZWl0ZXJcIixcbiAgICBcIkxlaXRlcml0elwiLFxuICAgIFwiTGVpdGhlaW1cIixcbiAgICBcIkxlaXdlc21laWVyXCIsXG4gICAgXCJMZW5mZXJzXCIsXG4gICAgXCJMZW5rXCIsXG4gICAgXCJMZW56XCIsXG4gICAgXCJMZW56ZW5cIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVwdGhpblwiLFxuICAgIFwiTGVzY2hcIixcbiAgICBcIkxlc2NobmlrXCIsXG4gICAgXCJMZXR6ZWx0ZXJcIixcbiAgICBcIkxld2luXCIsXG4gICAgXCJMZXdrZVwiLFxuICAgIFwiTGV5Y2tlc1wiLFxuICAgIFwiTGdcIixcbiAgICBcIkxpY2h0ZW5mZWxkXCIsXG4gICAgXCJMaWNodGVuaGFnZW5cIixcbiAgICBcIkxpY2h0bFwiLFxuICAgIFwiTGllYmFjaFwiLFxuICAgIFwiTGllYmVcIixcbiAgICBcIkxpZWJpY2hcIixcbiAgICBcIkxpZWJvbGRcIixcbiAgICBcIkxpZWRlclwiLFxuICAgIFwiTGllbnNow7ZmdFwiLFxuICAgIFwiTGluZGVuXCIsXG4gICAgXCJMaW5kZW5iZXJnXCIsXG4gICAgXCJMaW5kZW5tYXllclwiLFxuICAgIFwiTGluZG5lclwiLFxuICAgIFwiTGlua2VcIixcbiAgICBcIkxpbm5lbmJhdW1cIixcbiAgICBcIkxpcHBlXCIsXG4gICAgXCJMaXBza2VcIixcbiAgICBcIkxpcHVzXCIsXG4gICAgXCJMaXNjaGthXCIsXG4gICAgXCJMb2JpbmdlclwiLFxuICAgIFwiTG9nc2NoXCIsXG4gICAgXCJMb2htYW5uXCIsXG4gICAgXCJMb2hyZVwiLFxuICAgIFwiTG9oc2VcIixcbiAgICBcIkxva2FyXCIsXG4gICAgXCJMb29nZW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9zY2hcIixcbiAgICBcIkxvc2thXCIsXG4gICAgXCJMb3R0XCIsXG4gICAgXCJMb3lcIixcbiAgICBcIkx1YmluYVwiLFxuICAgIFwiTHVkb2xmXCIsXG4gICAgXCJMdWZmdFwiLFxuICAgIFwiTHVrb3NjaGVrXCIsXG4gICAgXCJMdXRqZVwiLFxuICAgIFwiTHV0elwiLFxuICAgIFwiTMO2c2VyXCIsXG4gICAgXCJMw7Z3YVwiLFxuICAgIFwiTMO8YmtlXCIsXG4gICAgXCJNYWFrXCIsXG4gICAgXCJNYWN6ZXlcIixcbiAgICBcIk1hZGV0emt5XCIsXG4gICAgXCJNYWR1YnVrb1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJNYWllclwiLFxuICAgIFwiTWFpc2NoXCIsXG4gICAgXCJNYWxla1wiLFxuICAgIFwiTWFsa3VzXCIsXG4gICAgXCJNYWxsbWFublwiLFxuICAgIFwiTWFsdWNoYVwiLFxuICAgIFwiTWFubnNcIixcbiAgICBcIk1hbnpcIixcbiAgICBcIk1hcmFocmVuc1wiLFxuICAgIFwiTWFyY2hld3NraVwiLFxuICAgIFwiTWFyZ2lzXCIsXG4gICAgXCJNYXJrb3dza2lcIixcbiAgICBcIk1hcmxcIixcbiAgICBcIk1hcm5lclwiLFxuICAgIFwiTWFycXVhcnRcIixcbiAgICBcIk1hcnNjaGVrXCIsXG4gICAgXCJNYXJ0ZWxcIixcbiAgICBcIk1hcnRlblwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ4XCIsXG4gICAgXCJNYXJ4ZW5cIixcbiAgICBcIk1hdGhlc1wiLFxuICAgIFwiTWF0aGllc1wiLFxuICAgIFwiTWF0aGlzemlrXCIsXG4gICAgXCJNYXRzY2hrZVwiLFxuICAgIFwiTWF0dGVyblwiLFxuICAgIFwiTWF0dGhlc1wiLFxuICAgIFwiTWF0dWxhXCIsXG4gICAgXCJNYXVcIixcbiAgICBcIk1hdXJlclwiLFxuICAgIFwiTWF1cm9mZlwiLFxuICAgIFwiTWF5XCIsXG4gICAgXCJNYXliYWNoXCIsXG4gICAgXCJNYXllclwiLFxuICAgIFwiTWVib2xkXCIsXG4gICAgXCJNZWhsXCIsXG4gICAgXCJNZWhsaG9yblwiLFxuICAgIFwiTWVobG9yblwiLFxuICAgIFwiTWVpZXJcIixcbiAgICBcIk1laXNjaFwiLFxuICAgIFwiTWVpc3NuZXJcIixcbiAgICBcIk1lbG9uaVwiLFxuICAgIFwiTWVsemVyXCIsXG4gICAgXCJNZW5nYVwiLFxuICAgIFwiTWVubmVcIixcbiAgICBcIk1lbnNhaFwiLFxuICAgIFwiTWVuc2luZ1wiLFxuICAgIFwiTWVya2VsXCIsXG4gICAgXCJNZXJzZWJ1cmdcIixcbiAgICBcIk1lcnRlbnNcIixcbiAgICBcIk1lc2xvaFwiLFxuICAgIFwiTWV0emdlclwiLFxuICAgIFwiTWV0em5lclwiLFxuICAgIFwiTWV3ZXNcIixcbiAgICBcIk1leWVyXCIsXG4gICAgXCJNaWNoYWxsZWtcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWllbGtlXCIsXG4gICAgXCJNaWtpdGVua29cIixcbiAgICBcIk1pbGRlXCIsXG4gICAgXCJNaW5haFwiLFxuICAgIFwiTWludHpsYWZmXCIsXG4gICAgXCJNb2NrZW5oYXVwdFwiLFxuICAgIFwiTW9lZGVcIixcbiAgICBcIk1vZWRsXCIsXG4gICAgXCJNb2VsbGVyXCIsXG4gICAgXCJNb2d1ZW5hcmFcIixcbiAgICBcIk1vaHJcIixcbiAgICBcIk1vaHJoYXJkXCIsXG4gICAgXCJNb2xpdG9yXCIsXG4gICAgXCJNb2xsXCIsXG4gICAgXCJNb2xsZXJcIixcbiAgICBcIk1vbHphblwiLFxuICAgIFwiTW9udGFnXCIsXG4gICAgXCJNb29ybWFublwiLFxuICAgIFwiTW9yZGhvcnN0XCIsXG4gICAgXCJNb3JnZW5zdGVyblwiLFxuICAgIFwiTW9yaGVsZmVyXCIsXG4gICAgXCJNb3JpdHpcIixcbiAgICBcIk1vc2VyXCIsXG4gICAgXCJNb3RjaGVib25cIixcbiAgICBcIk1vdHplbmJiw6Rja2VyXCIsXG4gICAgXCJNcnVnYWxsYVwiLFxuICAgIFwiTXVja2VudGhhbGVyXCIsXG4gICAgXCJNdWVzXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk11bHJhaW5cIixcbiAgICBcIk3DpGNodGlnXCIsXG4gICAgXCJNw6RkZXJcIixcbiAgICBcIk3DtmNrc1wiLFxuICAgIFwiTcO2Z2VuYnVyZ1wiLFxuICAgIFwiTcO2aHNuZXJcIixcbiAgICBcIk3DtmxkbmVyXCIsXG4gICAgXCJNw7ZsbGVuYmVja1wiLFxuICAgIFwiTcO2bGxlclwiLFxuICAgIFwiTcO2bGxpbmdlclwiLFxuICAgIFwiTcO2cnNjaFwiLFxuICAgIFwiTcO8aGxlaXNcIixcbiAgICBcIk3DvGxsZXJcIixcbiAgICBcIk3DvG5jaFwiLFxuICAgIFwiTmFiZWluXCIsXG4gICAgXCJOYWJvd1wiLFxuICAgIFwiTmFnZWxcIixcbiAgICBcIk5hbm5lblwiLFxuICAgIFwiTmFzdHZvZ2VsXCIsXG4gICAgXCJOYXVcIixcbiAgICBcIk5hdWJlcnRcIixcbiAgICBcIk5hdW1hbm5cIixcbiAgICBcIk5lXCIsXG4gICAgXCJOZWlta2VcIixcbiAgICBcIk5lcml1c1wiLFxuICAgIFwiTmV1YmF1ZXJcIixcbiAgICBcIk5ldWJlcnRcIixcbiAgICBcIk5ldWVuZG9yZlwiLFxuICAgIFwiTmV1bWFpclwiLFxuICAgIFwiTmV1bWFublwiLFxuICAgIFwiTmV1cGVydFwiLFxuICAgIFwiTmV1cm9oclwiLFxuICAgIFwiTmV1c2Nod2FuZGVyXCIsXG4gICAgXCJOZXd0b25cIixcbiAgICBcIk5leVwiLFxuICAgIFwiTmljb2xheVwiLFxuICAgIFwiTmllZGVybWVpZXJcIixcbiAgICBcIk5pZWtsYXVzb25cIixcbiAgICBcIk5pa2xhdXNcIixcbiAgICBcIk5pdHpzY2hlXCIsXG4gICAgXCJOb2Fja1wiLFxuICAgIFwiTm9kbGVyXCIsXG4gICAgXCJOb2x0ZVwiLFxuICAgIFwiTm9ybWFublwiLFxuICAgIFwiTm9ycmlzXCIsXG4gICAgXCJOb3J0aG9mZlwiLFxuICAgIFwiTm93YWtcIixcbiAgICBcIk51c3NiZWNrXCIsXG4gICAgXCJOd2FjaHVrd3VcIixcbiAgICBcIk55dHJhXCIsXG4gICAgXCJOw7ZoXCIsXG4gICAgXCJPYmVyZW1cIixcbiAgICBcIk9iZXJnZsO2bGxcIixcbiAgICBcIk9iZXJtYWllclwiLFxuICAgIFwiT2Noc1wiLFxuICAgIFwiT2VzZXJcIixcbiAgICBcIk9sYnJpY2hcIixcbiAgICBcIk9ubmVuXCIsXG4gICAgXCJPcGhleVwiLFxuICAgIFwiT3Bwb25nXCIsXG4gICAgXCJPcnRoXCIsXG4gICAgXCJPcnRobWFublwiLFxuICAgIFwiT3NjaGtlbmF0XCIsXG4gICAgXCJPc2VpXCIsXG4gICAgXCJPc2VuYmVyZ1wiLFxuICAgIFwiT3N0ZW5kYXJwXCIsXG4gICAgXCJPc3R3YWxkXCIsXG4gICAgXCJPdHRlXCIsXG4gICAgXCJPdHRvXCIsXG4gICAgXCJQYWVzbGVyXCIsXG4gICAgXCJQYWpvbmtcIixcbiAgICBcIlBhbGxlbnRpblwiLFxuICAgIFwiUGFuemlnXCIsXG4gICAgXCJQYXNjaGtlXCIsXG4gICAgXCJQYXR6d2FobFwiLFxuICAgIFwiUGF1a25lclwiLFxuICAgIFwiUGVzZWxtYW5cIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQZXRlcnNcIixcbiAgICBcIlBldHpvbGRcIixcbiAgICBcIlBmZWlmZmVyXCIsXG4gICAgXCJQZmVubmlnXCIsXG4gICAgXCJQZmVyc2ljaFwiLFxuICAgIFwiUGZpbmdzdGVuXCIsXG4gICAgXCJQZmxpZWdlclwiLFxuICAgIFwiUGZsw7xnbmVyXCIsXG4gICAgXCJQaGlsaXBwXCIsXG4gICAgXCJQaWNobG1haWVyXCIsXG4gICAgXCJQaWVza2VyXCIsXG4gICAgXCJQaWV0c2NoXCIsXG4gICAgXCJQaW5ncGFua1wiLFxuICAgIFwiUGlubm9ja1wiLFxuICAgIFwiUGlwcGlnXCIsXG4gICAgXCJQaXRzY2h1Z2luXCIsXG4gICAgXCJQbGFua1wiLFxuICAgIFwiUGxhc3NcIixcbiAgICBcIlBsYXR6ZXJcIixcbiAgICBcIlBsYXVrXCIsXG4gICAgXCJQbGF1dHpcIixcbiAgICBcIlBsZXRzY2hcIixcbiAgICBcIlBsb3R6aXR6a2FcIixcbiAgICBcIlBvZWhuXCIsXG4gICAgXCJQb2VzY2hsXCIsXG4gICAgXCJQb2dvcnplbHNraVwiLFxuICAgIFwiUG9obFwiLFxuICAgIFwiUG9obGFuZFwiLFxuICAgIFwiUG9obGVcIixcbiAgICBcIlBvbGlma2FcIixcbiAgICBcIlBvbGl6emlcIixcbiAgICBcIlBvbGxtw6RjaGVyXCIsXG4gICAgXCJQb21wXCIsXG4gICAgXCJQb25pdHpzY2hcIixcbiAgICBcIlBvcnNjaGVcIixcbiAgICBcIlBvcnRoXCIsXG4gICAgXCJQb3NjaG1hbm5cIixcbiAgICBcIlBvc2VyXCIsXG4gICAgXCJQb3R0ZWxcIixcbiAgICBcIlByYWhcIixcbiAgICBcIlByYW5nZVwiLFxuICAgIFwiUHJlZGlnZXJcIixcbiAgICBcIlByZXNzbGVyXCIsXG4gICAgXCJQcmV1a1wiLFxuICAgIFwiUHJldXNzXCIsXG4gICAgXCJQcmV5XCIsXG4gICAgXCJQcmllbWVyXCIsXG4gICAgXCJQcm9za2VcIixcbiAgICBcIlB1c2NoXCIsXG4gICAgXCJQw7ZjaGVcIixcbiAgICBcIlDDtmdlXCIsXG4gICAgXCJSYWFiZVwiLFxuICAgIFwiUmFiZW5zdGVpblwiLFxuICAgIFwiUmFjaFwiLFxuICAgIFwiUmFkdGtlXCIsXG4gICAgXCJSYWhuXCIsXG4gICAgXCJSYW5mdGxcIixcbiAgICBcIlJhbmdlblwiLFxuICAgIFwiUmFuelwiLFxuICAgIFwiUmFwcFwiLFxuICAgIFwiUmF0aFwiLFxuICAgIFwiUmF1XCIsXG4gICAgXCJSYXVidWNoXCIsXG4gICAgXCJSYXVrdWNcIixcbiAgICBcIlJhdXRlbmtyYW56XCIsXG4gICAgXCJSZWh3YWdlblwiLFxuICAgIFwiUmVpYmVyXCIsXG4gICAgXCJSZWljaGFyZHRcIixcbiAgICBcIlJlaWNoZWxcIixcbiAgICBcIlJlaWNobGluZ1wiLFxuICAgIFwiUmVpZlwiLFxuICAgIFwiUmVpZmVucmF0aFwiLFxuICAgIFwiUmVpbWFublwiLFxuICAgIFwiUmVpbmJlcmdcIixcbiAgICBcIlJlaW5lbHRcIixcbiAgICBcIlJlaW5oYXJkdFwiLFxuICAgIFwiUmVpbmtlXCIsXG4gICAgXCJSZWl0emVcIixcbiAgICBcIlJlbmtcIixcbiAgICBcIlJlbnR6XCIsXG4gICAgXCJSZW56XCIsXG4gICAgXCJSZXBwaW5cIixcbiAgICBcIlJlc3RsZVwiLFxuICAgIFwiUmVzdG9yZmZcIixcbiAgICBcIlJldHprZVwiLFxuICAgIFwiUmV1YmVyXCIsXG4gICAgXCJSZXVtYW5uXCIsXG4gICAgXCJSZXVzXCIsXG4gICAgXCJSZXVzc1wiLFxuICAgIFwiUmV1c3NlXCIsXG4gICAgXCJSaGVkZXJcIixcbiAgICBcIlJob2RlblwiLFxuICAgIFwiUmljaGFyZHNcIixcbiAgICBcIlJpY2h0ZXJcIixcbiAgICBcIlJpZWRlbFwiLFxuICAgIFwiUmllZGlnZXJcIixcbiAgICBcIlJpZWdlclwiLFxuICAgIFwiUmlla21hbm5cIixcbiAgICBcIlJpZXBsXCIsXG4gICAgXCJSaWVybWVpZXJcIixcbiAgICBcIlJpZXN0ZXJcIixcbiAgICBcIlJpZXRobcO8bGxlclwiLFxuICAgIFwiUmlldG3DvGxsZXJcIixcbiAgICBcIlJpZXRzY2hlclwiLFxuICAgIFwiUmluZ2VsXCIsXG4gICAgXCJSaW5nZXJcIixcbiAgICBcIlJpbmtcIixcbiAgICBcIlJpcGtlblwiLFxuICAgIFwiUml0b3Nla1wiLFxuICAgIFwiUml0c2NoZWxcIixcbiAgICBcIlJpdHRlclwiLFxuICAgIFwiUml0dHdlZ1wiLFxuICAgIFwiUml0elwiLFxuICAgIFwiUm9iYVwiLFxuICAgIFwiUm9ja21laWVyXCIsXG4gICAgXCJSb2RlaGF1XCIsXG4gICAgXCJSb2Rvd3NraVwiLFxuICAgIFwiUm9lY2tlclwiLFxuICAgIFwiUm9nZ2F0elwiLFxuICAgIFwiUm9obMOkbmRlclwiLFxuICAgIFwiUm9ocmVyXCIsXG4gICAgXCJSb2tvc3NhXCIsXG4gICAgXCJSb2xlZGVyXCIsXG4gICAgXCJSb2xvZmZcIixcbiAgICBcIlJvb3NcIixcbiAgICBcIlJvc2JhY2hcIixcbiAgICBcIlJvc2NoaW5za3lcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIlJvc2VuYXVlclwiLFxuICAgIFwiUm9zZW5iYXVlclwiLFxuICAgIFwiUm9zZW50aGFsXCIsXG4gICAgXCJSb3Nrc2NoXCIsXG4gICAgXCJSb3NzYmVyZ1wiLFxuICAgIFwiUm9zc2xlclwiLFxuICAgIFwiUm90aFwiLFxuICAgIFwiUm90aGVyXCIsXG4gICAgXCJSdWNoXCIsXG4gICAgXCJSdWNrZGVzY2hlbFwiLFxuICAgIFwiUnVtcGZcIixcbiAgICBcIlJ1cHByZWNodFwiLFxuICAgIFwiUnV0aFwiLFxuICAgIFwiUnlqaWtoXCIsXG4gICAgXCJSeXppaFwiLFxuICAgIFwiUsOkZGxlclwiLFxuICAgIFwiUsOkbnRzY2hcIixcbiAgICBcIlLDtmRpZ2VyXCIsXG4gICAgXCJSw7ZzZVwiLFxuICAgIFwiUsO2dHRnZXJcIixcbiAgICBcIlLDvGNrZXJcIixcbiAgICBcIlLDvGRpZ2VyXCIsXG4gICAgXCJSw7x0ZXJcIixcbiAgICBcIlNhY2hzZVwiLFxuICAgIFwiU2Fja1wiLFxuICAgIFwiU2FmbGFuaXNcIixcbiAgICBcIlNhZ2FmZVwiLFxuICAgIFwiU2Fnb25hc1wiLFxuICAgIFwiU2FobmVyXCIsXG4gICAgXCJTYWlsZVwiLFxuICAgIFwiU2FpbGVyXCIsXG4gICAgXCJTYWxvd1wiLFxuICAgIFwiU2FsemVyXCIsXG4gICAgXCJTYWx6bWFublwiLFxuICAgIFwiU2FtbWVydFwiLFxuICAgIFwiU2FuZGVyXCIsXG4gICAgXCJTYXJ2YXJpXCIsXG4gICAgXCJTYXR0ZWxtYWllclwiLFxuICAgIFwiU2F1ZXJcIixcbiAgICBcIlNhdWVybGFuZFwiLFxuICAgIFwiU2F1bXdlYmVyXCIsXG4gICAgXCJTYXZvaWFcIixcbiAgICBcIlNjY1wiLFxuICAgIFwiU2NoYWNodFwiLFxuICAgIFwiU2NoYWVmZXJcIixcbiAgICBcIlNjaGFmZmFyemlrXCIsXG4gICAgXCJTY2hhaGJhc2lhblwiLFxuICAgIFwiU2NoYXJmXCIsXG4gICAgXCJTY2hlZGxlclwiLFxuICAgIFwiU2NoZWVyXCIsXG4gICAgXCJTY2hlbGtcIixcbiAgICBcIlNjaGVsbGVuYmVja1wiLFxuICAgIFwiU2NoZW1iZXJhXCIsXG4gICAgXCJTY2hlbmtcIixcbiAgICBcIlNjaGVyYmFydGhcIixcbiAgICBcIlNjaGVyZXJcIixcbiAgICBcIlNjaGVyc2luZ1wiLFxuICAgIFwiU2NoZXJ6XCIsXG4gICAgXCJTY2hldXJlclwiLFxuICAgIFwiU2NoZXVyaW5nXCIsXG4gICAgXCJTY2hleXR0XCIsXG4gICAgXCJTY2hpZWxrZVwiLFxuICAgIFwiU2NoaWVza293XCIsXG4gICAgXCJTY2hpbGRoYXVlclwiLFxuICAgIFwiU2NoaWxsaW5nXCIsXG4gICAgXCJTY2hpbWFcIixcbiAgICBcIlNjaGltbWVyXCIsXG4gICAgXCJTY2hpbmR6aWVsb3J6XCIsXG4gICAgXCJTY2hpcm1lclwiLFxuICAgIFwiU2NoaXJybWVpc3RlclwiLFxuICAgIFwiU2NobGFjaHRlclwiLFxuICAgIFwiU2NobGFuZ2VuXCIsXG4gICAgXCJTY2hsYXdpdHpcIixcbiAgICBcIlNjaGxlY2h0d2VnXCIsXG4gICAgXCJTY2hsZXlcIixcbiAgICBcIlNjaGxpY2h0XCIsXG4gICAgXCJTY2hsaXR6ZXJcIixcbiAgICBcIlNjaG1hbHpsZVwiLFxuICAgIFwiU2NobWlkXCIsXG4gICAgXCJTY2htaWR0XCIsXG4gICAgXCJTY2htaWR0Y2hlblwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobWl0elwiLFxuICAgIFwiU2NobXVobFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2huZWx0aW5nXCIsXG4gICAgXCJTY2huaWVkZXJcIixcbiAgICBcIlNjaG5pZWRlcm1laWVyXCIsXG4gICAgXCJTY2huw7xyZXJcIixcbiAgICBcIlNjaG9iZXJnXCIsXG4gICAgXCJTY2hvbHpcIixcbiAgICBcIlNjaG9uYmVyZ1wiLFxuICAgIFwiU2Nob25kZWxtYWllclwiLFxuICAgIFwiU2Nob3JyXCIsXG4gICAgXCJTY2hvdHRcIixcbiAgICBcIlNjaG90dG1hbm5cIixcbiAgICBcIlNjaG91cmVuXCIsXG4gICAgXCJTY2hyYWRlclwiLFxuICAgIFwiU2NocmFtbVwiLFxuICAgIFwiU2NocmVja1wiLFxuICAgIFwiU2NocmVpYmVyXCIsXG4gICAgXCJTY2hyZWluZXJcIixcbiAgICBcIlNjaHJlaXRlclwiLFxuICAgIFwiU2Nocm9kZXJcIixcbiAgICBcIlNjaHLDtmRlclwiLFxuICAgIFwiU2NodWVybWFublwiLFxuICAgIFwiU2NodWZmXCIsXG4gICAgXCJTY2h1aGFqXCIsXG4gICAgXCJTY2h1bGR0XCIsXG4gICAgXCJTY2h1bHRcIixcbiAgICBcIlNjaHVsdGVcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNjaHVsdHplXCIsXG4gICAgXCJTY2h1bHpcIixcbiAgICBcIlNjaHVsemVcIixcbiAgICBcIlNjaHVtYWNoZXJcIixcbiAgICBcIlNjaHVtYW5uXCIsXG4gICAgXCJTY2h1cHBcIixcbiAgICBcIlNjaHVyaVwiLFxuICAgIFwiU2NodXN0ZXJcIixcbiAgICBcIlNjaHdhYlwiLFxuICAgIFwiU2Nod2FsbVwiLFxuICAgIFwiU2Nod2FuYmVja1wiLFxuICAgIFwiU2Nod2FuZGtlXCIsXG4gICAgXCJTY2h3YW5pdHpcIixcbiAgICBcIlNjaHdhcnRob2ZmXCIsXG4gICAgXCJTY2h3YXJ0elwiLFxuICAgIFwiU2Nod2FyelwiLFxuICAgIFwiU2Nod2FyemVyXCIsXG4gICAgXCJTY2h3YXJ6a29wZlwiLFxuICAgIFwiU2Nod2Fyem1laWVyXCIsXG4gICAgXCJTY2h3YXRsb1wiLFxuICAgIFwiU2Nod2Vpc2Z1cnRoXCIsXG4gICAgXCJTY2h3ZW5uZW5cIixcbiAgICBcIlNjaHdlcmR0bmVyXCIsXG4gICAgXCJTY2h3aWRkZVwiLFxuICAgIFwiU2Nod2lya3NjaGxpZXNcIixcbiAgICBcIlNjaHd1Y2hvd1wiLFxuICAgIFwiU2Now6RmZXJcIixcbiAgICBcIlNjaMOkZmZlbFwiLFxuICAgIFwiU2Now6RmZmVyXCIsXG4gICAgXCJTY2jDpG5pbmdcIixcbiAgICBcIlNjaMO2Y2tlbFwiLFxuICAgIFwiU2Now7ZuYmFsbFwiLFxuICAgIFwiU2Now7ZuYmVja1wiLFxuICAgIFwiU2Now7ZuYmVyZ1wiLFxuICAgIFwiU2Now7ZuZWJlY2tcIixcbiAgICBcIlNjaMO2bmVuYmVyZ2VyXCIsXG4gICAgXCJTY2jDtm5mZWxkXCIsXG4gICAgXCJTY2jDtm5oZXJyXCIsXG4gICAgXCJTY2jDtm5sZWJlXCIsXG4gICAgXCJTY2jDtnR6XCIsXG4gICAgXCJTY2jDvGxlclwiLFxuICAgIFwiU2Now7xwcGVsXCIsXG4gICAgXCJTY2jDvHR6XCIsXG4gICAgXCJTY2jDvHR6ZVwiLFxuICAgIFwiU2VlZ2VyXCIsXG4gICAgXCJTZWVsaWdcIixcbiAgICBcIlNlaGxzXCIsXG4gICAgXCJTZWlib2xkXCIsXG4gICAgXCJTZWlkZWxcIixcbiAgICBcIlNlaWRlcnNcIixcbiAgICBcIlNlaWdlbFwiLFxuICAgIFwiU2VpbGVyXCIsXG4gICAgXCJTZWl0elwiLFxuICAgIFwiU2VtaXNjaFwiLFxuICAgIFwiU2Vua2VsXCIsXG4gICAgXCJTZXdhbGRcIixcbiAgICBcIlNpZWJlbFwiLFxuICAgIFwiU2llYmVydFwiLFxuICAgIFwiU2llZ2xpbmdcIixcbiAgICBcIlNpZWxlbWFublwiLFxuICAgIFwiU2llbW9uXCIsXG4gICAgXCJTaWVuZXJcIixcbiAgICBcIlNpZXZlcnNcIixcbiAgICBcIlNpZXdlcnRcIixcbiAgICBcIlNpaGxlclwiLFxuICAgIFwiU2lsbGFoXCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiU2lubmh1YmVyXCIsXG4gICAgXCJTaXNjaGthXCIsXG4gICAgXCJTa2liaWNraVwiLFxuICAgIFwiU2xhZGVrXCIsXG4gICAgXCJTbG90dGFcIixcbiAgICBcIlNtaWVqYVwiLFxuICAgIFwiU29ib2xsXCIsXG4gICAgXCJTb2tvbG93c2tpXCIsXG4gICAgXCJTb2xsZXJcIixcbiAgICBcIlNvbGxuZXJcIixcbiAgICBcIlNvbW1lclwiLFxuICAgIFwiU29tc3NpY2hcIixcbiAgICBcIlNvbm5cIixcbiAgICBcIlNvbm5hYmVuZFwiLFxuICAgIFwiU3BhaG5cIixcbiAgICBcIlNwYW5rXCIsXG4gICAgXCJTcGVsbWV5ZXJcIixcbiAgICBcIlNwaWVnZWxidXJnXCIsXG4gICAgXCJTcGllbHZvZ2VsXCIsXG4gICAgXCJTcGlubmVyXCIsXG4gICAgXCJTcGl0em3DvGxsZXJcIixcbiAgICBcIlNwbGludGVyXCIsXG4gICAgXCJTcG9ycmVyXCIsXG4gICAgXCJTcHJlbmdlclwiLFxuICAgIFwiU3DDtnR0ZWxcIixcbiAgICBcIlN0YWhsXCIsXG4gICAgXCJTdGFuZ1wiLFxuICAgIFwiU3RhbmdlclwiLFxuICAgIFwiU3RhdXNzXCIsXG4gICAgXCJTdGVkaW5nXCIsXG4gICAgXCJTdGVmZmVuXCIsXG4gICAgXCJTdGVmZm55XCIsXG4gICAgXCJTdGVpZGxcIixcbiAgICBcIlN0ZWlnYXVmXCIsXG4gICAgXCJTdGVpblwiLFxuICAgIFwiU3RlaW5lY2tlXCIsXG4gICAgXCJTdGVpbmVydFwiLFxuICAgIFwiU3RlaW5rYW1wXCIsXG4gICAgXCJTdGVpbm1ldHpcIixcbiAgICBcIlN0ZWxrZW5zXCIsXG4gICAgXCJTdGVuZ2VsXCIsXG4gICAgXCJTdGVuZ2xcIixcbiAgICBcIlN0ZW56ZWxcIixcbiAgICBcIlN0ZXBhbm92XCIsXG4gICAgXCJTdGVwaGFuXCIsXG4gICAgXCJTdGVyblwiLFxuICAgIFwiU3RldWtcIixcbiAgICBcIlN0aWVmXCIsXG4gICAgXCJTdGlmZWxcIixcbiAgICBcIlN0b2xsXCIsXG4gICAgXCJTdG9sbGVcIixcbiAgICBcIlN0b2x6XCIsXG4gICAgXCJTdG9ybFwiLFxuICAgIFwiU3RvcnBcIixcbiAgICBcIlN0b3V0amVzZGlqa1wiLFxuICAgIFwiU3RyYXRtYW5uXCIsXG4gICAgXCJTdHJhdWJcIixcbiAgICBcIlN0cmF1c2FcIixcbiAgICBcIlN0cmVja1wiLFxuICAgIFwiU3RyZWVzZVwiLFxuICAgIFwiU3RyZWdlXCIsXG4gICAgXCJTdHJlaXRcIixcbiAgICBcIlN0cmVsbGVyXCIsXG4gICAgXCJTdHJpZWRlclwiLFxuICAgIFwiU3RyaWV6ZWxcIixcbiAgICBcIlN0cm9naWVzXCIsXG4gICAgXCJTdHJvaHNjaGFua1wiLFxuICAgIFwiU3RydW56XCIsXG4gICAgXCJTdHJ1dHpcIixcbiAgICBcIlN0dWJlXCIsXG4gICAgXCJTdMO2Y2tlcnRcIixcbiAgICBcIlN0w7ZwcGxlclwiLFxuICAgIFwiU3TDtndlclwiLFxuICAgIFwiU3TDvHJtZXJcIixcbiAgICBcIlN1ZmZhXCIsXG4gICAgXCJTdWpld1wiLFxuICAgIFwiU3Vzc21hbm5cIixcbiAgICBcIlN1dGhlXCIsXG4gICAgXCJTdXRzY2hldFwiLFxuICAgIFwiU3dpbGxpbXNcIixcbiAgICBcIlN6ZW5kcmVpXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlPDvHJ0aFwiLFxuICAgIFwiVGFmZWxtZWllclwiLFxuICAgIFwiVGFuZ1wiLFxuICAgIFwiVGFzY2hlXCIsXG4gICAgXCJUYXVmcmF0c2hvZmVyXCIsXG4gICAgXCJUZWdldGhvZlwiLFxuICAgIFwiVGVpY2htYW5uXCIsXG4gICAgXCJUZXBwZXJcIixcbiAgICBcIlRlcmhlaWRlblwiLFxuICAgIFwiVGVybGVja2lcIixcbiAgICBcIlRldWZlbFwiLFxuICAgIFwiVGhlZWxlXCIsXG4gICAgXCJUaGlla2VcIixcbiAgICBcIlRoaW1tXCIsXG4gICAgXCJUaGlvbWFzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRocmllbmVcIixcbiAgICBcIlRocsOkbmhhcmR0XCIsXG4gICAgXCJUaHVzdFwiLFxuICAgIFwiVGh5c3NlblwiLFxuICAgIFwiVGjDtm5lXCIsXG4gICAgXCJUaWRvd1wiLFxuICAgIFwiVGllZHRrZVwiLFxuICAgIFwiVGlldHplXCIsXG4gICAgXCJUaWxnbmVyXCIsXG4gICAgXCJUaWxsYWNrXCIsXG4gICAgXCJUaW1tZXJtYW5uXCIsXG4gICAgXCJUaXNjaGxlclwiLFxuICAgIFwiVGlzY2htYW5uXCIsXG4gICAgXCJUaXR0bWFuXCIsXG4gICAgXCJUaXZvbnRzY2hpa1wiLFxuICAgIFwiVG9uYXRcIixcbiAgICBcIlRvbm5cIixcbiAgICBcIlRyYW1wZWxpXCIsXG4gICAgXCJUcmF1dGhcIixcbiAgICBcIlRyYXV0bWFublwiLFxuICAgIFwiVHJhdmFuXCIsXG4gICAgXCJUcmVmZlwiLFxuICAgIFwiVHJlbW1lbFwiLFxuICAgIFwiVHJlc3NcIixcbiAgICBcIlRzYW1vbmlraWFuXCIsXG4gICAgXCJUc2NoaWVyc1wiLFxuICAgIFwiVHNjaGlyY2hcIixcbiAgICBcIlR1Y2hcIixcbiAgICBcIlR1Y2hvbGtlXCIsXG4gICAgXCJUdWRvd1wiLFxuICAgIFwiVHVzY2htb1wiLFxuICAgIFwiVMOkY2hsXCIsXG4gICAgXCJUw7ZiYmVuXCIsXG4gICAgXCJUw7ZwZmVyXCIsXG4gICAgXCJVaGxlbWFublwiLFxuICAgIFwiVWhsaWdcIixcbiAgICBcIlVocmlnXCIsXG4gICAgXCJVaWJlbFwiLFxuICAgIFwiVWxpY3prYVwiLFxuICAgIFwiVWxsbWFublwiLFxuICAgIFwiVWxscmljaFwiLFxuICAgIFwiVW1iYWNoXCIsXG4gICAgXCJVbWxhdWZ0XCIsXG4gICAgXCJVbW1pbmdlclwiLFxuICAgIFwiVW5nZXJcIixcbiAgICBcIlVudGVycGFpbnRuZXJcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJVcmJhbmlha1wiLFxuICAgIFwiVXJiYW5za3lcIixcbiAgICBcIlVyaGlnXCIsXG4gICAgXCJWYWhsZW5zaWVja1wiLFxuICAgIFwiVmFuXCIsXG4gICAgXCJWYW5nZXJtYWluXCIsXG4gICAgXCJWYXRlclwiLFxuICAgIFwiVmVuZ2hhdXNcIixcbiAgICBcIlZlcm5pZXN0XCIsXG4gICAgXCJWZXJ6aVwiLFxuICAgIFwiVmV5XCIsXG4gICAgXCJWaWVsbGVobmVyXCIsXG4gICAgXCJWaWV3ZWdcIixcbiAgICBcIlZvZWxrZWxcIixcbiAgICBcIlZvZ2VsXCIsXG4gICAgXCJWb2dlbGdzYW5nXCIsXG4gICAgXCJWb2d0XCIsXG4gICAgXCJWb2lndFwiLFxuICAgIFwiVm9rdWhsXCIsXG4gICAgXCJWb2xrXCIsXG4gICAgXCJWb2xrZXJcIixcbiAgICBcIlZvbGttYW5uXCIsXG4gICAgXCJWb25cIixcbiAgICBcIlZvbmFcIixcbiAgICBcIlZvbnRlaW5cIixcbiAgICBcIldhY2hlbmJydW5uZXJcIixcbiAgICBcIldhY2h0ZWxcIixcbiAgICBcIldhZ25lclwiLFxuICAgIFwiV2FpYmVsXCIsXG4gICAgXCJXYWthblwiLFxuICAgIFwiV2FsZG1hbm5cIixcbiAgICBcIldhbGxuZXJcIixcbiAgICBcIldhbGxzdGFiXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbHRoZXJcIixcbiAgICBcIldhbHRvblwiLFxuICAgIFwiV2FselwiLFxuICAgIFwiV2FubmVyXCIsXG4gICAgXCJXYXJ0ZW5iZXJnXCIsXG4gICAgXCJXYXNjaGLDvHNjaFwiLFxuICAgIFwiV2Fzc2lsZXdcIixcbiAgICBcIldhc3NpbHVrXCIsXG4gICAgXCJXZWJlclwiLFxuICAgIFwiV2VocnNlblwiLFxuICAgIFwiV2VpZGxpY2hcIixcbiAgICBcIldlaWRuZXJcIixcbiAgICBcIldlaWdlbFwiLFxuICAgIFwiV2VpZ2h0XCIsXG4gICAgXCJXZWlsZXJcIixcbiAgICBcIldlaW1lclwiLFxuICAgIFwiV2Vpc1wiLFxuICAgIFwiV2Vpc3NcIixcbiAgICBcIldlbGxlclwiLFxuICAgIFwiV2Vsc2NoXCIsXG4gICAgXCJXZWx6XCIsXG4gICAgXCJXZWx6ZWxcIixcbiAgICBcIldlbmlnZXJcIixcbiAgICBcIldlbmtcIixcbiAgICBcIldlcmxlXCIsXG4gICAgXCJXZXJuZXJcIixcbiAgICBcIldlcnJtYW5uXCIsXG4gICAgXCJXZXNzZWxcIixcbiAgICBcIldlc3NpbmdoYWdlXCIsXG4gICAgXCJXZXllbFwiLFxuICAgIFwiV2V6ZWxcIixcbiAgICBcIldpY2htYW5uXCIsXG4gICAgXCJXaWNrZXJ0XCIsXG4gICAgXCJXaWViZVwiLFxuICAgIFwiV2llY2htYW5uXCIsXG4gICAgXCJXaWVnZWxtYW5uXCIsXG4gICAgXCJXaWVyaWdcIixcbiAgICBcIldpZXNlXCIsXG4gICAgXCJXaWVzZXJcIixcbiAgICBcIldpbGhlbG1cIixcbiAgICBcIldpbGt5XCIsXG4gICAgXCJXaWxsXCIsXG4gICAgXCJXaWxsd2FjaGVyXCIsXG4gICAgXCJXaWx0c1wiLFxuICAgIFwiV2ltbWVyXCIsXG4gICAgXCJXaW5rZWxtYW5uXCIsXG4gICAgXCJXaW5rbGVyXCIsXG4gICAgXCJXaW50ZXJcIixcbiAgICBcIldpc2NoZWtcIixcbiAgICBcIldpc2NoZXJcIixcbiAgICBcIldpc3NpbmdcIixcbiAgICBcIldpdHRpY2hcIixcbiAgICBcIldpdHRsXCIsXG4gICAgXCJXb2xmXCIsXG4gICAgXCJXb2xmYXJ0aFwiLFxuICAgIFwiV29sZmZcIixcbiAgICBcIldvbGxlbmJlcmdcIixcbiAgICBcIldvbGxtYW5uXCIsXG4gICAgXCJXb3l0a293c2thXCIsXG4gICAgXCJXdWpha1wiLFxuICAgIFwiV3VybVwiLFxuICAgIFwiV3lsdWRkYVwiLFxuICAgIFwiV8O2bHBlcnRcIixcbiAgICBcIlfDtnNjaGxlclwiLFxuICAgIFwiV8O8aG5cIixcbiAgICBcIlfDvG5zY2hlXCIsXG4gICAgXCJaYWNoXCIsXG4gICAgXCJaYWN6a2lld2ljelwiLFxuICAgIFwiWmFoblwiLFxuICAgIFwiWmFpdHVjXCIsXG4gICAgXCJaYW5kdFwiLFxuICAgIFwiWmFubmVyXCIsXG4gICAgXCJaYXBsZXRhbFwiLFxuICAgIFwiWmF1YmVyXCIsXG4gICAgXCJaZWlkbGVyXCIsXG4gICAgXCJaZWtsXCIsXG4gICAgXCJaZW5kZXJcIixcbiAgICBcIlpldWNoXCIsXG4gICAgXCJaZXllblwiLFxuICAgIFwiWmV5aGxlXCIsXG4gICAgXCJaaWVnbGVyXCIsXG4gICAgXCJaaW1hbnlpXCIsXG4gICAgXCJaaW1tZXJcIixcbiAgICBcIlppbW1lcm1hbm5cIixcbiAgICBcIlppbnNlclwiLFxuICAgIFwiWmludGxcIixcbiAgICBcIlppcHBcIixcbiAgICBcIlppcHNlXCIsXG4gICAgXCJac2NodW5rZVwiLFxuICAgIFwiWnViZXJcIixcbiAgICBcIlp3aWVuZXJcIixcbiAgICBcIlrDvG1zYW5kZVwiLFxuICAgIFwiw5ZzdHJpbmdlclwiLFxuICAgIFwiw5xiZXJhY2tlclwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkhyLlwiLFxuICAgIFwiRnIuXCIsXG4gICAgXCJEci5cIixcbiAgICBcIlByb2YuIERyLlwiXG4gIF0sXG4gIFwibm9iaWxpdHlfdGl0bGVfcHJlZml4XCI6IFtcbiAgICBcInp1XCIsXG4gICAgXCJ2b25cIixcbiAgICBcInZvbVwiLFxuICAgIFwidm9uIGRlclwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tub2JpbGl0eV90aXRsZV9wcmVmaXh9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZGUucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKDAjIyMpICMjIyMjIyMjI1wiLFxuICAgIFwiKDAjIyMjKSAjIyMjIyMjXCIsXG4gICAgXCIrNDktIyMjLSMjIyMjIyNcIixcbiAgICBcIis0OS0jIyMjLSMjIyMjIyMjXCJcbiAgXVxufTtcbmRlLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIrNDktMSMjLSMjIyMjIyNcIixcbiAgICBcIis0OS0xIyMjLSMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBkZV9BVCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGRlX0FUO1xuZGVfQVQudGl0bGUgPSBcIkdlcm1hbiAoQXVzdHJpYSlcIjtcbmRlX0FULmFkZHJlc3MgPSB7XG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCLDhGd5cHRlblwiLFxuICAgIFwiw4RxdWF0b3JpYWxndWluZWFcIixcbiAgICBcIsOEdGhpb3BpZW5cIixcbiAgICBcIsOWc3RlcnJlaWNoXCIsXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pZW5cIixcbiAgICBcIkFsZ2VyaWVuXCIsXG4gICAgXCJBbWVyaWthbmlzY2gtU2Ftb2FcIixcbiAgICBcIkFtZXJpa2FuaXNjaGUgSnVuZ2Zlcm5pbnNlbG5cIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGFya3Rpc1wiLFxuICAgIFwiQW50aWd1YSB1bmQgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5pZW5cIixcbiAgICBcIkFybWVuaWVuXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXNlcmJhaWRzY2hhblwiLFxuICAgIFwiQXVzdHJhbGllblwiLFxuICAgIFwiQmFoYW1hc1wiLFxuICAgIFwiQmFocmFpblwiLFxuICAgIFwiQmFuZ2xhZGVzY2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxhcnVzXCIsXG4gICAgXCJCZWxnaWVuXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJkaWUgQmVybXVkYXNcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpZW5cIixcbiAgICBcIkJvc25pZW4gdW5kIEhlcnplZ293aW5hXCIsXG4gICAgXCJCb3RzdWFuYVwiLFxuICAgIFwiQm91dmV0aW5zZWxcIixcbiAgICBcIkJyYXNpbGllblwiLFxuICAgIFwiQnJpdGlzY2hlIEp1bmdmZXJuaW5zZWxuXCIsXG4gICAgXCJCcml0aXNjaGVzIFRlcnJpdG9yaXVtIGltIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiQnJ1bmVpIERhcnVzc2FsYW1cIixcbiAgICBcIkJ1bGdhcmllblwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIkNvb2tpbnNlbG5cIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkTDpG5lbWFya1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBSZXB1YmxpayBLb25nb1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBWb2xrc3JlcHVibGlrIEtvcmVhXCIsXG4gICAgXCJEZXV0c2NobGFuZFwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIkRvbWluaWthbmlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJEc2NoaWJ1dGlcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJFc3RsYW5kXCIsXG4gICAgXCJGw6Ryw7ZlclwiLFxuICAgIFwiRmFsa2xhbmRpbnNlbG5cIixcbiAgICBcIkZpZHNjaGlcIixcbiAgICBcIkZpbm5sYW5kXCIsXG4gICAgXCJGcmFua3JlaWNoXCIsXG4gICAgXCJGcmFuesO2c2lzY2gtR3VheWFuYVwiLFxuICAgIFwiRnJhbnrDtnNpc2NoLVBvbHluZXNpZW5cIixcbiAgICBcIkZyYW56w7ZzaXNjaGUgR2ViaWV0ZSBpbSBzw7xkbGljaGVuIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiR2FidW5cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2VvcmdpZW5cIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3JpZWNoZW5sYW5kXCIsXG4gICAgXCJHdWFkZWxvdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgdW5kIE1jRG9uYWxkaW5zZWxuXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZ2tvbmdcIixcbiAgICBcIkluZGllblwiLFxuICAgIFwiSW5kb25lc2llblwiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXJsYW5kXCIsXG4gICAgXCJJc2xhbmRcIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiSXRhbGllblwiLFxuICAgIFwiSmFtYWlrYVwiLFxuICAgIFwiSmFwYW5cIixcbiAgICBcIkplbWVuXCIsXG4gICAgXCJKb3JkYW5pZW5cIixcbiAgICBcIkp1Z29zbGF3aWVuXCIsXG4gICAgXCJLYWltYW5pbnNlbG5cIixcbiAgICBcIkthbWJvZHNjaGFcIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbmFkYVwiLFxuICAgIFwiS2FwIFZlcmRlXCIsXG4gICAgXCJLYXNhY2hzdGFuXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpc2lzdGFuXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS2xlaW5lcmUgYW1lcmlrYW5pc2NoZSDDnGJlcnNlZWluc2VsblwiLFxuICAgIFwiS29rb3NpbnNlbG5cIixcbiAgICBcIktvbHVtYmllblwiLFxuICAgIFwiS29tb3JlblwiLFxuICAgIFwiS29uZ29cIixcbiAgICBcIktyb2F0aWVuXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdXdhaXRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxldHRsYW5kXCIsXG4gICAgXCJMaWJhbm9uXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJ5ZW5cIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdGF1ZW5cIixcbiAgICBcIkx1eGVtYnVyZ1wiLFxuICAgIFwiTWFjYXVcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIk1hbGVkaXZlblwiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcImVoZW1hbGlnZSBqdWdvc2xhd2lzY2hlIFJlcHVibGlrIE1hemVkb25pZW5cIixcbiAgICBcIk1hcm9ra29cIixcbiAgICBcIk1hcnNoYWxsaW5zZWxuXCIsXG4gICAgXCJNYXJ0aW5pcXVlXCIsXG4gICAgXCJNYXVyZXRhbmllblwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIk1pa3JvbmVzaWVuXCIsXG4gICAgXCJNb25hY29cIixcbiAgICBcIk1vbmdvbGVpXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3NhbWJpa1wiLFxuICAgIFwiTXlhbm1hclwiLFxuICAgIFwiTsO2cmRsaWNoZSBNYXJpYW5lblwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJOZXVrYWxlZG9uaWVuXCIsXG4gICAgXCJOZXVzZWVsYW5kXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZWRlcmzDpG5kaXNjaGUgQW50aWxsZW5cIixcbiAgICBcIk5pZWRlcmxhbmRlXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9yZm9sa2luc2VsXCIsXG4gICAgXCJOb3J3ZWdlblwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiT3N0dGltb3JcIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YS1OZXVndWluZWFcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQaGlsaXBwaW5lblwiLFxuICAgIFwiUGl0Y2Fpcm5pbnNlbG5cIixcbiAgICBcIlBvbGVuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlLDqXVuaW9uXCIsXG4gICAgXCJSZXB1YmxpayBLb3JlYVwiLFxuICAgIFwiUmVwdWJsaWsgTW9sZGF1XCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlJ1bcOkbmllblwiLFxuICAgIFwiUnVzc2lzY2hlIEbDtmRlcmF0aW9uXCIsXG4gICAgXCJTw6NvIFRvbcOpIHVuZCBQcsOtbmNpcGVcIixcbiAgICBcIlPDvGRhZnJpa2FcIixcbiAgICBcIlPDvGRnZW9yZ2llbiB1bmQgU8O8ZGxpY2hlIFNhbmR3aWNoaW5zZWxuXCIsXG4gICAgXCJTYWxvbW9uZW5cIixcbiAgICBcIlNhbWJpYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNhdWRpLUFyYWJpZW5cIixcbiAgICBcIlNjaHdlZGVuXCIsXG4gICAgXCJTY2h3ZWl6XCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXljaGVsbGVuXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbWJhYndlXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU2xvd2FrZWlcIixcbiAgICBcIlNsb3dlbmllblwiLFxuICAgIFwiU29tYWxpZW5cIixcbiAgICBcIlNwYW5pZW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3QuIEhlbGVuYVwiLFxuICAgIFwiU3QuIEtpdHRzIHVuZCBOZXZpc1wiLFxuICAgIFwiU3QuIEx1Y2lhXCIsXG4gICAgXCJTdC4gUGllcnJlIHVuZCBNaXF1ZWxvblwiLFxuICAgIFwiU3QuIFZpbmNlbnQgdW5kIGRpZSBHcmVuYWRpbmVuXCIsXG4gICAgXCJTdWRhblwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3ZhbGJhcmQgdW5kIEphbiBNYXllblwiLFxuICAgIFwiU3dhc2lsYW5kXCIsXG4gICAgXCJTeXJpZW5cIixcbiAgICBcIlTDvHJrZWlcIixcbiAgICBcIlRhZHNjaGlraXN0YW5cIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiVGFuc2FuaWFcIixcbiAgICBcIlRoYWlsYW5kXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb2tlbGF1XCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJpbmlkYWQgdW5kIFRvYmFnb1wiLFxuICAgIFwiVHNjaGFkXCIsXG4gICAgXCJUc2NoZWNoaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIlR1bmVzaWVuXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1cmtzLSB1bmQgQ2FpY29zaW5zZWxuXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluZVwiLFxuICAgIFwiVW5nYXJuXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVc2Jla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWYXRpa2Fuc3RhZHRcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVyZWluaWd0ZSBBcmFiaXNjaGUgRW1pcmF0ZVwiLFxuICAgIFwiVmVyZWluaWd0ZSBTdGFhdGVuXCIsXG4gICAgXCJWZXJlaW5pZ3RlcyBLw7ZuaWdyZWljaFwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiV2FsbGlzIHVuZCBGdXR1bmFcIixcbiAgICBcIldlaWhuYWNodHNpbnNlbFwiLFxuICAgIFwiV2VzdHNhaGFyYVwiLFxuICAgIFwiWmVudHJhbGFmcmlrYW5pc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiWnlwZXJuXCJcbiAgXSxcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJBaG9yblwiLFxuICAgIFwiQWhvcm5nYXNzZSAoU3QuIEFuZHLDpClcIixcbiAgICBcIkFsbGVlc3RyYcOfZSAoUG95c2JydW5uKVwiLFxuICAgIFwiQWxwZW5sYW5kc3RyYcOfZVwiLFxuICAgIFwiQWx0ZSBQb3N0c3RyYcOfZVwiLFxuICAgIFwiQWx0ZSBVZmVyZ2Fzc2VcIixcbiAgICBcIkFtIEtyb25hd2V0dCAoSGFnZW5icnVubilcIixcbiAgICBcIkFtIE3DvGhsd2Fzc2VyXCIsXG4gICAgXCJBbSBSZWJlbmhhbmdcIixcbiAgICBcIkFtIFN0ZXJud2VnXCIsXG4gICAgXCJBbnRvbiBXaWxkZ2Fucy1TdHJhw59lXCIsXG4gICAgXCJBdWVyLXZvbi1XZWxzYmFjaC1XZWdcIixcbiAgICBcIkF1ZiBkZXIgU3RpZnRcIixcbiAgICBcIkF1ZmVsZGdhc3NlXCIsXG4gICAgXCJCYWhuZ2Fzc2VcIixcbiAgICBcIkJhaG5ob2ZzdHJhw59lXCIsXG4gICAgXCJCYWhuc3RyYcOfZSAoR2VyaGF1cylcIixcbiAgICBcIkJhc3RlaWdhc3NlXCIsXG4gICAgXCJCZXJnZ2Fzc2VcIixcbiAgICBcIkJlcmdzdHJhw59lXCIsXG4gICAgXCJCaXJrZW53ZWdcIixcbiAgICBcIkJsYXNpdXNzdGVpZ1wiLFxuICAgIFwiQmxhdHR1clwiLFxuICAgIFwiQnJ1ZGVyaG9mZ2Fzc2VcIixcbiAgICBcIkJydW5uZWxsaWdhc3NlXCIsXG4gICAgXCJCw7xoZWx3ZWdcIixcbiAgICBcIkRhcm5hdXRnYXNzZVwiLFxuICAgIFwiRG9uYXVnYXNzZVwiLFxuICAgIFwiRG9yZnBsYXR6IChIYXNlbGJhY2gpXCIsXG4gICAgXCJEci4tT2JlcnJlaXRlci1TdHJhw59lXCIsXG4gICAgXCJEci5LYXJsIEhvbG91YmVrLVN0ci5cIixcbiAgICBcIkRyYXV0YWwgQnVuZGVzc3RyYcOfZVwiLFxuICAgIFwiRMO8cm5yb2hyZXIgU3RyYcOfZVwiLFxuICAgIFwiRWJlbnRoYWxlcnN0cmHDn2VcIixcbiAgICBcIkVja2dyYWJlbndlZ1wiLFxuICAgIFwiRXJsZW5zdHJhw59lXCIsXG4gICAgXCJFcmxlbndlZ1wiLFxuICAgIFwiRXNjaGVud2VnXCIsXG4gICAgXCJFdHJpY2hnYXNzZVwiLFxuICAgIFwiRmFzc2VyZ2Fzc2VcIixcbiAgICBcIkZlaWNodGVnZ2Vyd2llc2VcIixcbiAgICBcIkZlbGQtV2VnXCIsXG4gICAgXCJGZWxkZ2Fzc2VcIixcbiAgICBcIkZlbGRzdGFwZmVcIixcbiAgICBcIkZpc2NocG9pbnR3ZWdcIixcbiAgICBcIkZsYWNoYmVyZ3N0cmHDn2VcIixcbiAgICBcIkZsdXJ3ZWdcIixcbiAgICBcIkZyYW56IFNjaHViZXJ0LUdhc3NlXCIsXG4gICAgXCJGcmFuei1TY2huZWV3ZWnDny1XZWdcIixcbiAgICBcIkZyYW56LXZvbi1Bc3Npc2ktU3RyYcOfZVwiLFxuICAgIFwiRnJpdHotUHJlZ2wtU3RyYcOfZVwiLFxuICAgIFwiRnVjaHNncnViZW53ZWdcIixcbiAgICBcIkbDtmRsZXJ3ZWdcIixcbiAgICBcIkbDtmhyZW53ZWdcIixcbiAgICBcIkbDvG5maGF1cyAoUGFhc2RvcmYpXCIsXG4gICAgXCJHYWJlbHNiZXJnZXJzdHJhw59lXCIsXG4gICAgXCJHYXJ0ZW5zdHJhw59lXCIsXG4gICAgXCJHZWlnZW5cIixcbiAgICBcIkdlaWdlcmdhc3NlXCIsXG4gICAgXCJHZW1laW5kZWF1Z2Fzc2VcIixcbiAgICBcIkdlbWVpbmRlcGxhdHpcIixcbiAgICBcIkdlb3JnLUFpY2hpbmdlci1TdHJhw59lXCIsXG4gICAgXCJHbGFuZmVsZGJhY2h3ZWdcIixcbiAgICBcIkdyYWJlbiAoQnVyZ2F1YmVyZylcIixcbiAgICBcIkdydWJcIixcbiAgICBcIkdyw7ZyZXRnYXNzZVwiLFxuICAgIFwiR3LDvG5iYWNoXCIsXG4gICAgXCJHw7ZzdGluZ1wiLFxuICAgIFwiSGFpbnNjaHdhbmdcIixcbiAgICBcIkhhbnMtTWF1cmFjaGVyLVN0cmHDn2VcIixcbiAgICBcIkhhcnRcIixcbiAgICBcIlRlaWNoc3RyYcOfZVwiLFxuICAgIFwiSGF1cHRwbGF0elwiLFxuICAgIFwiSGF1cHRzdHJhw59lXCIsXG4gICAgXCJIZWlkZXdlZ1wiLFxuICAgIFwiSGVpbnJpY2ggTGFuZGF1ZXIgR2Fzc2VcIixcbiAgICBcIkhlbGVuZW5nYXNzZVwiLFxuICAgIFwiSGVybWFubiB2b24gR2lsbXdlZ1wiLFxuICAgIFwiSGVybWFubi1Mw7Zucy1HYXNzZVwiLFxuICAgIFwiSGVybWluZW5nYXNzZVwiLFxuICAgIFwiSGVybnN0b3JmZXJzdHJhw59lXCIsXG4gICAgXCJIaXJzZG9yZlwiLFxuICAgIFwiSG9jaGZlaXN0cml0elwiLFxuICAgIFwiSG9jaGhhdXMgTmV1ZSBEb25hdVwiLFxuICAgIFwiSG9mXCIsXG4gICAgXCJIdXNzb3ZpdHMgR2Fzc2VcIixcbiAgICBcIkjDtmdnZW5cIixcbiAgICBcIkjDvHR0ZW5cIixcbiAgICBcIkphbnpnYXNzZVwiLFxuICAgIFwiSm9jaHJpZW1ndXRzdHJhw59lXCIsXG4gICAgXCJKb2hhbm4tU3RyYXXDny1HYXNzZVwiLFxuICAgIFwiSnVsaXVzLVJhYWItU3RyYcOfZVwiLFxuICAgIFwiS2FobGVuYmVyZ2VyIFN0cmHDn2VcIixcbiAgICBcIkthcmwgS3JhZnQtU3RyYcOfZVwiLFxuICAgIFwiS2VnZWxwcmllbHN0cmHDn2VcIixcbiAgICBcIktlbHRlbmJlcmctRXBvbmF3ZWdcIixcbiAgICBcIktlbm5lZHlicsO8Y2tlXCIsXG4gICAgXCJLZXJwZWx5c3RyYcOfZVwiLFxuICAgIFwiS2luZGVyZ2FydGVuc3RyYcOfZVwiLFxuICAgIFwiS2luZGVyaGVpbWdhc3NlXCIsXG4gICAgXCJLaXJjaGVucGxhdHpcIixcbiAgICBcIktpcmNod2VnXCIsXG4gICAgXCJLbGFnZW5mdXJ0ZXIgU3RyYcOfZVwiLFxuICAgIFwiS2xhbW1cIixcbiAgICBcIktsZWluYmF1bWdhcnRlblwiLFxuICAgIFwiS2xpbmdlcmdhc3NlXCIsXG4gICAgXCJLb2xvbmllc3RyYcOfZVwiLFxuICAgIFwiS29ucmFkLUR1ZGVuLUdhc3NlXCIsXG4gICAgXCJLcmFua2VuaGF1c3N0cmHDn2VcIixcbiAgICBcIkt1Ymluc3RyYcOfZVwiLFxuICAgIFwiS8O2aGxkb3JmZXJnYXNzZVwiLFxuICAgIFwiTGFja2Vud2VnXCIsXG4gICAgXCJMYW5nZSBNZWtvdHRlXCIsXG4gICAgXCJMZWlmbGluZ1wiLFxuICAgIFwiTGVvcG9sZCBGcmFuay1TdHJhw59lIChQZWxsZW5kb3JmKVwiLFxuICAgIFwiTGVyY2hlbmdhc3NlIChQaXJrYSlcIixcbiAgICBcIkxpY2h0ZW5zdGVybnNpZWRsdW5nIFZcIixcbiAgICBcIkxpbmRlbmhvZnN0cmHDn2VcIixcbiAgICBcIkxpbmRlbndlZ1wiLFxuICAgIFwiTHVlZ3N0cmHDn2VcIixcbiAgICBcIk1haWVyaG9mXCIsXG4gICAgXCJNYWxlcndlZ1wiLFxuICAgIFwiTWl0dGVyd2VnXCIsXG4gICAgXCJNaXR0bGVyZSBIYXVwdHN0cmHDn2VcIixcbiAgICBcIk1vb3NiYWNoZ2Fzc2VcIixcbiAgICBcIk1vcmV0dGlnYXNzZVwiLFxuICAgIFwiTXVzaWtwYXZpbGxvbiBSaWV6bGVyblwiLFxuICAgIFwiTcO8aGxib2RlblwiLFxuICAgIFwiTcO8aGxlXCIsXG4gICAgXCJNw7xobGVud2VnXCIsXG4gICAgXCJOZXVzdGlmdGdhc3NlXCIsXG4gICAgXCJOaWVkZXJlZ2dcIixcbiAgICBcIk5pZWRlcmdhbXNcIixcbiAgICBcIk5vcmR3ZXN0YmFobmJyw7xja2VcIixcbiAgICBcIk9iZXJiw7ZkZW5hbG1cIixcbiAgICBcIk9iZXJlIEJlcmdnYXNzZVwiLFxuICAgIFwiT2VkdFwiLFxuICAgIFwiQW0gRsOkcmJlcmJlcmdcIixcbiAgICBcIk90dG9nYXNzZVwiLFxuICAgIFwiUGF1bCBQZXRlcnMtR2Fzc2VcIixcbiAgICBcIlBlcnNwZWt0aXZzdHJhw59lXCIsXG4gICAgXCJQb3BwaWNobFwiLFxuICAgIFwiUHJpdmF0d2VnXCIsXG4gICAgXCJQcml4Z2Fzc2VcIixcbiAgICBcIlB5aHJhXCIsXG4gICAgXCJSYWRldHpreXN0cmHDn2VcIixcbiAgICBcIlJhaWRlblwiLFxuICAgIFwiUmVpY2hlbnN0ZWluc3RyYcOfZVwiLFxuICAgIFwiUmVpdGJhdWVybnN0cmHDn2VcIixcbiAgICBcIlJlaXRlcndlZ1wiLFxuICAgIFwiUmVpdHNjaHVsZ2Fzc2VcIixcbiAgICBcIlJpbmd3ZWdcIixcbiAgICBcIlJ1cGVydGlzdHJhw59lXCIsXG4gICAgXCJSw7ZtZXJzdHJhw59lXCIsXG4gICAgXCJSw7ZtZXJ3ZWdcIixcbiAgICBcIlNhY2tnYXNzZVwiLFxuICAgIFwiU2NoYXVuYmVyZ2Vyc3RyYcOfZVwiLFxuICAgIFwiU2NobG/Dn3dlZ1wiLFxuICAgIFwiU2NodWxnYXNzZSAoTGFuZ2VjaylcIixcbiAgICBcIlNjaMO2bmhvbGRzaWVkbHVuZ1wiLFxuICAgIFwiU2VlYmxpY2tcIixcbiAgICBcIlNlZXN0cmHDn2VcIixcbiAgICBcIlNlbXJpYWNoZXJzdHJhw59lXCIsXG4gICAgXCJTaW1saW5nXCIsXG4gICAgXCJTaXBiYWNoemVsbGVyIFN0cmHDn2VcIixcbiAgICBcIlNvbm5lbndlZ1wiLFxuICAgIFwiU3BhcmdlbGZlbGRnYXNzZVwiLFxuICAgIFwiU3BpZXNtYXlyd2VnXCIsXG4gICAgXCJTcG9ydHBsYXR6c3RyYcOfZVwiLFxuICAgIFwiU3QuVWxyaWNoXCIsXG4gICAgXCJTdGVpbG1hbm5zdHJhw59lXCIsXG4gICAgXCJTdGVpbmdyw7xuZXJlZHRcIixcbiAgICBcIlN0cmFzc2ZlbGRcIixcbiAgICBcIlN0cmHDn2VyYXVcIixcbiAgICBcIlN0w7ZwZmx3ZWdcIixcbiAgICBcIlN0w7xyYVwiLFxuICAgIFwiVGFmZXJuZ2Fzc2VcIixcbiAgICBcIlRlbm53ZWdcIixcbiAgICBcIlRob21hcyBLb3NjaGF0LUdhc3NlXCIsXG4gICAgXCJUaXJvbGVyIFN0cmHDn2VcIixcbiAgICBcIlRvcnJvZ2Fzc2VcIixcbiAgICBcIlVmZXJzdHJhw59lIChTY2h3YXJ6YXUgYW0gU3RlaW5mZWxkKVwiLFxuICAgIFwiVW50ZXJkw7ZyZmxcIixcbiAgICBcIlVudGVyZXIgU29ubnJhaW53ZWdcIixcbiAgICBcIlZlcndhbHRlcnNpZWRsdW5nXCIsXG4gICAgXCJXYWxkaGFuZ1wiLFxuICAgIFwiV2FzZW5cIixcbiAgICBcIldlaWRlbnN0cmHDn2VcIixcbiAgICBcIldlaWhlcndlZ1wiLFxuICAgIFwiV2V0dHN0ZWluZ2Fzc2VcIixcbiAgICBcIldpZW5lciBTdHJhw59lXCIsXG4gICAgXCJXaW5kaXNjaFwiLFxuICAgIFwiWmVicmFnYXNzZVwiLFxuICAgIFwiWmVsbGVyc3RyYcOfZVwiLFxuICAgIFwiWmllaHJlcnN0cmHDn2VcIixcbiAgICBcIlp1bGVjaG5lcndlZ1wiLFxuICAgIFwiWndlcmdqb2NoXCIsXG4gICAgXCLDlnR6YnJ1Y2tcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCIsXG4gICAgXCIjI2FcIixcbiAgICBcIiMjYlwiLFxuICAgIFwiIyNjXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHQuICMjI1wiLFxuICAgIFwiWmltbWVyICMjI1wiLFxuICAgIFwiIyBPR1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQnVyZ2VubGFuZFwiLFxuICAgIFwiS8Okcm50ZW5cIixcbiAgICBcIk5pZWRlcsO2c3RlcnJlaWNoXCIsXG4gICAgXCJPYmVyw7ZzdGVycmVpY2hcIixcbiAgICBcIlNhbHpidXJnXCIsXG4gICAgXCJTdGVpZXJtYXJrXCIsXG4gICAgXCJUaXJvbFwiLFxuICAgIFwiVm9yYXJsYmVyZ1wiLFxuICAgIFwiV2llblwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJCZ2xkLlwiLFxuICAgIFwiS3RuLlwiLFxuICAgIFwiTsOWXCIsXG4gICAgXCJPw5ZcIixcbiAgICBcIlNiZy5cIixcbiAgICBcIlN0bWsuXCIsXG4gICAgXCJUXCIsXG4gICAgXCJWYmcuXCIsXG4gICAgXCJXXCJcbiAgXSxcbiAgXCJjaXR5X25hbWVcIjogW1xuICAgIFwiQWlnZW4gaW0gTcO8aGxrcmVpc1wiLFxuICAgIFwiQWxsZXJoZWlsaWdlbiBiZWkgV2lsZG9uXCIsXG4gICAgXCJBbHRlbmZlbGRlblwiLFxuICAgIFwiQXJyaWFjaFwiLFxuICAgIFwiQXhhbXNcIixcbiAgICBcIkJhdW1nYXJ0ZW5iZXJnXCIsXG4gICAgXCJCZXJnZXJuIGltIER1bmtlbHN0ZWluZXJ3YWxkXCIsXG4gICAgXCJCZXJuZG9yZiBiZWkgU2FsemJ1cmdcIixcbiAgICBcIkJyZWdlbnpcIixcbiAgICBcIkJyZWl0ZW5iYWNoIGFtIElublwiLFxuICAgIFwiRGV1dHNjaC1XYWdyYW1cIixcbiAgICBcIkRpZW50ZW4gYW0gSG9jaGvDtm5pZ1wiLFxuICAgIFwiRGlldGFjaFwiLFxuICAgIFwiRG9ybmJpcm5cIixcbiAgICBcIkTDvHJua3J1dFwiLFxuICAgIFwiRWJlbiBpbSBQb25nYXVcIixcbiAgICBcIkViZW50aGFsIGluIEvDpHJudGVuXCIsXG4gICAgXCJFaWNoZ3JhYmVuXCIsXG4gICAgXCJFaXNlbnN0YWR0XCIsXG4gICAgXCJFbGxtYXVcIixcbiAgICBcIkZlaXN0cml0eiBhbSBXZWNoc2VsXCIsXG4gICAgXCJGaW5rZW5iZXJnXCIsXG4gICAgXCJGaXNzXCIsXG4gICAgXCJGcmFudHNjaGFjaC1TdC4gR2VydHJhdWRcIixcbiAgICBcIkZyaXR6ZW5zXCIsXG4gICAgXCJHYW1zIGJlaSBIaWVmbGF1XCIsXG4gICAgXCJHZWllcnNiZXJnXCIsXG4gICAgXCJHcmF6XCIsXG4gICAgXCJHcm/Dn2jDtmZsZWluXCIsXG4gICAgXCJHw7bDn25pdHpcIixcbiAgICBcIkhhcnRsXCIsXG4gICAgXCJIYXVzbGVpdGVuXCIsXG4gICAgXCJIZXJ6b2dlbmJ1cmdcIixcbiAgICBcIkhpbnRlcmhvcm5iYWNoXCIsXG4gICAgXCJIb2Nod29sa2Vyc2RvcmZcIixcbiAgICBcIklselwiLFxuICAgIFwiSWx6dGFsXCIsXG4gICAgXCJJbm5lcmJyYXpcIixcbiAgICBcIklubnNicnVja1wiLFxuICAgIFwiSXR0ZXJcIixcbiAgICBcIkphZ2VyYmVyZ1wiLFxuICAgIFwiSmVnaW5nXCIsXG4gICAgXCJKb2huc2JhY2hcIixcbiAgICBcIkpvaG5zZG9yZi1CcnVublwiLFxuICAgIFwiSnVuZ2hvbHpcIixcbiAgICBcIktpcmNoZG9yZiBhbSBJbm5cIixcbiAgICBcIktsYWdlbmZ1cnRcIixcbiAgICBcIktvdHRlcy1QdXJrXCIsXG4gICAgXCJLcnVtYXUgYW0gS2FtcFwiLFxuICAgIFwiS3J1bWJhY2hcIixcbiAgICBcIkxhdmFtw7xuZFwiLFxuICAgIFwiTGVjaFwiLFxuICAgIFwiTGluelwiLFxuICAgIFwiTHVkZXNjaFwiLFxuICAgIFwiTMO2ZGVyc2RvcmZcIixcbiAgICBcIk1hcmJhY2ggYW4gZGVyIERvbmF1XCIsXG4gICAgXCJNYXR0c2VlXCIsXG4gICAgXCJNYXV0ZXJuIGFuIGRlciBEb25hdVwiLFxuICAgIFwiTWF1dGVybmRvcmZcIixcbiAgICBcIk1pdHRlcmJhY2ggYW0gRXJsYXVmc2VlXCIsXG4gICAgXCJOZXVkb3JmIGJlaSBQYXNzYWlsXCIsXG4gICAgXCJOZXVkb3JmIGJlaSBTdGFhdHpcIixcbiAgICBcIk5ldWtpcmNoZW4gYW4gZGVyIEVua25hY2hcIixcbiAgICBcIk5ldXN0aWZ0IGFuIGRlciBMYWZuaXR6XCIsXG4gICAgXCJOaWVkZXJsZWlzXCIsXG4gICAgXCJPYmVybmRvcmYgaW4gVGlyb2xcIixcbiAgICBcIk9iZXJzdG9yY2hhXCIsXG4gICAgXCJPYmVyd2FsdGVyc2RvcmZcIixcbiAgICBcIk9lZC1PZWhsaW5nXCIsXG4gICAgXCJPcnQgaW0gSW5ua3JlaXNcIixcbiAgICBcIlBpbGdlcnNkb3JmXCIsXG4gICAgXCJQaXRzY2hnYXVcIixcbiAgICBcIlBvbGxoYW1cIixcbiAgICBcIlByZWl0ZW5lZ2dcIixcbiAgICBcIlB1cmJhY2ggYW0gTmV1c2llZGxlciBTZWVcIixcbiAgICBcIlJhYmVud2FsZFwiLFxuICAgIFwiUmFpZGluZ1wiLFxuICAgIFwiUmFzdGVuZmVsZFwiLFxuICAgIFwiUmF0dGVuXCIsXG4gICAgXCJSZXR0ZW5lZ2dcIixcbiAgICBcIlNhbHpidXJnXCIsXG4gICAgXCJTYW5rdCBKb2hhbm4gaW0gU2FnZ2F1dGFsXCIsXG4gICAgXCJTdC4gUGV0ZXIgYW0gS2FtbWVyc2JlcmdcIixcbiAgICBcIlN0LiBQw7ZsdGVuXCIsXG4gICAgXCJTdC4gVmVpdCBhbiBkZXIgR2xhblwiLFxuICAgIFwiVGF4ZW5iYWNoXCIsXG4gICAgXCJUcmFnd2VpblwiLFxuICAgIFwiVHJlYmVzaW5nXCIsXG4gICAgXCJUcmllYmVuXCIsXG4gICAgXCJUdXJuYXVcIixcbiAgICBcIlVuZ2VyZG9yZlwiLFxuICAgIFwiVW50ZXJhdWVyc2JhY2hcIixcbiAgICBcIlVudGVyc3RpbmtlbmJydW5uXCIsXG4gICAgXCJVbnRlcnRpbGxpYWNoXCIsXG4gICAgXCJVdHRlbmRvcmZcIixcbiAgICBcIlZhbHNcIixcbiAgICBcIlZlbGRlbiBhbSBXw7ZydGhlciBTZWVcIixcbiAgICBcIlZpZWhob2ZlblwiLFxuICAgIFwiVmlsbGFjaFwiLFxuICAgIFwiVml0aXNcIixcbiAgICBcIldhaWRob2ZlbiBhbiBkZXIgVGhheWFcIixcbiAgICBcIldhbGRraXJjaGVuIGFtIFdlc2VuXCIsXG4gICAgXCJXZWnDn2tpcmNoZW4gYW4gZGVyIFRyYXVuXCIsXG4gICAgXCJXaWVuXCIsXG4gICAgXCJXaW1wYXNzaW5nIGltIFNjaHdhcnphdGFsZVwiLFxuICAgIFwiWWJicyBhbiBkZXIgRG9uYXVcIixcbiAgICBcIlliYnNpdHpcIixcbiAgICBcIllzcGVydGFsXCIsXG4gICAgXCJaZWlsbGVyblwiLFxuICAgIFwiWmVsbCBhbSBQZXR0ZW5maXJzdFwiLFxuICAgIFwiWmVsbCBhbiBkZXIgUHJhbVwiLFxuICAgIFwiWmVybGFjaFwiLFxuICAgIFwiWnfDtmxmYXhpbmdcIixcbiAgICBcIsOWYmxhcm5cIixcbiAgICBcIsOcYmVsYmFjaFwiLFxuICAgIFwiw5xiZXJhY2tlcm5cIixcbiAgICBcIsOcYmVyc2F4ZW5cIixcbiAgICBcIsOcYmVyc2JhY2hcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X25hbWV9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiw5ZzdGVycmVpY2hcIlxuICBdXG59O1xuZGVfQVQuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiR21iSFwiLFxuICAgIFwiQUdcIixcbiAgICBcIkdydXBwZVwiLFxuICAgIFwiS0dcIixcbiAgICBcIkdtYkggJiBDby4gS0dcIixcbiAgICBcIlVHXCIsXG4gICAgXCJPSEdcIlxuICBdLFxuICBcImxlZ2FsX2Zvcm1cIjogW1xuICAgIFwiR21iSFwiLFxuICAgIFwiQUdcIixcbiAgICBcIkdydXBwZVwiLFxuICAgIFwiS0dcIixcbiAgICBcIkdtYkggJiBDby4gS0dcIixcbiAgICBcIlVHXCIsXG4gICAgXCJPSEdcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IHVuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZV9BVC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCIsXG4gICAgXCJkZVwiLFxuICAgIFwiY2hcIixcbiAgICBcImF0XCJcbiAgXVxufTtcbmRlX0FULm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBYXJvblwiLFxuICAgIFwiQWJkdWxcIixcbiAgICBcIkFiZHVsbGFoXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCJBZHJpYW5cIixcbiAgICBcIkFkcmlhbm9cIixcbiAgICBcIkFobWFkXCIsXG4gICAgXCJBaG1lZFwiLFxuICAgIFwiQWhtZXRcIixcbiAgICBcIkFsYW5cIixcbiAgICBcIkFsYmVydFwiLFxuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxlc3Npb1wiLFxuICAgIFwiQWxleFwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGZyZWRcIixcbiAgICBcIkFsaVwiLFxuICAgIFwiQW1hclwiLFxuICAgIFwiQW1pclwiLFxuICAgIFwiQW1vblwiLFxuICAgIFwiQW5kcmVcIixcbiAgICBcIkFuZHJlYXNcIixcbiAgICBcIkFuZHJld1wiLFxuICAgIFwiQW5nZWxvXCIsXG4gICAgXCJBbnNnYXJcIixcbiAgICBcIkFudGhvbnlcIixcbiAgICBcIkFudG9uXCIsXG4gICAgXCJBbnRvbmlvXCIsXG4gICAgXCJBcmRhXCIsXG4gICAgXCJBcmlhblwiLFxuICAgIFwiQXJtaW5cIixcbiAgICBcIkFybmVcIixcbiAgICBcIkFybm9cIixcbiAgICBcIkFydGh1clwiLFxuICAgIFwiQXJ0dXJcIixcbiAgICBcIkFydmVkXCIsXG4gICAgXCJBcnZpZFwiLFxuICAgIFwiQXltYW5cIixcbiAgICBcIkJhcmFuXCIsXG4gICAgXCJCYXJpc1wiLFxuICAgIFwiQmFzdGlhblwiLFxuICAgIFwiQmF0dWhhblwiLFxuICAgIFwiQmVsYVwiLFxuICAgIFwiQmVuXCIsXG4gICAgXCJCZW5lZGlrdFwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIkJlbm5ldFwiLFxuICAgIFwiQmVubmV0dFwiLFxuICAgIFwiQmVubm9cIixcbiAgICBcIkJlbnRcIixcbiAgICBcIkJlcmF0XCIsXG4gICAgXCJCZXJrYXlcIixcbiAgICBcIkJlcm5kXCIsXG4gICAgXCJCaWxhbFwiLFxuICAgIFwiQmphcm5lXCIsXG4gICAgXCJCasO2cm5cIixcbiAgICBcIkJvXCIsXG4gICAgXCJCb3Jpc1wiLFxuICAgIFwiQnJhbmRvblwiLFxuICAgIFwiQnJpYW5cIixcbiAgICBcIkJydW5vXCIsXG4gICAgXCJCcnlhblwiLFxuICAgIFwiQnVyYWtcIixcbiAgICBcIkNhbHZpblwiLFxuICAgIFwiQ2FuXCIsXG4gICAgXCJDYXJsXCIsXG4gICAgXCJDYXJsb1wiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDYXNwYXJcIixcbiAgICBcIkNlZHJpY1wiLFxuICAgIFwiQ2VkcmlrXCIsXG4gICAgXCJDZW1cIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIkNocmlzXCIsXG4gICAgXCJDaHJpc3RpYW5cIixcbiAgICBcIkNocmlzdGlhbm9cIixcbiAgICBcIkNocmlzdG9waFwiLFxuICAgIFwiQ2hyaXN0b3BoZXJcIixcbiAgICBcIkNsYWFzXCIsXG4gICAgXCJDbGVtZW5zXCIsXG4gICAgXCJDb2xpblwiLFxuICAgIFwiQ29sbGluXCIsXG4gICAgXCJDb25uZXJcIixcbiAgICBcIkNvbm5vclwiLFxuICAgIFwiQ29uc3RhbnRpblwiLFxuICAgIFwiQ29ydmluXCIsXG4gICAgXCJDdXJ0XCIsXG4gICAgXCJEYW1pYW5cIixcbiAgICBcIkRhbWllblwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJEYW5pbG9cIixcbiAgICBcIkRhbm55XCIsXG4gICAgXCJEYXJpYW5cIixcbiAgICBcIkRhcmlvXCIsXG4gICAgXCJEYXJpdXNcIixcbiAgICBcIkRhcnJlblwiLFxuICAgIFwiRGF2aWRcIixcbiAgICBcIkRhdmlkZVwiLFxuICAgIFwiRGF2aW5cIixcbiAgICBcIkRlYW5cIixcbiAgICBcIkRlbml6XCIsXG4gICAgXCJEZW5uaXNcIixcbiAgICBcIkRlbm55XCIsXG4gICAgXCJEZXZpblwiLFxuICAgIFwiRGllZ29cIixcbiAgICBcIkRpb25cIixcbiAgICBcIkRvbWVuaWNcIixcbiAgICBcIkRvbWVuaWtcIixcbiAgICBcIkRvbWluaWNcIixcbiAgICBcIkRvbWluaWtcIixcbiAgICBcIkRvcmlhblwiLFxuICAgIFwiRHVzdGluXCIsXG4gICAgXCJEeWxhblwiLFxuICAgIFwiRWNyaW5cIixcbiAgICBcIkVkZGlcIixcbiAgICBcIkVkZHlcIixcbiAgICBcIkVkZ2FyXCIsXG4gICAgXCJFZHdpblwiLFxuICAgIFwiRWZlXCIsXG4gICAgXCJFZ2VcIixcbiAgICBcIkVsaWFcIixcbiAgICBcIkVsaWFoXCIsXG4gICAgXCJFbGlhc1wiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJFbWFudWVsXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJFbWlsaWFuXCIsXG4gICAgXCJFbWlsaW9cIixcbiAgICBcIkVtaXJcIixcbiAgICBcIkVtaXJoYW5cIixcbiAgICBcIkVtcmVcIixcbiAgICBcIkVuZXNcIixcbiAgICBcIkVubm9cIixcbiAgICBcIkVucmljb1wiLFxuICAgIFwiRXJlblwiLFxuICAgIFwiRXJpY1wiLFxuICAgIFwiRXJpa1wiLFxuICAgIFwiRXRpZW5uZVwiLFxuICAgIFwiRmFiaWFuXCIsXG4gICAgXCJGYWJpZW5cIixcbiAgICBcIkZhYmlvXCIsXG4gICAgXCJGYWJyaWNlXCIsXG4gICAgXCJGYWxrXCIsXG4gICAgXCJGZWxpeFwiLFxuICAgIFwiRmVyZGluYW5kXCIsXG4gICAgXCJGaWV0ZVwiLFxuICAgIFwiRmlsaXBcIixcbiAgICBcIkZpbmxheVwiLFxuICAgIFwiRmlubGV5XCIsXG4gICAgXCJGaW5uXCIsXG4gICAgXCJGaW5ubGV5XCIsXG4gICAgXCJGbG9yaWFuXCIsXG4gICAgXCJGcmFuY2VzY29cIixcbiAgICBcIkZyYW56XCIsXG4gICAgXCJGcmVkZXJpY1wiLFxuICAgIFwiRnJlZGVyaWNrXCIsXG4gICAgXCJGcmVkZXJpa1wiLFxuICAgIFwiRnJpZWRyaWNoXCIsXG4gICAgXCJGcml0elwiLFxuICAgIFwiRnVya2FuXCIsXG4gICAgXCJGeW5uXCIsXG4gICAgXCJHYWJyaWVsXCIsXG4gICAgXCJHZW9yZ1wiLFxuICAgIFwiR2Vycml0XCIsXG4gICAgXCJHaWFuXCIsXG4gICAgXCJHaWFubHVjYVwiLFxuICAgIFwiR2lub1wiLFxuICAgIFwiR2l1bGlhbm9cIixcbiAgICBcIkdpdXNlcHBlXCIsXG4gICAgXCJHcmVnb3JcIixcbiAgICBcIkd1c3RhdlwiLFxuICAgIFwiSGFnZW5cIixcbiAgICBcIkhhbXphXCIsXG4gICAgXCJIYW5uZXNcIixcbiAgICBcIkhhbm5vXCIsXG4gICAgXCJIYW5zXCIsXG4gICAgXCJIYXNhblwiLFxuICAgIFwiSGFzc2FuXCIsXG4gICAgXCJIYXVrZVwiLFxuICAgIFwiSGVuZHJpa1wiLFxuICAgIFwiSGVubmVzXCIsXG4gICAgXCJIZW5uaW5nXCIsXG4gICAgXCJIZW5yaVwiLFxuICAgIFwiSGVucmlja1wiLFxuICAgIFwiSGVucmlrXCIsXG4gICAgXCJIZW5yeVwiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiSHVzc2VpblwiLFxuICAgIFwiSWFuXCIsXG4gICAgXCJJYnJhaGltXCIsXG4gICAgXCJJbGlhc1wiLFxuICAgIFwiSWxqYVwiLFxuICAgIFwiSWx5YXNcIixcbiAgICBcIkltbWFudWVsXCIsXG4gICAgXCJJc21hZWxcIixcbiAgICBcIklzbWFpbFwiLFxuICAgIFwiSXZhblwiLFxuICAgIFwiSXZlblwiLFxuICAgIFwiSmFja1wiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkphZGVuXCIsXG4gICAgXCJKYWtvYlwiLFxuICAgIFwiSmFtYWxcIixcbiAgICBcIkphbWVzXCIsXG4gICAgXCJKYW1pZVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYW5la1wiLFxuICAgIFwiSmFuaXNcIixcbiAgICBcIkphbm5lXCIsXG4gICAgXCJKYW5uZWtcIixcbiAgICBcIkphbm5lc1wiLFxuICAgIFwiSmFubmlrXCIsXG4gICAgXCJKYW5uaXNcIixcbiAgICBcIkphbm9cIixcbiAgICBcIkphbm9zY2hcIixcbiAgICBcIkphcmVkXCIsXG4gICAgXCJKYXJpXCIsXG4gICAgXCJKYXJuZVwiLFxuICAgIFwiSmFybm9cIixcbiAgICBcIkphcm9uXCIsXG4gICAgXCJKYXNvblwiLFxuICAgIFwiSmFzcGVyXCIsXG4gICAgXCJKYXlcIixcbiAgICBcIkpheWRlblwiLFxuICAgIFwiSmF5c29uXCIsXG4gICAgXCJKZWFuXCIsXG4gICAgXCJKZW5zXCIsXG4gICAgXCJKZXJlbWlhc1wiLFxuICAgIFwiSmVyZW1pZVwiLFxuICAgIFwiSmVyZW15XCIsXG4gICAgXCJKZXJtYWluZVwiLFxuICAgIFwiSmVyb21lXCIsXG4gICAgXCJKZXNwZXJcIixcbiAgICBcIkplc3NlXCIsXG4gICAgXCJKaW1cIixcbiAgICBcIkppbW15XCIsXG4gICAgXCJKb2VcIixcbiAgICBcIkpvZWxcIixcbiAgICBcIkpvZXlcIixcbiAgICBcIkpvaGFublwiLFxuICAgIFwiSm9oYW5uZXNcIixcbiAgICBcIkpvaG5cIixcbiAgICBcIkpvaG5ueVwiLFxuICAgIFwiSm9uXCIsXG4gICAgXCJKb25hXCIsXG4gICAgXCJKb25haFwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkpvbmF0aGFuXCIsXG4gICAgXCJKb250ZVwiLFxuICAgIFwiSm9vc3RcIixcbiAgICBcIkpvcmRhblwiLFxuICAgIFwiSm9yaXNcIixcbiAgICBcIkpvc2NoYVwiLFxuICAgIFwiSm9zY2h1YVwiLFxuICAgIFwiSm9zZWZcIixcbiAgICBcIkpvc2VwaFwiLFxuICAgIFwiSm9zaFwiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJKb3N1YVwiLFxuICAgIFwiSnVhblwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJKdWxpZW5cIixcbiAgICBcIkp1bGl1c1wiLFxuICAgIFwiSnVyaVwiLFxuICAgIFwiSnVzdGluXCIsXG4gICAgXCJKdXN0dXNcIixcbiAgICBcIkthYW5cIixcbiAgICBcIkthaVwiLFxuICAgIFwiS2FsbGVcIixcbiAgICBcIkthcmltXCIsXG4gICAgXCJLYXJsXCIsXG4gICAgXCJLYXJsb1wiLFxuICAgIFwiS2F5XCIsXG4gICAgXCJLZWFudVwiLFxuICAgIFwiS2VuYW5cIixcbiAgICBcIktlbm55XCIsXG4gICAgXCJLZW5vXCIsXG4gICAgXCJLZXJlbVwiLFxuICAgIFwiS2VyaW1cIixcbiAgICBcIktldmluXCIsXG4gICAgXCJLaWFuXCIsXG4gICAgXCJLaWxpYW5cIixcbiAgICBcIktpbVwiLFxuICAgIFwiS2ltaVwiLFxuICAgIFwiS2plbGxcIixcbiAgICBcIktsYWFzXCIsXG4gICAgXCJLbGVtZW5zXCIsXG4gICAgXCJLb25yYWRcIixcbiAgICBcIktvbnN0YW50aW5cIixcbiAgICBcIktvcmF5XCIsXG4gICAgXCJLb3JiaW5pYW5cIixcbiAgICBcIkt1cnRcIixcbiAgICBcIkxhcnNcIixcbiAgICBcIkxhc3NlXCIsXG4gICAgXCJMYXVyZW5jZVwiLFxuICAgIFwiTGF1cmVuc1wiLFxuICAgIFwiTGF1cmVuelwiLFxuICAgIFwiTGF1cmluXCIsXG4gICAgXCJMZWFuXCIsXG4gICAgXCJMZWFuZGVyXCIsXG4gICAgXCJMZWFuZHJvXCIsXG4gICAgXCJMZWlmXCIsXG4gICAgXCJMZW5cIixcbiAgICBcIkxlbm5cIixcbiAgICBcIkxlbm5hcmRcIixcbiAgICBcIkxlbm5hcnRcIixcbiAgICBcIkxlbm5lcnRcIixcbiAgICBcIkxlbm5pZVwiLFxuICAgIFwiTGVubm94XCIsXG4gICAgXCJMZW5ueVwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJMZW9uXCIsXG4gICAgXCJMZW9uYXJkXCIsXG4gICAgXCJMZW9uYXJkb1wiLFxuICAgIFwiTGVvbmhhcmRcIixcbiAgICBcIkxlb25pZGFzXCIsXG4gICAgXCJMZW9wb2xkXCIsXG4gICAgXCJMZXJveVwiLFxuICAgIFwiTGV2ZW50XCIsXG4gICAgXCJMZXZpXCIsXG4gICAgXCJMZXZpblwiLFxuICAgIFwiTGV3aW5cIixcbiAgICBcIkxld2lzXCIsXG4gICAgXCJMaWFtXCIsXG4gICAgXCJMaWFuXCIsXG4gICAgXCJMaWFzXCIsXG4gICAgXCJMaW5vXCIsXG4gICAgXCJMaW51c1wiLFxuICAgIFwiTGlvXCIsXG4gICAgXCJMaW9uXCIsXG4gICAgXCJMaW9uZWxcIixcbiAgICBcIkxvZ2FuXCIsXG4gICAgXCJMb3JlbnpcIixcbiAgICBcIkxvcmVuem9cIixcbiAgICBcIkxvcmlzXCIsXG4gICAgXCJMb3Vpc1wiLFxuICAgIFwiTHVhblwiLFxuICAgIFwiTHVjXCIsXG4gICAgXCJMdWNhXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiTHVjaWFuXCIsXG4gICAgXCJMdWNpZW5cIixcbiAgICBcIkx1ZHdpZ1wiLFxuICAgIFwiTHVpc1wiLFxuICAgIFwiTHVpelwiLFxuICAgIFwiTHVrXCIsXG4gICAgXCJMdWthXCIsXG4gICAgXCJMdWthc1wiLFxuICAgIFwiTHVrZVwiLFxuICAgIFwiTHV0elwiLFxuICAgIFwiTWFkZG94XCIsXG4gICAgXCJNYWRzXCIsXG4gICAgXCJNYWdudXNcIixcbiAgICBcIk1haWtcIixcbiAgICBcIk1ha3NpbVwiLFxuICAgIFwiTWFsaWtcIixcbiAgICBcIk1hbHRlXCIsXG4gICAgXCJNYW51ZWxcIixcbiAgICBcIk1hcmNcIixcbiAgICBcIk1hcmNlbFwiLFxuICAgIFwiTWFyY29cIixcbiAgICBcIk1hcmN1c1wiLFxuICAgIFwiTWFyZWtcIixcbiAgICBcIk1hcmlhblwiLFxuICAgIFwiTWFyaW9cIixcbiAgICBcIk1hcml1c1wiLFxuICAgIFwiTWFya1wiLFxuICAgIFwiTWFya29cIixcbiAgICBcIk1hcmt1c1wiLFxuICAgIFwiTWFybG9cIixcbiAgICBcIk1hcmxvblwiLFxuICAgIFwiTWFydGVuXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIk1hcnZpblwiLFxuICAgIFwiTWFyd2luXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWF0aGlzXCIsXG4gICAgXCJNYXRpc1wiLFxuICAgIFwiTWF0c1wiLFxuICAgIFwiTWF0dGVvXCIsXG4gICAgXCJNYXR0ZXNcIixcbiAgICBcIk1hdHRoaWFzXCIsXG4gICAgXCJNYXR0aGlzXCIsXG4gICAgXCJNYXR0aVwiLFxuICAgIFwiTWF0dGlzXCIsXG4gICAgXCJNYXVyaWNlXCIsXG4gICAgXCJNYXhcIixcbiAgICBcIk1heGltXCIsXG4gICAgXCJNYXhpbWlsaWFuXCIsXG4gICAgXCJNZWhtZXRcIixcbiAgICBcIk1laWtcIixcbiAgICBcIk1lbHZpblwiLFxuICAgIFwiTWVybGluXCIsXG4gICAgXCJNZXJ0XCIsXG4gICAgXCJNaWNoYWVsXCIsXG4gICAgXCJNaWNoZWxcIixcbiAgICBcIk1pY2tcIixcbiAgICBcIk1pZ3VlbFwiLFxuICAgIFwiTWlrYVwiLFxuICAgIFwiTWlrYWlsXCIsXG4gICAgXCJNaWtlXCIsXG4gICAgXCJNaWxhblwiLFxuICAgIFwiTWlsb1wiLFxuICAgIFwiTWlvXCIsXG4gICAgXCJNaXJhY1wiLFxuICAgIFwiTWlyY29cIixcbiAgICBcIk1pcmtvXCIsXG4gICAgXCJNb2hhbWVkXCIsXG4gICAgXCJNb2hhbW1hZFwiLFxuICAgIFwiTW9oYW1tZWRcIixcbiAgICBcIk1vcml0elwiLFxuICAgIFwiTW9ydGVuXCIsXG4gICAgXCJNdWhhbW1lZFwiLFxuICAgIFwiTXVyYXRcIixcbiAgICBcIk11c3RhZmFcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiTmF0aGFuYWVsXCIsXG4gICAgXCJOZWxzb25cIixcbiAgICBcIk5lb1wiLFxuICAgIFwiTmV2aW9cIixcbiAgICBcIk5pY2tcIixcbiAgICBcIk5pY2xhc1wiLFxuICAgIFwiTmljb1wiLFxuICAgIFwiTmljb2xhaVwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiTmllbHNcIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlrbGFzXCIsXG4gICAgXCJOaWtvXCIsXG4gICAgXCJOaWtvbGFpXCIsXG4gICAgXCJOaWtvbGFzXCIsXG4gICAgXCJOaWxzXCIsXG4gICAgXCJOaW5vXCIsXG4gICAgXCJOb2FoXCIsXG4gICAgXCJOb2VsXCIsXG4gICAgXCJOb3JtYW5cIixcbiAgICBcIk9kaW5cIixcbiAgICBcIk9rZVwiLFxuICAgIFwiT2xlXCIsXG4gICAgXCJPbGl2ZXJcIixcbiAgICBcIk9tYXJcIixcbiAgICBcIk9udXJcIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJPc2thclwiLFxuICAgIFwiUGFzY2FsXCIsXG4gICAgXCJQYXRyaWNlXCIsXG4gICAgXCJQYXRyaWNrXCIsXG4gICAgXCJQYXVsXCIsXG4gICAgXCJQZWVyXCIsXG4gICAgXCJQZXBlXCIsXG4gICAgXCJQZXRlclwiLFxuICAgIFwiUGhpbFwiLFxuICAgIFwiUGhpbGlwXCIsXG4gICAgXCJQaGlsaXBwXCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlBpZXRcIixcbiAgICBcIlBpdFwiLFxuICAgIFwiUGl1c1wiLFxuICAgIFwiUXVlbnRpblwiLFxuICAgIFwiUXVpcmluXCIsXG4gICAgXCJSYWZhZWxcIixcbiAgICBcIlJhaWtcIixcbiAgICBcIlJhbW9uXCIsXG4gICAgXCJSYXBoYWVsXCIsXG4gICAgXCJSYXNtdXNcIixcbiAgICBcIlJhdWxcIixcbiAgICBcIlJheWFuXCIsXG4gICAgXCJSZW7DqVwiLFxuICAgIFwiUmljYXJkb1wiLFxuICAgIFwiUmljY2FyZG9cIixcbiAgICBcIlJpY2hhcmRcIixcbiAgICBcIlJpY2tcIixcbiAgICBcIlJpY29cIixcbiAgICBcIlJvYmVydFwiLFxuICAgIFwiUm9iaW5cIixcbiAgICBcIlJvY2NvXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiUm9tZW9cIixcbiAgICBcIlJvblwiLFxuICAgIFwiUnViZW5cIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlNhaWRcIixcbiAgICBcIlNhbGloXCIsXG4gICAgXCJTYW1cIixcbiAgICBcIlNhbWlcIixcbiAgICBcIlNhbW15XCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIlNhbmRyb1wiLFxuICAgIFwiU2FudGlub1wiLFxuICAgIFwiU2FzY2hhXCIsXG4gICAgXCJTZWFuXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIlNlbGltXCIsXG4gICAgXCJTZW1paFwiLFxuICAgIFwiU2hhd25cIixcbiAgICBcIlNpbGFzXCIsXG4gICAgXCJTaW1lb25cIixcbiAgICBcIlNpbW9uXCIsXG4gICAgXCJTaW5hblwiLFxuICAgIFwiU2t5XCIsXG4gICAgXCJTdGVmYW5cIixcbiAgICBcIlN0ZWZmZW5cIixcbiAgICBcIlN0ZXBoYW5cIixcbiAgICBcIlN0ZXZlXCIsXG4gICAgXCJTdGV2ZW5cIixcbiAgICBcIlN2ZW5cIixcbiAgICBcIlPDtm5rZVwiLFxuICAgIFwiU8O2cmVuXCIsXG4gICAgXCJUYWhhXCIsXG4gICAgXCJUYW1pbm9cIixcbiAgICBcIlRhbW1vXCIsXG4gICAgXCJUYXJpa1wiLFxuICAgIFwiVGF5bGVyXCIsXG4gICAgXCJUYXlsb3JcIixcbiAgICBcIlRlb1wiLFxuICAgIFwiVGhlb1wiLFxuICAgIFwiVGhlb2RvclwiLFxuICAgIFwiVGhpZXNcIixcbiAgICBcIlRoaWxvXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRob3JiZW5cIixcbiAgICBcIlRob3JlXCIsXG4gICAgXCJUaG9yZ2VcIixcbiAgICBcIlRpYWdvXCIsXG4gICAgXCJUaWxcIixcbiAgICBcIlRpbGxcIixcbiAgICBcIlRpbGxtYW5uXCIsXG4gICAgXCJUaW1cIixcbiAgICBcIlRpbW1cIixcbiAgICBcIlRpbW9cIixcbiAgICBcIlRpbW9uXCIsXG4gICAgXCJUaW1vdGh5XCIsXG4gICAgXCJUaW5vXCIsXG4gICAgXCJUaXR1c1wiLFxuICAgIFwiVGl6aWFuXCIsXG4gICAgXCJUamFya1wiLFxuICAgIFwiVG9iaWFzXCIsXG4gICAgXCJUb21cIixcbiAgICBcIlRvbW15XCIsXG4gICAgXCJUb25pXCIsXG4gICAgXCJUb255XCIsXG4gICAgXCJUb3JiZW5cIixcbiAgICBcIlRvcmVcIixcbiAgICBcIlRyaXN0YW5cIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJUeXJvblwiLFxuICAgIFwiVW11dFwiLFxuICAgIFwiVmFsZW50aW5cIixcbiAgICBcIlZhbGVudGlub1wiLFxuICAgIFwiVmVpdFwiLFxuICAgIFwiVmljdG9yXCIsXG4gICAgXCJWaWt0b3JcIixcbiAgICBcIlZpblwiLFxuICAgIFwiVmluY2VudFwiLFxuICAgIFwiVml0b1wiLFxuICAgIFwiVml0dXNcIixcbiAgICBcIldpbGhlbG1cIixcbiAgICBcIldpbGxpXCIsXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJXaWxseVwiLFxuICAgIFwiWGF2ZXJcIixcbiAgICBcIllhbm5pY1wiLFxuICAgIFwiWWFubmlja1wiLFxuICAgIFwiWWFubmlrXCIsXG4gICAgXCJZYW5uaXNcIixcbiAgICBcIllhc2luXCIsXG4gICAgXCJZb3Vzc2VmXCIsXG4gICAgXCJZdW51c1wiLFxuICAgIFwiWXVzdWZcIixcbiAgICBcIll2ZW5cIixcbiAgICBcIll2ZXNcIixcbiAgICBcIsOWbWVyXCIsXG4gICAgXCJBYWxpeWFoXCIsXG4gICAgXCJBYmJ5XCIsXG4gICAgXCJBYmlnYWlsXCIsXG4gICAgXCJBZGFcIixcbiAgICBcIkFkZWxpbmFcIixcbiAgICBcIkFkcmlhbmFcIixcbiAgICBcIkFpbGVlblwiLFxuICAgIFwiQWltZWVcIixcbiAgICBcIkFsYW5hXCIsXG4gICAgXCJBbGVhXCIsXG4gICAgXCJBbGVuYVwiLFxuICAgIFwiQWxlc3NhXCIsXG4gICAgXCJBbGVzc2lhXCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZHJhXCIsXG4gICAgXCJBbGV4aWFcIixcbiAgICBcIkFsZXhpc1wiLFxuICAgIFwiQWxleW5hXCIsXG4gICAgXCJBbGlhXCIsXG4gICAgXCJBbGljYVwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIkFsaWNpYVwiLFxuICAgIFwiQWxpbmFcIixcbiAgICBcIkFsaXNhXCIsXG4gICAgXCJBbGlzaGFcIixcbiAgICBcIkFsaXNzYVwiLFxuICAgIFwiQWxpeWFcIixcbiAgICBcIkFsaXlhaFwiLFxuICAgIFwiQWxsZWdyYVwiLFxuICAgIFwiQWxtYVwiLFxuICAgIFwiQWx5c3NhXCIsXG4gICAgXCJBbWFsaWFcIixcbiAgICBcIkFtYW5kYVwiLFxuICAgIFwiQW1lbGlhXCIsXG4gICAgXCJBbWVsaWVcIixcbiAgICBcIkFtaW5hXCIsXG4gICAgXCJBbWlyYVwiLFxuICAgIFwiQW15XCIsXG4gICAgXCJBbmFcIixcbiAgICBcIkFuYWJlbFwiLFxuICAgIFwiQW5hc3Rhc2lhXCIsXG4gICAgXCJBbmRyZWFcIixcbiAgICBcIkFuZ2VsYVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIkFuZ2VsaXF1ZVwiLFxuICAgIFwiQW5qYVwiLFxuICAgIFwiQW5uXCIsXG4gICAgXCJBbm5hXCIsXG4gICAgXCJBbm5hYmVsXCIsXG4gICAgXCJBbm5hYmVsbFwiLFxuICAgIFwiQW5uYWJlbGxlXCIsXG4gICAgXCJBbm5hbGVuYVwiLFxuICAgIFwiQW5uZVwiLFxuICAgIFwiQW5uZWtlXCIsXG4gICAgXCJBbm5lbGllXCIsXG4gICAgXCJBbm5lbWFyaWVcIixcbiAgICBcIkFubmlcIixcbiAgICBcIkFubmllXCIsXG4gICAgXCJBbm5pa2FcIixcbiAgICBcIkFubnlcIixcbiAgICBcIkFub3VrXCIsXG4gICAgXCJBbnRvbmlhXCIsXG4gICAgXCJBcmRhXCIsXG4gICAgXCJBcmlhbmFcIixcbiAgICBcIkFyaWFuZVwiLFxuICAgIFwiQXJ3ZW5cIixcbiAgICBcIkFzaGxleVwiLFxuICAgIFwiQXN5YVwiLFxuICAgIFwiQXVyZWxpYVwiLFxuICAgIFwiQXVyb3JhXCIsXG4gICAgXCJBdmFcIixcbiAgICBcIkF5bGVlblwiLFxuICAgIFwiQXlsaW5cIixcbiAgICBcIkF5c2VcIixcbiAgICBcIkF6cmFcIixcbiAgICBcIkJldHR5XCIsXG4gICAgXCJCaWFuY2FcIixcbiAgICBcIkJpYW5rYVwiLFxuICAgIFwiQ2FpdGxpblwiLFxuICAgIFwiQ2FyYVwiLFxuICAgIFwiQ2FyaW5hXCIsXG4gICAgXCJDYXJsYVwiLFxuICAgIFwiQ2FybG90dGFcIixcbiAgICBcIkNhcm1lblwiLFxuICAgIFwiQ2Fyb2xpblwiLFxuICAgIFwiQ2Fyb2xpbmFcIixcbiAgICBcIkNhcm9saW5lXCIsXG4gICAgXCJDYXNzYW5kcmFcIixcbiAgICBcIkNhdGhhcmluYVwiLFxuICAgIFwiQ2F0cmluXCIsXG4gICAgXCJDZWNpbGVcIixcbiAgICBcIkNlY2lsaWFcIixcbiAgICBcIkNlbGlhXCIsXG4gICAgXCJDZWxpbmFcIixcbiAgICBcIkNlbGluZVwiLFxuICAgIFwiQ2V5ZGFcIixcbiAgICBcIkNleWxpblwiLFxuICAgIFwiQ2hhbnRhbFwiLFxuICAgIFwiQ2hhcmxlZW5cIixcbiAgICBcIkNoYXJsb3R0YVwiLFxuICAgIFwiQ2hhcmxvdHRlXCIsXG4gICAgXCJDaGF5ZW5uZVwiLFxuICAgIFwiQ2hleWVubmVcIixcbiAgICBcIkNoaWFyYVwiLFxuICAgIFwiQ2hyaXN0aW5cIixcbiAgICBcIkNocmlzdGluYVwiLFxuICAgIFwiQ2luZHlcIixcbiAgICBcIkNsYWlyZVwiLFxuICAgIFwiQ2xhcmFcIixcbiAgICBcIkNsYXJpc3NhXCIsXG4gICAgXCJDb2xsZWVuXCIsXG4gICAgXCJDb2xsaWVuXCIsXG4gICAgXCJDb3JhXCIsXG4gICAgXCJDb3Jpbm5hXCIsXG4gICAgXCJDb3NpbWFcIixcbiAgICBcIkRhbmFcIixcbiAgICBcIkRhbmllbGFcIixcbiAgICBcIkRhcmlhXCIsXG4gICAgXCJEYXJsZWVuXCIsXG4gICAgXCJEZWZuZVwiLFxuICAgIFwiRGVsaWFcIixcbiAgICBcIkRlbmlzZVwiLFxuICAgIFwiRGlhbmFcIixcbiAgICBcIkRpbGFyYVwiLFxuICAgIFwiRGluYVwiLFxuICAgIFwiRG9yb3RoZWFcIixcbiAgICBcIkVjcmluXCIsXG4gICAgXCJFZGFcIixcbiAgICBcIkVpbGVlblwiLFxuICAgIFwiRWxhXCIsXG4gICAgXCJFbGFpbmVcIixcbiAgICBcIkVsYW51clwiLFxuICAgIFwiRWxlYVwiLFxuICAgIFwiRWxlbmFcIixcbiAgICBcIkVsZW5pXCIsXG4gICAgXCJFbGVvbm9yYVwiLFxuICAgIFwiRWxpYW5hXCIsXG4gICAgXCJFbGlmXCIsXG4gICAgXCJFbGluYVwiLFxuICAgIFwiRWxpc2FcIixcbiAgICBcIkVsaXNhYmV0aFwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiRWxsZW5cIixcbiAgICBcIkVsbGlcIixcbiAgICBcIkVsbHlcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVtZWxpZVwiLFxuICAgIFwiRW1lbHlcIixcbiAgICBcIkVtaWxpYVwiLFxuICAgIFwiRW1pbGllXCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiRW1tZWx5XCIsXG4gICAgXCJFbW1pXCIsXG4gICAgXCJFbW15XCIsXG4gICAgXCJFbmllXCIsXG4gICAgXCJFbm5hXCIsXG4gICAgXCJFbnlhXCIsXG4gICAgXCJFc21hXCIsXG4gICAgXCJFc3RlbGxlXCIsXG4gICAgXCJFc3RoZXJcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRXZlbGluXCIsXG4gICAgXCJFdmVsaW5hXCIsXG4gICAgXCJFdmVsaW5lXCIsXG4gICAgXCJFdmVseW5cIixcbiAgICBcIkZhYmllbm5lXCIsXG4gICAgXCJGYXRpbWFcIixcbiAgICBcIkZhdG1hXCIsXG4gICAgXCJGZWxpY2lhXCIsXG4gICAgXCJGZWxpY2l0YXNcIixcbiAgICBcIkZlbGluYVwiLFxuICAgIFwiRmVta2VcIixcbiAgICBcIkZlbmphXCIsXG4gICAgXCJGaW5lXCIsXG4gICAgXCJGaW5pYVwiLFxuICAgIFwiRmluamFcIixcbiAgICBcIkZpbm5qYVwiLFxuICAgIFwiRmlvbmFcIixcbiAgICBcIkZsb3JhXCIsXG4gICAgXCJGbG9yZW50aW5lXCIsXG4gICAgXCJGcmFuY2VzY2FcIixcbiAgICBcIkZyYW5rYVwiLFxuICAgIFwiRnJhbnppc2thXCIsXG4gICAgXCJGcmVkZXJpa2VcIixcbiAgICBcIkZyZXlhXCIsXG4gICAgXCJGcmlkYVwiLFxuICAgIFwiRnJpZWRhXCIsXG4gICAgXCJGcmllZGVyaWtlXCIsXG4gICAgXCJHaWFkYVwiLFxuICAgIFwiR2luYVwiLFxuICAgIFwiR2l1bGlhXCIsXG4gICAgXCJHaXVsaWFuYVwiLFxuICAgIFwiR3JldGFcIixcbiAgICBcIkhhaWxleVwiLFxuICAgIFwiSGFuYVwiLFxuICAgIFwiSGFubmFcIixcbiAgICBcIkhhbm5haFwiLFxuICAgIFwiSGVpZGlcIixcbiAgICBcIkhlbGVuXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIkhlbGVuZVwiLFxuICAgIFwiSGVsaW5cIixcbiAgICBcIkhlbnJpZXR0ZVwiLFxuICAgIFwiSGVucmlrZVwiLFxuICAgIFwiSGVybWluZVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJJbGF5ZGFcIixcbiAgICBcIklta2VcIixcbiAgICBcIkluYVwiLFxuICAgIFwiSW5lc1wiLFxuICAgIFwiSW5nYVwiLFxuICAgIFwiSW5rYVwiLFxuICAgIFwiSXJlbVwiLFxuICAgIFwiSXNhXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzYWJlbGxcIixcbiAgICBcIklzYWJlbGxhXCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiSXZvbm5lXCIsXG4gICAgXCJKYWNxdWVsaW5lXCIsXG4gICAgXCJKYW1pZVwiLFxuICAgIFwiSmFtaWxhXCIsXG4gICAgXCJKYW5hXCIsXG4gICAgXCJKYW5lXCIsXG4gICAgXCJKYW5pblwiLFxuICAgIFwiSmFuaW5hXCIsXG4gICAgXCJKYW5pbmVcIixcbiAgICBcIkphbm5hXCIsXG4gICAgXCJKYW5uZVwiLFxuICAgIFwiSmFyYVwiLFxuICAgIFwiSmFzbWluXCIsXG4gICAgXCJKYXNtaW5hXCIsXG4gICAgXCJKYXNtaW5lXCIsXG4gICAgXCJKZWxsYVwiLFxuICAgIFwiSmVubmFcIixcbiAgICBcIkplbm5pZmVyXCIsXG4gICAgXCJKZW5ueVwiLFxuICAgIFwiSmVzc2ljYVwiLFxuICAgIFwiSmVzc3lcIixcbiAgICBcIkpldHRlXCIsXG4gICAgXCJKaWxcIixcbiAgICBcIkppbGxcIixcbiAgICBcIkpvYW5hXCIsXG4gICAgXCJKb2FubmFcIixcbiAgICBcIkpvZWxpbmFcIixcbiAgICBcIkpvZWxpbmVcIixcbiAgICBcIkpvZWxsZVwiLFxuICAgIFwiSm9oYW5uYVwiLFxuICAgIFwiSm9sZWVuXCIsXG4gICAgXCJKb2xpZVwiLFxuICAgIFwiSm9saWVuXCIsXG4gICAgXCJKb2xpblwiLFxuICAgIFwiSm9saW5hXCIsXG4gICAgXCJKb2xpbmVcIixcbiAgICBcIkpvbmFcIixcbiAgICBcIkpvbmFoXCIsXG4gICAgXCJKb25uYVwiLFxuICAgIFwiSm9zZWZpblwiLFxuICAgIFwiSm9zZWZpbmVcIixcbiAgICBcIkpvc2VwaGluXCIsXG4gICAgXCJKb3NlcGhpbmVcIixcbiAgICBcIkpvc2llXCIsXG4gICAgXCJKb3N5XCIsXG4gICAgXCJKb3lcIixcbiAgICBcIkpveWNlXCIsXG4gICAgXCJKdWRpdGhcIixcbiAgICBcIkp1ZHlcIixcbiAgICBcIkp1bGVcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJKdWxpYW5hXCIsXG4gICAgXCJKdWxpYW5lXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiSnVsaWVubmVcIixcbiAgICBcIkp1bGlrYVwiLFxuICAgIFwiSnVsaW5hXCIsXG4gICAgXCJKdW5hXCIsXG4gICAgXCJKdXN0aW5lXCIsXG4gICAgXCJLYWphXCIsXG4gICAgXCJLYXJpbmFcIixcbiAgICBcIkthcmxhXCIsXG4gICAgXCJLYXJsb3R0YVwiLFxuICAgIFwiS2Fyb2xpbmFcIixcbiAgICBcIkthcm9saW5lXCIsXG4gICAgXCJLYXNzYW5kcmFcIixcbiAgICBcIkthdGFyaW5hXCIsXG4gICAgXCJLYXRoYXJpbmFcIixcbiAgICBcIkthdGhyaW5cIixcbiAgICBcIkthdGphXCIsXG4gICAgXCJLYXRyaW5cIixcbiAgICBcIktheWFcIixcbiAgICBcIktheXJhXCIsXG4gICAgXCJLaWFuYVwiLFxuICAgIFwiS2lhcmFcIixcbiAgICBcIktpbVwiLFxuICAgIFwiS2ltYmVybGV5XCIsXG4gICAgXCJLaW1iZXJseVwiLFxuICAgIFwiS2lyYVwiLFxuICAgIFwiS2xhcmFcIixcbiAgICBcIktvcmlubmFcIixcbiAgICBcIktyaXN0aW5cIixcbiAgICBcIkt5cmFcIixcbiAgICBcIkxhaWxhXCIsXG4gICAgXCJMYW5hXCIsXG4gICAgXCJMYXJhXCIsXG4gICAgXCJMYXJpc3NhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGF1cmVlblwiLFxuICAgIFwiTGF2aW5pYVwiLFxuICAgIFwiTGVhXCIsXG4gICAgXCJMZWFoXCIsXG4gICAgXCJMZWFuYVwiLFxuICAgIFwiTGVhbmRyYVwiLFxuICAgIFwiTGVhbm5cIixcbiAgICBcIkxlZVwiLFxuICAgIFwiTGVpbGFcIixcbiAgICBcIkxlbmFcIixcbiAgICBcIkxlbmVcIixcbiAgICBcIkxlbmlcIixcbiAgICBcIkxlbmlhXCIsXG4gICAgXCJMZW5qYVwiLFxuICAgIFwiTGVueWFcIixcbiAgICBcIkxlb25hXCIsXG4gICAgXCJMZW9uaVwiLFxuICAgIFwiTGVvbmllXCIsXG4gICAgXCJMZW9ub3JhXCIsXG4gICAgXCJMZXRpY2lhXCIsXG4gICAgXCJMZXRpemlhXCIsXG4gICAgXCJMZXZrZVwiLFxuICAgIFwiTGV5bGFcIixcbiAgICBcIkxpYVwiLFxuICAgIFwiTGlhaFwiLFxuICAgIFwiTGlhbmFcIixcbiAgICBcIkxpbGlcIixcbiAgICBcIkxpbGlhXCIsXG4gICAgXCJMaWxpYW5cIixcbiAgICBcIkxpbGlhbmFcIixcbiAgICBcIkxpbGl0aFwiLFxuICAgIFwiTGlsbGlcIixcbiAgICBcIkxpbGxpYW5cIixcbiAgICBcIkxpbGx5XCIsXG4gICAgXCJMaWx5XCIsXG4gICAgXCJMaW5hXCIsXG4gICAgXCJMaW5kYVwiLFxuICAgIFwiTGluZHNheVwiLFxuICAgIFwiTGluZVwiLFxuICAgIFwiTGlublwiLFxuICAgIFwiTGlubmVhXCIsXG4gICAgXCJMaXNhXCIsXG4gICAgXCJMaXNhbm5cIixcbiAgICBcIkxpc2FubmVcIixcbiAgICBcIkxpdlwiLFxuICAgIFwiTGl2aWFcIixcbiAgICBcIkxpelwiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiTG9yZWVuXCIsXG4gICAgXCJMb3JlbmFcIixcbiAgICBcIkxvdHRhXCIsXG4gICAgXCJMb3R0ZVwiLFxuICAgIFwiTG91aXNhXCIsXG4gICAgXCJMb3Vpc2VcIixcbiAgICBcIkx1YW5hXCIsXG4gICAgXCJMdWNhXCIsXG4gICAgXCJMdWNpYVwiLFxuICAgIFwiTHVjaWVcIixcbiAgICBcIkx1Y2llbm5lXCIsXG4gICAgXCJMdWN5XCIsXG4gICAgXCJMdWlzYVwiLFxuICAgIFwiTHVpc2VcIixcbiAgICBcIkx1a2FcIixcbiAgICBcIkx1bmFcIixcbiAgICBcIkx1emllXCIsXG4gICAgXCJMeWFcIixcbiAgICBcIkx5ZGlhXCIsXG4gICAgXCJMeW5cIixcbiAgICBcIkx5bm5cIixcbiAgICBcIk1hZGVsZWluZVwiLFxuICAgIFwiTWFkaXRhXCIsXG4gICAgXCJNYWRsZWVuXCIsXG4gICAgXCJNYWRsZW5cIixcbiAgICBcIk1hZ2RhbGVuYVwiLFxuICAgIFwiTWFpa2VcIixcbiAgICBcIk1haWxpblwiLFxuICAgIFwiTWFpcmFcIixcbiAgICBcIk1hamFcIixcbiAgICBcIk1hbGVuYVwiLFxuICAgIFwiTWFsaWFcIixcbiAgICBcIk1hbGluXCIsXG4gICAgXCJNYWxpbmFcIixcbiAgICBcIk1hbmR5XCIsXG4gICAgXCJNYXJhXCIsXG4gICAgXCJNYXJhaFwiLFxuICAgIFwiTWFyZWlrZVwiLFxuICAgIFwiTWFyZW5cIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJNYXJpYW1cIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJNYXJpZWtlXCIsXG4gICAgXCJNYXJpZWxsYVwiLFxuICAgIFwiTWFyaWthXCIsXG4gICAgXCJNYXJpbmFcIixcbiAgICBcIk1hcmlzYVwiLFxuICAgIFwiTWFyaXNzYVwiLFxuICAgIFwiTWFyaXRcIixcbiAgICBcIk1hcmxhXCIsXG4gICAgXCJNYXJsZWVuXCIsXG4gICAgXCJNYXJsZW5cIixcbiAgICBcIk1hcmxlbmFcIixcbiAgICBcIk1hcmxlbmVcIixcbiAgICBcIk1hcnRhXCIsXG4gICAgXCJNYXJ0aGFcIixcbiAgICBcIk1hcnlcIixcbiAgICBcIk1hcnlhbVwiLFxuICAgIFwiTWF0aGlsZGFcIixcbiAgICBcIk1hdGhpbGRlXCIsXG4gICAgXCJNYXRpbGRhXCIsXG4gICAgXCJNYXhpXCIsXG4gICAgXCJNYXhpbWFcIixcbiAgICBcIk1heGluZVwiLFxuICAgIFwiTWF5YVwiLFxuICAgIFwiTWF5cmFcIixcbiAgICBcIk1lZGluYVwiLFxuICAgIFwiTWVkaW5lXCIsXG4gICAgXCJNZWlrZVwiLFxuICAgIFwiTWVsYW5pZVwiLFxuICAgIFwiTWVsZWtcIixcbiAgICBcIk1lbGlrZVwiLFxuICAgIFwiTWVsaW5hXCIsXG4gICAgXCJNZWxpbmRhXCIsXG4gICAgXCJNZWxpc1wiLFxuICAgIFwiTWVsaXNhXCIsXG4gICAgXCJNZWxpc3NhXCIsXG4gICAgXCJNZXJsZVwiLFxuICAgIFwiTWVydmVcIixcbiAgICBcIk1lcnllbVwiLFxuICAgIFwiTWV0dGVcIixcbiAgICBcIk1pYVwiLFxuICAgIFwiTWljaGFlbGFcIixcbiAgICBcIk1pY2hlbGxlXCIsXG4gICAgXCJNaWVrZVwiLFxuICAgIFwiTWlsYVwiLFxuICAgIFwiTWlsYW5hXCIsXG4gICAgXCJNaWxlbmFcIixcbiAgICBcIk1pbGxhXCIsXG4gICAgXCJNaW5hXCIsXG4gICAgXCJNaXJhXCIsXG4gICAgXCJNaXJheVwiLFxuICAgIFwiTWlyaWFtXCIsXG4gICAgXCJNaXJqYVwiLFxuICAgIFwiTW9uYVwiLFxuICAgIFwiTW9uaXF1ZVwiLFxuICAgIFwiTmFkaW5lXCIsXG4gICAgXCJOYWRqYVwiLFxuICAgIFwiTmFlbWlcIixcbiAgICBcIk5hbmN5XCIsXG4gICAgXCJOYW9taVwiLFxuICAgIFwiTmF0YWxpYVwiLFxuICAgIFwiTmF0YWxpZVwiLFxuICAgIFwiTmF0aGFsaWVcIixcbiAgICBcIk5lZWxlXCIsXG4gICAgXCJOZWxhXCIsXG4gICAgXCJOZWxlXCIsXG4gICAgXCJOZWxsaVwiLFxuICAgIFwiTmVsbHlcIixcbiAgICBcIk5pYVwiLFxuICAgIFwiTmljb2xlXCIsXG4gICAgXCJOaWthXCIsXG4gICAgXCJOaWtlXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pbGFcIixcbiAgICBcIk5pbmFcIixcbiAgICBcIk5pc2FcIixcbiAgICBcIk5vZW1pXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJPbGl2aWFcIixcbiAgICBcIlBhdHJpY2lhXCIsXG4gICAgXCJQYXRyaXppYVwiLFxuICAgIFwiUGF1bGFcIixcbiAgICBcIlBhdWxpbmFcIixcbiAgICBcIlBhdWxpbmVcIixcbiAgICBcIlBlbmVsb3BlXCIsXG4gICAgXCJQaGlsaW5lXCIsXG4gICAgXCJQaG9lYmVcIixcbiAgICBcIlBpYVwiLFxuICAgIFwiUmFoZWxcIixcbiAgICBcIlJhbmlhXCIsXG4gICAgXCJSZWJlY2NhXCIsXG4gICAgXCJSZWJla2thXCIsXG4gICAgXCJSaWFuYVwiLFxuICAgIFwiUmlla2VcIixcbiAgICBcIlJpa2VcIixcbiAgICBcIlJvbWluYVwiLFxuICAgIFwiUm9teVwiLFxuICAgIFwiUm9uamFcIixcbiAgICBcIlJvc2FcIixcbiAgICBcIlJvc2FsaWVcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIlNhYnJpbmFcIixcbiAgICBcIlNhaHJhXCIsXG4gICAgXCJTYWxseVwiLFxuICAgIFwiU2Fsb21lXCIsXG4gICAgXCJTYW1hbnRoYVwiLFxuICAgIFwiU2FtaWFcIixcbiAgICBcIlNhbWlyYVwiLFxuICAgIFwiU2FuZHJhXCIsXG4gICAgXCJTYW5keVwiLFxuICAgIFwiU2FuamFcIixcbiAgICBcIlNhcGhpcmFcIixcbiAgICBcIlNhcmFcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJTYXNraWFcIixcbiAgICBcIlNlbGluXCIsXG4gICAgXCJTZWxpbmFcIixcbiAgICBcIlNlbG1hXCIsXG4gICAgXCJTZW5hXCIsXG4gICAgXCJTaWRuZXlcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiU2lsamFcIixcbiAgICBcIlNpbmFcIixcbiAgICBcIlNpbmphXCIsXG4gICAgXCJTbWlsbGFcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJTb2ZpZVwiLFxuICAgIFwiU29uamFcIixcbiAgICBcIlNvcGhpYVwiLFxuICAgIFwiU29waGllXCIsXG4gICAgXCJTb3JheWFcIixcbiAgICBcIlN0ZWZhbmllXCIsXG4gICAgXCJTdGVsbGFcIixcbiAgICBcIlN0ZXBoYW5pZVwiLFxuICAgIFwiU3RpbmFcIixcbiAgICBcIlN1ZGVcIixcbiAgICBcIlN1bW1lclwiLFxuICAgIFwiU3VzYW5uZVwiLFxuICAgIFwiU3ZlYVwiLFxuICAgIFwiU3ZlbmphXCIsXG4gICAgXCJTeWRuZXlcIixcbiAgICBcIlRhYmVhXCIsXG4gICAgXCJUYWxlYVwiLFxuICAgIFwiVGFsaWFcIixcbiAgICBcIlRhbWFyYVwiLFxuICAgIFwiVGFtaWFcIixcbiAgICBcIlRhbWluYVwiLFxuICAgIFwiVGFuamFcIixcbiAgICBcIlRhcmFcIixcbiAgICBcIlRhcmphXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIlRlc3NhXCIsXG4gICAgXCJUaGFsZWFcIixcbiAgICBcIlRoYWxpYVwiLFxuICAgIFwiVGhlYVwiLFxuICAgIFwiVGhlcmVzYVwiLFxuICAgIFwiVGlhXCIsXG4gICAgXCJUaW5hXCIsXG4gICAgXCJUb21rZVwiLFxuICAgIFwiVHVhbmFcIixcbiAgICBcIlZhbGVudGluYVwiLFxuICAgIFwiVmFsZXJpYVwiLFxuICAgIFwiVmFsZXJpZVwiLFxuICAgIFwiVmFuZXNzYVwiLFxuICAgIFwiVmVyYVwiLFxuICAgIFwiVmVyb25pa2FcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJWaWt0b3JpYVwiLFxuICAgIFwiVmlvbGFcIixcbiAgICBcIlZpdmlhblwiLFxuICAgIFwiVml2aWVuXCIsXG4gICAgXCJWaXZpZW5uZVwiLFxuICAgIFwiV2lia2VcIixcbiAgICBcIldpZWJrZVwiLFxuICAgIFwiWGVuaWFcIixcbiAgICBcIllhcmFcIixcbiAgICBcIllhcmVuXCIsXG4gICAgXCJZYXNtaW5cIixcbiAgICBcIllsdmlcIixcbiAgICBcIllsdmllXCIsXG4gICAgXCJZdm9ubmVcIixcbiAgICBcIlphcmFcIixcbiAgICBcIlplaHJhXCIsXG4gICAgXCJaZXluZXBcIixcbiAgICBcIlpvZVwiLFxuICAgIFwiWm9leVwiLFxuICAgIFwiWm/DqVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkFiZWxcIixcbiAgICBcIkFiaWNodFwiLFxuICAgIFwiQWJyYWhhbVwiLFxuICAgIFwiQWJyYW1vdmljXCIsXG4gICAgXCJBYnRcIixcbiAgICBcIkFjaGlsbGVzXCIsXG4gICAgXCJBY2hraW5hZHplXCIsXG4gICAgXCJBY2tlcm1hbm5cIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkYW1zXCIsXG4gICAgXCJBZGVcIixcbiAgICBcIkFnb3N0aW5pXCIsXG4gICAgXCJBaGxrZVwiLFxuICAgIFwiQWhyZW5iZXJnXCIsXG4gICAgXCJBaHJlbnNcIixcbiAgICBcIkFpZ25lclwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGJyZWNodFwiLFxuICAgIFwiQWxleGFcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQWxpemFkZWhcIixcbiAgICBcIkFsbGdleWVyXCIsXG4gICAgXCJBbWFublwiLFxuICAgIFwiQW1iZXJnXCIsXG4gICAgXCJBbmRpbmdcIixcbiAgICBcIkFuZ2dyZW55XCIsXG4gICAgXCJBcGl0elwiLFxuICAgIFwiQXJlbmR0XCIsXG4gICAgXCJBcmVuc1wiLFxuICAgIFwiQXJuZHRcIixcbiAgICBcIkFyeWVlXCIsXG4gICAgXCJBc2NoZW5icm9pY2hcIixcbiAgICBcIkFzc211c1wiLFxuICAgIFwiQXN0YWZlaVwiLFxuICAgIFwiQXVlclwiLFxuICAgIFwiQXhtYW5uXCIsXG4gICAgXCJCYWFyY2tcIixcbiAgICBcIkJhY2htYW5uXCIsXG4gICAgXCJCYWRhbmVcIixcbiAgICBcIkJhZGVyXCIsXG4gICAgXCJCYWdhbnpcIixcbiAgICBcIkJhaGxcIixcbiAgICBcIkJha1wiLFxuICAgIFwiQmFsY2VyXCIsXG4gICAgXCJCYWxja1wiLFxuICAgIFwiQmFsa293XCIsXG4gICAgXCJCYWxudXdlaXRcIixcbiAgICBcIkJhbHplclwiLFxuICAgIFwiQmFuc2VcIixcbiAgICBcIkJhcnJcIixcbiAgICBcIkJhcnRlbHNcIixcbiAgICBcIkJhcnRoXCIsXG4gICAgXCJCYXJ5bGxhXCIsXG4gICAgXCJCYXNlZGFcIixcbiAgICBcIkJhdHRrZVwiLFxuICAgIFwiQmF1ZXJcIixcbiAgICBcIkJhdWVybWVpc3RlclwiLFxuICAgIFwiQmF1bWFublwiLFxuICAgIFwiQmF1bWVpc3RlclwiLFxuICAgIFwiQmF1c2NoaW5nZXJcIixcbiAgICBcIkJhdXNjaGtlXCIsXG4gICAgXCJCYXllclwiLFxuICAgIFwiQmVhdm9ndWlcIixcbiAgICBcIkJlY2tcIixcbiAgICBcIkJlY2tlbFwiLFxuICAgIFwiQmVja2VyXCIsXG4gICAgXCJCZWNrbWFublwiLFxuICAgIFwiQmVkZXdpdHpcIixcbiAgICBcIkJlZWxlXCIsXG4gICAgXCJCZWVyXCIsXG4gICAgXCJCZWdnZXJvd1wiLFxuICAgIFwiQmVoXCIsXG4gICAgXCJCZWhyXCIsXG4gICAgXCJCZWhyZW5icnVjaFwiLFxuICAgIFwiQmVselwiLFxuICAgIFwiQmVuZGVyXCIsXG4gICAgXCJCZW5lY2tlXCIsXG4gICAgXCJCZW5uZXJcIixcbiAgICBcIkJlbm5pbmdlclwiLFxuICAgIFwiQmVuemluZ1wiLFxuICAgIFwiQmVyZW5kc1wiLFxuICAgIFwiQmVyZ2VyXCIsXG4gICAgXCJCZXJuZXJcIixcbiAgICBcIkJlcm5pbmdcIixcbiAgICBcIkJlcnRlbmJyZWl0ZXJcIixcbiAgICBcIkJlc3RcIixcbiAgICBcIkJldGhrZVwiLFxuICAgIFwiQmV0elwiLFxuICAgIFwiQmV1c2hhdXNlblwiLFxuICAgIFwiQmV1dGVsc3BhY2hlclwiLFxuICAgIFwiQmV5ZXJcIixcbiAgICBcIkJpYmFcIixcbiAgICBcIkJpY2hsZXJcIixcbiAgICBcIkJpY2tlbFwiLFxuICAgIFwiQmllZGVybWFublwiLFxuICAgIFwiQmllbGVyXCIsXG4gICAgXCJCaWVsZXJ0XCIsXG4gICAgXCJCaWVuYXNjaFwiLFxuICAgIFwiQmllbmlhc1wiLFxuICAgIFwiQmllc2VuYmFjaFwiLFxuICAgIFwiQmlnZGVsaVwiLFxuICAgIFwiQmlya2VtZXllclwiLFxuICAgIFwiQml0dG5lclwiLFxuICAgIFwiQmxhbmtcIixcbiAgICBcIkJsYXNjaGVrXCIsXG4gICAgXCJCbGFzc25lY2tcIixcbiAgICBcIkJsb2NoXCIsXG4gICAgXCJCbG9jaHdpdHpcIixcbiAgICBcIkJsb2NraGF1c1wiLFxuICAgIFwiQmx1bVwiLFxuICAgIFwiQmx1bWVcIixcbiAgICBcIkJvY2tcIixcbiAgICBcIkJvZGVcIixcbiAgICBcIkJvZ2Rhc2hpblwiLFxuICAgIFwiQm9nZW5yaWVkZXJcIixcbiAgICBcIkJvaGdlXCIsXG4gICAgXCJCb2xtXCIsXG4gICAgXCJCb3Jnc2NodWx6ZVwiLFxuICAgIFwiQm9ya1wiLFxuICAgIFwiQm9ybWFublwiLFxuICAgIFwiQm9ybnNjaGV1ZXJcIixcbiAgICBcIkJvcnJtYW5uXCIsXG4gICAgXCJCb3JzY2hcIixcbiAgICBcIkJvcnVzY2hld3NraVwiLFxuICAgIFwiQm9zXCIsXG4gICAgXCJCb3NsZXJcIixcbiAgICBcIkJvdXJyb3VhZ1wiLFxuICAgIFwiQm91c2NoZW5cIixcbiAgICBcIkJveGhhbW1lclwiLFxuICAgIFwiQm95ZGVcIixcbiAgICBcIkJvenNpa1wiLFxuICAgIFwiQnJhbmRcIixcbiAgICBcIkJyYW5kZW5idXJnXCIsXG4gICAgXCJCcmFuZGlzXCIsXG4gICAgXCJCcmFuZHRcIixcbiAgICBcIkJyYXVlclwiLFxuICAgIFwiQnJhdW5cIixcbiAgICBcIkJyZWhtZXJcIixcbiAgICBcIkJyZWl0ZW5zdGVpblwiLFxuICAgIFwiQnJlbWVyXCIsXG4gICAgXCJCcmVtc2VyXCIsXG4gICAgXCJCcmVubmVyXCIsXG4gICAgXCJCcmV0dHNjaG5laWRlclwiLFxuICAgIFwiQnJldVwiLFxuICAgIFwiQnJldWVyXCIsXG4gICAgXCJCcmllc2VuaWNrXCIsXG4gICAgXCJCcmluZ21hbm5cIixcbiAgICBcIkJyaW5rbWFublwiLFxuICAgIFwiQnJpeFwiLFxuICAgIFwiQnJvZW5pbmdcIixcbiAgICBcIkJyb3NjaFwiLFxuICAgIFwiQnJ1Y2ttYW5uXCIsXG4gICAgXCJCcnVkZXJcIixcbiAgICBcIkJydWhuc1wiLFxuICAgIFwiQnJ1bm5lclwiLFxuICAgIFwiQnJ1bnNcIixcbiAgICBcIkJyw6R1dGlnYW1cIixcbiAgICBcIkJyw7ZtbWVcIixcbiAgICBcIkJyw7xnZ21hbm5cIixcbiAgICBcIkJ1Y2hob2x6XCIsXG4gICAgXCJCdWNocnVja2VyXCIsXG4gICAgXCJCdWRlclwiLFxuICAgIFwiQnVsdG1hbm5cIixcbiAgICBcIkJ1bmplc1wiLFxuICAgIFwiQnVyZ2VyXCIsXG4gICAgXCJCdXJnaGFnZW5cIixcbiAgICBcIkJ1cmtoYXJkXCIsXG4gICAgXCJCdXJraGFyZHRcIixcbiAgICBcIkJ1cm1laXN0ZXJcIixcbiAgICBcIkJ1c2NoXCIsXG4gICAgXCJCdXNjaGJhdW1cIixcbiAgICBcIkJ1c2VtYW5uXCIsXG4gICAgXCJCdXNzXCIsXG4gICAgXCJCdXNzZVwiLFxuICAgIFwiQnVzc21hbm5cIixcbiAgICBcIkJ5cmRcIixcbiAgICBcIkLDpGNrZXJcIixcbiAgICBcIkLDtmhtXCIsXG4gICAgXCJCw7ZuaXNjaFwiLFxuICAgIFwiQsO2cmdlbGluZ1wiLFxuICAgIFwiQsO2cm5lclwiLFxuICAgIFwiQsO2dHRuZXJcIixcbiAgICBcIkLDvGNoZWxlXCIsXG4gICAgXCJCw7xobGVyXCIsXG4gICAgXCJCw7xrZXJcIixcbiAgICBcIkLDvG5nZW5lclwiLFxuICAgIFwiQsO8cmdlclwiLFxuICAgIFwiQsO8cmtsZWluXCIsXG4gICAgXCJCw7xzY2hlclwiLFxuICAgIFwiQsO8dHRuZXJcIixcbiAgICBcIkNhbWFyYVwiLFxuICAgIFwiQ2FybG93aXR6XCIsXG4gICAgXCJDYXJsc29oblwiLFxuICAgIFwiQ2FzcGFyaVwiLFxuICAgIFwiQ2FzcGVyc1wiLFxuICAgIFwiQ2hhcHJvblwiLFxuICAgIFwiQ2hyaXN0XCIsXG4gICAgXCJDaWVycGluc2tpXCIsXG4gICAgXCJDbGFyaXVzXCIsXG4gICAgXCJDbGVlbVwiLFxuICAgIFwiQ2xldmVcIixcbiAgICBcIkNvXCIsXG4gICAgXCJDb25yYWRcIixcbiAgICBcIkNvcmRlc1wiLFxuICAgIFwiQ29ybmVsc2VuXCIsXG4gICAgXCJDb3JzXCIsXG4gICAgXCJDb3R0aGFyZHRcIixcbiAgICBcIkNyZXdzXCIsXG4gICAgXCJDcm9uasOkZ2VyXCIsXG4gICAgXCJDcm9zc2tvZnBcIixcbiAgICBcIkRhXCIsXG4gICAgXCJEYWhtXCIsXG4gICAgXCJEYWhtZW5cIixcbiAgICBcIkRhaW1lclwiLFxuICAgIFwiRGFtYXNrZVwiLFxuICAgIFwiRGFubmViZXJnXCIsXG4gICAgXCJEYW5uZXJcIixcbiAgICBcIkRhdWJcIixcbiAgICBcIkRhdWJuZXJcIixcbiAgICBcIkRhdWRyaWNoXCIsXG4gICAgXCJEYXVlclwiLFxuICAgIFwiRGF1bVwiLFxuICAgIFwiRGF1dGhcIixcbiAgICBcIkRhdXR6ZW5iZXJnXCIsXG4gICAgXCJEZVwiLFxuICAgIFwiRGVja2VyXCIsXG4gICAgXCJEZWNrZXJ0XCIsXG4gICAgXCJEZWVyYmVyZ1wiLFxuICAgIFwiRGVobWVsXCIsXG4gICAgXCJEZWphXCIsXG4gICAgXCJEZWxvbmdlXCIsXG4gICAgXCJEZW11dFwiLFxuICAgIFwiRGVuZ2xlclwiLFxuICAgIFwiRGVubmVyXCIsXG4gICAgXCJEZW56aW5nZXJcIixcbiAgICBcIkRlcnJcIixcbiAgICBcIkRlcnRtYW5uXCIsXG4gICAgXCJEZXRobG9mZlwiLFxuICAgIFwiRGV1c2NobGVcIixcbiAgICBcIkRpZWNrbWFublwiLFxuICAgIFwiRGllZHJpY2hcIixcbiAgICBcIkRpZWttYW5uXCIsXG4gICAgXCJEaWVuZWxcIixcbiAgICBcIkRpZXNcIixcbiAgICBcIkRpZXRyaWNoXCIsXG4gICAgXCJEaWV0elwiLFxuICAgIFwiRGlldHpzY2hcIixcbiAgICBcIkRpZXplbFwiLFxuICAgIFwiRGlsbGFcIixcbiAgICBcIkRpbmdlbHN0ZWR0XCIsXG4gICAgXCJEaXBwbFwiLFxuICAgIFwiRGl0dG1hbm5cIixcbiAgICBcIkRpdHRtYXJcIixcbiAgICBcIkRpdHRtZXJcIixcbiAgICBcIkRpeFwiLFxuICAgIFwiRG9iYnJ1bnpcIixcbiAgICBcIkRvYmxlclwiLFxuICAgIFwiRG9ocmluZ1wiLFxuICAgIFwiRG9sY2hcIixcbiAgICBcIkRvbGRcIixcbiAgICBcIkRvbWJyb3dza2lcIixcbiAgICBcIkRvbmllXCIsXG4gICAgXCJEb3Nrb2N6eW5za2lcIixcbiAgICBcIkRyYWd1XCIsXG4gICAgXCJEcmVjaHNsZXJcIixcbiAgICBcIkRyZWVzXCIsXG4gICAgXCJEcmVoZXJcIixcbiAgICBcIkRyZWllclwiLFxuICAgIFwiRHJlaXNzaWdhY2tlclwiLFxuICAgIFwiRHJlc3NsZXJcIixcbiAgICBcIkRyZXdzXCIsXG4gICAgXCJEdW1hXCIsXG4gICAgXCJEdXRraWV3aWN6XCIsXG4gICAgXCJEeWV0dFwiLFxuICAgIFwiRHlsdXNcIixcbiAgICBcIkTDpGNoZXJ0XCIsXG4gICAgXCJEw7ZiZWxcIixcbiAgICBcIkTDtnJpbmdcIixcbiAgICBcIkTDtnJuZXJcIixcbiAgICBcIkTDtnJyZVwiLFxuICAgIFwiRMO8Y2tcIixcbiAgICBcIkViZXJoYXJkXCIsXG4gICAgXCJFYmVyaGFyZHRcIixcbiAgICBcIkVja2VyXCIsXG4gICAgXCJFY2toYXJkdFwiLFxuICAgIFwiRWRvcmhcIixcbiAgICBcIkVmZmxlclwiLFxuICAgIFwiRWdnZW5tdWVsbGVyXCIsXG4gICAgXCJFaG1cIixcbiAgICBcIkVobWFublwiLFxuICAgIFwiRWhyaWdcIixcbiAgICBcIkVpY2hcIixcbiAgICBcIkVpY2htYW5uXCIsXG4gICAgXCJFaWZlcnRcIixcbiAgICBcIkVpbmVydFwiLFxuICAgIFwiRWlzZW5sYXVlclwiLFxuICAgIFwiRWtwb1wiLFxuICAgIFwiRWxiZVwiLFxuICAgIFwiRWxleXRoXCIsXG4gICAgXCJFbHNzXCIsXG4gICAgXCJFbWVydFwiLFxuICAgIFwiRW1tZWxtYW5uXCIsXG4gICAgXCJFbmRlclwiLFxuICAgIFwiRW5nZWxcIixcbiAgICBcIkVuZ2VsZW5cIixcbiAgICBcIkVuZ2VsbWFublwiLFxuICAgIFwiRXBsaW5pdXNcIixcbiAgICBcIkVyZG1hbm5cIixcbiAgICBcIkVyaGFyZHRcIixcbiAgICBcIkVybGVpXCIsXG4gICAgXCJFcm1cIixcbiAgICBcIkVybnN0XCIsXG4gICAgXCJFcnRsXCIsXG4gICAgXCJFcndlc1wiLFxuICAgIFwiRXNlbndlaW5cIixcbiAgICBcIkVzc2VyXCIsXG4gICAgXCJFdmVyc1wiLFxuICAgIFwiRXZlcnRzXCIsXG4gICAgXCJFd2FsZFwiLFxuICAgIFwiRmFobmVyXCIsXG4gICAgXCJGYWxsZXJcIixcbiAgICBcIkZhbHRlclwiLFxuICAgIFwiRmFyYmVyXCIsXG4gICAgXCJGYXNzYmVuZGVyXCIsXG4gICAgXCJGYXVsaGFiZXJcIixcbiAgICBcIkZlaHJpZ1wiLFxuICAgIFwiRmVsZFwiLFxuICAgIFwiRmVsa2VcIixcbiAgICBcIkZlbGxlclwiLFxuICAgIFwiRmVubmVyXCIsXG4gICAgXCJGZW5za2VcIixcbiAgICBcIkZldWVyYmFjaFwiLFxuICAgIFwiRmlldHpcIixcbiAgICBcIkZpZ2xcIixcbiAgICBcIkZpZ3VyYVwiLFxuICAgIFwiRmlsaXBvd3NraVwiLFxuICAgIFwiRmlsc2luZ2VyXCIsXG4gICAgXCJGaW5ja2VcIixcbiAgICBcIkZpbmtcIixcbiAgICBcIkZpbmtlXCIsXG4gICAgXCJGaXNjaGVyXCIsXG4gICAgXCJGaXRzY2hlblwiLFxuICAgIFwiRmxlaXNjaGVyXCIsXG4gICAgXCJGbGVpc2NobWFublwiLFxuICAgIFwiRmxvZGVyXCIsXG4gICAgXCJGbG9yY3pha1wiLFxuICAgIFwiRmxvcmVcIixcbiAgICBcIkZsb3R0bWFublwiLFxuICAgIFwiRm9ya2VsXCIsXG4gICAgXCJGb3JzdFwiLFxuICAgIFwiRnJhaG1la2VcIixcbiAgICBcIkZyYW5rXCIsXG4gICAgXCJGcmFua2VcIixcbiAgICBcIkZyYW50YVwiLFxuICAgIFwiRnJhbnR6XCIsXG4gICAgXCJGcmFuelwiLFxuICAgIFwiRnJhbnppc1wiLFxuICAgIFwiRnJhbnptYW5uXCIsXG4gICAgXCJGcmF1ZW5cIixcbiAgICBcIkZyYXVlbmRvcmZcIixcbiAgICBcIkZyZWlnYW5nXCIsXG4gICAgXCJGcmVpbWFublwiLFxuICAgIFwiRnJlaW11dGhcIixcbiAgICBcIkZyZWlzZW5cIixcbiAgICBcIkZyZW56ZWxcIixcbiAgICBcIkZyZXlcIixcbiAgICBcIkZyaWNrZVwiLFxuICAgIFwiRnJpZWRcIixcbiAgICBcIkZyaWVkZWtcIixcbiAgICBcIkZyaWVkZW5iZXJnXCIsXG4gICAgXCJGcmllZG1hbm5cIixcbiAgICBcIkZyaWVkcmljaFwiLFxuICAgIFwiRnJpZXNzXCIsXG4gICAgXCJGcmlzY2hcIixcbiAgICBcIkZyb2huXCIsXG4gICAgXCJGcm9zY2hcIixcbiAgICBcIkZ1Y2hzXCIsXG4gICAgXCJGdWhsYnLDvGdnZVwiLFxuICAgIFwiRnVzZW5pZ1wiLFxuICAgIFwiRnVzdFwiLFxuICAgIFwiRsO2cnN0ZXJcIixcbiAgICBcIkdhYmFcIixcbiAgICBcIkdhYml1c1wiLFxuICAgIFwiR2FibGVyXCIsXG4gICAgXCJHYWRzY2hpZXdcIixcbiAgICBcIkdha3N0w6RkdGVyXCIsXG4gICAgXCJHYWxhbmRlclwiLFxuICAgIFwiR2FtbGluXCIsXG4gICAgXCJHYW1wZXJcIixcbiAgICBcIkdhbmdudXNcIixcbiAgICBcIkdhbnptYW5uXCIsXG4gICAgXCJHYXJhdHZhXCIsXG4gICAgXCJHYXN0XCIsXG4gICAgXCJHYXN0ZWxcIixcbiAgICBcIkdhdHprYVwiLFxuICAgIFwiR2F1ZGVyXCIsXG4gICAgXCJHZWJoYXJkdFwiLFxuICAgIFwiR2Vlc2VcIixcbiAgICBcIkdlaHJlXCIsXG4gICAgXCJHZWhyaWdcIixcbiAgICBcIkdlaHJpbmdcIixcbiAgICBcIkdlaHJrZVwiLFxuICAgIFwiR2VpZ2VyXCIsXG4gICAgXCJHZWlzbGVyXCIsXG4gICAgXCJHZWlzc2xlclwiLFxuICAgIFwiR2VsbGluZ1wiLFxuICAgIFwiR2Vuc1wiLFxuICAgIFwiR2VyYmVubm93XCIsXG4gICAgXCJHZXJkZWxcIixcbiAgICBcIkdlcmhhcmR0XCIsXG4gICAgXCJHZXJzY2hsZXJcIixcbiAgICBcIkdlcnNvblwiLFxuICAgIFwiR2VzZWxsXCIsXG4gICAgXCJHZXllclwiLFxuICAgIFwiR2hpcm1haVwiLFxuICAgIFwiR2hvc2hcIixcbiAgICBcIkdpZWhsXCIsXG4gICAgXCJHaWVyaXNjaFwiLFxuICAgIFwiR2llc2FcIixcbiAgICBcIkdpZXNjaGVcIixcbiAgICBcIkdpbGRlXCIsXG4gICAgXCJHbGF0dGluZ1wiLFxuICAgIFwiR29lYmVsXCIsXG4gICAgXCJHb2VkaWNrZVwiLFxuICAgIFwiR29sZGJlY2tcIixcbiAgICBcIkdvbGRmdXNzXCIsXG4gICAgXCJHb2xka2FtcFwiLFxuICAgIFwiR29sZGvDvGhsZVwiLFxuICAgIFwiR29sbGVyXCIsXG4gICAgXCJHb2xsaW5nXCIsXG4gICAgXCJHb2xsbm93XCIsXG4gICAgXCJHb2xvbXNraVwiLFxuICAgIFwiR29tYmVydFwiLFxuICAgIFwiR290dGhhcmR0XCIsXG4gICAgXCJHb3R0c2NoYWxrXCIsXG4gICAgXCJHb3R6XCIsXG4gICAgXCJHb3lcIixcbiAgICBcIkdyYWR6a2lcIixcbiAgICBcIkdyYWZcIixcbiAgICBcIkdyYW1zXCIsXG4gICAgXCJHcmFzc2VcIixcbiAgICBcIkdyYXR6a3lcIixcbiAgICBcIkdyYXVcIixcbiAgICBcIkdyZWJcIixcbiAgICBcIkdyZWVuXCIsXG4gICAgXCJHcmVnZXJcIixcbiAgICBcIkdyZWl0aGFubmVyXCIsXG4gICAgXCJHcmVzY2huZXJcIixcbiAgICBcIkdyaWVtXCIsXG4gICAgXCJHcmllc2VcIixcbiAgICBcIkdyaW1tXCIsXG4gICAgXCJHcm9taXNjaFwiLFxuICAgIFwiR3Jvc3NcIixcbiAgICBcIkdyb3NzZXJcIixcbiAgICBcIkdyb3NzaGVpbVwiLFxuICAgIFwiR3Jvc3Nrb3BmXCIsXG4gICAgXCJHcm90aGF1c1wiLFxuICAgIFwiR3JvdGhrb3BwXCIsXG4gICAgXCJHcm90a2VcIixcbiAgICBcIkdydWJlXCIsXG4gICAgXCJHcnViZXJcIixcbiAgICBcIkdydW5kbWFublwiLFxuICAgIFwiR3J1bmluZ1wiLFxuICAgIFwiR3J1c3plY2tpXCIsXG4gICAgXCJHcsO2c3NcIixcbiAgICBcIkdyw7Z0emluZ2VyXCIsXG4gICAgXCJHcsO8blwiLFxuICAgIFwiR3LDvG5lclwiLFxuICAgIFwiR3VtbWVsdFwiLFxuICAgIFwiR3Vua2VsXCIsXG4gICAgXCJHdW50aGVyXCIsXG4gICAgXCJHdXRqYWhyXCIsXG4gICAgXCJHdXRvd2ljelwiLFxuICAgIFwiR3V0c2NoYW5rXCIsXG4gICAgXCJHw7ZiZWxcIixcbiAgICBcIkfDtmNrZXJpdHpcIixcbiAgICBcIkfDtmhsZXJcIixcbiAgICBcIkfDtnJsaWNoXCIsXG4gICAgXCJHw7ZybWVyXCIsXG4gICAgXCJHw7Z0elwiLFxuICAgIFwiR8O2dHplbG1hbm5cIixcbiAgICBcIkfDvGxkZW1laXN0ZXJcIixcbiAgICBcIkfDvG50aGVyXCIsXG4gICAgXCJHw7xuelwiLFxuICAgIFwiR8O8cmJpZ1wiLFxuICAgIFwiSGFhY2tcIixcbiAgICBcIkhhYWZcIixcbiAgICBcIkhhYmVsXCIsXG4gICAgXCJIYWNoZVwiLFxuICAgIFwiSGFja2J1c2NoXCIsXG4gICAgXCJIYWNrZWxidXNjaFwiLFxuICAgIFwiSGFkZmllbGRcIixcbiAgICBcIkhhZHdpY2hcIixcbiAgICBcIkhhZmVya2FtcFwiLFxuICAgIFwiSGFoblwiLFxuICAgIFwiSGFqZWtcIixcbiAgICBcIkhhbGxtYW5uXCIsXG4gICAgXCJIYW1hbm5cIixcbiAgICBcIkhhbmVuYmVyZ2VyXCIsXG4gICAgXCJIYW5uZWNrZXJcIixcbiAgICBcIkhhbm5pc2tlXCIsXG4gICAgXCJIYW5zZW5cIixcbiAgICBcIkhhcmR5XCIsXG4gICAgXCJIYXJnYXNzZXJcIixcbiAgICBcIkhhcm1zXCIsXG4gICAgXCJIYXJuYXBwXCIsXG4gICAgXCJIYXJ0ZXJcIixcbiAgICBcIkhhcnRpbmdcIixcbiAgICBcIkhhcnRsaWViXCIsXG4gICAgXCJIYXJ0bWFublwiLFxuICAgIFwiSGFydHdpZ1wiLFxuICAgIFwiSGFydHpcIixcbiAgICBcIkhhc2Noa2VcIixcbiAgICBcIkhhc2xlclwiLFxuICAgIFwiSGFzc2VcIixcbiAgICBcIkhhc3NmZWxkXCIsXG4gICAgXCJIYXVnXCIsXG4gICAgXCJIYXVrZVwiLFxuICAgIFwiSGF1cHRcIixcbiAgICBcIkhhdmVybmV5XCIsXG4gICAgXCJIZWJlcnN0cmVpdFwiLFxuICAgIFwiSGVjaGxlclwiLFxuICAgIFwiSGVjaHRcIixcbiAgICBcIkhlY2tcIixcbiAgICBcIkhlZGVybWFublwiLFxuICAgIFwiSGVobFwiLFxuICAgIFwiSGVpZGVsbWFublwiLFxuICAgIFwiSGVpZGxlclwiLFxuICAgIFwiSGVpbmVtYW5uXCIsXG4gICAgXCJIZWluaWdcIixcbiAgICBcIkhlaW5rZVwiLFxuICAgIFwiSGVpbnJpY2hcIixcbiAgICBcIkhlaW56ZVwiLFxuICAgIFwiSGVpc2VyXCIsXG4gICAgXCJIZWlzdFwiLFxuICAgIFwiSGVsbG1hbm5cIixcbiAgICBcIkhlbG1cIixcbiAgICBcIkhlbG1rZVwiLFxuICAgIFwiSGVscGxpbmdcIixcbiAgICBcIkhlbmdtaXRoXCIsXG4gICAgXCJIZW5rZWxcIixcbiAgICBcIkhlbm5lc1wiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkhlbnNlXCIsXG4gICAgXCJIZW5zZWxcIixcbiAgICBcIkhlbnRlbFwiLFxuICAgIFwiSGVudHNjaGVsXCIsXG4gICAgXCJIZW50c2Noa2VcIixcbiAgICBcIkhlcHBlcmxlXCIsXG4gICAgXCJIZXJiZXJnZXJcIixcbiAgICBcIkhlcmJyYW5kXCIsXG4gICAgXCJIZXJpbmdcIixcbiAgICBcIkhlcm1hbm5cIixcbiAgICBcIkhlcm1lY2tlXCIsXG4gICAgXCJIZXJtc1wiLFxuICAgIFwiSGVyb2xkXCIsXG4gICAgXCJIZXJybWFublwiLFxuICAgIFwiSGVyc2NobWFublwiLFxuICAgIFwiSGVydGVsXCIsXG4gICAgXCJIZXJ3ZWdcIixcbiAgICBcIkhlcndpZ1wiLFxuICAgIFwiSGVyemVuYmVyZ1wiLFxuICAgIFwiSGVzc1wiLFxuICAgIFwiSGVzc2VcIixcbiAgICBcIkhlc3Nla1wiLFxuICAgIFwiSGVzc2xlclwiLFxuICAgIFwiSGV0emxlclwiLFxuICAgIFwiSGV1Y2tcIixcbiAgICBcIkhleWRlbcO8bGxlclwiLFxuICAgIFwiSGllYmxcIixcbiAgICBcIkhpbGRlYnJhbmRcIixcbiAgICBcIkhpbGRlbmJyYW5kXCIsXG4gICAgXCJIaWxnZW5kb3JmXCIsXG4gICAgXCJIaWxsYXJkXCIsXG4gICAgXCJIaWxsZXJcIixcbiAgICBcIkhpbmdzZW5cIixcbiAgICBcIkhpbmdzdFwiLFxuICAgIFwiSGlucmljaHNcIixcbiAgICBcIkhpcnNjaFwiLFxuICAgIFwiSGlyc2NoYmVyZ1wiLFxuICAgIFwiSGlydFwiLFxuICAgIFwiSG9kZWFcIixcbiAgICBcIkhvZmZtYW5cIixcbiAgICBcIkhvZmZtYW5uXCIsXG4gICAgXCJIb2ZtYW5uXCIsXG4gICAgXCJIb2hlbmJlcmdlclwiLFxuICAgIFwiSG9obFwiLFxuICAgIFwiSG9oblwiLFxuICAgIFwiSG9obmhlaXNlclwiLFxuICAgIFwiSG9sZFwiLFxuICAgIFwiSG9sZHRcIixcbiAgICBcIkhvbGluc2tpXCIsXG4gICAgXCJIb2xsXCIsXG4gICAgXCJIb2x0ZnJldGVyXCIsXG4gICAgXCJIb2x6XCIsXG4gICAgXCJIb2x6ZGVwcGVcIixcbiAgICBcIkhvbHpuZXJcIixcbiAgICBcIkhvbW1lbFwiLFxuICAgIFwiSG9uelwiLFxuICAgIFwiSG9vc3NcIixcbiAgICBcIkhvcHBlXCIsXG4gICAgXCJIb3Jha1wiLFxuICAgIFwiSG9yblwiLFxuICAgIFwiSG9ybmFcIixcbiAgICBcIkhvcm51bmdcIixcbiAgICBcIkhvcnRcIixcbiAgICBcIkhvd2FyZFwiLFxuICAgIFwiSHViZXJcIixcbiAgICBcIkh1Y2tlc3RlaW5cIixcbiAgICBcIkh1ZGFrXCIsXG4gICAgXCJIdWViZWxcIixcbiAgICBcIkh1Z29cIixcbiAgICBcIkh1aG5cIixcbiAgICBcIkh1am9cIixcbiAgICBcIkh1a2VcIixcbiAgICBcIkh1bHNcIixcbiAgICBcIkh1bWJlcnRcIixcbiAgICBcIkh1bmVrZVwiLFxuICAgIFwiSHV0aFwiLFxuICAgIFwiSMOkYmVyXCIsXG4gICAgXCJIw6RmbmVyXCIsXG4gICAgXCJIw7Zja2VcIixcbiAgICBcIkjDtmZ0XCIsXG4gICAgXCJIw7ZobmVcIixcbiAgICBcIkjDtm5pZ1wiLFxuICAgIFwiSMO2cmR0XCIsXG4gICAgXCJIw7xiZW5iZWNrZXJcIixcbiAgICBcIkjDvGJsXCIsXG4gICAgXCJIw7xibmVyXCIsXG4gICAgXCJIw7xnZWxcIixcbiAgICBcIkjDvHR0Y2hlclwiLFxuICAgIFwiSMO8dHRlclwiLFxuICAgIFwiSWJlXCIsXG4gICAgXCJJaGx5XCIsXG4gICAgXCJJbGxpbmdcIixcbiAgICBcIklzYWtcIixcbiAgICBcIklzZWtlbm1laWVyXCIsXG4gICAgXCJJdHRcIixcbiAgICBcIkphY29iXCIsXG4gICAgXCJKYWNvYnNcIixcbiAgICBcIkphZ3VzY2hcIixcbiAgICBcIkphaG5cIixcbiAgICBcIkphaG5rZVwiLFxuICAgIFwiSmFrb2JzXCIsXG4gICAgXCJKYWt1YmN6eWtcIixcbiAgICBcIkphbWJvclwiLFxuICAgIFwiSmFtcm96eVwiLFxuICAgIFwiSmFuZGVyXCIsXG4gICAgXCJKYW5pY2hcIixcbiAgICBcIkphbmtlXCIsXG4gICAgXCJKYW5zZW5cIixcbiAgICBcIkphcmV0c1wiLFxuICAgIFwiSmFyb3NcIixcbiAgICBcIkphc2luc2tpXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkplZ29yb3ZcIixcbiAgICBcIkplbGxpbmdoYXVzXCIsXG4gICAgXCJKZW9yZ2FcIixcbiAgICBcIkplcnNjaGFiZWtcIixcbiAgICBcIkplc3NcIixcbiAgICBcIkpvaG5cIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJKb3NzYVwiLFxuICAgIFwiSnVja2VuXCIsXG4gICAgXCJKdW5nXCIsXG4gICAgXCJKdW5nYmx1dGhcIixcbiAgICBcIkp1bmd0b25cIixcbiAgICBcIkp1c3RcIixcbiAgICBcIkrDvHJnZW5zXCIsXG4gICAgXCJLYWN6bWFyZWtcIixcbiAgICBcIkthZXNtYWNoZXJcIixcbiAgICBcIkthaGxcIixcbiAgICBcIkthaGxlcnRcIixcbiAgICBcIkthaGxlc1wiLFxuICAgIFwiS2FobG1leWVyXCIsXG4gICAgXCJLYWlzZXJcIixcbiAgICBcIkthbGlub3dza2lcIixcbiAgICBcIkthbGxhYmlzXCIsXG4gICAgXCJLYWxsZW5zZWVcIixcbiAgICBcIkthbXBmXCIsXG4gICAgXCJLYW1wc2NodWx0ZVwiLFxuICAgIFwiS2FwcGVcIixcbiAgICBcIkthcHBsZXJcIixcbiAgICBcIkthcmhvZmZcIixcbiAgICBcIkthcnJhc3NcIixcbiAgICBcIkthcnN0XCIsXG4gICAgXCJLYXJzdGVuXCIsXG4gICAgXCJLYXJ1c1wiLFxuICAgIFwiS2Fzc1wiLFxuICAgIFwiS2FzdGVuXCIsXG4gICAgXCJLYXN0bmVyXCIsXG4gICAgXCJLYXR6aW5za2lcIixcbiAgICBcIkthdWZtYW5uXCIsXG4gICAgXCJLYXVsXCIsXG4gICAgXCJLYXVzZW1hbm5cIixcbiAgICBcIkthd29obFwiLFxuICAgIFwiS2F6bWFyZWtcIixcbiAgICBcIktlZHppZXJza2lcIixcbiAgICBcIktlaWxcIixcbiAgICBcIktlaW5lclwiLFxuICAgIFwiS2VsbGVyXCIsXG4gICAgXCJLZWxtXCIsXG4gICAgXCJLZW1wZVwiLFxuICAgIFwiS2VtcGVyXCIsXG4gICAgXCJLZW1wdGVyXCIsXG4gICAgXCJLZXJsXCIsXG4gICAgXCJLZXJuXCIsXG4gICAgXCJLZXNzZWxyaW5nXCIsXG4gICAgXCJLZXNzZWxzY2hsw6RnZXJcIixcbiAgICBcIktldHRlXCIsXG4gICAgXCJLZXR0ZW5pc1wiLFxuICAgIFwiS2V1dGVsXCIsXG4gICAgXCJLaWNrXCIsXG4gICAgXCJLaWVzc2xpbmdcIixcbiAgICBcIktpbmFkZXRlclwiLFxuICAgIFwiS2luemVsXCIsXG4gICAgXCJLaW56eVwiLFxuICAgIFwiS2lyY2hcIixcbiAgICBcIktpcnN0XCIsXG4gICAgXCJLaXNhYmFrYVwiLFxuICAgIFwiS2xhYXNcIixcbiAgICBcIktsYWJ1aG5cIixcbiAgICBcIktsYXBwZXJcIixcbiAgICBcIktsYXVkZXJcIixcbiAgICBcIktsYXVzXCIsXG4gICAgXCJLbGVlYmVyZ1wiLFxuICAgIFwiS2xlaWJlclwiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktsZWluZXJ0XCIsXG4gICAgXCJLbGVpbmluZ2VyXCIsXG4gICAgXCJLbGVpbm1hbm5cIixcbiAgICBcIktsZWluc3RldWJlclwiLFxuICAgIFwiS2xlaXNzXCIsXG4gICAgXCJLbGVtbWVcIixcbiAgICBcIktsaW1jemFrXCIsXG4gICAgXCJLbGluZ2VyXCIsXG4gICAgXCJLbGlua1wiLFxuICAgIFwiS2xvcHNjaFwiLFxuICAgIFwiS2xvc2VcIixcbiAgICBcIktsb3NzXCIsXG4gICAgXCJLbHVnZVwiLFxuICAgIFwiS2x1d2VcIixcbiAgICBcIktuYWJlXCIsXG4gICAgXCJLbmVpZmVsXCIsXG4gICAgXCJLbmV0c2NoXCIsXG4gICAgXCJLbmllc1wiLFxuICAgIFwiS25pcHBlbFwiLFxuICAgIFwiS25vYmVsXCIsXG4gICAgXCJLbm9ibGljaFwiLFxuICAgIFwiS25vbGxcIixcbiAgICBcIktub3JyXCIsXG4gICAgXCJLbm9yc2NoZWlkdFwiLFxuICAgIFwiS251dFwiLFxuICAgIFwiS29ic1wiLFxuICAgIFwiS29jaFwiLFxuICAgIFwiS29jaGFuXCIsXG4gICAgXCJLb2NrXCIsXG4gICAgXCJLb2N6dWxsYVwiLFxuICAgIFwiS29kZXJpc2NoXCIsXG4gICAgXCJLb2VobFwiLFxuICAgIFwiS29laGxlclwiLFxuICAgIFwiS29lbmlnXCIsXG4gICAgXCJLb2VzdGVyXCIsXG4gICAgXCJLb2ZmZXJzY2hsYWdlclwiLFxuICAgIFwiS29oYVwiLFxuICAgIFwiS29obGVcIixcbiAgICBcIktvaGxtYW5uXCIsXG4gICAgXCJLb2hubGVcIixcbiAgICBcIktvaHJ0XCIsXG4gICAgXCJLb2pcIixcbiAgICBcIktvbGJcIixcbiAgICBcIktvbGVpc2tpXCIsXG4gICAgXCJLb2xva2FzXCIsXG4gICAgXCJLb21vbGxcIixcbiAgICBcIktvbmllY3pueVwiLFxuICAgIFwiS29uaWdcIixcbiAgICBcIktvbm93XCIsXG4gICAgXCJLb255YVwiLFxuICAgIFwiS29vYlwiLFxuICAgIFwiS29wZlwiLFxuICAgIFwiS29zZW5rb3dcIixcbiAgICBcIktvc3RlclwiLFxuICAgIFwiS29zemV3c2tpXCIsXG4gICAgXCJLb3ViYWFcIixcbiAgICBcIktvdmFjc1wiLFxuICAgIFwiS293YWxpY2tcIixcbiAgICBcIktvd2FsaW5za2lcIixcbiAgICBcIktvemFraWV3aWN6XCIsXG4gICAgXCJLcmFiYmVcIixcbiAgICBcIktyYWZ0XCIsXG4gICAgXCJLcmFsXCIsXG4gICAgXCJLcmFtZXJcIixcbiAgICBcIktyYXVlbFwiLFxuICAgIFwiS3JhdXNcIixcbiAgICBcIktyYXVzZVwiLFxuICAgIFwiS3JhdXNwZVwiLFxuICAgIFwiS3JlYlwiLFxuICAgIFwiS3JlYnNcIixcbiAgICBcIktyZWlzc2lnXCIsXG4gICAgXCJLcmVzc2VcIixcbiAgICBcIktyZXV0elwiLFxuICAgIFwiS3JpZWdlclwiLFxuICAgIFwiS3JpcHBuZXJcIixcbiAgICBcIktyb2RpbmdlclwiLFxuICAgIFwiS3JvaG5cIixcbiAgICBcIktyb2xcIixcbiAgICBcIktyb25cIixcbiAgICBcIktydWVnZXJcIixcbiAgICBcIktydWdcIixcbiAgICBcIktydWdlclwiLFxuICAgIFwiS3J1bGxcIixcbiAgICBcIktydXNjaGluc2tpXCIsXG4gICAgXCJLcsOkbWVyXCIsXG4gICAgXCJLcsO2Y2tlcnRcIixcbiAgICBcIktyw7ZnZXJcIixcbiAgICBcIktyw7xnZXJcIixcbiAgICBcIkt1YmVyYVwiLFxuICAgIFwiS3VmYWhsXCIsXG4gICAgXCJLdWhsZWVcIixcbiAgICBcIkt1aG5lblwiLFxuICAgIFwiS3VsaW1hbm5cIixcbiAgICBcIkt1bG1hXCIsXG4gICAgXCJLdW1iZXJudXNzXCIsXG4gICAgXCJLdW1tbGVcIixcbiAgICBcIkt1bnpcIixcbiAgICBcIkt1cGZlclwiLFxuICAgIFwiS3VwcHJpb25cIixcbiAgICBcIkt1cHJpb25cIixcbiAgICBcIkt1cm5pY2tpXCIsXG4gICAgXCJLdXJyYXRcIixcbiAgICBcIkt1cnNjaGlsZ2VuXCIsXG4gICAgXCJLdXNjaGV3aXR6XCIsXG4gICAgXCJLdXNjaG1hbm5cIixcbiAgICBcIkt1c2tlXCIsXG4gICAgXCJLdXN0ZXJtYW5uXCIsXG4gICAgXCJLdXRzY2hlcmF1ZXJcIixcbiAgICBcIkt1dHpuZXJcIixcbiAgICBcIkt3YWR3b1wiLFxuICAgIFwiS8OkaGxlclwiLFxuICAgIFwiS8OkdGhlclwiLFxuICAgIFwiS8O2aGxlclwiLFxuICAgIFwiS8O2aHJicsO8Y2tcIixcbiAgICBcIkvDtmhyZVwiLFxuICAgIFwiS8O2bG90emVpXCIsXG4gICAgXCJLw7ZuaWdcIixcbiAgICBcIkvDtnBlcm5pY2tcIixcbiAgICBcIkvDtnNlb2dsdVwiLFxuICAgIFwiS8O6aG5cIixcbiAgICBcIkvDumhuZXJ0XCIsXG4gICAgXCJLw7xoblwiLFxuICAgIFwiS8O8aG5lbFwiLFxuICAgIFwiS8O8aG5lbXVuZFwiLFxuICAgIFwiS8O8aG5lcnRcIixcbiAgICBcIkvDvGhua2VcIixcbiAgICBcIkvDvHN0ZXJzXCIsXG4gICAgXCJLw7x0ZXJcIixcbiAgICBcIkxhYWNrXCIsXG4gICAgXCJMYWNrXCIsXG4gICAgXCJMYWRld2lnXCIsXG4gICAgXCJMYWtvbXlcIixcbiAgICBcIkxhbW1lcnRcIixcbiAgICBcIkxhbW9zXCIsXG4gICAgXCJMYW5kbWFublwiLFxuICAgIFwiTGFuZ1wiLFxuICAgIFwiTGFuZ2VcIixcbiAgICBcIkxhbmdmZWxkXCIsXG4gICAgXCJMYW5naGlydFwiLFxuICAgIFwiTGFuaWdcIixcbiAgICBcIkxhdWNrbmVyXCIsXG4gICAgXCJMYXVpbmdlclwiLFxuICAgIFwiTGF1csOpblwiLFxuICAgIFwiTGF1c2Vja2VyXCIsXG4gICAgXCJMYXV4XCIsXG4gICAgXCJMYXdzXCIsXG4gICAgXCJMYXhcIixcbiAgICBcIkxlYmVyZXJcIixcbiAgICBcIkxlaG1hbm5cIixcbiAgICBcIkxlaG5lclwiLFxuICAgIFwiTGVpYm9sZFwiLFxuICAgIFwiTGVpZGVcIixcbiAgICBcIkxlaW1iYWNoXCIsXG4gICAgXCJMZWlwb2xkXCIsXG4gICAgXCJMZWlzdFwiLFxuICAgIFwiTGVpdGVyXCIsXG4gICAgXCJMZWl0ZXJpdHpcIixcbiAgICBcIkxlaXRoZWltXCIsXG4gICAgXCJMZWl3ZXNtZWllclwiLFxuICAgIFwiTGVuZmVyc1wiLFxuICAgIFwiTGVua1wiLFxuICAgIFwiTGVuelwiLFxuICAgIFwiTGVuemVuXCIsXG4gICAgXCJMZW9cIixcbiAgICBcIkxlcHRoaW5cIixcbiAgICBcIkxlc2NoXCIsXG4gICAgXCJMZXNjaG5pa1wiLFxuICAgIFwiTGV0emVsdGVyXCIsXG4gICAgXCJMZXdpblwiLFxuICAgIFwiTGV3a2VcIixcbiAgICBcIkxleWNrZXNcIixcbiAgICBcIkxnXCIsXG4gICAgXCJMaWNodGVuZmVsZFwiLFxuICAgIFwiTGljaHRlbmhhZ2VuXCIsXG4gICAgXCJMaWNodGxcIixcbiAgICBcIkxpZWJhY2hcIixcbiAgICBcIkxpZWJlXCIsXG4gICAgXCJMaWViaWNoXCIsXG4gICAgXCJMaWVib2xkXCIsXG4gICAgXCJMaWVkZXJcIixcbiAgICBcIkxpZW5zaMO2ZnRcIixcbiAgICBcIkxpbmRlblwiLFxuICAgIFwiTGluZGVuYmVyZ1wiLFxuICAgIFwiTGluZGVubWF5ZXJcIixcbiAgICBcIkxpbmRuZXJcIixcbiAgICBcIkxpbmtlXCIsXG4gICAgXCJMaW5uZW5iYXVtXCIsXG4gICAgXCJMaXBwZVwiLFxuICAgIFwiTGlwc2tlXCIsXG4gICAgXCJMaXB1c1wiLFxuICAgIFwiTGlzY2hrYVwiLFxuICAgIFwiTG9iaW5nZXJcIixcbiAgICBcIkxvZ3NjaFwiLFxuICAgIFwiTG9obWFublwiLFxuICAgIFwiTG9ocmVcIixcbiAgICBcIkxvaHNlXCIsXG4gICAgXCJMb2thclwiLFxuICAgIFwiTG9vZ2VuXCIsXG4gICAgXCJMb3JlbnpcIixcbiAgICBcIkxvc2NoXCIsXG4gICAgXCJMb3NrYVwiLFxuICAgIFwiTG90dFwiLFxuICAgIFwiTG95XCIsXG4gICAgXCJMdWJpbmFcIixcbiAgICBcIkx1ZG9sZlwiLFxuICAgIFwiTHVmZnRcIixcbiAgICBcIkx1a29zY2hla1wiLFxuICAgIFwiTHV0amVcIixcbiAgICBcIkx1dHpcIixcbiAgICBcIkzDtnNlclwiLFxuICAgIFwiTMO2d2FcIixcbiAgICBcIkzDvGJrZVwiLFxuICAgIFwiTWFha1wiLFxuICAgIFwiTWFjemV5XCIsXG4gICAgXCJNYWRldHpreVwiLFxuICAgIFwiTWFkdWJ1a29cIixcbiAgICBcIk1haVwiLFxuICAgIFwiTWFpZXJcIixcbiAgICBcIk1haXNjaFwiLFxuICAgIFwiTWFsZWtcIixcbiAgICBcIk1hbGt1c1wiLFxuICAgIFwiTWFsbG1hbm5cIixcbiAgICBcIk1hbHVjaGFcIixcbiAgICBcIk1hbm5zXCIsXG4gICAgXCJNYW56XCIsXG4gICAgXCJNYXJhaHJlbnNcIixcbiAgICBcIk1hcmNoZXdza2lcIixcbiAgICBcIk1hcmdpc1wiLFxuICAgIFwiTWFya293c2tpXCIsXG4gICAgXCJNYXJsXCIsXG4gICAgXCJNYXJuZXJcIixcbiAgICBcIk1hcnF1YXJ0XCIsXG4gICAgXCJNYXJzY2hla1wiLFxuICAgIFwiTWFydGVsXCIsXG4gICAgXCJNYXJ0ZW5cIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiTWFyeFwiLFxuICAgIFwiTWFyeGVuXCIsXG4gICAgXCJNYXRoZXNcIixcbiAgICBcIk1hdGhpZXNcIixcbiAgICBcIk1hdGhpc3ppa1wiLFxuICAgIFwiTWF0c2Noa2VcIixcbiAgICBcIk1hdHRlcm5cIixcbiAgICBcIk1hdHRoZXNcIixcbiAgICBcIk1hdHVsYVwiLFxuICAgIFwiTWF1XCIsXG4gICAgXCJNYXVyZXJcIixcbiAgICBcIk1hdXJvZmZcIixcbiAgICBcIk1heVwiLFxuICAgIFwiTWF5YmFjaFwiLFxuICAgIFwiTWF5ZXJcIixcbiAgICBcIk1lYm9sZFwiLFxuICAgIFwiTWVobFwiLFxuICAgIFwiTWVobGhvcm5cIixcbiAgICBcIk1laGxvcm5cIixcbiAgICBcIk1laWVyXCIsXG4gICAgXCJNZWlzY2hcIixcbiAgICBcIk1laXNzbmVyXCIsXG4gICAgXCJNZWxvbmlcIixcbiAgICBcIk1lbHplclwiLFxuICAgIFwiTWVuZ2FcIixcbiAgICBcIk1lbm5lXCIsXG4gICAgXCJNZW5zYWhcIixcbiAgICBcIk1lbnNpbmdcIixcbiAgICBcIk1lcmtlbFwiLFxuICAgIFwiTWVyc2VidXJnXCIsXG4gICAgXCJNZXJ0ZW5zXCIsXG4gICAgXCJNZXNsb2hcIixcbiAgICBcIk1ldHpnZXJcIixcbiAgICBcIk1ldHpuZXJcIixcbiAgICBcIk1ld2VzXCIsXG4gICAgXCJNZXllclwiLFxuICAgIFwiTWljaGFsbGVrXCIsXG4gICAgXCJNaWNoZWxcIixcbiAgICBcIk1pZWxrZVwiLFxuICAgIFwiTWlraXRlbmtvXCIsXG4gICAgXCJNaWxkZVwiLFxuICAgIFwiTWluYWhcIixcbiAgICBcIk1pbnR6bGFmZlwiLFxuICAgIFwiTW9ja2VuaGF1cHRcIixcbiAgICBcIk1vZWRlXCIsXG4gICAgXCJNb2VkbFwiLFxuICAgIFwiTW9lbGxlclwiLFxuICAgIFwiTW9ndWVuYXJhXCIsXG4gICAgXCJNb2hyXCIsXG4gICAgXCJNb2hyaGFyZFwiLFxuICAgIFwiTW9saXRvclwiLFxuICAgIFwiTW9sbFwiLFxuICAgIFwiTW9sbGVyXCIsXG4gICAgXCJNb2x6YW5cIixcbiAgICBcIk1vbnRhZ1wiLFxuICAgIFwiTW9vcm1hbm5cIixcbiAgICBcIk1vcmRob3JzdFwiLFxuICAgIFwiTW9yZ2Vuc3Rlcm5cIixcbiAgICBcIk1vcmhlbGZlclwiLFxuICAgIFwiTW9yaXR6XCIsXG4gICAgXCJNb3NlclwiLFxuICAgIFwiTW90Y2hlYm9uXCIsXG4gICAgXCJNb3R6ZW5iYsOkY2tlclwiLFxuICAgIFwiTXJ1Z2FsbGFcIixcbiAgICBcIk11Y2tlbnRoYWxlclwiLFxuICAgIFwiTXVlc1wiLFxuICAgIFwiTXVsbGVyXCIsXG4gICAgXCJNdWxyYWluXCIsXG4gICAgXCJNw6RjaHRpZ1wiLFxuICAgIFwiTcOkZGVyXCIsXG4gICAgXCJNw7Zja3NcIixcbiAgICBcIk3DtmdlbmJ1cmdcIixcbiAgICBcIk3DtmhzbmVyXCIsXG4gICAgXCJNw7ZsZG5lclwiLFxuICAgIFwiTcO2bGxlbmJlY2tcIixcbiAgICBcIk3DtmxsZXJcIixcbiAgICBcIk3DtmxsaW5nZXJcIixcbiAgICBcIk3DtnJzY2hcIixcbiAgICBcIk3DvGhsZWlzXCIsXG4gICAgXCJNw7xsbGVyXCIsXG4gICAgXCJNw7xuY2hcIixcbiAgICBcIk5hYmVpblwiLFxuICAgIFwiTmFib3dcIixcbiAgICBcIk5hZ2VsXCIsXG4gICAgXCJOYW5uZW5cIixcbiAgICBcIk5hc3R2b2dlbFwiLFxuICAgIFwiTmF1XCIsXG4gICAgXCJOYXViZXJ0XCIsXG4gICAgXCJOYXVtYW5uXCIsXG4gICAgXCJOZVwiLFxuICAgIFwiTmVpbWtlXCIsXG4gICAgXCJOZXJpdXNcIixcbiAgICBcIk5ldWJhdWVyXCIsXG4gICAgXCJOZXViZXJ0XCIsXG4gICAgXCJOZXVlbmRvcmZcIixcbiAgICBcIk5ldW1haXJcIixcbiAgICBcIk5ldW1hbm5cIixcbiAgICBcIk5ldXBlcnRcIixcbiAgICBcIk5ldXJvaHJcIixcbiAgICBcIk5ldXNjaHdhbmRlclwiLFxuICAgIFwiTmV3dG9uXCIsXG4gICAgXCJOZXlcIixcbiAgICBcIk5pY29sYXlcIixcbiAgICBcIk5pZWRlcm1laWVyXCIsXG4gICAgXCJOaWVrbGF1c29uXCIsXG4gICAgXCJOaWtsYXVzXCIsXG4gICAgXCJOaXR6c2NoZVwiLFxuICAgIFwiTm9hY2tcIixcbiAgICBcIk5vZGxlclwiLFxuICAgIFwiTm9sdGVcIixcbiAgICBcIk5vcm1hbm5cIixcbiAgICBcIk5vcnJpc1wiLFxuICAgIFwiTm9ydGhvZmZcIixcbiAgICBcIk5vd2FrXCIsXG4gICAgXCJOdXNzYmVja1wiLFxuICAgIFwiTndhY2h1a3d1XCIsXG4gICAgXCJOeXRyYVwiLFxuICAgIFwiTsO2aFwiLFxuICAgIFwiT2JlcmVtXCIsXG4gICAgXCJPYmVyZ2bDtmxsXCIsXG4gICAgXCJPYmVybWFpZXJcIixcbiAgICBcIk9jaHNcIixcbiAgICBcIk9lc2VyXCIsXG4gICAgXCJPbGJyaWNoXCIsXG4gICAgXCJPbm5lblwiLFxuICAgIFwiT3BoZXlcIixcbiAgICBcIk9wcG9uZ1wiLFxuICAgIFwiT3J0aFwiLFxuICAgIFwiT3J0aG1hbm5cIixcbiAgICBcIk9zY2hrZW5hdFwiLFxuICAgIFwiT3NlaVwiLFxuICAgIFwiT3NlbmJlcmdcIixcbiAgICBcIk9zdGVuZGFycFwiLFxuICAgIFwiT3N0d2FsZFwiLFxuICAgIFwiT3R0ZVwiLFxuICAgIFwiT3R0b1wiLFxuICAgIFwiUGFlc2xlclwiLFxuICAgIFwiUGFqb25rXCIsXG4gICAgXCJQYWxsZW50aW5cIixcbiAgICBcIlBhbnppZ1wiLFxuICAgIFwiUGFzY2hrZVwiLFxuICAgIFwiUGF0endhaGxcIixcbiAgICBcIlBhdWtuZXJcIixcbiAgICBcIlBlc2VsbWFuXCIsXG4gICAgXCJQZXRlclwiLFxuICAgIFwiUGV0ZXJzXCIsXG4gICAgXCJQZXR6b2xkXCIsXG4gICAgXCJQZmVpZmZlclwiLFxuICAgIFwiUGZlbm5pZ1wiLFxuICAgIFwiUGZlcnNpY2hcIixcbiAgICBcIlBmaW5nc3RlblwiLFxuICAgIFwiUGZsaWVnZXJcIixcbiAgICBcIlBmbMO8Z25lclwiLFxuICAgIFwiUGhpbGlwcFwiLFxuICAgIFwiUGljaGxtYWllclwiLFxuICAgIFwiUGllc2tlclwiLFxuICAgIFwiUGlldHNjaFwiLFxuICAgIFwiUGluZ3BhbmtcIixcbiAgICBcIlBpbm5vY2tcIixcbiAgICBcIlBpcHBpZ1wiLFxuICAgIFwiUGl0c2NodWdpblwiLFxuICAgIFwiUGxhbmtcIixcbiAgICBcIlBsYXNzXCIsXG4gICAgXCJQbGF0emVyXCIsXG4gICAgXCJQbGF1a1wiLFxuICAgIFwiUGxhdXR6XCIsXG4gICAgXCJQbGV0c2NoXCIsXG4gICAgXCJQbG90eml0emthXCIsXG4gICAgXCJQb2VoblwiLFxuICAgIFwiUG9lc2NobFwiLFxuICAgIFwiUG9nb3J6ZWxza2lcIixcbiAgICBcIlBvaGxcIixcbiAgICBcIlBvaGxhbmRcIixcbiAgICBcIlBvaGxlXCIsXG4gICAgXCJQb2xpZmthXCIsXG4gICAgXCJQb2xpenppXCIsXG4gICAgXCJQb2xsbcOkY2hlclwiLFxuICAgIFwiUG9tcFwiLFxuICAgIFwiUG9uaXR6c2NoXCIsXG4gICAgXCJQb3JzY2hlXCIsXG4gICAgXCJQb3J0aFwiLFxuICAgIFwiUG9zY2htYW5uXCIsXG4gICAgXCJQb3NlclwiLFxuICAgIFwiUG90dGVsXCIsXG4gICAgXCJQcmFoXCIsXG4gICAgXCJQcmFuZ2VcIixcbiAgICBcIlByZWRpZ2VyXCIsXG4gICAgXCJQcmVzc2xlclwiLFxuICAgIFwiUHJldWtcIixcbiAgICBcIlByZXVzc1wiLFxuICAgIFwiUHJleVwiLFxuICAgIFwiUHJpZW1lclwiLFxuICAgIFwiUHJvc2tlXCIsXG4gICAgXCJQdXNjaFwiLFxuICAgIFwiUMO2Y2hlXCIsXG4gICAgXCJQw7ZnZVwiLFxuICAgIFwiUmFhYmVcIixcbiAgICBcIlJhYmVuc3RlaW5cIixcbiAgICBcIlJhY2hcIixcbiAgICBcIlJhZHRrZVwiLFxuICAgIFwiUmFoblwiLFxuICAgIFwiUmFuZnRsXCIsXG4gICAgXCJSYW5nZW5cIixcbiAgICBcIlJhbnpcIixcbiAgICBcIlJhcHBcIixcbiAgICBcIlJhdGhcIixcbiAgICBcIlJhdVwiLFxuICAgIFwiUmF1YnVjaFwiLFxuICAgIFwiUmF1a3VjXCIsXG4gICAgXCJSYXV0ZW5rcmFuelwiLFxuICAgIFwiUmVod2FnZW5cIixcbiAgICBcIlJlaWJlclwiLFxuICAgIFwiUmVpY2hhcmR0XCIsXG4gICAgXCJSZWljaGVsXCIsXG4gICAgXCJSZWljaGxpbmdcIixcbiAgICBcIlJlaWZcIixcbiAgICBcIlJlaWZlbnJhdGhcIixcbiAgICBcIlJlaW1hbm5cIixcbiAgICBcIlJlaW5iZXJnXCIsXG4gICAgXCJSZWluZWx0XCIsXG4gICAgXCJSZWluaGFyZHRcIixcbiAgICBcIlJlaW5rZVwiLFxuICAgIFwiUmVpdHplXCIsXG4gICAgXCJSZW5rXCIsXG4gICAgXCJSZW50elwiLFxuICAgIFwiUmVuelwiLFxuICAgIFwiUmVwcGluXCIsXG4gICAgXCJSZXN0bGVcIixcbiAgICBcIlJlc3RvcmZmXCIsXG4gICAgXCJSZXR6a2VcIixcbiAgICBcIlJldWJlclwiLFxuICAgIFwiUmV1bWFublwiLFxuICAgIFwiUmV1c1wiLFxuICAgIFwiUmV1c3NcIixcbiAgICBcIlJldXNzZVwiLFxuICAgIFwiUmhlZGVyXCIsXG4gICAgXCJSaG9kZW5cIixcbiAgICBcIlJpY2hhcmRzXCIsXG4gICAgXCJSaWNodGVyXCIsXG4gICAgXCJSaWVkZWxcIixcbiAgICBcIlJpZWRpZ2VyXCIsXG4gICAgXCJSaWVnZXJcIixcbiAgICBcIlJpZWttYW5uXCIsXG4gICAgXCJSaWVwbFwiLFxuICAgIFwiUmllcm1laWVyXCIsXG4gICAgXCJSaWVzdGVyXCIsXG4gICAgXCJSaWV0aG3DvGxsZXJcIixcbiAgICBcIlJpZXRtw7xsbGVyXCIsXG4gICAgXCJSaWV0c2NoZXJcIixcbiAgICBcIlJpbmdlbFwiLFxuICAgIFwiUmluZ2VyXCIsXG4gICAgXCJSaW5rXCIsXG4gICAgXCJSaXBrZW5cIixcbiAgICBcIlJpdG9zZWtcIixcbiAgICBcIlJpdHNjaGVsXCIsXG4gICAgXCJSaXR0ZXJcIixcbiAgICBcIlJpdHR3ZWdcIixcbiAgICBcIlJpdHpcIixcbiAgICBcIlJvYmFcIixcbiAgICBcIlJvY2ttZWllclwiLFxuICAgIFwiUm9kZWhhdVwiLFxuICAgIFwiUm9kb3dza2lcIixcbiAgICBcIlJvZWNrZXJcIixcbiAgICBcIlJvZ2dhdHpcIixcbiAgICBcIlJvaGzDpG5kZXJcIixcbiAgICBcIlJvaHJlclwiLFxuICAgIFwiUm9rb3NzYVwiLFxuICAgIFwiUm9sZWRlclwiLFxuICAgIFwiUm9sb2ZmXCIsXG4gICAgXCJSb29zXCIsXG4gICAgXCJSb3NiYWNoXCIsXG4gICAgXCJSb3NjaGluc2t5XCIsXG4gICAgXCJSb3NlXCIsXG4gICAgXCJSb3NlbmF1ZXJcIixcbiAgICBcIlJvc2VuYmF1ZXJcIixcbiAgICBcIlJvc2VudGhhbFwiLFxuICAgIFwiUm9za3NjaFwiLFxuICAgIFwiUm9zc2JlcmdcIixcbiAgICBcIlJvc3NsZXJcIixcbiAgICBcIlJvdGhcIixcbiAgICBcIlJvdGhlclwiLFxuICAgIFwiUnVjaFwiLFxuICAgIFwiUnVja2Rlc2NoZWxcIixcbiAgICBcIlJ1bXBmXCIsXG4gICAgXCJSdXBwcmVjaHRcIixcbiAgICBcIlJ1dGhcIixcbiAgICBcIlJ5amlraFwiLFxuICAgIFwiUnl6aWhcIixcbiAgICBcIlLDpGRsZXJcIixcbiAgICBcIlLDpG50c2NoXCIsXG4gICAgXCJSw7ZkaWdlclwiLFxuICAgIFwiUsO2c2VcIixcbiAgICBcIlLDtnR0Z2VyXCIsXG4gICAgXCJSw7xja2VyXCIsXG4gICAgXCJSw7xkaWdlclwiLFxuICAgIFwiUsO8dGVyXCIsXG4gICAgXCJTYWNoc2VcIixcbiAgICBcIlNhY2tcIixcbiAgICBcIlNhZmxhbmlzXCIsXG4gICAgXCJTYWdhZmVcIixcbiAgICBcIlNhZ29uYXNcIixcbiAgICBcIlNhaG5lclwiLFxuICAgIFwiU2FpbGVcIixcbiAgICBcIlNhaWxlclwiLFxuICAgIFwiU2Fsb3dcIixcbiAgICBcIlNhbHplclwiLFxuICAgIFwiU2Fsem1hbm5cIixcbiAgICBcIlNhbW1lcnRcIixcbiAgICBcIlNhbmRlclwiLFxuICAgIFwiU2FydmFyaVwiLFxuICAgIFwiU2F0dGVsbWFpZXJcIixcbiAgICBcIlNhdWVyXCIsXG4gICAgXCJTYXVlcmxhbmRcIixcbiAgICBcIlNhdW13ZWJlclwiLFxuICAgIFwiU2F2b2lhXCIsXG4gICAgXCJTY2NcIixcbiAgICBcIlNjaGFjaHRcIixcbiAgICBcIlNjaGFlZmVyXCIsXG4gICAgXCJTY2hhZmZhcnppa1wiLFxuICAgIFwiU2NoYWhiYXNpYW5cIixcbiAgICBcIlNjaGFyZlwiLFxuICAgIFwiU2NoZWRsZXJcIixcbiAgICBcIlNjaGVlclwiLFxuICAgIFwiU2NoZWxrXCIsXG4gICAgXCJTY2hlbGxlbmJlY2tcIixcbiAgICBcIlNjaGVtYmVyYVwiLFxuICAgIFwiU2NoZW5rXCIsXG4gICAgXCJTY2hlcmJhcnRoXCIsXG4gICAgXCJTY2hlcmVyXCIsXG4gICAgXCJTY2hlcnNpbmdcIixcbiAgICBcIlNjaGVyelwiLFxuICAgIFwiU2NoZXVyZXJcIixcbiAgICBcIlNjaGV1cmluZ1wiLFxuICAgIFwiU2NoZXl0dFwiLFxuICAgIFwiU2NoaWVsa2VcIixcbiAgICBcIlNjaGllc2tvd1wiLFxuICAgIFwiU2NoaWxkaGF1ZXJcIixcbiAgICBcIlNjaGlsbGluZ1wiLFxuICAgIFwiU2NoaW1hXCIsXG4gICAgXCJTY2hpbW1lclwiLFxuICAgIFwiU2NoaW5kemllbG9yelwiLFxuICAgIFwiU2NoaXJtZXJcIixcbiAgICBcIlNjaGlycm1laXN0ZXJcIixcbiAgICBcIlNjaGxhY2h0ZXJcIixcbiAgICBcIlNjaGxhbmdlblwiLFxuICAgIFwiU2NobGF3aXR6XCIsXG4gICAgXCJTY2hsZWNodHdlZ1wiLFxuICAgIFwiU2NobGV5XCIsXG4gICAgXCJTY2hsaWNodFwiLFxuICAgIFwiU2NobGl0emVyXCIsXG4gICAgXCJTY2htYWx6bGVcIixcbiAgICBcIlNjaG1pZFwiLFxuICAgIFwiU2NobWlkdFwiLFxuICAgIFwiU2NobWlkdGNoZW5cIixcbiAgICBcIlNjaG1pdHRcIixcbiAgICBcIlNjaG1pdHpcIixcbiAgICBcIlNjaG11aGxcIixcbiAgICBcIlNjaG5laWRlclwiLFxuICAgIFwiU2NobmVsdGluZ1wiLFxuICAgIFwiU2NobmllZGVyXCIsXG4gICAgXCJTY2huaWVkZXJtZWllclwiLFxuICAgIFwiU2NobsO8cmVyXCIsXG4gICAgXCJTY2hvYmVyZ1wiLFxuICAgIFwiU2Nob2x6XCIsXG4gICAgXCJTY2hvbmJlcmdcIixcbiAgICBcIlNjaG9uZGVsbWFpZXJcIixcbiAgICBcIlNjaG9yclwiLFxuICAgIFwiU2Nob3R0XCIsXG4gICAgXCJTY2hvdHRtYW5uXCIsXG4gICAgXCJTY2hvdXJlblwiLFxuICAgIFwiU2NocmFkZXJcIixcbiAgICBcIlNjaHJhbW1cIixcbiAgICBcIlNjaHJlY2tcIixcbiAgICBcIlNjaHJlaWJlclwiLFxuICAgIFwiU2NocmVpbmVyXCIsXG4gICAgXCJTY2hyZWl0ZXJcIixcbiAgICBcIlNjaHJvZGVyXCIsXG4gICAgXCJTY2hyw7ZkZXJcIixcbiAgICBcIlNjaHVlcm1hbm5cIixcbiAgICBcIlNjaHVmZlwiLFxuICAgIFwiU2NodWhhalwiLFxuICAgIFwiU2NodWxkdFwiLFxuICAgIFwiU2NodWx0XCIsXG4gICAgXCJTY2h1bHRlXCIsXG4gICAgXCJTY2h1bHR6XCIsXG4gICAgXCJTY2h1bHR6ZVwiLFxuICAgIFwiU2NodWx6XCIsXG4gICAgXCJTY2h1bHplXCIsXG4gICAgXCJTY2h1bWFjaGVyXCIsXG4gICAgXCJTY2h1bWFublwiLFxuICAgIFwiU2NodXBwXCIsXG4gICAgXCJTY2h1cmlcIixcbiAgICBcIlNjaHVzdGVyXCIsXG4gICAgXCJTY2h3YWJcIixcbiAgICBcIlNjaHdhbG1cIixcbiAgICBcIlNjaHdhbmJlY2tcIixcbiAgICBcIlNjaHdhbmRrZVwiLFxuICAgIFwiU2Nod2FuaXR6XCIsXG4gICAgXCJTY2h3YXJ0aG9mZlwiLFxuICAgIFwiU2Nod2FydHpcIixcbiAgICBcIlNjaHdhcnpcIixcbiAgICBcIlNjaHdhcnplclwiLFxuICAgIFwiU2Nod2FyemtvcGZcIixcbiAgICBcIlNjaHdhcnptZWllclwiLFxuICAgIFwiU2Nod2F0bG9cIixcbiAgICBcIlNjaHdlaXNmdXJ0aFwiLFxuICAgIFwiU2Nod2VubmVuXCIsXG4gICAgXCJTY2h3ZXJkdG5lclwiLFxuICAgIFwiU2Nod2lkZGVcIixcbiAgICBcIlNjaHdpcmtzY2hsaWVzXCIsXG4gICAgXCJTY2h3dWNob3dcIixcbiAgICBcIlNjaMOkZmVyXCIsXG4gICAgXCJTY2jDpGZmZWxcIixcbiAgICBcIlNjaMOkZmZlclwiLFxuICAgIFwiU2Now6RuaW5nXCIsXG4gICAgXCJTY2jDtmNrZWxcIixcbiAgICBcIlNjaMO2bmJhbGxcIixcbiAgICBcIlNjaMO2bmJlY2tcIixcbiAgICBcIlNjaMO2bmJlcmdcIixcbiAgICBcIlNjaMO2bmViZWNrXCIsXG4gICAgXCJTY2jDtm5lbmJlcmdlclwiLFxuICAgIFwiU2Now7ZuZmVsZFwiLFxuICAgIFwiU2Now7ZuaGVyclwiLFxuICAgIFwiU2Now7ZubGViZVwiLFxuICAgIFwiU2Now7Z0elwiLFxuICAgIFwiU2Now7xsZXJcIixcbiAgICBcIlNjaMO8cHBlbFwiLFxuICAgIFwiU2Now7x0elwiLFxuICAgIFwiU2Now7x0emVcIixcbiAgICBcIlNlZWdlclwiLFxuICAgIFwiU2VlbGlnXCIsXG4gICAgXCJTZWhsc1wiLFxuICAgIFwiU2VpYm9sZFwiLFxuICAgIFwiU2VpZGVsXCIsXG4gICAgXCJTZWlkZXJzXCIsXG4gICAgXCJTZWlnZWxcIixcbiAgICBcIlNlaWxlclwiLFxuICAgIFwiU2VpdHpcIixcbiAgICBcIlNlbWlzY2hcIixcbiAgICBcIlNlbmtlbFwiLFxuICAgIFwiU2V3YWxkXCIsXG4gICAgXCJTaWViZWxcIixcbiAgICBcIlNpZWJlcnRcIixcbiAgICBcIlNpZWdsaW5nXCIsXG4gICAgXCJTaWVsZW1hbm5cIixcbiAgICBcIlNpZW1vblwiLFxuICAgIFwiU2llbmVyXCIsXG4gICAgXCJTaWV2ZXJzXCIsXG4gICAgXCJTaWV3ZXJ0XCIsXG4gICAgXCJTaWhsZXJcIixcbiAgICBcIlNpbGxhaFwiLFxuICAgIFwiU2ltb25cIixcbiAgICBcIlNpbm5odWJlclwiLFxuICAgIFwiU2lzY2hrYVwiLFxuICAgIFwiU2tpYmlja2lcIixcbiAgICBcIlNsYWRla1wiLFxuICAgIFwiU2xvdHRhXCIsXG4gICAgXCJTbWllamFcIixcbiAgICBcIlNvYm9sbFwiLFxuICAgIFwiU29rb2xvd3NraVwiLFxuICAgIFwiU29sbGVyXCIsXG4gICAgXCJTb2xsbmVyXCIsXG4gICAgXCJTb21tZXJcIixcbiAgICBcIlNvbXNzaWNoXCIsXG4gICAgXCJTb25uXCIsXG4gICAgXCJTb25uYWJlbmRcIixcbiAgICBcIlNwYWhuXCIsXG4gICAgXCJTcGFua1wiLFxuICAgIFwiU3BlbG1leWVyXCIsXG4gICAgXCJTcGllZ2VsYnVyZ1wiLFxuICAgIFwiU3BpZWx2b2dlbFwiLFxuICAgIFwiU3Bpbm5lclwiLFxuICAgIFwiU3BpdHptw7xsbGVyXCIsXG4gICAgXCJTcGxpbnRlclwiLFxuICAgIFwiU3BvcnJlclwiLFxuICAgIFwiU3ByZW5nZXJcIixcbiAgICBcIlNww7Z0dGVsXCIsXG4gICAgXCJTdGFobFwiLFxuICAgIFwiU3RhbmdcIixcbiAgICBcIlN0YW5nZXJcIixcbiAgICBcIlN0YXVzc1wiLFxuICAgIFwiU3RlZGluZ1wiLFxuICAgIFwiU3RlZmZlblwiLFxuICAgIFwiU3RlZmZueVwiLFxuICAgIFwiU3RlaWRsXCIsXG4gICAgXCJTdGVpZ2F1ZlwiLFxuICAgIFwiU3RlaW5cIixcbiAgICBcIlN0ZWluZWNrZVwiLFxuICAgIFwiU3RlaW5lcnRcIixcbiAgICBcIlN0ZWlua2FtcFwiLFxuICAgIFwiU3RlaW5tZXR6XCIsXG4gICAgXCJTdGVsa2Vuc1wiLFxuICAgIFwiU3RlbmdlbFwiLFxuICAgIFwiU3RlbmdsXCIsXG4gICAgXCJTdGVuemVsXCIsXG4gICAgXCJTdGVwYW5vdlwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3Rlcm5cIixcbiAgICBcIlN0ZXVrXCIsXG4gICAgXCJTdGllZlwiLFxuICAgIFwiU3RpZmVsXCIsXG4gICAgXCJTdG9sbFwiLFxuICAgIFwiU3RvbGxlXCIsXG4gICAgXCJTdG9selwiLFxuICAgIFwiU3RvcmxcIixcbiAgICBcIlN0b3JwXCIsXG4gICAgXCJTdG91dGplc2RpamtcIixcbiAgICBcIlN0cmF0bWFublwiLFxuICAgIFwiU3RyYXViXCIsXG4gICAgXCJTdHJhdXNhXCIsXG4gICAgXCJTdHJlY2tcIixcbiAgICBcIlN0cmVlc2VcIixcbiAgICBcIlN0cmVnZVwiLFxuICAgIFwiU3RyZWl0XCIsXG4gICAgXCJTdHJlbGxlclwiLFxuICAgIFwiU3RyaWVkZXJcIixcbiAgICBcIlN0cmllemVsXCIsXG4gICAgXCJTdHJvZ2llc1wiLFxuICAgIFwiU3Ryb2hzY2hhbmtcIixcbiAgICBcIlN0cnVuelwiLFxuICAgIFwiU3RydXR6XCIsXG4gICAgXCJTdHViZVwiLFxuICAgIFwiU3TDtmNrZXJ0XCIsXG4gICAgXCJTdMO2cHBsZXJcIixcbiAgICBcIlN0w7Z3ZXJcIixcbiAgICBcIlN0w7xybWVyXCIsXG4gICAgXCJTdWZmYVwiLFxuICAgIFwiU3VqZXdcIixcbiAgICBcIlN1c3NtYW5uXCIsXG4gICAgXCJTdXRoZVwiLFxuICAgIFwiU3V0c2NoZXRcIixcbiAgICBcIlN3aWxsaW1zXCIsXG4gICAgXCJTemVuZHJlaVwiLFxuICAgIFwiU8O2cmVuXCIsXG4gICAgXCJTw7xydGhcIixcbiAgICBcIlRhZmVsbWVpZXJcIixcbiAgICBcIlRhbmdcIixcbiAgICBcIlRhc2NoZVwiLFxuICAgIFwiVGF1ZnJhdHNob2ZlclwiLFxuICAgIFwiVGVnZXRob2ZcIixcbiAgICBcIlRlaWNobWFublwiLFxuICAgIFwiVGVwcGVyXCIsXG4gICAgXCJUZXJoZWlkZW5cIixcbiAgICBcIlRlcmxlY2tpXCIsXG4gICAgXCJUZXVmZWxcIixcbiAgICBcIlRoZWVsZVwiLFxuICAgIFwiVGhpZWtlXCIsXG4gICAgXCJUaGltbVwiLFxuICAgIFwiVGhpb21hc1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJUaHJpZW5lXCIsXG4gICAgXCJUaHLDpG5oYXJkdFwiLFxuICAgIFwiVGh1c3RcIixcbiAgICBcIlRoeXNzZW5cIixcbiAgICBcIlRow7ZuZVwiLFxuICAgIFwiVGlkb3dcIixcbiAgICBcIlRpZWR0a2VcIixcbiAgICBcIlRpZXR6ZVwiLFxuICAgIFwiVGlsZ25lclwiLFxuICAgIFwiVGlsbGFja1wiLFxuICAgIFwiVGltbWVybWFublwiLFxuICAgIFwiVGlzY2hsZXJcIixcbiAgICBcIlRpc2NobWFublwiLFxuICAgIFwiVGl0dG1hblwiLFxuICAgIFwiVGl2b250c2NoaWtcIixcbiAgICBcIlRvbmF0XCIsXG4gICAgXCJUb25uXCIsXG4gICAgXCJUcmFtcGVsaVwiLFxuICAgIFwiVHJhdXRoXCIsXG4gICAgXCJUcmF1dG1hbm5cIixcbiAgICBcIlRyYXZhblwiLFxuICAgIFwiVHJlZmZcIixcbiAgICBcIlRyZW1tZWxcIixcbiAgICBcIlRyZXNzXCIsXG4gICAgXCJUc2Ftb25pa2lhblwiLFxuICAgIFwiVHNjaGllcnNcIixcbiAgICBcIlRzY2hpcmNoXCIsXG4gICAgXCJUdWNoXCIsXG4gICAgXCJUdWNob2xrZVwiLFxuICAgIFwiVHVkb3dcIixcbiAgICBcIlR1c2NobW9cIixcbiAgICBcIlTDpGNobFwiLFxuICAgIFwiVMO2YmJlblwiLFxuICAgIFwiVMO2cGZlclwiLFxuICAgIFwiVWhsZW1hbm5cIixcbiAgICBcIlVobGlnXCIsXG4gICAgXCJVaHJpZ1wiLFxuICAgIFwiVWliZWxcIixcbiAgICBcIlVsaWN6a2FcIixcbiAgICBcIlVsbG1hbm5cIixcbiAgICBcIlVsbHJpY2hcIixcbiAgICBcIlVtYmFjaFwiLFxuICAgIFwiVW1sYXVmdFwiLFxuICAgIFwiVW1taW5nZXJcIixcbiAgICBcIlVuZ2VyXCIsXG4gICAgXCJVbnRlcnBhaW50bmVyXCIsXG4gICAgXCJVcmJhblwiLFxuICAgIFwiVXJiYW5pYWtcIixcbiAgICBcIlVyYmFuc2t5XCIsXG4gICAgXCJVcmhpZ1wiLFxuICAgIFwiVmFobGVuc2llY2tcIixcbiAgICBcIlZhblwiLFxuICAgIFwiVmFuZ2VybWFpblwiLFxuICAgIFwiVmF0ZXJcIixcbiAgICBcIlZlbmdoYXVzXCIsXG4gICAgXCJWZXJuaWVzdFwiLFxuICAgIFwiVmVyemlcIixcbiAgICBcIlZleVwiLFxuICAgIFwiVmllbGxlaG5lclwiLFxuICAgIFwiVmlld2VnXCIsXG4gICAgXCJWb2Vsa2VsXCIsXG4gICAgXCJWb2dlbFwiLFxuICAgIFwiVm9nZWxnc2FuZ1wiLFxuICAgIFwiVm9ndFwiLFxuICAgIFwiVm9pZ3RcIixcbiAgICBcIlZva3VobFwiLFxuICAgIFwiVm9sa1wiLFxuICAgIFwiVm9sa2VyXCIsXG4gICAgXCJWb2xrbWFublwiLFxuICAgIFwiVm9uXCIsXG4gICAgXCJWb25hXCIsXG4gICAgXCJWb250ZWluXCIsXG4gICAgXCJXYWNoZW5icnVubmVyXCIsXG4gICAgXCJXYWNodGVsXCIsXG4gICAgXCJXYWduZXJcIixcbiAgICBcIldhaWJlbFwiLFxuICAgIFwiV2FrYW5cIixcbiAgICBcIldhbGRtYW5uXCIsXG4gICAgXCJXYWxsbmVyXCIsXG4gICAgXCJXYWxsc3RhYlwiLFxuICAgIFwiV2FsdGVyXCIsXG4gICAgXCJXYWx0aGVyXCIsXG4gICAgXCJXYWx0b25cIixcbiAgICBcIldhbHpcIixcbiAgICBcIldhbm5lclwiLFxuICAgIFwiV2FydGVuYmVyZ1wiLFxuICAgIFwiV2FzY2hiw7xzY2hcIixcbiAgICBcIldhc3NpbGV3XCIsXG4gICAgXCJXYXNzaWx1a1wiLFxuICAgIFwiV2ViZXJcIixcbiAgICBcIldlaHJzZW5cIixcbiAgICBcIldlaWRsaWNoXCIsXG4gICAgXCJXZWlkbmVyXCIsXG4gICAgXCJXZWlnZWxcIixcbiAgICBcIldlaWdodFwiLFxuICAgIFwiV2VpbGVyXCIsXG4gICAgXCJXZWltZXJcIixcbiAgICBcIldlaXNcIixcbiAgICBcIldlaXNzXCIsXG4gICAgXCJXZWxsZXJcIixcbiAgICBcIldlbHNjaFwiLFxuICAgIFwiV2VselwiLFxuICAgIFwiV2VsemVsXCIsXG4gICAgXCJXZW5pZ2VyXCIsXG4gICAgXCJXZW5rXCIsXG4gICAgXCJXZXJsZVwiLFxuICAgIFwiV2VybmVyXCIsXG4gICAgXCJXZXJybWFublwiLFxuICAgIFwiV2Vzc2VsXCIsXG4gICAgXCJXZXNzaW5naGFnZVwiLFxuICAgIFwiV2V5ZWxcIixcbiAgICBcIldlemVsXCIsXG4gICAgXCJXaWNobWFublwiLFxuICAgIFwiV2lja2VydFwiLFxuICAgIFwiV2llYmVcIixcbiAgICBcIldpZWNobWFublwiLFxuICAgIFwiV2llZ2VsbWFublwiLFxuICAgIFwiV2llcmlnXCIsXG4gICAgXCJXaWVzZVwiLFxuICAgIFwiV2llc2VyXCIsXG4gICAgXCJXaWxoZWxtXCIsXG4gICAgXCJXaWxreVwiLFxuICAgIFwiV2lsbFwiLFxuICAgIFwiV2lsbHdhY2hlclwiLFxuICAgIFwiV2lsdHNcIixcbiAgICBcIldpbW1lclwiLFxuICAgIFwiV2lua2VsbWFublwiLFxuICAgIFwiV2lua2xlclwiLFxuICAgIFwiV2ludGVyXCIsXG4gICAgXCJXaXNjaGVrXCIsXG4gICAgXCJXaXNjaGVyXCIsXG4gICAgXCJXaXNzaW5nXCIsXG4gICAgXCJXaXR0aWNoXCIsXG4gICAgXCJXaXR0bFwiLFxuICAgIFwiV29sZlwiLFxuICAgIFwiV29sZmFydGhcIixcbiAgICBcIldvbGZmXCIsXG4gICAgXCJXb2xsZW5iZXJnXCIsXG4gICAgXCJXb2xsbWFublwiLFxuICAgIFwiV295dGtvd3NrYVwiLFxuICAgIFwiV3VqYWtcIixcbiAgICBcIld1cm1cIixcbiAgICBcIld5bHVkZGFcIixcbiAgICBcIlfDtmxwZXJ0XCIsXG4gICAgXCJXw7ZzY2hsZXJcIixcbiAgICBcIlfDvGhuXCIsXG4gICAgXCJXw7xuc2NoZVwiLFxuICAgIFwiWmFjaFwiLFxuICAgIFwiWmFjemtpZXdpY3pcIixcbiAgICBcIlphaG5cIixcbiAgICBcIlphaXR1Y1wiLFxuICAgIFwiWmFuZHRcIixcbiAgICBcIlphbm5lclwiLFxuICAgIFwiWmFwbGV0YWxcIixcbiAgICBcIlphdWJlclwiLFxuICAgIFwiWmVpZGxlclwiLFxuICAgIFwiWmVrbFwiLFxuICAgIFwiWmVuZGVyXCIsXG4gICAgXCJaZXVjaFwiLFxuICAgIFwiWmV5ZW5cIixcbiAgICBcIlpleWhsZVwiLFxuICAgIFwiWmllZ2xlclwiLFxuICAgIFwiWmltYW55aVwiLFxuICAgIFwiWmltbWVyXCIsXG4gICAgXCJaaW1tZXJtYW5uXCIsXG4gICAgXCJaaW5zZXJcIixcbiAgICBcIlppbnRsXCIsXG4gICAgXCJaaXBwXCIsXG4gICAgXCJaaXBzZVwiLFxuICAgIFwiWnNjaHVua2VcIixcbiAgICBcIlp1YmVyXCIsXG4gICAgXCJad2llbmVyXCIsXG4gICAgXCJaw7xtc2FuZGVcIixcbiAgICBcIsOWc3RyaW5nZXJcIixcbiAgICBcIsOcYmVyYWNrZXJcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJEci5cIixcbiAgICBcIlByb2YuIERyLlwiXG4gIF0sXG4gIFwibm9iaWxpdHlfdGl0bGVfcHJlZml4XCI6IFtcbiAgICBcInp1XCIsXG4gICAgXCJ2b25cIixcbiAgICBcInZvbVwiLFxuICAgIFwidm9uIGRlclwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tub2JpbGl0eV90aXRsZV9wcmVmaXh9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZGVfQVQucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDEgIyMjIyMjI1wiLFxuICAgIFwiMDEjIyMjIyMjXCIsXG4gICAgXCIrNDMtMS0jIyMjIyMjXCIsXG4gICAgXCIrNDMxIyMjIyMjI1wiLFxuICAgIFwiMCMjIyMgIyMjI1wiLFxuICAgIFwiMCMjIyMjIyMjI1wiLFxuICAgIFwiKzQzLSMjIyMtIyMjI1wiLFxuICAgIFwiKzQzICMjIyMjIyMjXCJcbiAgXVxufTtcbmRlX0FULmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIrNDMtNiMjLSMjIyMjIyNcIixcbiAgICBcIjA2IyMtIyMjIyMjIyNcIixcbiAgICBcIis0MzYjIyMjIyMjIyNcIixcbiAgICBcIjA2IyMjIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZGVfQ0ggPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBkZV9DSDtcbmRlX0NILnRpdGxlID0gXCJHZXJtYW4gKFN3aXR6ZXJsYW5kKVwiO1xuZGVfQ0guYWRkcmVzcyA9IHtcbiAgXCJjb3VudHJ5X2NvZGVcIjogW1xuICAgIFwiQ0hcIixcbiAgICBcIkNIXCIsXG4gICAgXCJDSFwiLFxuICAgIFwiREVcIixcbiAgICBcIkFUXCIsXG4gICAgXCJVU1wiLFxuICAgIFwiTElcIixcbiAgICBcIlVTXCIsXG4gICAgXCJIS1wiLFxuICAgIFwiVk5cIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIjEjIyNcIixcbiAgICBcIjIjIyNcIixcbiAgICBcIjMjIyNcIixcbiAgICBcIjQjIyNcIixcbiAgICBcIjUjIyNcIixcbiAgICBcIjYjIyNcIixcbiAgICBcIjcjIyNcIixcbiAgICBcIjgjIyNcIixcbiAgICBcIjkjIyNcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJTY2h3ZWl6XCJcbiAgXVxufTtcbmRlX0NILmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkFHXCIsXG4gICAgXCJHbWJIXCIsXG4gICAgXCJ1bmQgU8O2aG5lXCIsXG4gICAgXCJ1bmQgUGFydG5lclwiLFxuICAgIFwiJiBDby5cIixcbiAgICBcIkdydXBwZVwiLFxuICAgIFwiTExDXCIsXG4gICAgXCJJbmMuXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSB1bmQgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xuZGVfQ0guaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcIm5ldFwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJjaFwiLFxuICAgIFwiZGVcIixcbiAgICBcImxpXCIsXG4gICAgXCJhdFwiLFxuICAgIFwiY2hcIixcbiAgICBcImNoXCJcbiAgXVxufTtcbmRlX0NILnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjA4MDAgIyMjICMjI1wiLFxuICAgIFwiMDgwMCAjIyAjIyAjI1wiLFxuICAgIFwiMCMjICMjIyAjIyAjI1wiLFxuICAgIFwiMCMjICMjIyAjIyAjI1wiLFxuICAgIFwiKzQxICMjICMjIyAjIyAjI1wiLFxuICAgIFwiMDkwMCAjIyMgIyMjXCIsXG4gICAgXCIwNzYgIyMjICMjICMjXCIsXG4gICAgXCIrNDE3OCAjIyMgIyMgIyNcIixcbiAgICBcIjAwNDEgNzkgIyMjICMjICMjXCJcbiAgXVxufTtcbiIsInZhciBlbiA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVuO1xuZW4udGl0bGUgPSBcIkVuZ2xpc2hcIjtcbmVuLnNlcGFyYXRvciA9IFwiICYgXCI7XG5lbi5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vcnRoXCIsXG4gICAgXCJFYXN0XCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJTb3V0aFwiLFxuICAgIFwiTmV3XCIsXG4gICAgXCJMYWtlXCIsXG4gICAgXCJQb3J0XCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCJ0b3duXCIsXG4gICAgXCJ0b25cIixcbiAgICBcImxhbmRcIixcbiAgICBcInZpbGxlXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCJidXJnaFwiLFxuICAgIFwiYm9yb3VnaFwiLFxuICAgIFwiYnVyeVwiLFxuICAgIFwidmlld1wiLFxuICAgIFwicG9ydFwiLFxuICAgIFwibW91dGhcIixcbiAgICBcInN0YWRcIixcbiAgICBcImZ1cnRcIixcbiAgICBcImNoZXN0ZXJcIixcbiAgICBcIm1vdXRoXCIsXG4gICAgXCJmb3J0XCIsXG4gICAgXCJoYXZlblwiLFxuICAgIFwic2lkZVwiLFxuICAgIFwic2hpcmVcIlxuICBdLFxuICAvLyBUT0RPOiBnZXQgY29tbW9uIENvdW50eSBuYW1lcyBpbiBBbWVyaWNhIGFuZCBwb3B1bGF0ZSBoZXJlXG4gIFwiY291bnR5XCI6IFtcbiAgICBcIkF2b25cIixcbiAgICBcIkJlZGZvcmRzaGlyZVwiLFxuICAgIFwiQmVya3NoaXJlXCIsXG4gICAgXCJCb3JkZXJzXCIsXG4gICAgXCJCdWNraW5naGFtc2hpcmVcIixcbiAgICBcIkNhbWJyaWRnZXNoaXJlXCJcbiAgXSxcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIkFmZ2hhbmlzdGFuXCIsXG4gICAgXCJBbGJhbmlhXCIsXG4gICAgXCJBbGdlcmlhXCIsXG4gICAgXCJBbWVyaWNhbiBTYW1vYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmd1aWxsYVwiLFxuICAgIFwiQW50YXJjdGljYSAodGhlIHRlcnJpdG9yeSBTb3V0aCBvZiA2MCBkZWcgUylcIixcbiAgICBcIkFudGlndWEgYW5kIEJhcmJ1ZGFcIixcbiAgICBcIkFyZ2VudGluYVwiLFxuICAgIFwiQXJtZW5pYVwiLFxuICAgIFwiQXJ1YmFcIixcbiAgICBcIkF1c3RyYWxpYVwiLFxuICAgIFwiQXVzdHJpYVwiLFxuICAgIFwiQXplcmJhaWphblwiLFxuICAgIFwiQmFoYW1hc1wiLFxuICAgIFwiQmFocmFpblwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJlbGFydXNcIixcbiAgICBcIkJlbGdpdW1cIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkJlcm11ZGFcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpYVwiLFxuICAgIFwiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYVwiLFxuICAgIFwiQm90c3dhbmFcIixcbiAgICBcIkJvdXZldCBJc2xhbmQgKEJvdXZldG95YSlcIixcbiAgICBcIkJyYXppbFwiLFxuICAgIFwiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IChDaGFnb3MgQXJjaGlwZWxhZ28pXCIsXG4gICAgXCJCcnVuZWkgRGFydXNzYWxhbVwiLFxuICAgIFwiQnVsZ2FyaWFcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2FtYm9kaWFcIixcbiAgICBcIkNhbWVyb29uXCIsXG4gICAgXCJDYW5hZGFcIixcbiAgICBcIkNhcGUgVmVyZGVcIixcbiAgICBcIkNheW1hbiBJc2xhbmRzXCIsXG4gICAgXCJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWNcIixcbiAgICBcIkNoYWRcIixcbiAgICBcIkNoaWxlXCIsXG4gICAgXCJDaGluYVwiLFxuICAgIFwiQ2hyaXN0bWFzIElzbGFuZFwiLFxuICAgIFwiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHNcIixcbiAgICBcIkNvbG9tYmlhXCIsXG4gICAgXCJDb21vcm9zXCIsXG4gICAgXCJDb25nb1wiLFxuICAgIFwiQ29uZ29cIixcbiAgICBcIkNvb2sgSXNsYW5kc1wiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiQ290ZSBkJ0l2b2lyZVwiLFxuICAgIFwiQ3JvYXRpYVwiLFxuICAgIFwiQ3ViYVwiLFxuICAgIFwiQ3lwcnVzXCIsXG4gICAgXCJDemVjaCBSZXB1YmxpY1wiLFxuICAgIFwiRGVubWFya1wiLFxuICAgIFwiRGppYm91dGlcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJEb21pbmljYW4gUmVwdWJsaWNcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVneXB0XCIsXG4gICAgXCJFbCBTYWx2YWRvclwiLFxuICAgIFwiRXF1YXRvcmlhbCBHdWluZWFcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdG9uaWFcIixcbiAgICBcIkV0aGlvcGlhXCIsXG4gICAgXCJGYXJvZSBJc2xhbmRzXCIsXG4gICAgXCJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcylcIixcbiAgICBcIkZpamlcIixcbiAgICBcIkZpbmxhbmRcIixcbiAgICBcIkZyYW5jZVwiLFxuICAgIFwiRnJlbmNoIEd1aWFuYVwiLFxuICAgIFwiRnJlbmNoIFBvbHluZXNpYVwiLFxuICAgIFwiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzXCIsXG4gICAgXCJHYWJvblwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHZW9yZ2lhXCIsXG4gICAgXCJHZXJtYW55XCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR2licmFsdGFyXCIsXG4gICAgXCJHcmVlY2VcIixcbiAgICBcIkdyZWVubGFuZFwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3VhZGVsb3VwZVwiLFxuICAgIFwiR3VhbVwiLFxuICAgIFwiR3VhdGVtYWxhXCIsXG4gICAgXCJHdWVybnNleVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWEtQmlzc2F1XCIsXG4gICAgXCJHdXlhbmFcIixcbiAgICBcIkhhaXRpXCIsXG4gICAgXCJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHNcIixcbiAgICBcIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZyBLb25nXCIsXG4gICAgXCJIdW5nYXJ5XCIsXG4gICAgXCJJY2VsYW5kXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kb25lc2lhXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJcmFxXCIsXG4gICAgXCJJcmVsYW5kXCIsXG4gICAgXCJJc2xlIG9mIE1hblwiLFxuICAgIFwiSXNyYWVsXCIsXG4gICAgXCJJdGFseVwiLFxuICAgIFwiSmFtYWljYVwiLFxuICAgIFwiSmFwYW5cIixcbiAgICBcIkplcnNleVwiLFxuICAgIFwiSm9yZGFuXCIsXG4gICAgXCJLYXpha2hzdGFuXCIsXG4gICAgXCJLZW55YVwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIkRlbW9jcmF0aWMgUGVvcGxlJ3MgUmVwdWJsaWMgb2YgS29yZWFcIixcbiAgICBcIlJlcHVibGljIG9mIEtvcmVhXCIsXG4gICAgXCJLdXdhaXRcIixcbiAgICBcIkt5cmd5eiBSZXB1YmxpY1wiLFxuICAgIFwiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWNcIixcbiAgICBcIkxhdHZpYVwiLFxuICAgIFwiTGViYW5vblwiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGlieWFuIEFyYWIgSmFtYWhpcml5YVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0aHVhbmlhXCIsXG4gICAgXCJMdXhlbWJvdXJnXCIsXG4gICAgXCJNYWNhb1wiLFxuICAgIFwiTWFjZWRvbmlhXCIsXG4gICAgXCJNYWRhZ2FzY2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGF5c2lhXCIsXG4gICAgXCJNYWxkaXZlc1wiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hcnNoYWxsIElzbGFuZHNcIixcbiAgICBcIk1hcnRpbmlxdWVcIixcbiAgICBcIk1hdXJpdGFuaWFcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTWV4aWNvXCIsXG4gICAgXCJNaWNyb25lc2lhXCIsXG4gICAgXCJNb2xkb3ZhXCIsXG4gICAgXCJNb25hY29cIixcbiAgICBcIk1vbmdvbGlhXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3JvY2NvXCIsXG4gICAgXCJNb3phbWJpcXVlXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIk5ldGhlcmxhbmRzIEFudGlsbGVzXCIsXG4gICAgXCJOZXRoZXJsYW5kc1wiLFxuICAgIFwiTmV3IENhbGVkb25pYVwiLFxuICAgIFwiTmV3IFplYWxhbmRcIixcbiAgICBcIk5pY2FyYWd1YVwiLFxuICAgIFwiTmlnZXJcIixcbiAgICBcIk5pZ2VyaWFcIixcbiAgICBcIk5pdWVcIixcbiAgICBcIk5vcmZvbGsgSXNsYW5kXCIsXG4gICAgXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcbiAgICBcIk5vcndheVwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYWxlc3RpbmlhbiBUZXJyaXRvcnlcIixcbiAgICBcIlBhbmFtYVwiLFxuICAgIFwiUGFwdWEgTmV3IEd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlBoaWxpcHBpbmVzXCIsXG4gICAgXCJQaXRjYWlybiBJc2xhbmRzXCIsXG4gICAgXCJQb2xhbmRcIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIlJldW5pb25cIixcbiAgICBcIlJvbWFuaWFcIixcbiAgICBcIlJ1c3NpYW4gRmVkZXJhdGlvblwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJTYWludCBCYXJ0aGVsZW15XCIsXG4gICAgXCJTYWludCBIZWxlbmFcIixcbiAgICBcIlNhaW50IEtpdHRzIGFuZCBOZXZpc1wiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIlNhaW50IE1hcnRpblwiLFxuICAgIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW8gVG9tZSBhbmQgUHJpbmNpcGVcIixcbiAgICBcIlNhdWRpIEFyYWJpYVwiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU2VyYmlhXCIsXG4gICAgXCJTZXljaGVsbGVzXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbmdhcG9yZVwiLFxuICAgIFwiU2xvdmFraWEgKFNsb3ZhayBSZXB1YmxpYylcIixcbiAgICBcIlNsb3ZlbmlhXCIsXG4gICAgXCJTb2xvbW9uIElzbGFuZHNcIixcbiAgICBcIlNvbWFsaWFcIixcbiAgICBcIlNvdXRoIEFmcmljYVwiLFxuICAgIFwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNwYWluXCIsXG4gICAgXCJTcmkgTGFua2FcIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kc1wiLFxuICAgIFwiU3dhemlsYW5kXCIsXG4gICAgXCJTd2VkZW5cIixcbiAgICBcIlN3aXR6ZXJsYW5kXCIsXG4gICAgXCJTeXJpYW4gQXJhYiBSZXB1YmxpY1wiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppa2lzdGFuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlRpbW9yLUxlc3RlXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb2tlbGF1XCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJpbmlkYWQgYW5kIFRvYmFnb1wiLFxuICAgIFwiVHVuaXNpYVwiLFxuICAgIFwiVHVya2V5XCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kc1wiLFxuICAgIFwiVHV2YWx1XCIsXG4gICAgXCJVZ2FuZGFcIixcbiAgICBcIlVrcmFpbmVcIixcbiAgICBcIlVuaXRlZCBBcmFiIEVtaXJhdGVzXCIsXG4gICAgXCJVbml0ZWQgS2luZ2RvbVwiLFxuICAgIFwiVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHNcIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlV6YmVraXN0YW5cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiVmlyZ2luIElzbGFuZHMsIEJyaXRpc2hcIixcbiAgICBcIlZpcmdpbiBJc2xhbmRzLCBVLlMuXCIsXG4gICAgXCJXYWxsaXMgYW5kIEZ1dHVuYVwiLFxuICAgIFwiV2VzdGVybiBTYWhhcmFcIixcbiAgICBcIlllbWVuXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCJcbiAgXSxcbiAgXCJjb3VudHJ5X2NvZGVcIjogW1xuICAgIFwiQURcIixcbiAgICBcIkFFXCIsXG4gICAgXCJBRlwiLFxuICAgIFwiQUdcIixcbiAgICBcIkFJXCIsXG4gICAgXCJBTFwiLFxuICAgIFwiQU1cIixcbiAgICBcIkFPXCIsXG4gICAgXCJBUVwiLFxuICAgIFwiQVJcIixcbiAgICBcIkFTXCIsXG4gICAgXCJBVFwiLFxuICAgIFwiQVVcIixcbiAgICBcIkFXXCIsXG4gICAgXCJBWFwiLFxuICAgIFwiQVpcIixcbiAgICBcIkJBXCIsXG4gICAgXCJCQlwiLFxuICAgIFwiQkRcIixcbiAgICBcIkJFXCIsXG4gICAgXCJCRlwiLFxuICAgIFwiQkdcIixcbiAgICBcIkJIXCIsXG4gICAgXCJCSVwiLFxuICAgIFwiQkpcIixcbiAgICBcIkJMXCIsXG4gICAgXCJCTVwiLFxuICAgIFwiQk5cIixcbiAgICBcIkJPXCIsXG4gICAgXCJCUVwiLFxuICAgIFwiQlFcIixcbiAgICBcIkJSXCIsXG4gICAgXCJCU1wiLFxuICAgIFwiQlRcIixcbiAgICBcIkJWXCIsXG4gICAgXCJCV1wiLFxuICAgIFwiQllcIixcbiAgICBcIkJaXCIsXG4gICAgXCJDQVwiLFxuICAgIFwiQ0NcIixcbiAgICBcIkNEXCIsXG4gICAgXCJDRlwiLFxuICAgIFwiQ0dcIixcbiAgICBcIkNIXCIsXG4gICAgXCJDSVwiLFxuICAgIFwiQ0tcIixcbiAgICBcIkNMXCIsXG4gICAgXCJDTVwiLFxuICAgIFwiQ05cIixcbiAgICBcIkNPXCIsXG4gICAgXCJDUlwiLFxuICAgIFwiQ1VcIixcbiAgICBcIkNWXCIsXG4gICAgXCJDV1wiLFxuICAgIFwiQ1hcIixcbiAgICBcIkNZXCIsXG4gICAgXCJDWlwiLFxuICAgIFwiREVcIixcbiAgICBcIkRKXCIsXG4gICAgXCJES1wiLFxuICAgIFwiRE1cIixcbiAgICBcIkRPXCIsXG4gICAgXCJEWlwiLFxuICAgIFwiRUNcIixcbiAgICBcIkVFXCIsXG4gICAgXCJFR1wiLFxuICAgIFwiRUhcIixcbiAgICBcIkVSXCIsXG4gICAgXCJFU1wiLFxuICAgIFwiRVRcIixcbiAgICBcIkZJXCIsXG4gICAgXCJGSlwiLFxuICAgIFwiRktcIixcbiAgICBcIkZNXCIsXG4gICAgXCJGT1wiLFxuICAgIFwiRlJcIixcbiAgICBcIkdBXCIsXG4gICAgXCJHQlwiLFxuICAgIFwiR0RcIixcbiAgICBcIkdFXCIsXG4gICAgXCJHRlwiLFxuICAgIFwiR0dcIixcbiAgICBcIkdIXCIsXG4gICAgXCJHSVwiLFxuICAgIFwiR0xcIixcbiAgICBcIkdNXCIsXG4gICAgXCJHTlwiLFxuICAgIFwiR1BcIixcbiAgICBcIkdRXCIsXG4gICAgXCJHUlwiLFxuICAgIFwiR1NcIixcbiAgICBcIkdUXCIsXG4gICAgXCJHVVwiLFxuICAgIFwiR1dcIixcbiAgICBcIkdZXCIsXG4gICAgXCJIS1wiLFxuICAgIFwiSE1cIixcbiAgICBcIkhOXCIsXG4gICAgXCJIUlwiLFxuICAgIFwiSFRcIixcbiAgICBcIkhVXCIsXG4gICAgXCJJRFwiLFxuICAgIFwiSUVcIixcbiAgICBcIklMXCIsXG4gICAgXCJJTVwiLFxuICAgIFwiSU5cIixcbiAgICBcIklPXCIsXG4gICAgXCJJUVwiLFxuICAgIFwiSVJcIixcbiAgICBcIklTXCIsXG4gICAgXCJJVFwiLFxuICAgIFwiSkVcIixcbiAgICBcIkpNXCIsXG4gICAgXCJKT1wiLFxuICAgIFwiSlBcIixcbiAgICBcIktFXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiS0hcIixcbiAgICBcIktJXCIsXG4gICAgXCJLTVwiLFxuICAgIFwiS05cIixcbiAgICBcIktQXCIsXG4gICAgXCJLUlwiLFxuICAgIFwiS1dcIixcbiAgICBcIktZXCIsXG4gICAgXCJLWlwiLFxuICAgIFwiTEFcIixcbiAgICBcIkxCXCIsXG4gICAgXCJMQ1wiLFxuICAgIFwiTElcIixcbiAgICBcIkxLXCIsXG4gICAgXCJMUlwiLFxuICAgIFwiTFNcIixcbiAgICBcIkxUXCIsXG4gICAgXCJMVVwiLFxuICAgIFwiTFZcIixcbiAgICBcIkxZXCIsXG4gICAgXCJNQVwiLFxuICAgIFwiTUNcIixcbiAgICBcIk1EXCIsXG4gICAgXCJNRVwiLFxuICAgIFwiTUZcIixcbiAgICBcIk1HXCIsXG4gICAgXCJNSFwiLFxuICAgIFwiTUtcIixcbiAgICBcIk1MXCIsXG4gICAgXCJNTVwiLFxuICAgIFwiTU5cIixcbiAgICBcIk1PXCIsXG4gICAgXCJNUFwiLFxuICAgIFwiTVFcIixcbiAgICBcIk1SXCIsXG4gICAgXCJNU1wiLFxuICAgIFwiTVRcIixcbiAgICBcIk1VXCIsXG4gICAgXCJNVlwiLFxuICAgIFwiTVdcIixcbiAgICBcIk1YXCIsXG4gICAgXCJNWVwiLFxuICAgIFwiTVpcIixcbiAgICBcIk5BXCIsXG4gICAgXCJOQ1wiLFxuICAgIFwiTkVcIixcbiAgICBcIk5GXCIsXG4gICAgXCJOR1wiLFxuICAgIFwiTklcIixcbiAgICBcIk5MXCIsXG4gICAgXCJOT1wiLFxuICAgIFwiTlBcIixcbiAgICBcIk5SXCIsXG4gICAgXCJOVVwiLFxuICAgIFwiTlpcIixcbiAgICBcIk9NXCIsXG4gICAgXCJQQVwiLFxuICAgIFwiUEVcIixcbiAgICBcIlBGXCIsXG4gICAgXCJQR1wiLFxuICAgIFwiUEhcIixcbiAgICBcIlBLXCIsXG4gICAgXCJQTFwiLFxuICAgIFwiUE1cIixcbiAgICBcIlBOXCIsXG4gICAgXCJQUlwiLFxuICAgIFwiUFNcIixcbiAgICBcIlBUXCIsXG4gICAgXCJQV1wiLFxuICAgIFwiUFlcIixcbiAgICBcIlFBXCIsXG4gICAgXCJSRVwiLFxuICAgIFwiUk9cIixcbiAgICBcIlJTXCIsXG4gICAgXCJSVVwiLFxuICAgIFwiUldcIixcbiAgICBcIlNBXCIsXG4gICAgXCJTQlwiLFxuICAgIFwiU0NcIixcbiAgICBcIlNEXCIsXG4gICAgXCJTRVwiLFxuICAgIFwiU0dcIixcbiAgICBcIlNIXCIsXG4gICAgXCJTSVwiLFxuICAgIFwiU0pcIixcbiAgICBcIlNLXCIsXG4gICAgXCJTTFwiLFxuICAgIFwiU01cIixcbiAgICBcIlNOXCIsXG4gICAgXCJTT1wiLFxuICAgIFwiU1JcIixcbiAgICBcIlNTXCIsXG4gICAgXCJTVFwiLFxuICAgIFwiU1ZcIixcbiAgICBcIlNYXCIsXG4gICAgXCJTWVwiLFxuICAgIFwiU1pcIixcbiAgICBcIlRDXCIsXG4gICAgXCJURFwiLFxuICAgIFwiVEZcIixcbiAgICBcIlRHXCIsXG4gICAgXCJUSFwiLFxuICAgIFwiVEpcIixcbiAgICBcIlRLXCIsXG4gICAgXCJUTFwiLFxuICAgIFwiVE1cIixcbiAgICBcIlROXCIsXG4gICAgXCJUT1wiLFxuICAgIFwiVFJcIixcbiAgICBcIlRUXCIsXG4gICAgXCJUVlwiLFxuICAgIFwiVFdcIixcbiAgICBcIlRaXCIsXG4gICAgXCJVQVwiLFxuICAgIFwiVUdcIixcbiAgICBcIlVNXCIsXG4gICAgXCJVU1wiLFxuICAgIFwiVVlcIixcbiAgICBcIlVaXCIsXG4gICAgXCJWQVwiLFxuICAgIFwiVkNcIixcbiAgICBcIlZFXCIsXG4gICAgXCJWR1wiLFxuICAgIFwiVklcIixcbiAgICBcIlZOXCIsXG4gICAgXCJWVVwiLFxuICAgIFwiV0ZcIixcbiAgICBcIldTXCIsXG4gICAgXCJZRVwiLFxuICAgIFwiWVRcIixcbiAgICBcIlpBXCIsXG4gICAgXCJaTVwiLFxuICAgIFwiWldcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIkFsbGV5XCIsXG4gICAgXCJBdmVudWVcIixcbiAgICBcIkJyYW5jaFwiLFxuICAgIFwiQnJpZGdlXCIsXG4gICAgXCJCcm9va1wiLFxuICAgIFwiQnJvb2tzXCIsXG4gICAgXCJCdXJnXCIsXG4gICAgXCJCdXJnc1wiLFxuICAgIFwiQnlwYXNzXCIsXG4gICAgXCJDYW1wXCIsXG4gICAgXCJDYW55b25cIixcbiAgICBcIkNhcGVcIixcbiAgICBcIkNhdXNld2F5XCIsXG4gICAgXCJDZW50ZXJcIixcbiAgICBcIkNlbnRlcnNcIixcbiAgICBcIkNpcmNsZVwiLFxuICAgIFwiQ2lyY2xlc1wiLFxuICAgIFwiQ2xpZmZcIixcbiAgICBcIkNsaWZmc1wiLFxuICAgIFwiQ2x1YlwiLFxuICAgIFwiQ29tbW9uXCIsXG4gICAgXCJDb3JuZXJcIixcbiAgICBcIkNvcm5lcnNcIixcbiAgICBcIkNvdXJzZVwiLFxuICAgIFwiQ291cnRcIixcbiAgICBcIkNvdXJ0c1wiLFxuICAgIFwiQ292ZVwiLFxuICAgIFwiQ292ZXNcIixcbiAgICBcIkNyZWVrXCIsXG4gICAgXCJDcmVzY2VudFwiLFxuICAgIFwiQ3Jlc3RcIixcbiAgICBcIkNyb3NzaW5nXCIsXG4gICAgXCJDcm9zc3JvYWRcIixcbiAgICBcIkN1cnZlXCIsXG4gICAgXCJEYWxlXCIsXG4gICAgXCJEYW1cIixcbiAgICBcIkRpdmlkZVwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkRyaXZlXCIsXG4gICAgXCJEcml2ZXNcIixcbiAgICBcIkVzdGF0ZVwiLFxuICAgIFwiRXN0YXRlc1wiLFxuICAgIFwiRXhwcmVzc3dheVwiLFxuICAgIFwiRXh0ZW5zaW9uXCIsXG4gICAgXCJFeHRlbnNpb25zXCIsXG4gICAgXCJGYWxsXCIsXG4gICAgXCJGYWxsc1wiLFxuICAgIFwiRmVycnlcIixcbiAgICBcIkZpZWxkXCIsXG4gICAgXCJGaWVsZHNcIixcbiAgICBcIkZsYXRcIixcbiAgICBcIkZsYXRzXCIsXG4gICAgXCJGb3JkXCIsXG4gICAgXCJGb3Jkc1wiLFxuICAgIFwiRm9yZXN0XCIsXG4gICAgXCJGb3JnZVwiLFxuICAgIFwiRm9yZ2VzXCIsXG4gICAgXCJGb3JrXCIsXG4gICAgXCJGb3Jrc1wiLFxuICAgIFwiRm9ydFwiLFxuICAgIFwiRnJlZXdheVwiLFxuICAgIFwiR2FyZGVuXCIsXG4gICAgXCJHYXJkZW5zXCIsXG4gICAgXCJHYXRld2F5XCIsXG4gICAgXCJHbGVuXCIsXG4gICAgXCJHbGVuc1wiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWVuc1wiLFxuICAgIFwiR3JvdmVcIixcbiAgICBcIkdyb3Zlc1wiLFxuICAgIFwiSGFyYm9yXCIsXG4gICAgXCJIYXJib3JzXCIsXG4gICAgXCJIYXZlblwiLFxuICAgIFwiSGVpZ2h0c1wiLFxuICAgIFwiSGlnaHdheVwiLFxuICAgIFwiSGlsbFwiLFxuICAgIFwiSGlsbHNcIixcbiAgICBcIkhvbGxvd1wiLFxuICAgIFwiSW5sZXRcIixcbiAgICBcIklubGV0XCIsXG4gICAgXCJJc2xhbmRcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNsYW5kc1wiLFxuICAgIFwiSXNsYW5kc1wiLFxuICAgIFwiSXNsZVwiLFxuICAgIFwiSXNsZVwiLFxuICAgIFwiSnVuY3Rpb25cIixcbiAgICBcIkp1bmN0aW9uc1wiLFxuICAgIFwiS2V5XCIsXG4gICAgXCJLZXlzXCIsXG4gICAgXCJLbm9sbFwiLFxuICAgIFwiS25vbGxzXCIsXG4gICAgXCJMYWtlXCIsXG4gICAgXCJMYWtlc1wiLFxuICAgIFwiTGFuZFwiLFxuICAgIFwiTGFuZGluZ1wiLFxuICAgIFwiTGFuZVwiLFxuICAgIFwiTGlnaHRcIixcbiAgICBcIkxpZ2h0c1wiLFxuICAgIFwiTG9hZlwiLFxuICAgIFwiTG9ja1wiLFxuICAgIFwiTG9ja3NcIixcbiAgICBcIkxvY2tzXCIsXG4gICAgXCJMb2RnZVwiLFxuICAgIFwiTG9kZ2VcIixcbiAgICBcIkxvb3BcIixcbiAgICBcIk1hbGxcIixcbiAgICBcIk1hbm9yXCIsXG4gICAgXCJNYW5vcnNcIixcbiAgICBcIk1lYWRvd1wiLFxuICAgIFwiTWVhZG93c1wiLFxuICAgIFwiTWV3c1wiLFxuICAgIFwiTWlsbFwiLFxuICAgIFwiTWlsbHNcIixcbiAgICBcIk1pc3Npb25cIixcbiAgICBcIk1pc3Npb25cIixcbiAgICBcIk1vdG9yd2F5XCIsXG4gICAgXCJNb3VudFwiLFxuICAgIFwiTW91bnRhaW5cIixcbiAgICBcIk1vdW50YWluXCIsXG4gICAgXCJNb3VudGFpbnNcIixcbiAgICBcIk1vdW50YWluc1wiLFxuICAgIFwiTmVja1wiLFxuICAgIFwiT3JjaGFyZFwiLFxuICAgIFwiT3ZhbFwiLFxuICAgIFwiT3ZlcnBhc3NcIixcbiAgICBcIlBhcmtcIixcbiAgICBcIlBhcmtzXCIsXG4gICAgXCJQYXJrd2F5XCIsXG4gICAgXCJQYXJrd2F5c1wiLFxuICAgIFwiUGFzc1wiLFxuICAgIFwiUGFzc2FnZVwiLFxuICAgIFwiUGF0aFwiLFxuICAgIFwiUGlrZVwiLFxuICAgIFwiUGluZVwiLFxuICAgIFwiUGluZXNcIixcbiAgICBcIlBsYWNlXCIsXG4gICAgXCJQbGFpblwiLFxuICAgIFwiUGxhaW5zXCIsXG4gICAgXCJQbGFpbnNcIixcbiAgICBcIlBsYXphXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUG9pbnRcIixcbiAgICBcIlBvaW50c1wiLFxuICAgIFwiUG9ydFwiLFxuICAgIFwiUG9ydFwiLFxuICAgIFwiUG9ydHNcIixcbiAgICBcIlBvcnRzXCIsXG4gICAgXCJQcmFpcmllXCIsXG4gICAgXCJQcmFpcmllXCIsXG4gICAgXCJSYWRpYWxcIixcbiAgICBcIlJhbXBcIixcbiAgICBcIlJhbmNoXCIsXG4gICAgXCJSYXBpZFwiLFxuICAgIFwiUmFwaWRzXCIsXG4gICAgXCJSZXN0XCIsXG4gICAgXCJSaWRnZVwiLFxuICAgIFwiUmlkZ2VzXCIsXG4gICAgXCJSaXZlclwiLFxuICAgIFwiUm9hZFwiLFxuICAgIFwiUm9hZFwiLFxuICAgIFwiUm9hZHNcIixcbiAgICBcIlJvYWRzXCIsXG4gICAgXCJSb3V0ZVwiLFxuICAgIFwiUm93XCIsXG4gICAgXCJSdWVcIixcbiAgICBcIlJ1blwiLFxuICAgIFwiU2hvYWxcIixcbiAgICBcIlNob2Fsc1wiLFxuICAgIFwiU2hvcmVcIixcbiAgICBcIlNob3Jlc1wiLFxuICAgIFwiU2t5d2F5XCIsXG4gICAgXCJTcHJpbmdcIixcbiAgICBcIlNwcmluZ3NcIixcbiAgICBcIlNwcmluZ3NcIixcbiAgICBcIlNwdXJcIixcbiAgICBcIlNwdXJzXCIsXG4gICAgXCJTcXVhcmVcIixcbiAgICBcIlNxdWFyZVwiLFxuICAgIFwiU3F1YXJlc1wiLFxuICAgIFwiU3F1YXJlc1wiLFxuICAgIFwiU3RhdGlvblwiLFxuICAgIFwiU3RhdGlvblwiLFxuICAgIFwiU3RyYXZlbnVlXCIsXG4gICAgXCJTdHJhdmVudWVcIixcbiAgICBcIlN0cmVhbVwiLFxuICAgIFwiU3RyZWFtXCIsXG4gICAgXCJTdHJlZXRcIixcbiAgICBcIlN0cmVldFwiLFxuICAgIFwiU3RyZWV0c1wiLFxuICAgIFwiU3VtbWl0XCIsXG4gICAgXCJTdW1taXRcIixcbiAgICBcIlRlcnJhY2VcIixcbiAgICBcIlRocm91Z2h3YXlcIixcbiAgICBcIlRyYWNlXCIsXG4gICAgXCJUcmFja1wiLFxuICAgIFwiVHJhZmZpY3dheVwiLFxuICAgIFwiVHJhaWxcIixcbiAgICBcIlRyYWlsXCIsXG4gICAgXCJUdW5uZWxcIixcbiAgICBcIlR1bm5lbFwiLFxuICAgIFwiVHVybnBpa2VcIixcbiAgICBcIlR1cm5waWtlXCIsXG4gICAgXCJVbmRlcnBhc3NcIixcbiAgICBcIlVuaW9uXCIsXG4gICAgXCJVbmlvbnNcIixcbiAgICBcIlZhbGxleVwiLFxuICAgIFwiVmFsbGV5c1wiLFxuICAgIFwiVmlhXCIsXG4gICAgXCJWaWFkdWN0XCIsXG4gICAgXCJWaWV3XCIsXG4gICAgXCJWaWV3c1wiLFxuICAgIFwiVmlsbGFnZVwiLFxuICAgIFwiVmlsbGFnZVwiLFxuICAgIFwiVmlsbGFnZXNcIixcbiAgICBcIlZpbGxlXCIsXG4gICAgXCJWaXN0YVwiLFxuICAgIFwiVmlzdGFcIixcbiAgICBcIldhbGtcIixcbiAgICBcIldhbGtzXCIsXG4gICAgXCJXYWxsXCIsXG4gICAgXCJXYXlcIixcbiAgICBcIldheXNcIixcbiAgICBcIldlbGxcIixcbiAgICBcIldlbGxzXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHQuICMjI1wiLFxuICAgIFwiU3VpdGUgIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyMtIyMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVfYnlfc3RhdGVcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyMjLSMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkFsYWJhbWFcIixcbiAgICBcIkFsYXNrYVwiLFxuICAgIFwiQXJpem9uYVwiLFxuICAgIFwiQXJrYW5zYXNcIixcbiAgICBcIkNhbGlmb3JuaWFcIixcbiAgICBcIkNvbG9yYWRvXCIsXG4gICAgXCJDb25uZWN0aWN1dFwiLFxuICAgIFwiRGVsYXdhcmVcIixcbiAgICBcIkZsb3JpZGFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkhhd2FpaVwiLFxuICAgIFwiSWRhaG9cIixcbiAgICBcIklsbGlub2lzXCIsXG4gICAgXCJJbmRpYW5hXCIsXG4gICAgXCJJb3dhXCIsXG4gICAgXCJLYW5zYXNcIixcbiAgICBcIktlbnR1Y2t5XCIsXG4gICAgXCJMb3Vpc2lhbmFcIixcbiAgICBcIk1haW5lXCIsXG4gICAgXCJNYXJ5bGFuZFwiLFxuICAgIFwiTWFzc2FjaHVzZXR0c1wiLFxuICAgIFwiTWljaGlnYW5cIixcbiAgICBcIk1pbm5lc290YVwiLFxuICAgIFwiTWlzc2lzc2lwcGlcIixcbiAgICBcIk1pc3NvdXJpXCIsXG4gICAgXCJNb250YW5hXCIsXG4gICAgXCJOZWJyYXNrYVwiLFxuICAgIFwiTmV2YWRhXCIsXG4gICAgXCJOZXcgSGFtcHNoaXJlXCIsXG4gICAgXCJOZXcgSmVyc2V5XCIsXG4gICAgXCJOZXcgTWV4aWNvXCIsXG4gICAgXCJOZXcgWW9ya1wiLFxuICAgIFwiTm9ydGggQ2Fyb2xpbmFcIixcbiAgICBcIk5vcnRoIERha290YVwiLFxuICAgIFwiT2hpb1wiLFxuICAgIFwiT2tsYWhvbWFcIixcbiAgICBcIk9yZWdvblwiLFxuICAgIFwiUGVubnN5bHZhbmlhXCIsXG4gICAgXCJSaG9kZSBJc2xhbmRcIixcbiAgICBcIlNvdXRoIENhcm9saW5hXCIsXG4gICAgXCJTb3V0aCBEYWtvdGFcIixcbiAgICBcIlRlbm5lc3NlZVwiLFxuICAgIFwiVGV4YXNcIixcbiAgICBcIlV0YWhcIixcbiAgICBcIlZlcm1vbnRcIixcbiAgICBcIlZpcmdpbmlhXCIsXG4gICAgXCJXYXNoaW5ndG9uXCIsXG4gICAgXCJXZXN0IFZpcmdpbmlhXCIsXG4gICAgXCJXaXNjb25zaW5cIixcbiAgICBcIld5b21pbmdcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQUxcIixcbiAgICBcIkFLXCIsXG4gICAgXCJBWlwiLFxuICAgIFwiQVJcIixcbiAgICBcIkNBXCIsXG4gICAgXCJDT1wiLFxuICAgIFwiQ1RcIixcbiAgICBcIkRFXCIsXG4gICAgXCJGTFwiLFxuICAgIFwiR0FcIixcbiAgICBcIkhJXCIsXG4gICAgXCJJRFwiLFxuICAgIFwiSUxcIixcbiAgICBcIklOXCIsXG4gICAgXCJJQVwiLFxuICAgIFwiS1NcIixcbiAgICBcIktZXCIsXG4gICAgXCJMQVwiLFxuICAgIFwiTUVcIixcbiAgICBcIk1EXCIsXG4gICAgXCJNQVwiLFxuICAgIFwiTUlcIixcbiAgICBcIk1OXCIsXG4gICAgXCJNU1wiLFxuICAgIFwiTU9cIixcbiAgICBcIk1UXCIsXG4gICAgXCJORVwiLFxuICAgIFwiTlZcIixcbiAgICBcIk5IXCIsXG4gICAgXCJOSlwiLFxuICAgIFwiTk1cIixcbiAgICBcIk5ZXCIsXG4gICAgXCJOQ1wiLFxuICAgIFwiTkRcIixcbiAgICBcIk9IXCIsXG4gICAgXCJPS1wiLFxuICAgIFwiT1JcIixcbiAgICBcIlBBXCIsXG4gICAgXCJSSVwiLFxuICAgIFwiU0NcIixcbiAgICBcIlNEXCIsXG4gICAgXCJUTlwiLFxuICAgIFwiVFhcIixcbiAgICBcIlVUXCIsXG4gICAgXCJWVFwiLFxuICAgIFwiVkFcIixcbiAgICBcIldBXCIsXG4gICAgXCJXVlwiLFxuICAgIFwiV0lcIixcbiAgICBcIldZXCJcbiAgXSxcbiAgXCJ0aW1lX3pvbmVcIjogW1xuICAgIFwiUGFjaWZpYy9NaWR3YXlcIixcbiAgICBcIlBhY2lmaWMvUGFnb19QYWdvXCIsXG4gICAgXCJQYWNpZmljL0hvbm9sdWx1XCIsXG4gICAgXCJBbWVyaWNhL0p1bmVhdVwiLFxuICAgIFwiQW1lcmljYS9Mb3NfQW5nZWxlc1wiLFxuICAgIFwiQW1lcmljYS9UaWp1YW5hXCIsXG4gICAgXCJBbWVyaWNhL0RlbnZlclwiLFxuICAgIFwiQW1lcmljYS9QaG9lbml4XCIsXG4gICAgXCJBbWVyaWNhL0NoaWh1YWh1YVwiLFxuICAgIFwiQW1lcmljYS9NYXphdGxhblwiLFxuICAgIFwiQW1lcmljYS9DaGljYWdvXCIsXG4gICAgXCJBbWVyaWNhL1JlZ2luYVwiLFxuICAgIFwiQW1lcmljYS9NZXhpY29fQ2l0eVwiLFxuICAgIFwiQW1lcmljYS9NZXhpY29fQ2l0eVwiLFxuICAgIFwiQW1lcmljYS9Nb250ZXJyZXlcIixcbiAgICBcIkFtZXJpY2EvR3VhdGVtYWxhXCIsXG4gICAgXCJBbWVyaWNhL05ld19Zb3JrXCIsXG4gICAgXCJBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzXCIsXG4gICAgXCJBbWVyaWNhL0JvZ290YVwiLFxuICAgIFwiQW1lcmljYS9MaW1hXCIsXG4gICAgXCJBbWVyaWNhL0xpbWFcIixcbiAgICBcIkFtZXJpY2EvSGFsaWZheFwiLFxuICAgIFwiQW1lcmljYS9DYXJhY2FzXCIsXG4gICAgXCJBbWVyaWNhL0xhX1BhelwiLFxuICAgIFwiQW1lcmljYS9TYW50aWFnb1wiLFxuICAgIFwiQW1lcmljYS9TdF9Kb2huc1wiLFxuICAgIFwiQW1lcmljYS9TYW9fUGF1bG9cIixcbiAgICBcIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlc1wiLFxuICAgIFwiQW1lcmljYS9HdXlhbmFcIixcbiAgICBcIkFtZXJpY2EvR29kdGhhYlwiLFxuICAgIFwiQXRsYW50aWMvU291dGhfR2VvcmdpYVwiLFxuICAgIFwiQXRsYW50aWMvQXpvcmVzXCIsXG4gICAgXCJBdGxhbnRpYy9DYXBlX1ZlcmRlXCIsXG4gICAgXCJFdXJvcGUvRHVibGluXCIsXG4gICAgXCJFdXJvcGUvTG9uZG9uXCIsXG4gICAgXCJFdXJvcGUvTGlzYm9uXCIsXG4gICAgXCJFdXJvcGUvTG9uZG9uXCIsXG4gICAgXCJBZnJpY2EvQ2FzYWJsYW5jYVwiLFxuICAgIFwiQWZyaWNhL01vbnJvdmlhXCIsXG4gICAgXCJFdGMvVVRDXCIsXG4gICAgXCJFdXJvcGUvQmVsZ3JhZGVcIixcbiAgICBcIkV1cm9wZS9CcmF0aXNsYXZhXCIsXG4gICAgXCJFdXJvcGUvQnVkYXBlc3RcIixcbiAgICBcIkV1cm9wZS9ManVibGphbmFcIixcbiAgICBcIkV1cm9wZS9QcmFndWVcIixcbiAgICBcIkV1cm9wZS9TYXJhamV2b1wiLFxuICAgIFwiRXVyb3BlL1Nrb3BqZVwiLFxuICAgIFwiRXVyb3BlL1dhcnNhd1wiLFxuICAgIFwiRXVyb3BlL1phZ3JlYlwiLFxuICAgIFwiRXVyb3BlL0JydXNzZWxzXCIsXG4gICAgXCJFdXJvcGUvQ29wZW5oYWdlblwiLFxuICAgIFwiRXVyb3BlL01hZHJpZFwiLFxuICAgIFwiRXVyb3BlL1BhcmlzXCIsXG4gICAgXCJFdXJvcGUvQW1zdGVyZGFtXCIsXG4gICAgXCJFdXJvcGUvQmVybGluXCIsXG4gICAgXCJFdXJvcGUvQmVybGluXCIsXG4gICAgXCJFdXJvcGUvUm9tZVwiLFxuICAgIFwiRXVyb3BlL1N0b2NraG9sbVwiLFxuICAgIFwiRXVyb3BlL1ZpZW5uYVwiLFxuICAgIFwiQWZyaWNhL0FsZ2llcnNcIixcbiAgICBcIkV1cm9wZS9CdWNoYXJlc3RcIixcbiAgICBcIkFmcmljYS9DYWlyb1wiLFxuICAgIFwiRXVyb3BlL0hlbHNpbmtpXCIsXG4gICAgXCJFdXJvcGUvS2lldlwiLFxuICAgIFwiRXVyb3BlL1JpZ2FcIixcbiAgICBcIkV1cm9wZS9Tb2ZpYVwiLFxuICAgIFwiRXVyb3BlL1RhbGxpbm5cIixcbiAgICBcIkV1cm9wZS9WaWxuaXVzXCIsXG4gICAgXCJFdXJvcGUvQXRoZW5zXCIsXG4gICAgXCJFdXJvcGUvSXN0YW5idWxcIixcbiAgICBcIkV1cm9wZS9NaW5za1wiLFxuICAgIFwiQXNpYS9KZXJ1c2FsZW1cIixcbiAgICBcIkFmcmljYS9IYXJhcmVcIixcbiAgICBcIkFmcmljYS9Kb2hhbm5lc2J1cmdcIixcbiAgICBcIkV1cm9wZS9Nb3Njb3dcIixcbiAgICBcIkV1cm9wZS9Nb3Njb3dcIixcbiAgICBcIkV1cm9wZS9Nb3Njb3dcIixcbiAgICBcIkFzaWEvS3V3YWl0XCIsXG4gICAgXCJBc2lhL1JpeWFkaFwiLFxuICAgIFwiQWZyaWNhL05haXJvYmlcIixcbiAgICBcIkFzaWEvQmFnaGRhZFwiLFxuICAgIFwiQXNpYS9UZWhyYW5cIixcbiAgICBcIkFzaWEvTXVzY2F0XCIsXG4gICAgXCJBc2lhL011c2NhdFwiLFxuICAgIFwiQXNpYS9CYWt1XCIsXG4gICAgXCJBc2lhL1RiaWxpc2lcIixcbiAgICBcIkFzaWEvWWVyZXZhblwiLFxuICAgIFwiQXNpYS9LYWJ1bFwiLFxuICAgIFwiQXNpYS9ZZWthdGVyaW5idXJnXCIsXG4gICAgXCJBc2lhL0thcmFjaGlcIixcbiAgICBcIkFzaWEvS2FyYWNoaVwiLFxuICAgIFwiQXNpYS9UYXNoa2VudFwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0thdGhtYW5kdVwiLFxuICAgIFwiQXNpYS9EaGFrYVwiLFxuICAgIFwiQXNpYS9EaGFrYVwiLFxuICAgIFwiQXNpYS9Db2xvbWJvXCIsXG4gICAgXCJBc2lhL0FsbWF0eVwiLFxuICAgIFwiQXNpYS9Ob3Zvc2liaXJza1wiLFxuICAgIFwiQXNpYS9SYW5nb29uXCIsXG4gICAgXCJBc2lhL0Jhbmdrb2tcIixcbiAgICBcIkFzaWEvQmFuZ2tva1wiLFxuICAgIFwiQXNpYS9KYWthcnRhXCIsXG4gICAgXCJBc2lhL0tyYXNub3lhcnNrXCIsXG4gICAgXCJBc2lhL1NoYW5naGFpXCIsXG4gICAgXCJBc2lhL0Nob25ncWluZ1wiLFxuICAgIFwiQXNpYS9Ib25nX0tvbmdcIixcbiAgICBcIkFzaWEvVXJ1bXFpXCIsXG4gICAgXCJBc2lhL0t1YWxhX0x1bXB1clwiLFxuICAgIFwiQXNpYS9TaW5nYXBvcmVcIixcbiAgICBcIkFzaWEvVGFpcGVpXCIsXG4gICAgXCJBdXN0cmFsaWEvUGVydGhcIixcbiAgICBcIkFzaWEvSXJrdXRza1wiLFxuICAgIFwiQXNpYS9VbGFhbmJhYXRhclwiLFxuICAgIFwiQXNpYS9TZW91bFwiLFxuICAgIFwiQXNpYS9Ub2t5b1wiLFxuICAgIFwiQXNpYS9Ub2t5b1wiLFxuICAgIFwiQXNpYS9Ub2t5b1wiLFxuICAgIFwiQXNpYS9ZYWt1dHNrXCIsXG4gICAgXCJBdXN0cmFsaWEvRGFyd2luXCIsXG4gICAgXCJBdXN0cmFsaWEvQWRlbGFpZGVcIixcbiAgICBcIkF1c3RyYWxpYS9NZWxib3VybmVcIixcbiAgICBcIkF1c3RyYWxpYS9NZWxib3VybmVcIixcbiAgICBcIkF1c3RyYWxpYS9TeWRuZXlcIixcbiAgICBcIkF1c3RyYWxpYS9CcmlzYmFuZVwiLFxuICAgIFwiQXVzdHJhbGlhL0hvYmFydFwiLFxuICAgIFwiQXNpYS9WbGFkaXZvc3Rva1wiLFxuICAgIFwiUGFjaWZpYy9HdWFtXCIsXG4gICAgXCJQYWNpZmljL1BvcnRfTW9yZXNieVwiLFxuICAgIFwiQXNpYS9NYWdhZGFuXCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIlBhY2lmaWMvTm91bWVhXCIsXG4gICAgXCJQYWNpZmljL0ZpamlcIixcbiAgICBcIkFzaWEvS2FtY2hhdGthXCIsXG4gICAgXCJQYWNpZmljL01hanVyb1wiLFxuICAgIFwiUGFjaWZpYy9BdWNrbGFuZFwiLFxuICAgIFwiUGFjaWZpYy9BdWNrbGFuZFwiLFxuICAgIFwiUGFjaWZpYy9Ub25nYXRhcHVcIixcbiAgICBcIlBhY2lmaWMvRmFrYW9mb1wiLFxuICAgIFwiUGFjaWZpYy9BcGlhXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0gI3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tidWlsZGluZ19udW1iZXJ9ICN7c3RyZWV0X25hbWV9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhXCJcbiAgXVxufTtcbmVuLmNyZWRpdF9jYXJkID0ge1xuICBcInZpc2FcIjogW1xuICAgIFwiLzQjIyMjIyMjIyMjI0wvXCIsXG4gICAgXCIvNCMjIy0jIyMjLSMjIyMtIyMjTC9cIlxuICBdLFxuICBcIm1hc3RlcmNhcmRcIjogW1xuICAgIFwiLzVbMS01XSMjLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY3NzEtODkjIy0jIyMjLSMjI0wvXCJcbiAgXSxcbiAgXCJkaXNjb3ZlclwiOiBbXG4gICAgXCIvNjAxMS0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi82NSMjLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY0WzQtOV0jLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzYwMTEtNjIjIy0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi82NSMjLTYyIyMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjRbNC05XSMtNjIjIy0jIyMjLSMjIyMtIyMjTC9cIlxuICBdLFxuICBcImFtZXJpY2FuX2V4cHJlc3NcIjogW1xuICAgIFwiLzM0IyMtIyMjIyMjLSMjIyNML1wiLFxuICAgIFwiLzM3IyMtIyMjIyMjLSMjIyNML1wiXG4gIF0sXG4gIFwiZGluZXJzX2NsdWJcIjogW1xuICAgIFwiLzMwWzAtNV0jLSMjIyMjIy0jIyNML1wiLFxuICAgIFwiLzM2OCMtIyMjIyMjLSMjI0wvXCJcbiAgXSxcbiAgXCJqY2JcIjogW1xuICAgIFwiLzM1MjgtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvMzUyOS0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi8zNVszLThdIy0jIyMjLSMjIyMtIyMjTC9cIlxuICBdLFxuICBcInN3aXRjaFwiOiBbXG4gICAgXCIvNjc1OS0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi82NzU5LSMjIyMtIyMjIy0jIyMjLSNML1wiLFxuICAgIFwiLzY3NTktIyMjIy0jIyMjLSMjIyMtIyNML1wiXG4gIF0sXG4gIFwic29sb1wiOiBbXG4gICAgXCIvNjc2Ny0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi82NzY3LSMjIyMtIyMjIy0jIyMjLSNML1wiLFxuICAgIFwiLzY3NjctIyMjIy0jIyMjLSMjIyMtIyNML1wiXG4gIF0sXG4gIFwiZGFua29ydFwiOiBcIi81MDE5LSMjIyMtIyMjIy0jIyNML1wiLFxuICBcIm1hZXN0cm9cIjogW1xuICAgIFwiLzUwI3s5LDE2fUwvXCIsXG4gICAgXCIvNVs2LThdI3s5LDE2fUwvXCIsXG4gICAgXCIvNTYjI3s5LDE2fUwvXCJcbiAgXSxcbiAgXCJmb3JicnVnc2ZvcmVuaW5nZW5cIjogXCIvNjAwNy0yMiMjLSMjIyMtIyMjTC9cIixcbiAgXCJsYXNlclwiOiBbXG4gICAgXCIvNjMwNCMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi82NzA2IyMjIyMjIyMjIyNML1wiLFxuICAgIFwiLzY3NzEjIyMjIyMjIyMjI0wvXCIsXG4gICAgXCIvNjcwOSMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi82MzA0IyMjIyMjIyMjezUsNn1ML1wiLFxuICAgIFwiLzY3MDYjIyMjIyMjIyN7NSw2fUwvXCIsXG4gICAgXCIvNjc3MSMjIyMjIyMjI3s1LDZ9TC9cIixcbiAgICBcIi82NzA5IyMjIyMjIyMjezUsNn1ML1wiXG4gIF1cbn07XG5lbi5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJJbmNcIixcbiAgICBcImFuZCBTb25zXCIsXG4gICAgXCJMTENcIixcbiAgICBcIkdyb3VwXCJcbiAgXSxcbiAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJBZGFwdGl2ZVwiLFxuICAgICAgXCJBZHZhbmNlZFwiLFxuICAgICAgXCJBbWVsaW9yYXRlZFwiLFxuICAgICAgXCJBc3NpbWlsYXRlZFwiLFxuICAgICAgXCJBdXRvbWF0ZWRcIixcbiAgICAgIFwiQmFsYW5jZWRcIixcbiAgICAgIFwiQnVzaW5lc3MtZm9jdXNlZFwiLFxuICAgICAgXCJDZW50cmFsaXplZFwiLFxuICAgICAgXCJDbG9uZWRcIixcbiAgICAgIFwiQ29tcGF0aWJsZVwiLFxuICAgICAgXCJDb25maWd1cmFibGVcIixcbiAgICAgIFwiQ3Jvc3MtZ3JvdXBcIixcbiAgICAgIFwiQ3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiQ3VzdG9tZXItZm9jdXNlZFwiLFxuICAgICAgXCJDdXN0b21pemFibGVcIixcbiAgICAgIFwiRGVjZW50cmFsaXplZFwiLFxuICAgICAgXCJEZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIkRldm9sdmVkXCIsXG4gICAgICBcIkRpZ2l0aXplZFwiLFxuICAgICAgXCJEaXN0cmlidXRlZFwiLFxuICAgICAgXCJEaXZlcnNlXCIsXG4gICAgICBcIkRvd24tc2l6ZWRcIixcbiAgICAgIFwiRW5oYW5jZWRcIixcbiAgICAgIFwiRW50ZXJwcmlzZS13aWRlXCIsXG4gICAgICBcIkVyZ29ub21pY1wiLFxuICAgICAgXCJFeGNsdXNpdmVcIixcbiAgICAgIFwiRXhwYW5kZWRcIixcbiAgICAgIFwiRXh0ZW5kZWRcIixcbiAgICAgIFwiRmFjZSB0byBmYWNlXCIsXG4gICAgICBcIkZvY3VzZWRcIixcbiAgICAgIFwiRnJvbnQtbGluZVwiLFxuICAgICAgXCJGdWxseS1jb25maWd1cmFibGVcIixcbiAgICAgIFwiRnVuY3Rpb24tYmFzZWRcIixcbiAgICAgIFwiRnVuZGFtZW50YWxcIixcbiAgICAgIFwiRnV0dXJlLXByb29mZWRcIixcbiAgICAgIFwiR3Jhc3Mtcm9vdHNcIixcbiAgICAgIFwiSG9yaXpvbnRhbFwiLFxuICAgICAgXCJJbXBsZW1lbnRlZFwiLFxuICAgICAgXCJJbm5vdmF0aXZlXCIsXG4gICAgICBcIkludGVncmF0ZWRcIixcbiAgICAgIFwiSW50dWl0aXZlXCIsXG4gICAgICBcIkludmVyc2VcIixcbiAgICAgIFwiTWFuYWdlZFwiLFxuICAgICAgXCJNYW5kYXRvcnlcIixcbiAgICAgIFwiTW9uaXRvcmVkXCIsXG4gICAgICBcIk11bHRpLWNoYW5uZWxsZWRcIixcbiAgICAgIFwiTXVsdGktbGF0ZXJhbFwiLFxuICAgICAgXCJNdWx0aS1sYXllcmVkXCIsXG4gICAgICBcIk11bHRpLXRpZXJlZFwiLFxuICAgICAgXCJOZXR3b3JrZWRcIixcbiAgICAgIFwiT2JqZWN0LWJhc2VkXCIsXG4gICAgICBcIk9wZW4tYXJjaGl0ZWN0ZWRcIixcbiAgICAgIFwiT3Blbi1zb3VyY2VcIixcbiAgICAgIFwiT3BlcmF0aXZlXCIsXG4gICAgICBcIk9wdGltaXplZFwiLFxuICAgICAgXCJPcHRpb25hbFwiLFxuICAgICAgXCJPcmdhbmljXCIsXG4gICAgICBcIk9yZ2FuaXplZFwiLFxuICAgICAgXCJQZXJzZXZlcmluZ1wiLFxuICAgICAgXCJQZXJzaXN0ZW50XCIsXG4gICAgICBcIlBoYXNlZFwiLFxuICAgICAgXCJQb2xhcmlzZWRcIixcbiAgICAgIFwiUHJlLWVtcHRpdmVcIixcbiAgICAgIFwiUHJvYWN0aXZlXCIsXG4gICAgICBcIlByb2ZpdC1mb2N1c2VkXCIsXG4gICAgICBcIlByb2ZvdW5kXCIsXG4gICAgICBcIlByb2dyYW1tYWJsZVwiLFxuICAgICAgXCJQcm9ncmVzc2l2ZVwiLFxuICAgICAgXCJQdWJsaWMta2V5XCIsXG4gICAgICBcIlF1YWxpdHktZm9jdXNlZFwiLFxuICAgICAgXCJSZWFjdGl2ZVwiLFxuICAgICAgXCJSZWFsaWduZWRcIixcbiAgICAgIFwiUmUtY29udGV4dHVhbGl6ZWRcIixcbiAgICAgIFwiUmUtZW5naW5lZXJlZFwiLFxuICAgICAgXCJSZWR1Y2VkXCIsXG4gICAgICBcIlJldmVyc2UtZW5naW5lZXJlZFwiLFxuICAgICAgXCJSaWdodC1zaXplZFwiLFxuICAgICAgXCJSb2J1c3RcIixcbiAgICAgIFwiU2VhbWxlc3NcIixcbiAgICAgIFwiU2VjdXJlZFwiLFxuICAgICAgXCJTZWxmLWVuYWJsaW5nXCIsXG4gICAgICBcIlNoYXJhYmxlXCIsXG4gICAgICBcIlN0YW5kLWFsb25lXCIsXG4gICAgICBcIlN0cmVhbWxpbmVkXCIsXG4gICAgICBcIlN3aXRjaGFibGVcIixcbiAgICAgIFwiU3luY2hyb25pc2VkXCIsXG4gICAgICBcIlN5bmVyZ2lzdGljXCIsXG4gICAgICBcIlN5bmVyZ2l6ZWRcIixcbiAgICAgIFwiVGVhbS1vcmllbnRlZFwiLFxuICAgICAgXCJUb3RhbFwiLFxuICAgICAgXCJUcmlwbGUtYnVmZmVyZWRcIixcbiAgICAgIFwiVW5pdmVyc2FsXCIsXG4gICAgICBcIlVwLXNpemVkXCIsXG4gICAgICBcIlVwZ3JhZGFibGVcIixcbiAgICAgIFwiVXNlci1jZW50cmljXCIsXG4gICAgICBcIlVzZXItZnJpZW5kbHlcIixcbiAgICAgIFwiVmVyc2F0aWxlXCIsXG4gICAgICBcIlZpcnR1YWxcIixcbiAgICAgIFwiVmlzaW9uYXJ5XCIsXG4gICAgICBcIlZpc2lvbi1vcmllbnRlZFwiXG4gIF0sXG4gIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIjI0IGhvdXJcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCIzcmQgZ2VuZXJhdGlvblwiLFxuICAgICAgXCI0dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCI1dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCI2dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCJhY3R1YXRpbmdcIixcbiAgICAgIFwiYW5hbHl6aW5nXCIsXG4gICAgICBcImFzeW1tZXRyaWNcIixcbiAgICAgIFwiYXN5bmNocm9ub3VzXCIsXG4gICAgICBcImF0dGl0dWRlLW9yaWVudGVkXCIsXG4gICAgICBcImJhY2tncm91bmRcIixcbiAgICAgIFwiYmFuZHdpZHRoLW1vbml0b3JlZFwiLFxuICAgICAgXCJiaS1kaXJlY3Rpb25hbFwiLFxuICAgICAgXCJiaWZ1cmNhdGVkXCIsXG4gICAgICBcImJvdHRvbS1saW5lXCIsXG4gICAgICBcImNsZWFyLXRoaW5raW5nXCIsXG4gICAgICBcImNsaWVudC1kcml2ZW5cIixcbiAgICAgIFwiY2xpZW50LXNlcnZlclwiLFxuICAgICAgXCJjb2hlcmVudFwiLFxuICAgICAgXCJjb2hlc2l2ZVwiLFxuICAgICAgXCJjb21wb3NpdGVcIixcbiAgICAgIFwiY29udGV4dC1zZW5zaXRpdmVcIixcbiAgICAgIFwiY29udGV4dHVhbGx5LWJhc2VkXCIsXG4gICAgICBcImNvbnRlbnQtYmFzZWRcIixcbiAgICAgIFwiZGVkaWNhdGVkXCIsXG4gICAgICBcImRlbWFuZC1kcml2ZW5cIixcbiAgICAgIFwiZGlkYWN0aWNcIixcbiAgICAgIFwiZGlyZWN0aW9uYWxcIixcbiAgICAgIFwiZGlzY3JldGVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiZWNvLWNlbnRyaWNcIixcbiAgICAgIFwiZW1wb3dlcmluZ1wiLFxuICAgICAgXCJlbmNvbXBhc3NpbmdcIixcbiAgICAgIFwiZXZlbi1rZWVsZWRcIixcbiAgICAgIFwiZXhlY3V0aXZlXCIsXG4gICAgICBcImV4cGxpY2l0XCIsXG4gICAgICBcImV4dWRpbmdcIixcbiAgICAgIFwiZmF1bHQtdG9sZXJhbnRcIixcbiAgICAgIFwiZm9yZWdyb3VuZFwiLFxuICAgICAgXCJmcmVzaC10aGlua2luZ1wiLFxuICAgICAgXCJmdWxsLXJhbmdlXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJncmlkLWVuYWJsZWRcIixcbiAgICAgIFwiaGV1cmlzdGljXCIsXG4gICAgICBcImhpZ2gtbGV2ZWxcIixcbiAgICAgIFwiaG9saXN0aWNcIixcbiAgICAgIFwiaG9tb2dlbmVvdXNcIixcbiAgICAgIFwiaHVtYW4tcmVzb3VyY2VcIixcbiAgICAgIFwiaHlicmlkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJpbmNyZW1lbnRhbFwiLFxuICAgICAgXCJpbnRhbmdpYmxlXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImludGVybWVkaWF0ZVwiLFxuICAgICAgXCJsZWFkaW5nIGVkZ2VcIixcbiAgICAgIFwibG9jYWxcIixcbiAgICAgIFwibG9naXN0aWNhbFwiLFxuICAgICAgXCJtYXhpbWl6ZWRcIixcbiAgICAgIFwibWV0aG9kaWNhbFwiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcIm1vYmlsZVwiLFxuICAgICAgXCJtb2R1bGFyXCIsXG4gICAgICBcIm1vdGl2YXRpbmdcIixcbiAgICAgIFwibXVsdGltZWRpYVwiLFxuICAgICAgXCJtdWx0aS1zdGF0ZVwiLFxuICAgICAgXCJtdWx0aS10YXNraW5nXCIsXG4gICAgICBcIm5hdGlvbmFsXCIsXG4gICAgICBcIm5lZWRzLWJhc2VkXCIsXG4gICAgICBcIm5ldXRyYWxcIixcbiAgICAgIFwibmV4dCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIm5vbi12b2xhdGlsZVwiLFxuICAgICAgXCJvYmplY3Qtb3JpZW50ZWRcIixcbiAgICAgIFwib3B0aW1hbFwiLFxuICAgICAgXCJvcHRpbWl6aW5nXCIsXG4gICAgICBcInJhZGljYWxcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcInJlY2lwcm9jYWxcIixcbiAgICAgIFwicmVnaW9uYWxcIixcbiAgICAgIFwicmVzcG9uc2l2ZVwiLFxuICAgICAgXCJzY2FsYWJsZVwiLFxuICAgICAgXCJzZWNvbmRhcnlcIixcbiAgICAgIFwic29sdXRpb24tb3JpZW50ZWRcIixcbiAgICAgIFwic3RhYmxlXCIsXG4gICAgICBcInN0YXRpY1wiLFxuICAgICAgXCJzeXN0ZW1hdGljXCIsXG4gICAgICBcInN5c3RlbWljXCIsXG4gICAgICBcInN5c3RlbS13b3J0aHlcIixcbiAgICAgIFwidGFuZ2libGVcIixcbiAgICAgIFwidGVydGlhcnlcIixcbiAgICAgIFwidHJhbnNpdGlvbmFsXCIsXG4gICAgICBcInVuaWZvcm1cIixcbiAgICAgIFwidXB3YXJkLXRyZW5kaW5nXCIsXG4gICAgICBcInVzZXItZmFjaW5nXCIsXG4gICAgICBcInZhbHVlLWFkZGVkXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcIndlbGwtbW9kdWxhdGVkXCIsXG4gICAgICBcInplcm8gYWRtaW5pc3RyYXRpb25cIixcbiAgICAgIFwiemVybyBkZWZlY3RcIixcbiAgICAgIFwiemVybyB0b2xlcmFuY2VcIlxuICAgIF0sXG4gICAgXCJub3VuXCI6IFtcbiAgICAgIFwiYWJpbGl0eVwiLFxuICAgICAgXCJhY2Nlc3NcIixcbiAgICAgIFwiYWRhcHRlclwiLFxuICAgICAgXCJhbGdvcml0aG1cIixcbiAgICAgIFwiYWxsaWFuY2VcIixcbiAgICAgIFwiYW5hbHl6ZXJcIixcbiAgICAgIFwiYXBwbGljYXRpb25cIixcbiAgICAgIFwiYXBwcm9hY2hcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcImFyY2hpdmVcIixcbiAgICAgIFwiYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2VcIixcbiAgICAgIFwiYXJyYXlcIixcbiAgICAgIFwiYXR0aXR1ZGVcIixcbiAgICAgIFwiYmVuY2htYXJrXCIsXG4gICAgICBcImJ1ZGdldGFyeSBtYW5hZ2VtZW50XCIsXG4gICAgICBcImNhcGFiaWxpdHlcIixcbiAgICAgIFwiY2FwYWNpdHlcIixcbiAgICAgIFwiY2hhbGxlbmdlXCIsXG4gICAgICBcImNpcmN1aXRcIixcbiAgICAgIFwiY29sbGFib3JhdGlvblwiLFxuICAgICAgXCJjb21wbGV4aXR5XCIsXG4gICAgICBcImNvbmNlcHRcIixcbiAgICAgIFwiY29uZ2xvbWVyYXRpb25cIixcbiAgICAgIFwiY29udGluZ2VuY3lcIixcbiAgICAgIFwiY29yZVwiLFxuICAgICAgXCJjdXN0b21lciBsb3lhbHR5XCIsXG4gICAgICBcImRhdGFiYXNlXCIsXG4gICAgICBcImRhdGEtd2FyZWhvdXNlXCIsXG4gICAgICBcImRlZmluaXRpb25cIixcbiAgICAgIFwiZW11bGF0aW9uXCIsXG4gICAgICBcImVuY29kaW5nXCIsXG4gICAgICBcImVuY3J5cHRpb25cIixcbiAgICAgIFwiZXh0cmFuZXRcIixcbiAgICAgIFwiZmlybXdhcmVcIixcbiAgICAgIFwiZmxleGliaWxpdHlcIixcbiAgICAgIFwiZm9jdXMgZ3JvdXBcIixcbiAgICAgIFwiZm9yZWNhc3RcIixcbiAgICAgIFwiZnJhbWVcIixcbiAgICAgIFwiZnJhbWV3b3JrXCIsXG4gICAgICBcImZ1bmN0aW9uXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJHcmFwaGljIEludGVyZmFjZVwiLFxuICAgICAgXCJncm91cHdhcmVcIixcbiAgICAgIFwiR3JhcGhpY2FsIFVzZXIgSW50ZXJmYWNlXCIsXG4gICAgICBcImhhcmR3YXJlXCIsXG4gICAgICBcImhlbHAtZGVza1wiLFxuICAgICAgXCJoaWVyYXJjaHlcIixcbiAgICAgIFwiaHViXCIsXG4gICAgICBcImltcGxlbWVudGF0aW9uXCIsXG4gICAgICBcImluZm8tbWVkaWFyaWVzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlXCIsXG4gICAgICBcImluaXRpYXRpdmVcIixcbiAgICAgIFwiaW5zdGFsbGF0aW9uXCIsXG4gICAgICBcImluc3RydWN0aW9uIHNldFwiLFxuICAgICAgXCJpbnRlcmZhY2VcIixcbiAgICAgIFwiaW50ZXJuZXQgc29sdXRpb25cIixcbiAgICAgIFwiaW50cmFuZXRcIixcbiAgICAgIFwia25vd2xlZGdlIHVzZXJcIixcbiAgICAgIFwia25vd2xlZGdlIGJhc2VcIixcbiAgICAgIFwibG9jYWwgYXJlYSBuZXR3b3JrXCIsXG4gICAgICBcImxldmVyYWdlXCIsXG4gICAgICBcIm1hdHJpY2VzXCIsXG4gICAgICBcIm1hdHJpeFwiLFxuICAgICAgXCJtZXRob2RvbG9neVwiLFxuICAgICAgXCJtaWRkbGV3YXJlXCIsXG4gICAgICBcIm1pZ3JhdGlvblwiLFxuICAgICAgXCJtb2RlbFwiLFxuICAgICAgXCJtb2RlcmF0b3JcIixcbiAgICAgIFwibW9uaXRvcmluZ1wiLFxuICAgICAgXCJtb3JhdG9yaXVtXCIsXG4gICAgICBcIm5ldXJhbC1uZXRcIixcbiAgICAgIFwib3BlbiBhcmNoaXRlY3R1cmVcIixcbiAgICAgIFwib3BlbiBzeXN0ZW1cIixcbiAgICAgIFwib3JjaGVzdHJhdGlvblwiLFxuICAgICAgXCJwYXJhZGlnbVwiLFxuICAgICAgXCJwYXJhbGxlbGlzbVwiLFxuICAgICAgXCJwb2xpY3lcIixcbiAgICAgIFwicG9ydGFsXCIsXG4gICAgICBcInByaWNpbmcgc3RydWN0dXJlXCIsXG4gICAgICBcInByb2Nlc3MgaW1wcm92ZW1lbnRcIixcbiAgICAgIFwicHJvZHVjdFwiLFxuICAgICAgXCJwcm9kdWN0aXZpdHlcIixcbiAgICAgIFwicHJvamVjdFwiLFxuICAgICAgXCJwcm9qZWN0aW9uXCIsXG4gICAgICBcInByb3RvY29sXCIsXG4gICAgICBcInNlY3VyZWQgbGluZVwiLFxuICAgICAgXCJzZXJ2aWNlLWRlc2tcIixcbiAgICAgIFwic29mdHdhcmVcIixcbiAgICAgIFwic29sdXRpb25cIixcbiAgICAgIFwic3RhbmRhcmRpemF0aW9uXCIsXG4gICAgICBcInN0cmF0ZWd5XCIsXG4gICAgICBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJzdWNjZXNzXCIsXG4gICAgICBcInN1cGVyc3RydWN0dXJlXCIsXG4gICAgICBcInN1cHBvcnRcIixcbiAgICAgIFwic3luZXJneVwiLFxuICAgICAgXCJzeXN0ZW0gZW5naW5lXCIsXG4gICAgICBcInRhc2stZm9yY2VcIixcbiAgICAgIFwidGhyb3VnaHB1dFwiLFxuICAgICAgXCJ0aW1lLWZyYW1lXCIsXG4gICAgICBcInRvb2xzZXRcIixcbiAgICAgIFwidXRpbGlzYXRpb25cIixcbiAgICAgIFwid2Vic2l0ZVwiLFxuICAgICAgXCJ3b3JrZm9yY2VcIlxuICAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiY2xpY2tzLWFuZC1tb3J0YXJcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwidmVydGljYWxcIixcbiAgICAgIFwicHJvYWN0aXZlXCIsXG4gICAgICBcInJvYnVzdFwiLFxuICAgICAgXCJyZXZvbHV0aW9uYXJ5XCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcImxlYWRpbmctZWRnZVwiLFxuICAgICAgXCJpbm5vdmF0aXZlXCIsXG4gICAgICBcImludHVpdGl2ZVwiLFxuICAgICAgXCJzdHJhdGVnaWNcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcInN0aWNreVwiLFxuICAgICAgXCJvbmUtdG8tb25lXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiZW5kLXRvLWVuZFwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiQjJCXCIsXG4gICAgICBcIkIyQ1wiLFxuICAgICAgXCJncmFudWxhclwiLFxuICAgICAgXCJmcmljdGlvbmxlc3NcIixcbiAgICAgIFwidmlydHVhbFwiLFxuICAgICAgXCJ2aXJhbFwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcIjI0LzM2NVwiLFxuICAgICAgXCJiZXN0LW9mLWJyZWVkXCIsXG4gICAgICBcImtpbGxlclwiLFxuICAgICAgXCJtYWduZXRpY1wiLFxuICAgICAgXCJibGVlZGluZy1lZGdlXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImRvdC1jb21cIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50XCIsXG4gICAgICBcImZyb250LWVuZFwiLFxuICAgICAgXCJkaXN0cmlidXRlZFwiLFxuICAgICAgXCJzZWFtbGVzc1wiLFxuICAgICAgXCJleHRlbnNpYmxlXCIsXG4gICAgICBcInR1cm4ta2V5XCIsXG4gICAgICBcIndvcmxkLWNsYXNzXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcImNyb3NzLW1lZGlhXCIsXG4gICAgICBcInN5bmVyZ2lzdGljXCIsXG4gICAgICBcImJyaWNrcy1hbmQtY2xpY2tzXCIsXG4gICAgICBcIm91dC1vZi10aGUtYm94XCIsXG4gICAgICBcImVudGVycHJpc2VcIixcbiAgICAgIFwiaW50ZWdyYXRlZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwid2lyZWxlc3NcIixcbiAgICAgIFwidHJhbnNwYXJlbnRcIixcbiAgICAgIFwibmV4dC1nZW5lcmF0aW9uXCIsXG4gICAgICBcImN1dHRpbmctZWRnZVwiLFxuICAgICAgXCJ1c2VyLWNlbnRyaWNcIixcbiAgICAgIFwidmlzaW9uYXJ5XCIsXG4gICAgICBcImN1c3RvbWl6ZWRcIixcbiAgICAgIFwidWJpcXVpdG91c1wiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwiY29tcGVsbGluZ1wiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJyaWNoXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcInN5bmVyZ2llc1wiLFxuICAgICAgXCJ3ZWItcmVhZGluZXNzXCIsXG4gICAgICBcInBhcmFkaWdtc1wiLFxuICAgICAgXCJtYXJrZXRzXCIsXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZXNcIixcbiAgICAgIFwicGxhdGZvcm1zXCIsXG4gICAgICBcImluaXRpYXRpdmVzXCIsXG4gICAgICBcImNoYW5uZWxzXCIsXG4gICAgICBcImV5ZWJhbGxzXCIsXG4gICAgICBcImNvbW11bml0aWVzXCIsXG4gICAgICBcIlJPSVwiLFxuICAgICAgXCJzb2x1dGlvbnNcIixcbiAgICAgIFwiZS10YWlsZXJzXCIsXG4gICAgICBcImUtc2VydmljZXNcIixcbiAgICAgIFwiYWN0aW9uLWl0ZW1zXCIsXG4gICAgICBcInBvcnRhbHNcIixcbiAgICAgIFwibmljaGVzXCIsXG4gICAgICBcInRlY2hub2xvZ2llc1wiLFxuICAgICAgXCJjb250ZW50XCIsXG4gICAgICBcInZvcnRhbHNcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW5jZVwiLFxuICAgICAgXCJyZWxhdGlvbnNoaXBzXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZXNcIixcbiAgICAgIFwiaW50ZXJmYWNlc1wiLFxuICAgICAgXCJlLW1hcmtldHNcIixcbiAgICAgIFwiZS1jb21tZXJjZVwiLFxuICAgICAgXCJzeXN0ZW1zXCIsXG4gICAgICBcImJhbmR3aWR0aFwiLFxuICAgICAgXCJpbmZvbWVkaWFyaWVzXCIsXG4gICAgICBcIm1vZGVsc1wiLFxuICAgICAgXCJtaW5kc2hhcmVcIixcbiAgICAgIFwiZGVsaXZlcmFibGVzXCIsXG4gICAgICBcInVzZXJzXCIsXG4gICAgICBcInNjaGVtYXNcIixcbiAgICAgIFwibmV0d29ya3NcIixcbiAgICAgIFwiYXBwbGljYXRpb25zXCIsXG4gICAgICBcIm1ldHJpY3NcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiZXhwZXJpZW5jZXNcIixcbiAgICAgIFwid2ViIHNlcnZpY2VzXCIsXG4gICAgICBcIm1ldGhvZG9sb2dpZXNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IGFuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5lbi5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImJpelwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuXG4vL0FsbCB0aGlzIGF2YXRhciBoYXZlIGJlZW4gYXV0aG9yaXplZCBieSBpdHMgYXdlc29tZSB1c2VycyB0byBiZSB1c2Ugb24gbGl2ZSB3ZWJzaXRlcyAobm90IGp1c3QgbW9ja3Vwcylcbi8vRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdDogaHR0cDovL3VpZmFjZXMuY29tL2F1dGhvcml6ZWRcbnZhciBhdmF0YXJVcmkgPSBbXCJqYXJqYW4vMTI4LmpwZ1wiLFxuICAgIFwibWFoZGlmLzEyOC5qcGdcIixcbiAgICBcInNwcmF5YWdhLzEyOC5qcGdcIixcbiAgICBcInJ1emluYXYvMTI4LmpwZ1wiLFxuICAgIFwiU2t5aGFydG1hbi8xMjguanBnXCIsXG4gICAgXCJtb3Njb3ovMTI4LmpwZ1wiLFxuICAgIFwia3VyYWZpcmUvMTI4LmpwZ1wiLFxuICAgIFwiOTFiaWxhbC8xMjguanBnXCIsXG4gICAgXCJpZ29yZ2FyeWJhbGRpLzEyOC5qcGdcIixcbiAgICBcImNhbGVib2dkZW4vMTI4LmpwZ1wiLFxuICAgIFwibWFseWtoaW52LzEyOC5qcGdcIixcbiAgICBcImpvZWxoZWxpbi8xMjguanBnXCIsXG4gICAgXCJrdXNoc29saXRhcnkvMTI4LmpwZ1wiLFxuICAgIFwiY29yZXl3ZWIvMTI4LmpwZ1wiLFxuICAgIFwic25vd3NoYWRlLzEyOC5qcGdcIixcbiAgICBcImFyZXVzLzEyOC5qcGdcIixcbiAgICBcImhvbGRlbndlYi8xMjguanBnXCIsXG4gICAgXCJoZXlpbWp1YW5pLzEyOC5qcGdcIixcbiAgICBcImVudmV4LzEyOC5qcGdcIixcbiAgICBcInVudGVyZHJlaHQvMTI4LmpwZ1wiLFxuICAgIFwiY29sbGVnZW1hbi8xMjguanBnXCIsXG4gICAgXCJwZWVqZmFuY2hlci8xMjguanBnXCIsXG4gICAgXCJhbmR5aXNvbmxpbmUvMTI4LmpwZ1wiLFxuICAgIFwidWx0cmFnZXgvMTI4LmpwZ1wiLFxuICAgIFwiZnVja195b3VfdHdvLzEyOC5qcGdcIixcbiAgICBcImFkZWxsZWNoYXJsZXMvMTI4LmpwZ1wiLFxuICAgIFwiYXRlbmV1cG9wdWxhci8xMjguanBnXCIsXG4gICAgXCJhaG1ldGFscGJhbGthbi8xMjguanBnXCIsXG4gICAgXCJTdGlldml1cy8xMjguanBnXCIsXG4gICAgXCJrZXJlbS8xMjguanBnXCIsXG4gICAgXCJvc3ZhbGRhcy8xMjguanBnXCIsXG4gICAgXCJhbmdlbGNlYmFsbG9zLzEyOC5qcGdcIixcbiAgICBcInRoaWVycnlrb2JsZW50ei8xMjguanBnXCIsXG4gICAgXCJwZXRlcmxhbmR0LzEyOC5qcGdcIixcbiAgICBcImNhdGFyaW5vLzEyOC5qcGdcIixcbiAgICBcIndyLzEyOC5qcGdcIixcbiAgICBcIndlZ2xvdi8xMjguanBnXCIsXG4gICAgXCJicmFuZGNsYXkvMTI4LmpwZ1wiLFxuICAgIFwiZmxhbWVfa2FpemFyLzEyOC5qcGdcIixcbiAgICBcImFobWV0c3VsZWsvMTI4LmpwZ1wiLFxuICAgIFwibmljb2xhc2ZvbGxpb3QvMTI4LmpwZ1wiLFxuICAgIFwiamF5cm9iaW5zb24vMTI4LmpwZ1wiLFxuICAgIFwidmljdG9yZXJpeG9uLzEyOC5qcGdcIixcbiAgICBcImtvbGFnZS8xMjguanBnXCIsXG4gICAgXCJtaWNoemVuLzEyOC5qcGdcIixcbiAgICBcIm1hcmtqZW5raW5zLzEyOC5qcGdcIixcbiAgICBcIm5pY29sYWlfbGFyc2VuLzEyOC5qcGdcIixcbiAgICBcImd0LzEyOC5qcGdcIixcbiAgICBcIm5veGR6aW5lLzEyOC5qcGdcIixcbiAgICBcImFsYWdvb24vMTI4LmpwZ1wiLFxuICAgIFwiaWRpb3QvMTI4LmpwZ1wiLFxuICAgIFwibWl6a28vMTI4LmpwZ1wiLFxuICAgIFwiY2hhZGVuZ2xlLzEyOC5qcGdcIixcbiAgICBcIm11dGx1ODIvMTI4LmpwZ1wiLFxuICAgIFwic2ltb2JlbnNvLzEyOC5qcGdcIixcbiAgICBcInZvY2luby8xMjguanBnXCIsXG4gICAgXCJndWlpaXBvbnRlcy8xMjguanBnXCIsXG4gICAgXCJzb3lqYXZpLzEyOC5qcGdcIixcbiAgICBcImpvc2hhdXN0aW4vMTI4LmpwZ1wiLFxuICAgIFwidG9tYXNsYXUvMTI4LmpwZ1wiLFxuICAgIFwiVmluVGhvbWFzLzEyOC5qcGdcIixcbiAgICBcIk1hbmlrUmF0aGVlLzEyOC5qcGdcIixcbiAgICBcImxhbmdhdGUvMTI4LmpwZ1wiLFxuICAgIFwiY2Vtc2hpZC8xMjguanBnXCIsXG4gICAgXCJsZWVtdW5yb2UvMTI4LmpwZ1wiLFxuICAgIFwiX3NoYWhlZGsvMTI4LmpwZ1wiLFxuICAgIFwiZW5kYS8xMjguanBnXCIsXG4gICAgXCJCaWxsU0tlbm5leS8xMjguanBnXCIsXG4gICAgXCJkaXZ5YS8xMjguanBnXCIsXG4gICAgXCJqb3NoaGVtc2xleS8xMjguanBnXCIsXG4gICAgXCJzaW5kcmVzb3JodXMvMTI4LmpwZ1wiLFxuICAgIFwic29mZmVzLzEyOC5qcGdcIixcbiAgICBcIjlsZXNzb25zLzEyOC5qcGdcIixcbiAgICBcImxpbnV4MjkvMTI4LmpwZ1wiLFxuICAgIFwiQ2hha2ludG9zaC8xMjguanBnXCIsXG4gICAgXCJhbmFhbWkvMTI4LmpwZ1wiLFxuICAgIFwiam9yZWlyYS8xMjguanBnXCIsXG4gICAgXCJzaGFkZWVkOS8xMjguanBnXCIsXG4gICAgXCJzY290dGtjbGFyay8xMjguanBnXCIsXG4gICAgXCJqZWRicmlkZ2VzLzEyOC5qcGdcIixcbiAgICBcInNhbGxlZWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJtYXJha2FzaW5hLzEyOC5qcGdcIixcbiAgICBcImFyaWlsLzEyOC5qcGdcIixcbiAgICBcIkJyaWFuUHVya2lzcy8xMjguanBnXCIsXG4gICAgXCJtaWNoYWVsbWFydGluaG8vMTI4LmpwZ1wiLFxuICAgIFwiYnVibGllbmtvLzEyOC5qcGdcIixcbiAgICBcImRldmFua29zaGFsLzEyOC5qcGdcIixcbiAgICBcIlphY2hhcnlab3JiYXMvMTI4LmpwZ1wiLFxuICAgIFwidGltbWlsbHdvb2QvMTI4LmpwZ1wiLFxuICAgIFwiam9zaHVhc29ydGluby8xMjguanBnXCIsXG4gICAgXCJkYW1lbmxlZXR1cmtzLzEyOC5qcGdcIixcbiAgICBcInRvbWFzX2phbm91c2VrLzEyOC5qcGdcIixcbiAgICBcImhlcnJoYWFzZS8xMjguanBnXCIsXG4gICAgXCJSdXNzZWxsQmlzaG9wLzEyOC5qcGdcIixcbiAgICBcImJyYWplc2h3YXIvMTI4LmpwZ1wiLFxuICAgIFwibmFjaHRtZWlzdGVyLzEyOC5qcGdcIixcbiAgICBcImNicmFjY28vMTI4LmpwZ1wiLFxuICAgIFwiYmVybW9ucGFpbnRlci8xMjguanBnXCIsXG4gICAgXCJhYmR1bGxpbmRlbmlzLzEyOC5qcGdcIixcbiAgICBcImlzYWNvc3RhLzEyOC5qcGdcIixcbiAgICBcInN1cHJiLzEyOC5qcGdcIixcbiAgICBcInlhbG96aGtpbi8xMjguanBnXCIsXG4gICAgXCJjaGFuZGxlcnZkdy8xMjguanBnXCIsXG4gICAgXCJpYW1nYXJ0aC8xMjguanBnXCIsXG4gICAgXCJfdmljdGEvMTI4LmpwZ1wiLFxuICAgIFwiY29tbWFkZWxpbWl0ZWQvMTI4LmpwZ1wiLFxuICAgIFwicm95YmFyYmVydWsvMTI4LmpwZ1wiLFxuICAgIFwiYXhlbC8xMjguanBnXCIsXG4gICAgXCJ2bGFkYXJiYXRvdi8xMjguanBnXCIsXG4gICAgXCJmZmJlbC8xMjguanBnXCIsXG4gICAgXCJzeXJvcGlhbi8xMjguanBnXCIsXG4gICAgXCJhbmtpdGluZC8xMjguanBnXCIsXG4gICAgXCJ0cmFuZWJsb3cvMTI4LmpwZ1wiLFxuICAgIFwiZmxhc2htdXJwaHkvMTI4LmpwZ1wiLFxuICAgIFwiQ2hyaXNGYXJpbmE3OC8xMjguanBnXCIsXG4gICAgXCJiYWxpb21lZ2EvMTI4LmpwZ1wiLFxuICAgIFwic2FzY2hhbXQvMTI4LmpwZ1wiLFxuICAgIFwiam1fZGVuaXMvMTI4LmpwZ1wiLFxuICAgIFwiYW5vZmYvMTI4LmpwZ1wiLFxuICAgIFwia2VubnlhZHIvMTI4LmpwZ1wiLFxuICAgIFwiY2hhdHlya28vMTI4LmpwZ1wiLFxuICAgIFwiZGluZ3lpLzEyOC5qcGdcIixcbiAgICBcIm1kcy8xMjguanBnXCIsXG4gICAgXCJ0ZXJyeXhsaWZlLzEyOC5qcGdcIixcbiAgICBcImFhcm9uaS8xMjguanBnXCIsXG4gICAgXCJraW5kYXkvMTI4LmpwZ1wiLFxuICAgIFwicHJyc3RuLzEyOC5qcGdcIixcbiAgICBcImVkdWFyZG9zdHVhcnQvMTI4LmpwZ1wiLFxuICAgIFwiZGhpbGlwc2l2YS8xMjguanBnXCIsXG4gICAgXCJHYXZpY29JbmQvMTI4LmpwZ1wiLFxuICAgIFwiYmFpcmVzLzEyOC5qcGdcIixcbiAgICBcInJvaGl4eC8xMjguanBnXCIsXG4gICAgXCJiaWdtYW5jaG8vMTI4LmpwZ1wiLFxuICAgIFwiYmxha2VzaW1raW5zLzEyOC5qcGdcIixcbiAgICBcImxlZWlpby8xMjguanBnXCIsXG4gICAgXCJ0anJ1cy8xMjguanBnXCIsXG4gICAgXCJ1YmVyc2NoaXpvLzEyOC5qcGdcIixcbiAgICBcImt5bGVmb3VuZHJ5LzEyOC5qcGdcIixcbiAgICBcImNsYXVkaW9ndWdsaWVyaS8xMjguanBnXCIsXG4gICAgXCJyaXBwbGVtZGsvMTI4LmpwZ1wiLFxuICAgIFwiZXhlbnRyaWNoLzEyOC5qcGdcIixcbiAgICBcImpha2Vtb29yZS8xMjguanBnXCIsXG4gICAgXCJqb2FvZWR1bWVkZWlyb3MvMTI4LmpwZ1wiLFxuICAgIFwicG9vcm1pbmkvMTI4LmpwZ1wiLFxuICAgIFwidGVyZXNoZW5rb3YvMTI4LmpwZ1wiLFxuICAgIFwia2VyeWlsbWF6LzEyOC5qcGdcIixcbiAgICBcImhheWRuX3dvb2RzLzEyOC5qcGdcIixcbiAgICBcInJ1ZGUvMTI4LmpwZ1wiLFxuICAgIFwibGx1bi8xMjguanBnXCIsXG4gICAgXCJzZ2F1cmF2X2JhZ2hlbC8xMjguanBnXCIsXG4gICAgXCJqYW1pZWJyaXR0YWluLzEyOC5qcGdcIixcbiAgICBcImJhZGxpdHRsZWR1Y2svMTI4LmpwZ1wiLFxuICAgIFwicGlmYWdvci8xMjguanBnXCIsXG4gICAgXCJhZ3JvbW92LzEyOC5qcGdcIixcbiAgICBcImJlbmVmcml0ei8xMjguanBnXCIsXG4gICAgXCJlcndhbmhlc3J5LzEyOC5qcGdcIixcbiAgICBcImRpZXNlbGxhd3MvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW1pYWhhLzEyOC5qcGdcIixcbiAgICBcImtvcmlkaGFuZHkvMTI4LmpwZ1wiLFxuICAgIFwiY2hhZW5zZWwvMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmV3Y29oZW4vMTI4LmpwZ1wiLFxuICAgIFwic21hY3pueS8xMjguanBnXCIsXG4gICAgXCJnb256YWxvcm9iYWluYS8xMjguanBnXCIsXG4gICAgXCJuYW5kaW5pX20vMTI4LmpwZ1wiLFxuICAgIFwic3lkbGF3cmVuY2UvMTI4LmpwZ1wiLFxuICAgIFwiY2RoYXJyaXNvbi8xMjguanBnXCIsXG4gICAgXCJ0Z2Vya2VuLzEyOC5qcGdcIixcbiAgICBcImxld2lzYWluc2xpZS8xMjguanBnXCIsXG4gICAgXCJjaGFybGllY3dhaXRlLzEyOC5qcGdcIixcbiAgICBcInJvYmJzY2hpbGxlci8xMjguanBnXCIsXG4gICAgXCJmbGV4cnMvMTI4LmpwZ1wiLFxuICAgIFwibWF0dGRldGFpbHMvMTI4LmpwZ1wiLFxuICAgIFwicmFxdWVsd2lsc29uLzEyOC5qcGdcIixcbiAgICBcImthcnNoLzEyOC5qcGdcIixcbiAgICBcIm1ybWFydGluZWF1LzEyOC5qcGdcIixcbiAgICBcIm9wbnNyY2UvMTI4LmpwZ1wiLFxuICAgIFwiaGdoYXJyeWdvLzEyOC5qcGdcIixcbiAgICBcIm1heGltc2VzaHVrLzEyOC5qcGdcIixcbiAgICBcInV4YWxleC8xMjguanBnXCIsXG4gICAgXCJzYW1paGFoLzEyOC5qcGdcIixcbiAgICBcImNoYW5wb3J5LzEyOC5qcGdcIixcbiAgICBcInNoYXJ2aW4vMTI4LmpwZ1wiLFxuICAgIFwiam9zZW1hcnF1ZXMvMTI4LmpwZ1wiLFxuICAgIFwiamVmZmZpcy8xMjguanBnXCIsXG4gICAgXCJrcnlzdGFsZmlzdGVyLzEyOC5qcGdcIixcbiAgICBcImxva2VzaF9jb2Rlci8xMjguanBnXCIsXG4gICAgXCJ0aGVkYW1pYW5oZGV6LzEyOC5qcGdcIixcbiAgICBcImRwbWFjaGFkby8xMjguanBnXCIsXG4gICAgXCJmdW53YXRlcmNhdC8xMjguanBnXCIsXG4gICAgXCJ0aW1vdGh5Y2QvMTI4LmpwZ1wiLFxuICAgIFwiaXZhbmZpbGlwb3ZiZy8xMjguanBnXCIsXG4gICAgXCJwaWNhcmQxMDIvMTI4LmpwZ1wiLFxuICAgIFwibWFyY29iYXJib3NhLzEyOC5qcGdcIixcbiAgICBcImtyYXNub3VraG92LzEyOC5qcGdcIixcbiAgICBcImczZC8xMjguanBnXCIsXG4gICAgXCJhZGVtaWx0ZXIvMTI4LmpwZ1wiLFxuICAgIFwicmlja2R0LzEyOC5qcGdcIixcbiAgICBcIm9wZXJhdGluby8xMjguanBnXCIsXG4gICAgXCJidW5naXdhbi8xMjguanBnXCIsXG4gICAgXCJodWdvbWFuby8xMjguanBnXCIsXG4gICAgXCJsb2dvcmFkby8xMjguanBnXCIsXG4gICAgXCJkY191c2VyLzEyOC5qcGdcIixcbiAgICBcImhvcmFjaW9iZWxsYS8xMjguanBnXCIsXG4gICAgXCJTbGFhcE1lLzEyOC5qcGdcIixcbiAgICBcInRlZXJhZ2l0LzEyOC5qcGdcIixcbiAgICBcImlxb25pY2QvMTI4LmpwZ1wiLFxuICAgIFwiaWx5YV9wZXN0b3YvMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmV3YXJyb3cvMTI4LmpwZ1wiLFxuICAgIFwic3Npc2tpbmQvMTI4LmpwZ1wiLFxuICAgIFwic3Rhbi8xMjguanBnXCIsXG4gICAgXCJIZW5yeUhvZmZtYW4vMTI4LmpwZ1wiLFxuICAgIFwicmRzYXVuZGVycy8xMjguanBnXCIsXG4gICAgXCJhZGFtc3h1LzEyOC5qcGdcIixcbiAgICBcImN1cmlvdXNvZmZpY2UvMTI4LmpwZ1wiLFxuICAgIFwidGhlbWFkcmF5LzEyOC5qcGdcIixcbiAgICBcIm1pY2hpZ2FuZ3JhaGFtLzEyOC5qcGdcIixcbiAgICBcImtvaGV0dGUvMTI4LmpwZ1wiLFxuICAgIFwibmlja2ZyYXR0ZXIvMTI4LmpwZ1wiLFxuICAgIFwicnVubmluZ3NrdWxsLzEyOC5qcGdcIixcbiAgICBcIm1hZHlzb25kZXNpZ25zLzEyOC5qcGdcIixcbiAgICBcImJyZW50b25fY2xhcmtlLzEyOC5qcGdcIixcbiAgICBcImplbm55c2hlbi8xMjguanBnXCIsXG4gICAgXCJicmFkZW5oYW1tLzEyOC5qcGdcIixcbiAgICBcImt1cnRpbmMvMTI4LmpwZ1wiLFxuICAgIFwiYW1hbnJ1emFpbmkvMTI4LmpwZ1wiLFxuICAgIFwiY29yZXloYWdnYXJkLzEyOC5qcGdcIixcbiAgICBcIkthcmltbW92ZS8xMjguanBnXCIsXG4gICAgXCJhYXJvbmFsZnJlZC8xMjguanBnXCIsXG4gICAgXCJ3dHJzbGQvMTI4LmpwZ1wiLFxuICAgIFwiaml0YWNoaS8xMjguanBnXCIsXG4gICAgXCJ0aGVyZWFsbWFydmluLzEyOC5qcGdcIixcbiAgICBcInBtZWlzc25lci8xMjguanBnXCIsXG4gICAgXCJvb29tei8xMjguanBnXCIsXG4gICAgXCJjaGFja3kxNC8xMjguanBnXCIsXG4gICAgXCJqZXNzZWRkeS8xMjguanBnXCIsXG4gICAgXCJ0aGlubWF0dC8xMjguanBnXCIsXG4gICAgXCJzaGFuZWh1ZHNvbi8xMjguanBnXCIsXG4gICAgXCJha211ci8xMjguanBnXCIsXG4gICAgXCJJc2FyeUFtYWlyYW5pLzEyOC5qcGdcIixcbiAgICBcImFydGh1cmhvbGNvbWJlMS8xMjguanBnXCIsXG4gICAgXCJhbmR5Y2hpcHN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwiYm94bW9kZWwvMTI4LmpwZ1wiLFxuICAgIFwiZWhzYW5kaWFyeS8xMjguanBnXCIsXG4gICAgXCJMdWNhc1BlcmRpZGFvLzEyOC5qcGdcIixcbiAgICBcInNoYWx0MG5pLzEyOC5qcGdcIixcbiAgICBcInN3YXBsb3JkLzEyOC5qcGdcIixcbiAgICBcImthZWxpZmEvMTI4LmpwZ1wiLFxuICAgIFwicGxiYWJpbi8xMjguanBnXCIsXG4gICAgXCJndWlsbGVtYm90aS8xMjguanBnXCIsXG4gICAgXCJhcmluZGFtXy8xMjguanBnXCIsXG4gICAgXCJyZW5ieXJkLzEyOC5qcGdcIixcbiAgICBcInRoaWFnb3Zlcm5ldHRpLzEyOC5qcGdcIixcbiAgICBcImptaWxsc3BheXNiaWxscy8xMjguanBnXCIsXG4gICAgXCJtaWtlbWFpMmF3ZXNvbWUvMTI4LmpwZ1wiLFxuICAgIFwiamVydm8vMTI4LmpwZ1wiLFxuICAgIFwibWVrYWwvMTI4LmpwZ1wiLFxuICAgIFwic3RhMWV4LzEyOC5qcGdcIixcbiAgICBcInJvYmVyZ2QvMTI4LmpwZ1wiLFxuICAgIFwiZmVsaXBlY3NsLzEyOC5qcGdcIixcbiAgICBcImFuZHJlYTIxMTA4Ny8xMjguanBnXCIsXG4gICAgXCJnYXJhbmQvMTI4LmpwZ1wiLFxuICAgIFwiZGhvb3llbmdhLzEyOC5qcGdcIixcbiAgICBcImFib3ZlZnVuY3Rpb24vMTI4LmpwZ1wiLFxuICAgIFwicGNyaWRlc2FnYWluLzEyOC5qcGdcIixcbiAgICBcInJhbmRvbWxpZXMvMTI4LmpwZ1wiLFxuICAgIFwiQnJ5YW5Ib3JzZXkvMTI4LmpwZ1wiLFxuICAgIFwiaGV5a2VubmV0aC8xMjguanBnXCIsXG4gICAgXCJkYWhwYXJyYS8xMjguanBnXCIsXG4gICAgXCJhbGx0aGluZ3NzbWl0dHkvMTI4LmpwZ1wiLFxuICAgIFwiZGFudmVybm9uLzEyOC5qcGdcIixcbiAgICBcImJld2VpbnJlaWNoLzEyOC5qcGdcIixcbiAgICBcImluY3JlYXNlLzEyOC5qcGdcIixcbiAgICBcImZhbHZhcmFkLzEyOC5qcGdcIixcbiAgICBcImFseG5kcnVzdGlub3YvMTI4LmpwZ1wiLFxuICAgIFwic291dWYvMTI4LmpwZ1wiLFxuICAgIFwib3JrdW5jYXlsYXIvMTI4LmpwZ1wiLFxuICAgIFwiQU1fS24yLzEyOC5qcGdcIixcbiAgICBcImdlYXJwaXhlbHMvMTI4LmpwZ1wiLFxuICAgIFwiYmFzc2Ftb2xvZ3kvMTI4LmpwZ1wiLFxuICAgIFwidmltYXJldGhvbWFzLzEyOC5qcGdcIixcbiAgICBcImtvc21hci8xMjguanBnXCIsXG4gICAgXCJTVUxpaWsvMTI4LmpwZ1wiLFxuICAgIFwibXJqYW1lc25vYmxlLzEyOC5qcGdcIixcbiAgICBcInNpbHZhbm11aGxlbWFubi8xMjguanBnXCIsXG4gICAgXCJzaGFuZUl4RC8xMjguanBnXCIsXG4gICAgXCJuYWNoby8xMjguanBnXCIsXG4gICAgXCJ5aWdpdHBpbmFyYmFzaS8xMjguanBnXCIsXG4gICAgXCJidXp6dXNib3JuZS8xMjguanBnXCIsXG4gICAgXCJhYXJvbmt3aGl0ZS8xMjguanBnXCIsXG4gICAgXCJybWxld2lzdWsvMTI4LmpwZ1wiLFxuICAgIFwiZ2lhbmNhcmxvbi8xMjguanBnXCIsXG4gICAgXCJuYmlyY2tlbC8xMjguanBnXCIsXG4gICAgXCJkX25ueV9tX2NoZXIvMTI4LmpwZ1wiLFxuICAgIFwic2RpZG9uYXRvLzEyOC5qcGdcIixcbiAgICBcImF0YXJpYm95LzEyOC5qcGdcIixcbiAgICBcImFib3RhcC8xMjguanBnXCIsXG4gICAgXCJrYXJhbGVrLzEyOC5qcGdcIixcbiAgICBcInBzZGVzaWdudWsvMTI4LmpwZ1wiLFxuICAgIFwibHVkd2ljemFrcGF3ZWwvMTI4LmpwZ1wiLFxuICAgIFwibmVtYW5qYWl2YW5vdmljLzEyOC5qcGdcIixcbiAgICBcImJhbHVsaS8xMjguanBnXCIsXG4gICAgXCJhaG1hZGFqbWkvMTI4LmpwZ1wiLFxuICAgIFwidm92a2Fzb2xvdmV2LzEyOC5qcGdcIixcbiAgICBcInNhbWdyb3Zlci8xMjguanBnXCIsXG4gICAgXCJkZXJpZW56bzc3Ny8xMjguanBnXCIsXG4gICAgXCJqb25hdGhhbnNpbW1vbnMvMTI4LmpwZ1wiLFxuICAgIFwibmVsc29uam95Y2UvMTI4LmpwZ1wiLFxuICAgIFwiUzB1Zmk0bjMvMTI4LmpwZ1wiLFxuICAgIFwieHRvcGhlcnBhdWwvMTI4LmpwZ1wiLFxuICAgIFwib2FrdHJlZW1lZGlhLzEyOC5qcGdcIixcbiAgICBcIm5hdGVzY2h1bHRlLzEyOC5qcGdcIixcbiAgICBcImZpbmRpbmdqZW5ueS8xMjguanBnXCIsXG4gICAgXCJuYW1hbmtyZWF0aXZlLzEyOC5qcGdcIixcbiAgICBcImFudG9ueXpvdG92LzEyOC5qcGdcIixcbiAgICBcIndlX3NvY2lhbC8xMjguanBnXCIsXG4gICAgXCJsZWVoYW1ibGV5LzEyOC5qcGdcIixcbiAgICBcInNvbGlkX2NvbG9yLzEyOC5qcGdcIixcbiAgICBcImFiZWxjYWJhbnMvMTI4LmpwZ1wiLFxuICAgIFwibWJpbGRlcmJhY2gvMTI4LmpwZ1wiLFxuICAgIFwia2t1c2FhLzEyOC5qcGdcIixcbiAgICBcImpvcmR5dmRib29tLzEyOC5qcGdcIixcbiAgICBcImNhcmxvc2dhdmluYS8xMjguanBnXCIsXG4gICAgXCJwZWNoa2luYXRvci8xMjguanBnXCIsXG4gICAgXCJ2YzI3LzEyOC5qcGdcIixcbiAgICBcInJkYmFubm9uLzEyOC5qcGdcIixcbiAgICBcImNyb2FreC8xMjguanBnXCIsXG4gICAgXCJzdXJpYmJsZXMvMTI4LmpwZ1wiLFxuICAgIFwia2VyaWhlbmFyZS8xMjguanBnXCIsXG4gICAgXCJjYXRhZGVsZW9uLzEyOC5qcGdcIixcbiAgICBcImdjbW9ybGV5LzEyOC5qcGdcIixcbiAgICBcImR1aXZ2di8xMjguanBnXCIsXG4gICAgXCJzYXNjaGFkcm9zdGUvMTI4LmpwZ1wiLFxuICAgIFwidmljdG9yRHVidWdyYXMvMTI4LmpwZ1wiLFxuICAgIFwid2ludG9waWEvMTI4LmpwZ1wiLFxuICAgIFwibWF0dGJpbG90dGkvMTI4LmpwZ1wiLFxuICAgIFwidGF5bG9ybGluZy8xMjguanBnXCIsXG4gICAgXCJtZWdkcmF3cy8xMjguanBnXCIsXG4gICAgXCJtZWxuMWtzLzEyOC5qcGdcIixcbiAgICBcIm1haG1vdWRtZXR3YWxseS8xMjguanBnXCIsXG4gICAgXCJTaWx2ZXJlZGdlOS8xMjguanBnXCIsXG4gICAgXCJkZXJla2VicmFkbGV5LzEyOC5qcGdcIixcbiAgICBcImhhcHB5cGV0ZXIxOTgzLzEyOC5qcGdcIixcbiAgICBcInRyYXZpc19hcm5vbGQvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0ZW1fa29zdGVua28vMTI4LmpwZ1wiLFxuICAgIFwiYWRvYmkvMTI4LmpwZ1wiLFxuICAgIFwiZGF5a2lpbmUvMTI4LmpwZ1wiLFxuICAgIFwiYWxla19kanVyaWMvMTI4LmpwZ1wiLFxuICAgIFwic2NpcHMvMTI4LmpwZ1wiLFxuICAgIFwibWlndWVsbWVuZGVzLzEyOC5qcGdcIixcbiAgICBcImp1c3RpbnJoZWUvMTI4LmpwZ1wiLFxuICAgIFwiYWxzb2Jyb29rcy8xMjguanBnXCIsXG4gICAgXCJmcm9ueC8xMjguanBnXCIsXG4gICAgXCJtY2ZseWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJzYW50aV91cnNvLzEyOC5qcGdcIixcbiAgICBcImFsbGZvcmRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJzdGF5dWJlci8xMjguanBnXCIsXG4gICAgXCJiZXJ0Ym9lcmxhbmQvMTI4LmpwZ1wiLFxuICAgIFwibWFyb3Nob2xseS8xMjguanBnXCIsXG4gICAgXCJhZGFtbmFjLzEyOC5qcGdcIixcbiAgICBcImN5bnRoaWFzYXZhcmQvMTI4LmpwZ1wiLFxuICAgIFwibXVyaW5nYS8xMjguanBnXCIsXG4gICAgXCJkYW5yby8xMjguanBnXCIsXG4gICAgXCJoaWVtaWwvMTI4LmpwZ1wiLFxuICAgIFwiamFja2llc2Fpay8xMjguanBnXCIsXG4gICAgXCJ6YWNzbmlkZXIvMTI4LmpwZ1wiLFxuICAgIFwiaWR1dWNrLzEyOC5qcGdcIixcbiAgICBcImFudGphbnVzLzEyOC5qcGdcIixcbiAgICBcImFyb29uX3NoYXJtYS8xMjguanBnXCIsXG4gICAgXCJkc2hzdGVyLzEyOC5qcGdcIixcbiAgICBcInRoZWhhY2tlci8xMjguanBnXCIsXG4gICAgXCJtaWNoYWVsYnJvb2tzanIvMTI4LmpwZ1wiLFxuICAgIFwicnlhbm1jbGF1Z2hsaW4vMTI4LmpwZ1wiLFxuICAgIFwiY2x1YmIzcnJ5LzEyOC5qcGdcIixcbiAgICBcInRheWJlbmxvci8xMjguanBnXCIsXG4gICAgXCJ4cmlwdW5vdi8xMjguanBnXCIsXG4gICAgXCJteWFzdHJvLzEyOC5qcGdcIixcbiAgICBcImFkaXR5YXN1dG9tby8xMjguanBnXCIsXG4gICAgXCJkaWdpdGFsbWF2ZXJpY2svMTI4LmpwZ1wiLFxuICAgIFwiaGphcnRzdHJvcm4vMTI4LmpwZ1wiLFxuICAgIFwiaXRvbG1hY2gvMTI4LmpwZ1wiLFxuICAgIFwidmF1Z2hhbm1vZmZpdHQvMTI4LmpwZ1wiLFxuICAgIFwiYWJkb3RzLzEyOC5qcGdcIixcbiAgICBcImlzbmlmZXIvMTI4LmpwZ1wiLFxuICAgIFwic2VyZ2V5c2Fmb25vdi8xMjguanBnXCIsXG4gICAgXCJtYXovMTI4LmpwZ1wiLFxuICAgIFwic2NyYXBkbmIvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXNtajgzLzEyOC5qcGdcIixcbiAgICBcInZpdG9ybGVhbC8xMjguanBnXCIsXG4gICAgXCJzb2thbml3YWFsLzEyOC5qcGdcIixcbiAgICBcInpha2kzZC8xMjguanBnXCIsXG4gICAgXCJpbGx5em9yZW4vMTI4LmpwZ1wiLFxuICAgIFwibW9jYWJ5dGUvMTI4LmpwZ1wiLFxuICAgIFwib3NtYW5pbmNlLzEyOC5qcGdcIixcbiAgICBcImRqc2hlcm1hbi8xMjguanBnXCIsXG4gICAgXCJkYXZpZGhlbXBoaWxsLzEyOC5qcGdcIixcbiAgICBcIndhZ2huZXIvMTI4LmpwZ1wiLFxuICAgIFwibmVjb2R5bWljb25lci8xMjguanBnXCIsXG4gICAgXCJwcmF2ZWVuX3ZpamF5YS8xMjguanBnXCIsXG4gICAgXCJmYWJicnVjY2kvMTI4LmpwZ1wiLFxuICAgIFwiY2xpZmZzZWFsLzEyOC5qcGdcIixcbiAgICBcInRyYXZpc2hpbmVzLzEyOC5qcGdcIixcbiAgICBcImt1bGRhcmthbHZpay8xMjguanBnXCIsXG4gICAgXCJFbHRfbi8xMjguanBnXCIsXG4gICAgXCJwaGlsbGFwaWVyLzEyOC5qcGdcIixcbiAgICBcIm9rc2VhbmpheS8xMjguanBnXCIsXG4gICAgXCJpZDgzNTU1OS8xMjguanBnXCIsXG4gICAgXCJrdWRyZXRrZXNraW4vMTI4LmpwZ1wiLFxuICAgIFwiYW5qaGVyby8xMjguanBnXCIsXG4gICAgXCJkdWNrNGZ1Y2svMTI4LmpwZ1wiLFxuICAgIFwic2NvdHRfcmlsZXkvMTI4LmpwZ1wiLFxuICAgIFwibm91ZmFsaWJyYWhpbS8xMjguanBnXCIsXG4gICAgXCJoMWJyZC8xMjguanBnXCIsXG4gICAgXCJib3JnZXNfbWFyY29zLzEyOC5qcGdcIixcbiAgICBcImRldmluaGFsbGFkYXkvMTI4LmpwZ1wiLFxuICAgIFwiY2lhcmFuci8xMjguanBnXCIsXG4gICAgXCJzdGVmb29vLzEyOC5qcGdcIixcbiAgICBcIm1pa2ViZWVjaGFtLzEyOC5qcGdcIixcbiAgICBcInRvbnltaWxsaW9uLzEyOC5qcGdcIixcbiAgICBcImpvc2h1YXJhaWNodXIvMTI4LmpwZ1wiLFxuICAgIFwiaXJhZS8xMjguanBnXCIsXG4gICAgXCJwZXRyYW5nci8xMjguanBnXCIsXG4gICAgXCJkbWl0cml5Y2h1dGEvMTI4LmpwZ1wiLFxuICAgIFwiY2hhcmxpZWdhbm4vMTI4LmpwZ1wiLFxuICAgIFwiYXJhc2htYW50ZWdoaS8xMjguanBnXCIsXG4gICAgXCJhZGhhbWRhbm5hd2F5LzEyOC5qcGdcIixcbiAgICBcImFpbnNsZXl3YWdvbi8xMjguanBnXCIsXG4gICAgXCJzdmVubGVuLzEyOC5qcGdcIixcbiAgICBcImZhaXNhbGFiaWQvMTI4LmpwZ1wiLFxuICAgIFwiYmVzaHVyLzEyOC5qcGdcIixcbiAgICBcImNhcmx5c29uLzEyOC5qcGdcIixcbiAgICBcImR1dGNobmFkaWEvMTI4LmpwZ1wiLFxuICAgIFwidGVkZHl6ZXR0ZXJsdW5kLzEyOC5qcGdcIixcbiAgICBcInNhbXVlbGtyYWZ0LzEyOC5qcGdcIixcbiAgICBcImFvaW1lZGlhLzEyOC5qcGdcIixcbiAgICBcInRvZGRyZXcvMTI4LmpwZ1wiLFxuICAgIFwiY29kZXBvZXRfcnUvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0dmF2cy8xMjguanBnXCIsXG4gICAgXCJiZW5vaXRib3VjYXJ0LzEyOC5qcGdcIixcbiAgICBcImpvbWFybWVuLzEyOC5qcGdcIixcbiAgICBcImtvbG1hcmxvcGV6LzEyOC5qcGdcIixcbiAgICBcImNyZWFydGluYy8xMjguanBnXCIsXG4gICAgXCJob21rYS8xMjguanBnXCIsXG4gICAgXCJnYWJvcmVudG9uLzEyOC5qcGdcIixcbiAgICBcInJvYmluY2xlZGllcmUvMTI4LmpwZ1wiLFxuICAgIFwibWF4aW1zb3Jva2luLzEyOC5qcGdcIixcbiAgICBcInBsYXN0aWNpbmUvMTI4LmpwZ1wiLFxuICAgIFwiajJkZW1lLzEyOC5qcGdcIixcbiAgICBcInBlYWNoYW5hbnIvMTI4LmpwZ1wiLFxuICAgIFwia2FwYWx1Y2Npby8xMjguanBnXCIsXG4gICAgXCJkZV9hc2NhbmlvLzEyOC5qcGdcIixcbiAgICBcInJpa2FzLzEyOC5qcGdcIixcbiAgICBcImRhd2lkd3UvMTI4LmpwZ1wiLFxuICAgIFwibWFyY29yYW1pcmVzLzEyOC5qcGdcIixcbiAgICBcImFuZ2VsY3JlYXRpdmUvMTI4LmpwZ1wiLFxuICAgIFwicnBhdGV5LzEyOC5qcGdcIixcbiAgICBcInBvcGV5LzEyOC5qcGdcIixcbiAgICBcInJlaGF0a2F0aHVyaWEvMTI4LmpwZ1wiLFxuICAgIFwidGhlX3B1cnBsZWJ1bm55LzEyOC5qcGdcIixcbiAgICBcIjFtYXJraXovMTI4LmpwZ1wiLFxuICAgIFwiYWpheHlfcnUvMTI4LmpwZ1wiLFxuICAgIFwiYnJlbm11cnJlbGwvMTI4LmpwZ1wiLFxuICAgIFwiZHVkZXN0ZWluLzEyOC5qcGdcIixcbiAgICBcIm9za2FybGV2aW5zb24vMTI4LmpwZ1wiLFxuICAgIFwidmljdG9yc3R1YmVyLzEyOC5qcGdcIixcbiAgICBcIm5laGZ5LzEyOC5qcGdcIixcbiAgICBcInZpY2l2YWRlbGluZS8xMjguanBnXCIsXG4gICAgXCJsZWFuZHJvdmFyYW5kYS8xMjguanBnXCIsXG4gICAgXCJzY290dGdhbGxhbnQvMTI4LmpwZ1wiLFxuICAgIFwidmljdG9yX2hheWRpbi8xMjguanBnXCIsXG4gICAgXCJzYXdyYi8xMjguanBnXCIsXG4gICAgXCJyeWhhbmhhc3Nhbi8xMjguanBnXCIsXG4gICAgXCJhbWF5dnMvMTI4LmpwZ1wiLFxuICAgIFwiYV9icml4ZW4vMTI4LmpwZ1wiLFxuICAgIFwia2Fyb2xrcmFrb3dpYWtfLzEyOC5qcGdcIixcbiAgICBcImhlcmt1bGFuby8xMjguanBnXCIsXG4gICAgXCJnZXJhbjcvMTI4LmpwZ1wiLFxuICAgIFwiY2dnYXVyYXYvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXNfd2l0a28vMTI4LmpwZ1wiLFxuICAgIFwibG9zb3NpbmEvMTI4LmpwZ1wiLFxuICAgIFwicG9sYXJpdHkvMTI4LmpwZ1wiLFxuICAgIFwibWF0dGxhdC8xMjguanBnXCIsXG4gICAgXCJicmFuZG9uYnVya2UvMTI4LmpwZ1wiLFxuICAgIFwiY29uc3RhbnR4LzEyOC5qcGdcIixcbiAgICBcInRleWxvcmZlbGl6LzEyOC5qcGdcIixcbiAgICBcImNyYWlnZWxpbWVsaWFoLzEyOC5qcGdcIixcbiAgICBcInJhY2hlbHJldmVsZXkvMTI4LmpwZ1wiLFxuICAgIFwicmVhYm8xMDEvMTI4LmpwZ1wiLFxuICAgIFwicmFobWVlbi8xMjguanBnXCIsXG4gICAgXCJreS8xMjguanBnXCIsXG4gICAgXCJyaWNreXllYW4vMTI4LmpwZ1wiLFxuICAgIFwiajA0bnRvaC8xMjguanBnXCIsXG4gICAgXCJzcGJyb21hLzEyOC5qcGdcIixcbiAgICBcInNlYmFzaHRvbi8xMjguanBnXCIsXG4gICAgXCJqcGVuaWNvLzEyOC5qcGdcIixcbiAgICBcImZyYW5jaXNfdmVnYS8xMjguanBnXCIsXG4gICAgXCJva3RheWVsaXBlay8xMjguanBnXCIsXG4gICAgXCJraWtpbGxvLzEyOC5qcGdcIixcbiAgICBcImZhYmJpYW56LzEyOC5qcGdcIixcbiAgICBcImxhcnJ5Z2VyYXJkLzEyOC5qcGdcIixcbiAgICBcIkJyb3VtaVlvdXNzZWYvMTI4LmpwZ1wiLFxuICAgIFwiMHRoZXJwbGFuZXQvMTI4LmpwZ1wiLFxuICAgIFwibWJpbGFsc2lkZGlxdWUxLzEyOC5qcGdcIixcbiAgICBcImlvbnVzcy8xMjguanBnXCIsXG4gICAgXCJncnJyX25sLzEyOC5qcGdcIixcbiAgICBcImxpbWluaGEvMTI4LmpwZ1wiLFxuICAgIFwicmF3ZGlnZ2llLzEyOC5qcGdcIixcbiAgICBcInJ5YW5kb3duaWUvMTI4LmpwZ1wiLFxuICAgIFwic2V0aGxvdWV5LzEyOC5qcGdcIixcbiAgICBcInBpeGFnZS8xMjguanBnXCIsXG4gICAgXCJhcnBpdG5qLzEyOC5qcGdcIixcbiAgICBcInN3aXRtZXI3NzcvMTI4LmpwZ1wiLFxuICAgIFwiam9zZXZuY2xjaC8xMjguanBnXCIsXG4gICAgXCJrYW5pY2thaXJhai8xMjguanBnXCIsXG4gICAgXCJwdXppay8xMjguanBnXCIsXG4gICAgXCJ0YmFrZGVzaWducy8xMjguanBnXCIsXG4gICAgXCJiZXNidWp1cGkvMTI4LmpwZ1wiLFxuICAgIFwic3Vwam9leS8xMjguanBnXCIsXG4gICAgXCJsb3dpZS8xMjguanBnXCIsXG4gICAgXCJsaW5raWJvbC8xMjguanBnXCIsXG4gICAgXCJiYWxpbnRvcm9zei8xMjguanBnXCIsXG4gICAgXCJpbWNvZGluZy8xMjguanBnXCIsXG4gICAgXCJhZ3VzdGluY3J1aXovMTI4LmpwZ1wiLFxuICAgIFwiZ3Vzb3RvLzEyOC5qcGdcIixcbiAgICBcInRob21hc3NjaHJpamVyLzEyOC5qcGdcIixcbiAgICBcInN1cGVyb3V0bWFuLzEyOC5qcGdcIixcbiAgICBcImthbG1lcnJhdXRhbS8xMjguanBnXCIsXG4gICAgXCJnYWJyaWVsaXphbG8vMTI4LmpwZ1wiLFxuICAgIFwiZ29qZWFueW4vMTI4LmpwZ1wiLFxuICAgIFwiZGF2aWRiYWxkaWUvMTI4LmpwZ1wiLFxuICAgIFwiX3ZvanRvLzEyOC5qcGdcIixcbiAgICBcImxhdXJlbmdyYXkvMTI4LmpwZ1wiLFxuICAgIFwianlkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwibXlteWJveS8xMjguanBnXCIsXG4gICAgXCJuZWxsbGVvLzEyOC5qcGdcIixcbiAgICBcIm1hcmNpb3RvbGVkby8xMjguanBnXCIsXG4gICAgXCJuaW5qYWQzbTAvMTI4LmpwZ1wiLFxuICAgIFwidG9fc29oYW0vMTI4LmpwZ1wiLFxuICAgIFwiaGFzc2x1bnNmb3JkLzEyOC5qcGdcIixcbiAgICBcIm11cmlkcmFoaGFsLzEyOC5qcGdcIixcbiAgICBcImxldmlzYW4vMTI4LmpwZ1wiLFxuICAgIFwiZ3JhaGFta2VubmVyeS8xMjguanBnXCIsXG4gICAgXCJsZXBldGl0b2dyZS8xMjguanBnXCIsXG4gICAgXCJhbnRvbmdlbmtpbi8xMjguanBnXCIsXG4gICAgXCJuZXNzb2lsYS8xMjguanBnXCIsXG4gICAgXCJhbWFuZGFidXphcmQvMTI4LmpwZ1wiLFxuICAgIFwic2FmcmFua292LzEyOC5qcGdcIixcbiAgICBcImNvY29sZXJvLzEyOC5qcGdcIixcbiAgICBcImRzczQ5LzEyOC5qcGdcIixcbiAgICBcIm1hdHQzMjI0LzEyOC5qcGdcIixcbiAgICBcImJsdWVzaXgvMTI4LmpwZ1wiLFxuICAgIFwicXVhaWxhbmRxdWFzYXIvMTI4LmpwZ1wiLFxuICAgIFwiQWxiZXJ0b0NvY29jaS8xMjguanBnXCIsXG4gICAgXCJsZXBpbnNraS8xMjguanBnXCIsXG4gICAgXCJzZW1lbnRpeS8xMjguanBnXCIsXG4gICAgXCJtaHVkb2Jpdm5pay8xMjguanBnXCIsXG4gICAgXCJ0aGliYXV0X3JlLzEyOC5qcGdcIixcbiAgICBcIm9sZ2FyeS8xMjguanBnXCIsXG4gICAgXCJzaG9qYmVyZy8xMjguanBnXCIsXG4gICAgXCJtdG9sb2tvbm5pa292LzEyOC5qcGdcIixcbiAgICBcImJlcmV0by8xMjguanBnXCIsXG4gICAgXCJuYXVwaW50b3MvMTI4LmpwZ1wiLFxuICAgIFwid2Vnb3R2aWNlcy8xMjguanBnXCIsXG4gICAgXCJ4YWRoaXgvMTI4LmpwZ1wiLFxuICAgIFwibWFjeGltLzEyOC5qcGdcIixcbiAgICBcInJvZG55bG9ib3MvMTI4LmpwZ1wiLFxuICAgIFwibWFkY2FtcG9zLzEyOC5qcGdcIixcbiAgICBcIm1hZGVieXZhZGltLzEyOC5qcGdcIixcbiAgICBcImJhcnRvc3pkYXd5ZHppay8xMjguanBnXCIsXG4gICAgXCJzdXBlcnZvdmEvMTI4LmpwZ1wiLFxuICAgIFwibWFya3JldHpsb2ZmLzEyOC5qcGdcIixcbiAgICBcInZvbmFjaG9vLzEyOC5qcGdcIixcbiAgICBcImRhcnlsd3MvMTI4LmpwZ1wiLFxuICAgIFwic3RldmVkZXNpZ25lci8xMjguanBnXCIsXG4gICAgXCJteWxlc2IvMTI4LmpwZ1wiLFxuICAgIFwiaGVyYmlndC8xMjguanBnXCIsXG4gICAgXCJkZXBhdWxhd2FnbmVyLzEyOC5qcGdcIixcbiAgICBcImdlc2hhbi8xMjguanBnXCIsXG4gICAgXCJnaXptZWVkZXZpbDE5OTEvMTI4LmpwZ1wiLFxuICAgIFwiX3Njb3R0YnVyZ2Vzcy8xMjguanBnXCIsXG4gICAgXCJsaXNvdnNreS8xMjguanBnXCIsXG4gICAgXCJkYXZpZHNhc2RhLzEyOC5qcGdcIixcbiAgICBcImFydGRfc2lnbi8xMjguanBnXCIsXG4gICAgXCJZb3VuZ0N1dGxhc3MvMTI4LmpwZ1wiLFxuICAgIFwibWdvbnRvLzEyOC5qcGdcIixcbiAgICBcIml0c3RvdGFsbHlhbXkvMTI4LmpwZ1wiLFxuICAgIFwidmljdG9ycXVpbm4vMTI4LmpwZ1wiLFxuICAgIFwib3Ntb25kLzEyOC5qcGdcIixcbiAgICBcIm9rc2FuYWZyZXdlci8xMjguanBnXCIsXG4gICAgXCJ6YXVlcmtyYXV0LzEyOC5qcGdcIixcbiAgICBcImlhbWtlaXRobWFzb24vMTI4LmpwZ1wiLFxuICAgIFwibml0aW5oYXlhcmFuLzEyOC5qcGdcIixcbiAgICBcImxtamFicmV1LzEyOC5qcGdcIixcbiAgICBcIm1hbmRhbGFyZW9wZW5zLzEyOC5qcGdcIixcbiAgICBcInRoaW5rbGVmdC8xMjguanBnXCIsXG4gICAgXCJwb25jaG9tZW5kaXZpbC8xMjguanBnXCIsXG4gICAgXCJqdWFtcGVycm8vMTI4LmpwZ1wiLFxuICAgIFwiYnJ1bm9kZXNpZ24xMjA2LzEyOC5qcGdcIixcbiAgICBcImNhc2V5Y2F2YW5hZ2gvMTI4LmpwZ1wiLFxuICAgIFwibHV4ZS8xMjguanBnXCIsXG4gICAgXCJkb3RncmlkbGluZS8xMjguanBnXCIsXG4gICAgXCJzcGVkd2lnLzEyOC5qcGdcIixcbiAgICBcIm1hZGV3dWxmLzEyOC5qcGdcIixcbiAgICBcIm1hdHRzYXBpaS8xMjguanBnXCIsXG4gICAgXCJoZWxkZXJsZWFsLzEyOC5qcGdcIixcbiAgICBcImNocmlzc3R1bXBoLzEyOC5qcGdcIixcbiAgICBcImpheXBoZW4vMTI4LmpwZ1wiLFxuICAgIFwibnNhbW95bG92LzEyOC5qcGdcIixcbiAgICBcImNocmlzdmFuZGVya29vaS8xMjguanBnXCIsXG4gICAgXCJqdXN0bWVfdGltb3RoeWcvMTI4LmpwZ1wiLFxuICAgIFwib3RvemsvMTI4LmpwZ1wiLFxuICAgIFwicHJpbnphZGkvMTI4LmpwZ1wiLFxuICAgIFwiZ3U1dGFmLzEyOC5qcGdcIixcbiAgICBcImN5cmlsX2dhaWxsYXJkLzEyOC5qcGdcIixcbiAgICBcImRfa29iZWx5YXRza3kvMTI4LmpwZ1wiLFxuICAgIFwiZGFuaWxvYy8xMjguanBnXCIsXG4gICAgXCJud2RzaGEvMTI4LmpwZ1wiLFxuICAgIFwicm9tYW5idWxhaC8xMjguanBnXCIsXG4gICAgXCJza2tpcmlsb3YvMTI4LmpwZ1wiLFxuICAgIFwiZHZkd2luZGVuLzEyOC5qcGdcIixcbiAgICBcImRhbm5vbC8xMjguanBnXCIsXG4gICAgXCJ0aGVrZXZpbmpvbmVzLzEyOC5qcGdcIixcbiAgICBcImp3YWx0ZXIxNC8xMjguanBnXCIsXG4gICAgXCJ0aW1ndGhvbWFzLzEyOC5qcGdcIixcbiAgICBcImJ1ZGRoYXNvdXJjZS8xMjguanBnXCIsXG4gICAgXCJ1eHBpcGVyLzEyOC5qcGdcIixcbiAgICBcInRoYXRvbmV0b21teS8xMjguanBnXCIsXG4gICAgXCJkaWFuc2lnaXRwLzEyOC5qcGdcIixcbiAgICBcImFkcmllbnRocy8xMjguanBnXCIsXG4gICAgXCJrbGltbWthLzEyOC5qcGdcIixcbiAgICBcImdrYWFtLzEyOC5qcGdcIixcbiAgICBcImRlcmVrY3JhbWVyLzEyOC5qcGdcIixcbiAgICBcImplbm55eW8vMTI4LmpwZ1wiLFxuICAgIFwibmVycnNvZnQvMTI4LmpwZ1wiLFxuICAgIFwieGFsaW9ubWFsaWsvMTI4LmpwZ1wiLFxuICAgIFwiZWRoZW5kZXJzb24vMTI4LmpwZ1wiLFxuICAgIFwia2V5dXJpODUvMTI4LmpwZ1wiLFxuICAgIFwicm94YW5lamFtbWV0LzEyOC5qcGdcIixcbiAgICBcImtpbWNvb2wvMTI4LmpwZ1wiLFxuICAgIFwiZWRrZi8xMjguanBnXCIsXG4gICAgXCJtYXRraW5zLzEyOC5qcGdcIixcbiAgICBcImFsZXNzYW5kcm9yaWJlLzEyOC5qcGdcIixcbiAgICBcImphY2tzb25sYXRrYS8xMjguanBnXCIsXG4gICAgXCJsZWJyb25qZW5uYW4vMTI4LmpwZ1wiLFxuICAgIFwia29zdGFzcHQvMTI4LmpwZ1wiLFxuICAgIFwia2FybGthbmFsbC8xMjguanBnXCIsXG4gICAgXCJtb3luaWhhbi8xMjguanBnXCIsXG4gICAgXCJkYW5wbGllZ28vMTI4LmpwZ1wiLFxuICAgIFwic2F1bGloaXJ2aS8xMjguanBnXCIsXG4gICAgXCJ3ZXNsZXl0cmFua2luLzEyOC5qcGdcIixcbiAgICBcImZqYWd1ZXJvLzEyOC5qcGdcIixcbiAgICBcImJvd2JyaWNrLzEyOC5qcGdcIixcbiAgICBcIm1hc2hhYWFhYWwvMTI4LmpwZ1wiLFxuICAgIFwieWFzc2lyeWFoeWEvMTI4LmpwZ1wiLFxuICAgIFwiZHBhcnJlbGxpLzEyOC5qcGdcIixcbiAgICBcImZvdG9tYWdpbi8xMjguanBnXCIsXG4gICAgXCJha2FfamFtZXMvMTI4LmpwZ1wiLFxuICAgIFwiZGVuaXNlcGlyZXMvMTI4LmpwZ1wiLFxuICAgIFwiaXFiYWxwZXJrYXNhLzEyOC5qcGdcIixcbiAgICBcIm1hcnRpbmFuc3R5LzEyOC5qcGdcIixcbiAgICBcImphcnNlbi8xMjguanBnXCIsXG4gICAgXCJyX295LzEyOC5qcGdcIixcbiAgICBcImp1c3RpbnJvYi8xMjguanBnXCIsXG4gICAgXCJnYWJyaWVscm9zc2VyLzEyOC5qcGdcIixcbiAgICBcIm1hbGdvcmRvbi8xMjguanBnXCIsXG4gICAgXCJjYXJsZmFpcmNsb3VnaC8xMjguanBnXCIsXG4gICAgXCJtaWNoYWVsYWJlaHNlcmEvMTI4LmpwZ1wiLFxuICAgIFwicGllcnJlc3RvZmZlLzEyOC5qcGdcIixcbiAgICBcImVuam95dGhldGF1LzEyOC5qcGdcIixcbiAgICBcImxvZ2FuamxhbWJlcnQvMTI4LmpwZ1wiLFxuICAgIFwicnBlZXp5LzEyOC5qcGdcIixcbiAgICBcImNvcmV5Z2lubml2YW4vMTI4LmpwZ1wiLFxuICAgIFwibWljaGFsaHJvbi8xMjguanBnXCIsXG4gICAgXCJtc3ZlZXQvMTI4LmpwZ1wiLFxuICAgIFwibGluZ2Vzd2FyYW4vMTI4LmpwZ1wiLFxuICAgIFwia29sc3ZlaW4vMTI4LmpwZ1wiLFxuICAgIFwicGV0ZXI1NzYvMTI4LmpwZ1wiLFxuICAgIFwicmVpZGVpcmVkYWxlLzEyOC5qcGdcIixcbiAgICBcImpvZXltdXJkYWgvMTI4LmpwZ1wiLFxuICAgIFwicmFwaGFlbG5pa3Nvbi8xMjguanBnXCIsXG4gICAgXCJtdmRoZXV2ZWwvMTI4LmpwZ1wiLFxuICAgIFwibWF4bGluZGVybWFuLzEyOC5qcGdcIixcbiAgICBcImppbW11aXJoZWFkLzEyOC5qcGdcIixcbiAgICBcImJlZ3JlYXRpdmUvMTI4LmpwZ1wiLFxuICAgIFwiZnJhbmtpZWZyZWVzYmllLzEyOC5qcGdcIixcbiAgICBcInJvYnR1cmxpbmNreC8xMjguanBnXCIsXG4gICAgXCJUYWxiaV9Db25TZXB0LzEyOC5qcGdcIixcbiAgICBcImxvbmdsaXZlbXl3b3JkLzEyOC5qcGdcIixcbiAgICBcInZhbmNoZXN6LzEyOC5qcGdcIixcbiAgICBcIm1haWtsYW0vMTI4LmpwZ1wiLFxuICAgIFwiaGVybWFub2Jyb3RoZXIvMTI4LmpwZ1wiLFxuICAgIFwicmV6X19fYS8xMjguanBnXCIsXG4gICAgXCJncmVnc3F1ZWViLzEyOC5qcGdcIixcbiAgICBcImdyZWVuYmVzLzEyOC5qcGdcIixcbiAgICBcIl9yYWd6b3IvMTI4LmpwZ1wiLFxuICAgIFwiYW50aG9ueXN1a293LzEyOC5qcGdcIixcbiAgICBcImZsdWlkYnJ1c2gvMTI4LmpwZ1wiLFxuICAgIFwiZGFjdHJ0ci8xMjguanBnXCIsXG4gICAgXCJqZWhuZ2x5bm4vMTI4LmpwZ1wiLFxuICAgIFwiYmVyZ21hcnRpbi8xMjguanBnXCIsXG4gICAgXCJodWdvY29ybmVqby8xMjguanBnXCIsXG4gICAgXCJfa2tnYS8xMjguanBnXCIsXG4gICAgXCJkemFudGlldm0vMTI4LmpwZ1wiLFxuICAgIFwic2F3YWxhemFyLzEyOC5qcGdcIixcbiAgICBcInNvdmVzb3ZlLzEyOC5qcGdcIixcbiAgICBcImpvbnNnb3R3b29kLzEyOC5qcGdcIixcbiAgICBcImJ5cnlhbi8xMjguanBnXCIsXG4gICAgXCJ2eXRhdXRhc19hLzEyOC5qcGdcIixcbiAgICBcIm1pemhnYW4vMTI4LmpwZ1wiLFxuICAgIFwiY2ljZXJvYnIvMTI4LmpwZ1wiLFxuICAgIFwibmlsc2hlbG1lcnNzb24vMTI4LmpwZ1wiLFxuICAgIFwiZDMzcHRob3VnaHQvMTI4LmpwZ1wiLFxuICAgIFwiZGF2ZWNyYWlnZS8xMjguanBnXCIsXG4gICAgXCJuY2tqcnZzLzEyOC5qcGdcIixcbiAgICBcImFsZXhhbmRlcm1heWVzLzEyOC5qcGdcIixcbiAgICBcImpjdWJpYy8xMjguanBnXCIsXG4gICAgXCJjcmFpZ3Jjb2xlcy8xMjguanBnXCIsXG4gICAgXCJiYWdhd2FybWFuLzEyOC5qcGdcIixcbiAgICBcInJvYl90aG9tYXMxMC8xMjguanBnXCIsXG4gICAgXCJjb2ZsYS8xMjguanBnXCIsXG4gICAgXCJtYWlrZWxrLzEyOC5qcGdcIixcbiAgICBcInJ0Z2liYm9ucy8xMjguanBnXCIsXG4gICAgXCJydXNzZWxsX2JheWxpcy8xMjguanBnXCIsXG4gICAgXCJtaGVzc2xvdy8xMjguanBnXCIsXG4gICAgXCJjb2R5c2FuZmlsaXBwby8xMjguanBnXCIsXG4gICAgXCJ3ZWJ0YW55YS8xMjguanBnXCIsXG4gICAgXCJtYWRlYnlicmVudG9uLzEyOC5qcGdcIixcbiAgICBcImRjYWxvbmFjaS8xMjguanBnXCIsXG4gICAgXCJwZXJmZWN0Zmxvdy8xMjguanBnXCIsXG4gICAgXCJqanNpaWkvMTI4LmpwZ1wiLFxuICAgIFwic2FhcmFicHJlZXQvMTI4LmpwZ1wiLFxuICAgIFwia3VtYXJyYWphbjEyMTIzLzEyOC5qcGdcIixcbiAgICBcImlhbXN0ZWZmZW4vMTI4LmpwZ1wiLFxuICAgIFwidGhlbWlrZW5hZ2xlLzEyOC5qcGdcIixcbiAgICBcImNlZWtheXR3ZWV0LzEyOC5qcGdcIixcbiAgICBcImxhcnJ5Ym9sdC8xMjguanBnXCIsXG4gICAgXCJjb25zcGlyYXRvci8xMjguanBnXCIsXG4gICAgXCJkYWxsYXNicGV0ZXJzLzEyOC5qcGdcIixcbiAgICBcIm4zZG1heC8xMjguanBnXCIsXG4gICAgXCJ0ZXJwaW1vc3QvMTI4LmpwZ1wiLFxuICAgIFwia2lyaWxsei8xMjguanBnXCIsXG4gICAgXCJieXJuZWNvcmUvMTI4LmpwZ1wiLFxuICAgIFwial9kcmFrZV8vMTI4LmpwZ1wiLFxuICAgIFwiY2FsZWJqb3ljZS8xMjguanBnXCIsXG4gICAgXCJydXNzb2VkdS8xMjguanBnXCIsXG4gICAgXCJob2FuZ2xvaS8xMjguanBnXCIsXG4gICAgXCJ0b2J5c2F4b24vMTI4LmpwZ1wiLFxuICAgIFwiZ29mcmFzZGVzaWduLzEyOC5qcGdcIixcbiAgICBcImRpbWFwb3NueXkvMTI4LmpwZ1wiLFxuICAgIFwidGppc291c2EvMTI4LmpwZ1wiLFxuICAgIFwib2thbmR1bmdlbC8xMjguanBnXCIsXG4gICAgXCJiaWxseXJvc2hhbi8xMjguanBnXCIsXG4gICAgXCJvc2thbWF5YS8xMjguanBnXCIsXG4gICAgXCJtb3Rpb250aGlua3MvMTI4LmpwZ1wiLFxuICAgIFwia25pbG9iLzEyOC5qcGdcIixcbiAgICBcImFzaG9ja2ExOC8xMjguanBnXCIsXG4gICAgXCJtYXJyaW1vLzEyOC5qcGdcIixcbiAgICBcImJhcnRqby8xMjguanBnXCIsXG4gICAgXCJvbW5penlhLzEyOC5qcGdcIixcbiAgICBcImVybmVzdHNlbWVyZGEvMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmVhc19wci8xMjguanBnXCIsXG4gICAgXCJlZGdhcmNocmlzOTkvMTI4LmpwZ1wiLFxuICAgIFwidGhvbWFzZ2Vpc2VuLzEyOC5qcGdcIixcbiAgICBcImdzZWd1aW4vMTI4LmpwZ1wiLFxuICAgIFwiam9hbm5lZm91cm5pZXIvMTI4LmpwZ1wiLFxuICAgIFwiZGVtZXJzZGVzaWducy8xMjguanBnXCIsXG4gICAgXCJhZGFtbWFyc2Jhci8xMjguanBnXCIsXG4gICAgXCJuYXNpcndkLzEyOC5qcGdcIixcbiAgICBcIm5fdGFzc29uZS8xMjguanBnXCIsXG4gICAgXCJqYXZvcnN6a3kvMTI4LmpwZ1wiLFxuICAgIFwidGhlbXJkYXZlLzEyOC5qcGdcIixcbiAgICBcInllY2lkc20vMTI4LmpwZ1wiLFxuICAgIFwibmljb2xsZXJpY2gvMTI4LmpwZ1wiLFxuICAgIFwiY2FuYXB1ZC8xMjguanBnXCIsXG4gICAgXCJuaWNvbGVnbHlubi8xMjguanBnXCIsXG4gICAgXCJqdWR6aGluX21pbGVzLzEyOC5qcGdcIixcbiAgICBcImRlc2lnbmVydnptLzEyOC5qcGdcIixcbiAgICBcImtpYW5vc2hwLzEyOC5qcGdcIixcbiAgICBcImV2YW5kcml4LzEyOC5qcGdcIixcbiAgICBcImFsdGVyY2h1Y2EvMTI4LmpwZ1wiLFxuICAgIFwiZGhydWJvLzEyOC5qcGdcIixcbiAgICBcIm1hX3RpYXgvMTI4LmpwZ1wiLFxuICAgIFwic3NiYl9tZS8xMjguanBnXCIsXG4gICAgXCJkb3JwaGVybi8xMjguanBnXCIsXG4gICAgXCJtYXVyaW9sZy8xMjguanBnXCIsXG4gICAgXCJicnVub19tYXJ0LzEyOC5qcGdcIixcbiAgICBcIm1hY3RvcHVzLzEyOC5qcGdcIixcbiAgICBcInRoZV93aW5zbGV0LzEyOC5qcGdcIixcbiAgICBcImpvZW1kZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwiU2hyaWlpaWltcC8xMjguanBnXCIsXG4gICAgXCJqYWNvYmJlbm5ldHQvMTI4LmpwZ1wiLFxuICAgIFwibmZlZG9yb2ZmLzEyOC5qcGdcIixcbiAgICBcImlhbWdsaW15LzEyOC5qcGdcIixcbiAgICBcImFsbGFncmluZ2F1cy8xMjguanBnXCIsXG4gICAgXCJhaWlhaWlhaWkvMTI4LmpwZ1wiLFxuICAgIFwib2xhb2x1c29nYS8xMjguanBnXCIsXG4gICAgXCJidXJ5YWtuaWNrLzEyOC5qcGdcIixcbiAgICBcIndpbTFrLzEyOC5qcGdcIixcbiAgICBcIm5pY2tsYWNrZS8xMjguanBnXCIsXG4gICAgXCJhMWNoYXBvbmUvMTI4LmpwZ1wiLFxuICAgIFwic3RleW52aWxqb2VuLzEyOC5qcGdcIixcbiAgICBcInN0cmlrZXdhbi8xMjguanBnXCIsXG4gICAgXCJyeWFua2lya21hbi8xMjguanBnXCIsXG4gICAgXCJhbmRyZXdhYm9nYWRvLzEyOC5qcGdcIixcbiAgICBcImRvb29vbi8xMjguanBnXCIsXG4gICAgXCJqYWdhbjEyMy8xMjguanBnXCIsXG4gICAgXCJhcmlmZnNldGlhd2FuLzEyOC5qcGdcIixcbiAgICBcImVsZW5hZGlzc2kvMTI4LmpwZ1wiLFxuICAgIFwibXdhcmtlbnRpbi8xMjguanBnXCIsXG4gICAgXCJ0aGllcnJ5bWVpZXJfLzEyOC5qcGdcIixcbiAgICBcInJfZ2FyY2lhLzEyOC5qcGdcIixcbiAgICBcImRtYWNrZXJtYW4vMTI4LmpwZ1wiLFxuICAgIFwiYm9yYW50dWxhLzEyOC5qcGdcIixcbiAgICBcImtvbnVzLzEyOC5qcGdcIixcbiAgICBcInNwYWNld29vZF8vMTI4LmpwZ1wiLFxuICAgIFwicnl1Y2hpMzExLzEyOC5qcGdcIixcbiAgICBcImV2YW5zaGFqZWQvMTI4LmpwZ1wiLFxuICAgIFwidHJpc3RhbmxlZ3Jvcy8xMjguanBnXCIsXG4gICAgXCJzaG9haWIyNTMvMTI4LmpwZ1wiLFxuICAgIFwiYWlzbGlubmtlbGx5LzEyOC5qcGdcIixcbiAgICBcIm9rY29rZXIvMTI4LmpwZ1wiLFxuICAgIFwidGltcGV0cmljb2xhLzEyOC5qcGdcIixcbiAgICBcInN1bnNoaW5lZGdpcmwvMTI4LmpwZ1wiLFxuICAgIFwiY2hhZGFtaS8xMjguanBnXCIsXG4gICAgXCJhbGVjbGFyc29uaXYvMTI4LmpwZ1wiLFxuICAgIFwibm9taWRlc2lnbnMvMTI4LmpwZ1wiLFxuICAgIFwicGV0ZWJlcm5hcmRvLzEyOC5qcGdcIixcbiAgICBcInNjb3R0aWVkdWRlLzEyOC5qcGdcIixcbiAgICBcIm1pbGxpbmV0LzEyOC5qcGdcIixcbiAgICBcImltc29wZXIvMTI4LmpwZ1wiLFxuICAgIFwiaW1hbW11aHQvMTI4LmpwZ1wiLFxuICAgIFwiYmVuamFtaW5fa25pZ2h0LzEyOC5qcGdcIixcbiAgICBcIm5lcGR1ZC8xMjguanBnXCIsXG4gICAgXCJqb2tpNC8xMjguanBnXCIsXG4gICAgXCJsYW5jZWd1eWF0dC8xMjguanBnXCIsXG4gICAgXCJiYm95MTg5NS8xMjguanBnXCIsXG4gICAgXCJhbXl3ZWJiYi8xMjguanBnXCIsXG4gICAgXCJyd2V2ZS8xMjguanBnXCIsXG4gICAgXCJoYXJ1aW50ZXNldHRkZW4vMTI4LmpwZ1wiLFxuICAgIFwicmljYnVydG9uLzEyOC5qcGdcIixcbiAgICBcIm5lbHNoZC8xMjguanBnXCIsXG4gICAgXCJiYXRzaXJhaS8xMjguanBnXCIsXG4gICAgXCJwcmltb3pjaWdsZXIvMTI4LmpwZ1wiLFxuICAgIFwiamZmZ3JkbnIvMTI4LmpwZ1wiLFxuICAgIFwiOGQzay8xMjguanBnXCIsXG4gICAgXCJnZW5lc2VsZXpuZXYvMTI4LmpwZ1wiLFxuICAgIFwiYWxfbGkvMTI4LmpwZ1wiLFxuICAgIFwic291cGVycGhseS8xMjguanBnXCIsXG4gICAgXCJtc2xhcmtpbmEvMTI4LmpwZ1wiLFxuICAgIFwiMmZvY2t1cy8xMjguanBnXCIsXG4gICAgXCJjZGF2aXM1NjUvMTI4LmpwZ1wiLFxuICAgIFwieGllbC8xMjguanBnXCIsXG4gICAgXCJ0dXJrdXR1dWxpLzEyOC5qcGdcIixcbiAgICBcInV4d2FyZC8xMjguanBnXCIsXG4gICAgXCJsZWJpbm9jbGFyZC8xMjguanBnXCIsXG4gICAgXCJnYXVyYXZqYXNzYWwvMTI4LmpwZ1wiLFxuICAgIFwiZGF2aWRtZXJyaXF1ZS8xMjguanBnXCIsXG4gICAgXCJtZHNpc3RvLzEyOC5qcGdcIixcbiAgICBcImFuZHJld29mZmljZXIvMTI4LmpwZ1wiLFxuICAgIFwia29qb3VyaW4vMTI4LmpwZ1wiLFxuICAgIFwiZG5pcm1hbC8xMjguanBnXCIsXG4gICAgXCJrZXZrYS8xMjguanBnXCIsXG4gICAgXCJtcl9zaGl6bml0LzEyOC5qcGdcIixcbiAgICBcImFsdWlzaW9fYXpldmVkby8xMjguanBnXCIsXG4gICAgXCJjbG91ZHN0dWRpby8xMjguanBnXCIsXG4gICAgXCJkYW52aWVyaWNoLzEyOC5qcGdcIixcbiAgICBcImFsZXhpdmFuaWNoa2luLzEyOC5qcGdcIixcbiAgICBcImZyYW5fbWNoYW15LzEyOC5qcGdcIixcbiAgICBcInBlcnJldG1hZ2FsaS8xMjguanBnXCIsXG4gICAgXCJiZXRyYXlkYW4vMTI4LmpwZ1wiLFxuICAgIFwiY2FkaWtrYXJhLzEyOC5qcGdcIixcbiAgICBcIm1hdGJlZWRvdGNvbS8xMjguanBnXCIsXG4gICAgXCJqZXJlbXl3b3Jib3lzLzEyOC5qcGdcIixcbiAgICBcImJwYXJ0cmlkZ2UvMTI4LmpwZ1wiLFxuICAgIFwibWljaGFlbGtvcGVyLzEyOC5qcGdcIixcbiAgICBcInNpbHYzcmd2bi8xMjguanBnXCIsXG4gICAgXCJhbGV2aXppby8xMjguanBnXCIsXG4gICAgXCJqb2huc21pdGhhZ2VuY3kvMTI4LmpwZ1wiLFxuICAgIFwibGF3bGJ3b3kvMTI4LmpwZ1wiLFxuICAgIFwidml0b3IzNzYvMTI4LmpwZ1wiLFxuICAgIFwiZGVzYXN0cm96by8xMjguanBnXCIsXG4gICAgXCJ0aGltb19jei8xMjguanBnXCIsXG4gICAgXCJqYXNvbm1hcmtqb25lcy8xMjguanBnXCIsXG4gICAgXCJsaGF1c2VybWFubi8xMjguanBnXCIsXG4gICAgXCJ4cmF2aWwvMTI4LmpwZ1wiLFxuICAgIFwiZ3Vpc2NobWl0dC8xMjguanBnXCIsXG4gICAgXCJ2aWdvYnJvbngvMTI4LmpwZ1wiLFxuICAgIFwicGFuZ2hhbDAvMTI4LmpwZ1wiLFxuICAgIFwibWlndWVsa29vcmVtYW4vMTI4LmpwZ1wiLFxuICAgIFwic3VyZ2VvbmlzdC8xMjguanBnXCIsXG4gICAgXCJjaHJpc3RpYW5vbGlmZi8xMjguanBnXCIsXG4gICAgXCJjYXNwZXJncmwvMTI4LmpwZ1wiLFxuICAgIFwiaWFta2FybmEvMTI4LmpwZ1wiLFxuICAgIFwiaXBhdmVsZWsvMTI4LmpwZ1wiLFxuICAgIFwicGllcnJlX25lbC8xMjguanBnXCIsXG4gICAgXCJ5MmdyYXBoaWMvMTI4LmpwZ1wiLFxuICAgIFwic3RlcmxpbmdydWxlcy8xMjguanBnXCIsXG4gICAgXCJlbGJ1c2NhaW5mby8xMjguanBnXCIsXG4gICAgXCJiZW5ueWppZW4vMTI4LmpwZ1wiLFxuICAgIFwic3R1c2hvbmEvMTI4LmpwZ1wiLFxuICAgIFwiZXN0ZWJhbnVyaWJlLzEyOC5qcGdcIixcbiAgICBcImVtYnJjZWNyZWF0aW9ucy8xMjguanBnXCIsXG4gICAgXCJkYW5pbGxvcy8xMjguanBnXCIsXG4gICAgXCJlbGxpb3RsZXdpcy8xMjguanBnXCIsXG4gICAgXCJjaGFybGVzcnByYXR0LzEyOC5qcGdcIixcbiAgICBcInZsYWR5bi8xMjguanBnXCIsXG4gICAgXCJlbW1lZmZlc3MvMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zYmxhbmNvX2V1LzEyOC5qcGdcIixcbiAgICBcImxlb25mZWRvdG92LzEyOC5qcGdcIixcbiAgICBcInJhbmdhZmFuZ3MvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXNfZnJlZXMvMTI4LmpwZ1wiLFxuICAgIFwidGdvcm10eC8xMjguanBnXCIsXG4gICAgXCJicnlhbl90b3BoYW0vMTI4LmpwZ1wiLFxuICAgIFwianBzY3JpYmJsZXMvMTI4LmpwZ1wiLFxuICAgIFwibWlnaHR5NTUvMTI4LmpwZ1wiLFxuICAgIFwiY2FyYm9udHdlbHZlLzEyOC5qcGdcIixcbiAgICBcImlzYWFjZmlmdGgvMTI4LmpwZ1wiLFxuICAgIFwiaWFtamRlbGVvbi8xMjguanBnXCIsXG4gICAgXCJzbm93d3JpdGUvMTI4LmpwZ1wiLFxuICAgIFwiYmFycHV0cm8vMTI4LmpwZ1wiLFxuICAgIFwiZHJld2J5cmVlc2UvMTI4LmpwZ1wiLFxuICAgIFwic2FjaGFjb3JhenppLzEyOC5qcGdcIixcbiAgICBcImJpc3RyaWFuaW9zaXAvMTI4LmpwZ1wiLFxuICAgIFwibWFnb28wNC8xMjguanBnXCIsXG4gICAgXCJwZWhhbW9uZGVsbG8vMTI4LmpwZ1wiLFxuICAgIFwieWF5dGVlamF5LzEyOC5qcGdcIixcbiAgICBcImFfaGFycmlzODgvMTI4LmpwZ1wiLFxuICAgIFwiYWxndW5zYW5hYnJpYS8xMjguanBnXCIsXG4gICAgXCJ6Zm9ycmVzdGVyLzEyOC5qcGdcIixcbiAgICBcIm92YWxsLzEyOC5qcGdcIixcbiAgICBcImNhcmxvc2pnc291c2EvMTI4LmpwZ1wiLFxuICAgIFwiZ2VvYmlrYXMvMTI4LmpwZ1wiLFxuICAgIFwiYWhfbGljZS8xMjguanBnXCIsXG4gICAgXCJsb29uZXlkb29kbGUvMTI4LmpwZ1wiLFxuICAgIFwibmVyZGdyOC8xMjguanBnXCIsXG4gICAgXCJkZGdnY2NhYS8xMjguanBnXCIsXG4gICAgXCJ6YWNrZWVsZXIvMTI4LmpwZ1wiLFxuICAgIFwibm9ybWFuYm94LzEyOC5qcGdcIixcbiAgICBcImVsX2Z1ZXJ0aXNpbW8vMTI4LmpwZ1wiLFxuICAgIFwiaXNtYWlsX2JpbHRhZ2kvMTI4LmpwZ1wiLFxuICAgIFwianVhbmdvbWV6dy8xMjguanBnXCIsXG4gICAgXCJqbm1ucmQvMTI4LmpwZ1wiLFxuICAgIFwicGF0cmlja2Nvb21iZS8xMjguanBnXCIsXG4gICAgXCJyeWFuam9obnNvbl9tZS8xMjguanBnXCIsXG4gICAgXCJtYXJrb2xzY2hlc2t5LzEyOC5qcGdcIixcbiAgICBcImplZmZnb2xlbnNraS8xMjguanBnXCIsXG4gICAgXCJrdmFzbmljLzEyOC5qcGdcIixcbiAgICBcImxpbmRzZXl6aWxsYS8xMjguanBnXCIsXG4gICAgXCJnYXVjaG9tYXR0LzEyOC5qcGdcIixcbiAgICBcImFmdXNpbmF0dG8vMTI4LmpwZ1wiLFxuICAgIFwia2V2aW5vaC8xMjguanBnXCIsXG4gICAgXCJva2Fuc3VycmVlbC8xMjguanBnXCIsXG4gICAgXCJhZGFtYXdlc29tZWZhY2UvMTI4LmpwZ1wiLFxuICAgIFwiZW1pbGVib3VkZWxpbmcvMTI4LmpwZ1wiLFxuICAgIFwiYXJpc2hpXy8xMjguanBnXCIsXG4gICAgXCJqdWFubWFtYXJ0aW5lei8xMjguanBnXCIsXG4gICAgXCJ3aWtpemluZXIvMTI4LmpwZ1wiLFxuICAgIFwiZGFudGhtcy8xMjguanBnXCIsXG4gICAgXCJta2dpbmZvLzEyOC5qcGdcIixcbiAgICBcInRlcnJvcnBpeGVsLzEyOC5qcGdcIixcbiAgICBcImN1cmlvdXNvbmF1dC8xMjguanBnXCIsXG4gICAgXCJwcmhlZW1vLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxjb2xlbnNvLzEyOC5qcGdcIixcbiAgICBcImZvY3p6aS8xMjguanBnXCIsXG4gICAgXCJtYXJ0aXAwNy8xMjguanBnXCIsXG4gICAgXCJ0aGFvZGFuZzE3LzEyOC5qcGdcIixcbiAgICBcImpvaG5jYWZhenphLzEyOC5qcGdcIixcbiAgICBcInJvYmlubGF5ZmllbGQvMTI4LmpwZ1wiLFxuICAgIFwiZnJhbmNpc2NvYW1rLzEyOC5qcGdcIixcbiAgICBcImFiZHVsaHlldWsvMTI4LmpwZ1wiLFxuICAgIFwibWFya2xhbWIvMTI4LmpwZ1wiLFxuICAgIFwiZWRvYmVuZS8xMjguanBnXCIsXG4gICAgXCJhbmRyZXNlbmZyZWRyaWsvMTI4LmpwZ1wiLFxuICAgIFwibWlrYWVsam9yaHVsdC8xMjguanBnXCIsXG4gICAgXCJjaHJpc3Nsb3dpay8xMjguanBnXCIsXG4gICAgXCJ2aW5jaWFydHMvMTI4LmpwZ1wiLFxuICAgIFwibWVlbGZvcmQvMTI4LmpwZ1wiLFxuICAgIFwiZWxsaW90bm9sdGVuLzEyOC5qcGdcIixcbiAgICBcInllaHVkYWIvMTI4LmpwZ1wiLFxuICAgIFwidmlqYXlrYXJ0aGlrLzEyOC5qcGdcIixcbiAgICBcImJmcm9ocy8xMjguanBnXCIsXG4gICAgXCJqb3NlcF9tYXJ0aW5zLzEyOC5qcGdcIixcbiAgICBcImF0dGFja3MvMTI4LmpwZ1wiLFxuICAgIFwic3VyNGR5ZS8xMjguanBnXCIsXG4gICAgXCJ0dW1za2kvMTI4LmpwZ1wiLFxuICAgIFwiaW5zdGFsb3gvMTI4LmpwZ1wiLFxuICAgIFwibWFuZ29zYW5nby8xMjguanBnXCIsXG4gICAgXCJwYXVsZmFyaW5vLzEyOC5qcGdcIixcbiAgICBcImthemFreTk5OS8xMjguanBnXCIsXG4gICAgXCJraXdpdXBvdmVyLzEyOC5qcGdcIixcbiAgICBcIm52a3puZW1vLzEyOC5qcGdcIixcbiAgICBcInRvbV9ldmVuLzEyOC5qcGdcIixcbiAgICBcInJhdGJ1cy8xMjguanBnXCIsXG4gICAgXCJ3b29kc21hbjAwMS8xMjguanBnXCIsXG4gICAgXCJqb3NobWVkZXNraS8xMjguanBnXCIsXG4gICAgXCJ0aGV3aWxsYmVhcmQvMTI4LmpwZ1wiLFxuICAgIFwicHNhaWthbGkvMTI4LmpwZ1wiLFxuICAgIFwiam9lX2JsYWNrLzEyOC5qcGdcIixcbiAgICBcImFsZWluYWRzYXlzLzEyOC5qcGdcIixcbiAgICBcIm1hcmN1c2dvcmlsbGl1cy8xMjguanBnXCIsXG4gICAgXCJob3RhX3YvMTI4LmpwZ1wiLFxuICAgIFwiamdoeWxsZWJlcnQvMTI4LmpwZ1wiLFxuICAgIFwic2hpbnplLzEyOC5qcGdcIixcbiAgICBcImphbnBhbG91bmVrLzEyOC5qcGdcIixcbiAgICBcImplcmVtaWVzcG9rZW4vMTI4LmpwZ1wiLFxuICAgIFwiaGVyX3J1dS8xMjguanBnXCIsXG4gICAgXCJkYW5zb3d0ZXIvMTI4LmpwZ1wiLFxuICAgIFwiZmVsaXBlYXBpcmVzcy8xMjguanBnXCIsXG4gICAgXCJtYWd1Z3picmFuZDJkLzEyOC5qcGdcIixcbiAgICBcInBvc3RlcmpvYi8xMjguanBnXCIsXG4gICAgXCJuYXRoYWxpZV9mcy8xMjguanBnXCIsXG4gICAgXCJib2JieXR3b3Nob2VzLzEyOC5qcGdcIixcbiAgICBcImRyZWl6bGUvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW15bW91dG9uLzEyOC5qcGdcIixcbiAgICBcImVsaXNhYmV0aGtqYWVyLzEyOC5qcGdcIixcbiAgICBcIm5vdGJhZGFydC8xMjguanBnXCIsXG4gICAgXCJtb2hhbnJvaGl0aC8xMjguanBnXCIsXG4gICAgXCJqbHNvbGVyZGVsdG9yby8xMjguanBnXCIsXG4gICAgXCJpdHNrYXdzYXIvMTI4LmpwZ1wiLFxuICAgIFwic2xvd3Nwb2NrLzEyOC5qcGdcIixcbiAgICBcInp2Y2hrZWxseS8xMjguanBnXCIsXG4gICAgXCJ3aWxqYW5zbG9mc3RyYS8xMjguanBnXCIsXG4gICAgXCJjcmFpZ2hlbm5lYmVycnkvMTI4LmpwZ1wiLFxuICAgIFwidHJ1YmVhdHRvLzEyOC5qcGdcIixcbiAgICBcImp1YXVtbG9sLzEyOC5qcGdcIixcbiAgICBcInNhbXNjb3V0by8xMjguanBnXCIsXG4gICAgXCJCZW5vdWFycmFkZU0vMTI4LmpwZ1wiLFxuICAgIFwiZ2lwc3lfcmFmLzEyOC5qcGdcIixcbiAgICBcIm5ldG9uZXRfaWwvMTI4LmpwZ1wiLFxuICAgIFwiYXJrb2tvbGV5LzEyOC5qcGdcIixcbiAgICBcIml0c2FqaW1pdGhpbmcvMTI4LmpwZ1wiLFxuICAgIFwic21hbG9uc28vMTI4LmpwZ1wiLFxuICAgIFwidmljdG9yZGVhbmRhLzEyOC5qcGdcIixcbiAgICBcIl9kd2l0ZV8vMTI4LmpwZ1wiLFxuICAgIFwicmljaGFyZGdhcnJldHRzLzEyOC5qcGdcIixcbiAgICBcImdyZWdyd2lsa2luc29uLzEyOC5qcGdcIixcbiAgICBcImFuYXRvbGluaWNvbGFlLzEyOC5qcGdcIixcbiAgICBcImx1NHNoMWkvMTI4LmpwZ1wiLFxuICAgIFwic3RlZmFub3RpcmxvbmkvMTI4LmpwZ1wiLFxuICAgIFwib3N0aXJidS8xMjguanBnXCIsXG4gICAgXCJkYXJjeXN0b25nZS8xMjguanBnXCIsXG4gICAgXCJuYWl0YW5hbW9yZW5vLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxjb21pc2tleS8xMjguanBnXCIsXG4gICAgXCJhZGhpYXJkYW5hLzEyOC5qcGdcIixcbiAgICBcIm1hcmNvbWFub18vMTI4LmpwZ1wiLFxuICAgIFwiZGF2aWRjYXphbGlzLzEyOC5qcGdcIixcbiAgICBcImZhbGNvbmVyaWUvMTI4LmpwZ1wiLFxuICAgIFwiZ3JlZ2tpbGlhbi8xMjguanBnXCIsXG4gICAgXCJiY3JhZC8xMjguanBnXCIsXG4gICAgXCJib2x6YW5tYXJjby8xMjguanBnXCIsXG4gICAgXCJsb3dfcmVzLzEyOC5qcGdcIixcbiAgICBcInZsYWpraS8xMjguanBnXCIsXG4gICAgXCJwZXRhcl9wcm9nLzEyOC5qcGdcIixcbiAgICBcImpvbmtzcHIvMTI4LmpwZ1wiLFxuICAgIFwiYWttYWxmaWtyaS8xMjguanBnXCIsXG4gICAgXCJtZmFjY2hpbmVsbG8vMTI4LmpwZ1wiLFxuICAgIFwiYXRhbmlzbS8xMjguanBnXCIsXG4gICAgXCJoYXJyeV9zaXN0YWxhbS8xMjguanBnXCIsXG4gICAgXCJtdXJyYXlzd2lmdC8xMjguanBnXCIsXG4gICAgXCJib2J3YXNzZXJtYW5uLzEyOC5qcGdcIixcbiAgICBcImdhdnIxbDAvMTI4LmpwZ1wiLFxuICAgIFwibWFkc2hlbnNlbC8xMjguanBnXCIsXG4gICAgXCJtcl9zdWJ0bGUvMTI4LmpwZ1wiLFxuICAgIFwiZGV2aWxqaG9fLzEyOC5qcGdcIixcbiAgICBcInNhbGltaWFub2ZmLzEyOC5qcGdcIixcbiAgICBcImpvZXRydWVzZGVsbC8xMjguanBnXCIsXG4gICAgXCJ0d2l0dHlwb3JrLzEyOC5qcGdcIixcbiAgICBcImFpcnNreWxhci8xMjguanBnXCIsXG4gICAgXCJkbmV6a3VtYXIvMTI4LmpwZ1wiLFxuICAgIFwiZGdhamphci8xMjguanBnXCIsXG4gICAgXCJjaGVyaWZfYi8xMjguanBnXCIsXG4gICAgXCJzYWx2YWZjLzEyOC5qcGdcIixcbiAgICBcImxvdWlzX2N1cnJpZS8xMjguanBnXCIsXG4gICAgXCJkZWVlbnJpZ2h0LzEyOC5qcGdcIixcbiAgICBcImN5YmluZC8xMjguanBnXCIsXG4gICAgXCJleXJvbm4vMTI4LmpwZ1wiLFxuICAgIFwidmlja3lzaGl0cy8xMjguanBnXCIsXG4gICAgXCJzd2VldGRlbGlzYS8xMjguanBnXCIsXG4gICAgXCJjYm9sbGVyMS8xMjguanBnXCIsXG4gICAgXCJhbmRyZXNkamFzc28vMTI4LmpwZ1wiLFxuICAgIFwibWVsdmluZGlkaXQvMTI4LmpwZ1wiLFxuICAgIFwiYW5keXNvbG9tb24vMTI4LmpwZ1wiLFxuICAgIFwidGhhaXNzZWxlbmF0b3JfLzEyOC5qcGdcIixcbiAgICBcImx2b3Zlbm9rLzEyOC5qcGdcIixcbiAgICBcImdpdWxpdXNhLzEyOC5qcGdcIixcbiAgICBcImJlbHlhZXZfcnMvMTI4LmpwZ1wiLFxuICAgIFwib3ZlcmNsb2Fja2VkLzEyOC5qcGdcIixcbiAgICBcImthbWFsX2NoYW5lbWFuLzEyOC5qcGdcIixcbiAgICBcImluY3VibzgyLzEyOC5qcGdcIixcbiAgICBcImhlbGxvZmV2ZXJycnIvMTI4LmpwZ1wiLFxuICAgIFwibWhhbGlnb3dza2kvMTI4LmpwZ1wiLFxuICAgIFwic3VubGFuZGljdHdpbi8xMjguanBnXCIsXG4gICAgXCJidTc5MjEvMTI4LmpwZ1wiLFxuICAgIFwiYW5keXRsYXcvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW1lcnkvMTI4LmpwZ1wiLFxuICAgIFwiZmluY2hqa2UvMTI4LmpwZ1wiLFxuICAgIFwibWFuaWdtLzEyOC5qcGdcIixcbiAgICBcInVtdXJnZGsvMTI4LmpwZ1wiLFxuICAgIFwic2NvdHRmZWx0aGFtLzEyOC5qcGdcIixcbiAgICBcImdhbnNlcmVuZS8xMjguanBnXCIsXG4gICAgXCJtdXR1X2tyaXNoLzEyOC5qcGdcIixcbiAgICBcImpvZHl0YWdnYXJ0LzEyOC5qcGdcIixcbiAgICBcIm50ZmJsb2cvMTI4LmpwZ1wiLFxuICAgIFwidGFudmVlcnJhby8xMjguanBnXCIsXG4gICAgXCJoZmFsdWNhcy8xMjguanBnXCIsXG4gICAgXCJhbHhsZXJveWRldmFsLzEyOC5qcGdcIixcbiAgICBcImt1Y2luZ2JlbGFuZzQvMTI4LmpwZ1wiLFxuICAgIFwiYmFyZ2Fvcm9iYWxvLzEyOC5qcGdcIixcbiAgICBcImNvbGdydXYvMTI4LmpwZ1wiLFxuICAgIFwic3RhbGV3aW5lLzEyOC5qcGdcIixcbiAgICBcImt5bGVmcm9zdC8xMjguanBnXCIsXG4gICAgXCJiYXVtYW5uem9uZS8xMjguanBnXCIsXG4gICAgXCJhbmdlbGNvbGJlcmcvMTI4LmpwZ1wiLFxuICAgIFwic2FjaGluZ2F3YXMvMTI4LmpwZ1wiLFxuICAgIFwiampzaGF3MTQvMTI4LmpwZ1wiLFxuICAgIFwicmFtYW5hdGhhbl9wZHkvMTI4LmpwZ1wiLFxuICAgIFwiam9obmRlemVtYmVyLzEyOC5qcGdcIixcbiAgICBcIm5pbHNob2Vuc29uLzEyOC5qcGdcIixcbiAgICBcImJyYW5kb25tb3JyZWFsZS8xMjguanBnXCIsXG4gICAgXCJudXR6dW1pLzEyOC5qcGdcIixcbiAgICBcImJyYW5kb25mbGF0c29kYS8xMjguanBnXCIsXG4gICAgXCJzZXJnZXlhbG1vbmUvMTI4LmpwZ1wiLFxuICAgIFwia2xlZnVlLzEyOC5qcGdcIixcbiAgICBcImtpcmFuZ29wYWwvMTI4LmpwZ1wiLFxuICAgIFwiYmF1bWFubl9hbGV4LzEyOC5qcGdcIixcbiAgICBcIm1hdHRoZXdrYXlfLzEyOC5qcGdcIixcbiAgICBcImpheV93aWxidXJuLzEyOC5qcGdcIixcbiAgICBcInNoZXNnYXJlZC8xMjguanBnXCIsXG4gICAgXCJhcHJpZW5kZWF1LzEyOC5qcGdcIixcbiAgICBcImpvaG5yaW9yZGFuLzEyOC5qcGdcIixcbiAgICBcIndha2VfZ3MvMTI4LmpwZ1wiLFxuICAgIFwiYWxla3NpdGFwcHVyYS8xMjguanBnXCIsXG4gICAgXCJlbXNndWxhbS8xMjguanBnXCIsXG4gICAgXCJ4aWxhbnRyYS8xMjguanBnXCIsXG4gICAgXCJpbW9tZW51aS8xMjguanBnXCIsXG4gICAgXCJzaXJjYWxlYmdyb3ZlLzEyOC5qcGdcIixcbiAgICBcIm5ld2JydXNoZXMvMTI4LmpwZ1wiLFxuICAgIFwiaHNpbnlvMjMvMTI4LmpwZ1wiLFxuICAgIFwibTRyaW8vMTI4LmpwZ1wiLFxuICAgIFwia2F0aWVtZGFseS8xMjguanBnXCIsXG4gICAgXCJzNGYxLzEyOC5qcGdcIixcbiAgICBcImVjb21tZXJjZWlsLzEyOC5qcGdcIixcbiAgICBcIm1hcmxpbmpheWFrb2R5LzEyOC5qcGdcIixcbiAgICBcInN3b29zaHljdWViLzEyOC5qcGdcIixcbiAgICBcInNhbmdkdGgvMTI4LmpwZ1wiLFxuICAgIFwiY29kZXJkaWF6LzEyOC5qcGdcIixcbiAgICBcImJsdWVmeF8vMTI4LmpwZ1wiLFxuICAgIFwidml2ZWtwcnZyLzEyOC5qcGdcIixcbiAgICBcInNhc2hhX3NoZXN0YWtvdi8xMjguanBnXCIsXG4gICAgXCJldWdlbmVld2ViLzEyOC5qcGdcIixcbiAgICBcImRnY2xlZ2cvMTI4LmpwZ1wiLFxuICAgIFwibjFnaHRfY29kZXIvMTI4LmpwZ1wiLFxuICAgIFwiZGl4Y2hlbi8xMjguanBnXCIsXG4gICAgXCJibGFrZWhhd2tzd29ydGgvMTI4LmpwZ1wiLFxuICAgIFwidHJ1ZWJsb29kXzMzLzEyOC5qcGdcIixcbiAgICBcImhhaV9uaW5oX25ndXllbi8xMjguanBnXCIsXG4gICAgXCJtYXJjbGdvbnphbGVzLzEyOC5qcGdcIixcbiAgICBcInllc21lY2svMTI4LmpwZ1wiLFxuICAgIFwic3RlcGhjb3VlLzEyOC5qcGdcIixcbiAgICBcImRvcm9ubWFsa2kvMTI4LmpwZ1wiLFxuICAgIFwicnVlaGxkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwiYW5hc25ha2F3YS8xMjguanBnXCIsXG4gICAgXCJraWphbm1haGFyamFuLzEyOC5qcGdcIixcbiAgICBcIndlYXJlc2F2YXMvMTI4LmpwZ1wiLFxuICAgIFwic3RlZnZkaGFtLzEyOC5qcGdcIixcbiAgICBcInR3ZWV0dWJoYWkvMTI4LmpwZ1wiLFxuICAgIFwiYWxlY2FycGVudGllci8xMjguanBnXCIsXG4gICAgXCJmaXRlcmlrLzEyOC5qcGdcIixcbiAgICBcImFudG9ueXJ5bmR5YS8xMjguanBnXCIsXG4gICAgXCJkMDBtYXovMTI4LmpwZ1wiLFxuICAgIFwidGhlb25seXpla2UvMTI4LmpwZ1wiLFxuICAgIFwibWlzc2FhYW15LzEyOC5qcGdcIixcbiAgICBcImNhcmxvc20vMTI4LmpwZ1wiLFxuICAgIFwibWFuZWtlbnRoZS8xMjguanBnXCIsXG4gICAgXCJyZWV0YWpheWVuZHJhLzEyOC5qcGdcIixcbiAgICBcImplcmVteXNoaW1rby8xMjguanBnXCIsXG4gICAgXCJqdXN0aW5yZ3JhaGFtLzEyOC5qcGdcIixcbiAgICBcInN0ZWZhbm96b2Zmb2xpLzEyOC5qcGdcIixcbiAgICBcIm92ZXJyYS8xMjguanBnXCIsXG4gICAgXCJtcmViYXkwMDcvMTI4LmpwZ1wiLFxuICAgIFwic2h2ZWxvOTYvMTI4LmpwZ1wiLFxuICAgIFwicHlyb25pdGUvMTI4LmpwZ1wiLFxuICAgIFwidGhlZGpwZXRlcnNlbi8xMjguanBnXCIsXG4gICAgXCJydHl1a21hZXYvMTI4LmpwZ1wiLFxuICAgIFwiX3dpbGxpYW1ndWVycmEvMTI4LmpwZ1wiLFxuICAgIFwiYWxiZXJ0YXVndXN0aW4vMTI4LmpwZ1wiLFxuICAgIFwidmlrYXNocGF0aGFrMTgvMTI4LmpwZ1wiLFxuICAgIFwia2V2aW5qb2huZGF5eS8xMjguanBnXCIsXG4gICAgXCJ2al9kZW1pZW4vMTI4LmpwZ1wiLFxuICAgIFwiY29saXJwaXhvaWwvMTI4LmpwZ1wiLFxuICAgIFwiZ29kZGFyZGxld2lzLzEyOC5qcGdcIixcbiAgICBcImxhYXNsaS8xMjguanBnXCIsXG4gICAgXCJqcWl1c3MvMTI4LmpwZ1wiLFxuICAgIFwiaGV5Y2FtdGF5bG9yLzEyOC5qcGdcIixcbiAgICBcIm5hc3R5YV9tYW5lLzEyOC5qcGdcIixcbiAgICBcIm1hc3Rlcm1pbmRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJjY2lub2phc3NvMS8xMjguanBnXCIsXG4gICAgXCJueWFuY2Vjb20vMTI4LmpwZ1wiLFxuICAgIFwic2FuZHl3b29kcnVmZi8xMjguanBnXCIsXG4gICAgXCJiaWdoYW5kZGVzaWduLzEyOC5qcGdcIixcbiAgICBcInNidHJhbnNwYXJlbnQvMTI4LmpwZ1wiLFxuICAgIFwiYXZpZGRheWVudG9uYmF5LzEyOC5qcGdcIixcbiAgICBcInJpY2h3aWxkLzEyOC5qcGdcIixcbiAgICBcImtheXNpeF9kaXp6eS8xMjguanBnXCIsXG4gICAgXCJ0dXI4bGUvMTI4LmpwZ1wiLFxuICAgIFwic2V5ZWRob3NzZWluMS8xMjguanBnXCIsXG4gICAgXCJwcml2ZXR3YWduZXIvMTI4LmpwZ1wiLFxuICAgIFwiZW1tYW5kZW5uLzEyOC5qcGdcIixcbiAgICBcImRldl9lc3NlbnRpYWxzLzEyOC5qcGdcIixcbiAgICBcImptZnNvY2lhbC8xMjguanBnXCIsXG4gICAgXCJfeWFyZGVub29uLzEyOC5qcGdcIixcbiAgICBcIm1hdGVhb2R2aXRlemEvMTI4LmpwZ1wiLFxuICAgIFwid2VhdmVybWVkaWEvMTI4LmpwZ1wiLFxuICAgIFwibXVmYWRkYWxfbXcvMTI4LmpwZ1wiLFxuICAgIFwiaGFmZWVza2hhbi8xMjguanBnXCIsXG4gICAgXCJhc2hlcm5hdGFsaS8xMjguanBnXCIsXG4gICAgXCJzdWxhcW8vMTI4LmpwZ1wiLFxuICAgIFwiZWRkaWVjaGVuLzEyOC5qcGdcIixcbiAgICBcImpvc2VjYXJsb3Nwc2gvMTI4LmpwZ1wiLFxuICAgIFwidm1fZi8xMjguanBnXCIsXG4gICAgXCJlbnJpY29jaWNjb25pLzEyOC5qcGdcIixcbiAgICBcImRhbm1hcnRpbjcwLzEyOC5qcGdcIixcbiAgICBcImdtb3VyaWVyLzEyOC5qcGdcIixcbiAgICBcImRvbmphaW4vMTI4LmpwZ1wiLFxuICAgIFwibXJ4bG9rYS8xMjguanBnXCIsXG4gICAgXCJfcGVkcm9waW5oby8xMjguanBnXCIsXG4gICAgXCJlaXRhcmFmYS8xMjguanBnXCIsXG4gICAgXCJvc2Nhcm93dXN1LzEyOC5qcGdcIixcbiAgICBcInJhbHBoX2xhbS8xMjguanBnXCIsXG4gICAgXCJwYW5jaGFqYW55YWcvMTI4LmpwZ1wiLFxuICAgIFwid29vZHlkb3RteC8xMjguanBnXCIsXG4gICAgXCJqZXJyeWJhaTE5MDcvMTI4LmpwZ1wiLFxuICAgIFwibWFyc2hhbGxjaGVuXy8xMjguanBnXCIsXG4gICAgXCJ4YW1vcmVwLzEyOC5qcGdcIixcbiAgICBcImFpb19fXy8xMjguanBnXCIsXG4gICAgXCJjaGFhYmFuZV93YWlsLzEyOC5qcGdcIixcbiAgICBcInR4Y3gvMTI4LmpwZ1wiLFxuICAgIFwiYWthc2hzaGFybWEzOS8xMjguanBnXCIsXG4gICAgXCJmYWxsaW5nX3NvdWwvMTI4LmpwZ1wiLFxuICAgIFwic2FpbnJhamEvMTI4LmpwZ1wiLFxuICAgIFwibXVndWthbWlsLzEyOC5qcGdcIixcbiAgICBcImpvaGFubmVzbmV1LzEyOC5qcGdcIixcbiAgICBcIm1hcmt3aWVuYW5kcy8xMjguanBnXCIsXG4gICAgXCJrYXJ0aGlwYW5yYWovMTI4LmpwZ1wiLFxuICAgIFwiYmFsYWtheXVyaXkvMTI4LmpwZ1wiLFxuICAgIFwiYWxhbl96aGFuZ18vMTI4LmpwZ1wiLFxuICAgIFwibGF5ZXJzc3NzLzEyOC5qcGdcIixcbiAgICBcImthc3Blcm5vcmRrdmlzdC8xMjguanBnXCIsXG4gICAgXCJtaXJmYW5xdXJlc2hpLzEyOC5qcGdcIixcbiAgICBcImhhbm5hX3NtaS8xMjguanBnXCIsXG4gICAgXCJWTWlsZXNjdS8xMjguanBnXCIsXG4gICAgXCJhZW9uNTYvMTI4LmpwZ1wiLFxuICAgIFwibV9rYWxpYnJ5LzEyOC5qcGdcIixcbiAgICBcInNyZWVqaXRoZXhwLzEyOC5qcGdcIixcbiAgICBcImRpY2VzYWxlcy8xMjguanBnXCIsXG4gICAgXCJkaG9vdF9hbWl0LzEyOC5qcGdcIixcbiAgICBcInNtZW5vdi8xMjguanBnXCIsXG4gICAgXCJsb25lc29tZWxlbW9uLzEyOC5qcGdcIixcbiAgICBcInZsYWRpbWlyZGV2aWMvMTI4LmpwZ1wiLFxuICAgIFwiam9lbGNpcHJpYW5vLzEyOC5qcGdcIixcbiAgICBcImhhbGlnYWxpaGFydW4vMTI4LmpwZ1wiLFxuICAgIFwiYnVsZXN3YXBuaWwvMTI4LmpwZ1wiLFxuICAgIFwic2VyZWZrYS8xMjguanBnXCIsXG4gICAgXCJpZmFyYWZvbm93LzEyOC5qcGdcIixcbiAgICBcInZpa2FzdmluZm90ZWNoLzEyOC5qcGdcIixcbiAgICBcInVycnV0aW1lb2xpLzEyOC5qcGdcIixcbiAgICBcImFyZWFuZGFjb20vMTI4LmpwZ1wiXG5dO1xuXG5lbi5pbnRlcm5ldC5hdmF0YXJfdXJpID0gW107XG5cbmZvciAodmFyIGkgPSAwOyBpIDwgYXZhdGFyVXJpLmxlbmd0aDsgaSsrKSB7XG4gIGVuLmludGVybmV0LmF2YXRhcl91cmkucHVzaChcImh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS91aWZhY2VzL2ZhY2VzL3R3aXR0ZXIvXCIgKyBhdmF0YXJVcmlbaV0pO1xufTtcblxuZW4ubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwiYWxpYXNcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInBlcmZlcmVuZGlzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcImFjY3VzYW50aXVtXCIsXG4gICAgXCJkb2xvcmVtcXVlXCIsXG4gICAgXCJhcGVyaWFtXCIsXG4gICAgXCJlYXF1ZVwiLFxuICAgIFwiaXBzYVwiLFxuICAgIFwicXVhZVwiLFxuICAgIFwiYWJcIixcbiAgICBcImlsbG9cIixcbiAgICBcImludmVudG9yZVwiLFxuICAgIFwidmVyaXRhdGlzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc2lcIixcbiAgICBcImFyY2hpdGVjdG9cIixcbiAgICBcImJlYXRhZVwiLFxuICAgIFwidml0YWVcIixcbiAgICBcImRpY3RhXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJleHBsaWNhYm9cIixcbiAgICBcImFzcGVybmF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwib2RpdFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJmdWdpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJjb25zZXF1dW50dXJcIixcbiAgICBcIm1hZ25pXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJlb3NcIixcbiAgICBcInF1aVwiLFxuICAgIFwicmF0aW9uZVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwic2VxdWlcIixcbiAgICBcIm5lc2NpdW50XCIsXG4gICAgXCJuZXF1ZVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiaXBzdW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJzaXRcIixcbiAgICBcImFtZXRcIixcbiAgICBcImNvbnNlY3RldHVyXCIsXG4gICAgXCJhZGlwaXNjaVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJudW1xdWFtXCIsXG4gICAgXCJlaXVzXCIsXG4gICAgXCJtb2RpXCIsXG4gICAgXCJ0ZW1wb3JhXCIsXG4gICAgXCJpbmNpZHVudFwiLFxuICAgIFwidXRcIixcbiAgICBcImxhYm9yZVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9yZVwiLFxuICAgIFwibWFnbmFtXCIsXG4gICAgXCJhbGlxdWFtXCIsXG4gICAgXCJxdWFlcmF0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiYWRcIixcbiAgICBcIm1pbmltYVwiLFxuICAgIFwidmVuaWFtXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJub3N0cnVtXCIsXG4gICAgXCJleGVyY2l0YXRpb25lbVwiLFxuICAgIFwidWxsYW1cIixcbiAgICBcImNvcnBvcmlzXCIsXG4gICAgXCJuZW1vXCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJpcHNhbVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwic3VzY2lwaXRcIixcbiAgICBcImxhYm9yaW9zYW1cIixcbiAgICBcIm5pc2lcIixcbiAgICBcInV0XCIsXG4gICAgXCJhbGlxdWlkXCIsXG4gICAgXCJleFwiLFxuICAgIFwiZWFcIixcbiAgICBcImNvbW1vZGlcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJldW1cIixcbiAgICBcIml1cmVcIixcbiAgICBcInJlcHJlaGVuZGVyaXRcIixcbiAgICBcInF1aVwiLFxuICAgIFwiaW5cIixcbiAgICBcImVhXCIsXG4gICAgXCJ2b2x1cHRhdGVcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJlc3NlXCIsXG4gICAgXCJxdWFtXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaXVzdG9cIixcbiAgICBcIm9kaW9cIixcbiAgICBcImRpZ25pc3NpbW9zXCIsXG4gICAgXCJkdWNpbXVzXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImJsYW5kaXRpaXNcIixcbiAgICBcInByYWVzZW50aXVtXCIsXG4gICAgXCJsYXVkYW50aXVtXCIsXG4gICAgXCJ0b3RhbVwiLFxuICAgIFwicmVtXCIsXG4gICAgXCJ2b2x1cHRhdHVtXCIsXG4gICAgXCJkZWxlbml0aVwiLFxuICAgIFwiYXRxdWVcIixcbiAgICBcImNvcnJ1cHRpXCIsXG4gICAgXCJxdW9zXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc1wiLFxuICAgIFwibW9sZXN0aWFzXCIsXG4gICAgXCJleGNlcHR1cmlcIixcbiAgICBcInNpbnRcIixcbiAgICBcIm9jY2FlY2F0aVwiLFxuICAgIFwiY3VwaWRpdGF0ZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJwcm92aWRlbnRcIixcbiAgICBcInNlZFwiLFxuICAgIFwidXRcIixcbiAgICBcInBlcnNwaWNpYXRpc1wiLFxuICAgIFwidW5kZVwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImlzdGVcIixcbiAgICBcIm5hdHVzXCIsXG4gICAgXCJlcnJvclwiLFxuICAgIFwic2ltaWxpcXVlXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJpblwiLFxuICAgIFwiY3VscGFcIixcbiAgICBcInF1aVwiLFxuICAgIFwib2ZmaWNpYVwiLFxuICAgIFwiZGVzZXJ1bnRcIixcbiAgICBcIm1vbGxpdGlhXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiaWRcIixcbiAgICBcImVzdFwiLFxuICAgIFwibGFib3J1bVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9ydW1cIixcbiAgICBcImZ1Z2FcIixcbiAgICBcImV0XCIsXG4gICAgXCJoYXJ1bVwiLFxuICAgIFwicXVpZGVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiZmFjaWxpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJldFwiLFxuICAgIFwiZXhwZWRpdGFcIixcbiAgICBcImRpc3RpbmN0aW9cIixcbiAgICBcIm5hbVwiLFxuICAgIFwibGliZXJvXCIsXG4gICAgXCJ0ZW1wb3JlXCIsXG4gICAgXCJjdW1cIixcbiAgICBcInNvbHV0YVwiLFxuICAgIFwibm9iaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZWxpZ2VuZGlcIixcbiAgICBcIm9wdGlvXCIsXG4gICAgXCJjdW1xdWVcIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJpbXBlZGl0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInBvcnJvXCIsXG4gICAgXCJxdWlzcXVhbVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm1pbnVzXCIsXG4gICAgXCJpZFwiLFxuICAgIFwicXVvZFwiLFxuICAgIFwibWF4aW1lXCIsXG4gICAgXCJwbGFjZWF0XCIsXG4gICAgXCJmYWNlcmVcIixcbiAgICBcInBvc3NpbXVzXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcImFzc3VtZW5kYVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInJlcGVsbGVuZHVzXCIsXG4gICAgXCJ0ZW1wb3JpYnVzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwicXVpYnVzZGFtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJpbGx1bVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJldW1cIixcbiAgICBcImZ1Z2lhdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwibnVsbGFcIixcbiAgICBcInBhcmlhdHVyXCIsXG4gICAgXCJhdFwiLFxuICAgIFwidmVyb1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYWNjdXNhbXVzXCIsXG4gICAgXCJvZmZpY2lpc1wiLFxuICAgIFwiZGViaXRpc1wiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwibmVjZXNzaXRhdGlidXNcIixcbiAgICBcInNhZXBlXCIsXG4gICAgXCJldmVuaWV0XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZXRcIixcbiAgICBcInZvbHVwdGF0ZXNcIixcbiAgICBcInJlcHVkaWFuZGFlXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJldFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJub25cIixcbiAgICBcInJlY3VzYW5kYWVcIixcbiAgICBcIml0YXF1ZVwiLFxuICAgIFwiZWFydW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJoaWNcIixcbiAgICBcInRlbmV0dXJcIixcbiAgICBcImFcIixcbiAgICBcInNhcGllbnRlXCIsXG4gICAgXCJkZWxlY3R1c1wiLFxuICAgIFwidXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVpY2llbmRpc1wiLFxuICAgIFwidm9sdXB0YXRpYnVzXCIsXG4gICAgXCJtYWlvcmVzXCIsXG4gICAgXCJkb2xvcmlidXNcIixcbiAgICBcImFzcGVyaW9yZXNcIixcbiAgICBcInJlcGVsbGF0XCJcbiAgXSxcbiAgXCJzdXBwbGVtZW50YWxcIjogW1xuICAgIFwiYWJiYXNcIixcbiAgICBcImFiZHVjb1wiLFxuICAgIFwiYWJlb1wiLFxuICAgIFwiYWJzY2lkb1wiLFxuICAgIFwiYWJzY29uZGl0dXNcIixcbiAgICBcImFic2Vuc1wiLFxuICAgIFwiYWJzb3JiZW9cIixcbiAgICBcImFic3F1ZVwiLFxuICAgIFwiYWJzdGVyZ29cIixcbiAgICBcImFic3VtXCIsXG4gICAgXCJhYnVuZGFuc1wiLFxuICAgIFwiYWJ1dG9yXCIsXG4gICAgXCJhY2NlZG9cIixcbiAgICBcImFjY2VuZG9cIixcbiAgICBcImFjY2VwdHVzXCIsXG4gICAgXCJhY2NpcGlvXCIsXG4gICAgXCJhY2NvbW1vZG9cIixcbiAgICBcImFjY3VzYXRvclwiLFxuICAgIFwiYWNlclwiLFxuICAgIFwiYWNlcmJpdGFzXCIsXG4gICAgXCJhY2VydnVzXCIsXG4gICAgXCJhY2lkdXNcIixcbiAgICBcImFjaWVzXCIsXG4gICAgXCJhY3F1aXJvXCIsXG4gICAgXCJhY3NpXCIsXG4gICAgXCJhZGFtb1wiLFxuICAgIFwiYWRhdWdlb1wiLFxuICAgIFwiYWRkb1wiLFxuICAgIFwiYWRkdWNvXCIsXG4gICAgXCJhZGVtcHRpb1wiLFxuICAgIFwiYWRlb1wiLFxuICAgIFwiYWRlcHRpb1wiLFxuICAgIFwiYWRmZWN0dXNcIixcbiAgICBcImFkZmVyb1wiLFxuICAgIFwiYWRmaWNpb1wiLFxuICAgIFwiYWRmbGljdG9cIixcbiAgICBcImFkaGFlcm9cIixcbiAgICBcImFkaHVjXCIsXG4gICAgXCJhZGljaW9cIixcbiAgICBcImFkaW1wbGVvXCIsXG4gICAgXCJhZGludmVudGl0aWFzXCIsXG4gICAgXCJhZGlwaXNjb3JcIixcbiAgICBcImFkaXV2b1wiLFxuICAgIFwiYWRtaW5pc3RyYXRpb1wiLFxuICAgIFwiYWRtaXJhdGlvXCIsXG4gICAgXCJhZG1pdHRvXCIsXG4gICAgXCJhZG1vbmVvXCIsXG4gICAgXCJhZG1vdmVvXCIsXG4gICAgXCJhZG51b1wiLFxuICAgIFwiYWRvcHRvXCIsXG4gICAgXCJhZHNpZHVlXCIsXG4gICAgXCJhZHN0cmluZ29cIixcbiAgICBcImFkc3Vlc2NvXCIsXG4gICAgXCJhZHN1bVwiLFxuICAgIFwiYWR1bGF0aW9cIixcbiAgICBcImFkdWxlc2NlbnNcIixcbiAgICBcImFkdWx0dXNcIixcbiAgICBcImFkdXJvXCIsXG4gICAgXCJhZHZlbmlvXCIsXG4gICAgXCJhZHZlcnN1c1wiLFxuICAgIFwiYWR2b2NvXCIsXG4gICAgXCJhZWRpZmljaXVtXCIsXG4gICAgXCJhZWdlclwiLFxuICAgIFwiYWVncmVcIixcbiAgICBcImFlZ3JvdGF0aW9cIixcbiAgICBcImFlZ3J1c1wiLFxuICAgIFwiYWVuZXVzXCIsXG4gICAgXCJhZXF1aXRhc1wiLFxuICAgIFwiYWVxdXVzXCIsXG4gICAgXCJhZXJcIixcbiAgICBcImFlc3Rhc1wiLFxuICAgIFwiYWVzdGl2dXNcIixcbiAgICBcImFlc3R1c1wiLFxuICAgIFwiYWV0YXNcIixcbiAgICBcImFldGVybnVzXCIsXG4gICAgXCJhZ2VyXCIsXG4gICAgXCJhZ2dlcm9cIixcbiAgICBcImFnZ3JlZGlvclwiLFxuICAgIFwiYWduaXRpb1wiLFxuICAgIFwiYWdub3Njb1wiLFxuICAgIFwiYWdvXCIsXG4gICAgXCJhaXRcIixcbiAgICBcImFpdW50XCIsXG4gICAgXCJhbGllbnVzXCIsXG4gICAgXCJhbGlpXCIsXG4gICAgXCJhbGlvcXVpXCIsXG4gICAgXCJhbGlxdWFcIixcbiAgICBcImFsaXVzXCIsXG4gICAgXCJhbGxhdHVzXCIsXG4gICAgXCJhbG9cIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhbHR1c1wiLFxuICAgIFwiYWx2ZXVzXCIsXG4gICAgXCJhbWFyaXR1ZG9cIixcbiAgICBcImFtYml0dXNcIixcbiAgICBcImFtYnVsb1wiLFxuICAgIFwiYW1pY2l0aWFcIixcbiAgICBcImFtaWN1bHVtXCIsXG4gICAgXCJhbWlzc2lvXCIsXG4gICAgXCJhbWl0YVwiLFxuICAgIFwiYW1pdHRvXCIsXG4gICAgXCJhbW9cIixcbiAgICBcImFtb3JcIixcbiAgICBcImFtb3Zlb1wiLFxuICAgIFwiYW1wbGV4dXNcIixcbiAgICBcImFtcGxpdHVkb1wiLFxuICAgIFwiYW1wbHVzXCIsXG4gICAgXCJhbmNpbGxhXCIsXG4gICAgXCJhbmdlbHVzXCIsXG4gICAgXCJhbmd1bHVzXCIsXG4gICAgXCJhbmd1c3R1c1wiLFxuICAgIFwiYW5pbWFkdmVydG9cIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJhbmltdXNcIixcbiAgICBcImFubnVzXCIsXG4gICAgXCJhbnNlclwiLFxuICAgIFwiYW50ZVwiLFxuICAgIFwiYW50ZWFcIixcbiAgICBcImFudGVwb25vXCIsXG4gICAgXCJhbnRpcXV1c1wiLFxuICAgIFwiYXBlcmlvXCIsXG4gICAgXCJhcGVydGVcIixcbiAgICBcImFwb3N0b2x1c1wiLFxuICAgIFwiYXBwYXJhdHVzXCIsXG4gICAgXCJhcHBlbGxvXCIsXG4gICAgXCJhcHBvbm9cIixcbiAgICBcImFwcG9zaXR1c1wiLFxuICAgIFwiYXBwcm9ib1wiLFxuICAgIFwiYXB0b1wiLFxuICAgIFwiYXB0dXNcIixcbiAgICBcImFwdWRcIixcbiAgICBcImFxdWFcIixcbiAgICBcImFyYVwiLFxuICAgIFwiYXJhbmVhXCIsXG4gICAgXCJhcmJpdHJvXCIsXG4gICAgXCJhcmJvclwiLFxuICAgIFwiYXJidXN0dW1cIixcbiAgICBcImFyY2FcIixcbiAgICBcImFyY2VvXCIsXG4gICAgXCJhcmNlc3NvXCIsXG4gICAgXCJhcmN1c1wiLFxuICAgIFwiYXJnZW50dW1cIixcbiAgICBcImFyZ3VtZW50dW1cIixcbiAgICBcImFyZ3VvXCIsXG4gICAgXCJhcm1hXCIsXG4gICAgXCJhcm1hcml1bVwiLFxuICAgIFwiYXJtb1wiLFxuICAgIFwiYXJvXCIsXG4gICAgXCJhcnNcIixcbiAgICBcImFydGljdWx1c1wiLFxuICAgIFwiYXJ0aWZpY2lvc2VcIixcbiAgICBcImFydG9cIixcbiAgICBcImFyeFwiLFxuICAgIFwiYXNjaXNjb1wiLFxuICAgIFwiYXNjaXRcIixcbiAgICBcImFzcGVyXCIsXG4gICAgXCJhc3BpY2lvXCIsXG4gICAgXCJhc3BvcnRvXCIsXG4gICAgXCJhc3NlbnRhdG9yXCIsXG4gICAgXCJhc3RydW1cIixcbiAgICBcImF0YXZ1c1wiLFxuICAgIFwiYXRlclwiLFxuICAgIFwiYXRxdWlcIixcbiAgICBcImF0cm9jaXRhc1wiLFxuICAgIFwiYXRyb3hcIixcbiAgICBcImF0dGVyb1wiLFxuICAgIFwiYXR0b2xsb1wiLFxuICAgIFwiYXR0b25iaXR1c1wiLFxuICAgIFwiYXVjdG9yXCIsXG4gICAgXCJhdWN0dXNcIixcbiAgICBcImF1ZGFjaWFcIixcbiAgICBcImF1ZGF4XCIsXG4gICAgXCJhdWRlbnRpYVwiLFxuICAgIFwiYXVkZW9cIixcbiAgICBcImF1ZGlvXCIsXG4gICAgXCJhdWRpdG9yXCIsXG4gICAgXCJhdWZlcm9cIixcbiAgICBcImF1cmV1c1wiLFxuICAgIFwiYXVyaXNcIixcbiAgICBcImF1cnVtXCIsXG4gICAgXCJhdXRcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJhdXR1c1wiLFxuICAgIFwiYXV4aWxpdW1cIixcbiAgICBcImF2YXJpdGlhXCIsXG4gICAgXCJhdmFydXNcIixcbiAgICBcImF2ZWhvXCIsXG4gICAgXCJhdmVydG9cIixcbiAgICBcImF2b2NvXCIsXG4gICAgXCJiYWl1bHVzXCIsXG4gICAgXCJiYWxidXNcIixcbiAgICBcImJhcmJhXCIsXG4gICAgXCJiYXJkdXNcIixcbiAgICBcImJhc2l1bVwiLFxuICAgIFwiYmVhdHVzXCIsXG4gICAgXCJiZWxsaWN1c1wiLFxuICAgIFwiYmVsbHVtXCIsXG4gICAgXCJiZW5lXCIsXG4gICAgXCJiZW5lZmljaXVtXCIsXG4gICAgXCJiZW5ldm9sZW50aWFcIixcbiAgICBcImJlbmlnbmVcIixcbiAgICBcImJlc3RpYVwiLFxuICAgIFwiYmlib1wiLFxuICAgIFwiYmlzXCIsXG4gICAgXCJibGFuZGlvclwiLFxuICAgIFwiYm9udXNcIixcbiAgICBcImJvc1wiLFxuICAgIFwiYnJldmlzXCIsXG4gICAgXCJjYWRvXCIsXG4gICAgXCJjYWVjdXNcIixcbiAgICBcImNhZWxlc3Rpc1wiLFxuICAgIFwiY2FlbHVtXCIsXG4gICAgXCJjYWxhbWl0YXNcIixcbiAgICBcImNhbGNhclwiLFxuICAgIFwiY2FsY29cIixcbiAgICBcImNhbGN1bHVzXCIsXG4gICAgXCJjYWxsaWRlXCIsXG4gICAgXCJjYW1wYW5hXCIsXG4gICAgXCJjYW5kaWR1c1wiLFxuICAgIFwiY2FuaXNcIixcbiAgICBcImNhbm9uaWN1c1wiLFxuICAgIFwiY2FudG9cIixcbiAgICBcImNhcGlsbHVzXCIsXG4gICAgXCJjYXBpb1wiLFxuICAgIFwiY2FwaXR1bHVzXCIsXG4gICAgXCJjYXB0b1wiLFxuICAgIFwiY2FwdXRcIixcbiAgICBcImNhcmJvXCIsXG4gICAgXCJjYXJjZXJcIixcbiAgICBcImNhcmVvXCIsXG4gICAgXCJjYXJpZXNcIixcbiAgICBcImNhcmlvc3VzXCIsXG4gICAgXCJjYXJpdGFzXCIsXG4gICAgXCJjYXJtZW5cIixcbiAgICBcImNhcnBvXCIsXG4gICAgXCJjYXJ1c1wiLFxuICAgIFwiY2Fzc29cIixcbiAgICBcImNhc3RlXCIsXG4gICAgXCJjYXN1c1wiLFxuICAgIFwiY2F0ZW5hXCIsXG4gICAgXCJjYXRlcnZhXCIsXG4gICAgXCJjYXR0dXNcIixcbiAgICBcImNhdWRhXCIsXG4gICAgXCJjYXVzYVwiLFxuICAgIFwiY2F1dGVcIixcbiAgICBcImNhdmVvXCIsXG4gICAgXCJjYXZ1c1wiLFxuICAgIFwiY2Vkb1wiLFxuICAgIFwiY2VsZWJyZXJcIixcbiAgICBcImNlbGVyXCIsXG4gICAgXCJjZWxvXCIsXG4gICAgXCJjZW5hXCIsXG4gICAgXCJjZW5hY3VsdW1cIixcbiAgICBcImNlbm9cIixcbiAgICBcImNlbnN1cmFcIixcbiAgICBcImNlbnR1bVwiLFxuICAgIFwiY2Vybm9cIixcbiAgICBcImNlcm51dXNcIixcbiAgICBcImNlcnRlXCIsXG4gICAgXCJjZXJ0b1wiLFxuICAgIFwiY2VydHVzXCIsXG4gICAgXCJjZXJ2dXNcIixcbiAgICBcImNldGVyYVwiLFxuICAgIFwiY2hhcmlzbWFcIixcbiAgICBcImNoaXJvZ3JhcGh1bVwiLFxuICAgIFwiY2lib1wiLFxuICAgIFwiY2lidXNcIixcbiAgICBcImNpY3V0YVwiLFxuICAgIFwiY2lsaWNpdW1cIixcbiAgICBcImNpbWVudGFyaXVzXCIsXG4gICAgXCJjaW1pbmF0aW9cIixcbiAgICBcImNpbmlzXCIsXG4gICAgXCJjaXJjdW12ZW5pb1wiLFxuICAgIFwiY2l0b1wiLFxuICAgIFwiY2l2aXNcIixcbiAgICBcImNpdml0YXNcIixcbiAgICBcImNsYW1cIixcbiAgICBcImNsYW1vXCIsXG4gICAgXCJjbGFyb1wiLFxuICAgIFwiY2xhcnVzXCIsXG4gICAgXCJjbGF1ZGVvXCIsXG4gICAgXCJjbGF1c3RydW1cIixcbiAgICBcImNsZW1lbnRpYVwiLFxuICAgIFwiY2xpYmFudXNcIixcbiAgICBcImNvYWR1bmF0aW9cIixcbiAgICBcImNvYWVncmVzY29cIixcbiAgICBcImNvZXBpXCIsXG4gICAgXCJjb2VyY2VvXCIsXG4gICAgXCJjb2dpdG9cIixcbiAgICBcImNvZ25hdHVzXCIsXG4gICAgXCJjb2dub21lblwiLFxuICAgIFwiY29nb1wiLFxuICAgIFwiY29oYWVyb1wiLFxuICAgIFwiY29oaWJlb1wiLFxuICAgIFwiY29ob3JzXCIsXG4gICAgXCJjb2xsaWdvXCIsXG4gICAgXCJjb2xsb2NvXCIsXG4gICAgXCJjb2xsdW1cIixcbiAgICBcImNvbG9cIixcbiAgICBcImNvbG9yXCIsXG4gICAgXCJjb21hXCIsXG4gICAgXCJjb21iaWJvXCIsXG4gICAgXCJjb21idXJvXCIsXG4gICAgXCJjb21lZG9cIixcbiAgICBcImNvbWVzXCIsXG4gICAgXCJjb21ldGVzXCIsXG4gICAgXCJjb21pc1wiLFxuICAgIFwiY29taXRhdHVzXCIsXG4gICAgXCJjb21tZW1vcm9cIixcbiAgICBcImNvbW1pbm9yXCIsXG4gICAgXCJjb21tb2RvXCIsXG4gICAgXCJjb21tdW5pc1wiLFxuICAgIFwiY29tcGFyb1wiLFxuICAgIFwiY29tcGVsbG9cIixcbiAgICBcImNvbXBsZWN0dXNcIixcbiAgICBcImNvbXBvbm9cIixcbiAgICBcImNvbXByZWhlbmRvXCIsXG4gICAgXCJjb21wdHVzXCIsXG4gICAgXCJjb25hdHVzXCIsXG4gICAgXCJjb25jZWRvXCIsXG4gICAgXCJjb25jaWRvXCIsXG4gICAgXCJjb25jdWxjb1wiLFxuICAgIFwiY29uZGljb1wiLFxuICAgIFwiY29uZHVjb1wiLFxuICAgIFwiY29uZmVyb1wiLFxuICAgIFwiY29uZmlkb1wiLFxuICAgIFwiY29uZm9ydG9cIixcbiAgICBcImNvbmZ1Z29cIixcbiAgICBcImNvbmdyZWdhdGlvXCIsXG4gICAgXCJjb25pY2lvXCIsXG4gICAgXCJjb25pZWN0b1wiLFxuICAgIFwiY29uaXRvclwiLFxuICAgIFwiY29uaXVyYXRpb1wiLFxuICAgIFwiY29ub3JcIixcbiAgICBcImNvbnF1ZXJvclwiLFxuICAgIFwiY29uc2NlbmRvXCIsXG4gICAgXCJjb25zZXJ2b1wiLFxuICAgIFwiY29uc2lkZXJvXCIsXG4gICAgXCJjb25zcGVyZ29cIixcbiAgICBcImNvbnN0YW5zXCIsXG4gICAgXCJjb25zdWFzb3JcIixcbiAgICBcImNvbnRhYmVzY29cIixcbiAgICBcImNvbnRlZ29cIixcbiAgICBcImNvbnRpZ29cIixcbiAgICBcImNvbnRyYVwiLFxuICAgIFwiY29udHVyYm9cIixcbiAgICBcImNvbnZlbnR1c1wiLFxuICAgIFwiY29udm9jb1wiLFxuICAgIFwiY29waWFcIixcbiAgICBcImNvcGlvc2VcIixcbiAgICBcImNvcm51XCIsXG4gICAgXCJjb3JvbmFcIixcbiAgICBcImNvcnB1c1wiLFxuICAgIFwiY29ycmVwdGl1c1wiLFxuICAgIFwiY29ycmlnb1wiLFxuICAgIFwiY29ycm9ib3JvXCIsXG4gICAgXCJjb3JydW1wb1wiLFxuICAgIFwiY29ydXNjdXNcIixcbiAgICBcImNvdGlkaWVcIixcbiAgICBcImNyYXB1bGFcIixcbiAgICBcImNyYXNcIixcbiAgICBcImNyYXN0aW51c1wiLFxuICAgIFwiY3JlYXRvclwiLFxuICAgIFwiY3JlYmVyXCIsXG4gICAgXCJjcmVicm9cIixcbiAgICBcImNyZWRvXCIsXG4gICAgXCJjcmVvXCIsXG4gICAgXCJjcmVwdGlvXCIsXG4gICAgXCJjcmVwdXNjdWx1bVwiLFxuICAgIFwiY3Jlc2NvXCIsXG4gICAgXCJjcmV0YVwiLFxuICAgIFwiY3JpYnJvXCIsXG4gICAgXCJjcmluaXNcIixcbiAgICBcImNydWNpYW1lbnR1bVwiLFxuICAgIFwiY3J1ZGVsaXNcIixcbiAgICBcImNydWVudHVzXCIsXG4gICAgXCJjcnVyXCIsXG4gICAgXCJjcnVzdHVsdW1cIixcbiAgICBcImNydXhcIixcbiAgICBcImN1YmljdWxhcmlzXCIsXG4gICAgXCJjdWJpdHVtXCIsXG4gICAgXCJjdWJvXCIsXG4gICAgXCJjdWlcIixcbiAgICBcImN1aXVzXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwiY3VscG9cIixcbiAgICBcImN1bHRlbGx1c1wiLFxuICAgIFwiY3VsdHVyYVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJjdW5hYnVsYVwiLFxuICAgIFwiY3VuYWVcIixcbiAgICBcImN1bmN0YXRpb1wiLFxuICAgIFwiY3VwaWRpdGFzXCIsXG4gICAgXCJjdXBpb1wiLFxuICAgIFwiY3VwcGVkaWFcIixcbiAgICBcImN1cHJlc3N1c1wiLFxuICAgIFwiY3VyXCIsXG4gICAgXCJjdXJhXCIsXG4gICAgXCJjdXJhdGlvXCIsXG4gICAgXCJjdXJpYVwiLFxuICAgIFwiY3VyaW9zaXRhc1wiLFxuICAgIFwiY3VyaXNcIixcbiAgICBcImN1cm9cIixcbiAgICBcImN1cnJpY3VsdW1cIixcbiAgICBcImN1cnJ1c1wiLFxuICAgIFwiY3Vyc2ltXCIsXG4gICAgXCJjdXJzb1wiLFxuICAgIFwiY3Vyc3VzXCIsXG4gICAgXCJjdXJ0b1wiLFxuICAgIFwiY3VydHVzXCIsXG4gICAgXCJjdXJ2b1wiLFxuICAgIFwiY3VydnVzXCIsXG4gICAgXCJjdXN0b2RpYVwiLFxuICAgIFwiZGFtbmF0aW9cIixcbiAgICBcImRhbW5vXCIsXG4gICAgXCJkYXBpZmVyXCIsXG4gICAgXCJkZWJlb1wiLFxuICAgIFwiZGViaWxpdG9cIixcbiAgICBcImRlY2Vuc1wiLFxuICAgIFwiZGVjZXJub1wiLFxuICAgIFwiZGVjZXRcIixcbiAgICBcImRlY2ltdXNcIixcbiAgICBcImRlY2lwaW9cIixcbiAgICBcImRlY29yXCIsXG4gICAgXCJkZWNyZXR1bVwiLFxuICAgIFwiZGVjdW1ib1wiLFxuICAgIFwiZGVkZWNvclwiLFxuICAgIFwiZGVkaWNvXCIsXG4gICAgXCJkZWR1Y29cIixcbiAgICBcImRlZmFlY29cIixcbiAgICBcImRlZmVuZG9cIixcbiAgICBcImRlZmVyb1wiLFxuICAgIFwiZGVmZXNzdXNcIixcbiAgICBcImRlZmV0aXNjb3JcIixcbiAgICBcImRlZmljaW9cIixcbiAgICBcImRlZmlnb1wiLFxuICAgIFwiZGVmbGVvXCIsXG4gICAgXCJkZWZsdW9cIixcbiAgICBcImRlZnVuZ29cIixcbiAgICBcImRlZ2VuZXJvXCIsXG4gICAgXCJkZWdlcm9cIixcbiAgICBcImRlZ3VzdG9cIixcbiAgICBcImRlaW5kZVwiLFxuICAgIFwiZGVsZWN0YXRpb1wiLFxuICAgIFwiZGVsZWdvXCIsXG4gICAgXCJkZWxlb1wiLFxuICAgIFwiZGVsaWJlcm9cIixcbiAgICBcImRlbGljYXRlXCIsXG4gICAgXCJkZWxpbnF1b1wiLFxuICAgIFwiZGVsdWRvXCIsXG4gICAgXCJkZW1lbnNcIixcbiAgICBcImRlbWVyZ29cIixcbiAgICBcImRlbWl0dG9cIixcbiAgICBcImRlbW9cIixcbiAgICBcImRlbW9uc3Ryb1wiLFxuICAgIFwiZGVtb3JvclwiLFxuICAgIFwiZGVtdWxjZW9cIixcbiAgICBcImRlbXVtXCIsXG4gICAgXCJkZW5lZ29cIixcbiAgICBcImRlbmlxdWVcIixcbiAgICBcImRlbnNcIixcbiAgICBcImRlbnVuY2lvXCIsXG4gICAgXCJkZW51b1wiLFxuICAgIFwiZGVvcnN1bVwiLFxuICAgIFwiZGVwZXJlb1wiLFxuICAgIFwiZGVwb25vXCIsXG4gICAgXCJkZXBvcHVsb1wiLFxuICAgIFwiZGVwb3J0b1wiLFxuICAgIFwiZGVwcmFlZG9yXCIsXG4gICAgXCJkZXByZWNhdG9yXCIsXG4gICAgXCJkZXByaW1vXCIsXG4gICAgXCJkZXByb21vXCIsXG4gICAgXCJkZXB1bHNvXCIsXG4gICAgXCJkZXB1dG9cIixcbiAgICBcImRlcmVsaW5xdW9cIixcbiAgICBcImRlcmlkZW9cIixcbiAgICBcImRlcmlwaW9cIixcbiAgICBcImRlc2lkZXJvXCIsXG4gICAgXCJkZXNpbm9cIixcbiAgICBcImRlc2lwaW9cIixcbiAgICBcImRlc29sb1wiLFxuICAgIFwiZGVzcGFyYXR1c1wiLFxuICAgIFwiZGVzcGVjdG9cIixcbiAgICBcImRlc3Bpcm1hdGlvXCIsXG4gICAgXCJpbmZpdFwiLFxuICAgIFwiaW5mbGFtbWF0aW9cIixcbiAgICBcInBhZW5zXCIsXG4gICAgXCJwYXRpb3JcIixcbiAgICBcInBhdHJpYVwiLFxuICAgIFwicGF0cm9jaW5vclwiLFxuICAgIFwicGF0cnV1c1wiLFxuICAgIFwicGF1Y2lcIixcbiAgICBcInBhdWxhdGltXCIsXG4gICAgXCJwYXVwZXJcIixcbiAgICBcInBheFwiLFxuICAgIFwicGVjY2F0dXNcIixcbiAgICBcInBlY2NvXCIsXG4gICAgXCJwZWN0b1wiLFxuICAgIFwicGVjdHVzXCIsXG4gICAgXCJwZWN1bmlhXCIsXG4gICAgXCJwZWN1c1wiLFxuICAgIFwicGVpb3JcIixcbiAgICBcInBlbFwiLFxuICAgIFwib2NlclwiLFxuICAgIFwic29jaXVzXCIsXG4gICAgXCJzb2RhbGl0YXNcIixcbiAgICBcInNvbFwiLFxuICAgIFwic29sZW9cIixcbiAgICBcInNvbGlvXCIsXG4gICAgXCJzb2xpdHVkb1wiLFxuICAgIFwic29saXVtXCIsXG4gICAgXCJzb2xsZXJzXCIsXG4gICAgXCJzb2xsaWNpdG9cIixcbiAgICBcInNvbHVtXCIsXG4gICAgXCJzb2x1c1wiLFxuICAgIFwic29sdXRpb1wiLFxuICAgIFwic29sdm9cIixcbiAgICBcInNvbW5pY3Vsb3N1c1wiLFxuICAgIFwic29tbnVzXCIsXG4gICAgXCJzb25pdHVzXCIsXG4gICAgXCJzb25vXCIsXG4gICAgXCJzb3BoaXNtYXRhXCIsXG4gICAgXCJzb3BvclwiLFxuICAgIFwic29yZGVvXCIsXG4gICAgXCJzb3J0aXR1c1wiLFxuICAgIFwic3BhcmdvXCIsXG4gICAgXCJzcGVjaW9zdXNcIixcbiAgICBcInNwZWN0YWN1bHVtXCIsXG4gICAgXCJzcGVjdWx1bVwiLFxuICAgIFwic3Blcm5vXCIsXG4gICAgXCJzcGVyb1wiLFxuICAgIFwic3Blc1wiLFxuICAgIFwic3BpY3VsdW1cIixcbiAgICBcInNwaXJpdHVzXCIsXG4gICAgXCJzcG9saWF0aW9cIixcbiAgICBcInNwb250ZVwiLFxuICAgIFwic3RhYmlsaXNcIixcbiAgICBcInN0YXRpbVwiLFxuICAgIFwic3RhdHVhXCIsXG4gICAgXCJzdGVsbGFcIixcbiAgICBcInN0aWxsaWNpZGl1bVwiLFxuICAgIFwic3RpcGVzXCIsXG4gICAgXCJzdGlwc1wiLFxuICAgIFwic3RvXCIsXG4gICAgXCJzdHJlbnV1c1wiLFxuICAgIFwic3RydWVzXCIsXG4gICAgXCJzdHVkaW9cIixcbiAgICBcInN0dWx0dXNcIixcbiAgICBcInN1YWRlb1wiLFxuICAgIFwic3Vhc29yaWFcIixcbiAgICBcInN1YlwiLFxuICAgIFwic3ViaXRvXCIsXG4gICAgXCJzdWJpdW5nb1wiLFxuICAgIFwic3VibGltZVwiLFxuICAgIFwic3VibmVjdG9cIixcbiAgICBcInN1YnNlY29cIixcbiAgICBcInN1YnN0YW50aWFcIixcbiAgICBcInN1YnZlbmlvXCIsXG4gICAgXCJzdWNjZWRvXCIsXG4gICAgXCJzdWNjdXJyb1wiLFxuICAgIFwic3VmZmljaW9cIixcbiAgICBcInN1ZmZvY29cIixcbiAgICBcInN1ZmZyYWdpdW1cIixcbiAgICBcInN1Z2dlcm9cIixcbiAgICBcInN1aVwiLFxuICAgIFwic3VsdW1cIixcbiAgICBcInN1bVwiLFxuICAgIFwic3VtbWFcIixcbiAgICBcInN1bW1pc3NlXCIsXG4gICAgXCJzdW1tb3BlcmVcIixcbiAgICBcInN1bW9cIixcbiAgICBcInN1bXB0dXNcIixcbiAgICBcInN1cGVsbGV4XCIsXG4gICAgXCJzdXBlclwiLFxuICAgIFwic3VwcGVsbGV4XCIsXG4gICAgXCJzdXBwbGFudG9cIixcbiAgICBcInN1cHBvbm9cIixcbiAgICBcInN1cHJhXCIsXG4gICAgXCJzdXJjdWx1c1wiLFxuICAgIFwic3VyZ29cIixcbiAgICBcInN1cnN1bVwiLFxuICAgIFwic3VzY2lwaW9cIixcbiAgICBcInN1c3BlbmRvXCIsXG4gICAgXCJzdXN0aW5lb1wiLFxuICAgIFwic3V1c1wiLFxuICAgIFwic3luYWdvZ2FcIixcbiAgICBcInRhYmVsbGFcIixcbiAgICBcInRhYmVybnVzXCIsXG4gICAgXCJ0YWJlc2NvXCIsXG4gICAgXCJ0YWJnb1wiLFxuICAgIFwidGFidWxhXCIsXG4gICAgXCJ0YWNlb1wiLFxuICAgIFwidGFjdHVzXCIsXG4gICAgXCJ0YWVkaXVtXCIsXG4gICAgXCJ0YWxpb1wiLFxuICAgIFwidGFsaXNcIixcbiAgICBcInRhbHVzXCIsXG4gICAgXCJ0YW1cIixcbiAgICBcInRhbWRpdVwiLFxuICAgIFwidGFtZW5cIixcbiAgICBcInRhbWV0c2lcIixcbiAgICBcInRhbWlzaXVtXCIsXG4gICAgXCJ0YW1xdWFtXCIsXG4gICAgXCJ0YW5kZW1cIixcbiAgICBcInRhbnRpbGx1c1wiLFxuICAgIFwidGFudHVtXCIsXG4gICAgXCJ0YXJkdXNcIixcbiAgICBcInRlZ29cIixcbiAgICBcInRlbWVyaXRhc1wiLFxuICAgIFwidGVtcGVyYW50aWFcIixcbiAgICBcInRlbXBsdW1cIixcbiAgICBcInRlbXB0YXRpb1wiLFxuICAgIFwidGVtcHVzXCIsXG4gICAgXCJ0ZW5heFwiLFxuICAgIFwidGVuZG9cIixcbiAgICBcInRlbmVvXCIsXG4gICAgXCJ0ZW5lclwiLFxuICAgIFwidGVudWlzXCIsXG4gICAgXCJ0ZW51c1wiLFxuICAgIFwidGVwZXNjb1wiLFxuICAgIFwidGVwaWR1c1wiLFxuICAgIFwidGVyXCIsXG4gICAgXCJ0ZXJlYnJvXCIsXG4gICAgXCJ0ZXJlc1wiLFxuICAgIFwidGVyZ2FcIixcbiAgICBcInRlcmdlb1wiLFxuICAgIFwidGVyZ2l2ZXJzYXRpb1wiLFxuICAgIFwidGVyZ29cIixcbiAgICBcInRlcmd1bVwiLFxuICAgIFwidGVybWVzXCIsXG4gICAgXCJ0ZXJtaW5hdGlvXCIsXG4gICAgXCJ0ZXJvXCIsXG4gICAgXCJ0ZXJyYVwiLFxuICAgIFwidGVycmVvXCIsXG4gICAgXCJ0ZXJyaXRvXCIsXG4gICAgXCJ0ZXJyb3JcIixcbiAgICBcInRlcnN1c1wiLFxuICAgIFwidGVydGl1c1wiLFxuICAgIFwidGVzdGltb25pdW1cIixcbiAgICBcInRleG9cIixcbiAgICBcInRleHRpbGlzXCIsXG4gICAgXCJ0ZXh0b3JcIixcbiAgICBcInRleHR1c1wiLFxuICAgIFwidGhhbGFzc2ludXNcIixcbiAgICBcInRoZWF0cnVtXCIsXG4gICAgXCJ0aGVjYVwiLFxuICAgIFwidGhlbWFcIixcbiAgICBcInRoZW9sb2d1c1wiLFxuICAgIFwidGhlcm1hZVwiLFxuICAgIFwidGhlc2F1cnVzXCIsXG4gICAgXCJ0aGVzaXNcIixcbiAgICBcInRob3JheFwiLFxuICAgIFwidGh5bWJyYVwiLFxuICAgIFwidGh5bXVtXCIsXG4gICAgXCJ0aWJpXCIsXG4gICAgXCJ0aW1pZHVzXCIsXG4gICAgXCJ0aW1vclwiLFxuICAgIFwidGl0dWx1c1wiLFxuICAgIFwidG9sZXJvXCIsXG4gICAgXCJ0b2xsb1wiLFxuICAgIFwidG9uZGVvXCIsXG4gICAgXCJ0b25zb3JcIixcbiAgICBcInRvcnF1ZW9cIixcbiAgICBcInRvcnJlbnNcIixcbiAgICBcInRvdFwiLFxuICAgIFwidG90aWRlbVwiLFxuICAgIFwidG90aWVzXCIsXG4gICAgXCJ0b3R1c1wiLFxuICAgIFwidHJhY3RvXCIsXG4gICAgXCJ0cmFkb1wiLFxuICAgIFwidHJhaG9cIixcbiAgICBcInRyYW5zXCIsXG4gICAgXCJ0cmVkZWNpbVwiLFxuICAgIFwidHJlbW9cIixcbiAgICBcInRyZXBpZGVcIixcbiAgICBcInRyZXNcIixcbiAgICBcInRyaWJ1b1wiLFxuICAgIFwidHJpY2VzaW11c1wiLFxuICAgIFwidHJpZHVhbmFcIixcbiAgICBcInRyaWdpbnRhXCIsXG4gICAgXCJ0cmlwdWRpb1wiLFxuICAgIFwidHJpc3Rpc1wiLFxuICAgIFwidHJpdW1waHVzXCIsXG4gICAgXCJ0cnVjaWRvXCIsXG4gICAgXCJ0cnVjdWxlbnRlclwiLFxuICAgIFwidHViaW5ldXNcIixcbiAgICBcInR1aVwiLFxuICAgIFwidHVtXCIsXG4gICAgXCJ0dW11bHR1c1wiLFxuICAgIFwidHVuY1wiLFxuICAgIFwidHVyYmFcIixcbiAgICBcInR1cmJvXCIsXG4gICAgXCJ0dXJwZVwiLFxuICAgIFwidHVycGlzXCIsXG4gICAgXCJ0dXRhbWVuXCIsXG4gICAgXCJ0dXRpc1wiLFxuICAgIFwidHlyYW5udXNcIixcbiAgICBcInViZXJyaW1lXCIsXG4gICAgXCJ1YmlcIixcbiAgICBcInVsY2lzY29yXCIsXG4gICAgXCJ1bGx1c1wiLFxuICAgIFwidWx0ZXJpdXNcIixcbiAgICBcInVsdGlvXCIsXG4gICAgXCJ1bHRyYVwiLFxuICAgIFwidW1icmFcIixcbiAgICBcInVtZXJ1c1wiLFxuICAgIFwidW1xdWFtXCIsXG4gICAgXCJ1bmFcIixcbiAgICBcInVuZGVcIixcbiAgICBcInVuZGlxdWVcIixcbiAgICBcInVuaXZlcnNlXCIsXG4gICAgXCJ1bnVzXCIsXG4gICAgXCJ1cmJhbnVzXCIsXG4gICAgXCJ1cmJzXCIsXG4gICAgXCJ1cmVkb1wiLFxuICAgIFwidXNpdGFzXCIsXG4gICAgXCJ1c3F1ZVwiLFxuICAgIFwidXN0aWxvXCIsXG4gICAgXCJ1c3R1bG9cIixcbiAgICBcInVzdXNcIixcbiAgICBcInV0ZXJcIixcbiAgICBcInV0ZXJxdWVcIixcbiAgICBcInV0aWxpc1wiLFxuICAgIFwidXRpcXVlXCIsXG4gICAgXCJ1dG9yXCIsXG4gICAgXCJ1dHBvdGVcIixcbiAgICBcInV0cmltcXVlXCIsXG4gICAgXCJ1dHJvcXVlXCIsXG4gICAgXCJ1dHJ1bVwiLFxuICAgIFwidXhvclwiLFxuICAgIFwidmFjb1wiLFxuICAgIFwidmFjdXVzXCIsXG4gICAgXCJ2YWRvXCIsXG4gICAgXCJ2YWVcIixcbiAgICBcInZhbGRlXCIsXG4gICAgXCJ2YWxlbnNcIixcbiAgICBcInZhbGVvXCIsXG4gICAgXCJ2YWxldHVkb1wiLFxuICAgIFwidmFsaWR1c1wiLFxuICAgIFwidmFsbHVtXCIsXG4gICAgXCJ2YXB1bHVzXCIsXG4gICAgXCJ2YXJpZXRhc1wiLFxuICAgIFwidmFyaXVzXCIsXG4gICAgXCJ2ZWhlbWVuc1wiLFxuICAgIFwidmVsXCIsXG4gICAgXCJ2ZWxvY2l0ZXJcIixcbiAgICBcInZlbHVtXCIsXG4gICAgXCJ2ZWx1dFwiLFxuICAgIFwidmVuaWFcIixcbiAgICBcInZlbmlvXCIsXG4gICAgXCJ2ZW50aXRvXCIsXG4gICAgXCJ2ZW50b3N1c1wiLFxuICAgIFwidmVudHVzXCIsXG4gICAgXCJ2ZW51c3Rhc1wiLFxuICAgIFwidmVyXCIsXG4gICAgXCJ2ZXJiZXJhXCIsXG4gICAgXCJ2ZXJidW1cIixcbiAgICBcInZlcmVcIixcbiAgICBcInZlcmVjdW5kaWFcIixcbiAgICBcInZlcmVvclwiLFxuICAgIFwidmVyZ29cIixcbiAgICBcInZlcml0YXNcIixcbiAgICBcInZlcm9cIixcbiAgICBcInZlcnN1c1wiLFxuICAgIFwidmVydG9cIixcbiAgICBcInZlcnVtdGFtZW5cIixcbiAgICBcInZlcnVzXCIsXG4gICAgXCJ2ZXNjb1wiLFxuICAgIFwidmVzaWNhXCIsXG4gICAgXCJ2ZXNwZXJcIixcbiAgICBcInZlc3BpbGxvXCIsXG4gICAgXCJ2ZXN0ZXJcIixcbiAgICBcInZlc3RpZ2l1bVwiLFxuICAgIFwidmVzdHJ1bVwiLFxuICAgIFwidmV0dXNcIixcbiAgICBcInZpYVwiLFxuICAgIFwidmljaW51c1wiLFxuICAgIFwidmljaXNzaXR1ZG9cIixcbiAgICBcInZpY3RvcmlhXCIsXG4gICAgXCJ2aWN0dXNcIixcbiAgICBcInZpZGVsaWNldFwiLFxuICAgIFwidmlkZW9cIixcbiAgICBcInZpZHVhdGFcIixcbiAgICBcInZpZHVvXCIsXG4gICAgXCJ2aWdpbG9cIixcbiAgICBcInZpZ29yXCIsXG4gICAgXCJ2aWxpY3VzXCIsXG4gICAgXCJ2aWxpc1wiLFxuICAgIFwidmlsaXRhc1wiLFxuICAgIFwidmlsbGFcIixcbiAgICBcInZpbmNvXCIsXG4gICAgXCJ2aW5jdWx1bVwiLFxuICAgIFwidmluZGljb1wiLFxuICAgIFwidmluaXRvclwiLFxuICAgIFwidmludW1cIixcbiAgICBcInZpclwiLFxuICAgIFwidmlyZ2FcIixcbiAgICBcInZpcmdvXCIsXG4gICAgXCJ2aXJpZGlzXCIsXG4gICAgXCJ2aXJpbGl0ZXJcIixcbiAgICBcInZpcnR1c1wiLFxuICAgIFwidmlzXCIsXG4gICAgXCJ2aXNjdXNcIixcbiAgICBcInZpdGFcIixcbiAgICBcInZpdGlvc3VzXCIsXG4gICAgXCJ2aXRpdW1cIixcbiAgICBcInZpdG9cIixcbiAgICBcInZpdm9cIixcbiAgICBcInZpeFwiLFxuICAgIFwidm9iaXNcIixcbiAgICBcInZvY2lmZXJvclwiLFxuICAgIFwidm9jb1wiLFxuICAgIFwidm9sYXRpY3VzXCIsXG4gICAgXCJ2b2xvXCIsXG4gICAgXCJ2b2x1YmlsaXNcIixcbiAgICBcInZvbHVudGFyaXVzXCIsXG4gICAgXCJ2b2x1cFwiLFxuICAgIFwidm9sdXRhYnJ1bVwiLFxuICAgIFwidm9sdmFcIixcbiAgICBcInZvbWVyXCIsXG4gICAgXCJ2b21pY2FcIixcbiAgICBcInZvbWl0b1wiLFxuICAgIFwidm9yYWdvXCIsXG4gICAgXCJ2b3JheFwiLFxuICAgIFwidm9yb1wiLFxuICAgIFwidm9zXCIsXG4gICAgXCJ2b3R1bVwiLFxuICAgIFwidm92ZW9cIixcbiAgICBcInZveFwiLFxuICAgIFwidnVsYXJpdGVyXCIsXG4gICAgXCJ2dWxnYXJpc1wiLFxuICAgIFwidnVsZ2l2YWd1c1wiLFxuICAgIFwidnVsZ29cIixcbiAgICBcInZ1bGd1c1wiLFxuICAgIFwidnVsbmVyb1wiLFxuICAgIFwidnVsbnVzXCIsXG4gICAgXCJ2dWxwZXNcIixcbiAgICBcInZ1bHRpY3VsdXNcIixcbiAgICBcInZ1bHR1b3N1c1wiLFxuICAgIFwieGlwaGlhc1wiXG4gIF1cbn07XG5lbi5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFsaXlhaFwiLFxuICAgIFwiQWFyb25cIixcbiAgICBcIkFiYWdhaWxcIixcbiAgICBcIkFiYmV5XCIsXG4gICAgXCJBYmJpZVwiLFxuICAgIFwiQWJiaWdhaWxcIixcbiAgICBcIkFiYnlcIixcbiAgICBcIkFiZGllbFwiLFxuICAgIFwiQWJkdWxcIixcbiAgICBcIkFiZHVsbGFoXCIsXG4gICAgXCJBYmVcIixcbiAgICBcIkFiZWxcIixcbiAgICBcIkFiZWxhcmRvXCIsXG4gICAgXCJBYmlnYWlsXCIsXG4gICAgXCJBYmlnYWxlXCIsXG4gICAgXCJBYmlnYXlsZVwiLFxuICAgIFwiQWJuZXJcIixcbiAgICBcIkFicmFoYW1cIixcbiAgICBcIkFkYVwiLFxuICAgIFwiQWRhaFwiLFxuICAgIFwiQWRhbGJlcnRvXCIsXG4gICAgXCJBZGFsaW5lXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCJBZGFuXCIsXG4gICAgXCJBZGRpZVwiLFxuICAgIFwiQWRkaXNvblwiLFxuICAgIFwiQWRlbGFcIixcbiAgICBcIkFkZWxiZXJ0XCIsXG4gICAgXCJBZGVsZVwiLFxuICAgIFwiQWRlbGlhXCIsXG4gICAgXCJBZGVsaW5lXCIsXG4gICAgXCJBZGVsbFwiLFxuICAgIFwiQWRlbGxhXCIsXG4gICAgXCJBZGVsbGVcIixcbiAgICBcIkFkaXR5YVwiLFxuICAgIFwiQWRvbGZcIixcbiAgICBcIkFkb2xmb1wiLFxuICAgIFwiQWRvbHBoXCIsXG4gICAgXCJBZG9scGh1c1wiLFxuICAgIFwiQWRvbmlzXCIsXG4gICAgXCJBZHJhaW5cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWRyaWFubmFcIixcbiAgICBcIkFkcmllbFwiLFxuICAgIFwiQWRyaWVuXCIsXG4gICAgXCJBZHJpZW5uZVwiLFxuICAgIFwiQWZ0b25cIixcbiAgICBcIkFnbGFlXCIsXG4gICAgXCJBZ25lc1wiLFxuICAgIFwiQWd1c3RpblwiLFxuICAgIFwiQWd1c3RpbmFcIixcbiAgICBcIkFobWFkXCIsXG4gICAgXCJBaG1lZFwiLFxuICAgIFwiQWlkYVwiLFxuICAgIFwiQWlkYW5cIixcbiAgICBcIkFpZGVuXCIsXG4gICAgXCJBaWxlZW5cIixcbiAgICBcIkFpbWVlXCIsXG4gICAgXCJBaXNoYVwiLFxuICAgIFwiQWl5YW5hXCIsXG4gICAgXCJBa2VlbVwiLFxuICAgIFwiQWxcIixcbiAgICBcIkFsYWluYVwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQWxhbmFcIixcbiAgICBcIkFsYW5pc1wiLFxuICAgIFwiQWxhbm5hXCIsXG4gICAgXCJBbGF5bmFcIixcbiAgICBcIkFsYmFcIixcbiAgICBcIkFsYmVydFwiLFxuICAgIFwiQWxiZXJ0YVwiLFxuICAgIFwiQWxiZXJ0aGFcIixcbiAgICBcIkFsYmVydG9cIixcbiAgICBcIkFsYmluXCIsXG4gICAgXCJBbGJpbmFcIixcbiAgICBcIkFsZGFcIixcbiAgICBcIkFsZGVuXCIsXG4gICAgXCJBbGVjXCIsXG4gICAgXCJBbGVlblwiLFxuICAgIFwiQWxlamFuZHJhXCIsXG4gICAgXCJBbGVqYW5kcmluXCIsXG4gICAgXCJBbGVrXCIsXG4gICAgXCJBbGVuYVwiLFxuICAgIFwiQWxlbmVcIixcbiAgICBcIkFsZXNzYW5kcmFcIixcbiAgICBcIkFsZXNzYW5kcm9cIixcbiAgICBcIkFsZXNzaWFcIixcbiAgICBcIkFsZXRoYVwiLFxuICAgIFwiQWxleFwiLFxuICAgIFwiQWxleGFcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQWxleGFuZHJhXCIsXG4gICAgXCJBbGV4YW5kcmVcIixcbiAgICBcIkFsZXhhbmRyZWFcIixcbiAgICBcIkFsZXhhbmRyaWFcIixcbiAgICBcIkFsZXhhbmRyaW5lXCIsXG4gICAgXCJBbGV4YW5kcm9cIixcbiAgICBcIkFsZXhhbmVcIixcbiAgICBcIkFsZXhhbm5lXCIsXG4gICAgXCJBbGV4aWVcIixcbiAgICBcIkFsZXhpc1wiLFxuICAgIFwiQWxleHlzXCIsXG4gICAgXCJBbGV4emFuZGVyXCIsXG4gICAgXCJBbGZcIixcbiAgICBcIkFsZm9uc29cIixcbiAgICBcIkFsZm9uem9cIixcbiAgICBcIkFsZm9yZFwiLFxuICAgIFwiQWxmcmVkXCIsXG4gICAgXCJBbGZyZWRhXCIsXG4gICAgXCJBbGZyZWRvXCIsXG4gICAgXCJBbGlcIixcbiAgICBcIkFsaWFcIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIkFsaXNhXCIsXG4gICAgXCJBbGlzaGFcIixcbiAgICBcIkFsaXNvblwiLFxuICAgIFwiQWxpdmlhXCIsXG4gICAgXCJBbGl5YVwiLFxuICAgIFwiQWxpeWFoXCIsXG4gICAgXCJBbGl6YVwiLFxuICAgIFwiQWxpemVcIixcbiAgICBcIkFsbGFuXCIsXG4gICAgXCJBbGxlblwiLFxuICAgIFwiQWxsZW5lXCIsXG4gICAgXCJBbGxpZVwiLFxuICAgIFwiQWxsaXNvblwiLFxuICAgIFwiQWxseVwiLFxuICAgIFwiQWxwaG9uc29cIixcbiAgICBcIkFsdGFcIixcbiAgICBcIkFsdGhlYVwiLFxuICAgIFwiQWx2YVwiLFxuICAgIFwiQWx2YWhcIixcbiAgICBcIkFsdmVuYVwiLFxuICAgIFwiQWx2ZXJhXCIsXG4gICAgXCJBbHZlcnRhXCIsXG4gICAgXCJBbHZpbmFcIixcbiAgICBcIkFsdmlzXCIsXG4gICAgXCJBbHljZVwiLFxuICAgIFwiQWx5Y2lhXCIsXG4gICAgXCJBbHlzYVwiLFxuICAgIFwiQWx5c2hhXCIsXG4gICAgXCJBbHlzb25cIixcbiAgICBcIkFseXNzb25cIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbWFuaVwiLFxuICAgIFwiQW1hcmFcIixcbiAgICBcIkFtYXJpXCIsXG4gICAgXCJBbWF5YVwiLFxuICAgIFwiQW1iZXJcIixcbiAgICBcIkFtYnJvc2VcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiQW1lbGllXCIsXG4gICAgXCJBbWVseVwiLFxuICAgIFwiQW1lcmljYVwiLFxuICAgIFwiQW1lcmljb1wiLFxuICAgIFwiQW1pZVwiLFxuICAgIFwiQW1pbmFcIixcbiAgICBcIkFtaXJcIixcbiAgICBcIkFtaXJhXCIsXG4gICAgXCJBbWl5YVwiLFxuICAgIFwiQW1vc1wiLFxuICAgIFwiQW1wYXJvXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFteWFcIixcbiAgICBcIkFuYVwiLFxuICAgIFwiQW5hYmVsXCIsXG4gICAgXCJBbmFiZWxsZVwiLFxuICAgIFwiQW5haGlcIixcbiAgICBcIkFuYWlzXCIsXG4gICAgXCJBbmFzdGFjaW9cIixcbiAgICBcIkFuYXN0YXNpYVwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIkFuZHJlXCIsXG4gICAgXCJBbmRyZWFuZVwiLFxuICAgIFwiQW5kcmVhbm5lXCIsXG4gICAgXCJBbmRyZXNcIixcbiAgICBcIkFuZHJld1wiLFxuICAgIFwiQW5keVwiLFxuICAgIFwiQW5nZWxcIixcbiAgICBcIkFuZ2VsYVwiLFxuICAgIFwiQW5nZWxpY2FcIixcbiAgICBcIkFuZ2VsaW5hXCIsXG4gICAgXCJBbmdlbGluZVwiLFxuICAgIFwiQW5nZWxpdGFcIixcbiAgICBcIkFuZ2Vsb1wiLFxuICAgIFwiQW5naWVcIixcbiAgICBcIkFuZ3VzXCIsXG4gICAgXCJBbmliYWxcIixcbiAgICBcIkFuaWthXCIsXG4gICAgXCJBbmlzc2FcIixcbiAgICBcIkFuaXRhXCIsXG4gICAgXCJBbml5YVwiLFxuICAgIFwiQW5peWFoXCIsXG4gICAgXCJBbmphbGlcIixcbiAgICBcIkFubmFcIixcbiAgICBcIkFubmFiZWxcIixcbiAgICBcIkFubmFiZWxsXCIsXG4gICAgXCJBbm5hYmVsbGVcIixcbiAgICBcIkFubmFsaXNlXCIsXG4gICAgXCJBbm5hbWFlXCIsXG4gICAgXCJBbm5hbWFyaWVcIixcbiAgICBcIkFubmVcIixcbiAgICBcIkFubmV0dGFcIixcbiAgICBcIkFubmV0dGVcIixcbiAgICBcIkFubmllXCIsXG4gICAgXCJBbnNlbFwiLFxuICAgIFwiQW5zbGV5XCIsXG4gICAgXCJBbnRob255XCIsXG4gICAgXCJBbnRvaW5ldHRlXCIsXG4gICAgXCJBbnRvbmVcIixcbiAgICBcIkFudG9uZXR0YVwiLFxuICAgIFwiQW50b25ldHRlXCIsXG4gICAgXCJBbnRvbmlhXCIsXG4gICAgXCJBbnRvbmlldHRhXCIsXG4gICAgXCJBbnRvbmluYVwiLFxuICAgIFwiQW50b25pb1wiLFxuICAgIFwiQW50d2FuXCIsXG4gICAgXCJBbnR3b25cIixcbiAgICBcIkFueWFcIixcbiAgICBcIkFwcmlsXCIsXG4gICAgXCJBcmFcIixcbiAgICBcIkFyYWNlbGlcIixcbiAgICBcIkFyYWNlbHlcIixcbiAgICBcIkFyY2hcIixcbiAgICBcIkFyY2hpYmFsZFwiLFxuICAgIFwiQXJkZWxsYVwiLFxuICAgIFwiQXJkZW5cIixcbiAgICBcIkFyZGl0aFwiLFxuICAgIFwiQXJlbHlcIixcbiAgICBcIkFyaVwiLFxuICAgIFwiQXJpYW5lXCIsXG4gICAgXCJBcmlhbm5hXCIsXG4gICAgXCJBcmljXCIsXG4gICAgXCJBcmllbFwiLFxuICAgIFwiQXJpZWxsZVwiLFxuICAgIFwiQXJqdW5cIixcbiAgICBcIkFybGVuZVwiLFxuICAgIFwiQXJsaWVcIixcbiAgICBcIkFybG9cIixcbiAgICBcIkFybWFuZFwiLFxuICAgIFwiQXJtYW5kb1wiLFxuICAgIFwiQXJtYW5pXCIsXG4gICAgXCJBcm5hbGRvXCIsXG4gICAgXCJBcm5lXCIsXG4gICAgXCJBcm5vXCIsXG4gICAgXCJBcm5vbGRcIixcbiAgICBcIkFybm9sZG9cIixcbiAgICBcIkFybnVsZm9cIixcbiAgICBcIkFyb25cIixcbiAgICBcIkFydFwiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJBcnR1cm9cIixcbiAgICBcIkFydmVsXCIsXG4gICAgXCJBcnZpZFwiLFxuICAgIFwiQXJ2aWxsYVwiLFxuICAgIFwiQXJ5YW5uYVwiLFxuICAgIFwiQXNhXCIsXG4gICAgXCJBc2hhXCIsXG4gICAgXCJBc2hsZWVcIixcbiAgICBcIkFzaGxlaWdoXCIsXG4gICAgXCJBc2hsZXlcIixcbiAgICBcIkFzaGx5XCIsXG4gICAgXCJBc2hseW5uXCIsXG4gICAgXCJBc2h0b25cIixcbiAgICBcIkFzaHR5blwiLFxuICAgIFwiQXNpYVwiLFxuICAgIFwiQXNzdW50YVwiLFxuICAgIFwiQXN0cmlkXCIsXG4gICAgXCJBdGhlbmFcIixcbiAgICBcIkF1YnJlZVwiLFxuICAgIFwiQXVicmV5XCIsXG4gICAgXCJBdWRpZVwiLFxuICAgIFwiQXVkcmFcIixcbiAgICBcIkF1ZHJlYW5uZVwiLFxuICAgIFwiQXVkcmV5XCIsXG4gICAgXCJBdWd1c3RcIixcbiAgICBcIkF1Z3VzdGFcIixcbiAgICBcIkF1Z3VzdGluZVwiLFxuICAgIFwiQXVndXN0dXNcIixcbiAgICBcIkF1cmVsaWFcIixcbiAgICBcIkF1cmVsaWVcIixcbiAgICBcIkF1cmVsaW9cIixcbiAgICBcIkF1cm9yZVwiLFxuICAgIFwiQXVzdGVuXCIsXG4gICAgXCJBdXN0aW5cIixcbiAgICBcIkF1c3R5blwiLFxuICAgIFwiQXV0dW1uXCIsXG4gICAgXCJBdmFcIixcbiAgICBcIkF2ZXJ5XCIsXG4gICAgXCJBdmlzXCIsXG4gICAgXCJBeGVsXCIsXG4gICAgXCJBeWFuYVwiLFxuICAgIFwiQXlkZW5cIixcbiAgICBcIkF5bGFcIixcbiAgICBcIkF5bGluXCIsXG4gICAgXCJCYWJ5XCIsXG4gICAgXCJCYWlsZWVcIixcbiAgICBcIkJhaWxleVwiLFxuICAgIFwiQmFyYmFyYVwiLFxuICAgIFwiQmFybmV5XCIsXG4gICAgXCJCYXJvblwiLFxuICAgIFwiQmFycmV0dFwiLFxuICAgIFwiQmFycnlcIixcbiAgICBcIkJhcnRcIixcbiAgICBcIkJhcnRob2xvbWVcIixcbiAgICBcIkJhcnRvblwiLFxuICAgIFwiQmF5bGVlXCIsXG4gICAgXCJCZWF0cmljZVwiLFxuICAgIFwiQmVhdVwiLFxuICAgIFwiQmVhdWxhaFwiLFxuICAgIFwiQmVsbFwiLFxuICAgIFwiQmVsbGFcIixcbiAgICBcIkJlbGxlXCIsXG4gICAgXCJCZW5cIixcbiAgICBcIkJlbmVkaWN0XCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQmVubmV0dFwiLFxuICAgIFwiQmVubmllXCIsXG4gICAgXCJCZW5ueVwiLFxuICAgIFwiQmVudG9uXCIsXG4gICAgXCJCZXJlbmljZVwiLFxuICAgIFwiQmVybmFkZXR0ZVwiLFxuICAgIFwiQmVybmFkaW5lXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJCZXJuYXJkb1wiLFxuICAgIFwiQmVybmVpY2VcIixcbiAgICBcIkJlcm5oYXJkXCIsXG4gICAgXCJCZXJuaWNlXCIsXG4gICAgXCJCZXJuaWVcIixcbiAgICBcIkJlcm5pZWNlXCIsXG4gICAgXCJCZXJuaXRhXCIsXG4gICAgXCJCZXJyeVwiLFxuICAgIFwiQmVydFwiLFxuICAgIFwiQmVydGFcIixcbiAgICBcIkJlcnRoYVwiLFxuICAgIFwiQmVydHJhbVwiLFxuICAgIFwiQmVydHJhbmRcIixcbiAgICBcIkJlcnlsXCIsXG4gICAgXCJCZXNzaWVcIixcbiAgICBcIkJldGhcIixcbiAgICBcIkJldGhhbnlcIixcbiAgICBcIkJldGhlbFwiLFxuICAgIFwiQmV0c3lcIixcbiAgICBcIkJldHRlXCIsXG4gICAgXCJCZXR0aWVcIixcbiAgICBcIkJldHR5XCIsXG4gICAgXCJCZXR0eWVcIixcbiAgICBcIkJldWxhaFwiLFxuICAgIFwiQmV2ZXJseVwiLFxuICAgIFwiQmlhbmthXCIsXG4gICAgXCJCaWxsXCIsXG4gICAgXCJCaWxsaWVcIixcbiAgICBcIkJpbGx5XCIsXG4gICAgXCJCaXJkaWVcIixcbiAgICBcIkJsYWlyXCIsXG4gICAgXCJCbGFpc2VcIixcbiAgICBcIkJsYWtlXCIsXG4gICAgXCJCbGFuY2FcIixcbiAgICBcIkJsYW5jaGVcIixcbiAgICBcIkJsYXplXCIsXG4gICAgXCJCb1wiLFxuICAgIFwiQm9iYmllXCIsXG4gICAgXCJCb2JieVwiLFxuICAgIFwiQm9uaXRhXCIsXG4gICAgXCJCb25uaWVcIixcbiAgICBcIkJvcmlzXCIsXG4gICAgXCJCb3lkXCIsXG4gICAgXCJCcmFkXCIsXG4gICAgXCJCcmFkZW5cIixcbiAgICBcIkJyYWRmb3JkXCIsXG4gICAgXCJCcmFkbGV5XCIsXG4gICAgXCJCcmFkbHlcIixcbiAgICBcIkJyYWR5XCIsXG4gICAgXCJCcmFlZGVuXCIsXG4gICAgXCJCcmFpblwiLFxuICAgIFwiQnJhbmRpXCIsXG4gICAgXCJCcmFuZG9cIixcbiAgICBcIkJyYW5kb25cIixcbiAgICBcIkJyYW5kdFwiLFxuICAgIFwiQnJhbmR5XCIsXG4gICAgXCJCcmFuZHluXCIsXG4gICAgXCJCcmFubm9uXCIsXG4gICAgXCJCcmFuc29uXCIsXG4gICAgXCJCcmFudFwiLFxuICAgIFwiQnJhdWxpb1wiLFxuICAgIFwiQnJheHRvblwiLFxuICAgIFwiQnJheWFuXCIsXG4gICAgXCJCcmVhbmFcIixcbiAgICBcIkJyZWFubmFcIixcbiAgICBcIkJyZWFubmVcIixcbiAgICBcIkJyZW5kYVwiLFxuICAgIFwiQnJlbmRhblwiLFxuICAgIFwiQnJlbmRlblwiLFxuICAgIFwiQnJlbmRvblwiLFxuICAgIFwiQnJlbm5hXCIsXG4gICAgXCJCcmVubmFuXCIsXG4gICAgXCJCcmVubm9uXCIsXG4gICAgXCJCcmVudFwiLFxuICAgIFwiQnJldFwiLFxuICAgIFwiQnJldHRcIixcbiAgICBcIkJyaWFcIixcbiAgICBcIkJyaWFuXCIsXG4gICAgXCJCcmlhbmFcIixcbiAgICBcIkJyaWFubmVcIixcbiAgICBcIkJyaWNlXCIsXG4gICAgXCJCcmlkZ2V0XCIsXG4gICAgXCJCcmlkZ2V0dGVcIixcbiAgICBcIkJyaWRpZVwiLFxuICAgIFwiQnJpZWxsZVwiLFxuICAgIFwiQnJpZ2l0dGVcIixcbiAgICBcIkJyaW9ubmFcIixcbiAgICBcIkJyaXNhXCIsXG4gICAgXCJCcml0bmV5XCIsXG4gICAgXCJCcml0dGFueVwiLFxuICAgIFwiQnJvY2tcIixcbiAgICBcIkJyb2Rlcmlja1wiLFxuICAgIFwiQnJvZHlcIixcbiAgICBcIkJyb29rXCIsXG4gICAgXCJCcm9va2VcIixcbiAgICBcIkJyb29rbHluXCIsXG4gICAgXCJCcm9va3NcIixcbiAgICBcIkJyb3duXCIsXG4gICAgXCJCcnVjZVwiLFxuICAgIFwiQnJ5YW5hXCIsXG4gICAgXCJCcnljZVwiLFxuICAgIFwiQnJ5Y2VuXCIsXG4gICAgXCJCcnlvblwiLFxuICAgIFwiQnVja1wiLFxuICAgIFwiQnVkXCIsXG4gICAgXCJCdWRkeVwiLFxuICAgIFwiQnVmb3JkXCIsXG4gICAgXCJCdWxhaFwiLFxuICAgIFwiQnVyZGV0dGVcIixcbiAgICBcIkJ1cmxleVwiLFxuICAgIFwiQnVybmljZVwiLFxuICAgIFwiQnVzdGVyXCIsXG4gICAgXCJDYWRlXCIsXG4gICAgXCJDYWRlblwiLFxuICAgIFwiQ2Flc2FyXCIsXG4gICAgXCJDYWl0bHluXCIsXG4gICAgXCJDYWxlXCIsXG4gICAgXCJDYWxlYlwiLFxuICAgIFwiQ2FsZWlnaFwiLFxuICAgIFwiQ2FsaVwiLFxuICAgIFwiQ2FsaXN0YVwiLFxuICAgIFwiQ2FsbGllXCIsXG4gICAgXCJDYW1kZW5cIixcbiAgICBcIkNhbWVyb25cIixcbiAgICBcIkNhbWlsYVwiLFxuICAgIFwiQ2FtaWxsYVwiLFxuICAgIFwiQ2FtaWxsZVwiLFxuICAgIFwiQ2FtcmVuXCIsXG4gICAgXCJDYW1yb25cIixcbiAgICBcIkNhbXJ5blwiLFxuICAgIFwiQ2FteWxsZVwiLFxuICAgIFwiQ2FuZGFjZVwiLFxuICAgIFwiQ2FuZGVsYXJpb1wiLFxuICAgIFwiQ2FuZGljZVwiLFxuICAgIFwiQ2FuZGlkYVwiLFxuICAgIFwiQ2FuZGlkb1wiLFxuICAgIFwiQ2FyYVwiLFxuICAgIFwiQ2FyZXlcIixcbiAgICBcIkNhcmlzc2FcIixcbiAgICBcIkNhcmxlZVwiLFxuICAgIFwiQ2FybGV0b25cIixcbiAgICBcIkNhcmxleVwiLFxuICAgIFwiQ2FybGlcIixcbiAgICBcIkNhcmxpZVwiLFxuICAgIFwiQ2FybG9cIixcbiAgICBcIkNhcmxvc1wiLFxuICAgIFwiQ2FybG90dGFcIixcbiAgICBcIkNhcm1lbFwiLFxuICAgIFwiQ2FybWVsYVwiLFxuICAgIFwiQ2FybWVsbGFcIixcbiAgICBcIkNhcm1lbG9cIixcbiAgICBcIkNhcm1lblwiLFxuICAgIFwiQ2FybWluZVwiLFxuICAgIFwiQ2Fyb2xcIixcbiAgICBcIkNhcm9sYW5uZVwiLFxuICAgIFwiQ2Fyb2xlXCIsXG4gICAgXCJDYXJvbGluYVwiLFxuICAgIFwiQ2Fyb2xpbmVcIixcbiAgICBcIkNhcm9seW5cIixcbiAgICBcIkNhcm9seW5lXCIsXG4gICAgXCJDYXJyaWVcIixcbiAgICBcIkNhcnJvbGxcIixcbiAgICBcIkNhcnNvblwiLFxuICAgIFwiQ2FydGVyXCIsXG4gICAgXCJDYXJ5XCIsXG4gICAgXCJDYXNhbmRyYVwiLFxuICAgIFwiQ2FzZXlcIixcbiAgICBcIkNhc2ltZXJcIixcbiAgICBcIkNhc2ltaXJcIixcbiAgICBcIkNhc3BlclwiLFxuICAgIFwiQ2Fzc2FuZHJhXCIsXG4gICAgXCJDYXNzYW5kcmVcIixcbiAgICBcIkNhc3NpZHlcIixcbiAgICBcIkNhc3NpZVwiLFxuICAgIFwiQ2F0YWxpbmFcIixcbiAgICBcIkNhdGVyaW5hXCIsXG4gICAgXCJDYXRoYXJpbmVcIixcbiAgICBcIkNhdGhlcmluZVwiLFxuICAgIFwiQ2F0aHJpbmVcIixcbiAgICBcIkNhdGhyeW5cIixcbiAgICBcIkNhdGh5XCIsXG4gICAgXCJDYXlsYVwiLFxuICAgIFwiQ2Vhc2FyXCIsXG4gICAgXCJDZWNlbGlhXCIsXG4gICAgXCJDZWNpbFwiLFxuICAgIFwiQ2VjaWxlXCIsXG4gICAgXCJDZWNpbGlhXCIsXG4gICAgXCJDZWRyaWNrXCIsXG4gICAgXCJDZWxlc3RpbmVcIixcbiAgICBcIkNlbGVzdGlub1wiLFxuICAgIFwiQ2VsaWFcIixcbiAgICBcIkNlbGluZVwiLFxuICAgIFwiQ2VzYXJcIixcbiAgICBcIkNoYWRcIixcbiAgICBcIkNoYWRkXCIsXG4gICAgXCJDaGFkcmlja1wiLFxuICAgIFwiQ2hhaW1cIixcbiAgICBcIkNoYW5jZVwiLFxuICAgIFwiQ2hhbmRsZXJcIixcbiAgICBcIkNoYW5lbFwiLFxuICAgIFwiQ2hhbmVsbGVcIixcbiAgICBcIkNoYXJpdHlcIixcbiAgICBcIkNoYXJsZW5lXCIsXG4gICAgXCJDaGFybGVzXCIsXG4gICAgXCJDaGFybGV5XCIsXG4gICAgXCJDaGFybGllXCIsXG4gICAgXCJDaGFybG90dGVcIixcbiAgICBcIkNoYXNlXCIsXG4gICAgXCJDaGFzaXR5XCIsXG4gICAgXCJDaGF1bmNleVwiLFxuICAgIFwiQ2hheWFcIixcbiAgICBcIkNoYXpcIixcbiAgICBcIkNoZWxzZWFcIixcbiAgICBcIkNoZWxzZXlcIixcbiAgICBcIkNoZWxzaWVcIixcbiAgICBcIkNoZXNsZXlcIixcbiAgICBcIkNoZXN0ZXJcIixcbiAgICBcIkNoZXRcIixcbiAgICBcIkNoZXlhbm5lXCIsXG4gICAgXCJDaGV5ZW5uZVwiLFxuICAgIFwiQ2hsb2VcIixcbiAgICBcIkNocmlzXCIsXG4gICAgXCJDaHJpc3RcIixcbiAgICBcIkNocmlzdGFcIixcbiAgICBcIkNocmlzdGVsbGVcIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiQ2hyaXN0aWFuYVwiLFxuICAgIFwiQ2hyaXN0aW5hXCIsXG4gICAgXCJDaHJpc3RpbmVcIixcbiAgICBcIkNocmlzdG9wXCIsXG4gICAgXCJDaHJpc3RvcGhlXCIsXG4gICAgXCJDaHJpc3RvcGhlclwiLFxuICAgIFwiQ2hyaXN0eVwiLFxuICAgIFwiQ2h5bmFcIixcbiAgICBcIkNpYXJhXCIsXG4gICAgXCJDaWNlcm9cIixcbiAgICBcIkNpZWxvXCIsXG4gICAgXCJDaWVycmFcIixcbiAgICBcIkNpbmR5XCIsXG4gICAgXCJDaXRsYWxsaVwiLFxuICAgIFwiQ2xhaXJcIixcbiAgICBcIkNsYWlyZVwiLFxuICAgIFwiQ2xhcmFcIixcbiAgICBcIkNsYXJhYmVsbGVcIixcbiAgICBcIkNsYXJlXCIsXG4gICAgXCJDbGFyaXNzYVwiLFxuICAgIFwiQ2xhcmtcIixcbiAgICBcIkNsYXVkXCIsXG4gICAgXCJDbGF1ZGVcIixcbiAgICBcIkNsYXVkaWFcIixcbiAgICBcIkNsYXVkaWVcIixcbiAgICBcIkNsYXVkaW5lXCIsXG4gICAgXCJDbGF5XCIsXG4gICAgXCJDbGVtZW5zXCIsXG4gICAgXCJDbGVtZW50XCIsXG4gICAgXCJDbGVtZW50aW5hXCIsXG4gICAgXCJDbGVtZW50aW5lXCIsXG4gICAgXCJDbGVtbWllXCIsXG4gICAgXCJDbGVvXCIsXG4gICAgXCJDbGVvcmFcIixcbiAgICBcIkNsZXRhXCIsXG4gICAgXCJDbGV0dXNcIixcbiAgICBcIkNsZXZlXCIsXG4gICAgXCJDbGV2ZWxhbmRcIixcbiAgICBcIkNsaWZmb3JkXCIsXG4gICAgXCJDbGlmdG9uXCIsXG4gICAgXCJDbGludFwiLFxuICAgIFwiQ2xpbnRvblwiLFxuICAgIFwiQ2xvdGlsZGVcIixcbiAgICBcIkNsb3Zpc1wiLFxuICAgIFwiQ2xveWRcIixcbiAgICBcIkNseWRlXCIsXG4gICAgXCJDb2J5XCIsXG4gICAgXCJDb2R5XCIsXG4gICAgXCJDb2xieVwiLFxuICAgIFwiQ29sZVwiLFxuICAgIFwiQ29sZW1hblwiLFxuICAgIFwiQ29saW5cIixcbiAgICBcIkNvbGxlZW5cIixcbiAgICBcIkNvbGxpblwiLFxuICAgIFwiQ29sdFwiLFxuICAgIFwiQ29sdGVuXCIsXG4gICAgXCJDb2x0b25cIixcbiAgICBcIkNvbHVtYnVzXCIsXG4gICAgXCJDb25jZXBjaW9uXCIsXG4gICAgXCJDb25uZXJcIixcbiAgICBcIkNvbm5pZVwiLFxuICAgIFwiQ29ubm9yXCIsXG4gICAgXCJDb25vclwiLFxuICAgIFwiQ29ucmFkXCIsXG4gICAgXCJDb25zdGFuY2VcIixcbiAgICBcIkNvbnN0YW50aW5cIixcbiAgICBcIkNvbnN1ZWxvXCIsXG4gICAgXCJDb29wZXJcIixcbiAgICBcIkNvcmFcIixcbiAgICBcIkNvcmFsaWVcIixcbiAgICBcIkNvcmJpblwiLFxuICAgIFwiQ29yZGVsaWFcIixcbiAgICBcIkNvcmRlbGxcIixcbiAgICBcIkNvcmRpYVwiLFxuICAgIFwiQ29yZGllXCIsXG4gICAgXCJDb3JlbmVcIixcbiAgICBcIkNvcmluZVwiLFxuICAgIFwiQ29ybmVsaXVzXCIsXG4gICAgXCJDb3JuZWxsXCIsXG4gICAgXCJDb3JyaW5lXCIsXG4gICAgXCJDb3J0ZXpcIixcbiAgICBcIkNvcnRuZXlcIixcbiAgICBcIkNvcnlcIixcbiAgICBcIkNvdHlcIixcbiAgICBcIkNvdXJ0bmV5XCIsXG4gICAgXCJDb3lcIixcbiAgICBcIkNyYWlnXCIsXG4gICAgXCJDcmF3Zm9yZFwiLFxuICAgIFwiQ3Jlb2xhXCIsXG4gICAgXCJDcmlzdGFsXCIsXG4gICAgXCJDcmlzdGlhblwiLFxuICAgIFwiQ3Jpc3RpbmFcIixcbiAgICBcIkNyaXN0b2JhbFwiLFxuICAgIFwiQ3Jpc3RvcGhlclwiLFxuICAgIFwiQ3J1elwiLFxuICAgIFwiQ3J5c3RhbFwiLFxuICAgIFwiQ3J5c3RlbFwiLFxuICAgIFwiQ3VsbGVuXCIsXG4gICAgXCJDdXJ0XCIsXG4gICAgXCJDdXJ0aXNcIixcbiAgICBcIkN5ZG5leVwiLFxuICAgIFwiQ3ludGhpYVwiLFxuICAgIFwiQ3lyaWxcIixcbiAgICBcIkN5cnVzXCIsXG4gICAgXCJEYWdtYXJcIixcbiAgICBcIkRhaGxpYVwiLFxuICAgIFwiRGFpamFcIixcbiAgICBcIkRhaXNoYVwiLFxuICAgIFwiRGFpc3lcIixcbiAgICBcIkRha290YVwiLFxuICAgIFwiRGFsZVwiLFxuICAgIFwiRGFsbGFzXCIsXG4gICAgXCJEYWxsaW5cIixcbiAgICBcIkRhbHRvblwiLFxuICAgIFwiRGFtYXJpc1wiLFxuICAgIFwiRGFtZW9uXCIsXG4gICAgXCJEYW1pYW5cIixcbiAgICBcIkRhbWllblwiLFxuICAgIFwiRGFtaW9uXCIsXG4gICAgXCJEYW1vblwiLFxuICAgIFwiRGFuXCIsXG4gICAgXCJEYW5hXCIsXG4gICAgXCJEYW5kcmVcIixcbiAgICBcIkRhbmVcIixcbiAgICBcIkQnYW5nZWxvXCIsXG4gICAgXCJEYW5nZWxvXCIsXG4gICAgXCJEYW5pYWxcIixcbiAgICBcIkRhbmllbGFcIixcbiAgICBcIkRhbmllbGxhXCIsXG4gICAgXCJEYW5pZWxsZVwiLFxuICAgIFwiRGFuaWthXCIsXG4gICAgXCJEYW5uaWVcIixcbiAgICBcIkRhbm55XCIsXG4gICAgXCJEYW50ZVwiLFxuICAgIFwiRGFueWthXCIsXG4gICAgXCJEYXBobmVcIixcbiAgICBcIkRhcGhuZWVcIixcbiAgICBcIkRhcGhuZXlcIixcbiAgICBcIkRhcmJ5XCIsXG4gICAgXCJEYXJlblwiLFxuICAgIFwiRGFyaWFuXCIsXG4gICAgXCJEYXJpYW5hXCIsXG4gICAgXCJEYXJpZW5cIixcbiAgICBcIkRhcmlvXCIsXG4gICAgXCJEYXJpb25cIixcbiAgICBcIkRhcml1c1wiLFxuICAgIFwiRGFybGVuZVwiLFxuICAgIFwiRGFyb25cIixcbiAgICBcIkRhcnJlbFwiLFxuICAgIFwiRGFycmVsbFwiLFxuICAgIFwiRGFycmVuXCIsXG4gICAgXCJEYXJyaWNrXCIsXG4gICAgXCJEYXJyaW5cIixcbiAgICBcIkRhcnJpb25cIixcbiAgICBcIkRhcnJvblwiLFxuICAgIFwiRGFycnlsXCIsXG4gICAgXCJEYXJ3aW5cIixcbiAgICBcIkRhcnlsXCIsXG4gICAgXCJEYXNoYXduXCIsXG4gICAgXCJEYXNpYVwiLFxuICAgIFwiRGF2ZVwiLFxuICAgIFwiRGF2aWRcIixcbiAgICBcIkRhdmluXCIsXG4gICAgXCJEYXZpb25cIixcbiAgICBcIkRhdm9uXCIsXG4gICAgXCJEYXZvbnRlXCIsXG4gICAgXCJEYXduXCIsXG4gICAgXCJEYXdzb25cIixcbiAgICBcIkRheFwiLFxuICAgIFwiRGF5YW5hXCIsXG4gICAgXCJEYXluYVwiLFxuICAgIFwiRGF5bmVcIixcbiAgICBcIkRheXRvblwiLFxuICAgIFwiRGVhblwiLFxuICAgIFwiRGVhbmdlbG9cIixcbiAgICBcIkRlYW5uYVwiLFxuICAgIFwiRGVib3JhaFwiLFxuICAgIFwiRGVjbGFuXCIsXG4gICAgXCJEZWRyaWNcIixcbiAgICBcIkRlZHJpY2tcIixcbiAgICBcIkRlZVwiLFxuICAgIFwiRGVpb25cIixcbiAgICBcIkRlamFcIixcbiAgICBcIkRlamFoXCIsXG4gICAgXCJEZWpvblwiLFxuICAgIFwiRGVqdWFuXCIsXG4gICAgXCJEZWxhbmV5XCIsXG4gICAgXCJEZWxiZXJ0XCIsXG4gICAgXCJEZWxmaW5hXCIsXG4gICAgXCJEZWxpYVwiLFxuICAgIFwiRGVsaWxhaFwiLFxuICAgIFwiRGVsbFwiLFxuICAgIFwiRGVsbGFcIixcbiAgICBcIkRlbG1lclwiLFxuICAgIFwiRGVsb3Jlc1wiLFxuICAgIFwiRGVscGhhXCIsXG4gICAgXCJEZWxwaGlhXCIsXG4gICAgXCJEZWxwaGluZVwiLFxuICAgIFwiRGVsdGFcIixcbiAgICBcIkRlbWFyY29cIixcbiAgICBcIkRlbWFyY3VzXCIsXG4gICAgXCJEZW1hcmlvXCIsXG4gICAgXCJEZW1ldHJpc1wiLFxuICAgIFwiRGVtZXRyaXVzXCIsXG4gICAgXCJEZW1vbmRcIixcbiAgICBcIkRlbmFcIixcbiAgICBcIkRlbmlzXCIsXG4gICAgXCJEZW5uaXNcIixcbiAgICBcIkRlb25cIixcbiAgICBcIkRlb25kcmVcIixcbiAgICBcIkRlb250YWVcIixcbiAgICBcIkRlb250ZVwiLFxuICAgIFwiRGVyZWNrXCIsXG4gICAgXCJEZXJla1wiLFxuICAgIFwiRGVyaWNrXCIsXG4gICAgXCJEZXJvblwiLFxuICAgIFwiRGVycmlja1wiLFxuICAgIFwiRGVzaGF1blwiLFxuICAgIFwiRGVzaGF3blwiLFxuICAgIFwiRGVzaXJlZVwiLFxuICAgIFwiRGVzbW9uZFwiLFxuICAgIFwiRGVzc2llXCIsXG4gICAgXCJEZXN0YW55XCIsXG4gICAgXCJEZXN0aW5cIixcbiAgICBcIkRlc3RpbmVlXCIsXG4gICAgXCJEZXN0aW5leVwiLFxuICAgIFwiRGVzdGluaVwiLFxuICAgIFwiRGVzdGlueVwiLFxuICAgIFwiRGV2YW5cIixcbiAgICBcIkRldmFudGVcIixcbiAgICBcIkRldmVuXCIsXG4gICAgXCJEZXZpblwiLFxuICAgIFwiRGV2b25cIixcbiAgICBcIkRldm9udGVcIixcbiAgICBcIkRldnluXCIsXG4gICAgXCJEZXdheW5lXCIsXG4gICAgXCJEZXdpdHRcIixcbiAgICBcIkRleHRlclwiLFxuICAgIFwiRGlhbW9uZFwiLFxuICAgIFwiRGlhbmFcIixcbiAgICBcIkRpYW5uYVwiLFxuICAgIFwiRGllZ29cIixcbiAgICBcIkRpbGxhblwiLFxuICAgIFwiRGlsbG9uXCIsXG4gICAgXCJEaW1pdHJpXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEaW5vXCIsXG4gICAgXCJEaW9uXCIsXG4gICAgXCJEaXhpZVwiLFxuICAgIFwiRG9ja1wiLFxuICAgIFwiRG9sbHlcIixcbiAgICBcIkRvbG9yZXNcIixcbiAgICBcIkRvbWVuaWNcIixcbiAgICBcIkRvbWVuaWNhXCIsXG4gICAgXCJEb21lbmlja1wiLFxuICAgIFwiRG9tZW5pY29cIixcbiAgICBcIkRvbWluZ29cIixcbiAgICBcIkRvbWluaWNcIixcbiAgICBcIkRvbWluaXF1ZVwiLFxuICAgIFwiRG9uXCIsXG4gICAgXCJEb25hbGRcIixcbiAgICBcIkRvbmF0b1wiLFxuICAgIFwiRG9uYXZvblwiLFxuICAgIFwiRG9ubmFcIixcbiAgICBcIkRvbm5lbGxcIixcbiAgICBcIkRvbm5pZVwiLFxuICAgIFwiRG9ubnlcIixcbiAgICBcIkRvcmFcIixcbiAgICBcIkRvcmNhc1wiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJEb3Jpc1wiLFxuICAgIFwiRG9yb3RoZWFcIixcbiAgICBcIkRvcm90aHlcIixcbiAgICBcIkRvcnJpc1wiLFxuICAgIFwiRG9ydGhhXCIsXG4gICAgXCJEb3J0aHlcIixcbiAgICBcIkRvdWdcIixcbiAgICBcIkRvdWdsYXNcIixcbiAgICBcIkRvdmllXCIsXG4gICAgXCJEb3lsZVwiLFxuICAgIFwiRHJha2VcIixcbiAgICBcIkRyZXdcIixcbiAgICBcIkR1YW5lXCIsXG4gICAgXCJEdWRsZXlcIixcbiAgICBcIkR1bGNlXCIsXG4gICAgXCJEdW5jYW5cIixcbiAgICBcIkR1cndhcmRcIixcbiAgICBcIkR1c3RpblwiLFxuICAgIFwiRHVzdHlcIixcbiAgICBcIkR3aWdodFwiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIkVhcmxcIixcbiAgICBcIkVhcmxlbmVcIixcbiAgICBcIkVhcmxpbmVcIixcbiAgICBcIkVhcm5lc3RcIixcbiAgICBcIkVhcm5lc3RpbmVcIixcbiAgICBcIkVhc3RlclwiLFxuICAgIFwiRWFzdG9uXCIsXG4gICAgXCJFYmJhXCIsXG4gICAgXCJFYm9ueVwiLFxuICAgIFwiRWRcIixcbiAgICBcIkVkYVwiLFxuICAgIFwiRWRkXCIsXG4gICAgXCJFZGRpZVwiLFxuICAgIFwiRWRlblwiLFxuICAgIFwiRWRnYXJcIixcbiAgICBcIkVkZ2FyZG9cIixcbiAgICBcIkVkaXNvblwiLFxuICAgIFwiRWRtb25kXCIsXG4gICAgXCJFZG11bmRcIixcbiAgICBcIkVkbmFcIixcbiAgICBcIkVkdWFyZG9cIixcbiAgICBcIkVkd2FyZFwiLFxuICAgIFwiRWR3YXJkb1wiLFxuICAgIFwiRWR3aW5cIixcbiAgICBcIkVkd2luYVwiLFxuICAgIFwiRWR5dGhcIixcbiAgICBcIkVkeXRoZVwiLFxuICAgIFwiRWZmaWVcIixcbiAgICBcIkVmcmFpblwiLFxuICAgIFwiRWZyZW5cIixcbiAgICBcIkVpbGVlblwiLFxuICAgIFwiRWluYXJcIixcbiAgICBcIkVpbm9cIixcbiAgICBcIkVsYWRpb1wiLFxuICAgIFwiRWxhaW5hXCIsXG4gICAgXCJFbGJlcnRcIixcbiAgICBcIkVsZGFcIixcbiAgICBcIkVsZG9uXCIsXG4gICAgXCJFbGRvcmFcIixcbiAgICBcIkVsZHJlZFwiLFxuICAgIFwiRWxkcmlkZ2VcIixcbiAgICBcIkVsZWFub3JhXCIsXG4gICAgXCJFbGVhbm9yZVwiLFxuICAgIFwiRWxlYXphclwiLFxuICAgIFwiRWxlY3RhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxlbm9yXCIsXG4gICAgXCJFbGVub3JhXCIsXG4gICAgXCJFbGVvbm9yZVwiLFxuICAgIFwiRWxmcmllZGFcIixcbiAgICBcIkVsaVwiLFxuICAgIFwiRWxpYW5cIixcbiAgICBcIkVsaWFuZVwiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkVsaWV6ZXJcIixcbiAgICBcIkVsaWphaFwiLFxuICAgIFwiRWxpbm9yXCIsXG4gICAgXCJFbGlub3JlXCIsXG4gICAgXCJFbGlzYVwiLFxuICAgIFwiRWxpc2FiZXRoXCIsXG4gICAgXCJFbGlzZVwiLFxuICAgIFwiRWxpc2VvXCIsXG4gICAgXCJFbGlzaGFcIixcbiAgICBcIkVsaXNzYVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIkVsaXphYmV0aFwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiRWxsZW5cIixcbiAgICBcIkVsbGllXCIsXG4gICAgXCJFbGxpb3RcIixcbiAgICBcIkVsbGlvdHRcIixcbiAgICBcIkVsbGlzXCIsXG4gICAgXCJFbGxzd29ydGhcIixcbiAgICBcIkVsbWVyXCIsXG4gICAgXCJFbG1pcmFcIixcbiAgICBcIkVsbW9cIixcbiAgICBcIkVsbW9yZVwiLFxuICAgIFwiRWxuYVwiLFxuICAgIFwiRWxub3JhXCIsXG4gICAgXCJFbG9keVwiLFxuICAgIFwiRWxvaXNhXCIsXG4gICAgXCJFbG9pc2VcIixcbiAgICBcIkVsb3Vpc2VcIixcbiAgICBcIkVsb3lcIixcbiAgICBcIkVscm95XCIsXG4gICAgXCJFbHNhXCIsXG4gICAgXCJFbHNlXCIsXG4gICAgXCJFbHNpZVwiLFxuICAgIFwiRWx0YVwiLFxuICAgIFwiRWx0b25cIixcbiAgICBcIkVsdmFcIixcbiAgICBcIkVsdmVyYVwiLFxuICAgIFwiRWx2aWVcIixcbiAgICBcIkVsdmlzXCIsXG4gICAgXCJFbHdpblwiLFxuICAgIFwiRWx3eW5cIixcbiAgICBcIkVseXNlXCIsXG4gICAgXCJFbHlzc2FcIixcbiAgICBcIkVsemFcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVtZWxpYVwiLFxuICAgIFwiRW1lbGllXCIsXG4gICAgXCJFbWVseVwiLFxuICAgIFwiRW1lcmFsZFwiLFxuICAgIFwiRW1lcnNvblwiLFxuICAgIFwiRW1lcnlcIixcbiAgICBcIkVtaWVcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtaWxlXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVtaWxpYW5vXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkVtaWxpb1wiLFxuICAgIFwiRW1pbHlcIixcbiAgICBcIkVtbWFcIixcbiAgICBcIkVtbWFsZWVcIixcbiAgICBcIkVtbWFudWVsXCIsXG4gICAgXCJFbW1hbnVlbGxlXCIsXG4gICAgXCJFbW1ldFwiLFxuICAgIFwiRW1tZXR0XCIsXG4gICAgXCJFbW1pZVwiLFxuICAgIFwiRW1taXR0XCIsXG4gICAgXCJFbW15XCIsXG4gICAgXCJFbW9yeVwiLFxuICAgIFwiRW5hXCIsXG4gICAgXCJFbmlkXCIsXG4gICAgXCJFbm9jaFwiLFxuICAgIFwiRW5vbGFcIixcbiAgICBcIkVub3NcIixcbiAgICBcIkVucmljb1wiLFxuICAgIFwiRW5yaXF1ZVwiLFxuICAgIFwiRXBocmFpbVwiLFxuICAgIFwiRXJhXCIsXG4gICAgXCJFcmliZXJ0b1wiLFxuICAgIFwiRXJpY1wiLFxuICAgIFwiRXJpY2FcIixcbiAgICBcIkVyaWNoXCIsXG4gICAgXCJFcmlja1wiLFxuICAgIFwiRXJpY2thXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJFcmlrYVwiLFxuICAgIFwiRXJpblwiLFxuICAgIFwiRXJsaW5nXCIsXG4gICAgXCJFcm5hXCIsXG4gICAgXCJFcm5lc3RcIixcbiAgICBcIkVybmVzdGluYVwiLFxuICAgIFwiRXJuZXN0aW5lXCIsXG4gICAgXCJFcm5lc3RvXCIsXG4gICAgXCJFcm5pZVwiLFxuICAgIFwiRXJ2aW5cIixcbiAgICBcIkVyd2luXCIsXG4gICAgXCJFcnluXCIsXG4gICAgXCJFc21lcmFsZGFcIixcbiAgICBcIkVzcGVyYW56YVwiLFxuICAgIFwiRXN0YVwiLFxuICAgIFwiRXN0ZWJhblwiLFxuICAgIFwiRXN0ZWZhbmlhXCIsXG4gICAgXCJFc3RlbFwiLFxuICAgIFwiRXN0ZWxsXCIsXG4gICAgXCJFc3RlbGxhXCIsXG4gICAgXCJFc3RlbGxlXCIsXG4gICAgXCJFc3RldmFuXCIsXG4gICAgXCJFc3RoZXJcIixcbiAgICBcIkVzdHJlbGxhXCIsXG4gICAgXCJFdGhhXCIsXG4gICAgXCJFdGhhblwiLFxuICAgIFwiRXRoZWxcIixcbiAgICBcIkV0aGVseW5cIixcbiAgICBcIkV0aHlsXCIsXG4gICAgXCJFdHRpZVwiLFxuICAgIFwiRXVkb3JhXCIsXG4gICAgXCJFdWdlbmVcIixcbiAgICBcIkV1Z2VuaWFcIixcbiAgICBcIkV1bGFcIixcbiAgICBcIkV1bGFoXCIsXG4gICAgXCJFdWxhbGlhXCIsXG4gICAgXCJFdW5hXCIsXG4gICAgXCJFdW5pY2VcIixcbiAgICBcIkV1c2ViaW9cIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRXZhbHluXCIsXG4gICAgXCJFdmFuXCIsXG4gICAgXCJFdmFuZ2VsaW5lXCIsXG4gICAgXCJFdmFuc1wiLFxuICAgIFwiRXZlXCIsXG4gICAgXCJFdmVsaW5lXCIsXG4gICAgXCJFdmVseW5cIixcbiAgICBcIkV2ZXJhcmRvXCIsXG4gICAgXCJFdmVyZXR0XCIsXG4gICAgXCJFdmVyZXR0ZVwiLFxuICAgIFwiRXZlcnRcIixcbiAgICBcIkV2aWVcIixcbiAgICBcIkV3YWxkXCIsXG4gICAgXCJFd2VsbFwiLFxuICAgIFwiRXpla2llbFwiLFxuICAgIFwiRXplcXVpZWxcIixcbiAgICBcIkV6cmFcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmFiaW9sYVwiLFxuICAgIFwiRmFlXCIsXG4gICAgXCJGYW5uaWVcIixcbiAgICBcIkZhbm55XCIsXG4gICAgXCJGYXRpbWFcIixcbiAgICBcIkZhdXN0aW5vXCIsXG4gICAgXCJGYXVzdG9cIixcbiAgICBcIkZhdmlhblwiLFxuICAgIFwiRmF5XCIsXG4gICAgXCJGYXllXCIsXG4gICAgXCJGZWRlcmljb1wiLFxuICAgIFwiRmVsaWNpYVwiLFxuICAgIFwiRmVsaWNpdGFcIixcbiAgICBcIkZlbGljaXR5XCIsXG4gICAgXCJGZWxpcGFcIixcbiAgICBcIkZlbGlwZVwiLFxuICAgIFwiRmVsaXhcIixcbiAgICBcIkZlbHRvblwiLFxuICAgIFwiRmVybWluXCIsXG4gICAgXCJGZXJuXCIsXG4gICAgXCJGZXJuYW5kb1wiLFxuICAgIFwiRmVybmVcIixcbiAgICBcIkZpZGVsXCIsXG4gICAgXCJGaWxpYmVydG9cIixcbiAgICBcIkZpbG9tZW5hXCIsXG4gICAgXCJGaW5uXCIsXG4gICAgXCJGaW9uYVwiLFxuICAgIFwiRmxhdmllXCIsXG4gICAgXCJGbGF2aW9cIixcbiAgICBcIkZsZXRhXCIsXG4gICAgXCJGbGV0Y2hlclwiLFxuICAgIFwiRmxvXCIsXG4gICAgXCJGbG9yZW5jZVwiLFxuICAgIFwiRmxvcmVuY2lvXCIsXG4gICAgXCJGbG9yaWFuXCIsXG4gICAgXCJGbG9yaWRhXCIsXG4gICAgXCJGbG9yaW5lXCIsXG4gICAgXCJGbG9zc2llXCIsXG4gICAgXCJGbG95XCIsXG4gICAgXCJGbG95ZFwiLFxuICAgIFwiRm9yZFwiLFxuICAgIFwiRm9yZXN0XCIsXG4gICAgXCJGb3JyZXN0XCIsXG4gICAgXCJGb3N0ZXJcIixcbiAgICBcIkZyYW5jZXNcIixcbiAgICBcIkZyYW5jZXNjYVwiLFxuICAgIFwiRnJhbmNlc2NvXCIsXG4gICAgXCJGcmFuY2lzXCIsXG4gICAgXCJGcmFuY2lzY2FcIixcbiAgICBcIkZyYW5jaXNjb1wiLFxuICAgIFwiRnJhbmNvXCIsXG4gICAgXCJGcmFua1wiLFxuICAgIFwiRnJhbmtpZVwiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyZWRcIixcbiAgICBcIkZyZWRhXCIsXG4gICAgXCJGcmVkZGllXCIsXG4gICAgXCJGcmVkZHlcIixcbiAgICBcIkZyZWRlcmljXCIsXG4gICAgXCJGcmVkZXJpY2tcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJGcmVkZXJpcXVlXCIsXG4gICAgXCJGcmVkcmlja1wiLFxuICAgIFwiRnJlZHlcIixcbiAgICBcIkZyZWVkYVwiLFxuICAgIFwiRnJlZW1hblwiLFxuICAgIFwiRnJlaWRhXCIsXG4gICAgXCJGcmlkYVwiLFxuICAgIFwiRnJpZWRhXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaXR6XCIsXG4gICAgXCJGdXJtYW5cIixcbiAgICBcIkdhYmVcIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdhYnJpZWxsYVwiLFxuICAgIFwiR2FicmllbGxlXCIsXG4gICAgXCJHYWV0YW5vXCIsXG4gICAgXCJHYWdlXCIsXG4gICAgXCJHYWlsXCIsXG4gICAgXCJHYXJkbmVyXCIsXG4gICAgXCJHYXJldHRcIixcbiAgICBcIkdhcmZpZWxkXCIsXG4gICAgXCJHYXJsYW5kXCIsXG4gICAgXCJHYXJuZXRcIixcbiAgICBcIkdhcm5ldHRcIixcbiAgICBcIkdhcnJldFwiLFxuICAgIFwiR2FycmV0dFwiLFxuICAgIFwiR2Fycmlja1wiLFxuICAgIFwiR2Fycmlzb25cIixcbiAgICBcIkdhcnJ5XCIsXG4gICAgXCJHYXJ0aFwiLFxuICAgIFwiR2FzdG9uXCIsXG4gICAgXCJHYXZpblwiLFxuICAgIFwiR2F5XCIsXG4gICAgXCJHYXlsZVwiLFxuICAgIFwiR2F5bG9yZFwiLFxuICAgIFwiR2VuZVwiLFxuICAgIFwiR2VuZXJhbFwiLFxuICAgIFwiR2VuZXNpc1wiLFxuICAgIFwiR2VuZXZpZXZlXCIsXG4gICAgXCJHZW5uYXJvXCIsXG4gICAgXCJHZW5vdmV2YVwiLFxuICAgIFwiR2VvXCIsXG4gICAgXCJHZW9mZnJleVwiLFxuICAgIFwiR2VvcmdlXCIsXG4gICAgXCJHZW9yZ2V0dGVcIixcbiAgICBcIkdlb3JnaWFuYVwiLFxuICAgIFwiR2VvcmdpYW5uYVwiLFxuICAgIFwiR2VvdmFubmlcIixcbiAgICBcIkdlb3Zhbm55XCIsXG4gICAgXCJHZW92YW55XCIsXG4gICAgXCJHZXJhbGRcIixcbiAgICBcIkdlcmFsZGluZVwiLFxuICAgIFwiR2VyYXJkXCIsXG4gICAgXCJHZXJhcmRvXCIsXG4gICAgXCJHZXJkYVwiLFxuICAgIFwiR2VyaGFyZFwiLFxuICAgIFwiR2VybWFpbmVcIixcbiAgICBcIkdlcm1hblwiLFxuICAgIFwiR2VycnlcIixcbiAgICBcIkdlcnNvblwiLFxuICAgIFwiR2VydHJ1ZGVcIixcbiAgICBcIkdpYVwiLFxuICAgIFwiR2lhbm5pXCIsXG4gICAgXCJHaWRlb25cIixcbiAgICBcIkdpbGJlcnRcIixcbiAgICBcIkdpbGJlcnRvXCIsXG4gICAgXCJHaWxkYVwiLFxuICAgIFwiR2lsZXNcIixcbiAgICBcIkdpbGxpYW5cIixcbiAgICBcIkdpbmFcIixcbiAgICBcIkdpbm9cIixcbiAgICBcIkdpb3ZhbmlcIixcbiAgICBcIkdpb3Zhbm5hXCIsXG4gICAgXCJHaW92YW5uaVwiLFxuICAgIFwiR2lvdmFubnlcIixcbiAgICBcIkdpc3NlbGxlXCIsXG4gICAgXCJHaXVzZXBwZVwiLFxuICAgIFwiR2xhZHljZVwiLFxuICAgIFwiR2xhZHlzXCIsXG4gICAgXCJHbGVuXCIsXG4gICAgXCJHbGVuZGFcIixcbiAgICBcIkdsZW5uYVwiLFxuICAgIFwiR2xlbm5pZVwiLFxuICAgIFwiR2xvcmlhXCIsXG4gICAgXCJHb2RmcmV5XCIsXG4gICAgXCJHb2xkYVwiLFxuICAgIFwiR29sZGVuXCIsXG4gICAgXCJHb256YWxvXCIsXG4gICAgXCJHb3Jkb25cIixcbiAgICBcIkdyYWNlXCIsXG4gICAgXCJHcmFjaWVcIixcbiAgICBcIkdyYWNpZWxhXCIsXG4gICAgXCJHcmFkeVwiLFxuICAgIFwiR3JhaGFtXCIsXG4gICAgXCJHcmFudFwiLFxuICAgIFwiR3JhbnZpbGxlXCIsXG4gICAgXCJHcmF5Y2VcIixcbiAgICBcIkdyYXlzb25cIixcbiAgICBcIkdyZWVuXCIsXG4gICAgXCJHcmVnXCIsXG4gICAgXCJHcmVnZ1wiLFxuICAgIFwiR3JlZ29yaWFcIixcbiAgICBcIkdyZWdvcmlvXCIsXG4gICAgXCJHcmVnb3J5XCIsXG4gICAgXCJHcmV0YVwiLFxuICAgIFwiR3JldGNoZW5cIixcbiAgICBcIkdyZXlzb25cIixcbiAgICBcIkdyaWZmaW5cIixcbiAgICBcIkdyb3ZlclwiLFxuICAgIFwiR3VhZGFsdXBlXCIsXG4gICAgXCJHdWRydW5cIixcbiAgICBcIkd1aWRvXCIsXG4gICAgXCJHdWlsbGVybW9cIixcbiAgICBcIkd1aXNlcHBlXCIsXG4gICAgXCJHdW5uYXJcIixcbiAgICBcIkd1bm5lclwiLFxuICAgIFwiR3VzXCIsXG4gICAgXCJHdXNzaWVcIixcbiAgICBcIkd1c3RcIixcbiAgICBcIkd1c3RhdmVcIixcbiAgICBcIkd1eVwiLFxuICAgIFwiR3dlblwiLFxuICAgIFwiR3dlbmRvbHluXCIsXG4gICAgXCJIYWRsZXlcIixcbiAgICBcIkhhaWxlZVwiLFxuICAgIFwiSGFpbGV5XCIsXG4gICAgXCJIYWlsaWVcIixcbiAgICBcIkhhbFwiLFxuICAgIFwiSGFsZWlnaFwiLFxuICAgIFwiSGFsZXlcIixcbiAgICBcIkhhbGllXCIsXG4gICAgXCJIYWxsZVwiLFxuICAgIFwiSGFsbGllXCIsXG4gICAgXCJIYW5rXCIsXG4gICAgXCJIYW5uYVwiLFxuICAgIFwiSGFubmFoXCIsXG4gICAgXCJIYW5zXCIsXG4gICAgXCJIYXJkeVwiLFxuICAgIFwiSGFybGV5XCIsXG4gICAgXCJIYXJtb25cIixcbiAgICBcIkhhcm1vbnlcIixcbiAgICBcIkhhcm9sZFwiLFxuICAgIFwiSGFycmlzb25cIixcbiAgICBcIkhhcnJ5XCIsXG4gICAgXCJIYXJ2ZXlcIixcbiAgICBcIkhhc2tlbGxcIixcbiAgICBcIkhhc3NhblwiLFxuICAgIFwiSGFzc2llXCIsXG4gICAgXCJIYXR0aWVcIixcbiAgICBcIkhhdmVuXCIsXG4gICAgXCJIYXlkZW5cIixcbiAgICBcIkhheWxlZVwiLFxuICAgIFwiSGF5bGV5XCIsXG4gICAgXCJIYXlsaWVcIixcbiAgICBcIkhhemVsXCIsXG4gICAgXCJIYXpsZVwiLFxuICAgIFwiSGVhdGhcIixcbiAgICBcIkhlYXRoZXJcIixcbiAgICBcIkhlYXZlblwiLFxuICAgIFwiSGViZXJcIixcbiAgICBcIkhlY3RvclwiLFxuICAgIFwiSGVpZGlcIixcbiAgICBcIkhlbGVuXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIkhlbGVuZVwiLFxuICAgIFwiSGVsZ2FcIixcbiAgICBcIkhlbGxlblwiLFxuICAgIFwiSGVsbWVyXCIsXG4gICAgXCJIZWxvaXNlXCIsXG4gICAgXCJIZW5kZXJzb25cIixcbiAgICBcIkhlbnJpXCIsXG4gICAgXCJIZW5yaWV0dGVcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIZXJiZXJ0XCIsXG4gICAgXCJIZXJtYW5cIixcbiAgICBcIkhlcm1hbm5cIixcbiAgICBcIkhlcm1pbmFcIixcbiAgICBcIkhlcm1pbmlhXCIsXG4gICAgXCJIZXJtaW5pb1wiLFxuICAgIFwiSGVyc2hlbFwiLFxuICAgIFwiSGVydGFcIixcbiAgICBcIkhlcnRoYVwiLFxuICAgIFwiSGVzdGVyXCIsXG4gICAgXCJIZXR0aWVcIixcbiAgICBcIkhpbGFyaW9cIixcbiAgICBcIkhpbGJlcnRcIixcbiAgICBcIkhpbGRhXCIsXG4gICAgXCJIaWxkZWdhcmRcIixcbiAgICBcIkhpbGxhcmRcIixcbiAgICBcIkhpbGxhcnlcIixcbiAgICBcIkhpbG1hXCIsXG4gICAgXCJIaWx0b25cIixcbiAgICBcIkhpcG9saXRvXCIsXG4gICAgXCJIaXJhbVwiLFxuICAgIFwiSG9iYXJ0XCIsXG4gICAgXCJIb2xkZW5cIixcbiAgICBcIkhvbGxpZVwiLFxuICAgIFwiSG9sbGlzXCIsXG4gICAgXCJIb2xseVwiLFxuICAgIFwiSG9wZVwiLFxuICAgIFwiSG9yYWNlXCIsXG4gICAgXCJIb3JhY2lvXCIsXG4gICAgXCJIb3J0ZW5zZVwiLFxuICAgIFwiSG9zZWFcIixcbiAgICBcIkhvdXN0b25cIixcbiAgICBcIkhvd2FyZFwiLFxuICAgIFwiSG93ZWxsXCIsXG4gICAgXCJIb3l0XCIsXG4gICAgXCJIdWJlcnRcIixcbiAgICBcIkh1ZHNvblwiLFxuICAgIFwiSHVnaFwiLFxuICAgIFwiSHVsZGFcIixcbiAgICBcIkh1bWJlcnRvXCIsXG4gICAgXCJIdW50ZXJcIixcbiAgICBcIkh5bWFuXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklicmFoaW1cIixcbiAgICBcIkljaWVcIixcbiAgICBcIklkYVwiLFxuICAgIFwiSWRlbGxcIixcbiAgICBcIklkZWxsYVwiLFxuICAgIFwiSWduYWNpb1wiLFxuICAgIFwiSWduYXRpdXNcIixcbiAgICBcIklrZVwiLFxuICAgIFwiSWxhXCIsXG4gICAgXCJJbGVuZVwiLFxuICAgIFwiSWxpYW5hXCIsXG4gICAgXCJJbWFcIixcbiAgICBcIkltYW5pXCIsXG4gICAgXCJJbWVsZGFcIixcbiAgICBcIkltbWFudWVsXCIsXG4gICAgXCJJbW9nZW5lXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJJcm1hXCIsXG4gICAgXCJJcnZpbmdcIixcbiAgICBcIklyd2luXCIsXG4gICAgXCJJc2FhY1wiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxsXCIsXG4gICAgXCJJc2FiZWxsYVwiLFxuICAgIFwiSXNhYmVsbGVcIixcbiAgICBcIklzYWNcIixcbiAgICBcIklzYWRvcmVcIixcbiAgICBcIklzYWlcIixcbiAgICBcIklzYWlhaFwiLFxuICAgIFwiSXNhaWFzXCIsXG4gICAgXCJJc2lkcm9cIixcbiAgICBcIklzbWFlbFwiLFxuICAgIFwiSXNvYmVsXCIsXG4gICAgXCJJc29tXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIklzc2FjXCIsXG4gICAgXCJJdHplbFwiLFxuICAgIFwiSXZhXCIsXG4gICAgXCJJdmFoXCIsXG4gICAgXCJJdm9yeVwiLFxuICAgIFwiSXZ5XCIsXG4gICAgXCJJemFiZWxsYVwiLFxuICAgIFwiSXphaWFoXCIsXG4gICAgXCJKYWJhcmlcIixcbiAgICBcIkphY2VcIixcbiAgICBcIkphY2V5XCIsXG4gICAgXCJKYWNpbnRoZVwiLFxuICAgIFwiSmFjaW50b1wiLFxuICAgIFwiSmFja1wiLFxuICAgIFwiSmFja2VsaW5lXCIsXG4gICAgXCJKYWNraWVcIixcbiAgICBcIkphY2tseW5cIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIkphY2t5XCIsXG4gICAgXCJKYWNseW5cIixcbiAgICBcIkphY3F1ZWx5blwiLFxuICAgIFwiSmFjcXVlc1wiLFxuICAgIFwiSmFjeW50aGVcIixcbiAgICBcIkphZGFcIixcbiAgICBcIkphZGVcIixcbiAgICBcIkphZGVuXCIsXG4gICAgXCJKYWRvblwiLFxuICAgIFwiSmFkeW5cIixcbiAgICBcIkphZWRlblwiLFxuICAgIFwiSmFpZGFcIixcbiAgICBcIkphaWRlblwiLFxuICAgIFwiSmFpbHluXCIsXG4gICAgXCJKYWltZVwiLFxuICAgIFwiSmFpcm9cIixcbiAgICBcIkpha2F5bGFcIixcbiAgICBcIkpha2VcIixcbiAgICBcIkpha29iXCIsXG4gICAgXCJKYWxlZWxcIixcbiAgICBcIkphbGVuXCIsXG4gICAgXCJKYWxvblwiLFxuICAgIFwiSmFseW5cIixcbiAgICBcIkphbWFhbFwiLFxuICAgIFwiSmFtYWxcIixcbiAgICBcIkphbWFyXCIsXG4gICAgXCJKYW1hcmN1c1wiLFxuICAgIFwiSmFtZWxcIixcbiAgICBcIkphbWVzb25cIixcbiAgICBcIkphbWV5XCIsXG4gICAgXCJKYW1pZVwiLFxuICAgIFwiSmFtaWxcIixcbiAgICBcIkphbWlyXCIsXG4gICAgXCJKYW1pc29uXCIsXG4gICAgXCJKYW1taWVcIixcbiAgICBcIkphblwiLFxuICAgIFwiSmFuYVwiLFxuICAgIFwiSmFuYWVcIixcbiAgICBcIkphbmVcIixcbiAgICBcIkphbmVsbGVcIixcbiAgICBcIkphbmVzc2FcIixcbiAgICBcIkphbmV0XCIsXG4gICAgXCJKYW5pY2VcIixcbiAgICBcIkphbmlja1wiLFxuICAgIFwiSmFuaWVcIixcbiAgICBcIkphbmlzXCIsXG4gICAgXCJKYW5peWFcIixcbiAgICBcIkphbm5pZVwiLFxuICAgIFwiSmFueVwiLFxuICAgIFwiSmFxdWFuXCIsXG4gICAgXCJKYXF1ZWxpblwiLFxuICAgIFwiSmFxdWVsaW5lXCIsXG4gICAgXCJKYXJlZFwiLFxuICAgIFwiSmFyZW5cIixcbiAgICBcIkphcm9kXCIsXG4gICAgXCJKYXJvblwiLFxuICAgIFwiSmFycmVkXCIsXG4gICAgXCJKYXJyZWxsXCIsXG4gICAgXCJKYXJyZXRcIixcbiAgICBcIkphcnJldHRcIixcbiAgICBcIkphcnJvZFwiLFxuICAgIFwiSmFydmlzXCIsXG4gICAgXCJKYXNlblwiLFxuICAgIFwiSmFzbWluXCIsXG4gICAgXCJKYXNvblwiLFxuICAgIFwiSmFzcGVyXCIsXG4gICAgXCJKYXVuaXRhXCIsXG4gICAgXCJKYXZpZXJcIixcbiAgICBcIkphdm9uXCIsXG4gICAgXCJKYXZvbnRlXCIsXG4gICAgXCJKYXlcIixcbiAgICBcIkpheWNlXCIsXG4gICAgXCJKYXljZWVcIixcbiAgICBcIkpheWRhXCIsXG4gICAgXCJKYXlkZVwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJKYXlkb25cIixcbiAgICBcIkpheWxhblwiLFxuICAgIFwiSmF5bGVuXCIsXG4gICAgXCJKYXlsaW5cIixcbiAgICBcIkpheWxvblwiLFxuICAgIFwiSmF5bWVcIixcbiAgICBcIkpheW5lXCIsXG4gICAgXCJKYXlzb25cIixcbiAgICBcIkphemx5blwiLFxuICAgIFwiSmF6bWluXCIsXG4gICAgXCJKYXpteW5cIixcbiAgICBcIkphem15bmVcIixcbiAgICBcIkplYW5cIixcbiAgICBcIkplYW5ldHRlXCIsXG4gICAgXCJKZWFuaWVcIixcbiAgICBcIkplYW5uZVwiLFxuICAgIFwiSmVkXCIsXG4gICAgXCJKZWRlZGlhaFwiLFxuICAgIFwiSmVkaWRpYWhcIixcbiAgICBcIkplZmZcIixcbiAgICBcIkplZmZlcmV5XCIsXG4gICAgXCJKZWZmZXJ5XCIsXG4gICAgXCJKZWZmcmV5XCIsXG4gICAgXCJKZWZmcnlcIixcbiAgICBcIkplbmFcIixcbiAgICBcIkplbmlmZXJcIixcbiAgICBcIkplbm5pZVwiLFxuICAgIFwiSmVubmlmZXJcIixcbiAgICBcIkplbm5pbmdzXCIsXG4gICAgXCJKZW5ueWZlclwiLFxuICAgIFwiSmVuc2VuXCIsXG4gICAgXCJKZXJhZFwiLFxuICAgIFwiSmVyYWxkXCIsXG4gICAgXCJKZXJhbWllXCIsXG4gICAgXCJKZXJhbXlcIixcbiAgICBcIkplcmVsXCIsXG4gICAgXCJKZXJlbWllXCIsXG4gICAgXCJKZXJlbXlcIixcbiAgICBcIkplcm1haW5cIixcbiAgICBcIkplcm1haW5lXCIsXG4gICAgXCJKZXJtZXlcIixcbiAgICBcIkplcm9kXCIsXG4gICAgXCJKZXJvbWVcIixcbiAgICBcIkplcm9teVwiLFxuICAgIFwiSmVycmVsbFwiLFxuICAgIFwiSmVycm9kXCIsXG4gICAgXCJKZXJyb2xkXCIsXG4gICAgXCJKZXJyeVwiLFxuICAgIFwiSmVzc1wiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkplc3NpY2FcIixcbiAgICBcIkplc3NpZVwiLFxuICAgIFwiSmVzc2lrYVwiLFxuICAgIFwiSmVzc3lcIixcbiAgICBcIkplc3N5Y2FcIixcbiAgICBcIkplc3VzXCIsXG4gICAgXCJKZXR0XCIsXG4gICAgXCJKZXR0aWVcIixcbiAgICBcIkpldm9uXCIsXG4gICAgXCJKZXdlbFwiLFxuICAgIFwiSmV3ZWxsXCIsXG4gICAgXCJKaWxsaWFuXCIsXG4gICAgXCJKaW1taWVcIixcbiAgICBcIkppbW15XCIsXG4gICAgXCJKb1wiLFxuICAgIFwiSm9hblwiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkpvYW5pZVwiLFxuICAgIFwiSm9hbm5lXCIsXG4gICAgXCJKb2FubmllXCIsXG4gICAgXCJKb2FubnlcIixcbiAgICBcIkpvYW55XCIsXG4gICAgXCJKb2FxdWluXCIsXG4gICAgXCJKb2NlbHluXCIsXG4gICAgXCJKb2RpZVwiLFxuICAgIFwiSm9keVwiLFxuICAgIFwiSm9lXCIsXG4gICAgXCJKb2VsXCIsXG4gICAgXCJKb2VsbGVcIixcbiAgICBcIkpvZXNwaFwiLFxuICAgIFwiSm9leVwiLFxuICAgIFwiSm9oYW5cIixcbiAgICBcIkpvaGFublwiLFxuICAgIFwiSm9oYW5uYVwiLFxuICAgIFwiSm9oYXRoYW5cIixcbiAgICBcIkpvaG5cIixcbiAgICBcIkpvaG5hdGhhblwiLFxuICAgIFwiSm9obmF0aG9uXCIsXG4gICAgXCJKb2hubmllXCIsXG4gICAgXCJKb2hubnlcIixcbiAgICBcIkpvaG5wYXVsXCIsXG4gICAgXCJKb2huc29uXCIsXG4gICAgXCJKb2xpZVwiLFxuICAgIFwiSm9uXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9uYXRhblwiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkpvbmF0aG9uXCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIkpvcmRhbmVcIixcbiAgICBcIkpvcmRpXCIsXG4gICAgXCJKb3Jkb25cIixcbiAgICBcIkpvcmR5XCIsXG4gICAgXCJKb3JkeW5cIixcbiAgICBcIkpvcmdlXCIsXG4gICAgXCJKb3NlXCIsXG4gICAgXCJKb3NlZmFcIixcbiAgICBcIkpvc2VmaW5hXCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkpvc2VwaGluZVwiLFxuICAgIFwiSm9zaFwiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJKb3NodWFoXCIsXG4gICAgXCJKb3NpYWhcIixcbiAgICBcIkpvc2lhbmVcIixcbiAgICBcIkpvc2lhbm5lXCIsXG4gICAgXCJKb3NpZVwiLFxuICAgIFwiSm9zdWVcIixcbiAgICBcIkpvdmFuXCIsXG4gICAgXCJKb3ZhbmlcIixcbiAgICBcIkpvdmFubnlcIixcbiAgICBcIkpvdmFueVwiLFxuICAgIFwiSm95XCIsXG4gICAgXCJKb3ljZVwiLFxuICAgIFwiSnVhbmFcIixcbiAgICBcIkp1YW5pdGFcIixcbiAgICBcIkp1ZGFoXCIsXG4gICAgXCJKdWRkXCIsXG4gICAgXCJKdWRlXCIsXG4gICAgXCJKdWRnZVwiLFxuICAgIFwiSnVkc29uXCIsXG4gICAgXCJKdWR5XCIsXG4gICAgXCJKdWxlc1wiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhblwiLFxuICAgIFwiSnVsaWFuYVwiLFxuICAgIFwiSnVsaWFubmVcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJKdWxpZW5cIixcbiAgICBcIkp1bGlldFwiLFxuICAgIFwiSnVsaW9cIixcbiAgICBcIkp1bGl1c1wiLFxuICAgIFwiSnVuZVwiLFxuICAgIFwiSnVuaW9yXCIsXG4gICAgXCJKdW5pdXNcIixcbiAgICBcIkp1c3RlblwiLFxuICAgIFwiSnVzdGljZVwiLFxuICAgIFwiSnVzdGluYVwiLFxuICAgIFwiSnVzdGluZVwiLFxuICAgIFwiSnVzdG9uXCIsXG4gICAgXCJKdXN0dXNcIixcbiAgICBcIkp1c3R5blwiLFxuICAgIFwiSnV2ZW5hbFwiLFxuICAgIFwiSnV3YW5cIixcbiAgICBcIkthY2V5XCIsXG4gICAgXCJLYWNpXCIsXG4gICAgXCJLYWNpZVwiLFxuICAgIFwiS2FkZVwiLFxuICAgIFwiS2FkZW5cIixcbiAgICBcIkthZGluXCIsXG4gICAgXCJLYWVsYVwiLFxuICAgIFwiS2FlbHluXCIsXG4gICAgXCJLYWlhXCIsXG4gICAgXCJLYWlsZWVcIixcbiAgICBcIkthaWxleVwiLFxuICAgIFwiS2FpbHluXCIsXG4gICAgXCJLYWl0bGluXCIsXG4gICAgXCJLYWl0bHluXCIsXG4gICAgXCJLYWxlXCIsXG4gICAgXCJLYWxlYlwiLFxuICAgIFwiS2FsZWlnaFwiLFxuICAgIFwiS2FsZXlcIixcbiAgICBcIkthbGlcIixcbiAgICBcIkthbGxpZVwiLFxuICAgIFwiS2FtZXJvblwiLFxuICAgIFwiS2FtaWxsZVwiLFxuICAgIFwiS2FtcmVuXCIsXG4gICAgXCJLYW1yb25cIixcbiAgICBcIkthbXJ5blwiLFxuICAgIFwiS2FuZVwiLFxuICAgIFwiS2FyYVwiLFxuICAgIFwiS2FyZWVtXCIsXG4gICAgXCJLYXJlbGxlXCIsXG4gICAgXCJLYXJlblwiLFxuICAgIFwiS2FyaVwiLFxuICAgIFwiS2FyaWFuZVwiLFxuICAgIFwiS2FyaWFubmVcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiS2FyaW5lXCIsXG4gICAgXCJLYXJsXCIsXG4gICAgXCJLYXJsZWVcIixcbiAgICBcIkthcmxleVwiLFxuICAgIFwiS2FybGlcIixcbiAgICBcIkthcmxpZVwiLFxuICAgIFwiS2Fyb2xhbm5cIixcbiAgICBcIkthcnNvblwiLFxuICAgIFwiS2FzYW5kcmFcIixcbiAgICBcIkthc2V5XCIsXG4gICAgXCJLYXNzYW5kcmFcIixcbiAgICBcIkthdGFyaW5hXCIsXG4gICAgXCJLYXRlbGluXCIsXG4gICAgXCJLYXRlbHluXCIsXG4gICAgXCJLYXRlbHlublwiLFxuICAgIFwiS2F0aGFyaW5hXCIsXG4gICAgXCJLYXRoZXJpbmVcIixcbiAgICBcIkthdGhlcnluXCIsXG4gICAgXCJLYXRobGVlblwiLFxuICAgIFwiS2F0aGx5blwiLFxuICAgIFwiS2F0aHJ5blwiLFxuICAgIFwiS2F0aHJ5bmVcIixcbiAgICBcIkthdGx5blwiLFxuICAgIFwiS2F0bHlublwiLFxuICAgIFwiS2F0cmluYVwiLFxuICAgIFwiS2F0cmluZVwiLFxuICAgIFwiS2F0dGllXCIsXG4gICAgXCJLYXZvblwiLFxuICAgIFwiS2F5XCIsXG4gICAgXCJLYXlhXCIsXG4gICAgXCJLYXljZWVcIixcbiAgICBcIktheWRlblwiLFxuICAgIFwiS2F5bGFcIixcbiAgICBcIktheWxhaFwiLFxuICAgIFwiS2F5bGVlXCIsXG4gICAgXCJLYXlsZWlnaFwiLFxuICAgIFwiS2F5bGV5XCIsXG4gICAgXCJLYXlsaVwiLFxuICAgIFwiS2F5bGllXCIsXG4gICAgXCJLYXlsaW5cIixcbiAgICBcIktlYWdhblwiLFxuICAgIFwiS2VhbnVcIixcbiAgICBcIktlYXJhXCIsXG4gICAgXCJLZWF0b25cIixcbiAgICBcIktlZWdhblwiLFxuICAgIFwiS2VlbGV5XCIsXG4gICAgXCJLZWVseVwiLFxuICAgIFwiS2VlbmFuXCIsXG4gICAgXCJLZWlyYVwiLFxuICAgIFwiS2VpdGhcIixcbiAgICBcIktlbGxlblwiLFxuICAgIFwiS2VsbGV5XCIsXG4gICAgXCJLZWxsaVwiLFxuICAgIFwiS2VsbGllXCIsXG4gICAgXCJLZWxseVwiLFxuICAgIFwiS2Vsc2lcIixcbiAgICBcIktlbHNpZVwiLFxuICAgIFwiS2VsdG9uXCIsXG4gICAgXCJLZWx2aW5cIixcbiAgICBcIktlblwiLFxuICAgIFwiS2VuZGFsbFwiLFxuICAgIFwiS2VuZHJhXCIsXG4gICAgXCJLZW5kcmlja1wiLFxuICAgIFwiS2VubmFcIixcbiAgICBcIktlbm5lZGlcIixcbiAgICBcIktlbm5lZHlcIixcbiAgICBcIktlbm5ldGhcIixcbiAgICBcIktlbm5pdGhcIixcbiAgICBcIktlbm55XCIsXG4gICAgXCJLZW50b25cIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJLZW55YXR0YVwiLFxuICAgIFwiS2VueW9uXCIsXG4gICAgXCJLZW9uXCIsXG4gICAgXCJLZXNoYXVuXCIsXG4gICAgXCJLZXNoYXduXCIsXG4gICAgXCJLZXZlblwiLFxuICAgIFwiS2V2aW5cIixcbiAgICBcIktldm9uXCIsXG4gICAgXCJLZXlvblwiLFxuICAgIFwiS2V5c2hhd25cIixcbiAgICBcIktoYWxpZFwiLFxuICAgIFwiS2hhbGlsXCIsXG4gICAgXCJLaWFuXCIsXG4gICAgXCJLaWFuYVwiLFxuICAgIFwiS2lhbm5hXCIsXG4gICAgXCJLaWFyYVwiLFxuICAgIFwiS2lhcnJhXCIsXG4gICAgXCJLaWVsXCIsXG4gICAgXCJLaWVyYVwiLFxuICAgIFwiS2llcmFuXCIsXG4gICAgXCJLaWxleVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1iZXJseVwiLFxuICAgIFwiS2luZ1wiLFxuICAgIFwiS2lwXCIsXG4gICAgXCJLaXJhXCIsXG4gICAgXCJLaXJrXCIsXG4gICAgXCJLaXJzdGVuXCIsXG4gICAgXCJLaXJzdGluXCIsXG4gICAgXCJLaXR0eVwiLFxuICAgIFwiS29iZVwiLFxuICAgIFwiS29ieVwiLFxuICAgIFwiS29keVwiLFxuICAgIFwiS29sYnlcIixcbiAgICBcIktvbGVcIixcbiAgICBcIktvcmJpblwiLFxuICAgIFwiS29yZXlcIixcbiAgICBcIktvcnlcIixcbiAgICBcIktyYWlnXCIsXG4gICAgXCJLcmlzXCIsXG4gICAgXCJLcmlzdGFcIixcbiAgICBcIktyaXN0aWFuXCIsXG4gICAgXCJLcmlzdGluXCIsXG4gICAgXCJLcmlzdGluYVwiLFxuICAgIFwiS3Jpc3RvZmVyXCIsXG4gICAgXCJLcmlzdG9mZmVyXCIsXG4gICAgXCJLcmlzdG9waGVyXCIsXG4gICAgXCJLcmlzdHlcIixcbiAgICBcIktyeXN0YWxcIixcbiAgICBcIktyeXN0ZWxcIixcbiAgICBcIktyeXN0aW5hXCIsXG4gICAgXCJLdXJ0XCIsXG4gICAgXCJLdXJ0aXNcIixcbiAgICBcIkt5bGFcIixcbiAgICBcIkt5bGVcIixcbiAgICBcIkt5bGVlXCIsXG4gICAgXCJLeWxlaWdoXCIsXG4gICAgXCJLeWxlclwiLFxuICAgIFwiS3lsaWVcIixcbiAgICBcIkt5cmFcIixcbiAgICBcIkxhY2V5XCIsXG4gICAgXCJMYWN5XCIsXG4gICAgXCJMYWRhcml1c1wiLFxuICAgIFwiTGFmYXlldHRlXCIsXG4gICAgXCJMYWlsYVwiLFxuICAgIFwiTGFpc2hhXCIsXG4gICAgXCJMYW1hclwiLFxuICAgIFwiTGFtYmVydFwiLFxuICAgIFwiTGFtb250XCIsXG4gICAgXCJMYW5jZVwiLFxuICAgIFwiTGFuZGVuXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMYW5leVwiLFxuICAgIFwiTGFyaXNzYVwiLFxuICAgIFwiTGFyb25cIixcbiAgICBcIkxhcnJ5XCIsXG4gICAgXCJMYXJ1ZVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkxhdXJlbFwiLFxuICAgIFwiTGF1cmVuXCIsXG4gICAgXCJMYXVyZW5jZVwiLFxuICAgIFwiTGF1cmV0dGFcIixcbiAgICBcIkxhdXJpYW5lXCIsXG4gICAgXCJMYXVyaWFubmVcIixcbiAgICBcIkxhdXJpZVwiLFxuICAgIFwiTGF1cmluZVwiLFxuICAgIFwiTGF1cnlcIixcbiAgICBcIkxhdXJ5blwiLFxuICAgIFwiTGF2YWRhXCIsXG4gICAgXCJMYXZlcm5cIixcbiAgICBcIkxhdmVybmFcIixcbiAgICBcIkxhdmVybmVcIixcbiAgICBcIkxhdmluYVwiLFxuICAgIFwiTGF2aW5pYVwiLFxuICAgIFwiTGF2b25cIixcbiAgICBcIkxhdm9ubmVcIixcbiAgICBcIkxhd3JlbmNlXCIsXG4gICAgXCJMYXdzb25cIixcbiAgICBcIkxheWxhXCIsXG4gICAgXCJMYXluZVwiLFxuICAgIFwiTGF6YXJvXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlYW5uXCIsXG4gICAgXCJMZWFubmFcIixcbiAgICBcIkxlYW5uZVwiLFxuICAgIFwiTGVhdGhhXCIsXG4gICAgXCJMZWRhXCIsXG4gICAgXCJMZWVcIixcbiAgICBcIkxlaWZcIixcbiAgICBcIkxlaWxhXCIsXG4gICAgXCJMZWlsYW5pXCIsXG4gICAgXCJMZWxhXCIsXG4gICAgXCJMZWxhaFwiLFxuICAgIFwiTGVsYW5kXCIsXG4gICAgXCJMZWxpYVwiLFxuICAgIFwiTGVtcGlcIixcbiAgICBcIkxlbXVlbFwiLFxuICAgIFwiTGVubmFcIixcbiAgICBcIkxlbm5pZVwiLFxuICAgIFwiTGVubnlcIixcbiAgICBcIkxlbm9yYVwiLFxuICAgIFwiTGVub3JlXCIsXG4gICAgXCJMZW9cIixcbiAgICBcIkxlb2xhXCIsXG4gICAgXCJMZW9uXCIsXG4gICAgXCJMZW9uYXJkXCIsXG4gICAgXCJMZW9uYXJkb1wiLFxuICAgIFwiTGVvbmVcIixcbiAgICBcIkxlb25lbFwiLFxuICAgIFwiTGVvbmllXCIsXG4gICAgXCJMZW9ub3JcIixcbiAgICBcIkxlb25vcmFcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkxlb3BvbGRvXCIsXG4gICAgXCJMZW9yYVwiLFxuICAgIFwiTGVyYVwiLFxuICAgIFwiTGVzbGV5XCIsXG4gICAgXCJMZXNsaWVcIixcbiAgICBcIkxlc2x5XCIsXG4gICAgXCJMZXNzaWVcIixcbiAgICBcIkxlc3RlclwiLFxuICAgIFwiTGV0YVwiLFxuICAgIFwiTGV0aGFcIixcbiAgICBcIkxldGl0aWFcIixcbiAgICBcIkxldmlcIixcbiAgICBcIkxld1wiLFxuICAgIFwiTGV3aXNcIixcbiAgICBcIkxleGlcIixcbiAgICBcIkxleGllXCIsXG4gICAgXCJMZXh1c1wiLFxuICAgIFwiTGlhXCIsXG4gICAgXCJMaWFtXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTGliYmllXCIsXG4gICAgXCJMaWJieVwiLFxuICAgIFwiTGlsYVwiLFxuICAgIFwiTGlsaWFuXCIsXG4gICAgXCJMaWxpYW5hXCIsXG4gICAgXCJMaWxpYW5lXCIsXG4gICAgXCJMaWxsYVwiLFxuICAgIFwiTGlsbGlhblwiLFxuICAgIFwiTGlsbGlhbmFcIixcbiAgICBcIkxpbGxpZVwiLFxuICAgIFwiTGlsbHlcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIkxpbHlhblwiLFxuICAgIFwiTGluYVwiLFxuICAgIFwiTGluY29sblwiLFxuICAgIFwiTGluZGFcIixcbiAgICBcIkxpbmRzYXlcIixcbiAgICBcIkxpbmRzZXlcIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTGlubmllXCIsXG4gICAgXCJMaW53b29kXCIsXG4gICAgXCJMaW9uZWxcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxpc2FuZHJvXCIsXG4gICAgXCJMaXNldHRlXCIsXG4gICAgXCJMaXR6eVwiLFxuICAgIFwiTGl6YVwiLFxuICAgIFwiTGl6ZXRoXCIsXG4gICAgXCJMaXp6aWVcIixcbiAgICBcIkxsZXdlbGx5blwiLFxuICAgIFwiTGxveWRcIixcbiAgICBcIkxvZ2FuXCIsXG4gICAgXCJMb2lzXCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJMb2xpdGFcIixcbiAgICBcIkxvbWFcIixcbiAgICBcIkxvblwiLFxuICAgIFwiTG9uZG9uXCIsXG4gICAgXCJMb25pZVwiLFxuICAgIFwiTG9ubmllXCIsXG4gICAgXCJMb25ueVwiLFxuICAgIFwiTG9uem9cIixcbiAgICBcIkxvcmFcIixcbiAgICBcIkxvcmFpbmVcIixcbiAgICBcIkxvcmVuXCIsXG4gICAgXCJMb3JlbmFcIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9yZW56YVwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTG9yaVwiLFxuICAgIFwiTG9yaW5lXCIsXG4gICAgXCJMb3JuYVwiLFxuICAgIFwiTG90dGllXCIsXG4gICAgXCJMb3VcIixcbiAgICBcIkxvdWllXCIsXG4gICAgXCJMb3Vpc2FcIixcbiAgICBcIkxvdXJkZXNcIixcbiAgICBcIkxvdXZlbmlhXCIsXG4gICAgXCJMb3dlbGxcIixcbiAgICBcIkxveVwiLFxuICAgIFwiTG95YWxcIixcbiAgICBcIkxveWNlXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiTHVjaWFub1wiLFxuICAgIFwiTHVjaWVcIixcbiAgICBcIkx1Y2llbm5lXCIsXG4gICAgXCJMdWNpbGVcIixcbiAgICBcIkx1Y2luZGFcIixcbiAgICBcIkx1Y2lvXCIsXG4gICAgXCJMdWNpb3VzXCIsXG4gICAgXCJMdWNpdXNcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkx1ZGllXCIsXG4gICAgXCJMdWR3aWdcIixcbiAgICBcIkx1ZVwiLFxuICAgIFwiTHVlbGxhXCIsXG4gICAgXCJMdWlnaVwiLFxuICAgIFwiTHVpc1wiLFxuICAgIFwiTHVpc2FcIixcbiAgICBcIkx1a2FzXCIsXG4gICAgXCJMdWxhXCIsXG4gICAgXCJMdWx1XCIsXG4gICAgXCJMdW5hXCIsXG4gICAgXCJMdXBlXCIsXG4gICAgXCJMdXJhXCIsXG4gICAgXCJMdXJsaW5lXCIsXG4gICAgXCJMdXRoZXJcIixcbiAgICBcIkx1elwiLFxuICAgIFwiTHlkYVwiLFxuICAgIFwiTHlkaWFcIixcbiAgICBcIkx5bGFcIixcbiAgICBcIkx5bm5cIixcbiAgICBcIkx5cmljXCIsXG4gICAgXCJMeXNhbm5lXCIsXG4gICAgXCJNYWJlbFwiLFxuICAgIFwiTWFiZWxsZVwiLFxuICAgIFwiTWFibGVcIixcbiAgICBcIk1hY1wiLFxuICAgIFwiTWFjZXlcIixcbiAgICBcIk1hY2lcIixcbiAgICBcIk1hY2llXCIsXG4gICAgXCJNYWNrXCIsXG4gICAgXCJNYWNrZW56aWVcIixcbiAgICBcIk1hY3lcIixcbiAgICBcIk1hZGFsaW5lXCIsXG4gICAgXCJNYWRhbHluXCIsXG4gICAgXCJNYWRkaXNvblwiLFxuICAgIFwiTWFkZWxpbmVcIixcbiAgICBcIk1hZGVseW5cIixcbiAgICBcIk1hZGVseW5uXCIsXG4gICAgXCJNYWRnZVwiLFxuICAgIFwiTWFkaWVcIixcbiAgICBcIk1hZGlseW5cIixcbiAgICBcIk1hZGlzZW5cIixcbiAgICBcIk1hZGlzb25cIixcbiAgICBcIk1hZGlzeW5cIixcbiAgICBcIk1hZG9ubmFcIixcbiAgICBcIk1hZHlzb25cIixcbiAgICBcIk1hZVwiLFxuICAgIFwiTWFlZ2FuXCIsXG4gICAgXCJNYWV2ZVwiLFxuICAgIFwiTWFmYWxkYVwiLFxuICAgIFwiTWFnYWxpXCIsXG4gICAgXCJNYWdkYWxlblwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYWdnaWVcIixcbiAgICBcIk1hZ25vbGlhXCIsXG4gICAgXCJNYWdudXNcIixcbiAgICBcIk1haWFcIixcbiAgICBcIk1haWRhXCIsXG4gICAgXCJNYWl5YVwiLFxuICAgIFwiTWFqb3JcIixcbiAgICBcIk1ha2F5bGFcIixcbiAgICBcIk1ha2VubmFcIixcbiAgICBcIk1ha2VuemllXCIsXG4gICAgXCJNYWxhY2hpXCIsXG4gICAgXCJNYWxjb2xtXCIsXG4gICAgXCJNYWxpa2FcIixcbiAgICBcIk1hbGluZGFcIixcbiAgICBcIk1hbGxpZVwiLFxuICAgIFwiTWFsbG9yeVwiLFxuICAgIFwiTWFsdmluYVwiLFxuICAgIFwiTWFuZHlcIixcbiAgICBcIk1hbmxleVwiLFxuICAgIFwiTWFudWVsXCIsXG4gICAgXCJNYW51ZWxhXCIsXG4gICAgXCJNYXJhXCIsXG4gICAgXCJNYXJjXCIsXG4gICAgXCJNYXJjZWxcIixcbiAgICBcIk1hcmNlbGluYVwiLFxuICAgIFwiTWFyY2VsaW5vXCIsXG4gICAgXCJNYXJjZWxsYVwiLFxuICAgIFwiTWFyY2VsbGVcIixcbiAgICBcIk1hcmNlbGx1c1wiLFxuICAgIFwiTWFyY2Vsb1wiLFxuICAgIFwiTWFyY2lhXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyY29zXCIsXG4gICAgXCJNYXJjdXNcIixcbiAgICBcIk1hcmdhcmV0XCIsXG4gICAgXCJNYXJnYXJldGVcIixcbiAgICBcIk1hcmdhcmV0dFwiLFxuICAgIFwiTWFyZ2FyZXR0YVwiLFxuICAgIFwiTWFyZ2FyZXR0ZVwiLFxuICAgIFwiTWFyZ2FyaXRhXCIsXG4gICAgXCJNYXJnZVwiLFxuICAgIFwiTWFyZ2llXCIsXG4gICAgXCJNYXJnb3RcIixcbiAgICBcIk1hcmdyZXRcIixcbiAgICBcIk1hcmd1ZXJpdGVcIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJNYXJpYWhcIixcbiAgICBcIk1hcmlhbVwiLFxuICAgIFwiTWFyaWFuXCIsXG4gICAgXCJNYXJpYW5hXCIsXG4gICAgXCJNYXJpYW5lXCIsXG4gICAgXCJNYXJpYW5uYVwiLFxuICAgIFwiTWFyaWFubmVcIixcbiAgICBcIk1hcmlhbm9cIixcbiAgICBcIk1hcmliZWxcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJNYXJpZWxhXCIsXG4gICAgXCJNYXJpZWxsZVwiLFxuICAgIFwiTWFyaWV0dGFcIixcbiAgICBcIk1hcmlsaWVcIixcbiAgICBcIk1hcmlsb3VcIixcbiAgICBcIk1hcmlseW5lXCIsXG4gICAgXCJNYXJpbmFcIixcbiAgICBcIk1hcmlvXCIsXG4gICAgXCJNYXJpb25cIixcbiAgICBcIk1hcmlzYVwiLFxuICAgIFwiTWFyaXNvbFwiLFxuICAgIFwiTWFyaXR6YVwiLFxuICAgIFwiTWFyam9sYWluZVwiLFxuICAgIFwiTWFyam9yaWVcIixcbiAgICBcIk1hcmpvcnlcIixcbiAgICBcIk1hcmtcIixcbiAgICBcIk1hcmt1c1wiLFxuICAgIFwiTWFybGVlXCIsXG4gICAgXCJNYXJsZW5cIixcbiAgICBcIk1hcmxlbmVcIixcbiAgICBcIk1hcmxleVwiLFxuICAgIFwiTWFybGluXCIsXG4gICAgXCJNYXJsb25cIixcbiAgICBcIk1hcnF1ZXNcIixcbiAgICBcIk1hcnF1aXNcIixcbiAgICBcIk1hcnF1aXNlXCIsXG4gICAgXCJNYXJzaGFsbFwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiTWFydGluYVwiLFxuICAgIFwiTWFydGluZVwiLFxuICAgIFwiTWFydHlcIixcbiAgICBcIk1hcnZpblwiLFxuICAgIFwiTWFyeVwiLFxuICAgIFwiTWFyeWFtXCIsXG4gICAgXCJNYXJ5amFuZVwiLFxuICAgIFwiTWFyeXNlXCIsXG4gICAgXCJNYXNvblwiLFxuICAgIFwiTWF0ZW9cIixcbiAgICBcIk1hdGhld1wiLFxuICAgIFwiTWF0aGlhc1wiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIk1hdGlsZGVcIixcbiAgICBcIk1hdHRcIixcbiAgICBcIk1hdHRlb1wiLFxuICAgIFwiTWF0dGllXCIsXG4gICAgXCJNYXVkXCIsXG4gICAgXCJNYXVkZVwiLFxuICAgIFwiTWF1ZGllXCIsXG4gICAgXCJNYXVyZWVuXCIsXG4gICAgXCJNYXVyaWNlXCIsXG4gICAgXCJNYXVyaWNpb1wiLFxuICAgIFwiTWF1cmluZVwiLFxuICAgIFwiTWF2ZXJpY2tcIixcbiAgICBcIk1hdmlzXCIsXG4gICAgXCJNYXhcIixcbiAgICBcIk1heGllXCIsXG4gICAgXCJNYXhpbWVcIixcbiAgICBcIk1heGltaWxpYW5cIixcbiAgICBcIk1heGltaWxsaWFcIixcbiAgICBcIk1heGltaWxsaWFuXCIsXG4gICAgXCJNYXhpbW9cIixcbiAgICBcIk1heGltdXNcIixcbiAgICBcIk1heGluZVwiLFxuICAgIFwiTWF4d2VsbFwiLFxuICAgIFwiTWF5XCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJNYXliZWxsXCIsXG4gICAgXCJNYXliZWxsZVwiLFxuICAgIFwiTWF5ZVwiLFxuICAgIFwiTWF5bWllXCIsXG4gICAgXCJNYXluYXJkXCIsXG4gICAgXCJNYXlyYVwiLFxuICAgIFwiTWF6aWVcIixcbiAgICBcIk1ja2F5bGFcIixcbiAgICBcIk1ja2VubmFcIixcbiAgICBcIk1ja2VuemllXCIsXG4gICAgXCJNZWFnYW5cIixcbiAgICBcIk1lYWdoYW5cIixcbiAgICBcIk1lZGFcIixcbiAgICBcIk1lZ2FuZVwiLFxuICAgIFwiTWVnZ2llXCIsXG4gICAgXCJNZWdoYW5cIixcbiAgICBcIk1la2hpXCIsXG4gICAgXCJNZWxhbnlcIixcbiAgICBcIk1lbGJhXCIsXG4gICAgXCJNZWxpc2FcIixcbiAgICBcIk1lbGlzc2FcIixcbiAgICBcIk1lbGxpZVwiLFxuICAgIFwiTWVsb2R5XCIsXG4gICAgXCJNZWx2aW5cIixcbiAgICBcIk1lbHZpbmFcIixcbiAgICBcIk1lbHluYVwiLFxuICAgIFwiTWVseXNzYVwiLFxuICAgIFwiTWVyY2VkZXNcIixcbiAgICBcIk1lcmVkaXRoXCIsXG4gICAgXCJNZXJsXCIsXG4gICAgXCJNZXJsZVwiLFxuICAgIFwiTWVybGluXCIsXG4gICAgXCJNZXJyaXR0XCIsXG4gICAgXCJNZXJ0aWVcIixcbiAgICBcIk1lcnZpblwiLFxuICAgIFwiTWV0YVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJNaWNhZWxhXCIsXG4gICAgXCJNaWNhaFwiLFxuICAgIFwiTWljaGFlbFwiLFxuICAgIFwiTWljaGFlbGFcIixcbiAgICBcIk1pY2hhbGVcIixcbiAgICBcIk1pY2hlYWxcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWljaGVsZVwiLFxuICAgIFwiTWljaGVsbGVcIixcbiAgICBcIk1pZ3VlbFwiLFxuICAgIFwiTWlrYXlsYVwiLFxuICAgIFwiTWlrZVwiLFxuICAgIFwiTWlrZWxcIixcbiAgICBcIk1pbGFuXCIsXG4gICAgXCJNaWxlc1wiLFxuICAgIFwiTWlsZm9yZFwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaWxsaWVcIixcbiAgICBcIk1pbG9cIixcbiAgICBcIk1pbHRvblwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiTWluZXJ2YVwiLFxuICAgIFwiTWlubmllXCIsXG4gICAgXCJNaXJhY2xlXCIsXG4gICAgXCJNaXJlaWxsZVwiLFxuICAgIFwiTWlyZXlhXCIsXG4gICAgXCJNaXNhZWxcIixcbiAgICBcIk1pc3NvdXJpXCIsXG4gICAgXCJNaXN0eVwiLFxuICAgIFwiTWl0Y2hlbFwiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIk1pdHRpZVwiLFxuICAgIFwiTW9kZXN0YVwiLFxuICAgIFwiTW9kZXN0b1wiLFxuICAgIFwiTW9oYW1lZFwiLFxuICAgIFwiTW9oYW1tYWRcIixcbiAgICBcIk1vaGFtbWVkXCIsXG4gICAgXCJNb2lzZXNcIixcbiAgICBcIk1vbGxpZVwiLFxuICAgIFwiTW9sbHlcIixcbiAgICBcIk1vbmFcIixcbiAgICBcIk1vbmljYVwiLFxuICAgIFwiTW9uaXF1ZVwiLFxuICAgIFwiTW9ucm9lXCIsXG4gICAgXCJNb25zZXJyYXRcIixcbiAgICBcIk1vbnNlcnJhdGVcIixcbiAgICBcIk1vbnRhbmFcIixcbiAgICBcIk1vbnRlXCIsXG4gICAgXCJNb250eVwiLFxuICAgIFwiTW9yZ2FuXCIsXG4gICAgXCJNb3JpYWhcIixcbiAgICBcIk1vcnJpc1wiLFxuICAgIFwiTW9ydGltZXJcIixcbiAgICBcIk1vcnRvblwiLFxuICAgIFwiTW9zZVwiLFxuICAgIFwiTW9zZXNcIixcbiAgICBcIk1vc2hlXCIsXG4gICAgXCJNb3NzaWVcIixcbiAgICBcIk1vemVsbFwiLFxuICAgIFwiTW96ZWxsZVwiLFxuICAgIFwiTXVoYW1tYWRcIixcbiAgICBcIk11cmllbFwiLFxuICAgIFwiTXVybFwiLFxuICAgIFwiTXVycGh5XCIsXG4gICAgXCJNdXJyYXlcIixcbiAgICBcIk11c3RhZmFcIixcbiAgICBcIk15YVwiLFxuICAgIFwiTXlhaFwiLFxuICAgIFwiTXlsZW5lXCIsXG4gICAgXCJNeWxlc1wiLFxuICAgIFwiTXlyYVwiLFxuICAgIFwiTXlyaWFtXCIsXG4gICAgXCJNeXJsXCIsXG4gICAgXCJNeXJuYVwiLFxuICAgIFwiTXlyb25cIixcbiAgICBcIk15cnRpY2VcIixcbiAgICBcIk15cnRpZVwiLFxuICAgIFwiTXlydGlzXCIsXG4gICAgXCJNeXJ0bGVcIixcbiAgICBcIk5hZGlhXCIsXG4gICAgXCJOYWtpYVwiLFxuICAgIFwiTmFtZVwiLFxuICAgIFwiTmFubmllXCIsXG4gICAgXCJOYW9taVwiLFxuICAgIFwiTmFvbWllXCIsXG4gICAgXCJOYXBvbGVvblwiLFxuICAgIFwiTmFyY2lzb1wiLFxuICAgIFwiTmFzaFwiLFxuICAgIFwiTmFzaXJcIixcbiAgICBcIk5hdFwiLFxuICAgIFwiTmF0YWxpYVwiLFxuICAgIFwiTmF0YWxpZVwiLFxuICAgIFwiTmF0YXNoYVwiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJOYXRoYW5hZWxcIixcbiAgICBcIk5hdGhhbmlhbFwiLFxuICAgIFwiTmF0aGFuaWVsXCIsXG4gICAgXCJOYXRoZW5cIixcbiAgICBcIk5heWVsaVwiLFxuICAgIFwiTmVhbFwiLFxuICAgIFwiTmVkXCIsXG4gICAgXCJOZWRyYVwiLFxuICAgIFwiTmVoYVwiLFxuICAgIFwiTmVpbFwiLFxuICAgIFwiTmVsZGFcIixcbiAgICBcIk5lbGxhXCIsXG4gICAgXCJOZWxsZVwiLFxuICAgIFwiTmVsbGllXCIsXG4gICAgXCJOZWxzXCIsXG4gICAgXCJOZWxzb25cIixcbiAgICBcIk5lb21hXCIsXG4gICAgXCJOZXN0b3JcIixcbiAgICBcIk5ldHRpZVwiLFxuICAgIFwiTmV2YVwiLFxuICAgIFwiTmV3ZWxsXCIsXG4gICAgXCJOZXd0b25cIixcbiAgICBcIk5pYVwiLFxuICAgIFwiTmljaG9sYXNcIixcbiAgICBcIk5pY2hvbGF1c1wiLFxuICAgIFwiTmljaG9sZVwiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmlja2xhdXNcIixcbiAgICBcIk5pY2tvbGFzXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOaWNvbGFcIixcbiAgICBcIk5pY29sYXNcIixcbiAgICBcIk5pY29sZVwiLFxuICAgIFwiTmljb2xldHRlXCIsXG4gICAgXCJOaWdlbFwiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWtraVwiLFxuICAgIFwiTmlra29cIixcbiAgICBcIk5pa29cIixcbiAgICBcIk5pa29sYXNcIixcbiAgICBcIk5pbHNcIixcbiAgICBcIk5pbmFcIixcbiAgICBcIk5vYWhcIixcbiAgICBcIk5vYmxlXCIsXG4gICAgXCJOb2VcIixcbiAgICBcIk5vZWxcIixcbiAgICBcIk5vZWxpYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5vZW1pZVwiLFxuICAgIFwiTm9lbXlcIixcbiAgICBcIk5vbGFcIixcbiAgICBcIk5vbGFuXCIsXG4gICAgXCJOb25hXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJOb3JiZXJ0XCIsXG4gICAgXCJOb3JiZXJ0b1wiLFxuICAgIFwiTm9yZW5lXCIsXG4gICAgXCJOb3JtYVwiLFxuICAgIFwiTm9ycmlzXCIsXG4gICAgXCJOb3J2YWxcIixcbiAgICBcIk5vcndvb2RcIixcbiAgICBcIk5vdmFcIixcbiAgICBcIk5vdmVsbGFcIixcbiAgICBcIk55YVwiLFxuICAgIFwiTnlhaFwiLFxuICAgIFwiTnlhc2lhXCIsXG4gICAgXCJPYmllXCIsXG4gICAgXCJPY2VhbmVcIixcbiAgICBcIk9jaWVcIixcbiAgICBcIk9jdGF2aWFcIixcbiAgICBcIk9kYVwiLFxuICAgIFwiT2RlbGxcIixcbiAgICBcIk9kZXNzYVwiLFxuICAgIFwiT2RpZVwiLFxuICAgIFwiT2ZlbGlhXCIsXG4gICAgXCJPa2V5XCIsXG4gICAgXCJPbGFcIixcbiAgICBcIk9sYWZcIixcbiAgICBcIk9sZVwiLFxuICAgIFwiT2xlblwiLFxuICAgIFwiT2xldGFcIixcbiAgICBcIk9sZ2FcIixcbiAgICBcIk9saW5cIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiT2xsaWVcIixcbiAgICBcIk9tYVwiLFxuICAgIFwiT21hcmlcIixcbiAgICBcIk9tZXJcIixcbiAgICBcIk9uYVwiLFxuICAgIFwiT25pZVwiLFxuICAgIFwiT3BhbFwiLFxuICAgIFwiT3BoZWxpYVwiLFxuICAgIFwiT3JhXCIsXG4gICAgXCJPcmFsXCIsXG4gICAgXCJPcmFuXCIsXG4gICAgXCJPcmVuXCIsXG4gICAgXCJPcmllXCIsXG4gICAgXCJPcmluXCIsXG4gICAgXCJPcmlvblwiLFxuICAgIFwiT3JsYW5kXCIsXG4gICAgXCJPcmxhbmRvXCIsXG4gICAgXCJPcmxvXCIsXG4gICAgXCJPcnBoYVwiLFxuICAgIFwiT3JyaW5cIixcbiAgICBcIk9ydmFsXCIsXG4gICAgXCJPcnZpbGxlXCIsXG4gICAgXCJPc2JhbGRvXCIsXG4gICAgXCJPc2Jvcm5lXCIsXG4gICAgXCJPc2NhclwiLFxuICAgIFwiT3N2YWxkb1wiLFxuICAgIFwiT3N3YWxkXCIsXG4gICAgXCJPc3dhbGRvXCIsXG4gICAgXCJPdGhhXCIsXG4gICAgXCJPdGhvXCIsXG4gICAgXCJPdGlsaWFcIixcbiAgICBcIk90aXNcIixcbiAgICBcIk90dGlsaWVcIixcbiAgICBcIk90dGlzXCIsXG4gICAgXCJPdHRvXCIsXG4gICAgXCJPdmFcIixcbiAgICBcIk93ZW5cIixcbiAgICBcIk96ZWxsYVwiLFxuICAgIFwiUGFibG9cIixcbiAgICBcIlBhaWdlXCIsXG4gICAgXCJQYWxtYVwiLFxuICAgIFwiUGFtZWxhXCIsXG4gICAgXCJQYW5zeVwiLFxuICAgIFwiUGFvbG9cIixcbiAgICBcIlBhcmlzXCIsXG4gICAgXCJQYXJrZXJcIixcbiAgICBcIlBhc2NhbGVcIixcbiAgICBcIlBhc3F1YWxlXCIsXG4gICAgXCJQYXRcIixcbiAgICBcIlBhdGllbmNlXCIsXG4gICAgXCJQYXRyaWNpYVwiLFxuICAgIFwiUGF0cmlja1wiLFxuICAgIFwiUGF0c3lcIixcbiAgICBcIlBhdHRpZVwiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiUGF1bGFcIixcbiAgICBcIlBhdWxpbmVcIixcbiAgICBcIlBheHRvblwiLFxuICAgIFwiUGF5dG9uXCIsXG4gICAgXCJQZWFybFwiLFxuICAgIFwiUGVhcmxpZVwiLFxuICAgIFwiUGVhcmxpbmVcIixcbiAgICBcIlBlZHJvXCIsXG4gICAgXCJQZWdnaWVcIixcbiAgICBcIlBlbmVsb3BlXCIsXG4gICAgXCJQZXJjaXZhbFwiLFxuICAgIFwiUGVyY3lcIixcbiAgICBcIlBlcnJ5XCIsXG4gICAgXCJQZXRlXCIsXG4gICAgXCJQZXRlclwiLFxuICAgIFwiUGV0cmFcIixcbiAgICBcIlBleXRvblwiLFxuICAgIFwiUGhpbGlwXCIsXG4gICAgXCJQaG9lYmVcIixcbiAgICBcIlBoeWxsaXNcIixcbiAgICBcIlBpZXJjZVwiLFxuICAgIFwiUGllcnJlXCIsXG4gICAgXCJQaWV0cm9cIixcbiAgICBcIlBpbmtcIixcbiAgICBcIlBpbmtpZVwiLFxuICAgIFwiUGlwZXJcIixcbiAgICBcIlBvbGx5XCIsXG4gICAgXCJQb3J0ZXJcIixcbiAgICBcIlByZWNpb3VzXCIsXG4gICAgXCJQcmVzbGV5XCIsXG4gICAgXCJQcmVzdG9uXCIsXG4gICAgXCJQcmljZVwiLFxuICAgIFwiUHJpbmNlXCIsXG4gICAgXCJQcmluY2Vzc1wiLFxuICAgIFwiUHJpc2NpbGxhXCIsXG4gICAgXCJQcm92aWRlbmNpXCIsXG4gICAgXCJQcnVkZW5jZVwiLFxuICAgIFwiUXVlZW5cIixcbiAgICBcIlF1ZWVuaWVcIixcbiAgICBcIlF1ZW50aW5cIixcbiAgICBcIlF1aW5jeVwiLFxuICAgIFwiUXVpbm5cIixcbiAgICBcIlF1aW50ZW5cIixcbiAgICBcIlF1aW50b25cIixcbiAgICBcIlJhY2hhZWxcIixcbiAgICBcIlJhY2hlbFwiLFxuICAgIFwiUmFjaGVsbGVcIixcbiAgICBcIlJhZVwiLFxuICAgIFwiUmFlZ2FuXCIsXG4gICAgXCJSYWZhZWxcIixcbiAgICBcIlJhZmFlbGFcIixcbiAgICBcIlJhaGVlbVwiLFxuICAgIFwiUmFoc2FhblwiLFxuICAgIFwiUmFodWxcIixcbiAgICBcIlJhaW5hXCIsXG4gICAgXCJSYWxlaWdoXCIsXG4gICAgXCJSYWxwaFwiLFxuICAgIFwiUmFtaXJvXCIsXG4gICAgXCJSYW1vblwiLFxuICAgIFwiUmFtb25hXCIsXG4gICAgXCJSYW5kYWxcIixcbiAgICBcIlJhbmRhbGxcIixcbiAgICBcIlJhbmRpXCIsXG4gICAgXCJSYW5keVwiLFxuICAgIFwiUmFuc29tXCIsXG4gICAgXCJSYW91bFwiLFxuICAgIFwiUmFwaGFlbFwiLFxuICAgIFwiUmFwaGFlbGxlXCIsXG4gICAgXCJSYXF1ZWxcIixcbiAgICBcIlJhc2hhZFwiLFxuICAgIFwiUmFzaGF3blwiLFxuICAgIFwiUmFzaGVlZFwiLFxuICAgIFwiUmF1bFwiLFxuICAgIFwiUmF2ZW5cIixcbiAgICBcIlJheVwiLFxuICAgIFwiUmF5bW9uZFwiLFxuICAgIFwiUmF5bXVuZG9cIixcbiAgICBcIlJlYWdhblwiLFxuICAgIFwiUmVhbm5hXCIsXG4gICAgXCJSZWJhXCIsXG4gICAgXCJSZWJlY2FcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJlYmVrYVwiLFxuICAgIFwiUmViZWthaFwiLFxuICAgIFwiUmVlY2VcIixcbiAgICBcIlJlZWRcIixcbiAgICBcIlJlZXNlXCIsXG4gICAgXCJSZWdhblwiLFxuICAgIFwiUmVnZ2llXCIsXG4gICAgXCJSZWdpbmFsZFwiLFxuICAgIFwiUmVpZFwiLFxuICAgIFwiUmVpbGx5XCIsXG4gICAgXCJSZWluYVwiLFxuICAgIFwiUmVpbmhvbGRcIixcbiAgICBcIlJlbWluZ3RvblwiLFxuICAgIFwiUmVuZVwiLFxuICAgIFwiUmVuZWVcIixcbiAgICBcIlJlc3NpZVwiLFxuICAgIFwiUmV0YVwiLFxuICAgIFwiUmV0aGFcIixcbiAgICBcIlJldHRhXCIsXG4gICAgXCJSZXViZW5cIixcbiAgICBcIlJldmFcIixcbiAgICBcIlJleFwiLFxuICAgIFwiUmV5XCIsXG4gICAgXCJSZXllc1wiLFxuICAgIFwiUmV5bXVuZG9cIixcbiAgICBcIlJleW5hXCIsXG4gICAgXCJSZXlub2xkXCIsXG4gICAgXCJSaGVhXCIsXG4gICAgXCJSaGV0dFwiLFxuICAgIFwiUmhpYW5uYVwiLFxuICAgIFwiUmhpYW5ub25cIixcbiAgICBcIlJob2RhXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJSaWNoaWVcIixcbiAgICBcIlJpY2htb25kXCIsXG4gICAgXCJSaWNrXCIsXG4gICAgXCJSaWNrZXlcIixcbiAgICBcIlJpY2tpZVwiLFxuICAgIFwiUmlja3lcIixcbiAgICBcIlJpY29cIixcbiAgICBcIlJpZ29iZXJ0b1wiLFxuICAgIFwiUmlsZXlcIixcbiAgICBcIlJpdGFcIixcbiAgICBcIlJpdmVyXCIsXG4gICAgXCJSb2JiXCIsXG4gICAgXCJSb2JiaWVcIixcbiAgICBcIlJvYmVydFwiLFxuICAgIFwiUm9iZXJ0YVwiLFxuICAgIFwiUm9iZXJ0b1wiLFxuICAgIFwiUm9iaW5cIixcbiAgICBcIlJvYnluXCIsXG4gICAgXCJSb2Npb1wiLFxuICAgIFwiUm9ja3lcIixcbiAgICBcIlJvZFwiLFxuICAgIFwiUm9kZXJpY2tcIixcbiAgICBcIlJvZGdlclwiLFxuICAgIFwiUm9kb2xmb1wiLFxuICAgIFwiUm9kcmlja1wiLFxuICAgIFwiUm9kcmlnb1wiLFxuICAgIFwiUm9lbFwiLFxuICAgIFwiUm9nZWxpb1wiLFxuICAgIFwiUm9nZXJcIixcbiAgICBcIlJvZ2Vyc1wiLFxuICAgIFwiUm9sYW5kb1wiLFxuICAgIFwiUm9sbGluXCIsXG4gICAgXCJSb21hXCIsXG4gICAgXCJSb21haW5lXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiUm9uXCIsXG4gICAgXCJSb25hbGRvXCIsXG4gICAgXCJSb25ueVwiLFxuICAgIFwiUm9vc2V2ZWx0XCIsXG4gICAgXCJSb3J5XCIsXG4gICAgXCJSb3NhXCIsXG4gICAgXCJSb3NhbGVlXCIsXG4gICAgXCJSb3NhbGlhXCIsXG4gICAgXCJSb3NhbGluZFwiLFxuICAgIFwiUm9zYWxpbmRhXCIsXG4gICAgXCJSb3NhbHluXCIsXG4gICAgXCJSb3NhbW9uZFwiLFxuICAgIFwiUm9zYW5uYVwiLFxuICAgIFwiUm9zYXJpb1wiLFxuICAgIFwiUm9zY29lXCIsXG4gICAgXCJSb3NlXCIsXG4gICAgXCJSb3NlbGxhXCIsXG4gICAgXCJSb3NlbHluXCIsXG4gICAgXCJSb3NlbWFyaWVcIixcbiAgICBcIlJvc2VtYXJ5XCIsXG4gICAgXCJSb3NlbmRvXCIsXG4gICAgXCJSb3NldHRhXCIsXG4gICAgXCJSb3NpZVwiLFxuICAgIFwiUm9zaW5hXCIsXG4gICAgXCJSb3NseW5cIixcbiAgICBcIlJvc3NcIixcbiAgICBcIlJvc3NpZVwiLFxuICAgIFwiUm93YW5cIixcbiAgICBcIlJvd2VuYVwiLFxuICAgIFwiUm93bGFuZFwiLFxuICAgIFwiUm94YW5lXCIsXG4gICAgXCJSb3hhbm5lXCIsXG4gICAgXCJSb3lcIixcbiAgICBcIlJveWFsXCIsXG4gICAgXCJSb3ljZVwiLFxuICAgIFwiUm96ZWxsYVwiLFxuICAgIFwiUnViZW5cIixcbiAgICBcIlJ1YmllXCIsXG4gICAgXCJSdWJ5XCIsXG4gICAgXCJSdWJ5ZVwiLFxuICAgIFwiUnVkb2xwaFwiLFxuICAgIFwiUnVkeVwiLFxuICAgIFwiUnVwZXJ0XCIsXG4gICAgXCJSdXNzXCIsXG4gICAgXCJSdXNzZWxcIixcbiAgICBcIlJ1c3NlbGxcIixcbiAgICBcIlJ1c3R5XCIsXG4gICAgXCJSdXRoXCIsXG4gICAgXCJSdXRoZVwiLFxuICAgIFwiUnV0aGllXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJSeWFublwiLFxuICAgIFwiUnlkZXJcIixcbiAgICBcIlJ5bGFuXCIsXG4gICAgXCJSeWxlZVwiLFxuICAgIFwiUnlsZWlnaFwiLFxuICAgIFwiUnlsZXlcIixcbiAgICBcIlNhYmluYVwiLFxuICAgIFwiU2FicmluYVwiLFxuICAgIFwiU2FicnluYVwiLFxuICAgIFwiU2FkaWVcIixcbiAgICBcIlNhZHllXCIsXG4gICAgXCJTYWdlXCIsXG4gICAgXCJTYWlnZVwiLFxuICAgIFwiU2FsbGllXCIsXG4gICAgXCJTYWxseVwiLFxuICAgIFwiU2FsbWFcIixcbiAgICBcIlNhbHZhZG9yXCIsXG4gICAgXCJTYWx2YXRvcmVcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiU2FtYW50YVwiLFxuICAgIFwiU2FtYW50aGFcIixcbiAgICBcIlNhbWFyYVwiLFxuICAgIFwiU2FtaXJcIixcbiAgICBcIlNhbW1pZVwiLFxuICAgIFwiU2FtbXlcIixcbiAgICBcIlNhbXNvblwiLFxuICAgIFwiU2FuZHJhXCIsXG4gICAgXCJTYW5kcmluZVwiLFxuICAgIFwiU2FuZHlcIixcbiAgICBcIlNhbmZvcmRcIixcbiAgICBcIlNhbnRhXCIsXG4gICAgXCJTYW50aWFnb1wiLFxuICAgIFwiU2FudGluYVwiLFxuICAgIFwiU2FudGlub1wiLFxuICAgIFwiU2FudG9zXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiU2FyYWlcIixcbiAgICBcIlNhcmluYVwiLFxuICAgIFwiU2FzaGFcIixcbiAgICBcIlNhdWxcIixcbiAgICBcIlNhdmFuYWhcIixcbiAgICBcIlNhdmFubmFcIixcbiAgICBcIlNhdmFubmFoXCIsXG4gICAgXCJTYXZpb25cIixcbiAgICBcIlNjYXJsZXR0XCIsXG4gICAgXCJTY2h1eWxlclwiLFxuICAgIFwiU2NvdFwiLFxuICAgIFwiU2NvdHRpZVwiLFxuICAgIFwiU2NvdHR5XCIsXG4gICAgXCJTZWFtdXNcIixcbiAgICBcIlNlYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiU2Vkcmlja1wiLFxuICAgIFwiU2VsZW5hXCIsXG4gICAgXCJTZWxpbmFcIixcbiAgICBcIlNlbG1lclwiLFxuICAgIFwiU2VyZW5hXCIsXG4gICAgXCJTZXJlbml0eVwiLFxuICAgIFwiU2V0aFwiLFxuICAgIFwiU2hhZFwiLFxuICAgIFwiU2hhaW5hXCIsXG4gICAgXCJTaGFraXJhXCIsXG4gICAgXCJTaGFuYVwiLFxuICAgIFwiU2hhbmVcIixcbiAgICBcIlNoYW5lbFwiLFxuICAgIFwiU2hhbmVsbGVcIixcbiAgICBcIlNoYW5pYVwiLFxuICAgIFwiU2hhbmllXCIsXG4gICAgXCJTaGFuaXlhXCIsXG4gICAgXCJTaGFubmFcIixcbiAgICBcIlNoYW5ub25cIixcbiAgICBcIlNoYW5ueVwiLFxuICAgIFwiU2hhbm9uXCIsXG4gICAgXCJTaGFueVwiLFxuICAgIFwiU2hhcm9uXCIsXG4gICAgXCJTaGF1blwiLFxuICAgIFwiU2hhd25cIixcbiAgICBcIlNoYXduYVwiLFxuICAgIFwiU2hheWxlZVwiLFxuICAgIFwiU2hheW5hXCIsXG4gICAgXCJTaGF5bmVcIixcbiAgICBcIlNoZWFcIixcbiAgICBcIlNoZWlsYVwiLFxuICAgIFwiU2hlbGRvblwiLFxuICAgIFwiU2hlbWFyXCIsXG4gICAgXCJTaGVyaWRhblwiLFxuICAgIFwiU2hlcm1hblwiLFxuICAgIFwiU2hlcndvb2RcIixcbiAgICBcIlNoaXJsZXlcIixcbiAgICBcIlNoeWFublwiLFxuICAgIFwiU2h5YW5uZVwiLFxuICAgIFwiU2lieWxcIixcbiAgICBcIlNpZFwiLFxuICAgIFwiU2lkbmV5XCIsXG4gICAgXCJTaWVubmFcIixcbiAgICBcIlNpZXJyYVwiLFxuICAgIFwiU2lnbXVuZFwiLFxuICAgIFwiU2lncmlkXCIsXG4gICAgXCJTaWd1cmRcIixcbiAgICBcIlNpbGFzXCIsXG4gICAgXCJTaW1cIixcbiAgICBcIlNpbWVvblwiLFxuICAgIFwiU2ltb25lXCIsXG4gICAgXCJTaW5jZXJlXCIsXG4gICAgXCJTaXN0ZXJcIixcbiAgICBcIlNreWVcIixcbiAgICBcIlNreWxhXCIsXG4gICAgXCJTa3lsYXJcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJTb2xlZGFkXCIsXG4gICAgXCJTb2xvblwiLFxuICAgIFwiU29uaWFcIixcbiAgICBcIlNvbm55XCIsXG4gICAgXCJTb255YVwiLFxuICAgIFwiU29waGlhXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIlNwZW5jZXJcIixcbiAgICBcIlN0YWNleVwiLFxuICAgIFwiU3RhY3lcIixcbiAgICBcIlN0YW5cIixcbiAgICBcIlN0YW5mb3JkXCIsXG4gICAgXCJTdGFubGV5XCIsXG4gICAgXCJTdGFudG9uXCIsXG4gICAgXCJTdGVmYW5cIixcbiAgICBcIlN0ZWZhbmllXCIsXG4gICAgXCJTdGVsbGFcIixcbiAgICBcIlN0ZXBoYW5cIixcbiAgICBcIlN0ZXBoYW5pYVwiLFxuICAgIFwiU3RlcGhhbmllXCIsXG4gICAgXCJTdGVwaGFueVwiLFxuICAgIFwiU3RlcGhlblwiLFxuICAgIFwiU3RlcGhvblwiLFxuICAgIFwiU3RlcmxpbmdcIixcbiAgICBcIlN0ZXZlXCIsXG4gICAgXCJTdGV2aWVcIixcbiAgICBcIlN0ZXdhcnRcIixcbiAgICBcIlN0b25lXCIsXG4gICAgXCJTdHVhcnRcIixcbiAgICBcIlN1bW1lclwiLFxuICAgIFwiU3VubnlcIixcbiAgICBcIlN1c2FuXCIsXG4gICAgXCJTdXNhbmFcIixcbiAgICBcIlN1c2FubmFcIixcbiAgICBcIlN1c2llXCIsXG4gICAgXCJTdXphbm5lXCIsXG4gICAgXCJTdmVuXCIsXG4gICAgXCJTeWJsZVwiLFxuICAgIFwiU3lkbmVlXCIsXG4gICAgXCJTeWRuZXlcIixcbiAgICBcIlN5ZG5pXCIsXG4gICAgXCJTeWRuaWVcIixcbiAgICBcIlN5bHZhblwiLFxuICAgIFwiU3lsdmVzdGVyXCIsXG4gICAgXCJTeWx2aWFcIixcbiAgICBcIlRhYml0aGFcIixcbiAgICBcIlRhZFwiLFxuICAgIFwiVGFsaWFcIixcbiAgICBcIlRhbG9uXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIlRhbWlhXCIsXG4gICAgXCJUYW5pYVwiLFxuICAgIFwiVGFubmVyXCIsXG4gICAgXCJUYW55YVwiLFxuICAgIFwiVGFyYVwiLFxuICAgIFwiVGFyeW5cIixcbiAgICBcIlRhdGVcIixcbiAgICBcIlRhdHVtXCIsXG4gICAgXCJUYXR5YW5hXCIsXG4gICAgXCJUYXVyZWFuXCIsXG4gICAgXCJUYXZhcmVzXCIsXG4gICAgXCJUYXlhXCIsXG4gICAgXCJUYXlsb3JcIixcbiAgICBcIlRlYWdhblwiLFxuICAgIFwiVGVkXCIsXG4gICAgXCJUZWxseVwiLFxuICAgIFwiVGVyZW5jZVwiLFxuICAgIFwiVGVyZXNhXCIsXG4gICAgXCJUZXJyYW5jZVwiLFxuICAgIFwiVGVycmVsbFwiLFxuICAgIFwiVGVycmVuY2VcIixcbiAgICBcIlRlcnJpbGxcIixcbiAgICBcIlRlcnJ5XCIsXG4gICAgXCJUZXNzXCIsXG4gICAgXCJUZXNzaWVcIixcbiAgICBcIlRldmluXCIsXG4gICAgXCJUaGFkXCIsXG4gICAgXCJUaGFkZGV1c1wiLFxuICAgIFwiVGhhbGlhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUaGVsbWFcIixcbiAgICBcIlRoZW9cIixcbiAgICBcIlRoZW9kb3JhXCIsXG4gICAgXCJUaGVvZG9yZVwiLFxuICAgIFwiVGhlcmVzYVwiLFxuICAgIFwiVGhlcmVzZVwiLFxuICAgIFwiVGhlcmVzaWFcIixcbiAgICBcIlRoZXJvblwiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJUaG9yYVwiLFxuICAgIFwiVGh1cm1hblwiLFxuICAgIFwiVGlhXCIsXG4gICAgXCJUaWFuYVwiLFxuICAgIFwiVGlhbm5hXCIsXG4gICAgXCJUaWFyYVwiLFxuICAgIFwiVGllcnJhXCIsXG4gICAgXCJUaWZmYW55XCIsXG4gICAgXCJUaWxsbWFuXCIsXG4gICAgXCJUaW1tb3RoeVwiLFxuICAgIFwiVGltbXlcIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRpbmFcIixcbiAgICBcIlRpdG9cIixcbiAgICBcIlRpdHVzXCIsXG4gICAgXCJUb2JpblwiLFxuICAgIFwiVG9ieVwiLFxuICAgIFwiVG9kXCIsXG4gICAgXCJUb21cIixcbiAgICBcIlRvbWFzXCIsXG4gICAgXCJUb21hc2FcIixcbiAgICBcIlRvbW1pZVwiLFxuICAgIFwiVG9uZXlcIixcbiAgICBcIlRvbmlcIixcbiAgICBcIlRvbnlcIixcbiAgICBcIlRvcmV5XCIsXG4gICAgXCJUb3JyYW5jZVwiLFxuICAgIFwiVG9ycmV5XCIsXG4gICAgXCJUb3lcIixcbiAgICBcIlRyYWNlXCIsXG4gICAgXCJUcmFjZXlcIixcbiAgICBcIlRyYWN5XCIsXG4gICAgXCJUcmF2aXNcIixcbiAgICBcIlRyYXZvblwiLFxuICAgIFwiVHJlXCIsXG4gICAgXCJUcmVtYWluZVwiLFxuICAgIFwiVHJlbWF5bmVcIixcbiAgICBcIlRyZW50XCIsXG4gICAgXCJUcmVudG9uXCIsXG4gICAgXCJUcmVzc2FcIixcbiAgICBcIlRyZXNzaWVcIixcbiAgICBcIlRyZXZhXCIsXG4gICAgXCJUcmV2ZXJcIixcbiAgICBcIlRyZXZpb25cIixcbiAgICBcIlRyZXZvclwiLFxuICAgIFwiVHJleVwiLFxuICAgIFwiVHJpbml0eVwiLFxuICAgIFwiVHJpc2hhXCIsXG4gICAgXCJUcmlzdGlhblwiLFxuICAgIFwiVHJpc3RpblwiLFxuICAgIFwiVHJpc3RvblwiLFxuICAgIFwiVHJveVwiLFxuICAgIFwiVHJ1ZGllXCIsXG4gICAgXCJUcnljaWFcIixcbiAgICBcIlRyeXN0YW5cIixcbiAgICBcIlR1cm5lclwiLFxuICAgIFwiVHdpbGFcIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJUeXJhXCIsXG4gICAgXCJUeXJlZVwiLFxuICAgIFwiVHlyZWVrXCIsXG4gICAgXCJUeXJlbFwiLFxuICAgIFwiVHlyZWxsXCIsXG4gICAgXCJUeXJlc2VcIixcbiAgICBcIlR5cmlxdWVcIixcbiAgICBcIlR5c2hhd25cIixcbiAgICBcIlR5c29uXCIsXG4gICAgXCJVYmFsZG9cIixcbiAgICBcIlVsaWNlc1wiLFxuICAgIFwiVWxpc2VzXCIsXG4gICAgXCJVbmFcIixcbiAgICBcIlVuaXF1ZVwiLFxuICAgIFwiVXJiYW5cIixcbiAgICBcIlVyaWFoXCIsXG4gICAgXCJVcmllbFwiLFxuICAgIFwiVXJzdWxhXCIsXG4gICAgXCJWYWRhXCIsXG4gICAgXCJWYWxlbnRpblwiLFxuICAgIFwiVmFsZW50aW5hXCIsXG4gICAgXCJWYWxlbnRpbmVcIixcbiAgICBcIlZhbGVyaWVcIixcbiAgICBcIlZhbGxpZVwiLFxuICAgIFwiVmFuXCIsXG4gICAgXCJWYW5jZVwiLFxuICAgIFwiVmFuZXNzYVwiLFxuICAgIFwiVmF1Z2huXCIsXG4gICAgXCJWZWRhXCIsXG4gICAgXCJWZWxkYVwiLFxuICAgIFwiVmVsbGFcIixcbiAgICBcIlZlbG1hXCIsXG4gICAgXCJWZWx2YVwiLFxuICAgIFwiVmVuYVwiLFxuICAgIFwiVmVyZGFcIixcbiAgICBcIlZlcmRpZVwiLFxuICAgIFwiVmVyZ2llXCIsXG4gICAgXCJWZXJsYVwiLFxuICAgIFwiVmVybGllXCIsXG4gICAgXCJWZXJuXCIsXG4gICAgXCJWZXJuYVwiLFxuICAgIFwiVmVybmVyXCIsXG4gICAgXCJWZXJuaWNlXCIsXG4gICAgXCJWZXJuaWVcIixcbiAgICBcIlZlcm5vblwiLFxuICAgIFwiVmVyb25hXCIsXG4gICAgXCJWZXJvbmljYVwiLFxuICAgIFwiVmVzdGFcIixcbiAgICBcIlZpY2VudGFcIixcbiAgICBcIlZpY2VudGVcIixcbiAgICBcIlZpY2tpZVwiLFxuICAgIFwiVmlja3lcIixcbiAgICBcIlZpY3RvclwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpZGFcIixcbiAgICBcIlZpZGFsXCIsXG4gICAgXCJWaWxtYVwiLFxuICAgIFwiVmluY2VcIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIlZpbmNlbnphXCIsXG4gICAgXCJWaW5jZW56b1wiLFxuICAgIFwiVmlubmllXCIsXG4gICAgXCJWaW9sYVwiLFxuICAgIFwiVmlvbGV0XCIsXG4gICAgXCJWaW9sZXR0ZVwiLFxuICAgIFwiVmlyZ2llXCIsXG4gICAgXCJWaXJnaWxcIixcbiAgICBcIlZpcmdpbmlhXCIsXG4gICAgXCJWaXJnaW5pZVwiLFxuICAgIFwiVml0YVwiLFxuICAgIFwiVml0b1wiLFxuICAgIFwiVml2YVwiLFxuICAgIFwiVml2aWFuXCIsXG4gICAgXCJWaXZpYW5lXCIsXG4gICAgXCJWaXZpYW5uZVwiLFxuICAgIFwiVml2aWVuXCIsXG4gICAgXCJWaXZpZW5uZVwiLFxuICAgIFwiVmxhZGltaXJcIixcbiAgICBcIldhZGVcIixcbiAgICBcIldhaW5vXCIsXG4gICAgXCJXYWxkb1wiLFxuICAgIFwiV2Fsa2VyXCIsXG4gICAgXCJXYWxsYWNlXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbHRvblwiLFxuICAgIFwiV2FuZGFcIixcbiAgICBcIldhcmRcIixcbiAgICBcIldhcnJlblwiLFxuICAgIFwiV2F0c29uXCIsXG4gICAgXCJXYXZhXCIsXG4gICAgXCJXYXlsb25cIixcbiAgICBcIldheW5lXCIsXG4gICAgXCJXZWJzdGVyXCIsXG4gICAgXCJXZWxkb25cIixcbiAgICBcIldlbGxpbmd0b25cIixcbiAgICBcIldlbmRlbGxcIixcbiAgICBcIldlbmR5XCIsXG4gICAgXCJXZXJuZXJcIixcbiAgICBcIldlc3RsZXlcIixcbiAgICBcIldlc3RvblwiLFxuICAgIFwiV2hpdG5leVwiLFxuICAgIFwiV2lsYmVyXCIsXG4gICAgXCJXaWxiZXJ0XCIsXG4gICAgXCJXaWxidXJuXCIsXG4gICAgXCJXaWxleVwiLFxuICAgIFwiV2lsZm9yZFwiLFxuICAgIFwiV2lsZnJlZFwiLFxuICAgIFwiV2lsZnJlZG9cIixcbiAgICBcIldpbGZyaWRcIixcbiAgICBcIldpbGhlbG1cIixcbiAgICBcIldpbGhlbG1pbmVcIixcbiAgICBcIldpbGxcIixcbiAgICBcIldpbGxhXCIsXG4gICAgXCJXaWxsYXJkXCIsXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJXaWxsaWVcIixcbiAgICBcIldpbGxpc1wiLFxuICAgIFwiV2lsbG93XCIsXG4gICAgXCJXaWxseVwiLFxuICAgIFwiV2lsbWFcIixcbiAgICBcIldpbG1lclwiLFxuICAgIFwiV2lsc29uXCIsXG4gICAgXCJXaWx0b25cIixcbiAgICBcIldpbmZpZWxkXCIsXG4gICAgXCJXaW5pZnJlZFwiLFxuICAgIFwiV2lubmlmcmVkXCIsXG4gICAgXCJXaW5vbmFcIixcbiAgICBcIldpbnN0b25cIixcbiAgICBcIldvb2Ryb3dcIixcbiAgICBcIld5YXR0XCIsXG4gICAgXCJXeW1hblwiLFxuICAgIFwiWGFuZGVyXCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIlh6YXZpZXJcIixcbiAgICBcIllhZGlyYVwiLFxuICAgIFwiWWFzbWVlblwiLFxuICAgIFwiWWFzbWluXCIsXG4gICAgXCJZYXNtaW5lXCIsXG4gICAgXCJZYXptaW5cIixcbiAgICBcIlllc2VuaWFcIixcbiAgICBcIlllc3NlbmlhXCIsXG4gICAgXCJZb2xhbmRhXCIsXG4gICAgXCJZb3NoaWtvXCIsXG4gICAgXCJZdmV0dGVcIixcbiAgICBcIll2b25uZVwiLFxuICAgIFwiWmFjaGFyaWFoXCIsXG4gICAgXCJaYWNoYXJ5XCIsXG4gICAgXCJaYWNoZXJ5XCIsXG4gICAgXCJaYWNrXCIsXG4gICAgXCJaYWNrYXJ5XCIsXG4gICAgXCJaYWNrZXJ5XCIsXG4gICAgXCJaYWthcnlcIixcbiAgICBcIlphbmRlclwiLFxuICAgIFwiWmFuZVwiLFxuICAgIFwiWmFyaWFcIixcbiAgICBcIlplY2hhcmlhaFwiLFxuICAgIFwiWmVsZGFcIixcbiAgICBcIlplbGxhXCIsXG4gICAgXCJaZWxtYVwiLFxuICAgIFwiWmVuYVwiLFxuICAgIFwiWmV0dGFcIixcbiAgICBcIlppb25cIixcbiAgICBcIlppdGFcIixcbiAgICBcIlpvZVwiLFxuICAgIFwiWm9leVwiLFxuICAgIFwiWm9pZVwiLFxuICAgIFwiWm9pbGFcIixcbiAgICBcIlpvbGFcIixcbiAgICBcIlpvcmFcIixcbiAgICBcIlp1bGFcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBYmJvdHRcIixcbiAgICBcIkFiZXJuYXRoeVwiLFxuICAgIFwiQWJzaGlyZVwiLFxuICAgIFwiQWRhbXNcIixcbiAgICBcIkFsdGVud2VydGhcIixcbiAgICBcIkFuZGVyc29uXCIsXG4gICAgXCJBbmt1bmRpbmdcIixcbiAgICBcIkFybXN0cm9uZ1wiLFxuICAgIFwiQXVlclwiLFxuICAgIFwiQXVmZGVyaGFyXCIsXG4gICAgXCJCYWhyaW5nZXJcIixcbiAgICBcIkJhaWxleVwiLFxuICAgIFwiQmFsaXN0cmVyaVwiLFxuICAgIFwiQmFycm93c1wiLFxuICAgIFwiQmFydGVsbFwiLFxuICAgIFwiQmFydG9sZXR0aVwiLFxuICAgIFwiQmFydG9uXCIsXG4gICAgXCJCYXNoaXJpYW5cIixcbiAgICBcIkJhdHpcIixcbiAgICBcIkJhdWNoXCIsXG4gICAgXCJCYXVtYmFjaFwiLFxuICAgIFwiQmF5ZXJcIixcbiAgICBcIkJlYWhhblwiLFxuICAgIFwiQmVhdHR5XCIsXG4gICAgXCJCZWNodGVsYXJcIixcbiAgICBcIkJlY2tlclwiLFxuICAgIFwiQmVkbmFyXCIsXG4gICAgXCJCZWVyXCIsXG4gICAgXCJCZWllclwiLFxuICAgIFwiQmVyZ2VcIixcbiAgICBcIkJlcmduYXVtXCIsXG4gICAgXCJCZXJnc3Ryb21cIixcbiAgICBcIkJlcm5oYXJkXCIsXG4gICAgXCJCZXJuaWVyXCIsXG4gICAgXCJCaW5zXCIsXG4gICAgXCJCbGFuZGFcIixcbiAgICBcIkJsaWNrXCIsXG4gICAgXCJCbG9ja1wiLFxuICAgIFwiQm9kZVwiLFxuICAgIFwiQm9laG1cIixcbiAgICBcIkJvZ2FuXCIsXG4gICAgXCJCb2dpc2ljaFwiLFxuICAgIFwiQm9yZXJcIixcbiAgICBcIkJvc2NvXCIsXG4gICAgXCJCb3RzZm9yZFwiLFxuICAgIFwiQm95ZXJcIixcbiAgICBcIkJveWxlXCIsXG4gICAgXCJCcmFkdGtlXCIsXG4gICAgXCJCcmFrdXNcIixcbiAgICBcIkJyYXVuXCIsXG4gICAgXCJCcmVpdGVuYmVyZ1wiLFxuICAgIFwiQnJla2tlXCIsXG4gICAgXCJCcm93blwiLFxuICAgIFwiQnJ1ZW5cIixcbiAgICBcIkJ1Y2tyaWRnZVwiLFxuICAgIFwiQ2Fycm9sbFwiLFxuICAgIFwiQ2FydGVyXCIsXG4gICAgXCJDYXJ0d3JpZ2h0XCIsXG4gICAgXCJDYXNwZXJcIixcbiAgICBcIkNhc3NpblwiLFxuICAgIFwiQ2hhbXBsaW5cIixcbiAgICBcIkNocmlzdGlhbnNlblwiLFxuICAgIFwiQ29sZVwiLFxuICAgIFwiQ29sbGllclwiLFxuICAgIFwiQ29sbGluc1wiLFxuICAgIFwiQ29ublwiLFxuICAgIFwiQ29ubmVsbHlcIixcbiAgICBcIkNvbnJveVwiLFxuICAgIFwiQ29uc2lkaW5lXCIsXG4gICAgXCJDb3JrZXJ5XCIsXG4gICAgXCJDb3JtaWVyXCIsXG4gICAgXCJDb3J3aW5cIixcbiAgICBcIkNyZW1pblwiLFxuICAgIFwiQ3Jpc3RcIixcbiAgICBcIkNyb25hXCIsXG4gICAgXCJDcm9uaW5cIixcbiAgICBcIkNyb29rc1wiLFxuICAgIFwiQ3J1aWNrc2hhbmtcIixcbiAgICBcIkN1bW1lcmF0YVwiLFxuICAgIFwiQ3VtbWluZ3NcIixcbiAgICBcIkRhY2hcIixcbiAgICBcIkQnQW1vcmVcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFyZVwiLFxuICAgIFwiRGF1Z2hlcnR5XCIsXG4gICAgXCJEYXZpc1wiLFxuICAgIFwiRGVja293XCIsXG4gICAgXCJEZW5lc2lrXCIsXG4gICAgXCJEaWJiZXJ0XCIsXG4gICAgXCJEaWNrZW5zXCIsXG4gICAgXCJEaWNraVwiLFxuICAgIFwiRGlja2luc29uXCIsXG4gICAgXCJEaWV0cmljaFwiLFxuICAgIFwiRG9ubmVsbHlcIixcbiAgICBcIkRvb2xleVwiLFxuICAgIFwiRG91Z2xhc1wiLFxuICAgIFwiRG95bGVcIixcbiAgICBcIkR1QnVxdWVcIixcbiAgICBcIkR1cmdhblwiLFxuICAgIFwiRWJlcnRcIixcbiAgICBcIkVmZmVydHpcIixcbiAgICBcIkVpY2htYW5uXCIsXG4gICAgXCJFbWFyZFwiLFxuICAgIFwiRW1tZXJpY2hcIixcbiAgICBcIkVyZG1hblwiLFxuICAgIFwiRXJuc2VyXCIsXG4gICAgXCJGYWRlbFwiLFxuICAgIFwiRmFoZXlcIixcbiAgICBcIkZhcnJlbGxcIixcbiAgICBcIkZheVwiLFxuICAgIFwiRmVlbmV5XCIsXG4gICAgXCJGZWVzdFwiLFxuICAgIFwiRmVpbFwiLFxuICAgIFwiRmVycnlcIixcbiAgICBcIkZpc2hlclwiLFxuICAgIFwiRmxhdGxleVwiLFxuICAgIFwiRnJhbWlcIixcbiAgICBcIkZyYW5lY2tpXCIsXG4gICAgXCJGcmllc2VuXCIsXG4gICAgXCJGcml0c2NoXCIsXG4gICAgXCJGdW5rXCIsXG4gICAgXCJHYXlsb3JkXCIsXG4gICAgXCJHZXJob2xkXCIsXG4gICAgXCJHZXJsYWNoXCIsXG4gICAgXCJHaWJzb25cIixcbiAgICBcIkdpc2xhc29uXCIsXG4gICAgXCJHbGVhc29uXCIsXG4gICAgXCJHbGVpY2huZXJcIixcbiAgICBcIkdsb3ZlclwiLFxuICAgIFwiR29sZG5lclwiLFxuICAgIFwiR29vZHdpblwiLFxuICAgIFwiR29yY3phbnlcIixcbiAgICBcIkdvdHRsaWViXCIsXG4gICAgXCJHb3lldHRlXCIsXG4gICAgXCJHcmFkeVwiLFxuICAgIFwiR3JhaGFtXCIsXG4gICAgXCJHcmFudFwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWVuZmVsZGVyXCIsXG4gICAgXCJHcmVlbmhvbHRcIixcbiAgICBcIkdyaW1lc1wiLFxuICAgIFwiR3VsZ293c2tpXCIsXG4gICAgXCJHdXNpa293c2tpXCIsXG4gICAgXCJHdXRrb3dza2lcIixcbiAgICBcIkd1dG1hbm5cIixcbiAgICBcIkhhYWdcIixcbiAgICBcIkhhY2tldHRcIixcbiAgICBcIkhhZ2VuZXNcIixcbiAgICBcIkhhaG5cIixcbiAgICBcIkhhbGV5XCIsXG4gICAgXCJIYWx2b3Jzb25cIixcbiAgICBcIkhhbWlsbFwiLFxuICAgIFwiSGFtbWVzXCIsXG4gICAgXCJIYW5kXCIsXG4gICAgXCJIYW5lXCIsXG4gICAgXCJIYW5zZW5cIixcbiAgICBcIkhhcmJlclwiLFxuICAgIFwiSGFycmlzXCIsXG4gICAgXCJIYXJ0bWFublwiLFxuICAgIFwiSGFydmV5XCIsXG4gICAgXCJIYXVja1wiLFxuICAgIFwiSGF5ZXNcIixcbiAgICBcIkhlYW5leVwiLFxuICAgIFwiSGVhdGhjb3RlXCIsXG4gICAgXCJIZWdtYW5uXCIsXG4gICAgXCJIZWlkZW5yZWljaFwiLFxuICAgIFwiSGVsbGVyXCIsXG4gICAgXCJIZXJtYW5cIixcbiAgICBcIkhlcm1hbm5cIixcbiAgICBcIkhlcm1pc3RvblwiLFxuICAgIFwiSGVyem9nXCIsXG4gICAgXCJIZXNzZWxcIixcbiAgICBcIkhldHRpbmdlclwiLFxuICAgIFwiSGlja2xlXCIsXG4gICAgXCJIaWxsbFwiLFxuICAgIFwiSGlsbHNcIixcbiAgICBcIkhpbHBlcnRcIixcbiAgICBcIkhpbnR6XCIsXG4gICAgXCJIaXJ0aGVcIixcbiAgICBcIkhvZGtpZXdpY3pcIixcbiAgICBcIkhvZWdlclwiLFxuICAgIFwiSG9tZW5pY2tcIixcbiAgICBcIkhvcHBlXCIsXG4gICAgXCJIb3dlXCIsXG4gICAgXCJIb3dlbGxcIixcbiAgICBcIkh1ZHNvblwiLFxuICAgIFwiSHVlbFwiLFxuICAgIFwiSHVlbHNcIixcbiAgICBcIkh5YXR0XCIsXG4gICAgXCJKYWNvYmlcIixcbiAgICBcIkphY29ic1wiLFxuICAgIFwiSmFjb2Jzb25cIixcbiAgICBcIkpha3Vib3dza2lcIixcbiAgICBcIkphc2tvbHNraVwiLFxuICAgIFwiSmFzdFwiLFxuICAgIFwiSmVua2luc1wiLFxuICAgIFwiSmVyZGVcIixcbiAgICBcIkpvaG5zXCIsXG4gICAgXCJKb2huc29uXCIsXG4gICAgXCJKb2huc3RvblwiLFxuICAgIFwiSm9uZXNcIixcbiAgICBcIkthc3N1bGtlXCIsXG4gICAgXCJLYXV0emVyXCIsXG4gICAgXCJLZWVibGVyXCIsXG4gICAgXCJLZWVsaW5nXCIsXG4gICAgXCJLZW1tZXJcIixcbiAgICBcIktlcmx1a2VcIixcbiAgICBcIktlcnR6bWFublwiLFxuICAgIFwiS2Vzc2xlclwiLFxuICAgIFwiS2llaG5cIixcbiAgICBcIktpaG5cIixcbiAgICBcIktpbGJhY2tcIixcbiAgICBcIktpbmdcIixcbiAgICBcIktpcmxpblwiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktsaW5nXCIsXG4gICAgXCJLbG9ja29cIixcbiAgICBcIktvY2hcIixcbiAgICBcIktvZWxwaW5cIixcbiAgICBcIktvZXBwXCIsXG4gICAgXCJLb2hsZXJcIixcbiAgICBcIktvbm9wZWxza2lcIixcbiAgICBcIktvc3NcIixcbiAgICBcIktvdmFjZWtcIixcbiAgICBcIktvemV5XCIsXG4gICAgXCJLcmFqY2lrXCIsXG4gICAgXCJLcmVpZ2VyXCIsXG4gICAgXCJLcmlzXCIsXG4gICAgXCJLc2hsZXJpblwiLFxuICAgIFwiS3ViXCIsXG4gICAgXCJLdWhpY1wiLFxuICAgIFwiS3VobG1hblwiLFxuICAgIFwiS3VoblwiLFxuICAgIFwiS3VsYXNcIixcbiAgICBcIkt1bmRlXCIsXG4gICAgXCJLdW56ZVwiLFxuICAgIFwiS3VwaGFsXCIsXG4gICAgXCJLdXRjaFwiLFxuICAgIFwiS3V2YWxpc1wiLFxuICAgIFwiTGFiYWRpZVwiLFxuICAgIFwiTGFraW5cIixcbiAgICBcIkxhbmdcIixcbiAgICBcIkxhbmdvc2hcIixcbiAgICBcIkxhbmd3b3J0aFwiLFxuICAgIFwiTGFya2luXCIsXG4gICAgXCJMYXJzb25cIixcbiAgICBcIkxlYW5ub25cIixcbiAgICBcIkxlYnNhY2tcIixcbiAgICBcIkxlZG5lclwiLFxuICAgIFwiTGVmZmxlclwiLFxuICAgIFwiTGVncm9zXCIsXG4gICAgXCJMZWhuZXJcIixcbiAgICBcIkxlbWtlXCIsXG4gICAgXCJMZXNjaFwiLFxuICAgIFwiTGV1c2Noa2VcIixcbiAgICBcIkxpbmRcIixcbiAgICBcIkxpbmRncmVuXCIsXG4gICAgXCJMaXR0ZWxcIixcbiAgICBcIkxpdHRsZVwiLFxuICAgIFwiTG9ja21hblwiLFxuICAgIFwiTG93ZVwiLFxuICAgIFwiTHVib3dpdHpcIixcbiAgICBcIkx1ZWlsd2l0elwiLFxuICAgIFwiTHVldHRnZW5cIixcbiAgICBcIkx5bmNoXCIsXG4gICAgXCJNYWNlamtvdmljXCIsXG4gICAgXCJNYWNHeXZlclwiLFxuICAgIFwiTWFnZ2lvXCIsXG4gICAgXCJNYW5uXCIsXG4gICAgXCJNYW50ZVwiLFxuICAgIFwiTWFya3NcIixcbiAgICBcIk1hcnF1YXJkdFwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXllclwiLFxuICAgIFwiTWF5ZXJ0XCIsXG4gICAgXCJNY0NsdXJlXCIsXG4gICAgXCJNY0N1bGxvdWdoXCIsXG4gICAgXCJNY0Rlcm1vdHRcIixcbiAgICBcIk1jR2x5bm5cIixcbiAgICBcIk1jS2VuemllXCIsXG4gICAgXCJNY0xhdWdobGluXCIsXG4gICAgXCJNZWRodXJzdFwiLFxuICAgIFwiTWVydHpcIixcbiAgICBcIk1ldHpcIixcbiAgICBcIk1pbGxlclwiLFxuICAgIFwiTWlsbHNcIixcbiAgICBcIk1pdGNoZWxsXCIsXG4gICAgXCJNb2VuXCIsXG4gICAgXCJNb2hyXCIsXG4gICAgXCJNb25haGFuXCIsXG4gICAgXCJNb29yZVwiLFxuICAgIFwiTW9yYXJcIixcbiAgICBcIk1vcmlzc2V0dGVcIixcbiAgICBcIk1vc2Npc2tpXCIsXG4gICAgXCJNcmF6XCIsXG4gICAgXCJNdWVsbGVyXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk11cmF6aWtcIixcbiAgICBcIk11cnBoeVwiLFxuICAgIFwiTXVycmF5XCIsXG4gICAgXCJOYWRlclwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiTmllbm93XCIsXG4gICAgXCJOaWtvbGF1c1wiLFxuICAgIFwiTml0enNjaGVcIixcbiAgICBcIk5vbGFuXCIsXG4gICAgXCJPYmVyYnJ1bm5lclwiLFxuICAgIFwiTydDb25uZWxsXCIsXG4gICAgXCJPJ0Nvbm5lclwiLFxuICAgIFwiTydIYXJhXCIsXG4gICAgXCJPJ0tlZWZlXCIsXG4gICAgXCJPJ0tvblwiLFxuICAgIFwiT2t1bmV2YVwiLFxuICAgIFwiT2xzb25cIixcbiAgICBcIk9uZHJpY2thXCIsXG4gICAgXCJPJ1JlaWxseVwiLFxuICAgIFwiT3JuXCIsXG4gICAgXCJPcnRpelwiLFxuICAgIFwiT3NpbnNraVwiLFxuICAgIFwiUGFjb2NoYVwiLFxuICAgIFwiUGFkYmVyZ1wiLFxuICAgIFwiUGFnYWNcIixcbiAgICBcIlBhcmlzaWFuXCIsXG4gICAgXCJQYXJrZXJcIixcbiAgICBcIlBhdWNla1wiLFxuICAgIFwiUGZhbm5lcnN0aWxsXCIsXG4gICAgXCJQZmVmZmVyXCIsXG4gICAgXCJQb2xsaWNoXCIsXG4gICAgXCJQb3Vyb3NcIixcbiAgICBcIlBvd2xvd3NraVwiLFxuICAgIFwiUHJlZG92aWNcIixcbiAgICBcIlByaWNlXCIsXG4gICAgXCJQcm9oYXNrYVwiLFxuICAgIFwiUHJvc2FjY29cIixcbiAgICBcIlB1cmR5XCIsXG4gICAgXCJRdWlnbGV5XCIsXG4gICAgXCJRdWl0em9uXCIsXG4gICAgXCJSYXRoXCIsXG4gICAgXCJSYXRrZVwiLFxuICAgIFwiUmF1XCIsXG4gICAgXCJSYXlub3JcIixcbiAgICBcIlJlaWNoZWxcIixcbiAgICBcIlJlaWNoZXJ0XCIsXG4gICAgXCJSZWlsbHlcIixcbiAgICBcIlJlaW5nZXJcIixcbiAgICBcIlJlbXBlbFwiLFxuICAgIFwiUmVubmVyXCIsXG4gICAgXCJSZXlub2xkc1wiLFxuICAgIFwiUmljZVwiLFxuICAgIFwiUmlwcGluXCIsXG4gICAgXCJSaXRjaGllXCIsXG4gICAgXCJSb2JlbFwiLFxuICAgIFwiUm9iZXJ0c1wiLFxuICAgIFwiUm9kcmlndWV6XCIsXG4gICAgXCJSb2dhaG5cIixcbiAgICBcIlJvaGFuXCIsXG4gICAgXCJSb2xmc29uXCIsXG4gICAgXCJSb21hZ3VlcmFcIixcbiAgICBcIlJvb2JcIixcbiAgICBcIlJvc2VuYmF1bVwiLFxuICAgIFwiUm93ZVwiLFxuICAgIFwiUnVlY2tlclwiLFxuICAgIFwiUnVub2xmc2RvdHRpclwiLFxuICAgIFwiUnVub2xmc3NvblwiLFxuICAgIFwiUnVudGVcIixcbiAgICBcIlJ1c3NlbFwiLFxuICAgIFwiUnV0aGVyZm9yZFwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiU2FuZm9yZFwiLFxuICAgIFwiU2F0dGVyZmllbGRcIixcbiAgICBcIlNhdWVyXCIsXG4gICAgXCJTYXdheW5cIixcbiAgICBcIlNjaGFkZW5cIixcbiAgICBcIlNjaGFlZmVyXCIsXG4gICAgXCJTY2hhbWJlcmdlclwiLFxuICAgIFwiU2NoaWxsZXJcIixcbiAgICBcIlNjaGltbWVsXCIsXG4gICAgXCJTY2hpbm5lclwiLFxuICAgIFwiU2NobWVsZXJcIixcbiAgICBcIlNjaG1pZHRcIixcbiAgICBcIlNjaG1pdHRcIixcbiAgICBcIlNjaG5laWRlclwiLFxuICAgIFwiU2Nob2VuXCIsXG4gICAgXCJTY2hvd2FsdGVyXCIsXG4gICAgXCJTY2hyb2VkZXJcIixcbiAgICBcIlNjaHVsaXN0XCIsXG4gICAgXCJTY2h1bHR6XCIsXG4gICAgXCJTY2h1bW1cIixcbiAgICBcIlNjaHVwcGVcIixcbiAgICBcIlNjaHVzdGVyXCIsXG4gICAgXCJTZW5nZXJcIixcbiAgICBcIlNoYW5haGFuXCIsXG4gICAgXCJTaGllbGRzXCIsXG4gICAgXCJTaW1vbmlzXCIsXG4gICAgXCJTaXBlc1wiLFxuICAgIFwiU2tpbGVzXCIsXG4gICAgXCJTbWl0aFwiLFxuICAgIFwiU21pdGhhbVwiLFxuICAgIFwiU3BlbmNlclwiLFxuICAgIFwiU3BpbmthXCIsXG4gICAgXCJTcG9yZXJcIixcbiAgICBcIlN0YW1tXCIsXG4gICAgXCJTdGFudG9uXCIsXG4gICAgXCJTdGFya1wiLFxuICAgIFwiU3RlaHJcIixcbiAgICBcIlN0ZXViZXJcIixcbiAgICBcIlN0aWVkZW1hbm5cIixcbiAgICBcIlN0b2tlc1wiLFxuICAgIFwiU3RvbHRlbmJlcmdcIixcbiAgICBcIlN0cmFja2VcIixcbiAgICBcIlN0cmVpY2hcIixcbiAgICBcIlN0cm9tYW5cIixcbiAgICBcIlN0cm9zaW5cIixcbiAgICBcIlN3YW5pYXdza2lcIixcbiAgICBcIlN3aWZ0XCIsXG4gICAgXCJUZXJyeVwiLFxuICAgIFwiVGhpZWxcIixcbiAgICBcIlRob21wc29uXCIsXG4gICAgXCJUaWxsbWFuXCIsXG4gICAgXCJUb3JwXCIsXG4gICAgXCJUb3JwaHlcIixcbiAgICBcIlRvd25lXCIsXG4gICAgXCJUb3lcIixcbiAgICBcIlRyYW50b3dcIixcbiAgICBcIlRyZW1ibGF5XCIsXG4gICAgXCJUcmV1dGVsXCIsXG4gICAgXCJUcm9tcFwiLFxuICAgIFwiVHVyY290dGVcIixcbiAgICBcIlR1cm5lclwiLFxuICAgIFwiVWxscmljaFwiLFxuICAgIFwiVXB0b25cIixcbiAgICBcIlZhbmRlcnZvcnRcIixcbiAgICBcIlZldW1cIixcbiAgICBcIlZvbGttYW5cIixcbiAgICBcIlZvblwiLFxuICAgIFwiVm9uUnVlZGVuXCIsXG4gICAgXCJXYWVsY2hpXCIsXG4gICAgXCJXYWxrZXJcIixcbiAgICBcIldhbHNoXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhcmRcIixcbiAgICBcIldhdGVyc1wiLFxuICAgIFwiV2F0c2ljYVwiLFxuICAgIFwiV2ViZXJcIixcbiAgICBcIldlaG5lclwiLFxuICAgIFwiV2VpbWFublwiLFxuICAgIFwiV2Vpc3NuYXRcIixcbiAgICBcIldlbGNoXCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJXaGl0ZVwiLFxuICAgIFwiV2llZ2FuZFwiLFxuICAgIFwiV2lsZGVybWFuXCIsXG4gICAgXCJXaWxraW5zb25cIixcbiAgICBcIldpbGxcIixcbiAgICBcIldpbGxpYW1zb25cIixcbiAgICBcIldpbGxtc1wiLFxuICAgIFwiV2luZGxlclwiLFxuICAgIFwiV2ludGhlaXNlclwiLFxuICAgIFwiV2lzb2t5XCIsXG4gICAgXCJXaXNvemtcIixcbiAgICBcIldpdHRpbmdcIixcbiAgICBcIldpemFcIixcbiAgICBcIldvbGZcIixcbiAgICBcIldvbGZmXCIsXG4gICAgXCJXdWNrZXJ0XCIsXG4gICAgXCJXdW5zY2hcIixcbiAgICBcIld5bWFuXCIsXG4gICAgXCJZb3N0XCIsXG4gICAgXCJZdW5kdFwiLFxuICAgIFwiWmJvbmNha1wiLFxuICAgIFwiWmVtbGFrXCIsXG4gICAgXCJaaWVtYW5uXCIsXG4gICAgXCJaaWVtZVwiLFxuICAgIFwiWnVsYXVmXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiTXIuXCIsXG4gICAgXCJNcnMuXCIsXG4gICAgXCJNcy5cIixcbiAgICBcIk1pc3NcIixcbiAgICBcIkRyLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiU3IuXCIsXG4gICAgXCJJXCIsXG4gICAgXCJJSVwiLFxuICAgIFwiSUlJXCIsXG4gICAgXCJJVlwiLFxuICAgIFwiVlwiLFxuICAgIFwiTURcIixcbiAgICBcIkREU1wiLFxuICAgIFwiUGhEXCIsXG4gICAgXCJEVk1cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJMZWFkXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RcIixcbiAgICAgIFwiQ29ycG9yYXRlXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiRnV0dXJlXCIsXG4gICAgICBcIlByb2R1Y3RcIixcbiAgICAgIFwiTmF0aW9uYWxcIixcbiAgICAgIFwiUmVnaW9uYWxcIixcbiAgICAgIFwiRGlzdHJpY3RcIixcbiAgICAgIFwiQ2VudHJhbFwiLFxuICAgICAgXCJHbG9iYWxcIixcbiAgICAgIFwiQ3VzdG9tZXJcIixcbiAgICAgIFwiSW52ZXN0b3JcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJJbnRlcm5hdGlvbmFsXCIsXG4gICAgICBcIkxlZ2FjeVwiLFxuICAgICAgXCJGb3J3YXJkXCIsXG4gICAgICBcIkludGVybmFsXCIsXG4gICAgICBcIkh1bWFuXCIsXG4gICAgICBcIkNoaWVmXCIsXG4gICAgICBcIlByaW5jaXBhbFwiXG4gICAgXSxcbiAgICBcImxldmVsXCI6IFtcbiAgICAgIFwiU29sdXRpb25zXCIsXG4gICAgICBcIlByb2dyYW1cIixcbiAgICAgIFwiQnJhbmRcIixcbiAgICAgIFwiU2VjdXJpdHlcIixcbiAgICAgIFwiUmVzZWFyY2hcIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIkRpcmVjdGl2ZXNcIixcbiAgICAgIFwiSW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiSW50ZWdyYXRpb25cIixcbiAgICAgIFwiRnVuY3Rpb25hbGl0eVwiLFxuICAgICAgXCJSZXNwb25zZVwiLFxuICAgICAgXCJQYXJhZGlnbVwiLFxuICAgICAgXCJUYWN0aWNzXCIsXG4gICAgICBcIklkZW50aXR5XCIsXG4gICAgICBcIk1hcmtldHNcIixcbiAgICAgIFwiR3JvdXBcIixcbiAgICAgIFwiRGl2aXNpb25cIixcbiAgICAgIFwiQXBwbGljYXRpb25zXCIsXG4gICAgICBcIk9wdGltaXphdGlvblwiLFxuICAgICAgXCJPcGVyYXRpb25zXCIsXG4gICAgICBcIkluZnJhc3RydWN0dXJlXCIsXG4gICAgICBcIkludHJhbmV0XCIsXG4gICAgICBcIkNvbW11bmljYXRpb25zXCIsXG4gICAgICBcIldlYlwiLFxuICAgICAgXCJCcmFuZGluZ1wiLFxuICAgICAgXCJRdWFsaXR5XCIsXG4gICAgICBcIkFzc3VyYW5jZVwiLFxuICAgICAgXCJNb2JpbGl0eVwiLFxuICAgICAgXCJBY2NvdW50c1wiLFxuICAgICAgXCJEYXRhXCIsXG4gICAgICBcIkNyZWF0aXZlXCIsXG4gICAgICBcIkNvbmZpZ3VyYXRpb25cIixcbiAgICAgIFwiQWNjb3VudGFiaWxpdHlcIixcbiAgICAgIFwiSW50ZXJhY3Rpb25zXCIsXG4gICAgICBcIkZhY3RvcnNcIixcbiAgICAgIFwiVXNhYmlsaXR5XCIsXG4gICAgICBcIk1ldHJpY3NcIlxuICAgIF0sXG4gICAgXCJqb2JcIjogW1xuICAgICAgXCJTdXBlcnZpc29yXCIsXG4gICAgICBcIkFzc29jaWF0ZVwiLFxuICAgICAgXCJFeGVjdXRpdmVcIixcbiAgICAgIFwiTGlhc29uXCIsXG4gICAgICBcIk9mZmljZXJcIixcbiAgICAgIFwiTWFuYWdlclwiLFxuICAgICAgXCJFbmdpbmVlclwiLFxuICAgICAgXCJTcGVjaWFsaXN0XCIsXG4gICAgICBcIkRpcmVjdG9yXCIsXG4gICAgICBcIkNvb3JkaW5hdG9yXCIsXG4gICAgICBcIkFkbWluaXN0cmF0b3JcIixcbiAgICAgIFwiQXJjaGl0ZWN0XCIsXG4gICAgICBcIkFuYWx5c3RcIixcbiAgICAgIFwiRGVzaWduZXJcIixcbiAgICAgIFwiUGxhbm5lclwiLFxuICAgICAgXCJPcmNoZXN0cmF0b3JcIixcbiAgICAgIFwiVGVjaG5pY2lhblwiLFxuICAgICAgXCJEZXZlbG9wZXJcIixcbiAgICAgIFwiUHJvZHVjZXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiRmFjaWxpdGF0b3JcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiUmVwcmVzZW50YXRpdmVcIixcbiAgICAgIFwiU3RyYXRlZ2lzdFwiXG4gICAgXVxuICB9LFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbmVuLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMtIyMjI1wiLFxuICAgIFwiKCMjIykgIyMjLSMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIjIyMuIyMjLiMjIyNcIixcbiAgICBcIiMjIy0jIyMtIyMjI1wiLFxuICAgIFwiKCMjIykgIyMjLSMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIjIyMuIyMjLiMjIyNcIixcbiAgICBcIiMjIy0jIyMtIyMjIyB4IyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjIyB4IyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjIyB4IyMjXCIsXG4gICAgXCIjIyMuIyMjLiMjIyMgeCMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiKCMjIykgIyMjLSMjIyMgeCMjIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjIyNcIlxuICBdXG59O1xuZW4uY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMtIyMjI1wiLFxuICAgIFwiKCMjIykgIyMjLSMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIjIyMuIyMjLiMjIyNcIlxuICBdXG59O1xuZW4uYnVzaW5lc3MgPSB7XG4gIFwiY3JlZGl0X2NhcmRfbnVtYmVyc1wiOiBbXG4gICAgXCIxMjM0LTIxMjEtMTIyMS0xMjExXCIsXG4gICAgXCIxMjEyLTEyMjEtMTEyMS0xMjM0XCIsXG4gICAgXCIxMjExLTEyMjEtMTIzNC0yMjAxXCIsXG4gICAgXCIxMjI4LTEyMjEtMTIyMS0xNDMxXCJcbiAgXSxcbiAgXCJjcmVkaXRfY2FyZF9leHBpcnlfZGF0ZXNcIjogW1xuICAgIFwiMjAxMS0xMC0xMlwiLFxuICAgIFwiMjAxMi0xMS0xMlwiLFxuICAgIFwiMjAxNS0xMS0xMVwiLFxuICAgIFwiMjAxMy05LTEyXCJcbiAgXSxcbiAgXCJjcmVkaXRfY2FyZF90eXBlc1wiOiBbXG4gICAgXCJ2aXNhXCIsXG4gICAgXCJtYXN0ZXJjYXJkXCIsXG4gICAgXCJhbWVyaWNhbmV4cHJlc3NcIixcbiAgICBcImRpc2NvdmVyXCJcbiAgXVxufTtcbmVuLmNvbW1lcmNlID0ge1xuICBcImNvbG9yXCI6IFtcbiAgICBcInJlZFwiLFxuICAgIFwiZ3JlZW5cIixcbiAgICBcImJsdWVcIixcbiAgICBcInllbGxvd1wiLFxuICAgIFwicHVycGxlXCIsXG4gICAgXCJtaW50IGdyZWVuXCIsXG4gICAgXCJ0ZWFsXCIsXG4gICAgXCJ3aGl0ZVwiLFxuICAgIFwiYmxhY2tcIixcbiAgICBcIm9yYW5nZVwiLFxuICAgIFwicGlua1wiLFxuICAgIFwiZ3JleVwiLFxuICAgIFwibWFyb29uXCIsXG4gICAgXCJ2aW9sZXRcIixcbiAgICBcInR1cnF1b2lzZVwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJza3kgYmx1ZVwiLFxuICAgIFwic2FsbW9uXCIsXG4gICAgXCJwbHVtXCIsXG4gICAgXCJvcmNoaWRcIixcbiAgICBcIm9saXZlXCIsXG4gICAgXCJtYWdlbnRhXCIsXG4gICAgXCJsaW1lXCIsXG4gICAgXCJpdm9yeVwiLFxuICAgIFwiaW5kaWdvXCIsXG4gICAgXCJnb2xkXCIsXG4gICAgXCJmdWNoc2lhXCIsXG4gICAgXCJjeWFuXCIsXG4gICAgXCJhenVyZVwiLFxuICAgIFwibGF2ZW5kZXJcIixcbiAgICBcInNpbHZlclwiXG4gIF0sXG4gIFwiZGVwYXJ0bWVudFwiOiBbXG4gICAgXCJCb29rc1wiLFxuICAgIFwiTW92aWVzXCIsXG4gICAgXCJNdXNpY1wiLFxuICAgIFwiR2FtZXNcIixcbiAgICBcIkVsZWN0cm9uaWNzXCIsXG4gICAgXCJDb21wdXRlcnNcIixcbiAgICBcIkhvbWVcIixcbiAgICBcIkdhcmRlblwiLFxuICAgIFwiVG9vbHNcIixcbiAgICBcIkdyb2NlcnlcIixcbiAgICBcIkhlYWx0aFwiLFxuICAgIFwiQmVhdXR5XCIsXG4gICAgXCJUb3lzXCIsXG4gICAgXCJLaWRzXCIsXG4gICAgXCJCYWJ5XCIsXG4gICAgXCJDbG90aGluZ1wiLFxuICAgIFwiU2hvZXNcIixcbiAgICBcIkpld2VsZXJ5XCIsXG4gICAgXCJTcG9ydHNcIixcbiAgICBcIk91dGRvb3JzXCIsXG4gICAgXCJBdXRvbW90aXZlXCIsXG4gICAgXCJJbmR1c3RyaWFsXCJcbiAgXSxcbiAgXCJwcm9kdWN0X25hbWVcIjoge1xuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiU21hbGxcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIlJ1c3RpY1wiLFxuICAgICAgXCJJbnRlbGxpZ2VudFwiLFxuICAgICAgXCJHb3JnZW91c1wiLFxuICAgICAgXCJJbmNyZWRpYmxlXCIsXG4gICAgICBcIkZhbnRhc3RpY1wiLFxuICAgICAgXCJQcmFjdGljYWxcIixcbiAgICAgIFwiU2xlZWtcIixcbiAgICAgIFwiQXdlc29tZVwiXG4gICAgXSxcbiAgICBcIm1hdGVyaWFsXCI6IFtcbiAgICAgIFwiU3RlZWxcIixcbiAgICAgIFwiV29vZGVuXCIsXG4gICAgICBcIkNvbmNyZXRlXCIsXG4gICAgICBcIlBsYXN0aWNcIixcbiAgICAgIFwiQ290dG9uXCIsXG4gICAgICBcIkdyYW5pdGVcIixcbiAgICAgIFwiUnViYmVyXCJcbiAgICBdLFxuICAgIFwicHJvZHVjdFwiOiBbXG4gICAgICBcIkNoYWlyXCIsXG4gICAgICBcIkNhclwiLFxuICAgICAgXCJDb21wdXRlclwiLFxuICAgICAgXCJHbG92ZXNcIixcbiAgICAgIFwiUGFudHNcIixcbiAgICAgIFwiU2hpcnRcIixcbiAgICAgIFwiVGFibGVcIixcbiAgICAgIFwiU2hvZXNcIixcbiAgICAgIFwiSGF0XCJcbiAgICBdXG4gIH1cbn07XG5lbi50ZWFtID0ge1xuICBcImNyZWF0dXJlXCI6IFtcbiAgICBcImFudHNcIixcbiAgICBcImJhdHNcIixcbiAgICBcImJlYXJzXCIsXG4gICAgXCJiZWVzXCIsXG4gICAgXCJiaXJkc1wiLFxuICAgIFwiYnVmZmFsb1wiLFxuICAgIFwiY2F0c1wiLFxuICAgIFwiY2hpY2tlbnNcIixcbiAgICBcImNhdHRsZVwiLFxuICAgIFwiZG9nc1wiLFxuICAgIFwiZG9scGhpbnNcIixcbiAgICBcImR1Y2tzXCIsXG4gICAgXCJlbGVwaGFudHNcIixcbiAgICBcImZpc2hlc1wiLFxuICAgIFwiZm94ZXNcIixcbiAgICBcImZyb2dzXCIsXG4gICAgXCJnZWVzZVwiLFxuICAgIFwiZ29hdHNcIixcbiAgICBcImhvcnNlc1wiLFxuICAgIFwia2FuZ2Fyb29zXCIsXG4gICAgXCJsaW9uc1wiLFxuICAgIFwibW9ua2V5c1wiLFxuICAgIFwib3dsc1wiLFxuICAgIFwib3hlblwiLFxuICAgIFwicGVuZ3VpbnNcIixcbiAgICBcInBlb3BsZVwiLFxuICAgIFwicGlnc1wiLFxuICAgIFwicmFiYml0c1wiLFxuICAgIFwic2hlZXBcIixcbiAgICBcInRpZ2Vyc1wiLFxuICAgIFwid2hhbGVzXCIsXG4gICAgXCJ3b2x2ZXNcIixcbiAgICBcInplYnJhc1wiLFxuICAgIFwiYmFuc2hlZXNcIixcbiAgICBcImNyb3dzXCIsXG4gICAgXCJibGFjayBjYXRzXCIsXG4gICAgXCJjaGltZXJhc1wiLFxuICAgIFwiZ2hvc3RzXCIsXG4gICAgXCJjb25zcGlyYXRvcnNcIixcbiAgICBcImRyYWdvbnNcIixcbiAgICBcImR3YXJ2ZXNcIixcbiAgICBcImVsdmVzXCIsXG4gICAgXCJlbmNoYW50ZXJzXCIsXG4gICAgXCJleG9yY2lzdHNcIixcbiAgICBcInNvbnNcIixcbiAgICBcImZvZXNcIixcbiAgICBcImdpYW50c1wiLFxuICAgIFwiZ25vbWVzXCIsXG4gICAgXCJnb2JsaW5zXCIsXG4gICAgXCJnb29zZXNcIixcbiAgICBcImdyaWZmaW5zXCIsXG4gICAgXCJseWNhbnRocm9wZXNcIixcbiAgICBcIm5lbWVzaXNcIixcbiAgICBcIm9ncmVzXCIsXG4gICAgXCJvcmFjbGVzXCIsXG4gICAgXCJwcm9waGV0c1wiLFxuICAgIFwic29yY2Vyb3JzXCIsXG4gICAgXCJzcGlkZXJzXCIsXG4gICAgXCJzcGlyaXRzXCIsXG4gICAgXCJ2YW1waXJlc1wiLFxuICAgIFwid2FybG9ja3NcIixcbiAgICBcInZpeGVuc1wiLFxuICAgIFwid2VyZXdvbHZlc1wiLFxuICAgIFwid2l0Y2hlc1wiLFxuICAgIFwid29yc2hpcGVyc1wiLFxuICAgIFwiem9tYmllc1wiLFxuICAgIFwiZHJ1aWRzXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7QWRkcmVzcy5zdGF0ZX0gI3tjcmVhdHVyZX1cIlxuICBdXG59O1xuZW4uaGFja2VyID0ge1xuICBcImFiYnJldmlhdGlvblwiOiBbXG4gICAgXCJUQ1BcIixcbiAgICBcIkhUVFBcIixcbiAgICBcIlNERFwiLFxuICAgIFwiUkFNXCIsXG4gICAgXCJHQlwiLFxuICAgIFwiQ1NTXCIsXG4gICAgXCJTU0xcIixcbiAgICBcIkFHUFwiLFxuICAgIFwiU1FMXCIsXG4gICAgXCJGVFBcIixcbiAgICBcIlBDSVwiLFxuICAgIFwiQUlcIixcbiAgICBcIkFEUFwiLFxuICAgIFwiUlNTXCIsXG4gICAgXCJYTUxcIixcbiAgICBcIkVYRVwiLFxuICAgIFwiQ09NXCIsXG4gICAgXCJIRERcIixcbiAgICBcIlRIWFwiLFxuICAgIFwiU01UUFwiLFxuICAgIFwiU01TXCIsXG4gICAgXCJVU0JcIixcbiAgICBcIlBOR1wiLFxuICAgIFwiU0FTXCIsXG4gICAgXCJJQlwiLFxuICAgIFwiU0NTSVwiLFxuICAgIFwiSlNPTlwiLFxuICAgIFwiWFNTXCIsXG4gICAgXCJKQk9EXCJcbiAgXSxcbiAgXCJhZGplY3RpdmVcIjogW1xuICAgIFwiYXV4aWxpYXJ5XCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJiYWNrLWVuZFwiLFxuICAgIFwiZGlnaXRhbFwiLFxuICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICBcInZpcnR1YWxcIixcbiAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgXCJyZWR1bmRhbnRcIixcbiAgICBcIm9ubGluZVwiLFxuICAgIFwiaGFwdGljXCIsXG4gICAgXCJtdWx0aS1ieXRlXCIsXG4gICAgXCJibHVldG9vdGhcIixcbiAgICBcIndpcmVsZXNzXCIsXG4gICAgXCIxMDgwcFwiLFxuICAgIFwibmV1cmFsXCIsXG4gICAgXCJvcHRpY2FsXCIsXG4gICAgXCJzb2xpZCBzdGF0ZVwiLFxuICAgIFwibW9iaWxlXCJcbiAgXSxcbiAgXCJub3VuXCI6IFtcbiAgICBcImRyaXZlclwiLFxuICAgIFwicHJvdG9jb2xcIixcbiAgICBcImJhbmR3aWR0aFwiLFxuICAgIFwicGFuZWxcIixcbiAgICBcIm1pY3JvY2hpcFwiLFxuICAgIFwicHJvZ3JhbVwiLFxuICAgIFwicG9ydFwiLFxuICAgIFwiY2FyZFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwic3lzdGVtXCIsXG4gICAgXCJzZW5zb3JcIixcbiAgICBcImZpcmV3YWxsXCIsXG4gICAgXCJoYXJkIGRyaXZlXCIsXG4gICAgXCJwaXhlbFwiLFxuICAgIFwiYWxhcm1cIixcbiAgICBcImZlZWRcIixcbiAgICBcIm1vbml0b3JcIixcbiAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgXCJ0cmFuc21pdHRlclwiLFxuICAgIFwiYnVzXCIsXG4gICAgXCJjaXJjdWl0XCIsXG4gICAgXCJjYXBhY2l0b3JcIixcbiAgICBcIm1hdHJpeFwiXG4gIF0sXG4gIFwidmVyYlwiOiBbXG4gICAgXCJiYWNrIHVwXCIsXG4gICAgXCJieXBhc3NcIixcbiAgICBcImhhY2tcIixcbiAgICBcIm92ZXJyaWRlXCIsXG4gICAgXCJjb21wcmVzc1wiLFxuICAgIFwiY29weVwiLFxuICAgIFwibmF2aWdhdGVcIixcbiAgICBcImluZGV4XCIsXG4gICAgXCJjb25uZWN0XCIsXG4gICAgXCJnZW5lcmF0ZVwiLFxuICAgIFwicXVhbnRpZnlcIixcbiAgICBcImNhbGN1bGF0ZVwiLFxuICAgIFwic3ludGhlc2l6ZVwiLFxuICAgIFwiaW5wdXRcIixcbiAgICBcInRyYW5zbWl0XCIsXG4gICAgXCJwcm9ncmFtXCIsXG4gICAgXCJyZWJvb3RcIixcbiAgICBcInBhcnNlXCJcbiAgXSxcbiAgXCJpbmd2ZXJiXCI6IFtcbiAgICBcImJhY2tpbmcgdXBcIixcbiAgICBcImJ5cGFzc2luZ1wiLFxuICAgIFwiaGFja2luZ1wiLFxuICAgIFwib3ZlcnJpZGluZ1wiLFxuICAgIFwiY29tcHJlc3NpbmdcIixcbiAgICBcImNvcHlpbmdcIixcbiAgICBcIm5hdmlnYXRpbmdcIixcbiAgICBcImluZGV4aW5nXCIsXG4gICAgXCJjb25uZWN0aW5nXCIsXG4gICAgXCJnZW5lcmF0aW5nXCIsXG4gICAgXCJxdWFudGlmeWluZ1wiLFxuICAgIFwiY2FsY3VsYXRpbmdcIixcbiAgICBcInN5bnRoZXNpemluZ1wiLFxuICAgIFwidHJhbnNtaXR0aW5nXCIsXG4gICAgXCJwcm9ncmFtbWluZ1wiLFxuICAgIFwicGFyc2luZ1wiXG4gIF1cbn07XG5lbi5hcHAgPSB7XG4gIFwibmFtZVwiOiBbXG4gICAgXCJSZWRob2xkXCIsXG4gICAgXCJUcmVlZmxleFwiLFxuICAgIFwiVHJpcHBsZWRleFwiLFxuICAgIFwiS2FubGFtXCIsXG4gICAgXCJCaWd0YXhcIixcbiAgICBcIkRhbHRmcmVzaFwiLFxuICAgIFwiVG91Z2hqb3lmYXhcIixcbiAgICBcIk1hdCBMYW0gVGFtXCIsXG4gICAgXCJPdGNvbVwiLFxuICAgIFwiVHJlcy1aYXBcIixcbiAgICBcIlktU29sb3dhcm1cIixcbiAgICBcIlRyZXNvbVwiLFxuICAgIFwiVm9sdHNpbGxhbVwiLFxuICAgIFwiQmlvZGV4XCIsXG4gICAgXCJHcmVlbmxhbVwiLFxuICAgIFwiVml2YVwiLFxuICAgIFwiTWF0c29mdFwiLFxuICAgIFwiVGVtcFwiLFxuICAgIFwiWm9vbGFiXCIsXG4gICAgXCJTdWJpblwiLFxuICAgIFwiUmFua1wiLFxuICAgIFwiSm9iXCIsXG4gICAgXCJTdHJpbmd0b3VnaFwiLFxuICAgIFwiVGluXCIsXG4gICAgXCJJdFwiLFxuICAgIFwiSG9tZSBJbmdcIixcbiAgICBcIlphbWl0XCIsXG4gICAgXCJTb25zaW5nXCIsXG4gICAgXCJLb25rbGFiXCIsXG4gICAgXCJBbHBoYVwiLFxuICAgIFwiTGF0bHV4XCIsXG4gICAgXCJWb3lhdG91Y2hcIixcbiAgICBcIkFscGhhemFwXCIsXG4gICAgXCJIb2xkbGFtaXNcIixcbiAgICBcIlphYW0tRG94XCIsXG4gICAgXCJTdWItRXhcIixcbiAgICBcIlF1byBMdXhcIixcbiAgICBcIkJhbWl0eVwiLFxuICAgIFwiVmVudG9zYW56YXBcIixcbiAgICBcIkxvdHN0cmluZ1wiLFxuICAgIFwiSGF0aXR5XCIsXG4gICAgXCJUZW1wc29mdFwiLFxuICAgIFwiT3ZlcmhvbGRcIixcbiAgICBcIkZpeGZsZXhcIixcbiAgICBcIktvbmtsdXhcIixcbiAgICBcIlpvbnRyYXhcIixcbiAgICBcIlRhbXBmbGV4XCIsXG4gICAgXCJTcGFuXCIsXG4gICAgXCJOYW1maXhcIixcbiAgICBcIlRyYW5zY29mXCIsXG4gICAgXCJTdGltXCIsXG4gICAgXCJGaXggU2FuXCIsXG4gICAgXCJTb25haXJcIixcbiAgICBcIlN0cm9uZ2hvbGRcIixcbiAgICBcIkZpbnRvbmVcIixcbiAgICBcIlktZmluZFwiLFxuICAgIFwiT3BlbGFcIixcbiAgICBcIkxvdGx1eFwiLFxuICAgIFwiUm9uc3RyaW5nXCIsXG4gICAgXCJaYXRoaW5cIixcbiAgICBcIkR1b2JhbVwiLFxuICAgIFwiS2V5bGV4XCJcbiAgXSxcbiAgXCJ2ZXJzaW9uXCI6IFtcbiAgICBcIjAuIy4jXCIsXG4gICAgXCIwLiMjXCIsXG4gICAgXCIjLiMjXCIsXG4gICAgXCIjLiNcIixcbiAgICBcIiMuIy4jXCJcbiAgXSxcbiAgXCJhdXRob3JcIjogW1xuICAgIFwiI3tOYW1lLm5hbWV9XCIsXG4gICAgXCIje0NvbXBhbnkubmFtZX1cIlxuICBdXG59O1xuXG5lbi5maW5hbmNlID0ge307XG5lbi5maW5hbmNlLmFjY291bnRfdHlwZSA9IFtcIkNoZWNraW5nXCIsXCJTYXZpbmdzXCIsXCJNb25leSBNYXJrZXRcIiwgXCJJbnZlc3RtZW50XCIsIFwiSG9tZSBMb2FuXCIsIFwiQ3JlZGl0IENhcmRcIiwgXCJBdXRvIExvYW5cIiwgXCJQZXJzb25hbCBMb2FuXCJdO1xuZW4uZmluYW5jZS50cmFuc2FjdGlvbl90eXBlID0gW1wiZGVwb3NpdFwiLCBcIndpdGhkcmF3YWxcIiwgXCJwYXltZW50XCIsIFwiaW52b2ljZVwiXTtcblxuZW4uZmluYW5jZS5jdXJyZW5jeSA9IHtcbiAgXCJVQUUgRGlyaGFtXCI6IHtcbiAgICBcImNvZGVcIjogXCJBRURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQWZnaGFuaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQUZOXCIsXG4gICAgXCJzeW1ib2xcIjogXCLYi1wiXG4gIH0sXG4gIFwiTGVrXCI6IHtcbiAgICBcImNvZGVcIjogXCJBTExcIixcbiAgICBcInN5bWJvbFwiOiBcIkxla1wiXG4gIH0sXG4gIFwiQXJtZW5pYW4gRHJhbVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQU1EXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk5ldGhlcmxhbmRzIEFudGlsbGlhbiBHdWlsZGVyXCI6IHtcbiAgICBcImNvZGVcIjogXCJBTkdcIixcbiAgICBcInN5bWJvbFwiOiBcIsaSXCJcbiAgfSxcbiAgXCJLd2FuemFcIjoge1xuICAgIFwiY29kZVwiOiBcIkFPQVwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJBcmdlbnRpbmUgUGVzb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiQVJTXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJBdXN0cmFsaWFuIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQVVEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJBcnViYW4gR3VpbGRlclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQVdHXCIsXG4gICAgXCJzeW1ib2xcIjogXCLGklwiXG4gIH0sXG4gIFwiQXplcmJhaWphbmlhbiBNYW5hdFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQVpOXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQvNCw0L1cIlxuICB9LFxuICBcIkNvbnZlcnRpYmxlIE1hcmtzXCI6IHtcbiAgICBcImNvZGVcIjogXCJCQU1cIixcbiAgICBcInN5bWJvbFwiOiBcIktNXCJcbiAgfSxcbiAgXCJCYXJiYWRvcyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkJCRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiVGFrYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkRUXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkJ1bGdhcmlhbiBMZXZcIjoge1xuICAgIFwiY29kZVwiOiBcIkJHTlwiLFxuICAgIFwic3ltYm9sXCI6IFwi0LvQslwiXG4gIH0sXG4gIFwiQmFocmFpbmkgRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkJIRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJCdXJ1bmRpIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJCSUZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQmVybXVkaWFuIERvbGxhciAoY3VzdG9tYXJpbHkga25vd24gYXMgQmVybXVkYSBEb2xsYXIpXCI6IHtcbiAgICBcImNvZGVcIjogXCJCTURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkJydW5laSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkJORFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiQm9saXZpYW5vIE12ZG9sXCI6IHtcbiAgICBcImNvZGVcIjogXCJCT0IgQk9WXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkYlwiXG4gIH0sXG4gIFwiQnJhemlsaWFuIFJlYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIkJSTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiUiRcIlxuICB9LFxuICBcIkJhaGFtaWFuIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQlNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJQdWxhXCI6IHtcbiAgICBcImNvZGVcIjogXCJCV1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlBcIlxuICB9LFxuICBcIkJlbGFydXNzaWFuIFJ1YmxlXCI6IHtcbiAgICBcImNvZGVcIjogXCJCWVJcIixcbiAgICBcInN5bWJvbFwiOiBcInAuXCJcbiAgfSxcbiAgXCJCZWxpemUgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJCWkRcIixcbiAgICBcInN5bWJvbFwiOiBcIkJaJFwiXG4gIH0sXG4gIFwiQ2FuYWRpYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJDQURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkNvbmdvbGVzZSBGcmFuY1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ0RGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlN3aXNzIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJDSEZcIixcbiAgICBcInN5bWJvbFwiOiBcIkNIRlwiXG4gIH0sXG4gIFwiQ2hpbGVhbiBQZXNvIFVuaWRhZGVzIGRlIGZvbWVudG9cIjoge1xuICAgIFwiY29kZVwiOiBcIkNMUCBDTEZcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIll1YW4gUmVubWluYmlcIjoge1xuICAgIFwiY29kZVwiOiBcIkNOWVwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqVcIlxuICB9LFxuICBcIkNvbG9tYmlhbiBQZXNvIFVuaWRhZCBkZSBWYWxvciBSZWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJDT1AgQ09VXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJDb3N0YSBSaWNhbiBDb2xvblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ1JDXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqFcIlxuICB9LFxuICBcIkN1YmFuIFBlc28gUGVzbyBDb252ZXJ0aWJsZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ1VQIENVQ1wiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKxXCJcbiAgfSxcbiAgXCJDYXBlIFZlcmRlIEVzY3Vkb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ1ZFXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkN6ZWNoIEtvcnVuYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ1pLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJLxI1cIlxuICB9LFxuICBcIkRqaWJvdXRpIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJESkZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRGFuaXNoIEtyb25lXCI6IHtcbiAgICBcImNvZGVcIjogXCJES0tcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJEb21pbmljYW4gUGVzb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiRE9QXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSRCRcIlxuICB9LFxuICBcIkFsZ2VyaWFuIERpbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJEWkRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiS3Jvb25cIjoge1xuICAgIFwiY29kZVwiOiBcIkVFS1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFZ3lwdGlhbiBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRUdQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTmFrZmFcIjoge1xuICAgIFwiY29kZVwiOiBcIkVSTlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdGhpb3BpYW4gQmlyclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRVRCXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkV1cm9cIjoge1xuICAgIFwiY29kZVwiOiBcIkVVUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKsXCJcbiAgfSxcbiAgXCJGaWppIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRkpEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJGYWxrbGFuZCBJc2xhbmRzIFBvdW5kXCI6IHtcbiAgICBcImNvZGVcIjogXCJGS1BcIixcbiAgICBcInN5bWJvbFwiOiBcIsKjXCJcbiAgfSxcbiAgXCJQb3VuZCBTdGVybGluZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0JQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTGFyaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0VMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNlZGlcIjoge1xuICAgIFwiY29kZVwiOiBcIkdIU1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJHaWJyYWx0YXIgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIkdJUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqNcIlxuICB9LFxuICBcIkRhbGFzaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR01EXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkd1aW5lYSBGcmFuY1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiR05GXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlF1ZXR6YWxcIjoge1xuICAgIFwiY29kZVwiOiBcIkdUUVwiLFxuICAgIFwic3ltYm9sXCI6IFwiUVwiXG4gIH0sXG4gIFwiR3V5YW5hIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR1lEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJIb25nIEtvbmcgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJIS0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkxlbXBpcmFcIjoge1xuICAgIFwiY29kZVwiOiBcIkhOTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTFwiXG4gIH0sXG4gIFwiQ3JvYXRpYW4gS3VuYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSFJLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJrblwiXG4gIH0sXG4gIFwiR291cmRlIFVTIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSFRHIFVTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJGb3JpbnRcIjoge1xuICAgIFwiY29kZVwiOiBcIkhVRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiRnRcIlxuICB9LFxuICBcIlJ1cGlhaFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSURSXCIsXG4gICAgXCJzeW1ib2xcIjogXCJScFwiXG4gIH0sXG4gIFwiTmV3IElzcmFlbGkgU2hlcWVsXCI6IHtcbiAgICBcImNvZGVcIjogXCJJTFNcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqlwiXG4gIH0sXG4gIFwiSW5kaWFuIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJJTlJcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSW5kaWFuIFJ1cGVlIE5ndWx0cnVtXCI6IHtcbiAgICBcImNvZGVcIjogXCJJTlIgQlROXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIklyYXFpIERpbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJJUURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSXJhbmlhbiBSaWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJJUlJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiSWNlbGFuZCBLcm9uYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSVNLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJrclwiXG4gIH0sXG4gIFwiSmFtYWljYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJKTURcIixcbiAgICBcInN5bWJvbFwiOiBcIkokXCJcbiAgfSxcbiAgXCJKb3JkYW5pYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkpPRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJZZW5cIjoge1xuICAgIFwiY29kZVwiOiBcIkpQWVwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqVcIlxuICB9LFxuICBcIktlbnlhbiBTaGlsbGluZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiS0VTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlNvbVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS0dTXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJSaWVsXCI6IHtcbiAgICBcImNvZGVcIjogXCJLSFJcIixcbiAgICBcInN5bWJvbFwiOiBcIuGfm1wiXG4gIH0sXG4gIFwiQ29tb3JvIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJLTUZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTm9ydGggS29yZWFuIFdvblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1BXXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqlcIlxuICB9LFxuICBcIldvblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1JXXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqlcIlxuICB9LFxuICBcIkt1d2FpdGkgRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIktXRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDYXltYW4gSXNsYW5kcyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIktZRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiVGVuZ2VcIjoge1xuICAgIFwiY29kZVwiOiBcIktaVFwiLFxuICAgIFwic3ltYm9sXCI6IFwi0LvQslwiXG4gIH0sXG4gIFwiS2lwXCI6IHtcbiAgICBcImNvZGVcIjogXCJMQUtcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCrVwiXG4gIH0sXG4gIFwiTGViYW5lc2UgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIkxCUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqNcIlxuICB9LFxuICBcIlNyaSBMYW5rYSBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTEtSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIkxpYmVyaWFuIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTFJEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJMaXRodWFuaWFuIExpdGFzXCI6IHtcbiAgICBcImNvZGVcIjogXCJMVExcIixcbiAgICBcInN5bWJvbFwiOiBcIkx0XCJcbiAgfSxcbiAgXCJMYXR2aWFuIExhdHNcIjoge1xuICAgIFwiY29kZVwiOiBcIkxWTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTHNcIlxuICB9LFxuICBcIkxpYnlhbiBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTFlEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1vcm9jY2FuIERpcmhhbVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTUFEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1vbGRvdmFuIExldVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTURMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1hbGFnYXN5IEFyaWFyeVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTUdBXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkRlbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJNS0RcIixcbiAgICBcInN5bWJvbFwiOiBcItC00LXQvVwiXG4gIH0sXG4gIFwiS3lhdFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTU1LXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlR1Z3Jpa1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiTU5UXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigq5cIlxuICB9LFxuICBcIlBhdGFjYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTU9QXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk91Z3VpeWFcIjoge1xuICAgIFwiY29kZVwiOiBcIk1ST1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJNYXVyaXRpdXMgUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIk1VUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKoXCJcbiAgfSxcbiAgXCJSdWZpeWFhXCI6IHtcbiAgICBcImNvZGVcIjogXCJNVlJcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiS3dhY2hhXCI6IHtcbiAgICBcImNvZGVcIjogXCJNV0tcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTWV4aWNhbiBQZXNvIE1leGljYW4gVW5pZGFkIGRlIEludmVyc2lvbiAoVURJKVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVhOIE1YVlwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiTWFsYXlzaWFuIFJpbmdnaXRcIjoge1xuICAgIFwiY29kZVwiOiBcIk1ZUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiUk1cIlxuICB9LFxuICBcIk1ldGljYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIk1aTlwiLFxuICAgIFwic3ltYm9sXCI6IFwiTVRcIlxuICB9LFxuICBcIk5haXJhXCI6IHtcbiAgICBcImNvZGVcIjogXCJOR05cIixcbiAgICBcInN5bWJvbFwiOiBcIuKCplwiXG4gIH0sXG4gIFwiQ29yZG9iYSBPcm9cIjoge1xuICAgIFwiY29kZVwiOiBcIk5JT1wiLFxuICAgIFwic3ltYm9sXCI6IFwiQyRcIlxuICB9LFxuICBcIk5vcndlZ2lhbiBLcm9uZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTk9LXCIsXG4gICAgXCJzeW1ib2xcIjogXCJrclwiXG4gIH0sXG4gIFwiTmVwYWxlc2UgUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIk5QUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKoXCJcbiAgfSxcbiAgXCJOZXcgWmVhbGFuZCBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIk5aRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiUmlhbCBPbWFuaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiT01SXCIsXG4gICAgXCJzeW1ib2xcIjogXCLvt7xcIlxuICB9LFxuICBcIkJhbGJvYSBVUyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlBBQiBVU0RcIixcbiAgICBcInN5bWJvbFwiOiBcIkIvLlwiXG4gIH0sXG4gIFwiTnVldm8gU29sXCI6IHtcbiAgICBcImNvZGVcIjogXCJQRU5cIixcbiAgICBcInN5bWJvbFwiOiBcIlMvLlwiXG4gIH0sXG4gIFwiS2luYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUEdLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlBoaWxpcHBpbmUgUGVzb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiUEhQXCIsXG4gICAgXCJzeW1ib2xcIjogXCJQaHBcIlxuICB9LFxuICBcIlBha2lzdGFuIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJQS1JcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqFwiXG4gIH0sXG4gIFwiWmxvdHlcIjoge1xuICAgIFwiY29kZVwiOiBcIlBMTlwiLFxuICAgIFwic3ltYm9sXCI6IFwiesWCXCJcbiAgfSxcbiAgXCJHdWFyYW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJQWUdcIixcbiAgICBcInN5bWJvbFwiOiBcIkdzXCJcbiAgfSxcbiAgXCJRYXRhcmkgUmlhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUUFSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLvt7xcIlxuICB9LFxuICBcIk5ldyBMZXVcIjoge1xuICAgIFwiY29kZVwiOiBcIlJPTlwiLFxuICAgIFwic3ltYm9sXCI6IFwibGVpXCJcbiAgfSxcbiAgXCJTZXJiaWFuIERpbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJSU0RcIixcbiAgICBcInN5bWJvbFwiOiBcItCU0LjQvS5cIlxuICB9LFxuICBcIlJ1c3NpYW4gUnVibGVcIjoge1xuICAgIFwiY29kZVwiOiBcIlJVQlwiLFxuICAgIFwic3ltYm9sXCI6IFwi0YDRg9CxXCJcbiAgfSxcbiAgXCJSd2FuZGEgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIlJXRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTYXVkaSBSaXlhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0FSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLvt7xcIlxuICB9LFxuICBcIlNvbG9tb24gSXNsYW5kcyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlNCRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiU2V5Y2hlbGxlcyBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0NSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIlN1ZGFuZXNlIFBvdW5kXCI6IHtcbiAgICBcImNvZGVcIjogXCJTREdcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU3dlZGlzaCBLcm9uYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0VLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJrclwiXG4gIH0sXG4gIFwiU2luZ2Fwb3JlIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0dEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTYWludCBIZWxlbmEgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIlNIUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqNcIlxuICB9LFxuICBcIkxlb25lXCI6IHtcbiAgICBcImNvZGVcIjogXCJTTExcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU29tYWxpIFNoaWxsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJTT1NcIixcbiAgICBcInN5bWJvbFwiOiBcIlNcIlxuICB9LFxuICBcIlN1cmluYW0gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJTUkRcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkRvYnJhXCI6IHtcbiAgICBcImNvZGVcIjogXCJTVERcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRWwgU2FsdmFkb3IgQ29sb24gVVMgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJTVkMgVVNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTeXJpYW4gUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIlNZUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqNcIlxuICB9LFxuICBcIkxpbGFuZ2VuaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU1pMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkJhaHRcIjoge1xuICAgIFwiY29kZVwiOiBcIlRIQlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4Li/XCJcbiAgfSxcbiAgXCJTb21vbmlcIjoge1xuICAgIFwiY29kZVwiOiBcIlRKU1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJNYW5hdFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVE1UXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlR1bmlzaWFuIERpbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJUTkRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUGEnYW5nYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVE9QXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlR1cmtpc2ggTGlyYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVFJZXCIsXG4gICAgXCJzeW1ib2xcIjogXCJUTFwiXG4gIH0sXG4gIFwiVHJpbmlkYWQgYW5kIFRvYmFnbyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlRURFwiLFxuICAgIFwic3ltYm9sXCI6IFwiVFQkXCJcbiAgfSxcbiAgXCJOZXcgVGFpd2FuIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVFdEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJOVCRcIlxuICB9LFxuICBcIlRhbnphbmlhbiBTaGlsbGluZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiVFpTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkhyeXZuaWFcIjoge1xuICAgIFwiY29kZVwiOiBcIlVBSFwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oK0XCJcbiAgfSxcbiAgXCJVZ2FuZGEgU2hpbGxpbmdcIjoge1xuICAgIFwiY29kZVwiOiBcIlVHWFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJVUyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlVTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiUGVzbyBVcnVndWF5byBVcnVndWF5IFBlc28gZW4gVW5pZGFkZXMgSW5kZXhhZGFzXCI6IHtcbiAgICBcImNvZGVcIjogXCJVWVUgVVlJXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkVVwiXG4gIH0sXG4gIFwiVXpiZWtpc3RhbiBTdW1cIjoge1xuICAgIFwiY29kZVwiOiBcIlVaU1wiLFxuICAgIFwic3ltYm9sXCI6IFwi0LvQslwiXG4gIH0sXG4gIFwiQm9saXZhciBGdWVydGVcIjoge1xuICAgIFwiY29kZVwiOiBcIlZFRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiQnNcIlxuICB9LFxuICBcIkRvbmdcIjoge1xuICAgIFwiY29kZVwiOiBcIlZORFwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKrXCJcbiAgfSxcbiAgXCJWYXR1XCI6IHtcbiAgICBcImNvZGVcIjogXCJWVVZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVGFsYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiV1NUXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNGQSBGcmFuYyBCRUFDXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQUZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU2lsdmVyXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQUdcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiR29sZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWEFVXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkJvbmQgTWFya2V0cyBVbml0cyBFdXJvcGVhbiBDb21wb3NpdGUgVW5pdCAoRVVSQ08pXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQkFcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRXVyb3BlYW4gTW9uZXRhcnkgVW5pdCAoRS5NLlUuLTYpXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQkJcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRXVyb3BlYW4gVW5pdCBvZiBBY2NvdW50IDkoRS5VLkEuLTkpXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQkNcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRXVyb3BlYW4gVW5pdCBvZiBBY2NvdW50IDE3KEUuVS5BLi0xNylcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFYXN0IENhcmliYmVhbiBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlhDRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiU0RSXCI6IHtcbiAgICBcImNvZGVcIjogXCJYRFJcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVUlDLUZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJYRlVcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ0ZBIEZyYW5jIEJDRUFPXCI6IHtcbiAgICBcImNvZGVcIjogXCJYT0ZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUGFsbGFkaXVtXCI6IHtcbiAgICBcImNvZGVcIjogXCJYUERcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ0ZQIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJYUEZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUGxhdGludW1cIjoge1xuICAgIFwiY29kZVwiOiBcIlhQVFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDb2RlcyBzcGVjaWZpY2FsbHkgcmVzZXJ2ZWQgZm9yIHRlc3RpbmcgcHVycG9zZXNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhUU1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJZZW1lbmkgUmlhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWUVSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLvt7xcIlxuICB9LFxuICBcIlJhbmRcIjoge1xuICAgIFwiY29kZVwiOiBcIlpBUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiUlwiXG4gIH0sXG4gIFwiUmFuZCBMb3RpXCI6IHtcbiAgICBcImNvZGVcIjogXCJaQVIgTFNMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlJhbmQgTmFtaWJpYSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlpBUiBOQURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiWmFtYmlhbiBLd2FjaGFcIjoge1xuICAgIFwiY29kZVwiOiBcIlpNS1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJaaW1iYWJ3ZSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlpXTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfVxufTsiLCJ2YXIgZW5fQVUgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9BVTtcbmVuX0FVLnRpdGxlID0gXCJBdXN0cmFsaWEgKEVuZ2xpc2gpXCI7XG5lbl9BVS5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiSmFja1wiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiTGFjaGxhblwiLFxuICAgIFwiQ29vcGVyXCIsXG4gICAgXCJOb2FoXCIsXG4gICAgXCJFdGhhblwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkphbWVzXCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIkphY29iXCIsXG4gICAgXCJMaWFtXCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJNYXhcIixcbiAgICBcIklzYWFjXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIlJpbGV5XCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJDaGFybGllXCIsXG4gICAgXCJUeWxlclwiLFxuICAgIFwiSmFrZVwiLFxuICAgIFwiTWF0dGhld1wiLFxuICAgIFwiWGF2aWVyXCIsXG4gICAgXCJIYXJyeVwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJOaWNob2xhc1wiLFxuICAgIFwiSGFycmlzb25cIixcbiAgICBcIkxldmlcIixcbiAgICBcIkx1a2VcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJBaWRlblwiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJNaWNoYWVsXCIsXG4gICAgXCJKYWNrc29uXCIsXG4gICAgXCJMb2dhblwiLFxuICAgIFwiSm9zZXBoXCIsXG4gICAgXCJCbGFrZVwiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIkVsaWphaFwiLFxuICAgIFwiTmF0ZVwiLFxuICAgIFwiQXJjaGllXCIsXG4gICAgXCJCYWlsZXlcIixcbiAgICBcIk1hcmN1c1wiLFxuICAgIFwiQ2FtZXJvblwiLFxuICAgIFwiSm9yZGFuXCIsXG4gICAgXCJaYWNoYXJ5XCIsXG4gICAgXCJDYWxlYlwiLFxuICAgIFwiSHVudGVyXCIsXG4gICAgXCJBc2h0b25cIixcbiAgICBcIlRvYnlcIixcbiAgICBcIkFpZGFuXCIsXG4gICAgXCJIYXlkZW5cIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJIYW1pc2hcIixcbiAgICBcIkVkd2FyZFwiLFxuICAgIFwiQW5ndXNcIixcbiAgICBcIkVsaVwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJDaHJpc3RpYW5cIixcbiAgICBcIlBhdHJpY2tcIixcbiAgICBcIkFuZHJld1wiLFxuICAgIFwiQW50aG9ueVwiLFxuICAgIFwiTHVjYVwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJCZWF1XCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJHZW9yZ2VcIixcbiAgICBcIkNhbGx1bVwiLFxuICAgIFwiRmlublwiLFxuICAgIFwiWmFjXCIsXG4gICAgXCJNaXRjaGVsbFwiLFxuICAgIFwiSmV0dFwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkxlb1wiLFxuICAgIFwiRGVjbGFuXCIsXG4gICAgXCJDaGFybGVzXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpvbmF0aGFuXCIsXG4gICAgXCJBYXJvblwiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiRGF2aWRcIixcbiAgICBcIkNocmlzdG9waGVyXCIsXG4gICAgXCJDaGFzZVwiLFxuICAgIFwiT3dlblwiLFxuICAgIFwiSnVzdGluXCIsXG4gICAgXCJBbGlcIixcbiAgICBcIkRhcmN5XCIsXG4gICAgXCJMaW5jb2xuXCIsXG4gICAgXCJDb2R5XCIsXG4gICAgXCJQaG9lbml4XCIsXG4gICAgXCJTYW1cIixcbiAgICBcIkpvaG5cIixcbiAgICBcIkpvZWxcIixcbiAgICBcIklzYWJlbGxhXCIsXG4gICAgXCJSdWJ5XCIsXG4gICAgXCJDaGxvZVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJDaGFybG90dGVcIixcbiAgICBcIk1pYVwiLFxuICAgIFwiTGlseVwiLFxuICAgIFwiRW1pbHlcIixcbiAgICBcIkVsbGFcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiU29waGllXCIsXG4gICAgXCJBbWVsaWFcIixcbiAgICBcIkdyYWNlXCIsXG4gICAgXCJBdmFcIixcbiAgICBcIlpvZVwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiU29waGlhXCIsXG4gICAgXCJNYXRpbGRhXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIkplc3NpY2FcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJBYmlnYWlsXCIsXG4gICAgXCJaYXJhXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIlNjYXJsZXR0XCIsXG4gICAgXCJKYXNtaW5lXCIsXG4gICAgXCJDaGVsc2VhXCIsXG4gICAgXCJMaWxseVwiLFxuICAgIFwiSXZ5XCIsXG4gICAgXCJJc2xhXCIsXG4gICAgXCJFdmllXCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiTWFkZGlzb25cIixcbiAgICBcIkxheWxhXCIsXG4gICAgXCJTdW1tZXJcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJFbGl6YWJldGhcIixcbiAgICBcIkJlbGxhXCIsXG4gICAgXCJIb2xseVwiLFxuICAgIFwiTGFyYVwiLFxuICAgIFwiTWFkaXNvblwiLFxuICAgIFwiQWx5c3NhXCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJUYWhsaWFcIixcbiAgICBcIkNsYWlyZVwiLFxuICAgIFwiSGF5bGV5XCIsXG4gICAgXCJJbW9nZW5cIixcbiAgICBcIkphZGVcIixcbiAgICBcIkVsbGllXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiQWRkaXNvblwiLFxuICAgIFwiTW9sbHlcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIlNhdmFubmFoXCIsXG4gICAgXCJHYWJyaWVsbGFcIixcbiAgICBcIktheWxhXCIsXG4gICAgXCJNaWtheWxhXCIsXG4gICAgXCJBYmJleVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIldpbGxvd1wiLFxuICAgIFwiQWxleGFuZHJhXCIsXG4gICAgXCJQb3BweVwiLFxuICAgIFwiU2FtYW50aGFcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiQW15XCIsXG4gICAgXCJBbWVsaWVcIixcbiAgICBcIkFubmFcIixcbiAgICBcIlBpcGVyXCIsXG4gICAgXCJHZW1tYVwiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiU3RlcGhhbmllXCIsXG4gICAgXCJDYWl0bGluXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiUGFpZ2VcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIkFtYmVyXCIsXG4gICAgXCJBdWRyZXlcIixcbiAgICBcIkNsYXVkaWFcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiTWFkZWxpbmVcIixcbiAgICBcIkFuZ2VsaW5hXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJDaGFybGlcIixcbiAgICBcIkxhdXJlblwiLFxuICAgIFwiQXNobGV5XCIsXG4gICAgXCJWaW9sZXRcIixcbiAgICBcIk1hY2tlbnppZVwiLFxuICAgIFwiQWJieVwiLFxuICAgIFwiU2t5ZVwiLFxuICAgIFwiTGlsbGlhblwiLFxuICAgIFwiQWxhbmFcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkxlYWhcIixcbiAgICBcIkV2ZVwiLFxuICAgIFwiS2lhcmFcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJTbWl0aFwiLFxuICAgIFwiSm9uZXNcIixcbiAgICBcIldpbGxpYW1zXCIsXG4gICAgXCJCcm93blwiLFxuICAgIFwiV2lsc29uXCIsXG4gICAgXCJUYXlsb3JcIixcbiAgICBcIkpvaG5zb25cIixcbiAgICBcIldoaXRlXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIkFuZGVyc29uXCIsXG4gICAgXCJUaG9tcHNvblwiLFxuICAgIFwiTmd1eWVuXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIldhbGtlclwiLFxuICAgIFwiSGFycmlzXCIsXG4gICAgXCJMZWVcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJvYmluc29uXCIsXG4gICAgXCJLZWxseVwiLFxuICAgIFwiS2luZ1wiLFxuICAgIFwiRGF2aXNcIixcbiAgICBcIldyaWdodFwiLFxuICAgIFwiRXZhbnNcIixcbiAgICBcIlJvYmVydHNcIixcbiAgICBcIkdyZWVuXCIsXG4gICAgXCJIYWxsXCIsXG4gICAgXCJXb29kXCIsXG4gICAgXCJKYWNrc29uXCIsXG4gICAgXCJDbGFya2VcIixcbiAgICBcIlBhdGVsXCIsXG4gICAgXCJLaGFuXCIsXG4gICAgXCJMZXdpc1wiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIlBoaWxsaXBzXCIsXG4gICAgXCJNYXNvblwiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIkRhdmllc1wiLFxuICAgIFwiUm9kcmlndWV6XCIsXG4gICAgXCJDb3hcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiR2FyZGVuXCIsXG4gICAgXCJDYW1wYmVsbFwiLFxuICAgIFwiSm9obnN0b25cIixcbiAgICBcIk1vb3JlXCIsXG4gICAgXCJTbXl0aFwiLFxuICAgIFwiTyduZWlsbFwiLFxuICAgIFwiRG9oZXJ0eVwiLFxuICAgIFwiU3Rld2FydFwiLFxuICAgIFwiUXVpbm5cIixcbiAgICBcIk11cnBoeVwiLFxuICAgIFwiR3JhaGFtXCIsXG4gICAgXCJNY2xhdWdobGluXCIsXG4gICAgXCJIYW1pbHRvblwiLFxuICAgIFwiTXVycmF5XCIsXG4gICAgXCJIdWdoZXNcIixcbiAgICBcIlJvYmVydHNvblwiLFxuICAgIFwiVGhvbXNvblwiLFxuICAgIFwiU2NvdHRcIixcbiAgICBcIk1hY2RvbmFsZFwiLFxuICAgIFwiUmVpZFwiLFxuICAgIFwiQ2xhcmtcIixcbiAgICBcIlJvc3NcIixcbiAgICBcIllvdW5nXCIsXG4gICAgXCJXYXRzb25cIixcbiAgICBcIlBhdGVyc29uXCIsXG4gICAgXCJNb3JyaXNvblwiLFxuICAgIFwiTW9yZ2FuXCIsXG4gICAgXCJHcmlmZml0aHNcIixcbiAgICBcIkVkd2FyZHNcIixcbiAgICBcIlJlZXNcIixcbiAgICBcIkplbmtpbnNcIixcbiAgICBcIk93ZW5cIixcbiAgICBcIlByaWNlXCIsXG4gICAgXCJNb3NzXCIsXG4gICAgXCJSaWNoYXJkc1wiLFxuICAgIFwiQWJib3R0XCIsXG4gICAgXCJBZGFtc1wiLFxuICAgIFwiQXJtc3Ryb25nXCIsXG4gICAgXCJCYWhyaW5nZXJcIixcbiAgICBcIkJhaWxleVwiLFxuICAgIFwiQmFycm93c1wiLFxuICAgIFwiQmFydGVsbFwiLFxuICAgIFwiQmFydG9sZXR0aVwiLFxuICAgIFwiQmFydG9uXCIsXG4gICAgXCJCYXVjaFwiLFxuICAgIFwiQmF1bWJhY2hcIixcbiAgICBcIkJheWVyXCIsXG4gICAgXCJCZWFoYW5cIixcbiAgICBcIkJlYXR0eVwiLFxuICAgIFwiQmVja2VyXCIsXG4gICAgXCJCZWllclwiLFxuICAgIFwiQmVyZ2VcIixcbiAgICBcIkJlcmdzdHJvbVwiLFxuICAgIFwiQm9kZVwiLFxuICAgIFwiQm9nYW5cIixcbiAgICBcIkJvcmVyXCIsXG4gICAgXCJCb3Njb1wiLFxuICAgIFwiQm90c2ZvcmRcIixcbiAgICBcIkJveWVyXCIsXG4gICAgXCJCb3lsZVwiLFxuICAgIFwiQnJhdW5cIixcbiAgICBcIkJydWVuXCIsXG4gICAgXCJDYXJyb2xsXCIsXG4gICAgXCJDYXJ0ZXJcIixcbiAgICBcIkNhcnR3cmlnaHRcIixcbiAgICBcIkNhc3BlclwiLFxuICAgIFwiQ2Fzc2luXCIsXG4gICAgXCJDaGFtcGxpblwiLFxuICAgIFwiQ2hyaXN0aWFuc2VuXCIsXG4gICAgXCJDb2xlXCIsXG4gICAgXCJDb2xsaWVyXCIsXG4gICAgXCJDb2xsaW5zXCIsXG4gICAgXCJDb25uZWxseVwiLFxuICAgIFwiQ29ucm95XCIsXG4gICAgXCJDb3JrZXJ5XCIsXG4gICAgXCJDb3JtaWVyXCIsXG4gICAgXCJDb3J3aW5cIixcbiAgICBcIkNyb25pblwiLFxuICAgIFwiQ3Jvb2tzXCIsXG4gICAgXCJDcnVpY2tzaGFua1wiLFxuICAgIFwiQ3VtbWluZ3NcIixcbiAgICBcIkQnYW1vcmVcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFyZVwiLFxuICAgIFwiRGF1Z2hlcnR5XCIsXG4gICAgXCJEaWNrZW5zXCIsXG4gICAgXCJEaWNraW5zb25cIixcbiAgICBcIkRpZXRyaWNoXCIsXG4gICAgXCJEb25uZWxseVwiLFxuICAgIFwiRG9vbGV5XCIsXG4gICAgXCJEb3VnbGFzXCIsXG4gICAgXCJEb3lsZVwiLFxuICAgIFwiRHVyZ2FuXCIsXG4gICAgXCJFYmVydFwiLFxuICAgIFwiRW1hcmRcIixcbiAgICBcIkVtbWVyaWNoXCIsXG4gICAgXCJFcmRtYW5cIixcbiAgICBcIkVybnNlclwiLFxuICAgIFwiRmFkZWxcIixcbiAgICBcIkZhaGV5XCIsXG4gICAgXCJGYXJyZWxsXCIsXG4gICAgXCJGYXlcIixcbiAgICBcIkZlZW5leVwiLFxuICAgIFwiRmVpbFwiLFxuICAgIFwiRmVycnlcIixcbiAgICBcIkZpc2hlclwiLFxuICAgIFwiRmxhdGxleVwiLFxuICAgIFwiR2lic29uXCIsXG4gICAgXCJHbGVhc29uXCIsXG4gICAgXCJHbG92ZXJcIixcbiAgICBcIkdvbGRuZXJcIixcbiAgICBcIkdvb2R3aW5cIixcbiAgICBcIkdyYWR5XCIsXG4gICAgXCJHcmFudFwiLFxuICAgIFwiR3JlZW5mZWxkZXJcIixcbiAgICBcIkdyZWVuaG9sdFwiLFxuICAgIFwiR3JpbWVzXCIsXG4gICAgXCJHdXRtYW5uXCIsXG4gICAgXCJIYWNrZXR0XCIsXG4gICAgXCJIYWhuXCIsXG4gICAgXCJIYWxleVwiLFxuICAgIFwiSGFtbWVzXCIsXG4gICAgXCJIYW5kXCIsXG4gICAgXCJIYW5lXCIsXG4gICAgXCJIYW5zZW5cIixcbiAgICBcIkhhcmJlclwiLFxuICAgIFwiSGFydG1hbm5cIixcbiAgICBcIkhhcnZleVwiLFxuICAgIFwiSGF5ZXNcIixcbiAgICBcIkhlYW5leVwiLFxuICAgIFwiSGVhdGhjb3RlXCIsXG4gICAgXCJIZWxsZXJcIixcbiAgICBcIkhlcm1hbm5cIixcbiAgICBcIkhlcm1pc3RvblwiLFxuICAgIFwiSGVzc2VsXCIsXG4gICAgXCJIZXR0aW5nZXJcIixcbiAgICBcIkhpY2tsZVwiLFxuICAgIFwiSGlsbFwiLFxuICAgIFwiSGlsbHNcIixcbiAgICBcIkhvcHBlXCIsXG4gICAgXCJIb3dlXCIsXG4gICAgXCJIb3dlbGxcIixcbiAgICBcIkh1ZHNvblwiLFxuICAgIFwiSHVlbFwiLFxuICAgIFwiSHlhdHRcIixcbiAgICBcIkphY29iaVwiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYWNvYnNvblwiLFxuICAgIFwiSmVyZGVcIixcbiAgICBcIkpvaG5zXCIsXG4gICAgXCJLZWVsaW5nXCIsXG4gICAgXCJLZW1tZXJcIixcbiAgICBcIktlc3NsZXJcIixcbiAgICBcIktpZWhuXCIsXG4gICAgXCJLaXJsaW5cIixcbiAgICBcIktsZWluXCIsXG4gICAgXCJLb2NoXCIsXG4gICAgXCJLb2VscGluXCIsXG4gICAgXCJLb2hsZXJcIixcbiAgICBcIktvc3NcIixcbiAgICBcIktvdmFjZWtcIixcbiAgICBcIktyZWlnZXJcIixcbiAgICBcIktyaXNcIixcbiAgICBcIkt1aGxtYW5cIixcbiAgICBcIkt1aG5cIixcbiAgICBcIkt1bGFzXCIsXG4gICAgXCJLdW5kZVwiLFxuICAgIFwiS3V0Y2hcIixcbiAgICBcIkxha2luXCIsXG4gICAgXCJMYW5nXCIsXG4gICAgXCJMYW5nd29ydGhcIixcbiAgICBcIkxhcmtpblwiLFxuICAgIFwiTGFyc29uXCIsXG4gICAgXCJMZWFubm9uXCIsXG4gICAgXCJMZWZmbGVyXCIsXG4gICAgXCJMaXR0bGVcIixcbiAgICBcIkxvY2ttYW5cIixcbiAgICBcIkxvd2VcIixcbiAgICBcIkx5bmNoXCIsXG4gICAgXCJNYW5uXCIsXG4gICAgXCJNYXJrc1wiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXllclwiLFxuICAgIFwiTWNjdWxsb3VnaFwiLFxuICAgIFwiTWNkZXJtb3R0XCIsXG4gICAgXCJNY2tlbnppZVwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaWxsc1wiLFxuICAgIFwiTW9uYWhhblwiLFxuICAgIFwiTW9yaXNzZXR0ZVwiLFxuICAgIFwiTXVlbGxlclwiLFxuICAgIFwiTXVsbGVyXCIsXG4gICAgXCJOYWRlclwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiTm9sYW5cIixcbiAgICBcIk8nY29ubmVsbFwiLFxuICAgIFwiTydjb25uZXJcIixcbiAgICBcIk8naGFyYVwiLFxuICAgIFwiTydrZWVmZVwiLFxuICAgIFwiT2xzb25cIixcbiAgICBcIk8ncmVpbGx5XCIsXG4gICAgXCJQYXJpc2lhblwiLFxuICAgIFwiUGFya2VyXCIsXG4gICAgXCJRdWlnbGV5XCIsXG4gICAgXCJSZWlsbHlcIixcbiAgICBcIlJleW5vbGRzXCIsXG4gICAgXCJSaWNlXCIsXG4gICAgXCJSaXRjaGllXCIsXG4gICAgXCJSb2hhblwiLFxuICAgIFwiUm9sZnNvblwiLFxuICAgIFwiUm93ZVwiLFxuICAgIFwiUnVzc2VsXCIsXG4gICAgXCJSdXRoZXJmb3JkXCIsXG4gICAgXCJTYW5mb3JkXCIsXG4gICAgXCJTYXVlclwiLFxuICAgIFwiU2NobWlkdFwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2hyb2VkZXJcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNoaWVsZHNcIixcbiAgICBcIlNtaXRoYW1cIixcbiAgICBcIlNwZW5jZXJcIixcbiAgICBcIlN0YW50b25cIixcbiAgICBcIlN0YXJrXCIsXG4gICAgXCJTdG9rZXNcIixcbiAgICBcIlN3aWZ0XCIsXG4gICAgXCJUaWxsbWFuXCIsXG4gICAgXCJUb3duZVwiLFxuICAgIFwiVHJlbWJsYXlcIixcbiAgICBcIlRyb21wXCIsXG4gICAgXCJUdXJjb3R0ZVwiLFxuICAgIFwiVHVybmVyXCIsXG4gICAgXCJXYWxzaFwiLFxuICAgIFwiV2FsdGVyXCIsXG4gICAgXCJXYXJkXCIsXG4gICAgXCJXYXRlcnNcIixcbiAgICBcIldlYmVyXCIsXG4gICAgXCJXZWxjaFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiV2lsZGVybWFuXCIsXG4gICAgXCJXaWxraW5zb25cIixcbiAgICBcIldpbGxpYW1zb25cIixcbiAgICBcIldpbmRsZXJcIixcbiAgICBcIldvbGZcIlxuICBdXG59O1xuZW5fQVUuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHR5IEx0ZFwiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkNvcnBcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJCcm90aGVyc1wiLFxuICAgIFwiUGFydG5lcnNcIlxuICBdXG59O1xuZW5fQVUuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb20uYXVcIixcbiAgICBcImNvbVwiLFxuICAgIFwibmV0LmF1XCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZy5hdVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX0FVLmFkZHJlc3MgPSB7XG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJOU1dcIixcbiAgICBcIlFMRFwiLFxuICAgIFwiTlRcIixcbiAgICBcIlNBXCIsXG4gICAgXCJXQVwiLFxuICAgIFwiVEFTXCIsXG4gICAgXCJBQ1RcIixcbiAgICBcIlZJQ1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiTmV3IFNvdXRoIFdhbGVzXCIsXG4gICAgXCJRdWVlbnNsYW5kXCIsXG4gICAgXCJOb3J0aGVybiBUZXJyaXRvcnlcIixcbiAgICBcIlNvdXRoIEF1c3RyYWxpYVwiLFxuICAgIFwiV2VzdGVybiBBdXN0cmFsaWFcIixcbiAgICBcIlRhc21hbmlhXCIsXG4gICAgXCJBdXN0cmFsaWFuIENhcGl0YWwgVGVycml0b3J5XCIsXG4gICAgXCJWaWN0b3JpYVwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiMCMjI1wiLFxuICAgIFwiMiMjI1wiLFxuICAgIFwiMyMjI1wiLFxuICAgIFwiNCMjI1wiLFxuICAgIFwiNSMjI1wiLFxuICAgIFwiNiMjI1wiLFxuICAgIFwiNyMjI1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQXZlbnVlXCIsXG4gICAgXCJCb3VsZXZhcmRcIixcbiAgICBcIkNpcmNsZVwiLFxuICAgIFwiQ2lyY3VpdFwiLFxuICAgIFwiQ291cnRcIixcbiAgICBcIkNyZXNjZW50XCIsXG4gICAgXCJDcmVzdFwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkVzdGF0ZSBEclwiLFxuICAgIFwiR3JvdmVcIixcbiAgICBcIkhpbGxcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSnVuY3Rpb25cIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMb29wXCIsXG4gICAgXCJNYWxsXCIsXG4gICAgXCJNYW5vclwiLFxuICAgIFwiTWVhZG93XCIsXG4gICAgXCJNZXdzXCIsXG4gICAgXCJQYXJhZGVcIixcbiAgICBcIlBhcmt3YXlcIixcbiAgICBcIlBhc3NcIixcbiAgICBcIlBsYWNlXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUmlkZ2VcIixcbiAgICBcIlJvYWRcIixcbiAgICBcIlJ1blwiLFxuICAgIFwiU3F1YXJlXCIsXG4gICAgXCJTdGF0aW9uIFN0XCIsXG4gICAgXCJTdHJlZXRcIixcbiAgICBcIlN1bW1pdFwiLFxuICAgIFwiVGVycmFjZVwiLFxuICAgIFwiVHJhY2tcIixcbiAgICBcIlRyYWlsXCIsXG4gICAgXCJWaWV3IFJkXCIsXG4gICAgXCJXYXlcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJBdXN0cmFsaWFcIlxuICBdXG59O1xuZW5fQVUucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMCMgIyMjIyAjIyMjXCIsXG4gICAgXCIrNjEgIyAjIyMjICMjIyNcIixcbiAgICBcIjA0IyMgIyMjICMjI1wiLFxuICAgIFwiKzYxIDQjIyAjIyMgIyMjXCJcbiAgXVxufTtcbiIsInZhciBlbl9CT1JLID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fQk9SSztcbmVuX0JPUksudGl0bGUgPSBcIkJvcmsgKEVuZ2xpc2gpXCI7XG5lbl9CT1JLLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcIkJvb3RcIixcbiAgICBcIklcIixcbiAgICBcIk51XCIsXG4gICAgXCJOdXJcIixcbiAgICBcIlR1XCIsXG4gICAgXCJVbVwiLFxuICAgIFwiYVwiLFxuICAgIFwiYmVjb29zZS1hXCIsXG4gICAgXCJib290XCIsXG4gICAgXCJib3JrXCIsXG4gICAgXCJidXJuXCIsXG4gICAgXCJjaHV1c2VzXCIsXG4gICAgXCJjdW1wbGV0ZS1hXCIsXG4gICAgXCJjdW5cIixcbiAgICBcImN1bnNlcW9vZW5jZXNcIixcbiAgICBcImN1cmNvb21zdHVuY2VzXCIsXG4gICAgXCJkZWVcIixcbiAgICBcImRlZXNsaWtlc1wiLFxuICAgIFwiZGVudW9vbmNlZW5nXCIsXG4gICAgXCJkZXN1cmVzXCIsXG4gICAgXCJkdVwiLFxuICAgIFwiZWNjdW9vbnRcIixcbiAgICBcImVjdG9vZWxcIixcbiAgICBcImVkZnVudGVnZS1hXCIsXG4gICAgXCJlZnVlZWRzXCIsXG4gICAgXCJlZ2VlZW5cIixcbiAgICBcImVsbFwiLFxuICAgIFwiZXJlLWFcIixcbiAgICBcImZlZW5kXCIsXG4gICAgXCJmb29sdFwiLFxuICAgIFwiZnJ1bVwiLFxuICAgIFwiZ2VlZmUtYVwiLFxuICAgIFwiZ2VzaFwiLFxuICAgIFwiZ3JlZXRcIixcbiAgICBcImhlZW1cIixcbiAgICBcImhlcHBlZW5lc3NcIixcbiAgICBcImhlc1wiLFxuICAgIFwiaG9vXCIsXG4gICAgXCJob29tdW5cIixcbiAgICBcImlkZWFcIixcbiAgICBcImlmZXJcIixcbiAgICBcImluXCIsXG4gICAgXCJpbmN1b29udGVyXCIsXG4gICAgXCJpbmp1eVwiLFxuICAgIFwiaXRzZWxmZlwiLFxuICAgIFwiaXhjZXB0XCIsXG4gICAgXCJpeGVtcGxlLWFcIixcbiAgICBcIml4ZXJjZWVzZS1hXCIsXG4gICAgXCJpeHBsZWVlblwiLFxuICAgIFwiaXhwbHVyZXJcIixcbiAgICBcIml4cHVvb25kXCIsXG4gICAgXCJpeHRyZW1lbHlcIixcbiAgICBcImtub29cIixcbiAgICBcImxlYnVyZWV1b29zXCIsXG4gICAgXCJsdWZlc1wiLFxuICAgIFwibWVlc3Rla2VlXCIsXG4gICAgXCJtZXN0ZXItYm9vZWVsZGVyXCIsXG4gICAgXCJtb29zdFwiLFxuICAgIFwibXVuXCIsXG4gICAgXCJudVwiLFxuICAgIFwibnV0XCIsXG4gICAgXCJvb2J0ZWVlblwiLFxuICAgIFwib29jY2VzZWV1bmVsbHlcIixcbiAgICBcIm9vY2Nvb3JcIixcbiAgICBcIm9vZmZcIixcbiAgICBcIm9vbmUtYVwiLFxuICAgIFwib29yXCIsXG4gICAgXCJwZWVlblwiLFxuICAgIFwicGVlZW5mZm9vbFwiLFxuICAgIFwicGh5c2VlY2VsXCIsXG4gICAgXCJwbGVlc29vcmUtYVwiLFxuICAgIFwicG9vcnNvb2UtYVwiLFxuICAgIFwicG9vcnNvb2VzXCIsXG4gICAgXCJwcmVlZXNpbmdcIixcbiAgICBcInBydWNvb3JlLWFcIixcbiAgICBcInBydWRvb2Nlc1wiLFxuICAgIFwicmVlZ2h0XCIsXG4gICAgXCJyZXNodW5lbGx5XCIsXG4gICAgXCJyZXNvb2x0dW50XCIsXG4gICAgXCJzdW1lLWFcIixcbiAgICBcInRlZWNoZWVuZ3NcIixcbiAgICBcInRla2UtYVwiLFxuICAgIFwidGhlZXNcIixcbiAgICBcInRoZXRcIixcbiAgICBcInRodXNlLWFcIixcbiAgICBcInRyZWVmaWVsXCIsXG4gICAgXCJ0cm9vdFwiLFxuICAgIFwidHVcIixcbiAgICBcInR1ZWVsXCIsXG4gICAgXCJ1bmRcIixcbiAgICBcInVuZGVydGVrZXNcIixcbiAgICBcInVubnV5ZWVuZ1wiLFxuICAgIFwidW55XCIsXG4gICAgXCJ1bnl1bmUtYVwiLFxuICAgIFwidXNcIixcbiAgICBcInZlZWxsXCIsXG4gICAgXCJ2ZWV0XCIsXG4gICAgXCJ2ZXNcIixcbiAgICBcInZoZWVjaFwiLFxuICAgIFwidmh1XCIsXG4gICAgXCJ5dW9vXCIsXG4gICAgXCJ6ZWVcIixcbiAgICBcInplZXJlLWFcIlxuICBdXG59O1xuIiwidmFyIGVuX0NBID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fQ0E7XG5lbl9DQS50aXRsZSA9IFwiQ2FuYWRhIChFbmdsaXNoKVwiO1xuZW5fQ0EuYWRkcmVzcyA9IHtcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCI/Iz8gIz8jXCIsXG4gICAgXCI/Iz8jPyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkFsYmVydGFcIixcbiAgICBcIkJyaXRpc2ggQ29sdW1iaWFcIixcbiAgICBcIk1hbml0b2JhXCIsXG4gICAgXCJOZXcgQnJ1bnN3aWNrXCIsXG4gICAgXCJOZXdmb3VuZGxhbmQgYW5kIExhYnJhZG9yXCIsXG4gICAgXCJOb3ZhIFNjb3RpYVwiLFxuICAgIFwiTm9ydGh3ZXN0IFRlcnJpdG9yaWVzXCIsXG4gICAgXCJOdW5hdnV0XCIsXG4gICAgXCJPbnRhcmlvXCIsXG4gICAgXCJQcmluY2UgRWR3YXJkIElzbGFuZFwiLFxuICAgIFwiUXVlYmVjXCIsXG4gICAgXCJTYXNrYXRjaGV3YW5cIixcbiAgICBcIll1a29uXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkFCXCIsXG4gICAgXCJCQ1wiLFxuICAgIFwiTUJcIixcbiAgICBcIk5CXCIsXG4gICAgXCJOTFwiLFxuICAgIFwiTlNcIixcbiAgICBcIk5VXCIsXG4gICAgXCJOVFwiLFxuICAgIFwiT05cIixcbiAgICBcIlBFXCIsXG4gICAgXCJRQ1wiLFxuICAgIFwiU0tcIixcbiAgICBcIllLXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiQ2FuYWRhXCJcbiAgXVxufTtcbmVuX0NBLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jYVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY2FcIixcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5lbl9DQS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIjIyMtIyMjLSMjIyNcIixcbiAgICBcIigjIyMpIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy0jIyMtIyMjIyB4IyMjXCIsXG4gICAgXCIoIyMjKSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjXCIsXG4gICAgXCIjIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIigjIyMpIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyMjXCIsXG4gICAgXCIjIyMuIyMjLiMjIyMgeCMjIyNcIixcbiAgICBcIiMjIy0jIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIigjIyMpIyMjLSMjIyMgeCMjIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGVuX0dCID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fR0I7XG5lbl9HQi50aXRsZSA9IFwiR3JlYXQgQnJpdGFpbiAoRW5nbGlzaClcIjtcbmVuX0dCLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogXCIvW0EtUFItVVdZWl1bQS1ISy1ZXT9bMC05XVtBQkVITU5QUlZXWFkwLTldPyBbMC05XVtBQkQtSEpMTi1VVy1aXXsyfS9cIixcbiAgXCJjb3VudHlcIjogW1xuICAgIFwiQXZvblwiLFxuICAgIFwiQmVkZm9yZHNoaXJlXCIsXG4gICAgXCJCZXJrc2hpcmVcIixcbiAgICBcIkJvcmRlcnNcIixcbiAgICBcIkJ1Y2tpbmdoYW1zaGlyZVwiLFxuICAgIFwiQ2FtYnJpZGdlc2hpcmVcIixcbiAgICBcIkNlbnRyYWxcIixcbiAgICBcIkNoZXNoaXJlXCIsXG4gICAgXCJDbGV2ZWxhbmRcIixcbiAgICBcIkNsd3lkXCIsXG4gICAgXCJDb3Jud2FsbFwiLFxuICAgIFwiQ291bnR5IEFudHJpbVwiLFxuICAgIFwiQ291bnR5IEFybWFnaFwiLFxuICAgIFwiQ291bnR5IERvd25cIixcbiAgICBcIkNvdW50eSBGZXJtYW5hZ2hcIixcbiAgICBcIkNvdW50eSBMb25kb25kZXJyeVwiLFxuICAgIFwiQ291bnR5IFR5cm9uZVwiLFxuICAgIFwiQ3VtYnJpYVwiLFxuICAgIFwiRGVyYnlzaGlyZVwiLFxuICAgIFwiRGV2b25cIixcbiAgICBcIkRvcnNldFwiLFxuICAgIFwiRHVtZnJpZXMgYW5kIEdhbGxvd2F5XCIsXG4gICAgXCJEdXJoYW1cIixcbiAgICBcIkR5ZmVkXCIsXG4gICAgXCJFYXN0IFN1c3NleFwiLFxuICAgIFwiRXNzZXhcIixcbiAgICBcIkZpZmVcIixcbiAgICBcIkdsb3VjZXN0ZXJzaGlyZVwiLFxuICAgIFwiR3JhbXBpYW5cIixcbiAgICBcIkdyZWF0ZXIgTWFuY2hlc3RlclwiLFxuICAgIFwiR3dlbnRcIixcbiAgICBcIkd3eW5lZGQgQ291bnR5XCIsXG4gICAgXCJIYW1wc2hpcmVcIixcbiAgICBcIkhlcmVmb3Jkc2hpcmVcIixcbiAgICBcIkhlcnRmb3Jkc2hpcmVcIixcbiAgICBcIkhpZ2hsYW5kcyBhbmQgSXNsYW5kc1wiLFxuICAgIFwiSHVtYmVyc2lkZVwiLFxuICAgIFwiSXNsZSBvZiBXaWdodFwiLFxuICAgIFwiS2VudFwiLFxuICAgIFwiTGFuY2FzaGlyZVwiLFxuICAgIFwiTGVpY2VzdGVyc2hpcmVcIixcbiAgICBcIkxpbmNvbG5zaGlyZVwiLFxuICAgIFwiTG90aGlhblwiLFxuICAgIFwiTWVyc2V5c2lkZVwiLFxuICAgIFwiTWlkIEdsYW1vcmdhblwiLFxuICAgIFwiTm9yZm9sa1wiLFxuICAgIFwiTm9ydGggWW9ya3NoaXJlXCIsXG4gICAgXCJOb3J0aGFtcHRvbnNoaXJlXCIsXG4gICAgXCJOb3J0aHVtYmVybGFuZFwiLFxuICAgIFwiTm90dGluZ2hhbXNoaXJlXCIsXG4gICAgXCJPeGZvcmRzaGlyZVwiLFxuICAgIFwiUG93eXNcIixcbiAgICBcIlJ1dGxhbmRcIixcbiAgICBcIlNocm9wc2hpcmVcIixcbiAgICBcIlNvbWVyc2V0XCIsXG4gICAgXCJTb3V0aCBHbGFtb3JnYW5cIixcbiAgICBcIlNvdXRoIFlvcmtzaGlyZVwiLFxuICAgIFwiU3RhZmZvcmRzaGlyZVwiLFxuICAgIFwiU3RyYXRoY2x5ZGVcIixcbiAgICBcIlN1ZmZvbGtcIixcbiAgICBcIlN1cnJleVwiLFxuICAgIFwiVGF5c2lkZVwiLFxuICAgIFwiVHluZSBhbmQgV2VhclwiLFxuICAgIFwiV2Fyd2lja3NoaXJlXCIsXG4gICAgXCJXZXN0IEdsYW1vcmdhblwiLFxuICAgIFwiV2VzdCBNaWRsYW5kc1wiLFxuICAgIFwiV2VzdCBTdXNzZXhcIixcbiAgICBcIldlc3QgWW9ya3NoaXJlXCIsXG4gICAgXCJXaWx0c2hpcmVcIixcbiAgICBcIldvcmNlc3RlcnNoaXJlXCJcbiAgXSxcbiAgXCJ1a19jb3VudHJ5XCI6IFtcbiAgICBcIkVuZ2xhbmRcIixcbiAgICBcIlNjb3RsYW5kXCIsXG4gICAgXCJXYWxlc1wiLFxuICAgIFwiTm9ydGhlcm4gSXJlbGFuZFwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkVuZ2xhbmRcIixcbiAgICBcIlNjb3RsYW5kXCIsXG4gICAgXCJXYWxlc1wiLFxuICAgIFwiTm9ydGhlcm4gSXJlbGFuZFwiXG4gIF1cbn07XG5lbl9HQi5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvLnVrXCIsXG4gICAgXCJjb21cIixcbiAgICBcImJpelwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiXG4gIF1cbn07XG5lbl9HQi5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwMSMjIyMgIyMjIyNcIixcbiAgICBcIjAxIyMjICMjIyMjI1wiLFxuICAgIFwiMDEjMSAjIyMgIyMjI1wiLFxuICAgIFwiMDExIyAjIyMgIyMjI1wiLFxuICAgIFwiMDIjICMjIyMgIyMjI1wiLFxuICAgIFwiMDMjIyAjIyMgIyMjI1wiLFxuICAgIFwiMDU1ICMjIyMgIyMjI1wiLFxuICAgIFwiMDU2ICMjIyMgIyMjI1wiLFxuICAgIFwiMDgwMCAjIyMgIyMjI1wiLFxuICAgIFwiMDgjIyAjIyMgIyMjI1wiLFxuICAgIFwiMDkjIyAjIyMgIyMjI1wiLFxuICAgIFwiMDE2OTc3ICMjIyNcIixcbiAgICBcIjAxIyMjICMjIyMjXCIsXG4gICAgXCIwNTAwICMjIyMjI1wiLFxuICAgIFwiMDgwMCAjIyMjIyNcIlxuICBdXG59O1xuZW5fR0IuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjA3NCMjICMjIyMjI1wiLFxuICAgIFwiMDc1IyMgIyMjIyMjXCIsXG4gICAgXCIwNzYjIyAjIyMjIyNcIixcbiAgICBcIjA3NyMjICMjIyMjI1wiLFxuICAgIFwiMDc4IyMgIyMjIyMjXCIsXG4gICAgXCIwNzkjIyAjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGVuX0lORCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVuX0lORDtcbmVuX0lORC50aXRsZSA9IFwiSW5kaWEgKEVuZ2xpc2gpXCI7XG5lbl9JTkQubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhZHJpa2FcIixcbiAgICBcIkFhbmFuZGluaWlcIixcbiAgICBcIkFhcmF0cmlrYVwiLFxuICAgIFwiQWFyeWFcIixcbiAgICBcIkFyeWFcIixcbiAgICBcIkFhc2hyaXRoYVwiLFxuICAgIFwiQWF0bWFqYVwiLFxuICAgIFwiQXRtYWphXCIsXG4gICAgXCJBYmhheWFcIixcbiAgICBcIkFkd2l0aXlhXCIsXG4gICAgXCJBZ3JhdGFcIixcbiAgICBcIkFoaWx5YVwiLFxuICAgIFwiQWhhbHlhXCIsXG4gICAgXCJBaXNoYW5pXCIsXG4gICAgXCJBa3NoYWluaWVcIixcbiAgICBcIkFrc2hhdGFcIixcbiAgICBcIkFrc2hpdGFcIixcbiAgICBcIkFrdWxhXCIsXG4gICAgXCJBbWJhclwiLFxuICAgIFwiQW1vZGluaVwiLFxuICAgIFwiQW1yaXRhXCIsXG4gICAgXCJBbXJpdGFtYnVcIixcbiAgICBcIkFuYWxhXCIsXG4gICAgXCJBbmFtaWthXCIsXG4gICAgXCJBbmFuZGFcIixcbiAgICBcIkFuYW5kYW1heWlcIixcbiAgICBcIkFuYW50YVwiLFxuICAgIFwiQW5pbGFcIixcbiAgICBcIkFuamFsaVwiLFxuICAgIFwiQW5qdXNocmlcIixcbiAgICBcIkFuanVzaHJlZVwiLFxuICAgIFwiQW5uYXB1cm5hXCIsXG4gICAgXCJBbnNodWxhXCIsXG4gICAgXCJBbnVqYVwiLFxuICAgIFwiQW51c3V5YVwiLFxuICAgIFwiQW5hc3V5YVwiLFxuICAgIFwiQW5hc29veWFcIixcbiAgICBcIkFud2VzaGFcIixcbiAgICBcIkFwc2FyYVwiLFxuICAgIFwiQXJ1bmFcIixcbiAgICBcIkFzaGFcIixcbiAgICBcIkFhc2FcIixcbiAgICBcIkFhc2hhXCIsXG4gICAgXCJBc2xlc2hhXCIsXG4gICAgXCJBdHJleWlcIixcbiAgICBcIkF0cmV5ZWVcIixcbiAgICBcIkF2YW5pXCIsXG4gICAgXCJBYmFuaVwiLFxuICAgIFwiQXZhbnRpa2FcIixcbiAgICBcIkF5dXNobWF0aVwiLFxuICAgIFwiQmFpZGVoaVwiLFxuICAgIFwiVmFpZGVoaVwiLFxuICAgIFwiQmFsYVwiLFxuICAgIFwiQmFhbGFcIixcbiAgICBcIkJhbGFtYW5pXCIsXG4gICAgXCJCYXNhbnRpXCIsXG4gICAgXCJWYXNhbnRpXCIsXG4gICAgXCJCZWxhXCIsXG4gICAgXCJCaGFkcmFcIixcbiAgICBcIkJoYWdpcmF0aGlcIixcbiAgICBcIkJoYWd3YW50aVwiLFxuICAgIFwiQmhhZ3dhdGlcIixcbiAgICBcIkJoYW1pbmlcIixcbiAgICBcIkJoYW51bWF0aVwiLFxuICAgIFwiQmhhYW51bWF0aVwiLFxuICAgIFwiQmhhcmdhdmlcIixcbiAgICBcIkJoYXZhbmlcIixcbiAgICBcIkJoaWxhbmdhbmFcIixcbiAgICBcIkJpbHdhXCIsXG4gICAgXCJCaWx2YVwiLFxuICAgIFwiQnVkZGhhbmFcIixcbiAgICBcIkNoYWtyaWthXCIsXG4gICAgXCJDaGFuZGFcIixcbiAgICBcIkNoYW5kaVwiLFxuICAgIFwiQ2hhbmRuaVwiLFxuICAgIFwiQ2hhbmRpbmlcIixcbiAgICBcIkNoYW5kYW5pXCIsXG4gICAgXCJDaGFuZHJhXCIsXG4gICAgXCJDaGFuZGlyYVwiLFxuICAgIFwiQ2hhbmRyYWJoYWdhXCIsXG4gICAgXCJDaGFuZHJha2FsYVwiLFxuICAgIFwiQ2hhbmRyYWtpblwiLFxuICAgIFwiQ2hhbmRyYW1hbmlcIixcbiAgICBcIkNoYW5kcmFuaVwiLFxuICAgIFwiQ2hhbmRyYXByYWJoYVwiLFxuICAgIFwiQ2hhbmRyYXN3YXJvb3BhXCIsXG4gICAgXCJDaGFuZHJhdmF0aVwiLFxuICAgIFwiQ2hhcGFsYVwiLFxuICAgIFwiQ2hhcnVtYXRpXCIsXG4gICAgXCJDaGFydmlcIixcbiAgICBcIkNoYXR1cmFcIixcbiAgICBcIkNoaXRyYWxpXCIsXG4gICAgXCJDaGl0cmFtYWxhXCIsXG4gICAgXCJDaGl0cmFuZ2FkYVwiLFxuICAgIFwiRGFrc2hhXCIsXG4gICAgXCJEYWtzaGF5YW5pXCIsXG4gICAgXCJEYW1heWFudGlcIixcbiAgICBcIkRhcnNod2FuYVwiLFxuICAgIFwiRGVlcGFsaVwiLFxuICAgIFwiRGlwYWxpXCIsXG4gICAgXCJEZWVwdGltb3llZVwiLFxuICAgIFwiRGVlcHRpbWF5ZWVcIixcbiAgICBcIkRldmFuZ2FuYVwiLFxuICAgIFwiRGV2YW5pXCIsXG4gICAgXCJEZXZhc3JlZVwiLFxuICAgIFwiRGV2aVwiLFxuICAgIFwiRGFldmlcIixcbiAgICBcIkRldmlrYVwiLFxuICAgIFwiRGFldmlrYVwiLFxuICAgIFwiRGhhYW55YWxha3NobWlcIixcbiAgICBcIkRoYW5hbGFrc2htaVwiLFxuICAgIFwiRGhhbmFcIixcbiAgICBcIkRoYW5hZGVlcGFcIixcbiAgICBcIkRoYXJhXCIsXG4gICAgXCJEaGFyYW5pXCIsXG4gICAgXCJEaGFyaXRyaVwiLFxuICAgIFwiRGhhdHJpXCIsXG4gICAgXCJEaWtzaGFcIixcbiAgICBcIkRlZWtzaGFcIixcbiAgICBcIkRpdnlhXCIsXG4gICAgXCJEcmF1cGFkaVwiLFxuICAgIFwiRHVsYXJpXCIsXG4gICAgXCJEdXJnYVwiLFxuICAgIFwiRHVyZ2VzaHdhcmlcIixcbiAgICBcIkVrYXBhcm5pa2FcIixcbiAgICBcIkVsYWtzaGlcIixcbiAgICBcIkVuYWtzaGlcIixcbiAgICBcIkVzaGFcIixcbiAgICBcIkVzaGFuYVwiLFxuICAgIFwiRXNoaXRhXCIsXG4gICAgXCJHYXV0YW1pXCIsXG4gICAgXCJHYXlhdHJpXCIsXG4gICAgXCJHZWV0YVwiLFxuICAgIFwiR2VldGFuamFsaVwiLFxuICAgIFwiR2l0YW5qYWxpXCIsXG4gICAgXCJHZW1pbmVcIixcbiAgICBcIkdlbWluaVwiLFxuICAgIFwiR2lyamFcIixcbiAgICBcIkdpcmlqYVwiLFxuICAgIFwiR2l0YVwiLFxuICAgIFwiSGFtc2luaVwiLFxuICAgIFwiSGFyaW5ha3NoaVwiLFxuICAgIFwiSGFyaXRhXCIsXG4gICAgXCJIZWVtYVwiLFxuICAgIFwiSGltYWRyaVwiLFxuICAgIFwiSGltYW5pXCIsXG4gICAgXCJIaXJhbnlhXCIsXG4gICAgXCJJbmRpcmFcIixcbiAgICBcIkphaW1pbmlcIixcbiAgICBcIkpheWFcIixcbiAgICBcIkp5b3RpXCIsXG4gICAgXCJKeW90c2FuYVwiLFxuICAgIFwiS2FsaVwiLFxuICAgIFwiS2FsaW5kYVwiLFxuICAgIFwiS2FscGFuYVwiLFxuICAgIFwiS2FseWFuaVwiLFxuICAgIFwiS2FtYVwiLFxuICAgIFwiS2FtYWxhXCIsXG4gICAgXCJLYW1sYVwiLFxuICAgIFwiS2FuY2hhblwiLFxuICAgIFwiS2FuaXNoa2FcIixcbiAgICBcIkthbnRpXCIsXG4gICAgXCJLYXNoeWFwaVwiLFxuICAgIFwiS3VtYXJpXCIsXG4gICAgXCJLdW11ZGFcIixcbiAgICBcIkxha3NobWlcIixcbiAgICBcIkxheG1pXCIsXG4gICAgXCJMYWxpdGFcIixcbiAgICBcIkxhdmFueWFcIixcbiAgICBcIkxlZWxhXCIsXG4gICAgXCJMaWxhXCIsXG4gICAgXCJMZWVsYVwiLFxuICAgIFwiTWFkaHVyaVwiLFxuICAgIFwiTWFsdGlcIixcbiAgICBcIk1hbGF0aVwiLFxuICAgIFwiTWFuZGFraW5pXCIsXG4gICAgXCJNYW5kYWFraW5cIixcbiAgICBcIk1hbmdhbGFcIixcbiAgICBcIk1hbmdhbHlhXCIsXG4gICAgXCJNYW5pXCIsXG4gICAgXCJNYW5pc2hhXCIsXG4gICAgXCJNYW5qdXNoYVwiLFxuICAgIFwiTWVlbmFcIixcbiAgICBcIk1pbmFcIixcbiAgICBcIk1lZW5ha3NoaVwiLFxuICAgIFwiTWluYWtzaGlcIixcbiAgICBcIk1lbmthXCIsXG4gICAgXCJNZW5ha2FcIixcbiAgICBcIk1vaGFuYVwiLFxuICAgIFwiTW9oaW5pXCIsXG4gICAgXCJOYWxpbmlcIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiT2phc3dpbmlcIixcbiAgICBcIk9tYW5hXCIsXG4gICAgXCJPb3JtaWxhXCIsXG4gICAgXCJVcm1pbGFcIixcbiAgICBcIk9wYWxpbmFcIixcbiAgICBcIk9wYWxpbmVcIixcbiAgICBcIlBhZG1hXCIsXG4gICAgXCJQYXJ2YXRpXCIsXG4gICAgXCJQb29ybmltYVwiLFxuICAgIFwiUHVybmltYVwiLFxuICAgIFwiUHJhbWlsYVwiLFxuICAgIFwiUHJhc2FubmFcIixcbiAgICBcIlByZWl0eVwiLFxuICAgIFwiUHJlbWFcIixcbiAgICBcIlByaXlhXCIsXG4gICAgXCJQcml5YWxhXCIsXG4gICAgXCJQdXNodGlcIixcbiAgICBcIlJhZGhhXCIsXG4gICAgXCJSYWdlc3dhcmlcIixcbiAgICBcIlJhZ2VzaHdhcmlcIixcbiAgICBcIlJhamluZGVyXCIsXG4gICAgXCJSYW1hYVwiLFxuICAgIFwiUmF0aVwiLFxuICAgIFwiUml0YVwiLFxuICAgIFwiUm9oYW5hXCIsXG4gICAgXCJSdWtobWFuaVwiLFxuICAgIFwiUnVrbWluXCIsXG4gICAgXCJSdXBpbmRlclwiLFxuICAgIFwiU2FueWFcIixcbiAgICBcIlNhcmFkYVwiLFxuICAgIFwiU2hhcmRhXCIsXG4gICAgXCJTYXJhbGFcIixcbiAgICBcIlNhcmxhXCIsXG4gICAgXCJTYXJhc3dhdGlcIixcbiAgICBcIlNhcmlzaGFcIixcbiAgICBcIlNhcm9qYVwiLFxuICAgIFwiU2hha3RpXCIsXG4gICAgXCJTaGFrdW50YWxhXCIsXG4gICAgXCJTaGFudGlcIixcbiAgICBcIlNoYXJtaWxhXCIsXG4gICAgXCJTaGFzaGlcIixcbiAgICBcIlNoYXNoaWthbGFcIixcbiAgICBcIlNoZWVsYVwiLFxuICAgIFwiU2hpdmFrYXJpXCIsXG4gICAgXCJTaG9iaGFuYVwiLFxuICAgIFwiU2hyZXN0aFwiLFxuICAgIFwiU2hyZXN0aGlcIixcbiAgICBcIlNocmV5YVwiLFxuICAgIFwiU2hyZXlhc2hpXCIsXG4gICAgXCJTaHJpZGV2aVwiLFxuICAgIFwiU2hyaXNodGlcIixcbiAgICBcIlNodWJoYVwiLFxuICAgIFwiU2h1YmhhcHJhZGFcIixcbiAgICBcIlNpZGRoaVwiLFxuICAgIFwiU2l0YXJhXCIsXG4gICAgXCJTbG9rYVwiLFxuICAgIFwiU21pdGFcIixcbiAgICBcIlNtcml0aVwiLFxuICAgIFwiU29tYVwiLFxuICAgIFwiU3ViaGFzaGluaVwiLFxuICAgIFwiU3ViaGFzaW5pXCIsXG4gICAgXCJTdWNoZXRhXCIsXG4gICAgXCJTdWRldmFcIixcbiAgICBcIlN1amF0YVwiLFxuICAgIFwiU3VrYW55YVwiLFxuICAgIFwiU3VtYVwiLFxuICAgIFwiU3VtYVwiLFxuICAgIFwiU3VtaXRyYVwiLFxuICAgIFwiU3VuaXRhXCIsXG4gICAgXCJTdXJ5YWthbnRhbVwiLFxuICAgIFwiU3VzaG1hXCIsXG4gICAgXCJTd2FyYVwiLFxuICAgIFwiU3dhcm5hbGF0YVwiLFxuICAgIFwiU3dldGFcIixcbiAgICBcIlNod2V0XCIsXG4gICAgXCJUYW5pcmlrYVwiLFxuICAgIFwiVGFudXNocmVlXCIsXG4gICAgXCJUYW51c2hyaVwiLFxuICAgIFwiVGFudXNocmlcIixcbiAgICBcIlRhbnlhXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUcmlzaGFcIixcbiAgICBcIlVtYVwiLFxuICAgIFwiVXNoYVwiLFxuICAgIFwiVmFpamF5YW50aVwiLFxuICAgIFwiVmFpamF5YW50aGlcIixcbiAgICBcIkJhaWpheWFudGlcIixcbiAgICBcIlZhaXNodmlcIixcbiAgICBcIlZhaXNobmF2aVwiLFxuICAgIFwiVmFpc2hub1wiLFxuICAgIFwiVmFyYWxha3NobWlcIixcbiAgICBcIlZhc3VkaGFcIixcbiAgICBcIlZhc3VuZGhhcmFcIixcbiAgICBcIlZlZGFcIixcbiAgICBcIlZlZGFuc2hpXCIsXG4gICAgXCJWaWR5YVwiLFxuICAgIFwiVmltYWxhXCIsXG4gICAgXCJWcmluZGFcIixcbiAgICBcIlZydW5kXCIsXG4gICAgXCJBYWRpXCIsXG4gICAgXCJBYWRpZGV2XCIsXG4gICAgXCJBYWRpbmF0aFwiLFxuICAgIFwiQWFkaXR5YVwiLFxuICAgIFwiQWFnYW1cIixcbiAgICBcIkFhZ25leVwiLFxuICAgIFwiQWFtb2RcIixcbiAgICBcIkFhbmFuZGFzd2FydXBcIixcbiAgICBcIkFuYW5kIFN3YXJ1cFwiLFxuICAgIFwiQWFuamFuZXlhXCIsXG4gICAgXCJBbmphbmV5YVwiLFxuICAgIFwiQWFyeWFuXCIsXG4gICAgXCJBcnlhblwiLFxuICAgIFwiQWF0bWFqXCIsXG4gICAgXCJBYXRyZXlhXCIsXG4gICAgXCJBYXl1c2htYWFuXCIsXG4gICAgXCJBYXl1c2htYW5cIixcbiAgICBcIkFiaGFpZGV2XCIsXG4gICAgXCJBYmhheWFcIixcbiAgICBcIkFiaGlyYXRoXCIsXG4gICAgXCJBYmhpc3lhbnRhXCIsXG4gICAgXCJBY2FyeWF0YW5heWFcIixcbiAgICBcIkFjaGFsZXN2YXJhXCIsXG4gICAgXCJBY2hhcnlhbmFuZGFuYVwiLFxuICAgIFwiQWNoYXJ5YXN1dGFcIixcbiAgICBcIkFjaGludHlhXCIsXG4gICAgXCJBY2h5dXRcIixcbiAgICBcIkFkaGVlc2hcIixcbiAgICBcIkFkaGlyYWpcIixcbiAgICBcIkFkaHJpdFwiLFxuICAgIFwiQWRpa2F2aVwiLFxuICAgIFwiQWRpbmF0aFwiLFxuICAgIFwiQWRpdGV5YVwiLFxuICAgIFwiQWRpdHlhXCIsXG4gICAgXCJBZGl0eWFuYW5kYW5cIixcbiAgICBcIkFkaXR5YW5hbmRhbmFcIixcbiAgICBcIkFkcmlwYXRoaVwiLFxuICAgIFwiQWR2YXlhXCIsXG4gICAgXCJBZ2FzdGlcIixcbiAgICBcIkFnYXN0eWFcIixcbiAgICBcIkFnbmV5YVwiLFxuICAgIFwiQWFnbmV5YVwiLFxuICAgIFwiQWduaW1pdHJhXCIsXG4gICAgXCJBZ25pcHJhdmFcIixcbiAgICBcIkFnbml2ZXNoXCIsXG4gICAgXCJBZ3JhdGFcIixcbiAgICBcIkFqaXRcIixcbiAgICBcIkFqZWV0XCIsXG4gICAgXCJBa3Jvb3JcIixcbiAgICBcIkFrc2hhalwiLFxuICAgIFwiQWtzaGF0XCIsXG4gICAgXCJBa3NoYXlha2VlcnRpXCIsXG4gICAgXCJBbG9rXCIsXG4gICAgXCJBYWxva1wiLFxuICAgIFwiQW1hcmFuYWF0aFwiLFxuICAgIFwiQW1hcm5hdGhcIixcbiAgICBcIkFtYXJlc2hcIixcbiAgICBcIkFtYmFyXCIsXG4gICAgXCJBbWV5YXRtYVwiLFxuICAgIFwiQW1pc2hcIixcbiAgICBcIkFtb2doXCIsXG4gICAgXCJBbXJpdFwiLFxuICAgIFwiQW5hYWRpXCIsXG4gICAgXCJBbmFnaFwiLFxuICAgIFwiQW5hbFwiLFxuICAgIFwiQW5hbmRcIixcbiAgICBcIkFhbmFuZFwiLFxuICAgIFwiQW5hbmdcIixcbiAgICBcIkFuaWxcIixcbiAgICBcIkFuaWxhYWJoXCIsXG4gICAgXCJBbmlsYWJoXCIsXG4gICAgXCJBbmlzaFwiLFxuICAgIFwiQW5rYWxcIixcbiAgICBcIkFudW5heVwiLFxuICAgIFwiQW51cmFnXCIsXG4gICAgXCJBbnVyYWFnXCIsXG4gICAgXCJBcmNoYW5cIixcbiAgICBcIkFyaW5kYW1cIixcbiAgICBcIkFyanVuXCIsXG4gICAgXCJBcm5lc2hcIixcbiAgICBcIkFydW5cIixcbiAgICBcIkFzaGxlc2hcIixcbiAgICBcIkFzaG9rXCIsXG4gICAgXCJBdG1hbmFuZFwiLFxuICAgIFwiQXRtYW5hbmRhXCIsXG4gICAgXCJBdmFkaGVzaFwiLFxuICAgIFwiQmFhbGFhZGl0eWFcIixcbiAgICBcIkJhbGFkaXR5YVwiLFxuICAgIFwiQmFhbGFnb3BhYWxcIixcbiAgICBcIkJhbGdvcGFsXCIsXG4gICAgXCJCYWxhZ29wYWxcIixcbiAgICBcIkJhaHVsYVwiLFxuICAgIFwiQmFrdWxhXCIsXG4gICAgXCJCYWxhXCIsXG4gICAgXCJCYWxhYWRpdHlhXCIsXG4gICAgXCJCYWxhY2hhbmRyYVwiLFxuICAgIFwiQmFsYWdvdmluZFwiLFxuICAgIFwiQmFuZGh1XCIsXG4gICAgXCJCYW5kaHVsXCIsXG4gICAgXCJCYW5raW1cIixcbiAgICBcIkJhbmtpbWNoYW5kcmFcIixcbiAgICBcIkJoYWRyYWtcIixcbiAgICBcIkJoYWRyYWtzaFwiLFxuICAgIFwiQmhhZHJhblwiLFxuICAgIFwiQmhhZ2F2YWFuXCIsXG4gICAgXCJCaGFndmFuXCIsXG4gICAgXCJCaGFyYWR3YWpcIixcbiAgICBcIkJoYXJkd2FqXCIsXG4gICAgXCJCaGFyYXRcIixcbiAgICBcIkJoYXJnYXZhXCIsXG4gICAgXCJCaGFzdmFuXCIsXG4gICAgXCJCaGFhc3ZhblwiLFxuICAgIFwiQmhhc3dhclwiLFxuICAgIFwiQmhhYXN3YXJcIixcbiAgICBcIkJoYXVtaWtcIixcbiAgICBcIkJoYXZlc1wiLFxuICAgIFwiQmhlZXNobWFcIixcbiAgICBcIkJoaXNoYW1cIixcbiAgICBcIkJoaXNobWFcIixcbiAgICBcIkJoaW1hXCIsXG4gICAgXCJCaG9qXCIsXG4gICAgXCJCaHJhbWFyXCIsXG4gICAgXCJCaHVkZXZcIixcbiAgICBcIkJodWRldmFcIixcbiAgICBcIkJodXBhdGlcIixcbiAgICBcIkJob29wYXRpXCIsXG4gICAgXCJCaG9vcGF0XCIsXG4gICAgXCJCaHVwZW5cIixcbiAgICBcIkJodXNoYW5cIixcbiAgICBcIkJob29zaGFuXCIsXG4gICAgXCJCaHVzaGl0XCIsXG4gICAgXCJCaG9vc2hpdFwiLFxuICAgIFwiQmh1dmFuZXNoXCIsXG4gICAgXCJCaHV2YW5lc2h3YXJcIixcbiAgICBcIkJpbHZhXCIsXG4gICAgXCJCb2RoYW5cIixcbiAgICBcIkJyYWhtYVwiLFxuICAgIFwiQnJhaG1hYnJhdGFcIixcbiAgICBcIkJyYWhtYW5hbmRhbVwiLFxuICAgIFwiQnJhaG1hYW5hbmRcIixcbiAgICBcIkJyYWhtZGV2XCIsXG4gICAgXCJCcmFqZW5kcmFcIixcbiAgICBcIkJyYWplc2hcIixcbiAgICBcIkJyaWplc2hcIixcbiAgICBcIkJpcmplc2hcIixcbiAgICBcIkJ1ZGhpbFwiLFxuICAgIFwiQ2hha29yXCIsXG4gICAgXCJDaGFrcmFkaGFyXCIsXG4gICAgXCJDaGFrcmF2YXJ0ZWVcIixcbiAgICBcIkNoYWtyYXZhcnRpXCIsXG4gICAgXCJDaGFuYWt5YVwiLFxuICAgIFwiQ2hhYW5ha3lhXCIsXG4gICAgXCJDaGFuZGFrXCIsXG4gICAgXCJDaGFuZGFuXCIsXG4gICAgXCJDaGFuZHJhXCIsXG4gICAgXCJDaGFuZHJhYXlhblwiLFxuICAgIFwiQ2hhbmRyYWJoYW5cIixcbiAgICBcIkNoYW5kcmFkZXZcIixcbiAgICBcIkNoYW5kcmFrZXR1XCIsXG4gICAgXCJDaGFuZHJhbWF1bGlcIixcbiAgICBcIkNoYW5kcmFtb2hhblwiLFxuICAgIFwiQ2hhbmRyYW5cIixcbiAgICBcIkNoYW5kcmFuYXRoXCIsXG4gICAgXCJDaGFwYWxcIixcbiAgICBcIkNoYXJha1wiLFxuICAgIFwiQ2hhcnVjaGFuZHJhXCIsXG4gICAgXCJDaGFhcnVjaGFuZHJhXCIsXG4gICAgXCJDaGFydXZyYXRcIixcbiAgICBcIkNoYXR1clwiLFxuICAgIFwiQ2hhdHVyYWFuYW5cIixcbiAgICBcIkNoYXR1cmJodWpcIixcbiAgICBcIkNoZXRhblwiLFxuICAgIFwiQ2hhdGVuXCIsXG4gICAgXCJDaGFpdGFuXCIsXG4gICAgXCJDaGV0YW5hYW5hbmRcIixcbiAgICBcIkNoaWRhYWthYXNoXCIsXG4gICAgXCJDaGlkYWF0bWFcIixcbiAgICBcIkNoaWRhbWJhclwiLFxuICAgIFwiQ2hpZGFtYmFyYW1cIixcbiAgICBcIkNoaWRhbmFuZGFcIixcbiAgICBcIkNoaW5tYXlhbmFuZFwiLFxuICAgIFwiQ2hpbm1heWFuYW5kYVwiLFxuICAgIFwiQ2hpcmFuamVldlwiLFxuICAgIFwiQ2hpcmFuamVldmVcIixcbiAgICBcIkNoaXRyYWtzaFwiLFxuICAgIFwiRGFpd2lrXCIsXG4gICAgXCJEYWtzaGFcIixcbiAgICBcIkRhbW9kYXJhXCIsXG4gICAgXCJEYW5kYWtcIixcbiAgICBcIkRhbmRhcGFhbmlcIixcbiAgICBcIkRhcnNoYW5cIixcbiAgICBcIkRhdHRhXCIsXG4gICAgXCJEYXlhYW1heVwiLFxuICAgIFwiRGF5YW1heWVlXCIsXG4gICAgXCJEYXlhYW5hbmRhXCIsXG4gICAgXCJEYXlhYW5pZGhpXCIsXG4gICAgXCJLaW5cIixcbiAgICBcIkRlZW5hYmFuZGh1XCIsXG4gICAgXCJEZWVwYW5cIixcbiAgICBcIkRlZXBhbmthclwiLFxuICAgIFwiRGlwYW5rYXJcIixcbiAgICBcIkRlZXBlbmRyYVwiLFxuICAgIFwiRGlwZW5kcmFcIixcbiAgICBcIkRlZXBlc2hcIixcbiAgICBcIkRpcGVzaFwiLFxuICAgIFwiRGVlcHRhbnNodVwiLFxuICAgIFwiRGVlcHRlbmR1XCIsXG4gICAgXCJEaXB0ZW5kdVwiLFxuICAgIFwiRGVlcHRpbWFuXCIsXG4gICAgXCJEZWVwdGltb3lcIixcbiAgICBcIkRlZXB0aW1heVwiLFxuICAgIFwiRGV2XCIsXG4gICAgXCJEZWJcIixcbiAgICBcIkRldmFkYXR0XCIsXG4gICAgXCJEZXZhZ3lhXCIsXG4gICAgXCJEZXZhanlvdGlcIixcbiAgICBcIkRldmFrXCIsXG4gICAgXCJEZXZkYW5cIixcbiAgICBcIkRldmVuXCIsXG4gICAgXCJEZXZlc2hcIixcbiAgICBcIkRldmVzaHdhclwiLFxuICAgIFwiRGV2aVwiLFxuICAgIFwiRGV2dnJhdFwiLFxuICAgIFwiRGhhbmFuamF5XCIsXG4gICAgXCJEaGFuYXBhdGlcIixcbiAgICBcIkRoYW5wYXRpXCIsXG4gICAgXCJEaGFuZXNoXCIsXG4gICAgXCJEaGFudVwiLFxuICAgIFwiRGhhbnZpblwiLFxuICAgIFwiRGhhcm1ha2V0dVwiLFxuICAgIFwiRGhydXZcIixcbiAgICBcIkRoeWFuZXNoXCIsXG4gICAgXCJEaHlhbmVzaHdhclwiLFxuICAgIFwiRGlnYW1iYXJcIixcbiAgICBcIkRpZ2FtYmFyYVwiLFxuICAgIFwiRGluYWthclwiLFxuICAgIFwiRGlua2FyXCIsXG4gICAgXCJEaW5lc2hcIixcbiAgICBcIkRpdmFha2FyXCIsXG4gICAgXCJEaXZha2FyXCIsXG4gICAgXCJEZWV2YWthclwiLFxuICAgIFwiRGl2am90XCIsXG4gICAgXCJEcm9uXCIsXG4gICAgXCJEcm9uYVwiLFxuICAgIFwiRHdhaXBheWFuXCIsXG4gICAgXCJEd2FpcGF5YW5hXCIsXG4gICAgXCJFZWthbGFieWFcIixcbiAgICBcIkVrYWxhdnlhXCIsXG4gICAgXCJFa2Frc2hcIixcbiAgICBcIkVrYWFrc2hcIixcbiAgICBcIkVrYWxpbmdcIixcbiAgICBcIkVrZGFudFwiLFxuICAgIFwiRWthZGFudFwiLFxuICAgIFwiR2FqYWFkaGFyXCIsXG4gICAgXCJHYWphZGhhclwiLFxuICAgIFwiR2FqYmFhaHVcIixcbiAgICBcIkdhamFiYWh1XCIsXG4gICAgXCJHYW5ha1wiLFxuICAgIFwiR2FuYWthXCIsXG4gICAgXCJHYW5hcGF0aVwiLFxuICAgIFwiR2FuZGhhcnZcIixcbiAgICBcIkdhbmRoYXJ2YVwiLFxuICAgIFwiR2FuZXNoXCIsXG4gICAgXCJHYW5nZXNoXCIsXG4gICAgXCJHYXJ1ZFwiLFxuICAgIFwiR2FydWRhXCIsXG4gICAgXCJHYXRpXCIsXG4gICAgXCJHYXRpa1wiLFxuICAgIFwiR2F1cmFuZ1wiLFxuICAgIFwiR2F1cmFhbmdcIixcbiAgICBcIkdhdXJhbmdhXCIsXG4gICAgXCJHb3VyYW5nYVwiLFxuICAgIFwiR2F1dGFtXCIsXG4gICAgXCJHYXV0YW1hXCIsXG4gICAgXCJHb3V0YW1cIixcbiAgICBcIkdoYW5hYW5hbmRcIixcbiAgICBcIkdoYW5zaHlhbVwiLFxuICAgIFwiR2hhbmFzaHlhbVwiLFxuICAgIFwiR2lyaVwiLFxuICAgIFwiR2lyaWtcIixcbiAgICBcIkdpcmlrYVwiLFxuICAgIFwiR2lyaW5kcmFcIixcbiAgICBcIkdpcmlyYWFqXCIsXG4gICAgXCJHaXJpcmFqXCIsXG4gICAgXCJHaXJpc2hcIixcbiAgICBcIkdvcGFsXCIsXG4gICAgXCJHb3BhYWxcIixcbiAgICBcIkdvcGlcIixcbiAgICBcIkdvcGVlXCIsXG4gICAgXCJHb3Jha2huYXRoXCIsXG4gICAgXCJHb3Jha2hhbmF0aGFcIixcbiAgICBcIkdvc3dhbWVlXCIsXG4gICAgXCJHb3N3YW1pXCIsXG4gICAgXCJHb3R1bVwiLFxuICAgIFwiR2F1dGFtXCIsXG4gICAgXCJHb3ZpbmRhXCIsXG4gICAgXCJHb2JpbmRhXCIsXG4gICAgXCJHdWRha2VzaGFcIixcbiAgICBcIkd1ZGFrZXNhXCIsXG4gICAgXCJHdXJkZXZcIixcbiAgICBcIkd1cnVcIixcbiAgICBcIkhhcmlcIixcbiAgICBcIkhhcmluYXJheWFuXCIsXG4gICAgXCJIYXJpdFwiLFxuICAgIFwiSGltYWRyaVwiLFxuICAgIFwiSGlyYW5tYXlcIixcbiAgICBcIkhpcmFubWF5YVwiLFxuICAgIFwiSGlyYW55YVwiLFxuICAgIFwiSW5kZXJcIixcbiAgICBcIkluZHJhXCIsXG4gICAgXCJJbmRyYVwiLFxuICAgIFwiSmFnYWRpc2hcIixcbiAgICBcIkphZ2FkaXNoYVwiLFxuICAgIFwiSmFnYXRoaVwiLFxuICAgIFwiSmFnZGVlcFwiLFxuICAgIFwiSmFnZGlzaFwiLFxuICAgIFwiSmFnbWVldFwiLFxuICAgIFwiSmFobnVcIixcbiAgICBcIkphaVwiLFxuICAgIFwiSmF2YXNcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSml0ZW5kcmFcIixcbiAgICBcIkppdGVuZGVyXCIsXG4gICAgXCJKeW90aXNcIixcbiAgICBcIkthaWxhc2hcIixcbiAgICBcIkthbWFcIixcbiAgICBcIkthbWFsZXNoXCIsXG4gICAgXCJLYW1sZXNoXCIsXG4gICAgXCJLYW5ha1wiLFxuICAgIFwiS2FuYWthXCIsXG4gICAgXCJLYW5uYW5cIixcbiAgICBcIkthbm5lblwiLFxuICAgIFwiS2FyYW5cIixcbiAgICBcIkthcnRoaWtcIixcbiAgICBcIkthcnRpa1wiLFxuICAgIFwiS2FydW5hbmlkaGlcIixcbiAgICBcIkthc2h5YXBcIixcbiAgICBcIktpcmFuXCIsXG4gICAgXCJLaXJ0aVwiLFxuICAgIFwiS2VlcnRpXCIsXG4gICAgXCJLcmlzaG5hXCIsXG4gICAgXCJLcmlzaG5hZGFzXCIsXG4gICAgXCJLcmlzaG5hZGFzYVwiLFxuICAgIFwiS3VtYXJcIixcbiAgICBcIkxhaVwiLFxuICAgIFwiTGFrc2htYW5cIixcbiAgICBcIkxheG1hblwiLFxuICAgIFwiTGFrc2htaWRoYXJcIixcbiAgICBcIkxha3NobWluYXRoXCIsXG4gICAgXCJMYWxcIixcbiAgICBcIkxhYWxcIixcbiAgICBcIk1haGVuZHJhXCIsXG4gICAgXCJNb2hpbmRlclwiLFxuICAgIFwiTWFoZXNoXCIsXG4gICAgXCJNYWhlc3dhclwiLFxuICAgIFwiTWFuaVwiLFxuICAgIFwiTWFuaWtcIixcbiAgICBcIk1hbmlreWFcIixcbiAgICBcIk1hbm9qXCIsXG4gICAgXCJNYXJ1dFwiLFxuICAgIFwiTWF5b29yXCIsXG4gICAgXCJNZWdobmFkXCIsXG4gICAgXCJNZWdobmF0aFwiLFxuICAgIFwiTW9oYW5cIixcbiAgICBcIk11a2VzaFwiLFxuICAgIFwiTXVrdWxcIixcbiAgICBcIk5hZ2FiaHVzaGFuYW1cIixcbiAgICBcIk5hbmRhXCIsXG4gICAgXCJOYXJheWFuXCIsXG4gICAgXCJOYXJlbmRyYVwiLFxuICAgIFwiTmFyaW5kZXJcIixcbiAgICBcIk5hdmVlblwiLFxuICAgIFwiTmF2aW5cIixcbiAgICBcIk5hd2FsXCIsXG4gICAgXCJOYXZhbFwiLFxuICAgIFwiTmltaXRcIixcbiAgICBcIk5pcmFuamFuXCIsXG4gICAgXCJOaXJiaGF5XCIsXG4gICAgXCJOaXJvXCIsXG4gICAgXCJQYXJhbVwiLFxuICAgIFwiUGFyYW1hcnRoYVwiLFxuICAgIFwiUHJhblwiLFxuICAgIFwiUHJhbmF5XCIsXG4gICAgXCJQcmFzYWRcIixcbiAgICBcIlByYXRoYW1lc2hcIixcbiAgICBcIlByYXlhZ1wiLFxuICAgIFwiUHJlbVwiLFxuICAgIFwiUHVuZWV0XCIsXG4gICAgXCJQdXJ1c2hvdHRhbVwiLFxuICAgIFwiUmFodWxcIixcbiAgICBcIlJhalwiLFxuICAgIFwiUmFqYW5cIixcbiAgICBcIlJhamVuZHJhXCIsXG4gICAgXCJSYWppbmRlclwiLFxuICAgIFwiUmFqaXZcIixcbiAgICBcIlJha2VzaFwiLFxuICAgIFwiUmFtZXNoXCIsXG4gICAgXCJSYW1lc2h3YXJcIixcbiAgICBcIlJhbmppdFwiLFxuICAgIFwiUmFuamVldFwiLFxuICAgIFwiUmF2aVwiLFxuICAgIFwiUml0ZXNoXCIsXG4gICAgXCJSb2hhblwiLFxuICAgIFwiUm9oaXRcIixcbiAgICBcIlJ1ZHJhXCIsXG4gICAgXCJTYWNoaW5cIixcbiAgICBcIlNhbWVlclwiLFxuICAgIFwiU2FtaXJcIixcbiAgICBcIlNhbmpheVwiLFxuICAgIFwiU2Fua2FcIixcbiAgICBcIlNhcnZpblwiLFxuICAgIFwiU2F0aXNoXCIsXG4gICAgXCJTYXR5ZW5cIixcbiAgICBcIlNoYW5rYXJcIixcbiAgICBcIlNoYW50YW51XCIsXG4gICAgXCJTaGFzaGlcIixcbiAgICBcIlNoZXJcIixcbiAgICBcIlNoaXZcIixcbiAgICBcIlNpZGRhcnRoXCIsXG4gICAgXCJTaWRkaHJhblwiLFxuICAgIFwiU29tXCIsXG4gICAgXCJTb211XCIsXG4gICAgXCJTb21uYXRoXCIsXG4gICAgXCJTdWJoYXNoXCIsXG4gICAgXCJTdWJvZGhcIixcbiAgICBcIlN1bWFuXCIsXG4gICAgXCJTdXJlc2hcIixcbiAgICBcIlN1cnlhXCIsXG4gICAgXCJTdXJ5YWthbnRcIixcbiAgICBcIlN1cnlha2FudGFcIixcbiAgICBcIlN1c2hpbFwiLFxuICAgIFwiU3VzaGVlbFwiLFxuICAgIFwiU3dhbWlcIixcbiAgICBcIlN3YXBuaWxcIixcbiAgICBcIlRhcGFuXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUYXJ1blwiLFxuICAgIFwiVGVqXCIsXG4gICAgXCJUZWphc1wiLFxuICAgIFwiVHJpbG9jaGFuXCIsXG4gICAgXCJUcmlsb2NoYW5hXCIsXG4gICAgXCJUcmlsb2tcIixcbiAgICBcIlRyaWxva2VzaFwiLFxuICAgIFwiVHJpbG9raVwiLFxuICAgIFwiVHJpbG9raSBOYXRoXCIsXG4gICAgXCJUcmlsb2thbmF0aFwiLFxuICAgIFwiVHVzaGFyXCIsXG4gICAgXCJVZGFpXCIsXG4gICAgXCJVZGl0XCIsXG4gICAgXCJVamphd2FsXCIsXG4gICAgXCJVamp3YWxcIixcbiAgICBcIlVtYW5nXCIsXG4gICAgXCJVcGVuZHJhXCIsXG4gICAgXCJVdHRhbVwiLFxuICAgIFwiVmFzdWRldlwiLFxuICAgIFwiVmFzdWRldmFcIixcbiAgICBcIlZlZGFuZ1wiLFxuICAgIFwiVmVkYW5nYVwiLFxuICAgIFwiVmlkaHlhXCIsXG4gICAgXCJWaWR1clwiLFxuICAgIFwiVmlkaHVyXCIsXG4gICAgXCJWaWpheVwiLFxuICAgIFwiVmltYWxcIixcbiAgICBcIlZpbmF5XCIsXG4gICAgXCJWaXNobnVcIixcbiAgICBcIkJpc2hudVwiLFxuICAgIFwiVmlzaHdhbWl0cmFcIixcbiAgICBcIlZ5YXNcIixcbiAgICBcIllvZ2VuZHJhXCIsXG4gICAgXCJZb2dpbmRlclwiLFxuICAgIFwiWW9nZXNoXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJib3R0XCIsXG4gICAgXCJBY2hhcmlcIixcbiAgICBcIkFjaGFyeWFcIixcbiAgICBcIkFkaWdhXCIsXG4gICAgXCJBZ2Fyd2FsXCIsXG4gICAgXCJBaGx1d2FsaWFcIixcbiAgICBcIkFodWphXCIsXG4gICAgXCJBcm9yYVwiLFxuICAgIFwiQXNhblwiLFxuICAgIFwiQmFuZG9wYWRoeWF5XCIsXG4gICAgXCJCYW5lcmplZVwiLFxuICAgIFwiQmhhcmFkd2FqXCIsXG4gICAgXCJCaGF0XCIsXG4gICAgXCJCdXR0XCIsXG4gICAgXCJCaGF0dGFjaGFyeWFcIixcbiAgICBcIkJoYXR0YXRoaXJpXCIsXG4gICAgXCJDaGF0dXJ2ZWRpXCIsXG4gICAgXCJDaGF0dG9wYWRoeWF5XCIsXG4gICAgXCJDaG9wcmFcIixcbiAgICBcIkRlc2FpXCIsXG4gICAgXCJEZXNocGFuZGVcIixcbiAgICBcIkRldmFyXCIsXG4gICAgXCJEaGF3YW5cIixcbiAgICBcIkR1YmFzaGlcIixcbiAgICBcIkR1dHRhXCIsXG4gICAgXCJEd2l2ZWRpXCIsXG4gICAgXCJFbWJyYW50aGlyaVwiLFxuICAgIFwiR2FuYWthXCIsXG4gICAgXCJHYW5kaGlcIixcbiAgICBcIkdpbGxcIixcbiAgICBcIkdvd2RhXCIsXG4gICAgXCJHdWhhXCIsXG4gICAgXCJHdW5ldGFcIixcbiAgICBcIkd1cHRhXCIsXG4gICAgXCJJeWVyXCIsXG4gICAgXCJJeWVuZ2FyXCIsXG4gICAgXCJKYWluXCIsXG4gICAgXCJKaGFcIixcbiAgICBcIkpvaGFyXCIsXG4gICAgXCJKb3NoaVwiLFxuICAgIFwiS2Fra2FyXCIsXG4gICAgXCJLYW5peWFyXCIsXG4gICAgXCJLYXBvb3JcIixcbiAgICBcIkthdWxcIixcbiAgICBcIkthdXJcIixcbiAgICBcIktoYW5cIixcbiAgICBcIktoYW5uYVwiLFxuICAgIFwiS2hhdHJpXCIsXG4gICAgXCJLb2NjaGFyXCIsXG4gICAgXCJNYWhhamFuXCIsXG4gICAgXCJNYWxpa1wiLFxuICAgIFwiTWFyYXJcIixcbiAgICBcIk1lbm9uXCIsXG4gICAgXCJNZWhyYVwiLFxuICAgIFwiTWVocm90cmFcIixcbiAgICBcIk1pc2hyYVwiLFxuICAgIFwiTXVraG9wYWRoeWF5XCIsXG4gICAgXCJOYXlhclwiLFxuICAgIFwiTmFpa1wiLFxuICAgIFwiTmFpclwiLFxuICAgIFwiTmFtYmVlc2FuXCIsXG4gICAgXCJOYW1ib290aGlyaVwiLFxuICAgIFwiTmVocnVcIixcbiAgICBcIlBhbmRleVwiLFxuICAgIFwiUGFuaWNrZXJcIixcbiAgICBcIlBhdGVsXCIsXG4gICAgXCJQYXRpbFwiLFxuICAgIFwiUGlsbGFcIixcbiAgICBcIlBpbGxhaVwiLFxuICAgIFwiUG90aHV2YWFsXCIsXG4gICAgXCJQcmFqYXBhdFwiLFxuICAgIFwiUmFuYVwiLFxuICAgIFwiUmVkZHlcIixcbiAgICBcIlNhaW5pXCIsXG4gICAgXCJTZXRoaVwiLFxuICAgIFwiU2hhaFwiLFxuICAgIFwiU2hhcm1hXCIsXG4gICAgXCJTaHVrbGFcIixcbiAgICBcIlNpbmdoXCIsXG4gICAgXCJTaW5oYVwiLFxuICAgIFwiU29tYXlhamlcIixcbiAgICBcIlRhZ29yZVwiLFxuICAgIFwiVGFsd2FyXCIsXG4gICAgXCJUYW5kb25cIixcbiAgICBcIlRyaXZlZGlcIixcbiAgICBcIlZhcnJpZXJcIixcbiAgICBcIlZhcm1hXCIsXG4gICAgXCJWYXJtYW5cIixcbiAgICBcIlZlcm1hXCJcbiAgXVxufTtcbmVuX0lORC5hZGRyZXNzID0ge1xuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIj8jPyAjPyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkFuZHJhIFByYWRlc2hcIixcbiAgICBcIkFydW5hY2hhbCBQcmFkZXNoXCIsXG4gICAgXCJBc3NhbVwiLFxuICAgIFwiQmloYXJcIixcbiAgICBcIkNoaGF0dGlzZ2FyaFwiLFxuICAgIFwiR29hXCIsXG4gICAgXCJHdWphcmF0XCIsXG4gICAgXCJIYXJ5YW5hXCIsXG4gICAgXCJIaW1hY2hhbCBQcmFkZXNoXCIsXG4gICAgXCJKYW1tdSBhbmQgS2FzaG1pclwiLFxuICAgIFwiSmhhcmtoYW5kXCIsXG4gICAgXCJLYXJuYXRha2FcIixcbiAgICBcIktlcmFsYVwiLFxuICAgIFwiTWFkeWEgUHJhZGVzaFwiLFxuICAgIFwiTWFoYXJhc2h0cmFcIixcbiAgICBcIk1hbmlwdXJcIixcbiAgICBcIk1lZ2hhbGF5YVwiLFxuICAgIFwiTWl6b3JhbVwiLFxuICAgIFwiTmFnYWxhbmRcIixcbiAgICBcIk9yaXNzYVwiLFxuICAgIFwiUHVuamFiXCIsXG4gICAgXCJSYWphc3RoYW5cIixcbiAgICBcIlNpa2tpbVwiLFxuICAgIFwiVGFtaWwgTmFkdVwiLFxuICAgIFwiVHJpcHVyYVwiLFxuICAgIFwiVXR0YXJhbmNoYWxcIixcbiAgICBcIlV0dGFyIFByYWRlc2hcIixcbiAgICBcIldlc3QgQmVuZ2FsXCIsXG4gICAgXCJBbmRhbWFuIGFuZCBOaWNvYmFyIElzbGFuZHNcIixcbiAgICBcIkNoYW5kaWdhcmhcIixcbiAgICBcIkRhZGFyIGFuZCBOYWdhciBIYXZlbGlcIixcbiAgICBcIkRhbWFuIGFuZCBEaXVcIixcbiAgICBcIkRlbGhpXCIsXG4gICAgXCJMYWtzaGFkd2VlcFwiLFxuICAgIFwiUG9uZGljaGVycnlcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQVBcIixcbiAgICBcIkFSXCIsXG4gICAgXCJBU1wiLFxuICAgIFwiQlJcIixcbiAgICBcIkNHXCIsXG4gICAgXCJETFwiLFxuICAgIFwiR0FcIixcbiAgICBcIkdKXCIsXG4gICAgXCJIUlwiLFxuICAgIFwiSFBcIixcbiAgICBcIkpLXCIsXG4gICAgXCJKU1wiLFxuICAgIFwiS0FcIixcbiAgICBcIktMXCIsXG4gICAgXCJNUFwiLFxuICAgIFwiTUhcIixcbiAgICBcIk1OXCIsXG4gICAgXCJNTFwiLFxuICAgIFwiTVpcIixcbiAgICBcIk5MXCIsXG4gICAgXCJPUlwiLFxuICAgIFwiUEJcIixcbiAgICBcIlJKXCIsXG4gICAgXCJTS1wiLFxuICAgIFwiVE5cIixcbiAgICBcIlRSXCIsXG4gICAgXCJVS1wiLFxuICAgIFwiVVBcIixcbiAgICBcIldCXCIsXG4gICAgXCJBTlwiLFxuICAgIFwiQ0hcIixcbiAgICBcIkROXCIsXG4gICAgXCJERFwiLFxuICAgIFwiTERcIixcbiAgICBcIlBZXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiSW5kaWFcIixcbiAgICBcIkluZGlhbiBSZXB1YmxpY1wiLFxuICAgIFwiQmhhcmF0XCIsXG4gICAgXCJIaW5kdXN0YW5cIlxuICBdXG59O1xuZW5fSU5ELmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jby5pblwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiaW5cIixcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiLFxuICAgIFwiY28uaW5cIlxuICBdXG59O1xuZW5fSU5ELmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlB2dCBMdGRcIixcbiAgICBcIkxpbWl0ZWRcIixcbiAgICBcIkx0ZFwiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkNvcnBcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJCcm90aGVyc1wiXG4gIF1cbn07XG5lbl9JTkQucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKzkxIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIrOTEjIyMjIyMjIyMjXCIsXG4gICAgXCIrOTEtIyMjLSMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGVuX1VTID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fVVM7XG5lbl9VUy50aXRsZSA9IFwiVW5pdGVkIFN0YXRlcyAoRW5nbGlzaClcIjtcbmVuX1VTLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJ1c1wiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5lbl9VUy5hZGRyZXNzID0ge1xuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJVbml0ZWQgU3RhdGVzXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2FcIixcbiAgICBcIlVTQVwiXG4gIF0sXG4gIFwicG9zdGNvZGVfYnlfc3RhdGVcIjoge1xuICAgIFwiQUxcIjogXCIzNTAjI1wiLFxuICAgIFwiQUtcIjogXCI5OTUjI1wiLFxuICAgIFwiQVNcIjogXCI5NjcjI1wiLFxuICAgIFwiQVpcIjogXCI4NTAjI1wiLFxuICAgIFwiQVJcIjogXCI3MTcjI1wiLFxuICAgIFwiQ0FcIjogXCI5MDAjI1wiLFxuICAgIFwiQ09cIjogXCI4MDAjI1wiLFxuICAgIFwiQ1RcIjogXCIwNjEjI1wiLFxuICAgIFwiRENcIjogXCIyMDQjI1wiLFxuICAgIFwiREVcIjogXCIxOTgjI1wiLFxuICAgIFwiRkxcIjogXCIzMjIjI1wiLFxuICAgIFwiR0FcIjogXCIzMDEjI1wiLFxuICAgIFwiSElcIjogXCI5NjcjI1wiLFxuICAgIFwiSURcIjogXCI4MzIjI1wiLFxuICAgIFwiSUxcIjogXCI2MDAjI1wiLFxuICAgIFwiSU5cIjogXCI0NjMjI1wiLFxuICAgIFwiSUFcIjogXCI1MTAjI1wiLFxuICAgIFwiS1NcIjogXCI2NjYjI1wiLFxuICAgIFwiS1lcIjogXCI0MDQjI1wiLFxuICAgIFwiTEFcIjogXCI3MDEjI1wiLFxuICAgIFwiTUVcIjogXCIwNDIjI1wiLFxuICAgIFwiTURcIjogXCIyMTAjI1wiLFxuICAgIFwiTUFcIjogXCIwMjYjI1wiLFxuICAgIFwiTUlcIjogXCI0ODAjI1wiLFxuICAgIFwiTU5cIjogXCI1NTUjI1wiLFxuICAgIFwiTVNcIjogXCIzODcjI1wiLFxuICAgIFwiTU9cIjogXCI2NTAjI1wiLFxuICAgIFwiTVRcIjogXCI1OTAjI1wiLFxuICAgIFwiTkVcIjogXCI2ODgjI1wiLFxuICAgIFwiTlZcIjogXCI4OTgjI1wiLFxuICAgIFwiTkhcIjogXCIwMzYjI1wiLFxuICAgIFwiTkpcIjogXCIwNzYjI1wiLFxuICAgIFwiTk1cIjogXCI4ODAjI1wiLFxuICAgIFwiTllcIjogXCIxMjIjI1wiLFxuICAgIFwiTkNcIjogXCIyODgjI1wiLFxuICAgIFwiTkRcIjogXCI1ODYjI1wiLFxuICAgIFwiT0hcIjogXCI0NDQjI1wiLFxuICAgIFwiT0tcIjogXCI3MzAjI1wiLFxuICAgIFwiT1JcIjogXCI5NzkjI1wiLFxuICAgIFwiUEFcIjogXCIxODYjI1wiLFxuICAgIFwiUklcIjogXCIwMjkjI1wiLFxuICAgIFwiU0NcIjogXCIyOTkjI1wiLFxuICAgIFwiU0RcIjogXCI1NzcjI1wiLFxuICAgIFwiVE5cIjogXCIzODMjI1wiLFxuICAgIFwiVFhcIjogXCI3OTgjI1wiLFxuICAgIFwiVVRcIjogXCI4NDcjI1wiLFxuICAgIFwiVlRcIjogXCIwNTAjI1wiLFxuICAgIFwiVkFcIjogXCIyMjIjI1wiLFxuICAgIFwiV0FcIjogXCI5OTAjI1wiLFxuICAgIFwiV1ZcIjogXCIyNDcjI1wiLFxuICAgIFwiV0lcIjogXCI1NDkjI1wiLFxuICAgIFwiV1lcIjogXCI4MzEjI1wiXG4gIH1cbn07XG5lbl9VUy5waG9uZV9udW1iZXIgPSB7XG4gIFwiYXJlYV9jb2RlXCI6IFtcbiAgICBcIjIwMVwiLFxuICAgIFwiMjAyXCIsXG4gICAgXCIyMDNcIixcbiAgICBcIjIwNVwiLFxuICAgIFwiMjA2XCIsXG4gICAgXCIyMDdcIixcbiAgICBcIjIwOFwiLFxuICAgIFwiMjA5XCIsXG4gICAgXCIyMTBcIixcbiAgICBcIjIxMlwiLFxuICAgIFwiMjEzXCIsXG4gICAgXCIyMTRcIixcbiAgICBcIjIxNVwiLFxuICAgIFwiMjE2XCIsXG4gICAgXCIyMTdcIixcbiAgICBcIjIxOFwiLFxuICAgIFwiMjE5XCIsXG4gICAgXCIyMjRcIixcbiAgICBcIjIyNVwiLFxuICAgIFwiMjI3XCIsXG4gICAgXCIyMjhcIixcbiAgICBcIjIyOVwiLFxuICAgIFwiMjMxXCIsXG4gICAgXCIyMzRcIixcbiAgICBcIjIzOVwiLFxuICAgIFwiMjQwXCIsXG4gICAgXCIyNDhcIixcbiAgICBcIjI1MVwiLFxuICAgIFwiMjUyXCIsXG4gICAgXCIyNTNcIixcbiAgICBcIjI1NFwiLFxuICAgIFwiMjU2XCIsXG4gICAgXCIyNjBcIixcbiAgICBcIjI2MlwiLFxuICAgIFwiMjY3XCIsXG4gICAgXCIyNjlcIixcbiAgICBcIjI3MFwiLFxuICAgIFwiMjc2XCIsXG4gICAgXCIyODFcIixcbiAgICBcIjI4M1wiLFxuICAgIFwiMzAxXCIsXG4gICAgXCIzMDJcIixcbiAgICBcIjMwM1wiLFxuICAgIFwiMzA0XCIsXG4gICAgXCIzMDVcIixcbiAgICBcIjMwN1wiLFxuICAgIFwiMzA4XCIsXG4gICAgXCIzMDlcIixcbiAgICBcIjMxMFwiLFxuICAgIFwiMzEyXCIsXG4gICAgXCIzMTNcIixcbiAgICBcIjMxNFwiLFxuICAgIFwiMzE1XCIsXG4gICAgXCIzMTZcIixcbiAgICBcIjMxN1wiLFxuICAgIFwiMzE4XCIsXG4gICAgXCIzMTlcIixcbiAgICBcIjMyMFwiLFxuICAgIFwiMzIxXCIsXG4gICAgXCIzMjNcIixcbiAgICBcIjMzMFwiLFxuICAgIFwiMzMxXCIsXG4gICAgXCIzMzRcIixcbiAgICBcIjMzNlwiLFxuICAgIFwiMzM3XCIsXG4gICAgXCIzMzlcIixcbiAgICBcIjM0N1wiLFxuICAgIFwiMzUxXCIsXG4gICAgXCIzNTJcIixcbiAgICBcIjM2MFwiLFxuICAgIFwiMzYxXCIsXG4gICAgXCIzODZcIixcbiAgICBcIjQwMVwiLFxuICAgIFwiNDAyXCIsXG4gICAgXCI0MDRcIixcbiAgICBcIjQwNVwiLFxuICAgIFwiNDA2XCIsXG4gICAgXCI0MDdcIixcbiAgICBcIjQwOFwiLFxuICAgIFwiNDA5XCIsXG4gICAgXCI0MTBcIixcbiAgICBcIjQxMlwiLFxuICAgIFwiNDEzXCIsXG4gICAgXCI0MTRcIixcbiAgICBcIjQxNVwiLFxuICAgIFwiNDE3XCIsXG4gICAgXCI0MTlcIixcbiAgICBcIjQyM1wiLFxuICAgIFwiNDI0XCIsXG4gICAgXCI0MjVcIixcbiAgICBcIjQzNFwiLFxuICAgIFwiNDM1XCIsXG4gICAgXCI0NDBcIixcbiAgICBcIjQ0M1wiLFxuICAgIFwiNDQ1XCIsXG4gICAgXCI0NjRcIixcbiAgICBcIjQ2OVwiLFxuICAgIFwiNDcwXCIsXG4gICAgXCI0NzVcIixcbiAgICBcIjQ3OFwiLFxuICAgIFwiNDc5XCIsXG4gICAgXCI0ODBcIixcbiAgICBcIjQ4NFwiLFxuICAgIFwiNTAxXCIsXG4gICAgXCI1MDJcIixcbiAgICBcIjUwM1wiLFxuICAgIFwiNTA0XCIsXG4gICAgXCI1MDVcIixcbiAgICBcIjUwN1wiLFxuICAgIFwiNTA4XCIsXG4gICAgXCI1MDlcIixcbiAgICBcIjUxMFwiLFxuICAgIFwiNTEyXCIsXG4gICAgXCI1MTNcIixcbiAgICBcIjUxNVwiLFxuICAgIFwiNTE2XCIsXG4gICAgXCI1MTdcIixcbiAgICBcIjUxOFwiLFxuICAgIFwiNTIwXCIsXG4gICAgXCI1MzBcIixcbiAgICBcIjU0MFwiLFxuICAgIFwiNTQxXCIsXG4gICAgXCI1NTFcIixcbiAgICBcIjU1N1wiLFxuICAgIFwiNTU5XCIsXG4gICAgXCI1NjFcIixcbiAgICBcIjU2MlwiLFxuICAgIFwiNTYzXCIsXG4gICAgXCI1NjRcIixcbiAgICBcIjU2N1wiLFxuICAgIFwiNTcwXCIsXG4gICAgXCI1NzFcIixcbiAgICBcIjU3M1wiLFxuICAgIFwiNTc0XCIsXG4gICAgXCI1ODBcIixcbiAgICBcIjU4NVwiLFxuICAgIFwiNTg2XCIsXG4gICAgXCI2MDFcIixcbiAgICBcIjYwMlwiLFxuICAgIFwiNjAzXCIsXG4gICAgXCI2MDVcIixcbiAgICBcIjYwNlwiLFxuICAgIFwiNjA3XCIsXG4gICAgXCI2MDhcIixcbiAgICBcIjYwOVwiLFxuICAgIFwiNjEwXCIsXG4gICAgXCI2MTJcIixcbiAgICBcIjYxNFwiLFxuICAgIFwiNjE1XCIsXG4gICAgXCI2MTZcIixcbiAgICBcIjYxN1wiLFxuICAgIFwiNjE4XCIsXG4gICAgXCI2MTlcIixcbiAgICBcIjYyMFwiLFxuICAgIFwiNjIzXCIsXG4gICAgXCI2MjZcIixcbiAgICBcIjYzMFwiLFxuICAgIFwiNjMxXCIsXG4gICAgXCI2MzZcIixcbiAgICBcIjY0MVwiLFxuICAgIFwiNjQ2XCIsXG4gICAgXCI2NTBcIixcbiAgICBcIjY1MVwiLFxuICAgIFwiNjYwXCIsXG4gICAgXCI2NjFcIixcbiAgICBcIjY2MlwiLFxuICAgIFwiNjY3XCIsXG4gICAgXCI2NzhcIixcbiAgICBcIjY4MlwiLFxuICAgIFwiNzAxXCIsXG4gICAgXCI3MDJcIixcbiAgICBcIjcwM1wiLFxuICAgIFwiNzA0XCIsXG4gICAgXCI3MDZcIixcbiAgICBcIjcwN1wiLFxuICAgIFwiNzA4XCIsXG4gICAgXCI3MTJcIixcbiAgICBcIjcxM1wiLFxuICAgIFwiNzE0XCIsXG4gICAgXCI3MTVcIixcbiAgICBcIjcxNlwiLFxuICAgIFwiNzE3XCIsXG4gICAgXCI3MThcIixcbiAgICBcIjcxOVwiLFxuICAgIFwiNzIwXCIsXG4gICAgXCI3MjRcIixcbiAgICBcIjcyN1wiLFxuICAgIFwiNzMxXCIsXG4gICAgXCI3MzJcIixcbiAgICBcIjczNFwiLFxuICAgIFwiNzM3XCIsXG4gICAgXCI3NDBcIixcbiAgICBcIjc1NFwiLFxuICAgIFwiNzU3XCIsXG4gICAgXCI3NjBcIixcbiAgICBcIjc2M1wiLFxuICAgIFwiNzY1XCIsXG4gICAgXCI3NzBcIixcbiAgICBcIjc3MlwiLFxuICAgIFwiNzczXCIsXG4gICAgXCI3NzRcIixcbiAgICBcIjc3NVwiLFxuICAgIFwiNzgxXCIsXG4gICAgXCI3ODVcIixcbiAgICBcIjc4NlwiLFxuICAgIFwiODAxXCIsXG4gICAgXCI4MDJcIixcbiAgICBcIjgwM1wiLFxuICAgIFwiODA0XCIsXG4gICAgXCI4MDVcIixcbiAgICBcIjgwNlwiLFxuICAgIFwiODA4XCIsXG4gICAgXCI4MTBcIixcbiAgICBcIjgxMlwiLFxuICAgIFwiODEzXCIsXG4gICAgXCI4MTRcIixcbiAgICBcIjgxNVwiLFxuICAgIFwiODE2XCIsXG4gICAgXCI4MTdcIixcbiAgICBcIjgxOFwiLFxuICAgIFwiODI4XCIsXG4gICAgXCI4MzBcIixcbiAgICBcIjgzMVwiLFxuICAgIFwiODMyXCIsXG4gICAgXCI4MzVcIixcbiAgICBcIjg0M1wiLFxuICAgIFwiODQ1XCIsXG4gICAgXCI4NDdcIixcbiAgICBcIjg0OFwiLFxuICAgIFwiODUwXCIsXG4gICAgXCI4NTZcIixcbiAgICBcIjg1N1wiLFxuICAgIFwiODU4XCIsXG4gICAgXCI4NTlcIixcbiAgICBcIjg2MFwiLFxuICAgIFwiODYyXCIsXG4gICAgXCI4NjNcIixcbiAgICBcIjg2NFwiLFxuICAgIFwiODY1XCIsXG4gICAgXCI4NzBcIixcbiAgICBcIjg3MlwiLFxuICAgIFwiODc4XCIsXG4gICAgXCI5MDFcIixcbiAgICBcIjkwM1wiLFxuICAgIFwiOTA0XCIsXG4gICAgXCI5MDZcIixcbiAgICBcIjkwN1wiLFxuICAgIFwiOTA4XCIsXG4gICAgXCI5MDlcIixcbiAgICBcIjkxMFwiLFxuICAgIFwiOTEyXCIsXG4gICAgXCI5MTNcIixcbiAgICBcIjkxNFwiLFxuICAgIFwiOTE1XCIsXG4gICAgXCI5MTZcIixcbiAgICBcIjkxN1wiLFxuICAgIFwiOTE4XCIsXG4gICAgXCI5MTlcIixcbiAgICBcIjkyMFwiLFxuICAgIFwiOTI1XCIsXG4gICAgXCI5MjhcIixcbiAgICBcIjkzMVwiLFxuICAgIFwiOTM2XCIsXG4gICAgXCI5MzdcIixcbiAgICBcIjk0MFwiLFxuICAgIFwiOTQxXCIsXG4gICAgXCI5NDdcIixcbiAgICBcIjk0OVwiLFxuICAgIFwiOTUyXCIsXG4gICAgXCI5NTRcIixcbiAgICBcIjk1NlwiLFxuICAgIFwiOTU5XCIsXG4gICAgXCI5NzBcIixcbiAgICBcIjk3MVwiLFxuICAgIFwiOTcyXCIsXG4gICAgXCI5NzNcIixcbiAgICBcIjk3NVwiLFxuICAgIFwiOTc4XCIsXG4gICAgXCI5NzlcIixcbiAgICBcIjk4MFwiLFxuICAgIFwiOTg0XCIsXG4gICAgXCI5ODVcIixcbiAgICBcIjk4OVwiXG4gIF0sXG4gIFwiZXhjaGFuZ2VfY29kZVwiOiBbXG4gICAgXCIyMDFcIixcbiAgICBcIjIwMlwiLFxuICAgIFwiMjAzXCIsXG4gICAgXCIyMDVcIixcbiAgICBcIjIwNlwiLFxuICAgIFwiMjA3XCIsXG4gICAgXCIyMDhcIixcbiAgICBcIjIwOVwiLFxuICAgIFwiMjEwXCIsXG4gICAgXCIyMTJcIixcbiAgICBcIjIxM1wiLFxuICAgIFwiMjE0XCIsXG4gICAgXCIyMTVcIixcbiAgICBcIjIxNlwiLFxuICAgIFwiMjE3XCIsXG4gICAgXCIyMThcIixcbiAgICBcIjIxOVwiLFxuICAgIFwiMjI0XCIsXG4gICAgXCIyMjVcIixcbiAgICBcIjIyN1wiLFxuICAgIFwiMjI4XCIsXG4gICAgXCIyMjlcIixcbiAgICBcIjIzMVwiLFxuICAgIFwiMjM0XCIsXG4gICAgXCIyMzlcIixcbiAgICBcIjI0MFwiLFxuICAgIFwiMjQ4XCIsXG4gICAgXCIyNTFcIixcbiAgICBcIjI1MlwiLFxuICAgIFwiMjUzXCIsXG4gICAgXCIyNTRcIixcbiAgICBcIjI1NlwiLFxuICAgIFwiMjYwXCIsXG4gICAgXCIyNjJcIixcbiAgICBcIjI2N1wiLFxuICAgIFwiMjY5XCIsXG4gICAgXCIyNzBcIixcbiAgICBcIjI3NlwiLFxuICAgIFwiMjgxXCIsXG4gICAgXCIyODNcIixcbiAgICBcIjMwMVwiLFxuICAgIFwiMzAyXCIsXG4gICAgXCIzMDNcIixcbiAgICBcIjMwNFwiLFxuICAgIFwiMzA1XCIsXG4gICAgXCIzMDdcIixcbiAgICBcIjMwOFwiLFxuICAgIFwiMzA5XCIsXG4gICAgXCIzMTBcIixcbiAgICBcIjMxMlwiLFxuICAgIFwiMzEzXCIsXG4gICAgXCIzMTRcIixcbiAgICBcIjMxNVwiLFxuICAgIFwiMzE2XCIsXG4gICAgXCIzMTdcIixcbiAgICBcIjMxOFwiLFxuICAgIFwiMzE5XCIsXG4gICAgXCIzMjBcIixcbiAgICBcIjMyMVwiLFxuICAgIFwiMzIzXCIsXG4gICAgXCIzMzBcIixcbiAgICBcIjMzMVwiLFxuICAgIFwiMzM0XCIsXG4gICAgXCIzMzZcIixcbiAgICBcIjMzN1wiLFxuICAgIFwiMzM5XCIsXG4gICAgXCIzNDdcIixcbiAgICBcIjM1MVwiLFxuICAgIFwiMzUyXCIsXG4gICAgXCIzNjBcIixcbiAgICBcIjM2MVwiLFxuICAgIFwiMzg2XCIsXG4gICAgXCI0MDFcIixcbiAgICBcIjQwMlwiLFxuICAgIFwiNDA0XCIsXG4gICAgXCI0MDVcIixcbiAgICBcIjQwNlwiLFxuICAgIFwiNDA3XCIsXG4gICAgXCI0MDhcIixcbiAgICBcIjQwOVwiLFxuICAgIFwiNDEwXCIsXG4gICAgXCI0MTJcIixcbiAgICBcIjQxM1wiLFxuICAgIFwiNDE0XCIsXG4gICAgXCI0MTVcIixcbiAgICBcIjQxN1wiLFxuICAgIFwiNDE5XCIsXG4gICAgXCI0MjNcIixcbiAgICBcIjQyNFwiLFxuICAgIFwiNDI1XCIsXG4gICAgXCI0MzRcIixcbiAgICBcIjQzNVwiLFxuICAgIFwiNDQwXCIsXG4gICAgXCI0NDNcIixcbiAgICBcIjQ0NVwiLFxuICAgIFwiNDY0XCIsXG4gICAgXCI0NjlcIixcbiAgICBcIjQ3MFwiLFxuICAgIFwiNDc1XCIsXG4gICAgXCI0NzhcIixcbiAgICBcIjQ3OVwiLFxuICAgIFwiNDgwXCIsXG4gICAgXCI0ODRcIixcbiAgICBcIjUwMVwiLFxuICAgIFwiNTAyXCIsXG4gICAgXCI1MDNcIixcbiAgICBcIjUwNFwiLFxuICAgIFwiNTA1XCIsXG4gICAgXCI1MDdcIixcbiAgICBcIjUwOFwiLFxuICAgIFwiNTA5XCIsXG4gICAgXCI1MTBcIixcbiAgICBcIjUxMlwiLFxuICAgIFwiNTEzXCIsXG4gICAgXCI1MTVcIixcbiAgICBcIjUxNlwiLFxuICAgIFwiNTE3XCIsXG4gICAgXCI1MThcIixcbiAgICBcIjUyMFwiLFxuICAgIFwiNTMwXCIsXG4gICAgXCI1NDBcIixcbiAgICBcIjU0MVwiLFxuICAgIFwiNTUxXCIsXG4gICAgXCI1NTdcIixcbiAgICBcIjU1OVwiLFxuICAgIFwiNTYxXCIsXG4gICAgXCI1NjJcIixcbiAgICBcIjU2M1wiLFxuICAgIFwiNTY0XCIsXG4gICAgXCI1NjdcIixcbiAgICBcIjU3MFwiLFxuICAgIFwiNTcxXCIsXG4gICAgXCI1NzNcIixcbiAgICBcIjU3NFwiLFxuICAgIFwiNTgwXCIsXG4gICAgXCI1ODVcIixcbiAgICBcIjU4NlwiLFxuICAgIFwiNjAxXCIsXG4gICAgXCI2MDJcIixcbiAgICBcIjYwM1wiLFxuICAgIFwiNjA1XCIsXG4gICAgXCI2MDZcIixcbiAgICBcIjYwN1wiLFxuICAgIFwiNjA4XCIsXG4gICAgXCI2MDlcIixcbiAgICBcIjYxMFwiLFxuICAgIFwiNjEyXCIsXG4gICAgXCI2MTRcIixcbiAgICBcIjYxNVwiLFxuICAgIFwiNjE2XCIsXG4gICAgXCI2MTdcIixcbiAgICBcIjYxOFwiLFxuICAgIFwiNjE5XCIsXG4gICAgXCI2MjBcIixcbiAgICBcIjYyM1wiLFxuICAgIFwiNjI2XCIsXG4gICAgXCI2MzBcIixcbiAgICBcIjYzMVwiLFxuICAgIFwiNjM2XCIsXG4gICAgXCI2NDFcIixcbiAgICBcIjY0NlwiLFxuICAgIFwiNjUwXCIsXG4gICAgXCI2NTFcIixcbiAgICBcIjY2MFwiLFxuICAgIFwiNjYxXCIsXG4gICAgXCI2NjJcIixcbiAgICBcIjY2N1wiLFxuICAgIFwiNjc4XCIsXG4gICAgXCI2ODJcIixcbiAgICBcIjcwMVwiLFxuICAgIFwiNzAyXCIsXG4gICAgXCI3MDNcIixcbiAgICBcIjcwNFwiLFxuICAgIFwiNzA2XCIsXG4gICAgXCI3MDdcIixcbiAgICBcIjcwOFwiLFxuICAgIFwiNzEyXCIsXG4gICAgXCI3MTNcIixcbiAgICBcIjcxNFwiLFxuICAgIFwiNzE1XCIsXG4gICAgXCI3MTZcIixcbiAgICBcIjcxN1wiLFxuICAgIFwiNzE4XCIsXG4gICAgXCI3MTlcIixcbiAgICBcIjcyMFwiLFxuICAgIFwiNzI0XCIsXG4gICAgXCI3MjdcIixcbiAgICBcIjczMVwiLFxuICAgIFwiNzMyXCIsXG4gICAgXCI3MzRcIixcbiAgICBcIjczN1wiLFxuICAgIFwiNzQwXCIsXG4gICAgXCI3NTRcIixcbiAgICBcIjc1N1wiLFxuICAgIFwiNzYwXCIsXG4gICAgXCI3NjNcIixcbiAgICBcIjc2NVwiLFxuICAgIFwiNzcwXCIsXG4gICAgXCI3NzJcIixcbiAgICBcIjc3M1wiLFxuICAgIFwiNzc0XCIsXG4gICAgXCI3NzVcIixcbiAgICBcIjc4MVwiLFxuICAgIFwiNzg1XCIsXG4gICAgXCI3ODZcIixcbiAgICBcIjgwMVwiLFxuICAgIFwiODAyXCIsXG4gICAgXCI4MDNcIixcbiAgICBcIjgwNFwiLFxuICAgIFwiODA1XCIsXG4gICAgXCI4MDZcIixcbiAgICBcIjgwOFwiLFxuICAgIFwiODEwXCIsXG4gICAgXCI4MTJcIixcbiAgICBcIjgxM1wiLFxuICAgIFwiODE0XCIsXG4gICAgXCI4MTVcIixcbiAgICBcIjgxNlwiLFxuICAgIFwiODE3XCIsXG4gICAgXCI4MThcIixcbiAgICBcIjgyOFwiLFxuICAgIFwiODMwXCIsXG4gICAgXCI4MzFcIixcbiAgICBcIjgzMlwiLFxuICAgIFwiODM1XCIsXG4gICAgXCI4NDNcIixcbiAgICBcIjg0NVwiLFxuICAgIFwiODQ3XCIsXG4gICAgXCI4NDhcIixcbiAgICBcIjg1MFwiLFxuICAgIFwiODU2XCIsXG4gICAgXCI4NTdcIixcbiAgICBcIjg1OFwiLFxuICAgIFwiODU5XCIsXG4gICAgXCI4NjBcIixcbiAgICBcIjg2MlwiLFxuICAgIFwiODYzXCIsXG4gICAgXCI4NjRcIixcbiAgICBcIjg2NVwiLFxuICAgIFwiODcwXCIsXG4gICAgXCI4NzJcIixcbiAgICBcIjg3OFwiLFxuICAgIFwiOTAxXCIsXG4gICAgXCI5MDNcIixcbiAgICBcIjkwNFwiLFxuICAgIFwiOTA2XCIsXG4gICAgXCI5MDdcIixcbiAgICBcIjkwOFwiLFxuICAgIFwiOTA5XCIsXG4gICAgXCI5MTBcIixcbiAgICBcIjkxMlwiLFxuICAgIFwiOTEzXCIsXG4gICAgXCI5MTRcIixcbiAgICBcIjkxNVwiLFxuICAgIFwiOTE2XCIsXG4gICAgXCI5MTdcIixcbiAgICBcIjkxOFwiLFxuICAgIFwiOTE5XCIsXG4gICAgXCI5MjBcIixcbiAgICBcIjkyNVwiLFxuICAgIFwiOTI4XCIsXG4gICAgXCI5MzFcIixcbiAgICBcIjkzNlwiLFxuICAgIFwiOTM3XCIsXG4gICAgXCI5NDBcIixcbiAgICBcIjk0MVwiLFxuICAgIFwiOTQ3XCIsXG4gICAgXCI5NDlcIixcbiAgICBcIjk1MlwiLFxuICAgIFwiOTU0XCIsXG4gICAgXCI5NTZcIixcbiAgICBcIjk1OVwiLFxuICAgIFwiOTcwXCIsXG4gICAgXCI5NzFcIixcbiAgICBcIjk3MlwiLFxuICAgIFwiOTczXCIsXG4gICAgXCI5NzVcIixcbiAgICBcIjk3OFwiLFxuICAgIFwiOTc5XCIsXG4gICAgXCI5ODBcIixcbiAgICBcIjk4NFwiLFxuICAgIFwiOTg1XCIsXG4gICAgXCI5ODlcIlxuICBdXG59O1xuIiwidmFyIGVuX2F1X29ja2VyID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fYXVfb2NrZXI7XG5lbl9hdV9vY2tlci50aXRsZSA9IFwiQXVzdHJhbGlhIE9ja2VyIChFbmdsaXNoKVwiO1xuZW5fYXVfb2NrZXIubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQXZhXCIsXG4gICAgXCJDaGxvZVwiLFxuICAgIFwiRW1pbHlcIixcbiAgICBcIk9saXZpYVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJMaWx5XCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIkVsbGFcIixcbiAgICBcIklzYWJlbGxhXCIsXG4gICAgXCJSdWJ5XCIsXG4gICAgXCJTaWVubmFcIixcbiAgICBcIk1pYSszXCIsXG4gICAgXCJHcmFjZVwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiSXZ5XCIsXG4gICAgXCJMYXlsYVwiLFxuICAgIFwiQWJpZ2FpbFwiLFxuICAgIFwiSXNsYVwiLFxuICAgIFwiSGFubmFoXCIsXG4gICAgXCJaYXJhXCIsXG4gICAgXCJMdWN5XCIsXG4gICAgXCJFdmllXCIsXG4gICAgXCJBbm5hYmVsbGVcIixcbiAgICBcIk1hZGlzb25cIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJHZW9yZ2lhXCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJNYWRlbGluZVwiLFxuICAgIFwiQXVkcmV5XCIsXG4gICAgXCJTY2FybGV0dFwiLFxuICAgIFwiSXNhYmVsbGVcIixcbiAgICBcIkNoZWxzZWFcIixcbiAgICBcIk1pbGFcIixcbiAgICBcIkhvbGx5XCIsXG4gICAgXCJJbmRpYW5hXCIsXG4gICAgXCJQb3BweVwiLFxuICAgIFwiSGFycGVyXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiQWx5c3NhXCIsXG4gICAgXCJKYXNtaW5lXCIsXG4gICAgXCJJbW9nZW5cIixcbiAgICBcIkhheWxleVwiLFxuICAgIFwiUGhlb2JlXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiTWFja2VuemllXCIsXG4gICAgXCJBeWxhXCIsXG4gICAgXCJPbGl2ZXJcIixcbiAgICBcIkphY2tcIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJDaGFybGllXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiQ29vcGVyXCIsXG4gICAgXCJMYWNobGFuXCIsXG4gICAgXCJOb2FoXCIsXG4gICAgXCJMaWFtXCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIk1heFwiLFxuICAgIFwiSXNhYWNcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiWGF2aWVyXCIsXG4gICAgXCJPc2NhclwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIkFpZGVuXCIsXG4gICAgXCJNYXNvblwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJKYW1lc1wiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiUmlsZXlcIixcbiAgICBcIkhhcnJpc29uXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJIZW5yeVwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJaYWNoXCIsXG4gICAgXCJIYXJyeVwiLFxuICAgIFwiSHVudGVyXCIsXG4gICAgXCJGbHlublwiLFxuICAgIFwiQXJjaGllXCIsXG4gICAgXCJUeWxlclwiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJIYXlkZW5cIixcbiAgICBcIkpheWRlblwiLFxuICAgIFwiQmxha2VcIixcbiAgICBcIkFyY2hlclwiLFxuICAgIFwiQXNodG9uXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIlphY2hlcnlcIixcbiAgICBcIkxpbmNvbG5cIixcbiAgICBcIk1pdGNoZWxsXCIsXG4gICAgXCJMdWNhXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIkthaVwiLFxuICAgIFwiQ29ubm9yXCIsXG4gICAgXCJUb21cIixcbiAgICBcIk5pZ2VsXCIsXG4gICAgXCJNYXR0XCIsXG4gICAgXCJTZWFuXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiU21pdGhcIixcbiAgICBcIkpvbmVzXCIsXG4gICAgXCJXaWxsaWFtc1wiLFxuICAgIFwiQnJvd25cIixcbiAgICBcIldpbHNvblwiLFxuICAgIFwiVGF5bG9yXCIsXG4gICAgXCJNb3J0b25cIixcbiAgICBcIldoaXRlXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIkFuZGVyc29uXCIsXG4gICAgXCJUaG9tcHNvblwiLFxuICAgIFwiTmd1eWVuXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIldhbGtlclwiLFxuICAgIFwiSGFycmlzXCIsXG4gICAgXCJMZWVcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJvYmluc29uXCIsXG4gICAgXCJLZWxseVwiLFxuICAgIFwiS2luZ1wiLFxuICAgIFwiUmF1c2NoXCIsXG4gICAgXCJSaWRnZVwiLFxuICAgIFwiQ29ubm9sbHlcIixcbiAgICBcIkxlUXVlc25lXCJcbiAgXSxcbiAgXCJvY2tlcl9maXJzdF9uYW1lXCI6IFtcbiAgICBcIkJhenphXCIsXG4gICAgXCJCbHVleVwiLFxuICAgIFwiRGF2b1wiLFxuICAgIFwiSm9obm9cIixcbiAgICBcIlNoYW5vXCIsXG4gICAgXCJTaGF6emFcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHR5IEx0ZFwiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkNvcnBcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJCcm90aGVyc1wiLFxuICAgIFwiUGFydG5lcnNcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb20uYXVcIixcbiAgICBcImNvbVwiLFxuICAgIFwibmV0LmF1XCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZy5hdVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX2F1X29ja2VyLmFkZHJlc3MgPSB7XG4gIFwic3RyZWV0X3Jvb3RcIjogW1xuICAgIFwiUmFtc2F5IFN0cmVldFwiLFxuICAgIFwiQm9ubmllIERvb25cIixcbiAgICBcIkNhdmlsbCBBdmVudWVcIixcbiAgICBcIlF1ZWVuIFN0cmVldFwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcm9vdH1cIlxuICBdLFxuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIkJvbmRpXCIsXG4gICAgXCJCdXJsZWlnaCBIZWFkc1wiLFxuICAgIFwiQ2FybHRvblwiLFxuICAgIFwiRml0enJveVwiLFxuICAgIFwiRnJlbWFudGxlXCIsXG4gICAgXCJHbGVuZWxnXCIsXG4gICAgXCJNYW5seVwiLFxuICAgIFwiTm9vc2FcIixcbiAgICBcIlN0b25lcyBDb3JuZXJcIixcbiAgICBcIlN0IEtpbGRhXCIsXG4gICAgXCJTdXJyeSBIaWxsc1wiLFxuICAgIFwiWWFycmEgVmFsbGV5XCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9XCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIk5TV1wiLFxuICAgIFwiUUxEXCIsXG4gICAgXCJOVFwiLFxuICAgIFwiU0FcIixcbiAgICBcIldBXCIsXG4gICAgXCJUQVNcIixcbiAgICBcIkFDVFwiLFxuICAgIFwiVklDXCJcbiAgXSxcbiAgXCJyZWdpb25cIjogW1xuICAgIFwiU291dGggRWFzdCBRdWVlbnNsYW5kXCIsXG4gICAgXCJXaWRlIEJheSBCdXJuZXR0XCIsXG4gICAgXCJNYXJnYXJldCBSaXZlclwiLFxuICAgIFwiUG9ydCBQaXJpZVwiLFxuICAgIFwiR2lwcHNsYW5kXCIsXG4gICAgXCJFbGl6YWJldGhcIixcbiAgICBcIkJhcm9zc2FcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIk5ldyBTb3V0aCBXYWxlc1wiLFxuICAgIFwiUXVlZW5zbGFuZFwiLFxuICAgIFwiTm9ydGhlcm4gVGVycml0b3J5XCIsXG4gICAgXCJTb3V0aCBBdXN0cmFsaWFcIixcbiAgICBcIldlc3Rlcm4gQXVzdHJhbGlhXCIsXG4gICAgXCJUYXNtYW5pYVwiLFxuICAgIFwiQXVzdHJhbGlhbiBDYXBpdGFsIFRlcnJpdG9yeVwiLFxuICAgIFwiVmljdG9yaWFcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIjAjIyNcIixcbiAgICBcIjIjIyNcIixcbiAgICBcIjMjIyNcIixcbiAgICBcIjQjIyNcIixcbiAgICBcIjUjIyNcIixcbiAgICBcIjYjIyNcIixcbiAgICBcIjcjIyNcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIkF2ZW51ZVwiLFxuICAgIFwiQm91bGV2YXJkXCIsXG4gICAgXCJDaXJjbGVcIixcbiAgICBcIkNpcmN1aXRcIixcbiAgICBcIkNvdXJ0XCIsXG4gICAgXCJDcmVzY2VudFwiLFxuICAgIFwiQ3Jlc3RcIixcbiAgICBcIkRyaXZlXCIsXG4gICAgXCJFc3RhdGUgRHJcIixcbiAgICBcIkdyb3ZlXCIsXG4gICAgXCJIaWxsXCIsXG4gICAgXCJJc2xhbmRcIixcbiAgICBcIkp1bmN0aW9uXCIsXG4gICAgXCJLbm9sbFwiLFxuICAgIFwiTGFuZVwiLFxuICAgIFwiTG9vcFwiLFxuICAgIFwiTWFsbFwiLFxuICAgIFwiTWFub3JcIixcbiAgICBcIk1lYWRvd1wiLFxuICAgIFwiTWV3c1wiLFxuICAgIFwiUGFyYWRlXCIsXG4gICAgXCJQYXJrd2F5XCIsXG4gICAgXCJQYXNzXCIsXG4gICAgXCJQbGFjZVwiLFxuICAgIFwiUGxhemFcIixcbiAgICBcIlJpZGdlXCIsXG4gICAgXCJSb2FkXCIsXG4gICAgXCJSdW5cIixcbiAgICBcIlNxdWFyZVwiLFxuICAgIFwiU3RhdGlvbiBTdFwiLFxuICAgIFwiU3RyZWV0XCIsXG4gICAgXCJTdW1taXRcIixcbiAgICBcIlRlcnJhY2VcIixcbiAgICBcIlRyYWNrXCIsXG4gICAgXCJUcmFpbFwiLFxuICAgIFwiVmlldyBSZFwiLFxuICAgIFwiV2F5XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiQXVzdHJhbGlhXCJcbiAgXVxufTtcbmVuX2F1X29ja2VyLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAjICMjIyMgIyMjI1wiLFxuICAgIFwiKzYxICMgIyMjIyAjIyMjXCIsXG4gICAgXCIwNCMjICMjIyAjIyNcIixcbiAgICBcIis2MSA0IyMgIyMjICMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZXMgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlcztcbmVzLnRpdGxlID0gXCJTcGFuaXNoXCI7XG5lcy5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIlBhcmxhXCIsXG4gICAgXCJUZWxkZVwiLFxuICAgIFwiQmFyYWNhbGRvXCIsXG4gICAgXCJTYW4gRmVybmFuZG9cIixcbiAgICBcIlRvcnJldmllamFcIixcbiAgICBcIkx1Z29cIixcbiAgICBcIlNhbnRpYWdvIGRlIENvbXBvc3RlbGFcIixcbiAgICBcIkdlcm9uYVwiLFxuICAgIFwiQ8OhY2VyZXNcIixcbiAgICBcIkxvcmNhXCIsXG4gICAgXCJDb3NsYWRhXCIsXG4gICAgXCJUYWxhdmVyYSBkZSBsYSBSZWluYVwiLFxuICAgIFwiRWwgUHVlcnRvIGRlIFNhbnRhIE1hcsOtYVwiLFxuICAgIFwiQ29ybmVsbMOhIGRlIExsb2JyZWdhdFwiLFxuICAgIFwiQXZpbMOpc1wiLFxuICAgIFwiUGFsZW5jaWFcIixcbiAgICBcIkdlY2hvXCIsXG4gICAgXCJPcmlodWVsYVwiLFxuICAgIFwiUG9udGV2ZWRyYVwiLFxuICAgIFwiUG96dWVsbyBkZSBBbGFyY8OzblwiLFxuICAgIFwiVG9sZWRvXCIsXG4gICAgXCJFbCBFamlkb1wiLFxuICAgIFwiR3VhZGFsYWphcmFcIixcbiAgICBcIkdhbmTDrWFcIixcbiAgICBcIkNldXRhXCIsXG4gICAgXCJGZXJyb2xcIixcbiAgICBcIkNoaWNsYW5hIGRlIGxhIEZyb250ZXJhXCIsXG4gICAgXCJNYW5yZXNhXCIsXG4gICAgXCJSb3F1ZXRhcyBkZSBNYXJcIixcbiAgICBcIkNpdWRhZCBSZWFsXCIsXG4gICAgXCJSdWLDrVwiLFxuICAgIFwiQmVuaWRvcm1cIixcbiAgICBcIlNhbiBTZWJhc3TDrWFuIGRlIGxvcyBSZXllc1wiLFxuICAgIFwiUG9uZmVycmFkYVwiLFxuICAgIFwiWmFtb3JhXCIsXG4gICAgXCJBbGNhbMOhIGRlIEd1YWRhaXJhXCIsXG4gICAgXCJGdWVuZ2lyb2xhXCIsXG4gICAgXCJNaWphc1wiLFxuICAgIFwiU2FubMO6Y2FyIGRlIEJhcnJhbWVkYVwiLFxuICAgIFwiTGEgTMOtbmVhIGRlIGxhIENvbmNlcGNpw7NuXCIsXG4gICAgXCJNYWphZGFob25kYVwiLFxuICAgIFwiU2FndW50b1wiLFxuICAgIFwiRWwgUHJhdCBkZSBMTG9icmVnYXRcIixcbiAgICBcIlZpbGFkZWNhbnNcIixcbiAgICBcIkxpbmFyZXNcIixcbiAgICBcIkFsY295XCIsXG4gICAgXCJJcsO6blwiLFxuICAgIFwiRXN0ZXBvbmFcIixcbiAgICBcIlRvcnJlbW9saW5vc1wiLFxuICAgIFwiUml2YXMtVmFjaWFtYWRyaWRcIixcbiAgICBcIk1vbGluYSBkZSBTZWd1cmFcIixcbiAgICBcIlBhdGVybmFcIixcbiAgICBcIkdyYW5vbGxlcnNcIixcbiAgICBcIlNhbnRhIEx1Y8OtYSBkZSBUaXJhamFuYVwiLFxuICAgIFwiTW90cmlsXCIsXG4gICAgXCJDZXJkYcOxb2xhIGRlbCBWYWxsw6lzXCIsXG4gICAgXCJBcnJlY2lmZVwiLFxuICAgIFwiU2Vnb3ZpYVwiLFxuICAgIFwiVG9ycmVsYXZlZ2FcIixcbiAgICBcIkVsZGFcIixcbiAgICBcIk3DqXJpZGFcIixcbiAgICBcIsOBdmlsYVwiLFxuICAgIFwiVmFsZGVtb3JvXCIsXG4gICAgXCJDdWVudGFcIixcbiAgICBcIkNvbGxhZG8gVmlsbGFsYmFcIixcbiAgICBcIkJlbmFsbcOhZGVuYVwiLFxuICAgIFwiTW9sbGV0IGRlbCBWYWxsw6lzXCIsXG4gICAgXCJQdWVydG9sbGFub1wiLFxuICAgIFwiTWFkcmlkXCIsXG4gICAgXCJCYXJjZWxvbmFcIixcbiAgICBcIlZhbGVuY2lhXCIsXG4gICAgXCJTZXZpbGxhXCIsXG4gICAgXCJaYXJhZ296YVwiLFxuICAgIFwiTcOhbGFnYVwiLFxuICAgIFwiTXVyY2lhXCIsXG4gICAgXCJQYWxtYSBkZSBNYWxsb3JjYVwiLFxuICAgIFwiTGFzIFBhbG1hcyBkZSBHcmFuIENhbmFyaWFcIixcbiAgICBcIkJpbGJhb1wiLFxuICAgIFwiQ8OzcmRvYmFcIixcbiAgICBcIkFsaWNhbnRlXCIsXG4gICAgXCJWYWxsYWRvbGlkXCIsXG4gICAgXCJWaWdvXCIsXG4gICAgXCJHaWrDs25cIixcbiAgICBcIkhvc3BpdGFsZXQgZGUgTExvYnJlZ2F0XCIsXG4gICAgXCJMYSBDb3J1w7FhXCIsXG4gICAgXCJHcmFuYWRhXCIsXG4gICAgXCJWaXRvcmlhXCIsXG4gICAgXCJFbGNoZVwiLFxuICAgIFwiU2FudGEgQ3J1eiBkZSBUZW5lcmlmZVwiLFxuICAgIFwiT3ZpZWRvXCIsXG4gICAgXCJCYWRhbG9uYVwiLFxuICAgIFwiQ2FydGFnZW5hXCIsXG4gICAgXCJNw7NzdG9sZXNcIixcbiAgICBcIkplcmV6IGRlIGxhIEZyb250ZXJhXCIsXG4gICAgXCJUYXJyYXNhXCIsXG4gICAgXCJTYWJhZGVsbFwiLFxuICAgIFwiQWxjYWzDoSBkZSBIZW5hcmVzXCIsXG4gICAgXCJQYW1wbG9uYVwiLFxuICAgIFwiRnVlbmxhYnJhZGFcIixcbiAgICBcIkFsbWVyw61hXCIsXG4gICAgXCJTYW4gU2ViYXN0acOhblwiLFxuICAgIFwiTGVnYW7DqXNcIixcbiAgICBcIlNhbnRhbmRlclwiLFxuICAgIFwiQnVyZ29zXCIsXG4gICAgXCJDYXN0ZWxsw7NuIGRlIGxhIFBsYW5hXCIsXG4gICAgXCJBbGNvcmPDs25cIixcbiAgICBcIkFsYmFjZXRlXCIsXG4gICAgXCJHZXRhZmVcIixcbiAgICBcIlNhbGFtYW5jYVwiLFxuICAgIFwiSHVlbHZhXCIsXG4gICAgXCJMb2dyb8Oxb1wiLFxuICAgIFwiQmFkYWpvelwiLFxuICAgIFwiU2FuIENyaXN0csOzYmFsIGRlIGxhIExhZ3VuYVwiLFxuICAgIFwiTGXDs25cIixcbiAgICBcIlRhcnJhZ29uYVwiLFxuICAgIFwiQ8OhZGl6XCIsXG4gICAgXCJMw6lyaWRhXCIsXG4gICAgXCJNYXJiZWxsYVwiLFxuICAgIFwiTWF0YXLDs1wiLFxuICAgIFwiRG9zIEhlcm1hbmFzXCIsXG4gICAgXCJTYW50YSBDb2xvbWEgZGUgR3JhbWFuZXRcIixcbiAgICBcIkphw6luXCIsXG4gICAgXCJBbGdlY2lyYXNcIixcbiAgICBcIlRvcnJlasOzbiBkZSBBcmRvelwiLFxuICAgIFwiT3JlbnNlXCIsXG4gICAgXCJBbGNvYmVuZGFzXCIsXG4gICAgXCJSZXVzXCIsXG4gICAgXCJDYWxhaG9ycmFcIixcbiAgICBcIkluY2FcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnYW5pc3TDoW5cIixcbiAgICBcIkFsYmFuaWFcIixcbiAgICBcIkFyZ2VsaWFcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQXJnZW50aW5hXCIsXG4gICAgXCJBcm1lbmlhXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXVzdHJhbGlhXCIsXG4gICAgXCJBdXN0cmlhXCIsXG4gICAgXCJBemVyYmF5w6FuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYXJlaW5cIixcbiAgICBcIkJhbmdsYWRlc2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCaWVsb3J1c2lhXCIsXG4gICAgXCJCw6lsZ2ljYVwiLFxuICAgIFwiQmVsaWNlXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCdXTDoW5cIixcbiAgICBcIkJvbGl2aWFcIixcbiAgICBcIkJvc25pYSBIZXJ6ZWdvdmluYVwiLFxuICAgIFwiQm90c3dhbmFcIixcbiAgICBcIkJyYXNpbFwiLFxuICAgIFwiQnVsZ2FyaWFcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2FtYm95YVwiLFxuICAgIFwiQ2FtZXLDum5cIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2FibyBWZXJkZVwiLFxuICAgIFwiSXNsYXMgQ2FpbcOhblwiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJJc2xhIGRlIE5hdmlkYWRcIixcbiAgICBcIkNvbG9tYmlhXCIsXG4gICAgXCJDb21vZG9zXCIsXG4gICAgXCJDb25nb1wiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiQ29zdGEgZGUgTWFyZmlsXCIsXG4gICAgXCJDcm9hY2lhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDaGlwcmVcIixcbiAgICBcIlJlcMO6YmxpY2EgQ2hlY2FcIixcbiAgICBcIkRpbmFtYXJjYVwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIlJlcMO6YmxpY2EgRG9taW5pY2FuYVwiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiRWdpcHRvXCIsXG4gICAgXCJFbCBTYWx2YWRvclwiLFxuICAgIFwiR3VpbmVhIEVjdWF0b3JpYWxcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdG9uaWFcIixcbiAgICBcIkV0aW9ww61hXCIsXG4gICAgXCJJc2xhcyBGYXJvXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaW5sYW5kaWFcIixcbiAgICBcIkZyYW5jaWFcIixcbiAgICBcIkdhYsOzblwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHZW9yZ2lhXCIsXG4gICAgXCJBbGVtYW5pYVwiLFxuICAgIFwiR2hhbmFcIixcbiAgICBcIkdyZWNpYVwiLFxuICAgIFwiR3JvZW5sYW5kaWFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIkd1YWRhbHVwZVwiLFxuICAgIFwiR3VhbVwiLFxuICAgIFwiR3VhdGVtYWxhXCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lYS1CaXNhdVwiLFxuICAgIFwiR3VheWFuYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nIEtvbmdcIixcbiAgICBcIkh1bmdyaWFcIixcbiAgICBcIklzbGFuZGlhXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kb25lc2lhXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmxhbmRhXCIsXG4gICAgXCJJdGFsaWFcIixcbiAgICBcIkphbWFpY2FcIixcbiAgICBcIkphcMOzblwiLFxuICAgIFwiSm9yZGFuaWFcIixcbiAgICBcIkthemFqaXN0YW5cIixcbiAgICBcIktlbmlhXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiQ29yZWFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiTGV0b25pYVwiLFxuICAgIFwiTMOtYmFub1wiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0dWFuaWFcIixcbiAgICBcIkx1eGVtYnVyZ29cIixcbiAgICBcIk1hY2FvXCIsXG4gICAgXCJNYWNlZG9uaWFcIixcbiAgICBcIk1hZGFnYXNjYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXNpYVwiLFxuICAgIFwiTWFsZGl2YXNcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJNYXJ0aW5pY2FcIixcbiAgICBcIk1hdXJpdGFuaWFcIixcbiAgICBcIk3DqWppY29cIixcbiAgICBcIk1pY3JvbmVzaWFcIixcbiAgICBcIk1vbGRhdmlhXCIsXG4gICAgXCJNw7NuYWNvXCIsXG4gICAgXCJNb25nb2xpYVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTWFycnVlY29zXCIsXG4gICAgXCJNb3phbWJpcXVlXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkhvbGFuZGFcIixcbiAgICBcIk51ZXZhIFplbGFuZGFcIixcbiAgICBcIk5pY2FyYWd1YVwiLFxuICAgIFwiTmlnZXJcIixcbiAgICBcIk5pZ2VyaWFcIixcbiAgICBcIk5vcnVlZ2FcIixcbiAgICBcIk9tw6FuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFuYW3DoVwiLFxuICAgIFwiUGFww7phIE51ZXZhIEd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlBlcsO6XCIsXG4gICAgXCJGaWxpcGluYXNcIixcbiAgICBcIlBvbGFuZFwiLFxuICAgIFwiUG9ydHVnYWxcIixcbiAgICBcIlB1ZXJ0byBSaWNvXCIsXG4gICAgXCJSdXNpYVwiLFxuICAgIFwiUnVhbmRhXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2FudG8gVG9tw6kgeSBQcmluY2lwZVwiLFxuICAgIFwiQXJhYmlhIFNhdWTDrVwiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU2VyYmlhXCIsXG4gICAgXCJTZXljaGVsbGVzXCIsXG4gICAgXCJTaWVycmEgTGVvbmFcIixcbiAgICBcIlNpbmdhcHVyXCIsXG4gICAgXCJFc2xvdmFxdWlhXCIsXG4gICAgXCJFc2xvdmVuaWFcIixcbiAgICBcIlNvbWFsaWFcIixcbiAgICBcIkVzcGHDsWFcIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3Vkw6FuXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3VlY2lhXCIsXG4gICAgXCJTdWl6YVwiLFxuICAgIFwiU2lyaWFcIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiVGFqaWtpc3RhblwiLFxuICAgIFwiVGFuemFuaWFcIixcbiAgICBcIlRhaWxhbmRpYVwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCB5IFRvYmFnb1wiLFxuICAgIFwiVHVuZXpcIixcbiAgICBcIlR1cnF1aWFcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWNyYW5pYVwiLFxuICAgIFwiRW1pcmF0b3Mgw4FyYWJlcyBVbmlkb3NcIixcbiAgICBcIlJlaW5vIFVuaWRvXCIsXG4gICAgXCJFc3RhZG9zIFVuaWRvcyBkZSBBbcOpcmljYVwiLFxuICAgIFwiVXJ1Z3VheVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJZZW1lblwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJaaW1iYWJ3ZVwiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiBzL24uXCIsXG4gICAgXCIsICNcIixcbiAgICBcIiwgIyNcIixcbiAgICBcIiAjXCIsXG4gICAgXCIgIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQWxkZWFcIixcbiAgICBcIkFwYXJ0YW1lbnRvXCIsXG4gICAgXCJBcnJhYmFsXCIsXG4gICAgXCJBcnJveW9cIixcbiAgICBcIkF2ZW5pZGFcIixcbiAgICBcIkJhamFkYVwiLFxuICAgIFwiQmFycmFuY29cIixcbiAgICBcIkJhcnJpb1wiLFxuICAgIFwiQmxvcXVlXCIsXG4gICAgXCJDYWxsZVwiLFxuICAgIFwiQ2FsbGVqYVwiLFxuICAgIFwiQ2FtaW5vXCIsXG4gICAgXCJDYXJyZXRlcmFcIixcbiAgICBcIkNhc2VyaW9cIixcbiAgICBcIkNvbGVnaW9cIixcbiAgICBcIkNvbG9uaWFcIixcbiAgICBcIkNvbmp1bnRvXCIsXG4gICAgXCJDdWVzdGFcIixcbiAgICBcIkNoYWxldFwiLFxuICAgIFwiRWRpZmljaW9cIixcbiAgICBcIkVudHJhZGFcIixcbiAgICBcIkVzY2FsaW5hdGFcIixcbiAgICBcIkV4cGxhbmFkYVwiLFxuICAgIFwiRXh0cmFtdXJvc1wiLFxuICAgIFwiRXh0cmFycmFkaW9cIixcbiAgICBcIkZlcnJvY2FycmlsXCIsXG4gICAgXCJHbG9yaWV0YVwiLFxuICAgIFwiR3JhbiBTdWJpZGFcIixcbiAgICBcIkdydXBvXCIsXG4gICAgXCJIdWVydGFcIixcbiAgICBcIkphcmRpbmVzXCIsXG4gICAgXCJMYWRvXCIsXG4gICAgXCJMdWdhclwiLFxuICAgIFwiTWFuemFuYVwiLFxuICAgIFwiTWFzw61hXCIsXG4gICAgXCJNZXJjYWRvXCIsXG4gICAgXCJNb250ZVwiLFxuICAgIFwiTXVlbGxlXCIsXG4gICAgXCJNdW5pY2lwaW9cIixcbiAgICBcIlBhcmNlbGFcIixcbiAgICBcIlBhcnF1ZVwiLFxuICAgIFwiUGFydGlkYVwiLFxuICAgIFwiUGFzYWplXCIsXG4gICAgXCJQYXNlb1wiLFxuICAgIFwiUGxhemFcIixcbiAgICBcIlBvYmxhZG9cIixcbiAgICBcIlBvbMOtZ29ub1wiLFxuICAgIFwiUHJvbG9uZ2FjacOzblwiLFxuICAgIFwiUHVlbnRlXCIsXG4gICAgXCJQdWVydGFcIixcbiAgICBcIlF1aW50YVwiLFxuICAgIFwiUmFtYWxcIixcbiAgICBcIlJhbWJsYVwiLFxuICAgIFwiUmFtcGFcIixcbiAgICBcIlJpZXJhXCIsXG4gICAgXCJSaW5jw7NuXCIsXG4gICAgXCJSb25kYVwiLFxuICAgIFwiUnVhXCIsXG4gICAgXCJTYWxpZGFcIixcbiAgICBcIlNlY3RvclwiLFxuICAgIFwiU2VjY2nDs25cIixcbiAgICBcIlNlbmRhXCIsXG4gICAgXCJTb2xhclwiLFxuICAgIFwiU3ViaWRhXCIsXG4gICAgXCJUZXJyZW5vc1wiLFxuICAgIFwiVG9ycmVudGVcIixcbiAgICBcIlRyYXZlc8OtYVwiLFxuICAgIFwiVXJiYW5pemFjacOzblwiLFxuICAgIFwiVsOtYVwiLFxuICAgIFwiVsOtYSBQw7pibGljYVwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiRXNjLiAjIyNcIixcbiAgICBcIlB1ZXJ0YSAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjXCJcbiAgXSxcbiAgXCJwcm92aW5jZVwiOiBbXG4gICAgXCLDgWxhdmFcIixcbiAgICBcIkFsYmFjZXRlXCIsXG4gICAgXCJBbGljYW50ZVwiLFxuICAgIFwiQWxtZXLDrWFcIixcbiAgICBcIkFzdHVyaWFzXCIsXG4gICAgXCLDgXZpbGFcIixcbiAgICBcIkJhZGFqb3pcIixcbiAgICBcIkJhcmNlbG9uYVwiLFxuICAgIFwiQnVyZ29zXCIsXG4gICAgXCJDYW50YWJyaWFcIixcbiAgICBcIkNhc3RlbGzDs25cIixcbiAgICBcIkNpdWRhZCBSZWFsXCIsXG4gICAgXCJDdWVuY2FcIixcbiAgICBcIkPDoWNlcmVzXCIsXG4gICAgXCJDw6FkaXpcIixcbiAgICBcIkPDs3Jkb2JhXCIsXG4gICAgXCJHZXJvbmFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIkd1YWRhbGFqYXJhXCIsXG4gICAgXCJHdWlww7p6Y29hXCIsXG4gICAgXCJIdWVsdmFcIixcbiAgICBcIkh1ZXNjYVwiLFxuICAgIFwiSXNsYXMgQmFsZWFyZXNcIixcbiAgICBcIkphw6luXCIsXG4gICAgXCJMYSBDb3J1w7FhXCIsXG4gICAgXCJMYSBSaW9qYVwiLFxuICAgIFwiTGFzIFBhbG1hc1wiLFxuICAgIFwiTGXDs25cIixcbiAgICBcIkx1Z29cIixcbiAgICBcImzDqXJpZGFcIixcbiAgICBcIk1hZHJpZFwiLFxuICAgIFwiTXVyY2lhXCIsXG4gICAgXCJNw6FsYWdhXCIsXG4gICAgXCJOYXZhcnJhXCIsXG4gICAgXCJPcmVuc2VcIixcbiAgICBcIlBhbGVuY2lhXCIsXG4gICAgXCJQb250ZXZlZHJhXCIsXG4gICAgXCJTYWxhbWFuY2FcIixcbiAgICBcIlNhbnRhIENydXogZGUgVGVuZXJpZmVcIixcbiAgICBcIlNlZ292aWFcIixcbiAgICBcIlNldmlsbGFcIixcbiAgICBcIlNvcmlhXCIsXG4gICAgXCJUYXJyYWdvbmFcIixcbiAgICBcIlRlcnVlbFwiLFxuICAgIFwiVG9sZWRvXCIsXG4gICAgXCJWYWxlbmNpYVwiLFxuICAgIFwiVmFsbGFkb2xpZFwiLFxuICAgIFwiVml6Y2F5YVwiLFxuICAgIFwiWmFtb3JhXCIsXG4gICAgXCJaYXJhZ296YVwiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQW5kYWx1Y8OtYVwiLFxuICAgIFwiQXJhZ8OzblwiLFxuICAgIFwiUHJpbmNpcGFkbyBkZSBBc3R1cmlhc1wiLFxuICAgIFwiQmFsZWFyZXNcIixcbiAgICBcIkNhbmFyaWFzXCIsXG4gICAgXCJDYW50YWJyaWFcIixcbiAgICBcIkNhc3RpbGxhLUxhIE1hbmNoYVwiLFxuICAgIFwiQ2FzdGlsbGEgeSBMZcOzblwiLFxuICAgIFwiQ2F0YWx1w7FhXCIsXG4gICAgXCJDb211bmlkYWQgVmFsZW5jaWFuYVwiLFxuICAgIFwiRXh0cmVtYWR1cmFcIixcbiAgICBcIkdhbGljaWFcIixcbiAgICBcIkxhIFJpb2phXCIsXG4gICAgXCJDb211bmlkYWQgZGUgTWFkcmlkXCIsXG4gICAgXCJOYXZhcnJhXCIsXG4gICAgXCJQYcOtcyBWYXNjb1wiLFxuICAgIFwiUmVnacOzbiBkZSBNdXJjaWFcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQW5kXCIsXG4gICAgXCJBcmFcIixcbiAgICBcIkFzdFwiLFxuICAgIFwiQmFsXCIsXG4gICAgXCJDYW5cIixcbiAgICBcIkNiclwiLFxuICAgIFwiTWFuXCIsXG4gICAgXCJMZW9cIixcbiAgICBcIkNhdFwiLFxuICAgIFwiQ29tXCIsXG4gICAgXCJFeHRcIixcbiAgICBcIkdhbFwiLFxuICAgIFwiUmlvXCIsXG4gICAgXCJNYWRcIixcbiAgICBcIk5hdlwiLFxuICAgIFwiVmFzXCIsXG4gICAgXCJNdXJcIlxuICBdLFxuICBcInRpbWVfem9uZVwiOiBbXG4gICAgXCJQYWPDrWZpY28vTWlkd2F5XCIsXG4gICAgXCJQYWPDrWZpY28vUGFnb19QYWdvXCIsXG4gICAgXCJQYWPDrWZpY28vSG9ub2x1bHVcIixcbiAgICBcIkFtZXJpY2EvSnVuZWF1XCIsXG4gICAgXCJBbWVyaWNhL0xvc19BbmdlbGVzXCIsXG4gICAgXCJBbWVyaWNhL1RpanVhbmFcIixcbiAgICBcIkFtZXJpY2EvRGVudmVyXCIsXG4gICAgXCJBbWVyaWNhL1Bob2VuaXhcIixcbiAgICBcIkFtZXJpY2EvQ2hpaHVhaHVhXCIsXG4gICAgXCJBbWVyaWNhL01hemF0bGFuXCIsXG4gICAgXCJBbWVyaWNhL0NoaWNhZ29cIixcbiAgICBcIkFtZXJpY2EvUmVnaW5hXCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01vbnRlcnJleVwiLFxuICAgIFwiQW1lcmljYS9HdWF0ZW1hbGFcIixcbiAgICBcIkFtZXJpY2EvTmV3X1lvcmtcIixcbiAgICBcIkFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXNcIixcbiAgICBcIkFtZXJpY2EvQm9nb3RhXCIsXG4gICAgXCJBbWVyaWNhL0xpbWFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9IYWxpZmF4XCIsXG4gICAgXCJBbWVyaWNhL0NhcmFjYXNcIixcbiAgICBcIkFtZXJpY2EvTGFfUGF6XCIsXG4gICAgXCJBbWVyaWNhL1NhbnRpYWdvXCIsXG4gICAgXCJBbWVyaWNhL1N0X0pvaG5zXCIsXG4gICAgXCJBbWVyaWNhL1Nhb19QYXVsb1wiLFxuICAgIFwiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzXCIsXG4gICAgXCJBbWVyaWNhL0d1eWFuYVwiLFxuICAgIFwiQW1lcmljYS9Hb2R0aGFiXCIsXG4gICAgXCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhXCIsXG4gICAgXCJBdGxhbnRpYy9Bem9yZXNcIixcbiAgICBcIkF0bGFudGljL0NhcGVfVmVyZGVcIixcbiAgICBcIkV1cm9wYS9EdWJsaW5cIixcbiAgICBcIkV1cm9wYS9Mb25kb25cIixcbiAgICBcIkV1cm9wYS9MaXNib25cIixcbiAgICBcIkV1cm9wYS9Mb25kb25cIixcbiAgICBcIkFmcmljYS9DYXNhYmxhbmNhXCIsXG4gICAgXCJBZnJpY2EvTW9ucm92aWFcIixcbiAgICBcIkV0Yy9VVENcIixcbiAgICBcIkV1cm9wYS9CZWxncmFkZVwiLFxuICAgIFwiRXVyb3BhL0JyYXRpc2xhdmFcIixcbiAgICBcIkV1cm9wYS9CdWRhcGVzdFwiLFxuICAgIFwiRXVyb3BhL0xqdWJsamFuYVwiLFxuICAgIFwiRXVyb3BhL1ByYWd1ZVwiLFxuICAgIFwiRXVyb3BhL1NhcmFqZXZvXCIsXG4gICAgXCJFdXJvcGEvU2tvcGplXCIsXG4gICAgXCJFdXJvcGEvV2Fyc2F3XCIsXG4gICAgXCJFdXJvcGEvWmFncmViXCIsXG4gICAgXCJFdXJvcGEvQnJ1c3NlbHNcIixcbiAgICBcIkV1cm9wYS9Db3BlbmhhZ2VuXCIsXG4gICAgXCJFdXJvcGEvTWFkcmlkXCIsXG4gICAgXCJFdXJvcGEvUGFyaXNcIixcbiAgICBcIkV1cm9wYS9BbXN0ZXJkYW1cIixcbiAgICBcIkV1cm9wYS9CZXJsaW5cIixcbiAgICBcIkV1cm9wYS9CZXJsaW5cIixcbiAgICBcIkV1cm9wYS9Sb21lXCIsXG4gICAgXCJFdXJvcGEvU3RvY2tob2xtXCIsXG4gICAgXCJFdXJvcGEvVmllbm5hXCIsXG4gICAgXCJBZnJpY2EvQWxnaWVyc1wiLFxuICAgIFwiRXVyb3BhL0J1Y2hhcmVzdFwiLFxuICAgIFwiQWZyaWNhL0NhaXJvXCIsXG4gICAgXCJFdXJvcGEvSGVsc2lua2lcIixcbiAgICBcIkV1cm9wYS9LaWV2XCIsXG4gICAgXCJFdXJvcGEvUmlnYVwiLFxuICAgIFwiRXVyb3BhL1NvZmlhXCIsXG4gICAgXCJFdXJvcGEvVGFsbGlublwiLFxuICAgIFwiRXVyb3BhL1ZpbG5pdXNcIixcbiAgICBcIkV1cm9wYS9BdGhlbnNcIixcbiAgICBcIkV1cm9wYS9Jc3RhbmJ1bFwiLFxuICAgIFwiRXVyb3BhL01pbnNrXCIsXG4gICAgXCJBc2lhL0plcnVzYWxlblwiLFxuICAgIFwiQWZyaWNhL0hhcmFyZVwiLFxuICAgIFwiQWZyaWNhL0pvaGFubmVzYnVyZ1wiLFxuICAgIFwiRXVyb3BhL01vc2PDulwiLFxuICAgIFwiRXVyb3BhL01vc2PDulwiLFxuICAgIFwiRXVyb3BhL01vc2PDulwiLFxuICAgIFwiQXNpYS9LdXdhaXRcIixcbiAgICBcIkFzaWEvUml5YWRoXCIsXG4gICAgXCJBZnJpY2EvTmFpcm9iaVwiLFxuICAgIFwiQXNpYS9CYWdoZGFkXCIsXG4gICAgXCJBc2lhL1RlaHJhblwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvTXVzY2F0XCIsXG4gICAgXCJBc2lhL0Jha3VcIixcbiAgICBcIkFzaWEvVGJpbGlzaVwiLFxuICAgIFwiQXNpYS9ZZXJldmFuXCIsXG4gICAgXCJBc2lhL0thYnVsXCIsXG4gICAgXCJBc2lhL1lla2F0ZXJpbmJ1cmdcIixcbiAgICBcIkFzaWEvS2FyYWNoaVwiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL1Rhc2hrZW50XCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS2F0aG1hbmR1XCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0NvbG9tYm9cIixcbiAgICBcIkFzaWEvQWxtYXR5XCIsXG4gICAgXCJBc2lhL05vdm9zaWJpcnNrXCIsXG4gICAgXCJBc2lhL1Jhbmdvb25cIixcbiAgICBcIkFzaWEvQmFuZ2tva1wiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0pha2FydGFcIixcbiAgICBcIkFzaWEvS3Jhc25veWFyc2tcIixcbiAgICBcIkFzaWEvU2hhbmdoYWlcIixcbiAgICBcIkFzaWEvQ2hvbmdxaW5nXCIsXG4gICAgXCJBc2lhL0hvbmdfS29uZ1wiLFxuICAgIFwiQXNpYS9VcnVtcWlcIixcbiAgICBcIkFzaWEvS3VhbGFfTHVtcHVyXCIsXG4gICAgXCJBc2lhL1NpbmdhcG9yZVwiLFxuICAgIFwiQXNpYS9UYWlwZWlcIixcbiAgICBcIkF1c3RyYWxpYS9QZXJ0aFwiLFxuICAgIFwiQXNpYS9Jcmt1dHNrXCIsXG4gICAgXCJBc2lhL1VsYWFuYmFhdGFyXCIsXG4gICAgXCJBc2lhL1Nlb3VsXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1lha3V0c2tcIixcbiAgICBcIkF1c3RyYWxpYS9EYXJ3aW5cIixcbiAgICBcIkF1c3RyYWxpYS9BZGVsYWlkZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL1N5ZG5leVwiLFxuICAgIFwiQXVzdHJhbGlhL0JyaXNiYW5lXCIsXG4gICAgXCJBdXN0cmFsaWEvSG9iYXJ0XCIsXG4gICAgXCJBc2lhL1ZsYWRpdm9zdG9rXCIsXG4gICAgXCJQYWPDrWZpY28vR3VhbVwiLFxuICAgIFwiUGFjw61maWNvL1BvcnRfTW9yZXNieVwiLFxuICAgIFwiQXNpYS9NYWdhZGFuXCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIlBhY8OtZmljby9Ob3VtZWFcIixcbiAgICBcIlBhY8OtZmljby9GaWppXCIsXG4gICAgXCJBc2lhL0thbWNoYXRrYVwiLFxuICAgIFwiUGFjw61maWNvL01hanVyb1wiLFxuICAgIFwiUGFjw61maWNvL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWPDrWZpY28vQXVja2xhbmRcIixcbiAgICBcIlBhY8OtZmljby9Ub25nYXRhcHVcIixcbiAgICBcIlBhY8OtZmljby9GYWthb2ZvXCIsXG4gICAgXCJQYWPDrWZpY28vQXBpYVwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfc3VmZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tOYW1lLmZpcnN0X25hbWV9ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSN7YnVpbGRpbmdfbnVtYmVyfVwiLFxuICAgIFwiI3tzdHJlZXRfbmFtZX0je2J1aWxkaW5nX251bWJlcn0gI3tzZWNvbmRhcnlfYWRkcmVzc31cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJFc3Bhw7FhXCJcbiAgXVxufTtcbmVzLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlMuTC5cIixcbiAgICBcImUgSGlqb3NcIixcbiAgICBcIlMuQS5cIixcbiAgICBcIkhlcm1hbm9zXCJcbiAgXSxcbiAgXCJub3VuXCI6IFtcbiAgICAgIFwiaGFiaWxpZGFkXCIsXG4gICAgICBcImFjY2Vzb1wiLFxuICAgICAgXCJhZGFwdGFkb3JcIixcbiAgICAgIFwiYWxnb3JpdG1vXCIsXG4gICAgICBcImFsaWFuemFcIixcbiAgICAgIFwiYW5hbGlzdGFcIixcbiAgICAgIFwiYXBsaWNhY2nDs25cIixcbiAgICAgIFwiZW5mb3F1ZVwiLFxuICAgICAgXCJhcnF1aXRlY3R1cmFcIixcbiAgICAgIFwiYXJjaGl2b1wiLFxuICAgICAgXCJpbnRlbGlnZW5jaWEgYXJ0aWZpY2lhbFwiLFxuICAgICAgXCJhcnJheVwiLFxuICAgICAgXCJhY3RpdHVkXCIsXG4gICAgICBcIm1lZGljacOzblwiLFxuICAgICAgXCJnZXN0acOzbiBwcmVzdXB1ZXN0YXJpYVwiLFxuICAgICAgXCJjYXBhY2lkYWRcIixcbiAgICAgIFwiZGVzYWbDrW9cIixcbiAgICAgIFwiY2lyY3VpdG9cIixcbiAgICAgIFwiY29sYWJvcmFjacOzblwiLFxuICAgICAgXCJjb21wbGVqaWRhZFwiLFxuICAgICAgXCJjb25jZXB0b1wiLFxuICAgICAgXCJjb25nbG9tZXJhY2nDs25cIixcbiAgICAgIFwiY29udGluZ2VuY2lhXCIsXG4gICAgICBcIm7DumNsZW9cIixcbiAgICAgIFwiZmlkZWxpZGFkXCIsXG4gICAgICBcImJhc2UgZGUgZGF0b3NcIixcbiAgICAgIFwiZGF0YS13YXJlaG91c2VcIixcbiAgICAgIFwiZGVmaW5pY2nDs25cIixcbiAgICAgIFwiZW11bGFjacOzblwiLFxuICAgICAgXCJjb2RpZmljYXJcIixcbiAgICAgIFwiZW5jcmlwdGFyXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaWRhZFwiLFxuICAgICAgXCJmb2N1cyBncm91cFwiLFxuICAgICAgXCJwcmV2aXNpw7NuXCIsXG4gICAgICBcImJhc2UgZGUgdHJhYmFqb1wiLFxuICAgICAgXCJmdW5jacOzblwiLFxuICAgICAgXCJmdW5jaW9uYWxpZGFkXCIsXG4gICAgICBcIkludGVyZmF6IEdyw6FmaWNhXCIsXG4gICAgICBcImdyb3Vwd2FyZVwiLFxuICAgICAgXCJJbnRlcmZheiBncsOhZmljbyBkZSB1c3VhcmlvXCIsXG4gICAgICBcImhhcmR3YXJlXCIsXG4gICAgICBcIlNvcG9ydGVcIixcbiAgICAgIFwiamVyYXJxdcOtYVwiLFxuICAgICAgXCJjb25qdW50b1wiLFxuICAgICAgXCJpbXBsZW1lbnRhY2nDs25cIixcbiAgICAgIFwiaW5mcmFlc3RydWN0dXJhXCIsXG4gICAgICBcImluaWNpYXRpdmFcIixcbiAgICAgIFwiaW5zdGFsYWNpw7NuXCIsXG4gICAgICBcImNvbmp1bnRvIGRlIGluc3RydWNjaW9uZXNcIixcbiAgICAgIFwiaW50ZXJmYXpcIixcbiAgICAgIFwiaW50cmFuZXRcIixcbiAgICAgIFwiYmFzZSBkZWwgY29ub2NpbWllbnRvXCIsXG4gICAgICBcInJlZCBkZSBhcmVhIGxvY2FsXCIsXG4gICAgICBcImFwcm92ZWNoYXJcIixcbiAgICAgIFwibWF0cmljZXNcIixcbiAgICAgIFwibWV0b2RvbG9nw61hc1wiLFxuICAgICAgXCJtaWRkbGV3YXJlXCIsXG4gICAgICBcIm1pZ3JhY2nDs25cIixcbiAgICAgIFwibW9kZWxvXCIsXG4gICAgICBcIm1vZGVyYWRvclwiLFxuICAgICAgXCJtb25pdG9yaXphclwiLFxuICAgICAgXCJhcnF1aXRlY3R1cmEgYWJpZXJ0YVwiLFxuICAgICAgXCJzaXN0ZW1hIGFiaWVydG9cIixcbiAgICAgIFwib3JxdWVzdGFyXCIsXG4gICAgICBcInBhcmFkaWdtYVwiLFxuICAgICAgXCJwYXJhbGVsaXNtb1wiLFxuICAgICAgXCJwb2zDrXRpY2FcIixcbiAgICAgIFwicG9ydGFsXCIsXG4gICAgICBcImVzdHJ1Y3R1cmEgZGUgcHJlY2lvc1wiLFxuICAgICAgXCJwcm9jZXNvIGRlIG1lam9yYVwiLFxuICAgICAgXCJwcm9kdWN0b1wiLFxuICAgICAgXCJwcm9kdWN0aXZpZGFkXCIsXG4gICAgICBcInByb3llY3RvXCIsXG4gICAgICBcInByb3llY2Npw7NuXCIsXG4gICAgICBcInByb3RvY29sb1wiLFxuICAgICAgXCJsw61uZWEgc2VndXJhXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHVjacOzblwiLFxuICAgICAgXCJlc3RhbmRhcmRpemFjacOzblwiLFxuICAgICAgXCJlc3RyYXRlZ2lhXCIsXG4gICAgICBcImVzdHJ1Y3R1cmFcIixcbiAgICAgIFwiw6l4aXRvXCIsXG4gICAgICBcInN1cGVyZXN0cnVjdHVyYVwiLFxuICAgICAgXCJzb3BvcnRlXCIsXG4gICAgICBcInNpbmVyZ2lhXCIsXG4gICAgICBcIm1lZGlhbnRlXCIsXG4gICAgICBcIm1hcmNvIGRlIHRpZW1wb1wiLFxuICAgICAgXCJjYWphIGRlIGhlcnJhbWllbnRhc1wiLFxuICAgICAgXCJ1dGlsaXphY2nDs25cIixcbiAgICAgIFwid2Vic2l0ZVwiLFxuICAgICAgXCJmdWVyemEgZGUgdHJhYmFqb1wiXG4gICAgXSxcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCIyNCBob3Jhc1wiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmFjacOzblwiLFxuICAgICAgXCI0dGggZ2VuZXJhY2nDs25cIixcbiAgICAgIFwiNXRoIGdlbmVyYWNpw7NuXCIsXG4gICAgICBcIjZ0aCBnZW5lcmFjacOzblwiLFxuICAgICAgXCJhbmFsaXphZGFcIixcbiAgICAgIFwiYXNpbcOpdHJpY2FcIixcbiAgICAgIFwiYXPDrW5jcm9uYVwiLFxuICAgICAgXCJtb25pdG9yaXphZGEgcG9yIHJlZFwiLFxuICAgICAgXCJiaWRpcmVjY2lvbmFsXCIsXG4gICAgICBcImJpZnVyY2FkYVwiLFxuICAgICAgXCJnZW5lcmFkYSBwb3IgZWwgY2xpZW50ZVwiLFxuICAgICAgXCJjbGllbnRlIHNlcnZpZG9yXCIsXG4gICAgICBcImNvaGVyZW50ZVwiLFxuICAgICAgXCJjb2hlc2l2YVwiLFxuICAgICAgXCJjb21wdWVzdG9cIixcbiAgICAgIFwic2Vuc2libGUgYWwgY29udGV4dG9cIixcbiAgICAgIFwiYmFzYWRvIGVuIGVsIGNvbnRleHRvXCIsXG4gICAgICBcImJhc2FkbyBlbiBjb250ZW5pZG9cIixcbiAgICAgIFwiZGVkaWNhZGFcIixcbiAgICAgIFwiZ2VuZXJhZG8gcG9yIGxhIGRlbWFuZGFcIixcbiAgICAgIFwiZGlkYWN0aWNhXCIsXG4gICAgICBcImRpcmVjY2lvbmFsXCIsXG4gICAgICBcImRpc2NyZXRhXCIsXG4gICAgICBcImRpbsOhbWljYVwiLFxuICAgICAgXCJwb3RlbmNpYWRhXCIsXG4gICAgICBcImFjb21wYXNhZGFcIixcbiAgICAgIFwiZWplY3V0aXZhXCIsXG4gICAgICBcImV4cGzDrWNpdGFcIixcbiAgICAgIFwidG9sZXJhbnRlIGEgZmFsbG9zXCIsXG4gICAgICBcImlubm92YWRvcmFcIixcbiAgICAgIFwiYW1wbGlvIMOhYmFuaWNvXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJoZXVyw61zdGljYVwiLFxuICAgICAgXCJhbHRvIG5pdmVsXCIsXG4gICAgICBcImhvbMOtc3RpY2FcIixcbiAgICAgIFwiaG9tb2fDqW5lYVwiLFxuICAgICAgXCJoaWJyaWRhXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmFcIixcbiAgICAgIFwiaW50ZXJtZWRpYVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2fDrXN0aWNhXCIsXG4gICAgICBcIm1heGltaXphZGFcIixcbiAgICAgIFwibWV0w7NkaWNhXCIsXG4gICAgICBcIm1pc2nDs24gY3LDrXRpY2FcIixcbiAgICAgIFwibcOzYmlsXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhZG9yYVwiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpZXN0YWRvXCIsXG4gICAgICBcIm11bHRpdGFyZWFcIixcbiAgICAgIFwibmFjaW9uYWxcIixcbiAgICAgIFwiYmFzYWRvIGVuIG5lY2VzaWRhZGVzXCIsXG4gICAgICBcIm5ldXRyYWxcIixcbiAgICAgIFwibnVldmEgZ2VuZXJhY2nDs25cIixcbiAgICAgIFwibm8tdm9sw6F0aWxcIixcbiAgICAgIFwib3JpZW50YWRvIGEgb2JqZXRvc1wiLFxuICAgICAgXCLDs3B0aW1hXCIsXG4gICAgICBcIm9wdGltaXphZGFcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJ0aWVtcG8gcmVhbFwiLFxuICAgICAgXCJyZWPDrXByb2NhXCIsXG4gICAgICBcInJlZ2lvbmFsXCIsXG4gICAgICBcImVzY2FsYWJsZVwiLFxuICAgICAgXCJzZWN1bmRhcmlhXCIsXG4gICAgICBcIm9yaWVudGFkYSBhIHNvbHVjaW9uZXNcIixcbiAgICAgIFwiZXN0YWJsZVwiLFxuICAgICAgXCJlc3RhdGljYVwiLFxuICAgICAgXCJzaXN0ZW3DoXRpY2FcIixcbiAgICAgIFwic2lzdMOpbWljYVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJjaWFyaWFcIixcbiAgICAgIFwidHJhbnNpY2lvbmFsXCIsXG4gICAgICBcInVuaWZvcm1lXCIsXG4gICAgICBcInZhbG9yIGHDsWFkaWRvXCIsXG4gICAgICBcInbDrWEgd2ViXCIsXG4gICAgICBcImRlZmVjdG9zIGNlcm9cIixcbiAgICAgIFwidG9sZXJhbmNpYSBjZXJvXCJcbiAgICBdLFxuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiQWRhcHRhdGl2b1wiLFxuICAgICAgXCJBdmFuemFkb1wiLFxuICAgICAgXCJBc2ltaWxhZG9cIixcbiAgICAgIFwiQXV0b21hdGl6YWRvXCIsXG4gICAgICBcIkVxdWlsaWJyYWRvXCIsXG4gICAgICBcIkNlbnRyYWRvIGVuIGVsIG5lZ29jaW9cIixcbiAgICAgIFwiQ2VudHJhbGl6YWRvXCIsXG4gICAgICBcIkNsb25hZG9cIixcbiAgICAgIFwiQ29tcGF0aWJsZVwiLFxuICAgICAgXCJDb25maWd1cmFibGVcIixcbiAgICAgIFwiTXVsdGkgZ3J1cG9cIixcbiAgICAgIFwiTXVsdGkgcGxhdGFmb3JtYVwiLFxuICAgICAgXCJDZW50cmFkbyBlbiBlbCB1c3VhcmlvXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJEZXNjZW50cmFsaXphZG9cIixcbiAgICAgIFwiRGlnaXRhbGl6YWRvXCIsXG4gICAgICBcIkRpc3RyaWJ1aWRvXCIsXG4gICAgICBcIkRpdmVyc29cIixcbiAgICAgIFwiUmVkdWNpZG9cIixcbiAgICAgIFwiTWVqb3JhZG9cIixcbiAgICAgIFwiUGFyYSB0b2RhIGxhIGVtcHJlc2FcIixcbiAgICAgIFwiRXJnb25vbWljb1wiLFxuICAgICAgXCJFeGNsdXNpdm9cIixcbiAgICAgIFwiRXhwYW5kaWRvXCIsXG4gICAgICBcIkV4dGVuZGlkb1wiLFxuICAgICAgXCJDYXJhIGEgY2FyYVwiLFxuICAgICAgXCJFbmZvY2Fkb1wiLFxuICAgICAgXCJUb3RhbG1lbnRlIGNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJPcsOtZ2VuZXNcIixcbiAgICAgIFwiSG9yaXpvbnRhbFwiLFxuICAgICAgXCJJbXBsZW1lbnRhZG9cIixcbiAgICAgIFwiSW5ub3ZhZG9yXCIsXG4gICAgICBcIkludGVncmFkb1wiLFxuICAgICAgXCJJbnR1aXRpdm9cIixcbiAgICAgIFwiSW52ZXJzb1wiLFxuICAgICAgXCJHZXN0aW9uYWRvXCIsXG4gICAgICBcIk9ibGlnYXRvcmlvXCIsXG4gICAgICBcIk1vbml0b3JpemFkb1wiLFxuICAgICAgXCJNdWx0aSBjYW5hbFwiLFxuICAgICAgXCJNdWx0aSBsYXRlcmFsXCIsXG4gICAgICBcIk11bHRpIGNhcGFcIixcbiAgICAgIFwiRW4gcmVkXCIsXG4gICAgICBcIk9yaWVudGFkbyBhIG9iamV0b3NcIixcbiAgICAgIFwiT3Blbi1zb3VyY2VcIixcbiAgICAgIFwiT3BlcmF0aXZvXCIsXG4gICAgICBcIk9wdGltaXphZG9cIixcbiAgICAgIFwiT3BjaW9uYWxcIixcbiAgICAgIFwiT3JnYW5pY29cIixcbiAgICAgIFwiT3JnYW5pemFkb1wiLFxuICAgICAgXCJQZXJzZXZlcmFuZG9cIixcbiAgICAgIFwiUGVyc2lzdGVudGVcIixcbiAgICAgIFwiZW4gZmFzZXNcIixcbiAgICAgIFwiUG9sYXJpemFkb1wiLFxuICAgICAgXCJQcmUtZW1wdGl2b1wiLFxuICAgICAgXCJQcm9hY3Rpdm9cIixcbiAgICAgIFwiRW5mb2NhZG8gYSBiZW5maWNpb3NcIixcbiAgICAgIFwiUHJvZnVuZG9cIixcbiAgICAgIFwiUHJvZ3JhbWFibGVcIixcbiAgICAgIFwiUHJvZ3Jlc2l2b1wiLFxuICAgICAgXCJQdWJsaWMta2V5XCIsXG4gICAgICBcIkVuZm9jYWRvIGVuIGxhIGNhbGlkYWRcIixcbiAgICAgIFwiUmVhY3Rpdm9cIixcbiAgICAgIFwiUmVhbGluZWFkb1wiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXphZG9cIixcbiAgICAgIFwiUmUtaW1wbGVtZW50YWRvXCIsXG4gICAgICBcIlJlZHVjaWRvXCIsXG4gICAgICBcIkluZ2VuaWVyaWEgaW52ZXJzYVwiLFxuICAgICAgXCJSb2J1c3RvXCIsXG4gICAgICBcIkbDoWNpbFwiLFxuICAgICAgXCJTZWd1cm9cIixcbiAgICAgIFwiQXV0byBwcm9wb3JjaW9uYVwiLFxuICAgICAgXCJDb21wYXJ0aWJsZVwiLFxuICAgICAgXCJJbnRlcmNhbWJpYWJsZVwiLFxuICAgICAgXCJTaW5jcm9uaXphZG9cIixcbiAgICAgIFwiT3JpZW50YWRvIGEgZXF1aXBvc1wiLFxuICAgICAgXCJUb3RhbFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiTWVqb3JhZG9cIixcbiAgICAgIFwiQWN0dWFsaXphYmxlXCIsXG4gICAgICBcIkNlbnRyYWRvIGVuIGVsIHVzdWFyaW9cIixcbiAgICAgIFwiQW1pZ2FibGVcIixcbiAgICAgIFwiVmVyc2F0aWxcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcmlvXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0geSAje05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0geSAje05hbWUubGFzdF9uYW1lfSBBc29jaWFkb3NcIlxuICBdXG59O1xuZXMuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJlc1wiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwiY29tLmVzXCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZXMubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFkw6FuXCIsXG4gICAgXCJBZ3VzdMOtblwiLFxuICAgIFwiQWxiZXJ0b1wiLFxuICAgIFwiQWxlamFuZHJvXCIsXG4gICAgXCJBbGZvbnNvXCIsXG4gICAgXCJBbGZyZWRvXCIsXG4gICAgXCJBbmRyw6lzXCIsXG4gICAgXCJBbnRvbmlvXCIsXG4gICAgXCJBcm1hbmRvXCIsXG4gICAgXCJBcnR1cm9cIixcbiAgICBcIkJlbml0b1wiLFxuICAgIFwiQmVuamFtw61uXCIsXG4gICAgXCJCZXJuYXJkb1wiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDw6lzYXJcIixcbiAgICBcIkNsYXVkaW9cIixcbiAgICBcIkNsZW1lbnRlXCIsXG4gICAgXCJDcmlzdGlhblwiLFxuICAgIFwiQ3Jpc3RvYmFsXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIkRhdmlkXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRWR1YXJkb1wiLFxuICAgIFwiRW1pbGlvXCIsXG4gICAgXCJFbnJpcXVlXCIsXG4gICAgXCJFcm5lc3RvXCIsXG4gICAgXCJFc3RlYmFuXCIsXG4gICAgXCJGZWRlcmljb1wiLFxuICAgIFwiRmVsaXBlXCIsXG4gICAgXCJGZXJuYW5kb1wiLFxuICAgIFwiRnJhbmNpc2NvXCIsXG4gICAgXCJHYWJyaWVsXCIsXG4gICAgXCJHZXJhcmRvXCIsXG4gICAgXCJHZXJtw6FuXCIsXG4gICAgXCJHaWxiZXJ0b1wiLFxuICAgIFwiR29uemFsb1wiLFxuICAgIFwiR3JlZ29yaW9cIixcbiAgICBcIkd1aWxsZXJtb1wiLFxuICAgIFwiR3VzdGF2b1wiLFxuICAgIFwiSGVybsOhblwiLFxuICAgIFwiSG9tZXJvXCIsXG4gICAgXCJIb3JhY2lvXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJJZ25hY2lvXCIsXG4gICAgXCJKYWNvYm9cIixcbiAgICBcIkphaW1lXCIsXG4gICAgXCJKYXZpZXJcIixcbiAgICBcIkplcsOzbmltb1wiLFxuICAgIFwiSmVzw7pzXCIsXG4gICAgXCJKb2FxdcOtblwiLFxuICAgIFwiSm9yZ2VcIixcbiAgICBcIkpvcmdlIEx1aXNcIixcbiAgICBcIkpvc8OpXCIsXG4gICAgXCJKb3PDqSBFZHVhcmRvXCIsXG4gICAgXCJKb3PDqSBFbWlsaW9cIixcbiAgICBcIkpvc8OpIEx1aXNcIixcbiAgICBcIkpvc8OpIE1hcsOtYVwiLFxuICAgIFwiSnVhblwiLFxuICAgIFwiSnVhbiBDYXJsb3NcIixcbiAgICBcIkp1bGlvXCIsXG4gICAgXCJKdWxpbyBDw6lzYXJcIixcbiAgICBcIkxvcmVuem9cIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWlzIE1pZ3VlbFwiLFxuICAgIFwiTWFudWVsXCIsXG4gICAgXCJNYXJjbyBBbnRvbmlvXCIsXG4gICAgXCJNYXJjb3NcIixcbiAgICBcIk1hcmlhbm9cIixcbiAgICBcIk1hcmlvXCIsXG4gICAgXCJNYXJ0w61uXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWd1ZWwgw4FuZ2VsXCIsXG4gICAgXCJOaWNvbMOhc1wiLFxuICAgIFwiT2N0YXZpb1wiLFxuICAgIFwiw5NzY2FyXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGF0cmljaW9cIixcbiAgICBcIlBlZHJvXCIsXG4gICAgXCJSYWZhZWxcIixcbiAgICBcIlJhbWlyb1wiLFxuICAgIFwiUmFtw7NuXCIsXG4gICAgXCJSYcO6bFwiLFxuICAgIFwiUmljYXJkb1wiLFxuICAgIFwiUm9iZXJ0b1wiLFxuICAgIFwiUm9kcmlnb1wiLFxuICAgIFwiUnViw6luXCIsXG4gICAgXCJTYWx2YWRvclwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYW5jaG9cIixcbiAgICBcIlNhbnRpYWdvXCIsXG4gICAgXCJTZXJnaW9cIixcbiAgICBcIlRlb2Rvcm9cIixcbiAgICBcIlRpbW90ZW9cIixcbiAgICBcIlRvbcOhc1wiLFxuICAgIFwiVmljZW50ZVwiLFxuICAgIFwiVsOtY3RvclwiLFxuICAgIFwiQWRlbGFcIixcbiAgICBcIkFkcmlhbmFcIixcbiAgICBcIkFsZWphbmRyYVwiLFxuICAgIFwiQWxpY2lhXCIsXG4gICAgXCJBbWFsaWFcIixcbiAgICBcIkFuYVwiLFxuICAgIFwiQW5hIEx1aXNhXCIsXG4gICAgXCJBbmEgTWFyw61hXCIsXG4gICAgXCJBbmRyZWFcIixcbiAgICBcIkFuaXRhXCIsXG4gICAgXCLDgW5nZWxhXCIsXG4gICAgXCJBbnRvbmlhXCIsXG4gICAgXCJBcmlhZG5hXCIsXG4gICAgXCJCYXJiYXJhXCIsXG4gICAgXCJCZWF0cml6XCIsXG4gICAgXCJCZXJ0YVwiLFxuICAgIFwiQmxhbmNhXCIsXG4gICAgXCJDYXJpZGFkXCIsXG4gICAgXCJDYXJsYVwiLFxuICAgIFwiQ2FybG90YVwiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJvbGluYVwiLFxuICAgIFwiQ2F0YWxpbmFcIixcbiAgICBcIkNlY2lsaWFcIixcbiAgICBcIkNsYXJhXCIsXG4gICAgXCJDbGF1ZGlhXCIsXG4gICAgXCJDb25jZXBjacOzblwiLFxuICAgIFwiQ29uY2hpdGFcIixcbiAgICBcIkNyaXN0aW5hXCIsXG4gICAgXCJEYW5pZWxhXCIsXG4gICAgXCJEw6lib3JhXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRG9sb3Jlc1wiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiRG9yb3RlYVwiLFxuICAgIFwiRWxlbmFcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJFbG9pc2FcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVsdmlyYVwiLFxuICAgIFwiRW1pbGlhXCIsXG4gICAgXCJFc3BlcmFuemFcIixcbiAgICBcIkVzdGVsYVwiLFxuICAgIFwiRXN0ZXJcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRmxvcmVuY2lhXCIsXG4gICAgXCJGcmFuY2lzY2FcIixcbiAgICBcIkdhYnJpZWxhXCIsXG4gICAgXCJHbG9yaWFcIixcbiAgICBcIkdyYWNpZWxhXCIsXG4gICAgXCJHdWFkYWx1cGVcIixcbiAgICBcIkd1aWxsZXJtaW5hXCIsXG4gICAgXCJJbsOpc1wiLFxuICAgIFwiSXJlbmVcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNhYmVsYVwiLFxuICAgIFwiSm9zZWZpbmFcIixcbiAgICBcIkp1YW5hXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkxlb25vclwiLFxuICAgIFwiTGV0aWNpYVwiLFxuICAgIFwiTGlsaWFcIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG91cmRlc1wiLFxuICAgIFwiTHVjaWFcIixcbiAgICBcIkx1aXNhXCIsXG4gICAgXCJMdXpcIixcbiAgICBcIk1hZ2RhbGVuYVwiLFxuICAgIFwiTWFudWVsYVwiLFxuICAgIFwiTWFyY2VsYVwiLFxuICAgIFwiTWFyZ2FyaXRhXCIsXG4gICAgXCJNYXLDrWFcIixcbiAgICBcIk1hcsOtYSBkZWwgQ2FybWVuXCIsXG4gICAgXCJNYXLDrWEgQ3Jpc3RpbmFcIixcbiAgICBcIk1hcsOtYSBFbGVuYVwiLFxuICAgIFwiTWFyw61hIEV1Z2VuaWFcIixcbiAgICBcIk1hcsOtYSBKb3PDqVwiLFxuICAgIFwiTWFyw61hIEx1aXNhXCIsXG4gICAgXCJNYXLDrWEgU29sZWRhZFwiLFxuICAgIFwiTWFyw61hIFRlcmVzYVwiLFxuICAgIFwiTWFyaWFuYVwiLFxuICAgIFwiTWFyaWNhcm1lblwiLFxuICAgIFwiTWFyaWx1XCIsXG4gICAgXCJNYXJpc29sXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWF5dGVcIixcbiAgICBcIk1lcmNlZGVzXCIsXG4gICAgXCJNaWNhZWxhXCIsXG4gICAgXCJNw7NuaWNhXCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOb3JtYVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJQYXRyaWNpYVwiLFxuICAgIFwiUGlsYXJcIixcbiAgICBcIlJhbW9uYVwiLFxuICAgIFwiUmFxdWVsXCIsXG4gICAgXCJSZWJlY2FcIixcbiAgICBcIlJlaW5hXCIsXG4gICAgXCJSb2Npb1wiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zYWxpYVwiLFxuICAgIFwiUm9zYXJpb1wiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2lsdmlhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiU29sZWRhZFwiLFxuICAgIFwiU29uaWFcIixcbiAgICBcIlN1c2FuYVwiLFxuICAgIFwiVGVyZXNhXCIsXG4gICAgXCJWZXLDs25pY2FcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJWaXJnaW5pYVwiLFxuICAgIFwiWW9sYW5kYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkFiZXl0YVwiLFxuICAgIFwiQWJyZWdvXCIsXG4gICAgXCJBYnJldVwiLFxuICAgIFwiQWNldmVkb1wiLFxuICAgIFwiQWNvc3RhXCIsXG4gICAgXCJBY3XDsWFcIixcbiAgICBcIkFkYW1lXCIsXG4gICAgXCJBZG9ybm9cIixcbiAgICBcIkFnb3N0b1wiLFxuICAgIFwiQWd1YXlvXCIsXG4gICAgXCLDgWd1aWxhclwiLFxuICAgIFwiQWd1aWxlcmFcIixcbiAgICBcIkFndWlycmVcIixcbiAgICBcIkFsYW5pc1wiLFxuICAgIFwiQWxhbml6XCIsXG4gICAgXCJBbGFyY8OzblwiLFxuICAgIFwiQWxiYVwiLFxuICAgIFwiQWxjYWxhXCIsXG4gICAgXCJBbGPDoW50YXJcIixcbiAgICBcIkFsY2FyYXpcIixcbiAgICBcIkFsZWphbmRyb1wiLFxuICAgIFwiQWxlbcOhblwiLFxuICAgIFwiQWxmYXJvXCIsXG4gICAgXCJBbGljZWFcIixcbiAgICBcIkFsbWFuemFcIixcbiAgICBcIkFsbWFyYXpcIixcbiAgICBcIkFsbW9udGVcIixcbiAgICBcIkFsb25zb1wiLFxuICAgIFwiQWxvbnpvXCIsXG4gICAgXCJBbHRhbWlyYW5vXCIsXG4gICAgXCJBbHZhXCIsXG4gICAgXCJBbHZhcmFkb1wiLFxuICAgIFwiQWx2YXJlelwiLFxuICAgIFwiQW1hZG9yXCIsXG4gICAgXCJBbWF5YVwiLFxuICAgIFwiQW5heWFcIixcbiAgICBcIkFuZ3VpYW5vXCIsXG4gICAgXCJBbmd1bG9cIixcbiAgICBcIkFwYXJpY2lvXCIsXG4gICAgXCJBcG9kYWNhXCIsXG4gICAgXCJBcG9udGVcIixcbiAgICBcIkFyYWfDs25cIixcbiAgICBcIkFyYcOxYVwiLFxuICAgIFwiQXJhbmRhXCIsXG4gICAgXCJBcmNlXCIsXG4gICAgXCJBcmNodWxldGFcIixcbiAgICBcIkFyZWxsYW5vXCIsXG4gICAgXCJBcmVuYXNcIixcbiAgICBcIkFyZXZhbG9cIixcbiAgICBcIkFyZ3VlbGxvXCIsXG4gICAgXCJBcmlhc1wiLFxuICAgIFwiQXJtYXNcIixcbiAgICBcIkFybWVuZMOhcml6XCIsXG4gICAgXCJBcm1lbnRhXCIsXG4gICAgXCJBcm1pam9cIixcbiAgICBcIkFycmVkb25kb1wiLFxuICAgIFwiQXJyZW9sYVwiLFxuICAgIFwiQXJyaWFnYVwiLFxuICAgIFwiQXJyb3lvXCIsXG4gICAgXCJBcnRlYWdhXCIsXG4gICAgXCJBdGVuY2lvXCIsXG4gICAgXCLDgXZhbG9zXCIsXG4gICAgXCLDgXZpbGFcIixcbiAgICBcIkF2aWzDqXNcIixcbiAgICBcIkF5YWxhXCIsXG4gICAgXCJCYWNhXCIsXG4gICAgXCJCYWRpbGxvXCIsXG4gICAgXCJCw6FlelwiLFxuICAgIFwiQmFlemFcIixcbiAgICBcIkJhaGVuYVwiLFxuICAgIFwiQmFsZGVyYXNcIixcbiAgICBcIkJhbGxlc3Rlcm9zXCIsXG4gICAgXCJCYW5kYVwiLFxuICAgIFwiQmHDsXVlbG9zXCIsXG4gICAgXCJCYXJhamFzXCIsXG4gICAgXCJCYXJlbGFcIixcbiAgICBcIkJhcnJhZ8OhblwiLFxuICAgIFwiQmFycmF6YVwiLFxuICAgIFwiQmFycmVyYVwiLFxuICAgIFwiQmFycmV0b1wiLFxuICAgIFwiQmFycmllbnRvc1wiLFxuICAgIFwiQmFycmlvc1wiLFxuICAgIFwiQmF0aXN0YVwiLFxuICAgIFwiQmVjZXJyYVwiLFxuICAgIFwiQmVsdHLDoW5cIixcbiAgICBcIkJlbmF2aWRlc1wiLFxuICAgIFwiQmVuYXbDrWRlelwiLFxuICAgIFwiQmVuw610ZXpcIixcbiAgICBcIkJlcm3DumRlelwiLFxuICAgIFwiQmVybmFsXCIsXG4gICAgXCJCZXJyw61vc1wiLFxuICAgIFwiQsOpdGFuY291cnRcIixcbiAgICBcIkJsYW5jb1wiLFxuICAgIFwiQm9uaWxsYVwiLFxuICAgIFwiQm9ycmVnb1wiLFxuICAgIFwiQm90ZWxsb1wiLFxuICAgIFwiQnJhdm9cIixcbiAgICBcIkJyaW9uZXNcIixcbiAgICBcIkJyaXNlw7FvXCIsXG4gICAgXCJCcml0b1wiLFxuICAgIFwiQnVlbm9cIixcbiAgICBcIkJ1cmdvc1wiLFxuICAgIFwiQnVzdGFtYW50ZVwiLFxuICAgIFwiQnVzdG9zXCIsXG4gICAgXCJDYWJhbGxlcm9cIixcbiAgICBcIkNhYsOhblwiLFxuICAgIFwiQ2FicmVyYVwiLFxuICAgIFwiQ2FkZW5hXCIsXG4gICAgXCJDYWxkZXJhXCIsXG4gICAgXCJDYWxkZXLDs25cIixcbiAgICBcIkNhbHZpbGxvXCIsXG4gICAgXCJDYW1hY2hvXCIsXG4gICAgXCJDYW1hcmlsbG9cIixcbiAgICBcIkNhbXBvc1wiLFxuICAgIFwiQ2FuYWxlc1wiLFxuICAgIFwiQ2FuZGVsYXJpYVwiLFxuICAgIFwiQ2Fub1wiLFxuICAgIFwiQ2FudMO6XCIsXG4gICAgXCJDYXJhYmFsbG9cIixcbiAgICBcIkNhcmJhamFsXCIsXG4gICAgXCJDYXJkZW5hc1wiLFxuICAgIFwiQ2FyZG9uYVwiLFxuICAgIFwiQ2FybW9uYVwiLFxuICAgIFwiQ2FycmFuemFcIixcbiAgICBcIkNhcnJhc2NvXCIsXG4gICAgXCJDYXJyYXNxdWlsbG9cIixcbiAgICBcIkNhcnJlw7NuXCIsXG4gICAgXCJDYXJyZXJhXCIsXG4gICAgXCJDYXJyZXJvXCIsXG4gICAgXCJDYXJyaWxsb1wiLFxuICAgIFwiQ2FycmlvblwiLFxuICAgIFwiQ2FydmFqYWxcIixcbiAgICBcIkNhc2Fub3ZhXCIsXG4gICAgXCJDYXNhcmVzXCIsXG4gICAgXCJDYXPDoXJlelwiLFxuICAgIFwiQ2FzYXNcIixcbiAgICBcIkNhc2lsbGFzXCIsXG4gICAgXCJDYXN0YcOxZWRhXCIsXG4gICAgXCJDYXN0ZWxsYW5vc1wiLFxuICAgIFwiQ2FzdGlsbG9cIixcbiAgICBcIkNhc3Ryb1wiLFxuICAgIFwiQ2F2YXpvc1wiLFxuICAgIFwiQ2F6YXJlc1wiLFxuICAgIFwiQ2ViYWxsb3NcIixcbiAgICBcIkNlZGlsbG9cIixcbiAgICBcIkNlamFcIixcbiAgICBcIkNlbnRlbm9cIixcbiAgICBcIkNlcGVkYVwiLFxuICAgIFwiQ2VyZGFcIixcbiAgICBcIkNlcnZhbnRlc1wiLFxuICAgIFwiQ2VydsOhbnRlelwiLFxuICAgIFwiQ2hhY8OzblwiLFxuICAgIFwiQ2hhcGFcIixcbiAgICBcIkNoYXZhcnLDrWFcIixcbiAgICBcIkNow6F2ZXpcIixcbiAgICBcIkNpbnRyw7NuXCIsXG4gICAgXCJDaXNuZXJvc1wiLFxuICAgIFwiQ29sbGFkb1wiLFxuICAgIFwiQ29sbGF6b1wiLFxuICAgIFwiQ29sw7NuXCIsXG4gICAgXCJDb2x1bmdhXCIsXG4gICAgXCJDb25jZXBjacOzblwiLFxuICAgIFwiQ29udHJlcmFzXCIsXG4gICAgXCJDb3JkZXJvXCIsXG4gICAgXCJDw7NyZG92YVwiLFxuICAgIFwiQ29ybmVqb1wiLFxuICAgIFwiQ29yb25hXCIsXG4gICAgXCJDb3JvbmFkb1wiLFxuICAgIFwiQ29ycmFsXCIsXG4gICAgXCJDb3JyYWxlc1wiLFxuICAgIFwiQ29ycmVhXCIsXG4gICAgXCJDb3J0w6lzXCIsXG4gICAgXCJDb3J0ZXpcIixcbiAgICBcIkNvdHRvXCIsXG4gICAgXCJDb3ZhcnJ1Ymlhc1wiLFxuICAgIFwiQ3Jlc3BvXCIsXG4gICAgXCJDcnV6XCIsXG4gICAgXCJDdWVsbGFyXCIsXG4gICAgXCJDdXJpZWxcIixcbiAgICBcIkTDoXZpbGFcIixcbiAgICBcImRlIEFuZGFcIixcbiAgICBcImRlIEplc8O6c1wiLFxuICAgIFwiRGVsYWNyw7p6XCIsXG4gICAgXCJEZWxhZnVlbnRlXCIsXG4gICAgXCJEZWxhZ2FyemFcIixcbiAgICBcIkRlbGFvXCIsXG4gICAgXCJEZWxhcGF6XCIsXG4gICAgXCJEZWxhcm9zYVwiLFxuICAgIFwiRGVsYXRvcnJlXCIsXG4gICAgXCJEZWxlw7NuXCIsXG4gICAgXCJEZWxnYWRpbGxvXCIsXG4gICAgXCJEZWxnYWRvXCIsXG4gICAgXCJEZWxyw61vXCIsXG4gICAgXCJEZWx2YWxsZVwiLFxuICAgIFwiRMOtYXpcIixcbiAgICBcIkRvbcOtbmd1ZXpcIixcbiAgICBcIkRvbcOtbnF1ZXpcIixcbiAgICBcIkR1YXJ0ZVwiLFxuICAgIFwiRHVlw7Fhc1wiLFxuICAgIFwiRHVyYW5cIixcbiAgICBcIkVjaGV2YXJyw61hXCIsXG4gICAgXCJFbGl6b25kb1wiLFxuICAgIFwiRW5yw61xdWV6XCIsXG4gICAgXCJFc2NhbGFudGVcIixcbiAgICBcIkVzY2FtaWxsYVwiLFxuICAgIFwiRXNjb2JhclwiLFxuICAgIFwiRXNjb2JlZG9cIixcbiAgICBcIkVzcGFyemFcIixcbiAgICBcIkVzcGluYWxcIixcbiAgICBcIkVzcGlub1wiLFxuICAgIFwiRXNwaW5vc2FcIixcbiAgICBcIkVzcGlub3phXCIsXG4gICAgXCJFc3F1aWJlbFwiLFxuICAgIFwiRXNxdWl2ZWxcIixcbiAgICBcIkVzdMOpdmV6XCIsXG4gICAgXCJFc3RyYWRhXCIsXG4gICAgXCJGYWphcmRvXCIsXG4gICAgXCJGYXLDrWFzXCIsXG4gICAgXCJGZWxpY2lhbm9cIixcbiAgICBcIkZlcm7DoW5kZXpcIixcbiAgICBcIkZlcnJlclwiLFxuICAgIFwiRmllcnJvXCIsXG4gICAgXCJGaWd1ZXJvYVwiLFxuICAgIFwiRmxvcmVzXCIsXG4gICAgXCJGbMOzcmV6XCIsXG4gICAgXCJGb25zZWNhXCIsXG4gICAgXCJGcmFuY29cIixcbiAgICBcIkZyw61hc1wiLFxuICAgIFwiRnVlbnRlc1wiLFxuICAgIFwiR2FpdMOhblwiLFxuICAgIFwiR2FsYXJ6YVwiLFxuICAgIFwiR2FsaW5kb1wiLFxuICAgIFwiR2FsbGFyZG9cIixcbiAgICBcIkdhbGxlZ29zXCIsXG4gICAgXCJHYWx2w6FuXCIsXG4gICAgXCJHw6FsdmV6XCIsXG4gICAgXCJHYW1ib2FcIixcbiAgICBcIkdhbWV6XCIsXG4gICAgXCJHYW9uYVwiLFxuICAgIFwiR2FyYXlcIixcbiAgICBcIkdhcmPDrWFcIixcbiAgICBcIkdhcmliYXlcIixcbiAgICBcIkdhcmljYVwiLFxuICAgIFwiR2Fycmlkb1wiLFxuICAgIFwiR2FyemFcIixcbiAgICBcIkdhc3TDqWx1bVwiLFxuICAgIFwiR2F5dMOhblwiLFxuICAgIFwiR2lsXCIsXG4gICAgXCJHaXLDs25cIixcbiAgICBcIkdvZMOtbmV6XCIsXG4gICAgXCJHb2RveVwiLFxuICAgIFwiR8OzbWV6XCIsXG4gICAgXCJHb256YWxlc1wiLFxuICAgIFwiR29uesOhbGV6XCIsXG4gICAgXCJHb2xsdW1cIixcbiAgICBcIkdyYWNpYVwiLFxuICAgIFwiR3JhbmFkb1wiLFxuICAgIFwiR3JhbmFkb3NcIixcbiAgICBcIkdyaWVnb1wiLFxuICAgIFwiR3JpamFsdmFcIixcbiAgICBcIkd1YWphcmRvXCIsXG4gICAgXCJHdWFyZGFkb1wiLFxuICAgIFwiR3VlcnJhXCIsXG4gICAgXCJHdWVycmVyb1wiLFxuICAgIFwiR3VldmFyYVwiLFxuICAgIFwiR3VpbGxlblwiLFxuICAgIFwiR3VydWxlXCIsXG4gICAgXCJHdXRpw6lycmV6XCIsXG4gICAgXCJHdXptw6FuXCIsXG4gICAgXCJIYXJvXCIsXG4gICAgXCJIZW5yw61xdWV6XCIsXG4gICAgXCJIZXJlZGlhXCIsXG4gICAgXCJIZXJuw6FkZXpcIixcbiAgICBcIkhlcm5hbmRlc1wiLFxuICAgIFwiSGVybsOhbmRlelwiLFxuICAgIFwiSGVycmVyYVwiLFxuICAgIFwiSGlkYWxnb1wiLFxuICAgIFwiSGlub2pvc2FcIixcbiAgICBcIkhvbGd1w61uXCIsXG4gICAgXCJIdWVydGFcIixcbiAgICBcIkh1cnRhZG9cIixcbiAgICBcIkliYXJyYVwiLFxuICAgIFwiSWdsZXNpYXNcIixcbiAgICBcIklyaXphcnJ5XCIsXG4gICAgXCJKYWltZVwiLFxuICAgIFwiSmFpbWVzXCIsXG4gICAgXCJKw6FxdWV6XCIsXG4gICAgXCJKYXJhbWlsbG9cIixcbiAgICBcIkphc3NvXCIsXG4gICAgXCJKaW3DqW5lelwiLFxuICAgIFwiSmltw61uZXpcIixcbiAgICBcIkp1w6FyZXpcIixcbiAgICBcIkp1cmFkb1wiLFxuICAgIFwiTGFib3lcIixcbiAgICBcIkxhcmFcIixcbiAgICBcIkxhdXJlYW5vXCIsXG4gICAgXCJMZWFsXCIsXG4gICAgXCJMZWJyw7NuXCIsXG4gICAgXCJMZWRlc21hXCIsXG4gICAgXCJMZWl2YVwiLFxuICAgIFwiTGVtdXNcIixcbiAgICBcIkxlw7NuXCIsXG4gICAgXCJMZXJtYVwiLFxuICAgIFwiTGV5dmFcIixcbiAgICBcIkxpbcOzblwiLFxuICAgIFwiTGluYXJlc1wiLFxuICAgIFwiTGlyYVwiLFxuICAgIFwiTGxhbWFzXCIsXG4gICAgXCJMb2VyYVwiLFxuICAgIFwiTG9tZWxpXCIsXG4gICAgXCJMb25nb3JpYVwiLFxuICAgIFwiTMOzcGV6XCIsXG4gICAgXCJMb3ZhdG9cIixcbiAgICBcIkxveWFcIixcbiAgICBcIkxvemFkYVwiLFxuICAgIFwiTG96YW5vXCIsXG4gICAgXCJMdWNlcm9cIixcbiAgICBcIkx1Y2lvXCIsXG4gICAgXCJMdWV2YW5vXCIsXG4gICAgXCJMdWdvXCIsXG4gICAgXCJMdW5hXCIsXG4gICAgXCJNYWPDrWFzXCIsXG4gICAgXCJNYWRlcmFcIixcbiAgICBcIk1hZHJpZFwiLFxuICAgIFwiTWFkcmlnYWxcIixcbiAgICBcIk1hZXN0YXNcIixcbiAgICBcIk1hZ2HDsWFcIixcbiAgICBcIk1hbGF2ZVwiLFxuICAgIFwiTWFsZG9uYWRvXCIsXG4gICAgXCJNYW56YW5hcmVzXCIsXG4gICAgXCJNYXJlc1wiLFxuICAgIFwiTWFyw61uXCIsXG4gICAgXCJNw6FycXVlelwiLFxuICAgIFwiTWFycmVyb1wiLFxuICAgIFwiTWFycm9xdcOtblwiLFxuICAgIFwiTWFydMOtbmV6XCIsXG4gICAgXCJNYXNjYXJlw7Fhc1wiLFxuICAgIFwiTWF0YVwiLFxuICAgIFwiTWF0ZW9cIixcbiAgICBcIk1hdMOtYXNcIixcbiAgICBcIk1hdG9zXCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJNYXlvcmdhXCIsXG4gICAgXCJNZWRpbmFcIixcbiAgICBcIk1lZHJhbm9cIixcbiAgICBcIk1lasOtYVwiLFxuICAgIFwiTWVsw6luZGV6XCIsXG4gICAgXCJNZWxnYXJcIixcbiAgICBcIk1lbmFcIixcbiAgICBcIk1lbmNoYWNhXCIsXG4gICAgXCJNw6luZGV6XCIsXG4gICAgXCJNZW5kb3phXCIsXG4gICAgXCJNZW7DqW5kZXpcIixcbiAgICBcIk1lcmF6XCIsXG4gICAgXCJNZXJjYWRvXCIsXG4gICAgXCJNZXJpbm9cIixcbiAgICBcIk1lc2FcIixcbiAgICBcIk1lemFcIixcbiAgICBcIk1pcmFtb250ZXNcIixcbiAgICBcIk1pcmFuZGFcIixcbiAgICBcIk1pcmVsZXNcIixcbiAgICBcIk1vamljYVwiLFxuICAgIFwiTW9saW5hXCIsXG4gICAgXCJNb25kcmFnw7NuXCIsXG4gICAgXCJNb25yb3lcIixcbiAgICBcIk1vbnRhbHZvXCIsXG4gICAgXCJNb250YcOxZXpcIixcbiAgICBcIk1vbnRhw7FvXCIsXG4gICAgXCJNb250ZW1heW9yXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250ZXJvXCIsXG4gICAgXCJNb250ZXNcIixcbiAgICBcIk1vbnRlelwiLFxuICAgIFwiTW9udG95YVwiLFxuICAgIFwiTW9yYVwiLFxuICAgIFwiTW9yYWxlc1wiLFxuICAgIFwiTW9yZW5vXCIsXG4gICAgXCJNb3RhXCIsXG4gICAgXCJNb3lhXCIsXG4gICAgXCJNdW5ndcOtYVwiLFxuICAgIFwiTXXDsWl6XCIsXG4gICAgXCJNdcOxb3pcIixcbiAgICBcIk11cmlsbG9cIixcbiAgICBcIk11cm9cIixcbiAgICBcIk7DoWplcmFcIixcbiAgICBcIk5hcmFuam9cIixcbiAgICBcIk5hcnbDoWV6XCIsXG4gICAgXCJOYXZhXCIsXG4gICAgXCJOYXZhcnJldGVcIixcbiAgICBcIk5hdmFycm9cIixcbiAgICBcIk5hemFyaW9cIixcbiAgICBcIk5lZ3JldGVcIixcbiAgICBcIk5lZ3LDs25cIixcbiAgICBcIk5ldsOhcmV6XCIsXG4gICAgXCJOaWV0b1wiLFxuICAgIFwiTmlldmVzXCIsXG4gICAgXCJOacOxb1wiLFxuICAgIFwiTm9yaWVnYVwiLFxuICAgIFwiTsO6w7FlelwiLFxuICAgIFwiT2NhbXBvXCIsXG4gICAgXCJPY2FzaW9cIixcbiAgICBcIk9jaG9hXCIsXG4gICAgXCJPamVkYVwiLFxuICAgIFwiT2xpdmFyZXNcIixcbiAgICBcIk9saXbDoXJlelwiLFxuICAgIFwiT2xpdmFzXCIsXG4gICAgXCJPbGl2ZXJhXCIsXG4gICAgXCJPbGl2b1wiLFxuICAgIFwiT2xtb3NcIixcbiAgICBcIk9sdmVyYVwiLFxuICAgIFwiT250aXZlcm9zXCIsXG4gICAgXCJPcXVlbmRvXCIsXG4gICAgXCJPcmTDs8OxZXpcIixcbiAgICBcIk9yZWxsYW5hXCIsXG4gICAgXCJPcm5lbGFzXCIsXG4gICAgXCJPcm9zY29cIixcbiAgICBcIk9yb3pjb1wiLFxuICAgIFwiT3J0YVwiLFxuICAgIFwiT3J0ZWdhXCIsXG4gICAgXCJPcnRpelwiLFxuICAgIFwiT3NvcmlvXCIsXG4gICAgXCJPdGVyb1wiLFxuICAgIFwiT3p1bmFcIixcbiAgICBcIlBhYsOzblwiLFxuICAgIFwiUGFjaGVjb1wiLFxuICAgIFwiUGFkaWxsYVwiLFxuICAgIFwiUGFkcsOzblwiLFxuICAgIFwiUMOhZXpcIixcbiAgICBcIlBhZ2FuXCIsXG4gICAgXCJQYWxhY2lvc1wiLFxuICAgIFwiUGFsb21pbm9cIixcbiAgICBcIlBhbG9tb1wiLFxuICAgIFwiUGFudG9qYVwiLFxuICAgIFwiUGFyZWRlc1wiLFxuICAgIFwiUGFycmFcIixcbiAgICBcIlBhcnRpZGFcIixcbiAgICBcIlBhdGnDsW9cIixcbiAgICBcIlBhelwiLFxuICAgIFwiUGVkcmF6YVwiLFxuICAgIFwiUGVkcm96YVwiLFxuICAgIFwiUGVsYXlvXCIsXG4gICAgXCJQZcOxYVwiLFxuICAgIFwiUGVyYWxlc1wiLFxuICAgIFwiUGVyYWx0YVwiLFxuICAgIFwiUGVyZWFcIixcbiAgICBcIlBlcmVzXCIsXG4gICAgXCJQw6lyZXpcIixcbiAgICBcIlBpY2hhcmRvXCIsXG4gICAgXCJQacOxYVwiLFxuICAgIFwiUGluZWRhXCIsXG4gICAgXCJQaXphcnJvXCIsXG4gICAgXCJQb2xhbmNvXCIsXG4gICAgXCJQb25jZVwiLFxuICAgIFwiUG9ycmFzXCIsXG4gICAgXCJQb3J0aWxsb1wiLFxuICAgIFwiUG9zYWRhXCIsXG4gICAgXCJQcmFkb1wiLFxuICAgIFwiUHJlY2lhZG9cIixcbiAgICBcIlByaWV0b1wiLFxuICAgIFwiUHVlbnRlXCIsXG4gICAgXCJQdWdhXCIsXG4gICAgXCJQdWxpZG9cIixcbiAgICBcIlF1ZXNhZGFcIixcbiAgICBcIlF1ZXphZGFcIixcbiAgICBcIlF1acOxb25lc1wiLFxuICAgIFwiUXVpw7HDs25lelwiLFxuICAgIFwiUXVpbnRhbmFcIixcbiAgICBcIlF1aW50YW5pbGxhXCIsXG4gICAgXCJRdWludGVyb1wiLFxuICAgIFwiUXVpcm96XCIsXG4gICAgXCJSYWVsXCIsXG4gICAgXCJSYW3DrXJlelwiLFxuICAgIFwiUmFtw7NuXCIsXG4gICAgXCJSYW1vc1wiLFxuICAgIFwiUmFuZ2VsXCIsXG4gICAgXCJSYXNjw7NuXCIsXG4gICAgXCJSYXlhXCIsXG4gICAgXCJSYXpvXCIsXG4gICAgXCJSZWdhbGFkb1wiLFxuICAgIFwiUmVuZMOzblwiLFxuICAgIFwiUmVudGVyw61hXCIsXG4gICAgXCJSZXPDqW5kZXpcIixcbiAgICBcIlJleWVzXCIsXG4gICAgXCJSZXluYVwiLFxuICAgIFwiUmV5bm9zb1wiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUmluY8OzblwiLFxuICAgIFwiUmlvamFzXCIsXG4gICAgXCJSw61vc1wiLFxuICAgIFwiUml2YXNcIixcbiAgICBcIlJpdmVyYVwiLFxuICAgIFwiUml2ZXJvXCIsXG4gICAgXCJSb2JsZWRvXCIsXG4gICAgXCJSb2JsZXNcIixcbiAgICBcIlJvY2hhXCIsXG4gICAgXCJSb2RhcnRlXCIsXG4gICAgXCJSb2Ryw61nZXpcIixcbiAgICBcIlJvZHLDrWd1ZXpcIixcbiAgICBcIlJvZHLDrXF1ZXpcIixcbiAgICBcIlJvamFzXCIsXG4gICAgXCJSb2pvXCIsXG4gICAgXCJSb2xkw6FuXCIsXG4gICAgXCJSb2zDs25cIixcbiAgICBcIlJvbWVyb1wiLFxuICAgIFwiUm9tb1wiLFxuICAgIFwiUm9xdWVcIixcbiAgICBcIlJvc2Fkb1wiLFxuICAgIFwiUm9zYWxlc1wiLFxuICAgIFwiUm9zYXJpb1wiLFxuICAgIFwiUm9zYXNcIixcbiAgICBcIlJveWJhbFwiLFxuICAgIFwiUnViaW9cIixcbiAgICBcIlJ1ZWxhc1wiLFxuICAgIFwiUnVpelwiLFxuICAgIFwiU2FhdmVkcmFcIixcbiAgICBcIlPDoWVuelwiLFxuICAgIFwiU2FpelwiLFxuICAgIFwiU2FsYXNcIixcbiAgICBcIlNhbGF6YXJcIixcbiAgICBcIlNhbGNlZG9cIixcbiAgICBcIlNhbGNpZG9cIixcbiAgICBcIlNhbGRhw7FhXCIsXG4gICAgXCJTYWxkaXZhclwiLFxuICAgIFwiU2FsZ2Fkb1wiLFxuICAgIFwiU2FsaW5hc1wiLFxuICAgIFwiU2FtYW5pZWdvXCIsXG4gICAgXCJTYW5hYnJpYVwiLFxuICAgIFwiU2FuY2hlc1wiLFxuICAgIFwiU8OhbmNoZXpcIixcbiAgICBcIlNhbmRvdmFsXCIsXG4gICAgXCJTYW50YWNydXpcIixcbiAgICBcIlNhbnRhbmFcIixcbiAgICBcIlNhbnRpYWdvXCIsXG4gICAgXCJTYW50aWxsw6FuXCIsXG4gICAgXCJTYXJhYmlhXCIsXG4gICAgXCJTYXVjZWRhXCIsXG4gICAgXCJTYXVjZWRvXCIsXG4gICAgXCJTZWRpbGxvXCIsXG4gICAgXCJTZWdvdmlhXCIsXG4gICAgXCJTZWd1cmFcIixcbiAgICBcIlNlcMO6bHZlZGFcIixcbiAgICBcIlNlcm5hXCIsXG4gICAgXCJTZXJyYW5vXCIsXG4gICAgXCJTZXJyYXRvXCIsXG4gICAgXCJTZXZpbGxhXCIsXG4gICAgXCJTaWVycmFcIixcbiAgICBcIlNpc25lcm9zXCIsXG4gICAgXCJTb2xhbm9cIixcbiAgICBcIlNvbMOtc1wiLFxuICAgIFwiU29saXpcIixcbiAgICBcIlNvbG9yaW9cIixcbiAgICBcIlNvbG9yemFub1wiLFxuICAgIFwiU29yaWFcIixcbiAgICBcIlNvc2FcIixcbiAgICBcIlNvdGVsb1wiLFxuICAgIFwiU290b1wiLFxuICAgIFwiU3XDoXJlelwiLFxuICAgIFwiVGFmb3lhXCIsXG4gICAgXCJUYW1heW9cIixcbiAgICBcIlRhbWV6XCIsXG4gICAgXCJUYXBpYVwiLFxuICAgIFwiVGVqYWRhXCIsXG4gICAgXCJUZWplZGFcIixcbiAgICBcIlTDqWxsZXpcIixcbiAgICBcIlRlbGxvXCIsXG4gICAgXCJUZXLDoW5cIixcbiAgICBcIlRlcnJhemFzXCIsXG4gICAgXCJUaWplcmluYVwiLFxuICAgIFwiVGlyYWRvXCIsXG4gICAgXCJUb2xlZG9cIixcbiAgICBcIlRvcm9cIixcbiAgICBcIlRvcnJlc1wiLFxuICAgIFwiVMOzcnJlelwiLFxuICAgIFwiVG92YXJcIixcbiAgICBcIlRyZWpvXCIsXG4gICAgXCJUcmV2acOxb1wiLFxuICAgIFwiVHJ1amlsbG9cIixcbiAgICBcIlVsaWJhcnJpXCIsXG4gICAgXCJVbGxvYVwiLFxuICAgIFwiVXJiaW5hXCIsXG4gICAgXCJVcmXDsWFcIixcbiAgICBcIlVyw61hc1wiLFxuICAgIFwiVXJpYmVcIixcbiAgICBcIlVycnV0aWFcIixcbiAgICBcIlZhY2FcIixcbiAgICBcIlZhbGFkZXpcIixcbiAgICBcIlZhbGTDqXNcIixcbiAgICBcIlZhbGRlelwiLFxuICAgIFwiVmFsZGl2aWFcIixcbiAgICBcIlZhbGVuY2lhXCIsXG4gICAgXCJWYWxlbnTDrW5cIixcbiAgICBcIlZhbGVuenVlbGFcIixcbiAgICBcIlZhbGxhZGFyZXNcIixcbiAgICBcIlZhbGxlXCIsXG4gICAgXCJWYWxsZWpvXCIsXG4gICAgXCJWYWxsZXNcIixcbiAgICBcIlZhbHZlcmRlXCIsXG4gICAgXCJWYW5lZ2FzXCIsXG4gICAgXCJWYXJlbGFcIixcbiAgICBcIlZhcmdhc1wiLFxuICAgIFwiVsOhc3F1ZXpcIixcbiAgICBcIlbDoXpxdWV6XCIsXG4gICAgXCJWZWdhXCIsXG4gICAgXCJWZWxhXCIsXG4gICAgXCJWZWxhc2NvXCIsXG4gICAgXCJWZWzDoXNxdWV6XCIsXG4gICAgXCJWZWzDoXpxdWV6XCIsXG4gICAgXCJWw6lsZXpcIixcbiAgICBcIlbDqWxpelwiLFxuICAgIFwiVmVuZWdhc1wiLFxuICAgIFwiVmVyYVwiLFxuICAgIFwiVmVyZHVnb1wiLFxuICAgIFwiVmVyZHV6Y29cIixcbiAgICBcIlZlcmdhcmFcIixcbiAgICBcIlZpZXJhXCIsXG4gICAgXCJWaWdpbFwiLFxuICAgIFwiVmlsbGFcIixcbiAgICBcIlZpbGxhZ8OzbWV6XCIsXG4gICAgXCJWaWxsYWxvYm9zXCIsXG4gICAgXCJWaWxsYWxwYW5kb1wiLFxuICAgIFwiVmlsbGFudWV2YVwiLFxuICAgIFwiVmlsbGFyZWFsXCIsXG4gICAgXCJWaWxsYXJyZWFsXCIsXG4gICAgXCJWaWxsYXNlw7FvclwiLFxuICAgIFwiVmlsbGVnYXNcIixcbiAgICBcIlnDocOxZXpcIixcbiAgICBcIlliYXJyYVwiLFxuICAgIFwiWmFtYnJhbm9cIixcbiAgICBcIlphbW9yYVwiLFxuICAgIFwiWmFtdWRpb1wiLFxuICAgIFwiWmFwYXRhXCIsXG4gICAgXCJaYXJhZ296YVwiLFxuICAgIFwiWmFyYXRlXCIsXG4gICAgXCJaYXZhbGFcIixcbiAgICBcIlpheWFzXCIsXG4gICAgXCJaZWxheWFcIixcbiAgICBcIlplcGVkYVwiLFxuICAgIFwiWsO6w7FpZ2FcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJTci5cIixcbiAgICBcIlNyYS5cIixcbiAgICBcIlN0YS5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJKci5cIixcbiAgICBcIlNyLlwiLFxuICAgIFwiSVwiLFxuICAgIFwiSUlcIixcbiAgICBcIklJSVwiLFxuICAgIFwiSVZcIixcbiAgICBcIlZcIixcbiAgICBcIk1EXCIsXG4gICAgXCJERFNcIixcbiAgICBcIlBoRFwiLFxuICAgIFwiRFZNXCJcbiAgXSxcbiAgXCJ0aXRsZVwiOiB7XG4gICAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiSmVmZVwiLFxuICAgICAgXCJTZW5pb3JcIixcbiAgICAgIFwiRGlyZWN0b1wiLFxuICAgICAgXCJDb3Jwb3JhdGl2b1wiLFxuICAgICAgXCJEaW7DoW5taWNvXCIsXG4gICAgICBcIkZ1dHVyb1wiLFxuICAgICAgXCJQcm9kdWN0b1wiLFxuICAgICAgXCJOYWNpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cml0b1wiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDbGllbnRlXCIsXG4gICAgICBcIkludmVyc29yXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiSGVyZWRhZG9cIixcbiAgICAgIFwiQWRlbGFudGVcIixcbiAgICAgIFwiSW50ZXJub1wiLFxuICAgICAgXCJIdW1hbm9cIixcbiAgICAgIFwiR2VyZW50ZVwiLFxuICAgICAgXCJEaXJlY3RvclwiXG4gICAgXSxcbiAgICBcImxldmVsXCI6IFtcbiAgICAgIFwiU29sdWNpb25lc1wiLFxuICAgICAgXCJQcm9ncmFtYVwiLFxuICAgICAgXCJNYXJjYVwiLFxuICAgICAgXCJTZWd1cmlkYWRhXCIsXG4gICAgICBcIkludmVzdGlnYWNpw7NuXCIsXG4gICAgICBcIk1hcmtldGluZ1wiLFxuICAgICAgXCJOb3JtYXNcIixcbiAgICAgIFwiSW1wbGVtZW50YWNpw7NuXCIsXG4gICAgICBcIkludGVncmFjacOzblwiLFxuICAgICAgXCJGdW5jaW9uYWxpZGFkXCIsXG4gICAgICBcIlJlc3B1ZXN0YVwiLFxuICAgICAgXCJQYXJhZGlnbWFcIixcbiAgICAgIFwiVMOhY3RpY2FzXCIsXG4gICAgICBcIklkZW50aWRhZFwiLFxuICAgICAgXCJNZXJjYWRvc1wiLFxuICAgICAgXCJHcnVwb1wiLFxuICAgICAgXCJEaXZpc2nDs25cIixcbiAgICAgIFwiQXBsaWNhY2lvbmVzXCIsXG4gICAgICBcIk9wdGltaXphY2nDs25cIixcbiAgICAgIFwiT3BlcmFjaW9uZXNcIixcbiAgICAgIFwiSW5mcmFlc3RydWN0dXJhXCIsXG4gICAgICBcIkludHJhbmV0XCIsXG4gICAgICBcIkNvbXVuaWNhY2lvbmVzXCIsXG4gICAgICBcIldlYlwiLFxuICAgICAgXCJDYWxpZGFkXCIsXG4gICAgICBcIlNlZ3Vyb1wiLFxuICAgICAgXCJNb2JpbGlkYWRcIixcbiAgICAgIFwiQ3VlbnRhc1wiLFxuICAgICAgXCJEYXRvc1wiLFxuICAgICAgXCJDcmVhdGl2b1wiLFxuICAgICAgXCJDb25maWd1cmFjacOzblwiLFxuICAgICAgXCJDb250YWJpbGlkYWRcIixcbiAgICAgIFwiSW50ZXJhY2Npb25lc1wiLFxuICAgICAgXCJGYWN0b3Jlc1wiLFxuICAgICAgXCJVc2FiaWxpZGFkXCIsXG4gICAgICBcIk3DqXRyaWNhc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNvY2lhZG9cIixcbiAgICAgIFwiRWplY3V0aXZvXCIsXG4gICAgICBcIlJlbGFjY2lvbmVzXCIsXG4gICAgICBcIk9maWNpYWxcIixcbiAgICAgIFwiR2VyZW50ZVwiLFxuICAgICAgXCJJbmdlbmllcm9cIixcbiAgICAgIFwiRXNwZWNpYWxpc3RhXCIsXG4gICAgICBcIkRpcmVjdG9yXCIsXG4gICAgICBcIkNvb3JkaW5hZG9yXCIsXG4gICAgICBcIkFkbWluaXN0cmFkb3JcIixcbiAgICAgIFwiQXJxdWl0ZWN0b1wiLFxuICAgICAgXCJBbmFsaXN0YVwiLFxuICAgICAgXCJEaXNlw7FhZG9yXCIsXG4gICAgICBcIlBsYW5pZmljYWRvclwiLFxuICAgICAgXCJUw6ljbmljb1wiLFxuICAgICAgXCJGdW5jaW9uYXJpb1wiLFxuICAgICAgXCJEZXNhcnJvbGxhZG9yXCIsXG4gICAgICBcIlByb2R1Y3RvclwiLFxuICAgICAgXCJDb25zdWx0b3JcIixcbiAgICAgIFwiQXNpc3RlbnRlXCIsXG4gICAgICBcIkZhY2lsaXRhZG9yXCIsXG4gICAgICBcIkFnZW50ZVwiLFxuICAgICAgXCJSZXByZXNlbnRhbnRlXCIsXG4gICAgICBcIkVzdHJhdGVnYVwiXG4gICAgXVxuICB9LFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbmVzLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjkjIy0jIyMtIyMjXCIsXG4gICAgXCI5IyMuIyMjLiMjI1wiLFxuICAgIFwiOSMjICMjIyAjIyNcIixcbiAgICBcIjkjIyMjIyMjI1wiXG4gIF1cbn07XG5lcy5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiNiMjLSMjIy0jIyNcIixcbiAgICBcIjYjIy4jIyMuIyMjXCIsXG4gICAgXCI2IyMgIyMjICMjI1wiLFxuICAgIFwiNiMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBmYSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGZhO1xuZmEudGl0bGUgPSBcIkZhcnNpXCI7XG5mYS5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwi2KLYqNin2YYg2K/YrtiqXCIsXG4gICAgXCLYotio2KrbjNmGXCIsXG4gICAgXCLYotiq2YjYs9inXCIsXG4gICAgXCLYotmB2LFcIixcbiAgICBcItii2YHYsdmHINiv2K7YqlwiLFxuICAgIFwi2KLYsNix2YbZiNi04oCMXCIsXG4gICAgXCLYotiw24zZhlwiLFxuICAgIFwi2KLYsdin2YdcIixcbiAgICBcItii2LHYstmIXCIsXG4gICAgXCLYotix2LRcIixcbiAgICBcItii2LHYqtuM2YZcIixcbiAgICBcItii2LHYqtin2YVcIixcbiAgICBcItii2LHYqtmF2YZcIixcbiAgICBcItii2LHYtNin2YVcIixcbiAgICBcItii2LHZhdin2YZcIixcbiAgICBcItii2LHZhduM2YZcIixcbiAgICBcItii2LHZhduM2KrYp1wiLFxuICAgIFwi2KLYsduM2Kcg2YHYsVwiLFxuICAgIFwi2KLYsduM2KdcIixcbiAgICBcItii2LHbjNinINmF2YfYsVwiLFxuICAgIFwi2KLYsduM2YZcIixcbiAgICBcItii2LLYp9iv2YdcIixcbiAgICBcItii2LLYsdmFXCIsXG4gICAgXCLYotiy2LHZhdiv2K7YqlwiLFxuICAgIFwi2KLYstuM2KrYp1wiLFxuICAgIFwi2KLZhtin2YfbjNiq2KdcIixcbiAgICBcItii2YjZhtqvXCIsXG4gICAgXCLYotmH2YhcIixcbiAgICBcItii24zYr9inXCIsXG4gICAgXCLYp9iq2LPYslwiLFxuICAgIFwi2KfYrtiq2LFcIixcbiAgICBcItin2LHYr1wiLFxuICAgIFwi2KfYsdivINi024zYsVwiLFxuICAgIFwi2KfYsdiv2YjYp9mGXCIsXG4gICAgXCLYp9ix2pjZhlwiLFxuICAgIFwi2KfYsdqY2Ybar1wiLFxuICAgIFwi2KfYsdiz2YTYp9mGXCIsXG4gICAgXCLYp9ix2LrZiNin2YZcIixcbiAgICBcItin2LHZhdi62KfZhlwiLFxuICAgIFwi2KfYsdmG2YjYp9iyXCIsXG4gICAgXCLYp9ix2YjYp9mG2YdcIixcbiAgICBcItin2LPYqtixXCIsXG4gICAgXCLYp9iz2YHZhtiv24zYp9ixXCIsXG4gICAgXCLYp9i02qnYp9mGXCIsXG4gICAgXCLYp9i02qnYqNmI2LNcIixcbiAgICBcItin2YHYs9in2YbZh1wiLFxuICAgIFwi2KfZgdiz2YjZhlwiLFxuICAgIFwi2KfZgdi024zZhlwiLFxuICAgIFwi2KfZhduM2K9cIixcbiAgICBcItin2YbZiNi0ICjigIwg2KLZhtmI2LTYpyApXCIsXG4gICAgXCLYp9mG2YjYtNix2YjYp9mGXCIsXG4gICAgXCLYp9mI2LHZhtqvXCIsXG4gICAgXCLYp9mI2pjZhlwiLFxuICAgIFwi2KfZiNiz2KrYp1wiLFxuICAgIFwi2KfZh9mI2LHYp1wiLFxuICAgIFwi2KfbjNin2LJcIixcbiAgICBcItin24zYsdin2YZcIixcbiAgICBcItin24zYsdin2YbYr9iu2KpcIixcbiAgICBcItin24zYsdisXCIsXG4gICAgXCLYp9uM2LLYr9uM2KfYsVwiLFxuICAgIFwi2KjYp9io2qlcIixcbiAgICBcItio2KfZvtmI2qlcIixcbiAgICBcItio2KfYsdio2K9cIixcbiAgICBcItio2KfYsdmF2KfZhlwiLFxuICAgIFwi2KjYp9mF2K/Yp9ivXCIsXG4gICAgXCLYqNin2YXYtNin2K9cIixcbiAgICBcItio2KfZhtmIXCIsXG4gICAgXCLYqNiu2KrbjNin2LFcIixcbiAgICBcItio2LHYp9mG2YjYtFwiLFxuICAgIFwi2KjYsdiv24zYp1wiLFxuICAgIFwi2KjYsdiy2YhcIixcbiAgICBcItio2LHYstmI24zZh1wiLFxuICAgIFwi2KjYsdiy24zZhlwiLFxuICAgIFwi2KjYsdmF2qlcIixcbiAgICBcItio2LLYsdqv2YXZh9ixXCIsXG4gICAgXCLYqNmG2YHYtNmHXCIsXG4gICAgXCLYqNmI2pjYp9mGXCIsXG4gICAgXCLYqNmI24zYp9mGXCIsXG4gICAgXCLYqNmH2KfYsVwiLFxuICAgIFwi2KjZh9in2LHaqVwiLFxuICAgIFwi2KjZh9in2LHZh1wiLFxuICAgIFwi2KjZh9iq2KfYtFwiLFxuICAgIFwi2KjZh9iv2KfYr1wiLFxuICAgIFwi2KjZh9ix2KfZhVwiLFxuICAgIFwi2KjZh9iv24zYs1wiLFxuICAgIFwi2KjZh9ix2K5cIixcbiAgICBcItio2YfYsdmG2q9cIixcbiAgICBcItio2YfYsdmI2LJcIixcbiAgICBcItio2YfYstin2K9cIixcbiAgICBcItio2YfYtNin2K9cIixcbiAgICBcItio2YfZhdmGXCIsXG4gICAgXCLYqNmH2YbYp9iyXCIsXG4gICAgXCLYqNmH2YbYp9mFXCIsXG4gICAgXCLYqNmH2YbZiNivXCIsXG4gICAgXCLYqNmH2YbZiNi0XCIsXG4gICAgXCLYqNuM2KrYp1wiLFxuICAgIFwi2KjbjNqY2YZcIixcbiAgICBcItm+2KfYsdiz2KdcIixcbiAgICBcItm+2Kfaqdin2YZcIixcbiAgICBcItm+2Kfaqdiq2YZcIixcbiAgICBcItm+2Kfaqdiv2K7YqlwiLFxuICAgIFwi2b7Yp9mG2KrZhyDYolwiLFxuICAgIFwi2b7Yr9ix2KfZhVwiLFxuICAgIFwi2b7Ysdiq2YhcIixcbiAgICBcItm+2LHYtNmG2q9cIixcbiAgICBcItm+2LHYqtmIXCIsXG4gICAgXCLZvtix2LPYqtmIXCIsXG4gICAgXCLZvtix2YjbjNiyXCIsXG4gICAgXCLZvtix2K/bjNizXCIsXG4gICAgXCLZvtix2YfYp9mFXCIsXG4gICAgXCLZvtqY2YXYp9mGXCIsXG4gICAgXCLZvtqY2YjYp1wiLFxuICAgIFwi2b7YsdmG24zYp1wiLFxuICAgIFwi2b7YtNmG2q9cIixcbiAgICBcItm+2LHZiNin2YbZh1wiLFxuICAgIFwi2b7YsdmI24zZhlwiLFxuICAgIFwi2b7YsduMXCIsXG4gICAgXCLZvtix24zahtmH2LFcIixcbiAgICBcItm+2LHbjNiv2K7YqlwiLFxuICAgIFwi2b7YsduM2LPYp1wiLFxuICAgIFwi2b7YsdmG2KfYslwiLFxuICAgIFwi2b7YsduM2YjYtFwiLFxuICAgIFwi2b7YsduM2KdcIixcbiAgICBcItm+2YjZvtqpXCIsXG4gICAgXCLZvtmI2LHYp9mGXCIsXG4gICAgXCLZvtmI2LHYp9mG2K/YrtiqXCIsXG4gICAgXCLZvtmI2LHbjNinXCIsXG4gICAgXCLZvtmI2YTYp9ivXCIsXG4gICAgXCLZvtmI24zYp1wiLFxuICAgIFwi2b7ZiNmG2YdcIixcbiAgICBcItm+24zYp9mFXCIsXG4gICAgXCLZvtuM2LHZiNiyXCIsXG4gICAgXCLZvtuM2YXYp9mGXCIsXG4gICAgXCLYqtin2KjYp9mGXCIsXG4gICAgXCLYqtin2KjYp9mG2K/YrtiqXCIsXG4gICAgXCLYqtin2KzbjFwiLFxuICAgIFwi2KrYp9ix2KdcIixcbiAgICBcItiq2KfZiNuM2KfYsVwiLFxuICAgIFwi2KrYsdin2YbZh1wiLFxuICAgIFwi2KrZhtin2LJcIixcbiAgICBcItiq2YjYsdin2YZcIixcbiAgICBcItiq2YjYsdin2YbYr9iu2KpcIixcbiAgICBcItiq2YjYsdisXCIsXG4gICAgXCLYqtmI2LHYqtqpXCIsXG4gICAgXCLYqtmI2YHYp9mGXCIsXG4gICAgXCLYqtmI2pjYp9mEXCIsXG4gICAgXCLYqtuM2LEg2K/Yp9ivXCIsXG4gICAgXCLYqtuM2YbYp1wiLFxuICAgIFwi2KrbjNmG2YhcIixcbiAgICBcItis2KfYqNin2YZcIixcbiAgICBcItis2KfZhduM2YZcIixcbiAgICBcItis2KfZiNuM2K9cIixcbiAgICBcItis2LHbjNix2YdcIixcbiAgICBcItis2YXYtNuM2K9cIixcbiAgICBcItis2YjYp9mGXCIsXG4gICAgXCLYrNmI24zYp1wiLFxuICAgIFwi2KzZh9in2YZcIixcbiAgICBcItis2YfYp9mG2KjYrtiqXCIsXG4gICAgXCLYrNmH2KfZhtio2K7YtFwiLFxuICAgIFwi2KzZh9in2YbYr9in2LFcIixcbiAgICBcItis2YfYp9mG2q/bjNixXCIsXG4gICAgXCLYrNmH2KfZhiDYqNin2YbZiFwiLFxuICAgIFwi2KzZh9in2YbYr9iu2KpcIixcbiAgICBcItis2YfYp9mGINmG2KfYslwiLFxuICAgIFwi2KzbjNix2KfZhlwiLFxuICAgIFwi2obYp9io2qlcIixcbiAgICBcItqG2KfZhNin2qlcIixcbiAgICBcItqG2KfZiNi0XCIsXG4gICAgXCLahtiq2LHYp1wiLFxuICAgIFwi2obZiNio24zZhlwiLFxuICAgIFwi2obZh9ix2LLYp9ivXCIsXG4gICAgXCLYrtin2YjYsdiv2K7YqlwiLFxuICAgIFwi2K7Yr9in2K/Yp9ivXCIsXG4gICAgXCLYrtiv2KfbjNin2LFcIixcbiAgICBcItiu2LHZhVwiLFxuICAgIFwi2K7YsdmF2K/YrtiqXCIsXG4gICAgXCLYrtiz2LHZiFwiLFxuICAgIFwi2K7YtNin24zYp9ixXCIsXG4gICAgXCLYrtmI2LHYtNuM2K9cIixcbiAgICBcItiv2KfYr9mF2YfYsVwiLFxuICAgIFwi2K/Yp9ix2KdcIixcbiAgICBcItiv2KfYsdin2KhcIixcbiAgICBcItiv2KfYsduM2KdcIixcbiAgICBcItiv2KfYsduM2YjYtFwiLFxuICAgIFwi2K/Yp9mG2YjYtFwiLFxuICAgIFwi2K/Yp9mI2LHigIxcIixcbiAgICBcItiv2KfbjNin2YZcIixcbiAgICBcItiv2LHbjNinXCIsXG4gICAgXCLYr9mEINii2LHYp1wiLFxuICAgIFwi2K/ZhCDYotmI24zYslwiLFxuICAgIFwi2K/ZhNin2LHYp9mFXCIsXG4gICAgXCLYr9mEINin2Ybar9uM2LJcIixcbiAgICBcItiv2YTYqNixXCIsXG4gICAgXCLYr9mE2KjZhtivXCIsXG4gICAgXCLYr9mE2LHYqNinXCIsXG4gICAgXCLYr9mE2LTYp9ivXCIsXG4gICAgXCLYr9mE2qnYtFwiLFxuICAgIFwi2K/ZhNmG2KfYslwiLFxuICAgIFwi2K/ZhNmG2YjYp9iyXCIsXG4gICAgXCLYr9mI2LHYtNin2LPYqFwiLFxuICAgIFwi2K/ZhtuM2KdcIixcbiAgICBcItiv24zYp9in2qnZiFwiLFxuICAgIFwi2K/bjNin2YbZiNi0XCIsXG4gICAgXCLYr9uM2KjYp1wiLFxuICAgIFwi2K/bjNio2Kcg2K/YrtiqXCIsXG4gICAgXCLYsdin2KjZiFwiLFxuICAgIFwi2LHYp9io24zZhlwiLFxuICAgIFwi2LHYp9iv2KjYp9mG2YhcIixcbiAgICBcItix2KfYr9mF2KfZhlwiLFxuICAgIFwi2LHYp9iy2KjYp9mGXCIsXG4gICAgXCLYsdin2pjYp9mG2YdcIixcbiAgICBcItix2KfYs9inXCIsXG4gICAgXCLYsdin2YXYqtuM2YZcIixcbiAgICBcItix2KfZhdi0XCIsXG4gICAgXCLYsdin2YXYtNqv2LFcIixcbiAgICBcItix2KfZhdmI2YbYp1wiLFxuICAgIFwi2LHYp9mF24zYp9ixXCIsXG4gICAgXCLYsdin2YXbjNmE2KdcIixcbiAgICBcItix2KfZhduM2YZcIixcbiAgICBcItix2KfZiNuM2KfYsVwiLFxuICAgIFwi2LHamNuM2YbYp1wiLFxuICAgIFwi2LHYrtm+2KfaqVwiLFxuICAgIFwi2LHYrtiz2KfYsVwiLFxuICAgIFwi2LHYrti02KfZhtmHXCIsXG4gICAgXCLYsdiu2LTZhtiv2YdcIixcbiAgICBcItix2LLZhduM2KfYsVwiLFxuICAgIFwi2LHYs9iq2YVcIixcbiAgICBcItix2qnYs9in2YbYp1wiLFxuICAgIFwi2LHZiNio24zZhtinXCIsXG4gICAgXCLYsdmI2K/Yp9io2YdcIixcbiAgICBcItix2YjYstio2YdcIixcbiAgICBcItix2YjYtNmG2qlcIixcbiAgICBcItix2YjZhtin2qlcIixcbiAgICBcItix2YfYp9mFXCIsXG4gICAgXCLYsdmH24xcIixcbiAgICBcItix24zYqNin2LFcIixcbiAgICBcItix2KfYs9m+24zZhtinXCIsXG4gICAgXCLYstin2K/YqNiu2KpcIixcbiAgICBcItiy2KfYryDYqNmHXCIsXG4gICAgXCLYstin2K8g2obZh9ixXCIsXG4gICAgXCLYstin2K8g2YHYsVwiLFxuICAgIFwi2LLYp9mEXCIsXG4gICAgXCLYstin2K/Zhdin2LPYqFwiLFxuICAgIFwi2LLYp9mI2KdcIixcbiAgICBcItiy2LHYr9i02KpcIixcbiAgICBcItiy2LHZhtqv2KfYsVwiLFxuICAgIFwi2LLYsduMXCIsXG4gICAgXCLYstix24zZhlwiLFxuICAgIFwi2LLYsduM2YbZh1wiLFxuICAgIFwi2LLZhdin2YbZh1wiLFxuICAgIFwi2LLZiNmG2KdcIixcbiAgICBcItiy24zYqNinXCIsXG4gICAgXCLYstuM2KjYp9ixXCIsXG4gICAgXCLYstuM2YXYp1wiLFxuICAgIFwi2LLbjNmG2YhcIixcbiAgICBcItqY2KfZhNmHXCIsXG4gICAgXCLamNin2YTYp9mGXCIsXG4gICAgXCLamNuM2KfYsVwiLFxuICAgIFwi2pjbjNmG2KdcIixcbiAgICBcItqY24zZiNin2LFcIixcbiAgICBcItiz2KfYsdinXCIsXG4gICAgXCLYs9in2LHaqVwiLFxuICAgIFwi2LPYp9ix2Ybar1wiLFxuICAgIFwi2LPYp9ix2YdcIixcbiAgICBcItiz2KfYs9in2YZcIixcbiAgICBcItiz2KfYutixXCIsXG4gICAgXCLYs9in2YVcIixcbiAgICBcItiz2KfZhdin2YZcIixcbiAgICBcItiz2KfZhtinXCIsXG4gICAgXCLYs9in2YbYp9iyXCIsXG4gICAgXCLYs9in2YbbjNin2LFcIixcbiAgICBcItiz2KfZiNuM2LJcIixcbiAgICBcItiz2KfZh9uMXCIsXG4gICAgXCLYs9in24zZhtinXCIsXG4gICAgXCLYs9in24zZh1wiLFxuICAgIFwi2LPZvtmG2KrYp1wiLFxuICAgIFwi2LPZvtmG2K9cIixcbiAgICBcItiz2b7Zh9ixXCIsXG4gICAgXCLYs9m+2YfYsdiv2KfYr1wiLFxuICAgIFwi2LPZvtuM2K/Yp9ixXCIsXG4gICAgXCLYs9m+24zYryDYqNin2YbZiFwiLFxuICAgIFwi2LPZvtuM2K/Zh1wiLFxuICAgIFwi2LPYqtin2LHZh1wiLFxuICAgIFwi2LPYqtuMXCIsXG4gICAgXCLYs9ix2KfZgdix2KfYslwiLFxuICAgIFwi2LPYsdmI2LFcIixcbiAgICBcItiz2LHZiNi0XCIsXG4gICAgXCLYs9ix2YjYsVwiLFxuICAgIFwi2LPZiNio2KdcIixcbiAgICBcItiz2YjYqNin2LFcIixcbiAgICBcItiz2YbYqNmE2YdcIixcbiAgICBcItiz2YjYr9in2KjZh1wiLFxuICAgIFwi2LPZiNix24xcIixcbiAgICBcItiz2YjYsdmGXCIsXG4gICAgXCLYs9mI2LHZhtinXCIsXG4gICAgXCLYs9mI2LLYp9mGXCIsXG4gICAgXCLYs9mI2LLZh1wiLFxuICAgIFwi2LPZiNiz2YZcIixcbiAgICBcItiz2YjZhdin2LFcIixcbiAgICBcItiz2YjZhNin2YZcIixcbiAgICBcItiz2YjZhNmF2KfYslwiLFxuICAgIFwi2LPZiNqv2YbYr1wiLFxuICAgIFwi2LPZh9ix2KfYqFwiLFxuICAgIFwi2LPZh9ix2YdcIixcbiAgICBcItiz2YfZhtivXCIsXG4gICAgXCLYs9uM2KfZhdqpXCIsXG4gICAgXCLYs9uM2KfZiNi0XCIsXG4gICAgXCLYs9uM2KjZiNio2Ycg4oCMXCIsXG4gICAgXCLYs9uM2YXYp1wiLFxuICAgIFwi2LPbjNmF2K/YrtiqXCIsXG4gICAgXCLYs9uM2YbYp1wiLFxuICAgIFwi2LPbjNmF24zZhlwiLFxuICAgIFwi2LPbjNmF24zZhiDYr9iu2KpcIixcbiAgICBcIti02KfZvtix2qlcIixcbiAgICBcIti02KfYr9uMXCIsXG4gICAgXCLYtNin2K/ZhdmH2LFcIixcbiAgICBcIti02KfYsdin2YZcIixcbiAgICBcIti02KfZh9m+2YjYsVwiLFxuICAgIFwi2LTYp9mH2K/YrtiqXCIsXG4gICAgXCLYtNin2YfYsdiuXCIsXG4gICAgXCLYtNin2YfbjNmGXCIsXG4gICAgXCLYtNin2YfbjNmG2K/YrtiqXCIsXG4gICAgXCLYtNin24zYs9iq2YdcIixcbiAgICBcIti02KjYp9mH2Ybar1wiLFxuICAgIFwi2LTYqCDYqNmIXCIsXG4gICAgXCLYtNio2K/bjNiyXCIsXG4gICAgXCLYtNio2YbZhVwiLFxuICAgIFwi2LTYsdin2LHZh1wiLFxuICAgIFwi2LTYsdmF24zZhlwiLFxuICAgIFwi2LTYsdmI24zZhlwiLFxuICAgIFwi2LTaqdmI2YHZh1wiLFxuICAgIFwi2LTaqdmB2KrZh1wiLFxuICAgIFwi2LTZhdi02KfYr1wiLFxuICAgIFwi2LTZhduM2YZcIixcbiAgICBcIti02YjYp9mGXCIsXG4gICAgXCLYtNmF24zZhNinXCIsXG4gICAgXCLYtNmI2LHYp9mG2q/bjNiyXCIsXG4gICAgXCLYtNmI2LHbjFwiLFxuICAgIFwi2LTZh9in2KhcIixcbiAgICBcIti02YfYqNin2LFcIixcbiAgICBcIti02YfYqNin2LJcIixcbiAgICBcIti02YfYqNin2YRcIixcbiAgICBcIti02YfZvtixXCIsXG4gICAgXCLYtNmH2K/Yp9ivXCIsXG4gICAgXCLYtNmH2LHYotix2KdcIixcbiAgICBcIti02YfYsdin2YVcIixcbiAgICBcIti02YfYsdio2KfZhtmIXCIsXG4gICAgXCLYtNmH2LHYstin2K9cIixcbiAgICBcIti02YfYsdmG2KfYslwiLFxuICAgIFwi2LTZh9ix2YbZiNi0XCIsXG4gICAgXCLYtNmH2LHZh1wiLFxuICAgIFwi2LTZh9ix24zYp9ixXCIsXG4gICAgXCLYtNmH2LHYstin2K9cIixcbiAgICBcIti02YfZhNinXCIsXG4gICAgXCLYtNmH2YbZiNin2LJcIixcbiAgICBcIti02YfbjNmGXCIsXG4gICAgXCLYtNuM2KjYp1wiLFxuICAgIFwi2LTbjNiv2KdcIixcbiAgICBcIti024zYr9mHXCIsXG4gICAgXCLYtNuM2LHYr9mEXCIsXG4gICAgXCLYtNuM2LHYstin2K9cIixcbiAgICBcIti024zYsdmG2q9cIixcbiAgICBcIti024zYsdmIXCIsXG4gICAgXCLYtNuM2LHbjNmGINiv2K7YqlwiLFxuICAgIFwi2LTbjNmF2KdcIixcbiAgICBcIti024zZhtinXCIsXG4gICAgXCLYtNuM2LHbjNmGXCIsXG4gICAgXCLYtNuM2YjYp1wiLFxuICAgIFwi2LfZiNizXCIsXG4gICAgXCLYt9mI2LfbjFwiLFxuICAgIFwi2LfZh9mF2KfYs9ioXCIsXG4gICAgXCLYt9mH2YXZiNix2KtcIixcbiAgICBcIti62YjYutinXCIsXG4gICAgXCLYutmG2obZh1wiLFxuICAgIFwi2YHYqtin2YbZh1wiLFxuICAgIFwi2YHYr9inXCIsXG4gICAgXCLZgdix2KfYslwiLFxuICAgIFwi2YHYsdin2YXYsdiyXCIsXG4gICAgXCLZgdix2KfZhtqpXCIsXG4gICAgXCLZgdix2KfZh9in2YZcIixcbiAgICBcItmB2LHYqNivXCIsXG4gICAgXCLZgdix2KjYulwiLFxuICAgIFwi2YHYsdis2KfYr1wiLFxuICAgIFwi2YHYsdiuXCIsXG4gICAgXCLZgdix2K4g2b7bjFwiLFxuICAgIFwi2YHYsdiuINiv2KfYr1wiLFxuICAgIFwi2YHYsdiuINix2YhcIixcbiAgICBcItmB2LHYriDYstin2K9cIixcbiAgICBcItmB2LHYriDZhNmC2KdcIixcbiAgICBcItmB2LHYriDZhdmH2LFcIixcbiAgICBcItmB2LHYr9in2K9cIixcbiAgICBcItmB2LHYr9uM2LNcIixcbiAgICBcItmB2LHbjNmGXCIsXG4gICAgXCLZgdix2LLYp9ivXCIsXG4gICAgXCLZgdix2LLYp9mFXCIsXG4gICAgXCLZgdix2LLYp9mGXCIsXG4gICAgXCLZgdix2LLYp9mG2YdcIixcbiAgICBcItmB2LHYstuM2YZcIixcbiAgICBcItmB2LHYtNin2K9cIixcbiAgICBcItmB2LHYtNiq2YdcIixcbiAgICBcItmB2LHYtNuM2K9cIixcbiAgICBcItmB2LHZhdin2YZcIixcbiAgICBcItmB2LHZhtin2LJcIixcbiAgICBcItmB2LHZhtqv24zYs1wiLFxuICAgIFwi2YHYsdmG2YjYr1wiLFxuICAgIFwi2YHYsdmG2YjYtFwiLFxuICAgIFwi2YHYsdmG24zYp1wiLFxuICAgIFwi2YHYsdmI2KrZhlwiLFxuICAgIFwi2YHYsdmI2K9cIixcbiAgICBcItmB2LHZiNiyXCIsXG4gICAgXCLZgdix2YjYstin2YZcIixcbiAgICBcItmB2LHZiNiy2LRcIixcbiAgICBcItmB2LHZiNiy2YbYr9mHXCIsXG4gICAgXCLZgdix2YjYulwiLFxuICAgIFwi2YHYsdmH2KfYr1wiLFxuICAgIFwi2YHYsdmH2Ybar1wiLFxuICAgIFwi2YHYsdmH2YjYr1wiLFxuICAgIFwi2YHYsdio2KfYsVwiLFxuICAgIFwi2YHYsduM2KjYp1wiLFxuICAgIFwi2YHYsduM2K9cIixcbiAgICBcItmB2LHbjNiv2K7YqlwiLFxuICAgIFwi2YHYsduM2K/ZiNmGXCIsXG4gICAgXCLZgdix24zZhdin2YZcIixcbiAgICBcItmB2LHbjNmG2KfYslwiLFxuICAgIFwi2YHYsduM2YbZiNi0XCIsXG4gICAgXCLZgdix24zZiNi0XCIsXG4gICAgXCLZgduM2LHZiNiyXCIsXG4gICAgXCLZgduM2LHZiNiy2YdcIixcbiAgICBcItmC2KfYqNmI2LNcIixcbiAgICBcItmC2KjYp9ivXCIsXG4gICAgXCLZgtiv2LPbjFwiLFxuICAgIFwi2qnYp9io2KfZhlwiLFxuICAgIFwi2qnYp9io2YjaqVwiLFxuICAgIFwi2qnYp9ix2KdcIixcbiAgICBcItqp2KfYsdmIXCIsXG4gICAgXCLaqdin2LHYp9qp2YhcIixcbiAgICBcItqp2KfZhdio2K7YqlwiLFxuICAgIFwi2qnYp9mF2KjYrti0XCIsXG4gICAgXCLaqdin2YXYqNuM2LJcIixcbiAgICBcItqp2KfZhdis2YhcIixcbiAgICBcItqp2KfZhdiv24zZhlwiLFxuICAgIFwi2qnYp9mF2LHYp9mGXCIsXG4gICAgXCLaqdin2YXYsdin2YjYp1wiLFxuICAgIFwi2qnYp9mF2qlcIixcbiAgICBcItqp2KfZhdmG2YjYtFwiLFxuICAgIFwi2qnYp9mF24zYp9ixXCIsXG4gICAgXCLaqdin2YbbjNin2LFcIixcbiAgICBcItqp2KfZiNmI2LNcIixcbiAgICBcItqp2KfZiNmHXCIsXG4gICAgXCLaqdiq2KfbjNmI2YZcIixcbiAgICBcItqp2LHYtNmF2YdcIixcbiAgICBcItqp2LPYsduMXCIsXG4gICAgXCLaqdmE2KfZhNmHXCIsXG4gICAgXCLaqdmF2KjZiNis24zZh1wiLFxuICAgIFwi2qnZiNi02KdcIixcbiAgICBcItqp2YfYqNivXCIsXG4gICAgXCLaqdmH2LHYp9mFXCIsXG4gICAgXCLaqdmH2LLYp9ivXCIsXG4gICAgXCLaqduM2KfYsdi0XCIsXG4gICAgXCLaqduM2KfZhlwiLFxuICAgIFwi2qnbjNin2YbYp1wiLFxuICAgIFwi2qnbjNin2YbahtmH2LFcIixcbiAgICBcItqp24zYp9mG2K/YrtiqXCIsXG4gICAgXCLaqduM2KfZhtmI2LRcIixcbiAgICBcItqp24zYp9mI2LRcIixcbiAgICBcItqp24zYrtiz2LHZiFwiLFxuICAgIFwi2qnbjNmC2KjYp9ivXCIsXG4gICAgXCLaqduM2qnYp9mI2YjYs1wiLFxuICAgIFwi2qnbjNmI2KfZhlwiLFxuICAgIFwi2qnbjNmI2KfZhiDYr9iu2KpcIixcbiAgICBcItqp24zZiNmF2LHYq1wiLFxuICAgIFwi2qnbjNmH2KfZhlwiLFxuICAgIFwi2qnbjNin2YbYr9iu2KpcIixcbiAgICBcItqp24zZh9in2YbZh1wiLFxuICAgIFwi2q/YsdivINii2YHYsduM2K9cIixcbiAgICBcItqv2LHYr9in2YZcIixcbiAgICBcItqv2LHYtNinXCIsXG4gICAgXCLar9ix2LTYp9iz2KhcIixcbiAgICBcItqv2LHYtNuM2YZcIixcbiAgICBcItqv2LHar9uM2YZcIixcbiAgICBcItqv2LLZhFwiLFxuICAgIFwi2q/YtNiq2KfYs9ioXCIsXG4gICAgXCLar9i02LPYqFwiLFxuICAgIFwi2q/YtNiz2Kgg2KjYp9mG2YhcIixcbiAgICBcItqv2YRcIixcbiAgICBcItqv2YQg2KLYsNuM2YZcIixcbiAgICBcItqv2YQg2KLYsdin4oCMXCIsXG4gICAgXCLar9mE2KfYsdmHXCIsXG4gICAgXCLar9mEINin2YHYsdmI2LJcIixcbiAgICBcItqv2YTYp9mE2YdcIixcbiAgICBcItqv2YQg2KfZhtiv2KfZhVwiLFxuICAgIFwi2q/ZhNin2YjbjNiyXCIsXG4gICAgXCLar9mE2KjYp9ivXCIsXG4gICAgXCLar9mE2KjYp9ixXCIsXG4gICAgXCLar9mE2KjYp9mFXCIsXG4gICAgXCLar9mE2KjYp9mGXCIsXG4gICAgXCLar9mE2KjYp9mG2YhcIixcbiAgICBcItqv2YTYqNix2q9cIixcbiAgICBcItqv2YTYqNmIXCIsXG4gICAgXCLar9mE2KjZh9in2LFcIixcbiAgICBcItqv2YTYqNuM2LJcIixcbiAgICBcItqv2YTZvtin2LHZh1wiLFxuICAgIFwi2q/ZhNm+2LFcIixcbiAgICBcItqv2YTZvtix24xcIixcbiAgICBcItqv2YTZvtmI2LRcIixcbiAgICBcItqv2YQg2b7ZiNmG2YdcIixcbiAgICBcItqv2YTahtuM2YZcIixcbiAgICBcItqv2YTYr9iu2KpcIixcbiAgICBcItqv2YTYr9uM2LNcIixcbiAgICBcItqv2YTYsdio2KdcIixcbiAgICBcItqv2YTYsdiuXCIsXG4gICAgXCLar9mE2LHZhtqvXCIsXG4gICAgXCLar9mE2LHZiFwiLFxuICAgIFwi2q/ZhNi02YZcIixcbiAgICBcItqv2YTYsduM2LJcIixcbiAgICBcItqv2YTYstin2K9cIixcbiAgICBcItqv2YTYstin2LFcIixcbiAgICBcItqv2YTYs9inXCIsXG4gICAgXCLar9mE2LTbjNivXCIsXG4gICAgXCLar9mE2YbYp9ixXCIsXG4gICAgXCLar9mE2YbYp9iyXCIsXG4gICAgXCLar9mE2YbYs9inXCIsXG4gICAgXCLar9mE2YbZiNin2LJcIixcbiAgICBcItqv2YTZhtmI2LRcIixcbiAgICBcItqv2YTbjFwiLFxuICAgIFwi2q/ZiNiv2LHYslwiLFxuICAgIFwi2q/ZiNmF2KfYqtmIXCIsXG4gICAgXCLar9mH2LEg2obZh9ixXCIsXG4gICAgXCLar9mI2YfYsSDZhtin2LJcIixcbiAgICBcItqv24zYqtuMXCIsXG4gICAgXCLar9uM2LPZiFwiLFxuICAgIFwi2q/bjNmE2K/Yp1wiLFxuICAgIFwi2q/bjNmIXCIsXG4gICAgXCLZhNin2K/ZhlwiLFxuICAgIFwi2YTYp9mE2YdcIixcbiAgICBcItmE2KfZhNmHINix2K5cIixcbiAgICBcItmE2KfZhNmHINiv2K7YqlwiLFxuICAgIFwi2YTYqNiu2YbYr1wiLFxuICAgIFwi2YTZgtin2KFcIixcbiAgICBcItmE2YjZhdin2YbYp1wiLFxuICAgIFwi2YTZh9ix2KfYs9ioXCIsXG4gICAgXCLZhdin2LHYp9mEXCIsXG4gICAgXCLZhdin2LHbjFwiLFxuICAgIFwi2YXYp9iy24zYp9ixXCIsXG4gICAgXCLZhdin2qnYp9mGXCIsXG4gICAgXCLZhdin2YXaqVwiLFxuICAgIFwi2YXYp9mG2KdcIixcbiAgICBcItmF2KfZhtiv2KfZhtinXCIsXG4gICAgXCLZhdin2YbZiNi0XCIsXG4gICAgXCLZhdin2YbbjFwiLFxuICAgIFwi2YXYp9mG24zYp1wiLFxuICAgIFwi2YXYp9mH2KfZhlwiLFxuICAgIFwi2YXYp9mH2KfZhtiv2K7YqlwiLFxuICAgIFwi2YXYp9mHINio2LHYstuM2YZcIixcbiAgICBcItmF2KfZhyDYrNmH2KfZhlwiLFxuICAgIFwi2YXYp9mH2obZh9ixXCIsXG4gICAgXCLZhdin2YfYr9iu2KpcIixcbiAgICBcItmF2KfZh9mI2LFcIixcbiAgICBcItmF2KfZh9ix2K5cIixcbiAgICBcItmF2KfZh9iy2KfYr1wiLFxuICAgIFwi2YXYsdiv2KLZiNuM2LJcIixcbiAgICBcItmF2LHYr9in2LNcIixcbiAgICBcItmF2LHYstio2KfZhlwiLFxuICAgIFwi2YXYsdmF2LFcIixcbiAgICBcItmF2LLYr9qpXCIsXG4gICAgXCLZhdqY2K/Zh1wiLFxuICAgIFwi2YXamNqv2KfZhlwiLFxuICAgIFwi2YXYs9iq2KfZhlwiLFxuICAgIFwi2YXYs9iq2KfZhtmHXCIsXG4gICAgXCLZhdi02qnYp9mG2K/YrtiqXCIsXG4gICAgXCLZhdi02qnZhtin2LJcIixcbiAgICBcItmF2LTaqduM2YYg2K/YrtiqXCIsXG4gICAgXCLZhdmG24zamNmHXCIsXG4gICAgXCLZhdmG2YjahtmH2LFcIixcbiAgICBcItmF2YfYqNin2YbZiFwiLFxuICAgIFwi2YXZh9io2K9cIixcbiAgICBcItmF2Ycg2K/Yp9ivXCIsXG4gICAgXCLZhdmH2KrYp9ioXCIsXG4gICAgXCLZhdmH2K/bjNizXCIsXG4gICAgXCLZhdmHINis2KjbjNmGXCIsXG4gICAgXCLZhdmHINiv2K7YqlwiLFxuICAgIFwi2YXZh9ixINii2LDYsVwiLFxuICAgIFwi2YXZh9ixINii2LHYp1wiLFxuICAgIFwi2YXZh9ixINii2LPYp1wiLFxuICAgIFwi2YXZh9ixINii2YHYp9mCXCIsXG4gICAgXCLZhdmH2LEg2KfZgdix24zZhlwiLFxuICAgIFwi2YXZh9ix2KLYqFwiLFxuICAgIFwi2YXZh9ix2K/Yp9ivXCIsXG4gICAgXCLZhdmH2LEg2KfZgdiy2YjZhlwiLFxuICAgIFwi2YXZh9ix2KfZhVwiLFxuICAgIFwi2YXZh9ix2KfZhlwiLFxuICAgIFwi2YXZh9ix2KfZhtiv2K7YqlwiLFxuICAgIFwi2YXZh9ix2KfZhtiv24zYtFwiLFxuICAgIFwi2YXZh9ix2KfZhtmB2LFcIixcbiAgICBcItmF2YfYsdin2Ybar9uM2LJcIixcbiAgICBcItmF2YfYsdiv2KfYr1wiLFxuICAgIFwi2YXZh9ixINiv2K7YqlwiLFxuICAgIFwi2YXZh9ix2LLYp9iv2Ycg4oCMXCIsXG4gICAgXCLZhdmH2LHZhtin2LJcIixcbiAgICBcItmF2YfYsdmG2YjYtFwiLFxuICAgIFwi2YXZh9ix2Ybaqdin2LFcIixcbiAgICBcItmF2YfYsdmG24zYp1wiLFxuICAgIFwi2YXZh9ix2YjYslwiLFxuICAgIFwi2YXZh9ix24xcIixcbiAgICBcItmF2YfYsduM2KfYsVwiLFxuICAgIFwi2YXZh9iz2KdcIixcbiAgICBcItmF2YfYs9iq24xcIixcbiAgICBcItmF2Ycg2LPbjNmF2KdcIixcbiAgICBcItmF2YfYtNin2K9cIixcbiAgICBcItmF2YfYtNuM2K9cIixcbiAgICBcItmF2YfZhtin2YVcIixcbiAgICBcItmF2YfZhtin2LJcIixcbiAgICBcItmF2YfZhtmI2LRcIixcbiAgICBcItmF2YfZiNi0XCIsXG4gICAgXCLZhdmH24zYp9ixXCIsXG4gICAgXCLZhdmH24zZhlwiLFxuICAgIFwi2YXZh9uM2YYg2K/YrtiqXCIsXG4gICAgXCLZhduM2KrYsdinXCIsXG4gICAgXCLZhduM2K7aqVwiLFxuICAgIFwi2YXbjNmG2KdcIixcbiAgICBcItmF24zZhtinINiv2K7YqlwiLFxuICAgIFwi2YXbjNmG2YhcIixcbiAgICBcItmF24zZhtmI2K/YrtiqXCIsXG4gICAgXCLZhduM2YbZiCDZgdixXCIsXG4gICAgXCLZhtin2K/YsVwiLFxuICAgIFwi2YbYp9iyINii2YHYsduM2YZcIixcbiAgICBcItmG2KfYstio2KfZhtmIXCIsXG4gICAgXCLZhtin2LLZvtix2YjYsVwiLFxuICAgIFwi2YbYp9iy2obZh9ixXCIsXG4gICAgXCLZhtin2LLZgdixXCIsXG4gICAgXCLZhtin2LLZhNuMXCIsXG4gICAgXCLZhtin2LLbjFwiLFxuICAgIFwi2YbYp9iy24zYr9iu2KpcIixcbiAgICBcItmG2KfZhdmI2LFcIixcbiAgICBcItmG2KfZh9uM2K9cIixcbiAgICBcItmG2K/Yp1wiLFxuICAgIFwi2YbYsdiz24xcIixcbiAgICBcItmG2LHar9izXCIsXG4gICAgXCLZhtix2YXaqVwiLFxuICAgIFwi2YbYsdmF24zZhlwiLFxuICAgIFwi2YbYsduM2YXYp9mGXCIsXG4gICAgXCLZhtiz2KrYsdmGXCIsXG4gICAgXCLZhtiz2LHbjNmGXCIsXG4gICAgXCLZhtiz2LHbjNmGINiv2K7YqlwiLFxuICAgIFwi2YbYs9ix24zZhiDZhtmI2LRcIixcbiAgICBcItmG2qnbjNiz2KdcIixcbiAgICBcItmG2q/Yp9ixXCIsXG4gICAgXCLZhtqv2KfYsdmHXCIsXG4gICAgXCLZhtqv2KfYsduM2YZcIixcbiAgICBcItmG2q/bjNmGXCIsXG4gICAgXCLZhtmI2KdcIixcbiAgICBcItmG2YjYtFwiLFxuICAgIFwi2YbZiNi0INii2LDYsVwiLFxuICAgIFwi2YbZiNi0INii2YjYsVwiLFxuICAgIFwi2YbZiNi02KdcIixcbiAgICBcItmG2YjYtCDYotmB2LHbjNmGXCIsXG4gICAgXCLZhtmI2LTYr9iu2KpcIixcbiAgICBcItmG2YjYtNix2YjYp9mGXCIsXG4gICAgXCLZhtmI2LTZgdixXCIsXG4gICAgXCLZhtmI2LTZhtin2LJcIixcbiAgICBcItmG2YjYtNuM2YZcIixcbiAgICBcItmG2YjbjNivXCIsXG4gICAgXCLZhtmI24zZhlwiLFxuICAgIFwi2YbZiNuM2YYg2K/YrtiqXCIsXG4gICAgXCLZhtuM2LQg2KdcIixcbiAgICBcItmG24zaqSDYqNuM2YZcIixcbiAgICBcItmG24zaqSDZvtuMXCIsXG4gICAgXCLZhtuM2qkg2obZh9ixXCIsXG4gICAgXCLZhtuM2qkg2K7ZiNin2YdcIixcbiAgICBcItmG24zaqdiv2KfYr1wiLFxuICAgIFwi2YbbjNqp2K/YrtiqXCIsXG4gICAgXCLZhtuM2qnYr9mEXCIsXG4gICAgXCLZhtuM2qnYstin2K9cIixcbiAgICBcItmG24zZhNmI2YHYsVwiLFxuICAgIFwi2YbbjNmF2KdcIixcbiAgICBcItmI2KfZhdmCXCIsXG4gICAgXCLZiNix2KzYp9mI2YbYr1wiLFxuICAgIFwi2YjYsduM2KdcIixcbiAgICBcItmI2LTZhdqv24zYsVwiLFxuICAgIFwi2YjZh9ix2LJcIixcbiAgICBcItmI2YfYs9mI2K/Yp9mGXCIsXG4gICAgXCLZiNuM2K/Yp1wiLFxuICAgIFwi2YjbjNizXCIsXG4gICAgXCLZiNuM2LTYqtin2LPYqFwiLFxuICAgIFwi2YjbjNqv2YZcIixcbiAgICBcItmH2pjbjNixXCIsXG4gICAgXCLZh9iu2KfZhdmG2LRcIixcbiAgICBcItmH2LHYqNivKCDZh9uM2LHYqNivIClcIixcbiAgICBcItmH2LHZhdiyXCIsXG4gICAgXCLZh9mF2KfbjNmI2YZcIixcbiAgICBcItmH2YXYp1wiLFxuICAgIFwi2YfZhdin2K/YrtiqXCIsXG4gICAgXCLZh9mF2K/ZhVwiLFxuICAgIFwi2YfZhdix2KfYslwiLFxuICAgIFwi2YfZhdix2KfZh1wiLFxuICAgIFwi2YfZhtqv2KfZhdmHXCIsXG4gICAgXCLZh9mI2KrZhlwiLFxuICAgIFwi2YfZiNixXCIsXG4gICAgXCLZh9mI2LHYqtin2LRcIixcbiAgICBcItmH2YjYsdqG2YfYsVwiLFxuICAgIFwi2YfZiNix2K/Yp9ivXCIsXG4gICAgXCLZh9mI2LHYr9iu2KpcIixcbiAgICBcItmH2YjYsdiy2KfYr1wiLFxuICAgIFwi2YfZiNix2YXZhtivXCIsXG4gICAgXCLZh9mI2LHZiNi0XCIsXG4gICAgXCLZh9mI2LTZhtqvXCIsXG4gICAgXCLZh9mI2LTbjNin2LFcIixcbiAgICBcItmH2YjZhdin2YZcIixcbiAgICBcItmH2YjZhdmGXCIsXG4gICAgXCLZh9mI2YbYp9mFXCIsXG4gICAgXCLZh9mI24zYr9inXCIsXG4gICAgXCLZh9uM2KrYp9iz2KhcIixcbiAgICBcItmH24zYsdmF2YbYr1wiLFxuICAgIFwi2YfbjNmF2KdcIixcbiAgICBcItmH24zZiNinXCIsXG4gICAgXCLbjNin2K/ar9in2LFcIixcbiAgICBcItuM2KfYs9mF2YYgKCDbjNin2LPZhduM2YYgKVwiLFxuICAgIFwi24zYp9i02KfYsVwiLFxuICAgIFwi24zYp9mI2LFcIixcbiAgICBcItuM2LLYr9in2YZcIixcbiAgICBcItuM2q/Yp9mG2YdcIixcbiAgICBcItuM2YjYtNuM2KrYp1wiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIti52KfYsdmBXCIsXG4gICAgXCLYudin2LTZiNix24xcIixcbiAgICBcIti52KfZhNuMXCIsXG4gICAgXCLYudio2KfYr9uMXCIsXG4gICAgXCLYudio2K/Yp9mE2qnYsduM2YXbjFwiLFxuICAgIFwi2LnYqNiv2KfZhNmF2YTaqduMXCIsXG4gICAgXCLYudix2KfZgtuMXCIsXG4gICAgXCLYudiy24zYstuMXCIsXG4gICAgXCLYudi12KfYsVwiLFxuICAgIFwi2LnZgtuM2YTbjFwiLFxuICAgIFwi2LnZhNmFXCIsXG4gICAgXCLYudmE2YXigIzYp9mE2YfYr9uMXCIsXG4gICAgXCLYudmE24wg2LnYs9qv2LHbjFwiLFxuICAgIFwi2LnZhNuM4oCM2KLYqNin2K/bjFwiLFxuICAgIFwi2LnZhNuM2KdcIixcbiAgICBcIti52YTbjOKAjNm+2YjYsVwiLFxuICAgIFwi2LnZhNuM4oCM2LLZhdin2YbbjFwiLFxuICAgIFwi2LnZhtin24zYqlwiLFxuICAgIFwi2LrYttmG2YHYsduMXCIsXG4gICAgXCLYutmG24xcIixcbiAgICBcItmB2KfYsdiz24xcIixcbiAgICBcItmB2KfYt9mF24xcIixcbiAgICBcItmB2KfZhtuMXCIsXG4gICAgXCLZgdiq2KfYrduMXCIsXG4gICAgXCLZgdix2KfZhdix2LLbjFwiLFxuICAgIFwi2YHYsdisXCIsXG4gICAgXCLZgdix2LTbjNiv2YjYsdivXCIsXG4gICAgXCLZgdix2YXYp9mG2YHYsdmF2KfYptuM2KfZhlwiLFxuICAgIFwi2YHYsdmI2KrZhlwiLFxuICAgIFwi2YHYsdmH2Ybar1wiLFxuICAgIFwi2YHYsduM2KfYr1wiLFxuICAgIFwi2YHZhtin24zbjFwiLFxuICAgIFwi2YHZhtuM4oCM2LLYp9iv2YdcIixcbiAgICBcItmB2YjZhNin2K/ZiNmG2K9cIixcbiAgICBcItmB2YfZhduM2K/Zh1wiLFxuICAgIFwi2YLYp9i224xcIixcbiAgICBcItmC2KfZhti524xcIixcbiAgICBcItmC2KfZhtmI2YbbjFwiLFxuICAgIFwi2YLZhduM2LTbjFwiLFxuICAgIFwi2YLZhtio2LHbjFwiLFxuICAgIFwi2YLZh9ix2YXYp9mGXCIsXG4gICAgXCLZgtmH2LHZhdin2YbbjFwiLFxuICAgIFwi2YLZh9ix2YXYp9mG24zYp9mGXCIsXG4gICAgXCLZgtmH2LPYqtin2YbbjFwiLFxuICAgIFwi2qnYp9i024xcIixcbiAgICBcItqp2Kfaqdin2YjZhtivXCIsXG4gICAgXCLaqdin2YXaqdin2LFcIixcbiAgICBcItqp2KfZhdmE24xcIixcbiAgICBcItqp2KfZiNuM2KfZhtuMXCIsXG4gICAgXCLaqdiv24zZiNixXCIsXG4gICAgXCLaqdix2K/YqNqG2YdcIixcbiAgICBcItqp2LHZhdin2YbbjFwiLFxuICAgIFwi2qnYsduM2YXbjFwiLFxuICAgIFwi2qnZhNio2KfYs9uMXCIsXG4gICAgXCLaqdmF2KfZhNuMXCIsXG4gICAgXCLaqdmI2LTaqduMXCIsXG4gICAgXCLaqdmH2YbZhdmI24zbjFwiLFxuICAgIFwi2qnbjNin2YZcIixcbiAgICBcItqp24zYp9mG24wgKNmG2KfZhSDYrtin2YbZiNin2K/ar9uMKVwiLFxuICAgIFwi2qnbjNmF24zYp9uM24xcIixcbiAgICBcItqv2YQg2YXYrdmF2K/bjFwiLFxuICAgIFwi2q/ZhNm+2KfbjNqv2KfZhtuMXCIsXG4gICAgXCLar9mG2KzbjFwiLFxuICAgIFwi2YTYp9is2YjYsdiv24xcIixcbiAgICBcItmE2KfahtuM2YbbjFwiLFxuICAgIFwi2YTYp9mH2YjYqtuMXCIsXG4gICAgXCLZhNmG2qnYsdin2YbbjFwiLFxuICAgIFwi2YTZiNqp2LNcIixcbiAgICBcItmF2KzYp9mH2K9cIixcbiAgICBcItmF2KzYqtio2KfbjNuMXCIsXG4gICAgXCLZhdis2KrYqNmI24xcIixcbiAgICBcItmF2KzYqtmH2K8g2LTYqNiz2KrYsduMXCIsXG4gICAgXCLZhdis2KrZh9iv24xcIixcbiAgICBcItmF2KzYsdivXCIsXG4gICAgXCLZhdit2KzZiNioXCIsXG4gICAgXCLZhdit2KzZiNio24xcIixcbiAgICBcItmF2K3Yr9ir24xcIixcbiAgICBcItmF2K3Zhdiv2LHYttin24zbjFwiLFxuICAgIFwi2YXYrdmF2K/bjFwiLFxuICAgIFwi2YXYr9iv24xcIixcbiAgICBcItmF2LHYp9iv2K7Yp9mG24xcIixcbiAgICBcItmF2LHYqti22YjbjFwiLFxuICAgIFwi2YXYs9iq2YjZgduMXCIsXG4gICAgXCLZhdi02KdcIixcbiAgICBcItmF2LXYp9it2KhcIixcbiAgICBcItmF2LXYqNin2K1cIixcbiAgICBcItmF2LXYqNin2K3igIzYstin2K/Zh1wiLFxuICAgIFwi2YXYt9mH2LHbjFwiLFxuICAgIFwi2YXYuNmB2LFcIixcbiAgICBcItmF2LnYp9ix2YFcIixcbiAgICBcItmF2LnYsdmI2YFcIixcbiAgICBcItmF2LnbjNmGXCIsXG4gICAgXCLZhdmB2KrYp9itXCIsXG4gICAgXCLZhdmB2KrYrVwiLFxuICAgIFwi2YXZgtiv2YVcIixcbiAgICBcItmF2YTYp9uM2LHbjFwiLFxuICAgIFwi2YXZhNqpXCIsXG4gICAgXCLZhdmE2qnbjNin2YZcIixcbiAgICBcItmF2YbZiNqG2YfYsduMXCIsXG4gICAgXCLZhdmI2K3Yr1wiLFxuICAgIFwi2YXZiNiz2YjbjFwiLFxuICAgIFwi2YXZiNiz2YjbjNin2YZcIixcbiAgICBcItmF2YfYp9is2LHYp9mG24xcIixcbiAgICBcItmF2YfYr9uM4oCM2b7ZiNixXCIsXG4gICAgXCLZhduM2LHYqNin2YLYsduMXCIsXG4gICAgXCLZhduM2LHYr9in2YXYp9iv24xcIixcbiAgICBcItmF24zYsdiy2KfYr9mHXCIsXG4gICAgXCLZhduM2LHYs9m+2KfYs9uMXCIsXG4gICAgXCLZhduM2LLYqNin2YbbjFwiLFxuICAgIFwi2YbYp9i42LHbjFwiLFxuICAgIFwi2YbYp9mF2YjYsVwiLFxuICAgIFwi2YbYrNmB24xcIixcbiAgICBcItmG2K/ZiNi02YZcIixcbiAgICBcItmG2LHYp9mC24xcIixcbiAgICBcItmG2LnZhdiq4oCM2LLYp9iv2YdcIixcbiAgICBcItmG2YLYr9uMXCIsXG4gICAgXCLZhtmC24zYqOKAjNiy2KfYr9mHXCIsXG4gICAgXCLZhtmI2KfYqFwiLFxuICAgIFwi2YbZiNio2K7YqlwiLFxuICAgIFwi2YbZiNio2K7YqtuMXCIsXG4gICAgXCLZhtmH2KfZiNmG2K/bjFwiLFxuICAgIFwi2YbbjNi02KfYqNmI2LHbjFwiLFxuICAgIFwi2YbbjNmE2YjZgdix24xcIixcbiAgICBcItmI2KfYq9mC24xcIixcbiAgICBcItmI2KfYudi4XCIsXG4gICAgXCLZiNin2LnYuOKAjNiy2KfYr9mHXCIsXG4gICAgXCLZiNin2LnYuNuMXCIsXG4gICAgXCLZiNqp24zZhNuMXCIsXG4gICAgXCLZh9in2LTZhduMXCIsXG4gICAgXCLZh9in2LTZhduMINix2YHYs9mG2KzYp9mG24xcIixcbiAgICBcItmH2KfYtNmF24zYp9mGXCIsXG4gICAgXCLZh9in2YXZiNmGXCIsXG4gICAgXCLZh9iv2KfbjNiqXCIsXG4gICAgXCLZh9ix2KfYqtuMXCIsXG4gICAgXCLZh9ix2YjbjFwiLFxuICAgIFwi2YfZhdin24zZiNmGXCIsXG4gICAgXCLZh9mF2KpcIixcbiAgICBcItmH2YXYr9in2YbbjFwiLFxuICAgIFwi2YfZiNi024zYp9ixXCIsXG4gICAgXCLZh9mI2YXZhlwiLFxuICAgIFwi24zYp9it2YLbjFwiLFxuICAgIFwi24zYp9iv2q/Yp9ixXCIsXG4gICAgXCLbjNir2LHYqNuMXCIsXG4gICAgXCLbjNmE2K/Yp1wiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcItii2YLYp9uMXCIsXG4gICAgXCLYrtin2YbZhVwiLFxuICAgIFwi2K/aqdiq2LFcIlxuICBdXG59O1xuIiwidmFyIGZyID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZnI7XG5mci50aXRsZSA9IFwiRnJlbmNoXCI7XG5mci5hZGRyZXNzID0ge1xuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCJcbiAgXSxcbiAgXCJzdHJlZXRfcHJlZml4XCI6IFtcbiAgICBcIkFsbMOpZSwgVm9pZVwiLFxuICAgIFwiUnVlXCIsXG4gICAgXCJBdmVudWVcIixcbiAgICBcIkJvdWxldmFyZFwiLFxuICAgIFwiUXVhaVwiLFxuICAgIFwiUGFzc2FnZVwiLFxuICAgIFwiSW1wYXNzZVwiLFxuICAgIFwiUGxhY2VcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCIjIMOpdGFnZVwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkFsc2FjZVwiLFxuICAgIFwiQXF1aXRhaW5lXCIsXG4gICAgXCJBdXZlcmduZVwiLFxuICAgIFwiQmFzc2UtTm9ybWFuZGllXCIsXG4gICAgXCJCb3VyZ29nbmVcIixcbiAgICBcIkJyZXRhZ25lXCIsXG4gICAgXCJDZW50cmVcIixcbiAgICBcIkNoYW1wYWduZS1BcmRlbm5lXCIsXG4gICAgXCJDb3JzZVwiLFxuICAgIFwiRnJhbmNoZS1Db210w6lcIixcbiAgICBcIkhhdXRlLU5vcm1hbmRpZVwiLFxuICAgIFwiw45sZS1kZS1GcmFuY2VcIixcbiAgICBcIkxhbmd1ZWRvYy1Sb3Vzc2lsbG9uXCIsXG4gICAgXCJMaW1vdXNpblwiLFxuICAgIFwiTG9ycmFpbmVcIixcbiAgICBcIk1pZGktUHlyw6luw6llc1wiLFxuICAgIFwiTm9yZC1QYXMtZGUtQ2FsYWlzXCIsXG4gICAgXCJQYXlzIGRlIGxhIExvaXJlXCIsXG4gICAgXCJQaWNhcmRpZVwiLFxuICAgIFwiUG9pdG91LUNoYXJlbnRlc1wiLFxuICAgIFwiUHJvdmVuY2UtQWxwZXMtQ8O0dGUgZCdBenVyXCIsXG4gICAgXCJSaMO0bmUtQWxwZXNcIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCJQYXJpc1wiLFxuICAgIFwiTWFyc2VpbGxlXCIsXG4gICAgXCJMeW9uXCIsXG4gICAgXCJUb3Vsb3VzZVwiLFxuICAgIFwiTmljZVwiLFxuICAgIFwiTmFudGVzXCIsXG4gICAgXCJTdHJhc2JvdXJnXCIsXG4gICAgXCJNb250cGVsbGllclwiLFxuICAgIFwiQm9yZGVhdXhcIixcbiAgICBcIkxpbGxlMTNcIixcbiAgICBcIlJlbm5lc1wiLFxuICAgIFwiUmVpbXNcIixcbiAgICBcIkxlIEhhdnJlXCIsXG4gICAgXCJTYWludC3DiXRpZW5uZVwiLFxuICAgIFwiVG91bG9uXCIsXG4gICAgXCJHcmVub2JsZVwiLFxuICAgIFwiRGlqb25cIixcbiAgICBcIkFuZ2Vyc1wiLFxuICAgIFwiU2FpbnQtRGVuaXNcIixcbiAgICBcIlZpbGxldXJiYW5uZVwiLFxuICAgIFwiTGUgTWFuc1wiLFxuICAgIFwiQWl4LWVuLVByb3ZlbmNlXCIsXG4gICAgXCJCcmVzdFwiLFxuICAgIFwiTsOubWVzXCIsXG4gICAgXCJMaW1vZ2VzXCIsXG4gICAgXCJDbGVybW9udC1GZXJyYW5kXCIsXG4gICAgXCJUb3Vyc1wiLFxuICAgIFwiQW1pZW5zXCIsXG4gICAgXCJNZXR6XCIsXG4gICAgXCJQZXJwaWduYW5cIixcbiAgICBcIkJlc2Fuw6dvblwiLFxuICAgIFwiT3Jsw6lhbnNcIixcbiAgICBcIkJvdWxvZ25lLUJpbGxhbmNvdXJ0XCIsXG4gICAgXCJNdWxob3VzZVwiLFxuICAgIFwiUm91ZW5cIixcbiAgICBcIkNhZW5cIixcbiAgICBcIk5hbmN5XCIsXG4gICAgXCJTYWludC1EZW5pc1wiLFxuICAgIFwiU2FpbnQtUGF1bFwiLFxuICAgIFwiTW9udHJldWlsXCIsXG4gICAgXCJBcmdlbnRldWlsXCIsXG4gICAgXCJSb3ViYWl4XCIsXG4gICAgXCJEdW5rZXJxdWUxNFwiLFxuICAgIFwiVG91cmNvaW5nXCIsXG4gICAgXCJOYW50ZXJyZVwiLFxuICAgIFwiQXZpZ25vblwiLFxuICAgIFwiQ3LDqXRlaWxcIixcbiAgICBcIlBvaXRpZXJzXCIsXG4gICAgXCJGb3J0LWRlLUZyYW5jZVwiLFxuICAgIFwiQ291cmJldm9pZVwiLFxuICAgIFwiVmVyc2FpbGxlc1wiLFxuICAgIFwiVml0cnktc3VyLVNlaW5lXCIsXG4gICAgXCJDb2xvbWJlc1wiLFxuICAgIFwiUGF1XCIsXG4gICAgXCJBdWxuYXktc291cy1Cb2lzXCIsXG4gICAgXCJBc25pw6hyZXMtc3VyLVNlaW5lXCIsXG4gICAgXCJSdWVpbC1NYWxtYWlzb25cIixcbiAgICBcIlNhaW50LVBpZXJyZVwiLFxuICAgIFwiQW50aWJlc1wiLFxuICAgIFwiU2FpbnQtTWF1ci1kZXMtRm9zc8Opc1wiLFxuICAgIFwiQ2hhbXBpZ255LXN1ci1NYXJuZVwiLFxuICAgIFwiTGEgUm9jaGVsbGVcIixcbiAgICBcIkF1YmVydmlsbGllcnNcIixcbiAgICBcIkNhbGFpc1wiLFxuICAgIFwiQ2FubmVzXCIsXG4gICAgXCJMZSBUYW1wb25cIixcbiAgICBcIkLDqXppZXJzXCIsXG4gICAgXCJDb2xtYXJcIixcbiAgICBcIkJvdXJnZXNcIixcbiAgICBcIkRyYW5jeVwiLFxuICAgIFwiTcOpcmlnbmFjXCIsXG4gICAgXCJTYWludC1OYXphaXJlXCIsXG4gICAgXCJWYWxlbmNlXCIsXG4gICAgXCJBamFjY2lvXCIsXG4gICAgXCJJc3N5LWxlcy1Nb3VsaW5lYXV4XCIsXG4gICAgXCJWaWxsZW5ldXZlLWQnQXNjcVwiLFxuICAgIFwiTGV2YWxsb2lzLVBlcnJldFwiLFxuICAgIFwiTm9pc3ktbGUtR3JhbmRcIixcbiAgICBcIlF1aW1wZXJcIixcbiAgICBcIkxhIFNleW5lLXN1ci1NZXJcIixcbiAgICBcIkFudG9ueVwiLFxuICAgIFwiVHJveWVzXCIsXG4gICAgXCJOZXVpbGx5LXN1ci1TZWluZVwiLFxuICAgIFwiU2FyY2VsbGVzXCIsXG4gICAgXCJMZXMgQWJ5bWVzXCIsXG4gICAgXCJWw6luaXNzaWV1eFwiLFxuICAgIFwiQ2xpY2h5XCIsXG4gICAgXCJMb3JpZW50XCIsXG4gICAgXCJQZXNzYWNcIixcbiAgICBcIkl2cnktc3VyLVNlaW5lXCIsXG4gICAgXCJDZXJneVwiLFxuICAgIFwiQ2F5ZW5uZVwiLFxuICAgIFwiTmlvcnRcIixcbiAgICBcIkNoYW1iw6lyeVwiLFxuICAgIFwiTW9udGF1YmFuXCIsXG4gICAgXCJTYWludC1RdWVudGluXCIsXG4gICAgXCJWaWxsZWp1aWZcIixcbiAgICBcIkh5w6hyZXNcIixcbiAgICBcIkJlYXV2YWlzXCIsXG4gICAgXCJDaG9sZXRcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X25hbWV9XCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcImRlIGwnQWJiYXllXCIsXG4gICAgXCJBZG9scGhlIE1pbGxlXCIsXG4gICAgXCJkJ0Fsw6lzaWFcIixcbiAgICBcImQnQXJnZW50ZXVpbFwiLFxuICAgIFwiZCdBc3Nhc1wiLFxuICAgIFwiZHUgQmFjXCIsXG4gICAgXCJkZSBQYXJpc1wiLFxuICAgIFwiTGEgQm/DqXRpZVwiLFxuICAgIFwiQm9uYXBhcnRlXCIsXG4gICAgXCJkZSBsYSBCw7tjaGVyaWVcIixcbiAgICBcImRlIENhdW1hcnRpblwiLFxuICAgIFwiQ2hhcmxlbWFnbmVcIixcbiAgICBcImR1IENoYXQtcXVpLVDDqmNoZVwiLFxuICAgIFwiZGUgbGEgQ2hhdXNzw6llLWQnQW50aW5cIixcbiAgICBcImR1IERhaG9tZXlcIixcbiAgICBcIkRhdXBoaW5lXCIsXG4gICAgXCJEZWxlc3NldXhcIixcbiAgICBcImR1IEZhdWJvdXJnIFNhaW50LUhvbm9yw6lcIixcbiAgICBcImR1IEZhdWJvdXJnLVNhaW50LURlbmlzXCIsXG4gICAgXCJkZSBsYSBGZXJyb25uZXJpZVwiLFxuICAgIFwiZGVzIEZyYW5jcy1Cb3VyZ2VvaXNcIixcbiAgICBcImRlcyBHcmFuZHMgQXVndXN0aW5zXCIsXG4gICAgXCJkZSBsYSBIYXJwZVwiLFxuICAgIFwiZHUgSGF2cmVcIixcbiAgICBcImRlIGxhIEh1Y2hldHRlXCIsXG4gICAgXCJKb3ViZXJ0XCIsXG4gICAgXCJMYWZmaXR0ZVwiLFxuICAgIFwiTGVwaWNcIixcbiAgICBcImRlcyBMb21iYXJkc1wiLFxuICAgIFwiTWFyY2FkZXRcIixcbiAgICBcIk1vbGnDqHJlXCIsXG4gICAgXCJNb25zaWV1ci1sZS1QcmluY2VcIixcbiAgICBcImRlIE1vbnRtb3JlbmN5XCIsXG4gICAgXCJNb250b3JndWVpbFwiLFxuICAgIFwiTW91ZmZldGFyZFwiLFxuICAgIFwiZGUgTmVzbGVcIixcbiAgICBcIk9iZXJrYW1wZlwiLFxuICAgIFwiZGUgbCdPZMOpb25cIixcbiAgICBcImQnT3JzZWxcIixcbiAgICBcImRlIGxhIFBhaXhcIixcbiAgICBcImRlcyBQYW5vcmFtYXNcIixcbiAgICBcIlBhc3RvdXJlbGxlXCIsXG4gICAgXCJQaWVycmUgQ2hhcnJvblwiLFxuICAgIFwiZGUgbGEgUG9tcGVcIixcbiAgICBcImRlIFByZXNib3VyZ1wiLFxuICAgIFwiZGUgUHJvdmVuY2VcIixcbiAgICBcImRlIFJpY2hlbGlldVwiLFxuICAgIFwiZGUgUml2b2xpXCIsXG4gICAgXCJkZXMgUm9zaWVyc1wiLFxuICAgIFwiUm95YWxlXCIsXG4gICAgXCJkJ0FiYmV2aWxsZVwiLFxuICAgIFwiU2FpbnQtSG9ub3LDqVwiLFxuICAgIFwiU2FpbnQtQmVybmFyZFwiLFxuICAgIFwiU2FpbnQtRGVuaXNcIixcbiAgICBcIlNhaW50LURvbWluaXF1ZVwiLFxuICAgIFwiU2FpbnQtSmFjcXVlc1wiLFxuICAgIFwiU2FpbnQtU8OpdmVyaW5cIixcbiAgICBcImRlcyBTYXVzc2FpZXNcIixcbiAgICBcImRlIFNlaW5lXCIsXG4gICAgXCJkZSBTb2xmw6lyaW5vXCIsXG4gICAgXCJEdSBTb21tZXJhcmRcIixcbiAgICBcImRlIFRpbHNpdHRcIixcbiAgICBcIlZhbmVhdVwiLFxuICAgIFwiZGUgVmF1Z2lyYXJkXCIsXG4gICAgXCJkZSBsYSBWaWN0b2lyZVwiLFxuICAgIFwiWmFka2luZVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcHJlZml4fSAje3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje2J1aWxkaW5nX251bWJlcn0gI3tzdHJlZXRfbmFtZX1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJGcmFuY2VcIlxuICBdXG59O1xuZnIuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiU0FSTFwiLFxuICAgIFwiU0FcIixcbiAgICBcIkVVUkxcIixcbiAgICBcIlNBU1wiLFxuICAgIFwiU0VNXCIsXG4gICAgXCJTQ09QXCIsXG4gICAgXCJHSUVcIixcbiAgICBcIkVJXCJcbiAgXSxcbiAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJBZGFwdGl2ZVwiLFxuICAgICAgXCJBZHZhbmNlZFwiLFxuICAgICAgXCJBbWVsaW9yYXRlZFwiLFxuICAgICAgXCJBc3NpbWlsYXRlZFwiLFxuICAgICAgXCJBdXRvbWF0ZWRcIixcbiAgICAgIFwiQmFsYW5jZWRcIixcbiAgICAgIFwiQnVzaW5lc3MtZm9jdXNlZFwiLFxuICAgICAgXCJDZW50cmFsaXplZFwiLFxuICAgICAgXCJDbG9uZWRcIixcbiAgICAgIFwiQ29tcGF0aWJsZVwiLFxuICAgICAgXCJDb25maWd1cmFibGVcIixcbiAgICAgIFwiQ3Jvc3MtZ3JvdXBcIixcbiAgICAgIFwiQ3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiQ3VzdG9tZXItZm9jdXNlZFwiLFxuICAgICAgXCJDdXN0b21pemFibGVcIixcbiAgICAgIFwiRGVjZW50cmFsaXplZFwiLFxuICAgICAgXCJEZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIkRldm9sdmVkXCIsXG4gICAgICBcIkRpZ2l0aXplZFwiLFxuICAgICAgXCJEaXN0cmlidXRlZFwiLFxuICAgICAgXCJEaXZlcnNlXCIsXG4gICAgICBcIkRvd24tc2l6ZWRcIixcbiAgICAgIFwiRW5oYW5jZWRcIixcbiAgICAgIFwiRW50ZXJwcmlzZS13aWRlXCIsXG4gICAgICBcIkVyZ29ub21pY1wiLFxuICAgICAgXCJFeGNsdXNpdmVcIixcbiAgICAgIFwiRXhwYW5kZWRcIixcbiAgICAgIFwiRXh0ZW5kZWRcIixcbiAgICAgIFwiRmFjZSB0byBmYWNlXCIsXG4gICAgICBcIkZvY3VzZWRcIixcbiAgICAgIFwiRnJvbnQtbGluZVwiLFxuICAgICAgXCJGdWxseS1jb25maWd1cmFibGVcIixcbiAgICAgIFwiRnVuY3Rpb24tYmFzZWRcIixcbiAgICAgIFwiRnVuZGFtZW50YWxcIixcbiAgICAgIFwiRnV0dXJlLXByb29mZWRcIixcbiAgICAgIFwiR3Jhc3Mtcm9vdHNcIixcbiAgICAgIFwiSG9yaXpvbnRhbFwiLFxuICAgICAgXCJJbXBsZW1lbnRlZFwiLFxuICAgICAgXCJJbm5vdmF0aXZlXCIsXG4gICAgICBcIkludGVncmF0ZWRcIixcbiAgICAgIFwiSW50dWl0aXZlXCIsXG4gICAgICBcIkludmVyc2VcIixcbiAgICAgIFwiTWFuYWdlZFwiLFxuICAgICAgXCJNYW5kYXRvcnlcIixcbiAgICAgIFwiTW9uaXRvcmVkXCIsXG4gICAgICBcIk11bHRpLWNoYW5uZWxsZWRcIixcbiAgICAgIFwiTXVsdGktbGF0ZXJhbFwiLFxuICAgICAgXCJNdWx0aS1sYXllcmVkXCIsXG4gICAgICBcIk11bHRpLXRpZXJlZFwiLFxuICAgICAgXCJOZXR3b3JrZWRcIixcbiAgICAgIFwiT2JqZWN0LWJhc2VkXCIsXG4gICAgICBcIk9wZW4tYXJjaGl0ZWN0ZWRcIixcbiAgICAgIFwiT3Blbi1zb3VyY2VcIixcbiAgICAgIFwiT3BlcmF0aXZlXCIsXG4gICAgICBcIk9wdGltaXplZFwiLFxuICAgICAgXCJPcHRpb25hbFwiLFxuICAgICAgXCJPcmdhbmljXCIsXG4gICAgICBcIk9yZ2FuaXplZFwiLFxuICAgICAgXCJQZXJzZXZlcmluZ1wiLFxuICAgICAgXCJQZXJzaXN0ZW50XCIsXG4gICAgICBcIlBoYXNlZFwiLFxuICAgICAgXCJQb2xhcmlzZWRcIixcbiAgICAgIFwiUHJlLWVtcHRpdmVcIixcbiAgICAgIFwiUHJvYWN0aXZlXCIsXG4gICAgICBcIlByb2ZpdC1mb2N1c2VkXCIsXG4gICAgICBcIlByb2ZvdW5kXCIsXG4gICAgICBcIlByb2dyYW1tYWJsZVwiLFxuICAgICAgXCJQcm9ncmVzc2l2ZVwiLFxuICAgICAgXCJQdWJsaWMta2V5XCIsXG4gICAgICBcIlF1YWxpdHktZm9jdXNlZFwiLFxuICAgICAgXCJSZWFjdGl2ZVwiLFxuICAgICAgXCJSZWFsaWduZWRcIixcbiAgICAgIFwiUmUtY29udGV4dHVhbGl6ZWRcIixcbiAgICAgIFwiUmUtZW5naW5lZXJlZFwiLFxuICAgICAgXCJSZWR1Y2VkXCIsXG4gICAgICBcIlJldmVyc2UtZW5naW5lZXJlZFwiLFxuICAgICAgXCJSaWdodC1zaXplZFwiLFxuICAgICAgXCJSb2J1c3RcIixcbiAgICAgIFwiU2VhbWxlc3NcIixcbiAgICAgIFwiU2VjdXJlZFwiLFxuICAgICAgXCJTZWxmLWVuYWJsaW5nXCIsXG4gICAgICBcIlNoYXJhYmxlXCIsXG4gICAgICBcIlN0YW5kLWFsb25lXCIsXG4gICAgICBcIlN0cmVhbWxpbmVkXCIsXG4gICAgICBcIlN3aXRjaGFibGVcIixcbiAgICAgIFwiU3luY2hyb25pc2VkXCIsXG4gICAgICBcIlN5bmVyZ2lzdGljXCIsXG4gICAgICBcIlN5bmVyZ2l6ZWRcIixcbiAgICAgIFwiVGVhbS1vcmllbnRlZFwiLFxuICAgICAgXCJUb3RhbFwiLFxuICAgICAgXCJUcmlwbGUtYnVmZmVyZWRcIixcbiAgICAgIFwiVW5pdmVyc2FsXCIsXG4gICAgICBcIlVwLXNpemVkXCIsXG4gICAgICBcIlVwZ3JhZGFibGVcIixcbiAgICAgIFwiVXNlci1jZW50cmljXCIsXG4gICAgICBcIlVzZXItZnJpZW5kbHlcIixcbiAgICAgIFwiVmVyc2F0aWxlXCIsXG4gICAgICBcIlZpcnR1YWxcIixcbiAgICAgIFwiVmlzaW9uYXJ5XCIsXG4gICAgICBcIlZpc2lvbi1vcmllbnRlZFwiXG4gICAgXSxcbiAgICBcImRlc2NyaXB0b3JcIjpcbiAgICBbXG4gICAgICBcIjI0IGhvdXJcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCIzcmQgZ2VuZXJhdGlvblwiLFxuICAgICAgXCI0dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCI1dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCI2dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCJhY3R1YXRpbmdcIixcbiAgICAgIFwiYW5hbHl6aW5nXCIsXG4gICAgICBcImFzeW1tZXRyaWNcIixcbiAgICAgIFwiYXN5bmNocm9ub3VzXCIsXG4gICAgICBcImF0dGl0dWRlLW9yaWVudGVkXCIsXG4gICAgICBcImJhY2tncm91bmRcIixcbiAgICAgIFwiYmFuZHdpZHRoLW1vbml0b3JlZFwiLFxuICAgICAgXCJiaS1kaXJlY3Rpb25hbFwiLFxuICAgICAgXCJiaWZ1cmNhdGVkXCIsXG4gICAgICBcImJvdHRvbS1saW5lXCIsXG4gICAgICBcImNsZWFyLXRoaW5raW5nXCIsXG4gICAgICBcImNsaWVudC1kcml2ZW5cIixcbiAgICAgIFwiY2xpZW50LXNlcnZlclwiLFxuICAgICAgXCJjb2hlcmVudFwiLFxuICAgICAgXCJjb2hlc2l2ZVwiLFxuICAgICAgXCJjb21wb3NpdGVcIixcbiAgICAgIFwiY29udGV4dC1zZW5zaXRpdmVcIixcbiAgICAgIFwiY29udGV4dHVhbGx5LWJhc2VkXCIsXG4gICAgICBcImNvbnRlbnQtYmFzZWRcIixcbiAgICAgIFwiZGVkaWNhdGVkXCIsXG4gICAgICBcImRlbWFuZC1kcml2ZW5cIixcbiAgICAgIFwiZGlkYWN0aWNcIixcbiAgICAgIFwiZGlyZWN0aW9uYWxcIixcbiAgICAgIFwiZGlzY3JldGVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiZWNvLWNlbnRyaWNcIixcbiAgICAgIFwiZW1wb3dlcmluZ1wiLFxuICAgICAgXCJlbmNvbXBhc3NpbmdcIixcbiAgICAgIFwiZXZlbi1rZWVsZWRcIixcbiAgICAgIFwiZXhlY3V0aXZlXCIsXG4gICAgICBcImV4cGxpY2l0XCIsXG4gICAgICBcImV4dWRpbmdcIixcbiAgICAgIFwiZmF1bHQtdG9sZXJhbnRcIixcbiAgICAgIFwiZm9yZWdyb3VuZFwiLFxuICAgICAgXCJmcmVzaC10aGlua2luZ1wiLFxuICAgICAgXCJmdWxsLXJhbmdlXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJncmlkLWVuYWJsZWRcIixcbiAgICAgIFwiaGV1cmlzdGljXCIsXG4gICAgICBcImhpZ2gtbGV2ZWxcIixcbiAgICAgIFwiaG9saXN0aWNcIixcbiAgICAgIFwiaG9tb2dlbmVvdXNcIixcbiAgICAgIFwiaHVtYW4tcmVzb3VyY2VcIixcbiAgICAgIFwiaHlicmlkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJpbmNyZW1lbnRhbFwiLFxuICAgICAgXCJpbnRhbmdpYmxlXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImludGVybWVkaWF0ZVwiLFxuICAgICAgXCJsZWFkaW5nIGVkZ2VcIixcbiAgICAgIFwibG9jYWxcIixcbiAgICAgIFwibG9naXN0aWNhbFwiLFxuICAgICAgXCJtYXhpbWl6ZWRcIixcbiAgICAgIFwibWV0aG9kaWNhbFwiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcIm1vYmlsZVwiLFxuICAgICAgXCJtb2R1bGFyXCIsXG4gICAgICBcIm1vdGl2YXRpbmdcIixcbiAgICAgIFwibXVsdGltZWRpYVwiLFxuICAgICAgXCJtdWx0aS1zdGF0ZVwiLFxuICAgICAgXCJtdWx0aS10YXNraW5nXCIsXG4gICAgICBcIm5hdGlvbmFsXCIsXG4gICAgICBcIm5lZWRzLWJhc2VkXCIsXG4gICAgICBcIm5ldXRyYWxcIixcbiAgICAgIFwibmV4dCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIm5vbi12b2xhdGlsZVwiLFxuICAgICAgXCJvYmplY3Qtb3JpZW50ZWRcIixcbiAgICAgIFwib3B0aW1hbFwiLFxuICAgICAgXCJvcHRpbWl6aW5nXCIsXG4gICAgICBcInJhZGljYWxcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcInJlY2lwcm9jYWxcIixcbiAgICAgIFwicmVnaW9uYWxcIixcbiAgICAgIFwicmVzcG9uc2l2ZVwiLFxuICAgICAgXCJzY2FsYWJsZVwiLFxuICAgICAgXCJzZWNvbmRhcnlcIixcbiAgICAgIFwic29sdXRpb24tb3JpZW50ZWRcIixcbiAgICAgIFwic3RhYmxlXCIsXG4gICAgICBcInN0YXRpY1wiLFxuICAgICAgXCJzeXN0ZW1hdGljXCIsXG4gICAgICBcInN5c3RlbWljXCIsXG4gICAgICBcInN5c3RlbS13b3J0aHlcIixcbiAgICAgIFwidGFuZ2libGVcIixcbiAgICAgIFwidGVydGlhcnlcIixcbiAgICAgIFwidHJhbnNpdGlvbmFsXCIsXG4gICAgICBcInVuaWZvcm1cIixcbiAgICAgIFwidXB3YXJkLXRyZW5kaW5nXCIsXG4gICAgICBcInVzZXItZmFjaW5nXCIsXG4gICAgICBcInZhbHVlLWFkZGVkXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcIndlbGwtbW9kdWxhdGVkXCIsXG4gICAgICBcInplcm8gYWRtaW5pc3RyYXRpb25cIixcbiAgICAgIFwiemVybyBkZWZlY3RcIixcbiAgICAgIFwiemVybyB0b2xlcmFuY2VcIlxuICAgIF0sXG4gICAgXCJub3VuXCI6XG4gICAgW1xuICAgICAgXCJhYmlsaXR5XCIsXG4gICAgICBcImFjY2Vzc1wiLFxuICAgICAgXCJhZGFwdGVyXCIsXG4gICAgICBcImFsZ29yaXRobVwiLFxuICAgICAgXCJhbGxpYW5jZVwiLFxuICAgICAgXCJhbmFseXplclwiLFxuICAgICAgXCJhcHBsaWNhdGlvblwiLFxuICAgICAgXCJhcHByb2FjaFwiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVcIixcbiAgICAgIFwiYXJjaGl2ZVwiLFxuICAgICAgXCJhcnRpZmljaWFsIGludGVsbGlnZW5jZVwiLFxuICAgICAgXCJhcnJheVwiLFxuICAgICAgXCJhdHRpdHVkZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiYnVkZ2V0YXJ5IG1hbmFnZW1lbnRcIixcbiAgICAgIFwiY2FwYWJpbGl0eVwiLFxuICAgICAgXCJjYXBhY2l0eVwiLFxuICAgICAgXCJjaGFsbGVuZ2VcIixcbiAgICAgIFwiY2lyY3VpdFwiLFxuICAgICAgXCJjb2xsYWJvcmF0aW9uXCIsXG4gICAgICBcImNvbXBsZXhpdHlcIixcbiAgICAgIFwiY29uY2VwdFwiLFxuICAgICAgXCJjb25nbG9tZXJhdGlvblwiLFxuICAgICAgXCJjb250aW5nZW5jeVwiLFxuICAgICAgXCJjb3JlXCIsXG4gICAgICBcImN1c3RvbWVyIGxveWFsdHlcIixcbiAgICAgIFwiZGF0YWJhc2VcIixcbiAgICAgIFwiZGF0YS13YXJlaG91c2VcIixcbiAgICAgIFwiZGVmaW5pdGlvblwiLFxuICAgICAgXCJlbXVsYXRpb25cIixcbiAgICAgIFwiZW5jb2RpbmdcIixcbiAgICAgIFwiZW5jcnlwdGlvblwiLFxuICAgICAgXCJleHRyYW5ldFwiLFxuICAgICAgXCJmaXJtd2FyZVwiLFxuICAgICAgXCJmbGV4aWJpbGl0eVwiLFxuICAgICAgXCJmb2N1cyBncm91cFwiLFxuICAgICAgXCJmb3JlY2FzdFwiLFxuICAgICAgXCJmcmFtZVwiLFxuICAgICAgXCJmcmFtZXdvcmtcIixcbiAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcIkdyYXBoaWMgSW50ZXJmYWNlXCIsXG4gICAgICBcImdyb3Vwd2FyZVwiLFxuICAgICAgXCJHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VcIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiaGVscC1kZXNrXCIsXG4gICAgICBcImhpZXJhcmNoeVwiLFxuICAgICAgXCJodWJcIixcbiAgICAgIFwiaW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiaW5mby1tZWRpYXJpZXNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiaW5pdGlhdGl2ZVwiLFxuICAgICAgXCJpbnN0YWxsYXRpb25cIixcbiAgICAgIFwiaW5zdHJ1Y3Rpb24gc2V0XCIsXG4gICAgICBcImludGVyZmFjZVwiLFxuICAgICAgXCJpbnRlcm5ldCBzb2x1dGlvblwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJrbm93bGVkZ2UgdXNlclwiLFxuICAgICAgXCJrbm93bGVkZ2UgYmFzZVwiLFxuICAgICAgXCJsb2NhbCBhcmVhIG5ldHdvcmtcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwibWF0cmljZXNcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcIm1ldGhvZG9sb2d5XCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmF0aW9uXCIsXG4gICAgICBcIm1vZGVsXCIsXG4gICAgICBcIm1vZGVyYXRvclwiLFxuICAgICAgXCJtb25pdG9yaW5nXCIsXG4gICAgICBcIm1vcmF0b3JpdW1cIixcbiAgICAgIFwibmV1cmFsLW5ldFwiLFxuICAgICAgXCJvcGVuIGFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJvcGVuIHN5c3RlbVwiLFxuICAgICAgXCJvcmNoZXN0cmF0aW9uXCIsXG4gICAgICBcInBhcmFkaWdtXCIsXG4gICAgICBcInBhcmFsbGVsaXNtXCIsXG4gICAgICBcInBvbGljeVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwicHJpY2luZyBzdHJ1Y3R1cmVcIixcbiAgICAgIFwicHJvY2VzcyBpbXByb3ZlbWVudFwiLFxuICAgICAgXCJwcm9kdWN0XCIsXG4gICAgICBcInByb2R1Y3Rpdml0eVwiLFxuICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICBcInByb2plY3Rpb25cIixcbiAgICAgIFwicHJvdG9jb2xcIixcbiAgICAgIFwic2VjdXJlZCBsaW5lXCIsXG4gICAgICBcInNlcnZpY2UtZGVza1wiLFxuICAgICAgXCJzb2Z0d2FyZVwiLFxuICAgICAgXCJzb2x1dGlvblwiLFxuICAgICAgXCJzdGFuZGFyZGl6YXRpb25cIixcbiAgICAgIFwic3RyYXRlZ3lcIixcbiAgICAgIFwic3RydWN0dXJlXCIsXG4gICAgICBcInN1Y2Nlc3NcIixcbiAgICAgIFwic3VwZXJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VwcG9ydFwiLFxuICAgICAgXCJzeW5lcmd5XCIsXG4gICAgICBcInN5c3RlbSBlbmdpbmVcIixcbiAgICAgIFwidGFzay1mb3JjZVwiLFxuICAgICAgXCJ0aHJvdWdocHV0XCIsXG4gICAgICBcInRpbWUtZnJhbWVcIixcbiAgICAgIFwidG9vbHNldFwiLFxuICAgICAgXCJ1dGlsaXNhdGlvblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcIndvcmtmb3JjZVwiXG4gIF0sXG4gIFwiYnNfdmVyYlwiOiBbXG4gICAgICBcImltcGxlbWVudFwiLFxuICAgICAgXCJ1dGlsaXplXCIsXG4gICAgICBcImludGVncmF0ZVwiLFxuICAgICAgXCJzdHJlYW1saW5lXCIsXG4gICAgICBcIm9wdGltaXplXCIsXG4gICAgICBcImV2b2x2ZVwiLFxuICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgIFwiZW1icmFjZVwiLFxuICAgICAgXCJlbmFibGVcIixcbiAgICAgIFwib3JjaGVzdHJhdGVcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwicmVpbnZlbnRcIixcbiAgICAgIFwiYWdncmVnYXRlXCIsXG4gICAgICBcImFyY2hpdGVjdFwiLFxuICAgICAgXCJlbmhhbmNlXCIsXG4gICAgICBcImluY2VudGl2aXplXCIsXG4gICAgICBcIm1vcnBoXCIsXG4gICAgICBcImVtcG93ZXJcIixcbiAgICAgIFwiZW52aXNpb25lZXJcIixcbiAgICAgIFwibW9uZXRpemVcIixcbiAgICAgIFwiaGFybmVzc1wiLFxuICAgICAgXCJmYWNpbGl0YXRlXCIsXG4gICAgICBcInNlaXplXCIsXG4gICAgICBcImRpc2ludGVybWVkaWF0ZVwiLFxuICAgICAgXCJzeW5lcmdpemVcIixcbiAgICAgIFwic3RyYXRlZ2l6ZVwiLFxuICAgICAgXCJkZXBsb3lcIixcbiAgICAgIFwiYnJhbmRcIixcbiAgICAgIFwiZ3Jvd1wiLFxuICAgICAgXCJ0YXJnZXRcIixcbiAgICAgIFwic3luZGljYXRlXCIsXG4gICAgICBcInN5bnRoZXNpemVcIixcbiAgICAgIFwiZGVsaXZlclwiLFxuICAgICAgXCJtZXNoXCIsXG4gICAgICBcImluY3ViYXRlXCIsXG4gICAgICBcImVuZ2FnZVwiLFxuICAgICAgXCJtYXhpbWl6ZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiZXhwZWRpdGVcIixcbiAgICAgIFwicmVpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwid2hpdGVib2FyZFwiLFxuICAgICAgXCJ2aXN1YWxpemVcIixcbiAgICAgIFwicmVwdXJwb3NlXCIsXG4gICAgICBcImlubm92YXRlXCIsXG4gICAgICBcInNjYWxlXCIsXG4gICAgICBcInVubGVhc2hcIixcbiAgICAgIFwiZHJpdmVcIixcbiAgICAgIFwiZXh0ZW5kXCIsXG4gICAgICBcImVuZ2luZWVyXCIsXG4gICAgICBcInJldm9sdXRpb25pemVcIixcbiAgICAgIFwiZ2VuZXJhdGVcIixcbiAgICAgIFwiZXhwbG9pdFwiLFxuICAgICAgXCJ0cmFuc2l0aW9uXCIsXG4gICAgICBcImUtZW5hYmxlXCIsXG4gICAgICBcIml0ZXJhdGVcIixcbiAgICAgIFwiY3VsdGl2YXRlXCIsXG4gICAgICBcIm1hdHJpeFwiLFxuICAgICAgXCJwcm9kdWN0aXplXCIsXG4gICAgICBcInJlZGVmaW5lXCIsXG4gICAgICBcInJlY29udGV4dHVhbGl6ZVwiXG4gICAgXSxcbiAgICBcImJzX2FkamVjdGl2ZVwiOlxuICAgIFtcbiAgICAgIFwiY2xpY2tzLWFuZC1tb3J0YXJcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwidmVydGljYWxcIixcbiAgICAgIFwicHJvYWN0aXZlXCIsXG4gICAgICBcInJvYnVzdFwiLFxuICAgICAgXCJyZXZvbHV0aW9uYXJ5XCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcImxlYWRpbmctZWRnZVwiLFxuICAgICAgXCJpbm5vdmF0aXZlXCIsXG4gICAgICBcImludHVpdGl2ZVwiLFxuICAgICAgXCJzdHJhdGVnaWNcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcInN0aWNreVwiLFxuICAgICAgXCJvbmUtdG8tb25lXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiZW5kLXRvLWVuZFwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiQjJCXCIsXG4gICAgICBcIkIyQ1wiLFxuICAgICAgXCJncmFudWxhclwiLFxuICAgICAgXCJmcmljdGlvbmxlc3NcIixcbiAgICAgIFwidmlydHVhbFwiLFxuICAgICAgXCJ2aXJhbFwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcIjI0LzM2NVwiLFxuICAgICAgXCJiZXN0LW9mLWJyZWVkXCIsXG4gICAgICBcImtpbGxlclwiLFxuICAgICAgXCJtYWduZXRpY1wiLFxuICAgICAgXCJibGVlZGluZy1lZGdlXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImRvdC1jb21cIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50XCIsXG4gICAgICBcImZyb250LWVuZFwiLFxuICAgICAgXCJkaXN0cmlidXRlZFwiLFxuICAgICAgXCJzZWFtbGVzc1wiLFxuICAgICAgXCJleHRlbnNpYmxlXCIsXG4gICAgICBcInR1cm4ta2V5XCIsXG4gICAgICBcIndvcmxkLWNsYXNzXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcImNyb3NzLW1lZGlhXCIsXG4gICAgICBcInN5bmVyZ2lzdGljXCIsXG4gICAgICBcImJyaWNrcy1hbmQtY2xpY2tzXCIsXG4gICAgICBcIm91dC1vZi10aGUtYm94XCIsXG4gICAgICBcImVudGVycHJpc2VcIixcbiAgICAgIFwiaW50ZWdyYXRlZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwid2lyZWxlc3NcIixcbiAgICAgIFwidHJhbnNwYXJlbnRcIixcbiAgICAgIFwibmV4dC1nZW5lcmF0aW9uXCIsXG4gICAgICBcImN1dHRpbmctZWRnZVwiLFxuICAgICAgXCJ1c2VyLWNlbnRyaWNcIixcbiAgICAgIFwidmlzaW9uYXJ5XCIsXG4gICAgICBcImN1c3RvbWl6ZWRcIixcbiAgICAgIFwidWJpcXVpdG91c1wiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwiY29tcGVsbGluZ1wiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJyaWNoXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcInN5bmVyZ2llc1wiLFxuICAgICAgXCJ3ZWItcmVhZGluZXNzXCIsXG4gICAgICBcInBhcmFkaWdtc1wiLFxuICAgICAgXCJtYXJrZXRzXCIsXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZXNcIixcbiAgICAgIFwicGxhdGZvcm1zXCIsXG4gICAgICBcImluaXRpYXRpdmVzXCIsXG4gICAgICBcImNoYW5uZWxzXCIsXG4gICAgICBcImV5ZWJhbGxzXCIsXG4gICAgICBcImNvbW11bml0aWVzXCIsXG4gICAgICBcIlJPSVwiLFxuICAgICAgXCJzb2x1dGlvbnNcIixcbiAgICAgIFwiZS10YWlsZXJzXCIsXG4gICAgICBcImUtc2VydmljZXNcIixcbiAgICAgIFwiYWN0aW9uLWl0ZW1zXCIsXG4gICAgICBcInBvcnRhbHNcIixcbiAgICAgIFwibmljaGVzXCIsXG4gICAgICBcInRlY2hub2xvZ2llc1wiLFxuICAgICAgXCJjb250ZW50XCIsXG4gICAgICBcInZvcnRhbHNcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW5jZVwiLFxuICAgICAgXCJyZWxhdGlvbnNoaXBzXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZXNcIixcbiAgICAgIFwiaW50ZXJmYWNlc1wiLFxuICAgICAgXCJlLW1hcmtldHNcIixcbiAgICAgIFwiZS1jb21tZXJjZVwiLFxuICAgICAgXCJzeXN0ZW1zXCIsXG4gICAgICBcImJhbmR3aWR0aFwiLFxuICAgICAgXCJpbmZvbWVkaWFyaWVzXCIsXG4gICAgICBcIm1vZGVsc1wiLFxuICAgICAgXCJtaW5kc2hhcmVcIixcbiAgICAgIFwiZGVsaXZlcmFibGVzXCIsXG4gICAgICBcInVzZXJzXCIsXG4gICAgICBcInNjaGVtYXNcIixcbiAgICAgIFwibmV0d29ya3NcIixcbiAgICAgIFwiYXBwbGljYXRpb25zXCIsXG4gICAgICBcIm1ldHJpY3NcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiZXhwZXJpZW5jZXNcIixcbiAgICAgIFwid2ViIHNlcnZpY2VzXCIsXG4gICAgICBcIm1ldGhvZG9sb2dpZXNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSBldCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5mci5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uZnJcIixcbiAgICBcImhvdG1haWwuZnJcIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJmclwiLFxuICAgIFwiZXVcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmZyLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xuZnIubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkVuem9cIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJNYXRoaXNcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJUaMOpb1wiLFxuICAgIFwiVG9tXCIsXG4gICAgXCJMb3Vpc1wiLFxuICAgIFwiUmFwaGHDq2xcIixcbiAgICBcIkNsw6ltZW50XCIsXG4gICAgXCJMw6lvXCIsXG4gICAgXCJNYXRow6lvXCIsXG4gICAgXCJNYXhpbWVcIixcbiAgICBcIkFsZXhhbmRyZVwiLFxuICAgIFwiQW50b2luZVwiLFxuICAgIFwiWWFuaXNcIixcbiAgICBcIlBhdWxcIixcbiAgICBcIkJhcHRpc3RlXCIsXG4gICAgXCJBbGV4aXNcIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkFydGh1clwiLFxuICAgIFwiSnVsZXNcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJOb2FoXCIsXG4gICAgXCJRdWVudGluXCIsXG4gICAgXCJBeGVsXCIsXG4gICAgXCJFdmFuXCIsXG4gICAgXCJNYXR0w6lvXCIsXG4gICAgXCJSb21haW5cIixcbiAgICBcIlZhbGVudGluXCIsXG4gICAgXCJNYXhlbmNlXCIsXG4gICAgXCJOb2FcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIk5pY29sYXNcIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiTWFlbFwiLFxuICAgIFwiUGllcnJlXCIsXG4gICAgXCJSYXlhblwiLFxuICAgIFwiVmljdG9yXCIsXG4gICAgXCJNb2hhbWVkXCIsXG4gICAgXCJBZHJpZW5cIixcbiAgICBcIkt5bGlhblwiLFxuICAgIFwiU2FjaGFcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJMw6lhXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiTWFub25cIixcbiAgICBcIkNobG/DqVwiLFxuICAgIFwiQ2FtaWxsZVwiLFxuICAgIFwiSW5lc1wiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIkphZGVcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkFuYcOvc1wiLFxuICAgIFwiTHVjaWVcIixcbiAgICBcIk9jw6lhbmVcIixcbiAgICBcIkxpbG91XCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJSb21hbmVcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIlpvZVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIk1hdGhpbGRlXCIsXG4gICAgXCJMb3Vpc2VcIixcbiAgICBcIkp1bGlldHRlXCIsXG4gICAgXCJDbMOpbWVuY2VcIixcbiAgICBcIkPDqWxpYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkxlbmFcIixcbiAgICBcIk1hw6tseXNcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQW1icmVcIixcbiAgICBcIk1hZXZhXCIsXG4gICAgXCJQYXVsaW5lXCIsXG4gICAgXCJMaW5hXCIsXG4gICAgXCJKZWFubmVcIixcbiAgICBcIkxvdVwiLFxuICAgIFwiTm/DqW1pZVwiLFxuICAgIFwiSnVzdGluZVwiLFxuICAgIFwiTG91bmFcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiRW1pbGllXCIsXG4gICAgXCJDYXJsYVwiLFxuICAgIFwiTWHDq2xsZVwiLFxuICAgIFwiQWxpY2lhXCIsXG4gICAgXCJNw6lsaXNzYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiQmVybmFyZFwiLFxuICAgIFwiRHVib2lzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlJvYmVydFwiLFxuICAgIFwiUmljaGFyZFwiLFxuICAgIFwiUGV0aXRcIixcbiAgICBcIkR1cmFuZFwiLFxuICAgIFwiTGVyb3lcIixcbiAgICBcIk1vcmVhdVwiLFxuICAgIFwiU2ltb25cIixcbiAgICBcIkxhdXJlbnRcIixcbiAgICBcIkxlZmVidnJlXCIsXG4gICAgXCJNaWNoZWxcIixcbiAgICBcIkdhcmNpYVwiLFxuICAgIFwiRGF2aWRcIixcbiAgICBcIkJlcnRyYW5kXCIsXG4gICAgXCJSb3V4XCIsXG4gICAgXCJWaW5jZW50XCIsXG4gICAgXCJGb3VybmllclwiLFxuICAgIFwiTW9yZWxcIixcbiAgICBcIkdpcmFyZFwiLFxuICAgIFwiQW5kcmVcIixcbiAgICBcIkxlZmV2cmVcIixcbiAgICBcIk1lcmNpZXJcIixcbiAgICBcIkR1cG9udFwiLFxuICAgIFwiTGFtYmVydFwiLFxuICAgIFwiQm9ubmV0XCIsXG4gICAgXCJGcmFuY29pc1wiLFxuICAgIFwiTWFydGluZXpcIixcbiAgICBcIkxlZ3JhbmRcIixcbiAgICBcIkdhcm5pZXJcIixcbiAgICBcIkZhdXJlXCIsXG4gICAgXCJSb3Vzc2VhdVwiLFxuICAgIFwiQmxhbmNcIixcbiAgICBcIkd1ZXJpblwiLFxuICAgIFwiTXVsbGVyXCIsXG4gICAgXCJIZW5yeVwiLFxuICAgIFwiUm91c3NlbFwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiUGVycmluXCIsXG4gICAgXCJNb3JpblwiLFxuICAgIFwiTWF0aGlldVwiLFxuICAgIFwiQ2xlbWVudFwiLFxuICAgIFwiR2F1dGhpZXJcIixcbiAgICBcIkR1bW9udFwiLFxuICAgIFwiTG9wZXpcIixcbiAgICBcIkZvbnRhaW5lXCIsXG4gICAgXCJDaGV2YWxpZXJcIixcbiAgICBcIlJvYmluXCIsXG4gICAgXCJNYXNzb25cIixcbiAgICBcIlNhbmNoZXpcIixcbiAgICBcIkdlcmFyZFwiLFxuICAgIFwiTmd1eWVuXCIsXG4gICAgXCJCb3llclwiLFxuICAgIFwiRGVuaXNcIixcbiAgICBcIkxlbWFpcmVcIixcbiAgICBcIkR1dmFsXCIsXG4gICAgXCJKb2x5XCIsXG4gICAgXCJHYXV0aWVyXCIsXG4gICAgXCJSb2dlclwiLFxuICAgIFwiUm9jaGVcIixcbiAgICBcIlJveVwiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiTWV5ZXJcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJNZXVuaWVyXCIsXG4gICAgXCJKZWFuXCIsXG4gICAgXCJQZXJlelwiLFxuICAgIFwiTWFyY2hhbmRcIixcbiAgICBcIkR1Zm91clwiLFxuICAgIFwiQmxhbmNoYXJkXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiQmFyYmllclwiLFxuICAgIFwiQnJ1blwiLFxuICAgIFwiRHVtYXNcIixcbiAgICBcIkJydW5ldFwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiTGVyb3V4XCIsXG4gICAgXCJDb2xpblwiLFxuICAgIFwiRmVybmFuZGV6XCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlJlbmFyZFwiLFxuICAgIFwiQXJuYXVkXCIsXG4gICAgXCJSb2xsYW5kXCIsXG4gICAgXCJDYXJvblwiLFxuICAgIFwiQXViZXJ0XCIsXG4gICAgXCJHaXJhdWRcIixcbiAgICBcIkxlY2xlcmNcIixcbiAgICBcIlZpZGFsXCIsXG4gICAgXCJCb3VyZ2VvaXNcIixcbiAgICBcIlJlbmF1ZFwiLFxuICAgIFwiTGVtb2luZVwiLFxuICAgIFwiUGljYXJkXCIsXG4gICAgXCJHYWlsbGFyZFwiLFxuICAgIFwiUGhpbGlwcGVcIixcbiAgICBcIkxlY2xlcmNxXCIsXG4gICAgXCJMYWNyb2l4XCIsXG4gICAgXCJGYWJyZVwiLFxuICAgIFwiRHVwdWlzXCIsXG4gICAgXCJPbGl2aWVyXCIsXG4gICAgXCJSb2RyaWd1ZXpcIixcbiAgICBcIkRhIHNpbHZhXCIsXG4gICAgXCJIdWJlcnRcIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJDaGFybGVzXCIsXG4gICAgXCJHdWlsbG90XCIsXG4gICAgXCJSaXZpZXJlXCIsXG4gICAgXCJMZSBnYWxsXCIsXG4gICAgXCJHdWlsbGF1bWVcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIlJleVwiLFxuICAgIFwiTW91bGluXCIsXG4gICAgXCJHb256YWxlelwiLFxuICAgIFwiQmVyZ2VyXCIsXG4gICAgXCJMZWNvbXRlXCIsXG4gICAgXCJNZW5hcmRcIixcbiAgICBcIkZsZXVyeVwiLFxuICAgIFwiRGVzY2hhbXBzXCIsXG4gICAgXCJDYXJwZW50aWVyXCIsXG4gICAgXCJKdWxpZW5cIixcbiAgICBcIkJlbm9pdFwiLFxuICAgIFwiUGFyaXNcIixcbiAgICBcIk1haWxsYXJkXCIsXG4gICAgXCJNYXJjaGFsXCIsXG4gICAgXCJBdWJyeVwiLFxuICAgIFwiVmFzc2V1clwiLFxuICAgIFwiTGUgcm91eFwiLFxuICAgIFwiUmVuYXVsdFwiLFxuICAgIFwiSmFjcXVldFwiLFxuICAgIFwiQ29sbGV0XCIsXG4gICAgXCJQcmV2b3N0XCIsXG4gICAgXCJQb2lyaWVyXCIsXG4gICAgXCJDaGFycGVudGllclwiLFxuICAgIFwiUm95ZXJcIixcbiAgICBcIkh1ZXRcIixcbiAgICBcIkJhcm9uXCIsXG4gICAgXCJEdXB1eVwiLFxuICAgIFwiUG9uc1wiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiTGFpbmVcIixcbiAgICBcIkNhcnJlXCIsXG4gICAgXCJCcmV0b25cIixcbiAgICBcIlJlbXlcIixcbiAgICBcIlNjaG5laWRlclwiLFxuICAgIFwiUGVycm90XCIsXG4gICAgXCJHdXlvdFwiLFxuICAgIFwiQmFycmVcIixcbiAgICBcIk1hcnR5XCIsXG4gICAgXCJDb3VzaW5cIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJNXCIsXG4gICAgXCJNbWVcIixcbiAgICBcIk1sbGVcIixcbiAgICBcIkRyXCIsXG4gICAgXCJQcm9mXCJcbiAgXSxcbiAgXCJ0aXRsZVwiOiB7XG4gICAgXCJqb2JcIjogW1xuICAgICAgXCJTdXBlcnZpc2V1clwiLFxuICAgICAgXCJFeGVjdXRpZlwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkluZ2VuaWV1clwiLFxuICAgICAgXCJTcGVjaWFsaXN0ZVwiLFxuICAgICAgXCJEaXJlY3RldXJcIixcbiAgICAgIFwiQ29vcmRpbmF0ZXVyXCIsXG4gICAgICBcIkFkbWluaXN0cmF0ZXVyXCIsXG4gICAgICBcIkFyY2hpdGVjdGVcIixcbiAgICAgIFwiQW5hbHlzdGVcIixcbiAgICAgIFwiRGVzaWduZXJcIixcbiAgICAgIFwiVGVjaG5pY2llblwiLFxuICAgICAgXCJEZXZlbG9wcGV1clwiLFxuICAgICAgXCJQcm9kdWN0ZXVyXCIsXG4gICAgICBcIkNvbnN1bHRhbnRcIixcbiAgICAgIFwiQXNzaXN0YW50XCIsXG4gICAgICBcIkFnZW50XCIsXG4gICAgICBcIlN0YWdpYWlyZVwiXG4gICAgXVxuICB9LFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tsYXN0X25hbWV9ICN7Zmlyc3RfbmFtZX1cIlxuICBdXG59O1xuZnIucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDEjIyMjIyMjI1wiLFxuICAgIFwiMDIjIyMjIyMjI1wiLFxuICAgIFwiMDMjIyMjIyMjI1wiLFxuICAgIFwiMDQjIyMjIyMjI1wiLFxuICAgIFwiMDUjIyMjIyMjI1wiLFxuICAgIFwiMDYjIyMjIyMjI1wiLFxuICAgIFwiMDcjIyMjIyMjI1wiLFxuICAgIFwiKzMzIDEjIyMjIyMjI1wiLFxuICAgIFwiKzMzIDIjIyMjIyMjI1wiLFxuICAgIFwiKzMzIDMjIyMjIyMjI1wiLFxuICAgIFwiKzMzIDQjIyMjIyMjI1wiLFxuICAgIFwiKzMzIDUjIyMjIyMjI1wiLFxuICAgIFwiKzMzIDYjIyMjIyMjI1wiLFxuICAgIFwiKzMzIDcjIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgaXQgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBpdDtcbml0LnRpdGxlID0gXCJJdGFsaWFuXCI7XG5pdC5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIlNhblwiLFxuICAgIFwiQm9yZ29cIixcbiAgICBcIlNlc3RvXCIsXG4gICAgXCJRdWFydG9cIixcbiAgICBcIlNldHRpbW9cIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcImEgbWFyZVwiLFxuICAgIFwibGlkb1wiLFxuICAgIFwibGlndXJlXCIsXG4gICAgXCJkZWwgZnJpdWxpXCIsXG4gICAgXCJzYWxlbnRpbm9cIixcbiAgICBcImNhbGFicm9cIixcbiAgICBcInZlbmV0b1wiLFxuICAgIFwibmVsbCdlbWlsaWFcIixcbiAgICBcInVtYnJvXCIsXG4gICAgXCJsYXppYWxlXCIsXG4gICAgXCJ0ZXJtZVwiLFxuICAgIFwic2FyZG9cIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnaGFuaXN0YW5cIixcbiAgICBcIkFsYmFuaWFcIixcbiAgICBcIkFsZ2VyaWFcIixcbiAgICBcIkFtZXJpY2FuIFNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcnRpZGUgKHRlcnJpdG9yaSBhIHN1ZCBkZWwgNjDCsCBwYXJhbGxlbG8pXCIsXG4gICAgXCJBbnRpZ3VhIGUgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5hXCIsXG4gICAgXCJBcm1lbmlhXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXVzdHJhbGlhXCIsXG4gICAgXCJBdXN0cmlhXCIsXG4gICAgXCJBemVyYmFpamFuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJCYW5nbGFkZXNoXCIsXG4gICAgXCJCYXJiYWRvc1wiLFxuICAgIFwiQmllbG9ydXNzaWFcIixcbiAgICBcIkJlbGdpb1wiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZW5pblwiLFxuICAgIFwiQmVybXVkYVwiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2xpdmlhXCIsXG4gICAgXCJCb3NuaWEgZSBIZXJ6ZWdvdmluYVwiLFxuICAgIFwiQm90c3dhbmFcIixcbiAgICBcIkJvdXZldCBJc2xhbmQgKEJvdXZldG95YSlcIixcbiAgICBcIkJyYXNpbGVcIixcbiAgICBcIlRlcnJpdG9yaW8gZGVsbCdhcmNpcGVsYWdvIGluZGlhbm9cIixcbiAgICBcIklzb2xlIFZlcmdpbmkgQnJpdGFubmljaGVcIixcbiAgICBcIkJydW5laSBEYXJ1c3NhbGFtXCIsXG4gICAgXCJCdWxnYXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1ib2dpYVwiLFxuICAgIFwiQ2FtZXJvb25cIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2FwbyBWZXJkZVwiLFxuICAgIFwiSXNvbGUgQ2F5bWFuXCIsXG4gICAgXCJSZXB1YmJsaWNhIENlbnRyYWxlIEFmcmljYW5hXCIsXG4gICAgXCJDaGFkXCIsXG4gICAgXCJDaWxlXCIsXG4gICAgXCJDaW5hXCIsXG4gICAgXCJJc29sYSBkaSBQYXNxdWFcIixcbiAgICBcIklzb2xhIGRpIENvY29zIChLZWVsaW5nKVwiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9yb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJJc29sZSBDb29rXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3N0YSBkJ0F2b3Jpb1wiLFxuICAgIFwiQ3JvYXppYVwiLFxuICAgIFwiQ3ViYVwiLFxuICAgIFwiQ2lwcm9cIixcbiAgICBcIlJlcHViYmxpY2EgQ2VjYVwiLFxuICAgIFwiRGFuaW1hcmNhXCIsXG4gICAgXCJHaWJ1dGlcIixcbiAgICBcIlJlcHViYmxpY2EgRG9taW5pY2FuYVwiLFxuICAgIFwiRXF1YWRvclwiLFxuICAgIFwiRWdpdHRvXCIsXG4gICAgXCJFbCBTYWx2YWRvclwiLFxuICAgIFwiR3VpbmVhIEVxdWF0b3JpYWxlXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJFc3RvbmlhXCIsXG4gICAgXCJFdGlvcGlhXCIsXG4gICAgXCJJc29sZSBGYXJvZVwiLFxuICAgIFwiSXNvbGUgRmFsa2xhbmQgKE1hbHZpbmFzKVwiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiRmlubGFuZGlhXCIsXG4gICAgXCJGcmFuY2lhXCIsXG4gICAgXCJHdXlhbmEgRnJhbmNlc2VcIixcbiAgICBcIlBvbGluZXNpYSBGcmFuY2VzZVwiLFxuICAgIFwiVGVycml0b3JpIEZyYW5jZXNpIGRlbCBzdWRcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkdlcm1hbmlhXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR2liaWx0ZXJyYVwiLFxuICAgIFwiR3JlY2lhXCIsXG4gICAgXCJHcm9lbmxhbmRpYVwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3VhZGFsdXBhXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kc1wiLFxuICAgIFwiQ2l0dMOgIGRlbCBWYXRpY2Fub1wiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmcgS29uZ1wiLFxuICAgIFwiVW5naGVyaWFcIixcbiAgICBcIklzbGFuZGFcIixcbiAgICBcIkluZGlhXCIsXG4gICAgXCJJbmRvbmVzaWFcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklyYXFcIixcbiAgICBcIklybGFuZGFcIixcbiAgICBcIklzb2xhIGRpIE1hblwiLFxuICAgIFwiSXNyYWVsZVwiLFxuICAgIFwiSXRhbGlhXCIsXG4gICAgXCJHaWFtYWljYVwiLFxuICAgIFwiR2lhcHBvbmVcIixcbiAgICBcIkplcnNleVwiLFxuICAgIFwiR2lvcmRhbmlhXCIsXG4gICAgXCJLYXpha2hzdGFuXCIsXG4gICAgXCJLZW55YVwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIktvcmVhXCIsXG4gICAgXCJLdXdhaXRcIixcbiAgICBcIlJlcHVibGljY2EgS2lyZ2l6YVwiLFxuICAgIFwiUmVwdWJibGljYSBkZWwgTGFvc1wiLFxuICAgIFwiTGF0dmlhXCIsXG4gICAgXCJMaWJhbm9cIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxpYmVyaWFcIixcbiAgICBcIkxpYnlhbiBBcmFiIEphbWFoaXJpeWFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdHVhbmlhXCIsXG4gICAgXCJMdXNzZW1idXJnb1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkb25pYVwiLFxuICAgIFwiTWFkYWdhc2NhclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxlc2lhXCIsXG4gICAgXCJNYWxkaXZlXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiSXNvbGUgTWFyc2hhbGxcIixcbiAgICBcIk1hcnRpbmljYVwiLFxuICAgIFwiTWF1cml0YW5pYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXNzaWNvXCIsXG4gICAgXCJNaWNyb25lc2lhXCIsXG4gICAgXCJNb2xkb3ZhXCIsXG4gICAgXCJQcmluY2lwYXRvIGRpIE1vbmFjb1wiLFxuICAgIFwiTW9uZ29saWFcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1hcm9jY29cIixcbiAgICBcIk1vemFtYmljb1wiLFxuICAgIFwiTXlhbm1hclwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJBbnRpbGxlIE9sYW5kZXNpXCIsXG4gICAgXCJPbGFuZGFcIixcbiAgICBcIk51b3ZhIENhbGVkb25pYVwiLFxuICAgIFwiTnVvdmEgWmVsYW5kYVwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiSXNvbGUgTm9yZm9sa1wiLFxuICAgIFwiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzXCIsXG4gICAgXCJOb3J2ZWdpYVwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYWxlc3RpbmFcIixcbiAgICBcIlBhbmFtYVwiLFxuICAgIFwiUGFwdWEgTnVvdmEgR3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiRmlsaXBwaW5lXCIsXG4gICAgXCJQaXRjYWlybiBJc2xhbmRzXCIsXG4gICAgXCJQb2xvbmlhXCIsXG4gICAgXCJQb3J0b2dhbGxvXCIsXG4gICAgXCJQb3J0byBSaWNvXCIsXG4gICAgXCJRYXRhclwiLFxuICAgIFwiUmV1bmlvblwiLFxuICAgIFwiUm9tYW5pYVwiLFxuICAgIFwiUnVzc2lhXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIlNhbiBCYXJ0b2xvbWVvXCIsXG4gICAgXCJTYW50J0VsZW5hXCIsXG4gICAgXCJTYWludCBLaXR0cyBhbmQgTmV2aXNcIixcbiAgICBcIlNhaW50IEx1Y2lhXCIsXG4gICAgXCJTYWludCBNYXJ0aW5cIixcbiAgICBcIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb25cIixcbiAgICBcIlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2FvIFRvbWUgYW5kIFByaW5jaXBlXCIsXG4gICAgXCJBcmFiaWEgU2F1ZGl0YVwiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU2VyYmlhXCIsXG4gICAgXCJTZXljaGVsbGVzXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbmdhcG9yZVwiLFxuICAgIFwiU2xvdmVuaWFcIixcbiAgICBcIklzb2xlIFNvbG9tb25cIixcbiAgICBcIlNvbWFsaWFcIixcbiAgICBcIlN1ZCBBZnJpY2FcIixcbiAgICBcIkdlb3JnaWEgZGVsIHN1ZCBlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNwYWduYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdWRhblwiLFxuICAgIFwiU3VyaW5hbWVcIixcbiAgICBcIlN2YWxiYXJkICYgSmFuIE1heWVuIElzbGFuZHNcIixcbiAgICBcIlN3YXppbGFuZFwiLFxuICAgIFwiU3ZlemlhXCIsXG4gICAgXCJTdml6emVyYVwiLFxuICAgIFwiU2lyaWFcIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiVGFqaWtpc3RhblwiLFxuICAgIFwiVGFuemFuaWFcIixcbiAgICBcIlRhaWxhbmRpYVwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCBlIFRvYmFnb1wiLFxuICAgIFwiVHVuaXNpYVwiLFxuICAgIFwiVHVyY2hpYVwiLFxuICAgIFwiVHVya21lbmlzdGFuXCIsXG4gICAgXCJJc29sZSBkaSBUdXJrcyBhbmQgQ2FpY29zXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWNyYWluYVwiLFxuICAgIFwiRW1pcmF0aSBBcmFiaSBVbml0aVwiLFxuICAgIFwiUmVnbm8gVW5pdG9cIixcbiAgICBcIlN0YXRpIFVuaXRpIGQnQW1lcmljYVwiLFxuICAgIFwiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzXCIsXG4gICAgXCJJc29sZSBWZXJnaW5pIFN0YXR1bml0ZW5zaVwiLFxuICAgIFwiVXJ1Z3VheVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJXYWxsaXMgYW5kIEZ1dHVuYVwiLFxuICAgIFwiV2VzdGVybiBTYWhhcmFcIixcbiAgICBcIlllbWVuXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjXCIsXG4gICAgXCIjI1wiLFxuICAgIFwiI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJQaWF6emFcIixcbiAgICBcIlN0cmFkYVwiLFxuICAgIFwiVmlhXCIsXG4gICAgXCJCb3Jnb1wiLFxuICAgIFwiQ29udHJhZGFcIixcbiAgICBcIlJvdG9uZGFcIixcbiAgICBcIkluY3JvY2lvXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHBhcnRhbWVudG8gIyNcIixcbiAgICBcIlBpYW5vICNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJBZ3JpZ2VudG9cIixcbiAgICBcIkFsZXNzYW5kcmlhXCIsXG4gICAgXCJBbmNvbmFcIixcbiAgICBcIkFvc3RhXCIsXG4gICAgXCJBcmV6em9cIixcbiAgICBcIkFzY29saSBQaWNlbm9cIixcbiAgICBcIkFzdGlcIixcbiAgICBcIkF2ZWxsaW5vXCIsXG4gICAgXCJCYXJpXCIsXG4gICAgXCJCYXJsZXR0YS1BbmRyaWEtVHJhbmlcIixcbiAgICBcIkJlbGx1bm9cIixcbiAgICBcIkJlbmV2ZW50b1wiLFxuICAgIFwiQmVyZ2Ftb1wiLFxuICAgIFwiQmllbGxhXCIsXG4gICAgXCJCb2xvZ25hXCIsXG4gICAgXCJCb2x6YW5vXCIsXG4gICAgXCJCcmVzY2lhXCIsXG4gICAgXCJCcmluZGlzaVwiLFxuICAgIFwiQ2FnbGlhcmlcIixcbiAgICBcIkNhbHRhbmlzc2V0dGFcIixcbiAgICBcIkNhbXBvYmFzc29cIixcbiAgICBcIkNhcmJvbmlhLUlnbGVzaWFzXCIsXG4gICAgXCJDYXNlcnRhXCIsXG4gICAgXCJDYXRhbmlhXCIsXG4gICAgXCJDYXRhbnphcm9cIixcbiAgICBcIkNoaWV0aVwiLFxuICAgIFwiQ29tb1wiLFxuICAgIFwiQ29zZW56YVwiLFxuICAgIFwiQ3JlbW9uYVwiLFxuICAgIFwiQ3JvdG9uZVwiLFxuICAgIFwiQ3VuZW9cIixcbiAgICBcIkVubmFcIixcbiAgICBcIkZlcm1vXCIsXG4gICAgXCJGZXJyYXJhXCIsXG4gICAgXCJGaXJlbnplXCIsXG4gICAgXCJGb2dnaWFcIixcbiAgICBcIkZvcmzDrC1DZXNlbmFcIixcbiAgICBcIkZyb3Npbm9uZVwiLFxuICAgIFwiR2Vub3ZhXCIsXG4gICAgXCJHb3JpemlhXCIsXG4gICAgXCJHcm9zc2V0b1wiLFxuICAgIFwiSW1wZXJpYVwiLFxuICAgIFwiSXNlcm5pYVwiLFxuICAgIFwiTGEgU3BlemlhXCIsXG4gICAgXCJMJ0FxdWlsYVwiLFxuICAgIFwiTGF0aW5hXCIsXG4gICAgXCJMZWNjZVwiLFxuICAgIFwiTGVjY29cIixcbiAgICBcIkxpdm9ybm9cIixcbiAgICBcIkxvZGlcIixcbiAgICBcIkx1Y2NhXCIsXG4gICAgXCJNYWNlcmF0YVwiLFxuICAgIFwiTWFudG92YVwiLFxuICAgIFwiTWFzc2EtQ2FycmFyYVwiLFxuICAgIFwiTWF0ZXJhXCIsXG4gICAgXCJNZXNzaW5hXCIsXG4gICAgXCJNaWxhbm9cIixcbiAgICBcIk1vZGVuYVwiLFxuICAgIFwiTW9uemEgZSBkZWxsYSBCcmlhbnphXCIsXG4gICAgXCJOYXBvbGlcIixcbiAgICBcIk5vdmFyYVwiLFxuICAgIFwiTnVvcm9cIixcbiAgICBcIk9sYmlhLVRlbXBpb1wiLFxuICAgIFwiT3Jpc3Rhbm9cIixcbiAgICBcIlBhZG92YVwiLFxuICAgIFwiUGFsZXJtb1wiLFxuICAgIFwiUGFybWFcIixcbiAgICBcIlBhdmlhXCIsXG4gICAgXCJQZXJ1Z2lhXCIsXG4gICAgXCJQZXNhcm8gZSBVcmJpbm9cIixcbiAgICBcIlBlc2NhcmFcIixcbiAgICBcIlBpYWNlbnphXCIsXG4gICAgXCJQaXNhXCIsXG4gICAgXCJQaXN0b2lhXCIsXG4gICAgXCJQb3JkZW5vbmVcIixcbiAgICBcIlBvdGVuemFcIixcbiAgICBcIlByYXRvXCIsXG4gICAgXCJSYWd1c2FcIixcbiAgICBcIlJhdmVubmFcIixcbiAgICBcIlJlZ2dpbyBDYWxhYnJpYVwiLFxuICAgIFwiUmVnZ2lvIEVtaWxpYVwiLFxuICAgIFwiUmlldGlcIixcbiAgICBcIlJpbWluaVwiLFxuICAgIFwiUm9tYVwiLFxuICAgIFwiUm92aWdvXCIsXG4gICAgXCJTYWxlcm5vXCIsXG4gICAgXCJNZWRpbyBDYW1waWRhbm9cIixcbiAgICBcIlNhc3NhcmlcIixcbiAgICBcIlNhdm9uYVwiLFxuICAgIFwiU2llbmFcIixcbiAgICBcIlNpcmFjdXNhXCIsXG4gICAgXCJTb25kcmlvXCIsXG4gICAgXCJUYXJhbnRvXCIsXG4gICAgXCJUZXJhbW9cIixcbiAgICBcIlRlcm5pXCIsXG4gICAgXCJUb3Jpbm9cIixcbiAgICBcIk9nbGlhc3RyYVwiLFxuICAgIFwiVHJhcGFuaVwiLFxuICAgIFwiVHJlbnRvXCIsXG4gICAgXCJUcmV2aXNvXCIsXG4gICAgXCJUcmllc3RlXCIsXG4gICAgXCJVZGluZVwiLFxuICAgIFwiVmFyZXNlXCIsXG4gICAgXCJWZW5lemlhXCIsXG4gICAgXCJWZXJiYW5vLUN1c2lvLU9zc29sYVwiLFxuICAgIFwiVmVyY2VsbGlcIixcbiAgICBcIlZlcm9uYVwiLFxuICAgIFwiVmlibyBWYWxlbnRpYVwiLFxuICAgIFwiVmljZW56YVwiLFxuICAgIFwiVml0ZXJib1wiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBR1wiLFxuICAgIFwiQUxcIixcbiAgICBcIkFOXCIsXG4gICAgXCJBT1wiLFxuICAgIFwiQVJcIixcbiAgICBcIkFQXCIsXG4gICAgXCJBVFwiLFxuICAgIFwiQVZcIixcbiAgICBcIkJBXCIsXG4gICAgXCJCVFwiLFxuICAgIFwiQkxcIixcbiAgICBcIkJOXCIsXG4gICAgXCJCR1wiLFxuICAgIFwiQklcIixcbiAgICBcIkJPXCIsXG4gICAgXCJCWlwiLFxuICAgIFwiQlNcIixcbiAgICBcIkJSXCIsXG4gICAgXCJDQVwiLFxuICAgIFwiQ0xcIixcbiAgICBcIkNCXCIsXG4gICAgXCJDSVwiLFxuICAgIFwiQ0VcIixcbiAgICBcIkNUXCIsXG4gICAgXCJDWlwiLFxuICAgIFwiQ0hcIixcbiAgICBcIkNPXCIsXG4gICAgXCJDU1wiLFxuICAgIFwiQ1JcIixcbiAgICBcIktSXCIsXG4gICAgXCJDTlwiLFxuICAgIFwiRU5cIixcbiAgICBcIkZNXCIsXG4gICAgXCJGRVwiLFxuICAgIFwiRklcIixcbiAgICBcIkZHXCIsXG4gICAgXCJGQ1wiLFxuICAgIFwiRlJcIixcbiAgICBcIkdFXCIsXG4gICAgXCJHT1wiLFxuICAgIFwiR1JcIixcbiAgICBcIklNXCIsXG4gICAgXCJJU1wiLFxuICAgIFwiU1BcIixcbiAgICBcIkFRXCIsXG4gICAgXCJMVFwiLFxuICAgIFwiTEVcIixcbiAgICBcIkxDXCIsXG4gICAgXCJMSVwiLFxuICAgIFwiTE9cIixcbiAgICBcIkxVXCIsXG4gICAgXCJNQ1wiLFxuICAgIFwiTU5cIixcbiAgICBcIk1TXCIsXG4gICAgXCJNVFwiLFxuICAgIFwiTUVcIixcbiAgICBcIk1JXCIsXG4gICAgXCJNT1wiLFxuICAgIFwiTUJcIixcbiAgICBcIk5BXCIsXG4gICAgXCJOT1wiLFxuICAgIFwiTlVcIixcbiAgICBcIk9UXCIsXG4gICAgXCJPUlwiLFxuICAgIFwiUERcIixcbiAgICBcIlBBXCIsXG4gICAgXCJQUlwiLFxuICAgIFwiUFZcIixcbiAgICBcIlBHXCIsXG4gICAgXCJQVVwiLFxuICAgIFwiUEVcIixcbiAgICBcIlBDXCIsXG4gICAgXCJQSVwiLFxuICAgIFwiUFRcIixcbiAgICBcIlBOXCIsXG4gICAgXCJQWlwiLFxuICAgIFwiUE9cIixcbiAgICBcIlJHXCIsXG4gICAgXCJSQVwiLFxuICAgIFwiUkNcIixcbiAgICBcIlJFXCIsXG4gICAgXCJSSVwiLFxuICAgIFwiUk5cIixcbiAgICBcIlJNXCIsXG4gICAgXCJST1wiLFxuICAgIFwiU0FcIixcbiAgICBcIlZTXCIsXG4gICAgXCJTU1wiLFxuICAgIFwiU1ZcIixcbiAgICBcIlNJXCIsXG4gICAgXCJTUlwiLFxuICAgIFwiU09cIixcbiAgICBcIlRBXCIsXG4gICAgXCJURVwiLFxuICAgIFwiVFJcIixcbiAgICBcIlRPXCIsXG4gICAgXCJPR1wiLFxuICAgIFwiVFBcIixcbiAgICBcIlROXCIsXG4gICAgXCJUVlwiLFxuICAgIFwiVFNcIixcbiAgICBcIlVEXCIsXG4gICAgXCJWQVwiLFxuICAgIFwiVkVcIixcbiAgICBcIlZCXCIsXG4gICAgXCJWQ1wiLFxuICAgIFwiVlJcIixcbiAgICBcIlZWXCIsXG4gICAgXCJWSVwiLFxuICAgIFwiVlRcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9ICN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSAje2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tOYW1lLmZpcnN0X25hbWV9XCIsXG4gICAgXCIje3N0cmVldF9zdWZmaXh9ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIixcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfSwgI3tzZWNvbmRhcnlfYWRkcmVzc31cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJJdGFsaWFcIlxuICBdXG59O1xuaXQuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiU1BBXCIsXG4gICAgXCJlIGZpZ2xpXCIsXG4gICAgXCJHcm91cFwiLFxuICAgIFwicy5yLmwuXCJcbiAgXSxcbiAgXCJub3VuXCI6IFtcbiAgICAgIFwiQWJpbGl0w6BcIixcbiAgICAgIFwiQWNjZXNzXCIsXG4gICAgICBcIkFkYXR0YXRvcmVcIixcbiAgICAgIFwiQWxnb3JpdG1vXCIsXG4gICAgICBcIkFsbGVhbnphXCIsXG4gICAgICBcIkFuYWxpenphdG9yZVwiLFxuICAgICAgXCJBcHBsaWNhemlvbmVcIixcbiAgICAgIFwiQXBwcm9jY2lvXCIsXG4gICAgICBcIkFyY2hpdGV0dHVyYVwiLFxuICAgICAgXCJBcmNoaXZpb1wiLFxuICAgICAgXCJJbnRlbGxpZ2VuemEgYXJ0aWZpY2lhbGVcIixcbiAgICAgIFwiQXJyYXlcIixcbiAgICAgIFwiQXR0aXR1ZGluZVwiLFxuICAgICAgXCJCZW5jaG1hcmtcIixcbiAgICAgIFwiQ2FwYWNpdMOgXCIsXG4gICAgICBcIlNmaWRhXCIsXG4gICAgICBcIkNpcmN1aXRvXCIsXG4gICAgICBcIkNvbGxhYm9yYXppb25lXCIsXG4gICAgICBcIkNvbXBsZXNzaXTDoFwiLFxuICAgICAgXCJDb25jZXR0b1wiLFxuICAgICAgXCJDb25nbG9tZXJhdG9cIixcbiAgICAgIFwiQ29udGluZ2VuemFcIixcbiAgICAgIFwiQ29yZVwiLFxuICAgICAgXCJEYXRhYmFzZVwiLFxuICAgICAgXCJEYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJEZWZpbml6aW9uZVwiLFxuICAgICAgXCJFbXVsYXppb25lXCIsXG4gICAgICBcIkNvZGlmaWNhXCIsXG4gICAgICBcIkNyaXB0YXppb25lXCIsXG4gICAgICBcIkZpcm13YXJlXCIsXG4gICAgICBcIkZsZXNzaWJpbGl0w6BcIixcbiAgICAgIFwiUHJldmlzaW9uZVwiLFxuICAgICAgXCJGcmFtZVwiLFxuICAgICAgXCJmcmFtZXdvcmtcIixcbiAgICAgIFwiRnVuemlvbmVcIixcbiAgICAgIFwiRnVuemlvbmFsaXTDoFwiLFxuICAgICAgXCJJbnRlcmZhY2NpYSBncmFmaWNhXCIsXG4gICAgICBcIkhhcmR3YXJlXCIsXG4gICAgICBcIkhlbHAtZGVza1wiLFxuICAgICAgXCJHZXJhcmNoaWFcIixcbiAgICAgIFwiSHViXCIsXG4gICAgICBcIkltcGxlbWVudGF6aW9uZVwiLFxuICAgICAgXCJJbmZyYXN0cnV0dHVyYVwiLFxuICAgICAgXCJJbml6aWF0aXZhXCIsXG4gICAgICBcIkluc3RhbGxhemlvbmVcIixcbiAgICAgIFwiU2V0IGRpIGlzdHJ1emlvbmlcIixcbiAgICAgIFwiSW50ZXJmYWNjaWFcIixcbiAgICAgIFwiU29sdXppb25lIGludGVybmV0XCIsXG4gICAgICBcIkludHJhbmV0XCIsXG4gICAgICBcIkNvbm9zY2VuemEgYmFzZVwiLFxuICAgICAgXCJNYXRyaWNpXCIsXG4gICAgICBcIk1hdHJpY2VcIixcbiAgICAgIFwiTWV0b2RvbG9naWFcIixcbiAgICAgIFwiTWlkZGxld2FyZVwiLFxuICAgICAgXCJNaWdyYXppb25lXCIsXG4gICAgICBcIk1vZGVsbG9cIixcbiAgICAgIFwiTW9kZXJhemlvbmVcIixcbiAgICAgIFwiTW9uaXRvcmFnZ2lvXCIsXG4gICAgICBcIk1vcmF0b3JpYVwiLFxuICAgICAgXCJSZXRlXCIsXG4gICAgICBcIkFyY2hpdGV0dHVyYSBhcGVydGFcIixcbiAgICAgIFwiU2lzdGVtYSBhcGVydG9cIixcbiAgICAgIFwiT3JjaGVzdHJhemlvbmVcIixcbiAgICAgIFwiUGFyYWRpZ21hXCIsXG4gICAgICBcIlBhcmFsbGVsaXNtb1wiLFxuICAgICAgXCJQb2xpY3lcIixcbiAgICAgIFwiUG9ydGFsZVwiLFxuICAgICAgXCJTdHJ1dHR1cmEgZGkgcHJlenpvXCIsXG4gICAgICBcIlByb2RvdHRvXCIsXG4gICAgICBcIlByb2R1dHRpdml0w6BcIixcbiAgICAgIFwiUHJvZ2V0dG9cIixcbiAgICAgIFwiUHJvaWV6aW9uZVwiLFxuICAgICAgXCJQcm90b2NvbGxvXCIsXG4gICAgICBcIlNlcnZpemlvIGNsaWVudGlcIixcbiAgICAgIFwiU29mdHdhcmVcIixcbiAgICAgIFwiU29sdXppb25lXCIsXG4gICAgICBcIlN0YW5kYXJkaXp6YXppb25lXCIsXG4gICAgICBcIlN0cmF0ZWdpYVwiLFxuICAgICAgXCJTdHJ1dHR1cmFcIixcbiAgICAgIFwiU3VjY2Vzc29cIixcbiAgICAgIFwiU292cmFzdHJ1dHR1cmFcIixcbiAgICAgIFwiU3VwcG9ydG9cIixcbiAgICAgIFwiU2luZXJnaWFcIixcbiAgICAgIFwiVGFzay1mb3JjZVwiLFxuICAgICAgXCJGaW5lc3RyYSB0ZW1wb3JhbGVcIixcbiAgICAgIFwiU3RydW1lbnRpXCIsXG4gICAgICBcIlV0aWxpenphemlvbmVcIixcbiAgICAgIFwiU2l0byB3ZWJcIixcbiAgICAgIFwiRm9yemEgbGF2b3JvXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOltcbiAgICAgIFwiYWRhdHRpdmFcIixcbiAgICAgIFwiYXZhbnphdGFcIixcbiAgICAgIFwibWlnbGlvcmF0YVwiLFxuICAgICAgXCJhc3NpbWlsYXRhXCIsXG4gICAgICBcImF1dG9tYXRpenphdGFcIixcbiAgICAgIFwiYmlsYW5jaWF0YVwiLFxuICAgICAgXCJjZW50cmFsaXp6YXRhXCIsXG4gICAgICBcImNvbXBhdGliaWxlXCIsXG4gICAgICBcImNvbmZpZ3VyYWJpbGVcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiZGVjZW50cmFsaXp6YXRhXCIsXG4gICAgICBcImRpZ2l0YWxpenphdGFcIixcbiAgICAgIFwiZGlzdHJpYnVpdGFcIixcbiAgICAgIFwicGljY29sYVwiLFxuICAgICAgXCJlcmdvbm9taWNhXCIsXG4gICAgICBcImVzY2x1c2l2YVwiLFxuICAgICAgXCJlc3BhbnNhXCIsXG4gICAgICBcImVzdGVzYVwiLFxuICAgICAgXCJjb25maWd1cmFiaWxlXCIsXG4gICAgICBcImZvbmRhbWVudGFsZVwiLFxuICAgICAgXCJvcml6em9udGFsZVwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGFcIixcbiAgICAgIFwiaW5ub3ZhdGl2YVwiLFxuICAgICAgXCJpbnRlZ3JhdGFcIixcbiAgICAgIFwiaW50dWl0aXZhXCIsXG4gICAgICBcImludmVyc2FcIixcbiAgICAgIFwiZ2VzdGl0YVwiLFxuICAgICAgXCJvYmJsaWdhdG9yaWFcIixcbiAgICAgIFwibW9uaXRvcmF0YVwiLFxuICAgICAgXCJtdWx0aS1jYW5hbGVcIixcbiAgICAgIFwibXVsdGktbGF0ZXJhbGVcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwib3BlcmF0aXZhXCIsXG4gICAgICBcIm90dGltaXp6YXRhXCIsXG4gICAgICBcIm9yZ2FuaWNhXCIsXG4gICAgICBcInBlcnNpc3RlbnRlXCIsXG4gICAgICBcInBvbGFyaXp6YXRhXCIsXG4gICAgICBcInByb2F0dGl2YVwiLFxuICAgICAgXCJwcm9ncmFtbWFiaWxlXCIsXG4gICAgICBcInByb2dyZXNzaXZhXCIsXG4gICAgICBcInJlYXR0aXZhXCIsXG4gICAgICBcInJpYWxsaW5lYXRhXCIsXG4gICAgICBcInJpY29udGVzdHVhbGl6emF0YVwiLFxuICAgICAgXCJyaWRvdHRhXCIsXG4gICAgICBcInJvYnVzdGFcIixcbiAgICAgIFwic2ljdXJhXCIsXG4gICAgICBcImNvbmRpdmlzaWJpbGVcIixcbiAgICAgIFwic3RhbmQtYWxvbmVcIixcbiAgICAgIFwic3dpdGNoYWJpbGVcIixcbiAgICAgIFwic2luY3Jvbml6emF0YVwiLFxuICAgICAgXCJzaW5lcmdpY2FcIixcbiAgICAgIFwidG90YWxlXCIsXG4gICAgICBcInVuaXZlcnNhbGVcIixcbiAgICAgIFwidXNlci1mcmllbmRseVwiLFxuICAgICAgXCJ2ZXJzYXRpbGVcIixcbiAgICAgIFwidmlydHVhbGVcIixcbiAgICAgIFwidmlzaW9uYXJpYVwiXG4gICAgXSxcbiAgICBcImFkamVjdGl2ZVwiOlxuICAgIFtcbiAgICAgIFwiMjQgb3JlXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwidGVyemEgZ2VuZXJhemlvbmVcIixcbiAgICAgIFwicXVhcnRhIGdlbmVyYXppb25lXCIsXG4gICAgICBcInF1aW50YSBnZW5lcmF6aW9uZVwiLFxuICAgICAgXCJzZXN0YSBnZW5lcmF6aW9uZVwiLFxuICAgICAgXCJhc2ltbWV0cmljYVwiLFxuICAgICAgXCJhc2luY3JvbmFcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiaS1kaXJlemlvbmFsZVwiLFxuICAgICAgXCJiaWZvcmNhdGFcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY29lcmVudGVcIixcbiAgICAgIFwiY29lc2l2YVwiLFxuICAgICAgXCJjb21wb3NpdGFcIixcbiAgICAgIFwic2Vuc2liaWxlIGFsIGNvbnRlc3RvXCIsXG4gICAgICBcImJhc3RhIHN1bCBjb250ZXN0b1wiLFxuICAgICAgXCJiYXNhdGEgc3VsIGNvbnRlbnV0b1wiLFxuICAgICAgXCJkZWRpY2F0YVwiLFxuICAgICAgXCJkaWRhdHRpY2FcIixcbiAgICAgIFwiZGlyZXppb25hbGVcIixcbiAgICAgIFwiZGlzY3JldGFcIixcbiAgICAgIFwiZGluYW1pY2FcIixcbiAgICAgIFwiZWNvLWNlbnRyaWNhXCIsXG4gICAgICBcImVzZWN1dGl2YVwiLFxuICAgICAgXCJlc3BsaWNpdGFcIixcbiAgICAgIFwiZnVsbC1yYW5nZVwiLFxuICAgICAgXCJnbG9iYWxlXCIsXG4gICAgICBcImV1cmlzdGljYVwiLFxuICAgICAgXCJhbHRvIGxpdmVsbG9cIixcbiAgICAgIFwib2xpc3RpY2FcIixcbiAgICAgIFwib21vZ2VuZWFcIixcbiAgICAgIFwiaWJyaWRhXCIsXG4gICAgICBcImltcGF0dGFudGVcIixcbiAgICAgIFwiaW5jcmVtZW50YWxlXCIsXG4gICAgICBcImludGFuZ2liaWxlXCIsXG4gICAgICBcImludGVyYXR0aXZhXCIsXG4gICAgICBcImludGVybWVkaWFyaWFcIixcbiAgICAgIFwibG9jYWxlXCIsXG4gICAgICBcImxvZ2lzdGljYVwiLFxuICAgICAgXCJtYXNzaW1penphdGFcIixcbiAgICAgIFwibWV0b2RpY2FcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJtb2JpbGVcIixcbiAgICAgIFwibW9kdWxhcmVcIixcbiAgICAgIFwibW90aXZhemlvbmFsZVwiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF6aW9uYWxlXCIsXG4gICAgICBcIm5ldXRyYWxlXCIsXG4gICAgICBcIm5leHRnZW5lcmF0aW9uXCIsXG4gICAgICBcIm5vbi12b2xhdGlsZVwiLFxuICAgICAgXCJvYmplY3Qtb3JpZW50ZWRcIixcbiAgICAgIFwib3R0aW1hXCIsXG4gICAgICBcIm90dGltaXp6YW50ZVwiLFxuICAgICAgXCJyYWRpY2FsZVwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhXCIsXG4gICAgICBcInJlZ2lvbmFsZVwiLFxuICAgICAgXCJyZXNwb25zaXZhXCIsXG4gICAgICBcInNjYWxhYmlsZVwiLFxuICAgICAgXCJzZWNvbmRhcmlhXCIsXG4gICAgICBcInN0YWJpbGVcIixcbiAgICAgIFwic3RhdGljYVwiLFxuICAgICAgXCJzaXN0ZW1hdGljYVwiLFxuICAgICAgXCJzaXN0ZW1pY2FcIixcbiAgICAgIFwidGFuZ2liaWxlXCIsXG4gICAgICBcInRlcnppYXJpYVwiLFxuICAgICAgXCJ1bmlmb3JtZVwiLFxuICAgICAgXCJ2YWxvcmUgYWdnaXVudG9cIlxuICBdLFxuICBcImJzX25vdW5cIjogW1xuICAgICAgXCJwYXJ0bmVyc2hpcHNcIixcbiAgICAgIFwiY29tdW5pdMOgXCIsXG4gICAgICBcIlJPSVwiLFxuICAgICAgXCJzb2x1emlvbmlcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJuaWNjaGllXCIsXG4gICAgICBcInRlY25vbG9naWVcIixcbiAgICAgIFwiY29udGVudXRpXCIsXG4gICAgICBcInN1cHBseS1jaGFpbnNcIixcbiAgICAgIFwiY29udmVyZ2VuemVcIixcbiAgICAgIFwicmVsYXppb25pXCIsXG4gICAgICBcImFyY2hpdGV0dHVyZVwiLFxuICAgICAgXCJpbnRlcmZhY2NlXCIsXG4gICAgICBcIm1lcmNhdGlcIixcbiAgICAgIFwiZS1jb21tZXJjZVwiLFxuICAgICAgXCJzaXN0ZW1pXCIsXG4gICAgICBcIm1vZGVsbGlcIixcbiAgICAgIFwic2NoZW1pXCIsXG4gICAgICBcInJldGlcIixcbiAgICAgIFwiYXBwbGljYXppb25pXCIsXG4gICAgICBcIm1ldHJpY2hlXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwiZnVuemlvbmFsaXTDoFwiLFxuICAgICAgXCJlc3BlcmllbnplXCIsXG4gICAgICBcIndlYnNlcnZpY2VzXCIsXG4gICAgICBcIm1ldG9kb2xvZ2llXCJcbiAgICBdLFxuICAgIFwiYnNfdmVyYlwiOlxuICAgIFtcbiAgICAgIFwiaW1wbGVtZW50YXRlXCIsXG4gICAgICBcInV0aWxpenpvXCIsXG4gICAgICBcImludGVncmF0ZVwiLFxuICAgICAgXCJvdHRpbWFsaVwiLFxuICAgICAgXCJldm9sdXRpdmVcIixcbiAgICAgIFwiYWJpbGl0YXRlXCIsXG4gICAgICBcInJlaW52ZW50YXRlXCIsXG4gICAgICBcImFnZ3JlZ2F0ZVwiLFxuICAgICAgXCJtaWdsaW9yYXRlXCIsXG4gICAgICBcImluY2VudGl2YXRlXCIsXG4gICAgICBcIm1vbmV0aXp6YXRlXCIsXG4gICAgICBcInNpbmVyZ2l6emF0ZVwiLFxuICAgICAgXCJzdHJhdGVnaWNoZVwiLFxuICAgICAgXCJkZXBsb3lcIixcbiAgICAgIFwibWFyY2hpXCIsXG4gICAgICBcImFjY3Jlc2NpdGl2ZVwiLFxuICAgICAgXCJ0YXJnZXRcIixcbiAgICAgIFwic2ludGV0aXp6YXRlXCIsXG4gICAgICBcInNwZWRpemlvbmlcIixcbiAgICAgIFwibWFzc2ltaXp6YXRlXCIsXG4gICAgICBcImlubm92YXppb25lXCIsXG4gICAgICBcImd1aWRhXCIsXG4gICAgICBcImVzdGVuc2lvbmlcIixcbiAgICAgIFwiZ2VuZXJhdGVcIixcbiAgICAgIFwiZXhwbG9pdFwiLFxuICAgICAgXCJ0cmFuc2l6aW9uYWxpXCIsXG4gICAgICBcIm1hdHJpY2lcIixcbiAgICAgIFwicmljb250ZXN0dWFsaXp6YXRlXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6XG4gICAgW1xuICAgICAgXCJ2YWxvcmUgYWdnaXVudG9cIixcbiAgICAgIFwidmVydGljYWxpenphdGVcIixcbiAgICAgIFwicHJvYXR0aXZlXCIsXG4gICAgICBcImZvcnRpXCIsXG4gICAgICBcInJpdm9sdXppb25hcmlcIixcbiAgICAgIFwic2NhbGFiaWxpXCIsXG4gICAgICBcImlubm92YXRpdmlcIixcbiAgICAgIFwiaW50dWl0aXZpXCIsXG4gICAgICBcInN0cmF0ZWdpY2lcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiZ2xvYmFsaVwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyaVwiLFxuICAgICAgXCJ2aXJ0dWFsaVwiLFxuICAgICAgXCJ2aXJhbGlcIixcbiAgICAgIFwiZGluYW1pY2hlXCIsXG4gICAgICBcIm1hZ25ldGljaGVcIixcbiAgICAgIFwid2ViXCIsXG4gICAgICBcImludGVyYXR0aXZlXCIsXG4gICAgICBcInNleHlcIixcbiAgICAgIFwiYmFjay1lbmRcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcImVmZmljaWVudGlcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGl2aVwiLFxuICAgICAgXCJlc3RlbnNpYmlsaVwiLFxuICAgICAgXCJtb25kaWFsaVwiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJzaW5lcmdpY2hlXCIsXG4gICAgICBcIm91dC1vZi10aGUtYm94XCIsXG4gICAgICBcImVudGVycHJpc2VcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcImRpIGltcGF0dG9cIixcbiAgICAgIFwid2lyZWxlc3NcIixcbiAgICAgIFwidHJhc3BhcmVudGlcIixcbiAgICAgIFwibmV4dC1nZW5lcmF0aW9uXCIsXG4gICAgICBcImN1dHRpbmctZWRnZVwiLFxuICAgICAgXCJ2aXNpb25hcmlcIixcbiAgICAgIFwicGx1Zy1hbmQtcGxheVwiLFxuICAgICAgXCJjb2xsYWJvcmF0aXZlXCIsXG4gICAgICBcIm9saXN0aWNoZVwiLFxuICAgICAgXCJyaWNjaGVcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSBlICN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiXG4gIF1cbn07XG5pdC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiLFxuICAgIFwiZW1haWwuaXRcIixcbiAgICBcImxpYmVyby5pdFwiLFxuICAgIFwieWFob28uaXRcIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJjb21cIixcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIixcbiAgICBcIml0XCIsXG4gICAgXCJpdFwiLFxuICAgIFwiaXRcIlxuICBdXG59O1xuaXQubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJBa2lyYVwiLFxuICAgIFwiQWxiZXJ0b1wiLFxuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxpZ2hpZXJpXCIsXG4gICAgXCJBbWVkZW9cIixcbiAgICBcIkFtb3NcIixcbiAgICBcIkFuc2VsbW9cIixcbiAgICBcIkFudG9uaW5vXCIsXG4gICAgXCJBcmNpYmFsZG9cIixcbiAgICBcIkFybWFuZG9cIixcbiAgICBcIkFydGVzXCIsXG4gICAgXCJBdWRlbmljb1wiLFxuICAgIFwiQXVzb25pb1wiLFxuICAgIFwiQmFjY2hpc2lvXCIsXG4gICAgXCJCYXR0aXN0YVwiLFxuICAgIFwiQmVybmFyZG9cIixcbiAgICBcIkJvcmlzXCIsXG4gICAgXCJDYWlvXCIsXG4gICAgXCJDYXJsb1wiLFxuICAgIFwiQ2VjY29cIixcbiAgICBcIkNpcmlub1wiLFxuICAgIFwiQ2xlcm9zXCIsXG4gICAgXCJDb3N0YW50aW5vXCIsXG4gICAgXCJEYW1pYW5vXCIsXG4gICAgXCJEYW5ueVwiLFxuICAgIFwiRGF2aWRlXCIsXG4gICAgXCJEZW1pYW5cIixcbiAgICBcIkRpbWl0cmlcIixcbiAgICBcIkRvbWluZ29cIixcbiAgICBcIkR5bGFuXCIsXG4gICAgXCJFZGlsaW9cIixcbiAgICBcIkVnaWRpb1wiLFxuICAgIFwiRWxpb1wiLFxuICAgIFwiRW1hbnVlbFwiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFcmNvbGVcIixcbiAgICBcIkVybWVzXCIsXG4gICAgXCJFdGhhblwiLFxuICAgIFwiRXVzZWJpb1wiLFxuICAgIFwiRXZhbmdlbGlzdGFcIixcbiAgICBcIkZhYmlhbm9cIixcbiAgICBcIkZlcmRpbmFuZG9cIixcbiAgICBcIkZpb3JlbnRpbm9cIixcbiAgICBcIkZsYXZpb1wiLFxuICAgIFwiRnVsdmlvXCIsXG4gICAgXCJHYWJyaWVsZVwiLFxuICAgIFwiR2FzdG9uZVwiLFxuICAgIFwiR2VybWFub1wiLFxuICAgIFwiR2lhY2ludG9cIixcbiAgICBcIkdpYW5hbnRvbmlvXCIsXG4gICAgXCJHaWFubGVvbmFyZG9cIixcbiAgICBcIkdpYW5tYXJjb1wiLFxuICAgIFwiR2lhbnJpY2NhcmRvXCIsXG4gICAgXCJHaW9hY2NoaW5vXCIsXG4gICAgXCJHaW9yZGFub1wiLFxuICAgIFwiR2l1bGlhbm9cIixcbiAgICBcIkdyYXppYW5vXCIsXG4gICAgXCJHdWlkb1wiLFxuICAgIFwiSGFycnlcIixcbiAgICBcIklhY29wb1wiLFxuICAgIFwiSWxhcmlvXCIsXG4gICAgXCJJb25lXCIsXG4gICAgXCJJdGFsb1wiLFxuICAgIFwiSmFja1wiLFxuICAgIFwiSmFyaVwiLFxuICAgIFwiSm9leVwiLFxuICAgIFwiSm9zZXBoXCIsXG4gICAgXCJLYWlcIixcbiAgICBcIktvY2lzc1wiLFxuICAgIFwiTGFlcnRlXCIsXG4gICAgXCJMYXVyb1wiLFxuICAgIFwiTGVvbmFyZG9cIixcbiAgICBcIkxpYm9yaW9cIixcbiAgICBcIkxvcmVuem9cIixcbiAgICBcIkx1ZG92aWNvXCIsXG4gICAgXCJNYWdnaW9yZVwiLFxuICAgIFwiTWFudWVsZVwiLFxuICAgIFwiTWFyaWFub1wiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXR0ZW9cIixcbiAgICBcIk1hdXJvXCIsXG4gICAgXCJNaWNoYWVsXCIsXG4gICAgXCJNaXJjb1wiLFxuICAgIFwiTW9kZXN0b1wiLFxuICAgIFwiTXV6aW9cIixcbiAgICBcIk5hYmlsXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIk5pY2tcIixcbiAgICBcIk5vYWhcIixcbiAgICBcIk9kaW5vXCIsXG4gICAgXCJPbG9cIixcbiAgICBcIk9yZXN0ZVwiLFxuICAgIFwiT3NlYVwiLFxuICAgIFwiUGFibG9cIixcbiAgICBcIlBhdHJpemlvXCIsXG4gICAgXCJQaWVyZXJtaW5pb1wiLFxuICAgIFwiUGllcmZyYW5jZXNjb1wiLFxuICAgIFwiUGllcnNpbHZpb1wiLFxuICAgIFwiUHJpYW1vXCIsXG4gICAgXCJRdWFydG9cIixcbiAgICBcIlF1aXJpbm9cIixcbiAgICBcIlJhZGFtZXNcIixcbiAgICBcIlJhbmllcm9cIixcbiAgICBcIlJlbmF0b1wiLFxuICAgIFwiUm9jY29cIixcbiAgICBcIlJvbWVvXCIsXG4gICAgXCJSb3NhbGlub1wiLFxuICAgIFwiUnVkeVwiLFxuICAgIFwiU2FiYXRpbm9cIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiU2FudG9cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiU2Vyc2VcIixcbiAgICBcIlNpbHZhbm9cIixcbiAgICBcIlNpcmlvXCIsXG4gICAgXCJUYW5jcmVkaVwiLFxuICAgIFwiVGVyem9cIixcbiAgICBcIlRpbW90ZW9cIixcbiAgICBcIlRvbG9tZW9cIixcbiAgICBcIlRyZXZpc1wiLFxuICAgIFwiVWJhbGRvXCIsXG4gICAgXCJVbHJpY29cIixcbiAgICBcIlZhbGRvXCIsXG4gICAgXCJOZXJpXCIsXG4gICAgXCJWaW5pY2lvXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIlhhdmllclwiLFxuICAgIFwiWWFnb1wiLFxuICAgIFwiWmFjY2FyaWFcIixcbiAgICBcIkFicmFtb1wiLFxuICAgIFwiQWRyaWFub1wiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQWxiaW5vXCIsXG4gICAgXCJBbGVzc2lvXCIsXG4gICAgXCJBbGlnaGllcm9cIixcbiAgICBcIkFtZXJpZ29cIixcbiAgICBcIkFuYXN0YXNpb1wiLFxuICAgIFwiQW50aW1vXCIsXG4gICAgXCJBbnRvbmlvXCIsXG4gICAgXCJBcmR1aW5vXCIsXG4gICAgXCJBcm9sZG9cIixcbiAgICBcIkFydHVyb1wiLFxuICAgIFwiQXVndXN0b1wiLFxuICAgIFwiQXZpZGVcIixcbiAgICBcIkJhbGRhc3NhcnJlXCIsXG4gICAgXCJCZXR0aW5vXCIsXG4gICAgXCJCb3J0b2xvXCIsXG4gICAgXCJDYWxpZ29sYVwiLFxuICAgIFwiQ2FybWVsb1wiLFxuICAgIFwiQ2VsZXN0ZVwiLFxuICAgIFwiQ2lyb1wiLFxuICAgIFwiQ29zdGFuem9cIixcbiAgICBcIkRhbnRlXCIsXG4gICAgXCJEYW50aG9uXCIsXG4gICAgXCJEYXZpc1wiLFxuICAgIFwiRGVtaXNcIixcbiAgICBcIkRpbmRvXCIsXG4gICAgXCJEb21pemlhbm9cIixcbiAgICBcIkVkaXBvXCIsXG4gICAgXCJFZ2lzdG9cIixcbiAgICBcIkVsaXppYXJpb1wiLFxuICAgIFwiRW1pZGlvXCIsXG4gICAgXCJFbnpvXCIsXG4gICAgXCJFcmliZXJ0b1wiLFxuICAgIFwiRXJtaW5pb1wiLFxuICAgIFwiRXR0b3JlXCIsXG4gICAgXCJFdXN0YWNoaW9cIixcbiAgICBcIkZhYmlvXCIsXG4gICAgXCJGZXJuYW5kb1wiLFxuICAgIFwiRmlvcmVuem9cIixcbiAgICBcIkZvbGNvXCIsXG4gICAgXCJGdXJpb1wiLFxuICAgIFwiR2FldGFub1wiLFxuICAgIFwiR2F2aW5vXCIsXG4gICAgXCJHZXJsYW5kb1wiLFxuICAgIFwiR2lhY29iYmVcIixcbiAgICBcIkdpYW5jYXJsb1wiLFxuICAgIFwiR2lhbm1hcmlhXCIsXG4gICAgXCJHaW9iYmVcIixcbiAgICBcIkdpb3JnaW9cIixcbiAgICBcIkdpdWxpb1wiLFxuICAgIFwiR3JlZ29yaW9cIixcbiAgICBcIkhlY3RvclwiLFxuICAgIFwiSWFuXCIsXG4gICAgXCJJcHBvbGl0b1wiLFxuICAgIFwiSXZhbm9cIixcbiAgICBcIkphY29wb1wiLFxuICAgIFwiSmFybm9cIixcbiAgICBcIkpvYW5uZXNcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiS2FyaW1cIixcbiAgICBcIktyaXNcIixcbiAgICBcIkxhbWJlcnRvXCIsXG4gICAgXCJMYXp6YXJvXCIsXG4gICAgXCJMZW9uZVwiLFxuICAgIFwiTGlub1wiLFxuICAgIFwiTG9yaXNcIixcbiAgICBcIkx1aWdpXCIsXG4gICAgXCJNYW5mcmVkaVwiLFxuICAgIFwiTWFyY29cIixcbiAgICBcIk1hcmlub1wiLFxuICAgIFwiTWFyemlvXCIsXG4gICAgXCJNYXR0aWFcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWljaGVsZVwiLFxuICAgIFwiTWlya29cIixcbiAgICBcIk1vcmVub1wiLFxuICAgIFwiTmFkaXJcIixcbiAgICBcIk5henphcmVub1wiLFxuICAgIFwiTmVzdG9yZVwiLFxuICAgIFwiTmljb1wiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiT2RvbmVcIixcbiAgICBcIk9tYXJcIixcbiAgICBcIk9yZmVvXCIsXG4gICAgXCJPc3ZhbGRvXCIsXG4gICAgXCJQYWNpZmljb1wiLFxuICAgIFwiUGVyaWNsZVwiLFxuICAgIFwiUGlldHJvXCIsXG4gICAgXCJQcmltb1wiLFxuICAgIFwiUXVhc2ltb2RvXCIsXG4gICAgXCJSYWRpb1wiLFxuICAgIFwiUmFvdWxcIixcbiAgICBcIlJlbnpvXCIsXG4gICAgXCJSb2RvbGZvXCIsXG4gICAgXCJSb21vbG9cIixcbiAgICBcIlJvc29saW5vXCIsXG4gICAgXCJSdWZvXCIsXG4gICAgXCJTYWJpbm9cIixcbiAgICBcIlNhbmRyb1wiLFxuICAgIFwiU2FzaGFcIixcbiAgICBcIlNlY29uZG9cIixcbiAgICBcIlNlc3RvXCIsXG4gICAgXCJTaWx2ZXJpb1wiLFxuICAgIFwiU2lyb1wiLFxuICAgIFwiVGF6aW9cIixcbiAgICBcIlRlc2VvXCIsXG4gICAgXCJUaW1vdGh5XCIsXG4gICAgXCJUb21tYXNvXCIsXG4gICAgXCJUcmlzdGFub1wiLFxuICAgIFwiVW1iZXJ0b1wiLFxuICAgIFwiQXJpZWxcIixcbiAgICBcIkFydGVtaWRlXCIsXG4gICAgXCJBc3NpYVwiLFxuICAgIFwiQXp1ZVwiLFxuICAgIFwiQmVuZWRldHRhXCIsXG4gICAgXCJCaWJpYW5hXCIsXG4gICAgXCJCcmlnaXR0YVwiLFxuICAgIFwiQ2FybWVsYVwiLFxuICAgIFwiQ2Fzc2lvcGVhXCIsXG4gICAgXCJDZXNpZGlhXCIsXG4gICAgXCJDaXJhXCIsXG4gICAgXCJDbGVhXCIsXG4gICAgXCJDbGVvcGF0cmFcIixcbiAgICBcIkNsb2RvdmVhXCIsXG4gICAgXCJDb25jZXR0YVwiLFxuICAgIFwiQ29zZXR0YVwiLFxuICAgIFwiQ3Jpc3R5blwiLFxuICAgIFwiRGFtaWFuYVwiLFxuICAgIFwiRGFudXRhXCIsXG4gICAgXCJEZWJvcmFoXCIsXG4gICAgXCJEZW1pXCIsXG4gICAgXCJEaWFtYW50ZVwiLFxuICAgIFwiRGlhbmFcIixcbiAgICBcIkRvbmF0ZWxsYVwiLFxuICAgIFwiRG9yaWFuYVwiLFxuICAgIFwiRWR2aWdlXCIsXG4gICAgXCJFbGRhXCIsXG4gICAgXCJFbGdhXCIsXG4gICAgXCJFbHNhXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVucmljYVwiLFxuICAgIFwiRXJtaW5pYVwiLFxuICAgIFwiRXVmZW1pYVwiLFxuICAgIFwiRXZpdGFcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmVsaWNpYVwiLFxuICAgIFwiRmlsb21lbmFcIixcbiAgICBcIkZsYXZpYW5hXCIsXG4gICAgXCJGb3J0dW5hdGFcIixcbiAgICBcIkdlbHNvbWluYVwiLFxuICAgIFwiR2VuemlhbmFcIixcbiAgICBcIkdpYWNpbnRhXCIsXG4gICAgXCJHaWxkYVwiLFxuICAgIFwiR2lvdmFubmFcIixcbiAgICBcIkdpdWxpZXR0YVwiLFxuICAgIFwiR3JhemlhXCIsXG4gICAgXCJHdWVuZGFsaW5hXCIsXG4gICAgXCJIZWxnYVwiLFxuICAgIFwiSWxlYW5hXCIsXG4gICAgXCJJbmdyaWRcIixcbiAgICBcIklyZW5lXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzaXJhXCIsXG4gICAgXCJJdm9ubmVcIixcbiAgICBcIkplbGVuYVwiLFxuICAgIFwiSm9sZVwiLFxuICAgIFwiQ2xhdWRpYVwiLFxuICAgIFwiS2F5bGFcIixcbiAgICBcIktyaXN0ZWxcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMdWNpYVwiLFxuICAgIFwiTGlhXCIsXG4gICAgXCJMaWRpYVwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiTG9yZWRhbmFcIixcbiAgICBcIkxvcmV0dGFcIixcbiAgICBcIkx1Y2VcIixcbiAgICBcIkx1Y3JlemlhXCIsXG4gICAgXCJMdW5hXCIsXG4gICAgXCJNYWlrYVwiLFxuICAgIFwiTWFyY2VsbGFcIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJNYXJpYWdpdWxpYVwiLFxuICAgIFwiTWFyaWFuaXRhXCIsXG4gICAgXCJNYXJpYXBpYVwiLFxuICAgIFwiTWFyaWV2YVwiLFxuICAgIFwiTWFyaW5hXCIsXG4gICAgXCJNYXJpc3RlbGxhXCIsXG4gICAgXCJNYXJ1c2thXCIsXG4gICAgXCJNYXRpbGRlXCIsXG4gICAgXCJNZWNyZW5cIixcbiAgICBcIk1lcmNlZGVzXCIsXG4gICAgXCJNaWV0dGFcIixcbiAgICBcIk1pcmlhbmFcIixcbiAgICBcIk1pcmlhbVwiLFxuICAgIFwiTW9uaWFcIixcbiAgICBcIk1vcmdhbmFcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYXlhZGVcIixcbiAgICBcIk5pY29sZXR0YVwiLFxuICAgIFwiTmluZmFcIixcbiAgICBcIk5vZW1pXCIsXG4gICAgXCJOdW56aWFcIixcbiAgICBcIk9saW1waWFcIixcbiAgICBcIk9yZXR0YVwiLFxuICAgIFwiT3J0ZW5zaWFcIixcbiAgICBcIlBlbmVsb3BlXCIsXG4gICAgXCJQaWNjYXJkYVwiLFxuICAgIFwiUHJpc2NhXCIsXG4gICAgXCJSZWJlY2NhXCIsXG4gICAgXCJSaXRhXCIsXG4gICAgXCJSb3NhbGJhXCIsXG4gICAgXCJSb3NhcmlhXCIsXG4gICAgXCJSb3NpdGFcIixcbiAgICBcIlJ1dGhcIixcbiAgICBcIlNhbWlyYVwiLFxuICAgIFwiU2FyaXRhXCIsXG4gICAgXCJTZWx2YWdnaWFcIixcbiAgICBcIlNoYWlyYVwiLFxuICAgIFwiU2liaWxsYVwiLFxuICAgIFwiU29yaWFuYVwiLFxuICAgIFwiVGhlYVwiLFxuICAgIFwiVG9zY2FcIixcbiAgICBcIlVyc3VsYVwiLFxuICAgIFwiVmFuaWFcIixcbiAgICBcIlZlcmFcIixcbiAgICBcIlZpZW5uYVwiLFxuICAgIFwiVmlvbGFudGVcIixcbiAgICBcIlZpdGFsYmFcIixcbiAgICBcIlplbGlkYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkFtYXRvXCIsXG4gICAgXCJCYXJiaWVyaVwiLFxuICAgIFwiQmFyb25lXCIsXG4gICAgXCJCYXNpbGVcIixcbiAgICBcIkJhdHRhZ2xpYVwiLFxuICAgIFwiQmVsbGluaVwiLFxuICAgIFwiQmVuZWRldHRpXCIsXG4gICAgXCJCZXJuYXJkaVwiLFxuICAgIFwiQmlhbmNcIixcbiAgICBcIkJpYW5jaGlcIixcbiAgICBcIkJydW5vXCIsXG4gICAgXCJDYXB1dG9cIixcbiAgICBcIkNhcmJvblwiLFxuICAgIFwiQ2FydXNvXCIsXG4gICAgXCJDYXR0YW5lb1wiLFxuICAgIFwiQ29sb21ib1wiLFxuICAgIFwiQ29udFwiLFxuICAgIFwiQ29udGVcIixcbiAgICBcIkNvcHBvbGFcIixcbiAgICBcIkNvc3RhXCIsXG4gICAgXCJDb3N0YW50aW5cIixcbiAgICBcIkQnYW1pY29cIixcbiAgICBcIkQnYW5nZWxvXCIsXG4gICAgXCJEYW1pY29cIixcbiAgICBcIkRlIEFuZ2VsaXNcIixcbiAgICBcIkRlIGx1Y2FcIixcbiAgICBcIkRlIHJvc2FcIixcbiAgICBcIkRlIFNhbnRpc1wiLFxuICAgIFwiRG9uYXRpXCIsXG4gICAgXCJFc3Bvc2l0b1wiLFxuICAgIFwiRmFiYnJpXCIsXG4gICAgXCJGYXJpblwiLFxuICAgIFwiRmVycmFyYVwiLFxuICAgIFwiRmVycmFyaVwiLFxuICAgIFwiRmVycmFyb1wiLFxuICAgIFwiRmVycmV0dGlcIixcbiAgICBcIkZlcnJpXCIsXG4gICAgXCJGaW9yXCIsXG4gICAgXCJGb250YW5hXCIsXG4gICAgXCJHYWxsaVwiLFxuICAgIFwiR2FsbG9cIixcbiAgICBcIkdhdHRpXCIsXG4gICAgXCJHZW50aWxlXCIsXG4gICAgXCJHaW9yZGFub1wiLFxuICAgIFwiR2l1bGlhbmlcIixcbiAgICBcIkdyYXNzaVwiLFxuICAgIFwiR3Jhc3NvXCIsXG4gICAgXCJHcmVjb1wiLFxuICAgIFwiR3VlcnJhXCIsXG4gICAgXCJMZW9uZVwiLFxuICAgIFwiTG9tYmFyZGlcIixcbiAgICBcIkxvbWJhcmRvXCIsXG4gICAgXCJMb25nb1wiLFxuICAgIFwiTWFuY2luaVwiLFxuICAgIFwiTWFyY2hldHRpXCIsXG4gICAgXCJNYXJpYW5cIixcbiAgICBcIk1hcmluaVwiLFxuICAgIFwiTWFyaW5vXCIsXG4gICAgXCJNYXJ0aW5lbGxpXCIsXG4gICAgXCJNYXJ0aW5pXCIsXG4gICAgXCJNYXJ0aW5vXCIsXG4gICAgXCJNYXp6YVwiLFxuICAgIFwiTWVzc2luYVwiLFxuICAgIFwiTWlsYW5pXCIsXG4gICAgXCJNb250YW5hcmlcIixcbiAgICBcIk1vbnRpXCIsXG4gICAgXCJNb3JlbGxpXCIsXG4gICAgXCJNb3JldHRpXCIsXG4gICAgXCJOZWdyaVwiLFxuICAgIFwiTmVyaVwiLFxuICAgIFwiT3JsYW5kb1wiLFxuICAgIFwiUGFnYW5vXCIsXG4gICAgXCJQYWxtaWVyaVwiLFxuICAgIFwiUGFsdW1ib1wiLFxuICAgIFwiUGFyaXNpXCIsXG4gICAgXCJQZWxsZWdyaW5pXCIsXG4gICAgXCJQZWxsZWdyaW5vXCIsXG4gICAgXCJQaXJhc1wiLFxuICAgIFwiUmljY2lcIixcbiAgICBcIlJpbmFsZGlcIixcbiAgICBcIlJpdmFcIixcbiAgICBcIlJpenppXCIsXG4gICAgXCJSaXp6b1wiLFxuICAgIFwiUm9tYW5vXCIsXG4gICAgXCJSb3NzXCIsXG4gICAgXCJSb3NzZXR0aVwiLFxuICAgIFwiUnVnZ2llcm9cIixcbiAgICBcIlJ1c3NvXCIsXG4gICAgXCJTYWxhXCIsXG4gICAgXCJTYW5uYVwiLFxuICAgIFwiU2FudG9yb1wiLFxuICAgIFwiU2FydG9yaVwiLFxuICAgIFwiU2VyclwiLFxuICAgIFwiU2lsdmVzdHJpXCIsXG4gICAgXCJTb3JyZW50aW5vXCIsXG4gICAgXCJUZXN0YVwiLFxuICAgIFwiVmFsZW50aW5pXCIsXG4gICAgXCJWaWxsYVwiLFxuICAgIFwiVml0YWxlXCIsXG4gICAgXCJWaXRhbGlcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJTaWcuXCIsXG4gICAgXCJEb3R0LlwiLFxuICAgIFwiRHIuXCIsXG4gICAgXCJJbmcuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW10sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5pdC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIrIyMgIyMjICMjICMjICMjIyNcIixcbiAgICBcIisjIyAjIyAjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMgIyMjIyMjIyNcIixcbiAgICBcIisjIyAjIyMgIyMjIyMjI1wiLFxuICAgIFwiKyMjICMjIyAjIyMjIyMjI1wiLFxuICAgIFwiKyMjICMjIyMgIyMjIyMjI1wiLFxuICAgIFwiKyMjICMjIyMgIyMjIyMjIyNcIixcbiAgICBcIjAjIyAjIyMgIyMjI1wiLFxuICAgIFwiKzM5IDAjIyAjIyMgIyMjXCIsXG4gICAgXCIzIyMgIyMjICMjI1wiLFxuICAgIFwiKzM5IDMjIyAjIyMgIyMjXCJcbiAgXVxufTtcbiIsInZhciBqYSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGphO1xuamEudGl0bGUgPSBcIkphcGFuZXNlXCI7XG5qYS5hZGRyZXNzID0ge1xuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIy0jIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCLljJfmtbfpgZNcIixcbiAgICBcIumdkuajruecjFwiLFxuICAgIFwi5bKp5omL55yMXCIsXG4gICAgXCLlrq7ln47nnIxcIixcbiAgICBcIueni+eUsOecjFwiLFxuICAgIFwi5bGx5b2i55yMXCIsXG4gICAgXCLnpo/ls7bnnIxcIixcbiAgICBcIuiMqOWfjuecjFwiLFxuICAgIFwi5qCD5pyo55yMXCIsXG4gICAgXCLnvqTppqznnIxcIixcbiAgICBcIuWfvOeOieecjFwiLFxuICAgIFwi5Y2D6JGJ55yMXCIsXG4gICAgXCLmnbHkuqzpg71cIixcbiAgICBcIuelnuWliOW3neecjFwiLFxuICAgIFwi5paw5r2f55yMXCIsXG4gICAgXCLlr4zlsbHnnIxcIixcbiAgICBcIuefs+W3neecjFwiLFxuICAgIFwi56aP5LqV55yMXCIsXG4gICAgXCLlsbHmoqjnnIxcIixcbiAgICBcIumVt+mHjuecjFwiLFxuICAgIFwi5bKQ6Zic55yMXCIsXG4gICAgXCLpnZnlsqHnnIxcIixcbiAgICBcIuaEm+efpeecjFwiLFxuICAgIFwi5LiJ6YeN55yMXCIsXG4gICAgXCLmu4vos4DnnIxcIixcbiAgICBcIuS6rOmDveW6nFwiLFxuICAgIFwi5aSn6Ziq5bqcXCIsXG4gICAgXCLlhbXluqvnnIxcIixcbiAgICBcIuWliOiJr+ecjFwiLFxuICAgIFwi5ZKM5q2M5bGx55yMXCIsXG4gICAgXCLps6Xlj5bnnIxcIixcbiAgICBcIuWztuagueecjFwiLFxuICAgIFwi5bKh5bGx55yMXCIsXG4gICAgXCLluoPls7bnnIxcIixcbiAgICBcIuWxseWPo+ecjFwiLFxuICAgIFwi5b6z5bO255yMXCIsXG4gICAgXCLpppnlt53nnIxcIixcbiAgICBcIuaEm+Wqm+ecjFwiLFxuICAgIFwi6auY55+l55yMXCIsXG4gICAgXCLnpo/lsqHnnIxcIixcbiAgICBcIuS9kOizgOecjFwiLFxuICAgIFwi6ZW35bSO55yMXCIsXG4gICAgXCLnhormnKznnIxcIixcbiAgICBcIuWkp+WIhuecjFwiLFxuICAgIFwi5a6u5bSO55yMXCIsXG4gICAgXCLpub/lhZDls7bnnIxcIixcbiAgICBcIuaylue4hOecjFwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCIxXCIsXG4gICAgXCIyXCIsXG4gICAgXCIzXCIsXG4gICAgXCI0XCIsXG4gICAgXCI1XCIsXG4gICAgXCI2XCIsXG4gICAgXCI3XCIsXG4gICAgXCI4XCIsXG4gICAgXCI5XCIsXG4gICAgXCIxMFwiLFxuICAgIFwiMTFcIixcbiAgICBcIjEyXCIsXG4gICAgXCIxM1wiLFxuICAgIFwiMTRcIixcbiAgICBcIjE1XCIsXG4gICAgXCIxNlwiLFxuICAgIFwiMTdcIixcbiAgICBcIjE4XCIsXG4gICAgXCIxOVwiLFxuICAgIFwiMjBcIixcbiAgICBcIjIxXCIsXG4gICAgXCIyMlwiLFxuICAgIFwiMjNcIixcbiAgICBcIjI0XCIsXG4gICAgXCIyNVwiLFxuICAgIFwiMjZcIixcbiAgICBcIjI3XCIsXG4gICAgXCIyOFwiLFxuICAgIFwiMjlcIixcbiAgICBcIjMwXCIsXG4gICAgXCIzMVwiLFxuICAgIFwiMzJcIixcbiAgICBcIjMzXCIsXG4gICAgXCIzNFwiLFxuICAgIFwiMzVcIixcbiAgICBcIjM2XCIsXG4gICAgXCIzN1wiLFxuICAgIFwiMzhcIixcbiAgICBcIjM5XCIsXG4gICAgXCI0MFwiLFxuICAgIFwiNDFcIixcbiAgICBcIjQyXCIsXG4gICAgXCI0M1wiLFxuICAgIFwiNDRcIixcbiAgICBcIjQ1XCIsXG4gICAgXCI0NlwiLFxuICAgIFwiNDdcIlxuICBdLFxuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIuWMl1wiLFxuICAgIFwi5p2xXCIsXG4gICAgXCLopb9cIixcbiAgICBcIuWNl1wiLFxuICAgIFwi5pawXCIsXG4gICAgXCLmuZZcIixcbiAgICBcIua4r1wiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwi5biCXCIsXG4gICAgXCLljLpcIixcbiAgICBcIueUulwiLFxuICAgIFwi5p2RXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9I3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje2NpdHlfcHJlZml4fSN7TmFtZS5sYXN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tzdHJlZXRfc3VmZml4fVwiXG4gIF1cbn07XG5qYS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwIyMjIy0jLSMjIyNcIixcbiAgICBcIjAjIyMtIyMtIyMjI1wiLFxuICAgIFwiMCMjLSMjIy0jIyMjXCIsXG4gICAgXCIwIy0jIyMjLSMjIyNcIlxuICBdXG59O1xuamEuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjA5MC0jIyMjLSMjIyNcIixcbiAgICBcIjA4MC0jIyMjLSMjIyNcIixcbiAgICBcIjA3MC0jIyMjLSMjIyNcIlxuICBdXG59O1xuamEubmFtZSA9IHtcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi5L2Q6JekXCIsXG4gICAgXCLpiLTmnKhcIixcbiAgICBcIumrmOapi1wiLFxuICAgIFwi55Sw5LitXCIsXG4gICAgXCLmuKHovrpcIixcbiAgICBcIuS8iuiXpFwiLFxuICAgIFwi5bGx5pysXCIsXG4gICAgXCLkuK3mnZFcIixcbiAgICBcIuWwj+ael1wiLFxuICAgIFwi5Yqg6JekXCIsXG4gICAgXCLlkInnlLBcIixcbiAgICBcIuWxseeUsFwiLFxuICAgIFwi5L2Q44CF5pyoXCIsXG4gICAgXCLlsbHlj6NcIixcbiAgICBcIuaWjuiXpFwiLFxuICAgIFwi5p2+5pysXCIsXG4gICAgXCLkupXkuIpcIixcbiAgICBcIuacqOadkVwiLFxuICAgIFwi5p6XXCIsXG4gICAgXCLmuIXmsLRcIlxuICBdLFxuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwi5aSn57+UXCIsXG4gICAgXCLok65cIixcbiAgICBcIumir+WkqlwiLFxuICAgIFwi5qi5XCIsXG4gICAgXCLlpKflkoxcIixcbiAgICBcIumZvee/lFwiLFxuICAgIFwi6Zm45paXXCIsXG4gICAgXCLlpKrkuIBcIixcbiAgICBcIua1t+e/lFwiLFxuICAgIFwi6JK856m6XCIsXG4gICAgXCLnv7xcIixcbiAgICBcIumZveiPnFwiLFxuICAgIFwi57WQ5oSbXCIsXG4gICAgXCLntZDooaNcIixcbiAgICBcIuadj1wiLFxuICAgIFwi6I6J5a2QXCIsXG4gICAgXCLnvo7nvr1cIixcbiAgICBcIue1kOiPnFwiLFxuICAgIFwi5b+D5oSbXCIsXG4gICAgXCLmhJvoj5xcIixcbiAgICBcIue+juWSslwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2xhc3RfbmFtZX0gI3tmaXJzdF9uYW1lfVwiXG4gIF1cbn07XG4iLCJ2YXIga28gPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBrbztcbmtvLnRpdGxlID0gXCJLb3JlYW5cIjtcbmtvLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjLSMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwi6rCV7JuQXCIsXG4gICAgXCLqsr3quLBcIixcbiAgICBcIuqyveuCqFwiLFxuICAgIFwi6rK967aBXCIsXG4gICAgXCLqtJHso7xcIixcbiAgICBcIuuMgOq1rFwiLFxuICAgIFwi64yA7KCEXCIsXG4gICAgXCLrtoDsgrBcIixcbiAgICBcIuyEnOyauFwiLFxuICAgIFwi7Jq47IKwXCIsXG4gICAgXCLsnbjsspxcIixcbiAgICBcIuyghOuCqFwiLFxuICAgIFwi7KCE67aBXCIsXG4gICAgXCLsoJzso7xcIixcbiAgICBcIuy2qeuCqFwiLFxuICAgIFwi7Lap67aBXCIsXG4gICAgXCLshLjsooVcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwi6rCV7JuQXCIsXG4gICAgXCLqsr3quLBcIixcbiAgICBcIuqyveuCqFwiLFxuICAgIFwi6rK967aBXCIsXG4gICAgXCLqtJHso7xcIixcbiAgICBcIuuMgOq1rFwiLFxuICAgIFwi64yA7KCEXCIsXG4gICAgXCLrtoDsgrBcIixcbiAgICBcIuyEnOyauFwiLFxuICAgIFwi7Jq47IKwXCIsXG4gICAgXCLsnbjsspxcIixcbiAgICBcIuyghOuCqFwiLFxuICAgIFwi7KCE67aBXCIsXG4gICAgXCLsoJzso7xcIixcbiAgICBcIuy2qeuCqFwiLFxuICAgIFwi7Lap67aBXCIsXG4gICAgXCLshLjsooVcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcIuq1rFwiLFxuICAgIFwi7IucXCIsXG4gICAgXCLqtbBcIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCLqsJXrpolcIixcbiAgICBcIuyWkeyWkVwiLFxuICAgIFwi7J247KCcXCIsXG4gICAgXCLqtJHso7xcIixcbiAgICBcIuq1rOumrFwiLFxuICAgIFwi67aA7LKcXCIsXG4gICAgXCLrsIDslpFcIixcbiAgICBcIu2GteyYgVwiLFxuICAgIFwi7LC97JuQXCIsXG4gICAgXCLqsbDssL1cIixcbiAgICBcIuqzoOyEsVwiLFxuICAgIFwi7JaR7IKwXCIsXG4gICAgXCLquYDsspxcIixcbiAgICBcIuq1rOuvuFwiLFxuICAgIFwi7JiB7KO8XCIsXG4gICAgXCLqtJHsgrBcIixcbiAgICBcIuuCqFwiLFxuICAgIFwi67aBXCIsXG4gICAgXCLqs6DssL1cIixcbiAgICBcIuq1sOyCsFwiLFxuICAgIFwi64Ko7JuQXCIsXG4gICAgXCLrj5nsnpFcIixcbiAgICBcIuuniO2PrFwiLFxuICAgIFwi7Iah7YyMXCIsXG4gICAgXCLsmqnsgrBcIixcbiAgICBcIuu2gO2PiVwiLFxuICAgIFwi6rCV7ZmUXCIsXG4gICAgXCLsiJjshLFcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X25hbWV9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIuyDgeqzhFwiLFxuICAgIFwi7ZmU6rOhXCIsXG4gICAgXCLsi6DsoJVcIixcbiAgICBcIuuqqVwiLFxuICAgIFwi7J6g7IukXCIsXG4gICAgXCLrqbTrqqlcIixcbiAgICBcIuyjvOyViFwiLFxuICAgIFwi7JWI7JaRXCIsXG4gICAgXCLspJFcIixcbiAgICBcIuygleyZlVwiLFxuICAgIFwi6rWs66GcXCIsXG4gICAgXCLsi6Dsm5RcIixcbiAgICBcIuyXsOyCsFwiLFxuICAgIFwi67aA7Y+JXCIsXG4gICAgXCLssL1cIixcbiAgICBcIuunjOyImFwiLFxuICAgIFwi7KSR6rOEXCIsXG4gICAgXCLqsoDri6hcIixcbiAgICBcIuyLnO2dpVwiLFxuICAgIFwi7IOB64+EXCIsXG4gICAgXCLrsKnrsLBcIixcbiAgICBcIuyepeycoFwiLFxuICAgIFwi7IOBXCIsXG4gICAgXCLqtJHrqoVcIixcbiAgICBcIuyLoOq4uFwiLFxuICAgIFwi7ZaJ7IugXCIsXG4gICAgXCLrjIDrqoVcIixcbiAgICBcIuuPme2DhFwiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCLsnY1cIixcbiAgICBcIuuptFwiLFxuICAgIFwi64+ZXCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdXG59O1xua28ucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMCMtIyMjIyMtIyMjI1wiLFxuICAgIFwiMCMjLSMjIy0jIyMjXCIsXG4gICAgXCIwIyMtIyMjIy0jIyMjXCJcbiAgXVxufTtcbmtvLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIuyXsOq1rOyGjFwiLFxuICAgIFwi6rKM7J6E7KaIXCIsXG4gICAgXCLqt7jro7lcIixcbiAgICBcIuyghOyekFwiLFxuICAgIFwi66y87IKwXCIsXG4gICAgXCLsvZTrpqzslYRcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCLso7zsi53tmozsgqxcIixcbiAgICBcIu2VnOq1rVwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbmtvLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jby5rclwiLFxuICAgIFwiaGFubWFpbC5uZXRcIixcbiAgICBcIm5hdmVyLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjby5rclwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5lLmtyXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yLmtyXCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xua28ubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwi6rWt6rCA64qUXCIsXG4gICAgXCLrspXrpaDsnbRcIixcbiAgICBcIuygle2VmOuKlFwiLFxuICAgIFwi67CU7JeQXCIsXG4gICAgXCLsnZjtlZjsl6xcIixcbiAgICBcIuyerOyZuOq1reuvvOydhFwiLFxuICAgIFwi67O07Zi47ZWgXCIsXG4gICAgXCLsnZjrrLTrpbxcIixcbiAgICBcIuynhOuLpC5cIixcbiAgICBcIuuqqOuToFwiLFxuICAgIFwi6rWt66+87J2AXCIsXG4gICAgXCLsi6DssrTsnZhcIixcbiAgICBcIuyekOycoOulvFwiLFxuICAgIFwi6rCA7KeE64ukLlwiLFxuICAgIFwi6rWt6rCA64qUXCIsXG4gICAgXCLsoITthrXrrLjtmZTsnZhcIixcbiAgICBcIuqzhOyKucK367Cc7KCE6rO8XCIsXG4gICAgXCLrr7zsobHrrLjtmZTsnZhcIixcbiAgICBcIuywveuLrOyXkFwiLFxuICAgIFwi64W466Cl7ZWY7Jes7JW8XCIsXG4gICAgXCLtlZzri6QuXCIsXG4gICAgXCLthrXsi6DCt+uwqeyGoeydmFwiLFxuICAgIFwi7Iuc7ISk6riw7KSA6rO8XCIsXG4gICAgXCLsi6DrrLjsnZhcIixcbiAgICBcIuq4sOuKpeydhFwiLFxuICAgIFwi67O07J6l7ZWY6riwXCIsXG4gICAgXCLsnITtlZjsl6xcIixcbiAgICBcIu2VhOyalO2VnFwiLFxuICAgIFwi7IKs7ZWt7J2AXCIsXG4gICAgXCLrspXrpaDroZxcIixcbiAgICBcIuygle2VnOuLpC5cIixcbiAgICBcIu2XjOuyleyXkFwiLFxuICAgIFwi7J2Y7ZWY7JesXCIsXG4gICAgXCLssrTqsrDCt+qzte2PrOuQnFwiLFxuICAgIFwi7KGw7JW96rO8XCIsXG4gICAgXCLsnbzrsJjsoIHsnLzroZxcIixcbiAgICBcIuyKueyduOuQnFwiLFxuICAgIFwi6rWt7KCc67KV6rec64qUXCIsXG4gICAgXCLqta3rgrTrspXqs7xcIixcbiAgICBcIuqwmeydgFwiLFxuICAgIFwi7Zqo66Cl7J2EXCIsXG4gICAgXCLqsIDsp4Tri6QuXCIsXG4gICAgXCLri6Trp4wsXCIsXG4gICAgXCLtmITtlonrspTsnbjsnbhcIixcbiAgICBcIuqyveyasOyZgFwiLFxuICAgIFwi7J6l6riwXCIsXG4gICAgXCIz64WEXCIsXG4gICAgXCLsnbTsg4HsnZhcIixcbiAgICBcIu2YleyXkFwiLFxuICAgIFwi7ZW064u57ZWY64qUXCIsXG4gICAgXCLso4TrpbxcIixcbiAgICBcIuuylO2VmOqzoFwiLFxuICAgIFwi64+E7ZS8XCIsXG4gICAgXCLrmJDripRcIixcbiAgICBcIuymneqxsOyduOupuOydmFwiLFxuICAgIFwi7Je866Ck6rCAXCIsXG4gICAgXCLsnojsnYRcIixcbiAgICBcIuuVjOyXkOuKlFwiLFxuICAgIFwi7IKs7ZuE7JeQXCIsXG4gICAgXCLsmIHsnqXsnYRcIixcbiAgICBcIuyyreq1rO2VoFwiLFxuICAgIFwi7IiYXCIsXG4gICAgXCLsnojri6QuXCIsXG4gICAgXCLsoIDsnpHsnpDCt+uwnOuqheqwgMK36rO87ZWZ6riw7Iig7J6Q7JmAXCIsXG4gICAgXCLsmIjsiKDqsIDsnZhcIixcbiAgICBcIuq2jOumrOuKlFwiLFxuICAgIFwi67KV66Wg66Gc7I2oXCIsXG4gICAgXCLrs7TtmLjtlZzri6QuXCIsXG4gICAgXCLtmJXsgqztlLzqs6DsnbjsnYBcIixcbiAgICBcIuycoOyjhOydmFwiLFxuICAgIFwi7YyQ6rKw7J20XCIsXG4gICAgXCLtmZXsoJXrkKBcIixcbiAgICBcIuuVjOq5jOyngOuKlFwiLFxuICAgIFwi66y07KOE66GcXCIsXG4gICAgXCLstpTsoJXrkJzri6QuXCIsXG4gICAgXCLrqqjrk6BcIixcbiAgICBcIuq1reuvvOydgFwiLFxuICAgIFwi7ZaJ7JyE7Iuc7J2YXCIsXG4gICAgXCLrspXrpaDsl5BcIixcbiAgICBcIuydmO2VmOyXrFwiLFxuICAgIFwi67KU7KOE66W8XCIsXG4gICAgXCLqtazshLHtlZjsp4BcIixcbiAgICBcIuyVhOuLiO2VmOuKlFwiLFxuICAgIFwi7ZaJ7JyE66GcXCIsXG4gICAgXCLshozstpTrkJjsp4BcIixcbiAgICBcIuyVhOuLiO2VmOupsCxcIixcbiAgICBcIuuPmeydvO2VnFwiLFxuICAgIFwi67KU7KOE7JeQXCIsXG4gICAgXCLrjIDtlZjsl6xcIixcbiAgICBcIuqxsOuTrVwiLFxuICAgIFwi7LKY67KM67Cb7KeAXCIsXG4gICAgXCLslYTri4jtlZzri6QuXCIsXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIu2PieyDneq1kOycoeydhFwiLFxuICAgIFwi7KeE7Z2l7ZWY7Jes7JW8XCIsXG4gICAgXCLtlZzri6QuXCIsXG4gICAgXCLrqqjrk6BcIixcbiAgICBcIuq1reuvvOydgFwiLFxuICAgIFwi7IKs7IOd7Zmc7J2YXCIsXG4gICAgXCLruYTrsIDqs7xcIixcbiAgICBcIuyekOycoOulvFwiLFxuICAgIFwi7Lmo7ZW067Cb7KeAXCIsXG4gICAgXCLslYTri4jtlZzri6QuXCIsXG4gICAgXCLsnZjrrLTqtZDsnKHsnYBcIixcbiAgICBcIuustOyDgeycvOuhnFwiLFxuICAgIFwi7ZWc64ukLlwiLFxuICAgIFwi7KCA7J6R7J6QwrfrsJzrqoXqsIDCt+qzvO2Vmeq4sOyIoOyekOyZgFwiLFxuICAgIFwi7JiI7Iig6rCA7J2YXCIsXG4gICAgXCLqtozrpqzripRcIixcbiAgICBcIuuyleuloOuhnOyNqFwiLFxuICAgIFwi67O07Zi47ZWc64ukLlwiLFxuICAgIFwi6rWt6rCA64qUXCIsXG4gICAgXCLrqqjshLHsnZhcIixcbiAgICBcIuuztO2YuOulvFwiLFxuICAgIFwi7JyE7ZWY7JesXCIsXG4gICAgXCLrhbjroKXtlZjsl6zslbxcIixcbiAgICBcIu2VnOuLpC5cIixcbiAgICBcIu2XjOuyleyXkFwiLFxuICAgIFwi7J2Y7ZWY7JesXCIsXG4gICAgXCLssrTqsrDCt+qzte2PrOuQnFwiLFxuICAgIFwi7KGw7JW96rO8XCIsXG4gICAgXCLsnbzrsJjsoIHsnLzroZxcIixcbiAgICBcIuyKueyduOuQnFwiLFxuICAgIFwi6rWt7KCc67KV6rec64qUXCIsXG4gICAgXCLqta3rgrTrspXqs7xcIixcbiAgICBcIuqwmeydgFwiLFxuICAgIFwi7Zqo66Cl7J2EXCIsXG4gICAgXCLqsIDsp4Tri6QuXCJcbiAgXVxufTtcbmtvLm5hbWUgPSB7XG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIuq5gFwiLFxuICAgIFwi7J20XCIsXG4gICAgXCLrsJVcIixcbiAgICBcIuy1nFwiLFxuICAgIFwi7KCVXCIsXG4gICAgXCLqsJVcIixcbiAgICBcIuyhsFwiLFxuICAgIFwi7JykXCIsXG4gICAgXCLsnqVcIixcbiAgICBcIuyehFwiLFxuICAgIFwi7JikXCIsXG4gICAgXCLtlZxcIixcbiAgICBcIuyLoFwiLFxuICAgIFwi7IScXCIsXG4gICAgXCLqtoxcIixcbiAgICBcIu2ZqVwiLFxuICAgIFwi7JWIXCIsXG4gICAgXCLshqFcIixcbiAgICBcIuulmFwiLFxuICAgIFwi7ZmNXCJcbiAgXSxcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIuyEnOyXsFwiLFxuICAgIFwi66+87IScXCIsXG4gICAgXCLshJztmIRcIixcbiAgICBcIuyngOyasFwiLFxuICAgIFwi7ISc7JykXCIsXG4gICAgXCLsp4Drr7xcIixcbiAgICBcIuyImOu5iFwiLFxuICAgIFwi7ZWY7J2AXCIsXG4gICAgXCLsmIjsnYBcIixcbiAgICBcIuycpOyEnFwiLFxuICAgIFwi66+87KSAXCIsXG4gICAgXCLsp4Dtm4RcIixcbiAgICBcIuyngO2biFwiLFxuICAgIFwi7KSA7IScXCIsXG4gICAgXCLtmITsmrBcIixcbiAgICBcIuyYiOykgFwiLFxuICAgIFwi6rG07JqwXCIsXG4gICAgXCLtmITspIBcIixcbiAgICBcIuuvvOyerFwiLFxuICAgIFwi7Jqw7KeEXCIsXG4gICAgXCLsnYDso7xcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tsYXN0X25hbWV9ICN7Zmlyc3RfbmFtZX1cIlxuICBdXG59O1xuIiwidmFyIG5iX05PID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gbmJfTk87XG5uYl9OTy50aXRsZSA9IFwiTm9yd2VnaWFuXCI7XG5uYl9OTy5hZGRyZXNzID0ge1xuICBcImNpdHlfcm9vdFwiOiBbXG4gICAgXCJGZXRcIixcbiAgICBcIkdqZXNcIixcbiAgICBcIkjDuHlcIixcbiAgICBcIklublwiLFxuICAgIFwiRmFnZXJcIixcbiAgICBcIkxpbGxlXCIsXG4gICAgXCJMb1wiLFxuICAgIFwiTWFsXCIsXG4gICAgXCJOb3JkXCIsXG4gICAgXCJOw6ZyXCIsXG4gICAgXCJTYW5kXCIsXG4gICAgXCJTbWVcIixcbiAgICBcIlN0YXZcIixcbiAgICBcIlN0b3JcIixcbiAgICBcIlRhbmRcIixcbiAgICBcIlV0XCIsXG4gICAgXCJWZXN0XCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCJiZXJnXCIsXG4gICAgXCJib3JnXCIsXG4gICAgXCJieVwiLFxuICAgIFwiYsO4XCIsXG4gICAgXCJkYWxcIixcbiAgICBcImVpZFwiLFxuICAgIFwiZmplbGxcIixcbiAgICBcImZqb3JkXCIsXG4gICAgXCJmb3NzXCIsXG4gICAgXCJncnVublwiLFxuICAgIFwiaGFtblwiLFxuICAgIFwiaGF2blwiLFxuICAgIFwiaGVsbGVcIixcbiAgICBcIm1hcmtcIixcbiAgICBcIm5lc1wiLFxuICAgIFwib2RkZW5cIixcbiAgICBcInNhbmRcIixcbiAgICBcInNqw7hlblwiLFxuICAgIFwic3RhZFwiLFxuICAgIFwic3RyYW5kXCIsXG4gICAgXCJzdHLDuG1cIixcbiAgICBcInN1bmRcIixcbiAgICBcInZpa1wiLFxuICAgIFwidsOmclwiLFxuICAgIFwidsOlZ1wiLFxuICAgIFwiw7hcIixcbiAgICBcIsO4eVwiLFxuICAgIFwiw6VzXCJcbiAgXSxcbiAgXCJzdHJlZXRfcHJlZml4XCI6IFtcbiAgICBcIsOYdnJlXCIsXG4gICAgXCJOZWRyZVwiLFxuICAgIFwiU8O4bmRyZVwiLFxuICAgIFwiR2FtbGVcIixcbiAgICBcIsOYc3RyZVwiLFxuICAgIFwiVmVzdHJlXCJcbiAgXSxcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJFaWtlXCIsXG4gICAgXCJCasO4cmtlXCIsXG4gICAgXCJHcmFuXCIsXG4gICAgXCJWYXNzXCIsXG4gICAgXCJGdXJ1XCIsXG4gICAgXCJMaXRqXCIsXG4gICAgXCJMaWxsZVwiLFxuICAgIFwiSMO4eVwiLFxuICAgIFwiRm9zc2VcIixcbiAgICBcIkVsdmVcIixcbiAgICBcIkt1XCIsXG4gICAgXCJLb252YWxsXCIsXG4gICAgXCJTb2xkdWdnXCIsXG4gICAgXCJIZXN0ZW15clwiLFxuICAgIFwiR3Jhbml0dFwiLFxuICAgIFwiSGVnZ2VcIixcbiAgICBcIlJvZ25lXCIsXG4gICAgXCJGaW9sXCIsXG4gICAgXCJTb2xcIixcbiAgICBcIlRpbmdcIixcbiAgICBcIk1hbG1cIixcbiAgICBcIktsb2trZXJcIixcbiAgICBcIlByZXN0ZVwiLFxuICAgIFwiRGFtXCIsXG4gICAgXCJHZWl0ZXJ5Z2dcIixcbiAgICBcIkJla2tlXCIsXG4gICAgXCJCZXJnXCIsXG4gICAgXCJLaXJrZVwiLFxuICAgIFwiS29yc1wiLFxuICAgIFwiQnJ1XCIsXG4gICAgXCJCbMOldmVpc1wiLFxuICAgIFwiVG9yZ1wiLFxuICAgIFwiU2rDuFwiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJhbGzDqWVuXCIsXG4gICAgXCJiYWtrZW5cIixcbiAgICBcImJlcmdldFwiLFxuICAgIFwiYnLDpXRlblwiLFxuICAgIFwiZWdnZW5cIixcbiAgICBcImVuZ2VuXCIsXG4gICAgXCJla3JhXCIsXG4gICAgXCJmYXJldFwiLFxuICAgIFwiZmxhdGFcIixcbiAgICBcImdhdGFcIixcbiAgICBcImdqZXJkZXRcIixcbiAgICBcImdyZW5kYVwiLFxuICAgIFwiZ3JvcGFcIixcbiAgICBcImhhZ2VuXCIsXG4gICAgXCJoYXVnZW5cIixcbiAgICBcImhhdm5hXCIsXG4gICAgXCJob2x0ZXRcIixcbiAgICBcImjDuGdkYVwiLFxuICAgIFwiam9yZGV0XCIsXG4gICAgXCJrb2xsZW5cIixcbiAgICBcImtyb2tlblwiLFxuICAgIFwibGlhXCIsXG4gICAgXCJsdW5kZW5cIixcbiAgICBcImx5bmdlblwiLFxuICAgIFwibMO4a2thXCIsXG4gICAgXCJtYXJrYVwiLFxuICAgIFwibW9lblwiLFxuICAgIFwibXlyYVwiLFxuICAgIFwicGxhc3NlblwiLFxuICAgIFwicmluZ2VuXCIsXG4gICAgXCJyb2FcIixcbiAgICBcInLDuGFcIixcbiAgICBcInNrb2dlblwiLFxuICAgIFwic2tyZW50ZW5cIixcbiAgICBcInNwcmFuZ2V0XCIsXG4gICAgXCJzdGllblwiLFxuICAgIFwic3RyYW5kYVwiLFxuICAgIFwic3R1YmJlblwiLFxuICAgIFwic3R5a2tldFwiLFxuICAgIFwic3ZpbmdlblwiLFxuICAgIFwidGplcm5ldFwiLFxuICAgIFwidG9wcGVuXCIsXG4gICAgXCJ0dW5ldFwiLFxuICAgIFwidm9sbGVuXCIsXG4gICAgXCJ2aWthXCIsXG4gICAgXCLDpXNlblwiXG4gIF0sXG4gIFwiY29tbW9uX3N0cmVldF9zdWZmaXhcIjogW1xuICAgIFwic2dhdGVcIixcbiAgICBcInN2ZWlcIixcbiAgICBcInMgR2F0ZVwiLFxuICAgIFwicyBWZWlcIixcbiAgICBcImdhdGFcIixcbiAgICBcInZlaWVuXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiI1wiLFxuICAgIFwiIyNcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkxlaWwuICMjI1wiLFxuICAgIFwiT3BwZ2FuZyBBXCIsXG4gICAgXCJPcHBnYW5nIEJcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIjAjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIlwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcm9vdH0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcm9vdH0je3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje3N0cmVldF9wcmVmaXh9ICN7c3RyZWV0X3Jvb3R9I3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjb21tb25fc3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tjb21tb25fc3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIk5vcmdlXCJcbiAgXVxufTtcbm5iX05PLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkdydXBwZW5cIixcbiAgICBcIkFTXCIsXG4gICAgXCJBU0FcIixcbiAgICBcIkJBXCIsXG4gICAgXCJSRkhcIixcbiAgICBcIm9nIFPDuG5uZXJcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IG9nICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbm5iX05PLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwibm9cIixcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xubmJfTk8ubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkVtbWFcIixcbiAgICBcIlNhcmFcIixcbiAgICBcIlRoZWFcIixcbiAgICBcIklkYVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIkVtaWxpZVwiLFxuICAgIFwiSW5ncmlkXCIsXG4gICAgXCJIYW5uYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIlNvZmllXCIsXG4gICAgXCJBbm5hXCIsXG4gICAgXCJNYWxpblwiLFxuICAgIFwiQW1hbGllXCIsXG4gICAgXCJWaWxkZVwiLFxuICAgIFwiRnJpZGFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiVHV2YVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIk1pYVwiLFxuICAgIFwiS2Fyb2xpbmVcIixcbiAgICBcIk1hdGhpbGRlXCIsXG4gICAgXCJNYXJ0aW5lXCIsXG4gICAgXCJMaW5uZWFcIixcbiAgICBcIk1hcnRlXCIsXG4gICAgXCJIZWRkYVwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIkhlbGVuZVwiLFxuICAgIFwiU2lsamVcIixcbiAgICBcIkxlYWhcIixcbiAgICBcIk1hamFcIixcbiAgICBcIkVsaXNlXCIsXG4gICAgXCJPZGFcIixcbiAgICBcIktyaXN0aW5lXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkthamFcIixcbiAgICBcIkNhbWlsbGFcIixcbiAgICBcIk1hcmlcIixcbiAgICBcIk1hcmVuXCIsXG4gICAgXCJNaW5hXCIsXG4gICAgXCJTZWxtYVwiLFxuICAgIFwiSmVubnlcIixcbiAgICBcIkNlbGluZVwiLFxuICAgIFwiRWxpbmVcIixcbiAgICBcIlN1bm5pdmFcIixcbiAgICBcIk5hdGFsaWVcIixcbiAgICBcIlRpcmlsXCIsXG4gICAgXCJTeW5uZVwiLFxuICAgIFwiU2FuZHJhXCIsXG4gICAgXCJNYWRlbGVpbmVcIixcbiAgICBcIk1hcmt1c1wiLFxuICAgIFwiTWF0aGlhc1wiLFxuICAgIFwiS3Jpc3RpYW5cIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJBbmRyZWFzXCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiU2FuZGVyXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiSGVucmlrXCIsXG4gICAgXCJUb2JpYXNcIixcbiAgICBcIktyaXN0b2ZmZXJcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJNYXJpdXNcIixcbiAgICBcIkVsaWFzXCIsXG4gICAgXCJGcmVkcmlrXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlNvbmRyZVwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIkpha29iXCIsXG4gICAgXCJPbGl2ZXJcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJPc2thclwiLFxuICAgIFwiTmlrb2xhaVwiLFxuICAgIFwiRmlsaXBcIixcbiAgICBcIk1hdHNcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIkVyaWtcIixcbiAgICBcIlNpbWVuXCIsXG4gICAgXCJPbGVcIixcbiAgICBcIkVpcmlrXCIsXG4gICAgXCJJc2FrXCIsXG4gICAgXCJLYXNwZXJcIixcbiAgICBcIk5vYWhcIixcbiAgICBcIkxhcnNcIixcbiAgICBcIkpvYWtpbVwiLFxuICAgIFwiSm9oYW5uZXNcIixcbiAgICBcIkjDpWtvblwiLFxuICAgIFwiU2luZHJlXCIsXG4gICAgXCJKw7hyZ2VuXCIsXG4gICAgXCJIZXJtYW5cIixcbiAgICBcIkFuZGVyc1wiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkV2ZW5cIixcbiAgICBcIlRoZW9kb3JcIixcbiAgICBcIk1pa2tlbFwiLFxuICAgIFwiQWtzZWxcIlxuICBdLFxuICBcImZlbWluaW5lX25hbWVcIjogW1xuICAgIFwiRW1tYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiVGhlYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiRW1pbGllXCIsXG4gICAgXCJJbmdyaWRcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiU29maWVcIixcbiAgICBcIkFubmFcIixcbiAgICBcIk1hbGluXCIsXG4gICAgXCJBbWFsaWVcIixcbiAgICBcIlZpbGRlXCIsXG4gICAgXCJGcmlkYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJUdXZhXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJLYXJvbGluZVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hcnRpbmVcIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTWFydGVcIixcbiAgICBcIkhlZGRhXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJTaWxqZVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiRWxpc2VcIixcbiAgICBcIk9kYVwiLFxuICAgIFwiS3Jpc3RpbmVcIixcbiAgICBcIkF1cm9yYVwiLFxuICAgIFwiS2FqYVwiLFxuICAgIFwiQ2FtaWxsYVwiLFxuICAgIFwiTWFyaVwiLFxuICAgIFwiTWFyZW5cIixcbiAgICBcIk1pbmFcIixcbiAgICBcIlNlbG1hXCIsXG4gICAgXCJKZW5ueVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJFbGluZVwiLFxuICAgIFwiU3Vubml2YVwiLFxuICAgIFwiTmF0YWxpZVwiLFxuICAgIFwiVGlyaWxcIixcbiAgICBcIlN5bm5lXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIk1hZGVsZWluZVwiXG4gIF0sXG4gIFwibWFzY3VsaW5lX25hbWVcIjogW1xuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXRoaWFzXCIsXG4gICAgXCJLcmlzdGlhblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkFuZHJlYXNcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiTWFnbnVzXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIlRvYmlhc1wiLFxuICAgIFwiS3Jpc3RvZmZlclwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIk1hcml1c1wiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkZyZWRyaWtcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiU29uZHJlXCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJOaWtvbGFpXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiTWF0c1wiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiRXJpa1wiLFxuICAgIFwiU2ltZW5cIixcbiAgICBcIk9sZVwiLFxuICAgIFwiRWlyaWtcIixcbiAgICBcIklzYWtcIixcbiAgICBcIkthc3BlclwiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiSm9ha2ltXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSMOla29uXCIsXG4gICAgXCJTaW5kcmVcIixcbiAgICBcIkrDuHJnZW5cIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiQW5kZXJzXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiRXZlblwiLFxuICAgIFwiVGhlb2RvclwiLFxuICAgIFwiTWlra2VsXCIsXG4gICAgXCJBa3NlbFwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkpvaGFuc2VuXCIsXG4gICAgXCJIYW5zZW5cIixcbiAgICBcIkFuZGVyc2VuXCIsXG4gICAgXCJLcmlzdGlhbnNlblwiLFxuICAgIFwiTGFyc2VuXCIsXG4gICAgXCJPbHNlblwiLFxuICAgIFwiU29sYmVyZ1wiLFxuICAgIFwiQW5kcmVzZW5cIixcbiAgICBcIlBlZGVyc2VuXCIsXG4gICAgXCJOaWxzZW5cIixcbiAgICBcIkJlcmdcIixcbiAgICBcIkhhbHZvcnNlblwiLFxuICAgIFwiS2FybHNlblwiLFxuICAgIFwiU3ZlbmRzZW5cIixcbiAgICBcIkplbnNlblwiLFxuICAgIFwiSGF1Z2VuXCIsXG4gICAgXCJNYXJ0aW5zZW5cIixcbiAgICBcIkVyaWtzZW5cIixcbiAgICBcIlPDuHJlbnNlblwiLFxuICAgIFwiSm9obnNlblwiLFxuICAgIFwiTXlocmVyXCIsXG4gICAgXCJKb2hhbm5lc3NlblwiLFxuICAgIFwiTmllbHNlblwiLFxuICAgIFwiSGFnZW5cIixcbiAgICBcIlBldHRlcnNlblwiLFxuICAgIFwiQmFra2VcIixcbiAgICBcIlNrdXRlcnVkXCIsXG4gICAgXCJMw7hrZW5cIixcbiAgICBcIkd1bmRlcnNlblwiLFxuICAgIFwiU3RyYW5kXCIsXG4gICAgXCJKw7hyZ2Vuc2VuXCIsXG4gICAgXCJLdmFybWVcIixcbiAgICBcIlLDuGVkXCIsXG4gICAgXCJTw6Z0aGVyXCIsXG4gICAgXCJTdGVuc3J1ZFwiLFxuICAgIFwiTW9lXCIsXG4gICAgXCJLcmlzdG9mZmVyc2VuXCIsXG4gICAgXCJKYWtvYnNlblwiLFxuICAgIFwiSG9sbVwiLFxuICAgIFwiQWFzXCIsXG4gICAgXCJMaWVcIixcbiAgICBcIk1vZW5cIixcbiAgICBcIkFuZHJlYXNzZW5cIixcbiAgICBcIlZlZHZpa1wiLFxuICAgIFwiTmd1eWVuXCIsXG4gICAgXCJKYWNvYnNlblwiLFxuICAgIFwiVG9yZ2Vyc2VuXCIsXG4gICAgXCJSdXVkXCIsXG4gICAgXCJLcm9naFwiLFxuICAgIFwiQ2hyaXN0aWFuc2VuXCIsXG4gICAgXCJCamVya2VcIixcbiAgICBcIkFhbGVydWRcIixcbiAgICBcIkJvcmdlXCIsXG4gICAgXCJTw7hybGllXCIsXG4gICAgXCJCZXJnZVwiLFxuICAgIFwiw5hzdGxpXCIsXG4gICAgXCLDmGRlZ8OlcmRcIixcbiAgICBcIlRvcnBcIixcbiAgICBcIkhlbnJpa3NlblwiLFxuICAgIFwiSGF1a2VsaWRzw6Z0ZXJcIixcbiAgICBcIkZqZWxkXCIsXG4gICAgXCJEYW5pZWxzZW5cIixcbiAgICBcIkFhc2VuXCIsXG4gICAgXCJGcmVkcmlrc2VuXCIsXG4gICAgXCJEYWhsXCIsXG4gICAgXCJCZXJudHNlblwiLFxuICAgIFwiQXJuZXNlblwiLFxuICAgIFwiV29sZFwiLFxuICAgIFwiVGhvcmVzZW5cIixcbiAgICBcIlNvbGhlaW1cIixcbiAgICBcIlNrb2dsdW5kXCIsXG4gICAgXCJCYWtrZW5cIixcbiAgICBcIkFtdW5kc2VuXCIsXG4gICAgXCJTb2xsaVwiLFxuICAgIFwiU21vZ2VsaVwiLFxuICAgIFwiS3Jpc3RlbnNlblwiLFxuICAgIFwiR2xvc2xpXCIsXG4gICAgXCJGb3NzdW1cIixcbiAgICBcIkV2ZW5zZW5cIixcbiAgICBcIkVpZGVcIixcbiAgICBcIkNhcmxzZW5cIixcbiAgICBcIsOYc3RieVwiLFxuICAgIFwiVmVnZ2VcIixcbiAgICBcIlRhbmdlblwiLFxuICAgIFwiU21lZHNydWRcIixcbiAgICBcIk9sc3RhZFwiLFxuICAgIFwiTHVuZGVcIixcbiAgICBcIktsZXZlblwiLFxuICAgIFwiSHVzZWJ5XCIsXG4gICAgXCJCasO4cm5zdGFkXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJSYXNtdXNzZW5cIixcbiAgICBcIk55Z8OlcmRcIixcbiAgICBcIk5vcmRza2F1Z1wiLFxuICAgIFwiTm9yZGJ5XCIsXG4gICAgXCJNYXRoaXNlblwiLFxuICAgIFwiSG9wbGFuZFwiLFxuICAgIFwiR3JhblwiLFxuICAgIFwiRmluc3RhZFwiLFxuICAgIFwiRWR2YXJkc2VuXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiRHIuXCIsXG4gICAgXCJQcm9mLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiU3IuXCIsXG4gICAgXCJJXCIsXG4gICAgXCJJSVwiLFxuICAgIFwiSUlJXCIsXG4gICAgXCJJVlwiLFxuICAgIFwiVlwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tmZW1pbmluZV9uYW1lfSAje2ZlbWluaW5lX25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYXNjdWxpbmVfbmFtZX0gI3ttYXNjdWxpbmVfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbm5iX05PLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIyMjIyMjXCIsXG4gICAgXCIjIyAjIyAjIyAjI1wiLFxuICAgIFwiIyMjICMjICMjI1wiLFxuICAgIFwiKzQ3ICMjICMjICMjICMjXCJcbiAgXVxufTtcbiIsInZhciBuZXAgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBuZXA7XG5uZXAudGl0bGUgPSBcIk5lcGFsZXNlXCI7XG5uZXAubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhcmF2XCIsXG4gICAgXCJBaml0YVwiLFxuICAgIFwiQW1pdFwiLFxuICAgIFwiQW1pdGFcIixcbiAgICBcIkFtcml0XCIsXG4gICAgXCJBcmlqaXRcIixcbiAgICBcIkFzaG1pXCIsXG4gICAgXCJBc21pdGFcIixcbiAgICBcIkJpYmVrXCIsXG4gICAgXCJCaWpheVwiLFxuICAgIFwiQmlrYXNoXCIsXG4gICAgXCJCaW5hXCIsXG4gICAgXCJCaXNoYWxcIixcbiAgICBcIkJpc2hudVwiLFxuICAgIFwiQnVkZGhhXCIsXG4gICAgXCJEZWVwaWthXCIsXG4gICAgXCJEaXBlbmRyYVwiLFxuICAgIFwiR2FnYW5cIixcbiAgICBcIkdhbmVzaFwiLFxuICAgIFwiS2hlbVwiLFxuICAgIFwiS3Jpc2huYVwiLFxuICAgIFwiTGF4bWlcIixcbiAgICBcIk1hbmlzaGFcIixcbiAgICBcIk5hYmluXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pcmFqXCIsXG4gICAgXCJOaXNjaGFsXCIsXG4gICAgXCJQYWRhbVwiLFxuICAgIFwiUG9vamFcIixcbiAgICBcIlByYWJpblwiLFxuICAgIFwiUHJha2FzaFwiLFxuICAgIFwiUHJhc2hhbnRcIixcbiAgICBcIlByZW1cIixcbiAgICBcIlB1cm5hXCIsXG4gICAgXCJSYWplbmRyYVwiLFxuICAgIFwiUmFqaW5hXCIsXG4gICAgXCJSYWp1XCIsXG4gICAgXCJSYWtlc2hcIixcbiAgICBcIlJhbmphblwiLFxuICAgIFwiUmF0bmFcIixcbiAgICBcIlNhZ2FyXCIsXG4gICAgXCJTYW5kZWVwXCIsXG4gICAgXCJTYW5qYXlcIixcbiAgICBcIlNhbnRvc2hcIixcbiAgICBcIlNhcml0YVwiLFxuICAgIFwiU2hpbHBhXCIsXG4gICAgXCJTaGlyaXNoYVwiLFxuICAgIFwiU2hyaXN0aVwiLFxuICAgIFwiU2lkZGhhcnRoYVwiLFxuICAgIFwiU3ViYXNoXCIsXG4gICAgXCJTdW1lZXRcIixcbiAgICBcIlN1bml0YVwiLFxuICAgIFwiU3VyYWpcIixcbiAgICBcIlN1c2FuXCIsXG4gICAgXCJTdXNoYW50XCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWRoaWthcmlcIixcbiAgICBcIkFyeWFsXCIsXG4gICAgXCJCYXJhbFwiLFxuICAgIFwiQmFzbmV0XCIsXG4gICAgXCJCYXN0b2xhXCIsXG4gICAgXCJCYXN5bmF0XCIsXG4gICAgXCJCaGFuZGFyaVwiLFxuICAgIFwiQmhhdHRhcmFpXCIsXG4gICAgXCJDaGV0dHJpXCIsXG4gICAgXCJEZXZrb3RhXCIsXG4gICAgXCJEaGFrYWxcIixcbiAgICBcIkRvbmdvbFwiLFxuICAgIFwiR2hhbGVcIixcbiAgICBcIkd1cnVuZ1wiLFxuICAgIFwiR3lhd2FsaVwiLFxuICAgIFwiSGFtYWxcIixcbiAgICBcIkp1bmdcIixcbiAgICBcIktDXCIsXG4gICAgXCJLYWZsZVwiLFxuICAgIFwiS2Fya2lcIixcbiAgICBcIktoYWRrYVwiLFxuICAgIFwiS29pcmFsYVwiLFxuICAgIFwiTGFtYVwiLFxuICAgIFwiTGltYnVcIixcbiAgICBcIk1hZ2FyXCIsXG4gICAgXCJNYWhhcmphblwiLFxuICAgIFwiTmlyb3VsYVwiLFxuICAgIFwiUGFuZGV5XCIsXG4gICAgXCJQcmFkaGFuXCIsXG4gICAgXCJSYW5hXCIsXG4gICAgXCJSYXV0XCIsXG4gICAgXCJTYWlcIixcbiAgICBcIlNoYWlcIixcbiAgICBcIlNoYWt5YVwiLFxuICAgIFwiU2hlcnBhXCIsXG4gICAgXCJTaHJlc3RoYVwiLFxuICAgIFwiU3ViZWRpXCIsXG4gICAgXCJUYW1hbmdcIixcbiAgICBcIlRoYXBhXCJcbiAgXVxufTtcbm5lcC5hZGRyZXNzID0ge1xuICBcInBvc3Rjb2RlXCI6IFtcbiAgICAwXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQmFnbHVuZ1wiLFxuICAgIFwiQmFua2VcIixcbiAgICBcIkJhcmFcIixcbiAgICBcIkJhcmRpeWFcIixcbiAgICBcIkJoYWt0YXB1clwiLFxuICAgIFwiQmhvanVwdVwiLFxuICAgIFwiQ2hpdHdhblwiLFxuICAgIFwiRGFpbGVraFwiLFxuICAgIFwiRGFuZ1wiLFxuICAgIFwiRGhhZGluZ1wiLFxuICAgIFwiRGhhbmt1dGFcIixcbiAgICBcIkRoYW51c2FcIixcbiAgICBcIkRvbGFraGFcIixcbiAgICBcIkRvbHBoYVwiLFxuICAgIFwiR29ya2hhXCIsXG4gICAgXCJHdWxtaVwiLFxuICAgIFwiSHVtbGFcIixcbiAgICBcIklsYW1cIixcbiAgICBcIkphamFya290XCIsXG4gICAgXCJKaGFwYVwiLFxuICAgIFwiSnVtbGFcIixcbiAgICBcIkthYmhyZXBhbGFuY2hva1wiLFxuICAgIFwiS2FsaWtvdFwiLFxuICAgIFwiS2FwaWx2YXN0dVwiLFxuICAgIFwiS2Fza2lcIixcbiAgICBcIkthdGhtYW5kdVwiLFxuICAgIFwiTGFsaXRwdXJcIixcbiAgICBcIkxhbWp1bmdcIixcbiAgICBcIk1hbmFuZ1wiLFxuICAgIFwiTW9ob3R0YXJpXCIsXG4gICAgXCJNb3JhbmdcIixcbiAgICBcIk11Z3VcIixcbiAgICBcIk11c3RhbmdcIixcbiAgICBcIk15YWdkaVwiLFxuICAgIFwiTmF3YWxwYXJhc2lcIixcbiAgICBcIk51d2Frb3RcIixcbiAgICBcIlBhbHBhXCIsXG4gICAgXCJQYXJiYXRcIixcbiAgICBcIlBhcnNhXCIsXG4gICAgXCJSYW1lY2hoYXBcIixcbiAgICBcIlJhdXN3YVwiLFxuICAgIFwiUmF1dGFoYXRcIixcbiAgICBcIlJvbHBhXCIsXG4gICAgXCJSdXBhbmRlaGlcIixcbiAgICBcIlNhbmtodXdhc2FiaGFcIixcbiAgICBcIlNhcmxhaGlcIixcbiAgICBcIlNpbmRodWxpXCIsXG4gICAgXCJTaW5kaHVwYWxjaG9rXCIsXG4gICAgXCJTdW5zYXJpXCIsXG4gICAgXCJTdXJrZXRcIixcbiAgICBcIlN5YW5namFcIixcbiAgICBcIlRhbmFodVwiLFxuICAgIFwiVGVyaGF0aHVtXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIkJoYWt0YXB1clwiLFxuICAgIFwiQmlyYXRuYWdhclwiLFxuICAgIFwiQmlyZW5kcmFuYWdhclwiLFxuICAgIFwiQmlyZ3VualwiLFxuICAgIFwiQnV0d2FsXCIsXG4gICAgXCJEYW1ha1wiLFxuICAgIFwiRGhhcmFuXCIsXG4gICAgXCJHYXVyXCIsXG4gICAgXCJHb3JraGFcIixcbiAgICBcIkhldGF1ZGFcIixcbiAgICBcIkl0YWhhcmlcIixcbiAgICBcIkphbmFrcHVyXCIsXG4gICAgXCJLYXRobWFuZHVcIixcbiAgICBcIkxhaGFuXCIsXG4gICAgXCJOZXBhbGd1bmpcIixcbiAgICBcIlBva2hhcmFcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJOZXBhbFwiXG4gIF1cbn07XG5uZXAuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJ3b3JsZGxpbmsuY29tLm5wXCIsXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwibnBcIixcbiAgICBcImNvbVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xubmVwLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlB2dCBMdGRcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJMdGRcIixcbiAgICBcIkxpbWl0ZWRcIlxuICBdXG59O1xubmVwLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjLSMjIyMjIyNcIixcbiAgICBcIis5NzctIy0jIyMjIyMjXCIsXG4gICAgXCIrOTc3IyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIG5sID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gbmw7XG5ubC50aXRsZSA9IFwiRHV0Y2hcIjtcbm5sLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiTm9vcmRcIixcbiAgICBcIk9vc3RcIixcbiAgICBcIldlc3RcIixcbiAgICBcIlp1aWRcIixcbiAgICBcIk5pZXV3XCIsXG4gICAgXCJPdWRcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcImRhbVwiLFxuICAgIFwiYmVyZ1wiLFxuICAgIFwiIGFhbiBkZSBSaWpuXCIsXG4gICAgXCIgYWFuIGRlIElKc3NlbFwiLFxuICAgIFwic3dhZXJkXCIsXG4gICAgXCJlbmRyZWNodFwiLFxuICAgIFwicmVjaHRcIixcbiAgICBcImFtYmFjaHRcIixcbiAgICBcImVubWFlc1wiLFxuICAgIFwid2lqa1wiLFxuICAgIFwic2xhbmRcIixcbiAgICBcInN0cm9vbVwiLFxuICAgIFwic2x1dXNcIixcbiAgICBcImRpamtcIixcbiAgICBcImRvcnBcIixcbiAgICBcImJ1cmdcIixcbiAgICBcInZlbGRcIixcbiAgICBcInNsdWlzXCIsXG4gICAgXCJrb29wXCIsXG4gICAgXCJsZWtcIixcbiAgICBcImhvdXRcIixcbiAgICBcImdlZXN0XCIsXG4gICAgXCJrZXJrXCIsXG4gICAgXCJ3b3VkZVwiLFxuICAgIFwiaG92ZW5cIixcbiAgICBcImhvdGVuXCIsXG4gICAgXCJpbmdlblwiLFxuICAgIFwicGxhc1wiLFxuICAgIFwibWVlclwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5sYXN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnaGFuaXN0YW5cIixcbiAgICBcIkFrcm90aXJpXCIsXG4gICAgXCJBbGJhbmnDq1wiLFxuICAgIFwiQWxnZXJpamVcIixcbiAgICBcIkFtZXJpa2FhbnNlIE1hYWdkZW5laWxhbmRlblwiLFxuICAgIFwiQW1lcmlrYWFucy1TYW1vYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmd1aWxsYVwiLFxuICAgIFwiQW50YXJjdGljYVwiLFxuICAgIFwiQW50aWd1YSBlbiBCYXJidWRhXCIsXG4gICAgXCJBcmN0aWMgT2NlYW5cIixcbiAgICBcIkFyZ2VudGluacOrXCIsXG4gICAgXCJBcm1lbmnDq1wiLFxuICAgIFwiQXJ1YmFcIixcbiAgICBcIkFzaG1vcmUgYW5kIENhcnRpZXIgSXNsYW5kc1wiLFxuICAgIFwiQXRsYW50aWMgT2NlYW5cIixcbiAgICBcIkF1c3RyYWxpw6tcIixcbiAgICBcIkF6ZXJiZWlkemphblwiLFxuICAgIFwiQmFoYW1hJ3NcIixcbiAgICBcIkJhaHJlaW5cIixcbiAgICBcIkJhbmdsYWRlc2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxhcnVzXCIsXG4gICAgXCJCZWxnacOrXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbGl2acOrXCIsXG4gICAgXCJCb3NuacOrLUhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm91dmV0IElzbGFuZFwiLFxuICAgIFwiQnJhemlsacOrXCIsXG4gICAgXCJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnlcIixcbiAgICBcIkJyaXRzZSBNYWFnZGVuZWlsYW5kZW5cIixcbiAgICBcIkJydW5laVwiLFxuICAgIFwiQnVsZ2FyaWplXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNhbWJvZGphXCIsXG4gICAgXCJDYW5hZGFcIixcbiAgICBcIkNheW1hbmVpbGFuZGVuXCIsXG4gICAgXCJDZW50cmFhbC1BZnJpa2FhbnNlIFJlcHVibGlla1wiLFxuICAgIFwiQ2hpbGlcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJDaHJpc3RtYXMgSXNsYW5kXCIsXG4gICAgXCJDbGlwcGVydG9uIElzbGFuZFwiLFxuICAgIFwiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHNcIixcbiAgICBcIkNvbG9tYmlhXCIsXG4gICAgXCJDb21vcmVuIChVbmllKVwiLFxuICAgIFwiQ29uZ28gKERlbW9jcmF0aXNjaGUgUmVwdWJsaWVrKVwiLFxuICAgIFwiQ29uZ28gKFZvbGtzcmVwdWJsaWVrKVwiLFxuICAgIFwiQ29va1wiLFxuICAgIFwiQ29yYWwgU2VhIElzbGFuZHNcIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkN1YmFcIixcbiAgICBcIkN5cHJ1c1wiLFxuICAgIFwiRGVuZW1hcmtlblwiLFxuICAgIFwiRGhla2VsaWFcIixcbiAgICBcIkRqaWJvdXRpXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiRG9taW5pY2FhbnNlIFJlcHVibGlla1wiLFxuICAgIFwiRHVpdHNsYW5kXCIsXG4gICAgXCJFY3VhZG9yXCIsXG4gICAgXCJFZ3lwdGVcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcXVhdG9yaWFhbC1HdWluZWFcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdGxhbmRcIixcbiAgICBcIkV0aGlvcGnDq1wiLFxuICAgIFwiRXVyb3BlYW4gVW5pb25cIixcbiAgICBcIkZhbGtsYW5kXCIsXG4gICAgXCJGYXJvZSBJc2xhbmRzXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaWxpcGlqbmVuXCIsXG4gICAgXCJGaW5sYW5kXCIsXG4gICAgXCJGcmFua3JpamtcIixcbiAgICBcIkZyYW5zLVBvbHluZXNpw6tcIixcbiAgICBcIkZyZW5jaCBTb3V0aGVybiBhbmQgQW50YXJjdGljIExhbmRzXCIsXG4gICAgXCJHYWJvblwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHYXphIFN0cmlwXCIsXG4gICAgXCJHZW9yZ2nDq1wiLFxuICAgIFwiR2hhbmFcIixcbiAgICBcIkdpYnJhbHRhclwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3JpZWtlbmxhbmRcIixcbiAgICBcIkdyb2VubGFuZFwiLFxuICAgIFwiR3VhbVwiLFxuICAgIFwiR3VhdGVtYWxhXCIsXG4gICAgXCJHdWVybnNleVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWUtQmlzc2F1XCIsXG4gICAgXCJHdXlhbmFcIixcbiAgICBcIkhhw690aVwiLFxuICAgIFwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXG4gICAgXCJIZWlsaWdlIFN0b2VsXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZ2FyaWplXCIsXG4gICAgXCJIb25na29uZ1wiLFxuICAgIFwiSWVybGFuZFwiLFxuICAgIFwiSUpzbGFuZFwiLFxuICAgIFwiSW5kaWFcIixcbiAgICBcIkluZGlhbiBPY2VhblwiLFxuICAgIFwiSW5kb25lc2nDq1wiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXNsZSBvZiBNYW5cIixcbiAgICBcIklzcmHDq2xcIixcbiAgICBcIkl0YWxpw6tcIixcbiAgICBcIkl2b29ya3VzdFwiLFxuICAgIFwiSmFtYWljYVwiLFxuICAgIFwiSmFuIE1heWVuXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkplcnNleVwiLFxuICAgIFwiSm9yZGFuacOrXCIsXG4gICAgXCJLYWFwdmVyZGnDq1wiLFxuICAgIFwiS2FtZXJvZW5cIixcbiAgICBcIkthemFjaHN0YW5cIixcbiAgICBcIktlbmlhXCIsXG4gICAgXCJLaXJnaXpzdGFuXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS29ld2VpdFwiLFxuICAgIFwiS3JvYXRpw6tcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxldGxhbmRcIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkxpYmVyaWFcIixcbiAgICBcIkxpYmnDq1wiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0b3V3ZW5cIixcbiAgICBcIkx1eGVtYnVyZ1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkb25pw6tcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsZGl2ZW5cIixcbiAgICBcIk1hbGVpc2nDq1wiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hcm9ra29cIixcbiAgICBcIk1hcnNoYWxsIElzbGFuZHNcIixcbiAgICBcIk1hdXJpdGFuacOrXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk1leGljb1wiLFxuICAgIFwiTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZlwiLFxuICAgIFwiTW9sZGF2acOrXCIsXG4gICAgXCJNb25hY29cIixcbiAgICBcIk1vbmdvbGnDq1wiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTW96YW1iaXF1ZVwiLFxuICAgIFwiTXlhbm1hclwiLFxuICAgIFwiTmFtaWJpw6tcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOYXZhc3NhIElzbGFuZFwiLFxuICAgIFwiTmVkZXJsYW5kXCIsXG4gICAgXCJOZWRlcmxhbmRzZSBBbnRpbGxlblwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIk5nd2FuZVwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWV1dy1DYWxlZG9uacOrXCIsXG4gICAgXCJOaWV1dy1aZWVsYW5kXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9vcmRlbGlqa2UgTWFyaWFuZW5cIixcbiAgICBcIk5vb3JkLUtvcmVhXCIsXG4gICAgXCJOb29yd2VnZW5cIixcbiAgICBcIk5vcmZvbGsgSXNsYW5kXCIsXG4gICAgXCJPZWtyYcOvbmVcIixcbiAgICBcIk9lemJla2lzdGFuXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJPb3N0ZW5yaWprXCIsXG4gICAgXCJQYWNpZmljIE9jZWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbmFtYVwiLFxuICAgIFwiUGFwb2VhLU5pZXV3LUd1aW5lYVwiLFxuICAgIFwiUGFyYWNlbCBJc2xhbmRzXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiUGl0Y2Fpcm5cIixcbiAgICBcIlBvbGVuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlFhdGFyXCIsXG4gICAgXCJSb2VtZW5pw6tcIixcbiAgICBcIlJ1c2xhbmRcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiU2FpbnQgSGVsZW5hXCIsXG4gICAgXCJTYWludCBMdWNpYVwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBlbiBkZSBHcmVuYWRpbmVzXCIsXG4gICAgXCJTYWludC1QaWVycmUgZW4gTWlxdWVsb25cIixcbiAgICBcIlNhbG9tb25cIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTw6NvIFRvbcOpIGVuIFByaW5jaXBlXCIsXG4gICAgXCJTYXVkaS1BcmFiacOrXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJ2acOrXCIsXG4gICAgXCJTZXljaGVsbGVuXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbmdhcG9yZVwiLFxuICAgIFwiU2ludC1LaXR0cyBlbiBOZXZpc1wiLFxuICAgIFwiU2xvdmVuacOrXCIsXG4gICAgXCJTbG93YWtpamVcIixcbiAgICBcIlNvZWRhblwiLFxuICAgIFwiU29tYWxpw6tcIixcbiAgICBcIlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzXCIsXG4gICAgXCJTb3V0aGVybiBPY2VhblwiLFxuICAgIFwiU3BhbmplXCIsXG4gICAgXCJTcHJhdGx5IElzbGFuZHNcIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3VyaW5hbWVcIixcbiAgICBcIlN2YWxiYXJkXCIsXG4gICAgXCJTeXJpw6tcIixcbiAgICBcIlRhZHpqaWtpc3RhblwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlRpbW9yIExlc3RlXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb2tlbGF1XCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJpbmlkYWQgZW4gVG9iYWdvXCIsXG4gICAgXCJUc2phYWRcIixcbiAgICBcIlRzamVjaGnDq1wiLFxuICAgIFwiVHVuZXNpw6tcIixcbiAgICBcIlR1cmtpamVcIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiVHVya3MtZW4gQ2FpY29zZWlsYW5kZW5cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZlcmVuaWdkIEtvbmlua3JpamtcIixcbiAgICBcIlZlcmVuaWdkZSBBcmFiaXNjaGUgRW1pcmF0ZW5cIixcbiAgICBcIlZlcmVuaWdkZSBTdGF0ZW4gdmFuIEFtZXJpa2FcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIldha2UgSXNsYW5kXCIsXG4gICAgXCJXYWxsaXMgZW4gRnV0dW5hXCIsXG4gICAgXCJXZXJlbGRcIixcbiAgICBcIldlc3QgQmFua1wiLFxuICAgIFwiV2VzdGVsaWprZSBTYWhhcmFcIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiWmltYmFid2VcIixcbiAgICBcIlp1aWQtQWZyaWthXCIsXG4gICAgXCJadWlkLUtvcmVhXCIsXG4gICAgXCJad2VkZW5cIixcbiAgICBcIlp3aXRzZXJsYW5kXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyMjYVwiLFxuICAgIFwiIyMjYlwiLFxuICAgIFwiIyMjY1wiLFxuICAgIFwiIyMjIElcIixcbiAgICBcIiMjIyBJSVwiLFxuICAgIFwiIyMjIElJSVwiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJzdHJhYXRcIixcbiAgICBcImxhYW5cIixcbiAgICBcIndlZ1wiLFxuICAgIFwicGxhbnRzb2VuXCIsXG4gICAgXCJwYXJrXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCIxIGhvb2dcIixcbiAgICBcIjIgaG9vZ1wiLFxuICAgIFwiMyBob29nXCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyA/P1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiTm9vcmQtSG9sbGFuZFwiLFxuICAgIFwiWnVpZC1Ib2xsYW5kXCIsXG4gICAgXCJVdHJlY2h0XCIsXG4gICAgXCJaZWVsYW5kXCIsXG4gICAgXCJPdmVyaWpzc2VsXCIsXG4gICAgXCJHZWxkZXJsYW5kXCIsXG4gICAgXCJEcmVudGhlXCIsXG4gICAgXCJGcmllc2xhbmRcIixcbiAgICBcIkdyb25pbmdlblwiLFxuICAgIFwiTm9vcmQtQnJhYmFudFwiLFxuICAgIFwiTGltYnVyZ1wiLFxuICAgIFwiRmxldm9sYW5kXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiTmVkZXJsYW5kXCJcbiAgXVxufTtcbm5sLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkJWXCIsXG4gICAgXCJWLk8uRi5cIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJlbiBab25lblwiXG4gIF1cbn07XG5ubC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJubFwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5ubC5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdLFxuICBcInN1cHBsZW1lbnRhbFwiOiBbXG4gICAgXCJhYmJhc1wiLFxuICAgIFwiYWJkdWNvXCIsXG4gICAgXCJhYmVvXCIsXG4gICAgXCJhYnNjaWRvXCIsXG4gICAgXCJhYnNjb25kaXR1c1wiLFxuICAgIFwiYWJzZW5zXCIsXG4gICAgXCJhYnNvcmJlb1wiLFxuICAgIFwiYWJzcXVlXCIsXG4gICAgXCJhYnN0ZXJnb1wiLFxuICAgIFwiYWJzdW1cIixcbiAgICBcImFidW5kYW5zXCIsXG4gICAgXCJhYnV0b3JcIixcbiAgICBcImFjY2Vkb1wiLFxuICAgIFwiYWNjZW5kb1wiLFxuICAgIFwiYWNjZXB0dXNcIixcbiAgICBcImFjY2lwaW9cIixcbiAgICBcImFjY29tbW9kb1wiLFxuICAgIFwiYWNjdXNhdG9yXCIsXG4gICAgXCJhY2VyXCIsXG4gICAgXCJhY2VyYml0YXNcIixcbiAgICBcImFjZXJ2dXNcIixcbiAgICBcImFjaWR1c1wiLFxuICAgIFwiYWNpZXNcIixcbiAgICBcImFjcXVpcm9cIixcbiAgICBcImFjc2lcIixcbiAgICBcImFkYW1vXCIsXG4gICAgXCJhZGF1Z2VvXCIsXG4gICAgXCJhZGRvXCIsXG4gICAgXCJhZGR1Y29cIixcbiAgICBcImFkZW1wdGlvXCIsXG4gICAgXCJhZGVvXCIsXG4gICAgXCJhZGVwdGlvXCIsXG4gICAgXCJhZGZlY3R1c1wiLFxuICAgIFwiYWRmZXJvXCIsXG4gICAgXCJhZGZpY2lvXCIsXG4gICAgXCJhZGZsaWN0b1wiLFxuICAgIFwiYWRoYWVyb1wiLFxuICAgIFwiYWRodWNcIixcbiAgICBcImFkaWNpb1wiLFxuICAgIFwiYWRpbXBsZW9cIixcbiAgICBcImFkaW52ZW50aXRpYXNcIixcbiAgICBcImFkaXBpc2NvclwiLFxuICAgIFwiYWRpdXZvXCIsXG4gICAgXCJhZG1pbmlzdHJhdGlvXCIsXG4gICAgXCJhZG1pcmF0aW9cIixcbiAgICBcImFkbWl0dG9cIixcbiAgICBcImFkbW9uZW9cIixcbiAgICBcImFkbW92ZW9cIixcbiAgICBcImFkbnVvXCIsXG4gICAgXCJhZG9wdG9cIixcbiAgICBcImFkc2lkdWVcIixcbiAgICBcImFkc3RyaW5nb1wiLFxuICAgIFwiYWRzdWVzY29cIixcbiAgICBcImFkc3VtXCIsXG4gICAgXCJhZHVsYXRpb1wiLFxuICAgIFwiYWR1bGVzY2Vuc1wiLFxuICAgIFwiYWR1bHR1c1wiLFxuICAgIFwiYWR1cm9cIixcbiAgICBcImFkdmVuaW9cIixcbiAgICBcImFkdmVyc3VzXCIsXG4gICAgXCJhZHZvY29cIixcbiAgICBcImFlZGlmaWNpdW1cIixcbiAgICBcImFlZ2VyXCIsXG4gICAgXCJhZWdyZVwiLFxuICAgIFwiYWVncm90YXRpb1wiLFxuICAgIFwiYWVncnVzXCIsXG4gICAgXCJhZW5ldXNcIixcbiAgICBcImFlcXVpdGFzXCIsXG4gICAgXCJhZXF1dXNcIixcbiAgICBcImFlclwiLFxuICAgIFwiYWVzdGFzXCIsXG4gICAgXCJhZXN0aXZ1c1wiLFxuICAgIFwiYWVzdHVzXCIsXG4gICAgXCJhZXRhc1wiLFxuICAgIFwiYWV0ZXJudXNcIixcbiAgICBcImFnZXJcIixcbiAgICBcImFnZ2Vyb1wiLFxuICAgIFwiYWdncmVkaW9yXCIsXG4gICAgXCJhZ25pdGlvXCIsXG4gICAgXCJhZ25vc2NvXCIsXG4gICAgXCJhZ29cIixcbiAgICBcImFpdFwiLFxuICAgIFwiYWl1bnRcIixcbiAgICBcImFsaWVudXNcIixcbiAgICBcImFsaWlcIixcbiAgICBcImFsaW9xdWlcIixcbiAgICBcImFsaXF1YVwiLFxuICAgIFwiYWxpdXNcIixcbiAgICBcImFsbGF0dXNcIixcbiAgICBcImFsb1wiLFxuICAgIFwiYWx0ZXJcIixcbiAgICBcImFsdHVzXCIsXG4gICAgXCJhbHZldXNcIixcbiAgICBcImFtYXJpdHVkb1wiLFxuICAgIFwiYW1iaXR1c1wiLFxuICAgIFwiYW1idWxvXCIsXG4gICAgXCJhbWljaXRpYVwiLFxuICAgIFwiYW1pY3VsdW1cIixcbiAgICBcImFtaXNzaW9cIixcbiAgICBcImFtaXRhXCIsXG4gICAgXCJhbWl0dG9cIixcbiAgICBcImFtb1wiLFxuICAgIFwiYW1vclwiLFxuICAgIFwiYW1vdmVvXCIsXG4gICAgXCJhbXBsZXh1c1wiLFxuICAgIFwiYW1wbGl0dWRvXCIsXG4gICAgXCJhbXBsdXNcIixcbiAgICBcImFuY2lsbGFcIixcbiAgICBcImFuZ2VsdXNcIixcbiAgICBcImFuZ3VsdXNcIixcbiAgICBcImFuZ3VzdHVzXCIsXG4gICAgXCJhbmltYWR2ZXJ0b1wiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImFuaW11c1wiLFxuICAgIFwiYW5udXNcIixcbiAgICBcImFuc2VyXCIsXG4gICAgXCJhbnRlXCIsXG4gICAgXCJhbnRlYVwiLFxuICAgIFwiYW50ZXBvbm9cIixcbiAgICBcImFudGlxdXVzXCIsXG4gICAgXCJhcGVyaW9cIixcbiAgICBcImFwZXJ0ZVwiLFxuICAgIFwiYXBvc3RvbHVzXCIsXG4gICAgXCJhcHBhcmF0dXNcIixcbiAgICBcImFwcGVsbG9cIixcbiAgICBcImFwcG9ub1wiLFxuICAgIFwiYXBwb3NpdHVzXCIsXG4gICAgXCJhcHByb2JvXCIsXG4gICAgXCJhcHRvXCIsXG4gICAgXCJhcHR1c1wiLFxuICAgIFwiYXB1ZFwiLFxuICAgIFwiYXF1YVwiLFxuICAgIFwiYXJhXCIsXG4gICAgXCJhcmFuZWFcIixcbiAgICBcImFyYml0cm9cIixcbiAgICBcImFyYm9yXCIsXG4gICAgXCJhcmJ1c3R1bVwiLFxuICAgIFwiYXJjYVwiLFxuICAgIFwiYXJjZW9cIixcbiAgICBcImFyY2Vzc29cIixcbiAgICBcImFyY3VzXCIsXG4gICAgXCJhcmdlbnR1bVwiLFxuICAgIFwiYXJndW1lbnR1bVwiLFxuICAgIFwiYXJndW9cIixcbiAgICBcImFybWFcIixcbiAgICBcImFybWFyaXVtXCIsXG4gICAgXCJhcm1vXCIsXG4gICAgXCJhcm9cIixcbiAgICBcImFyc1wiLFxuICAgIFwiYXJ0aWN1bHVzXCIsXG4gICAgXCJhcnRpZmljaW9zZVwiLFxuICAgIFwiYXJ0b1wiLFxuICAgIFwiYXJ4XCIsXG4gICAgXCJhc2Npc2NvXCIsXG4gICAgXCJhc2NpdFwiLFxuICAgIFwiYXNwZXJcIixcbiAgICBcImFzcGljaW9cIixcbiAgICBcImFzcG9ydG9cIixcbiAgICBcImFzc2VudGF0b3JcIixcbiAgICBcImFzdHJ1bVwiLFxuICAgIFwiYXRhdnVzXCIsXG4gICAgXCJhdGVyXCIsXG4gICAgXCJhdHF1aVwiLFxuICAgIFwiYXRyb2NpdGFzXCIsXG4gICAgXCJhdHJveFwiLFxuICAgIFwiYXR0ZXJvXCIsXG4gICAgXCJhdHRvbGxvXCIsXG4gICAgXCJhdHRvbmJpdHVzXCIsXG4gICAgXCJhdWN0b3JcIixcbiAgICBcImF1Y3R1c1wiLFxuICAgIFwiYXVkYWNpYVwiLFxuICAgIFwiYXVkYXhcIixcbiAgICBcImF1ZGVudGlhXCIsXG4gICAgXCJhdWRlb1wiLFxuICAgIFwiYXVkaW9cIixcbiAgICBcImF1ZGl0b3JcIixcbiAgICBcImF1ZmVyb1wiLFxuICAgIFwiYXVyZXVzXCIsXG4gICAgXCJhdXJpc1wiLFxuICAgIFwiYXVydW1cIixcbiAgICBcImF1dFwiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcImF1dHVzXCIsXG4gICAgXCJhdXhpbGl1bVwiLFxuICAgIFwiYXZhcml0aWFcIixcbiAgICBcImF2YXJ1c1wiLFxuICAgIFwiYXZlaG9cIixcbiAgICBcImF2ZXJ0b1wiLFxuICAgIFwiYXZvY29cIixcbiAgICBcImJhaXVsdXNcIixcbiAgICBcImJhbGJ1c1wiLFxuICAgIFwiYmFyYmFcIixcbiAgICBcImJhcmR1c1wiLFxuICAgIFwiYmFzaXVtXCIsXG4gICAgXCJiZWF0dXNcIixcbiAgICBcImJlbGxpY3VzXCIsXG4gICAgXCJiZWxsdW1cIixcbiAgICBcImJlbmVcIixcbiAgICBcImJlbmVmaWNpdW1cIixcbiAgICBcImJlbmV2b2xlbnRpYVwiLFxuICAgIFwiYmVuaWduZVwiLFxuICAgIFwiYmVzdGlhXCIsXG4gICAgXCJiaWJvXCIsXG4gICAgXCJiaXNcIixcbiAgICBcImJsYW5kaW9yXCIsXG4gICAgXCJib251c1wiLFxuICAgIFwiYm9zXCIsXG4gICAgXCJicmV2aXNcIixcbiAgICBcImNhZG9cIixcbiAgICBcImNhZWN1c1wiLFxuICAgIFwiY2FlbGVzdGlzXCIsXG4gICAgXCJjYWVsdW1cIixcbiAgICBcImNhbGFtaXRhc1wiLFxuICAgIFwiY2FsY2FyXCIsXG4gICAgXCJjYWxjb1wiLFxuICAgIFwiY2FsY3VsdXNcIixcbiAgICBcImNhbGxpZGVcIixcbiAgICBcImNhbXBhbmFcIixcbiAgICBcImNhbmRpZHVzXCIsXG4gICAgXCJjYW5pc1wiLFxuICAgIFwiY2Fub25pY3VzXCIsXG4gICAgXCJjYW50b1wiLFxuICAgIFwiY2FwaWxsdXNcIixcbiAgICBcImNhcGlvXCIsXG4gICAgXCJjYXBpdHVsdXNcIixcbiAgICBcImNhcHRvXCIsXG4gICAgXCJjYXB1dFwiLFxuICAgIFwiY2FyYm9cIixcbiAgICBcImNhcmNlclwiLFxuICAgIFwiY2FyZW9cIixcbiAgICBcImNhcmllc1wiLFxuICAgIFwiY2FyaW9zdXNcIixcbiAgICBcImNhcml0YXNcIixcbiAgICBcImNhcm1lblwiLFxuICAgIFwiY2FycG9cIixcbiAgICBcImNhcnVzXCIsXG4gICAgXCJjYXNzb1wiLFxuICAgIFwiY2FzdGVcIixcbiAgICBcImNhc3VzXCIsXG4gICAgXCJjYXRlbmFcIixcbiAgICBcImNhdGVydmFcIixcbiAgICBcImNhdHR1c1wiLFxuICAgIFwiY2F1ZGFcIixcbiAgICBcImNhdXNhXCIsXG4gICAgXCJjYXV0ZVwiLFxuICAgIFwiY2F2ZW9cIixcbiAgICBcImNhdnVzXCIsXG4gICAgXCJjZWRvXCIsXG4gICAgXCJjZWxlYnJlclwiLFxuICAgIFwiY2VsZXJcIixcbiAgICBcImNlbG9cIixcbiAgICBcImNlbmFcIixcbiAgICBcImNlbmFjdWx1bVwiLFxuICAgIFwiY2Vub1wiLFxuICAgIFwiY2Vuc3VyYVwiLFxuICAgIFwiY2VudHVtXCIsXG4gICAgXCJjZXJub1wiLFxuICAgIFwiY2VybnV1c1wiLFxuICAgIFwiY2VydGVcIixcbiAgICBcImNlcnRvXCIsXG4gICAgXCJjZXJ0dXNcIixcbiAgICBcImNlcnZ1c1wiLFxuICAgIFwiY2V0ZXJhXCIsXG4gICAgXCJjaGFyaXNtYVwiLFxuICAgIFwiY2hpcm9ncmFwaHVtXCIsXG4gICAgXCJjaWJvXCIsXG4gICAgXCJjaWJ1c1wiLFxuICAgIFwiY2ljdXRhXCIsXG4gICAgXCJjaWxpY2l1bVwiLFxuICAgIFwiY2ltZW50YXJpdXNcIixcbiAgICBcImNpbWluYXRpb1wiLFxuICAgIFwiY2luaXNcIixcbiAgICBcImNpcmN1bXZlbmlvXCIsXG4gICAgXCJjaXRvXCIsXG4gICAgXCJjaXZpc1wiLFxuICAgIFwiY2l2aXRhc1wiLFxuICAgIFwiY2xhbVwiLFxuICAgIFwiY2xhbW9cIixcbiAgICBcImNsYXJvXCIsXG4gICAgXCJjbGFydXNcIixcbiAgICBcImNsYXVkZW9cIixcbiAgICBcImNsYXVzdHJ1bVwiLFxuICAgIFwiY2xlbWVudGlhXCIsXG4gICAgXCJjbGliYW51c1wiLFxuICAgIFwiY29hZHVuYXRpb1wiLFxuICAgIFwiY29hZWdyZXNjb1wiLFxuICAgIFwiY29lcGlcIixcbiAgICBcImNvZXJjZW9cIixcbiAgICBcImNvZ2l0b1wiLFxuICAgIFwiY29nbmF0dXNcIixcbiAgICBcImNvZ25vbWVuXCIsXG4gICAgXCJjb2dvXCIsXG4gICAgXCJjb2hhZXJvXCIsXG4gICAgXCJjb2hpYmVvXCIsXG4gICAgXCJjb2hvcnNcIixcbiAgICBcImNvbGxpZ29cIixcbiAgICBcImNvbGxvY29cIixcbiAgICBcImNvbGx1bVwiLFxuICAgIFwiY29sb1wiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbWFcIixcbiAgICBcImNvbWJpYm9cIixcbiAgICBcImNvbWJ1cm9cIixcbiAgICBcImNvbWVkb1wiLFxuICAgIFwiY29tZXNcIixcbiAgICBcImNvbWV0ZXNcIixcbiAgICBcImNvbWlzXCIsXG4gICAgXCJjb21pdGF0dXNcIixcbiAgICBcImNvbW1lbW9yb1wiLFxuICAgIFwiY29tbWlub3JcIixcbiAgICBcImNvbW1vZG9cIixcbiAgICBcImNvbW11bmlzXCIsXG4gICAgXCJjb21wYXJvXCIsXG4gICAgXCJjb21wZWxsb1wiLFxuICAgIFwiY29tcGxlY3R1c1wiLFxuICAgIFwiY29tcG9ub1wiLFxuICAgIFwiY29tcHJlaGVuZG9cIixcbiAgICBcImNvbXB0dXNcIixcbiAgICBcImNvbmF0dXNcIixcbiAgICBcImNvbmNlZG9cIixcbiAgICBcImNvbmNpZG9cIixcbiAgICBcImNvbmN1bGNvXCIsXG4gICAgXCJjb25kaWNvXCIsXG4gICAgXCJjb25kdWNvXCIsXG4gICAgXCJjb25mZXJvXCIsXG4gICAgXCJjb25maWRvXCIsXG4gICAgXCJjb25mb3J0b1wiLFxuICAgIFwiY29uZnVnb1wiLFxuICAgIFwiY29uZ3JlZ2F0aW9cIixcbiAgICBcImNvbmljaW9cIixcbiAgICBcImNvbmllY3RvXCIsXG4gICAgXCJjb25pdG9yXCIsXG4gICAgXCJjb25pdXJhdGlvXCIsXG4gICAgXCJjb25vclwiLFxuICAgIFwiY29ucXVlcm9yXCIsXG4gICAgXCJjb25zY2VuZG9cIixcbiAgICBcImNvbnNlcnZvXCIsXG4gICAgXCJjb25zaWRlcm9cIixcbiAgICBcImNvbnNwZXJnb1wiLFxuICAgIFwiY29uc3RhbnNcIixcbiAgICBcImNvbnN1YXNvclwiLFxuICAgIFwiY29udGFiZXNjb1wiLFxuICAgIFwiY29udGVnb1wiLFxuICAgIFwiY29udGlnb1wiLFxuICAgIFwiY29udHJhXCIsXG4gICAgXCJjb250dXJib1wiLFxuICAgIFwiY29udmVudHVzXCIsXG4gICAgXCJjb252b2NvXCIsXG4gICAgXCJjb3BpYVwiLFxuICAgIFwiY29waW9zZVwiLFxuICAgIFwiY29ybnVcIixcbiAgICBcImNvcm9uYVwiLFxuICAgIFwiY29ycHVzXCIsXG4gICAgXCJjb3JyZXB0aXVzXCIsXG4gICAgXCJjb3JyaWdvXCIsXG4gICAgXCJjb3Jyb2Jvcm9cIixcbiAgICBcImNvcnJ1bXBvXCIsXG4gICAgXCJjb3J1c2N1c1wiLFxuICAgIFwiY290aWRpZVwiLFxuICAgIFwiY3JhcHVsYVwiLFxuICAgIFwiY3Jhc1wiLFxuICAgIFwiY3Jhc3RpbnVzXCIsXG4gICAgXCJjcmVhdG9yXCIsXG4gICAgXCJjcmViZXJcIixcbiAgICBcImNyZWJyb1wiLFxuICAgIFwiY3JlZG9cIixcbiAgICBcImNyZW9cIixcbiAgICBcImNyZXB0aW9cIixcbiAgICBcImNyZXB1c2N1bHVtXCIsXG4gICAgXCJjcmVzY29cIixcbiAgICBcImNyZXRhXCIsXG4gICAgXCJjcmlicm9cIixcbiAgICBcImNyaW5pc1wiLFxuICAgIFwiY3J1Y2lhbWVudHVtXCIsXG4gICAgXCJjcnVkZWxpc1wiLFxuICAgIFwiY3J1ZW50dXNcIixcbiAgICBcImNydXJcIixcbiAgICBcImNydXN0dWx1bVwiLFxuICAgIFwiY3J1eFwiLFxuICAgIFwiY3ViaWN1bGFyaXNcIixcbiAgICBcImN1Yml0dW1cIixcbiAgICBcImN1Ym9cIixcbiAgICBcImN1aVwiLFxuICAgIFwiY3VpdXNcIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJjdWxwb1wiLFxuICAgIFwiY3VsdGVsbHVzXCIsXG4gICAgXCJjdWx0dXJhXCIsXG4gICAgXCJjdW1cIixcbiAgICBcImN1bmFidWxhXCIsXG4gICAgXCJjdW5hZVwiLFxuICAgIFwiY3VuY3RhdGlvXCIsXG4gICAgXCJjdXBpZGl0YXNcIixcbiAgICBcImN1cGlvXCIsXG4gICAgXCJjdXBwZWRpYVwiLFxuICAgIFwiY3VwcmVzc3VzXCIsXG4gICAgXCJjdXJcIixcbiAgICBcImN1cmFcIixcbiAgICBcImN1cmF0aW9cIixcbiAgICBcImN1cmlhXCIsXG4gICAgXCJjdXJpb3NpdGFzXCIsXG4gICAgXCJjdXJpc1wiLFxuICAgIFwiY3Vyb1wiLFxuICAgIFwiY3VycmljdWx1bVwiLFxuICAgIFwiY3VycnVzXCIsXG4gICAgXCJjdXJzaW1cIixcbiAgICBcImN1cnNvXCIsXG4gICAgXCJjdXJzdXNcIixcbiAgICBcImN1cnRvXCIsXG4gICAgXCJjdXJ0dXNcIixcbiAgICBcImN1cnZvXCIsXG4gICAgXCJjdXJ2dXNcIixcbiAgICBcImN1c3RvZGlhXCIsXG4gICAgXCJkYW1uYXRpb1wiLFxuICAgIFwiZGFtbm9cIixcbiAgICBcImRhcGlmZXJcIixcbiAgICBcImRlYmVvXCIsXG4gICAgXCJkZWJpbGl0b1wiLFxuICAgIFwiZGVjZW5zXCIsXG4gICAgXCJkZWNlcm5vXCIsXG4gICAgXCJkZWNldFwiLFxuICAgIFwiZGVjaW11c1wiLFxuICAgIFwiZGVjaXBpb1wiLFxuICAgIFwiZGVjb3JcIixcbiAgICBcImRlY3JldHVtXCIsXG4gICAgXCJkZWN1bWJvXCIsXG4gICAgXCJkZWRlY29yXCIsXG4gICAgXCJkZWRpY29cIixcbiAgICBcImRlZHVjb1wiLFxuICAgIFwiZGVmYWVjb1wiLFxuICAgIFwiZGVmZW5kb1wiLFxuICAgIFwiZGVmZXJvXCIsXG4gICAgXCJkZWZlc3N1c1wiLFxuICAgIFwiZGVmZXRpc2NvclwiLFxuICAgIFwiZGVmaWNpb1wiLFxuICAgIFwiZGVmaWdvXCIsXG4gICAgXCJkZWZsZW9cIixcbiAgICBcImRlZmx1b1wiLFxuICAgIFwiZGVmdW5nb1wiLFxuICAgIFwiZGVnZW5lcm9cIixcbiAgICBcImRlZ2Vyb1wiLFxuICAgIFwiZGVndXN0b1wiLFxuICAgIFwiZGVpbmRlXCIsXG4gICAgXCJkZWxlY3RhdGlvXCIsXG4gICAgXCJkZWxlZ29cIixcbiAgICBcImRlbGVvXCIsXG4gICAgXCJkZWxpYmVyb1wiLFxuICAgIFwiZGVsaWNhdGVcIixcbiAgICBcImRlbGlucXVvXCIsXG4gICAgXCJkZWx1ZG9cIixcbiAgICBcImRlbWVuc1wiLFxuICAgIFwiZGVtZXJnb1wiLFxuICAgIFwiZGVtaXR0b1wiLFxuICAgIFwiZGVtb1wiLFxuICAgIFwiZGVtb25zdHJvXCIsXG4gICAgXCJkZW1vcm9yXCIsXG4gICAgXCJkZW11bGNlb1wiLFxuICAgIFwiZGVtdW1cIixcbiAgICBcImRlbmVnb1wiLFxuICAgIFwiZGVuaXF1ZVwiLFxuICAgIFwiZGVuc1wiLFxuICAgIFwiZGVudW5jaW9cIixcbiAgICBcImRlbnVvXCIsXG4gICAgXCJkZW9yc3VtXCIsXG4gICAgXCJkZXBlcmVvXCIsXG4gICAgXCJkZXBvbm9cIixcbiAgICBcImRlcG9wdWxvXCIsXG4gICAgXCJkZXBvcnRvXCIsXG4gICAgXCJkZXByYWVkb3JcIixcbiAgICBcImRlcHJlY2F0b3JcIixcbiAgICBcImRlcHJpbW9cIixcbiAgICBcImRlcHJvbW9cIixcbiAgICBcImRlcHVsc29cIixcbiAgICBcImRlcHV0b1wiLFxuICAgIFwiZGVyZWxpbnF1b1wiLFxuICAgIFwiZGVyaWRlb1wiLFxuICAgIFwiZGVyaXBpb1wiLFxuICAgIFwiZGVzaWRlcm9cIixcbiAgICBcImRlc2lub1wiLFxuICAgIFwiZGVzaXBpb1wiLFxuICAgIFwiZGVzb2xvXCIsXG4gICAgXCJkZXNwYXJhdHVzXCIsXG4gICAgXCJkZXNwZWN0b1wiLFxuICAgIFwiZGVzcGlybWF0aW9cIixcbiAgICBcImluZml0XCIsXG4gICAgXCJpbmZsYW1tYXRpb1wiLFxuICAgIFwicGFlbnNcIixcbiAgICBcInBhdGlvclwiLFxuICAgIFwicGF0cmlhXCIsXG4gICAgXCJwYXRyb2Npbm9yXCIsXG4gICAgXCJwYXRydXVzXCIsXG4gICAgXCJwYXVjaVwiLFxuICAgIFwicGF1bGF0aW1cIixcbiAgICBcInBhdXBlclwiLFxuICAgIFwicGF4XCIsXG4gICAgXCJwZWNjYXR1c1wiLFxuICAgIFwicGVjY29cIixcbiAgICBcInBlY3RvXCIsXG4gICAgXCJwZWN0dXNcIixcbiAgICBcInBlY3VuaWFcIixcbiAgICBcInBlY3VzXCIsXG4gICAgXCJwZWlvclwiLFxuICAgIFwicGVsXCIsXG4gICAgXCJvY2VyXCIsXG4gICAgXCJzb2NpdXNcIixcbiAgICBcInNvZGFsaXRhc1wiLFxuICAgIFwic29sXCIsXG4gICAgXCJzb2xlb1wiLFxuICAgIFwic29saW9cIixcbiAgICBcInNvbGl0dWRvXCIsXG4gICAgXCJzb2xpdW1cIixcbiAgICBcInNvbGxlcnNcIixcbiAgICBcInNvbGxpY2l0b1wiLFxuICAgIFwic29sdW1cIixcbiAgICBcInNvbHVzXCIsXG4gICAgXCJzb2x1dGlvXCIsXG4gICAgXCJzb2x2b1wiLFxuICAgIFwic29tbmljdWxvc3VzXCIsXG4gICAgXCJzb21udXNcIixcbiAgICBcInNvbml0dXNcIixcbiAgICBcInNvbm9cIixcbiAgICBcInNvcGhpc21hdGFcIixcbiAgICBcInNvcG9yXCIsXG4gICAgXCJzb3JkZW9cIixcbiAgICBcInNvcnRpdHVzXCIsXG4gICAgXCJzcGFyZ29cIixcbiAgICBcInNwZWNpb3N1c1wiLFxuICAgIFwic3BlY3RhY3VsdW1cIixcbiAgICBcInNwZWN1bHVtXCIsXG4gICAgXCJzcGVybm9cIixcbiAgICBcInNwZXJvXCIsXG4gICAgXCJzcGVzXCIsXG4gICAgXCJzcGljdWx1bVwiLFxuICAgIFwic3Bpcml0dXNcIixcbiAgICBcInNwb2xpYXRpb1wiLFxuICAgIFwic3BvbnRlXCIsXG4gICAgXCJzdGFiaWxpc1wiLFxuICAgIFwic3RhdGltXCIsXG4gICAgXCJzdGF0dWFcIixcbiAgICBcInN0ZWxsYVwiLFxuICAgIFwic3RpbGxpY2lkaXVtXCIsXG4gICAgXCJzdGlwZXNcIixcbiAgICBcInN0aXBzXCIsXG4gICAgXCJzdG9cIixcbiAgICBcInN0cmVudXVzXCIsXG4gICAgXCJzdHJ1ZXNcIixcbiAgICBcInN0dWRpb1wiLFxuICAgIFwic3R1bHR1c1wiLFxuICAgIFwic3VhZGVvXCIsXG4gICAgXCJzdWFzb3JpYVwiLFxuICAgIFwic3ViXCIsXG4gICAgXCJzdWJpdG9cIixcbiAgICBcInN1Yml1bmdvXCIsXG4gICAgXCJzdWJsaW1lXCIsXG4gICAgXCJzdWJuZWN0b1wiLFxuICAgIFwic3Vic2Vjb1wiLFxuICAgIFwic3Vic3RhbnRpYVwiLFxuICAgIFwic3VidmVuaW9cIixcbiAgICBcInN1Y2NlZG9cIixcbiAgICBcInN1Y2N1cnJvXCIsXG4gICAgXCJzdWZmaWNpb1wiLFxuICAgIFwic3VmZm9jb1wiLFxuICAgIFwic3VmZnJhZ2l1bVwiLFxuICAgIFwic3VnZ2Vyb1wiLFxuICAgIFwic3VpXCIsXG4gICAgXCJzdWx1bVwiLFxuICAgIFwic3VtXCIsXG4gICAgXCJzdW1tYVwiLFxuICAgIFwic3VtbWlzc2VcIixcbiAgICBcInN1bW1vcGVyZVwiLFxuICAgIFwic3Vtb1wiLFxuICAgIFwic3VtcHR1c1wiLFxuICAgIFwic3VwZWxsZXhcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzdXBwZWxsZXhcIixcbiAgICBcInN1cHBsYW50b1wiLFxuICAgIFwic3VwcG9ub1wiLFxuICAgIFwic3VwcmFcIixcbiAgICBcInN1cmN1bHVzXCIsXG4gICAgXCJzdXJnb1wiLFxuICAgIFwic3Vyc3VtXCIsXG4gICAgXCJzdXNjaXBpb1wiLFxuICAgIFwic3VzcGVuZG9cIixcbiAgICBcInN1c3RpbmVvXCIsXG4gICAgXCJzdXVzXCIsXG4gICAgXCJzeW5hZ29nYVwiLFxuICAgIFwidGFiZWxsYVwiLFxuICAgIFwidGFiZXJudXNcIixcbiAgICBcInRhYmVzY29cIixcbiAgICBcInRhYmdvXCIsXG4gICAgXCJ0YWJ1bGFcIixcbiAgICBcInRhY2VvXCIsXG4gICAgXCJ0YWN0dXNcIixcbiAgICBcInRhZWRpdW1cIixcbiAgICBcInRhbGlvXCIsXG4gICAgXCJ0YWxpc1wiLFxuICAgIFwidGFsdXNcIixcbiAgICBcInRhbVwiLFxuICAgIFwidGFtZGl1XCIsXG4gICAgXCJ0YW1lblwiLFxuICAgIFwidGFtZXRzaVwiLFxuICAgIFwidGFtaXNpdW1cIixcbiAgICBcInRhbXF1YW1cIixcbiAgICBcInRhbmRlbVwiLFxuICAgIFwidGFudGlsbHVzXCIsXG4gICAgXCJ0YW50dW1cIixcbiAgICBcInRhcmR1c1wiLFxuICAgIFwidGVnb1wiLFxuICAgIFwidGVtZXJpdGFzXCIsXG4gICAgXCJ0ZW1wZXJhbnRpYVwiLFxuICAgIFwidGVtcGx1bVwiLFxuICAgIFwidGVtcHRhdGlvXCIsXG4gICAgXCJ0ZW1wdXNcIixcbiAgICBcInRlbmF4XCIsXG4gICAgXCJ0ZW5kb1wiLFxuICAgIFwidGVuZW9cIixcbiAgICBcInRlbmVyXCIsXG4gICAgXCJ0ZW51aXNcIixcbiAgICBcInRlbnVzXCIsXG4gICAgXCJ0ZXBlc2NvXCIsXG4gICAgXCJ0ZXBpZHVzXCIsXG4gICAgXCJ0ZXJcIixcbiAgICBcInRlcmVicm9cIixcbiAgICBcInRlcmVzXCIsXG4gICAgXCJ0ZXJnYVwiLFxuICAgIFwidGVyZ2VvXCIsXG4gICAgXCJ0ZXJnaXZlcnNhdGlvXCIsXG4gICAgXCJ0ZXJnb1wiLFxuICAgIFwidGVyZ3VtXCIsXG4gICAgXCJ0ZXJtZXNcIixcbiAgICBcInRlcm1pbmF0aW9cIixcbiAgICBcInRlcm9cIixcbiAgICBcInRlcnJhXCIsXG4gICAgXCJ0ZXJyZW9cIixcbiAgICBcInRlcnJpdG9cIixcbiAgICBcInRlcnJvclwiLFxuICAgIFwidGVyc3VzXCIsXG4gICAgXCJ0ZXJ0aXVzXCIsXG4gICAgXCJ0ZXN0aW1vbml1bVwiLFxuICAgIFwidGV4b1wiLFxuICAgIFwidGV4dGlsaXNcIixcbiAgICBcInRleHRvclwiLFxuICAgIFwidGV4dHVzXCIsXG4gICAgXCJ0aGFsYXNzaW51c1wiLFxuICAgIFwidGhlYXRydW1cIixcbiAgICBcInRoZWNhXCIsXG4gICAgXCJ0aGVtYVwiLFxuICAgIFwidGhlb2xvZ3VzXCIsXG4gICAgXCJ0aGVybWFlXCIsXG4gICAgXCJ0aGVzYXVydXNcIixcbiAgICBcInRoZXNpc1wiLFxuICAgIFwidGhvcmF4XCIsXG4gICAgXCJ0aHltYnJhXCIsXG4gICAgXCJ0aHltdW1cIixcbiAgICBcInRpYmlcIixcbiAgICBcInRpbWlkdXNcIixcbiAgICBcInRpbW9yXCIsXG4gICAgXCJ0aXR1bHVzXCIsXG4gICAgXCJ0b2xlcm9cIixcbiAgICBcInRvbGxvXCIsXG4gICAgXCJ0b25kZW9cIixcbiAgICBcInRvbnNvclwiLFxuICAgIFwidG9ycXVlb1wiLFxuICAgIFwidG9ycmVuc1wiLFxuICAgIFwidG90XCIsXG4gICAgXCJ0b3RpZGVtXCIsXG4gICAgXCJ0b3RpZXNcIixcbiAgICBcInRvdHVzXCIsXG4gICAgXCJ0cmFjdG9cIixcbiAgICBcInRyYWRvXCIsXG4gICAgXCJ0cmFob1wiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyZWRlY2ltXCIsXG4gICAgXCJ0cmVtb1wiLFxuICAgIFwidHJlcGlkZVwiLFxuICAgIFwidHJlc1wiLFxuICAgIFwidHJpYnVvXCIsXG4gICAgXCJ0cmljZXNpbXVzXCIsXG4gICAgXCJ0cmlkdWFuYVwiLFxuICAgIFwidHJpZ2ludGFcIixcbiAgICBcInRyaXB1ZGlvXCIsXG4gICAgXCJ0cmlzdGlzXCIsXG4gICAgXCJ0cml1bXBodXNcIixcbiAgICBcInRydWNpZG9cIixcbiAgICBcInRydWN1bGVudGVyXCIsXG4gICAgXCJ0dWJpbmV1c1wiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0dW1cIixcbiAgICBcInR1bXVsdHVzXCIsXG4gICAgXCJ0dW5jXCIsXG4gICAgXCJ0dXJiYVwiLFxuICAgIFwidHVyYm9cIixcbiAgICBcInR1cnBlXCIsXG4gICAgXCJ0dXJwaXNcIixcbiAgICBcInR1dGFtZW5cIixcbiAgICBcInR1dGlzXCIsXG4gICAgXCJ0eXJhbm51c1wiLFxuICAgIFwidWJlcnJpbWVcIixcbiAgICBcInViaVwiLFxuICAgIFwidWxjaXNjb3JcIixcbiAgICBcInVsbHVzXCIsXG4gICAgXCJ1bHRlcml1c1wiLFxuICAgIFwidWx0aW9cIixcbiAgICBcInVsdHJhXCIsXG4gICAgXCJ1bWJyYVwiLFxuICAgIFwidW1lcnVzXCIsXG4gICAgXCJ1bXF1YW1cIixcbiAgICBcInVuYVwiLFxuICAgIFwidW5kZVwiLFxuICAgIFwidW5kaXF1ZVwiLFxuICAgIFwidW5pdmVyc2VcIixcbiAgICBcInVudXNcIixcbiAgICBcInVyYmFudXNcIixcbiAgICBcInVyYnNcIixcbiAgICBcInVyZWRvXCIsXG4gICAgXCJ1c2l0YXNcIixcbiAgICBcInVzcXVlXCIsXG4gICAgXCJ1c3RpbG9cIixcbiAgICBcInVzdHVsb1wiLFxuICAgIFwidXN1c1wiLFxuICAgIFwidXRlclwiLFxuICAgIFwidXRlcnF1ZVwiLFxuICAgIFwidXRpbGlzXCIsXG4gICAgXCJ1dGlxdWVcIixcbiAgICBcInV0b3JcIixcbiAgICBcInV0cG90ZVwiLFxuICAgIFwidXRyaW1xdWVcIixcbiAgICBcInV0cm9xdWVcIixcbiAgICBcInV0cnVtXCIsXG4gICAgXCJ1eG9yXCIsXG4gICAgXCJ2YWNvXCIsXG4gICAgXCJ2YWN1dXNcIixcbiAgICBcInZhZG9cIixcbiAgICBcInZhZVwiLFxuICAgIFwidmFsZGVcIixcbiAgICBcInZhbGVuc1wiLFxuICAgIFwidmFsZW9cIixcbiAgICBcInZhbGV0dWRvXCIsXG4gICAgXCJ2YWxpZHVzXCIsXG4gICAgXCJ2YWxsdW1cIixcbiAgICBcInZhcHVsdXNcIixcbiAgICBcInZhcmlldGFzXCIsXG4gICAgXCJ2YXJpdXNcIixcbiAgICBcInZlaGVtZW5zXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcInZlbG9jaXRlclwiLFxuICAgIFwidmVsdW1cIixcbiAgICBcInZlbHV0XCIsXG4gICAgXCJ2ZW5pYVwiLFxuICAgIFwidmVuaW9cIixcbiAgICBcInZlbnRpdG9cIixcbiAgICBcInZlbnRvc3VzXCIsXG4gICAgXCJ2ZW50dXNcIixcbiAgICBcInZlbnVzdGFzXCIsXG4gICAgXCJ2ZXJcIixcbiAgICBcInZlcmJlcmFcIixcbiAgICBcInZlcmJ1bVwiLFxuICAgIFwidmVyZVwiLFxuICAgIFwidmVyZWN1bmRpYVwiLFxuICAgIFwidmVyZW9yXCIsXG4gICAgXCJ2ZXJnb1wiLFxuICAgIFwidmVyaXRhc1wiLFxuICAgIFwidmVyb1wiLFxuICAgIFwidmVyc3VzXCIsXG4gICAgXCJ2ZXJ0b1wiLFxuICAgIFwidmVydW10YW1lblwiLFxuICAgIFwidmVydXNcIixcbiAgICBcInZlc2NvXCIsXG4gICAgXCJ2ZXNpY2FcIixcbiAgICBcInZlc3BlclwiLFxuICAgIFwidmVzcGlsbG9cIixcbiAgICBcInZlc3RlclwiLFxuICAgIFwidmVzdGlnaXVtXCIsXG4gICAgXCJ2ZXN0cnVtXCIsXG4gICAgXCJ2ZXR1c1wiLFxuICAgIFwidmlhXCIsXG4gICAgXCJ2aWNpbnVzXCIsXG4gICAgXCJ2aWNpc3NpdHVkb1wiLFxuICAgIFwidmljdG9yaWFcIixcbiAgICBcInZpY3R1c1wiLFxuICAgIFwidmlkZWxpY2V0XCIsXG4gICAgXCJ2aWRlb1wiLFxuICAgIFwidmlkdWF0YVwiLFxuICAgIFwidmlkdW9cIixcbiAgICBcInZpZ2lsb1wiLFxuICAgIFwidmlnb3JcIixcbiAgICBcInZpbGljdXNcIixcbiAgICBcInZpbGlzXCIsXG4gICAgXCJ2aWxpdGFzXCIsXG4gICAgXCJ2aWxsYVwiLFxuICAgIFwidmluY29cIixcbiAgICBcInZpbmN1bHVtXCIsXG4gICAgXCJ2aW5kaWNvXCIsXG4gICAgXCJ2aW5pdG9yXCIsXG4gICAgXCJ2aW51bVwiLFxuICAgIFwidmlyXCIsXG4gICAgXCJ2aXJnYVwiLFxuICAgIFwidmlyZ29cIixcbiAgICBcInZpcmlkaXNcIixcbiAgICBcInZpcmlsaXRlclwiLFxuICAgIFwidmlydHVzXCIsXG4gICAgXCJ2aXNcIixcbiAgICBcInZpc2N1c1wiLFxuICAgIFwidml0YVwiLFxuICAgIFwidml0aW9zdXNcIixcbiAgICBcInZpdGl1bVwiLFxuICAgIFwidml0b1wiLFxuICAgIFwidml2b1wiLFxuICAgIFwidml4XCIsXG4gICAgXCJ2b2Jpc1wiLFxuICAgIFwidm9jaWZlcm9yXCIsXG4gICAgXCJ2b2NvXCIsXG4gICAgXCJ2b2xhdGljdXNcIixcbiAgICBcInZvbG9cIixcbiAgICBcInZvbHViaWxpc1wiLFxuICAgIFwidm9sdW50YXJpdXNcIixcbiAgICBcInZvbHVwXCIsXG4gICAgXCJ2b2x1dGFicnVtXCIsXG4gICAgXCJ2b2x2YVwiLFxuICAgIFwidm9tZXJcIixcbiAgICBcInZvbWljYVwiLFxuICAgIFwidm9taXRvXCIsXG4gICAgXCJ2b3JhZ29cIixcbiAgICBcInZvcmF4XCIsXG4gICAgXCJ2b3JvXCIsXG4gICAgXCJ2b3NcIixcbiAgICBcInZvdHVtXCIsXG4gICAgXCJ2b3Zlb1wiLFxuICAgIFwidm94XCIsXG4gICAgXCJ2dWxhcml0ZXJcIixcbiAgICBcInZ1bGdhcmlzXCIsXG4gICAgXCJ2dWxnaXZhZ3VzXCIsXG4gICAgXCJ2dWxnb1wiLFxuICAgIFwidnVsZ3VzXCIsXG4gICAgXCJ2dWxuZXJvXCIsXG4gICAgXCJ2dWxudXNcIixcbiAgICBcInZ1bHBlc1wiLFxuICAgIFwidnVsdGljdWx1c1wiLFxuICAgIFwidnVsdHVvc3VzXCIsXG4gICAgXCJ4aXBoaWFzXCJcbiAgXVxufTtcbm5sLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBbWJlclwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiQW5uZVwiLFxuICAgIFwiQW5vdWtcIixcbiAgICBcIkJhc1wiLFxuICAgIFwiQnJhbVwiLFxuICAgIFwiQnJpdHRcIixcbiAgICBcIkRhYW5cIixcbiAgICBcIkVtbWFcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRmVta2VcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZsZXVyXCIsXG4gICAgXCJJcmlzXCIsXG4gICAgXCJJc2FcIixcbiAgICBcIkphblwiLFxuICAgIFwiSmFzcGVyXCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIkplc3NlXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhblwiLFxuICAgIFwiS2V2aW5cIixcbiAgICBcIkxhcnNcIixcbiAgICBcIkxpZWtlXCIsXG4gICAgXCJMaXNhXCIsXG4gICAgXCJMb3R0ZVwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkx1dWtcIixcbiAgICBcIk1hdWRcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWlrZVwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIk5pY2tcIixcbiAgICBcIk5pZWxzXCIsXG4gICAgXCJOb2FcIixcbiAgICBcIlJpY2tcIixcbiAgICBcIlJvb3NcIixcbiAgICBcIlJ1YmVuXCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIlNhbm5lXCIsXG4gICAgXCJTZW1cIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiU3Rpam5cIixcbiAgICBcIlN2ZW5cIixcbiAgICBcIlRoaWpzXCIsXG4gICAgXCJUaGlqc1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJUaW1cIixcbiAgICBcIlRvbVwiXG4gIF0sXG4gIFwidHVzc2Vudm9lZ3NlbFwiOiBbXG4gICAgXCJ2YW5cIixcbiAgICBcInZhbiBkZVwiLFxuICAgIFwidmFuIGRlblwiLFxuICAgIFwidmFuICd0XCIsXG4gICAgXCJ2YW4gaGV0XCIsXG4gICAgXCJkZVwiLFxuICAgIFwiZGVuXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQmFra2VyXCIsXG4gICAgXCJCZWVrXCIsXG4gICAgXCJCZXJnXCIsXG4gICAgXCJCb2VyXCIsXG4gICAgXCJCb3NcIixcbiAgICBcIkJvc2NoXCIsXG4gICAgXCJCcmlua1wiLFxuICAgIFwiQnJvZWtcIixcbiAgICBcIkJyb3V3ZXJcIixcbiAgICBcIkJydWluXCIsXG4gICAgXCJEYW1cIixcbiAgICBcIkRla2tlclwiLFxuICAgIFwiRGlqa1wiLFxuICAgIFwiRGlqa3N0cmFcIixcbiAgICBcIkdyYWFmXCIsXG4gICAgXCJHcm9vdFwiLFxuICAgIFwiSGFhblwiLFxuICAgIFwiSGVuZHJpa3NcIixcbiAgICBcIkhldXZlbFwiLFxuICAgIFwiSG9la1wiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYW5zZW5cIixcbiAgICBcIkphbnNzZW5cIixcbiAgICBcIkpvbmdcIixcbiAgICBcIktsZWluXCIsXG4gICAgXCJLb2tcIixcbiAgICBcIktvbmluZ1wiLFxuICAgIFwiS29zdGVyXCIsXG4gICAgXCJMZWV1d2VuXCIsXG4gICAgXCJMaW5kZW5cIixcbiAgICBcIk1hYXNcIixcbiAgICBcIk1lZXJcIixcbiAgICBcIk1laWplclwiLFxuICAgIFwiTXVsZGVyXCIsXG4gICAgXCJQZXRlcnNcIixcbiAgICBcIlJ1aXRlclwiLFxuICAgIFwiU2Nob3V0ZW5cIixcbiAgICBcIlNtaXRcIixcbiAgICBcIlNtaXRzXCIsXG4gICAgXCJTdGljaHRpbmdcIixcbiAgICBcIlZlZW5cIixcbiAgICBcIlZlblwiLFxuICAgIFwiVmVybWV1bGVuXCIsXG4gICAgXCJWaXNzZXJcIixcbiAgICBcIlZsaWV0XCIsXG4gICAgXCJWb3NcIixcbiAgICBcIlZyaWVzXCIsXG4gICAgXCJXYWxcIixcbiAgICBcIldpbGxlbXNcIixcbiAgICBcIldpdFwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkRoci5cIixcbiAgICBcIk1ldnIuIERyLlwiLFxuICAgIFwiQnNjXCIsXG4gICAgXCJNc2NcIixcbiAgICBcIlByb2YuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiSnIuXCIsXG4gICAgXCJTci5cIixcbiAgICBcIklcIixcbiAgICBcIklJXCIsXG4gICAgXCJJSUlcIixcbiAgICBcIklWXCIsXG4gICAgXCJWXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3t0dXNzZW52b2Vnc2VsfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3t0dXNzZW52b2Vnc2VsfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xubmwucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKCMjIyMpICMjIyMjI1wiLFxuICAgIFwiIyMjIyMjIyMjI1wiLFxuICAgIFwiMDYjIyMjIyMjI1wiLFxuICAgIFwiMDYgIyMjIyAjIyMjXCJcbiAgXVxufTtcbiIsInZhciBwbCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHBsO1xucGwudGl0bGUgPSBcIlBvbGlzaFwiO1xucGwubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJBYnJhaGFtXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCJBZHJpYW5cIixcbiAgICBcIkF0YW5henlcIixcbiAgICBcIkFnYXRvblwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGVrc2FuZGVyXCIsXG4gICAgXCJBbGVrc3lcIixcbiAgICBcIkFsZnJlZFwiLFxuICAgIFwiQWx3YXJcIixcbiAgICBcIkFtYnJvxbx5XCIsXG4gICAgXCJBbmF0b2xcIixcbiAgICBcIkFuZHJ6ZWpcIixcbiAgICBcIkFudG9uaVwiLFxuICAgIFwiQXBvbGxpbmFyeVwiLFxuICAgIFwiQXBvbGxvXCIsXG4gICAgXCJBcmthZHlcIixcbiAgICBcIkFya2FkaXVzelwiLFxuICAgIFwiQXJjaGliYWxkXCIsXG4gICAgXCJBcnlzdGFyY2hcIixcbiAgICBcIkFybm9sZFwiLFxuICAgIFwiQXJzZW5pdXN6XCIsXG4gICAgXCJBcnR1clwiLFxuICAgIFwiQXVndXN0XCIsXG4gICAgXCJCYWxkd2luXCIsXG4gICAgXCJCYXp5bGlcIixcbiAgICBcIkJlbmVkeWt0XCIsXG4gICAgXCJCZW5pYW1pblwiLFxuICAgIFwiQmVybmFyZFwiLFxuICAgIFwiQmVydHJhbmRcIixcbiAgICBcIkJlcnRyYW1cIixcbiAgICBcIkJvcnlzXCIsXG4gICAgXCJCcmFqYW5cIixcbiAgICBcIkJydW5vXCIsXG4gICAgXCJDZXphcnlcIixcbiAgICBcIkNlY3lsaXVzelwiLFxuICAgIFwiS2Fyb2xcIixcbiAgICBcIktyeXN0aWFuXCIsXG4gICAgXCJLcnp5c3p0b2ZcIixcbiAgICBcIktsYXJlbmNqdXN6XCIsXG4gICAgXCJLbGF1ZGl1c3pcIixcbiAgICBcIktsZW1lbnNcIixcbiAgICBcIktvbnJhZFwiLFxuICAgIFwiS29uc3RhbnR5XCIsXG4gICAgXCJLb25zdGFudHluXCIsXG4gICAgXCJLb3JuZWxcIixcbiAgICBcIktvcm5lbGl1c3pcIixcbiAgICBcIktvcm5lbGlcIixcbiAgICBcIkN5cnlsXCIsXG4gICAgXCJDeXJ1c1wiLFxuICAgIFwiRGFtaWFuXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIkRhcml1c3pcIixcbiAgICBcIkRhd2lkXCIsXG4gICAgXCJEaW9uaXp5XCIsXG4gICAgXCJEZW1ldHJpdXN6XCIsXG4gICAgXCJEb21pbmlrXCIsXG4gICAgXCJEb25hbGRcIixcbiAgICBcIkRvcmlhblwiLFxuICAgIFwiRWRnYXJcIixcbiAgICBcIkVkbXVuZFwiLFxuICAgIFwiRWR3YXJkXCIsXG4gICAgXCJFZHdpblwiLFxuICAgIFwiRWZyZW1cIixcbiAgICBcIkVmcmFpbVwiLFxuICAgIFwiRWxpYXN6XCIsXG4gICAgXCJFbGVhemFyXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJFbWFudWVsXCIsXG4gICAgXCJFcmFzdFwiLFxuICAgIFwiRXJuZXN0XCIsXG4gICAgXCJFdWdlbml1c3pcIixcbiAgICBcIkV1c3RyYWNqdXN6XCIsXG4gICAgXCJGYWJpYW5cIixcbiAgICBcIkZlbGlrc1wiLFxuICAgIFwiRmxvcmlhblwiLFxuICAgIFwiRnJhbmNpc3pla1wiLFxuICAgIFwiRnJ5ZGVyeWtcIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlZGVvblwiLFxuICAgIFwiR2FsZnJ5ZFwiLFxuICAgIFwiSmVyenlcIixcbiAgICBcIkdlcmFsZFwiLFxuICAgIFwiR2VyYXp5bVwiLFxuICAgIFwiR2lsYmVydFwiLFxuICAgIFwiR29uc2Fsd3lcIixcbiAgICBcIkdyemVnb3J6XCIsXG4gICAgXCJHd2lkb1wiLFxuICAgIFwiSGFyYWxkXCIsXG4gICAgXCJIZW5yeWtcIixcbiAgICBcIkhlcmJlcnRcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSGlsYXJ5XCIsXG4gICAgXCJIb3JhY3lcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiSWduYWN5XCIsXG4gICAgXCJJZ29yXCIsXG4gICAgXCJIaWxhcmlvblwiLFxuICAgIFwiSW5ub2NlbnR5XCIsXG4gICAgXCJIaXBvbGl0XCIsXG4gICAgXCJJcmVuZXVzelwiLFxuICAgIFwiRXJ3aW5cIixcbiAgICBcIkl6YWFrXCIsXG4gICAgXCJJemFqYXN6XCIsXG4gICAgXCJJenlkb3JcIixcbiAgICBcIkpha3ViXCIsXG4gICAgXCJKZXJlbWlcIixcbiAgICBcIkplcmVtaWFzelwiLFxuICAgIFwiSGllcm9uaW1cIixcbiAgICBcIkdlcmFsZFwiLFxuICAgIFwiSm9hY2hpbVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYW51c3pcIixcbiAgICBcIkpvbmF0YW5cIixcbiAgICBcIkrDs3plZlwiLFxuICAgIFwiSm96dWVcIixcbiAgICBcIkp1bGlhblwiLFxuICAgIFwiSnVsaXVzelwiLFxuICAgIFwiSnVzdHluXCIsXG4gICAgXCJLYWxpc3RyYXRcIixcbiAgICBcIkthemltaWVyelwiLFxuICAgIFwiV2F3cnp5bmllY1wiLFxuICAgIFwiTGF1cmVudHlcIixcbiAgICBcIkxhdXJlbmNqdXN6XCIsXG4gICAgXCLFgWF6YXJ6XCIsXG4gICAgXCJMZW9uXCIsXG4gICAgXCJMZW9uYXJkXCIsXG4gICAgXCJMZW9uaWRcIixcbiAgICBcIkxlb25cIixcbiAgICBcIkx1ZHdpa1wiLFxuICAgIFwixYF1a2FzelwiLFxuICAgIFwiTHVjamFuXCIsXG4gICAgXCJNYWdudXNcIixcbiAgICBcIk1ha2FyeVwiLFxuICAgIFwiTWFyY2VsaVwiLFxuICAgIFwiTWFyZWtcIixcbiAgICBcIk1hcmNpblwiLFxuICAgIFwiTWF0ZXVzelwiLFxuICAgIFwiTWF1cnljeVwiLFxuICAgIFwiTWFrc3ltXCIsXG4gICAgXCJNYWtzeW1pbGlhblwiLFxuICAgIFwiTWljaGHFglwiLFxuICAgIFwiTWlyb25cIixcbiAgICBcIk1vZGVzdFwiLFxuICAgIFwiTW9qxbxlc3pcIixcbiAgICBcIk5hdGFuXCIsXG4gICAgXCJOYXRhbmFlbFwiLFxuICAgIFwiTmF6YXJpdXN6XCIsXG4gICAgXCJOYXphcnlcIixcbiAgICBcIk5lc3RvclwiLFxuICAgIFwiTWlrb8WCYWpcIixcbiAgICBcIk5pa29kZW1cIixcbiAgICBcIk9sYWZcIixcbiAgICBcIk9sZWdcIixcbiAgICBcIk9saXdpZXJcIixcbiAgICBcIk9udWZyeVwiLFxuICAgIFwiT3Jlc3Rlc1wiLFxuICAgIFwiT3NrYXJcIixcbiAgICBcIkFuc2dhcnlcIixcbiAgICBcIk9zbXVuZFwiLFxuICAgIFwiUGFua3JhY3lcIixcbiAgICBcIlBhbnRhbGVvblwiLFxuICAgIFwiUGF0cnlrXCIsXG4gICAgXCJQYXRyeWNqdXN6XCIsXG4gICAgXCJQYXRyeWN5XCIsXG4gICAgXCJQYXdlxYJcIixcbiAgICBcIlBpb3RyXCIsXG4gICAgXCJGaWxlbW9uXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiUGxhdG9uXCIsXG4gICAgXCJQb2xpa2FycFwiLFxuICAgIFwiUG9yZmlyeVwiLFxuICAgIFwiUG9yZmlyaXVzelwiLFxuICAgIFwiUHJva2xlc1wiLFxuICAgIFwiUHJva3VsXCIsXG4gICAgXCJQcm9rb3BcIixcbiAgICBcIkt3aW50eW5cIixcbiAgICBcIlJhbmRvbGZcIixcbiAgICBcIlJhZmHFglwiLFxuICAgIFwiUmFqbXVuZFwiLFxuICAgIFwiUmVnaW5hbGRcIixcbiAgICBcIlJham5vbGRcIixcbiAgICBcIlJ5c3phcmRcIixcbiAgICBcIlJvYmVydFwiLFxuICAgIFwiUm9kZXJ5a1wiLFxuICAgIFwiUm9nZXJcIixcbiAgICBcIlJvbGFuZFwiLFxuICAgIFwiUm9tYW5cIixcbiAgICBcIlJvbWVvXCIsXG4gICAgXCJSZWdpbmFsZFwiLFxuICAgIFwiUnVkb2xmXCIsXG4gICAgXCJTYW1zb25cIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiU2Fsd2F0b3JcIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiU2VyYWZpblwiLFxuICAgIFwiU2VyZ2l1c3pcIixcbiAgICBcIlNld2VyeW5cIixcbiAgICBcIlp5Z211bnRcIixcbiAgICBcIlN5bHdlc3RlclwiLFxuICAgIFwiU3p5bW9uXCIsXG4gICAgXCJTYWxvbW9uXCIsXG4gICAgXCJTcGlyeWRpb25cIixcbiAgICBcIlN0YW5pc8WCYXdcIixcbiAgICBcIlN6Y3plcGFuXCIsXG4gICAgXCJTdGVmYW5cIixcbiAgICBcIlRlcmVuY2p1c3pcIixcbiAgICBcIlRlb2RvclwiLFxuICAgIFwiVG9tYXN6XCIsXG4gICAgXCJUeW1vdGV1c3pcIixcbiAgICBcIlRvYmlhc3pcIixcbiAgICBcIldhbGVudHlcIixcbiAgICBcIldhbGVudHluXCIsXG4gICAgXCJXYWxlcmlhblwiLFxuICAgIFwiV2FsZXJ5XCIsXG4gICAgXCJXaWt0b3JcIixcbiAgICBcIldpbmNlbnR5XCIsXG4gICAgXCJXaXRhbGlzXCIsXG4gICAgXCJXxYJvZHppbWllcnpcIixcbiAgICBcIlfFgmFkeXPFgmF3XCIsXG4gICAgXCJCxYJhxbxlalwiLFxuICAgIFwiV2FsdGVyXCIsXG4gICAgXCJXYWxnaWVyelwiLFxuICAgIFwiV2FjxYJhd1wiLFxuICAgIFwiV2lsZnJ5ZFwiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiS3Nhd2VyeVwiLFxuICAgIFwiS3Nlbm9mb250XCIsXG4gICAgXCJKZXJ6eVwiLFxuICAgIFwiWmFjaGFyaWFzelwiLFxuICAgIFwiWmFjaGFyeVwiLFxuICAgIFwiQWRhXCIsXG4gICAgXCJBZGVsYWpkYVwiLFxuICAgIFwiQWdhdGFcIixcbiAgICBcIkFnbmllc3prYVwiLFxuICAgIFwiQWdyeXBpbmFcIixcbiAgICBcIkFpZGFcIixcbiAgICBcIkFsZWtzYW5kcmFcIixcbiAgICBcIkFsaWNqYVwiLFxuICAgIFwiQWxpbmFcIixcbiAgICBcIkFtYW5kYVwiLFxuICAgIFwiQW5hc3RhemphXCIsXG4gICAgXCJBbmdlbGFcIixcbiAgICBcIkFuZMW8ZWxpa2FcIixcbiAgICBcIkFuZ2VsaW5hXCIsXG4gICAgXCJBbm5hXCIsXG4gICAgXCJIYW5uYVwiLFxuICAgIFwi4oCUXCIsXG4gICAgXCJBbnRvbmluYVwiLFxuICAgIFwiQXJpYWRuYVwiLFxuICAgIFwiQXVyb3JhXCIsXG4gICAgXCJCYXJiYXJhXCIsXG4gICAgXCJCZWF0cnljemVcIixcbiAgICBcIkJlcnRhXCIsXG4gICAgXCJCcnlnaWRhXCIsXG4gICAgXCJLYW1pbGFcIixcbiAgICBcIkthcm9saW5hXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiS29ybmVsaWFcIixcbiAgICBcIkthdGFyenluYVwiLFxuICAgIFwiQ2VjeWxpYVwiLFxuICAgIFwiS2Fyb2xpbmFcIixcbiAgICBcIkNobG9lXCIsXG4gICAgXCJLcnlzdHluYVwiLFxuICAgIFwiS2xhcmFcIixcbiAgICBcIktsYXVkaWFcIixcbiAgICBcIktsZW1lbnR5bmFcIixcbiAgICBcIktvbnN0YW5jamFcIixcbiAgICBcIktvcmFsaWFcIixcbiAgICBcIkRhcmlhXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGluYVwiLFxuICAgIFwiRG9yb3RhXCIsXG4gICAgXCJFZHl0YVwiLFxuICAgIFwiRWxlb25vcmFcIixcbiAgICBcIkVsaXphXCIsXG4gICAgXCJFbMW8YmlldGFcIixcbiAgICBcIkl6YWJlbGFcIixcbiAgICBcIkVsd2lyYVwiLFxuICAgIFwiRW1pbGlhXCIsXG4gICAgXCJFc3RlcmFcIixcbiAgICBcIkV1ZG9rc2phXCIsXG4gICAgXCJFdWRva2lhXCIsXG4gICAgXCJFdWdlbmlhXCIsXG4gICAgXCJFd2FcIixcbiAgICBcIkV3ZWxpbmFcIixcbiAgICBcIkZlcmR5bmFuZGFcIixcbiAgICBcIkZsb3JlbmNqYVwiLFxuICAgIFwiRnJhbmNpc3prYVwiLFxuICAgIFwiR2FicmllbGFcIixcbiAgICBcIkdlcnRydWRhXCIsXG4gICAgXCJHbG9yaWFcIixcbiAgICBcIkdyYWNqYVwiLFxuICAgIFwiSmFkd2lnYVwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJIZW5yeWthXCIsXG4gICAgXCJOYWR6aWVqYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJJbG9uYVwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJJcmVuYVwiLFxuICAgIFwiSXJtYVwiLFxuICAgIFwiSXphYmVsYVwiLFxuICAgIFwiSXpvbGRhXCIsXG4gICAgXCJKYWt1YmluYVwiLFxuICAgIFwiSm9hbm5hXCIsXG4gICAgXCJKYW5pbmFcIixcbiAgICBcIsW7YW5ldGFcIixcbiAgICBcIkpvYW5uYVwiLFxuICAgIFwiR2luZXdyYVwiLFxuICAgIFwiSsOzemVmaW5hXCIsXG4gICAgXCJKdWR5dGFcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaXRhXCIsXG4gICAgXCJKdXN0eW5hXCIsXG4gICAgXCJLaXJhXCIsXG4gICAgXCJDeXJhXCIsXG4gICAgXCJLbGVvcGF0cmFcIixcbiAgICBcIkxhcnlzYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkxhdXJlbmNqYVwiLFxuICAgIFwiTGF1cmVudHluYVwiLFxuICAgIFwiTGVhXCIsXG4gICAgXCJMZWlsYVwiLFxuICAgIFwiRWxlb25vcmFcIixcbiAgICBcIkxpbGlhbmFcIixcbiAgICBcIkxpbGlhbm5hXCIsXG4gICAgXCJMaWxpYVwiLFxuICAgIFwiTGlsbGFcIixcbiAgICBcIkxpemFcIixcbiAgICBcIkVsaXphXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTHVkd2lrYVwiLFxuICAgIFwiTHVpemFcIixcbiAgICBcIsWBdWNqYVwiLFxuICAgIFwiTHVjamFcIixcbiAgICBcIkxpZGlhXCIsXG4gICAgXCJBbWFiZWxhXCIsXG4gICAgXCJNYWdkYWxlbmFcIixcbiAgICBcIk1hbHdpbmFcIixcbiAgICBcIk1hxYJnb3J6YXRhXCIsXG4gICAgXCJHcmV0YVwiLFxuICAgIFwiTWFyaWFubmFcIixcbiAgICBcIk1hcnluYVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIk1hcnR5bmFcIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJNYXR5bGRhXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJNZWxhbmlhXCIsXG4gICAgXCJNaWNoYWxpbmFcIixcbiAgICBcIk1vbmlrYVwiLFxuICAgIFwiTmFkemllamFcIixcbiAgICBcIk5vZW1pXCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOaWtvbGFcIixcbiAgICBcIk5pbmFcIixcbiAgICBcIk9sZ2FcIixcbiAgICBcIk9saW1waWFcIixcbiAgICBcIk9saXdpYVwiLFxuICAgIFwiT2ZlbGlhXCIsXG4gICAgXCJQYXRyeWNqYVwiLFxuICAgIFwiUGF1bGFcIixcbiAgICBcIlBlbGFnaWFcIixcbiAgICBcIlBlbmVsb3BhXCIsXG4gICAgXCJGaWxpcGFcIixcbiAgICBcIlBhdWxpbmFcIixcbiAgICBcIlJhY2hlbGFcIixcbiAgICBcIlJlYmVrYVwiLFxuICAgIFwiUmVnaW5hXCIsXG4gICAgXCJSZW5hdGFcIixcbiAgICBcIlJvemFsaWFcIixcbiAgICBcIlLDs8W8YVwiLFxuICAgIFwiUm9rc2FuYVwiLFxuICAgIFwiUnVmaW5hXCIsXG4gICAgXCJSdXRhXCIsXG4gICAgXCJTYWJpbmFcIixcbiAgICBcIlNhcmFcIixcbiAgICBcIlNlcmFmaW5hXCIsXG4gICAgXCJTeWJpbGxhXCIsXG4gICAgXCJTeWx3aWFcIixcbiAgICBcIlpvZmlhXCIsXG4gICAgXCJTdGVsbGFcIixcbiAgICBcIlN0ZWZhbmlhXCIsXG4gICAgXCJadXphbm5hXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIlRhY2phbmFcIixcbiAgICBcIlRla2xhXCIsXG4gICAgXCJUZW9kb3JhXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIldhbGVudHluYVwiLFxuICAgIFwiV2FsZXJpYVwiLFxuICAgIFwiV2FuZXNhXCIsXG4gICAgXCJXaWFyYVwiLFxuICAgIFwiV2Vyb25pa2FcIixcbiAgICBcIldpa3RvcmlhXCIsXG4gICAgXCJXaXJnaW5pYVwiLFxuICAgIFwiQmliaWFuYVwiLFxuICAgIFwiQmliaWFubmFcIixcbiAgICBcIldhbmRhXCIsXG4gICAgXCJXaWxoZWxtaW5hXCIsXG4gICAgXCJLc2F3ZXJhXCIsXG4gICAgXCJLc2VuaWFcIixcbiAgICBcIlpvZVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkFkYW1jemFrXCIsXG4gICAgXCJBZGFtY3p5a1wiLFxuICAgIFwiQWRhbWVrXCIsXG4gICAgXCJBZGFtaWFrXCIsXG4gICAgXCJBZGFtaWVjXCIsXG4gICAgXCJBZGFtb3dpY3pcIixcbiAgICBcIkFkYW1za2lcIixcbiAgICBcIkFkYW11c1wiLFxuICAgIFwiQWxla3NhbmRyb3dpY3pcIixcbiAgICBcIkFuZHJ6ZWpjemFrXCIsXG4gICAgXCJBbmRyemVqZXdza2lcIixcbiAgICBcIkFudGN6YWtcIixcbiAgICBcIkF1Z3VzdHluXCIsXG4gICAgXCJBdWd1c3R5bmlha1wiLFxuICAgIFwiQmFnacWEc2tpXCIsXG4gICAgXCJCYWxjZXJ6YWtcIixcbiAgICBcIkJhbmFjaFwiLFxuICAgIFwiQmFuYXNpYWtcIixcbiAgICBcIkJhbmFzaWtcIixcbiAgICBcIkJhbmHFm1wiLFxuICAgIFwiQmFyYW5cIixcbiAgICBcIkJhcmFub3dza2lcIixcbiAgICBcIkJhcmHFhHNraVwiLFxuICAgIFwiQmFydGN6YWtcIixcbiAgICBcIkJhcnRrb3dpYWtcIixcbiAgICBcIkJhcnRuaWtcIixcbiAgICBcIkJhcnRvc2lrXCIsXG4gICAgXCJCZWRuYXJjenlrXCIsXG4gICAgXCJCZWRuYXJla1wiLFxuICAgIFwiQmVkbmFyc2tpXCIsXG4gICAgXCJCZWRuYXJ6XCIsXG4gICAgXCJCaWHFgmFzXCIsXG4gICAgXCJCaWHFgmVrXCIsXG4gICAgXCJCaWHFgmtvd3NraVwiLFxuICAgIFwiQmllbGFrXCIsXG4gICAgXCJCaWVsYXdza2lcIixcbiAgICBcIkJpZWxlY2tpXCIsXG4gICAgXCJCaWVsc2tpXCIsXG4gICAgXCJCaWVuaWVrXCIsXG4gICAgXCJCaWVybmFja2lcIixcbiAgICBcIkJpZXJuYXRcIixcbiAgICBcIkJpZcWEa293c2tpXCIsXG4gICAgXCJCaWxza2lcIixcbiAgICBcIkJvYmVyXCIsXG4gICAgXCJCb2NoZW5la1wiLFxuICAgIFwiQm9ndWNraVwiLFxuICAgIFwiQm9ndXN6XCIsXG4gICAgXCJCb3Jla1wiLFxuICAgIFwiQm9ya293c2tpXCIsXG4gICAgXCJCb3Jvd2llY1wiLFxuICAgIFwiQm9yb3dza2lcIixcbiAgICBcIkJvxbxla1wiLFxuICAgIFwiQnJvZGFcIixcbiAgICBcIkJyemV6acWEc2tpXCIsXG4gICAgXCJCcnpvem93c2tpXCIsXG4gICAgXCJCdWN6ZWtcIixcbiAgICBcIkJ1Y3prb3dza2lcIixcbiAgICBcIkJ1Y3p5xYRza2lcIixcbiAgICBcIkJ1ZHppxYRza2lcIixcbiAgICBcIkJ1ZHp5xYRza2lcIixcbiAgICBcIkJ1amFrXCIsXG4gICAgXCJCdWtvd3NraVwiLFxuICAgIFwiQnVyennFhHNraVwiLFxuICAgIFwiQsSFa1wiLFxuICAgIFwiQsSFa293c2tpXCIsXG4gICAgXCJCxYJhc3pjemFrXCIsXG4gICAgXCJCxYJhc3pjenlrXCIsXG4gICAgXCJDZWJ1bGFcIixcbiAgICBcIkNobWllbFwiLFxuICAgIFwiQ2htaWVsZXdza2lcIixcbiAgICBcIkNobXVyYVwiLFxuICAgIFwiQ2hvam5hY2tpXCIsXG4gICAgXCJDaG9qbm93c2tpXCIsXG4gICAgXCJDaG9sZXdhXCIsXG4gICAgXCJDaHJ6YW5vd3NraVwiLFxuICAgIFwiQ2h1ZHppa1wiLFxuICAgIFwiQ2ljaG9ja2lcIixcbiAgICBcIkNpY2hvxYRcIixcbiAgICBcIkNpY2h5XCIsXG4gICAgXCJDaWVzaWVsc2tpXCIsXG4gICAgXCJDaWXFm2xhXCIsXG4gICAgXCJDaWXFm2xha1wiLFxuICAgIFwiQ2llxZtsaWtcIixcbiAgICBcIkNpc3pld3NraVwiLFxuICAgIFwiQ3lidWxza2lcIixcbiAgICBcIkN5Z2FuXCIsXG4gICAgXCJDemFqYVwiLFxuICAgIFwiQ3phamthXCIsXG4gICAgXCJDemFqa293c2tpXCIsXG4gICAgXCJDemFwbGFcIixcbiAgICBcIkN6YXJuZWNraVwiLFxuICAgIFwiQ3plY2hcIixcbiAgICBcIkN6ZWNob3dza2lcIixcbiAgICBcIkN6ZWthalwiLFxuICAgIFwiQ3plcm5pYWtcIixcbiAgICBcIkN6ZXJ3acWEc2tpXCIsXG4gICAgXCJDennFvFwiLFxuICAgIFwiQ3p5xbxld3NraVwiLFxuICAgIFwiRGVjXCIsXG4gICAgXCJEb2Jvc3pcIixcbiAgICBcIkRvYnJvd29sc2tpXCIsXG4gICAgXCJEb2JyennFhHNraVwiLFxuICAgIFwiRG9tYWdhxYJhXCIsXG4gICAgXCJEb21hxYRza2lcIixcbiAgICBcIkRvbWluaWFrXCIsXG4gICAgXCJEcmFiaWtcIixcbiAgICBcIkRyb3pkXCIsXG4gICAgXCJEcm96ZG93c2tpXCIsXG4gICAgXCJEcnpld2llY2tpXCIsXG4gICAgXCJEcsOzxbxkxbxcIixcbiAgICBcIkR1YmllbFwiLFxuICAgIFwiRHVkYVwiLFxuICAgIFwiRHVkZWtcIixcbiAgICBcIkR1ZHppYWtcIixcbiAgICBcIkR1ZHppa1wiLFxuICAgIFwiRHVkemnFhHNraVwiLFxuICAgIFwiRHVzennFhHNraVwiLFxuICAgIFwiRHppZWR6aWNcIixcbiAgICBcIkR6aXViYVwiLFxuICAgIFwiRMSFYmVrXCIsXG4gICAgXCJExIVia293c2tpXCIsXG4gICAgXCJExIVicm93c2tpXCIsXG4gICAgXCJExJlib3dza2lcIixcbiAgICBcIkTEmWJza2lcIixcbiAgICBcIkTFgnVnb3N6XCIsXG4gICAgXCJGYWxrb3dza2lcIixcbiAgICBcIkZpamHFgmtvd3NraVwiLFxuICAgIFwiRmlsaXBla1wiLFxuICAgIFwiRmlsaXBpYWtcIixcbiAgICBcIkZpbGlwb3dpY3pcIixcbiAgICBcIkZsYWtcIixcbiAgICBcIkZsaXNcIixcbiAgICBcIkZsb3JjemFrXCIsXG4gICAgXCJGbG9yZWtcIixcbiAgICBcIkZyYW5rb3dza2lcIixcbiAgICBcIkZyxIVja293aWFrXCIsXG4gICAgXCJGcsSFY3pla1wiLFxuICAgIFwiRnLEhXRjemFrXCIsXG4gICAgXCJGdXJtYW5cIixcbiAgICBcIkdhZG9tc2tpXCIsXG4gICAgXCJHYWpkYVwiLFxuICAgIFwiR2FqZXdza2lcIixcbiAgICBcIkdhd2XFglwiLFxuICAgIFwiR2F3bGlrXCIsXG4gICAgXCJHYXdyb25cIixcbiAgICBcIkdhd3JvxYRza2lcIixcbiAgICBcIkdhxYJrYVwiLFxuICAgIFwiR2HFgsSFemthXCIsXG4gICAgXCJHaWxcIixcbiAgICBcIkdvZGxld3NraVwiLFxuICAgIFwiR29sZWNcIixcbiAgICBcIkdvxYLEhWJcIixcbiAgICBcIkdvxYLEmWJpZXdza2lcIixcbiAgICBcIkdvxYLEmWJpb3dza2lcIixcbiAgICBcIkdyYWJvd3NraVwiLFxuICAgIFwiR3JhY3p5a1wiLFxuICAgIFwiR3JvY2hvd3NraVwiLFxuICAgIFwiR3J1ZHppZcWEXCIsXG4gICAgXCJHcnVzemN6ecWEc2tpXCIsXG4gICAgXCJHcnVzemthXCIsXG4gICAgXCJHcnplZ29yY3p5a1wiLFxuICAgIFwiR3J6ZWxha1wiLFxuICAgIFwiR3J6ZXNpYWtcIixcbiAgICBcIkdyemVzaWtcIixcbiAgICBcIkdyemXFm2tvd2lha1wiLFxuICAgIFwiR3J6eWJcIixcbiAgICBcIkdyenlib3dza2lcIixcbiAgICBcIkdyenl3YWN6XCIsXG4gICAgXCJHdXRvd3NraVwiLFxuICAgIFwiR3V6aWtcIixcbiAgICBcIkd3w7PFumTFulwiLFxuICAgIFwiR8OzcmFcIixcbiAgICBcIkfDs3JhbFwiLFxuICAgIFwiR8OzcmVja2lcIixcbiAgICBcIkfDs3JrYVwiLFxuICAgIFwiR8Ozcm5pYWtcIixcbiAgICBcIkfDs3JueVwiLFxuICAgIFwiR8OzcnNraVwiLFxuICAgIFwiR8SFc2lvclwiLFxuICAgIFwiR8SFc2lvcm93c2tpXCIsXG4gICAgXCJHxYJvZ293c2tpXCIsXG4gICAgXCJHxYJvd2Fja2lcIixcbiAgICBcIkfFgsSFYlwiLFxuICAgIFwiSGFqZHVrXCIsXG4gICAgXCJIZXJtYW5cIixcbiAgICBcIkl3YcWEc2tpXCIsXG4gICAgXCJJemRlYnNraVwiLFxuICAgIFwiSmFixYJvxYRza2lcIixcbiAgICBcIkphY2tvd3NraVwiLFxuICAgIFwiSmFnaWVsc2tpXCIsXG4gICAgXCJKYWdpZcWCxYJvXCIsXG4gICAgXCJKYWdvZHppxYRza2lcIixcbiAgICBcIkpha3ViaWFrXCIsXG4gICAgXCJKYWt1Ym93c2tpXCIsXG4gICAgXCJKYW5hc1wiLFxuICAgIFwiSmFuaWFrXCIsXG4gICAgXCJKYW5pY2tpXCIsXG4gICAgXCJKYW5pa1wiLFxuICAgIFwiSmFuaXN6ZXdza2lcIixcbiAgICBcIkphbmtvd2lha1wiLFxuICAgIFwiSmFua293c2tpXCIsXG4gICAgXCJKYW5vd3NraVwiLFxuICAgIFwiSmFudXNcIixcbiAgICBcIkphbnVzelwiLFxuICAgIFwiSmFudXN6ZXdza2lcIixcbiAgICBcIkphcm9zXCIsXG4gICAgXCJKYXJvc3pcIixcbiAgICBcIkphcnrEhWJla1wiLFxuICAgIFwiSmFzacWEc2tpXCIsXG4gICAgXCJKYXN0cnrEmWJza2lcIixcbiAgICBcIkphd29yc2tpXCIsXG4gICAgXCJKYcWba2lld2ljelwiLFxuICAgIFwiSmV6aWVyc2tpXCIsXG4gICAgXCJKdXJla1wiLFxuICAgIFwiSnVya2lld2ljelwiLFxuICAgIFwiSnVya293c2tpXCIsXG4gICAgXCJKdXN6Y3pha1wiLFxuICAgIFwiSsOzxbp3aWFrXCIsXG4gICAgXCJKw7PFundpa1wiLFxuICAgIFwiSsSZZHJ6ZWpjemFrXCIsXG4gICAgXCJKxJlkcnplamN6eWtcIixcbiAgICBcIkrEmWRyemVqZXdza2lcIixcbiAgICBcIkthY3ByemFrXCIsXG4gICAgXCJLYWN6bWFyY3p5a1wiLFxuICAgIFwiS2Fjem1hcmVrXCIsXG4gICAgXCJLYWN6bWFyc2tpXCIsXG4gICAgXCJLYWN6b3JcIixcbiAgICBcIkthY3pvcm93c2tpXCIsXG4gICAgXCJLYWN6ecWEc2tpXCIsXG4gICAgXCJLYWxldGFcIixcbiAgICBcIkthbGlub3dza2lcIixcbiAgICBcIkthbGlzelwiLFxuICAgIFwiS2FtacWEc2tpXCIsXG4gICAgXCJLYW5pYVwiLFxuICAgIFwiS2FuaWV3c2tpXCIsXG4gICAgXCJLYXB1c3RhXCIsXG4gICAgXCJLYXJhxZtcIixcbiAgICBcIkthcmN6ZXdza2lcIixcbiAgICBcIkthcnBpxYRza2lcIixcbiAgICBcIkthcndvd3NraVwiLFxuICAgIFwiS2FzcGVyZWtcIixcbiAgICBcIkthc3ByemFrXCIsXG4gICAgXCJLYXNwcnp5a1wiLFxuICAgIFwiS2FzenViYVwiLFxuICAgIFwiS2F3YVwiLFxuICAgIFwiS2F3ZWNraVwiLFxuICAgIFwiS2HFgnXFvGFcIixcbiAgICBcIkthxbptaWVyY3pha1wiLFxuICAgIFwiS2llxYJiYXNhXCIsXG4gICAgXCJLaXNpZWxcIixcbiAgICBcIktpdGFcIixcbiAgICBcIktsaW1jemFrXCIsXG4gICAgXCJLbGltZWtcIixcbiAgICBcIkttaWVjaWtcIixcbiAgICBcIkttaWXEh1wiLFxuICAgIFwiS25hcGlrXCIsXG4gICAgXCJLb2J1c1wiLFxuICAgIFwiS29ndXRcIixcbiAgICBcIktvbGFzYVwiLFxuICAgIFwiS29tb3Jvd3NraVwiLFxuICAgIFwiS29uaWVjem5hXCIsXG4gICAgXCJLb25pZWN6bnlcIixcbiAgICBcIktvbm9wa2FcIixcbiAgICBcIktvcGN6ecWEc2tpXCIsXG4gICAgXCJLb3BlclwiLFxuICAgIFwiS29wZcSHXCIsXG4gICAgXCJLb3J6ZW5pb3dza2lcIixcbiAgICBcIktvc1wiLFxuICAgIFwiS29zacWEc2tpXCIsXG4gICAgXCJLb3Nvd3NraVwiLFxuICAgIFwiS29zdGVja2lcIixcbiAgICBcIktvc3RyemV3YVwiLFxuICAgIFwiS290XCIsXG4gICAgXCJLb3Rvd3NraVwiLFxuICAgIFwiS293YWxcIixcbiAgICBcIktvd2FsY3p1a1wiLFxuICAgIFwiS293YWxjenlrXCIsXG4gICAgXCJLb3dhbGV3c2tpXCIsXG4gICAgXCJLb3dhbGlrXCIsXG4gICAgXCJLb3dhbHNraVwiLFxuICAgIFwiS296YVwiLFxuICAgIFwiS296YWtcIixcbiAgICBcIktvemllxYJcIixcbiAgICBcIktvemlvxYJcIixcbiAgICBcIktvesWCb3dza2lcIixcbiAgICBcIktvxYJha293c2tpXCIsXG4gICAgXCJLb8WCb2R6aWVqXCIsXG4gICAgXCJLb8WCb2R6aWVqY3p5a1wiLFxuICAgIFwiS2/Fgm9kemllanNraVwiLFxuICAgIFwiS3JhamV3c2tpXCIsXG4gICAgXCJLcmFrb3dpYWtcIixcbiAgICBcIktyYXdjenlrXCIsXG4gICAgXCJLcmF3aWVjXCIsXG4gICAgXCJLcnVrXCIsXG4gICAgXCJLcnVrb3dza2lcIixcbiAgICBcIktydXBhXCIsXG4gICAgXCJLcnVwacWEc2tpXCIsXG4gICAgXCJLcnVzemV3c2tpXCIsXG4gICAgXCJLcnlzaWFrXCIsXG4gICAgXCJLcnplbWnFhHNraVwiLFxuICAgIFwiS3J6ecW8YW5vd3NraVwiLFxuICAgIFwiS3LDs2xcIixcbiAgICBcIktyw7NsaWtvd3NraVwiLFxuICAgIFwiS3NpxIXFvGVrXCIsXG4gICAgXCJLdWJhY2tpXCIsXG4gICAgXCJLdWJpYWtcIixcbiAgICBcIkt1YmljYVwiLFxuICAgIFwiS3ViaWNraVwiLFxuICAgIFwiS3ViaWtcIixcbiAgICBcIkt1Y1wiLFxuICAgIFwiS3VjaGFyY3p5a1wiLFxuICAgIFwiS3VjaGFyc2tpXCIsXG4gICAgXCJLdWNodGFcIixcbiAgICBcIkt1Y2nFhHNraVwiLFxuICAgIFwiS3VjennFhHNraVwiLFxuICAgIFwiS3VqYXdhXCIsXG4gICAgXCJLdWphd3NraVwiLFxuICAgIFwiS3VsYVwiLFxuICAgIFwiS3VsZXN6YVwiLFxuICAgIFwiS3VsaWdcIixcbiAgICBcIkt1bGlrXCIsXG4gICAgXCJLdWxpxYRza2lcIixcbiAgICBcIkt1cmVrXCIsXG4gICAgXCJLdXJvd3NraVwiLFxuICAgIFwiS3XFm1wiLFxuICAgIFwiS3dhxZtuaWV3c2tpXCIsXG4gICAgXCJLd2lhdGtvd3NraVwiLFxuICAgIFwiS3dpZWNpZcWEXCIsXG4gICAgXCJLd2llY2nFhHNraVwiLFxuICAgIFwiS8SZZHppZXJza2lcIixcbiAgICBcIkvEmWR6aW9yYVwiLFxuICAgIFwiS8SZcGFcIixcbiAgICBcIkvFgm9zXCIsXG4gICAgXCJLxYJvc293c2tpXCIsXG4gICAgXCJMYWNoXCIsXG4gICAgXCJMYXNrb3dza2lcIixcbiAgICBcIkxhc290YVwiLFxuICAgIFwiTGVjaFwiLFxuICAgIFwiTGVuYXJ0XCIsXG4gICAgXCJMZXNpYWtcIixcbiAgICBcIkxlc3pjennFhHNraVwiLFxuICAgIFwiTGV3YW5kb3dza2lcIixcbiAgICBcIkxld2lja2lcIixcbiAgICBcIkxlxZtuaWFrXCIsXG4gICAgXCJMZcWbbmlld3NraVwiLFxuICAgIFwiTGlwacWEc2tpXCIsXG4gICAgXCJMaXBrYVwiLFxuICAgIFwiTGlwc2tpXCIsXG4gICAgXCJMaXNcIixcbiAgICBcIkxpc2llY2tpXCIsXG4gICAgXCJMaXNvd3NraVwiLFxuICAgIFwiTWFjaWVqZXdza2lcIixcbiAgICBcIk1hY2nEhWdcIixcbiAgICBcIk1hY2tpZXdpY3pcIixcbiAgICBcIk1hZGVqXCIsXG4gICAgXCJNYWpcIixcbiAgICBcIk1hamNoZXJcIixcbiAgICBcIk1hamNocnpha1wiLFxuICAgIFwiTWFqZXdza2lcIixcbiAgICBcIk1hamthXCIsXG4gICAgXCJNYWtvd3NraVwiLFxuICAgIFwiTWFsZWNcIixcbiAgICBcIk1hbGlja2lcIixcbiAgICBcIk1hbGlub3dza2lcIixcbiAgICBcIk1hbGlzemV3c2tpXCIsXG4gICAgXCJNYXJjaGV3a2FcIixcbiAgICBcIk1hcmNpbmlha1wiLFxuICAgIFwiTWFyY2lua293c2tpXCIsXG4gICAgXCJNYXJjemFrXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFya2lld2ljelwiLFxuICAgIFwiTWFya293c2tpXCIsXG4gICAgXCJNYXJzemHFgmVrXCIsXG4gICAgXCJNYXJ6ZWNcIixcbiAgICBcIk1hc8WCb3dza2lcIixcbiAgICBcIk1hdHVzaWFrXCIsXG4gICAgXCJNYXR1c3pha1wiLFxuICAgIFwiTWF0dXN6ZXdza2lcIixcbiAgICBcIk1hdHlzaWFrXCIsXG4gICAgXCJNYXp1clwiLFxuICAgIFwiTWF6dXJla1wiLFxuICAgIFwiTWF6dXJraWV3aWN6XCIsXG4gICAgXCJNYcSHa293aWFrXCIsXG4gICAgXCJNYcWCZWNraVwiLFxuICAgIFwiTWHFgmVrXCIsXG4gICAgXCJNYcWbbGFua2FcIixcbiAgICBcIk1pY2hhbGFrXCIsXG4gICAgXCJNaWNoYWxjenlrXCIsXG4gICAgXCJNaWNoYWxpa1wiLFxuICAgIFwiTWljaGFsc2tpXCIsXG4gICAgXCJNaWNoYcWCZWtcIixcbiAgICBcIk1pY2hhxYJvd3NraVwiLFxuICAgIFwiTWllbGN6YXJla1wiLFxuICAgIFwiTWllcnplamV3c2tpXCIsXG4gICAgXCJNaWthXCIsXG4gICAgXCJNaWtvxYJhamN6YWtcIixcbiAgICBcIk1pa2/FgmFqY3p5a1wiLFxuICAgIFwiTWlrdWxza2lcIixcbiAgICBcIk1pbGN6YXJla1wiLFxuICAgIFwiTWlsZXdza2lcIixcbiAgICBcIk1pbGxlclwiLFxuICAgIFwiTWlzaWFrXCIsXG4gICAgXCJNaXN6dGFsXCIsXG4gICAgXCJNacWba2lld2ljelwiLFxuICAgIFwiTW9kemVsZXdza2lcIixcbiAgICBcIk1vbGVuZGFcIixcbiAgICBcIk1vcmF3c2tpXCIsXG4gICAgXCJNb3R5a2FcIixcbiAgICBcIk1yb2N6ZWtcIixcbiAgICBcIk1yb2N6a293c2tpXCIsXG4gICAgXCJNcm96ZWtcIixcbiAgICBcIk1yw7N6XCIsXG4gICAgXCJNdWNoYVwiLFxuICAgIFwiTXVyYXdza2lcIixcbiAgICBcIk11c2lhxYJcIixcbiAgICBcIk11c3p5xYRza2lcIixcbiAgICBcIk3FgnluYXJjenlrXCIsXG4gICAgXCJOYXBpZXJhxYJhXCIsXG4gICAgXCJOYXdyb2NraVwiLFxuICAgIFwiTmF3cm90XCIsXG4gICAgXCJOaWVkemllbGFcIixcbiAgICBcIk5pZWR6aWVsc2tpXCIsXG4gICAgXCJOaWVkxbp3aWVja2lcIixcbiAgICBcIk5pZW1jenlrXCIsXG4gICAgXCJOaWVtaWVjXCIsXG4gICAgXCJOaWV3aWFkb21za2lcIixcbiAgICBcIk5vZ2FcIixcbiAgICBcIk5vd2Fja2lcIixcbiAgICBcIk5vd2FjenlrXCIsXG4gICAgXCJOb3dha1wiLFxuICAgIFwiTm93YWtvd3NraVwiLFxuICAgIFwiTm93aWNraVwiLFxuICAgIFwiTm93acWEc2tpXCIsXG4gICAgXCJPbGN6YWtcIixcbiAgICBcIk9sZWpuaWN6YWtcIixcbiAgICBcIk9sZWpuaWtcIixcbiAgICBcIk9sc3pld3NraVwiLFxuICAgIFwiT3J6ZWNob3dza2lcIixcbiAgICBcIk9yxYJvd3NraVwiLFxuICAgIFwiT3NpxYRza2lcIixcbiAgICBcIk9zc293c2tpXCIsXG4gICAgXCJPc3Ryb3dza2lcIixcbiAgICBcIk93Y3phcmVrXCIsXG4gICAgXCJQYWN6a293c2tpXCIsXG4gICAgXCJQYWrEhWtcIixcbiAgICBcIlBha3XFgmFcIixcbiAgICBcIlBhbHVjaFwiLFxuICAgIFwiUGFuZWtcIixcbiAgICBcIlBhcnR5a2FcIixcbiAgICBcIlBhc3Rlcm5ha1wiLFxuICAgIFwiUGFzemtvd3NraVwiLFxuICAgIFwiUGF3ZWxlY1wiLFxuICAgIFwiUGF3bGFrXCIsXG4gICAgXCJQYXdsaWNraVwiLFxuICAgIFwiUGF3bGlrXCIsXG4gICAgXCJQYXdsaWtvd3NraVwiLFxuICAgIFwiUGF3xYJvd3NraVwiLFxuICAgIFwiUGHFgmthXCIsXG4gICAgXCJQaWFzZWNraVwiLFxuICAgIFwiUGllY2hvdGFcIixcbiAgICBcIlBpZWthcnNraVwiLFxuICAgIFwiUGlldHJhc1wiLFxuICAgIFwiUGlldHJ1c3prYVwiLFxuICAgIFwiUGlldHJ6YWtcIixcbiAgICBcIlBpZXRyenlrXCIsXG4gICAgXCJQaWxhcnNraVwiLFxuICAgIFwiUGlsY2hcIixcbiAgICBcIlBpb3Ryb3dpY3pcIixcbiAgICBcIlBpb3Ryb3dza2lcIixcbiAgICBcIlBpd293YXJjenlrXCIsXG4gICAgXCJQacOzcmtvd3NraVwiLFxuICAgIFwiUGnEhXRla1wiLFxuICAgIFwiUGnEhXRrb3dza2lcIixcbiAgICBcIlBpxYJhdFwiLFxuICAgIFwiUGx1dGFcIixcbiAgICBcIlBvZGfDs3Jza2lcIixcbiAgICBcIlBvbGFrXCIsXG4gICAgXCJQb3DFgmF3c2tpXCIsXG4gICAgXCJQb3LEmWJza2lcIixcbiAgICBcIlByb2tvcFwiLFxuICAgIFwiUHJ1c1wiLFxuICAgIFwiUHJ6eWJ5bHNraVwiLFxuICAgIFwiUHJ6eWJ5c3pcIixcbiAgICBcIlByenliecWCXCIsXG4gICAgXCJQcnp5YnnFgmFcIixcbiAgICBcIlB0YWtcIixcbiAgICBcIlB1Y2hhbHNraVwiLFxuICAgIFwiUHl0ZWxcIixcbiAgICBcIlDFgm9ua2FcIixcbiAgICBcIlJhY3p5xYRza2lcIixcbiAgICBcIlJhZGVja2lcIixcbiAgICBcIlJhZG9tc2tpXCIsXG4gICAgXCJSYWtcIixcbiAgICBcIlJha293c2tpXCIsXG4gICAgXCJSYXRhamN6YWtcIixcbiAgICBcIlJvYmFrXCIsXG4gICAgXCJSb2dhbGFcIixcbiAgICBcIlJvZ2Fsc2tpXCIsXG4gICAgXCJSb2dvd3NraVwiLFxuICAgIFwiUm9qZWtcIixcbiAgICBcIlJvbWFub3dza2lcIixcbiAgICBcIlJvc2FcIixcbiAgICBcIlJvc2lha1wiLFxuICAgIFwiUm9zacWEc2tpXCIsXG4gICAgXCJSdWNpxYRza2lcIixcbiAgICBcIlJ1ZG5pY2tpXCIsXG4gICAgXCJSdWR6acWEc2tpXCIsXG4gICAgXCJSdWR6a2lcIixcbiAgICBcIlJ1c2luXCIsXG4gICAgXCJSdXRrb3dza2lcIixcbiAgICBcIlJ5YmFrXCIsXG4gICAgXCJSeWJhcmN6eWtcIixcbiAgICBcIlJ5Ymlja2lcIixcbiAgICBcIlJ6ZXBrYVwiLFxuICAgIFwiUsOzxbxhxYRza2lcIixcbiAgICBcIlLDs8W8eWNraVwiLFxuICAgIFwiU2Fkb3dza2lcIixcbiAgICBcIlNhd2lja2lcIixcbiAgICBcIlNlcmFmaW5cIixcbiAgICBcIlNpZWRsZWNraVwiLFxuICAgIFwiU2llbmtpZXdpY3pcIixcbiAgICBcIlNpZXJhZHpraVwiLFxuICAgIFwiU2lrb3JhXCIsXG4gICAgXCJTaWtvcnNraVwiLFxuICAgIFwiU2l0ZWtcIixcbiAgICBcIlNpd2VrXCIsXG4gICAgXCJTa2Fsc2tpXCIsXG4gICAgXCJTa2liYVwiLFxuICAgIFwiU2tpYmnFhHNraVwiLFxuICAgIFwiU2tvY3p5bGFzXCIsXG4gICAgXCJTa293cm9uXCIsXG4gICAgXCJTa293cm9uZWtcIixcbiAgICBcIlNrb3dyb8WEc2tpXCIsXG4gICAgXCJTa3J6eXBjemFrXCIsXG4gICAgXCJTa3J6eXBla1wiLFxuICAgIFwiU2vDs3JhXCIsXG4gICAgXCJTbW9sacWEc2tpXCIsXG4gICAgXCJTb2JjemFrXCIsXG4gICAgXCJTb2JjenlrXCIsXG4gICAgXCJTb2JpZXJhalwiLFxuICAgIFwiU29ib2xld3NraVwiLFxuICAgIFwiU29jaGFcIixcbiAgICBcIlNvY2hhY2tpXCIsXG4gICAgXCJTb2tvxYJvd3NraVwiLFxuICAgIFwiU29rw7PFglwiLFxuICAgIFwiU29zbm93c2tpXCIsXG4gICAgXCJTb3dhXCIsXG4gICAgXCJTb3dpxYRza2lcIixcbiAgICBcIlNvxYJ0eXNcIixcbiAgICBcIlNvxYJ0eXNpYWtcIixcbiAgICBcIlNyb2thXCIsXG4gICAgXCJTdGFjaG93aWFrXCIsXG4gICAgXCJTdGFjaG93aWN6XCIsXG4gICAgXCJTdGFjaHVyYVwiLFxuICAgIFwiU3RhY2h1cnNraVwiLFxuICAgIFwiU3RhbmVrXCIsXG4gICAgXCJTdGFuaXN6ZXdza2lcIixcbiAgICBcIlN0YW5pc8WCYXdza2lcIixcbiAgICBcIlN0YW5raWV3aWN6XCIsXG4gICAgXCJTdGFzaWFrXCIsXG4gICAgXCJTdGFzemV3c2tpXCIsXG4gICAgXCJTdGF3aWNraVwiLFxuICAgIFwiU3RlY1wiLFxuICAgIFwiU3RlZmFuaWFrXCIsXG4gICAgXCJTdGVmYcWEc2tpXCIsXG4gICAgXCJTdGVsbWFjaFwiLFxuICAgIFwiU3RvbGFyY3p5a1wiLFxuICAgIFwiU3RvbGFyc2tpXCIsXG4gICAgXCJTdHJ6ZWxjenlrXCIsXG4gICAgXCJTdHJ6ZWxlY2tpXCIsXG4gICAgXCJTdMSZcGllxYRcIixcbiAgICBcIlN0xJlwbmlha1wiLFxuICAgIFwiU3VybWFcIixcbiAgICBcIlN1c2tpXCIsXG4gICAgXCJTemFmcmHFhHNraVwiLFxuICAgIFwiU3phdGtvd3NraVwiLFxuICAgIFwiU3pjemVwYW5pYWtcIixcbiAgICBcIlN6Y3plcGFuaWtcIixcbiAgICBcIlN6Y3plcGHFhHNraVwiLFxuICAgIFwiU3pjemVyYmFcIixcbiAgICBcIlN6Y3plxZtuaWFrXCIsXG4gICAgXCJTemN6eWdpZcWCXCIsXG4gICAgXCJTemN6xJlzbmFcIixcbiAgICBcIlN6Y3rEmXNueVwiLFxuICAgIFwiU3plbMSFZ1wiLFxuICAgIFwiU3pld2N6eWtcIixcbiAgICBcIlN6b3N0YWtcIixcbiAgICBcIlN6dWxjXCIsXG4gICAgXCJTendhcmNcIixcbiAgICBcIlN6d2VkXCIsXG4gICAgXCJTenlkxYJvd3NraVwiLFxuICAgIFwiU3p5bWHFhHNraVwiLFxuICAgIFwiU3p5bWN6YWtcIixcbiAgICBcIlN6eW1jenlrXCIsXG4gICAgXCJTenlta293aWFrXCIsXG4gICAgXCJTenlzemthXCIsXG4gICAgXCJTxYJhd2nFhHNraVwiLFxuICAgIFwiU8WCb3dpa1wiLFxuICAgIFwiU8WCb3dpxYRza2lcIixcbiAgICBcIlRhcm5vd3NraVwiLFxuICAgIFwiVGthY3p5a1wiLFxuICAgIFwiVG9rYXJza2lcIixcbiAgICBcIlRvbWFsYVwiLFxuICAgIFwiVG9tYXN6ZXdza2lcIixcbiAgICBcIlRvbWN6YWtcIixcbiAgICBcIlRvbWN6eWtcIixcbiAgICBcIlRyYWN6XCIsXG4gICAgXCJUcm9qYW5vd3NraVwiLFxuICAgIFwiVHJ6Y2nFhHNraVwiLFxuICAgIFwiVHJ6ZWNpYWtcIixcbiAgICBcIlR1cmVrXCIsXG4gICAgXCJUd2FyZG93c2tpXCIsXG4gICAgXCJVcmJhblwiLFxuICAgIFwiVXJiYW5la1wiLFxuICAgIFwiVXJiYW5pYWtcIixcbiAgICBcIlVyYmFub3dpY3pcIixcbiAgICBcIlVyYmHFhGN6eWtcIixcbiAgICBcIlVyYmHFhHNraVwiLFxuICAgIFwiV2FsY3pha1wiLFxuICAgIFwiV2Fsa293aWFrXCIsXG4gICAgXCJXYXJjaG/FglwiLFxuICAgIFwiV2FzaWFrXCIsXG4gICAgXCJXYXNpbGV3c2tpXCIsXG4gICAgXCJXYXdyenluaWFrXCIsXG4gICAgXCJXZXNvxYJvd3NraVwiLFxuICAgIFwiV2llY3pvcmVrXCIsXG4gICAgXCJXaWVyemJpY2tpXCIsXG4gICAgXCJXaWxjemVrXCIsXG4gICAgXCJXaWxjennFhHNraVwiLFxuICAgIFwiV2lsa1wiLFxuICAgIFwiV2luaWFyc2tpXCIsXG4gICAgXCJXaXRjemFrXCIsXG4gICAgXCJXaXRla1wiLFxuICAgIFwiV2l0a293c2tpXCIsXG4gICAgXCJXacSFY2VrXCIsXG4gICAgXCJXacSZY2VrXCIsXG4gICAgXCJXacSZY2tvd3NraVwiLFxuICAgIFwiV2nFm25pZXdza2lcIixcbiAgICBcIldudWtcIixcbiAgICBcIldvamNpZWNob3dza2lcIixcbiAgICBcIldvanRhc1wiLFxuICAgIFwiV29qdGFzaWtcIixcbiAgICBcIldvanRjemFrXCIsXG4gICAgXCJXb2p0a293aWFrXCIsXG4gICAgXCJXb2xha1wiLFxuICAgIFwiV29sacWEc2tpXCIsXG4gICAgXCJXb2xueVwiLFxuICAgIFwiV29sc2tpXCIsXG4gICAgXCJXb8WbXCIsXG4gICAgXCJXb8W6bmlha1wiLFxuICAgIFwiV3JvbmFcIixcbiAgICBcIldyb8WEc2tpXCIsXG4gICAgXCJXcsOzYmVsXCIsXG4gICAgXCJXcsOzYmxld3NraVwiLFxuICAgIFwiV3lweWNoXCIsXG4gICAgXCJXeXNvY2tpXCIsXG4gICAgXCJXeXN6ecWEc2tpXCIsXG4gICAgXCJXw7NqY2lja2lcIixcbiAgICBcIlfDs2pjaWtcIixcbiAgICBcIlfDs2p0b3dpY3pcIixcbiAgICBcIlfEhXNpa1wiLFxuICAgIFwiV8SZZ3J6eW5cIixcbiAgICBcIlfFgm9kYXJjenlrXCIsXG4gICAgXCJXxYJvZGFyc2tpXCIsXG4gICAgXCJaYWJvcm93c2tpXCIsXG4gICAgXCJaYWLFgm9ja2lcIixcbiAgICBcIlphZ8OzcnNraVwiLFxuICAgIFwiWmFqxIVjXCIsXG4gICAgXCJaYWrEhWN6a293c2tpXCIsXG4gICAgXCJaYWtyemV3c2tpXCIsXG4gICAgXCJaYWxld3NraVwiLFxuICAgIFwiWmFyZW1iYVwiLFxuICAgIFwiWmFyenlja2lcIixcbiAgICBcIlphcsSZYmFcIixcbiAgICBcIlphd2FkYVwiLFxuICAgIFwiWmF3YWR6a2lcIixcbiAgICBcIlpkdW5la1wiLFxuICAgIFwiWmllbGnFhHNraVwiLFxuICAgIFwiWmllbG9ua2FcIixcbiAgICBcIlppw7PFgmtvd3NraVwiLFxuICAgIFwiWmnEmWJhXCIsXG4gICAgXCJaacSZdGVrXCIsXG4gICAgXCJad29sacWEc2tpXCIsXG4gICAgXCJaeWNoXCIsXG4gICAgXCJaeWdtdW50XCIsXG4gICAgXCLFgWFwacWEc2tpXCIsXG4gICAgXCLFgXVjemFrXCIsXG4gICAgXCLFgXVrYXNpZXdpY3pcIixcbiAgICBcIsWBdWthc2lrXCIsXG4gICAgXCLFgXVrYXN6ZXdza2lcIixcbiAgICBcIsWabGl3YVwiLFxuICAgIFwixZpsaXdpxYRza2lcIixcbiAgICBcIsWabHVzYXJjenlrXCIsXG4gICAgXCLFmndpZGVyc2tpXCIsXG4gICAgXCLFmndpZXJjennFhHNraVwiLFxuICAgIFwixZp3acSFdGVrXCIsXG4gICAgXCLFu2FrXCIsXG4gICAgXCLFu2Vicm93c2tpXCIsXG4gICAgXCLFu211ZGFcIixcbiAgICBcIsW7dWtcIixcbiAgICBcIsW7dWtvd3NraVwiLFxuICAgIFwixbt1cmF3c2tpXCIsXG4gICAgXCLFu3VyZWtcIixcbiAgICBcIsW7ecWCYVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlBhblwiLFxuICAgIFwiUGFuaVwiXG4gIF0sXG4gIFwidGl0bGVcIjoge1xuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIkxlYWRcIixcbiAgICAgIFwiU2VuaW9yXCIsXG4gICAgICBcIkRpcmVjdFwiLFxuICAgICAgXCJDb3Jwb3JhdGVcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJGdXR1cmVcIixcbiAgICAgIFwiUHJvZHVjdFwiLFxuICAgICAgXCJOYXRpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cmljdFwiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDdXN0b21lclwiLFxuICAgICAgXCJJbnZlc3RvclwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiTGVnYWN5XCIsXG4gICAgICBcIkZvcndhcmRcIixcbiAgICAgIFwiSW50ZXJuYWxcIixcbiAgICAgIFwiSHVtYW5cIixcbiAgICAgIFwiQ2hpZWZcIixcbiAgICAgIFwiUHJpbmNpcGFsXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1dGlvbnNcIixcbiAgICAgIFwiUHJvZ3JhbVwiLFxuICAgICAgXCJCcmFuZFwiLFxuICAgICAgXCJTZWN1cml0eVwiLFxuICAgICAgXCJSZXNlYXJjaFwiLFxuICAgICAgXCJNYXJrZXRpbmdcIixcbiAgICAgIFwiRGlyZWN0aXZlc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJJbnRlZ3JhdGlvblwiLFxuICAgICAgXCJGdW5jdGlvbmFsaXR5XCIsXG4gICAgICBcIlJlc3BvbnNlXCIsXG4gICAgICBcIlBhcmFkaWdtXCIsXG4gICAgICBcIlRhY3RpY3NcIixcbiAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgIFwiTWFya2V0c1wiLFxuICAgICAgXCJHcm91cFwiLFxuICAgICAgXCJEaXZpc2lvblwiLFxuICAgICAgXCJBcHBsaWNhdGlvbnNcIixcbiAgICAgIFwiT3B0aW1pemF0aW9uXCIsXG4gICAgICBcIk9wZXJhdGlvbnNcIixcbiAgICAgIFwiSW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tbXVuaWNhdGlvbnNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkJyYW5kaW5nXCIsXG4gICAgICBcIlF1YWxpdHlcIixcbiAgICAgIFwiQXNzdXJhbmNlXCIsXG4gICAgICBcIk1vYmlsaXR5XCIsXG4gICAgICBcIkFjY291bnRzXCIsXG4gICAgICBcIkRhdGFcIixcbiAgICAgIFwiQ3JlYXRpdmVcIixcbiAgICAgIFwiQ29uZmlndXJhdGlvblwiLFxuICAgICAgXCJBY2NvdW50YWJpbGl0eVwiLFxuICAgICAgXCJJbnRlcmFjdGlvbnNcIixcbiAgICAgIFwiRmFjdG9yc1wiLFxuICAgICAgXCJVc2FiaWxpdHlcIixcbiAgICAgIFwiTWV0cmljc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNzb2NpYXRlXCIsXG4gICAgICBcIkV4ZWN1dGl2ZVwiLFxuICAgICAgXCJMaWFzb25cIixcbiAgICAgIFwiT2ZmaWNlclwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkVuZ2luZWVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmF0b3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRvclwiLFxuICAgICAgXCJBcmNoaXRlY3RcIixcbiAgICAgIFwiQW5hbHlzdFwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJQbGFubmVyXCIsXG4gICAgICBcIk9yY2hlc3RyYXRvclwiLFxuICAgICAgXCJUZWNobmljaWFuXCIsXG4gICAgICBcIkRldmVsb3BlclwiLFxuICAgICAgXCJQcm9kdWNlclwiLFxuICAgICAgXCJDb25zdWx0YW50XCIsXG4gICAgICBcIkFzc2lzdGFudFwiLFxuICAgICAgXCJGYWNpbGl0YXRvclwiLFxuICAgICAgXCJBZ2VudFwiLFxuICAgICAgXCJSZXByZXNlbnRhdGl2ZVwiLFxuICAgICAgXCJTdHJhdGVnaXN0XCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5wbC5hZGRyZXNzID0ge1xuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pYVwiLFxuICAgIFwiQWxnaWVyaWFcIixcbiAgICBcIkFuZG9yYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbnRpZ3VhIGkgQmFyYnVkYVwiLFxuICAgIFwiQXJhYmlhIFNhdWR5anNrYVwiLFxuICAgIFwiQXJnZW50eW5hXCIsXG4gICAgXCJBcm1lbmlhXCIsXG4gICAgXCJBdXN0cmFsaWFcIixcbiAgICBcIkF1c3RyaWFcIixcbiAgICBcIkF6ZXJiZWpkxbxhblwiLFxuICAgIFwiQmFoYW15XCIsXG4gICAgXCJCYWhyYWpuXCIsXG4gICAgXCJCYW5nbGFkZXN6XCIsXG4gICAgXCJCYXJiYWRvc1wiLFxuICAgIFwiQmVsZ2lhXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJpYcWCb3J1xZtcIixcbiAgICBcIkJpcm1hXCIsXG4gICAgXCJCb2xpd2lhXCIsXG4gICAgXCJTdWNyZVwiLFxuICAgIFwiQm/Fm25pYSBpIEhlcmNlZ293aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQnJhenlsaWFcIixcbiAgICBcIkJydW5laVwiLFxuICAgIFwiQnXFgmdhcmlhXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNoaWxlXCIsXG4gICAgXCJDaGlueVwiLFxuICAgIFwiQ2hvcndhY2phXCIsXG4gICAgXCJDeXByXCIsXG4gICAgXCJDemFkXCIsXG4gICAgXCJDemFybm9nw7NyYVwiLFxuICAgIFwiQ3plY2h5XCIsXG4gICAgXCJEYW5pYVwiLFxuICAgIFwiRGVtb2tyYXR5Y3puYSBSZXB1Ymxpa2EgS29uZ2FcIixcbiAgICBcIkRvbWluaWthXCIsXG4gICAgXCJEb21pbmlrYW5hXCIsXG4gICAgXCJExbxpYnV0aVwiLFxuICAgIFwiRWdpcHRcIixcbiAgICBcIkVrd2Fkb3JcIixcbiAgICBcIkVyeXRyZWFcIixcbiAgICBcIkVzdG9uaWFcIixcbiAgICBcIkV0aW9waWFcIixcbiAgICBcIkZpZMW8aVwiLFxuICAgIFwiRmlsaXBpbnlcIixcbiAgICBcIkZpbmxhbmRpYVwiLFxuICAgIFwiRnJhbmNqYVwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2hhbmFcIixcbiAgICBcIkdyZWNqYVwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3J1emphXCIsXG4gICAgXCJHdWphbmFcIixcbiAgICBcIkd3YXRlbWFsYVwiLFxuICAgIFwiR3dpbmVhXCIsXG4gICAgXCJHd2luZWEgQmlzc2F1XCIsXG4gICAgXCJHd2luZWEgUsOzd25pa293YVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhpc3pwYW5pYVwiLFxuICAgIFwiSG9sYW5kaWFcIixcbiAgICBcIkhhZ2FcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJJbmRpZVwiLFxuICAgIFwiSW5kb25lemphXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJcmxhbmRpYVwiLFxuICAgIFwiSXNsYW5kaWFcIixcbiAgICBcIkl6cmFlbFwiLFxuICAgIFwiSmFtYWprYVwiLFxuICAgIFwiSmFwb25pYVwiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkpvcmRhbmlhXCIsXG4gICAgXCJLYW1ib2TFvGFcIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbmFkYVwiLFxuICAgIFwiS2F0YXJcIixcbiAgICBcIkthemFjaHN0YW5cIixcbiAgICBcIktlbmlhXCIsXG4gICAgXCJLaXJnaXN0YW5cIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLb2x1bWJpYVwiLFxuICAgIFwiS29tb3J5XCIsXG4gICAgXCJLb25nb1wiLFxuICAgIFwiS29yZWEgUG/FgnVkbmlvd2FcIixcbiAgICBcIktvcmVhIFDDs8WCbm9jbmFcIixcbiAgICBcIktvc3RhcnlrYVwiLFxuICAgIFwiS3ViYVwiLFxuICAgIFwiS3V3ZWp0XCIsXG4gICAgXCJMYW9zXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMaWJhblwiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGliaWFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdHdhXCIsXG4gICAgXCJMdWtzZW1idXJnXCIsXG4gICAgXCLFgW90d2FcIixcbiAgICBcIk1hY2Vkb25pYVwiLFxuICAgIFwiTWFkYWdhc2thclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxlZGl3eVwiLFxuICAgIFwiTWFsZXpqYVwiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hcm9rb1wiLFxuICAgIFwiTWF1cmV0YW5pYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNZWtzeWtcIixcbiAgICBcIk1pa3JvbmV6amFcIixcbiAgICBcIk1vxYJkYXdpYVwiLFxuICAgIFwiTW9uYWtvXCIsXG4gICAgXCJNb25nb2xpYVwiLFxuICAgIFwiTW96YW1iaWtcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmllbWN5XCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTmlrYXJhZ3VhXCIsXG4gICAgXCJOb3J3ZWdpYVwiLFxuICAgIFwiTm93YSBaZWxhbmRpYVwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlBhcHVhLU5vd2EgR3dpbmVhXCIsXG4gICAgXCJQYXJhZ3dhalwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiUG9sc2thXCIsXG4gICAgXCIzMjIgNTc1XCIsXG4gICAgXCJQb3J0dWdhbGlhXCIsXG4gICAgXCJSZXB1Ymxpa2EgUG/FgnVkbmlvd2VqIEFmcnlraVwiLFxuICAgIFwiUmVwdWJsaWthIMWacm9ka293b2FmcnlrYcWEc2thXCIsXG4gICAgXCJSZXB1Ymxpa2EgWmllbG9uZWdvIFByenlsxIVka2FcIixcbiAgICBcIlJvc2phXCIsXG4gICAgXCJSdW11bmlhXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIlNhaW50IEtpdHRzIGkgTmV2aXNcIixcbiAgICBcIlNhaW50IEx1Y2lhXCIsXG4gICAgXCJTYWludCBWaW5jZW50IGkgR3JlbmFkeW55XCIsXG4gICAgXCJTYWx3YWRvclwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNlcmJpYVwiLFxuICAgIFwiU2VzemVsZVwiLFxuICAgIFwiU2llcnJhIExlb25lXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU8WCb3dhY2phXCIsXG4gICAgXCJTxYJvd2VuaWFcIixcbiAgICBcIlNvbWFsaWFcIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3RhbnkgWmplZG5vY3pvbmVcIixcbiAgICBcIlN1YXppXCIsXG4gICAgXCJTdWRhblwiLFxuICAgIFwiU3VkYW4gUG/FgnVkbmlvd3lcIixcbiAgICBcIlN1cmluYW1cIixcbiAgICBcIlN5cmlhXCIsXG4gICAgXCJTendhamNhcmlhXCIsXG4gICAgXCJTendlY2phXCIsXG4gICAgXCJUYWTFvHlraXN0YW5cIixcbiAgICBcIlRhamxhbmRpYVwiLFxuICAgIFwiVGFuemFuaWFcIixcbiAgICBcIlRpbW9yIFdzY2hvZG5pXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJ5bmlkYWQgaSBUb2JhZ29cIixcbiAgICBcIlR1bmV6amFcIixcbiAgICBcIlR1cmNqYVwiLFxuICAgIFwiVHVya21lbmlzdGFuXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIkZ1bmFmdXRpXCIsXG4gICAgXCJVZ2FuZGFcIixcbiAgICBcIlVrcmFpbmFcIixcbiAgICBcIlVydWd3YWpcIixcbiAgICAyMDA4LFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiV2F0eWthblwiLFxuICAgIFwiV2VuZXp1ZWxhXCIsXG4gICAgXCJXxJlncnlcIixcbiAgICBcIldpZWxrYSBCcnl0YW5pYVwiLFxuICAgIFwiV2lldG5hbVwiLFxuICAgIFwiV8WCb2NoeVwiLFxuICAgIFwiV3licnplxbxlIEtvxZtjaSBTxYJvbmlvd2VqXCIsXG4gICAgXCJXeXNweSBNYXJzaGFsbGFcIixcbiAgICBcIld5c3B5IFNhbG9tb25hXCIsXG4gICAgXCJXeXNweSDFmndpxJl0ZWdvIFRvbWFzemEgaSBLc2nEhcW8xJljYVwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiWmplZG5vY3pvbmUgRW1pcmF0eSBBcmFic2tpZVwiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwidWwuXCIsXG4gICAgXCJhbC5cIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJTdWl0ZSAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjLSMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiRG9sbm/Fm2zEhXNraWVcIixcbiAgICBcIkt1amF3c2tvLXBvbW9yc2tpZVwiLFxuICAgIFwiTHViZWxza2llXCIsXG4gICAgXCJMdWJ1c2tpZVwiLFxuICAgIFwixYHDs2R6a2llXCIsXG4gICAgXCJNYcWCb3BvbHNraWVcIixcbiAgICBcIk1hem93aWVja2llXCIsXG4gICAgXCJPcG9sc2tpZVwiLFxuICAgIFwiUG9ka2FycGFja2llXCIsXG4gICAgXCJQb2RsYXNraWVcIixcbiAgICBcIlBvbW9yc2tpZVwiLFxuICAgIFwixZpsxIVza2llXCIsXG4gICAgXCLFmndpxJl0b2tyenlza2llXCIsXG4gICAgXCJXYXJtacWEc2tvLW1henVyc2tpZVwiLFxuICAgIFwiV2llbGtvcG9sc2tpZVwiLFxuICAgIFwiWmFjaG9kbmlvcG9tb3Jza2llXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkTFmlwiLFxuICAgIFwiS1BcIixcbiAgICBcIkxCXCIsXG4gICAgXCJMU1wiLFxuICAgIFwixYFEXCIsXG4gICAgXCJNUFwiLFxuICAgIFwiTVpcIixcbiAgICBcIk9QXCIsXG4gICAgXCJQS1wiLFxuICAgIFwiUExcIixcbiAgICBcIlBNXCIsXG4gICAgXCLFmkxcIixcbiAgICBcIsWaS1wiLFxuICAgIFwiV01cIixcbiAgICBcIldQXCIsXG4gICAgXCJaUFwiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIkFsZWtzYW5kcsOzdyBLdWphd3NraVwiLFxuICAgIFwiQWxla3NhbmRyw7N3IMWBw7NkemtpXCIsXG4gICAgXCJBbHdlcm5pYVwiLFxuICAgIFwiQW5kcnljaMOzd1wiLFxuICAgIFwiQW5ub3BvbFwiLFxuICAgIFwiQXVndXN0w7N3XCIsXG4gICAgXCJCYWJpbW9zdFwiLFxuICAgIFwiQmFib3LDs3dcIixcbiAgICBcIkJhcmFuw7N3IFNhbmRvbWllcnNraVwiLFxuICAgIFwiQmFyY2luXCIsXG4gICAgXCJCYXJjemV3b1wiLFxuICAgIFwiQmFyZG9cIixcbiAgICBcIkJhcmxpbmVrXCIsXG4gICAgXCJCYXJ0b3N6eWNlXCIsXG4gICAgXCJCYXJ3aWNlXCIsXG4gICAgXCJCZcWCY2hhdMOzd1wiLFxuICAgIFwiQmXFgsW8eWNlXCIsXG4gICAgXCJCxJlkemluXCIsXG4gICAgXCJCaWHFgmFcIixcbiAgICBcIkJpYcWCYSBQaXNrYVwiLFxuICAgIFwiQmlhxYJhIFBvZGxhc2thXCIsXG4gICAgXCJCaWHFgmEgUmF3c2thXCIsXG4gICAgXCJCaWHFgm9icnplZ2lcIixcbiAgICBcIkJpYcWCb2dhcmRcIixcbiAgICBcIkJpYcWCeSBCw7NyXCIsXG4gICAgXCJCaWHFgnlzdG9rXCIsXG4gICAgXCJCaWVjelwiLFxuICAgIFwiQmllbGF3YVwiLFxuICAgIFwiQmllbHNrIFBvZGxhc2tpXCIsXG4gICAgXCJCaWVsc2tvLUJpYcWCYVwiLFxuICAgIFwiQmllcnXFhFwiLFxuICAgIFwiQmllcnV0w7N3XCIsXG4gICAgXCJCaWXFvHXFhFwiLFxuICAgIFwiQmnFgmdvcmFqXCIsXG4gICAgXCJCaXNrdXBpZWNcIixcbiAgICBcIkJpc3p0eW5la1wiLFxuICAgIFwiQmxhY2hvd25pYVwiLFxuICAgIFwiQsWCYXN6a2lcIixcbiAgICBcIkLFgmHFvG93YVwiLFxuICAgIFwiQsWCb25pZVwiLFxuICAgIFwiQm9ib2xpY2VcIixcbiAgICBcIkJvYm93YVwiLFxuICAgIFwiQm9jaG5pYVwiLFxuICAgIFwiQm9kemVudHluXCIsXG4gICAgXCJCb2dhdHluaWFcIixcbiAgICBcIkJvZ3VjaHdhxYJhXCIsXG4gICAgXCJCb2d1c3rDs3ctR29yY2VcIixcbiAgICBcIkJvamFub3dvXCIsXG4gICAgXCJCb2xlc8WCYXdpZWNcIixcbiAgICBcIkJvbGvDs3dcIixcbiAgICBcIkJvcmVrIFdpZWxrb3BvbHNraVwiLFxuICAgIFwiQm9ybmUgU3VsaW5vd29cIixcbiAgICBcIkJyYW5pZXdvXCIsXG4gICAgXCJCcmHFhHNrXCIsXG4gICAgXCJCcm9kbmljYVwiLFxuICAgIFwiQnJva1wiLFxuICAgIFwiQnJ1c3lcIixcbiAgICBcIkJyd2luw7N3XCIsXG4gICAgXCJCcnplZ1wiLFxuICAgIFwiQnJ6ZWcgRG9sbnlcIixcbiAgICBcIkJyemVza29cIixcbiAgICBcIkJyemVzemN6ZVwiLFxuICAgIFwiQnJ6ZcWbxIcgS3VqYXdza2lcIixcbiAgICBcIkJyemV6aW55XCIsXG4gICAgXCJCcnpvc3Rla1wiLFxuICAgIFwiQnJ6b3rDs3dcIixcbiAgICBcIkJ1a1wiLFxuICAgIFwiQnVrb3dub1wiLFxuICAgIFwiQnVza28tWmRyw7NqXCIsXG4gICAgXCJCeWNoYXdhXCIsXG4gICAgXCJCeWN6eW5hXCIsXG4gICAgXCJCeWRnb3N6Y3pcIixcbiAgICBcIkJ5c3RyenljYSBLxYJvZHprYVwiLFxuICAgIFwiQnl0b21cIixcbiAgICBcIkJ5dG9tIE9kcnphxYRza2lcIixcbiAgICBcIkJ5dMOzd1wiLFxuICAgIFwiQ2VkeW5pYVwiLFxuICAgIFwiQ2hlxYJtXCIsXG4gICAgXCJDaGXFgm1la1wiLFxuICAgIFwiQ2hlxYJtbm9cIixcbiAgICBcIkNoZcWCbcW8YVwiLFxuICAgIFwiQ2jEmWNpbnlcIixcbiAgICBcIkNobWllbG5pa1wiLFxuICAgIFwiQ2hvY2lhbsOzd1wiLFxuICAgIFwiQ2hvY2l3ZWxcIixcbiAgICBcIkNob2RlY3pcIixcbiAgICBcIkNob2R6aWXFvFwiLFxuICAgIFwiQ2hvam5hXCIsXG4gICAgXCJDaG9qbmljZVwiLFxuICAgIFwiQ2hvam7Ds3dcIixcbiAgICBcIkNob3Jvc3pjelwiLFxuICAgIFwiQ2hvcnplbGVcIixcbiAgICBcIkNob3J6w7N3XCIsXG4gICAgXCJDaG9zemN6bm9cIixcbiAgICBcIkNocnphbsOzd1wiLFxuICAgIFwiQ2llY2hhbm93aWVjXCIsXG4gICAgXCJDaWVjaGFuw7N3XCIsXG4gICAgXCJDaWVjaG9jaW5la1wiLFxuICAgIFwiQ2llc3phbsOzd1wiLFxuICAgIFwiQ2llc3p5blwiLFxuICAgIFwiQ2nEmcW8a293aWNlXCIsXG4gICAgXCJDeWJpbmthXCIsXG4gICAgXCJDemFwbGluZWtcIixcbiAgICBcIkN6YXJuYSBCaWHFgm9zdG9ja2FcIixcbiAgICBcIkN6YXJuYSBXb2RhXCIsXG4gICAgXCJDemFybmVcIixcbiAgICBcIkN6YXJua8Ozd1wiLFxuICAgIFwiQ3pjaMOzd1wiLFxuICAgIFwiQ3plY2hvd2ljZS1EemllZHppY2VcIixcbiAgICBcIkN6ZWxhZMW6XCIsXG4gICAgXCJDemVtcGnFhFwiLFxuICAgIFwiQ3plcm5pZWpld29cIixcbiAgICBcIkN6ZXJza1wiLFxuICAgIFwiQ3plcndpZcWEc2tcIixcbiAgICBcIkN6ZXJ3aW9ua2EtTGVzemN6eW55XCIsXG4gICAgXCJDesSZc3RvY2hvd2FcIixcbiAgICBcIkN6xYJvcGFcIixcbiAgICBcIkN6xYJ1Y2jDs3dcIixcbiAgICBcIkN6ecW8ZXdcIixcbiAgICBcIsSGbWllbMOzd1wiLFxuICAgIFwiRGFsZXN6eWNlXCIsXG4gICAgXCJEYXLFgm93b1wiLFxuICAgIFwiRMSFYmllXCIsXG4gICAgXCJExIVicm93YSBCaWHFgm9zdG9ja2FcIixcbiAgICBcIkTEhWJyb3dhIEfDs3JuaWN6YVwiLFxuICAgIFwiRMSFYnJvd2EgVGFybm93c2thXCIsXG4gICAgXCJEZWJyem5vXCIsXG4gICAgXCJExJliaWNhXCIsXG4gICAgXCJExJlibGluXCIsXG4gICAgXCJExJlibm9cIixcbiAgICBcIkRvYmN6eWNlXCIsXG4gICAgXCJEb2JpZWduaWV3XCIsXG4gICAgXCJEb2JyYSAocG93aWF0IMWCb2Jlc2tpKVwiLFxuICAgIFwiRG9icmEgKHBvd2lhdCB0dXJlY2tpKVwiLFxuICAgIFwiRG9icmUgTWlhc3RvXCIsXG4gICAgXCJEb2Jyb2R6aWXFhFwiLFxuICAgIFwiRG9icnphbnlcIixcbiAgICBcIkRvYnJ6ecWEIG5hZCBXaXPFgsSFXCIsXG4gICAgXCJEb2xza1wiLFxuICAgIFwiRHJhd25vXCIsXG4gICAgXCJEcmF3c2tvIFBvbW9yc2tpZVwiLFxuICAgIFwiRHJlemRlbmtvXCIsXG4gICAgXCJEcm9iaW5cIixcbiAgICBcIkRyb2hpY3p5blwiLFxuICAgIFwiRHJ6ZXdpY2FcIixcbiAgICBcIkR1a2xhXCIsXG4gICAgXCJEdXN6bmlraS1aZHLDs2pcIixcbiAgICBcIkR5bsOzd1wiLFxuICAgIFwiRHppYcWCZG93b1wiLFxuICAgIFwiRHppYcWCb3N6eWNlXCIsXG4gICAgXCJEemlhxYJvc3p5blwiLFxuICAgIFwiRHppZXJ6Z2/FhFwiLFxuICAgIFwiRHppZXLFvG9uacOzd1wiLFxuICAgIFwiRHppd27Ds3dcIixcbiAgICBcIkVsYmzEhWdcIixcbiAgICBcIkXFgmtcIixcbiAgICBcIkZyYW1wb2xcIixcbiAgICBcIkZyb21ib3JrXCIsXG4gICAgXCJHYXJ3b2xpblwiLFxuICAgIFwiR8SFYmluXCIsXG4gICAgXCJHZGHFhHNrXCIsXG4gICAgXCJHZHluaWFcIixcbiAgICBcIkdpxbx5Y2tvXCIsXG4gICAgXCJHbGlub2plY2tcIixcbiAgICBcIkdsaXdpY2VcIixcbiAgICBcIkfFgm9nw7N3XCIsXG4gICAgXCJHxYJvZ8OzdyBNYcWCb3BvbHNraVwiLFxuICAgIFwiR8WCb2fDs3dla1wiLFxuICAgIFwiR8WCb3dub1wiLFxuICAgIFwiR8WCdWJjenljZVwiLFxuICAgIFwiR8WCdWNob8WCYXp5XCIsXG4gICAgXCJHxYJ1c3p5Y2FcIixcbiAgICBcIkduaWV3XCIsXG4gICAgXCJHbmlld2tvd29cIixcbiAgICBcIkduaWV6bm9cIixcbiAgICBcIkdvZ29saW5cIixcbiAgICBcIkdvbGN6ZXdvXCIsXG4gICAgXCJHb2xlbmnDs3dcIixcbiAgICBcIkdvbGluYVwiLFxuICAgIFwiR29sdWItRG9icnp5xYRcIixcbiAgICBcIkdvxYJhxYRjelwiLFxuICAgIFwiR2/FgmRhcFwiLFxuICAgIFwiR29uacSFZHpcIixcbiAgICBcIkdvcmxpY2VcIixcbiAgICBcIkdvcnrDs3cgxZpsxIVza2lcIixcbiAgICBcIkdvcnrDs3cgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJHb3N0eW5pblwiLFxuICAgIFwiR29zdHnFhFwiLFxuICAgIFwiR2/Fm2Npbm9cIixcbiAgICBcIkdvemRuaWNhXCIsXG4gICAgXCJHw7NyYVwiLFxuICAgIFwiR8OzcmEgS2Fsd2FyaWFcIixcbiAgICBcIkfDs3Jvd28gScWCYXdlY2tpZVwiLFxuICAgIFwiR8Ozcnpub1wiLFxuICAgIFwiR3JhYsOzdyBuYWQgUHJvc27EhVwiLFxuICAgIFwiR3JhamV3b1wiLFxuICAgIFwiR3JvZGvDs3dcIixcbiAgICBcIkdyb2R6aXNrIE1hem93aWVja2lcIixcbiAgICBcIkdyb2R6aXNrIFdpZWxrb3BvbHNraVwiLFxuICAgIFwiR3LDs2plY1wiLFxuICAgIFwiR3J1ZHppxIVkelwiLFxuICAgIFwiR3J5YsOzd1wiLFxuICAgIFwiR3J5ZmljZVwiLFxuICAgIFwiR3J5Zmlub1wiLFxuICAgIFwiR3J5ZsOzdyDFmmzEhXNraVwiLFxuICAgIFwiR3ViaW5cIixcbiAgICBcIkhham7Ds3drYVwiLFxuICAgIFwiSGFsaW7Ds3dcIixcbiAgICBcIkhlbFwiLFxuICAgIFwiSHJ1Ymllc3rDs3dcIixcbiAgICBcIknFgmF3YVwiLFxuICAgIFwiScWCb3dhXCIsXG4gICAgXCJJxYLFvGFcIixcbiAgICBcIkltaWVsaW5cIixcbiAgICBcIklub3dyb2PFgmF3XCIsXG4gICAgXCJJxYRza29cIixcbiAgICBcIkl3b25pY3otWmRyw7NqXCIsXG4gICAgXCJJemJpY2EgS3VqYXdza2FcIixcbiAgICBcIkphYsWCb25vd28gUG9tb3Jza2llXCIsXG4gICAgXCJKYW5pa293b1wiLFxuICAgIFwiSmFub3dpZWMgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJKYW7Ds3cgTHViZWxza2lcIixcbiAgICBcIkphcm9jaW5cIixcbiAgICBcIkphcm9zxYJhd1wiLFxuICAgIFwiSmFzaWXFhFwiLFxuICAgIFwiSmFzxYJvXCIsXG4gICAgXCJKYXN0YXJuaWFcIixcbiAgICBcIkphc3Ryb3dpZVwiLFxuICAgIFwiSmFzdHJ6xJliaWUtWmRyw7NqXCIsXG4gICAgXCJKYXdvclwiLFxuICAgIFwiSmF3b3J6bm9cIixcbiAgICBcIkphd29yenluYSDFmmzEhXNrYVwiLFxuICAgIFwiSmVkbGljemVcIixcbiAgICBcIkplZGxpbmEtWmRyw7NqXCIsXG4gICAgXCJKZWR3YWJuZVwiLFxuICAgIFwiSmVsY3otTGFza293aWNlXCIsXG4gICAgXCJKZWxlbmlhIEfDs3JhXCIsXG4gICAgXCJKZXppb3JhbnlcIixcbiAgICBcIkrEmWRyemVqw7N3XCIsXG4gICAgXCJKb3JkYW7Ds3dcIixcbiAgICBcIkrDs3plZsOzdyAocG93aWF0IGJpxYJnb3JhanNraSlcIixcbiAgICBcIkrDs3plZsOzdyAocG93aWF0IG90d29ja2kpXCIsXG4gICAgXCJKdXRyb3NpblwiLFxuICAgIFwiS2FsZXR5XCIsXG4gICAgXCJLYWxpc3pcIixcbiAgICBcIkthbGlzeiBQb21vcnNraVwiLFxuICAgIFwiS2Fsd2FyaWEgWmVicnp5ZG93c2thXCIsXG4gICAgXCJLYcWCdXN6eW5cIixcbiAgICBcIkthbWllbm5hIEfDs3JhXCIsXG4gICAgXCJLYW1pZcWEIEtyYWplxYRza2lcIixcbiAgICBcIkthbWllxYQgUG9tb3Jza2lcIixcbiAgICBcIkthbWllxYRza1wiLFxuICAgIFwiS2HFhGN6dWdhXCIsXG4gICAgXCJLYXJjemV3XCIsXG4gICAgXCJLYXJnb3dhXCIsXG4gICAgXCJLYXJsaW5vXCIsXG4gICAgXCJLYXJwYWN6XCIsXG4gICAgXCJLYXJ0dXp5XCIsXG4gICAgXCJLYXRvd2ljZVwiLFxuICAgIFwiS2F6aW1pZXJ6IERvbG55XCIsXG4gICAgXCJLYXppbWllcnphIFdpZWxrYVwiLFxuICAgIFwiS8SFdHkgV3JvY8WCYXdza2llXCIsXG4gICAgXCJLY3luaWFcIixcbiAgICBcIkvEmWR6aWVyenluLUtvxbpsZVwiLFxuICAgIFwiS8SZcGljZVwiLFxuICAgIFwiS8SZcG5vXCIsXG4gICAgXCJLxJl0cnp5blwiLFxuICAgIFwiS8SZdHlcIixcbiAgICBcIktpZWxjZVwiLFxuICAgIFwiS2lldHJ6XCIsXG4gICAgXCJLaXNpZWxpY2VcIixcbiAgICBcIktsZWN6ZXdcIixcbiAgICBcIktsZXN6Y3plbGVcIixcbiAgICBcIktsdWN6Ym9ya1wiLFxuICAgIFwiS8WCZWNrb1wiLFxuICAgIFwiS8WCb2J1Y2tcIixcbiAgICBcIkvFgm9kYXdhXCIsXG4gICAgXCJLxYJvZHprb1wiLFxuICAgIFwiS251csOzd1wiLFxuICAgIFwiS255c3p5blwiLFxuICAgIFwiS29ieWxpblwiLFxuICAgIFwiS29iecWCa2FcIixcbiAgICBcIktvY2tcIixcbiAgICBcIktvbGJ1c3pvd2FcIixcbiAgICBcIktvbG5vXCIsXG4gICAgXCJLb2xvbm93c2tpZVwiLFxuICAgIFwiS29sdXN6a2lcIixcbiAgICBcIktvxYJhY3p5Y2VcIixcbiAgICBcIktvxYJvXCIsXG4gICAgXCJLb8WCb2JyemVnXCIsXG4gICAgXCJLb25pZWNwb2xcIixcbiAgICBcIktvbmluXCIsXG4gICAgXCJLb25zdGFuY2luLUplemlvcm5hXCIsXG4gICAgXCJLb25zdGFudHluw7N3IMWBw7NkemtpXCIsXG4gICAgXCJLb8WEc2tpZVwiLFxuICAgIFwiS29wcnp5d25pY2FcIixcbiAgICBcIktvcmZhbnTDs3dcIixcbiAgICBcIktvcm9ub3dvXCIsXG4gICAgXCJLb3JzemVcIixcbiAgICBcIktvc8OzdyBMYWNraVwiLFxuICAgIFwiS29zdHJ6eW5cIixcbiAgICBcIktvc3RyenluIG5hZCBPZHLEhVwiLFxuICAgIFwiS29zemFsaW5cIixcbiAgICBcIktvxZtjaWFuXCIsXG4gICAgXCJLb8WbY2llcnp5bmFcIixcbiAgICBcIktvd2FsXCIsXG4gICAgXCJLb3dhbGV3byBQb21vcnNraWVcIixcbiAgICBcIktvd2FyeVwiLFxuICAgIFwiS296aWVnxYJvd3lcIixcbiAgICBcIktvemllbmljZVwiLFxuICAgIFwiS2/Fum1pbiBXaWVsa29wb2xza2lcIixcbiAgICBcIktvxbx1Y2jDs3dcIixcbiAgICBcIkvDs3JuaWtcIixcbiAgICBcIktyYWplbmthXCIsXG4gICAgXCJLcmFrw7N3XCIsXG4gICAgXCJLcmFwa293aWNlXCIsXG4gICAgXCJLcmFzbm9icsOzZFwiLFxuICAgIFwiS3Jhc255c3Rhd1wiLFxuICAgIFwiS3JhxZtuaWtcIixcbiAgICBcIktyb2JpYVwiLFxuICAgIFwiS3Jvc25vXCIsXG4gICAgXCJLcm9zbm8gT2RyemHFhHNraWVcIixcbiAgICBcIktyb8Wbbmlld2ljZVwiLFxuICAgIFwiS3JvdG9zenluXCIsXG4gICAgXCJLcnVzendpY2FcIixcbiAgICBcIktyeW5pY2EgTW9yc2thXCIsXG4gICAgXCJLcnluaWNhLVpkcsOzalwiLFxuICAgIFwiS3J5bmtpXCIsXG4gICAgXCJLcnphbm93aWNlXCIsXG4gICAgXCJLcnplcGljZVwiLFxuICAgIFwiS3J6ZXN6b3dpY2VcIixcbiAgICBcIktyenl3acWEXCIsXG4gICAgXCJLcnp5xbwgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJLc2nEhcW8IFdpZWxrb3BvbHNraVwiLFxuICAgIFwiS3Vkb3dhLVpkcsOzalwiLFxuICAgIFwiS3Vuw7N3XCIsXG4gICAgXCJLdXRub1wiLFxuICAgIFwiS3XFum5pYSBSYWNpYm9yc2thXCIsXG4gICAgXCJLd2lkenluXCIsXG4gICAgXCJMxIVkZWstWmRyw7NqXCIsXG4gICAgXCJMZWdpb25vd29cIixcbiAgICBcIkxlZ25pY2FcIixcbiAgICBcIkxlc2tvXCIsXG4gICAgXCJMZXN6bm9cIixcbiAgICBcIkxlxZtuYVwiLFxuICAgIFwiTGXFm25pY2FcIixcbiAgICBcIkxld2luIEJyemVza2lcIixcbiAgICBcIkxlxbxhanNrXCIsXG4gICAgXCJMxJlib3JrXCIsXG4gICAgXCJMxJlkemlueVwiLFxuICAgIFwiTGliacSFxbxcIixcbiAgICBcIkxpZHpiYXJrXCIsXG4gICAgXCJMaWR6YmFyayBXYXJtacWEc2tpXCIsXG4gICAgXCJMaW1hbm93YVwiLFxuICAgIFwiTGlwaWFueVwiLFxuICAgIFwiTGlwbm9cIixcbiAgICBcIkxpcHNrXCIsXG4gICAgXCJMaXBza29cIixcbiAgICBcIkx1YmFjesOzd1wiLFxuICAgIFwiTHViYcWEXCIsXG4gICAgXCJMdWJhcnTDs3dcIixcbiAgICBcIkx1YmF3YVwiLFxuICAgIFwiTHViYXdrYVwiLFxuICAgIFwiTHViaWXFhCBLdWphd3NraVwiLFxuICAgIFwiTHViaW5cIixcbiAgICBcIkx1YmxpblwiLFxuICAgIFwiTHVibGluaWVjXCIsXG4gICAgXCJMdWJuaWV3aWNlXCIsXG4gICAgXCJMdWJvbWllcnpcIixcbiAgICBcIkx1Ym/FhFwiLFxuICAgIFwiTHVicmFuaWVjXCIsXG4gICAgXCJMdWJza29cIixcbiAgICBcIkx3w7N3ZWtcIixcbiAgICBcIkx3w7N3ZWsgxZpsxIVza2lcIixcbiAgICBcIsWBYWJpc3p5blwiLFxuICAgIFwixYFhxYRjdXRcIixcbiAgICBcIsWBYXB5XCIsXG4gICAgXCLFgWFzaW5cIixcbiAgICBcIsWBYXNrXCIsXG4gICAgXCLFgWFza2FyemV3XCIsXG4gICAgXCLFgWFzemN6w7N3XCIsXG4gICAgXCLFgWF6aXNrYSBHw7NybmVcIixcbiAgICBcIsWBYXp5XCIsXG4gICAgXCLFgWViYVwiLFxuICAgIFwixYHEmWN6bmFcIixcbiAgICBcIsWBxJljenljYVwiLFxuICAgIFwixYHEmWtuaWNhXCIsXG4gICAgXCLFgW9iZXpcIixcbiAgICBcIsWBb2LFvGVuaWNhXCIsXG4gICAgXCLFgW9jaMOzd1wiLFxuICAgIFwixYFvbWlhbmtpXCIsXG4gICAgXCLFgW9txbxhXCIsXG4gICAgXCLFgW9zaWNlXCIsXG4gICAgXCLFgW93aWN6XCIsXG4gICAgXCLFgcOzZMW6XCIsXG4gICAgXCLFgXVrw7N3XCIsXG4gICAgXCJNYWvDs3cgTWF6b3dpZWNraVwiLFxuICAgIFwiTWFrw7N3IFBvZGhhbGHFhHNraVwiLFxuICAgIFwiTWFsYm9ya1wiLFxuICAgIFwiTWHFgm9nb3N6Y3pcIixcbiAgICBcIk1hxYJvbWljZVwiLFxuICAgIFwiTWFyZ29uaW5cIixcbiAgICBcIk1hcmtpXCIsXG4gICAgXCJNYXN6ZXdvXCIsXG4gICAgXCJNaWFzdGVjemtvIMWabMSFc2tpZVwiLFxuICAgIFwiTWlhc3Rrb1wiLFxuICAgIFwiTWljaGHFgm93b1wiLFxuICAgIFwiTWllY2jDs3dcIixcbiAgICBcIk1pZWpza2EgR8OzcmthXCIsXG4gICAgXCJNaWVsZWNcIixcbiAgICBcIk1pZXJvc3rDs3dcIixcbiAgICBcIk1pZXN6a293aWNlXCIsXG4gICAgXCJNacSZZHp5YsOzcnpcIixcbiAgICBcIk1pxJlkenljaMOzZFwiLFxuICAgIFwiTWnEmWR6eWxlc2llXCIsXG4gICAgXCJNacSZZHp5cnplYyBQb2RsYXNraVwiLFxuICAgIFwiTWnEmWR6eXJ6ZWN6XCIsXG4gICAgXCJNacSZZHp5emRyb2plXCIsXG4gICAgXCJNaWtvxYJhamtpXCIsXG4gICAgXCJNaWtvxYLDs3dcIixcbiAgICBcIk1pa3N0YXRcIixcbiAgICBcIk1pbGFuw7N3ZWtcIixcbiAgICBcIk1pbGljelwiLFxuICAgIFwiTWnFgmFrb3dvXCIsXG4gICAgXCJNacWCb23FgnluXCIsXG4gICAgXCJNacWCb3PFgmF3XCIsXG4gICAgXCJNacWEc2sgTWF6b3dpZWNraVwiLFxuICAgIFwiTWlyb3PFgmF3aWVjXCIsXG4gICAgXCJNaXJza1wiLFxuICAgIFwiTcWCYXdhXCIsXG4gICAgXCJNxYJ5bmFyeVwiLFxuICAgIFwiTW9naWVsbmljYVwiLFxuICAgIFwiTW9naWxub1wiLFxuICAgIFwiTW/FhGtpXCIsXG4gICAgXCJNb3LEhWdcIixcbiAgICBcIk1vcmR5XCIsXG4gICAgXCJNb3J5xYRcIixcbiAgICBcIk1vc2luYVwiLFxuICAgIFwiTXLEhWdvd29cIixcbiAgICBcIk1yb2N6YVwiLFxuICAgIFwiTXN6YW5hIERvbG5hXCIsXG4gICAgXCJNc3pjem9uw7N3XCIsXG4gICAgXCJNdXJvd2FuYSBHb8WbbGluYVwiLFxuICAgIFwiTXVzenluYVwiLFxuICAgIFwiTXlzxYJvd2ljZVwiLFxuICAgIFwiTXlzemvDs3dcIixcbiAgICBcIk15c3p5bmllY1wiLFxuICAgIFwiTXnFm2xlbmljZVwiLFxuICAgIFwiTXnFm2xpYsOzcnpcIixcbiAgICBcIk5ha8WCbyBuYWQgTm90ZWNpxIVcIixcbiAgICBcIk5hxYLEmWN6w7N3XCIsXG4gICAgXCJOYW15c8WCw7N3XCIsXG4gICAgXCJOYXJvbFwiLFxuICAgIFwiTmFzaWVsc2tcIixcbiAgICBcIk5la2xhXCIsXG4gICAgXCJOaWR6aWNhXCIsXG4gICAgXCJOaWVtY3phXCIsXG4gICAgXCJOaWVtb2RsaW5cIixcbiAgICBcIk5pZXBvxYJvbWljZVwiLFxuICAgIFwiTmllc3phd2FcIixcbiAgICBcIk5pc2tvXCIsXG4gICAgXCJOb3dhIETEmWJhXCIsXG4gICAgXCJOb3dhIFJ1ZGFcIixcbiAgICBcIk5vd2EgU2FyenluYVwiLFxuICAgIFwiTm93YSBTw7NsXCIsXG4gICAgXCJOb3dlXCIsXG4gICAgXCJOb3dlIEJyemVza29cIixcbiAgICBcIk5vd2UgTWlhc3RlY3prb1wiLFxuICAgIFwiTm93ZSBNaWFzdG8gTHViYXdza2llXCIsXG4gICAgXCJOb3dlIE1pYXN0byBuYWQgUGlsaWPEhVwiLFxuICAgIFwiTm93ZSBTa2FsbWllcnp5Y2VcIixcbiAgICBcIk5vd2UgV2FycG5vXCIsXG4gICAgXCJOb3dvZ2FyZFwiLFxuICAgIFwiTm93b2dyb2R6aWVjXCIsXG4gICAgXCJOb3dvZ3LDs2RcIixcbiAgICBcIk5vd29ncsOzZCBCb2JyemHFhHNraVwiLFxuICAgIFwiTm93eSBEd8OzciBHZGHFhHNraVwiLFxuICAgIFwiTm93eSBEd8OzciBNYXpvd2llY2tpXCIsXG4gICAgXCJOb3d5IFPEhWN6XCIsXG4gICAgXCJOb3d5IFN0YXdcIixcbiAgICBcIk5vd3kgVGFyZ1wiLFxuICAgIFwiTm93eSBUb215xZtsXCIsXG4gICAgXCJOb3d5IFdpxZtuaWN6XCIsXG4gICAgXCJOeXNhXCIsXG4gICAgXCJPYm9ybmlraVwiLFxuICAgIFwiT2Jvcm5pa2kgxZpsxIVza2llXCIsXG4gICAgXCJPYnJ6eWNrb1wiLFxuICAgIFwiT2RvbGFuw7N3XCIsXG4gICAgXCJPZ3JvZHppZW5pZWNcIixcbiAgICBcIk9rb25la1wiLFxuICAgIFwiT2xlY2tvXCIsXG4gICAgXCJPbGVzbm9cIixcbiAgICBcIk9sZXN6eWNlXCIsXG4gICAgXCJPbGXFm25pY2FcIixcbiAgICBcIk9sa3VzelwiLFxuICAgIFwiT2xzenR5blwiLFxuICAgIFwiT2xzenR5bmVrXCIsXG4gICAgXCJPbHN6eW5hXCIsXG4gICAgXCJPxYJhd2FcIixcbiAgICBcIk9wYWxlbmljYVwiLFxuICAgIFwiT3BhdMOzd1wiLFxuICAgIFwiT3BvY3pub1wiLFxuICAgIFwiT3BvbGVcIixcbiAgICBcIk9wb2xlIEx1YmVsc2tpZVwiLFxuICAgIFwiT3JuZXRhXCIsXG4gICAgXCJPcnplc3plXCIsXG4gICAgXCJPcnp5c3pcIixcbiAgICBcIk9zaWVjem5hXCIsXG4gICAgXCJPc2lla1wiLFxuICAgIFwiT3N0cm/FgsSZa2FcIixcbiAgICBcIk9zdHJvcsOzZ1wiLFxuICAgIFwiT3N0cm93aWVjIMWad2nEmXRva3J6eXNraVwiLFxuICAgIFwiT3N0csOzZGFcIixcbiAgICBcIk9zdHLDs3cgTHViZWxza2lcIixcbiAgICBcIk9zdHLDs3cgTWF6b3dpZWNrYVwiLFxuICAgIFwiT3N0csOzdyBXaWVsa29wb2xza2lcIixcbiAgICBcIk9zdHJ6ZXN6w7N3XCIsXG4gICAgXCJPxZtubyBMdWJ1c2tpZVwiLFxuICAgIFwiT8Wbd2nEmWNpbVwiLFxuICAgIFwiT3RtdWNow7N3XCIsXG4gICAgXCJPdHdvY2tcIixcbiAgICBcIk96aW1la1wiLFxuICAgIFwiT3pvcmvDs3dcIixcbiAgICBcIk/FvGFyw7N3XCIsXG4gICAgXCJPxbxhcsOzdyBNYXpvd2llY2tpXCIsXG4gICAgXCJQYWJpYW5pY2VcIixcbiAgICBcIlBhY3prw7N3XCIsXG4gICAgXCJQYWrEmWN6bm9cIixcbiAgICBcIlBha2/Fm8SHXCIsXG4gICAgXCJQYXJjemV3XCIsXG4gICAgXCJQYXPFgsSZa1wiLFxuICAgIFwiUGFzeW1cIixcbiAgICBcIlBlbHBsaW5cIixcbiAgICBcIlBlxYJjenljZVwiLFxuICAgIFwiUGlhc2Vjem5vXCIsXG4gICAgXCJQaWFza2lcIixcbiAgICBcIlBpYXN0w7N3XCIsXG4gICAgXCJQaWVjaG93aWNlXCIsXG4gICAgXCJQaWVrYXJ5IMWabMSFc2tpZVwiLFxuICAgIFwiUGllbmnEmcW8bm9cIixcbiAgICBcIlBpZcWEc2tcIixcbiAgICBcIlBpZXN6eWNlXCIsXG4gICAgXCJQaWxhd2FcIixcbiAgICBcIlBpbGljYVwiLFxuICAgIFwiUGlsem5vXCIsXG4gICAgXCJQacWCYVwiLFxuICAgIFwiUGnFgmF3YSBHw7NybmFcIixcbiAgICBcIlBpxYRjesOzd1wiLFxuICAgIFwiUGlvbmtpXCIsXG4gICAgXCJQaW90cmvDs3cgS3VqYXdza2lcIixcbiAgICBcIlBpb3Rya8OzdyBUcnlidW5hbHNraVwiLFxuICAgIFwiUGlzelwiLFxuICAgIFwiUGl3bmljem5hLVpkcsOzalwiLFxuICAgIFwiUGxlc3pld1wiLFxuICAgIFwiUMWCb2NrXCIsXG4gICAgXCJQxYJvxYRza1wiLFxuICAgIFwiUMWCb3R5XCIsXG4gICAgXCJQbmlld3lcIixcbiAgICBcIlBvYmllZHppc2thXCIsXG4gICAgXCJQb2RkxJliaWNlXCIsXG4gICAgXCJQb2Rrb3dhIExlxZtuYVwiLFxuICAgIFwiUG9nb3J6ZWxhXCIsXG4gICAgXCJQb2xhbmljYS1aZHLDs2pcIixcbiAgICBcIlBvbGFuw7N3XCIsXG4gICAgXCJQb2xpY2VcIixcbiAgICBcIlBvbGtvd2ljZVwiLFxuICAgIFwiUG/FgmFuaWVjXCIsXG4gICAgXCJQb8WCY3p5bi1aZHLDs2pcIixcbiAgICBcIlBvbmlhdG93YVwiLFxuICAgIFwiUG9uaWVjXCIsXG4gICAgXCJQb3LEmWJhXCIsXG4gICAgXCJQb3puYcWEXCIsXG4gICAgXCJQcmFidXR5XCIsXG4gICAgXCJQcmFzemthXCIsXG4gICAgXCJQcm9jaG93aWNlXCIsXG4gICAgXCJQcm9zem93aWNlXCIsXG4gICAgXCJQcsOzc3prw7N3XCIsXG4gICAgXCJQcnVjaG5pa1wiLFxuICAgIFwiUHJ1ZG5pa1wiLFxuICAgIFwiUHJ1c2ljZVwiLFxuICAgIFwiUHJ1c3pjeiBHZGHFhHNraVwiLFxuICAgIFwiUHJ1c3prw7N3XCIsXG4gICAgXCJQcnphc255c3pcIixcbiAgICBcIlByemVjxYJhd1wiLFxuICAgIFwiUHJ6ZWRiw7NyelwiLFxuICAgIFwiUHJ6ZWRlY3pcIixcbiAgICBcIlByemVta8Ozd1wiLFxuICAgIFwiUHJ6ZW15xZtsXCIsXG4gICAgXCJQcnpld29yc2tcIixcbiAgICBcIlByenlzdWNoYVwiLFxuICAgIFwiUHN6Y3p5bmFcIixcbiAgICBcIlBzesOzd1wiLFxuICAgIFwiUHVja1wiLFxuICAgIFwiUHXFgmF3eVwiLFxuICAgIFwiUHXFgnR1c2tcIixcbiAgICBcIlB1c3pjenlrb3dvXCIsXG4gICAgXCJQeXJ6eWNlXCIsXG4gICAgXCJQeXNrb3dpY2VcIixcbiAgICBcIlB5emRyeVwiLFxuICAgIFwiUmFia2EtWmRyw7NqXCIsXG4gICAgXCJSYWNpxIXFvFwiLFxuICAgIFwiUmFjaWLDs3J6XCIsXG4gICAgXCJSYWRrw7N3XCIsXG4gICAgXCJSYWRsaW5cIixcbiAgICBcIlJhZMWCw7N3XCIsXG4gICAgXCJSYWRvbVwiLFxuICAgIFwiUmFkb21za29cIixcbiAgICBcIlJhZG9tecWbbCBXaWVsa2lcIixcbiAgICBcIlJhZHltbm9cIixcbiAgICBcIlJhZHppZWrDs3dcIixcbiAgICBcIlJhZHppb25rw7N3XCIsXG4gICAgXCJSYWR6eW1pblwiLFxuICAgIFwiUmFkennFhCBDaGXFgm1pxYRza2lcIixcbiAgICBcIlJhZHp5xYQgUG9kbGFza2lcIixcbiAgICBcIlJhamdyw7NkXCIsXG4gICAgXCJSYWtvbmlld2ljZVwiLFxuICAgIFwiUmFzemvDs3dcIixcbiAgICBcIlJhd2EgTWF6b3dpZWNrYVwiLFxuICAgIFwiUmF3aWN6XCIsXG4gICAgXCJSZWN6XCIsXG4gICAgXCJSZWRhXCIsXG4gICAgXCJSZWpvd2llYyBGYWJyeWN6bnlcIixcbiAgICBcIlJlc2tvXCIsXG4gICAgXCJSZXN6ZWxcIixcbiAgICBcIlJvZ2/Fum5vXCIsXG4gICAgXCJSb3BjenljZVwiLFxuICAgIFwiUsOzxbxhblwiLFxuICAgIFwiUnVjaWFuZS1OaWRhXCIsXG4gICAgXCJSdWRhIMWabMSFc2thXCIsXG4gICAgXCJSdWRuaWsgbmFkIFNhbmVtXCIsXG4gICAgXCJSdW1pYVwiLFxuICAgIFwiUnlibmlrXCIsXG4gICAgXCJSeWNod2HFglwiLFxuICAgIFwiUnlkdcWCdG93eVwiLFxuICAgIFwiUnlkenluYVwiLFxuICAgIFwiUnlnbGljZVwiLFxuICAgIFwiUnlraVwiLFxuICAgIFwiUnltYW7Ds3dcIixcbiAgICBcIlJ5blwiLFxuICAgIFwiUnlwaW5cIixcbiAgICBcIlJ6ZXBpblwiLFxuICAgIFwiUnplc3rDs3dcIixcbiAgICBcIlJ6Z8Ozd1wiLFxuICAgIFwiU2FuZG9taWVyelwiLFxuICAgIFwiU2Fub2tcIixcbiAgICBcIlNlam55XCIsXG4gICAgXCJTZXJvY2tcIixcbiAgICBcIlPEmWR6aXN6w7N3XCIsXG4gICAgXCJTxJlkemlzesOzdyBNYcWCb3BvbHNraVwiLFxuICAgIFwiU8SZcG9wb2xcIixcbiAgICBcIlPEmXDDs2xubyBLcmFqZcWEc2tpZVwiLFxuICAgIFwiU2lhbsOzd1wiLFxuICAgIFwiU2llY2huaWNlXCIsXG4gICAgXCJTaWVkbGNlXCIsXG4gICAgXCJTaWVtaWFub3dpY2UgxZpsxIVza2llXCIsXG4gICAgXCJTaWVtaWF0eWN6ZVwiLFxuICAgIFwiU2llbmlhd2FcIixcbiAgICBcIlNpZXJhZHpcIixcbiAgICBcIlNpZXJha8Ozd1wiLFxuICAgIFwiU2llcnBjXCIsXG4gICAgXCJTaWV3aWVyelwiLFxuICAgIFwiU2thbGJtaWVyelwiLFxuICAgIFwiU2thxYJhXCIsXG4gICAgXCJTa2Fyc3pld3lcIixcbiAgICBcIlNrYXJ5c3pld1wiLFxuICAgIFwiU2thcsW8eXNrby1LYW1pZW5uYVwiLFxuICAgIFwiU2thd2luYVwiLFxuICAgIFwiU2vEmXBlXCIsXG4gICAgXCJTa2llcm5pZXdpY2VcIixcbiAgICBcIlNrb2N6w7N3XCIsXG4gICAgXCJTa29raVwiLFxuICAgIFwiU2vDs3JjelwiLFxuICAgIFwiU2t3aWVyenluYVwiLFxuICAgIFwiU8WCYXdhXCIsXG4gICAgXCJTxYJhd2vDs3dcIixcbiAgICBcIlPFgmF3bm9cIixcbiAgICBcIlPFgm9tbmlraVwiLFxuICAgIFwiU8WCdWJpY2VcIixcbiAgICBcIlPFgnVwY2FcIixcbiAgICBcIlPFgnVwc2tcIixcbiAgICBcIlNvYsOzdGthXCIsXG4gICAgXCJTb2NoYWN6ZXdcIixcbiAgICBcIlNva2/FgsOzdyBNYcWCb3BvbHNraVwiLFxuICAgIFwiU29rb8WCw7N3IFBvZGxhc2tpXCIsXG4gICAgXCJTb2vDs8WCa2FcIixcbiAgICBcIlNvbGVjIEt1amF3c2tpXCIsXG4gICAgXCJTb21wb2xub1wiLFxuICAgIFwiU29wb3RcIixcbiAgICBcIlNvc25vd2llY1wiLFxuICAgIFwiU2/Fm25pY293aWNlXCIsXG4gICAgXCJTdGFsb3dhIFdvbGFcIixcbiAgICBcIlN0YXJhY2hvd2ljZVwiLFxuICAgIFwiU3RhcmdhcmQgU3pjemVjacWEc2tpXCIsXG4gICAgXCJTdGFyb2dhcmQgR2RhxYRza2lcIixcbiAgICBcIlN0YXJ5IFPEhWN6XCIsXG4gICAgXCJTdGFzesOzd1wiLFxuICAgIFwiU3Rhd2lza2lcIixcbiAgICBcIlN0YXdpc3p5blwiLFxuICAgIFwiU3TEhXBvcmvDs3dcIixcbiAgICBcIlN0xJlzemV3XCIsXG4gICAgXCJTdG9jemVrIMWBdWtvd3NraVwiLFxuICAgIFwiU3Ryb25pZSDFmmzEhXNraWVcIixcbiAgICBcIlN0cnVtaWXFhFwiLFxuICAgIFwiU3RyeWvDs3dcIixcbiAgICBcIlN0cnplZ29tXCIsXG4gICAgXCJTdHJ6ZWxjZSBLcmFqZcWEc2tpZVwiLFxuICAgIFwiU3RyemVsY2UgT3BvbHNraWVcIixcbiAgICBcIlN0cnplbGluXCIsXG4gICAgXCJTdHJ6ZWxub1wiLFxuICAgIFwiU3RyennFvMOzd1wiLFxuICAgIFwiU3VjaGEgQmVza2lkemthXCIsXG4gICAgXCJTdWNoYcWEXCIsXG4gICAgXCJTdWNoZWRuacOzd1wiLFxuICAgIFwiU3VjaG93b2xhXCIsXG4gICAgXCJTdWxlY2jDs3dcIixcbiAgICBcIlN1bGVqw7N3XCIsXG4gICAgXCJTdWxlasOzd2VrXCIsXG4gICAgXCJTdWzEmWNpblwiLFxuICAgIFwiU3VsbWllcnp5Y2VcIixcbiAgICBcIlN1xYJrb3dpY2VcIixcbiAgICBcIlN1cHJhxZtsXCIsXG4gICAgXCJTdXJhxbxcIixcbiAgICBcIlN1c3pcIixcbiAgICBcIlN1d2HFgmtpXCIsXG4gICAgXCJTd2FyesSZZHpcIixcbiAgICBcIlN5Y8Ozd1wiLFxuICAgIFwiU3phZGVrXCIsXG4gICAgXCJTemFtb2NpblwiLFxuICAgIFwiU3phbW90dcWCeVwiLFxuICAgIFwiU3pjemF3bmljYVwiLFxuICAgIFwiU3pjemF3bm8tWmRyw7NqXCIsXG4gICAgXCJTemN6ZWJyemVzenluXCIsXG4gICAgXCJTemN6ZWNpblwiLFxuICAgIFwiU3pjemVjaW5la1wiLFxuICAgIFwiU3pjemVrb2NpbnlcIixcbiAgICBcIlN6Y3p1Y2luXCIsXG4gICAgXCJTemN6dWN6eW5cIixcbiAgICBcIlN6Y3p5cmtcIixcbiAgICBcIlN6Y3p5dG5hXCIsXG4gICAgXCJTemN6eXRub1wiLFxuICAgIFwiU3plcGlldG93b1wiLFxuICAgIFwiU3prbGFyc2thIFBvcsSZYmFcIixcbiAgICBcIlN6bGljaHR5bmdvd2FcIixcbiAgICBcIlN6cHJvdGF3YVwiLFxuICAgIFwiU3p0dW1cIixcbiAgICBcIlN6dWJpblwiLFxuICAgIFwiU3p5ZMWCb3dpZWNcIixcbiAgICBcIsWaY2luYXdhXCIsXG4gICAgXCLFmmxlc2luXCIsXG4gICAgXCLFmm1pZ2llbFwiLFxuICAgIFwixZpyZW1cIixcbiAgICBcIsWacm9kYSDFmmzEhXNrYVwiLFxuICAgIFwixZpyb2RhIFdpZWxrb3BvbHNrYVwiLFxuICAgIFwixZp3acSFdG5pa2kgR8Ozcm5lXCIsXG4gICAgXCLFmndpZG5pY2FcIixcbiAgICBcIsWad2lkbmlrXCIsXG4gICAgXCLFmndpZHdpblwiLFxuICAgIFwixZp3aWVib2R6aWNlXCIsXG4gICAgXCLFmndpZWJvZHppblwiLFxuICAgIFwixZp3aWVjaWVcIixcbiAgICBcIsWad2llcmFkw7N3LVpkcsOzalwiLFxuICAgIFwixZp3aWVyemF3YVwiLFxuICAgIFwixZp3acSZdG9jaMWCb3dpY2VcIixcbiAgICBcIsWad2lub3VqxZtjaWVcIixcbiAgICBcIlRhcmN6eW5cIixcbiAgICBcIlRhcm5vYnJ6ZWdcIixcbiAgICBcIlRhcm5vZ3LDs2RcIixcbiAgICBcIlRhcm5vd3NraWUgR8OzcnlcIixcbiAgICBcIlRhcm7Ds3dcIixcbiAgICBcIlRjemV3XCIsXG4gICAgXCJUZXJlc3BvbFwiLFxuICAgIFwiVMWCdXN6Y3pcIixcbiAgICBcIlRvbGttaWNrb1wiLFxuICAgIFwiVG9tYXN6w7N3IEx1YmVsc2tpXCIsXG4gICAgXCJUb21hc3rDs3cgTWF6b3dpZWNraVwiLFxuICAgIFwiVG9ydcWEXCIsXG4gICAgXCJUb3J6eW1cIixcbiAgICBcIlRvc3pla1wiLFxuICAgIFwiVHJ6Y2lhbmthXCIsXG4gICAgXCJUcnpjaWVsXCIsXG4gICAgXCJUcnpjacWEc2tvLVpkcsOzalwiLFxuICAgIFwiVHJ6ZWJpYXTDs3dcIixcbiAgICBcIlRyemViaW5pYVwiLFxuICAgIFwiVHJ6ZWJuaWNhXCIsXG4gICAgXCJUcnplbWVzem5vXCIsXG4gICAgXCJUdWNob2xhXCIsXG4gICAgXCJUdWNow7N3XCIsXG4gICAgXCJUdWN6bm9cIixcbiAgICBcIlR1bGlzemvDs3dcIixcbiAgICBcIlR1cmVrXCIsXG4gICAgXCJUdXN6eW5cIixcbiAgICBcIlR3YXJkb2fDs3JhXCIsXG4gICAgXCJUeWNob3dvXCIsXG4gICAgXCJUeWNoeVwiLFxuICAgIFwiVHljenluXCIsXG4gICAgXCJUeWtvY2luXCIsXG4gICAgXCJUeXN6b3djZVwiLFxuICAgIFwiVWphemRcIixcbiAgICBcIlVqxZtjaWVcIixcbiAgICBcIlVsYW7Ds3dcIixcbiAgICBcIlVuaWVqw7N3XCIsXG4gICAgXCJVc3RrYVwiLFxuICAgIFwiVXN0cm/FhFwiLFxuICAgIFwiVXN0cnp5a2kgRG9sbmVcIixcbiAgICBcIldhZG93aWNlXCIsXG4gICAgXCJXYcWCYnJ6eWNoXCIsXG4gICAgXCJXYcWCY3pcIixcbiAgICBcIldhcmthXCIsXG4gICAgXCJXYXJzemF3YVwiLFxuICAgIFwiV2FydGFcIixcbiAgICBcIldhc2lsa8Ozd1wiLFxuICAgIFwiV8SFYnJ6ZcW6bm9cIixcbiAgICBcIlfEhWNob2NrXCIsXG4gICAgXCJXxIVncm93aWVjXCIsXG4gICAgXCJXxIVzb3N6XCIsXG4gICAgXCJXZWpoZXJvd29cIixcbiAgICBcIlfEmWdsaW5pZWNcIixcbiAgICBcIlfEmWdvcnpld29cIixcbiAgICBcIlfEmWdvcnp5bm9cIixcbiAgICBcIlfEmWdyw7N3XCIsXG4gICAgXCJXacSFesOzd1wiLFxuICAgIFwiV2llbGXFhFwiLFxuICAgIFwiV2llbGljaG93b1wiLFxuICAgIFwiV2llbGljemthXCIsXG4gICAgXCJXaWVsdcWEXCIsXG4gICAgXCJXaWVydXN6w7N3XCIsXG4gICAgXCJXacSZY2JvcmtcIixcbiAgICBcIldpbGFtb3dpY2VcIixcbiAgICBcIldpc8WCYVwiLFxuICAgIFwiV2l0a293b1wiLFxuICAgIFwiV2l0bmljYVwiLFxuICAgIFwiV2xlxYRcIixcbiAgICBcIlfFgmFkeXPFgmF3b3dvXCIsXG4gICAgXCJXxYJvY8WCYXdla1wiLFxuICAgIFwiV8WCb2Rhd2FcIixcbiAgICBcIlfFgm9zemN6b3dhXCIsXG4gICAgXCJXb2R6aXPFgmF3IMWabMSFc2tpXCIsXG4gICAgXCJXb2pjaWVzesOzd1wiLFxuICAgIFwiV29qa293aWNlXCIsXG4gICAgXCJXb2puaWN6XCIsXG4gICAgXCJXb2xiw7NyelwiLFxuICAgIFwiV29sYnJvbVwiLFxuICAgIFwiV29saW5cIixcbiAgICBcIldvbHN6dHluXCIsXG4gICAgXCJXb8WCY3p5blwiLFxuICAgIFwiV2/Fgm9taW5cIixcbiAgICBcIldvxYLDs3dcIixcbiAgICBcIldvxbpuaWtpXCIsXG4gICAgXCJXcm9jxYJhd1wiLFxuICAgIFwiV3JvbmtpXCIsXG4gICAgXCJXcnplxZtuaWFcIixcbiAgICBcIldzY2hvd2FcIixcbiAgICBcIld5cnp5c2tcIixcbiAgICBcIld5c29rYVwiLFxuICAgIFwiV3lzb2tpZSBNYXpvd2llY2tpZVwiLFxuICAgIFwiV3lzemvDs3dcIixcbiAgICBcIld5c3pvZ3LDs2RcIixcbiAgICBcIld5xZttaWVyenljZVwiLFxuICAgIFwiWmFixYJ1ZMOzd1wiLFxuICAgIFwiWmFicnplXCIsXG4gICAgXCJaYWfDs3LDs3dcIixcbiAgICBcIlphZ8OzcnpcIixcbiAgICBcIlpha2xpY3p5blwiLFxuICAgIFwiWmFrb3BhbmVcIixcbiAgICBcIlpha3JvY3p5bVwiLFxuICAgIFwiWmFsZXdvXCIsXG4gICAgXCJaYW1icsOzd1wiLFxuICAgIFwiWmFtb8WbxIdcIixcbiAgICBcIlphdG9yXCIsXG4gICAgXCJaYXdhZHpraWVcIixcbiAgICBcIlphd2ljaG9zdFwiLFxuICAgIFwiWmF3aWTDs3dcIixcbiAgICBcIlphd2llcmNpZVwiLFxuICAgIFwiWsSFYmtpXCIsXG4gICAgXCJaxIVia293aWNlIMWabMSFc2tpZVwiLFxuICAgIFwiWmLEhXN6eW5la1wiLFxuICAgIFwiWmLEhXN6ecWEXCIsXG4gICAgXCJaZHVueVwiLFxuICAgIFwiWmR1xYRza2EgV29sYVwiLFxuICAgIFwiWmR6aWVzem93aWNlXCIsXG4gICAgXCJaZWzDs3dcIixcbiAgICBcIlpnaWVyelwiLFxuICAgIFwiWmdvcnplbGVjXCIsXG4gICAgXCJaaWVsb25hIEfDs3JhXCIsXG4gICAgXCJaaWVsb25rYVwiLFxuICAgIFwiWmnEmWJpY2VcIixcbiAgICBcIlrFgm9jaWVuaWVjXCIsXG4gICAgXCJaxYJvY3pld1wiLFxuICAgIFwiWsWCb3RvcnlqYVwiLFxuICAgIFwiWsWCb3TDs3dcIixcbiAgICBcIlrFgm90eSBTdG9rXCIsXG4gICAgXCJad2llcnp5bmllY1wiLFxuICAgIFwiWndvbGXFhFwiLFxuICAgIFwixbthYm5vXCIsXG4gICAgXCLFu2FnYcWEXCIsXG4gICAgXCLFu2Fya2lcIixcbiAgICBcIsW7YXLDs3dcIixcbiAgICBcIsW7YXJ5XCIsXG4gICAgXCLFu2VsZWNow7N3XCIsXG4gICAgXCLFu2Vya8Ozd1wiLFxuICAgIFwixbttaWdyw7NkXCIsXG4gICAgXCLFu25pblwiLFxuICAgIFwixbtvcnlcIixcbiAgICBcIsW7dWtvd29cIixcbiAgICBcIsW7dXJvbWluXCIsXG4gICAgXCLFu3ljaGxpblwiLFxuICAgIFwixbt5cmFyZMOzd1wiLFxuICAgIFwixbt5d2llY1wiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3ByZWZpeH0gI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIlBvbHNrYVwiXG4gIF1cbn07XG5wbC5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJJbmNcIixcbiAgICBcImFuZCBTb25zXCIsXG4gICAgXCJMTENcIixcbiAgICBcIkdyb3VwXCJcbiAgXSxcbiAgXCJhZGpldGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOltcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjogW1xuICAgICAgXCJhYmlsaXR5XCIsXG4gICAgICBcImFjY2Vzc1wiLFxuICAgICAgXCJhZGFwdGVyXCIsXG4gICAgICBcImFsZ29yaXRobVwiLFxuICAgICAgXCJhbGxpYW5jZVwiLFxuICAgICAgXCJhbmFseXplclwiLFxuICAgICAgXCJhcHBsaWNhdGlvblwiLFxuICAgICAgXCJhcHByb2FjaFwiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVcIixcbiAgICAgIFwiYXJjaGl2ZVwiLFxuICAgICAgXCJhcnRpZmljaWFsIGludGVsbGlnZW5jZVwiLFxuICAgICAgXCJhcnJheVwiLFxuICAgICAgXCJhdHRpdHVkZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiYnVkZ2V0YXJ5IG1hbmFnZW1lbnRcIixcbiAgICAgIFwiY2FwYWJpbGl0eVwiLFxuICAgICAgXCJjYXBhY2l0eVwiLFxuICAgICAgXCJjaGFsbGVuZ2VcIixcbiAgICAgIFwiY2lyY3VpdFwiLFxuICAgICAgXCJjb2xsYWJvcmF0aW9uXCIsXG4gICAgICBcImNvbXBsZXhpdHlcIixcbiAgICAgIFwiY29uY2VwdFwiLFxuICAgICAgXCJjb25nbG9tZXJhdGlvblwiLFxuICAgICAgXCJjb250aW5nZW5jeVwiLFxuICAgICAgXCJjb3JlXCIsXG4gICAgICBcImN1c3RvbWVyIGxveWFsdHlcIixcbiAgICAgIFwiZGF0YWJhc2VcIixcbiAgICAgIFwiZGF0YS13YXJlaG91c2VcIixcbiAgICAgIFwiZGVmaW5pdGlvblwiLFxuICAgICAgXCJlbXVsYXRpb25cIixcbiAgICAgIFwiZW5jb2RpbmdcIixcbiAgICAgIFwiZW5jcnlwdGlvblwiLFxuICAgICAgXCJleHRyYW5ldFwiLFxuICAgICAgXCJmaXJtd2FyZVwiLFxuICAgICAgXCJmbGV4aWJpbGl0eVwiLFxuICAgICAgXCJmb2N1cyBncm91cFwiLFxuICAgICAgXCJmb3JlY2FzdFwiLFxuICAgICAgXCJmcmFtZVwiLFxuICAgICAgXCJmcmFtZXdvcmtcIixcbiAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcIkdyYXBoaWMgSW50ZXJmYWNlXCIsXG4gICAgICBcImdyb3Vwd2FyZVwiLFxuICAgICAgXCJHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VcIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiaGVscC1kZXNrXCIsXG4gICAgICBcImhpZXJhcmNoeVwiLFxuICAgICAgXCJodWJcIixcbiAgICAgIFwiaW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiaW5mby1tZWRpYXJpZXNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiaW5pdGlhdGl2ZVwiLFxuICAgICAgXCJpbnN0YWxsYXRpb25cIixcbiAgICAgIFwiaW5zdHJ1Y3Rpb24gc2V0XCIsXG4gICAgICBcImludGVyZmFjZVwiLFxuICAgICAgXCJpbnRlcm5ldCBzb2x1dGlvblwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJrbm93bGVkZ2UgdXNlclwiLFxuICAgICAgXCJrbm93bGVkZ2UgYmFzZVwiLFxuICAgICAgXCJsb2NhbCBhcmVhIG5ldHdvcmtcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwibWF0cmljZXNcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcIm1ldGhvZG9sb2d5XCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmF0aW9uXCIsXG4gICAgICBcIm1vZGVsXCIsXG4gICAgICBcIm1vZGVyYXRvclwiLFxuICAgICAgXCJtb25pdG9yaW5nXCIsXG4gICAgICBcIm1vcmF0b3JpdW1cIixcbiAgICAgIFwibmV1cmFsLW5ldFwiLFxuICAgICAgXCJvcGVuIGFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJvcGVuIHN5c3RlbVwiLFxuICAgICAgXCJvcmNoZXN0cmF0aW9uXCIsXG4gICAgICBcInBhcmFkaWdtXCIsXG4gICAgICBcInBhcmFsbGVsaXNtXCIsXG4gICAgICBcInBvbGljeVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwicHJpY2luZyBzdHJ1Y3R1cmVcIixcbiAgICAgIFwicHJvY2VzcyBpbXByb3ZlbWVudFwiLFxuICAgICAgXCJwcm9kdWN0XCIsXG4gICAgICBcInByb2R1Y3Rpdml0eVwiLFxuICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICBcInByb2plY3Rpb25cIixcbiAgICAgIFwicHJvdG9jb2xcIixcbiAgICAgIFwic2VjdXJlZCBsaW5lXCIsXG4gICAgICBcInNlcnZpY2UtZGVza1wiLFxuICAgICAgXCJzb2Z0d2FyZVwiLFxuICAgICAgXCJzb2x1dGlvblwiLFxuICAgICAgXCJzdGFuZGFyZGl6YXRpb25cIixcbiAgICAgIFwic3RyYXRlZ3lcIixcbiAgICAgIFwic3RydWN0dXJlXCIsXG4gICAgICBcInN1Y2Nlc3NcIixcbiAgICAgIFwic3VwZXJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VwcG9ydFwiLFxuICAgICAgXCJzeW5lcmd5XCIsXG4gICAgICBcInN5c3RlbSBlbmdpbmVcIixcbiAgICAgIFwidGFzay1mb3JjZVwiLFxuICAgICAgXCJ0aHJvdWdocHV0XCIsXG4gICAgICBcInRpbWUtZnJhbWVcIixcbiAgICAgIFwidG9vbHNldFwiLFxuICAgICAgXCJ1dGlsaXNhdGlvblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcIndvcmtmb3JjZVwiXG4gIF0sXG4gIFwiYnNfdmVyYlwiOiBbXG4gICAgICBcImltcGxlbWVudFwiLFxuICAgICAgXCJ1dGlsaXplXCIsXG4gICAgICBcImludGVncmF0ZVwiLFxuICAgICAgXCJzdHJlYW1saW5lXCIsXG4gICAgICBcIm9wdGltaXplXCIsXG4gICAgICBcImV2b2x2ZVwiLFxuICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgIFwiZW1icmFjZVwiLFxuICAgICAgXCJlbmFibGVcIixcbiAgICAgIFwib3JjaGVzdHJhdGVcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwicmVpbnZlbnRcIixcbiAgICAgIFwiYWdncmVnYXRlXCIsXG4gICAgICBcImFyY2hpdGVjdFwiLFxuICAgICAgXCJlbmhhbmNlXCIsXG4gICAgICBcImluY2VudGl2aXplXCIsXG4gICAgICBcIm1vcnBoXCIsXG4gICAgICBcImVtcG93ZXJcIixcbiAgICAgIFwiZW52aXNpb25lZXJcIixcbiAgICAgIFwibW9uZXRpemVcIixcbiAgICAgIFwiaGFybmVzc1wiLFxuICAgICAgXCJmYWNpbGl0YXRlXCIsXG4gICAgICBcInNlaXplXCIsXG4gICAgICBcImRpc2ludGVybWVkaWF0ZVwiLFxuICAgICAgXCJzeW5lcmdpemVcIixcbiAgICAgIFwic3RyYXRlZ2l6ZVwiLFxuICAgICAgXCJkZXBsb3lcIixcbiAgICAgIFwiYnJhbmRcIixcbiAgICAgIFwiZ3Jvd1wiLFxuICAgICAgXCJ0YXJnZXRcIixcbiAgICAgIFwic3luZGljYXRlXCIsXG4gICAgICBcInN5bnRoZXNpemVcIixcbiAgICAgIFwiZGVsaXZlclwiLFxuICAgICAgXCJtZXNoXCIsXG4gICAgICBcImluY3ViYXRlXCIsXG4gICAgICBcImVuZ2FnZVwiLFxuICAgICAgXCJtYXhpbWl6ZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiZXhwZWRpdGVcIixcbiAgICAgIFwicmVpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwid2hpdGVib2FyZFwiLFxuICAgICAgXCJ2aXN1YWxpemVcIixcbiAgICAgIFwicmVwdXJwb3NlXCIsXG4gICAgICBcImlubm92YXRlXCIsXG4gICAgICBcInNjYWxlXCIsXG4gICAgICBcInVubGVhc2hcIixcbiAgICAgIFwiZHJpdmVcIixcbiAgICAgIFwiZXh0ZW5kXCIsXG4gICAgICBcImVuZ2luZWVyXCIsXG4gICAgICBcInJldm9sdXRpb25pemVcIixcbiAgICAgIFwiZ2VuZXJhdGVcIixcbiAgICAgIFwiZXhwbG9pdFwiLFxuICAgICAgXCJ0cmFuc2l0aW9uXCIsXG4gICAgICBcImUtZW5hYmxlXCIsXG4gICAgICBcIml0ZXJhdGVcIixcbiAgICAgIFwiY3VsdGl2YXRlXCIsXG4gICAgICBcIm1hdHJpeFwiLFxuICAgICAgXCJwcm9kdWN0aXplXCIsXG4gICAgICBcInJlZGVmaW5lXCIsXG4gICAgICBcInJlY29udGV4dHVhbGl6ZVwiXG4gICAgXSxcbiAgICBcImJzX2FkamVjdGl2ZVwiOiBbXG4gICAgICBcImNsaWNrcy1hbmQtbW9ydGFyXCIsXG4gICAgICBcInZhbHVlLWFkZGVkXCIsXG4gICAgICBcInZlcnRpY2FsXCIsXG4gICAgICBcInByb2FjdGl2ZVwiLFxuICAgICAgXCJyb2J1c3RcIixcbiAgICAgIFwicmV2b2x1dGlvbmFyeVwiLFxuICAgICAgXCJzY2FsYWJsZVwiLFxuICAgICAgXCJsZWFkaW5nLWVkZ2VcIixcbiAgICAgIFwiaW5ub3ZhdGl2ZVwiLFxuICAgICAgXCJpbnR1aXRpdmVcIixcbiAgICAgIFwic3RyYXRlZ2ljXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJzdGlja3lcIixcbiAgICAgIFwib25lLXRvLW9uZVwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcImVuZC10by1lbmRcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcIkIyQlwiLFxuICAgICAgXCJCMkNcIixcbiAgICAgIFwiZ3JhbnVsYXJcIixcbiAgICAgIFwiZnJpY3Rpb25sZXNzXCIsXG4gICAgICBcInZpcnR1YWxcIixcbiAgICAgIFwidmlyYWxcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCIyNC8zNjVcIixcbiAgICAgIFwiYmVzdC1vZi1icmVlZFwiLFxuICAgICAgXCJraWxsZXJcIixcbiAgICAgIFwibWFnbmV0aWNcIixcbiAgICAgIFwiYmxlZWRpbmctZWRnZVwiLFxuICAgICAgXCJ3ZWItZW5hYmxlZFwiLFxuICAgICAgXCJpbnRlcmFjdGl2ZVwiLFxuICAgICAgXCJkb3QtY29tXCIsXG4gICAgICBcInNleHlcIixcbiAgICAgIFwiYmFjay1lbmRcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcImVmZmljaWVudFwiLFxuICAgICAgXCJmcm9udC1lbmRcIixcbiAgICAgIFwiZGlzdHJpYnV0ZWRcIixcbiAgICAgIFwic2VhbWxlc3NcIixcbiAgICAgIFwiZXh0ZW5zaWJsZVwiLFxuICAgICAgXCJ0dXJuLWtleVwiLFxuICAgICAgXCJ3b3JsZC1jbGFzc1wiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJjcm9zcy1tZWRpYVwiLFxuICAgICAgXCJzeW5lcmdpc3RpY1wiLFxuICAgICAgXCJicmlja3MtYW5kLWNsaWNrc1wiLFxuICAgICAgXCJvdXQtb2YtdGhlLWJveFwiLFxuICAgICAgXCJlbnRlcnByaXNlXCIsXG4gICAgICBcImludGVncmF0ZWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcIndpcmVsZXNzXCIsXG4gICAgICBcInRyYW5zcGFyZW50XCIsXG4gICAgICBcIm5leHQtZ2VuZXJhdGlvblwiLFxuICAgICAgXCJjdXR0aW5nLWVkZ2VcIixcbiAgICAgIFwidXNlci1jZW50cmljXCIsXG4gICAgICBcInZpc2lvbmFyeVwiLFxuICAgICAgXCJjdXN0b21pemVkXCIsXG4gICAgICBcInViaXF1aXRvdXNcIixcbiAgICAgIFwicGx1Zy1hbmQtcGxheVwiLFxuICAgICAgXCJjb2xsYWJvcmF0aXZlXCIsXG4gICAgICBcImNvbXBlbGxpbmdcIixcbiAgICAgIFwiaG9saXN0aWNcIixcbiAgICAgIFwicmljaFwiXG4gICAgXSxcbiAgICBcImJzX25vdW5cIjogW1xuICAgICAgXCJzeW5lcmdpZXNcIixcbiAgICAgIFwid2ViLXJlYWRpbmVzc1wiLFxuICAgICAgXCJwYXJhZGlnbXNcIixcbiAgICAgIFwibWFya2V0c1wiLFxuICAgICAgXCJwYXJ0bmVyc2hpcHNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVzXCIsXG4gICAgICBcInBsYXRmb3Jtc1wiLFxuICAgICAgXCJpbml0aWF0aXZlc1wiLFxuICAgICAgXCJjaGFubmVsc1wiLFxuICAgICAgXCJleWViYWxsc1wiLFxuICAgICAgXCJjb21tdW5pdGllc1wiLFxuICAgICAgXCJST0lcIixcbiAgICAgIFwic29sdXRpb25zXCIsXG4gICAgICBcImUtdGFpbGVyc1wiLFxuICAgICAgXCJlLXNlcnZpY2VzXCIsXG4gICAgICBcImFjdGlvbi1pdGVtc1wiLFxuICAgICAgXCJwb3J0YWxzXCIsXG4gICAgICBcIm5pY2hlc1wiLFxuICAgICAgXCJ0ZWNobm9sb2dpZXNcIixcbiAgICAgIFwiY29udGVudFwiLFxuICAgICAgXCJ2b3J0YWxzXCIsXG4gICAgICBcInN1cHBseS1jaGFpbnNcIixcbiAgICAgIFwiY29udmVyZ2VuY2VcIixcbiAgICAgIFwicmVsYXRpb25zaGlwc1wiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVzXCIsXG4gICAgICBcImludGVyZmFjZXNcIixcbiAgICAgIFwiZS1tYXJrZXRzXCIsXG4gICAgICBcImUtY29tbWVyY2VcIixcbiAgICAgIFwic3lzdGVtc1wiLFxuICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgIFwiaW5mb21lZGlhcmllc1wiLFxuICAgICAgXCJtb2RlbHNcIixcbiAgICAgIFwibWluZHNoYXJlXCIsXG4gICAgICBcImRlbGl2ZXJhYmxlc1wiLFxuICAgICAgXCJ1c2Vyc1wiLFxuICAgICAgXCJzY2hlbWFzXCIsXG4gICAgICBcIm5ldHdvcmtzXCIsXG4gICAgICBcImFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJtZXRyaWNzXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcImV4cGVyaWVuY2VzXCIsXG4gICAgICBcIndlYiBzZXJ2aWNlc1wiLFxuICAgICAgXCJtZXRob2RvbG9naWVzXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSBhbmQgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xucGwuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJwbFwiLFxuICAgIFwiY29tLnBsXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5wbC5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdLFxuICBcInN1cHBsZW1lbnRhbFwiOiBbXG4gICAgXCJhYmJhc1wiLFxuICAgIFwiYWJkdWNvXCIsXG4gICAgXCJhYmVvXCIsXG4gICAgXCJhYnNjaWRvXCIsXG4gICAgXCJhYnNjb25kaXR1c1wiLFxuICAgIFwiYWJzZW5zXCIsXG4gICAgXCJhYnNvcmJlb1wiLFxuICAgIFwiYWJzcXVlXCIsXG4gICAgXCJhYnN0ZXJnb1wiLFxuICAgIFwiYWJzdW1cIixcbiAgICBcImFidW5kYW5zXCIsXG4gICAgXCJhYnV0b3JcIixcbiAgICBcImFjY2Vkb1wiLFxuICAgIFwiYWNjZW5kb1wiLFxuICAgIFwiYWNjZXB0dXNcIixcbiAgICBcImFjY2lwaW9cIixcbiAgICBcImFjY29tbW9kb1wiLFxuICAgIFwiYWNjdXNhdG9yXCIsXG4gICAgXCJhY2VyXCIsXG4gICAgXCJhY2VyYml0YXNcIixcbiAgICBcImFjZXJ2dXNcIixcbiAgICBcImFjaWR1c1wiLFxuICAgIFwiYWNpZXNcIixcbiAgICBcImFjcXVpcm9cIixcbiAgICBcImFjc2lcIixcbiAgICBcImFkYW1vXCIsXG4gICAgXCJhZGF1Z2VvXCIsXG4gICAgXCJhZGRvXCIsXG4gICAgXCJhZGR1Y29cIixcbiAgICBcImFkZW1wdGlvXCIsXG4gICAgXCJhZGVvXCIsXG4gICAgXCJhZGVwdGlvXCIsXG4gICAgXCJhZGZlY3R1c1wiLFxuICAgIFwiYWRmZXJvXCIsXG4gICAgXCJhZGZpY2lvXCIsXG4gICAgXCJhZGZsaWN0b1wiLFxuICAgIFwiYWRoYWVyb1wiLFxuICAgIFwiYWRodWNcIixcbiAgICBcImFkaWNpb1wiLFxuICAgIFwiYWRpbXBsZW9cIixcbiAgICBcImFkaW52ZW50aXRpYXNcIixcbiAgICBcImFkaXBpc2NvclwiLFxuICAgIFwiYWRpdXZvXCIsXG4gICAgXCJhZG1pbmlzdHJhdGlvXCIsXG4gICAgXCJhZG1pcmF0aW9cIixcbiAgICBcImFkbWl0dG9cIixcbiAgICBcImFkbW9uZW9cIixcbiAgICBcImFkbW92ZW9cIixcbiAgICBcImFkbnVvXCIsXG4gICAgXCJhZG9wdG9cIixcbiAgICBcImFkc2lkdWVcIixcbiAgICBcImFkc3RyaW5nb1wiLFxuICAgIFwiYWRzdWVzY29cIixcbiAgICBcImFkc3VtXCIsXG4gICAgXCJhZHVsYXRpb1wiLFxuICAgIFwiYWR1bGVzY2Vuc1wiLFxuICAgIFwiYWR1bHR1c1wiLFxuICAgIFwiYWR1cm9cIixcbiAgICBcImFkdmVuaW9cIixcbiAgICBcImFkdmVyc3VzXCIsXG4gICAgXCJhZHZvY29cIixcbiAgICBcImFlZGlmaWNpdW1cIixcbiAgICBcImFlZ2VyXCIsXG4gICAgXCJhZWdyZVwiLFxuICAgIFwiYWVncm90YXRpb1wiLFxuICAgIFwiYWVncnVzXCIsXG4gICAgXCJhZW5ldXNcIixcbiAgICBcImFlcXVpdGFzXCIsXG4gICAgXCJhZXF1dXNcIixcbiAgICBcImFlclwiLFxuICAgIFwiYWVzdGFzXCIsXG4gICAgXCJhZXN0aXZ1c1wiLFxuICAgIFwiYWVzdHVzXCIsXG4gICAgXCJhZXRhc1wiLFxuICAgIFwiYWV0ZXJudXNcIixcbiAgICBcImFnZXJcIixcbiAgICBcImFnZ2Vyb1wiLFxuICAgIFwiYWdncmVkaW9yXCIsXG4gICAgXCJhZ25pdGlvXCIsXG4gICAgXCJhZ25vc2NvXCIsXG4gICAgXCJhZ29cIixcbiAgICBcImFpdFwiLFxuICAgIFwiYWl1bnRcIixcbiAgICBcImFsaWVudXNcIixcbiAgICBcImFsaWlcIixcbiAgICBcImFsaW9xdWlcIixcbiAgICBcImFsaXF1YVwiLFxuICAgIFwiYWxpdXNcIixcbiAgICBcImFsbGF0dXNcIixcbiAgICBcImFsb1wiLFxuICAgIFwiYWx0ZXJcIixcbiAgICBcImFsdHVzXCIsXG4gICAgXCJhbHZldXNcIixcbiAgICBcImFtYXJpdHVkb1wiLFxuICAgIFwiYW1iaXR1c1wiLFxuICAgIFwiYW1idWxvXCIsXG4gICAgXCJhbWljaXRpYVwiLFxuICAgIFwiYW1pY3VsdW1cIixcbiAgICBcImFtaXNzaW9cIixcbiAgICBcImFtaXRhXCIsXG4gICAgXCJhbWl0dG9cIixcbiAgICBcImFtb1wiLFxuICAgIFwiYW1vclwiLFxuICAgIFwiYW1vdmVvXCIsXG4gICAgXCJhbXBsZXh1c1wiLFxuICAgIFwiYW1wbGl0dWRvXCIsXG4gICAgXCJhbXBsdXNcIixcbiAgICBcImFuY2lsbGFcIixcbiAgICBcImFuZ2VsdXNcIixcbiAgICBcImFuZ3VsdXNcIixcbiAgICBcImFuZ3VzdHVzXCIsXG4gICAgXCJhbmltYWR2ZXJ0b1wiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImFuaW11c1wiLFxuICAgIFwiYW5udXNcIixcbiAgICBcImFuc2VyXCIsXG4gICAgXCJhbnRlXCIsXG4gICAgXCJhbnRlYVwiLFxuICAgIFwiYW50ZXBvbm9cIixcbiAgICBcImFudGlxdXVzXCIsXG4gICAgXCJhcGVyaW9cIixcbiAgICBcImFwZXJ0ZVwiLFxuICAgIFwiYXBvc3RvbHVzXCIsXG4gICAgXCJhcHBhcmF0dXNcIixcbiAgICBcImFwcGVsbG9cIixcbiAgICBcImFwcG9ub1wiLFxuICAgIFwiYXBwb3NpdHVzXCIsXG4gICAgXCJhcHByb2JvXCIsXG4gICAgXCJhcHRvXCIsXG4gICAgXCJhcHR1c1wiLFxuICAgIFwiYXB1ZFwiLFxuICAgIFwiYXF1YVwiLFxuICAgIFwiYXJhXCIsXG4gICAgXCJhcmFuZWFcIixcbiAgICBcImFyYml0cm9cIixcbiAgICBcImFyYm9yXCIsXG4gICAgXCJhcmJ1c3R1bVwiLFxuICAgIFwiYXJjYVwiLFxuICAgIFwiYXJjZW9cIixcbiAgICBcImFyY2Vzc29cIixcbiAgICBcImFyY3VzXCIsXG4gICAgXCJhcmdlbnR1bVwiLFxuICAgIFwiYXJndW1lbnR1bVwiLFxuICAgIFwiYXJndW9cIixcbiAgICBcImFybWFcIixcbiAgICBcImFybWFyaXVtXCIsXG4gICAgXCJhcm1vXCIsXG4gICAgXCJhcm9cIixcbiAgICBcImFyc1wiLFxuICAgIFwiYXJ0aWN1bHVzXCIsXG4gICAgXCJhcnRpZmljaW9zZVwiLFxuICAgIFwiYXJ0b1wiLFxuICAgIFwiYXJ4XCIsXG4gICAgXCJhc2Npc2NvXCIsXG4gICAgXCJhc2NpdFwiLFxuICAgIFwiYXNwZXJcIixcbiAgICBcImFzcGljaW9cIixcbiAgICBcImFzcG9ydG9cIixcbiAgICBcImFzc2VudGF0b3JcIixcbiAgICBcImFzdHJ1bVwiLFxuICAgIFwiYXRhdnVzXCIsXG4gICAgXCJhdGVyXCIsXG4gICAgXCJhdHF1aVwiLFxuICAgIFwiYXRyb2NpdGFzXCIsXG4gICAgXCJhdHJveFwiLFxuICAgIFwiYXR0ZXJvXCIsXG4gICAgXCJhdHRvbGxvXCIsXG4gICAgXCJhdHRvbmJpdHVzXCIsXG4gICAgXCJhdWN0b3JcIixcbiAgICBcImF1Y3R1c1wiLFxuICAgIFwiYXVkYWNpYVwiLFxuICAgIFwiYXVkYXhcIixcbiAgICBcImF1ZGVudGlhXCIsXG4gICAgXCJhdWRlb1wiLFxuICAgIFwiYXVkaW9cIixcbiAgICBcImF1ZGl0b3JcIixcbiAgICBcImF1ZmVyb1wiLFxuICAgIFwiYXVyZXVzXCIsXG4gICAgXCJhdXJpc1wiLFxuICAgIFwiYXVydW1cIixcbiAgICBcImF1dFwiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcImF1dHVzXCIsXG4gICAgXCJhdXhpbGl1bVwiLFxuICAgIFwiYXZhcml0aWFcIixcbiAgICBcImF2YXJ1c1wiLFxuICAgIFwiYXZlaG9cIixcbiAgICBcImF2ZXJ0b1wiLFxuICAgIFwiYXZvY29cIixcbiAgICBcImJhaXVsdXNcIixcbiAgICBcImJhbGJ1c1wiLFxuICAgIFwiYmFyYmFcIixcbiAgICBcImJhcmR1c1wiLFxuICAgIFwiYmFzaXVtXCIsXG4gICAgXCJiZWF0dXNcIixcbiAgICBcImJlbGxpY3VzXCIsXG4gICAgXCJiZWxsdW1cIixcbiAgICBcImJlbmVcIixcbiAgICBcImJlbmVmaWNpdW1cIixcbiAgICBcImJlbmV2b2xlbnRpYVwiLFxuICAgIFwiYmVuaWduZVwiLFxuICAgIFwiYmVzdGlhXCIsXG4gICAgXCJiaWJvXCIsXG4gICAgXCJiaXNcIixcbiAgICBcImJsYW5kaW9yXCIsXG4gICAgXCJib251c1wiLFxuICAgIFwiYm9zXCIsXG4gICAgXCJicmV2aXNcIixcbiAgICBcImNhZG9cIixcbiAgICBcImNhZWN1c1wiLFxuICAgIFwiY2FlbGVzdGlzXCIsXG4gICAgXCJjYWVsdW1cIixcbiAgICBcImNhbGFtaXRhc1wiLFxuICAgIFwiY2FsY2FyXCIsXG4gICAgXCJjYWxjb1wiLFxuICAgIFwiY2FsY3VsdXNcIixcbiAgICBcImNhbGxpZGVcIixcbiAgICBcImNhbXBhbmFcIixcbiAgICBcImNhbmRpZHVzXCIsXG4gICAgXCJjYW5pc1wiLFxuICAgIFwiY2Fub25pY3VzXCIsXG4gICAgXCJjYW50b1wiLFxuICAgIFwiY2FwaWxsdXNcIixcbiAgICBcImNhcGlvXCIsXG4gICAgXCJjYXBpdHVsdXNcIixcbiAgICBcImNhcHRvXCIsXG4gICAgXCJjYXB1dFwiLFxuICAgIFwiY2FyYm9cIixcbiAgICBcImNhcmNlclwiLFxuICAgIFwiY2FyZW9cIixcbiAgICBcImNhcmllc1wiLFxuICAgIFwiY2FyaW9zdXNcIixcbiAgICBcImNhcml0YXNcIixcbiAgICBcImNhcm1lblwiLFxuICAgIFwiY2FycG9cIixcbiAgICBcImNhcnVzXCIsXG4gICAgXCJjYXNzb1wiLFxuICAgIFwiY2FzdGVcIixcbiAgICBcImNhc3VzXCIsXG4gICAgXCJjYXRlbmFcIixcbiAgICBcImNhdGVydmFcIixcbiAgICBcImNhdHR1c1wiLFxuICAgIFwiY2F1ZGFcIixcbiAgICBcImNhdXNhXCIsXG4gICAgXCJjYXV0ZVwiLFxuICAgIFwiY2F2ZW9cIixcbiAgICBcImNhdnVzXCIsXG4gICAgXCJjZWRvXCIsXG4gICAgXCJjZWxlYnJlclwiLFxuICAgIFwiY2VsZXJcIixcbiAgICBcImNlbG9cIixcbiAgICBcImNlbmFcIixcbiAgICBcImNlbmFjdWx1bVwiLFxuICAgIFwiY2Vub1wiLFxuICAgIFwiY2Vuc3VyYVwiLFxuICAgIFwiY2VudHVtXCIsXG4gICAgXCJjZXJub1wiLFxuICAgIFwiY2VybnV1c1wiLFxuICAgIFwiY2VydGVcIixcbiAgICBcImNlcnRvXCIsXG4gICAgXCJjZXJ0dXNcIixcbiAgICBcImNlcnZ1c1wiLFxuICAgIFwiY2V0ZXJhXCIsXG4gICAgXCJjaGFyaXNtYVwiLFxuICAgIFwiY2hpcm9ncmFwaHVtXCIsXG4gICAgXCJjaWJvXCIsXG4gICAgXCJjaWJ1c1wiLFxuICAgIFwiY2ljdXRhXCIsXG4gICAgXCJjaWxpY2l1bVwiLFxuICAgIFwiY2ltZW50YXJpdXNcIixcbiAgICBcImNpbWluYXRpb1wiLFxuICAgIFwiY2luaXNcIixcbiAgICBcImNpcmN1bXZlbmlvXCIsXG4gICAgXCJjaXRvXCIsXG4gICAgXCJjaXZpc1wiLFxuICAgIFwiY2l2aXRhc1wiLFxuICAgIFwiY2xhbVwiLFxuICAgIFwiY2xhbW9cIixcbiAgICBcImNsYXJvXCIsXG4gICAgXCJjbGFydXNcIixcbiAgICBcImNsYXVkZW9cIixcbiAgICBcImNsYXVzdHJ1bVwiLFxuICAgIFwiY2xlbWVudGlhXCIsXG4gICAgXCJjbGliYW51c1wiLFxuICAgIFwiY29hZHVuYXRpb1wiLFxuICAgIFwiY29hZWdyZXNjb1wiLFxuICAgIFwiY29lcGlcIixcbiAgICBcImNvZXJjZW9cIixcbiAgICBcImNvZ2l0b1wiLFxuICAgIFwiY29nbmF0dXNcIixcbiAgICBcImNvZ25vbWVuXCIsXG4gICAgXCJjb2dvXCIsXG4gICAgXCJjb2hhZXJvXCIsXG4gICAgXCJjb2hpYmVvXCIsXG4gICAgXCJjb2hvcnNcIixcbiAgICBcImNvbGxpZ29cIixcbiAgICBcImNvbGxvY29cIixcbiAgICBcImNvbGx1bVwiLFxuICAgIFwiY29sb1wiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbWFcIixcbiAgICBcImNvbWJpYm9cIixcbiAgICBcImNvbWJ1cm9cIixcbiAgICBcImNvbWVkb1wiLFxuICAgIFwiY29tZXNcIixcbiAgICBcImNvbWV0ZXNcIixcbiAgICBcImNvbWlzXCIsXG4gICAgXCJjb21pdGF0dXNcIixcbiAgICBcImNvbW1lbW9yb1wiLFxuICAgIFwiY29tbWlub3JcIixcbiAgICBcImNvbW1vZG9cIixcbiAgICBcImNvbW11bmlzXCIsXG4gICAgXCJjb21wYXJvXCIsXG4gICAgXCJjb21wZWxsb1wiLFxuICAgIFwiY29tcGxlY3R1c1wiLFxuICAgIFwiY29tcG9ub1wiLFxuICAgIFwiY29tcHJlaGVuZG9cIixcbiAgICBcImNvbXB0dXNcIixcbiAgICBcImNvbmF0dXNcIixcbiAgICBcImNvbmNlZG9cIixcbiAgICBcImNvbmNpZG9cIixcbiAgICBcImNvbmN1bGNvXCIsXG4gICAgXCJjb25kaWNvXCIsXG4gICAgXCJjb25kdWNvXCIsXG4gICAgXCJjb25mZXJvXCIsXG4gICAgXCJjb25maWRvXCIsXG4gICAgXCJjb25mb3J0b1wiLFxuICAgIFwiY29uZnVnb1wiLFxuICAgIFwiY29uZ3JlZ2F0aW9cIixcbiAgICBcImNvbmljaW9cIixcbiAgICBcImNvbmllY3RvXCIsXG4gICAgXCJjb25pdG9yXCIsXG4gICAgXCJjb25pdXJhdGlvXCIsXG4gICAgXCJjb25vclwiLFxuICAgIFwiY29ucXVlcm9yXCIsXG4gICAgXCJjb25zY2VuZG9cIixcbiAgICBcImNvbnNlcnZvXCIsXG4gICAgXCJjb25zaWRlcm9cIixcbiAgICBcImNvbnNwZXJnb1wiLFxuICAgIFwiY29uc3RhbnNcIixcbiAgICBcImNvbnN1YXNvclwiLFxuICAgIFwiY29udGFiZXNjb1wiLFxuICAgIFwiY29udGVnb1wiLFxuICAgIFwiY29udGlnb1wiLFxuICAgIFwiY29udHJhXCIsXG4gICAgXCJjb250dXJib1wiLFxuICAgIFwiY29udmVudHVzXCIsXG4gICAgXCJjb252b2NvXCIsXG4gICAgXCJjb3BpYVwiLFxuICAgIFwiY29waW9zZVwiLFxuICAgIFwiY29ybnVcIixcbiAgICBcImNvcm9uYVwiLFxuICAgIFwiY29ycHVzXCIsXG4gICAgXCJjb3JyZXB0aXVzXCIsXG4gICAgXCJjb3JyaWdvXCIsXG4gICAgXCJjb3Jyb2Jvcm9cIixcbiAgICBcImNvcnJ1bXBvXCIsXG4gICAgXCJjb3J1c2N1c1wiLFxuICAgIFwiY290aWRpZVwiLFxuICAgIFwiY3JhcHVsYVwiLFxuICAgIFwiY3Jhc1wiLFxuICAgIFwiY3Jhc3RpbnVzXCIsXG4gICAgXCJjcmVhdG9yXCIsXG4gICAgXCJjcmViZXJcIixcbiAgICBcImNyZWJyb1wiLFxuICAgIFwiY3JlZG9cIixcbiAgICBcImNyZW9cIixcbiAgICBcImNyZXB0aW9cIixcbiAgICBcImNyZXB1c2N1bHVtXCIsXG4gICAgXCJjcmVzY29cIixcbiAgICBcImNyZXRhXCIsXG4gICAgXCJjcmlicm9cIixcbiAgICBcImNyaW5pc1wiLFxuICAgIFwiY3J1Y2lhbWVudHVtXCIsXG4gICAgXCJjcnVkZWxpc1wiLFxuICAgIFwiY3J1ZW50dXNcIixcbiAgICBcImNydXJcIixcbiAgICBcImNydXN0dWx1bVwiLFxuICAgIFwiY3J1eFwiLFxuICAgIFwiY3ViaWN1bGFyaXNcIixcbiAgICBcImN1Yml0dW1cIixcbiAgICBcImN1Ym9cIixcbiAgICBcImN1aVwiLFxuICAgIFwiY3VpdXNcIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJjdWxwb1wiLFxuICAgIFwiY3VsdGVsbHVzXCIsXG4gICAgXCJjdWx0dXJhXCIsXG4gICAgXCJjdW1cIixcbiAgICBcImN1bmFidWxhXCIsXG4gICAgXCJjdW5hZVwiLFxuICAgIFwiY3VuY3RhdGlvXCIsXG4gICAgXCJjdXBpZGl0YXNcIixcbiAgICBcImN1cGlvXCIsXG4gICAgXCJjdXBwZWRpYVwiLFxuICAgIFwiY3VwcmVzc3VzXCIsXG4gICAgXCJjdXJcIixcbiAgICBcImN1cmFcIixcbiAgICBcImN1cmF0aW9cIixcbiAgICBcImN1cmlhXCIsXG4gICAgXCJjdXJpb3NpdGFzXCIsXG4gICAgXCJjdXJpc1wiLFxuICAgIFwiY3Vyb1wiLFxuICAgIFwiY3VycmljdWx1bVwiLFxuICAgIFwiY3VycnVzXCIsXG4gICAgXCJjdXJzaW1cIixcbiAgICBcImN1cnNvXCIsXG4gICAgXCJjdXJzdXNcIixcbiAgICBcImN1cnRvXCIsXG4gICAgXCJjdXJ0dXNcIixcbiAgICBcImN1cnZvXCIsXG4gICAgXCJjdXJ2dXNcIixcbiAgICBcImN1c3RvZGlhXCIsXG4gICAgXCJkYW1uYXRpb1wiLFxuICAgIFwiZGFtbm9cIixcbiAgICBcImRhcGlmZXJcIixcbiAgICBcImRlYmVvXCIsXG4gICAgXCJkZWJpbGl0b1wiLFxuICAgIFwiZGVjZW5zXCIsXG4gICAgXCJkZWNlcm5vXCIsXG4gICAgXCJkZWNldFwiLFxuICAgIFwiZGVjaW11c1wiLFxuICAgIFwiZGVjaXBpb1wiLFxuICAgIFwiZGVjb3JcIixcbiAgICBcImRlY3JldHVtXCIsXG4gICAgXCJkZWN1bWJvXCIsXG4gICAgXCJkZWRlY29yXCIsXG4gICAgXCJkZWRpY29cIixcbiAgICBcImRlZHVjb1wiLFxuICAgIFwiZGVmYWVjb1wiLFxuICAgIFwiZGVmZW5kb1wiLFxuICAgIFwiZGVmZXJvXCIsXG4gICAgXCJkZWZlc3N1c1wiLFxuICAgIFwiZGVmZXRpc2NvclwiLFxuICAgIFwiZGVmaWNpb1wiLFxuICAgIFwiZGVmaWdvXCIsXG4gICAgXCJkZWZsZW9cIixcbiAgICBcImRlZmx1b1wiLFxuICAgIFwiZGVmdW5nb1wiLFxuICAgIFwiZGVnZW5lcm9cIixcbiAgICBcImRlZ2Vyb1wiLFxuICAgIFwiZGVndXN0b1wiLFxuICAgIFwiZGVpbmRlXCIsXG4gICAgXCJkZWxlY3RhdGlvXCIsXG4gICAgXCJkZWxlZ29cIixcbiAgICBcImRlbGVvXCIsXG4gICAgXCJkZWxpYmVyb1wiLFxuICAgIFwiZGVsaWNhdGVcIixcbiAgICBcImRlbGlucXVvXCIsXG4gICAgXCJkZWx1ZG9cIixcbiAgICBcImRlbWVuc1wiLFxuICAgIFwiZGVtZXJnb1wiLFxuICAgIFwiZGVtaXR0b1wiLFxuICAgIFwiZGVtb1wiLFxuICAgIFwiZGVtb25zdHJvXCIsXG4gICAgXCJkZW1vcm9yXCIsXG4gICAgXCJkZW11bGNlb1wiLFxuICAgIFwiZGVtdW1cIixcbiAgICBcImRlbmVnb1wiLFxuICAgIFwiZGVuaXF1ZVwiLFxuICAgIFwiZGVuc1wiLFxuICAgIFwiZGVudW5jaW9cIixcbiAgICBcImRlbnVvXCIsXG4gICAgXCJkZW9yc3VtXCIsXG4gICAgXCJkZXBlcmVvXCIsXG4gICAgXCJkZXBvbm9cIixcbiAgICBcImRlcG9wdWxvXCIsXG4gICAgXCJkZXBvcnRvXCIsXG4gICAgXCJkZXByYWVkb3JcIixcbiAgICBcImRlcHJlY2F0b3JcIixcbiAgICBcImRlcHJpbW9cIixcbiAgICBcImRlcHJvbW9cIixcbiAgICBcImRlcHVsc29cIixcbiAgICBcImRlcHV0b1wiLFxuICAgIFwiZGVyZWxpbnF1b1wiLFxuICAgIFwiZGVyaWRlb1wiLFxuICAgIFwiZGVyaXBpb1wiLFxuICAgIFwiZGVzaWRlcm9cIixcbiAgICBcImRlc2lub1wiLFxuICAgIFwiZGVzaXBpb1wiLFxuICAgIFwiZGVzb2xvXCIsXG4gICAgXCJkZXNwYXJhdHVzXCIsXG4gICAgXCJkZXNwZWN0b1wiLFxuICAgIFwiZGVzcGlybWF0aW9cIixcbiAgICBcImluZml0XCIsXG4gICAgXCJpbmZsYW1tYXRpb1wiLFxuICAgIFwicGFlbnNcIixcbiAgICBcInBhdGlvclwiLFxuICAgIFwicGF0cmlhXCIsXG4gICAgXCJwYXRyb2Npbm9yXCIsXG4gICAgXCJwYXRydXVzXCIsXG4gICAgXCJwYXVjaVwiLFxuICAgIFwicGF1bGF0aW1cIixcbiAgICBcInBhdXBlclwiLFxuICAgIFwicGF4XCIsXG4gICAgXCJwZWNjYXR1c1wiLFxuICAgIFwicGVjY29cIixcbiAgICBcInBlY3RvXCIsXG4gICAgXCJwZWN0dXNcIixcbiAgICBcInBlY3VuaWFcIixcbiAgICBcInBlY3VzXCIsXG4gICAgXCJwZWlvclwiLFxuICAgIFwicGVsXCIsXG4gICAgXCJvY2VyXCIsXG4gICAgXCJzb2NpdXNcIixcbiAgICBcInNvZGFsaXRhc1wiLFxuICAgIFwic29sXCIsXG4gICAgXCJzb2xlb1wiLFxuICAgIFwic29saW9cIixcbiAgICBcInNvbGl0dWRvXCIsXG4gICAgXCJzb2xpdW1cIixcbiAgICBcInNvbGxlcnNcIixcbiAgICBcInNvbGxpY2l0b1wiLFxuICAgIFwic29sdW1cIixcbiAgICBcInNvbHVzXCIsXG4gICAgXCJzb2x1dGlvXCIsXG4gICAgXCJzb2x2b1wiLFxuICAgIFwic29tbmljdWxvc3VzXCIsXG4gICAgXCJzb21udXNcIixcbiAgICBcInNvbml0dXNcIixcbiAgICBcInNvbm9cIixcbiAgICBcInNvcGhpc21hdGFcIixcbiAgICBcInNvcG9yXCIsXG4gICAgXCJzb3JkZW9cIixcbiAgICBcInNvcnRpdHVzXCIsXG4gICAgXCJzcGFyZ29cIixcbiAgICBcInNwZWNpb3N1c1wiLFxuICAgIFwic3BlY3RhY3VsdW1cIixcbiAgICBcInNwZWN1bHVtXCIsXG4gICAgXCJzcGVybm9cIixcbiAgICBcInNwZXJvXCIsXG4gICAgXCJzcGVzXCIsXG4gICAgXCJzcGljdWx1bVwiLFxuICAgIFwic3Bpcml0dXNcIixcbiAgICBcInNwb2xpYXRpb1wiLFxuICAgIFwic3BvbnRlXCIsXG4gICAgXCJzdGFiaWxpc1wiLFxuICAgIFwic3RhdGltXCIsXG4gICAgXCJzdGF0dWFcIixcbiAgICBcInN0ZWxsYVwiLFxuICAgIFwic3RpbGxpY2lkaXVtXCIsXG4gICAgXCJzdGlwZXNcIixcbiAgICBcInN0aXBzXCIsXG4gICAgXCJzdG9cIixcbiAgICBcInN0cmVudXVzXCIsXG4gICAgXCJzdHJ1ZXNcIixcbiAgICBcInN0dWRpb1wiLFxuICAgIFwic3R1bHR1c1wiLFxuICAgIFwic3VhZGVvXCIsXG4gICAgXCJzdWFzb3JpYVwiLFxuICAgIFwic3ViXCIsXG4gICAgXCJzdWJpdG9cIixcbiAgICBcInN1Yml1bmdvXCIsXG4gICAgXCJzdWJsaW1lXCIsXG4gICAgXCJzdWJuZWN0b1wiLFxuICAgIFwic3Vic2Vjb1wiLFxuICAgIFwic3Vic3RhbnRpYVwiLFxuICAgIFwic3VidmVuaW9cIixcbiAgICBcInN1Y2NlZG9cIixcbiAgICBcInN1Y2N1cnJvXCIsXG4gICAgXCJzdWZmaWNpb1wiLFxuICAgIFwic3VmZm9jb1wiLFxuICAgIFwic3VmZnJhZ2l1bVwiLFxuICAgIFwic3VnZ2Vyb1wiLFxuICAgIFwic3VpXCIsXG4gICAgXCJzdWx1bVwiLFxuICAgIFwic3VtXCIsXG4gICAgXCJzdW1tYVwiLFxuICAgIFwic3VtbWlzc2VcIixcbiAgICBcInN1bW1vcGVyZVwiLFxuICAgIFwic3Vtb1wiLFxuICAgIFwic3VtcHR1c1wiLFxuICAgIFwic3VwZWxsZXhcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzdXBwZWxsZXhcIixcbiAgICBcInN1cHBsYW50b1wiLFxuICAgIFwic3VwcG9ub1wiLFxuICAgIFwic3VwcmFcIixcbiAgICBcInN1cmN1bHVzXCIsXG4gICAgXCJzdXJnb1wiLFxuICAgIFwic3Vyc3VtXCIsXG4gICAgXCJzdXNjaXBpb1wiLFxuICAgIFwic3VzcGVuZG9cIixcbiAgICBcInN1c3RpbmVvXCIsXG4gICAgXCJzdXVzXCIsXG4gICAgXCJzeW5hZ29nYVwiLFxuICAgIFwidGFiZWxsYVwiLFxuICAgIFwidGFiZXJudXNcIixcbiAgICBcInRhYmVzY29cIixcbiAgICBcInRhYmdvXCIsXG4gICAgXCJ0YWJ1bGFcIixcbiAgICBcInRhY2VvXCIsXG4gICAgXCJ0YWN0dXNcIixcbiAgICBcInRhZWRpdW1cIixcbiAgICBcInRhbGlvXCIsXG4gICAgXCJ0YWxpc1wiLFxuICAgIFwidGFsdXNcIixcbiAgICBcInRhbVwiLFxuICAgIFwidGFtZGl1XCIsXG4gICAgXCJ0YW1lblwiLFxuICAgIFwidGFtZXRzaVwiLFxuICAgIFwidGFtaXNpdW1cIixcbiAgICBcInRhbXF1YW1cIixcbiAgICBcInRhbmRlbVwiLFxuICAgIFwidGFudGlsbHVzXCIsXG4gICAgXCJ0YW50dW1cIixcbiAgICBcInRhcmR1c1wiLFxuICAgIFwidGVnb1wiLFxuICAgIFwidGVtZXJpdGFzXCIsXG4gICAgXCJ0ZW1wZXJhbnRpYVwiLFxuICAgIFwidGVtcGx1bVwiLFxuICAgIFwidGVtcHRhdGlvXCIsXG4gICAgXCJ0ZW1wdXNcIixcbiAgICBcInRlbmF4XCIsXG4gICAgXCJ0ZW5kb1wiLFxuICAgIFwidGVuZW9cIixcbiAgICBcInRlbmVyXCIsXG4gICAgXCJ0ZW51aXNcIixcbiAgICBcInRlbnVzXCIsXG4gICAgXCJ0ZXBlc2NvXCIsXG4gICAgXCJ0ZXBpZHVzXCIsXG4gICAgXCJ0ZXJcIixcbiAgICBcInRlcmVicm9cIixcbiAgICBcInRlcmVzXCIsXG4gICAgXCJ0ZXJnYVwiLFxuICAgIFwidGVyZ2VvXCIsXG4gICAgXCJ0ZXJnaXZlcnNhdGlvXCIsXG4gICAgXCJ0ZXJnb1wiLFxuICAgIFwidGVyZ3VtXCIsXG4gICAgXCJ0ZXJtZXNcIixcbiAgICBcInRlcm1pbmF0aW9cIixcbiAgICBcInRlcm9cIixcbiAgICBcInRlcnJhXCIsXG4gICAgXCJ0ZXJyZW9cIixcbiAgICBcInRlcnJpdG9cIixcbiAgICBcInRlcnJvclwiLFxuICAgIFwidGVyc3VzXCIsXG4gICAgXCJ0ZXJ0aXVzXCIsXG4gICAgXCJ0ZXN0aW1vbml1bVwiLFxuICAgIFwidGV4b1wiLFxuICAgIFwidGV4dGlsaXNcIixcbiAgICBcInRleHRvclwiLFxuICAgIFwidGV4dHVzXCIsXG4gICAgXCJ0aGFsYXNzaW51c1wiLFxuICAgIFwidGhlYXRydW1cIixcbiAgICBcInRoZWNhXCIsXG4gICAgXCJ0aGVtYVwiLFxuICAgIFwidGhlb2xvZ3VzXCIsXG4gICAgXCJ0aGVybWFlXCIsXG4gICAgXCJ0aGVzYXVydXNcIixcbiAgICBcInRoZXNpc1wiLFxuICAgIFwidGhvcmF4XCIsXG4gICAgXCJ0aHltYnJhXCIsXG4gICAgXCJ0aHltdW1cIixcbiAgICBcInRpYmlcIixcbiAgICBcInRpbWlkdXNcIixcbiAgICBcInRpbW9yXCIsXG4gICAgXCJ0aXR1bHVzXCIsXG4gICAgXCJ0b2xlcm9cIixcbiAgICBcInRvbGxvXCIsXG4gICAgXCJ0b25kZW9cIixcbiAgICBcInRvbnNvclwiLFxuICAgIFwidG9ycXVlb1wiLFxuICAgIFwidG9ycmVuc1wiLFxuICAgIFwidG90XCIsXG4gICAgXCJ0b3RpZGVtXCIsXG4gICAgXCJ0b3RpZXNcIixcbiAgICBcInRvdHVzXCIsXG4gICAgXCJ0cmFjdG9cIixcbiAgICBcInRyYWRvXCIsXG4gICAgXCJ0cmFob1wiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyZWRlY2ltXCIsXG4gICAgXCJ0cmVtb1wiLFxuICAgIFwidHJlcGlkZVwiLFxuICAgIFwidHJlc1wiLFxuICAgIFwidHJpYnVvXCIsXG4gICAgXCJ0cmljZXNpbXVzXCIsXG4gICAgXCJ0cmlkdWFuYVwiLFxuICAgIFwidHJpZ2ludGFcIixcbiAgICBcInRyaXB1ZGlvXCIsXG4gICAgXCJ0cmlzdGlzXCIsXG4gICAgXCJ0cml1bXBodXNcIixcbiAgICBcInRydWNpZG9cIixcbiAgICBcInRydWN1bGVudGVyXCIsXG4gICAgXCJ0dWJpbmV1c1wiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0dW1cIixcbiAgICBcInR1bXVsdHVzXCIsXG4gICAgXCJ0dW5jXCIsXG4gICAgXCJ0dXJiYVwiLFxuICAgIFwidHVyYm9cIixcbiAgICBcInR1cnBlXCIsXG4gICAgXCJ0dXJwaXNcIixcbiAgICBcInR1dGFtZW5cIixcbiAgICBcInR1dGlzXCIsXG4gICAgXCJ0eXJhbm51c1wiLFxuICAgIFwidWJlcnJpbWVcIixcbiAgICBcInViaVwiLFxuICAgIFwidWxjaXNjb3JcIixcbiAgICBcInVsbHVzXCIsXG4gICAgXCJ1bHRlcml1c1wiLFxuICAgIFwidWx0aW9cIixcbiAgICBcInVsdHJhXCIsXG4gICAgXCJ1bWJyYVwiLFxuICAgIFwidW1lcnVzXCIsXG4gICAgXCJ1bXF1YW1cIixcbiAgICBcInVuYVwiLFxuICAgIFwidW5kZVwiLFxuICAgIFwidW5kaXF1ZVwiLFxuICAgIFwidW5pdmVyc2VcIixcbiAgICBcInVudXNcIixcbiAgICBcInVyYmFudXNcIixcbiAgICBcInVyYnNcIixcbiAgICBcInVyZWRvXCIsXG4gICAgXCJ1c2l0YXNcIixcbiAgICBcInVzcXVlXCIsXG4gICAgXCJ1c3RpbG9cIixcbiAgICBcInVzdHVsb1wiLFxuICAgIFwidXN1c1wiLFxuICAgIFwidXRlclwiLFxuICAgIFwidXRlcnF1ZVwiLFxuICAgIFwidXRpbGlzXCIsXG4gICAgXCJ1dGlxdWVcIixcbiAgICBcInV0b3JcIixcbiAgICBcInV0cG90ZVwiLFxuICAgIFwidXRyaW1xdWVcIixcbiAgICBcInV0cm9xdWVcIixcbiAgICBcInV0cnVtXCIsXG4gICAgXCJ1eG9yXCIsXG4gICAgXCJ2YWNvXCIsXG4gICAgXCJ2YWN1dXNcIixcbiAgICBcInZhZG9cIixcbiAgICBcInZhZVwiLFxuICAgIFwidmFsZGVcIixcbiAgICBcInZhbGVuc1wiLFxuICAgIFwidmFsZW9cIixcbiAgICBcInZhbGV0dWRvXCIsXG4gICAgXCJ2YWxpZHVzXCIsXG4gICAgXCJ2YWxsdW1cIixcbiAgICBcInZhcHVsdXNcIixcbiAgICBcInZhcmlldGFzXCIsXG4gICAgXCJ2YXJpdXNcIixcbiAgICBcInZlaGVtZW5zXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcInZlbG9jaXRlclwiLFxuICAgIFwidmVsdW1cIixcbiAgICBcInZlbHV0XCIsXG4gICAgXCJ2ZW5pYVwiLFxuICAgIFwidmVuaW9cIixcbiAgICBcInZlbnRpdG9cIixcbiAgICBcInZlbnRvc3VzXCIsXG4gICAgXCJ2ZW50dXNcIixcbiAgICBcInZlbnVzdGFzXCIsXG4gICAgXCJ2ZXJcIixcbiAgICBcInZlcmJlcmFcIixcbiAgICBcInZlcmJ1bVwiLFxuICAgIFwidmVyZVwiLFxuICAgIFwidmVyZWN1bmRpYVwiLFxuICAgIFwidmVyZW9yXCIsXG4gICAgXCJ2ZXJnb1wiLFxuICAgIFwidmVyaXRhc1wiLFxuICAgIFwidmVyb1wiLFxuICAgIFwidmVyc3VzXCIsXG4gICAgXCJ2ZXJ0b1wiLFxuICAgIFwidmVydW10YW1lblwiLFxuICAgIFwidmVydXNcIixcbiAgICBcInZlc2NvXCIsXG4gICAgXCJ2ZXNpY2FcIixcbiAgICBcInZlc3BlclwiLFxuICAgIFwidmVzcGlsbG9cIixcbiAgICBcInZlc3RlclwiLFxuICAgIFwidmVzdGlnaXVtXCIsXG4gICAgXCJ2ZXN0cnVtXCIsXG4gICAgXCJ2ZXR1c1wiLFxuICAgIFwidmlhXCIsXG4gICAgXCJ2aWNpbnVzXCIsXG4gICAgXCJ2aWNpc3NpdHVkb1wiLFxuICAgIFwidmljdG9yaWFcIixcbiAgICBcInZpY3R1c1wiLFxuICAgIFwidmlkZWxpY2V0XCIsXG4gICAgXCJ2aWRlb1wiLFxuICAgIFwidmlkdWF0YVwiLFxuICAgIFwidmlkdW9cIixcbiAgICBcInZpZ2lsb1wiLFxuICAgIFwidmlnb3JcIixcbiAgICBcInZpbGljdXNcIixcbiAgICBcInZpbGlzXCIsXG4gICAgXCJ2aWxpdGFzXCIsXG4gICAgXCJ2aWxsYVwiLFxuICAgIFwidmluY29cIixcbiAgICBcInZpbmN1bHVtXCIsXG4gICAgXCJ2aW5kaWNvXCIsXG4gICAgXCJ2aW5pdG9yXCIsXG4gICAgXCJ2aW51bVwiLFxuICAgIFwidmlyXCIsXG4gICAgXCJ2aXJnYVwiLFxuICAgIFwidmlyZ29cIixcbiAgICBcInZpcmlkaXNcIixcbiAgICBcInZpcmlsaXRlclwiLFxuICAgIFwidmlydHVzXCIsXG4gICAgXCJ2aXNcIixcbiAgICBcInZpc2N1c1wiLFxuICAgIFwidml0YVwiLFxuICAgIFwidml0aW9zdXNcIixcbiAgICBcInZpdGl1bVwiLFxuICAgIFwidml0b1wiLFxuICAgIFwidml2b1wiLFxuICAgIFwidml4XCIsXG4gICAgXCJ2b2Jpc1wiLFxuICAgIFwidm9jaWZlcm9yXCIsXG4gICAgXCJ2b2NvXCIsXG4gICAgXCJ2b2xhdGljdXNcIixcbiAgICBcInZvbG9cIixcbiAgICBcInZvbHViaWxpc1wiLFxuICAgIFwidm9sdW50YXJpdXNcIixcbiAgICBcInZvbHVwXCIsXG4gICAgXCJ2b2x1dGFicnVtXCIsXG4gICAgXCJ2b2x2YVwiLFxuICAgIFwidm9tZXJcIixcbiAgICBcInZvbWljYVwiLFxuICAgIFwidm9taXRvXCIsXG4gICAgXCJ2b3JhZ29cIixcbiAgICBcInZvcmF4XCIsXG4gICAgXCJ2b3JvXCIsXG4gICAgXCJ2b3NcIixcbiAgICBcInZvdHVtXCIsXG4gICAgXCJ2b3Zlb1wiLFxuICAgIFwidm94XCIsXG4gICAgXCJ2dWxhcml0ZXJcIixcbiAgICBcInZ1bGdhcmlzXCIsXG4gICAgXCJ2dWxnaXZhZ3VzXCIsXG4gICAgXCJ2dWxnb1wiLFxuICAgIFwidnVsZ3VzXCIsXG4gICAgXCJ2dWxuZXJvXCIsXG4gICAgXCJ2dWxudXNcIixcbiAgICBcInZ1bHBlc1wiLFxuICAgIFwidnVsdGljdWx1c1wiLFxuICAgIFwidnVsdHVvc3VzXCIsXG4gICAgXCJ4aXBoaWFzXCJcbiAgXVxufTtcbnBsLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjEyLSMjIy0jIy0jI1wiLFxuICAgIFwiMTMtIyMjLSMjLSMjXCIsXG4gICAgXCIxNC0jIyMtIyMtIyNcIixcbiAgICBcIjE1LSMjIy0jIy0jI1wiLFxuICAgIFwiMTYtIyMjLSMjLSMjXCIsXG4gICAgXCIxNy0jIyMtIyMtIyNcIixcbiAgICBcIjE4LSMjIy0jIy0jI1wiLFxuICAgIFwiMjItIyMjLSMjLSMjXCIsXG4gICAgXCIyMy0jIyMtIyMtIyNcIixcbiAgICBcIjI0LSMjIy0jIy0jI1wiLFxuICAgIFwiMjUtIyMjLSMjLSMjXCIsXG4gICAgXCIyOS0jIyMtIyMtIyNcIixcbiAgICBcIjMyLSMjIy0jIy0jI1wiLFxuICAgIFwiMzMtIyMjLSMjLSMjXCIsXG4gICAgXCIzNC0jIyMtIyMtIyNcIixcbiAgICBcIjQxLSMjIy0jIy0jI1wiLFxuICAgIFwiNDItIyMjLSMjLSMjXCIsXG4gICAgXCI0My0jIyMtIyMtIyNcIixcbiAgICBcIjQ0LSMjIy0jIy0jI1wiLFxuICAgIFwiNDYtIyMjLSMjLSMjXCIsXG4gICAgXCI0OC0jIyMtIyMtIyNcIixcbiAgICBcIjUyLSMjIy0jIy0jI1wiLFxuICAgIFwiNTQtIyMjLSMjLSMjXCIsXG4gICAgXCI1NS0jIyMtIyMtIyNcIixcbiAgICBcIjU2LSMjIy0jIy0jI1wiLFxuICAgIFwiNTgtIyMjLSMjLSMjXCIsXG4gICAgXCI1OS0jIyMtIyMtIyNcIixcbiAgICBcIjYxLSMjIy0jIy0jI1wiLFxuICAgIFwiNjItIyMjLSMjLSMjXCIsXG4gICAgXCI2My0jIyMtIyMtIyNcIixcbiAgICBcIjY1LSMjIy0jIy0jI1wiLFxuICAgIFwiNjctIyMjLSMjLSMjXCIsXG4gICAgXCI2OC0jIyMtIyMtIyNcIixcbiAgICBcIjcxLSMjIy0jIy0jI1wiLFxuICAgIFwiNzQtIyMjLSMjLSMjXCIsXG4gICAgXCI3NS0jIyMtIyMtIyNcIixcbiAgICBcIjc2LSMjIy0jIy0jI1wiLFxuICAgIFwiNzctIyMjLSMjLSMjXCIsXG4gICAgXCI4MS0jIyMtIyMtIyNcIixcbiAgICBcIjgyLSMjIy0jIy0jI1wiLFxuICAgIFwiODMtIyMjLSMjLSMjXCIsXG4gICAgXCI4NC0jIyMtIyMtIyNcIixcbiAgICBcIjg1LSMjIy0jIy0jI1wiLFxuICAgIFwiODYtIyMjLSMjLSMjXCIsXG4gICAgXCI4Ny0jIyMtIyMtIyNcIixcbiAgICBcIjg5LSMjIy0jIy0jI1wiLFxuICAgIFwiOTEtIyMjLSMjLSMjXCIsXG4gICAgXCI5NC0jIyMtIyMtIyNcIixcbiAgICBcIjk1LSMjIy0jIy0jI1wiXG4gIF1cbn07XG5wbC5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiNTAtIyMjLSMjLSMjXCIsXG4gICAgXCI1MS0jIyMtIyMtIyNcIixcbiAgICBcIjUzLSMjIy0jIy0jI1wiLFxuICAgIFwiNTctIyMjLSMjLSMjXCIsXG4gICAgXCI2MC0jIyMtIyMtIyNcIixcbiAgICBcIjY2LSMjIy0jIy0jI1wiLFxuICAgIFwiNjktIyMjLSMjLSMjXCIsXG4gICAgXCI3Mi0jIyMtIyMtIyNcIixcbiAgICBcIjczLSMjIy0jIy0jI1wiLFxuICAgIFwiNzgtIyMjLSMjLSMjXCIsXG4gICAgXCI3OS0jIyMtIyMtIyNcIixcbiAgICBcIjg4LSMjIy0jIy0jI1wiXG4gIF1cbn07XG4iLCJ2YXIgcHRfQlIgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBwdF9CUjtcbnB0X0JSLnRpdGxlID0gXCJQb3J0dWd1ZXNlIChCcmF6aWwpXCI7XG5wdF9CUi5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vdmFcIixcbiAgICBcIlZlbGhhXCIsXG4gICAgXCJHcmFuZGVcIixcbiAgICBcIlZpbGFcIixcbiAgICBcIk11bmljw61waW8gZGVcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcImRvIERlc2NvYmVydG9cIixcbiAgICBcImRlIE5vc3NhIFNlbmhvcmFcIixcbiAgICBcImRvIE5vcnRlXCIsXG4gICAgXCJkbyBTdWxcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZlZ2FuaXN0w6NvXCIsXG4gICAgXCJBbGLDom5pYVwiLFxuICAgIFwiQWxnw6lyaWFcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRpZ3VhIGFuZCBCYXJiYWRhXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkFybcOqbmlhXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXVzdHLDoWxpYVwiLFxuICAgIFwiw4F1c3RyaWFcIixcbiAgICBcIkFsemVyYmFqw6NvXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYXLDqW1cIixcbiAgICBcIkJhbmdsYWRlc2hcIixcbiAgICBcIkJhcmJhZG9cIixcbiAgICBcIkJlbGdyYWRvXCIsXG4gICAgXCJCw6lsZ2ljYVwiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZW5pblwiLFxuICAgIFwiQmVybXVkYVwiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2zDrXZpYVwiLFxuICAgIFwiQsO0c25pYVwiLFxuICAgIFwiQm90dWFzdW5hXCIsXG4gICAgXCJCb3V2ZXRvaWFcIixcbiAgICBcIkJyYXNpbFwiLFxuICAgIFwiQXJxdWlww6lsYWdvIGRlIENoYWdvc1wiLFxuICAgIFwiSWxoYXMgVmlyZ2Vuc1wiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJCdWxnw6FyaWFcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2FtYsOzamlhXCIsXG4gICAgXCJDYW1hcsO1ZXNcIixcbiAgICBcIkNhbmFkw6FcIixcbiAgICBcIkNhYm8gVmVyZGVcIixcbiAgICBcIklsaGFzIENhaW1hblwiLFxuICAgIFwiUmVww7pibGljYSBkYSDDgWZyaWNhIENlbnRyYWxcIixcbiAgICBcIkNoYWRcIixcbiAgICBcIkNoaWxlXCIsXG4gICAgXCJDaGluYVwiLFxuICAgIFwiSWxoYXMgTmF0YWxcIixcbiAgICBcIklsaGFzIENvY29zXCIsXG4gICAgXCJDb2zDtG1iaWFcIixcbiAgICBcIkNvbW9yb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJJbGhhcyBDb29rXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3N0YSBkbyBNYXJmaW1cIixcbiAgICBcIkNyb8OhY2lhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDeXBydXNcIixcbiAgICBcIlJlcMO6YmxpY2EgVGNoZWNhXCIsXG4gICAgXCJEaW5hbWFyY2FcIixcbiAgICBcIkRqaWJvdXRpXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiUmVww7pibGljYSBEb21pbmljYW5hXCIsXG4gICAgXCJFcXVhZG9yXCIsXG4gICAgXCJFZ2l0b1wiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIkd1aW7DqSBFcXVhdG9yaWFsXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJFc3TDtG5pYVwiLFxuICAgIFwiRXRpw7NwaWFcIixcbiAgICBcIklsaGFzIEZhcm9lXCIsXG4gICAgXCJNYWx2aW5hc1wiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiRmlubMOibmRpYVwiLFxuICAgIFwiRnJhbsOnYVwiLFxuICAgIFwiR3VpbsOpIEZyYW5jZXNhXCIsXG4gICAgXCJQb2xpbsOpc2lhIEZyYW5jZXNhXCIsXG4gICAgXCJHYWLDo29cIixcbiAgICBcIkfDom1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkFsZW1hbmhhXCIsXG4gICAgXCJHYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyw6ljaWFcIixcbiAgICBcIkdyb2Vsw6JuZGlhXCIsXG4gICAgXCJHcmFuYWRhXCIsXG4gICAgXCJHdWFkYWx1cGVcIixcbiAgICBcIkd1YW5vXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluw6lcIixcbiAgICBcIkd1aW7DqS1CaXNzYXVcIixcbiAgICBcIkd1aWFuYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kc1wiLFxuICAgIFwiVmF0aWNhbm9cIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nIEtvbmdcIixcbiAgICBcIkh1bmdyaWFcIixcbiAgICBcIkljZWxhbmRcIixcbiAgICBcIsONbmRpYVwiLFxuICAgIFwiSW5kb27DqXNpYVwiLFxuICAgIFwiSXLDo1wiLFxuICAgIFwiSXJhcXVlXCIsXG4gICAgXCJJcmxhbmRhXCIsXG4gICAgXCJJbGhhIGRlIE1hblwiLFxuICAgIFwiSXNyYWVsXCIsXG4gICAgXCJJdMOhbGlhXCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJKYXDDo29cIixcbiAgICBcIkplcnNleVwiLFxuICAgIFwiSm9yZMOibmlhXCIsXG4gICAgXCJDYXphcXVpc3TDo29cIixcbiAgICBcIlF1w6puaWFcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJDb3JlaWEgZG8gTm9ydGVcIixcbiAgICBcIkNvcmVpYSBkbyBTdWxcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiS3lyZ3l6IFJlcHVibGljXCIsXG4gICAgXCJSZXDDumJsaWNhIERlbW9jcsOhdGljYSBkZSBMYW8gUGVvcGxlXCIsXG4gICAgXCJMYXR2aWFcIixcbiAgICBcIkzDrWJhbm9cIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxpYsOpcmlhXCIsXG4gICAgXCJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXR1w6JuaWFcIixcbiAgICBcIkx1eGVtYnVyZ29cIixcbiAgICBcIk1hY2FvXCIsXG4gICAgXCJNYWNlZMO0bmlhXCIsXG4gICAgXCJNYWRhZ2FzY2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbMOhc2lhXCIsXG4gICAgXCJNYWxkaXZlc1wiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIklsaGFzIE1hcnNoYWxsXCIsXG4gICAgXCJNYXJ0aW5pY2FcIixcbiAgICBcIk1hdXJpdMOibmlhXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk3DqXhpY29cIixcbiAgICBcIk1pY3JvbsOpc2lhXCIsXG4gICAgXCJNb2xkb3ZhXCIsXG4gICAgXCJNw7RuYWNvXCIsXG4gICAgXCJNb25nw7NsaWFcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1hcnJvY29zXCIsXG4gICAgXCJNb8OnYW1iaXF1ZVwiLFxuICAgIFwiTXlhbm1hclwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJBbnRpbGhhcyBIb2xhbmRlc2FzXCIsXG4gICAgXCJIb2xhbmRhXCIsXG4gICAgXCJOb3ZhIENhbGVkb25pYVwiLFxuICAgIFwiTm92YSBaZWzDom5kaWFcIixcbiAgICBcIk5pY2Fyw6FndWFcIixcbiAgICBcIk5pZ8OpcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJJbGhhIE5vcmZvbGtcIixcbiAgICBcIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kc1wiLFxuICAgIFwiTm9ydWVnYVwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiUGFxdWlzdMOjb1wiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlRlcnJpdMOzcmlvIGRhIFBhbGVzdGluYVwiLFxuICAgIFwiUGFuYW3DoVwiLFxuICAgIFwiTm92YSBHdWluw6kgUGFwdWFcIixcbiAgICBcIlBhcmFndWFpXCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJGaWxpcGluYXNcIixcbiAgICBcIlBvbMO0bmlhXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlFhdGFyXCIsXG4gICAgXCJSb23Dqm5pYVwiLFxuICAgIFwiUsO6c3NpYVwiLFxuICAgIFwiUnVhbmRhXCIsXG4gICAgXCJTw6NvIEJhcnRvbG9tZXVcIixcbiAgICBcIlNhbnRhIEhlbGVuYVwiLFxuICAgIFwiU2FudGEgTMO6Y2lhXCIsXG4gICAgXCJTYWludCBNYXJ0aW5cIixcbiAgICBcIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb25cIixcbiAgICBcIlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2FvIFRvbcOpIGUgUHLDrW5jaXBlXCIsXG4gICAgXCJBcsOhYmlhIFNhdWRpdGFcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlPDqXJ2aWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNlcnJhIExlb2FcIixcbiAgICBcIlNpbmdhcHVyYVwiLFxuICAgIFwiRXNsb3bDoXF1aWFcIixcbiAgICBcIkVzbG92w6puaWFcIixcbiAgICBcIklsaGFzIFNhbG9tw6NvXCIsXG4gICAgXCJTb23DoWxpYVwiLFxuICAgIFwiw4FmcmljYSBkbyBTdWxcIixcbiAgICBcIlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzXCIsXG4gICAgXCJTcGFuaGFcIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3Vkw6NvXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kc1wiLFxuICAgIFwiU3dhemlsYW5kXCIsXG4gICAgXCJTdcOpY2lhXCIsXG4gICAgXCJTdcOtw6dhXCIsXG4gICAgXCJTw61yaWFcIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiVGFqaXF1aXN0w6NvXCIsXG4gICAgXCJUYW56w6JuaWFcIixcbiAgICBcIlRhaWzDom5kaWFcIixcbiAgICBcIlRpbW9yLUxlc3RlXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb2tlbGF1XCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJpbmlkw6EgZSBUb2JhZ29cIixcbiAgICBcIlR1bsOtc2lhXCIsXG4gICAgXCJUdXJxdWlhXCIsXG4gICAgXCJUdXJjb21lbmlzdMOjb1wiLFxuICAgIFwiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWNyw6JuaWFcIixcbiAgICBcIkVtaXJhZG9zIMOBcmFiZXMgVW5pZG9zXCIsXG4gICAgXCJSZWlubyBVbmlkb1wiLFxuICAgIFwiRXN0YWRvcyBVbmlkb3MgZGEgQW3DqXJpY2FcIixcbiAgICBcIkVzdGFkb3MgVW5pZG9zIGRhcyBJbGhhcyBWaXJnZW5zXCIsXG4gICAgXCJVcnVndWFpXCIsXG4gICAgXCJVemJlcXVpc3TDo29cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmlldG7Do1wiLFxuICAgIFwiV2FsbGlzIGFuZCBGdXR1bmFcIixcbiAgICBcIlNhaGFyYVwiLFxuICAgIFwiWWVtZW5cIixcbiAgICBcIlrDom1iaWFcIixcbiAgICBcIlppbWLDoWJ1ZVwiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiUnVhXCIsXG4gICAgXCJBdmVuaWRhXCIsXG4gICAgXCJUcmF2ZXNzYVwiLFxuICAgIFwiUG9udGVcIixcbiAgICBcIkFsYW1lZGFcIixcbiAgICBcIk1hcmdpbmFsXCIsXG4gICAgXCJWaWVsYVwiLFxuICAgIFwiUm9kb3ZpYVwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0by4gIyMjXCIsXG4gICAgXCJTb2JyYWRvICMjXCIsXG4gICAgXCJDYXNhICNcIixcbiAgICBcIkxvdGUgIyNcIixcbiAgICBcIlF1YWRyYSAjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyMjLSMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWNyZVwiLFxuICAgIFwiQWxhZ29hc1wiLFxuICAgIFwiQW1hcMOhXCIsXG4gICAgXCJBbWF6b25hc1wiLFxuICAgIFwiQmFoaWFcIixcbiAgICBcIkNlYXLDoVwiLFxuICAgIFwiRGlzdHJpdG8gRmVkZXJhbFwiLFxuICAgIFwiRXNww61yaXRvIFNhbnRvXCIsXG4gICAgXCJHb2nDoXNcIixcbiAgICBcIk1hcmFuaMOjb1wiLFxuICAgIFwiTWF0byBHcm9zc29cIixcbiAgICBcIk1hdG8gR3Jvc3NvIGRvIFN1bFwiLFxuICAgIFwiTWluYXMgR2VyYWlzXCIsXG4gICAgXCJQYXLDoVwiLFxuICAgIFwiUGFyYcOtYmFcIixcbiAgICBcIlBhcmFuw6FcIixcbiAgICBcIlBlcm5hbWJ1Y29cIixcbiAgICBcIlBpYXXDrVwiLFxuICAgIFwiUmlvIGRlIEphbmVpcm9cIixcbiAgICBcIlJpbyBHcmFuZGUgZG8gTm9ydGVcIixcbiAgICBcIlJpbyBHcmFuZGUgZG8gU3VsXCIsXG4gICAgXCJSb25kw7RuaWFcIixcbiAgICBcIlJvcmFpbWFcIixcbiAgICBcIlNhbnRhIENhdGFyaW5hXCIsXG4gICAgXCJTw6NvIFBhdWxvXCIsXG4gICAgXCJTZXJnaXBlXCIsXG4gICAgXCJUb2NhbnRpbnNcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQUNcIixcbiAgICBcIkFMXCIsXG4gICAgXCJBUFwiLFxuICAgIFwiQU1cIixcbiAgICBcIkJBXCIsXG4gICAgXCJDRVwiLFxuICAgIFwiREZcIixcbiAgICBcIkVTXCIsXG4gICAgXCJHT1wiLFxuICAgIFwiTUFcIixcbiAgICBcIk1UXCIsXG4gICAgXCJNU1wiLFxuICAgIFwiUEFcIixcbiAgICBcIlBCXCIsXG4gICAgXCJQUlwiLFxuICAgIFwiUEVcIixcbiAgICBcIlBJXCIsXG4gICAgXCJSSlwiLFxuICAgIFwiUk5cIixcbiAgICBcIlJTXCIsXG4gICAgXCJST1wiLFxuICAgIFwiUlJcIixcbiAgICBcIlNDXCIsXG4gICAgXCJTUFwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkJyYXNpbFwiXG4gIF1cbn07XG5wdF9CUi5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJTLkEuXCIsXG4gICAgXCJMVERBXCIsXG4gICAgXCJlIEFzc29jaWFkb3NcIixcbiAgICBcIkNvbcOpcmNpb1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gZSAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5wdF9CUi5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiLFxuICAgIFwibGl2ZS5jb21cIixcbiAgICBcImJvbC5jb20uYnJcIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiYnJcIixcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5wdF9CUi5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdXG59O1xucHRfQlIubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFsZXNzYW5kcm9cIixcbiAgICBcIkFsZXNzYW5kcmFcIixcbiAgICBcIkFsZXhhbmRyZVwiLFxuICAgIFwiQWxpbmVcIixcbiAgICBcIkFudMO0bmlvXCIsXG4gICAgXCJCcmVub1wiLFxuICAgIFwiQnJ1bmFcIixcbiAgICBcIkNhcmxvc1wiLFxuICAgIFwiQ2FybGFcIixcbiAgICBcIkPDqWxpYVwiLFxuICAgIFwiQ2Vjw61saWFcIixcbiAgICBcIkPDqXNhclwiLFxuICAgIFwiRGFuaWxvXCIsXG4gICAgXCJEYWxpbGFcIixcbiAgICBcIkRlbmV2YWxcIixcbiAgICBcIkVkdWFyZG9cIixcbiAgICBcIkVkdWFyZGFcIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRWzDrXNpb1wiLFxuICAgIFwiRsOhYmlvXCIsXG4gICAgXCJGYWJyw61jaW9cIixcbiAgICBcIkZhYnLDrWNpYVwiLFxuICAgIFwiRsOpbGl4XCIsXG4gICAgXCJGZWzDrWNpYVwiLFxuICAgIFwiRmVsaWNpYW5vXCIsXG4gICAgXCJGcmVkZXJpY29cIixcbiAgICBcIkZhYmlhbm9cIixcbiAgICBcIkd1c3Rhdm9cIixcbiAgICBcIkd1aWxoZXJtZVwiLFxuICAgIFwiR8O6YmlvXCIsXG4gICAgXCJIZWl0b3JcIixcbiAgICBcIkjDqWxpb1wiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxhXCIsXG4gICAgXCLDjWdvclwiLFxuICAgIFwiSm/Do29cIixcbiAgICBcIkpvYW5hXCIsXG4gICAgXCJKw7psaW8gQ8Opc2FyXCIsXG4gICAgXCJKw7psaW9cIixcbiAgICBcIkrDumxpYVwiLFxuICAgIFwiSmFuYcOtbmFcIixcbiAgICBcIkthcmxhXCIsXG4gICAgXCJLbMOpYmVyXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiTG9yZW5hXCIsXG4gICAgXCJMb3JyYWluZVwiLFxuICAgIFwiTGFyaXNzYVwiLFxuICAgIFwiTGFkaXNsYXVcIixcbiAgICBcIk1hcmNvc1wiLFxuICAgIFwiTWVpcmVcIixcbiAgICBcIk1hcmNlbG9cIixcbiAgICBcIk1hcmNlbGFcIixcbiAgICBcIk1hcmdhcmlkYVwiLFxuICAgIFwiTcOpcmNpYVwiLFxuICAgIFwiTcOhcmNpYVwiLFxuICAgIFwiTWFybGlcIixcbiAgICBcIk1vcmdhbmFcIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJOb3JiZXJ0b1wiLFxuICAgIFwiTmF0w6FsaWFcIixcbiAgICBcIk5hdGFuaWVsXCIsXG4gICAgXCJOw7piaWFcIixcbiAgICBcIk9mw6lsaWFcIixcbiAgICBcIlBhdWxvXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGFibG9cIixcbiAgICBcIlBlZHJvXCIsXG4gICAgXCJSYXVsXCIsXG4gICAgXCJSYWZhZWxcIixcbiAgICBcIlJhZmFlbGFcIixcbiAgICBcIlJpY2FyZG9cIixcbiAgICBcIlJvYmVydG9cIixcbiAgICBcIlJvYmVydGFcIixcbiAgICBcIlPDrWx2aWFcIixcbiAgICBcIlPDrWx2aWFcIixcbiAgICBcIlNpbGFzXCIsXG4gICAgXCJTdcOpbGVuXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJTYWx2YWRvclwiLFxuICAgIFwiU2lyaW5ldVwiLFxuICAgIFwiVGFsaXRhXCIsXG4gICAgXCJUZXJ0dWxpYW5vXCIsXG4gICAgXCJWaWNlbnRlXCIsXG4gICAgXCJWw61jdG9yXCIsXG4gICAgXCJWaXTDs3JpYVwiLFxuICAgIFwiWWFuZ29cIixcbiAgICBcIllhZ29cIixcbiAgICBcIll1cmlcIixcbiAgICBcIldhc2hpbmd0b25cIixcbiAgICBcIldhcmxleVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIlNpbHZhXCIsXG4gICAgXCJTb3V6YVwiLFxuICAgIFwiQ2FydmFsaG9cIixcbiAgICBcIlNhbnRvc1wiLFxuICAgIFwiUmVpc1wiLFxuICAgIFwiWGF2aWVyXCIsXG4gICAgXCJGcmFuY29cIixcbiAgICBcIkJyYWdhXCIsXG4gICAgXCJNYWNlZG9cIixcbiAgICBcIkJhdGlzdGFcIixcbiAgICBcIkJhcnJvc1wiLFxuICAgIFwiTW9yYWVzXCIsXG4gICAgXCJDb3N0YVwiLFxuICAgIFwiUGVyZWlyYVwiLFxuICAgIFwiQ2FydmFsaG9cIixcbiAgICBcIk1lbG9cIixcbiAgICBcIlNhcmFpdmFcIixcbiAgICBcIk5vZ3VlaXJhXCIsXG4gICAgXCJPbGl2ZWlyYVwiLFxuICAgIFwiTWFydGluc1wiLFxuICAgIFwiTW9yZWlyYVwiLFxuICAgIFwiQWxidXF1ZXJxdWVcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJTci5cIixcbiAgICBcIlNyYS5cIixcbiAgICBcIlNydGEuXCIsXG4gICAgXCJEci5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJKci5cIixcbiAgICBcIk5ldG9cIixcbiAgICBcIkZpbGhvXCJcbiAgXVxufTtcbnB0X0JSLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIigjIykgIyMjIy0jIyMjXCIsXG4gICAgXCIrNTUgKCMjKSAjIyMjLSMjIyNcIixcbiAgICBcIigjIykgIyMjIyMtIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgcnUgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBydTtcbnJ1LnRpdGxlID0gXCJSdXNzaWFuXCI7XG5ydS5zZXBhcmF0b3IgPSBcIiDQuCBcIjtcbnJ1LmFkZHJlc3MgPSB7XG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCLQkNCy0YHRgtGA0LDQu9C40Y9cIixcbiAgICBcItCQ0LLRgdGC0YDQuNGPXCIsXG4gICAgXCLQkNC30LXRgNCx0LDQudC00LbQsNC9XCIsXG4gICAgXCLQkNC70LHQsNC90LjRj1wiLFxuICAgIFwi0JDQu9C20LjRgFwiLFxuICAgIFwi0JDQvNC10YDQuNC60LDQvdGB0LrQvtC1INCh0LDQvNC+0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCQ0L3Qs9C40LvRjNGPXCIsXG4gICAgXCLQkNC90LPQvtC70LBcIixcbiAgICBcItCQ0L3QtNC+0YDRgNCwXCIsXG4gICAgXCLQkNC90YLQsNGA0LrRgtC40LrQsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JDQvdGC0LjQs9GD0LAg0Lgg0JHQsNGA0LHRg9C00LBcIixcbiAgICBcItCQ0L3RgtC40LvRjNGB0LrQuNC1INCe0YHRgtGA0L7QstCwICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQkNC+0LzRi9C90YwgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCQ0YDQs9C10L3RgtC40L3QsFwiLFxuICAgIFwi0JDRgNC80LXQvdC40Y9cIixcbiAgICBcItCQ0YTQs9Cw0L3QuNGB0YLQsNC9XCIsXG4gICAgXCLQkdCw0LPQsNC80YHQutC40LUg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCR0LDQvdCz0LvQsNC00LXRiFwiLFxuICAgIFwi0JHQsNGA0LHQsNC00L7RgVwiLFxuICAgIFwi0JHQsNGF0YDQtdC50L1cIixcbiAgICBcItCR0LXQu9Cw0YDRg9GB0YxcIixcbiAgICBcItCR0LXQu9C40LdcIixcbiAgICBcItCR0LXQu9GM0LPQuNGPXCIsXG4gICAgXCLQkdC10L3QuNC9XCIsXG4gICAgXCLQkdC+0LvQs9Cw0YDQuNGPXCIsXG4gICAgXCLQkdC+0LvQuNCy0LjRj1wiLFxuICAgIFwi0JHQvtGB0L3QuNGPINC4INCT0LXRgNGG0LXQs9C+0LLQuNC90LBcIixcbiAgICBcItCR0L7RgtGB0LLQsNC90LBcIixcbiAgICBcItCR0YDQsNC30LjQu9C40Y9cIixcbiAgICBcItCR0YDRg9C90LXQuVwiLFxuICAgIFwi0JHRg9GA0LrQuNC90LAt0KTQsNGB0L5cIixcbiAgICBcItCR0YPRgNGD0L3QtNC4XCIsXG4gICAgXCLQkdGD0YLQsNC9XCIsXG4gICAgXCLQktCw0L3Rg9Cw0YLRg1wiLFxuICAgIFwi0JLQsNGC0LjQutCw0L1cIixcbiAgICBcItCS0LXQu9C40LrQvtCx0YDQuNGC0LDQvdC40Y9cIixcbiAgICBcItCS0LXQvdCz0YDQuNGPXCIsXG4gICAgXCLQktC10L3QtdGB0YPRjdC70LBcIixcbiAgICBcItCS0L7RgdGC0L7Rh9C90YvQuSDQotC40LzQvtGAXCIsXG4gICAgXCLQktGM0LXRgtC90LDQvFwiLFxuICAgIFwi0JPQsNCx0L7QvVwiLFxuICAgIFwi0JPQsNC40YLQuFwiLFxuICAgIFwi0JPQsNC50LDQvdCwXCIsXG4gICAgXCLQk9Cw0LzQsdC40Y9cIixcbiAgICBcItCT0LDQvdCwXCIsXG4gICAgXCLQk9Cy0LDQtNC10LvRg9C/0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCT0LLQsNGC0LXQvNCw0LvQsFwiLFxuICAgIFwi0JPQstC40LDQvdCwICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQk9Cy0LjQvdC10Y9cIixcbiAgICBcItCT0LLQuNC90LXRjy3QkdC40YHQsNGDXCIsXG4gICAgXCLQk9C10YDQvNCw0L3QuNGPXCIsXG4gICAgXCLQk9C+0L3QtNGD0YDQsNGBXCIsXG4gICAgXCLQk9GA0LXQvdCw0LTQsFwiLFxuICAgIFwi0JPRgNC10YbQuNGPXCIsXG4gICAgXCLQk9GA0YPQt9C40Y9cIixcbiAgICBcItCU0LDQvdC40Y9cIixcbiAgICBcItCU0LbQuNCx0YPRgtC4XCIsXG4gICAgXCLQlNC+0LzQuNC90LjQutCwXCIsXG4gICAgXCLQlNC+0LzQuNC90LjQutCw0L3RgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsFwiLFxuICAgIFwi0JXQs9C40L/QtdGCXCIsXG4gICAgXCLQl9Cw0LzQsdC40Y9cIixcbiAgICBcItCX0LjQvNCx0LDQsdCy0LVcIixcbiAgICBcItCY0LfRgNCw0LjQu9GMXCIsXG4gICAgXCLQmNC90LTQuNGPXCIsXG4gICAgXCLQmNC90LTQvtC90LXQt9C40Y9cIixcbiAgICBcItCY0L7RgNC00LDQvdC40Y9cIixcbiAgICBcItCY0YDQsNC6XCIsXG4gICAgXCLQmNGA0LDQvVwiLFxuICAgIFwi0JjRgNC70LDQvdC00LjRj1wiLFxuICAgIFwi0JjRgdC70LDQvdC00LjRj1wiLFxuICAgIFwi0JjRgdC/0LDQvdC40Y9cIixcbiAgICBcItCY0YLQsNC70LjRj1wiLFxuICAgIFwi0JnQtdC80LXQvVwiLFxuICAgIFwi0JrQsNCx0L4t0JLQtdGA0LTQtVwiLFxuICAgIFwi0JrQsNC30LDRhdGB0YLQsNC9XCIsXG4gICAgXCLQmtCw0LzQsdC+0LTQttCwXCIsXG4gICAgXCLQmtCw0LzQtdGA0YPQvVwiLFxuICAgIFwi0JrQsNC90LDQtNCwXCIsXG4gICAgXCLQmtCw0YLQsNGAXCIsXG4gICAgXCLQmtC10L3QuNGPXCIsXG4gICAgXCLQmtC40L/RgFwiLFxuICAgIFwi0JrQuNGA0LjQsdCw0YLQuFwiLFxuICAgIFwi0JrQuNGC0LDQuVwiLFxuICAgIFwi0JrQvtC70YPQvNCx0LjRj1wiLFxuICAgIFwi0JrQvtC80L7RgNGB0LrQuNC1INCe0YHRgtGA0L7QstCwXCIsXG4gICAgXCLQmtC+0L3Qs9C+XCIsXG4gICAgXCLQlNC10LzQvtC60YDQsNGC0LjRh9C10YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCa0L7RgNC10Y8gKNCh0LXQstC10YDQvdCw0Y8pXCIsXG4gICAgXCLQmtC+0YDQtdGPICjQrtC20L3QsNGPKVwiLFxuICAgIFwi0JrQvtGB0L7QstC+XCIsXG4gICAgXCLQmtC+0YHRgtCwLdCg0LjQutCwXCIsXG4gICAgXCLQmtC+0YIt0LQn0JjQstGD0LDRgFwiLFxuICAgIFwi0JrRg9Cx0LBcIixcbiAgICBcItCa0YPQstC10LnRglwiLFxuICAgIFwi0JrRg9C60LAg0L7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCa0YvRgNCz0YvQt9GB0YLQsNC9XCIsXG4gICAgXCLQm9Cw0L7RgVwiLFxuICAgIFwi0JvQsNGC0LLQuNGPXCIsXG4gICAgXCLQm9C10YHQvtGC0L5cIixcbiAgICBcItCb0LjQsdC10YDQuNGPXCIsXG4gICAgXCLQm9C40LLQsNC9XCIsXG4gICAgXCLQm9C40LLQuNGPXCIsXG4gICAgXCLQm9C40YLQstCwXCIsXG4gICAgXCLQm9C40YXRgtC10L3RiNGC0LXQudC9XCIsXG4gICAgXCLQm9GO0LrRgdC10LzQsdGD0YDQs1wiLFxuICAgIFwi0JzQsNCy0YDQuNC60LjQuVwiLFxuICAgIFwi0JzQsNCy0YDQuNGC0LDQvdC40Y9cIixcbiAgICBcItCc0LDQtNCw0LPQsNGB0LrQsNGAXCIsXG4gICAgXCLQnNCw0LrQtdC00L7QvdC40Y9cIixcbiAgICBcItCc0LDQu9Cw0LLQuFwiLFxuICAgIFwi0JzQsNC70LDQudC30LjRj1wiLFxuICAgIFwi0JzQsNC70LhcIixcbiAgICBcItCc0LDQu9GM0LTQuNCy0YtcIixcbiAgICBcItCc0LDQu9GM0YLQsFwiLFxuICAgIFwi0JzQsNGA0YjQsNC70LvQvtCy0Ysg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCc0LXQutGB0LjQutCwXCIsXG4gICAgXCLQnNC40LrRgNC+0L3QtdC30LjRj1wiLFxuICAgIFwi0JzQvtC30LDQvNCx0LjQulwiLFxuICAgIFwi0JzQvtC70LTQvtCy0LBcIixcbiAgICBcItCc0L7QvdCw0LrQvlwiLFxuICAgIFwi0JzQvtC90LPQvtC70LjRj1wiLFxuICAgIFwi0JzQsNGA0L7QutC60L5cIixcbiAgICBcItCc0YzRj9C90LzQsFwiLFxuICAgIFwi0J3QsNC80LjQsdC40Y9cIixcbiAgICBcItCd0LDRg9GA0YNcIixcbiAgICBcItCd0LXQv9Cw0LtcIixcbiAgICBcItCd0LjQs9C10YBcIixcbiAgICBcItCd0LjQs9C10YDQuNGPXCIsXG4gICAgXCLQndC40LTQtdGA0LvQsNC90LTRi1wiLFxuICAgIFwi0J3QuNC60LDRgNCw0LPRg9CwXCIsXG4gICAgXCLQndC+0LLQsNGPINCX0LXQu9Cw0L3QtNC40Y9cIixcbiAgICBcItCd0L7RgNCy0LXQs9C40Y9cIixcbiAgICBcItCe0LHRitC10LTQuNC90LXQvdC90YvQtSDQkNGA0LDQsdGB0LrQuNC1INCt0LzQuNGA0LDRgtGLXCIsXG4gICAgXCLQntC80LDQvVwiLFxuICAgIFwi0J/QsNC60LjRgdGC0LDQvVwiLFxuICAgIFwi0J/QsNC70LDRg1wiLFxuICAgIFwi0J/QsNC90LDQvNCwXCIsXG4gICAgXCLQn9Cw0L/Rg9CwIOKAlCDQndC+0LLQsNGPINCT0LLQuNC90LXRj1wiLFxuICAgIFwi0J/QsNGA0LDQs9Cy0LDQuVwiLFxuICAgIFwi0J/QtdGA0YNcIixcbiAgICBcItCf0L7Qu9GM0YjQsFwiLFxuICAgIFwi0J/QvtGA0YLRg9Cz0LDQu9C40Y9cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCa0L7QvdCz0L5cIixcbiAgICBcItCg0L7RgdGB0LjRj1wiLFxuICAgIFwi0KDRg9Cw0L3QtNCwXCIsXG4gICAgXCLQoNGD0LzRi9C90LjRj1wiLFxuICAgIFwi0KHQsNC70YzQstCw0LTQvtGAXCIsXG4gICAgXCLQodCw0LzQvtCwXCIsXG4gICAgXCLQodCw0L0t0JzQsNGA0LjQvdC+XCIsXG4gICAgXCLQodCw0L0t0KLQvtC80LUg0Lgg0J/RgNC40L3RgdC40L/QuFwiLFxuICAgIFwi0KHQsNGD0LTQvtCy0YHQutCw0Y8g0JDRgNCw0LLQuNGPXCIsXG4gICAgXCLQodCy0LDQt9C40LvQtdC90LRcIixcbiAgICBcItCh0LXQudGI0LXQu9GM0YHQutC40LUg0L7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCh0LXQvdC10LPQsNC7XCIsXG4gICAgXCLQodC10L3Rgi3QktC40L3RgdC10L3RgiDQuCDQk9GA0LXQvdCw0LTQuNC90YtcIixcbiAgICBcItCh0LXQvdGCLdCa0LjRgtGC0YEg0Lgg0J3QtdCy0LjRgVwiLFxuICAgIFwi0KHQtdC90YIt0JvRjtGB0LjRj1wiLFxuICAgIFwi0KHQtdGA0LHQuNGPXCIsXG4gICAgXCLQodC40L3Qs9Cw0L/Rg9GAXCIsXG4gICAgXCLQodC40YDQuNGPXCIsXG4gICAgXCLQodC70L7QstCw0LrQuNGPXCIsXG4gICAgXCLQodC70L7QstC10L3QuNGPXCIsXG4gICAgXCLQodC+0LXQtNC40L3QtdC90L3Ri9C1INCo0YLQsNGC0Ysg0JDQvNC10YDQuNC60LhcIixcbiAgICBcItCh0L7Qu9C+0LzQvtC90L7QstGLINCe0YHRgtGA0L7QstCwXCIsXG4gICAgXCLQodC+0LzQsNC70LhcIixcbiAgICBcItCh0YPQtNCw0L1cIixcbiAgICBcItCh0YPRgNC40L3QsNC8XCIsXG4gICAgXCLQodGM0LXRgNGA0LAt0JvQtdC+0L3QtVwiLFxuICAgIFwi0KLQsNC00LbQuNC60LjRgdGC0LDQvVwiLFxuICAgIFwi0KLQsNC40LvQsNC90LRcIixcbiAgICBcItCi0LDQudCy0LDQvdGMICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQotCw0LzQuNC7LdCY0LvQsNC8ICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQotCw0L3Qt9Cw0L3QuNGPXCIsXG4gICAgXCLQotGR0YDQutGBINC4INCa0LDQudC60L7RgSAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0KLQvtCz0L5cIixcbiAgICBcItCi0L7QutC10LvQsNGDICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQotC+0L3Qs9CwXCIsXG4gICAgXCLQotGA0LjQvdC40LTQsNC0INC4INCi0L7QsdCw0LPQvlwiLFxuICAgIFwi0KLRg9Cy0LDQu9GDXCIsXG4gICAgXCLQotGD0L3QuNGBXCIsXG4gICAgXCLQotGD0YDQtdGG0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwINCh0LXQstC10YDQvdC+0LPQviDQmtC40L/RgNCwICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQotGD0YDQutC80LXQvdC40YHRgtCw0L1cIixcbiAgICBcItCi0YPRgNGG0LjRj1wiLFxuICAgIFwi0KPQs9Cw0L3QtNCwXCIsXG4gICAgXCLQo9C30LHQtdC60LjRgdGC0LDQvVwiLFxuICAgIFwi0KPQutGA0LDQuNC90LBcIixcbiAgICBcItCj0YDRg9Cz0LLQsNC5XCIsXG4gICAgXCLQpNCw0YDQtdGA0YHQutC40LUg0J7RgdGC0YDQvtCy0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCk0LjQtNC20LhcIixcbiAgICBcItCk0LjQu9C40L/Qv9C40L3Ri1wiLFxuICAgIFwi0KTQuNC90LvRj9C90LTQuNGPXCIsXG4gICAgXCLQpNGA0LDQvdGG0LjRj1wiLFxuICAgIFwi0KTRgNCw0L3RhtGD0LfRgdC60LDRjyDQn9C+0LvQuNC90LXQt9C40Y8gKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCl0L7RgNCy0LDRgtC40Y9cIixcbiAgICBcItCm0LXQvdGC0YDQsNC70YzQvdC+0LDRhNGA0LjQutCw0L3RgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsFwiLFxuICAgIFwi0KfQsNC0XCIsXG4gICAgXCLQp9C10YDQvdC+0LPQvtGA0LjRj1wiLFxuICAgIFwi0KfQtdGF0LjRj1wiLFxuICAgIFwi0KfQuNC70LhcIixcbiAgICBcItCo0LLQtdC50YbQsNGA0LjRj1wiLFxuICAgIFwi0KjQstC10YbQuNGPXCIsXG4gICAgXCLQqNGA0Lgt0JvQsNC90LrQsFwiLFxuICAgIFwi0K3QutCy0LDQtNC+0YBcIixcbiAgICBcItCt0LrQstCw0YLQvtGA0LjQsNC70YzQvdCw0Y8g0JPQstC40L3QtdGPXCIsXG4gICAgXCLQrdGA0LjRgtGA0LXRj1wiLFxuICAgIFwi0K3RgdGC0L7QvdC40Y9cIixcbiAgICBcItCt0YTQuNC+0L/QuNGPXCIsXG4gICAgXCLQrtC20L3Qvi3QkNGE0YDQuNC60LDQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQr9C80LDQudC60LBcIixcbiAgICBcItCv0L/QvtC90LjRj1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCLRg9C7LlwiLFxuICAgIFwi0YPQu9C40YbQsFwiLFxuICAgIFwi0L/RgNC+0YHQv9C10LrRglwiLFxuICAgIFwi0L/RgC5cIixcbiAgICBcItC/0LvQvtGJ0LDQtNGMXCIsXG4gICAgXCLQv9C7LlwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwi0LrQsi4gIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCQ0LTRi9Cz0LXRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JHQsNGI0LrQvtGA0YLQvtGB0YLQsNC9XCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQkdGD0YDRj9GC0LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JDQu9GC0LDQuSDQoNC10YHQv9GD0LHQu9C40LrQsCDQlNCw0LPQtdGB0YLQsNC9XCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmNC90LPRg9GI0LXRgtC40Y9cIixcbiAgICBcItCa0LDQsdCw0YDQtNC40L3Qvi3QkdCw0LvQutCw0YDRgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsFwiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQsNC70LzRi9C60LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQsNGA0LDRh9Cw0LXQstC+LdCn0LXRgNC60LXRgdGB0LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQsNGA0LXQu9C40Y9cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCa0L7QvNC4XCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQnNCw0YDQuNC5INCt0LtcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCc0L7RgNC00L7QstC40Y9cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCh0LDRhdCwICjQr9C60YPRgtC40Y8pXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQodC10LLQtdGA0L3QsNGPINCe0YHQtdGC0LjRjy3QkNC70LDQvdC40Y9cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCi0LDRgtCw0YDRgdGC0LDQvVwiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KLRi9Cy0LBcIixcbiAgICBcItCj0LTQvNGD0YDRgtGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQpdCw0LrQsNGB0LjRj1wiLFxuICAgIFwi0KfRg9Cy0LDRiNGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQkNC70YLQsNC50YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCa0YDQsNGB0L3QvtC00LDRgNGB0LrQuNC5INC60YDQsNC5XCIsXG4gICAgXCLQmtGA0LDRgdC90L7Rj9GA0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCf0YDQuNC80L7RgNGB0LrQuNC5INC60YDQsNC5XCIsXG4gICAgXCLQodGC0LDQstGA0L7Qv9C+0LvRjNGB0LrQuNC5INC60YDQsNC5XCIsXG4gICAgXCLQpdCw0LHQsNGA0L7QstGB0LrQuNC5INC60YDQsNC5XCIsXG4gICAgXCLQkNC80YPRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQkNGA0YXQsNC90LPQtdC70YzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JDRgdGC0YDQsNGF0LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQkdC10LvQs9C+0YDQvtC00YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCR0YDRj9C90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YDRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQvtC70LPQvtCz0YDQsNC00YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCS0L7Qu9C+0LPQvtC00YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCS0L7RgNC+0L3QtdC20YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCY0LLQsNC90L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmNGA0LrRg9GC0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCa0LDQu9C40L3QuNCz0YDQsNC00YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCa0LDQu9GD0LbRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQsNC80YfQsNGC0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCa0LXQvNC10YDQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCa0LjRgNC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQvtGB0YLRgNC+0LzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrRg9GA0LPQsNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCa0YPRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQm9C10L3QuNC90LPRgNCw0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JvQuNC/0LXRhtC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JzQsNCz0LDQtNCw0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JzQvtGB0LrQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCc0YPRgNC80LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQndC40LbQtdCz0L7RgNC+0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J3QvtCy0LPQvtGA0L7QtNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQndC+0LLQvtGB0LjQsdC40YDRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J7QvNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQntGA0LXQvdCx0YPRgNCz0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCe0YDQu9C+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J/QtdC90LfQtdC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCf0LXRgNC80YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCf0YHQutC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KDQvtGB0YLQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCg0Y/Qt9Cw0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KHQsNC80LDRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQodCw0YDQsNGC0L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQodCw0YXQsNC70LjQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQodCy0LXRgNC00LvQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LzQvtC70LXQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQotCw0LzQsdC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLQstC10YDRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLQvtC80YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCi0YPQu9GM0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCi0Y7QvNC10L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KPQu9GM0Y/QvdC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KfQtdC70Y/QsdC40L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KfQuNGC0LjQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQr9GA0L7RgdC70LDQstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQldCy0YDQtdC50YHQutCw0Y8g0LDQstGC0L7QvdC+0LzQvdCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCQ0LPQuNC90YHQutC40Lkg0JHRg9GA0Y/RgtGB0LrQuNC5INCw0LLRgi4g0L7QutGA0YPQs1wiLFxuICAgIFwi0JrQvtC80Lgt0J/QtdGA0LzRj9GG0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCa0L7RgNGP0LrRgdC60LjQuSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQndC10L3QtdGG0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCi0LDQudC80YvRgNGB0LrQuNC5ICjQlNC+0LvQs9Cw0L3Qvi3QndC10L3QtdGG0LrQuNC5KSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQo9GB0YLRjC3QntGA0LTRi9C90YHQutC40Lkg0JHRg9GA0Y/RgtGB0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCl0LDQvdGC0Yst0JzQsNC90YHQuNC50YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KfRg9C60L7RgtGB0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCt0LLQtdC90LrQuNC50YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0K/QvNCw0LvQvi3QndC10L3QtdGG0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCn0LXRh9C10L3RgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsFwiXG4gIF0sXG4gIFwic3RyZWV0X3RpdGxlXCI6IFtcbiAgICBcItCh0L7QstC10YLRgdC60LDRj1wiLFxuICAgIFwi0JzQvtC70L7QtNC10LbQvdCw0Y9cIixcbiAgICBcItCm0LXQvdGC0YDQsNC70YzQvdCw0Y9cIixcbiAgICBcItCo0LrQvtC70YzQvdCw0Y9cIixcbiAgICBcItCd0L7QstCw0Y9cIixcbiAgICBcItCh0LDQtNC+0LLQsNGPXCIsXG4gICAgXCLQm9C10YHQvdCw0Y9cIixcbiAgICBcItCd0LDQsdC10YDQtdC20L3QsNGPXCIsXG4gICAgXCLQm9C10L3QuNC90LBcIixcbiAgICBcItCc0LjRgNCwXCIsXG4gICAgXCLQntC60YLRj9Cx0YDRjNGB0LrQsNGPXCIsXG4gICAgXCLQl9C10LvQtdC90LDRj1wiLFxuICAgIFwi0JrQvtC80YHQvtC80L7Qu9GM0YHQutCw0Y9cIixcbiAgICBcItCX0LDRgNC10YfQvdCw0Y9cIixcbiAgICBcItCf0LXRgNCy0L7QvNCw0LnRgdC60LDRj1wiLFxuICAgIFwi0JPQsNCz0LDRgNC40L3QsFwiLFxuICAgIFwi0J/QvtC70LXQstCw0Y9cIixcbiAgICBcItCb0YPQs9C+0LLQsNGPXCIsXG4gICAgXCLQn9C40L7QvdC10YDRgdC60LDRj1wiLFxuICAgIFwi0JrQuNGA0L7QstCwXCIsXG4gICAgXCLQrtCx0LjQu9C10LnQvdCw0Y9cIixcbiAgICBcItCh0LXQstC10YDQvdCw0Y9cIixcbiAgICBcItCf0YDQvtC70LXRgtCw0YDRgdC60LDRj1wiLFxuICAgIFwi0KHRgtC10L/QvdCw0Y9cIixcbiAgICBcItCf0YPRiNC60LjQvdCwXCIsXG4gICAgXCLQmtCw0LvQuNC90LjQvdCwXCIsXG4gICAgXCLQrtC20L3QsNGPXCIsXG4gICAgXCLQmtC+0LvRhdC+0LfQvdCw0Y9cIixcbiAgICBcItCg0LDQsdC+0YfQsNGPXCIsXG4gICAgXCLQodC+0LvQvdC10YfQvdCw0Y9cIixcbiAgICBcItCW0LXQu9C10LfQvdC+0LTQvtGA0L7QttC90LDRj1wiLFxuICAgIFwi0JLQvtGB0YLQvtGH0L3QsNGPXCIsXG4gICAgXCLQl9Cw0LLQvtC00YHQutCw0Y9cIixcbiAgICBcItCn0LDQv9Cw0LXQstCwXCIsXG4gICAgXCLQndCw0LPQvtGA0L3QsNGPXCIsXG4gICAgXCLQodGC0YDQvtC40YLQtdC70LXQuVwiLFxuICAgIFwi0JHQtdGA0LXQs9C+0LLQsNGPXCIsXG4gICAgXCLQn9C+0LHQtdC00YtcIixcbiAgICBcItCT0L7RgNGM0LrQvtCz0L5cIixcbiAgICBcItCa0L7QvtC/0LXRgNCw0YLQuNCy0L3QsNGPXCIsXG4gICAgXCLQmtGA0LDRgdC90L7QsNGA0LzQtdC50YHQutCw0Y9cIixcbiAgICBcItCh0L7QstGF0L7Qt9C90LDRj1wiLFxuICAgIFwi0KDQtdGH0L3QsNGPXCIsXG4gICAgXCLQqNC60L7Qu9GM0L3Ri9C5XCIsXG4gICAgXCLQodC/0L7RgNGC0LjQstC90LDRj1wiLFxuICAgIFwi0J7Qt9C10YDQvdCw0Y9cIixcbiAgICBcItCh0YLRgNC+0LjRgtC10LvRjNC90LDRj1wiLFxuICAgIFwi0J/QsNGA0LrQvtCy0LDRj1wiLFxuICAgIFwi0KfQutCw0LvQvtCy0LBcIixcbiAgICBcItCc0LjRh9GD0YDQuNC90LBcIixcbiAgICBcItGA0LXRh9C10L3RjCDRg9C70LjRhlwiLFxuICAgIFwi0J/QvtC00LPQvtGA0L3QsNGPXCIsXG4gICAgXCLQlNGA0YPQttCx0YtcIixcbiAgICBcItCf0L7Rh9GC0L7QstCw0Y9cIixcbiAgICBcItCf0LDRgNGC0LjQt9Cw0L3RgdC60LDRj1wiLFxuICAgIFwi0JLQvtC60LfQsNC70YzQvdCw0Y9cIixcbiAgICBcItCb0LXRgNC80L7QvdGC0L7QstCwXCIsXG4gICAgXCLQodCy0L7QsdC+0LTRi1wiLFxuICAgIFwi0JTQvtGA0L7QttC90LDRj1wiLFxuICAgIFwi0JTQsNGH0L3QsNGPXCIsXG4gICAgXCLQnNCw0Y/QutC+0LLRgdC60L7Qs9C+XCIsXG4gICAgXCLQl9Cw0L/QsNC00L3QsNGPXCIsXG4gICAgXCLQpNGA0YPQvdC30LVcIixcbiAgICBcItCU0LfQtdGA0LbQuNC90YHQutC+0LPQvlwiLFxuICAgIFwi0JzQvtGB0LrQvtCy0YHQutCw0Y9cIixcbiAgICBcItCh0LLQtdGA0LTQu9C+0LLQsFwiLFxuICAgIFwi0J3QtdC60YDQsNGB0L7QstCwXCIsXG4gICAgXCLQk9C+0LPQvtC70Y9cIixcbiAgICBcItCa0YDQsNGB0L3QsNGPXCIsXG4gICAgXCLQotGA0YPQtNC+0LLQsNGPXCIsXG4gICAgXCLQqNC+0YHRgdC10LnQvdCw0Y9cIixcbiAgICBcItCn0LXRhdC+0LLQsFwiLFxuICAgIFwi0JrQvtC80LzRg9C90LjRgdGC0LjRh9C10YHQutCw0Y9cIixcbiAgICBcItCi0YDRg9C00LBcIixcbiAgICBcItCa0L7QvNCw0YDQvtCy0LBcIixcbiAgICBcItCc0LDRgtGA0L7RgdC+0LLQsFwiLFxuICAgIFwi0J7RgdGC0YDQvtCy0YHQutC+0LPQvlwiLFxuICAgIFwi0KHQvtGB0L3QvtCy0LDRj1wiLFxuICAgIFwi0JrQu9GD0LHQvdCw0Y9cIixcbiAgICBcItCa0YPQudCx0YvRiNC10LLQsFwiLFxuICAgIFwi0JrRgNGD0L/RgdC60L7QuVwiLFxuICAgIFwi0JHQtdGA0LXQt9C+0LLQsNGPXCIsXG4gICAgXCLQmtCw0YDQu9CwINCc0LDRgNC60YHQsFwiLFxuICAgIFwiOCDQnNCw0YDRgtCwXCIsXG4gICAgXCLQkdC+0LvRjNC90LjRh9C90LDRj1wiLFxuICAgIFwi0KHQsNC00L7QstGL0LlcIixcbiAgICBcItCY0L3RgtC10YDQvdCw0YbQuNC+0L3QsNC70YzQvdCw0Y9cIixcbiAgICBcItCh0YPQstC+0YDQvtCy0LBcIixcbiAgICBcItCm0LLQtdGC0L7Rh9C90LDRj1wiLFxuICAgIFwi0KLRgNCw0LrRgtC+0LLQsNGPXCIsXG4gICAgXCLQm9C+0LzQvtC90L7RgdC+0LLQsFwiLFxuICAgIFwi0JPQvtGA0L3QsNGPXCIsXG4gICAgXCLQmtC+0YHQvNC+0L3QsNCy0YLQvtCyXCIsXG4gICAgXCLQrdC90LXRgNCz0LXRgtC40LrQvtCyXCIsXG4gICAgXCLQqNC10LLRh9C10L3QutC+XCIsXG4gICAgXCLQktC10YHQtdC90L3Rj9GPXCIsXG4gICAgXCLQnNC10YXQsNC90LjQt9Cw0YLQvtGA0L7QslwiLFxuICAgIFwi0JrQvtC80LzRg9C90LDQu9GM0L3QsNGPXCIsXG4gICAgXCLQm9C10YHQvdC+0LlcIixcbiAgICBcIjQwINC70LXRgiDQn9C+0LHQtdC00YtcIixcbiAgICBcItCc0LDQudGB0LrQsNGPXCJcbiAgXSxcbiAgXCJjaXR5X25hbWVcIjogW1xuICAgIFwi0JzQvtGB0LrQstCwXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGAXCIsXG4gICAgXCLQodCw0L3QutGCLdCf0LXRgtC10YDQsdGD0YDQs1wiLFxuICAgIFwi0J3QvtCy0L7RgdC40LHQuNGA0YHQulwiLFxuICAgIFwi0JXQutCw0YLQtdGA0LjQvdCx0YPRgNCzXCIsXG4gICAgXCLQndC40LbQvdC40Lkg0J3QvtCy0LPQvtGA0L7QtFwiLFxuICAgIFwi0KHQsNC80LDRgNCwXCIsXG4gICAgXCLQmtCw0LfQsNC90YxcIixcbiAgICBcItCe0LzRgdC6XCIsXG4gICAgXCLQp9C10LvRj9Cx0LjQvdGB0LpcIixcbiAgICBcItCg0L7RgdGC0L7Qsi3QvdCwLdCU0L7QvdGDXCIsXG4gICAgXCLQo9GE0LBcIixcbiAgICBcItCS0L7Qu9Cz0L7Qs9GA0LDQtFwiLFxuICAgIFwi0J/QtdGA0LzRjFwiLFxuICAgIFwi0JrRgNCw0YHQvdC+0Y/RgNGB0LpcIixcbiAgICBcItCS0L7RgNC+0L3QtdC2XCIsXG4gICAgXCLQodCw0YDQsNGC0L7QslwiLFxuICAgIFwi0JrRgNCw0YHQvdC+0LTQsNGAXCIsXG4gICAgXCLQotC+0LvRjNGP0YLRgtC4XCIsXG4gICAgXCLQmNC20LXQstGB0LpcIixcbiAgICBcItCR0LDRgNC90LDRg9C7XCIsXG4gICAgXCLQo9C70YzRj9C90L7QstGB0LpcIixcbiAgICBcItCi0Y7QvNC10L3RjFwiLFxuICAgIFwi0JjRgNC60YPRgtGB0LpcIixcbiAgICBcItCS0LvQsNC00LjQstC+0YHRgtC+0LpcIixcbiAgICBcItCv0YDQvtGB0LvQsNCy0LvRjFwiLFxuICAgIFwi0KXQsNCx0LDRgNC+0LLRgdC6XCIsXG4gICAgXCLQnNCw0YXQsNGH0LrQsNC70LBcIixcbiAgICBcItCe0YDQtdC90LHRg9GA0LNcIixcbiAgICBcItCd0L7QstC+0LrRg9C30L3QtdGG0LpcIixcbiAgICBcItCi0L7QvNGB0LpcIixcbiAgICBcItCa0LXQvNC10YDQvtCy0L5cIixcbiAgICBcItCg0Y/Qt9Cw0L3RjFwiLFxuICAgIFwi0JDRgdGC0YDQsNGF0LDQvdGMXCIsXG4gICAgXCLQn9C10L3Qt9CwXCIsXG4gICAgXCLQm9C40L/QtdGG0LpcIixcbiAgICBcItCi0YPQu9CwXCIsXG4gICAgXCLQmtC40YDQvtCyXCIsXG4gICAgXCLQp9C10LHQvtC60YHQsNGA0YtcIixcbiAgICBcItCa0YPRgNGB0LpcIixcbiAgICBcItCR0YDRj9C90YHQum0g0JzQsNCz0L3QuNGC0L7Qs9C+0YDRgdC6XCIsXG4gICAgXCLQmNCy0LDQvdC+0LLQvlwiLFxuICAgIFwi0KLQstC10YDRjFwiLFxuICAgIFwi0KHRgtCw0LLRgNC+0L/QvtC70YxcIixcbiAgICBcItCR0LXQu9Cz0L7RgNC+0LRcIixcbiAgICBcItCh0L7Rh9C4XCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7QWRkcmVzcy5jaXR5X25hbWV9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9zdWZmaXh9ICN7QWRkcmVzcy5zdHJlZXRfdGl0bGV9XCIsXG4gICAgXCIje0FkZHJlc3Muc3RyZWV0X3RpdGxlfSAje3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSwgI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwi0KDQvtGB0YHQuNGPXCJcbiAgXVxufTtcbnJ1LmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwieWFuZGV4LnJ1XCIsXG4gICAgXCJ5YS5ydVwiLFxuICAgIFwibWFpbC5ydVwiLFxuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwicnVcIixcbiAgICBcImluZm9cIixcbiAgICBcItGA0YRcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnJ1Lm5hbWUgPSB7XG4gIFwibWFsZV9maXJzdF9uYW1lXCI6IFtcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgFwiLFxuICAgIFwi0JDQu9C10LrRgdC10LlcIixcbiAgICBcItCQ0LvRjNCx0LXRgNGCXCIsXG4gICAgXCLQkNC90LDRgtC+0LvQuNC5XCIsXG4gICAgXCLQkNC90LTRgNC10LlcIixcbiAgICBcItCQ0L3RgtC+0L1cIixcbiAgICBcItCQ0YDQutCw0LTQuNC5XCIsXG4gICAgXCLQkNGA0YHQtdC90LjQuVwiLFxuICAgIFwi0JDRgNGC0ZHQvFwiLFxuICAgIFwi0JHQvtGA0LjRgVwiLFxuICAgIFwi0JLQsNC00LjQvFwiLFxuICAgIFwi0JLQsNC70LXQvdGC0LjQvVwiLFxuICAgIFwi0JLQsNC70LXRgNC40LlcIixcbiAgICBcItCS0LDRgdC40LvQuNC5XCIsXG4gICAgXCLQktC40LrRgtC+0YBcIixcbiAgICBcItCS0LjRgtCw0LvQuNC5XCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGAXCIsXG4gICAgXCLQktC70LDQtNC40YHQu9Cw0LJcIixcbiAgICBcItCS0Y/Rh9C10YHQu9Cw0LJcIixcbiAgICBcItCT0LXQvdC90LDQtNC40LlcIixcbiAgICBcItCT0LXQvtGA0LPQuNC5XCIsXG4gICAgXCLQk9C10YDQvNCw0L1cIixcbiAgICBcItCT0YDQuNCz0L7RgNC40LlcIixcbiAgICBcItCU0LDQvdC40LjQu1wiLFxuICAgIFwi0JTQtdC90LjRgVwiLFxuICAgIFwi0JTQvNC40YLRgNC40LlcIixcbiAgICBcItCV0LLQs9C10L3QuNC5XCIsXG4gICAgXCLQldCz0L7RgFwiLFxuICAgIFwi0JjQstCw0L1cIixcbiAgICBcItCY0LPQvdCw0YLQuNC5XCIsXG4gICAgXCLQmNCz0L7RgNGMXCIsXG4gICAgXCLQmNC70YzRj1wiLFxuICAgIFwi0JrQvtC90YHRgtCw0L3RgtC40L1cIixcbiAgICBcItCb0LDQstGA0LXQvdGC0LjQuVwiLFxuICAgIFwi0JvQtdC+0L3QuNC0XCIsXG4gICAgXCLQm9GD0LrQsFwiLFxuICAgIFwi0JzQsNC60LDRgFwiLFxuICAgIFwi0JzQsNC60YHQuNC8XCIsXG4gICAgXCLQnNCw0YLQstC10LlcIixcbiAgICBcItCc0LjRhdCw0LjQu1wiLFxuICAgIFwi0J3QuNC60LjRgtCwXCIsXG4gICAgXCLQndC40LrQvtC70LDQuVwiLFxuICAgIFwi0J7Qu9C10LNcIixcbiAgICBcItCg0L7QvNCw0L1cIixcbiAgICBcItCh0LXQvNGR0L1cIixcbiAgICBcItCh0LXRgNCz0LXQuVwiLFxuICAgIFwi0KHRgtCw0L3QuNGB0LvQsNCyXCIsXG4gICAgXCLQodGC0LXQv9Cw0L1cIixcbiAgICBcItCk0ZHQtNC+0YBcIixcbiAgICBcItCt0LTRg9Cw0YDQtFwiLFxuICAgIFwi0K7RgNC40LlcIixcbiAgICBcItCv0YDQvtGB0LvQsNCyXCJcbiAgXSxcbiAgXCJtYWxlX21pZGRsZV9uYW1lXCI6IFtcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHXCIsXG4gICAgXCLQkNC70LXQutGB0LXQtdCy0LjRh1wiLFxuICAgIFwi0JDQu9GM0LHQtdGA0YLQvtCy0LjRh1wiLFxuICAgIFwi0JDQvdCw0YLQvtC70YzQtdCy0LjRh1wiLFxuICAgIFwi0JDQvdC00YDQtdC10LLQuNGHXCIsXG4gICAgXCLQkNC90YLQvtC90L7QstC40YdcIixcbiAgICBcItCQ0YDQutCw0LTRjNC10LLQuNGHXCIsXG4gICAgXCLQkNGA0YHQtdC90YzQtdCy0LjRh1wiLFxuICAgIFwi0JDRgNGC0ZHQvNC+0LLQuNGHXCIsXG4gICAgXCLQkdC+0YDQuNGB0L7QstC40YdcIixcbiAgICBcItCS0LDQtNC40LzQvtCy0LjRh1wiLFxuICAgIFwi0JLQsNC70LXQvdGC0LjQvdC+0LLQuNGHXCIsXG4gICAgXCLQktCw0LvQtdGA0YzQtdCy0LjRh1wiLFxuICAgIFwi0JLQsNGB0LjQu9GM0LXQstC40YdcIixcbiAgICBcItCS0LjQutGC0L7RgNC+0LLQuNGHXCIsXG4gICAgXCLQktC40YLQsNC70YzQtdCy0LjRh1wiLFxuICAgIFwi0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHXCIsXG4gICAgXCLQktC70LDQtNC40YHQu9Cw0LLQvtCy0LjRh1wiLFxuICAgIFwi0JLRj9GH0LXRgdC70LDQstC+0LLQuNGHXCIsXG4gICAgXCLQk9C10L3QvdCw0LTRjNC10LLQuNGHXCIsXG4gICAgXCLQk9C10L7RgNCz0LjQtdCy0LjRh1wiLFxuICAgIFwi0JPQtdGA0LzQsNC90L7QstC40YdcIixcbiAgICBcItCT0YDQuNCz0L7RgNGM0LXQstC40YdcIixcbiAgICBcItCU0LDQvdC40LjQu9C+0LLQuNGHXCIsXG4gICAgXCLQlNC10L3QuNGB0L7QstC40YdcIixcbiAgICBcItCU0LzQuNGC0YDQuNC10LLQuNGHXCIsXG4gICAgXCLQldCy0LPQtdC90YzQtdCy0LjRh1wiLFxuICAgIFwi0JXQs9C+0YDQvtCy0LjRh1wiLFxuICAgIFwi0JjQstCw0L3QvtCy0LjRh1wiLFxuICAgIFwi0JjQs9C90LDRgtGM0LXQstC40YdcIixcbiAgICBcItCY0LPQvtGA0LXQstC40YdcIixcbiAgICBcItCY0LvRjNC40YdcIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YdcIixcbiAgICBcItCb0LDQstGA0LXQvdGC0YzQtdCy0LjRh1wiLFxuICAgIFwi0JvQtdC+0L3QuNC00L7QstC40YdcIixcbiAgICBcItCb0YPQutC40YdcIixcbiAgICBcItCc0LDQutCw0YDQvtCy0LjRh1wiLFxuICAgIFwi0JzQsNC60YHQuNC80L7QstC40YdcIixcbiAgICBcItCc0LDRgtCy0LXQtdCy0LjRh1wiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QstC40YdcIixcbiAgICBcItCd0LjQutC40YLQuNGHXCIsXG4gICAgXCLQndC40LrQvtC70LDQtdCy0LjRh1wiLFxuICAgIFwi0J7Qu9C10LPQvtCy0LjRh1wiLFxuICAgIFwi0KDQvtC80LDQvdC+0LLQuNGHXCIsXG4gICAgXCLQodC10LzRkdC90L7QstC40YdcIixcbiAgICBcItCh0LXRgNCz0LXQtdCy0LjRh1wiLFxuICAgIFwi0KHRgtCw0L3QuNGB0LvQsNCy0L7QstC40YdcIixcbiAgICBcItCh0YLQtdC/0LDQvdC+0LLQuNGHXCIsXG4gICAgXCLQpNGR0LTQvtGA0L7QstC40YdcIixcbiAgICBcItCt0LTRg9Cw0YDQtNC+0LLQuNGHXCIsXG4gICAgXCLQrtGA0YzQtdCy0LjRh1wiLFxuICAgIFwi0K/RgNC+0YHQu9Cw0LLQvtCy0LjRh1wiXG4gIF0sXG4gIFwibWFsZV9sYXN0X25hbWVcIjogW1xuICAgIFwi0KHQvNC40YDQvdC+0LJcIixcbiAgICBcItCY0LLQsNC90L7QslwiLFxuICAgIFwi0JrRg9C30L3QtdGG0L7QslwiLFxuICAgIFwi0J/QvtC/0L7QslwiLFxuICAgIFwi0KHQvtC60L7Qu9C+0LJcIixcbiAgICBcItCb0LXQsdC10LTQtdCyXCIsXG4gICAgXCLQmtC+0LfQu9C+0LJcIixcbiAgICBcItCd0L7QstC40LrQvtCyXCIsXG4gICAgXCLQnNC+0YDQvtC30L7QslwiLFxuICAgIFwi0J/QtdGC0YDQvtCyXCIsXG4gICAgXCLQktC+0LvQutC+0LJcIixcbiAgICBcItCh0L7Qu9C+0LLRjNC10LJcIixcbiAgICBcItCS0LDRgdC40LvRjNC10LJcIixcbiAgICBcItCX0LDQudGG0LXQslwiLFxuICAgIFwi0J/QsNCy0LvQvtCyXCIsXG4gICAgXCLQodC10LzQtdC90L7QslwiLFxuICAgIFwi0JPQvtC70YPQsdC10LJcIixcbiAgICBcItCS0LjQvdC+0LPRgNCw0LTQvtCyXCIsXG4gICAgXCLQkdC+0LPQtNCw0L3QvtCyXCIsXG4gICAgXCLQktC+0YDQvtCx0YzQtdCyXCIsXG4gICAgXCLQpNC10LTQvtGA0L7QslwiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QslwiLFxuICAgIFwi0JHQtdC70Y/QtdCyXCIsXG4gICAgXCLQotCw0YDQsNGB0L7QslwiLFxuICAgIFwi0JHQtdC70L7QslwiLFxuICAgIFwi0JrQvtC80LDRgNC+0LJcIixcbiAgICBcItCe0YDQu9C+0LJcIixcbiAgICBcItCa0LjRgdC10LvQtdCyXCIsXG4gICAgXCLQnNCw0LrQsNGA0L7QslwiLFxuICAgIFwi0JDQvdC00YDQtdC10LJcIixcbiAgICBcItCa0L7QstCw0LvQtdCyXCIsXG4gICAgXCLQmNC70YzQuNC9XCIsXG4gICAgXCLQk9GD0YHQtdCyXCIsXG4gICAgXCLQotC40YLQvtCyXCIsXG4gICAgXCLQmtGD0LfRjNC80LjQvVwiLFxuICAgIFwi0JrRg9C00YDRj9Cy0YbQtdCyXCIsXG4gICAgXCLQkdCw0YDQsNC90L7QslwiLFxuICAgIFwi0JrRg9C70LjQutC+0LJcIixcbiAgICBcItCQ0LvQtdC60YHQtdC10LJcIixcbiAgICBcItCh0YLQtdC/0LDQvdC+0LJcIixcbiAgICBcItCv0LrQvtCy0LvQtdCyXCIsXG4gICAgXCLQodC+0YDQvtC60LjQvVwiLFxuICAgIFwi0KHQtdGA0LPQtdC10LJcIixcbiAgICBcItCg0L7QvNCw0L3QvtCyXCIsXG4gICAgXCLQl9Cw0YXQsNGA0L7QslwiLFxuICAgIFwi0JHQvtGA0LjRgdC+0LJcIixcbiAgICBcItCa0L7RgNC+0LvQtdCyXCIsXG4gICAgXCLQk9C10YDQsNGB0LjQvNC+0LJcIixcbiAgICBcItCf0L7QvdC+0LzQsNGA0LXQslwiLFxuICAgIFwi0JPRgNC40LPQvtGA0YzQtdCyXCIsXG4gICAgXCLQm9Cw0LfQsNGA0LXQslwiLFxuICAgIFwi0JzQtdC00LLQtdC00LXQslwiLFxuICAgIFwi0JXRgNGI0L7QslwiLFxuICAgIFwi0J3QuNC60LjRgtC40L1cIixcbiAgICBcItCh0L7QsdC+0LvQtdCyXCIsXG4gICAgXCLQoNGP0LHQvtCyXCIsXG4gICAgXCLQn9C+0LvRj9C60L7QslwiLFxuICAgIFwi0KbQstC10YLQutC+0LJcIixcbiAgICBcItCU0LDQvdC40LvQvtCyXCIsXG4gICAgXCLQltGD0LrQvtCyXCIsXG4gICAgXCLQpNGA0L7Qu9C+0LJcIixcbiAgICBcItCW0YPRgNCw0LLQu9C10LJcIixcbiAgICBcItCd0LjQutC+0LvQsNC10LJcIixcbiAgICBcItCa0YDRi9C70L7QslwiLFxuICAgIFwi0JzQsNC60YHQuNC80L7QslwiLFxuICAgIFwi0KHQuNC00L7RgNC+0LJcIixcbiAgICBcItCe0YHQuNC/0L7QslwiLFxuICAgIFwi0JHQtdC70L7Rg9GB0L7QslwiLFxuICAgIFwi0KTQtdC00L7RgtC+0LJcIixcbiAgICBcItCU0L7RgNC+0YTQtdC10LJcIixcbiAgICBcItCV0LPQvtGA0L7QslwiLFxuICAgIFwi0JzQsNGC0LLQtdC10LJcIixcbiAgICBcItCR0L7QsdGA0L7QslwiLFxuICAgIFwi0JTQvNC40YLRgNC40LXQslwiLFxuICAgIFwi0JrQsNC70LjQvdC40L1cIixcbiAgICBcItCQ0L3QuNGB0LjQvNC+0LJcIixcbiAgICBcItCf0LXRgtGD0YXQvtCyXCIsXG4gICAgXCLQkNC90YLQvtC90L7QslwiLFxuICAgIFwi0KLQuNC80L7RhNC10LXQslwiLFxuICAgIFwi0J3QuNC60LjRhNC+0YDQvtCyXCIsXG4gICAgXCLQktC10YHQtdC70L7QslwiLFxuICAgIFwi0KTQuNC70LjQv9C/0L7QslwiLFxuICAgIFwi0JzQsNGA0LrQvtCyXCIsXG4gICAgXCLQkdC+0LvRjNGI0LDQutC+0LJcIixcbiAgICBcItCh0YPRhdCw0L3QvtCyXCIsXG4gICAgXCLQnNC40YDQvtC90L7QslwiLFxuICAgIFwi0KjQuNGA0Y/QtdCyXCIsXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQvtCyXCIsXG4gICAgXCLQmtC+0L3QvtCy0LDQu9C+0LJcIixcbiAgICBcItCo0LXRgdGC0LDQutC+0LJcIixcbiAgICBcItCa0LDQt9Cw0LrQvtCyXCIsXG4gICAgXCLQldGE0LjQvNC+0LJcIixcbiAgICBcItCU0LXQvdC40YHQvtCyXCIsXG4gICAgXCLQk9GA0L7QvNC+0LJcIixcbiAgICBcItCk0L7QvNC40L1cIixcbiAgICBcItCU0LDQstGL0LTQvtCyXCIsXG4gICAgXCLQnNC10LvRjNC90LjQutC+0LJcIixcbiAgICBcItCp0LXRgNCx0LDQutC+0LJcIixcbiAgICBcItCR0LvQuNC90L7QslwiLFxuICAgIFwi0JrQvtC70LXRgdC90LjQutC+0LJcIixcbiAgICBcItCa0LDRgNC/0L7QslwiLFxuICAgIFwi0JDRhNCw0L3QsNGB0YzQtdCyXCIsXG4gICAgXCLQktC70LDRgdC+0LJcIixcbiAgICBcItCc0LDRgdC70L7QslwiLFxuICAgIFwi0JjRgdCw0LrQvtCyXCIsXG4gICAgXCLQotC40YXQvtC90L7QslwiLFxuICAgIFwi0JDQutGB0LXQvdC+0LJcIixcbiAgICBcItCT0LDQstGA0LjQu9C+0LJcIixcbiAgICBcItCg0L7QtNC40L7QvdC+0LJcIixcbiAgICBcItCa0L7RgtC+0LJcIixcbiAgICBcItCT0L7RgNCx0YPQvdC+0LJcIixcbiAgICBcItCa0YPQtNGA0Y/RiNC+0LJcIixcbiAgICBcItCR0YvQutC+0LJcIixcbiAgICBcItCX0YPQtdCyXCIsXG4gICAgXCLQotGA0LXRgtGM0Y/QutC+0LJcIixcbiAgICBcItCh0LDQstC10LvRjNC10LJcIixcbiAgICBcItCf0LDQvdC+0LJcIixcbiAgICBcItCg0YvQsdCw0LrQvtCyXCIsXG4gICAgXCLQodGD0LLQvtGA0L7QslwiLFxuICAgIFwi0JDQsdGA0LDQvNC+0LJcIixcbiAgICBcItCS0L7RgNC+0L3QvtCyXCIsXG4gICAgXCLQnNGD0YXQuNC9XCIsXG4gICAgXCLQkNGA0YXQuNC/0L7QslwiLFxuICAgIFwi0KLRgNC+0YTQuNC80L7QslwiLFxuICAgIFwi0JzQsNGA0YLRi9C90L7QslwiLFxuICAgIFwi0JXQvNC10LvRjNGP0L3QvtCyXCIsXG4gICAgXCLQk9C+0YDRiNC60L7QslwiLFxuICAgIFwi0KfQtdGA0L3QvtCyXCIsXG4gICAgXCLQntCy0YfQuNC90L3QuNC60L7QslwiLFxuICAgIFwi0KHQtdC70LXQt9C90LXQslwiLFxuICAgIFwi0J/QsNC90YTQuNC70L7QslwiLFxuICAgIFwi0JrQvtC/0YvQu9C+0LJcIixcbiAgICBcItCc0LjRhdC10LXQslwiLFxuICAgIFwi0JPQsNC70LrQuNC9XCIsXG4gICAgXCLQndCw0LfQsNGA0L7QslwiLFxuICAgIFwi0JvQvtCx0LDQvdC+0LJcIixcbiAgICBcItCb0YPQutC40L1cIixcbiAgICBcItCR0LXQu9GP0LrQvtCyXCIsXG4gICAgXCLQn9C+0YLQsNC/0L7QslwiLFxuICAgIFwi0J3QtdC60YDQsNGB0L7QslwiLFxuICAgIFwi0KXQvtGF0LvQvtCyXCIsXG4gICAgXCLQltC00LDQvdC+0LJcIixcbiAgICBcItCd0LDRg9C80L7QslwiLFxuICAgIFwi0KjQuNC70L7QslwiLFxuICAgIFwi0JLQvtGA0L7QvdGG0L7QslwiLFxuICAgIFwi0JXRgNC80LDQutC+0LJcIixcbiAgICBcItCU0YDQvtC30LTQvtCyXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCyXCIsXG4gICAgXCLQodCw0LLQuNC9XCIsXG4gICAgXCLQm9C+0LPQuNC90L7QslwiLFxuICAgIFwi0KHQsNGE0L7QvdC+0LJcIixcbiAgICBcItCa0LDQv9GD0YHRgtC40L1cIixcbiAgICBcItCa0LjRgNC40LvQu9C+0LJcIixcbiAgICBcItCc0L7QuNGB0LXQtdCyXCIsXG4gICAgXCLQldC70LjRgdC10LXQslwiLFxuICAgIFwi0JrQvtGI0LXQu9C10LJcIixcbiAgICBcItCa0L7RgdGC0LjQvVwiLFxuICAgIFwi0JPQvtGA0LHQsNGH0LXQslwiLFxuICAgIFwi0J7RgNC10YXQvtCyXCIsXG4gICAgXCLQldGE0YDQtdC80L7QslwiLFxuICAgIFwi0JjRgdCw0LXQslwiLFxuICAgIFwi0JXQstC00L7QutC40LzQvtCyXCIsXG4gICAgXCLQmtCw0LvQsNGI0L3QuNC60L7QslwiLFxuICAgIFwi0JrQsNCx0LDQvdC+0LJcIixcbiAgICBcItCd0L7RgdC60L7QslwiLFxuICAgIFwi0K7QtNC40L1cIixcbiAgICBcItCa0YPQu9Cw0LPQuNC9XCIsXG4gICAgXCLQm9Cw0L/QuNC9XCIsXG4gICAgXCLQn9GA0L7RhdC+0YDQvtCyXCIsXG4gICAgXCLQndC10YHRgtC10YDQvtCyXCIsXG4gICAgXCLQpdCw0YDQuNGC0L7QvdC+0LJcIixcbiAgICBcItCQ0LPQsNGE0L7QvdC+0LJcIixcbiAgICBcItCc0YPRgNCw0LLRjNC10LJcIixcbiAgICBcItCb0LDRgNC40L7QvdC+0LJcIixcbiAgICBcItCk0LXQtNC+0YHQtdC10LJcIixcbiAgICBcItCX0LjQvNC40L1cIixcbiAgICBcItCf0LDRhdC+0LzQvtCyXCIsXG4gICAgXCLQqNGD0LHQuNC9XCIsXG4gICAgXCLQmNCz0L3QsNGC0L7QslwiLFxuICAgIFwi0KTQuNC70LDRgtC+0LJcIixcbiAgICBcItCa0YDRjtC60L7QslwiLFxuICAgIFwi0KDQvtCz0L7QslwiLFxuICAgIFwi0JrRg9C70LDQutC+0LJcIixcbiAgICBcItCi0LXRgNC10L3RgtGM0LXQslwiLFxuICAgIFwi0JzQvtC70YfQsNC90L7QslwiLFxuICAgIFwi0JLQu9Cw0LTQuNC80LjRgNC+0LJcIixcbiAgICBcItCQ0YDRgtC10LzRjNC10LJcIixcbiAgICBcItCT0YPRgNGM0LXQslwiLFxuICAgIFwi0JfQuNC90L7QstGM0LXQslwiLFxuICAgIFwi0JPRgNC40YjQuNC9XCIsXG4gICAgXCLQmtC+0L3QvtC90L7QslwiLFxuICAgIFwi0JTQtdC80LXQvdGC0YzQtdCyXCIsXG4gICAgXCLQodC40YLQvdC40LrQvtCyXCIsXG4gICAgXCLQodC40LzQvtC90L7QslwiLFxuICAgIFwi0JzQuNGI0LjQvVwiLFxuICAgIFwi0KTQsNC00LXQtdCyXCIsXG4gICAgXCLQmtC+0LzQuNGB0YHQsNGA0L7QslwiLFxuICAgIFwi0JzQsNC80L7QvdGC0L7QslwiLFxuICAgIFwi0J3QvtGB0L7QslwiLFxuICAgIFwi0JPRg9C70Y/QtdCyXCIsXG4gICAgXCLQqNCw0YDQvtCyXCIsXG4gICAgXCLQo9GB0YLQuNC90L7QslwiLFxuICAgIFwi0JLQuNGI0L3Rj9C60L7QslwiLFxuICAgIFwi0JXQstGB0LXQtdCyXCIsXG4gICAgXCLQm9Cw0LLRgNC10L3RgtGM0LXQslwiLFxuICAgIFwi0JHRgNCw0LPQuNC9XCIsXG4gICAgXCLQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LJcIixcbiAgICBcItCa0L7RgNC90LjQu9C+0LJcIixcbiAgICBcItCQ0LLQtNC10LXQslwiLFxuICAgIFwi0JfRi9C60L7QslwiLFxuICAgIFwi0JHQuNGA0Y7QutC+0LJcIixcbiAgICBcItCo0LDRgNCw0L/QvtCyXCIsXG4gICAgXCLQndC40LrQvtC90L7QslwiLFxuICAgIFwi0KnRg9C60LjQvVwiLFxuICAgIFwi0JTRjNGP0YfQutC+0LJcIixcbiAgICBcItCe0LTQuNC90YbQvtCyXCIsXG4gICAgXCLQodCw0LfQvtC90L7QslwiLFxuICAgIFwi0K/QutGD0YjQtdCyXCIsXG4gICAgXCLQmtGA0LDRgdC40LvRjNC90LjQutC+0LJcIixcbiAgICBcItCT0L7RgNC00LXQtdCyXCIsXG4gICAgXCLQodCw0LzQvtC50LvQvtCyXCIsXG4gICAgXCLQmtC90Y/Qt9C10LJcIixcbiAgICBcItCR0LXRgdC/0LDQu9C+0LJcIixcbiAgICBcItCj0LLQsNGA0L7QslwiLFxuICAgIFwi0KjQsNGI0LrQvtCyXCIsXG4gICAgXCLQkdC+0LHRi9C70LXQslwiLFxuICAgIFwi0JTQvtGA0L7QvdC40L1cIixcbiAgICBcItCR0LXQu9C+0LfQtdGA0L7QslwiLFxuICAgIFwi0KDQvtC20LrQvtCyXCIsXG4gICAgXCLQodCw0LzRgdC+0L3QvtCyXCIsXG4gICAgXCLQnNGP0YHQvdC40LrQvtCyXCIsXG4gICAgXCLQm9C40YXQsNGH0LXQslwiLFxuICAgIFwi0JHRg9GA0L7QslwiLFxuICAgIFwi0KHRi9GB0L7QtdCyXCIsXG4gICAgXCLQpNC+0LzQuNGH0LXQslwiLFxuICAgIFwi0KDRg9GB0LDQutC+0LJcIixcbiAgICBcItCh0YLRgNC10LvQutC+0LJcIixcbiAgICBcItCT0YPRidC40L1cIixcbiAgICBcItCi0LXRgtC10YDQuNC9XCIsXG4gICAgXCLQmtC+0LvQvtCx0L7QslwiLFxuICAgIFwi0KHRg9Cx0LHQvtGC0LjQvVwiLFxuICAgIFwi0KTQvtC60LjQvVwiLFxuICAgIFwi0JHQu9C+0YXQuNC9XCIsXG4gICAgXCLQodC10LvQuNCy0LXRgNGB0YLQvtCyXCIsXG4gICAgXCLQn9C10YHRgtC+0LJcIixcbiAgICBcItCa0L7QvdC00YDQsNGC0YzQtdCyXCIsXG4gICAgXCLQodC40LvQuNC9XCIsXG4gICAgXCLQnNC10YDQutGD0YjQtdCyXCIsXG4gICAgXCLQm9GL0YLQutC40L1cIixcbiAgICBcItCi0YPRgNC+0LJcIlxuICBdLFxuICBcImZlbWFsZV9maXJzdF9uYW1lXCI6IFtcbiAgICBcItCQ0L3QvdCwXCIsXG4gICAgXCLQkNC70ZHQvdCwXCIsXG4gICAgXCLQkNC70LXQstGC0LjQvdCwXCIsXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQsFwiLFxuICAgIFwi0JDQu9C40L3QsFwiLFxuICAgIFwi0JDQu9C70LBcIixcbiAgICBcItCQ0L3QsNGB0YLQsNGB0LjRj1wiLFxuICAgIFwi0JDQvdCz0LXQu9C40L3QsFwiLFxuICAgIFwi0JDQvdC20LXQu9CwXCIsXG4gICAgXCLQkNC90LbQtdC70LjQutCwXCIsXG4gICAgXCLQkNC90YLQvtC90LjQtNCwXCIsXG4gICAgXCLQkNC90YLQvtC90LjQvdCwXCIsXG4gICAgXCLQkNC90YTQuNGB0LBcIixcbiAgICBcItCQ0YDQuNC90LBcIixcbiAgICBcItCS0LDQu9C10L3RgtC40L3QsFwiLFxuICAgIFwi0JLQsNC70LXRgNC40Y9cIixcbiAgICBcItCS0LDRgNCy0LDRgNCwXCIsXG4gICAgXCLQktCw0YHQuNC70LjRgdCwXCIsXG4gICAgXCLQktC10YDQsFwiLFxuICAgIFwi0JLQtdGA0L7QvdC40LrQsFwiLFxuICAgIFwi0JLQuNC60YLQvtGA0LjRj1wiLFxuICAgIFwi0JPQsNC70LjQvdCwXCIsXG4gICAgXCLQlNCw0YDRjNGPXCIsXG4gICAgXCLQldCy0LPQtdC90LjRj1wiLFxuICAgIFwi0JXQutCw0YLQtdGA0LjQvdCwXCIsXG4gICAgXCLQldC70LXQvdCwXCIsXG4gICAgXCLQldC70LjQt9Cw0LLQtdGC0LBcIixcbiAgICBcItCW0LDQvdC90LBcIixcbiAgICBcItCX0LjQvdCw0LjQtNCwXCIsXG4gICAgXCLQl9C+0Y9cIixcbiAgICBcItCY0YDQuNC90LBcIixcbiAgICBcItCa0LjRgNCwXCIsXG4gICAgXCLQmtC70LDQstC00LjRj1wiLFxuICAgIFwi0JrRgdC10L3QuNGPXCIsXG4gICAgXCLQm9Cw0YDQuNGB0LBcIixcbiAgICBcItCb0LjQtNC40Y9cIixcbiAgICBcItCb0Y7QsdC+0LLRjFwiLFxuICAgIFwi0JvRjtC00LzQuNC70LBcIixcbiAgICBcItCc0LDRgNCz0LDRgNC40YLQsFwiLFxuICAgIFwi0JzQsNGA0LjQvdCwXCIsXG4gICAgXCLQnNCw0YDQuNGPXCIsXG4gICAgXCLQndCw0LTQtdC20LTQsFwiLFxuICAgIFwi0J3QsNGC0LDQu9GM0Y9cIixcbiAgICBcItCd0LjQvdCwXCIsXG4gICAgXCLQntC60YHQsNC90LBcIixcbiAgICBcItCe0LvRjNCz0LBcIixcbiAgICBcItCg0LDQuNGB0LBcIixcbiAgICBcItCg0LXQs9C40L3QsFwiLFxuICAgIFwi0KDQuNC80LzQsFwiLFxuICAgIFwi0KHQstC10YLQu9Cw0L3QsFwiLFxuICAgIFwi0KHQvtGE0LjRj1wiLFxuICAgIFwi0KLQsNC40YHQuNGPXCIsXG4gICAgXCLQotCw0LzQsNGA0LBcIixcbiAgICBcItCi0LDRgtGM0Y/QvdCwXCIsXG4gICAgXCLQo9C70YzRj9C90LBcIixcbiAgICBcItCu0LvQuNGPXCJcbiAgXSxcbiAgXCJmZW1hbGVfbWlkZGxlX25hbWVcIjogW1xuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LBcIixcbiAgICBcItCQ0LvQtdC60YHQtdC10LLQvdCwXCIsXG4gICAgXCLQkNC70YzQsdC10YDRgtC+0LLQvdCwXCIsXG4gICAgXCLQkNC90LDRgtC+0LvRjNC10LLQvdCwXCIsXG4gICAgXCLQkNC90LTRgNC10LXQstC90LBcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCy0L3QsFwiLFxuICAgIFwi0JDRgNC60LDQtNGM0LXQstC90LBcIixcbiAgICBcItCQ0YDRgdC10L3RjNC10LLQvdCwXCIsXG4gICAgXCLQkNGA0YLRkdC80L7QstC90LBcIixcbiAgICBcItCR0L7RgNC40YHQvtCy0L3QsFwiLFxuICAgIFwi0JLQsNC00LjQvNC+0LLQvdCwXCIsXG4gICAgXCLQktCw0LvQtdC90YLQuNC90L7QstC90LBcIixcbiAgICBcItCS0LDQu9C10YDRjNC10LLQvdCwXCIsXG4gICAgXCLQktCw0YHQuNC70YzQtdCy0L3QsFwiLFxuICAgIFwi0JLQuNC60YLQvtGA0L7QstC90LBcIixcbiAgICBcItCS0LjRgtCw0LvRjNC10LLQvdCwXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QstC90LBcIixcbiAgICBcItCS0LvQsNC00LjRgdC70LDQstC+0LLQvdCwXCIsXG4gICAgXCLQktGP0YfQtdGB0LvQsNCy0L7QstC90LBcIixcbiAgICBcItCT0LXQvdC90LDQtNGM0LXQstC90LBcIixcbiAgICBcItCT0LXQvtGA0LPQuNC10LLQvdCwXCIsXG4gICAgXCLQk9C10YDQvNCw0L3QvtCy0L3QsFwiLFxuICAgIFwi0JPRgNC40LPQvtGA0YzQtdCy0L3QsFwiLFxuICAgIFwi0JTQsNC90LjQuNC70L7QstC90LBcIixcbiAgICBcItCU0LXQvdC40YHQvtCy0L3QsFwiLFxuICAgIFwi0JTQvNC40YLRgNC40LXQstC90LBcIixcbiAgICBcItCV0LLQs9C10L3RjNC10LLQvdCwXCIsXG4gICAgXCLQldCz0L7RgNC+0LLQvdCwXCIsXG4gICAgXCLQmNCy0LDQvdC+0LLQvdCwXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCy0L3QsFwiLFxuICAgIFwi0JjQs9C+0YDQtdCy0L3QsFwiLFxuICAgIFwi0JjQu9GM0LjQvdC40YfQvdCwXCIsXG4gICAgXCLQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQvdCwXCIsXG4gICAgXCLQm9Cw0LLRgNC10L3RgtGM0LXQstC90LBcIixcbiAgICBcItCb0LXQvtC90LjQtNC+0LLQvdCwXCIsXG4gICAgXCLQnNCw0LrQsNGA0L7QstC90LBcIixcbiAgICBcItCc0LDQutGB0LjQvNC+0LLQvdCwXCIsXG4gICAgXCLQnNCw0YLQstC10LXQstC90LBcIixcbiAgICBcItCc0LjRhdCw0LnQu9C+0LLQvdCwXCIsXG4gICAgXCLQndC40LrQuNGC0LjRh9C90LBcIixcbiAgICBcItCd0LjQutC+0LvQsNC10LLQvdCwXCIsXG4gICAgXCLQntC70LXQs9C+0LLQvdCwXCIsXG4gICAgXCLQoNC+0LzQsNC90L7QstC90LBcIixcbiAgICBcItCh0LXQvNGR0L3QvtCy0L3QsFwiLFxuICAgIFwi0KHQtdGA0LPQtdC10LLQvdCwXCIsXG4gICAgXCLQodGC0LDQvdC40YHQu9Cw0LLQvtCy0L3QsFwiLFxuICAgIFwi0KHRgtC10L/QsNC90L7QstC90LBcIixcbiAgICBcItCk0ZHQtNC+0YDQvtCy0L3QsFwiLFxuICAgIFwi0K3QtNGD0LDRgNC00L7QstC90LBcIixcbiAgICBcItCu0YDRjNC10LLQvdCwXCIsXG4gICAgXCLQr9GA0L7RgdC70LDQstC+0LLQvdCwXCJcbiAgXSxcbiAgXCJmZW1hbGVfbGFzdF9uYW1lXCI6IFtcbiAgICBcItCh0LzQuNGA0L3QvtCy0LBcIixcbiAgICBcItCY0LLQsNC90L7QstCwXCIsXG4gICAgXCLQmtGD0LfQvdC10YbQvtCy0LBcIixcbiAgICBcItCf0L7Qv9C+0LLQsFwiLFxuICAgIFwi0KHQvtC60L7Qu9C+0LLQsFwiLFxuICAgIFwi0JvQtdCx0LXQtNC10LLQsFwiLFxuICAgIFwi0JrQvtC30LvQvtCy0LBcIixcbiAgICBcItCd0L7QstC40LrQvtCy0LBcIixcbiAgICBcItCc0L7RgNC+0LfQvtCy0LBcIixcbiAgICBcItCf0LXRgtGA0L7QstCwXCIsXG4gICAgXCLQktC+0LvQutC+0LLQsFwiLFxuICAgIFwi0KHQvtC70L7QstGM0LXQstCwXCIsXG4gICAgXCLQktCw0YHQuNC70YzQtdCy0LBcIixcbiAgICBcItCX0LDQudGG0LXQstCwXCIsXG4gICAgXCLQn9Cw0LLQu9C+0LLQsFwiLFxuICAgIFwi0KHQtdC80LXQvdC+0LLQsFwiLFxuICAgIFwi0JPQvtC70YPQsdC10LLQsFwiLFxuICAgIFwi0JLQuNC90L7Qs9GA0LDQtNC+0LLQsFwiLFxuICAgIFwi0JHQvtCz0LTQsNC90L7QstCwXCIsXG4gICAgXCLQktC+0YDQvtCx0YzQtdCy0LBcIixcbiAgICBcItCk0LXQtNC+0YDQvtCy0LBcIixcbiAgICBcItCc0LjRhdCw0LnQu9C+0LLQsFwiLFxuICAgIFwi0JHQtdC70Y/QtdCy0LBcIixcbiAgICBcItCi0LDRgNCw0YHQvtCy0LBcIixcbiAgICBcItCR0LXQu9C+0LLQsFwiLFxuICAgIFwi0JrQvtC80LDRgNC+0LLQsFwiLFxuICAgIFwi0J7RgNC70L7QstCwXCIsXG4gICAgXCLQmtC40YHQtdC70LXQstCwXCIsXG4gICAgXCLQnNCw0LrQsNGA0L7QstCwXCIsXG4gICAgXCLQkNC90LTRgNC10LXQstCwXCIsXG4gICAgXCLQmtC+0LLQsNC70LXQstCwXCIsXG4gICAgXCLQmNC70YzQuNC90LBcIixcbiAgICBcItCT0YPRgdC10LLQsFwiLFxuICAgIFwi0KLQuNGC0L7QstCwXCIsXG4gICAgXCLQmtGD0LfRjNC80LjQvdCwXCIsXG4gICAgXCLQmtGD0LTRgNGP0LLRhtC10LLQsFwiLFxuICAgIFwi0JHQsNGA0LDQvdC+0LLQsFwiLFxuICAgIFwi0JrRg9C70LjQutC+0LLQsFwiLFxuICAgIFwi0JDQu9C10LrRgdC10LXQstCwXCIsXG4gICAgXCLQodGC0LXQv9Cw0L3QvtCy0LBcIixcbiAgICBcItCv0LrQvtCy0LvQtdCy0LBcIixcbiAgICBcItCh0L7RgNC+0LrQuNC90LBcIixcbiAgICBcItCh0LXRgNCz0LXQtdCy0LBcIixcbiAgICBcItCg0L7QvNCw0L3QvtCy0LBcIixcbiAgICBcItCX0LDRhdCw0YDQvtCy0LBcIixcbiAgICBcItCR0L7RgNC40YHQvtCy0LBcIixcbiAgICBcItCa0L7RgNC+0LvQtdCy0LBcIixcbiAgICBcItCT0LXRgNCw0YHQuNC80L7QstCwXCIsXG4gICAgXCLQn9C+0L3QvtC80LDRgNC10LLQsFwiLFxuICAgIFwi0JPRgNC40LPQvtGA0YzQtdCy0LBcIixcbiAgICBcItCb0LDQt9Cw0YDQtdCy0LBcIixcbiAgICBcItCc0LXQtNCy0LXQtNC10LLQsFwiLFxuICAgIFwi0JXRgNGI0L7QstCwXCIsXG4gICAgXCLQndC40LrQuNGC0LjQvdCwXCIsXG4gICAgXCLQodC+0LHQvtC70LXQstCwXCIsXG4gICAgXCLQoNGP0LHQvtCy0LBcIixcbiAgICBcItCf0L7Qu9GP0LrQvtCy0LBcIixcbiAgICBcItCm0LLQtdGC0LrQvtCy0LBcIixcbiAgICBcItCU0LDQvdC40LvQvtCy0LBcIixcbiAgICBcItCW0YPQutC+0LLQsFwiLFxuICAgIFwi0KTRgNC+0LvQvtCy0LBcIixcbiAgICBcItCW0YPRgNCw0LLQu9C10LLQsFwiLFxuICAgIFwi0J3QuNC60L7Qu9Cw0LXQstCwXCIsXG4gICAgXCLQmtGA0YvQu9C+0LLQsFwiLFxuICAgIFwi0JzQsNC60YHQuNC80L7QstCwXCIsXG4gICAgXCLQodC40LTQvtGA0L7QstCwXCIsXG4gICAgXCLQntGB0LjQv9C+0LLQsFwiLFxuICAgIFwi0JHQtdC70L7Rg9GB0L7QstCwXCIsXG4gICAgXCLQpNC10LTQvtGC0L7QstCwXCIsXG4gICAgXCLQlNC+0YDQvtGE0LXQtdCy0LBcIixcbiAgICBcItCV0LPQvtGA0L7QstCwXCIsXG4gICAgXCLQnNCw0YLQstC10LXQstCwXCIsXG4gICAgXCLQkdC+0LHRgNC+0LLQsFwiLFxuICAgIFwi0JTQvNC40YLRgNC40LXQstCwXCIsXG4gICAgXCLQmtCw0LvQuNC90LjQvdCwXCIsXG4gICAgXCLQkNC90LjRgdC40LzQvtCy0LBcIixcbiAgICBcItCf0LXRgtGD0YXQvtCy0LBcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCy0LBcIixcbiAgICBcItCi0LjQvNC+0YTQtdC10LLQsFwiLFxuICAgIFwi0J3QuNC60LjRhNC+0YDQvtCy0LBcIixcbiAgICBcItCS0LXRgdC10LvQvtCy0LBcIixcbiAgICBcItCk0LjQu9C40L/Qv9C+0LLQsFwiLFxuICAgIFwi0JzQsNGA0LrQvtCy0LBcIixcbiAgICBcItCR0L7Qu9GM0YjQsNC60L7QstCwXCIsXG4gICAgXCLQodGD0YXQsNC90L7QstCwXCIsXG4gICAgXCLQnNC40YDQvtC90L7QstCwXCIsXG4gICAgXCLQqNC40YDRj9C10LLQsFwiLFxuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGA0L7QstCwXCIsXG4gICAgXCLQmtC+0L3QvtCy0LDQu9C+0LLQsFwiLFxuICAgIFwi0KjQtdGB0YLQsNC60L7QstCwXCIsXG4gICAgXCLQmtCw0LfQsNC60L7QstCwXCIsXG4gICAgXCLQldGE0LjQvNC+0LLQsFwiLFxuICAgIFwi0JTQtdC90LjRgdC+0LLQsFwiLFxuICAgIFwi0JPRgNC+0LzQvtCy0LBcIixcbiAgICBcItCk0L7QvNC40L3QsFwiLFxuICAgIFwi0JTQsNCy0YvQtNC+0LLQsFwiLFxuICAgIFwi0JzQtdC70YzQvdC40LrQvtCy0LBcIixcbiAgICBcItCp0LXRgNCx0LDQutC+0LLQsFwiLFxuICAgIFwi0JHQu9C40L3QvtCy0LBcIixcbiAgICBcItCa0L7Qu9C10YHQvdC40LrQvtCy0LBcIixcbiAgICBcItCa0LDRgNC/0L7QstCwXCIsXG4gICAgXCLQkNGE0LDQvdCw0YHRjNC10LLQsFwiLFxuICAgIFwi0JLQu9Cw0YHQvtCy0LBcIixcbiAgICBcItCc0LDRgdC70L7QstCwXCIsXG4gICAgXCLQmNGB0LDQutC+0LLQsFwiLFxuICAgIFwi0KLQuNGF0L7QvdC+0LLQsFwiLFxuICAgIFwi0JDQutGB0LXQvdC+0LLQsFwiLFxuICAgIFwi0JPQsNCy0YDQuNC70L7QstCwXCIsXG4gICAgXCLQoNC+0LTQuNC+0L3QvtCy0LBcIixcbiAgICBcItCa0L7RgtC+0LLQsFwiLFxuICAgIFwi0JPQvtGA0LHRg9C90L7QstCwXCIsXG4gICAgXCLQmtGD0LTRgNGP0YjQvtCy0LBcIixcbiAgICBcItCR0YvQutC+0LLQsFwiLFxuICAgIFwi0JfRg9C10LLQsFwiLFxuICAgIFwi0KLRgNC10YLRjNGP0LrQvtCy0LBcIixcbiAgICBcItCh0LDQstC10LvRjNC10LLQsFwiLFxuICAgIFwi0J/QsNC90L7QstCwXCIsXG4gICAgXCLQoNGL0LHQsNC60L7QstCwXCIsXG4gICAgXCLQodGD0LLQvtGA0L7QstCwXCIsXG4gICAgXCLQkNCx0YDQsNC80L7QstCwXCIsXG4gICAgXCLQktC+0YDQvtC90L7QstCwXCIsXG4gICAgXCLQnNGD0YXQuNC90LBcIixcbiAgICBcItCQ0YDRhdC40L/QvtCy0LBcIixcbiAgICBcItCi0YDQvtGE0LjQvNC+0LLQsFwiLFxuICAgIFwi0JzQsNGA0YLRi9C90L7QstCwXCIsXG4gICAgXCLQldC80LXQu9GM0Y/QvdC+0LLQsFwiLFxuICAgIFwi0JPQvtGA0YjQutC+0LLQsFwiLFxuICAgIFwi0KfQtdGA0L3QvtCy0LBcIixcbiAgICBcItCe0LLRh9C40L3QvdC40LrQvtCy0LBcIixcbiAgICBcItCh0LXQu9C10LfQvdC10LLQsFwiLFxuICAgIFwi0J/QsNC90YTQuNC70L7QstCwXCIsXG4gICAgXCLQmtC+0L/Ri9C70L7QstCwXCIsXG4gICAgXCLQnNC40YXQtdC10LLQsFwiLFxuICAgIFwi0JPQsNC70LrQuNC90LBcIixcbiAgICBcItCd0LDQt9Cw0YDQvtCy0LBcIixcbiAgICBcItCb0L7QsdCw0L3QvtCy0LBcIixcbiAgICBcItCb0YPQutC40L3QsFwiLFxuICAgIFwi0JHQtdC70Y/QutC+0LLQsFwiLFxuICAgIFwi0J/QvtGC0LDQv9C+0LLQsFwiLFxuICAgIFwi0J3QtdC60YDQsNGB0L7QstCwXCIsXG4gICAgXCLQpdC+0YXQu9C+0LLQsFwiLFxuICAgIFwi0JbQtNCw0L3QvtCy0LBcIixcbiAgICBcItCd0LDRg9C80L7QstCwXCIsXG4gICAgXCLQqNC40LvQvtCy0LBcIixcbiAgICBcItCS0L7RgNC+0L3RhtC+0LLQsFwiLFxuICAgIFwi0JXRgNC80LDQutC+0LLQsFwiLFxuICAgIFwi0JTRgNC+0LfQtNC+0LLQsFwiLFxuICAgIFwi0JjQs9C90LDRgtGM0LXQstCwXCIsXG4gICAgXCLQodCw0LLQuNC90LBcIixcbiAgICBcItCb0L7Qs9C40L3QvtCy0LBcIixcbiAgICBcItCh0LDRhNC+0L3QvtCy0LBcIixcbiAgICBcItCa0LDQv9GD0YHRgtC40L3QsFwiLFxuICAgIFwi0JrQuNGA0LjQu9C70L7QstCwXCIsXG4gICAgXCLQnNC+0LjRgdC10LXQstCwXCIsXG4gICAgXCLQldC70LjRgdC10LXQstCwXCIsXG4gICAgXCLQmtC+0YjQtdC70LXQstCwXCIsXG4gICAgXCLQmtC+0YHRgtC40L3QsFwiLFxuICAgIFwi0JPQvtGA0LHQsNGH0LXQstCwXCIsXG4gICAgXCLQntGA0LXRhdC+0LLQsFwiLFxuICAgIFwi0JXRhNGA0LXQvNC+0LLQsFwiLFxuICAgIFwi0JjRgdCw0LXQstCwXCIsXG4gICAgXCLQldCy0LTQvtC60LjQvNC+0LLQsFwiLFxuICAgIFwi0JrQsNC70LDRiNC90LjQutC+0LLQsFwiLFxuICAgIFwi0JrQsNCx0LDQvdC+0LLQsFwiLFxuICAgIFwi0J3QvtGB0LrQvtCy0LBcIixcbiAgICBcItCu0LTQuNC90LBcIixcbiAgICBcItCa0YPQu9Cw0LPQuNC90LBcIixcbiAgICBcItCb0LDQv9C40L3QsFwiLFxuICAgIFwi0J/RgNC+0YXQvtGA0L7QstCwXCIsXG4gICAgXCLQndC10YHRgtC10YDQvtCy0LBcIixcbiAgICBcItCl0LDRgNC40YLQvtC90L7QstCwXCIsXG4gICAgXCLQkNCz0LDRhNC+0L3QvtCy0LBcIixcbiAgICBcItCc0YPRgNCw0LLRjNC10LLQsFwiLFxuICAgIFwi0JvQsNGA0LjQvtC90L7QstCwXCIsXG4gICAgXCLQpNC10LTQvtGB0LXQtdCy0LBcIixcbiAgICBcItCX0LjQvNC40L3QsFwiLFxuICAgIFwi0J/QsNGF0L7QvNC+0LLQsFwiLFxuICAgIFwi0KjRg9Cx0LjQvdCwXCIsXG4gICAgXCLQmNCz0L3QsNGC0L7QstCwXCIsXG4gICAgXCLQpNC40LvQsNGC0L7QstCwXCIsXG4gICAgXCLQmtGA0Y7QutC+0LLQsFwiLFxuICAgIFwi0KDQvtCz0L7QstCwXCIsXG4gICAgXCLQmtGD0LvQsNC60L7QstCwXCIsXG4gICAgXCLQotC10YDQtdC90YLRjNC10LLQsFwiLFxuICAgIFwi0JzQvtC70YfQsNC90L7QstCwXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QstCwXCIsXG4gICAgXCLQkNGA0YLQtdC80YzQtdCy0LBcIixcbiAgICBcItCT0YPRgNGM0LXQstCwXCIsXG4gICAgXCLQl9C40L3QvtCy0YzQtdCy0LBcIixcbiAgICBcItCT0YDQuNGI0LjQvdCwXCIsXG4gICAgXCLQmtC+0L3QvtC90L7QstCwXCIsXG4gICAgXCLQlNC10LzQtdC90YLRjNC10LLQsFwiLFxuICAgIFwi0KHQuNGC0L3QuNC60L7QstCwXCIsXG4gICAgXCLQodC40LzQvtC90L7QstCwXCIsXG4gICAgXCLQnNC40YjQuNC90LBcIixcbiAgICBcItCk0LDQtNC10LXQstCwXCIsXG4gICAgXCLQmtC+0LzQuNGB0YHQsNGA0L7QstCwXCIsXG4gICAgXCLQnNCw0LzQvtC90YLQvtCy0LBcIixcbiAgICBcItCd0L7RgdC+0LLQsFwiLFxuICAgIFwi0JPRg9C70Y/QtdCy0LBcIixcbiAgICBcItCo0LDRgNC+0LLQsFwiLFxuICAgIFwi0KPRgdGC0LjQvdC+0LLQsFwiLFxuICAgIFwi0JLQuNGI0L3Rj9C60L7QstCwXCIsXG4gICAgXCLQldCy0YHQtdC10LLQsFwiLFxuICAgIFwi0JvQsNCy0YDQtdC90YLRjNC10LLQsFwiLFxuICAgIFwi0JHRgNCw0LPQuNC90LBcIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QstCwXCIsXG4gICAgXCLQmtC+0YDQvdC40LvQvtCy0LBcIixcbiAgICBcItCQ0LLQtNC10LXQstCwXCIsXG4gICAgXCLQl9GL0LrQvtCy0LBcIixcbiAgICBcItCR0LjRgNGO0LrQvtCy0LBcIixcbiAgICBcItCo0LDRgNCw0L/QvtCy0LBcIixcbiAgICBcItCd0LjQutC+0L3QvtCy0LBcIixcbiAgICBcItCp0YPQutC40L3QsFwiLFxuICAgIFwi0JTRjNGP0YfQutC+0LLQsFwiLFxuICAgIFwi0J7QtNC40L3RhtC+0LLQsFwiLFxuICAgIFwi0KHQsNC30L7QvdC+0LLQsFwiLFxuICAgIFwi0K/QutGD0YjQtdCy0LBcIixcbiAgICBcItCa0YDQsNGB0LjQu9GM0L3QuNC60L7QstCwXCIsXG4gICAgXCLQk9C+0YDQtNC10LXQstCwXCIsXG4gICAgXCLQodCw0LzQvtC50LvQvtCy0LBcIixcbiAgICBcItCa0L3Rj9C30LXQstCwXCIsXG4gICAgXCLQkdC10YHQv9Cw0LvQvtCy0LBcIixcbiAgICBcItCj0LLQsNGA0L7QstCwXCIsXG4gICAgXCLQqNCw0YjQutC+0LLQsFwiLFxuICAgIFwi0JHQvtCx0YvQu9C10LLQsFwiLFxuICAgIFwi0JTQvtGA0L7QvdC40L3QsFwiLFxuICAgIFwi0JHQtdC70L7Qt9C10YDQvtCy0LBcIixcbiAgICBcItCg0L7QttC60L7QstCwXCIsXG4gICAgXCLQodCw0LzRgdC+0L3QvtCy0LBcIixcbiAgICBcItCc0Y/RgdC90LjQutC+0LLQsFwiLFxuICAgIFwi0JvQuNGF0LDRh9C10LLQsFwiLFxuICAgIFwi0JHRg9GA0L7QstCwXCIsXG4gICAgXCLQodGL0YHQvtC10LLQsFwiLFxuICAgIFwi0KTQvtC80LjRh9C10LLQsFwiLFxuICAgIFwi0KDRg9GB0LDQutC+0LLQsFwiLFxuICAgIFwi0KHRgtGA0LXQu9C60L7QstCwXCIsXG4gICAgXCLQk9GD0YnQuNC90LBcIixcbiAgICBcItCi0LXRgtC10YDQuNC90LBcIixcbiAgICBcItCa0L7Qu9C+0LHQvtCy0LBcIixcbiAgICBcItCh0YPQsdCx0L7RgtC40L3QsFwiLFxuICAgIFwi0KTQvtC60LjQvdCwXCIsXG4gICAgXCLQkdC70L7RhdC40L3QsFwiLFxuICAgIFwi0KHQtdC70LjQstC10YDRgdGC0L7QstCwXCIsXG4gICAgXCLQn9C10YHRgtC+0LLQsFwiLFxuICAgIFwi0JrQvtC90LTRgNCw0YLRjNC10LLQsFwiLFxuICAgIFwi0KHQuNC70LjQvdCwXCIsXG4gICAgXCLQnNC10YDQutGD0YjQtdCy0LBcIixcbiAgICBcItCb0YvRgtC60LjQvdCwXCIsXG4gICAgXCLQotGD0YDQvtCy0LBcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3ttYWxlX2ZpcnN0X25hbWV9ICN7bWFsZV9sYXN0X25hbWV9XCIsXG4gICAgXCIje21hbGVfbGFzdF9uYW1lfSAje21hbGVfZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7bWFsZV9maXJzdF9uYW1lfSAje21hbGVfbWlkZGxlX25hbWV9ICN7bWFsZV9sYXN0X25hbWV9XCIsXG4gICAgXCIje21hbGVfbGFzdF9uYW1lfSAje21hbGVfZmlyc3RfbmFtZX0gI3ttYWxlX21pZGRsZV9uYW1lfVwiLFxuICAgIFwiI3tmZW1hbGVfZmlyc3RfbmFtZX0gI3tmZW1hbGVfbGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmZW1hbGVfbGFzdF9uYW1lfSAje2ZlbWFsZV9maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tmZW1hbGVfZmlyc3RfbmFtZX0gI3tmZW1hbGVfbWlkZGxlX25hbWV9ICN7ZmVtYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7ZmVtYWxlX2xhc3RfbmFtZX0gI3tmZW1hbGVfZmlyc3RfbmFtZX0gI3tmZW1hbGVfbWlkZGxlX25hbWV9XCJcbiAgXVxufTtcbnJ1LnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIig5IyMpIyMjLSMjLSMjXCJcbiAgXVxufTtcbnJ1LmNvbW1lcmNlID0ge1xuICBcImNvbG9yXCI6IFtcbiAgICBcItC60YDQsNGB0L3Ri9C5XCIsXG4gICAgXCLQt9C10LvQtdC90YvQuVwiLFxuICAgIFwi0YHQuNC90LjQuVwiLFxuICAgIFwi0LbQtdC70YLRi9C5XCIsXG4gICAgXCLQsdCw0LPRgNC+0LLRi9C5XCIsXG4gICAgXCLQvNGP0YLQvdGL0LlcIixcbiAgICBcItC30LXQu9C10L3QvtCy0LDRgtC+LdCz0L7Qu9GD0LHQvtC5XCIsXG4gICAgXCLQsdC10LvRi9C5XCIsXG4gICAgXCLRh9C10YDQvdGL0LlcIixcbiAgICBcItC+0YDQsNC90LbQtdCy0YvQuVwiLFxuICAgIFwi0YDQvtC30L7QstGL0LlcIixcbiAgICBcItGB0LXRgNGL0LlcIixcbiAgICBcItC60YDQsNGB0L3Qvi3QutC+0YDQuNGH0L3QtdCy0YvQuVwiLFxuICAgIFwi0YTQuNC+0LvQtdGC0L7QstGL0LlcIixcbiAgICBcItCx0LjRgNGO0LfQvtCy0YvQuVwiLFxuICAgIFwi0LbQtdC70YLQvi3QutC+0YDQuNGH0L3QtdCy0YvQuVwiLFxuICAgIFwi0L3QtdCx0LXRgdC90L4g0LPQvtC70YPQsdC+0LlcIixcbiAgICBcItC+0YDQsNC90LbQtdCy0L4t0YDQvtC30L7QstGL0LlcIixcbiAgICBcItGC0LXQvNC90L4t0YTQuNC+0LvQtdGC0L7QstGL0LlcIixcbiAgICBcItC+0YDRhdC40LTQvdGL0LlcIixcbiAgICBcItC+0LvQuNCy0LrQvtCy0YvQuVwiLFxuICAgIFwi0L/Rg9GA0L/Rg9GA0L3Ri9C5XCIsXG4gICAgXCLQu9C40LzQvtC90L3Ri9C5XCIsXG4gICAgXCLQutGA0LXQvNC+0LLRi9C5XCIsXG4gICAgXCLRgdC40L3QtS3RhNC40L7Qu9C10YLQvtCy0YvQuVwiLFxuICAgIFwi0LfQvtC70L7RgtC+0LlcIixcbiAgICBcItC60YDQsNGB0L3Qvi3Qv9GD0YDQv9GD0YDQvdGL0LlcIixcbiAgICBcItCz0L7Qu9GD0LHQvtC5XCIsXG4gICAgXCLQu9Cw0LfRg9GA0L3Ri9C5XCIsXG4gICAgXCLQu9C40LvQvtCy0YvQuVwiLFxuICAgIFwi0YHQtdGA0LXQsdGA0Y/QvdGL0LlcIlxuICBdLFxuICBcImRlcGFydG1lbnRcIjogW1xuICAgIFwi0JrQvdC40LPQuFwiLFxuICAgIFwi0KTQuNC70YzQvNGLXCIsXG4gICAgXCLQvNGD0LfRi9C60LBcIixcbiAgICBcItC40LPRgNGLXCIsXG4gICAgXCLQrdC70LXQutGC0YDQvtC90LjQutCwXCIsXG4gICAgXCLQutC+0LzQv9GM0Y7RgtC10YDRi1wiLFxuICAgIFwi0JTQvtC8XCIsXG4gICAgXCLRgdCw0LTQuNC90YHRgtGA0YPQvNC10L3RglwiLFxuICAgIFwi0JHQsNC60LDQu9C10Y9cIixcbiAgICBcItC30LTQvtGA0L7QstGM0LVcIixcbiAgICBcItC60YDQsNGB0L7RgtCwXCIsXG4gICAgXCLQmNCz0YDRg9GI0LrQuFwiLFxuICAgIFwi0LTQtdGC0YHQutC+0LVcIixcbiAgICBcItC00LvRjyDQvNCw0LvRi9GI0LXQuVwiLFxuICAgIFwi0J7QtNC10LbQtNCwXCIsXG4gICAgXCLQvtCx0YPQstGMXCIsXG4gICAgXCLRg9C60YDQsNGI0LXQvdC40Y9cIixcbiAgICBcItCh0L/QvtGA0YJcIixcbiAgICBcItGC0YPRgNC40LfQvFwiLFxuICAgIFwi0JDQstGC0L7QvNC+0LHQuNC70YzQvdC+0LVcIixcbiAgICBcItC/0YDQvtC80YvRiNC70LXQvdC90L7QtVwiXG4gIF0sXG4gIFwicHJvZHVjdF9uYW1lXCI6IHtcbiAgICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcItCc0LDQu9C10L3RjNC60LjQuVwiLFxuICAgICAgXCLQrdGA0LPQvtC90L7QvNC40YfQvdGL0LlcIixcbiAgICAgIFwi0JPRgNGD0LHRi9C5XCIsXG4gICAgICBcItCY0L3RgtC10LvQu9C10LrRgtGD0LDQu9GM0L3Ri9C5XCIsXG4gICAgICBcItCS0LXQu9C40LrQvtC70LXQv9C90YvQuVwiLFxuICAgICAgXCLQndC10LLQtdGA0L7Rj9GC0L3Ri9C5XCIsXG4gICAgICBcItCk0LDQvdGC0LDRgdGC0LjRh9C10YHQutC40LlcIixcbiAgICAgIFwi0J/RgNCw0LrRgtGH0LjQvdGL0LlcIixcbiAgICAgIFwi0JvQvtGB0L3Rj9GJ0LjQudGB0Y9cIixcbiAgICAgIFwi0J/QvtGC0YDRj9GB0LDRjtGJ0LjQuVwiXG4gICAgXSxcbiAgICBcIm1hdGVyaWFsXCI6IFtcbiAgICAgIFwi0KHRgtCw0LvRjNC90L7QuVwiLFxuICAgICAgXCLQlNC10YDQtdCy0Y/QvdC90YvQuVwiLFxuICAgICAgXCLQkdC10YLQvtC90L3Ri9C5XCIsXG4gICAgICBcItCf0LvQsNGB0YLQuNC60L7QstGL0LlcIixcbiAgICAgIFwi0KXQu9C+0L/QutC+0LLRi9C5XCIsXG4gICAgICBcItCT0YDQsNC90LjRgtC90YvQuVwiLFxuICAgICAgXCLQoNC10LfQuNC90L7QstGL0LlcIlxuICAgIF0sXG4gICAgXCJwcm9kdWN0XCI6IFtcbiAgICAgIFwi0KHRgtGD0LtcIixcbiAgICAgIFwi0JDQstGC0L7QvNC+0LHQuNC70YxcIixcbiAgICAgIFwi0JrQvtC80L/RjNGO0YLQtdGAXCIsXG4gICAgICBcItCR0LXRgNC10YJcIixcbiAgICAgIFwi0JrRg9C70L7QvVwiLFxuICAgICAgXCLQodGC0L7Qu1wiLFxuICAgICAgXCLQodCy0LjRgtC10YBcIixcbiAgICAgIFwi0KDQtdC80LXQvdGMXCIsXG4gICAgICBcItCR0L7RgtC40L3QvtC6XCJcbiAgICBdXG4gIH1cbn07XG5ydS5jb21wYW55ID0ge1xuICBcInByZWZpeFwiOiBbXG4gICAgXCLQmNCfXCIsXG4gICAgXCLQntCe0J5cIixcbiAgICBcItCX0JDQnlwiLFxuICAgIFwi0J7QkNCeXCIsXG4gICAgXCLQndCa0J5cIixcbiAgICBcItCi0KHQllwiLFxuICAgIFwi0J7Qn1wiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcItCh0L3QsNCxXCIsXG4gICAgXCLQotC+0YDQs1wiLFxuICAgIFwi0J/RgNC+0LxcIixcbiAgICBcItCi0YDQtdC50LRcIixcbiAgICBcItCh0LHRi9GCXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje05hbWUuZmVtYWxlX2ZpcnN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tOYW1lLm1hbGVfZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje05hbWUubWFsZV9sYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tzdWZmaXh9I3tzdWZmaXh9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tzdWZmaXh9I3tzdWZmaXh9I3tzdWZmaXh9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tBZGRyZXNzLmNpdHlfbmFtZX0je3N1ZmZpeH1cIixcbiAgICBcIiN7cHJlZml4fSAje0FkZHJlc3MuY2l0eV9uYW1lfSN7c3VmZml4fSN7c3VmZml4fVwiLFxuICAgIFwiI3twcmVmaXh9ICN7QWRkcmVzcy5jaXR5X25hbWV9I3tzdWZmaXh9I3tzdWZmaXh9I3tzdWZmaXh9XCJcbiAgXVxufTtcbiIsInZhciBzayA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHNrO1xuc2sudGl0bGUgPSBcIlNsb3Zha2lhblwiO1xuc2suYWRkcmVzcyA9IHtcbiAgXCJjaXR5X3ByZWZpeFwiOiBbXG4gICAgXCJOb3J0aFwiLFxuICAgIFwiRWFzdFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiU291dGhcIixcbiAgICBcIk5ld1wiLFxuICAgIFwiTGFrZVwiLFxuICAgIFwiUG9ydFwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwidG93blwiLFxuICAgIFwidG9uXCIsXG4gICAgXCJsYW5kXCIsXG4gICAgXCJ2aWxsZVwiLFxuICAgIFwiYmVyZ1wiLFxuICAgIFwiYnVyZ2hcIixcbiAgICBcImJvcm91Z2hcIixcbiAgICBcImJ1cnlcIixcbiAgICBcInZpZXdcIixcbiAgICBcInBvcnRcIixcbiAgICBcIm1vdXRoXCIsXG4gICAgXCJzdGFkXCIsXG4gICAgXCJmdXJ0XCIsXG4gICAgXCJjaGVzdGVyXCIsXG4gICAgXCJtb3V0aFwiLFxuICAgIFwiZm9ydFwiLFxuICAgIFwiaGF2ZW5cIixcbiAgICBcInNpZGVcIixcbiAgICBcInNoaXJlXCJcbiAgXSxcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIkFmZ2FuaXN0YW5cIixcbiAgICBcIkFmZ8OhbnNreSBpc2xhbXNrw70gxaF0w6F0XCIsXG4gICAgXCJBbGLDoW5za29cIixcbiAgICBcIkFsYsOhbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkFsxb7DrXJza29cIixcbiAgICBcIkFsxb7DrXJza2EgZGVtb2tyYXRpY2vDoSDEvnVkb3bDoSByZXB1Ymxpa2FcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZG9ycnNrw6kga25pZcW+YXRzdm9cIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5nb2xza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQW50aWd1YSBhIEJhcmJ1ZGFcIixcbiAgICBcIkFudGlndWEgYSBCYXJidWRhXCIsXG4gICAgXCJBcmdlbnTDrW5hXCIsXG4gICAgXCJBcmdlbnTDrW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJBcm3DqW5za29cIixcbiAgICBcIkFybcOpbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkF1c3Ryw6FsaWFcIixcbiAgICBcIkF1c3Ryw6Fsc2t5IHp2w6R6XCIsXG4gICAgXCJBemVyYmFqZMW+YW5cIixcbiAgICBcIkF6ZXJiYWpkxb5hbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCYWhhbXlcIixcbiAgICBcIkJhaGFtc2vDqSBzcG9sb8SNZW5zdHZvXCIsXG4gICAgXCJCYWhyYWpuXCIsXG4gICAgXCJCYWhyYWpuc2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkJhbmdsYWTDqcWhXCIsXG4gICAgXCJCYW5nbGFkw6nFoXNrYSDEvnVkb3bDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCYXJiYWRvc1wiLFxuICAgIFwiQmVsZ2lja29cIixcbiAgICBcIkJlbGdpY2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZW5pblwiLFxuICAgIFwiQmVuaW5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQmh1dMOhblwiLFxuICAgIFwiQmh1dMOhbnNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkJpZWxvcnVza29cIixcbiAgICBcIkJpZWxvcnVza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQm9sw612aWFcIixcbiAgICBcIkJvbMOtdmlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJvc25hIGEgSGVyY2Vnb3ZpbmFcIixcbiAgICBcIlJlcHVibGlrYSBCb3NueSBhIEhlcmNlZ292aW55XCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm90c3dhbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCcmF6w61saWFcIixcbiAgICBcIkJyYXrDrWxza2EgZmVkZXJhdMOtdm5hIHJlcHVibGlrYVwiLFxuICAgIFwiQnJ1bmVqXCIsXG4gICAgXCJCcnVuZWpza8O9IHN1bHRhbsOhdFwiLFxuICAgIFwiQnVsaGFyc2tvXCIsXG4gICAgXCJCdWxoYXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkJ1cnVuZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJDeXBydXNcIixcbiAgICBcIkN5cGVyc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIsSMYWRcIixcbiAgICBcIlJlcHVibGlrYSDEjGFkXCIsXG4gICAgXCLEjGVza29cIixcbiAgICBcIsSMZXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCLEjMOtbmFcIixcbiAgICBcIsSMw61uc2thIMS+dWRvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiRMOhbnNrb1wiLFxuICAgIFwiRMOhbnNrbyBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkRvbWluaWthXCIsXG4gICAgXCJTcG9sb8SNZW5zdHZvIERvbWluaWthXCIsXG4gICAgXCJEb21pbmlrw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRG9taW5pa8OhbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkTFvmlidXRza29cIixcbiAgICBcIkTFvmlidXRza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiRWd5cHRcIixcbiAgICBcIkVneXB0c2vDoSBhcmFic2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkVrdsOhZG9yXCIsXG4gICAgXCJFa3bDoWRvcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJFcml0cmVqc2vDvSDFoXTDoXRcIixcbiAgICBcIkVzdMOzbnNrb1wiLFxuICAgIFwiRXN0w7Nuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRXRpw7NwaWFcIixcbiAgICBcIkV0acOzcHNrYSBmZWRlcmF0w612bmEgZGVtb2tyYXRpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkZpZMW+aVwiLFxuICAgIFwiUmVwdWJsaWthIG9zdHJvdnkgRmlkxb5pXCIsXG4gICAgXCJGaWxpcMOtbnlcIixcbiAgICBcIkZpbGlww61uc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRsOtbnNrb1wiLFxuICAgIFwiRsOtbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkZyYW5jw7p6c2tvXCIsXG4gICAgXCJGcmFuY8O6enNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYWJvbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdhbWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR2hhbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJHcsOpY2tvXCIsXG4gICAgXCJIZWzDqW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcnV6w61uc2tvXCIsXG4gICAgXCJHcnV6w61uc2tvXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1YXRlbWFsc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIlJlcHVibGlrYSBHdWluZWEtQmlzc2F1XCIsXG4gICAgXCJHdWF5YW5hXCIsXG4gICAgXCJHdWF5YW5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIlJlcHVibGlrYSBIYWl0aVwiLFxuICAgIFwiSG9sYW5kc2tvXCIsXG4gICAgXCJIb2xhbmRza8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmR1cmFza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIsSMw61sc2thIHJlcHVibGlrYVwiLFxuICAgIFwiQ2hvcnbDoXRza29cIixcbiAgICBcIkNob3J2w6F0c2thIHJlcHVibGlrYVwiLFxuICAgIFwiSW5kaWFcIixcbiAgICBcIkluZGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSW5kb27DqXppYVwiLFxuICAgIFwiSW5kb27DqXpza2EgcmVwdWJsaWthXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSXLDoW5cIixcbiAgICBcIklyw6Fuc2thIGlzbGFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNsYW5kc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkl6cmFlbFwiLFxuICAgIFwixaB0w6F0IEl6cmFlbFwiLFxuICAgIFwiw41yc2tvXCIsXG4gICAgXCLDjXJza2EgcmVwdWJsaWthXCIsXG4gICAgXCJKYW1hamthXCIsXG4gICAgXCJKYW1hamthXCIsXG4gICAgXCJKYXBvbnNrb1wiLFxuICAgIFwiSmFwb25za29cIixcbiAgICBcIkplbWVuXCIsXG4gICAgXCJKZW1lbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJKb3Jkw6Fuc2tvXCIsXG4gICAgXCJKb3Jkw6Fuc2tlIGjDocWhaW1vdnNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJKdcW+bsOhIEFmcmlrYVwiLFxuICAgIFwiSnVob2Fmcmlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS2FtYm9kxb5hXCIsXG4gICAgXCJLYW1ib2TFvnNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJLYW1lcnVuXCIsXG4gICAgXCJLYW1lcnVuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkthbmFkYVwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYXB2ZXJkeVwiLFxuICAgIFwiS2FwdmVyZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwixaB0w6F0IEthdGFyXCIsXG4gICAgXCJLYXphY2hzdGFuXCIsXG4gICAgXCJLYXphxaFza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS2XFiGFcIixcbiAgICBcIktlbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLaXJnaXpza29cIixcbiAgICBcIktpcmdpenNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS2lyaWJhdHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLb2x1bWJpYVwiLFxuICAgIFwiS29sdW1iaWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS29tb3J5XCIsXG4gICAgXCJLb21vcnNrw6Egw7puaWFcIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJLb27FvnNrw6EgZGVtb2tyYXRpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktvbmdvIChcXFwiQnJhenphdmlsbGVcXFwiKVwiLFxuICAgIFwiS29uxb5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS8OzcmVhIChcXFwiSnXFvm7DoVxcXCIpXCIsXG4gICAgXCJLw7NyZWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS8OzcmVhIChcXFwiU2V2ZXJuw6FcXFwiKVwiLFxuICAgIFwiS8OzcmVqc2vDoSDEvnVkb3ZvZGVtb2tyYXRpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktvc3RhcmlrYVwiLFxuICAgIFwiS29zdGFyaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdWLDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJLdXZhanRcIixcbiAgICBcIkt1dmFqdHNrw70gxaF0w6F0XCIsXG4gICAgXCJMYW9zXCIsXG4gICAgXCJMYW9za8OhIMS+dWRvdm9kZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGVzb3Roc2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkxpYmFub25za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTGliw6lyaWFcIixcbiAgICBcIkxpYsOpcmlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkzDrWJ5YVwiLFxuICAgIFwiTMOtYnlqc2vDoSBhcmFic2vDoSDEvnVkb3bDoSBzb2NpYWxpc3RpY2vDoSBkxb5hbcOhaMOtcmlqYVwiLFxuICAgIFwiTGljaHRlbsWhdGFqbnNrb1wiLFxuICAgIFwiTGljaHRlbsWhdGFqbnNrw6kga25pZcW+YXRzdHZvXCIsXG4gICAgXCJMaXR2YVwiLFxuICAgIFwiTGl0b3Zza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTG90ecWhc2tvXCIsXG4gICAgXCJMb3R5xaFza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTHV4ZW1idXJza29cIixcbiAgICBcIkx1eGVtYnVyc2vDqSB2ZcS+a292b2p2b2RzdHZvXCIsXG4gICAgXCJNYWNlZMOzbnNrb1wiLFxuICAgIFwiTWFjZWTDs25za2EgcmVwdWJsaWthXCIsXG4gICAgXCJNYWRhZ2Fza2FyXCIsXG4gICAgXCJNYWRhZ2Fza2Fyc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hxI9hcnNrb1wiLFxuICAgIFwiTWHEj2Fyc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbGFqemlhXCIsXG4gICAgXCJNYWxhanppYVwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxhd2lqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbGRpdnlcIixcbiAgICBcIk1hbGRpdnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWxpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hcm9rb1wiLFxuICAgIFwiTWFyb2Nrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJNYXJzaGFsbG92ZSBvc3Ryb3Z5XCIsXG4gICAgXCJSZXB1Ymxpa2EgTWFyc2hhbGxvdsO9Y2ggb3N0cm92eVwiLFxuICAgIFwiTWF1cml0w6FuaWFcIixcbiAgICBcIk1hdXJpdMOhbnNrYSBpc2xhbXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNYXVyw61jaXVzXCIsXG4gICAgXCJNYXVyw61jaWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWV4aWtvXCIsXG4gICAgXCJTcG9qZW7DqSDFoXTDoXR5IG1leGlja8OpXCIsXG4gICAgXCJNaWtyb27DqXppYVwiLFxuICAgIFwiTWlrcm9uw6l6c2tlIGZlZGVyYXTDrXZuZSDFoXTDoXR5XCIsXG4gICAgXCJNamFubWFyc2tvXCIsXG4gICAgXCJNamFubWFyc2vDvSB6dsOkelwiLFxuICAgIFwiTW9sZGF2c2tvXCIsXG4gICAgXCJNb2xkYXZza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTW9uYWtvXCIsXG4gICAgXCJNb25hY2vDqSBrbmllxb5hdHN0dm9cIixcbiAgICBcIk1vbmdvbHNrb1wiLFxuICAgIFwiTW9uZ29sc2tvXCIsXG4gICAgXCJNb3phbWJpa1wiLFxuICAgIFwiTW96YW1iaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOYW3DrWJpYVwiLFxuICAgIFwiTmFtw61iaWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5hdXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTmVtZWNrb1wiLFxuICAgIFwiTmVtZWNrw6Egc3BvbGtvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiTmVww6FsXCIsXG4gICAgXCJOZXDDoWxza2Uga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTmlnw6lyaWFcIixcbiAgICBcIk5pZ8Opcmlqc2vDoSBmZWRlcmF0w612bmEgcmVwdWJsaWthXCIsXG4gICAgXCJOaWthcmFndWFcIixcbiAgICBcIk5pa2FyYWd1anNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOb3bDvSBaw6lsYW5kXCIsXG4gICAgXCJOb3bDvSBaw6lsYW5kXCIsXG4gICAgXCJOw7Nyc2tvXCIsXG4gICAgXCJOw7Nyc2tlIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiT23DoW5cIixcbiAgICBcIk9tw6Fuc2t5IHN1bHRhbsOhdFwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIlBha2lzdGFuc2vDoSBpc2xhbXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFsYXVza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYW5hbXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQYXB1YS1Ob3bDoSBHdWluZWFcIixcbiAgICBcIk5lesOhdmlzbMO9IMWhdMOhdCBQYXB1YS1Ob3bDoSBHdWluZWFcIixcbiAgICBcIlBhcmFndWFqXCIsXG4gICAgXCJQYXJhZ3VhanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQZXJ1w6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiUG9icmXFvmllIFNsb25vdmlueVwiLFxuICAgIFwiUmVwdWJsaWthIFBvYnJlxb5pZSBTbG9ub3ZpbnlcIixcbiAgICBcIlBvxL5za29cIixcbiAgICBcIlBvxL5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiUG9ydHVnYWxza29cIixcbiAgICBcIlBvcnR1Z2Fsc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlJha8O6c2tvXCIsXG4gICAgXCJSYWvDunNrYSByZXB1Ymxpa2FcIixcbiAgICBcIlJvdm7DrWtvdsOhIEd1aW5lYVwiLFxuICAgIFwiUmVwdWJsaWthIFJvdm7DrWtvdsOhIEd1aW5lYVwiLFxuICAgIFwiUnVtdW5za29cIixcbiAgICBcIlJ1bXVuc2tvXCIsXG4gICAgXCJSdXNrb1wiLFxuICAgIFwiUnVza8OhIGZlZGVyw6FjaWFcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiUndhbmRza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2FsdsOhZG9yXCIsXG4gICAgXCJTYWx2w6Fkb3Jza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIk5lesOhdmlzbMO9IMWhdMOhdCBTYW1vYVwiLFxuICAgIFwiU2FuIE1hcsOtbm9cIixcbiAgICBcIlNhbm1hcsOtbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIlNhdWRza8OhIEFyw6FiaWFcIixcbiAgICBcIktyw6HEvm92c3R2byBTYXVkc2tlaiBBcsOhYmllXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZW5lZ2Fsc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlNleWNoZWx5XCIsXG4gICAgXCJTZXljaGVsc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiUmVwdWJsaWthIFNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2FwdXJcIixcbiAgICBcIlNpbmdhcHVyc2thIHJlcHVibGlrYVwiLFxuICAgIFwiU2xvdmVuc2tvXCIsXG4gICAgXCJTbG92ZW5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2xvdmluc2tvXCIsXG4gICAgXCJTbG92aW5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU29tw6Fsc2tvXCIsXG4gICAgXCJTb23DoWxza2EgZGVtb2tyYXRpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlNwb2plbsOpIGFyYWJza8OpIGVtaXLDoXR5XCIsXG4gICAgXCJTcG9qZW7DqSBhcmFic2vDqSBlbWlyw6F0eVwiLFxuICAgIFwiU3BvamVuw6kgxaF0w6F0eSBhbWVyaWNrw6lcIixcbiAgICBcIlNwb2plbsOpIMWhdMOhdHkgYW1lcmlja8OpXCIsXG4gICAgXCJTcmJza28gYSDEjGllcm5hIEhvcmFcIixcbiAgICBcIlNyYnNrbyBhIMSMaWVybmEgSG9yYVwiLFxuICAgIFwiU3LDrSBMYW5rYVwiLFxuICAgIFwiRGVtb2tyYXRpY2vDoSBzb2NpYWxpc3RpY2vDoSByZXB1Ymxpa2EgU3LDrSBMYW5rYVwiLFxuICAgIFwiU3RyZWRvYWZyaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTdHJlZG9hZnJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlN1ZMOhblwiLFxuICAgIFwiU3Vkw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3VyaW5hbXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTdmF6aWpza29cIixcbiAgICBcIlN2YXppanNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJTdsOkdMOhIEx1Y2lhXCIsXG4gICAgXCJTdsOkdMOhIEx1Y2lhXCIsXG4gICAgXCJTdsOkdMO9IEtyacWhdG9mIGEgTmV2aXNcIixcbiAgICBcIkZlZGVyw6FjaWEgU3bDpHTDvSBLcmnFoXRvZiBhIE5ldmlzXCIsXG4gICAgXCJTdi4gVG9tw6HFoSBhIFByaW5jb3YgT3N0cm92XCIsXG4gICAgXCJEZW1va3JhdGlja8OhIHJlcHVibGlrYSBTdsOkdMO9IFRvbcOhxaEgYSBQcmluY292IE9zdHJvdlwiLFxuICAgIFwiU3YuIFZpbmNlbnQgYSBHcmVuYWTDrW55XCIsXG4gICAgXCJTdsOkdMO9IFZpbmNlbnQgYSBHcmVuYWTDrW55XCIsXG4gICAgXCJTw71yaWFcIixcbiAgICBcIlPDvXJza2EgYXJhYnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCLFoGFsYW3Dum5vdmUgb3N0cm92eVwiLFxuICAgIFwixaBhbGFtw7pub3ZlIG9zdHJvdnlcIixcbiAgICBcIsWgcGFuaWVsc2tvXCIsXG4gICAgXCLFoHBhbmllbHNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIsWgdmFqxI1pYXJza29cIixcbiAgICBcIsWgdmFqxI1pYXJza2Ega29uZmVkZXLDoWNpYVwiLFxuICAgIFwixaB2w6lkc2tvXCIsXG4gICAgXCLFoHbDqWRza2Uga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJUYWTFvmlraXN0YW5cIixcbiAgICBcIlRhZMW+aWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJUYWxpYW5za29cIixcbiAgICBcIlRhbGlhbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIlRhbnrDoW5pYVwiLFxuICAgIFwiVGFuesOhbmlqc2vDoSB6amVkbm90ZW7DoSByZXB1Ymxpa2FcIixcbiAgICBcIlRoYWpza29cIixcbiAgICBcIlRoYWpza8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG/FvnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVG9uxb5za8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiVHJpbmlkYWQgYSBUb2JhZ29cIixcbiAgICBcIlJlcHVibGlrYSBUcmluaWRhZCBhIFRvYmFnb1wiLFxuICAgIFwiVHVuaXNrb1wiLFxuICAgIFwiVHVuaXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJUdXJlY2tvXCIsXG4gICAgXCJUdXJlY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlR1cmttw6luc2tvXCIsXG4gICAgXCJUdXJrbcOpbnNrb1wiLFxuICAgIFwiVHV2YWx1XCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWdhbmRza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVWtyYWppbmFcIixcbiAgICBcIlVydWd1YWpcIixcbiAgICBcIlVydWd1YWpza8OhIHbDvWNob2Ruw6EgcmVwdWJsaWthXCIsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWYW51YXRza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVmF0aWvDoW5cIixcbiAgICBcIlN2w6R0w6EgU3RvbGljYVwiLFxuICAgIFwiVmXEvmvDoSBCcml0w6FuaWFcIixcbiAgICBcIlNwb2plbsOpIGtyw6HEvm92c3R2byBWZcS+a2VqIEJyaXTDoW5pZSBhIFNldmVybsOpaG8gw41yc2thXCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZlbmV6dWVsc2vDoSBib2zDrXZhcm92c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIlZpZXRuYW1za8OhIHNvY2lhbGlzdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVsO9Y2hvZG7DvSBUaW1vclwiLFxuICAgIFwiRGVtb2tyYXRpY2vDoSByZXB1Ymxpa2EgVsO9Y2hvZG7DvSBUaW1vclwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJaYW1iaWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiWmltYmFid2VcIixcbiAgICBcIlppbWJhYndpYW5za2EgcmVwdWJsaWthXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0LiAjIyNcIixcbiAgICBcIlN1aXRlICMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyAjI1wiLFxuICAgIFwiIyMgIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtdLFxuICBcInRpbWVfem9uZVwiOiBbXG4gICAgXCJQYWNpZmljL01pZHdheVwiLFxuICAgIFwiUGFjaWZpYy9QYWdvX1BhZ29cIixcbiAgICBcIlBhY2lmaWMvSG9ub2x1bHVcIixcbiAgICBcIkFtZXJpY2EvSnVuZWF1XCIsXG4gICAgXCJBbWVyaWNhL0xvc19BbmdlbGVzXCIsXG4gICAgXCJBbWVyaWNhL1RpanVhbmFcIixcbiAgICBcIkFtZXJpY2EvRGVudmVyXCIsXG4gICAgXCJBbWVyaWNhL1Bob2VuaXhcIixcbiAgICBcIkFtZXJpY2EvQ2hpaHVhaHVhXCIsXG4gICAgXCJBbWVyaWNhL01hemF0bGFuXCIsXG4gICAgXCJBbWVyaWNhL0NoaWNhZ29cIixcbiAgICBcIkFtZXJpY2EvUmVnaW5hXCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01vbnRlcnJleVwiLFxuICAgIFwiQW1lcmljYS9HdWF0ZW1hbGFcIixcbiAgICBcIkFtZXJpY2EvTmV3X1lvcmtcIixcbiAgICBcIkFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXNcIixcbiAgICBcIkFtZXJpY2EvQm9nb3RhXCIsXG4gICAgXCJBbWVyaWNhL0xpbWFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9IYWxpZmF4XCIsXG4gICAgXCJBbWVyaWNhL0NhcmFjYXNcIixcbiAgICBcIkFtZXJpY2EvTGFfUGF6XCIsXG4gICAgXCJBbWVyaWNhL1NhbnRpYWdvXCIsXG4gICAgXCJBbWVyaWNhL1N0X0pvaG5zXCIsXG4gICAgXCJBbWVyaWNhL1Nhb19QYXVsb1wiLFxuICAgIFwiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzXCIsXG4gICAgXCJBbWVyaWNhL0d1eWFuYVwiLFxuICAgIFwiQW1lcmljYS9Hb2R0aGFiXCIsXG4gICAgXCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhXCIsXG4gICAgXCJBdGxhbnRpYy9Bem9yZXNcIixcbiAgICBcIkF0bGFudGljL0NhcGVfVmVyZGVcIixcbiAgICBcIkV1cm9wZS9EdWJsaW5cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkV1cm9wZS9MaXNib25cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkFmcmljYS9DYXNhYmxhbmNhXCIsXG4gICAgXCJBZnJpY2EvTW9ucm92aWFcIixcbiAgICBcIkV0Yy9VVENcIixcbiAgICBcIkV1cm9wZS9CZWxncmFkZVwiLFxuICAgIFwiRXVyb3BlL0JyYXRpc2xhdmFcIixcbiAgICBcIkV1cm9wZS9CdWRhcGVzdFwiLFxuICAgIFwiRXVyb3BlL0xqdWJsamFuYVwiLFxuICAgIFwiRXVyb3BlL1ByYWd1ZVwiLFxuICAgIFwiRXVyb3BlL1NhcmFqZXZvXCIsXG4gICAgXCJFdXJvcGUvU2tvcGplXCIsXG4gICAgXCJFdXJvcGUvV2Fyc2F3XCIsXG4gICAgXCJFdXJvcGUvWmFncmViXCIsXG4gICAgXCJFdXJvcGUvQnJ1c3NlbHNcIixcbiAgICBcIkV1cm9wZS9Db3BlbmhhZ2VuXCIsXG4gICAgXCJFdXJvcGUvTWFkcmlkXCIsXG4gICAgXCJFdXJvcGUvUGFyaXNcIixcbiAgICBcIkV1cm9wZS9BbXN0ZXJkYW1cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9Sb21lXCIsXG4gICAgXCJFdXJvcGUvU3RvY2tob2xtXCIsXG4gICAgXCJFdXJvcGUvVmllbm5hXCIsXG4gICAgXCJBZnJpY2EvQWxnaWVyc1wiLFxuICAgIFwiRXVyb3BlL0J1Y2hhcmVzdFwiLFxuICAgIFwiQWZyaWNhL0NhaXJvXCIsXG4gICAgXCJFdXJvcGUvSGVsc2lua2lcIixcbiAgICBcIkV1cm9wZS9LaWV2XCIsXG4gICAgXCJFdXJvcGUvUmlnYVwiLFxuICAgIFwiRXVyb3BlL1NvZmlhXCIsXG4gICAgXCJFdXJvcGUvVGFsbGlublwiLFxuICAgIFwiRXVyb3BlL1ZpbG5pdXNcIixcbiAgICBcIkV1cm9wZS9BdGhlbnNcIixcbiAgICBcIkV1cm9wZS9Jc3RhbmJ1bFwiLFxuICAgIFwiRXVyb3BlL01pbnNrXCIsXG4gICAgXCJBc2lhL0plcnVzYWxlbVwiLFxuICAgIFwiQWZyaWNhL0hhcmFyZVwiLFxuICAgIFwiQWZyaWNhL0pvaGFubmVzYnVyZ1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiQXNpYS9LdXdhaXRcIixcbiAgICBcIkFzaWEvUml5YWRoXCIsXG4gICAgXCJBZnJpY2EvTmFpcm9iaVwiLFxuICAgIFwiQXNpYS9CYWdoZGFkXCIsXG4gICAgXCJBc2lhL1RlaHJhblwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvTXVzY2F0XCIsXG4gICAgXCJBc2lhL0Jha3VcIixcbiAgICBcIkFzaWEvVGJpbGlzaVwiLFxuICAgIFwiQXNpYS9ZZXJldmFuXCIsXG4gICAgXCJBc2lhL0thYnVsXCIsXG4gICAgXCJBc2lhL1lla2F0ZXJpbmJ1cmdcIixcbiAgICBcIkFzaWEvS2FyYWNoaVwiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL1Rhc2hrZW50XCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS2F0aG1hbmR1XCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0NvbG9tYm9cIixcbiAgICBcIkFzaWEvQWxtYXR5XCIsXG4gICAgXCJBc2lhL05vdm9zaWJpcnNrXCIsXG4gICAgXCJBc2lhL1Jhbmdvb25cIixcbiAgICBcIkFzaWEvQmFuZ2tva1wiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0pha2FydGFcIixcbiAgICBcIkFzaWEvS3Jhc25veWFyc2tcIixcbiAgICBcIkFzaWEvU2hhbmdoYWlcIixcbiAgICBcIkFzaWEvQ2hvbmdxaW5nXCIsXG4gICAgXCJBc2lhL0hvbmdfS29uZ1wiLFxuICAgIFwiQXNpYS9VcnVtcWlcIixcbiAgICBcIkFzaWEvS3VhbGFfTHVtcHVyXCIsXG4gICAgXCJBc2lhL1NpbmdhcG9yZVwiLFxuICAgIFwiQXNpYS9UYWlwZWlcIixcbiAgICBcIkF1c3RyYWxpYS9QZXJ0aFwiLFxuICAgIFwiQXNpYS9Jcmt1dHNrXCIsXG4gICAgXCJBc2lhL1VsYWFuYmFhdGFyXCIsXG4gICAgXCJBc2lhL1Nlb3VsXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1lha3V0c2tcIixcbiAgICBcIkF1c3RyYWxpYS9EYXJ3aW5cIixcbiAgICBcIkF1c3RyYWxpYS9BZGVsYWlkZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL1N5ZG5leVwiLFxuICAgIFwiQXVzdHJhbGlhL0JyaXNiYW5lXCIsXG4gICAgXCJBdXN0cmFsaWEvSG9iYXJ0XCIsXG4gICAgXCJBc2lhL1ZsYWRpdm9zdG9rXCIsXG4gICAgXCJQYWNpZmljL0d1YW1cIixcbiAgICBcIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5XCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiUGFjaWZpYy9Ob3VtZWFcIixcbiAgICBcIlBhY2lmaWMvRmlqaVwiLFxuICAgIFwiQXNpYS9LYW1jaGF0a2FcIixcbiAgICBcIlBhY2lmaWMvTWFqdXJvXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL1RvbmdhdGFwdVwiLFxuICAgIFwiUGFjaWZpYy9GYWthb2ZvXCIsXG4gICAgXCJQYWNpZmljL0FwaWFcIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCJCw6Fub3ZjZSBuYWQgQmVicmF2b3VcIixcbiAgICBcIkJhbnNrw6EgQnlzdHJpY2FcIixcbiAgICBcIkJhbnNrw6EgxaB0aWF2bmljYVwiLFxuICAgIFwiQmFyZGVqb3ZcIixcbiAgICBcIkJyYXRpc2xhdmEgSVwiLFxuICAgIFwiQnJhdGlzbGF2YSBJSVwiLFxuICAgIFwiQnJhdGlzbGF2YSBJSUlcIixcbiAgICBcIkJyYXRpc2xhdmEgSVZcIixcbiAgICBcIkJyYXRpc2xhdmEgVlwiLFxuICAgIFwiQnJlem5vXCIsXG4gICAgXCJCeXTEjWFcIixcbiAgICBcIsSMYWRjYVwiLFxuICAgIFwiRGV0dmFcIixcbiAgICBcIkRvbG7DvSBLdWLDrW5cIixcbiAgICBcIkR1bmFqc2vDoSBTdHJlZGFcIixcbiAgICBcIkdhbGFudGFcIixcbiAgICBcIkdlbG5pY2FcIixcbiAgICBcIkhsb2hvdmVjXCIsXG4gICAgXCJIdW1lbm7DqVwiLFxuICAgIFwiSWxhdmFcIixcbiAgICBcIktlxb5tYXJva1wiLFxuICAgIFwiS29tw6Fybm9cIixcbiAgICBcIktvxaFpY2UgSVwiLFxuICAgIFwiS2/FoWljZSBJSVwiLFxuICAgIFwiS2/FoWljZSBJSUlcIixcbiAgICBcIktvxaFpY2UgSVZcIixcbiAgICBcIktvxaFpY2Utb2tvbGllXCIsXG4gICAgXCJLcnVwaW5hXCIsXG4gICAgXCJLeXN1Y2vDqSBOb3bDqSBNZXN0b1wiLFxuICAgIFwiTGV2aWNlXCIsXG4gICAgXCJMZXZvxI1hXCIsXG4gICAgXCJMaXB0b3Zza8O9IE1pa3Vsw6HFoVwiLFxuICAgIFwiTHXEjWVuZWNcIixcbiAgICBcIk1hbGFja3lcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiTWVkemlsYWJvcmNlXCIsXG4gICAgXCJNaWNoYWxvdmNlXCIsXG4gICAgXCJNeWphdmFcIixcbiAgICBcIk7DoW1lc3Rvdm9cIixcbiAgICBcIk5pdHJhXCIsXG4gICAgXCJOb3bDqSBNZXN0byBuLlbDoWhvbVwiLFxuICAgIFwiTm92w6kgWsOhbWt5XCIsXG4gICAgXCJQYXJ0aXrDoW5za2VcIixcbiAgICBcIlBlemlub2tcIixcbiAgICBcIlBpZcWhxaVhbnlcIixcbiAgICBcIlBvbHTDoXJcIixcbiAgICBcIlBvcHJhZFwiLFxuICAgIFwiUG92YcW+c2vDoSBCeXN0cmljYVwiLFxuICAgIFwiUHJlxaFvdlwiLFxuICAgIFwiUHJpZXZpZHphXCIsXG4gICAgXCJQw7pjaG92XCIsXG4gICAgXCJSZXbDumNhXCIsXG4gICAgXCJSaW1hdnNrw6EgU29ib3RhXCIsXG4gICAgXCJSb8W+xYhhdmFcIixcbiAgICBcIlJ1xb5vbWJlcm9rXCIsXG4gICAgXCJTYWJpbm92XCIsXG4gICAgXCLFoGHEvmFcIixcbiAgICBcIlNlbmVjXCIsXG4gICAgXCJTZW5pY2FcIixcbiAgICBcIlNrYWxpY2FcIixcbiAgICBcIlNuaW5hXCIsXG4gICAgXCJTb2JyYW5jZVwiLFxuICAgIFwiU3BpxaFza8OhIE5vdsOhIFZlc1wiLFxuICAgIFwiU3RhcsOhIMS9dWJvdsWIYVwiLFxuICAgIFwiU3Ryb3Brb3ZcIixcbiAgICBcIlN2aWRuw61rXCIsXG4gICAgXCJUb3BvxL7EjWFueVwiLFxuICAgIFwiVHJlYmnFoW92XCIsXG4gICAgXCJUcmVuxI3DrW5cIixcbiAgICBcIlRybmF2YVwiLFxuICAgIFwiVHVyxI1pYW5za2UgVGVwbGljZVwiLFxuICAgIFwiVHZyZG/FocOtblwiLFxuICAgIFwiVmXEvmvDvSBLcnTDrcWhXCIsXG4gICAgXCJWcmFub3YgbmFkIFRvcMS+b3VcIixcbiAgICBcIsW9YXJub3ZpY2FcIixcbiAgICBcIsW9aWFyIG5hZCBIcm9ub21cIixcbiAgICBcIsW9aWxpbmFcIixcbiAgICBcIlpsYXTDqSBNb3JhdmNlXCIsXG4gICAgXCJadm9sZW5cIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X25hbWV9XCJcbiAgXSxcbiAgXCJzdHJlZXRcIjogW1xuICAgIFwiQWTDoW1paG9cIixcbiAgICBcIkFob2pcIixcbiAgICBcIkFsYsOtbmEgQnJ1bm92c2vDqWhvXCIsXG4gICAgXCJBbGJyZWNodG92YVwiLFxuICAgIFwiQWxlam92w6FcIixcbiAgICBcIkFsZcWhb3ZhXCIsXG4gICAgXCJBbGliZXJuZXRvdsOhXCIsXG4gICAgXCJBbMW+YmV0w61uc2thXCIsXG4gICAgXCJBbMW+YmV0eSBHd2Vya292ZWpcIixcbiAgICBcIkFtYnJvc2Vob1wiLFxuICAgIFwiQW1icnXFoW92YVwiLFxuICAgIFwiQW1lcmlja8OhXCIsXG4gICAgXCJBbWVyaWNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJBbWVyaWNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJBbmRyZWphIE1yw6F6YVwiLFxuICAgIFwiQW5kcmVqYSBQbMOhdmt1XCIsXG4gICAgXCJBbmRydXNvdm92YVwiLFxuICAgIFwiQW5lbnNrw6FcIixcbiAgICBcIkFuZW5za8OhXCIsXG4gICAgXCJBbnRvbHNrw6FcIixcbiAgICBcIkFzdHJvbm9taWNrw6FcIixcbiAgICBcIkFzdHJvdsOhXCIsXG4gICAgXCJBemFsa292w6FcIixcbiAgICBcIkF6b3Zza8OhXCIsXG4gICAgXCJCYWJ1xaFrb3ZhXCIsXG4gICAgXCJCYWNob3ZhXCIsXG4gICAgXCJCYWprYWxza8OhXCIsXG4gICAgXCJCYWprYWxza8OhXCIsXG4gICAgXCJCYWprYWxza8OhXCIsXG4gICAgXCJCYWprYWxza8OhXCIsXG4gICAgXCJCYWprYWxza8OhXCIsXG4gICAgXCJCYWprYWxza8OhXCIsXG4gICAgXCJCYWp6b3ZhXCIsXG4gICAgXCJCYW5jw61rb3ZlalwiLFxuICAgIFwiQmFuw61ja2FcIixcbiAgICBcIkJhbsOta292YVwiLFxuICAgIFwiQmFuc2tvYnlzdHJpY2vDoVwiLFxuICAgIFwiQmFuxaFlbG92YVwiLFxuICAgIFwiQmFyZGVqb3Zza8OhXCIsXG4gICAgXCJCYXJ0w7Nrb3ZhXCIsXG4gICAgXCJCYXJ0b8WIb3ZhXCIsXG4gICAgXCJCYXJ0b8Wha292YVwiLFxuICAgIFwiQmHFoXRvdsOhXCIsXG4gICAgXCJCYXpvdsOhXCIsXG4gICAgXCJCYcW+YW50aWFcIixcbiAgICBcIkJlYmxhdsOpaG9cIixcbiAgICBcIkJlY2tvdnNrw6FcIixcbiAgICBcIkJlZMS+b3bDoVwiLFxuICAgIFwiQmVsw6FuaWtvdsOhXCIsXG4gICAgXCJCZWxlaHJhZHNrw6FcIixcbiAgICBcIkJlbGluc2vDqWhvXCIsXG4gICAgXCJCZWxvcG90b2Nrw6lob1wiLFxuICAgIFwiQmXFiGFkaWNrw6FcIixcbiAgICBcIkJlbmPDunJvdmFcIixcbiAgICBcIkJlbmVkaWt0aWhvXCIsXG4gICAgXCJCZW5pYWtvdmFcIixcbiAgICBcIkJlcm5vbMOha292YVwiLFxuICAgIFwiQmVza3lkc2vDoVwiLFxuICAgIFwiQmV0bGlhcnNrYVwiLFxuICAgIFwiQmV6cnXEjW92YVwiLFxuICAgIFwiQmllbGFcIixcbiAgICBcIkJpZWxrb3ZhXCIsXG4gICAgXCJCasO2cm5zb25vdmFcIixcbiAgICBcIkJsYWdvZXZvdmFcIixcbiAgICBcIkJsYXRuaWNrw6FcIixcbiAgICBcIkJsdW1lbnTDoWxza2FcIixcbiAgICBcIkJseXNrw6HEjW92w6FcIixcbiAgICBcIkJvxI1uw6FcIixcbiAgICBcIkJvaHJvdmFcIixcbiAgICBcIkJvaMO6xYhvdmFcIixcbiAgICBcIkJvam5pY2vDoVwiLFxuICAgIFwiQm9yb2TDocSNb3ZhXCIsXG4gICAgXCJCb3Jza8OhXCIsXG4gICAgXCJCb3PDoWtvdmFcIixcbiAgICBcIkJvdGFuaWNrw6FcIixcbiAgICBcIkJvdHRvdmFcIixcbiAgICBcIkJvxb5lbnkgTsSbbWNvdmVqXCIsXG4gICAgXCJCw7RyaWtcIixcbiAgICBcIkJyYWTDocSNb3ZhXCIsXG4gICAgXCJCcmFkbGlhbnNrYVwiLFxuICAgIFwiQnJhbsSNc2vDoVwiLFxuICAgIFwiQnJhdHNrw6FcIixcbiAgICBcIkJyZXN0b3bDoVwiLFxuICAgIFwiQnJlem92c2vDoVwiLFxuICAgIFwiQnJpZcW+a3lcIixcbiAgICBcIkJybmlhbnNrYVwiLFxuICAgIFwiQnJvZG7DoVwiLFxuICAgIFwiQnJvZHNrw6FcIixcbiAgICBcIkJyb3NrecWIb3bDoVwiLFxuICAgIFwiQsWZZWNsYXZza8OhXCIsXG4gICAgXCJCdWRhdMOtbnNrYVwiLFxuICAgIFwiQnVkYXTDrW5za2FcIixcbiAgICBcIkJ1ZGF0w61uc2thXCIsXG4gICAgXCJCw7pka292YSAgY2VzdGFcIixcbiAgICBcIkJ1ZG92YXRlxL5za8OhXCIsXG4gICAgXCJCdWR5xaHDrW5za2FcIixcbiAgICBcIkJ1ZHnFocOtbnNrYVwiLFxuICAgIFwiQnVrb3bDoVwiLFxuICAgIFwiQnVrdXJlxaF0c2vDoVwiLFxuICAgIFwiQnVsaGFyc2vDoVwiLFxuICAgIFwiQnVsw61rb3ZhXCIsXG4gICAgXCJCeXN0csOpaG9cIixcbiAgICBcIkJ6b3bDrWNrYVwiLFxuICAgIFwiQ2FibGtvdmFcIixcbiAgICBcIkNlc3RhIG5hIMSMZXJ2ZW7DvSBtb3N0XCIsXG4gICAgXCJDZXN0YSBuYSDEjGVydmVuw70gbW9zdFwiLFxuICAgIFwiQ2VzdGEgbmEgU2VuZWNcIixcbiAgICBcIkNpa2tlcm92YVwiLFxuICAgIFwiQ2ludG9yw61uc2thXCIsXG4gICAgXCJDaW50dWxvdmFcIixcbiAgICBcIkN1a3JvdsOhXCIsXG4gICAgXCJDeXJpbG92YVwiLFxuICAgIFwixIxhamFrb3ZhXCIsXG4gICAgXCLEjGFqa292c2vDqWhvXCIsXG4gICAgXCLEjGFrbG92c2vDoVwiLFxuICAgIFwixIxhbG92c2vDoVwiLFxuICAgIFwixIxhcGFqZXZvdmFcIixcbiAgICBcIsSMYXBrb3ZhXCIsXG4gICAgXCLEjMOhcnNrZWhvXCIsXG4gICAgXCLEjGF2b2pza8OpaG9cIixcbiAgICBcIsSMZcSNaW5vdsOhXCIsXG4gICAgXCLEjGVsYWtvdnNrw6lob1wiLFxuICAgIFwixIxlcmXFocWIb3bDoVwiLFxuICAgIFwixIxlcm55xaFldnNrw6lob1wiLFxuICAgIFwixIxlcnZlxYhvdmFcIixcbiAgICBcIsSMZXNrw6FcIixcbiAgICBcIsSMZXNrb3Nsb3ZlbnNrw71jaCBwYXJcIixcbiAgICBcIsSMaXBrw6Fyc2thXCIsXG4gICAgXCLEjG1lbMOta292YVwiLFxuICAgIFwixIxtZcS+b3ZlY1wiLFxuICAgIFwixIx1bGVub3ZhXCIsXG4gICAgXCJEYWxpYm9yb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiRGFua292c2vDqWhvXCIsXG4gICAgXCJEYXJnb3Zza8OhXCIsXG4gICAgXCLEjmF0ZWxpbm92w6FcIixcbiAgICBcIkRheG5lcm92byBuw6FtZXN0aWVcIixcbiAgICBcIkRldsOtbnNrYSBjZXN0YVwiLFxuICAgIFwiRGxow6kgZGllbHkgSS5cIixcbiAgICBcIkRsaMOpIGRpZWx5IElJLlwiLFxuICAgIFwiRGxow6kgZGllbHkgSUlJLlwiLFxuICAgIFwiRG9icm92acSNb3ZhXCIsXG4gICAgXCJEb2Jyb3ZpxI1vdmFcIixcbiAgICBcIkRvYnJvdnNrw6lob1wiLFxuICAgIFwiRG9ixaFpbnNrw6lob1wiLFxuICAgIFwiRG9obmFsb3ZhXCIsXG4gICAgXCJEb2huw6FueWhvXCIsXG4gICAgXCJEb2xlxb5hbG92YVwiLFxuICAgIFwiRG9sbsOhXCIsXG4gICAgXCJEb2xub3plbXNrw6EgY2VzdGFcIixcbiAgICBcIkRvbWvDoXJza2FcIixcbiAgICBcIkRvbW92w6kgcm9sZVwiLFxuICAgIFwiRG9ubmVyb3ZhXCIsXG4gICAgXCJEb25vdmFsb3ZhXCIsXG4gICAgXCJEb3N0b2pldnNrw6lobyByYWRcIixcbiAgICBcIkRyLiBWbGFkaW3DrXJhIENsZW1lblwiLFxuICAgIFwiRHJldmVuw6FcIixcbiAgICBcIkRyaWXFiG92w6FcIixcbiAgICBcIkRyaWXFiG92w6FcIixcbiAgICBcIkRyaWXFiG92w6FcIixcbiAgICBcIkRyb3TDoXJza2EgY2VzdGFcIixcbiAgICBcIkRyb3TDoXJza2EgY2VzdGFcIixcbiAgICBcIkRyb3TDoXJza2EgY2VzdGFcIixcbiAgICBcIkRydcW+aWNvdsOhXCIsXG4gICAgXCJEcnXFvnN0ZXZuw6FcIixcbiAgICBcIkR1Ym5pY2vDoVwiLFxuICAgIFwiRHVib3bDoVwiLFxuICAgIFwiRMO6YnJhdnNrw6EgY2VzdGFcIixcbiAgICBcIkR1ZG92YVwiLFxuICAgIFwiRHVsb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiRHVsb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiRHVuYWpza8OhXCIsXG4gICAgXCJEdm/FmcOha292byBuw6FicmXFvmllXCIsXG4gICAgXCJFZGlzb25vdmFcIixcbiAgICBcIkVpbnN0ZWlub3ZhXCIsXG4gICAgXCJFbGVrdHLDoXJlbnNrw6FcIixcbiAgICBcIkV4bsOhcm92YVwiLFxuICAgIFwiRi4gS29zdGt1XCIsXG4gICAgXCJGYWRydXN6b3ZhXCIsXG4gICAgXCJGYWpub3Jvdm8gbsOhYnJlxb5pZVwiLFxuICAgIFwiRsOhbmRseWhvXCIsXG4gICAgXCJGYXJlYm7DoVwiLFxuICAgIFwiRmFyc2vDoVwiLFxuICAgIFwiRmFyc2vDqWhvXCIsXG4gICAgXCJGYXp1xL5vdsOhXCIsXG4gICAgXCJGZWRpbm92YVwiLFxuICAgIFwiRmVyaWVuxI3DrWtvdmFcIixcbiAgICBcIkZpYWxrb3bDqSDDumRvbGllXCIsXG4gICAgXCJGaWJpY2hvdmFcIixcbiAgICBcIkZpbGnDoWxuZSBuw6FkcmHFvmllXCIsXG4gICAgXCJGbMO2Z2xvdmFcIixcbiAgICBcIkZsb3Jpw6Fuc2tlIG7DoW1lc3RpZVwiLFxuICAgIFwiRnJhxYhhIEtyw6HEvmFcIixcbiAgICBcIkZyYW5jaXNjaWhvXCIsXG4gICAgXCJGcmFuY8O6enNreWNoIHBhcnRpesOhXCIsXG4gICAgXCJGcmFudGnFoWvDoW5za2FcIixcbiAgICBcIkZyYW50acWha8OhbnNrZSBuw6FtZXN0XCIsXG4gICAgXCJGdXJkZWtvdmFcIixcbiAgICBcIkZ1cmRla292YVwiLFxuICAgIFwiR2FixI3DrWtvdmFcIixcbiAgICBcIkdhZ2FyaW5vdmFcIixcbiAgICBcIkdhZ2FyaW5vdmFcIixcbiAgICBcIkdhZ2FyaW5vdmFcIixcbiAgICBcIkdham92YVwiLFxuICAgIFwiR2FsYWt0aWNrw6FcIixcbiAgICBcIkdhbGFuZG92YVwiLFxuICAgIFwiR2FsbG92YVwiLFxuICAgIFwiR2FsdmFuaWhvXCIsXG4gICAgXCJHYcWhcGFyw61rb3ZhXCIsXG4gICAgXCJHYcWhdGFub3bDoVwiLFxuICAgIFwiR2F2bG92acSNb3ZhXCIsXG4gICAgXCJHZW1lcnNrw6FcIixcbiAgICBcIkdlcmNlbm92YVwiLFxuICAgIFwiR2Vzc2F5b3ZhXCIsXG4gICAgXCJHZXR0aW5nb3bDoVwiLFxuICAgIFwiR29kcm92YVwiLFxuICAgIFwiR29nb8S+b3ZhXCIsXG4gICAgXCJHb2zDocWIb3ZhXCIsXG4gICAgXCJHb25kb3ZhXCIsXG4gICAgXCJHb3JhbHNrw6FcIixcbiAgICBcIkdvcmF6ZG92YVwiLFxuICAgIFwiR29ya8OpaG9cIixcbiAgICBcIkdyZWdvcm92ZWpcIixcbiAgICBcIkdyw7Zzc2xpbmdvdmFcIixcbiAgICBcIkdydXrDrW5za2FcIixcbiAgICBcIkd1bmR1bGnEjW92YVwiLFxuICAgIFwiR3VzZXZvdmFcIixcbiAgICBcIkhhYW5vdmFcIixcbiAgICBcIkhhYnVyc2vDoVwiLFxuICAgIFwiSGFsYcWhb3ZhXCIsXG4gICAgXCJIw6Fsa292YVwiLFxuICAgIFwiSMOhbG92YVwiLFxuICAgIFwiSGFtdWxpYWtvdmFcIixcbiAgICBcIkhhbsOhY2thXCIsXG4gICAgXCJIYW5kbG92c2vDoVwiLFxuICAgIFwiSGFueSBNZWxpxI1rb3ZlalwiLFxuICAgIFwiSGFybWFuZWNrw6FcIixcbiAgICBcIkhhc2nEjXNrw6FcIixcbiAgICBcIkhhdHRhbG92YVwiLFxuICAgIFwiSGF2bMOtxI1rb3ZhXCIsXG4gICAgXCJIYXZyYW5pYVwiLFxuICAgIFwiSGF5ZG5vdmFcIixcbiAgICBcIkhlcmxpYW5za2FcIixcbiAgICBcIkhlcmxpYW5za2FcIixcbiAgICBcIkhleWR1a292YVwiLFxuICAgIFwiSGxhdsOhxI1pa292YVwiLFxuICAgIFwiSGxhdmF0w6lob1wiLFxuICAgIFwiSGxhdm7DqSBuw6FtZXN0aWVcIixcbiAgICBcIkhsYm9rw6EgY2VzdGFcIixcbiAgICBcIkhsYm9rw6EgY2VzdGFcIixcbiAgICBcIkhsaXZvdsOhXCIsXG4gICAgXCJIbHXEjcOtbnNrYVwiLFxuICAgIFwiSG9kw6Fsb3ZhXCIsXG4gICAgXCJIb2TFvm92byBuw6FtZXN0aWVcIixcbiAgICBcIkhvbGVrb3ZhXCIsXG4gICAgXCJIb2zDrcSNc2thXCIsXG4gICAgXCJIb2xsw6lob1wiLFxuICAgIFwiSG9sdWJ5aG9cIixcbiAgICBcIkhvbnRpYW5za2FcIixcbiAgICBcIkhvcsOhcnNrYVwiLFxuICAgIFwiSG9ybsOpIMW9aWRpbnlcIixcbiAgICBcIkhvcnNrw6FcIixcbiAgICBcIkhvcnNrw6FcIixcbiAgICBcIkhyYWRcIixcbiAgICBcIkhyYWRuw6kgw7pkb2xpZVwiLFxuICAgIFwiSHJhY2hvdsOhXCIsXG4gICAgXCJIcmFuacSNbsOhXCIsXG4gICAgXCJIcmViZW5kb3ZhXCIsXG4gICAgXCJIcsOtYm92w6FcIixcbiAgICBcIkhyacWIb3Zza8OhXCIsXG4gICAgXCJIcm9iw6Frb3ZhXCIsXG4gICAgXCJIcm9iw6Fyc2thXCIsXG4gICAgXCJIcm9ib8WIb3ZhXCIsXG4gICAgXCJIdWRlY292YVwiLFxuICAgIFwiSHVtZW5za8OpIG7DoW1lc3RpZVwiLFxuICAgIFwiSHVtbWVsb3ZhXCIsXG4gICAgXCJIdXJiYW5vdm8gbsOhbWVzdGllXCIsXG4gICAgXCJIdXJiYW5vdm8gbsOhbWVzdGllXCIsXG4gICAgXCJIdmllemRvc2xhdm92byBuw6FtZXNcIixcbiAgICBcIkjDvXJvxaFvdmFcIixcbiAgICBcIkNoYWx1cGtvdmFcIixcbiAgICBcIkNoZW1pY2vDoVwiLFxuICAgIFwiQ2hsdW1lY2vDqWhvXCIsXG4gICAgXCJDaG9ydsOhdHNrYVwiLFxuICAgIFwiQ2hvcnbDoXRza2FcIixcbiAgICBcIknEvmp1xaFpbm92YVwiLFxuICAgIFwiSWxrb3ZpxI1vdmFcIixcbiAgICBcIklub3ZlY2vDoVwiLFxuICAgIFwiSW5vdmVja8OhXCIsXG4gICAgXCJJc2tlcm7DrWtvdsOhXCIsXG4gICAgXCJJdmFuYSBIb3J2w6F0aGFcIixcbiAgICBcIkl2w6Fuc2thIGNlc3RhXCIsXG4gICAgXCJKLkMuSHJvbnNrw6lob1wiLFxuICAgIFwiSmFibG/FiG92w6FcIixcbiAgICBcIkphZHJvdsOhXCIsXG4gICAgXCJKYWthYm92YVwiLFxuICAgIFwiSmFrdWJvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJKYW1uaWNrw6lob1wiLFxuICAgIFwiSsOhbmEgU3RhbmlzbGF2YVwiLFxuICAgIFwiSmFuw6HEjWtvdmFcIixcbiAgICBcIkphbsSNb3ZhXCIsXG4gICAgXCJKYW7DrWtvdmUgcm9sZVwiLFxuICAgIFwiSmFua29sb3ZhXCIsXG4gICAgXCJKw6Fub8Whw61rb3ZhXCIsXG4gICAgXCJKw6Fub8Wha292YVwiLFxuICAgIFwiSmFub3RvdmFcIixcbiAgICBcIkrDoW5za2FcIixcbiAgICBcIkphbnTDoXJvdsOhIGNlc3RhXCIsXG4gICAgXCJKYXJhYmlua292w6FcIixcbiAgICBcIkphcm7DoVwiLFxuICAgIFwiSmFyb3NsYXZvdmFcIixcbiAgICBcIkphcm/FoW92YVwiLFxuICAgIFwiSmFzZcWIb3bDoVwiLFxuICAgIFwiSmFzbsOhXCIsXG4gICAgXCJKYXNvdnNrw6FcIixcbiAgICBcIkphc3RyYWJpYVwiLFxuICAgIFwiSmHFocOta292YVwiLFxuICAgIFwiSmF2b3JpbnNrw6FcIixcbiAgICBcIkphdm9yb3bDoVwiLFxuICAgIFwiSmF6ZGVja8OhXCIsXG4gICAgXCJKZWRsw61rb3ZhXCIsXG4gICAgXCJKw6lnw6lob1wiLFxuICAgIFwiSmVsYcSNacSNb3ZhXCIsXG4gICAgXCJKZWxlbmlhXCIsXG4gICAgXCJKZXNlbm7DoVwiLFxuICAgIFwiSmVzZW5za8OpaG9cIixcbiAgICBcIkppcsOhc2tvdmFcIixcbiAgICBcIkppc2tyb3ZhXCIsXG4gICAgXCJKb3plZnNrw6FcIixcbiAgICBcIkp1bsOhY2thXCIsXG4gICAgXCJKdW5nbWFubm92YVwiLFxuICAgIFwiSnVyaWdvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJKdXJvdnNrw6lob1wiLFxuICAgIFwiSnVyc2vDoVwiLFxuICAgIFwiSnVzdGnEjW7DoVwiLFxuICAgIFwiSyBsb211XCIsXG4gICAgXCJLIMW9ZWxlem5laiBzdHVkaWVua2VcIixcbiAgICBcIkthbGluxI1pYWtvdmFcIixcbiAgICBcIkthbWVuw6Fyc2thXCIsXG4gICAgXCJLYW1lbm7DqSBuw6FtZXN0aWVcIixcbiAgICBcIkthcGljb3ZhXCIsXG4gICAgXCJLYXBpdHVsc2vDoVwiLFxuICAgIFwiS2FwaXR1bHNrw70gZHZvclwiLFxuICAgIFwiS2FwdWPDrW5za2FcIixcbiAgICBcIkthcHXFoWlhbnNrYVwiLFxuICAgIFwiS2FyYWTFvmnEjW92YVwiLFxuICAgIFwiS2FyYWTFvmnEjW92YVwiLFxuICAgIFwiS2FyYWTFvmnEjW92YVwiLFxuICAgIFwiS2FyYWTFvmnEjW92YVwiLFxuICAgIFwiS2FybG92ZXNrw6FcIixcbiAgICBcIkthcmxvdmVza8OpIHJhbWVub1wiLFxuICAgIFwiS2FycGF0c2vDoVwiLFxuICAgIFwiS2HFoW3DrXJza2FcIixcbiAgICBcIkthxaF0aWVsc2thXCIsXG4gICAgXCJLYXVrYXpza8OhXCIsXG4gICAgXCJLZW1wZWxlbm92YVwiLFxuICAgIFwiS2XFvm1hcnNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJLbGFkbmlhbnNrYVwiLFxuICAgIFwiS2xhcmlza8OhXCIsXG4gICAgXCJLbMOhxaF0b3Jza8OhXCIsXG4gICAgXCJLbGF0b3Zza8OhXCIsXG4gICAgXCJLbGF0b3Zza8OhXCIsXG4gICAgXCJLbGVtZW5zb3ZhXCIsXG4gICAgXCJLbGluY292w6FcIixcbiAgICBcIktsb2J1xI1uw61ja2FcIixcbiAgICBcIktsb2tvxI1vdmFcIixcbiAgICBcIkvEvnVrYXTDoVwiLFxuICAgIFwiS21lxaVvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJLb2NlxL5vdmFcIixcbiAgICBcIktvxI3DoW5rb3ZhXCIsXG4gICAgXCJLb2jDunRvdmFcIixcbiAgICBcIktvbMOhcnNrYVwiLFxuICAgIFwiS29sw61za292YVwiLFxuICAgIFwiS29sbMOhcm92byBuw6FtZXN0aWVcIixcbiAgICBcIktvbGzDoXJvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJLb2xtw6FcIixcbiAgICBcIktvbcOhcsWIYW5za8OhXCIsXG4gICAgXCJLb23DoXJuaWNrw6FcIixcbiAgICBcIktvbcOhcm5pY2vDoVwiLFxuICAgIFwiS29tZW5za8OpaG8gbsOhbWVzdGllXCIsXG4gICAgXCJLb21pbsOhcnNrYVwiLFxuICAgIFwiS29tb25pY292w6FcIixcbiAgICBcIktvbm9wbsOhXCIsXG4gICAgXCJLb252YWxpbmtvdsOhXCIsXG4gICAgXCJLb252ZW50bsOhXCIsXG4gICAgXCJLb3BhbmljZVwiLFxuICAgIFwiS29wxI1pYW5za2FcIixcbiAgICBcIktvcGVybsOta292YVwiLFxuICAgIFwiS29yYWJpbnNrw6lob1wiLFxuICAgIFwiS29yZW5pxI1vdmFcIixcbiAgICBcIktvc3RsaXbDqWhvXCIsXG4gICAgXCJLb3N0b2xuw6FcIixcbiAgICBcIktvxaFpY2vDoVwiLFxuICAgIFwiS2/FoWlja8OhXCIsXG4gICAgXCJLb8WhaWNrw6FcIixcbiAgICBcIktvdsOhxI1za2FcIixcbiAgICBcIktvdm9yb2JvdG7DrWNrYVwiLFxuICAgIFwiS296aWFcIixcbiAgICBcIktvemlhcmthXCIsXG4gICAgXCJLb3ptb25hdXRpY2vDoVwiLFxuICAgIFwiS3Jham7DoVwiLFxuICAgIFwiS3Jha292c2vDoVwiLFxuICAgIFwiS3LDocS+b3Zza8OpIMO6ZG9saWVcIixcbiAgICBcIktyYXNpbnNrw6lob1wiLFxuICAgIFwiS3Jhc2tvdmFcIixcbiAgICBcIktyw6FzbmFcIixcbiAgICBcIktyw6Fzbm9ob3Jza8OhXCIsXG4gICAgXCJLcmFzb3Zza8OpaG9cIixcbiAgICBcIktyw6F0a2FcIixcbiAgICBcIktyxI1tw6lyeWhvXCIsXG4gICAgXCJLcmVtbmlja8OhXCIsXG4gICAgXCJLcmVzw6Fua292YVwiLFxuICAgIFwiS3JpdsOhXCIsXG4gICAgXCJLcmnFvmtvdmFcIixcbiAgICBcIktyw63Fvm5hXCIsXG4gICAgXCJLcsOtxb5uYVwiLFxuICAgIFwiS3LDrcW+bmFcIixcbiAgICBcIktyw63Fvm5hXCIsXG4gICAgXCJLcm1hbm92YVwiLFxuICAgIFwiS3JvbXBhxaFza8OhXCIsXG4gICAgXCJLcnVwaW5za8OhXCIsXG4gICAgXCJLcnVwa292YVwiLFxuICAgIFwiS3Viw6FuaWhvXCIsXG4gICAgXCJLdWLDrW5za2FcIixcbiAgICBcIkt1a2xvdnNrw6FcIixcbiAgICBcIkt1a3XEjcOtbm92YVwiLFxuICAgIFwiS3VrdXJpxI1uw6FcIixcbiAgICBcIkt1bMOtxaFrb3ZhXCIsXG4gICAgXCJLdWx0w7pybmFcIixcbiAgICBcIkt1cGVja8OpaG9cIixcbiAgICBcIkvDunBlxL5uw6FcIixcbiAgICBcIkt1dGzDrWtvdmFcIixcbiAgICBcIkt1dHV6b3ZvdmFcIixcbiAgICBcIkt1em3DoW55aG9cIixcbiAgICBcIkt2YcSNYWxvdmFcIixcbiAgICBcIkt2ZXRuw6FcIixcbiAgICBcIkvDvcSNZXJza8OpaG9cIixcbiAgICBcIkt5amV2c2vDoVwiLFxuICAgIFwiS3lzdWNrw6FcIixcbiAgICBcIkxhYm9yZWNrw6FcIixcbiAgICBcIkxhY2tvdmFcIixcbiAgICBcIkxhZGlzbGF2YSBTw6FydVwiLFxuICAgIFwixL1hZG92w6FcIixcbiAgICBcIkxhY2hvdmFcIixcbiAgICBcIsS9YWxpb3bDoVwiLFxuICAgIFwiTGFtYcSNc2vDoSBjZXN0YVwiLFxuICAgIFwiTGFtYcSNc2vDoSBjZXN0YVwiLFxuICAgIFwiTGFtYW5za8OpaG9cIixcbiAgICBcIkxhbmRlcmVyb3ZhXCIsXG4gICAgXCJMYW5nc2ZlbGRvdmFcIixcbiAgICBcIsS9YW5vdsOhXCIsXG4gICAgXCJMYXNrb21lcnNrw6lob1wiLFxuICAgIFwiTGF1xI1la292YVwiLFxuICAgIFwiTGF1cmluc2vDoVwiLFxuICAgIFwiTGF6YXJldHNrw6FcIixcbiAgICBcIkxhemFyZXRza8OhXCIsXG4gICAgXCJMZWdlcnNrw6lob1wiLFxuICAgIFwiTGVnaW9uw6Fyc2thXCIsXG4gICAgXCJMZWdpb27DoXJza2FcIixcbiAgICBcIkxlaG9ja8OpaG9cIixcbiAgICBcIkxlaG9ja8OpaG9cIixcbiAgICBcIkxlbmFyZG92YVwiLFxuICAgIFwiTGVybW9udG92b3ZhXCIsXG4gICAgXCJMZXNuw6FcIixcbiAgICBcIkxlxaFrb3ZhXCIsXG4gICAgXCJMZXRlY2vDoVwiLFxuICAgIFwiTGV0aXNrbyBNLlIuxaB0ZWbDoW5pa1wiLFxuICAgIFwiTGV0bsOhXCIsXG4gICAgXCJMZXbDoXJza2FcIixcbiAgICBcIkxldmlja8OhXCIsXG4gICAgXCJMZXZvxI1za8OhXCIsXG4gICAgXCJMaWRpY2vDoVwiLFxuICAgIFwiTGlldGF2c2vDoVwiLFxuICAgIFwiTGljaGFyZG92YVwiLFxuICAgIFwiTGlwb3bDoVwiLFxuICAgIFwiTGlwb3Zpbm92w6FcIixcbiAgICBcIkxpcHRvdnNrw6FcIixcbiAgICBcIkxpc3RvdsOhXCIsXG4gICAgXCJMw63FocSNaWUgbml2eVwiLFxuICAgIFwiTMOtxaHEjWllIMO6ZG9saWVcIixcbiAgICBcIkxpdG92c2vDoVwiLFxuICAgIFwiTG9kbsOhXCIsXG4gICAgXCJMb21iYXJkaW5paG9cIixcbiAgICBcIkxvbW9ub3Nvdm92YVwiLFxuICAgIFwiTG9wZW7DrWNrYVwiLFxuICAgIFwiTG92aW5za8OpaG9cIixcbiAgICBcIsS9dWJpZXRvdnNrw6FcIixcbiAgICBcIsS9dWJpbnNrw6FcIixcbiAgICBcIsS9dWLEvmFuc2vDoVwiLFxuICAgIFwixL11Ym9jaG5pYW5za2FcIixcbiAgICBcIsS9dWJvdm5pYW5za2FcIixcbiAgICBcIkzDusSNbmFcIixcbiAgICBcIsS9dWRvdsOpIG7DoW1lc3RpZVwiLFxuICAgIFwixL11ZG92w610YSBGdWxsdVwiLFxuICAgIFwiTHVoYcSNb3ZpY2vDoVwiLFxuICAgIFwiTHXFvmlja8OhXCIsXG4gICAgXCJMdcW+bsOhXCIsXG4gICAgXCJMw71jZWpuw6FcIixcbiAgICBcIkx5a292Y292w6FcIixcbiAgICBcIk0uIEhlbGxhXCIsXG4gICAgXCJNYWduZXRvdsOhXCIsXG4gICAgXCJNYWNoYXJvdmFcIixcbiAgICBcIk1hamFrb3Zza8OpaG9cIixcbiAgICBcIk1hamVybsOta292YVwiLFxuICAgIFwiTcOhamtvdmFcIixcbiAgICBcIk3DoWpvdsOhXCIsXG4gICAgXCJNYWtvdmlja8OpaG9cIixcbiAgICBcIk1hbMOhXCIsXG4gICAgXCJNYWzDqSBww6FsZW5pc2tvXCIsXG4gICAgXCJNYWxpbm92w6FcIixcbiAgICBcIk1hbMO9IERyYcW+ZGlha1wiLFxuICAgIFwiTWFsw70gdHJoXCIsXG4gICAgXCJNYW1hdGV5b3ZhXCIsXG4gICAgXCJNYW1hdGV5b3ZhXCIsXG4gICAgXCJNw6FuZXNvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJNYXJpw6Fuc2thXCIsXG4gICAgXCJNYXJpZSBDdXJpZS1Ta2xvZG93c1wiLFxuICAgIFwiTcOhcmllIE1lZHZlxI9vdmVqXCIsXG4gICAgXCJNYXJrb3ZhXCIsXG4gICAgXCJNYXLDs3R5aG9cIixcbiAgICBcIk1hcnTDoWtvdmVqXCIsXG4gICAgXCJNYXJ0aW7EjWVrb3ZhXCIsXG4gICAgXCJNYXJ0aW7EjWVrb3ZhXCIsXG4gICAgXCJNYXJ0aW5lbmdvdmFcIixcbiAgICBcIk1hcnRpbnNrw6FcIixcbiAgICBcIk1hdGVqYSBCZWxhXCIsXG4gICAgXCJNYXRlamtvdmFcIixcbiAgICBcIk1hdGnEjW7DoVwiLFxuICAgIFwiTWF0w7rFoW92YVwiLFxuICAgIFwiTWVkZW7DoVwiLFxuICAgIFwiTWVkemllcmthXCIsXG4gICAgXCJNZWR6aWxhYm9yZWNrw6FcIixcbiAgICBcIk1lcmxvdG92w6FcIixcbiAgICBcIk1lc2HEjW7DoVwiLFxuICAgIFwiTWVzdHNrw6FcIixcbiAgICBcIk1ldGVvcm92w6FcIixcbiAgICBcIk1ldG9kb3ZhXCIsXG4gICAgXCJNaWNraWV3aWN6b3ZhXCIsXG4gICAgXCJNaWVyb3bDoVwiLFxuICAgIFwiTWljaGFsc2vDoVwiLFxuICAgIFwiTWlrb3bDrW5paG9cIixcbiAgICBcIk1pa3Vsw6HFoXNrYVwiLFxuICAgIFwiTWlsZXRpxI1vdmFcIixcbiAgICBcIk1pbGV0acSNb3ZhXCIsXG4gICAgXCJNacWhw61rb3ZhXCIsXG4gICAgXCJNacWhw61rb3ZhXCIsXG4gICAgXCJNacWhw61rb3ZhXCIsXG4gICAgXCJNbGlla8OhcmVuc2vDoVwiLFxuICAgIFwiTWx5bmFyb3ZpxI1vdmFcIixcbiAgICBcIk1seW5za8OhIGRvbGluYVwiLFxuICAgIFwiTWx5bnNrw6EgZG9saW5hXCIsXG4gICAgXCJNbHluc2vDoSBkb2xpbmFcIixcbiAgICBcIk1seW5za8OpIGx1aHlcIixcbiAgICBcIk1seW5za8OpIG5pdnlcIixcbiAgICBcIk1seW5za8OpIG5pdnlcIixcbiAgICBcIk1seW5za8OpIG5pdnlcIixcbiAgICBcIk1seW5za8OpIG5pdnlcIixcbiAgICBcIk1seW5za8OpIG5pdnlcIixcbiAgICBcIk1seW55XCIsXG4gICAgXCJNb2RyYW5za8OhXCIsXG4gICAgXCJNb2ptw61yb3ZhXCIsXG4gICAgXCJNb2tyw6HFiCB6w6Fob25cIixcbiAgICBcIk1va3JvaMOhanNrYSBjZXN0YVwiLFxuICAgIFwiTW9sZGF2c2vDoVwiLFxuICAgIFwiTW9sZWNvdmFcIixcbiAgICBcIk1vcmF2c2vDoVwiLFxuICAgIFwiTW9za292c2vDoVwiLFxuICAgIFwiTW9zdCBTTlBcIixcbiAgICBcIk1vc3RvdsOhXCIsXG4gICAgXCJNb8Whb3Zza8OpaG9cIixcbiAgICBcIk1vdMO9bGlhXCIsXG4gICAgXCJNb3l6ZXNvdmFcIixcbiAgICBcIk1vemFydG92YVwiLFxuICAgIFwiTXJhemlhcmVuc2vDoVwiLFxuICAgIFwiTXVkcm/FiG92YVwiLFxuICAgIFwiTXVkcm/FiG92YVwiLFxuICAgIFwiTXVkcm/FiG92YVwiLFxuICAgIFwiTXVjaG92byBuw6FtZXN0aWVcIixcbiAgICBcIk11cmdhxaFvdmFcIixcbiAgICBcIk11xaFrw6F0b3bDoVwiLFxuICAgIFwiTXXFoXRvdsOhXCIsXG4gICAgXCJNw7p6ZWpuw6FcIixcbiAgICBcIk15amF2c2vDoVwiLFxuICAgIFwiTcO9dG5hXCIsXG4gICAgXCJNw710bmFcIixcbiAgICBcIk5hIEJhcsOhbmt1XCIsXG4gICAgXCJOYSBCcmV6aW7DoWNoXCIsXG4gICAgXCJOYSBIcmViaWVua3VcIixcbiAgICBcIk5hIEthbHbDoXJpaVwiLFxuICAgIFwiTmEgS2FtcMOhcmtlXCIsXG4gICAgXCJOYSBrb3BjaVwiLFxuICAgIFwiTmEga3Jpxb5vdmF0a8OhY2hcIixcbiAgICBcIk5hIGzDoW5vY2hcIixcbiAgICBcIk5hIHBhxaFpXCIsXG4gICAgXCJOYSBwaWVza3VcIixcbiAgICBcIk5hIFJpdmnDqXJlXCIsXG4gICAgXCJOYSBTaXRpbmVcIixcbiAgICBcIk5hIFNsYXbDrW5lXCIsXG4gICAgXCJOYSBzdHLDoW5pXCIsXG4gICAgXCJOYSDFoHR5cmlkc2lhdGt1XCIsXG4gICAgXCJOYSDDunZyYXRpXCIsXG4gICAgXCJOYSB2xZXFoWt1XCIsXG4gICAgXCJOYSB2w71zbG7DrVwiLFxuICAgIFwiTsOhYsSbbGtvdmFcIixcbiAgICBcIk7DoWJyZcW+aWUgYXJtLiBnZW4uIExcIixcbiAgICBcIk7DoWJyZcW+bsOhXCIsXG4gICAgXCJOYWQgRHVuYWpvbVwiLFxuICAgIFwiTmFkIGxvbW9tXCIsXG4gICAgXCJOYWQgbMO6xI1rYW1pXCIsXG4gICAgXCJOYWQgbMO6xI1rYW1pXCIsXG4gICAgXCJOYWQgb3N0cm92b21cIixcbiAgICBcIk5hZCBTaWhvxaVvdVwiLFxuICAgIFwiTsOhbWVzdGllIDEuIG3DoWphXCIsXG4gICAgXCJOw6FtZXN0aWUgQWxleGFuZHJhIERcIixcbiAgICBcIk7DoW1lc3RpZSBCaWVseSBrcsOtxb5cIixcbiAgICBcIk7DoW1lc3RpZSBIcmFuacSNaWFyb3ZcIixcbiAgICBcIk7DoW1lc3RpZSBKw6FuYSBQYXZsYVwiLFxuICAgIFwiTsOhbWVzdGllIMS9dWRvdsOtdGEgxaB0XCIsXG4gICAgXCJOw6FtZXN0aWUgTWFydGluYSBCZW5cIixcbiAgICBcIk7DoW0uIE0uUi7FoHRlZsOhbmlrYVwiLFxuICAgIFwiTsOhbWVzdGllIHNsb2JvZHlcIixcbiAgICBcIk7DoW1lc3RpZSBzbG9ib2R5XCIsXG4gICAgXCJOw6FtZXN0aWUgU05QXCIsXG4gICAgXCJOw6FtZXN0aWUgU05QXCIsXG4gICAgXCJOw6FtZXN0aWUgc3YuIEZyYW50acWhXCIsXG4gICAgXCJOYXJjaXNvdsOhXCIsXG4gICAgXCJOZWRiYWxvdmFcIixcbiAgICBcIk5la3Jhc292b3ZhXCIsXG4gICAgXCJOZXJvbmV0b3bDoVwiLFxuICAgIFwiTmVydWRvdmFcIixcbiAgICBcIk5ldsOkZHpvdsOhXCIsXG4gICAgXCJOZXrDoWJ1ZGtvdsOhXCIsXG4gICAgXCJOacWlb3bDoVwiLFxuICAgIFwiTml0cmlhbnNrYVwiLFxuICAgIFwiTsOtxb5pbm7DoVwiLFxuICAgIFwiTm9iZWxvdmFcIixcbiAgICBcIk5vYmVsb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiTm92w6FcIixcbiAgICBcIk5vdsOhIFJvxb7FiGF2c2vDoVwiLFxuICAgIFwiTm92YWNrw6lob1wiLFxuICAgIFwiTm92w6kgcMOhbGVuaXNrb1wiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgSVwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgSUlcIixcbiAgICBcIk5vdsOpIHrDoWhyYWR5IElJSVwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgSVZcIixcbiAgICBcIk5vdsOpIHrDoWhyYWR5IFZcIixcbiAgICBcIk5vdsOpIHrDoWhyYWR5IFZJXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBWSUlcIixcbiAgICBcIk5vdmluw6Fyc2thXCIsXG4gICAgXCJOb3ZvYmFuc2vDoVwiLFxuICAgIFwiTm92b2hyYWRza8OhXCIsXG4gICAgXCJOb3Zvc3ZldHNrw6FcIixcbiAgICBcIk5vdm9zdmV0c2vDoVwiLFxuICAgIFwiTm92b3N2ZXRza8OhXCIsXG4gICAgXCJPYmXFvm7DoVwiLFxuICAgIFwiT2JjaG9kbsOhXCIsXG4gICAgXCJPxI1vdnNrw6FcIixcbiAgICBcIk9kYm9qw6Fyb3ZcIixcbiAgICBcIk9kYm9yw6Fyc2thXCIsXG4gICAgXCJPZGJvcsOhcnNrZSBuw6FtZXN0aWVcIixcbiAgICBcIk9kYm9yw6Fyc2tlIG7DoW1lc3RpZVwiLFxuICAgIFwiT2huaWNvdsOhXCIsXG4gICAgXCJPa8Ohbmlrb3ZhXCIsXG4gICAgXCJPa3J1xb5uw6FcIixcbiAgICBcIk9sYnJhY2h0b3ZhXCIsXG4gICAgXCJPbGVqa8OhcnNrYVwiLFxuICAgIFwiT25kYXZza8OhXCIsXG4gICAgXCJPbmRyZWpvdm92YVwiLFxuICAgIFwiT3JhdnNrw6FcIixcbiAgICBcIk9yZWNob3bDoSBjZXN0YVwiLFxuICAgIFwiT3JlY2hvdsO9IHJhZFwiLFxuICAgIFwiT3JpZcWha292w6FcIixcbiAgICBcIk9ybWlzb3ZhXCIsXG4gICAgXCJPc2FkbsOhXCIsXG4gICAgXCJPc3RyYXZza8OhXCIsXG4gICAgXCJPc3RyZWRrb3bDoVwiLFxuICAgIFwiT3N1c2vDqWhvXCIsXG4gICAgXCJPc3ZldG92w6FcIixcbiAgICBcIk90b25lbHNrw6FcIixcbiAgICBcIk92cnXEjXNrw6FcIixcbiAgICBcIk92c2nFoXRza8OpIG7DoW1lc3RpZVwiLFxuICAgIFwiUGFqxaF0w7puc2thXCIsXG4gICAgXCJQYWxhY2vDqWhvXCIsXG4gICAgXCJQYWzDoXJpa292YVwiLFxuICAgIFwiUGFsw6FyaWtvdmFcIixcbiAgICBcIlDDoWxhdnNrw6FcIixcbiAgICBcIlBhbGlzw6FkeVwiLFxuICAgIFwiUGFsaXPDoWR5XCIsXG4gICAgXCJQYWxpc8OhZHlcIixcbiAgICBcIlBhbGtvdmnEjW92YVwiLFxuICAgIFwiUGFuZW5za8OhXCIsXG4gICAgXCJQYW5rw7pjaG92YVwiLFxuICAgIFwiUGFuw7Nuc2thIGNlc3RhXCIsXG4gICAgXCJQYW5za8OhXCIsXG4gICAgXCJQYXDDoW5rb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiUGFwcmHEj292w6FcIixcbiAgICBcIlDDoXJpxI1rb3ZhXCIsXG4gICAgXCJQYXJrb3bDoVwiLFxuICAgIFwiUGFydGl6w6Fuc2thXCIsXG4gICAgXCJQYXNpZW5reVwiLFxuICAgIFwiUGF1bMOtbnlob1wiLFxuICAgIFwiUGF2bG92acSNb3ZhXCIsXG4gICAgXCJQYXZsb3ZvdmFcIixcbiAgICBcIlBhdmxvdnNrw6FcIixcbiAgICBcIlBhxb5pY2vDqWhvXCIsXG4gICAgXCJQYcW+w610a292w6FcIixcbiAgICBcIlBlxI1uaWFuc2thXCIsXG4gICAgXCJQZXJuZWNrw6FcIixcbiAgICBcIlBlc3RvdmF0ZcS+c2vDoVwiLFxuICAgIFwiUGV0ZXJza8OhXCIsXG4gICAgXCJQZXR6dmFsb3ZhXCIsXG4gICAgXCJQZXppbnNrw6FcIixcbiAgICBcIlBpZXNvxI1uw6FcIixcbiAgICBcIlBpZcWhxaVhbnNrw6FcIixcbiAgICBcIlBpZmZsb3ZhXCIsXG4gICAgXCJQaWzDoXJpa292YVwiLFxuICAgIFwiUGlvbmllcnNrYVwiLFxuICAgIFwiUGl2b8WIa292w6FcIixcbiAgICBcIlBsYW5ja292YVwiLFxuICAgIFwiUGxhbsOpdFwiLFxuICAgIFwiUGzDoXRlbsOtY2thXCIsXG4gICAgXCJQbHVob3bDoVwiLFxuICAgIFwiUGx5bsOhcmVuc2vDoVwiLFxuICAgIFwiUGx6ZW5za8OhXCIsXG4gICAgXCJQb2JyZcW+bsOhXCIsXG4gICAgXCJQb2QgQsO0cmlrb21cIixcbiAgICBcIlBvZCBLYWx2w6FyaW91XCIsXG4gICAgXCJQb2QgbGVzb21cIixcbiAgICBcIlBvZCBSb3ZuaWNhbWlcIixcbiAgICBcIlBvZCB2aW5pY2FtaVwiLFxuICAgIFwiUG9kaG9yc2vDqWhvXCIsXG4gICAgXCJQb2RqYXZvcmluc2tlalwiLFxuICAgIFwiUG9kbHXEjWluc2vDqWhvXCIsXG4gICAgXCJQb2RuaWtvdsOhXCIsXG4gICAgXCJQb2R0YXRyYW5za8OpaG9cIixcbiAgICBcIlBvaHJvbnNrw6FcIixcbiAgICBcIlBvbMOhcm5hXCIsXG4gICAgXCJQb2xvcmVja8OpaG9cIixcbiAgICBcIlBvxL5uw6FcIixcbiAgICBcIlBvxL5za8OhXCIsXG4gICAgXCJQb2x1ZG7DrWtvdsOhXCIsXG4gICAgXCJQb3J1YnNrw6lob1wiLFxuICAgIFwiUG/FoXRvdsOhXCIsXG4gICAgXCJQb3Zhxb5za8OhXCIsXG4gICAgXCJQb3ZyYXpuw61ja2FcIixcbiAgICBcIlBvdnJhem7DrWNrYVwiLFxuICAgIFwiUHJhxb5za8OhXCIsXG4gICAgXCJQcmVkc3RhbmnEjW7DqSBuw6FtZXN0aVwiLFxuICAgIFwiUHJlcG/FoXRza8OhXCIsXG4gICAgXCJQcmXFoWVybm92YVwiLFxuICAgIFwiUHJlxaFvdnNrw6FcIixcbiAgICBcIlByZcWhb3Zza8OhXCIsXG4gICAgXCJQcmXFoW92c2vDoVwiLFxuICAgIFwiUHJpIEJpZWxvbSBrcsOtxb5pXCIsXG4gICAgXCJQcmkgZHZvcmVcIixcbiAgICBcIlByaSBEeW5hbWl0a2VcIixcbiAgICBcIlByaSBIYWLDoW5za29tIG1seW5lXCIsXG4gICAgXCJQcmkgaHJhZG5laiBzdHVkbmlcIixcbiAgICBcIlByaSBzZcSNaVwiLFxuICAgIFwiUHJpIFN0YXJlaiBQcmFjaMOhcm5pXCIsXG4gICAgXCJQcmkgU3Rhcm9tIGjDoWppXCIsXG4gICAgXCJQcmkgU3Rhcm9tIE3DvXRlXCIsXG4gICAgXCJQcmkgc3RyZWxuaWNpXCIsXG4gICAgXCJQcmkgU3VjaG9tIG1seW5lXCIsXG4gICAgXCJQcmkgenZvbmljaVwiLFxuICAgIFwiUHJpYmlub3ZhXCIsXG4gICAgXCJQcmliaW5vdmFcIixcbiAgICBcIlByaWJpbm92YVwiLFxuICAgIFwiUHJpYmnFoW92YVwiLFxuICAgIFwiUHJpYnlsaW5za8OhXCIsXG4gICAgXCJQcmllxI1uYVwiLFxuICAgIFwiUHJpZWtvcHlcIixcbiAgICBcIlByaWVteXNlbG7DoVwiLFxuICAgIFwiUHJpZW15c2VsbsOhXCIsXG4gICAgXCJQcmlldm96c2vDoVwiLFxuICAgIFwiUHJpZXZvenNrw6FcIixcbiAgICBcIlByaWV2b3pza8OhXCIsXG4gICAgXCJQcsOta29wb3ZhXCIsXG4gICAgXCJQcmltYWNpw6FsbmUgbsOhbWVzdGllXCIsXG4gICAgXCJQcsOtc3RhdlwiLFxuICAgIFwiUHLDrXN0YXZuw6FcIixcbiAgICBcIlByb2tvZmlldm92YVwiLFxuICAgIFwiUHJva29wYSBWZcS+a8OpaG9cIixcbiAgICBcIlByb2tvcG92YVwiLFxuICAgIFwiUHLDumRvdsOhXCIsXG4gICAgXCJQcnZvc2llbmtvdsOhXCIsXG4gICAgXCJQw7pwYXZvdsOhXCIsXG4gICAgXCJQdXN0w6FcIixcbiAgICBcIlB1xaFraW5vdmFcIixcbiAgICBcIlJhxI1pYW5za2FcIixcbiAgICBcIlJhxI1pYW5za2FcIixcbiAgICBcIlJhxI1pYW5za2UgbcO9dG9cIixcbiAgICBcIlJhZGFyb3bDoVwiLFxuICAgIFwiUsOhZGlvdsOhXCIsXG4gICAgXCJSYWRsaW5za8OpaG9cIixcbiAgICBcIlJhZG5pxI1uw6FcIixcbiAgICBcIlJhZG5pxI1uw6kgbsOhbWVzdGllXCIsXG4gICAgXCJSYWR2YW5za8OhXCIsXG4gICAgXCJSYWpza8OhXCIsXG4gICAgXCJSYWtldG92w6FcIixcbiAgICBcIlLDoWtvc292w6FcIixcbiAgICBcIlJhc3Rpc2xhdm92YVwiLFxuICAgIFwiUsOhenVzb3ZvIG7DoWJyZcW+aWVcIixcbiAgICBcIlJlcG7DoVwiLFxuICAgIFwiUmXFoWV0a292YVwiLFxuICAgIFwiUmV2b2x1xI1uw6FcIixcbiAgICBcIlLDqXZvdsOhXCIsXG4gICAgXCJSZXbDumNrYVwiLFxuICAgIFwiUmV6ZWRvdsOhXCIsXG4gICAgXCJSaWF6YW5za8OhXCIsXG4gICAgXCJSaWF6YW5za8OhXCIsXG4gICAgXCJSaWJheW92w6FcIixcbiAgICBcIlJpZcSNbmFcIixcbiAgICBcIlJpZ2VsZWhvXCIsXG4gICAgXCJSw616bGluZ292w6FcIixcbiAgICBcIlJpem5lcm92YVwiLFxuICAgIFwiUm9ib3Ruw61ja2FcIixcbiAgICBcIlJvbWFub3ZhXCIsXG4gICAgXCJSw7ZudGdlbm92YVwiLFxuICAgIFwiUm9zbsOhXCIsXG4gICAgXCJSb3Zuw6FcIixcbiAgICBcIlJvdm5pYW5rb3ZhXCIsXG4gICAgXCJSb3Zuw61rb3bDoVwiLFxuICAgIFwiUm96bWFyw61ub3bDoVwiLFxuICAgIFwiUm/FvsWIYXZza8OhXCIsXG4gICAgXCJSb8W+xYhhdnNrw6FcIixcbiAgICBcIlJvxb7FiGF2c2vDoVwiLFxuICAgIFwiUnViaW5zdGVpbm92YVwiLFxuICAgIFwiUnVkbmF5b3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiUnVtYW7EjWVrb3bDoVwiLFxuICAgIFwiUnVzb3Zza8OhIGNlc3RhXCIsXG4gICAgXCJSdcW+acSNa292w6FcIixcbiAgICBcIlJ1xb5pbm92c2vDoVwiLFxuICAgIFwiUnXFvmlub3Zza8OhXCIsXG4gICAgXCJSdcW+aW5vdnNrw6FcIixcbiAgICBcIlJ1xb5vbWJlcnNrw6FcIixcbiAgICBcIlJ1xb5vdsOhIGRvbGluYVwiLFxuICAgIFwiUnXFvm92w6EgZG9saW5hXCIsXG4gICAgXCJSeWLDoXJza2EgYnLDoW5hXCIsXG4gICAgXCJSeWJuw6kgbsOhbWVzdGllXCIsXG4gICAgXCJSw71kemlrb3bDoVwiLFxuICAgIFwiU2FiaW5vdnNrw6FcIixcbiAgICBcIlNhYmlub3Zza8OhXCIsXG4gICAgXCJTYWQgSmFua2EgS3LDocS+YVwiLFxuICAgIFwiU2Fkb3bDoVwiLFxuICAgIFwiU2FydG9yaXNvdmFcIixcbiAgICBcIlNhc2lua292YVwiLFxuICAgIFwiU2ViZXLDrW5paG9cIixcbiAgICBcIlNlxI1vdnNrw6FcIixcbiAgICBcIlNlZGzDoXJza2FcIixcbiAgICBcIlNlZG1va3LDoXNrb3bDoVwiLFxuICAgIFwiU2VnbmVyb3ZhXCIsXG4gICAgXCJTZWt1bHNrw6FcIixcbiAgICBcIlNlbWlhbm92YVwiLFxuICAgIFwiU2VuaWNrw6FcIixcbiAgICBcIlNlbm7DoVwiLFxuICAgIFwiU2NoaWxsZXJvdmFcIixcbiAgICBcIlNjaG9keSBwcmkgc3RhcmVqIHZvXCIsXG4gICAgXCJTaWLDrXJza2FcIixcbiAgICBcIlNpZW5raWV3aWN6b3ZhXCIsXG4gICAgXCJTaWx2w6Fuc2thXCIsXG4gICAgXCJTaW5va3ZldG7DoVwiLFxuICAgIFwiU2thbGlja8OhIGNlc3RhXCIsXG4gICAgXCJTa2FsbsOhXCIsXG4gICAgXCJTa2xlbsOhcm92YVwiLFxuICAgIFwiU2tsZW7DoXJza2FcIixcbiAgICBcIlNsw6Fka292acSNb3ZhXCIsXG4gICAgXCJTbGFkb3bDoVwiLFxuICAgIFwiU2zDoXZpxI1pZSDDumRvbGllXCIsXG4gICAgXCJTbGF2w61uXCIsXG4gICAgXCJTbGVww6FcIixcbiAgICBcIlNsaWHEjXNrYVwiLFxuICAgIFwiU2xpZXpza2FcIixcbiAgICBcIlNsaXZrb3bDoVwiLFxuICAgIFwiU2xuZcSNbsOhXCIsXG4gICAgXCJTbG92YW5za8OhXCIsXG4gICAgXCJTbG92aW5za8OhXCIsXG4gICAgXCJTbG92bmFmdHNrw6FcIixcbiAgICBcIlNsb3dhY2vDqWhvXCIsXG4gICAgXCJTbWV0YW5vdmFcIixcbiAgICBcIlNtaWtvdmFcIixcbiAgICBcIlNtb2xlbmlja8OhXCIsXG4gICAgXCJTbW9sbsOtY2thXCIsXG4gICAgXCJTbXJlxI1pYW5za2FcIixcbiAgICBcIlNvZmVyb3ZlIHNjaG9keVwiLFxuICAgIFwiU29jaMOhxYhvdmFcIixcbiAgICBcIlNva29sc2vDoVwiLFxuICAgIFwiU29saXZhcnNrw6FcIixcbiAgICBcIlNvbG/FoW5pY2vDoVwiLFxuICAgIFwiU29tb2xpY2vDqWhvXCIsXG4gICAgXCJTb21vbGlja8OpaG9cIixcbiAgICBcIlNvc25vdsOhXCIsXG4gICAgXCJTcGnFoXNrw6FcIixcbiAgICBcIlNwb2puw6FcIixcbiAgICBcIlNwb2xvxI1lbnNrw6FcIixcbiAgICBcIlNwdXRuaWtvdsOhXCIsXG4gICAgXCJTcmV6bmV2c2vDqWhvXCIsXG4gICAgXCJTcm7EjWlhXCIsXG4gICAgXCJTdGFjaGFub3Zza8OhXCIsXG4gICAgXCJTdMOhbGljb3bDoVwiLFxuICAgIFwiU3RhbmnEjW7DoVwiLFxuICAgIFwiU3RhcsOhIMSMZXJuaWNvdsOhXCIsXG4gICAgXCJTdGFyw6EgSXbDoW5za2EgY2VzdGFcIixcbiAgICBcIlN0YXLDoSBQcmlldm96c2vDoVwiLFxuICAgIFwiU3RhcsOhIFZham5vcnNrw6FcIixcbiAgICBcIlN0YXLDoSB2aW7DoXJza2FcIixcbiAgICBcIlN0YXLDqSBHcnVudHlcIixcbiAgICBcIlN0YXLDqSBpaHJpc2tvXCIsXG4gICAgXCJTdGFyw6kgesOhaHJhZHlcIixcbiAgICBcIlN0YXJocmFkc2vDoVwiLFxuICAgIFwiU3Rhcm9ow6Fqc2thXCIsXG4gICAgXCJTdGFyb21lc3Rza8OhXCIsXG4gICAgXCJTdGFyb3R1cnNrw70gY2hvZG7DrWtcIixcbiAgICBcIlN0YXZpdGXEvnNrw6FcIixcbiAgICBcIlN0b2RvbG92YVwiLFxuICAgIFwiU3Rva2xhc292w6FcIixcbiAgICBcIlN0cmFrb3ZhXCIsXG4gICAgXCJTdHLDocW+bmlja8OhXCIsXG4gICAgXCJTdHLDocW+bnkgZG9tXCIsXG4gICAgXCJTdHJlxI1uaWFuc2thXCIsXG4gICAgXCJTdHJlZG7DoVwiLFxuICAgIFwiU3RyZWxlY2vDoVwiLFxuICAgIFwiU3RybcOhIGNlc3RhXCIsXG4gICAgXCJTdHJvam7DrWNrYVwiLFxuICAgIFwiU3Ryb3Brb3Zza8OhXCIsXG4gICAgXCJTdHJ1a292w6FcIixcbiAgICBcIlN0dWRlbsOhXCIsXG4gICAgXCJTdHVob3bDoVwiLFxuICAgIFwiU8O6YmXFvm7DoVwiLFxuICAgIFwiU8O6aHZlemRuw6FcIixcbiAgICBcIlN1Y2jDqSBtw710b1wiLFxuICAgIFwiU3VjaG9ocmFkc2vDoVwiLFxuICAgIFwiU8O6a2VubsOtY2thXCIsXG4gICAgXCJTw7rEvm92c2vDoVwiLFxuICAgIFwiU3VtYmFsb3ZhXCIsXG4gICAgXCJTw7ptcmHEjW7DoVwiLFxuICAgIFwiU8O6xaVhxb5uw6FcIixcbiAgICBcIlN2w6R0w6lobyBWaW5jZW50YVwiLFxuICAgIFwiU3bDpHRvcGx1a292YVwiLFxuICAgIFwiU3bDpHRvcGx1a292YVwiLFxuICAgIFwiU3bDpHRvdm9qdGXFoXNrw6FcIixcbiAgICBcIlN2ZXRsw6FcIixcbiAgICBcIlN2w61ib3bDoVwiLFxuICAgIFwiU3ZpZG7DrWNrYVwiLFxuICAgIFwiU3ZvcmFkb3ZhXCIsXG4gICAgXCJTdnLEjWlhXCIsXG4gICAgXCJTeXNsaWFcIixcbiAgICBcIsWgYWbDoXJpa292byBuw6FtZXN0aWVcIixcbiAgICBcIsWgYWbDoXJpa292byBuw6FtZXN0aWVcIixcbiAgICBcIsWgYWZyw6Fub3bDoVwiLFxuICAgIFwixaBhZ8OhdG92YVwiLFxuICAgIFwixaBhbHZpb3bDoVwiLFxuICAgIFwixaBhbmNvdsOhXCIsXG4gICAgXCLFoGFuY292w6FcIixcbiAgICBcIsWgYW5jb3bDoVwiLFxuICAgIFwixaBhbmNvdsOhXCIsXG4gICAgXCLFoMOhbmRvcm92YVwiLFxuICAgIFwixaBhcmnFoXNrw6FcIixcbiAgICBcIsWgw6HFoW92c2vDoVwiLFxuICAgIFwixaBhxaF0w61uc2thXCIsXG4gICAgXCLFoGV2xI1lbmtvdmFcIixcbiAgICBcIsWgaW50YXZza8OhXCIsXG4gICAgXCLFoMOtcGtvdsOhXCIsXG4gICAgXCLFoGthcm5pY2xvdmFcIixcbiAgICBcIsWga29sc2vDoVwiLFxuICAgIFwixaBrb3Zyw6FuxI1pYVwiLFxuICAgIFwixaBrdWx0w6l0eWhvXCIsXG4gICAgXCLFoG9sdMOpc292ZWpcIixcbiAgICBcIsWgcGllc3pvdmFcIixcbiAgICBcIsWgcGl0w6Fsc2thXCIsXG4gICAgXCLFoHBvcnRvdsOhXCIsXG4gICAgXCLFoHJvYsOhcm92byBuw6FtZXN0aWVcIixcbiAgICBcIsWgxaVhc3Ruw6FcIixcbiAgICBcIsWgdGVkcsOhXCIsXG4gICAgXCLFoHRlZsOhbmlrb3ZhXCIsXG4gICAgXCLFoHRlZsOhbmlrb3ZhXCIsXG4gICAgXCLFoHRlZsOhbmlrb3ZhXCIsXG4gICAgXCLFoHRlZmFub3ZpxI1vdmFcIixcbiAgICBcIsWgdGVmdW5rb3ZhXCIsXG4gICAgXCLFoHRldGlub3ZhXCIsXG4gICAgXCLFoHRpYXZuaWNrw6FcIixcbiAgICBcIsWgdMO6cm92YVwiLFxuICAgIFwixaB0eW5kbG92YVwiLFxuICAgIFwixaB1bGVrb3ZhXCIsXG4gICAgXCLFoHVsZWtvdmFcIixcbiAgICBcIsWgdWxla292YVwiLFxuICAgIFwixaB1bWF2c2vDoVwiLFxuICAgIFwixaB1xYhhdmNvdmFcIixcbiAgICBcIsWgdXN0ZWtvdmFcIixcbiAgICBcIsWgdmFiaW5za8OpaG9cIixcbiAgICBcIlRhYmFrb3bDoVwiLFxuICAgIFwiVGFibGljb3ZhXCIsXG4gICAgXCJUw6Fib3Jza8OhXCIsXG4gICAgXCJUYWpvdnNrw6lob1wiLFxuICAgIFwiVGFsbGVyb3ZhXCIsXG4gICAgXCJUZWhlbG7DoVwiLFxuICAgIFwiVGVjaG5pY2vDoVwiLFxuICAgIFwiVGVrb3Zza8OhXCIsXG4gICAgXCJUZWxvY3ZpxI1uw6FcIixcbiAgICBcIlRlbWF0w61uc2thXCIsXG4gICAgXCJUZXBsaWNrw6FcIixcbiAgICBcIlRlcmNob3Zza8OhXCIsXG4gICAgXCJUZXNsb3ZhXCIsXG4gICAgXCJUZXRtYXllcm92YVwiLFxuICAgIFwiVGh1cnpvdmFcIixcbiAgICBcIlRpY2jDoVwiLFxuICAgIFwiVGlsZ25lcm92YVwiLFxuICAgIFwiVGltcmF2aW5hXCIsXG4gICAgXCJUb2JydWNrw6FcIixcbiAgICBcIlRva2Fqw61ja2FcIixcbiAgICBcIlRvbHN0w6lob1wiLFxuICAgIFwiVG9tw6Fua292YVwiLFxuICAgIFwiVG9tw6HFoWlrb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvbcOhxaFpa292YVwiLFxuICAgIFwiVG9tw6HFoWlrb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvcG/EvsSNaWFuc2thXCIsXG4gICAgXCJUb3BvxL5vdsOhXCIsXG4gICAgXCJUb3bDoXJlbnNrw6FcIixcbiAgICBcIlRyZWJpxaFvdnNrw6FcIixcbiAgICBcIlRyZWJpxaFvdnNrw6FcIixcbiAgICBcIlRyZWJpxaFvdnNrw6FcIixcbiAgICBcIlRyZW7EjWlhbnNrYVwiLFxuICAgIFwiVHJlc2tvxYhvdmFcIixcbiAgICBcIlRybmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6EgY2VzdGFcIixcbiAgICBcIlRybmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6kgbcO9dG9cIixcbiAgICBcIlTFlcWIb3bDoVwiLFxuICAgIFwiVHJvamRvbXlcIixcbiAgICBcIlR1xI1rb3ZhXCIsXG4gICAgXCJUdXBvbGV2b3ZhXCIsXG4gICAgXCJUdXJiw61ub3ZhXCIsXG4gICAgXCJUdXLEjWlhbnNrYVwiLFxuICAgIFwiVHVybmlhbnNrYVwiLFxuICAgIFwiVHZhcm/FvmtvdmFcIixcbiAgICBcIlR5bG92YVwiLFxuICAgIFwiVHlyxaFvdm8gbsOhYnJlxb5pZVwiLFxuICAgIFwiw5pkZXJuw61ja2FcIixcbiAgICBcIsOaZG9sbsOhXCIsXG4gICAgXCJVaG9ya292w6FcIixcbiAgICBcIlVrcmFqaW5za8OhXCIsXG4gICAgXCJVbGljYSAyOS4gYXVndXN0YVwiLFxuICAgIFwiVWxpY2EgMjkuIGF1Z3VzdGFcIixcbiAgICBcIlVsaWNhIDI5LiBhdWd1c3RhXCIsXG4gICAgXCJVbGljYSAyOS4gYXVndXN0YVwiLFxuICAgIFwiVWxpY2EgSW1yaWNoYSBLYXJ2YcWhXCIsXG4gICAgXCJVbGljYSBKb3plZmEgS3LDs25lcmFcIixcbiAgICBcIlVsaWNhIFZpa3RvcmEgVGVnZWxoXCIsXG4gICAgXCLDmnBya292YVwiLFxuICAgIFwiw5pyYWRuw61ja2FcIixcbiAgICBcIlVyw6Fub3bDoVwiLFxuICAgIFwiVXJiw6Fua292YVwiLFxuICAgIFwiVXJzw61ueWhvXCIsXG4gICAgXCJVcsWhdWzDrW5za2FcIixcbiAgICBcIsOaemthXCIsXG4gICAgXCJWIHrDoWhyYWTDoWNoXCIsXG4gICAgXCJWYWphbnNrw6lobyBuw6FicmXFvmllXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWpub3Jza8OhXCIsXG4gICAgXCJWYWxhxaFza8OhXCIsXG4gICAgXCJWYWxjaMOhcnNrYVwiLFxuICAgIFwiVmFuc292ZWpcIixcbiAgICBcIlbDoXBlbm7DoVwiLFxuICAgIFwiVmFyw61uc2thXCIsXG4gICAgXCJWYXLFoWF2c2vDoVwiLFxuICAgIFwiVmFyxaFhdnNrw6FcIixcbiAgICBcIlZhdmlsb3ZvdmFcIixcbiAgICBcIlZhdnLDrW5vdmFcIixcbiAgICBcIlZhem92b3ZhXCIsXG4gICAgXCJWxI1lbMOhcnNrYVwiLFxuICAgIFwiVmVsZWhyYWRza8OhXCIsXG4gICAgXCJWZWx0bMOtbnNrYVwiLFxuICAgIFwiVmVudMO6cnNrYVwiLFxuICAgIFwiVmV0ZXJuw6FcIixcbiAgICBcIlZldGVybmljb3bDoVwiLFxuICAgIFwiVmV0dm92w6FcIixcbiAgICBcIlZpZWRlbnNrw6EgY2VzdGFcIixcbiAgICBcIlZpZWRlbnNrw6EgY2VzdGFcIixcbiAgICBcIlZpZXRuYW1za8OhXCIsXG4gICAgXCJWw61nxL5hxaFza8OhXCIsXG4gICAgXCJWaWhvcmxhdHNrw6FcIixcbiAgICBcIlZpa3RvcsOtbm92YVwiLFxuICAgIFwiVmlsb3bDoVwiLFxuICAgIFwiVmluY2VudGEgSGxvxb5uw61rYVwiLFxuICAgIFwiVsOtbm5hXCIsXG4gICAgXCJWbGFzdGVuZWNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJWbMSNa292YVwiLFxuICAgIFwiVmzEjWtvdmFcIixcbiAgICBcIlZsxI1rb3ZhXCIsXG4gICAgXCJWb2Ruw70gdnJjaFwiLFxuICAgIFwiVm90cnVib3ZhXCIsXG4gICAgXCJWcsOhYmXEvnNrw6FcIixcbiAgICBcIlZyYWt1bnNrw6EgY2VzdGFcIixcbiAgICBcIlZyYW5vdnNrw6FcIixcbiAgICBcIlZyZXRlbm92w6FcIixcbiAgICBcIlZyY2huw6FcIixcbiAgICBcIlZyw7p0b2Nrw6FcIixcbiAgICBcIlZ5aGxpYWRrYVwiLFxuICAgIFwiVnlobmlhbnNrYSBjZXN0YVwiLFxuICAgIFwiVnlzb2vDoVwiLFxuICAgIFwiVnnFoWVocmFkc2vDoVwiLFxuICAgIFwiVnnFoW7DoVwiLFxuICAgIFwiV2F0dG92YVwiLFxuICAgIFwiV2lsc29ub3ZhXCIsXG4gICAgXCJXb2xrcm92YVwiLFxuICAgIFwiWmEgS2Fzw6FyxYhvdVwiLFxuICAgIFwiWmEgc29rb2xvdsWIb3VcIixcbiAgICBcIlphIFN0YW5pY291XCIsXG4gICAgXCJaYSB0ZWhlbMWIb3VcIixcbiAgICBcIlrDoWJvcnNrw6lob1wiLFxuICAgIFwiWmFkdW5hanNrw6EgY2VzdGFcIixcbiAgICBcIlrDoWhvcsOhY2thXCIsXG4gICAgXCJaw6FocmFkbsOtY2thXCIsXG4gICAgXCJaw6FocmFkbsOtY2thXCIsXG4gICAgXCJaw6FocmFkbsOtY2thXCIsXG4gICAgXCJaw6FocmFkbsOtY2thXCIsXG4gICAgXCJaw6FocmVic2vDoVwiLFxuICAgIFwiWsOhaHJlYnNrw6FcIixcbiAgICBcIlrDoWx1xb5pY2vDoVwiLFxuICAgIFwiWsOhbW9ja8OhXCIsXG4gICAgXCJaw6Ftb2Nrw6kgc2Nob2R5XCIsXG4gICAgXCJaw6Ftb8SNbsOtY2thXCIsXG4gICAgXCJaw6FwYWRuw6FcIixcbiAgICBcIlrDoXBhZG7DvSByYWRcIixcbiAgICBcIlrDoXBvcm/FvnNrw6FcIixcbiAgICBcIlrDoXRpxaFpZVwiLFxuICAgIFwiWsOhdm9kbsOta292YVwiLFxuICAgIFwiWmVsZW7DoVwiLFxuICAgIFwiWmVsaW7DoXJza2FcIixcbiAgICBcIlppbW7DoVwiLFxuICAgIFwiWmxhdMOpIHBpZXNreVwiLFxuICAgIFwiWmxhdMOpIHNjaG9keVwiLFxuICAgIFwiWm5pZXZza2FcIixcbiAgICBcIlpvaG9yc2vDoVwiLFxuICAgIFwiWm9jaG92YVwiLFxuICAgIFwiWnJpbnNrw6lob1wiLFxuICAgIFwiWnZvbGVuc2vDoVwiLFxuICAgIFwixb1hYsOtIG1hamVyXCIsXG4gICAgXCLFvWFib3RvdmFcIixcbiAgICBcIsW9ZWhyaWFuc2thXCIsXG4gICAgXCLFvWVsZXpuw6FcIixcbiAgICBcIsW9ZWxlem5pxI1pYXJza2FcIixcbiAgICBcIsW9ZWxsb3ZhXCIsXG4gICAgXCLFvWlhcnNrYVwiLFxuICAgIFwixb1pZG92c2vDoVwiLFxuICAgIFwixb1pbGluc2vDoVwiLFxuICAgIFwixb1pbGluc2vDoVwiLFxuICAgIFwixb1pdm5vc3RlbnNrw6FcIixcbiAgICBcIsW9acW+a292YVwiLFxuICAgIFwixb11cG7DqSBuw6FtZXN0aWVcIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiU2xvdmVuc2tvXCJcbiAgXVxufTtcbnNrLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcInMuci5vLlwiLFxuICAgIFwiYS5zLlwiLFxuICAgIFwidi5vLnMuXCJcbiAgXSxcbiAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJBZGFwdGl2ZVwiLFxuICAgICAgXCJBZHZhbmNlZFwiLFxuICAgICAgXCJBbWVsaW9yYXRlZFwiLFxuICAgICAgXCJBc3NpbWlsYXRlZFwiLFxuICAgICAgXCJBdXRvbWF0ZWRcIixcbiAgICAgIFwiQmFsYW5jZWRcIixcbiAgICAgIFwiQnVzaW5lc3MtZm9jdXNlZFwiLFxuICAgICAgXCJDZW50cmFsaXplZFwiLFxuICAgICAgXCJDbG9uZWRcIixcbiAgICAgIFwiQ29tcGF0aWJsZVwiLFxuICAgICAgXCJDb25maWd1cmFibGVcIixcbiAgICAgIFwiQ3Jvc3MtZ3JvdXBcIixcbiAgICAgIFwiQ3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiQ3VzdG9tZXItZm9jdXNlZFwiLFxuICAgICAgXCJDdXN0b21pemFibGVcIixcbiAgICAgIFwiRGVjZW50cmFsaXplZFwiLFxuICAgICAgXCJEZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIkRldm9sdmVkXCIsXG4gICAgICBcIkRpZ2l0aXplZFwiLFxuICAgICAgXCJEaXN0cmlidXRlZFwiLFxuICAgICAgXCJEaXZlcnNlXCIsXG4gICAgICBcIkRvd24tc2l6ZWRcIixcbiAgICAgIFwiRW5oYW5jZWRcIixcbiAgICAgIFwiRW50ZXJwcmlzZS13aWRlXCIsXG4gICAgICBcIkVyZ29ub21pY1wiLFxuICAgICAgXCJFeGNsdXNpdmVcIixcbiAgICAgIFwiRXhwYW5kZWRcIixcbiAgICAgIFwiRXh0ZW5kZWRcIixcbiAgICAgIFwiRmFjZSB0byBmYWNlXCIsXG4gICAgICBcIkZvY3VzZWRcIixcbiAgICAgIFwiRnJvbnQtbGluZVwiLFxuICAgICAgXCJGdWxseS1jb25maWd1cmFibGVcIixcbiAgICAgIFwiRnVuY3Rpb24tYmFzZWRcIixcbiAgICAgIFwiRnVuZGFtZW50YWxcIixcbiAgICAgIFwiRnV0dXJlLXByb29mZWRcIixcbiAgICAgIFwiR3Jhc3Mtcm9vdHNcIixcbiAgICAgIFwiSG9yaXpvbnRhbFwiLFxuICAgICAgXCJJbXBsZW1lbnRlZFwiLFxuICAgICAgXCJJbm5vdmF0aXZlXCIsXG4gICAgICBcIkludGVncmF0ZWRcIixcbiAgICAgIFwiSW50dWl0aXZlXCIsXG4gICAgICBcIkludmVyc2VcIixcbiAgICAgIFwiTWFuYWdlZFwiLFxuICAgICAgXCJNYW5kYXRvcnlcIixcbiAgICAgIFwiTW9uaXRvcmVkXCIsXG4gICAgICBcIk11bHRpLWNoYW5uZWxsZWRcIixcbiAgICAgIFwiTXVsdGktbGF0ZXJhbFwiLFxuICAgICAgXCJNdWx0aS1sYXllcmVkXCIsXG4gICAgICBcIk11bHRpLXRpZXJlZFwiLFxuICAgICAgXCJOZXR3b3JrZWRcIixcbiAgICAgIFwiT2JqZWN0LWJhc2VkXCIsXG4gICAgICBcIk9wZW4tYXJjaGl0ZWN0ZWRcIixcbiAgICAgIFwiT3Blbi1zb3VyY2VcIixcbiAgICAgIFwiT3BlcmF0aXZlXCIsXG4gICAgICBcIk9wdGltaXplZFwiLFxuICAgICAgXCJPcHRpb25hbFwiLFxuICAgICAgXCJPcmdhbmljXCIsXG4gICAgICBcIk9yZ2FuaXplZFwiLFxuICAgICAgXCJQZXJzZXZlcmluZ1wiLFxuICAgICAgXCJQZXJzaXN0ZW50XCIsXG4gICAgICBcIlBoYXNlZFwiLFxuICAgICAgXCJQb2xhcmlzZWRcIixcbiAgICAgIFwiUHJlLWVtcHRpdmVcIixcbiAgICAgIFwiUHJvYWN0aXZlXCIsXG4gICAgICBcIlByb2ZpdC1mb2N1c2VkXCIsXG4gICAgICBcIlByb2ZvdW5kXCIsXG4gICAgICBcIlByb2dyYW1tYWJsZVwiLFxuICAgICAgXCJQcm9ncmVzc2l2ZVwiLFxuICAgICAgXCJQdWJsaWMta2V5XCIsXG4gICAgICBcIlF1YWxpdHktZm9jdXNlZFwiLFxuICAgICAgXCJSZWFjdGl2ZVwiLFxuICAgICAgXCJSZWFsaWduZWRcIixcbiAgICAgIFwiUmUtY29udGV4dHVhbGl6ZWRcIixcbiAgICAgIFwiUmUtZW5naW5lZXJlZFwiLFxuICAgICAgXCJSZWR1Y2VkXCIsXG4gICAgICBcIlJldmVyc2UtZW5naW5lZXJlZFwiLFxuICAgICAgXCJSaWdodC1zaXplZFwiLFxuICAgICAgXCJSb2J1c3RcIixcbiAgICAgIFwiU2VhbWxlc3NcIixcbiAgICAgIFwiU2VjdXJlZFwiLFxuICAgICAgXCJTZWxmLWVuYWJsaW5nXCIsXG4gICAgICBcIlNoYXJhYmxlXCIsXG4gICAgICBcIlN0YW5kLWFsb25lXCIsXG4gICAgICBcIlN0cmVhbWxpbmVkXCIsXG4gICAgICBcIlN3aXRjaGFibGVcIixcbiAgICAgIFwiU3luY2hyb25pc2VkXCIsXG4gICAgICBcIlN5bmVyZ2lzdGljXCIsXG4gICAgICBcIlN5bmVyZ2l6ZWRcIixcbiAgICAgIFwiVGVhbS1vcmllbnRlZFwiLFxuICAgICAgXCJUb3RhbFwiLFxuICAgICAgXCJUcmlwbGUtYnVmZmVyZWRcIixcbiAgICAgIFwiVW5pdmVyc2FsXCIsXG4gICAgICBcIlVwLXNpemVkXCIsXG4gICAgICBcIlVwZ3JhZGFibGVcIixcbiAgICAgIFwiVXNlci1jZW50cmljXCIsXG4gICAgICBcIlVzZXItZnJpZW5kbHlcIixcbiAgICAgIFwiVmVyc2F0aWxlXCIsXG4gICAgICBcIlZpcnR1YWxcIixcbiAgICAgIFwiVmlzaW9uYXJ5XCIsXG4gICAgICBcIlZpc2lvbi1vcmllbnRlZFwiXG4gICAgXSxcbiAgICBcImRlc2NyaXB0b3JcIjpcbiAgICBbXG4gICAgICBcIjI0IGhvdXJcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCIzcmQgZ2VuZXJhdGlvblwiLFxuICAgICAgXCI0dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCI1dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCI2dGggZ2VuZXJhdGlvblwiLFxuICAgICAgXCJhY3R1YXRpbmdcIixcbiAgICAgIFwiYW5hbHl6aW5nXCIsXG4gICAgICBcImFzeW1tZXRyaWNcIixcbiAgICAgIFwiYXN5bmNocm9ub3VzXCIsXG4gICAgICBcImF0dGl0dWRlLW9yaWVudGVkXCIsXG4gICAgICBcImJhY2tncm91bmRcIixcbiAgICAgIFwiYmFuZHdpZHRoLW1vbml0b3JlZFwiLFxuICAgICAgXCJiaS1kaXJlY3Rpb25hbFwiLFxuICAgICAgXCJiaWZ1cmNhdGVkXCIsXG4gICAgICBcImJvdHRvbS1saW5lXCIsXG4gICAgICBcImNsZWFyLXRoaW5raW5nXCIsXG4gICAgICBcImNsaWVudC1kcml2ZW5cIixcbiAgICAgIFwiY2xpZW50LXNlcnZlclwiLFxuICAgICAgXCJjb2hlcmVudFwiLFxuICAgICAgXCJjb2hlc2l2ZVwiLFxuICAgICAgXCJjb21wb3NpdGVcIixcbiAgICAgIFwiY29udGV4dC1zZW5zaXRpdmVcIixcbiAgICAgIFwiY29udGV4dHVhbGx5LWJhc2VkXCIsXG4gICAgICBcImNvbnRlbnQtYmFzZWRcIixcbiAgICAgIFwiZGVkaWNhdGVkXCIsXG4gICAgICBcImRlbWFuZC1kcml2ZW5cIixcbiAgICAgIFwiZGlkYWN0aWNcIixcbiAgICAgIFwiZGlyZWN0aW9uYWxcIixcbiAgICAgIFwiZGlzY3JldGVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiZWNvLWNlbnRyaWNcIixcbiAgICAgIFwiZW1wb3dlcmluZ1wiLFxuICAgICAgXCJlbmNvbXBhc3NpbmdcIixcbiAgICAgIFwiZXZlbi1rZWVsZWRcIixcbiAgICAgIFwiZXhlY3V0aXZlXCIsXG4gICAgICBcImV4cGxpY2l0XCIsXG4gICAgICBcImV4dWRpbmdcIixcbiAgICAgIFwiZmF1bHQtdG9sZXJhbnRcIixcbiAgICAgIFwiZm9yZWdyb3VuZFwiLFxuICAgICAgXCJmcmVzaC10aGlua2luZ1wiLFxuICAgICAgXCJmdWxsLXJhbmdlXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJncmlkLWVuYWJsZWRcIixcbiAgICAgIFwiaGV1cmlzdGljXCIsXG4gICAgICBcImhpZ2gtbGV2ZWxcIixcbiAgICAgIFwiaG9saXN0aWNcIixcbiAgICAgIFwiaG9tb2dlbmVvdXNcIixcbiAgICAgIFwiaHVtYW4tcmVzb3VyY2VcIixcbiAgICAgIFwiaHlicmlkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJpbmNyZW1lbnRhbFwiLFxuICAgICAgXCJpbnRhbmdpYmxlXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImludGVybWVkaWF0ZVwiLFxuICAgICAgXCJsZWFkaW5nIGVkZ2VcIixcbiAgICAgIFwibG9jYWxcIixcbiAgICAgIFwibG9naXN0aWNhbFwiLFxuICAgICAgXCJtYXhpbWl6ZWRcIixcbiAgICAgIFwibWV0aG9kaWNhbFwiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcIm1vYmlsZVwiLFxuICAgICAgXCJtb2R1bGFyXCIsXG4gICAgICBcIm1vdGl2YXRpbmdcIixcbiAgICAgIFwibXVsdGltZWRpYVwiLFxuICAgICAgXCJtdWx0aS1zdGF0ZVwiLFxuICAgICAgXCJtdWx0aS10YXNraW5nXCIsXG4gICAgICBcIm5hdGlvbmFsXCIsXG4gICAgICBcIm5lZWRzLWJhc2VkXCIsXG4gICAgICBcIm5ldXRyYWxcIixcbiAgICAgIFwibmV4dCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIm5vbi12b2xhdGlsZVwiLFxuICAgICAgXCJvYmplY3Qtb3JpZW50ZWRcIixcbiAgICAgIFwib3B0aW1hbFwiLFxuICAgICAgXCJvcHRpbWl6aW5nXCIsXG4gICAgICBcInJhZGljYWxcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcInJlY2lwcm9jYWxcIixcbiAgICAgIFwicmVnaW9uYWxcIixcbiAgICAgIFwicmVzcG9uc2l2ZVwiLFxuICAgICAgXCJzY2FsYWJsZVwiLFxuICAgICAgXCJzZWNvbmRhcnlcIixcbiAgICAgIFwic29sdXRpb24tb3JpZW50ZWRcIixcbiAgICAgIFwic3RhYmxlXCIsXG4gICAgICBcInN0YXRpY1wiLFxuICAgICAgXCJzeXN0ZW1hdGljXCIsXG4gICAgICBcInN5c3RlbWljXCIsXG4gICAgICBcInN5c3RlbS13b3J0aHlcIixcbiAgICAgIFwidGFuZ2libGVcIixcbiAgICAgIFwidGVydGlhcnlcIixcbiAgICAgIFwidHJhbnNpdGlvbmFsXCIsXG4gICAgICBcInVuaWZvcm1cIixcbiAgICAgIFwidXB3YXJkLXRyZW5kaW5nXCIsXG4gICAgICBcInVzZXItZmFjaW5nXCIsXG4gICAgICBcInZhbHVlLWFkZGVkXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcIndlbGwtbW9kdWxhdGVkXCIsXG4gICAgICBcInplcm8gYWRtaW5pc3RyYXRpb25cIixcbiAgICAgIFwiemVybyBkZWZlY3RcIixcbiAgICAgIFwiemVybyB0b2xlcmFuY2VcIlxuICAgIF0sXG4gICAgXCJub3VuXCI6XG4gICAgW1xuICAgICAgXCJhYmlsaXR5XCIsXG4gICAgICBcImFjY2Vzc1wiLFxuICAgICAgXCJhZGFwdGVyXCIsXG4gICAgICBcImFsZ29yaXRobVwiLFxuICAgICAgXCJhbGxpYW5jZVwiLFxuICAgICAgXCJhbmFseXplclwiLFxuICAgICAgXCJhcHBsaWNhdGlvblwiLFxuICAgICAgXCJhcHByb2FjaFwiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVcIixcbiAgICAgIFwiYXJjaGl2ZVwiLFxuICAgICAgXCJhcnRpZmljaWFsIGludGVsbGlnZW5jZVwiLFxuICAgICAgXCJhcnJheVwiLFxuICAgICAgXCJhdHRpdHVkZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiYnVkZ2V0YXJ5IG1hbmFnZW1lbnRcIixcbiAgICAgIFwiY2FwYWJpbGl0eVwiLFxuICAgICAgXCJjYXBhY2l0eVwiLFxuICAgICAgXCJjaGFsbGVuZ2VcIixcbiAgICAgIFwiY2lyY3VpdFwiLFxuICAgICAgXCJjb2xsYWJvcmF0aW9uXCIsXG4gICAgICBcImNvbXBsZXhpdHlcIixcbiAgICAgIFwiY29uY2VwdFwiLFxuICAgICAgXCJjb25nbG9tZXJhdGlvblwiLFxuICAgICAgXCJjb250aW5nZW5jeVwiLFxuICAgICAgXCJjb3JlXCIsXG4gICAgICBcImN1c3RvbWVyIGxveWFsdHlcIixcbiAgICAgIFwiZGF0YWJhc2VcIixcbiAgICAgIFwiZGF0YS13YXJlaG91c2VcIixcbiAgICAgIFwiZGVmaW5pdGlvblwiLFxuICAgICAgXCJlbXVsYXRpb25cIixcbiAgICAgIFwiZW5jb2RpbmdcIixcbiAgICAgIFwiZW5jcnlwdGlvblwiLFxuICAgICAgXCJleHRyYW5ldFwiLFxuICAgICAgXCJmaXJtd2FyZVwiLFxuICAgICAgXCJmbGV4aWJpbGl0eVwiLFxuICAgICAgXCJmb2N1cyBncm91cFwiLFxuICAgICAgXCJmb3JlY2FzdFwiLFxuICAgICAgXCJmcmFtZVwiLFxuICAgICAgXCJmcmFtZXdvcmtcIixcbiAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcIkdyYXBoaWMgSW50ZXJmYWNlXCIsXG4gICAgICBcImdyb3Vwd2FyZVwiLFxuICAgICAgXCJHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VcIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiaGVscC1kZXNrXCIsXG4gICAgICBcImhpZXJhcmNoeVwiLFxuICAgICAgXCJodWJcIixcbiAgICAgIFwiaW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiaW5mby1tZWRpYXJpZXNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiaW5pdGlhdGl2ZVwiLFxuICAgICAgXCJpbnN0YWxsYXRpb25cIixcbiAgICAgIFwiaW5zdHJ1Y3Rpb24gc2V0XCIsXG4gICAgICBcImludGVyZmFjZVwiLFxuICAgICAgXCJpbnRlcm5ldCBzb2x1dGlvblwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJrbm93bGVkZ2UgdXNlclwiLFxuICAgICAgXCJrbm93bGVkZ2UgYmFzZVwiLFxuICAgICAgXCJsb2NhbCBhcmVhIG5ldHdvcmtcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwibWF0cmljZXNcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcIm1ldGhvZG9sb2d5XCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmF0aW9uXCIsXG4gICAgICBcIm1vZGVsXCIsXG4gICAgICBcIm1vZGVyYXRvclwiLFxuICAgICAgXCJtb25pdG9yaW5nXCIsXG4gICAgICBcIm1vcmF0b3JpdW1cIixcbiAgICAgIFwibmV1cmFsLW5ldFwiLFxuICAgICAgXCJvcGVuIGFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJvcGVuIHN5c3RlbVwiLFxuICAgICAgXCJvcmNoZXN0cmF0aW9uXCIsXG4gICAgICBcInBhcmFkaWdtXCIsXG4gICAgICBcInBhcmFsbGVsaXNtXCIsXG4gICAgICBcInBvbGljeVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwicHJpY2luZyBzdHJ1Y3R1cmVcIixcbiAgICAgIFwicHJvY2VzcyBpbXByb3ZlbWVudFwiLFxuICAgICAgXCJwcm9kdWN0XCIsXG4gICAgICBcInByb2R1Y3Rpdml0eVwiLFxuICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICBcInByb2plY3Rpb25cIixcbiAgICAgIFwicHJvdG9jb2xcIixcbiAgICAgIFwic2VjdXJlZCBsaW5lXCIsXG4gICAgICBcInNlcnZpY2UtZGVza1wiLFxuICAgICAgXCJzb2Z0d2FyZVwiLFxuICAgICAgXCJzb2x1dGlvblwiLFxuICAgICAgXCJzdGFuZGFyZGl6YXRpb25cIixcbiAgICAgIFwic3RyYXRlZ3lcIixcbiAgICAgIFwic3RydWN0dXJlXCIsXG4gICAgICBcInN1Y2Nlc3NcIixcbiAgICAgIFwic3VwZXJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VwcG9ydFwiLFxuICAgICAgXCJzeW5lcmd5XCIsXG4gICAgICBcInN5c3RlbSBlbmdpbmVcIixcbiAgICAgIFwidGFzay1mb3JjZVwiLFxuICAgICAgXCJ0aHJvdWdocHV0XCIsXG4gICAgICBcInRpbWUtZnJhbWVcIixcbiAgICAgIFwidG9vbHNldFwiLFxuICAgICAgXCJ1dGlsaXNhdGlvblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcIndvcmtmb3JjZVwiXG4gIF0sXG4gIFwiYnNfdmVyYlwiOiBbXG4gICAgICBcImltcGxlbWVudFwiLFxuICAgICAgXCJ1dGlsaXplXCIsXG4gICAgICBcImludGVncmF0ZVwiLFxuICAgICAgXCJzdHJlYW1saW5lXCIsXG4gICAgICBcIm9wdGltaXplXCIsXG4gICAgICBcImV2b2x2ZVwiLFxuICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgIFwiZW1icmFjZVwiLFxuICAgICAgXCJlbmFibGVcIixcbiAgICAgIFwib3JjaGVzdHJhdGVcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwicmVpbnZlbnRcIixcbiAgICAgIFwiYWdncmVnYXRlXCIsXG4gICAgICBcImFyY2hpdGVjdFwiLFxuICAgICAgXCJlbmhhbmNlXCIsXG4gICAgICBcImluY2VudGl2aXplXCIsXG4gICAgICBcIm1vcnBoXCIsXG4gICAgICBcImVtcG93ZXJcIixcbiAgICAgIFwiZW52aXNpb25lZXJcIixcbiAgICAgIFwibW9uZXRpemVcIixcbiAgICAgIFwiaGFybmVzc1wiLFxuICAgICAgXCJmYWNpbGl0YXRlXCIsXG4gICAgICBcInNlaXplXCIsXG4gICAgICBcImRpc2ludGVybWVkaWF0ZVwiLFxuICAgICAgXCJzeW5lcmdpemVcIixcbiAgICAgIFwic3RyYXRlZ2l6ZVwiLFxuICAgICAgXCJkZXBsb3lcIixcbiAgICAgIFwiYnJhbmRcIixcbiAgICAgIFwiZ3Jvd1wiLFxuICAgICAgXCJ0YXJnZXRcIixcbiAgICAgIFwic3luZGljYXRlXCIsXG4gICAgICBcInN5bnRoZXNpemVcIixcbiAgICAgIFwiZGVsaXZlclwiLFxuICAgICAgXCJtZXNoXCIsXG4gICAgICBcImluY3ViYXRlXCIsXG4gICAgICBcImVuZ2FnZVwiLFxuICAgICAgXCJtYXhpbWl6ZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiZXhwZWRpdGVcIixcbiAgICAgIFwicmVpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwid2hpdGVib2FyZFwiLFxuICAgICAgXCJ2aXN1YWxpemVcIixcbiAgICAgIFwicmVwdXJwb3NlXCIsXG4gICAgICBcImlubm92YXRlXCIsXG4gICAgICBcInNjYWxlXCIsXG4gICAgICBcInVubGVhc2hcIixcbiAgICAgIFwiZHJpdmVcIixcbiAgICAgIFwiZXh0ZW5kXCIsXG4gICAgICBcImVuZ2luZWVyXCIsXG4gICAgICBcInJldm9sdXRpb25pemVcIixcbiAgICAgIFwiZ2VuZXJhdGVcIixcbiAgICAgIFwiZXhwbG9pdFwiLFxuICAgICAgXCJ0cmFuc2l0aW9uXCIsXG4gICAgICBcImUtZW5hYmxlXCIsXG4gICAgICBcIml0ZXJhdGVcIixcbiAgICAgIFwiY3VsdGl2YXRlXCIsXG4gICAgICBcIm1hdHJpeFwiLFxuICAgICAgXCJwcm9kdWN0aXplXCIsXG4gICAgICBcInJlZGVmaW5lXCIsXG4gICAgICBcInJlY29udGV4dHVhbGl6ZVwiXG4gICAgXSxcbiAgICBcImJzX25vdW5cIjogW1xuICAgICAgXCJjbGlja3MtYW5kLW1vcnRhclwiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ2ZXJ0aWNhbFwiLFxuICAgICAgXCJwcm9hY3RpdmVcIixcbiAgICAgIFwicm9idXN0XCIsXG4gICAgICBcInJldm9sdXRpb25hcnlcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwibGVhZGluZy1lZGdlXCIsXG4gICAgICBcImlubm92YXRpdmVcIixcbiAgICAgIFwiaW50dWl0aXZlXCIsXG4gICAgICBcInN0cmF0ZWdpY1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwic3RpY2t5XCIsXG4gICAgICBcIm9uZS10by1vbmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJlbmQtdG8tZW5kXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyXCIsXG4gICAgICBcImZyaWN0aW9ubGVzc1wiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZpcmFsXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiMjQvMzY1XCIsXG4gICAgICBcImJlc3Qtb2YtYnJlZWRcIixcbiAgICAgIFwia2lsbGVyXCIsXG4gICAgICBcIm1hZ25ldGljXCIsXG4gICAgICBcImJsZWVkaW5nLWVkZ2VcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiZG90LWNvbVwiLFxuICAgICAgXCJzZXh5XCIsXG4gICAgICBcImJhY2stZW5kXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJlZmZpY2llbnRcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGVkXCIsXG4gICAgICBcInNlYW1sZXNzXCIsXG4gICAgICBcImV4dGVuc2libGVcIixcbiAgICAgIFwidHVybi1rZXlcIixcbiAgICAgIFwid29ybGQtY2xhc3NcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiY3Jvc3MtbWVkaWFcIixcbiAgICAgIFwic3luZXJnaXN0aWNcIixcbiAgICAgIFwiYnJpY2tzLWFuZC1jbGlja3NcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInVzZXItY2VudHJpY1wiLFxuICAgICAgXCJ2aXNpb25hcnlcIixcbiAgICAgIFwiY3VzdG9taXplZFwiLFxuICAgICAgXCJ1YmlxdWl0b3VzXCIsXG4gICAgICBcInBsdWctYW5kLXBsYXlcIixcbiAgICAgIFwiY29sbGFib3JhdGl2ZVwiLFxuICAgICAgXCJjb21wZWxsaW5nXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcInJpY2hcIixcbiAgICAgIFwic3luZXJnaWVzXCIsXG4gICAgICBcIndlYi1yZWFkaW5lc3NcIixcbiAgICAgIFwicGFyYWRpZ21zXCIsXG4gICAgICBcIm1hcmtldHNcIixcbiAgICAgIFwicGFydG5lcnNoaXBzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlc1wiLFxuICAgICAgXCJwbGF0Zm9ybXNcIixcbiAgICAgIFwiaW5pdGlhdGl2ZXNcIixcbiAgICAgIFwiY2hhbm5lbHNcIixcbiAgICAgIFwiZXllYmFsbHNcIixcbiAgICAgIFwiY29tbXVuaXRpZXNcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV0aW9uc1wiLFxuICAgICAgXCJlLXRhaWxlcnNcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJhY3Rpb24taXRlbXNcIixcbiAgICAgIFwicG9ydGFsc1wiLFxuICAgICAgXCJuaWNoZXNcIixcbiAgICAgIFwidGVjaG5vbG9naWVzXCIsXG4gICAgICBcImNvbnRlbnRcIixcbiAgICAgIFwidm9ydGFsc1wiLFxuICAgICAgXCJzdXBwbHktY2hhaW5zXCIsXG4gICAgICBcImNvbnZlcmdlbmNlXCIsXG4gICAgICBcInJlbGF0aW9uc2hpcHNcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlc1wiLFxuICAgICAgXCJpbnRlcmZhY2VzXCIsXG4gICAgICBcImUtbWFya2V0c1wiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInN5c3RlbXNcIixcbiAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICBcImluZm9tZWRpYXJpZXNcIixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm1pbmRzaGFyZVwiLFxuICAgICAgXCJkZWxpdmVyYWJsZXNcIixcbiAgICAgIFwidXNlcnNcIixcbiAgICAgIFwic2NoZW1hc1wiLFxuICAgICAgXCJuZXR3b3Jrc1wiLFxuICAgICAgXCJhcHBsaWNhdGlvbnNcIixcbiAgICAgIFwibWV0cmljc1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJleHBlcmllbmNlc1wiLFxuICAgICAgXCJ3ZWIgc2VydmljZXNcIixcbiAgICAgIFwibWV0aG9kb2xvZ2llc1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLm1hbl9sYXN0X25hbWV9IGEgI3tOYW1lLm1hbl9sYXN0X25hbWV9ICN7c3VmZml4fVwiXG4gIF1cbn07XG5zay5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwiem96bmFtLnNrXCIsXG4gICAgXCJhemV0LnNrXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcInNrXCIsXG4gICAgXCJjb21cIixcbiAgICBcIm5ldFwiLFxuICAgIFwiZXVcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5zay5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdLFxuICBcInN1cHBsZW1lbnRhbFwiOiBbXG4gICAgXCJhYmJhc1wiLFxuICAgIFwiYWJkdWNvXCIsXG4gICAgXCJhYmVvXCIsXG4gICAgXCJhYnNjaWRvXCIsXG4gICAgXCJhYnNjb25kaXR1c1wiLFxuICAgIFwiYWJzZW5zXCIsXG4gICAgXCJhYnNvcmJlb1wiLFxuICAgIFwiYWJzcXVlXCIsXG4gICAgXCJhYnN0ZXJnb1wiLFxuICAgIFwiYWJzdW1cIixcbiAgICBcImFidW5kYW5zXCIsXG4gICAgXCJhYnV0b3JcIixcbiAgICBcImFjY2Vkb1wiLFxuICAgIFwiYWNjZW5kb1wiLFxuICAgIFwiYWNjZXB0dXNcIixcbiAgICBcImFjY2lwaW9cIixcbiAgICBcImFjY29tbW9kb1wiLFxuICAgIFwiYWNjdXNhdG9yXCIsXG4gICAgXCJhY2VyXCIsXG4gICAgXCJhY2VyYml0YXNcIixcbiAgICBcImFjZXJ2dXNcIixcbiAgICBcImFjaWR1c1wiLFxuICAgIFwiYWNpZXNcIixcbiAgICBcImFjcXVpcm9cIixcbiAgICBcImFjc2lcIixcbiAgICBcImFkYW1vXCIsXG4gICAgXCJhZGF1Z2VvXCIsXG4gICAgXCJhZGRvXCIsXG4gICAgXCJhZGR1Y29cIixcbiAgICBcImFkZW1wdGlvXCIsXG4gICAgXCJhZGVvXCIsXG4gICAgXCJhZGVwdGlvXCIsXG4gICAgXCJhZGZlY3R1c1wiLFxuICAgIFwiYWRmZXJvXCIsXG4gICAgXCJhZGZpY2lvXCIsXG4gICAgXCJhZGZsaWN0b1wiLFxuICAgIFwiYWRoYWVyb1wiLFxuICAgIFwiYWRodWNcIixcbiAgICBcImFkaWNpb1wiLFxuICAgIFwiYWRpbXBsZW9cIixcbiAgICBcImFkaW52ZW50aXRpYXNcIixcbiAgICBcImFkaXBpc2NvclwiLFxuICAgIFwiYWRpdXZvXCIsXG4gICAgXCJhZG1pbmlzdHJhdGlvXCIsXG4gICAgXCJhZG1pcmF0aW9cIixcbiAgICBcImFkbWl0dG9cIixcbiAgICBcImFkbW9uZW9cIixcbiAgICBcImFkbW92ZW9cIixcbiAgICBcImFkbnVvXCIsXG4gICAgXCJhZG9wdG9cIixcbiAgICBcImFkc2lkdWVcIixcbiAgICBcImFkc3RyaW5nb1wiLFxuICAgIFwiYWRzdWVzY29cIixcbiAgICBcImFkc3VtXCIsXG4gICAgXCJhZHVsYXRpb1wiLFxuICAgIFwiYWR1bGVzY2Vuc1wiLFxuICAgIFwiYWR1bHR1c1wiLFxuICAgIFwiYWR1cm9cIixcbiAgICBcImFkdmVuaW9cIixcbiAgICBcImFkdmVyc3VzXCIsXG4gICAgXCJhZHZvY29cIixcbiAgICBcImFlZGlmaWNpdW1cIixcbiAgICBcImFlZ2VyXCIsXG4gICAgXCJhZWdyZVwiLFxuICAgIFwiYWVncm90YXRpb1wiLFxuICAgIFwiYWVncnVzXCIsXG4gICAgXCJhZW5ldXNcIixcbiAgICBcImFlcXVpdGFzXCIsXG4gICAgXCJhZXF1dXNcIixcbiAgICBcImFlclwiLFxuICAgIFwiYWVzdGFzXCIsXG4gICAgXCJhZXN0aXZ1c1wiLFxuICAgIFwiYWVzdHVzXCIsXG4gICAgXCJhZXRhc1wiLFxuICAgIFwiYWV0ZXJudXNcIixcbiAgICBcImFnZXJcIixcbiAgICBcImFnZ2Vyb1wiLFxuICAgIFwiYWdncmVkaW9yXCIsXG4gICAgXCJhZ25pdGlvXCIsXG4gICAgXCJhZ25vc2NvXCIsXG4gICAgXCJhZ29cIixcbiAgICBcImFpdFwiLFxuICAgIFwiYWl1bnRcIixcbiAgICBcImFsaWVudXNcIixcbiAgICBcImFsaWlcIixcbiAgICBcImFsaW9xdWlcIixcbiAgICBcImFsaXF1YVwiLFxuICAgIFwiYWxpdXNcIixcbiAgICBcImFsbGF0dXNcIixcbiAgICBcImFsb1wiLFxuICAgIFwiYWx0ZXJcIixcbiAgICBcImFsdHVzXCIsXG4gICAgXCJhbHZldXNcIixcbiAgICBcImFtYXJpdHVkb1wiLFxuICAgIFwiYW1iaXR1c1wiLFxuICAgIFwiYW1idWxvXCIsXG4gICAgXCJhbWljaXRpYVwiLFxuICAgIFwiYW1pY3VsdW1cIixcbiAgICBcImFtaXNzaW9cIixcbiAgICBcImFtaXRhXCIsXG4gICAgXCJhbWl0dG9cIixcbiAgICBcImFtb1wiLFxuICAgIFwiYW1vclwiLFxuICAgIFwiYW1vdmVvXCIsXG4gICAgXCJhbXBsZXh1c1wiLFxuICAgIFwiYW1wbGl0dWRvXCIsXG4gICAgXCJhbXBsdXNcIixcbiAgICBcImFuY2lsbGFcIixcbiAgICBcImFuZ2VsdXNcIixcbiAgICBcImFuZ3VsdXNcIixcbiAgICBcImFuZ3VzdHVzXCIsXG4gICAgXCJhbmltYWR2ZXJ0b1wiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImFuaW11c1wiLFxuICAgIFwiYW5udXNcIixcbiAgICBcImFuc2VyXCIsXG4gICAgXCJhbnRlXCIsXG4gICAgXCJhbnRlYVwiLFxuICAgIFwiYW50ZXBvbm9cIixcbiAgICBcImFudGlxdXVzXCIsXG4gICAgXCJhcGVyaW9cIixcbiAgICBcImFwZXJ0ZVwiLFxuICAgIFwiYXBvc3RvbHVzXCIsXG4gICAgXCJhcHBhcmF0dXNcIixcbiAgICBcImFwcGVsbG9cIixcbiAgICBcImFwcG9ub1wiLFxuICAgIFwiYXBwb3NpdHVzXCIsXG4gICAgXCJhcHByb2JvXCIsXG4gICAgXCJhcHRvXCIsXG4gICAgXCJhcHR1c1wiLFxuICAgIFwiYXB1ZFwiLFxuICAgIFwiYXF1YVwiLFxuICAgIFwiYXJhXCIsXG4gICAgXCJhcmFuZWFcIixcbiAgICBcImFyYml0cm9cIixcbiAgICBcImFyYm9yXCIsXG4gICAgXCJhcmJ1c3R1bVwiLFxuICAgIFwiYXJjYVwiLFxuICAgIFwiYXJjZW9cIixcbiAgICBcImFyY2Vzc29cIixcbiAgICBcImFyY3VzXCIsXG4gICAgXCJhcmdlbnR1bVwiLFxuICAgIFwiYXJndW1lbnR1bVwiLFxuICAgIFwiYXJndW9cIixcbiAgICBcImFybWFcIixcbiAgICBcImFybWFyaXVtXCIsXG4gICAgXCJhcm1vXCIsXG4gICAgXCJhcm9cIixcbiAgICBcImFyc1wiLFxuICAgIFwiYXJ0aWN1bHVzXCIsXG4gICAgXCJhcnRpZmljaW9zZVwiLFxuICAgIFwiYXJ0b1wiLFxuICAgIFwiYXJ4XCIsXG4gICAgXCJhc2Npc2NvXCIsXG4gICAgXCJhc2NpdFwiLFxuICAgIFwiYXNwZXJcIixcbiAgICBcImFzcGljaW9cIixcbiAgICBcImFzcG9ydG9cIixcbiAgICBcImFzc2VudGF0b3JcIixcbiAgICBcImFzdHJ1bVwiLFxuICAgIFwiYXRhdnVzXCIsXG4gICAgXCJhdGVyXCIsXG4gICAgXCJhdHF1aVwiLFxuICAgIFwiYXRyb2NpdGFzXCIsXG4gICAgXCJhdHJveFwiLFxuICAgIFwiYXR0ZXJvXCIsXG4gICAgXCJhdHRvbGxvXCIsXG4gICAgXCJhdHRvbmJpdHVzXCIsXG4gICAgXCJhdWN0b3JcIixcbiAgICBcImF1Y3R1c1wiLFxuICAgIFwiYXVkYWNpYVwiLFxuICAgIFwiYXVkYXhcIixcbiAgICBcImF1ZGVudGlhXCIsXG4gICAgXCJhdWRlb1wiLFxuICAgIFwiYXVkaW9cIixcbiAgICBcImF1ZGl0b3JcIixcbiAgICBcImF1ZmVyb1wiLFxuICAgIFwiYXVyZXVzXCIsXG4gICAgXCJhdXJpc1wiLFxuICAgIFwiYXVydW1cIixcbiAgICBcImF1dFwiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcImF1dHVzXCIsXG4gICAgXCJhdXhpbGl1bVwiLFxuICAgIFwiYXZhcml0aWFcIixcbiAgICBcImF2YXJ1c1wiLFxuICAgIFwiYXZlaG9cIixcbiAgICBcImF2ZXJ0b1wiLFxuICAgIFwiYXZvY29cIixcbiAgICBcImJhaXVsdXNcIixcbiAgICBcImJhbGJ1c1wiLFxuICAgIFwiYmFyYmFcIixcbiAgICBcImJhcmR1c1wiLFxuICAgIFwiYmFzaXVtXCIsXG4gICAgXCJiZWF0dXNcIixcbiAgICBcImJlbGxpY3VzXCIsXG4gICAgXCJiZWxsdW1cIixcbiAgICBcImJlbmVcIixcbiAgICBcImJlbmVmaWNpdW1cIixcbiAgICBcImJlbmV2b2xlbnRpYVwiLFxuICAgIFwiYmVuaWduZVwiLFxuICAgIFwiYmVzdGlhXCIsXG4gICAgXCJiaWJvXCIsXG4gICAgXCJiaXNcIixcbiAgICBcImJsYW5kaW9yXCIsXG4gICAgXCJib251c1wiLFxuICAgIFwiYm9zXCIsXG4gICAgXCJicmV2aXNcIixcbiAgICBcImNhZG9cIixcbiAgICBcImNhZWN1c1wiLFxuICAgIFwiY2FlbGVzdGlzXCIsXG4gICAgXCJjYWVsdW1cIixcbiAgICBcImNhbGFtaXRhc1wiLFxuICAgIFwiY2FsY2FyXCIsXG4gICAgXCJjYWxjb1wiLFxuICAgIFwiY2FsY3VsdXNcIixcbiAgICBcImNhbGxpZGVcIixcbiAgICBcImNhbXBhbmFcIixcbiAgICBcImNhbmRpZHVzXCIsXG4gICAgXCJjYW5pc1wiLFxuICAgIFwiY2Fub25pY3VzXCIsXG4gICAgXCJjYW50b1wiLFxuICAgIFwiY2FwaWxsdXNcIixcbiAgICBcImNhcGlvXCIsXG4gICAgXCJjYXBpdHVsdXNcIixcbiAgICBcImNhcHRvXCIsXG4gICAgXCJjYXB1dFwiLFxuICAgIFwiY2FyYm9cIixcbiAgICBcImNhcmNlclwiLFxuICAgIFwiY2FyZW9cIixcbiAgICBcImNhcmllc1wiLFxuICAgIFwiY2FyaW9zdXNcIixcbiAgICBcImNhcml0YXNcIixcbiAgICBcImNhcm1lblwiLFxuICAgIFwiY2FycG9cIixcbiAgICBcImNhcnVzXCIsXG4gICAgXCJjYXNzb1wiLFxuICAgIFwiY2FzdGVcIixcbiAgICBcImNhc3VzXCIsXG4gICAgXCJjYXRlbmFcIixcbiAgICBcImNhdGVydmFcIixcbiAgICBcImNhdHR1c1wiLFxuICAgIFwiY2F1ZGFcIixcbiAgICBcImNhdXNhXCIsXG4gICAgXCJjYXV0ZVwiLFxuICAgIFwiY2F2ZW9cIixcbiAgICBcImNhdnVzXCIsXG4gICAgXCJjZWRvXCIsXG4gICAgXCJjZWxlYnJlclwiLFxuICAgIFwiY2VsZXJcIixcbiAgICBcImNlbG9cIixcbiAgICBcImNlbmFcIixcbiAgICBcImNlbmFjdWx1bVwiLFxuICAgIFwiY2Vub1wiLFxuICAgIFwiY2Vuc3VyYVwiLFxuICAgIFwiY2VudHVtXCIsXG4gICAgXCJjZXJub1wiLFxuICAgIFwiY2VybnV1c1wiLFxuICAgIFwiY2VydGVcIixcbiAgICBcImNlcnRvXCIsXG4gICAgXCJjZXJ0dXNcIixcbiAgICBcImNlcnZ1c1wiLFxuICAgIFwiY2V0ZXJhXCIsXG4gICAgXCJjaGFyaXNtYVwiLFxuICAgIFwiY2hpcm9ncmFwaHVtXCIsXG4gICAgXCJjaWJvXCIsXG4gICAgXCJjaWJ1c1wiLFxuICAgIFwiY2ljdXRhXCIsXG4gICAgXCJjaWxpY2l1bVwiLFxuICAgIFwiY2ltZW50YXJpdXNcIixcbiAgICBcImNpbWluYXRpb1wiLFxuICAgIFwiY2luaXNcIixcbiAgICBcImNpcmN1bXZlbmlvXCIsXG4gICAgXCJjaXRvXCIsXG4gICAgXCJjaXZpc1wiLFxuICAgIFwiY2l2aXRhc1wiLFxuICAgIFwiY2xhbVwiLFxuICAgIFwiY2xhbW9cIixcbiAgICBcImNsYXJvXCIsXG4gICAgXCJjbGFydXNcIixcbiAgICBcImNsYXVkZW9cIixcbiAgICBcImNsYXVzdHJ1bVwiLFxuICAgIFwiY2xlbWVudGlhXCIsXG4gICAgXCJjbGliYW51c1wiLFxuICAgIFwiY29hZHVuYXRpb1wiLFxuICAgIFwiY29hZWdyZXNjb1wiLFxuICAgIFwiY29lcGlcIixcbiAgICBcImNvZXJjZW9cIixcbiAgICBcImNvZ2l0b1wiLFxuICAgIFwiY29nbmF0dXNcIixcbiAgICBcImNvZ25vbWVuXCIsXG4gICAgXCJjb2dvXCIsXG4gICAgXCJjb2hhZXJvXCIsXG4gICAgXCJjb2hpYmVvXCIsXG4gICAgXCJjb2hvcnNcIixcbiAgICBcImNvbGxpZ29cIixcbiAgICBcImNvbGxvY29cIixcbiAgICBcImNvbGx1bVwiLFxuICAgIFwiY29sb1wiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbWFcIixcbiAgICBcImNvbWJpYm9cIixcbiAgICBcImNvbWJ1cm9cIixcbiAgICBcImNvbWVkb1wiLFxuICAgIFwiY29tZXNcIixcbiAgICBcImNvbWV0ZXNcIixcbiAgICBcImNvbWlzXCIsXG4gICAgXCJjb21pdGF0dXNcIixcbiAgICBcImNvbW1lbW9yb1wiLFxuICAgIFwiY29tbWlub3JcIixcbiAgICBcImNvbW1vZG9cIixcbiAgICBcImNvbW11bmlzXCIsXG4gICAgXCJjb21wYXJvXCIsXG4gICAgXCJjb21wZWxsb1wiLFxuICAgIFwiY29tcGxlY3R1c1wiLFxuICAgIFwiY29tcG9ub1wiLFxuICAgIFwiY29tcHJlaGVuZG9cIixcbiAgICBcImNvbXB0dXNcIixcbiAgICBcImNvbmF0dXNcIixcbiAgICBcImNvbmNlZG9cIixcbiAgICBcImNvbmNpZG9cIixcbiAgICBcImNvbmN1bGNvXCIsXG4gICAgXCJjb25kaWNvXCIsXG4gICAgXCJjb25kdWNvXCIsXG4gICAgXCJjb25mZXJvXCIsXG4gICAgXCJjb25maWRvXCIsXG4gICAgXCJjb25mb3J0b1wiLFxuICAgIFwiY29uZnVnb1wiLFxuICAgIFwiY29uZ3JlZ2F0aW9cIixcbiAgICBcImNvbmljaW9cIixcbiAgICBcImNvbmllY3RvXCIsXG4gICAgXCJjb25pdG9yXCIsXG4gICAgXCJjb25pdXJhdGlvXCIsXG4gICAgXCJjb25vclwiLFxuICAgIFwiY29ucXVlcm9yXCIsXG4gICAgXCJjb25zY2VuZG9cIixcbiAgICBcImNvbnNlcnZvXCIsXG4gICAgXCJjb25zaWRlcm9cIixcbiAgICBcImNvbnNwZXJnb1wiLFxuICAgIFwiY29uc3RhbnNcIixcbiAgICBcImNvbnN1YXNvclwiLFxuICAgIFwiY29udGFiZXNjb1wiLFxuICAgIFwiY29udGVnb1wiLFxuICAgIFwiY29udGlnb1wiLFxuICAgIFwiY29udHJhXCIsXG4gICAgXCJjb250dXJib1wiLFxuICAgIFwiY29udmVudHVzXCIsXG4gICAgXCJjb252b2NvXCIsXG4gICAgXCJjb3BpYVwiLFxuICAgIFwiY29waW9zZVwiLFxuICAgIFwiY29ybnVcIixcbiAgICBcImNvcm9uYVwiLFxuICAgIFwiY29ycHVzXCIsXG4gICAgXCJjb3JyZXB0aXVzXCIsXG4gICAgXCJjb3JyaWdvXCIsXG4gICAgXCJjb3Jyb2Jvcm9cIixcbiAgICBcImNvcnJ1bXBvXCIsXG4gICAgXCJjb3J1c2N1c1wiLFxuICAgIFwiY290aWRpZVwiLFxuICAgIFwiY3JhcHVsYVwiLFxuICAgIFwiY3Jhc1wiLFxuICAgIFwiY3Jhc3RpbnVzXCIsXG4gICAgXCJjcmVhdG9yXCIsXG4gICAgXCJjcmViZXJcIixcbiAgICBcImNyZWJyb1wiLFxuICAgIFwiY3JlZG9cIixcbiAgICBcImNyZW9cIixcbiAgICBcImNyZXB0aW9cIixcbiAgICBcImNyZXB1c2N1bHVtXCIsXG4gICAgXCJjcmVzY29cIixcbiAgICBcImNyZXRhXCIsXG4gICAgXCJjcmlicm9cIixcbiAgICBcImNyaW5pc1wiLFxuICAgIFwiY3J1Y2lhbWVudHVtXCIsXG4gICAgXCJjcnVkZWxpc1wiLFxuICAgIFwiY3J1ZW50dXNcIixcbiAgICBcImNydXJcIixcbiAgICBcImNydXN0dWx1bVwiLFxuICAgIFwiY3J1eFwiLFxuICAgIFwiY3ViaWN1bGFyaXNcIixcbiAgICBcImN1Yml0dW1cIixcbiAgICBcImN1Ym9cIixcbiAgICBcImN1aVwiLFxuICAgIFwiY3VpdXNcIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJjdWxwb1wiLFxuICAgIFwiY3VsdGVsbHVzXCIsXG4gICAgXCJjdWx0dXJhXCIsXG4gICAgXCJjdW1cIixcbiAgICBcImN1bmFidWxhXCIsXG4gICAgXCJjdW5hZVwiLFxuICAgIFwiY3VuY3RhdGlvXCIsXG4gICAgXCJjdXBpZGl0YXNcIixcbiAgICBcImN1cGlvXCIsXG4gICAgXCJjdXBwZWRpYVwiLFxuICAgIFwiY3VwcmVzc3VzXCIsXG4gICAgXCJjdXJcIixcbiAgICBcImN1cmFcIixcbiAgICBcImN1cmF0aW9cIixcbiAgICBcImN1cmlhXCIsXG4gICAgXCJjdXJpb3NpdGFzXCIsXG4gICAgXCJjdXJpc1wiLFxuICAgIFwiY3Vyb1wiLFxuICAgIFwiY3VycmljdWx1bVwiLFxuICAgIFwiY3VycnVzXCIsXG4gICAgXCJjdXJzaW1cIixcbiAgICBcImN1cnNvXCIsXG4gICAgXCJjdXJzdXNcIixcbiAgICBcImN1cnRvXCIsXG4gICAgXCJjdXJ0dXNcIixcbiAgICBcImN1cnZvXCIsXG4gICAgXCJjdXJ2dXNcIixcbiAgICBcImN1c3RvZGlhXCIsXG4gICAgXCJkYW1uYXRpb1wiLFxuICAgIFwiZGFtbm9cIixcbiAgICBcImRhcGlmZXJcIixcbiAgICBcImRlYmVvXCIsXG4gICAgXCJkZWJpbGl0b1wiLFxuICAgIFwiZGVjZW5zXCIsXG4gICAgXCJkZWNlcm5vXCIsXG4gICAgXCJkZWNldFwiLFxuICAgIFwiZGVjaW11c1wiLFxuICAgIFwiZGVjaXBpb1wiLFxuICAgIFwiZGVjb3JcIixcbiAgICBcImRlY3JldHVtXCIsXG4gICAgXCJkZWN1bWJvXCIsXG4gICAgXCJkZWRlY29yXCIsXG4gICAgXCJkZWRpY29cIixcbiAgICBcImRlZHVjb1wiLFxuICAgIFwiZGVmYWVjb1wiLFxuICAgIFwiZGVmZW5kb1wiLFxuICAgIFwiZGVmZXJvXCIsXG4gICAgXCJkZWZlc3N1c1wiLFxuICAgIFwiZGVmZXRpc2NvclwiLFxuICAgIFwiZGVmaWNpb1wiLFxuICAgIFwiZGVmaWdvXCIsXG4gICAgXCJkZWZsZW9cIixcbiAgICBcImRlZmx1b1wiLFxuICAgIFwiZGVmdW5nb1wiLFxuICAgIFwiZGVnZW5lcm9cIixcbiAgICBcImRlZ2Vyb1wiLFxuICAgIFwiZGVndXN0b1wiLFxuICAgIFwiZGVpbmRlXCIsXG4gICAgXCJkZWxlY3RhdGlvXCIsXG4gICAgXCJkZWxlZ29cIixcbiAgICBcImRlbGVvXCIsXG4gICAgXCJkZWxpYmVyb1wiLFxuICAgIFwiZGVsaWNhdGVcIixcbiAgICBcImRlbGlucXVvXCIsXG4gICAgXCJkZWx1ZG9cIixcbiAgICBcImRlbWVuc1wiLFxuICAgIFwiZGVtZXJnb1wiLFxuICAgIFwiZGVtaXR0b1wiLFxuICAgIFwiZGVtb1wiLFxuICAgIFwiZGVtb25zdHJvXCIsXG4gICAgXCJkZW1vcm9yXCIsXG4gICAgXCJkZW11bGNlb1wiLFxuICAgIFwiZGVtdW1cIixcbiAgICBcImRlbmVnb1wiLFxuICAgIFwiZGVuaXF1ZVwiLFxuICAgIFwiZGVuc1wiLFxuICAgIFwiZGVudW5jaW9cIixcbiAgICBcImRlbnVvXCIsXG4gICAgXCJkZW9yc3VtXCIsXG4gICAgXCJkZXBlcmVvXCIsXG4gICAgXCJkZXBvbm9cIixcbiAgICBcImRlcG9wdWxvXCIsXG4gICAgXCJkZXBvcnRvXCIsXG4gICAgXCJkZXByYWVkb3JcIixcbiAgICBcImRlcHJlY2F0b3JcIixcbiAgICBcImRlcHJpbW9cIixcbiAgICBcImRlcHJvbW9cIixcbiAgICBcImRlcHVsc29cIixcbiAgICBcImRlcHV0b1wiLFxuICAgIFwiZGVyZWxpbnF1b1wiLFxuICAgIFwiZGVyaWRlb1wiLFxuICAgIFwiZGVyaXBpb1wiLFxuICAgIFwiZGVzaWRlcm9cIixcbiAgICBcImRlc2lub1wiLFxuICAgIFwiZGVzaXBpb1wiLFxuICAgIFwiZGVzb2xvXCIsXG4gICAgXCJkZXNwYXJhdHVzXCIsXG4gICAgXCJkZXNwZWN0b1wiLFxuICAgIFwiZGVzcGlybWF0aW9cIixcbiAgICBcImluZml0XCIsXG4gICAgXCJpbmZsYW1tYXRpb1wiLFxuICAgIFwicGFlbnNcIixcbiAgICBcInBhdGlvclwiLFxuICAgIFwicGF0cmlhXCIsXG4gICAgXCJwYXRyb2Npbm9yXCIsXG4gICAgXCJwYXRydXVzXCIsXG4gICAgXCJwYXVjaVwiLFxuICAgIFwicGF1bGF0aW1cIixcbiAgICBcInBhdXBlclwiLFxuICAgIFwicGF4XCIsXG4gICAgXCJwZWNjYXR1c1wiLFxuICAgIFwicGVjY29cIixcbiAgICBcInBlY3RvXCIsXG4gICAgXCJwZWN0dXNcIixcbiAgICBcInBlY3VuaWFcIixcbiAgICBcInBlY3VzXCIsXG4gICAgXCJwZWlvclwiLFxuICAgIFwicGVsXCIsXG4gICAgXCJvY2VyXCIsXG4gICAgXCJzb2NpdXNcIixcbiAgICBcInNvZGFsaXRhc1wiLFxuICAgIFwic29sXCIsXG4gICAgXCJzb2xlb1wiLFxuICAgIFwic29saW9cIixcbiAgICBcInNvbGl0dWRvXCIsXG4gICAgXCJzb2xpdW1cIixcbiAgICBcInNvbGxlcnNcIixcbiAgICBcInNvbGxpY2l0b1wiLFxuICAgIFwic29sdW1cIixcbiAgICBcInNvbHVzXCIsXG4gICAgXCJzb2x1dGlvXCIsXG4gICAgXCJzb2x2b1wiLFxuICAgIFwic29tbmljdWxvc3VzXCIsXG4gICAgXCJzb21udXNcIixcbiAgICBcInNvbml0dXNcIixcbiAgICBcInNvbm9cIixcbiAgICBcInNvcGhpc21hdGFcIixcbiAgICBcInNvcG9yXCIsXG4gICAgXCJzb3JkZW9cIixcbiAgICBcInNvcnRpdHVzXCIsXG4gICAgXCJzcGFyZ29cIixcbiAgICBcInNwZWNpb3N1c1wiLFxuICAgIFwic3BlY3RhY3VsdW1cIixcbiAgICBcInNwZWN1bHVtXCIsXG4gICAgXCJzcGVybm9cIixcbiAgICBcInNwZXJvXCIsXG4gICAgXCJzcGVzXCIsXG4gICAgXCJzcGljdWx1bVwiLFxuICAgIFwic3Bpcml0dXNcIixcbiAgICBcInNwb2xpYXRpb1wiLFxuICAgIFwic3BvbnRlXCIsXG4gICAgXCJzdGFiaWxpc1wiLFxuICAgIFwic3RhdGltXCIsXG4gICAgXCJzdGF0dWFcIixcbiAgICBcInN0ZWxsYVwiLFxuICAgIFwic3RpbGxpY2lkaXVtXCIsXG4gICAgXCJzdGlwZXNcIixcbiAgICBcInN0aXBzXCIsXG4gICAgXCJzdG9cIixcbiAgICBcInN0cmVudXVzXCIsXG4gICAgXCJzdHJ1ZXNcIixcbiAgICBcInN0dWRpb1wiLFxuICAgIFwic3R1bHR1c1wiLFxuICAgIFwic3VhZGVvXCIsXG4gICAgXCJzdWFzb3JpYVwiLFxuICAgIFwic3ViXCIsXG4gICAgXCJzdWJpdG9cIixcbiAgICBcInN1Yml1bmdvXCIsXG4gICAgXCJzdWJsaW1lXCIsXG4gICAgXCJzdWJuZWN0b1wiLFxuICAgIFwic3Vic2Vjb1wiLFxuICAgIFwic3Vic3RhbnRpYVwiLFxuICAgIFwic3VidmVuaW9cIixcbiAgICBcInN1Y2NlZG9cIixcbiAgICBcInN1Y2N1cnJvXCIsXG4gICAgXCJzdWZmaWNpb1wiLFxuICAgIFwic3VmZm9jb1wiLFxuICAgIFwic3VmZnJhZ2l1bVwiLFxuICAgIFwic3VnZ2Vyb1wiLFxuICAgIFwic3VpXCIsXG4gICAgXCJzdWx1bVwiLFxuICAgIFwic3VtXCIsXG4gICAgXCJzdW1tYVwiLFxuICAgIFwic3VtbWlzc2VcIixcbiAgICBcInN1bW1vcGVyZVwiLFxuICAgIFwic3Vtb1wiLFxuICAgIFwic3VtcHR1c1wiLFxuICAgIFwic3VwZWxsZXhcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzdXBwZWxsZXhcIixcbiAgICBcInN1cHBsYW50b1wiLFxuICAgIFwic3VwcG9ub1wiLFxuICAgIFwic3VwcmFcIixcbiAgICBcInN1cmN1bHVzXCIsXG4gICAgXCJzdXJnb1wiLFxuICAgIFwic3Vyc3VtXCIsXG4gICAgXCJzdXNjaXBpb1wiLFxuICAgIFwic3VzcGVuZG9cIixcbiAgICBcInN1c3RpbmVvXCIsXG4gICAgXCJzdXVzXCIsXG4gICAgXCJzeW5hZ29nYVwiLFxuICAgIFwidGFiZWxsYVwiLFxuICAgIFwidGFiZXJudXNcIixcbiAgICBcInRhYmVzY29cIixcbiAgICBcInRhYmdvXCIsXG4gICAgXCJ0YWJ1bGFcIixcbiAgICBcInRhY2VvXCIsXG4gICAgXCJ0YWN0dXNcIixcbiAgICBcInRhZWRpdW1cIixcbiAgICBcInRhbGlvXCIsXG4gICAgXCJ0YWxpc1wiLFxuICAgIFwidGFsdXNcIixcbiAgICBcInRhbVwiLFxuICAgIFwidGFtZGl1XCIsXG4gICAgXCJ0YW1lblwiLFxuICAgIFwidGFtZXRzaVwiLFxuICAgIFwidGFtaXNpdW1cIixcbiAgICBcInRhbXF1YW1cIixcbiAgICBcInRhbmRlbVwiLFxuICAgIFwidGFudGlsbHVzXCIsXG4gICAgXCJ0YW50dW1cIixcbiAgICBcInRhcmR1c1wiLFxuICAgIFwidGVnb1wiLFxuICAgIFwidGVtZXJpdGFzXCIsXG4gICAgXCJ0ZW1wZXJhbnRpYVwiLFxuICAgIFwidGVtcGx1bVwiLFxuICAgIFwidGVtcHRhdGlvXCIsXG4gICAgXCJ0ZW1wdXNcIixcbiAgICBcInRlbmF4XCIsXG4gICAgXCJ0ZW5kb1wiLFxuICAgIFwidGVuZW9cIixcbiAgICBcInRlbmVyXCIsXG4gICAgXCJ0ZW51aXNcIixcbiAgICBcInRlbnVzXCIsXG4gICAgXCJ0ZXBlc2NvXCIsXG4gICAgXCJ0ZXBpZHVzXCIsXG4gICAgXCJ0ZXJcIixcbiAgICBcInRlcmVicm9cIixcbiAgICBcInRlcmVzXCIsXG4gICAgXCJ0ZXJnYVwiLFxuICAgIFwidGVyZ2VvXCIsXG4gICAgXCJ0ZXJnaXZlcnNhdGlvXCIsXG4gICAgXCJ0ZXJnb1wiLFxuICAgIFwidGVyZ3VtXCIsXG4gICAgXCJ0ZXJtZXNcIixcbiAgICBcInRlcm1pbmF0aW9cIixcbiAgICBcInRlcm9cIixcbiAgICBcInRlcnJhXCIsXG4gICAgXCJ0ZXJyZW9cIixcbiAgICBcInRlcnJpdG9cIixcbiAgICBcInRlcnJvclwiLFxuICAgIFwidGVyc3VzXCIsXG4gICAgXCJ0ZXJ0aXVzXCIsXG4gICAgXCJ0ZXN0aW1vbml1bVwiLFxuICAgIFwidGV4b1wiLFxuICAgIFwidGV4dGlsaXNcIixcbiAgICBcInRleHRvclwiLFxuICAgIFwidGV4dHVzXCIsXG4gICAgXCJ0aGFsYXNzaW51c1wiLFxuICAgIFwidGhlYXRydW1cIixcbiAgICBcInRoZWNhXCIsXG4gICAgXCJ0aGVtYVwiLFxuICAgIFwidGhlb2xvZ3VzXCIsXG4gICAgXCJ0aGVybWFlXCIsXG4gICAgXCJ0aGVzYXVydXNcIixcbiAgICBcInRoZXNpc1wiLFxuICAgIFwidGhvcmF4XCIsXG4gICAgXCJ0aHltYnJhXCIsXG4gICAgXCJ0aHltdW1cIixcbiAgICBcInRpYmlcIixcbiAgICBcInRpbWlkdXNcIixcbiAgICBcInRpbW9yXCIsXG4gICAgXCJ0aXR1bHVzXCIsXG4gICAgXCJ0b2xlcm9cIixcbiAgICBcInRvbGxvXCIsXG4gICAgXCJ0b25kZW9cIixcbiAgICBcInRvbnNvclwiLFxuICAgIFwidG9ycXVlb1wiLFxuICAgIFwidG9ycmVuc1wiLFxuICAgIFwidG90XCIsXG4gICAgXCJ0b3RpZGVtXCIsXG4gICAgXCJ0b3RpZXNcIixcbiAgICBcInRvdHVzXCIsXG4gICAgXCJ0cmFjdG9cIixcbiAgICBcInRyYWRvXCIsXG4gICAgXCJ0cmFob1wiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyZWRlY2ltXCIsXG4gICAgXCJ0cmVtb1wiLFxuICAgIFwidHJlcGlkZVwiLFxuICAgIFwidHJlc1wiLFxuICAgIFwidHJpYnVvXCIsXG4gICAgXCJ0cmljZXNpbXVzXCIsXG4gICAgXCJ0cmlkdWFuYVwiLFxuICAgIFwidHJpZ2ludGFcIixcbiAgICBcInRyaXB1ZGlvXCIsXG4gICAgXCJ0cmlzdGlzXCIsXG4gICAgXCJ0cml1bXBodXNcIixcbiAgICBcInRydWNpZG9cIixcbiAgICBcInRydWN1bGVudGVyXCIsXG4gICAgXCJ0dWJpbmV1c1wiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0dW1cIixcbiAgICBcInR1bXVsdHVzXCIsXG4gICAgXCJ0dW5jXCIsXG4gICAgXCJ0dXJiYVwiLFxuICAgIFwidHVyYm9cIixcbiAgICBcInR1cnBlXCIsXG4gICAgXCJ0dXJwaXNcIixcbiAgICBcInR1dGFtZW5cIixcbiAgICBcInR1dGlzXCIsXG4gICAgXCJ0eXJhbm51c1wiLFxuICAgIFwidWJlcnJpbWVcIixcbiAgICBcInViaVwiLFxuICAgIFwidWxjaXNjb3JcIixcbiAgICBcInVsbHVzXCIsXG4gICAgXCJ1bHRlcml1c1wiLFxuICAgIFwidWx0aW9cIixcbiAgICBcInVsdHJhXCIsXG4gICAgXCJ1bWJyYVwiLFxuICAgIFwidW1lcnVzXCIsXG4gICAgXCJ1bXF1YW1cIixcbiAgICBcInVuYVwiLFxuICAgIFwidW5kZVwiLFxuICAgIFwidW5kaXF1ZVwiLFxuICAgIFwidW5pdmVyc2VcIixcbiAgICBcInVudXNcIixcbiAgICBcInVyYmFudXNcIixcbiAgICBcInVyYnNcIixcbiAgICBcInVyZWRvXCIsXG4gICAgXCJ1c2l0YXNcIixcbiAgICBcInVzcXVlXCIsXG4gICAgXCJ1c3RpbG9cIixcbiAgICBcInVzdHVsb1wiLFxuICAgIFwidXN1c1wiLFxuICAgIFwidXRlclwiLFxuICAgIFwidXRlcnF1ZVwiLFxuICAgIFwidXRpbGlzXCIsXG4gICAgXCJ1dGlxdWVcIixcbiAgICBcInV0b3JcIixcbiAgICBcInV0cG90ZVwiLFxuICAgIFwidXRyaW1xdWVcIixcbiAgICBcInV0cm9xdWVcIixcbiAgICBcInV0cnVtXCIsXG4gICAgXCJ1eG9yXCIsXG4gICAgXCJ2YWNvXCIsXG4gICAgXCJ2YWN1dXNcIixcbiAgICBcInZhZG9cIixcbiAgICBcInZhZVwiLFxuICAgIFwidmFsZGVcIixcbiAgICBcInZhbGVuc1wiLFxuICAgIFwidmFsZW9cIixcbiAgICBcInZhbGV0dWRvXCIsXG4gICAgXCJ2YWxpZHVzXCIsXG4gICAgXCJ2YWxsdW1cIixcbiAgICBcInZhcHVsdXNcIixcbiAgICBcInZhcmlldGFzXCIsXG4gICAgXCJ2YXJpdXNcIixcbiAgICBcInZlaGVtZW5zXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcInZlbG9jaXRlclwiLFxuICAgIFwidmVsdW1cIixcbiAgICBcInZlbHV0XCIsXG4gICAgXCJ2ZW5pYVwiLFxuICAgIFwidmVuaW9cIixcbiAgICBcInZlbnRpdG9cIixcbiAgICBcInZlbnRvc3VzXCIsXG4gICAgXCJ2ZW50dXNcIixcbiAgICBcInZlbnVzdGFzXCIsXG4gICAgXCJ2ZXJcIixcbiAgICBcInZlcmJlcmFcIixcbiAgICBcInZlcmJ1bVwiLFxuICAgIFwidmVyZVwiLFxuICAgIFwidmVyZWN1bmRpYVwiLFxuICAgIFwidmVyZW9yXCIsXG4gICAgXCJ2ZXJnb1wiLFxuICAgIFwidmVyaXRhc1wiLFxuICAgIFwidmVyb1wiLFxuICAgIFwidmVyc3VzXCIsXG4gICAgXCJ2ZXJ0b1wiLFxuICAgIFwidmVydW10YW1lblwiLFxuICAgIFwidmVydXNcIixcbiAgICBcInZlc2NvXCIsXG4gICAgXCJ2ZXNpY2FcIixcbiAgICBcInZlc3BlclwiLFxuICAgIFwidmVzcGlsbG9cIixcbiAgICBcInZlc3RlclwiLFxuICAgIFwidmVzdGlnaXVtXCIsXG4gICAgXCJ2ZXN0cnVtXCIsXG4gICAgXCJ2ZXR1c1wiLFxuICAgIFwidmlhXCIsXG4gICAgXCJ2aWNpbnVzXCIsXG4gICAgXCJ2aWNpc3NpdHVkb1wiLFxuICAgIFwidmljdG9yaWFcIixcbiAgICBcInZpY3R1c1wiLFxuICAgIFwidmlkZWxpY2V0XCIsXG4gICAgXCJ2aWRlb1wiLFxuICAgIFwidmlkdWF0YVwiLFxuICAgIFwidmlkdW9cIixcbiAgICBcInZpZ2lsb1wiLFxuICAgIFwidmlnb3JcIixcbiAgICBcInZpbGljdXNcIixcbiAgICBcInZpbGlzXCIsXG4gICAgXCJ2aWxpdGFzXCIsXG4gICAgXCJ2aWxsYVwiLFxuICAgIFwidmluY29cIixcbiAgICBcInZpbmN1bHVtXCIsXG4gICAgXCJ2aW5kaWNvXCIsXG4gICAgXCJ2aW5pdG9yXCIsXG4gICAgXCJ2aW51bVwiLFxuICAgIFwidmlyXCIsXG4gICAgXCJ2aXJnYVwiLFxuICAgIFwidmlyZ29cIixcbiAgICBcInZpcmlkaXNcIixcbiAgICBcInZpcmlsaXRlclwiLFxuICAgIFwidmlydHVzXCIsXG4gICAgXCJ2aXNcIixcbiAgICBcInZpc2N1c1wiLFxuICAgIFwidml0YVwiLFxuICAgIFwidml0aW9zdXNcIixcbiAgICBcInZpdGl1bVwiLFxuICAgIFwidml0b1wiLFxuICAgIFwidml2b1wiLFxuICAgIFwidml4XCIsXG4gICAgXCJ2b2Jpc1wiLFxuICAgIFwidm9jaWZlcm9yXCIsXG4gICAgXCJ2b2NvXCIsXG4gICAgXCJ2b2xhdGljdXNcIixcbiAgICBcInZvbG9cIixcbiAgICBcInZvbHViaWxpc1wiLFxuICAgIFwidm9sdW50YXJpdXNcIixcbiAgICBcInZvbHVwXCIsXG4gICAgXCJ2b2x1dGFicnVtXCIsXG4gICAgXCJ2b2x2YVwiLFxuICAgIFwidm9tZXJcIixcbiAgICBcInZvbWljYVwiLFxuICAgIFwidm9taXRvXCIsXG4gICAgXCJ2b3JhZ29cIixcbiAgICBcInZvcmF4XCIsXG4gICAgXCJ2b3JvXCIsXG4gICAgXCJ2b3NcIixcbiAgICBcInZvdHVtXCIsXG4gICAgXCJ2b3Zlb1wiLFxuICAgIFwidm94XCIsXG4gICAgXCJ2dWxhcml0ZXJcIixcbiAgICBcInZ1bGdhcmlzXCIsXG4gICAgXCJ2dWxnaXZhZ3VzXCIsXG4gICAgXCJ2dWxnb1wiLFxuICAgIFwidnVsZ3VzXCIsXG4gICAgXCJ2dWxuZXJvXCIsXG4gICAgXCJ2dWxudXNcIixcbiAgICBcInZ1bHBlc1wiLFxuICAgIFwidnVsdGljdWx1c1wiLFxuICAgIFwidnVsdHVvc3VzXCIsXG4gICAgXCJ4aXBoaWFzXCJcbiAgXVxufTtcbnNrLm5hbWUgPSB7XG4gIFwibWFuX2ZpcnN0X25hbWVcIjogW1xuICAgIFwiRHJhaG9zbGF2XCIsXG4gICAgXCJTZXZlcsOtblwiLFxuICAgIFwiQWxleGVqXCIsXG4gICAgXCJFcm5lc3RcIixcbiAgICBcIlJhc3Rpc2xhdlwiLFxuICAgIFwiUmFkb3ZhblwiLFxuICAgIFwiRG9icm9zbGF2XCIsXG4gICAgXCJEYWxpYm9yXCIsXG4gICAgXCJWaW5jZW50XCIsXG4gICAgXCJNaWxvxaFcIixcbiAgICBcIlRpbW90ZWpcIixcbiAgICBcIkdlanphXCIsXG4gICAgXCJCb2h1xaFcIixcbiAgICBcIkFsZm9uelwiLFxuICAgIFwiR2HFoXBhclwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiRXJpa1wiLFxuICAgIFwiQmxhxb5lalwiLFxuICAgIFwiWmRlbmtvXCIsXG4gICAgXCJEZXppZGVyXCIsXG4gICAgXCJBcnDDoWRcIixcbiAgICBcIlZhbGVudMOtblwiLFxuICAgIFwiUHJhdm9zbGF2XCIsXG4gICAgXCJKYXJvbcOtclwiLFxuICAgIFwiUm9tYW5cIixcbiAgICBcIk1hdGVqXCIsXG4gICAgXCJGcmVkZXJpa1wiLFxuICAgIFwiVmlrdG9yXCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIlJhZG9tw61yXCIsXG4gICAgXCJBbGLDrW5cIixcbiAgICBcIkJvaHVtaWxcIixcbiAgICBcIkthemltw61yXCIsXG4gICAgXCJGcmlkcmljaFwiLFxuICAgIFwiUmFkb3NsYXZcIixcbiAgICBcIlRvbcOhxaFcIixcbiAgICBcIkFsYW5cIixcbiAgICBcIkJyYW5pc2xhdlwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiVmxhc3RpbWlsXCIsXG4gICAgXCJCb2xlc2xhdlwiLFxuICAgIFwiRWR1YXJkXCIsXG4gICAgXCJKb3plZlwiLFxuICAgIFwiVsOtxaVhem9zbGF2XCIsXG4gICAgXCJCbGFob3NsYXZcIixcbiAgICBcIkJlxYhhZGlrXCIsXG4gICAgXCJBZHJpw6FuXCIsXG4gICAgXCJHYWJyaWVsXCIsXG4gICAgXCJNYXJpw6FuXCIsXG4gICAgXCJFbWFudWVsXCIsXG4gICAgXCJNaXJvc2xhdlwiLFxuICAgIFwiQmVuamFtw61uXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJJemlkb3JcIixcbiAgICBcIlpvbHTDoW5cIixcbiAgICBcIkFsYmVydFwiLFxuICAgIFwiSWdvclwiLFxuICAgIFwiSsO6bGl1c1wiLFxuICAgIFwiQWxlxaFcIixcbiAgICBcIkZlZG9yXCIsXG4gICAgXCJSdWRvbGZcIixcbiAgICBcIlZhbMOpclwiLFxuICAgIFwiTWFyY2VsXCIsXG4gICAgXCJFcnbDrW5cIixcbiAgICBcIlNsYXZvbcOtclwiLFxuICAgIFwiVm9qdGVjaFwiLFxuICAgIFwiSnVyYWpcIixcbiAgICBcIk1hcmVrXCIsXG4gICAgXCJKYXJvc2xhdlwiLFxuICAgIFwixb1pZ211bmRcIixcbiAgICBcIkZsb3Jpw6FuXCIsXG4gICAgXCJSb2xhbmRcIixcbiAgICBcIlBhbmtyw6FjXCIsXG4gICAgXCJTZXJ2w6FjXCIsXG4gICAgXCJCb25pZsOhY1wiLFxuICAgIFwiU3ZldG96w6FyXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJKw7psaWFcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJEdcWhYW5cIixcbiAgICBcIlZpbGlhbVwiLFxuICAgIFwiRmVyZGluYW5kXCIsXG4gICAgXCJOb3JiZXJ0XCIsXG4gICAgXCJSw7NiZXJ0XCIsXG4gICAgXCJNZWRhcmRcIixcbiAgICBcIlpsYXRrb1wiLFxuICAgIFwiQW50b25cIixcbiAgICBcIlZhc2lsXCIsXG4gICAgXCJWw610XCIsXG4gICAgXCJBZG9sZlwiLFxuICAgIFwiVnJhdGlzbGF2XCIsXG4gICAgXCJBbGZyw6lkXCIsXG4gICAgXCJBbG9qelwiLFxuICAgIFwiSsOhblwiLFxuICAgIFwiVGFkZcOhxaFcIixcbiAgICBcIkxhZGlzbGF2XCIsXG4gICAgXCJQZXRlclwiLFxuICAgIFwiUGF2b2xcIixcbiAgICBcIk1pbG9zbGF2XCIsXG4gICAgXCJQcm9rb3BcIixcbiAgICBcIkN5cmlsXCIsXG4gICAgXCJNZXRvZFwiLFxuICAgIFwiUGF0cmlrXCIsXG4gICAgXCJPbGl2ZXJcIixcbiAgICBcIkl2YW5cIixcbiAgICBcIkthbWlsXCIsXG4gICAgXCJIZW5yaWNoXCIsXG4gICAgXCJEcmFob23DrXJcIixcbiAgICBcIkJvaHVzbGF2XCIsXG4gICAgXCJJxL5qYVwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJWbGFkaW3DrXJcIixcbiAgICBcIkpha3ViXCIsXG4gICAgXCJLcmnFoXRvZlwiLFxuICAgIFwiSWduw6FjXCIsXG4gICAgXCJHdXN0w6F2XCIsXG4gICAgXCJKZXJndcWhXCIsXG4gICAgXCJEb21pbmlrXCIsXG4gICAgXCJPc2thclwiLFxuICAgIFwiVmF2cmluZWNcIixcbiAgICBcIsS9dWJvbcOtclwiLFxuICAgIFwiTW9qbcOtclwiLFxuICAgIFwiTGVvbmFyZFwiLFxuICAgIFwiVGljaG9tw61yXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiQmFydG9sb21lalwiLFxuICAgIFwixL11ZG92w610XCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIkF1Z3VzdMOtblwiLFxuICAgIFwiQmVsb1wiLFxuICAgIFwiT2xlZ1wiLFxuICAgIFwiQnlzdHLDrWtcIixcbiAgICBcIkN0aWJvclwiLFxuICAgIFwixL11ZG9taWxcIixcbiAgICBcIktvbsWhdGFudMOtblwiLFxuICAgIFwixL11Ym9zbGF2XCIsXG4gICAgXCJNYXTDusWhXCIsXG4gICAgXCJNw7NyaWNcIixcbiAgICBcIsS9dWJvxaFcIixcbiAgICBcIsS9dWJvclwiLFxuICAgIFwiVmxhZGlzbGF2XCIsXG4gICAgXCJDeXByacOhblwiLFxuICAgIFwiVsOhY2xhdlwiLFxuICAgIFwiTWljaGFsXCIsXG4gICAgXCJKYXJvbMOtbVwiLFxuICAgIFwiQXJub2xkXCIsXG4gICAgXCJMZXZvc2xhdlwiLFxuICAgIFwiRnJhbnRpxaFla1wiLFxuICAgIFwiRGlvbsO9elwiLFxuICAgIFwiTWF4aW1pbGnDoW5cIixcbiAgICBcIktvbG9tYW5cIixcbiAgICBcIkJvcmlzXCIsXG4gICAgXCJMdWvDocWhXCIsXG4gICAgXCJLcmlzdGnDoW5cIixcbiAgICBcIlZlbmRlbMOtblwiLFxuICAgIFwiU2VyZ2VqXCIsXG4gICAgXCJBdXJlbFwiLFxuICAgIFwiRGVtZXRlclwiLFxuICAgIFwiRGVuaXNcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiS2Fyb2xcIixcbiAgICBcIkltcmljaFwiLFxuICAgIFwiUmVuw6lcIixcbiAgICBcIkJvaHVtw61yXCIsXG4gICAgXCJUZW9kb3JcIixcbiAgICBcIlRpYm9yXCIsXG4gICAgXCJNYXJvxaFcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiU3bDpHRvcGx1a1wiLFxuICAgIFwiU3RhbmlzbGF2XCIsXG4gICAgXCJMZW9wb2xkXCIsXG4gICAgXCJFdWdlblwiLFxuICAgIFwiRsOpbGl4XCIsXG4gICAgXCJLbGVtZW50XCIsXG4gICAgXCJLb3JuZWxcIixcbiAgICBcIk1pbGFuXCIsXG4gICAgXCJWcmF0a29cIixcbiAgICBcIk9uZHJlalwiLFxuICAgIFwiQW5kcmVqXCIsXG4gICAgXCJFZG11bmRcIixcbiAgICBcIk9sZHJpY2hcIixcbiAgICBcIk90b1wiLFxuICAgIFwiTWlrdWzDocWhXCIsXG4gICAgXCJBbWJyw7N6XCIsXG4gICAgXCJSYWTDunpcIixcbiAgICBcIkJvaGRhblwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwixaB0ZWZhblwiLFxuICAgIFwiRMOhdmlkXCIsXG4gICAgXCJTaWx2ZXN0ZXJcIlxuICBdLFxuICBcIndvbWFuX2ZpcnN0X25hbWVcIjogW1xuICAgIFwiQWxleGFuZHJhXCIsXG4gICAgXCJLYXJpbmFcIixcbiAgICBcIkRhbmllbGFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW50w7NuaWFcIixcbiAgICBcIkJvaHVzbGF2YVwiLFxuICAgIFwiRMOhxaFhXCIsXG4gICAgXCJNYWx2w61uYVwiLFxuICAgIFwiS3Jpc3TDrW5hXCIsXG4gICAgXCJOYXRhxaFhXCIsXG4gICAgXCJCb2hkYW5hXCIsXG4gICAgXCJEcmFob23DrXJhXCIsXG4gICAgXCJTw6FyYVwiLFxuICAgIFwiWm9yYVwiLFxuICAgIFwiVGFtYXJhXCIsXG4gICAgXCJFbWFcIixcbiAgICBcIlRhdGlhbmFcIixcbiAgICBcIkVyaWthXCIsXG4gICAgXCJWZXJvbmlrYVwiLFxuICAgIFwiQWfDoXRhXCIsXG4gICAgXCJEb3JvdGFcIixcbiAgICBcIlZhbmRhXCIsXG4gICAgXCJab2phXCIsXG4gICAgXCJHYWJyaWVsYVwiLFxuICAgIFwiUGVybGFcIixcbiAgICBcIklkYVwiLFxuICAgIFwiTGlhbmFcIixcbiAgICBcIk1pbG9zbGF2YVwiLFxuICAgIFwiVmxhc3RhXCIsXG4gICAgXCJMw612aWFcIixcbiAgICBcIkVsZW9uw7NyYVwiLFxuICAgIFwiRXRlbGFcIixcbiAgICBcIlJvbWFuYVwiLFxuICAgIFwiWmxhdGljYVwiLFxuICAgIFwiQW5lxb5rYVwiLFxuICAgIFwiQm9odW1pbGFcIixcbiAgICBcIkZyYW50acWha2FcIixcbiAgICBcIkFuZ2VsYVwiLFxuICAgIFwiTWF0aWxkYVwiLFxuICAgIFwiU3ZldGxhbmFcIixcbiAgICBcIsS9dWJpY2FcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJTb8WIYVwiLFxuICAgIFwiVmllcm9zbGF2YVwiLFxuICAgIFwiWml0YVwiLFxuICAgIFwiTWlyb3NsYXZhXCIsXG4gICAgXCJJcmVuYVwiLFxuICAgIFwiTWlsZW5hXCIsXG4gICAgXCJFc3RlcmFcIixcbiAgICBcIkp1c3TDrW5hXCIsXG4gICAgXCJEYW5hXCIsXG4gICAgXCJEYW5pY2FcIixcbiAgICBcIkplbGFcIixcbiAgICBcIkphcm9zbGF2YVwiLFxuICAgIFwiSmFybWlsYVwiLFxuICAgIFwiTGVhXCIsXG4gICAgXCJBbmFzdMOhemlhXCIsXG4gICAgXCJHYWxpbmFcIixcbiAgICBcIkxlc2FuYVwiLFxuICAgIFwiSGVybcOtbmFcIixcbiAgICBcIk1vbmlrYVwiLFxuICAgIFwiSW5ncmlkYVwiLFxuICAgIFwiVmlrdMOzcmlhXCIsXG4gICAgXCJCbGHFvmVuYVwiLFxuICAgIFwixb1vZmlhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiR2l6ZWxhXCIsXG4gICAgXCJWaW9sYVwiLFxuICAgIFwiR2VydHLDumRhXCIsXG4gICAgXCJaaW5hXCIsXG4gICAgXCJKw7psaWFcIixcbiAgICBcIkp1bGlhbmFcIixcbiAgICBcIsW9ZWxtw61yYVwiLFxuICAgIFwiRWxhXCIsXG4gICAgXCJWYW5lc2FcIixcbiAgICBcIkl2ZXRhXCIsXG4gICAgXCJWaWxtYVwiLFxuICAgIFwiUGV0cm9uZWxhXCIsXG4gICAgXCLFvWFuZXRhXCIsXG4gICAgXCJYw6luaWFcIixcbiAgICBcIkthcm9sw61uYVwiLFxuICAgIFwiTGVua2FcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJTdGFuaXNsYXZhXCIsXG4gICAgXCJNYXJnYXLDqXRhXCIsXG4gICAgXCJEb2Jyb3NsYXZhXCIsXG4gICAgXCJCbGFua2FcIixcbiAgICBcIlZhbMOpcmlhXCIsXG4gICAgXCJQYXVsw61uYVwiLFxuICAgIFwiU2lkw7NuaWFcIixcbiAgICBcIkFkcmnDoW5hXCIsXG4gICAgXCJCZcOhdGFcIixcbiAgICBcIlBldHJhXCIsXG4gICAgXCJNZWzDoW5pYVwiLFxuICAgIFwiRGlhbmFcIixcbiAgICBcIkJlcnRhXCIsXG4gICAgXCJQYXRyw61jaWFcIixcbiAgICBcIkx1anphXCIsXG4gICAgXCJBbcOhbGlhXCIsXG4gICAgXCJNaWxvdGFcIixcbiAgICBcIk5pbmFcIixcbiAgICBcIk1hcmdpdGFcIixcbiAgICBcIkthbWlsYVwiLFxuICAgIFwiRHXFoWFuYVwiLFxuICAgIFwiTWFnZGFsw6luYVwiLFxuICAgIFwiT8S+Z2FcIixcbiAgICBcIkFubmFcIixcbiAgICBcIkhhbmFcIixcbiAgICBcIkJvxb5lbmFcIixcbiAgICBcIk1hcnRhXCIsXG4gICAgXCJMaWJ1xaFhXCIsXG4gICAgXCJCb8W+aWRhcmFcIixcbiAgICBcIkRvbWluaWthXCIsXG4gICAgXCJIb3J0ZW56aWFcIixcbiAgICBcIkpvemVmw61uYVwiLFxuICAgIFwixaB0ZWbDoW5pYVwiLFxuICAgIFwixL11Ym9tw61yYVwiLFxuICAgIFwiWnV6YW5hXCIsXG4gICAgXCJEYXJpbmFcIixcbiAgICBcIk1hcmNlbGFcIixcbiAgICBcIk1pbGljYVwiLFxuICAgIFwiRWxlbmFcIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiTMO9ZGlhXCIsXG4gICAgXCJBbmFiZWxhXCIsXG4gICAgXCJKYW5hXCIsXG4gICAgXCJTaWx2aWFcIixcbiAgICBcIk5pa29sYVwiLFxuICAgIFwiUnXFvmVuYVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiRHJhaG9zbGF2YVwiLFxuICAgIFwiTGluZGFcIixcbiAgICBcIk1lbGluZGFcIixcbiAgICBcIlJlYmVrYVwiLFxuICAgIFwiUm96w6FsaWFcIixcbiAgICBcIlJlZ8OtbmFcIixcbiAgICBcIkFsaWNhXCIsXG4gICAgXCJNYXJpYW5uYVwiLFxuICAgIFwiTWlyaWFtYVwiLFxuICAgIFwiTWFydGluYVwiLFxuICAgIFwiTcOhcmlhXCIsXG4gICAgXCJKb2xhbmFcIixcbiAgICBcIsS9dWRvbWlsYVwiLFxuICAgIFwixL11ZG1pbGFcIixcbiAgICBcIk9seW1waWFcIixcbiAgICBcIkV1Z8OpbmlhXCIsXG4gICAgXCLEvXVib3NsYXZhXCIsXG4gICAgXCJaZGVua2FcIixcbiAgICBcIkVkaXRhXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiU3RlbGFcIixcbiAgICBcIlZpZXJhXCIsXG4gICAgXCJOYXTDoWxpYVwiLFxuICAgIFwiRWxpxaFrYVwiLFxuICAgIFwiQnJpZ2l0YVwiLFxuICAgIFwiVmFsZW50w61uYVwiLFxuICAgIFwiVGVyw6l6aWFcIixcbiAgICBcIlZsYWRpbcOtcmFcIixcbiAgICBcIkhlZHZpZ2FcIixcbiAgICBcIlVyxaF1xL5hXCIsXG4gICAgXCJBbG9qemFcIixcbiAgICBcIkt2ZXRvc2xhdmFcIixcbiAgICBcIlNhYsOtbmFcIixcbiAgICBcIkRvYnJvbWlsYVwiLFxuICAgIFwiS2zDoXJhXCIsXG4gICAgXCJTaW1vbmFcIixcbiAgICBcIkF1csOpbGlhXCIsXG4gICAgXCJEZW5pc2FcIixcbiAgICBcIlJlbsOhdGFcIixcbiAgICBcIklybWFcIixcbiAgICBcIkFnbmVzYVwiLFxuICAgIFwiS2xhdWRpYVwiLFxuICAgIFwiQWzFvmJldGFcIixcbiAgICBcIkVsdsOtcmFcIixcbiAgICBcIkNlY8OtbGlhXCIsXG4gICAgXCJFbcOtbGlhXCIsXG4gICAgXCJLYXRhcsOtbmFcIixcbiAgICBcIkhlbnJpZXRhXCIsXG4gICAgXCJCaWJpw6FuYVwiLFxuICAgIFwiQmFyYm9yYVwiLFxuICAgIFwiTWFyw61uYVwiLFxuICAgIFwiSXphYmVsYVwiLFxuICAgIFwiSGlsZGFcIixcbiAgICBcIk90w61saWFcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJCcmFuaXNsYXZhXCIsXG4gICAgXCJCcm9uaXNsYXZhXCIsXG4gICAgXCJJdmljYVwiLFxuICAgIFwiQWxiw61uYVwiLFxuICAgIFwiS29ybsOpbGlhXCIsXG4gICAgXCJTbMOhdmFcIixcbiAgICBcIlNsw6F2a2FcIixcbiAgICBcIkp1ZGl0YVwiLFxuICAgIFwiRGFnbWFyYVwiLFxuICAgIFwiQWRlbGFcIixcbiAgICBcIk5hZGXFvmRhXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIkZpbG9tw6luYVwiLFxuICAgIFwiSXZhbmFcIixcbiAgICBcIk1pbGFkYVwiXG4gIF0sXG4gIFwibWFuX2xhc3RfbmFtZVwiOiBbXG4gICAgXCJBbnRhbFwiLFxuICAgIFwiQmFia2FcIixcbiAgICBcIkJhaG5hXCIsXG4gICAgXCJCYWhub1wiLFxuICAgIFwiQmFsw6HFvlwiLFxuICAgIFwiQmFyYW5cIixcbiAgICBcIkJhcmFua2FcIixcbiAgICBcIkJhcnRvdmnEjVwiLFxuICAgIFwiQmFydG/FoVwiLFxuICAgIFwiQmHEjWFcIixcbiAgICBcIkJlcm5vbMOha1wiLFxuICAgIFwiQmXFiG9cIixcbiAgICBcIkJpY2VrXCIsXG4gICAgXCJCaWVsaWtcIixcbiAgICBcIkJsYWhvXCIsXG4gICAgXCJCb25kcmFcIixcbiAgICBcIkJvc8Oha1wiLFxuICAgIFwiQm/FoWthXCIsXG4gICAgXCJCcmV6aW5hXCIsXG4gICAgXCJCdWtvdnNrw71cIixcbiAgICBcIkNoYWx1cGthXCIsXG4gICAgXCJDaHVkw61rXCIsXG4gICAgXCJDaWJ1bGFcIixcbiAgICBcIkNpYnVsa2FcIixcbiAgICBcIkNpYnXEvmFcIixcbiAgICBcIkN5cHJpY2hcIixcbiAgICBcIkPDrWdlclwiLFxuICAgIFwiRGFua29cIixcbiAgICBcIkRhxYhrb1wiLFxuICAgIFwiRGHFiG9cIixcbiAgICBcIkRlYm7DoXJcIixcbiAgICBcIkRlalwiLFxuICAgIFwiRGVrw73FoVwiLFxuICAgIFwiRG9sZcW+YWxcIixcbiAgICBcIkRvxI1vbG9tYW5za8O9XCIsXG4gICAgXCJEcm9wcGFcIixcbiAgICBcIkR1Ym92c2vDvVwiLFxuICAgIFwiRHVkZWtcIixcbiAgICBcIkR1bGFcIixcbiAgICBcIkR1bGxhXCIsXG4gICAgXCJEdXPDrWtcIixcbiAgICBcIkR2b27EjVwiLFxuICAgIFwiRHp1cmphbmluXCIsXG4gICAgXCJEw6F2aWRcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmFiacOhblwiLFxuICAgIFwiRmFqbm9yXCIsXG4gICAgXCJGYXJrYcWhb3Zza8O9XCIsXG4gICAgXCJGaWNvXCIsXG4gICAgXCJGaWxjXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiRmlua2FcIixcbiAgICBcIkZ0b3Jla1wiLFxuICAgIFwiR2HFoXBhclwiLFxuICAgIFwiR2HFoXBhcm92acSNXCIsXG4gICAgXCJHb2Nuw61rXCIsXG4gICAgXCJHcmVnb3JcIixcbiAgICBcIkdyZWd1xaFcIixcbiAgICBcIkdyem7DoXJcIixcbiAgICBcIkhhYmzDoWtcIixcbiAgICBcIkhhYsWhdWRhXCIsXG4gICAgXCJIYWxkYVwiLFxuICAgIFwiSGFsdcWha2FcIixcbiAgICBcIkhhbMOha1wiLFxuICAgIFwiSGFua29cIixcbiAgICBcIkhhbnphbFwiLFxuICAgIFwiSGHFocSNw6FrXCIsXG4gICAgXCJIZXJldGlrXCIsXG4gICAgXCJIZcSNa29cIixcbiAgICBcIkhsYXbDocSNZWtcIixcbiAgICBcIkhsaW5rYVwiLFxuICAgIFwiSG9sdWJcIixcbiAgICBcIkhvbHVieVwiLFxuICAgIFwiSG9zc2FcIixcbiAgICBcIkhvemFcIixcbiAgICBcIkhyYcWha29cIixcbiAgICBcIkhyaWNcIixcbiAgICBcIkhybW9cIixcbiAgICBcIkhydcWhb3Zza8O9XCIsXG4gICAgXCJIdWJhXCIsXG4gICAgXCJJaG5hxI3DoWtcIixcbiAgICBcIkphbmXEjWVrXCIsXG4gICAgXCJKYW5vxaFrYVwiLFxuICAgIFwiSmFudG/FoW92acSNXCIsXG4gICAgXCJKYW7DrWtcIixcbiAgICBcIkphbsSNZWtcIixcbiAgICBcIkplZMS+b3Zza8O9XCIsXG4gICAgXCJKZW5kZWtcIixcbiAgICBcIkpvbmF0YVwiLFxuICAgIFwiSnVyaW5hXCIsXG4gICAgXCJKdXJrb3ZpxI1cIixcbiAgICBcIkp1csOta1wiLFxuICAgIFwiSsOhbm/FocOta1wiLFxuICAgIFwiS2FmZW5kYVwiLFxuICAgIFwiS2FsaXNrw71cIixcbiAgICBcIkthcnVsXCIsXG4gICAgXCJLZW7DrcW+XCIsXG4gICAgXCJLbGFwa2FcIixcbiAgICBcIkttZcWlXCIsXG4gICAgXCJLb2xlc8OhclwiLFxuICAgIFwiS29sbMOhclwiLFxuICAgIFwiS29sbmlrXCIsXG4gICAgXCJLb2xuw61rXCIsXG4gICAgXCJLb2zDoXJcIixcbiAgICBcIktvcmVjXCIsXG4gICAgXCJLb3N0a2FcIixcbiAgICBcIktvc3RyZWNcIixcbiAgICBcIktvdsOhxI1cIixcbiAgICBcIktvdsOhxI1pa1wiLFxuICAgIFwiS296YVwiLFxuICAgIFwiS2/EjWnFoVwiLFxuICAgIFwiS3JhasOtxI1la1wiLFxuICAgIFwiS3JhasSNaVwiLFxuICAgIFwiS3JhasSNb1wiLFxuICAgIFwiS3JhasSNb3ZpxI1cIixcbiAgICBcIktyYWrEjcOtclwiLFxuICAgIFwiS3LDoWxpa1wiLFxuICAgIFwiS3LDunBhXCIsXG4gICAgXCJLdWLDrWtcIixcbiAgICBcIkt5c2XEvlwiLFxuICAgIFwiS8OhbGxheVwiLFxuICAgIFwiTGFidWRhXCIsXG4gICAgXCJMZXDFocOta1wiLFxuICAgIFwiTGlwdMOha1wiLFxuICAgIFwiTGlzaWNrw71cIixcbiAgICBcIkx1YmluYVwiLFxuICAgIFwiTHVrw6HEjVwiLFxuICAgIFwiTHVwdMOha1wiLFxuICAgIFwiTMOtxaFrYVwiLFxuICAgIFwiTWFkZWpcIixcbiAgICBcIk1hamVza8O9XCIsXG4gICAgXCJNYWxhY2hvdnNrw71cIixcbiAgICBcIk1hbMOtxaFla1wiLFxuICAgIFwiTWFtb2prYVwiLFxuICAgIFwiTWFyY2lua29cIixcbiAgICBcIk1hcmnDoW5cIixcbiAgICBcIk1hc2FyeWtcIixcbiAgICBcIk1hc2xvXCIsXG4gICAgXCJNYXRpYcWha29cIixcbiAgICBcIk1lZHZlxI9cIixcbiAgICBcIk1lbGNlclwiLFxuICAgIFwiTWXEjWlhclwiLFxuICAgIFwiTWljaGFsw61rXCIsXG4gICAgXCJNaWhhbGlrXCIsXG4gICAgXCJNaWjDoWxcIixcbiAgICBcIk1paMOhbGlrXCIsXG4gICAgXCJNaWtsb8Wha29cIixcbiAgICBcIk1pa3Vsw61rXCIsXG4gICAgXCJNaWt1xaFcIixcbiAgICBcIk1pa8O6xaFcIixcbiAgICBcIk1pbG90YVwiLFxuICAgIFwiTWluw6HEjVwiLFxuICAgIFwiTWnFocOta1wiLFxuICAgIFwiTW9qxb5pxaFcIixcbiAgICBcIk1va3JvxaFcIixcbiAgICBcIk1vcmFcIixcbiAgICBcIk1vcmF2xI3DrWtcIixcbiAgICBcIk15ZGxvXCIsXG4gICAgXCJOZW1lY1wiLFxuICAgIFwiTml0cmFcIixcbiAgICBcIk5vdsOha1wiLFxuICAgIFwiT2LFoXV0XCIsXG4gICAgXCJPbmRydcWhXCIsXG4gICAgXCJPdMSNZW7DocWhXCIsXG4gICAgXCJQYXVrb1wiLFxuICAgIFwiUGF2bGlrb3Zza8O9XCIsXG4gICAgXCJQYXbDumtcIixcbiAgICBcIlBhxaFla1wiLFxuICAgIFwiUGHFoWthXCIsXG4gICAgXCJQYcWha29cIixcbiAgICBcIlBlbGlrw6FuXCIsXG4gICAgXCJQZXRyb3ZpY2vDvVwiLFxuICAgIFwiUGV0cnXFoWthXCIsXG4gICAgXCJQZcWha29cIixcbiAgICBcIlBsY2hcIixcbiAgICBcIlBsZWthbmVjXCIsXG4gICAgXCJQb2RocmFkc2vDvVwiLFxuICAgIFwiUG9ka29uaWNrw71cIixcbiAgICBcIlBvbGlha1wiLFxuICAgIFwiUHVww6FrXCIsXG4gICAgXCJSYWtcIixcbiAgICBcIlJlcGlza8O9XCIsXG4gICAgXCJSb21hbsSNw61rXCIsXG4gICAgXCJSdXNcIixcbiAgICBcIlJ1xb5pxI1rYVwiLFxuICAgIFwiUnlibsOtxI1la1wiLFxuICAgIFwiUnliw6FyXCIsXG4gICAgXCJSeWLDoXJpa1wiLFxuICAgIFwiU2Ftc29uXCIsXG4gICAgXCJTZWRsaWFrXCIsXG4gICAgXCJTZW5rb1wiLFxuICAgIFwiU2tsZW5rYVwiLFxuICAgIFwiU2tva2FuXCIsXG4gICAgXCJTa3V0ZWNrw71cIixcbiAgICBcIlNsYcWhxaVhblwiLFxuICAgIFwiU2xvYm9kYVwiLFxuICAgIFwiU2xvYm9kbsOta1wiLFxuICAgIFwiU2xvdGFcIixcbiAgICBcIlNsb3bDoWtcIixcbiAgICBcIlNtcmVrXCIsXG4gICAgXCJTdG9kb2xhXCIsXG4gICAgXCJTdHJha2FcIixcbiAgICBcIlN0cm5pc2tvXCIsXG4gICAgXCJTdnJiw61rXCIsXG4gICAgXCJTw6FtZWxcIixcbiAgICBcIlPDvWtvcmFcIixcbiAgICBcIlRhdGFyXCIsXG4gICAgXCJUYXRhcmthXCIsXG4gICAgXCJUYXTDoXJcIixcbiAgICBcIlRhdMOhcmthXCIsXG4gICAgXCJUaG9ta2FcIixcbiAgICBcIlRvbWXEjWVrXCIsXG4gICAgXCJUb21rYVwiLFxuICAgIFwiVG9ta29cIixcbiAgICBcIlRydWJlblwiLFxuICAgIFwiVHVyxI1va1wiLFxuICAgIFwiVXJhbVwiLFxuICAgIFwiVXJibMOta1wiLFxuICAgIFwiVmFqY8Ota1wiLFxuICAgIFwiVmFqZGFcIixcbiAgICBcIlZhbGFjaFwiLFxuICAgIFwiVmFsYWNob3ZpxI1cIixcbiAgICBcIlZhbGVudFwiLFxuICAgIFwiVmFsdcWha2FcIixcbiAgICBcIlZhbmVrXCIsXG4gICAgXCJWZXNlbFwiLFxuICAgIFwiVmljZW5cIixcbiAgICBcIlZpxaHFiG92c2vDvVwiLFxuICAgIFwiVmxhY2hcIixcbiAgICBcIlZvanRla1wiLFxuICAgIFwiVnlkYXJlbsO9XCIsXG4gICAgXCJaYWphY1wiLFxuICAgIFwiWmltYVwiLFxuICAgIFwiWmlta2FcIixcbiAgICBcIlrDoWJvcnNrw71cIixcbiAgICBcIlrDumJyaWtcIixcbiAgICBcIsSMYXBrb3ZpxI1cIixcbiAgICBcIsSMYXBsb3ZpxI1cIixcbiAgICBcIsSMYXJub2d1cnNrw71cIixcbiAgICBcIsSMaWVybnlcIixcbiAgICBcIsSMb2JyZGFcIixcbiAgICBcIsSOYcSPb1wiLFxuICAgIFwixI51cmljYVwiLFxuICAgIFwixI51cmnFoVwiLFxuICAgIFwixaBpZGxvXCIsXG4gICAgXCLFoGltb25vdmnEjVwiLFxuICAgIFwixaBrcmluaWFyXCIsXG4gICAgXCLFoGt1bHTDqXR5XCIsXG4gICAgXCLFoG1hamRhXCIsXG4gICAgXCLFoG9sdMOpc1wiLFxuICAgIFwixaBvbHTDvXNcIixcbiAgICBcIsWgdGVmYW5cIixcbiAgICBcIsWgdGVmYW5rYVwiLFxuICAgIFwixaB1bGNcIixcbiAgICBcIsWgdXJrYVwiLFxuICAgIFwixaB2ZWhsYVwiLFxuICAgIFwixaDFpWFzdG7DvVwiXG4gIF0sXG4gIFwid29tYW5fbGFzdF9uYW1lXCI6IFtcbiAgICBcIkFudGFsb3bDoVwiLFxuICAgIFwiQmFia292w6FcIixcbiAgICBcIkJhaG5vdsOhXCIsXG4gICAgXCJCYWzDocW+b3bDoVwiLFxuICAgIFwiQmFyYW5vdsOhXCIsXG4gICAgXCJCYXJhbmtvdsOhXCIsXG4gICAgXCJCYXJ0b3ZpxI1vdsOhXCIsXG4gICAgXCJCYXJ0b8Whb3bDoVwiLFxuICAgIFwiQmHEjW92w6FcIixcbiAgICBcIkJlcm5vbMOha292w6FcIixcbiAgICBcIkJlxYhvdsOhXCIsXG4gICAgXCJCaWNla292w6FcIixcbiAgICBcIkJpZWxpa292w6FcIixcbiAgICBcIkJsYWhvdsOhXCIsXG4gICAgXCJCb25kcm92w6FcIixcbiAgICBcIkJvc8Oha292w6FcIixcbiAgICBcIkJvxaFrb3bDoVwiLFxuICAgIFwiQnJlemlub3bDoVwiLFxuICAgIFwiQnVrb3Zza8OhXCIsXG4gICAgXCJDaGFsdXBrb3bDoVwiLFxuICAgIFwiQ2h1ZMOta292w6FcIixcbiAgICBcIkNpYnVsb3bDoVwiLFxuICAgIFwiQ2lidWxrb3bDoVwiLFxuICAgIFwiQ3lwcmljaG92w6FcIixcbiAgICBcIkPDrWdlcm92w6FcIixcbiAgICBcIkRhbmtvdsOhXCIsXG4gICAgXCJEYcWIa292w6FcIixcbiAgICBcIkRhxYhvdsOhXCIsXG4gICAgXCJEZWJuw6Fyb3bDoVwiLFxuICAgIFwiRGVqb3bDoVwiLFxuICAgIFwiRGVrw73FoW92w6FcIixcbiAgICBcIkRvbGXFvmFsb3bDoVwiLFxuICAgIFwiRG/EjW9sb21hbnNrw6FcIixcbiAgICBcIkRyb3Bwb3bDoVwiLFxuICAgIFwiRHVib3Zza8OhXCIsXG4gICAgXCJEdWRla292w6FcIixcbiAgICBcIkR1bG92w6FcIixcbiAgICBcIkR1bGxvdsOhXCIsXG4gICAgXCJEdXPDrWtvdsOhXCIsXG4gICAgXCJEdm9uxI1vdsOhXCIsXG4gICAgXCJEenVyamFuaW5vdsOhXCIsXG4gICAgXCJEw6F2aWRvdsOhXCIsXG4gICAgXCJGYWJpYW5vdsOhXCIsXG4gICAgXCJGYWJpw6Fub3bDoVwiLFxuICAgIFwiRmFqbm9yb3bDoVwiLFxuICAgIFwiRmFya2HFoW92c2vDoVwiLFxuICAgIFwiRmljb3bDoVwiLFxuICAgIFwiRmlsY292w6FcIixcbiAgICBcIkZpbGlwb3bDoVwiLFxuICAgIFwiRmlua292w6FcIixcbiAgICBcIkZ0b3Jla292w6FcIixcbiAgICBcIkdhxaFwYXJvdsOhXCIsXG4gICAgXCJHYcWhcGFyb3ZpxI1vdsOhXCIsXG4gICAgXCJHb2Nuw61rb3bDoVwiLFxuICAgIFwiR3JlZ29yb3bDoVwiLFxuICAgIFwiR3JlZ3XFoW92w6FcIixcbiAgICBcIkdyem7DoXJvdsOhXCIsXG4gICAgXCJIYWJsw6Frb3bDoVwiLFxuICAgIFwiSGFixaF1ZG92w6FcIixcbiAgICBcIkhhbGRvdsOhXCIsXG4gICAgXCJIYWx1xaFrb3bDoVwiLFxuICAgIFwiSGFsw6Frb3bDoVwiLFxuICAgIFwiSGFua292w6FcIixcbiAgICBcIkhhbnphbG92w6FcIixcbiAgICBcIkhhxaHEjcOha292w6FcIixcbiAgICBcIkhlcmV0aWtvdsOhXCIsXG4gICAgXCJIZcSNa292w6FcIixcbiAgICBcIkhsYXbDocSNZWtvdsOhXCIsXG4gICAgXCJIbGlua292w6FcIixcbiAgICBcIkhvbHVib3bDoVwiLFxuICAgIFwiSG9sdWJ5b3bDoVwiLFxuICAgIFwiSG9zc292w6FcIixcbiAgICBcIkhvem92w6FcIixcbiAgICBcIkhyYcWha292w6FcIixcbiAgICBcIkhyaWNvdsOhXCIsXG4gICAgXCJIcm1vdsOhXCIsXG4gICAgXCJIcnXFoW92c2vDoVwiLFxuICAgIFwiSHVib3bDoVwiLFxuICAgIFwiSWhuYcSNw6Frb3bDoVwiLFxuICAgIFwiSmFuZcSNZWtvdsOhXCIsXG4gICAgXCJKYW5vxaFrb3bDoVwiLFxuICAgIFwiSmFudG/FoW92acSNb3bDoVwiLFxuICAgIFwiSmFuw61rb3bDoVwiLFxuICAgIFwiSmFuxI1la292w6FcIixcbiAgICBcIkplZMS+b3Zza8OhXCIsXG4gICAgXCJKZW5kZWtvdsOhXCIsXG4gICAgXCJKb25hdG92w6FcIixcbiAgICBcIkp1cmlub3bDoVwiLFxuICAgIFwiSnVya292acSNb3bDoVwiLFxuICAgIFwiSnVyw61rb3bDoVwiLFxuICAgIFwiSsOhbm/FocOta292w6FcIixcbiAgICBcIkthZmVuZG92w6FcIixcbiAgICBcIkthbGlza8OhXCIsXG4gICAgXCJLYXJ1bG92w6FcIixcbiAgICBcIktlbsOtxb5vdsOhXCIsXG4gICAgXCJLbGFwa292w6FcIixcbiAgICBcIkttZcWlb3bDoVwiLFxuICAgIFwiS29sZXPDoXJvdsOhXCIsXG4gICAgXCJLb2xsw6Fyb3bDoVwiLFxuICAgIFwiS29sbmlrb3bDoVwiLFxuICAgIFwiS29sbsOta292w6FcIixcbiAgICBcIktvbMOhcm92w6FcIixcbiAgICBcIktvcmVjb3bDoVwiLFxuICAgIFwiS29zdGthb3bDoVwiLFxuICAgIFwiS29zdHJlY292w6FcIixcbiAgICBcIktvdsOhxI1vdsOhXCIsXG4gICAgXCJLb3bDocSNaWtvdsOhXCIsXG4gICAgXCJLb3pvdsOhXCIsXG4gICAgXCJLb8SNacWhb3bDoVwiLFxuICAgIFwiS3JhasOtxI1la292w6FcIixcbiAgICBcIktyYWrEjW92w6FcIixcbiAgICBcIktyYWrEjW92acSNb3bDoVwiLFxuICAgIFwiS3JhasSNw61yb3bDoVwiLFxuICAgIFwiS3LDoWxpa292w6FcIixcbiAgICBcIktyw7pwb3bDoVwiLFxuICAgIFwiS3Viw61rb3bDoVwiLFxuICAgIFwiS3lzZcS+b3bDoVwiLFxuICAgIFwiS8OhbGxheW92w6FcIixcbiAgICBcIkxhYnVkb3bDoVwiLFxuICAgIFwiTGVwxaHDrWtvdsOhXCIsXG4gICAgXCJMaXB0w6Frb3bDoVwiLFxuICAgIFwiTGlzaWNrw6FcIixcbiAgICBcIkx1Ymlub3bDoVwiLFxuICAgIFwiTHVrw6HEjW92w6FcIixcbiAgICBcIkx1cHTDoWtvdsOhXCIsXG4gICAgXCJMw63FoWtvdsOhXCIsXG4gICAgXCJNYWRlam92w6FcIixcbiAgICBcIk1hamVza8OhXCIsXG4gICAgXCJNYWxhY2hvdnNrw6FcIixcbiAgICBcIk1hbMOtxaFla292w6FcIixcbiAgICBcIk1hbW9qa292w6FcIixcbiAgICBcIk1hcmNpbmtvdsOhXCIsXG4gICAgXCJNYXJpw6Fub3bDoVwiLFxuICAgIFwiTWFzYXJ5a292w6FcIixcbiAgICBcIk1hc2xvdsOhXCIsXG4gICAgXCJNYXRpYcWha292w6FcIixcbiAgICBcIk1lZHZlxI9vdsOhXCIsXG4gICAgXCJNZWxjZXJvdsOhXCIsXG4gICAgXCJNZcSNaWFyb3bDoVwiLFxuICAgIFwiTWljaGFsw61rb3bDoVwiLFxuICAgIFwiTWloYWxpa292w6FcIixcbiAgICBcIk1paMOhbG92w6FcIixcbiAgICBcIk1paMOhbGlrb3bDoVwiLFxuICAgIFwiTWlrbG/FoWtvdsOhXCIsXG4gICAgXCJNaWt1bMOta292w6FcIixcbiAgICBcIk1pa3XFoW92w6FcIixcbiAgICBcIk1pa8O6xaFvdsOhXCIsXG4gICAgXCJNaWxvdG92w6FcIixcbiAgICBcIk1pbsOhxI1vdsOhXCIsXG4gICAgXCJNacWhw61rb3bDoVwiLFxuICAgIFwiTW9qxb5pxaFvdsOhXCIsXG4gICAgXCJNb2tyb8Whb3bDoVwiLFxuICAgIFwiTW9yb3bDoVwiLFxuICAgIFwiTW9yYXbEjcOta292w6FcIixcbiAgICBcIk15ZGxvdsOhXCIsXG4gICAgXCJOZW1jb3bDoVwiLFxuICAgIFwiTm92w6Frb3bDoVwiLFxuICAgIFwiT2LFoXV0b3bDoVwiLFxuICAgIFwiT25kcnXFoW92w6FcIixcbiAgICBcIk90xI1lbsOhxaFvdsOhXCIsXG4gICAgXCJQYXVrb3bDoVwiLFxuICAgIFwiUGF2bGlrb3Zza8OhXCIsXG4gICAgXCJQYXbDumtvdsOhXCIsXG4gICAgXCJQYcWhZWtvdsOhXCIsXG4gICAgXCJQYcWha292w6FcIixcbiAgICBcIlBlbGlrw6Fub3bDoVwiLFxuICAgIFwiUGV0cm92aWNrw6FcIixcbiAgICBcIlBldHJ1xaFrb3bDoVwiLFxuICAgIFwiUGXFoWtvdsOhXCIsXG4gICAgXCJQbGNob3bDoVwiLFxuICAgIFwiUGxla2FuZWNvdsOhXCIsXG4gICAgXCJQb2RocmFkc2vDoVwiLFxuICAgIFwiUG9ka29uaWNrw6FcIixcbiAgICBcIlBvbGlha292w6FcIixcbiAgICBcIlB1cMOha292w6FcIixcbiAgICBcIlJha292w6FcIixcbiAgICBcIlJlcGlza8OhXCIsXG4gICAgXCJSb21hbsSNw61rb3bDoVwiLFxuICAgIFwiUnVzb3bDoVwiLFxuICAgIFwiUnXFvmnEjWtvdsOhXCIsXG4gICAgXCJSeWJuw63EjWVrb3bDoVwiLFxuICAgIFwiUnliw6Fyb3bDoVwiLFxuICAgIFwiUnliw6FyaWtvdsOhXCIsXG4gICAgXCJTYW1zb25vdsOhXCIsXG4gICAgXCJTZWRsaWFrb3bDoVwiLFxuICAgIFwiU2Vua292w6FcIixcbiAgICBcIlNrbGVua292w6FcIixcbiAgICBcIlNrb2thbm92w6FcIixcbiAgICBcIlNrdXRlY2vDoVwiLFxuICAgIFwiU2xhxaHFpWFub3bDoVwiLFxuICAgIFwiU2xvYm9kb3bDoVwiLFxuICAgIFwiU2xvYm9kbsOta292w6FcIixcbiAgICBcIlNsb3RvdsOhXCIsXG4gICAgXCJTbG92w6Frb3bDoVwiLFxuICAgIFwiU21yZWtvdsOhXCIsXG4gICAgXCJTdG9kb2xvdsOhXCIsXG4gICAgXCJTdHJha292w6FcIixcbiAgICBcIlN0cm5pc2tvdsOhXCIsXG4gICAgXCJTdnJiw61rb3bDoVwiLFxuICAgIFwiU8OhbWVsb3bDoVwiLFxuICAgIFwiU8O9a29yb3bDoVwiLFxuICAgIFwiVGF0YXJvdsOhXCIsXG4gICAgXCJUYXRhcmtvdsOhXCIsXG4gICAgXCJUYXTDoXJvdsOhXCIsXG4gICAgXCJUYXTDoXJrYW92w6FcIixcbiAgICBcIlRob21rb3bDoVwiLFxuICAgIFwiVG9tZcSNZWtvdsOhXCIsXG4gICAgXCJUb21rb3bDoVwiLFxuICAgIFwiVHJ1YmVub3bDoVwiLFxuICAgIFwiVHVyxI1va292w6FcIixcbiAgICBcIlVyYW1vdsOhXCIsXG4gICAgXCJVcmJsw61rb3bDoVwiLFxuICAgIFwiVmFqY8Ota292w6FcIixcbiAgICBcIlZhamRvdsOhXCIsXG4gICAgXCJWYWxhY2hvdsOhXCIsXG4gICAgXCJWYWxhY2hvdmnEjW92w6FcIixcbiAgICBcIlZhbGVudG92w6FcIixcbiAgICBcIlZhbHXFoWtvdsOhXCIsXG4gICAgXCJWYW5la292w6FcIixcbiAgICBcIlZlc2Vsb3bDoVwiLFxuICAgIFwiVmljZW5vdsOhXCIsXG4gICAgXCJWacWhxYhvdnNrw6FcIixcbiAgICBcIlZsYWNob3bDoVwiLFxuICAgIFwiVm9qdGVrb3bDoVwiLFxuICAgIFwiVnlkYXJlbsOhXCIsXG4gICAgXCJaYWphY292w6FcIixcbiAgICBcIlppbW92w6FcIixcbiAgICBcIlppbWtvdsOhXCIsXG4gICAgXCJaw6Fib3Jza8OhXCIsXG4gICAgXCJaw7picmlrb3bDoVwiLFxuICAgIFwixIxhcGtvdmnEjW92w6FcIixcbiAgICBcIsSMYXBsb3ZpxI1vdsOhXCIsXG4gICAgXCLEjGFybm9ndXJza8OhXCIsXG4gICAgXCLEjGllcm7DoVwiLFxuICAgIFwixIxvYnJkb3bDoVwiLFxuICAgIFwixI5hxI9vdsOhXCIsXG4gICAgXCLEjnVyaWNvdsOhXCIsXG4gICAgXCLEjnVyacWhb3bDoVwiLFxuICAgIFwixaBpZGxvdsOhXCIsXG4gICAgXCLFoGltb25vdmnEjW92w6FcIixcbiAgICBcIsWga3Jpbmlhcm92w6FcIixcbiAgICBcIsWga3VsdMOpdHlvdsOhXCIsXG4gICAgXCLFoG1hamRvdsOhXCIsXG4gICAgXCLFoG9sdMOpc292w6FcIixcbiAgICBcIsWgb2x0w71zb3bDoVwiLFxuICAgIFwixaB0ZWZhbm92w6FcIixcbiAgICBcIsWgdGVmYW5rb3bDoVwiLFxuICAgIFwixaB1bGNvdsOhXCIsXG4gICAgXCLFoHVya292w6FcIixcbiAgICBcIsWgdmVobG92w6FcIixcbiAgICBcIsWgxaVhc3Ruw6FcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJJbmcuXCIsXG4gICAgXCJNZ3IuXCIsXG4gICAgXCJKVURyLlwiLFxuICAgIFwiTVVEci5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJQaGQuXCJcbiAgXSxcbiAgXCJ0aXRsZVwiOiB7XG4gICAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiTGVhZFwiLFxuICAgICAgXCJTZW5pb3JcIixcbiAgICAgIFwiRGlyZWN0XCIsXG4gICAgICBcIkNvcnBvcmF0ZVwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkZ1dHVyZVwiLFxuICAgICAgXCJQcm9kdWN0XCIsXG4gICAgICBcIk5hdGlvbmFsXCIsXG4gICAgICBcIlJlZ2lvbmFsXCIsXG4gICAgICBcIkRpc3RyaWN0XCIsXG4gICAgICBcIkNlbnRyYWxcIixcbiAgICAgIFwiR2xvYmFsXCIsXG4gICAgICBcIkN1c3RvbWVyXCIsXG4gICAgICBcIkludmVzdG9yXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiSW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJMZWdhY3lcIixcbiAgICAgIFwiRm9yd2FyZFwiLFxuICAgICAgXCJJbnRlcm5hbFwiLFxuICAgICAgXCJIdW1hblwiLFxuICAgICAgXCJDaGllZlwiLFxuICAgICAgXCJQcmluY2lwYWxcIlxuICAgIF0sXG4gICAgXCJsZXZlbFwiOiBbXG4gICAgICBcIlNvbHV0aW9uc1wiLFxuICAgICAgXCJQcm9ncmFtXCIsXG4gICAgICBcIkJyYW5kXCIsXG4gICAgICBcIlNlY3VyaXR5XCIsXG4gICAgICBcIlJlc2VhcmNoXCIsXG4gICAgICBcIk1hcmtldGluZ1wiLFxuICAgICAgXCJEaXJlY3RpdmVzXCIsXG4gICAgICBcIkltcGxlbWVudGF0aW9uXCIsXG4gICAgICBcIkludGVncmF0aW9uXCIsXG4gICAgICBcIkZ1bmN0aW9uYWxpdHlcIixcbiAgICAgIFwiUmVzcG9uc2VcIixcbiAgICAgIFwiUGFyYWRpZ21cIixcbiAgICAgIFwiVGFjdGljc1wiLFxuICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgXCJNYXJrZXRzXCIsXG4gICAgICBcIkdyb3VwXCIsXG4gICAgICBcIkRpdmlzaW9uXCIsXG4gICAgICBcIkFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJPcHRpbWl6YXRpb25cIixcbiAgICAgIFwiT3BlcmF0aW9uc1wiLFxuICAgICAgXCJJbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJJbnRyYW5ldFwiLFxuICAgICAgXCJDb21tdW5pY2F0aW9uc1wiLFxuICAgICAgXCJXZWJcIixcbiAgICAgIFwiQnJhbmRpbmdcIixcbiAgICAgIFwiUXVhbGl0eVwiLFxuICAgICAgXCJBc3N1cmFuY2VcIixcbiAgICAgIFwiTW9iaWxpdHlcIixcbiAgICAgIFwiQWNjb3VudHNcIixcbiAgICAgIFwiRGF0YVwiLFxuICAgICAgXCJDcmVhdGl2ZVwiLFxuICAgICAgXCJDb25maWd1cmF0aW9uXCIsXG4gICAgICBcIkFjY291bnRhYmlsaXR5XCIsXG4gICAgICBcIkludGVyYWN0aW9uc1wiLFxuICAgICAgXCJGYWN0b3JzXCIsXG4gICAgICBcIlVzYWJpbGl0eVwiLFxuICAgICAgXCJNZXRyaWNzXCJcbiAgICBdLFxuICAgIFwiam9iXCI6IFtcbiAgICAgIFwiU3VwZXJ2aXNvclwiLFxuICAgICAgXCJBc3NvY2lhdGVcIixcbiAgICAgIFwiRXhlY3V0aXZlXCIsXG4gICAgICBcIkxpYXNvblwiLFxuICAgICAgXCJPZmZpY2VyXCIsXG4gICAgICBcIk1hbmFnZXJcIixcbiAgICAgIFwiRW5naW5lZXJcIixcbiAgICAgIFwiU3BlY2lhbGlzdFwiLFxuICAgICAgXCJEaXJlY3RvclwiLFxuICAgICAgXCJDb29yZGluYXRvclwiLFxuICAgICAgXCJBZG1pbmlzdHJhdG9yXCIsXG4gICAgICBcIkFyY2hpdGVjdFwiLFxuICAgICAgXCJBbmFseXN0XCIsXG4gICAgICBcIkRlc2lnbmVyXCIsXG4gICAgICBcIlBsYW5uZXJcIixcbiAgICAgIFwiT3JjaGVzdHJhdG9yXCIsXG4gICAgICBcIlRlY2huaWNpYW5cIixcbiAgICAgIFwiRGV2ZWxvcGVyXCIsXG4gICAgICBcIlByb2R1Y2VyXCIsXG4gICAgICBcIkNvbnN1bHRhbnRcIixcbiAgICAgIFwiQXNzaXN0YW50XCIsXG4gICAgICBcIkZhY2lsaXRhdG9yXCIsXG4gICAgICBcIkFnZW50XCIsXG4gICAgICBcIlJlcHJlc2VudGF0aXZlXCIsXG4gICAgICBcIlN0cmF0ZWdpc3RcIlxuICAgIF1cbiAgfSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje21hbl9maXJzdF9uYW1lfSAje21hbl9sYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3t3b21hbl9maXJzdF9uYW1lfSAje3dvbWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFuX2ZpcnN0X25hbWV9ICN7bWFuX2xhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7bWFuX2ZpcnN0X25hbWV9ICN7bWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFuX2ZpcnN0X25hbWV9ICN7bWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFuX2ZpcnN0X25hbWV9ICN7bWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7d29tYW5fZmlyc3RfbmFtZX0gI3t3b21hbl9sYXN0X25hbWV9XCIsXG4gICAgXCIje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3t3b21hbl9maXJzdF9uYW1lfSAje3dvbWFuX2xhc3RfbmFtZX1cIlxuICBdXG59O1xuc2sucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDkjIyAjIyMgIyMjXCIsXG4gICAgXCIwIyMgIyMjIyAjIyMjXCIsXG4gICAgXCIwIyAjIyMjICMjIyNcIixcbiAgICBcIis0MjEgIyMjICMjIyAjIyNcIlxuICBdXG59O1xuIiwidmFyIHN2ID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gc3Y7XG5zdi50aXRsZSA9IFwiU3dlZGlzaFwiO1xuc3YuYWRkcmVzcyA9IHtcbiAgXCJjaXR5X3ByZWZpeFwiOiBbXG4gICAgXCJTw7ZkZXJcIixcbiAgICBcIk5vcnJcIixcbiAgICBcIlbDpHN0XCIsXG4gICAgXCLDlnN0ZXJcIixcbiAgICBcIkFsaW5nXCIsXG4gICAgXCJBclwiLFxuICAgIFwiQXZcIixcbiAgICBcIkJvXCIsXG4gICAgXCJCclwiLFxuICAgIFwiQsOlXCIsXG4gICAgXCJFa1wiLFxuICAgIFwiRW5cIixcbiAgICBcIkVza1wiLFxuICAgIFwiRmFsXCIsXG4gICAgXCJHw6R2XCIsXG4gICAgXCJHw7Z0ZVwiLFxuICAgIFwiSGFcIixcbiAgICBcIkhlbHNpbmdcIixcbiAgICBcIkthcmxcIixcbiAgICBcIktyaXN0XCIsXG4gICAgXCJLcmFtXCIsXG4gICAgXCJLdW5nXCIsXG4gICAgXCJLw7ZcIixcbiAgICBcIkx5Y2tcIixcbiAgICBcIk55XCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCJzdGFkXCIsXG4gICAgXCJsYW5kXCIsXG4gICAgXCJzw6VzXCIsXG4gICAgXCLDpXNcIixcbiAgICBcImhvbG1cIixcbiAgICBcInR1bmFcIixcbiAgICBcInN0YVwiLFxuICAgIFwiYmVyZ1wiLFxuICAgIFwibMO2dlwiLFxuICAgIFwiYm9yZ1wiLFxuICAgIFwibW9yYVwiLFxuICAgIFwiaGFtblwiLFxuICAgIFwiZm9yc1wiLFxuICAgIFwia8O2cGluZ1wiLFxuICAgIFwiYnlcIixcbiAgICBcImh1bHRcIixcbiAgICBcInRvcnBcIixcbiAgICBcImZyZWRcIixcbiAgICBcInZpa1wiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJSeXNzbGFuZFwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLaW5hXCIsXG4gICAgXCJVU0FcIixcbiAgICBcIkJyYXNpbGllblwiLFxuICAgIFwiQXVzdHJhbGllblwiLFxuICAgIFwiSW5kaWVuXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkthemFrc3RhblwiLFxuICAgIFwiQWxnZXJpZXRcIixcbiAgICBcIkRSIEtvbmdvXCIsXG4gICAgXCJEYW5tYXJrXCIsXG4gICAgXCJGw6Ryw7Zhcm5hXCIsXG4gICAgXCJHcsO2bmxhbmRcIixcbiAgICBcIlNhdWRpYXJhYmllblwiLFxuICAgIFwiTWV4aWtvXCIsXG4gICAgXCJJbmRvbmVzaWVuXCIsXG4gICAgXCJTdWRhblwiLFxuICAgIFwiTGlieWVuXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJNb25nb2xpZXRcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlRjaGFkXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJTeWRhZnJpa2FcIixcbiAgICBcIkNvbG9tYmlhXCIsXG4gICAgXCJFdGlvcGllblwiLFxuICAgIFwiQm9saXZpYVwiLFxuICAgIFwiTWF1cmV0YW5pZW5cIixcbiAgICBcIkVneXB0ZW5cIixcbiAgICBcIlRhbnphbmlhXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJNb8OnYW1iaXF1ZVwiLFxuICAgIFwiVHVya2lldFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiTWFyb2Nrb1wiLFxuICAgIFwiVsOkc3RzYWhhcmFcIixcbiAgICBcIkJ1cm1hXCIsXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiQ2VudHJhbGFmcmlrYW5za2EgcmVwdWJsaWtlblwiLFxuICAgIFwiU3lkc3VkYW5cIixcbiAgICBcIlVrcmFpbmFcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJNYWRhZ2Fza2FyXCIsXG4gICAgXCJLZW55YVwiLFxuICAgIFwiRnJhbmtyaWtlXCIsXG4gICAgXCJGcmFuc2thIEd1eWFuYVwiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIlRoYWlsYW5kXCIsXG4gICAgXCJTcGFuaWVuXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIlBhcHVhIE55YSBHdWluZWFcIixcbiAgICBcIlN2ZXJpZ2VcIixcbiAgICBcIlV6YmVraXN0YW5cIixcbiAgICBcIklyYWtcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiSmFwYW5cIixcbiAgICBcIlR5c2tsYW5kXCIsXG4gICAgXCJLb25nb1wiLFxuICAgIFwiRmlubGFuZFwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIk5vcmdlXCIsXG4gICAgXCJTdmFsYmFyZFwiLFxuICAgIFwiSmFuIE1heWVuXCIsXG4gICAgXCJFbGZlbmJlbnNrdXN0ZW5cIixcbiAgICBcIlBvbGVuXCIsXG4gICAgXCJJdGFsaWVuXCIsXG4gICAgXCJGaWxpcHBpbmVybmFcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiTnlhIFplZWxhbmRcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIlN0b3Jicml0YW5uaWVuXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiUnVtw6RuaWVuXCIsXG4gICAgXCJMYW9zXCIsXG4gICAgXCJVZ2FuZGFcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiVml0cnlzc2xhbmRcIixcbiAgICBcIktpcmdpemlzdGFuXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTeXJpZW5cIixcbiAgICBcIkthbWJvZGphXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJUdW5pc2llblwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkJhbmdsYWRlc2hcIixcbiAgICBcIlRhZHpqaWtpc3RhblwiLFxuICAgIFwiR3Jla2xhbmRcIixcbiAgICBcIk5pY2FyYWd1YVwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiTm9yZGtvcmVhXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiQnVsZ2FyaWVuXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiU3lka29yZWFcIixcbiAgICBcIlVuZ2VyblwiLFxuICAgIFwiUG9ydHVnYWxcIixcbiAgICBcIkpvcmRhbmllblwiLFxuICAgIFwiU2VyYmllblwiLFxuICAgIFwiQXplcmJhamR6amFuXCIsXG4gICAgXCLDlnN0ZXJyaWtlXCIsXG4gICAgXCJGw7ZyZW5hZGUgQXJhYmVtaXJhdGVuXCIsXG4gICAgXCJUamVja2llblwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIklybGFuZFwiLFxuICAgIFwiR2VvcmdpZW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiTGl0YXVlblwiLFxuICAgIFwiTGV0dGxhbmRcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIktyb2F0aWVuXCIsXG4gICAgXCJCb3NuaWVuIG9jaCBIZXJjZWdvdmluYVwiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiU2xvdmFraWVuXCIsXG4gICAgXCJEb21pbmlrYW5za2EgcmVwdWJsaWtlblwiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJFc3RsYW5kXCIsXG4gICAgXCJEYW5tYXJrXCIsXG4gICAgXCJGw6Ryw7Zhcm5hXCIsXG4gICAgXCJHcsO2bmxhbmRcIixcbiAgICBcIk5lZGVybMOkbmRlcm5hXCIsXG4gICAgXCJTY2h3ZWl6XCIsXG4gICAgXCJHdWluZWEtQmlzc2F1XCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIk1vbGRhdmllblwiLFxuICAgIFwiQmVsZ2llblwiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiQXJtZW5pZW5cIixcbiAgICBcIkFsYmFuaWVuXCIsXG4gICAgXCJTYWxvbW9uw7Zhcm5hXCIsXG4gICAgXCJFa3ZhdG9yaWFsZ3VpbmVhXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJNYWtlZG9uaWVuXCIsXG4gICAgXCJEamlib3V0aVwiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJTbG92ZW5pZW5cIixcbiAgICBcIkZpamlcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiU3dhemlsYW5kXCIsXG4gICAgXCJUaW1vci1MZXN0ZVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiQmFoYW1hc1wiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiSmFtYWljYVwiLFxuICAgIFwiS29zb3ZvXCIsXG4gICAgXCJMaWJhbm9uXCIsXG4gICAgXCJDeXBlcm5cIixcbiAgICBcIkJydW5laVwiLFxuICAgIFwiVHJpbmlkYWQgb2NoIFRvYmFnb1wiLFxuICAgIFwiS2FwIFZlcmRlXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiTHV4ZW1idXJnXCIsXG4gICAgXCJLb21vcmVybmFcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiU8OjbyBUb23DqSBvY2ggUHLDrW5jaXBlXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJNaWtyb25lc2llbnMgZmVkZXJlcmFkZSBzdGF0ZXJcIixcbiAgICBcIlNpbmdhcG9yZVwiLFxuICAgIFwiQmFocmFpblwiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJTZXljaGVsbGVybmFcIixcbiAgICBcIkFudGlndWEgb2NoIEJhcmJ1ZGFcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJTYWludCBWaW5jZW50IG9jaCBHcmVuYWRpbmVybmFcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJNYWxkaXZlcm5hXCIsXG4gICAgXCJTYWludCBLaXR0cyBvY2ggTmV2aXNcIixcbiAgICBcIk1hcnNoYWxsw7Zhcm5hXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJNb25hY29cIixcbiAgICBcIlZhdGlrYW5zdGF0ZW5cIlxuICBdLFxuICBcImNvbW1vbl9zdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcInMgVsOkZ1wiLFxuICAgIFwicyBHYXRhXCJcbiAgXSxcbiAgXCJzdHJlZXRfcHJlZml4XCI6IFtcbiAgICBcIlbDpHN0cmFcIixcbiAgICBcIsOWc3RyYVwiLFxuICAgIFwiTm9ycmFcIixcbiAgICBcIlPDtmRyYVwiLFxuICAgIFwiw5Z2cmVcIixcbiAgICBcIlVuZHJlXCJcbiAgXSxcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJCasO2cmtcIixcbiAgICBcIkrDpHJudsOkZ3NcIixcbiAgICBcIlJpbmdcIixcbiAgICBcIlNrb2xcIixcbiAgICBcIlNrb2dzXCIsXG4gICAgXCJOeVwiLFxuICAgIFwiR3JhblwiLFxuICAgIFwiSWRyb3R0c1wiLFxuICAgIFwiU3RvclwiLFxuICAgIFwiS3lya1wiLFxuICAgIFwiSW5kdXN0cmlcIixcbiAgICBcIlBhcmtcIixcbiAgICBcIlN0cmFuZFwiLFxuICAgIFwiU2tvbFwiLFxuICAgIFwiVHLDpGRnw6VyZFwiLFxuICAgIFwiw4RuZ3NcIixcbiAgICBcIkt5cmtvXCIsXG4gICAgXCJWaWxsYVwiLFxuICAgIFwiRWtcIixcbiAgICBcIkt2YXJuXCIsXG4gICAgXCJTdGF0aW9uc1wiLFxuICAgIFwiQmFja1wiLFxuICAgIFwiRnVydVwiLFxuICAgIFwiR2VuXCIsXG4gICAgXCJGYWJyaWtzXCIsXG4gICAgXCLDhWtlclwiLFxuICAgIFwiQsOkY2tcIixcbiAgICBcIkFzcFwiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJ2w6RnZW5cIixcbiAgICBcImdhdGFuXCIsXG4gICAgXCJncsOkbmRlblwiLFxuICAgIFwiZ8OkcmRldFwiLFxuICAgIFwiYWxsw6luXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCbGVraW5nZVwiLFxuICAgIFwiRGFsYXJuYVwiLFxuICAgIFwiR290bGFuZFwiLFxuICAgIFwiR8OkdmxlYm9yZ1wiLFxuICAgIFwiR8O2dGVib3JnXCIsXG4gICAgXCJIYWxsYW5kXCIsXG4gICAgXCJKw6RtdGxhbmRcIixcbiAgICBcIkrDtm5rw7ZwaW5nXCIsXG4gICAgXCJLYWxtYXJcIixcbiAgICBcIktyb25vYmVyZ1wiLFxuICAgIFwiTm9ycmJvdHRlblwiLFxuICAgIFwiU2thcmFib3JnXCIsXG4gICAgXCJTa8OlbmVcIixcbiAgICBcIlN0b2NraG9sbVwiLFxuICAgIFwiU8O2ZGVybWFubGFuZFwiLFxuICAgIFwiVXBwc2FsYVwiLFxuICAgIFwiVsOkcm1sYW5kXCIsXG4gICAgXCJWw6RzdGVyYm90dGVuXCIsXG4gICAgXCJWw6RzdGVybm9ycmxhbmRcIixcbiAgICBcIlbDpHN0bWFubGFuZFwiLFxuICAgIFwiw4RsdnNib3JnXCIsXG4gICAgXCLDlnJlYnJvXCIsXG4gICAgXCLDlnN0ZXJnw7Z0bGFuZFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7c3RyZWV0X3ByZWZpeH0gI3tzdHJlZXRfcm9vdH0je3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJMZ2guICMjI1wiLFxuICAgIFwiSHVzICMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiU3ZlcmlnZVwiXG4gIF1cbn07XG5zdi5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJHcnVwcGVuXCIsXG4gICAgXCJBQlwiLFxuICAgIFwiSEJcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJJbnZlc3RtZW50XCIsXG4gICAgXCJLb21tYW5kaXRib2xhZ1wiLFxuICAgIFwiQWt0aWVib2xhZ1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbnN2LmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwic2VcIixcbiAgICBcIm51XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJjb21cIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5zdi5uYW1lID0ge1xuICBcImZpcnN0X25hbWVfd29tZW5cIjogW1xuICAgIFwiTWFyaWFcIixcbiAgICBcIkFubmFcIixcbiAgICBcIk1hcmdhcmV0YVwiLFxuICAgIFwiRWxpc2FiZXRoXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIkJpcmdpdHRhXCIsXG4gICAgXCJLcmlzdGluYVwiLFxuICAgIFwiS2FyaW5cIixcbiAgICBcIkVsaXNhYmV0XCIsXG4gICAgXCJNYXJpZVwiXG4gIF0sXG4gIFwiZmlyc3RfbmFtZV9tZW5cIjogW1xuICAgIFwiRXJpa1wiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiS2FybFwiLFxuICAgIFwiQW5kZXJzXCIsXG4gICAgXCJQZXJcIixcbiAgICBcIkpvaGFuXCIsXG4gICAgXCJOaWxzXCIsXG4gICAgXCJMZW5uYXJ0XCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJIYW5zXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiSm9oYW5zc29uXCIsXG4gICAgXCJBbmRlcnNzb25cIixcbiAgICBcIkthcmxzc29uXCIsXG4gICAgXCJOaWxzc29uXCIsXG4gICAgXCJFcmlrc3NvblwiLFxuICAgIFwiTGFyc3NvblwiLFxuICAgIFwiT2xzc29uXCIsXG4gICAgXCJQZXJzc29uXCIsXG4gICAgXCJTdmVuc3NvblwiLFxuICAgIFwiR3VzdGFmc3NvblwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkRyLlwiLFxuICAgIFwiUHJvZi5cIixcbiAgICBcIlBoRC5cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJMZWFkXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RcIixcbiAgICAgIFwiQ29ycG9yYXRlXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiRnV0dXJlXCIsXG4gICAgICBcIlByb2R1Y3RcIixcbiAgICAgIFwiTmF0aW9uYWxcIixcbiAgICAgIFwiUmVnaW9uYWxcIixcbiAgICAgIFwiRGlzdHJpY3RcIixcbiAgICAgIFwiQ2VudHJhbFwiLFxuICAgICAgXCJHbG9iYWxcIixcbiAgICAgIFwiQ3VzdG9tZXJcIixcbiAgICAgIFwiSW52ZXN0b3JcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJJbnRlcm5hdGlvbmFsXCIsXG4gICAgICBcIkxlZ2FjeVwiLFxuICAgICAgXCJGb3J3YXJkXCIsXG4gICAgICBcIkludGVybmFsXCIsXG4gICAgICBcIkh1bWFuXCIsXG4gICAgICBcIkNoaWVmXCIsXG4gICAgICBcIlByaW5jaXBhbFwiXG4gICAgXSxcbiAgICBcImxldmVsXCI6IFtcbiAgICAgIFwiU29sdXRpb25zXCIsXG4gICAgICBcIlByb2dyYW1cIixcbiAgICAgIFwiQnJhbmRcIixcbiAgICAgIFwiU2VjdXJpdHlcIixcbiAgICAgIFwiUmVzZWFyY2hcIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIkRpcmVjdGl2ZXNcIixcbiAgICAgIFwiSW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiSW50ZWdyYXRpb25cIixcbiAgICAgIFwiRnVuY3Rpb25hbGl0eVwiLFxuICAgICAgXCJSZXNwb25zZVwiLFxuICAgICAgXCJQYXJhZGlnbVwiLFxuICAgICAgXCJUYWN0aWNzXCIsXG4gICAgICBcIklkZW50aXR5XCIsXG4gICAgICBcIk1hcmtldHNcIixcbiAgICAgIFwiR3JvdXBcIixcbiAgICAgIFwiRGl2aXNpb25cIixcbiAgICAgIFwiQXBwbGljYXRpb25zXCIsXG4gICAgICBcIk9wdGltaXphdGlvblwiLFxuICAgICAgXCJPcGVyYXRpb25zXCIsXG4gICAgICBcIkluZnJhc3RydWN0dXJlXCIsXG4gICAgICBcIkludHJhbmV0XCIsXG4gICAgICBcIkNvbW11bmljYXRpb25zXCIsXG4gICAgICBcIldlYlwiLFxuICAgICAgXCJCcmFuZGluZ1wiLFxuICAgICAgXCJRdWFsaXR5XCIsXG4gICAgICBcIkFzc3VyYW5jZVwiLFxuICAgICAgXCJNb2JpbGl0eVwiLFxuICAgICAgXCJBY2NvdW50c1wiLFxuICAgICAgXCJEYXRhXCIsXG4gICAgICBcIkNyZWF0aXZlXCIsXG4gICAgICBcIkNvbmZpZ3VyYXRpb25cIixcbiAgICAgIFwiQWNjb3VudGFiaWxpdHlcIixcbiAgICAgIFwiSW50ZXJhY3Rpb25zXCIsXG4gICAgICBcIkZhY3RvcnNcIixcbiAgICAgIFwiVXNhYmlsaXR5XCIsXG4gICAgICBcIk1ldHJpY3NcIlxuICAgIF0sXG4gICAgXCJqb2JcIjogW1xuICAgICAgXCJTdXBlcnZpc29yXCIsXG4gICAgICBcIkFzc29jaWF0ZVwiLFxuICAgICAgXCJFeGVjdXRpdmVcIixcbiAgICAgIFwiTGlhc29uXCIsXG4gICAgICBcIk9mZmljZXJcIixcbiAgICAgIFwiTWFuYWdlclwiLFxuICAgICAgXCJFbmdpbmVlclwiLFxuICAgICAgXCJTcGVjaWFsaXN0XCIsXG4gICAgICBcIkRpcmVjdG9yXCIsXG4gICAgICBcIkNvb3JkaW5hdG9yXCIsXG4gICAgICBcIkFkbWluaXN0cmF0b3JcIixcbiAgICAgIFwiQXJjaGl0ZWN0XCIsXG4gICAgICBcIkFuYWx5c3RcIixcbiAgICAgIFwiRGVzaWduZXJcIixcbiAgICAgIFwiUGxhbm5lclwiLFxuICAgICAgXCJPcmNoZXN0cmF0b3JcIixcbiAgICAgIFwiVGVjaG5pY2lhblwiLFxuICAgICAgXCJEZXZlbG9wZXJcIixcbiAgICAgIFwiUHJvZHVjZXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiRmFjaWxpdGF0b3JcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiUmVwcmVzZW50YXRpdmVcIixcbiAgICAgIFwiU3RyYXRlZ2lzdFwiXG4gICAgXVxuICB9LFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tmaXJzdF9uYW1lX3dvbWVufSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZV9tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX3dvbWVufSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZV9tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX3dvbWVufSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZV9tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZV9tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZV93b21lbn0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbnN2LnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIyMtIyMjIyNcIixcbiAgICBcIiMjIyMtIyMjIyMjXCJcbiAgXVxufTtcbnN2LmNlbGxfcGhvbmUgPSB7XG4gIFwiY29tbW9uX2NlbGxfcHJlZml4XCI6IFtcbiAgICA1NixcbiAgICA2MixcbiAgICA1OVxuICBdLFxuICBcImZvcm1hdHNcIjogW1xuICAgIFwiI3tjb21tb25fY2VsbF9wcmVmaXh9LSMjIy0jIyMjXCJcbiAgXVxufTtcbnN2LmNvbW1lcmNlID0ge1xuICBcImNvbG9yXCI6IFtcbiAgICBcInZpdFwiLFxuICAgIFwic2lsdmVyXCIsXG4gICAgXCJncsOlXCIsXG4gICAgXCJzdmFydFwiLFxuICAgIFwicsO2ZFwiLFxuICAgIFwiZ3LDtm5cIixcbiAgICBcImJsw6VcIixcbiAgICBcImd1bFwiLFxuICAgIFwibGlsYVwiLFxuICAgIFwiaW5kaWdvXCIsXG4gICAgXCJndWxkXCIsXG4gICAgXCJicnVuXCIsXG4gICAgXCJyb3NhXCIsXG4gICAgXCJwdXJwdXJcIixcbiAgICBcImtvcmFsbFwiXG4gIF0sXG4gIFwiZGVwYXJ0bWVudFwiOiBbXG4gICAgXCJCw7Zja2VyXCIsXG4gICAgXCJGaWxtZXJcIixcbiAgICBcIk11c2lrXCIsXG4gICAgXCJTcGVsXCIsXG4gICAgXCJFbGVrdHJvbmlrXCIsXG4gICAgXCJEYXRvcmVyXCIsXG4gICAgXCJIZW1cIixcbiAgICBcIlRyw6RkZ8OlcmRcIixcbiAgICBcIlZlcmt0eWdcIixcbiAgICBcIkxpdnNtZWRlbFwiLFxuICAgIFwiSMOkbHNhXCIsXG4gICAgXCJTa8O2bmhldFwiLFxuICAgIFwiTGVrc2FrZXJcIixcbiAgICBcIktsw6Rkc2VsXCIsXG4gICAgXCJTa29yXCIsXG4gICAgXCJTbXlja2VuXCIsXG4gICAgXCJTcG9ydFwiXG4gIF0sXG4gIFwicHJvZHVjdF9uYW1lXCI6IHtcbiAgICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkxpdGVuXCIsXG4gICAgICBcIkVyZ29ub21pc2tcIixcbiAgICAgIFwiUm9idXN0XCIsXG4gICAgICBcIkludGVsbGlnZW50XCIsXG4gICAgICBcIlPDtnRcIixcbiAgICAgIFwiT3Ryb2xpZ1wiLFxuICAgICAgXCJGYXRhc3Rpc2tcIixcbiAgICAgIFwiUHJha3Rpc2tcIixcbiAgICAgIFwiU2xpbW1hZFwiLFxuICAgICAgXCJHcnltXCJcbiAgICBdLFxuICAgIFwibWF0ZXJpYWxcIjogW1xuICAgICAgXCJTdMOlbFwiLFxuICAgICAgXCJNZXRhbGxcIixcbiAgICAgIFwiVHLDpFwiLFxuICAgICAgXCJCZXRvbmdcIixcbiAgICAgIFwiUGxhc3RcIixcbiAgICAgIFwiQm9tdWxcIixcbiAgICAgIFwiR3JuaXRcIixcbiAgICAgIFwiR3VtbWlcIixcbiAgICAgIFwiTGF0ZXhcIlxuICAgIF0sXG4gICAgXCJwcm9kdWN0XCI6IFtcbiAgICAgIFwiU3RvbFwiLFxuICAgICAgXCJCaWxcIixcbiAgICAgIFwiRGF0b3JcIixcbiAgICAgIFwiSGFuZHNrYXJcIixcbiAgICAgIFwiUGFudHNcIixcbiAgICAgIFwiU2hpcnRcIixcbiAgICAgIFwiVGFibGVcIixcbiAgICAgIFwiU2hvZXNcIixcbiAgICAgIFwiSGF0XCJcbiAgICBdXG4gIH1cbn07XG5zdi50ZWFtID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJJRlwiLFxuICAgIFwiRkZcIixcbiAgICBcIkJLXCIsXG4gICAgXCJIS1wiLFxuICAgIFwiQUlGXCIsXG4gICAgXCJTS1wiLFxuICAgIFwiRkNcIixcbiAgICBcIlNLXCIsXG4gICAgXCJCb0lTXCIsXG4gICAgXCJGS1wiLFxuICAgIFwiQklTXCIsXG4gICAgXCJGSUZcIixcbiAgICBcIklLXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7QWRkcmVzcy5jaXR5fSAje3N1ZmZpeH1cIlxuICBdXG59O1xuIiwidmFyIHZpID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gdmk7XG52aS50aXRsZSA9IFwiVmlldG5hbWVzZVwiO1xudmkuYWRkcmVzcyA9IHtcbiAgXCJjaXR5X3Jvb3RcIjogW1xuICAgIFwiQuG6r2MgR2lhbmdcIixcbiAgICBcIkLhuq9jIEvhuqFuXCIsXG4gICAgXCJC4bqvYyBOaW5oXCIsXG4gICAgXCJDYW8gQuG6sW5nXCIsXG4gICAgXCLEkGnhu4duIEJpw6puXCIsXG4gICAgXCJIw6AgR2lhbmdcIixcbiAgICBcIkjDoCBOYW1cIixcbiAgICBcIkjDoCBUw6J5XCIsXG4gICAgXCJI4bqjaSBExrDGoW5nXCIsXG4gICAgXCJUUCBI4bqjaSBQaMOybmdcIixcbiAgICBcIkjDsmEgQsOsbmhcIixcbiAgICBcIkjGsG5nIFnDqm5cIixcbiAgICBcIkxhaSBDaMOidVwiLFxuICAgIFwiTMOgbyBDYWlcIixcbiAgICBcIkzhuqFuZyBTxqFuXCIsXG4gICAgXCJOYW0gxJDhu4tuaFwiLFxuICAgIFwiTmluaCBCw6xuaFwiLFxuICAgIFwiUGjDuiBUaOG7jVwiLFxuICAgIFwiUXXhuqNuZyBOaW5oXCIsXG4gICAgXCJTxqFuIExhXCIsXG4gICAgXCJUaMOhaSBCw6xuaFwiLFxuICAgIFwiVGjDoWkgTmd1ecOqblwiLFxuICAgIFwiVHV5w6puIFF1YW5nXCIsXG4gICAgXCJWxKluaCBQaMO6Y1wiLFxuICAgIFwiWcOqbiBCw6FpXCIsXG4gICAgXCJUUCDEkMOgIE7hurVuZ1wiLFxuICAgIFwiQsOsbmggxJDhu4tuaFwiLFxuICAgIFwixJDhuq9rIEzhuq9rXCIsXG4gICAgXCLEkOG6r2sgTsO0bmdcIixcbiAgICBcIkdpYSBMYWlcIixcbiAgICBcIkjDoCBUxKluaFwiLFxuICAgIFwiS2jDoW5oIEjDsmFcIixcbiAgICBcIktvbiBUdW1cIixcbiAgICBcIk5naOG7hyBBblwiLFxuICAgIFwiUGjDuiBZw6puXCIsXG4gICAgXCJRdeG6o25nIELDrG5oXCIsXG4gICAgXCJRdeG6o25nIE5hbVwiLFxuICAgIFwiUXXhuqNuZyBOZ8OjaVwiLFxuICAgIFwiUXXhuqNuZyBUcuG7i1wiLFxuICAgIFwiVGhhbmggSMOzYVwiLFxuICAgIFwiVGjhu6thIFRoacOqbiBIdeG6v1wiLFxuICAgIFwiVFAgVFAuIEjhu5MgQ2jDrSBNaW5oXCIsXG4gICAgXCJBbiBHaWFuZ1wiLFxuICAgIFwiQsOgIFLhu4thIFbFqW5nIFTDoHVcIixcbiAgICBcIkLhuqFjIExpw6p1XCIsXG4gICAgXCJC4bq/biBUcmVcIixcbiAgICBcIkLDrG5oIETGsMahbmdcIixcbiAgICBcIkLDrG5oIFBoxrDhu5tjXCIsXG4gICAgXCJCw6xuaCBUaHXhuq1uXCIsXG4gICAgXCJDw6AgTWF1XCIsXG4gICAgXCJUUCBD4bqnbiBUaMahXCIsXG4gICAgXCLEkOG7k25nIE5haVwiLFxuICAgIFwixJDhu5NuZyBUaMOhcFwiLFxuICAgIFwiSOG6rXUgR2lhbmdcIixcbiAgICBcIktpw6puIEdpYW5nXCIsXG4gICAgXCJMw6JtIMSQ4buTbmdcIixcbiAgICBcIkxvbmcgQW5cIixcbiAgICBcIk5pbmggVGh14bqtblwiLFxuICAgIFwiU8OzYyBUcsSDbmdcIixcbiAgICBcIlTDonkgTmluaFwiLFxuICAgIFwiVGnhu4FuIEdpYW5nXCIsXG4gICAgXCJUcsOgIFZpbmhcIixcbiAgICBcIlbEqW5oIExvbmdcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3Jvb3R9XCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBcIi9bQS1QUi1VV1laMC05XVtBLUhLLVkwLTldW0FFSE1OUFJUVlhZMC05XT9bQUJFSE1OUFJWV1hZMC05XT8gezEsMn1bMC05XVtBQkQtSEpMTi1VVy1aXXsyfS9cIixcbiAgXCJjb3VudHlcIjogW1xuICAgIFwiQXZvblwiLFxuICAgIFwiQmVkZm9yZHNoaXJlXCIsXG4gICAgXCJCZXJrc2hpcmVcIixcbiAgICBcIkJvcmRlcnNcIixcbiAgICBcIkJ1Y2tpbmdoYW1zaGlyZVwiLFxuICAgIFwiQ2FtYnJpZGdlc2hpcmVcIixcbiAgICBcIkNlbnRyYWxcIixcbiAgICBcIkNoZXNoaXJlXCIsXG4gICAgXCJDbGV2ZWxhbmRcIixcbiAgICBcIkNsd3lkXCIsXG4gICAgXCJDb3Jud2FsbFwiLFxuICAgIFwiQ291bnR5IEFudHJpbVwiLFxuICAgIFwiQ291bnR5IEFybWFnaFwiLFxuICAgIFwiQ291bnR5IERvd25cIixcbiAgICBcIkNvdW50eSBGZXJtYW5hZ2hcIixcbiAgICBcIkNvdW50eSBMb25kb25kZXJyeVwiLFxuICAgIFwiQ291bnR5IFR5cm9uZVwiLFxuICAgIFwiQ3VtYnJpYVwiLFxuICAgIFwiRGVyYnlzaGlyZVwiLFxuICAgIFwiRGV2b25cIixcbiAgICBcIkRvcnNldFwiLFxuICAgIFwiRHVtZnJpZXMgYW5kIEdhbGxvd2F5XCIsXG4gICAgXCJEdXJoYW1cIixcbiAgICBcIkR5ZmVkXCIsXG4gICAgXCJFYXN0IFN1c3NleFwiLFxuICAgIFwiRXNzZXhcIixcbiAgICBcIkZpZmVcIixcbiAgICBcIkdsb3VjZXN0ZXJzaGlyZVwiLFxuICAgIFwiR3JhbXBpYW5cIixcbiAgICBcIkdyZWF0ZXIgTWFuY2hlc3RlclwiLFxuICAgIFwiR3dlbnRcIixcbiAgICBcIkd3eW5lZGQgQ291bnR5XCIsXG4gICAgXCJIYW1wc2hpcmVcIixcbiAgICBcIkhlcmVmb3Jkc2hpcmVcIixcbiAgICBcIkhlcnRmb3Jkc2hpcmVcIixcbiAgICBcIkhpZ2hsYW5kcyBhbmQgSXNsYW5kc1wiLFxuICAgIFwiSHVtYmVyc2lkZVwiLFxuICAgIFwiSXNsZSBvZiBXaWdodFwiLFxuICAgIFwiS2VudFwiLFxuICAgIFwiTGFuY2FzaGlyZVwiLFxuICAgIFwiTGVpY2VzdGVyc2hpcmVcIixcbiAgICBcIkxpbmNvbG5zaGlyZVwiLFxuICAgIFwiTG90aGlhblwiLFxuICAgIFwiTWVyc2V5c2lkZVwiLFxuICAgIFwiTWlkIEdsYW1vcmdhblwiLFxuICAgIFwiTm9yZm9sa1wiLFxuICAgIFwiTm9ydGggWW9ya3NoaXJlXCIsXG4gICAgXCJOb3J0aGFtcHRvbnNoaXJlXCIsXG4gICAgXCJOb3J0aHVtYmVybGFuZFwiLFxuICAgIFwiTm90dGluZ2hhbXNoaXJlXCIsXG4gICAgXCJPeGZvcmRzaGlyZVwiLFxuICAgIFwiUG93eXNcIixcbiAgICBcIlJ1dGxhbmRcIixcbiAgICBcIlNocm9wc2hpcmVcIixcbiAgICBcIlNvbWVyc2V0XCIsXG4gICAgXCJTb3V0aCBHbGFtb3JnYW5cIixcbiAgICBcIlNvdXRoIFlvcmtzaGlyZVwiLFxuICAgIFwiU3RhZmZvcmRzaGlyZVwiLFxuICAgIFwiU3RyYXRoY2x5ZGVcIixcbiAgICBcIlN1ZmZvbGtcIixcbiAgICBcIlN1cnJleVwiLFxuICAgIFwiVGF5c2lkZVwiLFxuICAgIFwiVHluZSBhbmQgV2VhclwiLFxuICAgIFwiVmnhu4d0IE5hbVwiLFxuICAgIFwiV2Fyd2lja3NoaXJlXCIsXG4gICAgXCJXZXN0IEdsYW1vcmdhblwiLFxuICAgIFwiV2VzdCBNaWRsYW5kc1wiLFxuICAgIFwiV2VzdCBTdXNzZXhcIixcbiAgICBcIldlc3QgWW9ya3NoaXJlXCIsXG4gICAgXCJXaWx0c2hpcmVcIixcbiAgICBcIldvcmNlc3RlcnNoaXJlXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiVmnhu4d0IE5hbVwiXG4gIF1cbn07XG52aS5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJ2blwiLFxuICAgIFwiY29tLnZuXCJcbiAgXVxufTtcbnZpLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAxIyMjIyAjIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyMjXCIsXG4gICAgXCIwMSMxICMjIyAjIyMjXCIsXG4gICAgXCIwMTEjICMjIyAjIyMjXCIsXG4gICAgXCIwMiMgIyMjIyAjIyMjXCIsXG4gICAgXCIwMyMjICMjIyAjIyMjXCIsXG4gICAgXCIwNTUgIyMjIyAjIyMjXCIsXG4gICAgXCIwNTYgIyMjIyAjIyMjXCIsXG4gICAgXCIwODAwICMjIyAjIyMjXCIsXG4gICAgXCIwOCMjICMjIyAjIyMjXCIsXG4gICAgXCIwOSMjICMjIyAjIyMjXCIsXG4gICAgXCIwMTY5NzcgIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyNcIixcbiAgICBcIjA1MDAgIyMjIyMjXCIsXG4gICAgXCIwODAwICMjIyMjI1wiXG4gIF1cbn07XG52aS5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDc0IyMgIyMjIyMjXCIsXG4gICAgXCIwNzUjIyAjIyMjIyNcIixcbiAgICBcIjA3NiMjICMjIyMjI1wiLFxuICAgIFwiMDc3IyMgIyMjIyMjXCIsXG4gICAgXCIwNzgjIyAjIyMjIyNcIixcbiAgICBcIjA3OSMjICMjIyMjI1wiXG4gIF1cbn07XG52aS5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiUGjhuqFtXCIsXG4gICAgXCJOZ3V54buFblwiLFxuICAgIFwiVHLhuqduXCIsXG4gICAgXCJMw6pcIixcbiAgICBcIkzDvVwiLFxuICAgIFwiSG/DoG5nXCIsXG4gICAgXCJQaGFuXCIsXG4gICAgXCJWxalcIixcbiAgICBcIlTEg25nXCIsXG4gICAgXCLEkOG6t25nXCIsXG4gICAgXCJCw7lpXCIsXG4gICAgXCLEkOG7l1wiLFxuICAgIFwiSOG7k1wiLFxuICAgIFwiTmfDtFwiLFxuICAgIFwiRMawxqFuZ1wiLFxuICAgIFwixJDDoG9cIixcbiAgICBcIsSQb8OgblwiLFxuICAgIFwiVsawxqFuZ1wiLFxuICAgIFwiVHLhu4tuaFwiLFxuICAgIFwixJBpbmhcIixcbiAgICBcIkzDom1cIixcbiAgICBcIlBow7luZ1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJUw7RcIixcbiAgICBcIlRyxrDGoW5nXCIsXG4gICAgXCJIw6BcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJOYW1cIixcbiAgICBcIlRydW5nXCIsXG4gICAgXCJUaGFuaFwiLFxuICAgIFwiVGjhu4tcIixcbiAgICBcIlbEg25cIixcbiAgICBcIkTGsMahbmdcIixcbiAgICBcIlTEg25nXCIsXG4gICAgXCJRdeG7kWNcIixcbiAgICBcIk5oxrBcIixcbiAgICBcIlBo4bqhbVwiLFxuICAgIFwiTmd1eeG7hW5cIixcbiAgICBcIlRy4bqnblwiLFxuICAgIFwiTMOqXCIsXG4gICAgXCJMw71cIixcbiAgICBcIkhvw6BuZ1wiLFxuICAgIFwiUGhhblwiLFxuICAgIFwiVsWpXCIsXG4gICAgXCJUxINuZ1wiLFxuICAgIFwixJDhurduZ1wiLFxuICAgIFwiQsO5aVwiLFxuICAgIFwixJDhu5dcIixcbiAgICBcIkjhu5NcIixcbiAgICBcIk5nw7RcIixcbiAgICBcIkTGsMahbmdcIixcbiAgICBcIsSQw6BvXCIsXG4gICAgXCLEkG/DoG5cIixcbiAgICBcIlbGsMahbmdcIixcbiAgICBcIlRy4buLbmhcIixcbiAgICBcIsSQaW5oXCIsXG4gICAgXCJMw6JtXCIsXG4gICAgXCJQaMO5bmdcIixcbiAgICBcIk1haVwiLFxuICAgIFwiVMO0XCIsXG4gICAgXCJUcsawxqFuZ1wiLFxuICAgIFwiSMOgXCIsXG4gICAgXCJWaW5oXCIsXG4gICAgXCJOaHVuZ1wiLFxuICAgIFwiSMOyYVwiLFxuICAgIFwiVGnhur9uXCIsXG4gICAgXCJUw6JtXCIsXG4gICAgXCJC4butdVwiLFxuICAgIFwiTG9hblwiLFxuICAgIFwiSGnhu4FuXCIsXG4gICAgXCJI4bqjaVwiLFxuICAgIFwiVsOiblwiLFxuICAgIFwiS2hhXCIsXG4gICAgXCJNaW5oXCIsXG4gICAgXCJOaMOiblwiLFxuICAgIFwiVHJp4buHdVwiLFxuICAgIFwiVHXDom5cIixcbiAgICBcIkjhu691XCIsXG4gICAgXCLEkOG7qWNcIixcbiAgICBcIlBow7pcIixcbiAgICBcIktob2FcIixcbiAgICBcIlRo4bqvZ25cIixcbiAgICBcIlPGoW5cIixcbiAgICBcIkR1bmdcIixcbiAgICBcIlTDulwiLFxuICAgIFwiVHJpbmhcIixcbiAgICBcIlRo4bqjb1wiLFxuICAgIFwiU2FcIixcbiAgICBcIktpbVwiLFxuICAgIFwiTG9uZ1wiLFxuICAgIFwiVGhpXCIsXG4gICAgXCJDxrDhu51uZ1wiLFxuICAgIFwiTmfhu41jXCIsXG4gICAgXCJTaW5oXCIsXG4gICAgXCJLaGFuZ1wiLFxuICAgIFwiUGhvbmdcIixcbiAgICBcIlRo4bqvbVwiLFxuICAgIFwiVGh1XCIsXG4gICAgXCJUaOG7p3lcIixcbiAgICBcIk5ow6BuXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xudmkuY29tcGFueSA9IHtcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiQ8O0bmcgdHlcIixcbiAgICBcIkN0eSBUTkhIXCIsXG4gICAgXCJDdHlcIixcbiAgICBcIkPhu61hIGjDoG5nXCIsXG4gICAgXCJUcnVuZyB0w6JtXCIsXG4gICAgXCJDaGkgbmjDoW5oXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG52aS5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCLEkcOjXCIsXG4gICAgXCLEkWFuZ1wiLFxuICAgIFwi4burXCIsXG4gICAgXCLhu51cIixcbiAgICBcIsOhXCIsXG4gICAgXCJraMO0bmdcIixcbiAgICBcImJp4bq/dFwiLFxuICAgIFwiZ8OsXCIsXG4gICAgXCJo4bq/dFwiLFxuICAgIFwixJHDonVcIixcbiAgICBcIm5oYVwiLFxuICAgIFwidGjhur9cIixcbiAgICBcInRow6xcIixcbiAgICBcImzDoFwiLFxuICAgIFwixJHDoW5oXCIsXG4gICAgXCLEkcOhXCIsXG4gICAgXCLEkeG6rXBcIixcbiAgICBcInBow6FcIixcbiAgICBcInZp4bq/dFwiLFxuICAgIFwiduG6vVwiLFxuICAgIFwidMO0XCIsXG4gICAgXCJ0aHXDqlwiLFxuICAgIFwibcaw4bubblwiLFxuICAgIFwibcaw4bujblwiLFxuICAgIFwibXVhXCIsXG4gICAgXCJt4buZdFwiLFxuICAgIFwiaGFpXCIsXG4gICAgXCJiYVwiLFxuICAgIFwiYuG7kW5cIixcbiAgICBcIm7Eg21cIixcbiAgICBcInPDoXVcIixcbiAgICBcImLhuqN5XCIsXG4gICAgXCJ0w6FtXCIsXG4gICAgXCJjaMOtblwiLFxuICAgIFwibcaw4budaVwiLFxuICAgIFwidGjDtGlcIixcbiAgICBcInZp4buHY1wiLFxuICAgIFwibmdo4buJXCIsXG4gICAgXCJsw6BtXCIsXG4gICAgXCJuaMOgXCIsXG4gICAgXCJj4butYVwiLFxuICAgIFwieGVcIixcbiAgICBcIsSR4bqhcFwiLFxuICAgIFwiw6FjXCIsXG4gICAgXCLEkeG7mWNcIixcbiAgICBcImtob+G6o25nXCIsXG4gICAgXCJraG9hblwiLFxuICAgIFwidGh1eeG7gW5cIixcbiAgICBcInTDoHVcIixcbiAgICBcImLDqFwiLFxuICAgIFwibOG6p3VcIixcbiAgICBcInhhbmhcIixcbiAgICBcIsSR4buPXCIsXG4gICAgXCJ0w61tXCIsXG4gICAgXCJ2w6BuZ1wiLFxuICAgIFwia2ltXCIsXG4gICAgXCJjaOG7iVwiLFxuICAgIFwia2jDonVcIixcbiAgICBcIm1heVwiLFxuICAgIFwidsOhXCIsXG4gICAgXCJlbVwiLFxuICAgIFwiYW5oXCIsXG4gICAgXCJ5w6p1XCIsXG4gICAgXCJ0aMawxqFuZ1wiLFxuICAgIFwidGjDrWNoXCIsXG4gICAgXCJjb25cIixcbiAgICBcImPDoWlcIixcbiAgICBcImLDoG5cIixcbiAgICBcImdo4bq/XCIsXG4gICAgXCJ04bunXCIsXG4gICAgXCJxdeG6p25cIixcbiAgICBcIsOhb1wiLFxuICAgIFwibsOzblwiLFxuICAgIFwiZMOpcFwiLFxuICAgIFwiZ2nDoHlcIixcbiAgICBcImzhu5dpXCIsXG4gICAgXCLEkcaw4bujY1wiLFxuICAgIFwiZ2jDqXRcIixcbiAgICBcImdp4bq/dFwiLFxuICAgIFwiY2jhur90XCIsXG4gICAgXCJo4bq/dFwiLFxuICAgIFwidMO0aVwiLFxuICAgIFwiYuG6oW5cIixcbiAgICBcInR1aVwiLFxuICAgIFwidHLhu51pXCIsXG4gICAgXCJ0csSDbmdcIixcbiAgICBcIm3DonlcIixcbiAgICBcImdpw7NcIixcbiAgICBcIm3DoXlcIixcbiAgICBcImjDoG5nXCIsXG4gICAgXCJow7NhXCIsXG4gICAgXCJsZW9cIixcbiAgICBcIm7DumlcIixcbiAgICBcImLGoWlcIixcbiAgICBcImJp4buDblwiLFxuICAgIFwiY2jDrG1cIixcbiAgICBcInh14buTbmdcIixcbiAgICBcIm7GsOG7m2NcIixcbiAgICBcIm5n4buNdFwiLFxuICAgIFwicnXhu5luZ1wiLFxuICAgIFwixJHhu5NuZ1wiLFxuICAgIFwicXXDqlwiLFxuICAgIFwiaMawxqFuZ1wiXG4gIF1cbn07XG4iLCJ2YXIgemhfQ04gPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSB6aF9DTjtcbnpoX0NOLnRpdGxlID0gXCJDaGluZXNlXCI7XG56aF9DTi5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIumVv1wiLFxuICAgIFwi5LiKXCIsXG4gICAgXCLljZdcIixcbiAgICBcIuilv1wiLFxuICAgIFwi5YyXXCIsXG4gICAgXCLor7hcIixcbiAgICBcIuWugVwiLFxuICAgIFwi54+gXCIsXG4gICAgXCLmraZcIixcbiAgICBcIuihoVwiLFxuICAgIFwi5oiQXCIsXG4gICAgXCLnpo9cIixcbiAgICBcIuWOplwiLFxuICAgIFwi6LS1XCIsXG4gICAgXCLlkIlcIixcbiAgICBcIua1t1wiLFxuICAgIFwi5aSqXCIsXG4gICAgXCLmtY5cIixcbiAgICBcIuWuiVwiLFxuICAgIFwi5ZCJXCIsXG4gICAgXCLljIVcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcIuaymeW4glwiLFxuICAgIFwi5Lqs5biCXCIsXG4gICAgXCLlroHluIJcIixcbiAgICBcIuWuieW4glwiLFxuICAgIFwi5Lmh5Y6/XCIsXG4gICAgXCLmtbfluIJcIixcbiAgICBcIueggeW4glwiLFxuICAgIFwi5rGJ5biCXCIsXG4gICAgXCLpmLPluIJcIixcbiAgICBcIumDveW4glwiLFxuICAgIFwi5bee5biCXCIsXG4gICAgXCLpl6jluIJcIixcbiAgICBcIumYs+W4glwiLFxuICAgIFwi5Y+j5biCXCIsXG4gICAgXCLljp/luIJcIixcbiAgICBcIuWNl+W4glwiLFxuICAgIFwi5b695biCXCIsXG4gICAgXCLmnpfluIJcIixcbiAgICBcIuWktOW4glwiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIuW3t1wiLFxuICAgIFwi6KGXXCIsXG4gICAgXCLot69cIixcbiAgICBcIuahpVwiLFxuICAgIFwi5L6sXCIsXG4gICAgXCLml4FcIixcbiAgICBcIuS4reW/g1wiLFxuICAgIFwi5qCLXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIuWMl+S6rOW4glwiLFxuICAgIFwi5LiK5rW35biCXCIsXG4gICAgXCLlpKnmtKXluIJcIixcbiAgICBcIumHjeW6huW4glwiLFxuICAgIFwi6buR6b6Z5rGf55yBXCIsXG4gICAgXCLlkInmnpfnnIFcIixcbiAgICBcIui+veWugeecgVwiLFxuICAgIFwi5YaF6JKZ5Y+kXCIsXG4gICAgXCLmsrPljJfnnIFcIixcbiAgICBcIuaWsOeWhlwiLFxuICAgIFwi55SY6IKD55yBXCIsXG4gICAgXCLpnZLmtbfnnIFcIixcbiAgICBcIumZleilv+ecgVwiLFxuICAgIFwi5a6B5aSPXCIsXG4gICAgXCLmsrPljZfnnIFcIixcbiAgICBcIuWxseS4nOecgVwiLFxuICAgIFwi5bGx6KW/55yBXCIsXG4gICAgXCLlronlvr3nnIFcIixcbiAgICBcIua5luWMl+ecgVwiLFxuICAgIFwi5rmW5Y2X55yBXCIsXG4gICAgXCLmsZ/oi4/nnIFcIixcbiAgICBcIuWbm+W3neecgVwiLFxuICAgIFwi6LS15bee55yBXCIsXG4gICAgXCLkupHljZfnnIFcIixcbiAgICBcIuW5v+ilv+ecgVwiLFxuICAgIFwi6KW/6JePXCIsXG4gICAgXCLmtZnmsZ/nnIFcIixcbiAgICBcIuaxn+ilv+ecgVwiLFxuICAgIFwi5bm/5Lic55yBXCIsXG4gICAgXCLnpo/lu7rnnIFcIixcbiAgICBcIuWPsOa5vuecgVwiLFxuICAgIFwi5rW35Y2X55yBXCIsXG4gICAgXCLpppnmuK9cIixcbiAgICBcIua+s+mXqFwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCLkuqxcIixcbiAgICBcIuayqlwiLFxuICAgIFwi5rSlXCIsXG4gICAgXCLmuJ1cIixcbiAgICBcIum7kVwiLFxuICAgIFwi5ZCJXCIsXG4gICAgXCLovr1cIixcbiAgICBcIuiSmVwiLFxuICAgIFwi5YaAXCIsXG4gICAgXCLmlrBcIixcbiAgICBcIueUmFwiLFxuICAgIFwi6Z2SXCIsXG4gICAgXCLpmZVcIixcbiAgICBcIuWugVwiLFxuICAgIFwi6LGrXCIsXG4gICAgXCLpsoFcIixcbiAgICBcIuaZi1wiLFxuICAgIFwi55qWXCIsXG4gICAgXCLphIJcIixcbiAgICBcIua5mFwiLFxuICAgIFwi6IuPXCIsXG4gICAgXCLlt51cIixcbiAgICBcIum7lFwiLFxuICAgIFwi5ruHXCIsXG4gICAgXCLmoYJcIixcbiAgICBcIuiXj1wiLFxuICAgIFwi5rWZXCIsXG4gICAgXCLotaNcIixcbiAgICBcIueypFwiLFxuICAgIFwi6Ze9XCIsXG4gICAgXCLlj7BcIixcbiAgICBcIueQvFwiLFxuICAgIFwi5rivXCIsXG4gICAgXCLmvrNcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSN7YnVpbGRpbmdfbnVtYmVyfeWPt1wiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIuS4reWbvVwiXG4gIF1cbn07XG56aF9DTi5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwi546LXCIsXG4gICAgXCLmnY5cIixcbiAgICBcIuW8oFwiLFxuICAgIFwi5YiYXCIsXG4gICAgXCLpmYhcIixcbiAgICBcIuadqFwiLFxuICAgIFwi6buEXCIsXG4gICAgXCLlkLRcIixcbiAgICBcIui1tVwiLFxuICAgIFwi5ZGoXCIsXG4gICAgXCLlvpBcIixcbiAgICBcIuWtmVwiLFxuICAgIFwi6amsXCIsXG4gICAgXCLmnLFcIixcbiAgICBcIuiDoVwiLFxuICAgIFwi5p6XXCIsXG4gICAgXCLpg61cIixcbiAgICBcIuS9lVwiLFxuICAgIFwi6auYXCIsXG4gICAgXCLnvZdcIixcbiAgICBcIumDkVwiLFxuICAgIFwi5qKBXCIsXG4gICAgXCLosKJcIixcbiAgICBcIuWui1wiLFxuICAgIFwi5ZSQXCIsXG4gICAgXCLorrhcIixcbiAgICBcIumCk1wiLFxuICAgIFwi5YavXCIsXG4gICAgXCLpn6lcIixcbiAgICBcIuabuVwiLFxuICAgIFwi5pu+XCIsXG4gICAgXCLlva1cIixcbiAgICBcIuiQp1wiLFxuICAgIFwi6JShXCIsXG4gICAgXCLmvZhcIixcbiAgICBcIueUsFwiLFxuICAgIFwi6JGjXCIsXG4gICAgXCLoooFcIixcbiAgICBcIuS6jlwiLFxuICAgIFwi5L2ZXCIsXG4gICAgXCLlj7ZcIixcbiAgICBcIuiSi1wiLFxuICAgIFwi5p2cXCIsXG4gICAgXCLoi49cIixcbiAgICBcIumtj1wiLFxuICAgIFwi56iLXCIsXG4gICAgXCLlkJVcIixcbiAgICBcIuS4gVwiLFxuICAgIFwi5rKIXCIsXG4gICAgXCLku7tcIixcbiAgICBcIuWnmlwiLFxuICAgIFwi5Y2iXCIsXG4gICAgXCLlgoVcIixcbiAgICBcIumSn1wiLFxuICAgIFwi5aecXCIsXG4gICAgXCLltJRcIixcbiAgICBcIuiwrVwiLFxuICAgIFwi5buWXCIsXG4gICAgXCLojINcIixcbiAgICBcIuaxqlwiLFxuICAgIFwi6ZmGXCIsXG4gICAgXCLph5FcIixcbiAgICBcIuefs1wiLFxuICAgIFwi5oi0XCIsXG4gICAgXCLotL5cIixcbiAgICBcIumfplwiLFxuICAgIFwi5aSPXCIsXG4gICAgXCLpgrFcIixcbiAgICBcIuaWuVwiLFxuICAgIFwi5L6vXCIsXG4gICAgXCLpgrlcIixcbiAgICBcIueGilwiLFxuICAgIFwi5a2fXCIsXG4gICAgXCLnp6ZcIixcbiAgICBcIueZvVwiLFxuICAgIFwi5rGfXCIsXG4gICAgXCLpmI5cIixcbiAgICBcIuiWm1wiLFxuICAgIFwi5bC5XCIsXG4gICAgXCLmrrVcIixcbiAgICBcIumbt1wiLFxuICAgIFwi6buOXCIsXG4gICAgXCLlj7JcIixcbiAgICBcIum+mVwiLFxuICAgIFwi6Zm2XCIsXG4gICAgXCLotLpcIixcbiAgICBcIumhvlwiLFxuICAgIFwi5q+bXCIsXG4gICAgXCLpg51cIixcbiAgICBcIum+mlwiLFxuICAgIFwi6YK1XCIsXG4gICAgXCLkuIdcIixcbiAgICBcIumSsVwiLFxuICAgIFwi5LilXCIsXG4gICAgXCLotZZcIixcbiAgICBcIuimg1wiLFxuICAgIFwi5rSqXCIsXG4gICAgXCLmraZcIixcbiAgICBcIuiOq1wiLFxuICAgIFwi5a2UXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi57uN6b2QXCIsXG4gICAgXCLljZrmlodcIixcbiAgICBcIuaik+aZqFwiLFxuICAgIFwi6IOk56WlXCIsXG4gICAgXCLnkZ7pnJZcIixcbiAgICBcIuaYjuWTslwiLFxuICAgIFwi5aSp57+KXCIsXG4gICAgXCLlh6/nkZ5cIixcbiAgICBcIuWBpembhFwiLFxuICAgIFwi6ICA5p2wXCIsXG4gICAgXCLmvYfnhLZcIixcbiAgICBcIuWtkOa2tVwiLFxuICAgIFwi6LaK5b2sXCIsXG4gICAgXCLpkrDovalcIixcbiAgICBcIuaZuui+iVwiLFxuICAgIFwi6Ie06L+cXCIsXG4gICAgXCLkv4rpqbBcIixcbiAgICBcIumbqOazvVwiLFxuICAgIFwi54Oo56OKXCIsXG4gICAgXCLmmZ/nnb9cIixcbiAgICBcIuaWh+aYilwiLFxuICAgIFwi5L+u5rSBXCIsXG4gICAgXCLpu47mmJVcIixcbiAgICBcIui/nOiIqlwiLFxuICAgIFwi5pet5bCnXCIsXG4gICAgXCLpuL/mtptcIixcbiAgICBcIuS8n+elulwiLFxuICAgIFwi6I2j6L2pXCIsXG4gICAgXCLotorms71cIixcbiAgICBcIua1qeWuh1wiLFxuICAgIFwi55G+55GcXCIsXG4gICAgXCLnmpPovalcIixcbiAgICBcIuaTjuiLjVwiLFxuICAgIFwi5pOO5a6HXCIsXG4gICAgXCLlv5fms71cIixcbiAgICBcIuWtkOi9qVwiLFxuICAgIFwi552/5riKXCIsXG4gICAgXCLlvJjmlodcIixcbiAgICBcIuWTsueAmlwiLFxuICAgIFwi6Zuo5rO9XCIsXG4gICAgXCLmpbfnkZ5cIixcbiAgICBcIuW7uui+iVwiLFxuICAgIFwi5pmL6bmPXCIsXG4gICAgXCLlpKnno4pcIixcbiAgICBcIue7jei+iVwiLFxuICAgIFwi5rO95rSLXCIsXG4gICAgXCLpkavno4pcIixcbiAgICBcIum5j+eFilwiLFxuICAgIFwi5piK5by6XCIsXG4gICAgXCLkvJ/lrrhcIixcbiAgICBcIuWNmui2hVwiLFxuICAgIFwi5ZCb5rWpXCIsXG4gICAgXCLlrZDpqp5cIixcbiAgICBcIum5j+a2m1wiLFxuICAgIFwi54KO5b2sXCIsXG4gICAgXCLpuaTovalcIixcbiAgICBcIui2iuW9rFwiLFxuICAgIFwi6aOO5Y2OXCIsXG4gICAgXCLpnZbnkKpcIixcbiAgICBcIuaYjui+iVwiLFxuICAgIFwi5Lyf6K+aXCIsXG4gICAgXCLmmI7ovalcIixcbiAgICBcIuWBpeafj1wiLFxuICAgIFwi5L+u5p2wXCIsXG4gICAgXCLlv5fms71cIixcbiAgICBcIuW8mOaWh1wiLFxuICAgIFwi5bO754aZXCIsXG4gICAgXCLlmInmh79cIixcbiAgICBcIueFnOWfjlwiLFxuICAgIFwi5oe/6L2pXCIsXG4gICAgXCLng6jkvJ9cIixcbiAgICBcIuiLkeWNmlwiLFxuICAgIFwi5Lyf5rO9XCIsXG4gICAgXCLnhqDlvaRcIixcbiAgICBcIum4v+eFilwiLFxuICAgIFwi5Y2a5rabXCIsXG4gICAgXCLng6jpnJZcIixcbiAgICBcIueDqOWNjlwiLFxuICAgIFwi54Wc56W6XCIsXG4gICAgXCLmmbrlrrhcIixcbiAgICBcIuato+ixqlwiLFxuICAgIFwi5piK54S2XCIsXG4gICAgXCLmmI7mnbBcIixcbiAgICBcIueri+ivmlwiLFxuICAgIFwi56uL6L2pXCIsXG4gICAgXCLnq4vovolcIixcbiAgICBcIuWzu+eGmVwiLFxuICAgIFwi5byY5paHXCIsXG4gICAgXCLnhqDlvaRcIixcbiAgICBcIum4v+eFilwiLFxuICAgIFwi54Oo6ZyWXCIsXG4gICAgXCLlk7LngJpcIixcbiAgICBcIumRq+m5j1wiLFxuICAgIFwi5piK5aSpXCIsXG4gICAgXCLmgJ3ogapcIixcbiAgICBcIuWxlem5j1wiLFxuICAgIFwi56yR5oSaXCIsXG4gICAgXCLlv5flvLpcIixcbiAgICBcIueCq+aYjlwiLFxuICAgIFwi6Zuq5p2+XCIsXG4gICAgXCLmgJ3mupBcIixcbiAgICBcIuaZuua4ilwiLFxuICAgIFwi5oCd5re8XCIsXG4gICAgXCLmmZPllbhcIixcbiAgICBcIuWkqeWuh1wiLFxuICAgIFwi5rWp54S2XCIsXG4gICAgXCLmlofovalcIixcbiAgICBcIum5rea0i1wiLFxuICAgIFwi5oyv5a62XCIsXG4gICAgXCLkuZDpqblcIixcbiAgICBcIuaZk+WNmlwiLFxuICAgIFwi5paH5Y2aXCIsXG4gICAgXCLmmIrnhLFcIixcbiAgICBcIueri+aenFwiLFxuICAgIFwi6YeR6ZGrXCIsXG4gICAgXCLplKbnqItcIixcbiAgICBcIuWYieeGmVwiLFxuICAgIFwi6bmP6aOeXCIsXG4gICAgXCLlrZDpu5hcIixcbiAgICBcIuaAnei/nFwiLFxuICAgIFwi5rWp6L2pXCIsXG4gICAgXCLor63loIJcIixcbiAgICBcIuiBquWBpVwiLFxuICAgIFwi5piOXCIsXG4gICAgXCLmlodcIixcbiAgICBcIuaenFwiLFxuICAgIFwi5oCdXCIsXG4gICAgXCLpuY9cIixcbiAgICBcIumpsFwiLFxuICAgIFwi5rabXCIsXG4gICAgXCLnkKpcIixcbiAgICBcIua1qVwiLFxuICAgIFwi6IiqXCIsXG4gICAgXCLlvaxcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tmaXJzdF9uYW1lfSN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG56aF9DTi5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIjIyMtIyMjIyMjIyNcIixcbiAgICBcIiMjIyMtIyMjIyMjIyNcIixcbiAgICBcIiMjIyMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG52YXIgSGVscGVycyA9IHJlcXVpcmUoJy4vaGVscGVycycpO1xuXG52YXIgbG9yZW0gPSB7XG4gICAgd29yZHM6IGZ1bmN0aW9uIChudW0pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBudW0gPT0gJ3VuZGVmaW5lZCcpIHsgbnVtID0gMzsgfVxuICAgICAgICByZXR1cm4gSGVscGVycy5zaHVmZmxlKGZha2VyLmRlZmluaXRpb25zLmxvcmVtLndvcmRzKS5zbGljZSgwLCBudW0pO1xuICAgIH0sXG5cbiAgICBzZW50ZW5jZTogZnVuY3Rpb24gKHdvcmRDb3VudCwgcmFuZ2UpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3b3JkQ291bnQgPT0gJ3VuZGVmaW5lZCcpIHsgd29yZENvdW50ID0gMzsgfVxuICAgICAgICBpZiAodHlwZW9mIHJhbmdlID09ICd1bmRlZmluZWQnKSB7IHJhbmdlID0gNzsgfVxuXG4gICAgICAgIC8vIHN0cmFuZ2UgaXNzdWUgd2l0aCB0aGUgbm9kZV9taW5fdGVzdCBmYWlsaW5nIGZvciBjYXB0aWFsaXplLCBwbGVhc2UgZml4IGFuZCBhZGQgZmFrZXIubG9yZW0uYmFja1xuICAgICAgICAvL3JldHVybiAgZmFrZXIubG9yZW0ud29yZHMod29yZENvdW50ICsgSGVscGVycy5yYW5kb21OdW1iZXIocmFuZ2UpKS5qb2luKCcgJykuY2FwaXRhbGl6ZSgpO1xuXG4gICAgICAgIHJldHVybiAgZmFrZXIubG9yZW0ud29yZHMod29yZENvdW50ICsgZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSkpLmpvaW4oJyAnKTtcbiAgICB9LFxuXG4gICAgc2VudGVuY2VzOiBmdW5jdGlvbiAoc2VudGVuY2VDb3VudCkge1xuICAgICAgICBpZiAodHlwZW9mIHNlbnRlbmNlQ291bnQgPT0gJ3VuZGVmaW5lZCcpIHsgc2VudGVuY2VDb3VudCA9IDM7IH1cbiAgICAgICAgdmFyIHNlbnRlbmNlcyA9IFtdO1xuICAgICAgICBmb3IgKHNlbnRlbmNlQ291bnQ7IHNlbnRlbmNlQ291bnQgPiAwOyBzZW50ZW5jZUNvdW50LS0pIHtcbiAgICAgICAgICAgIHNlbnRlbmNlcy5wdXNoKGZha2VyLmxvcmVtLnNlbnRlbmNlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZW50ZW5jZXMuam9pbihcIlxcblwiKTtcbiAgICB9LFxuXG4gICAgcGFyYWdyYXBoOiBmdW5jdGlvbiAoc2VudGVuY2VDb3VudCkge1xuICAgICAgICBpZiAodHlwZW9mIHNlbnRlbmNlQ291bnQgPT0gJ3VuZGVmaW5lZCcpIHsgc2VudGVuY2VDb3VudCA9IDM7IH1cbiAgICAgICAgcmV0dXJuIGZha2VyLmxvcmVtLnNlbnRlbmNlcyhzZW50ZW5jZUNvdW50ICsgZmFrZXIucmFuZG9tLm51bWJlcigzKSk7XG4gICAgfSxcblxuICAgIHBhcmFncmFwaHM6IGZ1bmN0aW9uIChwYXJhZ3JhcGhDb3VudCkge1xuICAgICAgICBpZiAodHlwZW9mIHBhcmFncmFwaENvdW50ID09ICd1bmRlZmluZWQnKSB7IHBhcmFncmFwaENvdW50ID0gMzsgfVxuICAgICAgICB2YXIgcGFyYWdyYXBocyA9IFtdO1xuICAgICAgICBmb3IgKHBhcmFncmFwaENvdW50OyBwYXJhZ3JhcGhDb3VudCA+IDA7IHBhcmFncmFwaENvdW50LS0pIHtcbiAgICAgICAgICAgIHBhcmFncmFwaHMucHVzaChmYWtlci5sb3JlbS5wYXJhZ3JhcGgoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmFncmFwaHMuam9pbihcIlxcbiBcXHJcXHRcIik7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBsb3JlbTtcbiIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbnZhciBfbmFtZSA9IHtcblxuICAgIGZpcnN0TmFtZTogZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHR5cGVvZiBmYWtlci5kZWZpbml0aW9ucy5uYW1lLm1hbGVfZmlyc3RfbmFtZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5mZW1hbGVfZmlyc3RfbmFtZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAvLyBzb21lIGxvY2FsZSBkYXRhc2V0cyAoIGxpa2UgcnUgKSBoYXZlIGZpcnN0X25hbWUgc3BsaXQgYnkgZ2VuZGVyLiBzaW5jZSB0aGUgbmFtZS5maXJzdF9uYW1lIGZpZWxkIGRvZXMgbm90IGV4aXN0IGluIHRoZXNlIGRhdGFzZXRzLFxuICAgICAgICAvLyB3ZSBtdXN0IHJhbmRvbWx5IHBpY2sgYSBuYW1lIGZyb20gZWl0aGVyIGdlbmRlciBhcnJheSBzbyBmYWtlci5uYW1lLmZpcnN0TmFtZSB3aWxsIHJldHVybiB0aGUgY29ycmVjdCBsb2NhbGUgZGF0YSAoIGFuZCBub3QgZmFsbGJhY2sgKVxuICAgICAgICB2YXIgcmFuZCA9IGZha2VyLnJhbmRvbS5udW1iZXIoMSk7XG4gICAgICAgIGlmIChyYW5kID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmxvY2FsZXNbZmFrZXIubG9jYWxlXS5uYW1lLm1hbGVfZmlyc3RfbmFtZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIubG9jYWxlc1tmYWtlci5sb2NhbGVdLm5hbWUuZmVtYWxlX2ZpcnN0X25hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5uYW1lLmZpcnN0X25hbWUpXG4gICAgfSxcblxuICAgIGxhc3ROYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAodHlwZW9mIGZha2VyLmRlZmluaXRpb25zLm5hbWUubWFsZV9sYXN0X25hbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIGZha2VyLmRlZmludGlvbnMubmFtZS5mZW1hbGVfbGFzdF9uYW1lICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIC8vIHNvbWUgbG9jYWxlIGRhdGFzZXRzICggbGlrZSBydSApIGhhdmUgbGFzdF9uYW1lIHNwbGl0IGJ5IGdlbmRlci4gaSBoYXZlIG5vIGlkZWEgaG93IGxhc3QgbmFtZXMgY2FuIGhhdmUgZ2VuZGVycywgYnV0IGFsc28gaSBkbyBub3Qgc3BlYWsgcnVzc2lhblxuICAgICAgICAvLyBzZWUgYWJvdmUgY29tbWVudCBvZiBmaXJzdE5hbWUgbWV0aG9kXG4gICAgICAgIHZhciByYW5kID0gZmFrZXIucmFuZG9tLm51bWJlcigxKTtcbiAgICAgICAgaWYgKHJhbmQgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIubG9jYWxlc1tmYWtlci5sb2NhbGVdLm5hbWUubWFsZV9sYXN0X25hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5sb2NhbGVzW2Zha2VyLmxvY2FsZV0ubmFtZS5mZW1hbGVfbGFzdF9uYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLm5hbWUubGFzdF9uYW1lKTtcbiAgICB9LFxuXG4gICAgZmluZE5hbWU6IGZ1bmN0aW9uIChmaXJzdE5hbWUsIGxhc3ROYW1lKSB7XG4gICAgICAgIHZhciByID0gZmFrZXIucmFuZG9tLm51bWJlcig4KTtcbiAgICAgICAgZmlyc3ROYW1lID0gZmlyc3ROYW1lIHx8IGZha2VyLm5hbWUuZmlyc3ROYW1lKCk7XG4gICAgICAgIGxhc3ROYW1lID0gbGFzdE5hbWUgfHwgZmFrZXIubmFtZS5sYXN0TmFtZSgpO1xuICAgICAgICBzd2l0Y2ggKHIpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuIGZha2VyLm5hbWUucHJlZml4KCkgKyBcIiBcIiArIGZpcnN0TmFtZSArIFwiIFwiICsgbGFzdE5hbWU7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBmaXJzdE5hbWUgKyBcIiBcIiArIGxhc3ROYW1lICsgXCIgXCIgKyBmYWtlci5uYW1lLnN1ZmZpeCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0TmFtZSArIFwiIFwiICsgbGFzdE5hbWU7XG4gICAgfSxcblxuICAgIHByZWZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5wcmVmaXgpO1xuICAgIH0sXG5cbiAgICBzdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLm5hbWUuc3VmZml4KTtcbiAgICB9LFxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IF9uYW1lO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIHBob25lID0ge1xuICAgIHBob25lTnVtYmVyOiBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCBmYWtlci5waG9uZS5waG9uZUZvcm1hdHMoKTtcbiAgICAgICAgcmV0dXJuIGZha2VyLmhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoZm9ybWF0KTtcbiAgICB9LFxuXG4gICAgLy8gRklYTUU6IHRoaXMgaXMgc3RyYW5nZSBwYXNzaW5nIGluIGFuIGFycmF5IGluZGV4LlxuICAgIHBob25lTnVtYmVyRm9ybWF0OiBmdW5jdGlvbiAocGhvbmVGb3JtYXRzQXJyYXlJbmRleCkge1xuICAgICAgICBwaG9uZUZvcm1hdHNBcnJheUluZGV4ID0gcGhvbmVGb3JtYXRzQXJyYXlJbmRleCB8fCAwO1xuICAgICAgICByZXR1cm4gZmFrZXIuaGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmYWtlci5kZWZpbml0aW9ucy5waG9uZV9udW1iZXIuZm9ybWF0c1twaG9uZUZvcm1hdHNBcnJheUluZGV4XSk7XG4gICAgfSxcblxuICAgIHBob25lRm9ybWF0czogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLnBob25lX251bWJlci5mb3JtYXRzKTtcbiAgICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gcGhvbmU7XG4iLCJ2YXIgbWVyc2VubmUgPSByZXF1aXJlKCcuLi92ZW5kb3IvbWVyc2VubmUnKTtcbnZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbnZhciByYW5kb20gPSB7XG4gICAgLy8gcmV0dXJucyBhIHNpbmdsZSByYW5kb20gbnVtYmVyIGJhc2VkIG9uIGEgbWF4IG51bWJlciBvciByYW5nZVxuICAgIG51bWJlcjogZnVuY3Rpb24gKG9wdGlvbnMpIHtcblxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgbWF4OiBvcHRpb25zXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5taW4gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBvcHRpb25zLm1pbiA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubWF4ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgb3B0aW9ucy5tYXggPSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wcmVjaXNpb24gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBvcHRpb25zLnByZWNpc2lvbiA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYWtlIHRoZSByYW5nZSBpbmNsdXNpdmUgb2YgdGhlIG1heCB2YWx1ZVxuICAgICAgICB2YXIgbWF4ID0gb3B0aW9ucy5tYXg7XG4gICAgICAgIGlmIChtYXggPiAwKSB7XG4gICAgICAgICAgbWF4ICs9IG9wdGlvbnMucHJlY2lzaW9uO1xuICAgICAgICB9IFxuICAgICAgICAgIFxuICAgICAgICB2YXIgcmFuZG9tTnVtYmVyID0gb3B0aW9ucy5wcmVjaXNpb24gKiBNYXRoLmZsb29yKFxuICAgICAgICAgIG1lcnNlbm5lLnJhbmQobWF4IC8gb3B0aW9ucy5wcmVjaXNpb24sIG9wdGlvbnMubWluIC8gb3B0aW9ucy5wcmVjaXNpb24pKTtcblxuICAgICAgICByZXR1cm4gcmFuZG9tTnVtYmVyO1xuXG4gICAgfSxcblxuICAgIC8vIHRha2VzIGFuIGFycmF5IGFuZCByZXR1cm5zIGEgcmFuZG9tIGVsZW1lbnQgb2YgdGhlIGFycmF5XG4gICAgYXJyYXlfZWxlbWVudDogZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIGFycmF5ID0gYXJyYXkgfHwgW1wiYVwiLCBcImJcIiwgXCJjXCJdO1xuICAgICAgICB2YXIgciA9IGZha2VyLnJhbmRvbS5udW1iZXIoeyBtYXg6IGFycmF5Lmxlbmd0aCAtIDEgfSk7XG4gICAgICAgIHJldHVybiBhcnJheVtyXTtcbiAgICB9LFxuXG4gICAgLy8gdGFrZXMgYW4gb2JqZWN0IGFuZCByZXR1cm5zIHRoZSByYW5kb21seSBrZXkgb3IgdmFsdWVcbiAgICBvYmplY3RfZWxlbWVudDogZnVuY3Rpb24gKG9iamVjdCwgZmllbGQpIHtcbiAgICAgICAgb2JqZWN0ID0gb2JqZWN0IHx8IHt9O1xuICAgICAgICB2YXIgYXJyYXkgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuICAgICAgICB2YXIga2V5ID0gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoYXJyYXkpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZCA9PT0gXCJrZXlcIiA/IGtleSA6IG9iamVjdFtrZXldO1xuICAgIH0sXG5cbiAgICB1dWlkIDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgUkZDNDEyMl9URU1QTEFURSA9ICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnO1xuICAgICAgICB2YXIgcmVwbGFjZVBsYWNlaG9sZGVycyA9IGZ1bmN0aW9uIChwbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdmFyIHJhbmRvbSA9IE1hdGgucmFuZG9tKCkqMTZ8MDtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IHBsYWNlaG9sZGVyID09ICd4JyA/IHJhbmRvbSA6IChyYW5kb20gJjB4MyB8IDB4OCk7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoMTYpO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gUkZDNDEyMl9URU1QTEFURS5yZXBsYWNlKC9beHldL2csIHJlcGxhY2VQbGFjZWhvbGRlcnMpO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gcmFuZG9tO1xuIiwiLy8gdGhpcyBwcm9ncmFtIGlzIGEgSmF2YVNjcmlwdCB2ZXJzaW9uIG9mIE1lcnNlbm5lIFR3aXN0ZXIsIHdpdGggY29uY2VhbG1lbnQgYW5kIGVuY2Fwc3VsYXRpb24gaW4gY2xhc3MsXG4vLyBhbiBhbG1vc3Qgc3RyYWlnaHQgY29udmVyc2lvbiBmcm9tIHRoZSBvcmlnaW5hbCBwcm9ncmFtLCBtdDE5OTM3YXIuYyxcbi8vIHRyYW5zbGF0ZWQgYnkgeS4gb2thZGEgb24gSnVseSAxNywgMjAwNi5cbi8vIGFuZCBtb2RpZmllZCBhIGxpdHRsZSBhdCBqdWx5IDIwLCAyMDA2LCBidXQgdGhlcmUgYXJlIG5vdCBhbnkgc3Vic3RhbnRpYWwgZGlmZmVyZW5jZXMuXG4vLyBpbiB0aGlzIHByb2dyYW0sIHByb2NlZHVyZSBkZXNjcmlwdGlvbnMgYW5kIGNvbW1lbnRzIG9mIG9yaWdpbmFsIHNvdXJjZSBjb2RlIHdlcmUgbm90IHJlbW92ZWQuXG4vLyBsaW5lcyBjb21tZW50ZWQgd2l0aCAvL2MvLyB3ZXJlIG9yaWdpbmFsbHkgZGVzY3JpcHRpb25zIG9mIGMgcHJvY2VkdXJlLiBhbmQgYSBmZXcgZm9sbG93aW5nIGxpbmVzIGFyZSBhcHByb3ByaWF0ZSBKYXZhU2NyaXB0IGRlc2NyaXB0aW9ucy5cbi8vIGxpbmVzIGNvbW1lbnRlZCB3aXRoIC8qIGFuZCAqLyBhcmUgb3JpZ2luYWwgY29tbWVudHMuXG4vLyBsaW5lcyBjb21tZW50ZWQgd2l0aCAvLyBhcmUgYWRkaXRpb25hbCBjb21tZW50cyBpbiB0aGlzIEphdmFTY3JpcHQgdmVyc2lvbi5cbi8vIGJlZm9yZSB1c2luZyB0aGlzIHZlcnNpb24sIGNyZWF0ZSBhdCBsZWFzdCBvbmUgaW5zdGFuY2Ugb2YgTWVyc2VubmVUd2lzdGVyMTk5MzcgY2xhc3MsIGFuZCBpbml0aWFsaXplIHRoZSBlYWNoIHN0YXRlLCBnaXZlbiBiZWxvdyBpbiBjIGNvbW1lbnRzLCBvZiBhbGwgdGhlIGluc3RhbmNlcy5cbi8qXG4gICBBIEMtcHJvZ3JhbSBmb3IgTVQxOTkzNywgd2l0aCBpbml0aWFsaXphdGlvbiBpbXByb3ZlZCAyMDAyLzEvMjYuXG4gICBDb2RlZCBieSBUYWt1amkgTmlzaGltdXJhIGFuZCBNYWtvdG8gTWF0c3Vtb3RvLlxuXG4gICBCZWZvcmUgdXNpbmcsIGluaXRpYWxpemUgdGhlIHN0YXRlIGJ5IHVzaW5nIGluaXRfZ2VucmFuZChzZWVkKVxuICAgb3IgaW5pdF9ieV9hcnJheShpbml0X2tleSwga2V5X2xlbmd0aCkuXG5cbiAgIENvcHlyaWdodCAoQykgMTk5NyAtIDIwMDIsIE1ha290byBNYXRzdW1vdG8gYW5kIFRha3VqaSBOaXNoaW11cmEsXG4gICBBbGwgcmlnaHRzIHJlc2VydmVkLlxuXG4gICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uc1xuICAgYXJlIG1ldDpcblxuICAgICAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG5cbiAgICAgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHRcbiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZVxuICAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuXG4gICAgIDMuIFRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGVcbiAgICAgICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuXG4gICAgICAgIHBlcm1pc3Npb24uXG5cbiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlNcbiAgIFwiQVMgSVNcIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1RcbiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUlxuICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SXG4gICBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCxcbiAgIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTyxcbiAgIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUlxuICAgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRlxuICAgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkdcbiAgIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJU1xuICAgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG5cblxuICAgQW55IGZlZWRiYWNrIGlzIHZlcnkgd2VsY29tZS5cbiAgIGh0dHA6Ly93d3cubWF0aC5zY2kuaGlyb3NoaW1hLXUuYWMuanAvfm0tbWF0L01UL2VtdC5odG1sXG4gICBlbWFpbDogbS1tYXQgQCBtYXRoLnNjaS5oaXJvc2hpbWEtdS5hYy5qcCAocmVtb3ZlIHNwYWNlKVxuKi9cblxuZnVuY3Rpb24gTWVyc2VubmVUd2lzdGVyMTk5MzcoKVxue1xuXHQvKiBjb25zdGFudHMgc2hvdWxkIGJlIHNjb3BlZCBpbnNpZGUgdGhlIGNsYXNzICovXG5cdHZhciBOLCBNLCBNQVRSSVhfQSwgVVBQRVJfTUFTSywgTE9XRVJfTUFTSztcblx0LyogUGVyaW9kIHBhcmFtZXRlcnMgKi9cblx0Ly9jLy8jZGVmaW5lIE4gNjI0XG5cdC8vYy8vI2RlZmluZSBNIDM5N1xuXHQvL2MvLyNkZWZpbmUgTUFUUklYX0EgMHg5OTA4YjBkZlVMICAgLyogY29uc3RhbnQgdmVjdG9yIGEgKi9cblx0Ly9jLy8jZGVmaW5lIFVQUEVSX01BU0sgMHg4MDAwMDAwMFVMIC8qIG1vc3Qgc2lnbmlmaWNhbnQgdy1yIGJpdHMgKi9cblx0Ly9jLy8jZGVmaW5lIExPV0VSX01BU0sgMHg3ZmZmZmZmZlVMIC8qIGxlYXN0IHNpZ25pZmljYW50IHIgYml0cyAqL1xuXHROID0gNjI0O1xuXHRNID0gMzk3O1xuXHRNQVRSSVhfQSA9IDB4OTkwOGIwZGY7ICAgLyogY29uc3RhbnQgdmVjdG9yIGEgKi9cblx0VVBQRVJfTUFTSyA9IDB4ODAwMDAwMDA7IC8qIG1vc3Qgc2lnbmlmaWNhbnQgdy1yIGJpdHMgKi9cblx0TE9XRVJfTUFTSyA9IDB4N2ZmZmZmZmY7IC8qIGxlYXN0IHNpZ25pZmljYW50IHIgYml0cyAqL1xuXHQvL2MvL3N0YXRpYyB1bnNpZ25lZCBsb25nIG10W05dOyAvKiB0aGUgYXJyYXkgZm9yIHRoZSBzdGF0ZSB2ZWN0b3IgICovXG5cdC8vYy8vc3RhdGljIGludCBtdGk9TisxOyAvKiBtdGk9PU4rMSBtZWFucyBtdFtOXSBpcyBub3QgaW5pdGlhbGl6ZWQgKi9cblx0dmFyIG10ID0gbmV3IEFycmF5KE4pOyAgIC8qIHRoZSBhcnJheSBmb3IgdGhlIHN0YXRlIHZlY3RvciAgKi9cblx0dmFyIG10aSA9IE4rMTsgICAgICAgICAgIC8qIG10aT09TisxIG1lYW5zIG10W05dIGlzIG5vdCBpbml0aWFsaXplZCAqL1xuXG5cdGZ1bmN0aW9uIHVuc2lnbmVkMzIgKG4xKSAvLyByZXR1cm5zIGEgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgZnJvbSBhbiBvcGVyYW5kIHRvIHdoaWNoIGFwcGxpZWQgYSBiaXQgb3BlcmF0b3IuXG5cdHtcblx0XHRyZXR1cm4gbjEgPCAwID8gKG4xIF4gVVBQRVJfTUFTSykgKyBVUFBFUl9NQVNLIDogbjE7XG5cdH1cblxuXHRmdW5jdGlvbiBzdWJ0cmFjdGlvbjMyIChuMSwgbjIpIC8vIGVtdWxhdGVzIGxvd2VyZmxvdyBvZiBhIGMgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgdmFyaWFibGUsIGluc3RlYWQgb2YgdGhlIG9wZXJhdG9yIC0uIHRoZXNlIGJvdGggYXJndW1lbnRzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzIGV4cHJlc3NpYmxlIHVzaW5nIHVuc2lnbmVkIDMyIGJpdHMuXG5cdHtcblx0XHRyZXR1cm4gbjEgPCBuMiA/IHVuc2lnbmVkMzIoKDB4MTAwMDAwMDAwIC0gKG4yIC0gbjEpKSAmIDB4ZmZmZmZmZmYpIDogbjEgLSBuMjtcblx0fVxuXG5cdGZ1bmN0aW9uIGFkZGl0aW9uMzIgKG4xLCBuMikgLy8gZW11bGF0ZXMgb3ZlcmZsb3cgb2YgYSBjIDMyLWJpdHMgdW5zaWdlZCBpbnRlZ2VyIHZhcmlhYmxlLCBpbnN0ZWFkIG9mIHRoZSBvcGVyYXRvciArLiB0aGVzZSBib3RoIGFyZ3VtZW50cyBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VycyBleHByZXNzaWJsZSB1c2luZyB1bnNpZ25lZCAzMiBiaXRzLlxuXHR7XG5cdFx0cmV0dXJuIHVuc2lnbmVkMzIoKG4xICsgbjIpICYgMHhmZmZmZmZmZilcblx0fVxuXG5cdGZ1bmN0aW9uIG11bHRpcGxpY2F0aW9uMzIgKG4xLCBuMikgLy8gZW11bGF0ZXMgb3ZlcmZsb3cgb2YgYSBjIDMyLWJpdHMgdW5zaWdlZCBpbnRlZ2VyIHZhcmlhYmxlLCBpbnN0ZWFkIG9mIHRoZSBvcGVyYXRvciAqLiB0aGVzZSBib3RoIGFyZ3VtZW50cyBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VycyBleHByZXNzaWJsZSB1c2luZyB1bnNpZ25lZCAzMiBiaXRzLlxuXHR7XG5cdFx0dmFyIHN1bSA9IDA7XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAzMjsgKytpKXtcblx0XHRcdGlmICgobjEgPj4+IGkpICYgMHgxKXtcblx0XHRcdFx0c3VtID0gYWRkaXRpb24zMihzdW0sIHVuc2lnbmVkMzIobjIgPDwgaSkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gc3VtO1xuXHR9XG5cblx0LyogaW5pdGlhbGl6ZXMgbXRbTl0gd2l0aCBhIHNlZWQgKi9cblx0Ly9jLy92b2lkIGluaXRfZ2VucmFuZCh1bnNpZ25lZCBsb25nIHMpXG5cdHRoaXMuaW5pdF9nZW5yYW5kID0gZnVuY3Rpb24gKHMpXG5cdHtcblx0XHQvL2MvL210WzBdPSBzICYgMHhmZmZmZmZmZjtcblx0XHRtdFswXT0gdW5zaWduZWQzMihzICYgMHhmZmZmZmZmZik7XG5cdFx0Zm9yIChtdGk9MTsgbXRpPE47IG10aSsrKSB7XG5cdFx0XHRtdFttdGldID0gXG5cdFx0XHQvL2MvLygxODEyNDMzMjUzICogKG10W210aS0xXSBeIChtdFttdGktMV0gPj4gMzApKSArIG10aSk7XG5cdFx0XHRhZGRpdGlvbjMyKG11bHRpcGxpY2F0aW9uMzIoMTgxMjQzMzI1MywgdW5zaWduZWQzMihtdFttdGktMV0gXiAobXRbbXRpLTFdID4+PiAzMCkpKSwgbXRpKTtcblx0XHRcdC8qIFNlZSBLbnV0aCBUQU9DUCBWb2wyLiAzcmQgRWQuIFAuMTA2IGZvciBtdWx0aXBsaWVyLiAqL1xuXHRcdFx0LyogSW4gdGhlIHByZXZpb3VzIHZlcnNpb25zLCBNU0JzIG9mIHRoZSBzZWVkIGFmZmVjdCAgICovXG5cdFx0XHQvKiBvbmx5IE1TQnMgb2YgdGhlIGFycmF5IG10W10uICAgICAgICAgICAgICAgICAgICAgICAgKi9cblx0XHRcdC8qIDIwMDIvMDEvMDkgbW9kaWZpZWQgYnkgTWFrb3RvIE1hdHN1bW90byAgICAgICAgICAgICAqL1xuXHRcdFx0Ly9jLy9tdFttdGldICY9IDB4ZmZmZmZmZmY7XG5cdFx0XHRtdFttdGldID0gdW5zaWduZWQzMihtdFttdGldICYgMHhmZmZmZmZmZik7XG5cdFx0XHQvKiBmb3IgPjMyIGJpdCBtYWNoaW5lcyAqL1xuXHRcdH1cblx0fVxuXG5cdC8qIGluaXRpYWxpemUgYnkgYW4gYXJyYXkgd2l0aCBhcnJheS1sZW5ndGggKi9cblx0LyogaW5pdF9rZXkgaXMgdGhlIGFycmF5IGZvciBpbml0aWFsaXppbmcga2V5cyAqL1xuXHQvKiBrZXlfbGVuZ3RoIGlzIGl0cyBsZW5ndGggKi9cblx0Lyogc2xpZ2h0IGNoYW5nZSBmb3IgQysrLCAyMDA0LzIvMjYgKi9cblx0Ly9jLy92b2lkIGluaXRfYnlfYXJyYXkodW5zaWduZWQgbG9uZyBpbml0X2tleVtdLCBpbnQga2V5X2xlbmd0aClcblx0dGhpcy5pbml0X2J5X2FycmF5ID0gZnVuY3Rpb24gKGluaXRfa2V5LCBrZXlfbGVuZ3RoKVxuXHR7XG5cdFx0Ly9jLy9pbnQgaSwgaiwgaztcblx0XHR2YXIgaSwgaiwgaztcblx0XHQvL2MvL2luaXRfZ2VucmFuZCgxOTY1MDIxOCk7XG5cdFx0dGhpcy5pbml0X2dlbnJhbmQoMTk2NTAyMTgpO1xuXHRcdGk9MTsgaj0wO1xuXHRcdGsgPSAoTj5rZXlfbGVuZ3RoID8gTiA6IGtleV9sZW5ndGgpO1xuXHRcdGZvciAoOyBrOyBrLS0pIHtcblx0XHRcdC8vYy8vbXRbaV0gPSAobXRbaV0gXiAoKG10W2ktMV0gXiAobXRbaS0xXSA+PiAzMCkpICogMTY2NDUyNSkpXG5cdFx0XHQvL2MvL1x0KyBpbml0X2tleVtqXSArIGo7IC8qIG5vbiBsaW5lYXIgKi9cblx0XHRcdG10W2ldID0gYWRkaXRpb24zMihhZGRpdGlvbjMyKHVuc2lnbmVkMzIobXRbaV0gXiBtdWx0aXBsaWNhdGlvbjMyKHVuc2lnbmVkMzIobXRbaS0xXSBeIChtdFtpLTFdID4+PiAzMCkpLCAxNjY0NTI1KSksIGluaXRfa2V5W2pdKSwgaik7XG5cdFx0XHRtdFtpXSA9IFxuXHRcdFx0Ly9jLy9tdFtpXSAmPSAweGZmZmZmZmZmOyAvKiBmb3IgV09SRFNJWkUgPiAzMiBtYWNoaW5lcyAqL1xuXHRcdFx0dW5zaWduZWQzMihtdFtpXSAmIDB4ZmZmZmZmZmYpO1xuXHRcdFx0aSsrOyBqKys7XG5cdFx0XHRpZiAoaT49TikgeyBtdFswXSA9IG10W04tMV07IGk9MTsgfVxuXHRcdFx0aWYgKGo+PWtleV9sZW5ndGgpIGo9MDtcblx0XHR9XG5cdFx0Zm9yIChrPU4tMTsgazsgay0tKSB7XG5cdFx0XHQvL2MvL210W2ldID0gKG10W2ldIF4gKChtdFtpLTFdIF4gKG10W2ktMV0gPj4gMzApKSAqIDE1NjYwODM5NDEpKVxuXHRcdFx0Ly9jLy8tIGk7IC8qIG5vbiBsaW5lYXIgKi9cblx0XHRcdG10W2ldID0gc3VidHJhY3Rpb24zMih1bnNpZ25lZDMyKChkYmc9bXRbaV0pIF4gbXVsdGlwbGljYXRpb24zMih1bnNpZ25lZDMyKG10W2ktMV0gXiAobXRbaS0xXSA+Pj4gMzApKSwgMTU2NjA4Mzk0MSkpLCBpKTtcblx0XHRcdC8vYy8vbXRbaV0gJj0gMHhmZmZmZmZmZjsgLyogZm9yIFdPUkRTSVpFID4gMzIgbWFjaGluZXMgKi9cblx0XHRcdG10W2ldID0gdW5zaWduZWQzMihtdFtpXSAmIDB4ZmZmZmZmZmYpO1xuXHRcdFx0aSsrO1xuXHRcdFx0aWYgKGk+PU4pIHsgbXRbMF0gPSBtdFtOLTFdOyBpPTE7IH1cblx0XHR9XG5cdFx0bXRbMF0gPSAweDgwMDAwMDAwOyAvKiBNU0IgaXMgMTsgYXNzdXJpbmcgbm9uLXplcm8gaW5pdGlhbCBhcnJheSAqL1xuXHR9XG5cbiAgICAvKiBtb3ZlZCBvdXRzaWRlIG9mIGdlbnJhbmRfaW50MzIoKSBieSBqd2F0dGUgMjAxMC0xMS0xNzsgZ2VuZXJhdGUgbGVzcyBnYXJiYWdlICovXG4gICAgdmFyIG1hZzAxID0gWzB4MCwgTUFUUklYX0FdO1xuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMHhmZmZmZmZmZl0taW50ZXJ2YWwgKi9cblx0Ly9jLy91bnNpZ25lZCBsb25nIGdlbnJhbmRfaW50MzIodm9pZClcblx0dGhpcy5nZW5yYW5kX2ludDMyID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vdW5zaWduZWQgbG9uZyB5O1xuXHRcdC8vYy8vc3RhdGljIHVuc2lnbmVkIGxvbmcgbWFnMDFbMl09ezB4MFVMLCBNQVRSSVhfQX07XG5cdFx0dmFyIHk7XG5cdFx0LyogbWFnMDFbeF0gPSB4ICogTUFUUklYX0EgIGZvciB4PTAsMSAqL1xuXG5cdFx0aWYgKG10aSA+PSBOKSB7IC8qIGdlbmVyYXRlIE4gd29yZHMgYXQgb25lIHRpbWUgKi9cblx0XHRcdC8vYy8vaW50IGtrO1xuXHRcdFx0dmFyIGtrO1xuXG5cdFx0XHRpZiAobXRpID09IE4rMSkgICAvKiBpZiBpbml0X2dlbnJhbmQoKSBoYXMgbm90IGJlZW4gY2FsbGVkLCAqL1xuXHRcdFx0XHQvL2MvL2luaXRfZ2VucmFuZCg1NDg5KTsgLyogYSBkZWZhdWx0IGluaXRpYWwgc2VlZCBpcyB1c2VkICovXG5cdFx0XHRcdHRoaXMuaW5pdF9nZW5yYW5kKDU0ODkpOyAvKiBhIGRlZmF1bHQgaW5pdGlhbCBzZWVkIGlzIHVzZWQgKi9cblxuXHRcdFx0Zm9yIChraz0wO2trPE4tTTtraysrKSB7XG5cdFx0XHRcdC8vYy8veSA9IChtdFtra10mVVBQRVJfTUFTSyl8KG10W2trKzFdJkxPV0VSX01BU0spO1xuXHRcdFx0XHQvL2MvL210W2trXSA9IG10W2trK01dIF4gKHkgPj4gMSkgXiBtYWcwMVt5ICYgMHgxXTtcblx0XHRcdFx0eSA9IHVuc2lnbmVkMzIoKG10W2trXSZVUFBFUl9NQVNLKXwobXRba2srMV0mTE9XRVJfTUFTSykpO1xuXHRcdFx0XHRtdFtra10gPSB1bnNpZ25lZDMyKG10W2trK01dIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV0pO1xuXHRcdFx0fVxuXHRcdFx0Zm9yICg7a2s8Ti0xO2trKyspIHtcblx0XHRcdFx0Ly9jLy95ID0gKG10W2trXSZVUFBFUl9NQVNLKXwobXRba2srMV0mTE9XRVJfTUFTSyk7XG5cdFx0XHRcdC8vYy8vbXRba2tdID0gbXRba2srKE0tTildIF4gKHkgPj4gMSkgXiBtYWcwMVt5ICYgMHgxXTtcblx0XHRcdFx0eSA9IHVuc2lnbmVkMzIoKG10W2trXSZVUFBFUl9NQVNLKXwobXRba2srMV0mTE9XRVJfTUFTSykpO1xuXHRcdFx0XHRtdFtra10gPSB1bnNpZ25lZDMyKG10W2trKyhNLU4pXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdKTtcblx0XHRcdH1cblx0XHRcdC8vYy8veSA9IChtdFtOLTFdJlVQUEVSX01BU0spfChtdFswXSZMT1dFUl9NQVNLKTtcblx0XHRcdC8vYy8vbXRbTi0xXSA9IG10W00tMV0gXiAoeSA+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXHRcdFx0eSA9IHVuc2lnbmVkMzIoKG10W04tMV0mVVBQRVJfTUFTSyl8KG10WzBdJkxPV0VSX01BU0spKTtcblx0XHRcdG10W04tMV0gPSB1bnNpZ25lZDMyKG10W00tMV0gXiAoeSA+Pj4gMSkgXiBtYWcwMVt5ICYgMHgxXSk7XG5cdFx0XHRtdGkgPSAwO1xuXHRcdH1cblxuXHRcdHkgPSBtdFttdGkrK107XG5cblx0XHQvKiBUZW1wZXJpbmcgKi9cblx0XHQvL2MvL3kgXj0gKHkgPj4gMTEpO1xuXHRcdC8vYy8veSBePSAoeSA8PCA3KSAmIDB4OWQyYzU2ODA7XG5cdFx0Ly9jLy95IF49ICh5IDw8IDE1KSAmIDB4ZWZjNjAwMDA7XG5cdFx0Ly9jLy95IF49ICh5ID4+IDE4KTtcblx0XHR5ID0gdW5zaWduZWQzMih5IF4gKHkgPj4+IDExKSk7XG5cdFx0eSA9IHVuc2lnbmVkMzIoeSBeICgoeSA8PCA3KSAmIDB4OWQyYzU2ODApKTtcblx0XHR5ID0gdW5zaWduZWQzMih5IF4gKCh5IDw8IDE1KSAmIDB4ZWZjNjAwMDApKTtcblx0XHR5ID0gdW5zaWduZWQzMih5IF4gKHkgPj4+IDE4KSk7XG5cblx0XHRyZXR1cm4geTtcblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMHg3ZmZmZmZmZl0taW50ZXJ2YWwgKi9cblx0Ly9jLy9sb25nIGdlbnJhbmRfaW50MzEodm9pZClcblx0dGhpcy5nZW5yYW5kX2ludDMxID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vcmV0dXJuIChnZW5yYW5kX2ludDMyKCk+PjEpO1xuXHRcdHJldHVybiAodGhpcy5nZW5yYW5kX2ludDMyKCk+Pj4xKTtcblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMV0tcmVhbC1pbnRlcnZhbCAqL1xuXHQvL2MvL2RvdWJsZSBnZW5yYW5kX3JlYWwxKHZvaWQpXG5cdHRoaXMuZ2VucmFuZF9yZWFsMSA9IGZ1bmN0aW9uICgpXG5cdHtcblx0XHQvL2MvL3JldHVybiBnZW5yYW5kX2ludDMyKCkqKDEuMC80Mjk0OTY3Mjk1LjApO1xuXHRcdHJldHVybiB0aGlzLmdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTUuMCk7XG5cdFx0LyogZGl2aWRlZCBieSAyXjMyLTEgKi9cblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSktcmVhbC1pbnRlcnZhbCAqL1xuXHQvL2MvL2RvdWJsZSBnZW5yYW5kX3JlYWwyKHZvaWQpXG5cdHRoaXMuZ2VucmFuZF9yZWFsMiA9IGZ1bmN0aW9uICgpXG5cdHtcblx0XHQvL2MvL3JldHVybiBnZW5yYW5kX2ludDMyKCkqKDEuMC80Mjk0OTY3Mjk2LjApO1xuXHRcdHJldHVybiB0aGlzLmdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTYuMCk7XG5cdFx0LyogZGl2aWRlZCBieSAyXjMyICovXG5cdH1cblxuXHQvKiBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9uICgwLDEpLXJlYWwtaW50ZXJ2YWwgKi9cblx0Ly9jLy9kb3VibGUgZ2VucmFuZF9yZWFsMyh2b2lkKVxuXHR0aGlzLmdlbnJhbmRfcmVhbDMgPSBmdW5jdGlvbiAoKVxuXHR7XG5cdFx0Ly9jLy9yZXR1cm4gKChnZW5yYW5kX2ludDMyKCkpICsgMC41KSooMS4wLzQyOTQ5NjcyOTYuMCk7XG5cdFx0cmV0dXJuICgodGhpcy5nZW5yYW5kX2ludDMyKCkpICsgMC41KSooMS4wLzQyOTQ5NjcyOTYuMCk7XG5cdFx0LyogZGl2aWRlZCBieSAyXjMyICovXG5cdH1cblxuXHQvKiBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9uIFswLDEpIHdpdGggNTMtYml0IHJlc29sdXRpb24qL1xuXHQvL2MvL2RvdWJsZSBnZW5yYW5kX3JlczUzKHZvaWQpXG5cdHRoaXMuZ2VucmFuZF9yZXM1MyA9IGZ1bmN0aW9uICgpXG5cdHtcblx0XHQvL2MvL3Vuc2lnbmVkIGxvbmcgYT1nZW5yYW5kX2ludDMyKCk+PjUsIGI9Z2VucmFuZF9pbnQzMigpPj42O1xuXHRcdHZhciBhPXRoaXMuZ2VucmFuZF9pbnQzMigpPj4+NSwgYj10aGlzLmdlbnJhbmRfaW50MzIoKT4+PjY7XG5cdFx0cmV0dXJuKGEqNjcxMDg4NjQuMCtiKSooMS4wLzkwMDcxOTkyNTQ3NDA5OTIuMCk7XG5cdH1cblx0LyogVGhlc2UgcmVhbCB2ZXJzaW9ucyBhcmUgZHVlIHRvIElzYWt1IFdhZGEsIDIwMDIvMDEvMDkgYWRkZWQgKi9cbn1cblxuLy8gIEV4cG9ydHM6IFB1YmxpYyBBUElcblxuLy8gIEV4cG9ydCB0aGUgdHdpc3RlciBjbGFzc1xuZXhwb3J0cy5NZXJzZW5uZVR3aXN0ZXIxOTkzNyA9IE1lcnNlbm5lVHdpc3RlcjE5OTM3O1xuXG4vLyAgRXhwb3J0IGEgc2ltcGxpZmllZCBmdW5jdGlvbiB0byBnZW5lcmF0ZSByYW5kb20gbnVtYmVyc1xudmFyIGdlbiA9IG5ldyBNZXJzZW5uZVR3aXN0ZXIxOTkzNztcbmdlbi5pbml0X2dlbnJhbmQoKG5ldyBEYXRlKS5nZXRUaW1lKCkgJSAxMDAwMDAwMDAwKTtcblxuLy8gQWRkZWQgbWF4LCBtaW4gcmFuZ2UgZnVuY3Rpb25hbGl0eSwgTWFyYWsgU3F1aXJlcyBTZXB0IDExIDIwMTRcbmV4cG9ydHMucmFuZCA9IGZ1bmN0aW9uKG1heCwgbWluKSB7XG4gICAgaWYgKCFtYXgpXG4gICAgICAgIHtcbiAgICAgICAgbWluID0gMDtcbiAgICAgICAgbWF4ID0gMzI3Njg7XG4gICAgICAgIH1cbiAgICByZXR1cm4gTWF0aC5mbG9vcihnZW4uZ2VucmFuZF9yZWFsMigpICogKG1heCAtIG1pbikgKyBtaW4pO1xufVxuZXhwb3J0cy5zZWVkID0gZnVuY3Rpb24oUykge1xuICAgIGlmICh0eXBlb2YoUykgIT0gJ251bWJlcicpXG4gICAgICAgIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2VlZChTKSBtdXN0IHRha2UgbnVtZXJpYyBhcmd1bWVudDsgaXMgXCIgKyB0eXBlb2YoUykpO1xuICAgICAgICB9XG4gICAgZ2VuLmluaXRfZ2VucmFuZChTKTtcbn1cbmV4cG9ydHMuc2VlZF9hcnJheSA9IGZ1bmN0aW9uKEEpIHtcbiAgICBpZiAodHlwZW9mKEEpICE9ICdvYmplY3QnKVxuICAgICAgICB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInNlZWRfYXJyYXkoQSkgbXVzdCB0YWtlIGFycmF5IG9mIG51bWJlcnM7IGlzIFwiICsgdHlwZW9mKEEpKTtcbiAgICAgICAgfVxuICAgIGdlbi5pbml0X2J5X2FycmF5KEEpO1xufVxuXG4iLCIvKlxuICogcGFzc3dvcmQtZ2VuZXJhdG9yXG4gKiBDb3B5cmlnaHQoYykgMjAxMS0yMDEzIEJlcm1pIEZlcnJlciA8YmVybWlAYmVybWlsYWJzLmNvbT5cbiAqIE1JVCBMaWNlbnNlZFxuICovXG4oZnVuY3Rpb24gKHJvb3QpIHtcblxuICB2YXIgbG9jYWxOYW1lLCBjb25zb25hbnQsIGxldHRlciwgcGFzc3dvcmQsIHZvd2VsO1xuICBsZXR0ZXIgPSAvW2EtekEtWl0kLztcbiAgdm93ZWwgPSAvW2FlaW91QUVJT1VdJC87XG4gIGNvbnNvbmFudCA9IC9bYmNkZmdoamtsbW5wcXJzdHZ3eHl6QkNERkdISktMTU5QUVJTVFZXWFlaXSQvO1xuXG5cbiAgLy8gRGVmaW5lcyB0aGUgbmFtZSBvZiB0aGUgbG9jYWwgdmFyaWFibGUgdGhlIHBhc3N3b3JkR2VuZXJhdG9yIGxpYnJhcnkgd2lsbCB1c2VcbiAgLy8gdGhpcyBpcyBzcGVjaWFsbHkgdXNlZnVsIGlmIHdpbmRvdy5wYXNzd29yZEdlbmVyYXRvciBpcyBhbHJlYWR5IGJlaW5nIHVzZWRcbiAgLy8gYnkgeW91ciBhcHBsaWNhdGlvbiBhbmQgeW91IHdhbnQgYSBkaWZmZXJlbnQgbmFtZS4gRm9yIGV4YW1wbGU6XG4gIC8vICAgIC8vIERlY2xhcmUgYmVmb3JlIGluY2x1ZGluZyB0aGUgcGFzc3dvcmRHZW5lcmF0b3IgbGlicmFyeVxuICAvLyAgICB2YXIgbG9jYWxQYXNzd29yZEdlbmVyYXRvckxpYnJhcnlOYW1lID0gJ3Bhc3MnO1xuICBsb2NhbE5hbWUgPSByb290LmxvY2FsUGFzc3dvcmRHZW5lcmF0b3JMaWJyYXJ5TmFtZSB8fCBcImdlbmVyYXRlUGFzc3dvcmRcIixcblxuICBwYXNzd29yZCA9IGZ1bmN0aW9uIChsZW5ndGgsIG1lbW9yYWJsZSwgcGF0dGVybiwgcHJlZml4KSB7XG4gICAgdmFyIGNoYXIsIG47XG4gICAgaWYgKGxlbmd0aCA9PSBudWxsKSB7XG4gICAgICBsZW5ndGggPSAxMDtcbiAgICB9XG4gICAgaWYgKG1lbW9yYWJsZSA9PSBudWxsKSB7XG4gICAgICBtZW1vcmFibGUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAocGF0dGVybiA9PSBudWxsKSB7XG4gICAgICBwYXR0ZXJuID0gL1xcdy87XG4gICAgfVxuICAgIGlmIChwcmVmaXggPT0gbnVsbCkge1xuICAgICAgcHJlZml4ID0gJyc7XG4gICAgfVxuICAgIGlmIChwcmVmaXgubGVuZ3RoID49IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIHByZWZpeDtcbiAgICB9XG4gICAgaWYgKG1lbW9yYWJsZSkge1xuICAgICAgaWYgKHByZWZpeC5tYXRjaChjb25zb25hbnQpKSB7XG4gICAgICAgIHBhdHRlcm4gPSB2b3dlbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdHRlcm4gPSBjb25zb25hbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIG4gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA5NCkgKyAzMztcbiAgICBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuKTtcbiAgICBpZiAobWVtb3JhYmxlKSB7XG4gICAgICBjaGFyID0gY2hhci50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICBpZiAoIWNoYXIubWF0Y2gocGF0dGVybikpIHtcbiAgICAgIHJldHVybiBwYXNzd29yZChsZW5ndGgsIG1lbW9yYWJsZSwgcGF0dGVybiwgcHJlZml4KTtcbiAgICB9XG4gICAgcmV0dXJuIHBhc3N3b3JkKGxlbmd0aCwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBcIlwiICsgcHJlZml4ICsgY2hhcik7XG4gIH07XG5cblxuICAoKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykgPyBleHBvcnRzIDogcm9vdClbbG9jYWxOYW1lXSA9IHBhc3N3b3JkO1xuICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICBtb2R1bGUuZXhwb3J0cyA9IHBhc3N3b3JkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVzdGFibGlzaCB0aGUgcm9vdCBvYmplY3QsIGB3aW5kb3dgIGluIHRoZSBicm93c2VyLCBvciBgZ2xvYmFsYCBvbiB0aGUgc2VydmVyLlxufSh0aGlzKSk7IiwiLypcblxuQ29weXJpZ2h0IChjKSAyMDEyLTIwMTQgSmVmZnJleSBNZWFsb1xuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWRcbmRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uXG50aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kXG50byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZVxuU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEVcbldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUlxuQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQmFzZWQgbG9vc2VseSBvbiBMdWthIFB1c2ljJ3MgUEhQIFNjcmlwdDogaHR0cDovLzM2MHBlcmNlbnRzLmNvbS9wb3N0cy9waHAtcmFuZG9tLXVzZXItYWdlbnQtZ2VuZXJhdG9yL1xuXG5UaGUgbGljZW5zZSBmb3IgdGhhdCBzY3JpcHQgaXMgYXMgZm9sbG93czpcblxuXCJUSEUgQkVFUi1XQVJFIExJQ0VOU0VcIiAoUmV2aXNpb24gNDIpOlxuXG48cHVzaWM5M0BnbWFpbC5jb20+IHdyb3RlIHRoaXMgZmlsZS4gQXMgbG9uZyBhcyB5b3UgcmV0YWluIHRoaXMgbm90aWNlIHlvdSBjYW4gZG8gd2hhdGV2ZXIgeW91IHdhbnQgd2l0aCB0aGlzIHN0dWZmLlxuSWYgd2UgbWVldCBzb21lIGRheSwgYW5kIHlvdSB0aGluayB0aGlzIHN0dWZmIGlzIHdvcnRoIGl0LCB5b3UgY2FuIGJ1eSBtZSBhIGJlZXIgaW4gcmV0dXJuLiBMdWthIFB1c2ljXG4qL1xuXG5mdW5jdGlvbiBybmQoYSwgYikge1xuICAgIC8vY2FsbGluZyBybmQoKSB3aXRoIG5vIGFyZ3VtZW50cyBpcyBpZGVudGljYWwgdG8gcm5kKDAsIDEwMClcbiAgICBhID0gYSB8fCAwO1xuICAgIGIgPSBiIHx8IDEwMDtcblxuICAgIGlmICh0eXBlb2YgYiA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGEgPT09ICdudW1iZXInKSB7XG4gICAgICAgIC8vcm5kKGludCBtaW4sIGludCBtYXgpIHJldHVybnMgaW50ZWdlciBiZXR3ZWVuIG1pbiwgbWF4XG4gICAgICAgIHJldHVybiAoZnVuY3Rpb24gKG1pbiwgbWF4KSB7XG4gICAgICAgICAgICBpZiAobWluID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2V4cGVjdGVkIG1pbiA8PSBtYXg7IGdvdCBtaW4gPSAnICsgbWluICsgJywgbWF4ID0gJyArIG1heCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgICAgICAgfShhLCBiKSk7XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKSA9PT0gXCJbb2JqZWN0IEFycmF5XVwiKSB7XG4gICAgICAgIC8vcmV0dXJucyBhIHJhbmRvbSBlbGVtZW50IGZyb20gYXJyYXkgKGEpLCBldmVuIHdlaWdodGluZ1xuICAgICAgICByZXR1cm4gYVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhLmxlbmd0aCldO1xuICAgIH1cblxuICAgIGlmIChhICYmIHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvL3JldHVybnMgYSByYW5kb20ga2V5IGZyb20gdGhlIHBhc3NlZCBvYmplY3Q7IGtleXMgYXJlIHdlaWdodGVkIGJ5IHRoZSBkZWNpbWFsIHByb2JhYmlsaXR5IGluIHRoZWlyIHZhbHVlXG4gICAgICAgIHJldHVybiAoZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgdmFyIHJhbmQgPSBybmQoMCwgMTAwKSAvIDEwMCwgbWluID0gMCwgbWF4ID0gMCwga2V5LCByZXR1cm5fdmFsO1xuXG4gICAgICAgICAgICBmb3IgKGtleSBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4ID0gb2JqW2tleV0gKyBtaW47XG4gICAgICAgICAgICAgICAgICAgIHJldHVybl92YWwgPSBrZXk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyYW5kID49IG1pbiAmJiByYW5kIDw9IG1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbWluID0gbWluICsgb2JqW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuX3ZhbDtcbiAgICAgICAgfShhKSk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIHJuZC4gKCcgKyAoYiA/IGEgKyAnLCAnICsgYiA6IGEpICsgJyknKTtcbn1cblxuZnVuY3Rpb24gcmFuZG9tTGFuZygpIHtcbiAgICByZXR1cm4gcm5kKFsnQUInLCAnQUYnLCAnQU4nLCAnQVInLCAnQVMnLCAnQVonLCAnQkUnLCAnQkcnLCAnQk4nLCAnQk8nLCAnQlInLCAnQlMnLCAnQ0EnLCAnQ0UnLCAnQ08nLCAnQ1MnLFxuICAgICAgICAgICAgICAgICdDVScsICdDWScsICdEQScsICdERScsICdFTCcsICdFTicsICdFTycsICdFUycsICdFVCcsICdFVScsICdGQScsICdGSScsICdGSicsICdGTycsICdGUicsICdGWScsXG4gICAgICAgICAgICAgICAgJ0dBJywgJ0dEJywgJ0dMJywgJ0dWJywgJ0hFJywgJ0hJJywgJ0hSJywgJ0hUJywgJ0hVJywgJ0hZJywgJ0lEJywgJ0lTJywgJ0lUJywgJ0pBJywgJ0pWJywgJ0tBJyxcbiAgICAgICAgICAgICAgICAnS0cnLCAnS08nLCAnS1UnLCAnS1cnLCAnS1knLCAnTEEnLCAnTEInLCAnTEknLCAnTE4nLCAnTFQnLCAnTFYnLCAnTUcnLCAnTUsnLCAnTU4nLCAnTU8nLCAnTVMnLFxuICAgICAgICAgICAgICAgICdNVCcsICdNWScsICdOQicsICdORScsICdOTCcsICdOTicsICdOTycsICdPQycsICdQTCcsICdQVCcsICdSTScsICdSTycsICdSVScsICdTQycsICdTRScsICdTSycsXG4gICAgICAgICAgICAgICAgJ1NMJywgJ1NPJywgJ1NRJywgJ1NSJywgJ1NWJywgJ1NXJywgJ1RLJywgJ1RSJywgJ1RZJywgJ1VLJywgJ1VSJywgJ1VaJywgJ1ZJJywgJ1ZPJywgJ1lJJywgJ1pIJ10pO1xufVxuXG5mdW5jdGlvbiByYW5kb21Ccm93c2VyQW5kT1MoKSB7XG4gICAgdmFyIGJyb3dzZXIgPSBybmQoe1xuICAgICAgICBjaHJvbWU6ICAgIC40NTEzMjgxMDU2NixcbiAgICAgICAgaWV4cGxvcmVyOiAuMjc0NzcwNjE4MzYsXG4gICAgICAgIGZpcmVmb3g6ICAgLjE5Mzg0MTcwNjA4LFxuICAgICAgICBzYWZhcmk6ICAgIC4wNjE4Njc4MTExOCxcbiAgICAgICAgb3BlcmE6ICAgICAuMDE1NzQyMzY5NTVcbiAgICB9KSxcbiAgICBvcyA9IHtcbiAgICAgICAgY2hyb21lOiAge3dpbjogLjg5LCAgbWFjOiAuMDkgLCBsaW46IC4wMn0sXG4gICAgICAgIGZpcmVmb3g6IHt3aW46IC44MywgIG1hYzogLjE2LCAgbGluOiAuMDF9LFxuICAgICAgICBvcGVyYTogICB7d2luOiAuOTEsICBtYWM6IC4wMyAsIGxpbjogLjA2fSxcbiAgICAgICAgc2FmYXJpOiAge3dpbjogLjA0ICwgbWFjOiAuOTYgIH0sXG4gICAgICAgIGlleHBsb3JlcjogWyd3aW4nXVxuICAgIH07XG5cbiAgICByZXR1cm4gW2Jyb3dzZXIsIHJuZChvc1ticm93c2VyXSldO1xufVxuXG5mdW5jdGlvbiByYW5kb21Qcm9jKGFyY2gpIHtcbiAgICB2YXIgcHJvY3MgPSB7XG4gICAgICAgIGxpbjpbJ2k2ODYnLCAneDg2XzY0J10sXG4gICAgICAgIG1hYzogeydJbnRlbCcgOiAuNDgsICdQUEMnOiAuMDEsICdVOyBJbnRlbCc6LjQ4LCAnVTsgUFBDJyA6LjAxfSxcbiAgICAgICAgd2luOlsnJywgJ1dPVzY0JywgJ1dpbjY0OyB4NjQnXVxuICAgIH07XG4gICAgcmV0dXJuIHJuZChwcm9jc1thcmNoXSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVJldmlzaW9uKGRvdHMpIHtcbiAgICB2YXIgcmV0dXJuX3ZhbCA9ICcnO1xuICAgIC8vZ2VuZXJhdGUgYSByYW5kb20gcmV2aXNpb25cbiAgICAvL2RvdHMgPSAyIHJldHVybnMgLngueSB3aGVyZSB4ICYgeSBhcmUgYmV0d2VlbiAwIGFuZCA5XG4gICAgZm9yICh2YXIgeCA9IDA7IHggPCBkb3RzOyB4KyspIHtcbiAgICAgICAgcmV0dXJuX3ZhbCArPSAnLicgKyBybmQoMCwgOSk7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5fdmFsO1xufVxuXG52YXIgdmVyc2lvbl9zdHJpbmcgPSB7XG4gICAgbmV0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBbcm5kKDEsIDQpLCBybmQoMCwgOSksIHJuZCgxMDAwMCwgOTk5OTkpLCBybmQoMCwgOSldLmpvaW4oJy4nKTtcbiAgICB9LFxuICAgIG50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBybmQoNSwgNikgKyAnLicgKyBybmQoMCwgMyk7XG4gICAgfSxcbiAgICBpZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDcsIDExKTtcbiAgICB9LFxuICAgIHRyaWRlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJuZCgzLCA3KSArICcuJyArIHJuZCgwLCAxKTtcbiAgICB9LFxuICAgIG9zeDogZnVuY3Rpb24gKGRlbGltKSB7XG4gICAgICAgIHJldHVybiBbMTAsIHJuZCg1LCAxMCksIHJuZCgwLCA5KV0uam9pbihkZWxpbSB8fCAnLicpO1xuICAgIH0sXG4gICAgY2hyb21lOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBbcm5kKDEzLCAzOSksIDAsIHJuZCg4MDAsIDg5OSksIDBdLmpvaW4oJy4nKTtcbiAgICB9LFxuICAgIHByZXN0bzogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJzIuOS4nICsgcm5kKDE2MCwgMTkwKTtcbiAgICB9LFxuICAgIHByZXN0bzI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJuZCgxMCwgMTIpICsgJy4wMCc7XG4gICAgfSxcbiAgICBzYWZhcmk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJuZCg1MzEsIDUzOCkgKyAnLicgKyBybmQoMCwgMikgKyAnLicgKyBybmQoMCwyKTtcbiAgICB9XG59O1xuXG52YXIgYnJvd3NlciA9IHtcbiAgICBmaXJlZm94OiBmdW5jdGlvbiBmaXJlZm94KGFyY2gpIHtcbiAgICAgICAgLy9odHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0dlY2tvX3VzZXJfYWdlbnRfc3RyaW5nX3JlZmVyZW5jZVxuICAgICAgICB2YXIgZmlyZWZveF92ZXIgPSBybmQoNSwgMTUpICsgcmFuZG9tUmV2aXNpb24oMiksXG4gICAgICAgICAgICBnZWNrb192ZXIgPSAnR2Vja28vMjAxMDAxMDEgRmlyZWZveC8nICsgZmlyZWZveF92ZXIsXG4gICAgICAgICAgICBwcm9jID0gcmFuZG9tUHJvYyhhcmNoKSxcbiAgICAgICAgICAgIG9zX3ZlciA9IChhcmNoID09PSAnd2luJykgPyAnKFdpbmRvd3MgTlQgJyArIHZlcnNpb25fc3RyaW5nLm50KCkgKyAoKHByb2MpID8gJzsgJyArIHByb2MgOiAnJylcbiAgICAgICAgICAgIDogKGFyY2ggPT09ICdtYWMnKSA/ICcoTWFjaW50b3NoOyAnICsgcHJvYyArICcgTWFjIE9TIFggJyArIHZlcnNpb25fc3RyaW5nLm9zeCgpXG4gICAgICAgICAgICA6ICcoWDExOyBMaW51eCAnICsgcHJvYztcblxuICAgICAgICByZXR1cm4gJ01vemlsbGEvNS4wICcgKyBvc192ZXIgKyAnOyBydjonICsgZmlyZWZveF92ZXIuc2xpY2UoMCwgLTIpICsgJykgJyArIGdlY2tvX3ZlcjtcbiAgICB9LFxuXG4gICAgaWV4cGxvcmVyOiBmdW5jdGlvbiBpZXhwbG9yZXIoKSB7XG4gICAgICAgIHZhciB2ZXIgPSB2ZXJzaW9uX3N0cmluZy5pZSgpO1xuXG4gICAgICAgIGlmICh2ZXIgPj0gMTEpIHtcbiAgICAgICAgICAgIC8vaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2llL2hoODY5MzAxKHY9dnMuODUpLmFzcHhcbiAgICAgICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4nICsgcm5kKDEsMykgKyAnOyBUcmlkZW50LzcuMDsgJyArIHJuZChbJ1RvdWNoOyAnLCAnJ10pICsgJ3J2OjExLjApIGxpa2UgR2Vja28nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9odHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvbXM1Mzc1MDModj12cy44NSkuYXNweFxuICAgICAgICByZXR1cm4gJ01vemlsbGEvNS4wIChjb21wYXRpYmxlOyBNU0lFICcgKyB2ZXIgKyAnLjA7IFdpbmRvd3MgTlQgJyArIHZlcnNpb25fc3RyaW5nLm50KCkgKyAnOyBUcmlkZW50LycgK1xuICAgICAgICAgICAgdmVyc2lvbl9zdHJpbmcudHJpZGVudCgpICsgKChybmQoMCwgMSkgPT09IDEpID8gJzsgLk5FVCBDTFIgJyArIHZlcnNpb25fc3RyaW5nLm5ldCgpIDogJycpICsgJyknO1xuICAgIH0sXG5cbiAgICBvcGVyYTogZnVuY3Rpb24gb3BlcmEoYXJjaCkge1xuICAgICAgICAvL2h0dHA6Ly93d3cub3BlcmEuY29tL2RvY3MvaGlzdG9yeS9cbiAgICAgICAgdmFyIHByZXN0b192ZXIgPSAnIFByZXN0by8nICsgdmVyc2lvbl9zdHJpbmcucHJlc3RvKCkgKyAnIFZlcnNpb24vJyArIHZlcnNpb25fc3RyaW5nLnByZXN0bzIoKSArICcpJyxcbiAgICAgICAgICAgIG9zX3ZlciA9IChhcmNoID09PSAnd2luJykgPyAnKFdpbmRvd3MgTlQgJyArIHZlcnNpb25fc3RyaW5nLm50KCkgKyAnOyBVOyAnICsgcmFuZG9tTGFuZygpICsgcHJlc3RvX3ZlclxuICAgICAgICAgICAgOiAoYXJjaCA9PT0gJ2xpbicpID8gJyhYMTE7IExpbnV4ICcgKyByYW5kb21Qcm9jKGFyY2gpICsgJzsgVTsgJyArIHJhbmRvbUxhbmcoKSArIHByZXN0b192ZXJcbiAgICAgICAgICAgIDogJyhNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYICcgKyB2ZXJzaW9uX3N0cmluZy5vc3goKSArICcgVTsgJyArIHJhbmRvbUxhbmcoKSArICcgUHJlc3RvLycgK1xuICAgICAgICAgICAgdmVyc2lvbl9zdHJpbmcucHJlc3RvKCkgKyAnIFZlcnNpb24vJyArIHZlcnNpb25fc3RyaW5nLnByZXN0bzIoKSArICcpJztcblxuICAgICAgICByZXR1cm4gJ09wZXJhLycgKyBybmQoOSwgMTQpICsgJy4nICsgcm5kKDAsIDk5KSArICcgJyArIG9zX3ZlcjtcbiAgICB9LFxuXG4gICAgc2FmYXJpOiBmdW5jdGlvbiBzYWZhcmkoYXJjaCkge1xuICAgICAgICB2YXIgc2FmYXJpID0gdmVyc2lvbl9zdHJpbmcuc2FmYXJpKCksXG4gICAgICAgICAgICB2ZXIgPSBybmQoNCwgNykgKyAnLicgKyBybmQoMCwxKSArICcuJyArIHJuZCgwLDEwKSxcbiAgICAgICAgICAgIG9zX3ZlciA9IChhcmNoID09PSAnbWFjJykgPyAnKE1hY2ludG9zaDsgJyArIHJhbmRvbVByb2MoJ21hYycpICsgJyBNYWMgT1MgWCAnKyB2ZXJzaW9uX3N0cmluZy5vc3goJ18nKSArICcgcnY6JyArIHJuZCgyLCA2KSArICcuMDsgJysgcmFuZG9tTGFuZygpICsgJykgJ1xuICAgICAgICAgICAgOiAnKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgJyArIHZlcnNpb25fc3RyaW5nLm50KCkgKyAnKSc7XG5cbiAgICAgICAgcmV0dXJuICdNb3ppbGxhLzUuMCAnICsgb3NfdmVyICsgJ0FwcGxlV2ViS2l0LycgKyBzYWZhcmkgKyAnIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8nICsgdmVyICsgJyBTYWZhcmkvJyArIHNhZmFyaTtcbiAgICB9LFxuXG4gICAgY2hyb21lOiBmdW5jdGlvbiBjaHJvbWUoYXJjaCkge1xuICAgICAgICB2YXIgc2FmYXJpID0gdmVyc2lvbl9zdHJpbmcuc2FmYXJpKCksXG4gICAgICAgICAgICBvc192ZXIgPSAoYXJjaCA9PT0gJ21hYycpID8gJyhNYWNpbnRvc2g7ICcgKyByYW5kb21Qcm9jKCdtYWMnKSArICcgTWFjIE9TIFggJyArIHZlcnNpb25fc3RyaW5nLm9zeCgnXycpICsgJykgJ1xuICAgICAgICAgICAgOiAoYXJjaCA9PT0gJ3dpbicpID8gJyhXaW5kb3dzOyBVOyBXaW5kb3dzIE5UICcgKyB2ZXJzaW9uX3N0cmluZy5udCgpICsgJyknXG4gICAgICAgICAgICA6ICcoWDExOyBMaW51eCAnICsgcmFuZG9tUHJvYyhhcmNoKTtcblxuICAgICAgICByZXR1cm4gJ01vemlsbGEvNS4wICcgKyBvc192ZXIgKyAnIEFwcGxlV2ViS2l0LycgKyBzYWZhcmkgKyAnIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLycgKyB2ZXJzaW9uX3N0cmluZy5jaHJvbWUoKSArICcgU2FmYXJpLycgKyBzYWZhcmk7XG4gICAgfVxufTtcblxuZXhwb3J0cy5nZW5lcmF0ZSA9IGZ1bmN0aW9uIGdlbmVyYXRlKCkge1xuICAgIHZhciByYW5kb20gPSByYW5kb21Ccm93c2VyQW5kT1MoKTtcbiAgICByZXR1cm4gYnJvd3NlcltyYW5kb21bMF1dKHJhbmRvbVsxXSk7XG59O1xuIiwidmFyIHJldCA9IHJlcXVpcmUoJ3JldCcpO1xudmFyIERSYW5nZSA9IHJlcXVpcmUoJ2Rpc2NvbnRpbnVvdXMtcmFuZ2UnKTtcbnZhciB0eXBlcyA9IHJldC50eXBlcztcblxuXG4vKipcbiAqIElmIGNvZGUgaXMgYWxwaGFiZXRpYywgY29udmVydHMgdG8gb3RoZXIgY2FzZS5cbiAqIElmIG5vdCBhbHBoYWJldGljLCByZXR1cm5zIGJhY2sgY29kZS5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gY29kZVxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG5mdW5jdGlvbiB0b090aGVyQ2FzZShjb2RlKSB7XG4gIHJldHVybiBjb2RlICsgKDk3IDw9IGNvZGUgJiYgY29kZSA8PSAxMjIgPyAtMzIgOlxuICAgICAgICAgICAgICAgICA2NSA8PSBjb2RlICYmIGNvZGUgPD0gOTAgID8gIDMyIDogMCk7XG59XG5cblxuLyoqXG4gKiBSYW5kb21seSByZXR1cm5zIGEgdHJ1ZSBvciBmYWxzZSB2YWx1ZS5cbiAqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiByYW5kQm9vbCgpIHtcbiAgcmV0dXJuICF0aGlzLnJhbmRJbnQoMCwgMSk7XG59O1xuXG5cbi8qKlxuICogUmFuZG9tbHkgc2VsZWN0cyBhbmQgcmV0dXJucyBhIHZhbHVlIGZyb20gdGhlIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7QXJyYXkuPE9iamVjdD59IGFyclxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiByYW5kU2VsZWN0KGFycikge1xuICBpZiAoYXJyIGluc3RhbmNlb2YgRFJhbmdlKSB7XG4gICAgcmV0dXJuIGFyci5pbmRleCh0aGlzLnJhbmRJbnQoMCwgYXJyLmxlbmd0aCAtIDEpKTtcbiAgfVxuICByZXR1cm4gYXJyW3RoaXMucmFuZEludCgwLCBhcnIubGVuZ3RoIC0gMSldO1xufTtcblxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBjaGFyYWN0ZXIgY29kZSBpcyBhbHBoYWJldGljIGFuZCBkZWNpZGVcbiAqIHRvIHN3aXRjaCBjYXNlIHJhbmRvbWx5LlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGlnbm9yZUNhc2VcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gY2hhcihjb2RlLCBpZ25vcmVDYXNlKSB7XG4gIGNvZGUgPSBpZ25vcmVDYXNlICYmIHJhbmRCb29sLmNhbGwodGhpcykgPyB0b090aGVyQ2FzZShjb2RlKSA6IGNvZGU7XG4gIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xufTtcblxuXG4vKipcbiAqIGV4cGFuZHMgYSB0b2tlbiB0byBhIERpc2NvbnRpbnVvdXNSYW5nZSBvZiBjaGFyYWN0ZXJzIHdoaWNoIGhhcyBhIFxuICogbGVuZ3RoIGFuZCBhbiBpbmRleCBmdW5jdGlvbiAoZm9yIHJhbmRvbSBzZWxlY3RpbmcpXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHRva2VuXG4gKiBAcmV0dXJuIHtEaXNjb250aW51b3VzUmFuZ2V9XG4gKi9cbmZ1bmN0aW9uIGV4cGFuZCh0b2tlbikge1xuICBpZiAodG9rZW4udHlwZSA9PT0gcmV0LnR5cGVzLkNIQVIpIHJldHVybiBuZXcgRFJhbmdlKHRva2VuLnZhbHVlKTtcbiAgaWYgKHRva2VuLnR5cGUgPT09IHJldC50eXBlcy5SQU5HRSkgcmV0dXJuIG5ldyBEUmFuZ2UodG9rZW4uZnJvbSwgdG9rZW4udG8pO1xuICBpZiAodG9rZW4udHlwZSA9PT0gcmV0LnR5cGVzLlNFVCkge1xuICAgIHZhciBkcmFuZ2UgPSBuZXcgRFJhbmdlKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbi5zZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGRyYW5nZS5hZGQoZXhwYW5kLmNhbGwodGhpcywgdG9rZW4uc2V0W2ldKSk7XG4gICAgfVxuICAgIGlmICh0b2tlbi5ub3QpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRSYW5nZS5jbG9uZSgpLnN1YnRyYWN0KGRyYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkcmFuZ2U7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcigndW5leHBhbmRhYmxlIHRva2VuIHR5cGU6ICcgKyB0b2tlbi50eXBlKTtcbn07XG5cblxuLyoqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7UmVnRXhwfFN0cmluZ30gcmVnZXhwXG4gKiBAcGFyYW0ge1N0cmluZ30gbVxuICovXG52YXIgUmFuZEV4cCA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ocmVnZXhwLCBtKSB7XG4gIHRoaXMuZGVmYXVsdFJhbmdlID0gdGhpcy5kZWZhdWx0UmFuZ2UuY2xvbmUoKTtcbiAgaWYgKHJlZ2V4cCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgIHRoaXMuaWdub3JlQ2FzZSA9IHJlZ2V4cC5pZ25vcmVDYXNlO1xuICAgIHRoaXMubXVsdGlsaW5lID0gcmVnZXhwLm11bHRpbGluZTtcbiAgICBpZiAodHlwZW9mIHJlZ2V4cC5tYXggPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLm1heCA9IHJlZ2V4cC5tYXg7XG4gICAgfVxuICAgIHJlZ2V4cCA9IHJlZ2V4cC5zb3VyY2U7XG5cbiAgfSBlbHNlIGlmICh0eXBlb2YgcmVnZXhwID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMuaWdub3JlQ2FzZSA9IG0gJiYgbS5pbmRleE9mKCdpJykgIT09IC0xO1xuICAgIHRoaXMubXVsdGlsaW5lID0gbSAmJiBtLmluZGV4T2YoJ20nKSAhPT0gLTE7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIHJlZ2V4cCBvciBzdHJpbmcnKTtcbiAgfVxuXG4gIHRoaXMudG9rZW5zID0gcmV0KHJlZ2V4cCk7XG59O1xuXG5cbi8vIFdoZW4gYSByZXBldGl0aW9uYWwgdG9rZW4gaGFzIGl0cyBtYXggc2V0IHRvIEluZmluaXRlLFxuLy8gcmFuZGV4cCB3b24ndCBhY3R1YWxseSBnZW5lcmF0ZSBhIHJhbmRvbSBhbW91bnQgYmV0d2VlbiBtaW4gYW5kIEluZmluaXRlXG4vLyBpbnN0ZWFkIGl0IHdpbGwgc2VlIEluZmluaXRlIGFzIG1pbiArIDEwMC5cblJhbmRFeHAucHJvdG90eXBlLm1heCA9IDEwMDtcblxuXG4vLyBHZW5lcmF0ZXMgdGhlIHJhbmRvbSBzdHJpbmcuXG5SYW5kRXhwLnByb3RvdHlwZS5nZW4gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGdlbi5jYWxsKHRoaXMsIHRoaXMudG9rZW5zLCBbXSk7XG59O1xuXG5cbi8vIEVuYWJsZXMgdXNlIG9mIHJhbmRleHAgd2l0aCBhIHNob3J0ZXIgY2FsbC5cblJhbmRFeHAucmFuZGV4cCA9IGZ1bmN0aW9uKHJlZ2V4cCwgbSkge1xuICB2YXIgcmFuZGV4cDtcblxuICBpZiAocmVnZXhwLl9yYW5kZXhwID09PSB1bmRlZmluZWQpIHtcbiAgICByYW5kZXhwID0gbmV3IFJhbmRFeHAocmVnZXhwLCBtKTtcbiAgICByZWdleHAuX3JhbmRleHAgPSByYW5kZXhwO1xuICB9IGVsc2Uge1xuICAgIHJhbmRleHAgPSByZWdleHAuX3JhbmRleHA7XG4gICAgaWYgKHR5cGVvZiByZWdleHAubWF4ID09PSAnbnVtYmVyJykge1xuICAgICAgcmFuZGV4cC5tYXggPSByZWdleHAubWF4O1xuICAgIH1cbiAgICBpZiAocmVnZXhwLmRlZmF1bHRSYW5nZSBpbnN0YW5jZW9mIERSYW5nZSkge1xuICAgICAgcmFuZGV4cC5kZWZhdWx0UmFuZ2UgPSByZWdleHAuZGVmYXVsdFJhbmdlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHJlZ2V4cC5yYW5kSW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByYW5kZXhwLnJhbmRJbnQgPSByZWdleHAucmFuZEludDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmFuZGV4cC5nZW4oKTtcbn07XG5cblxuLy8gVGhpcyBlbmFibGVzIHN1Z2FyeSAvcmVnZXhwLy5nZW4gc3ludGF4LlxuUmFuZEV4cC5zdWdhciA9IGZ1bmN0aW9uKCkge1xuICAvKiBqc2hpbnQgZnJlZXplOmZhbHNlICovXG4gIFJlZ0V4cC5wcm90b3R5cGUuZ2VuID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFJhbmRFeHAucmFuZGV4cCh0aGlzKTtcbiAgfTtcbn07XG5cbi8vIFRoaXMgYWxsb3dzIGV4cGFuZGluZyB0byBpbmNsdWRlIGFkZGl0aW9uYWwgY2hhcmFjdGVyc1xuLy8gZm9yIGluc3RhbmNlOiBSYW5kRXhwLmRlZmF1bHRSYW5nZS5hZGQoMCwgNjU1MzUpO1xuUmFuZEV4cC5wcm90b3R5cGUuZGVmYXVsdFJhbmdlID0gbmV3IERSYW5nZSgzMiwgMTI2KTtcblxuXG5cblxuXG5cbi8qKlxuICogUmFuZG9tbHkgZ2VuZXJhdGVzIGFuZCByZXR1cm5zIGEgbnVtYmVyIGJldHdlZW4gYSBhbmQgYiAoaW5jbHVzaXZlKS5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gYVxuICogQHBhcmFtIHtOdW1iZXJ9IGJcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuUmFuZEV4cC5wcm90b3R5cGUucmFuZEludCA9IGZ1bmN0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoMSArIGIgLSBhKSk7XG59O1xuXG5cbi8qKlxuICogR2VuZXJhdGUgcmFuZG9tIHN0cmluZyBtb2RlbGVkIGFmdGVyIGdpdmVuIHRva2Vucy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdG9rZW5cbiAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGdyb3Vwc1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBnZW4odG9rZW4sIGdyb3Vwcykge1xuICB2YXIgc3RhY2ssIHN0ciwgbiwgaSwgbDtcblxuICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcblxuXG4gICAgY2FzZSB0eXBlcy5ST09UOlxuICAgIGNhc2UgdHlwZXMuR1JPVVA6XG4gICAgICBpZiAodG9rZW4ubm90Rm9sbG93ZWRCeSkgeyByZXR1cm4gJyc7IH1cblxuICAgICAgLy8gSW5zZXJ0IHBsYWNlaG9sZGVyIHVudGlsIGdyb3VwIHN0cmluZyBpcyBnZW5lcmF0ZWQuXG4gICAgICBpZiAodG9rZW4ucmVtZW1iZXIgJiYgdG9rZW4uZ3JvdXBOdW1iZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0b2tlbi5ncm91cE51bWJlciA9IGdyb3Vwcy5wdXNoKG51bGwpIC0gMTtcbiAgICAgIH1cblxuICAgICAgc3RhY2sgPSB0b2tlbi5vcHRpb25zID8gcmFuZFNlbGVjdC5jYWxsKHRoaXMsIHRva2VuLm9wdGlvbnMpIDogdG9rZW4uc3RhY2s7XG5cbiAgICAgIHN0ciA9ICcnO1xuICAgICAgZm9yIChpID0gMCwgbCA9IHN0YWNrLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBzdHIgKz0gZ2VuLmNhbGwodGhpcywgc3RhY2tbaV0sIGdyb3Vwcyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0b2tlbi5yZW1lbWJlcikge1xuICAgICAgICBncm91cHNbdG9rZW4uZ3JvdXBOdW1iZXJdID0gc3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cjtcblxuXG4gICAgY2FzZSB0eXBlcy5QT1NJVElPTjpcbiAgICAgIC8vIERvIG5vdGhpbmcgZm9yIG5vdy5cbiAgICAgIHJldHVybiAnJztcblxuXG4gICAgY2FzZSB0eXBlcy5TRVQ6XG5cbiAgICAgIHZhciBleHBhbmRlZF9zZXQgPSBleHBhbmQuY2FsbCh0aGlzLCB0b2tlbik7XG4gICAgICBpZiAoIWV4cGFuZGVkX3NldC5sZW5ndGgpIHJldHVybiAnJztcbiAgICAgIHJldHVybiBjaGFyLmNhbGwodGhpcywgcmFuZFNlbGVjdC5jYWxsKHRoaXMsIGV4cGFuZGVkX3NldCksIHRoaXMuaWdub3JlQ2FzZSk7XG5cbiAgICBjYXNlIHR5cGVzLlJBTkdFOlxuICAgICAgcmV0dXJuIGNoYXIuY2FsbCh0aGlzLCB0aGlzLnJhbmRJbnQodG9rZW4uZnJvbSwgdG9rZW4udG8pLCB0aGlzLmlnbm9yZUNhc2UpO1xuXG5cbiAgICBjYXNlIHR5cGVzLlJFUEVUSVRJT046XG4gICAgICAvLyBSYW5kb21seSBnZW5lcmF0ZSBudW1iZXIgYmV0d2VlbiBtaW4gYW5kIG1heC5cbiAgICAgIG4gPSB0aGlzLnJhbmRJbnQodG9rZW4ubWluLFxuICAgICAgICAgICAgICB0b2tlbi5tYXggPT09IEluZmluaXR5ID8gdG9rZW4ubWluICsgdGhpcy5tYXggOiB0b2tlbi5tYXgpO1xuXG4gICAgICBzdHIgPSAnJztcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgc3RyICs9IGdlbi5jYWxsKHRoaXMsIHRva2VuLnZhbHVlLCBncm91cHMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3RyO1xuXG5cbiAgICBjYXNlIHR5cGVzLlJFRkVSRU5DRTpcbiAgICAgIHJldHVybiBncm91cHNbdG9rZW4udmFsdWUgLSAxXSB8fCAnJztcblxuXG4gICAgY2FzZSB0eXBlcy5DSEFSOlxuICAgICAgcmV0dXJuIGNoYXIuY2FsbCh0aGlzLCB0b2tlbi52YWx1ZSwgdGhpcy5pZ25vcmVDYXNlKTtcbiAgfVxufVxuXG5cbiIsIi8vcHJvdGVjdGVkIGhlbHBlciBjbGFzc1xuZnVuY3Rpb24gX1N1YlJhbmdlKGxvdywgaGlnaCkge1xuICAgIHRoaXMubG93ID0gbG93O1xuICAgIHRoaXMuaGlnaCA9IGhpZ2g7XG4gICAgdGhpcy5sZW5ndGggPSAxICsgaGlnaCAtIGxvdztcbn1cblxuX1N1YlJhbmdlLnByb3RvdHlwZS5vdmVybGFwcyA9IGZ1bmN0aW9uIChyYW5nZSkge1xuICAgIHJldHVybiAhKHRoaXMuaGlnaCA8IHJhbmdlLmxvdyB8fCB0aGlzLmxvdyA+IHJhbmdlLmhpZ2gpO1xufTtcblxuX1N1YlJhbmdlLnByb3RvdHlwZS50b3VjaGVzID0gZnVuY3Rpb24gKHJhbmdlKSB7XG4gICAgcmV0dXJuICEodGhpcy5oaWdoICsgMSA8IHJhbmdlLmxvdyB8fCB0aGlzLmxvdyAtIDEgPiByYW5nZS5oaWdoKTtcbn07XG5cbi8vcmV0dXJucyBpbmNsdXNpdmUgY29tYmluYXRpb24gb2YgX1N1YlJhbmdlcyBhcyBhIF9TdWJSYW5nZVxuX1N1YlJhbmdlLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICByZXR1cm4gdGhpcy50b3VjaGVzKHJhbmdlKSAmJiBuZXcgX1N1YlJhbmdlKE1hdGgubWluKHRoaXMubG93LCByYW5nZS5sb3cpLCBNYXRoLm1heCh0aGlzLmhpZ2gsIHJhbmdlLmhpZ2gpKTtcbn07XG5cbi8vcmV0dXJucyBzdWJ0cmFjdGlvbiBvZiBfU3ViUmFuZ2VzIGFzIGFuIGFycmF5IG9mIF9TdWJSYW5nZXMgKHRoZXJlJ3MgYSBjYXNlIHdoZXJlIHN1YnRyYWN0aW9uIGRpdmlkZXMgaXQgaW4gMilcbl9TdWJSYW5nZS5wcm90b3R5cGUuc3VidHJhY3QgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxhcHMocmFuZ2UpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHJhbmdlLmxvdyA8PSB0aGlzLmxvdyAmJiByYW5nZS5oaWdoID49IHRoaXMuaGlnaCkgcmV0dXJuIFtdO1xuICAgIGlmIChyYW5nZS5sb3cgPiB0aGlzLmxvdyAmJiByYW5nZS5oaWdoIDwgdGhpcy5oaWdoKSByZXR1cm4gW25ldyBfU3ViUmFuZ2UodGhpcy5sb3csIHJhbmdlLmxvdyAtIDEpLCBuZXcgX1N1YlJhbmdlKHJhbmdlLmhpZ2ggKyAxLCB0aGlzLmhpZ2gpXTtcbiAgICBpZiAocmFuZ2UubG93IDw9IHRoaXMubG93KSByZXR1cm4gW25ldyBfU3ViUmFuZ2UocmFuZ2UuaGlnaCArIDEsIHRoaXMuaGlnaCldO1xuICAgIHJldHVybiBbbmV3IF9TdWJSYW5nZSh0aGlzLmxvdywgcmFuZ2UubG93IC0gMSldO1xufTtcblxuX1N1YlJhbmdlLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5sb3cgPT0gdGhpcy5oaWdoKSByZXR1cm4gdGhpcy5sb3cudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdGhpcy5sb3cgKyAnLScgKyB0aGlzLmhpZ2g7XG59O1xuXG5fU3ViUmFuZ2UucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgX1N1YlJhbmdlKHRoaXMubG93LCB0aGlzLmhpZ2gpO1xufTtcblxuXG5cblxuZnVuY3Rpb24gRGlzY29udGludW91c1JhbmdlKGEsIGIpIHtcbiAgICBpZiAodGhpcyBpbnN0YW5jZW9mIERpc2NvbnRpbnVvdXNSYW5nZSkge1xuICAgICAgICB0aGlzLnJhbmdlcyA9IFtdO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IDA7XG4gICAgICAgIGlmIChhICE9PSB1bmRlZmluZWQpIHRoaXMuYWRkKGEsIGIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgRGlzY29udGludW91c1JhbmdlKGEsIGIpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gX3VwZGF0ZV9sZW5ndGgoc2VsZikge1xuICAgIHNlbGYubGVuZ3RoID0gc2VsZi5yYW5nZXMucmVkdWNlKGZ1bmN0aW9uIChwcmV2aW91cywgcmFuZ2UpIHtyZXR1cm4gcHJldmlvdXMgKyByYW5nZS5sZW5ndGh9LCAwKTtcbn1cblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBmdW5jdGlvbiBfYWRkKHN1YnJhbmdlKSB7XG4gICAgICAgIHZhciBuZXdfcmFuZ2VzID0gW107XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBzZWxmLnJhbmdlcy5sZW5ndGggJiYgIXN1YnJhbmdlLnRvdWNoZXMoc2VsZi5yYW5nZXNbaV0pKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGkgPCBzZWxmLnJhbmdlcy5sZW5ndGggJiYgc3VicmFuZ2UudG91Y2hlcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIHN1YnJhbmdlID0gc3VicmFuZ2UuYWRkKHNlbGYucmFuZ2VzW2ldKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc3VicmFuZ2UpO1xuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgbmV3X3Jhbmdlcy5wdXNoKHNlbGYucmFuZ2VzW2ldLmNsb25lKCkpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHNlbGYucmFuZ2VzID0gbmV3X3JhbmdlcztcbiAgICAgICAgX3VwZGF0ZV9sZW5ndGgoc2VsZik7XG4gICAgfVxuXG4gICAgaWYgKGEgaW5zdGFuY2VvZiBEaXNjb250aW51b3VzUmFuZ2UpIHtcbiAgICAgICAgYS5yYW5nZXMuZm9yRWFjaChfYWRkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIF9TdWJSYW5nZSkge1xuICAgICAgICAgICAgX2FkZChhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChiID09PSB1bmRlZmluZWQpIGIgPSBhO1xuICAgICAgICAgICAgX2FkZChuZXcgX1N1YlJhbmdlKGEsIGIpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbn07XG5cbkRpc2NvbnRpbnVvdXNSYW5nZS5wcm90b3R5cGUuc3VidHJhY3QgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBmdW5jdGlvbiBfc3VidHJhY3Qoc3VicmFuZ2UpIHtcbiAgICAgICAgdmFyIG5ld19yYW5nZXMgPSBbXTtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiAhc3VicmFuZ2Uub3ZlcmxhcHMoc2VsZi5yYW5nZXNbaV0pKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGkgPCBzZWxmLnJhbmdlcy5sZW5ndGggJiYgc3VicmFuZ2Uub3ZlcmxhcHMoc2VsZi5yYW5nZXNbaV0pKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzID0gbmV3X3Jhbmdlcy5jb25jYXQoc2VsZi5yYW5nZXNbaV0uc3VidHJhY3Qoc3VicmFuZ2UpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgbmV3X3Jhbmdlcy5wdXNoKHNlbGYucmFuZ2VzW2ldLmNsb25lKCkpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHNlbGYucmFuZ2VzID0gbmV3X3JhbmdlcztcbiAgICAgICAgX3VwZGF0ZV9sZW5ndGgoc2VsZik7XG4gICAgfVxuICAgIGlmIChhIGluc3RhbmNlb2YgRGlzY29udGludW91c1JhbmdlKSB7XG4gICAgICAgIGEucmFuZ2VzLmZvckVhY2goX3N1YnRyYWN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIF9TdWJSYW5nZSkge1xuICAgICAgICAgICAgX3N1YnRyYWN0KGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGIgPT09IHVuZGVmaW5lZCkgYiA9IGE7XG4gICAgICAgICAgICBfc3VidHJhY3QobmV3IF9TdWJSYW5nZShhLCBiKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG59O1xuXG5cbkRpc2NvbnRpbnVvdXNSYW5nZS5wcm90b3R5cGUuaW5kZXggPSBmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCB0aGlzLnJhbmdlcy5sZW5ndGggJiYgdGhpcy5yYW5nZXNbaV0ubGVuZ3RoIDw9IGluZGV4KSB7XG4gICAgICAgIGluZGV4IC09IHRoaXMucmFuZ2VzW2ldLmxlbmd0aDtcbiAgICAgICAgaSsrO1xuICAgIH1cbiAgICBpZiAoaSA+PSB0aGlzLnJhbmdlcy5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLnJhbmdlc1tpXS5sb3cgKyBpbmRleDtcbn07XG5cblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gJ1sgJyArIHRoaXMucmFuZ2VzLmpvaW4oJywgJykgKyAnIF0nXG59O1xuXG5EaXNjb250aW51b3VzUmFuZ2UucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgRGlzY29udGludW91c1JhbmdlKHRoaXMpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBEaXNjb250aW51b3VzUmFuZ2U7XG4iLCJ2YXIgdXRpbCAgICAgID0gcmVxdWlyZSgnLi91dGlsJyk7XG52YXIgdHlwZXMgICAgID0gcmVxdWlyZSgnLi90eXBlcycpO1xudmFyIHNldHMgICAgICA9IHJlcXVpcmUoJy4vc2V0cycpO1xudmFyIHBvc2l0aW9ucyA9IHJlcXVpcmUoJy4vcG9zaXRpb25zJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihyZWdleHBTdHIpIHtcbiAgdmFyIGkgPSAwLCBsLCBjLFxuICAgICAgc3RhcnQgPSB7IHR5cGU6IHR5cGVzLlJPT1QsIHN0YWNrOiBbXX0sXG5cbiAgICAgIC8vIEtlZXAgdHJhY2sgb2YgbGFzdCBjbGF1c2UvZ3JvdXAgYW5kIHN0YWNrLlxuICAgICAgbGFzdEdyb3VwID0gc3RhcnQsXG4gICAgICBsYXN0ID0gc3RhcnQuc3RhY2ssXG4gICAgICBncm91cFN0YWNrID0gW107XG5cblxuICB2YXIgcmVwZWF0RXJyID0gZnVuY3Rpb24oaSkge1xuICAgIHV0aWwuZXJyb3IocmVnZXhwU3RyLCAnTm90aGluZyB0byByZXBlYXQgYXQgY29sdW1uICcgKyAoaSAtIDEpKTtcbiAgfTtcblxuICAvLyBEZWNvZGUgYSBmZXcgZXNjYXBlZCBjaGFyYWN0ZXJzLlxuICB2YXIgc3RyID0gdXRpbC5zdHJUb0NoYXJzKHJlZ2V4cFN0cik7XG4gIGwgPSBzdHIubGVuZ3RoO1xuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGNoYXJhY3RlciBpbiBzdHJpbmcuXG4gIHdoaWxlIChpIDwgbCkge1xuICAgIGMgPSBzdHJbaSsrXTtcblxuICAgIHN3aXRjaCAoYykge1xuICAgICAgLy8gSGFuZGxlIGVzY2FwZWQgY2hhcmFjdGVycywgaW5jbHVlcyBhIGZldyBzZXRzLlxuICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgIGMgPSBzdHJbaSsrXTtcblxuICAgICAgICBzd2l0Y2ggKGMpIHtcbiAgICAgICAgICBjYXNlICdiJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChwb3NpdGlvbnMud29yZEJvdW5kYXJ5KCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdCJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChwb3NpdGlvbnMubm9uV29yZEJvdW5kYXJ5KCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgIGxhc3QucHVzaChzZXRzLndvcmRzKCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChzZXRzLm5vdFdvcmRzKCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChzZXRzLmludHMoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMubm90SW50cygpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICBsYXN0LnB1c2goc2V0cy53aGl0ZXNwYWNlKCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdTJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChzZXRzLm5vdFdoaXRlc3BhY2UoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBjIGlzIGludGVnZXIuXG4gICAgICAgICAgICAvLyBJbiB3aGljaCBjYXNlIGl0J3MgYSByZWZlcmVuY2UuXG4gICAgICAgICAgICBpZiAoL1xcZC8udGVzdChjKSkge1xuICAgICAgICAgICAgICBsYXN0LnB1c2goeyB0eXBlOiB0eXBlcy5SRUZFUkVOQ0UsIHZhbHVlOiBwYXJzZUludChjLCAxMCkgfSk7XG5cbiAgICAgICAgICAgIC8vIEVzY2FwZWQgY2hhcmFjdGVyLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGFzdC5wdXNoKHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IGMuY2hhckNvZGVBdCgwKSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFBvc2l0aW9uYWxzLlxuICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy5iZWdpbigpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJyQnOlxuICAgICAgICAgIGxhc3QucHVzaChwb3NpdGlvbnMuZW5kKCkpO1xuICAgICAgICBicmVhaztcblxuXG4gICAgICAvLyBIYW5kbGUgY3VzdG9tIHNldHMuXG4gICAgICBjYXNlICdbJzpcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBjbGFzcyBpcyAnYW50aScgaS5lLiBbXmFiY10uXG4gICAgICAgIHZhciBub3Q7XG4gICAgICAgIGlmIChzdHJbaV0gPT09ICdeJykge1xuICAgICAgICAgIG5vdCA9IHRydWU7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vdCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IGFsbCB0aGUgY2hhcmFjdGVycyBpbiBjbGFzcy5cbiAgICAgICAgdmFyIGNsYXNzVG9rZW5zID0gdXRpbC50b2tlbml6ZUNsYXNzKHN0ci5zbGljZShpKSwgcmVnZXhwU3RyKTtcblxuICAgICAgICAvLyBJbmNyZWFzZSBpbmRleCBieSBsZW5ndGggb2YgY2xhc3MuXG4gICAgICAgIGkgKz0gY2xhc3NUb2tlbnNbMV07XG4gICAgICAgIGxhc3QucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiB0eXBlcy5TRVRcbiAgICAgICAgICAsIHNldDogY2xhc3NUb2tlbnNbMF1cbiAgICAgICAgICAsIG5vdDogbm90XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIENsYXNzIG9mIGFueSBjaGFyYWN0ZXIgZXhjZXB0IFxcbi5cbiAgICAgIGNhc2UgJy4nOlxuICAgICAgICBsYXN0LnB1c2goc2V0cy5hbnlDaGFyKCkpO1xuICAgICAgICBicmVhaztcblxuXG4gICAgICAvLyBQdXNoIGdyb3VwIG9udG8gc3RhY2suXG4gICAgICBjYXNlICcoJzpcbiAgICAgICAgLy8gQ3JlYXRlIGdyb3VwLlxuICAgICAgICB2YXIgZ3JvdXAgPSB7XG4gICAgICAgICAgICB0eXBlOiB0eXBlcy5HUk9VUFxuICAgICAgICAgICwgc3RhY2s6IFtdXG4gICAgICAgICAgLCByZW1lbWJlcjogdHJ1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIGMgPSBzdHJbaV07XG5cbiAgICAgICAgLy8gaWYgaWYgdGhpcyBpcyBhIHNwZWNpYWwga2luZCBvZiBncm91cC5cbiAgICAgICAgaWYgKGMgPT09ICc/Jykge1xuICAgICAgICAgIGMgPSBzdHJbaSArIDFdO1xuICAgICAgICAgIGkgKz0gMjtcblxuICAgICAgICAgIC8vIE1hdGNoIGlmIGZvbGxvd2VkIGJ5LlxuICAgICAgICAgIGlmIChjID09PSAnPScpIHtcbiAgICAgICAgICAgIGdyb3VwLmZvbGxvd2VkQnkgPSB0cnVlO1xuXG4gICAgICAgICAgLy8gTWF0Y2ggaWYgbm90IGZvbGxvd2VkIGJ5LlxuICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PT0gJyEnKSB7XG4gICAgICAgICAgICBncm91cC5ub3RGb2xsb3dlZEJ5ID0gdHJ1ZTtcblxuICAgICAgICAgIH0gZWxzZSBpZiAoYyAhPT0gJzonKSB7XG4gICAgICAgICAgICB1dGlsLmVycm9yKHJlZ2V4cFN0cixcbiAgICAgICAgICAgICAgICAnSW52YWxpZCBncm91cCwgY2hhcmFjdGVyIFxcJycgKyBjICsgJ1xcJyBhZnRlciBcXCc/XFwnIGF0IGNvbHVtbiAnICtcbiAgICAgICAgICAgICAgICAoaSAtIDEpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBncm91cC5yZW1lbWJlciA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5zZXJ0IHN1Ymdyb3VwIGludG8gY3VycmVudCBncm91cCBzdGFjay5cbiAgICAgICAgbGFzdC5wdXNoKGdyb3VwKTtcblxuICAgICAgICAvLyBSZW1lbWJlciB0aGUgY3VycmVudCBncm91cCBmb3Igd2hlbiB0aGUgZ3JvdXAgY2xvc2VzLlxuICAgICAgICBncm91cFN0YWNrLnB1c2gobGFzdEdyb3VwKTtcblxuICAgICAgICAvLyBNYWtlIHRoaXMgbmV3IGdyb3VwIHRoZSBjdXJyZW50IGdyb3VwLlxuICAgICAgICBsYXN0R3JvdXAgPSBncm91cDtcbiAgICAgICAgbGFzdCA9IGdyb3VwLnN0YWNrO1xuICAgICAgICBicmVhaztcblxuXG4gICAgICAvLyBQb3AgZ3JvdXAgb3V0IG9mIHN0YWNrLlxuICAgICAgY2FzZSAnKSc6XG4gICAgICAgIGlmIChncm91cFN0YWNrLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHV0aWwuZXJyb3IocmVnZXhwU3RyLCAnVW5tYXRjaGVkICkgYXQgY29sdW1uICcgKyAoaSAtIDEpKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0R3JvdXAgPSBncm91cFN0YWNrLnBvcCgpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgZ3JvdXAgaGFzIGEgUElQRS5cbiAgICAgICAgLy8gVG8gZ2V0IGJhY2sgdGhlIGNvcnJlY3QgbGFzdCBzdGFjay5cbiAgICAgICAgbGFzdCA9IGxhc3RHcm91cC5vcHRpb25zID8gbGFzdEdyb3VwLm9wdGlvbnNbbGFzdEdyb3VwLm9wdGlvbnMubGVuZ3RoIC0gMV0gOiBsYXN0R3JvdXAuc3RhY2s7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFVzZSBwaXBlIGNoYXJhY3RlciB0byBnaXZlIG1vcmUgY2hvaWNlcy5cbiAgICAgIGNhc2UgJ3wnOlxuICAgICAgICAvLyBDcmVhdGUgYXJyYXkgd2hlcmUgb3B0aW9ucyBhcmUgaWYgdGhpcyBpcyB0aGUgZmlyc3QgUElQRVxuICAgICAgICAvLyBpbiB0aGlzIGNsYXVzZS5cbiAgICAgICAgaWYgKCFsYXN0R3JvdXAub3B0aW9ucykge1xuICAgICAgICAgIGxhc3RHcm91cC5vcHRpb25zID0gW2xhc3RHcm91cC5zdGFja107XG4gICAgICAgICAgZGVsZXRlIGxhc3RHcm91cC5zdGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBzdGFjayBhbmQgYWRkIHRvIG9wdGlvbnMgZm9yIHJlc3Qgb2YgY2xhdXNlLlxuICAgICAgICB2YXIgc3RhY2sgPSBbXTtcbiAgICAgICAgbGFzdEdyb3VwLm9wdGlvbnMucHVzaChzdGFjayk7XG4gICAgICAgIGxhc3QgPSBzdGFjaztcbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gUmVwZXRpdGlvbi5cbiAgICAgIC8vIEZvciBldmVyeSByZXBldGl0aW9uLCByZW1vdmUgbGFzdCBlbGVtZW50IGZyb20gbGFzdCBzdGFja1xuICAgICAgLy8gdGhlbiBpbnNlcnQgYmFjayBhIFJBTkdFIG9iamVjdC5cbiAgICAgIC8vIFRoaXMgZGVzaWduIGlzIGNob3NlbiBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG1vcmUgdGhhblxuICAgICAgLy8gb25lIHJlcGV0aXRpb24gc3ltYm9scyBpbiBhIHJlZ2V4IGkuZS4gYGE/K3syLDN9YC5cbiAgICAgIGNhc2UgJ3snOlxuICAgICAgICB2YXIgcnMgPSAvXihcXGQrKSgsKFxcZCspPyk/XFx9Ly5leGVjKHN0ci5zbGljZShpKSksIG1pbiwgbWF4O1xuICAgICAgICBpZiAocnMgIT09IG51bGwpIHtcbiAgICAgICAgICBtaW4gPSBwYXJzZUludChyc1sxXSwgMTApO1xuICAgICAgICAgIG1heCA9IHJzWzJdID8gcnNbM10gPyBwYXJzZUludChyc1szXSwgMTApIDogSW5maW5pdHkgOiBtaW47XG4gICAgICAgICAgaSArPSByc1swXS5sZW5ndGg7XG5cbiAgICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgICB0eXBlOiB0eXBlcy5SRVBFVElUSU9OXG4gICAgICAgICAgICAsIG1pbjogbWluXG4gICAgICAgICAgICAsIG1heDogbWF4XG4gICAgICAgICAgICAsIHZhbHVlOiBsYXN0LnBvcCgpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgICAgdHlwZTogdHlwZXMuQ0hBUlxuICAgICAgICAgICAgLCB2YWx1ZTogMTIzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJz8nOlxuICAgICAgICBpZiAobGFzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXBlYXRFcnIoaSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAsIG1pbjogMFxuICAgICAgICAgICwgbWF4OiAxXG4gICAgICAgICAgLCB2YWx1ZTogbGFzdC5wb3AoKVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJysnOlxuICAgICAgICBpZiAobGFzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXBlYXRFcnIoaSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAsIG1pbjogMVxuICAgICAgICAgICwgbWF4OiBJbmZpbml0eVxuICAgICAgICAgICwgdmFsdWU6IGxhc3QucG9wKClcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICcqJzpcbiAgICAgICAgaWYgKGxhc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmVwZWF0RXJyKGkpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3QucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiB0eXBlcy5SRVBFVElUSU9OXG4gICAgICAgICAgLCBtaW46IDBcbiAgICAgICAgICAsIG1heDogSW5maW5pdHlcbiAgICAgICAgICAsIHZhbHVlOiBsYXN0LnBvcCgpXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuXG4gICAgICAvLyBEZWZhdWx0IGlzIGEgY2hhcmFjdGVyIHRoYXQgaXMgbm90IGBcXFtdKCl7fT8rKl4kYC5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxhc3QucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiB0eXBlcy5DSEFSXG4gICAgICAgICAgLCB2YWx1ZTogYy5jaGFyQ29kZUF0KDApXG4gICAgICAgIH0pO1xuICAgIH1cblxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYW55IGdyb3VwcyBoYXZlIG5vdCBiZWVuIGNsb3NlZC5cbiAgaWYgKGdyb3VwU3RhY2subGVuZ3RoICE9PSAwKSB7XG4gICAgdXRpbC5lcnJvcihyZWdleHBTdHIsICdVbnRlcm1pbmF0ZWQgZ3JvdXAnKTtcbiAgfVxuXG4gIHJldHVybiBzdGFydDtcbn07XG5cbm1vZHVsZS5leHBvcnRzLnR5cGVzID0gdHlwZXM7XG4iLCJ2YXIgdHlwZXMgPSByZXF1aXJlKCcuL3R5cGVzJyk7XG5cbmV4cG9ydHMud29yZEJvdW5kYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlBPU0lUSU9OLCB2YWx1ZTogJ2InIH07XG59O1xuXG5leHBvcnRzLm5vbldvcmRCb3VuZGFyeSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5QT1NJVElPTiwgdmFsdWU6ICdCJyB9O1xufTtcblxuZXhwb3J0cy5iZWdpbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5QT1NJVElPTiwgdmFsdWU6ICdeJyB9O1xufTtcblxuZXhwb3J0cy5lbmQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuUE9TSVRJT04sIHZhbHVlOiAnJCcgfTtcbn07XG4iLCJ2YXIgdHlwZXMgPSByZXF1aXJlKCcuL3R5cGVzJyk7XG5cbnZhciBJTlRTID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFt7IHR5cGU6IHR5cGVzLlJBTkdFICwgZnJvbTogNDgsIHRvOiA1NyB9XTtcbn07XG5cbnZhciBXT1JEUyA9IGZ1bmN0aW9uKCkge1xuIHJldHVybiBbXG4gICAgICB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA5NSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLlJBTkdFLCBmcm9tOiA5NywgdG86IDEyMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLlJBTkdFLCBmcm9tOiA2NSwgdG86IDkwIH1cbiAgXS5jb25jYXQoSU5UUygpKTtcbn07XG5cbnZhciBXSElURVNQQUNFID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDkgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogMTAgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogMTEgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogMTIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogMTMgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogMzIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogMTYwIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDU3NjAgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogNjE1OCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTkyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTMgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5NCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk1IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTYgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5NyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk4IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTkgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIwMCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjAxIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMDIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIzMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjMzIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzkgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODI4NyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMjI4OCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA2NTI3OSB9XG4gIF07XG59O1xuXG52YXIgTk9UQU5ZQ0hBUiA9IGZ1bmN0aW9uKCkge1xuIHJldHVybiBbXG4gICAgICB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjMyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzMgfVxuICBdO1xufTtcblxuLy8gcHJlZGVmaW5lZCBjbGFzcyBvYmplY3RzXG5leHBvcnRzLndvcmRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlNFVCwgc2V0OiBXT1JEUygpLCBub3Q6IGZhbHNlIH07XG59O1xuXG5leHBvcnRzLm5vdFdvcmRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlNFVCwgc2V0OiBXT1JEUygpLCBub3Q6IHRydWUgfTtcbn07XG5cbmV4cG9ydHMuaW50cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5TRVQsIHNldDogSU5UUygpLCBub3Q6IGZhbHNlIH07XG59O1xuXG5leHBvcnRzLm5vdEludHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IElOVFMoKSwgbm90OiB0cnVlIH07XG59O1xuXG5leHBvcnRzLndoaXRlc3BhY2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdISVRFU1BBQ0UoKSwgbm90OiBmYWxzZSB9O1xufTtcblxuZXhwb3J0cy5ub3RXaGl0ZXNwYWNlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlNFVCwgc2V0OiBXSElURVNQQUNFKCksIG5vdDogdHJ1ZSB9O1xufTtcblxuZXhwb3J0cy5hbnlDaGFyID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlNFVCwgc2V0OiBOT1RBTllDSEFSKCksIG5vdDogdHJ1ZSB9O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICAgIFJPT1QgICAgICAgOiAwXG4gICwgR1JPVVAgICAgICA6IDFcbiAgLCBQT1NJVElPTiAgIDogMlxuICAsIFNFVCAgICAgICAgOiAzXG4gICwgUkFOR0UgICAgICA6IDRcbiAgLCBSRVBFVElUSU9OIDogNVxuICAsIFJFRkVSRU5DRSAgOiA2XG4gICwgQ0hBUiAgICAgICA6IDdcbn07XG4iLCJ2YXIgdHlwZXMgPSByZXF1aXJlKCcuL3R5cGVzJyk7XG52YXIgc2V0cyAgPSByZXF1aXJlKCcuL3NldHMnKTtcblxuXG4vLyBBbGwgb2YgdGhlc2UgYXJlIHByaXZhdGUgYW5kIG9ubHkgdXNlZCBieSByYW5kZXhwLlxuLy8gSXQncyBhc3N1bWVkIHRoYXQgdGhleSB3aWxsIGFsd2F5cyBiZSBjYWxsZWQgd2l0aCB0aGUgY29ycmVjdCBpbnB1dC5cblxudmFyIENUUkwgPSAnQEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXiA/JztcbnZhciBTTFNIID0geyAnMCc6IDAsICd0JzogOSwgJ24nOiAxMCwgJ3YnOiAxMSwgJ2YnOiAxMiwgJ3InOiAxMyB9O1xuXG4vKipcbiAqIEZpbmRzIGNoYXJhY3RlciByZXByZXNlbnRhdGlvbnMgaW4gc3RyIGFuZCBjb252ZXJ0IGFsbCB0b1xuICogdGhlaXIgcmVzcGVjdGl2ZSBjaGFyYWN0ZXJzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5leHBvcnRzLnN0clRvQ2hhcnMgPSBmdW5jdGlvbihzdHIpIHtcbiAgdmFyIGNoYXJzX3JlZ2V4ID0gLyhcXFtcXFxcYlxcXSl8XFxcXCg/OnUoW0EtRjAtOV17NH0pfHgoW0EtRjAtOV17Mn0pfCgwP1swLTddezJ9KXxjKFtAQS1aXFxbXFxcXFxcXVxcXj9dKXwoWzB0bnZmcl0pKS9nO1xuICBzdHIgPSBzdHIucmVwbGFjZShjaGFyc19yZWdleCwgZnVuY3Rpb24ocywgYiwgYTE2LCBiMTYsIGM4LCBkY3RybCwgZXNsc2gpIHtcbiAgICB2YXIgY29kZSA9IGIgICAgID8gOCA6XG4gICAgICAgICAgICAgICBhMTYgICA/IHBhcnNlSW50KGExNiwgMTYpIDpcbiAgICAgICAgICAgICAgIGIxNiAgID8gcGFyc2VJbnQoYjE2LCAxNikgOlxuICAgICAgICAgICAgICAgYzggICAgPyBwYXJzZUludChjOCwgICA4KSA6XG4gICAgICAgICAgICAgICBkY3RybCA/IENUUkwuaW5kZXhPZihkY3RybCkgOlxuICAgICAgICAgICAgICAgZXNsc2ggPyBTTFNIW2VzbHNoXSA6IHVuZGVmaW5lZDtcbiAgICBcbiAgICB2YXIgYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG5cbiAgICAvLyBFc2NhcGUgc3BlY2lhbCByZWdleCBjaGFyYWN0ZXJzLlxuICAgIGlmICgvW1xcW1xcXXt9XFxeJC58PyorKCldLy50ZXN0KGMpKSB7XG4gICAgICBjID0gJ1xcXFwnICsgYztcbiAgICB9XG5cbiAgICByZXR1cm4gYztcbiAgfSk7XG5cbiAgcmV0dXJuIHN0cjtcbn07XG5cblxuLyoqXG4gKiB0dXJucyBjbGFzcyBpbnRvIHRva2Vuc1xuICogcmVhZHMgc3RyIHVudGlsIGl0IGVuY291bnRlcnMgYSBdIG5vdCBwcmVjZWVkZWQgYnkgYSBcXFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7U3RyaW5nfSByZWdleHBTdHJcbiAqIEByZXR1cm4ge0FycmF5LjxBcnJheS48T2JqZWN0PiwgTnVtYmVyPn1cbiAqL1xuZXhwb3J0cy50b2tlbml6ZUNsYXNzID0gZnVuY3Rpb24oc3RyLCByZWdleHBTdHIpIHtcbiAgdmFyIHRva2VucyA9IFtdXG4gICAgLCByZWdleHAgPSAvXFxcXCg/Oih3KXwoZCl8KHMpfChXKXwoRCl8KFMpKXwoKD86KD86XFxcXCkoLil8KFteXFxdXFxcXF0pKS0oPzpcXFxcKT8oW15cXF1dKSl8KFxcXSl8KD86XFxcXCk/KC4pL2dcbiAgICAsIHJzLCBjXG4gICAgO1xuXG5cbiAgd2hpbGUgKChycyA9IHJlZ2V4cC5leGVjKHN0cikpICE9IG51bGwpIHtcbiAgICBpZiAocnNbMV0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMud29yZHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzJdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLmludHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzNdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLndoaXRlc3BhY2UoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzRdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLm5vdFdvcmRzKCkpO1xuXG4gICAgfSBlbHNlIGlmIChyc1s1XSkge1xuICAgICAgdG9rZW5zLnB1c2goc2V0cy5ub3RJbnRzKCkpO1xuXG4gICAgfSBlbHNlIGlmIChyc1s2XSkge1xuICAgICAgdG9rZW5zLnB1c2goc2V0cy5ub3RXaGl0ZXNwYWNlKCkpO1xuXG4gICAgfSBlbHNlIGlmIChyc1s3XSkge1xuICAgICAgdG9rZW5zLnB1c2goe1xuICAgICAgICAgIHR5cGU6IHR5cGVzLlJBTkdFXG4gICAgICAgICwgZnJvbTogKHJzWzhdIHx8IHJzWzldKS5jaGFyQ29kZUF0KDApXG4gICAgICAgICwgICB0bzogcnNbMTBdLmNoYXJDb2RlQXQoMClcbiAgICAgIH0pO1xuXG4gICAgfSBlbHNlIGlmIChjID0gcnNbMTJdKSB7XG4gICAgICB0b2tlbnMucHVzaCh7XG4gICAgICAgICAgdHlwZTogdHlwZXMuQ0hBUlxuICAgICAgICAsIHZhbHVlOiBjLmNoYXJDb2RlQXQoMClcbiAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbdG9rZW5zLCByZWdleHAubGFzdEluZGV4XTtcbiAgICB9XG4gIH1cblxuICBleHBvcnRzLmVycm9yKHJlZ2V4cFN0ciwgJ1VudGVybWluYXRlZCBjaGFyYWN0ZXIgY2xhc3MnKTtcbn07XG5cblxuLyoqXG4gKiBTaG9ydGN1dCB0byB0aHJvdyBlcnJvcnMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHJlZ2V4cFxuICogQHBhcmFtIHtTdHJpbmd9IG1zZ1xuICovXG5leHBvcnRzLmVycm9yID0gZnVuY3Rpb24ocmVnZXhwLCBtc2cpIHtcbiAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCdJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogLycgKyByZWdleHAgKyAnLzogJyArIG1zZyk7XG59O1xuIiwidmFyIGJhc2VJbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUluZGV4T2YnKSxcbiAgICBiaW5hcnlJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2JpbmFyeUluZGV4Jyk7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYHZhbHVlYCBpcyBmb3VuZCBpbiBgYXJyYXlgXG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0IGlzIHVzZWQgYXMgdGhlIG9mZnNldFxuICogZnJvbSB0aGUgZW5kIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgc29ydGVkIHByb3ZpZGluZyBgdHJ1ZWAgZm9yIGBmcm9tSW5kZXhgXG4gKiBwZXJmb3JtcyBhIGZhc3RlciBiaW5hcnkgc2VhcmNoLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtib29sZWFufG51bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20gb3IgYHRydWVgXG4gKiAgdG8gcGVyZm9ybSBhIGJpbmFyeSBzZWFyY2ggb24gYSBzb3J0ZWQgYXJyYXkuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyKTtcbiAqIC8vID0+IDFcbiAqXG4gKiAvLyB1c2luZyBgZnJvbUluZGV4YFxuICogXy5pbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XG4gKiAvLyA9PiAzXG4gKlxuICogLy8gcGVyZm9ybWluZyBhIGJpbmFyeSBzZWFyY2hcbiAqIF8uaW5kZXhPZihbMSwgMSwgMiwgMl0sIDIsIHRydWUpO1xuICogLy8gPT4gMlxuICovXG5mdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIGlmICh0eXBlb2YgZnJvbUluZGV4ID09ICdudW1iZXInKSB7XG4gICAgZnJvbUluZGV4ID0gZnJvbUluZGV4IDwgMCA/IG5hdGl2ZU1heChsZW5ndGggKyBmcm9tSW5kZXgsIDApIDogZnJvbUluZGV4O1xuICB9IGVsc2UgaWYgKGZyb21JbmRleCkge1xuICAgIHZhciBpbmRleCA9IGJpbmFyeUluZGV4KGFycmF5LCB2YWx1ZSksXG4gICAgICAgIG90aGVyID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgaWYgKHZhbHVlID09PSB2YWx1ZSA/ICh2YWx1ZSA9PT0gb3RoZXIpIDogKG90aGVyICE9PSBvdGhlcikpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIHJldHVybiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCB8fCAwKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbmRleE9mO1xuIiwiLyoqXG4gKiBHZXRzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8ubGFzdChbMSwgMiwgM10pO1xuICogLy8gPT4gM1xuICovXG5mdW5jdGlvbiBsYXN0KGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gIHJldHVybiBsZW5ndGggPyBhcnJheVtsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsYXN0O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZvckVhY2gnKTtcbiIsInZhciBhcnJheUVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9hcnJheUVhY2gnKSxcbiAgICBiYXNlRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VFYWNoJyksXG4gICAgY3JlYXRlRm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2NyZWF0ZUZvckVhY2gnKTtcblxuLyoqXG4gKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCBpbnZva2luZyBgaXRlcmF0ZWVgIGZvciBlYWNoIGVsZW1lbnQuXG4gKiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gKiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHlcbiAqIGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gKlxuICogKipOb3RlOioqIEFzIHdpdGggb3RoZXIgXCJDb2xsZWN0aW9uc1wiIG1ldGhvZHMsIG9iamVjdHMgd2l0aCBhIFwibGVuZ3RoXCIgcHJvcGVydHlcbiAqIGFyZSBpdGVyYXRlZCBsaWtlIGFycmF5cy4gVG8gYXZvaWQgdGhpcyBiZWhhdmlvciBgXy5mb3JJbmAgb3IgYF8uZm9yT3duYFxuICogbWF5IGJlIHVzZWQgZm9yIG9iamVjdCBpdGVyYXRpb24uXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBhbGlhcyBlYWNoXG4gKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fHN0cmluZ30gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8oWzEsIDJdKS5mb3JFYWNoKGZ1bmN0aW9uKG4pIHtcbiAqICAgY29uc29sZS5sb2cobik7XG4gKiB9KS52YWx1ZSgpO1xuICogLy8gPT4gbG9ncyBlYWNoIHZhbHVlIGZyb20gbGVmdCB0byByaWdodCBhbmQgcmV0dXJucyB0aGUgYXJyYXlcbiAqXG4gKiBfLmZvckVhY2goeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbihuLCBrZXkpIHtcbiAqICAgY29uc29sZS5sb2cobiwga2V5KTtcbiAqIH0pO1xuICogLy8gPT4gbG9ncyBlYWNoIHZhbHVlLWtleSBwYWlyIGFuZCByZXR1cm5zIHRoZSBvYmplY3QgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqL1xudmFyIGZvckVhY2ggPSBjcmVhdGVGb3JFYWNoKGFycmF5RWFjaCwgYmFzZUVhY2gpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZvckVhY2g7XG4iLCJ2YXIgYXJyYXlNYXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9hcnJheU1hcCcpLFxuICAgIGJhc2VDYWxsYmFjayA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VDYWxsYmFjaycpLFxuICAgIGJhc2VNYXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlTWFwJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdmFsdWVzIGJ5IHJ1bm5pbmcgZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCB0aHJvdWdoXG4gKiBgaXRlcmF0ZWVgLiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZVxuICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gKlxuICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gKlxuICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICpcbiAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICpcbiAqIE1hbnkgbG9kYXNoIG1ldGhvZHMgYXJlIGd1YXJkZWQgdG8gd29yayBhcyBpbnRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAqIGBfLmV2ZXJ5YCwgYF8uZmlsdGVyYCwgYF8ubWFwYCwgYF8ubWFwVmFsdWVzYCwgYF8ucmVqZWN0YCwgYW5kIGBfLnNvbWVgLlxuICpcbiAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICogYGFyeWAsIGBjYWxsYmFja2AsIGBjaHVua2AsIGBjbG9uZWAsIGBjcmVhdGVgLCBgY3VycnlgLCBgY3VycnlSaWdodGAsXG4gKiBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZXZlcnlgLCBgZmlsbGAsIGBmbGF0dGVuYCwgYGludmVydGAsIGBtYXhgLCBgbWluYCxcbiAqIGBwYXJzZUludGAsIGBzbGljZWAsIGBzb3J0QnlgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLCBgdGVtcGxhdGVgLCBgdHJpbWAsXG4gKiBgdHJpbUxlZnRgLCBgdHJpbVJpZ2h0YCwgYHRydW5jYCwgYHJhbmRvbWAsIGByYW5nZWAsIGBzYW1wbGVgLCBgc29tZWAsXG4gKiBgc3VtYCwgYHVuaXFgLCBhbmQgYHdvcmRzYFxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAYWxpYXMgY29sbGVjdFxuICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICogIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gdGltZXNUaHJlZShuKSB7XG4gKiAgIHJldHVybiBuICogMztcbiAqIH1cbiAqXG4gKiBfLm1hcChbMSwgMl0sIHRpbWVzVGhyZWUpO1xuICogLy8gPT4gWzMsIDZdXG4gKlxuICogXy5tYXAoeyAnYSc6IDEsICdiJzogMiB9LCB0aW1lc1RocmVlKTtcbiAqIC8vID0+IFszLCA2XSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcgfVxuICogXTtcbiAqXG4gKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICogXy5tYXAodXNlcnMsICd1c2VyJyk7XG4gKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAqL1xuZnVuY3Rpb24gbWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcbiAgaXRlcmF0ZWUgPSBiYXNlQ2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogbG9kYXNoIDMuOC4wIChDdXN0b20gQnVpbGQpIDxodHRwczovL2xvZGFzaC5jb20vPlxuICogQnVpbGQ6IGBsb2Rhc2ggY29tcGF0IC1kIC1vIC4vaW5kZXguanNgXG4gKiBDb3B5cmlnaHQgMjAxMi0yMDE1IFRoZSBEb2pvIEZvdW5kYXRpb24gPGh0dHA6Ly9kb2pvZm91bmRhdGlvbi5vcmcvPlxuICogQmFzZWQgb24gVW5kZXJzY29yZS5qcyAxLjguMyA8aHR0cDovL3VuZGVyc2NvcmVqcy5vcmcvTElDRU5TRT5cbiAqIENvcHlyaWdodCAyMDA5LTIwMTUgSmVyZW15IEFzaGtlbmFzLCBEb2N1bWVudENsb3VkIGFuZCBJbnZlc3RpZ2F0aXZlIFJlcG9ydGVycyAmIEVkaXRvcnNcbiAqIEF2YWlsYWJsZSB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKi9cbjsoZnVuY3Rpb24oKSB7XG5cbiAgLyoqIFVzZWQgYXMgYSBzYWZlIHJlZmVyZW5jZSBmb3IgYHVuZGVmaW5lZGAgaW4gcHJlLUVTNSBlbnZpcm9ubWVudHMuICovXG4gIHZhciB1bmRlZmluZWQ7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyLiAqL1xuICB2YXIgVkVSU0lPTiA9ICczLjguMCc7XG5cbiAgLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3Igd3JhcHBlciBtZXRhZGF0YS4gKi9cbiAgdmFyIEJJTkRfRkxBRyA9IDEsXG4gICAgICBCSU5EX0tFWV9GTEFHID0gMixcbiAgICAgIENVUlJZX0JPVU5EX0ZMQUcgPSA0LFxuICAgICAgQ1VSUllfRkxBRyA9IDgsXG4gICAgICBDVVJSWV9SSUdIVF9GTEFHID0gMTYsXG4gICAgICBQQVJUSUFMX0ZMQUcgPSAzMixcbiAgICAgIFBBUlRJQUxfUklHSFRfRkxBRyA9IDY0LFxuICAgICAgQVJZX0ZMQUcgPSAxMjgsXG4gICAgICBSRUFSR19GTEFHID0gMjU2O1xuXG4gIC8qKiBVc2VkIGFzIGRlZmF1bHQgb3B0aW9ucyBmb3IgYF8udHJ1bmNgLiAqL1xuICB2YXIgREVGQVVMVF9UUlVOQ19MRU5HVEggPSAzMCxcbiAgICAgIERFRkFVTFRfVFJVTkNfT01JU1NJT04gPSAnLi4uJztcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgd2hlbiBhIGZ1bmN0aW9uIGJlY29tZXMgaG90LiAqL1xuICB2YXIgSE9UX0NPVU5UID0gMTUwLFxuICAgICAgSE9UX1NQQU4gPSAxNjtcblxuICAvKiogVXNlZCB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBsYXp5IGl0ZXJhdGVlcy4gKi9cbiAgdmFyIExBWllfRFJPUF9XSElMRV9GTEFHID0gMCxcbiAgICAgIExBWllfRklMVEVSX0ZMQUcgPSAxLFxuICAgICAgTEFaWV9NQVBfRkxBRyA9IDI7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbiAgdmFyIEZVTkNfRVJST1JfVEVYVCA9ICdFeHBlY3RlZCBhIGZ1bmN0aW9uJztcblxuICAvKiogVXNlZCBhcyB0aGUgaW50ZXJuYWwgYXJndW1lbnQgcGxhY2Vob2xkZXIuICovXG4gIHZhciBQTEFDRUhPTERFUiA9ICdfX2xvZGFzaF9wbGFjZWhvbGRlcl9fJztcblxuICAvKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG4gIHZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxuICB2YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGVtcHR5IHN0cmluZyBsaXRlcmFscyBpbiBjb21waWxlZCB0ZW1wbGF0ZSBzb3VyY2UuICovXG4gIHZhciByZUVtcHR5U3RyaW5nTGVhZGluZyA9IC9cXGJfX3AgXFwrPSAnJzsvZyxcbiAgICAgIHJlRW1wdHlTdHJpbmdNaWRkbGUgPSAvXFxiKF9fcCBcXCs9KSAnJyBcXCsvZyxcbiAgICAgIHJlRW1wdHlTdHJpbmdUcmFpbGluZyA9IC8oX19lXFwoLio/XFwpfFxcYl9fdFxcKSkgXFwrXFxuJyc7L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggSFRNTCBlbnRpdGllcyBhbmQgSFRNTCBjaGFyYWN0ZXJzLiAqL1xuICB2YXIgcmVFc2NhcGVkSHRtbCA9IC8mKD86YW1wfGx0fGd0fHF1b3R8IzM5fCM5Nik7L2csXG4gICAgICByZVVuZXNjYXBlZEh0bWwgPSAvWyY8PlwiJ2BdL2csXG4gICAgICByZUhhc0VzY2FwZWRIdG1sID0gUmVnRXhwKHJlRXNjYXBlZEh0bWwuc291cmNlKSxcbiAgICAgIHJlSGFzVW5lc2NhcGVkSHRtbCA9IFJlZ0V4cChyZVVuZXNjYXBlZEh0bWwuc291cmNlKTtcblxuICAvKiogVXNlZCB0byBtYXRjaCB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLiAqL1xuICB2YXIgcmVFc2NhcGUgPSAvPCUtKFtcXHNcXFNdKz8pJT4vZyxcbiAgICAgIHJlRXZhbHVhdGUgPSAvPCUoW1xcc1xcU10rPyklPi9nLFxuICAgICAgcmVJbnRlcnBvbGF0ZSA9IC88JT0oW1xcc1xcU10rPyklPi9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbiAgdmFyIHJlSXNEZWVwUHJvcCA9IC9cXC58XFxbKD86W15bXFxdXSp8KFtcIiddKSg/Oig/IVxcMSlbXlxcblxcXFxdfFxcXFwuKSo/XFwxKVxcXS8sXG4gICAgICByZUlzUGxhaW5Qcm9wID0gL15cXHcqJC8sXG4gICAgICByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcblxcXFxdfFxcXFwuKSo/KVxcMilcXF0vZztcblxuICAvKipcbiAgICogVXNlZCB0byBtYXRjaCBgUmVnRXhwYCBbc3BlY2lhbCBjaGFyYWN0ZXJzXShodHRwOi8vd3d3LnJlZ3VsYXItZXhwcmVzc2lvbnMuaW5mby9jaGFyYWN0ZXJzLmh0bWwjc3BlY2lhbCkuXG4gICAqIEluIGFkZGl0aW9uIHRvIHNwZWNpYWwgY2hhcmFjdGVycyB0aGUgZm9yd2FyZCBzbGFzaCBpcyBlc2NhcGVkIHRvIGFsbG93IGZvclxuICAgKiBlYXNpZXIgYGV2YWxgIHVzZSBhbmQgYEZ1bmN0aW9uYCBjb21waWxhdGlvbi5cbiAgICovXG4gIHZhciByZVJlZ0V4cENoYXJzID0gL1suKis/XiR7fSgpfFtcXF1cXC9cXFxcXS9nLFxuICAgICAgcmVIYXNSZWdFeHBDaGFycyA9IFJlZ0V4cChyZVJlZ0V4cENoYXJzLnNvdXJjZSk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggW2NvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29tYmluaW5nX0RpYWNyaXRpY2FsX01hcmtzKS4gKi9cbiAgdmFyIHJlQ29tYm9NYXJrID0gL1tcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMjNdL2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYmFja3NsYXNoZXMgaW4gcHJvcGVydHkgcGF0aHMuICovXG4gIHZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBbRVMgdGVtcGxhdGUgZGVsaW1pdGVyc10oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXRlbXBsYXRlLWxpdGVyYWwtbGV4aWNhbC1jb21wb25lbnRzKS4gKi9cbiAgdmFyIHJlRXNUZW1wbGF0ZSA9IC9cXCRcXHsoW15cXFxcfV0qKD86XFxcXC5bXlxcXFx9XSopKilcXH0vZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBgUmVnRXhwYCBmbGFncyBmcm9tIHRoZWlyIGNvZXJjZWQgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xuICB2YXIgcmVIYXNIZXhQcmVmaXggPSAvXjBbeFhdLztcblxuICAvKiogVXNlZCB0byBkZXRlY3QgaG9zdCBjb25zdHJ1Y3RvcnMgKFNhZmFyaSA+IDUpLiAqL1xuICB2YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuICAvKiogVXNlZCB0byBtYXRjaCBsYXRpbi0xIHN1cHBsZW1lbnRhcnkgbGV0dGVycyAoZXhjbHVkaW5nIG1hdGhlbWF0aWNhbCBvcGVyYXRvcnMpLiAqL1xuICB2YXIgcmVMYXRpbjEgPSAvW1xceGMwLVxceGQ2XFx4ZDgtXFx4ZGVcXHhkZi1cXHhmNlxceGY4LVxceGZmXS9nO1xuXG4gIC8qKiBVc2VkIHRvIGVuc3VyZSBjYXB0dXJpbmcgb3JkZXIgb2YgdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbiAgdmFyIHJlTm9NYXRjaCA9IC8oJF4pLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3b3JkcyB0byBjcmVhdGUgY29tcG91bmQgd29yZHMuICovXG4gIHZhciByZVdvcmRzID0gKGZ1bmN0aW9uKCkge1xuICAgIHZhciB1cHBlciA9ICdbQS1aXFxcXHhjMC1cXFxceGQ2XFxcXHhkOC1cXFxceGRlXScsXG4gICAgICAgIGxvd2VyID0gJ1thLXpcXFxceGRmLVxcXFx4ZjZcXFxceGY4LVxcXFx4ZmZdKyc7XG5cbiAgICByZXR1cm4gUmVnRXhwKHVwcGVyICsgJysoPz0nICsgdXBwZXIgKyBsb3dlciArICcpfCcgKyB1cHBlciArICc/JyArIGxvd2VyICsgJ3wnICsgdXBwZXIgKyAnK3xbMC05XSsnLCAnZycpO1xuICB9KCkpO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBhbmQgdGVzdCBmb3Igd2hpdGVzcGFjZS4gKi9cbiAgdmFyIHdoaXRlc3BhY2UgPSAoXG4gICAgLy8gQmFzaWMgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLlxuICAgICcgXFx0XFx4MGJcXGZcXHhhMFxcdWZlZmYnICtcblxuICAgIC8vIExpbmUgdGVybWluYXRvcnMuXG4gICAgJ1xcblxcclxcdTIwMjhcXHUyMDI5JyArXG5cbiAgICAvLyBVbmljb2RlIGNhdGVnb3J5IFwiWnNcIiBzcGFjZSBzZXBhcmF0b3JzLlxuICAgICdcXHUxNjgwXFx1MTgwZVxcdTIwMDBcXHUyMDAxXFx1MjAwMlxcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBhXFx1MjAyZlxcdTIwNWZcXHUzMDAwJ1xuICApO1xuXG4gIC8qKiBVc2VkIHRvIGFzc2lnbiBkZWZhdWx0IGBjb250ZXh0YCBvYmplY3QgcHJvcGVydGllcy4gKi9cbiAgdmFyIGNvbnRleHRQcm9wcyA9IFtcbiAgICAnQXJyYXknLCAnQXJyYXlCdWZmZXInLCAnRGF0ZScsICdFcnJvcicsICdGbG9hdDMyQXJyYXknLCAnRmxvYXQ2NEFycmF5JyxcbiAgICAnRnVuY3Rpb24nLCAnSW50OEFycmF5JywgJ0ludDE2QXJyYXknLCAnSW50MzJBcnJheScsICdNYXRoJywgJ051bWJlcicsXG4gICAgJ09iamVjdCcsICdSZWdFeHAnLCAnU2V0JywgJ1N0cmluZycsICdfJywgJ2NsZWFyVGltZW91dCcsICdkb2N1bWVudCcsXG4gICAgJ2lzRmluaXRlJywgJ3BhcnNlSW50JywgJ3NldFRpbWVvdXQnLCAnVHlwZUVycm9yJywgJ1VpbnQ4QXJyYXknLFxuICAgICdVaW50OENsYW1wZWRBcnJheScsICdVaW50MTZBcnJheScsICdVaW50MzJBcnJheScsICdXZWFrTWFwJyxcbiAgICAnd2luZG93J1xuICBdO1xuXG4gIC8qKiBVc2VkIHRvIGZpeCB0aGUgSlNjcmlwdCBgW1tEb250RW51bV1dYCBidWcuICovXG4gIHZhciBzaGFkb3dQcm9wcyA9IFtcbiAgICAnY29uc3RydWN0b3InLCAnaGFzT3duUHJvcGVydHknLCAnaXNQcm90b3R5cGVPZicsICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsXG4gICAgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXG4gIF07XG5cbiAgLyoqIFVzZWQgdG8gbWFrZSB0ZW1wbGF0ZSBzb3VyY2VVUkxzIGVhc2llciB0byBpZGVudGlmeS4gKi9cbiAgdmFyIHRlbXBsYXRlQ291bnRlciA9IC0xO1xuXG4gIC8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIG9mIHR5cGVkIGFycmF5cy4gKi9cbiAgdmFyIHR5cGVkQXJyYXlUYWdzID0ge307XG4gIHR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1tpbnQ4VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDE2VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2ludDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQ4VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG4gIHR5cGVkQXJyYXlUYWdzW2FyZ3NUYWddID0gdHlwZWRBcnJheVRhZ3NbYXJyYXlUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2Z1bmNUYWddID0gdHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tvYmplY3RUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1tzdHJpbmdUYWddID0gdHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuICAvKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBzdXBwb3J0ZWQgYnkgYF8uY2xvbmVgLiAqL1xuICB2YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xuICBjbG9uZWFibGVUYWdzW2FyZ3NUYWddID0gY2xvbmVhYmxlVGFnc1thcnJheVRhZ10gPVxuICBjbG9uZWFibGVUYWdzW2FycmF5QnVmZmVyVGFnXSA9IGNsb25lYWJsZVRhZ3NbYm9vbFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW2RhdGVUYWddID0gY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDhUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDMyVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbcmVnZXhwVGFnXSA9IGNsb25lYWJsZVRhZ3Nbc3RyaW5nVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cbiAgY2xvbmVhYmxlVGFnc1t1aW50MTZUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbiAgY2xvbmVhYmxlVGFnc1tlcnJvclRhZ10gPSBjbG9uZWFibGVUYWdzW2Z1bmNUYWddID1cbiAgY2xvbmVhYmxlVGFnc1ttYXBUYWddID0gY2xvbmVhYmxlVGFnc1tzZXRUYWddID1cbiAgY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4gIC8qKiBVc2VkIGFzIGFuIGludGVybmFsIGBfLmRlYm91bmNlYCBvcHRpb25zIG9iamVjdCBieSBgXy50aHJvdHRsZWAuICovXG4gIHZhciBkZWJvdW5jZU9wdGlvbnMgPSB7XG4gICAgJ2xlYWRpbmcnOiBmYWxzZSxcbiAgICAnbWF4V2FpdCc6IDAsXG4gICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAgfTtcblxuICAvKiogVXNlZCB0byBtYXAgbGF0aW4tMSBzdXBwbGVtZW50YXJ5IGxldHRlcnMgdG8gYmFzaWMgbGF0aW4gbGV0dGVycy4gKi9cbiAgdmFyIGRlYnVycmVkTGV0dGVycyA9IHtcbiAgICAnXFx4YzAnOiAnQScsICAnXFx4YzEnOiAnQScsICdcXHhjMic6ICdBJywgJ1xceGMzJzogJ0EnLCAnXFx4YzQnOiAnQScsICdcXHhjNSc6ICdBJyxcbiAgICAnXFx4ZTAnOiAnYScsICAnXFx4ZTEnOiAnYScsICdcXHhlMic6ICdhJywgJ1xceGUzJzogJ2EnLCAnXFx4ZTQnOiAnYScsICdcXHhlNSc6ICdhJyxcbiAgICAnXFx4YzcnOiAnQycsICAnXFx4ZTcnOiAnYycsXG4gICAgJ1xceGQwJzogJ0QnLCAgJ1xceGYwJzogJ2QnLFxuICAgICdcXHhjOCc6ICdFJywgICdcXHhjOSc6ICdFJywgJ1xceGNhJzogJ0UnLCAnXFx4Y2InOiAnRScsXG4gICAgJ1xceGU4JzogJ2UnLCAgJ1xceGU5JzogJ2UnLCAnXFx4ZWEnOiAnZScsICdcXHhlYic6ICdlJyxcbiAgICAnXFx4Y0MnOiAnSScsICAnXFx4Y2QnOiAnSScsICdcXHhjZSc6ICdJJywgJ1xceGNmJzogJ0knLFxuICAgICdcXHhlQyc6ICdpJywgICdcXHhlZCc6ICdpJywgJ1xceGVlJzogJ2knLCAnXFx4ZWYnOiAnaScsXG4gICAgJ1xceGQxJzogJ04nLCAgJ1xceGYxJzogJ24nLFxuICAgICdcXHhkMic6ICdPJywgICdcXHhkMyc6ICdPJywgJ1xceGQ0JzogJ08nLCAnXFx4ZDUnOiAnTycsICdcXHhkNic6ICdPJywgJ1xceGQ4JzogJ08nLFxuICAgICdcXHhmMic6ICdvJywgICdcXHhmMyc6ICdvJywgJ1xceGY0JzogJ28nLCAnXFx4ZjUnOiAnbycsICdcXHhmNic6ICdvJywgJ1xceGY4JzogJ28nLFxuICAgICdcXHhkOSc6ICdVJywgICdcXHhkYSc6ICdVJywgJ1xceGRiJzogJ1UnLCAnXFx4ZGMnOiAnVScsXG4gICAgJ1xceGY5JzogJ3UnLCAgJ1xceGZhJzogJ3UnLCAnXFx4ZmInOiAndScsICdcXHhmYyc6ICd1JyxcbiAgICAnXFx4ZGQnOiAnWScsICAnXFx4ZmQnOiAneScsICdcXHhmZic6ICd5JyxcbiAgICAnXFx4YzYnOiAnQWUnLCAnXFx4ZTYnOiAnYWUnLFxuICAgICdcXHhkZSc6ICdUaCcsICdcXHhmZSc6ICd0aCcsXG4gICAgJ1xceGRmJzogJ3NzJ1xuICB9O1xuXG4gIC8qKiBVc2VkIHRvIG1hcCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMuICovXG4gIHZhciBodG1sRXNjYXBlcyA9IHtcbiAgICAnJic6ICcmYW1wOycsXG4gICAgJzwnOiAnJmx0OycsXG4gICAgJz4nOiAnJmd0OycsXG4gICAgJ1wiJzogJyZxdW90OycsXG4gICAgXCInXCI6ICcmIzM5OycsXG4gICAgJ2AnOiAnJiM5NjsnXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gbWFwIEhUTUwgZW50aXRpZXMgdG8gY2hhcmFjdGVycy4gKi9cbiAgdmFyIGh0bWxVbmVzY2FwZXMgPSB7XG4gICAgJyZhbXA7JzogJyYnLFxuICAgICcmbHQ7JzogJzwnLFxuICAgICcmZ3Q7JzogJz4nLFxuICAgICcmcXVvdDsnOiAnXCInLFxuICAgICcmIzM5Oyc6IFwiJ1wiLFxuICAgICcmIzk2Oyc6ICdgJ1xuICB9O1xuXG4gIC8qKiBVc2VkIHRvIGRldGVybWluZSBpZiB2YWx1ZXMgYXJlIG9mIHRoZSBsYW5ndWFnZSB0eXBlIGBPYmplY3RgLiAqL1xuICB2YXIgb2JqZWN0VHlwZXMgPSB7XG4gICAgJ2Z1bmN0aW9uJzogdHJ1ZSxcbiAgICAnb2JqZWN0JzogdHJ1ZVxuICB9O1xuXG4gIC8qKiBVc2VkIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIGZvciBpbmNsdXNpb24gaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLiAqL1xuICB2YXIgc3RyaW5nRXNjYXBlcyA9IHtcbiAgICAnXFxcXCc6ICdcXFxcJyxcbiAgICBcIidcIjogXCInXCIsXG4gICAgJ1xcbic6ICduJyxcbiAgICAnXFxyJzogJ3InLFxuICAgICdcXHUyMDI4JzogJ3UyMDI4JyxcbiAgICAnXFx1MjAyOSc6ICd1MjAyOSdcbiAgfTtcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xuICB2YXIgZnJlZUV4cG9ydHMgPSBvYmplY3RUeXBlc1t0eXBlb2YgZXhwb3J0c10gJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbiAgdmFyIGZyZWVNb2R1bGUgPSBvYmplY3RUeXBlc1t0eXBlb2YgbW9kdWxlXSAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbiAgdmFyIGZyZWVHbG9iYWwgPSBmcmVlRXhwb3J0cyAmJiBmcmVlTW9kdWxlICYmIHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgJiYgZ2xvYmFsO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG4gIHZhciBmcmVlU2VsZiA9IG9iamVjdFR5cGVzW3R5cGVvZiBzZWxmXSAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ICYmIHNlbGY7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGB3aW5kb3dgLiAqL1xuICB2YXIgZnJlZVdpbmRvdyA9IG9iamVjdFR5cGVzW3R5cGVvZiB3aW5kb3ddICYmIHdpbmRvdyAmJiB3aW5kb3cuT2JqZWN0ICYmIHdpbmRvdztcblxuICAvKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xuICB2YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cyAmJiBmcmVlRXhwb3J0cztcblxuICAvKipcbiAgICogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC5cbiAgICpcbiAgICogVGhlIGB0aGlzYCB2YWx1ZSBpcyB1c2VkIGlmIGl0IGlzIHRoZSBnbG9iYWwgb2JqZWN0IHRvIGF2b2lkIEdyZWFzZW1vbmtleSdzXG4gICAqIHJlc3RyaWN0ZWQgYHdpbmRvd2Agb2JqZWN0LCBvdGhlcndpc2UgdGhlIGB3aW5kb3dgIG9iamVjdCBpcyB1c2VkLlxuICAgKi9cbiAgdmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8ICgoZnJlZVdpbmRvdyAhPT0gKHRoaXMgJiYgdGhpcy53aW5kb3cpKSAmJiBmcmVlV2luZG93KSB8fCBmcmVlU2VsZiB8fCB0aGlzO1xuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgY29tcGFyZUFzY2VuZGluZ2Agd2hpY2ggY29tcGFyZXMgdmFsdWVzIGFuZFxuICAgKiBzb3J0cyB0aGVtIGluIGFzY2VuZGluZyBvcmRlciB3aXRob3V0IGd1YXJhbnRlZWluZyBhIHN0YWJsZSBzb3J0LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlIHRvIGBvdGhlcmAuXG4gICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIHZhbHVlIHRvIGNvbXBhcmUgdG8gYHZhbHVlYC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGB2YWx1ZWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlQ29tcGFyZUFzY2VuZGluZyh2YWx1ZSwgb3RoZXIpIHtcbiAgICBpZiAodmFsdWUgIT09IG90aGVyKSB7XG4gICAgICB2YXIgdmFsSXNSZWZsZXhpdmUgPSB2YWx1ZSA9PT0gdmFsdWUsXG4gICAgICAgICAgb3RoSXNSZWZsZXhpdmUgPSBvdGhlciA9PT0gb3RoZXI7XG5cbiAgICAgIGlmICh2YWx1ZSA+IG90aGVyIHx8ICF2YWxJc1JlZmxleGl2ZSB8fCAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgPCBvdGhlciB8fCAhb3RoSXNSZWZsZXhpdmUgfHwgKG90aGVyID09PSB1bmRlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUpKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmluZEluZGV4YCBhbmQgYF8uZmluZExhc3RJbmRleGAgd2l0aG91dFxuICAgKiBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tUmlnaHQpIHtcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xO1xuXG4gICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmluZGV4T2ZgIHdpdGhvdXQgc3VwcG9ydCBmb3IgYmluYXJ5IHNlYXJjaGVzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2VhcmNoLlxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgaWYgKHZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGluZGV4T2ZOYU4oYXJyYXksIGZyb21JbmRleCk7XG4gICAgfVxuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoYXJyYXlbaW5kZXhdID09PSB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0Z1bmN0aW9uYCB3aXRob3V0IHN1cHBvcnQgZm9yIGVudmlyb25tZW50c1xuICAgKiB3aXRoIGluY29ycmVjdCBgdHlwZW9mYCByZXN1bHRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VJc0Z1bmN0aW9uKHZhbHVlKSB7XG4gICAgLy8gQXZvaWQgYSBDaGFrcmEgSklUIGJ1ZyBpbiBjb21wYXRpYmlsaXR5IG1vZGVzIG9mIElFIDExLlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvaXNzdWVzLzE2MjEgZm9yIG1vcmUgZGV0YWlscy5cbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicgfHwgZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyBpZiBpdCBpcyBub3Qgb25lLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWRcbiAgICogZm9yIGBudWxsYCBvciBgdW5kZWZpbmVkYCB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6ICh2YWx1ZSArICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLm1heGAgYW5kIGBfLm1pbmAgYXMgdGhlIGRlZmF1bHQgY2FsbGJhY2sgZm9yIHN0cmluZyB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gY2hhckF0Q2FsbGJhY2soc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZy5jaGFyQ29kZUF0KDApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1MZWZ0YCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXJcbiAgICogb2YgYHN0cmluZ2AgdGhhdCBpcyBub3QgZm91bmQgaW4gYGNoYXJzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFycyBUaGUgY2hhcmFjdGVycyB0byBmaW5kLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG5vdCBmb3VuZCBpbiBgY2hhcnNgLlxuICAgKi9cbiAgZnVuY3Rpb24gY2hhcnNMZWZ0SW5kZXgoc3RyaW5nLCBjaGFycykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGggJiYgY2hhcnMuaW5kZXhPZihzdHJpbmcuY2hhckF0KGluZGV4KSkgPiAtMSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbVJpZ2h0YCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IGNoYXJhY3RlclxuICAgKiBvZiBgc3RyaW5nYCB0aGF0IGlzIG5vdCBmb3VuZCBpbiBgY2hhcnNgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXJzIFRoZSBjaGFyYWN0ZXJzIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IGNoYXJhY3RlciBub3QgZm91bmQgaW4gYGNoYXJzYC5cbiAgICovXG4gIGZ1bmN0aW9uIGNoYXJzUmlnaHRJbmRleChzdHJpbmcsIGNoYXJzKSB7XG4gICAgdmFyIGluZGV4ID0gc3RyaW5nLmxlbmd0aDtcblxuICAgIHdoaWxlIChpbmRleC0tICYmIGNoYXJzLmluZGV4T2Yoc3RyaW5nLmNoYXJBdChpbmRleCkpID4gLTEpIHt9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8uc29ydEJ5YCB0byBjb21wYXJlIHRyYW5zZm9ybWVkIGVsZW1lbnRzIG9mIGEgY29sbGVjdGlvbiBhbmQgc3RhYmxlXG4gICAqIHNvcnQgdGhlbSBpbiBhc2NlbmRpbmcgb3JkZXIuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlIHRvIGBvdGhlcmAuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8gYG9iamVjdGAuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHNvcnQgb3JkZXIgaW5kaWNhdG9yIGZvciBgb2JqZWN0YC5cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBhcmVBc2NlbmRpbmcob2JqZWN0LCBvdGhlcikge1xuICAgIHJldHVybiBiYXNlQ29tcGFyZUFzY2VuZGluZyhvYmplY3QuY3JpdGVyaWEsIG90aGVyLmNyaXRlcmlhKSB8fCAob2JqZWN0LmluZGV4IC0gb3RoZXIuaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8uc29ydEJ5T3JkZXJgIHRvIGNvbXBhcmUgbXVsdGlwbGUgcHJvcGVydGllcyBvZiBlYWNoIGVsZW1lbnRcbiAgICogaW4gYSBjb2xsZWN0aW9uIGFuZCBzdGFibGUgc29ydCB0aGVtIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6XG4gICAqXG4gICAqIElmIGBvcmRlcnNgIGlzIHVuc3BlY2lmaWVkLCBzb3J0IGluIGFzY2VuZGluZyBvcmRlciBmb3IgYWxsIHByb3BlcnRpZXMuXG4gICAqIE90aGVyd2lzZSwgZm9yIGVhY2ggcHJvcGVydHksIHNvcnQgaW4gYXNjZW5kaW5nIG9yZGVyIGlmIGl0cyBjb3JyZXNwb25kaW5nIHZhbHVlIGluXG4gICAqIG9yZGVycyBpcyB0cnVlLCBhbmQgZGVzY2VuZGluZyBvcmRlciBpZiBmYWxzZS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8gYG90aGVyYC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvYmplY3QgdG8gY29tcGFyZSB0byBgb2JqZWN0YC5cbiAgICogQHBhcmFtIHtib29sZWFuW119IG9yZGVycyBUaGUgb3JkZXIgdG8gc29ydCBieSBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGBvYmplY3RgLlxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGFyZU11bHRpcGxlKG9iamVjdCwgb3RoZXIsIG9yZGVycykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBvYmpDcml0ZXJpYSA9IG9iamVjdC5jcml0ZXJpYSxcbiAgICAgICAgb3RoQ3JpdGVyaWEgPSBvdGhlci5jcml0ZXJpYSxcbiAgICAgICAgbGVuZ3RoID0gb2JqQ3JpdGVyaWEubGVuZ3RoLFxuICAgICAgICBvcmRlcnNMZW5ndGggPSBvcmRlcnMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciByZXN1bHQgPSBiYXNlQ29tcGFyZUFzY2VuZGluZyhvYmpDcml0ZXJpYVtpbmRleF0sIG90aENyaXRlcmlhW2luZGV4XSk7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGlmIChpbmRleCA+PSBvcmRlcnNMZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQgKiAob3JkZXJzW2luZGV4XSA/IDEgOiAtMSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEZpeGVzIGFuIGBBcnJheSNzb3J0YCBidWcgaW4gdGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBhcHBsaWNhdGlvbnNcbiAgICAvLyB0aGF0IGNhdXNlcyBpdCwgdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLCB0byBwcm92aWRlIHRoZSBzYW1lIHZhbHVlIGZvclxuICAgIC8vIGBvYmplY3RgIGFuZCBgb3RoZXJgLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2phc2hrZW5hcy91bmRlcnNjb3JlL3B1bGwvMTI0N1xuICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgLy9cbiAgICAvLyBUaGlzIGFsc28gZW5zdXJlcyBhIHN0YWJsZSBzb3J0IGluIFY4IGFuZCBvdGhlciBlbmdpbmVzLlxuICAgIC8vIFNlZSBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9OTAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICByZXR1cm4gb2JqZWN0LmluZGV4IC0gb3RoZXIuaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy5kZWJ1cnJgIHRvIGNvbnZlcnQgbGF0aW4tMSBzdXBwbGVtZW50YXJ5IGxldHRlcnMgdG8gYmFzaWMgbGF0aW4gbGV0dGVycy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxldHRlciBUaGUgbWF0Y2hlZCBsZXR0ZXIgdG8gZGVidXJyLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBkZWJ1cnJlZCBsZXR0ZXIuXG4gICAqL1xuICBmdW5jdGlvbiBkZWJ1cnJMZXR0ZXIobGV0dGVyKSB7XG4gICAgcmV0dXJuIGRlYnVycmVkTGV0dGVyc1tsZXR0ZXJdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8uZXNjYXBlYCB0byBjb252ZXJ0IGNoYXJhY3RlcnMgdG8gSFRNTCBlbnRpdGllcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gZXNjYXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICovXG4gIGZ1bmN0aW9uIGVzY2FwZUh0bWxDaGFyKGNocikge1xuICAgIHJldHVybiBodG1sRXNjYXBlc1tjaHJdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udGVtcGxhdGVgIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIGZvciBpbmNsdXNpb24gaW4gY29tcGlsZWRcbiAgICogc3RyaW5nIGxpdGVyYWxzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgY2hhcmFjdGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gZXNjYXBlU3RyaW5nQ2hhcihjaHIpIHtcbiAgICByZXR1cm4gJ1xcXFwnICsgc3RyaW5nRXNjYXBlc1tjaHJdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGBOYU5gIGlzIGZvdW5kIGluIGBhcnJheWAuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgYE5hTmAsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIGluZGV4T2ZOYU4oYXJyYXksIGZyb21JbmRleCwgZnJvbVJpZ2h0KSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgaW5kZXggPSBmcm9tSW5kZXggKyAoZnJvbVJpZ2h0ID8gMCA6IC0xKTtcblxuICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICB2YXIgb3RoZXIgPSBhcnJheVtpbmRleF07XG4gICAgICBpZiAob3RoZXIgIT09IG90aGVyKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgaG9zdCBvYmplY3QgaW4gSUUgPCA5LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBob3N0IG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgdmFyIGlzSG9zdE9iamVjdCA9IChmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgT2JqZWN0KHsgJ3RvU3RyaW5nJzogMCB9ICsgJycpO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH07XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgLy8gSUUgPCA5IHByZXNlbnRzIG1hbnkgaG9zdCBvYmplY3RzIGFzIGBPYmplY3RgIG9iamVjdHMgdGhhdCBjYW4gY29lcmNlXG4gICAgICAvLyB0byBzdHJpbmdzIGRlc3BpdGUgaGF2aW5nIGltcHJvcGVybHkgZGVmaW5lZCBgdG9TdHJpbmdgIG1ldGhvZHMuXG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9ICdmdW5jdGlvbicgJiYgdHlwZW9mICh2YWx1ZSArICcnKSA9PSAnc3RyaW5nJztcbiAgICB9O1xuICB9KCkpO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgdHJpbW1lZExlZnRJbmRleGAgYW5kIGB0cmltbWVkUmlnaHRJbmRleGAgdG8gZGV0ZXJtaW5lIGlmIGFcbiAgICogY2hhcmFjdGVyIGNvZGUgaXMgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGNoYXJDb2RlIFRoZSBjaGFyYWN0ZXIgY29kZSB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGNoYXJDb2RlYCBpcyB3aGl0ZXNwYWNlLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBpc1NwYWNlKGNoYXJDb2RlKSB7XG4gICAgcmV0dXJuICgoY2hhckNvZGUgPD0gMTYwICYmIChjaGFyQ29kZSA+PSA5ICYmIGNoYXJDb2RlIDw9IDEzKSB8fCBjaGFyQ29kZSA9PSAzMiB8fCBjaGFyQ29kZSA9PSAxNjApIHx8IGNoYXJDb2RlID09IDU3NjAgfHwgY2hhckNvZGUgPT0gNjE1OCB8fFxuICAgICAgKGNoYXJDb2RlID49IDgxOTIgJiYgKGNoYXJDb2RlIDw9IDgyMDIgfHwgY2hhckNvZGUgPT0gODIzMiB8fCBjaGFyQ29kZSA9PSA4MjMzIHx8IGNoYXJDb2RlID09IDgyMzkgfHwgY2hhckNvZGUgPT0gODI4NyB8fCBjaGFyQ29kZSA9PSAxMjI4OCB8fCBjaGFyQ29kZSA9PSA2NTI3OSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgYHBsYWNlaG9sZGVyYCBlbGVtZW50cyBpbiBgYXJyYXlgIHdpdGggYW4gaW50ZXJuYWwgcGxhY2Vob2xkZXJcbiAgICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhlaXIgaW5kZXhlcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICogQHBhcmFtIHsqfSBwbGFjZWhvbGRlciBUaGUgcGxhY2Vob2xkZXIgdG8gcmVwbGFjZS5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICovXG4gIGZ1bmN0aW9uIHJlcGxhY2VIb2xkZXJzKGFycmF5LCBwbGFjZWhvbGRlcikge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc0luZGV4ID0gLTEsXG4gICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGlmIChhcnJheVtpbmRleF0gPT09IHBsYWNlaG9sZGVyKSB7XG4gICAgICAgIGFycmF5W2luZGV4XSA9IFBMQUNFSE9MREVSO1xuICAgICAgICByZXN1bHRbKytyZXNJbmRleF0gPSBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bmlxYCBvcHRpbWl6ZWQgZm9yIHNvcnRlZCBhcnJheXMgd2l0aG91dCBzdXBwb3J0XG4gICAqIGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlLXZhbHVlLWZyZWUgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBzb3J0ZWRVbmlxKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBzZWVuLFxuICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc0luZGV4ID0gLTEsXG4gICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUsIGluZGV4LCBhcnJheSkgOiB2YWx1ZTtcblxuICAgICAgaWYgKCFpbmRleCB8fCBzZWVuICE9PSBjb21wdXRlZCkge1xuICAgICAgICBzZWVuID0gY29tcHV0ZWQ7XG4gICAgICAgIHJlc3VsdFsrK3Jlc0luZGV4XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1MZWZ0YCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBub24td2hpdGVzcGFjZVxuICAgKiBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gdHJpbW1lZExlZnRJbmRleChzdHJpbmcpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoICYmIGlzU3BhY2Uoc3RyaW5nLmNoYXJDb2RlQXQoaW5kZXgpKSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbVJpZ2h0YCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlXG4gICAqIGNoYXJhY3RlciBvZiBgc3RyaW5nYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci5cbiAgICovXG4gIGZ1bmN0aW9uIHRyaW1tZWRSaWdodEluZGV4KHN0cmluZykge1xuICAgIHZhciBpbmRleCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaW5kZXgtLSAmJiBpc1NwYWNlKHN0cmluZy5jaGFyQ29kZUF0KGluZGV4KSkpIHt9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udW5lc2NhcGVgIHRvIGNvbnZlcnQgSFRNTCBlbnRpdGllcyB0byBjaGFyYWN0ZXJzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byB1bmVzY2FwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdW5lc2NhcGVkIGNoYXJhY3Rlci5cbiAgICovXG4gIGZ1bmN0aW9uIHVuZXNjYXBlSHRtbENoYXIoY2hyKSB7XG4gICAgcmV0dXJuIGh0bWxVbmVzY2FwZXNbY2hyXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgcHJpc3RpbmUgYGxvZGFzaGAgZnVuY3Rpb24gdXNpbmcgdGhlIGdpdmVuIGBjb250ZXh0YCBvYmplY3QuXG4gICAqXG4gICAqIEBzdGF0aWNcbiAgICogQG1lbWJlck9mIF9cbiAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICogQHBhcmFtIHtPYmplY3R9IFtjb250ZXh0PXJvb3RdIFRoZSBjb250ZXh0IG9iamVjdC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGEgbmV3IGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBfLm1peGluKHsgJ2Zvbyc6IF8uY29uc3RhbnQoJ2ZvbycpIH0pO1xuICAgKlxuICAgKiB2YXIgbG9kYXNoID0gXy5ydW5JbkNvbnRleHQoKTtcbiAgICogbG9kYXNoLm1peGluKHsgJ2Jhcic6IGxvZGFzaC5jb25zdGFudCgnYmFyJykgfSk7XG4gICAqXG4gICAqIF8uaXNGdW5jdGlvbihfLmZvbyk7XG4gICAqIC8vID0+IHRydWVcbiAgICogXy5pc0Z1bmN0aW9uKF8uYmFyKTtcbiAgICogLy8gPT4gZmFsc2VcbiAgICpcbiAgICogbG9kYXNoLmlzRnVuY3Rpb24obG9kYXNoLmZvbyk7XG4gICAqIC8vID0+IGZhbHNlXG4gICAqIGxvZGFzaC5pc0Z1bmN0aW9uKGxvZGFzaC5iYXIpO1xuICAgKiAvLyA9PiB0cnVlXG4gICAqXG4gICAqIC8vIHVzaW5nIGBjb250ZXh0YCB0byBtb2NrIGBEYXRlI2dldFRpbWVgIHVzZSBpbiBgXy5ub3dgXG4gICAqIHZhciBtb2NrID0gXy5ydW5JbkNvbnRleHQoe1xuICAgKiAgICdEYXRlJzogZnVuY3Rpb24oKSB7XG4gICAqICAgICByZXR1cm4geyAnZ2V0VGltZSc6IGdldFRpbWVNb2NrIH07XG4gICAqICAgfVxuICAgKiB9KTtcbiAgICpcbiAgICogLy8gb3IgY3JlYXRpbmcgYSBzdXBlZC11cCBgZGVmZXJgIGluIE5vZGUuanNcbiAgICogdmFyIGRlZmVyID0gXy5ydW5JbkNvbnRleHQoeyAnc2V0VGltZW91dCc6IHNldEltbWVkaWF0ZSB9KS5kZWZlcjtcbiAgICovXG4gIGZ1bmN0aW9uIHJ1bkluQ29udGV4dChjb250ZXh0KSB7XG4gICAgLy8gQXZvaWQgaXNzdWVzIHdpdGggc29tZSBFUzMgZW52aXJvbm1lbnRzIHRoYXQgYXR0ZW1wdCB0byB1c2UgdmFsdWVzLCBuYW1lZFxuICAgIC8vIGFmdGVyIGJ1aWx0LWluIGNvbnN0cnVjdG9ycyBsaWtlIGBPYmplY3RgLCBmb3IgdGhlIGNyZWF0aW9uIG9mIGxpdGVyYWxzLlxuICAgIC8vIEVTNSBjbGVhcnMgdGhpcyB1cCBieSBzdGF0aW5nIHRoYXQgbGl0ZXJhbHMgbXVzdCB1c2UgYnVpbHQtaW4gY29uc3RydWN0b3JzLlxuICAgIC8vIFNlZSBodHRwczovL2VzNS5naXRodWIuaW8vI3gxMS4xLjUgZm9yIG1vcmUgZGV0YWlscy5cbiAgICBjb250ZXh0ID0gY29udGV4dCA/IF8uZGVmYXVsdHMocm9vdC5PYmplY3QoKSwgY29udGV4dCwgXy5waWNrKHJvb3QsIGNvbnRleHRQcm9wcykpIDogcm9vdDtcblxuICAgIC8qKiBOYXRpdmUgY29uc3RydWN0b3IgcmVmZXJlbmNlcy4gKi9cbiAgICB2YXIgQXJyYXkgPSBjb250ZXh0LkFycmF5LFxuICAgICAgICBEYXRlID0gY29udGV4dC5EYXRlLFxuICAgICAgICBFcnJvciA9IGNvbnRleHQuRXJyb3IsXG4gICAgICAgIEZ1bmN0aW9uID0gY29udGV4dC5GdW5jdGlvbixcbiAgICAgICAgTWF0aCA9IGNvbnRleHQuTWF0aCxcbiAgICAgICAgTnVtYmVyID0gY29udGV4dC5OdW1iZXIsXG4gICAgICAgIE9iamVjdCA9IGNvbnRleHQuT2JqZWN0LFxuICAgICAgICBSZWdFeHAgPSBjb250ZXh0LlJlZ0V4cCxcbiAgICAgICAgU3RyaW5nID0gY29udGV4dC5TdHJpbmcsXG4gICAgICAgIFR5cGVFcnJvciA9IGNvbnRleHQuVHlwZUVycm9yO1xuXG4gICAgLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbiAgICB2YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZSxcbiAgICAgICAgZXJyb3JQcm90byA9IEVycm9yLnByb3RvdHlwZSxcbiAgICAgICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlLFxuICAgICAgICBzdHJpbmdQcm90byA9IFN0cmluZy5wcm90b3R5cGU7XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgRE9NIHN1cHBvcnQuICovXG4gICAgdmFyIGRvY3VtZW50ID0gKGRvY3VtZW50ID0gY29udGV4dC53aW5kb3cpICYmIGRvY3VtZW50LmRvY3VtZW50O1xuXG4gICAgLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xuICAgIHZhciBmblRvU3RyaW5nID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4gICAgLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG4gICAgdmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbiAgICAvKiogVXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgSURzLiAqL1xuICAgIHZhciBpZENvdW50ZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gICAgICogb2YgdmFsdWVzLlxuICAgICAqL1xuICAgIHZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4gICAgLyoqIFVzZWQgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYF9gIHJlZmVyZW5jZSBpbiBgXy5ub0NvbmZsaWN0YC4gKi9cbiAgICB2YXIgb2xkRGFzaCA9IGNvbnRleHQuXztcblxuICAgIC8qKiBVc2VkIHRvIGRldGVjdCBpZiBhIG1ldGhvZCBpcyBuYXRpdmUuICovXG4gICAgdmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgICAgIGVzY2FwZVJlZ0V4cChvYmpUb1N0cmluZylcbiAgICAgIC5yZXBsYWNlKC90b1N0cmluZ3woZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCAnJDEuKj8nKSArICckJ1xuICAgICk7XG5cbiAgICAvKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xuICAgIHZhciBBcnJheUJ1ZmZlciA9IGlzTmF0aXZlKEFycmF5QnVmZmVyID0gY29udGV4dC5BcnJheUJ1ZmZlcikgJiYgQXJyYXlCdWZmZXIsXG4gICAgICAgIGJ1ZmZlclNsaWNlID0gaXNOYXRpdmUoYnVmZmVyU2xpY2UgPSBBcnJheUJ1ZmZlciAmJiBuZXcgQXJyYXlCdWZmZXIoMCkuc2xpY2UpICYmIGJ1ZmZlclNsaWNlLFxuICAgICAgICBjZWlsID0gTWF0aC5jZWlsLFxuICAgICAgICBjbGVhclRpbWVvdXQgPSBjb250ZXh0LmNsZWFyVGltZW91dCxcbiAgICAgICAgZmxvb3IgPSBNYXRoLmZsb29yLFxuICAgICAgICBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBpc05hdGl2ZShnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSAmJiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMsXG4gICAgICAgIGdldFByb3RvdHlwZU9mID0gaXNOYXRpdmUoZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YpICYmIGdldFByb3RvdHlwZU9mLFxuICAgICAgICBwdXNoID0gYXJyYXlQcm90by5wdXNoLFxuICAgICAgICBwcmV2ZW50RXh0ZW5zaW9ucyA9IGlzTmF0aXZlKHByZXZlbnRFeHRlbnNpb25zID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBwcmV2ZW50RXh0ZW5zaW9ucyxcbiAgICAgICAgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZSxcbiAgICAgICAgU2V0ID0gaXNOYXRpdmUoU2V0ID0gY29udGV4dC5TZXQpICYmIFNldCxcbiAgICAgICAgc2V0VGltZW91dCA9IGNvbnRleHQuc2V0VGltZW91dCxcbiAgICAgICAgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2UsXG4gICAgICAgIFVpbnQ4QXJyYXkgPSBpc05hdGl2ZShVaW50OEFycmF5ID0gY29udGV4dC5VaW50OEFycmF5KSAmJiBVaW50OEFycmF5LFxuICAgICAgICBXZWFrTWFwID0gaXNOYXRpdmUoV2Vha01hcCA9IGNvbnRleHQuV2Vha01hcCkgJiYgV2Vha01hcDtcblxuICAgIC8qKiBVc2VkIHRvIGNsb25lIGFycmF5IGJ1ZmZlcnMuICovXG4gICAgdmFyIEZsb2F0NjRBcnJheSA9IChmdW5jdGlvbigpIHtcbiAgICAgIC8vIFNhZmFyaSA1IGVycm9ycyB3aGVuIHVzaW5nIGFuIGFycmF5IGJ1ZmZlciB0byBpbml0aWFsaXplIGEgdHlwZWQgYXJyYXlcbiAgICAgIC8vIHdoZXJlIHRoZSBhcnJheSBidWZmZXIncyBgYnl0ZUxlbmd0aGAgaXMgbm90IGEgbXVsdGlwbGUgb2YgdGhlIHR5cGVkXG4gICAgICAvLyBhcnJheSdzIGBCWVRFU19QRVJfRUxFTUVOVGAuXG4gICAgICB0cnkge1xuICAgICAgICB2YXIgZnVuYyA9IGlzTmF0aXZlKGZ1bmMgPSBjb250ZXh0LkZsb2F0NjRBcnJheSkgJiYgZnVuYyxcbiAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBmdW5jKG5ldyBBcnJheUJ1ZmZlcigxMCksIDAsIDEpICYmIGZ1bmM7XG4gICAgICB9IGNhdGNoKGUpIHt9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0oKSk7XG5cbiAgICAvKiogVXNlZCBhcyBgYmFzZUFzc2lnbmAuICovXG4gICAgdmFyIG5hdGl2ZUFzc2lnbiA9IChmdW5jdGlvbigpIHtcbiAgICAgIC8vIEF2b2lkIGBPYmplY3QuYXNzaWduYCBpbiBGaXJlZm94IDM0LTM3IHdoaWNoIGhhdmUgYW4gZWFybHkgaW1wbGVtZW50YXRpb25cbiAgICAgIC8vIHdpdGggYSBub3cgZGVmdW5jdCB0cnkvY2F0Y2ggYmVoYXZpb3IuIFNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzQ0XG4gICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgLy9cbiAgICAgIC8vIFVzZSBgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zYCBvbiBhIHBsYWluIG9iamVjdCBpbnN0ZWFkIG9mIHNpbXBseSB1c2luZ1xuICAgICAgLy8gYE9iamVjdCgneCcpYCBiZWNhdXNlIENocm9tZSBhbmQgSUUgZmFpbCB0byB0aHJvdyBhbiBlcnJvciB3aGVuIGF0dGVtcHRpbmdcbiAgICAgIC8vIHRvIGFzc2lnbiB2YWx1ZXMgdG8gcmVhZG9ubHkgaW5kZXhlcyBvZiBzdHJpbmdzLlxuICAgICAgdmFyIGZ1bmMgPSBwcmV2ZW50RXh0ZW5zaW9ucyAmJiBpc05hdGl2ZShmdW5jID0gT2JqZWN0LmFzc2lnbikgJiYgZnVuYztcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChmdW5jKSB7XG4gICAgICAgICAgdmFyIG9iamVjdCA9IHByZXZlbnRFeHRlbnNpb25zKHsgJzEnOiAwIH0pO1xuICAgICAgICAgIG9iamVjdFswXSA9IDE7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAvLyBPbmx5IGF0dGVtcHQgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgIHRyeSB7IGZ1bmMob2JqZWN0LCAneG8nKTsgfSBjYXRjaChlKSB7fVxuICAgICAgICByZXR1cm4gIW9iamVjdFsxXSAmJiBmdW5jO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0oKSk7XG5cbiAgICAvKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xuICAgIHZhciBuYXRpdmVJc0FycmF5ID0gaXNOYXRpdmUobmF0aXZlSXNBcnJheSA9IEFycmF5LmlzQXJyYXkpICYmIG5hdGl2ZUlzQXJyYXksXG4gICAgICAgIG5hdGl2ZUNyZWF0ZSA9IGlzTmF0aXZlKG5hdGl2ZUNyZWF0ZSA9IE9iamVjdC5jcmVhdGUpICYmIG5hdGl2ZUNyZWF0ZSxcbiAgICAgICAgbmF0aXZlSXNGaW5pdGUgPSBjb250ZXh0LmlzRmluaXRlLFxuICAgICAgICBuYXRpdmVLZXlzID0gaXNOYXRpdmUobmF0aXZlS2V5cyA9IE9iamVjdC5rZXlzKSAmJiBuYXRpdmVLZXlzLFxuICAgICAgICBuYXRpdmVNYXggPSBNYXRoLm1heCxcbiAgICAgICAgbmF0aXZlTWluID0gTWF0aC5taW4sXG4gICAgICAgIG5hdGl2ZU5vdyA9IGlzTmF0aXZlKG5hdGl2ZU5vdyA9IERhdGUubm93KSAmJiBuYXRpdmVOb3csXG4gICAgICAgIG5hdGl2ZU51bUlzRmluaXRlID0gaXNOYXRpdmUobmF0aXZlTnVtSXNGaW5pdGUgPSBOdW1iZXIuaXNGaW5pdGUpICYmIG5hdGl2ZU51bUlzRmluaXRlLFxuICAgICAgICBuYXRpdmVQYXJzZUludCA9IGNvbnRleHQucGFyc2VJbnQsXG4gICAgICAgIG5hdGl2ZVJhbmRvbSA9IE1hdGgucmFuZG9tO1xuXG4gICAgLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgYC1JbmZpbml0eWAgYW5kIGBJbmZpbml0eWAuICovXG4gICAgdmFyIE5FR0FUSVZFX0lORklOSVRZID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLFxuICAgICAgICBQT1NJVElWRV9JTkZJTklUWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcblxuICAgIC8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHRoZSBtYXhpbXVtIGxlbmd0aCBhbmQgaW5kZXggb2YgYW4gYXJyYXkuICovXG4gICAgdmFyIE1BWF9BUlJBWV9MRU5HVEggPSBNYXRoLnBvdygyLCAzMikgLSAxLFxuICAgICAgICBNQVhfQVJSQVlfSU5ERVggPSBNQVhfQVJSQVlfTEVOR1RIIC0gMSxcbiAgICAgICAgSEFMRl9NQVhfQVJSQVlfTEVOR1RIID0gTUFYX0FSUkFZX0xFTkdUSCA+Pj4gMTtcblxuICAgIC8qKiBVc2VkIGFzIHRoZSBzaXplLCBpbiBieXRlcywgb2YgZWFjaCBgRmxvYXQ2NEFycmF5YCBlbGVtZW50LiAqL1xuICAgIHZhciBGTE9BVDY0X0JZVEVTX1BFUl9FTEVNRU5UID0gRmxvYXQ2NEFycmF5ID8gRmxvYXQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UIDogMDtcblxuICAgIC8qKlxuICAgICAqIFVzZWQgYXMgdGhlIFttYXhpbXVtIGxlbmd0aF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW51bWJlci5tYXhfc2FmZV9pbnRlZ2VyKVxuICAgICAqIG9mIGFuIGFycmF5LWxpa2UgdmFsdWUuXG4gICAgICovXG4gICAgdmFyIE1BWF9TQUZFX0lOVEVHRVIgPSBNYXRoLnBvdygyLCA1MykgLSAxO1xuXG4gICAgLyoqIFVzZWQgdG8gc3RvcmUgZnVuY3Rpb24gbWV0YWRhdGEuICovXG4gICAgdmFyIG1ldGFNYXAgPSBXZWFrTWFwICYmIG5ldyBXZWFrTWFwO1xuXG4gICAgLyoqIFVzZWQgdG8gbG9va3VwIHVubWluaWZpZWQgZnVuY3Rpb24gbmFtZXMuICovXG4gICAgdmFyIHJlYWxOYW1lcyA9IHt9O1xuXG4gICAgLyoqIFVzZWQgdG8gbG9va3VwIGEgdHlwZSBhcnJheSBjb25zdHJ1Y3RvcnMgYnkgYHRvU3RyaW5nVGFnYC4gKi9cbiAgICB2YXIgY3RvckJ5VGFnID0ge307XG4gICAgY3RvckJ5VGFnW2Zsb2F0MzJUYWddID0gY29udGV4dC5GbG9hdDMyQXJyYXk7XG4gICAgY3RvckJ5VGFnW2Zsb2F0NjRUYWddID0gY29udGV4dC5GbG9hdDY0QXJyYXk7XG4gICAgY3RvckJ5VGFnW2ludDhUYWddID0gY29udGV4dC5JbnQ4QXJyYXk7XG4gICAgY3RvckJ5VGFnW2ludDE2VGFnXSA9IGNvbnRleHQuSW50MTZBcnJheTtcbiAgICBjdG9yQnlUYWdbaW50MzJUYWddID0gY29udGV4dC5JbnQzMkFycmF5O1xuICAgIGN0b3JCeVRhZ1t1aW50OFRhZ10gPSBjb250ZXh0LlVpbnQ4QXJyYXk7XG4gICAgY3RvckJ5VGFnW3VpbnQ4Q2xhbXBlZFRhZ10gPSBjb250ZXh0LlVpbnQ4Q2xhbXBlZEFycmF5O1xuICAgIGN0b3JCeVRhZ1t1aW50MTZUYWddID0gY29udGV4dC5VaW50MTZBcnJheTtcbiAgICBjdG9yQnlUYWdbdWludDMyVGFnXSA9IGNvbnRleHQuVWludDMyQXJyYXk7XG5cbiAgICAvKiogVXNlZCB0byBhdm9pZCBpdGVyYXRpbmcgb3ZlciBub24tZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGluIElFIDwgOS4gKi9cbiAgICB2YXIgbm9uRW51bVByb3BzID0ge307XG4gICAgbm9uRW51bVByb3BzW2FycmF5VGFnXSA9IG5vbkVudW1Qcm9wc1tkYXRlVGFnXSA9IG5vbkVudW1Qcm9wc1tudW1iZXJUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlLCAndG9Mb2NhbGVTdHJpbmcnOiB0cnVlLCAndG9TdHJpbmcnOiB0cnVlLCAndmFsdWVPZic6IHRydWUgfTtcbiAgICBub25FbnVtUHJvcHNbYm9vbFRhZ10gPSBub25FbnVtUHJvcHNbc3RyaW5nVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSwgJ3ZhbHVlT2YnOiB0cnVlIH07XG4gICAgbm9uRW51bVByb3BzW2Vycm9yVGFnXSA9IG5vbkVudW1Qcm9wc1tmdW5jVGFnXSA9IG5vbkVudW1Qcm9wc1tyZWdleHBUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlLCAndG9TdHJpbmcnOiB0cnVlIH07XG4gICAgbm9uRW51bVByb3BzW29iamVjdFRhZ10gPSB7ICdjb25zdHJ1Y3Rvcic6IHRydWUgfTtcblxuICAgIGFycmF5RWFjaChzaGFkb3dQcm9wcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICBmb3IgKHZhciB0YWcgaW4gbm9uRW51bVByb3BzKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG5vbkVudW1Qcm9wcywgdGFnKSkge1xuICAgICAgICAgIHZhciBwcm9wcyA9IG5vbkVudW1Qcm9wc1t0YWddO1xuICAgICAgICAgIHByb3BzW2tleV0gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgb2JqZWN0IHdoaWNoIHdyYXBzIGB2YWx1ZWAgdG8gZW5hYmxlIGltcGxpY2l0IGNoYWluaW5nLlxuICAgICAqIE1ldGhvZHMgdGhhdCBvcGVyYXRlIG9uIGFuZCByZXR1cm4gYXJyYXlzLCBjb2xsZWN0aW9ucywgYW5kIGZ1bmN0aW9ucyBjYW5cbiAgICAgKiBiZSBjaGFpbmVkIHRvZ2V0aGVyLiBNZXRob2RzIHRoYXQgcmV0dXJuIGEgYm9vbGVhbiBvciBzaW5nbGUgdmFsdWUgd2lsbFxuICAgICAqIGF1dG9tYXRpY2FsbHkgZW5kIHRoZSBjaGFpbiByZXR1cm5pbmcgdGhlIHVud3JhcHBlZCB2YWx1ZS4gRXhwbGljaXQgY2hhaW5pbmdcbiAgICAgKiBtYXkgYmUgZW5hYmxlZCB1c2luZyBgXy5jaGFpbmAuIFRoZSBleGVjdXRpb24gb2YgY2hhaW5lZCBtZXRob2RzIGlzIGxhenksXG4gICAgICogdGhhdCBpcywgZXhlY3V0aW9uIGlzIGRlZmVycmVkIHVudGlsIGBfI3ZhbHVlYCBpcyBpbXBsaWNpdGx5IG9yIGV4cGxpY2l0bHlcbiAgICAgKiBjYWxsZWQuXG4gICAgICpcbiAgICAgKiBMYXp5IGV2YWx1YXRpb24gYWxsb3dzIHNldmVyYWwgbWV0aG9kcyB0byBzdXBwb3J0IHNob3J0Y3V0IGZ1c2lvbi4gU2hvcnRjdXRcbiAgICAgKiBmdXNpb24gaXMgYW4gb3B0aW1pemF0aW9uIHRoYXQgbWVyZ2VzIGl0ZXJhdGVlcyB0byBhdm9pZCBjcmVhdGluZyBpbnRlcm1lZGlhdGVcbiAgICAgKiBhcnJheXMgYW5kIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGl0ZXJhdGVlIGV4ZWN1dGlvbnMuXG4gICAgICpcbiAgICAgKiBDaGFpbmluZyBpcyBzdXBwb3J0ZWQgaW4gY3VzdG9tIGJ1aWxkcyBhcyBsb25nIGFzIHRoZSBgXyN2YWx1ZWAgbWV0aG9kIGlzXG4gICAgICogZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICpcbiAgICAgKiBJbiBhZGRpdGlvbiB0byBsb2Rhc2ggbWV0aG9kcywgd3JhcHBlcnMgaGF2ZSBgQXJyYXlgIGFuZCBgU3RyaW5nYCBtZXRob2RzLlxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgYEFycmF5YCBtZXRob2RzIGFyZTpcbiAgICAgKiBgY29uY2F0YCwgYGpvaW5gLCBgcG9wYCwgYHB1c2hgLCBgcmV2ZXJzZWAsIGBzaGlmdGAsIGBzbGljZWAsIGBzb3J0YCxcbiAgICAgKiBgc3BsaWNlYCwgYW5kIGB1bnNoaWZ0YFxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgYFN0cmluZ2AgbWV0aG9kcyBhcmU6XG4gICAgICogYHJlcGxhY2VgIGFuZCBgc3BsaXRgXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBtZXRob2RzIHRoYXQgc3VwcG9ydCBzaG9ydGN1dCBmdXNpb24gYXJlOlxuICAgICAqIGBjb21wYWN0YCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGRyb3BSaWdodFdoaWxlYCwgYGRyb3BXaGlsZWAsIGBmaWx0ZXJgLFxuICAgICAqIGBmaXJzdGAsIGBpbml0aWFsYCwgYGxhc3RgLCBgbWFwYCwgYHBsdWNrYCwgYHJlamVjdGAsIGByZXN0YCwgYHJldmVyc2VgLFxuICAgICAqIGBzbGljZWAsIGB0YWtlYCwgYHRha2VSaWdodGAsIGB0YWtlUmlnaHRXaGlsZWAsIGB0YWtlV2hpbGVgLCBgdG9BcnJheWAsXG4gICAgICogYW5kIGB3aGVyZWBcbiAgICAgKlxuICAgICAqIFRoZSBjaGFpbmFibGUgd3JhcHBlciBtZXRob2RzIGFyZTpcbiAgICAgKiBgYWZ0ZXJgLCBgYXJ5YCwgYGFzc2lnbmAsIGBhdGAsIGBiZWZvcmVgLCBgYmluZGAsIGBiaW5kQWxsYCwgYGJpbmRLZXlgLFxuICAgICAqIGBjYWxsYmFja2AsIGBjaGFpbmAsIGBjaHVua2AsIGBjb21taXRgLCBgY29tcGFjdGAsIGBjb25jYXRgLCBgY29uc3RhbnRgLFxuICAgICAqIGBjb3VudEJ5YCwgYGNyZWF0ZWAsIGBjdXJyeWAsIGBkZWJvdW5jZWAsIGBkZWZhdWx0c2AsIGBkZWZlcmAsIGBkZWxheWAsXG4gICAgICogYGRpZmZlcmVuY2VgLCBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZHJvcFJpZ2h0V2hpbGVgLCBgZHJvcFdoaWxlYCwgYGZpbGxgLFxuICAgICAqIGBmaWx0ZXJgLCBgZmxhdHRlbmAsIGBmbGF0dGVuRGVlcGAsIGBmbG93YCwgYGZsb3dSaWdodGAsIGBmb3JFYWNoYCxcbiAgICAgKiBgZm9yRWFjaFJpZ2h0YCwgYGZvckluYCwgYGZvckluUmlnaHRgLCBgZm9yT3duYCwgYGZvck93blJpZ2h0YCwgYGZ1bmN0aW9uc2AsXG4gICAgICogYGdyb3VwQnlgLCBgaW5kZXhCeWAsIGBpbml0aWFsYCwgYGludGVyc2VjdGlvbmAsIGBpbnZlcnRgLCBgaW52b2tlYCwgYGtleXNgLFxuICAgICAqIGBrZXlzSW5gLCBgbWFwYCwgYG1hcFZhbHVlc2AsIGBtYXRjaGVzYCwgYG1hdGNoZXNQcm9wZXJ0eWAsIGBtZW1vaXplYCxcbiAgICAgKiBgbWVyZ2VgLCBgbWl4aW5gLCBgbmVnYXRlYCwgYG9taXRgLCBgb25jZWAsIGBwYWlyc2AsIGBwYXJ0aWFsYCwgYHBhcnRpYWxSaWdodGAsXG4gICAgICogYHBhcnRpdGlvbmAsIGBwaWNrYCwgYHBsYW50YCwgYHBsdWNrYCwgYHByb3BlcnR5YCwgYHByb3BlcnR5T2ZgLCBgcHVsbGAsXG4gICAgICogYHB1bGxBdGAsIGBwdXNoYCwgYHJhbmdlYCwgYHJlYXJnYCwgYHJlamVjdGAsIGByZW1vdmVgLCBgcmVzdGAsIGByZXZlcnNlYCxcbiAgICAgKiBgc2h1ZmZsZWAsIGBzbGljZWAsIGBzb3J0YCwgYHNvcnRCeWAsIGBzb3J0QnlBbGxgLCBgc29ydEJ5T3JkZXJgLCBgc3BsaWNlYCxcbiAgICAgKiBgc3ByZWFkYCwgYHRha2VgLCBgdGFrZVJpZ2h0YCwgYHRha2VSaWdodFdoaWxlYCwgYHRha2VXaGlsZWAsIGB0YXBgLFxuICAgICAqIGB0aHJvdHRsZWAsIGB0aHJ1YCwgYHRpbWVzYCwgYHRvQXJyYXlgLCBgdG9QbGFpbk9iamVjdGAsIGB0cmFuc2Zvcm1gLFxuICAgICAqIGB1bmlvbmAsIGB1bmlxYCwgYHVuc2hpZnRgLCBgdW56aXBgLCBgdmFsdWVzYCwgYHZhbHVlc0luYCwgYHdoZXJlYCxcbiAgICAgKiBgd2l0aG91dGAsIGB3cmFwYCwgYHhvcmAsIGB6aXBgLCBhbmQgYHppcE9iamVjdGBcbiAgICAgKlxuICAgICAqIFRoZSB3cmFwcGVyIG1ldGhvZHMgdGhhdCBhcmUgKipub3QqKiBjaGFpbmFibGUgYnkgZGVmYXVsdCBhcmU6XG4gICAgICogYGFkZGAsIGBhdHRlbXB0YCwgYGNhbWVsQ2FzZWAsIGBjYXBpdGFsaXplYCwgYGNsb25lYCwgYGNsb25lRGVlcGAsIGBkZWJ1cnJgLFxuICAgICAqIGBlbmRzV2l0aGAsIGBlc2NhcGVgLCBgZXNjYXBlUmVnRXhwYCwgYGV2ZXJ5YCwgYGZpbmRgLCBgZmluZEluZGV4YCwgYGZpbmRLZXlgLFxuICAgICAqIGBmaW5kTGFzdGAsIGBmaW5kTGFzdEluZGV4YCwgYGZpbmRMYXN0S2V5YCwgYGZpbmRXaGVyZWAsIGBmaXJzdGAsIGBoYXNgLFxuICAgICAqIGBpZGVudGl0eWAsIGBpbmNsdWRlc2AsIGBpbmRleE9mYCwgYGluUmFuZ2VgLCBgaXNBcmd1bWVudHNgLCBgaXNBcnJheWAsXG4gICAgICogYGlzQm9vbGVhbmAsIGBpc0RhdGVgLCBgaXNFbGVtZW50YCwgYGlzRW1wdHlgLCBgaXNFcXVhbGAsIGBpc0Vycm9yYCwgYGlzRmluaXRlYFxuICAgICAqIGBpc0Z1bmN0aW9uYCwgYGlzTWF0Y2hgLCBgaXNOYXRpdmVgLCBgaXNOYU5gLCBgaXNOdWxsYCwgYGlzTnVtYmVyYCwgYGlzT2JqZWN0YCxcbiAgICAgKiBgaXNQbGFpbk9iamVjdGAsIGBpc1JlZ0V4cGAsIGBpc1N0cmluZ2AsIGBpc1VuZGVmaW5lZGAsIGBpc1R5cGVkQXJyYXlgLFxuICAgICAqIGBqb2luYCwgYGtlYmFiQ2FzZWAsIGBsYXN0YCwgYGxhc3RJbmRleE9mYCwgYG1heGAsIGBtaW5gLCBgbm9Db25mbGljdGAsXG4gICAgICogYG5vb3BgLCBgbm93YCwgYHBhZGAsIGBwYWRMZWZ0YCwgYHBhZFJpZ2h0YCwgYHBhcnNlSW50YCwgYHBvcGAsIGByYW5kb21gLFxuICAgICAqIGByZWR1Y2VgLCBgcmVkdWNlUmlnaHRgLCBgcmVwZWF0YCwgYHJlc3VsdGAsIGBydW5JbkNvbnRleHRgLCBgc2hpZnRgLCBgc2l6ZWAsXG4gICAgICogYHNuYWtlQ2FzZWAsIGBzb21lYCwgYHNvcnRlZEluZGV4YCwgYHNvcnRlZExhc3RJbmRleGAsIGBzdGFydENhc2VgLCBgc3RhcnRzV2l0aGAsXG4gICAgICogYHN1bWAsIGB0ZW1wbGF0ZWAsIGB0cmltYCwgYHRyaW1MZWZ0YCwgYHRyaW1SaWdodGAsIGB0cnVuY2AsIGB1bmVzY2FwZWAsXG4gICAgICogYHVuaXF1ZUlkYCwgYHZhbHVlYCwgYW5kIGB3b3Jkc2BcbiAgICAgKlxuICAgICAqIFRoZSB3cmFwcGVyIG1ldGhvZCBgc2FtcGxlYCB3aWxsIHJldHVybiBhIHdyYXBwZWQgdmFsdWUgd2hlbiBgbmAgaXMgcHJvdmlkZWQsXG4gICAgICogb3RoZXJ3aXNlIGFuIHVud3JhcHBlZCB2YWx1ZSBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBuYW1lIF9cbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAY2F0ZWdvcnkgQ2hhaW5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwIGluIGEgYGxvZGFzaGAgaW5zdGFuY2UuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB3cmFwcGVkID0gXyhbMSwgMiwgM10pO1xuICAgICAqXG4gICAgICogLy8gcmV0dXJucyBhbiB1bndyYXBwZWQgdmFsdWVcbiAgICAgKiB3cmFwcGVkLnJlZHVjZShmdW5jdGlvbih0b3RhbCwgbikge1xuICAgICAqICAgcmV0dXJuIHRvdGFsICsgbjtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiA2XG4gICAgICpcbiAgICAgKiAvLyByZXR1cm5zIGEgd3JhcHBlZCB2YWx1ZVxuICAgICAqIHZhciBzcXVhcmVzID0gd3JhcHBlZC5tYXAoZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogXy5pc0FycmF5KHNxdWFyZXMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoc3F1YXJlcy52YWx1ZSgpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gbG9kYXNoKHZhbHVlKSB7XG4gICAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNBcnJheSh2YWx1ZSkgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMb2Rhc2hXcmFwcGVyKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnX19jaGFpbl9fJykgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ19fd3JhcHBlZF9fJykpIHtcbiAgICAgICAgICByZXR1cm4gd3JhcHBlckNsb25lKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGFsbCBjaGFpbmluZyB3cmFwcGVycyBpbmhlcml0IGZyb20uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VMb2Rhc2goKSB7XG4gICAgICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGNvbnN0cnVjdG9yIGZvciBjcmVhdGluZyBgbG9kYXNoYCB3cmFwcGVyIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY2hhaW5BbGxdIEVuYWJsZSBjaGFpbmluZyBmb3IgYWxsIHdyYXBwZXIgbWV0aG9kcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYWN0aW9ucz1bXV0gQWN0aW9ucyB0byBwZWZvcm0gdG8gcmVzb2x2ZSB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIExvZGFzaFdyYXBwZXIodmFsdWUsIGNoYWluQWxsLCBhY3Rpb25zKSB7XG4gICAgICB0aGlzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICB0aGlzLl9fYWN0aW9uc19fID0gYWN0aW9ucyB8fCBbXTtcbiAgICAgIHRoaXMuX19jaGFpbl9fID0gISFjaGFpbkFsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBvYmplY3QgZW52aXJvbm1lbnQgZmVhdHVyZSBmbGFncy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAqL1xuICAgIHZhciBzdXBwb3J0ID0gbG9kYXNoLnN1cHBvcnQgPSB7fTtcblxuICAgIChmdW5jdGlvbih4KSB7XG4gICAgICB2YXIgQ3RvciA9IGZ1bmN0aW9uKCkgeyB0aGlzLnggPSB4OyB9LFxuICAgICAgICAgIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgb2JqZWN0ID0geyAnMCc6IHgsICdsZW5ndGgnOiB4IH0sXG4gICAgICAgICAgcHJvcHMgPSBbXTtcblxuICAgICAgQ3Rvci5wcm90b3R5cGUgPSB7ICd2YWx1ZU9mJzogeCwgJ3knOiB4IH07XG4gICAgICBmb3IgKHZhciBrZXkgaW4gbmV3IEN0b3IpIHsgcHJvcHMucHVzaChrZXkpOyB9XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIHRoZSBgdG9TdHJpbmdUYWdgIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgaXMgcmVzb2x2YWJsZVxuICAgICAgICogKGFsbCBidXQgRmlyZWZveCA8IDQsIElFIDwgOSkuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0LmFyZ3NUYWcgPSBvYmpUb1N0cmluZy5jYWxsKGFyZ3MpID09IGFyZ3NUYWc7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIGBuYW1lYCBvciBgbWVzc2FnZWAgcHJvcGVydGllcyBvZiBgRXJyb3IucHJvdG90eXBlYCBhcmVcbiAgICAgICAqIGVudW1lcmFibGUgYnkgZGVmYXVsdCAoSUUgPCA5LCBTYWZhcmkgPCA1LjEpLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgc3VwcG9ydC5lbnVtRXJyb3JQcm9wcyA9IHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZXJyb3JQcm90bywgJ21lc3NhZ2UnKSB8fFxuICAgICAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGVycm9yUHJvdG8sICduYW1lJyk7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIGBwcm90b3R5cGVgIHByb3BlcnRpZXMgYXJlIGVudW1lcmFibGUgYnkgZGVmYXVsdC5cbiAgICAgICAqXG4gICAgICAgKiBGaXJlZm94IDwgMy42LCBPcGVyYSA+IDkuNTAgLSBPcGVyYSA8IDExLjYwLCBhbmQgU2FmYXJpIDwgNS4xXG4gICAgICAgKiAoaWYgdGhlIHByb3RvdHlwZSBvciBhIHByb3BlcnR5IG9uIHRoZSBwcm90b3R5cGUgaGFzIGJlZW4gc2V0KVxuICAgICAgICogaW5jb3JyZWN0bHkgc2V0IHRoZSBgW1tFbnVtZXJhYmxlXV1gIHZhbHVlIG9mIGEgZnVuY3Rpb24ncyBgcHJvdG90eXBlYFxuICAgICAgICogcHJvcGVydHkgdG8gYHRydWVgLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgc3VwcG9ydC5lbnVtUHJvdG90eXBlcyA9IHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoQ3RvciwgJ3Byb3RvdHlwZScpO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiBmdW5jdGlvbnMgY2FuIGJlIGRlY29tcGlsZWQgYnkgYEZ1bmN0aW9uI3RvU3RyaW5nYFxuICAgICAgICogKGFsbCBidXQgRmlyZWZveCBPUyBjZXJ0aWZpZWQgYXBwcywgb2xkZXIgT3BlcmEgbW9iaWxlIGJyb3dzZXJzLCBhbmRcbiAgICAgICAqIHRoZSBQbGF5U3RhdGlvbiAzOyBmb3JjZWQgYGZhbHNlYCBmb3IgV2luZG93cyA4IGFwcHMpLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgc3VwcG9ydC5mdW5jRGVjb21wID0gL1xcYnRoaXNcXGIvLnRlc3QoZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KTtcblxuICAgICAgLyoqXG4gICAgICAgKiBEZXRlY3QgaWYgYEZ1bmN0aW9uI25hbWVgIGlzIHN1cHBvcnRlZCAoYWxsIGJ1dCBJRSkuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0LmZ1bmNOYW1lcyA9IHR5cGVvZiBGdW5jdGlvbi5uYW1lID09ICdzdHJpbmcnO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiB0aGUgYHRvU3RyaW5nVGFnYCBvZiBET00gbm9kZXMgaXMgcmVzb2x2YWJsZSAoYWxsIGJ1dCBJRSA8IDkpLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgc3VwcG9ydC5ub2RlVGFnID0gb2JqVG9TdHJpbmcuY2FsbChkb2N1bWVudCkgIT0gb2JqZWN0VGFnO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiBzdHJpbmcgaW5kZXhlcyBhcmUgbm9uLWVudW1lcmFibGUgKElFIDwgOSwgUmluZ29KUywgUmhpbm8sIE5hcndoYWwpLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgc3VwcG9ydC5ub25FbnVtU3RyaW5ncyA9ICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKCd4JywgMCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIHByb3BlcnRpZXMgc2hhZG93aW5nIHRob3NlIG9uIGBPYmplY3QucHJvdG90eXBlYCBhcmUgbm9uLWVudW1lcmFibGUuXG4gICAgICAgKlxuICAgICAgICogSW4gSUUgPCA5IGFuIG9iamVjdCdzIG93biBwcm9wZXJ0aWVzLCBzaGFkb3dpbmcgbm9uLWVudW1lcmFibGUgb25lcyxcbiAgICAgICAqIGFyZSBtYWRlIG5vbi1lbnVtZXJhYmxlIGFzIHdlbGwgKGEuay5hIHRoZSBKU2NyaXB0IGBbW0RvbnRFbnVtXV1gIGJ1ZykuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0Lm5vbkVudW1TaGFkb3dzID0gIS92YWx1ZU9mLy50ZXN0KHByb3BzKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBEZXRlY3QgaWYgb3duIHByb3BlcnRpZXMgYXJlIGl0ZXJhdGVkIGFmdGVyIGluaGVyaXRlZCBwcm9wZXJ0aWVzIChJRSA8IDkpLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgc3VwcG9ydC5vd25MYXN0ID0gcHJvcHNbMF0gIT0gJ3gnO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiBgQXJyYXkjc2hpZnRgIGFuZCBgQXJyYXkjc3BsaWNlYCBhdWdtZW50IGFycmF5LWxpa2Ugb2JqZWN0c1xuICAgICAgICogY29ycmVjdGx5LlxuICAgICAgICpcbiAgICAgICAqIEZpcmVmb3ggPCAxMCwgY29tcGF0aWJpbGl0eSBtb2RlcyBvZiBJRSA4LCBhbmQgSUUgPCA5IGhhdmUgYnVnZ3kgQXJyYXlcbiAgICAgICAqIGBzaGlmdCgpYCBhbmQgYHNwbGljZSgpYCBmdW5jdGlvbnMgdGhhdCBmYWlsIHRvIHJlbW92ZSB0aGUgbGFzdCBlbGVtZW50LFxuICAgICAgICogYHZhbHVlWzBdYCwgb2YgYXJyYXktbGlrZSBvYmplY3RzIGV2ZW4gdGhvdWdoIHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IGlzXG4gICAgICAgKiBzZXQgdG8gYDBgLiBUaGUgYHNoaWZ0KClgIG1ldGhvZCBpcyBidWdneSBpbiBjb21wYXRpYmlsaXR5IG1vZGVzIG9mIElFIDgsXG4gICAgICAgKiB3aGlsZSBgc3BsaWNlKClgIGlzIGJ1Z2d5IHJlZ2FyZGxlc3Mgb2YgbW9kZSBpbiBJRSA8IDkuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0LnNwbGljZU9iamVjdHMgPSAoc3BsaWNlLmNhbGwob2JqZWN0LCAwLCAxKSwgIW9iamVjdFswXSk7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGxhY2sgb2Ygc3VwcG9ydCBmb3IgYWNjZXNzaW5nIHN0cmluZyBjaGFyYWN0ZXJzIGJ5IGluZGV4LlxuICAgICAgICpcbiAgICAgICAqIElFIDwgOCBjYW4ndCBhY2Nlc3MgY2hhcmFjdGVycyBieSBpbmRleC4gSUUgOCBjYW4gb25seSBhY2Nlc3MgY2hhcmFjdGVyc1xuICAgICAgICogYnkgaW5kZXggb24gc3RyaW5nIGxpdGVyYWxzLCBub3Qgc3RyaW5nIG9iamVjdHMuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0LnVuaW5kZXhlZENoYXJzID0gKCd4J1swXSArIE9iamVjdCgneCcpWzBdKSAhPSAneHgnO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiB0aGUgRE9NIGlzIHN1cHBvcnRlZC5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgKi9cbiAgICAgIHRyeSB7XG4gICAgICAgIHN1cHBvcnQuZG9tID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLm5vZGVUeXBlID09PSAxMTtcbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBzdXBwb3J0LmRvbSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiBgYXJndW1lbnRzYCBvYmplY3QgaW5kZXhlcyBhcmUgbm9uLWVudW1lcmFibGUuXG4gICAgICAgKlxuICAgICAgICogSW4gRmlyZWZveCA8IDQsIElFIDwgOSwgUGhhbnRvbUpTLCBhbmQgU2FmYXJpIDwgNS4xIGBhcmd1bWVudHNgIG9iamVjdFxuICAgICAgICogaW5kZXhlcyBhcmUgbm9uLWVudW1lcmFibGUuIENocm9tZSA8IDI1IGFuZCBOb2RlLmpzIDwgMC4xMS4wIHRyZWF0XG4gICAgICAgKiBgYXJndW1lbnRzYCBvYmplY3QgaW5kZXhlcyBhcyBub24tZW51bWVyYWJsZSBhbmQgZmFpbCBgaGFzT3duUHJvcGVydHlgXG4gICAgICAgKiBjaGVja3MgZm9yIGluZGV4ZXMgdGhhdCBleGNlZWQgdGhlIG51bWJlciBvZiBmdW5jdGlvbiBwYXJhbWV0ZXJzIGFuZFxuICAgICAgICogd2hvc2UgYXNzb2NpYXRlZCBhcmd1bWVudCB2YWx1ZXMgYXJlIGAwYC5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgKi9cbiAgICAgIHRyeSB7XG4gICAgICAgIHN1cHBvcnQubm9uRW51bUFyZ3MgPSAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChhcmdzLCAxKTtcbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBzdXBwb3J0Lm5vbkVudW1BcmdzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KDEsIDApKTtcblxuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQsIHRoZSB0ZW1wbGF0ZSBkZWxpbWl0ZXJzIHVzZWQgYnkgbG9kYXNoIGFyZSBsaWtlIHRob3NlIGluXG4gICAgICogZW1iZWRkZWQgUnVieSAoRVJCKS4gQ2hhbmdlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgc2V0dGluZ3MgdG8gdXNlXG4gICAgICogYWx0ZXJuYXRpdmUgZGVsaW1pdGVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAqL1xuICAgIGxvZGFzaC50ZW1wbGF0ZVNldHRpbmdzID0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gYmUgSFRNTC1lc2NhcGVkLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIFJlZ0V4cFxuICAgICAgICovXG4gICAgICAnZXNjYXBlJzogcmVFc2NhcGUsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBkZXRlY3QgY29kZSB0byBiZSBldmFsdWF0ZWQuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUgUmVnRXhwXG4gICAgICAgKi9cbiAgICAgICdldmFsdWF0ZSc6IHJlRXZhbHVhdGUsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBpbmplY3QuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUgUmVnRXhwXG4gICAgICAgKi9cbiAgICAgICdpbnRlcnBvbGF0ZSc6IHJlSW50ZXJwb2xhdGUsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byByZWZlcmVuY2UgdGhlIGRhdGEgb2JqZWN0IGluIHRoZSB0ZW1wbGF0ZSB0ZXh0LlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAgICovXG4gICAgICAndmFyaWFibGUnOiAnJyxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIGltcG9ydCB2YXJpYWJsZXMgaW50byB0aGUgY29tcGlsZWQgdGVtcGxhdGUuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUgT2JqZWN0XG4gICAgICAgKi9cbiAgICAgICdpbXBvcnRzJzoge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3MuaW1wb3J0c1xuICAgICAgICAgKiBAdHlwZSBGdW5jdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgJ18nOiBsb2Rhc2hcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGxhenkgd3JhcHBlciBvYmplY3Qgd2hpY2ggd3JhcHMgYHZhbHVlYCB0byBlbmFibGUgbGF6eSBldmFsdWF0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIExhenlXcmFwcGVyKHZhbHVlKSB7XG4gICAgICB0aGlzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICB0aGlzLl9fYWN0aW9uc19fID0gbnVsbDtcbiAgICAgIHRoaXMuX19kaXJfXyA9IDE7XG4gICAgICB0aGlzLl9fZHJvcENvdW50X18gPSAwO1xuICAgICAgdGhpcy5fX2ZpbHRlcmVkX18gPSBmYWxzZTtcbiAgICAgIHRoaXMuX19pdGVyYXRlZXNfXyA9IG51bGw7XG4gICAgICB0aGlzLl9fdGFrZUNvdW50X18gPSBQT1NJVElWRV9JTkZJTklUWTtcbiAgICAgIHRoaXMuX192aWV3c19fID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGxhenkgd3JhcHBlciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGNsb25lXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGBMYXp5V3JhcHBlcmAgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlDbG9uZSgpIHtcbiAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5fX2FjdGlvbnNfXyxcbiAgICAgICAgICBpdGVyYXRlZXMgPSB0aGlzLl9faXRlcmF0ZWVzX18sXG4gICAgICAgICAgdmlld3MgPSB0aGlzLl9fdmlld3NfXyxcbiAgICAgICAgICByZXN1bHQgPSBuZXcgTGF6eVdyYXBwZXIodGhpcy5fX3dyYXBwZWRfXyk7XG5cbiAgICAgIHJlc3VsdC5fX2FjdGlvbnNfXyA9IGFjdGlvbnMgPyBhcnJheUNvcHkoYWN0aW9ucykgOiBudWxsO1xuICAgICAgcmVzdWx0Ll9fZGlyX18gPSB0aGlzLl9fZGlyX187XG4gICAgICByZXN1bHQuX19maWx0ZXJlZF9fID0gdGhpcy5fX2ZpbHRlcmVkX187XG4gICAgICByZXN1bHQuX19pdGVyYXRlZXNfXyA9IGl0ZXJhdGVlcyA/IGFycmF5Q29weShpdGVyYXRlZXMpIDogbnVsbDtcbiAgICAgIHJlc3VsdC5fX3Rha2VDb3VudF9fID0gdGhpcy5fX3Rha2VDb3VudF9fO1xuICAgICAgcmVzdWx0Ll9fdmlld3NfXyA9IHZpZXdzID8gYXJyYXlDb3B5KHZpZXdzKSA6IG51bGw7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVyc2VzIHRoZSBkaXJlY3Rpb24gb2YgbGF6eSBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHJldmVyc2VcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgcmV2ZXJzZWQgYExhenlXcmFwcGVyYCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGF6eVJldmVyc2UoKSB7XG4gICAgICBpZiAodGhpcy5fX2ZpbHRlcmVkX18pIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgcmVzdWx0Ll9fZGlyX18gPSAtMTtcbiAgICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB0aGlzLmNsb25lKCk7XG4gICAgICAgIHJlc3VsdC5fX2Rpcl9fICo9IC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYWN0cyB0aGUgdW53cmFwcGVkIHZhbHVlIGZyb20gaXRzIGxhenkgd3JhcHBlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgdmFsdWVcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlWYWx1ZSgpIHtcbiAgICAgIHZhciBhcnJheSA9IHRoaXMuX193cmFwcGVkX18udmFsdWUoKTtcbiAgICAgIGlmICghaXNBcnJheShhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VXcmFwcGVyVmFsdWUoYXJyYXksIHRoaXMuX19hY3Rpb25zX18pO1xuICAgICAgfVxuICAgICAgdmFyIGRpciA9IHRoaXMuX19kaXJfXyxcbiAgICAgICAgICBpc1JpZ2h0ID0gZGlyIDwgMCxcbiAgICAgICAgICB2aWV3ID0gZ2V0VmlldygwLCBhcnJheS5sZW5ndGgsIHRoaXMuX192aWV3c19fKSxcbiAgICAgICAgICBzdGFydCA9IHZpZXcuc3RhcnQsXG4gICAgICAgICAgZW5kID0gdmlldy5lbmQsXG4gICAgICAgICAgbGVuZ3RoID0gZW5kIC0gc3RhcnQsXG4gICAgICAgICAgaW5kZXggPSBpc1JpZ2h0ID8gZW5kIDogKHN0YXJ0IC0gMSksXG4gICAgICAgICAgdGFrZUNvdW50ID0gbmF0aXZlTWluKGxlbmd0aCwgdGhpcy5fX3Rha2VDb3VudF9fKSxcbiAgICAgICAgICBpdGVyYXRlZXMgPSB0aGlzLl9faXRlcmF0ZWVzX18sXG4gICAgICAgICAgaXRlckxlbmd0aCA9IGl0ZXJhdGVlcyA/IGl0ZXJhdGVlcy5sZW5ndGggOiAwLFxuICAgICAgICAgIHJlc0luZGV4ID0gMCxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAobGVuZ3RoLS0gJiYgcmVzSW5kZXggPCB0YWtlQ291bnQpIHtcbiAgICAgICAgaW5kZXggKz0gZGlyO1xuXG4gICAgICAgIHZhciBpdGVySW5kZXggPSAtMSxcbiAgICAgICAgICAgIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgICAgIHdoaWxlICgrK2l0ZXJJbmRleCA8IGl0ZXJMZW5ndGgpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IGl0ZXJhdGVlc1tpdGVySW5kZXhdLFxuICAgICAgICAgICAgICBpdGVyYXRlZSA9IGRhdGEuaXRlcmF0ZWUsXG4gICAgICAgICAgICAgIHR5cGUgPSBkYXRhLnR5cGU7XG5cbiAgICAgICAgICBpZiAodHlwZSA9PSBMQVpZX0RST1BfV0hJTEVfRkxBRykge1xuICAgICAgICAgICAgaWYgKGRhdGEuZG9uZSAmJiAoaXNSaWdodCA/IChpbmRleCA+IGRhdGEuaW5kZXgpIDogKGluZGV4IDwgZGF0YS5pbmRleCkpKSB7XG4gICAgICAgICAgICAgIGRhdGEuY291bnQgPSAwO1xuICAgICAgICAgICAgICBkYXRhLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGlmICghZGF0YS5kb25lKSB7XG4gICAgICAgICAgICAgIHZhciBsaW1pdCA9IGRhdGEubGltaXQ7XG4gICAgICAgICAgICAgIGlmICghKGRhdGEuZG9uZSA9IGxpbWl0ID4gLTEgPyAoZGF0YS5jb3VudCsrID49IGxpbWl0KSA6ICFpdGVyYXRlZSh2YWx1ZSkpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGNvbXB1dGVkID0gaXRlcmF0ZWUodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHR5cGUgPT0gTEFaWV9NQVBfRkxBRykge1xuICAgICAgICAgICAgICB2YWx1ZSA9IGNvbXB1dGVkO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghY29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gTEFaWV9GSUxURVJfRkxBRykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIGtleS92YWx1ZSBwYWlycy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBuYW1lIENhY2hlXG4gICAgICogQG1lbWJlck9mIF8ubWVtb2l6ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIE1hcENhY2hlKCkge1xuICAgICAgdGhpcy5fX2RhdGFfXyA9IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBjYWNoZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZGVsZXRlXG4gICAgICogQG1lbWJlck9mIF8ubWVtb2l6ZS5DYWNoZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQgc3VjY2Vzc2Z1bGx5LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwRGVsZXRlKGtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuaGFzKGtleSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19ba2V5XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjYWNoZWQgdmFsdWUgZm9yIGBrZXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBnZXRcbiAgICAgKiBAbWVtYmVyT2YgXy5tZW1vaXplLkNhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGNhY2hlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBHZXQoa2V5KSB7XG4gICAgICByZXR1cm4ga2V5ID09ICdfX3Byb3RvX18nID8gdW5kZWZpbmVkIDogdGhpcy5fX2RhdGFfX1trZXldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIGNhY2hlZCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgXy5tZW1vaXplLkNhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcEhhcyhrZXkpIHtcbiAgICAgIHJldHVybiBrZXkgIT0gJ19fcHJvdG9fXycgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLl9fZGF0YV9fLCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYHZhbHVlYCB0byBga2V5YCBvZiB0aGUgY2FjaGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHNldFxuICAgICAqIEBtZW1iZXJPZiBfLm1lbW9pemUuQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGNhY2hlLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNhY2hlLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNhY2hlIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBTZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKGtleSAhPSAnX19wcm90b19fJykge1xuICAgICAgICB0aGlzLl9fZGF0YV9fW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIGNhY2hlIG9iamVjdCB0byBzdG9yZSB1bmlxdWUgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFNldENhY2hlKHZhbHVlcykge1xuICAgICAgdmFyIGxlbmd0aCA9IHZhbHVlcyA/IHZhbHVlcy5sZW5ndGggOiAwO1xuXG4gICAgICB0aGlzLmRhdGEgPSB7ICdoYXNoJzogbmF0aXZlQ3JlYXRlKG51bGwpLCAnc2V0JzogbmV3IFNldCB9O1xuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHRoaXMucHVzaCh2YWx1ZXNbbGVuZ3RoXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gYGNhY2hlYCBtaW1pY2tpbmcgdGhlIHJldHVybiBzaWduYXR1cmUgb2ZcbiAgICAgKiBgXy5pbmRleE9mYCBieSByZXR1cm5pbmcgYDBgIGlmIHRoZSB2YWx1ZSBpcyBmb3VuZCwgZWxzZSBgLTFgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gY2FjaGUgVGhlIGNhY2hlIHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgYDBgIGlmIGB2YWx1ZWAgaXMgZm91bmQsIGVsc2UgYC0xYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYWNoZUluZGV4T2YoY2FjaGUsIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IGNhY2hlLmRhdGEsXG4gICAgICAgICAgcmVzdWx0ID0gKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCBpc09iamVjdCh2YWx1ZSkpID8gZGF0YS5zZXQuaGFzKHZhbHVlKSA6IGRhdGEuaGFzaFt2YWx1ZV07XG5cbiAgICAgIHJldHVybiByZXN1bHQgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBgdmFsdWVgIHRvIHRoZSBjYWNoZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgcHVzaFxuICAgICAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhY2hlUHVzaCh2YWx1ZSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICBkYXRhLnNldC5hZGQodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YS5oYXNoW3ZhbHVlXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIHRoZSB2YWx1ZXMgb2YgYHNvdXJjZWAgdG8gYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gc291cmNlIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyBmcm9tLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5Q29weShzb3VyY2UsIGFycmF5KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuXG4gICAgICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGFycmF5W2luZGV4XSA9IHNvdXJjZVtpbmRleF07XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFja1xuICAgICAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpID09PSBmYWxzZSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hSaWdodGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAgICogY2FsbGJhY2sgc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheUVhY2hSaWdodChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZXZlcnlgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFja1xuICAgICAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbGwgZWxlbWVudHMgcGFzcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlFdmVyeShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGlmICghcHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlGaWx0ZXIoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc0luZGV4ID0gLTEsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgIHJlc3VsdFsrK3Jlc0luZGV4XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFja1xuICAgICAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXhgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlNYXgoYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBORUdBVElWRV9JTkZJTklUWTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAodmFsdWUgPiByZXN1bHQpIHtcbiAgICAgICAgICByZXN1bHQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWluYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5TWluKGFycmF5KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gUE9TSVRJVkVfSU5GSU5JVFk7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHZhbHVlIDwgcmVzdWx0KSB7XG4gICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnJlZHVjZWAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaW5pdEZyb21BcnJheV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgXG4gICAgICogIGFzIHRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVJlZHVjZShhcnJheSwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0RnJvbUFycmF5KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIGlmIChpbml0RnJvbUFycmF5ICYmIGxlbmd0aCkge1xuICAgICAgICBhY2N1bXVsYXRvciA9IGFycmF5WysraW5kZXhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgYWNjdW11bGF0b3IgPSBpdGVyYXRlZShhY2N1bXVsYXRvciwgYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5yZWR1Y2VSaWdodGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAgICogY2FsbGJhY2sgc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaW5pdEZyb21BcnJheV0gU3BlY2lmeSB1c2luZyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWBcbiAgICAgKiAgYXMgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5UmVkdWNlUmlnaHQoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEZyb21BcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmIChpbml0RnJvbUFycmF5ICYmIGxlbmd0aCkge1xuICAgICAgICBhY2N1bXVsYXRvciA9IGFycmF5Wy0tbGVuZ3RoXTtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtsZW5ndGhdLCBsZW5ndGgsIGFycmF5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc29tZWAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlTb21lKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zdW1gIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3VtLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5U3VtKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IDA7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICByZXN1bHQgKz0gK2FycmF5W2xlbmd0aF0gfHwgMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCBieSBgXy5kZWZhdWx0c2AgdG8gY3VzdG9taXplIGl0cyBgXy5hc3NpZ25gIHVzZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSBvYmplY3RWYWx1ZSBUaGUgZGVzdGluYXRpb24gb2JqZWN0IHByb3BlcnR5IHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Kn0gc291cmNlVmFsdWUgVGhlIHNvdXJjZSBvYmplY3QgcHJvcGVydHkgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHZhbHVlIHRvIGFzc2lnbiB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFzc2lnbkRlZmF1bHRzKG9iamVjdFZhbHVlLCBzb3VyY2VWYWx1ZSkge1xuICAgICAgcmV0dXJuIG9iamVjdFZhbHVlID09PSB1bmRlZmluZWQgPyBzb3VyY2VWYWx1ZSA6IG9iamVjdFZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8udGVtcGxhdGVgIHRvIGN1c3RvbWl6ZSBpdHMgYF8uYXNzaWduYCB1c2UuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhc3NpZ25EZWZhdWx0c2AgZXhjZXB0IHRoYXQgaXQgaWdub3Jlc1xuICAgICAqIGluaGVyaXRlZCBwcm9wZXJ0eSB2YWx1ZXMgd2hlbiBjaGVja2luZyBpZiBhIHByb3BlcnR5IGlzIGB1bmRlZmluZWRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IG9iamVjdFZhbHVlIFRoZSBkZXN0aW5hdGlvbiBvYmplY3QgcHJvcGVydHkgdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBzb3VyY2VWYWx1ZSBUaGUgc291cmNlIG9iamVjdCBwcm9wZXJ0eSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBvYmplY3QgYW5kIHNvdXJjZSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24gdG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhc3NpZ25Pd25EZWZhdWx0cyhvYmplY3RWYWx1ZSwgc291cmNlVmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICByZXR1cm4gKG9iamVjdFZhbHVlID09PSB1bmRlZmluZWQgfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKVxuICAgICAgICA/IHNvdXJjZVZhbHVlXG4gICAgICAgIDogb2JqZWN0VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmFzc2lnbmAgZm9yIGN1c3RvbWl6aW5nIGFzc2lnbmVkIHZhbHVlcyB3aXRob3V0XG4gICAgICogc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmcsIG11bHRpcGxlIHNvdXJjZXMsIGFuZCBgdGhpc2AgYmluZGluZyBgY3VzdG9taXplcmBcbiAgICAgKiBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhc3NpZ25XaXRoKG9iamVjdCwgc291cmNlLCBjdXN0b21pemVyKSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSk7XG4gICAgICBwdXNoLmFwcGx5KHByb3BzLCBnZXRTeW1ib2xzKHNvdXJjZSkpO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF0sXG4gICAgICAgICAgICB2YWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICAgICAgcmVzdWx0ID0gY3VzdG9taXplcih2YWx1ZSwgc291cmNlW2tleV0sIGtleSwgb2JqZWN0LCBzb3VyY2UpO1xuXG4gICAgICAgIGlmICgocmVzdWx0ID09PSByZXN1bHQgPyAocmVzdWx0ICE9PSB2YWx1ZSkgOiAodmFsdWUgPT09IHZhbHVlKSkgfHxcbiAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgICAgICAgb2JqZWN0W2tleV0gPSByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nLFxuICAgICAqIG11bHRpcGxlIHNvdXJjZXMsIGFuZCBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIHZhciBiYXNlQXNzaWduID0gbmF0aXZlQXNzaWduIHx8IGZ1bmN0aW9uKG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gc291cmNlID09IG51bGxcbiAgICAgICAgPyBvYmplY3RcbiAgICAgICAgOiBiYXNlQ29weShzb3VyY2UsIGdldFN5bWJvbHMoc291cmNlKSwgYmFzZUNvcHkoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCkpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hdGAgd2l0aG91dCBzdXBwb3J0IGZvciBzdHJpbmcgY29sbGVjdGlvbnNcbiAgICAgKiBhbmQgaW5kaXZpZHVhbCBrZXkgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtudW1iZXJbXXxzdHJpbmdbXX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIG9yIGluZGV4ZXMgb2YgZWxlbWVudHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBwaWNrZWQgZWxlbWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUF0KGNvbGxlY3Rpb24sIHByb3BzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpc05pbCA9IGNvbGxlY3Rpb24gPT0gbnVsbCxcbiAgICAgICAgICBpc0FyciA9ICFpc05pbCAmJiBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSxcbiAgICAgICAgICBsZW5ndGggPSBpc0FyciAmJiBjb2xsZWN0aW9uLmxlbmd0aCxcbiAgICAgICAgICBwcm9wc0xlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShwcm9wc0xlbmd0aCk7XG5cbiAgICAgIHdoaWxlKCsraW5kZXggPCBwcm9wc0xlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgICBpZiAoaXNBcnIpIHtcbiAgICAgICAgICByZXN1bHRbaW5kZXhdID0gaXNJbmRleChrZXksIGxlbmd0aCkgPyBjb2xsZWN0aW9uW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0W2luZGV4XSA9IGlzTmlsID8gdW5kZWZpbmVkIDogY29sbGVjdGlvbltrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcGllcyBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb20uXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGNvcHkuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNvcHkoc291cmNlLCBwcm9wcywgb2JqZWN0KSB7XG4gICAgICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgICBvYmplY3Rba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jYWxsYmFja2Agd2hpY2ggc3VwcG9ydHMgc3BlY2lmeWluZyB0aGVcbiAgICAgKiBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IFtmdW5jPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGEgY2FsbGJhY2suXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyZ0NvdW50XSBUaGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNhbGxiYWNrLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VDYWxsYmFjayhmdW5jLCB0aGlzQXJnLCBhcmdDb3VudCkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgZnVuYztcbiAgICAgIGlmICh0eXBlID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNBcmcgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gZnVuY1xuICAgICAgICAgIDogYmluZENhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KTtcbiAgICAgIH1cbiAgICAgIGlmIChmdW5jID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGlkZW50aXR5O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VNYXRjaGVzKGZ1bmMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNBcmcgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHByb3BlcnR5KGZ1bmMpXG4gICAgICAgIDogYmFzZU1hdGNoZXNQcm9wZXJ0eShmdW5jLCB0aGlzQXJnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jbG9uZWAgd2l0aG91dCBzdXBwb3J0IGZvciBhcmd1bWVudCBqdWdnbGluZ1xuICAgICAqIGFuZCBgdGhpc2AgYmluZGluZyBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSBUaGUga2V5IG9mIGB2YWx1ZWAuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgYHZhbHVlYCBiZWxvbmdzIHRvLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0E9W11dIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQj1bXV0gQXNzb2NpYXRlcyBjbG9uZXMgd2l0aCBzb3VyY2UgY291bnRlcnBhcnRzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNsb25lKHZhbHVlLCBpc0RlZXAsIGN1c3RvbWl6ZXIsIGtleSwgb2JqZWN0LCBzdGFja0EsIHN0YWNrQikge1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgIHJlc3VsdCA9IG9iamVjdCA/IGN1c3RvbWl6ZXIodmFsdWUsIGtleSwgb2JqZWN0KSA6IGN1c3RvbWl6ZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcbiAgICAgIGlmIChpc0Fycikge1xuICAgICAgICByZXN1bHQgPSBpbml0Q2xvbmVBcnJheSh2YWx1ZSk7XG4gICAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5Q29weSh2YWx1ZSwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHRhZyA9IG9ialRvU3RyaW5nLmNhbGwodmFsdWUpLFxuICAgICAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWc7XG5cbiAgICAgICAgaWYgKHRhZyA9PSBvYmplY3RUYWcgfHwgdGFnID09IGFyZ3NUYWcgfHwgKGlzRnVuYyAmJiAhb2JqZWN0KSkge1xuICAgICAgICAgIGlmIChpc0hvc3RPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gaW5pdENsb25lT2JqZWN0KGlzRnVuYyA/IHt9IDogdmFsdWUpO1xuICAgICAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZUFzc2lnbihyZXN1bHQsIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNsb25lYWJsZVRhZ3NbdGFnXVxuICAgICAgICAgICAgPyBpbml0Q2xvbmVCeVRhZyh2YWx1ZSwgdGFnLCBpc0RlZXApXG4gICAgICAgICAgICA6IChvYmplY3QgPyB2YWx1ZSA6IHt9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQ2hlY2sgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgYW5kIHJldHVybiBjb3JyZXNwb25kaW5nIGNsb25lLlxuICAgICAgc3RhY2tBIHx8IChzdGFja0EgPSBbXSk7XG4gICAgICBzdGFja0IgfHwgKHN0YWNrQiA9IFtdKTtcblxuICAgICAgdmFyIGxlbmd0aCA9IHN0YWNrQS5sZW5ndGg7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgaWYgKHN0YWNrQVtsZW5ndGhdID09IHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YWNrQltsZW5ndGhdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBBZGQgdGhlIHNvdXJjZSB2YWx1ZSB0byB0aGUgc3RhY2sgb2YgdHJhdmVyc2VkIG9iamVjdHMgYW5kIGFzc29jaWF0ZSBpdCB3aXRoIGl0cyBjbG9uZS5cbiAgICAgIHN0YWNrQS5wdXNoKHZhbHVlKTtcbiAgICAgIHN0YWNrQi5wdXNoKHJlc3VsdCk7XG5cbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IHBvcHVsYXRlIGNsb25lIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAoaXNBcnIgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKSh2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IGJhc2VDbG9uZShzdWJWYWx1ZSwgaXNEZWVwLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICAgICAqIHByb3BlcnRpZXMgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvdG90eXBlIFRoZSBvYmplY3QgdG8gaW5oZXJpdCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICovXG4gICAgdmFyIGJhc2VDcmVhdGUgPSAoZnVuY3Rpb24oKSB7XG4gICAgICBmdW5jdGlvbiBPYmplY3QoKSB7fVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHByb3RvdHlwZSkge1xuICAgICAgICBpZiAoaXNPYmplY3QocHJvdG90eXBlKSkge1xuICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUgPSBwcm90b3R5cGU7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBPYmplY3Q7XG4gICAgICAgICAgT2JqZWN0LnByb3RvdHlwZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCBjb250ZXh0Lk9iamVjdCgpO1xuICAgICAgfTtcbiAgICB9KCkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZGVsYXlgIGFuZCBgXy5kZWZlcmAgd2hpY2ggYWNjZXB0cyBhbiBpbmRleFxuICAgICAqIG9mIHdoZXJlIHRvIHNsaWNlIHRoZSBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlbGF5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFyZ3MgVGhlIGFyZ3VtZW50cyBwcm92aWRlIHRvIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0aW1lciBpZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRGVsYXkoZnVuYywgd2FpdCwgYXJncykge1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGZ1bmMuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTsgfSwgd2FpdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZGlmZmVyZW5jZWAgd2hpY2ggYWNjZXB0cyBhIHNpbmdsZSBhcnJheVxuICAgICAqIG9mIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaW5kZXhPZiA9IGdldEluZGV4T2YoKSxcbiAgICAgICAgICBpc0NvbW1vbiA9IGluZGV4T2YgPT0gYmFzZUluZGV4T2YsXG4gICAgICAgICAgY2FjaGUgPSAoaXNDb21tb24gJiYgdmFsdWVzLmxlbmd0aCA+PSAyMDApID8gY3JlYXRlQ2FjaGUodmFsdWVzKSA6IG51bGwsXG4gICAgICAgICAgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmxlbmd0aDtcblxuICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGluZGV4T2YgPSBjYWNoZUluZGV4T2Y7XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIHZhbHVlcyA9IGNhY2hlO1xuICAgICAgfVxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgaWYgKGlzQ29tbW9uICYmIHZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICAgIHZhciB2YWx1ZXNJbmRleCA9IHZhbHVlc0xlbmd0aDtcbiAgICAgICAgICB3aGlsZSAodmFsdWVzSW5kZXgtLSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlc1t2YWx1ZXNJbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaW5kZXhPZih2YWx1ZXMsIHZhbHVlLCAwKSA8IDApIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yRWFjaGAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFja1xuICAgICAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdHxzdHJpbmd9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqL1xuICAgIHZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yRWFjaFJpZ2h0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fHN0cmluZ30gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICovXG4gICAgdmFyIGJhc2VFYWNoUmlnaHQgPSBjcmVhdGVCYXNlRWFjaChiYXNlRm9yT3duUmlnaHQsIHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZXZlcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUV2ZXJ5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHRydWU7XG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0ID0gISFwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maWxsYCB3aXRob3V0IGFuIGl0ZXJhdGVlIGNhbGwgZ3VhcmQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWxsLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGZpbGwgYGFycmF5YCB3aXRoLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiAoK3N0YXJ0IHx8IDApO1xuICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiAobGVuZ3RoICsgc3RhcnQpO1xuICAgICAgfVxuICAgICAgZW5kID0gKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA+IGxlbmd0aCkgPyBsZW5ndGggOiAoK2VuZCB8fCAwKTtcbiAgICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIGVuZCArPSBsZW5ndGg7XG4gICAgICB9XG4gICAgICBsZW5ndGggPSBzdGFydCA+IGVuZCA/IDAgOiAoZW5kID4+PiAwKTtcbiAgICAgIHN0YXJ0ID4+Pj0gMDtcblxuICAgICAgd2hpbGUgKHN0YXJ0IDwgbGVuZ3RoKSB7XG4gICAgICAgIGFycmF5W3N0YXJ0KytdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmlsdGVyYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kYCwgYF8uZmluZExhc3RgLCBgXy5maW5kS2V5YCwgYW5kIGBfLmZpbmRMYXN0S2V5YCxcbiAgICAgKiB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLCB3aGljaCBpdGVyYXRlc1xuICAgICAqIG92ZXIgYGNvbGxlY3Rpb25gIHVzaW5nIHRoZSBwcm92aWRlZCBgZWFjaEZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYGNvbGxlY3Rpb25gLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEtleV0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGtleSBvZiB0aGUgZm91bmQgZWxlbWVudFxuICAgICAqICBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50IGl0c2VsZi5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZm91bmQgZWxlbWVudCBvciBpdHMga2V5LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGaW5kKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZWFjaEZ1bmMsIHJldEtleSkge1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHJldEtleSA/IGtleSA6IHZhbHVlO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZsYXR0ZW5gIHdpdGggYWRkZWQgc3VwcG9ydCBmb3IgcmVzdHJpY3RpbmdcbiAgICAgKiBmbGF0dGVuaW5nIGFuZCBzcGVjaWZ5aW5nIHRoZSBzdGFydCBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBmbGF0dGVuLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzU3RyaWN0XSBSZXN0cmljdCBmbGF0dGVuaW5nIHRvIGFycmF5cy1saWtlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGbGF0dGVuKGFycmF5LCBpc0RlZXAsIGlzU3RyaWN0KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSkgJiZcbiAgICAgICAgICAgIChpc1N0cmljdCB8fCBpc0FycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XG4gICAgICAgICAgaWYgKGlzRGVlcCkge1xuICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmxhdHRlbiBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgICAgIHZhbHVlID0gYmFzZUZsYXR0ZW4odmFsdWUsIGlzRGVlcCwgaXNTdHJpY3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdmFsSW5kZXggPSAtMSxcbiAgICAgICAgICAgICAgdmFsTGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuXG4gICAgICAgICAgd2hpbGUgKCsrdmFsSW5kZXggPCB2YWxMZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdFsrK3Jlc0luZGV4XSA9IHZhbHVlW3ZhbEluZGV4XTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzU3RyaWN0KSB7XG4gICAgICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGJhc2VGb3JJbmAgYW5kIGBiYXNlRm9yT3duYCB3aGljaCBpdGVyYXRlc1xuICAgICAqIG92ZXIgYG9iamVjdGAgcHJvcGVydGllcyByZXR1cm5lZCBieSBga2V5c0Z1bmNgIGludm9raW5nIGBpdGVyYXRlZWAgZm9yXG4gICAgICogZWFjaCBwcm9wZXJ0eS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5XG4gICAgICogcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgdmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGJhc2VGb3JgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgcHJvcGVydGllc1xuICAgICAqIGluIHRoZSBvcHBvc2l0ZSBvcmRlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUZvclJpZ2h0ID0gY3JlYXRlQmFzZUZvcih0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckluYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGb3JJbihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzSW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvck93bmAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFja1xuICAgICAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlRm9yKG9iamVjdCwgaXRlcmF0ZWUsIGtleXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvck93blJpZ2h0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGb3JPd25SaWdodChvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gYmFzZUZvclJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUsIGtleXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZ1bmN0aW9uc2Agd2hpY2ggY3JlYXRlcyBhbiBhcnJheSBvZlxuICAgICAqIGBvYmplY3RgIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZpbHRlcmVkIGZyb20gdGhvc2UgcHJvdmlkZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBmaWx0ZXIuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgcHJvcGVydHkgbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZ1bmN0aW9ucyhvYmplY3QsIHByb3BzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24ob2JqZWN0W2tleV0pKSB7XG4gICAgICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0ga2V5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRgIHdpdGhvdXQgc3VwcG9ydCBmb3Igc3RyaW5nIHBhdGhzXG4gICAgICogYW5kIGRlZmF1bHQgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcGF0aEtleV0gVGhlIGtleSByZXByZXNlbnRhdGlvbiBvZiBwYXRoLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCwgcGF0aEtleSkge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgICBpZiAocGF0aEtleSAhPT0gdW5kZWZpbmVkICYmIHBhdGhLZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgIHBhdGggPSBbcGF0aEtleV07XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKG9iamVjdCAhPSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KVtwYXRoW2luZGV4XV07XG4gICAgICB9XG4gICAgICByZXR1cm4gKGluZGV4ICYmIGluZGV4ID09IGxlbmd0aCkgPyBvYmplY3QgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNFcXVhbGAgd2l0aG91dCBzdXBwb3J0IGZvciBgdGhpc2AgYmluZGluZ1xuICAgICAqIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0FdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICAgICAgLy8gRXhpdCBlYXJseSBmb3IgaWRlbnRpY2FsIHZhbHVlcy5cbiAgICAgIGlmICh2YWx1ZSA9PT0gb3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgdmFsVHlwZSA9IHR5cGVvZiB2YWx1ZSxcbiAgICAgICAgICBvdGhUeXBlID0gdHlwZW9mIG90aGVyO1xuXG4gICAgICAvLyBFeGl0IGVhcmx5IGZvciB1bmxpa2UgcHJpbWl0aXZlIHZhbHVlcy5cbiAgICAgIGlmICgodmFsVHlwZSAhPSAnZnVuY3Rpb24nICYmIHZhbFR5cGUgIT0gJ29iamVjdCcgJiYgb3RoVHlwZSAhPSAnZnVuY3Rpb24nICYmIG90aFR5cGUgIT0gJ29iamVjdCcpIHx8XG4gICAgICAgICAgdmFsdWUgPT0gbnVsbCB8fCBvdGhlciA9PSBudWxsKSB7XG4gICAgICAgIC8vIFJldHVybiBgZmFsc2VgIHVubGVzcyBib3RoIHZhbHVlcyBhcmUgYE5hTmAuXG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsRGVlcCh2YWx1ZSwgb3RoZXIsIGJhc2VJc0VxdWFsLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbGAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xuICAgICAqIGRlZXAgY29tcGFyaXNvbnMgYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBlbmFibGluZyBvYmplY3RzIHdpdGggY2lyY3VsYXJcbiAgICAgKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0xvb3NlXSBTcGVjaWZ5IHBlcmZvcm1pbmcgcGFydGlhbCBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBPVtdXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCPVtdXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICAgICAgdmFyIG9iaklzQXJyID0gaXNBcnJheShvYmplY3QpLFxuICAgICAgICAgIG90aElzQXJyID0gaXNBcnJheShvdGhlciksXG4gICAgICAgICAgb2JqVGFnID0gYXJyYXlUYWcsXG4gICAgICAgICAgb3RoVGFnID0gYXJyYXlUYWc7XG5cbiAgICAgIGlmICghb2JqSXNBcnIpIHtcbiAgICAgICAgb2JqVGFnID0gb2JqVG9TdHJpbmcuY2FsbChvYmplY3QpO1xuICAgICAgICBpZiAob2JqVGFnID09IGFyZ3NUYWcpIHtcbiAgICAgICAgICBvYmpUYWcgPSBvYmplY3RUYWc7XG4gICAgICAgIH0gZWxzZSBpZiAob2JqVGFnICE9IG9iamVjdFRhZykge1xuICAgICAgICAgIG9iaklzQXJyID0gaXNUeXBlZEFycmF5KG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghb3RoSXNBcnIpIHtcbiAgICAgICAgb3RoVGFnID0gb2JqVG9TdHJpbmcuY2FsbChvdGhlcik7XG4gICAgICAgIGlmIChvdGhUYWcgPT0gYXJnc1RhZykge1xuICAgICAgICAgIG90aFRhZyA9IG9iamVjdFRhZztcbiAgICAgICAgfSBlbHNlIGlmIChvdGhUYWcgIT0gb2JqZWN0VGFnKSB7XG4gICAgICAgICAgb3RoSXNBcnIgPSBpc1R5cGVkQXJyYXkob3RoZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnICYmICFpc0hvc3RPYmplY3Qob2JqZWN0KSxcbiAgICAgICAgICBvdGhJc09iaiA9IG90aFRhZyA9PSBvYmplY3RUYWcgJiYgIWlzSG9zdE9iamVjdChvdGhlciksXG4gICAgICAgICAgaXNTYW1lVGFnID0gb2JqVGFnID09IG90aFRhZztcblxuICAgICAgaWYgKGlzU2FtZVRhZyAmJiAhKG9iaklzQXJyIHx8IG9iaklzT2JqKSkge1xuICAgICAgICByZXR1cm4gZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCBvYmpUYWcpO1xuICAgICAgfVxuICAgICAgaWYgKCFpc0xvb3NlKSB7XG4gICAgICAgIHZhciB2YWxXcmFwcGVkID0gb2JqSXNPYmogJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdfX3dyYXBwZWRfXycpLFxuICAgICAgICAgICAgb3RoV3JhcHBlZCA9IG90aElzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsICdfX3dyYXBwZWRfXycpO1xuXG4gICAgICAgIGlmICh2YWxXcmFwcGVkIHx8IG90aFdyYXBwZWQpIHtcbiAgICAgICAgICByZXR1cm4gZXF1YWxGdW5jKHZhbFdyYXBwZWQgPyBvYmplY3QudmFsdWUoKSA6IG9iamVjdCwgb3RoV3JhcHBlZCA/IG90aGVyLnZhbHVlKCkgOiBvdGhlciwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWlzU2FtZVRhZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBBc3N1bWUgY3ljbGljIHZhbHVlcyBhcmUgZXF1YWwuXG4gICAgICAvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBkZXRlY3RpbmcgY2lyY3VsYXIgcmVmZXJlbmNlcyBzZWUgaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyNKTy5cbiAgICAgIHN0YWNrQSB8fCAoc3RhY2tBID0gW10pO1xuICAgICAgc3RhY2tCIHx8IChzdGFja0IgPSBbXSk7XG5cbiAgICAgIHZhciBsZW5ndGggPSBzdGFja0EubGVuZ3RoO1xuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGlmIChzdGFja0FbbGVuZ3RoXSA9PSBvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gc3RhY2tCW2xlbmd0aF0gPT0gb3RoZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEFkZCBgb2JqZWN0YCBhbmQgYG90aGVyYCB0byB0aGUgc3RhY2sgb2YgdHJhdmVyc2VkIG9iamVjdHMuXG4gICAgICBzdGFja0EucHVzaChvYmplY3QpO1xuICAgICAgc3RhY2tCLnB1c2gob3RoZXIpO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gKG9iaklzQXJyID8gZXF1YWxBcnJheXMgOiBlcXVhbE9iamVjdHMpKG9iamVjdCwgb3RoZXIsIGVxdWFsRnVuYywgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuXG4gICAgICBzdGFja0EucG9wKCk7XG4gICAgICBzdGFja0IucG9wKCk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNNYXRjaGAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFja1xuICAgICAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgc291cmNlIHByb3BlcnR5IG5hbWVzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgc291cmNlIHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzdHJpY3RDb21wYXJlRmxhZ3MgU3RyaWN0IGNvbXBhcmlzb24gZmxhZ3MgZm9yIHNvdXJjZSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaW5nIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGlzIGEgbWF0Y2gsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNNYXRjaChvYmplY3QsIHByb3BzLCB2YWx1ZXMsIHN0cmljdENvbXBhcmVGbGFncywgY3VzdG9taXplcikge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIG5vQ3VzdG9taXplciA9ICFjdXN0b21pemVyO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBpZiAoKG5vQ3VzdG9taXplciAmJiBzdHJpY3RDb21wYXJlRmxhZ3NbaW5kZXhdKVxuICAgICAgICAgICAgICA/IHZhbHVlc1tpbmRleF0gIT09IG9iamVjdFtwcm9wc1tpbmRleF1dXG4gICAgICAgICAgICAgIDogIShwcm9wc1tpbmRleF0gaW4gb2JqZWN0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpbmRleCA9IC0xO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XSxcbiAgICAgICAgICAgIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgICBzcmNWYWx1ZSA9IHZhbHVlc1tpbmRleF07XG5cbiAgICAgICAgaWYgKG5vQ3VzdG9taXplciAmJiBzdHJpY3RDb21wYXJlRmxhZ3NbaW5kZXhdKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IG9ialZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBvYmplY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgY3VzdG9taXplciwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXBgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2sgc2hvcnRoYW5kc1xuICAgICAqIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNgIHdoaWNoIGRvZXMgbm90IGNsb25lIGBzb3VyY2VgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXRjaGVzKHNvdXJjZSkge1xuICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGNvbnN0YW50KHRydWUpO1xuICAgICAgfVxuICAgICAgaWYgKGxlbmd0aCA9PSAxKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1swXSxcbiAgICAgICAgICAgIHZhbHVlID0gc291cmNlW2tleV07XG5cbiAgICAgICAgaWYgKGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3Rba2V5XSA9PT0gdmFsdWUgJiYgKHZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBvYmplY3QpKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdmFsdWVzID0gQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICBzdHJpY3RDb21wYXJlRmxhZ3MgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFsdWUgPSBzb3VyY2VbcHJvcHNbbGVuZ3RoXV07XG4gICAgICAgIHZhbHVlc1tsZW5ndGhdID0gdmFsdWU7XG4gICAgICAgIHN0cmljdENvbXBhcmVGbGFnc1tsZW5ndGhdID0gaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGJhc2VJc01hdGNoKHRvT2JqZWN0KG9iamVjdCksIHByb3BzLCB2YWx1ZXMsIHN0cmljdENvbXBhcmVGbGFncyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNQcm9wZXJ0eWAgd2hpY2ggZG9lcyBub3Qgd2hpY2ggZG9lc1xuICAgICAqIG5vdCBjbG9uZSBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU1hdGNoZXNQcm9wZXJ0eShwYXRoLCB2YWx1ZSkge1xuICAgICAgdmFyIGlzQXJyID0gaXNBcnJheShwYXRoKSxcbiAgICAgICAgICBpc0NvbW1vbiA9IGlzS2V5KHBhdGgpICYmIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSksXG4gICAgICAgICAgcGF0aEtleSA9IChwYXRoICsgJycpO1xuXG4gICAgICBwYXRoID0gdG9QYXRoKHBhdGgpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleSA9IHBhdGhLZXk7XG4gICAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgICAgIGlmICgoaXNBcnIgfHwgIWlzQ29tbW9uKSAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICAgICAgb2JqZWN0ID0gcGF0aC5sZW5ndGggPT0gMSA/IG9iamVjdCA6IGJhc2VHZXQob2JqZWN0LCBiYXNlU2xpY2UocGF0aCwgMCwgLTEpKTtcbiAgICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAga2V5ID0gbGFzdChwYXRoKTtcbiAgICAgICAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmplY3Rba2V5XSA9PT0gdmFsdWVcbiAgICAgICAgICA/ICh2YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gb2JqZWN0KSlcbiAgICAgICAgICA6IGJhc2VJc0VxdWFsKHZhbHVlLCBvYmplY3Rba2V5XSwgbnVsbCwgdHJ1ZSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lcmdlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nLFxuICAgICAqIG11bHRpcGxlIHNvdXJjZXMsIGFuZCBgdGhpc2AgYmluZGluZyBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBtZXJnaW5nIHByb3BlcnRpZXMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCPVtdXSBBc3NvY2lhdGVzIHZhbHVlcyB3aXRoIHNvdXJjZSBjb3VudGVycGFydHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIsIHN0YWNrQSwgc3RhY2tCKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH1cbiAgICAgIHZhciBpc1NyY0FyciA9IGlzQXJyYXlMaWtlKHNvdXJjZSkgJiYgKGlzQXJyYXkoc291cmNlKSB8fCBpc1R5cGVkQXJyYXkoc291cmNlKSk7XG4gICAgICBpZiAoIWlzU3JjQXJyKSB7XG4gICAgICAgIHZhciBwcm9wcyA9IGtleXMoc291cmNlKTtcbiAgICAgICAgcHVzaC5hcHBseShwcm9wcywgZ2V0U3ltYm9scyhzb3VyY2UpKTtcbiAgICAgIH1cbiAgICAgIGFycmF5RWFjaChwcm9wcyB8fCBzb3VyY2UsIGZ1bmN0aW9uKHNyY1ZhbHVlLCBrZXkpIHtcbiAgICAgICAgaWYgKHByb3BzKSB7XG4gICAgICAgICAga2V5ID0gc3JjVmFsdWU7XG4gICAgICAgICAgc3JjVmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNPYmplY3RMaWtlKHNyY1ZhbHVlKSkge1xuICAgICAgICAgIHN0YWNrQSB8fCAoc3RhY2tBID0gW10pO1xuICAgICAgICAgIHN0YWNrQiB8fCAoc3RhY2tCID0gW10pO1xuICAgICAgICAgIGJhc2VNZXJnZURlZXAob2JqZWN0LCBzb3VyY2UsIGtleSwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFja0EsIHN0YWNrQik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgICAgIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKHZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGlzQ29tbW9uID0gcmVzdWx0ID09PSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHNyY1ZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoKGlzU3JjQXJyIHx8IHJlc3VsdCAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgICAgICAgICAoaXNDb21tb24gfHwgKHJlc3VsdCA9PT0gcmVzdWx0ID8gKHJlc3VsdCAhPT0gdmFsdWUpIDogKHZhbHVlID09PSB2YWx1ZSkpKSkge1xuICAgICAgICAgICAgb2JqZWN0W2tleV0gPSByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlTWVyZ2VgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAgICAgKiBkZWVwIG1lcmdlcyBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGVuYWJsaW5nIG9iamVjdHMgd2l0aCBjaXJjdWxhclxuICAgICAqIHJlZmVyZW5jZXMgdG8gYmUgbWVyZ2VkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIG1lcmdlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG1lcmdlRnVuYyBUaGUgZnVuY3Rpb24gdG8gbWVyZ2UgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIG1lcmdpbmcgcHJvcGVydGllcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBPVtdXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0I9W11dIEFzc29jaWF0ZXMgdmFsdWVzIHdpdGggc291cmNlIGNvdW50ZXJwYXJ0cy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWVyZ2VEZWVwKG9iamVjdCwgc291cmNlLCBrZXksIG1lcmdlRnVuYywgY3VzdG9taXplciwgc3RhY2tBLCBzdGFja0IpIHtcbiAgICAgIHZhciBsZW5ndGggPSBzdGFja0EubGVuZ3RoLFxuICAgICAgICAgIHNyY1ZhbHVlID0gc291cmNlW2tleV07XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBpZiAoc3RhY2tBW2xlbmd0aF0gPT0gc3JjVmFsdWUpIHtcbiAgICAgICAgICBvYmplY3Rba2V5XSA9IHN0YWNrQltsZW5ndGhdO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIHZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIodmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBpc0NvbW1vbiA9IHJlc3VsdCA9PT0gdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgcmVzdWx0ID0gc3JjVmFsdWU7XG4gICAgICAgIGlmIChpc0FycmF5TGlrZShzcmNWYWx1ZSkgJiYgKGlzQXJyYXkoc3JjVmFsdWUpIHx8IGlzVHlwZWRBcnJheShzcmNWYWx1ZSkpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgIDogKGlzQXJyYXlMaWtlKHZhbHVlKSA/IGFycmF5Q29weSh2YWx1ZSkgOiBbXSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNQbGFpbk9iamVjdChzcmNWYWx1ZSkgfHwgaXNBcmd1bWVudHMoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gaXNBcmd1bWVudHModmFsdWUpXG4gICAgICAgICAgICA/IHRvUGxhaW5PYmplY3QodmFsdWUpXG4gICAgICAgICAgICA6IChpc1BsYWluT2JqZWN0KHZhbHVlKSA/IHZhbHVlIDoge30pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEFkZCB0aGUgc291cmNlIHZhbHVlIHRvIHRoZSBzdGFjayBvZiB0cmF2ZXJzZWQgb2JqZWN0cyBhbmQgYXNzb2NpYXRlXG4gICAgICAvLyBpdCB3aXRoIGl0cyBtZXJnZWQgdmFsdWUuXG4gICAgICBzdGFja0EucHVzaChzcmNWYWx1ZSk7XG4gICAgICBzdGFja0IucHVzaChyZXN1bHQpO1xuXG4gICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgbWVyZ2Ugb2JqZWN0cyBhbmQgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIG9iamVjdFtrZXldID0gbWVyZ2VGdW5jKHJlc3VsdCwgc3JjVmFsdWUsIGN1c3RvbWl6ZXIsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSByZXN1bHQgPyAocmVzdWx0ICE9PSB2YWx1ZSkgOiAodmFsdWUgPT09IHZhbHVlKSkge1xuICAgICAgICBvYmplY3Rba2V5XSA9IHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wcm9wZXJ0eWAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUHJvcGVydHkoa2V5KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHRvT2JqZWN0KG9iamVjdClba2V5XTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUHJvcGVydHlgIHdoaWNoIHN1cHBvcnRzIGRlZXAgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVByb3BlcnR5RGVlcChwYXRoKSB7XG4gICAgICB2YXIgcGF0aEtleSA9IChwYXRoICsgJycpO1xuICAgICAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VHZXQob2JqZWN0LCBwYXRoLCBwYXRoS2V5KTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHVsbEF0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWxcbiAgICAgKiBpbmRleCBhcmd1bWVudHMgYW5kIGNhcHR1cmluZyB0aGUgcmVtb3ZlZCBlbGVtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcltdfSBpbmRleGVzIFRoZSBpbmRleGVzIG9mIGVsZW1lbnRzIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUHVsbEF0KGFycmF5LCBpbmRleGVzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBpbmRleGVzLmxlbmd0aCA6IDA7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFyIGluZGV4ID0gcGFyc2VGbG9hdChpbmRleGVzW2xlbmd0aF0pO1xuICAgICAgICBpZiAoaW5kZXggIT0gcHJldmlvdXMgJiYgaXNJbmRleChpbmRleCkpIHtcbiAgICAgICAgICB2YXIgcHJldmlvdXMgPSBpbmRleDtcbiAgICAgICAgICBzcGxpY2UuY2FsbChhcnJheSwgaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmFuZG9tYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nXG4gICAgICogYW5kIHJldHVybmluZyBmbG9hdGluZy1wb2ludCBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbWluIFRoZSBtaW5pbXVtIHBvc3NpYmxlIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtYXggVGhlIG1heGltdW0gcG9zc2libGUgdmFsdWUuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcmFuZG9tIG51bWJlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUmFuZG9tKG1pbiwgbWF4KSB7XG4gICAgICByZXR1cm4gbWluICsgZmxvb3IobmF0aXZlUmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlZHVjZWAgYW5kIGBfLnJlZHVjZVJpZ2h0YCB3aXRob3V0IHN1cHBvcnRcbiAgICAgKiBmb3IgY2FsbGJhY2sgc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcsIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYGNvbGxlY3Rpb25gXG4gICAgICogdXNpbmcgdGhlIHByb3ZpZGVkIGBlYWNoRnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5pdEZyb21Db2xsZWN0aW9uIFNwZWNpZnkgdXNpbmcgdGhlIGZpcnN0IG9yIGxhc3QgZWxlbWVudFxuICAgICAqICBvZiBgY29sbGVjdGlvbmAgYXMgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBgY29sbGVjdGlvbmAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSZWR1Y2UoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0RnJvbUNvbGxlY3Rpb24sIGVhY2hGdW5jKSB7XG4gICAgICBlYWNoRnVuYyhjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgYWNjdW11bGF0b3IgPSBpbml0RnJvbUNvbGxlY3Rpb25cbiAgICAgICAgICA/IChpbml0RnJvbUNvbGxlY3Rpb24gPSBmYWxzZSwgdmFsdWUpXG4gICAgICAgICAgOiBpdGVyYXRlZShhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBzZXREYXRhYCB3aXRob3V0IHN1cHBvcnQgZm9yIGhvdCBsb29wIGRldGVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIG1ldGFkYXRhIHdpdGguXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIFRoZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBiYXNlU2V0RGF0YSA9ICFtZXRhTWFwID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBkYXRhKSB7XG4gICAgICBtZXRhTWFwLnNldChmdW5jLCBkYXRhKTtcbiAgICAgIHJldHVybiBmdW5jO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zbGljZWAgd2l0aG91dCBhbiBpdGVyYXRlZSBjYWxsIGd1YXJkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgc3RhcnQgPSBzdGFydCA9PSBudWxsID8gMCA6ICgrc3RhcnQgfHwgMCk7XG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IChsZW5ndGggKyBzdGFydCk7XG4gICAgICB9XG4gICAgICBlbmQgPSAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gbGVuZ3RoKSA/IGxlbmd0aCA6ICgrZW5kIHx8IDApO1xuICAgICAgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgZW5kICs9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGxlbmd0aCA9IHN0YXJ0ID4gZW5kID8gMCA6ICgoZW5kIC0gc3RhcnQpID4+PiAwKTtcbiAgICAgIHN0YXJ0ID4+Pj0gMDtcblxuICAgICAgdmFyIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gYXJyYXlbaW5kZXggKyBzdGFydF07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvbWVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2sgc2hvcnRoYW5kc1xuICAgICAqIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IGVsZW1lbnQgcGFzc2VzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU29tZShjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciByZXN1bHQ7XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICByZXN1bHQgPSBwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuICFyZXN1bHQ7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAhIXJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zb3J0QnlgIHdoaWNoIHVzZXMgYGNvbXBhcmVyYCB0byBkZWZpbmVcbiAgICAgKiB0aGUgc29ydCBvcmRlciBvZiBgYXJyYXlgIGFuZCByZXBsYWNlcyBjcml0ZXJpYSBvYmplY3RzIHdpdGggdGhlaXJcbiAgICAgKiBjb3JyZXNwb25kaW5nIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNvcnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY29tcGFyZXIgVGhlIGZ1bmN0aW9uIHRvIGRlZmluZSBzb3J0IG9yZGVyLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb3J0QnkoYXJyYXksIGNvbXBhcmVyKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBhcnJheS5zb3J0KGNvbXBhcmVyKTtcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBhcnJheVtsZW5ndGhdID0gYXJyYXlbbGVuZ3RoXS52YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zb3J0QnlPcmRlcmAgd2l0aG91dCBwYXJhbSBndWFyZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbltdfE9iamVjdFtdfHN0cmluZ1tdfSBpdGVyYXRlZXMgVGhlIGl0ZXJhdGVlcyB0byBzb3J0IGJ5LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbltdfSBvcmRlcnMgVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU29ydEJ5T3JkZXIoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMpIHtcbiAgICAgIHZhciBjYWxsYmFjayA9IGdldENhbGxiYWNrKCksXG4gICAgICAgICAgaW5kZXggPSAtMTtcblxuICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkgeyByZXR1cm4gY2FsbGJhY2soaXRlcmF0ZWUpOyB9KTtcblxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VNYXAoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgdmFyIGNyaXRlcmlhID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkgeyByZXR1cm4gaXRlcmF0ZWUodmFsdWUpOyB9KTtcbiAgICAgICAgcmV0dXJuIHsgJ2NyaXRlcmlhJzogY3JpdGVyaWEsICdpbmRleCc6ICsraW5kZXgsICd2YWx1ZSc6IHZhbHVlIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGJhc2VTb3J0QnkocmVzdWx0LCBmdW5jdGlvbihvYmplY3QsIG90aGVyKSB7XG4gICAgICAgIHJldHVybiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnN1bWAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzXG4gICAgICogYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3VtLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTdW0oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSAwO1xuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJlc3VsdCArPSAraXRlcmF0ZWUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB8fCAwO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuaXFgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2sgc2hvcnRoYW5kc1xuICAgICAqIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZS12YWx1ZS1mcmVlIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VVbmlxKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaW5kZXhPZiA9IGdldEluZGV4T2YoKSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgaXNDb21tb24gPSBpbmRleE9mID09IGJhc2VJbmRleE9mLFxuICAgICAgICAgIGlzTGFyZ2UgPSBpc0NvbW1vbiAmJiBsZW5ndGggPj0gMjAwLFxuICAgICAgICAgIHNlZW4gPSBpc0xhcmdlID8gY3JlYXRlQ2FjaGUoKSA6IG51bGwsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgIGluZGV4T2YgPSBjYWNoZUluZGV4T2Y7XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc0xhcmdlID0gZmFsc2U7XG4gICAgICAgIHNlZW4gPSBpdGVyYXRlZSA/IFtdIDogcmVzdWx0O1xuICAgICAgfVxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUsIGluZGV4LCBhcnJheSkgOiB2YWx1ZTtcblxuICAgICAgICBpZiAoaXNDb21tb24gJiYgdmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHNlZW5JbmRleCA9IHNlZW4ubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChzZWVuSW5kZXgtLSkge1xuICAgICAgICAgICAgaWYgKHNlZW5bc2VlbkluZGV4XSA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVyYXRlZSkge1xuICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGluZGV4T2Yoc2VlbiwgY29tcHV0ZWQsIDApIDwgMCkge1xuICAgICAgICAgIGlmIChpdGVyYXRlZSB8fCBpc0xhcmdlKSB7XG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udmFsdWVzYCBhbmQgYF8udmFsdWVzSW5gIHdoaWNoIGNyZWF0ZXMgYW5cbiAgICAgKiBhcnJheSBvZiBgb2JqZWN0YCBwcm9wZXJ0eSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXNcbiAgICAgKiBvZiBgcHJvcHNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGdldCB2YWx1ZXMgZm9yLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVmFsdWVzKG9iamVjdCwgcHJvcHMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gb2JqZWN0W3Byb3BzW2luZGV4XV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmRyb3BSaWdodFdoaWxlYCwgYF8uZHJvcFdoaWxlYCwgYF8udGFrZVJpZ2h0V2hpbGVgLFxuICAgICAqIGFuZCBgXy50YWtlV2hpbGVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2sgc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0Ryb3BdIFNwZWNpZnkgZHJvcHBpbmcgZWxlbWVudHMgaW5zdGVhZCBvZiB0YWtpbmcgdGhlbS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIGlzRHJvcCwgZnJvbVJpZ2h0KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTE7XG5cbiAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpICYmIHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHt9XG4gICAgICByZXR1cm4gaXNEcm9wXG4gICAgICAgID8gYmFzZVNsaWNlKGFycmF5LCAoZnJvbVJpZ2h0ID8gMCA6IGluZGV4KSwgKGZyb21SaWdodCA/IGluZGV4ICsgMSA6IGxlbmd0aCkpXG4gICAgICAgIDogYmFzZVNsaWNlKGFycmF5LCAoZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogMCksIChmcm9tUmlnaHQgPyBsZW5ndGggOiBpbmRleCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGB3cmFwcGVyVmFsdWVgIHdoaWNoIHJldHVybnMgdGhlIHJlc3VsdCBvZlxuICAgICAqIHBlcmZvcm1pbmcgYSBzZXF1ZW5jZSBvZiBhY3Rpb25zIG9uIHRoZSB1bndyYXBwZWQgYHZhbHVlYCwgd2hlcmUgZWFjaFxuICAgICAqIHN1Y2Nlc3NpdmUgYWN0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtBcnJheX0gYWN0aW9ucyBBY3Rpb25zIHRvIHBlZm9ybSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VXcmFwcGVyVmFsdWUodmFsdWUsIGFjdGlvbnMpIHtcbiAgICAgIHZhciByZXN1bHQgPSB2YWx1ZTtcbiAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQudmFsdWUoKTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFjdGlvbnMubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgYXJncyA9IFtyZXN1bHRdLFxuICAgICAgICAgICAgYWN0aW9uID0gYWN0aW9uc1tpbmRleF07XG5cbiAgICAgICAgcHVzaC5hcHBseShhcmdzLCBhY3Rpb24uYXJncyk7XG4gICAgICAgIHJlc3VsdCA9IGFjdGlvbi5mdW5jLmFwcGx5KGFjdGlvbi50aGlzQXJnLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBiaW5hcnkgc2VhcmNoIG9mIGBhcnJheWAgdG8gZGV0ZXJtaW5lIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgXG4gICAgICogc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0byBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEhpZ2hlc3RdIFNwZWNpZnkgcmV0dXJuaW5nIHRoZSBoaWdoZXN0IHF1YWxpZmllZCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmluYXJ5SW5kZXgoYXJyYXksIHZhbHVlLCByZXRIaWdoZXN0KSB7XG4gICAgICB2YXIgbG93ID0gMCxcbiAgICAgICAgICBoaWdoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiBsb3c7XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgICAgdmFyIG1pZCA9IChsb3cgKyBoaWdoKSA+Pj4gMSxcbiAgICAgICAgICAgICAgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xuXG4gICAgICAgICAgaWYgKHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpKSB7XG4gICAgICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoaWdoID0gbWlkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGlnaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiaW5hcnlJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaWRlbnRpdHksIHJldEhpZ2hlc3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmluYXJ5SW5kZXhgIGV4Y2VwdCB0aGF0IGl0IGludm9rZXMgYGl0ZXJhdGVlYCBmb3JcbiAgICAgKiBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyIHNvcnQgcmFua2luZy4gVGhlXG4gICAgICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmV0SGlnaGVzdF0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGhpZ2hlc3QgcXVhbGlmaWVkIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiaW5hcnlJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUsIHJldEhpZ2hlc3QpIHtcbiAgICAgIHZhbHVlID0gaXRlcmF0ZWUodmFsdWUpO1xuXG4gICAgICB2YXIgbG93ID0gMCxcbiAgICAgICAgICBoaWdoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwLFxuICAgICAgICAgIHZhbElzTmFOID0gdmFsdWUgIT09IHZhbHVlLFxuICAgICAgICAgIHZhbElzVW5kZWYgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICB2YXIgbWlkID0gZmxvb3IoKGxvdyArIGhpZ2gpIC8gMiksXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlKGFycmF5W21pZF0pLFxuICAgICAgICAgICAgaXNSZWZsZXhpdmUgPSBjb21wdXRlZCA9PT0gY29tcHV0ZWQ7XG5cbiAgICAgICAgaWYgKHZhbElzTmFOKSB7XG4gICAgICAgICAgdmFyIHNldExvdyA9IGlzUmVmbGV4aXZlIHx8IHJldEhpZ2hlc3Q7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNVbmRlZikge1xuICAgICAgICAgIHNldExvdyA9IGlzUmVmbGV4aXZlICYmIChyZXRIaWdoZXN0IHx8IGNvbXB1dGVkICE9PSB1bmRlZmluZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldExvdyA9IHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXRMb3cpIHtcbiAgICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuYXRpdmVNaW4oaGlnaCwgTUFYX0FSUkFZX0lOREVYKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VDYWxsYmFja2Agd2hpY2ggb25seSBzdXBwb3J0cyBgdGhpc2AgYmluZGluZ1xuICAgICAqIGFuZCBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBiaW5kLlxuICAgICAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJnQ291bnRdIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2FsbGJhY2suXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmluZENhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICB9XG4gICAgICBpZiAodGhpc0FyZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmdW5jO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChhcmdDb3VudCkge1xuICAgICAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUpO1xuICAgICAgICB9O1xuICAgICAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgICAgIH07XG4gICAgICAgIGNhc2UgNDogcmV0dXJuIGZ1bmN0aW9uKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICB9O1xuICAgICAgICBjYXNlIDU6IHJldHVybiBmdW5jdGlvbih2YWx1ZSwgb3RoZXIsIGtleSwgb2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBvdGhlciwga2V5LCBvYmplY3QsIHNvdXJjZSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgZ2l2ZW4gYXJyYXkgYnVmZmVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBidWZmZXIgVGhlIGFycmF5IGJ1ZmZlciB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYnVmZmVyQ2xvbmUoYnVmZmVyKSB7XG4gICAgICByZXR1cm4gYnVmZmVyU2xpY2UuY2FsbChidWZmZXIsIDApO1xuICAgIH1cbiAgICBpZiAoIWJ1ZmZlclNsaWNlKSB7XG4gICAgICAvLyBQaGFudG9tSlMgaGFzIGBBcnJheUJ1ZmZlcmAgYW5kIGBVaW50OEFycmF5YCBidXQgbm90IGBGbG9hdDY0QXJyYXlgLlxuICAgICAgYnVmZmVyQ2xvbmUgPSAhKEFycmF5QnVmZmVyICYmIFVpbnQ4QXJyYXkpID8gY29uc3RhbnQobnVsbCkgOiBmdW5jdGlvbihidWZmZXIpIHtcbiAgICAgICAgdmFyIGJ5dGVMZW5ndGggPSBidWZmZXIuYnl0ZUxlbmd0aCxcbiAgICAgICAgICAgIGZsb2F0TGVuZ3RoID0gRmxvYXQ2NEFycmF5ID8gZmxvb3IoYnl0ZUxlbmd0aCAvIEZMT0FUNjRfQllURVNfUEVSX0VMRU1FTlQpIDogMCxcbiAgICAgICAgICAgIG9mZnNldCA9IGZsb2F0TGVuZ3RoICogRkxPQVQ2NF9CWVRFU19QRVJfRUxFTUVOVCxcbiAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBBcnJheUJ1ZmZlcihieXRlTGVuZ3RoKTtcblxuICAgICAgICBpZiAoZmxvYXRMZW5ndGgpIHtcbiAgICAgICAgICB2YXIgdmlldyA9IG5ldyBGbG9hdDY0QXJyYXkocmVzdWx0LCAwLCBmbG9hdExlbmd0aCk7XG4gICAgICAgICAgdmlldy5zZXQobmV3IEZsb2F0NjRBcnJheShidWZmZXIsIDAsIGZsb2F0TGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJ5dGVMZW5ndGggIT0gb2Zmc2V0KSB7XG4gICAgICAgICAgdmlldyA9IG5ldyBVaW50OEFycmF5KHJlc3VsdCwgb2Zmc2V0KTtcbiAgICAgICAgICB2aWV3LnNldChuZXcgVWludDhBcnJheShidWZmZXIsIG9mZnNldCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgdGhhdCBpcyB0aGUgY29tcG9zaXRpb24gb2YgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLFxuICAgICAqIHBsYWNlaG9sZGVycywgYW5kIHByb3ZpZGVkIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGFycmF5IG9mIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGFyZ3MgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gICAgICogQHBhcmFtIHtBcnJheX0gaG9sZGVycyBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbXBvc2VkIGFyZ3VtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wb3NlQXJncyhhcmdzLCBwYXJ0aWFscywgaG9sZGVycykge1xuICAgICAgdmFyIGhvbGRlcnNMZW5ndGggPSBob2xkZXJzLmxlbmd0aCxcbiAgICAgICAgICBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICBhcmdzTGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksXG4gICAgICAgICAgbGVmdEluZGV4ID0gLTEsXG4gICAgICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShhcmdzTGVuZ3RoICsgbGVmdExlbmd0aCk7XG5cbiAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgaG9sZGVyc0xlbmd0aCkge1xuICAgICAgICByZXN1bHRbaG9sZGVyc1thcmdzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcbiAgICAgICAgcmVzdWx0W2xlZnRJbmRleCsrXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGNvbXBvc2VBcmdzYCBleGNlcHQgdGhhdCB0aGUgYXJndW1lbnRzIGNvbXBvc2l0aW9uXG4gICAgICogaXMgdGFpbG9yZWQgZm9yIGBfLnBhcnRpYWxSaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBhcmdzIFRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFydGlhbHMgVGhlIGFyZ3VtZW50cyB0byBhcHBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gICAgICogQHBhcmFtIHtBcnJheX0gaG9sZGVycyBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbXBvc2VkIGFyZ3VtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKSB7XG4gICAgICB2YXIgaG9sZGVyc0luZGV4ID0gLTEsXG4gICAgICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgICAgIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgIGFyZ3NMZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBob2xkZXJzTGVuZ3RoLCAwKSxcbiAgICAgICAgICByaWdodEluZGV4ID0gLTEsXG4gICAgICAgICAgcmlnaHRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkoYXJnc0xlbmd0aCArIHJpZ2h0TGVuZ3RoKTtcblxuICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgICAgICByZXN1bHRbYXJnc0luZGV4XSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgICAgIH1cbiAgICAgIHZhciBvZmZzZXQgPSBhcmdzSW5kZXg7XG4gICAgICB3aGlsZSAoKytyaWdodEluZGV4IDwgcmlnaHRMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W29mZnNldCArIHJpZ2h0SW5kZXhdID0gcGFydGlhbHNbcmlnaHRJbmRleF07XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytob2xkZXJzSW5kZXggPCBob2xkZXJzTGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtvZmZzZXQgKyBob2xkZXJzW2hvbGRlcnNJbmRleF1dID0gYXJnc1thcmdzSW5kZXgrK107XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGFnZ3JlZ2F0ZXMgYSBjb2xsZWN0aW9uLCBjcmVhdGluZyBhbiBhY2N1bXVsYXRvclxuICAgICAqIG9iamVjdCBjb21wb3NlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmcgZWFjaCBlbGVtZW50IGluIHRoZSBjb2xsZWN0aW9uXG4gICAgICogdGhyb3VnaCBhbiBpdGVyYXRlZS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY3JlYXRlIGBfLmNvdW50QnlgLCBgXy5ncm91cEJ5YCwgYF8uaW5kZXhCeWAsXG4gICAgICogYW5kIGBfLnBhcnRpdGlvbmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGtleXMgYW5kIHZhbHVlcyBvZiB0aGUgYWNjdW11bGF0b3Igb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpbml0aWFsaXplcl0gVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGFjY3VtdWxhdG9yIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhZ2dyZWdhdG9yIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUFnZ3JlZ2F0b3Ioc2V0dGVyLCBpbml0aWFsaXplcikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBpbml0aWFsaXplciA/IGluaXRpYWxpemVyKCkgOiB7fTtcbiAgICAgICAgaXRlcmF0ZWUgPSBnZXRDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgMyk7XG5cbiAgICAgICAgaWYgKGlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG5cbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gY29sbGVjdGlvbltpbmRleF07XG4gICAgICAgICAgICBzZXR0ZXIocmVzdWx0LCB2YWx1ZSwgaXRlcmF0ZWUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSwgY29sbGVjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIHNldHRlcihyZXN1bHQsIHZhbHVlLCBpdGVyYXRlZSh2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSwgY29sbGVjdGlvbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYXNzaWducyBwcm9wZXJ0aWVzIG9mIHNvdXJjZSBvYmplY3QocykgdG8gYSBnaXZlblxuICAgICAqIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY3JlYXRlIGBfLmFzc2lnbmAsIGBfLmRlZmF1bHRzYCwgYW5kIGBfLm1lcmdlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYXNzaWduZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgICAgIHJldHVybiByZXN0UGFyYW0oZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gb2JqZWN0ID09IG51bGwgPyAwIDogc291cmNlcy5sZW5ndGgsXG4gICAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoID4gMiAmJiBzb3VyY2VzW2xlbmd0aCAtIDJdLFxuICAgICAgICAgICAgZ3VhcmQgPSBsZW5ndGggPiAyICYmIHNvdXJjZXNbMl0sXG4gICAgICAgICAgICB0aGlzQXJnID0gbGVuZ3RoID4gMSAmJiBzb3VyY2VzW2xlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY3VzdG9taXplciA9IGJpbmRDYWxsYmFjayhjdXN0b21pemVyLCB0aGlzQXJnLCA1KTtcbiAgICAgICAgICBsZW5ndGggLT0gMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gdHlwZW9mIHRoaXNBcmcgPT0gJ2Z1bmN0aW9uJyA/IHRoaXNBcmcgOiBudWxsO1xuICAgICAgICAgIGxlbmd0aCAtPSAoY3VzdG9taXplciA/IDEgOiAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc291cmNlc1swXSwgc291cmNlc1sxXSwgZ3VhcmQpKSB7XG4gICAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyBudWxsIDogY3VzdG9taXplcjtcbiAgICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xuICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIGFzc2lnbmVyKG9iamVjdCwgc291cmNlLCBjdXN0b21pemVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgYmFzZUVhY2hgIG9yIGBiYXNlRWFjaFJpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhIGNvbGxlY3Rpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRWFjaChlYWNoRnVuYywgZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24gPyBnZXRMZW5ndGgoY29sbGVjdGlvbikgOiAwO1xuICAgICAgICBpZiAoIWlzTGVuZ3RoKGxlbmd0aCkpIHtcbiAgICAgICAgICByZXR1cm4gZWFjaEZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xLFxuICAgICAgICAgICAgaXRlcmFibGUgPSB0b09iamVjdChjb2xsZWN0aW9uKTtcblxuICAgICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtpbmRleF0sIGluZGV4LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBiYXNlIGZ1bmN0aW9uIGZvciBgXy5mb3JJbmAgb3IgYF8uZm9ySW5SaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzRnVuYykge1xuICAgICAgICB2YXIgaXRlcmFibGUgPSB0b09iamVjdChvYmplY3QpLFxuICAgICAgICAgICAgcHJvcHMgPSBrZXlzRnVuYyhvYmplY3QpLFxuICAgICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMTtcblxuICAgICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCBhbmQgaW52b2tlcyBpdCB3aXRoIHRoZSBgdGhpc2BcbiAgICAgKiBiaW5kaW5nIG9mIGB0aGlzQXJnYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYmluZC5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJvdW5kIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJpbmRXcmFwcGVyKGZ1bmMsIHRoaXNBcmcpIHtcbiAgICAgIHZhciBDdG9yID0gY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG5cbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzQXJnLCBhcmd1bWVudHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBTZXRgIGNhY2hlIG9iamVjdCB0byBvcHRpbWl6ZSBsaW5lYXIgc2VhcmNoZXMgb2YgbGFyZ2UgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNhY2hlLlxuICAgICAqIEByZXR1cm5zIHtudWxsfE9iamVjdH0gUmV0dXJucyB0aGUgbmV3IGNhY2hlIG9iamVjdCBpZiBgU2V0YCBpcyBzdXBwb3J0ZWQsIGVsc2UgYG51bGxgLlxuICAgICAqL1xuICAgIHZhciBjcmVhdGVDYWNoZSA9ICEobmF0aXZlQ3JlYXRlICYmIFNldCkgPyBjb25zdGFudChudWxsKSA6IGZ1bmN0aW9uKHZhbHVlcykge1xuICAgICAgcmV0dXJuIG5ldyBTZXRDYWNoZSh2YWx1ZXMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBjb21wb3VuZCB3b3JkcyBvdXQgb2YgdGhlIHdvcmRzIGluIGFcbiAgICAgKiBnaXZlbiBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBjb21iaW5lIGVhY2ggd29yZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb21wb3VuZGVyIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvdW5kZXIoY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBhcnJheSA9IHdvcmRzKGRlYnVycihzdHJpbmcpKSxcbiAgICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICAgIHJlc3VsdCA9ICcnO1xuXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgcmVzdWx0ID0gY2FsbGJhY2socmVzdWx0LCBhcnJheVtpbmRleF0sIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBhbiBpbnN0YW5jZSBvZiBgQ3RvcmAgcmVnYXJkbGVzcyBvZlxuICAgICAqIHdoZXRoZXIgaXQgd2FzIGludm9rZWQgYXMgcGFydCBvZiBhIGBuZXdgIGV4cHJlc3Npb24gb3IgYnkgYGNhbGxgIG9yIGBhcHBseWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IEN0b3IgVGhlIGNvbnN0cnVjdG9yIHRvIHdyYXAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVDdG9yV3JhcHBlcihDdG9yKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB0aGlzQmluZGluZyA9IGJhc2VDcmVhdGUoQ3Rvci5wcm90b3R5cGUpLFxuICAgICAgICAgICAgcmVzdWx0ID0gQ3Rvci5hcHBseSh0aGlzQmluZGluZywgYXJndW1lbnRzKTtcblxuICAgICAgICAvLyBNaW1pYyB0aGUgY29uc3RydWN0b3IncyBgcmV0dXJuYCBiZWhhdmlvci5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDEzLjIuMiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICByZXR1cm4gaXNPYmplY3QocmVzdWx0KSA/IHJlc3VsdCA6IHRoaXNCaW5kaW5nO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uY3VycnlgIG9yIGBfLmN1cnJ5UmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZsYWcgVGhlIGN1cnJ5IGJpdCBmbGFnLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGN1cnJ5IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUN1cnJ5KGZsYWcpIHtcbiAgICAgIGZ1bmN0aW9uIGN1cnJ5RnVuYyhmdW5jLCBhcml0eSwgZ3VhcmQpIHtcbiAgICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGZ1bmMsIGFyaXR5LCBndWFyZCkpIHtcbiAgICAgICAgICBhcml0eSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZVdyYXBwZXIoZnVuYywgZmxhZywgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgYXJpdHkpO1xuICAgICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBjdXJyeUZ1bmMucGxhY2Vob2xkZXI7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VycnlGdW5jO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgXy5tYXhgIG9yIGBfLm1pbmAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGFycmF5RnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBleHRyZW11bSB2YWx1ZSBmcm9tIGFuIGFycmF5LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTWluXSBTcGVjaWZ5IHJldHVybmluZyB0aGUgbWluaW11bSwgaW5zdGVhZCBvZiB0aGUgbWF4aW11bSxcbiAgICAgKiAgZXh0cmVtdW0gdmFsdWUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZXh0cmVtdW0gZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRXh0cmVtdW0oYXJyYXlGdW5jLCBpc01pbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICAgIGlmICh0aGlzQXJnICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSkge1xuICAgICAgICAgIGl0ZXJhdGVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZnVuYyA9IGdldENhbGxiYWNrKCksXG4gICAgICAgICAgICBub0l0ZXJhdGVlID0gaXRlcmF0ZWUgPT0gbnVsbDtcblxuICAgICAgICBpZiAoIShmdW5jID09PSBiYXNlQ2FsbGJhY2sgJiYgbm9JdGVyYXRlZSkpIHtcbiAgICAgICAgICBub0l0ZXJhdGVlID0gZmFsc2U7XG4gICAgICAgICAgaXRlcmF0ZWUgPSBmdW5jKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9JdGVyYXRlZSkge1xuICAgICAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkoY29sbGVjdGlvbik7XG4gICAgICAgICAgaWYgKCFpc0FyciAmJiBpc1N0cmluZyhjb2xsZWN0aW9uKSkge1xuICAgICAgICAgICAgaXRlcmF0ZWUgPSBjaGFyQXRDYWxsYmFjaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5RnVuYyhpc0FyciA/IGNvbGxlY3Rpb24gOiB0b0l0ZXJhYmxlKGNvbGxlY3Rpb24pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4dHJlbXVtQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGlzTWluKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLmZpbmRgIG9yIGBfLmZpbmRMYXN0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhIGNvbGxlY3Rpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmluZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGaW5kKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgICAgcHJlZGljYXRlID0gZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKTtcbiAgICAgICAgaWYgKGlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSBiYXNlRmluZEluZGV4KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbVJpZ2h0KTtcbiAgICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IGNvbGxlY3Rpb25baW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiYXNlRmluZChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGVhY2hGdW5jKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLmZpbmRJbmRleGAgb3IgYF8uZmluZExhc3RJbmRleGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZpbmQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRmluZEluZGV4KGZyb21SaWdodCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGFycmF5LCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tUmlnaHQpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmluZEtleWAgb3IgYF8uZmluZExhc3RLZXlgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvYmplY3RGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZpbmQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRmluZEtleShvYmplY3RGdW5jKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgICAgcHJlZGljYXRlID0gZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKTtcbiAgICAgICAgcmV0dXJuIGJhc2VGaW5kKG9iamVjdCwgcHJlZGljYXRlLCBvYmplY3RGdW5jLCB0cnVlKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLmZsb3dgIG9yIGBfLmZsb3dSaWdodGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZsb3cgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRmxvdyhmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzWzBdOyB9O1xuICAgICAgICB9XG4gICAgICAgIHZhciB3cmFwcGVyLFxuICAgICAgICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMSxcbiAgICAgICAgICAgIGxlZnRJbmRleCA9IDAsXG4gICAgICAgICAgICBmdW5jcyA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IGZ1bmNzW2xlZnRJbmRleCsrXSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGZ1bmNOYW1lID0gd3JhcHBlciA/ICcnIDogZ2V0RnVuY05hbWUoZnVuYyk7XG4gICAgICAgICAgd3JhcHBlciA9IGZ1bmNOYW1lID09ICd3cmFwcGVyJyA/IG5ldyBMb2Rhc2hXcmFwcGVyKFtdKSA6IHdyYXBwZXI7XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSB3cmFwcGVyID8gLTEgOiBsZW5ndGg7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgZnVuYyA9IGZ1bmNzW2luZGV4XTtcbiAgICAgICAgICBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpO1xuXG4gICAgICAgICAgdmFyIGRhdGEgPSBmdW5jTmFtZSA9PSAnd3JhcHBlcicgPyBnZXREYXRhKGZ1bmMpIDogbnVsbDtcbiAgICAgICAgICBpZiAoZGF0YSAmJiBpc0xhemlhYmxlKGRhdGFbMF0pICYmIGRhdGFbMV0gPT0gKEFSWV9GTEFHIHwgQ1VSUllfRkxBRyB8IFBBUlRJQUxfRkxBRyB8IFJFQVJHX0ZMQUcpICYmICFkYXRhWzRdLmxlbmd0aCAmJiBkYXRhWzldID09IDEpIHtcbiAgICAgICAgICAgIHdyYXBwZXIgPSB3cmFwcGVyW2dldEZ1bmNOYW1lKGRhdGFbMF0pXS5hcHBseSh3cmFwcGVyLCBkYXRhWzNdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd3JhcHBlciA9IChmdW5jLmxlbmd0aCA9PSAxICYmIGlzTGF6aWFibGUoZnVuYykpID8gd3JhcHBlcltmdW5jTmFtZV0oKSA6IHdyYXBwZXIudGhydShmdW5jKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICAgIGlmICh3cmFwcGVyICYmIGFyZ3MubGVuZ3RoID09IDEgJiYgaXNBcnJheShhcmdzWzBdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIucGxhbnQoYXJnc1swXSkudmFsdWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gMCxcbiAgICAgICAgICAgICAgcmVzdWx0ID0gZnVuY3NbaW5kZXhdLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmNzW2luZGV4XS5jYWxsKHRoaXMsIHJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8uZm9yRWFjaGAgb3IgYF8uZm9yRWFjaFJpZ2h0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXJyYXlGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gYXJyYXkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhIGNvbGxlY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZWFjaCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGb3JFYWNoKGFycmF5RnVuYywgZWFjaEZ1bmMpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgICByZXR1cm4gKHR5cGVvZiBpdGVyYXRlZSA9PSAnZnVuY3Rpb24nICYmIHRoaXNBcmcgPT09IHVuZGVmaW5lZCAmJiBpc0FycmF5KGNvbGxlY3Rpb24pKVxuICAgICAgICAgID8gYXJyYXlGdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKVxuICAgICAgICAgIDogZWFjaEZ1bmMoY29sbGVjdGlvbiwgYmluZENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8uZm9ySW5gIG9yIGBfLmZvckluUmlnaHRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvYmplY3RGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGVhY2ggZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRm9ySW4ob2JqZWN0RnVuYykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVyYXRlZSAhPSAnZnVuY3Rpb24nIHx8IHRoaXNBcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGl0ZXJhdGVlID0gYmluZENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0RnVuYyhvYmplY3QsIGl0ZXJhdGVlLCBrZXlzSW4pO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gZm9yIGBfLmZvck93bmAgb3IgYF8uZm9yT3duUmlnaHRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvYmplY3RGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGVhY2ggZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRm9yT3duKG9iamVjdEZ1bmMpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlcmF0ZWUgIT0gJ2Z1bmN0aW9uJyB8fCB0aGlzQXJnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpdGVyYXRlZSA9IGJpbmRDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgMyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdEZ1bmMob2JqZWN0LCBpdGVyYXRlZSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8ubWFwS2V5c2Agb3IgYF8ubWFwVmFsdWVzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNNYXBLZXlzXSBTcGVjaWZ5IG1hcHBpbmcga2V5cyBpbnN0ZWFkIG9mIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtYXAgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlT2JqZWN0TWFwcGVyKGlzTWFwS2V5cykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgICBpdGVyYXRlZSA9IGdldENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcblxuICAgICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgICAgdmFyIG1hcHBlZCA9IGl0ZXJhdGVlKHZhbHVlLCBrZXksIG9iamVjdCk7XG4gICAgICAgICAga2V5ID0gaXNNYXBLZXlzID8gbWFwcGVkIDoga2V5O1xuICAgICAgICAgIHZhbHVlID0gaXNNYXBLZXlzID8gdmFsdWUgOiBtYXBwZWQ7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8ucGFkTGVmdGAgb3IgYF8ucGFkUmlnaHRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgcGFkZGluZyBmcm9tIHRoZSByaWdodC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFkRGlyKGZyb21SaWdodCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIChmcm9tUmlnaHQgPyBzdHJpbmcgOiAnJykgKyBjcmVhdGVQYWRkaW5nKHN0cmluZywgbGVuZ3RoLCBjaGFycykgKyAoZnJvbVJpZ2h0ID8gJycgOiBzdHJpbmcpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8ucGFydGlhbGAgb3IgYF8ucGFydGlhbFJpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBmbGFnIFRoZSBwYXJ0aWFsIGJpdCBmbGFnLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHBhcnRpYWwgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFydGlhbChmbGFnKSB7XG4gICAgICB2YXIgcGFydGlhbEZ1bmMgPSByZXN0UGFyYW0oZnVuY3Rpb24oZnVuYywgcGFydGlhbHMpIHtcbiAgICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgcGFydGlhbEZ1bmMucGxhY2Vob2xkZXIpO1xuICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihmdW5jLCBmbGFnLCBudWxsLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwYXJ0aWFsRnVuYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gZm9yIGBfLnJlZHVjZWAgb3IgYF8ucmVkdWNlUmlnaHRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhcnJheUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbiBhcnJheS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBlYWNoIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlZHVjZShhcnJheUZ1bmMsIGVhY2hGdW5jKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCB0aGlzQXJnKSB7XG4gICAgICAgIHZhciBpbml0RnJvbUFycmF5ID0gYXJndW1lbnRzLmxlbmd0aCA8IDM7XG4gICAgICAgIHJldHVybiAodHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgJiYgdGhpc0FyZyA9PT0gdW5kZWZpbmVkICYmIGlzQXJyYXkoY29sbGVjdGlvbikpXG4gICAgICAgICAgPyBhcnJheUZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0RnJvbUFycmF5KVxuICAgICAgICAgIDogYmFzZVJlZHVjZShjb2xsZWN0aW9uLCBnZXRDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgNCksIGFjY3VtdWxhdG9yLCBpbml0RnJvbUFycmF5LCBlYWNoRnVuYyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCBhbmQgaW52b2tlcyBpdCB3aXRoIG9wdGlvbmFsIGB0aGlzYFxuICAgICAqIGJpbmRpbmcgb2YsIHBhcnRpYWwgYXBwbGljYXRpb24sIGFuZCBjdXJyeWluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxzdHJpbmd9IGZ1bmMgVGhlIGZ1bmN0aW9uIG9yIG1ldGhvZCBuYW1lIHRvIHJlZmVyZW5jZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNSaWdodF0gVGhlIGFyZ3VtZW50cyB0byBhcHBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc1JpZ2h0XSBUaGUgYHBhcnRpYWxzUmlnaHRgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlSHlicmlkV3JhcHBlcihmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgICAgIHZhciBpc0FyeSA9IGJpdG1hc2sgJiBBUllfRkxBRyxcbiAgICAgICAgICBpc0JpbmQgPSBiaXRtYXNrICYgQklORF9GTEFHLFxuICAgICAgICAgIGlzQmluZEtleSA9IGJpdG1hc2sgJiBCSU5EX0tFWV9GTEFHLFxuICAgICAgICAgIGlzQ3VycnkgPSBiaXRtYXNrICYgQ1VSUllfRkxBRyxcbiAgICAgICAgICBpc0N1cnJ5Qm91bmQgPSBiaXRtYXNrICYgQ1VSUllfQk9VTkRfRkxBRyxcbiAgICAgICAgICBpc0N1cnJ5UmlnaHQgPSBiaXRtYXNrICYgQ1VSUllfUklHSFRfRkxBRztcblxuICAgICAgdmFyIEN0b3IgPSAhaXNCaW5kS2V5ICYmIGNyZWF0ZUN0b3JXcmFwcGVyKGZ1bmMpLFxuICAgICAgICAgIGtleSA9IGZ1bmM7XG5cbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgICAgIC8vIEF2b2lkIGBhcmd1bWVudHNgIG9iamVjdCB1c2UgZGlzcXVhbGlmeWluZyBvcHRpbWl6YXRpb25zIGJ5XG4gICAgICAgIC8vIGNvbnZlcnRpbmcgaXQgdG8gYW4gYXJyYXkgYmVmb3JlIHByb3ZpZGluZyBpdCB0byBvdGhlciBmdW5jdGlvbnMuXG4gICAgICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgICAgaW5kZXggPSBsZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgIGFyZ3NbaW5kZXhdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFydGlhbHMpIHtcbiAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3MoYXJncywgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWFsc1JpZ2h0KSB7XG4gICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNDdXJyeSB8fCBpc0N1cnJ5UmlnaHQpIHtcbiAgICAgICAgICB2YXIgcGxhY2Vob2xkZXIgPSB3cmFwcGVyLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICBhcmdzSG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcblxuICAgICAgICAgIGxlbmd0aCAtPSBhcmdzSG9sZGVycy5sZW5ndGg7XG4gICAgICAgICAgaWYgKGxlbmd0aCA8IGFyaXR5KSB7XG4gICAgICAgICAgICB2YXIgbmV3QXJnUG9zID0gYXJnUG9zID8gYXJyYXlDb3B5KGFyZ1BvcykgOiBudWxsLFxuICAgICAgICAgICAgICAgIG5ld0FyaXR5ID0gbmF0aXZlTWF4KGFyaXR5IC0gbGVuZ3RoLCAwKSxcbiAgICAgICAgICAgICAgICBuZXdzSG9sZGVycyA9IGlzQ3VycnkgPyBhcmdzSG9sZGVycyA6IG51bGwsXG4gICAgICAgICAgICAgICAgbmV3SG9sZGVyc1JpZ2h0ID0gaXNDdXJyeSA/IG51bGwgOiBhcmdzSG9sZGVycyxcbiAgICAgICAgICAgICAgICBuZXdQYXJ0aWFscyA9IGlzQ3VycnkgPyBhcmdzIDogbnVsbCxcbiAgICAgICAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IG51bGwgOiBhcmdzO1xuXG4gICAgICAgICAgICBiaXRtYXNrIHw9IChpc0N1cnJ5ID8gUEFSVElBTF9GTEFHIDogUEFSVElBTF9SSUdIVF9GTEFHKTtcbiAgICAgICAgICAgIGJpdG1hc2sgJj0gfihpc0N1cnJ5ID8gUEFSVElBTF9SSUdIVF9GTEFHIDogUEFSVElBTF9GTEFHKTtcblxuICAgICAgICAgICAgaWYgKCFpc0N1cnJ5Qm91bmQpIHtcbiAgICAgICAgICAgICAgYml0bWFzayAmPSB+KEJJTkRfRkxBRyB8IEJJTkRfS0VZX0ZMQUcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIG5ld0RhdGEgPSBbZnVuYywgYml0bWFzaywgdGhpc0FyZywgbmV3UGFydGlhbHMsIG5ld3NIb2xkZXJzLCBuZXdQYXJ0aWFsc1JpZ2h0LCBuZXdIb2xkZXJzUmlnaHQsIG5ld0FyZ1BvcywgYXJ5LCBuZXdBcml0eV0sXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gY3JlYXRlSHlicmlkV3JhcHBlci5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xuXG4gICAgICAgICAgICBpZiAoaXNMYXppYWJsZShmdW5jKSkge1xuICAgICAgICAgICAgICBzZXREYXRhKHJlc3VsdCwgbmV3RGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciB0aGlzQmluZGluZyA9IGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzO1xuICAgICAgICBpZiAoaXNCaW5kS2V5KSB7XG4gICAgICAgICAgZnVuYyA9IHRoaXNCaW5kaW5nW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFyZ1Bvcykge1xuICAgICAgICAgIGFyZ3MgPSByZW9yZGVyKGFyZ3MsIGFyZ1Bvcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQXJ5ICYmIGFyeSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgYXJncy5sZW5ndGggPSBhcnk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyAoQ3RvciB8fCBjcmVhdGVDdG9yV3JhcHBlcihmdW5jKSkgOiBmdW5jO1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpc0JpbmRpbmcsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgcGFkZGluZyByZXF1aXJlZCBmb3IgYHN0cmluZ2AgYmFzZWQgb24gdGhlIGdpdmVuIGBsZW5ndGhgLlxuICAgICAqIFRoZSBgY2hhcnNgIHN0cmluZyBpcyB0cnVuY2F0ZWQgaWYgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGV4Y2VlZHMgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjcmVhdGUgcGFkZGluZyBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9MF0gVGhlIHBhZGRpbmcgbGVuZ3RoLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9JyAnXSBUaGUgc3RyaW5nIHVzZWQgYXMgcGFkZGluZy5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBwYWQgZm9yIGBzdHJpbmdgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhZGRpbmcoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICB2YXIgc3RyTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgICAgIGxlbmd0aCA9ICtsZW5ndGg7XG5cbiAgICAgIGlmIChzdHJMZW5ndGggPj0gbGVuZ3RoIHx8ICFuYXRpdmVJc0Zpbml0ZShsZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIHZhciBwYWRMZW5ndGggPSBsZW5ndGggLSBzdHJMZW5ndGg7XG4gICAgICBjaGFycyA9IGNoYXJzID09IG51bGwgPyAnICcgOiAoY2hhcnMgKyAnJyk7XG4gICAgICByZXR1cm4gcmVwZWF0KGNoYXJzLCBjZWlsKHBhZExlbmd0aCAvIGNoYXJzLmxlbmd0aCkpLnNsaWNlKDAsIHBhZExlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggdGhlIG9wdGlvbmFsIGB0aGlzYFxuICAgICAqIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYHBhcnRpYWxzYCBwcmVwZW5kZWQgdG8gdGhvc2UgcHJvdmlkZWQgdG9cbiAgICAgKiB0aGUgd3JhcHBlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcGFydGlhbGx5IGFwcGx5IGFyZ3VtZW50cyB0by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJvdW5kIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzKSB7XG4gICAgICB2YXIgaXNCaW5kID0gYml0bWFzayAmIEJJTkRfRkxBRyxcbiAgICAgICAgICBDdG9yID0gY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG5cbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgICAgIC8vIEF2b2lkIGBhcmd1bWVudHNgIG9iamVjdCB1c2UgZGlzcXVhbGlmeWluZyBvcHRpbWl6YXRpb25zIGJ5XG4gICAgICAgIC8vIGNvbnZlcnRpbmcgaXQgdG8gYW4gYXJyYXkgYmVmb3JlIHByb3ZpZGluZyBpdCBgZnVuY2AuXG4gICAgICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgICAgbGVmdEluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLFxuICAgICAgICAgICAgYXJncyA9IEFycmF5KGFyZ3NMZW5ndGggKyBsZWZ0TGVuZ3RoKTtcblxuICAgICAgICB3aGlsZSAoKytsZWZ0SW5kZXggPCBsZWZ0TGVuZ3RoKSB7XG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoYXJnc0xlbmd0aC0tKSB7XG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXgrK10gPSBhcmd1bWVudHNbKythcmdzSW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgIHJldHVybiBmbi5hcHBseShpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uc29ydGVkSW5kZXhgIG9yIGBfLnNvcnRlZExhc3RJbmRleGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEhpZ2hlc3RdIFNwZWNpZnkgcmV0dXJuaW5nIHRoZSBoaWdoZXN0IHF1YWxpZmllZCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbmRleCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVTb3J0ZWRJbmRleChyZXRIaWdoZXN0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oYXJyYXksIHZhbHVlLCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgICB2YXIgZnVuYyA9IGdldENhbGxiYWNrKGl0ZXJhdGVlKTtcbiAgICAgICAgcmV0dXJuIChmdW5jID09PSBiYXNlQ2FsbGJhY2sgJiYgaXRlcmF0ZWUgPT0gbnVsbClcbiAgICAgICAgICA/IGJpbmFyeUluZGV4KGFycmF5LCB2YWx1ZSwgcmV0SGlnaGVzdClcbiAgICAgICAgICA6IGJpbmFyeUluZGV4QnkoYXJyYXksIHZhbHVlLCBmdW5jKGl0ZXJhdGVlLCB0aGlzQXJnLCAxKSwgcmV0SGlnaGVzdCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGVpdGhlciBjdXJyaWVzIG9yIGludm9rZXMgYGZ1bmNgIHdpdGggb3B0aW9uYWxcbiAgICAgKiBgdGhpc2AgYmluZGluZyBhbmQgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gZnVuYyBUaGUgZnVuY3Rpb24gb3IgbWV0aG9kIG5hbWUgdG8gcmVmZXJlbmNlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIG9mIGZsYWdzLlxuICAgICAqICBUaGUgYml0bWFzayBtYXkgYmUgY29tcG9zZWQgb2YgdGhlIGZvbGxvd2luZyBmbGFnczpcbiAgICAgKiAgICAgMSAtIGBfLmJpbmRgXG4gICAgICogICAgIDIgLSBgXy5iaW5kS2V5YFxuICAgICAqICAgICA0IC0gYF8uY3VycnlgIG9yIGBfLmN1cnJ5UmlnaHRgIG9mIGEgYm91bmQgZnVuY3Rpb25cbiAgICAgKiAgICAgOCAtIGBfLmN1cnJ5YFxuICAgICAqICAgIDE2IC0gYF8uY3VycnlSaWdodGBcbiAgICAgKiAgICAzMiAtIGBfLnBhcnRpYWxgXG4gICAgICogICAgNjQgLSBgXy5wYXJ0aWFsUmlnaHRgXG4gICAgICogICAxMjggLSBgXy5yZWFyZ2BcbiAgICAgKiAgIDI1NiAtIGBfLmFyeWBcbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgICAgIHZhciBpc0JpbmRLZXkgPSBiaXRtYXNrICYgQklORF9LRVlfRkxBRztcbiAgICAgIGlmICghaXNCaW5kS2V5ICYmIHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgdmFyIGxlbmd0aCA9IHBhcnRpYWxzID8gcGFydGlhbHMubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIGJpdG1hc2sgJj0gfihQQVJUSUFMX0ZMQUcgfCBQQVJUSUFMX1JJR0hUX0ZMQUcpO1xuICAgICAgICBwYXJ0aWFscyA9IGhvbGRlcnMgPSBudWxsO1xuICAgICAgfVxuICAgICAgbGVuZ3RoIC09IChob2xkZXJzID8gaG9sZGVycy5sZW5ndGggOiAwKTtcbiAgICAgIGlmIChiaXRtYXNrICYgUEFSVElBTF9SSUdIVF9GTEFHKSB7XG4gICAgICAgIHZhciBwYXJ0aWFsc1JpZ2h0ID0gcGFydGlhbHMsXG4gICAgICAgICAgICBob2xkZXJzUmlnaHQgPSBob2xkZXJzO1xuXG4gICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgZGF0YSA9IGlzQmluZEtleSA/IG51bGwgOiBnZXREYXRhKGZ1bmMpLFxuICAgICAgICAgIG5ld0RhdGEgPSBbZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnksIGFyaXR5XTtcblxuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgbWVyZ2VEYXRhKG5ld0RhdGEsIGRhdGEpO1xuICAgICAgICBiaXRtYXNrID0gbmV3RGF0YVsxXTtcbiAgICAgICAgYXJpdHkgPSBuZXdEYXRhWzldO1xuICAgICAgfVxuICAgICAgbmV3RGF0YVs5XSA9IGFyaXR5ID09IG51bGxcbiAgICAgICAgPyAoaXNCaW5kS2V5ID8gMCA6IGZ1bmMubGVuZ3RoKVxuICAgICAgICA6IChuYXRpdmVNYXgoYXJpdHkgLSBsZW5ndGgsIDApIHx8IDApO1xuXG4gICAgICBpZiAoYml0bWFzayA9PSBCSU5EX0ZMQUcpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZUJpbmRXcmFwcGVyKG5ld0RhdGFbMF0sIG5ld0RhdGFbMl0pO1xuICAgICAgfSBlbHNlIGlmICgoYml0bWFzayA9PSBQQVJUSUFMX0ZMQUcgfHwgYml0bWFzayA9PSAoQklORF9GTEFHIHwgUEFSVElBTF9GTEFHKSkgJiYgIW5ld0RhdGFbNF0ubGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZVBhcnRpYWxXcmFwcGVyLmFwcGx5KHVuZGVmaW5lZCwgbmV3RGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBjcmVhdGVIeWJyaWRXcmFwcGVyLmFwcGx5KHVuZGVmaW5lZCwgbmV3RGF0YSk7XG4gICAgICB9XG4gICAgICB2YXIgc2V0dGVyID0gZGF0YSA/IGJhc2VTZXREYXRhIDogc2V0RGF0YTtcbiAgICAgIHJldHVybiBzZXR0ZXIocmVzdWx0LCBuZXdEYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGFycmF5cyB3aXRoIHN1cHBvcnQgZm9yXG4gICAgICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBvdGhlciBUaGUgb3RoZXIgYXJyYXkgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaW5nIGFycmF5cy5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0xvb3NlXSBTcGVjaWZ5IHBlcmZvcm1pbmcgcGFydGlhbCBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFycmF5cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxdWFsQXJyYXlzKGFycmF5LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xuXG4gICAgICBpZiAoYXJyTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhKGlzTG9vc2UgJiYgb3RoTGVuZ3RoID4gYXJyTGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBEZWVwIGNvbXBhcmUgdGhlIGNvbnRlbnRzLCBpZ25vcmluZyBub24tbnVtZXJpYyBwcm9wZXJ0aWVzLlxuICAgICAgd2hpbGUgKHJlc3VsdCAmJiArK2luZGV4IDwgYXJyTGVuZ3RoKSB7XG4gICAgICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJbaW5kZXhdO1xuXG4gICAgICAgIHJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICByZXN1bHQgPSBpc0xvb3NlXG4gICAgICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIGFyclZhbHVlLCBpbmRleClcbiAgICAgICAgICAgIDogY3VzdG9taXplcihhcnJWYWx1ZSwgb3RoVmFsdWUsIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICAgIGlmIChpc0xvb3NlKSB7XG4gICAgICAgICAgICB2YXIgb3RoSW5kZXggPSBvdGhMZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAob3RoSW5kZXgtLSkge1xuICAgICAgICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW290aEluZGV4XTtcbiAgICAgICAgICAgICAgcmVzdWx0ID0gKGFyclZhbHVlICYmIGFyclZhbHVlID09PSBvdGhWYWx1ZSkgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gKGFyclZhbHVlICYmIGFyclZhbHVlID09PSBvdGhWYWx1ZSkgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuICEhcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgY29tcGFyaW5nIG9iamVjdHMgb2ZcbiAgICAgKiB0aGUgc2FtZSBgdG9TdHJpbmdUYWdgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjb21wYXJpbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICAgICAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIG9yIGBTdHJpbmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWUgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0cyB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnKSB7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIGJvb2xUYWc6XG4gICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgICAvLyBDb2VyY2UgZGF0ZXMgYW5kIGJvb2xlYW5zIHRvIG51bWJlcnMsIGRhdGVzIHRvIG1pbGxpc2Vjb25kcyBhbmQgYm9vbGVhbnNcbiAgICAgICAgICAvLyB0byBgMWAgb3IgYDBgIHRyZWF0aW5nIGludmFsaWQgZGF0ZXMgY29lcmNlZCB0byBgTmFOYCBhcyBub3QgZXF1YWwuXG4gICAgICAgICAgcmV0dXJuICtvYmplY3QgPT0gK290aGVyO1xuXG4gICAgICAgIGNhc2UgZXJyb3JUYWc6XG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5uYW1lID09IG90aGVyLm5hbWUgJiYgb2JqZWN0Lm1lc3NhZ2UgPT0gb3RoZXIubWVzc2FnZTtcblxuICAgICAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgICAgICAvLyBUcmVhdCBgTmFOYCB2cy4gYE5hTmAgYXMgZXF1YWwuXG4gICAgICAgICAgcmV0dXJuIChvYmplY3QgIT0gK29iamVjdClcbiAgICAgICAgICAgID8gb3RoZXIgIT0gK290aGVyXG4gICAgICAgICAgICA6IG9iamVjdCA9PSArb3RoZXI7XG5cbiAgICAgICAgY2FzZSByZWdleHBUYWc6XG4gICAgICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgICAgIC8vIENvZXJjZSByZWdleGVzIHRvIHN0cmluZ3MgYW5kIHRyZWF0IHN0cmluZ3MgcHJpbWl0aXZlcyBhbmQgc3RyaW5nXG4gICAgICAgICAgLy8gb2JqZWN0cyBhcyBlcXVhbC4gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjEwLjYuNCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gKG90aGVyICsgJycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3Igb2JqZWN0cyB3aXRoIHN1cHBvcnQgZm9yXG4gICAgICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0FdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gICAgICB2YXIgb2JqUHJvcHMgPSBrZXlzKG9iamVjdCksXG4gICAgICAgICAgb2JqTGVuZ3RoID0gb2JqUHJvcHMubGVuZ3RoLFxuICAgICAgICAgIG90aFByb3BzID0ga2V5cyhvdGhlciksXG4gICAgICAgICAgb3RoTGVuZ3RoID0gb3RoUHJvcHMubGVuZ3RoO1xuXG4gICAgICBpZiAob2JqTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhaXNMb29zZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgc2tpcEN0b3IgPSBpc0xvb3NlLFxuICAgICAgICAgIGluZGV4ID0gLTE7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF0sXG4gICAgICAgICAgICByZXN1bHQgPSBpc0xvb3NlID8ga2V5IGluIG90aGVyIDogaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwga2V5KTtcblxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJba2V5XTtcblxuICAgICAgICAgIHJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgICAgcmVzdWx0ID0gaXNMb29zZVxuICAgICAgICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIG9ialZhbHVlLCBrZXkpXG4gICAgICAgICAgICAgIDogY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUsIGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgICAgICByZXN1bHQgPSAob2JqVmFsdWUgJiYgb2JqVmFsdWUgPT09IG90aFZhbHVlKSB8fCBlcXVhbEZ1bmMob2JqVmFsdWUsIG90aFZhbHVlLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHNraXBDdG9yIHx8IChza2lwQ3RvciA9IGtleSA9PSAnY29uc3RydWN0b3InKTtcbiAgICAgIH1cbiAgICAgIGlmICghc2tpcEN0b3IpIHtcbiAgICAgICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICAgICAgICBvdGhDdG9yID0gb3RoZXIuY29uc3RydWN0b3I7XG5cbiAgICAgICAgLy8gTm9uIGBPYmplY3RgIG9iamVjdCBpbnN0YW5jZXMgd2l0aCBkaWZmZXJlbnQgY29uc3RydWN0b3JzIGFyZSBub3QgZXF1YWwuXG4gICAgICAgIGlmIChvYmpDdG9yICE9IG90aEN0b3IgJiZcbiAgICAgICAgICAgICgnY29uc3RydWN0b3InIGluIG9iamVjdCAmJiAnY29uc3RydWN0b3InIGluIG90aGVyKSAmJlxuICAgICAgICAgICAgISh0eXBlb2Ygb2JqQ3RvciA9PSAnZnVuY3Rpb24nICYmIG9iakN0b3IgaW5zdGFuY2VvZiBvYmpDdG9yICYmXG4gICAgICAgICAgICAgIHR5cGVvZiBvdGhDdG9yID09ICdmdW5jdGlvbicgJiYgb3RoQ3RvciBpbnN0YW5jZW9mIG90aEN0b3IpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBleHRyZW11bSB2YWx1ZSBvZiBgY29sbGVjdGlvbmAgaW52b2tpbmcgYGl0ZXJhdGVlYCBmb3IgZWFjaCB2YWx1ZVxuICAgICAqIGluIGBjb2xsZWN0aW9uYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoIHRoZSB2YWx1ZSBpcyByYW5rZWQuXG4gICAgICogVGhlIGBpdGVyYXRlZWAgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc01pbl0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIG1pbmltdW0sIGluc3RlYWQgb2YgdGhlXG4gICAgICogIG1heGltdW0sIGV4dHJlbXVtIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBleHRyZW11bSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBleHRyZW11bUJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBpc01pbikge1xuICAgICAgdmFyIGV4VmFsdWUgPSBpc01pbiA/IFBPU0lUSVZFX0lORklOSVRZIDogTkVHQVRJVkVfSU5GSU5JVFksXG4gICAgICAgICAgY29tcHV0ZWQgPSBleFZhbHVlLFxuICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVkO1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBpdGVyYXRlZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICBpZiAoKGlzTWluID8gKGN1cnJlbnQgPCBjb21wdXRlZCkgOiAoY3VycmVudCA+IGNvbXB1dGVkKSkgfHxcbiAgICAgICAgICAgIChjdXJyZW50ID09PSBleFZhbHVlICYmIGN1cnJlbnQgPT09IHJlc3VsdCkpIHtcbiAgICAgICAgICBjb21wdXRlZCA9IGN1cnJlbnQ7XG4gICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhcHByb3ByaWF0ZSBcImNhbGxiYWNrXCIgZnVuY3Rpb24uIElmIHRoZSBgXy5jYWxsYmFja2AgbWV0aG9kIGlzXG4gICAgICogY3VzdG9taXplZCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGN1c3RvbSBtZXRob2QsIG90aGVyd2lzZSBpdCByZXR1cm5zXG4gICAgICogdGhlIGBiYXNlQ2FsbGJhY2tgIGZ1bmN0aW9uLiBJZiBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRoZSBjaG9zZW4gZnVuY3Rpb25cbiAgICAgKiBpcyBpbnZva2VkIHdpdGggdGhlbSBhbmQgaXRzIHJlc3VsdCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjaG9zZW4gZnVuY3Rpb24gb3IgaXRzIHJlc3VsdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRDYWxsYmFjayhmdW5jLCB0aGlzQXJnLCBhcmdDb3VudCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGxvZGFzaC5jYWxsYmFjayB8fCBjYWxsYmFjaztcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCA9PT0gY2FsbGJhY2sgPyBiYXNlQ2FsbGJhY2sgOiByZXN1bHQ7XG4gICAgICByZXR1cm4gYXJnQ291bnQgPyByZXN1bHQoZnVuYywgdGhpc0FyZywgYXJnQ291bnQpIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1ldGFkYXRhIGZvciBgZnVuY2AuXG4gICAgICovXG4gICAgdmFyIGdldERhdGEgPSAhbWV0YU1hcCA/IG5vb3AgOiBmdW5jdGlvbihmdW5jKSB7XG4gICAgICByZXR1cm4gbWV0YU1hcC5nZXQoZnVuYyk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG5hbWUgb2YgYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBuYW1lLlxuICAgICAqL1xuICAgIHZhciBnZXRGdW5jTmFtZSA9IChmdW5jdGlvbigpIHtcbiAgICAgIGlmICghc3VwcG9ydC5mdW5jTmFtZXMpIHtcbiAgICAgICAgcmV0dXJuIGNvbnN0YW50KCcnKTtcbiAgICAgIH1cbiAgICAgIGlmIChjb25zdGFudC5uYW1lID09ICdjb25zdGFudCcpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VQcm9wZXJ0eSgnbmFtZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGZ1bmMpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGZ1bmMubmFtZSxcbiAgICAgICAgICAgIGFycmF5ID0gcmVhbE5hbWVzW3Jlc3VsdF0sXG4gICAgICAgICAgICBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG5cbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSBhcnJheVtsZW5ndGhdLFxuICAgICAgICAgICAgICBvdGhlckZ1bmMgPSBkYXRhLmZ1bmM7XG5cbiAgICAgICAgICBpZiAob3RoZXJGdW5jID09IG51bGwgfHwgb3RoZXJGdW5jID09IGZ1bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLm5hbWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0oKSk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhcHByb3ByaWF0ZSBcImluZGV4T2ZcIiBmdW5jdGlvbi4gSWYgdGhlIGBfLmluZGV4T2ZgIG1ldGhvZCBpc1xuICAgICAqIGN1c3RvbWl6ZWQgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjdXN0b20gbWV0aG9kLCBvdGhlcndpc2UgaXQgcmV0dXJuc1xuICAgICAqIHRoZSBgYmFzZUluZGV4T2ZgIGZ1bmN0aW9uLiBJZiBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRoZSBjaG9zZW4gZnVuY3Rpb25cbiAgICAgKiBpcyBpbnZva2VkIHdpdGggdGhlbSBhbmQgaXRzIHJlc3VsdCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufG51bWJlcn0gUmV0dXJucyB0aGUgY2hvc2VuIGZ1bmN0aW9uIG9yIGl0cyByZXN1bHQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0SW5kZXhPZihjb2xsZWN0aW9uLCB0YXJnZXQsIGZyb21JbmRleCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGxvZGFzaC5pbmRleE9mIHx8IGluZGV4T2Y7XG4gICAgICByZXN1bHQgPSByZXN1bHQgPT09IGluZGV4T2YgPyBiYXNlSW5kZXhPZiA6IHJlc3VsdDtcbiAgICAgIHJldHVybiBjb2xsZWN0aW9uID8gcmVzdWx0KGNvbGxlY3Rpb24sIHRhcmdldCwgZnJvbUluZGV4KSA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IHZhbHVlIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBhdm9pZCBhIFtKSVQgYnVnXShodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzkyKVxuICAgICAqIHRoYXQgYWZmZWN0cyBTYWZhcmkgb24gYXQgbGVhc3QgaU9TIDguMS04LjMgQVJNNjQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgXCJsZW5ndGhcIiB2YWx1ZS5cbiAgICAgKi9cbiAgICB2YXIgZ2V0TGVuZ3RoID0gYmFzZVByb3BlcnR5KCdsZW5ndGgnKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICAgICAqL1xuICAgIHZhciBnZXRTeW1ib2xzID0gIWdldE93blByb3BlcnR5U3ltYm9scyA/IGNvbnN0YW50KFtdKSA6IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9scyh0b09iamVjdChvYmplY3QpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmlldywgYXBwbHlpbmcgYW55IGB0cmFuc2Zvcm1zYCB0byB0aGUgYHN0YXJ0YCBhbmQgYGVuZGAgcG9zaXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSB2aWV3LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgdmlldy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbdHJhbnNmb3Jtc10gVGhlIHRyYW5zZm9ybWF0aW9ucyB0byBhcHBseSB0byB0aGUgdmlldy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBgc3RhcnRgIGFuZCBgZW5kYFxuICAgICAqICBwb3NpdGlvbnMgb2YgdGhlIHZpZXcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0VmlldyhzdGFydCwgZW5kLCB0cmFuc2Zvcm1zKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSB0cmFuc2Zvcm1zID8gdHJhbnNmb3Jtcy5sZW5ndGggOiAwO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgZGF0YSA9IHRyYW5zZm9ybXNbaW5kZXhdLFxuICAgICAgICAgICAgc2l6ZSA9IGRhdGEuc2l6ZTtcblxuICAgICAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2Ryb3AnOiAgICAgIHN0YXJ0ICs9IHNpemU7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Ryb3BSaWdodCc6IGVuZCAtPSBzaXplOyBicmVhaztcbiAgICAgICAgICBjYXNlICd0YWtlJzogICAgICBlbmQgPSBuYXRpdmVNaW4oZW5kLCBzdGFydCArIHNpemUpOyBicmVhaztcbiAgICAgICAgICBjYXNlICd0YWtlUmlnaHQnOiBzdGFydCA9IG5hdGl2ZU1heChzdGFydCwgZW5kIC0gc2l6ZSk7IGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyAnc3RhcnQnOiBzdGFydCwgJ2VuZCc6IGVuZCB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBuZXcgYXJyYXkuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICAgICAgLy8gQWRkIGFycmF5IHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgICAgIGlmIChsZW5ndGggJiYgdHlwZW9mIGFycmF5WzBdID09ICdzdHJpbmcnICYmIGhhc093blByb3BlcnR5LmNhbGwoYXJyYXksICdpbmRleCcpKSB7XG4gICAgICAgIHJlc3VsdC5pbmRleCA9IGFycmF5LmluZGV4O1xuICAgICAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICAgICAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gICAgICBpZiAoISh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yKSkge1xuICAgICAgICBDdG9yID0gT2JqZWN0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZSBiYXNlZCBvbiBpdHMgYHRvU3RyaW5nVGFnYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY2xvbmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gICAgICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgb3IgYFN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3QgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVCeVRhZyhvYmplY3QsIHRhZywgaXNEZWVwKSB7XG4gICAgICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XG4gICAgICAgICAgcmV0dXJuIGJ1ZmZlckNsb25lKG9iamVjdCk7XG5cbiAgICAgICAgY2FzZSBib29sVGFnOlxuICAgICAgICBjYXNlIGRhdGVUYWc6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKCtvYmplY3QpO1xuXG4gICAgICAgIGNhc2UgZmxvYXQzMlRhZzogY2FzZSBmbG9hdDY0VGFnOlxuICAgICAgICBjYXNlIGludDhUYWc6IGNhc2UgaW50MTZUYWc6IGNhc2UgaW50MzJUYWc6XG4gICAgICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICAgICAgLy8gU2FmYXJpIDUgbW9iaWxlIGluY29ycmVjdGx5IGhhcyBgT2JqZWN0YCBhcyB0aGUgY29uc3RydWN0b3Igb2YgdHlwZWQgYXJyYXlzLlxuICAgICAgICAgIGlmIChDdG9yIGluc3RhbmNlb2YgQ3Rvcikge1xuICAgICAgICAgICAgQ3RvciA9IGN0b3JCeVRhZ1t0YWddO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgYnVmZmVyID0gb2JqZWN0LmJ1ZmZlcjtcbiAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoaXNEZWVwID8gYnVmZmVyQ2xvbmUoYnVmZmVyKSA6IGJ1ZmZlciwgb2JqZWN0LmJ5dGVPZmZzZXQsIG9iamVjdC5sZW5ndGgpO1xuXG4gICAgICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgICAgICBjYXNlIHN0cmluZ1RhZzpcbiAgICAgICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgICAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IEN0b3Iob2JqZWN0LnNvdXJjZSwgcmVGbGFncy5leGVjKG9iamVjdCkpO1xuICAgICAgICAgIHJlc3VsdC5sYXN0SW5kZXggPSBvYmplY3QubGFzdEluZGV4O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnZva2VzIHRoZSBtZXRob2QgYXQgYHBhdGhgIG9uIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgbWV0aG9kIHdpdGguXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgaW52b2tlZCBtZXRob2QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW52b2tlUGF0aChvYmplY3QsIHBhdGgsIGFyZ3MpIHtcbiAgICAgIGlmIChvYmplY3QgIT0gbnVsbCAmJiAhaXNLZXkocGF0aCwgb2JqZWN0KSkge1xuICAgICAgICBwYXRoID0gdG9QYXRoKHBhdGgpO1xuICAgICAgICBvYmplY3QgPSBwYXRoLmxlbmd0aCA9PSAxID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xuICAgICAgICBwYXRoID0gbGFzdChwYXRoKTtcbiAgICAgIH1cbiAgICAgIHZhciBmdW5jID0gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBvYmplY3RbcGF0aF07XG4gICAgICByZXR1cm4gZnVuYyA9PSBudWxsID8gdW5kZWZpbmVkIDogZnVuYy5hcHBseShvYmplY3QsIGFyZ3MpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0FycmF5TGlrZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgoZ2V0TGVuZ3RoKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD1NQVhfU0FGRV9JTlRFR0VSXSBUaGUgdXBwZXIgYm91bmRzIG9mIGEgdmFsaWQgaW5kZXguXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzSW5kZXgodmFsdWUsIGxlbmd0aCkge1xuICAgICAgdmFsdWUgPSArdmFsdWU7XG4gICAgICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG4gICAgICByZXR1cm4gdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gICAgICogQHBhcmFtIHsqfSBpbmRleCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIGluZGV4IG9yIGtleSBhcmd1bWVudC5cbiAgICAgKiBAcGFyYW0geyp9IG9iamVjdCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIG9iamVjdCBhcmd1bWVudC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgICAgIGlmICh0eXBlID09ICdudW1iZXInXG4gICAgICAgICAgPyAoaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSlcbiAgICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdCkpIHtcbiAgICAgICAgdmFyIG90aGVyID0gb2JqZWN0W2luZGV4XTtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSA/ICh2YWx1ZSA9PT0gb3RoZXIpIDogKG90aGVyICE9PSBvdGhlcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lIGFuZCBub3QgYSBwcm9wZXJ0eSBwYXRoLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzS2V5KHZhbHVlLCBvYmplY3QpIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgaWYgKCh0eXBlID09ICdzdHJpbmcnICYmIHJlSXNQbGFpblByb3AudGVzdCh2YWx1ZSkpIHx8IHR5cGUgPT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9ICFyZUlzRGVlcFByb3AudGVzdCh2YWx1ZSk7XG4gICAgICByZXR1cm4gcmVzdWx0IHx8IChvYmplY3QgIT0gbnVsbCAmJiB2YWx1ZSBpbiB0b09iamVjdChvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaGFzIGEgbGF6eSBjb3VudGVycGFydCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTGF6aWFibGUoZnVuYykge1xuICAgICAgdmFyIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyk7XG4gICAgICByZXR1cm4gISFmdW5jTmFtZSAmJiBmdW5jID09PSBsb2Rhc2hbZnVuY05hbWVdICYmIGZ1bmNOYW1lIGluIExhenlXcmFwcGVyLnByb3RvdHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gaXMgYmFzZWQgb24gW2BUb0xlbmd0aGBdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy10b2xlbmd0aCkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlmIHN1aXRhYmxlIGZvciBzdHJpY3RcbiAgICAgKiAgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgJiYgIWlzT2JqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXJnZXMgdGhlIGZ1bmN0aW9uIG1ldGFkYXRhIG9mIGBzb3VyY2VgIGludG8gYGRhdGFgLlxuICAgICAqXG4gICAgICogTWVyZ2luZyBtZXRhZGF0YSByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygd3JhcHBlcnMgcmVxdWlyZWQgdG8gaW52b2tlIGEgZnVuY3Rpb24uXG4gICAgICogVGhpcyBpcyBwb3NzaWJsZSBiZWNhdXNlIG1ldGhvZHMgbGlrZSBgXy5iaW5kYCwgYF8uY3VycnlgLCBhbmQgYF8ucGFydGlhbGBcbiAgICAgKiBtYXkgYmUgYXBwbGllZCByZWdhcmRsZXNzIG9mIGV4ZWN1dGlvbiBvcmRlci4gTWV0aG9kcyBsaWtlIGBfLmFyeWAgYW5kIGBfLnJlYXJnYFxuICAgICAqIGF1Z21lbnQgZnVuY3Rpb24gYXJndW1lbnRzLCBtYWtpbmcgdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXJlIGV4ZWN1dGVkIGltcG9ydGFudCxcbiAgICAgKiBwcmV2ZW50aW5nIHRoZSBtZXJnaW5nIG9mIG1ldGFkYXRhLiBIb3dldmVyLCB3ZSBtYWtlIGFuIGV4Y2VwdGlvbiBmb3IgYSBzYWZlXG4gICAgICogY29tbW9uIGNhc2Ugd2hlcmUgY3VycmllZCBmdW5jdGlvbnMgaGF2ZSBgXy5hcnlgIGFuZCBvciBgXy5yZWFyZ2AgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gZGF0YSBUaGUgZGVzdGluYXRpb24gbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHtBcnJheX0gc291cmNlIFRoZSBzb3VyY2UgbWV0YWRhdGEuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBkYXRhYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtZXJnZURhdGEoZGF0YSwgc291cmNlKSB7XG4gICAgICB2YXIgYml0bWFzayA9IGRhdGFbMV0sXG4gICAgICAgICAgc3JjQml0bWFzayA9IHNvdXJjZVsxXSxcbiAgICAgICAgICBuZXdCaXRtYXNrID0gYml0bWFzayB8IHNyY0JpdG1hc2ssXG4gICAgICAgICAgaXNDb21tb24gPSBuZXdCaXRtYXNrIDwgQVJZX0ZMQUc7XG5cbiAgICAgIHZhciBpc0NvbWJvID1cbiAgICAgICAgKHNyY0JpdG1hc2sgPT0gQVJZX0ZMQUcgJiYgYml0bWFzayA9PSBDVVJSWV9GTEFHKSB8fFxuICAgICAgICAoc3JjQml0bWFzayA9PSBBUllfRkxBRyAmJiBiaXRtYXNrID09IFJFQVJHX0ZMQUcgJiYgZGF0YVs3XS5sZW5ndGggPD0gc291cmNlWzhdKSB8fFxuICAgICAgICAoc3JjQml0bWFzayA9PSAoQVJZX0ZMQUcgfCBSRUFSR19GTEFHKSAmJiBiaXRtYXNrID09IENVUlJZX0ZMQUcpO1xuXG4gICAgICAvLyBFeGl0IGVhcmx5IGlmIG1ldGFkYXRhIGNhbid0IGJlIG1lcmdlZC5cbiAgICAgIGlmICghKGlzQ29tbW9uIHx8IGlzQ29tYm8pKSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgdGhpc0FyZ2AgaWYgYXZhaWxhYmxlLlxuICAgICAgaWYgKHNyY0JpdG1hc2sgJiBCSU5EX0ZMQUcpIHtcbiAgICAgICAgZGF0YVsyXSA9IHNvdXJjZVsyXTtcbiAgICAgICAgLy8gU2V0IHdoZW4gY3VycnlpbmcgYSBib3VuZCBmdW5jdGlvbi5cbiAgICAgICAgbmV3Qml0bWFzayB8PSAoYml0bWFzayAmIEJJTkRfRkxBRykgPyAwIDogQ1VSUllfQk9VTkRfRkxBRztcbiAgICAgIH1cbiAgICAgIC8vIENvbXBvc2UgcGFydGlhbCBhcmd1bWVudHMuXG4gICAgICB2YXIgdmFsdWUgPSBzb3VyY2VbM107XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFyIHBhcnRpYWxzID0gZGF0YVszXTtcbiAgICAgICAgZGF0YVszXSA9IHBhcnRpYWxzID8gY29tcG9zZUFyZ3MocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNF0pIDogYXJyYXlDb3B5KHZhbHVlKTtcbiAgICAgICAgZGF0YVs0XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVszXSwgUExBQ0VIT0xERVIpIDogYXJyYXlDb3B5KHNvdXJjZVs0XSk7XG4gICAgICB9XG4gICAgICAvLyBDb21wb3NlIHBhcnRpYWwgcmlnaHQgYXJndW1lbnRzLlxuICAgICAgdmFsdWUgPSBzb3VyY2VbNV07XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcGFydGlhbHMgPSBkYXRhWzVdO1xuICAgICAgICBkYXRhWzVdID0gcGFydGlhbHMgPyBjb21wb3NlQXJnc1JpZ2h0KHBhcnRpYWxzLCB2YWx1ZSwgc291cmNlWzZdKSA6IGFycmF5Q29weSh2YWx1ZSk7XG4gICAgICAgIGRhdGFbNl0gPSBwYXJ0aWFscyA/IHJlcGxhY2VIb2xkZXJzKGRhdGFbNV0sIFBMQUNFSE9MREVSKSA6IGFycmF5Q29weShzb3VyY2VbNl0pO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJnUG9zYCBpZiBhdmFpbGFibGUuXG4gICAgICB2YWx1ZSA9IHNvdXJjZVs3XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBkYXRhWzddID0gYXJyYXlDb3B5KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYGFyeWAgaWYgaXQncyBzbWFsbGVyLlxuICAgICAgaWYgKHNyY0JpdG1hc2sgJiBBUllfRkxBRykge1xuICAgICAgICBkYXRhWzhdID0gZGF0YVs4XSA9PSBudWxsID8gc291cmNlWzhdIDogbmF0aXZlTWluKGRhdGFbOF0sIHNvdXJjZVs4XSk7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBhcml0eWAgaWYgb25lIGlzIG5vdCBwcm92aWRlZC5cbiAgICAgIGlmIChkYXRhWzldID09IG51bGwpIHtcbiAgICAgICAgZGF0YVs5XSA9IHNvdXJjZVs5XTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYGZ1bmNgIGFuZCBtZXJnZSBiaXRtYXNrcy5cbiAgICAgIGRhdGFbMF0gPSBzb3VyY2VbMF07XG4gICAgICBkYXRhWzFdID0gbmV3Qml0bWFzaztcblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnBpY2tgIHdoaWNoIHBpY2tzIGBvYmplY3RgIHByb3BlcnRpZXMgc3BlY2lmaWVkXG4gICAgICogYnkgYHByb3BzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBpY2tCeUFycmF5KG9iamVjdCwgcHJvcHMpIHtcbiAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IG9iamVjdFtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5waWNrYCB3aGljaCBwaWNrcyBgb2JqZWN0YCBwcm9wZXJ0aWVzIGBwcmVkaWNhdGVgXG4gICAgICogcmV0dXJucyB0cnV0aHkgZm9yLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGlja0J5Q2FsbGJhY2sob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGJhc2VGb3JJbihvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBrZXksIG9iamVjdCkpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVvcmRlciBgYXJyYXlgIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGluZGV4ZXMgd2hlcmUgdGhlIGVsZW1lbnQgYXRcbiAgICAgKiB0aGUgZmlyc3QgaW5kZXggaXMgYXNzaWduZWQgYXMgdGhlIGZpcnN0IGVsZW1lbnQsIHRoZSBlbGVtZW50IGF0XG4gICAgICogdGhlIHNlY29uZCBpbmRleCBpcyBhc3NpZ25lZCBhcyB0aGUgc2Vjb25kIGVsZW1lbnQsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHJlb3JkZXIuXG4gICAgICogQHBhcmFtIHtBcnJheX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJyYXkgaW5kZXhlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZW9yZGVyKGFycmF5LCBpbmRleGVzKSB7XG4gICAgICB2YXIgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1pbihpbmRleGVzLmxlbmd0aCwgYXJyTGVuZ3RoKSxcbiAgICAgICAgICBvbGRBcnJheSA9IGFycmF5Q29weShhcnJheSk7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XG4gICAgICAgIGFycmF5W2xlbmd0aF0gPSBpc0luZGV4KGluZGV4LCBhcnJMZW5ndGgpID8gb2xkQXJyYXlbaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiB0aGlzIGZ1bmN0aW9uIGJlY29tZXMgaG90LCBpLmUuIGlzIGludm9rZWQgYSBsb3QgaW4gYSBzaG9ydFxuICAgICAqIHBlcmlvZCBvZiB0aW1lLCBpdCB3aWxsIHRyaXAgaXRzIGJyZWFrZXIgYW5kIHRyYW5zaXRpb24gdG8gYW4gaWRlbnRpdHkgZnVuY3Rpb25cbiAgICAgKiB0byBhdm9pZCBnYXJiYWdlIGNvbGxlY3Rpb24gcGF1c2VzIGluIFY4LiBTZWUgW1Y4IGlzc3VlIDIwNzBdKGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMDcwKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBtZXRhZGF0YSB3aXRoLlxuICAgICAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgc2V0RGF0YSA9IChmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjb3VudCA9IDAsXG4gICAgICAgICAgbGFzdENhbGxlZCA9IDA7XG5cbiAgICAgIHJldHVybiBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgIHZhciBzdGFtcCA9IG5vdygpLFxuICAgICAgICAgICAgcmVtYWluaW5nID0gSE9UX1NQQU4gLSAoc3RhbXAgLSBsYXN0Q2FsbGVkKTtcblxuICAgICAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICAgICAgaWYgKCsrY291bnQgPj0gSE9UX0NPVU5UKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb3VudCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJhc2VTZXREYXRhKGtleSwgdmFsdWUpO1xuICAgICAgfTtcbiAgICB9KCkpO1xuXG4gICAgLyoqXG4gICAgICogQSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1BsYWluT2JqZWN0YCB3aGljaCBjaGVja3MgaWYgYHZhbHVlYFxuICAgICAqIGlzIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBoYXMgYSBgW1tQcm90b3R5cGVdXWBcbiAgICAgKiBvZiBgbnVsbGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2hpbUlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICAgIHZhciBDdG9yLFxuICAgICAgICAgIHN1cHBvcnQgPSBsb2Rhc2guc3VwcG9ydDtcblxuICAgICAgLy8gRXhpdCBlYXJseSBmb3Igbm9uIGBPYmplY3RgIG9iamVjdHMuXG4gICAgICBpZiAoIShpc09iamVjdExpa2UodmFsdWUpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IG9iamVjdFRhZyAmJiAhaXNIb3N0T2JqZWN0KHZhbHVlKSkgfHxcbiAgICAgICAgICAoIWhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjb25zdHJ1Y3RvcicpICYmXG4gICAgICAgICAgICAoQ3RvciA9IHZhbHVlLmNvbnN0cnVjdG9yLCB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmICEoQ3RvciBpbnN0YW5jZW9mIEN0b3IpKSkgfHxcbiAgICAgICAgICAoIXN1cHBvcnQuYXJnc1RhZyAmJiBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIElFIDwgOSBpdGVyYXRlcyBpbmhlcml0ZWQgcHJvcGVydGllcyBiZWZvcmUgb3duIHByb3BlcnRpZXMuIElmIHRoZSBmaXJzdFxuICAgICAgLy8gaXRlcmF0ZWQgcHJvcGVydHkgaXMgYW4gb2JqZWN0J3Mgb3duIHByb3BlcnR5IHRoZW4gdGhlcmUgYXJlIG5vIGluaGVyaXRlZFxuICAgICAgLy8gZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIGlmIChzdXBwb3J0Lm93bkxhc3QpIHtcbiAgICAgICAgYmFzZUZvckluKHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICAgICAgICByZXN1bHQgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0ICE9PSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIEluIG1vc3QgZW52aXJvbm1lbnRzIGFuIG9iamVjdCdzIG93biBwcm9wZXJ0aWVzIGFyZSBpdGVyYXRlZCBiZWZvcmVcbiAgICAgIC8vIGl0cyBpbmhlcml0ZWQgcHJvcGVydGllcy4gSWYgdGhlIGxhc3QgaXRlcmF0ZWQgcHJvcGVydHkgaXMgYW4gb2JqZWN0J3NcbiAgICAgIC8vIG93biBwcm9wZXJ0eSB0aGVuIHRoZXJlIGFyZSBubyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgICAgYmFzZUZvckluKHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICAgIHJlc3VsdCA9IGtleTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiBgT2JqZWN0LmtleXNgIHdoaWNoIGNyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlXG4gICAgICogb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNoaW1LZXlzKG9iamVjdCkge1xuICAgICAgdmFyIHByb3BzID0ga2V5c0luKG9iamVjdCksXG4gICAgICAgICAgcHJvcHNMZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHNMZW5ndGggJiYgb2JqZWN0Lmxlbmd0aCxcbiAgICAgICAgICBzdXBwb3J0ID0gbG9kYXNoLnN1cHBvcnQ7XG5cbiAgICAgIHZhciBhbGxvd0luZGV4ZXMgPSBsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJlxuICAgICAgICAoaXNBcnJheShvYmplY3QpIHx8IChzdXBwb3J0Lm5vbkVudW1TdHJpbmdzICYmIGlzU3RyaW5nKG9iamVjdCkpIHx8XG4gICAgICAgICAgKHN1cHBvcnQubm9uRW51bUFyZ3MgJiYgaXNBcmd1bWVudHMob2JqZWN0KSkpO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBwcm9wc0xlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgICBpZiAoKGFsbG93SW5kZXhlcyAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSkgfHwgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gYXJyYXktbGlrZSBvYmplY3QgaWYgaXQgaXMgbm90IG9uZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fSBSZXR1cm5zIHRoZSBhcnJheS1saWtlIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b0l0ZXJhYmxlKHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoIWlzQXJyYXlMaWtlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWVzKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2Rhc2guc3VwcG9ydC51bmluZGV4ZWRDaGFycyAmJiBpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KCcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc09iamVjdCh2YWx1ZSkgPyB2YWx1ZSA6IE9iamVjdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhbiBvYmplY3QgaWYgaXQgaXMgbm90IG9uZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9PYmplY3QodmFsdWUpIHtcbiAgICAgIGlmIChsb2Rhc2guc3VwcG9ydC51bmluZGV4ZWRDaGFycyAmJiBpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGgsXG4gICAgICAgICAgICByZXN1bHQgPSBPYmplY3QodmFsdWUpO1xuXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgcmVzdWx0W2luZGV4XSA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc09iamVjdCh2YWx1ZSkgPyB2YWx1ZSA6IE9iamVjdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBwcm9wZXJ0eSBwYXRoIGFycmF5IGlmIGl0IGlzIG5vdCBvbmUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvUGF0aCh2YWx1ZSkge1xuICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGJhc2VUb1N0cmluZyh2YWx1ZSkucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3RyaW5nKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHdyYXBwZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gd3JhcHBlciBUaGUgd3JhcHBlciB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgd3JhcHBlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ2xvbmUod3JhcHBlcikge1xuICAgICAgcmV0dXJuIHdyYXBwZXIgaW5zdGFuY2VvZiBMYXp5V3JhcHBlclxuICAgICAgICA/IHdyYXBwZXIuY2xvbmUoKVxuICAgICAgICA6IG5ldyBMb2Rhc2hXcmFwcGVyKHdyYXBwZXIuX193cmFwcGVkX18sIHdyYXBwZXIuX19jaGFpbl9fLCBhcnJheUNvcHkod3JhcHBlci5fX2FjdGlvbnNfXykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgc3BsaXQgaW50byBncm91cHMgdGhlIGxlbmd0aCBvZiBgc2l6ZWAuXG4gICAgICogSWYgYGNvbGxlY3Rpb25gIGNhbid0IGJlIHNwbGl0IGV2ZW5seSwgdGhlIGZpbmFsIGNodW5rIHdpbGwgYmUgdGhlIHJlbWFpbmluZ1xuICAgICAqIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTFdIFRoZSBsZW5ndGggb2YgZWFjaCBjaHVuay5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBjb250YWluaW5nIGNodW5rcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jaHVuayhbJ2EnLCAnYicsICdjJywgJ2QnXSwgMik7XG4gICAgICogLy8gPT4gW1snYScsICdiJ10sIFsnYycsICdkJ11dXG4gICAgICpcbiAgICAgKiBfLmNodW5rKFsnYScsICdiJywgJ2MnLCAnZCddLCAzKTtcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InLCAnYyddLCBbJ2QnXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjaHVuayhhcnJheSwgc2l6ZSwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBzaXplLCBndWFyZCkgOiBzaXplID09IG51bGwpIHtcbiAgICAgICAgc2l6ZSA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaXplID0gbmF0aXZlTWF4KCtzaXplIHx8IDEsIDEpO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gMCxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDAsXG4gICAgICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShjZWlsKGxlbmd0aCAvIHNpemUpKTtcblxuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFsrK3Jlc0luZGV4XSA9IGJhc2VTbGljZShhcnJheSwgaW5kZXgsIChpbmRleCArPSBzaXplKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgd2l0aCBhbGwgZmFsc2V5IHZhbHVlcyByZW1vdmVkLiBUaGUgdmFsdWVzIGBmYWxzZWAsIGBudWxsYCxcbiAgICAgKiBgMGAsIGBcIlwiYCwgYHVuZGVmaW5lZGAsIGFuZCBgTmFOYCBhcmUgZmFsc2V5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNvbXBhY3QoWzAsIDEsIGZhbHNlLCAyLCAnJywgM10pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBhY3QoYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMCxcbiAgICAgICAgICByZXNJbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHJlc3VsdFsrK3Jlc0luZGV4XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZXhjbHVkaW5nIGFsbCB2YWx1ZXMgb2YgdGhlIHByb3ZpZGVkIGFycmF5cyB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFt2YWx1ZXNdIFRoZSBhcnJheXMgb2YgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRpZmZlcmVuY2UoWzEsIDIsIDNdLCBbNCwgMl0pO1xuICAgICAqIC8vID0+IFsxLCAzXVxuICAgICAqL1xuICAgIHZhciBkaWZmZXJlbmNlID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZShhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzLCBmYWxzZSwgdHJ1ZSkpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGJlZ2lubmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBkcm9wLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzIsIDNdXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbM11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdLCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkcm9wKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBuLCBndWFyZCkgOiBuID09IG51bGwpIHtcbiAgICAgICAgbiA9IDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCBuIDwgMCA/IDAgOiBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGVuZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBkcm9wLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wUmlnaHQoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgMik7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BSaWdodChhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgbiwgZ3VhcmQpIDogbiA9PSBudWxsKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfVxuICAgICAgbiA9IGxlbmd0aCAtICgrbiB8fCAwKTtcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIDAsIG4gPCAwID8gMCA6IG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGV4Y2x1ZGluZyBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGVuZC5cbiAgICAgKiBFbGVtZW50cyBhcmUgZHJvcHBlZCB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IG1hdGNoIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUoWzEsIDIsIDNdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiA+IDE7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BSaWdodFdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKSwgdHJ1ZSwgdHJ1ZSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCBleGNsdWRpbmcgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICogRWxlbWVudHMgYXJlIGRyb3BwZWQgdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXNcbiAgICAgKiBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZHJvcFdoaWxlKFsxLCAyLCAzXSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gPCAzO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5kcm9wV2hpbGUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5kcm9wV2hpbGUodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLmRyb3BXaGlsZSh1c2VycywgJ2FjdGl2ZScpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJvcFdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKSwgdHJ1ZSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaWxscyBlbGVtZW50cyBvZiBgYXJyYXlgIHdpdGggYHZhbHVlYCBmcm9tIGBzdGFydGAgdXAgdG8sIGJ1dCBub3RcbiAgICAgKiBpbmNsdWRpbmcsIGBlbmRgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWxsLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGZpbGwgYGFycmF5YCB3aXRoLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqXG4gICAgICogXy5maWxsKGFycmF5LCAnYScpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYScsICdhJ11cbiAgICAgKlxuICAgICAqIF8uZmlsbChBcnJheSgzKSwgMik7XG4gICAgICogLy8gPT4gWzIsIDIsIDJdXG4gICAgICpcbiAgICAgKiBfLmZpbGwoWzQsIDYsIDhdLCAnKicsIDEsIDIpO1xuICAgICAqIC8vID0+IFs0LCAnKicsIDhdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnQgJiYgdHlwZW9mIHN0YXJ0ICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQpKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VGaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3RcbiAgICAgKiBlbGVtZW50IGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50IGl0c2VsZi5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZvdW5kIGVsZW1lbnQsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsIGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgcmV0dXJuIGNoci51c2VyID09ICdiYXJuZXknO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgeyAndXNlcic6ICdmcmVkJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICovXG4gICAgdmFyIGZpbmRJbmRleCA9IGNyZWF0ZUZpbmRJbmRleCgpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kSW5kZXhgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHNcbiAgICAgKiBvZiBgY29sbGVjdGlvbmAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZm91bmQgZWxlbWVudCwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgcmV0dXJuIGNoci51c2VyID09ICdwZWJibGVzJztcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kTGFzdEluZGV4KHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgJ2FjdGl2ZScsIGZhbHNlKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICB2YXIgZmluZExhc3RJbmRleCA9IGNyZWF0ZUZpbmRJbmRleCh0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBoZWFkXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmlyc3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiBfLmZpcnN0KFtdKTtcbiAgICAgKiAvLyA9PiB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaXJzdChhcnJheSkge1xuICAgICAgcmV0dXJuIGFycmF5ID8gYXJyYXlbMF0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmxhdHRlbnMgYSBuZXN0ZWQgYXJyYXkuIElmIGBpc0RlZXBgIGlzIGB0cnVlYCB0aGUgYXJyYXkgaXMgcmVjdXJzaXZlbHlcbiAgICAgKiBmbGF0dGVuZWQsIG90aGVyd2lzZSBpdCBpcyBvbmx5IGZsYXR0ZW5lZCBhIHNpbmdsZSBsZXZlbC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgZmxhdHRlbi5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmxhdHRlbihbMSwgWzIsIDMsIFs0XV1dKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgWzRdXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgYGlzRGVlcGBcbiAgICAgKiBfLmZsYXR0ZW4oWzEsIFsyLCAzLCBbNF1dXSwgdHJ1ZSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIDRdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdHRlbihhcnJheSwgaXNEZWVwLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgaXNEZWVwLCBndWFyZCkpIHtcbiAgICAgICAgaXNEZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIGlzRGVlcCkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWN1cnNpdmVseSBmbGF0dGVucyBhIG5lc3RlZCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byByZWN1cnNpdmVseSBmbGF0dGVuLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuRGVlcChbMSwgWzIsIDMsIFs0XV1dKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgNF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0dGVuRGVlcChhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgdHJ1ZSkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBgdmFsdWVgIGlzIGZvdW5kIGluIGBhcnJheWBcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuIElmIGBmcm9tSW5kZXhgIGlzIG5lZ2F0aXZlLCBpdCBpcyB1c2VkIGFzIHRoZSBvZmZzZXRcbiAgICAgKiBmcm9tIHRoZSBlbmQgb2YgYGFycmF5YC4gSWYgYGFycmF5YCBpcyBzb3J0ZWQgcHJvdmlkaW5nIGB0cnVlYCBmb3IgYGZyb21JbmRleGBcbiAgICAgKiBwZXJmb3JtcyBhIGZhc3RlciBiaW5hcnkgc2VhcmNoLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbnxudW1iZXJ9IFtmcm9tSW5kZXg9MF0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tIG9yIGB0cnVlYFxuICAgICAqICB0byBwZXJmb3JtIGEgYmluYXJ5IHNlYXJjaCBvbiBhIHNvcnRlZCBhcnJheS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyKTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBgZnJvbUluZGV4YFxuICAgICAqIF8uaW5kZXhPZihbMSwgMiwgMSwgMl0sIDIsIDIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIC8vIHBlcmZvcm1pbmcgYSBiaW5hcnkgc2VhcmNoXG4gICAgICogXy5pbmRleE9mKFsxLCAxLCAyLCAyXSwgMiwgdHJ1ZSk7XG4gICAgICogLy8gPT4gMlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGZyb21JbmRleCA9PSAnbnVtYmVyJykge1xuICAgICAgICBmcm9tSW5kZXggPSBmcm9tSW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCkgOiBmcm9tSW5kZXg7XG4gICAgICB9IGVsc2UgaWYgKGZyb21JbmRleCkge1xuICAgICAgICB2YXIgaW5kZXggPSBiaW5hcnlJbmRleChhcnJheSwgdmFsdWUpLFxuICAgICAgICAgICAgb3RoZXIgPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSB2YWx1ZSA/ICh2YWx1ZSA9PT0gb3RoZXIpIDogKG90aGVyICE9PSBvdGhlcikpIHtcbiAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4IHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGJ1dCB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluaXRpYWwoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0aWFsKGFycmF5KSB7XG4gICAgICByZXR1cm4gZHJvcFJpZ2h0KGFycmF5LCAxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMgaW4gYWxsIHByb3ZpZGVkIGFycmF5cyB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBzaGFyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICogXy5pbnRlcnNlY3Rpb24oWzEsIDJdLCBbNCwgMl0sIFsyLCAxXSk7XG4gICAgICogLy8gPT4gWzJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW50ZXJzZWN0aW9uKCkge1xuICAgICAgdmFyIGFyZ3MgPSBbXSxcbiAgICAgICAgICBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICBhcmdzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICBjYWNoZXMgPSBbXSxcbiAgICAgICAgICBpbmRleE9mID0gZ2V0SW5kZXhPZigpLFxuICAgICAgICAgIGlzQ29tbW9uID0gaW5kZXhPZiA9PSBiYXNlSW5kZXhPZixcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcmd1bWVudHNbYXJnc0luZGV4XTtcbiAgICAgICAgaWYgKGlzQXJyYXlMaWtlKHZhbHVlKSkge1xuICAgICAgICAgIGFyZ3MucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgY2FjaGVzLnB1c2goKGlzQ29tbW9uICYmIHZhbHVlLmxlbmd0aCA+PSAxMjApID8gY3JlYXRlQ2FjaGUoYXJnc0luZGV4ICYmIHZhbHVlKSA6IG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGg7XG4gICAgICBpZiAoYXJnc0xlbmd0aCA8IDIpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHZhciBhcnJheSA9IGFyZ3NbMF0sXG4gICAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDAsXG4gICAgICAgICAgc2VlbiA9IGNhY2hlc1swXTtcblxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKChzZWVuID8gY2FjaGVJbmRleE9mKHNlZW4sIHZhbHVlKSA6IGluZGV4T2YocmVzdWx0LCB2YWx1ZSwgMCkpIDwgMCkge1xuICAgICAgICAgIGFyZ3NJbmRleCA9IGFyZ3NMZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKC0tYXJnc0luZGV4KSB7XG4gICAgICAgICAgICB2YXIgY2FjaGUgPSBjYWNoZXNbYXJnc0luZGV4XTtcbiAgICAgICAgICAgIGlmICgoY2FjaGUgPyBjYWNoZUluZGV4T2YoY2FjaGUsIHZhbHVlKSA6IGluZGV4T2YoYXJnc1thcmdzSW5kZXhdLCB2YWx1ZSwgMCkpIDwgMCkge1xuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgICAgIHNlZW4ucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubGFzdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXN0KGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaW5kZXhPZmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBhcnJheWAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbnxudW1iZXJ9IFtmcm9tSW5kZXg9YXJyYXkubGVuZ3RoLTFdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbVxuICAgICAqICBvciBgdHJ1ZWAgdG8gcGVyZm9ybSBhIGJpbmFyeSBzZWFyY2ggb24gYSBzb3J0ZWQgYXJyYXkuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sYXN0SW5kZXhPZihbMSwgMiwgMSwgMl0sIDIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGBmcm9tSW5kZXhgXG4gICAgICogXy5sYXN0SW5kZXhPZihbMSwgMiwgMSwgMl0sIDIsIDIpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIHBlcmZvcm1pbmcgYSBiaW5hcnkgc2VhcmNoXG4gICAgICogXy5sYXN0SW5kZXhPZihbMSwgMSwgMiwgMl0sIDIsIHRydWUpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IGxlbmd0aDtcbiAgICAgIGlmICh0eXBlb2YgZnJvbUluZGV4ID09ICdudW1iZXInKSB7XG4gICAgICAgIGluZGV4ID0gKGZyb21JbmRleCA8IDAgPyBuYXRpdmVNYXgobGVuZ3RoICsgZnJvbUluZGV4LCAwKSA6IG5hdGl2ZU1pbihmcm9tSW5kZXggfHwgMCwgbGVuZ3RoIC0gMSkpICsgMTtcbiAgICAgIH0gZWxzZSBpZiAoZnJvbUluZGV4KSB7XG4gICAgICAgIGluZGV4ID0gYmluYXJ5SW5kZXgoYXJyYXksIHZhbHVlLCB0cnVlKSAtIDE7XG4gICAgICAgIHZhciBvdGhlciA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB2YWx1ZSA/ICh2YWx1ZSA9PT0gb3RoZXIpIDogKG90aGVyICE9PSBvdGhlcikpIHtcbiAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaW5kZXhPZk5hTihhcnJheSwgaW5kZXgsIHRydWUpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBwcm92aWRlZCB2YWx1ZXMgZnJvbSBgYXJyYXlgIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy53aXRob3V0YCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0gey4uLip9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgMywgMSwgMiwgM107XG4gICAgICpcbiAgICAgKiBfLnB1bGwoYXJyYXksIDIsIDMpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwdWxsKCkge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgYXJyYXkgPSBhcmdzWzBdO1xuXG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IDAsXG4gICAgICAgICAgaW5kZXhPZiA9IGdldEluZGV4T2YoKSxcbiAgICAgICAgICBsZW5ndGggPSBhcmdzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGZyb21JbmRleCA9IDAsXG4gICAgICAgICAgICB2YWx1ZSA9IGFyZ3NbaW5kZXhdO1xuXG4gICAgICAgIHdoaWxlICgoZnJvbUluZGV4ID0gaW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkpID4gLTEpIHtcbiAgICAgICAgICBzcGxpY2UuY2FsbChhcnJheSwgZnJvbUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgZWxlbWVudHMgZnJvbSBgYXJyYXlgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGluZGV4ZXMgYW5kIHJldHVybnNcbiAgICAgKiBhbiBhcnJheSBvZiB0aGUgcmVtb3ZlZCBlbGVtZW50cy4gSW5kZXhlcyBtYXkgYmUgc3BlY2lmaWVkIGFzIGFuIGFycmF5IG9mXG4gICAgICogaW5kZXhlcyBvciBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8uYXRgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7Li4uKG51bWJlcnxudW1iZXJbXSl9IFtpbmRleGVzXSBUaGUgaW5kZXhlcyBvZiBlbGVtZW50cyB0byByZW1vdmUsXG4gICAgICogIHNwZWNpZmllZCBhcyBpbmRpdmlkdWFsIGluZGV4ZXMgb3IgYXJyYXlzIG9mIGluZGV4ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVtb3ZlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzUsIDEwLCAxNSwgMjBdO1xuICAgICAqIHZhciBldmVucyA9IF8ucHVsbEF0KGFycmF5LCAxLCAzKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbNSwgMTVdXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhldmVucyk7XG4gICAgICogLy8gPT4gWzEwLCAyMF1cbiAgICAgKi9cbiAgICB2YXIgcHVsbEF0ID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGFycmF5LCBpbmRleGVzKSB7XG4gICAgICBpbmRleGVzID0gYmFzZUZsYXR0ZW4oaW5kZXhlcyk7XG5cbiAgICAgIHZhciByZXN1bHQgPSBiYXNlQXQoYXJyYXksIGluZGV4ZXMpO1xuICAgICAgYmFzZVB1bGxBdChhcnJheSwgaW5kZXhlcy5zb3J0KGJhc2VDb21wYXJlQXNjZW5kaW5nKSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgZWxlbWVudHMgZnJvbSBgYXJyYXlgIHRoYXQgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yXG4gICAgICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhlIHJlbW92ZWQgZWxlbWVudHMuIFRoZSBwcmVkaWNhdGUgaXMgYm91bmQgdG9cbiAgICAgKiBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5maWx0ZXJgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgMywgNF07XG4gICAgICogdmFyIGV2ZW5zID0gXy5yZW1vdmUoYXJyYXksIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAzXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coZXZlbnMpO1xuICAgICAqIC8vID0+IFsyLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlbW92ZShhcnJheSwgcHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmRleGVzID0gW10sXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICAgIGluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBidXQgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyB0YWlsXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZXN0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVzdChhcnJheSkge1xuICAgICAgcmV0dXJuIGRyb3AoYXJyYXksIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGZyb20gYHN0YXJ0YCB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW5zdGVhZCBvZiBgQXJyYXkjc2xpY2VgIHRvIHN1cHBvcnQgbm9kZVxuICAgICAqIGxpc3RzIGluIElFIDwgOSBhbmQgdG8gZW5zdXJlIGRlbnNlIGFycmF5cyBhcmUgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChlbmQgJiYgdHlwZW9mIGVuZCAhPSAnbnVtYmVyJyAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgc3RhcnQsIGVuZCkpIHtcbiAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICBlbmQgPSBsZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCBzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VzIGEgYmluYXJ5IHNlYXJjaCB0byBkZXRlcm1pbmUgdGhlIGxvd2VzdCBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZFxuICAgICAqIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0byBtYWludGFpbiBpdHMgc29ydCBvcmRlci4gSWYgYW4gaXRlcmF0ZWVcbiAgICAgKiBmdW5jdGlvbiBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkIGZvciBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YFxuICAgICAqIHRvIGNvbXB1dGUgdGhlaXIgc29ydCByYW5raW5nLiBUaGUgaXRlcmF0ZWUgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZFxuICAgICAqIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ7ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkSW5kZXgoWzMwLCA1MF0sIDQwKTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZEluZGV4KFs0LCA0LCA1LCA1XSwgNSk7XG4gICAgICogLy8gPT4gMlxuICAgICAqXG4gICAgICogdmFyIGRpY3QgPSB7ICdkYXRhJzogeyAndGhpcnR5JzogMzAsICdmb3J0eSc6IDQwLCAnZmlmdHknOiA1MCB9IH07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBhbiBpdGVyYXRlZSBmdW5jdGlvblxuICAgICAqIF8uc29ydGVkSW5kZXgoWyd0aGlydHknLCAnZmlmdHknXSwgJ2ZvcnR5JywgZnVuY3Rpb24od29yZCkge1xuICAgICAqICAgcmV0dXJuIHRoaXMuZGF0YVt3b3JkXTtcbiAgICAgKiB9LCBkaWN0KTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uc29ydGVkSW5kZXgoW3sgJ3gnOiAzMCB9LCB7ICd4JzogNTAgfV0sIHsgJ3gnOiA0MCB9LCAneCcpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICB2YXIgc29ydGVkSW5kZXggPSBjcmVhdGVTb3J0ZWRJbmRleCgpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0ZWRJbmRleGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgaGlnaGVzdFxuICAgICAqIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0b1xuICAgICAqIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZExhc3RJbmRleChbNCwgNCwgNSwgNV0sIDUpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKi9cbiAgICB2YXIgc29ydGVkTGFzdEluZGV4ID0gY3JlYXRlU29ydGVkSW5kZXgodHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gdGFrZS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsxXVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSwgMik7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICpcbiAgICAgKiBfLnRha2UoWzEsIDIsIDNdLCA1KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZShhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgbiwgZ3VhcmQpIDogbiA9PSBudWxsKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgZW5kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHRha2UuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqXG4gICAgICogXy50YWtlUmlnaHQoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZVJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBuLCBndWFyZCkgOiBuID09IG51bGwpIHtcbiAgICAgICAgbiA9IDE7XG4gICAgICB9XG4gICAgICBuID0gbGVuZ3RoIC0gKCtuIHx8IDApO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBlbmQuIEVsZW1lbnRzIGFyZVxuICAgICAqIHRha2VuIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzIGJvdW5kIHRvIGB0aGlzQXJnYFxuICAgICAqIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodFdoaWxlKFsxLCAyLCAzXSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gPiAxO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy50YWtlUmlnaHRXaGlsZSh1c2VycywgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRha2VSaWdodFdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKSwgZmFsc2UsIHRydWUpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBiZWdpbm5pbmcuIEVsZW1lbnRzXG4gICAgICogYXJlIHRha2VuIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzIGJvdW5kIHRvXG4gICAgICogYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRha2VXaGlsZShbMSwgMiwgM10sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuIDwgMztcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy50YWtlV2hpbGUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy50YWtlV2hpbGUodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy50YWtlV2hpbGUodXNlcnMsICdhY3RpdmUnKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRha2VXaGlsZShhcnJheSwgcHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldENhbGxiYWNrKHByZWRpY2F0ZSwgdGhpc0FyZywgMykpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzLCBpbiBvcmRlciwgb2YgdGhlIHByb3ZpZGVkIGFycmF5cyB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21iaW5lZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pb24oWzEsIDJdLCBbNCwgMl0sIFsyLCAxXSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDRdXG4gICAgICovXG4gICAgdmFyIHVuaW9uID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgZmFsc2UsIHRydWUpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBkdXBsaWNhdGUtZnJlZSB2ZXJzaW9uIG9mIGFuIGFycmF5LCB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucywgaW4gd2hpY2ggb25seSB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIGVhY2ggZWxlbWVudFxuICAgICAqIGlzIGtlcHQuIFByb3ZpZGluZyBgdHJ1ZWAgZm9yIGBpc1NvcnRlZGAgcGVyZm9ybXMgYSBmYXN0ZXIgc2VhcmNoIGFsZ29yaXRobVxuICAgICAqIGZvciBzb3J0ZWQgYXJyYXlzLiBJZiBhbiBpdGVyYXRlZSBmdW5jdGlvbiBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkIGZvclxuICAgICAqIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieSB3aGljaCB1bmlxdWVuZXNzXG4gICAgICogaXMgY29tcHV0ZWQuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgdW5pcXVlXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNTb3J0ZWRdIFNwZWNpZnkgdGhlIGFycmF5IGlzIHNvcnRlZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUtdmFsdWUtZnJlZSBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51bmlxKFsyLCAxLCAyXSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBgaXNTb3J0ZWRgXG4gICAgICogXy51bmlxKFsxLCAxLCAyXSwgdHJ1ZSk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBhbiBpdGVyYXRlZSBmdW5jdGlvblxuICAgICAqIF8udW5pcShbMSwgMi41LCAxLjUsIDJdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gdGhpcy5mbG9vcihuKTtcbiAgICAgKiB9LCBNYXRoKTtcbiAgICAgKiAvLyA9PiBbMSwgMi41XVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnVuaXEoW3sgJ3gnOiAxIH0sIHsgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXEoYXJyYXksIGlzU29ydGVkLCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1NvcnRlZCAhPSBudWxsICYmIHR5cGVvZiBpc1NvcnRlZCAhPSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpc0FyZyA9IGl0ZXJhdGVlO1xuICAgICAgICBpdGVyYXRlZSA9IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBpc1NvcnRlZCwgdGhpc0FyZykgPyBudWxsIDogaXNTb3J0ZWQ7XG4gICAgICAgIGlzU29ydGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgZnVuYyA9IGdldENhbGxiYWNrKCk7XG4gICAgICBpZiAoIShmdW5jID09PSBiYXNlQ2FsbGJhY2sgJiYgaXRlcmF0ZWUgPT0gbnVsbCkpIHtcbiAgICAgICAgaXRlcmF0ZWUgPSBmdW5jKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoaXNTb3J0ZWQgJiYgZ2V0SW5kZXhPZigpID09IGJhc2VJbmRleE9mKVxuICAgICAgICA/IHNvcnRlZFVuaXEoYXJyYXksIGl0ZXJhdGVlKVxuICAgICAgICA6IGJhc2VVbmlxKGFycmF5LCBpdGVyYXRlZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYW4gYXJyYXkgb2YgZ3JvdXBlZFxuICAgICAqIGVsZW1lbnRzIGFuZCBjcmVhdGVzIGFuIGFycmF5IHJlZ3JvdXBpbmcgdGhlIGVsZW1lbnRzIHRvIHRoZWlyIHByZS16aXBcbiAgICAgKiBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZWdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB6aXBwZWQgPSBfLnppcChbJ2ZyZWQnLCAnYmFybmV5J10sIFszMCwgNDBdLCBbdHJ1ZSwgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBbWydmcmVkJywgMzAsIHRydWVdLCBbJ2Jhcm5leScsIDQwLCBmYWxzZV1dXG4gICAgICpcbiAgICAgKiBfLnVuemlwKHppcHBlZCk7XG4gICAgICogLy8gPT4gW1snZnJlZCcsICdiYXJuZXknXSwgWzMwLCA0MF0sIFt0cnVlLCBmYWxzZV1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW56aXAoYXJyYXkpIHtcbiAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gMDtcblxuICAgICAgYXJyYXkgPSBhcnJheUZpbHRlcihhcnJheSwgZnVuY3Rpb24oZ3JvdXApIHtcbiAgICAgICAgaWYgKGlzQXJyYXlMaWtlKGdyb3VwKSkge1xuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChncm91cC5sZW5ndGgsIGxlbmd0aCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gYXJyYXlNYXAoYXJyYXksIGJhc2VQcm9wZXJ0eShpbmRleCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuemlwYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGFuIGl0ZXJhdGVlIHRvIHNwZWNpZnlcbiAgICAgKiBob3cgcmVncm91cGVkIHZhbHVlcyBzaG91bGQgYmUgY29tYmluZWQuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYFxuICAgICAqIGFuZCBpbnZva2VkIHdpdGggZm91ciBhcmd1bWVudHM6IChhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBncm91cCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cyB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmUgcmVncm91cGVkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZWdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB6aXBwZWQgPSBfLnppcChbMSwgMl0sIFsxMCwgMjBdLCBbMTAwLCAyMDBdKTtcbiAgICAgKiAvLyA9PiBbWzEsIDEwLCAxMDBdLCBbMiwgMjAsIDIwMF1dXG4gICAgICpcbiAgICAgKiBfLnVuemlwV2l0aCh6aXBwZWQsIF8uYWRkKTtcbiAgICAgKiAvLyA9PiBbMywgMzAsIDMwMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnppcFdpdGgoYXJyYXksIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IHVuemlwKGFycmF5KTtcbiAgICAgIGlmIChpdGVyYXRlZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBpdGVyYXRlZSA9IGJpbmRDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgNCk7XG4gICAgICByZXR1cm4gYXJyYXlNYXAocmVzdWx0LCBmdW5jdGlvbihncm91cCkge1xuICAgICAgICByZXR1cm4gYXJyYXlSZWR1Y2UoZ3JvdXAsIGl0ZXJhdGVlLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBleGNsdWRpbmcgYWxsIHByb3ZpZGVkIHZhbHVlcyB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWx0ZXIuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLndpdGhvdXQoWzEsIDIsIDEsIDNdLCAxLCAyKTtcbiAgICAgKiAvLyA9PiBbM11cbiAgICAgKi9cbiAgICB2YXIgd2l0aG91dCA9IHJlc3RQYXJhbShmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2UoYXJyYXkpXG4gICAgICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIHZhbHVlcylcbiAgICAgICAgOiBbXTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgdGhhdCBpcyB0aGUgW3N5bW1ldHJpYyBkaWZmZXJlbmNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TeW1tZXRyaWNfZGlmZmVyZW5jZSlcbiAgICAgKiBvZiB0aGUgcHJvdmlkZWQgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy54b3IoWzEsIDJdLCBbNCwgMl0pO1xuICAgICAqIC8vID0+IFsxLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHhvcigpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBhcnJheSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgIGlmIChpc0FycmF5TGlrZShhcnJheSkpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gcmVzdWx0XG4gICAgICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKHJlc3VsdCwgYXJyYXkpLmNvbmNhdChiYXNlRGlmZmVyZW5jZShhcnJheSwgcmVzdWx0KSlcbiAgICAgICAgICAgIDogYXJyYXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQgPyBiYXNlVW5pcShyZXN1bHQpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLCB0aGUgZmlyc3Qgb2Ygd2hpY2ggY29udGFpbnMgdGhlIGZpcnN0XG4gICAgICogZWxlbWVudHMgb2YgdGhlIGdpdmVuIGFycmF5cywgdGhlIHNlY29uZCBvZiB3aGljaCBjb250YWlucyB0aGUgc2Vjb25kIGVsZW1lbnRzXG4gICAgICogb2YgdGhlIGdpdmVuIGFycmF5cywgYW5kIHNvIG9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uemlwKFsnZnJlZCcsICdiYXJuZXknXSwgWzMwLCA0MF0sIFt0cnVlLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IFtbJ2ZyZWQnLCAzMCwgdHJ1ZV0sIFsnYmFybmV5JywgNDAsIGZhbHNlXV1cbiAgICAgKi9cbiAgICB2YXIgemlwID0gcmVzdFBhcmFtKHVuemlwKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnZlcnNlIG9mIGBfLnBhaXJzYDsgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBvYmplY3QgY29tcG9zZWQgZnJvbSBhcnJheXNcbiAgICAgKiBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWVzLiBQcm92aWRlIGVpdGhlciBhIHNpbmdsZSB0d28gZGltZW5zaW9uYWwgYXJyYXksXG4gICAgICogZS5nLiBgW1trZXkxLCB2YWx1ZTFdLCBba2V5MiwgdmFsdWUyXV1gIG9yIHR3byBhcnJheXMsIG9uZSBvZiBwcm9wZXJ0eSBuYW1lc1xuICAgICAqIGFuZCBvbmUgb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgb2JqZWN0XG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXM9W11dIFRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXBPYmplY3QoW1snZnJlZCcsIDMwXSwgWydiYXJuZXknLCA0MF1dKTtcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogMzAsICdiYXJuZXknOiA0MCB9XG4gICAgICpcbiAgICAgKiBfLnppcE9iamVjdChbJ2ZyZWQnLCAnYmFybmV5J10sIFszMCwgNDBdKTtcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogMzAsICdiYXJuZXknOiA0MCB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gemlwT2JqZWN0KHByb3BzLCB2YWx1ZXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzID8gcHJvcHMubGVuZ3RoIDogMCxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcblxuICAgICAgaWYgKGxlbmd0aCAmJiAhdmFsdWVzICYmICFpc0FycmF5KHByb3BzWzBdKSkge1xuICAgICAgICB2YWx1ZXMgPSBbXTtcbiAgICAgIH1cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlc1tpbmRleF07XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5KSB7XG4gICAgICAgICAgcmVzdWx0W2tleVswXV0gPSBrZXlbMV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYW4gaXRlcmF0ZWUgdG8gc3BlY2lmeVxuICAgICAqIGhvdyBncm91cGVkIHZhbHVlcyBzaG91bGQgYmUgY29tYmluZWQuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYFxuICAgICAqIGFuZCBpbnZva2VkIHdpdGggZm91ciBhcmd1bWVudHM6IChhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBncm91cCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgZnVuY3Rpb24gdG8gY29tYmluZSBncm91cGVkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcFdpdGgoWzEsIDJdLCBbMTAsIDIwXSwgWzEwMCwgMjAwXSwgXy5hZGQpO1xuICAgICAqIC8vID0+IFsxMTEsIDIyMl1cbiAgICAgKi9cbiAgICB2YXIgemlwV2l0aCA9IHJlc3RQYXJhbShmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheXMubGVuZ3RoLFxuICAgICAgICAgIGl0ZXJhdGVlID0gYXJyYXlzW2xlbmd0aCAtIDJdLFxuICAgICAgICAgIHRoaXNBcmcgPSBhcnJheXNbbGVuZ3RoIC0gMV07XG5cbiAgICAgIGlmIChsZW5ndGggPiAyICYmIHR5cGVvZiBpdGVyYXRlZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGxlbmd0aCAtPSAyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlcmF0ZWUgPSAobGVuZ3RoID4gMSAmJiB0eXBlb2YgdGhpc0FyZyA9PSAnZnVuY3Rpb24nKSA/ICgtLWxlbmd0aCwgdGhpc0FyZykgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXNBcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBhcnJheXMubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgcmV0dXJuIHVuemlwV2l0aChhcnJheXMsIGl0ZXJhdGVlLCB0aGlzQXJnKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgbG9kYXNoYCBvYmplY3QgdGhhdCB3cmFwcyBgdmFsdWVgIHdpdGggZXhwbGljaXQgbWV0aG9kXG4gICAgICogY2hhaW5pbmcgZW5hYmxlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIHZhciB5b3VuZ2VzdCA9IF8uY2hhaW4odXNlcnMpXG4gICAgICogICAuc29ydEJ5KCdhZ2UnKVxuICAgICAqICAgLm1hcChmdW5jdGlvbihjaHIpIHtcbiAgICAgKiAgICAgcmV0dXJuIGNoci51c2VyICsgJyBpcyAnICsgY2hyLmFnZTtcbiAgICAgKiAgIH0pXG4gICAgICogICAuZmlyc3QoKVxuICAgICAqICAgLnZhbHVlKCk7XG4gICAgICogLy8gPT4gJ3BlYmJsZXMgaXMgMSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjaGFpbih2YWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IGxvZGFzaCh2YWx1ZSk7XG4gICAgICByZXN1bHQuX19jaGFpbl9fID0gdHJ1ZTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaW52b2tlcyBgaW50ZXJjZXB0b3JgIGFuZCByZXR1cm5zIGB2YWx1ZWAuIFRoZSBpbnRlcmNlcHRvciBpc1xuICAgICAqIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKHZhbHVlKS4gVGhlIHB1cnBvc2Ugb2ZcbiAgICAgKiB0aGlzIG1ldGhvZCBpcyB0byBcInRhcCBpbnRvXCIgYSBtZXRob2QgY2hhaW4gaW4gb3JkZXIgdG8gcGVyZm9ybSBvcGVyYXRpb25zXG4gICAgICogb24gaW50ZXJtZWRpYXRlIHJlc3VsdHMgd2l0aGluIHRoZSBjaGFpbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb3ZpZGUgdG8gYGludGVyY2VwdG9yYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpbnRlcmNlcHRvciBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oWzEsIDIsIDNdKVxuICAgICAqICAudGFwKGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgICogICAgYXJyYXkucG9wKCk7XG4gICAgICogIH0pXG4gICAgICogIC5yZXZlcnNlKClcbiAgICAgKiAgLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFwKHZhbHVlLCBpbnRlcmNlcHRvciwgdGhpc0FyZykge1xuICAgICAgaW50ZXJjZXB0b3IuY2FsbCh0aGlzQXJnLCB2YWx1ZSk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy50YXBgIGV4Y2VwdCB0aGF0IGl0IHJldHVybnMgdGhlIHJlc3VsdCBvZiBgaW50ZXJjZXB0b3JgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENoYWluXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvdmlkZSB0byBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGludGVyY2VwdG9yIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKCcgIGFiYyAgJylcbiAgICAgKiAgLmNoYWluKClcbiAgICAgKiAgLnRyaW0oKVxuICAgICAqICAudGhydShmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgIHJldHVybiBbdmFsdWVdO1xuICAgICAqICB9KVxuICAgICAqICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbJ2FiYyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGhydSh2YWx1ZSwgaW50ZXJjZXB0b3IsIHRoaXNBcmcpIHtcbiAgICAgIHJldHVybiBpbnRlcmNlcHRvci5jYWxsKHRoaXNBcmcsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzIGV4cGxpY2l0IG1ldGhvZCBjaGFpbmluZyBvbiB0aGUgd3JhcHBlciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAbmFtZSBjaGFpblxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENoYWluXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIHdpdGhvdXQgZXhwbGljaXQgY2hhaW5pbmdcbiAgICAgKiBfKHVzZXJzKS5maXJzdCgpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKlxuICAgICAqIC8vIHdpdGggZXhwbGljaXQgY2hhaW5pbmdcbiAgICAgKiBfKHVzZXJzKS5jaGFpbigpXG4gICAgICogICAuZmlyc3QoKVxuICAgICAqICAgLnBpY2soJ3VzZXInKVxuICAgICAqICAgLnZhbHVlKCk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ2hhaW4oKSB7XG4gICAgICByZXR1cm4gY2hhaW4odGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgdGhlIGNoYWluZWQgc2VxdWVuY2UgYW5kIHJldHVybnMgdGhlIHdyYXBwZWQgcmVzdWx0LlxuICAgICAqXG4gICAgICogQG5hbWUgY29tbWl0XG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ2hhaW5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDJdO1xuICAgICAqIHZhciB3cmFwcGVyID0gXyhhcnJheSkucHVzaCgzKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIHdyYXBwZXIgPSB3cmFwcGVyLmNvbW1pdCgpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIHdyYXBwZXIubGFzdCgpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ29tbWl0KCkge1xuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHRoaXMudmFsdWUoKSwgdGhpcy5fX2NoYWluX18pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgY2hhaW5lZCBzZXF1ZW5jZSBwbGFudGluZyBgdmFsdWVgIGFzIHRoZSB3cmFwcGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG5hbWUgcGxhbnRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMl07XG4gICAgICogdmFyIHdyYXBwZXIgPSBfKGFycmF5KS5tYXAoZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiBNYXRoLnBvdyh2YWx1ZSwgMik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiB2YXIgb3RoZXIgPSBbMywgNF07XG4gICAgICogdmFyIG90aGVyV3JhcHBlciA9IHdyYXBwZXIucGxhbnQob3RoZXIpO1xuICAgICAqXG4gICAgICogb3RoZXJXcmFwcGVyLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzksIDE2XVxuICAgICAqXG4gICAgICogd3JhcHBlci52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsxLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJQbGFudCh2YWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCxcbiAgICAgICAgICBwYXJlbnQgPSB0aGlzO1xuXG4gICAgICB3aGlsZSAocGFyZW50IGluc3RhbmNlb2YgYmFzZUxvZGFzaCkge1xuICAgICAgICB2YXIgY2xvbmUgPSB3cmFwcGVyQ2xvbmUocGFyZW50KTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gY2xvbmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gY2xvbmU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByZXZpb3VzID0gY2xvbmU7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5fX3dyYXBwZWRfXztcbiAgICAgIH1cbiAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVyc2VzIHRoZSB3cmFwcGVkIGFycmF5IHNvIHRoZSBmaXJzdCBlbGVtZW50IGJlY29tZXMgdGhlIGxhc3QsIHRoZVxuICAgICAqIHNlY29uZCBlbGVtZW50IGJlY29tZXMgdGhlIHNlY29uZCB0byBsYXN0LCBhbmQgc28gb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyB0aGUgd3JhcHBlZCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHJldmVyc2VcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyByZXZlcnNlZCBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XG4gICAgICpcbiAgICAgKiBfKGFycmF5KS5yZXZlcnNlKCkudmFsdWUoKVxuICAgICAqIC8vID0+IFszLCAyLCAxXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFszLCAyLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJSZXZlcnNlKCkge1xuICAgICAgdmFyIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXztcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCkge1xuICAgICAgICAgIHZhbHVlID0gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih2YWx1ZS5yZXZlcnNlKCksIHRoaXMuX19jaGFpbl9fKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnRocnUoZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJldmVyc2UoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIHRoZSByZXN1bHQgb2YgY29lcmNpbmcgdGhlIHVud3JhcHBlZCB2YWx1ZSB0byBhIHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBuYW1lIHRvU3RyaW5nXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ2hhaW5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb2VyY2VkIHN0cmluZyB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXyhbMSwgMiwgM10pLnRvU3RyaW5nKCk7XG4gICAgICogLy8gPT4gJzEsMiwzJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJUb1N0cmluZygpIHtcbiAgICAgIHJldHVybiAodGhpcy52YWx1ZSgpICsgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIHRoZSBjaGFpbmVkIHNlcXVlbmNlIHRvIGV4dHJhY3QgdGhlIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHZhbHVlXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgcnVuLCB0b0pTT04sIHZhbHVlT2ZcbiAgICAgKiBAY2F0ZWdvcnkgQ2hhaW5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKFsxLCAyLCAzXSkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyVmFsdWUoKSB7XG4gICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZSh0aGlzLl9fd3JhcHBlZF9fLCB0aGlzLl9fYWN0aW9uc19fKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGtleXMsIG9yIGluZGV4ZXMsXG4gICAgICogb2YgYGNvbGxlY3Rpb25gLiBLZXlzIG1heSBiZSBzcGVjaWZpZWQgYXMgaW5kaXZpZHVhbCBhcmd1bWVudHMgb3IgYXMgYXJyYXlzXG4gICAgICogb2Yga2V5cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0gey4uLihudW1iZXJ8bnVtYmVyW118c3RyaW5nfHN0cmluZ1tdKX0gW3Byb3BzXSBUaGUgcHJvcGVydHkgbmFtZXNcbiAgICAgKiAgb3IgaW5kZXhlcyBvZiBlbGVtZW50cyB0byBwaWNrLCBzcGVjaWZpZWQgaW5kaXZpZHVhbGx5IG9yIGluIGFycmF5cy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBwaWNrZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uYXQoWydhJywgJ2InLCAnYyddLCBbMCwgMl0pO1xuICAgICAqIC8vID0+IFsnYScsICdjJ11cbiAgICAgKlxuICAgICAqIF8uYXQoWydiYXJuZXknLCAnZnJlZCcsICdwZWJibGVzJ10sIDAsIDIpO1xuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIHZhciBhdCA9IHJlc3RQYXJhbShmdW5jdGlvbihjb2xsZWN0aW9uLCBwcm9wcykge1xuICAgICAgaWYgKGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSB0b0l0ZXJhYmxlKGNvbGxlY3Rpb24pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VBdChjb2xsZWN0aW9uLCBiYXNlRmxhdHRlbihwcm9wcykpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJvdWdoIGBpdGVyYXRlZWAuIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlXG4gICAgICogb2YgZWFjaCBrZXkgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUga2V5IHdhcyByZXR1cm5lZCBieSBgaXRlcmF0ZWVgLlxuICAgICAqIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNvdW50QnkoWzQuMywgNi4xLCA2LjRdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gTWF0aC5mbG9vcihuKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICc0JzogMSwgJzYnOiAyIH1cbiAgICAgKlxuICAgICAqIF8uY291bnRCeShbNC4zLCA2LjEsIDYuNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiB0aGlzLmZsb29yKG4pO1xuICAgICAqIH0sIE1hdGgpO1xuICAgICAqIC8vID0+IHsgJzQnOiAxLCAnNic6IDIgfVxuICAgICAqXG4gICAgICogXy5jb3VudEJ5KFsnb25lJywgJ3R3bycsICd0aHJlZSddLCAnbGVuZ3RoJyk7XG4gICAgICogLy8gPT4geyAnMyc6IDIsICc1JzogMSB9XG4gICAgICovXG4gICAgdmFyIGNvdW50QnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIGtleSkgPyArK3Jlc3VsdFtrZXldIDogKHJlc3VsdFtrZXldID0gMSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yICoqYWxsKiogZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLlxuICAgICAqIFRoZSBwcmVkaWNhdGUgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGFsbFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFsbCBlbGVtZW50cyBwYXNzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5ldmVyeShbdHJ1ZSwgMSwgbnVsbCwgJ3llcyddLCBCb29sZWFuKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZXZlcnkodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmV2ZXJ5KHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5ldmVyeSh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXZlcnkoY29sbGVjdGlvbiwgcHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUV2ZXJ5IDogYmFzZUV2ZXJ5O1xuICAgICAgaWYgKHRoaXNBcmcgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgcHJlZGljYXRlLCB0aGlzQXJnKSkge1xuICAgICAgICBwcmVkaWNhdGUgPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgIT0gJ2Z1bmN0aW9uJyB8fCB0aGlzQXJnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJlZGljYXRlID0gZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAsIHJldHVybmluZyBhbiBhcnJheSBvZiBhbGwgZWxlbWVudHNcbiAgICAgKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZFxuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIHNlbGVjdFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmlsdGVyKFs0LCA1LCA2XSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDA7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzQsIDZdXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLmZpbHRlcih1c2VycywgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5maWx0ZXIodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLmZpbHRlcih1c2VycywgJ2FjdGl2ZScpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5J11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWx0ZXIoY29sbGVjdGlvbiwgcHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgcHJlZGljYXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCwgcmV0dXJuaW5nIHRoZSBmaXJzdCBlbGVtZW50XG4gICAgICogYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmRcbiAgICAgKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBkZXRlY3RcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzZWFyY2guXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5yZXN1bHQoXy5maW5kKHVzZXJzLCBmdW5jdGlvbihjaHIpIHtcbiAgICAgKiAgIHJldHVybiBjaHIuYWdlIDwgNDA7XG4gICAgICogfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+ICdwZWJibGVzJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5yZXN1bHQoXy5maW5kKHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpLCAndXNlcicpO1xuICAgICAqIC8vID0+ICdmcmVkJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsICdhY3RpdmUnKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xuICAgICAqL1xuICAgIHZhciBmaW5kID0gY3JlYXRlRmluZChiYXNlRWFjaCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBgY29sbGVjdGlvbmAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0KFsxLCAyLCAzLCA0XSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDE7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIHZhciBmaW5kTGFzdCA9IGNyZWF0ZUZpbmQoYmFzZUVhY2hSaWdodCwgdHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgYW5kIHRoZVxuICAgICAqIHNvdXJjZSBvYmplY3QsIHJldHVybmluZyB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IGhhcyBlcXVpdmFsZW50IHByb3BlcnR5XG4gICAgICogdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGNvbXBhcmluZyBhcnJheXMsIGJvb2xlYW5zLCBgRGF0ZWAgb2JqZWN0cyxcbiAgICAgKiBudW1iZXJzLCBgT2JqZWN0YCBvYmplY3RzLCByZWdleGVzLCBhbmQgc3RyaW5ncy4gT2JqZWN0cyBhcmUgY29tcGFyZWQgYnlcbiAgICAgKiB0aGVpciBvd24sIG5vdCBpbmhlcml0ZWQsIGVudW1lcmFibGUgcHJvcGVydGllcy4gRm9yIGNvbXBhcmluZyBhIHNpbmdsZVxuICAgICAqIG93biBvciBpbmhlcml0ZWQgcHJvcGVydHkgdmFsdWUgc2VlIGBfLm1hdGNoZXNQcm9wZXJ0eWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzZWFyY2guXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChfLmZpbmRXaGVyZSh1c2VycywgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+ICdiYXJuZXknXG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChfLmZpbmRXaGVyZSh1c2VycywgeyAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9KSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiAnZnJlZCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kV2hlcmUoY29sbGVjdGlvbiwgc291cmNlKSB7XG4gICAgICByZXR1cm4gZmluZChjb2xsZWN0aW9uLCBiYXNlTWF0Y2hlcyhzb3VyY2UpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCBpbnZva2luZyBgaXRlcmF0ZWVgIGZvciBlYWNoIGVsZW1lbnQuXG4gICAgICogVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseVxuICAgICAqIGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogQXMgd2l0aCBvdGhlciBcIkNvbGxlY3Rpb25zXCIgbWV0aG9kcywgb2JqZWN0cyB3aXRoIGEgXCJsZW5ndGhcIiBwcm9wZXJ0eVxuICAgICAqIGFyZSBpdGVyYXRlZCBsaWtlIGFycmF5cy4gVG8gYXZvaWQgdGhpcyBiZWhhdmlvciBgXy5mb3JJbmAgb3IgYF8uZm9yT3duYFxuICAgICAqIG1heSBiZSB1c2VkIGZvciBvYmplY3QgaXRlcmF0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGVhY2hcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdHxzdHJpbmd9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKFsxLCAyXSkuZm9yRWFjaChmdW5jdGlvbihuKSB7XG4gICAgICogICBjb25zb2xlLmxvZyhuKTtcbiAgICAgKiB9KS52YWx1ZSgpO1xuICAgICAqIC8vID0+IGxvZ3MgZWFjaCB2YWx1ZSBmcm9tIGxlZnQgdG8gcmlnaHQgYW5kIHJldHVybnMgdGhlIGFycmF5XG4gICAgICpcbiAgICAgKiBfLmZvckVhY2goeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbihuLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKG4sIGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gbG9ncyBlYWNoIHZhbHVlLWtleSBwYWlyIGFuZCByZXR1cm5zIHRoZSBvYmplY3QgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICB2YXIgZm9yRWFjaCA9IGNyZWF0ZUZvckVhY2goYXJyYXlFYWNoLCBiYXNlRWFjaCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZvckVhY2hgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBgY29sbGVjdGlvbmAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGVhY2hSaWdodFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fHN0cmluZ30gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oWzEsIDJdKS5mb3JFYWNoUmlnaHQoZnVuY3Rpb24obikge1xuICAgICAqICAgY29uc29sZS5sb2cobik7XG4gICAgICogfSkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBsb2dzIGVhY2ggdmFsdWUgZnJvbSByaWdodCB0byBsZWZ0IGFuZCByZXR1cm5zIHRoZSBhcnJheVxuICAgICAqL1xuICAgIHZhciBmb3JFYWNoUmlnaHQgPSBjcmVhdGVGb3JFYWNoKGFycmF5RWFjaFJpZ2h0LCBiYXNlRWFjaFJpZ2h0KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIGtleXMgZ2VuZXJhdGVkIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZ1xuICAgICAqIGVhY2ggZWxlbWVudCBvZiBgY29sbGVjdGlvbmAgdGhyb3VnaCBgaXRlcmF0ZWVgLiBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZVxuICAgICAqIG9mIGVhY2gga2V5IGlzIGFuIGFycmF5IG9mIHRoZSBlbGVtZW50cyByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGUga2V5LlxuICAgICAqIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmdyb3VwQnkoWzQuMiwgNi4xLCA2LjRdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gTWF0aC5mbG9vcihuKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICc0JzogWzQuMl0sICc2JzogWzYuMSwgNi40XSB9XG4gICAgICpcbiAgICAgKiBfLmdyb3VwQnkoWzQuMiwgNi4xLCA2LjRdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gdGhpcy5mbG9vcihuKTtcbiAgICAgKiB9LCBNYXRoKTtcbiAgICAgKiAvLyA9PiB7ICc0JzogWzQuMl0sICc2JzogWzYuMSwgNi40XSB9XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZ3JvdXBCeShbJ29uZScsICd0d28nLCAndGhyZWUnXSwgJ2xlbmd0aCcpO1xuICAgICAqIC8vID0+IHsgJzMnOiBbJ29uZScsICd0d28nXSwgJzUnOiBbJ3RocmVlJ10gfVxuICAgICAqL1xuICAgIHZhciBncm91cEJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwga2V5KSkge1xuICAgICAgICByZXN1bHRba2V5XS5wdXNoKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gW3ZhbHVlXTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGluIGBjb2xsZWN0aW9uYCB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0IGlzIHVzZWQgYXMgdGhlIG9mZnNldFxuICAgICAqIGZyb20gdGhlIGVuZCBvZiBgY29sbGVjdGlvbmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgY29udGFpbnMsIGluY2x1ZGVcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzZWFyY2guXG4gICAgICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9MF0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5yZWR1Y2VgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhIG1hdGNoaW5nIGVsZW1lbnQgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbmNsdWRlcyhbMSwgMiwgM10sIDEpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5jbHVkZXMoWzEsIDIsIDNdLCAxLCAyKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pbmNsdWRlcyh7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfSwgJ2ZyZWQnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKCdwZWJibGVzJywgJ2ViJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluY2x1ZGVzKGNvbGxlY3Rpb24sIHRhcmdldCwgZnJvbUluZGV4LCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24gPyBnZXRMZW5ndGgoY29sbGVjdGlvbikgOiAwO1xuICAgICAgaWYgKCFpc0xlbmd0aChsZW5ndGgpKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSB2YWx1ZXMoY29sbGVjdGlvbik7XG4gICAgICAgIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xuICAgICAgfVxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBmcm9tSW5kZXggIT0gJ251bWJlcicgfHwgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHRhcmdldCwgZnJvbUluZGV4LCBndWFyZCkpKSB7XG4gICAgICAgIGZyb21JbmRleCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmcm9tSW5kZXggPSBmcm9tSW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCkgOiAoZnJvbUluZGV4IHx8IDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuICh0eXBlb2YgY29sbGVjdGlvbiA9PSAnc3RyaW5nJyB8fCAhaXNBcnJheShjb2xsZWN0aW9uKSAmJiBpc1N0cmluZyhjb2xsZWN0aW9uKSlcbiAgICAgICAgPyAoZnJvbUluZGV4IDwgbGVuZ3RoICYmIGNvbGxlY3Rpb24uaW5kZXhPZih0YXJnZXQsIGZyb21JbmRleCkgPiAtMSlcbiAgICAgICAgOiAoZ2V0SW5kZXhPZihjb2xsZWN0aW9uLCB0YXJnZXQsIGZyb21JbmRleCkgPiAtMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJvdWdoIGBpdGVyYXRlZWAuIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlXG4gICAgICogb2YgZWFjaCBrZXkgaXMgdGhlIGxhc3QgZWxlbWVudCByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGUga2V5LiBUaGVcbiAgICAgKiBpdGVyYXRlZSBmdW5jdGlvbiBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gICAgICogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29tcG9zZWQgYWdncmVnYXRlIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGtleURhdGEgPSBbXG4gICAgICogICB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSxcbiAgICAgKiAgIHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5pbmRleEJ5KGtleURhdGEsICdkaXInKTtcbiAgICAgKiAvLyA9PiB7ICdsZWZ0JzogeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sICdyaWdodCc6IHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH0gfVxuICAgICAqXG4gICAgICogXy5pbmRleEJ5KGtleURhdGEsIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAqICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUob2JqZWN0LmNvZGUpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSwgJ2QnOiB7ICdkaXInOiAncmlnaHQnLCAnY29kZSc6IDEwMCB9IH1cbiAgICAgKlxuICAgICAqIF8uaW5kZXhCeShrZXlEYXRhLCBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgKiAgIHJldHVybiB0aGlzLmZyb21DaGFyQ29kZShvYmplY3QuY29kZSk7XG4gICAgICogfSwgU3RyaW5nKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sICdkJzogeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfSB9XG4gICAgICovXG4gICAgdmFyIGluZGV4QnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb24gZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCwgcmV0dXJuaW5nXG4gICAgICogYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2YgZWFjaCBpbnZva2VkIG1ldGhvZC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogYXJlIHByb3ZpZGVkIHRvIGVhY2ggaW52b2tlZCBtZXRob2QuIElmIGBtZXRob2ROYW1lYCBpcyBhIGZ1bmN0aW9uIGl0IGlzXG4gICAgICogaW52b2tlZCBmb3IsIGFuZCBgdGhpc2AgYm91bmQgdG8sIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBcnJheXxGdW5jdGlvbnxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2Ugb3JcbiAgICAgKiAgdGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgbWV0aG9kIHdpdGguXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiByZXN1bHRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmludm9rZShbWzUsIDEsIDddLCBbMywgMiwgMV1dLCAnc29ydCcpO1xuICAgICAqIC8vID0+IFtbMSwgNSwgN10sIFsxLCAyLCAzXV1cbiAgICAgKlxuICAgICAqIF8uaW52b2tlKFsxMjMsIDQ1Nl0sIFN0cmluZy5wcm90b3R5cGUuc3BsaXQsICcnKTtcbiAgICAgKiAvLyA9PiBbWycxJywgJzInLCAnMyddLCBbJzQnLCAnNScsICc2J11dXG4gICAgICovXG4gICAgdmFyIGludm9rZSA9IHJlc3RQYXJhbShmdW5jdGlvbihjb2xsZWN0aW9uLCBwYXRoLCBhcmdzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpc0Z1bmMgPSB0eXBlb2YgcGF0aCA9PSAnZnVuY3Rpb24nLFxuICAgICAgICAgIGlzUHJvcCA9IGlzS2V5KHBhdGgpLFxuICAgICAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHZhciBmdW5jID0gaXNGdW5jID8gcGF0aCA6IChpc1Byb3AgJiYgdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZVtwYXRoXSk7XG4gICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IGZ1bmMgPyBmdW5jLmFwcGx5KHZhbHVlLCBhcmdzKSA6IGludm9rZVBhdGgodmFsdWUsIHBhdGgsIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocm91Z2hcbiAgICAgKiBgaXRlcmF0ZWVgLiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZVxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogTWFueSBsb2Rhc2ggbWV0aG9kcyBhcmUgZ3VhcmRlZCB0byB3b3JrIGFzIGludGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxuICAgICAqIGBfLmV2ZXJ5YCwgYF8uZmlsdGVyYCwgYF8ubWFwYCwgYF8ubWFwVmFsdWVzYCwgYF8ucmVqZWN0YCwgYW5kIGBfLnNvbWVgLlxuICAgICAqXG4gICAgICogVGhlIGd1YXJkZWQgbWV0aG9kcyBhcmU6XG4gICAgICogYGFyeWAsIGBjYWxsYmFja2AsIGBjaHVua2AsIGBjbG9uZWAsIGBjcmVhdGVgLCBgY3VycnlgLCBgY3VycnlSaWdodGAsXG4gICAgICogYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGV2ZXJ5YCwgYGZpbGxgLCBgZmxhdHRlbmAsIGBpbnZlcnRgLCBgbWF4YCwgYG1pbmAsXG4gICAgICogYHBhcnNlSW50YCwgYHNsaWNlYCwgYHNvcnRCeWAsIGB0YWtlYCwgYHRha2VSaWdodGAsIGB0ZW1wbGF0ZWAsIGB0cmltYCxcbiAgICAgKiBgdHJpbUxlZnRgLCBgdHJpbVJpZ2h0YCwgYHRydW5jYCwgYHJhbmRvbWAsIGByYW5nZWAsIGBzYW1wbGVgLCBgc29tZWAsXG4gICAgICogYHN1bWAsIGB1bmlxYCwgYW5kIGB3b3Jkc2BcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBjb2xsZWN0XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiB0aW1lc1RocmVlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogMztcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLm1hcChbMSwgMl0sIHRpbWVzVGhyZWUpO1xuICAgICAqIC8vID0+IFszLCA2XVxuICAgICAqXG4gICAgICogXy5tYXAoeyAnYSc6IDEsICdiJzogMiB9LCB0aW1lc1RocmVlKTtcbiAgICAgKiAvLyA9PiBbMywgNl0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JyB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJyB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5tYXAodXNlcnMsICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAnZnJlZCddXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheU1hcCA6IGJhc2VNYXA7XG4gICAgICBpdGVyYXRlZSA9IGdldENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzIHNwbGl0IGludG8gdHdvIGdyb3VwcywgdGhlIGZpcnN0IG9mIHdoaWNoXG4gICAgICogY29udGFpbnMgZWxlbWVudHMgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLCB3aGlsZSB0aGUgc2Vjb25kIG9mIHdoaWNoXG4gICAgICogY29udGFpbnMgZWxlbWVudHMgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGJvdW5kXG4gICAgICogdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhcnRpdGlvbihbMSwgMiwgM10sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMjtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbWzEsIDNdLCBbMl1dXG4gICAgICpcbiAgICAgKiBfLnBhcnRpdGlvbihbMS4yLCAyLjMsIDMuNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiB0aGlzLmZsb29yKG4pICUgMjtcbiAgICAgKiB9LCBNYXRoKTtcbiAgICAgKiAvLyA9PiBbWzEuMiwgMy40XSwgWzIuM11dXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEsICAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiB2YXIgbWFwcGVyID0gZnVuY3Rpb24oYXJyYXkpIHtcbiAgICAgKiAgIHJldHVybiBfLnBsdWNrKGFycmF5LCAndXNlcicpO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5tYXAoXy5wYXJ0aXRpb24odXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiBmYWxzZSB9KSwgbWFwcGVyKTtcbiAgICAgKiAvLyA9PiBbWydwZWJibGVzJ10sIFsnYmFybmV5JywgJ2ZyZWQnXV1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ubWFwKF8ucGFydGl0aW9uKHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpLCBtYXBwZXIpO1xuICAgICAqIC8vID0+IFtbJ2Jhcm5leScsICdwZWJibGVzJ10sIFsnZnJlZCddXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLm1hcChfLnBhcnRpdGlvbih1c2VycywgJ2FjdGl2ZScpLCBtYXBwZXIpO1xuICAgICAqIC8vID0+IFtbJ2ZyZWQnXSwgWydiYXJuZXknLCAncGViYmxlcyddXVxuICAgICAqL1xuICAgIHZhciBwYXJ0aXRpb24gPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgcmVzdWx0W2tleSA/IDAgOiAxXS5wdXNoKHZhbHVlKTtcbiAgICB9LCBmdW5jdGlvbigpIHsgcmV0dXJuIFtbXSwgW11dOyB9KTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIGBwYXRoYCBmcm9tIGFsbCBlbGVtZW50cyBpbiBgY29sbGVjdGlvbmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHBsdWNrLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnBsdWNrKHVzZXJzLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogdmFyIHVzZXJJbmRleCA9IF8uaW5kZXhCeSh1c2VycywgJ3VzZXInKTtcbiAgICAgKiBfLnBsdWNrKHVzZXJJbmRleCwgJ2FnZScpO1xuICAgICAqIC8vID0+IFszNiwgNDBdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGx1Y2soY29sbGVjdGlvbiwgcGF0aCkge1xuICAgICAgcmV0dXJuIG1hcChjb2xsZWN0aW9uLCBwcm9wZXJ0eShwYXRoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVkdWNlcyBgY29sbGVjdGlvbmAgdG8gYSB2YWx1ZSB3aGljaCBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0IG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocm91Z2ggYGl0ZXJhdGVlYCwgd2hlcmUgZWFjaCBzdWNjZXNzaXZlXG4gICAgICogaW52b2NhdGlvbiBpcyBzdXBwbGllZCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBwcmV2aW91cy4gSWYgYGFjY3VtdWxhdG9yYFxuICAgICAqIGlzIG5vdCBwcm92aWRlZCB0aGUgZmlyc3QgZWxlbWVudCBvZiBgY29sbGVjdGlvbmAgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbFxuICAgICAqIHZhbHVlLiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czpcbiAgICAgKiAoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogTWFueSBsb2Rhc2ggbWV0aG9kcyBhcmUgZ3VhcmRlZCB0byB3b3JrIGFzIGludGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxuICAgICAqIGBfLnJlZHVjZWAsIGBfLnJlZHVjZVJpZ2h0YCwgYW5kIGBfLnRyYW5zZm9ybWAuXG4gICAgICpcbiAgICAgKiBUaGUgZ3VhcmRlZCBtZXRob2RzIGFyZTpcbiAgICAgKiBgYXNzaWduYCwgYGRlZmF1bHRzYCwgYGluY2x1ZGVzYCwgYG1lcmdlYCwgYHNvcnRCeUFsbGAsIGFuZCBgc29ydEJ5T3JkZXJgXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgZm9sZGwsIGluamVjdFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlZHVjZShbMSwgMl0sIGZ1bmN0aW9uKHRvdGFsLCBuKSB7XG4gICAgICogICByZXR1cm4gdG90YWwgKyBuO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24ocmVzdWx0LCBuLCBrZXkpIHtcbiAgICAgKiAgIHJlc3VsdFtrZXldID0gbiAqIDM7XG4gICAgICogICByZXR1cm4gcmVzdWx0O1xuICAgICAqIH0sIHt9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMywgJ2InOiA2IH0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICB2YXIgcmVkdWNlID0gY3JlYXRlUmVkdWNlKGFycmF5UmVkdWNlLCBiYXNlRWFjaCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnJlZHVjZWAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgZm9sZHJcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW1swLCAxXSwgWzIsIDNdLCBbNCwgNV1dO1xuICAgICAqXG4gICAgICogXy5yZWR1Y2VSaWdodChhcnJheSwgZnVuY3Rpb24oZmxhdHRlbmVkLCBvdGhlcikge1xuICAgICAqICAgcmV0dXJuIGZsYXR0ZW5lZC5jb25jYXQob3RoZXIpO1xuICAgICAqIH0sIFtdKTtcbiAgICAgKiAvLyA9PiBbNCwgNSwgMiwgMywgMCwgMV1cbiAgICAgKi9cbiAgICB2YXIgcmVkdWNlUmlnaHQgPSBjcmVhdGVSZWR1Y2UoYXJyYXlSZWR1Y2VSaWdodCwgYmFzZUVhY2hSaWdodCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8uZmlsdGVyYDsgdGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gXG4gICAgICogdGhhdCBgcHJlZGljYXRlYCBkb2VzICoqbm90KiogcmV0dXJuIHRydXRoeSBmb3IuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlamVjdChbMSwgMiwgMywgNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IFsxLCAzXVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5yZWplY3QodXNlcnMsIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSB9KSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8ucmVqZWN0KHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5yZWplY3QodXNlcnMsICdhY3RpdmUnKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leSddXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVqZWN0KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlGaWx0ZXIgOiBiYXNlRmlsdGVyO1xuICAgICAgcHJlZGljYXRlID0gZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKTtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICByZXR1cm4gIXByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHJhbmRvbSBlbGVtZW50IG9yIGBuYCByYW5kb20gZWxlbWVudHMgZnJvbSBhIGNvbGxlY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmFuZG9tIHNhbXBsZShzKS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zYW1wbGUoWzEsIDIsIDMsIDRdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiBfLnNhbXBsZShbMSwgMiwgMywgNF0sIDIpO1xuICAgICAqIC8vID0+IFszLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNhbXBsZShjb2xsZWN0aW9uLCBuLCBndWFyZCkge1xuICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgbiwgZ3VhcmQpIDogbiA9PSBudWxsKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSB0b0l0ZXJhYmxlKGNvbGxlY3Rpb24pO1xuICAgICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICAgIHJldHVybiBsZW5ndGggPiAwID8gY29sbGVjdGlvbltiYXNlUmFuZG9tKDAsIGxlbmd0aCAtIDEpXSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBzaHVmZmxlKGNvbGxlY3Rpb24pO1xuICAgICAgcmVzdWx0Lmxlbmd0aCA9IG5hdGl2ZU1pbihuIDwgMCA/IDAgOiAoK24gfHwgMCksIHJlc3VsdC5sZW5ndGgpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHNodWZmbGVkIHZhbHVlcywgdXNpbmcgYSB2ZXJzaW9uIG9mIHRoZVxuICAgICAqIFtGaXNoZXItWWF0ZXMgc2h1ZmZsZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyLVlhdGVzX3NodWZmbGUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2h1ZmZsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zaHVmZmxlKFsxLCAyLCAzLCA0XSk7XG4gICAgICogLy8gPT4gWzQsIDEsIDMsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2h1ZmZsZShjb2xsZWN0aW9uKSB7XG4gICAgICBjb2xsZWN0aW9uID0gdG9JdGVyYWJsZShjb2xsZWN0aW9uKTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHJhbmQgPSBiYXNlUmFuZG9tKDAsIGluZGV4KTtcbiAgICAgICAgaWYgKGluZGV4ICE9IHJhbmQpIHtcbiAgICAgICAgICByZXN1bHRbaW5kZXhdID0gcmVzdWx0W3JhbmRdO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdFtyYW5kXSA9IGNvbGxlY3Rpb25baW5kZXhdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzaXplIG9mIGBjb2xsZWN0aW9uYCBieSByZXR1cm5pbmcgaXRzIGxlbmd0aCBmb3IgYXJyYXktbGlrZVxuICAgICAqIHZhbHVlcyBvciB0aGUgbnVtYmVyIG9mIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgZm9yIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHNpemUgb2YgYGNvbGxlY3Rpb25gLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNpemUoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnNpemUoeyAnYSc6IDEsICdiJzogMiB9KTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiBfLnNpemUoJ3BlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiA3XG4gICAgICovXG4gICAgZnVuY3Rpb24gc2l6ZShjb2xsZWN0aW9uKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbiA/IGdldExlbmd0aChjb2xsZWN0aW9uKSA6IDA7XG4gICAgICByZXR1cm4gaXNMZW5ndGgobGVuZ3RoKSA/IGxlbmd0aCA6IGtleXMoY29sbGVjdGlvbikubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbnkqKiBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBUaGUgZnVuY3Rpb24gcmV0dXJucyBhcyBzb29uIGFzIGl0IGZpbmRzIGEgcGFzc2luZyB2YWx1ZSBhbmQgZG9lcyBub3QgaXRlcmF0ZVxuICAgICAqIG92ZXIgdGhlIGVudGlyZSBjb2xsZWN0aW9uLiBUaGUgcHJlZGljYXRlIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBhbnlcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvbWUoW251bGwsIDAsICd5ZXMnLCBmYWxzZV0sIEJvb2xlYW4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uc29tZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uc29tZSh1c2VycywgJ2FjdGl2ZScsIGZhbHNlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uc29tZSh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb21lKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTb21lIDogYmFzZVNvbWU7XG4gICAgICBpZiAodGhpc0FyZyAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIHRoaXNBcmcpKSB7XG4gICAgICAgIHByZWRpY2F0ZSA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPSAnZnVuY3Rpb24nIHx8IHRoaXNBcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgcHJlZGljYXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzLCBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IHRoZSByZXN1bHRzIG9mXG4gICAgICogcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYSBjb2xsZWN0aW9uIHRocm91Z2ggYGl0ZXJhdGVlYC4gVGhpcyBtZXRob2QgcGVyZm9ybXNcbiAgICAgKiBhIHN0YWJsZSBzb3J0LCB0aGF0IGlzLCBpdCBwcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsIHNvcnQgb3JkZXIgb2YgZXF1YWwgZWxlbWVudHMuXG4gICAgICogVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0QnkoWzEsIDIsIDNdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gTWF0aC5zaW4obik7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzMsIDEsIDJdXG4gICAgICpcbiAgICAgKiBfLnNvcnRCeShbMSwgMiwgM10sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiB0aGlzLnNpbihuKTtcbiAgICAgKiB9LCBNYXRoKTtcbiAgICAgKiAvLyA9PiBbMywgMSwgMl1cbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JyB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLnNvcnRCeSh1c2VycywgJ3VzZXInKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRCeShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAodGhpc0FyZyAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBpdGVyYXRlZSwgdGhpc0FyZykpIHtcbiAgICAgICAgaXRlcmF0ZWUgPSBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICBpdGVyYXRlZSA9IGdldENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcblxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VNYXAoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgICAgICByZXR1cm4geyAnY3JpdGVyaWEnOiBpdGVyYXRlZSh2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSwgJ2luZGV4JzogKytpbmRleCwgJ3ZhbHVlJzogdmFsdWUgfTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGJhc2VTb3J0QnkocmVzdWx0LCBjb21wYXJlQXNjZW5kaW5nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRCeWAgZXhjZXB0IHRoYXQgaXQgY2FuIHNvcnQgYnkgbXVsdGlwbGUgaXRlcmF0ZWVzXG4gICAgICogb3IgcHJvcGVydHkgbmFtZXMuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGFuIGl0ZXJhdGVlIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBhbiBpdGVyYXRlZSB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXXxPYmplY3R8T2JqZWN0W118c3RyaW5nfHN0cmluZ1tdKX0gaXRlcmF0ZWVzXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieSwgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgdmFsdWVzIG9yIGFycmF5cyBvZiB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0OCB9LFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQyIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWFwKF8uc29ydEJ5QWxsKHVzZXJzLCBbJ3VzZXInLCAnYWdlJ10pLCBfLnZhbHVlcyk7XG4gICAgICogLy8gPT4gW1snYmFybmV5JywgMzRdLCBbJ2Jhcm5leScsIDM2XSwgWydmcmVkJywgNDJdLCBbJ2ZyZWQnLCA0OF1dXG4gICAgICpcbiAgICAgKiBfLm1hcChfLnNvcnRCeUFsbCh1c2VycywgJ3VzZXInLCBmdW5jdGlvbihjaHIpIHtcbiAgICAgKiAgIHJldHVybiBNYXRoLmZsb29yKGNoci5hZ2UgLyAxMCk7XG4gICAgICogfSksIF8udmFsdWVzKTtcbiAgICAgKiAvLyA9PiBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDQyXV1cbiAgICAgKi9cbiAgICB2YXIgc29ydEJ5QWxsID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlcykge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgZ3VhcmQgPSBpdGVyYXRlZXNbMl07XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0sIGd1YXJkKSkge1xuICAgICAgICBpdGVyYXRlZXMubGVuZ3RoID0gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlU29ydEJ5T3JkZXIoY29sbGVjdGlvbiwgYmFzZUZsYXR0ZW4oaXRlcmF0ZWVzKSwgW10pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0QnlBbGxgIGV4Y2VwdCB0aGF0IGl0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZVxuICAgICAqIHNvcnQgb3JkZXJzIG9mIHRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS4gQSB0cnV0aHkgdmFsdWUgaW4gYG9yZGVyc2Agd2lsbFxuICAgICAqIHNvcnQgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgbmFtZSBpbiBhc2NlbmRpbmcgb3JkZXIgd2hpbGUgYSBmYWxzZXlcbiAgICAgKiB2YWx1ZSB3aWxsIHNvcnQgaXQgaW4gZGVzY2VuZGluZyBvcmRlci5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYW4gaXRlcmF0ZWUgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGFuIGl0ZXJhdGVlIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IGl0ZXJhdGVlcyBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gICAgICogQHBhcmFtIHtib29sZWFuW119IG9yZGVycyBUaGUgc29ydCBvcmRlcnMgb2YgYGl0ZXJhdGVlc2AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLnJlZHVjZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0OCB9LFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzQgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQyIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIHNvcnQgYnkgYHVzZXJgIGluIGFzY2VuZGluZyBvcmRlciBhbmQgYnkgYGFnZWAgaW4gZGVzY2VuZGluZyBvcmRlclxuICAgICAqIF8ubWFwKF8uc29ydEJ5T3JkZXIodXNlcnMsIFsndXNlcicsICdhZ2UnXSwgW3RydWUsIGZhbHNlXSksIF8udmFsdWVzKTtcbiAgICAgKiAvLyA9PiBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDQyXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0QnlPcmRlcihjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycywgZ3VhcmQpIHtcbiAgICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGl0ZXJhdGVlcywgb3JkZXJzLCBndWFyZCkpIHtcbiAgICAgICAgb3JkZXJzID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICghaXNBcnJheShpdGVyYXRlZXMpKSB7XG4gICAgICAgIGl0ZXJhdGVlcyA9IGl0ZXJhdGVlcyA9PSBudWxsID8gW10gOiBbaXRlcmF0ZWVzXTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNBcnJheShvcmRlcnMpKSB7XG4gICAgICAgIG9yZGVycyA9IG9yZGVycyA9PSBudWxsID8gW10gOiBbb3JkZXJzXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlU29ydEJ5T3JkZXIoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCBhbmQgdGhlXG4gICAgICogc291cmNlIG9iamVjdCwgcmV0dXJuaW5nIGFuIGFycmF5IG9mIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgZXF1aXZhbGVudFxuICAgICAqIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBjb21wYXJpbmcgYXJyYXlzLCBib29sZWFucywgYERhdGVgIG9iamVjdHMsXG4gICAgICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgYW5kIHN0cmluZ3MuIE9iamVjdHMgYXJlIGNvbXBhcmVkIGJ5XG4gICAgICogdGhlaXIgb3duLCBub3QgaW5oZXJpdGVkLCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuIEZvciBjb21wYXJpbmcgYSBzaW5nbGVcbiAgICAgKiBvd24gb3IgaW5oZXJpdGVkIHByb3BlcnR5IHZhbHVlIHNlZSBgXy5tYXRjaGVzUHJvcGVydHlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UsICdwZXRzJzogWydob3BweSddIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IHRydWUsICdwZXRzJzogWydiYWJ5IHB1c3MnLCAnZGlubyddIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5wbHVjayhfLndoZXJlKHVzZXJzLCB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIF8ucGx1Y2soXy53aGVyZSh1c2VycywgeyAncGV0cyc6IFsnZGlubyddIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnZnJlZCddXG4gICAgICovXG4gICAgZnVuY3Rpb24gd2hlcmUoY29sbGVjdGlvbiwgc291cmNlKSB7XG4gICAgICByZXR1cm4gZmlsdGVyKGNvbGxlY3Rpb24sIGJhc2VNYXRjaGVzKHNvdXJjZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIFVuaXggZXBvY2hcbiAgICAgKiAoMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBEYXRlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmZXIoZnVuY3Rpb24oc3RhbXApIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKF8ubm93KCkgLSBzdGFtcCk7XG4gICAgICogfSwgXy5ub3coKSk7XG4gICAgICogLy8gPT4gbG9ncyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpdCB0b29rIGZvciB0aGUgZGVmZXJyZWQgZnVuY3Rpb24gdG8gYmUgaW52b2tlZFxuICAgICAqL1xuICAgIHZhciBub3cgPSBuYXRpdmVOb3cgfHwgZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5iZWZvcmVgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzXG4gICAgICogYGZ1bmNgIG9uY2UgaXQgaXMgY2FsbGVkIGBuYCBvciBtb3JlIHRpbWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBjYWxscyBiZWZvcmUgYGZ1bmNgIGlzIGludm9rZWQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHNhdmVzID0gWydwcm9maWxlJywgJ3NldHRpbmdzJ107XG4gICAgICpcbiAgICAgKiB2YXIgZG9uZSA9IF8uYWZ0ZXIoc2F2ZXMubGVuZ3RoLCBmdW5jdGlvbigpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKCdkb25lIHNhdmluZyEnKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIF8uZm9yRWFjaChzYXZlcywgZnVuY3Rpb24odHlwZSkge1xuICAgICAqICAgYXN5bmNTYXZlKHsgJ3R5cGUnOiB0eXBlLCAnY29tcGxldGUnOiBkb25lIH0pO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IGxvZ3MgJ2RvbmUgc2F2aW5nIScgYWZ0ZXIgdGhlIHR3byBhc3luYyBzYXZlcyBoYXZlIGNvbXBsZXRlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFmdGVyKG4sIGZ1bmMpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbiA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdmFyIHRlbXAgPSBuO1xuICAgICAgICAgIG4gPSBmdW5jO1xuICAgICAgICAgIGZ1bmMgPSB0ZW1wO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbiA9IG5hdGl2ZUlzRmluaXRlKG4gPSArbikgPyBuIDogMDtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKC0tbiA8IDEpIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gYG5gIGFyZ3VtZW50cyBpZ25vcmluZyBhbnlcbiAgICAgKiBhZGRpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IGNhcC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXAoWyc2JywgJzgnLCAnMTAnXSwgXy5hcnkocGFyc2VJbnQsIDEpKTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJ5KGZ1bmMsIG4sIGd1YXJkKSB7XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoZnVuYywgbiwgZ3VhcmQpKSB7XG4gICAgICAgIG4gPSBudWxsO1xuICAgICAgfVxuICAgICAgbiA9IChmdW5jICYmIG4gPT0gbnVsbCkgPyBmdW5jLmxlbmd0aCA6IG5hdGl2ZU1heCgrbiB8fCAwLCAwKTtcbiAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGZ1bmMsIEFSWV9GTEFHLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCwgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50c1xuICAgICAqIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLCB3aGlsZSBpdCBpcyBjYWxsZWQgbGVzcyB0aGFuIGBuYCB0aW1lcy4gU3Vic2VxdWVudFxuICAgICAqIGNhbGxzIHRvIHRoZSBjcmVhdGVkIGZ1bmN0aW9uIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYCBpbnZvY2F0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBjYWxscyBhdCB3aGljaCBgZnVuY2AgaXMgbm8gbG9uZ2VyIGludm9rZWQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogalF1ZXJ5KCcjYWRkJykub24oJ2NsaWNrJywgXy5iZWZvcmUoNSwgYWRkQ29udGFjdFRvTGlzdCkpO1xuICAgICAqIC8vID0+IGFsbG93cyBhZGRpbmcgdXAgdG8gNCBjb250YWN0cyB0byB0aGUgbGlzdFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJlZm9yZShuLCBmdW5jKSB7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgdGVtcCA9IG47XG4gICAgICAgICAgbiA9IGZ1bmM7XG4gICAgICAgICAgZnVuYyA9IHRlbXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICgtLW4gPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuIDw9IDEpIHtcbiAgICAgICAgICBmdW5jID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBgdGhpc0FyZ2BcbiAgICAgKiBhbmQgcHJlcGVuZHMgYW55IGFkZGl0aW9uYWwgYF8uYmluZGAgYXJndW1lbnRzIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZVxuICAgICAqIGJvdW5kIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogVGhlIGBfLmJpbmQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gICAgICogbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBuYXRpdmUgYEZ1bmN0aW9uI2JpbmRgIHRoaXMgbWV0aG9kIGRvZXMgbm90IHNldCB0aGUgXCJsZW5ndGhcIlxuICAgICAqIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gICAgICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBncmVldCA9IGZ1bmN0aW9uKGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnIH07XG4gICAgICpcbiAgICAgKiB2YXIgYm91bmQgPSBfLmJpbmQoZ3JlZXQsIG9iamVjdCwgJ2hpJyk7XG4gICAgICogYm91bmQoJyEnKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCEnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBwbGFjZWhvbGRlcnNcbiAgICAgKiB2YXIgYm91bmQgPSBfLmJpbmQoZ3JlZXQsIG9iamVjdCwgXywgJyEnKTtcbiAgICAgKiBib3VuZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCEnXG4gICAgICovXG4gICAgdmFyIGJpbmQgPSByZXN0UGFyYW0oZnVuY3Rpb24oZnVuYywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gQklORF9GTEFHO1xuICAgICAgaWYgKHBhcnRpYWxzLmxlbmd0aCkge1xuICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBiaW5kLnBsYWNlaG9sZGVyKTtcbiAgICAgICAgYml0bWFzayB8PSBQQVJUSUFMX0ZMQUc7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBCaW5kcyBtZXRob2RzIG9mIGFuIG9iamVjdCB0byB0aGUgb2JqZWN0IGl0c2VsZiwgb3ZlcndyaXRpbmcgdGhlIGV4aXN0aW5nXG4gICAgICogbWV0aG9kLiBNZXRob2QgbmFtZXMgbWF5IGJlIHNwZWNpZmllZCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50cyBvciBhcyBhcnJheXNcbiAgICAgKiBvZiBtZXRob2QgbmFtZXMuIElmIG5vIG1ldGhvZCBuYW1lcyBhcmUgcHJvdmlkZWQgYWxsIGVudW1lcmFibGUgZnVuY3Rpb25cbiAgICAgKiBwcm9wZXJ0aWVzLCBvd24gYW5kIGluaGVyaXRlZCwgb2YgYG9iamVjdGAgYXJlIGJvdW5kLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXMgbm90IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBib3VuZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gYmluZCBhbmQgYXNzaWduIHRoZSBib3VuZCBtZXRob2RzIHRvLlxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFttZXRob2ROYW1lc10gVGhlIG9iamVjdCBtZXRob2QgbmFtZXMgdG8gYmluZCxcbiAgICAgKiAgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgbWV0aG9kIG5hbWVzIG9yIGFycmF5cyBvZiBtZXRob2QgbmFtZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHZpZXcgPSB7XG4gICAgICogICAnbGFiZWwnOiAnZG9jcycsXG4gICAgICogICAnb25DbGljayc6IGZ1bmN0aW9uKCkge1xuICAgICAqICAgICBjb25zb2xlLmxvZygnY2xpY2tlZCAnICsgdGhpcy5sYWJlbCk7XG4gICAgICogICB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8uYmluZEFsbCh2aWV3KTtcbiAgICAgKiBqUXVlcnkoJyNkb2NzJykub24oJ2NsaWNrJywgdmlldy5vbkNsaWNrKTtcbiAgICAgKiAvLyA9PiBsb2dzICdjbGlja2VkIGRvY3MnIHdoZW4gdGhlIGVsZW1lbnQgaXMgY2xpY2tlZFxuICAgICAqL1xuICAgIHZhciBiaW5kQWxsID0gcmVzdFBhcmFtKGZ1bmN0aW9uKG9iamVjdCwgbWV0aG9kTmFtZXMpIHtcbiAgICAgIG1ldGhvZE5hbWVzID0gbWV0aG9kTmFtZXMubGVuZ3RoID8gYmFzZUZsYXR0ZW4obWV0aG9kTmFtZXMpIDogZnVuY3Rpb25zKG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IG1ldGhvZE5hbWVzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IG1ldGhvZE5hbWVzW2luZGV4XTtcbiAgICAgICAgb2JqZWN0W2tleV0gPSBjcmVhdGVXcmFwcGVyKG9iamVjdFtrZXldLCBCSU5EX0ZMQUcsIG9iamVjdCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyB0aGUgbWV0aG9kIGF0IGBvYmplY3Rba2V5XWAgYW5kIHByZXBlbmRzXG4gICAgICogYW55IGFkZGl0aW9uYWwgYF8uYmluZEtleWAgYXJndW1lbnRzIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBib3VuZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgbWV0aG9kIGRpZmZlcnMgZnJvbSBgXy5iaW5kYCBieSBhbGxvd2luZyBib3VuZCBmdW5jdGlvbnMgdG8gcmVmZXJlbmNlXG4gICAgICogbWV0aG9kcyB0aGF0IG1heSBiZSByZWRlZmluZWQgb3IgZG9uJ3QgeWV0IGV4aXN0LlxuICAgICAqIFNlZSBbUGV0ZXIgTWljaGF1eCdzIGFydGljbGVdKGh0dHA6Ly9wZXRlci5taWNoYXV4LmNhL2FydGljbGVzL2xhenktZnVuY3Rpb24tZGVmaW5pdGlvbi1wYXR0ZXJuKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uYmluZEtleS5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdGhlIG1ldGhvZCBiZWxvbmdzIHRvLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJvdW5kIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge1xuICAgICAqICAgJ3VzZXInOiAnZnJlZCcsXG4gICAgICogICAnZ3JlZXQnOiBmdW5jdGlvbihncmVldGluZywgcHVuY3R1YXRpb24pIHtcbiAgICAgKiAgICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XG4gICAgICogICB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZEtleShvYmplY3QsICdncmVldCcsICdoaScpO1xuICAgICAqIGJvdW5kKCchJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xuICAgICAqXG4gICAgICogb2JqZWN0LmdyZWV0ID0gZnVuY3Rpb24oZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAneWEgJyArIHRoaXMudXNlciArIHB1bmN0dWF0aW9uO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaXlhIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgcGxhY2Vob2xkZXJzXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kS2V5KG9iamVjdCwgJ2dyZWV0JywgXywgJyEnKTtcbiAgICAgKiBib3VuZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGl5YSBmcmVkISdcbiAgICAgKi9cbiAgICB2YXIgYmluZEtleSA9IHJlc3RQYXJhbShmdW5jdGlvbihvYmplY3QsIGtleSwgcGFydGlhbHMpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gQklORF9GTEFHIHwgQklORF9LRVlfRkxBRztcbiAgICAgIGlmIChwYXJ0aWFscy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgYmluZEtleS5wbGFjZWhvbGRlcik7XG4gICAgICAgIGJpdG1hc2sgfD0gUEFSVElBTF9GTEFHO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIoa2V5LCBiaXRtYXNrLCBvYmplY3QsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgb25lIG9yIG1vcmUgYXJndW1lbnRzIG9mIGBmdW5jYCB0aGF0IHdoZW5cbiAgICAgKiBjYWxsZWQgZWl0aGVyIGludm9rZXMgYGZ1bmNgIHJldHVybmluZyBpdHMgcmVzdWx0LCBpZiBhbGwgYGZ1bmNgIGFyZ3VtZW50c1xuICAgICAqIGhhdmUgYmVlbiBwcm92aWRlZCwgb3IgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBvbmUgb3IgbW9yZSBvZiB0aGVcbiAgICAgKiByZW1haW5pbmcgYGZ1bmNgIGFyZ3VtZW50cywgYW5kIHNvIG9uLiBUaGUgYXJpdHkgb2YgYGZ1bmNgIG1heSBiZSBzcGVjaWZpZWRcbiAgICAgKiBpZiBgZnVuYy5sZW5ndGhgIGlzIG5vdCBzdWZmaWNpZW50LlxuICAgICAqXG4gICAgICogVGhlIGBfLmN1cnJ5LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWMgYnVpbGRzLFxuICAgICAqIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5PWZ1bmMubGVuZ3RoXSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGN1cnJpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhYmMgPSBmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiB2YXIgY3VycmllZCA9IF8uY3VycnkoYWJjKTtcbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSkoMikoMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDEsIDIpKDMpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgxLCAyLCAzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHBsYWNlaG9sZGVyc1xuICAgICAqIGN1cnJpZWQoMSkoXywgMykoMik7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgdmFyIGN1cnJ5ID0gY3JlYXRlQ3VycnkoQ1VSUllfRkxBRyk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmN1cnJ5YCBleGNlcHQgdGhhdCBhcmd1bWVudHMgYXJlIGFwcGxpZWQgdG8gYGZ1bmNgXG4gICAgICogaW4gdGhlIG1hbm5lciBvZiBgXy5wYXJ0aWFsUmlnaHRgIGluc3RlYWQgb2YgYF8ucGFydGlhbGAuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uY3VycnlSaWdodC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lcyBub3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIGN1cnJpZWQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY3VycnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eT1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjdXJyaWVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYWJjID0gZnVuY3Rpb24oYSwgYiwgYykge1xuICAgICAqICAgcmV0dXJuIFthLCBiLCBjXTtcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIGN1cnJpZWQgPSBfLmN1cnJ5UmlnaHQoYWJjKTtcbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMykoMikoMSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDIsIDMpKDEpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgxLCAyLCAzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHBsYWNlaG9sZGVyc1xuICAgICAqIGN1cnJpZWQoMykoMSwgXykoMik7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgdmFyIGN1cnJ5UmlnaHQgPSBjcmVhdGVDdXJyeShDVVJSWV9SSUdIVF9GTEFHKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyBgZnVuY2AgdW50aWwgYWZ0ZXIgYHdhaXRgIG1pbGxpc2Vjb25kc1xuICAgICAqIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIGl0IHdhcyBpbnZva2VkLiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBjb21lc1xuICAgICAqIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsIGRlbGF5ZWQgaW52b2NhdGlvbnMuIFByb3ZpZGUgYW4gb3B0aW9uc1xuICAgICAqIG9iamVjdCB0byBpbmRpY2F0ZSB0aGF0IGBmdW5jYCBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGUgbGVhZGluZyBhbmQvb3JcbiAgICAgKiB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGAgdGltZW91dC4gU3Vic2VxdWVudCBjYWxscyB0byB0aGUgZGVib3VuY2VkXG4gICAgICogZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzIGludm9rZWRcbiAgICAgKiBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIGlzXG4gICAgICogaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICAgICAqXG4gICAgICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHA6Ly9kcnVwYWxtb3Rpb24uY29tL2FydGljbGUvZGVib3VuY2UtYW5kLXRocm90dGxlLXZpc3VhbC1leHBsYW5hdGlvbilcbiAgICAgKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLmRlYm91bmNlYCBhbmQgYF8udGhyb3R0bGVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz1mYWxzZV0gU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZ1xuICAgICAqICBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XSBUaGUgbWF4aW11bSB0aW1lIGBmdW5jYCBpcyBhbGxvd2VkIHRvIGJlXG4gICAgICogIGRlbGF5ZWQgYmVmb3JlIGl0IGlzIGludm9rZWQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXSBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZ1xuICAgICAqICBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGRlYm91bmNlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gYXZvaWQgY29zdGx5IGNhbGN1bGF0aW9ucyB3aGlsZSB0aGUgd2luZG93IHNpemUgaXMgaW4gZmx1eFxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLCBfLmRlYm91bmNlKGNhbGN1bGF0ZUxheW91dCwgMTUwKSk7XG4gICAgICpcbiAgICAgKiAvLyBpbnZva2UgYHNlbmRNYWlsYCB3aGVuIHRoZSBjbGljayBldmVudCBpcyBmaXJlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzXG4gICAgICogalF1ZXJ5KCcjcG9zdGJveCcpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICAgICAqICAgJ2xlYWRpbmcnOiB0cnVlLFxuICAgICAqICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAgICAgKiB9KSk7XG4gICAgICpcbiAgICAgKiAvLyBlbnN1cmUgYGJhdGNoTG9nYCBpcyBpbnZva2VkIG9uY2UgYWZ0ZXIgMSBzZWNvbmQgb2YgZGVib3VuY2VkIGNhbGxzXG4gICAgICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICAgICAqIGpRdWVyeShzb3VyY2UpLm9uKCdtZXNzYWdlJywgXy5kZWJvdW5jZShiYXRjaExvZywgMjUwLCB7XG4gICAgICogICAnbWF4V2FpdCc6IDEwMDBcbiAgICAgKiB9KSk7XG4gICAgICpcbiAgICAgKiAvLyBjYW5jZWwgYSBkZWJvdW5jZWQgY2FsbFxuICAgICAqIHZhciB0b2RvQ2hhbmdlcyA9IF8uZGVib3VuY2UoYmF0Y2hMb2csIDEwMDApO1xuICAgICAqIE9iamVjdC5vYnNlcnZlKG1vZGVscy50b2RvLCB0b2RvQ2hhbmdlcyk7XG4gICAgICpcbiAgICAgKiBPYmplY3Qub2JzZXJ2ZShtb2RlbHMsIGZ1bmN0aW9uKGNoYW5nZXMpIHtcbiAgICAgKiAgIGlmIChfLmZpbmQoY2hhbmdlcywgeyAndXNlcic6ICd0b2RvJywgJ3R5cGUnOiAnZGVsZXRlJ30pKSB7XG4gICAgICogICAgIHRvZG9DaGFuZ2VzLmNhbmNlbCgpO1xuICAgICAqICAgfVxuICAgICAqIH0sIFsnZGVsZXRlJ10pO1xuICAgICAqXG4gICAgICogLy8gLi4uYXQgc29tZSBwb2ludCBgbW9kZWxzLnRvZG9gIGlzIGNoYW5nZWRcbiAgICAgKiBtb2RlbHMudG9kby5jb21wbGV0ZWQgPSB0cnVlO1xuICAgICAqXG4gICAgICogLy8gLi4uYmVmb3JlIDEgc2Vjb25kIGhhcyBwYXNzZWQgYG1vZGVscy50b2RvYCBpcyBkZWxldGVkXG4gICAgICogLy8gd2hpY2ggY2FuY2VscyB0aGUgZGVib3VuY2VkIGB0b2RvQ2hhbmdlc2AgY2FsbFxuICAgICAqIGRlbGV0ZSBtb2RlbHMudG9kbztcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gICAgICB2YXIgYXJncyxcbiAgICAgICAgICBtYXhUaW1lb3V0SWQsXG4gICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgIHN0YW1wLFxuICAgICAgICAgIHRoaXNBcmcsXG4gICAgICAgICAgdGltZW91dElkLFxuICAgICAgICAgIHRyYWlsaW5nQ2FsbCxcbiAgICAgICAgICBsYXN0Q2FsbGVkID0gMCxcbiAgICAgICAgICBtYXhXYWl0ID0gZmFsc2UsXG4gICAgICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICB3YWl0ID0gd2FpdCA8IDAgPyAwIDogKCt3YWl0IHx8IDApO1xuICAgICAgaWYgKG9wdGlvbnMgPT09IHRydWUpIHtcbiAgICAgICAgdmFyIGxlYWRpbmcgPSB0cnVlO1xuICAgICAgICB0cmFpbGluZyA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgICBsZWFkaW5nID0gb3B0aW9ucy5sZWFkaW5nO1xuICAgICAgICBtYXhXYWl0ID0gJ21heFdhaXQnIGluIG9wdGlvbnMgJiYgbmF0aXZlTWF4KCtvcHRpb25zLm1heFdhaXQgfHwgMCwgd2FpdCk7XG4gICAgICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgICAgIGlmICh0aW1lb3V0SWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4VGltZW91dElkKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KG1heFRpbWVvdXRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgbWF4VGltZW91dElkID0gdGltZW91dElkID0gdHJhaWxpbmdDYWxsID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBkZWxheWVkKCkge1xuICAgICAgICB2YXIgcmVtYWluaW5nID0gd2FpdCAtIChub3coKSAtIHN0YW1wKTtcbiAgICAgICAgaWYgKHJlbWFpbmluZyA8PSAwIHx8IHJlbWFpbmluZyA+IHdhaXQpIHtcbiAgICAgICAgICBpZiAobWF4VGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQobWF4VGltZW91dElkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGlzQ2FsbGVkID0gdHJhaWxpbmdDYWxsO1xuICAgICAgICAgIG1heFRpbWVvdXRJZCA9IHRpbWVvdXRJZCA9IHRyYWlsaW5nQ2FsbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAoaXNDYWxsZWQpIHtcbiAgICAgICAgICAgIGxhc3RDYWxsZWQgPSBub3coKTtcbiAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgICAgICAgICBpZiAoIXRpbWVvdXRJZCAmJiAhbWF4VGltZW91dElkKSB7XG4gICAgICAgICAgICAgIGFyZ3MgPSB0aGlzQXJnID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dChkZWxheWVkLCByZW1haW5pbmcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIG1heERlbGF5ZWQoKSB7XG4gICAgICAgIGlmICh0aW1lb3V0SWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgfVxuICAgICAgICBtYXhUaW1lb3V0SWQgPSB0aW1lb3V0SWQgPSB0cmFpbGluZ0NhbGwgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0cmFpbGluZyB8fCAobWF4V2FpdCAhPT0gd2FpdCkpIHtcbiAgICAgICAgICBsYXN0Q2FsbGVkID0gbm93KCk7XG4gICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICAgICAgICBpZiAoIXRpbWVvdXRJZCAmJiAhbWF4VGltZW91dElkKSB7XG4gICAgICAgICAgICBhcmdzID0gdGhpc0FyZyA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgc3RhbXAgPSBub3coKTtcbiAgICAgICAgdGhpc0FyZyA9IHRoaXM7XG4gICAgICAgIHRyYWlsaW5nQ2FsbCA9IHRyYWlsaW5nICYmICh0aW1lb3V0SWQgfHwgIWxlYWRpbmcpO1xuXG4gICAgICAgIGlmIChtYXhXYWl0ID09PSBmYWxzZSkge1xuICAgICAgICAgIHZhciBsZWFkaW5nQ2FsbCA9IGxlYWRpbmcgJiYgIXRpbWVvdXRJZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIW1heFRpbWVvdXRJZCAmJiAhbGVhZGluZykge1xuICAgICAgICAgICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcmVtYWluaW5nID0gbWF4V2FpdCAtIChzdGFtcCAtIGxhc3RDYWxsZWQpLFxuICAgICAgICAgICAgICBpc0NhbGxlZCA9IHJlbWFpbmluZyA8PSAwIHx8IHJlbWFpbmluZyA+IG1heFdhaXQ7XG5cbiAgICAgICAgICBpZiAoaXNDYWxsZWQpIHtcbiAgICAgICAgICAgIGlmIChtYXhUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgICAgbWF4VGltZW91dElkID0gY2xlYXJUaW1lb3V0KG1heFRpbWVvdXRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmICghbWF4VGltZW91dElkKSB7XG4gICAgICAgICAgICBtYXhUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KG1heERlbGF5ZWQsIHJlbWFpbmluZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpc0NhbGxlZCAmJiB0aW1lb3V0SWQpIHtcbiAgICAgICAgICB0aW1lb3V0SWQgPSBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdGltZW91dElkICYmIHdhaXQgIT09IG1heFdhaXQpIHtcbiAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGRlbGF5ZWQsIHdhaXQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsZWFkaW5nQ2FsbCkge1xuICAgICAgICAgIGlzQ2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0NhbGxlZCAmJiAhdGltZW91dElkICYmICFtYXhUaW1lb3V0SWQpIHtcbiAgICAgICAgICBhcmdzID0gdGhpc0FyZyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGRlYm91bmNlZC5jYW5jZWwgPSBjYW5jZWw7XG4gICAgICByZXR1cm4gZGVib3VuY2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmVycyBpbnZva2luZyB0aGUgYGZ1bmNgIHVudGlsIHRoZSBjdXJyZW50IGNhbGwgc3RhY2sgaGFzIGNsZWFyZWQuIEFueVxuICAgICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCBpcyBpbnZva2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVmZXIuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXIgaWQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmZXIoZnVuY3Rpb24odGV4dCkge1xuICAgICAqICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICogfSwgJ2RlZmVycmVkJyk7XG4gICAgICogLy8gbG9ncyAnZGVmZXJyZWQnIGFmdGVyIG9uZSBvciBtb3JlIG1pbGxpc2Vjb25kc1xuICAgICAqL1xuICAgIHZhciBkZWZlciA9IHJlc3RQYXJhbShmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICByZXR1cm4gYmFzZURlbGF5KGZ1bmMsIDEsIGFyZ3MpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyBgZnVuY2AgYWZ0ZXIgYHdhaXRgIG1pbGxpc2Vjb25kcy4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZVxuICAgICAqIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0IGlzIGludm9rZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2FpdCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBpbnZvY2F0aW9uLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBmdW5jdGlvbiB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlbGF5KGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHRleHQpO1xuICAgICAqIH0sIDEwMDAsICdsYXRlcicpO1xuICAgICAqIC8vID0+IGxvZ3MgJ2xhdGVyJyBhZnRlciBvbmUgc2Vjb25kXG4gICAgICovXG4gICAgdmFyIGRlbGF5ID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGZ1bmMsIHdhaXQsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBiYXNlRGVsYXkoZnVuYywgd2FpdCwgYXJncyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIHByb3ZpZGVkXG4gICAgICogZnVuY3Rpb25zIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLCB3aGVyZSBlYWNoXG4gICAgICogc3VjY2Vzc2l2ZSBpbnZvY2F0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHsuLi5GdW5jdGlvbn0gW2Z1bmNzXSBGdW5jdGlvbnMgdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBhZGRTcXVhcmUgPSBfLmZsb3coXy5hZGQsIHNxdWFyZSk7XG4gICAgICogYWRkU3F1YXJlKDEsIDIpO1xuICAgICAqIC8vID0+IDlcbiAgICAgKi9cbiAgICB2YXIgZmxvdyA9IGNyZWF0ZUZsb3coKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmxvd2AgZXhjZXB0IHRoYXQgaXQgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXRcbiAgICAgKiBpbnZva2VzIHRoZSBwcm92aWRlZCBmdW5jdGlvbnMgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGJhY2tmbG93LCBjb21wb3NlXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHsuLi5GdW5jdGlvbn0gW2Z1bmNzXSBGdW5jdGlvbnMgdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBhZGRTcXVhcmUgPSBfLmZsb3dSaWdodChzcXVhcmUsIF8uYWRkKTtcbiAgICAgKiBhZGRTcXVhcmUoMSwgMik7XG4gICAgICogLy8gPT4gOVxuICAgICAqL1xuICAgIHZhciBmbG93UmlnaHQgPSBjcmVhdGVGbG93KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbWVtb2l6ZXMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuIElmIGByZXNvbHZlcmAgaXNcbiAgICAgKiBwcm92aWRlZCBpdCBkZXRlcm1pbmVzIHRoZSBjYWNoZSBrZXkgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCBiYXNlZCBvbiB0aGVcbiAgICAgKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAgICAgKiBwcm92aWRlZCB0byB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24gaXMgY29lcmNlZCB0byBhIHN0cmluZyBhbmQgdXNlZCBhcyB0aGVcbiAgICAgKiBjYWNoZSBrZXkuIFRoZSBgZnVuY2AgaXMgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGUgbWVtb2l6ZWRcbiAgICAgKiBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGUgY2FjaGUgaXMgZXhwb3NlZCBhcyB0aGUgYGNhY2hlYCBwcm9wZXJ0eSBvbiB0aGUgbWVtb2l6ZWRcbiAgICAgKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAgICAgKiBjb25zdHJ1Y3RvciB3aXRoIG9uZSB3aG9zZSBpbnN0YW5jZXMgaW1wbGVtZW50IHRoZSBbYE1hcGBdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1wcm9wZXJ0aWVzLW9mLXRoZS1tYXAtcHJvdG90eXBlLW9iamVjdClcbiAgICAgKiBtZXRob2QgaW50ZXJmYWNlIG9mIGBnZXRgLCBgaGFzYCwgYW5kIGBzZXRgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaGF2ZSBpdHMgb3V0cHV0IG1lbW9pemVkLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtyZXNvbHZlcl0gVGhlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGhlIGNhY2hlIGtleS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXppbmcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1cHBlckNhc2UgPSBfLm1lbW9pemUoZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICogICByZXR1cm4gc3RyaW5nLnRvVXBwZXJDYXNlKCk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiB1cHBlckNhc2UoJ2ZyZWQnKTtcbiAgICAgKiAvLyA9PiAnRlJFRCdcbiAgICAgKlxuICAgICAqIC8vIG1vZGlmeWluZyB0aGUgcmVzdWx0IGNhY2hlXG4gICAgICogdXBwZXJDYXNlLmNhY2hlLnNldCgnZnJlZCcsICdCQVJORVknKTtcbiAgICAgKiB1cHBlckNhc2UoJ2ZyZWQnKTtcbiAgICAgKiAvLyA9PiAnQkFSTkVZJ1xuICAgICAqXG4gICAgICogLy8gcmVwbGFjaW5nIGBfLm1lbW9pemUuQ2FjaGVgXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICd1c2VyJzogJ2Jhcm5leScgfTtcbiAgICAgKiB2YXIgaWRlbnRpdHkgPSBfLm1lbW9pemUoXy5pZGVudGl0eSk7XG4gICAgICpcbiAgICAgKiBpZGVudGl0eShvYmplY3QpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqIGlkZW50aXR5KG90aGVyKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKlxuICAgICAqIF8ubWVtb2l6ZS5DYWNoZSA9IFdlYWtNYXA7XG4gICAgICogdmFyIGlkZW50aXR5ID0gXy5tZW1vaXplKF8uaWRlbnRpdHkpO1xuICAgICAqXG4gICAgICogaWRlbnRpdHkob2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKiBpZGVudGl0eShvdGhlcik7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtZW1vaXplKGZ1bmMsIHJlc29sdmVyKSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgJiYgdHlwZW9mIHJlc29sdmVyICE9ICdmdW5jdGlvbicpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZW1vaXplZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICAgIGNhY2hlID0gbWVtb2l6ZWQuY2FjaGUsXG4gICAgICAgICAgICBrZXkgPSByZXNvbHZlciA/IHJlc29sdmVyLmFwcGx5KHRoaXMsIGFyZ3MpIDogYXJnc1swXTtcblxuICAgICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIGNhY2hlLnNldChrZXksIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgICAgbWVtb2l6ZWQuY2FjaGUgPSBuZXcgbWVtb2l6ZS5DYWNoZTtcbiAgICAgIHJldHVybiBtZW1vaXplZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBuZWdhdGVzIHRoZSByZXN1bHQgb2YgdGhlIHByZWRpY2F0ZSBgZnVuY2AuIFRoZVxuICAgICAqIGBmdW5jYCBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzIG9mIHRoZVxuICAgICAqIGNyZWF0ZWQgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIHByZWRpY2F0ZSB0byBuZWdhdGUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGlzRXZlbihuKSB7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcihbMSwgMiwgMywgNCwgNSwgNl0sIF8ubmVnYXRlKGlzRXZlbikpO1xuICAgICAqIC8vID0+IFsxLCAzLCA1XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5lZ2F0ZShwcmVkaWNhdGUpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJlZGljYXRlICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gIXByZWRpY2F0ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpcyByZXN0cmljdGVkIHRvIGludm9raW5nIGBmdW5jYCBvbmNlLiBSZXBlYXQgY2FsbHNcbiAgICAgKiB0byB0aGUgZnVuY3Rpb24gcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgY2FsbC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50cyBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlc3RyaWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJlc3RyaWN0ZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBpbml0aWFsaXplID0gXy5vbmNlKGNyZWF0ZUFwcGxpY2F0aW9uKTtcbiAgICAgKiBpbml0aWFsaXplKCk7XG4gICAgICogaW5pdGlhbGl6ZSgpO1xuICAgICAqIC8vIGBpbml0aWFsaXplYCBpbnZva2VzIGBjcmVhdGVBcHBsaWNhdGlvbmAgb25jZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9uY2UoZnVuYykge1xuICAgICAgcmV0dXJuIGJlZm9yZSgyLCBmdW5jKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGBwYXJ0aWFsYCBhcmd1bWVudHMgcHJlcGVuZGVkXG4gICAgICogdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIG5ldyBmdW5jdGlvbi4gVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5iaW5kYCBleGNlcHRcbiAgICAgKiBpdCBkb2VzICoqbm90KiogYWx0ZXIgdGhlIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogVGhlIGBfLnBhcnRpYWwucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpY1xuICAgICAqIGJ1aWxkcywgbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXMgbm90IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBwYXJ0aWFsbHlcbiAgICAgKiBhcHBsaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFydGlhbGx5IGFwcGxpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBncmVldCA9IGZ1bmN0aW9uKGdyZWV0aW5nLCBuYW1lKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyBuYW1lO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiB2YXIgc2F5SGVsbG9UbyA9IF8ucGFydGlhbChncmVldCwgJ2hlbGxvJyk7XG4gICAgICogc2F5SGVsbG9UbygnZnJlZCcpO1xuICAgICAqIC8vID0+ICdoZWxsbyBmcmVkJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgcGxhY2Vob2xkZXJzXG4gICAgICogdmFyIGdyZWV0RnJlZCA9IF8ucGFydGlhbChncmVldCwgXywgJ2ZyZWQnKTtcbiAgICAgKiBncmVldEZyZWQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXG4gICAgICovXG4gICAgdmFyIHBhcnRpYWwgPSBjcmVhdGVQYXJ0aWFsKFBBUlRJQUxfRkxBRyk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnBhcnRpYWxgIGV4Y2VwdCB0aGF0IHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50c1xuICAgICAqIGFyZSBhcHBlbmRlZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogVGhlIGBfLnBhcnRpYWxSaWdodC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lcyBub3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIHBhcnRpYWxseVxuICAgICAqIGFwcGxpZWQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcGFydGlhbGx5IGFwcGx5IGFyZ3VtZW50cyB0by5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYXJ0aWFsbHkgYXBwbGllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGdyZWV0ID0gZnVuY3Rpb24oZ3JlZXRpbmcsIG5hbWUpIHtcbiAgICAgKiAgIHJldHVybiBncmVldGluZyArICcgJyArIG5hbWU7XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBncmVldEZyZWQgPSBfLnBhcnRpYWxSaWdodChncmVldCwgJ2ZyZWQnKTtcbiAgICAgKiBncmVldEZyZWQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBwbGFjZWhvbGRlcnNcbiAgICAgKiB2YXIgc2F5SGVsbG9UbyA9IF8ucGFydGlhbFJpZ2h0KGdyZWV0LCAnaGVsbG8nLCBfKTtcbiAgICAgKiBzYXlIZWxsb1RvKCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQnXG4gICAgICovXG4gICAgdmFyIHBhcnRpYWxSaWdodCA9IGNyZWF0ZVBhcnRpYWwoUEFSVElBTF9SSUdIVF9GTEFHKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYXJndW1lbnRzIGFycmFuZ2VkIGFjY29yZGluZ1xuICAgICAqIHRvIHRoZSBzcGVjaWZpZWQgaW5kZXhlcyB3aGVyZSB0aGUgYXJndW1lbnQgdmFsdWUgYXQgdGhlIGZpcnN0IGluZGV4IGlzXG4gICAgICogcHJvdmlkZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCB0aGUgYXJndW1lbnQgdmFsdWUgYXQgdGhlIHNlY29uZCBpbmRleCBpc1xuICAgICAqIHByb3ZpZGVkIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlYXJyYW5nZSBhcmd1bWVudHMgZm9yLlxuICAgICAqIEBwYXJhbSB7Li4uKG51bWJlcnxudW1iZXJbXSl9IGluZGV4ZXMgVGhlIGFycmFuZ2VkIGFyZ3VtZW50IGluZGV4ZXMsXG4gICAgICogIHNwZWNpZmllZCBhcyBpbmRpdmlkdWFsIGluZGV4ZXMgb3IgYXJyYXlzIG9mIGluZGV4ZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciByZWFyZ2VkID0gXy5yZWFyZyhmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xuICAgICAqIH0sIDIsIDAsIDEpO1xuICAgICAqXG4gICAgICogcmVhcmdlZCgnYicsICdjJywgJ2EnKVxuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICAgICAqXG4gICAgICogdmFyIG1hcCA9IF8ucmVhcmcoXy5tYXAsIFsxLCAwXSk7XG4gICAgICogbWFwKGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogMztcbiAgICAgKiB9LCBbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFszLCA2LCA5XVxuICAgICAqL1xuICAgIHZhciByZWFyZyA9IHJlc3RQYXJhbShmdW5jdGlvbihmdW5jLCBpbmRleGVzKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihmdW5jLCBSRUFSR19GTEFHLCBudWxsLCBudWxsLCBudWxsLCBiYXNlRmxhdHRlbihpbmRleGVzKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGVcbiAgICAgKiBjcmVhdGVkIGZ1bmN0aW9uIGFuZCBhcmd1bWVudHMgZnJvbSBgc3RhcnRgIGFuZCBiZXlvbmQgcHJvdmlkZWQgYXMgYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlIFtyZXN0IHBhcmFtZXRlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvRnVuY3Rpb25zL3Jlc3RfcGFyYW1ldGVycykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHNheSA9IF8ucmVzdFBhcmFtKGZ1bmN0aW9uKHdoYXQsIG5hbWVzKSB7XG4gICAgICogICByZXR1cm4gd2hhdCArICcgJyArIF8uaW5pdGlhbChuYW1lcykuam9pbignLCAnKSArXG4gICAgICogICAgIChfLnNpemUobmFtZXMpID4gMSA/ICcsICYgJyA6ICcnKSArIF8ubGFzdChuYW1lcyk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzYXkoJ2hlbGxvJywgJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVzdFBhcmFtKGZ1bmMsIHN0YXJ0KSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiAoK3N0YXJ0IHx8IDApLCAwKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICAgICAgcmVzdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICByZXN0W2luZGV4XSA9IGFyZ3Nbc3RhcnQgKyBpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChzdGFydCkge1xuICAgICAgICAgIGNhc2UgMDogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzLCByZXN0KTtcbiAgICAgICAgICBjYXNlIDE6IHJldHVybiBmdW5jLmNhbGwodGhpcywgYXJnc1swXSwgcmVzdCk7XG4gICAgICAgICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0sIHJlc3QpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdGhlckFyZ3MgPSBBcnJheShzdGFydCArIDEpO1xuICAgICAgICBpbmRleCA9IC0xO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IHN0YXJ0KSB7XG4gICAgICAgICAgb3RoZXJBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIG90aGVyQXJnc1tzdGFydF0gPSByZXN0O1xuICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBvdGhlckFyZ3MpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGUgY3JlYXRlZFxuICAgICAqIGZ1bmN0aW9uIGFuZCBhbiBhcnJheSBvZiBhcmd1bWVudHMgbXVjaCBsaWtlIFtgRnVuY3Rpb24jYXBwbHlgXShodHRwczovL2VzNS5naXRodWIuaW8vI3gxNS4zLjQuMykuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlIFtzcHJlYWQgb3BlcmF0b3JdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL09wZXJhdG9ycy9TcHJlYWRfb3BlcmF0b3IpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gc3ByZWFkIGFyZ3VtZW50cyBvdmVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F5ID0gXy5zcHJlYWQoZnVuY3Rpb24od2hvLCB3aGF0KSB7XG4gICAgICogICByZXR1cm4gd2hvICsgJyBzYXlzICcgKyB3aGF0O1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogc2F5KFsnZnJlZCcsICdoZWxsbyddKTtcbiAgICAgKiAvLyA9PiAnZnJlZCBzYXlzIGhlbGxvJ1xuICAgICAqXG4gICAgICogLy8gd2l0aCBhIFByb21pc2VcbiAgICAgKiB2YXIgbnVtYmVycyA9IFByb21pc2UuYWxsKFtcbiAgICAgKiAgIFByb21pc2UucmVzb2x2ZSg0MCksXG4gICAgICogICBQcm9taXNlLnJlc29sdmUoMzYpXG4gICAgICogXSk7XG4gICAgICpcbiAgICAgKiBudW1iZXJzLnRoZW4oXy5zcHJlYWQoZnVuY3Rpb24oeCwgeSkge1xuICAgICAqICAgcmV0dXJuIHggKyB5O1xuICAgICAqIH0pKTtcbiAgICAgKiAvLyA9PiBhIFByb21pc2Ugb2YgNzZcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzcHJlYWQoZnVuYykge1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFycmF5KTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgb25seSBpbnZva2VzIGBmdW5jYCBhdCBtb3N0IG9uY2UgcGVyIGV2ZXJ5IGB3YWl0YFxuICAgICAqIG1pbGxpc2Vjb25kcy4gVGhlIGNyZWF0ZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgIG1ldGhvZCB0byBjYW5jZWxcbiAgICAgKiBkZWxheWVkIGludm9jYXRpb25zLiBQcm92aWRlIGFuIG9wdGlvbnMgb2JqZWN0IHRvIGluZGljYXRlIHRoYXQgYGZ1bmNgXG4gICAgICogc2hvdWxkIGJlIGludm9rZWQgb24gdGhlIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICAgICAqIFN1YnNlcXVlbnQgY2FsbHMgdG8gdGhlIHRocm90dGxlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdFxuICAgICAqIGBmdW5jYCBjYWxsLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpcyBpbnZva2VkXG4gICAgICogb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgdGhlIHRocm90dGxlZCBmdW5jdGlvbiBpc1xuICAgICAqIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAgICAgKlxuICAgICAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwOi8vZHJ1cGFsbW90aW9uLmNvbS9hcnRpY2xlL2RlYm91bmNlLWFuZC10aHJvdHRsZS12aXN1YWwtZXhwbGFuYXRpb24pXG4gICAgICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy50aHJvdHRsZWAgYW5kIGBfLmRlYm91bmNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHRocm90dGxlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aHJvdHRsZSBpbnZvY2F0aW9ucyB0by5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9dHJ1ZV0gU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZ1xuICAgICAqICBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV0gU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmdcbiAgICAgKiAgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB0aHJvdHRsZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIGF2b2lkIGV4Y2Vzc2l2ZWx5IHVwZGF0aW5nIHRoZSBwb3NpdGlvbiB3aGlsZSBzY3JvbGxpbmdcbiAgICAgKiBqUXVlcnkod2luZG93KS5vbignc2Nyb2xsJywgXy50aHJvdHRsZSh1cGRhdGVQb3NpdGlvbiwgMTAwKSk7XG4gICAgICpcbiAgICAgKiAvLyBpbnZva2UgYHJlbmV3VG9rZW5gIHdoZW4gdGhlIGNsaWNrIGV2ZW50IGlzIGZpcmVkLCBidXQgbm90IG1vcmUgdGhhbiBvbmNlIGV2ZXJ5IDUgbWludXRlc1xuICAgICAqIGpRdWVyeSgnLmludGVyYWN0aXZlJykub24oJ2NsaWNrJywgXy50aHJvdHRsZShyZW5ld1Rva2VuLCAzMDAwMDAsIHtcbiAgICAgKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gICAgICogfSkpO1xuICAgICAqXG4gICAgICogLy8gY2FuY2VsIGEgdHJhaWxpbmcgdGhyb3R0bGVkIGNhbGxcbiAgICAgKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCB0aHJvdHRsZWQuY2FuY2VsKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0aHJvdHRsZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gICAgICB2YXIgbGVhZGluZyA9IHRydWUsXG4gICAgICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucyA9PT0gZmFsc2UpIHtcbiAgICAgICAgbGVhZGluZyA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgICBsZWFkaW5nID0gJ2xlYWRpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMubGVhZGluZyA6IGxlYWRpbmc7XG4gICAgICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgICB9XG4gICAgICBkZWJvdW5jZU9wdGlvbnMubGVhZGluZyA9IGxlYWRpbmc7XG4gICAgICBkZWJvdW5jZU9wdGlvbnMubWF4V2FpdCA9ICt3YWl0O1xuICAgICAgZGVib3VuY2VPcHRpb25zLnRyYWlsaW5nID0gdHJhaWxpbmc7XG4gICAgICByZXR1cm4gZGVib3VuY2UoZnVuYywgd2FpdCwgZGVib3VuY2VPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyBgdmFsdWVgIHRvIHRoZSB3cmFwcGVyIGZ1bmN0aW9uIGFzIGl0c1xuICAgICAqIGZpcnN0IGFyZ3VtZW50LiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGZ1bmN0aW9uIGFyZVxuICAgICAqIGFwcGVuZGVkIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSB3cmFwcGVyIGZ1bmN0aW9uLiBUaGUgd3JhcHBlciBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHdyYXBwZXIgVGhlIHdyYXBwZXIgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBwID0gXy53cmFwKF8uZXNjYXBlLCBmdW5jdGlvbihmdW5jLCB0ZXh0KSB7XG4gICAgICogICByZXR1cm4gJzxwPicgKyBmdW5jKHRleHQpICsgJzwvcD4nO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogcCgnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnPHA+ZnJlZCwgYmFybmV5LCAmYW1wOyBwZWJibGVzPC9wPidcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwKHZhbHVlLCB3cmFwcGVyKSB7XG4gICAgICB3cmFwcGVyID0gd3JhcHBlciA9PSBudWxsID8gaWRlbnRpdHkgOiB3cmFwcGVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIod3JhcHBlciwgUEFSVElBTF9GTEFHLCBudWxsLCBbdmFsdWVdLCBbXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGB2YWx1ZWAuIElmIGBpc0RlZXBgIGlzIGB0cnVlYCBuZXN0ZWQgb2JqZWN0cyBhcmUgY2xvbmVkLFxuICAgICAqIG90aGVyd2lzZSB0aGV5IGFyZSBhc3NpZ25lZCBieSByZWZlcmVuY2UuIElmIGBjdXN0b21pemVyYCBpcyBwcm92aWRlZCBpdCBpc1xuICAgICAqIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgY2xvbmVkIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGBcbiAgICAgKiBjbG9uaW5nIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGJvdW5kIHRvXG4gICAgICogYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50OyAodmFsdWUgWywgaW5kZXh8a2V5LCBvYmplY3RdKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uIHRoZVxuICAgICAqIFtzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobV0oaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvaW5mcmFzdHJ1Y3R1cmUuaHRtbCNpbnRlcm5hbC1zdHJ1Y3R1cmVkLWNsb25pbmctYWxnb3JpdGhtKS5cbiAgICAgKiBUaGUgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYW5kIG9iamVjdHMgY3JlYXRlZCBieVxuICAgICAqIGNvbnN0cnVjdG9ycyBvdGhlciB0aGFuIGBPYmplY3RgIGFyZSBjbG9uZWQgdG8gcGxhaW4gYE9iamVjdGAgb2JqZWN0cy4gQW5cbiAgICAgKiBlbXB0eSBvYmplY3QgaXMgcmV0dXJuZWQgZm9yIHVuY2xvbmVhYmxlIHZhbHVlcyBzdWNoIGFzIGZ1bmN0aW9ucywgRE9NIG5vZGVzLFxuICAgICAqIE1hcHMsIFNldHMsIGFuZCBXZWFrTWFwcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGN1c3RvbWl6ZXJgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JyB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJyB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIHZhciBzaGFsbG93ID0gXy5jbG9uZSh1c2Vycyk7XG4gICAgICogc2hhbGxvd1swXSA9PT0gdXNlcnNbMF07XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogdmFyIGRlZXAgPSBfLmNsb25lKHVzZXJzLCB0cnVlKTtcbiAgICAgKiBkZWVwWzBdID09PSB1c2Vyc1swXTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgYSBjdXN0b21pemVyIGNhbGxiYWNrXG4gICAgICogdmFyIGVsID0gXy5jbG9uZShkb2N1bWVudC5ib2R5LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgaWYgKF8uaXNFbGVtZW50KHZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gdmFsdWUuY2xvbmVOb2RlKGZhbHNlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGVsID09PSBkb2N1bWVudC5ib2R5XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKiBlbC5ub2RlTmFtZVxuICAgICAqIC8vID0+IEJPRFlcbiAgICAgKiBlbC5jaGlsZE5vZGVzLmxlbmd0aDtcbiAgICAgKiAvLyA9PiAwXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvbmUodmFsdWUsIGlzRGVlcCwgY3VzdG9taXplciwgdGhpc0FyZykge1xuICAgICAgaWYgKGlzRGVlcCAmJiB0eXBlb2YgaXNEZWVwICE9ICdib29sZWFuJyAmJiBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgaXNEZWVwLCBjdXN0b21pemVyKSkge1xuICAgICAgICBpc0RlZXAgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBpc0RlZXAgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzQXJnID0gY3VzdG9taXplcjtcbiAgICAgICAgY3VzdG9taXplciA9IGlzRGVlcDtcbiAgICAgICAgaXNEZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyAmJiBiaW5kQ2FsbGJhY2soY3VzdG9taXplciwgdGhpc0FyZywgMSk7XG4gICAgICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBpc0RlZXAsIGN1c3RvbWl6ZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBkZWVwIGNsb25lIG9mIGB2YWx1ZWAuIElmIGBjdXN0b21pemVyYCBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkXG4gICAgICogdG8gcHJvZHVjZSB0aGUgY2xvbmVkIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAgY2xvbmluZ1xuICAgICAqIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYFxuICAgICAqIGFuZCBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50OyAodmFsdWUgWywgaW5kZXh8a2V5LCBvYmplY3RdKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uIHRoZVxuICAgICAqIFtzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobV0oaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvaW5mcmFzdHJ1Y3R1cmUuaHRtbCNpbnRlcm5hbC1zdHJ1Y3R1cmVkLWNsb25pbmctYWxnb3JpdGhtKS5cbiAgICAgKiBUaGUgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYW5kIG9iamVjdHMgY3JlYXRlZCBieVxuICAgICAqIGNvbnN0cnVjdG9ycyBvdGhlciB0aGFuIGBPYmplY3RgIGFyZSBjbG9uZWQgdG8gcGxhaW4gYE9iamVjdGAgb2JqZWN0cy4gQW5cbiAgICAgKiBlbXB0eSBvYmplY3QgaXMgcmV0dXJuZWQgZm9yIHVuY2xvbmVhYmxlIHZhbHVlcyBzdWNoIGFzIGZ1bmN0aW9ucywgRE9NIG5vZGVzLFxuICAgICAqIE1hcHMsIFNldHMsIGFuZCBXZWFrTWFwcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZGVlcCBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGN1c3RvbWl6ZXJgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogdmFyIGRlZXAgPSBfLmNsb25lRGVlcCh1c2Vycyk7XG4gICAgICogZGVlcFswXSA9PT0gdXNlcnNbMF07XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGEgY3VzdG9taXplciBjYWxsYmFja1xuICAgICAqIHZhciBlbCA9IF8uY2xvbmVEZWVwKGRvY3VtZW50LmJvZHksIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICBpZiAoXy5pc0VsZW1lbnQodmFsdWUpKSB7XG4gICAgICogICAgIHJldHVybiB2YWx1ZS5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICogICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBlbCA9PT0gZG9jdW1lbnQuYm9keVxuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICogZWwubm9kZU5hbWVcbiAgICAgKiAvLyA9PiBCT0RZXG4gICAgICogZWwuY2hpbGROb2Rlcy5sZW5ndGg7XG4gICAgICogLy8gPT4gMjBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZURlZXAodmFsdWUsIGN1c3RvbWl6ZXIsIHRoaXNBcmcpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nICYmIGJpbmRDYWxsYmFjayhjdXN0b21pemVyLCB0aGlzQXJnLCAxKTtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIHRydWUsIGN1c3RvbWl6ZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzQXJndW1lbnRzKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gYXJnc1RhZztcbiAgICB9XG4gICAgLy8gRmFsbGJhY2sgZm9yIGVudmlyb25tZW50cyB3aXRob3V0IGEgYHRvU3RyaW5nVGFnYCBmb3IgYGFyZ3VtZW50c2Agb2JqZWN0cy5cbiAgICBpZiAoIXN1cHBvcnQuYXJnc1RhZykge1xuICAgICAgaXNBcmd1bWVudHMgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSkgJiZcbiAgICAgICAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgJiYgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5KGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzQXJyYXkgPSBuYXRpdmVJc0FycmF5IHx8IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IGFycmF5VGFnO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYm9vbGVhbiBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQm9vbGVhbihmYWxzZSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Jvb2xlYW4obnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UgfHwgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gYm9vbFRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBEYXRlYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNEYXRlKG5ldyBEYXRlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRGF0ZSgnTW9uIEFwcmlsIDIzIDIwMTInKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRGF0ZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gZGF0ZVRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIERPTSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIERPTSBlbGVtZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNFbGVtZW50KGRvY3VtZW50LmJvZHkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbGVtZW50KCc8Ym9keT4nKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICAgICAgcmV0dXJuICEhdmFsdWUgJiYgdmFsdWUubm9kZVR5cGUgPT09IDEgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgICAgICAobG9kYXNoLnN1cHBvcnQubm9kZVRhZyA/IChvYmpUb1N0cmluZy5jYWxsKHZhbHVlKS5pbmRleE9mKCdFbGVtZW50JykgPiAtMSkgOiBpc0hvc3RPYmplY3QodmFsdWUpKTtcbiAgICB9XG4gICAgLy8gRmFsbGJhY2sgZm9yIGVudmlyb25tZW50cyB3aXRob3V0IERPTSBzdXBwb3J0LlxuICAgIGlmICghc3VwcG9ydC5kb20pIHtcbiAgICAgIGlzRWxlbWVudCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiAhIXZhbHVlICYmIHZhbHVlLm5vZGVUeXBlID09PSAxICYmIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgIWlzUGxhaW5PYmplY3QodmFsdWUpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBlbXB0eS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGVtcHR5IHVubGVzcyBpdCBpcyBhblxuICAgICAqIGBhcmd1bWVudHNgIG9iamVjdCwgYXJyYXksIHN0cmluZywgb3IgalF1ZXJ5LWxpa2UgY29sbGVjdGlvbiB3aXRoIGEgbGVuZ3RoXG4gICAgICogZ3JlYXRlciB0aGFuIGAwYCBvciBhbiBvYmplY3Qgd2l0aCBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGVtcHR5LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eShudWxsKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkodHJ1ZSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KDEpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkoeyAnYSc6IDEgfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5TGlrZSh2YWx1ZSkgJiYgKGlzQXJyYXkodmFsdWUpIHx8IGlzU3RyaW5nKHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkgfHxcbiAgICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0Z1bmN0aW9uKHZhbHVlLnNwbGljZSkpKSkge1xuICAgICAgICByZXR1cm4gIXZhbHVlLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAha2V5cyh2YWx1ZSkubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmVcbiAgICAgKiBlcXVpdmFsZW50LiBJZiBgY3VzdG9taXplcmAgaXMgcHJvdmlkZWQgaXQgaXMgaW52b2tlZCB0byBjb21wYXJlIHZhbHVlcy5cbiAgICAgKiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCBjb21wYXJpc29ucyBhcmUgaGFuZGxlZCBieSB0aGUgbWV0aG9kXG4gICAgICogaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZVxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBvdGhlciBbLCBpbmRleHxrZXldKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBjb21wYXJpbmcgYXJyYXlzLCBib29sZWFucywgYERhdGVgIG9iamVjdHMsXG4gICAgICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgYW5kIHN0cmluZ3MuIE9iamVjdHMgYXJlIGNvbXBhcmVkIGJ5XG4gICAgICogdGhlaXIgb3duLCBub3QgaW5oZXJpdGVkLCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuIEZ1bmN0aW9ucyBhbmQgRE9NIG5vZGVzXG4gICAgICogYXJlICoqbm90Kiogc3VwcG9ydGVkLiBQcm92aWRlIGEgY3VzdG9taXplciBmdW5jdGlvbiB0byBleHRlbmQgc3VwcG9ydFxuICAgICAqIGZvciBjb21wYXJpbmcgb3RoZXIgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgdmFsdWUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBjdXN0b21pemVyYC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJyB9O1xuICAgICAqIHZhciBvdGhlciA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKlxuICAgICAqIG9iamVjdCA9PSBvdGhlcjtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0VxdWFsKG9iamVjdCwgb3RoZXIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGEgY3VzdG9taXplciBjYWxsYmFja1xuICAgICAqIHZhciBhcnJheSA9IFsnaGVsbG8nLCAnZ29vZGJ5ZSddO1xuICAgICAqIHZhciBvdGhlciA9IFsnaGknLCAnZ29vZGJ5ZSddO1xuICAgICAqXG4gICAgICogXy5pc0VxdWFsKGFycmF5LCBvdGhlciwgZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICogICBpZiAoXy5ldmVyeShbdmFsdWUsIG90aGVyXSwgUmVnRXhwLnByb3RvdHlwZS50ZXN0LCAvXmgoPzppfGVsbG8pJC8pKSB7XG4gICAgICogICAgIHJldHVybiB0cnVlO1xuICAgICAqICAgfVxuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0VxdWFsKHZhbHVlLCBvdGhlciwgY3VzdG9taXplciwgdGhpc0FyZykge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgJiYgYmluZENhbGxiYWNrKGN1c3RvbWl6ZXIsIHRoaXNBcmcsIDMpO1xuICAgICAgaWYgKCFjdXN0b21pemVyICYmIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkgJiYgaXNTdHJpY3RDb21wYXJhYmxlKG90aGVyKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IG90aGVyO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKHZhbHVlLCBvdGhlcikgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIGN1c3RvbWl6ZXIpIDogISFyZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYW4gYEVycm9yYCwgYEV2YWxFcnJvcmAsIGBSYW5nZUVycm9yYCwgYFJlZmVyZW5jZUVycm9yYCxcbiAgICAgKiBgU3ludGF4RXJyb3JgLCBgVHlwZUVycm9yYCwgb3IgYFVSSUVycm9yYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGVycm9yIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRXJyb3IobmV3IEVycm9yKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRXJyb3IoRXJyb3IpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFcnJvcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlLm1lc3NhZ2UgPT0gJ3N0cmluZycgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gZXJyb3JUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBmaW5pdGUgcHJpbWl0aXZlIG51bWJlci5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvbiBbYE51bWJlci5pc0Zpbml0ZWBdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1udW1iZXIuaXNmaW5pdGUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZpbml0ZSBudW1iZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZSgxMCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZSgnMTAnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZSh0cnVlKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZShPYmplY3QoMTApKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZShJbmZpbml0eSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNGaW5pdGUgPSBuYXRpdmVOdW1Jc0Zpbml0ZSB8fCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJiBuYXRpdmVJc0Zpbml0ZSh2YWx1ZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0Z1bmN0aW9uKF8pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNGdW5jdGlvbiA9ICEoYmFzZUlzRnVuY3Rpb24oL3gvKSB8fCAoVWludDhBcnJheSAmJiAhYmFzZUlzRnVuY3Rpb24oVWludDhBcnJheSkpKSA/IGJhc2VJc0Z1bmN0aW9uIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAgICAgLy8gaW4gb2xkZXIgdmVyc2lvbnMgb2YgQ2hyb21lIGFuZCBTYWZhcmkgd2hpY2ggcmV0dXJuICdmdW5jdGlvbicgZm9yIHJlZ2V4ZXNcbiAgICAgIC8vIGFuZCBTYWZhcmkgOCBlcXVpdmFsZW50cyB3aGljaCByZXR1cm4gJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9ycy5cbiAgICAgIHJldHVybiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBmdW5jVGFnO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGUgW2xhbmd1YWdlIHR5cGVdKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDgpIG9mIGBPYmplY3RgLlxuICAgICAqIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdCh7fSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3QoMSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICAgICAgLy8gQXZvaWQgYSBWOCBKSVQgYnVnIGluIENocm9tZSAxOS0yMC5cbiAgICAgIC8vIFNlZSBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MjI5MSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdHlwZSA9PSAnZnVuY3Rpb24nIHx8ICghIXZhbHVlICYmIHR5cGUgPT0gJ29iamVjdCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gYG9iamVjdGAgYW5kIGBzb3VyY2VgIHRvIGRldGVybWluZSBpZlxuICAgICAqIGBvYmplY3RgIGNvbnRhaW5zIGVxdWl2YWxlbnQgcHJvcGVydHkgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgaXMgcHJvdmlkZWRcbiAgICAgKiBpdCBpcyBpbnZva2VkIHRvIGNvbXBhcmUgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYFxuICAgICAqIGNvbXBhcmlzb25zIGFyZSBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBib3VuZFxuICAgICAqIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBvdGhlciwgaW5kZXh8a2V5KS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBjb21wYXJpbmcgcHJvcGVydGllcyBvZiBhcnJheXMsIGJvb2xlYW5zLFxuICAgICAqIGBEYXRlYCBvYmplY3RzLCBudW1iZXJzLCBgT2JqZWN0YCBvYmplY3RzLCByZWdleGVzLCBhbmQgc3RyaW5ncy4gRnVuY3Rpb25zXG4gICAgICogYW5kIERPTSBub2RlcyBhcmUgKipub3QqKiBzdXBwb3J0ZWQuIFByb3ZpZGUgYSBjdXN0b21pemVyIGZ1bmN0aW9uIHRvIGV4dGVuZFxuICAgICAqIHN1cHBvcnQgZm9yIGNvbXBhcmluZyBvdGhlciB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgdmFsdWUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBjdXN0b21pemVyYC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH07XG4gICAgICpcbiAgICAgKiBfLmlzTWF0Y2gob2JqZWN0LCB7ICdhZ2UnOiA0MCB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTWF0Y2gob2JqZWN0LCB7ICdhZ2UnOiAzNiB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgYSBjdXN0b21pemVyIGNhbGxiYWNrXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2dyZWV0aW5nJzogJ2hlbGxvJyB9O1xuICAgICAqIHZhciBzb3VyY2UgPSB7ICdncmVldGluZyc6ICdoaScgfTtcbiAgICAgKlxuICAgICAqIF8uaXNNYXRjaChvYmplY3QsIHNvdXJjZSwgZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICogICByZXR1cm4gXy5ldmVyeShbdmFsdWUsIG90aGVyXSwgUmVnRXhwLnByb3RvdHlwZS50ZXN0LCAvXmgoPzppfGVsbG8pJC8pIHx8IHVuZGVmaW5lZDtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNNYXRjaChvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplciwgdGhpc0FyZykge1xuICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgJiYgYmluZENhbGxiYWNrKGN1c3RvbWl6ZXIsIHRoaXNBcmcsIDMpO1xuICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgICAgIGlmICghY3VzdG9taXplciAmJiBsZW5ndGggPT0gMSkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbMF0sXG4gICAgICAgICAgICB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuXG4gICAgICAgIGlmIChpc1N0cmljdENvbXBhcmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBvYmplY3Rba2V5XSAmJiAodmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIG9iamVjdCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdmFsdWVzID0gQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICBzdHJpY3RDb21wYXJlRmxhZ3MgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZXNbbGVuZ3RoXSA9IHNvdXJjZVtwcm9wc1tsZW5ndGhdXTtcbiAgICAgICAgc3RyaWN0Q29tcGFyZUZsYWdzW2xlbmd0aF0gPSBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJc01hdGNoKG9iamVjdCwgcHJvcHMsIHZhbHVlcywgc3RyaWN0Q29tcGFyZUZsYWdzLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgTmFOYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBub3QgdGhlIHNhbWUgYXMgW2Bpc05hTmBdKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjEuMi40KVxuICAgICAqIHdoaWNoIHJldHVybnMgYHRydWVgIGZvciBgdW5kZWZpbmVkYCBhbmQgb3RoZXIgbm9uLW51bWVyaWMgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgTmFOYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTmFOKE5hTik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05hTihuZXcgTnVtYmVyKE5hTikpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGlzTmFOKHVuZGVmaW5lZCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05hTih1bmRlZmluZWQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOYU4odmFsdWUpIHtcbiAgICAgIC8vIEFuIGBOYU5gIHByaW1pdGl2ZSBpcyB0aGUgb25seSB2YWx1ZSB0aGF0IGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuXG4gICAgICAvLyBQZXJmb3JtIHRoZSBgdG9TdHJpbmdUYWdgIGNoZWNrIGZpcnN0IHRvIGF2b2lkIGVycm9ycyB3aXRoIHNvbWUgaG9zdCBvYmplY3RzIGluIElFLlxuICAgICAgcmV0dXJuIGlzTnVtYmVyKHZhbHVlKSAmJiB2YWx1ZSAhPSArdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOYXRpdmUoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOYXRpdmUoXyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc05hdGl2ZSh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IGZ1bmNUYWcpIHtcbiAgICAgICAgcmV0dXJuIHJlSXNOYXRpdmUudGVzdChmblRvU3RyaW5nLmNhbGwodmFsdWUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIChpc0hvc3RPYmplY3QodmFsdWUpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcikudGVzdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYG51bGxgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgbnVsbGAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc051bGwobnVsbCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc051bGwodm9pZCAwKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTnVsbCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgTnVtYmVyYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRvIGV4Y2x1ZGUgYEluZmluaXR5YCwgYC1JbmZpbml0eWAsIGFuZCBgTmFOYCwgd2hpY2ggYXJlIGNsYXNzaWZpZWRcbiAgICAgKiBhcyBudW1iZXJzLCB1c2UgdGhlIGBfLmlzRmluaXRlYCBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoOC40KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKE5hTik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc051bWJlcignOC40Jyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBudW1iZXJUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCB0aGF0IGlzLCBhbiBvYmplY3QgY3JlYXRlZCBieSB0aGVcbiAgICAgKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgYXNzdW1lcyBvYmplY3RzIGNyZWF0ZWQgYnkgdGhlIGBPYmplY3RgIGNvbnN0cnVjdG9yXG4gICAgICogaGF2ZSBubyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgdmFyIGlzUGxhaW5PYmplY3QgPSAhZ2V0UHJvdG90eXBlT2YgPyBzaGltSXNQbGFpbk9iamVjdCA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICBpZiAoISh2YWx1ZSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBvYmplY3RUYWcpIHx8ICghbG9kYXNoLnN1cHBvcnQuYXJnc1RhZyAmJiBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciB2YWx1ZU9mID0gdmFsdWUudmFsdWVPZixcbiAgICAgICAgICBvYmpQcm90byA9IGlzTmF0aXZlKHZhbHVlT2YpICYmIChvYmpQcm90byA9IGdldFByb3RvdHlwZU9mKHZhbHVlT2YpKSAmJiBnZXRQcm90b3R5cGVPZihvYmpQcm90byk7XG5cbiAgICAgIHJldHVybiBvYmpQcm90b1xuICAgICAgICA/ICh2YWx1ZSA9PSBvYmpQcm90byB8fCBnZXRQcm90b3R5cGVPZih2YWx1ZSkgPT0gb2JqUHJvdG8pXG4gICAgICAgIDogc2hpbUlzUGxhaW5PYmplY3QodmFsdWUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFJlZ0V4cGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzUmVnRXhwKC9hYmMvKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzUmVnRXhwKCcvYWJjLycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNSZWdFeHAodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdCh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gcmVnZXhwVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3RyaW5nYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzU3RyaW5nKCdhYmMnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzU3RyaW5nKDEpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gc3RyaW5nVGFnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzVHlwZWRBcnJheShbXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1R5cGVkQXJyYXkodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tvYmpUb1N0cmluZy5jYWxsKHZhbHVlKV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIChmdW5jdGlvbigpIHtcbiAgICAgKiAgIHJldHVybiBfLnRvQXJyYXkoYXJndW1lbnRzKS5zbGljZSgxKTtcbiAgICAgKiB9KDEsIDIsIDMpKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b0FycmF5KHZhbHVlKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gdmFsdWUgPyBnZXRMZW5ndGgodmFsdWUpIDogMDtcbiAgICAgIGlmICghaXNMZW5ndGgobGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gdmFsdWVzKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAobG9kYXNoLnN1cHBvcnQudW5pbmRleGVkQ2hhcnMgJiYgaXNTdHJpbmcodmFsdWUpKVxuICAgICAgICA/IHZhbHVlLnNwbGl0KCcnKVxuICAgICAgICA6IGFycmF5Q29weSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHBsYWluIG9iamVjdCBmbGF0dGVuaW5nIGluaGVyaXRlZCBlbnVtZXJhYmxlXG4gICAgICogcHJvcGVydGllcyBvZiBgdmFsdWVgIHRvIG93biBwcm9wZXJ0aWVzIG9mIHRoZSBwbGFpbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29udmVydGVkIHBsYWluIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5hc3NpZ24oeyAnYSc6IDEgfSwgbmV3IEZvbyk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbih7ICdhJzogMSB9LCBfLnRvUGxhaW5PYmplY3QobmV3IEZvbykpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9QbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VDb3B5KHZhbHVlLCBrZXlzSW4odmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdChzKSB0byB0aGUgZGVzdGluYXRpb25cbiAgICAgKiBvYmplY3QuIFN1YnNlcXVlbnQgc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAgICAgKiBJZiBgY3VzdG9taXplcmAgaXMgcHJvdmlkZWQgaXQgaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogVGhlIGBjdXN0b21pemVyYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCBmaXZlIGFyZ3VtZW50czpcbiAgICAgKiAob2JqZWN0VmFsdWUsIHNvdXJjZVZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgIGFuZCBpcyBiYXNlZCBvblxuICAgICAqIFtgT2JqZWN0LmFzc2lnbmBdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3QuYXNzaWduKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBleHRlbmRcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGN1c3RvbWl6ZXJgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uYXNzaWduKHsgJ3VzZXInOiAnYmFybmV5JyB9LCB7ICdhZ2UnOiA0MCB9LCB7ICd1c2VyJzogJ2ZyZWQnIH0pO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcsICdhZ2UnOiA0MCB9XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBhIGN1c3RvbWl6ZXIgY2FsbGJhY2tcbiAgICAgKiB2YXIgZGVmYXVsdHMgPSBfLnBhcnRpYWxSaWdodChfLmFzc2lnbiwgZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICogICByZXR1cm4gXy5pc1VuZGVmaW5lZCh2YWx1ZSkgPyBvdGhlciA6IHZhbHVlO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogZGVmYXVsdHMoeyAndXNlcic6ICdiYXJuZXknIH0sIHsgJ2FnZSc6IDM2IH0sIHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfVxuICAgICAqL1xuICAgIHZhciBhc3NpZ24gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplcikge1xuICAgICAgcmV0dXJuIGN1c3RvbWl6ZXJcbiAgICAgICAgPyBhc3NpZ25XaXRoKG9iamVjdCwgc291cmNlLCBjdXN0b21pemVyKVxuICAgICAgICA6IGJhc2VBc3NpZ24ob2JqZWN0LCBzb3VyY2UpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgdGhhdCBpbmhlcml0cyBmcm9tIHRoZSBnaXZlbiBgcHJvdG90eXBlYCBvYmplY3QuIElmIGFcbiAgICAgKiBgcHJvcGVydGllc2Agb2JqZWN0IGlzIHByb3ZpZGVkIGl0cyBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGFyZSBhc3NpZ25lZFxuICAgICAqIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvdG90eXBlIFRoZSBvYmplY3QgdG8gaW5oZXJpdCBmcm9tLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbcHJvcGVydGllc10gVGhlIHByb3BlcnRpZXMgdG8gYXNzaWduIHRvIHRoZSBvYmplY3QuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gU2hhcGUoKSB7XG4gICAgICogICB0aGlzLnggPSAwO1xuICAgICAqICAgdGhpcy55ID0gMDtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBDaXJjbGUoKSB7XG4gICAgICogICBTaGFwZS5jYWxsKHRoaXMpO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIENpcmNsZS5wcm90b3R5cGUgPSBfLmNyZWF0ZShTaGFwZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICdjb25zdHJ1Y3Rvcic6IENpcmNsZVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogdmFyIGNpcmNsZSA9IG5ldyBDaXJjbGU7XG4gICAgICogY2lyY2xlIGluc3RhbmNlb2YgQ2lyY2xlO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGNpcmNsZSBpbnN0YW5jZW9mIFNoYXBlO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGUocHJvdG90eXBlLCBwcm9wZXJ0aWVzLCBndWFyZCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VDcmVhdGUocHJvdG90eXBlKTtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChwcm90b3R5cGUsIHByb3BlcnRpZXMsIGd1YXJkKSkge1xuICAgICAgICBwcm9wZXJ0aWVzID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9wZXJ0aWVzID8gYmFzZUFzc2lnbihyZXN1bHQsIHByb3BlcnRpZXMpIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgb3duIGVudW1lcmFibGUgcHJvcGVydGllcyBvZiBzb3VyY2Ugb2JqZWN0KHMpIHRvIHRoZSBkZXN0aW5hdGlvblxuICAgICAqIG9iamVjdCBmb3IgYWxsIGRlc3RpbmF0aW9uIHByb3BlcnRpZXMgdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgLiBPbmNlIGFcbiAgICAgKiBwcm9wZXJ0eSBpcyBzZXQsIGFkZGl0aW9uYWwgdmFsdWVzIG9mIHRoZSBzYW1lIHByb3BlcnR5IGFyZSBpZ25vcmVkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdHMoeyAndXNlcic6ICdiYXJuZXknIH0sIHsgJ2FnZSc6IDM2IH0sIHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfVxuICAgICAqL1xuICAgIHZhciBkZWZhdWx0cyA9IHJlc3RQYXJhbShmdW5jdGlvbihhcmdzKSB7XG4gICAgICB2YXIgb2JqZWN0ID0gYXJnc1swXTtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgICAgYXJncy5wdXNoKGFzc2lnbkRlZmF1bHRzKTtcbiAgICAgIHJldHVybiBhc3NpZ24uYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUga2V5IG9mIHRoZSBmaXJzdFxuICAgICAqIGVsZW1lbnQgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge3N0cmluZ3x1bmRlZmluZWR9IFJldHVybnMgdGhlIGtleSBvZiB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSB7XG4gICAgICogICAnYmFybmV5JzogIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgJ2ZyZWQnOiAgICB7ICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICAncGViYmxlcyc6IHsgJ2FnZSc6IDEsICAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8uZmluZEtleSh1c2VycywgZnVuY3Rpb24oY2hyKSB7XG4gICAgICogICByZXR1cm4gY2hyLmFnZSA8IDQwO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+ICdiYXJuZXknIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCB7ICdhZ2UnOiAxLCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAgICAgKiAvLyA9PiAncGViYmxlcydcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZmluZEtleSh1c2VycywgJ2FjdGl2ZScsIGZhbHNlKTtcbiAgICAgKiAvLyA9PiAnZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKi9cbiAgICB2YXIgZmluZEtleSA9IGNyZWF0ZUZpbmRLZXkoYmFzZUZvck93bik7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRLZXlgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBhIGNvbGxlY3Rpb24gaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge3N0cmluZ3x1bmRlZmluZWR9IFJldHVybnMgdGhlIGtleSBvZiB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSB7XG4gICAgICogICAnYmFybmV5JzogIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgJ2ZyZWQnOiAgICB7ICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICAncGViYmxlcyc6IHsgJ2FnZSc6IDEsICAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsIGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgcmV0dXJuIGNoci5hZ2UgPCA0MDtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiByZXR1cm5zIGBwZWJibGVzYCBhc3N1bWluZyBgXy5maW5kS2V5YCByZXR1cm5zIGBiYXJuZXlgXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kTGFzdEtleSh1c2VycywgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+ICdiYXJuZXknXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpO1xuICAgICAqIC8vID0+ICdmcmVkJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gJ3BlYmJsZXMnXG4gICAgICovXG4gICAgdmFyIGZpbmRMYXN0S2V5ID0gY3JlYXRlRmluZEtleShiYXNlRm9yT3duUmlnaHQpO1xuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0IGludm9raW5nXG4gICAgICogYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXRcbiAgICAgKiBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvckluKG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gbG9ncyAnYScsICdiJywgYW5kICdjJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciBmb3JJbiA9IGNyZWF0ZUZvckluKGJhc2VGb3IpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mb3JJbmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBwcm9wZXJ0aWVzIG9mXG4gICAgICogYG9iamVjdGAgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9ySW5SaWdodChuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IGxvZ3MgJ2MnLCAnYicsIGFuZCAnYScgYXNzdW1pbmcgYF8uZm9ySW4gYCBsb2dzICdhJywgJ2InLCBhbmQgJ2MnXG4gICAgICovXG4gICAgdmFyIGZvckluUmlnaHQgPSBjcmVhdGVGb3JJbihiYXNlRm9yUmlnaHQpO1xuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCBpbnZva2luZyBgaXRlcmF0ZWVgXG4gICAgICogZm9yIGVhY2ggcHJvcGVydHkuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoXG4gICAgICogdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvblxuICAgICAqIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5mb3JPd24obmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBsb2dzICdhJyBhbmQgJ2InIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgdmFyIGZvck93biA9IGNyZWF0ZUZvck93bihiYXNlRm9yT3duKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9yT3duYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXMgb2ZcbiAgICAgKiBgb2JqZWN0YCBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5mb3JPd25SaWdodChuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IGxvZ3MgJ2InIGFuZCAnYScgYXNzdW1pbmcgYF8uZm9yT3duYCBsb2dzICdhJyBhbmQgJ2InXG4gICAgICovXG4gICAgdmFyIGZvck93blJpZ2h0ID0gY3JlYXRlRm9yT3duKGJhc2VGb3JPd25SaWdodCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZyb20gYWxsIGVudW1lcmFibGUgcHJvcGVydGllcyxcbiAgICAgKiBvd24gYW5kIGluaGVyaXRlZCwgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgbWV0aG9kc1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mdW5jdGlvbnMoXyk7XG4gICAgICogLy8gPT4gWydhZnRlcicsICdhcnknLCAnYXNzaWduJywgLi4uXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZ1bmN0aW9ucyhvYmplY3QpIHtcbiAgICAgIHJldHVybiBiYXNlRnVuY3Rpb25zKG9iamVjdCwga2V5c0luKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIGBwYXRoYCBvbiBgb2JqZWN0YC4gSWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzXG4gICAgICogYHVuZGVmaW5lZGAgdGhlIGBkZWZhdWx0VmFsdWVgIGlzIHVzZWQgaW4gaXRzIHBsYWNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGlmIHRoZSByZXNvbHZlZCB2YWx1ZSBpcyBgdW5kZWZpbmVkYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLmdldChvYmplY3QsICdhWzBdLmIuYycpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8uZ2V0KG9iamVjdCwgWydhJywgJzAnLCAnYicsICdjJ10pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8uZ2V0KG9iamVjdCwgJ2EuYi5jJywgJ2RlZmF1bHQnKTtcbiAgICAgKiAvLyA9PiAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGJhc2VHZXQob2JqZWN0LCB0b1BhdGgocGF0aCksIHBhdGggKyAnJyk7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBkZWZhdWx0VmFsdWUgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwYXRoYCBpcyBhIGRpcmVjdCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBpcyBhIGRpcmVjdCBwcm9wZXJ0eSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IHsgJ2InOiB7ICdjJzogMyB9IH0gfTtcbiAgICAgKlxuICAgICAqIF8uaGFzKG9iamVjdCwgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhcyhvYmplY3QsICdhLmIuYycpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzKG9iamVjdCwgWydhJywgJ2InLCAnYyddKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzKG9iamVjdCwgcGF0aCkge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcGF0aCk7XG4gICAgICBpZiAoIXJlc3VsdCAmJiAhaXNLZXkocGF0aCkpIHtcbiAgICAgICAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgICAgICAgb2JqZWN0ID0gcGF0aC5sZW5ndGggPT0gMSA/IG9iamVjdCA6IGJhc2VHZXQob2JqZWN0LCBiYXNlU2xpY2UocGF0aCwgMCwgLTEpKTtcbiAgICAgICAgcGF0aCA9IGxhc3QocGF0aCk7XG4gICAgICAgIHJlc3VsdCA9IG9iamVjdCAhPSBudWxsICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwYXRoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQgfHwgKGxvZGFzaC5zdXBwb3J0Lm5vbkVudW1TdHJpbmdzICYmIGlzU3RyaW5nKG9iamVjdCkgJiYgaXNJbmRleChwYXRoLCBvYmplY3QubGVuZ3RoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2YgdGhlIGludmVydGVkIGtleXMgYW5kIHZhbHVlcyBvZiBgb2JqZWN0YC5cbiAgICAgKiBJZiBgb2JqZWN0YCBjb250YWlucyBkdXBsaWNhdGUgdmFsdWVzLCBzdWJzZXF1ZW50IHZhbHVlcyBvdmVyd3JpdGUgcHJvcGVydHlcbiAgICAgKiBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyB2YWx1ZXMgdW5sZXNzIGBtdWx0aVZhbHVlYCBpcyBgdHJ1ZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGludmVydC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFttdWx0aVZhbHVlXSBBbGxvdyBtdWx0aXBsZSB2YWx1ZXMgcGVyIGtleS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgaW52ZXJ0ZWQgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAxIH07XG4gICAgICpcbiAgICAgKiBfLmludmVydChvYmplY3QpO1xuICAgICAqIC8vID0+IHsgJzEnOiAnYycsICcyJzogJ2InIH1cbiAgICAgKlxuICAgICAqIC8vIHdpdGggYG11bHRpVmFsdWVgXG4gICAgICogXy5pbnZlcnQob2JqZWN0LCB0cnVlKTtcbiAgICAgKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gaW52ZXJ0KG9iamVjdCwgbXVsdGlWYWx1ZSwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChvYmplY3QsIG11bHRpVmFsdWUsIGd1YXJkKSkge1xuICAgICAgICBtdWx0aVZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHByb3BzID0ga2V5cyhvYmplY3QpLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XSxcbiAgICAgICAgICAgIHZhbHVlID0gb2JqZWN0W2tleV07XG5cbiAgICAgICAgaWYgKG11bHRpVmFsdWUpIHtcbiAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIHZhbHVlKSkge1xuICAgICAgICAgICAgcmVzdWx0W3ZhbHVlXS5wdXNoKGtleSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFt2YWx1ZV0gPSBba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcmVzdWx0W3ZhbHVlXSA9IGtleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gICAgICogW0VTIHNwZWNdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3Qua2V5cylcbiAgICAgKiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5rZXlzKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFsnYScsICdiJ10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKlxuICAgICAqIF8ua2V5cygnaGknKTtcbiAgICAgKiAvLyA9PiBbJzAnLCAnMSddXG4gICAgICovXG4gICAgdmFyIGtleXMgPSAhbmF0aXZlS2V5cyA/IHNoaW1LZXlzIDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICB2YXIgQ3RvciA9IG9iamVjdCAhPSBudWxsICYmIG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgIGlmICgodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSA9PT0gb2JqZWN0KSB8fFxuICAgICAgICAgICh0eXBlb2Ygb2JqZWN0ID09ICdmdW5jdGlvbicgPyBsb2Rhc2guc3VwcG9ydC5lbnVtUHJvdG90eXBlcyA6IGlzQXJyYXlMaWtlKG9iamVjdCkpKSB7XG4gICAgICAgIHJldHVybiBzaGltS2V5cyhvYmplY3QpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzT2JqZWN0KG9iamVjdCkgPyBuYXRpdmVLZXlzKG9iamVjdCkgOiBbXTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5rZXlzSW4obmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24ga2V5c0luKG9iamVjdCkge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgICAgIHN1cHBvcnQgPSBsb2Rhc2guc3VwcG9ydDtcblxuICAgICAgbGVuZ3RoID0gKGxlbmd0aCAmJiBpc0xlbmd0aChsZW5ndGgpICYmXG4gICAgICAgIChpc0FycmF5KG9iamVjdCkgfHwgKHN1cHBvcnQubm9uRW51bVN0cmluZ3MgJiYgaXNTdHJpbmcob2JqZWN0KSkgfHxcbiAgICAgICAgICAoc3VwcG9ydC5ub25FbnVtQXJncyAmJiBpc0FyZ3VtZW50cyhvYmplY3QpKSkgJiYgbGVuZ3RoKSB8fCAwO1xuXG4gICAgICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcixcbiAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgIHByb3RvID0gKGlzRnVuY3Rpb24oQ3RvcikgJiYgQ3Rvci5wcm90b3R5cGUpIHx8IG9iamVjdFByb3RvLFxuICAgICAgICAgIGlzUHJvdG8gPSBwcm90byA9PT0gb2JqZWN0LFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCksXG4gICAgICAgICAgc2tpcEluZGV4ZXMgPSBsZW5ndGggPiAwLFxuICAgICAgICAgIHNraXBFcnJvclByb3BzID0gc3VwcG9ydC5lbnVtRXJyb3JQcm9wcyAmJiAob2JqZWN0ID09PSBlcnJvclByb3RvIHx8IG9iamVjdCBpbnN0YW5jZW9mIEVycm9yKSxcbiAgICAgICAgICBza2lwUHJvdG8gPSBzdXBwb3J0LmVudW1Qcm90b3R5cGVzICYmIGlzRnVuY3Rpb24ob2JqZWN0KTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IChpbmRleCArICcnKTtcbiAgICAgIH1cbiAgICAgIC8vIGxvZGFzaCBza2lwcyB0aGUgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSB3aGVuIGl0IGluZmVycyBpdCBpcyBpdGVyYXRpbmdcbiAgICAgIC8vIG92ZXIgYSBgcHJvdG90eXBlYCBvYmplY3QgYmVjYXVzZSBJRSA8IDkgY2FuJ3Qgc2V0IHRoZSBgW1tFbnVtZXJhYmxlXV1gXG4gICAgICAvLyBhdHRyaWJ1dGUgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkgYW5kIHRoZSBgY29uc3RydWN0b3JgIHByb3BlcnR5IG9mIGFcbiAgICAgIC8vIHByb3RvdHlwZSBkZWZhdWx0cyB0byBub24tZW51bWVyYWJsZS5cbiAgICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgaWYgKCEoc2tpcFByb3RvICYmIGtleSA9PSAncHJvdG90eXBlJykgJiZcbiAgICAgICAgICAgICEoc2tpcEVycm9yUHJvcHMgJiYgKGtleSA9PSAnbWVzc2FnZScgfHwga2V5ID09ICduYW1lJykpICYmXG4gICAgICAgICAgICAhKHNraXBJbmRleGVzICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpKSAmJlxuICAgICAgICAgICAgIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdXBwb3J0Lm5vbkVudW1TaGFkb3dzICYmIG9iamVjdCAhPT0gb2JqZWN0UHJvdG8pIHtcbiAgICAgICAgdmFyIHRhZyA9IG9iamVjdCA9PT0gc3RyaW5nUHJvdG8gPyBzdHJpbmdUYWcgOiAob2JqZWN0ID09PSBlcnJvclByb3RvID8gZXJyb3JUYWcgOiBvYmpUb1N0cmluZy5jYWxsKG9iamVjdCkpLFxuICAgICAgICAgICAgbm9uRW51bXMgPSBub25FbnVtUHJvcHNbdGFnXSB8fCBub25FbnVtUHJvcHNbb2JqZWN0VGFnXTtcblxuICAgICAgICBpZiAodGFnID09IG9iamVjdFRhZykge1xuICAgICAgICAgIHByb3RvID0gb2JqZWN0UHJvdG87XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoID0gc2hhZG93UHJvcHMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICBrZXkgPSBzaGFkb3dQcm9wc1tsZW5ndGhdO1xuICAgICAgICAgIHZhciBub25FbnVtID0gbm9uRW51bXNba2V5XTtcbiAgICAgICAgICBpZiAoIShpc1Byb3RvICYmIG5vbkVudW0pICYmXG4gICAgICAgICAgICAgIChub25FbnVtID8gaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgOiBvYmplY3Rba2V5XSAhPT0gcHJvdG9ba2V5XSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5tYXBWYWx1ZXNgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCB3aXRoIHRoZVxuICAgICAqIHNhbWUgdmFsdWVzIGFzIGBvYmplY3RgIGFuZCBrZXlzIGdlbmVyYXRlZCBieSBydW5uaW5nIGVhY2ggb3duIGVudW1lcmFibGVcbiAgICAgKiBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJvdWdoIGBpdGVyYXRlZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1hcEtleXMoeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICByZXR1cm4ga2V5ICsgdmFsdWU7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYTEnOiAxLCAnYjInOiAyIH1cbiAgICAgKi9cbiAgICB2YXIgbWFwS2V5cyA9IGNyZWF0ZU9iamVjdE1hcHBlcih0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IHdpdGggdGhlIHNhbWUga2V5cyBhcyBgb2JqZWN0YCBhbmQgdmFsdWVzIGdlbmVyYXRlZCBieVxuICAgICAqIHJ1bm5pbmcgZWFjaCBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJvdWdoIGBpdGVyYXRlZWAuIFRoZVxuICAgICAqIGl0ZXJhdGVlIGZ1bmN0aW9uIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGtleSwgb2JqZWN0KS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubWFwVmFsdWVzKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gKiAzO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAzLCAnYic6IDYgfVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0ge1xuICAgICAqICAgJ2ZyZWQnOiAgICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAgfSxcbiAgICAgKiAgICdwZWJibGVzJzogeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ubWFwVmFsdWVzKHVzZXJzLCAnYWdlJyk7XG4gICAgICogLy8gPT4geyAnZnJlZCc6IDQwLCAncGViYmxlcyc6IDEgfSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciBtYXBWYWx1ZXMgPSBjcmVhdGVPYmplY3RNYXBwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIFJlY3Vyc2l2ZWx5IG1lcmdlcyBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIHRoZSBzb3VyY2Ugb2JqZWN0KHMpLCB0aGF0XG4gICAgICogZG9uJ3QgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYCBpbnRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QuIFN1YnNlcXVlbnQgc291cmNlc1xuICAgICAqIG92ZXJ3cml0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyBzb3VyY2VzLiBJZiBgY3VzdG9taXplcmAgaXNcbiAgICAgKiBwcm92aWRlZCBpdCBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG1lcmdlZCB2YWx1ZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGFuZFxuICAgICAqIHNvdXJjZSBwcm9wZXJ0aWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCBtZXJnaW5nIGlzIGhhbmRsZWRcbiAgICAgKiBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkXG4gICAgICogd2l0aCBmaXZlIGFyZ3VtZW50czogKG9iamVjdFZhbHVlLCBzb3VyY2VWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGN1c3RvbWl6ZXJgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdkYXRhJzogW3sgJ3VzZXInOiAnYmFybmV5JyB9LCB7ICd1c2VyJzogJ2ZyZWQnIH1dXG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBhZ2VzID0ge1xuICAgICAqICAgJ2RhdGEnOiBbeyAnYWdlJzogMzYgfSwgeyAnYWdlJzogNDAgfV1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5tZXJnZSh1c2VycywgYWdlcyk7XG4gICAgICogLy8gPT4geyAnZGF0YSc6IFt7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LCB7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfV0gfVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgYSBjdXN0b21pemVyIGNhbGxiYWNrXG4gICAgICogdmFyIG9iamVjdCA9IHtcbiAgICAgKiAgICdmcnVpdHMnOiBbJ2FwcGxlJ10sXG4gICAgICogICAndmVnZXRhYmxlcyc6IFsnYmVldCddXG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBvdGhlciA9IHtcbiAgICAgKiAgICdmcnVpdHMnOiBbJ2JhbmFuYSddLFxuICAgICAqICAgJ3ZlZ2V0YWJsZXMnOiBbJ2NhcnJvdCddXG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8ubWVyZ2Uob2JqZWN0LCBvdGhlciwgZnVuY3Rpb24oYSwgYikge1xuICAgICAqICAgaWYgKF8uaXNBcnJheShhKSkge1xuICAgICAqICAgICByZXR1cm4gYS5jb25jYXQoYik7XG4gICAgICogICB9XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnZnJ1aXRzJzogWydhcHBsZScsICdiYW5hbmEnXSwgJ3ZlZ2V0YWJsZXMnOiBbJ2JlZXQnLCAnY2Fycm90J10gfVxuICAgICAqL1xuICAgIHZhciBtZXJnZSA9IGNyZWF0ZUFzc2lnbmVyKGJhc2VNZXJnZSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ucGlja2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZVxuICAgICAqIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcyBvZiBgb2JqZWN0YCB0aGF0IGFyZSBub3Qgb21pdHRlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwcmVkaWNhdGVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlclxuICAgICAqICBpdGVyYXRpb24gb3IgcHJvcGVydHkgbmFtZXMgdG8gb21pdCwgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgcHJvcGVydHlcbiAgICAgKiAgbmFtZXMgb3IgYXJyYXlzIG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH07XG4gICAgICpcbiAgICAgKiBfLm9taXQob2JqZWN0LCAnYWdlJyk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdmcmVkJyB9XG4gICAgICpcbiAgICAgKiBfLm9taXQob2JqZWN0LCBfLmlzTnVtYmVyKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKi9cbiAgICB2YXIgb21pdCA9IHJlc3RQYXJhbShmdW5jdGlvbihvYmplY3QsIHByb3BzKSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwcm9wc1swXSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBwcm9wcyA9IGFycmF5TWFwKGJhc2VGbGF0dGVuKHByb3BzKSwgU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHBpY2tCeUFycmF5KG9iamVjdCwgYmFzZURpZmZlcmVuY2Uoa2V5c0luKG9iamVjdCksIHByb3BzKSk7XG4gICAgICB9XG4gICAgICB2YXIgcHJlZGljYXRlID0gYmluZENhbGxiYWNrKHByb3BzWzBdLCBwcm9wc1sxXSwgMyk7XG4gICAgICByZXR1cm4gcGlja0J5Q2FsbGJhY2sob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuICFwcmVkaWNhdGUodmFsdWUsIGtleSwgb2JqZWN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHR3byBkaW1lbnNpb25hbCBhcnJheSBvZiB0aGUga2V5LXZhbHVlIHBhaXJzIGZvciBgb2JqZWN0YCxcbiAgICAgKiBlLmcuIGBbW2tleTEsIHZhbHVlMV0sIFtrZXkyLCB2YWx1ZTJdXWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWlycyh7ICdiYXJuZXknOiAzNiwgJ2ZyZWQnOiA0MCB9KTtcbiAgICAgKiAvLyA9PiBbWydiYXJuZXknLCAzNl0sIFsnZnJlZCcsIDQwXV0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWlycyhvYmplY3QpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHByb3BzID0ga2V5cyhvYmplY3QpLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gW2tleSwgb2JqZWN0W2tleV1dO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgcGlja2VkIGBvYmplY3RgIHByb3BlcnRpZXMuIFByb3BlcnR5XG4gICAgICogbmFtZXMgbWF5IGJlIHNwZWNpZmllZCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50cyBvciBhcyBhcnJheXMgb2YgcHJvcGVydHlcbiAgICAgKiBuYW1lcy4gSWYgYHByZWRpY2F0ZWAgaXMgcHJvdmlkZWQgaXQgaXMgaW52b2tlZCBmb3IgZWFjaCBwcm9wZXJ0eSBvZiBgb2JqZWN0YFxuICAgICAqIHBpY2tpbmcgdGhlIHByb3BlcnRpZXMgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwcmVkaWNhdGVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlclxuICAgICAqICBpdGVyYXRpb24gb3IgcHJvcGVydHkgbmFtZXMgdG8gcGljaywgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgcHJvcGVydHlcbiAgICAgKiAgbmFtZXMgb3IgYXJyYXlzIG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH07XG4gICAgICpcbiAgICAgKiBfLnBpY2sob2JqZWN0LCAndXNlcicpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqXG4gICAgICogXy5waWNrKG9iamVjdCwgXy5pc1N0cmluZyk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdmcmVkJyB9XG4gICAgICovXG4gICAgdmFyIHBpY2sgPSByZXN0UGFyYW0oZnVuY3Rpb24ob2JqZWN0LCBwcm9wcykge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0eXBlb2YgcHJvcHNbMF0gPT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHBpY2tCeUNhbGxiYWNrKG9iamVjdCwgYmluZENhbGxiYWNrKHByb3BzWzBdLCBwcm9wc1sxXSwgMykpXG4gICAgICAgIDogcGlja0J5QXJyYXkob2JqZWN0LCBiYXNlRmxhdHRlbihwcm9wcykpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5nZXRgIGV4Y2VwdCB0aGF0IGlmIHRoZSByZXNvbHZlZCB2YWx1ZSBpcyBhIGZ1bmN0aW9uXG4gICAgICogaXQgaXMgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBpdHMgcGFyZW50IG9iamVjdCBhbmQgaXRzIHJlc3VsdFxuICAgICAqIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gcmVzb2x2ZS5cbiAgICAgKiBAcGFyYW0geyp9IFtkZWZhdWx0VmFsdWVdIFRoZSB2YWx1ZSByZXR1cm5lZCBpZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgYHVuZGVmaW5lZGAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYzEnOiAzLCAnYzInOiBfLmNvbnN0YW50KDQpIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMScpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMicpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2EuYi5jJywgJ2RlZmF1bHQnKTtcbiAgICAgKiAvLyA9PiAnZGVmYXVsdCdcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2EuYi5jJywgXy5jb25zdGFudCgnZGVmYXVsdCcpKTtcbiAgICAgKiAvLyA9PiAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXN1bHQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHRvT2JqZWN0KG9iamVjdClbcGF0aF07XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG9iamVjdCAhPSBudWxsICYmICFpc0tleShwYXRoLCBvYmplY3QpKSB7XG4gICAgICAgICAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgICAgICAgICBvYmplY3QgPSBwYXRoLmxlbmd0aCA9PSAxID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xuICAgICAgICAgIHJlc3VsdCA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogdG9PYmplY3Qob2JqZWN0KVtsYXN0KHBhdGgpXTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgPSByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc0Z1bmN0aW9uKHJlc3VsdCkgPyByZXN1bHQuY2FsbChvYmplY3QpIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIGBwYXRoYCBvbiBgb2JqZWN0YC4gSWYgYSBwb3J0aW9uIG9mIGBwYXRoYFxuICAgICAqIGRvZXMgbm90IGV4aXN0IGl0IGlzIGNyZWF0ZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGF1Z21lbnQuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8uc2V0KG9iamVjdCwgJ2FbMF0uYi5jJywgNCk7XG4gICAgICogY29uc29sZS5sb2cob2JqZWN0LmFbMF0uYi5jKTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLnNldChvYmplY3QsICd4WzBdLnkueicsIDUpO1xuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdC54WzBdLnkueik7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldChvYmplY3QsIHBhdGgsIHZhbHVlKSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH1cbiAgICAgIHZhciBwYXRoS2V5ID0gKHBhdGggKyAnJyk7XG4gICAgICBwYXRoID0gKG9iamVjdFtwYXRoS2V5XSAhPSBudWxsIHx8IGlzS2V5KHBhdGgsIG9iamVjdCkpID8gW3BhdGhLZXldIDogdG9QYXRoKHBhdGgpO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcbiAgICAgICAgICBlbmRJbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICAgICAgbmVzdGVkID0gb2JqZWN0O1xuXG4gICAgICB3aGlsZSAobmVzdGVkICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcGF0aFtpbmRleF07XG4gICAgICAgIGlmIChpc09iamVjdChuZXN0ZWQpKSB7XG4gICAgICAgICAgaWYgKGluZGV4ID09IGVuZEluZGV4KSB7XG4gICAgICAgICAgICBuZXN0ZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAobmVzdGVkW2tleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgbmVzdGVkW2tleV0gPSBpc0luZGV4KHBhdGhbaW5kZXggKyAxXSkgPyBbXSA6IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gYWx0ZXJuYXRpdmUgdG8gYF8ucmVkdWNlYDsgdGhpcyBtZXRob2QgdHJhbnNmb3JtcyBgb2JqZWN0YCB0byBhIG5ld1xuICAgICAqIGBhY2N1bXVsYXRvcmAgb2JqZWN0IHdoaWNoIGlzIHRoZSByZXN1bHQgb2YgcnVubmluZyBlYWNoIG9mIGl0cyBvd24gZW51bWVyYWJsZVxuICAgICAqIHByb3BlcnRpZXMgdGhyb3VnaCBgaXRlcmF0ZWVgLCB3aXRoIGVhY2ggaW52b2NhdGlvbiBwb3RlbnRpYWxseSBtdXRhdGluZ1xuICAgICAqIHRoZSBgYWNjdW11bGF0b3JgIG9iamVjdC4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkXG4gICAgICogd2l0aCBmb3VyIGFyZ3VtZW50czogKGFjY3VtdWxhdG9yLCB2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnNcbiAgICAgKiBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgY3VzdG9tIGFjY3VtdWxhdG9yIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50cmFuc2Zvcm0oWzIsIDMsIDRdLCBmdW5jdGlvbihyZXN1bHQsIG4pIHtcbiAgICAgKiAgIHJlc3VsdC5wdXNoKG4gKj0gbik7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbNCwgOV1cbiAgICAgKlxuICAgICAqIF8udHJhbnNmb3JtKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24ocmVzdWx0LCBuLCBrZXkpIHtcbiAgICAgKiAgIHJlc3VsdFtrZXldID0gbiAqIDM7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDMsICdiJzogNiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtKG9iamVjdCwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KG9iamVjdCkgfHwgaXNUeXBlZEFycmF5KG9iamVjdCk7XG4gICAgICBpdGVyYXRlZSA9IGdldENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCA0KTtcblxuICAgICAgaWYgKGFjY3VtdWxhdG9yID09IG51bGwpIHtcbiAgICAgICAgaWYgKGlzQXJyIHx8IGlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgICAgICBpZiAoaXNBcnIpIHtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gaXNBcnJheShvYmplY3QpID8gbmV3IEN0b3IgOiBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWNjdW11bGF0b3IgPSBiYXNlQ3JlYXRlKGlzRnVuY3Rpb24oQ3RvcikgJiYgQ3Rvci5wcm90b3R5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IHt9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAoaXNBcnIgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKShvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBpdGVyYXRlZShhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBvYmplY3QpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgcHJvcGVydHkgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy52YWx1ZXMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWzEsIDJdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiBfLnZhbHVlcygnaGknKTtcbiAgICAgKiAvLyA9PiBbJ2gnLCAnaSddXG4gICAgICovXG4gICAgZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGJhc2VWYWx1ZXMob2JqZWN0LCBrZXlzKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgdmFsdWVzXG4gICAgICogb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnZhbHVlc0luKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHZhbHVlc0luKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGJhc2VWYWx1ZXMob2JqZWN0LCBrZXlzSW4ob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBuYCBpcyBiZXR3ZWVuIGBzdGFydGAgYW5kIHVwIHRvIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gSWZcbiAgICAgKiBgZW5kYCBpcyBub3Qgc3BlY2lmaWVkIGl0IGlzIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTnVtYmVyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG5gIGlzIGluIHRoZSByYW5nZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoMywgMiwgNCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDQsIDgpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSg0LCAyKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDIsIDIpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoMS4yLCAyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoNS4yLCA0KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluUmFuZ2UodmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHN0YXJ0ID0gK3N0YXJ0IHx8IDA7XG4gICAgICBpZiAodHlwZW9mIGVuZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgZW5kID0gc3RhcnQ7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVuZCA9ICtlbmQgfHwgMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZSA+PSBuYXRpdmVNaW4oc3RhcnQsIGVuZCkgJiYgdmFsdWUgPCBuYXRpdmVNYXgoc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYSByYW5kb20gbnVtYmVyIGJldHdlZW4gYG1pbmAgYW5kIGBtYXhgIChpbmNsdXNpdmUpLiBJZiBvbmx5IG9uZVxuICAgICAqIGFyZ3VtZW50IGlzIHByb3ZpZGVkIGEgbnVtYmVyIGJldHdlZW4gYDBgIGFuZCB0aGUgZ2l2ZW4gbnVtYmVyIGlzIHJldHVybmVkLlxuICAgICAqIElmIGBmbG9hdGluZ2AgaXMgYHRydWVgLCBvciBlaXRoZXIgYG1pbmAgb3IgYG1heGAgYXJlIGZsb2F0cywgYSBmbG9hdGluZy1wb2ludFxuICAgICAqIG51bWJlciBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGludGVnZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTnVtYmVyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFttaW49MF0gVGhlIG1pbmltdW0gcG9zc2libGUgdmFsdWUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFttYXg9MV0gVGhlIG1heGltdW0gcG9zc2libGUgdmFsdWUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZmxvYXRpbmddIFNwZWNpZnkgcmV0dXJuaW5nIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJhbmRvbSBudW1iZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDAsIDUpO1xuICAgICAqIC8vID0+IGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA1XG4gICAgICpcbiAgICAgKiBfLnJhbmRvbSg1KTtcbiAgICAgKiAvLyA9PiBhbHNvIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA1XG4gICAgICpcbiAgICAgKiBfLnJhbmRvbSg1LCB0cnVlKTtcbiAgICAgKiAvLyA9PiBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDEuMiwgNS4yKTtcbiAgICAgKiAvLyA9PiBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBiZXR3ZWVuIDEuMiBhbmQgNS4yXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmFuZG9tKG1pbiwgbWF4LCBmbG9hdGluZykge1xuICAgICAgaWYgKGZsb2F0aW5nICYmIGlzSXRlcmF0ZWVDYWxsKG1pbiwgbWF4LCBmbG9hdGluZykpIHtcbiAgICAgICAgbWF4ID0gZmxvYXRpbmcgPSBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIG5vTWluID0gbWluID09IG51bGwsXG4gICAgICAgICAgbm9NYXggPSBtYXggPT0gbnVsbDtcblxuICAgICAgaWYgKGZsb2F0aW5nID09IG51bGwpIHtcbiAgICAgICAgaWYgKG5vTWF4ICYmIHR5cGVvZiBtaW4gPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgZmxvYXRpbmcgPSBtaW47XG4gICAgICAgICAgbWluID0gMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgbWF4ID09ICdib29sZWFuJykge1xuICAgICAgICAgIGZsb2F0aW5nID0gbWF4O1xuICAgICAgICAgIG5vTWF4ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG5vTWluICYmIG5vTWF4KSB7XG4gICAgICAgIG1heCA9IDE7XG4gICAgICAgIG5vTWF4ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBtaW4gPSArbWluIHx8IDA7XG4gICAgICBpZiAobm9NYXgpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgICBtaW4gPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWF4ID0gK21heCB8fCAwO1xuICAgICAgfVxuICAgICAgaWYgKGZsb2F0aW5nIHx8IG1pbiAlIDEgfHwgbWF4ICUgMSkge1xuICAgICAgICB2YXIgcmFuZCA9IG5hdGl2ZVJhbmRvbSgpO1xuICAgICAgICByZXR1cm4gbmF0aXZlTWluKG1pbiArIChyYW5kICogKG1heCAtIG1pbiArIHBhcnNlRmxvYXQoJzFlLScgKyAoKHJhbmQgKyAnJykubGVuZ3RoIC0gMSkpKSksIG1heCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVJhbmRvbShtaW4sIG1heCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gW2NhbWVsIGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NhbWVsQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjYW1lbCBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvb0JhcidcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCctLWZvby1iYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xuICAgICAqXG4gICAgICogXy5jYW1lbENhc2UoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ2Zvb0JhcidcbiAgICAgKi9cbiAgICB2YXIgY2FtZWxDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICB3b3JkID0gd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/ICh3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSkgOiB3b3JkKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENhcGl0YWxpemVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY2FwaXRhbGl6ZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjYXBpdGFsaXplZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2FwaXRhbGl6ZSgnZnJlZCcpO1xuICAgICAqIC8vID0+ICdGcmVkJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiBzdHJpbmcgJiYgKHN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVidXJycyBgc3RyaW5nYCBieSBjb252ZXJ0aW5nIFtsYXRpbi0xIHN1cHBsZW1lbnRhcnkgbGV0dGVyc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW4tMV9TdXBwbGVtZW50XyhVbmljb2RlX2Jsb2NrKSNDaGFyYWN0ZXJfdGFibGUpXG4gICAgICogdG8gYmFzaWMgbGF0aW4gbGV0dGVycyBhbmQgcmVtb3ZpbmcgW2NvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29tYmluaW5nX0RpYWNyaXRpY2FsX01hcmtzKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBkZWJ1cnIuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZGVidXJyZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlYnVycignZMOpasOgIHZ1Jyk7XG4gICAgICogLy8gPT4gJ2RlamEgdnUnXG4gICAgICovXG4gICAgZnVuY3Rpb24gZGVidXJyKHN0cmluZykge1xuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gc3RyaW5nICYmIHN0cmluZy5yZXBsYWNlKHJlTGF0aW4xLCBkZWJ1cnJMZXR0ZXIpLnJlcGxhY2UocmVDb21ib01hcmssICcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHN0cmluZ2AgZW5kcyB3aXRoIHRoZSBnaXZlbiB0YXJnZXQgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3RhcmdldF0gVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249c3RyaW5nLmxlbmd0aF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgc3RyaW5nYCBlbmRzIHdpdGggYHRhcmdldGAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2MnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmVuZHNXaXRoKCdhYmMnLCAnYicpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmVuZHNXaXRoKCdhYmMnLCAnYicsIDIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlbmRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgdGFyZ2V0ID0gKHRhcmdldCArICcnKTtcblxuICAgICAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG4gICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBsZW5ndGhcbiAgICAgICAgOiBuYXRpdmVNaW4ocG9zaXRpb24gPCAwID8gMCA6ICgrcG9zaXRpb24gfHwgMCksIGxlbmd0aCk7XG5cbiAgICAgIHBvc2l0aW9uIC09IHRhcmdldC5sZW5ndGg7XG4gICAgICByZXR1cm4gcG9zaXRpb24gPj0gMCAmJiBzdHJpbmcuaW5kZXhPZih0YXJnZXQsIHBvc2l0aW9uKSA9PSBwb3NpdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgY2hhcmFjdGVycyBcIiZcIiwgXCI8XCIsIFwiPlwiLCAnXCInLCBcIidcIiwgYW5kIFwiXFxgXCIsIGluIGBzdHJpbmdgIHRvXG4gICAgICogdGhlaXIgY29ycmVzcG9uZGluZyBIVE1MIGVudGl0aWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vIG90aGVyIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQuIFRvIGVzY2FwZSBhZGRpdGlvbmFsIGNoYXJhY3RlcnNcbiAgICAgKiB1c2UgYSB0aGlyZC1wYXJ0eSBsaWJyYXJ5IGxpa2UgW19oZV9dKGh0dHBzOi8vbXRocy5iZS9oZSkuXG4gICAgICpcbiAgICAgKiBUaG91Z2ggdGhlIFwiPlwiIGNoYXJhY3RlciBpcyBlc2NhcGVkIGZvciBzeW1tZXRyeSwgY2hhcmFjdGVycyBsaWtlXG4gICAgICogXCI+XCIgYW5kIFwiL1wiIGRvbid0IHJlcXVpcmUgZXNjYXBpbmcgaW4gSFRNTCBhbmQgaGF2ZSBubyBzcGVjaWFsIG1lYW5pbmdcbiAgICAgKiB1bmxlc3MgdGhleSdyZSBwYXJ0IG9mIGEgdGFnIG9yIHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKiBTZWUgW01hdGhpYXMgQnluZW5zJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2FtYmlndW91cy1hbXBlcnNhbmRzKVxuICAgICAqICh1bmRlciBcInNlbWktcmVsYXRlZCBmdW4gZmFjdFwiKSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqXG4gICAgICogQmFja3RpY2tzIGFyZSBlc2NhcGVkIGJlY2F1c2UgaW4gSW50ZXJuZXQgRXhwbG9yZXIgPCA5LCB0aGV5IGNhbiBicmVhayBvdXRcbiAgICAgKiBvZiBhdHRyaWJ1dGUgdmFsdWVzIG9yIEhUTUwgY29tbWVudHMuIFNlZSBbIzU5XShodHRwczovL2h0bWw1c2VjLm9yZy8jNTkpLFxuICAgICAqIFsjMTAyXShodHRwczovL2h0bWw1c2VjLm9yZy8jMTAyKSwgWyMxMDhdKGh0dHBzOi8vaHRtbDVzZWMub3JnLyMxMDgpLCBhbmRcbiAgICAgKiBbIzEzM10oaHR0cHM6Ly9odG1sNXNlYy5vcmcvIzEzMykgb2YgdGhlIFtIVE1MNSBTZWN1cml0eSBDaGVhdHNoZWV0XShodHRwczovL2h0bWw1c2VjLm9yZy8pXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXMgW3F1b3RlIGF0dHJpYnV0ZSB2YWx1ZXNdKGh0dHA6Ly93b25rby5jb20vcG9zdC9odG1sLWVzY2FwaW5nKVxuICAgICAqIHRvIHJlZHVjZSBYU1MgdmVjdG9ycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXNjYXBlKCdmcmVkLCBiYXJuZXksICYgcGViYmxlcycpO1xuICAgICAqIC8vID0+ICdmcmVkLCBiYXJuZXksICZhbXA7IHBlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXNjYXBlKHN0cmluZykge1xuICAgICAgLy8gUmVzZXQgYGxhc3RJbmRleGAgYmVjYXVzZSBpbiBJRSA8IDkgYFN0cmluZyNyZXBsYWNlYCBkb2VzIG5vdC5cbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNVbmVzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVzIHRoZSBgUmVnRXhwYCBzcGVjaWFsIGNoYXJhY3RlcnMgXCJcXFwiLCBcIi9cIiwgXCJeXCIsIFwiJFwiLCBcIi5cIiwgXCJ8XCIsIFwiP1wiLFxuICAgICAqIFwiKlwiLCBcIitcIiwgXCIoXCIsIFwiKVwiLCBcIltcIiwgXCJdXCIsIFwie1wiIGFuZCBcIn1cIiBpbiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXNjYXBlUmVnRXhwKCdbbG9kYXNoXShodHRwczovL2xvZGFzaC5jb20vKScpO1xuICAgICAqIC8vID0+ICdcXFtsb2Rhc2hcXF1cXChodHRwczpcXC9cXC9sb2Rhc2hcXC5jb21cXC9cXCknXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gKHN0cmluZyAmJiByZUhhc1JlZ0V4cENoYXJzLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZVJlZ0V4cENoYXJzLCAnXFxcXCQmJylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gW2tlYmFiIGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xldHRlcl9jYXNlI1NwZWNpYWxfY2FzZV9zdHlsZXMpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUga2ViYWIgY2FzZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnRm9vIEJhcicpO1xuICAgICAqIC8vID0+ICdmb28tYmFyJ1xuICAgICAqXG4gICAgICogXy5rZWJhYkNhc2UoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdmb28tYmFyJ1xuICAgICAqXG4gICAgICogXy5rZWJhYkNhc2UoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICovXG4gICAgdmFyIGtlYmFiQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0LCB3b3JkLCBpbmRleCkge1xuICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/ICctJyA6ICcnKSArIHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIGlmIGl0IGlzIHNob3J0ZXIgdGhhbiBgbGVuZ3RoYC5cbiAgICAgKiBQYWRkaW5nIGNoYXJhY3RlcnMgYXJlIHRydW5jYXRlZCBpZiB0aGV5IGNhbid0IGJlIGV2ZW5seSBkaXZpZGVkIGJ5IGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHBhZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFkKCdhYmMnLCA4KTtcbiAgICAgKiAvLyA9PiAnICBhYmMgICAnXG4gICAgICpcbiAgICAgKiBfLnBhZCgnYWJjJywgOCwgJ18tJyk7XG4gICAgICogLy8gPT4gJ18tYWJjXy1fJ1xuICAgICAqXG4gICAgICogXy5wYWQoJ2FiYycsIDMpO1xuICAgICAqIC8vID0+ICdhYmMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFkKHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBsZW5ndGggPSArbGVuZ3RoO1xuXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgICAgIGlmIChzdHJMZW5ndGggPj0gbGVuZ3RoIHx8ICFuYXRpdmVJc0Zpbml0ZShsZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICB2YXIgbWlkID0gKGxlbmd0aCAtIHN0ckxlbmd0aCkgLyAyLFxuICAgICAgICAgIGxlZnRMZW5ndGggPSBmbG9vcihtaWQpLFxuICAgICAgICAgIHJpZ2h0TGVuZ3RoID0gY2VpbChtaWQpO1xuXG4gICAgICBjaGFycyA9IGNyZWF0ZVBhZGRpbmcoJycsIHJpZ2h0TGVuZ3RoLCBjaGFycyk7XG4gICAgICByZXR1cm4gY2hhcnMuc2xpY2UoMCwgbGVmdExlbmd0aCkgKyBzdHJpbmcgKyBjaGFycztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSBsZWZ0IHNpZGUgaWYgaXQgaXMgc2hvcnRlciB0aGFuIGBsZW5ndGhgLiBQYWRkaW5nXG4gICAgICogY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgZXhjZWVkIGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHBhZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFkTGVmdCgnYWJjJywgNik7XG4gICAgICogLy8gPT4gJyAgIGFiYydcbiAgICAgKlxuICAgICAqIF8ucGFkTGVmdCgnYWJjJywgNiwgJ18tJyk7XG4gICAgICogLy8gPT4gJ18tX2FiYydcbiAgICAgKlxuICAgICAqIF8ucGFkTGVmdCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICB2YXIgcGFkTGVmdCA9IGNyZWF0ZVBhZERpcigpO1xuXG4gICAgLyoqXG4gICAgICogUGFkcyBgc3RyaW5nYCBvbiB0aGUgcmlnaHQgc2lkZSBpZiBpdCBpcyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuIFBhZGRpbmdcbiAgICAgKiBjaGFyYWN0ZXJzIGFyZSB0cnVuY2F0ZWQgaWYgdGhleSBleGNlZWQgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWRSaWdodCgnYWJjJywgNik7XG4gICAgICogLy8gPT4gJ2FiYyAgICdcbiAgICAgKlxuICAgICAqIF8ucGFkUmlnaHQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZFJpZ2h0KCdhYmMnLCAzKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqL1xuICAgIHZhciBwYWRSaWdodCA9IGNyZWF0ZVBhZERpcih0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvIGFuIGludGVnZXIgb2YgdGhlIHNwZWNpZmllZCByYWRpeC4gSWYgYHJhZGl4YCBpc1xuICAgICAqIGB1bmRlZmluZWRgIG9yIGAwYCwgYSBgcmFkaXhgIG9mIGAxMGAgaXMgdXNlZCB1bmxlc3MgYHZhbHVlYCBpcyBhIGhleGFkZWNpbWFsLFxuICAgICAqIGluIHdoaWNoIGNhc2UgYSBgcmFkaXhgIG9mIGAxNmAgaXMgdXNlZC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBhbGlnbnMgd2l0aCB0aGUgW0VTNSBpbXBsZW1lbnRhdGlvbl0oaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyNFKVxuICAgICAqIG9mIGBwYXJzZUludGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtyYWRpeF0gVGhlIHJhZGl4IHRvIGludGVycHJldCBgdmFsdWVgIGJ5LlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhcnNlSW50KCcwOCcpO1xuICAgICAqIC8vID0+IDhcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnNicsICcwOCcsICcxMCddLCBfLnBhcnNlSW50KTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyc2VJbnQoc3RyaW5nLCByYWRpeCwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIHJhZGl4LCBndWFyZCkpIHtcbiAgICAgICAgcmFkaXggPSAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5hdGl2ZVBhcnNlSW50KHN0cmluZywgcmFkaXgpO1xuICAgIH1cbiAgICAvLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGggcHJlLUVTNSBpbXBsZW1lbnRhdGlvbnMuXG4gICAgaWYgKG5hdGl2ZVBhcnNlSW50KHdoaXRlc3BhY2UgKyAnMDgnKSAhPSA4KSB7XG4gICAgICBwYXJzZUludCA9IGZ1bmN0aW9uKHN0cmluZywgcmFkaXgsIGd1YXJkKSB7XG4gICAgICAgIC8vIEZpcmVmb3ggPCAyMSBhbmQgT3BlcmEgPCAxNSBmb2xsb3cgRVMzIGZvciBgcGFyc2VJbnRgLlxuICAgICAgICAvLyBDaHJvbWUgZmFpbHMgdG8gdHJpbSBsZWFkaW5nIDxCT00+IHdoaXRlc3BhY2UgY2hhcmFjdGVycy5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMTA5IGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgcmFkaXgsIGd1YXJkKSA6IHJhZGl4ID09IG51bGwpIHtcbiAgICAgICAgICByYWRpeCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAocmFkaXgpIHtcbiAgICAgICAgICByYWRpeCA9ICtyYWRpeDtcbiAgICAgICAgfVxuICAgICAgICBzdHJpbmcgPSB0cmltKHN0cmluZyk7XG4gICAgICAgIHJldHVybiBuYXRpdmVQYXJzZUludChzdHJpbmcsIHJhZGl4IHx8IChyZUhhc0hleFByZWZpeC50ZXN0KHN0cmluZykgPyAxNiA6IDEwKSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGVhdHMgdGhlIGdpdmVuIHN0cmluZyBgbmAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcmVwZWF0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0wXSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc3RyaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHJlcGVhdGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZXBlYXQoJyonLCAzKTtcbiAgICAgKiAvLyA9PiAnKioqJ1xuICAgICAqXG4gICAgICogXy5yZXBlYXQoJ2FiYycsIDIpO1xuICAgICAqIC8vID0+ICdhYmNhYmMnXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnYWJjJywgMCk7XG4gICAgICogLy8gPT4gJydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBuKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIG4gPSArbjtcbiAgICAgIGlmIChuIDwgMSB8fCAhc3RyaW5nIHx8ICFuYXRpdmVJc0Zpbml0ZShuKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgLy8gTGV2ZXJhZ2UgdGhlIGV4cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nIGFsZ29yaXRobSBmb3IgYSBmYXN0ZXIgcmVwZWF0LlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V4cG9uZW50aWF0aW9uX2J5X3NxdWFyaW5nIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChuICUgMikge1xuICAgICAgICAgIHJlc3VsdCArPSBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgbiA9IGZsb29yKG4gLyAyKTtcbiAgICAgICAgc3RyaW5nICs9IHN0cmluZztcbiAgICAgIH0gd2hpbGUgKG4pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvIFtzbmFrZSBjYXNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbmFrZV9jYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNuYWtlIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zbmFrZUNhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCdmb29CYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCctLWZvby1iYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKi9cbiAgICB2YXIgc25ha2VDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJ18nIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gW3N0YXJ0IGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xldHRlcl9jYXNlI1N0eWxpc3RpY19vcl9zcGVjaWFsaXNlZF91c2FnZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzdGFydCBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3RhcnRDYXNlKCctLWZvby1iYXInKTtcbiAgICAgKiAvLyA9PiAnRm9vIEJhcidcbiAgICAgKlxuICAgICAqIF8uc3RhcnRDYXNlKCdmb29CYXInKTtcbiAgICAgKiAvLyA9PiAnRm9vIEJhcidcbiAgICAgKlxuICAgICAqIF8uc3RhcnRDYXNlKCdfX2Zvb19iYXJfXycpO1xuICAgICAqIC8vID0+ICdGb28gQmFyJ1xuICAgICAqL1xuICAgIHZhciBzdGFydENhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyAnICcgOiAnJykgKyAod29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBzdHJpbmdgIHN0YXJ0cyB3aXRoIHRoZSBnaXZlbiB0YXJnZXQgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3RhcmdldF0gVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249MF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgc3RyaW5nYCBzdGFydHMgd2l0aCBgdGFyZ2V0YCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdhJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5zdGFydHNXaXRoKCdhYmMnLCAnYicpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdiJywgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YXJ0c1dpdGgoc3RyaW5nLCB0YXJnZXQsIHBvc2l0aW9uKSB7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gPT0gbnVsbFxuICAgICAgICA/IDBcbiAgICAgICAgOiBuYXRpdmVNaW4ocG9zaXRpb24gPCAwID8gMCA6ICgrcG9zaXRpb24gfHwgMCksIHN0cmluZy5sZW5ndGgpO1xuXG4gICAgICByZXR1cm4gc3RyaW5nLmxhc3RJbmRleE9mKHRhcmdldCwgcG9zaXRpb24pID09IHBvc2l0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbiB0aGF0IGNhbiBpbnRlcnBvbGF0ZSBkYXRhIHByb3BlcnRpZXNcbiAgICAgKiBpbiBcImludGVycG9sYXRlXCIgZGVsaW1pdGVycywgSFRNTC1lc2NhcGUgaW50ZXJwb2xhdGVkIGRhdGEgcHJvcGVydGllcyBpblxuICAgICAqIFwiZXNjYXBlXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy4gRGF0YVxuICAgICAqIHByb3BlcnRpZXMgbWF5IGJlIGFjY2Vzc2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIHRoZSB0ZW1wbGF0ZS4gSWYgYSBzZXR0aW5nXG4gICAgICogb2JqZWN0IGlzIHByb3ZpZGVkIGl0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBgXy50ZW1wbGF0ZVNldHRpbmdzYCB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSW4gdGhlIGRldmVsb3BtZW50IGJ1aWxkIGBfLnRlbXBsYXRlYCB1dGlsaXplc1xuICAgICAqIFtzb3VyY2VVUkxzXShodHRwOi8vd3d3Lmh0bWw1cm9ja3MuY29tL2VuL3R1dG9yaWFscy9kZXZlbG9wZXJ0b29scy9zb3VyY2VtYXBzLyN0b2Mtc291cmNldXJsKVxuICAgICAqIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAgICAqXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gcHJlY29tcGlsaW5nIHRlbXBsYXRlcyBzZWVcbiAgICAgKiBbbG9kYXNoJ3MgY3VzdG9tIGJ1aWxkcyBkb2N1bWVudGF0aW9uXShodHRwczovL2xvZGFzaC5jb20vY3VzdG9tLWJ1aWxkcykuXG4gICAgICpcbiAgICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBDaHJvbWUgZXh0ZW5zaW9uIHNhbmRib3hlcyBzZWVcbiAgICAgKiBbQ2hyb21lJ3MgZXh0ZW5zaW9ucyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2V4dGVuc2lvbnMvc2FuZGJveGluZ0V2YWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgdGVtcGxhdGUgc3RyaW5nLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5lc2NhcGVdIFRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5ldmFsdWF0ZV0gVGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zLmltcG9ydHNdIEFuIG9iamVjdCB0byBpbXBvcnQgaW50byB0aGUgdGVtcGxhdGUgYXMgZnJlZSB2YXJpYWJsZXMuXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmludGVycG9sYXRlXSBUaGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuc291cmNlVVJMXSBUaGUgc291cmNlVVJMIG9mIHRoZSB0ZW1wbGF0ZSdzIGNvbXBpbGVkIHNvdXJjZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudmFyaWFibGVdIFRoZSBkYXRhIG9iamVjdCB2YXJpYWJsZSBuYW1lLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW290aGVyT3B0aW9uc10gRW5hYmxlcyB0aGUgbGVnYWN5IGBvcHRpb25zYCBwYXJhbSBzaWduYXR1cmUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIgdG8gY3JlYXRlIGEgY29tcGlsZWQgdGVtcGxhdGVcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyA8JT0gdXNlciAlPiEnKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ2ZyZWQnIH0pO1xuICAgICAqIC8vID0+ICdoZWxsbyBmcmVkISdcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyIHRvIGVzY2FwZSBkYXRhIHByb3BlcnR5IHZhbHVlc1xuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzxiPjwlLSB2YWx1ZSAlPjwvYj4nKTtcbiAgICAgKiBjb21waWxlZCh7ICd2YWx1ZSc6ICc8c2NyaXB0PicgfSk7XG4gICAgICogLy8gPT4gJzxiPiZsdDtzY3JpcHQmZ3Q7PC9iPidcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCBhbmQgZ2VuZXJhdGUgSFRNTFxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gICAgICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgaW50ZXJuYWwgYHByaW50YCBmdW5jdGlvbiBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVyc1xuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIHByaW50KFwiaGVsbG8gXCIgKyB1c2VyKTsgJT4hJyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcic6ICdiYXJuZXknIH0pO1xuICAgICAqIC8vID0+ICdoZWxsbyBiYXJuZXkhJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIEVTIGRlbGltaXRlciBhcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgZGVmYXVsdCBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gJHsgdXNlciB9IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAncGViYmxlcycgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIHBlYmJsZXMhJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgY3VzdG9tIHRlbXBsYXRlIGRlbGltaXRlcnNcbiAgICAgKiBfLnRlbXBsYXRlU2V0dGluZ3MuaW50ZXJwb2xhdGUgPSAve3soW1xcc1xcU10rPyl9fS9nO1xuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIHt7IHVzZXIgfX0hJyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcic6ICdtdXN0YWNoZScgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIG11c3RhY2hlISdcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGJhY2tzbGFzaGVzIHRvIHRyZWF0IGRlbGltaXRlcnMgYXMgcGxhaW4gdGV4dFxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlPSBcIlxcXFw8JS0gdmFsdWUgJVxcXFw+XCIgJT4nKTtcbiAgICAgKiBjb21waWxlZCh7ICd2YWx1ZSc6ICdpZ25vcmVkJyB9KTtcbiAgICAgKiAvLyA9PiAnPCUtIHZhbHVlICU+J1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBpbXBvcnRzYCBvcHRpb24gdG8gaW1wb3J0IGBqUXVlcnlgIGFzIGBqcWBcbiAgICAgKiB2YXIgdGV4dCA9ICc8JSBqcS5lYWNoKHVzZXJzLCBmdW5jdGlvbih1c2VyKSB7ICU+PGxpPjwlLSB1c2VyICU+PC9saT48JSB9KTsgJT4nO1xuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUodGV4dCwgeyAnaW1wb3J0cyc6IHsgJ2pxJzogalF1ZXJ5IH0gfSk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gICAgICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYHNvdXJjZVVSTGAgb3B0aW9uIHRvIHNwZWNpZnkgYSBjdXN0b20gc291cmNlVVJMIGZvciB0aGUgdGVtcGxhdGVcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyA8JT0gdXNlciAlPiEnLCB7ICdzb3VyY2VVUkwnOiAnL2Jhc2ljL2dyZWV0aW5nLmpzdCcgfSk7XG4gICAgICogY29tcGlsZWQoZGF0YSk7XG4gICAgICogLy8gPT4gZmluZCB0aGUgc291cmNlIG9mIFwiZ3JlZXRpbmcuanN0XCIgdW5kZXIgdGhlIFNvdXJjZXMgdGFiIG9yIFJlc291cmNlcyBwYW5lbCBvZiB0aGUgd2ViIGluc3BlY3RvclxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGB2YXJpYWJsZWAgb3B0aW9uIHRvIGVuc3VyZSBhIHdpdGgtc3RhdGVtZW50IGlzbid0IHVzZWQgaW4gdGhlIGNvbXBpbGVkIHRlbXBsYXRlXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGkgPCU9IGRhdGEudXNlciAlPiEnLCB7ICd2YXJpYWJsZSc6ICdkYXRhJyB9KTtcbiAgICAgKiBjb21waWxlZC5zb3VyY2U7XG4gICAgICogLy8gPT4gZnVuY3Rpb24oZGF0YSkge1xuICAgICAqIC8vICAgdmFyIF9fdCwgX19wID0gJyc7XG4gICAgICogLy8gICBfX3AgKz0gJ2hpICcgKyAoKF9fdCA9ICggZGF0YS51c2VyICkpID09IG51bGwgPyAnJyA6IF9fdCkgKyAnISc7XG4gICAgICogLy8gICByZXR1cm4gX19wO1xuICAgICAqIC8vIH1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgc291cmNlYCBwcm9wZXJ0eSB0byBpbmxpbmUgY29tcGlsZWQgdGVtcGxhdGVzIGZvciBtZWFuaW5nZnVsXG4gICAgICogLy8gbGluZSBudW1iZXJzIGluIGVycm9yIG1lc3NhZ2VzIGFuZCBhIHN0YWNrIHRyYWNlXG4gICAgICogZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oY3dkLCAnanN0LmpzJyksICdcXFxuICAgICAqICAgdmFyIEpTVCA9IHtcXFxuICAgICAqICAgICBcIm1haW5cIjogJyArIF8udGVtcGxhdGUobWFpblRleHQpLnNvdXJjZSArICdcXFxuICAgICAqICAgfTtcXFxuICAgICAqICcpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgb3RoZXJPcHRpb25zKSB7XG4gICAgICAvLyBCYXNlZCBvbiBKb2huIFJlc2lnJ3MgYHRtcGxgIGltcGxlbWVudGF0aW9uIChodHRwOi8vZWpvaG4ub3JnL2Jsb2cvamF2YXNjcmlwdC1taWNyby10ZW1wbGF0aW5nLylcbiAgICAgIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICAgICAgdmFyIHNldHRpbmdzID0gbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3M7XG5cbiAgICAgIGlmIChvdGhlck9wdGlvbnMgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBvcHRpb25zLCBvdGhlck9wdGlvbnMpKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvdGhlck9wdGlvbnMgPSBudWxsO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBvcHRpb25zID0gYXNzaWduV2l0aChiYXNlQXNzaWduKHt9LCBvdGhlck9wdGlvbnMgfHwgb3B0aW9ucyksIHNldHRpbmdzLCBhc3NpZ25Pd25EZWZhdWx0cyk7XG5cbiAgICAgIHZhciBpbXBvcnRzID0gYXNzaWduV2l0aChiYXNlQXNzaWduKHt9LCBvcHRpb25zLmltcG9ydHMpLCBzZXR0aW5ncy5pbXBvcnRzLCBhc3NpZ25Pd25EZWZhdWx0cyksXG4gICAgICAgICAgaW1wb3J0c0tleXMgPSBrZXlzKGltcG9ydHMpLFxuICAgICAgICAgIGltcG9ydHNWYWx1ZXMgPSBiYXNlVmFsdWVzKGltcG9ydHMsIGltcG9ydHNLZXlzKTtcblxuICAgICAgdmFyIGlzRXNjYXBpbmcsXG4gICAgICAgICAgaXNFdmFsdWF0aW5nLFxuICAgICAgICAgIGluZGV4ID0gMCxcbiAgICAgICAgICBpbnRlcnBvbGF0ZSA9IG9wdGlvbnMuaW50ZXJwb2xhdGUgfHwgcmVOb01hdGNoLFxuICAgICAgICAgIHNvdXJjZSA9IFwiX19wICs9ICdcIjtcblxuICAgICAgLy8gQ29tcGlsZSB0aGUgcmVnZXhwIHRvIG1hdGNoIGVhY2ggZGVsaW1pdGVyLlxuICAgICAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICAgICAgKG9wdGlvbnMuZXNjYXBlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wnICtcbiAgICAgICAgaW50ZXJwb2xhdGUuc291cmNlICsgJ3wnICtcbiAgICAgICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgICAgICAob3B0aW9ucy5ldmFsdWF0ZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JCdcbiAgICAgICwgJ2cnKTtcblxuICAgICAgLy8gVXNlIGEgc291cmNlVVJMIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAgICAgdmFyIHNvdXJjZVVSTCA9ICcvLyMgc291cmNlVVJMPScgK1xuICAgICAgICAoJ3NvdXJjZVVSTCcgaW4gb3B0aW9uc1xuICAgICAgICAgID8gb3B0aW9ucy5zb3VyY2VVUkxcbiAgICAgICAgICA6ICgnbG9kYXNoLnRlbXBsYXRlU291cmNlc1snICsgKCsrdGVtcGxhdGVDb3VudGVyKSArICddJylcbiAgICAgICAgKSArICdcXG4nO1xuXG4gICAgICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG5cbiAgICAgICAgLy8gRXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZSBpbmNsdWRlZCBpbiBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgICAgIHNvdXJjZSArPSBzdHJpbmcuc2xpY2UoaW5kZXgsIG9mZnNldCkucmVwbGFjZShyZVVuZXNjYXBlZFN0cmluZywgZXNjYXBlU3RyaW5nQ2hhcik7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgICAgIGlzRXNjYXBpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbl9fZShcIiArIGVzY2FwZVZhbHVlICsgXCIpICtcXG4nXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2YWx1YXRlVmFsdWUpIHtcbiAgICAgICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIic7XFxuXCIgKyBldmFsdWF0ZVZhbHVlICsgXCI7XFxuX19wICs9ICdcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbigoX190ID0gKFwiICsgaW50ZXJwb2xhdGVWYWx1ZSArIFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuJ1wiO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgICAgIC8vIFRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgcHJvZHVjdHMgcmVxdWlyZXMgcmV0dXJuaW5nIHRoZSBgbWF0Y2hgXG4gICAgICAgIC8vIHN0cmluZyBpbiBvcmRlciB0byBwcm9kdWNlIHRoZSBjb3JyZWN0IGBvZmZzZXRgIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcblxuICAgICAgc291cmNlICs9IFwiJztcXG5cIjtcblxuICAgICAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxuICAgICAgLy8gY29kZSB0byBhZGQgdGhlIGRhdGEgb2JqZWN0IHRvIHRoZSB0b3Agb2YgdGhlIHNjb3BlIGNoYWluLlxuICAgICAgdmFyIHZhcmlhYmxlID0gb3B0aW9ucy52YXJpYWJsZTtcbiAgICAgIGlmICghdmFyaWFibGUpIHtcbiAgICAgICAgc291cmNlID0gJ3dpdGggKG9iaikge1xcbicgKyBzb3VyY2UgKyAnXFxufVxcbic7XG4gICAgICB9XG4gICAgICAvLyBDbGVhbnVwIGNvZGUgYnkgc3RyaXBwaW5nIGVtcHR5IHN0cmluZ3MuXG4gICAgICBzb3VyY2UgPSAoaXNFdmFsdWF0aW5nID8gc291cmNlLnJlcGxhY2UocmVFbXB0eVN0cmluZ0xlYWRpbmcsICcnKSA6IHNvdXJjZSlcbiAgICAgICAgLnJlcGxhY2UocmVFbXB0eVN0cmluZ01pZGRsZSwgJyQxJylcbiAgICAgICAgLnJlcGxhY2UocmVFbXB0eVN0cmluZ1RyYWlsaW5nLCAnJDE7Jyk7XG5cbiAgICAgIC8vIEZyYW1lIGNvZGUgYXMgdGhlIGZ1bmN0aW9uIGJvZHkuXG4gICAgICBzb3VyY2UgPSAnZnVuY3Rpb24oJyArICh2YXJpYWJsZSB8fCAnb2JqJykgKyAnKSB7XFxuJyArXG4gICAgICAgICh2YXJpYWJsZVxuICAgICAgICAgID8gJydcbiAgICAgICAgICA6ICdvYmogfHwgKG9iaiA9IHt9KTtcXG4nXG4gICAgICAgICkgK1xuICAgICAgICBcInZhciBfX3QsIF9fcCA9ICcnXCIgK1xuICAgICAgICAoaXNFc2NhcGluZ1xuICAgICAgICAgICA/ICcsIF9fZSA9IF8uZXNjYXBlJ1xuICAgICAgICAgICA6ICcnXG4gICAgICAgICkgK1xuICAgICAgICAoaXNFdmFsdWF0aW5nXG4gICAgICAgICAgPyAnLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcXG4nICtcbiAgICAgICAgICAgIFwiZnVuY3Rpb24gcHJpbnQoKSB7IF9fcCArPSBfX2ouY2FsbChhcmd1bWVudHMsICcnKSB9XFxuXCJcbiAgICAgICAgICA6ICc7XFxuJ1xuICAgICAgICApICtcbiAgICAgICAgc291cmNlICtcbiAgICAgICAgJ3JldHVybiBfX3BcXG59JztcblxuICAgICAgdmFyIHJlc3VsdCA9IGF0dGVtcHQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBGdW5jdGlvbihpbXBvcnRzS2V5cywgc291cmNlVVJMICsgJ3JldHVybiAnICsgc291cmNlKS5hcHBseSh1bmRlZmluZWQsIGltcG9ydHNWYWx1ZXMpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFByb3ZpZGUgdGhlIGNvbXBpbGVkIGZ1bmN0aW9uJ3Mgc291cmNlIGJ5IGl0cyBgdG9TdHJpbmdgIG1ldGhvZCBvclxuICAgICAgLy8gdGhlIGBzb3VyY2VgIHByb3BlcnR5IGFzIGEgY29udmVuaWVuY2UgZm9yIGlubGluaW5nIGNvbXBpbGVkIHRlbXBsYXRlcy5cbiAgICAgIHJlc3VsdC5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICBpZiAoaXNFcnJvcihyZXN1bHQpKSB7XG4gICAgICAgIHRocm93IHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIG9yIHNwZWNpZmllZCBjaGFyYWN0ZXJzIGZyb20gYHN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPXdoaXRlc3BhY2VdIFRoZSBjaGFyYWN0ZXJzIHRvIHRyaW0uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJpbSgnICBhYmMgICcpO1xuICAgICAqIC8vID0+ICdhYmMnXG4gICAgICpcbiAgICAgKiBfLnRyaW0oJy1fLWFiYy1fLScsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmMnXG4gICAgICpcbiAgICAgKiBfLm1hcChbJyAgZm9vICAnLCAnICBiYXIgICddLCBfLnRyaW0pO1xuICAgICAqIC8vID0+IFsnZm9vJywgJ2JhciddXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJpbShzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgdmFyIHZhbHVlID0gc3RyaW5nO1xuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBpZiAoIXN0cmluZykge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGNoYXJzLCBndWFyZCkgOiBjaGFycyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcuc2xpY2UodHJpbW1lZExlZnRJbmRleChzdHJpbmcpLCB0cmltbWVkUmlnaHRJbmRleChzdHJpbmcpICsgMSk7XG4gICAgICB9XG4gICAgICBjaGFycyA9IChjaGFycyArICcnKTtcbiAgICAgIHJldHVybiBzdHJpbmcuc2xpY2UoY2hhcnNMZWZ0SW5kZXgoc3RyaW5nLCBjaGFycyksIGNoYXJzUmlnaHRJbmRleChzdHJpbmcsIGNoYXJzKSArIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgbGVhZGluZyB3aGl0ZXNwYWNlIG9yIHNwZWNpZmllZCBjaGFyYWN0ZXJzIGZyb20gYHN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPXdoaXRlc3BhY2VdIFRoZSBjaGFyYWN0ZXJzIHRvIHRyaW0uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJpbUxlZnQoJyAgYWJjICAnKTtcbiAgICAgKiAvLyA9PiAnYWJjICAnXG4gICAgICpcbiAgICAgKiBfLnRyaW1MZWZ0KCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnYWJjLV8tJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW1MZWZ0KHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICB2YXIgdmFsdWUgPSBzdHJpbmc7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmICghc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgY2hhcnMsIGd1YXJkKSA6IGNoYXJzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSh0cmltbWVkTGVmdEluZGV4KHN0cmluZykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZy5zbGljZShjaGFyc0xlZnRJbmRleChzdHJpbmcsIChjaGFycyArICcnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdHJhaWxpbmcgd2hpdGVzcGFjZSBvciBzcGVjaWZpZWQgY2hhcmFjdGVycyBmcm9tIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz13aGl0ZXNwYWNlXSBUaGUgY2hhcmFjdGVycyB0byB0cmltLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW1SaWdodCgnICBhYmMgICcpO1xuICAgICAqIC8vID0+ICcgIGFiYydcbiAgICAgKlxuICAgICAqIF8udHJpbVJpZ2h0KCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnLV8tYWJjJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW1SaWdodChzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgdmFyIHZhbHVlID0gc3RyaW5nO1xuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBpZiAoIXN0cmluZykge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGNoYXJzLCBndWFyZCkgOiBjaGFycyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcuc2xpY2UoMCwgdHJpbW1lZFJpZ2h0SW5kZXgoc3RyaW5nKSArIDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSgwLCBjaGFyc1JpZ2h0SW5kZXgoc3RyaW5nLCAoY2hhcnMgKyAnJykpICsgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJ1bmNhdGVzIGBzdHJpbmdgIGlmIGl0IGlzIGxvbmdlciB0aGFuIHRoZSBnaXZlbiBtYXhpbXVtIHN0cmluZyBsZW5ndGguXG4gICAgICogVGhlIGxhc3QgY2hhcmFjdGVycyBvZiB0aGUgdHJ1bmNhdGVkIHN0cmluZyBhcmUgcmVwbGFjZWQgd2l0aCB0aGUgb21pc3Npb25cbiAgICAgKiBzdHJpbmcgd2hpY2ggZGVmYXVsdHMgdG8gXCIuLi5cIi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cnVuY2F0ZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdHxudW1iZXJ9IFtvcHRpb25zXSBUaGUgb3B0aW9ucyBvYmplY3Qgb3IgbWF4aW11bSBzdHJpbmcgbGVuZ3RoLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5sZW5ndGg9MzBdIFRoZSBtYXhpbXVtIHN0cmluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm9taXNzaW9uPScuLi4nXSBUaGUgc3RyaW5nIHRvIGluZGljYXRlIHRleHQgaXMgb21pdHRlZC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IFtvcHRpb25zLnNlcGFyYXRvcl0gVGhlIHNlcGFyYXRvciBwYXR0ZXJuIHRvIHRydW5jYXRlIHRvLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRydW5jYXRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJ1bmMoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nKTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvLi4uJ1xuICAgICAqXG4gICAgICogXy50cnVuYygnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIDI0KTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLCBuLi4uJ1xuICAgICAqXG4gICAgICogXy50cnVuYygnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIHtcbiAgICAgKiAgICdsZW5ndGgnOiAyNCxcbiAgICAgKiAgICdzZXBhcmF0b3InOiAnICdcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLC4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmMoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnbGVuZ3RoJzogMjQsXG4gICAgICogICAnc2VwYXJhdG9yJzogLyw/ICsvXG4gICAgICogfSk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZS4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmMoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnb21pc3Npb24nOiAnIFsuLi5dJ1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWcgWy4uLl0nXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJ1bmMoc3RyaW5nLCBvcHRpb25zLCBndWFyZCkge1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpKSB7XG4gICAgICAgIG9wdGlvbnMgPSBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIGxlbmd0aCA9IERFRkFVTFRfVFJVTkNfTEVOR1RILFxuICAgICAgICAgIG9taXNzaW9uID0gREVGQVVMVF9UUlVOQ19PTUlTU0lPTjtcblxuICAgICAgaWYgKG9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgICB2YXIgc2VwYXJhdG9yID0gJ3NlcGFyYXRvcicgaW4gb3B0aW9ucyA/IG9wdGlvbnMuc2VwYXJhdG9yIDogc2VwYXJhdG9yO1xuICAgICAgICAgIGxlbmd0aCA9ICdsZW5ndGgnIGluIG9wdGlvbnMgPyAoK29wdGlvbnMubGVuZ3RoIHx8IDApIDogbGVuZ3RoO1xuICAgICAgICAgIG9taXNzaW9uID0gJ29taXNzaW9uJyBpbiBvcHRpb25zID8gYmFzZVRvU3RyaW5nKG9wdGlvbnMub21pc3Npb24pIDogb21pc3Npb247XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGVuZ3RoID0gK29wdGlvbnMgfHwgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBpZiAobGVuZ3RoID49IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBlbmQgPSBsZW5ndGggLSBvbWlzc2lvbi5sZW5ndGg7XG4gICAgICBpZiAoZW5kIDwgMSkge1xuICAgICAgICByZXR1cm4gb21pc3Npb247XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gc3RyaW5nLnNsaWNlKDAsIGVuZCk7XG4gICAgICBpZiAoc2VwYXJhdG9yID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCArIG9taXNzaW9uO1xuICAgICAgfVxuICAgICAgaWYgKGlzUmVnRXhwKHNlcGFyYXRvcikpIHtcbiAgICAgICAgaWYgKHN0cmluZy5zbGljZShlbmQpLnNlYXJjaChzZXBhcmF0b3IpKSB7XG4gICAgICAgICAgdmFyIG1hdGNoLFxuICAgICAgICAgICAgICBuZXdFbmQsXG4gICAgICAgICAgICAgIHN1YnN0cmluZyA9IHN0cmluZy5zbGljZSgwLCBlbmQpO1xuXG4gICAgICAgICAgaWYgKCFzZXBhcmF0b3IuZ2xvYmFsKSB7XG4gICAgICAgICAgICBzZXBhcmF0b3IgPSBSZWdFeHAoc2VwYXJhdG9yLnNvdXJjZSwgKHJlRmxhZ3MuZXhlYyhzZXBhcmF0b3IpIHx8ICcnKSArICdnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNlcGFyYXRvci5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgIHdoaWxlICgobWF0Y2ggPSBzZXBhcmF0b3IuZXhlYyhzdWJzdHJpbmcpKSkge1xuICAgICAgICAgICAgbmV3RW5kID0gbWF0Y2guaW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCBuZXdFbmQgPT0gbnVsbCA/IGVuZCA6IG5ld0VuZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoc3RyaW5nLmluZGV4T2Yoc2VwYXJhdG9yLCBlbmQpICE9IGVuZCkge1xuICAgICAgICB2YXIgaW5kZXggPSByZXN1bHQubGFzdEluZGV4T2Yoc2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0ICsgb21pc3Npb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGludmVyc2Ugb2YgYF8uZXNjYXBlYDsgdGhpcyBtZXRob2QgY29udmVydHMgdGhlIEhUTUwgZW50aXRpZXNcbiAgICAgKiBgJmFtcDtgLCBgJmx0O2AsIGAmZ3Q7YCwgYCZxdW90O2AsIGAmIzM5O2AsIGFuZCBgJiM5NjtgIGluIGBzdHJpbmdgIHRvIHRoZWlyXG4gICAgICogY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vIG90aGVyIEhUTUwgZW50aXRpZXMgYXJlIHVuZXNjYXBlZC4gVG8gdW5lc2NhcGUgYWRkaXRpb25hbCBIVE1MXG4gICAgICogZW50aXRpZXMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHVuZXNjYXBlLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcycpO1xuICAgICAqIC8vID0+ICdmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmVzY2FwZShzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNFc2NhcGVkSHRtbC50ZXN0KHN0cmluZykpXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVFc2NhcGVkSHRtbCwgdW5lc2NhcGVIdG1sQ2hhcilcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3BsaXRzIGBzdHJpbmdgIGludG8gYW4gYXJyYXkgb2YgaXRzIHdvcmRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBbcGF0dGVybl0gVGhlIHBhdHRlcm4gdG8gbWF0Y2ggd29yZHMuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3b3JkcyBvZiBgc3RyaW5nYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy53b3JkcygnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiBbJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogXy53b3JkcygnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnLCAvW14sIF0rL2cpO1xuICAgICAqIC8vID0+IFsnZnJlZCcsICdiYXJuZXknLCAnJicsICdwZWJibGVzJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3b3JkcyhzdHJpbmcsIHBhdHRlcm4sIGd1YXJkKSB7XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBwYXR0ZXJuLCBndWFyZCkpIHtcbiAgICAgICAgcGF0dGVybiA9IG51bGw7XG4gICAgICB9XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiBzdHJpbmcubWF0Y2gocGF0dGVybiB8fCByZVdvcmRzKSB8fCBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBdHRlbXB0cyB0byBpbnZva2UgYGZ1bmNgLCByZXR1cm5pbmcgZWl0aGVyIHRoZSByZXN1bHQgb3IgdGhlIGNhdWdodCBlcnJvclxuICAgICAqIG9iamVjdC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCBpcyBpbnZva2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhdHRlbXB0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBgZnVuY2AgcmVzdWx0IG9yIGVycm9yIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gYXZvaWQgdGhyb3dpbmcgZXJyb3JzIGZvciBpbnZhbGlkIHNlbGVjdG9yc1xuICAgICAqIHZhciBlbGVtZW50cyA9IF8uYXR0ZW1wdChmdW5jdGlvbihzZWxlY3Rvcikge1xuICAgICAqICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgICAqIH0sICc+Xz4nKTtcbiAgICAgKlxuICAgICAqIGlmIChfLmlzRXJyb3IoZWxlbWVudHMpKSB7XG4gICAgICogICBlbGVtZW50cyA9IFtdO1xuICAgICAqIH1cbiAgICAgKi9cbiAgICB2YXIgYXR0ZW1wdCA9IHJlc3RQYXJhbShmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xuICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgIHJldHVybiBpc0Vycm9yKGUpID8gZSA6IG5ldyBFcnJvcihlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGB0aGlzQXJnYFxuICAgICAqIGFuZCBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24uIElmIGBmdW5jYCBpcyBhIHByb3BlcnR5IG5hbWUgdGhlXG4gICAgICogY3JlYXRlZCBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBmb3IgYSBnaXZlbiBlbGVtZW50LiBJZiBgZnVuY2BcbiAgICAgKiBpcyBhbiBvYmplY3QgdGhlIGNyZWF0ZWQgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgY29udGFpblxuICAgICAqIHRoZSBlcXVpdmFsZW50IG9iamVjdCBwcm9wZXJ0aWVzLCBvdGhlcndpc2UgaXQgcmV0dXJucyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGl0ZXJhdGVlXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0geyp9IFtmdW5jPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGEgY2FsbGJhY2suXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNhbGxiYWNrLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB3cmFwIHRvIGNyZWF0ZSBjdXN0b20gY2FsbGJhY2sgc2hvcnRoYW5kc1xuICAgICAqIF8uY2FsbGJhY2sgPSBfLndyYXAoXy5jYWxsYmFjaywgZnVuY3Rpb24oY2FsbGJhY2ssIGZ1bmMsIHRoaXNBcmcpIHtcbiAgICAgKiAgIHZhciBtYXRjaCA9IC9eKC4rPylfXyhbZ2xddCkoLispJC8uZXhlYyhmdW5jKTtcbiAgICAgKiAgIGlmICghbWF0Y2gpIHtcbiAgICAgKiAgICAgcmV0dXJuIGNhbGxiYWNrKGZ1bmMsIHRoaXNBcmcpO1xuICAgICAqICAgfVxuICAgICAqICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAqICAgICByZXR1cm4gbWF0Y2hbMl0gPT0gJ2d0J1xuICAgICAqICAgICAgID8gb2JqZWN0W21hdGNoWzFdXSA+IG1hdGNoWzNdXG4gICAgICogICAgICAgOiBvYmplY3RbbWF0Y2hbMV1dIDwgbWF0Y2hbM107XG4gICAgICogICB9O1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIodXNlcnMsICdhZ2VfX2d0MzYnKTtcbiAgICAgKiAvLyA9PiBbeyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FsbGJhY2soZnVuYywgdGhpc0FyZywgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChmdW5jLCB0aGlzQXJnLCBndWFyZCkpIHtcbiAgICAgICAgdGhpc0FyZyA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKGZ1bmMpXG4gICAgICAgID8gbWF0Y2hlcyhmdW5jKVxuICAgICAgICA6IGJhc2VDYWxsYmFjayhmdW5jLCB0aGlzQXJnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnIH07XG4gICAgICogdmFyIGdldHRlciA9IF8uY29uc3RhbnQob2JqZWN0KTtcbiAgICAgKlxuICAgICAqIGdldHRlcigpID09PSBvYmplY3Q7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgcHJvdmlkZWQgdG8gaXQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnIH07XG4gICAgICpcbiAgICAgKiBfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdDtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gd2hpY2ggcGVyZm9ybXMgYSBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiBhIGdpdmVuIG9iamVjdFxuICAgICAqIGFuZCBgc291cmNlYCwgcmV0dXJuaW5nIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGhhcyBlcXVpdmFsZW50IHByb3BlcnR5XG4gICAgICogdmFsdWVzLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2Qgc3VwcG9ydHMgY29tcGFyaW5nIGFycmF5cywgYm9vbGVhbnMsIGBEYXRlYCBvYmplY3RzLFxuICAgICAqIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsIGFuZCBzdHJpbmdzLiBPYmplY3RzIGFyZSBjb21wYXJlZCBieVxuICAgICAqIHRoZWlyIG93biwgbm90IGluaGVyaXRlZCwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLiBGb3IgY29tcGFyaW5nIGEgc2luZ2xlXG4gICAgICogb3duIG9yIGluaGVyaXRlZCBwcm9wZXJ0eSB2YWx1ZSBzZWUgYF8ubWF0Y2hlc1Byb3BlcnR5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8ubWF0Y2hlcyh7ICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH0pKTtcbiAgICAgKiAvLyA9PiBbeyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXRjaGVzKHNvdXJjZSkge1xuICAgICAgcmV0dXJuIGJhc2VNYXRjaGVzKGJhc2VDbG9uZShzb3VyY2UsIHRydWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gd2hpY2ggY29tcGFyZXMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIGBwYXRoYCBvbiBhIGdpdmVuXG4gICAgICogb2JqZWN0IHRvIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2Qgc3VwcG9ydHMgY29tcGFyaW5nIGFycmF5cywgYm9vbGVhbnMsIGBEYXRlYCBvYmplY3RzLFxuICAgICAqIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsIGFuZCBzdHJpbmdzLiBPYmplY3RzIGFyZSBjb21wYXJlZCBieVxuICAgICAqIHRoZWlyIG93biwgbm90IGluaGVyaXRlZCwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JyB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJyB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZCh1c2VycywgXy5tYXRjaGVzUHJvcGVydHkoJ3VzZXInLCAnZnJlZCcpKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXRjaGVzUHJvcGVydHkocGF0aCwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIGJhc2VDbG9uZSh2YWx1ZSwgdHJ1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCBpbnZva2VzIHRoZSBtZXRob2QgYXQgYHBhdGhgIG9uIGEgZ2l2ZW4gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogeyAnYic6IHsgJ2MnOiBfLmNvbnN0YW50KDIpIH0gfSB9LFxuICAgICAqICAgeyAnYSc6IHsgJ2InOiB7ICdjJzogXy5jb25zdGFudCgxKSB9IH0gfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLm1ldGhvZCgnYS5iLmMnKSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICpcbiAgICAgKiBfLmludm9rZShfLnNvcnRCeShvYmplY3RzLCBfLm1ldGhvZChbJ2EnLCAnYicsICdjJ10pKSwgJ2EuYi5jJyk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgdmFyIG1ldGhvZCA9IHJlc3RQYXJhbShmdW5jdGlvbihwYXRoLCBhcmdzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBpbnZva2VQYXRoKG9iamVjdCwgcGF0aCwgYXJncyk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLm1ldGhvZGA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCBpbnZva2VzXG4gICAgICogdGhlIG1ldGhvZCBhdCBhIGdpdmVuIHBhdGggb24gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gXy50aW1lcygzLCBfLmNvbnN0YW50KSxcbiAgICAgKiAgICAgb2JqZWN0ID0geyAnYSc6IGFycmF5LCAnYic6IGFycmF5LCAnYyc6IGFycmF5IH07XG4gICAgICpcbiAgICAgKiBfLm1hcChbJ2FbMl0nLCAnY1swXSddLCBfLm1ldGhvZE9mKG9iamVjdCkpO1xuICAgICAqIC8vID0+IFsyLCAwXVxuICAgICAqXG4gICAgICogXy5tYXAoW1snYScsICcyJ10sIFsnYycsICcwJ11dLCBfLm1ldGhvZE9mKG9iamVjdCkpO1xuICAgICAqIC8vID0+IFsyLCAwXVxuICAgICAqL1xuICAgIHZhciBtZXRob2RPZiA9IHJlc3RQYXJhbShmdW5jdGlvbihvYmplY3QsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIHJldHVybiBpbnZva2VQYXRoKG9iamVjdCwgcGF0aCwgYXJncyk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhbGwgb3duIGVudW1lcmFibGUgZnVuY3Rpb24gcHJvcGVydGllcyBvZiBhIHNvdXJjZSBvYmplY3QgdG8gdGhlXG4gICAgICogZGVzdGluYXRpb24gb2JqZWN0LiBJZiBgb2JqZWN0YCBpcyBhIGZ1bmN0aW9uIHRoZW4gbWV0aG9kcyBhcmUgYWRkZWQgdG9cbiAgICAgKiBpdHMgcHJvdG90eXBlIGFzIHdlbGwuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVXNlIGBfLnJ1bkluQ29udGV4dGAgdG8gY3JlYXRlIGEgcHJpc3RpbmUgYGxvZGFzaGAgZnVuY3Rpb24gdG9cbiAgICAgKiBhdm9pZCBjb25mbGljdHMgY2F1c2VkIGJ5IG1vZGlmeWluZyB0aGUgb3JpZ2luYWwuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fSBbb2JqZWN0PWxvZGFzaF0gVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgZnVuY3Rpb25zIHRvIGFkZC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmNoYWluPXRydWVdIFNwZWNpZnkgd2hldGhlciB0aGUgZnVuY3Rpb25zIGFkZGVkXG4gICAgICogIGFyZSBjaGFpbmFibGUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufE9iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gdm93ZWxzKHN0cmluZykge1xuICAgICAqICAgcmV0dXJuIF8uZmlsdGVyKHN0cmluZywgZnVuY3Rpb24odikge1xuICAgICAqICAgICByZXR1cm4gL1thZWlvdV0vaS50ZXN0KHYpO1xuICAgICAqICAgfSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gdXNlIGBfLnJ1bkluQ29udGV4dGAgdG8gYXZvaWQgY29uZmxpY3RzIChlc3AuIGluIE5vZGUuanMpXG4gICAgICogdmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gnKS5ydW5JbkNvbnRleHQoKTtcbiAgICAgKlxuICAgICAqIF8ubWl4aW4oeyAndm93ZWxzJzogdm93ZWxzIH0pO1xuICAgICAqIF8udm93ZWxzKCdmcmVkJyk7XG4gICAgICogLy8gPT4gWydlJ11cbiAgICAgKlxuICAgICAqIF8oJ2ZyZWQnKS52b3dlbHMoKS52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsnZSddXG4gICAgICpcbiAgICAgKiBfLm1peGluKHsgJ3Zvd2Vscyc6IHZvd2VscyB9LCB7ICdjaGFpbic6IGZhbHNlIH0pO1xuICAgICAqIF8oJ2ZyZWQnKS52b3dlbHMoKTtcbiAgICAgKiAvLyA9PiBbJ2UnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1peGluKG9iamVjdCwgc291cmNlLCBvcHRpb25zKSB7XG4gICAgICBpZiAob3B0aW9ucyA9PSBudWxsKSB7XG4gICAgICAgIHZhciBpc09iaiA9IGlzT2JqZWN0KHNvdXJjZSksXG4gICAgICAgICAgICBwcm9wcyA9IGlzT2JqICYmIGtleXMoc291cmNlKSxcbiAgICAgICAgICAgIG1ldGhvZE5hbWVzID0gcHJvcHMgJiYgcHJvcHMubGVuZ3RoICYmIGJhc2VGdW5jdGlvbnMoc291cmNlLCBwcm9wcyk7XG5cbiAgICAgICAgaWYgKCEobWV0aG9kTmFtZXMgPyBtZXRob2ROYW1lcy5sZW5ndGggOiBpc09iaikpIHtcbiAgICAgICAgICBtZXRob2ROYW1lcyA9IGZhbHNlO1xuICAgICAgICAgIG9wdGlvbnMgPSBzb3VyY2U7XG4gICAgICAgICAgc291cmNlID0gb2JqZWN0O1xuICAgICAgICAgIG9iamVjdCA9IHRoaXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghbWV0aG9kTmFtZXMpIHtcbiAgICAgICAgbWV0aG9kTmFtZXMgPSBiYXNlRnVuY3Rpb25zKHNvdXJjZSwga2V5cyhzb3VyY2UpKTtcbiAgICAgIH1cbiAgICAgIHZhciBjaGFpbiA9IHRydWUsXG4gICAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgICBpc0Z1bmMgPSBpc0Z1bmN0aW9uKG9iamVjdCksXG4gICAgICAgICAgbGVuZ3RoID0gbWV0aG9kTmFtZXMubGVuZ3RoO1xuXG4gICAgICBpZiAob3B0aW9ucyA9PT0gZmFsc2UpIHtcbiAgICAgICAgY2hhaW4gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3Qob3B0aW9ucykgJiYgJ2NoYWluJyBpbiBvcHRpb25zKSB7XG4gICAgICAgIGNoYWluID0gb3B0aW9ucy5jaGFpbjtcbiAgICAgIH1cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBtZXRob2ROYW1lID0gbWV0aG9kTmFtZXNbaW5kZXhdLFxuICAgICAgICAgICAgZnVuYyA9IHNvdXJjZVttZXRob2ROYW1lXTtcblxuICAgICAgICBvYmplY3RbbWV0aG9kTmFtZV0gPSBmdW5jO1xuICAgICAgICBpZiAoaXNGdW5jKSB7XG4gICAgICAgICAgb2JqZWN0LnByb3RvdHlwZVttZXRob2ROYW1lXSA9IChmdW5jdGlvbihmdW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgIHZhciBjaGFpbkFsbCA9IHRoaXMuX19jaGFpbl9fO1xuICAgICAgICAgICAgICBpZiAoY2hhaW4gfHwgY2hhaW5BbGwpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gb2JqZWN0KHRoaXMuX193cmFwcGVkX18pLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25zID0gcmVzdWx0Ll9fYWN0aW9uc19fID0gYXJyYXlDb3B5KHRoaXMuX19hY3Rpb25zX18pO1xuXG4gICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsgJ2Z1bmMnOiBmdW5jLCAnYXJncyc6IGFyZ3VtZW50cywgJ3RoaXNBcmcnOiBvYmplY3QgfSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0Ll9fY2hhaW5fXyA9IGNoYWluQWxsO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbdGhpcy52YWx1ZSgpXTtcbiAgICAgICAgICAgICAgcHVzaC5hcHBseShhcmdzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShvYmplY3QsIGFyZ3MpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KGZ1bmMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnRzIHRoZSBgX2AgdmFyaWFibGUgdG8gaXRzIHByZXZpb3VzIHZhbHVlIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlIHRvXG4gICAgICogdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgbG9kYXNoID0gXy5ub0NvbmZsaWN0KCk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9Db25mbGljdCgpIHtcbiAgICAgIGNvbnRleHQuXyA9IG9sZERhc2g7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIG5vLW9wZXJhdGlvbiBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGB1bmRlZmluZWRgIHJlZ2FyZGxlc3Mgb2YgdGhlXG4gICAgICogYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKlxuICAgICAqIF8ubm9vcChvYmplY3QpID09PSB1bmRlZmluZWQ7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5vb3AoKSB7XG4gICAgICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBhdCBgcGF0aGAgb24gYVxuICAgICAqIGdpdmVuIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogeyAnYic6IHsgJ2MnOiAyIH0gfSB9LFxuICAgICAqICAgeyAnYSc6IHsgJ2InOiB7ICdjJzogMSB9IH0gfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLnByb3BlcnR5KCdhLmIuYycpKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKlxuICAgICAqIF8ucGx1Y2soXy5zb3J0Qnkob2JqZWN0cywgXy5wcm9wZXJ0eShbJ2EnLCAnYicsICdjJ10pKSwgJ2EuYi5jJyk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJvcGVydHkocGF0aCkge1xuICAgICAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHBhdGgpIDogYmFzZVByb3BlcnR5RGVlcChwYXRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ucHJvcGVydHlgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJuc1xuICAgICAqIHRoZSBwcm9wZXJ0eSB2YWx1ZSBhdCBhIGdpdmVuIHBhdGggb24gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzAsIDEsIDJdLFxuICAgICAqICAgICBvYmplY3QgPSB7ICdhJzogYXJyYXksICdiJzogYXJyYXksICdjJzogYXJyYXkgfTtcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnYVsyXScsICdjWzBdJ10sIF8ucHJvcGVydHlPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKlxuICAgICAqIF8ubWFwKFtbJ2EnLCAnMiddLCBbJ2MnLCAnMCddXSwgXy5wcm9wZXJ0eU9mKG9iamVjdCkpO1xuICAgICAqIC8vID0+IFsyLCAwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICByZXR1cm4gYmFzZUdldChvYmplY3QsIHRvUGF0aChwYXRoKSwgcGF0aCArICcnKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBudW1iZXJzIChwb3NpdGl2ZSBhbmQvb3IgbmVnYXRpdmUpIHByb2dyZXNzaW5nIGZyb21cbiAgICAgKiBgc3RhcnRgIHVwIHRvLCBidXQgbm90IGluY2x1ZGluZywgYGVuZGAuIElmIGBlbmRgIGlzIG5vdCBzcGVjaWZpZWQgaXQgaXNcbiAgICAgKiBzZXQgdG8gYHN0YXJ0YCB3aXRoIGBzdGFydGAgdGhlbiBzZXQgdG8gYDBgLiBJZiBgZW5kYCBpcyBsZXNzIHRoYW4gYHN0YXJ0YFxuICAgICAqIGEgemVyby1sZW5ndGggcmFuZ2UgaXMgY3JlYXRlZCB1bmxlc3MgYSBuZWdhdGl2ZSBgc3RlcGAgaXMgc3BlY2lmaWVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV0gVGhlIHZhbHVlIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgYnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgbnVtYmVycy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yYW5nZSg0KTtcbiAgICAgKiAvLyA9PiBbMCwgMSwgMiwgM11cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMSwgNSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIDRdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDAsIDIwLCA1KTtcbiAgICAgKiAvLyA9PiBbMCwgNSwgMTAsIDE1XVxuICAgICAqXG4gICAgICogXy5yYW5nZSgwLCAtNCwgLTEpO1xuICAgICAqIC8vID0+IFswLCAtMSwgLTIsIC0zXVxuICAgICAqXG4gICAgICogXy5yYW5nZSgxLCA0LCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMSwgMV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByYW5nZShzdGFydCwgZW5kLCBzdGVwKSB7XG4gICAgICBpZiAoc3RlcCAmJiBpc0l0ZXJhdGVlQ2FsbChzdGFydCwgZW5kLCBzdGVwKSkge1xuICAgICAgICBlbmQgPSBzdGVwID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gK3N0YXJ0IHx8IDA7XG4gICAgICBzdGVwID0gc3RlcCA9PSBudWxsID8gMSA6ICgrc3RlcCB8fCAwKTtcblxuICAgICAgaWYgKGVuZCA9PSBudWxsKSB7XG4gICAgICAgIGVuZCA9IHN0YXJ0O1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmQgPSArZW5kIHx8IDA7XG4gICAgICB9XG4gICAgICAvLyBVc2UgYEFycmF5KGxlbmd0aClgIHNvIGVuZ2luZXMgbGlrZSBDaGFrcmEgYW5kIFY4IGF2b2lkIHNsb3dlciBtb2Rlcy5cbiAgICAgIC8vIFNlZSBodHRwczovL3lvdXR1LmJlL1hBcUlwR1U4WlprI3Q9MTdtMjVzIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgoY2VpbCgoZW5kIC0gc3RhcnQpIC8gKHN0ZXAgfHwgMSkpLCAwKSxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gc3RhcnQ7XG4gICAgICAgIHN0YXJ0ICs9IHN0ZXA7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIGl0ZXJhdGVlIGZ1bmN0aW9uIGBuYCB0aW1lcywgcmV0dXJuaW5nIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzXG4gICAgICogb2YgZWFjaCBpbnZvY2F0aW9uLiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aFxuICAgICAqIG9uZSBhcmd1bWVudDsgKGluZGV4KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBkaWNlUm9sbHMgPSBfLnRpbWVzKDMsIF8ucGFydGlhbChfLnJhbmRvbSwgMSwgNiwgZmFsc2UpKTtcbiAgICAgKiAvLyA9PiBbMywgNiwgNF1cbiAgICAgKlxuICAgICAqIF8udGltZXMoMywgZnVuY3Rpb24obikge1xuICAgICAqICAgbWFnZS5jYXN0U3BlbGwobik7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gaW52b2tlcyBgbWFnZS5jYXN0U3BlbGwobilgIHRocmVlIHRpbWVzIHdpdGggYG5gIG9mIGAwYCwgYDFgLCBhbmQgYDJgXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDMsIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHRoaXMuY2FzdChuKTtcbiAgICAgKiB9LCBtYWdlKTtcbiAgICAgKiAvLyA9PiBhbHNvIGludm9rZXMgYG1hZ2UuY2FzdFNwZWxsKG4pYCB0aHJlZSB0aW1lc1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRpbWVzKG4sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICBuID0gZmxvb3Iobik7XG5cbiAgICAgIC8vIEV4aXQgZWFybHkgdG8gYXZvaWQgYSBKU0MgSklUIGJ1ZyBpbiBTYWZhcmkgOFxuICAgICAgLy8gd2hlcmUgYEFycmF5KDApYCBpcyB0cmVhdGVkIGFzIGBBcnJheSgxKWAuXG4gICAgICBpZiAobiA8IDEgfHwgIW5hdGl2ZUlzRmluaXRlKG4pKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KG5hdGl2ZU1pbihuLCBNQVhfQVJSQVlfTEVOR1RIKSk7XG5cbiAgICAgIGl0ZXJhdGVlID0gYmluZENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAxKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgICBpZiAoaW5kZXggPCBNQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVyYXRlZShpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgdW5pcXVlIElELiBJZiBgcHJlZml4YCBpcyBwcm92aWRlZCB0aGUgSUQgaXMgYXBwZW5kZWQgdG8gaXQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcHJlZml4XSBUaGUgdmFsdWUgdG8gcHJlZml4IHRoZSBJRCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuaXF1ZSBJRC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51bmlxdWVJZCgnY29udGFjdF8nKTtcbiAgICAgKiAvLyA9PiAnY29udGFjdF8xMDQnXG4gICAgICpcbiAgICAgKiBfLnVuaXF1ZUlkKCk7XG4gICAgICogLy8gPT4gJzEwNSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxdWVJZChwcmVmaXgpIHtcbiAgICAgIHZhciBpZCA9ICsraWRDb3VudGVyO1xuICAgICAgcmV0dXJuIGJhc2VUb1N0cmluZyhwcmVmaXgpICsgaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyB0d28gbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGF1Z2VuZCBUaGUgZmlyc3QgbnVtYmVyIHRvIGFkZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYWRkZW5kIFRoZSBzZWNvbmQgbnVtYmVyIHRvIGFkZC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uYWRkKDYsIDQpO1xuICAgICAqIC8vID0+IDEwXG4gICAgICovXG4gICAgZnVuY3Rpb24gYWRkKGF1Z2VuZCwgYWRkZW5kKSB7XG4gICAgICByZXR1cm4gKCthdWdlbmQgfHwgMCkgKyAoK2FkZGVuZCB8fCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGBjb2xsZWN0aW9uYC4gSWYgYGNvbGxlY3Rpb25gIGlzIGVtcHR5IG9yIGZhbHNleVxuICAgICAqIGAtSW5maW5pdHlgIGlzIHJldHVybmVkLiBJZiBhbiBpdGVyYXRlZSBmdW5jdGlvbiBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkXG4gICAgICogZm9yIGVhY2ggdmFsdWUgaW4gYGNvbGxlY3Rpb25gIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2ggdGhlIHZhbHVlXG4gICAgICogaXMgcmFua2VkLiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZVxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubWF4KFs0LCAyLCA4LCA2XSk7XG4gICAgICogLy8gPT4gOFxuICAgICAqXG4gICAgICogXy5tYXgoW10pO1xuICAgICAqIC8vID0+IC1JbmZpbml0eVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5tYXgodXNlcnMsIGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgcmV0dXJuIGNoci5hZ2U7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5tYXgodXNlcnMsICdhZ2UnKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfVxuICAgICAqL1xuICAgIHZhciBtYXggPSBjcmVhdGVFeHRyZW11bShhcnJheU1heCk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtaW5pbXVtIHZhbHVlIG9mIGBjb2xsZWN0aW9uYC4gSWYgYGNvbGxlY3Rpb25gIGlzIGVtcHR5IG9yIGZhbHNleVxuICAgICAqIGBJbmZpbml0eWAgaXMgcmV0dXJuZWQuIElmIGFuIGl0ZXJhdGVlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGl0IGlzIGludm9rZWRcbiAgICAgKiBmb3IgZWFjaCB2YWx1ZSBpbiBgY29sbGVjdGlvbmAgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieSB3aGljaCB0aGUgdmFsdWVcbiAgICAgKiBpcyByYW5rZWQuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5taW4oWzQsIDIsIDgsIDZdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiBfLm1pbihbXSk7XG4gICAgICogLy8gPT4gSW5maW5pdHlcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWluKHVzZXJzLCBmdW5jdGlvbihjaHIpIHtcbiAgICAgKiAgIHJldHVybiBjaHIuYWdlO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5taW4odXNlcnMsICdhZ2UnKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9XG4gICAgICovXG4gICAgdmFyIG1pbiA9IGNyZWF0ZUV4dHJlbXVtKGFycmF5TWluLCB0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHN1bSBvZiB0aGUgdmFsdWVzIGluIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3VtKFs0LCA2XSk7XG4gICAgICogLy8gPT4gMTBcbiAgICAgKlxuICAgICAqIF8uc3VtKHsgJ2EnOiA0LCAnYic6IDYgfSk7XG4gICAgICogLy8gPT4gMTBcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW1xuICAgICAqICAgeyAnbic6IDQgfSxcbiAgICAgKiAgIHsgJ24nOiA2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5zdW0ob2JqZWN0cywgZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICogICByZXR1cm4gb2JqZWN0Lm47XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gMTBcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5zdW0ob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN1bShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgaWYgKHRoaXNBcmcgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBmdW5jID0gZ2V0Q2FsbGJhY2soKSxcbiAgICAgICAgICBub0l0ZXJhdGVlID0gaXRlcmF0ZWUgPT0gbnVsbDtcblxuICAgICAgaWYgKCEoZnVuYyA9PT0gYmFzZUNhbGxiYWNrICYmIG5vSXRlcmF0ZWUpKSB7XG4gICAgICAgIG5vSXRlcmF0ZWUgPSBmYWxzZTtcbiAgICAgICAgaXRlcmF0ZWUgPSBmdW5jKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub0l0ZXJhdGVlXG4gICAgICAgID8gYXJyYXlTdW0oaXNBcnJheShjb2xsZWN0aW9uKSA/IGNvbGxlY3Rpb24gOiB0b0l0ZXJhYmxlKGNvbGxlY3Rpb24pKVxuICAgICAgICA6IGJhc2VTdW0oY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSB3cmFwcGVycyBhcmUgaW5zdGFuY2VzIG9mIGBiYXNlTG9kYXNoYC5cbiAgICBsb2Rhc2gucHJvdG90eXBlID0gYmFzZUxvZGFzaC5wcm90b3R5cGU7XG5cbiAgICBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuICAgIExvZGFzaFdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTG9kYXNoV3JhcHBlcjtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IExhenlXcmFwcGVyO1xuXG4gICAgLy8gQWRkIGZ1bmN0aW9ucyB0byB0aGUgYE1hcGAgY2FjaGUuXG4gICAgTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcERlbGV0ZTtcbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbWFwR2V0O1xuICAgIE1hcENhY2hlLnByb3RvdHlwZS5oYXMgPSBtYXBIYXM7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcFNldDtcblxuICAgIC8vIEFkZCBmdW5jdGlvbnMgdG8gdGhlIGBTZXRgIGNhY2hlLlxuICAgIFNldENhY2hlLnByb3RvdHlwZS5wdXNoID0gY2FjaGVQdXNoO1xuXG4gICAgLy8gQXNzaWduIGNhY2hlIHRvIGBfLm1lbW9pemVgLlxuICAgIG1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcblxuICAgIC8vIEFkZCBmdW5jdGlvbnMgdGhhdCByZXR1cm4gd3JhcHBlZCB2YWx1ZXMgd2hlbiBjaGFpbmluZy5cbiAgICBsb2Rhc2guYWZ0ZXIgPSBhZnRlcjtcbiAgICBsb2Rhc2guYXJ5ID0gYXJ5O1xuICAgIGxvZGFzaC5hc3NpZ24gPSBhc3NpZ247XG4gICAgbG9kYXNoLmF0ID0gYXQ7XG4gICAgbG9kYXNoLmJlZm9yZSA9IGJlZm9yZTtcbiAgICBsb2Rhc2guYmluZCA9IGJpbmQ7XG4gICAgbG9kYXNoLmJpbmRBbGwgPSBiaW5kQWxsO1xuICAgIGxvZGFzaC5iaW5kS2V5ID0gYmluZEtleTtcbiAgICBsb2Rhc2guY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICBsb2Rhc2guY2hhaW4gPSBjaGFpbjtcbiAgICBsb2Rhc2guY2h1bmsgPSBjaHVuaztcbiAgICBsb2Rhc2guY29tcGFjdCA9IGNvbXBhY3Q7XG4gICAgbG9kYXNoLmNvbnN0YW50ID0gY29uc3RhbnQ7XG4gICAgbG9kYXNoLmNvdW50QnkgPSBjb3VudEJ5O1xuICAgIGxvZGFzaC5jcmVhdGUgPSBjcmVhdGU7XG4gICAgbG9kYXNoLmN1cnJ5ID0gY3Vycnk7XG4gICAgbG9kYXNoLmN1cnJ5UmlnaHQgPSBjdXJyeVJpZ2h0O1xuICAgIGxvZGFzaC5kZWJvdW5jZSA9IGRlYm91bmNlO1xuICAgIGxvZGFzaC5kZWZhdWx0cyA9IGRlZmF1bHRzO1xuICAgIGxvZGFzaC5kZWZlciA9IGRlZmVyO1xuICAgIGxvZGFzaC5kZWxheSA9IGRlbGF5O1xuICAgIGxvZGFzaC5kaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcbiAgICBsb2Rhc2guZHJvcCA9IGRyb3A7XG4gICAgbG9kYXNoLmRyb3BSaWdodCA9IGRyb3BSaWdodDtcbiAgICBsb2Rhc2guZHJvcFJpZ2h0V2hpbGUgPSBkcm9wUmlnaHRXaGlsZTtcbiAgICBsb2Rhc2guZHJvcFdoaWxlID0gZHJvcFdoaWxlO1xuICAgIGxvZGFzaC5maWxsID0gZmlsbDtcbiAgICBsb2Rhc2guZmlsdGVyID0gZmlsdGVyO1xuICAgIGxvZGFzaC5mbGF0dGVuID0gZmxhdHRlbjtcbiAgICBsb2Rhc2guZmxhdHRlbkRlZXAgPSBmbGF0dGVuRGVlcDtcbiAgICBsb2Rhc2guZmxvdyA9IGZsb3c7XG4gICAgbG9kYXNoLmZsb3dSaWdodCA9IGZsb3dSaWdodDtcbiAgICBsb2Rhc2guZm9yRWFjaCA9IGZvckVhY2g7XG4gICAgbG9kYXNoLmZvckVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcbiAgICBsb2Rhc2guZm9ySW4gPSBmb3JJbjtcbiAgICBsb2Rhc2guZm9ySW5SaWdodCA9IGZvckluUmlnaHQ7XG4gICAgbG9kYXNoLmZvck93biA9IGZvck93bjtcbiAgICBsb2Rhc2guZm9yT3duUmlnaHQgPSBmb3JPd25SaWdodDtcbiAgICBsb2Rhc2guZnVuY3Rpb25zID0gZnVuY3Rpb25zO1xuICAgIGxvZGFzaC5ncm91cEJ5ID0gZ3JvdXBCeTtcbiAgICBsb2Rhc2guaW5kZXhCeSA9IGluZGV4Qnk7XG4gICAgbG9kYXNoLmluaXRpYWwgPSBpbml0aWFsO1xuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb24gPSBpbnRlcnNlY3Rpb247XG4gICAgbG9kYXNoLmludmVydCA9IGludmVydDtcbiAgICBsb2Rhc2guaW52b2tlID0gaW52b2tlO1xuICAgIGxvZGFzaC5rZXlzID0ga2V5cztcbiAgICBsb2Rhc2gua2V5c0luID0ga2V5c0luO1xuICAgIGxvZGFzaC5tYXAgPSBtYXA7XG4gICAgbG9kYXNoLm1hcEtleXMgPSBtYXBLZXlzO1xuICAgIGxvZGFzaC5tYXBWYWx1ZXMgPSBtYXBWYWx1ZXM7XG4gICAgbG9kYXNoLm1hdGNoZXMgPSBtYXRjaGVzO1xuICAgIGxvZGFzaC5tYXRjaGVzUHJvcGVydHkgPSBtYXRjaGVzUHJvcGVydHk7XG4gICAgbG9kYXNoLm1lbW9pemUgPSBtZW1vaXplO1xuICAgIGxvZGFzaC5tZXJnZSA9IG1lcmdlO1xuICAgIGxvZGFzaC5tZXRob2QgPSBtZXRob2Q7XG4gICAgbG9kYXNoLm1ldGhvZE9mID0gbWV0aG9kT2Y7XG4gICAgbG9kYXNoLm1peGluID0gbWl4aW47XG4gICAgbG9kYXNoLm5lZ2F0ZSA9IG5lZ2F0ZTtcbiAgICBsb2Rhc2gub21pdCA9IG9taXQ7XG4gICAgbG9kYXNoLm9uY2UgPSBvbmNlO1xuICAgIGxvZGFzaC5wYWlycyA9IHBhaXJzO1xuICAgIGxvZGFzaC5wYXJ0aWFsID0gcGFydGlhbDtcbiAgICBsb2Rhc2gucGFydGlhbFJpZ2h0ID0gcGFydGlhbFJpZ2h0O1xuICAgIGxvZGFzaC5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG4gICAgbG9kYXNoLnBpY2sgPSBwaWNrO1xuICAgIGxvZGFzaC5wbHVjayA9IHBsdWNrO1xuICAgIGxvZGFzaC5wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgIGxvZGFzaC5wcm9wZXJ0eU9mID0gcHJvcGVydHlPZjtcbiAgICBsb2Rhc2gucHVsbCA9IHB1bGw7XG4gICAgbG9kYXNoLnB1bGxBdCA9IHB1bGxBdDtcbiAgICBsb2Rhc2gucmFuZ2UgPSByYW5nZTtcbiAgICBsb2Rhc2gucmVhcmcgPSByZWFyZztcbiAgICBsb2Rhc2gucmVqZWN0ID0gcmVqZWN0O1xuICAgIGxvZGFzaC5yZW1vdmUgPSByZW1vdmU7XG4gICAgbG9kYXNoLnJlc3QgPSByZXN0O1xuICAgIGxvZGFzaC5yZXN0UGFyYW0gPSByZXN0UGFyYW07XG4gICAgbG9kYXNoLnNldCA9IHNldDtcbiAgICBsb2Rhc2guc2h1ZmZsZSA9IHNodWZmbGU7XG4gICAgbG9kYXNoLnNsaWNlID0gc2xpY2U7XG4gICAgbG9kYXNoLnNvcnRCeSA9IHNvcnRCeTtcbiAgICBsb2Rhc2guc29ydEJ5QWxsID0gc29ydEJ5QWxsO1xuICAgIGxvZGFzaC5zb3J0QnlPcmRlciA9IHNvcnRCeU9yZGVyO1xuICAgIGxvZGFzaC5zcHJlYWQgPSBzcHJlYWQ7XG4gICAgbG9kYXNoLnRha2UgPSB0YWtlO1xuICAgIGxvZGFzaC50YWtlUmlnaHQgPSB0YWtlUmlnaHQ7XG4gICAgbG9kYXNoLnRha2VSaWdodFdoaWxlID0gdGFrZVJpZ2h0V2hpbGU7XG4gICAgbG9kYXNoLnRha2VXaGlsZSA9IHRha2VXaGlsZTtcbiAgICBsb2Rhc2gudGFwID0gdGFwO1xuICAgIGxvZGFzaC50aHJvdHRsZSA9IHRocm90dGxlO1xuICAgIGxvZGFzaC50aHJ1ID0gdGhydTtcbiAgICBsb2Rhc2gudGltZXMgPSB0aW1lcztcbiAgICBsb2Rhc2gudG9BcnJheSA9IHRvQXJyYXk7XG4gICAgbG9kYXNoLnRvUGxhaW5PYmplY3QgPSB0b1BsYWluT2JqZWN0O1xuICAgIGxvZGFzaC50cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgbG9kYXNoLnVuaW9uID0gdW5pb247XG4gICAgbG9kYXNoLnVuaXEgPSB1bmlxO1xuICAgIGxvZGFzaC51bnppcCA9IHVuemlwO1xuICAgIGxvZGFzaC51bnppcFdpdGggPSB1bnppcFdpdGg7XG4gICAgbG9kYXNoLnZhbHVlcyA9IHZhbHVlcztcbiAgICBsb2Rhc2gudmFsdWVzSW4gPSB2YWx1ZXNJbjtcbiAgICBsb2Rhc2gud2hlcmUgPSB3aGVyZTtcbiAgICBsb2Rhc2gud2l0aG91dCA9IHdpdGhvdXQ7XG4gICAgbG9kYXNoLndyYXAgPSB3cmFwO1xuICAgIGxvZGFzaC54b3IgPSB4b3I7XG4gICAgbG9kYXNoLnppcCA9IHppcDtcbiAgICBsb2Rhc2guemlwT2JqZWN0ID0gemlwT2JqZWN0O1xuICAgIGxvZGFzaC56aXBXaXRoID0gemlwV2l0aDtcblxuICAgIC8vIEFkZCBhbGlhc2VzLlxuICAgIGxvZGFzaC5iYWNrZmxvdyA9IGZsb3dSaWdodDtcbiAgICBsb2Rhc2guY29sbGVjdCA9IG1hcDtcbiAgICBsb2Rhc2guY29tcG9zZSA9IGZsb3dSaWdodDtcbiAgICBsb2Rhc2guZWFjaCA9IGZvckVhY2g7XG4gICAgbG9kYXNoLmVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcbiAgICBsb2Rhc2guZXh0ZW5kID0gYXNzaWduO1xuICAgIGxvZGFzaC5pdGVyYXRlZSA9IGNhbGxiYWNrO1xuICAgIGxvZGFzaC5tZXRob2RzID0gZnVuY3Rpb25zO1xuICAgIGxvZGFzaC5vYmplY3QgPSB6aXBPYmplY3Q7XG4gICAgbG9kYXNoLnNlbGVjdCA9IGZpbHRlcjtcbiAgICBsb2Rhc2gudGFpbCA9IHJlc3Q7XG4gICAgbG9kYXNoLnVuaXF1ZSA9IHVuaXE7XG5cbiAgICAvLyBBZGQgZnVuY3Rpb25zIHRvIGBsb2Rhc2gucHJvdG90eXBlYC5cbiAgICBtaXhpbihsb2Rhc2gsIGxvZGFzaCk7XG5cbiAgICAvLyBBZGQgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIHVud3JhcHBlZCB2YWx1ZXMgd2hlbiBjaGFpbmluZy5cbiAgICBsb2Rhc2guYWRkID0gYWRkO1xuICAgIGxvZGFzaC5hdHRlbXB0ID0gYXR0ZW1wdDtcbiAgICBsb2Rhc2guY2FtZWxDYXNlID0gY2FtZWxDYXNlO1xuICAgIGxvZGFzaC5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTtcbiAgICBsb2Rhc2guY2xvbmUgPSBjbG9uZTtcbiAgICBsb2Rhc2guY2xvbmVEZWVwID0gY2xvbmVEZWVwO1xuICAgIGxvZGFzaC5kZWJ1cnIgPSBkZWJ1cnI7XG4gICAgbG9kYXNoLmVuZHNXaXRoID0gZW5kc1dpdGg7XG4gICAgbG9kYXNoLmVzY2FwZSA9IGVzY2FwZTtcbiAgICBsb2Rhc2guZXNjYXBlUmVnRXhwID0gZXNjYXBlUmVnRXhwO1xuICAgIGxvZGFzaC5ldmVyeSA9IGV2ZXJ5O1xuICAgIGxvZGFzaC5maW5kID0gZmluZDtcbiAgICBsb2Rhc2guZmluZEluZGV4ID0gZmluZEluZGV4O1xuICAgIGxvZGFzaC5maW5kS2V5ID0gZmluZEtleTtcbiAgICBsb2Rhc2guZmluZExhc3QgPSBmaW5kTGFzdDtcbiAgICBsb2Rhc2guZmluZExhc3RJbmRleCA9IGZpbmRMYXN0SW5kZXg7XG4gICAgbG9kYXNoLmZpbmRMYXN0S2V5ID0gZmluZExhc3RLZXk7XG4gICAgbG9kYXNoLmZpbmRXaGVyZSA9IGZpbmRXaGVyZTtcbiAgICBsb2Rhc2guZmlyc3QgPSBmaXJzdDtcbiAgICBsb2Rhc2guZ2V0ID0gZ2V0O1xuICAgIGxvZGFzaC5oYXMgPSBoYXM7XG4gICAgbG9kYXNoLmlkZW50aXR5ID0gaWRlbnRpdHk7XG4gICAgbG9kYXNoLmluY2x1ZGVzID0gaW5jbHVkZXM7XG4gICAgbG9kYXNoLmluZGV4T2YgPSBpbmRleE9mO1xuICAgIGxvZGFzaC5pblJhbmdlID0gaW5SYW5nZTtcbiAgICBsb2Rhc2guaXNBcmd1bWVudHMgPSBpc0FyZ3VtZW50cztcbiAgICBsb2Rhc2guaXNBcnJheSA9IGlzQXJyYXk7XG4gICAgbG9kYXNoLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjtcbiAgICBsb2Rhc2guaXNEYXRlID0gaXNEYXRlO1xuICAgIGxvZGFzaC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG4gICAgbG9kYXNoLmlzRW1wdHkgPSBpc0VtcHR5O1xuICAgIGxvZGFzaC5pc0VxdWFsID0gaXNFcXVhbDtcbiAgICBsb2Rhc2guaXNFcnJvciA9IGlzRXJyb3I7XG4gICAgbG9kYXNoLmlzRmluaXRlID0gaXNGaW5pdGU7XG4gICAgbG9kYXNoLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuICAgIGxvZGFzaC5pc01hdGNoID0gaXNNYXRjaDtcbiAgICBsb2Rhc2guaXNOYU4gPSBpc05hTjtcbiAgICBsb2Rhc2guaXNOYXRpdmUgPSBpc05hdGl2ZTtcbiAgICBsb2Rhc2guaXNOdWxsID0gaXNOdWxsO1xuICAgIGxvZGFzaC5pc051bWJlciA9IGlzTnVtYmVyO1xuICAgIGxvZGFzaC5pc09iamVjdCA9IGlzT2JqZWN0O1xuICAgIGxvZGFzaC5pc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdDtcbiAgICBsb2Rhc2guaXNSZWdFeHAgPSBpc1JlZ0V4cDtcbiAgICBsb2Rhc2guaXNTdHJpbmcgPSBpc1N0cmluZztcbiAgICBsb2Rhc2guaXNUeXBlZEFycmF5ID0gaXNUeXBlZEFycmF5O1xuICAgIGxvZGFzaC5pc1VuZGVmaW5lZCA9IGlzVW5kZWZpbmVkO1xuICAgIGxvZGFzaC5rZWJhYkNhc2UgPSBrZWJhYkNhc2U7XG4gICAgbG9kYXNoLmxhc3QgPSBsYXN0O1xuICAgIGxvZGFzaC5sYXN0SW5kZXhPZiA9IGxhc3RJbmRleE9mO1xuICAgIGxvZGFzaC5tYXggPSBtYXg7XG4gICAgbG9kYXNoLm1pbiA9IG1pbjtcbiAgICBsb2Rhc2gubm9Db25mbGljdCA9IG5vQ29uZmxpY3Q7XG4gICAgbG9kYXNoLm5vb3AgPSBub29wO1xuICAgIGxvZGFzaC5ub3cgPSBub3c7XG4gICAgbG9kYXNoLnBhZCA9IHBhZDtcbiAgICBsb2Rhc2gucGFkTGVmdCA9IHBhZExlZnQ7XG4gICAgbG9kYXNoLnBhZFJpZ2h0ID0gcGFkUmlnaHQ7XG4gICAgbG9kYXNoLnBhcnNlSW50ID0gcGFyc2VJbnQ7XG4gICAgbG9kYXNoLnJhbmRvbSA9IHJhbmRvbTtcbiAgICBsb2Rhc2gucmVkdWNlID0gcmVkdWNlO1xuICAgIGxvZGFzaC5yZWR1Y2VSaWdodCA9IHJlZHVjZVJpZ2h0O1xuICAgIGxvZGFzaC5yZXBlYXQgPSByZXBlYXQ7XG4gICAgbG9kYXNoLnJlc3VsdCA9IHJlc3VsdDtcbiAgICBsb2Rhc2gucnVuSW5Db250ZXh0ID0gcnVuSW5Db250ZXh0O1xuICAgIGxvZGFzaC5zaXplID0gc2l6ZTtcbiAgICBsb2Rhc2guc25ha2VDYXNlID0gc25ha2VDYXNlO1xuICAgIGxvZGFzaC5zb21lID0gc29tZTtcbiAgICBsb2Rhc2guc29ydGVkSW5kZXggPSBzb3J0ZWRJbmRleDtcbiAgICBsb2Rhc2guc29ydGVkTGFzdEluZGV4ID0gc29ydGVkTGFzdEluZGV4O1xuICAgIGxvZGFzaC5zdGFydENhc2UgPSBzdGFydENhc2U7XG4gICAgbG9kYXNoLnN0YXJ0c1dpdGggPSBzdGFydHNXaXRoO1xuICAgIGxvZGFzaC5zdW0gPSBzdW07XG4gICAgbG9kYXNoLnRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgbG9kYXNoLnRyaW0gPSB0cmltO1xuICAgIGxvZGFzaC50cmltTGVmdCA9IHRyaW1MZWZ0O1xuICAgIGxvZGFzaC50cmltUmlnaHQgPSB0cmltUmlnaHQ7XG4gICAgbG9kYXNoLnRydW5jID0gdHJ1bmM7XG4gICAgbG9kYXNoLnVuZXNjYXBlID0gdW5lc2NhcGU7XG4gICAgbG9kYXNoLnVuaXF1ZUlkID0gdW5pcXVlSWQ7XG4gICAgbG9kYXNoLndvcmRzID0gd29yZHM7XG5cbiAgICAvLyBBZGQgYWxpYXNlcy5cbiAgICBsb2Rhc2guYWxsID0gZXZlcnk7XG4gICAgbG9kYXNoLmFueSA9IHNvbWU7XG4gICAgbG9kYXNoLmNvbnRhaW5zID0gaW5jbHVkZXM7XG4gICAgbG9kYXNoLmRldGVjdCA9IGZpbmQ7XG4gICAgbG9kYXNoLmZvbGRsID0gcmVkdWNlO1xuICAgIGxvZGFzaC5mb2xkciA9IHJlZHVjZVJpZ2h0O1xuICAgIGxvZGFzaC5oZWFkID0gZmlyc3Q7XG4gICAgbG9kYXNoLmluY2x1ZGUgPSBpbmNsdWRlcztcbiAgICBsb2Rhc2guaW5qZWN0ID0gcmVkdWNlO1xuXG4gICAgbWl4aW4obG9kYXNoLCAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgc291cmNlID0ge307XG4gICAgICBiYXNlRm9yT3duKGxvZGFzaCwgZnVuY3Rpb24oZnVuYywgbWV0aG9kTmFtZSkge1xuICAgICAgICBpZiAoIWxvZGFzaC5wcm90b3R5cGVbbWV0aG9kTmFtZV0pIHtcbiAgICAgICAgICBzb3VyY2VbbWV0aG9kTmFtZV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfSgpKSwgZmFsc2UpO1xuXG4gICAgLy8gQWRkIGZ1bmN0aW9ucyBjYXBhYmxlIG9mIHJldHVybmluZyB3cmFwcGVkIGFuZCB1bndyYXBwZWQgdmFsdWVzIHdoZW4gY2hhaW5pbmcuXG4gICAgbG9kYXNoLnNhbXBsZSA9IHNhbXBsZTtcblxuICAgIGxvZGFzaC5wcm90b3R5cGUuc2FtcGxlID0gZnVuY3Rpb24obikge1xuICAgICAgaWYgKCF0aGlzLl9fY2hhaW5fXyAmJiBuID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHNhbXBsZSh0aGlzLnZhbHVlKCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudGhydShmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gc2FtcGxlKHZhbHVlLCBuKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBsb2Rhc2guVkVSU0lPTiA9IFZFUlNJT047XG5cbiAgICAvLyBBc3NpZ24gZGVmYXVsdCBwbGFjZWhvbGRlcnMuXG4gICAgYXJyYXlFYWNoKFsnYmluZCcsICdiaW5kS2V5JywgJ2N1cnJ5JywgJ2N1cnJ5UmlnaHQnLCAncGFydGlhbCcsICdwYXJ0aWFsUmlnaHQnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xuICAgICAgbG9kYXNoW21ldGhvZE5hbWVdLnBsYWNlaG9sZGVyID0gbG9kYXNoO1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyB0aGF0IGFjY2VwdCBhbiBgaXRlcmF0ZWVgIHZhbHVlLlxuICAgIGFycmF5RWFjaChbJ2Ryb3BXaGlsZScsICdmaWx0ZXInLCAnbWFwJywgJ3Rha2VXaGlsZSddLCBmdW5jdGlvbihtZXRob2ROYW1lLCB0eXBlKSB7XG4gICAgICB2YXIgaXNGaWx0ZXIgPSB0eXBlICE9IExBWllfTUFQX0ZMQUcsXG4gICAgICAgICAgaXNEcm9wV2hpbGUgPSB0eXBlID09IExBWllfRFJPUF9XSElMRV9GTEFHO1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbihpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgICB2YXIgZmlsdGVyZWQgPSB0aGlzLl9fZmlsdGVyZWRfXyxcbiAgICAgICAgICAgIHJlc3VsdCA9IChmaWx0ZXJlZCAmJiBpc0Ryb3BXaGlsZSkgPyBuZXcgTGF6eVdyYXBwZXIodGhpcykgOiB0aGlzLmNsb25lKCksXG4gICAgICAgICAgICBpdGVyYXRlZXMgPSByZXN1bHQuX19pdGVyYXRlZXNfXyB8fCAocmVzdWx0Ll9faXRlcmF0ZWVzX18gPSBbXSk7XG5cbiAgICAgICAgaXRlcmF0ZWVzLnB1c2goe1xuICAgICAgICAgICdkb25lJzogZmFsc2UsXG4gICAgICAgICAgJ2NvdW50JzogMCxcbiAgICAgICAgICAnaW5kZXgnOiAwLFxuICAgICAgICAgICdpdGVyYXRlZSc6IGdldENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAxKSxcbiAgICAgICAgICAnbGltaXQnOiAtMSxcbiAgICAgICAgICAndHlwZSc6IHR5cGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IGZpbHRlcmVkIHx8IGlzRmlsdGVyO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmRyb3BgIGFuZCBgXy50YWtlYCB2YXJpYW50cy5cbiAgICBhcnJheUVhY2goWydkcm9wJywgJ3Rha2UnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciB3aGlsZU5hbWUgPSBtZXRob2ROYW1lICsgJ1doaWxlJztcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24obikge1xuICAgICAgICB2YXIgZmlsdGVyZWQgPSB0aGlzLl9fZmlsdGVyZWRfXyxcbiAgICAgICAgICAgIHJlc3VsdCA9IChmaWx0ZXJlZCAmJiAhaW5kZXgpID8gdGhpcy5kcm9wV2hpbGUoKSA6IHRoaXMuY2xvbmUoKTtcblxuICAgICAgICBuID0gbiA9PSBudWxsID8gMSA6IG5hdGl2ZU1heChmbG9vcihuKSB8fCAwLCAwKTtcbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgICAgICByZXN1bHQuX190YWtlQ291bnRfXyA9IG5hdGl2ZU1pbihyZXN1bHQuX190YWtlQ291bnRfXywgbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhc3QocmVzdWx0Ll9faXRlcmF0ZWVzX18pLmxpbWl0ID0gbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHZpZXdzID0gcmVzdWx0Ll9fdmlld3NfXyB8fCAocmVzdWx0Ll9fdmlld3NfXyA9IFtdKTtcbiAgICAgICAgICB2aWV3cy5wdXNoKHsgJ3NpemUnOiBuLCAndHlwZSc6IG1ldGhvZE5hbWUgKyAocmVzdWx0Ll9fZGlyX18gPCAwID8gJ1JpZ2h0JyA6ICcnKSB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWUgKyAnUmlnaHQnXSA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpW21ldGhvZE5hbWVdKG4pLnJldmVyc2UoKTtcbiAgICAgIH07XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lICsgJ1JpZ2h0V2hpbGUnXSA9IGZ1bmN0aW9uKHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKClbd2hpbGVOYW1lXShwcmVkaWNhdGUsIHRoaXNBcmcpLnJldmVyc2UoKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIGZvciBgXy5maXJzdGAgYW5kIGBfLmxhc3RgLlxuICAgIGFycmF5RWFjaChbJ2ZpcnN0JywgJ2xhc3QnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciB0YWtlTmFtZSA9ICd0YWtlJyArIChpbmRleCA/ICdSaWdodCcgOiAnJyk7XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpc1t0YWtlTmFtZV0oMSkudmFsdWUoKVswXTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIGZvciBgXy5pbml0aWFsYCBhbmQgYF8ucmVzdGAuXG4gICAgYXJyYXlFYWNoKFsnaW5pdGlhbCcsICdyZXN0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgZHJvcE5hbWUgPSAnZHJvcCcgKyAoaW5kZXggPyAnJyA6ICdSaWdodCcpO1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbZHJvcE5hbWVdKDEpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLnBsdWNrYCBhbmQgYF8ud2hlcmVgLlxuICAgIGFycmF5RWFjaChbJ3BsdWNrJywgJ3doZXJlJ10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgb3BlcmF0aW9uTmFtZSA9IGluZGV4ID8gJ2ZpbHRlcicgOiAnbWFwJyxcbiAgICAgICAgICBjcmVhdGVDYWxsYmFjayA9IGluZGV4ID8gYmFzZU1hdGNoZXMgOiBwcm9wZXJ0eTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbb3BlcmF0aW9uTmFtZV0oY3JlYXRlQ2FsbGJhY2sodmFsdWUpKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY29tcGFjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKGlkZW50aXR5KTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnJlamVjdCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgcHJlZGljYXRlID0gZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAxKTtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gIXByZWRpY2F0ZSh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24oc3RhcnQsIGVuZCkge1xuICAgICAgc3RhcnQgPSBzdGFydCA9PSBudWxsID8gMCA6ICgrc3RhcnQgfHwgMCk7XG5cbiAgICAgIHZhciByZXN1bHQgPSB0aGlzO1xuICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICByZXN1bHQgPSB0aGlzLnRha2VSaWdodCgtc3RhcnQpO1xuICAgICAgfSBlbHNlIGlmIChzdGFydCkge1xuICAgICAgICByZXN1bHQgPSB0aGlzLmRyb3Aoc3RhcnQpO1xuICAgICAgfVxuICAgICAgaWYgKGVuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGVuZCA9ICgrZW5kIHx8IDApO1xuICAgICAgICByZXN1bHQgPSBlbmQgPCAwID8gcmVzdWx0LmRyb3BSaWdodCgtZW5kKSA6IHJlc3VsdC50YWtlKGVuZCAtIHN0YXJ0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5kcm9wKDApO1xuICAgIH07XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIHRvIGBsb2Rhc2gucHJvdG90eXBlYC5cbiAgICBiYXNlRm9yT3duKExhenlXcmFwcGVyLnByb3RvdHlwZSwgZnVuY3Rpb24oZnVuYywgbWV0aG9kTmFtZSkge1xuICAgICAgdmFyIGxvZGFzaEZ1bmMgPSBsb2Rhc2hbbWV0aG9kTmFtZV07XG4gICAgICBpZiAoIWxvZGFzaEZ1bmMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGNoZWNrSXRlcmF0ZWUgPSAvXig/OmZpbHRlcnxtYXB8cmVqZWN0KXxXaGlsZSQvLnRlc3QobWV0aG9kTmFtZSksXG4gICAgICAgICAgcmV0VW53cmFwcGVkID0gL14oPzpmaXJzdHxsYXN0KSQvLnRlc3QobWV0aG9kTmFtZSk7XG5cbiAgICAgIGxvZGFzaC5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICBjaGFpbkFsbCA9IHRoaXMuX19jaGFpbl9fLFxuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fLFxuICAgICAgICAgICAgaXNIeWJyaWQgPSAhIXRoaXMuX19hY3Rpb25zX18ubGVuZ3RoLFxuICAgICAgICAgICAgaXNMYXp5ID0gdmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcixcbiAgICAgICAgICAgIGl0ZXJhdGVlID0gYXJnc1swXSxcbiAgICAgICAgICAgIHVzZUxhenkgPSBpc0xhenkgfHwgaXNBcnJheSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHVzZUxhenkgJiYgY2hlY2tJdGVyYXRlZSAmJiB0eXBlb2YgaXRlcmF0ZWUgPT0gJ2Z1bmN0aW9uJyAmJiBpdGVyYXRlZS5sZW5ndGggIT0gMSkge1xuICAgICAgICAgIC8vIGF2b2lkIGxhenkgdXNlIGlmIHRoZSBpdGVyYXRlZSBoYXMgYSBcImxlbmd0aFwiIHZhbHVlIG90aGVyIHRoYW4gYDFgXG4gICAgICAgICAgaXNMYXp5ID0gdXNlTGF6eSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvbmx5TGF6eSA9IGlzTGF6eSAmJiAhaXNIeWJyaWQ7XG4gICAgICAgIGlmIChyZXRVbndyYXBwZWQgJiYgIWNoYWluQWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG9ubHlMYXp5XG4gICAgICAgICAgICA/IGZ1bmMuY2FsbCh2YWx1ZSlcbiAgICAgICAgICAgIDogbG9kYXNoRnVuYy5jYWxsKGxvZGFzaCwgdGhpcy52YWx1ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW50ZXJjZXB0b3IgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHZhciBvdGhlckFyZ3MgPSBbdmFsdWVdO1xuICAgICAgICAgIHB1c2guYXBwbHkob3RoZXJBcmdzLCBhcmdzKTtcbiAgICAgICAgICByZXR1cm4gbG9kYXNoRnVuYy5hcHBseShsb2Rhc2gsIG90aGVyQXJncyk7XG4gICAgICAgIH07XG4gICAgICAgIGlmICh1c2VMYXp5KSB7XG4gICAgICAgICAgdmFyIHdyYXBwZXIgPSBvbmx5TGF6eSA/IHZhbHVlIDogbmV3IExhenlXcmFwcGVyKHRoaXMpLFxuICAgICAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHdyYXBwZXIsIGFyZ3MpO1xuXG4gICAgICAgICAgaWYgKCFyZXRVbndyYXBwZWQgJiYgKGlzSHlicmlkIHx8IHJlc3VsdC5fX2FjdGlvbnNfXykpIHtcbiAgICAgICAgICAgIHZhciBhY3Rpb25zID0gcmVzdWx0Ll9fYWN0aW9uc19fIHx8IChyZXN1bHQuX19hY3Rpb25zX18gPSBbXSk7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2goeyAnZnVuYyc6IHRocnUsICdhcmdzJzogW2ludGVyY2VwdG9yXSwgJ3RoaXNBcmcnOiBsb2Rhc2ggfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcihyZXN1bHQsIGNoYWluQWxsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50aHJ1KGludGVyY2VwdG9yKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYEFycmF5YCBhbmQgYFN0cmluZ2AgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXG4gICAgYXJyYXlFYWNoKFsnY29uY2F0JywgJ2pvaW4nLCAncG9wJywgJ3B1c2gnLCAncmVwbGFjZScsICdzaGlmdCcsICdzb3J0JywgJ3NwbGljZScsICdzcGxpdCcsICd1bnNoaWZ0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBwcm90b0Z1bmMgPSAoL14oPzpyZXBsYWNlfHNwbGl0KSQvLnRlc3QobWV0aG9kTmFtZSkgPyBzdHJpbmdQcm90byA6IGFycmF5UHJvdG8pW21ldGhvZE5hbWVdLFxuICAgICAgICAgIGNoYWluTmFtZSA9IC9eKD86cHVzaHxzb3J0fHVuc2hpZnQpJC8udGVzdChtZXRob2ROYW1lKSA/ICd0YXAnIDogJ3RocnUnLFxuICAgICAgICAgIGZpeE9iamVjdHMgPSAhc3VwcG9ydC5zcGxpY2VPYmplY3RzICYmIC9eKD86cG9wfHNoaWZ0fHNwbGljZSkkLy50ZXN0KG1ldGhvZE5hbWUpLFxuICAgICAgICAgIHJldFVud3JhcHBlZCA9IC9eKD86am9pbnxwb3B8cmVwbGFjZXxzaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpO1xuXG4gICAgICAvLyBBdm9pZCBhcnJheS1saWtlIG9iamVjdCBidWdzIHdpdGggYEFycmF5I3NoaWZ0YCBhbmQgYEFycmF5I3NwbGljZWAgaW5cbiAgICAgIC8vIElFIDwgOSwgRmlyZWZveCA8IDEwLCBOYXJ3aGFsLCBhbmQgUmluZ29KUy5cbiAgICAgIHZhciBmdW5jID0gIWZpeE9iamVjdHMgPyBwcm90b0Z1bmMgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHByb3RvRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBkZWxldGUgdGhpc1swXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcblxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgaWYgKHJldFVud3JhcHBlZCAmJiAhdGhpcy5fX2NoYWluX18pIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLnZhbHVlKCksIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzW2NoYWluTmFtZV0oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh2YWx1ZSwgYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIE1hcCBtaW5pZmllZCBmdW5jdGlvbiBuYW1lcyB0byB0aGVpciByZWFsIG5hbWVzLlxuICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgbG9kYXNoRnVuYyA9IGxvZGFzaFttZXRob2ROYW1lXTtcbiAgICAgIGlmIChsb2Rhc2hGdW5jKSB7XG4gICAgICAgIHZhciBrZXkgPSBsb2Rhc2hGdW5jLm5hbWUsXG4gICAgICAgICAgICBuYW1lcyA9IHJlYWxOYW1lc1trZXldIHx8IChyZWFsTmFtZXNba2V5XSA9IFtdKTtcblxuICAgICAgICBuYW1lcy5wdXNoKHsgJ25hbWUnOiBtZXRob2ROYW1lLCAnZnVuYyc6IGxvZGFzaEZ1bmMgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZWFsTmFtZXNbY3JlYXRlSHlicmlkV3JhcHBlcihudWxsLCBCSU5EX0tFWV9GTEFHKS5uYW1lXSA9IFt7ICduYW1lJzogJ3dyYXBwZXInLCAnZnVuYyc6IG51bGwgfV07XG5cbiAgICAvLyBBZGQgZnVuY3Rpb25zIHRvIHRoZSBsYXp5IHdyYXBwZXIuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmNsb25lID0gbGF6eUNsb25lO1xuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5yZXZlcnNlID0gbGF6eVJldmVyc2U7XG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnZhbHVlID0gbGF6eVZhbHVlO1xuXG4gICAgLy8gQWRkIGNoYWluaW5nIGZ1bmN0aW9ucyB0byB0aGUgYGxvZGFzaGAgd3JhcHBlci5cbiAgICBsb2Rhc2gucHJvdG90eXBlLmNoYWluID0gd3JhcHBlckNoYWluO1xuICAgIGxvZGFzaC5wcm90b3R5cGUuY29tbWl0ID0gd3JhcHBlckNvbW1pdDtcbiAgICBsb2Rhc2gucHJvdG90eXBlLnBsYW50ID0gd3JhcHBlclBsYW50O1xuICAgIGxvZGFzaC5wcm90b3R5cGUucmV2ZXJzZSA9IHdyYXBwZXJSZXZlcnNlO1xuICAgIGxvZGFzaC5wcm90b3R5cGUudG9TdHJpbmcgPSB3cmFwcGVyVG9TdHJpbmc7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5ydW4gPSBsb2Rhc2gucHJvdG90eXBlLnRvSlNPTiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWVPZiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWUgPSB3cmFwcGVyVmFsdWU7XG5cbiAgICAvLyBBZGQgZnVuY3Rpb24gYWxpYXNlcyB0byB0aGUgYGxvZGFzaGAgd3JhcHBlci5cbiAgICBsb2Rhc2gucHJvdG90eXBlLmNvbGxlY3QgPSBsb2Rhc2gucHJvdG90eXBlLm1hcDtcbiAgICBsb2Rhc2gucHJvdG90eXBlLmhlYWQgPSBsb2Rhc2gucHJvdG90eXBlLmZpcnN0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUuc2VsZWN0ID0gbG9kYXNoLnByb3RvdHlwZS5maWx0ZXI7XG4gICAgbG9kYXNoLnByb3RvdHlwZS50YWlsID0gbG9kYXNoLnByb3RvdHlwZS5yZXN0O1xuXG4gICAgcmV0dXJuIGxvZGFzaDtcbiAgfVxuXG4gIC8vIEV4cG9ydCBsb2Rhc2guXG4gIHZhciBfID0gcnVuSW5Db250ZXh0KCk7XG5cbiAgLy8gU29tZSBBTUQgYnVpbGQgb3B0aW1pemVycyBsaWtlIHIuanMgY2hlY2sgZm9yIGNvbmRpdGlvbiBwYXR0ZXJucyBsaWtlIHRoZSBmb2xsb3dpbmc6XG4gIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuICAgIC8vIEV4cG9zZSBsb2Rhc2ggdG8gdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBhbiBBTUQgbG9hZGVyIGlzIHByZXNlbnQgdG8gYXZvaWRcbiAgICAvLyBlcnJvcnMgaW4gY2FzZXMgd2hlcmUgbG9kYXNoIGlzIGxvYWRlZCBieSBhIHNjcmlwdCB0YWcgYW5kIG5vdCBpbnRlbmRlZFxuICAgIC8vIGFzIGFuIEFNRCBtb2R1bGUuIFNlZSBodHRwOi8vcmVxdWlyZWpzLm9yZy9kb2NzL2Vycm9ycy5odG1sI21pc21hdGNoIGZvclxuICAgIC8vIG1vcmUgZGV0YWlscy5cbiAgICByb290Ll8gPSBfO1xuXG4gICAgLy8gRGVmaW5lIGFzIGFuIGFub255bW91cyBtb2R1bGUgc28sIHRocm91Z2ggcGF0aCBtYXBwaW5nLCBpdCBjYW4gYmVcbiAgICAvLyByZWZlcmVuY2VkIGFzIHRoZSBcInVuZGVyc2NvcmVcIiBtb2R1bGUuXG4gICAgZGVmaW5lKGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIF87XG4gICAgfSk7XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGBleHBvcnRzYCBhZnRlciBgZGVmaW5lYCBpbiBjYXNlIGEgYnVpbGQgb3B0aW1pemVyIGFkZHMgYW4gYGV4cG9ydHNgIG9iamVjdC5cbiAgZWxzZSBpZiAoZnJlZUV4cG9ydHMgJiYgZnJlZU1vZHVsZSkge1xuICAgIC8vIEV4cG9ydCBmb3IgTm9kZS5qcyBvciBSaW5nb0pTLlxuICAgIGlmIChtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAoZnJlZU1vZHVsZS5leHBvcnRzID0gXykuXyA9IF87XG4gICAgfVxuICAgIC8vIEV4cG9ydCBmb3IgTmFyd2hhbCBvciBSaGlubyAtcmVxdWlyZS5cbiAgICBlbHNlIHtcbiAgICAgIGZyZWVFeHBvcnRzLl8gPSBfO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICAvLyBFeHBvcnQgZm9yIGEgYnJvd3NlciBvciBSaGluby5cbiAgICByb290Ll8gPSBfO1xuICB9XG59LmNhbGwodGhpcykpO1xuIiwiLyoqXG4gKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXk9W11dIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyB0by5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBhcnJheUNvcHkoc291cmNlLCBhcnJheSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgYXJyYXkgfHwgKGFycmF5ID0gQXJyYXkobGVuZ3RoKSk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlDb3B5O1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5RWFjaDtcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlNYXA7XG4iLCJ2YXIgYmFzZUNvcHkgPSByZXF1aXJlKCcuL2Jhc2VDb3B5JyksXG4gICAgZ2V0U3ltYm9scyA9IHJlcXVpcmUoJy4vZ2V0U3ltYm9scycpLFxuICAgIGlzTmF0aXZlID0gcmVxdWlyZSgnLi4vbGFuZy9pc05hdGl2ZScpLFxuICAgIGtleXMgPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5cycpO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIHByZXZlbnRFeHRlbnNpb25zID0gaXNOYXRpdmUocHJldmVudEV4dGVuc2lvbnMgPSBPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIHByZXZlbnRFeHRlbnNpb25zO1xuXG4vKiogVXNlZCBhcyBgYmFzZUFzc2lnbmAuICovXG52YXIgbmF0aXZlQXNzaWduID0gKGZ1bmN0aW9uKCkge1xuICAvLyBBdm9pZCBgT2JqZWN0LmFzc2lnbmAgaW4gRmlyZWZveCAzNC0zNyB3aGljaCBoYXZlIGFuIGVhcmx5IGltcGxlbWVudGF0aW9uXG4gIC8vIHdpdGggYSBub3cgZGVmdW5jdCB0cnkvY2F0Y2ggYmVoYXZpb3IuIFNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzQ0XG4gIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gIC8vXG4gIC8vIFVzZSBgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zYCBvbiBhIHBsYWluIG9iamVjdCBpbnN0ZWFkIG9mIHNpbXBseSB1c2luZ1xuICAvLyBgT2JqZWN0KCd4JylgIGJlY2F1c2UgQ2hyb21lIGFuZCBJRSBmYWlsIHRvIHRocm93IGFuIGVycm9yIHdoZW4gYXR0ZW1wdGluZ1xuICAvLyB0byBhc3NpZ24gdmFsdWVzIHRvIHJlYWRvbmx5IGluZGV4ZXMgb2Ygc3RyaW5ncy5cbiAgdmFyIGZ1bmMgPSBwcmV2ZW50RXh0ZW5zaW9ucyAmJiBpc05hdGl2ZShmdW5jID0gT2JqZWN0LmFzc2lnbikgJiYgZnVuYztcbiAgdHJ5IHtcbiAgICBpZiAoZnVuYykge1xuICAgICAgdmFyIG9iamVjdCA9IHByZXZlbnRFeHRlbnNpb25zKHsgJzEnOiAwIH0pO1xuICAgICAgb2JqZWN0WzBdID0gMTtcbiAgICB9XG4gIH0gY2F0Y2goZSkge1xuICAgIC8vIE9ubHkgYXR0ZW1wdCBpbiBzdHJpY3QgbW9kZS5cbiAgICB0cnkgeyBmdW5jKG9iamVjdCwgJ3hvJyk7IH0gY2F0Y2goZSkge31cbiAgICByZXR1cm4gIW9iamVjdFsxXSAmJiBmdW5jO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn0oKSk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nLFxuICogbXVsdGlwbGUgc291cmNlcywgYW5kIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG52YXIgYmFzZUFzc2lnbiA9IG5hdGl2ZUFzc2lnbiB8fCBmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gc291cmNlID09IG51bGxcbiAgICA/IG9iamVjdFxuICAgIDogYmFzZUNvcHkoc291cmNlLCBnZXRTeW1ib2xzKHNvdXJjZSksIGJhc2VDb3B5KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUFzc2lnbjtcbiIsInZhciBiYXNlTWF0Y2hlcyA9IHJlcXVpcmUoJy4vYmFzZU1hdGNoZXMnKSxcbiAgICBiYXNlTWF0Y2hlc1Byb3BlcnR5ID0gcmVxdWlyZSgnLi9iYXNlTWF0Y2hlc1Byb3BlcnR5JyksXG4gICAgYmluZENhbGxiYWNrID0gcmVxdWlyZSgnLi9iaW5kQ2FsbGJhY2snKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKSxcbiAgICBwcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvcHJvcGVydHknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jYWxsYmFja2Agd2hpY2ggc3VwcG9ydHMgc3BlY2lmeWluZyB0aGVcbiAqIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gW2Z1bmM9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYSBjYWxsYmFjay5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge251bWJlcn0gW2FyZ0NvdW50XSBUaGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGJhc2VDYWxsYmFjayhmdW5jLCB0aGlzQXJnLCBhcmdDb3VudCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBmdW5jO1xuICBpZiAodHlwZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRoaXNBcmcgPT09IHVuZGVmaW5lZFxuICAgICAgPyBmdW5jXG4gICAgICA6IGJpbmRDYWxsYmFjayhmdW5jLCB0aGlzQXJnLCBhcmdDb3VudCk7XG4gIH1cbiAgaWYgKGZ1bmMgPT0gbnVsbCkge1xuICAgIHJldHVybiBpZGVudGl0eTtcbiAgfVxuICBpZiAodHlwZSA9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBiYXNlTWF0Y2hlcyhmdW5jKTtcbiAgfVxuICByZXR1cm4gdGhpc0FyZyA9PT0gdW5kZWZpbmVkXG4gICAgPyBwcm9wZXJ0eShmdW5jKVxuICAgIDogYmFzZU1hdGNoZXNQcm9wZXJ0eShmdW5jLCB0aGlzQXJnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlQ2FsbGJhY2s7XG4iLCJ2YXIgYXJyYXlDb3B5ID0gcmVxdWlyZSgnLi9hcnJheUNvcHknKSxcbiAgICBhcnJheUVhY2ggPSByZXF1aXJlKCcuL2FycmF5RWFjaCcpLFxuICAgIGJhc2VBc3NpZ24gPSByZXF1aXJlKCcuL2Jhc2VBc3NpZ24nKSxcbiAgICBiYXNlRm9yT3duID0gcmVxdWlyZSgnLi9iYXNlRm9yT3duJyksXG4gICAgaW5pdENsb25lQXJyYXkgPSByZXF1aXJlKCcuL2luaXRDbG9uZUFycmF5JyksXG4gICAgaW5pdENsb25lQnlUYWcgPSByZXF1aXJlKCcuL2luaXRDbG9uZUJ5VGFnJyksXG4gICAgaW5pdENsb25lT2JqZWN0ID0gcmVxdWlyZSgnLi9pbml0Q2xvbmVPYmplY3QnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNIb3N0T2JqZWN0ID0gcmVxdWlyZSgnLi9pc0hvc3RPYmplY3QnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBzdXBwb3J0ZWQgYnkgYF8uY2xvbmVgLiAqL1xudmFyIGNsb25lYWJsZVRhZ3MgPSB7fTtcbmNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG5jbG9uZWFibGVUYWdzW2FycmF5QnVmZmVyVGFnXSA9IGNsb25lYWJsZVRhZ3NbYm9vbFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tkYXRlVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPVxuY2xvbmVhYmxlVGFnc1tmbG9hdDY0VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50OFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDMyVGFnXSA9XG5jbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tyZWdleHBUYWddID0gY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG5jbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxuY2xvbmVhYmxlVGFnc1ttYXBUYWddID0gY2xvbmVhYmxlVGFnc1tzZXRUYWddID1cbmNsb25lYWJsZVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nXG4gKiBhbmQgYHRoaXNgIGJpbmRpbmcgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZyB2YWx1ZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgYHZhbHVlYCBiZWxvbmdzIHRvLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2Ugb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0I9W11dIEFzc29jaWF0ZXMgY2xvbmVzIHdpdGggc291cmNlIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgaXNEZWVwLCBjdXN0b21pemVyLCBrZXksIG9iamVjdCwgc3RhY2tBLCBzdGFja0IpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCkgOiBjdXN0b21pemVyKHZhbHVlKTtcbiAgfVxuICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpO1xuICBpZiAoaXNBcnIpIHtcbiAgICByZXN1bHQgPSBpbml0Q2xvbmVBcnJheSh2YWx1ZSk7XG4gICAgaWYgKCFpc0RlZXApIHtcbiAgICAgIHJldHVybiBhcnJheUNvcHkodmFsdWUsIHJlc3VsdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciB0YWcgPSBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWc7XG5cbiAgICBpZiAodGFnID09IG9iamVjdFRhZyB8fCB0YWcgPT0gYXJnc1RhZyB8fCAoaXNGdW5jICYmICFvYmplY3QpKSB7XG4gICAgICBpZiAoaXNIb3N0T2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZU9iamVjdChpc0Z1bmMgPyB7fSA6IHZhbHVlKTtcbiAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgIHJldHVybiBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2xvbmVhYmxlVGFnc1t0YWddXG4gICAgICAgID8gaW5pdENsb25lQnlUYWcodmFsdWUsIHRhZywgaXNEZWVwKVxuICAgICAgICA6IChvYmplY3QgPyB2YWx1ZSA6IHt9KTtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgYW5kIHJldHVybiBjb3JyZXNwb25kaW5nIGNsb25lLlxuICBzdGFja0EgfHwgKHN0YWNrQSA9IFtdKTtcbiAgc3RhY2tCIHx8IChzdGFja0IgPSBbXSk7XG5cbiAgdmFyIGxlbmd0aCA9IHN0YWNrQS5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGlmIChzdGFja0FbbGVuZ3RoXSA9PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIHN0YWNrQltsZW5ndGhdO1xuICAgIH1cbiAgfVxuICAvLyBBZGQgdGhlIHNvdXJjZSB2YWx1ZSB0byB0aGUgc3RhY2sgb2YgdHJhdmVyc2VkIG9iamVjdHMgYW5kIGFzc29jaWF0ZSBpdCB3aXRoIGl0cyBjbG9uZS5cbiAgc3RhY2tBLnB1c2godmFsdWUpO1xuICBzdGFja0IucHVzaChyZXN1bHQpO1xuXG4gIC8vIFJlY3Vyc2l2ZWx5IHBvcHVsYXRlIGNsb25lIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gIChpc0FyciA/IGFycmF5RWFjaCA6IGJhc2VGb3JPd24pKHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgcmVzdWx0W2tleV0gPSBiYXNlQ2xvbmUoc3ViVmFsdWUsIGlzRGVlcCwgY3VzdG9taXplciwga2V5LCB2YWx1ZSwgc3RhY2tBLCBzdGFja0IpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlQ2xvbmU7XG4iLCIvKipcbiAqIENvcGllcyBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gY29weS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDb3B5KHNvdXJjZSwgcHJvcHMsIG9iamVjdCkge1xuICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgb2JqZWN0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDb3B5O1xuIiwidmFyIGJhc2VGb3JPd24gPSByZXF1aXJlKCcuL2Jhc2VGb3JPd24nKSxcbiAgICBjcmVhdGVCYXNlRWFjaCA9IHJlcXVpcmUoJy4vY3JlYXRlQmFzZUVhY2gnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fHN0cmluZ30gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gKi9cbnZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VFYWNoO1xuIiwidmFyIGNyZWF0ZUJhc2VGb3IgPSByZXF1aXJlKCcuL2NyZWF0ZUJhc2VGb3InKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYmFzZUZvckluYCBhbmQgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzXG4gKiBvdmVyIGBvYmplY3RgIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgYGtleXNGdW5jYCBpbnZva2luZyBgaXRlcmF0ZWVgIGZvclxuICogZWFjaCBwcm9wZXJ0eS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5XG4gKiByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xudmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvcjtcbiIsInZhciBiYXNlRm9yID0gcmVxdWlyZSgnLi9iYXNlRm9yJyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi4vb2JqZWN0L2tleXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckluYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9ySW4ob2JqZWN0LCBpdGVyYXRlZSkge1xuICByZXR1cm4gYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzSW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGb3JJbjtcbiIsInZhciBiYXNlRm9yID0gcmVxdWlyZSgnLi9iYXNlRm9yJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgcmV0dXJuIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvck93bjtcbiIsInZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0cmluZyBwYXRoc1xuICogYW5kIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhLZXldIFRoZSBrZXkgcmVwcmVzZW50YXRpb24gb2YgcGF0aC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldChvYmplY3QsIHBhdGgsIHBhdGhLZXkpIHtcbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gIGlmIChwYXRoS2V5ICE9PSB1bmRlZmluZWQgJiYgcGF0aEtleSBpbiBvYmplY3QpIHtcbiAgICBwYXRoID0gW3BhdGhLZXldO1xuICB9XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGg7XG5cbiAgd2hpbGUgKG9iamVjdCAhPSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpW3BhdGhbaW5kZXhdXTtcbiAgfVxuICByZXR1cm4gKGluZGV4ICYmIGluZGV4ID09IGxlbmd0aCkgPyBvYmplY3QgOiB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldDtcbiIsInZhciBpbmRleE9mTmFOID0gcmVxdWlyZSgnLi9pbmRleE9mTmFOJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5kZXhPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBiaW5hcnkgc2VhcmNoZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICBpZiAodmFsdWUgIT09IHZhbHVlKSB7XG4gICAgcmV0dXJuIGluZGV4T2ZOYU4oYXJyYXksIGZyb21JbmRleCk7XG4gIH1cbiAgdmFyIGluZGV4ID0gZnJvbUluZGV4IC0gMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChhcnJheVtpbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSW5kZXhPZjtcbiIsInZhciBiYXNlSXNFcXVhbERlZXAgPSByZXF1aXJlKCcuL2Jhc2VJc0VxdWFsRGVlcCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRXF1YWxgIHdpdGhvdXQgc3VwcG9ydCBmb3IgYHRoaXNgIGJpbmRpbmdcbiAqIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaW5nIHZhbHVlcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpIHtcbiAgLy8gRXhpdCBlYXJseSBmb3IgaWRlbnRpY2FsIHZhbHVlcy5cbiAgaWYgKHZhbHVlID09PSBvdGhlcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciB2YWxUeXBlID0gdHlwZW9mIHZhbHVlLFxuICAgICAgb3RoVHlwZSA9IHR5cGVvZiBvdGhlcjtcblxuICAvLyBFeGl0IGVhcmx5IGZvciB1bmxpa2UgcHJpbWl0aXZlIHZhbHVlcy5cbiAgaWYgKCh2YWxUeXBlICE9ICdmdW5jdGlvbicgJiYgdmFsVHlwZSAhPSAnb2JqZWN0JyAmJiBvdGhUeXBlICE9ICdmdW5jdGlvbicgJiYgb3RoVHlwZSAhPSAnb2JqZWN0JykgfHxcbiAgICAgIHZhbHVlID09IG51bGwgfHwgb3RoZXIgPT0gbnVsbCkge1xuICAgIC8vIFJldHVybiBgZmFsc2VgIHVubGVzcyBib3RoIHZhbHVlcyBhcmUgYE5hTmAuXG4gICAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXI7XG4gIH1cbiAgcmV0dXJuIGJhc2VJc0VxdWFsRGVlcCh2YWx1ZSwgb3RoZXIsIGJhc2VJc0VxdWFsLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzRXF1YWw7XG4iLCJ2YXIgZXF1YWxBcnJheXMgPSByZXF1aXJlKCcuL2VxdWFsQXJyYXlzJyksXG4gICAgZXF1YWxCeVRhZyA9IHJlcXVpcmUoJy4vZXF1YWxCeVRhZycpLFxuICAgIGVxdWFsT2JqZWN0cyA9IHJlcXVpcmUoJy4vZXF1YWxPYmplY3RzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4vaXNIb3N0T2JqZWN0JyksXG4gICAgaXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc1R5cGVkQXJyYXknKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCPVtdXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICBvdGhJc0FyciA9IGlzQXJyYXkob3RoZXIpLFxuICAgICAgb2JqVGFnID0gYXJyYXlUYWcsXG4gICAgICBvdGhUYWcgPSBhcnJheVRhZztcblxuICBpZiAoIW9iaklzQXJyKSB7XG4gICAgb2JqVGFnID0gb2JqVG9TdHJpbmcuY2FsbChvYmplY3QpO1xuICAgIGlmIChvYmpUYWcgPT0gYXJnc1RhZykge1xuICAgICAgb2JqVGFnID0gb2JqZWN0VGFnO1xuICAgIH0gZWxzZSBpZiAob2JqVGFnICE9IG9iamVjdFRhZykge1xuICAgICAgb2JqSXNBcnIgPSBpc1R5cGVkQXJyYXkob2JqZWN0KTtcbiAgICB9XG4gIH1cbiAgaWYgKCFvdGhJc0Fycikge1xuICAgIG90aFRhZyA9IG9ialRvU3RyaW5nLmNhbGwob3RoZXIpO1xuICAgIGlmIChvdGhUYWcgPT0gYXJnc1RhZykge1xuICAgICAgb3RoVGFnID0gb2JqZWN0VGFnO1xuICAgIH0gZWxzZSBpZiAob3RoVGFnICE9IG9iamVjdFRhZykge1xuICAgICAgb3RoSXNBcnIgPSBpc1R5cGVkQXJyYXkob3RoZXIpO1xuICAgIH1cbiAgfVxuICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnICYmICFpc0hvc3RPYmplY3Qob2JqZWN0KSxcbiAgICAgIG90aElzT2JqID0gb3RoVGFnID09IG9iamVjdFRhZyAmJiAhaXNIb3N0T2JqZWN0KG90aGVyKSxcbiAgICAgIGlzU2FtZVRhZyA9IG9ialRhZyA9PSBvdGhUYWc7XG5cbiAgaWYgKGlzU2FtZVRhZyAmJiAhKG9iaklzQXJyIHx8IG9iaklzT2JqKSkge1xuICAgIHJldHVybiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZyk7XG4gIH1cbiAgaWYgKCFpc0xvb3NlKSB7XG4gICAgdmFyIHZhbFdyYXBwZWQgPSBvYmpJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ19fd3JhcHBlZF9fJyksXG4gICAgICAgIG90aFdyYXBwZWQgPSBvdGhJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCAnX193cmFwcGVkX18nKTtcblxuICAgIGlmICh2YWxXcmFwcGVkIHx8IG90aFdyYXBwZWQpIHtcbiAgICAgIHJldHVybiBlcXVhbEZ1bmModmFsV3JhcHBlZCA/IG9iamVjdC52YWx1ZSgpIDogb2JqZWN0LCBvdGhXcmFwcGVkID8gb3RoZXIudmFsdWUoKSA6IG90aGVyLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgfVxuICB9XG4gIGlmICghaXNTYW1lVGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIEFzc3VtZSBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gZGV0ZWN0aW5nIGNpcmN1bGFyIHJlZmVyZW5jZXMgc2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jSk8uXG4gIHN0YWNrQSB8fCAoc3RhY2tBID0gW10pO1xuICBzdGFja0IgfHwgKHN0YWNrQiA9IFtdKTtcblxuICB2YXIgbGVuZ3RoID0gc3RhY2tBLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKHN0YWNrQVtsZW5ndGhdID09IG9iamVjdCkge1xuICAgICAgcmV0dXJuIHN0YWNrQltsZW5ndGhdID09IG90aGVyO1xuICAgIH1cbiAgfVxuICAvLyBBZGQgYG9iamVjdGAgYW5kIGBvdGhlcmAgdG8gdGhlIHN0YWNrIG9mIHRyYXZlcnNlZCBvYmplY3RzLlxuICBzdGFja0EucHVzaChvYmplY3QpO1xuICBzdGFja0IucHVzaChvdGhlcik7XG5cbiAgdmFyIHJlc3VsdCA9IChvYmpJc0FyciA/IGVxdWFsQXJyYXlzIDogZXF1YWxPYmplY3RzKShvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcblxuICBzdGFja0EucG9wKCk7XG4gIHN0YWNrQi5wb3AoKTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0VxdWFsRGVlcDtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNGdW5jdGlvbmAgd2l0aG91dCBzdXBwb3J0IGZvciBlbnZpcm9ubWVudHNcbiAqIHdpdGggaW5jb3JyZWN0IGB0eXBlb2ZgIHJlc3VsdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzRnVuY3Rpb24odmFsdWUpIHtcbiAgLy8gQXZvaWQgYSBDaGFrcmEgSklUIGJ1ZyBpbiBjb21wYXRpYmlsaXR5IG1vZGVzIG9mIElFIDExLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2phc2hrZW5hcy91bmRlcnNjb3JlL2lzc3Vlcy8xNjIxIGZvciBtb3JlIGRldGFpbHMuXG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJyB8fCBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNGdW5jdGlvbjtcbiIsInZhciBiYXNlSXNFcXVhbCA9IHJlcXVpcmUoJy4vYmFzZUlzRXF1YWwnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hdGNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgc291cmNlIHByb3BlcnR5IG5hbWVzIHRvIG1hdGNoLlxuICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSBzb3VyY2UgdmFsdWVzIHRvIG1hdGNoLlxuICogQHBhcmFtIHtBcnJheX0gc3RyaWN0Q29tcGFyZUZsYWdzIFN0cmljdCBjb21wYXJpc29uIGZsYWdzIGZvciBzb3VyY2UgdmFsdWVzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaW5nIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNNYXRjaChvYmplY3QsIHByb3BzLCB2YWx1ZXMsIHN0cmljdENvbXBhcmVGbGFncywgY3VzdG9taXplcikge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgIG5vQ3VzdG9taXplciA9ICFjdXN0b21pemVyO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKChub0N1c3RvbWl6ZXIgJiYgc3RyaWN0Q29tcGFyZUZsYWdzW2luZGV4XSlcbiAgICAgICAgICA/IHZhbHVlc1tpbmRleF0gIT09IG9iamVjdFtwcm9wc1tpbmRleF1dXG4gICAgICAgICAgOiAhKHByb3BzW2luZGV4XSBpbiBvYmplY3QpXG4gICAgICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBpbmRleCA9IC0xO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF0sXG4gICAgICAgIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgIHNyY1ZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgIGlmIChub0N1c3RvbWl6ZXIgJiYgc3RyaWN0Q29tcGFyZUZsYWdzW2luZGV4XSkge1xuICAgICAgdmFyIHJlc3VsdCA9IG9ialZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBvYmplY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSkgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ID0gYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9ialZhbHVlLCBjdXN0b21pemVyLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzTWF0Y2g7XG4iLCJ2YXIgYmFzZUVhY2ggPSByZXF1aXJlKCcuL2Jhc2VFYWNoJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWFwYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrIHNob3J0aGFuZHNcbiAqIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGJhc2VNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xuXG4gIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICByZXN1bHRbKytpbmRleF0gPSBpdGVyYXRlZSh2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU1hcDtcbiIsInZhciBiYXNlSXNNYXRjaCA9IHJlcXVpcmUoJy4vYmFzZUlzTWF0Y2gnKSxcbiAgICBjb25zdGFudCA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvY29uc3RhbnQnKSxcbiAgICBpc1N0cmljdENvbXBhcmFibGUgPSByZXF1aXJlKCcuL2lzU3RyaWN0Q29tcGFyYWJsZScpLFxuICAgIGtleXMgPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5cycpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNgIHdoaWNoIGRvZXMgbm90IGNsb25lIGBzb3VyY2VgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VNYXRjaGVzKHNvdXJjZSkge1xuICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSksXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgaWYgKCFsZW5ndGgpIHtcbiAgICByZXR1cm4gY29uc3RhbnQodHJ1ZSk7XG4gIH1cbiAgaWYgKGxlbmd0aCA9PSAxKSB7XG4gICAgdmFyIGtleSA9IHByb3BzWzBdLFxuICAgICAgICB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuXG4gICAgaWYgKGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgICAgIHJldHVybiBvYmplY3Rba2V5XSA9PT0gdmFsdWUgJiYgKHZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBvYmplY3QpKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHZhciB2YWx1ZXMgPSBBcnJheShsZW5ndGgpLFxuICAgICAgc3RyaWN0Q29tcGFyZUZsYWdzID0gQXJyYXkobGVuZ3RoKTtcblxuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICB2YWx1ZSA9IHNvdXJjZVtwcm9wc1tsZW5ndGhdXTtcbiAgICB2YWx1ZXNbbGVuZ3RoXSA9IHZhbHVlO1xuICAgIHN0cmljdENvbXBhcmVGbGFnc1tsZW5ndGhdID0gaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGJhc2VJc01hdGNoKHRvT2JqZWN0KG9iamVjdCksIHByb3BzLCB2YWx1ZXMsIHN0cmljdENvbXBhcmVGbGFncyk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU1hdGNoZXM7XG4iLCJ2YXIgYmFzZUdldCA9IHJlcXVpcmUoJy4vYmFzZUdldCcpLFxuICAgIGJhc2VJc0VxdWFsID0gcmVxdWlyZSgnLi9iYXNlSXNFcXVhbCcpLFxuICAgIGJhc2VTbGljZSA9IHJlcXVpcmUoJy4vYmFzZVNsaWNlJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzS2V5ID0gcmVxdWlyZSgnLi9pc0tleScpLFxuICAgIGlzU3RyaWN0Q29tcGFyYWJsZSA9IHJlcXVpcmUoJy4vaXNTdHJpY3RDb21wYXJhYmxlJyksXG4gICAgbGFzdCA9IHJlcXVpcmUoJy4uL2FycmF5L2xhc3QnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKSxcbiAgICB0b1BhdGggPSByZXF1aXJlKCcuL3RvUGF0aCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNQcm9wZXJ0eWAgd2hpY2ggZG9lcyBub3Qgd2hpY2ggZG9lc1xuICogbm90IGNsb25lIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgdmFsdWUpIHtcbiAgdmFyIGlzQXJyID0gaXNBcnJheShwYXRoKSxcbiAgICAgIGlzQ29tbW9uID0gaXNLZXkocGF0aCkgJiYgaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSxcbiAgICAgIHBhdGhLZXkgPSAocGF0aCArICcnKTtcblxuICBwYXRoID0gdG9QYXRoKHBhdGgpO1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBrZXkgPSBwYXRoS2V5O1xuICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgaWYgKChpc0FyciB8fCAhaXNDb21tb24pICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgIG9iamVjdCA9IHBhdGgubGVuZ3RoID09IDEgPyBvYmplY3QgOiBiYXNlR2V0KG9iamVjdCwgYmFzZVNsaWNlKHBhdGgsIDAsIC0xKSk7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAga2V5ID0gbGFzdChwYXRoKTtcbiAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Rba2V5XSA9PT0gdmFsdWVcbiAgICAgID8gKHZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBvYmplY3QpKVxuICAgICAgOiBiYXNlSXNFcXVhbCh2YWx1ZSwgb2JqZWN0W2tleV0sIG51bGwsIHRydWUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXRjaGVzUHJvcGVydHk7XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogdG9PYmplY3Qob2JqZWN0KVtrZXldO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VQcm9wZXJ0eTtcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9iYXNlR2V0JyksXG4gICAgdG9QYXRoID0gcmVxdWlyZSgnLi90b1BhdGgnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VQcm9wZXJ0eWAgd2hpY2ggc3VwcG9ydHMgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpIHtcbiAgdmFyIHBhdGhLZXkgPSAocGF0aCArICcnKTtcbiAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIHJldHVybiBiYXNlR2V0KG9iamVjdCwgcGF0aCwgcGF0aEtleSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVByb3BlcnR5RGVlcDtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2xpY2VgIHdpdGhvdXQgYW4gaXRlcmF0ZWUgY2FsbCBndWFyZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNsaWNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogKCtzdGFydCB8fCAwKTtcbiAgaWYgKHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IChsZW5ndGggKyBzdGFydCk7XG4gIH1cbiAgZW5kID0gKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA+IGxlbmd0aCkgPyBsZW5ndGggOiAoK2VuZCB8fCAwKTtcbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuZ3RoO1xuICB9XG4gIGxlbmd0aCA9IHN0YXJ0ID4gZW5kID8gMCA6ICgoZW5kIC0gc3RhcnQpID4+PiAwKTtcbiAgc3RhcnQgPj4+PSAwO1xuXG4gIHZhciByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSBhcnJheVtpbmRleCArIHN0YXJ0XTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTbGljZTtcbiIsIi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyBpZiBpdCBpcyBub3Qgb25lLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWRcbiAqIGZvciBgbnVsbGAgb3IgYHVuZGVmaW5lZGAgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogKHZhbHVlICsgJycpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VUb1N0cmluZztcbiIsInZhciBiaW5hcnlJbmRleEJ5ID0gcmVxdWlyZSgnLi9iaW5hcnlJbmRleEJ5JyksXG4gICAgaWRlbnRpdHkgPSByZXF1aXJlKCcuLi91dGlsaXR5L2lkZW50aXR5Jyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHRoZSBtYXhpbXVtIGxlbmd0aCBhbmQgaW5kZXggb2YgYW4gYXJyYXkuICovXG52YXIgTUFYX0FSUkFZX0xFTkdUSCA9IE1hdGgucG93KDIsIDMyKSAtIDEsXG4gICAgSEFMRl9NQVhfQVJSQVlfTEVOR1RIID0gTUFYX0FSUkFZX0xFTkdUSCA+Pj4gMTtcblxuLyoqXG4gKiBQZXJmb3JtcyBhIGJpbmFyeSBzZWFyY2ggb2YgYGFycmF5YCB0byBkZXRlcm1pbmUgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWBcbiAqIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG8gbWFpbnRhaW4gaXRzIHNvcnQgb3JkZXIuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICogQHBhcmFtIHtib29sZWFufSBbcmV0SGlnaGVzdF0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGhpZ2hlc3QgcXVhbGlmaWVkIGluZGV4LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAqICBpbnRvIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGJpbmFyeUluZGV4KGFycmF5LCB2YWx1ZSwgcmV0SGlnaGVzdCkge1xuICB2YXIgbG93ID0gMCxcbiAgICAgIGhpZ2ggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IGxvdztcblxuICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIHZhbHVlID09PSB2YWx1ZSAmJiBoaWdoIDw9IEhBTEZfTUFYX0FSUkFZX0xFTkdUSCkge1xuICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICB2YXIgbWlkID0gKGxvdyArIGhpZ2gpID4+PiAxLFxuICAgICAgICAgIGNvbXB1dGVkID0gYXJyYXlbbWlkXTtcblxuICAgICAgaWYgKHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpKSB7XG4gICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoaWdoID0gbWlkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGlnaDtcbiAgfVxuICByZXR1cm4gYmluYXJ5SW5kZXhCeShhcnJheSwgdmFsdWUsIGlkZW50aXR5LCByZXRIaWdoZXN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiaW5hcnlJbmRleDtcbiIsIi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB0aGUgbWF4aW11bSBsZW5ndGggYW5kIGluZGV4IG9mIGFuIGFycmF5LiAqL1xudmFyIE1BWF9BUlJBWV9MRU5HVEggPSBNYXRoLnBvdygyLCAzMikgLSAxLFxuICAgIE1BWF9BUlJBWV9JTkRFWCA9IE1BWF9BUlJBWV9MRU5HVEggLSAxO1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmluYXJ5SW5kZXhgIGV4Y2VwdCB0aGF0IGl0IGludm9rZXMgYGl0ZXJhdGVlYCBmb3JcbiAqIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGUgdGhlaXIgc29ydCByYW5raW5nLiBUaGVcbiAqIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ7ICh2YWx1ZSkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEhpZ2hlc3RdIFNwZWNpZnkgcmV0dXJuaW5nIHRoZSBoaWdoZXN0IHF1YWxpZmllZCBpbmRleC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gKiAgaW50byBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBiaW5hcnlJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUsIHJldEhpZ2hlc3QpIHtcbiAgdmFsdWUgPSBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgdmFyIGxvdyA9IDAsXG4gICAgICBoaWdoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwLFxuICAgICAgdmFsSXNOYU4gPSB2YWx1ZSAhPT0gdmFsdWUsXG4gICAgICB2YWxJc1VuZGVmID0gdmFsdWUgPT09IHVuZGVmaW5lZDtcblxuICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgIHZhciBtaWQgPSBmbG9vcigobG93ICsgaGlnaCkgLyAyKSxcbiAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZShhcnJheVttaWRdKSxcbiAgICAgICAgaXNSZWZsZXhpdmUgPSBjb21wdXRlZCA9PT0gY29tcHV0ZWQ7XG5cbiAgICBpZiAodmFsSXNOYU4pIHtcbiAgICAgIHZhciBzZXRMb3cgPSBpc1JlZmxleGl2ZSB8fCByZXRIaWdoZXN0O1xuICAgIH0gZWxzZSBpZiAodmFsSXNVbmRlZikge1xuICAgICAgc2V0TG93ID0gaXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgY29tcHV0ZWQgIT09IHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldExvdyA9IHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpO1xuICAgIH1cbiAgICBpZiAoc2V0TG93KSB7XG4gICAgICBsb3cgPSBtaWQgKyAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaWdoID0gbWlkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmF0aXZlTWluKGhpZ2gsIE1BWF9BUlJBWV9JTkRFWCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmluYXJ5SW5kZXhCeTtcbiIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VDYWxsYmFja2Agd2hpY2ggb25seSBzdXBwb3J0cyBgdGhpc2AgYmluZGluZ1xuICogYW5kIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJnQ291bnRdIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cbiAqL1xuZnVuY3Rpb24gYmluZENhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGlkZW50aXR5O1xuICB9XG4gIGlmICh0aGlzQXJnID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxuICBzd2l0Y2ggKGFyZ0NvdW50KSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfTtcbiAgICBjYXNlIDQ6IHJldHVybiBmdW5jdGlvbihhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgIH07XG4gICAgY2FzZSA1OiByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyLCBrZXksIG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBvdGhlciwga2V5LCBvYmplY3QsIHNvdXJjZSk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiaW5kQ2FsbGJhY2s7XG4iLCJ2YXIgY29uc3RhbnQgPSByZXF1aXJlKCcuLi91dGlsaXR5L2NvbnN0YW50JyksXG4gICAgaXNOYXRpdmUgPSByZXF1aXJlKCcuLi9sYW5nL2lzTmF0aXZlJyk7XG5cbi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgQXJyYXlCdWZmZXIgPSBpc05hdGl2ZShBcnJheUJ1ZmZlciA9IGdsb2JhbC5BcnJheUJ1ZmZlcikgJiYgQXJyYXlCdWZmZXIsXG4gICAgYnVmZmVyU2xpY2UgPSBpc05hdGl2ZShidWZmZXJTbGljZSA9IEFycmF5QnVmZmVyICYmIG5ldyBBcnJheUJ1ZmZlcigwKS5zbGljZSkgJiYgYnVmZmVyU2xpY2UsXG4gICAgZmxvb3IgPSBNYXRoLmZsb29yLFxuICAgIFVpbnQ4QXJyYXkgPSBpc05hdGl2ZShVaW50OEFycmF5ID0gZ2xvYmFsLlVpbnQ4QXJyYXkpICYmIFVpbnQ4QXJyYXk7XG5cbi8qKiBVc2VkIHRvIGNsb25lIGFycmF5IGJ1ZmZlcnMuICovXG52YXIgRmxvYXQ2NEFycmF5ID0gKGZ1bmN0aW9uKCkge1xuICAvLyBTYWZhcmkgNSBlcnJvcnMgd2hlbiB1c2luZyBhbiBhcnJheSBidWZmZXIgdG8gaW5pdGlhbGl6ZSBhIHR5cGVkIGFycmF5XG4gIC8vIHdoZXJlIHRoZSBhcnJheSBidWZmZXIncyBgYnl0ZUxlbmd0aGAgaXMgbm90IGEgbXVsdGlwbGUgb2YgdGhlIHR5cGVkXG4gIC8vIGFycmF5J3MgYEJZVEVTX1BFUl9FTEVNRU5UYC5cbiAgdHJ5IHtcbiAgICB2YXIgZnVuYyA9IGlzTmF0aXZlKGZ1bmMgPSBnbG9iYWwuRmxvYXQ2NEFycmF5KSAmJiBmdW5jLFxuICAgICAgICByZXN1bHQgPSBuZXcgZnVuYyhuZXcgQXJyYXlCdWZmZXIoMTApLCAwLCAxKSAmJiBmdW5jO1xuICB9IGNhdGNoKGUpIHt9XG4gIHJldHVybiByZXN1bHQ7XG59KCkpO1xuXG4vKiogVXNlZCBhcyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIGVhY2ggYEZsb2F0NjRBcnJheWAgZWxlbWVudC4gKi9cbnZhciBGTE9BVDY0X0JZVEVTX1BFUl9FTEVNRU5UID0gRmxvYXQ2NEFycmF5ID8gRmxvYXQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UIDogMDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGdpdmVuIGFycmF5IGJ1ZmZlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gYnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGJ1ZmZlckNsb25lKGJ1ZmZlcikge1xuICByZXR1cm4gYnVmZmVyU2xpY2UuY2FsbChidWZmZXIsIDApO1xufVxuaWYgKCFidWZmZXJTbGljZSkge1xuICAvLyBQaGFudG9tSlMgaGFzIGBBcnJheUJ1ZmZlcmAgYW5kIGBVaW50OEFycmF5YCBidXQgbm90IGBGbG9hdDY0QXJyYXlgLlxuICBidWZmZXJDbG9uZSA9ICEoQXJyYXlCdWZmZXIgJiYgVWludDhBcnJheSkgPyBjb25zdGFudChudWxsKSA6IGZ1bmN0aW9uKGJ1ZmZlcikge1xuICAgIHZhciBieXRlTGVuZ3RoID0gYnVmZmVyLmJ5dGVMZW5ndGgsXG4gICAgICAgIGZsb2F0TGVuZ3RoID0gRmxvYXQ2NEFycmF5ID8gZmxvb3IoYnl0ZUxlbmd0aCAvIEZMT0FUNjRfQllURVNfUEVSX0VMRU1FTlQpIDogMCxcbiAgICAgICAgb2Zmc2V0ID0gZmxvYXRMZW5ndGggKiBGTE9BVDY0X0JZVEVTX1BFUl9FTEVNRU5ULFxuICAgICAgICByZXN1bHQgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZUxlbmd0aCk7XG5cbiAgICBpZiAoZmxvYXRMZW5ndGgpIHtcbiAgICAgIHZhciB2aWV3ID0gbmV3IEZsb2F0NjRBcnJheShyZXN1bHQsIDAsIGZsb2F0TGVuZ3RoKTtcbiAgICAgIHZpZXcuc2V0KG5ldyBGbG9hdDY0QXJyYXkoYnVmZmVyLCAwLCBmbG9hdExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoYnl0ZUxlbmd0aCAhPSBvZmZzZXQpIHtcbiAgICAgIHZpZXcgPSBuZXcgVWludDhBcnJheShyZXN1bHQsIG9mZnNldCk7XG4gICAgICB2aWV3LnNldChuZXcgVWludDhBcnJheShidWZmZXIsIG9mZnNldCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJ1ZmZlckNsb25lO1xuIiwidmFyIGdldExlbmd0aCA9IHJlcXVpcmUoJy4vZ2V0TGVuZ3RoJyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyksXG4gICAgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGBiYXNlRWFjaGAgb3IgYGJhc2VFYWNoUmlnaHRgIGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUVhY2goZWFjaEZ1bmMsIGZyb21SaWdodCkge1xuICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbiA/IGdldExlbmd0aChjb2xsZWN0aW9uKSA6IDA7XG4gICAgaWYgKCFpc0xlbmd0aChsZW5ndGgpKSB7XG4gICAgICByZXR1cm4gZWFjaEZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xuICAgIH1cbiAgICB2YXIgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMSxcbiAgICAgICAgaXRlcmFibGUgPSB0b09iamVjdChjb2xsZWN0aW9uKTtcblxuICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVbaW5kZXhdLCBpbmRleCwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQmFzZUVhY2g7XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGJhc2UgZnVuY3Rpb24gZm9yIGBfLmZvckluYCBvciBgXy5mb3JJblJpZ2h0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVCYXNlRm9yKGZyb21SaWdodCkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSwga2V5c0Z1bmMpIHtcbiAgICB2YXIgaXRlcmFibGUgPSB0b09iamVjdChvYmplY3QpLFxuICAgICAgICBwcm9wcyA9IGtleXNGdW5jKG9iamVjdCksXG4gICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMTtcblxuICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVCYXNlRm9yO1xuIiwidmFyIGJpbmRDYWxsYmFjayA9IHJlcXVpcmUoJy4vYmluZENhbGxiYWNrJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8uZm9yRWFjaGAgb3IgYF8uZm9yRWFjaFJpZ2h0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXJyYXlGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gYXJyYXkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGVhY2ggZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUZvckVhY2goYXJyYXlGdW5jLCBlYWNoRnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiBpdGVyYXRlZSA9PSAnZnVuY3Rpb24nICYmIHRoaXNBcmcgPT09IHVuZGVmaW5lZCAmJiBpc0FycmF5KGNvbGxlY3Rpb24pKVxuICAgICAgPyBhcnJheUZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpXG4gICAgICA6IGVhY2hGdW5jKGNvbGxlY3Rpb24sIGJpbmRDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgMykpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUZvckVhY2g7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgYXJyYXlzIHdpdGggc3VwcG9ydCBmb3JcbiAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0FycmF5fSBvdGhlciBUaGUgb3RoZXIgYXJyYXkgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyBhcnJheXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0xvb3NlXSBTcGVjaWZ5IHBlcmZvcm1pbmcgcGFydGlhbCBjb21wYXJpc29ucy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0FdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQl0gVHJhY2tzIHRyYXZlcnNlZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFycmF5cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbEFycmF5cyhhcnJheSwgb3RoZXIsIGVxdWFsRnVuYywgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBhcnJMZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICBvdGhMZW5ndGggPSBvdGhlci5sZW5ndGgsXG4gICAgICByZXN1bHQgPSB0cnVlO1xuXG4gIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNMb29zZSAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIERlZXAgY29tcGFyZSB0aGUgY29udGVudHMsIGlnbm9yaW5nIG5vbi1udW1lcmljIHByb3BlcnRpZXMuXG4gIHdoaWxlIChyZXN1bHQgJiYgKytpbmRleCA8IGFyckxlbmd0aCkge1xuICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG5cbiAgICByZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgIHJlc3VsdCA9IGlzTG9vc2VcbiAgICAgICAgPyBjdXN0b21pemVyKG90aFZhbHVlLCBhcnJWYWx1ZSwgaW5kZXgpXG4gICAgICAgIDogY3VzdG9taXplcihhcnJWYWx1ZSwgb3RoVmFsdWUsIGluZGV4KTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgaWYgKGlzTG9vc2UpIHtcbiAgICAgICAgdmFyIG90aEluZGV4ID0gb3RoTGVuZ3RoO1xuICAgICAgICB3aGlsZSAob3RoSW5kZXgtLSkge1xuICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJbb3RoSW5kZXhdO1xuICAgICAgICAgIHJlc3VsdCA9IChhcnJWYWx1ZSAmJiBhcnJWYWx1ZSA9PT0gb3RoVmFsdWUpIHx8IGVxdWFsRnVuYyhhcnJWYWx1ZSwgb3RoVmFsdWUsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IChhcnJWYWx1ZSAmJiBhcnJWYWx1ZSA9PT0gb3RoVmFsdWUpIHx8IGVxdWFsRnVuYyhhcnJWYWx1ZSwgb3RoVmFsdWUsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuICEhcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsQXJyYXlzO1xuIiwiLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBjb21wYXJpbmcgb2JqZWN0cyBvZlxuICogdGhlIHNhbWUgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNvbXBhcmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHZhbHVlIFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3RzIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCB0YWcpIHtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGJvb2xUYWc6XG4gICAgY2FzZSBkYXRlVGFnOlxuICAgICAgLy8gQ29lcmNlIGRhdGVzIGFuZCBib29sZWFucyB0byBudW1iZXJzLCBkYXRlcyB0byBtaWxsaXNlY29uZHMgYW5kIGJvb2xlYW5zXG4gICAgICAvLyB0byBgMWAgb3IgYDBgIHRyZWF0aW5nIGludmFsaWQgZGF0ZXMgY29lcmNlZCB0byBgTmFOYCBhcyBub3QgZXF1YWwuXG4gICAgICByZXR1cm4gK29iamVjdCA9PSArb3RoZXI7XG5cbiAgICBjYXNlIGVycm9yVGFnOlxuICAgICAgcmV0dXJuIG9iamVjdC5uYW1lID09IG90aGVyLm5hbWUgJiYgb2JqZWN0Lm1lc3NhZ2UgPT0gb3RoZXIubWVzc2FnZTtcblxuICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgICAgLy8gVHJlYXQgYE5hTmAgdnMuIGBOYU5gIGFzIGVxdWFsLlxuICAgICAgcmV0dXJuIChvYmplY3QgIT0gK29iamVjdClcbiAgICAgICAgPyBvdGhlciAhPSArb3RoZXJcbiAgICAgICAgOiBvYmplY3QgPT0gK290aGVyO1xuXG4gICAgY2FzZSByZWdleHBUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAvLyBDb2VyY2UgcmVnZXhlcyB0byBzdHJpbmdzIGFuZCB0cmVhdCBzdHJpbmdzIHByaW1pdGl2ZXMgYW5kIHN0cmluZ1xuICAgICAgLy8gb2JqZWN0cyBhcyBlcXVhbC4gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjEwLjYuNCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgcmV0dXJuIG9iamVjdCA9PSAob3RoZXIgKyAnJyk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsQnlUYWc7XG4iLCJ2YXIga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyk7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3Igb2JqZWN0cyB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyB2YWx1ZXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0xvb3NlXSBTcGVjaWZ5IHBlcmZvcm1pbmcgcGFydGlhbCBjb21wYXJpc29ucy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0FdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQl0gVHJhY2tzIHRyYXZlcnNlZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGVxdWFsRnVuYywgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpIHtcbiAgdmFyIG9ialByb3BzID0ga2V5cyhvYmplY3QpLFxuICAgICAgb2JqTGVuZ3RoID0gb2JqUHJvcHMubGVuZ3RoLFxuICAgICAgb3RoUHJvcHMgPSBrZXlzKG90aGVyKSxcbiAgICAgIG90aExlbmd0aCA9IG90aFByb3BzLmxlbmd0aDtcblxuICBpZiAob2JqTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhaXNMb29zZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgc2tpcEN0b3IgPSBpc0xvb3NlLFxuICAgICAgaW5kZXggPSAtMTtcblxuICB3aGlsZSAoKytpbmRleCA8IG9iakxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF0sXG4gICAgICAgIHJlc3VsdCA9IGlzTG9vc2UgPyBrZXkgaW4gb3RoZXIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBrZXkpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltrZXldO1xuXG4gICAgICByZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICByZXN1bHQgPSBpc0xvb3NlXG4gICAgICAgICAgPyBjdXN0b21pemVyKG90aFZhbHVlLCBvYmpWYWx1ZSwga2V5KVxuICAgICAgICAgIDogY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUsIGtleSk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIHJlc3VsdCA9IChvYmpWYWx1ZSAmJiBvYmpWYWx1ZSA9PT0gb3RoVmFsdWUpIHx8IGVxdWFsRnVuYyhvYmpWYWx1ZSwgb3RoVmFsdWUsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc2tpcEN0b3IgfHwgKHNraXBDdG9yID0ga2V5ID09ICdjb25zdHJ1Y3RvcicpO1xuICB9XG4gIGlmICghc2tpcEN0b3IpIHtcbiAgICB2YXIgb2JqQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcixcbiAgICAgICAgb3RoQ3RvciA9IG90aGVyLmNvbnN0cnVjdG9yO1xuXG4gICAgLy8gTm9uIGBPYmplY3RgIG9iamVjdCBpbnN0YW5jZXMgd2l0aCBkaWZmZXJlbnQgY29uc3RydWN0b3JzIGFyZSBub3QgZXF1YWwuXG4gICAgaWYgKG9iakN0b3IgIT0gb3RoQ3RvciAmJlxuICAgICAgICAoJ2NvbnN0cnVjdG9yJyBpbiBvYmplY3QgJiYgJ2NvbnN0cnVjdG9yJyBpbiBvdGhlcikgJiZcbiAgICAgICAgISh0eXBlb2Ygb2JqQ3RvciA9PSAnZnVuY3Rpb24nICYmIG9iakN0b3IgaW5zdGFuY2VvZiBvYmpDdG9yICYmXG4gICAgICAgICAgdHlwZW9mIG90aEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvdGhDdG9yIGluc3RhbmNlb2Ygb3RoQ3RvcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXF1YWxPYmplY3RzO1xuIiwidmFyIGJhc2VQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vYmFzZVByb3BlcnR5Jyk7XG5cbi8qKlxuICogR2V0cyB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSB2YWx1ZSBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGF2b2lkIGEgW0pJVCBidWddKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3OTIpXG4gKiB0aGF0IGFmZmVjdHMgU2FmYXJpIG9uIGF0IGxlYXN0IGlPUyA4LjEtOC4zIEFSTTY0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgXCJsZW5ndGhcIiB2YWx1ZS5cbiAqL1xudmFyIGdldExlbmd0aCA9IGJhc2VQcm9wZXJ0eSgnbGVuZ3RoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TGVuZ3RoO1xuIiwidmFyIGNvbnN0YW50ID0gcmVxdWlyZSgnLi4vdXRpbGl0eS9jb25zdGFudCcpLFxuICAgIGlzTmF0aXZlID0gcmVxdWlyZSgnLi4vbGFuZy9pc05hdGl2ZScpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGlzTmF0aXZlKGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpICYmIGdldE93blByb3BlcnR5U3ltYm9scztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9scyA9ICFnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPyBjb25zdGFudChbXSkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgcmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9scyh0b09iamVjdChvYmplY3QpKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0U3ltYm9scztcbiIsIi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYE5hTmAgaXMgZm91bmQgaW4gYGFycmF5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCBgTmFOYCwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBpbmRleE9mTmFOKGFycmF5LCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgaW5kZXggPSBmcm9tSW5kZXggKyAoZnJvbVJpZ2h0ID8gMCA6IC0xKTtcblxuICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgIHZhciBvdGhlciA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAob3RoZXIgIT09IG90aGVyKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbmRleE9mTmFOO1xuIiwiLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gYXJyYXkgY2xvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZUFycmF5KGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBuZXcgYXJyYXkuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICAvLyBBZGQgYXJyYXkgcHJvcGVydGllcyBhc3NpZ25lZCBieSBgUmVnRXhwI2V4ZWNgLlxuICBpZiAobGVuZ3RoICYmIHR5cGVvZiBhcnJheVswXSA9PSAnc3RyaW5nJyAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGFycmF5LCAnaW5kZXgnKSkge1xuICAgIHJlc3VsdC5pbmRleCA9IGFycmF5LmluZGV4O1xuICAgIHJlc3VsdC5pbnB1dCA9IGFycmF5LmlucHV0O1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lQXJyYXk7XG4iLCJ2YXIgYnVmZmVyQ2xvbmUgPSByZXF1aXJlKCcuL2J1ZmZlckNsb25lJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4vKiogVXNlZCB0byBsb29rdXAgYSB0eXBlIGFycmF5IGNvbnN0cnVjdG9ycyBieSBgdG9TdHJpbmdUYWdgLiAqL1xudmFyIGN0b3JCeVRhZyA9IHt9O1xuY3RvckJ5VGFnW2Zsb2F0MzJUYWddID0gZ2xvYmFsLkZsb2F0MzJBcnJheTtcbmN0b3JCeVRhZ1tmbG9hdDY0VGFnXSA9IGdsb2JhbC5GbG9hdDY0QXJyYXk7XG5jdG9yQnlUYWdbaW50OFRhZ10gPSBnbG9iYWwuSW50OEFycmF5O1xuY3RvckJ5VGFnW2ludDE2VGFnXSA9IGdsb2JhbC5JbnQxNkFycmF5O1xuY3RvckJ5VGFnW2ludDMyVGFnXSA9IGdsb2JhbC5JbnQzMkFycmF5O1xuY3RvckJ5VGFnW3VpbnQ4VGFnXSA9IGdsb2JhbC5VaW50OEFycmF5O1xuY3RvckJ5VGFnW3VpbnQ4Q2xhbXBlZFRhZ10gPSBnbG9iYWwuVWludDhDbGFtcGVkQXJyYXk7XG5jdG9yQnlUYWdbdWludDE2VGFnXSA9IGdsb2JhbC5VaW50MTZBcnJheTtcbmN0b3JCeVRhZ1t1aW50MzJUYWddID0gZ2xvYmFsLlVpbnQzMkFycmF5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZSBiYXNlZCBvbiBpdHMgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNsb25pbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGJ1ZmZlckNsb25lKG9iamVjdCk7XG5cbiAgICBjYXNlIGJvb2xUYWc6XG4gICAgY2FzZSBkYXRlVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yKCtvYmplY3QpO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICAvLyBTYWZhcmkgNSBtb2JpbGUgaW5jb3JyZWN0bHkgaGFzIGBPYmplY3RgIGFzIHRoZSBjb25zdHJ1Y3RvciBvZiB0eXBlZCBhcnJheXMuXG4gICAgICBpZiAoQ3RvciBpbnN0YW5jZW9mIEN0b3IpIHtcbiAgICAgICAgQ3RvciA9IGN0b3JCeVRhZ1t0YWddO1xuICAgICAgfVxuICAgICAgdmFyIGJ1ZmZlciA9IG9iamVjdC5idWZmZXI7XG4gICAgICByZXR1cm4gbmV3IEN0b3IoaXNEZWVwID8gYnVmZmVyQ2xvbmUoYnVmZmVyKSA6IGJ1ZmZlciwgb2JqZWN0LmJ5dGVPZmZzZXQsIG9iamVjdC5sZW5ndGgpO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBDdG9yKG9iamVjdC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhvYmplY3QpKTtcbiAgICAgIHJlc3VsdC5sYXN0SW5kZXggPSBvYmplY3QubGFzdEluZGV4O1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lQnlUYWc7XG4iLCIvKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZU9iamVjdChvYmplY3QpIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIGlmICghKHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IpKSB7XG4gICAgQ3RvciA9IE9iamVjdDtcbiAgfVxuICByZXR1cm4gbmV3IEN0b3I7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lT2JqZWN0O1xuIiwidmFyIGdldExlbmd0aCA9IHJlcXVpcmUoJy4vZ2V0TGVuZ3RoJyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKGdldExlbmd0aCh2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXlMaWtlO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0IGluIElFIDwgOS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKi9cbnZhciBpc0hvc3RPYmplY3QgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgT2JqZWN0KHsgJ3RvU3RyaW5nJzogMCB9ICsgJycpO1xuICB9IGNhdGNoKGUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAvLyBJRSA8IDkgcHJlc2VudHMgbWFueSBob3N0IG9iamVjdHMgYXMgYE9iamVjdGAgb2JqZWN0cyB0aGF0IGNhbiBjb2VyY2VcbiAgICAvLyB0byBzdHJpbmdzIGRlc3BpdGUgaGF2aW5nIGltcHJvcGVybHkgZGVmaW5lZCBgdG9TdHJpbmdgIG1ldGhvZHMuXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nICYmIHR5cGVvZiAodmFsdWUgKyAnJykgPT0gJ3N0cmluZyc7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSG9zdE9iamVjdDtcbiIsIi8qKlxuICogVXNlZCBhcyB0aGUgW21heGltdW0gbGVuZ3RoXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtbnVtYmVyLm1heF9zYWZlX2ludGVnZXIpXG4gKiBvZiBhbiBhcnJheS1saWtlIHZhbHVlLlxuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IE1hdGgucG93KDIsIDUzKSAtIDE7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4gIHZhbHVlID0gK3ZhbHVlO1xuICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG4gIHJldHVybiB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSW5kZXg7XG4iLCJ2YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVJc0RlZXBQcm9wID0gL1xcLnxcXFsoPzpbXltcXF1dKnwoW1wiJ10pKD86KD8hXFwxKVteXFxuXFxcXF18XFxcXC4pKj9cXDEpXFxdLyxcbiAgICByZUlzUGxhaW5Qcm9wID0gL15cXHcqJC87XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lIGFuZCBub3QgYSBwcm9wZXJ0eSBwYXRoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXkodmFsdWUsIG9iamVjdCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgaWYgKCh0eXBlID09ICdzdHJpbmcnICYmIHJlSXNQbGFpblByb3AudGVzdCh2YWx1ZSkpIHx8IHR5cGUgPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICFyZUlzRGVlcFByb3AudGVzdCh2YWx1ZSk7XG4gIHJldHVybiByZXN1bHQgfHwgKG9iamVjdCAhPSBudWxsICYmIHZhbHVlIGluIHRvT2JqZWN0KG9iamVjdCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzS2V5O1xuIiwiLyoqXG4gKiBVc2VkIGFzIHRoZSBbbWF4aW11bSBsZW5ndGhdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1udW1iZXIubWF4X3NhZmVfaW50ZWdlcilcbiAqIG9mIGFuIGFycmF5LWxpa2UgdmFsdWUuXG4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gTWF0aC5wb3coMiwgNTMpIC0gMTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIGlzIGJhc2VkIG9uIFtgVG9MZW5ndGhgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzTGVuZ3RoO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0TGlrZTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSBmb3Igc3RyaWN0IGVxdWFsaXR5IGNvbXBhcmlzb25zLCBpLmUuIGA9PT1gLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlmIHN1aXRhYmxlIGZvciBzdHJpY3RcbiAqICBlcXVhbGl0eSBjb21wYXJpc29ucywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSAmJiAhaXNPYmplY3QodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzU3RyaWN0Q29tcGFyYWJsZTtcbiIsInZhciBiYXNlRm9ySW4gPSByZXF1aXJlKCcuL2Jhc2VGb3JJbicpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FyZ3VtZW50cycpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4vaXNIb3N0T2JqZWN0JyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBBIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzUGxhaW5PYmplY3RgIHdoaWNoIGNoZWNrcyBpZiBgdmFsdWVgXG4gKiBpcyBhbiBvYmplY3QgY3JlYXRlZCBieSB0aGUgYE9iamVjdGAgY29uc3RydWN0b3Igb3IgaGFzIGEgYFtbUHJvdG90eXBlXV1gXG4gKiBvZiBgbnVsbGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc2hpbUlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgdmFyIEN0b3I7XG5cbiAgLy8gRXhpdCBlYXJseSBmb3Igbm9uIGBPYmplY3RgIG9iamVjdHMuXG4gIGlmICghKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gb2JqZWN0VGFnICYmICFpc0hvc3RPYmplY3QodmFsdWUpKSB8fFxuICAgICAgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY29uc3RydWN0b3InKSAmJlxuICAgICAgICAoQ3RvciA9IHZhbHVlLmNvbnN0cnVjdG9yLCB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmICEoQ3RvciBpbnN0YW5jZW9mIEN0b3IpKSkgfHxcbiAgICAgICghc3VwcG9ydC5hcmdzVGFnICYmIGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gSUUgPCA5IGl0ZXJhdGVzIGluaGVyaXRlZCBwcm9wZXJ0aWVzIGJlZm9yZSBvd24gcHJvcGVydGllcy4gSWYgdGhlIGZpcnN0XG4gIC8vIGl0ZXJhdGVkIHByb3BlcnR5IGlzIGFuIG9iamVjdCdzIG93biBwcm9wZXJ0eSB0aGVuIHRoZXJlIGFyZSBubyBpbmhlcml0ZWRcbiAgLy8gZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICB2YXIgcmVzdWx0O1xuICBpZiAoc3VwcG9ydC5vd25MYXN0KSB7XG4gICAgYmFzZUZvckluKHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICAgIHJlc3VsdCA9IGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQgIT09IGZhbHNlO1xuICB9XG4gIC8vIEluIG1vc3QgZW52aXJvbm1lbnRzIGFuIG9iamVjdCdzIG93biBwcm9wZXJ0aWVzIGFyZSBpdGVyYXRlZCBiZWZvcmVcbiAgLy8gaXRzIGluaGVyaXRlZCBwcm9wZXJ0aWVzLiBJZiB0aGUgbGFzdCBpdGVyYXRlZCBwcm9wZXJ0eSBpcyBhbiBvYmplY3Qnc1xuICAvLyBvd24gcHJvcGVydHkgdGhlbiB0aGVyZSBhcmUgbm8gaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAgYmFzZUZvckluKHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgcmVzdWx0ID0ga2V5O1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHJlc3VsdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hpbUlzUGxhaW5PYmplY3Q7XG4iLCJ2YXIgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL2lzSW5kZXgnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5c0luJyksXG4gICAgc3VwcG9ydCA9IHJlcXVpcmUoJy4uL3N1cHBvcnQnKTtcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiBgT2JqZWN0LmtleXNgIHdoaWNoIGNyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlXG4gKiBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gc2hpbUtleXMob2JqZWN0KSB7XG4gIHZhciBwcm9wcyA9IGtleXNJbihvYmplY3QpLFxuICAgICAgcHJvcHNMZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICBsZW5ndGggPSBwcm9wc0xlbmd0aCAmJiBvYmplY3QubGVuZ3RoO1xuXG4gIHZhciBhbGxvd0luZGV4ZXMgPSBsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJlxuICAgIChpc0FycmF5KG9iamVjdCkgfHwgKHN1cHBvcnQubm9uRW51bVN0cmluZ3MgJiYgaXNTdHJpbmcob2JqZWN0KSkgfHxcbiAgICAgIChzdXBwb3J0Lm5vbkVudW1BcmdzICYmIGlzQXJndW1lbnRzKG9iamVjdCkpKTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgcHJvcHNMZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgIGlmICgoYWxsb3dJbmRleGVzICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpKSB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaGltS2V5cztcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gb2JqZWN0IGlmIGl0IGlzIG5vdCBvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbHVlKSB7XG4gIGlmIChzdXBwb3J0LnVuaW5kZXhlZENoYXJzICYmIGlzU3RyaW5nKHZhbHVlKSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGgsXG4gICAgICAgIHJlc3VsdCA9IE9iamVjdCh2YWx1ZSk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGlzT2JqZWN0KHZhbHVlKSA/IHZhbHVlIDogT2JqZWN0KHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b09iamVjdDtcbiIsInZhciBiYXNlVG9TdHJpbmcgPSByZXF1aXJlKCcuL2Jhc2VUb1N0cmluZycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJyYXknKTtcblxuLyoqIFVzZWQgdG8gbWF0Y2ggcHJvcGVydHkgbmFtZXMgd2l0aGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlUHJvcE5hbWUgPSAvW14uW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxuXFxcXF18XFxcXC4pKj8pXFwyKVxcXS9nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIHByb3BlcnR5IHBhdGggYXJyYXkgaWYgaXQgaXMgbm90IG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gdG9QYXRoKHZhbHVlKSB7XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGJhc2VUb1N0cmluZyh2YWx1ZSkucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3RyaW5nKSB7XG4gICAgcmVzdWx0LnB1c2gocXVvdGUgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsICckMScpIDogKG51bWJlciB8fCBtYXRjaCkpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1BhdGg7XG4iLCJ2YXIgYmFzZUNsb25lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUNsb25lJyksXG4gICAgYmluZENhbGxiYWNrID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmluZENhbGxiYWNrJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRlZXAgY2xvbmUgb2YgYHZhbHVlYC4gSWYgYGN1c3RvbWl6ZXJgIGlzIHByb3ZpZGVkIGl0IGlzIGludm9rZWRcbiAqIHRvIHByb2R1Y2UgdGhlIGNsb25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgIGNsb25pbmdcbiAqIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYFxuICogYW5kIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnQ7ICh2YWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdF0pLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uIHRoZVxuICogW3N0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGhtXShodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9pbmZyYXN0cnVjdHVyZS5odG1sI2ludGVybmFsLXN0cnVjdHVyZWQtY2xvbmluZy1hbGdvcml0aG0pLlxuICogVGhlIGVudW1lcmFibGUgcHJvcGVydGllcyBvZiBgYXJndW1lbnRzYCBvYmplY3RzIGFuZCBvYmplY3RzIGNyZWF0ZWQgYnlcbiAqIGNvbnN0cnVjdG9ycyBvdGhlciB0aGFuIGBPYmplY3RgIGFyZSBjbG9uZWQgdG8gcGxhaW4gYE9iamVjdGAgb2JqZWN0cy4gQW5cbiAqIGVtcHR5IG9iamVjdCBpcyByZXR1cm5lZCBmb3IgdW5jbG9uZWFibGUgdmFsdWVzIHN1Y2ggYXMgZnVuY3Rpb25zLCBET00gbm9kZXMsXG4gKiBNYXBzLCBTZXRzLCBhbmQgV2Vha01hcHMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBkZWVwIGNsb25lLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZyB2YWx1ZXMuXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGN1c3RvbWl6ZXJgLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgdXNlcnMgPSBbXG4gKiAgIHsgJ3VzZXInOiAnYmFybmV5JyB9LFxuICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAqIF07XG4gKlxuICogdmFyIGRlZXAgPSBfLmNsb25lRGVlcCh1c2Vycyk7XG4gKiBkZWVwWzBdID09PSB1c2Vyc1swXTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogLy8gdXNpbmcgYSBjdXN0b21pemVyIGNhbGxiYWNrXG4gKiB2YXIgZWwgPSBfLmNsb25lRGVlcChkb2N1bWVudC5ib2R5LCBmdW5jdGlvbih2YWx1ZSkge1xuICogICBpZiAoXy5pc0VsZW1lbnQodmFsdWUpKSB7XG4gKiAgICAgcmV0dXJuIHZhbHVlLmNsb25lTm9kZSh0cnVlKTtcbiAqICAgfVxuICogfSk7XG4gKlxuICogZWwgPT09IGRvY3VtZW50LmJvZHlcbiAqIC8vID0+IGZhbHNlXG4gKiBlbC5ub2RlTmFtZVxuICogLy8gPT4gQk9EWVxuICogZWwuY2hpbGROb2Rlcy5sZW5ndGg7XG4gKiAvLyA9PiAyMFxuICovXG5mdW5jdGlvbiBjbG9uZURlZXAodmFsdWUsIGN1c3RvbWl6ZXIsIHRoaXNBcmcpIHtcbiAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgJiYgYmluZENhbGxiYWNrKGN1c3RvbWl6ZXIsIHRoaXNBcmcsIDEpO1xuICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCB0cnVlLCBjdXN0b21pemVyKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZURlZXA7XG4iLCJ2YXIgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0FycmF5TGlrZScpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXSc7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJndW1lbnRzKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBhcmdzVGFnO1xufVxuLy8gRmFsbGJhY2sgZm9yIGVudmlyb25tZW50cyB3aXRob3V0IGEgYHRvU3RyaW5nVGFnYCBmb3IgYGFyZ3VtZW50c2Agb2JqZWN0cy5cbmlmICghc3VwcG9ydC5hcmdzVGFnKSB7XG4gIGlzQXJndW1lbnRzID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSkgJiZcbiAgICAgIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJiAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJndW1lbnRzO1xuIiwidmFyIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNMZW5ndGgnKSxcbiAgICBpc05hdGl2ZSA9IHJlcXVpcmUoJy4vaXNOYXRpdmUnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUlzQXJyYXkgPSBpc05hdGl2ZShuYXRpdmVJc0FycmF5ID0gQXJyYXkuaXNBcnJheSkgJiYgbmF0aXZlSXNBcnJheTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXkoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcnJheSA9IG5hdGl2ZUlzQXJyYXkgfHwgZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBhcnJheVRhZztcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheTtcbiIsInZhciBiYXNlSXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VJc0Z1bmN0aW9uJyksXG4gICAgaXNOYXRpdmUgPSByZXF1aXJlKCcuL2lzTmF0aXZlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIFVpbnQ4QXJyYXkgPSBpc05hdGl2ZShVaW50OEFycmF5ID0gZ2xvYmFsLlVpbnQ4QXJyYXkpICYmIFVpbnQ4QXJyYXk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oXyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0Z1bmN0aW9uID0gIShiYXNlSXNGdW5jdGlvbigveC8pIHx8IChVaW50OEFycmF5ICYmICFiYXNlSXNGdW5jdGlvbihVaW50OEFycmF5KSkpID8gYmFzZUlzRnVuY3Rpb24gOiBmdW5jdGlvbih2YWx1ZSkge1xuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gb2xkZXIgdmVyc2lvbnMgb2YgQ2hyb21lIGFuZCBTYWZhcmkgd2hpY2ggcmV0dXJuICdmdW5jdGlvbicgZm9yIHJlZ2V4ZXNcbiAgLy8gYW5kIFNhZmFyaSA4IGVxdWl2YWxlbnRzIHdoaWNoIHJldHVybiAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXkgY29uc3RydWN0b3JzLlxuICByZXR1cm4gb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gZnVuY1RhZztcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGdW5jdGlvbjtcbiIsInZhciBlc2NhcGVSZWdFeHAgPSByZXF1aXJlKCcuLi9zdHJpbmcvZXNjYXBlUmVnRXhwJyksXG4gICAgaXNIb3N0T2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNIb3N0T2JqZWN0JyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkgPiA1KS4gKi9cbnZhciByZUlzSG9zdEN0b3IgPSAvXlxcW29iamVjdCAuKz9Db25zdHJ1Y3RvclxcXSQvO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xudmFyIGZuVG9TdHJpbmcgPSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZXNjYXBlUmVnRXhwKG9ialRvU3RyaW5nKVxuICAucmVwbGFjZSgvdG9TdHJpbmd8KGZ1bmN0aW9uKS4qPyg/PVxcXFxcXCgpfCBmb3IgLis/KD89XFxcXFxcXSkvZywgJyQxLio/JykgKyAnJCdcbik7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24uXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNOYXRpdmUoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNOYXRpdmUoXyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAob2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gZnVuY1RhZykge1xuICAgIHJldHVybiByZUlzTmF0aXZlLnRlc3QoZm5Ub1N0cmluZy5jYWxsKHZhbHVlKSk7XG4gIH1cbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgKGlzSG9zdE9iamVjdCh2YWx1ZSkgPyByZUlzTmF0aXZlIDogcmVJc0hvc3RDdG9yKS50ZXN0KHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc05hdGl2ZTtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlIFtsYW5ndWFnZSB0eXBlXShodHRwczovL2VzNS5naXRodWIuaW8vI3g4KSBvZiBgT2JqZWN0YC5cbiAqIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoMSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICAvLyBBdm9pZCBhIFY4IEpJVCBidWcgaW4gQ2hyb21lIDE5LTIwLlxuICAvLyBTZWUgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTIyOTEgZm9yIG1vcmUgZGV0YWlscy5cbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB0eXBlID09ICdmdW5jdGlvbicgfHwgKCEhdmFsdWUgJiYgdHlwZSA9PSAnb2JqZWN0Jyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3Q7XG4iLCJ2YXIgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNOYXRpdmUgPSByZXF1aXJlKCcuL2lzTmF0aXZlJyksXG4gICAgc2hpbUlzUGxhaW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9zaGltSXNQbGFpbk9iamVjdCcpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGdldFByb3RvdHlwZU9mID0gaXNOYXRpdmUoZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YpICYmIGdldFByb3RvdHlwZU9mO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCB0aGF0IGlzLCBhbiBvYmplY3QgY3JlYXRlZCBieSB0aGVcbiAqIGBPYmplY3RgIGNvbnN0cnVjdG9yIG9yIG9uZSB3aXRoIGEgYFtbUHJvdG90eXBlXV1gIG9mIGBudWxsYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgYXNzdW1lcyBvYmplY3RzIGNyZWF0ZWQgYnkgdGhlIGBPYmplY3RgIGNvbnN0cnVjdG9yXG4gKiBoYXZlIG5vIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqIH1cbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbnZhciBpc1BsYWluT2JqZWN0ID0gIWdldFByb3RvdHlwZU9mID8gc2hpbUlzUGxhaW5PYmplY3QgOiBmdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoISh2YWx1ZSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBvYmplY3RUYWcpIHx8ICghc3VwcG9ydC5hcmdzVGFnICYmIGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHZhbHVlT2YgPSB2YWx1ZS52YWx1ZU9mLFxuICAgICAgb2JqUHJvdG8gPSBpc05hdGl2ZSh2YWx1ZU9mKSAmJiAob2JqUHJvdG8gPSBnZXRQcm90b3R5cGVPZih2YWx1ZU9mKSkgJiYgZ2V0UHJvdG90eXBlT2Yob2JqUHJvdG8pO1xuXG4gIHJldHVybiBvYmpQcm90b1xuICAgID8gKHZhbHVlID09IG9ialByb3RvIHx8IGdldFByb3RvdHlwZU9mKHZhbHVlKSA9PSBvYmpQcm90bylcbiAgICA6IHNoaW1Jc1BsYWluT2JqZWN0KHZhbHVlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaXNQbGFpbk9iamVjdDtcbiIsInZhciBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTdHJpbmdgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTdHJpbmcoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTdHJpbmcoMSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IChpc09iamVjdExpa2UodmFsdWUpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IHN0cmluZ1RhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTdHJpbmc7XG4iLCJ2YXIgaXNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0xlbmd0aCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIG9mIHR5cGVkIGFycmF5cy4gKi9cbnZhciB0eXBlZEFycmF5VGFncyA9IHt9O1xudHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQ4VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG50eXBlZEFycmF5VGFnc1thcmdzVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2FycmF5VGFnXSA9XG50eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG50eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9XG50eXBlZEFycmF5VGFnc1tmdW5jVGFnXSA9IHR5cGVkQXJyYXlUYWdzW21hcFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc3RyaW5nVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShbXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1R5cGVkQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW29ialRvU3RyaW5nLmNhbGwodmFsdWUpXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1R5cGVkQXJyYXk7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgdW5kZWZpbmVkYCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzVW5kZWZpbmVkKHZvaWQgMCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1VuZGVmaW5lZChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVW5kZWZpbmVkO1xuIiwidmFyIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNBcnJheUxpa2UnKSxcbiAgICBpc05hdGl2ZSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNOYXRpdmUnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKSxcbiAgICBzaGltS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFsL3NoaW1LZXlzJyksXG4gICAgc3VwcG9ydCA9IHJlcXVpcmUoJy4uL3N1cHBvcnQnKTtcblxuLyogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVLZXlzID0gaXNOYXRpdmUobmF0aXZlS2V5cyA9IE9iamVjdC5rZXlzKSAmJiBuYXRpdmVLZXlzO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gKiBbRVMgc3BlY10oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogICB0aGlzLmIgPSAyO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gKlxuICogXy5rZXlzKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICpcbiAqIF8ua2V5cygnaGknKTtcbiAqIC8vID0+IFsnMCcsICcxJ11cbiAqL1xudmFyIGtleXMgPSAhbmF0aXZlS2V5cyA/IHNoaW1LZXlzIDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIHZhciBDdG9yID0gb2JqZWN0ICE9IG51bGwgJiYgb2JqZWN0LmNvbnN0cnVjdG9yO1xuICBpZiAoKHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3Rvci5wcm90b3R5cGUgPT09IG9iamVjdCkgfHxcbiAgICAgICh0eXBlb2Ygb2JqZWN0ID09ICdmdW5jdGlvbicgPyBzdXBwb3J0LmVudW1Qcm90b3R5cGVzIDogaXNBcnJheUxpa2Uob2JqZWN0KSkpIHtcbiAgICByZXR1cm4gc2hpbUtleXMob2JqZWN0KTtcbiAgfVxuICByZXR1cm4gaXNPYmplY3Qob2JqZWN0KSA/IG5hdGl2ZUtleXMob2JqZWN0KSA6IFtdO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBrZXlzO1xuIiwidmFyIGFycmF5RWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2FycmF5RWFjaCcpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJyYXknKSxcbiAgICBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi4vbGFuZy9pc0Z1bmN0aW9uJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzSW5kZXgnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzTGVuZ3RoJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9sYW5nL2lzT2JqZWN0JyksXG4gICAgaXNTdHJpbmcgPSByZXF1aXJlKCcuLi9sYW5nL2lzU3RyaW5nJyksXG4gICAgc3VwcG9ydCA9IHJlcXVpcmUoJy4uL3N1cHBvcnQnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nO1xuXG4vKiogVXNlZCB0byBmaXggdGhlIEpTY3JpcHQgYFtbRG9udEVudW1dXWAgYnVnLiAqL1xudmFyIHNoYWRvd1Byb3BzID0gW1xuICAnY29uc3RydWN0b3InLCAnaGFzT3duUHJvcGVydHknLCAnaXNQcm90b3R5cGVPZicsICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsXG4gICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmluZycsICd2YWx1ZU9mJ1xuXTtcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBlcnJvclByb3RvID0gRXJyb3IucHJvdG90eXBlLFxuICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZSxcbiAgICBzdHJpbmdQcm90byA9IFN0cmluZy5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBhdm9pZCBpdGVyYXRpbmcgb3ZlciBub24tZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGluIElFIDwgOS4gKi9cbnZhciBub25FbnVtUHJvcHMgPSB7fTtcbm5vbkVudW1Qcm9wc1thcnJheVRhZ10gPSBub25FbnVtUHJvcHNbZGF0ZVRhZ10gPSBub25FbnVtUHJvcHNbbnVtYmVyVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvTG9jYWxlU3RyaW5nJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSwgJ3ZhbHVlT2YnOiB0cnVlIH07XG5ub25FbnVtUHJvcHNbYm9vbFRhZ10gPSBub25FbnVtUHJvcHNbc3RyaW5nVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSwgJ3ZhbHVlT2YnOiB0cnVlIH07XG5ub25FbnVtUHJvcHNbZXJyb3JUYWddID0gbm9uRW51bVByb3BzW2Z1bmNUYWddID0gbm9uRW51bVByb3BzW3JlZ2V4cFRhZ10gPSB7ICdjb25zdHJ1Y3Rvcic6IHRydWUsICd0b1N0cmluZyc6IHRydWUgfTtcbm5vbkVudW1Qcm9wc1tvYmplY3RUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlIH07XG5cbmFycmF5RWFjaChzaGFkb3dQcm9wcywgZnVuY3Rpb24oa2V5KSB7XG4gIGZvciAodmFyIHRhZyBpbiBub25FbnVtUHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChub25FbnVtUHJvcHMsIHRhZykpIHtcbiAgICAgIHZhciBwcm9wcyA9IG5vbkVudW1Qcm9wc1t0YWddO1xuICAgICAgcHJvcHNba2V5XSA9IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgfVxuICB2YXIgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDtcblxuICBsZW5ndGggPSAobGVuZ3RoICYmIGlzTGVuZ3RoKGxlbmd0aCkgJiZcbiAgICAoaXNBcnJheShvYmplY3QpIHx8IChzdXBwb3J0Lm5vbkVudW1TdHJpbmdzICYmIGlzU3RyaW5nKG9iamVjdCkpIHx8XG4gICAgICAoc3VwcG9ydC5ub25FbnVtQXJncyAmJiBpc0FyZ3VtZW50cyhvYmplY3QpKSkgJiYgbGVuZ3RoKSB8fCAwO1xuXG4gIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yLFxuICAgICAgaW5kZXggPSAtMSxcbiAgICAgIHByb3RvID0gKGlzRnVuY3Rpb24oQ3RvcikgJiYgQ3Rvci5wcm90b3R5cGUpIHx8IG9iamVjdFByb3RvLFxuICAgICAgaXNQcm90byA9IHByb3RvID09PSBvYmplY3QsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBsZW5ndGggPiAwLFxuICAgICAgc2tpcEVycm9yUHJvcHMgPSBzdXBwb3J0LmVudW1FcnJvclByb3BzICYmIChvYmplY3QgPT09IGVycm9yUHJvdG8gfHwgb2JqZWN0IGluc3RhbmNlb2YgRXJyb3IpLFxuICAgICAgc2tpcFByb3RvID0gc3VwcG9ydC5lbnVtUHJvdG90eXBlcyAmJiBpc0Z1bmN0aW9uKG9iamVjdCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gKGluZGV4ICsgJycpO1xuICB9XG4gIC8vIGxvZGFzaCBza2lwcyB0aGUgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSB3aGVuIGl0IGluZmVycyBpdCBpcyBpdGVyYXRpbmdcbiAgLy8gb3ZlciBhIGBwcm90b3R5cGVgIG9iamVjdCBiZWNhdXNlIElFIDwgOSBjYW4ndCBzZXQgdGhlIGBbW0VudW1lcmFibGVdXWBcbiAgLy8gYXR0cmlidXRlIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5IGFuZCB0aGUgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSBvZiBhXG4gIC8vIHByb3RvdHlwZSBkZWZhdWx0cyB0byBub24tZW51bWVyYWJsZS5cbiAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgIGlmICghKHNraXBQcm90byAmJiBrZXkgPT0gJ3Byb3RvdHlwZScpICYmXG4gICAgICAgICEoc2tpcEVycm9yUHJvcHMgJiYgKGtleSA9PSAnbWVzc2FnZScgfHwga2V5ID09ICduYW1lJykpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgaXNJbmRleChrZXksIGxlbmd0aCkpICYmXG4gICAgICAgICEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIGlmIChzdXBwb3J0Lm5vbkVudW1TaGFkb3dzICYmIG9iamVjdCAhPT0gb2JqZWN0UHJvdG8pIHtcbiAgICB2YXIgdGFnID0gb2JqZWN0ID09PSBzdHJpbmdQcm90byA/IHN0cmluZ1RhZyA6IChvYmplY3QgPT09IGVycm9yUHJvdG8gPyBlcnJvclRhZyA6IG9ialRvU3RyaW5nLmNhbGwob2JqZWN0KSksXG4gICAgICAgIG5vbkVudW1zID0gbm9uRW51bVByb3BzW3RhZ10gfHwgbm9uRW51bVByb3BzW29iamVjdFRhZ107XG5cbiAgICBpZiAodGFnID09IG9iamVjdFRhZykge1xuICAgICAgcHJvdG8gPSBvYmplY3RQcm90bztcbiAgICB9XG4gICAgbGVuZ3RoID0gc2hhZG93UHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAga2V5ID0gc2hhZG93UHJvcHNbbGVuZ3RoXTtcbiAgICAgIHZhciBub25FbnVtID0gbm9uRW51bXNba2V5XTtcbiAgICAgIGlmICghKGlzUHJvdG8gJiYgbm9uRW51bSkgJiZcbiAgICAgICAgICAobm9uRW51bSA/IGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpIDogb2JqZWN0W2tleV0gIT09IHByb3RvW2tleV0pKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5c0luO1xuIiwidmFyIGJhc2VUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VUb1N0cmluZycpO1xuXG4vKipcbiAqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgW3NwZWNpYWwgY2hhcmFjdGVyc10oaHR0cDovL3d3dy5yZWd1bGFyLWV4cHJlc3Npb25zLmluZm8vY2hhcmFjdGVycy5odG1sI3NwZWNpYWwpLlxuICogSW4gYWRkaXRpb24gdG8gc3BlY2lhbCBjaGFyYWN0ZXJzIHRoZSBmb3J3YXJkIHNsYXNoIGlzIGVzY2FwZWQgdG8gYWxsb3cgZm9yXG4gKiBlYXNpZXIgYGV2YWxgIHVzZSBhbmQgYEZ1bmN0aW9uYCBjb21waWxhdGlvbi5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhcnMgPSAvWy4qKz9eJHt9KCl8W1xcXVxcL1xcXFxdL2csXG4gICAgcmVIYXNSZWdFeHBDaGFycyA9IFJlZ0V4cChyZVJlZ0V4cENoYXJzLnNvdXJjZSk7XG5cbi8qKlxuICogRXNjYXBlcyB0aGUgYFJlZ0V4cGAgc3BlY2lhbCBjaGFyYWN0ZXJzIFwiXFxcIiwgXCIvXCIsIFwiXlwiLCBcIiRcIiwgXCIuXCIsIFwifFwiLCBcIj9cIixcbiAqIFwiKlwiLCBcIitcIiwgXCIoXCIsIFwiKVwiLCBcIltcIiwgXCJdXCIsIFwie1wiIGFuZCBcIn1cIiBpbiBgc3RyaW5nYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gZXNjYXBlLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZXNjYXBlUmVnRXhwKCdbbG9kYXNoXShodHRwczovL2xvZGFzaC5jb20vKScpO1xuICogLy8gPT4gJ1xcW2xvZGFzaFxcXVxcKGh0dHBzOlxcL1xcL2xvZGFzaFxcLmNvbVxcL1xcKSdcbiAqL1xuZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xuICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNSZWdFeHBDaGFycy50ZXN0KHN0cmluZykpXG4gICAgPyBzdHJpbmcucmVwbGFjZShyZVJlZ0V4cENoYXJzLCAnXFxcXCQmJylcbiAgICA6IHN0cmluZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlc2NhcGVSZWdFeHA7XG4iLCIvKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGUsXG4gICAgZXJyb3JQcm90byA9IEVycm9yLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBET00gc3VwcG9ydC4gKi9cbnZhciBkb2N1bWVudCA9IChkb2N1bWVudCA9IGdsb2JhbC53aW5kb3cpICYmIGRvY3VtZW50LmRvY3VtZW50O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlLFxuICAgIHNwbGljZSA9IGFycmF5UHJvdG8uc3BsaWNlO1xuXG4vKipcbiAqIEFuIG9iamVjdCBlbnZpcm9ubWVudCBmZWF0dXJlIGZsYWdzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAdHlwZSBPYmplY3RcbiAqL1xudmFyIHN1cHBvcnQgPSB7fTtcblxuKGZ1bmN0aW9uKHgpIHtcbiAgdmFyIEN0b3IgPSBmdW5jdGlvbigpIHsgdGhpcy54ID0geDsgfSxcbiAgICAgIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICBvYmplY3QgPSB7ICcwJzogeCwgJ2xlbmd0aCc6IHggfSxcbiAgICAgIHByb3BzID0gW107XG5cbiAgQ3Rvci5wcm90b3R5cGUgPSB7ICd2YWx1ZU9mJzogeCwgJ3knOiB4IH07XG4gIGZvciAodmFyIGtleSBpbiBuZXcgQ3RvcikgeyBwcm9wcy5wdXNoKGtleSk7IH1cblxuICAvKipcbiAgICogRGV0ZWN0IGlmIHRoZSBgdG9TdHJpbmdUYWdgIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgaXMgcmVzb2x2YWJsZVxuICAgKiAoYWxsIGJ1dCBGaXJlZm94IDwgNCwgSUUgPCA5KS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0LmFyZ3NUYWcgPSBvYmpUb1N0cmluZy5jYWxsKGFyZ3MpID09IGFyZ3NUYWc7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgbmFtZWAgb3IgYG1lc3NhZ2VgIHByb3BlcnRpZXMgb2YgYEVycm9yLnByb3RvdHlwZWAgYXJlXG4gICAqIGVudW1lcmFibGUgYnkgZGVmYXVsdCAoSUUgPCA5LCBTYWZhcmkgPCA1LjEpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQuZW51bUVycm9yUHJvcHMgPSBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGVycm9yUHJvdG8sICdtZXNzYWdlJykgfHxcbiAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGVycm9yUHJvdG8sICduYW1lJyk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgcHJvdG90eXBlYCBwcm9wZXJ0aWVzIGFyZSBlbnVtZXJhYmxlIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIEZpcmVmb3ggPCAzLjYsIE9wZXJhID4gOS41MCAtIE9wZXJhIDwgMTEuNjAsIGFuZCBTYWZhcmkgPCA1LjFcbiAgICogKGlmIHRoZSBwcm90b3R5cGUgb3IgYSBwcm9wZXJ0eSBvbiB0aGUgcHJvdG90eXBlIGhhcyBiZWVuIHNldClcbiAgICogaW5jb3JyZWN0bHkgc2V0IHRoZSBgW1tFbnVtZXJhYmxlXV1gIHZhbHVlIG9mIGEgZnVuY3Rpb24ncyBgcHJvdG90eXBlYFxuICAgKiBwcm9wZXJ0eSB0byBgdHJ1ZWAuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5lbnVtUHJvdG90eXBlcyA9IHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoQ3RvciwgJ3Byb3RvdHlwZScpO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgZnVuY3Rpb25zIGNhbiBiZSBkZWNvbXBpbGVkIGJ5IGBGdW5jdGlvbiN0b1N0cmluZ2BcbiAgICogKGFsbCBidXQgRmlyZWZveCBPUyBjZXJ0aWZpZWQgYXBwcywgb2xkZXIgT3BlcmEgbW9iaWxlIGJyb3dzZXJzLCBhbmRcbiAgICogdGhlIFBsYXlTdGF0aW9uIDM7IGZvcmNlZCBgZmFsc2VgIGZvciBXaW5kb3dzIDggYXBwcykuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5mdW5jRGVjb21wID0gL1xcYnRoaXNcXGIvLnRlc3QoZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KTtcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIGBGdW5jdGlvbiNuYW1lYCBpcyBzdXBwb3J0ZWQgKGFsbCBidXQgSUUpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQuZnVuY05hbWVzID0gdHlwZW9mIEZ1bmN0aW9uLm5hbWUgPT0gJ3N0cmluZyc7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiB0aGUgYHRvU3RyaW5nVGFnYCBvZiBET00gbm9kZXMgaXMgcmVzb2x2YWJsZSAoYWxsIGJ1dCBJRSA8IDkpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQubm9kZVRhZyA9IG9ialRvU3RyaW5nLmNhbGwoZG9jdW1lbnQpICE9IG9iamVjdFRhZztcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIHN0cmluZyBpbmRleGVzIGFyZSBub24tZW51bWVyYWJsZSAoSUUgPCA5LCBSaW5nb0pTLCBSaGlubywgTmFyd2hhbCkuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5ub25FbnVtU3RyaW5ncyA9ICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKCd4JywgMCk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBwcm9wZXJ0aWVzIHNoYWRvd2luZyB0aG9zZSBvbiBgT2JqZWN0LnByb3RvdHlwZWAgYXJlIG5vbi1lbnVtZXJhYmxlLlxuICAgKlxuICAgKiBJbiBJRSA8IDkgYW4gb2JqZWN0J3Mgb3duIHByb3BlcnRpZXMsIHNoYWRvd2luZyBub24tZW51bWVyYWJsZSBvbmVzLFxuICAgKiBhcmUgbWFkZSBub24tZW51bWVyYWJsZSBhcyB3ZWxsIChhLmsuYSB0aGUgSlNjcmlwdCBgW1tEb250RW51bV1dYCBidWcpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQubm9uRW51bVNoYWRvd3MgPSAhL3ZhbHVlT2YvLnRlc3QocHJvcHMpO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgb3duIHByb3BlcnRpZXMgYXJlIGl0ZXJhdGVkIGFmdGVyIGluaGVyaXRlZCBwcm9wZXJ0aWVzIChJRSA8IDkpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQub3duTGFzdCA9IHByb3BzWzBdICE9ICd4JztcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIGBBcnJheSNzaGlmdGAgYW5kIGBBcnJheSNzcGxpY2VgIGF1Z21lbnQgYXJyYXktbGlrZSBvYmplY3RzXG4gICAqIGNvcnJlY3RseS5cbiAgICpcbiAgICogRmlyZWZveCA8IDEwLCBjb21wYXRpYmlsaXR5IG1vZGVzIG9mIElFIDgsIGFuZCBJRSA8IDkgaGF2ZSBidWdneSBBcnJheVxuICAgKiBgc2hpZnQoKWAgYW5kIGBzcGxpY2UoKWAgZnVuY3Rpb25zIHRoYXQgZmFpbCB0byByZW1vdmUgdGhlIGxhc3QgZWxlbWVudCxcbiAgICogYHZhbHVlWzBdYCwgb2YgYXJyYXktbGlrZSBvYmplY3RzIGV2ZW4gdGhvdWdoIHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IGlzXG4gICAqIHNldCB0byBgMGAuIFRoZSBgc2hpZnQoKWAgbWV0aG9kIGlzIGJ1Z2d5IGluIGNvbXBhdGliaWxpdHkgbW9kZXMgb2YgSUUgOCxcbiAgICogd2hpbGUgYHNwbGljZSgpYCBpcyBidWdneSByZWdhcmRsZXNzIG9mIG1vZGUgaW4gSUUgPCA5LlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQuc3BsaWNlT2JqZWN0cyA9IChzcGxpY2UuY2FsbChvYmplY3QsIDAsIDEpLCAhb2JqZWN0WzBdKTtcblxuICAvKipcbiAgICogRGV0ZWN0IGxhY2sgb2Ygc3VwcG9ydCBmb3IgYWNjZXNzaW5nIHN0cmluZyBjaGFyYWN0ZXJzIGJ5IGluZGV4LlxuICAgKlxuICAgKiBJRSA8IDggY2FuJ3QgYWNjZXNzIGNoYXJhY3RlcnMgYnkgaW5kZXguIElFIDggY2FuIG9ubHkgYWNjZXNzIGNoYXJhY3RlcnNcbiAgICogYnkgaW5kZXggb24gc3RyaW5nIGxpdGVyYWxzLCBub3Qgc3RyaW5nIG9iamVjdHMuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC51bmluZGV4ZWRDaGFycyA9ICgneCdbMF0gKyBPYmplY3QoJ3gnKVswXSkgIT0gJ3h4JztcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIHRoZSBET00gaXMgc3VwcG9ydGVkLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHRyeSB7XG4gICAgc3VwcG9ydC5kb20gPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkubm9kZVR5cGUgPT09IDExO1xuICB9IGNhdGNoKGUpIHtcbiAgICBzdXBwb3J0LmRvbSA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgYXJndW1lbnRzYCBvYmplY3QgaW5kZXhlcyBhcmUgbm9uLWVudW1lcmFibGUuXG4gICAqXG4gICAqIEluIEZpcmVmb3ggPCA0LCBJRSA8IDksIFBoYW50b21KUywgYW5kIFNhZmFyaSA8IDUuMSBgYXJndW1lbnRzYCBvYmplY3RcbiAgICogaW5kZXhlcyBhcmUgbm9uLWVudW1lcmFibGUuIENocm9tZSA8IDI1IGFuZCBOb2RlLmpzIDwgMC4xMS4wIHRyZWF0XG4gICAqIGBhcmd1bWVudHNgIG9iamVjdCBpbmRleGVzIGFzIG5vbi1lbnVtZXJhYmxlIGFuZCBmYWlsIGBoYXNPd25Qcm9wZXJ0eWBcbiAgICogY2hlY2tzIGZvciBpbmRleGVzIHRoYXQgZXhjZWVkIHRoZSBudW1iZXIgb2YgZnVuY3Rpb24gcGFyYW1ldGVycyBhbmRcbiAgICogd2hvc2UgYXNzb2NpYXRlZCBhcmd1bWVudCB2YWx1ZXMgYXJlIGAwYC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICB0cnkge1xuICAgIHN1cHBvcnQubm9uRW51bUFyZ3MgPSAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChhcmdzLCAxKTtcbiAgfSBjYXRjaChlKSB7XG4gICAgc3VwcG9ydC5ub25FbnVtQXJncyA9IHRydWU7XG4gIH1cbn0oMSwgMCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN1cHBvcnQ7XG4iLCIvKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHZhbHVlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqIHZhciBnZXR0ZXIgPSBfLmNvbnN0YW50KG9iamVjdCk7XG4gKlxuICogZ2V0dGVyKCkgPT09IG9iamVjdDtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb25zdGFudDtcbiIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgcHJvdmlkZWQgdG8gaXQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gKiBAcGFyYW0geyp9IHZhbHVlIEFueSB2YWx1ZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnIH07XG4gKlxuICogXy5pZGVudGl0eShvYmplY3QpID09PSBvYmplY3Q7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpZGVudGl0eTtcbiIsInZhciBiYXNlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlUHJvcGVydHknKSxcbiAgICBiYXNlUHJvcGVydHlEZWVwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZVByb3BlcnR5RGVlcCcpLFxuICAgIGlzS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNLZXknKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgYXQgYHBhdGhgIG9uIGFcbiAqIGdpdmVuIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBbXG4gKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IDIgfSB9IH0sXG4gKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IDEgfSB9IH1cbiAqIF07XG4gKlxuICogXy5tYXAob2JqZWN0cywgXy5wcm9wZXJ0eSgnYS5iLmMnKSk7XG4gKiAvLyA9PiBbMiwgMV1cbiAqXG4gKiBfLnBsdWNrKF8uc29ydEJ5KG9iamVjdHMsIF8ucHJvcGVydHkoWydhJywgJ2InLCAnYyddKSksICdhLmIuYycpO1xuICogLy8gPT4gWzEsIDJdXG4gKi9cbmZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHBhdGgpIDogYmFzZVByb3BlcnR5RGVlcChwYXRoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm9wZXJ0eTtcbiIsIi8qISBOYXRpdmUgUHJvbWlzZSBPbmx5XG4gICAgdjAuNy44LWEgKGMpIEt5bGUgU2ltcHNvblxuICAgIE1JVCBMaWNlbnNlOiBodHRwOi8vZ2V0aWZ5Lm1pdC1saWNlbnNlLm9yZ1xuKi9cbiFmdW5jdGlvbih0LG4sZSl7blt0XT1uW3RdfHxlKCksXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9blt0XTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQmJmRlZmluZShmdW5jdGlvbigpe3JldHVybiBuW3RdfSl9KFwiUHJvbWlzZVwiLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOnRoaXMsZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiB0KHQsbil7bC5hZGQodCxuKSxofHwoaD15KGwuZHJhaW4pKX1mdW5jdGlvbiBuKHQpe3ZhciBuLGU9dHlwZW9mIHQ7cmV0dXJuIG51bGw9PXR8fFwib2JqZWN0XCIhPWUmJlwiZnVuY3Rpb25cIiE9ZXx8KG49dC50aGVuKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246ITF9ZnVuY3Rpb24gZSgpe2Zvcih2YXIgdD0wO3Q8dGhpcy5jaGFpbi5sZW5ndGg7dCsrKW8odGhpcywxPT09dGhpcy5zdGF0ZT90aGlzLmNoYWluW3RdLnN1Y2Nlc3M6dGhpcy5jaGFpblt0XS5mYWlsdXJlLHRoaXMuY2hhaW5bdF0pO3RoaXMuY2hhaW4ubGVuZ3RoPTB9ZnVuY3Rpb24gbyh0LGUsbyl7dmFyIHIsaTt0cnl7ZT09PSExP28ucmVqZWN0KHQubXNnKToocj1lPT09ITA/dC5tc2c6ZS5jYWxsKHZvaWQgMCx0Lm1zZykscj09PW8ucHJvbWlzZT9vLnJlamVjdChUeXBlRXJyb3IoXCJQcm9taXNlLWNoYWluIGN5Y2xlXCIpKTooaT1uKHIpKT9pLmNhbGwocixvLnJlc29sdmUsby5yZWplY3QpOm8ucmVzb2x2ZShyKSl9Y2F0Y2goYyl7by5yZWplY3QoYyl9fWZ1bmN0aW9uIHIobyl7dmFyIGMsdSxhPXRoaXM7aWYoIWEudHJpZ2dlcmVkKXthLnRyaWdnZXJlZD0hMCxhLmRlZiYmKGE9YS5kZWYpO3RyeXsoYz1uKG8pKT8odT1uZXcgZihhKSxjLmNhbGwobyxmdW5jdGlvbigpe3IuYXBwbHkodSxhcmd1bWVudHMpfSxmdW5jdGlvbigpe2kuYXBwbHkodSxhcmd1bWVudHMpfSkpOihhLm1zZz1vLGEuc3RhdGU9MSxhLmNoYWluLmxlbmd0aD4wJiZ0KGUsYSkpfWNhdGNoKHMpe2kuY2FsbCh1fHxuZXcgZihhKSxzKX19fWZ1bmN0aW9uIGkobil7dmFyIG89dGhpcztvLnRyaWdnZXJlZHx8KG8udHJpZ2dlcmVkPSEwLG8uZGVmJiYobz1vLmRlZiksby5tc2c9bixvLnN0YXRlPTIsby5jaGFpbi5sZW5ndGg+MCYmdChlLG8pKX1mdW5jdGlvbiBjKHQsbixlLG8pe2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKSFmdW5jdGlvbihyKXt0LnJlc29sdmUobltyXSkudGhlbihmdW5jdGlvbih0KXtlKHIsdCl9LG8pfShyKX1mdW5jdGlvbiBmKHQpe3RoaXMuZGVmPXQsdGhpcy50cmlnZ2VyZWQ9ITF9ZnVuY3Rpb24gdSh0KXt0aGlzLnByb21pc2U9dCx0aGlzLnN0YXRlPTAsdGhpcy50cmlnZ2VyZWQ9ITEsdGhpcy5jaGFpbj1bXSx0aGlzLm1zZz12b2lkIDB9ZnVuY3Rpb24gYShuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIGZ1bmN0aW9uXCIpO2lmKDAhPT10aGlzLl9fTlBPX18pdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgcHJvbWlzZVwiKTt0aGlzLl9fTlBPX189MTt2YXIgbz1uZXcgdSh0aGlzKTt0aGlzLnRoZW49ZnVuY3Rpb24obixyKXt2YXIgaT17c3VjY2VzczpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246ITAsZmFpbHVyZTpcImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6ITF9O3JldHVybiBpLnByb21pc2U9bmV3IHRoaXMuY29uc3RydWN0b3IoZnVuY3Rpb24odCxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0fHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIGZ1bmN0aW9uXCIpO2kucmVzb2x2ZT10LGkucmVqZWN0PW59KSxvLmNoYWluLnB1c2goaSksMCE9PW8uc3RhdGUmJnQoZSxvKSxpLnByb21pc2V9LHRoaXNbXCJjYXRjaFwiXT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX07dHJ5e24uY2FsbCh2b2lkIDAsZnVuY3Rpb24odCl7ci5jYWxsKG8sdCl9LGZ1bmN0aW9uKHQpe2kuY2FsbChvLHQpfSl9Y2F0Y2goYyl7aS5jYWxsKG8sYyl9fXZhciBzLGgsbCxwPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcseT1cInVuZGVmaW5lZFwiIT10eXBlb2Ygc2V0SW1tZWRpYXRlP2Z1bmN0aW9uKHQpe3JldHVybiBzZXRJbW1lZGlhdGUodCl9OnNldFRpbWVvdXQ7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSxcInhcIix7fSkscz1mdW5jdGlvbih0LG4sZSxvKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbix7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6byE9PSExfSl9fWNhdGNoKGQpe3M9ZnVuY3Rpb24odCxuLGUpe3JldHVybiB0W25dPWUsdH19bD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxuKXt0aGlzLmZuPXQsdGhpcy5zZWxmPW4sdGhpcy5uZXh0PXZvaWQgMH12YXIgbixlLG87cmV0dXJue2FkZDpmdW5jdGlvbihyLGkpe289bmV3IHQocixpKSxlP2UubmV4dD1vOm49byxlPW8sbz12b2lkIDB9LGRyYWluOmZ1bmN0aW9uKCl7dmFyIHQ9bjtmb3Iobj1lPWg9dm9pZCAwO3Q7KXQuZm4uY2FsbCh0LnNlbGYpLHQ9dC5uZXh0fX19KCk7dmFyIGc9cyh7fSxcImNvbnN0cnVjdG9yXCIsYSwhMSk7cmV0dXJuIGEucHJvdG90eXBlPWcscyhnLFwiX19OUE9fX1wiLDAsITEpLHMoYSxcInJlc29sdmVcIixmdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVybiB0JiZcIm9iamVjdFwiPT10eXBlb2YgdCYmMT09PXQuX19OUE9fXz90Om5ldyBuKGZ1bmN0aW9uKG4sZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtuKHQpfSl9KSxzKGEsXCJyZWplY3RcIixmdW5jdGlvbih0KXtyZXR1cm4gbmV3IHRoaXMoZnVuY3Rpb24obixlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBufHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIGZ1bmN0aW9uXCIpO2UodCl9KX0pLHMoYSxcImFsbFwiLGZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiIT1wLmNhbGwodCk/bi5yZWplY3QoVHlwZUVycm9yKFwiTm90IGFuIGFycmF5XCIpKTowPT09dC5sZW5ndGg/bi5yZXNvbHZlKFtdKTpuZXcgbihmdW5jdGlvbihlLG8pe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIG8pdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgZnVuY3Rpb25cIik7dmFyIHI9dC5sZW5ndGgsaT1BcnJheShyKSxmPTA7YyhuLHQsZnVuY3Rpb24odCxuKXtpW3RdPW4sKytmPT09ciYmZShpKX0sbyl9KX0pLHMoYSxcInJhY2VcIixmdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVyblwiW29iamVjdCBBcnJheV1cIiE9cC5jYWxsKHQpP24ucmVqZWN0KFR5cGVFcnJvcihcIk5vdCBhbiBhcnJheVwiKSk6bmV3IG4oZnVuY3Rpb24oZSxvKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBvKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIGZ1bmN0aW9uXCIpO2Mobix0LGZ1bmN0aW9uKHQsbil7ZShuKX0sbyl9KX0pLGF9KTtcbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgSmVyZW15IFdoaXRsb2NrXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBzdXBwb3J0ZWRMb2FkZXJzID0ge1xuICBmaWxlOiByZXF1aXJlKCcuL2xpYi9sb2FkZXJzL2ZpbGUnKSxcbiAgaHR0cDogcmVxdWlyZSgnLi9saWIvbG9hZGVycy9odHRwJyksXG4gIGh0dHBzOiByZXF1aXJlKCcuL2xpYi9sb2FkZXJzL2h0dHAnKVxufTtcbnZhciBkZWZhdWx0TG9hZGVyID0gdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyBzdXBwb3J0ZWRMb2FkZXJzLmZpbGUgOiBzdXBwb3J0ZWRMb2FkZXJzLmh0dHA7XG5cbi8vIExvYWQgcHJvbWlzZXMgcG9seWZpbGwgaWYgbmVjZXNzYXJ5XG5pZiAodHlwZW9mIFByb21pc2UgPT09ICd1bmRlZmluZWQnKSB7XG4gIHJlcXVpcmUoJ25hdGl2ZS1wcm9taXNlLW9ubHknKTtcbn1cblxuLyoqXG4gKiBFcnJvci1maXJzdCBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge2Vycm9yfSBbZXJyXSAtIFRoZSBlcnJvciBpZiB0aGVyZSBpcyBhIHByb2JsZW1cbiAqIEBwYXJhbSB7c3RyaW5nfSBbcmVzdWx0XSAtIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uXG4gKlxuICogQGNhbGxiYWNrIHJlc3VsdENhbGxiYWNrXG4gKi9cblxuLyoqXG4gKiBDYWxsYmFjayB1c2VkIHRvIHByb3ZpZGUgYWNjZXNzIHRvIGFsdGVyaW5nIGEgcmVtb3RlIHJlcXVlc3QgcHJpb3IgdG8gdGhlIHJlcXVlc3QgYmVpbmcgbWFkZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gcmVxIC0gVGhlIFN1cGVyYWdlbnQgcmVxdWVzdCBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiAtIFRoZSBsb2NhdGlvbiBiZWluZyByZXRyaWV2ZWRcbiAqXG4gKiBAY2FsbGJhY2sgcHJlcGFyZVJlcXVlc3RDYWxsYmFja1xuICovXG5cbi8qKlxuICogUmV0dXJucyB0aGUgbG9hZGVyIGZvciB0aGUgZ2l2ZW4gbG9jYXRpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGxvY2F0aW9uIC0gVGhlIGxvY2F0aW9uIHRvIGxvYWRcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgbG9hZGVyIHRvIHVzZVxuICovXG5mdW5jdGlvbiBnZXRMb2FkZXIgKGxvY2F0aW9uKSB7XG4gIHJldHVybiBzdXBwb3J0ZWRMb2FkZXJzW2xvY2F0aW9uLnNwbGl0KCc6JylbMF1dIHx8IGRlZmF1bHRMb2FkZXI7XG59XG5cbi8qKlxuICogTG9hZHMgYSBkb2N1bWVudCBhdCB0aGUgcHJvdmlkZWQgbG9jYXRpb24gYW5kIHJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCByZXByZXNlbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbG9jYXRpb24gLSBUaGUgbG9jYXRpb24gdG8gdGhlIGRvY3VtZW50XG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gVGhlIG9wdGlvbnNcbiAqIEBwYXJhbSB7cmVzdWx0Q2FsbGJhY2t9IGRvbmUgLSBUaGUgcmVzdWx0IGNhbGxiYWNrXG4gKlxuICogQHJldHVybnMge1Byb21pc2V9IEFsd2F5cyByZXR1cm5zIGEgcHJvbWlzZSBldmVuIGlmIHRoZXJlIGlzIGEgY2FsbGJhY2sgcHJvdmlkZWRcbiAqL1xubW9kdWxlLmV4cG9ydHMubG9hZCA9IGZ1bmN0aW9uIChsb2NhdGlvbiwgb3B0aW9ucywgZG9uZSkge1xuICB2YXIgYWxsVGFza3MgPSBQcm9taXNlLnJlc29sdmUoKTtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRvbmUgPSBvcHRpb25zO1xuICAgIG9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBhcmd1bWVudHNcbiAgYWxsVGFza3MgPSBhbGxUYXNrcy50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodHlwZW9mIGxvY2F0aW9uID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbG9jYXRpb24gaXMgcmVxdWlyZWQnKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBsb2NhdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2xvY2F0aW9uIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZG9uZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvbmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gTG9hZCB0aGUgZG9jdW1lbnQgZnJvbSB0aGUgcHJvdmlkZWQgbG9jYXRpb24gYW5kIHByb2Nlc3MgaXRcbiAgYWxsVGFza3MgPSBhbGxUYXNrcy50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGxvYWRlciA9IGdldExvYWRlcihsb2NhdGlvbik7XG5cbiAgICAgIGxvYWRlci5sb2FkKGxvY2F0aW9uLCBvcHRpb25zLCBmdW5jdGlvbiAoZXJyLCBkb2N1bWVudCkge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZShkb2N1bWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBVc2UgdGhlIGNhbGxiYWNrIGlmIHByb3ZpZGVkIGFuZCBpdCBpcyBhIGZ1bmN0aW9uXG4gIGlmICh0eXBlb2YgZG9uZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGFsbFRhc2tzID0gYWxsVGFza3NcbiAgICAgIC50aGVuKGZ1bmN0aW9uIChkb2N1bWVudCkge1xuICAgICAgICBkb25lKHVuZGVmaW5lZCwgZG9jdW1lbnQpO1xuICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBkb25lKGVycik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBhbGxUYXNrcztcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEplcmVteSBXaGl0bG9ja1xuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIExvYWRzIGEgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiAtIFRoZSBmaWxlc3lzdGVtIGxvY2F0aW9uIChJZiByZWxhdGl2ZSwgbG9jYXRpb24gaXMgcmVsYXRpdmUgdG8gcHJvY2Vzcy5jd2QoKSkuXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBsb2FkZXIgb3B0aW9ucyAoVW51c2VkKVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBUaGUgZXJyb3ItZmlyc3QgY2FsbGJhY2tcbiAqL1xubW9kdWxlLmV4cG9ydHMubG9hZCA9IGZ1bmN0aW9uIChsb2NhdGlvbiwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgY2FsbGJhY2sobmV3IFR5cGVFcnJvcignVGhlIFxcJ2ZpbGVcXCcgc2NoZW1lIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXInKSk7XG59O1xuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBKZXJlbXkgV2hpdGxvY2tcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHJlcXVlc3QgPSByZXF1aXJlKCdzdXBlcmFnZW50Jyk7XG5cbnZhciBzdXBwb3J0ZWRIdHRwTWV0aG9kcyA9IFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ3BhdGNoJywgJ3Bvc3QnLCAncHV0J107XG5cbi8qKlxuICogTG9hZHMgYSBmaWxlIGZyb20gYW4gaHR0cCBvciBodHRwcyBVUkwuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGxvY2F0aW9uIC0gVGhlIGRvY3VtZW50IFVSTCAoSWYgcmVsYXRpdmUsIGxvY2F0aW9uIGlzIHJlbGF0aXZlIHRvIHdpbmRvdy5sb2NhdGlvbikuXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBsb2FkZXIgb3B0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm1ldGhvZD1nZXRdIC0gVGhlIEhUVFAgbWV0aG9kIHRvIHVzZSBmb3IgdGhlIHJlcXVlc3RcbiAqIEBwYXJhbSB7cHJlcGFyZVJlcXVlc3RDYWxsYmFja30gW29wdGlvbnMucHJlcGFyZVJlcXVlc3RdIC0gVGhlIGNhbGxiYWNrIHVzZWQgdG8gcHJlcGFyZSBhIHJlcXVlc3RcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gVGhlIGVycm9yLWZpcnN0IGNhbGxiYWNrXG4gKi9cbm1vZHVsZS5leHBvcnRzLmxvYWQgPSBmdW5jdGlvbiAobG9jYXRpb24sIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciByZWFsVXJsID0gbG9jYXRpb24uc3BsaXQoJyMnKVswXTtcbiAgdmFyIHJlYWxNZXRob2QgPSBvcHRpb25zLm1ldGhvZCA/IG9wdGlvbnMubWV0aG9kLnRvTG93ZXJDYXNlKCkgOiAnZ2V0JztcbiAgdmFyIGVycjtcbiAgdmFyIHJlYWxSZXF1ZXN0O1xuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5wcmVwYXJlUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG9wdGlvbnMucHJlcGFyZVJlcXVlc3QgIT09ICdmdW5jdGlvbicpIHtcbiAgICBlcnIgPSBuZXcgVHlwZUVycm9yKCdvcHRpb25zLnByZXBhcmVSZXF1ZXN0IG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zLm1ldGhvZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMubWV0aG9kICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyID0gbmV3IFR5cGVFcnJvcignb3B0aW9ucy5tZXRob2QgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgIH0gZWxzZSBpZiAoc3VwcG9ydGVkSHR0cE1ldGhvZHMuaW5kZXhPZihvcHRpb25zLm1ldGhvZCkgPT09IC0xKSB7XG4gICAgICBlcnIgPSBuZXcgVHlwZUVycm9yKCdvcHRpb25zLm1ldGhvZCBtdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiAnICtcbiAgICAgICAgc3VwcG9ydGVkSHR0cE1ldGhvZHMuc2xpY2UoMCwgc3VwcG9ydGVkSHR0cE1ldGhvZHMubGVuZ3RoIC0gMSkuam9pbignLCAnKSArICcgb3IgJyArXG4gICAgICAgIHN1cHBvcnRlZEh0dHBNZXRob2RzW3N1cHBvcnRlZEh0dHBNZXRob2RzLmxlbmd0aCAtIDFdKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWVycikge1xuICAgIHJlYWxSZXF1ZXN0ID0gcmVxdWVzdFtyZWFsTWV0aG9kID09PSAnZGVsZXRlJyA/ICdkZWwnIDogcmVhbE1ldGhvZF0ocmVhbFVybCk7XG5cbiAgICBpZiAob3B0aW9ucy5wcmVwYXJlUmVxdWVzdCkge1xuICAgICAgb3B0aW9ucy5wcmVwYXJlUmVxdWVzdChyZWFsUmVxdWVzdCk7XG4gICAgfVxuXG4gICAgLy8gYnVmZmVyKCkgaXMgb25seSBhdmFpbGFibGUgaW4gTm9kZS5qc1xuICAgIGlmICh0eXBlb2YgcmVhbFJlcXVlc3QuYnVmZmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZWFsUmVxdWVzdC5idWZmZXIodHJ1ZSk7XG4gICAgfVxuXG4gICAgcmVhbFJlcXVlc3RcbiAgICAgIC5lbmQoZnVuY3Rpb24gKGVycjIsIHJlcykge1xuICAgICAgICBjYWxsYmFjayhlcnIyLCByZXMgPyByZXMudGV4dCA6IHJlcyk7XG4gICAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjayhlcnIpO1xuICB9XG59O1xuIiwiLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICovXG5cbnZhciBFbWl0dGVyID0gcmVxdWlyZSgnZW1pdHRlcicpO1xudmFyIHJlZHVjZSA9IHJlcXVpcmUoJ3JlZHVjZScpO1xuXG4vKipcbiAqIFJvb3QgcmVmZXJlbmNlIGZvciBpZnJhbWVzLlxuICovXG5cbnZhciByb290ID0gJ3VuZGVmaW5lZCcgPT0gdHlwZW9mIHdpbmRvd1xuICA/ICh0aGlzIHx8IHNlbGYpXG4gIDogd2luZG93O1xuXG4vKipcbiAqIE5vb3AuXG4gKi9cblxuZnVuY3Rpb24gbm9vcCgpe307XG5cbi8qKlxuICogQ2hlY2sgaWYgYG9iamAgaXMgYSBob3N0IG9iamVjdCxcbiAqIHdlIGRvbid0IHdhbnQgdG8gc2VyaWFsaXplIHRoZXNlIDopXG4gKlxuICogVE9ETzogZnV0dXJlIHByb29mLCBtb3ZlIHRvIGNvbXBvZW50IGxhbmRcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNIb3N0KG9iaikge1xuICB2YXIgc3RyID0ge30udG9TdHJpbmcuY2FsbChvYmopO1xuXG4gIHN3aXRjaCAoc3RyKSB7XG4gICAgY2FzZSAnW29iamVjdCBGaWxlXSc6XG4gICAgY2FzZSAnW29iamVjdCBCbG9iXSc6XG4gICAgY2FzZSAnW29iamVjdCBGb3JtRGF0YV0nOlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIERldGVybWluZSBYSFIuXG4gKi9cblxucmVxdWVzdC5nZXRYSFIgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChyb290LlhNTEh0dHBSZXF1ZXN0XG4gICAgICAmJiAoIXJvb3QubG9jYXRpb24gfHwgJ2ZpbGU6JyAhPSByb290LmxvY2F0aW9uLnByb3RvY29sXG4gICAgICAgICAgfHwgIXJvb3QuQWN0aXZlWE9iamVjdCkpIHtcbiAgICByZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0O1xuICB9IGVsc2Uge1xuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAuNi4wJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjMuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUCcpOyB9IGNhdGNoKGUpIHt9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UsIGFkZGVkIHRvIHN1cHBvcnQgSUUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbnZhciB0cmltID0gJycudHJpbVxuICA/IGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMudHJpbSgpOyB9XG4gIDogZnVuY3Rpb24ocykgeyByZXR1cm4gcy5yZXBsYWNlKC8oXlxccyp8XFxzKiQpL2csICcnKTsgfTtcblxuLyoqXG4gKiBDaGVjayBpZiBgb2JqYCBpcyBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzT2JqZWN0KG9iaikge1xuICByZXR1cm4gb2JqID09PSBPYmplY3Qob2JqKTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIGdpdmVuIGBvYmpgLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZShvYmopIHtcbiAgaWYgKCFpc09iamVjdChvYmopKSByZXR1cm4gb2JqO1xuICB2YXIgcGFpcnMgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGlmIChudWxsICE9IG9ialtrZXldKSB7XG4gICAgICBwYWlycy5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChrZXkpXG4gICAgICAgICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG9ialtrZXldKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYWlycy5qb2luKCcmJyk7XG59XG5cbi8qKlxuICogRXhwb3NlIHNlcmlhbGl6YXRpb24gbWV0aG9kLlxuICovXG5cbiByZXF1ZXN0LnNlcmlhbGl6ZU9iamVjdCA9IHNlcmlhbGl6ZTtcblxuIC8qKlxuICAqIFBhcnNlIHRoZSBnaXZlbiB4LXd3dy1mb3JtLXVybGVuY29kZWQgYHN0cmAuXG4gICpcbiAgKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gICogQHJldHVybiB7T2JqZWN0fVxuICAqIEBhcGkgcHJpdmF0ZVxuICAqL1xuXG5mdW5jdGlvbiBwYXJzZVN0cmluZyhzdHIpIHtcbiAgdmFyIG9iaiA9IHt9O1xuICB2YXIgcGFpcnMgPSBzdHIuc3BsaXQoJyYnKTtcbiAgdmFyIHBhcnRzO1xuICB2YXIgcGFpcjtcblxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gcGFpcnMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICBwYWlyID0gcGFpcnNbaV07XG4gICAgcGFydHMgPSBwYWlyLnNwbGl0KCc9Jyk7XG4gICAgb2JqW2RlY29kZVVSSUNvbXBvbmVudChwYXJ0c1swXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzFdKTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogRXhwb3NlIHBhcnNlci5cbiAqL1xuXG5yZXF1ZXN0LnBhcnNlU3RyaW5nID0gcGFyc2VTdHJpbmc7XG5cbi8qKlxuICogRGVmYXVsdCBNSU1FIHR5cGUgbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqL1xuXG5yZXF1ZXN0LnR5cGVzID0ge1xuICBodG1sOiAndGV4dC9odG1sJyxcbiAganNvbjogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB4bWw6ICdhcHBsaWNhdGlvbi94bWwnLFxuICB1cmxlbmNvZGVkOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgJ2Zvcm0nOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgJ2Zvcm0tZGF0YSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG59O1xuXG4vKipcbiAqIERlZmF1bHQgc2VyaWFsaXphdGlvbiBtYXAuXG4gKlxuICogICAgIHN1cGVyYWdlbnQuc2VyaWFsaXplWydhcHBsaWNhdGlvbi94bWwnXSA9IGZ1bmN0aW9uKG9iail7XG4gKiAgICAgICByZXR1cm4gJ2dlbmVyYXRlZCB4bWwgaGVyZSc7XG4gKiAgICAgfTtcbiAqXG4gKi9cblxuIHJlcXVlc3Quc2VyaWFsaXplID0ge1xuICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHNlcmlhbGl6ZSxcbiAgICdhcHBsaWNhdGlvbi9qc29uJzogSlNPTi5zdHJpbmdpZnlcbiB9O1xuXG4gLyoqXG4gICogRGVmYXVsdCBwYXJzZXJzLlxuICAqXG4gICogICAgIHN1cGVyYWdlbnQucGFyc2VbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24oc3RyKXtcbiAgKiAgICAgICByZXR1cm4geyBvYmplY3QgcGFyc2VkIGZyb20gc3RyIH07XG4gICogICAgIH07XG4gICpcbiAgKi9cblxucmVxdWVzdC5wYXJzZSA9IHtcbiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHBhcnNlU3RyaW5nLFxuICAnYXBwbGljYXRpb24vanNvbic6IEpTT04ucGFyc2Vcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGhlYWRlciBgc3RyYCBpbnRvXG4gKiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbWFwcGVkIGZpZWxkcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZUhlYWRlcihzdHIpIHtcbiAgdmFyIGxpbmVzID0gc3RyLnNwbGl0KC9cXHI/XFxuLyk7XG4gIHZhciBmaWVsZHMgPSB7fTtcbiAgdmFyIGluZGV4O1xuICB2YXIgbGluZTtcbiAgdmFyIGZpZWxkO1xuICB2YXIgdmFsO1xuXG4gIGxpbmVzLnBvcCgpOyAvLyB0cmFpbGluZyBDUkxGXG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGxpbmVzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgbGluZSA9IGxpbmVzW2ldO1xuICAgIGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgZmllbGQgPSBsaW5lLnNsaWNlKDAsIGluZGV4KS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IHRyaW0obGluZS5zbGljZShpbmRleCArIDEpKTtcbiAgICBmaWVsZHNbZmllbGRdID0gdmFsO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIG1pbWUgdHlwZSBmb3IgdGhlIGdpdmVuIGBzdHJgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHR5cGUoc3RyKXtcbiAgcmV0dXJuIHN0ci5zcGxpdCgvICo7ICovKS5zaGlmdCgpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gaGVhZGVyIGZpZWxkIHBhcmFtZXRlcnMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyYW1zKHN0cil7XG4gIHJldHVybiByZWR1Y2Uoc3RyLnNwbGl0KC8gKjsgKi8pLCBmdW5jdGlvbihvYmosIHN0cil7XG4gICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KC8gKj0gKi8pXG4gICAgICAsIGtleSA9IHBhcnRzLnNoaWZ0KClcbiAgICAgICwgdmFsID0gcGFydHMuc2hpZnQoKTtcblxuICAgIGlmIChrZXkgJiYgdmFsKSBvYmpba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gb2JqO1xuICB9LCB7fSk7XG59O1xuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgYFJlc3BvbnNlYCB3aXRoIHRoZSBnaXZlbiBgeGhyYC5cbiAqXG4gKiAgLSBzZXQgZmxhZ3MgKC5vaywgLmVycm9yLCBldGMpXG4gKiAgLSBwYXJzZSBoZWFkZXJcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgQWxpYXNpbmcgYHN1cGVyYWdlbnRgIGFzIGByZXF1ZXN0YCBpcyBuaWNlOlxuICpcbiAqICAgICAgcmVxdWVzdCA9IHN1cGVyYWdlbnQ7XG4gKlxuICogIFdlIGNhbiB1c2UgdGhlIHByb21pc2UtbGlrZSBBUEksIG9yIHBhc3MgY2FsbGJhY2tzOlxuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy8nKS5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqICAgICAgcmVxdWVzdC5nZXQoJy8nLCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBTZW5kaW5nIGRhdGEgY2FuIGJlIGNoYWluZWQ6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJylcbiAqICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIE9yIHBhc3NlZCB0byBgLnNlbmQoKWA6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJylcbiAqICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSwgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAucG9zdCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInLCB7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogT3IgZnVydGhlciByZWR1Y2VkIHRvIGEgc2luZ2xlIGNhbGwgZm9yIHNpbXBsZSBjYXNlczpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInLCB7IG5hbWU6ICd0aicgfSwgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBAcGFyYW0ge1hNTEhUVFBSZXF1ZXN0fSB4aHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBSZXNwb25zZShyZXEsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHRoaXMucmVxID0gcmVxO1xuICB0aGlzLnhociA9IHRoaXMucmVxLnhocjtcbiAgLy8gcmVzcG9uc2VUZXh0IGlzIGFjY2Vzc2libGUgb25seSBpZiByZXNwb25zZVR5cGUgaXMgJycgb3IgJ3RleHQnIGFuZCBvbiBvbGRlciBicm93c2Vyc1xuICB0aGlzLnRleHQgPSAoKHRoaXMucmVxLm1ldGhvZCAhPSdIRUFEJyAmJiAodGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAnJyB8fCB0aGlzLnhoci5yZXNwb25zZVR5cGUgPT09ICd0ZXh0JykpIHx8IHR5cGVvZiB0aGlzLnhoci5yZXNwb25zZVR5cGUgPT09ICd1bmRlZmluZWQnKVxuICAgICA/IHRoaXMueGhyLnJlc3BvbnNlVGV4dFxuICAgICA6IG51bGw7XG4gIHRoaXMuc3RhdHVzVGV4dCA9IHRoaXMucmVxLnhoci5zdGF0dXNUZXh0O1xuICB0aGlzLnNldFN0YXR1c1Byb3BlcnRpZXModGhpcy54aHIuc3RhdHVzKTtcbiAgdGhpcy5oZWFkZXIgPSB0aGlzLmhlYWRlcnMgPSBwYXJzZUhlYWRlcih0aGlzLnhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gIC8vIGdldEFsbFJlc3BvbnNlSGVhZGVycyBzb21ldGltZXMgZmFsc2VseSByZXR1cm5zIFwiXCIgZm9yIENPUlMgcmVxdWVzdHMsIGJ1dFxuICAvLyBnZXRSZXNwb25zZUhlYWRlciBzdGlsbCB3b3Jrcy4gc28gd2UgZ2V0IGNvbnRlbnQtdHlwZSBldmVuIGlmIGdldHRpbmdcbiAgLy8gb3RoZXIgaGVhZGVycyBmYWlscy5cbiAgdGhpcy5oZWFkZXJbJ2NvbnRlbnQtdHlwZSddID0gdGhpcy54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ2NvbnRlbnQtdHlwZScpO1xuICB0aGlzLnNldEhlYWRlclByb3BlcnRpZXModGhpcy5oZWFkZXIpO1xuICB0aGlzLmJvZHkgPSB0aGlzLnJlcS5tZXRob2QgIT0gJ0hFQUQnXG4gICAgPyB0aGlzLnBhcnNlQm9keSh0aGlzLnRleHQgPyB0aGlzLnRleHQgOiB0aGlzLnhoci5yZXNwb25zZSlcbiAgICA6IG51bGw7XG59XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgYGZpZWxkYCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuaGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xufTtcblxuLyoqXG4gKiBTZXQgaGVhZGVyIHJlbGF0ZWQgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gYC50eXBlYCB0aGUgY29udGVudCB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gKlxuICogQSByZXNwb25zZSBvZiBcIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOFwiXG4gKiB3aWxsIHByb3ZpZGUgeW91IHdpdGggYSBgLnR5cGVgIG9mIFwidGV4dC9wbGFpblwiLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBoZWFkZXJcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5zZXRIZWFkZXJQcm9wZXJ0aWVzID0gZnVuY3Rpb24oaGVhZGVyKXtcbiAgLy8gY29udGVudC10eXBlXG4gIHZhciBjdCA9IHRoaXMuaGVhZGVyWydjb250ZW50LXR5cGUnXSB8fCAnJztcbiAgdGhpcy50eXBlID0gdHlwZShjdCk7XG5cbiAgLy8gcGFyYW1zXG4gIHZhciBvYmogPSBwYXJhbXMoY3QpO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB0aGlzW2tleV0gPSBvYmpba2V5XTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGJvZHkgYHN0cmAuXG4gKlxuICogVXNlZCBmb3IgYXV0by1wYXJzaW5nIG9mIGJvZGllcy4gUGFyc2Vyc1xuICogYXJlIGRlZmluZWQgb24gdGhlIGBzdXBlcmFnZW50LnBhcnNlYCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUucGFyc2VCb2R5ID0gZnVuY3Rpb24oc3RyKXtcbiAgdmFyIHBhcnNlID0gcmVxdWVzdC5wYXJzZVt0aGlzLnR5cGVdO1xuICByZXR1cm4gcGFyc2UgJiYgc3RyICYmIChzdHIubGVuZ3RoIHx8IHN0ciBpbnN0YW5jZW9mIE9iamVjdClcbiAgICA/IHBhcnNlKHN0cilcbiAgICA6IG51bGw7XG59O1xuXG4vKipcbiAqIFNldCBmbGFncyBzdWNoIGFzIGAub2tgIGJhc2VkIG9uIGBzdGF0dXNgLlxuICpcbiAqIEZvciBleGFtcGxlIGEgMnh4IHJlc3BvbnNlIHdpbGwgZ2l2ZSB5b3UgYSBgLm9rYCBvZiBfX3RydWVfX1xuICogd2hlcmVhcyA1eHggd2lsbCBiZSBfX2ZhbHNlX18gYW5kIGAuZXJyb3JgIHdpbGwgYmUgX190cnVlX18uIFRoZVxuICogYC5jbGllbnRFcnJvcmAgYW5kIGAuc2VydmVyRXJyb3JgIGFyZSBhbHNvIGF2YWlsYWJsZSB0byBiZSBtb3JlXG4gKiBzcGVjaWZpYywgYW5kIGAuc3RhdHVzVHlwZWAgaXMgdGhlIGNsYXNzIG9mIGVycm9yIHJhbmdpbmcgZnJvbSAxLi41XG4gKiBzb21ldGltZXMgdXNlZnVsIGZvciBtYXBwaW5nIHJlc3BvbmQgY29sb3JzIGV0Yy5cbiAqXG4gKiBcInN1Z2FyXCIgcHJvcGVydGllcyBhcmUgYWxzbyBkZWZpbmVkIGZvciBjb21tb24gY2FzZXMuIEN1cnJlbnRseSBwcm92aWRpbmc6XG4gKlxuICogICAtIC5ub0NvbnRlbnRcbiAqICAgLSAuYmFkUmVxdWVzdFxuICogICAtIC51bmF1dGhvcml6ZWRcbiAqICAgLSAubm90QWNjZXB0YWJsZVxuICogICAtIC5ub3RGb3VuZFxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBzdGF0dXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5zZXRTdGF0dXNQcm9wZXJ0aWVzID0gZnVuY3Rpb24oc3RhdHVzKXtcbiAgLy8gaGFuZGxlIElFOSBidWc6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTAwNDY5NzIvbXNpZS1yZXR1cm5zLXN0YXR1cy1jb2RlLW9mLTEyMjMtZm9yLWFqYXgtcmVxdWVzdFxuICBpZiAoc3RhdHVzID09PSAxMjIzKSB7XG4gICAgc3RhdHVzID0gMjA0O1xuICB9XG5cbiAgdmFyIHR5cGUgPSBzdGF0dXMgLyAxMDAgfCAwO1xuXG4gIC8vIHN0YXR1cyAvIGNsYXNzXG4gIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICB0aGlzLnN0YXR1c1R5cGUgPSB0eXBlO1xuXG4gIC8vIGJhc2ljc1xuICB0aGlzLmluZm8gPSAxID09IHR5cGU7XG4gIHRoaXMub2sgPSAyID09IHR5cGU7XG4gIHRoaXMuY2xpZW50RXJyb3IgPSA0ID09IHR5cGU7XG4gIHRoaXMuc2VydmVyRXJyb3IgPSA1ID09IHR5cGU7XG4gIHRoaXMuZXJyb3IgPSAoNCA9PSB0eXBlIHx8IDUgPT0gdHlwZSlcbiAgICA/IHRoaXMudG9FcnJvcigpXG4gICAgOiBmYWxzZTtcblxuICAvLyBzdWdhclxuICB0aGlzLmFjY2VwdGVkID0gMjAyID09IHN0YXR1cztcbiAgdGhpcy5ub0NvbnRlbnQgPSAyMDQgPT0gc3RhdHVzO1xuICB0aGlzLmJhZFJlcXVlc3QgPSA0MDAgPT0gc3RhdHVzO1xuICB0aGlzLnVuYXV0aG9yaXplZCA9IDQwMSA9PSBzdGF0dXM7XG4gIHRoaXMubm90QWNjZXB0YWJsZSA9IDQwNiA9PSBzdGF0dXM7XG4gIHRoaXMubm90Rm91bmQgPSA0MDQgPT0gc3RhdHVzO1xuICB0aGlzLmZvcmJpZGRlbiA9IDQwMyA9PSBzdGF0dXM7XG59O1xuXG4vKipcbiAqIFJldHVybiBhbiBgRXJyb3JgIHJlcHJlc2VudGF0aXZlIG9mIHRoaXMgcmVzcG9uc2UuXG4gKlxuICogQHJldHVybiB7RXJyb3J9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS50b0Vycm9yID0gZnVuY3Rpb24oKXtcbiAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICB2YXIgbWV0aG9kID0gcmVxLm1ldGhvZDtcbiAgdmFyIHVybCA9IHJlcS51cmw7XG5cbiAgdmFyIG1zZyA9ICdjYW5ub3QgJyArIG1ldGhvZCArICcgJyArIHVybCArICcgKCcgKyB0aGlzLnN0YXR1cyArICcpJztcbiAgdmFyIGVyciA9IG5ldyBFcnJvcihtc2cpO1xuICBlcnIuc3RhdHVzID0gdGhpcy5zdGF0dXM7XG4gIGVyci5tZXRob2QgPSBtZXRob2Q7XG4gIGVyci51cmwgPSB1cmw7XG5cbiAgcmV0dXJuIGVycjtcbn07XG5cbi8qKlxuICogRXhwb3NlIGBSZXNwb25zZWAuXG4gKi9cblxucmVxdWVzdC5SZXNwb25zZSA9IFJlc3BvbnNlO1xuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgYFJlcXVlc3RgIHdpdGggdGhlIGdpdmVuIGBtZXRob2RgIGFuZCBgdXJsYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbWV0aG9kXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIFJlcXVlc3QobWV0aG9kLCB1cmwpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBFbWl0dGVyLmNhbGwodGhpcyk7XG4gIHRoaXMuX3F1ZXJ5ID0gdGhpcy5fcXVlcnkgfHwgW107XG4gIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICB0aGlzLnVybCA9IHVybDtcbiAgdGhpcy5oZWFkZXIgPSB7fTtcbiAgdGhpcy5faGVhZGVyID0ge307XG4gIHRoaXMub24oJ2VuZCcsIGZ1bmN0aW9uKCl7XG4gICAgdmFyIGVyciA9IG51bGw7XG4gICAgdmFyIHJlcyA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgcmVzID0gbmV3IFJlc3BvbnNlKHNlbGYpO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgZXJyID0gbmV3IEVycm9yKCdQYXJzZXIgaXMgdW5hYmxlIHRvIHBhcnNlIHRoZSByZXNwb25zZScpO1xuICAgICAgZXJyLnBhcnNlID0gdHJ1ZTtcbiAgICAgIGVyci5vcmlnaW5hbCA9IGU7XG4gICAgICByZXR1cm4gc2VsZi5jYWxsYmFjayhlcnIpO1xuICAgIH1cblxuICAgIHNlbGYuZW1pdCgncmVzcG9uc2UnLCByZXMpO1xuXG4gICAgaWYgKGVycikge1xuICAgICAgcmV0dXJuIHNlbGYuY2FsbGJhY2soZXJyLCByZXMpO1xuICAgIH1cblxuICAgIGlmIChyZXMuc3RhdHVzID49IDIwMCAmJiByZXMuc3RhdHVzIDwgMzAwKSB7XG4gICAgICByZXR1cm4gc2VsZi5jYWxsYmFjayhlcnIsIHJlcyk7XG4gICAgfVxuXG4gICAgdmFyIG5ld19lcnIgPSBuZXcgRXJyb3IocmVzLnN0YXR1c1RleHQgfHwgJ1Vuc3VjY2Vzc2Z1bCBIVFRQIHJlc3BvbnNlJyk7XG4gICAgbmV3X2Vyci5vcmlnaW5hbCA9IGVycjtcbiAgICBuZXdfZXJyLnJlc3BvbnNlID0gcmVzO1xuICAgIG5ld19lcnIuc3RhdHVzID0gcmVzLnN0YXR1cztcblxuICAgIHNlbGYuY2FsbGJhY2soZXJyIHx8IG5ld19lcnIsIHJlcyk7XG4gIH0pO1xufVxuXG4vKipcbiAqIE1peGluIGBFbWl0dGVyYC5cbiAqL1xuXG5FbWl0dGVyKFJlcXVlc3QucHJvdG90eXBlKTtcblxuLyoqXG4gKiBBbGxvdyBmb3IgZXh0ZW5zaW9uXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudXNlID0gZnVuY3Rpb24oZm4pIHtcbiAgZm4odGhpcyk7XG4gIHJldHVybiB0aGlzO1xufVxuXG4vKipcbiAqIFNldCB0aW1lb3V0IHRvIGBtc2AuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG1zXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudGltZW91dCA9IGZ1bmN0aW9uKG1zKXtcbiAgdGhpcy5fdGltZW91dCA9IG1zO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQ2xlYXIgcHJldmlvdXMgdGltZW91dC5cbiAqXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuY2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24oKXtcbiAgdGhpcy5fdGltZW91dCA9IDA7XG4gIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBBYm9ydCB0aGUgcmVxdWVzdCwgYW5kIGNsZWFyIHBvdGVudGlhbCB0aW1lb3V0LlxuICpcbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFib3J0ID0gZnVuY3Rpb24oKXtcbiAgaWYgKHRoaXMuYWJvcnRlZCkgcmV0dXJuO1xuICB0aGlzLmFib3J0ZWQgPSB0cnVlO1xuICB0aGlzLnhoci5hYm9ydCgpO1xuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuICB0aGlzLmVtaXQoJ2Fib3J0Jyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgaGVhZGVyIGBmaWVsZGAgdG8gYHZhbGAsIG9yIG11bHRpcGxlIGZpZWxkcyB3aXRoIG9uZSBvYmplY3QuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICByZXEuZ2V0KCcvJylcbiAqICAgICAgICAuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLnNldCgnWC1BUEktS2V5JywgJ2Zvb2JhcicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogICAgICByZXEuZ2V0KCcvJylcbiAqICAgICAgICAuc2V0KHsgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsICdYLUFQSS1LZXknOiAnZm9vYmFyJyB9KVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZmllbGRcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihmaWVsZCwgdmFsKXtcbiAgaWYgKGlzT2JqZWN0KGZpZWxkKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBmaWVsZCkge1xuICAgICAgdGhpcy5zZXQoa2V5LCBmaWVsZFtrZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldID0gdmFsO1xuICB0aGlzLmhlYWRlcltmaWVsZF0gPSB2YWw7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgaGVhZGVyIGBmaWVsZGAuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC51bnNldCgnVXNlci1BZ2VudCcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudW5zZXQgPSBmdW5jdGlvbihmaWVsZCl7XG4gIGRlbGV0ZSB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV07XG4gIGRlbGV0ZSB0aGlzLmhlYWRlcltmaWVsZF07XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBHZXQgY2FzZS1pbnNlbnNpdGl2ZSBoZWFkZXIgYGZpZWxkYCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmdldEhlYWRlciA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogU2V0IENvbnRlbnQtVHlwZSB0byBgdHlwZWAsIG1hcHBpbmcgdmFsdWVzIGZyb20gYHJlcXVlc3QudHlwZXNgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgc3VwZXJhZ2VudC50eXBlcy54bWwgPSAnYXBwbGljYXRpb24veG1sJztcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5wb3N0KCcvJylcbiAqICAgICAgICAudHlwZSgnYXBwbGljYXRpb24veG1sJylcbiAqICAgICAgICAuc2VuZCh4bWxzdHJpbmcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS50eXBlID0gZnVuY3Rpb24odHlwZSl7XG4gIHRoaXMuc2V0KCdDb250ZW50LVR5cGUnLCByZXF1ZXN0LnR5cGVzW3R5cGVdIHx8IHR5cGUpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IEFjY2VwdCB0byBgdHlwZWAsIG1hcHBpbmcgdmFsdWVzIGZyb20gYHJlcXVlc3QudHlwZXNgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgc3VwZXJhZ2VudC50eXBlcy5qc29uID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnL2FnZW50JylcbiAqICAgICAgICAuYWNjZXB0KCdhcHBsaWNhdGlvbi9qc29uJylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWNjZXB0XG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYWNjZXB0ID0gZnVuY3Rpb24odHlwZSl7XG4gIHRoaXMuc2V0KCdBY2NlcHQnLCByZXF1ZXN0LnR5cGVzW3R5cGVdIHx8IHR5cGUpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IEF1dGhvcml6YXRpb24gZmllbGQgdmFsdWUgd2l0aCBgdXNlcmAgYW5kIGBwYXNzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXNlclxuICogQHBhcmFtIHtTdHJpbmd9IHBhc3NcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hdXRoID0gZnVuY3Rpb24odXNlciwgcGFzcyl7XG4gIHZhciBzdHIgPSBidG9hKHVzZXIgKyAnOicgKyBwYXNzKTtcbiAgdGhpcy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArIHN0cik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4qIEFkZCBxdWVyeS1zdHJpbmcgYHZhbGAuXG4qXG4qIEV4YW1wbGVzOlxuKlxuKiAgIHJlcXVlc3QuZ2V0KCcvc2hvZXMnKVxuKiAgICAgLnF1ZXJ5KCdzaXplPTEwJylcbiogICAgIC5xdWVyeSh7IGNvbG9yOiAnYmx1ZScgfSlcbipcbiogQHBhcmFtIHtPYmplY3R8U3RyaW5nfSB2YWxcbiogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4qIEBhcGkgcHVibGljXG4qL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5xdWVyeSA9IGZ1bmN0aW9uKHZhbCl7XG4gIGlmICgnc3RyaW5nJyAhPSB0eXBlb2YgdmFsKSB2YWwgPSBzZXJpYWxpemUodmFsKTtcbiAgaWYgKHZhbCkgdGhpcy5fcXVlcnkucHVzaCh2YWwpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogV3JpdGUgdGhlIGZpZWxkIGBuYW1lYCBhbmQgYHZhbGAgZm9yIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiXG4gKiByZXF1ZXN0IGJvZGllcy5cbiAqXG4gKiBgYGAganNcbiAqIHJlcXVlc3QucG9zdCgnL3VwbG9hZCcpXG4gKiAgIC5maWVsZCgnZm9vJywgJ2JhcicpXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7U3RyaW5nfEJsb2J8RmlsZX0gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuZmllbGQgPSBmdW5jdGlvbihuYW1lLCB2YWwpe1xuICBpZiAoIXRoaXMuX2Zvcm1EYXRhKSB0aGlzLl9mb3JtRGF0YSA9IG5ldyByb290LkZvcm1EYXRhKCk7XG4gIHRoaXMuX2Zvcm1EYXRhLmFwcGVuZChuYW1lLCB2YWwpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUXVldWUgdGhlIGdpdmVuIGBmaWxlYCBhcyBhbiBhdHRhY2htZW50IHRvIHRoZSBzcGVjaWZpZWQgYGZpZWxkYCxcbiAqIHdpdGggb3B0aW9uYWwgYGZpbGVuYW1lYC5cbiAqXG4gKiBgYGAganNcbiAqIHJlcXVlc3QucG9zdCgnL3VwbG9hZCcpXG4gKiAgIC5hdHRhY2gobmV3IEJsb2IoWyc8YSBpZD1cImFcIj48YiBpZD1cImJcIj5oZXkhPC9iPjwvYT4nXSwgeyB0eXBlOiBcInRleHQvaHRtbFwifSkpXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcGFyYW0ge0Jsb2J8RmlsZX0gZmlsZVxuICogQHBhcmFtIHtTdHJpbmd9IGZpbGVuYW1lXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXR0YWNoID0gZnVuY3Rpb24oZmllbGQsIGZpbGUsIGZpbGVuYW1lKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkgdGhpcy5fZm9ybURhdGEgPSBuZXcgcm9vdC5Gb3JtRGF0YSgpO1xuICB0aGlzLl9mb3JtRGF0YS5hcHBlbmQoZmllbGQsIGZpbGUsIGZpbGVuYW1lKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNlbmQgYGRhdGFgLCBkZWZhdWx0aW5nIHRoZSBgLnR5cGUoKWAgdG8gXCJqc29uXCIgd2hlblxuICogYW4gb2JqZWN0IGlzIGdpdmVuLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgIC8vIHF1ZXJ5c3RyaW5nXG4gKiAgICAgICByZXF1ZXN0LmdldCgnL3NlYXJjaCcpXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gbXVsdGlwbGUgZGF0YSBcIndyaXRlc1wiXG4gKiAgICAgICByZXF1ZXN0LmdldCgnL3NlYXJjaCcpXG4gKiAgICAgICAgIC5zZW5kKHsgc2VhcmNoOiAncXVlcnknIH0pXG4gKiAgICAgICAgIC5zZW5kKHsgcmFuZ2U6ICcxLi41JyB9KVxuICogICAgICAgICAuc2VuZCh7IG9yZGVyOiAnZGVzYycgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBtYW51YWwganNvblxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdqc29uJylcbiAqICAgICAgICAgLnNlbmQoJ3tcIm5hbWVcIjpcInRqXCJ9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGF1dG8ganNvblxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG1hbnVhbCB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKCduYW1lPXRqJylcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdmb3JtJylcbiAqICAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gZGVmYXVsdHMgdG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gICogICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAgKiAgICAgICAgLnNlbmQoJ25hbWU9dG9iaScpXG4gICogICAgICAgIC5zZW5kKCdzcGVjaWVzPWZlcnJldCcpXG4gICogICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBkYXRhXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uKGRhdGEpe1xuICB2YXIgb2JqID0gaXNPYmplY3QoZGF0YSk7XG4gIHZhciB0eXBlID0gdGhpcy5nZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScpO1xuXG4gIC8vIG1lcmdlXG4gIGlmIChvYmogJiYgaXNPYmplY3QodGhpcy5fZGF0YSkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xuICAgICAgdGhpcy5fZGF0YVtrZXldID0gZGF0YVtrZXldO1xuICAgIH1cbiAgfSBlbHNlIGlmICgnc3RyaW5nJyA9PSB0eXBlb2YgZGF0YSkge1xuICAgIGlmICghdHlwZSkgdGhpcy50eXBlKCdmb3JtJyk7XG4gICAgdHlwZSA9IHRoaXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKTtcbiAgICBpZiAoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgPT0gdHlwZSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuX2RhdGFcbiAgICAgICAgPyB0aGlzLl9kYXRhICsgJyYnICsgZGF0YVxuICAgICAgICA6IGRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RhdGEgPSAodGhpcy5fZGF0YSB8fCAnJykgKyBkYXRhO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGlmICghb2JqIHx8IGlzSG9zdChkYXRhKSkgcmV0dXJuIHRoaXM7XG4gIGlmICghdHlwZSkgdGhpcy50eXBlKCdqc29uJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBJbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggYGVycmAgYW5kIGByZXNgXG4gKiBhbmQgaGFuZGxlIGFyaXR5IGNoZWNrLlxuICpcbiAqIEBwYXJhbSB7RXJyb3J9IGVyclxuICogQHBhcmFtIHtSZXNwb25zZX0gcmVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jYWxsYmFjayA9IGZ1bmN0aW9uKGVyciwgcmVzKXtcbiAgdmFyIGZuID0gdGhpcy5fY2FsbGJhY2s7XG4gIHRoaXMuY2xlYXJUaW1lb3V0KCk7XG4gIGZuKGVyciwgcmVzKTtcbn07XG5cbi8qKlxuICogSW52b2tlIGNhbGxiYWNrIHdpdGggeC1kb21haW4gZXJyb3IuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuY3Jvc3NEb21haW5FcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IoJ09yaWdpbiBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nKTtcbiAgZXJyLmNyb3NzRG9tYWluID0gdHJ1ZTtcbiAgdGhpcy5jYWxsYmFjayhlcnIpO1xufTtcblxuLyoqXG4gKiBJbnZva2UgY2FsbGJhY2sgd2l0aCB0aW1lb3V0IGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnRpbWVvdXRFcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciB0aW1lb3V0ID0gdGhpcy5fdGltZW91dDtcbiAgdmFyIGVyciA9IG5ldyBFcnJvcigndGltZW91dCBvZiAnICsgdGltZW91dCArICdtcyBleGNlZWRlZCcpO1xuICBlcnIudGltZW91dCA9IHRpbWVvdXQ7XG4gIHRoaXMuY2FsbGJhY2soZXJyKTtcbn07XG5cbi8qKlxuICogRW5hYmxlIHRyYW5zbWlzc2lvbiBvZiBjb29raWVzIHdpdGggeC1kb21haW4gcmVxdWVzdHMuXG4gKlxuICogTm90ZSB0aGF0IGZvciB0aGlzIHRvIHdvcmsgdGhlIG9yaWdpbiBtdXN0IG5vdCBiZVxuICogdXNpbmcgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIiB3aXRoIGEgd2lsZGNhcmQsXG4gKiBhbmQgYWxzbyBtdXN0IHNldCBcIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzXCJcbiAqIHRvIFwidHJ1ZVwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUud2l0aENyZWRlbnRpYWxzID0gZnVuY3Rpb24oKXtcbiAgdGhpcy5fd2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEluaXRpYXRlIHJlcXVlc3QsIGludm9raW5nIGNhbGxiYWNrIGBmbihyZXMpYFxuICogd2l0aCBhbiBpbnN0YW5jZW9mIGBSZXNwb25zZWAuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihmbil7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHhociA9IHRoaXMueGhyID0gcmVxdWVzdC5nZXRYSFIoKTtcbiAgdmFyIHF1ZXJ5ID0gdGhpcy5fcXVlcnkuam9pbignJicpO1xuICB2YXIgdGltZW91dCA9IHRoaXMuX3RpbWVvdXQ7XG4gIHZhciBkYXRhID0gdGhpcy5fZm9ybURhdGEgfHwgdGhpcy5fZGF0YTtcblxuICAvLyBzdG9yZSBjYWxsYmFja1xuICB0aGlzLl9jYWxsYmFjayA9IGZuIHx8IG5vb3A7XG5cbiAgLy8gc3RhdGUgY2hhbmdlXG4gIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpe1xuICAgIGlmICg0ICE9IHhoci5yZWFkeVN0YXRlKSByZXR1cm47XG5cbiAgICAvLyBJbiBJRTksIHJlYWRzIHRvIGFueSBwcm9wZXJ0eSAoZS5nLiBzdGF0dXMpIG9mZiBvZiBhbiBhYm9ydGVkIFhIUiB3aWxsXG4gICAgLy8gcmVzdWx0IGluIHRoZSBlcnJvciBcIkNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uIGR1ZSB0byBlcnJvciBjMDBjMDIzZlwiXG4gICAgdmFyIHN0YXR1cztcbiAgICB0cnkgeyBzdGF0dXMgPSB4aHIuc3RhdHVzIH0gY2F0Y2goZSkgeyBzdGF0dXMgPSAwOyB9XG5cbiAgICBpZiAoMCA9PSBzdGF0dXMpIHtcbiAgICAgIGlmIChzZWxmLnRpbWVkb3V0KSByZXR1cm4gc2VsZi50aW1lb3V0RXJyb3IoKTtcbiAgICAgIGlmIChzZWxmLmFib3J0ZWQpIHJldHVybjtcbiAgICAgIHJldHVybiBzZWxmLmNyb3NzRG9tYWluRXJyb3IoKTtcbiAgICB9XG4gICAgc2VsZi5lbWl0KCdlbmQnKTtcbiAgfTtcblxuICAvLyBwcm9ncmVzc1xuICB2YXIgaGFuZGxlUHJvZ3Jlc3MgPSBmdW5jdGlvbihlKXtcbiAgICBpZiAoZS50b3RhbCA+IDApIHtcbiAgICAgIGUucGVyY2VudCA9IGUubG9hZGVkIC8gZS50b3RhbCAqIDEwMDtcbiAgICB9XG4gICAgc2VsZi5lbWl0KCdwcm9ncmVzcycsIGUpO1xuICB9O1xuICBpZiAodGhpcy5oYXNMaXN0ZW5lcnMoJ3Byb2dyZXNzJykpIHtcbiAgICB4aHIub25wcm9ncmVzcyA9IGhhbmRsZVByb2dyZXNzO1xuICB9XG4gIHRyeSB7XG4gICAgaWYgKHhoci51cGxvYWQgJiYgdGhpcy5oYXNMaXN0ZW5lcnMoJ3Byb2dyZXNzJykpIHtcbiAgICAgIHhoci51cGxvYWQub25wcm9ncmVzcyA9IGhhbmRsZVByb2dyZXNzO1xuICAgIH1cbiAgfSBjYXRjaChlKSB7XG4gICAgLy8gQWNjZXNzaW5nIHhoci51cGxvYWQgZmFpbHMgaW4gSUUgZnJvbSBhIHdlYiB3b3JrZXIsIHNvIGp1c3QgcHJldGVuZCBpdCBkb2Vzbid0IGV4aXN0LlxuICAgIC8vIFJlcG9ydGVkIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vSUUvZmVlZGJhY2svZGV0YWlscy84MzcyNDUveG1saHR0cHJlcXVlc3QtdXBsb2FkLXRocm93cy1pbnZhbGlkLWFyZ3VtZW50LXdoZW4tdXNlZC1mcm9tLXdlYi13b3JrZXItY29udGV4dFxuICB9XG5cbiAgLy8gdGltZW91dFxuICBpZiAodGltZW91dCAmJiAhdGhpcy5fdGltZXIpIHtcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgIHNlbGYudGltZWRvdXQgPSB0cnVlO1xuICAgICAgc2VsZi5hYm9ydCgpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9XG5cbiAgLy8gcXVlcnlzdHJpbmdcbiAgaWYgKHF1ZXJ5KSB7XG4gICAgcXVlcnkgPSByZXF1ZXN0LnNlcmlhbGl6ZU9iamVjdChxdWVyeSk7XG4gICAgdGhpcy51cmwgKz0gfnRoaXMudXJsLmluZGV4T2YoJz8nKVxuICAgICAgPyAnJicgKyBxdWVyeVxuICAgICAgOiAnPycgKyBxdWVyeTtcbiAgfVxuXG4gIC8vIGluaXRpYXRlIHJlcXVlc3RcbiAgeGhyLm9wZW4odGhpcy5tZXRob2QsIHRoaXMudXJsLCB0cnVlKTtcblxuICAvLyBDT1JTXG4gIGlmICh0aGlzLl93aXRoQ3JlZGVudGlhbHMpIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xuXG4gIC8vIGJvZHlcbiAgaWYgKCdHRVQnICE9IHRoaXMubWV0aG9kICYmICdIRUFEJyAhPSB0aGlzLm1ldGhvZCAmJiAnc3RyaW5nJyAhPSB0eXBlb2YgZGF0YSAmJiAhaXNIb3N0KGRhdGEpKSB7XG4gICAgLy8gc2VyaWFsaXplIHN0dWZmXG4gICAgdmFyIHNlcmlhbGl6ZSA9IHJlcXVlc3Quc2VyaWFsaXplW3RoaXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKV07XG4gICAgaWYgKHNlcmlhbGl6ZSkgZGF0YSA9IHNlcmlhbGl6ZShkYXRhKTtcbiAgfVxuXG4gIC8vIHNldCBoZWFkZXIgZmllbGRzXG4gIGZvciAodmFyIGZpZWxkIGluIHRoaXMuaGVhZGVyKSB7XG4gICAgaWYgKG51bGwgPT0gdGhpcy5oZWFkZXJbZmllbGRdKSBjb250aW51ZTtcbiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihmaWVsZCwgdGhpcy5oZWFkZXJbZmllbGRdKTtcbiAgfVxuXG4gIC8vIHNlbmQgc3R1ZmZcbiAgdGhpcy5lbWl0KCdyZXF1ZXN0JywgdGhpcyk7XG4gIHhoci5zZW5kKGRhdGEpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogRXhwb3NlIGBSZXF1ZXN0YC5cbiAqL1xuXG5yZXF1ZXN0LlJlcXVlc3QgPSBSZXF1ZXN0O1xuXG4vKipcbiAqIElzc3VlIGEgcmVxdWVzdDpcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICByZXF1ZXN0KCdHRVQnLCAnL3VzZXJzJykuZW5kKGNhbGxiYWNrKVxuICogICAgcmVxdWVzdCgnL3VzZXJzJykuZW5kKGNhbGxiYWNrKVxuICogICAgcmVxdWVzdCgnL3VzZXJzJywgY2FsbGJhY2spXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IHVybCBvciBjYWxsYmFja1xuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gcmVxdWVzdChtZXRob2QsIHVybCkge1xuICAvLyBjYWxsYmFja1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgdXJsKSB7XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0KCdHRVQnLCBtZXRob2QpLmVuZCh1cmwpO1xuICB9XG5cbiAgLy8gdXJsIGZpcnN0XG4gIGlmICgxID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbmV3IFJlcXVlc3QoJ0dFVCcsIG1ldGhvZCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlcXVlc3QobWV0aG9kLCB1cmwpO1xufVxuXG4vKipcbiAqIEdFVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBkYXRhIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5nZXQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0dFVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnF1ZXJ5KGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBIRUFEIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IGRhdGEgb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LmhlYWQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0hFQUQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBERUxFVEUgYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZGVsID0gZnVuY3Rpb24odXJsLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdERUxFVEUnLCB1cmwpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQQVRDSCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR9IGRhdGFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBhdGNoID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQQVRDSCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBPU1QgYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBkYXRhXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wb3N0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQT1NUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogUFVUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gZGF0YSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucHV0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQVVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBFeHBvc2UgYHJlcXVlc3RgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWVzdDtcbiIsIi8qIVxuICogQ29weXJpZ2h0IChjKSAyMDE1IENocmlzIE8nSGFyYSA8Y29oYXJhODdAZ21haWwuY29tPlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZ1xuICogYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4gKiBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbiAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbiAqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0b1xuICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvXG4gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmVcbiAqIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsXG4gKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0ZcbiAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EXG4gKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFXG4gKiBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OXG4gKiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT05cbiAqIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuICovXG5cbihmdW5jdGlvbiAobmFtZSwgZGVmaW5pdGlvbikge1xuICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBkZWZpbml0aW9uKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09PSAnb2JqZWN0Jykge1xuICAgICAgICBkZWZpbmUoZGVmaW5pdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpc1tuYW1lXSA9IGRlZmluaXRpb24oKTtcbiAgICB9XG59KSgndmFsaWRhdG9yJywgZnVuY3Rpb24gKHZhbGlkYXRvcikge1xuXG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFsaWRhdG9yID0geyB2ZXJzaW9uOiAnMy40MC4wJyB9O1xuXG4gICAgdmFyIGVtYWlsVXNlciA9IC9eKCgoW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl0pKyhcXC4oW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl0pKykqKXwoKFxceDIyKSgoKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KChbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHg3Zl18XFx4MjF8W1xceDIzLVxceDViXXxbXFx4NWQtXFx4N2VdKXwoXFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZC1cXHg3Zl0pKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKSQvaTtcblxuICAgIHZhciBlbWFpbFVzZXJVdGY4ID0gL14oKChbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKFxcLihbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKSopfCgoXFx4MjIpKCgoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oKFtcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDdmXXxcXHgyMXxbXFx4MjMtXFx4NWJdfFtcXHg1ZC1cXHg3ZV18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfChcXFxcKFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZC1cXHg3Zl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkpKigoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oXFx4MjIpKSkkL2k7XG5cbiAgICB2YXIgZGlzcGxheU5hbWUgPSAvXig/OlthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5cXC5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoPzpbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XFwuXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXXxcXHMpKjwoLispPiQvaTtcblxuICAgIHZhciBjcmVkaXRDYXJkID0gL14oPzo0WzAtOV17MTJ9KD86WzAtOV17M30pP3w1WzEtNV1bMC05XXsxNH18Nig/OjAxMXw1WzAtOV1bMC05XSlbMC05XXsxMn18M1s0N11bMC05XXsxM318Myg/OjBbMC01XXxbNjhdWzAtOV0pWzAtOV17MTF9fCg/OjIxMzF8MTgwMHwzNVxcZHszfSlcXGR7MTF9KSQvO1xuXG4gICAgdmFyIGlzaW4gPSAvXltBLVpdezJ9WzAtOUEtWl17OX1bMC05XSQvO1xuXG4gICAgdmFyIGlzYm4xME1heWJlID0gL14oPzpbMC05XXs5fVh8WzAtOV17MTB9KSQvXG4gICAgICAsIGlzYm4xM01heWJlID0gL14oPzpbMC05XXsxM30pJC87XG5cbiAgICB2YXIgaXB2NE1heWJlID0gL14oXFxkKylcXC4oXFxkKylcXC4oXFxkKylcXC4oXFxkKykkL1xuICAgICAgLCBpcHY2QmxvY2sgPSAvXlswLTlBLUZdezEsNH0kL2k7XG5cbiAgICB2YXIgdXVpZCA9IHtcbiAgICAgICAgJzMnOiAvXlswLTlBLUZdezh9LVswLTlBLUZdezR9LTNbMC05QS1GXXszfS1bMC05QS1GXXs0fS1bMC05QS1GXXsxMn0kL2lcbiAgICAgICwgJzQnOiAvXlswLTlBLUZdezh9LVswLTlBLUZdezR9LTRbMC05QS1GXXszfS1bODlBQl1bMC05QS1GXXszfS1bMC05QS1GXXsxMn0kL2lcbiAgICAgICwgJzUnOiAvXlswLTlBLUZdezh9LVswLTlBLUZdezR9LTVbMC05QS1GXXszfS1bODlBQl1bMC05QS1GXXszfS1bMC05QS1GXXsxMn0kL2lcbiAgICAgICwgYWxsOiAvXlswLTlBLUZdezh9LVswLTlBLUZdezR9LVswLTlBLUZdezR9LVswLTlBLUZdezR9LVswLTlBLUZdezEyfSQvaVxuICAgIH07XG5cbiAgICB2YXIgYWxwaGEgPSAvXltBLVpdKyQvaVxuICAgICAgLCBhbHBoYW51bWVyaWMgPSAvXlswLTlBLVpdKyQvaVxuICAgICAgLCBudW1lcmljID0gL15bLStdP1swLTldKyQvXG4gICAgICAsIGludCA9IC9eKD86Wy0rXT8oPzowfFsxLTldWzAtOV0qKSkkL1xuICAgICAgLCBmbG9hdCA9IC9eKD86Wy0rXT8oPzpbMC05XSspKT8oPzpcXC5bMC05XSopPyg/OltlRV1bXFwrXFwtXT8oPzpbMC05XSspKT8kL1xuICAgICAgLCBoZXhhZGVjaW1hbCA9IC9eWzAtOUEtRl0rJC9pXG4gICAgICAsIGhleGNvbG9yID0gL14jPyhbMC05QS1GXXszfXxbMC05QS1GXXs2fSkkL2k7XG5cbiAgICB2YXIgYXNjaWkgPSAvXltcXHgwMC1cXHg3Rl0rJC9cbiAgICAgICwgbXVsdGlieXRlID0gL1teXFx4MDAtXFx4N0ZdL1xuICAgICAgLCBmdWxsV2lkdGggPSAvW15cXHUwMDIwLVxcdTAwN0VcXHVGRjYxLVxcdUZGOUZcXHVGRkEwLVxcdUZGRENcXHVGRkU4LVxcdUZGRUUwLTlhLXpBLVpdL1xuICAgICAgLCBoYWxmV2lkdGggPSAvW1xcdTAwMjAtXFx1MDA3RVxcdUZGNjEtXFx1RkY5RlxcdUZGQTAtXFx1RkZEQ1xcdUZGRTgtXFx1RkZFRTAtOWEtekEtWl0vO1xuXG4gICAgdmFyIHN1cnJvZ2F0ZVBhaXIgPSAvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS87XG5cbiAgICB2YXIgYmFzZTY0ID0gL14oPzpbQS1aMC05K1xcL117NH0pKig/OltBLVowLTkrXFwvXXsyfT09fFtBLVowLTkrXFwvXXszfT18W0EtWjAtOStcXC9dezR9KSQvaTtcblxuICAgIHZhciBwaG9uZXMgPSB7XG4gICAgICAnemgtQ04nOiAvXihcXCs/MD84NlxcLT8pPzFbMzQ1Nzg5XVxcZHs5fSQvLFxuICAgICAgJ2VuLVpBJzogL14oXFwrPzI3fDApXFxkezl9JC8sXG4gICAgICAnZW4tQVUnOiAvXihcXCs/NjF8MCk0XFxkezh9JC8sXG4gICAgICAnZW4tSEsnOiAvXihcXCs/ODUyXFwtPyk/WzU2OV1cXGR7M31cXC0/XFxkezR9JC8sXG4gICAgICAnZnItRlInOiAvXihcXCs/MzN8MClbNjddXFxkezh9JC8sXG4gICAgICAncHQtUFQnOiAvXihcXCszNTEpPzlbMTIzNl1cXGR7N30kLyxcbiAgICAgICdlbC1HUic6IC9eKFxcKzMwKT8oKDJcXGR7OX0pfCg2OVxcZHs4fSkpJC8sXG4gICAgICAnZW4tR0InOiAvXihcXCs/NDR8MCk3XFxkezl9JC8sXG4gICAgICAnZW4tVVMnOiAvXihcXCs/MSk/WzItOV1cXGR7Mn1bMi05XSg/ITExKVxcZHs2fSQvLFxuICAgICAgJ2VuLVpNJzogL14oXFwrMjYpPzA5WzU2N11cXGR7N30kL1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuZXh0ZW5kID0gZnVuY3Rpb24gKG5hbWUsIGZuKSB7XG4gICAgICAgIHZhbGlkYXRvcltuYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgICAgIGFyZ3NbMF0gPSB2YWxpZGF0b3IudG9TdHJpbmcoYXJnc1swXSk7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodmFsaWRhdG9yLCBhcmdzKTtcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLy9SaWdodCBiZWZvcmUgZXhwb3J0aW5nIHRoZSB2YWxpZGF0b3Igb2JqZWN0LCBwYXNzIGVhY2ggb2YgdGhlIGJ1aWx0aW5zXG4gICAgLy90aHJvdWdoIGV4dGVuZCgpIHNvIHRoYXQgdGhlaXIgZmlyc3QgYXJndW1lbnQgaXMgY29lcmNlZCB0byBhIHN0cmluZ1xuICAgIHZhbGlkYXRvci5pbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHZhbGlkYXRvcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0b3JbbmFtZV0gIT09ICdmdW5jdGlvbicgfHwgbmFtZSA9PT0gJ3RvU3RyaW5nJyB8fFxuICAgICAgICAgICAgICAgICAgICBuYW1lID09PSAndG9EYXRlJyB8fCBuYW1lID09PSAnZXh0ZW5kJyB8fCBuYW1lID09PSAnaW5pdCcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbGlkYXRvci5leHRlbmQobmFtZSwgdmFsaWRhdG9yW25hbWVdKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3IudG9TdHJpbmcgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgJiYgaW5wdXQgIT09IG51bGwgJiYgaW5wdXQudG9TdHJpbmcpIHtcbiAgICAgICAgICAgIGlucHV0ID0gaW5wdXQudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gbnVsbCB8fCB0eXBlb2YgaW5wdXQgPT09ICd1bmRlZmluZWQnIHx8IChpc05hTihpbnB1dCkgJiYgIWlucHV0Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIGlucHV0ID0gJyc7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaW5wdXQgKz0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IudG9EYXRlID0gZnVuY3Rpb24gKGRhdGUpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkYXRlKSA9PT0gJ1tvYmplY3QgRGF0ZV0nKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBkYXRlID0gRGF0ZS5wYXJzZShkYXRlKTtcbiAgICAgICAgcmV0dXJuICFpc05hTihkYXRlKSA/IG5ldyBEYXRlKGRhdGUpIDogbnVsbDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRvRmxvYXQgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50b0ludCA9IGZ1bmN0aW9uIChzdHIsIHJhZGl4KSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChzdHIsIHJhZGl4IHx8IDEwKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRvQm9vbGVhbiA9IGZ1bmN0aW9uIChzdHIsIHN0cmljdCkge1xuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyID09PSAnMScgfHwgc3RyID09PSAndHJ1ZSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0ciAhPT0gJzAnICYmIHN0ciAhPT0gJ2ZhbHNlJyAmJiBzdHIgIT09ICcnO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuZXF1YWxzID0gZnVuY3Rpb24gKHN0ciwgY29tcGFyaXNvbikge1xuICAgICAgICByZXR1cm4gc3RyID09PSB2YWxpZGF0b3IudG9TdHJpbmcoY29tcGFyaXNvbik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5jb250YWlucyA9IGZ1bmN0aW9uIChzdHIsIGVsZW0pIHtcbiAgICAgICAgcmV0dXJuIHN0ci5pbmRleE9mKHZhbGlkYXRvci50b1N0cmluZyhlbGVtKSkgPj0gMDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLm1hdGNoZXMgPSBmdW5jdGlvbiAoc3RyLCBwYXR0ZXJuLCBtb2RpZmllcnMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChwYXR0ZXJuKSAhPT0gJ1tvYmplY3QgUmVnRXhwXScpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgUmVnRXhwKHBhdHRlcm4sIG1vZGlmaWVycyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdHRlcm4udGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YXIgZGVmYXVsdF9lbWFpbF9vcHRpb25zID0ge1xuICAgICAgICBhbGxvd19kaXNwbGF5X25hbWU6IGZhbHNlLFxuICAgICAgICBhbGxvd191dGY4X2xvY2FsX3BhcnQ6IHRydWUsXG4gICAgICAgIHJlcXVpcmVfdGxkOiB0cnVlXG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0VtYWlsID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gbWVyZ2Uob3B0aW9ucywgZGVmYXVsdF9lbWFpbF9vcHRpb25zKTtcblxuICAgICAgICBpZiAob3B0aW9ucy5hbGxvd19kaXNwbGF5X25hbWUpIHtcbiAgICAgICAgICAgIHZhciBkaXNwbGF5X2VtYWlsID0gc3RyLm1hdGNoKGRpc3BsYXlOYW1lKTtcbiAgICAgICAgICAgIGlmIChkaXNwbGF5X2VtYWlsKSB7XG4gICAgICAgICAgICAgICAgc3RyID0gZGlzcGxheV9lbWFpbFsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgvXFxzLy50ZXN0KHN0cikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgnQCcpXG4gICAgICAgICAgLCBkb21haW4gPSBwYXJ0cy5wb3AoKVxuICAgICAgICAgICwgdXNlciA9IHBhcnRzLmpvaW4oJ0AnKTtcblxuICAgICAgICBpZiAoIXZhbGlkYXRvci5pc0ZRRE4oZG9tYWluLCB7cmVxdWlyZV90bGQ6IG9wdGlvbnMucmVxdWlyZV90bGR9KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuYWxsb3dfdXRmOF9sb2NhbF9wYXJ0ID9cbiAgICAgICAgICAgIGVtYWlsVXNlclV0ZjgudGVzdCh1c2VyKSA6XG4gICAgICAgICAgICBlbWFpbFVzZXIudGVzdCh1c2VyKTtcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRfdXJsX29wdGlvbnMgPSB7XG4gICAgICAgIHByb3RvY29sczogWyAnaHR0cCcsICdodHRwcycsICdmdHAnIF1cbiAgICAgICwgcmVxdWlyZV90bGQ6IHRydWVcbiAgICAgICwgcmVxdWlyZV9wcm90b2NvbDogZmFsc2VcbiAgICAgICwgYWxsb3dfdW5kZXJzY29yZXM6IGZhbHNlXG4gICAgICAsIGFsbG93X3RyYWlsaW5nX2RvdDogZmFsc2VcbiAgICAgICwgYWxsb3dfcHJvdG9jb2xfcmVsYXRpdmVfdXJsczogZmFsc2VcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzVVJMID0gZnVuY3Rpb24gKHVybCwgb3B0aW9ucykge1xuICAgICAgICBpZiAoIXVybCB8fCB1cmwubGVuZ3RoID49IDIwODMgfHwgL1xccy8udGVzdCh1cmwpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCdtYWlsdG86JykgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zID0gbWVyZ2Uob3B0aW9ucywgZGVmYXVsdF91cmxfb3B0aW9ucyk7XG4gICAgICAgIHZhciBwcm90b2NvbCwgYXV0aCwgaG9zdCwgaG9zdG5hbWUsIHBvcnQsXG4gICAgICAgICAgICBwb3J0X3N0ciwgc3BsaXQ7XG4gICAgICAgIHNwbGl0ID0gdXJsLnNwbGl0KCc6Ly8nKTtcbiAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHByb3RvY29sID0gc3BsaXQuc2hpZnQoKTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnByb3RvY29scy5pbmRleE9mKHByb3RvY29sKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5yZXF1aXJlX3Byb3RvY29sKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gIGVsc2UgaWYgKG9wdGlvbnMuYWxsb3dfcHJvdG9jb2xfcmVsYXRpdmVfdXJscyAmJiB1cmwuc3Vic3RyKDAsIDIpID09PSAnLy8nKSB7XG4gICAgICAgICAgICBzcGxpdFswXSA9IHVybC5zdWJzdHIoMik7XG4gICAgICAgIH1cbiAgICAgICAgdXJsID0gc3BsaXQuam9pbignOi8vJyk7XG4gICAgICAgIHNwbGl0ID0gdXJsLnNwbGl0KCcjJyk7XG4gICAgICAgIHVybCA9IHNwbGl0LnNoaWZ0KCk7XG5cbiAgICAgICAgc3BsaXQgPSB1cmwuc3BsaXQoJz8nKTtcbiAgICAgICAgdXJsID0gc3BsaXQuc2hpZnQoKTtcblxuICAgICAgICBzcGxpdCA9IHVybC5zcGxpdCgnLycpO1xuICAgICAgICB1cmwgPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICBzcGxpdCA9IHVybC5zcGxpdCgnQCcpO1xuICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgYXV0aCA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgICAgICBpZiAoYXV0aC5pbmRleE9mKCc6JykgPj0gMCAmJiBhdXRoLnNwbGl0KCc6JykubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBob3N0bmFtZSA9IHNwbGl0LmpvaW4oJ0AnKTtcbiAgICAgICAgc3BsaXQgPSBob3N0bmFtZS5zcGxpdCgnOicpO1xuICAgICAgICBob3N0ID0gc3BsaXQuc2hpZnQoKTtcbiAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCkge1xuICAgICAgICAgICAgcG9ydF9zdHIgPSBzcGxpdC5qb2luKCc6Jyk7XG4gICAgICAgICAgICBwb3J0ID0gcGFyc2VJbnQocG9ydF9zdHIsIDEwKTtcbiAgICAgICAgICAgIGlmICghL15bMC05XSskLy50ZXN0KHBvcnRfc3RyKSB8fCBwb3J0IDw9IDAgfHwgcG9ydCA+IDY1NTM1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsaWRhdG9yLmlzSVAoaG9zdCkgJiYgIXZhbGlkYXRvci5pc0ZRRE4oaG9zdCwgb3B0aW9ucykgJiZcbiAgICAgICAgICAgICAgICBob3N0ICE9PSAnbG9jYWxob3N0Jykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmhvc3Rfd2hpdGVsaXN0ICYmXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5ob3N0X3doaXRlbGlzdC5pbmRleE9mKGhvc3QpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmhvc3RfYmxhY2tsaXN0ICYmXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5ob3N0X2JsYWNrbGlzdC5pbmRleE9mKGhvc3QpICE9PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNJUCA9IGZ1bmN0aW9uIChzdHIsIHZlcnNpb24pIHtcbiAgICAgICAgdmVyc2lvbiA9IHZhbGlkYXRvci50b1N0cmluZyh2ZXJzaW9uKTtcbiAgICAgICAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzSVAoc3RyLCA0KSB8fCB2YWxpZGF0b3IuaXNJUChzdHIsIDYpO1xuICAgICAgICB9IGVsc2UgaWYgKHZlcnNpb24gPT09ICc0Jykge1xuICAgICAgICAgICAgaWYgKCFpcHY0TWF5YmUudGVzdChzdHIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KCcuJykuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHBhcnRzWzNdIDw9IDI1NTtcbiAgICAgICAgfSBlbHNlIGlmICh2ZXJzaW9uID09PSAnNicpIHtcbiAgICAgICAgICAgIHZhciBibG9ja3MgPSBzdHIuc3BsaXQoJzonKTtcbiAgICAgICAgICAgIHZhciBmb3VuZE9taXNzaW9uQmxvY2sgPSBmYWxzZTsgLy8gbWFya2VyIHRvIGluZGljYXRlIDo6XG5cbiAgICAgICAgICAgIGlmIChibG9ja3MubGVuZ3RoID4gOClcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIGluaXRpYWwgb3IgZmluYWwgOjpcbiAgICAgICAgICAgIGlmIChzdHIgPT09ICc6OicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyLnN1YnN0cigwLCAyKSA9PT0gJzo6Jykge1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIGZvdW5kT21pc3Npb25CbG9jayA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0ci5zdWJzdHIoc3RyLmxlbmd0aCAtIDIpID09PSAnOjonKSB7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wb3AoKTtcbiAgICAgICAgICAgICAgICBmb3VuZE9taXNzaW9uQmxvY2sgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJsb2Nrcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIC8vIHRlc3QgZm9yIGEgOjogd2hpY2ggY2FuIG5vdCBiZSBhdCB0aGUgc3RyaW5nIHN0YXJ0L2VuZFxuICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRob3NlIGNhc2VzIGhhdmUgYmVlbiBoYW5kbGVkIGFib3ZlXG4gICAgICAgICAgICAgICAgaWYgKGJsb2Nrc1tpXSA9PT0gJycgJiYgaSA+IDAgJiYgaSA8IGJsb2Nrcy5sZW5ndGggLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kT21pc3Npb25CbG9jaylcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbXVsdGlwbGUgOjogaW4gYWRkcmVzc1xuICAgICAgICAgICAgICAgICAgICBmb3VuZE9taXNzaW9uQmxvY2sgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlwdjZCbG9jay50ZXN0KGJsb2Nrc1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZvdW5kT21pc3Npb25CbG9jaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBibG9ja3MubGVuZ3RoID49IDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBibG9ja3MubGVuZ3RoID09PSA4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRfZnFkbl9vcHRpb25zID0ge1xuICAgICAgICByZXF1aXJlX3RsZDogdHJ1ZVxuICAgICAgLCBhbGxvd191bmRlcnNjb3JlczogZmFsc2VcbiAgICAgICwgYWxsb3dfdHJhaWxpbmdfZG90OiBmYWxzZVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNGUUROID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gbWVyZ2Uob3B0aW9ucywgZGVmYXVsdF9mcWRuX29wdGlvbnMpO1xuXG4gICAgICAgIC8qIFJlbW92ZSB0aGUgb3B0aW9uYWwgdHJhaWxpbmcgZG90IGJlZm9yZSBjaGVja2luZyB2YWxpZGl0eSAqL1xuICAgICAgICBpZiAob3B0aW9ucy5hbGxvd190cmFpbGluZ19kb3QgJiYgc3RyW3N0ci5sZW5ndGggLSAxXSA9PT0gJy4nKSB7XG4gICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKG9wdGlvbnMucmVxdWlyZV90bGQpIHtcbiAgICAgICAgICAgIHZhciB0bGQgPSBwYXJ0cy5wb3AoKTtcbiAgICAgICAgICAgIGlmICghcGFydHMubGVuZ3RoIHx8ICEvXihbYS16XFx1MDBhMS1cXHVmZmZmXXsyLH18eG5bYS16MC05LV17Mix9KSQvaS50ZXN0KHRsZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgcGFydCwgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfdW5kZXJzY29yZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocGFydC5pbmRleE9mKCdfXycpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJ0ID0gcGFydC5yZXBsYWNlKC9fL2csICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghL15bYS16XFx1MDBhMS1cXHVmZmZmMC05LV0rJC9pLnRlc3QocGFydCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFydFswXSA9PT0gJy0nIHx8IHBhcnRbcGFydC5sZW5ndGggLSAxXSA9PT0gJy0nIHx8XG4gICAgICAgICAgICAgICAgICAgIHBhcnQuaW5kZXhPZignLS0tJykgPj0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQm9vbGVhbiA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgICByZXR1cm4gKFsndHJ1ZScsICdmYWxzZScsICcxJywgJzAnXS5pbmRleE9mKHN0cikgPj0gMCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0FscGhhID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gYWxwaGEudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNBbHBoYW51bWVyaWMgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBhbHBoYW51bWVyaWMudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNOdW1lcmljID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gbnVtZXJpYy50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0hleGFkZWNpbWFsID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gaGV4YWRlY2ltYWwudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNIZXhDb2xvciA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGhleGNvbG9yLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTG93ZXJjYXNlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gc3RyID09PSBzdHIudG9Mb3dlckNhc2UoKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzVXBwZXJjYXNlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gc3RyID09PSBzdHIudG9VcHBlckNhc2UoKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSW50ID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGludC50ZXN0KHN0cikgJiYgKCFvcHRpb25zLmhhc093blByb3BlcnR5KCdtaW4nKSB8fCBzdHIgPj0gb3B0aW9ucy5taW4pICYmICghb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnbWF4JykgfHwgc3RyIDw9IG9wdGlvbnMubWF4KTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRmxvYXQgPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICByZXR1cm4gc3RyICE9PSAnJyAmJiBmbG9hdC50ZXN0KHN0cikgJiYgKCFvcHRpb25zLmhhc093blByb3BlcnR5KCdtaW4nKSB8fCBzdHIgPj0gb3B0aW9ucy5taW4pICYmICghb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnbWF4JykgfHwgc3RyIDw9IG9wdGlvbnMubWF4KTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRGl2aXNpYmxlQnkgPSBmdW5jdGlvbiAoc3RyLCBudW0pIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvci50b0Zsb2F0KHN0cikgJSB2YWxpZGF0b3IudG9JbnQobnVtKSA9PT0gMDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTnVsbCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN0ci5sZW5ndGggPT09IDA7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0xlbmd0aCA9IGZ1bmN0aW9uIChzdHIsIG1pbiwgbWF4KSB7XG4gICAgICAgIHZhciBzdXJyb2dhdGVQYWlycyA9IHN0ci5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nKSB8fCBbXTtcbiAgICAgICAgdmFyIGxlbiA9IHN0ci5sZW5ndGggLSBzdXJyb2dhdGVQYWlycy5sZW5ndGg7XG4gICAgICAgIHJldHVybiBsZW4gPj0gbWluICYmICh0eXBlb2YgbWF4ID09PSAndW5kZWZpbmVkJyB8fCBsZW4gPD0gbWF4KTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQnl0ZUxlbmd0aCA9IGZ1bmN0aW9uIChzdHIsIG1pbiwgbWF4KSB7XG4gICAgICAgIHJldHVybiBzdHIubGVuZ3RoID49IG1pbiAmJiAodHlwZW9mIG1heCA9PT0gJ3VuZGVmaW5lZCcgfHwgc3RyLmxlbmd0aCA8PSBtYXgpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNVVUlEID0gZnVuY3Rpb24gKHN0ciwgdmVyc2lvbikge1xuICAgICAgICB2YXIgcGF0dGVybiA9IHV1aWRbdmVyc2lvbiA/IHZlcnNpb24gOiAnYWxsJ107XG4gICAgICAgIHJldHVybiBwYXR0ZXJuICYmIHBhdHRlcm4udGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNEYXRlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gIWlzTmFOKERhdGUucGFyc2Uoc3RyKSk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0FmdGVyID0gZnVuY3Rpb24gKHN0ciwgZGF0ZSkge1xuICAgICAgICB2YXIgY29tcGFyaXNvbiA9IHZhbGlkYXRvci50b0RhdGUoZGF0ZSB8fCBuZXcgRGF0ZSgpKVxuICAgICAgICAgICwgb3JpZ2luYWwgPSB2YWxpZGF0b3IudG9EYXRlKHN0cik7XG4gICAgICAgIHJldHVybiAhIShvcmlnaW5hbCAmJiBjb21wYXJpc29uICYmIG9yaWdpbmFsID4gY29tcGFyaXNvbik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0JlZm9yZSA9IGZ1bmN0aW9uIChzdHIsIGRhdGUpIHtcbiAgICAgICAgdmFyIGNvbXBhcmlzb24gPSB2YWxpZGF0b3IudG9EYXRlKGRhdGUgfHwgbmV3IERhdGUoKSlcbiAgICAgICAgICAsIG9yaWdpbmFsID0gdmFsaWRhdG9yLnRvRGF0ZShzdHIpO1xuICAgICAgICByZXR1cm4gb3JpZ2luYWwgJiYgY29tcGFyaXNvbiAmJiBvcmlnaW5hbCA8IGNvbXBhcmlzb247XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0luID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuICAgICAgICB2YXIgaTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvcHRpb25zKSA9PT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgICAgICAgdmFyIGFycmF5ID0gW107XG4gICAgICAgICAgICBmb3IgKGkgaW4gb3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdmFsaWRhdG9yLnRvU3RyaW5nKG9wdGlvbnNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2Yoc3RyKSA+PSAwO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoc3RyKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmluZGV4T2YgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmluZGV4T2Yoc3RyKSA+PSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQ3JlZGl0Q2FyZCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgdmFyIHNhbml0aXplZCA9IHN0ci5yZXBsYWNlKC9bXjAtOV0rL2csICcnKTtcbiAgICAgICAgaWYgKCFjcmVkaXRDYXJkLnRlc3Qoc2FuaXRpemVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdW0gPSAwLCBkaWdpdCwgdG1wTnVtLCBzaG91bGREb3VibGU7XG4gICAgICAgIGZvciAodmFyIGkgPSBzYW5pdGl6ZWQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGRpZ2l0ID0gc2FuaXRpemVkLnN1YnN0cmluZyhpLCAoaSArIDEpKTtcbiAgICAgICAgICAgIHRtcE51bSA9IHBhcnNlSW50KGRpZ2l0LCAxMCk7XG4gICAgICAgICAgICBpZiAoc2hvdWxkRG91YmxlKSB7XG4gICAgICAgICAgICAgICAgdG1wTnVtICo9IDI7XG4gICAgICAgICAgICAgICAgaWYgKHRtcE51bSA+PSAxMCkge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gKCh0bXBOdW0gJSAxMCkgKyAxKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gdG1wTnVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VtICs9IHRtcE51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNob3VsZERvdWJsZSA9ICFzaG91bGREb3VibGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhKChzdW0gJSAxMCkgPT09IDAgPyBzYW5pdGl6ZWQgOiBmYWxzZSk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0lTSU4gPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIGlmICghaXNpbi50ZXN0KHN0cikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaGVja3N1bVN0ciA9IHN0ci5yZXBsYWNlKC9bQS1aXS9nLCBmdW5jdGlvbihjaGFyYWN0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChjaGFyYWN0ZXIsIDM2KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIHN1bSA9IDAsIGRpZ2l0LCB0bXBOdW0sIHNob3VsZERvdWJsZSA9IHRydWU7XG4gICAgICAgIGZvciAodmFyIGkgPSBjaGVja3N1bVN0ci5sZW5ndGggLSAyOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgZGlnaXQgPSBjaGVja3N1bVN0ci5zdWJzdHJpbmcoaSwgKGkgKyAxKSk7XG4gICAgICAgICAgICB0bXBOdW0gPSBwYXJzZUludChkaWdpdCwgMTApO1xuICAgICAgICAgICAgaWYgKHNob3VsZERvdWJsZSkge1xuICAgICAgICAgICAgICAgIHRtcE51bSAqPSAyO1xuICAgICAgICAgICAgICAgIGlmICh0bXBOdW0gPj0gMTApIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IHRtcE51bSArIDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IHRtcE51bTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaG91bGREb3VibGUgPSAhc2hvdWxkRG91YmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHN0ci5zdWJzdHIoc3RyLmxlbmd0aCAtIDEpLCAxMCkgPT09ICgxMDAwMCAtIHN1bSkgJSAxMDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSVNCTiA9IGZ1bmN0aW9uIChzdHIsIHZlcnNpb24pIHtcbiAgICAgICAgdmVyc2lvbiA9IHZhbGlkYXRvci50b1N0cmluZyh2ZXJzaW9uKTtcbiAgICAgICAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzSVNCTihzdHIsIDEwKSB8fCB2YWxpZGF0b3IuaXNJU0JOKHN0ciwgMTMpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzYW5pdGl6ZWQgPSBzdHIucmVwbGFjZSgvW1xccy1dKy9nLCAnJylcbiAgICAgICAgICAsIGNoZWNrc3VtID0gMCwgaTtcbiAgICAgICAgaWYgKHZlcnNpb24gPT09ICcxMCcpIHtcbiAgICAgICAgICAgIGlmICghaXNibjEwTWF5YmUudGVzdChzYW5pdGl6ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykge1xuICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9IChpICsgMSkgKiBzYW5pdGl6ZWQuY2hhckF0KGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNhbml0aXplZC5jaGFyQXQoOSkgPT09ICdYJykge1xuICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9IDEwICogMTA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9IDEwICogc2FuaXRpemVkLmNoYXJBdCg5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoY2hlY2tzdW0gJSAxMSkgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFzYW5pdGl6ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSAgaWYgKHZlcnNpb24gPT09ICcxMycpIHtcbiAgICAgICAgICAgIGlmICghaXNibjEzTWF5YmUudGVzdChzYW5pdGl6ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGZhY3RvciA9IFsgMSwgMyBdO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bSArPSBmYWN0b3JbaSAlIDJdICogc2FuaXRpemVkLmNoYXJBdChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzYW5pdGl6ZWQuY2hhckF0KDEyKSAtICgoMTAgLSAoY2hlY2tzdW0gJSAxMCkpICUgMTApID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhc2FuaXRpemVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTW9iaWxlUGhvbmUgPSBmdW5jdGlvbihzdHIsIGxvY2FsZSkge1xuICAgICAgICBpZiAobG9jYWxlIGluIHBob25lcykge1xuICAgICAgICAgICAgcmV0dXJuIHBob25lc1tsb2NhbGVdLnRlc3Qoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIHZhciBkZWZhdWx0X2N1cnJlbmN5X29wdGlvbnMgPSB7XG4gICAgICAgIHN5bWJvbDogJyQnXG4gICAgICAsIHJlcXVpcmVfc3ltYm9sOiBmYWxzZVxuICAgICAgLCBhbGxvd19zcGFjZV9hZnRlcl9zeW1ib2w6IGZhbHNlXG4gICAgICAsIHN5bWJvbF9hZnRlcl9kaWdpdHM6IGZhbHNlXG4gICAgICAsIGFsbG93X25lZ2F0aXZlczogdHJ1ZVxuICAgICAgLCBwYXJlbnNfZm9yX25lZ2F0aXZlczogZmFsc2VcbiAgICAgICwgbmVnYXRpdmVfc2lnbl9iZWZvcmVfZGlnaXRzOiBmYWxzZVxuICAgICAgLCBuZWdhdGl2ZV9zaWduX2FmdGVyX2RpZ2l0czogZmFsc2VcbiAgICAgICwgYWxsb3dfbmVnYXRpdmVfc2lnbl9wbGFjZWhvbGRlcjogZmFsc2VcbiAgICAgICwgdGhvdXNhbmRzX3NlcGFyYXRvcjogJywnXG4gICAgICAsIGRlY2ltYWxfc2VwYXJhdG9yOiAnLidcbiAgICAgICwgYWxsb3dfc3BhY2VfYWZ0ZXJfZGlnaXRzOiBmYWxzZVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNDdXJyZW5jeSA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfY3VycmVuY3lfb3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbmN5UmVnZXgob3B0aW9ucykudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNKU09OID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc011bHRpYnl0ZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIG11bHRpYnl0ZS50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0FzY2lpID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gYXNjaWkudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNGdWxsV2lkdGggPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBmdWxsV2lkdGgudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNIYWxmV2lkdGggPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBoYWxmV2lkdGgudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNWYXJpYWJsZVdpZHRoID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gZnVsbFdpZHRoLnRlc3Qoc3RyKSAmJiBoYWxmV2lkdGgudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNTdXJyb2dhdGVQYWlyID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gc3Vycm9nYXRlUGFpci50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0Jhc2U2NCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGJhc2U2NC50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc01vbmdvSWQgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNIZXhhZGVjaW1hbChzdHIpICYmIHN0ci5sZW5ndGggPT09IDI0O1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IubHRyaW0gPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICB2YXIgcGF0dGVybiA9IGNoYXJzID8gbmV3IFJlZ0V4cCgnXlsnICsgY2hhcnMgKyAnXSsnLCAnZycpIDogL15cXHMrL2c7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShwYXR0ZXJuLCAnJyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5ydHJpbSA9IGZ1bmN0aW9uIChzdHIsIGNoYXJzKSB7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gY2hhcnMgPyBuZXcgUmVnRXhwKCdbJyArIGNoYXJzICsgJ10rJCcsICdnJykgOiAvXFxzKyQvZztcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKHBhdHRlcm4sICcnKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRyaW0gPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICB2YXIgcGF0dGVybiA9IGNoYXJzID8gbmV3IFJlZ0V4cCgnXlsnICsgY2hhcnMgKyAnXSt8WycgKyBjaGFycyArICddKyQnLCAnZycpIDogL15cXHMrfFxccyskL2c7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShwYXR0ZXJuLCAnJyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5lc2NhcGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiAoc3RyLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8nL2csICcmI3gyNzsnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnJiN4MkY7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGAvZywgJyYjOTY7JykpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3Iuc3RyaXBMb3cgPSBmdW5jdGlvbiAoc3RyLCBrZWVwX25ld19saW5lcykge1xuICAgICAgICB2YXIgY2hhcnMgPSBrZWVwX25ld19saW5lcyA/ICdcXFxceDAwLVxcXFx4MDlcXFxceDBCXFxcXHgwQ1xcXFx4MEUtXFxcXHgxRlxcXFx4N0YnIDogJ1xcXFx4MDAtXFxcXHgxRlxcXFx4N0YnO1xuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmJsYWNrbGlzdChzdHIsIGNoYXJzKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLndoaXRlbGlzdCA9IGZ1bmN0aW9uIChzdHIsIGNoYXJzKSB7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKCdbXicgKyBjaGFycyArICddKycsICdnJyksICcnKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmJsYWNrbGlzdCA9IGZ1bmN0aW9uIChzdHIsIGNoYXJzKSB7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKCdbJyArIGNoYXJzICsgJ10rJywgJ2cnKSwgJycpO1xuICAgIH07XG5cbiAgICB2YXIgZGVmYXVsdF9ub3JtYWxpemVfZW1haWxfb3B0aW9ucyA9IHtcbiAgICAgICAgbG93ZXJjYXNlOiB0cnVlXG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5ub3JtYWxpemVFbWFpbCA9IGZ1bmN0aW9uIChlbWFpbCwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gbWVyZ2Uob3B0aW9ucywgZGVmYXVsdF9ub3JtYWxpemVfZW1haWxfb3B0aW9ucyk7XG4gICAgICAgIGlmICghdmFsaWRhdG9yLmlzRW1haWwoZW1haWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcnRzID0gZW1haWwuc3BsaXQoJ0AnLCAyKTtcbiAgICAgICAgcGFydHNbMV0gPSBwYXJ0c1sxXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAocGFydHNbMV0gPT09ICdnbWFpbC5jb20nIHx8IHBhcnRzWzFdID09PSAnZ29vZ2xlbWFpbC5jb20nKSB7XG4gICAgICAgICAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFwuL2csICcnKTtcbiAgICAgICAgICAgIGlmIChwYXJ0c1swXVswXSA9PT0gJysnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5zcGxpdCgnKycpWzBdO1xuICAgICAgICAgICAgcGFydHNbMV0gPSAnZ21haWwuY29tJztcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmxvd2VyY2FzZSkge1xuICAgICAgICAgICAgcGFydHNbMF0gPSBwYXJ0c1swXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJ0cy5qb2luKCdAJyk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1lcmdlKG9iaiwgZGVmYXVsdHMpIHtcbiAgICAgICAgb2JqID0gb2JqIHx8IHt9O1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGVmYXVsdHMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgb2JqW2tleV0gPSBkZWZhdWx0c1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3VycmVuY3lSZWdleChvcHRpb25zKSB7XG4gICAgICAgIHZhciBzeW1ib2wgPSAnKFxcXFwnICsgb3B0aW9ucy5zeW1ib2wucmVwbGFjZSgvXFwuL2csICdcXFxcLicpICsgJyknICsgKG9wdGlvbnMucmVxdWlyZV9zeW1ib2wgPyAnJyA6ICc/JylcbiAgICAgICAgICAgICwgbmVnYXRpdmUgPSAnLT8nXG4gICAgICAgICAgICAsIHdob2xlX2RvbGxhcl9hbW91bnRfd2l0aG91dF9zZXAgPSAnWzEtOV1cXFxcZConXG4gICAgICAgICAgICAsIHdob2xlX2RvbGxhcl9hbW91bnRfd2l0aF9zZXAgPSAnWzEtOV1cXFxcZHswLDJ9KFxcXFwnICsgb3B0aW9ucy50aG91c2FuZHNfc2VwYXJhdG9yICsgJ1xcXFxkezN9KSonXG4gICAgICAgICAgICAsIHZhbGlkX3dob2xlX2RvbGxhcl9hbW91bnRzID0gWycwJywgd2hvbGVfZG9sbGFyX2Ftb3VudF93aXRob3V0X3NlcCwgd2hvbGVfZG9sbGFyX2Ftb3VudF93aXRoX3NlcF1cbiAgICAgICAgICAgICwgd2hvbGVfZG9sbGFyX2Ftb3VudCA9ICcoJyArIHZhbGlkX3dob2xlX2RvbGxhcl9hbW91bnRzLmpvaW4oJ3wnKSArICcpPydcbiAgICAgICAgICAgICwgZGVjaW1hbF9hbW91bnQgPSAnKFxcXFwnICsgb3B0aW9ucy5kZWNpbWFsX3NlcGFyYXRvciArICdcXFxcZHsyfSk/JztcbiAgICAgICAgdmFyIHBhdHRlcm4gPSB3aG9sZV9kb2xsYXJfYW1vdW50ICsgZGVjaW1hbF9hbW91bnQ7XG4gICAgICAgIC8vIGRlZmF1bHQgaXMgbmVnYXRpdmUgc2lnbiBiZWZvcmUgc3ltYm9sLCBidXQgdGhlcmUgYXJlIHR3byBvdGhlciBvcHRpb25zIChiZXNpZGVzIHBhcmVucylcbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfbmVnYXRpdmVzICYmICFvcHRpb25zLnBhcmVuc19mb3JfbmVnYXRpdmVzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5uZWdhdGl2ZV9zaWduX2FmdGVyX2RpZ2l0cykge1xuICAgICAgICAgICAgICAgIHBhdHRlcm4gKz0gbmVnYXRpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChvcHRpb25zLm5lZ2F0aXZlX3NpZ25fYmVmb3JlX2RpZ2l0cykge1xuICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBuZWdhdGl2ZSArIHBhdHRlcm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gU291dGggQWZyaWNhbiBSYW5kLCBmb3IgZXhhbXBsZSwgdXNlcyBSIDEyMyAoc3BhY2UpIGFuZCBSLTEyMyAobm8gc3BhY2UpXG4gICAgICAgIGlmIChvcHRpb25zLmFsbG93X25lZ2F0aXZlX3NpZ25fcGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gPSAnKCAoPyFcXFxcLSkpPycgKyBwYXR0ZXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbnMuYWxsb3dfc3BhY2VfYWZ0ZXJfc3ltYm9sKSB7XG4gICAgICAgICAgICBwYXR0ZXJuID0gJyA/JyArIHBhdHRlcm47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5hbGxvd19zcGFjZV9hZnRlcl9kaWdpdHMpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gKz0gJyggKD8hJCkpPyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuc3ltYm9sX2FmdGVyX2RpZ2l0cykge1xuICAgICAgICAgICAgcGF0dGVybiArPSBzeW1ib2w7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXR0ZXJuID0gc3ltYm9sICsgcGF0dGVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hbGxvd19uZWdhdGl2ZXMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhcmVuc19mb3JfbmVnYXRpdmVzKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiA9ICcoXFxcXCgnICsgcGF0dGVybiArICdcXFxcKXwnICsgcGF0dGVybiArICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCEob3B0aW9ucy5uZWdhdGl2ZV9zaWduX2JlZm9yZV9kaWdpdHMgfHwgb3B0aW9ucy5uZWdhdGl2ZV9zaWduX2FmdGVyX2RpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuID0gbmVnYXRpdmUgKyBwYXR0ZXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ14nICtcbiAgICAgICAgICAgIC8vIGVuc3VyZSB0aGVyZSdzIGEgZG9sbGFyIGFuZC9vciBkZWNpbWFsIGFtb3VudCwgYW5kIHRoYXQgaXQgZG9lc24ndCBzdGFydCB3aXRoIGEgc3BhY2Ugb3IgYSBuZWdhdGl2ZSBzaWduIGZvbGxvd2VkIGJ5IGEgc3BhY2VcbiAgICAgICAgICAgICcoPyEtPyApKD89LipcXFxcZCknICtcbiAgICAgICAgICAgIHBhdHRlcm4gK1xuICAgICAgICAgICAgJyQnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFsaWRhdG9yLmluaXQoKTtcblxuICAgIHJldHVybiB2YWxpZGF0b3I7XG5cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXG4gICAgSU5WQUxJRF9UWVBFOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgdHlwZSB7MH0gYnV0IGZvdW5kIHR5cGUgezF9XCIsXG4gICAgSU5WQUxJRF9GT1JNQVQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFwiT2JqZWN0IGRpZG4ndCBwYXNzIHZhbGlkYXRpb24gZm9yIGZvcm1hdCB7MH06IHsxfVwiLFxuICAgIEVOVU1fTUlTTUFUQ0g6ICAgICAgICAgICAgICAgICAgICAgICAgICBcIk5vIGVudW0gbWF0Y2ggZm9yOiB7MH1cIixcbiAgICBBTllfT0ZfTUlTU0lORzogICAgICAgICAgICAgICAgICAgICAgICAgXCJEYXRhIGRvZXMgbm90IG1hdGNoIGFueSBzY2hlbWFzIGZyb20gJ2FueU9mJ1wiLFxuICAgIE9ORV9PRl9NSVNTSU5HOiAgICAgICAgICAgICAgICAgICAgICAgICBcIkRhdGEgZG9lcyBub3QgbWF0Y2ggYW55IHNjaGVtYXMgZnJvbSAnb25lT2YnXCIsXG4gICAgT05FX09GX01VTFRJUExFOiAgICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YSBpcyB2YWxpZCBhZ2FpbnN0IG1vcmUgdGhhbiBvbmUgc2NoZW1hIGZyb20gJ29uZU9mJ1wiLFxuICAgIE5PVF9QQVNTRUQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRhdGEgbWF0Y2hlcyBzY2hlbWEgZnJvbSAnbm90J1wiLFxuXG4gICAgLy8gQXJyYXkgZXJyb3JzXG4gICAgQVJSQVlfTEVOR1RIX1NIT1JUOiAgICAgICAgICAgICAgICAgICAgIFwiQXJyYXkgaXMgdG9vIHNob3J0ICh7MH0pLCBtaW5pbXVtIHsxfVwiLFxuICAgIEFSUkFZX0xFTkdUSF9MT05HOiAgICAgICAgICAgICAgICAgICAgICBcIkFycmF5IGlzIHRvbyBsb25nICh7MH0pLCBtYXhpbXVtIHsxfVwiLFxuICAgIEFSUkFZX1VOSVFVRTogICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycmF5IGl0ZW1zIGFyZSBub3QgdW5pcXVlIChpbmRleGVzIHswfSBhbmQgezF9KVwiLFxuICAgIEFSUkFZX0FERElUSU9OQUxfSVRFTVM6ICAgICAgICAgICAgICAgICBcIkFkZGl0aW9uYWwgaXRlbXMgbm90IGFsbG93ZWRcIixcblxuICAgIC8vIE51bWVyaWMgZXJyb3JzXG4gICAgTVVMVElQTEVfT0Y6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWUgezB9IGlzIG5vdCBhIG11bHRpcGxlIG9mIHsxfVwiLFxuICAgIE1JTklNVU06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlIHswfSBpcyBsZXNzIHRoYW4gbWluaW11bSB7MX1cIixcbiAgICBNSU5JTVVNX0VYQ0xVU0lWRTogICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZSB7MH0gaXMgZXF1YWwgb3IgbGVzcyB0aGFuIGV4Y2x1c2l2ZSBtaW5pbXVtIHsxfVwiLFxuICAgIE1BWElNVU06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlIHswfSBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSB7MX1cIixcbiAgICBNQVhJTVVNX0VYQ0xVU0lWRTogICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZSB7MH0gaXMgZXF1YWwgb3IgZ3JlYXRlciB0aGFuIGV4Y2x1c2l2ZSBtYXhpbXVtIHsxfVwiLFxuXG4gICAgLy8gT2JqZWN0IGVycm9yc1xuICAgIE9CSkVDVF9QUk9QRVJUSUVTX01JTklNVU06ICAgICAgICAgICAgICBcIlRvbyBmZXcgcHJvcGVydGllcyBkZWZpbmVkICh7MH0pLCBtaW5pbXVtIHsxfVwiLFxuICAgIE9CSkVDVF9QUk9QRVJUSUVTX01BWElNVU06ICAgICAgICAgICAgICBcIlRvbyBtYW55IHByb3BlcnRpZXMgZGVmaW5lZCAoezB9KSwgbWF4aW11bSB7MX1cIixcbiAgICBPQkpFQ1RfTUlTU0lOR19SRVFVSVJFRF9QUk9QRVJUWTogICAgICAgXCJNaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5OiB7MH1cIixcbiAgICBPQkpFQ1RfQURESVRJT05BTF9QUk9QRVJUSUVTOiAgICAgICAgICAgXCJBZGRpdGlvbmFsIHByb3BlcnRpZXMgbm90IGFsbG93ZWQ6IHswfVwiLFxuICAgIE9CSkVDVF9ERVBFTkRFTkNZX0tFWTogICAgICAgICAgICAgICAgICBcIkRlcGVuZGVuY3kgZmFpbGVkIC0ga2V5IG11c3QgZXhpc3Q6IHswfSAoZHVlIHRvIGtleTogezF9KVwiLFxuXG4gICAgLy8gU3RyaW5nIGVycm9yc1xuICAgIE1JTl9MRU5HVEg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN0cmluZyBpcyB0b28gc2hvcnQgKHswfSBjaGFycyksIG1pbmltdW0gezF9XCIsXG4gICAgTUFYX0xFTkdUSDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RyaW5nIGlzIHRvbyBsb25nICh7MH0gY2hhcnMpLCBtYXhpbXVtIHsxfVwiLFxuICAgIFBBVFRFUk46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN0cmluZyBkb2VzIG5vdCBtYXRjaCBwYXR0ZXJuIHswfTogezF9XCIsXG5cbiAgICAvLyBTY2hlbWEgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICBLRVlXT1JEX1RZUEVfRVhQRUNURUQ6ICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIGlzIGV4cGVjdGVkIHRvIGJlIG9mIHR5cGUgJ3sxfSdcIixcbiAgICBLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1Q6ICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIG11c3QgYmUgZGVmaW5lZCBpbiBzdHJpY3QgbW9kZVwiLFxuICAgIEtFWVdPUkRfVU5FWFBFQ1RFRDogICAgICAgICAgICAgICAgICAgICBcIktleXdvcmQgJ3swfScgaXMgbm90IGV4cGVjdGVkIHRvIGFwcGVhciBpbiB0aGUgc2NoZW1hXCIsXG4gICAgS0VZV09SRF9NVVNUX0JFOiAgICAgICAgICAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyBtdXN0IGJlIHsxfVwiLFxuICAgIEtFWVdPUkRfREVQRU5ERU5DWTogICAgICAgICAgICAgICAgICAgICBcIktleXdvcmQgJ3swfScgcmVxdWlyZXMga2V5d29yZCAnezF9J1wiLFxuICAgIEtFWVdPUkRfUEFUVEVSTjogICAgICAgICAgICAgICAgICAgICAgICBcIktleXdvcmQgJ3swfScgaXMgbm90IGEgdmFsaWQgUmVnRXhwIHBhdHRlcm46IHsxfVwiLFxuICAgIEtFWVdPUkRfVkFMVUVfVFlQRTogICAgICAgICAgICAgICAgICAgICBcIkVhY2ggZWxlbWVudCBvZiBrZXl3b3JkICd7MH0nIGFycmF5IG11c3QgYmUgYSAnezF9J1wiLFxuICAgIFVOS05PV05fRk9STUFUOiAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZXJlIGlzIG5vIHZhbGlkYXRpb24gZnVuY3Rpb24gZm9yIGZvcm1hdCAnezB9J1wiLFxuICAgIENVU1RPTV9NT0RFX0ZPUkNFX1BST1BFUlRJRVM6ICAgICAgICAgICBcInswfSBtdXN0IGRlZmluZSBhdCBsZWFzdCBvbmUgcHJvcGVydHkgaWYgcHJlc2VudFwiLFxuXG4gICAgLy8gUmVtb3RlIGVycm9yc1xuICAgIFJFRl9VTlJFU09MVkVEOiAgICAgICAgICAgICAgICAgICAgICAgICBcIlJlZmVyZW5jZSBoYXMgbm90IGJlZW4gcmVzb2x2ZWQgZHVyaW5nIGNvbXBpbGF0aW9uOiB7MH1cIixcbiAgICBVTlJFU09MVkFCTEVfUkVGRVJFTkNFOiAgICAgICAgICAgICAgICAgXCJSZWZlcmVuY2UgY291bGQgbm90IGJlIHJlc29sdmVkOiB7MH1cIixcbiAgICBTQ0hFTUFfTk9UX1JFQUNIQUJMRTogICAgICAgICAgICAgICAgICAgXCJWYWxpZGF0b3Igd2FzIG5vdCBhYmxlIHRvIHJlYWQgc2NoZW1hIHdpdGggdXJpOiB7MH1cIixcbiAgICBTQ0hFTUFfVFlQRV9FWFBFQ1RFRDogICAgICAgICAgICAgICAgICAgXCJTY2hlbWEgaXMgZXhwZWN0ZWQgdG8gYmUgb2YgdHlwZSAnb2JqZWN0J1wiLFxuICAgIFNDSEVNQV9OT1RfQU5fT0JKRUNUOiAgICAgICAgICAgICAgICAgICBcIlNjaGVtYSBpcyBub3QgYW4gb2JqZWN0OiB7MH1cIixcbiAgICBBU1lOQ19USU1FT1VUOiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ7MH0gYXN5bmNocm9ub3VzIHRhc2socykgaGF2ZSB0aW1lZCBvdXQgYWZ0ZXIgezF9IG1zXCIsXG4gICAgUEFSRU5UX1NDSEVNQV9WQUxJREFUSU9OX0ZBSUxFRDogICAgICAgIFwiU2NoZW1hIGZhaWxlZCB0byB2YWxpZGF0ZSBhZ2FpbnN0IGl0cyBwYXJlbnQgc2NoZW1hLCBzZWUgaW5uZXIgZXJyb3JzIGZvciBkZXRhaWxzLlwiLFxuICAgIFJFTU9URV9OT1RfVkFMSUQ6ICAgICAgICAgICAgICAgICAgICAgICBcIlJlbW90ZSByZWZlcmVuY2UgZGlkbid0IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5OiB7MH1cIlxuXG59O1xuIiwiLypqc2hpbnQgbWF4bGVuOiBmYWxzZSovXG5cbnZhciB2YWxpZGF0b3IgPSByZXF1aXJlKFwidmFsaWRhdG9yXCIpO1xuXG52YXIgRm9ybWF0VmFsaWRhdG9ycyA9IHtcbiAgICBcImRhdGVcIjogZnVuY3Rpb24gKGRhdGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBmdWxsLWRhdGUgZnJvbSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42XG4gICAgICAgIHZhciBtYXRjaGVzID0gL14oWzAtOV17NH0pLShbMC05XXsyfSktKFswLTldezJ9KSQvLmV4ZWMoZGF0ZSk7XG4gICAgICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdmFyIHllYXIgPSBtYXRjaGVzWzFdO1xuICAgICAgICAvLyB2YXIgbW9udGggPSBtYXRjaGVzWzJdO1xuICAgICAgICAvLyB2YXIgZGF5ID0gbWF0Y2hlc1szXTtcbiAgICAgICAgaWYgKG1hdGNoZXNbMl0gPCBcIjAxXCIgfHwgbWF0Y2hlc1syXSA+IFwiMTJcIiB8fCBtYXRjaGVzWzNdIDwgXCIwMVwiIHx8IG1hdGNoZXNbM10gPiBcIjMxXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIFwiZGF0ZS10aW1lXCI6IGZ1bmN0aW9uIChkYXRlVGltZSkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGVUaW1lICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkYXRlLXRpbWUgZnJvbSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42XG4gICAgICAgIHZhciBzID0gZGF0ZVRpbWUudG9Mb3dlckNhc2UoKS5zcGxpdChcInRcIik7XG4gICAgICAgIGlmICghRm9ybWF0VmFsaWRhdG9ycy5kYXRlKHNbMF0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1hdGNoZXMgPSAvXihbMC05XXsyfSk6KFswLTldezJ9KTooWzAtOV17Mn0pKC5bMC05XSspPyh6fChbKy1dWzAtOV17Mn06WzAtOV17Mn0pKSQvLmV4ZWMoc1sxXSk7XG4gICAgICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdmFyIGhvdXIgPSBtYXRjaGVzWzFdO1xuICAgICAgICAvLyB2YXIgbWludXRlID0gbWF0Y2hlc1syXTtcbiAgICAgICAgLy8gdmFyIHNlY29uZCA9IG1hdGNoZXNbM107XG4gICAgICAgIC8vIHZhciBmcmFjdGlvbiA9IG1hdGNoZXNbNF07XG4gICAgICAgIC8vIHZhciB0aW1lem9uZSA9IG1hdGNoZXNbNV07XG4gICAgICAgIGlmIChtYXRjaGVzWzFdID4gXCIyM1wiIHx8IG1hdGNoZXNbMl0gPiBcIjU5XCIgfHwgbWF0Y2hlc1szXSA+IFwiNTlcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gICAgXCJlbWFpbFwiOiBmdW5jdGlvbiAoZW1haWwpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbWFpbCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0VtYWlsKGVtYWlsLCB7IFwicmVxdWlyZV90bGRcIjogdHJ1ZSB9KTtcbiAgICB9LFxuICAgIFwiaG9zdG5hbWVcIjogZnVuY3Rpb24gKGhvc3RuYW1lKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaG9zdG5hbWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8qXG4gICAgICAgICAgICBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjYW5jaG9yMTE0XG4gICAgICAgICAgICBBIHN0cmluZyBpbnN0YW5jZSBpcyB2YWxpZCBhZ2FpbnN0IHRoaXMgYXR0cmlidXRlIGlmIGl0IGlzIGEgdmFsaWRcbiAgICAgICAgICAgIHJlcHJlc2VudGF0aW9uIGZvciBhbiBJbnRlcm5ldCBob3N0IG5hbWUsIGFzIGRlZmluZWQgYnkgUkZDIDEwMzQsIHNlY3Rpb24gMy4xIFtSRkMxMDM0XS5cblxuICAgICAgICAgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNCNzZWN0aW9uLTMuNVxuXG4gICAgICAgICAgICA8ZGlnaXQ+IDo6PSBhbnkgb25lIG9mIHRoZSB0ZW4gZGlnaXRzIDAgdGhyb3VnaCA5XG4gICAgICAgICAgICB2YXIgZGlnaXQgPSAvWzAtOV0vO1xuXG4gICAgICAgICAgICA8bGV0dGVyPiA6Oj0gYW55IG9uZSBvZiB0aGUgNTIgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIEEgdGhyb3VnaCBaIGluIHVwcGVyIGNhc2UgYW5kIGEgdGhyb3VnaCB6IGluIGxvd2VyIGNhc2VcbiAgICAgICAgICAgIHZhciBsZXR0ZXIgPSAvW2EtekEtWl0vO1xuXG4gICAgICAgICAgICA8bGV0LWRpZz4gOjo9IDxsZXR0ZXI+IHwgPGRpZ2l0PlxuICAgICAgICAgICAgdmFyIGxldERpZyA9IC9bMC05YS16QS1aXS87XG5cbiAgICAgICAgICAgIDxsZXQtZGlnLWh5cD4gOjo9IDxsZXQtZGlnPiB8IFwiLVwiXG4gICAgICAgICAgICB2YXIgbGV0RGlnSHlwID0gL1stMC05YS16QS1aXS87XG5cbiAgICAgICAgICAgIDxsZGgtc3RyPiA6Oj0gPGxldC1kaWctaHlwPiB8IDxsZXQtZGlnLWh5cD4gPGxkaC1zdHI+XG4gICAgICAgICAgICB2YXIgbGRoU3RyID0gL1stMC05YS16QS1aXSsvO1xuXG4gICAgICAgICAgICA8bGFiZWw+IDo6PSA8bGV0dGVyPiBbIFsgPGxkaC1zdHI+IF0gPGxldC1kaWc+IF1cbiAgICAgICAgICAgIHZhciBsYWJlbCA9IC9bYS16QS1aXSgoWy0wLTlhLXpBLVpdKyk/WzAtOWEtekEtWl0pPy87XG5cbiAgICAgICAgICAgIDxzdWJkb21haW4+IDo6PSA8bGFiZWw+IHwgPHN1YmRvbWFpbj4gXCIuXCIgPGxhYmVsPlxuICAgICAgICAgICAgdmFyIHN1YmRvbWFpbiA9IC9eW2EtekEtWl0oKFstMC05YS16QS1aXSspP1swLTlhLXpBLVpdKT8oXFwuW2EtekEtWl0oKFstMC05YS16QS1aXSspP1swLTlhLXpBLVpdKT8pKiQvO1xuXG4gICAgICAgICAgICA8ZG9tYWluPiA6Oj0gPHN1YmRvbWFpbj4gfCBcIiBcIlxuICAgICAgICAgICAgdmFyIGRvbWFpbiA9IG51bGw7XG4gICAgICAgICovXG4gICAgICAgIHZhciB2YWxpZCA9IC9eW2EtekEtWl0oKFstMC05YS16QS1aXSspP1swLTlhLXpBLVpdKT8oXFwuW2EtekEtWl0oKFstMC05YS16QS1aXSspP1swLTlhLXpBLVpdKT8pKiQvLnRlc3QoaG9zdG5hbWUpO1xuICAgICAgICBpZiAodmFsaWQpIHtcbiAgICAgICAgICAgIC8vIHRoZSBzdW0gb2YgYWxsIGxhYmVsIG9jdGV0cyBhbmQgbGFiZWwgbGVuZ3RocyBpcyBsaW1pdGVkIHRvIDI1NS5cbiAgICAgICAgICAgIGlmIChob3N0bmFtZS5sZW5ndGggPiAyNTUpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgICAgICAgICAvLyBFYWNoIG5vZGUgaGFzIGEgbGFiZWwsIHdoaWNoIGlzIHplcm8gdG8gNjMgb2N0ZXRzIGluIGxlbmd0aFxuICAgICAgICAgICAgdmFyIGxhYmVscyA9IGhvc3RuYW1lLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFiZWxzLmxlbmd0aDsgaSsrKSB7IGlmIChsYWJlbHNbaV0ubGVuZ3RoID4gNjMpIHsgcmV0dXJuIGZhbHNlOyB9IH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfSxcbiAgICBcImhvc3QtbmFtZVwiOiBmdW5jdGlvbiAoaG9zdG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIEZvcm1hdFZhbGlkYXRvcnMuaG9zdG5hbWUuY2FsbCh0aGlzLCBob3N0bmFtZSk7XG4gICAgfSxcbiAgICBcImlwdjRcIjogZnVuY3Rpb24gKGlwdjQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpcHY0ICE9PSBcInN0cmluZ1wiKSB7IHJldHVybiB0cnVlOyB9XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNJUChpcHY0LCA0KTtcbiAgICB9LFxuICAgIFwiaXB2NlwiOiBmdW5jdGlvbiAoaXB2Nikge1xuICAgICAgICBpZiAodHlwZW9mIGlwdjYgIT09IFwic3RyaW5nXCIpIHsgcmV0dXJuIHRydWU7IH1cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0lQKGlwdjYsIDYpO1xuICAgIH0sXG4gICAgXCJyZWdleFwiOiBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBSZWdFeHAoc3RyKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwidXJpXCI6IGZ1bmN0aW9uICh1cmkpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zdHJpY3RVcmlzKSB7XG4gICAgICAgICAgICByZXR1cm4gRm9ybWF0VmFsaWRhdG9yc1tcInN0cmljdC11cmlcIl0uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemFnZ2luby96LXNjaGVtYS9pc3N1ZXMvMThcbiAgICAgICAgLy8gUmVnRXhwIGZyb20gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNhcHBlbmRpeC1CXG4gICAgICAgIHJldHVybiB0eXBlb2YgdXJpICE9PSBcInN0cmluZ1wiIHx8IFJlZ0V4cChcIl4oKFteOi8/I10rKTopPygvLyhbXi8/I10qKSk/KFtePyNdKikoXFxcXD8oW14jXSopKT8oIyguKikpP1wiKS50ZXN0KHVyaSk7XG4gICAgfSxcbiAgICBcInN0cmljdC11cmlcIjogZnVuY3Rpb24gKHVyaSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHVyaSAhPT0gXCJzdHJpbmdcIiB8fCB2YWxpZGF0b3IuaXNVUkwodXJpKTtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEZvcm1hdFZhbGlkYXRvcnM7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIEZvcm1hdFZhbGlkYXRvcnMgID0gcmVxdWlyZShcIi4vRm9ybWF0VmFsaWRhdG9yc1wiKSxcbiAgICBSZXBvcnQgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKSxcbiAgICBVdGlscyAgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuXG52YXIgSnNvblZhbGlkYXRvcnMgPSB7XG4gICAgbXVsdGlwbGVPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMS4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbiAvIHNjaGVtYS5tdWx0aXBsZU9mKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1VTFRJUExFX09GXCIsIFtqc29uLCBzY2hlbWEubXVsdGlwbGVPZl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heGltdW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjIuMlxuICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2NoZW1hLmV4Y2x1c2l2ZU1heGltdW0gIT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChqc29uID4gc2NoZW1hLm1heGltdW0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNQVhJTVVNXCIsIFtqc29uLCBzY2hlbWEubWF4aW11bV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbiA+PSBzY2hlbWEubWF4aW11bSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1BWElNVU1fRVhDTFVTSVZFXCIsIFtqc29uLCBzY2hlbWEubWF4aW11bV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGV4Y2x1c2l2ZU1heGltdW06IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gY292ZXJlZCBpbiBtYXhpbXVtXG4gICAgfSxcbiAgICBtaW5pbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4zLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNjaGVtYS5leGNsdXNpdmVNaW5pbXVtICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoanNvbiA8IHNjaGVtYS5taW5pbXVtKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUlOSU1VTVwiLCBbanNvbiwgc2NoZW1hLm1pbmltdW1dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24gPD0gc2NoZW1hLm1pbmltdW0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNSU5JTVVNX0VYQ0xVU0lWRVwiLCBbanNvbiwgc2NoZW1hLm1pbmltdW1dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBleGNsdXNpdmVNaW5pbXVtOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIGNvdmVyZWQgaW4gbWluaW11bVxuICAgIH0sXG4gICAgbWF4TGVuZ3RoOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4xLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFV0aWxzLnVjczJkZWNvZGUoanNvbikubGVuZ3RoID4gc2NoZW1hLm1heExlbmd0aCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUFYX0xFTkdUSFwiLCBbanNvbi5sZW5ndGgsIHNjaGVtYS5tYXhMZW5ndGhdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5MZW5ndGg6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4yLjIuMlxuICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoVXRpbHMudWNzMmRlY29kZShqc29uKS5sZW5ndGggPCBzY2hlbWEubWluTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNSU5fTEVOR1RIXCIsIFtqc29uLmxlbmd0aCwgc2NoZW1hLm1pbkxlbmd0aF0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBhdHRlcm46IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4yLjMuMlxuICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoUmVnRXhwKHNjaGVtYS5wYXR0ZXJuKS50ZXN0KGpzb24pID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiUEFUVEVSTlwiLCBbc2NoZW1hLnBhdHRlcm4sIGpzb25dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBhZGRpdGlvbmFsSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjEuMlxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoanNvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgdmFsdWUgb2YgXCJhZGRpdGlvbmFsSXRlbXNcIiBpcyBib29sZWFuIHZhbHVlIGZhbHNlIGFuZCB0aGUgdmFsdWUgb2YgXCJpdGVtc1wiIGlzIGFuIGFycmF5LFxuICAgICAgICAvLyB0aGUganNvbiBpcyB2YWxpZCBpZiBpdHMgc2l6ZSBpcyBsZXNzIHRoYW4sIG9yIGVxdWFsIHRvLCB0aGUgc2l6ZSBvZiBcIml0ZW1zXCIuXG4gICAgICAgIGlmIChzY2hlbWEuYWRkaXRpb25hbEl0ZW1zID09PSBmYWxzZSAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgICAgIGlmIChqc29uLmxlbmd0aCA+IHNjaGVtYS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBUlJBWV9BRERJVElPTkFMX0lURU1TXCIsIG51bGwsIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGl0ZW1zOiBmdW5jdGlvbiAoKSB7IC8qcmVwb3J0LCBzY2hlbWEsIGpzb24qL1xuICAgICAgICAvLyBjb3ZlcmVkIGluIGFkZGl0aW9uYWxJdGVtc1xuICAgIH0sXG4gICAgbWF4SXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjIuMlxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoanNvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoanNvbi5sZW5ndGggPiBzY2hlbWEubWF4SXRlbXMpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkFSUkFZX0xFTkdUSF9MT05HXCIsIFtqc29uLmxlbmd0aCwgc2NoZW1hLm1heEl0ZW1zXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjMuMlxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoanNvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoanNvbi5sZW5ndGggPCBzY2hlbWEubWluSXRlbXMpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkFSUkFZX0xFTkdUSF9TSE9SVFwiLCBbanNvbi5sZW5ndGgsIHNjaGVtYS5taW5JdGVtc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHVuaXF1ZUl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy40LjJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNjaGVtYS51bmlxdWVJdGVtcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdmFyIG1hdGNoZXMgPSBbXTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KGpzb24sIG1hdGNoZXMpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkFSUkFZX1VOSVFVRVwiLCBtYXRjaGVzLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhQcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4xLjJcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBrZXlzQ291bnQgPSBPYmplY3Qua2V5cyhqc29uKS5sZW5ndGg7XG4gICAgICAgIGlmIChrZXlzQ291bnQgPiBzY2hlbWEubWF4UHJvcGVydGllcykge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT0JKRUNUX1BST1BFUlRJRVNfTUFYSU1VTVwiLCBba2V5c0NvdW50LCBzY2hlbWEubWF4UHJvcGVydGllc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pblByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjIuMlxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24pICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleXNDb3VudCA9IE9iamVjdC5rZXlzKGpzb24pLmxlbmd0aDtcbiAgICAgICAgaWYgKGtleXNDb3VudCA8IHNjaGVtYS5taW5Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPQkpFQ1RfUFJPUEVSVElFU19NSU5JTVVNXCIsIFtrZXlzQ291bnQsIHNjaGVtYS5taW5Qcm9wZXJ0aWVzXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjMuMlxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24pICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5yZXF1aXJlZC5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIHJlcXVpcmVkUHJvcGVydHlOYW1lID0gc2NoZW1hLnJlcXVpcmVkW2lkeF07XG4gICAgICAgICAgICBpZiAoanNvbltyZXF1aXJlZFByb3BlcnR5TmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9CSkVDVF9NSVNTSU5HX1JFUVVJUkVEX1BST1BFUlRZXCIsIFtyZXF1aXJlZFByb3BlcnR5TmFtZV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gY292ZXJlZCBpbiBwcm9wZXJ0aWVzIGFuZCBwYXR0ZXJuUHJvcGVydGllc1xuICAgICAgICBpZiAoc2NoZW1hLnByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCAmJiBzY2hlbWEucGF0dGVyblByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIEpzb25WYWxpZGF0b3JzLnByb3BlcnRpZXMuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSwganNvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gY292ZXJlZCBpbiBwcm9wZXJ0aWVzXG4gICAgICAgIGlmIChzY2hlbWEucHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gSnNvblZhbGlkYXRvcnMucHJvcGVydGllcy5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNC4yXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbikgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJvcGVydGllcyA9IHNjaGVtYS5wcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQgPyBzY2hlbWEucHJvcGVydGllcyA6IHt9O1xuICAgICAgICB2YXIgcGF0dGVyblByb3BlcnRpZXMgPSBzY2hlbWEucGF0dGVyblByb3BlcnRpZXMgIT09IHVuZGVmaW5lZCA/IHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyA6IHt9O1xuICAgICAgICBpZiAoc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHNldCBvZiB0aGUganNvbiB0byB2YWxpZGF0ZS5cbiAgICAgICAgICAgIHZhciBzID0gT2JqZWN0LmtleXMoanNvbik7XG4gICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgc2V0IGZyb20gXCJwcm9wZXJ0aWVzXCIuXG4gICAgICAgICAgICB2YXIgcCA9IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpO1xuICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHNldCBmcm9tIFwicGF0dGVyblByb3BlcnRpZXNcIi5cbiAgICAgICAgICAgIHZhciBwcCA9IE9iamVjdC5rZXlzKHBhdHRlcm5Qcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIC8vIHJlbW92ZSBmcm9tIFwic1wiIGFsbCBlbGVtZW50cyBvZiBcInBcIiwgaWYgYW55O1xuICAgICAgICAgICAgcyA9IFV0aWxzLmRpZmZlcmVuY2UocywgcCk7XG4gICAgICAgICAgICAvLyBmb3IgZWFjaCByZWdleCBpbiBcInBwXCIsIHJlbW92ZSBhbGwgZWxlbWVudHMgb2YgXCJzXCIgd2hpY2ggdGhpcyByZWdleCBtYXRjaGVzLlxuICAgICAgICAgICAgdmFyIGlkeCA9IHBwLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHZhciByZWdFeHAgPSBSZWdFeHAocHBbaWR4XSksXG4gICAgICAgICAgICAgICAgICAgIGlkeDIgPSBzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoaWR4Mi0tKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWdFeHAudGVzdChzW2lkeDJdKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcy5zcGxpY2UoaWR4MiwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBWYWxpZGF0aW9uIG9mIHRoZSBqc29uIHN1Y2NlZWRzIGlmLCBhZnRlciB0aGVzZSB0d28gc3RlcHMsIHNldCBcInNcIiBpcyBlbXB0eS5cbiAgICAgICAgICAgIGlmIChzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPQkpFQ1RfQURESVRJT05BTF9QUk9QRVJUSUVTXCIsIFtzXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC41LjJcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEuZGVwZW5kZW5jaWVzKSxcbiAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgLy8gaXRlcmF0ZSBhbGwgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgICB2YXIgZGVwZW5kZW5jeU5hbWUgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICBpZiAoanNvbltkZXBlbmRlbmN5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICB2YXIgZGVwZW5kZW5jeURlZmluaXRpb24gPSBzY2hlbWEuZGVwZW5kZW5jaWVzW2RlcGVuZGVuY3lOYW1lXTtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMud2hhdElzKGRlcGVuZGVuY3lEZWZpbml0aW9uKSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiBkZXBlbmRlbmN5IGlzIGEgc2NoZW1hLCB2YWxpZGF0ZSBhZ2FpbnN0IHRoaXMgc2NoZW1hXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCByZXBvcnQsIGRlcGVuZGVuY3lEZWZpbml0aW9uLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBBcnJheVxuICAgICAgICAgICAgICAgICAgICAvLyBpZiBkZXBlbmRlbmN5IGlzIGFuIGFycmF5LCBvYmplY3QgbmVlZHMgdG8gaGF2ZSBhbGwgcHJvcGVydGllcyBpbiB0aGlzIGFycmF5XG4gICAgICAgICAgICAgICAgICAgIHZhciBpZHgyID0gZGVwZW5kZW5jeURlZmluaXRpb24ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaWR4Mi0tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVxdWlyZWRQcm9wZXJ0eU5hbWUgPSBkZXBlbmRlbmN5RGVmaW5pdGlvbltpZHgyXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqc29uW3JlcXVpcmVkUHJvcGVydHlOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT0JKRUNUX0RFUEVOREVOQ1lfS0VZXCIsIFtyZXF1aXJlZFByb3BlcnR5TmFtZSwgZGVwZW5kZW5jeU5hbWVdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBlbnVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4xLjJcbiAgICAgICAgdmFyIG1hdGNoID0gZmFsc2UsXG4gICAgICAgICAgICBpZHggPSBzY2hlbWEuZW51bS5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmFyZUVxdWFsKGpzb24sIHNjaGVtYS5lbnVtW2lkeF0pKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkVOVU1fTUlTTUFUQ0hcIiwgW2pzb25dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICAvKlxuICAgIHR5cGU6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjIuMlxuICAgICAgICAvLyB0eXBlIGlzIGhhbmRsZWQgYmVmb3JlIHRoaXMgaXMgY2FsbGVkIHNvIGlnbm9yZVxuICAgIH0sXG4gICAgKi9cbiAgICBhbGxPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMy4yXG4gICAgICAgIHZhciBpZHggPSBzY2hlbWEuYWxsT2YubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIGlmIChleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYWxsT2ZbaWR4XSwganNvbikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFueU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS40LjJcbiAgICAgICAgdmFyIHN1YlJlcG9ydHMgPSBbXSxcbiAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlLFxuICAgICAgICAgICAgaWR4ID0gc2NoZW1hLmFueU9mLmxlbmd0aDtcblxuICAgICAgICB3aGlsZSAoaWR4LS0gJiYgcGFzc2VkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdmFyIHN1YlJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0KTtcbiAgICAgICAgICAgIHN1YlJlcG9ydHMucHVzaChzdWJSZXBvcnQpO1xuICAgICAgICAgICAgcGFzc2VkID0gZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHN1YlJlcG9ydCwgc2NoZW1hLmFueU9mW2lkeF0sIGpzb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhc3NlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkFOWV9PRl9NSVNTSU5HXCIsIHVuZGVmaW5lZCwgc3ViUmVwb3J0cywgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgb25lT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjUuMlxuICAgICAgICB2YXIgcGFzc2VzID0gMCxcbiAgICAgICAgICAgIHN1YlJlcG9ydHMgPSBbXSxcbiAgICAgICAgICAgIGlkeCA9IHNjaGVtYS5vbmVPZi5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIgc3ViUmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQsIHsgbWF4RXJyb3JzOiAxIH0pO1xuICAgICAgICAgICAgc3ViUmVwb3J0cy5wdXNoKHN1YlJlcG9ydCk7XG4gICAgICAgICAgICBpZiAoZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHN1YlJlcG9ydCwgc2NoZW1hLm9uZU9mW2lkeF0sIGpzb24pID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcGFzc2VzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFzc2VzID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPTkVfT0ZfTUlTU0lOR1wiLCB1bmRlZmluZWQsIHN1YlJlcG9ydHMsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAocGFzc2VzID4gMSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT05FX09GX01VTFRJUExFXCIsIG51bGwsIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG5vdDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNi4yXG4gICAgICAgIHZhciBzdWJSZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCk7XG4gICAgICAgIGlmIChleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgc3ViUmVwb3J0LCBzY2hlbWEubm90LCBqc29uKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTk9UX1BBU1NFRFwiLCBudWxsLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBkZWZpbml0aW9uczogZnVuY3Rpb24gKCkgeyAvKnJlcG9ydCwgc2NoZW1hLCBqc29uKi9cbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS43LjJcbiAgICAgICAgLy8gbm90aGluZyB0byBkbyBoZXJlXG4gICAgfSxcbiAgICBmb3JtYXQ6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNy4yXG4gICAgICAgIHZhciBmb3JtYXRWYWxpZGF0b3JGbiA9IEZvcm1hdFZhbGlkYXRvcnNbc2NoZW1hLmZvcm1hdF07XG4gICAgICAgIGlmICh0eXBlb2YgZm9ybWF0VmFsaWRhdG9yRm4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKGZvcm1hdFZhbGlkYXRvckZuLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIC8vIGFzeW5jXG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEFzeW5jVGFzayhmb3JtYXRWYWxpZGF0b3JGbiwgW2pzb25dLCBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIklOVkFMSURfRk9STUFUXCIsIFtzY2hlbWEuZm9ybWF0LCBqc29uXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBzeW5jXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdFZhbGlkYXRvckZuLmNhbGwodGhpcywganNvbikgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiSU5WQUxJRF9GT1JNQVRcIiwgW3NjaGVtYS5mb3JtYXQsIGpzb25dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlVOS05PV05fRk9STUFUXCIsIFtzY2hlbWEuZm9ybWF0XSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbnZhciByZWN1cnNlQXJyYXkgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uOC4yXG5cbiAgICB2YXIgaWR4ID0ganNvbi5sZW5ndGg7XG5cbiAgICAvLyBJZiBcIml0ZW1zXCIgaXMgYW4gYXJyYXksIHRoaXMgc2l0dWF0aW9uLCB0aGUgc2NoZW1hIGRlcGVuZHMgb24gdGhlIGluZGV4OlxuICAgIC8vIGlmIHRoZSBpbmRleCBpcyBsZXNzIHRoYW4sIG9yIGVxdWFsIHRvLCB0aGUgc2l6ZSBvZiBcIml0ZW1zXCIsXG4gICAgLy8gdGhlIGNoaWxkIGluc3RhbmNlIG11c3QgYmUgdmFsaWQgYWdhaW5zdCB0aGUgY29ycmVzcG9uZGluZyBzY2hlbWEgaW4gdGhlIFwiaXRlbXNcIiBhcnJheTtcbiAgICAvLyBvdGhlcndpc2UsIGl0IG11c3QgYmUgdmFsaWQgYWdhaW5zdCB0aGUgc2NoZW1hIGRlZmluZWQgYnkgXCJhZGRpdGlvbmFsSXRlbXNcIi5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuaXRlbXMpKSB7XG5cbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAvLyBlcXVhbCB0byBkb2VzbnQgbWFrZSBzZW5zZSBoZXJlXG4gICAgICAgICAgICBpZiAoaWR4IDwgc2NoZW1hLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5pdGVtc1tpZHhdLCBqc29uW2lkeF0pO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBtaWdodCBiZSBib29sZWFuLCBzbyBjaGVjayB0aGF0IGl0J3MgYW4gb2JqZWN0XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zLCBqc29uW2lkeF0pO1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHNjaGVtYS5pdGVtcyA9PT0gXCJvYmplY3RcIikge1xuXG4gICAgICAgIC8vIElmIGl0ZW1zIGlzIGEgc2NoZW1hLCB0aGVuIHRoZSBjaGlsZCBpbnN0YW5jZSBtdXN0IGJlIHZhbGlkIGFnYWluc3QgdGhpcyBzY2hlbWEsXG4gICAgICAgIC8vIHJlZ2FyZGxlc3Mgb2YgaXRzIGluZGV4LCBhbmQgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgXCJhZGRpdGlvbmFsSXRlbXNcIi5cbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5pdGVtcywganNvbltpZHhdKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG5cbiAgICB9XG59O1xuXG52YXIgcmVjdXJzZU9iamVjdCA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi44LjNcblxuICAgIC8vIElmIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIiBpcyBhYnNlbnQsIGl0IGlzIGNvbnNpZGVyZWQgcHJlc2VudCB3aXRoIGFuIGVtcHR5IHNjaGVtYSBhcyBhIHZhbHVlLlxuICAgIC8vIEluIGFkZGl0aW9uLCBib29sZWFuIHZhbHVlIHRydWUgaXMgY29uc2lkZXJlZCBlcXVpdmFsZW50IHRvIGFuIGVtcHR5IHNjaGVtYS5cbiAgICB2YXIgYWRkaXRpb25hbFByb3BlcnRpZXMgPSBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXM7XG4gICAgaWYgKGFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSB0cnVlIHx8IGFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXMgPSB7fTtcbiAgICB9XG5cbiAgICAvLyBwIC0gVGhlIHByb3BlcnR5IHNldCBmcm9tIFwicHJvcGVydGllc1wiLlxuICAgIHZhciBwID0gc2NoZW1hLnByb3BlcnRpZXMgPyBPYmplY3Qua2V5cyhzY2hlbWEucHJvcGVydGllcykgOiBbXTtcblxuICAgIC8vIHBwIC0gVGhlIHByb3BlcnR5IHNldCBmcm9tIFwicGF0dGVyblByb3BlcnRpZXNcIi4gRWxlbWVudHMgb2YgdGhpcyBzZXQgd2lsbCBiZSBjYWxsZWQgcmVnZXhlcyBmb3IgY29udmVuaWVuY2UuXG4gICAgdmFyIHBwID0gc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzID8gT2JqZWN0LmtleXMoc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzKSA6IFtdO1xuXG4gICAgLy8gbSAtIFRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBjaGlsZC5cbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGpzb24pLFxuICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICB2YXIgbSA9IGtleXNbaWR4XSxcbiAgICAgICAgICAgIHByb3BlcnR5VmFsdWUgPSBqc29uW21dO1xuXG4gICAgICAgIC8vIHMgLSBUaGUgc2V0IG9mIHNjaGVtYXMgZm9yIHRoZSBjaGlsZCBpbnN0YW5jZS5cbiAgICAgICAgdmFyIHMgPSBbXTtcblxuICAgICAgICAvLyAxLiBJZiBzZXQgXCJwXCIgY29udGFpbnMgdmFsdWUgXCJtXCIsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgc2NoZW1hIGluIFwicHJvcGVydGllc1wiIGlzIGFkZGVkIHRvIFwic1wiLlxuICAgICAgICBpZiAocC5pbmRleE9mKG0pICE9PSAtMSkge1xuICAgICAgICAgICAgcy5wdXNoKHNjaGVtYS5wcm9wZXJ0aWVzW21dKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIuIEZvciBlYWNoIHJlZ2V4IGluIFwicHBcIiwgaWYgaXQgbWF0Y2hlcyBcIm1cIiBzdWNjZXNzZnVsbHksIHRoZSBjb3JyZXNwb25kaW5nIHNjaGVtYSBpbiBcInBhdHRlcm5Qcm9wZXJ0aWVzXCIgaXMgYWRkZWQgdG8gXCJzXCIuXG4gICAgICAgIHZhciBpZHgyID0gcHAubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4Mi0tKSB7XG4gICAgICAgICAgICB2YXIgcmVnZXhTdHJpbmcgPSBwcFtpZHgyXTtcbiAgICAgICAgICAgIGlmIChSZWdFeHAocmVnZXhTdHJpbmcpLnRlc3QobSkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBzLnB1c2goc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzW3JlZ2V4U3RyaW5nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAzLiBUaGUgc2NoZW1hIGRlZmluZWQgYnkgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiIGlzIGFkZGVkIHRvIFwic1wiIGlmIGFuZCBvbmx5IGlmLCBhdCB0aGlzIHN0YWdlLCBcInNcIiBpcyBlbXB0eS5cbiAgICAgICAgaWYgKHMubGVuZ3RoID09PSAwICYmIGFkZGl0aW9uYWxQcm9wZXJ0aWVzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgcy5wdXNoKGFkZGl0aW9uYWxQcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdlIGFyZSBwYXNzaW5nIHRlc3RzIGV2ZW4gd2l0aG91dCB0aGlzIGFzc2VydCBiZWNhdXNlIHRoaXMgaXMgY292ZXJlZCBieSBwcm9wZXJ0aWVzIGNoZWNrXG4gICAgICAgIC8vIGlmIHMgaXMgZW1wdHkgaW4gdGhpcyBzdGFnZSwgbm8gYWRkaXRpb25hbFByb3BlcnRpZXMgYXJlIGFsbG93ZWRcbiAgICAgICAgLy8gcmVwb3J0LmV4cGVjdChzLmxlbmd0aCAhPT0gMCwgJ0UwMDEnLCBtKTtcblxuICAgICAgICAvLyBJbnN0YW5jZSBwcm9wZXJ0eSB2YWx1ZSBtdXN0IHBhc3MgYWxsIHNjaGVtYXMgZnJvbSBzXG4gICAgICAgIGlkeDIgPSBzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChtKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCByZXBvcnQsIHNbaWR4Ml0sIHByb3BlcnR5VmFsdWUpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnRzLnZhbGlkYXRlID0gZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG5cbiAgICByZXBvcnQuY29tbW9uRXJyb3JNZXNzYWdlID0gXCJKU09OX09CSkVDVF9WQUxJREFUSU9OX0ZBSUxFRFwiO1xuXG4gICAgLy8gY2hlY2sgaWYgc2NoZW1hIGlzIGFuIG9iamVjdFxuICAgIHZhciB0byA9IFV0aWxzLndoYXRJcyhzY2hlbWEpO1xuICAgIGlmICh0byAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJTQ0hFTUFfTk9UX0FOX09CSkVDVFwiLCBbdG9dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgc2NoZW1hIGlzIGVtcHR5LCBldmVyeXRoaW5nIGlzIHZhbGlkIGFnYWluc3QgZW1wdHkgc2NoZW1hXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIHJlY3Vyc2l2ZWx5LCBzbyB3ZSBuZWVkIHRvIHJlbWVtYmVyIG91ciByb290XG4gICAgdmFyIGlzUm9vdCA9IGZhbHNlO1xuICAgIGlmICghcmVwb3J0LnJvb3RTY2hlbWEpIHtcbiAgICAgICAgcmVwb3J0LnJvb3RTY2hlbWEgPSBzY2hlbWE7XG4gICAgICAgIGlzUm9vdCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gZm9sbG93IHNjaGVtYS4kcmVmIGtleXNcbiAgICBpZiAoc2NoZW1hLiRyZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBhdm9pZCBpbmZpbml0ZSBsb29wIHdpdGggbWF4UmVmc1xuICAgICAgICB2YXIgbWF4UmVmcyA9IDk5O1xuICAgICAgICB3aGlsZSAoc2NoZW1hLiRyZWYgJiYgbWF4UmVmcyA+IDApIHtcbiAgICAgICAgICAgIGlmICghc2NoZW1hLl9fJHJlZlJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiUkVGX1VOUkVTT0xWRURcIiwgW3NjaGVtYS4kcmVmXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLl9fJHJlZlJlc29sdmVkID09PSBzY2hlbWEpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2NoZW1hID0gc2NoZW1hLl9fJHJlZlJlc29sdmVkO1xuICAgICAgICAgICAgICAgIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWF4UmVmcy0tO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXhSZWZzID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDaXJjdWxhciBkZXBlbmRlbmN5IGJ5ICRyZWYgcmVmZXJlbmNlcyFcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0eXBlIGNoZWNraW5nIGZpcnN0XG4gICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4yLjJcbiAgICB2YXIganNvblR5cGUgPSBVdGlscy53aGF0SXMoanNvbik7XG4gICAgaWYgKHNjaGVtYS50eXBlKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGlmIChqc29uVHlwZSAhPT0gc2NoZW1hLnR5cGUgJiYgKGpzb25UeXBlICE9PSBcImludGVnZXJcIiB8fCBzY2hlbWEudHlwZSAhPT0gXCJudW1iZXJcIikpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJJTlZBTElEX1RZUEVcIiwgW3NjaGVtYS50eXBlLCBqc29uVHlwZV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5icmVha09uRmlyc3RFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlLmluZGV4T2YoanNvblR5cGUpID09PSAtMSAmJiAoanNvblR5cGUgIT09IFwiaW50ZWdlclwiIHx8IHNjaGVtYS50eXBlLmluZGV4T2YoXCJudW1iZXJcIikgPT09IC0xKSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIklOVkFMSURfVFlQRVwiLCBbc2NoZW1hLnR5cGUsIGpzb25UeXBlXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJyZWFrT25GaXJzdEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBub3cgaXRlcmF0ZSBhbGwgdGhlIGtleXMgaW4gc2NoZW1hIGFuZCBleGVjdXRlIHZhbGlkYXRpb24gbWV0aG9kc1xuICAgIHZhciBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgaWYgKEpzb25WYWxpZGF0b3JzW2tleXNbaWR4XV0pIHtcbiAgICAgICAgICAgIEpzb25WYWxpZGF0b3JzW2tleXNbaWR4XV0uY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSwganNvbik7XG4gICAgICAgICAgICBpZiAocmVwb3J0LmVycm9ycy5sZW5ndGggJiYgdGhpcy5vcHRpb25zLmJyZWFrT25GaXJzdEVycm9yKSB7IGJyZWFrOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVwb3J0LmVycm9ycy5sZW5ndGggPT09IDAgfHwgdGhpcy5vcHRpb25zLmJyZWFrT25GaXJzdEVycm9yID09PSBmYWxzZSkge1xuICAgICAgICBpZiAoanNvblR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgcmVjdXJzZUFycmF5LmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGpzb25UeXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZWN1cnNlT2JqZWN0LmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2UgZG9uJ3QgbmVlZCB0aGUgcm9vdCBwb2ludGVyIGFueW1vcmVcbiAgICBpZiAoaXNSb290KSB7XG4gICAgICAgIHJlcG9ydC5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIHJldHVybiB2YWxpZCBqdXN0IHRvIGJlIGFibGUgdG8gYnJlYWsgYXQgc29tZSBjb2RlIHBvaW50c1xuICAgIHJldHVybiByZXBvcnQuZXJyb3JzLmxlbmd0aCA9PT0gMDtcblxufTtcbiIsIi8vIE51bWJlci5pc0Zpbml0ZSBwb2x5ZmlsbFxuLy8gaHR0cDovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtbnVtYmVyLmlzZmluaXRlXG5pZiAodHlwZW9mIE51bWJlci5pc0Zpbml0ZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgTnVtYmVyLmlzRmluaXRlID0gZnVuY3Rpb24gaXNGaW5pdGUodmFsdWUpIHtcbiAgICAgICAgLy8gMS4gSWYgVHlwZShudW1iZXIpIGlzIG5vdCBOdW1iZXIsIHJldHVybiBmYWxzZS5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIDIuIElmIG51bWJlciBpcyBOYU4sICviiJ4sIG9yIOKIkuKIniwgcmV0dXJuIGZhbHNlLlxuICAgICAgICBpZiAodmFsdWUgIT09IHZhbHVlIHx8IHZhbHVlID09PSBJbmZpbml0eSB8fCB2YWx1ZSA9PT0gLUluZmluaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMy4gT3RoZXJ3aXNlLCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgRXJyb3JzID0gcmVxdWlyZShcIi4vRXJyb3JzXCIpO1xudmFyIFV0aWxzICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuXG5mdW5jdGlvbiBSZXBvcnQocGFyZW50T3JPcHRpb25zLCByZXBvcnRPcHRpb25zKSB7XG4gICAgdGhpcy5wYXJlbnRSZXBvcnQgPSBwYXJlbnRPck9wdGlvbnMgaW5zdGFuY2VvZiBSZXBvcnQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE9yT3B0aW9ucyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5vcHRpb25zID0gcGFyZW50T3JPcHRpb25zIGluc3RhbmNlb2YgUmVwb3J0ID9cbiAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50T3JPcHRpb25zLm9wdGlvbnMgOlxuICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRPck9wdGlvbnMgfHwge307XG5cbiAgICB0aGlzLnJlcG9ydE9wdGlvbnMgPSByZXBvcnRPcHRpb25zIHx8IHt9O1xuXG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICB0aGlzLnBhdGggPSBbXTtcbiAgICB0aGlzLmFzeW5jVGFza3MgPSBbXTtcbn1cblxuUmVwb3J0LnByb3RvdHlwZS5pc1ZhbGlkID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLmFzeW5jVGFza3MubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBc3luYyB0YXNrcyBwZW5kaW5nLCBjYW4ndCBhbnN3ZXIgaXNWYWxpZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMDtcbn07XG5cblJlcG9ydC5wcm90b3R5cGUuYWRkQXN5bmNUYXNrID0gZnVuY3Rpb24gKGZuLCBhcmdzLCBhc3luY1Rhc2tSZXN1bHRQcm9jZXNzRm4pIHtcbiAgICB0aGlzLmFzeW5jVGFza3MucHVzaChbZm4sIGFyZ3MsIGFzeW5jVGFza1Jlc3VsdFByb2Nlc3NGbl0pO1xufTtcblxuUmVwb3J0LnByb3RvdHlwZS5wcm9jZXNzQXN5bmNUYXNrcyA9IGZ1bmN0aW9uICh0aW1lb3V0LCBjYWxsYmFjaykge1xuXG4gICAgdmFyIHZhbGlkYXRpb25UaW1lb3V0ID0gdGltZW91dCB8fCAyMDAwLFxuICAgICAgICB0YXNrc0NvdW50ICAgICAgICA9IHRoaXMuYXN5bmNUYXNrcy5sZW5ndGgsXG4gICAgICAgIGlkeCAgICAgICAgICAgICAgID0gdGFza3NDb3VudCxcbiAgICAgICAgdGltZWRPdXQgICAgICAgICAgPSBmYWxzZSxcbiAgICAgICAgc2VsZiAgICAgICAgICAgICAgPSB0aGlzO1xuXG4gICAgZnVuY3Rpb24gZmluaXNoKCkge1xuICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB2YWxpZCA9IHNlbGYuZXJyb3JzLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgICAgICAgICBlcnIgICA9IHZhbGlkID8gdW5kZWZpbmVkIDogc2VsZi5lcnJvcnM7XG4gICAgICAgICAgICBjYWxsYmFjayhlcnIsIHZhbGlkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzcG9uZChhc3luY1Rhc2tSZXN1bHRQcm9jZXNzRm4pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhc3luY1Rhc2tSZXN1bHQpIHtcbiAgICAgICAgICAgIGlmICh0aW1lZE91dCkgeyByZXR1cm47IH1cbiAgICAgICAgICAgIGFzeW5jVGFza1Jlc3VsdFByb2Nlc3NGbihhc3luY1Rhc2tSZXN1bHQpO1xuICAgICAgICAgICAgaWYgKC0tdGFza3NDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGZpbmlzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0YXNrc0NvdW50ID09PSAwIHx8IHRoaXMuZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmluaXNoKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIHRhc2sgPSB0aGlzLmFzeW5jVGFza3NbaWR4XTtcbiAgICAgICAgdGFza1swXS5hcHBseShudWxsLCB0YXNrWzFdLmNvbmNhdChyZXNwb25kKHRhc2tbMl0pKSk7XG4gICAgfVxuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0YXNrc0NvdW50ID4gMCkge1xuICAgICAgICAgICAgdGltZWRPdXQgPSB0cnVlO1xuICAgICAgICAgICAgc2VsZi5hZGRFcnJvcihcIkFTWU5DX1RJTUVPVVRcIiwgW3Rhc2tzQ291bnQsIHZhbGlkYXRpb25UaW1lb3V0XSk7XG4gICAgICAgICAgICBjYWxsYmFjayhzZWxmLmVycm9ycywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSwgdmFsaWRhdGlvblRpbWVvdXQpO1xuXG59O1xuXG5SZXBvcnQucHJvdG90eXBlLmdldFBhdGggPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHBhdGggPSBbXTtcbiAgICBpZiAodGhpcy5wYXJlbnRSZXBvcnQpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguY29uY2F0KHRoaXMucGFyZW50UmVwb3J0LnBhdGgpO1xuICAgIH1cbiAgICBwYXRoID0gcGF0aC5jb25jYXQodGhpcy5wYXRoKTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMucmVwb3J0UGF0aEFzQXJyYXkgIT09IHRydWUpIHtcbiAgICAgICAgLy8gU2FuaXRpemUgdGhlIHBhdGggc2VnbWVudHMgKGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY5MDEjc2VjdGlvbi00KVxuICAgICAgICBwYXRoID0gXCIjL1wiICsgcGF0aC5tYXAoZnVuY3Rpb24gKHNlZ21lbnQpIHtcblxuICAgICAgICAgICAgaWYgKFV0aWxzLmlzQWJzb2x1dGVVcmkoc2VnbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ1cmkoXCIgKyBzZWdtZW50ICsgXCIpXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzZWdtZW50LnJlcGxhY2UoXCJ+XCIsIFwifjBcIikucmVwbGFjZShcIi9cIiwgXCJ+MVwiKTtcbiAgICAgICAgfSkuam9pbihcIi9cIik7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufTtcblxuUmVwb3J0LnByb3RvdHlwZS5hZGRFcnJvciA9IGZ1bmN0aW9uIChlcnJvckNvZGUsIHBhcmFtcywgc3ViUmVwb3J0cywgc2NoZW1hRGVzY3JpcHRpb24pIHtcbiAgICBpZiAodGhpcy5lcnJvcnMubGVuZ3RoID49IHRoaXMucmVwb3J0T3B0aW9ucy5tYXhFcnJvcnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZXJyb3JDb2RlKSB7IHRocm93IG5ldyBFcnJvcihcIk5vIGVycm9yQ29kZSBwYXNzZWQgaW50byBhZGRFcnJvcigpXCIpOyB9XG4gICAgaWYgKCFFcnJvcnNbZXJyb3JDb2RlXSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJObyBlcnJvck1lc3NhZ2Uga25vd24gZm9yIGNvZGUgXCIgKyBlcnJvckNvZGUpOyB9XG5cbiAgICBwYXJhbXMgPSBwYXJhbXMgfHwgW107XG5cbiAgICB2YXIgaWR4ID0gcGFyYW1zLmxlbmd0aCxcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gRXJyb3JzW2Vycm9yQ29kZV07XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciB3aGF0SXMgPSBVdGlscy53aGF0SXMocGFyYW1zW2lkeF0pO1xuICAgICAgICB2YXIgcGFyYW0gPSAod2hhdElzID09PSBcIm9iamVjdFwiIHx8IHdoYXRJcyA9PT0gXCJudWxsXCIpID8gSlNPTi5zdHJpbmdpZnkocGFyYW1zW2lkeF0pIDogcGFyYW1zW2lkeF07XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZS5yZXBsYWNlKFwie1wiICsgaWR4ICsgXCJ9XCIsIHBhcmFtKTtcbiAgICB9XG5cbiAgICB2YXIgZXJyID0ge1xuICAgICAgICBjb2RlOiBlcnJvckNvZGUsXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIHBhdGg6IHRoaXMuZ2V0UGF0aCgpXG4gICAgfTtcblxuICAgIGlmIChzY2hlbWFEZXNjcmlwdGlvbikge1xuICAgICAgICBlcnIuZGVzY3JpcHRpb24gPSBzY2hlbWFEZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAoc3ViUmVwb3J0cyAhPSBudWxsKSB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShzdWJSZXBvcnRzKSkge1xuICAgICAgICAgICAgc3ViUmVwb3J0cyA9IFtzdWJSZXBvcnRzXTtcbiAgICAgICAgfVxuICAgICAgICBlcnIuaW5uZXIgPSBbXTtcbiAgICAgICAgaWR4ID0gc3ViUmVwb3J0cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIHN1YlJlcG9ydCA9IHN1YlJlcG9ydHNbaWR4XSxcbiAgICAgICAgICAgICAgICBpZHgyID0gc3ViUmVwb3J0LmVycm9ycy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4Mi0tKSB7XG4gICAgICAgICAgICAgICAgZXJyLmlubmVyLnB1c2goc3ViUmVwb3J0LmVycm9yc1tpZHgyXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVyci5pbm5lci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGVyci5pbm5lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZXJyb3JzLnB1c2goZXJyKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVwb3J0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBSZXBvcnQgICAgICAgICAgICAgID0gcmVxdWlyZShcIi4vUmVwb3J0XCIpO1xudmFyIFNjaGVtYUNvbXBpbGF0aW9uICAgPSByZXF1aXJlKFwiLi9TY2hlbWFDb21waWxhdGlvblwiKTtcbnZhciBTY2hlbWFWYWxpZGF0aW9uICAgID0gcmVxdWlyZShcIi4vU2NoZW1hVmFsaWRhdGlvblwiKTtcbnZhciBVdGlscyAgICAgICAgICAgICAgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5cbmZ1bmN0aW9uIGRlY29kZUpTT05Qb2ludGVyKHN0cikge1xuICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtYXBwc2F3Zy1qc29uLXBvaW50ZXItMDcjc2VjdGlvbi0zXG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL35bMC0xXS9nLCBmdW5jdGlvbiAoeCkge1xuICAgICAgICByZXR1cm4geCA9PT0gXCJ+MVwiID8gXCIvXCIgOiBcIn5cIjtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVtb3RlUGF0aCh1cmkpIHtcbiAgICB2YXIgaW8gPSB1cmkuaW5kZXhPZihcIiNcIik7XG4gICAgcmV0dXJuIGlvID09PSAtMSA/IHVyaSA6IHVyaS5zbGljZSgwLCBpbyk7XG59XG5cbmZ1bmN0aW9uIGdldFF1ZXJ5UGF0aCh1cmkpIHtcbiAgICB2YXIgaW8gPSB1cmkuaW5kZXhPZihcIiNcIik7XG4gICAgdmFyIHJlcyA9IGlvID09PSAtMSA/IHVuZGVmaW5lZCA6IHVyaS5zbGljZShpbyArIDEpO1xuICAgIC8vIFdBUk46IGRvIG5vdCBzbGljZSBzbGFzaCwgIy8gbWVhbnMgdGFrZSByb290IGFuZCBnbyBkb3duIGZyb20gaXRcbiAgICAvLyBpZiAocmVzICYmIHJlc1swXSA9PT0gXCIvXCIpIHsgcmVzID0gcmVzLnNsaWNlKDEpOyB9XG4gICAgcmV0dXJuIHJlcztcbn1cblxuZnVuY3Rpb24gZmluZElkKHNjaGVtYSwgaWQpIHtcbiAgICAvLyBwcm9jZXNzIG9ubHkgYXJyYXlzIGFuZCBvYmplY3RzXG4gICAgaWYgKHR5cGVvZiBzY2hlbWEgIT09IFwib2JqZWN0XCIgfHwgc2NoZW1hID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBubyBpZCBtZWFucyByb290IHNvIHJldHVybiBpdHNlbGZcbiAgICBpZiAoIWlkKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgaWYgKHNjaGVtYS5pZCkge1xuICAgICAgICBpZiAoc2NoZW1hLmlkID09PSBpZCB8fCBzY2hlbWEuaWRbMF0gPT09IFwiI1wiICYmIHNjaGVtYS5pZC5zdWJzdHJpbmcoMSkgPT09IGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlkeCwgcmVzdWx0O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpIHtcbiAgICAgICAgaWR4ID0gc2NoZW1hLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBmaW5kSWQoc2NoZW1hW2lkeF0sIGlkKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHsgcmV0dXJuIHJlc3VsdDsgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEpO1xuICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIgayA9IGtleXNbaWR4XTtcbiAgICAgICAgICAgIGlmIChrLmluZGV4T2YoXCJfXyRcIikgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdCA9IGZpbmRJZChzY2hlbWFba10sIGlkKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHsgcmV0dXJuIHJlc3VsdDsgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnRzLmNhY2hlU2NoZW1hQnlVcmkgPSBmdW5jdGlvbiAodXJpLCBzY2hlbWEpIHtcbiAgICB2YXIgcmVtb3RlUGF0aCA9IGdldFJlbW90ZVBhdGgodXJpKTtcbiAgICBpZiAocmVtb3RlUGF0aCkge1xuICAgICAgICB0aGlzLmNhY2hlW3JlbW90ZVBhdGhdID0gc2NoZW1hO1xuICAgIH1cbn07XG5cbmV4cG9ydHMucmVtb3ZlRnJvbUNhY2hlQnlVcmkgPSBmdW5jdGlvbiAodXJpKSB7XG4gICAgdmFyIHJlbW90ZVBhdGggPSBnZXRSZW1vdGVQYXRoKHVyaSk7XG4gICAgaWYgKHJlbW90ZVBhdGgpIHtcbiAgICAgICAgdGhpcy5jYWNoZVtyZW1vdGVQYXRoXSA9IHVuZGVmaW5lZDtcbiAgICB9XG59O1xuXG5leHBvcnRzLmNoZWNrQ2FjaGVGb3JVcmkgPSBmdW5jdGlvbiAodXJpKSB7XG4gICAgdmFyIHJlbW90ZVBhdGggPSBnZXRSZW1vdGVQYXRoKHVyaSk7XG4gICAgcmV0dXJuIHJlbW90ZVBhdGggPyB0aGlzLmNhY2hlW3JlbW90ZVBhdGhdICE9IG51bGwgOiBmYWxzZTtcbn07XG5cbmV4cG9ydHMuZ2V0U2NoZW1hID0gZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgaWYgKHR5cGVvZiBzY2hlbWEgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgc2NoZW1hID0gZXhwb3J0cy5nZXRTY2hlbWFCeVJlZmVyZW5jZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzY2hlbWEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc2NoZW1hID0gZXhwb3J0cy5nZXRTY2hlbWFCeVVyaS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG4gICAgcmV0dXJuIHNjaGVtYTtcbn07XG5cbmV4cG9ydHMuZ2V0U2NoZW1hQnlSZWZlcmVuY2UgPSBmdW5jdGlvbiAocmVwb3J0LCBrZXkpIHtcbiAgICB2YXIgaSA9IHRoaXMucmVmZXJlbmNlQ2FjaGUubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgaWYgKHRoaXMucmVmZXJlbmNlQ2FjaGVbaV1bMF0gPT09IGtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlQ2FjaGVbaV1bMV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gbm90IGZvdW5kXG4gICAgdmFyIHNjaGVtYSA9IFV0aWxzLmNsb25lRGVlcChrZXkpO1xuICAgIHRoaXMucmVmZXJlbmNlQ2FjaGUucHVzaChba2V5LCBzY2hlbWFdKTtcbiAgICByZXR1cm4gc2NoZW1hO1xufTtcblxuZXhwb3J0cy5nZXRTY2hlbWFCeVVyaSA9IGZ1bmN0aW9uIChyZXBvcnQsIHVyaSwgcm9vdCkge1xuICAgIHZhciByZW1vdGVQYXRoID0gZ2V0UmVtb3RlUGF0aCh1cmkpLFxuICAgICAgICBxdWVyeVBhdGggPSBnZXRRdWVyeVBhdGgodXJpKSxcbiAgICAgICAgcmVzdWx0ID0gcmVtb3RlUGF0aCA/IHRoaXMuY2FjaGVbcmVtb3RlUGF0aF0gOiByb290O1xuXG4gICAgaWYgKHJlc3VsdCAmJiByZW1vdGVQYXRoKSB7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gYXZvaWQgY29tcGlsaW5nIHNjaGVtYXMgaW4gYSByZWN1cnNpdmUgbG9vcFxuICAgICAgICB2YXIgY29tcGlsZVJlbW90ZSA9IHJlc3VsdCAhPT0gcm9vdDtcbiAgICAgICAgLy8gbm93IHdlIG5lZWQgdG8gY29tcGlsZSBhbmQgdmFsaWRhdGUgcmVzb2x2ZWQgc2NoZW1hIChpbiBjYXNlIGl0J3Mgbm90IGFscmVhZHkpXG4gICAgICAgIGlmIChjb21waWxlUmVtb3RlKSB7XG5cbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2gocmVtb3RlUGF0aCk7XG5cbiAgICAgICAgICAgIHZhciByZW1vdGVSZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCk7XG4gICAgICAgICAgICBpZiAoU2NoZW1hQ29tcGlsYXRpb24uY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHJlbW90ZVJlcG9ydCwgcmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIFNjaGVtYVZhbGlkYXRpb24udmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZW1vdGVSZXBvcnQsIHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcmVtb3RlUmVwb3J0SXNWYWxpZCA9IHJlbW90ZVJlcG9ydC5pc1ZhbGlkKCk7XG4gICAgICAgICAgICBpZiAoIXJlbW90ZVJlcG9ydElzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJSRU1PVEVfTk9UX1ZBTElEXCIsIFt1cmldLCByZW1vdGVSZXBvcnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcblxuICAgICAgICAgICAgaWYgKCFyZW1vdGVSZXBvcnRJc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZXN1bHQgJiYgcXVlcnlQYXRoKSB7XG4gICAgICAgIHZhciBwYXJ0cyA9IHF1ZXJ5UGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIGZvciAodmFyIGlkeCA9IDAsIGxpbSA9IHBhcnRzLmxlbmd0aDsgaWR4IDwgbGltOyBpZHgrKykge1xuICAgICAgICAgICAgdmFyIGtleSA9IGRlY29kZUpTT05Qb2ludGVyKHBhcnRzW2lkeF0pO1xuICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgeyAvLyBpdCdzIGFuIGlkXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gZmluZElkKHJlc3VsdCwga2V5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIGl0J3MgYSBwYXRoIGJlaGluZCBpZFxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydHMuZ2V0UmVtb3RlUGF0aCA9IGdldFJlbW90ZVBhdGg7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIFJlcG9ydCAgICAgID0gcmVxdWlyZShcIi4vUmVwb3J0XCIpO1xudmFyIFNjaGVtYUNhY2hlID0gcmVxdWlyZShcIi4vU2NoZW1hQ2FjaGVcIik7XG52YXIgVXRpbHMgICAgICAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcblxuZnVuY3Rpb24gbWVyZ2VSZWZlcmVuY2Uoc2NvcGUsIHJlZikge1xuICAgIGlmIChVdGlscy5pc0Fic29sdXRlVXJpKHJlZikpIHtcbiAgICAgICAgcmV0dXJuIHJlZjtcbiAgICB9XG5cbiAgICB2YXIgam9pbmVkU2NvcGUgPSBzY29wZS5qb2luKFwiXCIpLFxuICAgICAgICBpc1Njb3BlQWJzb2x1dGUgPSBVdGlscy5pc0Fic29sdXRlVXJpKGpvaW5lZFNjb3BlKSxcbiAgICAgICAgaXNTY29wZVJlbGF0aXZlID0gVXRpbHMuaXNSZWxhdGl2ZVVyaShqb2luZWRTY29wZSksXG4gICAgICAgIGlzUmVmUmVsYXRpdmUgPSBVdGlscy5pc1JlbGF0aXZlVXJpKHJlZiksXG4gICAgICAgIHRvUmVtb3ZlO1xuXG4gICAgaWYgKGlzU2NvcGVBYnNvbHV0ZSAmJiBpc1JlZlJlbGF0aXZlKSB7XG4gICAgICAgIHRvUmVtb3ZlID0gam9pbmVkU2NvcGUubWF0Y2goL1xcL1teXFwvXSokLyk7XG4gICAgICAgIGlmICh0b1JlbW92ZSkge1xuICAgICAgICAgICAgam9pbmVkU2NvcGUgPSBqb2luZWRTY29wZS5zbGljZSgwLCB0b1JlbW92ZS5pbmRleCArIDEpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1Njb3BlUmVsYXRpdmUgJiYgaXNSZWZSZWxhdGl2ZSkge1xuICAgICAgICBqb2luZWRTY29wZSA9IFwiXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdG9SZW1vdmUgPSBqb2luZWRTY29wZS5tYXRjaCgvW14jL10rJC8pO1xuICAgICAgICBpZiAodG9SZW1vdmUpIHtcbiAgICAgICAgICAgIGpvaW5lZFNjb3BlID0gam9pbmVkU2NvcGUuc2xpY2UoMCwgdG9SZW1vdmUuaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlcyA9IGpvaW5lZFNjb3BlICsgcmVmO1xuICAgIHJlcyA9IHJlcy5yZXBsYWNlKC8jIy8sIFwiI1wiKTtcbiAgICByZXR1cm4gcmVzO1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0UmVmZXJlbmNlcyhvYmosIHJlc3VsdHMsIHNjb3BlLCBwYXRoKSB7XG4gICAgcmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG4gICAgc2NvcGUgPSBzY29wZSB8fCBbXTtcbiAgICBwYXRoID0gcGF0aCB8fCBbXTtcblxuICAgIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiIHx8IG9iaiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iai5pZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzY29wZS5wdXNoKG9iai5pZCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouJHJlZiA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2Ygb2JqLl9fJHJlZlJlc29sdmVkID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgICByZWY6IG1lcmdlUmVmZXJlbmNlKHNjb3BlLCBvYmouJHJlZiksXG4gICAgICAgICAgICBrZXk6IFwiJHJlZlwiLFxuICAgICAgICAgICAgb2JqOiBvYmosXG4gICAgICAgICAgICBwYXRoOiBwYXRoLnNsaWNlKDApXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9iai4kc2NoZW1hID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiBvYmouX18kc2NoZW1hUmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICAgIHJlZjogbWVyZ2VSZWZlcmVuY2Uoc2NvcGUsIG9iai4kc2NoZW1hKSxcbiAgICAgICAgICAgIGtleTogXCIkc2NoZW1hXCIsXG4gICAgICAgICAgICBvYmo6IG9iaixcbiAgICAgICAgICAgIHBhdGg6IHBhdGguc2xpY2UoMClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFyIGlkeDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIGlkeCA9IG9iai5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgcGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGNvbGxlY3RSZWZlcmVuY2VzKG9ialtpZHhdLCByZXN1bHRzLCBzY29wZSwgcGF0aCk7XG4gICAgICAgICAgICBwYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAvLyBkbyBub3QgcmVjdXJzZSB0aHJvdWdoIHJlc29sdmVkIHJlZmVyZW5jZXMgYW5kIG90aGVyIHotc2NoZW1hIHByb3BzXG4gICAgICAgICAgICBpZiAoa2V5c1tpZHhdLmluZGV4T2YoXCJfXyRcIikgPT09IDApIHsgY29udGludWU7IH1cbiAgICAgICAgICAgIHBhdGgucHVzaChrZXlzW2lkeF0pO1xuICAgICAgICAgICAgY29sbGVjdFJlZmVyZW5jZXMob2JqW2tleXNbaWR4XV0sIHJlc3VsdHMsIHNjb3BlLCBwYXRoKTtcbiAgICAgICAgICAgIHBhdGgucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iai5pZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzY29wZS5wb3AoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbn1cblxudmFyIGNvbXBpbGVBcnJheU9mU2NoZW1hc0xvb3AgPSBmdW5jdGlvbiAobWFpblJlcG9ydCwgYXJyKSB7XG4gICAgdmFyIGlkeCA9IGFyci5sZW5ndGgsXG4gICAgICAgIGNvbXBpbGVkQ291bnQgPSAwO1xuXG4gICAgd2hpbGUgKGlkeC0tKSB7XG5cbiAgICAgICAgLy8gdHJ5IHRvIGNvbXBpbGUgZWFjaCBzY2hlbWEgc2VwYXJhdGVseVxuICAgICAgICB2YXIgcmVwb3J0ID0gbmV3IFJlcG9ydChtYWluUmVwb3J0KTtcbiAgICAgICAgdmFyIGlzVmFsaWQgPSBleHBvcnRzLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIGFycltpZHhdKTtcbiAgICAgICAgaWYgKGlzVmFsaWQpIHsgY29tcGlsZWRDb3VudCsrOyB9XG5cbiAgICAgICAgLy8gY29weSBlcnJvcnMgdG8gcmVwb3J0XG4gICAgICAgIG1haW5SZXBvcnQuZXJyb3JzID0gbWFpblJlcG9ydC5lcnJvcnMuY29uY2F0KHJlcG9ydC5lcnJvcnMpO1xuXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBpbGVkQ291bnQ7XG59O1xuXG5mdW5jdGlvbiBmaW5kSWQoYXJyLCBpZCkge1xuICAgIHZhciBpZHggPSBhcnIubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICBpZiAoYXJyW2lkeF0uaWQgPT09IGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyW2lkeF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBjb21waWxlQXJyYXlPZlNjaGVtYXMgPSBmdW5jdGlvbiAocmVwb3J0LCBhcnIpIHtcblxuICAgIHZhciBjb21waWxlZCA9IDAsXG4gICAgICAgIGxhc3RMb29wQ29tcGlsZWQ7XG5cbiAgICBkbyB7XG5cbiAgICAgICAgLy8gcmVtb3ZlIGFsbCBVTlJFU09MVkFCTEVfUkVGRVJFTkNFIGVycm9ycyBiZWZvcmUgY29tcGlsaW5nIGFycmF5IGFnYWluXG4gICAgICAgIHZhciBpZHggPSByZXBvcnQuZXJyb3JzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICBpZiAocmVwb3J0LmVycm9yc1tpZHhdLmNvZGUgPT09IFwiVU5SRVNPTFZBQkxFX1JFRkVSRU5DRVwiKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmVycm9ycy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlbWVtYmVyIGhvdyBtYW55IHdlcmUgY29tcGlsZWQgaW4gdGhlIGxhc3QgbG9vcFxuICAgICAgICBsYXN0TG9vcENvbXBpbGVkID0gY29tcGlsZWQ7XG5cbiAgICAgICAgLy8gY291bnQgaG93IG1hbnkgYXJlIGNvbXBpbGVkIG5vd1xuICAgICAgICBjb21waWxlZCA9IGNvbXBpbGVBcnJheU9mU2NoZW1hc0xvb3AuY2FsbCh0aGlzLCByZXBvcnQsIGFycik7XG5cbiAgICAgICAgLy8gZml4IF9fJG1pc3NpbmdSZWZlcmVuY2VzIGlmIHBvc3NpYmxlXG4gICAgICAgIGlkeCA9IGFyci5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIHNjaCA9IGFycltpZHhdO1xuICAgICAgICAgICAgaWYgKHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgIHZhciBpZHgyID0gc2NoLl9fJG1pc3NpbmdSZWZlcmVuY2VzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoaWR4Mi0tKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWZPYmogPSBzY2guX18kbWlzc2luZ1JlZmVyZW5jZXNbaWR4Ml07XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IGZpbmRJZChhcnIsIHJlZk9iai5yZWYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgbWlnaHQgY3JlYXRlIGNpcmN1bGFyIHJlZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZk9iai5vYmpbXCJfX1wiICsgcmVmT2JqLmtleSArIFwiUmVzb2x2ZWRcIl0gPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0J3MgcmVzb2x2ZWQgbm93IHNvIGRlbGV0ZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NoLl9fJG1pc3NpbmdSZWZlcmVuY2VzLnNwbGljZShpZHgyLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2NoLl9fJG1pc3NpbmdSZWZlcmVuY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgc2NoLl9fJG1pc3NpbmdSZWZlcmVuY2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGtlZXAgcmVwZWF0aW5nIGlmIG5vdCBhbGwgY29tcGlsZWQgYW5kIGF0IGxlYXN0IG9uZSBtb3JlIHdhcyBjb21waWxlZCBpbiB0aGUgbGFzdCBsb29wXG4gICAgfSB3aGlsZSAoY29tcGlsZWQgIT09IGFyci5sZW5ndGggJiYgY29tcGlsZWQgIT09IGxhc3RMb29wQ29tcGlsZWQpO1xuXG4gICAgcmV0dXJuIHJlcG9ydC5pc1ZhbGlkKCk7XG5cbn07XG5cbmV4cG9ydHMuY29tcGlsZVNjaGVtYSA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuXG4gICAgcmVwb3J0LmNvbW1vbkVycm9yTWVzc2FnZSA9IFwiU0NIRU1BX0NPTVBJTEFUSU9OX0ZBSUxFRFwiO1xuXG4gICAgLy8gaWYgc2NoZW1hIGlzIGEgc3RyaW5nLCBhc3N1bWUgaXQncyBhIHVyaVxuICAgIGlmICh0eXBlb2Ygc2NoZW1hID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHZhciBsb2FkZWRTY2hlbWEgPSBTY2hlbWFDYWNoZS5nZXRTY2hlbWFCeVVyaS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICAgICAgaWYgKCFsb2FkZWRTY2hlbWEpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlNDSEVNQV9OT1RfUkVBQ0hBQkxFXCIsIFtzY2hlbWFdKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzY2hlbWEgPSBsb2FkZWRTY2hlbWE7XG4gICAgfVxuXG4gICAgLy8gaWYgc2NoZW1hIGlzIGFuIGFycmF5LCBhc3N1bWUgaXQncyBhbiBhcnJheSBvZiBzY2hlbWFzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hKSkge1xuICAgICAgICByZXR1cm4gY29tcGlsZUFycmF5T2ZTY2hlbWFzLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhdmUgYW4gaWQgdGhhbiBpdCBzaG91bGQgYmUgY2FjaGVkIGFscmVhZHkgKGlmIHRoaXMgaW5zdGFuY2UgaGFzIGNvbXBpbGVkIGl0KVxuICAgIGlmIChzY2hlbWEuX18kY29tcGlsZWQgJiYgc2NoZW1hLmlkICYmIFNjaGVtYUNhY2hlLmNoZWNrQ2FjaGVGb3JVcmkuY2FsbCh0aGlzLCBzY2hlbWEuaWQpID09PSBmYWxzZSkge1xuICAgICAgICBzY2hlbWEuX18kY29tcGlsZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gZG8gbm90IHJlLWNvbXBpbGUgc2NoZW1hc1xuICAgIGlmIChzY2hlbWEuX18kY29tcGlsZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHNjaGVtYS5pZCkge1xuICAgICAgICAvLyBhZGQgdGhpcyB0byBvdXIgc2NoZW1hQ2FjaGUgKGJlZm9yZSBjb21waWxhdGlvbiBpbiBjYXNlIHdlIGhhdmUgcmVmZXJlbmNlcyBpbmNsdWRpbmcgaWQpXG4gICAgICAgIFNjaGVtYUNhY2hlLmNhY2hlU2NoZW1hQnlVcmkuY2FsbCh0aGlzLCBzY2hlbWEuaWQsIHNjaGVtYSk7XG4gICAgfVxuXG4gICAgLy8gZGVsZXRlIGFsbCBfXyRtaXNzaW5nUmVmZXJlbmNlcyBmcm9tIHByZXZpb3VzIGNvbXBpbGF0aW9uIGF0dGVtcHRzXG4gICAgdmFyIGlzVmFsaWRFeGNlcHRSZWZlcmVuY2VzID0gcmVwb3J0LmlzVmFsaWQoKTtcbiAgICBkZWxldGUgc2NoZW1hLl9fJG1pc3NpbmdSZWZlcmVuY2VzO1xuXG4gICAgLy8gY29sbGVjdCBhbGwgcmVmZXJlbmNlcyB0aGF0IG5lZWQgdG8gYmUgcmVzb2x2ZWQgLSAkcmVmIGFuZCAkc2NoZW1hXG4gICAgdmFyIHJlZnMgPSBjb2xsZWN0UmVmZXJlbmNlcy5jYWxsKHRoaXMsIHNjaGVtYSksXG4gICAgICAgIGlkeCA9IHJlZnMubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAvLyByZXNvbHZlIGFsbCB0aGUgY29sbGVjdGVkIHJlZmVyZW5jZXMgaW50byBfX3h4eFJlc29sdmVkIHBvaW50ZXJcbiAgICAgICAgdmFyIHJlZk9iaiA9IHJlZnNbaWR4XTtcbiAgICAgICAgdmFyIHJlc3BvbnNlID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hQnlVcmkuY2FsbCh0aGlzLCByZXBvcnQsIHJlZk9iai5yZWYsIHNjaGVtYSk7XG5cbiAgICAgICAgLy8gd2UgY2FuIHRyeSB0byB1c2UgY3VzdG9tIHNjaGVtYVJlYWRlciBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgICAgdmFyIHNjaGVtYVJlYWRlciA9IHRoaXMuZ2V0U2NoZW1hUmVhZGVyKCk7XG4gICAgICAgICAgICBpZiAoc2NoZW1hUmVhZGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gaXQncyBzdXBwb3NlZCB0byByZXR1cm4gYSB2YWxpZCBzY2hlbWFcbiAgICAgICAgICAgICAgICB2YXIgcyA9IHNjaGVtYVJlYWRlcihyZWZPYmoucmVmKTtcbiAgICAgICAgICAgICAgICBpZiAocykge1xuICAgICAgICAgICAgICAgICAgICAvLyBpdCBuZWVkcyB0byBoYXZlIHRoZSBpZFxuICAgICAgICAgICAgICAgICAgICBzLmlkID0gcmVmT2JqLnJlZjtcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IHRvIGNvbXBpbGUgdGhlIHNjaGVtYVxuICAgICAgICAgICAgICAgICAgICB2YXIgc3VicmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWV4cG9ydHMuY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHN1YnJlcG9ydCwgcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvcHkgZXJyb3JzIHRvIHJlcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmVycm9ycyA9IHJlcG9ydC5lcnJvcnMuY29uY2F0KHN1YnJlcG9ydC5lcnJvcnMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBTY2hlbWFDYWNoZS5nZXRTY2hlbWFCeVVyaS5jYWxsKHRoaXMsIHJlcG9ydCwgcmVmT2JqLnJlZiwgc2NoZW1hKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcblxuICAgICAgICAgICAgdmFyIGlzQWJzb2x1dGUgPSBVdGlscy5pc0Fic29sdXRlVXJpKHJlZk9iai5yZWYpO1xuICAgICAgICAgICAgdmFyIGlzRG93bmxvYWRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGlnbm9yZVVucmVzb2x2YWJsZVJlbW90ZXMgPSB0aGlzLm9wdGlvbnMuaWdub3JlVW5yZXNvbHZhYmxlUmVmZXJlbmNlcyA9PT0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKGlzQWJzb2x1dGUpIHtcbiAgICAgICAgICAgICAgICAvLyB3ZSBzaG91bGRuJ3QgYWRkIFVOUkVTT0xWQUJMRV9SRUZFUkVOQ0UgZm9yIHNjaGVtYXMgd2UgYWxyZWFkeSBoYXZlIGRvd25sb2FkZWRcbiAgICAgICAgICAgICAgICAvLyBhbmQgc2V0IHRocm91Z2ggc2V0UmVtb3RlUmVmZXJlbmNlIG1ldGhvZFxuICAgICAgICAgICAgICAgIGlzRG93bmxvYWRlZCA9IFNjaGVtYUNhY2hlLmNoZWNrQ2FjaGVGb3JVcmkuY2FsbCh0aGlzLCByZWZPYmoucmVmKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpc0Fic29sdXRlIHx8ICFpc0Rvd25sb2FkZWQgJiYgIWlnbm9yZVVucmVzb2x2YWJsZVJlbW90ZXMpIHtcbiAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShyZXBvcnQucGF0aCwgcmVmT2JqLnBhdGgpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlVOUkVTT0xWQUJMRV9SRUZFUkVOQ0VcIiwgW3JlZk9iai5yZWZdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5zbGljZSgwLCAtcmVmT2JqLnBhdGgubGVuZ3RoKTtcblxuICAgICAgICAgICAgICAgIC8vIHB1c2JsaXNoIHVucmVzb2x2ZWQgcmVmZXJlbmNlcyBvdXRcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEV4Y2VwdFJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLl9fJG1pc3NpbmdSZWZlcmVuY2VzID0gc2NoZW1hLl9fJG1pc3NpbmdSZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuX18kbWlzc2luZ1JlZmVyZW5jZXMucHVzaChyZWZPYmopO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzIG1pZ2h0IGNyZWF0ZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgICAgIHJlZk9iai5vYmpbXCJfX1wiICsgcmVmT2JqLmtleSArIFwiUmVzb2x2ZWRcIl0gPSByZXNwb25zZTtcbiAgICB9XG5cbiAgICB2YXIgaXNWYWxpZCA9IHJlcG9ydC5pc1ZhbGlkKCk7XG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgc2NoZW1hLl9fJGNvbXBpbGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2NoZW1hLmlkKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgdGhpcyBzY2hlbWEgZnJvbSBzY2hlbWFDYWNoZSBiZWNhdXNlIGl0IGZhaWxlZCB0byBjb21waWxlXG4gICAgICAgICAgICBTY2hlbWFDYWNoZS5yZW1vdmVGcm9tQ2FjaGVCeVVyaS5jYWxsKHRoaXMsIHNjaGVtYS5pZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG5cbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIEZvcm1hdFZhbGlkYXRvcnMgPSByZXF1aXJlKFwiLi9Gb3JtYXRWYWxpZGF0b3JzXCIpLFxuICAgIEpzb25WYWxpZGF0aW9uICAgPSByZXF1aXJlKFwiLi9Kc29uVmFsaWRhdGlvblwiKSxcbiAgICBSZXBvcnQgICAgICAgICAgID0gcmVxdWlyZShcIi4vUmVwb3J0XCIpLFxuICAgIFV0aWxzICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcblxudmFyIFNjaGVtYVZhbGlkYXRvcnMgPSB7XG4gICAgJHJlZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtYXBwc2F3Zy1qc29uLXBvaW50ZXItMDdcbiAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtcGJyeWFuLXp5cC1qc29uLXJlZi0wM1xuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS4kcmVmICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiJHJlZlwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgICRzY2hlbWE6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS1jb3JlLmh0bWwjcmZjLnNlY3Rpb24uNlxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS4kc2NoZW1hICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiJHNjaGVtYVwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG11bHRpcGxlT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjEuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5tdWx0aXBsZU9mICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibXVsdGlwbGVPZlwiLCBcIm51bWJlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm11bHRpcGxlT2YgPD0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm11bHRpcGxlT2ZcIiwgXCJzdHJpY3RseSBncmVhdGVyIHRoYW4gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heGltdW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjIuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5tYXhpbXVtICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWF4aW11bVwiLCBcIm51bWJlclwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGV4Y2x1c2l2ZU1heGltdW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjIuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImV4Y2x1c2l2ZU1heGltdW1cIiwgXCJib29sZWFuXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWF4aW11bSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX0RFUEVOREVOQ1lcIiwgW1wiZXhjbHVzaXZlTWF4aW11bVwiLCBcIm1heGltdW1cIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5pbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4zLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEubWluaW11bSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1pbmltdW1cIiwgXCJudW1iZXJcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBleGNsdXNpdmVNaW5pbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4zLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuZXhjbHVzaXZlTWluaW11bSAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJleGNsdXNpdmVNaW5pbXVtXCIsIFwiYm9vbGVhblwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1pbmltdW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9ERVBFTkRFTkNZXCIsIFtcImV4Y2x1c2l2ZU1pbmltdW1cIiwgXCJtaW5pbXVtXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4TGVuZ3RoOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4xLjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEubWF4TGVuZ3RoKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtYXhMZW5ndGhcIiwgXCJpbnRlZ2VyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWF4TGVuZ3RoIDwgMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm1heExlbmd0aFwiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pbkxlbmd0aDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMi4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLm1pbkxlbmd0aCkgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWluTGVuZ3RoXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1pbkxlbmd0aCA8IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtaW5MZW5ndGhcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwYXR0ZXJuOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4zLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEucGF0dGVybiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInBhdHRlcm5cIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBSZWdFeHAoc2NoZW1hLnBhdHRlcm4pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfUEFUVEVSTlwiLCBbXCJwYXR0ZXJuXCIsIHNjaGVtYS5wYXR0ZXJuXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFkZGl0aW9uYWxJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMS4xXG4gICAgICAgIHZhciB0eXBlID0gVXRpbHMud2hhdElzKHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMpO1xuICAgICAgICBpZiAodHlwZSAhPT0gXCJib29sZWFuXCIgJiYgdHlwZSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImFkZGl0aW9uYWxJdGVtc1wiLCBbXCJib29sZWFuXCIsIFwib2JqZWN0XCJdXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcImFkZGl0aW9uYWxJdGVtc1wiKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4xLjFcbiAgICAgICAgdmFyIHR5cGUgPSBVdGlscy53aGF0SXMoc2NoZW1hLml0ZW1zKTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLml0ZW1zKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5pdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLml0ZW1zW2lkeF0pO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIml0ZW1zXCIsIFtcImFycmF5XCIsIFwib2JqZWN0XCJdXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjdXN0b20gLSBzdHJpY3QgbW9kZVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlQWRkaXRpb25hbCA9PT0gdHJ1ZSAmJiBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zID09PSB1bmRlZmluZWQgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wiYWRkaXRpb25hbEl0ZW1zXCJdKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjdXN0b21lIC0gYXNzdW1lIGRlZmluZWQgZmFsc2UgbW9kZVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFzc3VtZUFkZGl0aW9uYWwgPT09IHRydWUgJiYgc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gdW5kZWZpbmVkICYmIEFycmF5LmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgICAgICAgc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMi4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLm1heEl0ZW1zICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWF4SXRlbXNcIiwgXCJpbnRlZ2VyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWF4SXRlbXMgPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWF4SXRlbXNcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5JdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMy4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLm1pbkl0ZW1zKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtaW5JdGVtc1wiLCBcImludGVnZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5taW5JdGVtcyA8IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtaW5JdGVtc1wiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHVuaXF1ZUl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy40LjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEudW5pcXVlSXRlbXMgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1widW5pcXVlSXRlbXNcIiwgXCJib29sZWFuXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4UHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuMS4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLm1heFByb3BlcnRpZXMpICE9PSBcImludGVnZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1heFByb3BlcnRpZXNcIiwgXCJpbnRlZ2VyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWF4UHJvcGVydGllcyA8IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtYXhQcm9wZXJ0aWVzXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuMi4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLm1pblByb3BlcnRpZXMpICE9PSBcImludGVnZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1pblByb3BlcnRpZXNcIiwgXCJpbnRlZ2VyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWluUHJvcGVydGllcyA8IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtaW5Qcm9wZXJ0aWVzXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjMuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5yZXF1aXJlZCkgIT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInJlcXVpcmVkXCIsIFwiYXJyYXlcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJyZXF1aXJlZFwiLCBcImFuIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnRcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5yZXF1aXJlZC5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5yZXF1aXJlZFtpZHhdICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVkFMVUVfVFlQRVwiLCBbXCJyZXF1aXJlZFwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFV0aWxzLmlzVW5pcXVlQXJyYXkoc2NoZW1hLnJlcXVpcmVkKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wicmVxdWlyZWRcIiwgXCJhbiBhcnJheSB3aXRoIHVuaXF1ZSBpdGVtc1wiXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC40LjFcbiAgICAgICAgdmFyIHR5cGUgPSBVdGlscy53aGF0SXMoc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKTtcbiAgICAgICAgaWYgKHR5cGUgIT09IFwiYm9vbGVhblwiICYmIHR5cGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiLCBbXCJib29sZWFuXCIsIFwib2JqZWN0XCJdXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC40LjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEucHJvcGVydGllcykgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJwcm9wZXJ0aWVzXCIsIFwib2JqZWN0XCJdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMpLFxuICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XSxcbiAgICAgICAgICAgICAgICB2YWwgPSBzY2hlbWEucHJvcGVydGllc1trZXldO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcInByb3BlcnRpZXNcIik7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGtleSk7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCB2YWwpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGN1c3RvbSAtIHN0cmljdCBtb2RlXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VBZGRpdGlvbmFsID09PSB0cnVlICYmIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wiYWRkaXRpb25hbFByb3BlcnRpZXNcIl0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGN1c3RvbWUgLSBhc3N1bWUgZGVmaW5lZCBmYWxzZSBtb2RlXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXNzdW1lQWRkaXRpb25hbCA9PT0gdHJ1ZSAmJiBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VzdG9tIC0gZm9yY2VQcm9wZXJ0aWVzXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VQcm9wZXJ0aWVzID09PSB0cnVlICYmIGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJDVVNUT01fTU9ERV9GT1JDRV9QUk9QRVJUSUVTXCIsIFtcInByb3BlcnRpZXNcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwYXR0ZXJuUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNC4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInBhdHRlcm5Qcm9wZXJ0aWVzXCIsIFwib2JqZWN0XCJdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzKSxcbiAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF0sXG4gICAgICAgICAgICAgICAgdmFsID0gc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzW2tleV07XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIFJlZ0V4cChrZXkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfUEFUVEVSTlwiLCBbXCJwYXR0ZXJuUHJvcGVydGllc1wiLCBrZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJwYXR0ZXJuUHJvcGVydGllc1wiKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goa2V5LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgdmFsKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjdXN0b20gLSBmb3JjZVByb3BlcnRpZXNcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZVByb3BlcnRpZXMgPT09IHRydWUgJiYga2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkNVU1RPTV9NT0RFX0ZPUkNFX1BST1BFUlRJRVNcIiwgW1wicGF0dGVyblByb3BlcnRpZXNcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBkZXBlbmRlbmNpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjUuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5kZXBlbmRlbmNpZXMpICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZGVwZW5kZW5jaWVzXCIsIFwib2JqZWN0XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLmRlcGVuZGVuY2llcyksXG4gICAgICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICB2YXIgc2NoZW1hS2V5ID0ga2V5c1tpZHhdLFxuICAgICAgICAgICAgICAgICAgICBzY2hlbWFEZXBlbmRlbmN5ID0gc2NoZW1hLmRlcGVuZGVuY2llc1tzY2hlbWFLZXldLFxuICAgICAgICAgICAgICAgICAgICB0eXBlID0gVXRpbHMud2hhdElzKHNjaGVtYURlcGVuZGVuY3kpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcImRlcGVuZGVuY2llc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChzY2hlbWFLZXkpO1xuICAgICAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWFEZXBlbmRlbmN5KTtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpZHgyID0gc2NoZW1hRGVwZW5kZW5jeS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZHgyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wiZGVwZW5kZW5jaWVzXCIsIFwibm90IGVtcHR5IGFycmF5XCJdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaWR4Mi0tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNjaGVtYURlcGVuZGVuY3lbaWR4Ml0gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1ZBTFVFX1RZUEVcIiwgW1wiZGVwZW5kZW5zaWNlc1wiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzVW5pcXVlQXJyYXkoc2NoZW1hRGVwZW5kZW5jeSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wiZGVwZW5kZW5jaWVzXCIsIFwiYW4gYXJyYXkgd2l0aCB1bmlxdWUgaXRlbXNcIl0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9WQUxVRV9UWVBFXCIsIFtcImRlcGVuZGVuY2llc1wiLCBcIm9iamVjdCBvciBhcnJheVwiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBlbnVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4xLjFcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLmVudW0pID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImVudW1cIiwgXCJhcnJheVwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLmVudW0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wiZW51bVwiLCBcImFuIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnRcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKFV0aWxzLmlzVW5pcXVlQXJyYXkoc2NoZW1hLmVudW0pID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImVudW1cIiwgXCJhbiBhcnJheSB3aXRoIHVuaXF1ZSBlbGVtZW50c1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHR5cGU6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjIuMVxuICAgICAgICB2YXIgcHJpbWl0aXZlVHlwZXMgPSBbXCJhcnJheVwiLCBcImJvb2xlYW5cIiwgXCJpbnRlZ2VyXCIsIFwibnVtYmVyXCIsIFwibnVsbFwiLCBcIm9iamVjdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgIHByaW1pdGl2ZVR5cGVTdHIgPSBwcmltaXRpdmVUeXBlcy5qb2luKFwiLFwiKSxcbiAgICAgICAgICAgIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHNjaGVtYS50eXBlKTtcblxuICAgICAgICBpZiAoaXNBcnJheSkge1xuICAgICAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS50eXBlLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIGlmIChwcmltaXRpdmVUeXBlcy5pbmRleE9mKHNjaGVtYS50eXBlW2lkeF0pID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1widHlwZVwiLCBwcmltaXRpdmVUeXBlU3RyXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFV0aWxzLmlzVW5pcXVlQXJyYXkoc2NoZW1hLnR5cGUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJ0eXBlXCIsIFwiYW4gb2JqZWN0IHdpdGggdW5pcXVlIHByb3BlcnRpZXNcIl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEudHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVR5cGVzLmluZGV4T2Yoc2NoZW1hLnR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJ0eXBlXCIsIHByaW1pdGl2ZVR5cGVTdHJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJ0eXBlXCIsIFtcInN0cmluZ1wiLCBcImFycmF5XCJdXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLm5vRW1wdHlTdHJpbmdzID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwic3RyaW5nXCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwic3RyaW5nXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEubWluTGVuZ3RoID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmVudW0gPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcblxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEubWluTGVuZ3RoID0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ub0VtcHR5QXJyYXlzID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYXJyYXlcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJhcnJheVwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1pbkl0ZW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLm1pbkl0ZW1zID0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZVByb3BlcnRpZXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJvYmplY3RcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJvYmplY3RcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5wcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgJiYgc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcInByb3BlcnRpZXNcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlSXRlbXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJhcnJheVwiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcImFycmF5XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEuaXRlbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wiaXRlbXNcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlTWluSXRlbXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJhcnJheVwiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcImFycmF5XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEubWluSXRlbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wibWluSXRlbXNcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlTWF4SXRlbXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJhcnJheVwiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcImFycmF5XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEubWF4SXRlbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wibWF4SXRlbXNcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlTWluTGVuZ3RoID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwic3RyaW5nXCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwic3RyaW5nXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEubWluTGVuZ3RoID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmZvcm1hdCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5lbnVtID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLnBhdHRlcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wibWluTGVuZ3RoXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZU1heExlbmd0aCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcInN0cmluZ1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1heExlbmd0aCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5mb3JtYXQgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZW51bSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5wYXR0ZXJuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIm1heExlbmd0aFwiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhbGxPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMy4xXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5hbGxPZikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiYWxsT2ZcIiwgXCJhcnJheVwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLmFsbE9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImFsbE9mXCIsIFwiYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLmFsbE9mLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJhbGxPZlwiKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYWxsT2ZbaWR4XSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFueU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS40LjFcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLmFueU9mKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJhbnlPZlwiLCBcImFycmF5XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEuYW55T2YubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wiYW55T2ZcIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEuYW55T2YubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcImFueU9mXCIpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5hbnlPZltpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgb25lT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjUuMVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEub25lT2YpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm9uZU9mXCIsIFwiYXJyYXlcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5vbmVPZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJvbmVPZlwiLCBcImFuIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnRcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5vbmVPZi5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwib25lT2ZcIik7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLm9uZU9mW2lkeF0pO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBub3Q6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjYuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5ub3QpICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibm90XCIsIFwib2JqZWN0XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJub3RcIik7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEubm90KTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBkZWZpbml0aW9uczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNy4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLmRlZmluaXRpb25zKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImRlZmluaXRpb25zXCIsIFwib2JqZWN0XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLmRlZmluaXRpb25zKSxcbiAgICAgICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF0sXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHNjaGVtYS5kZWZpbml0aW9uc1trZXldO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJkZWZpbml0aW9uc1wiKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgdmFsKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZm9ybWF0OiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuZm9ybWF0ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZm9ybWF0XCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChGb3JtYXRWYWxpZGF0b3JzW3NjaGVtYS5mb3JtYXRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJVTktOT1dOX0ZPUk1BVFwiLCBbc2NoZW1hLmZvcm1hdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBpZDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLWNvcmUuaHRtbCNyZmMuc2VjdGlvbi43LjJcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuaWQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJpZFwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHRpdGxlOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjYuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS50aXRsZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInRpdGxlXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVzY3JpcHRpb246IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNi4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmRlc2NyaXB0aW9uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZGVzY3JpcHRpb25cIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBcImRlZmF1bHRcIjogZnVuY3Rpb24gKC8qIHJlcG9ydCwgc2NoZW1hICovKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi42LjJcbiAgICAgICAgLy8gVGhlcmUgYXJlIG5vIHJlc3RyaWN0aW9ucyBwbGFjZWQgb24gdGhlIHZhbHVlIG9mIHRoaXMga2V5d29yZC5cbiAgICB9XG59O1xuXG52YXIgdmFsaWRhdGVBcnJheU9mU2NoZW1hcyA9IGZ1bmN0aW9uIChyZXBvcnQsIGFycikge1xuICAgIHZhciBpZHggPSBhcnIubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBhcnJbaWR4XSk7XG4gICAgfVxuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xufTtcblxuZXhwb3J0cy52YWxpZGF0ZVNjaGVtYSA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuXG4gICAgcmVwb3J0LmNvbW1vbkVycm9yTWVzc2FnZSA9IFwiU0NIRU1BX1ZBTElEQVRJT05fRkFJTEVEXCI7XG5cbiAgICAvLyBpZiBzY2hlbWEgaXMgYW4gYXJyYXksIGFzc3VtZSBpdCdzIGFuIGFycmF5IG9mIHNjaGVtYXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZUFycmF5T2ZTY2hlbWFzLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgIH1cblxuICAgIC8vIGRvIG5vdCByZXZhbGlkYXRlIHNjaGVtYSB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIG9uY2VcbiAgICBpZiAoc2NoZW1hLl9fJHZhbGlkYXRlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiAkc2NoZW1hIGlzIHByZXNlbnQsIHRoaXMgc2NoZW1hIHNob3VsZCB2YWxpZGF0ZSBhZ2FpbnN0IHRoYXQgJHNjaGVtYVxuICAgIHZhciBoYXNQYXJlbnRTY2hlbWEgPSBzY2hlbWEuJHNjaGVtYSAmJiBzY2hlbWEuaWQgIT09IHNjaGVtYS4kc2NoZW1hO1xuICAgIGlmIChoYXNQYXJlbnRTY2hlbWEpIHtcbiAgICAgICAgaWYgKHNjaGVtYS5fXyRzY2hlbWFSZXNvbHZlZCAmJiBzY2hlbWEuX18kc2NoZW1hUmVzb2x2ZWQgIT09IHNjaGVtYSkge1xuICAgICAgICAgICAgdmFyIHN1YlJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0KTtcbiAgICAgICAgICAgIHZhciB2YWxpZCA9IEpzb25WYWxpZGF0aW9uLnZhbGlkYXRlLmNhbGwodGhpcywgc3ViUmVwb3J0LCBzY2hlbWEuX18kc2NoZW1hUmVzb2x2ZWQsIHNjaGVtYSk7XG4gICAgICAgICAgICBpZiAodmFsaWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiUEFSRU5UX1NDSEVNQV9WQUxJREFUSU9OX0ZBSUxFRFwiLCBudWxsLCBzdWJSZXBvcnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pZ25vcmVVbnJlc29sdmFibGVSZWZlcmVuY2VzICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiUkVGX1VOUkVTT0xWRURcIiwgW3NjaGVtYS4kc2NoZW1hXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm5vVHlwZWxlc3MgPT09IHRydWUpIHtcbiAgICAgICAgLy8gaXNzdWUgIzM2IC0gaW5oZXJpdCB0eXBlIHRvIGFueU9mLCBvbmVPZiwgYWxsT2YgaWYgbm9UeXBlbGVzcyBpcyBkZWZpbmVkXG4gICAgICAgIGlmIChzY2hlbWEudHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB2YXIgc2NoZW1hcyA9IFtdO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLmFueU9mKSkgeyBzY2hlbWFzID0gc2NoZW1hcy5jb25jYXQoc2NoZW1hLmFueU9mKTsgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLm9uZU9mKSkgeyBzY2hlbWFzID0gc2NoZW1hcy5jb25jYXQoc2NoZW1hLm9uZU9mKTsgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLmFsbE9mKSkgeyBzY2hlbWFzID0gc2NoZW1hcy5jb25jYXQoc2NoZW1hLmFsbE9mKTsgfVxuICAgICAgICAgICAgc2NoZW1hcy5mb3JFYWNoKGZ1bmN0aW9uIChzY2gpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjaC50eXBlKSB7IHNjaC50eXBlID0gc2NoZW1hLnR5cGU7IH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVuZCBpc3N1ZSAjMzZcbiAgICAgICAgaWYgKHNjaGVtYS5lbnVtID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHNjaGVtYS50eXBlID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHNjaGVtYS5hbnlPZiA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBzY2hlbWEub25lT2YgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgc2NoZW1hLm5vdCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBzY2hlbWEuJHJlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1widHlwZVwiXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYSksXG4gICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdO1xuICAgICAgICBpZiAoa2V5LmluZGV4T2YoXCJfX1wiKSA9PT0gMCkgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoU2NoZW1hVmFsaWRhdG9yc1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIFNjaGVtYVZhbGlkYXRvcnNba2V5XS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICAgICAgfSBlbHNlIGlmICghaGFzUGFyZW50U2NoZW1hKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm5vRXh0cmFLZXl3b3JkcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5FWFBFQ1RFRFwiLCBba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaXNWYWxpZCA9IHJlcG9ydC5pc1ZhbGlkKCk7XG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgc2NoZW1hLl9fJHZhbGlkYXRlZCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkO1xuXG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuaXNBYnNvbHV0ZVVyaSA9IGZ1bmN0aW9uICh1cmkpIHtcbiAgICByZXR1cm4gL15odHRwcz86XFwvXFwvLy50ZXN0KHVyaSk7XG59O1xuXG5leHBvcnRzLmlzUmVsYXRpdmVVcmkgPSBmdW5jdGlvbiAodXJpKSB7XG4gICAgLy8gcmVsYXRpdmUgVVJJcyB0aGF0IGVuZCB3aXRoIGEgaGFzaCBzaWduLCBpc3N1ZSAjNTZcbiAgICByZXR1cm4gLy4rIy8udGVzdCh1cmkpO1xufTtcblxuZXhwb3J0cy53aGF0SXMgPSBmdW5jdGlvbiAod2hhdCkge1xuXG4gICAgdmFyIHRvID0gdHlwZW9mIHdoYXQ7XG5cbiAgICBpZiAodG8gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgaWYgKHdoYXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh3aGF0KSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYXJyYXlcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJvYmplY3RcIjsgLy8gdHlwZW9mIHdoYXQgPT09ICdvYmplY3QnICYmIHdoYXQgPT09IE9iamVjdCh3aGF0KSAmJiAhQXJyYXkuaXNBcnJheSh3aGF0KTtcbiAgICB9XG5cbiAgICBpZiAodG8gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgaWYgKE51bWJlci5pc0Zpbml0ZSh3aGF0KSkge1xuICAgICAgICAgICAgaWYgKHdoYXQgJSAxID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaW50ZWdlclwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJudW1iZXJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKHdoYXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJub3QtYS1udW1iZXJcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJ1bmtub3duLW51bWJlclwiO1xuICAgIH1cblxuICAgIHJldHVybiB0bzsgLy8gdW5kZWZpbmVkLCBib29sZWFuLCBzdHJpbmcsIGZ1bmN0aW9uXG5cbn07XG5cbmV4cG9ydHMuYXJlRXF1YWwgPSBmdW5jdGlvbiBhcmVFcXVhbChqc29uMSwganNvbjIpIHtcbiAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS1jb3JlLmh0bWwjcmZjLnNlY3Rpb24uMy42XG5cbiAgICAvLyBUd28gSlNPTiB2YWx1ZXMgYXJlIHNhaWQgdG8gYmUgZXF1YWwgaWYgYW5kIG9ubHkgaWY6XG4gICAgLy8gYm90aCBhcmUgbnVsbHM7IG9yXG4gICAgLy8gYm90aCBhcmUgYm9vbGVhbnMsIGFuZCBoYXZlIHRoZSBzYW1lIHZhbHVlOyBvclxuICAgIC8vIGJvdGggYXJlIHN0cmluZ3MsIGFuZCBoYXZlIHRoZSBzYW1lIHZhbHVlOyBvclxuICAgIC8vIGJvdGggYXJlIG51bWJlcnMsIGFuZCBoYXZlIHRoZSBzYW1lIG1hdGhlbWF0aWNhbCB2YWx1ZTsgb3JcbiAgICBpZiAoanNvbjEgPT09IGpzb24yKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBpLCBsZW47XG5cbiAgICAvLyBib3RoIGFyZSBhcnJheXMsIGFuZDpcbiAgICBpZiAoQXJyYXkuaXNBcnJheShqc29uMSkgJiYgQXJyYXkuaXNBcnJheShqc29uMikpIHtcbiAgICAgICAgLy8gaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgaXRlbXM7IGFuZFxuICAgICAgICBpZiAoanNvbjEubGVuZ3RoICE9PSBqc29uMi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpdGVtcyBhdCB0aGUgc2FtZSBpbmRleCBhcmUgZXF1YWwgYWNjb3JkaW5nIHRvIHRoaXMgZGVmaW5pdGlvbjsgb3JcbiAgICAgICAgbGVuID0ganNvbjEubGVuZ3RoO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghYXJlRXF1YWwoanNvbjFbaV0sIGpzb24yW2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBib3RoIGFyZSBvYmplY3RzLCBhbmQ6XG4gICAgaWYgKGV4cG9ydHMud2hhdElzKGpzb24xKSA9PT0gXCJvYmplY3RcIiAmJiBleHBvcnRzLndoYXRJcyhqc29uMikgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgLy8gaGF2ZSB0aGUgc2FtZSBzZXQgb2YgcHJvcGVydHkgbmFtZXM7IGFuZFxuICAgICAgICB2YXIga2V5czEgPSBPYmplY3Qua2V5cyhqc29uMSk7XG4gICAgICAgIHZhciBrZXlzMiA9IE9iamVjdC5rZXlzKGpzb24yKTtcbiAgICAgICAgaWYgKCFhcmVFcXVhbChrZXlzMSwga2V5czIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdmFsdWVzIGZvciBhIHNhbWUgcHJvcGVydHkgbmFtZSBhcmUgZXF1YWwgYWNjb3JkaW5nIHRvIHRoaXMgZGVmaW5pdGlvbi5cbiAgICAgICAgbGVuID0ga2V5czEubGVuZ3RoO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghYXJlRXF1YWwoanNvbjFba2V5czFbaV1dLCBqc29uMltrZXlzMVtpXV0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydHMuaXNVbmlxdWVBcnJheSA9IGZ1bmN0aW9uIChhcnIsIGluZGV4ZXMpIHtcbiAgICB2YXIgaSwgaiwgbCA9IGFyci5sZW5ndGg7XG4gICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IGw7IGorKykge1xuICAgICAgICAgICAgaWYgKGV4cG9ydHMuYXJlRXF1YWwoYXJyW2ldLCBhcnJbal0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ZXMpIHsgaW5kZXhlcy5wdXNoKGksIGopOyB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0cy5kaWZmZXJlbmNlID0gZnVuY3Rpb24gKGJpZ1NldCwgc3ViU2V0KSB7XG4gICAgdmFyIGFyciA9IFtdLFxuICAgICAgICBpZHggPSBiaWdTZXQubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICBpZiAoc3ViU2V0LmluZGV4T2YoYmlnU2V0W2lkeF0pID09PSAtMSkge1xuICAgICAgICAgICAgYXJyLnB1c2goYmlnU2V0W2lkeF0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG59O1xuXG4vLyBOT1QgYSBkZWVwIHZlcnNpb24gb2YgY2xvbmVcbmV4cG9ydHMuY2xvbmUgPSBmdW5jdGlvbiAoc3JjKSB7XG4gICAgaWYgKHR5cGVvZiBzcmMgIT09IFwib2JqZWN0XCIgfHwgc3JjID09PSBudWxsKSB7IHJldHVybiBzcmM7IH1cbiAgICB2YXIgcmVzLCBpZHg7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3JjKSkge1xuICAgICAgICByZXMgPSBbXTtcbiAgICAgICAgaWR4ID0gc3JjLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICByZXNbaWR4XSA9IHNyY1tpZHhdO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzID0ge307XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc3JjKTtcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XTtcbiAgICAgICAgICAgIHJlc1trZXldID0gc3JjW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn07XG5cbmV4cG9ydHMuY2xvbmVEZWVwID0gZnVuY3Rpb24gKHNyYykge1xuICAgIHZhciB2aXNpdGVkID0gW10sIGNsb25lZCA9IFtdO1xuICAgIGZ1bmN0aW9uIGNsb25lRGVlcChzcmMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzcmMgIT09IFwib2JqZWN0XCIgfHwgc3JjID09PSBudWxsKSB7IHJldHVybiBzcmM7IH1cbiAgICAgICAgdmFyIHJlcywgaWR4LCBjaWR4O1xuXG4gICAgICAgIGNpZHggPSB2aXNpdGVkLmluZGV4T2Yoc3JjKTtcbiAgICAgICAgaWYgKGNpZHggIT09IC0xKSB7IHJldHVybiBjbG9uZWRbY2lkeF07IH1cblxuICAgICAgICB2aXNpdGVkLnB1c2goc3JjKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3JjKSkge1xuICAgICAgICAgICAgcmVzID0gW107XG4gICAgICAgICAgICBjbG9uZWQucHVzaChyZXMpO1xuICAgICAgICAgICAgaWR4ID0gc3JjLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHJlc1tpZHhdID0gY2xvbmVEZWVwKHNyY1tpZHhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyA9IHt9O1xuICAgICAgICAgICAgY2xvbmVkLnB1c2gocmVzKTtcbiAgICAgICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc3JjKTtcbiAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XTtcbiAgICAgICAgICAgICAgICByZXNba2V5XSA9IGNsb25lRGVlcChzcmNba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lRGVlcChzcmMpO1xufTtcblxuLypcbiAgZm9sbG93aW5nIGZ1bmN0aW9uIGNvbWVzIGZyb20gcHVueWNvZGUuanMgbGlicmFyeVxuICBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZXN0aWVqcy9wdW55Y29kZS5qc1xuKi9cbi8qanNoaW50IC1XMDE2Ki9cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBudW1lcmljIGNvZGUgcG9pbnRzIG9mIGVhY2ggVW5pY29kZVxuICogY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcuIFdoaWxlIEphdmFTY3JpcHQgdXNlcyBVQ1MtMiBpbnRlcm5hbGx5LFxuICogdGhpcyBmdW5jdGlvbiB3aWxsIGNvbnZlcnQgYSBwYWlyIG9mIHN1cnJvZ2F0ZSBoYWx2ZXMgKGVhY2ggb2Ygd2hpY2hcbiAqIFVDUy0yIGV4cG9zZXMgYXMgc2VwYXJhdGUgY2hhcmFjdGVycykgaW50byBhIHNpbmdsZSBjb2RlIHBvaW50LFxuICogbWF0Y2hpbmcgVVRGLTE2LlxuICogQHNlZSBgcHVueWNvZGUudWNzMi5lbmNvZGVgXG4gKiBAc2VlIDxodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC1lbmNvZGluZz5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZS51Y3MyXG4gKiBAbmFtZSBkZWNvZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJpbmcgVGhlIFVuaWNvZGUgaW5wdXQgc3RyaW5nIChVQ1MtMikuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFRoZSBuZXcgYXJyYXkgb2YgY29kZSBwb2ludHMuXG4gKi9cbmV4cG9ydHMudWNzMmRlY29kZSA9IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICB2YXIgb3V0cHV0ID0gW10sXG4gICAgICAgIGNvdW50ZXIgPSAwLFxuICAgICAgICBsZW5ndGggPSBzdHJpbmcubGVuZ3RoLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZXh0cmE7XG4gICAgd2hpbGUgKGNvdW50ZXIgPCBsZW5ndGgpIHtcbiAgICAgICAgdmFsdWUgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuICAgICAgICBpZiAodmFsdWUgPj0gMHhEODAwICYmIHZhbHVlIDw9IDB4REJGRiAmJiBjb3VudGVyIDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBoaWdoIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIGEgbmV4dCBjaGFyYWN0ZXJcbiAgICAgICAgICAgIGV4dHJhID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcbiAgICAgICAgICAgIGlmICgoZXh0cmEgJiAweEZDMDApID09IDB4REMwMCkgeyAvLyBsb3cgc3Vycm9nYXRlXG4gICAgICAgICAgICAgICAgb3V0cHV0LnB1c2goKCh2YWx1ZSAmIDB4M0ZGKSA8PCAxMCkgKyAoZXh0cmEgJiAweDNGRikgKyAweDEwMDAwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gdW5tYXRjaGVkIHN1cnJvZ2F0ZTsgb25seSBhcHBlbmQgdGhpcyBjb2RlIHVuaXQsIGluIGNhc2UgdGhlIG5leHRcbiAgICAgICAgICAgICAgICAvLyBjb2RlIHVuaXQgaXMgdGhlIGhpZ2ggc3Vycm9nYXRlIG9mIGEgc3Vycm9nYXRlIHBhaXJcbiAgICAgICAgICAgICAgICBvdXRwdXQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY291bnRlci0tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG59O1xuLypqc2hpbnQgK1cwMTYqL1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnJlcXVpcmUoXCIuL1BvbHlmaWxsc1wiKTtcbnZhciBSZXBvcnQgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKTtcbnZhciBGb3JtYXRWYWxpZGF0b3JzICA9IHJlcXVpcmUoXCIuL0Zvcm1hdFZhbGlkYXRvcnNcIik7XG52YXIgSnNvblZhbGlkYXRpb24gICAgPSByZXF1aXJlKFwiLi9Kc29uVmFsaWRhdGlvblwiKTtcbnZhciBTY2hlbWFDYWNoZSAgICAgICA9IHJlcXVpcmUoXCIuL1NjaGVtYUNhY2hlXCIpO1xudmFyIFNjaGVtYUNvbXBpbGF0aW9uID0gcmVxdWlyZShcIi4vU2NoZW1hQ29tcGlsYXRpb25cIik7XG52YXIgU2NoZW1hVmFsaWRhdGlvbiAgPSByZXF1aXJlKFwiLi9TY2hlbWFWYWxpZGF0aW9uXCIpO1xudmFyIFV0aWxzICAgICAgICAgICAgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG52YXIgRHJhZnQ0U2NoZW1hICAgICAgPSByZXF1aXJlKFwiLi9zY2hlbWFzL3NjaGVtYS5qc29uXCIpO1xudmFyIERyYWZ0NEh5cGVyU2NoZW1hID0gcmVxdWlyZShcIi4vc2NoZW1hcy9oeXBlci1zY2hlbWEuanNvblwiKTtcblxuLypcbiAgICBkZWZhdWx0IG9wdGlvbnNcbiovXG52YXIgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgLy8gZGVmYXVsdCB0aW1lb3V0IGZvciBhbGwgYXN5bmMgdGFza3NcbiAgICBhc3luY1RpbWVvdXQ6IDIwMDAsXG4gICAgLy8gZm9yY2UgYWRkaXRpb25hbFByb3BlcnRpZXMgYW5kIGFkZGl0aW9uYWxJdGVtcyB0byBiZSBkZWZpbmVkIG9uIFwib2JqZWN0XCIgYW5kIFwiYXJyYXlcIiB0eXBlc1xuICAgIGZvcmNlQWRkaXRpb25hbDogZmFsc2UsXG4gICAgLy8gYXNzdW1lIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIGFuZCBhZGRpdGlvbmFsSXRlbXMgYXJlIGRlZmluZWQgYXMgXCJmYWxzZVwiIHdoZXJlIGFwcHJvcHJpYXRlXG4gICAgYXNzdW1lQWRkaXRpb25hbDogZmFsc2UsXG4gICAgLy8gZm9yY2UgaXRlbXMgdG8gYmUgZGVmaW5lZCBvbiBcImFycmF5XCIgdHlwZXNcbiAgICBmb3JjZUl0ZW1zOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBtaW5JdGVtcyB0byBiZSBkZWZpbmVkIG9uIFwiYXJyYXlcIiB0eXBlc1xuICAgIGZvcmNlTWluSXRlbXM6IGZhbHNlLFxuICAgIC8vIGZvcmNlIG1heEl0ZW1zIHRvIGJlIGRlZmluZWQgb24gXCJhcnJheVwiIHR5cGVzXG4gICAgZm9yY2VNYXhJdGVtczogZmFsc2UsXG4gICAgLy8gZm9yY2UgbWluTGVuZ3RoIHRvIGJlIGRlZmluZWQgb24gXCJzdHJpbmdcIiB0eXBlc1xuICAgIGZvcmNlTWluTGVuZ3RoOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBtYXhMZW5ndGggdG8gYmUgZGVmaW5lZCBvbiBcInN0cmluZ1wiIHR5cGVzXG4gICAgZm9yY2VNYXhMZW5ndGg6IGZhbHNlLFxuICAgIC8vIGZvcmNlIHByb3BlcnRpZXMgb3IgcGF0dGVyblByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZCBvbiBcIm9iamVjdFwiIHR5cGVzXG4gICAgZm9yY2VQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAvLyBpZ25vcmUgcmVmZXJlbmNlcyB0aGF0IGNhbm5vdCBiZSByZXNvbHZlZCAocmVtb3RlIHNjaGVtYXMpIC8vIFRPRE86IG1ha2Ugc3VyZSB0aGlzIGlzIG9ubHkgZm9yIHJlbW90ZSBzY2hlbWFzLCBub3QgbG9jYWwgb25lc1xuICAgIGlnbm9yZVVucmVzb2x2YWJsZVJlZmVyZW5jZXM6IGZhbHNlLFxuICAgIC8vIGRpc2FsbG93IHVzYWdlIG9mIGtleXdvcmRzIHRoYXQgdGhpcyB2YWxpZGF0b3IgY2FuJ3QgaGFuZGxlXG4gICAgbm9FeHRyYUtleXdvcmRzOiBmYWxzZSxcbiAgICAvLyBkaXNhbGxvdyB1c2FnZSBvZiBzY2hlbWEncyB3aXRob3V0IFwidHlwZVwiIGRlZmluZWRcbiAgICBub1R5cGVsZXNzOiBmYWxzZSxcbiAgICAvLyBkaXNhbGxvdyB6ZXJvIGxlbmd0aCBzdHJpbmdzIGluIHZhbGlkYXRlZCBvYmplY3RzXG4gICAgbm9FbXB0eVN0cmluZ3M6IGZhbHNlLFxuICAgIC8vIGRpc2FsbG93IHplcm8gbGVuZ3RoIGFycmF5cyBpbiB2YWxpZGF0ZWQgb2JqZWN0c1xuICAgIG5vRW1wdHlBcnJheXM6IGZhbHNlLFxuICAgIC8vIGZvcmNlcyBcInVyaVwiIGZvcm1hdCB0byBiZSBpbiBmdWxseSByZmMzOTg2IGNvbXBsaWFudFxuICAgIHN0cmljdFVyaXM6IGZhbHNlLFxuICAgIC8vIHR1cm4gb24gc29tZSBvZiB0aGUgYWJvdmVcbiAgICBzdHJpY3RNb2RlOiBmYWxzZSxcbiAgICAvLyByZXBvcnQgZXJyb3IgcGF0aHMgYXMgYW4gYXJyYXkgb2YgcGF0aCBzZWdtZW50cyB0byBnZXQgdG8gdGhlIG9mZmVuZGluZyBub2RlXG4gICAgcmVwb3J0UGF0aEFzQXJyYXk6IGZhbHNlLFxuICAgIC8vIHN0b3BzIHZhbGlkYXRpb24gYXMgc29vbiBhcyBhbiBlcnJvciBpcyBmb3VuZCwgdHJ1ZSBieSBkZWZhdWx0IGJ1dCBjYW4gYmUgdHVybmVkIG9mZlxuICAgIGJyZWFrT25GaXJzdEVycm9yOiB0cnVlXG59O1xuXG4vKlxuICAgIGNvbnN0cnVjdG9yXG4qL1xuZnVuY3Rpb24gWlNjaGVtYShvcHRpb25zKSB7XG4gICAgdGhpcy5jYWNoZSA9IHt9O1xuICAgIHRoaXMucmVmZXJlbmNlQ2FjaGUgPSBbXTtcblxuICAgIHRoaXMuc2V0UmVtb3RlUmVmZXJlbmNlKFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWFcIiwgRHJhZnQ0U2NoZW1hKTtcbiAgICB0aGlzLnNldFJlbW90ZVJlZmVyZW5jZShcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvaHlwZXItc2NoZW1hXCIsIERyYWZ0NEh5cGVyU2NoZW1hKTtcblxuICAgIC8vIG9wdGlvbnNcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKSxcbiAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICBpZiAoZGVmYXVsdE9wdGlvbnNba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBvcHRpb24gcGFzc2VkIHRvIGNvbnN0cnVjdG9yOiBcIiArIGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBVdGlscy5jbG9uZShkZWZhdWx0T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5zdHJpY3RNb2RlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5mb3JjZUFkZGl0aW9uYWwgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvcmNlSXRlbXMgICAgICAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yY2VNYXhMZW5ndGggICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5mb3JjZVByb3BlcnRpZXMgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5vRXh0cmFLZXl3b3JkcyAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMubm9UeXBlbGVzcyAgICAgICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5ub0VtcHR5U3RyaW5ncyAgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5vRW1wdHlBcnJheXMgICAgPSB0cnVlO1xuICAgIH1cblxufVxuXG4vKlxuICAgIGluc3RhbmNlIG1ldGhvZHNcbiovXG5aU2NoZW1hLnByb3RvdHlwZS5jb21waWxlU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICAgIHZhciByZXBvcnQgPSBuZXcgUmVwb3J0KHRoaXMub3B0aW9ucyk7XG5cbiAgICBzY2hlbWEgPSBTY2hlbWFDYWNoZS5nZXRTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG5cbiAgICBTY2hlbWFDb21waWxhdGlvbi5jb21waWxlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLnZhbGlkYXRlU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkgJiYgc2NoZW1hLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCIudmFsaWRhdGVTY2hlbWEgd2FzIGNhbGxlZCB3aXRoIGFuIGVtcHR5IGFycmF5XCIpO1xuICAgIH1cblxuICAgIHZhciByZXBvcnQgPSBuZXcgUmVwb3J0KHRoaXMub3B0aW9ucyk7XG5cbiAgICBzY2hlbWEgPSBTY2hlbWFDYWNoZS5nZXRTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG5cbiAgICB2YXIgY29tcGlsZWQgPSBTY2hlbWFDb21waWxhdGlvbi5jb21waWxlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgIGlmIChjb21waWxlZCkgeyBTY2hlbWFWYWxpZGF0aW9uLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpOyB9XG5cbiAgICB0aGlzLmxhc3RSZXBvcnQgPSByZXBvcnQ7XG4gICAgcmV0dXJuIHJlcG9ydC5pc1ZhbGlkKCk7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiAoanNvbiwgc2NoZW1hLCBjYWxsYmFjaykge1xuICAgIHZhciB3aGF0SXMgPSBVdGlscy53aGF0SXMoc2NoZW1hKTtcbiAgICBpZiAod2hhdElzICE9PSBcInN0cmluZ1wiICYmIHdoYXRJcyAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihcIkludmFsaWQgLnZhbGlkYXRlIGNhbGwgLSBzY2hlbWEgbXVzdCBiZSBhbiBzdHJpbmcgb3Igb2JqZWN0IGJ1dCBcIiArIHdoYXRJcyArIFwiIHdhcyBwYXNzZWQhXCIpO1xuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGUsIGZhbHNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGU7XG4gICAgfVxuXG4gICAgdmFyIGZvdW5kRXJyb3IgPSBmYWxzZTtcbiAgICB2YXIgcmVwb3J0ID0gbmV3IFJlcG9ydCh0aGlzLm9wdGlvbnMpO1xuXG4gICAgc2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgdmFyIGNvbXBpbGVkID0gZmFsc2U7XG4gICAgaWYgKCFmb3VuZEVycm9yKSB7XG4gICAgICAgIGNvbXBpbGVkID0gU2NoZW1hQ29tcGlsYXRpb24uY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgICB0aGlzLmxhc3RSZXBvcnQgPSByZXBvcnQ7XG4gICAgICAgIGZvdW5kRXJyb3IgPSB0cnVlO1xuICAgIH1cblxuICAgIHZhciB2YWxpZGF0ZWQgPSBmYWxzZTtcbiAgICBpZiAoIWZvdW5kRXJyb3IpIHtcbiAgICAgICAgdmFsaWRhdGVkID0gU2NoZW1hVmFsaWRhdGlvbi52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG4gICAgaWYgKCF2YWxpZGF0ZWQpIHtcbiAgICAgICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgICAgICBmb3VuZEVycm9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWZvdW5kRXJyb3IpIHtcbiAgICAgICAgSnNvblZhbGlkYXRpb24udmFsaWRhdGUuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSwganNvbik7XG4gICAgfVxuXG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIHJlcG9ydC5wcm9jZXNzQXN5bmNUYXNrcyh0aGlzLm9wdGlvbnMuYXN5bmNUaW1lb3V0LCBjYWxsYmFjayk7XG4gICAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHJlcG9ydC5hc3luY1Rhc2tzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyB2YWxpZGF0aW9uIGhhcyBhc3luYyB0YXNrcyBhbmQgY2Fubm90IGJlIGRvbmUgaW4gc3luYyBtb2RlLCBwbGVhc2UgcHJvdmlkZSBjYWxsYmFjayBhcmd1bWVudC5cIik7XG4gICAgfVxuXG4gICAgLy8gYXNzaWduIGxhc3RSZXBvcnQgc28gZXJyb3JzIGFyZSByZXRyaWV2YWJsZSBpbiBzeW5jIG1vZGVcbiAgICB0aGlzLmxhc3RSZXBvcnQgPSByZXBvcnQ7XG4gICAgcmV0dXJuIHJlcG9ydC5pc1ZhbGlkKCk7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0TGFzdEVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLmxhc3RSZXBvcnQuZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIGUgPSBuZXcgRXJyb3IoKTtcbiAgICBlLm5hbWUgPSBcInotc2NoZW1hIHZhbGlkYXRpb24gZXJyb3JcIjtcbiAgICBlLm1lc3NhZ2UgPSB0aGlzLmxhc3RSZXBvcnQuY29tbW9uRXJyb3JNZXNzYWdlO1xuICAgIGUuZGV0YWlscyA9IHRoaXMubGFzdFJlcG9ydC5lcnJvcnM7XG4gICAgcmV0dXJuIGU7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0TGFzdEVycm9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0UmVwb3J0LmVycm9ycy5sZW5ndGggPiAwID8gdGhpcy5sYXN0UmVwb3J0LmVycm9ycyA6IHVuZGVmaW5lZDtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5nZXRNaXNzaW5nUmVmZXJlbmNlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVzID0gW10sXG4gICAgICAgIGlkeCA9IHRoaXMubGFzdFJlcG9ydC5lcnJvcnMubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICB2YXIgZXJyb3IgPSB0aGlzLmxhc3RSZXBvcnQuZXJyb3JzW2lkeF07XG4gICAgICAgIGlmIChlcnJvci5jb2RlID09PSBcIlVOUkVTT0xWQUJMRV9SRUZFUkVOQ0VcIikge1xuICAgICAgICAgICAgdmFyIHJlZmVyZW5jZSA9IGVycm9yLnBhcmFtc1swXTtcbiAgICAgICAgICAgIGlmIChyZXMuaW5kZXhPZihyZWZlcmVuY2UpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHJlcy5wdXNoKHJlZmVyZW5jZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5nZXRNaXNzaW5nUmVtb3RlUmVmZXJlbmNlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbWlzc2luZ1JlZmVyZW5jZXMgPSB0aGlzLmdldE1pc3NpbmdSZWZlcmVuY2VzKCksXG4gICAgICAgIG1pc3NpbmdSZW1vdGVSZWZlcmVuY2VzID0gW10sXG4gICAgICAgIGlkeCA9IG1pc3NpbmdSZWZlcmVuY2VzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIHJlbW90ZVJlZmVyZW5jZSA9IFNjaGVtYUNhY2hlLmdldFJlbW90ZVBhdGgobWlzc2luZ1JlZmVyZW5jZXNbaWR4XSk7XG4gICAgICAgIGlmIChyZW1vdGVSZWZlcmVuY2UgJiYgbWlzc2luZ1JlbW90ZVJlZmVyZW5jZXMuaW5kZXhPZihyZW1vdGVSZWZlcmVuY2UpID09PSAtMSkge1xuICAgICAgICAgICAgbWlzc2luZ1JlbW90ZVJlZmVyZW5jZXMucHVzaChyZW1vdGVSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtaXNzaW5nUmVtb3RlUmVmZXJlbmNlcztcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5zZXRSZW1vdGVSZWZlcmVuY2UgPSBmdW5jdGlvbiAodXJpLCBzY2hlbWEpIHtcbiAgICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzY2hlbWEgPSBKU09OLnBhcnNlKHNjaGVtYSk7XG4gICAgfVxuICAgIFNjaGVtYUNhY2hlLmNhY2hlU2NoZW1hQnlVcmkuY2FsbCh0aGlzLCB1cmksIHNjaGVtYSk7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0UmVzb2x2ZWRTY2hlbWEgPSBmdW5jdGlvbiAoc2NoZW1hKSB7XG4gICAgdmFyIHJlcG9ydCA9IG5ldyBSZXBvcnQodGhpcy5vcHRpb25zKTtcbiAgICBzY2hlbWEgPSBTY2hlbWFDYWNoZS5nZXRTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG5cbiAgICAvLyBjbG9uZSBiZWZvcmUgbWFraW5nIGFueSBtb2RpZmljYXRpb25zXG4gICAgc2NoZW1hID0gVXRpbHMuY2xvbmVEZWVwKHNjaGVtYSk7XG5cbiAgICB2YXIgdmlzaXRlZCA9IFtdO1xuXG4gICAgLy8gY2xlYW4tdXAgdGhlIHNjaGVtYSBhbmQgcmVzb2x2ZSByZWZlcmVuY2VzXG4gICAgdmFyIGNsZWFudXAgPSBmdW5jdGlvbiAoc2NoZW1hKSB7XG4gICAgICAgIHZhciBrZXksXG4gICAgICAgICAgICB0eXBlT2YgPSBVdGlscy53aGF0SXMoc2NoZW1hKTtcbiAgICAgICAgaWYgKHR5cGVPZiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlT2YgIT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNjaGVtYS5fX18kdmlzaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2NoZW1hLl9fXyR2aXNpdGVkID0gdHJ1ZTtcbiAgICAgICAgdmlzaXRlZC5wdXNoKHNjaGVtYSk7XG5cbiAgICAgICAgaWYgKHNjaGVtYS4kcmVmICYmIHNjaGVtYS5fXyRyZWZSZXNvbHZlZCkge1xuICAgICAgICAgICAgdmFyIGZyb20gPSBzY2hlbWEuX18kcmVmUmVzb2x2ZWQ7XG4gICAgICAgICAgICB2YXIgdG8gPSBzY2hlbWE7XG4gICAgICAgICAgICBkZWxldGUgc2NoZW1hLiRyZWY7XG4gICAgICAgICAgICBkZWxldGUgc2NoZW1hLl9fJHJlZlJlc29sdmVkO1xuICAgICAgICAgICAgZm9yIChrZXkgaW4gZnJvbSkge1xuICAgICAgICAgICAgICAgIGlmIChmcm9tLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9ba2V5XSA9IGZyb21ba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChrZXkgaW4gc2NoZW1hKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5LmluZGV4T2YoXCJfXyRcIikgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNjaGVtYVtrZXldO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFudXAoc2NoZW1hW2tleV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjbGVhbnVwKHNjaGVtYSk7XG4gICAgdmlzaXRlZC5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7XG4gICAgICAgIGRlbGV0ZSBzLl9fXyR2aXNpdGVkO1xuICAgIH0pO1xuXG4gICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgIGlmIChyZXBvcnQuaXNWYWxpZCgpKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgdGhpcy5nZXRMYXN0RXJyb3IoKTtcbiAgICB9XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuc2V0U2NoZW1hUmVhZGVyID0gZnVuY3Rpb24gKHNjaGVtYVJlYWRlcikge1xuICAgIHJldHVybiBaU2NoZW1hLnNldFNjaGVtYVJlYWRlcihzY2hlbWFSZWFkZXIpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldFNjaGVtYVJlYWRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gWlNjaGVtYS5zY2hlbWFSZWFkZXI7XG59O1xuXG4vKlxuICAgIHN0YXRpYyBtZXRob2RzXG4qL1xuWlNjaGVtYS5zZXRTY2hlbWFSZWFkZXIgPSBmdW5jdGlvbiAoc2NoZW1hUmVhZGVyKSB7XG4gICAgWlNjaGVtYS5zY2hlbWFSZWFkZXIgPSBzY2hlbWFSZWFkZXI7XG59O1xuWlNjaGVtYS5yZWdpc3RlckZvcm1hdCA9IGZ1bmN0aW9uIChmb3JtYXROYW1lLCB2YWxpZGF0b3JGdW5jdGlvbikge1xuICAgIEZvcm1hdFZhbGlkYXRvcnNbZm9ybWF0TmFtZV0gPSB2YWxpZGF0b3JGdW5jdGlvbjtcbn07XG5aU2NoZW1hLmdldERlZmF1bHRPcHRpb25zID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBVdGlscy5jbG9uZURlZXAoZGVmYXVsdE9wdGlvbnMpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBaU2NoZW1hO1xuIiwibW9kdWxlLmV4cG9ydHM9e1xuICAgIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvaHlwZXItc2NoZW1hI1wiLFxuICAgIFwiaWRcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L2h5cGVyLXNjaGVtYSNcIixcbiAgICBcInRpdGxlXCI6IFwiSlNPTiBIeXBlci1TY2hlbWFcIixcbiAgICBcImFsbE9mXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjXCJcbiAgICAgICAgfVxuICAgIF0sXG4gICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhZGRpdGlvbmFsSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxsT2ZcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYW55T2ZcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwib25lT2ZcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibm90XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICB9LFxuXG4gICAgICAgIFwibGlua3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbGlua0Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmcmFnbWVudFJlc29sdXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZWRpYVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgbWVkaWEgdHlwZSwgYXMgZGVzY3JpYmVkIGluIFJGQyAyMDQ2XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImJpbmFyeUVuY29kaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgY29udGVudCBlbmNvZGluZyBzY2hlbWUsIGFzIGRlc2NyaWJlZCBpbiBSRkMgMjA0NVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXRoU3RhcnRcIjoge1xuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkluc3RhbmNlcycgVVJJcyBtdXN0IHN0YXJ0IHdpdGggdGhpcyB2YWx1ZSBmb3IgdGhpcyBzY2hlbWEgdG8gYXBwbHkgdG8gdGhlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICBcInNjaGVtYUFycmF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJsaW5rRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0aXRsZVwiOiBcIkxpbmsgRGVzY3JpcHRpb24gT2JqZWN0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogWyBcImhyZWZcIiwgXCJyZWxcIiBdLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImhyZWZcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBVUkkgdGVtcGxhdGUsIGFzIGRlZmluZWQgYnkgUkZDIDY1NzAsIHdpdGggdGhlIGFkZGl0aW9uIG9mIHRoZSAkLCAoIGFuZCApIGNoYXJhY3RlcnMgZm9yIHByZS1wcm9jZXNzaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJlbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZWxhdGlvbiB0byB0aGUgdGFyZ2V0IHJlc291cmNlIG9mIHRoZSBsaW5rXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImEgdGl0bGUgZm9yIHRoZSBsaW5rXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInRhcmdldFNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJKU09OIFNjaGVtYSBkZXNjcmliaW5nIHRoZSBsaW5rIHRhcmdldFwiLFxuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibWVkaWFUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1lZGlhIHR5cGUgKGFzIGRlZmluZWQgYnkgUkZDIDIwNDYpIGRlc2NyaWJpbmcgdGhlIGxpbmsgdGFyZ2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1ldGhvZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtZXRob2QgZm9yIHJlcXVlc3RpbmcgdGhlIHRhcmdldCBvZiB0aGUgbGluayAoZS5nLiBmb3IgSFRUUCB0aGlzIG1pZ2h0IGJlIFxcXCJHRVRcXFwiIG9yIFxcXCJERUxFVEVcXFwiKVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJlbmNUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBtZWRpYSB0eXBlIGluIHdoaWNoIHRvIHN1Ym1pdCBkYXRhIGFsb25nIHdpdGggdGhlIHJlcXVlc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzY2hlbWFcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU2NoZW1hIGRlc2NyaWJpbmcgdGhlIGRhdGEgdG8gc3VibWl0IGFsb25nIHdpdGggdGhlIHJlcXVlc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0= +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJpbmRleC5qcyIsImxpYi9oZWxwZXJzLmpzIiwibGliL2pzb24tc2NoZW1hLWRyYWZ0LTA0Lmpzb24iLCJsaWIvdHlwZXMuanMiLCJsaWIvdmVyc2lvbnMvMi4wL2Zvcm1hdC1nZW5lcmF0b3JzLmpzIiwibGliL3ZlcnNpb25zLzIuMC9mb3JtYXQtdmFsaWRhdG9ycy5qcyIsImxpYi92ZXJzaW9ucy8yLjAvaGVscGVycy5qcyIsImxpYi92ZXJzaW9ucy8yLjAvaW5kZXguanMiLCJsaWIvdmVyc2lvbnMvMi4wL3NjaGVtYS5qc29uIiwibGliL3ZlcnNpb25zLzIuMC92YWxpZGF0b3JzLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXItcmVzb2x2ZS9lbXB0eS5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9iYXNlNjQtanMvbGliL2I2NC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2llZWU3NTQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9pcy1hcnJheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvZGVidWcvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9kZWJ1Zy9kZWJ1Zy5qcyIsIm5vZGVfbW9kdWxlcy9kZWJ1Zy9ub2RlX21vZHVsZXMvbXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvanMtYmFzZTY0L2Jhc2U2NC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9jb21tb24uanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9kdW1wZXIuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9leGNlcHRpb24uanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9sb2FkZXIuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9tYXJrLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2NvcmUuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEvZGVmYXVsdF9mdWxsLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfc2FmZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9mYWlsc2FmZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9qc29uLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvYmluYXJ5LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9ib29sLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9mbG9hdC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvaW50LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9qcy9mdW5jdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvanMvcmVnZXhwLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9qcy91bmRlZmluZWQuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL21hcC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbWVyZ2UuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL251bGwuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL29tYXAuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3BhaXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9zZXEuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3NldC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvc3RyLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS90aW1lc3RhbXAuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9ub2RlX21vZHVsZXMvZXNwcmltYS9lc3ByaW1hLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tcmVmcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL2FzeW5jL2xpYi9hc3luYy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL2NsaWVudC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbm9kZV9tb2R1bGVzL2NvbXBvbmVudC1lbWl0dGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tcmVmcy9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9ub2RlX21vZHVsZXMvcmVkdWNlLWNvbXBvbmVudC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXJlZnMvbm9kZV9tb2R1bGVzL3RyYXZlcnNlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvYXJyYXkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2Jvb2xlYW4uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2ludGVnZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bGwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bWJlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvb2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi90eXBlcy9zdHJpbmcuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvY29tYmluZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9jb250YWluZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZXJyb3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZm9ybWF0cy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9oYXMtcHJvcHMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvaW5mZXJyZWQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvcHJpbWl0aXZlcy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9yYW5kb20uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvdHJhdmVyc2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2NoYW5jZS9jaGFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvY2xvbmUtb2JqLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9kZXJlZi9saWIvdXRpbC9maW5kLXJlZmVyZW5jZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvbm9ybWFsaXplLXNjaGVtYS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvcmVzb2x2ZS1zY2hlbWEuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi91dGlsL3VyaS1oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2FkZHJlc3MuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9jb21wYW55LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvZGF0ZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2ZpbmFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oYWNrZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvaW1hZ2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9pbnRlcm5ldC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2RlLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9kZV9BVC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZGVfQ0guanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9BVS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQk9SSy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQ0EuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX0dCLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9JTkQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX1VTLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9hdV9vY2tlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2ZhLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9mci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvaXQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2phLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9rby5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmJfTk8uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL25lcC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3BsLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9wdF9CUi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvcnUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3NrLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9zdi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvdmkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3poX0NOLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9yZW0uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9uYW1lLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcGhvbmVfbnVtYmVyLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcmFuZG9tLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci92ZW5kb3IvbWVyc2VubmUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci9wYXNzd29yZC1nZW5lcmF0b3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci91c2VyLWFnZW50LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL2xpYi9yYW5kZXhwLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9kaXNjb250aW51b3VzLXJhbmdlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3Bvc2l0aW9ucy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvcmFuZGV4cC9ub2RlX21vZHVsZXMvcmV0L2xpYi9zZXRzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3R5cGVzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvYXJyYXkvbGFzdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZm9yRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vbWFwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9hcnJheUNvcHkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9hcnJheUVhY2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9hcnJheU1hcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VBc3NpZ24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlQ2FsbGJhY2suanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlQ2xvbmUuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlQ29weS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VFYWNoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUZvci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JJbi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JPd24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlR2V0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUluZGV4T2YuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlSXNFcXVhbC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc0VxdWFsRGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc0Z1bmN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUlzTWF0Y2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlTWFwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZU1hdGNoZXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlTWF0Y2hlc1Byb3BlcnR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZVByb3BlcnR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZVByb3BlcnR5RGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VTbGljZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VUb1N0cmluZy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2JpbmFyeUluZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmluYXJ5SW5kZXhCeS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2JpbmRDYWxsYmFjay5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2J1ZmZlckNsb25lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlQmFzZUVhY2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVCYXNlRm9yLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlRm9yRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2VxdWFsQXJyYXlzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZXF1YWxCeVRhZy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2VxdWFsT2JqZWN0cy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2dldExlbmd0aC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2dldFN5bWJvbHMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pbmRleE9mTmFOLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaW5pdENsb25lQXJyYXkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pbml0Q2xvbmVCeVRhZy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2luaXRDbG9uZU9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzQXJyYXlMaWtlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNIb3N0T2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNJbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzS2V5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNMZW5ndGguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc09iamVjdExpa2UuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc1N0cmljdENvbXBhcmFibGUuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9zaGltSXNQbGFpbk9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3NoaW1LZXlzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvdG9PYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC90b1BhdGguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2Nsb25lRGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNBcmd1bWVudHMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzQXJyYXkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzRnVuY3Rpb24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzTmF0aXZlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc09iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNQbGFpbk9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNTdHJpbmcuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzVHlwZWRBcnJheS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNVbmRlZmluZWQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9vYmplY3Qva2V5cy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L29iamVjdC9rZXlzSW4uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9zdHJpbmcvZXNjYXBlUmVnRXhwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvc3VwcG9ydC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L3V0aWxpdHkvY29uc3RhbnQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC91dGlsaXR5L2lkZW50aXR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvdXRpbGl0eS9wcm9wZXJ0eS5qcyIsIm5vZGVfbW9kdWxlcy9uYXRpdmUtcHJvbWlzZS1vbmx5L25wby5qcyIsIm5vZGVfbW9kdWxlcy9wYXRoLWxvYWRlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYXRoLWxvYWRlci9saWIvbG9hZGVycy9maWxlLWJyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvcGF0aC1sb2FkZXIvbGliL2xvYWRlcnMvaHR0cC5qcyIsIm5vZGVfbW9kdWxlcy9wYXRoLWxvYWRlci9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvY2xpZW50LmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL25vZGVfbW9kdWxlcy92YWxpZGF0b3IvdmFsaWRhdG9yLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9FcnJvcnMuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL0Zvcm1hdFZhbGlkYXRvcnMuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL0pzb25WYWxpZGF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9Qb2x5ZmlsbHMuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1JlcG9ydC5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvU2NoZW1hQ2FjaGUuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1NjaGVtYUNvbXBpbGF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9TY2hlbWFWYWxpZGF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9VdGlscy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvWlNjaGVtYS5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvc2NoZW1hcy9oeXBlci1zY2hlbWEuanNvbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdDlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDck1BOztBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdDRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbGpEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pzS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDelpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNubUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDempDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNyR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2g5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzM3SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4OUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzMvUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6bEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3A5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3NERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaDNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbm1FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ozQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcGlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ROQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JsREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaC9IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3IxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDejNJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDam9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25aQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDak5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3REQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBOztBQ0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDcEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNqcFlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUN2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3ZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQzFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDeENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN2TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDbm1DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2h1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDdEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3hOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN4U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gcmVxdWlyZSgnbG9kYXNoLWNvbXBhdCcpO1xudmFyIHBhdGhMb2FkZXIgPSByZXF1aXJlKCdwYXRoLWxvYWRlcicpO1xudmFyIFlBTUwgPSByZXF1aXJlKCdqcy15YW1sJyk7XG5cbi8vIExvYWQgcHJvbWlzZXMgcG9seWZpbGwgaWYgbmVjZXNzYXJ5XG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmICh0eXBlb2YgUHJvbWlzZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgcmVxdWlyZSgnbmF0aXZlLXByb21pc2Utb25seScpO1xufVxuXG52YXIgc3VwcG9ydGVkVmVyc2lvbnMgPSB7XG4gICcyLjAnOiByZXF1aXJlKCcuL2xpYi92ZXJzaW9ucy8yLjAvJylcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIFN3YWdnZXJBcGkgb2JqZWN0IGZyb20gaXRzIFN3YWdnZXIgZGVmaW5pdGlvbihzKS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBsb2FkaW5nIHRoZSBkZWZpbml0aW9uKHMpXG4gKiBAcGFyYW0ge29iamVjdHxzdHJpbmd9IG9wdGlvbnMuZGVmaW5pdGlvbiAtIFRoZSBTd2FnZ2VyIGRlZmluaXRpb24gbG9jYXRpb24gb3Igc3RydWN0dXJlXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMubG9hZGVyT3B0aW9uc10gLSBUaGUgb3B0aW9ucyB0byBwYXNzIHRvIHBhdGgtbG9hZGVyXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrW119IFtvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnNdIC0gVGhlIGN1c3RvbSB2YWxpZGF0b3JzXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gTm9kZS5qcyBlcnJvci1maXJzdCBjYWxsYmFja1xuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgaXMgYWx3YXlzIHJldHVybmVkIGV2ZW4gaWYgeW91IHByb3ZpZGUgYSBjYWxsYmFjayBidXQgaXQgaXMgbm90IHJlcXVpcmVkIHRvIGJlIHVzZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBwcm9taXNlc1xuICogU3dhZ2dlckFwaS5jcmVhdGUoe2RlZmluaXRpb246ICdodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLnlhbWwnfSlcbiAqICAgLnRoZW4oZnVuY3Rpb24gKGFwaSkge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBjYWxsYmFja3NcbiAqIFN3YWdnZXJBcGkuY3JlYXRlKHtkZWZpbml0aW9uOiAnaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci55YW1sJ30sIGZ1bmN0aW9uIChlcnIsIGFwaSkge1xuICogICBpZiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9IGVsc2Uge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9KTtcbiAqL1xubW9kdWxlLmV4cG9ydHMuY3JlYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciBhbGxUYXNrcyA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8vIFZhbGlkYXRlIGFyZ3VtZW50c1xuICBhbGxUYXNrcyA9IGFsbFRhc2tzLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMuZGVmaW5pdGlvbiBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMuZGVmaW5pdGlvbikgJiYgIV8uaXNTdHJpbmcob3B0aW9ucy5kZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmRlZmluaXRpb24gbXVzdCBiZSBlaXRoZXIgYW4gb2JqZWN0IG9yIGEgc3RyaW5nJyk7XG4gICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnMubG9hZGVyT3B0aW9ucykgJiYgIV8uaXNQbGFpbk9iamVjdChvcHRpb25zLmxvYWRlck9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMubG9hZGVyT3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMpICYmICFfLmlzQXJyYXkob3B0aW9ucy5jdXN0b21WYWxpZGF0b3JzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChjYWxsYmFjaykgJiYgIV8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIF8uZm9yRWFjaChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMsIGZ1bmN0aW9uICh2YWxpZGF0b3IsIGluZGV4KSB7XG4gICAgICAgIGlmICghXy5pc0Z1bmN0aW9uKHZhbGlkYXRvcikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgYXQgaW5kZXggJyArIGluZGV4ICsgJyBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGlucHV0IG9wdGlvbnMgc28gYXMgbm90IHRvIGFsdGVyIHRoZW1cbiAgb3B0aW9ucyA9IF8uY2xvbmVEZWVwKG9wdGlvbnMpO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBkZWZpbml0aW9uIGlmIGl0IGlzIGEgcGF0aC9VUkxcbiAgYWxsVGFza3MgPSBhbGxUYXNrc1xuICAgIC8vIExvYWQgdGhlIHJlbW90ZSBkZWZpbml0aW9uIG9yIHJldHVybiBvcHRpb25zLmRlZmluaXRpb25cbiAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoXy5pc1N0cmluZyhvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBwYXRoTG9hZGVyLmxvYWQob3B0aW9ucy5kZWZpbml0aW9uLCBvcHRpb25zLmxvYWRlck9wdGlvbnMgfHwge30pLnRoZW4oWUFNTC5zYWZlTG9hZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5kZWZpbml0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIFByb2Nlc3MgdGhlIFN3YWdnZXIgZGVmaW5pdGlvbiAoaWYgcG9zc2libGUpXG4gIGFsbFRhc2tzID0gYWxsVGFza3NcbiAgICAudGhlbihmdW5jdGlvbiAoYXBpRGVmaW5pdGlvbikge1xuICAgICAgdmFyIGRlZmluaXRpb24gPSBfLmZpbmQoc3VwcG9ydGVkVmVyc2lvbnMsIGZ1bmN0aW9uIChwRGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gcERlZmluaXRpb24uY2FuUHJvY2VzcyhhcGlEZWZpbml0aW9uKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChkZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmFibGUgdG8gaWRlbnRpZnkgdGhlIFN3YWdnZXIgdmVyc2lvbiBvciB0aGUgU3dhZ2dlciB2ZXJzaW9uIGlzIHVuc3VwcG9ydGVkJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uLmNyZWF0ZVN3YWdnZXJBcGkoYXBpRGVmaW5pdGlvbiwgb3B0aW9ucyk7XG4gICAgfSk7XG5cbiAgLy8gVXNlIHRoZSBjYWxsYmFjayBpZiBwcm92aWRlZCBhbmQgaXQgaXMgYSBmdW5jdGlvblxuICBpZiAoIV8uaXNVbmRlZmluZWQoY2FsbGJhY2spICYmIF8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICBhbGxUYXNrcyA9IGFsbFRhc2tzXG4gICAgICAudGhlbihmdW5jdGlvbiAoc3dhZ2dlckFwaSkge1xuICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIHN3YWdnZXJBcGkpO1xuICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4gYWxsVGFza3M7XG59O1xuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gtY29tcGF0Jyk7XG52YXIgbW9ja2VyID0gcmVxdWlyZSgnanNvbi1zY2hlbWEtZmFrZXInKTtcbnZhciBaU2NoZW1hID0gcmVxdWlyZSgnei1zY2hlbWEnKTtcblxudmFyIGRyYWZ0MDRKc29uID0gcmVxdWlyZSgnLi9qc29uLXNjaGVtYS1kcmFmdC0wNC5qc29uJyk7XG52YXIgZHJhZnQwNFVybCA9ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSc7XG5cbmZ1bmN0aW9uIHJlbW92ZVZhbGlkYXRpb25FcnJvclBhcmFtcyAob2JqKSB7XG4gIGRlbGV0ZSBvYmoucGFyYW1zO1xuXG4gIGlmIChvYmouaW5uZXIpIHtcbiAgICBfLmVhY2gob2JqLmlubmVyLCBmdW5jdGlvbiAobk9iaikge1xuICAgICAgcmVtb3ZlVmFsaWRhdGlvbkVycm9yUGFyYW1zKG5PYmopO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSBKU09OIFNjaGVtYSBNb2NrZXIuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSAtIFRoZSBtb2NrZXIgb3B0aW9uc1xuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLmZvcm1hdEdlbmVyYXRvcnNdIC0gVGhlIGN1c3RvbSBmb3JtYXQgZ2VuZXJhdG9ycyB0byB1c2VcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgSlNPTiBTY2hlbWEgbW9ja2VyXG4gKi9cbm1vZHVsZS5leHBvcnRzLmNyZWF0ZUpTT05TY2hlbWFNb2NrZXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICAvLyBBZGQgdGhlIGN1c3RvbSBmb3JtYXQgZ2VuZXJhdG9yc1xuICBfLmVhY2gob3B0aW9ucy5mb3JtYXRHZW5lcmF0b3JzLCBmdW5jdGlvbiAoaGFuZGxlciwgbmFtZSkge1xuICAgIG1vY2tlci5mb3JtYXRzKG5hbWUsIGhhbmRsZXIpO1xuICB9KTtcblxuICByZXR1cm4gbW9ja2VyO1xufTtcblxuLyoqXG4gKiBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIEpTT04gVmFsaWRhdG9yLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBUaGUgdmFsaWRhdG9yIG9wdGlvbnNcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5mb3JtYXRWYWxpZGF0b3JzXSAtIFRoZSBjdXN0b20gZm9ybWF0IHZhbGlkYXRvcnMgdG8gdXNlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hIHZhbGlkYXRvclxuICovXG5tb2R1bGUuZXhwb3J0cy5jcmVhdGVKU09OVmFsaWRhdG9yID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgdmFyIHZhbGlkYXRvciA9IG5ldyBaU2NoZW1hKHtcbiAgICByZXBvcnRQYXRoQXNBcnJheTogdHJ1ZVxuICB9KTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICAvLyBBZGQgdGhlIGRyYWZ0LTA0IHNwZWNcbiAgdmFsaWRhdG9yLnNldFJlbW90ZVJlZmVyZW5jZShkcmFmdDA0VXJsLCBkcmFmdDA0SnNvbik7XG5cbiAgLy8gQWRkIHRoZSBjdXN0b20gdmFsaWRhdG9yc1xuICBfLmVhY2gob3B0aW9ucy5mb3JtYXRWYWxpZGF0b3JzLCBmdW5jdGlvbiAoaGFuZGxlciwgbmFtZSkge1xuICAgIFpTY2hlbWEucmVnaXN0ZXJGb3JtYXQobmFtZSwgaGFuZGxlcik7XG4gIH0pO1xuXG4gIHJldHVybiB2YWxpZGF0b3I7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgcHJvdmlkZWQgdmFsdWUgYWdhaW5zdCB0aGUgSlNPTiBTY2hlbWEgYnkgbmFtZSBvciB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsaWRhdG9yIC0gVGhlIEpTT04gU2NoZW1hIHZhbGlkYXRvciBjcmVhdGVkIHZpYSB7QGxpbmsgI2NyZWF0ZUpTT05WYWxpZGF0b3J9XG4gKiBAcGFyYW0ge29iamVjdH0gc2NoZW1hIC0gVGhlIEpTT04gU2NoZW1hXG4gKiBAcGFyYW0geyp9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIHZhbGlkYXRlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGVycm9ycyBhbmQgd2FybmluZ3Mgb2YgdGhlIHZhbGlkYXRpb25cbiAqL1xubW9kdWxlLmV4cG9ydHMudmFsaWRhdGVBZ2FpbnN0U2NoZW1hID0gZnVuY3Rpb24gKHZhbGlkYXRvciwgc2NoZW1hLCB2YWx1ZSkge1xuICBzY2hlbWEgPSBfLmNsb25lRGVlcChzY2hlbWEpOyAvLyBDbG9uZSB0aGUgc2NoZW1hIGFzIHotc2NoZW1hIGFsdGVycyB0aGUgcHJvdmlkZWQgZG9jdW1lbnRcblxuICB2YXIgcmVzcG9uc2UgPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW11cbiAgfTtcblxuICBpZiAoIXZhbGlkYXRvci52YWxpZGF0ZSh2YWx1ZSwgc2NoZW1hKSkge1xuICAgIHJlc3BvbnNlLmVycm9ycyA9IF8ubWFwKHZhbGlkYXRvci5nZXRMYXN0RXJyb3JzKCksIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIHJlbW92ZVZhbGlkYXRpb25FcnJvclBhcmFtcyhlcnIpO1xuXG4gICAgICByZXR1cm4gZXJyO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgICBcImlkXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjXCIsXG4gICAgXCIkc2NoZW1hXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hXCIsXG4gICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICAgIFwic2NoZW1hQXJyYXlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgIFwiaXRlbXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfVxuICAgICAgICB9LFxuICAgICAgICBcInBvc2l0aXZlSW50ZWdlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcIm1pbmltdW1cIjogMFxuICAgICAgICB9LFxuICAgICAgICBcInBvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCI6IHtcbiAgICAgICAgICAgIFwiYWxsT2ZcIjogWyB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCIgfSwgeyBcImRlZmF1bHRcIjogMCB9IF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzaW1wbGVUeXBlc1wiOiB7XG4gICAgICAgICAgICBcImVudW1cIjogWyBcImFycmF5XCIsIFwiYm9vbGVhblwiLCBcImludGVnZXJcIiwgXCJudWxsXCIsIFwibnVtYmVyXCIsIFwib2JqZWN0XCIsIFwic3RyaW5nXCIgXVxuICAgICAgICB9LFxuICAgICAgICBcInN0cmluZ0FycmF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgICB9XG4gICAgfSxcbiAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImlkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcIiRzY2hlbWFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGl0bGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge30sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwibWluaW11bVwiOiAwLFxuICAgICAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwicmVnZXhcIlxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiI1wiIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCIgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcIm1heFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInJlcXVpcmVkXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheVwiIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcInR5cGVcIjogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5XCIgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlc1wiIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlc1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImFsbE9mXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH0sXG4gICAgICAgIFwiYW55T2ZcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCIgfSxcbiAgICAgICAgXCJvbmVPZlwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9LFxuICAgICAgICBcIm5vdFwiOiB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgfSxcbiAgICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiBbIFwibWF4aW11bVwiIF0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiBbIFwibWluaW11bVwiIF1cbiAgICB9LFxuICAgIFwiZGVmYXVsdFwiOiB7fVxufVxuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gtY29tcGF0Jyk7XG52YXIgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdzd2FnZ2VyLWNvcmUtYXBpJyk7XG5cbi8qKlxuICogVGhlIFN3YWdnZXIgT3BlcmF0aW9uIG9iamVjdC5cbiAqXG4gKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IERvIG5vdCB1c2UgZGlyZWN0bHkuXG4gKlxuICogQHBhcmFtIHtTd2FnZ2VyQXBpfSBhcGkgLSBUaGUgU3dhZ2dlciBBUEkgb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSBvcGVyYXRpb24gcGF0aFxuICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZCAtIFRoZSBvcGVyYXRpb24gbWV0aG9kXG4gKiBAcGFyYW0ge3N0cmluZ30gcHRyIC0gVGhlIEpTT04gUG9pbnRlciB0byB0aGUgb3BlcmF0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmaW5pdGlvbiAtIFRoZSBvcGVyYXRpb24gZGVmaW5pdGlvblxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBPcGVyYXRpb24gKGFwaSwgcGF0aCwgbWV0aG9kLCBwdHIsIGRlZmluaXRpb24pIHtcbiAgdGhpcy5hcGkgPSBhcGk7XG4gIHRoaXMucGF0aCA9IHBhdGg7XG4gIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICB0aGlzLnB0ciA9IHB0cjtcbiAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAvLyBBc3NpZ24gU3dhZ2dlciBkZWZpbml0aW9uIHByb3BlcnRpZXMgdG8gdGhlIG9wZXJhdGlvbiBmb3IgZWFzeSBhY2Nlc3NcbiAgXy5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG5cbiAgZGVidWcoJ0ZvdW5kIG9wZXJhdGlvbiBhdCAlcycsIHB0cik7XG5cbiAgdGhpcy5wYXJhbWV0ZXJPYmplY3RzID0gYXBpLnBsdWdpbi5nZXRPcGVyYXRpb25QYXJhbWV0ZXJzKHRoaXMpO1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24uXG4gKlxuICogQHJldHVybnMge1BhcmFtZXRlcltdfSBBbGwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi5cbiAqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJPYmplY3RzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBKU09OIFNjaGVtYSBmb3IgdGhlIHJlcXVlc3RlZCBjb2RlIG9yIHRoZSBkZWZhdWx0IHJlc3BvbnNlIGlmIG5vIGNvZGUgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBbY29kZT1kZWZhdWx0XSAtIFRoZSByZXNwb25zZSBjb2RlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hIGZvciB0aGUgcmVzcG9uc2UsIHdoaWNoIGNhbiBiZSB1bmRlZmluZWQgaWYgdGhlIHJlc3BvbnNlIHNjaGVtYSBpcyBub3QgcHJvdmlkZWRcbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3duIHdoZW5ldmVyIHRoZSByZXF1ZXN0ZWQgY29kZSBkb2VzIG5vdCBleGlzdCAoVGhyb3dpbmcgYW4gZXJyb3IgaW5zdGVhZCBvZiByZXR1cm5pbmcgdW5kZWZpbmVkXG4gKiAgICAgICAgICAgICAgICAgaXMgcmVxdWlyZWQgZHVlIHRvIHVuZGVmaW5lZCBiZWluZyBhIHZhbGlkIHJlc3BvbnNlIHNjaGVtYSBpbmRpY2F0aW5nIGEgdm9pZCByZXNwb25zZSlcbiAqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRSZXNwb25zZVNjaGVtYSA9IGZ1bmN0aW9uIChjb2RlKSB7XG4gIHZhciByZXNwb25zZTtcblxuICBpZiAoXy5pc1VuZGVmaW5lZChjb2RlKSkge1xuICAgIGNvZGUgPSAnZGVmYXVsdCc7XG4gIH0gZWxzZSBpZiAoXy5pc051bWJlcihjb2RlKSkge1xuICAgIGNvZGUgPSAoTWF0aC5mbG9vcigxMDAgKiBjb2RlKSAvIDEwMCkudG9GaXhlZCgpOyAvLyBPdmVybHkgY2F1dGlvdXMgYnV0IG9oIHdlbGwuLi5cbiAgfVxuXG4gIHJlc3BvbnNlID0gdGhpcy5kZWZpbml0aW9uLnJlc3BvbnNlc1tjb2RlXTtcblxuICBpZiAoXy5pc1VuZGVmaW5lZChyZXNwb25zZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgb3BlcmF0aW9uIGRvZXMgbm90IGhhdmUgYSBkZWZpbmVkIFxcJycgKyBjb2RlICsgJ1xcJyByZXNwb25zZSBjb2RlJyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnNjaGVtYTtcbiAgfVxufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgc2FtcGxlIHZhbHVlIGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgY29kZSBvciB0aGUgZGVmYXVsdCByZXNwb25zZSBpZiBubyBjb2RlIGlzIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gW2NvZGU9ZGVmYXVsdF0gLSBUaGUgcmVzcG9uc2UgY29kZVxuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgc2FtcGxlIHZhbHVlIGZvciB0aGUgcmVzcG9uc2UsIHdoaWNoIGNhbiBiZSB1bmRlZmluZWQgaWYgdGhlIHJlc3BvbnNlIHNjaGVtYSBpcyBub3QgcHJvdmlkZWRcbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3duIHdoZW5ldmVyIHRoZSByZXF1ZXN0ZWQgY29kZSBkb2VzIG5vdCBleGlzdCAoVGhyb3dpbmcgYW4gZXJyb3IgaW5zdGVhZCBvZiByZXR1cm5pbmcgdW5kZWZpbmVkXG4gKiAgICAgICAgICAgICAgICAgaXMgcmVxdWlyZWQgZHVlIHRvIHVuZGVmaW5lZCBiZWluZyBhIHZhbGlkIHJlc3BvbnNlIHNjaGVtYSBpbmRpY2F0aW5nIGEgdm9pZCByZXNwb25zZSlcbiAqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRSZXNwb25zZVNhbXBsZSA9IGZ1bmN0aW9uIChjb2RlKSB7XG4gIHZhciBzY2hlbWEgPSB0aGlzLmdldFJlc3BvbnNlU2NoZW1hKGNvZGUpO1xuICB2YXIgc2FtcGxlO1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWEpKSB7XG4gICAgc2FtcGxlID0gdGhpcy5hcGkucGx1Z2luLmdldFNhbXBsZShzY2hlbWEpO1xuICB9XG5cbiAgcmV0dXJuIHNhbXBsZTtcbn07XG5cbi8qKlxuICogVGhlIFN3YWdnZXIgUGFyYW1ldGVyIG9iamVjdC5cbiAqXG4gKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IERvIG5vdCB1c2UgZGlyZWN0bHkuXG4gKlxuICogQHBhcmFtIHtPcGVyYXRpb259IG9wZXJhdGlvbiAtIFRoZSBTd2FnZ2VyIE9wZXJhdGlvbiBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwdHIgLSBUaGUgSlNPTiBQb2ludGVyIHRvIHRoZSBwYXJhbWV0ZXJcbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIHBhcmFtZXRlciBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gc2NoZW1hIC0gVGhlIEpTT04gU2NoZW1hIGZvciB0aGUgcGFyYW1ldGVyXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFBhcmFtZXRlciAob3BlcmF0aW9uLCBwdHIsIGRlZmluaXRpb24sIHNjaGVtYSkge1xuICB0aGlzLm9wZXJhdGlvbiA9IG9wZXJhdGlvbjtcbiAgdGhpcy5wdHIgPSBwdHI7XG4gIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gIHRoaXMuY29tcHV0ZWRTY2hlbWEgPSBzY2hlbWE7XG5cbiAgLy8gQXNzaWduIFN3YWdnZXIgZGVmaW5pdGlvbiBwcm9wZXJ0aWVzIHRvIHRoZSBwYXJhbWV0ZXIgZm9yIGVhc3kgYWNjZXNzXG4gIF8uYXNzaWduKHRoaXMsIGRlZmluaXRpb24pO1xuXG4gIGRlYnVnKCdGb3VuZCBvcGVyYXRpb24gcGFyYW1ldGVyICglcyAlcykgYXQgJXMnLCBvcGVyYXRpb24ubWV0aG9kLnRvVXBwZXJDYXNlKCksIG9wZXJhdGlvbi5wYXRoLCBwdHIpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNvbXB1dGVkIEpTT04gU2NoZW1hIGZvciB0aGlzIHBhcmFtZXRlciBvYmplY3QuXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hXG4gKi9cblBhcmFtZXRlci5wcm90b3R5cGUuZ2V0U2NoZW1hID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5jb21wdXRlZFNjaGVtYTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIHNhbXBsZSB2YWx1ZSBmb3IgdGhlIHBhcmFtZXRlciBiYXNlZCBvbiBpdHMgc2NoZW1hO1xuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgc2FtcGxlIHZhbHVlXG4gKi9cblBhcmFtZXRlci5wcm90b3R5cGUuZ2V0U2FtcGxlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2FtcGxlO1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmNvbXB1dGVkU2NoZW1hKSkge1xuICAgIHNhbXBsZSA9IHRoaXMub3BlcmF0aW9uLmFwaS5wbHVnaW4uZ2V0U2FtcGxlKHRoaXMuY29tcHV0ZWRTY2hlbWEpO1xuICB9XG5cbiAgcmV0dXJuIHNhbXBsZTtcbn07XG5cbi8qKlxuICogQ2FsbGJhY2sgdXNlZCBmb3IgdmFsaWRhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1N3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyIEFQSSBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBPYmplY3QgY29udGFpbmluZyB0aGUgZXJyb3JzIGFuZCB3YXJuaW5ncyBvZiB0aGUgdmFsaWRhdGlvblxuICpcbiAqIEBjYWxsYmFjayB2YWxpZGF0b3JDYWxsYmFja1xuICovXG5cbi8qKlxuICogVGhlIFN3YWdnZXIgQVBJIG9iamVjdC5cbiAqXG4gKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IERvIG5vdCB1c2UgZGlyZWN0bHkuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHBsdWdpbiAtIFRoZSBTd2FnZ2VyIHZlcnNpb24gcGx1Z2luXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmaW5pdGlvbiAtIFRoZSBTd2FnZ2VyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSByZXNvbHZlZCAtIFRoZSBmdWxseSByZXNvbHZlZCBTd2FnZ2VyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSByZWZlcmVuY2VzIC0gVGhlIGxvY2F0aW9uIGFuZCByZXNvbHV0aW9uIG9mIHRoZSByZXNvbHZlZCByZWZlcmVuY2VzIGluIHRoZSBTd2FnZ2VyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgcGFzc2VkIHRvIHN3YWdnZXJBcGkuY3JlYXRlXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrW119IFtvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnNdIC0gVGhlIGN1c3RvbSB2YWxpZGF0b3JzXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFN3YWdnZXJBcGkgKHBsdWdpbiwgZGVmaW5pdGlvbiwgcmVzb2x2ZWQsIHJlZmVyZW5jZXMsIG9wdGlvbnMpIHtcbiAgdGhpcy5jdXN0b21WYWxpZGF0b3JzID0gW107XG4gIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gIHRoaXMuZG9jdW1lbnRhdGlvbiA9IHBsdWdpbi5kb2N1bWVudGF0aW9uO1xuICB0aGlzLmVycm9ycyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XG4gIHRoaXMucmVmZXJlbmNlcyA9IHJlZmVyZW5jZXM7XG4gIHRoaXMucmVzb2x2ZWQgPSByZXNvbHZlZDtcbiAgdGhpcy52ZXJzaW9uID0gcGx1Z2luLnZlcnNpb247XG4gIHRoaXMud2FybmluZ3MgPSB1bmRlZmluZWQ7XG4gIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgLy8gQXNzaWduIFN3YWdnZXIgZGVmaW5pdGlvbiBwcm9wZXJ0aWVzIHRvIHRoZSBhcGkgZm9yIGVhc3kgYWNjZXNzXG4gIF8uYXNzaWduKHRoaXMsIGRlZmluaXRpb24pO1xuXG4gIGRlYnVnKCdOZXcgU3dhZ2dlciBBUEkgKCVzKScsIF8uaXNTdHJpbmcob3B0aW9ucy5kZWZpbml0aW9uKSA/IG9wdGlvbnMuZGVmaW5pdGlvbiA6ICdKYXZhU2NyaXB0IE9iamVjdCcpO1xuXG4gIHRoaXMub3BlcmF0aW9uT2JqZWN0cyA9IHBsdWdpbi5nZXRPcGVyYXRpb25zKHRoaXMpO1xuXG4gIC8vIFJlZ2lzdGVyIGN1c3RvbSB2YWxpZGF0b3JzXG4gIF8uZm9yRWFjaChvcHRpb25zLnZhbGlkYXRvcnMsIHRoaXMucmVnaXN0ZXJWYWxpZGF0b3IpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGVycm9ycyBmcm9tIHRoZSBsYXN0IHZhbGlkYXRlIGNhbGwuXG4gKlxuICogQHJldHVybnMge29iamVjdFtdfSBUaGUgZXJyb3JzIGZyb20gdGhlIHByZXZpb3VzIGNhbGwgdG8gdmFsaWRhdGUgb3IgdW5kZWZpbmVkIGlmIHZhbGlkYXRlIHdhcyBuZXZlciBjYWxsZWRcbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUuZ2V0TGFzdEVycm9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZXJyb3JzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB3YXJuaW5ncyBmcm9tIHRoZSBsYXN0IHZhbGlkYXRlIGNhbGwuXG4gKlxuICogQHJldHVybnMge29iamVjdFtdfSBUaGUgd2FybmluZ3MgZnJvbSB0aGUgcHJldmlvdXMgY2FsbCB0byB2YWxpZGF0ZSBvciB1bmRlZmluZWQgaWYgdmFsaWRhdGUgd2FzIG5ldmVyIGNhbGxlZFxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRMYXN0V2FybmluZ3MgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLndhcm5pbmdzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcGVyYXRpb24gZm9yIHRoZSBwcm92aWRlZCBwYXRoIGFuZCBtZXRob2QuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBUaGUgU3dhZ2dlciBwYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gVGhlIFN3YWdnZXIgb3BlcmF0aW9uIG1ldGhvZFxuICpcbiAqIEByZXR1cm5zIHtPcGVyYXRpb259IFRoZSBvcGVyYXRpb24gZm9yIHRoZSBwcm92aWRlZCBwYXRoIGFuZCBtZXRob2Qgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIG9wZXJhdGlvbiBmb3IgdGhhdFxuICogICAgICAgICAgICAgICAgICAgICAgcGF0aCBhbmQgbWV0aG9kIGNvbWJpbmF0aW9uLlxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRPcGVyYXRpb24gPSBmdW5jdGlvbiAocGF0aCwgbWV0aG9kKSB7XG4gIHJldHVybiBfLmZpbmQodGhpcy5vcGVyYXRpb25PYmplY3RzLCBmdW5jdGlvbiAob3BlcmF0aW9uKSB7XG4gICAgcmV0dXJuIG9wZXJhdGlvbi5wYXRoID09PSBwYXRoICYmIG9wZXJhdGlvbi5tZXRob2QgPT09IG1ldGhvZC50b0xvd2VyQ2FzZSgpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgb3BlcmF0aW9ucyBmb3IgdGhlIHByb3ZpZGVkIHBhdGggb3IgYWxsIG9wZXJhdGlvbnMgaW4gdGhlIEFQSS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhdIC0gVGhlIFN3YWdnZXIgcGF0aFxuICpcbiAqIEByZXR1cm5zIHtPcGVyYXRpb25bXX0gQWxsIG9wZXJhdGlvbnMgZm9yIHRoZSBwcm92aWRlZCBwYXRoIG9yIGFsbCBBUEkgb3BlcmF0aW9ucy5cbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUuZ2V0T3BlcmF0aW9ucyA9IGZ1bmN0aW9uIChwYXRoKSB7XG4gIHJldHVybiBfLmZpbHRlcih0aGlzLm9wZXJhdGlvbk9iamVjdHMsIGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChwYXRoKSA/IHRydWUgOiBvcGVyYXRpb24ucGF0aCA9PT0gcGF0aDtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVycyBhIHZhbGlkYXRvci5cbiAqXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrfSB2YWxpZGF0b3IgLSBUaGUgdmFsaWRhdG9yXG4gKlxuICogQHRocm93cyB7VHlwZUVycm9yfSBJZiB0aGUgdmFsaWRhdG9yIGlzIG5vdCBhIGZ1bmN0aW9uXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLnJlZ2lzdGVyVmFsaWRhdG9yID0gZnVuY3Rpb24gKHZhbGlkYXRvcikge1xuICBpZiAoXy5pc1VuZGVmaW5lZCh2YWxpZGF0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsaWRhdG9yIGlzIHJlcXVpcmVkJyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNGdW5jdGlvbih2YWxpZGF0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsaWRhdG9yIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgdGhpcy5jdXN0b21WYWxpZGF0b3JzLnB1c2godmFsaWRhdG9yKTtcbn07XG5cbi8qKlxuICogUGVyZm9ybXMgdmFsaWRhdGlvbiBvZiB0aGUgU3dhZ2dlciBBUEkgZG9jdW1lbnQocykuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgYWxsIHZhbGlkYXRvcnMgcHJvZHVjZSB6ZXJvIGVycm9ycyBhbmQgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLnZhbGlkYXRlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgLy8gUmVzZXQgdGhlIGVycm9ycyBhbmQgd2FybmluZ3NcbiAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgdGhpcy53YXJuaW5ncyA9IFtdO1xuXG4gIGZ1bmN0aW9uIGRvVmFsaWRhdGlvbiAodmFsaWRhdG9yKSB7XG4gICAgdmFyIHJlc3VsdHMgPSB2YWxpZGF0b3Ioc2VsZik7XG5cbiAgICBpZiAocmVzdWx0cy5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZi5lcnJvcnMgPSBzZWxmLmVycm9ycy5jb25jYXQocmVzdWx0cy5lcnJvcnMpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLndhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGYud2FybmluZ3MgPSBzZWxmLndhcm5pbmdzLmNvbmNhdChyZXN1bHRzLndhcm5pbmdzKTtcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0ZSB0aGUgZG9jdW1lbnQgc3RydWN0dXJhbGx5XG4gIGRvVmFsaWRhdGlvbih0aGlzLnBsdWdpbi5nZXRKU09OU2NoZW1hVmFsaWRhdG9yKCkpO1xuXG4gIC8vIFBlcmZvcm0gcmVtYWluaW5nIHZhbGlkYXRpb24gb25seSBpZiB0aGUgZG9jdW1lbnQgaXMgc3RydWN0dXJhbGx5IHZhbGlkXG4gIGlmICh0aGlzLmVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAvLyBSdW4gcGx1Z2luIHZhbGlkYXRvcnNcbiAgICBfLmZvckVhY2godGhpcy5wbHVnaW4uZ2V0U2VtYW50aWNWYWxpZGF0b3JzKCksIGRvVmFsaWRhdGlvbik7XG5cbiAgICAvLyBSdW4gY3VzdG9tIHZhbGlkYXRvcnNcbiAgICBfLmZvckVhY2godGhpcy5jdXN0b21WYWxpZGF0b3JzLCBkb1ZhbGlkYXRpb24pO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBPcGVyYXRpb246IE9wZXJhdGlvbixcbiAgUGFyYW1ldGVyOiBQYXJhbWV0ZXIsXG4gIFN3YWdnZXJBcGk6IFN3YWdnZXJBcGlcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQnKTtcbnZhciBCYXNlNjQgPSByZXF1aXJlKCdqcy1iYXNlNjQnKS5CYXNlNjQ7XG52YXIgc3RyaW5nTW9ja2VyID0gcmVxdWlyZSgnanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL3N0cmluZycpO1xuXG4vLyBCdWlsZCB0aGUgbGlzdCBvZiBjdXN0b20gSlNPTiBTY2hlbWEgZ2VuZXJhdG9yIGZvcm1hdHNcbm1vZHVsZS5leHBvcnRzLmJ5dGUgPSBmdW5jdGlvbiAoZ2VuLCBzY2hlbWEpIHtcbiAgdmFyIGNTY2hlbWEgPSBfLmNsb25lRGVlcChzY2hlbWEpO1xuICB2YXIgc2FtcGxlO1xuXG4gIGRlbGV0ZSBjU2NoZW1hLmZvcm1hdDtcblxuICBzYW1wbGUgPSBzdHJpbmdNb2NrZXIoY1NjaGVtYSk7XG5cbiAgcmV0dXJuIEJhc2U2NC5lbmNvZGUoc2FtcGxlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLnBhc3N3b3JkID0gZnVuY3Rpb24gKGdlbiwgc2NoZW1hKSB7XG4gIHJldHVybiBzdHJpbmdNb2NrZXIoc2NoZW1hKTtcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQnKTtcblxubW9kdWxlLmV4cG9ydHMuaW50MzIgPSBtb2R1bGUuZXhwb3J0cy5pbnQ2NCA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgdmFyIHZhbGlkID0gdHJ1ZTtcbiAgdmFyIGNWYWw7XG5cbiAgaWYgKCFfLmlzTnVtYmVyKHZhbCkpIHtcbiAgICB0cnkge1xuICAgICAgY1ZhbCA9IHBhcnNlSW50KHZhbCwgMTApO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBpZiAoXy5pc051bWJlcihjVmFsKSkge1xuICAgIHZhbGlkID0gY1ZhbCAlIDEgPT09IDA7XG4gIH1cblxuICByZXR1cm4gdmFsaWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5kb3VibGUgPSBtb2R1bGUuZXhwb3J0cy5mbG9hdCA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgdmFyIHZhbGlkID0gdHJ1ZTtcblxuICBpZiAoIV8uaXNOdW1iZXIodmFsKSkge1xuICAgIHRyeSB7XG4gICAgICBwYXJzZUZsb2F0KHZhbCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB2YWxpZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzLmJ5dGUgPSBmdW5jdGlvbiAodmFsKSB7XG4gIC8vIFRPRE86IFdlIGNvdWxkIGRvIG1vcmUgaGVyZSBzaW5jZSB0ZWNobmljYWxseSAnYnl0ZScgbWVhbnMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmdcbiAgcmV0dXJuIF8uaXNTdHJpbmcodmFsKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLnBhc3N3b3JkID0gZnVuY3Rpb24gKHZhbCkge1xuICByZXR1cm4gXy5pc1N0cmluZyh2YWwpO1xufTtcbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzLnN1cHBvcnRlZEh0dHBNZXRob2RzID0gWydnZXQnLCAncHV0JywgJ3Bvc3QnLCAnZGVsZXRlJywgJ29wdGlvbnMnLCAnaGVhZCcsICdwYXRjaCddO1xuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gtY29tcGF0Jyk7XG52YXIgSnNvblJlZnMgPSByZXF1aXJlKCdqc29uLXJlZnMnKTtcbnZhciBmb3JtYXRHZW5lcmF0b3JzID0gcmVxdWlyZSgnLi9mb3JtYXQtZ2VuZXJhdG9ycycpO1xudmFyIGhlbHBlcnMgPSByZXF1aXJlKCcuLi8uLi9oZWxwZXJzJyk7XG52YXIgdHlwZXMgPSByZXF1aXJlKCcuLi8uLi90eXBlcycpO1xudmFyIHZhbGlkYXRvcnMgPSByZXF1aXJlKCcuL3ZhbGlkYXRvcnMnKTtcbnZhciB2SGVscGVycyA9IHJlcXVpcmUoJy4vaGVscGVycycpO1xuXG52YXIgZG9jc1VybCA9ICdodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1zcGVjL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCc7XG52YXIgbW9ja2VyID0gaGVscGVycy5jcmVhdGVKU09OU2NoZW1hTW9ja2VyKHtcbiAgZm9ybWF0R2VuZXJhdG9yczogZm9ybWF0R2VuZXJhdG9yc1xufSk7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1zcGVjL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNwYXJhbWV0ZXItb2JqZWN0XG52YXIgcGFyYW1ldGVyU2NoZW1hUHJvcGVydGllcyA9IFtcbiAgJ2RlZmF1bHQnLFxuICAnZGVzY3JpcHRpb24nLFxuICAnZW51bScsXG4gICdleGNsdXNpdmVNYXhpbXVtJyxcbiAgJ2V4Y2x1c2l2ZU1pbmltdW0nLFxuICAnZm9ybWF0JyxcbiAgJ2l0ZW1zJyxcbiAgJ21heEl0ZW1zJyxcbiAgJ21heExlbmd0aCcsXG4gICdtYXhpbXVtJyxcbiAgJ21pbkl0ZW1zJyxcbiAgJ21pbkxlbmd0aCcsXG4gICdtaW5pbXVtJyxcbiAgJ211bHRpcGxlT2YnLFxuICAncGF0dGVybicsXG4gICd0eXBlJyxcbiAgJ3VuaXF1ZUl0ZW1zJ1xuXTtcbnZhciB2ZXJzaW9uID0gJzIuMCc7XG5cbmZ1bmN0aW9uIGdldFBhcmFtZXRlclNjaGVtYSAocGFyYW1ldGVyKSB7XG4gIHZhciBzY2hlbWE7XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQocGFyYW1ldGVyLnNjaGVtYSkpIHtcbiAgICBzY2hlbWEgPSB7fTtcblxuICAgIC8vIEJ1aWxkIHRoZSBzY2hlbWEgZnJvbSB0aGUgc2NoZW1hLWxpa2UgcGFyYW1ldGVyIHN0cnVjdHVyZVxuICAgIF8uZWFjaChwYXJhbWV0ZXJTY2hlbWFQcm9wZXJ0aWVzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHBhcmFtZXRlcltuYW1lXSkpIHtcbiAgICAgICAgc2NoZW1hW25hbWVdID0gcGFyYW1ldGVyW25hbWVdO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHNjaGVtYSA9IHBhcmFtZXRlci5zY2hlbWE7XG4gIH1cblxuICByZXR1cm4gc2NoZW1hO1xufVxuXG4vLyBUaGUgVVJMIHRvIHRoZSBTd2FnZ2VyIDIuMCBkb2N1bWVudGF0aW9uXG5tb2R1bGUuZXhwb3J0cy5kb2N1bWVudGF0aW9uID0gZG9jc1VybDtcblxuLy8gVGhlIGFycmF5IG9mIHN1cHBvcnRlZCBIVFRQIG1ldGhvZHMgZm9yIGVhY2ggcGF0aFxubW9kdWxlLmV4cG9ydHMuc3VwcG9ydGVkSHR0cE1ldGhvZHMgPSB2SGVscGVycy5zdXBwb3J0ZWRIdHRwTWV0aG9kcztcblxuLy8gVGhlIHZlcnNpb24gZm9yIHRoaXMgU3dhZ2dlciB2ZXJzaW9uXG5tb2R1bGUuZXhwb3J0cy52ZXJzaW9uID0gdmVyc2lvbjtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBwcm92aWRlZCBkZWZpbml0aW9uIGNhbiBiZSBwcm9jZXNzZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGRlZmluaXRpb24gLSBUaGUgcG90ZW50aWFsIFN3YWdnZXIgZGVmaW5pdGlvbiB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgdHJ1ZSBvbmx5IGlmIHRoZSBkZWZpbml0aW9uIHJlcHJlc2VudHMgYSBTd2FnZ2VyIDIuMCBkZWZpbml0aW9uXG4gKi9cbm1vZHVsZS5leHBvcnRzLmNhblByb2Nlc3MgPSBmdW5jdGlvbiAoZGVmaW5pdGlvbikge1xuICByZXR1cm4gZGVmaW5pdGlvbi5zd2FnZ2VyID09PSB2ZXJzaW9uO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgU3dhZ2dlckFwaSBvYmplY3QgZnJvbSB0aGUgcHJvdmlkZWQgU3dhZ2dlciBkZWZpbml0aW9uLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIFN3YWdnZXIgZGVmaW5pdGlvblxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBwYXNzZWQgdG8gc3dhZ2dlckFwaS5jcmVhdGVcbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZX0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdGhlIFN3YWdnZXJBcGkgYWZ0ZXIgcHJvY2Vzc2luZ1xuICovXG5tb2R1bGUuZXhwb3J0cy5jcmVhdGVTd2FnZ2VyQXBpID0gZnVuY3Rpb24gKGRlZmluaXRpb24sIG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBKc29uUmVmcy5yZXNvbHZlUmVmcyhkZWZpbml0aW9uLCBvcHRpb25zLmxvYWRlck9wdGlvbnMgfHwge30sIGZ1bmN0aW9uIChlcnIsIHJlc29sdmVkLCBtZXRhZGF0YSkge1xuICAgICAgdmFyIGFwaTtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXBpID0gbmV3IHR5cGVzLlN3YWdnZXJBcGkobW9kdWxlLmV4cG9ydHMsIGRlZmluaXRpb24sIHJlc29sdmVkLCBtZXRhZGF0YSwgb3B0aW9ucyk7XG5cbiAgICAgICAgcmVzb2x2ZShhcGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHVzZWQgdG8gdmFsaWRhdGUgU3dhZ2dlciAyLjAgZG9jdW1lbnRzIGFnYWluc3QgaXRzIEpTT04gU2NoZW1hLlxuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gVGhlIHZhbGlkYXRvciB0byB1c2VcbiAqL1xubW9kdWxlLmV4cG9ydHMuZ2V0SlNPTlNjaGVtYVZhbGlkYXRvciA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHZhbGlkYXRvcnMuanNvblNjaGVtYVZhbGlkYXRvcjtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBPcGVyYXRpb24gb2JqZWN0cyBmb3IgZWFjaCBvcGVyYXRpb24gZGVmaW5lZCBpbiB0aGUgU3dhZ2dlciBkb2N1bWVudFxuICpcbiAqIEBwYXJhbSB7dHlwZXMuU3dhZ2dlckFwaX0gYXBpIC0gVGhlIFN3YWdnZXIgQVBJIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHt0eXBlcy5PcGVyYXRpb25bXX0gVGhlIE9wZXJhdGlvbiBvYmplY3QgYXJyYXlcbiAqL1xubW9kdWxlLmV4cG9ydHMuZ2V0T3BlcmF0aW9ucyA9IGZ1bmN0aW9uIChhcGkpIHtcbiAgdmFyIG9wZXJhdGlvbnMgPSBbXTtcblxuICBfLmZvckVhY2goYXBpLnJlc29sdmVkLnBhdGhzLCBmdW5jdGlvbiAocGF0aERlZiwgcGF0aCkge1xuICAgIHZhciBwUGF0aCA9IFsncGF0aHMnLCBwYXRoXTtcbiAgICB2YXIgcFBhcmFtcyA9IF8ucmVkdWNlKHBhdGhEZWYucGFyYW1ldGVycyB8fCB7fSwgZnVuY3Rpb24gKHBhcmFtZXRlcnMsIHBhcmFtRGVmLCBpbmRleCkge1xuICAgICAgcGFyYW1ldGVyc1twYXJhbURlZi5uYW1lICsgJzonICsgcGFyYW1EZWYuaW5dID0ge1xuICAgICAgICBwYXRoOiBwUGF0aC5jb25jYXQoWydwYXJhbWV0ZXJzJywgaW5kZXgudG9TdHJpbmcoKV0pLFxuICAgICAgICBkZWZpbml0aW9uOiBwYXJhbURlZlxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gICAgfSwge30pO1xuXG4gICAgXy5mb3JFYWNoKHBhdGhEZWYsIGZ1bmN0aW9uIChvcGVyYXRpb24sIG1ldGhvZCkge1xuICAgICAgLy8gRG8gbm90IHByb2Nlc3Mgbm9uLW9wZXJhdGlvbnNcbiAgICAgIGlmIChfLmluZGV4T2YodkhlbHBlcnMuc3VwcG9ydGVkSHR0cE1ldGhvZHMsIG1ldGhvZCkgPT09IC0xKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGNPcGVyYXRpb24gPSBfLmNsb25lRGVlcChvcGVyYXRpb24pOyAvLyBDbG9uZSBzbyB3ZSBkbyBub3QgYWx0ZXIgdGhlIGlucHV0XG4gICAgICB2YXIgb1BhcmFtcyA9IHt9OyAvLyBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgdW5pcXVlIHBhcmFtZXRlcnNcbiAgICAgIHZhciBvUGF0aCA9IHBQYXRoLmNvbmNhdChtZXRob2QpO1xuXG4gICAgICAvLyBBZGQgcGF0aCBwYXJhbWV0ZXJzXG4gICAgICBfLmZvckVhY2gocFBhcmFtcywgZnVuY3Rpb24gKHBQYXJhbSwga2V5KSB7XG4gICAgICAgIG9QYXJhbXNba2V5XSA9IHBQYXJhbTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBBZGQgb3BlcmF0aW9uIHBhcmFtZXRlcnMgKE92ZXJyaWRlcyBwYXRoLWxldmVsIHBhcmFtZXRlcnMgb2Ygc2FtZSBuYW1lK2luIGNvbWJpbmF0aW9uKVxuICAgICAgXy5mb3JFYWNoKG9wZXJhdGlvbi5wYXJhbWV0ZXJzLCBmdW5jdGlvbiAocGFyYW1EZWYsIGluZGV4KSB7XG4gICAgICAgIG9QYXJhbXNbcGFyYW1EZWYubmFtZSArICc6JyArIHBhcmFtRGVmLmluXSA9IHtcbiAgICAgICAgICBwYXRoOiBvUGF0aC5jb25jYXQoWydwYXJhbWV0ZXJzJywgaW5kZXgudG9TdHJpbmcoKV0pLFxuICAgICAgICAgIGRlZmluaXRpb246IHBhcmFtRGVmXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgLy8gQXR0YWNoIG91ciBjb21wdXRlZCBwYXJhbWV0ZXJzL3NlY3VyaXR5IHRvIHRoZSBvcGVyYXRpb25cbiAgICAgIGNPcGVyYXRpb24ucGFyYW1ldGVycyA9IF8ubWFwKF8udmFsdWVzKG9QYXJhbXMpLCBmdW5jdGlvbiAocGFyYW1ldGVyKSB7XG4gICAgICAgIC8vIFVzZWQgbGF0ZXIgYnkgZ2V0T3BlcmF0aW9uUGFyYW1ldGVycyB0byBjaXJjdW12ZW50IHRoZSBjaGlja2VuL2VnZyBzaXR1YXRpb24gKFJlbW92ZWQgdGhlcmUgYXMgd2VsbClcbiAgICAgICAgcGFyYW1ldGVyLmRlZmluaXRpb24uJCQkcHRyJCQkID0gSnNvblJlZnMucGF0aFRvUG9pbnRlcihwYXJhbWV0ZXIucGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtZXRlci5kZWZpbml0aW9uO1xuICAgICAgfSk7XG5cblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQoY09wZXJhdGlvbi5zZWN1cml0eSkpIHtcbiAgICAgICAgY09wZXJhdGlvbi5zZWN1cml0eSA9IGFwaS5yZXNvbHZlZC5zZWN1cml0eTtcbiAgICAgIH1cblxuICAgICAgb3BlcmF0aW9ucy5wdXNoKG5ldyB0eXBlcy5PcGVyYXRpb24oYXBpLCBwYXRoLCBtZXRob2QsIEpzb25SZWZzLnBhdGhUb1BvaW50ZXIob1BhdGgpLCBjT3BlcmF0aW9uKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBvcGVyYXRpb25zO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIFBhcmFtZXRlciBvYmplY3RzIGZvciB0aGUgcHJvdmljZWQgT3BlcmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7dHlwZXMuT3BlcmF0aW9ufSBvcGVyYXRpb24gLSBUaGUgT3BlcmF0aW9uIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHt0eXBlcy5QYXJhbWV0ZXJbXX0gVGhlIFBhcmFtZXRlciBvYmplY3QgYXJyYXlcbiAqL1xubW9kdWxlLmV4cG9ydHMuZ2V0T3BlcmF0aW9uUGFyYW1ldGVycyA9IGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgcmV0dXJuIF8ubWFwKG9wZXJhdGlvbi5wYXJhbWV0ZXJzLCBmdW5jdGlvbiAocGFyYW1EZWYpIHtcbiAgICB2YXIgcHRyID0gcGFyYW1EZWYuJCQkcHRyJCQkO1xuXG4gICAgLy8gUmVtb3ZlIHNvIHdlIGRvIG5vdCBoYXZlIHRoZXNlIHByb3BlcnRpZXMgbGl0ZXJlZCB0aHJvdWdob3V0IHRoZSBkb2N1bWVudFxuICAgIGRlbGV0ZSBwYXJhbURlZi4kJCRwdHIkJCQ7XG5cbiAgICByZXR1cm4gbmV3IHR5cGVzLlBhcmFtZXRlcihvcGVyYXRpb24sIHB0ciwgcGFyYW1EZWYsIGdldFBhcmFtZXRlclNjaGVtYShwYXJhbURlZikpO1xuICB9KTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNhbXBsZSB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIEpTT04gU2NoZW1hLlxuICpcbiAqIEBwYXJhbSB7Kn0gc2NoZW1hIC0gVGhlIEpTT04gU2NoZW1hXG4gKlxuICogQHJldHVybnMgeyp9IFRoZSBzYW1wbGUgdmFsdWVcbiAqL1xubW9kdWxlLmV4cG9ydHMuZ2V0U2FtcGxlID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICByZXR1cm4gbW9ja2VyKHNjaGVtYSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gYXJyYXkgb2YgZnVuY3Rpb25zIHVzZWQgdG8gdmFsaWRhdGUgU3dhZ2dlciAyLjAgZG9jdW1lbnRzIHNlbWFudGljYWxseS5cbiAqXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb25bXX0gVGhlIHZhbGlkYXRvcnMgdG8gdXNlXG4gKi9cbm1vZHVsZS5leHBvcnRzLmdldFNlbWFudGljVmFsaWRhdG9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHZhbGlkYXRvcnMuc2VtYW50aWNWYWxpZGF0b3JzO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ0aXRsZVwiOiBcIkEgSlNPTiBTY2hlbWEgZm9yIFN3YWdnZXIgMi4wIEFQSS5cIixcbiAgXCJpZFwiOiBcImh0dHA6Ly9zd2FnZ2VyLmlvL3YyL3NjaGVtYS5qc29uI1wiLFxuICBcIiRzY2hlbWFcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSNcIixcbiAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gIFwicmVxdWlyZWRcIjogW1xuICAgIFwic3dhZ2dlclwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwicGF0aHNcIlxuICBdLFxuICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICBcIl54LVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgfVxuICB9LFxuICBcInByb3BlcnRpZXNcIjoge1xuICAgIFwic3dhZ2dlclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgIFwiMi4wXCJcbiAgICAgIF0sXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIFN3YWdnZXIgdmVyc2lvbiBvZiB0aGlzIGRvY3VtZW50LlwiXG4gICAgfSxcbiAgICBcImluZm9cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbmZvXCJcbiAgICB9LFxuICAgIFwiaG9zdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCIsXG4gICAgICBcInBhdHRlcm5cIjogXCJeW157fS8gOlxcXFxcXFxcXSsoPzo6XFxcXGQrKT8kXCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGZ1bGx5IHF1YWxpZmllZCBVUkkgdG8gdGhlIGhvc3Qgb2YgdGhlIEFQSS5cIlxuICAgIH0sXG4gICAgXCJiYXNlUGF0aFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwicGF0dGVyblwiOiBcIl4vXCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGJhc2UgcGF0aCB0byB0aGUgQVBJLiBFeGFtcGxlOiAnL2FwaScuXCJcbiAgICB9LFxuICAgIFwic2NoZW1lc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtZXNMaXN0XCJcbiAgICB9LFxuICAgIFwiY29uc3VtZXNcIjoge1xuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgbGlzdCBvZiBNSU1FIHR5cGVzIGFjY2VwdGVkIGJ5IHRoZSBBUEkuXCIsXG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21lZGlhVHlwZUxpc3RcIlxuICAgIH0sXG4gICAgXCJwcm9kdWNlc1wiOiB7XG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIE1JTUUgdHlwZXMgdGhlIEFQSSBjYW4gcHJvZHVjZS5cIixcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWVkaWFUeXBlTGlzdFwiXG4gICAgfSxcbiAgICBcInBhdGhzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0aHNcIlxuICAgIH0sXG4gICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmluaXRpb25zXCJcbiAgICB9LFxuICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFtZXRlckRlZmluaXRpb25zXCJcbiAgICB9LFxuICAgIFwicmVzcG9uc2VzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmVzcG9uc2VEZWZpbml0aW9uc1wiXG4gICAgfSxcbiAgICBcInNlY3VyaXR5XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VjdXJpdHlcIlxuICAgIH0sXG4gICAgXCJzZWN1cml0eURlZmluaXRpb25zXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VjdXJpdHlEZWZpbml0aW9uc1wiXG4gICAgfSxcbiAgICBcInRhZ3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3RhZ1wiXG4gICAgICB9LFxuICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcImV4dGVybmFsRG9jc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4dGVybmFsRG9jc1wiXG4gICAgfVxuICB9LFxuICBcImRlZmluaXRpb25zXCI6IHtcbiAgICBcImluZm9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQVBJLlwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidmVyc2lvblwiLFxuICAgICAgICBcInRpdGxlXCJcbiAgICAgIF0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSB1bmlxdWUgYW5kIHByZWNpc2UgdGl0bGUgb2YgdGhlIEFQSS5cIlxuICAgICAgICB9LFxuICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIHNlbWFudGljIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBBUEkuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgbG9uZ2VyIGRlc2NyaXB0aW9uIG9mIHRoZSBBUEkuIFNob3VsZCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgdGl0bGUuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcInRlcm1zT2ZTZXJ2aWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIHRlcm1zIG9mIHNlcnZpY2UgZm9yIHRoZSBBUEkuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb250YWN0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbnRhY3RcIlxuICAgICAgICB9LFxuICAgICAgICBcImxpY2Vuc2VcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbGljZW5zZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY29udGFjdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJDb250YWN0IGluZm9ybWF0aW9uIGZvciB0aGUgb3duZXJzIG9mIHRoZSBBUEkuXCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGlkZW50aWZ5aW5nIG5hbWUgb2YgdGhlIGNvbnRhY3QgcGVyc29uL29yZ2FuaXphdGlvbi5cIlxuICAgICAgICB9LFxuICAgICAgICBcInVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBVUkwgcG9pbnRpbmcgdG8gdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24uXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcImVtYWlsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIGNvbnRhY3QgcGVyc29uL29yZ2FuaXphdGlvbi5cIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcImVtYWlsXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJsaWNlbnNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBsaWNlbnNlIHR5cGUuIEl0J3MgZW5jb3VyYWdlZCB0byB1c2UgYW4gT1NJIGNvbXBhdGlibGUgbGljZW5zZS5cIlxuICAgICAgICB9LFxuICAgICAgICBcInVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBVUkwgcG9pbnRpbmcgdG8gdGhlIGxpY2Vuc2UuXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInBhdGhzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlbGF0aXZlIHBhdGhzIHRvIHRoZSBpbmRpdmlkdWFsIGVuZHBvaW50cy4gVGhleSBtdXN0IGJlIHJlbGF0aXZlIHRvIHRoZSAnYmFzZVBhdGgnLlwiLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiXi9cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0aEl0ZW1cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICB9LFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk9uZSBvciBtb3JlIEpTT04gb2JqZWN0cyBkZXNjcmliaW5nIHRoZSBzY2hlbWFzIGJlaW5nIGNvbnN1bWVkIGFuZCBwcm9kdWNlZCBieSB0aGUgQVBJLlwiXG4gICAgfSxcbiAgICBcInBhcmFtZXRlckRlZmluaXRpb25zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyXCJcbiAgICAgIH0sXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiT25lIG9yIG1vcmUgSlNPTiByZXByZXNlbnRhdGlvbnMgZm9yIHBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJyZXNwb25zZURlZmluaXRpb25zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmVzcG9uc2VcIlxuICAgICAgfSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJPbmUgb3IgbW9yZSBKU09OIHJlcHJlc2VudGF0aW9ucyBmb3IgcGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcImV4dGVybmFsRG9jc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaW5mb3JtYXRpb24gYWJvdXQgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvblwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidXJsXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcImV4YW1wbGVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXlthLXowLTktXSsvW2EtejAtOVxcXFwtK10rJFwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2VcbiAgICB9LFxuICAgIFwibWltZVR5cGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIE1JTUUgdHlwZSBvZiB0aGUgSFRUUCBtZXNzYWdlLlwiXG4gICAgfSxcbiAgICBcIm9wZXJhdGlvblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInJlc3BvbnNlc1wiXG4gICAgICBdLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcInN1bW1hcnlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIHN1bW1hcnkgb2YgdGhlIG9wZXJhdGlvbi5cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsb25nZXIgZGVzY3JpcHRpb24gb2YgdGhlIG9wZXJhdGlvbiwgZ2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleHRlcm5hbERvY3NcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXh0ZXJuYWxEb2NzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvcGVyYXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgZnJpZW5kbHkgbmFtZSBvZiB0aGUgb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9kdWNlc1wiOiB7XG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgbGlzdCBvZiBNSU1FIHR5cGVzIHRoZSBBUEkgY2FuIHByb2R1Y2UuXCIsXG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tZWRpYVR5cGVMaXN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb25zdW1lc1wiOiB7XG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgbGlzdCBvZiBNSU1FIHR5cGVzIHRoZSBBUEkgY2FuIGNvbnN1bWUuXCIsXG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tZWRpYVR5cGVMaXN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFtZXRlcnNMaXN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNwb25zZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmVzcG9uc2VzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzY2hlbWVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtZXNMaXN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXByZWNhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VjdXJpdHlcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VjdXJpdHlcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInBhdGhJdGVtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImdldFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInB1dFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInBvc3RcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWxldGVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvcHRpb25zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaGVhZFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdGNoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbWV0ZXJzTGlzdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicmVzcG9uc2VzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlc3BvbnNlIG9iamVjdHMgbmFtZXMgY2FuIGVpdGhlciBiZSBhbnkgdmFsaWQgSFRUUCBzdGF0dXMgY29kZSBvciAnZGVmYXVsdCcuXCIsXG4gICAgICBcIm1pblByb3BlcnRpZXNcIjogMSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeKFswLTldezN9KSR8XihkZWZhdWx0KSRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmVzcG9uc2VWYWx1ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm5vdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInJlc3BvbnNlVmFsdWVcIjoge1xuICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Jlc3BvbnNlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvanNvblJlZmVyZW5jZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwicmVzcG9uc2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzY2hlbWFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJoZWFkZXJzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2hlYWRlcnNcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4YW1wbGVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4YW1wbGVzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2VcbiAgICB9LFxuICAgIFwiaGVhZGVyc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2hlYWRlclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcImhlYWRlclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImFycmF5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ByaW1pdGl2ZXNJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb2xsZWN0aW9uRm9ybWF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heExlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkxlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwidmVuZG9yRXh0ZW5zaW9uXCI6IHtcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBbnkgcHJvcGVydHkgc3RhcnRpbmcgd2l0aCB4LSBpcyB2YWxpZC5cIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiYWRkaXRpb25hbEl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwiYm9keVBhcmFtZXRlclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgXCJpblwiLFxuICAgICAgICBcInNjaGVtYVwiXG4gICAgICBdLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVyLiBUaGlzIGNvdWxkIGNvbnRhaW4gZXhhbXBsZXMgb2YgdXNlLiAgR2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cIlxuICAgICAgICB9LFxuICAgICAgICBcImluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB0aGUgbG9jYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJib2R5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBvciBvcHRpb25hbC5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJzY2hlbWFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2VcbiAgICB9LFxuICAgIFwiaGVhZGVyUGFyYW1ldGVyU3ViU2NoZW1hXCI6IHtcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBvciBvcHRpb25hbC5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiaGVhZGVyXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZiB1c2UuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYXJyYXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJxdWVyeVBhcmFtZXRlclN1YlNjaGVtYVwiOiB7XG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGFyYW1ldGVyLlwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInF1ZXJ5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZiB1c2UuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxsb3dFbXB0eVZhbHVlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGxvd3Mgc2VuZGluZyBhIHBhcmFtZXRlciBieSBuYW1lIG9ubHkgb3Igd2l0aCBhbiBlbXB0eSB2YWx1ZS5cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImFycmF5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ByaW1pdGl2ZXNJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb2xsZWN0aW9uRm9ybWF0V2l0aE11bHRpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heExlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkxlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiZm9ybURhdGFQYXJhbWV0ZXJTdWJTY2hlbWFcIjoge1xuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcImluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB0aGUgbG9jYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJmb3JtRGF0YVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVyLiBUaGlzIGNvdWxkIGNvbnRhaW4gZXhhbXBsZXMgb2YgdXNlLiAgR2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cIlxuICAgICAgICB9LFxuICAgICAgICBcImFsbG93RW1wdHlWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsb3dzIHNlbmRpbmcgYSBwYXJhbWV0ZXIgYnkgbmFtZSBvbmx5IG9yIHdpdGggYW4gZW1wdHkgdmFsdWUuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJmaWxlXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ByaW1pdGl2ZXNJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb2xsZWN0aW9uRm9ybWF0V2l0aE11bHRpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heExlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkxlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicGF0aFBhcmFtZXRlclN1YlNjaGVtYVwiOiB7XG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGFyYW1ldGVyLlwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInBhdGhcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJhcnJheVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm5vbkJvZHlQYXJhbWV0ZXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwiaW5cIixcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaGVhZGVyUGFyYW1ldGVyU3ViU2NoZW1hXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZm9ybURhdGFQYXJhbWV0ZXJTdWJTY2hlbWFcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9xdWVyeVBhcmFtZXRlclN1YlNjaGVtYVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdGhQYXJhbWV0ZXJTdWJTY2hlbWFcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcInBhcmFtZXRlclwiOiB7XG4gICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYm9keVBhcmFtZXRlclwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL25vbkJvZHlQYXJhbWV0ZXJcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcInNjaGVtYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGRldGVybWluaXN0aWMgdmVyc2lvbiBvZiBhIEpTT04gU2NoZW1hIG9iamVjdC5cIixcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0aXRsZVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvdGl0bGVcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9kZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4UHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvYWRkaXRpb25hbFByb3BlcnRpZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3R5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImFsbE9mXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwieG1sXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3htbFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXh0ZXJuYWxEb2NzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4dGVybmFsRG9jc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhhbXBsZVwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2VcbiAgICB9LFxuICAgIFwicHJpbWl0aXZlc0l0ZW1zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiYXJyYXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJzZWN1cml0eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VjdXJpdHlSZXF1aXJlbWVudFwiXG4gICAgICB9LFxuICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcInNlY3VyaXR5UmVxdWlyZW1lbnRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBcInhtbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInByZWZpeFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdHRyaWJ1dGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3cmFwcGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwidGFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleHRlcm5hbERvY3NcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXh0ZXJuYWxEb2NzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInNlY3VyaXR5RGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9iYXNpY0F1dGhlbnRpY2F0aW9uU2VjdXJpdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9hcGlLZXlTZWN1cml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMkltcGxpY2l0U2VjdXJpdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJQYXNzd29yZFNlY3VyaXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyQXBwbGljYXRpb25TZWN1cml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMkFjY2Vzc0NvZGVTZWN1cml0eVwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSxcbiAgICBcImJhc2ljQXV0aGVudGljYXRpb25TZWN1cml0eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImJhc2ljXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJhcGlLZXlTZWN1cml0eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgIFwibmFtZVwiLFxuICAgICAgICBcImluXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImFwaUtleVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJxdWVyeVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwib2F1dGgySW1wbGljaXRTZWN1cml0eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgIFwiZmxvd1wiLFxuICAgICAgICBcImF1dGhvcml6YXRpb25VcmxcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwib2F1dGgyXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmxvd1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiaW1wbGljaXRcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyU2NvcGVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRob3JpemF0aW9uVXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJvYXV0aDJQYXNzd29yZFNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJmbG93XCIsXG4gICAgICAgIFwidG9rZW5VcmxcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwib2F1dGgyXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmxvd1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwicGFzc3dvcmRcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyU2NvcGVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0b2tlblVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwib2F1dGgyQXBwbGljYXRpb25TZWN1cml0eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgIFwiZmxvd1wiLFxuICAgICAgICBcInRva2VuVXJsXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcIm9hdXRoMlwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZsb3dcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMlNjb3Blc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidG9rZW5VcmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm9hdXRoMkFjY2Vzc0NvZGVTZWN1cml0eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgIFwiZmxvd1wiLFxuICAgICAgICBcImF1dGhvcml6YXRpb25VcmxcIixcbiAgICAgICAgXCJ0b2tlblVybFwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJvYXV0aDJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmbG93XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJhY2Nlc3NDb2RlXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMlNjb3Blc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV0aG9yaXphdGlvblVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcInRva2VuVXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJvYXV0aDJTY29wZXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwibWVkaWFUeXBlTGlzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWltZVR5cGVcIlxuICAgICAgfSxcbiAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJwYXJhbWV0ZXJzTGlzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBwYXJhbWV0ZXJzIG5lZWRlZCB0byBzZW5kIGEgdmFsaWQgQVBJIGNhbGwuXCIsXG4gICAgICBcImFkZGl0aW9uYWxJdGVtc1wiOiBmYWxzZSxcbiAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFtZXRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2pzb25SZWZlcmVuY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJzY2hlbWVzTGlzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB0cmFuc2ZlciBwcm90b2NvbCBvZiB0aGUgQVBJLlwiLFxuICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgIFwiaHR0cFwiLFxuICAgICAgICAgIFwiaHR0cHNcIixcbiAgICAgICAgICBcIndzXCIsXG4gICAgICAgICAgXCJ3c3NcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcImVudW1cIjogW1xuICAgICAgICBcImNzdlwiLFxuICAgICAgICBcInNzdlwiLFxuICAgICAgICBcInRzdlwiLFxuICAgICAgICBcInBpcGVzXCJcbiAgICAgIF0sXG4gICAgICBcImRlZmF1bHRcIjogXCJjc3ZcIlxuICAgIH0sXG4gICAgXCJjb2xsZWN0aW9uRm9ybWF0V2l0aE11bHRpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgXCJjc3ZcIixcbiAgICAgICAgXCJzc3ZcIixcbiAgICAgICAgXCJ0c3ZcIixcbiAgICAgICAgXCJwaXBlc1wiLFxuICAgICAgICBcIm11bHRpXCJcbiAgICAgIF0sXG4gICAgICBcImRlZmF1bHRcIjogXCJjc3ZcIlxuICAgIH0sXG4gICAgXCJ0aXRsZVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy90aXRsZVwiXG4gICAgfSxcbiAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2Rlc2NyaXB0aW9uXCJcbiAgICB9LFxuICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9kZWZhdWx0XCJcbiAgICB9LFxuICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9tdWx0aXBsZU9mXCJcbiAgICB9LFxuICAgIFwibWF4aW11bVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9tYXhpbXVtXCJcbiAgICB9LFxuICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICB9LFxuICAgIFwibWluaW11bVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9taW5pbXVtXCJcbiAgICB9LFxuICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICB9LFxuICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIlxuICAgIH0sXG4gICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCJcbiAgICB9LFxuICAgIFwicGF0dGVyblwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9wYXR0ZXJuXCJcbiAgICB9LFxuICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiXG4gICAgfSxcbiAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiXG4gICAgfSxcbiAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3VuaXF1ZUl0ZW1zXCJcbiAgICB9LFxuICAgIFwiZW51bVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9lbnVtXCJcbiAgICB9LFxuICAgIFwianNvblJlZmVyZW5jZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQnKTtcbnZhciBjdXN0b21Gb3JtYXRWYWxpZGF0b3JzID0gcmVxdWlyZSgnLi9mb3JtYXQtdmFsaWRhdG9ycycpO1xudmFyIGhlbHBlcnMgPSByZXF1aXJlKCcuLi8uLi9oZWxwZXJzJyk7XG52YXIgSnNvblJlZnMgPSByZXF1aXJlKCdqc29uLXJlZnMnKTtcbnZhciBzd2FnZ2VyU2NoZW1hID0gcmVxdWlyZSgnLi9zY2hlbWEuanNvbicpO1xudmFyIHZIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbmZ1bmN0aW9uIHdhbGtTY2hlbWEgKGJsYWNrbGlzdCwgc2NoZW1hLCBwYXRoLCBoYW5kbGVyKSB7XG4gIHZhciB0eXBlID0gc2NoZW1hLnR5cGUgfHwgJ29iamVjdCc7XG5cbiAgZnVuY3Rpb24gc2hvdWxkU2tpcCAoY1BhdGgpIHtcbiAgICByZXR1cm4gXy5pbmRleE9mKGJsYWNrbGlzdCwgSnNvblJlZnMucGF0aFRvUG9pbnRlcihjUGF0aCkpID4gLTE7XG4gIH1cblxuICAvLyBEbyBub3QgcHJvY2VzcyBpdGVtcyBpbiB0aGUgYmxhY2tsaXN0IGFzIHRoZXkndmUgYmVlbiBwcm9jZXNzZWQgYWxyZWFkeVxuICBpZiAoc2hvdWxkU2tpcChwYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdhbGtlciAocFNjaGVtYSwgcFBhdGgpIHtcbiAgICAvLyBEbyBub3QgcHJvY2VzcyBpdGVtcyBpbiB0aGUgYmxhY2tsaXN0IGFzIHRoZXkndmUgYmVlbiBwcm9jZXNzZWQgYWxyZWFkeVxuICAgIGlmIChzaG91bGRTa2lwKHBQYXRoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIF8uZm9yRWFjaChwU2NoZW1hLCBmdW5jdGlvbiAoaXRlbSwgbmFtZSkge1xuICAgICAgaWYgKF8uaXNOdW1iZXIobmFtZSkpIHtcbiAgICAgICAgbmFtZSA9IG5hbWUudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgd2Fsa1NjaGVtYShibGFja2xpc3QsIGl0ZW0sIHBQYXRoLmNvbmNhdChuYW1lKSwgaGFuZGxlcik7XG4gICAgfSk7XG5cbiAgICBoYW5kbGVyKHBTY2hlbWEsIHBQYXRoKTtcbiAgfVxuXG4gIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWEuc2NoZW1hKSkge1xuICAgIHdhbGtTY2hlbWEoYmxhY2tsaXN0LCBzY2hlbWEuc2NoZW1hLCBwYXRoLmNvbmNhdCgnc2NoZW1hJyksIGhhbmRsZXIpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheScgJiYgIV8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zKSkge1xuICAgIHdhbGtlcihzY2hlbWEuaXRlbXMsIHBhdGguY29uY2F0KCdpdGVtcycpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMpKSB7XG4gICAgICB3YWxrU2NoZW1hKGJsYWNrbGlzdCwgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLCBwYXRoLmNvbmNhdCgnYWRkaXRpb25hbFByb3BlcnRpZXMnKSwgaGFuZGxlcik7XG4gICAgfVxuXG4gICAgXy5mb3JFYWNoKFsnYWxsT2YnLCAncHJvcGVydGllcyddLCBmdW5jdGlvbiAocHJvcE5hbWUpIHtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWFbcHJvcE5hbWVdKSkge1xuICAgICAgICB3YWxrZXIoc2NoZW1hW3Byb3BOYW1lXSwgcGF0aC5jb25jYXQocHJvcE5hbWUpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZXIoc2NoZW1hLCBwYXRoKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHJlc29sdmVkIFN3YWdnZXIgZG9jdW1lbnQgYWdhaW5zdCB0aGUgU3dhZ2dlciAyLjAgSlNPTiBTY2hlbWEuXG4gKlxuICogQHBhcmFtIHtTd2FnZ2VyQXBpfSBhcGkgLSBUaGUgU3dhZ2dlckFwaSBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBPYmplY3QgY29udGFpbmluZyB0aGUgZXJyb3JzIGFuZCB3YXJuaW5ncyBvZiB0aGUgdmFsaWRhdGlvblxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVN0cnVjdHVyZSAoYXBpKSB7XG4gIHJldHVybiBoZWxwZXJzLnZhbGlkYXRlQWdhaW5zdFNjaGVtYShoZWxwZXJzLmNyZWF0ZUpTT05WYWxpZGF0b3Ioe1xuICAgIGZvcm1hdFZhbGlkYXRvcnM6IGN1c3RvbUZvcm1hdFZhbGlkYXRvcnNcbiAgfSksIHN3YWdnZXJTY2hlbWEsIGFwaS5yZXNvbHZlZCk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoYXQgYWxsIGFycmF5cyBoYXZlIHRoZWlyIHJlcXVpcmVkIGl0ZW1zIHByb3BlcnR5LlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvaXNzdWVzLzE3NH1cbiAqXG4gKiBAcGFyYW0ge1N3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyQXBpIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIG9mIHRoZSB2YWxpZGF0aW9uXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlQXJyYXlJdGVtcyAoYXBpKSB7XG4gIC8vIEJ1aWxkIGEgYmxhY2tsaXN0IHRvIGF2b2lkIGNhc2NhZGluZyBlcnJvcnMvd2FybmluZ3NcbiAgdmFyIGJsYWNrbGlzdCA9IF8ucmVkdWNlKGFwaS5yZWZlcmVuY2VzLCBmdW5jdGlvbiAobGlzdCwgbWV0YWRhdGEsIHB0cikge1xuICAgIHZhciByZWZQYXRoID0gSnNvblJlZnMucGF0aEZyb21Qb2ludGVyKHB0cik7XG5cbiAgICAvLyBSZW1vdmUgdGhlICRyZWYgcGFydCBvZiB0aGUgcGF0aFxuICAgIHJlZlBhdGgucG9wKCk7XG5cbiAgICBsaXN0LnB1c2goSnNvblJlZnMucGF0aFRvUG9pbnRlcihyZWZQYXRoKSk7XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfSwgW10pO1xuICB2YXIgcmVzcG9uc2UgPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW11cbiAgfTtcblxuICBmdW5jdGlvbiB2YWxpZGF0ZSAoc2NoZW1hLCBwYXRoKSB7XG4gICAgaWYgKHNjaGVtYS50eXBlID09PSAnYXJyYXknICYmIF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgcmVzcG9uc2UuZXJyb3JzLnB1c2goe1xuICAgICAgICBjb2RlOiAnT0JKRUNUX01JU1NJTkdfUkVRVUlSRURfUFJPUEVSVFknLFxuICAgICAgICBtZXNzYWdlOiAnTWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eTogaXRlbXMnLFxuICAgICAgICBwYXRoOiBwYXRoXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB2YWxpZGF0ZVBhcmFtZXRlcnMgKHBhcmFtZXRlcnMsIHBhdGgpIHtcbiAgICBfLmZvckVhY2gocGFyYW1ldGVycywgZnVuY3Rpb24gKHBhcmFtZXRlckRlZiwgbmFtZSkge1xuICAgICAgaWYgKF8uaXNOdW1iZXIobmFtZSkpIHtcbiAgICAgICAgbmFtZSA9IG5hbWUudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgd2Fsa1NjaGVtYShibGFja2xpc3QsIHBhcmFtZXRlckRlZiwgcGF0aC5jb25jYXQobmFtZSksIHZhbGlkYXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHZhbGlkYXRlUmVzcG9uc2VzIChyZXNwb25zZXMsIHBhdGgpIHtcbiAgICBfLmZvckVhY2gocmVzcG9uc2VzLCBmdW5jdGlvbiAocmVzcG9uc2VEZWYsIG5hbWUpIHtcbiAgICAgIHZhciByUGF0aCA9IHBhdGguY29uY2F0KG5hbWUpO1xuXG4gICAgICBfLmZvckVhY2gocmVzcG9uc2VEZWYuaGVhZGVycywgZnVuY3Rpb24gKGhlYWRlciwgaE5hbWUpIHtcbiAgICAgICAgd2Fsa1NjaGVtYShibGFja2xpc3QsIGhlYWRlciwgclBhdGguY29uY2F0KFsnaGVhZGVycycsIGhOYW1lXSksIHZhbGlkYXRlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQocmVzcG9uc2VEZWYuc2NoZW1hKSkge1xuICAgICAgICB3YWxrU2NoZW1hKGJsYWNrbGlzdCwgcmVzcG9uc2VEZWYuc2NoZW1hLCByUGF0aC5jb25jYXQoJ3NjaGVtYScpLCB2YWxpZGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBkZWZpbml0aW9uc1xuICBfLmZvckVhY2goYXBpLnJlc29sdmVkLmRlZmluaXRpb25zLCBmdW5jdGlvbiAoZGVmaW5pdGlvbkRlZiwgbmFtZSkge1xuICAgIHdhbGtTY2hlbWEoYmxhY2tsaXN0LCBkZWZpbml0aW9uRGVmLCBbJ2RlZmluaXRpb25zJywgbmFtZV0sIHZhbGlkYXRlKTtcbiAgfSk7XG5cbiAgLy8gVmFsaWRhdGUgZ2xvYmFsIHBhcmFtZXRlciBkZWZpbml0aW9uc1xuICB2YWxpZGF0ZVBhcmFtZXRlcnMoYXBpLnJlc29sdmVkLnBhcmFtZXRlcnMsIFsncGFyYW1ldGVycyddKTtcblxuICAvLyBWYWxpZGF0ZSBnbG9iYWwgcmVzcG9uc2UgZGVmaW5pdGlvbnNcbiAgdmFsaWRhdGVSZXNwb25zZXMoYXBpLnJlc29sdmVkLnJlc3BvbnNlcywgWydyZXNwb25zZXMnXSk7XG5cbiAgLy8gVmFsaWRhdGUgcGF0aHMgYW5kIG9wZXJhdGlvbnNcbiAgXy5mb3JFYWNoKGFwaS5yZXNvbHZlZC5wYXRocywgZnVuY3Rpb24gKHBhdGhEZWYsIHBhdGgpIHtcbiAgICB2YXIgcFBhdGggPSBbJ3BhdGhzJywgcGF0aF07XG5cbiAgICAvLyBWYWxpZGF0ZSBwYXRoLWxldmVsIHBhcmFtZXRlciBkZWZpbml0aW9uc1xuICAgIHZhbGlkYXRlUGFyYW1ldGVycyhwYXRoRGVmLnBhcmFtZXRlcnMsIHBQYXRoLmNvbmNhdCgncGFyYW1ldGVycycpKTtcblxuICAgIF8uZm9yRWFjaChwYXRoRGVmLCBmdW5jdGlvbiAob3BlcmF0aW9uRGVmLCBtZXRob2QpIHtcbiAgICAgIHZhciBvUGF0aCA9IHBQYXRoLmNvbmNhdChtZXRob2QpO1xuXG4gICAgICAvLyBEbyBub3QgcHJvY2VzcyBub24tb3BlcmF0aW9uc1xuICAgICAgaWYgKF8uaW5kZXhPZih2SGVscGVycy5zdXBwb3J0ZWRIdHRwTWV0aG9kcywgbWV0aG9kKSA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSBvcGVyYXRpb24gcGFyYW1ldGVyIGRlZmluaXRpb25zXG4gICAgICB2YWxpZGF0ZVBhcmFtZXRlcnMob3BlcmF0aW9uRGVmLnBhcmFtZXRlcnMsIG9QYXRoLmNvbmNhdCgncGFyYW1ldGVycycpKTtcblxuICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0aW9uIHJlc3BvbnNlIGRlZmluaXRpb25zXG4gICAgICB2YWxpZGF0ZVJlc3BvbnNlcyhvcGVyYXRpb25EZWYucmVzcG9uc2VzLCBvUGF0aC5jb25jYXQoJ3Jlc3BvbnNlcycpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAganNvblNjaGVtYVZhbGlkYXRvcjogdmFsaWRhdGVTdHJ1Y3R1cmUsXG4gIHNlbWFudGljVmFsaWRhdG9yczogW1xuICAgIHZhbGlkYXRlQXJyYXlJdGVtc1xuICBdXG59O1xuIixudWxsLCIvKiFcbiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLlxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbnZhciBiYXNlNjQgPSByZXF1aXJlKCdiYXNlNjQtanMnKVxudmFyIGllZWU3NTQgPSByZXF1aXJlKCdpZWVlNzU0JylcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnaXMtYXJyYXknKVxuXG5leHBvcnRzLkJ1ZmZlciA9IEJ1ZmZlclxuZXhwb3J0cy5TbG93QnVmZmVyID0gU2xvd0J1ZmZlclxuZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFUyA9IDUwXG5CdWZmZXIucG9vbFNpemUgPSA4MTkyIC8vIG5vdCB1c2VkIGJ5IHRoaXMgaW1wbGVtZW50YXRpb25cblxudmFyIGtNYXhMZW5ndGggPSAweDNmZmZmZmZmXG52YXIgcm9vdFBhcmVudCA9IHt9XG5cbi8qKlxuICogSWYgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYDpcbiAqICAgPT09IHRydWUgICAgVXNlIFVpbnQ4QXJyYXkgaW1wbGVtZW50YXRpb24gKGZhc3Rlc3QpXG4gKiAgID09PSBmYWxzZSAgIFVzZSBPYmplY3QgaW1wbGVtZW50YXRpb24gKG1vc3QgY29tcGF0aWJsZSwgZXZlbiBJRTYpXG4gKlxuICogQnJvd3NlcnMgdGhhdCBzdXBwb3J0IHR5cGVkIGFycmF5cyBhcmUgSUUgMTArLCBGaXJlZm94IDQrLCBDaHJvbWUgNyssIFNhZmFyaSA1LjErLFxuICogT3BlcmEgMTEuNissIGlPUyA0LjIrLlxuICpcbiAqIE5vdGU6XG4gKlxuICogLSBJbXBsZW1lbnRhdGlvbiBtdXN0IHN1cHBvcnQgYWRkaW5nIG5ldyBwcm9wZXJ0aWVzIHRvIGBVaW50OEFycmF5YCBpbnN0YW5jZXMuXG4gKiAgIEZpcmVmb3ggNC0yOSBsYWNrZWQgc3VwcG9ydCwgZml4ZWQgaW4gRmlyZWZveCAzMCsuXG4gKiAgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NDM4LlxuICpcbiAqICAtIENocm9tZSA5LTEwIGlzIG1pc3NpbmcgdGhlIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24uXG4gKlxuICogIC0gSUUxMCBoYXMgYSBicm9rZW4gYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFycmF5cyBvZlxuICogICAgaW5jb3JyZWN0IGxlbmd0aCBpbiBzb21lIHNpdHVhdGlvbnMuXG4gKlxuICogV2UgZGV0ZWN0IHRoZXNlIGJ1Z2d5IGJyb3dzZXJzIGFuZCBzZXQgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYCB0byBgZmFsc2VgIHNvIHRoZXkgd2lsbFxuICogZ2V0IHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24sIHdoaWNoIGlzIHNsb3dlciBidXQgd2lsbCB3b3JrIGNvcnJlY3RseS5cbiAqL1xuQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgPSAoZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIoMClcbiAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYnVmKVxuICAgIGFyci5mb28gPSBmdW5jdGlvbiAoKSB7IHJldHVybiA0MiB9XG4gICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDIgJiYgLy8gdHlwZWQgYXJyYXkgaW5zdGFuY2VzIGNhbiBiZSBhdWdtZW50ZWRcbiAgICAgICAgdHlwZW9mIGFyci5zdWJhcnJheSA9PT0gJ2Z1bmN0aW9uJyAmJiAvLyBjaHJvbWUgOS0xMCBsYWNrIGBzdWJhcnJheWBcbiAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMSkuc3ViYXJyYXkoMSwgMSkuYnl0ZUxlbmd0aCA9PT0gMCAvLyBpZTEwIGhhcyBicm9rZW4gYHN1YmFycmF5YFxuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn0pKClcblxuLyoqXG4gKiBDbGFzczogQnVmZmVyXG4gKiA9PT09PT09PT09PT09XG4gKlxuICogVGhlIEJ1ZmZlciBjb25zdHJ1Y3RvciByZXR1cm5zIGluc3RhbmNlcyBvZiBgVWludDhBcnJheWAgdGhhdCBhcmUgYXVnbWVudGVkXG4gKiB3aXRoIGZ1bmN0aW9uIHByb3BlcnRpZXMgZm9yIGFsbCB0aGUgbm9kZSBgQnVmZmVyYCBBUEkgZnVuY3Rpb25zLiBXZSB1c2VcbiAqIGBVaW50OEFycmF5YCBzbyB0aGF0IHNxdWFyZSBicmFja2V0IG5vdGF0aW9uIHdvcmtzIGFzIGV4cGVjdGVkIC0tIGl0IHJldHVybnNcbiAqIGEgc2luZ2xlIG9jdGV0LlxuICpcbiAqIEJ5IGF1Z21lbnRpbmcgdGhlIGluc3RhbmNlcywgd2UgY2FuIGF2b2lkIG1vZGlmeWluZyB0aGUgYFVpbnQ4QXJyYXlgXG4gKiBwcm90b3R5cGUuXG4gKi9cbmZ1bmN0aW9uIEJ1ZmZlciAoYXJnKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKSB7XG4gICAgLy8gQXZvaWQgZ29pbmcgdGhyb3VnaCBhbiBBcmd1bWVudHNBZGFwdG9yVHJhbXBvbGluZSBpbiB0aGUgY29tbW9uIGNhc2UuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSByZXR1cm4gbmV3IEJ1ZmZlcihhcmcsIGFyZ3VtZW50c1sxXSlcbiAgICByZXR1cm4gbmV3IEJ1ZmZlcihhcmcpXG4gIH1cblxuICB0aGlzLmxlbmd0aCA9IDBcbiAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWRcblxuICAvLyBDb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZyb21OdW1iZXIodGhpcywgYXJnKVxuICB9XG5cbiAgLy8gU2xpZ2h0bHkgbGVzcyBjb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZyb21TdHJpbmcodGhpcywgYXJnLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6ICd1dGY4JylcbiAgfVxuXG4gIC8vIFVudXN1YWwuXG4gIHJldHVybiBmcm9tT2JqZWN0KHRoaXMsIGFyZylcbn1cblxuZnVuY3Rpb24gZnJvbU51bWJlciAodGhhdCwgbGVuZ3RoKSB7XG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGggPCAwID8gMCA6IGNoZWNrZWQobGVuZ3RoKSB8IDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGF0W2ldID0gMFxuICAgIH1cbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tU3RyaW5nICh0aGF0LCBzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnIHx8IGVuY29kaW5nID09PSAnJykgZW5jb2RpbmcgPSAndXRmOCdcblxuICAvLyBBc3N1bXB0aW9uOiBieXRlTGVuZ3RoKCkgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cyA8IGtNYXhMZW5ndGguXG4gIHZhciBsZW5ndGggPSBieXRlTGVuZ3RoKHN0cmluZywgZW5jb2RpbmcpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuXG4gIHRoYXQud3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbU9iamVjdCAodGhhdCwgb2JqZWN0KSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIob2JqZWN0KSkgcmV0dXJuIGZyb21CdWZmZXIodGhhdCwgb2JqZWN0KVxuXG4gIGlmIChpc0FycmF5KG9iamVjdCkpIHJldHVybiBmcm9tQXJyYXkodGhhdCwgb2JqZWN0KVxuXG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3RhcnQgd2l0aCBudW1iZXIsIGJ1ZmZlciwgYXJyYXkgb3Igc3RyaW5nJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIG9iamVjdC5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgIHJldHVybiBmcm9tVHlwZWRBcnJheSh0aGF0LCBvYmplY3QpXG4gIH1cblxuICBpZiAob2JqZWN0Lmxlbmd0aCkgcmV0dXJuIGZyb21BcnJheUxpa2UodGhhdCwgb2JqZWN0KVxuXG4gIHJldHVybiBmcm9tSnNvbk9iamVjdCh0aGF0LCBvYmplY3QpXG59XG5cbmZ1bmN0aW9uIGZyb21CdWZmZXIgKHRoYXQsIGJ1ZmZlcikge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChidWZmZXIubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgYnVmZmVyLmNvcHkodGhhdCwgMCwgMCwgbGVuZ3RoKVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXkgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBjaGVja2VkKGFycmF5Lmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG4vLyBEdXBsaWNhdGUgb2YgZnJvbUFycmF5KCkgdG8ga2VlcCBmcm9tQXJyYXkoKSBtb25vbW9ycGhpYy5cbmZ1bmN0aW9uIGZyb21UeXBlZEFycmF5ICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICAvLyBUcnVuY2F0aW5nIHRoZSBlbGVtZW50cyBpcyBwcm9iYWJseSBub3Qgd2hhdCBwZW9wbGUgZXhwZWN0IGZyb20gdHlwZWRcbiAgLy8gYXJyYXlzIHdpdGggQllURVNfUEVSX0VMRU1FTlQgPiAxIGJ1dCBpdCdzIGNvbXBhdGlibGUgd2l0aCB0aGUgYmVoYXZpb3JcbiAgLy8gb2YgdGhlIG9sZCBCdWZmZXIgY29uc3RydWN0b3IuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlMaWtlICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLy8gRGVzZXJpYWxpemUgeyB0eXBlOiAnQnVmZmVyJywgZGF0YTogWzEsMiwzLC4uLl0gfSBpbnRvIGEgQnVmZmVyIG9iamVjdC5cbi8vIFJldHVybnMgYSB6ZXJvLWxlbmd0aCBidWZmZXIgZm9yIGlucHV0cyB0aGF0IGRvbid0IGNvbmZvcm0gdG8gdGhlIHNwZWMuXG5mdW5jdGlvbiBmcm9tSnNvbk9iamVjdCAodGhhdCwgb2JqZWN0KSB7XG4gIHZhciBhcnJheVxuICB2YXIgbGVuZ3RoID0gMFxuXG4gIGlmIChvYmplY3QudHlwZSA9PT0gJ0J1ZmZlcicgJiYgaXNBcnJheShvYmplY3QuZGF0YSkpIHtcbiAgICBhcnJheSA9IG9iamVjdC5kYXRhXG4gICAgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB9XG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGFsbG9jYXRlICh0aGF0LCBsZW5ndGgpIHtcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgdGhhdCA9IEJ1ZmZlci5fYXVnbWVudChuZXcgVWludDhBcnJheShsZW5ndGgpKVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICB0aGF0Lmxlbmd0aCA9IGxlbmd0aFxuICAgIHRoYXQuX2lzQnVmZmVyID0gdHJ1ZVxuICB9XG5cbiAgdmFyIGZyb21Qb29sID0gbGVuZ3RoICE9PSAwICYmIGxlbmd0aCA8PSBCdWZmZXIucG9vbFNpemUgPj4+IDFcbiAgaWYgKGZyb21Qb29sKSB0aGF0LnBhcmVudCA9IHJvb3RQYXJlbnRcblxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBjaGVja2VkIChsZW5ndGgpIHtcbiAgLy8gTm90ZTogY2Fubm90IHVzZSBgbGVuZ3RoIDwga01heExlbmd0aGAgaGVyZSBiZWNhdXNlIHRoYXQgZmFpbHMgd2hlblxuICAvLyBsZW5ndGggaXMgTmFOICh3aGljaCBpcyBvdGhlcndpc2UgY29lcmNlZCB0byB6ZXJvLilcbiAgaWYgKGxlbmd0aCA+PSBrTWF4TGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ3NpemU6IDB4JyArIGtNYXhMZW5ndGgudG9TdHJpbmcoMTYpICsgJyBieXRlcycpXG4gIH1cbiAgcmV0dXJuIGxlbmd0aCB8IDBcbn1cblxuZnVuY3Rpb24gU2xvd0J1ZmZlciAoc3ViamVjdCwgZW5jb2RpbmcpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFNsb3dCdWZmZXIpKSByZXR1cm4gbmV3IFNsb3dCdWZmZXIoc3ViamVjdCwgZW5jb2RpbmcpXG5cbiAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIoc3ViamVjdCwgZW5jb2RpbmcpXG4gIGRlbGV0ZSBidWYucGFyZW50XG4gIHJldHVybiBidWZcbn1cblxuQnVmZmVyLmlzQnVmZmVyID0gZnVuY3Rpb24gaXNCdWZmZXIgKGIpIHtcbiAgcmV0dXJuICEhKGIgIT0gbnVsbCAmJiBiLl9pc0J1ZmZlcilcbn1cblxuQnVmZmVyLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlIChhLCBiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGEpIHx8ICFCdWZmZXIuaXNCdWZmZXIoYikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudHMgbXVzdCBiZSBCdWZmZXJzJylcbiAgfVxuXG4gIGlmIChhID09PSBiKSByZXR1cm4gMFxuXG4gIHZhciB4ID0gYS5sZW5ndGhcbiAgdmFyIHkgPSBiLmxlbmd0aFxuXG4gIHZhciBpID0gMFxuICB2YXIgbGVuID0gTWF0aC5taW4oeCwgeSlcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkgYnJlYWtcblxuICAgICsraVxuICB9XG5cbiAgaWYgKGkgIT09IGxlbikge1xuICAgIHggPSBhW2ldXG4gICAgeSA9IGJbaV1cbiAgfVxuXG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xXG4gIGlmICh5IDwgeCkgcmV0dXJuIDFcbiAgcmV0dXJuIDBcbn1cblxuQnVmZmVyLmlzRW5jb2RpbmcgPSBmdW5jdGlvbiBpc0VuY29kaW5nIChlbmNvZGluZykge1xuICBzd2l0Y2ggKFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6XG4gICAgY2FzZSAndXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdiaW5hcnknOlxuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgY2FzZSAncmF3JzpcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0dXJuIHRydWVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQnVmZmVyLmNvbmNhdCA9IGZ1bmN0aW9uIGNvbmNhdCAobGlzdCwgbGVuZ3RoKSB7XG4gIGlmICghaXNBcnJheShsaXN0KSkgdGhyb3cgbmV3IFR5cGVFcnJvcignbGlzdCBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMuJylcblxuICBpZiAobGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbmV3IEJ1ZmZlcigwKVxuICB9IGVsc2UgaWYgKGxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGxpc3RbMF1cbiAgfVxuXG4gIHZhciBpXG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGxlbmd0aCA9IDBcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgbGVuZ3RoICs9IGxpc3RbaV0ubGVuZ3RoXG4gICAgfVxuICB9XG5cbiAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIobGVuZ3RoKVxuICB2YXIgcG9zID0gMFxuICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gbGlzdFtpXVxuICAgIGl0ZW0uY29weShidWYsIHBvcylcbiAgICBwb3MgKz0gaXRlbS5sZW5ndGhcbiAgfVxuICByZXR1cm4gYnVmXG59XG5cbmZ1bmN0aW9uIGJ5dGVMZW5ndGggKHN0cmluZywgZW5jb2RpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSBzdHJpbmcgPSBTdHJpbmcoc3RyaW5nKVxuXG4gIGlmIChzdHJpbmcubGVuZ3RoID09PSAwKSByZXR1cm4gMFxuXG4gIHN3aXRjaCAoZW5jb2RpbmcgfHwgJ3V0ZjgnKSB7XG4gICAgY2FzZSAnYXNjaWknOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAncmF3JzpcbiAgICAgIHJldHVybiBzdHJpbmcubGVuZ3RoXG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldHVybiBzdHJpbmcubGVuZ3RoICogMlxuICAgIGNhc2UgJ2hleCc6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aCA+Pj4gMVxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgIHJldHVybiB1dGY4VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICB9XG59XG5CdWZmZXIuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGhcblxuLy8gcHJlLXNldCBmb3IgdmFsdWVzIHRoYXQgbWF5IGV4aXN0IGluIHRoZSBmdXR1cmVcbkJ1ZmZlci5wcm90b3R5cGUubGVuZ3RoID0gdW5kZWZpbmVkXG5CdWZmZXIucHJvdG90eXBlLnBhcmVudCA9IHVuZGVmaW5lZFxuXG4vLyB0b1N0cmluZyhlbmNvZGluZywgc3RhcnQ9MCwgZW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcgKGVuY29kaW5nLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG5cbiAgc3RhcnQgPSBzdGFydCB8IDBcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID09PSBJbmZpbml0eSA/IHRoaXMubGVuZ3RoIDogZW5kIHwgMFxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG4gIGlmIChzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoZW5kID4gdGhpcy5sZW5ndGgpIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmIChlbmQgPD0gc3RhcnQpIHJldHVybiAnJ1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGJpbmFyeVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIHJldHVybiBiYXNlNjRTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9IChlbmNvZGluZyArICcnKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uIGVxdWFscyAoYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlcicpXG4gIGlmICh0aGlzID09PSBiKSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gQnVmZmVyLmNvbXBhcmUodGhpcywgYikgPT09IDBcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24gaW5zcGVjdCAoKSB7XG4gIHZhciBzdHIgPSAnJ1xuICB2YXIgbWF4ID0gZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFU1xuICBpZiAodGhpcy5sZW5ndGggPiAwKSB7XG4gICAgc3RyID0gdGhpcy50b1N0cmluZygnaGV4JywgMCwgbWF4KS5tYXRjaCgvLnsyfS9nKS5qb2luKCcgJylcbiAgICBpZiAodGhpcy5sZW5ndGggPiBtYXgpIHN0ciArPSAnIC4uLiAnXG4gIH1cbiAgcmV0dXJuICc8QnVmZmVyICcgKyBzdHIgKyAnPidcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlcicpXG4gIGlmICh0aGlzID09PSBiKSByZXR1cm4gMFxuICByZXR1cm4gQnVmZmVyLmNvbXBhcmUodGhpcywgYilcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0KSB7XG4gIGlmIChieXRlT2Zmc2V0ID4gMHg3ZmZmZmZmZikgYnl0ZU9mZnNldCA9IDB4N2ZmZmZmZmZcbiAgZWxzZSBpZiAoYnl0ZU9mZnNldCA8IC0weDgwMDAwMDAwKSBieXRlT2Zmc2V0ID0gLTB4ODAwMDAwMDBcbiAgYnl0ZU9mZnNldCA+Pj0gMFxuXG4gIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIC0xXG4gIGlmIChieXRlT2Zmc2V0ID49IHRoaXMubGVuZ3RoKSByZXR1cm4gLTFcblxuICAvLyBOZWdhdGl2ZSBvZmZzZXRzIHN0YXJ0IGZyb20gdGhlIGVuZCBvZiB0aGUgYnVmZmVyXG4gIGlmIChieXRlT2Zmc2V0IDwgMCkgYnl0ZU9mZnNldCA9IE1hdGgubWF4KHRoaXMubGVuZ3RoICsgYnl0ZU9mZnNldCwgMClcblxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMCkgcmV0dXJuIC0xIC8vIHNwZWNpYWwgY2FzZTogbG9va2luZyBmb3IgZW1wdHkgc3RyaW5nIGFsd2F5cyBmYWlsc1xuICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLCB2YWwsIGJ5dGVPZmZzZXQpXG4gIH1cbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWwpKSB7XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQpXG4gIH1cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUICYmIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKHRoaXMsIFsgdmFsIF0sIGJ5dGVPZmZzZXQpXG4gIH1cblxuICBmdW5jdGlvbiBhcnJheUluZGV4T2YgKGFyciwgdmFsLCBieXRlT2Zmc2V0KSB7XG4gICAgdmFyIGZvdW5kSW5kZXggPSAtMVxuICAgIGZvciAodmFyIGkgPSAwOyBieXRlT2Zmc2V0ICsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFycltieXRlT2Zmc2V0ICsgaV0gPT09IHZhbFtmb3VuZEluZGV4ID09PSAtMSA/IDAgOiBpIC0gZm91bmRJbmRleF0pIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggPT09IC0xKSBmb3VuZEluZGV4ID0gaVxuICAgICAgICBpZiAoaSAtIGZvdW5kSW5kZXggKyAxID09PSB2YWwubGVuZ3RoKSByZXR1cm4gYnl0ZU9mZnNldCArIGZvdW5kSW5kZXhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvdW5kSW5kZXggPSAtMVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTFcbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlcicpXG59XG5cbi8vIGBnZXRgIHdpbGwgYmUgcmVtb3ZlZCBpbiBOb2RlIDAuMTMrXG5CdWZmZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIGdldCAob2Zmc2V0KSB7XG4gIGNvbnNvbGUubG9nKCcuZ2V0KCkgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHVzaW5nIGFycmF5IGluZGV4ZXMgaW5zdGVhZC4nKVxuICByZXR1cm4gdGhpcy5yZWFkVUludDgob2Zmc2V0KVxufVxuXG4vLyBgc2V0YCB3aWxsIGJlIHJlbW92ZWQgaW4gTm9kZSAwLjEzK1xuQnVmZmVyLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiBzZXQgKHYsIG9mZnNldCkge1xuICBjb25zb2xlLmxvZygnLnNldCgpIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB1c2luZyBhcnJheSBpbmRleGVzIGluc3RlYWQuJylcbiAgcmV0dXJuIHRoaXMud3JpdGVVSW50OCh2LCBvZmZzZXQpXG59XG5cbmZ1bmN0aW9uIGhleFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgb2Zmc2V0ID0gTnVtYmVyKG9mZnNldCkgfHwgMFxuICB2YXIgcmVtYWluaW5nID0gYnVmLmxlbmd0aCAtIG9mZnNldFxuICBpZiAoIWxlbmd0aCkge1xuICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICB9IGVsc2Uge1xuICAgIGxlbmd0aCA9IE51bWJlcihsZW5ndGgpXG4gICAgaWYgKGxlbmd0aCA+IHJlbWFpbmluZykge1xuICAgICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gICAgfVxuICB9XG5cbiAgLy8gbXVzdCBiZSBhbiBldmVuIG51bWJlciBvZiBkaWdpdHNcbiAgdmFyIHN0ckxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKHN0ckxlbiAlIDIgIT09IDApIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBhcnNlZCA9IHBhcnNlSW50KHN0cmluZy5zdWJzdHIoaSAqIDIsIDIpLCAxNilcbiAgICBpZiAoaXNOYU4ocGFyc2VkKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhleCBzdHJpbmcnKVxuICAgIGJ1ZltvZmZzZXQgKyBpXSA9IHBhcnNlZFxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIHV0ZjhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjhUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGFzY2lpV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihhc2NpaVRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYmluYXJ5V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYXNjaWlXcml0ZShidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGJhc2U2NFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYmFzZTY0VG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiB1Y3MyV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGYxNmxlVG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gd3JpdGUgKHN0cmluZywgb2Zmc2V0LCBsZW5ndGgsIGVuY29kaW5nKSB7XG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcpXG4gIGlmIChvZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIGVuY29kaW5nKVxuICB9IGVsc2UgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvZmZzZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZW5jb2RpbmcgPSBvZmZzZXRcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgb2Zmc2V0WywgbGVuZ3RoXVssIGVuY29kaW5nXSlcbiAgfSBlbHNlIGlmIChpc0Zpbml0ZShvZmZzZXQpKSB7XG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICAgIGlmIChpc0Zpbml0ZShsZW5ndGgpKSB7XG4gICAgICBsZW5ndGggPSBsZW5ndGggfCAwXG4gICAgICBpZiAoZW5jb2RpbmcgPT09IHVuZGVmaW5lZCkgZW5jb2RpbmcgPSAndXRmOCdcbiAgICB9IGVsc2Uge1xuICAgICAgZW5jb2RpbmcgPSBsZW5ndGhcbiAgICAgIGxlbmd0aCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgLy8gbGVnYWN5IHdyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldCwgbGVuZ3RoKSAtIHJlbW92ZSBpbiB2MC4xM1xuICB9IGVsc2Uge1xuICAgIHZhciBzd2FwID0gZW5jb2RpbmdcbiAgICBlbmNvZGluZyA9IG9mZnNldFxuICAgIG9mZnNldCA9IGxlbmd0aCB8IDBcbiAgICBsZW5ndGggPSBzd2FwXG4gIH1cblxuICB2YXIgcmVtYWluaW5nID0gdGhpcy5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkIHx8IGxlbmd0aCA+IHJlbWFpbmluZykgbGVuZ3RoID0gcmVtYWluaW5nXG5cbiAgaWYgKChzdHJpbmcubGVuZ3RoID4gMCAmJiAobGVuZ3RoIDwgMCB8fCBvZmZzZXQgPCAwKSkgfHwgb2Zmc2V0ID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignYXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMnKVxuICB9XG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcblxuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuICBmb3IgKDs7KSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGJpbmFyeVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIC8vIFdhcm5pbmc6IG1heExlbmd0aCBub3QgdGFrZW4gaW50byBhY2NvdW50IGluIGJhc2U2NFdyaXRlXG4gICAgICAgIHJldHVybiBiYXNlNjRXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdWNzMldyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTiAoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0J1ZmZlcicsXG4gICAgZGF0YTogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyIHx8IHRoaXMsIDApXG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICBpZiAoc3RhcnQgPT09IDAgJiYgZW5kID09PSBidWYubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1ZilcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmLnNsaWNlKHN0YXJ0LCBlbmQpKVxuICB9XG59XG5cbmZ1bmN0aW9uIHV0ZjhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXMgPSAnJ1xuICB2YXIgdG1wID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgaWYgKGJ1ZltpXSA8PSAweDdGKSB7XG4gICAgICByZXMgKz0gZGVjb2RlVXRmOENoYXIodG1wKSArIFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICAgICAgdG1wID0gJydcbiAgICB9IGVsc2Uge1xuICAgICAgdG1wICs9ICclJyArIGJ1ZltpXS50b1N0cmluZygxNilcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzICsgZGVjb2RlVXRmOENoYXIodG1wKVxufVxuXG5mdW5jdGlvbiBhc2NpaVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBiaW5hcnlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG5cbiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCB8fCBlbmQgPCAwIHx8IGVuZCA+IGxlbikgZW5kID0gbGVuXG5cbiAgdmFyIG91dCA9ICcnXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgb3V0ICs9IHRvSGV4KGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBieXRlcyA9IGJ1Zi5zbGljZShzdGFydCwgZW5kKVxuICB2YXIgcmVzID0gJydcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldICsgYnl0ZXNbaSArIDFdICogMjU2KVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uIHNsaWNlIChzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBzdGFydCA9IH5+c3RhcnRcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB+fmVuZFxuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCArPSBsZW5cbiAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgfSBlbHNlIGlmIChzdGFydCA+IGxlbikge1xuICAgIHN0YXJ0ID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5cbiAgICBpZiAoZW5kIDwgMCkgZW5kID0gMFxuICB9IGVsc2UgaWYgKGVuZCA+IGxlbikge1xuICAgIGVuZCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIHZhciBuZXdCdWZcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgbmV3QnVmID0gQnVmZmVyLl9hdWdtZW50KHRoaXMuc3ViYXJyYXkoc3RhcnQsIGVuZCkpXG4gIH0gZWxzZSB7XG4gICAgdmFyIHNsaWNlTGVuID0gZW5kIC0gc3RhcnRcbiAgICBuZXdCdWYgPSBuZXcgQnVmZmVyKHNsaWNlTGVuLCB1bmRlZmluZWQpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUxlbjsgaSsrKSB7XG4gICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH1cblxuICBpZiAobmV3QnVmLmxlbmd0aCkgbmV3QnVmLnBhcmVudCA9IHRoaXMucGFyZW50IHx8IHRoaXNcblxuICByZXR1cm4gbmV3QnVmXG59XG5cbi8qXG4gKiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGJ1ZmZlciBpc24ndCB0cnlpbmcgdG8gd3JpdGUgb3V0IG9mIGJvdW5kcy5cbiAqL1xuZnVuY3Rpb24gY2hlY2tPZmZzZXQgKG9mZnNldCwgZXh0LCBsZW5ndGgpIHtcbiAgaWYgKChvZmZzZXQgJSAxKSAhPT0gMCB8fCBvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb2Zmc2V0IGlzIG5vdCB1aW50JylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEUgPSBmdW5jdGlvbiByZWFkVUludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkUgPSBmdW5jdGlvbiByZWFkVUludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuICB9XG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXVxuICB2YXIgbXVsID0gMVxuICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4ID0gZnVuY3Rpb24gcmVhZFVJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDgpIHwgdGhpc1tvZmZzZXQgKyAxXVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAoKHRoaXNbb2Zmc2V0XSkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArXG4gICAgICAodGhpc1tvZmZzZXQgKyAzXSAqIDB4MTAwMDAwMClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSAqIDB4MTAwMDAwMCkgK1xuICAgICgodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICB0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRMRSA9IGZ1bmN0aW9uIHJlYWRJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRSA9IGZ1bmN0aW9uIHJlYWRJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aFxuICB2YXIgbXVsID0gMVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWldXG4gIHdoaWxlIChpID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0taV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4ID0gZnVuY3Rpb24gcmVhZEludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgaWYgKCEodGhpc1tvZmZzZXRdICYgMHg4MCkpIHJldHVybiAodGhpc1tvZmZzZXRdKVxuICByZXR1cm4gKCgweGZmIC0gdGhpc1tvZmZzZXRdICsgMSkgKiAtMSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkUgPSBmdW5jdGlvbiByZWFkSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAxXSB8ICh0aGlzW29mZnNldF0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFID0gZnVuY3Rpb24gcmVhZEludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDNdIDw8IDI0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFID0gZnVuY3Rpb24gcmVhZEludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCAyNCkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFID0gZnVuY3Rpb24gcmVhZEZsb2F0TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gcmVhZEZsb2F0QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEUgPSBmdW5jdGlvbiByZWFkRG91YmxlTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDUyLCA4KVxufVxuXG5mdW5jdGlvbiBjaGVja0ludCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2J1ZmZlciBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJylcbiAgaWYgKHZhbHVlID4gbWF4IHx8IHZhbHVlIDwgbWluKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndmFsdWUgaXMgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignaW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlVUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCksIDApXG5cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlVUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCksIDApXG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVVSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweGZmLCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDE2IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDIpOyBpIDwgajsgaSsrKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlICYgKDB4ZmYgPDwgKDggKiAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSkpKSA+Pj5cbiAgICAgIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpICogOFxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDMyIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCA0KTsgaSA8IGo7IGkrKykge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSA+Pj4gKGxpdHRsZUVuZGlhbiA/IGkgOiAzIC0gaSkgKiA4KSAmIDB4ZmZcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSAwXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSB2YWx1ZSA8IDAgPyAxIDogMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50QkUgPSBmdW5jdGlvbiB3cml0ZUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IHZhbHVlIDwgMCA/IDEgOiAwXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDggPSBmdW5jdGlvbiB3cml0ZUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHg3ZiwgLTB4ODApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmICsgdmFsdWUgKyAxXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbmZ1bmN0aW9uIGNoZWNrSUVFRTc1NCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3ZhbHVlIGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG4gIGlmIChvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignaW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuZnVuY3Rpb24gd3JpdGVGbG9hdCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA0LCAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LCAtMy40MDI4MjM0NjYzODUyODg2ZSszOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCAyMywgNClcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0TEUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRCRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiB3cml0ZURvdWJsZSAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA4LCAxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCwgLTEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDUyLCA4KVxuICByZXR1cm4gb2Zmc2V0ICsgOFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVCRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbi8vIGNvcHkodGFyZ2V0QnVmZmVyLCB0YXJnZXRTdGFydD0wLCBzb3VyY2VTdGFydD0wLCBzb3VyY2VFbmQ9YnVmZmVyLmxlbmd0aClcbkJ1ZmZlci5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkgKHRhcmdldCwgdGFyZ2V0U3RhcnQsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kICYmIGVuZCAhPT0gMCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldFN0YXJ0ID49IHRhcmdldC5sZW5ndGgpIHRhcmdldFN0YXJ0ID0gdGFyZ2V0Lmxlbmd0aFxuICBpZiAoIXRhcmdldFN0YXJ0KSB0YXJnZXRTdGFydCA9IDBcbiAgaWYgKGVuZCA+IDAgJiYgZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgLy8gQ29weSAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm4gMFxuICBpZiAodGFyZ2V0Lmxlbmd0aCA9PT0gMCB8fCB0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBGYXRhbCBlcnJvciBjb25kaXRpb25zXG4gIGlmICh0YXJnZXRTdGFydCA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIH1cbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+PSB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZVN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICBpZiAoZW5kIDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZUVuZCBvdXQgb2YgYm91bmRzJylcblxuICAvLyBBcmUgd2Ugb29iP1xuICBpZiAoZW5kID4gdGhpcy5sZW5ndGgpIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgPCBlbmQgLSBzdGFydCkge1xuICAgIGVuZCA9IHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCArIHN0YXJ0XG4gIH1cblxuICB2YXIgbGVuID0gZW5kIC0gc3RhcnRcblxuICBpZiAobGVuIDwgMTAwMCB8fCAhQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQuX3NldCh0aGlzLnN1YmFycmF5KHN0YXJ0LCBzdGFydCArIGxlbiksIHRhcmdldFN0YXJ0KVxuICB9XG5cbiAgcmV0dXJuIGxlblxufVxuXG4vLyBmaWxsKHZhbHVlLCBzdGFydD0wLCBlbmQ9YnVmZmVyLmxlbmd0aClcbkJ1ZmZlci5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uIGZpbGwgKHZhbHVlLCBzdGFydCwgZW5kKSB7XG4gIGlmICghdmFsdWUpIHZhbHVlID0gMFxuICBpZiAoIXN0YXJ0KSBzdGFydCA9IDBcbiAgaWYgKCFlbmQpIGVuZCA9IHRoaXMubGVuZ3RoXG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZW5kIDwgc3RhcnQnKVxuXG4gIC8vIEZpbGwgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuXG4gIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+PSB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3N0YXJ0IG91dCBvZiBib3VuZHMnKVxuICBpZiAoZW5kIDwgMCB8fCBlbmQgPiB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2VuZCBvdXQgb2YgYm91bmRzJylcblxuICB2YXIgaVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgIHRoaXNbaV0gPSB2YWx1ZVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgYnl0ZXMgPSB1dGY4VG9CeXRlcyh2YWx1ZS50b1N0cmluZygpKVxuICAgIHZhciBsZW4gPSBieXRlcy5sZW5ndGhcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICB0aGlzW2ldID0gYnl0ZXNbaSAlIGxlbl1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpc1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYEFycmF5QnVmZmVyYCB3aXRoIHRoZSAqY29waWVkKiBtZW1vcnkgb2YgdGhlIGJ1ZmZlciBpbnN0YW5jZS5cbiAqIEFkZGVkIGluIE5vZGUgMC4xMi4gT25seSBhdmFpbGFibGUgaW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IEFycmF5QnVmZmVyLlxuICovXG5CdWZmZXIucHJvdG90eXBlLnRvQXJyYXlCdWZmZXIgPSBmdW5jdGlvbiB0b0FycmF5QnVmZmVyICgpIHtcbiAgaWYgKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgICAgcmV0dXJuIChuZXcgQnVmZmVyKHRoaXMpKS5idWZmZXJcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHRoaXMubGVuZ3RoKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGJ1Zi5sZW5ndGg7IGkgPCBsZW47IGkgKz0gMSkge1xuICAgICAgICBidWZbaV0gPSB0aGlzW2ldXG4gICAgICB9XG4gICAgICByZXR1cm4gYnVmLmJ1ZmZlclxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdCdWZmZXIudG9BcnJheUJ1ZmZlciBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlcicpXG4gIH1cbn1cblxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PVxuXG52YXIgQlAgPSBCdWZmZXIucHJvdG90eXBlXG5cbi8qKlxuICogQXVnbWVudCBhIFVpbnQ4QXJyYXkgKmluc3RhbmNlKiAobm90IHRoZSBVaW50OEFycmF5IGNsYXNzISkgd2l0aCBCdWZmZXIgbWV0aG9kc1xuICovXG5CdWZmZXIuX2F1Z21lbnQgPSBmdW5jdGlvbiBfYXVnbWVudCAoYXJyKSB7XG4gIGFyci5jb25zdHJ1Y3RvciA9IEJ1ZmZlclxuICBhcnIuX2lzQnVmZmVyID0gdHJ1ZVxuXG4gIC8vIHNhdmUgcmVmZXJlbmNlIHRvIG9yaWdpbmFsIFVpbnQ4QXJyYXkgc2V0IG1ldGhvZCBiZWZvcmUgb3ZlcndyaXRpbmdcbiAgYXJyLl9zZXQgPSBhcnIuc2V0XG5cbiAgLy8gZGVwcmVjYXRlZCwgd2lsbCBiZSByZW1vdmVkIGluIG5vZGUgMC4xMytcbiAgYXJyLmdldCA9IEJQLmdldFxuICBhcnIuc2V0ID0gQlAuc2V0XG5cbiAgYXJyLndyaXRlID0gQlAud3JpdGVcbiAgYXJyLnRvU3RyaW5nID0gQlAudG9TdHJpbmdcbiAgYXJyLnRvTG9jYWxlU3RyaW5nID0gQlAudG9TdHJpbmdcbiAgYXJyLnRvSlNPTiA9IEJQLnRvSlNPTlxuICBhcnIuZXF1YWxzID0gQlAuZXF1YWxzXG4gIGFyci5jb21wYXJlID0gQlAuY29tcGFyZVxuICBhcnIuaW5kZXhPZiA9IEJQLmluZGV4T2ZcbiAgYXJyLmNvcHkgPSBCUC5jb3B5XG4gIGFyci5zbGljZSA9IEJQLnNsaWNlXG4gIGFyci5yZWFkVUludExFID0gQlAucmVhZFVJbnRMRVxuICBhcnIucmVhZFVJbnRCRSA9IEJQLnJlYWRVSW50QkVcbiAgYXJyLnJlYWRVSW50OCA9IEJQLnJlYWRVSW50OFxuICBhcnIucmVhZFVJbnQxNkxFID0gQlAucmVhZFVJbnQxNkxFXG4gIGFyci5yZWFkVUludDE2QkUgPSBCUC5yZWFkVUludDE2QkVcbiAgYXJyLnJlYWRVSW50MzJMRSA9IEJQLnJlYWRVSW50MzJMRVxuICBhcnIucmVhZFVJbnQzMkJFID0gQlAucmVhZFVJbnQzMkJFXG4gIGFyci5yZWFkSW50TEUgPSBCUC5yZWFkSW50TEVcbiAgYXJyLnJlYWRJbnRCRSA9IEJQLnJlYWRJbnRCRVxuICBhcnIucmVhZEludDggPSBCUC5yZWFkSW50OFxuICBhcnIucmVhZEludDE2TEUgPSBCUC5yZWFkSW50MTZMRVxuICBhcnIucmVhZEludDE2QkUgPSBCUC5yZWFkSW50MTZCRVxuICBhcnIucmVhZEludDMyTEUgPSBCUC5yZWFkSW50MzJMRVxuICBhcnIucmVhZEludDMyQkUgPSBCUC5yZWFkSW50MzJCRVxuICBhcnIucmVhZEZsb2F0TEUgPSBCUC5yZWFkRmxvYXRMRVxuICBhcnIucmVhZEZsb2F0QkUgPSBCUC5yZWFkRmxvYXRCRVxuICBhcnIucmVhZERvdWJsZUxFID0gQlAucmVhZERvdWJsZUxFXG4gIGFyci5yZWFkRG91YmxlQkUgPSBCUC5yZWFkRG91YmxlQkVcbiAgYXJyLndyaXRlVUludDggPSBCUC53cml0ZVVJbnQ4XG4gIGFyci53cml0ZVVJbnRMRSA9IEJQLndyaXRlVUludExFXG4gIGFyci53cml0ZVVJbnRCRSA9IEJQLndyaXRlVUludEJFXG4gIGFyci53cml0ZVVJbnQxNkxFID0gQlAud3JpdGVVSW50MTZMRVxuICBhcnIud3JpdGVVSW50MTZCRSA9IEJQLndyaXRlVUludDE2QkVcbiAgYXJyLndyaXRlVUludDMyTEUgPSBCUC53cml0ZVVJbnQzMkxFXG4gIGFyci53cml0ZVVJbnQzMkJFID0gQlAud3JpdGVVSW50MzJCRVxuICBhcnIud3JpdGVJbnRMRSA9IEJQLndyaXRlSW50TEVcbiAgYXJyLndyaXRlSW50QkUgPSBCUC53cml0ZUludEJFXG4gIGFyci53cml0ZUludDggPSBCUC53cml0ZUludDhcbiAgYXJyLndyaXRlSW50MTZMRSA9IEJQLndyaXRlSW50MTZMRVxuICBhcnIud3JpdGVJbnQxNkJFID0gQlAud3JpdGVJbnQxNkJFXG4gIGFyci53cml0ZUludDMyTEUgPSBCUC53cml0ZUludDMyTEVcbiAgYXJyLndyaXRlSW50MzJCRSA9IEJQLndyaXRlSW50MzJCRVxuICBhcnIud3JpdGVGbG9hdExFID0gQlAud3JpdGVGbG9hdExFXG4gIGFyci53cml0ZUZsb2F0QkUgPSBCUC53cml0ZUZsb2F0QkVcbiAgYXJyLndyaXRlRG91YmxlTEUgPSBCUC53cml0ZURvdWJsZUxFXG4gIGFyci53cml0ZURvdWJsZUJFID0gQlAud3JpdGVEb3VibGVCRVxuICBhcnIuZmlsbCA9IEJQLmZpbGxcbiAgYXJyLmluc3BlY3QgPSBCUC5pbnNwZWN0XG4gIGFyci50b0FycmF5QnVmZmVyID0gQlAudG9BcnJheUJ1ZmZlclxuXG4gIHJldHVybiBhcnJcbn1cblxudmFyIElOVkFMSURfQkFTRTY0X1JFID0gL1teK1xcLzAtOUEtelxcLV0vZ1xuXG5mdW5jdGlvbiBiYXNlNjRjbGVhbiAoc3RyKSB7XG4gIC8vIE5vZGUgc3RyaXBzIG91dCBpbnZhbGlkIGNoYXJhY3RlcnMgbGlrZSBcXG4gYW5kIFxcdCBmcm9tIHRoZSBzdHJpbmcsIGJhc2U2NC1qcyBkb2VzIG5vdFxuICBzdHIgPSBzdHJpbmd0cmltKHN0cikucmVwbGFjZShJTlZBTElEX0JBU0U2NF9SRSwgJycpXG4gIC8vIE5vZGUgY29udmVydHMgc3RyaW5ncyB3aXRoIGxlbmd0aCA8IDIgdG8gJydcbiAgaWYgKHN0ci5sZW5ndGggPCAyKSByZXR1cm4gJydcbiAgLy8gTm9kZSBhbGxvd3MgZm9yIG5vbi1wYWRkZWQgYmFzZTY0IHN0cmluZ3MgKG1pc3NpbmcgdHJhaWxpbmcgPT09KSwgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHdoaWxlIChzdHIubGVuZ3RoICUgNCAhPT0gMCkge1xuICAgIHN0ciA9IHN0ciArICc9J1xuICB9XG4gIHJldHVybiBzdHJcbn1cblxuZnVuY3Rpb24gc3RyaW5ndHJpbSAoc3RyKSB7XG4gIGlmIChzdHIudHJpbSkgcmV0dXJuIHN0ci50cmltKClcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJylcbn1cblxuZnVuY3Rpb24gdG9IZXggKG4pIHtcbiAgaWYgKG4gPCAxNikgcmV0dXJuICcwJyArIG4udG9TdHJpbmcoMTYpXG4gIHJldHVybiBuLnRvU3RyaW5nKDE2KVxufVxuXG5mdW5jdGlvbiB1dGY4VG9CeXRlcyAoc3RyaW5nLCB1bml0cykge1xuICB1bml0cyA9IHVuaXRzIHx8IEluZmluaXR5XG4gIHZhciBjb2RlUG9pbnRcbiAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGhcbiAgdmFyIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gIHZhciBieXRlcyA9IFtdXG4gIHZhciBpID0gMFxuXG4gIGZvciAoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBjb2RlUG9pbnQgPSBzdHJpbmcuY2hhckNvZGVBdChpKVxuXG4gICAgLy8gaXMgc3Vycm9nYXRlIGNvbXBvbmVudFxuICAgIGlmIChjb2RlUG9pbnQgPiAweEQ3RkYgJiYgY29kZVBvaW50IDwgMHhFMDAwKSB7XG4gICAgICAvLyBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKGxlYWRTdXJyb2dhdGUpIHtcbiAgICAgICAgLy8gMiBsZWFkcyBpbiBhIHJvd1xuICAgICAgICBpZiAoY29kZVBvaW50IDwgMHhEQzAwKSB7XG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdmFsaWQgc3Vycm9nYXRlIHBhaXJcbiAgICAgICAgICBjb2RlUG9pbnQgPSBsZWFkU3Vycm9nYXRlIC0gMHhEODAwIDw8IDEwIHwgY29kZVBvaW50IC0gMHhEQzAwIHwgMHgxMDAwMFxuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vIGxlYWQgeWV0XG5cbiAgICAgICAgaWYgKGNvZGVQb2ludCA+IDB4REJGRikge1xuICAgICAgICAgIC8vIHVuZXhwZWN0ZWQgdHJhaWxcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2UgaWYgKGkgKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICAvLyB1bnBhaXJlZCBsZWFkXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB2YWxpZCBsZWFkXG4gICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGxlYWRTdXJyb2dhdGUpIHtcbiAgICAgIC8vIHZhbGlkIGJtcCBjaGFyLCBidXQgbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcbiAgICB9XG5cbiAgICAvLyBlbmNvZGUgdXRmOFxuICAgIGlmIChjb2RlUG9pbnQgPCAweDgwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDEpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goY29kZVBvaW50KVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHg4MDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiB8IDB4QzAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDEwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDMpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgfCAweEUwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDIwMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSA0KSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHgxMiB8IDB4RjAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29kZSBwb2ludCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzXG59XG5cbmZ1bmN0aW9uIGFzY2lpVG9CeXRlcyAoc3RyKSB7XG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIC8vIE5vZGUncyBjb2RlIHNlZW1zIHRvIGJlIGRvaW5nIHRoaXMgYW5kIG5vdCAmIDB4N0YuLlxuICAgIGJ5dGVBcnJheS5wdXNoKHN0ci5jaGFyQ29kZUF0KGkpICYgMHhGRilcbiAgfVxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVUb0J5dGVzIChzdHIsIHVuaXRzKSB7XG4gIHZhciBjLCBoaSwgbG9cbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG5cbiAgICBjID0gc3RyLmNoYXJDb2RlQXQoaSlcbiAgICBoaSA9IGMgPj4gOFxuICAgIGxvID0gYyAlIDI1NlxuICAgIGJ5dGVBcnJheS5wdXNoKGxvKVxuICAgIGJ5dGVBcnJheS5wdXNoKGhpKVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiBiYXNlNjRUb0J5dGVzIChzdHIpIHtcbiAgcmV0dXJuIGJhc2U2NC50b0J5dGVBcnJheShiYXNlNjRjbGVhbihzdHIpKVxufVxuXG5mdW5jdGlvbiBibGl0QnVmZmVyIChzcmMsIGRzdCwgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGlmICgoaSArIG9mZnNldCA+PSBkc3QubGVuZ3RoKSB8fCAoaSA+PSBzcmMubGVuZ3RoKSkgYnJlYWtcbiAgICBkc3RbaSArIG9mZnNldF0gPSBzcmNbaV1cbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiBkZWNvZGVVdGY4Q2hhciAoc3RyKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChzdHIpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RkZGRCkgLy8gVVRGIDggaW52YWxpZCBjaGFyXG4gIH1cbn1cbiIsInZhciBsb29rdXAgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7XG5cbjsoZnVuY3Rpb24gKGV4cG9ydHMpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG4gIHZhciBBcnIgPSAodHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnKVxuICAgID8gVWludDhBcnJheVxuICAgIDogQXJyYXlcblxuXHR2YXIgUExVUyAgID0gJysnLmNoYXJDb2RlQXQoMClcblx0dmFyIFNMQVNIICA9ICcvJy5jaGFyQ29kZUF0KDApXG5cdHZhciBOVU1CRVIgPSAnMCcuY2hhckNvZGVBdCgwKVxuXHR2YXIgTE9XRVIgID0gJ2EnLmNoYXJDb2RlQXQoMClcblx0dmFyIFVQUEVSICA9ICdBJy5jaGFyQ29kZUF0KDApXG5cdHZhciBQTFVTX1VSTF9TQUZFID0gJy0nLmNoYXJDb2RlQXQoMClcblx0dmFyIFNMQVNIX1VSTF9TQUZFID0gJ18nLmNoYXJDb2RlQXQoMClcblxuXHRmdW5jdGlvbiBkZWNvZGUgKGVsdCkge1xuXHRcdHZhciBjb2RlID0gZWx0LmNoYXJDb2RlQXQoMClcblx0XHRpZiAoY29kZSA9PT0gUExVUyB8fFxuXHRcdCAgICBjb2RlID09PSBQTFVTX1VSTF9TQUZFKVxuXHRcdFx0cmV0dXJuIDYyIC8vICcrJ1xuXHRcdGlmIChjb2RlID09PSBTTEFTSCB8fFxuXHRcdCAgICBjb2RlID09PSBTTEFTSF9VUkxfU0FGRSlcblx0XHRcdHJldHVybiA2MyAvLyAnLydcblx0XHRpZiAoY29kZSA8IE5VTUJFUilcblx0XHRcdHJldHVybiAtMSAvL25vIG1hdGNoXG5cdFx0aWYgKGNvZGUgPCBOVU1CRVIgKyAxMClcblx0XHRcdHJldHVybiBjb2RlIC0gTlVNQkVSICsgMjYgKyAyNlxuXHRcdGlmIChjb2RlIDwgVVBQRVIgKyAyNilcblx0XHRcdHJldHVybiBjb2RlIC0gVVBQRVJcblx0XHRpZiAoY29kZSA8IExPV0VSICsgMjYpXG5cdFx0XHRyZXR1cm4gY29kZSAtIExPV0VSICsgMjZcblx0fVxuXG5cdGZ1bmN0aW9uIGI2NFRvQnl0ZUFycmF5IChiNjQpIHtcblx0XHR2YXIgaSwgaiwgbCwgdG1wLCBwbGFjZUhvbGRlcnMsIGFyclxuXG5cdFx0aWYgKGI2NC5sZW5ndGggJSA0ID4gMCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Jylcblx0XHR9XG5cblx0XHQvLyB0aGUgbnVtYmVyIG9mIGVxdWFsIHNpZ25zIChwbGFjZSBob2xkZXJzKVxuXHRcdC8vIGlmIHRoZXJlIGFyZSB0d28gcGxhY2Vob2xkZXJzLCB0aGFuIHRoZSB0d28gY2hhcmFjdGVycyBiZWZvcmUgaXRcblx0XHQvLyByZXByZXNlbnQgb25lIGJ5dGVcblx0XHQvLyBpZiB0aGVyZSBpcyBvbmx5IG9uZSwgdGhlbiB0aGUgdGhyZWUgY2hhcmFjdGVycyBiZWZvcmUgaXQgcmVwcmVzZW50IDIgYnl0ZXNcblx0XHQvLyB0aGlzIGlzIGp1c3QgYSBjaGVhcCBoYWNrIHRvIG5vdCBkbyBpbmRleE9mIHR3aWNlXG5cdFx0dmFyIGxlbiA9IGI2NC5sZW5ndGhcblx0XHRwbGFjZUhvbGRlcnMgPSAnPScgPT09IGI2NC5jaGFyQXQobGVuIC0gMikgPyAyIDogJz0nID09PSBiNjQuY2hhckF0KGxlbiAtIDEpID8gMSA6IDBcblxuXHRcdC8vIGJhc2U2NCBpcyA0LzMgKyB1cCB0byB0d28gY2hhcmFjdGVycyBvZiB0aGUgb3JpZ2luYWwgZGF0YVxuXHRcdGFyciA9IG5ldyBBcnIoYjY0Lmxlbmd0aCAqIDMgLyA0IC0gcGxhY2VIb2xkZXJzKVxuXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIHBsYWNlaG9sZGVycywgb25seSBnZXQgdXAgdG8gdGhlIGxhc3QgY29tcGxldGUgNCBjaGFyc1xuXHRcdGwgPSBwbGFjZUhvbGRlcnMgPiAwID8gYjY0Lmxlbmd0aCAtIDQgOiBiNjQubGVuZ3RoXG5cblx0XHR2YXIgTCA9IDBcblxuXHRcdGZ1bmN0aW9uIHB1c2ggKHYpIHtcblx0XHRcdGFycltMKytdID0gdlxuXHRcdH1cblxuXHRcdGZvciAoaSA9IDAsIGogPSAwOyBpIDwgbDsgaSArPSA0LCBqICs9IDMpIHtcblx0XHRcdHRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMTgpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAxKSkgPDwgMTIpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAyKSkgPDwgNikgfCBkZWNvZGUoYjY0LmNoYXJBdChpICsgMykpXG5cdFx0XHRwdXNoKCh0bXAgJiAweEZGMDAwMCkgPj4gMTYpXG5cdFx0XHRwdXNoKCh0bXAgJiAweEZGMDApID4+IDgpXG5cdFx0XHRwdXNoKHRtcCAmIDB4RkYpXG5cdFx0fVxuXG5cdFx0aWYgKHBsYWNlSG9sZGVycyA9PT0gMikge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAyKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpID4+IDQpXG5cdFx0XHRwdXNoKHRtcCAmIDB4RkYpXG5cdFx0fSBlbHNlIGlmIChwbGFjZUhvbGRlcnMgPT09IDEpIHtcblx0XHRcdHRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMTApIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAxKSkgPDwgNCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDIpKSA+PiAyKVxuXHRcdFx0cHVzaCgodG1wID4+IDgpICYgMHhGRilcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9XG5cblx0XHRyZXR1cm4gYXJyXG5cdH1cblxuXHRmdW5jdGlvbiB1aW50OFRvQmFzZTY0ICh1aW50OCkge1xuXHRcdHZhciBpLFxuXHRcdFx0ZXh0cmFCeXRlcyA9IHVpbnQ4Lmxlbmd0aCAlIDMsIC8vIGlmIHdlIGhhdmUgMSBieXRlIGxlZnQsIHBhZCAyIGJ5dGVzXG5cdFx0XHRvdXRwdXQgPSBcIlwiLFxuXHRcdFx0dGVtcCwgbGVuZ3RoXG5cblx0XHRmdW5jdGlvbiBlbmNvZGUgKG51bSkge1xuXHRcdFx0cmV0dXJuIGxvb2t1cC5jaGFyQXQobnVtKVxuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIHRyaXBsZXRUb0Jhc2U2NCAobnVtKSB7XG5cdFx0XHRyZXR1cm4gZW5jb2RlKG51bSA+PiAxOCAmIDB4M0YpICsgZW5jb2RlKG51bSA+PiAxMiAmIDB4M0YpICsgZW5jb2RlKG51bSA+PiA2ICYgMHgzRikgKyBlbmNvZGUobnVtICYgMHgzRilcblx0XHR9XG5cblx0XHQvLyBnbyB0aHJvdWdoIHRoZSBhcnJheSBldmVyeSB0aHJlZSBieXRlcywgd2UnbGwgZGVhbCB3aXRoIHRyYWlsaW5nIHN0dWZmIGxhdGVyXG5cdFx0Zm9yIChpID0gMCwgbGVuZ3RoID0gdWludDgubGVuZ3RoIC0gZXh0cmFCeXRlczsgaSA8IGxlbmd0aDsgaSArPSAzKSB7XG5cdFx0XHR0ZW1wID0gKHVpbnQ4W2ldIDw8IDE2KSArICh1aW50OFtpICsgMV0gPDwgOCkgKyAodWludDhbaSArIDJdKVxuXHRcdFx0b3V0cHV0ICs9IHRyaXBsZXRUb0Jhc2U2NCh0ZW1wKVxuXHRcdH1cblxuXHRcdC8vIHBhZCB0aGUgZW5kIHdpdGggemVyb3MsIGJ1dCBtYWtlIHN1cmUgdG8gbm90IGZvcmdldCB0aGUgZXh0cmEgYnl0ZXNcblx0XHRzd2l0Y2ggKGV4dHJhQnl0ZXMpIHtcblx0XHRcdGNhc2UgMTpcblx0XHRcdFx0dGVtcCA9IHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDFdXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUodGVtcCA+PiAyKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKCh0ZW1wIDw8IDQpICYgMHgzRilcblx0XHRcdFx0b3V0cHV0ICs9ICc9PSdcblx0XHRcdFx0YnJlYWtcblx0XHRcdGNhc2UgMjpcblx0XHRcdFx0dGVtcCA9ICh1aW50OFt1aW50OC5sZW5ndGggLSAyXSA8PCA4KSArICh1aW50OFt1aW50OC5sZW5ndGggLSAxXSlcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSh0ZW1wID4+IDEwKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKCh0ZW1wID4+IDQpICYgMHgzRilcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA8PCAyKSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSAnPSdcblx0XHRcdFx0YnJlYWtcblx0XHR9XG5cblx0XHRyZXR1cm4gb3V0cHV0XG5cdH1cblxuXHRleHBvcnRzLnRvQnl0ZUFycmF5ID0gYjY0VG9CeXRlQXJyYXlcblx0ZXhwb3J0cy5mcm9tQnl0ZUFycmF5ID0gdWludDhUb0Jhc2U2NFxufSh0eXBlb2YgZXhwb3J0cyA9PT0gJ3VuZGVmaW5lZCcgPyAodGhpcy5iYXNlNjRqcyA9IHt9KSA6IGV4cG9ydHMpKVxuIiwiZXhwb3J0cy5yZWFkID0gZnVuY3Rpb24gKGJ1ZmZlciwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sXG4gICAgICBlTGVuID0gbkJ5dGVzICogOCAtIG1MZW4gLSAxLFxuICAgICAgZU1heCA9ICgxIDw8IGVMZW4pIC0gMSxcbiAgICAgIGVCaWFzID0gZU1heCA+PiAxLFxuICAgICAgbkJpdHMgPSAtNyxcbiAgICAgIGkgPSBpc0xFID8gKG5CeXRlcyAtIDEpIDogMCxcbiAgICAgIGQgPSBpc0xFID8gLTEgOiAxLFxuICAgICAgcyA9IGJ1ZmZlcltvZmZzZXQgKyBpXVxuXG4gIGkgKz0gZFxuXG4gIGUgPSBzICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIHMgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IGVMZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgZSA9IGUgKiAyNTYgKyBidWZmZXJbb2Zmc2V0ICsgaV0sIGkgKz0gZCwgbkJpdHMgLT0gOCkge31cblxuICBtID0gZSAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBlID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBtTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IG0gPSBtICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgaWYgKGUgPT09IDApIHtcbiAgICBlID0gMSAtIGVCaWFzXG4gIH0gZWxzZSBpZiAoZSA9PT0gZU1heCkge1xuICAgIHJldHVybiBtID8gTmFOIDogKChzID8gLTEgOiAxKSAqIEluZmluaXR5KVxuICB9IGVsc2Uge1xuICAgIG0gPSBtICsgTWF0aC5wb3coMiwgbUxlbilcbiAgICBlID0gZSAtIGVCaWFzXG4gIH1cbiAgcmV0dXJuIChzID8gLTEgOiAxKSAqIG0gKiBNYXRoLnBvdygyLCBlIC0gbUxlbilcbn1cblxuZXhwb3J0cy53cml0ZSA9IGZ1bmN0aW9uIChidWZmZXIsIHZhbHVlLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbSwgYyxcbiAgICAgIGVMZW4gPSBuQnl0ZXMgKiA4IC0gbUxlbiAtIDEsXG4gICAgICBlTWF4ID0gKDEgPDwgZUxlbikgLSAxLFxuICAgICAgZUJpYXMgPSBlTWF4ID4+IDEsXG4gICAgICBydCA9IChtTGVuID09PSAyMyA/IE1hdGgucG93KDIsIC0yNCkgLSBNYXRoLnBvdygyLCAtNzcpIDogMCksXG4gICAgICBpID0gaXNMRSA/IDAgOiAobkJ5dGVzIC0gMSksXG4gICAgICBkID0gaXNMRSA/IDEgOiAtMSxcbiAgICAgIHMgPSB2YWx1ZSA8IDAgfHwgKHZhbHVlID09PSAwICYmIDEgLyB2YWx1ZSA8IDApID8gMSA6IDBcblxuICB2YWx1ZSA9IE1hdGguYWJzKHZhbHVlKVxuXG4gIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IEluZmluaXR5KSB7XG4gICAgbSA9IGlzTmFOKHZhbHVlKSA/IDEgOiAwXG4gICAgZSA9IGVNYXhcbiAgfSBlbHNlIHtcbiAgICBlID0gTWF0aC5mbG9vcihNYXRoLmxvZyh2YWx1ZSkgLyBNYXRoLkxOMilcbiAgICBpZiAodmFsdWUgKiAoYyA9IE1hdGgucG93KDIsIC1lKSkgPCAxKSB7XG4gICAgICBlLS1cbiAgICAgIGMgKj0gMlxuICAgIH1cbiAgICBpZiAoZSArIGVCaWFzID49IDEpIHtcbiAgICAgIHZhbHVlICs9IHJ0IC8gY1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSArPSBydCAqIE1hdGgucG93KDIsIDEgLSBlQmlhcylcbiAgICB9XG4gICAgaWYgKHZhbHVlICogYyA+PSAyKSB7XG4gICAgICBlKytcbiAgICAgIGMgLz0gMlxuICAgIH1cblxuICAgIGlmIChlICsgZUJpYXMgPj0gZU1heCkge1xuICAgICAgbSA9IDBcbiAgICAgIGUgPSBlTWF4XG4gICAgfSBlbHNlIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgbSA9ICh2YWx1ZSAqIGMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pXG4gICAgICBlID0gZSArIGVCaWFzXG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSB2YWx1ZSAqIE1hdGgucG93KDIsIGVCaWFzIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IDBcbiAgICB9XG4gIH1cblxuICBmb3IgKDsgbUxlbiA+PSA4OyBidWZmZXJbb2Zmc2V0ICsgaV0gPSBtICYgMHhmZiwgaSArPSBkLCBtIC89IDI1NiwgbUxlbiAtPSA4KSB7fVxuXG4gIGUgPSAoZSA8PCBtTGVuKSB8IG1cbiAgZUxlbiArPSBtTGVuXG4gIGZvciAoOyBlTGVuID4gMDsgYnVmZmVyW29mZnNldCArIGldID0gZSAmIDB4ZmYsIGkgKz0gZCwgZSAvPSAyNTYsIGVMZW4gLT0gOCkge31cblxuICBidWZmZXJbb2Zmc2V0ICsgaSAtIGRdIHw9IHMgKiAxMjhcbn1cbiIsIlxuLyoqXG4gKiBpc0FycmF5XG4gKi9cblxudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIHRvU3RyaW5nXG4gKi9cblxudmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogV2hldGhlciBvciBub3QgdGhlIGdpdmVuIGB2YWxgXG4gKiBpcyBhbiBhcnJheS5cbiAqXG4gKiBleGFtcGxlOlxuICpcbiAqICAgICAgICBpc0FycmF5KFtdKTtcbiAqICAgICAgICAvLyA+IHRydWVcbiAqICAgICAgICBpc0FycmF5KGFyZ3VtZW50cyk7XG4gKiAgICAgICAgLy8gPiBmYWxzZVxuICogICAgICAgIGlzQXJyYXkoJycpO1xuICogICAgICAgIC8vID4gZmFsc2VcbiAqXG4gKiBAcGFyYW0ge21peGVkfSB2YWxcbiAqIEByZXR1cm4ge2Jvb2x9XG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5IHx8IGZ1bmN0aW9uICh2YWwpIHtcbiAgcmV0dXJuICEhIHZhbCAmJiAnW29iamVjdCBBcnJheV0nID09IHN0ci5jYWxsKHZhbCk7XG59O1xuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG5cbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG52YXIgY3VycmVudFF1ZXVlO1xudmFyIHF1ZXVlSW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCkge1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnRRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcXVldWUgPSBjdXJyZW50UXVldWUuY29uY2F0KHF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgZHJhaW5RdWV1ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZHJhaW5RdWV1ZSgpIHtcbiAgICBpZiAoZHJhaW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgdGltZW91dCA9IHNldFRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTtcbiAgICBkcmFpbmluZyA9IHRydWU7XG5cbiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIHdoaWxlKGxlbikge1xuICAgICAgICBjdXJyZW50UXVldWUgPSBxdWV1ZTtcbiAgICAgICAgcXVldWUgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsrcXVldWVJbmRleCA8IGxlbikge1xuICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKCFkcmFpbmluZykge1xuICAgICAgICBzZXRUaW1lb3V0KGRyYWluUXVldWUsIDApO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxuLy8gVE9ETyhzaHR5bG1hbilcbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIlxuLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKlxuICogRXhwb3NlIGBkZWJ1ZygpYCBhcyB0aGUgbW9kdWxlLlxuICovXG5cbmV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGVidWcnKTtcbmV4cG9ydHMubG9nID0gbG9nO1xuZXhwb3J0cy5mb3JtYXRBcmdzID0gZm9ybWF0QXJncztcbmV4cG9ydHMuc2F2ZSA9IHNhdmU7XG5leHBvcnRzLmxvYWQgPSBsb2FkO1xuZXhwb3J0cy51c2VDb2xvcnMgPSB1c2VDb2xvcnM7XG5leHBvcnRzLnN0b3JhZ2UgPSAndW5kZWZpbmVkJyAhPSB0eXBlb2YgY2hyb21lXG4gICAgICAgICAgICAgICAmJiAndW5kZWZpbmVkJyAhPSB0eXBlb2YgY2hyb21lLnN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgID8gY2hyb21lLnN0b3JhZ2UubG9jYWxcbiAgICAgICAgICAgICAgICAgIDogbG9jYWxzdG9yYWdlKCk7XG5cbi8qKlxuICogQ29sb3JzLlxuICovXG5cbmV4cG9ydHMuY29sb3JzID0gW1xuICAnbGlnaHRzZWFncmVlbicsXG4gICdmb3Jlc3RncmVlbicsXG4gICdnb2xkZW5yb2QnLFxuICAnZG9kZ2VyYmx1ZScsXG4gICdkYXJrb3JjaGlkJyxcbiAgJ2NyaW1zb24nXG5dO1xuXG4vKipcbiAqIEN1cnJlbnRseSBvbmx5IFdlYktpdC1iYXNlZCBXZWIgSW5zcGVjdG9ycywgRmlyZWZveCA+PSB2MzEsXG4gKiBhbmQgdGhlIEZpcmVidWcgZXh0ZW5zaW9uIChhbnkgRmlyZWZveCB2ZXJzaW9uKSBhcmUga25vd25cbiAqIHRvIHN1cHBvcnQgXCIlY1wiIENTUyBjdXN0b21pemF0aW9ucy5cbiAqXG4gKiBUT0RPOiBhZGQgYSBgbG9jYWxTdG9yYWdlYCB2YXJpYWJsZSB0byBleHBsaWNpdGx5IGVuYWJsZS9kaXNhYmxlIGNvbG9yc1xuICovXG5cbmZ1bmN0aW9uIHVzZUNvbG9ycygpIHtcbiAgLy8gaXMgd2Via2l0PyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNjQ1OTYwNi8zNzY3NzNcbiAgcmV0dXJuICgnV2Via2l0QXBwZWFyYW5jZScgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlKSB8fFxuICAgIC8vIGlzIGZpcmVidWc/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5ODEyMC8zNzY3NzNcbiAgICAod2luZG93LmNvbnNvbGUgJiYgKGNvbnNvbGUuZmlyZWJ1ZyB8fCAoY29uc29sZS5leGNlcHRpb24gJiYgY29uc29sZS50YWJsZSkpKSB8fFxuICAgIC8vIGlzIGZpcmVmb3ggPj0gdjMxP1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvV2ViX0NvbnNvbGUjU3R5bGluZ19tZXNzYWdlc1xuICAgIChuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKSAmJiBwYXJzZUludChSZWdFeHAuJDEsIDEwKSA+PSAzMSk7XG59XG5cbi8qKlxuICogTWFwICVqIHRvIGBKU09OLnN0cmluZ2lmeSgpYCwgc2luY2Ugbm8gV2ViIEluc3BlY3RvcnMgZG8gdGhhdCBieSBkZWZhdWx0LlxuICovXG5cbmV4cG9ydHMuZm9ybWF0dGVycy5qID0gZnVuY3Rpb24odikge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodik7XG59O1xuXG5cbi8qKlxuICogQ29sb3JpemUgbG9nIGFyZ3VtZW50cyBpZiBlbmFibGVkLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0QXJncygpIHtcbiAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gIHZhciB1c2VDb2xvcnMgPSB0aGlzLnVzZUNvbG9ycztcblxuICBhcmdzWzBdID0gKHVzZUNvbG9ycyA/ICclYycgOiAnJylcbiAgICArIHRoaXMubmFtZXNwYWNlXG4gICAgKyAodXNlQ29sb3JzID8gJyAlYycgOiAnICcpXG4gICAgKyBhcmdzWzBdXG4gICAgKyAodXNlQ29sb3JzID8gJyVjICcgOiAnICcpXG4gICAgKyAnKycgKyBleHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZik7XG5cbiAgaWYgKCF1c2VDb2xvcnMpIHJldHVybiBhcmdzO1xuXG4gIHZhciBjID0gJ2NvbG9yOiAnICsgdGhpcy5jb2xvcjtcbiAgYXJncyA9IFthcmdzWzBdLCBjLCAnY29sb3I6IGluaGVyaXQnXS5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncywgMSkpO1xuXG4gIC8vIHRoZSBmaW5hbCBcIiVjXCIgaXMgc29tZXdoYXQgdHJpY2t5LCBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG90aGVyXG4gIC8vIGFyZ3VtZW50cyBwYXNzZWQgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0aGUgJWMsIHNvIHdlIG5lZWQgdG9cbiAgLy8gZmlndXJlIG91dCB0aGUgY29ycmVjdCBpbmRleCB0byBpbnNlcnQgdGhlIENTUyBpbnRvXG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBsYXN0QyA9IDA7XG4gIGFyZ3NbMF0ucmVwbGFjZSgvJVthLXolXS9nLCBmdW5jdGlvbihtYXRjaCkge1xuICAgIGlmICgnJSUnID09PSBtYXRjaCkgcmV0dXJuO1xuICAgIGluZGV4Kys7XG4gICAgaWYgKCclYycgPT09IG1hdGNoKSB7XG4gICAgICAvLyB3ZSBvbmx5IGFyZSBpbnRlcmVzdGVkIGluIHRoZSAqbGFzdCogJWNcbiAgICAgIC8vICh0aGUgdXNlciBtYXkgaGF2ZSBwcm92aWRlZCB0aGVpciBvd24pXG4gICAgICBsYXN0QyA9IGluZGV4O1xuICAgIH1cbiAgfSk7XG5cbiAgYXJncy5zcGxpY2UobGFzdEMsIDAsIGMpO1xuICByZXR1cm4gYXJncztcbn1cblxuLyoqXG4gKiBJbnZva2VzIGBjb25zb2xlLmxvZygpYCB3aGVuIGF2YWlsYWJsZS5cbiAqIE5vLW9wIHdoZW4gYGNvbnNvbGUubG9nYCBpcyBub3QgYSBcImZ1bmN0aW9uXCIuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBsb2coKSB7XG4gIC8vIHRoaXMgaGFja2VyeSBpcyByZXF1aXJlZCBmb3IgSUU4LzksIHdoZXJlXG4gIC8vIHRoZSBgY29uc29sZS5sb2dgIGZ1bmN0aW9uIGRvZXNuJ3QgaGF2ZSAnYXBwbHknXG4gIHJldHVybiAnb2JqZWN0JyA9PT0gdHlwZW9mIGNvbnNvbGVcbiAgICAmJiBjb25zb2xlLmxvZ1xuICAgICYmIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGUubG9nLCBjb25zb2xlLCBhcmd1bWVudHMpO1xufVxuXG4vKipcbiAqIFNhdmUgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzYXZlKG5hbWVzcGFjZXMpIHtcbiAgdHJ5IHtcbiAgICBpZiAobnVsbCA9PSBuYW1lc3BhY2VzKSB7XG4gICAgICBleHBvcnRzLnN0b3JhZ2UucmVtb3ZlSXRlbSgnZGVidWcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwb3J0cy5zdG9yYWdlLmRlYnVnID0gbmFtZXNwYWNlcztcbiAgICB9XG4gIH0gY2F0Y2goZSkge31cbn1cblxuLyoqXG4gKiBMb2FkIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHJldHVybnMgdGhlIHByZXZpb3VzbHkgcGVyc2lzdGVkIGRlYnVnIG1vZGVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBsb2FkKCkge1xuICB2YXIgcjtcbiAgdHJ5IHtcbiAgICByID0gZXhwb3J0cy5zdG9yYWdlLmRlYnVnO1xuICB9IGNhdGNoKGUpIHt9XG4gIHJldHVybiByO1xufVxuXG4vKipcbiAqIEVuYWJsZSBuYW1lc3BhY2VzIGxpc3RlZCBpbiBgbG9jYWxTdG9yYWdlLmRlYnVnYCBpbml0aWFsbHkuXG4gKi9cblxuZXhwb3J0cy5lbmFibGUobG9hZCgpKTtcblxuLyoqXG4gKiBMb2NhbHN0b3JhZ2UgYXR0ZW1wdHMgdG8gcmV0dXJuIHRoZSBsb2NhbHN0b3JhZ2UuXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzYWZhcmkgdGhyb3dzXG4gKiB3aGVuIGEgdXNlciBkaXNhYmxlcyBjb29raWVzL2xvY2Fsc3RvcmFnZVxuICogYW5kIHlvdSBhdHRlbXB0IHRvIGFjY2VzcyBpdC5cbiAqXG4gKiBAcmV0dXJuIHtMb2NhbFN0b3JhZ2V9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBsb2NhbHN0b3JhZ2UoKXtcbiAgdHJ5IHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfSBjYXRjaCAoZSkge31cbn1cbiIsIlxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjb21tb24gbG9naWMgZm9yIGJvdGggdGhlIE5vZGUuanMgYW5kIHdlYiBicm93c2VyXG4gKiBpbXBsZW1lbnRhdGlvbnMgb2YgYGRlYnVnKClgLlxuICpcbiAqIEV4cG9zZSBgZGVidWcoKWAgYXMgdGhlIG1vZHVsZS5cbiAqL1xuXG5leHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBkZWJ1ZztcbmV4cG9ydHMuY29lcmNlID0gY29lcmNlO1xuZXhwb3J0cy5kaXNhYmxlID0gZGlzYWJsZTtcbmV4cG9ydHMuZW5hYmxlID0gZW5hYmxlO1xuZXhwb3J0cy5lbmFibGVkID0gZW5hYmxlZDtcbmV4cG9ydHMuaHVtYW5pemUgPSByZXF1aXJlKCdtcycpO1xuXG4vKipcbiAqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGRlYnVnIG1vZGUgbmFtZXMsIGFuZCBuYW1lcyB0byBza2lwLlxuICovXG5cbmV4cG9ydHMubmFtZXMgPSBbXTtcbmV4cG9ydHMuc2tpcHMgPSBbXTtcblxuLyoqXG4gKiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG4gKlxuICogVmFsaWQga2V5IG5hbWVzIGFyZSBhIHNpbmdsZSwgbG93ZXJjYXNlZCBsZXR0ZXIsIGkuZS4gXCJuXCIuXG4gKi9cblxuZXhwb3J0cy5mb3JtYXR0ZXJzID0ge307XG5cbi8qKlxuICogUHJldmlvdXNseSBhc3NpZ25lZCBjb2xvci5cbiAqL1xuXG52YXIgcHJldkNvbG9yID0gMDtcblxuLyoqXG4gKiBQcmV2aW91cyBsb2cgdGltZXN0YW1wLlxuICovXG5cbnZhciBwcmV2VGltZTtcblxuLyoqXG4gKiBTZWxlY3QgYSBjb2xvci5cbiAqXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzZWxlY3RDb2xvcigpIHtcbiAgcmV0dXJuIGV4cG9ydHMuY29sb3JzW3ByZXZDb2xvcisrICUgZXhwb3J0cy5jb2xvcnMubGVuZ3RoXTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZGVidWcobmFtZXNwYWNlKSB7XG5cbiAgLy8gZGVmaW5lIHRoZSBgZGlzYWJsZWRgIHZlcnNpb25cbiAgZnVuY3Rpb24gZGlzYWJsZWQoKSB7XG4gIH1cbiAgZGlzYWJsZWQuZW5hYmxlZCA9IGZhbHNlO1xuXG4gIC8vIGRlZmluZSB0aGUgYGVuYWJsZWRgIHZlcnNpb25cbiAgZnVuY3Rpb24gZW5hYmxlZCgpIHtcblxuICAgIHZhciBzZWxmID0gZW5hYmxlZDtcblxuICAgIC8vIHNldCBgZGlmZmAgdGltZXN0YW1wXG4gICAgdmFyIGN1cnIgPSArbmV3IERhdGUoKTtcbiAgICB2YXIgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuICAgIHNlbGYuZGlmZiA9IG1zO1xuICAgIHNlbGYucHJldiA9IHByZXZUaW1lO1xuICAgIHNlbGYuY3VyciA9IGN1cnI7XG4gICAgcHJldlRpbWUgPSBjdXJyO1xuXG4gICAgLy8gYWRkIHRoZSBgY29sb3JgIGlmIG5vdCBzZXRcbiAgICBpZiAobnVsbCA9PSBzZWxmLnVzZUNvbG9ycykgc2VsZi51c2VDb2xvcnMgPSBleHBvcnRzLnVzZUNvbG9ycygpO1xuICAgIGlmIChudWxsID09IHNlbGYuY29sb3IgJiYgc2VsZi51c2VDb2xvcnMpIHNlbGYuY29sb3IgPSBzZWxlY3RDb2xvcigpO1xuXG4gICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuXG4gICAgYXJnc1swXSA9IGV4cG9ydHMuY29lcmNlKGFyZ3NbMF0pO1xuXG4gICAgaWYgKCdzdHJpbmcnICE9PSB0eXBlb2YgYXJnc1swXSkge1xuICAgICAgLy8gYW55dGhpbmcgZWxzZSBsZXQncyBpbnNwZWN0IHdpdGggJW9cbiAgICAgIGFyZ3MgPSBbJyVvJ10uY29uY2F0KGFyZ3MpO1xuICAgIH1cblxuICAgIC8vIGFwcGx5IGFueSBgZm9ybWF0dGVyc2AgdHJhbnNmb3JtYXRpb25zXG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICBhcmdzWzBdID0gYXJnc1swXS5yZXBsYWNlKC8lKFthLXolXSkvZywgZnVuY3Rpb24obWF0Y2gsIGZvcm1hdCkge1xuICAgICAgLy8gaWYgd2UgZW5jb3VudGVyIGFuIGVzY2FwZWQgJSB0aGVuIGRvbid0IGluY3JlYXNlIHRoZSBhcnJheSBpbmRleFxuICAgICAgaWYgKG1hdGNoID09PSAnJSUnKSByZXR1cm4gbWF0Y2g7XG4gICAgICBpbmRleCsrO1xuICAgICAgdmFyIGZvcm1hdHRlciA9IGV4cG9ydHMuZm9ybWF0dGVyc1tmb3JtYXRdO1xuICAgICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBmb3JtYXR0ZXIpIHtcbiAgICAgICAgdmFyIHZhbCA9IGFyZ3NbaW5kZXhdO1xuICAgICAgICBtYXRjaCA9IGZvcm1hdHRlci5jYWxsKHNlbGYsIHZhbCk7XG5cbiAgICAgICAgLy8gbm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuICAgICAgICBhcmdzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGluZGV4LS07XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfSk7XG5cbiAgICBpZiAoJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIGV4cG9ydHMuZm9ybWF0QXJncykge1xuICAgICAgYXJncyA9IGV4cG9ydHMuZm9ybWF0QXJncy5hcHBseShzZWxmLCBhcmdzKTtcbiAgICB9XG4gICAgdmFyIGxvZ0ZuID0gZW5hYmxlZC5sb2cgfHwgZXhwb3J0cy5sb2cgfHwgY29uc29sZS5sb2cuYmluZChjb25zb2xlKTtcbiAgICBsb2dGbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgfVxuICBlbmFibGVkLmVuYWJsZWQgPSB0cnVlO1xuXG4gIHZhciBmbiA9IGV4cG9ydHMuZW5hYmxlZChuYW1lc3BhY2UpID8gZW5hYmxlZCA6IGRpc2FibGVkO1xuXG4gIGZuLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblxuICByZXR1cm4gZm47XG59XG5cbi8qKlxuICogRW5hYmxlcyBhIGRlYnVnIG1vZGUgYnkgbmFtZXNwYWNlcy4gVGhpcyBjYW4gaW5jbHVkZSBtb2Rlc1xuICogc2VwYXJhdGVkIGJ5IGEgY29sb24gYW5kIHdpbGRjYXJkcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuICBleHBvcnRzLnNhdmUobmFtZXNwYWNlcyk7XG5cbiAgdmFyIHNwbGl0ID0gKG5hbWVzcGFjZXMgfHwgJycpLnNwbGl0KC9bXFxzLF0rLyk7XG4gIHZhciBsZW4gPSBzcGxpdC5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGlmICghc3BsaXRbaV0pIGNvbnRpbnVlOyAvLyBpZ25vcmUgZW1wdHkgc3RyaW5nc1xuICAgIG5hbWVzcGFjZXMgPSBzcGxpdFtpXS5yZXBsYWNlKC9cXCovZywgJy4qPycpO1xuICAgIGlmIChuYW1lc3BhY2VzWzBdID09PSAnLScpIHtcbiAgICAgIGV4cG9ydHMuc2tpcHMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMuc3Vic3RyKDEpICsgJyQnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cG9ydHMubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEaXNhYmxlIGRlYnVnIG91dHB1dC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGRpc2FibGUoKSB7XG4gIGV4cG9ydHMuZW5hYmxlKCcnKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG1vZGUgbmFtZSBpcyBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuICB2YXIgaSwgbGVuO1xuICBmb3IgKGkgPSAwLCBsZW4gPSBleHBvcnRzLnNraXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGV4cG9ydHMuc2tpcHNbaV0udGVzdChuYW1lKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBmb3IgKGkgPSAwLCBsZW4gPSBleHBvcnRzLm5hbWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGV4cG9ydHMubmFtZXNbaV0udGVzdChuYW1lKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDb2VyY2UgYHZhbGAuXG4gKlxuICogQHBhcmFtIHtNaXhlZH0gdmFsXG4gKiBAcmV0dXJuIHtNaXhlZH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcbiAgaWYgKHZhbCBpbnN0YW5jZW9mIEVycm9yKSByZXR1cm4gdmFsLnN0YWNrIHx8IHZhbC5tZXNzYWdlO1xuICByZXR1cm4gdmFsO1xufVxuIiwiLyoqXG4gKiBIZWxwZXJzLlxuICovXG5cbnZhciBzID0gMTAwMDtcbnZhciBtID0gcyAqIDYwO1xudmFyIGggPSBtICogNjA7XG52YXIgZCA9IGggKiAyNDtcbnZhciB5ID0gZCAqIDM2NS4yNTtcblxuLyoqXG4gKiBQYXJzZSBvciBmb3JtYXQgdGhlIGdpdmVuIGB2YWxgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGxvbmdgIHZlcmJvc2UgZm9ybWF0dGluZyBbZmFsc2VdXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtTdHJpbmd8TnVtYmVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbCwgb3B0aW9ucyl7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBpZiAoJ3N0cmluZycgPT0gdHlwZW9mIHZhbCkgcmV0dXJuIHBhcnNlKHZhbCk7XG4gIHJldHVybiBvcHRpb25zLmxvbmdcbiAgICA/IGxvbmcodmFsKVxuICAgIDogc2hvcnQodmFsKTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGBzdHJgIGFuZCByZXR1cm4gbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlKHN0cikge1xuICBzdHIgPSAnJyArIHN0cjtcbiAgaWYgKHN0ci5sZW5ndGggPiAxMDAwMCkgcmV0dXJuO1xuICB2YXIgbWF0Y2ggPSAvXigoPzpcXGQrKT9cXC4/XFxkKykgKihtaWxsaXNlY29uZHM/fG1zZWNzP3xtc3xzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHllYXJzP3x5cnM/fHkpPyQvaS5leGVjKHN0cik7XG4gIGlmICghbWF0Y2gpIHJldHVybjtcbiAgdmFyIG4gPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgdmFyIHR5cGUgPSAobWF0Y2hbMl0gfHwgJ21zJykudG9Mb3dlckNhc2UoKTtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAneWVhcnMnOlxuICAgIGNhc2UgJ3llYXInOlxuICAgIGNhc2UgJ3lycyc6XG4gICAgY2FzZSAneXInOlxuICAgIGNhc2UgJ3knOlxuICAgICAgcmV0dXJuIG4gKiB5O1xuICAgIGNhc2UgJ2RheXMnOlxuICAgIGNhc2UgJ2RheSc6XG4gICAgY2FzZSAnZCc6XG4gICAgICByZXR1cm4gbiAqIGQ7XG4gICAgY2FzZSAnaG91cnMnOlxuICAgIGNhc2UgJ2hvdXInOlxuICAgIGNhc2UgJ2hycyc6XG4gICAgY2FzZSAnaHInOlxuICAgIGNhc2UgJ2gnOlxuICAgICAgcmV0dXJuIG4gKiBoO1xuICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgY2FzZSAnbWlucyc6XG4gICAgY2FzZSAnbWluJzpcbiAgICBjYXNlICdtJzpcbiAgICAgIHJldHVybiBuICogbTtcbiAgICBjYXNlICdzZWNvbmRzJzpcbiAgICBjYXNlICdzZWNvbmQnOlxuICAgIGNhc2UgJ3NlY3MnOlxuICAgIGNhc2UgJ3NlYyc6XG4gICAgY2FzZSAncyc6XG4gICAgICByZXR1cm4gbiAqIHM7XG4gICAgY2FzZSAnbWlsbGlzZWNvbmRzJzpcbiAgICBjYXNlICdtaWxsaXNlY29uZCc6XG4gICAgY2FzZSAnbXNlY3MnOlxuICAgIGNhc2UgJ21zZWMnOlxuICAgIGNhc2UgJ21zJzpcbiAgICAgIHJldHVybiBuO1xuICB9XG59XG5cbi8qKlxuICogU2hvcnQgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2hvcnQobXMpIHtcbiAgaWYgKG1zID49IGQpIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gZCkgKyAnZCc7XG4gIGlmIChtcyA+PSBoKSByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGgpICsgJ2gnO1xuICBpZiAobXMgPj0gbSkgcmV0dXJuIE1hdGgucm91bmQobXMgLyBtKSArICdtJztcbiAgaWYgKG1zID49IHMpIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gcykgKyAncyc7XG4gIHJldHVybiBtcyArICdtcyc7XG59XG5cbi8qKlxuICogTG9uZyBmb3JtYXQgZm9yIGBtc2AuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG1zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBsb25nKG1zKSB7XG4gIHJldHVybiBwbHVyYWwobXMsIGQsICdkYXknKVxuICAgIHx8IHBsdXJhbChtcywgaCwgJ2hvdXInKVxuICAgIHx8IHBsdXJhbChtcywgbSwgJ21pbnV0ZScpXG4gICAgfHwgcGx1cmFsKG1zLCBzLCAnc2Vjb25kJylcbiAgICB8fCBtcyArICcgbXMnO1xufVxuXG4vKipcbiAqIFBsdXJhbGl6YXRpb24gaGVscGVyLlxuICovXG5cbmZ1bmN0aW9uIHBsdXJhbChtcywgbiwgbmFtZSkge1xuICBpZiAobXMgPCBuKSByZXR1cm47XG4gIGlmIChtcyA8IG4gKiAxLjUpIHJldHVybiBNYXRoLmZsb29yKG1zIC8gbikgKyAnICcgKyBuYW1lO1xuICByZXR1cm4gTWF0aC5jZWlsKG1zIC8gbikgKyAnICcgKyBuYW1lICsgJ3MnO1xufVxuIiwiLypcbiAqICRJZDogYmFzZTY0LmpzLHYgMi4xNSAyMDE0LzA0LzA1IDEyOjU4OjU3IGRhbmtvZ2FpIEV4cCBkYW5rb2dhaSAkXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZVxuICpcbiAqICBSZWZlcmVuY2VzOlxuICogICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXNlNjRcbiAqL1xuXG4oZnVuY3Rpb24oZ2xvYmFsKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIC8vIGV4aXN0aW5nIHZlcnNpb24gZm9yIG5vQ29uZmxpY3QoKVxuICAgIHZhciBfQmFzZTY0ID0gZ2xvYmFsLkJhc2U2NDtcbiAgICB2YXIgdmVyc2lvbiA9IFwiMi4xLjhcIjtcbiAgICAvLyBpZiBub2RlLmpzLCB3ZSB1c2UgQnVmZmVyXG4gICAgdmFyIGJ1ZmZlcjtcbiAgICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAgICAgYnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyO1xuICAgIH1cbiAgICAvLyBjb25zdGFudHNcbiAgICB2YXIgYjY0Y2hhcnNcbiAgICAgICAgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7XG4gICAgdmFyIGI2NHRhYiA9IGZ1bmN0aW9uKGJpbikge1xuICAgICAgICB2YXIgdCA9IHt9O1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGJpbi5sZW5ndGg7IGkgPCBsOyBpKyspIHRbYmluLmNoYXJBdChpKV0gPSBpO1xuICAgICAgICByZXR1cm4gdDtcbiAgICB9KGI2NGNoYXJzKTtcbiAgICB2YXIgZnJvbUNoYXJDb2RlID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcbiAgICAvLyBlbmNvZGVyIHN0dWZmXG4gICAgdmFyIGNiX3V0b2IgPSBmdW5jdGlvbihjKSB7XG4gICAgICAgIGlmIChjLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIHZhciBjYyA9IGMuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICAgIHJldHVybiBjYyA8IDB4ODAgPyBjXG4gICAgICAgICAgICAgICAgOiBjYyA8IDB4ODAwID8gKGZyb21DaGFyQ29kZSgweGMwIHwgKGNjID4+PiA2KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8IChjYyAmIDB4M2YpKSlcbiAgICAgICAgICAgICAgICA6IChmcm9tQ2hhckNvZGUoMHhlMCB8ICgoY2MgPj4+IDEyKSAmIDB4MGYpKVxuICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoKGNjID4+PiAgNikgJiAweDNmKSlcbiAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKCBjYyAgICAgICAgICYgMHgzZikpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjYyA9IDB4MTAwMDBcbiAgICAgICAgICAgICAgICArIChjLmNoYXJDb2RlQXQoMCkgLSAweEQ4MDApICogMHg0MDBcbiAgICAgICAgICAgICAgICArIChjLmNoYXJDb2RlQXQoMSkgLSAweERDMDApO1xuICAgICAgICAgICAgcmV0dXJuIChmcm9tQ2hhckNvZGUoMHhmMCB8ICgoY2MgPj4+IDE4KSAmIDB4MDcpKVxuICAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKChjYyA+Pj4gMTIpICYgMHgzZikpXG4gICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoKGNjID4+PiAgNikgJiAweDNmKSlcbiAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8ICggY2MgICAgICAgICAmIDB4M2YpKSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHZhciByZV91dG9iID0gL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRkZdfFteXFx4MDAtXFx4N0ZdL2c7XG4gICAgdmFyIHV0b2IgPSBmdW5jdGlvbih1KSB7XG4gICAgICAgIHJldHVybiB1LnJlcGxhY2UocmVfdXRvYiwgY2JfdXRvYik7XG4gICAgfTtcbiAgICB2YXIgY2JfZW5jb2RlID0gZnVuY3Rpb24oY2NjKSB7XG4gICAgICAgIHZhciBwYWRsZW4gPSBbMCwgMiwgMV1bY2NjLmxlbmd0aCAlIDNdLFxuICAgICAgICBvcmQgPSBjY2MuY2hhckNvZGVBdCgwKSA8PCAxNlxuICAgICAgICAgICAgfCAoKGNjYy5sZW5ndGggPiAxID8gY2NjLmNoYXJDb2RlQXQoMSkgOiAwKSA8PCA4KVxuICAgICAgICAgICAgfCAoKGNjYy5sZW5ndGggPiAyID8gY2NjLmNoYXJDb2RlQXQoMikgOiAwKSksXG4gICAgICAgIGNoYXJzID0gW1xuICAgICAgICAgICAgYjY0Y2hhcnMuY2hhckF0KCBvcmQgPj4+IDE4KSxcbiAgICAgICAgICAgIGI2NGNoYXJzLmNoYXJBdCgob3JkID4+PiAxMikgJiA2MyksXG4gICAgICAgICAgICBwYWRsZW4gPj0gMiA/ICc9JyA6IGI2NGNoYXJzLmNoYXJBdCgob3JkID4+PiA2KSAmIDYzKSxcbiAgICAgICAgICAgIHBhZGxlbiA+PSAxID8gJz0nIDogYjY0Y2hhcnMuY2hhckF0KG9yZCAmIDYzKVxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gY2hhcnMuam9pbignJyk7XG4gICAgfTtcbiAgICB2YXIgYnRvYSA9IGdsb2JhbC5idG9hID8gZnVuY3Rpb24oYikge1xuICAgICAgICByZXR1cm4gZ2xvYmFsLmJ0b2EoYik7XG4gICAgfSA6IGZ1bmN0aW9uKGIpIHtcbiAgICAgICAgcmV0dXJuIGIucmVwbGFjZSgvW1xcc1xcU117MSwzfS9nLCBjYl9lbmNvZGUpO1xuICAgIH07XG4gICAgdmFyIF9lbmNvZGUgPSBidWZmZXIgPyBmdW5jdGlvbiAodSkge1xuICAgICAgICByZXR1cm4gKHUuY29uc3RydWN0b3IgPT09IGJ1ZmZlci5jb25zdHJ1Y3RvciA/IHUgOiBuZXcgYnVmZmVyKHUpKVxuICAgICAgICAudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgfVxuICAgIDogZnVuY3Rpb24gKHUpIHsgcmV0dXJuIGJ0b2EodXRvYih1KSkgfVxuICAgIDtcbiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24odSwgdXJpc2FmZSkge1xuICAgICAgICByZXR1cm4gIXVyaXNhZmVcbiAgICAgICAgICAgID8gX2VuY29kZShTdHJpbmcodSkpXG4gICAgICAgICAgICA6IF9lbmNvZGUoU3RyaW5nKHUpKS5yZXBsYWNlKC9bK1xcL10vZywgZnVuY3Rpb24obTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbTAgPT0gJysnID8gJy0nIDogJ18nO1xuICAgICAgICAgICAgfSkucmVwbGFjZSgvPS9nLCAnJyk7XG4gICAgfTtcbiAgICB2YXIgZW5jb2RlVVJJID0gZnVuY3Rpb24odSkgeyByZXR1cm4gZW5jb2RlKHUsIHRydWUpIH07XG4gICAgLy8gZGVjb2RlciBzdHVmZlxuICAgIHZhciByZV9idG91ID0gbmV3IFJlZ0V4cChbXG4gICAgICAgICdbXFx4QzAtXFx4REZdW1xceDgwLVxceEJGXScsXG4gICAgICAgICdbXFx4RTAtXFx4RUZdW1xceDgwLVxceEJGXXsyfScsXG4gICAgICAgICdbXFx4RjAtXFx4RjddW1xceDgwLVxceEJGXXszfSdcbiAgICBdLmpvaW4oJ3wnKSwgJ2cnKTtcbiAgICB2YXIgY2JfYnRvdSA9IGZ1bmN0aW9uKGNjY2MpIHtcbiAgICAgICAgc3dpdGNoKGNjY2MubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHZhciBjcCA9ICgoMHgwNyAmIGNjY2MuY2hhckNvZGVBdCgwKSkgPDwgMTgpXG4gICAgICAgICAgICAgICAgfCAgICAoKDB4M2YgJiBjY2NjLmNoYXJDb2RlQXQoMSkpIDw8IDEyKVxuICAgICAgICAgICAgICAgIHwgICAgKCgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDIpKSA8PCAgNilcbiAgICAgICAgICAgICAgICB8ICAgICAoMHgzZiAmIGNjY2MuY2hhckNvZGVBdCgzKSksXG4gICAgICAgICAgICBvZmZzZXQgPSBjcCAtIDB4MTAwMDA7XG4gICAgICAgICAgICByZXR1cm4gKGZyb21DaGFyQ29kZSgob2Zmc2V0ICA+Pj4gMTApICsgMHhEODAwKVxuICAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgob2Zmc2V0ICYgMHgzRkYpICsgMHhEQzAwKSk7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiBmcm9tQ2hhckNvZGUoXG4gICAgICAgICAgICAgICAgKCgweDBmICYgY2NjYy5jaGFyQ29kZUF0KDApKSA8PCAxMilcbiAgICAgICAgICAgICAgICAgICAgfCAoKDB4M2YgJiBjY2NjLmNoYXJDb2RlQXQoMSkpIDw8IDYpXG4gICAgICAgICAgICAgICAgICAgIHwgICgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDIpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAgZnJvbUNoYXJDb2RlKFxuICAgICAgICAgICAgICAgICgoMHgxZiAmIGNjY2MuY2hhckNvZGVBdCgwKSkgPDwgNilcbiAgICAgICAgICAgICAgICAgICAgfCAgKDB4M2YgJiBjY2NjLmNoYXJDb2RlQXQoMSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB2YXIgYnRvdSA9IGZ1bmN0aW9uKGIpIHtcbiAgICAgICAgcmV0dXJuIGIucmVwbGFjZShyZV9idG91LCBjYl9idG91KTtcbiAgICB9O1xuICAgIHZhciBjYl9kZWNvZGUgPSBmdW5jdGlvbihjY2NjKSB7XG4gICAgICAgIHZhciBsZW4gPSBjY2NjLmxlbmd0aCxcbiAgICAgICAgcGFkbGVuID0gbGVuICUgNCxcbiAgICAgICAgbiA9IChsZW4gPiAwID8gYjY0dGFiW2NjY2MuY2hhckF0KDApXSA8PCAxOCA6IDApXG4gICAgICAgICAgICB8IChsZW4gPiAxID8gYjY0dGFiW2NjY2MuY2hhckF0KDEpXSA8PCAxMiA6IDApXG4gICAgICAgICAgICB8IChsZW4gPiAyID8gYjY0dGFiW2NjY2MuY2hhckF0KDIpXSA8PCAgNiA6IDApXG4gICAgICAgICAgICB8IChsZW4gPiAzID8gYjY0dGFiW2NjY2MuY2hhckF0KDMpXSAgICAgICA6IDApLFxuICAgICAgICBjaGFycyA9IFtcbiAgICAgICAgICAgIGZyb21DaGFyQ29kZSggbiA+Pj4gMTYpLFxuICAgICAgICAgICAgZnJvbUNoYXJDb2RlKChuID4+PiAgOCkgJiAweGZmKSxcbiAgICAgICAgICAgIGZyb21DaGFyQ29kZSggbiAgICAgICAgICYgMHhmZilcbiAgICAgICAgXTtcbiAgICAgICAgY2hhcnMubGVuZ3RoIC09IFswLCAwLCAyLCAxXVtwYWRsZW5dO1xuICAgICAgICByZXR1cm4gY2hhcnMuam9pbignJyk7XG4gICAgfTtcbiAgICB2YXIgYXRvYiA9IGdsb2JhbC5hdG9iID8gZnVuY3Rpb24oYSkge1xuICAgICAgICByZXR1cm4gZ2xvYmFsLmF0b2IoYSk7XG4gICAgfSA6IGZ1bmN0aW9uKGEpe1xuICAgICAgICByZXR1cm4gYS5yZXBsYWNlKC9bXFxzXFxTXXsxLDR9L2csIGNiX2RlY29kZSk7XG4gICAgfTtcbiAgICB2YXIgX2RlY29kZSA9IGJ1ZmZlciA/IGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgcmV0dXJuIChhLmNvbnN0cnVjdG9yID09PSBidWZmZXIuY29uc3RydWN0b3JcbiAgICAgICAgICAgICAgICA/IGEgOiBuZXcgYnVmZmVyKGEsICdiYXNlNjQnKSkudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgOiBmdW5jdGlvbihhKSB7IHJldHVybiBidG91KGF0b2IoYSkpIH07XG4gICAgdmFyIGRlY29kZSA9IGZ1bmN0aW9uKGEpe1xuICAgICAgICByZXR1cm4gX2RlY29kZShcbiAgICAgICAgICAgIFN0cmluZyhhKS5yZXBsYWNlKC9bLV9dL2csIGZ1bmN0aW9uKG0wKSB7IHJldHVybiBtMCA9PSAnLScgPyAnKycgOiAnLycgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvW15BLVphLXowLTlcXCtcXC9dL2csICcnKVxuICAgICAgICApO1xuICAgIH07XG4gICAgdmFyIG5vQ29uZmxpY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIEJhc2U2NCA9IGdsb2JhbC5CYXNlNjQ7XG4gICAgICAgIGdsb2JhbC5CYXNlNjQgPSBfQmFzZTY0O1xuICAgICAgICByZXR1cm4gQmFzZTY0O1xuICAgIH07XG4gICAgLy8gZXhwb3J0IEJhc2U2NFxuICAgIGdsb2JhbC5CYXNlNjQgPSB7XG4gICAgICAgIFZFUlNJT046IHZlcnNpb24sXG4gICAgICAgIGF0b2I6IGF0b2IsXG4gICAgICAgIGJ0b2E6IGJ0b2EsXG4gICAgICAgIGZyb21CYXNlNjQ6IGRlY29kZSxcbiAgICAgICAgdG9CYXNlNjQ6IGVuY29kZSxcbiAgICAgICAgdXRvYjogdXRvYixcbiAgICAgICAgZW5jb2RlOiBlbmNvZGUsXG4gICAgICAgIGVuY29kZVVSSTogZW5jb2RlVVJJLFxuICAgICAgICBidG91OiBidG91LFxuICAgICAgICBkZWNvZGU6IGRlY29kZSxcbiAgICAgICAgbm9Db25mbGljdDogbm9Db25mbGljdFxuICAgIH07XG4gICAgLy8gaWYgRVM1IGlzIGF2YWlsYWJsZSwgbWFrZSBCYXNlNjQuZXh0ZW5kU3RyaW5nKCkgYXZhaWxhYmxlXG4gICAgaWYgKHR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydHkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdmFyIG5vRW51bSA9IGZ1bmN0aW9uKHYpe1xuICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTp2LGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX07XG4gICAgICAgIH07XG4gICAgICAgIGdsb2JhbC5CYXNlNjQuZXh0ZW5kU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgICAgICAgICAgIFN0cmluZy5wcm90b3R5cGUsICdmcm9tQmFzZTY0Jywgbm9FbnVtKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZSh0aGlzKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLCAndG9CYXNlNjQnLCBub0VudW0oZnVuY3Rpb24gKHVyaXNhZmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZSh0aGlzLCB1cmlzYWZlKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLCAndG9CYXNlNjRVUkknLCBub0VudW0oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlKHRoaXMsIHRydWUpXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvLyB0aGF0J3MgaXQhXG4gICAgaWYgKGdsb2JhbFsnTWV0ZW9yJ10pIHtcbiAgICAgICBCYXNlNjQgPSBnbG9iYWwuQmFzZTY0OyAvLyBmb3Igbm9ybWFsIGV4cG9ydCBpbiBNZXRlb3IuanNcbiAgICB9XG59KSh0aGlzKTtcbiIsIid1c2Ugc3RyaWN0JztcblxuXG52YXIgeWFtbCA9IHJlcXVpcmUoJy4vbGliL2pzLXlhbWwuanMnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IHlhbWw7XG4iLCIndXNlIHN0cmljdCc7XG5cblxudmFyIGxvYWRlciA9IHJlcXVpcmUoJy4vanMteWFtbC9sb2FkZXInKTtcbnZhciBkdW1wZXIgPSByZXF1aXJlKCcuL2pzLXlhbWwvZHVtcGVyJyk7XG5cblxuZnVuY3Rpb24gZGVwcmVjYXRlZChuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGdW5jdGlvbiAnICsgbmFtZSArICcgaXMgZGVwcmVjYXRlZCBhbmQgY2Fubm90IGJlIHVzZWQuJyk7XG4gIH07XG59XG5cblxubW9kdWxlLmV4cG9ydHMuVHlwZSAgICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC90eXBlJyk7XG5tb2R1bGUuZXhwb3J0cy5TY2hlbWEgICAgICAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYScpO1xubW9kdWxlLmV4cG9ydHMuRkFJTFNBRkVfU0NIRU1BICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZmFpbHNhZmUnKTtcbm1vZHVsZS5leHBvcnRzLkpTT05fU0NIRU1BICAgICAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2pzb24nKTtcbm1vZHVsZS5leHBvcnRzLkNPUkVfU0NIRU1BICAgICAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2NvcmUnKTtcbm1vZHVsZS5leHBvcnRzLkRFRkFVTFRfU0FGRV9TQ0hFTUEgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfc2FmZScpO1xubW9kdWxlLmV4cG9ydHMuREVGQVVMVF9GVUxMX1NDSEVNQSA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG5tb2R1bGUuZXhwb3J0cy5sb2FkICAgICAgICAgICAgICAgID0gbG9hZGVyLmxvYWQ7XG5tb2R1bGUuZXhwb3J0cy5sb2FkQWxsICAgICAgICAgICAgID0gbG9hZGVyLmxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5zYWZlTG9hZCAgICAgICAgICAgID0gbG9hZGVyLnNhZmVMb2FkO1xubW9kdWxlLmV4cG9ydHMuc2FmZUxvYWRBbGwgICAgICAgICA9IGxvYWRlci5zYWZlTG9hZEFsbDtcbm1vZHVsZS5leHBvcnRzLmR1bXAgICAgICAgICAgICAgICAgPSBkdW1wZXIuZHVtcDtcbm1vZHVsZS5leHBvcnRzLnNhZmVEdW1wICAgICAgICAgICAgPSBkdW1wZXIuc2FmZUR1bXA7XG5tb2R1bGUuZXhwb3J0cy5ZQU1MRXhjZXB0aW9uICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL2V4Y2VwdGlvbicpO1xuXG4vLyBEZXByZWNhcmVkIHNjaGVtYSBuYW1lcyBmcm9tIEpTLVlBTUwgMi4wLnhcbm1vZHVsZS5leHBvcnRzLk1JTklNQUxfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9mYWlsc2FmZScpO1xubW9kdWxlLmV4cG9ydHMuU0FGRV9TQ0hFTUEgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfc2FmZScpO1xubW9kdWxlLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUEgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfZnVsbCcpO1xuXG4vLyBEZXByZWNhdGVkIGZ1bmN0aW9ucyBmcm9tIEpTLVlBTUwgMS54Lnhcbm1vZHVsZS5leHBvcnRzLnNjYW4gICAgICAgICAgID0gZGVwcmVjYXRlZCgnc2NhbicpO1xubW9kdWxlLmV4cG9ydHMucGFyc2UgICAgICAgICAgPSBkZXByZWNhdGVkKCdwYXJzZScpO1xubW9kdWxlLmV4cG9ydHMuY29tcG9zZSAgICAgICAgPSBkZXByZWNhdGVkKCdjb21wb3NlJyk7XG5tb2R1bGUuZXhwb3J0cy5hZGRDb25zdHJ1Y3RvciA9IGRlcHJlY2F0ZWQoJ2FkZENvbnN0cnVjdG9yJyk7XG4iLCIndXNlIHN0cmljdCc7XG5cblxuZnVuY3Rpb24gaXNOb3RoaW5nKHN1YmplY3QpIHtcbiAgcmV0dXJuICh0eXBlb2Ygc3ViamVjdCA9PT0gJ3VuZGVmaW5lZCcpIHx8IChudWxsID09PSBzdWJqZWN0KTtcbn1cblxuXG5mdW5jdGlvbiBpc09iamVjdChzdWJqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIHN1YmplY3QgPT09ICdvYmplY3QnKSAmJiAobnVsbCAhPT0gc3ViamVjdCk7XG59XG5cblxuZnVuY3Rpb24gdG9BcnJheShzZXF1ZW5jZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheShzZXF1ZW5jZSkpIHtcbiAgICByZXR1cm4gc2VxdWVuY2U7XG4gIH0gZWxzZSBpZiAoaXNOb3RoaW5nKHNlcXVlbmNlKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gWyBzZXF1ZW5jZSBdO1xufVxuXG5cbmZ1bmN0aW9uIGV4dGVuZCh0YXJnZXQsIHNvdXJjZSkge1xuICB2YXIgaW5kZXgsIGxlbmd0aCwga2V5LCBzb3VyY2VLZXlzO1xuXG4gIGlmIChzb3VyY2UpIHtcbiAgICBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcblxuICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgIGtleSA9IHNvdXJjZUtleXNbaW5kZXhdO1xuICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5cbmZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIGNvdW50KSB7XG4gIHZhciByZXN1bHQgPSAnJywgY3ljbGU7XG5cbiAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHtcbiAgICByZXN1bHQgKz0gc3RyaW5nO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuXG5mdW5jdGlvbiBpc05lZ2F0aXZlWmVybyhudW1iZXIpIHtcbiAgcmV0dXJuICgwID09PSBudW1iZXIpICYmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXIpO1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLmlzTm90aGluZyAgICAgID0gaXNOb3RoaW5nO1xubW9kdWxlLmV4cG9ydHMuaXNPYmplY3QgICAgICAgPSBpc09iamVjdDtcbm1vZHVsZS5leHBvcnRzLnRvQXJyYXkgICAgICAgID0gdG9BcnJheTtcbm1vZHVsZS5leHBvcnRzLnJlcGVhdCAgICAgICAgID0gcmVwZWF0O1xubW9kdWxlLmV4cG9ydHMuaXNOZWdhdGl2ZVplcm8gPSBpc05lZ2F0aXZlWmVybztcbm1vZHVsZS5leHBvcnRzLmV4dGVuZCAgICAgICAgID0gZXh0ZW5kO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKmVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lKi9cblxudmFyIGNvbW1vbiAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIFlBTUxFeGNlcHRpb24gICAgICAgPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xudmFyIERFRkFVTFRfRlVMTF9TQ0hFTUEgPSByZXF1aXJlKCcuL3NjaGVtYS9kZWZhdWx0X2Z1bGwnKTtcbnZhciBERUZBVUxUX1NBRkVfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9zYWZlJyk7XG5cbnZhciBfdG9TdHJpbmcgICAgICAgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBDSEFSX1RBQiAgICAgICAgICAgICAgICAgID0gMHgwOTsgLyogVGFiICovXG52YXIgQ0hBUl9MSU5FX0ZFRUQgICAgICAgICAgICA9IDB4MEE7IC8qIExGICovXG52YXIgQ0hBUl9DQVJSSUFHRV9SRVRVUk4gICAgICA9IDB4MEQ7IC8qIENSICovXG52YXIgQ0hBUl9TUEFDRSAgICAgICAgICAgICAgICA9IDB4MjA7IC8qIFNwYWNlICovXG52YXIgQ0hBUl9FWENMQU1BVElPTiAgICAgICAgICA9IDB4MjE7IC8qICEgKi9cbnZhciBDSEFSX0RPVUJMRV9RVU9URSAgICAgICAgID0gMHgyMjsgLyogXCIgKi9cbnZhciBDSEFSX1NIQVJQICAgICAgICAgICAgICAgID0gMHgyMzsgLyogIyAqL1xudmFyIENIQVJfUEVSQ0VOVCAgICAgICAgICAgICAgPSAweDI1OyAvKiAlICovXG52YXIgQ0hBUl9BTVBFUlNBTkQgICAgICAgICAgICA9IDB4MjY7IC8qICYgKi9cbnZhciBDSEFSX1NJTkdMRV9RVU9URSAgICAgICAgID0gMHgyNzsgLyogJyAqL1xudmFyIENIQVJfQVNURVJJU0sgICAgICAgICAgICAgPSAweDJBOyAvKiAqICovXG52YXIgQ0hBUl9DT01NQSAgICAgICAgICAgICAgICA9IDB4MkM7IC8qICwgKi9cbnZhciBDSEFSX01JTlVTICAgICAgICAgICAgICAgID0gMHgyRDsgLyogLSAqL1xudmFyIENIQVJfQ09MT04gICAgICAgICAgICAgICAgPSAweDNBOyAvKiA6ICovXG52YXIgQ0hBUl9HUkVBVEVSX1RIQU4gICAgICAgICA9IDB4M0U7IC8qID4gKi9cbnZhciBDSEFSX1FVRVNUSU9OICAgICAgICAgICAgID0gMHgzRjsgLyogPyAqL1xudmFyIENIQVJfQ09NTUVSQ0lBTF9BVCAgICAgICAgPSAweDQwOyAvKiBAICovXG52YXIgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUICA9IDB4NUI7IC8qIFsgKi9cbnZhciBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUID0gMHg1RDsgLyogXSAqL1xudmFyIENIQVJfR1JBVkVfQUNDRU5UICAgICAgICAgPSAweDYwOyAvKiBgICovXG52YXIgQ0hBUl9MRUZUX0NVUkxZX0JSQUNLRVQgICA9IDB4N0I7IC8qIHsgKi9cbnZhciBDSEFSX1ZFUlRJQ0FMX0xJTkUgICAgICAgID0gMHg3QzsgLyogfCAqL1xudmFyIENIQVJfUklHSFRfQ1VSTFlfQlJBQ0tFVCAgPSAweDdEOyAvKiB9ICovXG5cbnZhciBFU0NBUEVfU0VRVUVOQ0VTID0ge307XG5cbkVTQ0FQRV9TRVFVRU5DRVNbMHgwMF0gICA9ICdcXFxcMCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDddICAgPSAnXFxcXGEnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDA4XSAgID0gJ1xcXFxiJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwOV0gICA9ICdcXFxcdCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MEFdICAgPSAnXFxcXG4nO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBCXSAgID0gJ1xcXFx2JztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwQ10gICA9ICdcXFxcZic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MERdICAgPSAnXFxcXHInO1xuRVNDQVBFX1NFUVVFTkNFU1sweDFCXSAgID0gJ1xcXFxlJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMl0gICA9ICdcXFxcXCInO1xuRVNDQVBFX1NFUVVFTkNFU1sweDVDXSAgID0gJ1xcXFxcXFxcJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHg4NV0gICA9ICdcXFxcTic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4QTBdICAgPSAnXFxcXF8nO1xuRVNDQVBFX1NFUVVFTkNFU1sweDIwMjhdID0gJ1xcXFxMJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMDI5XSA9ICdcXFxcUCc7XG5cbnZhciBERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWCA9IFtcbiAgJ3knLCAnWScsICd5ZXMnLCAnWWVzJywgJ1lFUycsICdvbicsICdPbicsICdPTicsXG4gICduJywgJ04nLCAnbm8nLCAnTm8nLCAnTk8nLCAnb2ZmJywgJ09mZicsICdPRkYnXG5dO1xuXG5mdW5jdGlvbiBjb21waWxlU3R5bGVNYXAoc2NoZW1hLCBtYXApIHtcbiAgdmFyIHJlc3VsdCwga2V5cywgaW5kZXgsIGxlbmd0aCwgdGFnLCBzdHlsZSwgdHlwZTtcblxuICBpZiAobnVsbCA9PT0gbWFwKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmVzdWx0ID0ge307XG4gIGtleXMgPSBPYmplY3Qua2V5cyhtYXApO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0YWcgPSBrZXlzW2luZGV4XTtcbiAgICBzdHlsZSA9IFN0cmluZyhtYXBbdGFnXSk7XG5cbiAgICBpZiAoJyEhJyA9PT0gdGFnLnNsaWNlKDAsIDIpKSB7XG4gICAgICB0YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZy5zbGljZSgyKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLmNvbXBpbGVkVHlwZU1hcFt0YWddO1xuXG4gICAgaWYgKHR5cGUgJiYgX2hhc093blByb3BlcnR5LmNhbGwodHlwZS5zdHlsZUFsaWFzZXMsIHN0eWxlKSkge1xuICAgICAgc3R5bGUgPSB0eXBlLnN0eWxlQWxpYXNlc1tzdHlsZV07XG4gICAgfVxuXG4gICAgcmVzdWx0W3RhZ10gPSBzdHlsZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGVuY29kZUhleChjaGFyYWN0ZXIpIHtcbiAgdmFyIHN0cmluZywgaGFuZGxlLCBsZW5ndGg7XG5cbiAgc3RyaW5nID0gY2hhcmFjdGVyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXG4gIGlmIChjaGFyYWN0ZXIgPD0gMHhGRikge1xuICAgIGhhbmRsZSA9ICd4JztcbiAgICBsZW5ndGggPSAyO1xuICB9IGVsc2UgaWYgKGNoYXJhY3RlciA8PSAweEZGRkYpIHtcbiAgICBoYW5kbGUgPSAndSc7XG4gICAgbGVuZ3RoID0gNDtcbiAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPD0gMHhGRkZGRkZGRikge1xuICAgIGhhbmRsZSA9ICdVJztcbiAgICBsZW5ndGggPSA4O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdjb2RlIHBvaW50IHdpdGhpbiBhIHN0cmluZyBtYXkgbm90IGJlIGdyZWF0ZXIgdGhhbiAweEZGRkZGRkZGJyk7XG4gIH1cblxuICByZXR1cm4gJ1xcXFwnICsgaGFuZGxlICsgY29tbW9uLnJlcGVhdCgnMCcsIGxlbmd0aCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBTdGF0ZShvcHRpb25zKSB7XG4gIHRoaXMuc2NoZW1hICAgICAgPSBvcHRpb25zWydzY2hlbWEnXSB8fCBERUZBVUxUX0ZVTExfU0NIRU1BO1xuICB0aGlzLmluZGVudCAgICAgID0gTWF0aC5tYXgoMSwgKG9wdGlvbnNbJ2luZGVudCddIHx8IDIpKTtcbiAgdGhpcy5za2lwSW52YWxpZCA9IG9wdGlvbnNbJ3NraXBJbnZhbGlkJ10gfHwgZmFsc2U7XG4gIHRoaXMuZmxvd0xldmVsICAgPSAoY29tbW9uLmlzTm90aGluZyhvcHRpb25zWydmbG93TGV2ZWwnXSkgPyAtMSA6IG9wdGlvbnNbJ2Zsb3dMZXZlbCddKTtcbiAgdGhpcy5zdHlsZU1hcCAgICA9IGNvbXBpbGVTdHlsZU1hcCh0aGlzLnNjaGVtYSwgb3B0aW9uc1snc3R5bGVzJ10gfHwgbnVsbCk7XG4gIHRoaXMuc29ydEtleXMgICAgPSBvcHRpb25zWydzb3J0S2V5cyddIHx8IGZhbHNlO1xuXG4gIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7XG4gIHRoaXMuZXhwbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkRXhwbGljaXQ7XG5cbiAgdGhpcy50YWcgPSBudWxsO1xuICB0aGlzLnJlc3VsdCA9ICcnO1xuXG4gIHRoaXMuZHVwbGljYXRlcyA9IFtdO1xuICB0aGlzLnVzZWREdXBsaWNhdGVzID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaW5kZW50U3RyaW5nKHN0cmluZywgc3BhY2VzKSB7XG4gIHZhciBpbmQgPSBjb21tb24ucmVwZWF0KCcgJywgc3BhY2VzKSxcbiAgICAgIHBvc2l0aW9uID0gMCxcbiAgICAgIG5leHQgPSAtMSxcbiAgICAgIHJlc3VsdCA9ICcnLFxuICAgICAgbGluZSxcbiAgICAgIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoKSB7XG4gICAgbmV4dCA9IHN0cmluZy5pbmRleE9mKCdcXG4nLCBwb3NpdGlvbik7XG4gICAgaWYgKG5leHQgPT09IC0xKSB7XG4gICAgICBsaW5lID0gc3RyaW5nLnNsaWNlKHBvc2l0aW9uKTtcbiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lID0gc3RyaW5nLnNsaWNlKHBvc2l0aW9uLCBuZXh0ICsgMSk7XG4gICAgICBwb3NpdGlvbiA9IG5leHQgKyAxO1xuICAgIH1cbiAgICBpZiAobGluZS5sZW5ndGggJiYgbGluZSAhPT0gJ1xcbicpIHtcbiAgICAgIHJlc3VsdCArPSBpbmQ7XG4gICAgfVxuICAgIHJlc3VsdCArPSBsaW5lO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpIHtcbiAgcmV0dXJuICdcXG4nICsgY29tbW9uLnJlcGVhdCgnICcsIHN0YXRlLmluZGVudCAqIGxldmVsKTtcbn1cblxuZnVuY3Rpb24gdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBzdHIpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIHR5cGU7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHN0YXRlLmltcGxpY2l0VHlwZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHR5cGUgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW2luZGV4XTtcblxuICAgIGlmICh0eXBlLnJlc29sdmUoc3RyKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBTdHJpbmdCdWlsZGVyKHNvdXJjZSkge1xuICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgdGhpcy5yZXN1bHQgPSAnJztcbiAgdGhpcy5jaGVja3BvaW50ID0gMDtcbn1cblxuU3RyaW5nQnVpbGRlci5wcm90b3R5cGUudGFrZVVwVG8gPSBmdW5jdGlvbiAocG9zaXRpb24pIHtcbiAgdmFyIGVyO1xuXG4gIGlmIChwb3NpdGlvbiA8IHRoaXMuY2hlY2twb2ludCkge1xuICAgIGVyID0gbmV3IEVycm9yKCdwb3NpdGlvbiBzaG91bGQgYmUgPiBjaGVja3BvaW50Jyk7XG4gICAgZXIucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICBlci5jaGVja3BvaW50ID0gdGhpcy5jaGVja3BvaW50O1xuICAgIHRocm93IGVyO1xuICB9XG5cbiAgdGhpcy5yZXN1bHQgKz0gdGhpcy5zb3VyY2Uuc2xpY2UodGhpcy5jaGVja3BvaW50LCBwb3NpdGlvbik7XG4gIHRoaXMuY2hlY2twb2ludCA9IHBvc2l0aW9uO1xuICByZXR1cm4gdGhpcztcbn07XG5cblN0cmluZ0J1aWxkZXIucHJvdG90eXBlLmVzY2FwZUNoYXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBjaGFyYWN0ZXIsIGVzYztcblxuICBjaGFyYWN0ZXIgPSB0aGlzLnNvdXJjZS5jaGFyQ29kZUF0KHRoaXMuY2hlY2twb2ludCk7XG4gIGVzYyA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcmFjdGVyXSB8fCBlbmNvZGVIZXgoY2hhcmFjdGVyKTtcbiAgdGhpcy5yZXN1bHQgKz0gZXNjO1xuICB0aGlzLmNoZWNrcG9pbnQgKz0gMTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cblN0cmluZ0J1aWxkZXIucHJvdG90eXBlLmZpbmlzaCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuc291cmNlLmxlbmd0aCA+IHRoaXMuY2hlY2twb2ludCkge1xuICAgIHRoaXMudGFrZVVwVG8odGhpcy5zb3VyY2UubGVuZ3RoKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gd3JpdGVTY2FsYXIoc3RhdGUsIG9iamVjdCwgbGV2ZWwpIHtcbiAgdmFyIHNpbXBsZSwgZmlyc3QsIHNwYWNlV3JhcCwgZm9sZGVkLCBsaXRlcmFsLCBzaW5nbGUsIGRvdWJsZSxcbiAgICAgIHNhd0xpbmVGZWVkLCBsaW5lUG9zaXRpb24sIGxvbmdlc3RMaW5lLCBpbmRlbnQsIG1heCwgY2hhcmFjdGVyLFxuICAgICAgcG9zaXRpb24sIGVzY2FwZVNlcSwgaGV4RXNjLCBwcmV2aW91cywgbGluZUxlbmd0aCwgbW9kaWZpZXIsXG4gICAgICB0cmFpbGluZ0xpbmVCcmVha3MsIHJlc3VsdDtcblxuICBpZiAoMCA9PT0gb2JqZWN0Lmxlbmd0aCkge1xuICAgIHN0YXRlLmR1bXAgPSBcIicnXCI7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKC0xICE9PSBERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWC5pbmRleE9mKG9iamVjdCkpIHtcbiAgICBzdGF0ZS5kdW1wID0gXCInXCIgKyBvYmplY3QgKyBcIidcIjtcbiAgICByZXR1cm47XG4gIH1cblxuICBzaW1wbGUgPSB0cnVlO1xuICBmaXJzdCA9IG9iamVjdC5sZW5ndGggPyBvYmplY3QuY2hhckNvZGVBdCgwKSA6IDA7XG4gIHNwYWNlV3JhcCA9IChDSEFSX1NQQUNFID09PSBmaXJzdCB8fFxuICAgICAgICAgICAgICAgQ0hBUl9TUEFDRSA9PT0gb2JqZWN0LmNoYXJDb2RlQXQob2JqZWN0Lmxlbmd0aCAtIDEpKTtcblxuICAvLyBTaW1wbGlmaWVkIGNoZWNrIGZvciByZXN0cmljdGVkIGZpcnN0IGNoYXJhY3RlcnNcbiAgLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjbnMtcGxhaW4tZmlyc3QlMjhjJTI5XG4gIGlmIChDSEFSX01JTlVTICAgICAgICAgPT09IGZpcnN0IHx8XG4gICAgICBDSEFSX1FVRVNUSU9OICAgICAgPT09IGZpcnN0IHx8XG4gICAgICBDSEFSX0NPTU1FUkNJQUxfQVQgPT09IGZpcnN0IHx8XG4gICAgICBDSEFSX0dSQVZFX0FDQ0VOVCAgPT09IGZpcnN0KSB7XG4gICAgc2ltcGxlID0gZmFsc2U7XG4gIH1cblxuICAvLyBjYW4gb25seSB1c2UgPiBhbmQgfCBpZiBub3Qgd3JhcHBlZCBpbiBzcGFjZXMuXG4gIGlmIChzcGFjZVdyYXApIHtcbiAgICBzaW1wbGUgPSBmYWxzZTtcbiAgICBmb2xkZWQgPSBmYWxzZTtcbiAgICBsaXRlcmFsID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgZm9sZGVkID0gdHJ1ZTtcbiAgICBsaXRlcmFsID0gdHJ1ZTtcbiAgfVxuXG4gIHNpbmdsZSA9IHRydWU7XG4gIGRvdWJsZSA9IG5ldyBTdHJpbmdCdWlsZGVyKG9iamVjdCk7XG5cbiAgc2F3TGluZUZlZWQgPSBmYWxzZTtcbiAgbGluZVBvc2l0aW9uID0gMDtcbiAgbG9uZ2VzdExpbmUgPSAwO1xuXG4gIGluZGVudCA9IHN0YXRlLmluZGVudCAqIGxldmVsO1xuICBtYXggPSA4MDtcbiAgaWYgKGluZGVudCA8IDQwKSB7XG4gICAgbWF4IC09IGluZGVudDtcbiAgfSBlbHNlIHtcbiAgICBtYXggPSA0MDtcbiAgfVxuXG4gIGZvciAocG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IG9iamVjdC5sZW5ndGg7IHBvc2l0aW9uKyspIHtcbiAgICBjaGFyYWN0ZXIgPSBvYmplY3QuY2hhckNvZGVBdChwb3NpdGlvbik7XG4gICAgaWYgKHNpbXBsZSkge1xuICAgICAgLy8gQ2hhcmFjdGVycyB0aGF0IGNhbiBuZXZlciBhcHBlYXIgaW4gdGhlIHNpbXBsZSBzY2FsYXJcbiAgICAgIGlmICghc2ltcGxlQ2hhcihjaGFyYWN0ZXIpKSB7XG4gICAgICAgIHNpbXBsZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU3RpbGwgc2ltcGxlLiAgSWYgd2UgbWFrZSBpdCBhbGwgdGhlIHdheSB0aHJvdWdoIGxpa2VcbiAgICAgICAgLy8gdGhpcywgdGhlbiB3ZSBjYW4ganVzdCBkdW1wIHRoZSBzdHJpbmcgYXMtaXMuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaW5nbGUgJiYgY2hhcmFjdGVyID09PSBDSEFSX1NJTkdMRV9RVU9URSkge1xuICAgICAgc2luZ2xlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZXNjYXBlU2VxID0gRVNDQVBFX1NFUVVFTkNFU1tjaGFyYWN0ZXJdO1xuICAgIGhleEVzYyA9IG5lZWRzSGV4RXNjYXBlKGNoYXJhY3Rlcik7XG5cbiAgICBpZiAoIWVzY2FwZVNlcSAmJiAhaGV4RXNjKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoY2hhcmFjdGVyICE9PSBDSEFSX0xJTkVfRkVFRCAmJlxuICAgICAgICBjaGFyYWN0ZXIgIT09IENIQVJfRE9VQkxFX1FVT1RFICYmXG4gICAgICAgIGNoYXJhY3RlciAhPT0gQ0hBUl9TSU5HTEVfUVVPVEUpIHtcbiAgICAgIGZvbGRlZCA9IGZhbHNlO1xuICAgICAgbGl0ZXJhbCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09PSBDSEFSX0xJTkVfRkVFRCkge1xuICAgICAgc2F3TGluZUZlZWQgPSB0cnVlO1xuICAgICAgc2luZ2xlID0gZmFsc2U7XG4gICAgICBpZiAocG9zaXRpb24gPiAwKSB7XG4gICAgICAgIHByZXZpb3VzID0gb2JqZWN0LmNoYXJDb2RlQXQocG9zaXRpb24gLSAxKTtcbiAgICAgICAgaWYgKHByZXZpb3VzID09PSBDSEFSX1NQQUNFKSB7XG4gICAgICAgICAgbGl0ZXJhbCA9IGZhbHNlO1xuICAgICAgICAgIGZvbGRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZm9sZGVkKSB7XG4gICAgICAgIGxpbmVMZW5ndGggPSBwb3NpdGlvbiAtIGxpbmVQb3NpdGlvbjtcbiAgICAgICAgbGluZVBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIGlmIChsaW5lTGVuZ3RoID4gbG9uZ2VzdExpbmUpIHtcbiAgICAgICAgICBsb25nZXN0TGluZSA9IGxpbmVMZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhcmFjdGVyICE9PSBDSEFSX0RPVUJMRV9RVU9URSkge1xuICAgICAgc2luZ2xlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZG91YmxlLnRha2VVcFRvKHBvc2l0aW9uKTtcbiAgICBkb3VibGUuZXNjYXBlQ2hhcigpO1xuICB9XG5cbiAgaWYgKHNpbXBsZSAmJiB0ZXN0SW1wbGljaXRSZXNvbHZpbmcoc3RhdGUsIG9iamVjdCkpIHtcbiAgICBzaW1wbGUgPSBmYWxzZTtcbiAgfVxuXG4gIG1vZGlmaWVyID0gJyc7XG4gIGlmIChmb2xkZWQgfHwgbGl0ZXJhbCkge1xuICAgIHRyYWlsaW5nTGluZUJyZWFrcyA9IDA7XG4gICAgaWYgKG9iamVjdC5jaGFyQ29kZUF0KG9iamVjdC5sZW5ndGggLSAxKSA9PT0gQ0hBUl9MSU5FX0ZFRUQpIHtcbiAgICAgIHRyYWlsaW5nTGluZUJyZWFrcyArPSAxO1xuICAgICAgaWYgKG9iamVjdC5jaGFyQ29kZUF0KG9iamVjdC5sZW5ndGggLSAyKSA9PT0gQ0hBUl9MSU5FX0ZFRUQpIHtcbiAgICAgICAgdHJhaWxpbmdMaW5lQnJlYWtzICs9IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRyYWlsaW5nTGluZUJyZWFrcyA9PT0gMCkge1xuICAgICAgbW9kaWZpZXIgPSAnLSc7XG4gICAgfSBlbHNlIGlmICh0cmFpbGluZ0xpbmVCcmVha3MgPT09IDIpIHtcbiAgICAgIG1vZGlmaWVyID0gJysnO1xuICAgIH1cbiAgfVxuXG4gIGlmIChsaXRlcmFsICYmIGxvbmdlc3RMaW5lIDwgbWF4KSB7XG4gICAgZm9sZGVkID0gZmFsc2U7XG4gIH1cblxuICAvLyBJZiBpdCdzIGxpdGVyYWxseSBvbmUgbGluZSwgdGhlbiBkb24ndCBib3RoZXIgd2l0aCB0aGUgbGl0ZXJhbC5cbiAgLy8gV2UgbWF5IHN0aWxsIHdhbnQgdG8gZG8gYSBmb2xkLCB0aG91Z2gsIGlmIGl0J3MgYSBzdXBlciBsb25nIGxpbmUuXG4gIGlmICghc2F3TGluZUZlZWQpIHtcbiAgICBsaXRlcmFsID0gZmFsc2U7XG4gIH1cblxuICBpZiAoc2ltcGxlKSB7XG4gICAgc3RhdGUuZHVtcCA9IG9iamVjdDtcbiAgfSBlbHNlIGlmIChzaW5nbGUpIHtcbiAgICBzdGF0ZS5kdW1wID0gJ1xcJycgKyBvYmplY3QgKyAnXFwnJztcbiAgfSBlbHNlIGlmIChmb2xkZWQpIHtcbiAgICByZXN1bHQgPSBmb2xkKG9iamVjdCwgbWF4KTtcbiAgICBzdGF0ZS5kdW1wID0gJz4nICsgbW9kaWZpZXIgKyAnXFxuJyArIGluZGVudFN0cmluZyhyZXN1bHQsIGluZGVudCk7XG4gIH0gZWxzZSBpZiAobGl0ZXJhbCkge1xuICAgIGlmICghbW9kaWZpZXIpIHtcbiAgICAgIG9iamVjdCA9IG9iamVjdC5yZXBsYWNlKC9cXG4kLywgJycpO1xuICAgIH1cbiAgICBzdGF0ZS5kdW1wID0gJ3wnICsgbW9kaWZpZXIgKyAnXFxuJyArIGluZGVudFN0cmluZyhvYmplY3QsIGluZGVudCk7XG4gIH0gZWxzZSBpZiAoZG91YmxlKSB7XG4gICAgZG91YmxlLmZpbmlzaCgpO1xuICAgIHN0YXRlLmR1bXAgPSAnXCInICsgZG91YmxlLnJlc3VsdCArICdcIic7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZHVtcCBzY2FsYXIgdmFsdWUnKTtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuLy8gVGhlIGB0cmFpbGluZ2AgdmFyIGlzIGEgcmVnZXhwIG1hdGNoIG9mIGFueSB0cmFpbGluZyBgXFxuYCBjaGFyYWN0ZXJzLlxuLy9cbi8vIFRoZXJlIGFyZSB0aHJlZSBjYXNlcyB3ZSBjYXJlIGFib3V0OlxuLy9cbi8vIDEuIE9uZSB0cmFpbGluZyBgXFxuYCBvbiB0aGUgc3RyaW5nLiAgSnVzdCB1c2UgYHxgIG9yIGA+YC5cbi8vICAgIFRoaXMgaXMgdGhlIGFzc3VtZWQgZGVmYXVsdC4gKHRyYWlsaW5nID0gbnVsbClcbi8vIDIuIE5vIHRyYWlsaW5nIGBcXG5gIG9uIHRoZSBzdHJpbmcuICBVc2UgYHwtYCBvciBgPi1gIHRvIFwiY2hvbXBcIiB0aGUgZW5kLlxuLy8gMy4gTW9yZSB0aGFuIG9uZSB0cmFpbGluZyBgXFxuYCBvbiB0aGUgc3RyaW5nLiAgVXNlIGB8K2Agb3IgYD4rYC5cbi8vXG4vLyBJbiB0aGUgY2FzZSBvZiBgPitgLCB0aGVzZSBsaW5lIGJyZWFrcyBhcmUgKm5vdCogZG91YmxlZCAobGlrZSB0aGUgbGluZVxuLy8gYnJlYWtzIHdpdGhpbiB0aGUgc3RyaW5nKSwgc28gaXQncyBpbXBvcnRhbnQgdG8gb25seSBlbmQgd2l0aCB0aGUgZXhhY3Rcbi8vIHNhbWUgbnVtYmVyIGFzIHdlIHN0YXJ0ZWQuXG5mdW5jdGlvbiBmb2xkKG9iamVjdCwgbWF4KSB7XG4gIHZhciByZXN1bHQgPSAnJyxcbiAgICAgIHBvc2l0aW9uID0gMCxcbiAgICAgIGxlbmd0aCA9IG9iamVjdC5sZW5ndGgsXG4gICAgICB0cmFpbGluZyA9IC9cXG4rJC8uZXhlYyhvYmplY3QpLFxuICAgICAgbmV3TGluZTtcblxuICBpZiAodHJhaWxpbmcpIHtcbiAgICBsZW5ndGggPSB0cmFpbGluZy5pbmRleCArIDE7XG4gIH1cblxuICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGgpIHtcbiAgICBuZXdMaW5lID0gb2JqZWN0LmluZGV4T2YoJ1xcbicsIHBvc2l0aW9uKTtcbiAgICBpZiAobmV3TGluZSA+IGxlbmd0aCB8fCBuZXdMaW5lID09PSAtMSkge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXN1bHQgKz0gJ1xcblxcbic7XG4gICAgICB9XG4gICAgICByZXN1bHQgKz0gZm9sZExpbmUob2JqZWN0LnNsaWNlKHBvc2l0aW9uLCBsZW5ndGgpLCBtYXgpO1xuICAgICAgcG9zaXRpb24gPSBsZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ICs9ICdcXG5cXG4nO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IGZvbGRMaW5lKG9iamVjdC5zbGljZShwb3NpdGlvbiwgbmV3TGluZSksIG1heCk7XG4gICAgICBwb3NpdGlvbiA9IG5ld0xpbmUgKyAxO1xuICAgIH1cbiAgfVxuICBpZiAodHJhaWxpbmcgJiYgdHJhaWxpbmdbMF0gIT09ICdcXG4nKSB7XG4gICAgcmVzdWx0ICs9IHRyYWlsaW5nWzBdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZm9sZExpbmUobGluZSwgbWF4KSB7XG4gIGlmIChsaW5lID09PSAnJykge1xuICAgIHJldHVybiBsaW5lO1xuICB9XG5cbiAgdmFyIGZvbGRSZSA9IC9bXlxcc10gW15cXHNdL2csXG4gICAgICByZXN1bHQgPSAnJyxcbiAgICAgIHByZXZNYXRjaCA9IDAsXG4gICAgICBmb2xkU3RhcnQgPSAwLFxuICAgICAgbWF0Y2ggPSBmb2xkUmUuZXhlYyhsaW5lKSxcbiAgICAgIGluZGV4LFxuICAgICAgZm9sZEVuZCxcbiAgICAgIGZvbGRlZDtcblxuICB3aGlsZSAobWF0Y2gpIHtcbiAgICBpbmRleCA9IG1hdGNoLmluZGV4O1xuXG4gICAgLy8gd2hlbiB3ZSBjcm9zcyB0aGUgbWF4IGxlbiwgaWYgdGhlIHByZXZpb3VzIG1hdGNoIHdvdWxkJ3ZlXG4gICAgLy8gYmVlbiBvaywgdXNlIHRoYXQgb25lLCBhbmQgY2Fycnkgb24uICBJZiB0aGVyZSB3YXMgbm8gcHJldmlvdXNcbiAgICAvLyBtYXRjaCBvbiB0aGlzIGZvbGQgc2VjdGlvbiwgdGhlbiBqdXN0IGhhdmUgYSBsb25nIGxpbmUuXG4gICAgaWYgKGluZGV4IC0gZm9sZFN0YXJ0ID4gbWF4KSB7XG4gICAgICBpZiAocHJldk1hdGNoICE9PSBmb2xkU3RhcnQpIHtcbiAgICAgICAgZm9sZEVuZCA9IHByZXZNYXRjaDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvbGRFbmQgPSBpbmRleDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXN1bHQgKz0gJ1xcbic7XG4gICAgICB9XG4gICAgICBmb2xkZWQgPSBsaW5lLnNsaWNlKGZvbGRTdGFydCwgZm9sZEVuZCk7XG4gICAgICByZXN1bHQgKz0gZm9sZGVkO1xuICAgICAgZm9sZFN0YXJ0ID0gZm9sZEVuZCArIDE7XG4gICAgfVxuICAgIHByZXZNYXRjaCA9IGluZGV4ICsgMTtcbiAgICBtYXRjaCA9IGZvbGRSZS5leGVjKGxpbmUpO1xuICB9XG5cbiAgaWYgKHJlc3VsdCkge1xuICAgIHJlc3VsdCArPSAnXFxuJztcbiAgfVxuXG4gIC8vIGlmIHdlIGVuZCB1cCB3aXRoIG9uZSBsYXN0IHdvcmQgYXQgdGhlIGVuZCwgdGhlbiB0aGUgbGFzdCBiaXQgbWlnaHRcbiAgLy8gYmUgc2xpZ2h0bHkgYmlnZ2VyIHRoYW4gd2Ugd2FudGVkLCBiZWNhdXNlIHdlIGV4aXRlZCBvdXQgb2YgdGhlIGxvb3AuXG4gIGlmIChmb2xkU3RhcnQgIT09IHByZXZNYXRjaCAmJiBsaW5lLmxlbmd0aCAtIGZvbGRTdGFydCA+IG1heCkge1xuICAgIHJlc3VsdCArPSBsaW5lLnNsaWNlKGZvbGRTdGFydCwgcHJldk1hdGNoKSArICdcXG4nICtcbiAgICAgICAgICAgICAgbGluZS5zbGljZShwcmV2TWF0Y2ggKyAxKTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgKz0gbGluZS5zbGljZShmb2xkU3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gUmV0dXJucyB0cnVlIGlmIGNoYXJhY3RlciBjYW4gYmUgZm91bmQgaW4gYSBzaW1wbGUgc2NhbGFyXG5mdW5jdGlvbiBzaW1wbGVDaGFyKGNoYXJhY3Rlcikge1xuICByZXR1cm4gQ0hBUl9UQUIgICAgICAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0xJTkVfRkVFRCAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQ0FSUklBR0VfUkVUVVJOICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9DT01NQSAgICAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9MRUZUX0NVUkxZX0JSQUNLRVQgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfU0hBUlAgICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9BTVBFUlNBTkQgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0FTVEVSSVNLICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfRVhDTEFNQVRJT04gICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9WRVJUSUNBTF9MSU5FICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0dSRUFURVJfVEhBTiAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfU0lOR0xFX1FVT1RFICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9ET1VCTEVfUVVPVEUgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1BFUkNFTlQgICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQ09MT04gICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgIUVTQ0FQRV9TRVFVRU5DRVNbY2hhcmFjdGVyXSAgICAgICAgICAgICYmXG4gICAgICAgICAhbmVlZHNIZXhFc2NhcGUoY2hhcmFjdGVyKTtcbn1cblxuLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgY29kZSBuZWVkcyB0byBiZSBlc2NhcGVkLlxuZnVuY3Rpb24gbmVlZHNIZXhFc2NhcGUoY2hhcmFjdGVyKSB7XG4gIHJldHVybiAhKCgweDAwMDIwIDw9IGNoYXJhY3RlciAmJiBjaGFyYWN0ZXIgPD0gMHgwMDAwN0UpIHx8XG4gICAgICAgICAgICgweDAwMDg1ID09PSBjaGFyYWN0ZXIpICAgICAgICAgICAgICAgICAgICAgICAgIHx8XG4gICAgICAgICAgICgweDAwMEEwIDw9IGNoYXJhY3RlciAmJiBjaGFyYWN0ZXIgPD0gMHgwMEQ3RkYpIHx8XG4gICAgICAgICAgICgweDBFMDAwIDw9IGNoYXJhY3RlciAmJiBjaGFyYWN0ZXIgPD0gMHgwMEZGRkQpIHx8XG4gICAgICAgICAgICgweDEwMDAwIDw9IGNoYXJhY3RlciAmJiBjaGFyYWN0ZXIgPD0gMHgxMEZGRkYpKTtcbn1cblxuZnVuY3Rpb24gd3JpdGVGbG93U2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBvYmplY3QpIHtcbiAgdmFyIF9yZXN1bHQgPSAnJyxcbiAgICAgIF90YWcgICAgPSBzdGF0ZS50YWcsXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAvLyBXcml0ZSBvbmx5IHZhbGlkIGVsZW1lbnRzLlxuICAgIGlmICh3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3RbaW5kZXhdLCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICBpZiAoMCAhPT0gaW5kZXgpIHtcbiAgICAgICAgX3Jlc3VsdCArPSAnLCAnO1xuICAgICAgfVxuICAgICAgX3Jlc3VsdCArPSBzdGF0ZS5kdW1wO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSAnWycgKyBfcmVzdWx0ICsgJ10nO1xufVxuXG5mdW5jdGlvbiB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBvYmplY3QsIGNvbXBhY3QpIHtcbiAgdmFyIF9yZXN1bHQgPSAnJyxcbiAgICAgIF90YWcgICAgPSBzdGF0ZS50YWcsXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAvLyBXcml0ZSBvbmx5IHZhbGlkIGVsZW1lbnRzLlxuICAgIGlmICh3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0W2luZGV4XSwgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgIGlmICghY29tcGFjdCB8fCAwICE9PSBpbmRleCkge1xuICAgICAgICBfcmVzdWx0ICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTtcbiAgICAgIH1cbiAgICAgIF9yZXN1bHQgKz0gJy0gJyArIHN0YXRlLmR1bXA7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUudGFnID0gX3RhZztcbiAgc3RhdGUuZHVtcCA9IF9yZXN1bHQgfHwgJ1tdJzsgLy8gRW1wdHkgc2VxdWVuY2UgaWYgbm8gdmFsaWQgdmFsdWVzLlxufVxuXG5mdW5jdGlvbiB3cml0ZUZsb3dNYXBwaW5nKHN0YXRlLCBsZXZlbCwgb2JqZWN0KSB7XG4gIHZhciBfcmVzdWx0ICAgICAgID0gJycsXG4gICAgICBfdGFnICAgICAgICAgID0gc3RhdGUudGFnLFxuICAgICAgb2JqZWN0S2V5TGlzdCA9IE9iamVjdC5rZXlzKG9iamVjdCksXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aCxcbiAgICAgIG9iamVjdEtleSxcbiAgICAgIG9iamVjdFZhbHVlLFxuICAgICAgcGFpckJ1ZmZlcjtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpckJ1ZmZlciA9ICcnO1xuXG4gICAgaWYgKDAgIT09IGluZGV4KSB7XG4gICAgICBwYWlyQnVmZmVyICs9ICcsICc7XG4gICAgfVxuXG4gICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07XG4gICAgb2JqZWN0VmFsdWUgPSBvYmplY3Rbb2JqZWN0S2V5XTtcblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0S2V5LCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIGtleTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KSB7XG4gICAgICBwYWlyQnVmZmVyICs9ICc/ICc7XG4gICAgfVxuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wICsgJzogJztcblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0VmFsdWUsIGZhbHNlLCBmYWxzZSkpIHtcbiAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgcGFpciBiZWNhdXNlIG9mIGludmFsaWQgdmFsdWUuXG4gICAgfVxuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wO1xuXG4gICAgLy8gQm90aCBrZXkgYW5kIHZhbHVlIGFyZSB2YWxpZC5cbiAgICBfcmVzdWx0ICs9IHBhaXJCdWZmZXI7XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gJ3snICsgX3Jlc3VsdCArICd9Jztcbn1cblxuZnVuY3Rpb24gd3JpdGVCbG9ja01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QsIGNvbXBhY3QpIHtcbiAgdmFyIF9yZXN1bHQgICAgICAgPSAnJyxcbiAgICAgIF90YWcgICAgICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICAgIGluZGV4LFxuICAgICAgbGVuZ3RoLFxuICAgICAgb2JqZWN0S2V5LFxuICAgICAgb2JqZWN0VmFsdWUsXG4gICAgICBleHBsaWNpdFBhaXIsXG4gICAgICBwYWlyQnVmZmVyO1xuXG4gIC8vIEFsbG93IHNvcnRpbmcga2V5cyBzbyB0aGF0IHRoZSBvdXRwdXQgZmlsZSBpcyBkZXRlcm1pbmlzdGljXG4gIGlmIChzdGF0ZS5zb3J0S2V5cyA9PT0gdHJ1ZSkge1xuICAgIC8vIERlZmF1bHQgc29ydGluZ1xuICAgIG9iamVjdEtleUxpc3Quc29ydCgpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBzdGF0ZS5zb3J0S2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEN1c3RvbSBzb3J0IGZ1bmN0aW9uXG4gICAgb2JqZWN0S2V5TGlzdC5zb3J0KHN0YXRlLnNvcnRLZXlzKTtcbiAgfSBlbHNlIGlmIChzdGF0ZS5zb3J0S2V5cykge1xuICAgIC8vIFNvbWV0aGluZyBpcyB3cm9uZ1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdzb3J0S2V5cyBtdXN0IGJlIGEgYm9vbGVhbiBvciBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpckJ1ZmZlciA9ICcnO1xuXG4gICAgaWYgKCFjb21wYWN0IHx8IDAgIT09IGluZGV4KSB7XG4gICAgICBwYWlyQnVmZmVyICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTtcbiAgICB9XG5cbiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXlMaXN0W2luZGV4XTtcbiAgICBvYmplY3RWYWx1ZSA9IG9iamVjdFtvYmplY3RLZXldO1xuXG4gICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0S2V5LCB0cnVlLCB0cnVlKSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBwYWlyIGJlY2F1c2Ugb2YgaW52YWxpZCBrZXkuXG4gICAgfVxuXG4gICAgZXhwbGljaXRQYWlyID0gKG51bGwgIT09IHN0YXRlLnRhZyAmJiAnPycgIT09IHN0YXRlLnRhZykgfHxcbiAgICAgICAgICAgICAgICAgICAoc3RhdGUuZHVtcCAmJiBzdGF0ZS5kdW1wLmxlbmd0aCA+IDEwMjQpO1xuXG4gICAgaWYgKGV4cGxpY2l0UGFpcikge1xuICAgICAgaWYgKHN0YXRlLmR1bXAgJiYgQ0hBUl9MSU5FX0ZFRUQgPT09IHN0YXRlLmR1bXAuY2hhckNvZGVBdCgwKSkge1xuICAgICAgICBwYWlyQnVmZmVyICs9ICc/JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhaXJCdWZmZXIgKz0gJz8gJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7XG5cbiAgICBpZiAoZXhwbGljaXRQYWlyKSB7XG4gICAgICBwYWlyQnVmZmVyICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTtcbiAgICB9XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RWYWx1ZSwgdHJ1ZSwgZXhwbGljaXRQYWlyKSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBwYWlyIGJlY2F1c2Ugb2YgaW52YWxpZCB2YWx1ZS5cbiAgICB9XG5cbiAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7XG4gICAgICBwYWlyQnVmZmVyICs9ICc6JztcbiAgICB9IGVsc2Uge1xuICAgICAgcGFpckJ1ZmZlciArPSAnOiAnO1xuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcblxuICAgIC8vIEJvdGgga2V5IGFuZCB2YWx1ZSBhcmUgdmFsaWQuXG4gICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyO1xuICB9XG5cbiAgc3RhdGUudGFnID0gX3RhZztcbiAgc3RhdGUuZHVtcCA9IF9yZXN1bHQgfHwgJ3t9JzsgLy8gRW1wdHkgbWFwcGluZyBpZiBubyB2YWxpZCBwYWlycy5cbn1cblxuZnVuY3Rpb24gZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCBleHBsaWNpdCkge1xuICB2YXIgX3Jlc3VsdCwgdHlwZUxpc3QsIGluZGV4LCBsZW5ndGgsIHR5cGUsIHN0eWxlO1xuXG4gIHR5cGVMaXN0ID0gZXhwbGljaXQgPyBzdGF0ZS5leHBsaWNpdFR5cGVzIDogc3RhdGUuaW1wbGljaXRUeXBlcztcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gdHlwZUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHR5cGUgPSB0eXBlTGlzdFtpbmRleF07XG5cbiAgICBpZiAoKHR5cGUuaW5zdGFuY2VPZiAgfHwgdHlwZS5wcmVkaWNhdGUpICYmXG4gICAgICAgICghdHlwZS5pbnN0YW5jZU9mIHx8ICgoJ29iamVjdCcgPT09IHR5cGVvZiBvYmplY3QpICYmIChvYmplY3QgaW5zdGFuY2VvZiB0eXBlLmluc3RhbmNlT2YpKSkgJiZcbiAgICAgICAgKCF0eXBlLnByZWRpY2F0ZSAgfHwgdHlwZS5wcmVkaWNhdGUob2JqZWN0KSkpIHtcblxuICAgICAgc3RhdGUudGFnID0gZXhwbGljaXQgPyB0eXBlLnRhZyA6ICc/JztcblxuICAgICAgaWYgKHR5cGUucmVwcmVzZW50KSB7XG4gICAgICAgIHN0eWxlID0gc3RhdGUuc3R5bGVNYXBbdHlwZS50YWddIHx8IHR5cGUuZGVmYXVsdFN0eWxlO1xuXG4gICAgICAgIGlmICgnW29iamVjdCBGdW5jdGlvbl0nID09PSBfdG9TdHJpbmcuY2FsbCh0eXBlLnJlcHJlc2VudCkpIHtcbiAgICAgICAgICBfcmVzdWx0ID0gdHlwZS5yZXByZXNlbnQob2JqZWN0LCBzdHlsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwodHlwZS5yZXByZXNlbnQsIHN0eWxlKSkge1xuICAgICAgICAgIF9yZXN1bHQgPSB0eXBlLnJlcHJlc2VudFtzdHlsZV0ob2JqZWN0LCBzdHlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJyE8JyArIHR5cGUudGFnICsgJz4gdGFnIHJlc29sdmVyIGFjY2VwdHMgbm90IFwiJyArIHN0eWxlICsgJ1wiIHN0eWxlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZS5kdW1wID0gX3Jlc3VsdDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBTZXJpYWxpemVzIGBvYmplY3RgIGFuZCB3cml0ZXMgaXQgdG8gZ2xvYmFsIGByZXN1bHRgLlxuLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MsIG9yIGZhbHNlIG9uIGludmFsaWQgb2JqZWN0LlxuLy9cbmZ1bmN0aW9uIHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdCwgYmxvY2ssIGNvbXBhY3QpIHtcbiAgc3RhdGUudGFnID0gbnVsbDtcbiAgc3RhdGUuZHVtcCA9IG9iamVjdDtcblxuICBpZiAoIWRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgZmFsc2UpKSB7XG4gICAgZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCB0cnVlKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gX3RvU3RyaW5nLmNhbGwoc3RhdGUuZHVtcCk7XG5cbiAgaWYgKGJsb2NrKSB7XG4gICAgYmxvY2sgPSAoMCA+IHN0YXRlLmZsb3dMZXZlbCB8fCBzdGF0ZS5mbG93TGV2ZWwgPiBsZXZlbCk7XG4gIH1cblxuICBpZiAoKG51bGwgIT09IHN0YXRlLnRhZyAmJiAnPycgIT09IHN0YXRlLnRhZykgfHwgKDIgIT09IHN0YXRlLmluZGVudCAmJiBsZXZlbCA+IDApKSB7XG4gICAgY29tcGFjdCA9IGZhbHNlO1xuICB9XG5cbiAgdmFyIG9iamVjdE9yQXJyYXkgPSAnW29iamVjdCBPYmplY3RdJyA9PT0gdHlwZSB8fCAnW29iamVjdCBBcnJheV0nID09PSB0eXBlLFxuICAgICAgZHVwbGljYXRlSW5kZXgsXG4gICAgICBkdXBsaWNhdGU7XG5cbiAgaWYgKG9iamVjdE9yQXJyYXkpIHtcbiAgICBkdXBsaWNhdGVJbmRleCA9IHN0YXRlLmR1cGxpY2F0ZXMuaW5kZXhPZihvYmplY3QpO1xuICAgIGR1cGxpY2F0ZSA9IGR1cGxpY2F0ZUluZGV4ICE9PSAtMTtcbiAgfVxuXG4gIGlmIChkdXBsaWNhdGUgJiYgc3RhdGUudXNlZER1cGxpY2F0ZXNbZHVwbGljYXRlSW5kZXhdKSB7XG4gICAgc3RhdGUuZHVtcCA9ICcqcmVmXycgKyBkdXBsaWNhdGVJbmRleDtcbiAgfSBlbHNlIHtcbiAgICBpZiAob2JqZWN0T3JBcnJheSAmJiBkdXBsaWNhdGUgJiYgIXN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgICAgc3RhdGUudXNlZER1cGxpY2F0ZXNbZHVwbGljYXRlSW5kZXhdID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCdbb2JqZWN0IE9iamVjdF0nID09PSB0eXBlKSB7XG4gICAgICBpZiAoYmxvY2sgJiYgKDAgIT09IE9iamVjdC5rZXlzKHN0YXRlLmR1bXApLmxlbmd0aCkpIHtcbiAgICAgICAgd3JpdGVCbG9ja01hcHBpbmcoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wLCBjb21wYWN0KTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZSkge1xuICAgICAgICAgIHN0YXRlLmR1bXAgPSAnJnJlZl8nICsgZHVwbGljYXRlSW5kZXggKyAoMCA9PT0gbGV2ZWwgPyAnXFxuJyA6ICcnKSArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZSkge1xuICAgICAgICAgIHN0YXRlLmR1bXAgPSAnJnJlZl8nICsgZHVwbGljYXRlSW5kZXggKyAnICcgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICgnW29iamVjdCBBcnJheV0nID09PSB0eXBlKSB7XG4gICAgICBpZiAoYmxvY2sgJiYgKDAgIT09IHN0YXRlLmR1bXAubGVuZ3RoKSkge1xuICAgICAgICB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wLCBjb21wYWN0KTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZSkge1xuICAgICAgICAgIHN0YXRlLmR1bXAgPSAnJnJlZl8nICsgZHVwbGljYXRlSW5kZXggKyAoMCA9PT0gbGV2ZWwgPyAnXFxuJyA6ICcnKSArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdyaXRlRmxvd1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgJyAnICsgc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoJ1tvYmplY3QgU3RyaW5nXScgPT09IHR5cGUpIHtcbiAgICAgIGlmICgnPycgIT09IHN0YXRlLnRhZykge1xuICAgICAgICB3cml0ZVNjYWxhcihzdGF0ZSwgc3RhdGUuZHVtcCwgbGV2ZWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhdGUuc2tpcEludmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ3VuYWNjZXB0YWJsZSBraW5kIG9mIGFuIG9iamVjdCB0byBkdW1wICcgKyB0eXBlKTtcbiAgICB9XG5cbiAgICBpZiAobnVsbCAhPT0gc3RhdGUudGFnICYmICc/JyAhPT0gc3RhdGUudGFnKSB7XG4gICAgICBzdGF0ZS5kdW1wID0gJyE8JyArIHN0YXRlLnRhZyArICc+ICcgKyBzdGF0ZS5kdW1wO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKG9iamVjdCwgc3RhdGUpIHtcbiAgdmFyIG9iamVjdHMgPSBbXSxcbiAgICAgIGR1cGxpY2F0ZXNJbmRleGVzID0gW10sXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBpbnNwZWN0Tm9kZShvYmplY3QsIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gZHVwbGljYXRlc0luZGV4ZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHN0YXRlLmR1cGxpY2F0ZXMucHVzaChvYmplY3RzW2R1cGxpY2F0ZXNJbmRleGVzW2luZGV4XV0pO1xuICB9XG4gIHN0YXRlLnVzZWREdXBsaWNhdGVzID0gbmV3IEFycmF5KGxlbmd0aCk7XG59XG5cbmZ1bmN0aW9uIGluc3BlY3ROb2RlKG9iamVjdCwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpIHtcbiAgdmFyIHR5cGUgPSBfdG9TdHJpbmcuY2FsbChvYmplY3QpLFxuICAgICAgb2JqZWN0S2V5TGlzdCxcbiAgICAgIGluZGV4LFxuICAgICAgbGVuZ3RoO1xuXG4gIGlmIChudWxsICE9PSBvYmplY3QgJiYgJ29iamVjdCcgPT09IHR5cGVvZiBvYmplY3QpIHtcbiAgICBpbmRleCA9IG9iamVjdHMuaW5kZXhPZihvYmplY3QpO1xuICAgIGlmICgtMSAhPT0gaW5kZXgpIHtcbiAgICAgIGlmICgtMSA9PT0gZHVwbGljYXRlc0luZGV4ZXMuaW5kZXhPZihpbmRleCkpIHtcbiAgICAgICAgZHVwbGljYXRlc0luZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdHMucHVzaChvYmplY3QpO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgICAgIGluc3BlY3ROb2RlKG9iamVjdFtpbmRleF0sIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqZWN0S2V5TGlzdCA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdEtleUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgICAgIGluc3BlY3ROb2RlKG9iamVjdFtvYmplY3RLZXlMaXN0W2luZGV4XV0sIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkdW1wKGlucHV0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIHZhciBzdGF0ZSA9IG5ldyBTdGF0ZShvcHRpb25zKTtcblxuICBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKGlucHV0LCBzdGF0ZSk7XG5cbiAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgMCwgaW5wdXQsIHRydWUsIHRydWUpKSB7XG4gICAgcmV0dXJuIHN0YXRlLmR1bXAgKyAnXFxuJztcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIHNhZmVEdW1wKGlucHV0LCBvcHRpb25zKSB7XG4gIHJldHVybiBkdW1wKGlucHV0LCBjb21tb24uZXh0ZW5kKHsgc2NoZW1hOiBERUZBVUxUX1NBRkVfU0NIRU1BIH0sIG9wdGlvbnMpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMuZHVtcCAgICAgPSBkdW1wO1xubW9kdWxlLmV4cG9ydHMuc2FmZUR1bXAgPSBzYWZlRHVtcDtcbiIsIid1c2Ugc3RyaWN0JztcblxuXG5mdW5jdGlvbiBZQU1MRXhjZXB0aW9uKHJlYXNvbiwgbWFyaykge1xuICB0aGlzLm5hbWUgICAgPSAnWUFNTEV4Y2VwdGlvbic7XG4gIHRoaXMucmVhc29uICA9IHJlYXNvbjtcbiAgdGhpcy5tYXJrICAgID0gbWFyaztcbiAgdGhpcy5tZXNzYWdlID0gdGhpcy50b1N0cmluZyhmYWxzZSk7XG59XG5cblxuWUFNTEV4Y2VwdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7XG4gIHZhciByZXN1bHQ7XG5cbiAgcmVzdWx0ID0gJ0pTLVlBTUw6ICcgKyAodGhpcy5yZWFzb24gfHwgJyh1bmtub3duIHJlYXNvbiknKTtcblxuICBpZiAoIWNvbXBhY3QgJiYgdGhpcy5tYXJrKSB7XG4gICAgcmVzdWx0ICs9ICcgJyArIHRoaXMubWFyay50b1N0cmluZygpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxubW9kdWxlLmV4cG9ydHMgPSBZQU1MRXhjZXB0aW9uO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKmVzbGludC1kaXNhYmxlIG1heC1sZW4sbm8tdXNlLWJlZm9yZS1kZWZpbmUqL1xuXG52YXIgY29tbW9uICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG52YXIgWUFNTEV4Y2VwdGlvbiAgICAgICA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG52YXIgTWFyayAgICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vbWFyaycpO1xudmFyIERFRkFVTFRfU0FGRV9TQ0hFTUEgPSByZXF1aXJlKCcuL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbnZhciBERUZBVUxUX0ZVTExfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG5cblxudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cblxudmFyIENPTlRFWFRfRkxPV19JTiAgID0gMTtcbnZhciBDT05URVhUX0ZMT1dfT1VUICA9IDI7XG52YXIgQ09OVEVYVF9CTE9DS19JTiAgPSAzO1xudmFyIENPTlRFWFRfQkxPQ0tfT1VUID0gNDtcblxuXG52YXIgQ0hPTVBJTkdfQ0xJUCAgPSAxO1xudmFyIENIT01QSU5HX1NUUklQID0gMjtcbnZhciBDSE9NUElOR19LRUVQICA9IDM7XG5cblxudmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSAgICAgICAgID0gL1tcXHgwMC1cXHgwOFxceDBCXFx4MENcXHgwRS1cXHgxRlxceDdGLVxceDg0XFx4ODYtXFx4OUZcXHVGRkZFXFx1RkZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0vO1xudmFyIFBBVFRFUk5fTk9OX0FTQ0lJX0xJTkVfQlJFQUtTID0gL1tcXHg4NVxcdTIwMjhcXHUyMDI5XS87XG52YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgICAgICAgPSAvWyxcXFtcXF1cXHtcXH1dLztcbnZhciBQQVRURVJOX1RBR19IQU5ETEUgICAgICAgICAgICA9IC9eKD86IXwhIXwhW2EtelxcLV0rISkkL2k7XG52YXIgUEFUVEVSTl9UQUdfVVJJICAgICAgICAgICAgICAgPSAvXig/OiF8W14sXFxbXFxdXFx7XFx9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelxcLSM7XFwvXFw/OkAmPVxcK1xcJCxfXFwuIX5cXConXFwoXFwpXFxbXFxdXSkqJC9pO1xuXG5cbmZ1bmN0aW9uIGlzX0VPTChjKSB7XG4gIHJldHVybiAoYyA9PT0gMHgwQS8qIExGICovKSB8fCAoYyA9PT0gMHgwRC8qIENSICovKTtcbn1cblxuZnVuY3Rpb24gaXNfV0hJVEVfU1BBQ0UoYykge1xuICByZXR1cm4gKGMgPT09IDB4MDkvKiBUYWIgKi8pIHx8IChjID09PSAweDIwLyogU3BhY2UgKi8pO1xufVxuXG5mdW5jdGlvbiBpc19XU19PUl9FT0woYykge1xuICByZXR1cm4gKGMgPT09IDB4MDkvKiBUYWIgKi8pIHx8XG4gICAgICAgICAoYyA9PT0gMHgyMC8qIFNwYWNlICovKSB8fFxuICAgICAgICAgKGMgPT09IDB4MEEvKiBMRiAqLykgfHxcbiAgICAgICAgIChjID09PSAweDBELyogQ1IgKi8pO1xufVxuXG5mdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7XG4gIHJldHVybiAweDJDLyogLCAqLyA9PT0gYyB8fFxuICAgICAgICAgMHg1Qi8qIFsgKi8gPT09IGMgfHxcbiAgICAgICAgIDB4NUQvKiBdICovID09PSBjIHx8XG4gICAgICAgICAweDdCLyogeyAqLyA9PT0gYyB8fFxuICAgICAgICAgMHg3RC8qIH0gKi8gPT09IGM7XG59XG5cbmZ1bmN0aW9uIGZyb21IZXhDb2RlKGMpIHtcbiAgdmFyIGxjO1xuXG4gIGlmICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKSB7XG4gICAgcmV0dXJuIGMgLSAweDMwO1xuICB9XG5cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1iaXR3aXNlKi9cbiAgbGMgPSBjIHwgMHgyMDtcblxuICBpZiAoKDB4NjEvKiBhICovIDw9IGxjKSAmJiAobGMgPD0gMHg2Ni8qIGYgKi8pKSB7XG4gICAgcmV0dXJuIGxjIC0gMHg2MSArIDEwO1xuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVkSGV4TGVuKGMpIHtcbiAgaWYgKGMgPT09IDB4NzgvKiB4ICovKSB7IHJldHVybiAyOyB9XG4gIGlmIChjID09PSAweDc1LyogdSAqLykgeyByZXR1cm4gNDsgfVxuICBpZiAoYyA9PT0gMHg1NS8qIFUgKi8pIHsgcmV0dXJuIDg7IH1cbiAgcmV0dXJuIDA7XG59XG5cbmZ1bmN0aW9uIGZyb21EZWNpbWFsQ29kZShjKSB7XG4gIGlmICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKSB7XG4gICAgcmV0dXJuIGMgLSAweDMwO1xuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuXG5mdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7XG4gIHJldHVybiAoYyA9PT0gMHgzMC8qIDAgKi8pID8gJ1xceDAwJyA6XG4gICAgICAgIChjID09PSAweDYxLyogYSAqLykgPyAnXFx4MDcnIDpcbiAgICAgICAgKGMgPT09IDB4NjIvKiBiICovKSA/ICdcXHgwOCcgOlxuICAgICAgICAoYyA9PT0gMHg3NC8qIHQgKi8pID8gJ1xceDA5JyA6XG4gICAgICAgIChjID09PSAweDA5LyogVGFiICovKSA/ICdcXHgwOScgOlxuICAgICAgICAoYyA9PT0gMHg2RS8qIG4gKi8pID8gJ1xceDBBJyA6XG4gICAgICAgIChjID09PSAweDc2LyogdiAqLykgPyAnXFx4MEInIDpcbiAgICAgICAgKGMgPT09IDB4NjYvKiBmICovKSA/ICdcXHgwQycgOlxuICAgICAgICAoYyA9PT0gMHg3Mi8qIHIgKi8pID8gJ1xceDBEJyA6XG4gICAgICAgIChjID09PSAweDY1LyogZSAqLykgPyAnXFx4MUInIDpcbiAgICAgICAgKGMgPT09IDB4MjAvKiBTcGFjZSAqLykgPyAnICcgOlxuICAgICAgICAoYyA9PT0gMHgyMi8qIFwiICovKSA/ICdcXHgyMicgOlxuICAgICAgICAoYyA9PT0gMHgyRi8qIC8gKi8pID8gJy8nIDpcbiAgICAgICAgKGMgPT09IDB4NUMvKiBcXCAqLykgPyAnXFx4NUMnIDpcbiAgICAgICAgKGMgPT09IDB4NEUvKiBOICovKSA/ICdcXHg4NScgOlxuICAgICAgICAoYyA9PT0gMHg1Ri8qIF8gKi8pID8gJ1xceEEwJyA6XG4gICAgICAgIChjID09PSAweDRDLyogTCAqLykgPyAnXFx1MjAyOCcgOlxuICAgICAgICAoYyA9PT0gMHg1MC8qIFAgKi8pID8gJ1xcdTIwMjknIDogJyc7XG59XG5cbmZ1bmN0aW9uIGNoYXJGcm9tQ29kZXBvaW50KGMpIHtcbiAgaWYgKGMgPD0gMHhGRkZGKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYyk7XG4gIH1cbiAgLy8gRW5jb2RlIFVURi0xNiBzdXJyb2dhdGUgcGFpclxuICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtMTYjQ29kZV9wb2ludHNfVS4yQjAxMDAwMF90b19VLjJCMTBGRkZGXG4gIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAtIDB4MDEwMDAwKSA+PiAxMCkgKyAweEQ4MDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYyAtIDB4MDEwMDAwKSAmIDB4MDNGRikgKyAweERDMDApO1xufVxuXG52YXIgc2ltcGxlRXNjYXBlQ2hlY2sgPSBuZXcgQXJyYXkoMjU2KTsgLy8gaW50ZWdlciwgZm9yIGZhc3QgYWNjZXNzXG52YXIgc2ltcGxlRXNjYXBlTWFwID0gbmV3IEFycmF5KDI1Nik7XG5mb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgaSsrKSB7XG4gIHNpbXBsZUVzY2FwZUNoZWNrW2ldID0gc2ltcGxlRXNjYXBlU2VxdWVuY2UoaSkgPyAxIDogMDtcbiAgc2ltcGxlRXNjYXBlTWFwW2ldID0gc2ltcGxlRXNjYXBlU2VxdWVuY2UoaSk7XG59XG5cblxuZnVuY3Rpb24gU3RhdGUoaW5wdXQsIG9wdGlvbnMpIHtcbiAgdGhpcy5pbnB1dCA9IGlucHV0O1xuXG4gIHRoaXMuZmlsZW5hbWUgID0gb3B0aW9uc1snZmlsZW5hbWUnXSAgfHwgbnVsbDtcbiAgdGhpcy5zY2hlbWEgICAgPSBvcHRpb25zWydzY2hlbWEnXSAgICB8fCBERUZBVUxUX0ZVTExfU0NIRU1BO1xuICB0aGlzLm9uV2FybmluZyA9IG9wdGlvbnNbJ29uV2FybmluZyddIHx8IG51bGw7XG4gIHRoaXMubGVnYWN5ICAgID0gb3B0aW9uc1snbGVnYWN5J10gICAgfHwgZmFsc2U7XG5cbiAgdGhpcy5pbXBsaWNpdFR5cGVzID0gdGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdDtcbiAgdGhpcy50eXBlTWFwICAgICAgID0gdGhpcy5zY2hlbWEuY29tcGlsZWRUeXBlTWFwO1xuXG4gIHRoaXMubGVuZ3RoICAgICA9IGlucHV0Lmxlbmd0aDtcbiAgdGhpcy5wb3NpdGlvbiAgID0gMDtcbiAgdGhpcy5saW5lICAgICAgID0gMDtcbiAgdGhpcy5saW5lU3RhcnQgID0gMDtcbiAgdGhpcy5saW5lSW5kZW50ID0gMDtcblxuICB0aGlzLmRvY3VtZW50cyA9IFtdO1xuXG4gIC8qXG4gIHRoaXMudmVyc2lvbjtcbiAgdGhpcy5jaGVja0xpbmVCcmVha3M7XG4gIHRoaXMudGFnTWFwO1xuICB0aGlzLmFuY2hvck1hcDtcbiAgdGhpcy50YWc7XG4gIHRoaXMuYW5jaG9yO1xuICB0aGlzLmtpbmQ7XG4gIHRoaXMucmVzdWx0OyovXG5cbn1cblxuXG5mdW5jdGlvbiBnZW5lcmF0ZUVycm9yKHN0YXRlLCBtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgWUFNTEV4Y2VwdGlvbihcbiAgICBtZXNzYWdlLFxuICAgIG5ldyBNYXJrKHN0YXRlLmZpbGVuYW1lLCBzdGF0ZS5pbnB1dCwgc3RhdGUucG9zaXRpb24sIHN0YXRlLmxpbmUsIChzdGF0ZS5wb3NpdGlvbiAtIHN0YXRlLmxpbmVTdGFydCkpKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dFcnJvcihzdGF0ZSwgbWVzc2FnZSkge1xuICB0aHJvdyBnZW5lcmF0ZUVycm9yKHN0YXRlLCBtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dXYXJuaW5nKHN0YXRlLCBtZXNzYWdlKSB7XG4gIHZhciBlcnJvciA9IGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpO1xuXG4gIGlmIChzdGF0ZS5vbldhcm5pbmcpIHtcbiAgICBzdGF0ZS5vbldhcm5pbmcuY2FsbChudWxsLCBlcnJvcik7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuXG52YXIgZGlyZWN0aXZlSGFuZGxlcnMgPSB7XG5cbiAgWUFNTDogZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzdGF0ZSwgbmFtZSwgYXJncykge1xuXG4gICAgICB2YXIgbWF0Y2gsIG1ham9yLCBtaW5vcjtcblxuICAgICAgaWYgKG51bGwgIT09IHN0YXRlLnZlcnNpb24pIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2R1cGxpY2F0aW9uIG9mICVZQU1MIGRpcmVjdGl2ZScpO1xuICAgICAgfVxuXG4gICAgICBpZiAoMSAhPT0gYXJncy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ1lBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICAgIH1cblxuICAgICAgbWF0Y2ggPSAvXihbMC05XSspXFwuKFswLTldKykkLy5leGVjKGFyZ3NbMF0pO1xuXG4gICAgICBpZiAobnVsbCA9PT0gbWF0Y2gpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2lsbC1mb3JtZWQgYXJndW1lbnQgb2YgdGhlIFlBTUwgZGlyZWN0aXZlJyk7XG4gICAgICB9XG5cbiAgICAgIG1ham9yID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICAgIG1pbm9yID0gcGFyc2VJbnQobWF0Y2hbMl0sIDEwKTtcblxuICAgICAgaWYgKDEgIT09IG1ham9yKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCcpO1xuICAgICAgfVxuXG4gICAgICBzdGF0ZS52ZXJzaW9uID0gYXJnc1swXTtcbiAgICAgIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IChtaW5vciA8IDIpO1xuXG4gICAgICBpZiAoMSAhPT0gbWlub3IgJiYgMiAhPT0gbWlub3IpIHtcbiAgICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAndW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCcpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgVEFHOiBmdW5jdGlvbiBoYW5kbGVUYWdEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHtcblxuICAgICAgdmFyIGhhbmRsZSwgcHJlZml4O1xuXG4gICAgICBpZiAoMiAhPT0gYXJncy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ1RBRyBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IHR3byBhcmd1bWVudHMnKTtcbiAgICAgIH1cblxuICAgICAgaGFuZGxlID0gYXJnc1swXTtcbiAgICAgIHByZWZpeCA9IGFyZ3NbMV07XG5cbiAgICAgIGlmICghUEFUVEVSTl9UQUdfSEFORExFLnRlc3QoaGFuZGxlKSkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnaWxsLWZvcm1lZCB0YWcgaGFuZGxlIChmaXJzdCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLnRhZ01hcCwgaGFuZGxlKSkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGhlcmUgaXMgYSBwcmV2aW91c2x5IGRlY2xhcmVkIHN1ZmZpeCBmb3IgXCInICsgaGFuZGxlICsgJ1wiIHRhZyBoYW5kbGUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFQQVRURVJOX1RBR19VUkkudGVzdChwcmVmaXgpKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbGwtZm9ybWVkIHRhZyBwcmVmaXggKHNlY29uZCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUnKTtcbiAgICAgIH1cblxuICAgICAgc3RhdGUudGFnTWFwW2hhbmRsZV0gPSBwcmVmaXg7XG4gICAgfVxufTtcblxuXG5mdW5jdGlvbiBjYXB0dXJlU2VnbWVudChzdGF0ZSwgc3RhcnQsIGVuZCwgY2hlY2tKc29uKSB7XG4gIHZhciBfcG9zaXRpb24sIF9sZW5ndGgsIF9jaGFyYWN0ZXIsIF9yZXN1bHQ7XG5cbiAgaWYgKHN0YXJ0IDwgZW5kKSB7XG4gICAgX3Jlc3VsdCA9IHN0YXRlLmlucHV0LnNsaWNlKHN0YXJ0LCBlbmQpO1xuXG4gICAgaWYgKGNoZWNrSnNvbikge1xuICAgICAgZm9yIChfcG9zaXRpb24gPSAwLCBfbGVuZ3RoID0gX3Jlc3VsdC5sZW5ndGg7XG4gICAgICAgICAgIF9wb3NpdGlvbiA8IF9sZW5ndGg7XG4gICAgICAgICAgIF9wb3NpdGlvbiArPSAxKSB7XG4gICAgICAgIF9jaGFyYWN0ZXIgPSBfcmVzdWx0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uKTtcbiAgICAgICAgaWYgKCEoMHgwOSA9PT0gX2NoYXJhY3RlciB8fFxuICAgICAgICAgICAgICAweDIwIDw9IF9jaGFyYWN0ZXIgJiYgX2NoYXJhY3RlciA8PSAweDEwRkZGRikpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZXhwZWN0ZWQgdmFsaWQgSlNPTiBjaGFyYWN0ZXInKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRlLnJlc3VsdCArPSBfcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlTWFwcGluZ3Moc3RhdGUsIGRlc3RpbmF0aW9uLCBzb3VyY2UpIHtcbiAgdmFyIHNvdXJjZUtleXMsIGtleSwgaW5kZXgsIHF1YW50aXR5O1xuXG4gIGlmICghY29tbW9uLmlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2Fubm90IG1lcmdlIG1hcHBpbmdzOyB0aGUgcHJvdmlkZWQgc291cmNlIG9iamVjdCBpcyB1bmFjY2VwdGFibGUnKTtcbiAgfVxuXG4gIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuXG4gIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7XG4gICAga2V5ID0gc291cmNlS2V5c1tpbmRleF07XG5cbiAgICBpZiAoIV9oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlc3RpbmF0aW9uLCBrZXkpKSB7XG4gICAgICBkZXN0aW5hdGlvbltrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlKSB7XG4gIHZhciBpbmRleCwgcXVhbnRpdHk7XG5cbiAga2V5Tm9kZSA9IFN0cmluZyhrZXlOb2RlKTtcblxuICBpZiAobnVsbCA9PT0gX3Jlc3VsdCkge1xuICAgIF9yZXN1bHQgPSB7fTtcbiAgfVxuXG4gIGlmICgndGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UnID09PSBrZXlUYWcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZU5vZGUpKSB7XG4gICAgICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSB2YWx1ZU5vZGUubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7XG4gICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtZXJnZU1hcHBpbmdzKHN0YXRlLCBfcmVzdWx0LCB2YWx1ZU5vZGUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBfcmVzdWx0W2tleU5vZGVdID0gdmFsdWVOb2RlO1xuICB9XG5cbiAgcmV0dXJuIF9yZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHJlYWRMaW5lQnJlYWsoc3RhdGUpIHtcbiAgdmFyIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKDB4MEEvKiBMRiAqLyA9PT0gY2gpIHtcbiAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICB9IGVsc2UgaWYgKDB4MEQvKiBDUiAqLyA9PT0gY2gpIHtcbiAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgIGlmICgweDBBLyogTEYgKi8gPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSB7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYSBsaW5lIGJyZWFrIGlzIGV4cGVjdGVkJyk7XG4gIH1cblxuICBzdGF0ZS5saW5lICs9IDE7XG4gIHN0YXRlLmxpbmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uO1xufVxuXG5mdW5jdGlvbiBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBhbGxvd0NvbW1lbnRzLCBjaGVja0luZGVudCkge1xuICB2YXIgbGluZUJyZWFrcyA9IDAsXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoYWxsb3dDb21tZW50cyAmJiAweDIzLyogIyAqLyA9PT0gY2gpIHtcbiAgICAgIGRvIHtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfSB3aGlsZSAoY2ggIT09IDB4MEEvKiBMRiAqLyAmJiBjaCAhPT0gMHgwRC8qIENSICovICYmIDAgIT09IGNoKTtcbiAgICB9XG5cbiAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7XG5cbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBsaW5lQnJlYWtzKys7XG4gICAgICBzdGF0ZS5saW5lSW5kZW50ID0gMDtcblxuICAgICAgd2hpbGUgKDB4MjAvKiBTcGFjZSAqLyA9PT0gY2gpIHtcbiAgICAgICAgc3RhdGUubGluZUluZGVudCsrO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmICgtMSAhPT0gY2hlY2tJbmRlbnQgJiYgMCAhPT0gbGluZUJyZWFrcyAmJiBzdGF0ZS5saW5lSW5kZW50IDwgY2hlY2tJbmRlbnQpIHtcbiAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICdkZWZpY2llbnQgaW5kZW50YXRpb24nKTtcbiAgfVxuXG4gIHJldHVybiBsaW5lQnJlYWtzO1xufVxuXG5mdW5jdGlvbiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHtcbiAgdmFyIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG5cbiAgLy8gQ29uZGl0aW9uIHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgaXMgdGVzdGVkXG4gIC8vIGluIHBhcmVudCBvbiBlYWNoIGNhbGwsIGZvciBlZmZpY2llbmN5LiBObyBuZWVkcyB0byB0ZXN0IGhlcmUgYWdhaW4uXG4gIGlmICgoMHgyRC8qIC0gKi8gPT09IGNoIHx8IDB4MkUvKiAuICovID09PSBjaCkgJiZcbiAgICAgIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMSkgPT09IGNoICYmXG4gICAgICBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbiArIDIpID09PSBjaCkge1xuXG4gICAgX3Bvc2l0aW9uICs9IDM7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uKTtcblxuICAgIGlmIChjaCA9PT0gMCB8fCBpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIGNvdW50KSB7XG4gIGlmICgxID09PSBjb3VudCkge1xuICAgIHN0YXRlLnJlc3VsdCArPSAnICc7XG4gIH0gZWxzZSBpZiAoY291bnQgPiAxKSB7XG4gICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGNvdW50IC0gMSk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiByZWFkUGxhaW5TY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQsIHdpdGhpbkZsb3dDb2xsZWN0aW9uKSB7XG4gIHZhciBwcmVjZWRpbmcsXG4gICAgICBmb2xsb3dpbmcsXG4gICAgICBjYXB0dXJlU3RhcnQsXG4gICAgICBjYXB0dXJlRW5kLFxuICAgICAgaGFzUGVuZGluZ0NvbnRlbnQsXG4gICAgICBfbGluZSxcbiAgICAgIF9saW5lU3RhcnQsXG4gICAgICBfbGluZUluZGVudCxcbiAgICAgIF9raW5kID0gc3RhdGUua2luZCxcbiAgICAgIF9yZXN1bHQgPSBzdGF0ZS5yZXN1bHQsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmIChpc19XU19PUl9FT0woY2gpICAgICAgICAgICAgIHx8XG4gICAgICBpc19GTE9XX0lORElDQVRPUihjaCkgICAgICAgIHx8XG4gICAgICAweDIzLyogIyAqLyAgICAgICAgICAgPT09IGNoIHx8XG4gICAgICAweDI2LyogJiAqLyAgICAgICAgICAgPT09IGNoIHx8XG4gICAgICAweDJBLyogKiAqLyAgICAgICAgICAgPT09IGNoIHx8XG4gICAgICAweDIxLyogISAqLyAgICAgICAgICAgPT09IGNoIHx8XG4gICAgICAweDdDLyogfCAqLyAgICAgICAgICAgPT09IGNoIHx8XG4gICAgICAweDNFLyogPiAqLyAgICAgICAgICAgPT09IGNoIHx8XG4gICAgICAweDI3LyogJyAqLyAgICAgICAgICAgPT09IGNoIHx8XG4gICAgICAweDIyLyogXCIgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyNS8qICUgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHg0MC8qIEAgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHg2MC8qIGAgKi8gICAgICAgICAgID09PSBjaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgweDNGLyogPyAqLyA9PT0gY2ggfHwgMHgyRC8qIC0gKi8gPT09IGNoKSB7XG4gICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpIHx8XG4gICAgICAgIHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGZvbGxvd2luZykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gIGhhc1BlbmRpbmdDb250ZW50ID0gZmFsc2U7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgaWYgKDB4M0EvKiA6ICovID09PSBjaCkge1xuICAgICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICBpZiAoaXNfV1NfT1JfRU9MKGZvbGxvd2luZykgfHxcbiAgICAgICAgICB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmICgweDIzLyogIyAqLyA9PT0gY2gpIHtcbiAgICAgIHByZWNlZGluZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gLSAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChwcmVjZWRpbmcpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmICgoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB8fFxuICAgICAgICAgICAgICAgd2l0aGluRmxvd0NvbGxlY3Rpb24gJiYgaXNfRkxPV19JTkRJQ0FUT1IoY2gpKSB7XG4gICAgICBicmVhaztcblxuICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgX2xpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDtcbiAgICAgIF9saW5lSW5kZW50ID0gc3RhdGUubGluZUluZGVudDtcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCAtMSk7XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID49IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uID0gY2FwdHVyZUVuZDtcbiAgICAgICAgc3RhdGUubGluZSA9IF9saW5lO1xuICAgICAgICBzdGF0ZS5saW5lU3RhcnQgPSBfbGluZVN0YXJ0O1xuICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNQZW5kaW5nQ29udGVudCkge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgZmFsc2UpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc3RhdGUubGluZSAtIF9saW5lKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbiArIDE7XG4gICAgfVxuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICB9XG5cbiAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgZmFsc2UpO1xuXG4gIGlmIChzdGF0ZS5yZXN1bHQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRlLmtpbmQgPSBfa2luZDtcbiAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBjaCxcbiAgICAgIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDI3LyogJyAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuICBzdGF0ZS5wb3NpdGlvbisrO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKDAgIT09IChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSkge1xuICAgIGlmICgweDI3LyogJyAqLyA9PT0gY2gpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCB0cnVlKTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgICAgaWYgKDB4MjcvKiAnICovID09PSBjaCkge1xuICAgICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgdHJ1ZSk7XG4gICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpO1xuICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgfSBlbHNlIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXInKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyJyk7XG59XG5cbmZ1bmN0aW9uIHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIGNhcHR1cmVTdGFydCxcbiAgICAgIGNhcHR1cmVFbmQsXG4gICAgICBoZXhMZW5ndGgsXG4gICAgICBoZXhSZXN1bHQsXG4gICAgICB0bXAsIHRtcEVzYyxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKDB4MjIvKiBcIiAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuICBzdGF0ZS5wb3NpdGlvbisrO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKDAgIT09IChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSkge1xuICAgIGlmICgweDIyLyogXCIgKi8gPT09IGNoKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICB9IGVsc2UgaWYgKDB4NUMvKiBcXCAqLyA9PT0gY2gpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCB0cnVlKTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpO1xuXG4gICAgICAgIC8vIFRPRE86IHJld29yayB0byBpbmxpbmUgZm4gd2l0aCBubyB0eXBlIGNhc3Q/XG4gICAgICB9IGVsc2UgaWYgKGNoIDwgMjU2ICYmIHNpbXBsZUVzY2FwZUNoZWNrW2NoXSkge1xuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gc2ltcGxlRXNjYXBlTWFwW2NoXTtcbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcblxuICAgICAgfSBlbHNlIGlmICgodG1wID0gZXNjYXBlZEhleExlbihjaCkpID4gMCkge1xuICAgICAgICBoZXhMZW5ndGggPSB0bXA7XG4gICAgICAgIGhleFJlc3VsdCA9IDA7XG5cbiAgICAgICAgZm9yICg7IGhleExlbmd0aCA+IDA7IGhleExlbmd0aC0tKSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgICAgaWYgKCh0bXAgPSBmcm9tSGV4Q29kZShjaCkpID49IDApIHtcbiAgICAgICAgICAgIGhleFJlc3VsdCA9IChoZXhSZXN1bHQgPDwgNCkgKyB0bXA7XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2V4cGVjdGVkIGhleGFkZWNpbWFsIGNoYXJhY3RlcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjaGFyRnJvbUNvZGVwb2ludChoZXhSZXN1bHQpO1xuXG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmtub3duIGVzY2FwZSBzZXF1ZW5jZScpO1xuICAgICAgfVxuXG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyJyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhcicpO1xufVxuXG5mdW5jdGlvbiByZWFkRmxvd0NvbGxlY3Rpb24oc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIHJlYWROZXh0ID0gdHJ1ZSxcbiAgICAgIF9saW5lLFxuICAgICAgX3RhZyAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfcmVzdWx0LFxuICAgICAgX2FuY2hvciAgPSBzdGF0ZS5hbmNob3IsXG4gICAgICBmb2xsb3dpbmcsXG4gICAgICB0ZXJtaW5hdG9yLFxuICAgICAgaXNQYWlyLFxuICAgICAgaXNFeHBsaWNpdFBhaXIsXG4gICAgICBpc01hcHBpbmcsXG4gICAgICBrZXlOb2RlLFxuICAgICAga2V5VGFnLFxuICAgICAgdmFsdWVOb2RlLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggPT09IDB4NUIvKiBbICovKSB7XG4gICAgdGVybWluYXRvciA9IDB4NUQ7LyogXSAqL1xuICAgIGlzTWFwcGluZyA9IGZhbHNlO1xuICAgIF9yZXN1bHQgPSBbXTtcbiAgfSBlbHNlIGlmIChjaCA9PT0gMHg3Qi8qIHsgKi8pIHtcbiAgICB0ZXJtaW5hdG9yID0gMHg3RDsvKiB9ICovXG4gICAgaXNNYXBwaW5nID0gdHJ1ZTtcbiAgICBfcmVzdWx0ID0ge307XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoMCAhPT0gY2gpIHtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoY2ggPT09IHRlcm1pbmF0b3IpIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgIHN0YXRlLmtpbmQgPSBpc01hcHBpbmcgPyAnbWFwcGluZycgOiAnc2VxdWVuY2UnO1xuICAgICAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIXJlYWROZXh0KSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMnKTtcbiAgICB9XG5cbiAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICBpc1BhaXIgPSBpc0V4cGxpY2l0UGFpciA9IGZhbHNlO1xuXG4gICAgaWYgKDB4M0YvKiA/ICovID09PSBjaCkge1xuICAgICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICBpZiAoaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcbiAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbGluZSA9IHN0YXRlLmxpbmU7XG4gICAgY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfRkxPV19JTiwgZmFsc2UsIHRydWUpO1xuICAgIGtleVRhZyA9IHN0YXRlLnRhZztcbiAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmICgoaXNFeHBsaWNpdFBhaXIgfHwgc3RhdGUubGluZSA9PT0gX2xpbmUpICYmIDB4M0EvKiA6ICovID09PSBjaCkge1xuICAgICAgaXNQYWlyID0gdHJ1ZTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuICAgICAgY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfRkxPV19JTiwgZmFsc2UsIHRydWUpO1xuICAgICAgdmFsdWVOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgIH1cblxuICAgIGlmIChpc01hcHBpbmcpIHtcbiAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlKTtcbiAgICB9IGVsc2UgaWYgKGlzUGFpcikge1xuICAgICAgX3Jlc3VsdC5wdXNoKHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIG51bGwsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9yZXN1bHQucHVzaChrZXlOb2RlKTtcbiAgICB9XG5cbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoMHgyQy8qICwgKi8gPT09IGNoKSB7XG4gICAgICByZWFkTmV4dCA9IHRydWU7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlYWROZXh0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uJyk7XG59XG5cbmZ1bmN0aW9uIHJlYWRCbG9ja1NjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgY2FwdHVyZVN0YXJ0LFxuICAgICAgZm9sZGluZyxcbiAgICAgIGNob21waW5nICAgICAgID0gQ0hPTVBJTkdfQ0xJUCxcbiAgICAgIGRldGVjdGVkSW5kZW50ID0gZmFsc2UsXG4gICAgICB0ZXh0SW5kZW50ICAgICA9IG5vZGVJbmRlbnQsXG4gICAgICBlbXB0eUxpbmVzICAgICA9IDAsXG4gICAgICBhdE1vcmVJbmRlbnRlZCA9IGZhbHNlLFxuICAgICAgdG1wLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggPT09IDB4N0MvKiB8ICovKSB7XG4gICAgZm9sZGluZyA9IGZhbHNlO1xuICB9IGVsc2UgaWYgKGNoID09PSAweDNFLyogPiAqLykge1xuICAgIGZvbGRpbmcgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRlLmtpbmQgPSAnc2NhbGFyJztcbiAgc3RhdGUucmVzdWx0ID0gJyc7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKDB4MkIvKiArICovID09PSBjaCB8fCAweDJELyogLSAqLyA9PT0gY2gpIHtcbiAgICAgIGlmIChDSE9NUElOR19DTElQID09PSBjaG9tcGluZykge1xuICAgICAgICBjaG9tcGluZyA9ICgweDJCLyogKyAqLyA9PT0gY2gpID8gQ0hPTVBJTkdfS0VFUCA6IENIT01QSU5HX1NUUklQO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3JlcGVhdCBvZiBhIGNob21waW5nIG1vZGUgaWRlbnRpZmllcicpO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmICgodG1wID0gZnJvbURlY2ltYWxDb2RlKGNoKSkgPj0gMCkge1xuICAgICAgaWYgKHRtcCA9PT0gMCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYmFkIGV4cGxpY2l0IGluZGVudGF0aW9uIHdpZHRoIG9mIGEgYmxvY2sgc2NhbGFyOyBpdCBjYW5ub3QgYmUgbGVzcyB0aGFuIG9uZScpO1xuICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHtcbiAgICAgICAgdGV4dEluZGVudCA9IG5vZGVJbmRlbnQgKyB0bXAgLSAxO1xuICAgICAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAncmVwZWF0IG9mIGFuIGluZGVudGF0aW9uIHdpZHRoIGlkZW50aWZpZXInKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgZG8geyBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7IH1cbiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKTtcblxuICAgIGlmICgweDIzLyogIyAqLyA9PT0gY2gpIHtcbiAgICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgICB3aGlsZSAoIWlzX0VPTChjaCkgJiYgKDAgIT09IGNoKSk7XG4gICAgfVxuICB9XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7XG4gICAgc3RhdGUubGluZUluZGVudCA9IDA7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgd2hpbGUgKCghZGV0ZWN0ZWRJbmRlbnQgfHwgc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpICYmXG4gICAgICAgICAgICgweDIwLyogU3BhY2UgKi8gPT09IGNoKSkge1xuICAgICAgc3RhdGUubGluZUluZGVudCsrO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGlmICghZGV0ZWN0ZWRJbmRlbnQgJiYgc3RhdGUubGluZUluZGVudCA+IHRleHRJbmRlbnQpIHtcbiAgICAgIHRleHRJbmRlbnQgPSBzdGF0ZS5saW5lSW5kZW50O1xuICAgIH1cblxuICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBlbXB0eUxpbmVzKys7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBFbmQgb2YgdGhlIHNjYWxhci5cbiAgICBpZiAoc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpIHtcblxuICAgICAgLy8gUGVyZm9ybSB0aGUgY2hvbXBpbmcuXG4gICAgICBpZiAoY2hvbXBpbmcgPT09IENIT01QSU5HX0tFRVApIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGVtcHR5TGluZXMpO1xuICAgICAgfSBlbHNlIGlmIChjaG9tcGluZyA9PT0gQ0hPTVBJTkdfQ0xJUCkge1xuICAgICAgICBpZiAoZGV0ZWN0ZWRJbmRlbnQpIHsgLy8gaS5lLiBvbmx5IGlmIHRoZSBzY2FsYXIgaXMgbm90IGVtcHR5LlxuICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSAnXFxuJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBCcmVhayB0aGlzIGB3aGlsZWAgY3ljbGUgYW5kIGdvIHRvIHRoZSBmdW5jaXRvbidzIGVwaWxvZ3VlLlxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gRm9sZGVkIHN0eWxlOiB1c2UgZmFuY3kgcnVsZXMgdG8gaGFuZGxlIGxpbmUgYnJlYWtzLlxuICAgIGlmIChmb2xkaW5nKSB7XG5cbiAgICAgIC8vIExpbmVzIHN0YXJ0aW5nIHdpdGggd2hpdGUgc3BhY2UgY2hhcmFjdGVycyAobW9yZS1pbmRlbnRlZCBsaW5lcykgYXJlIG5vdCBmb2xkZWQuXG4gICAgICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICAgIGF0TW9yZUluZGVudGVkID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGVtcHR5TGluZXMgKyAxKTtcblxuICAgICAgLy8gRW5kIG9mIG1vcmUtaW5kZW50ZWQgYmxvY2suXG4gICAgICB9IGVsc2UgaWYgKGF0TW9yZUluZGVudGVkKSB7XG4gICAgICAgIGF0TW9yZUluZGVudGVkID0gZmFsc2U7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzICsgMSk7XG5cbiAgICAgIC8vIEp1c3Qgb25lIGxpbmUgYnJlYWsgLSBwZXJjZWl2ZSBhcyB0aGUgc2FtZSBsaW5lLlxuICAgICAgfSBlbHNlIGlmICgwID09PSBlbXB0eUxpbmVzKSB7XG4gICAgICAgIGlmIChkZXRlY3RlZEluZGVudCkgeyAvLyBpLmUuIG9ubHkgaWYgd2UgaGF2ZSBhbHJlYWR5IHJlYWQgc29tZSBzY2FsYXIgY29udGVudC5cbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gJyAnO1xuICAgICAgICB9XG5cbiAgICAgIC8vIFNldmVyYWwgbGluZSBicmVha3MgLSBwZXJjZWl2ZSBhcyBkaWZmZXJlbnQgbGluZXMuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyk7XG4gICAgICB9XG5cbiAgICAvLyBMaXRlcmFsIHN0eWxlOiBqdXN0IGFkZCBleGFjdCBudW1iZXIgb2YgbGluZSBicmVha3MgYmV0d2VlbiBjb250ZW50IGxpbmVzLlxuICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWRJbmRlbnQpIHtcbiAgICAgIC8vIElmIGN1cnJlbnQgbGluZSBpc24ndCB0aGUgZmlyc3Qgb25lIC0gY291bnQgbGluZSBicmVhayBmcm9tIHRoZSBsYXN0IGNvbnRlbnQgbGluZS5cbiAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzICsgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgdGhlIGZpcnN0IGNvbnRlbnQgbGluZSAtIGNvdW50IG9ubHkgZW1wdHkgbGluZXMuXG4gICAgfVxuXG4gICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlO1xuICAgIGVtcHR5TGluZXMgPSAwO1xuICAgIGNhcHR1cmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgd2hpbGUgKCFpc19FT0woY2gpICYmICgwICE9PSBjaCkpIHtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgZmFsc2UpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBfbGluZSxcbiAgICAgIF90YWcgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIF9hbmNob3IgICA9IHN0YXRlLmFuY2hvcixcbiAgICAgIF9yZXN1bHQgICA9IFtdLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgZGV0ZWN0ZWQgID0gZmFsc2UsXG4gICAgICBjaDtcblxuICBpZiAobnVsbCAhPT0gc3RhdGUuYW5jaG9yKSB7XG4gICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoMCAhPT0gY2gpIHtcblxuICAgIGlmICgweDJELyogLSAqLyAhPT0gY2gpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgIGlmICghaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGRldGVjdGVkID0gdHJ1ZTtcbiAgICBzdGF0ZS5wb3NpdGlvbisrO1xuXG4gICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkge1xuICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPD0gbm9kZUluZGVudCkge1xuICAgICAgICBfcmVzdWx0LnB1c2gobnVsbCk7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9saW5lID0gc3RhdGUubGluZTtcbiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19JTiwgZmFsc2UsIHRydWUpO1xuICAgIF9yZXN1bHQucHVzaChzdGF0ZS5yZXN1bHQpO1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoKHN0YXRlLmxpbmUgPT09IF9saW5lIHx8IHN0YXRlLmxpbmVJbmRlbnQgPiBub2RlSW5kZW50KSAmJiAoMCAhPT0gY2gpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYmFkIGluZGVudGF0aW9uIG9mIGEgc2VxdWVuY2UgZW50cnknKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoZGV0ZWN0ZWQpIHtcbiAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgc3RhdGUua2luZCA9ICdzZXF1ZW5jZSc7XG4gICAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIG5vZGVJbmRlbnQsIGZsb3dJbmRlbnQpIHtcbiAgdmFyIGZvbGxvd2luZyxcbiAgICAgIGFsbG93Q29tcGFjdCxcbiAgICAgIF9saW5lLFxuICAgICAgX3RhZyAgICAgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIF9hbmNob3IgICAgICAgPSBzdGF0ZS5hbmNob3IsXG4gICAgICBfcmVzdWx0ICAgICAgID0ge30sXG4gICAgICBrZXlUYWcgICAgICAgID0gbnVsbCxcbiAgICAgIGtleU5vZGUgICAgICAgPSBudWxsLFxuICAgICAgdmFsdWVOb2RlICAgICA9IG51bGwsXG4gICAgICBhdEV4cGxpY2l0S2V5ID0gZmFsc2UsXG4gICAgICBkZXRlY3RlZCAgICAgID0gZmFsc2UsXG4gICAgICBjaDtcblxuICBpZiAobnVsbCAhPT0gc3RhdGUuYW5jaG9yKSB7XG4gICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoMCAhPT0gY2gpIHtcbiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG4gICAgX2xpbmUgPSBzdGF0ZS5saW5lOyAvLyBTYXZlIHRoZSBjdXJyZW50IGxpbmUuXG5cbiAgICAvL1xuICAgIC8vIEV4cGxpY2l0IG5vdGF0aW9uIGNhc2UuIFRoZXJlIGFyZSB0d28gc2VwYXJhdGUgYmxvY2tzOlxuICAgIC8vIGZpcnN0IGZvciB0aGUga2V5IChkZW5vdGVkIGJ5IFwiP1wiKSBhbmQgc2Vjb25kIGZvciB0aGUgdmFsdWUgKGRlbm90ZWQgYnkgXCI6XCIpXG4gICAgLy9cbiAgICBpZiAoKDB4M0YvKiA/ICovID09PSBjaCB8fCAweDNBLyogOiAqLyAgPT09IGNoKSAmJiBpc19XU19PUl9FT0woZm9sbG93aW5nKSkge1xuXG4gICAgICBpZiAoMHgzRi8qID8gKi8gPT09IGNoKSB7XG4gICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwga2V5VGFnLCBrZXlOb2RlLCBudWxsKTtcbiAgICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRldGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgYXRFeHBsaWNpdEtleSA9IHRydWU7XG4gICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7XG5cbiAgICAgIH0gZWxzZSBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAvLyBpLmUuIDB4M0EvKiA6ICovID09PSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGV4cGxpY2l0IGtleS5cbiAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlO1xuICAgICAgICBhbGxvd0NvbXBhY3QgPSB0cnVlO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnaW5jb21wbGV0ZSBleHBsaWNpdCBtYXBwaW5nIHBhaXI7IGEga2V5IG5vZGUgaXMgbWlzc2VkJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gICAgICBjaCA9IGZvbGxvd2luZztcblxuICAgIC8vXG4gICAgLy8gSW1wbGljaXQgbm90YXRpb24gY2FzZS4gRmxvdy1zdHlsZSBub2RlIGFzIHRoZSBrZXkgZmlyc3QsIHRoZW4gXCI6XCIsIGFuZCB0aGUgdmFsdWUuXG4gICAgLy9cbiAgICB9IGVsc2UgaWYgKGNvbXBvc2VOb2RlKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfT1VULCBmYWxzZSwgdHJ1ZSkpIHtcblxuICAgICAgaWYgKHN0YXRlLmxpbmUgPT09IF9saW5lKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgweDNBLyogOiAqLyA9PT0gY2gpIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgICAgICBpZiAoIWlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmcnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwga2V5VGFnLCBrZXlOb2RlLCBudWxsKTtcbiAgICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRldGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBhdEV4cGxpY2l0S2V5ID0gZmFsc2U7XG4gICAgICAgICAgYWxsb3dDb21wYWN0ID0gZmFsc2U7XG4gICAgICAgICAga2V5VGFnID0gc3RhdGUudGFnO1xuICAgICAgICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG5cbiAgICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCcpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBLZWVwIHRoZSByZXN1bHQgb2YgYGNvbXBvc2VOb2RlYC5cbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2UgaWYgKGRldGVjdGVkKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXknKTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIEtlZXAgdGhlIHJlc3VsdCBvZiBgY29tcG9zZU5vZGVgLlxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrOyAvLyBSZWFkaW5nIGlzIGRvbmUuIEdvIHRvIHRoZSBlcGlsb2d1ZS5cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIENvbW1vbiByZWFkaW5nIGNvZGUgZm9yIGJvdGggZXhwbGljaXQgYW5kIGltcGxpY2l0IG5vdGF0aW9ucy5cbiAgICAvL1xuICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkge1xuICAgICAgaWYgKGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0JMT0NLX09VVCwgdHJ1ZSwgYWxsb3dDb21wYWN0KSkge1xuICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWVOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghYXRFeHBsaWNpdEtleSkge1xuICAgICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSk7XG4gICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCAmJiAoMCAhPT0gY2gpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYmFkIGluZGVudGF0aW9uIG9mIGEgbWFwcGluZyBlbnRyeScpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IG5vZGVJbmRlbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEVwaWxvZ3VlLlxuICAvL1xuXG4gIC8vIFNwZWNpYWwgY2FzZTogbGFzdCBtYXBwaW5nJ3Mgbm9kZSBjb250YWlucyBvbmx5IHRoZSBrZXkgaW4gZXhwbGljaXQgbm90YXRpb24uXG4gIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwga2V5VGFnLCBrZXlOb2RlLCBudWxsKTtcbiAgfVxuXG4gIC8vIEV4cG9zZSB0aGUgcmVzdWx0aW5nIG1hcHBpbmcuXG4gIGlmIChkZXRlY3RlZCkge1xuICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICBzdGF0ZS5raW5kID0gJ21hcHBpbmcnO1xuICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gIH1cblxuICByZXR1cm4gZGV0ZWN0ZWQ7XG59XG5cbmZ1bmN0aW9uIHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLFxuICAgICAgaXNWZXJiYXRpbSA9IGZhbHNlLFxuICAgICAgaXNOYW1lZCAgICA9IGZhbHNlLFxuICAgICAgdGFnSGFuZGxlLFxuICAgICAgdGFnTmFtZSxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKDB4MjEvKiAhICovICE9PSBjaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChudWxsICE9PSBzdGF0ZS50YWcpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZHVwbGljYXRpb24gb2YgYSB0YWcgcHJvcGVydHknKTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoMHgzQy8qIDwgKi8gPT09IGNoKSB7XG4gICAgaXNWZXJiYXRpbSA9IHRydWU7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIH0gZWxzZSBpZiAoMHgyMS8qICEgKi8gPT09IGNoKSB7XG4gICAgaXNOYW1lZCA9IHRydWU7XG4gICAgdGFnSGFuZGxlID0gJyEhJztcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgfSBlbHNlIHtcbiAgICB0YWdIYW5kbGUgPSAnISc7XG4gIH1cblxuICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICBpZiAoaXNWZXJiYXRpbSkge1xuICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgd2hpbGUgKDAgIT09IGNoICYmIDB4M0UvKiA+ICovICE9PSBjaCk7XG5cbiAgICBpZiAoc3RhdGUucG9zaXRpb24gPCBzdGF0ZS5sZW5ndGgpIHtcbiAgICAgIHRhZ05hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgdmVyYmF0aW0gdGFnJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuXG4gICAgICBpZiAoMHgyMS8qICEgKi8gPT09IGNoKSB7XG4gICAgICAgIGlmICghaXNOYW1lZCkge1xuICAgICAgICAgIHRhZ0hhbmRsZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiAtIDEsIHN0YXRlLnBvc2l0aW9uICsgMSk7XG5cbiAgICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KHRhZ0hhbmRsZSkpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lZCB0YWcgaGFuZGxlIGNhbm5vdCBjb250YWluIHN1Y2ggY2hhcmFjdGVycycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlzTmFtZWQgPSB0cnVlO1xuICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBleGNsYW1hdGlvbiBtYXJrcycpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICB0YWdOYW1lID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoUEFUVEVSTl9GTE9XX0lORElDQVRPUlMudGVzdCh0YWdOYW1lKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVycycpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0YWdOYW1lICYmICFQQVRURVJOX1RBR19VUkkudGVzdCh0YWdOYW1lKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICcgKyB0YWdOYW1lKTtcbiAgfVxuXG4gIGlmIChpc1ZlcmJhdGltKSB7XG4gICAgc3RhdGUudGFnID0gdGFnTmFtZTtcblxuICB9IGVsc2UgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLnRhZ01hcCwgdGFnSGFuZGxlKSkge1xuICAgIHN0YXRlLnRhZyA9IHN0YXRlLnRhZ01hcFt0YWdIYW5kbGVdICsgdGFnTmFtZTtcblxuICB9IGVsc2UgaWYgKCchJyA9PT0gdGFnSGFuZGxlKSB7XG4gICAgc3RhdGUudGFnID0gJyEnICsgdGFnTmFtZTtcblxuICB9IGVsc2UgaWYgKCchIScgPT09IHRhZ0hhbmRsZSkge1xuICAgIHN0YXRlLnRhZyA9ICd0YWc6eWFtbC5vcmcsMjAwMjonICsgdGFnTmFtZTtcblxuICB9IGVsc2Uge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgXCInICsgdGFnSGFuZGxlICsgJ1wiJyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSB7XG4gIHZhciBfcG9zaXRpb24sXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDI2LyogJiAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAobnVsbCAhPT0gc3RhdGUuYW5jaG9yKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2R1cGxpY2F0aW9uIG9mIGFuIGFuY2hvciBwcm9wZXJ0eScpO1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgfVxuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gX3Bvc2l0aW9uKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ25hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXInKTtcbiAgfVxuXG4gIHN0YXRlLmFuY2hvciA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVhZEFsaWFzKHN0YXRlKSB7XG4gIHZhciBfcG9zaXRpb24sIGFsaWFzLFxuICAgICAgbGVuID0gc3RhdGUubGVuZ3RoLFxuICAgICAgaW5wdXQgPSBzdGF0ZS5pbnB1dCxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKDB4MkEvKiAqICovICE9PSBjaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKDAgIT09IGNoICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFsaWFzIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXInKTtcbiAgfVxuXG4gIGFsaWFzID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKCFzdGF0ZS5hbmNob3JNYXAuaGFzT3duUHJvcGVydHkoYWxpYXMpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuaWRlbnRpZmllZCBhbGlhcyBcIicgKyBhbGlhcyArICdcIicpO1xuICB9XG5cbiAgc3RhdGUucmVzdWx0ID0gc3RhdGUuYW5jaG9yTWFwW2FsaWFzXTtcbiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29tcG9zZU5vZGUoc3RhdGUsIHBhcmVudEluZGVudCwgbm9kZUNvbnRleHQsIGFsbG93VG9TZWVrLCBhbGxvd0NvbXBhY3QpIHtcbiAgdmFyIGFsbG93QmxvY2tTdHlsZXMsXG4gICAgICBhbGxvd0Jsb2NrU2NhbGFycyxcbiAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyxcbiAgICAgIGluZGVudFN0YXR1cyA9IDEsIC8vIDE6IHRoaXM+cGFyZW50LCAwOiB0aGlzPXBhcmVudCwgLTE6IHRoaXM8cGFyZW50XG4gICAgICBhdE5ld0xpbmUgID0gZmFsc2UsXG4gICAgICBoYXNDb250ZW50ID0gZmFsc2UsXG4gICAgICB0eXBlSW5kZXgsXG4gICAgICB0eXBlUXVhbnRpdHksXG4gICAgICB0eXBlLFxuICAgICAgZmxvd0luZGVudCxcbiAgICAgIGJsb2NrSW5kZW50LFxuICAgICAgX3Jlc3VsdDtcblxuICBzdGF0ZS50YWcgICAgPSBudWxsO1xuICBzdGF0ZS5hbmNob3IgPSBudWxsO1xuICBzdGF0ZS5raW5kICAgPSBudWxsO1xuICBzdGF0ZS5yZXN1bHQgPSBudWxsO1xuXG4gIGFsbG93QmxvY2tTdHlsZXMgPSBhbGxvd0Jsb2NrU2NhbGFycyA9IGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9XG4gICAgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0IHx8XG4gICAgQ09OVEVYVF9CTE9DS19JTiAgPT09IG5vZGVDb250ZXh0O1xuXG4gIGlmIChhbGxvd1RvU2Vlaykge1xuICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHtcbiAgICAgIGF0TmV3TGluZSA9IHRydWU7XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgIGluZGVudFN0YXR1cyA9IDE7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPT09IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAwO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7XG4gICAgICAgIGluZGVudFN0YXR1cyA9IC0xO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICgxID09PSBpbmRlbnRTdGF0dXMpIHtcbiAgICB3aGlsZSAocmVhZFRhZ1Byb3BlcnR5KHN0YXRlKSB8fCByZWFkQW5jaG9yUHJvcGVydHkoc3RhdGUpKSB7XG4gICAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7XG4gICAgICAgIGF0TmV3TGluZSA9IHRydWU7XG4gICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGFsbG93QmxvY2tTdHlsZXM7XG5cbiAgICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPT09IHBhcmVudEluZGVudCkge1xuICAgICAgICAgIGluZGVudFN0YXR1cyA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkge1xuICAgICAgICAgIGluZGVudFN0YXR1cyA9IC0xO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zKSB7XG4gICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gYXROZXdMaW5lIHx8IGFsbG93Q29tcGFjdDtcbiAgfVxuXG4gIGlmICgxID09PSBpbmRlbnRTdGF0dXMgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgaWYgKENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQgfHwgQ09OVEVYVF9GTE9XX09VVCA9PT0gbm9kZUNvbnRleHQpIHtcbiAgICAgIGZsb3dJbmRlbnQgPSBwYXJlbnRJbmRlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsb3dJbmRlbnQgPSBwYXJlbnRJbmRlbnQgKyAxO1xuICAgIH1cblxuICAgIGJsb2NrSW5kZW50ID0gc3RhdGUucG9zaXRpb24gLSBzdGF0ZS5saW5lU3RhcnQ7XG5cbiAgICBpZiAoMSA9PT0gaW5kZW50U3RhdHVzKSB7XG4gICAgICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmXG4gICAgICAgICAgKHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBibG9ja0luZGVudCkgfHxcbiAgICAgICAgICAgcmVhZEJsb2NrTWFwcGluZyhzdGF0ZSwgYmxvY2tJbmRlbnQsIGZsb3dJbmRlbnQpKSB8fFxuICAgICAgICAgIHJlYWRGbG93Q29sbGVjdGlvbihzdGF0ZSwgZmxvd0luZGVudCkpIHtcbiAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoKGFsbG93QmxvY2tTY2FsYXJzICYmIHJlYWRCbG9ja1NjYWxhcihzdGF0ZSwgZmxvd0luZGVudCkpIHx8XG4gICAgICAgICAgICByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50KSB8fFxuICAgICAgICAgICAgcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzdGF0ZSwgZmxvd0luZGVudCkpIHtcbiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcblxuICAgICAgICB9IGVsc2UgaWYgKHJlYWRBbGlhcyhzdGF0ZSkpIHtcbiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZS50YWcgfHwgbnVsbCAhPT0gc3RhdGUuYW5jaG9yKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYWxpYXMgbm9kZSBzaG91bGQgbm90IGhhdmUgYW55IHByb3BlcnRpZXMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWFkUGxhaW5TY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAobnVsbCA9PT0gc3RhdGUudGFnKSB7XG4gICAgICAgICAgICBzdGF0ZS50YWcgPSAnPyc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICgwID09PSBpbmRlbnRTdGF0dXMpIHtcbiAgICAgIC8vIFNwZWNpYWwgY2FzZTogYmxvY2sgc2VxdWVuY2VzIGFyZSBhbGxvd2VkIHRvIGhhdmUgc2FtZSBpbmRlbnRhdGlvbiBsZXZlbCBhcyB0aGUgcGFyZW50LlxuICAgICAgLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyNzk5Nzg0XG4gICAgICBoYXNDb250ZW50ID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBibG9ja0luZGVudCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLnRhZyAmJiAnIScgIT09IHN0YXRlLnRhZykge1xuICAgIGlmICgnPycgPT09IHN0YXRlLnRhZykge1xuICAgICAgZm9yICh0eXBlSW5kZXggPSAwLCB0eXBlUXVhbnRpdHkgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDtcbiAgICAgICAgICAgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5O1xuICAgICAgICAgICB0eXBlSW5kZXggKz0gMSkge1xuICAgICAgICB0eXBlID0gc3RhdGUuaW1wbGljaXRUeXBlc1t0eXBlSW5kZXhdO1xuXG4gICAgICAgIC8vIEltcGxpY2l0IHJlc29sdmluZyBpcyBub3QgYWxsb3dlZCBmb3Igbm9uLXNjYWxhciB0eXBlcywgYW5kICc/J1xuICAgICAgICAvLyBub24tc3BlY2lmaWMgdGFnIGlzIG9ubHkgYXNzaWduZWQgdG8gcGxhaW4gc2NhbGFycy4gU28sIGl0IGlzbid0XG4gICAgICAgIC8vIG5lZWRlZCB0byBjaGVjayBmb3IgJ2tpbmQnIGNvbmZvcm1pdHkuXG5cbiAgICAgICAgaWYgKHR5cGUucmVzb2x2ZShzdGF0ZS5yZXN1bHQpKSB7IC8vIGBzdGF0ZS5yZXN1bHRgIHVwZGF0ZWQgaW4gcmVzb2x2ZXIgaWYgbWF0Y2hlZFxuICAgICAgICAgIHN0YXRlLnJlc3VsdCA9IHR5cGUuY29uc3RydWN0KHN0YXRlLnJlc3VsdCk7XG4gICAgICAgICAgc3RhdGUudGFnID0gdHlwZS50YWc7XG4gICAgICAgICAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50eXBlTWFwLCBzdGF0ZS50YWcpKSB7XG4gICAgICB0eXBlID0gc3RhdGUudHlwZU1hcFtzdGF0ZS50YWddO1xuXG4gICAgICBpZiAobnVsbCAhPT0gc3RhdGUucmVzdWx0ICYmIHR5cGUua2luZCAhPT0gc3RhdGUua2luZCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwnICsgc3RhdGUudGFnICsgJz4gdGFnOyBpdCBzaG91bGQgYmUgXCInICsgdHlwZS5raW5kICsgJ1wiLCBub3QgXCInICsgc3RhdGUua2luZCArICdcIicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXR5cGUucmVzb2x2ZShzdGF0ZS5yZXN1bHQpKSB7IC8vIGBzdGF0ZS5yZXN1bHRgIHVwZGF0ZWQgaW4gcmVzb2x2ZXIgaWYgbWF0Y2hlZFxuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwnICsgc3RhdGUudGFnICsgJz4gZXhwbGljaXQgdGFnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlLmNvbnN0cnVjdChzdGF0ZS5yZXN1bHQpO1xuICAgICAgICBpZiAobnVsbCAhPT0gc3RhdGUuYW5jaG9yKSB7XG4gICAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAndW5rbm93biB0YWcgITwnICsgc3RhdGUudGFnICsgJz4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbCAhPT0gc3RhdGUudGFnIHx8IG51bGwgIT09IHN0YXRlLmFuY2hvciB8fCBoYXNDb250ZW50O1xufVxuXG5mdW5jdGlvbiByZWFkRG9jdW1lbnQoc3RhdGUpIHtcbiAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZS5wb3NpdGlvbixcbiAgICAgIF9wb3NpdGlvbixcbiAgICAgIGRpcmVjdGl2ZU5hbWUsXG4gICAgICBkaXJlY3RpdmVBcmdzLFxuICAgICAgaGFzRGlyZWN0aXZlcyA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgc3RhdGUudmVyc2lvbiA9IG51bGw7XG4gIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IHN0YXRlLmxlZ2FjeTtcbiAgc3RhdGUudGFnTWFwID0ge307XG4gIHN0YXRlLmFuY2hvck1hcCA9IHt9O1xuXG4gIHdoaWxlICgwICE9PSAoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiAwIHx8IDB4MjUvKiAlICovICE9PSBjaCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaGFzRGlyZWN0aXZlcyA9IHRydWU7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgd2hpbGUgKDAgIT09IGNoICYmICFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgZGlyZWN0aXZlTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuICAgIGRpcmVjdGl2ZUFyZ3MgPSBbXTtcblxuICAgIGlmIChkaXJlY3RpdmVOYW1lLmxlbmd0aCA8IDEpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdkaXJlY3RpdmUgbmFtZSBtdXN0IG5vdCBiZSBsZXNzIHRoYW4gb25lIGNoYXJhY3RlciBpbiBsZW5ndGgnKTtcbiAgICB9XG5cbiAgICB3aGlsZSAoMCAhPT0gY2gpIHtcbiAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICBpZiAoMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgICAgIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfRU9MKGNoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgICAgIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGRpcmVjdGl2ZUFyZ3MucHVzaChzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKSk7XG4gICAgfVxuXG4gICAgaWYgKDAgIT09IGNoKSB7XG4gICAgICByZWFkTGluZUJyZWFrKHN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAoX2hhc093blByb3BlcnR5LmNhbGwoZGlyZWN0aXZlSGFuZGxlcnMsIGRpcmVjdGl2ZU5hbWUpKSB7XG4gICAgICBkaXJlY3RpdmVIYW5kbGVyc1tkaXJlY3RpdmVOYW1lXShzdGF0ZSwgZGlyZWN0aXZlTmFtZSwgZGlyZWN0aXZlQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vua25vd24gZG9jdW1lbnQgZGlyZWN0aXZlIFwiJyArIGRpcmVjdGl2ZU5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH1cblxuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgaWYgKDAgPT09IHN0YXRlLmxpbmVJbmRlbnQgJiZcbiAgICAgIDB4MkQvKiAtICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSAmJlxuICAgICAgMHgyRC8qIC0gKi8gPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKSAmJlxuICAgICAgMHgyRC8qIC0gKi8gPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAyKSkge1xuICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gIH0gZWxzZSBpZiAoaGFzRGlyZWN0aXZlcykge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdkaXJlY3RpdmVzIGVuZCBtYXJrIGlzIGV4cGVjdGVkJyk7XG4gIH1cblxuICBjb21wb3NlTm9kZShzdGF0ZSwgc3RhdGUubGluZUluZGVudCAtIDEsIENPTlRFWFRfQkxPQ0tfT1VULCBmYWxzZSwgdHJ1ZSk7XG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICBpZiAoc3RhdGUuY2hlY2tMaW5lQnJlYWtzICYmXG4gICAgICBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUy50ZXN0KHN0YXRlLmlucHV0LnNsaWNlKGRvY3VtZW50U3RhcnQsIHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICdub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQnKTtcbiAgfVxuXG4gIHN0YXRlLmRvY3VtZW50cy5wdXNoKHN0YXRlLnJlc3VsdCk7XG5cbiAgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkge1xuXG4gICAgaWYgKDB4MkUvKiAuICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkge1xuICAgICAgc3RhdGUucG9zaXRpb24gKz0gMztcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgKHN0YXRlLmxlbmd0aCAtIDEpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2VuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkJyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucykge1xuICBpbnB1dCA9IFN0cmluZyhpbnB1dCk7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIGlmIChpbnB1dC5sZW5ndGggIT09IDApIHtcblxuICAgIC8vIEFkZCB0YWlsaW5nIGBcXG5gIGlmIG5vdCBleGlzdHNcbiAgICBpZiAoMHgwQS8qIExGICovICE9PSBpbnB1dC5jaGFyQ29kZUF0KGlucHV0Lmxlbmd0aCAtIDEpICYmXG4gICAgICAgIDB4MEQvKiBDUiAqLyAhPT0gaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSkge1xuICAgICAgaW5wdXQgKz0gJ1xcbic7XG4gICAgfVxuXG4gICAgLy8gU3RyaXAgQk9NXG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZSgxKTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUoaW5wdXQsIG9wdGlvbnMpO1xuXG4gIGlmIChQQVRURVJOX05PTl9QUklOVEFCTEUudGVzdChzdGF0ZS5pbnB1dCkpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMnKTtcbiAgfVxuXG4gIC8vIFVzZSAwIGFzIHN0cmluZyB0ZXJtaW5hdG9yLiBUaGF0IHNpZ25pZmljYW50bHkgc2ltcGxpZmllcyBib3VuZHMgY2hlY2suXG4gIHN0YXRlLmlucHV0ICs9ICdcXDAnO1xuXG4gIHdoaWxlICgweDIwLyogU3BhY2UgKi8gPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSB7XG4gICAgc3RhdGUubGluZUluZGVudCArPSAxO1xuICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gIH1cblxuICB3aGlsZSAoc3RhdGUucG9zaXRpb24gPCAoc3RhdGUubGVuZ3RoIC0gMSkpIHtcbiAgICByZWFkRG9jdW1lbnQoc3RhdGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlLmRvY3VtZW50cztcbn1cblxuXG5mdW5jdGlvbiBsb2FkQWxsKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykge1xuICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyksIGluZGV4LCBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGRvY3VtZW50cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgaXRlcmF0b3IoZG9jdW1lbnRzW2luZGV4XSk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBsb2FkKGlucHV0LCBvcHRpb25zKSB7XG4gIHZhciBkb2N1bWVudHMgPSBsb2FkRG9jdW1lbnRzKGlucHV0LCBvcHRpb25zKSwgaW5kZXgsIGxlbmd0aDtcblxuICBpZiAoMCA9PT0gZG9jdW1lbnRzLmxlbmd0aCkge1xuICAgIC8qZXNsaW50LWRpc2FibGUgbm8tdW5kZWZpbmVkKi9cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2UgaWYgKDEgPT09IGRvY3VtZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZG9jdW1lbnRzWzBdO1xuICB9XG4gIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdleHBlY3RlZCBhIHNpbmdsZSBkb2N1bWVudCBpbiB0aGUgc3RyZWFtLCBidXQgZm91bmQgbW9yZScpO1xufVxuXG5cbmZ1bmN0aW9uIHNhZmVMb2FkQWxsKGlucHV0LCBvdXRwdXQsIG9wdGlvbnMpIHtcbiAgbG9hZEFsbChpbnB1dCwgb3V0cHV0LCBjb21tb24uZXh0ZW5kKHsgc2NoZW1hOiBERUZBVUxUX1NBRkVfU0NIRU1BIH0sIG9wdGlvbnMpKTtcbn1cblxuXG5mdW5jdGlvbiBzYWZlTG9hZChpbnB1dCwgb3B0aW9ucykge1xuICByZXR1cm4gbG9hZChpbnB1dCwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cblxubW9kdWxlLmV4cG9ydHMubG9hZEFsbCAgICAgPSBsb2FkQWxsO1xubW9kdWxlLmV4cG9ydHMubG9hZCAgICAgICAgPSBsb2FkO1xubW9kdWxlLmV4cG9ydHMuc2FmZUxvYWRBbGwgPSBzYWZlTG9hZEFsbDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkICAgID0gc2FmZUxvYWQ7XG4iLCIndXNlIHN0cmljdCc7XG5cblxudmFyIGNvbW1vbiA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG5cblxuZnVuY3Rpb24gTWFyayhuYW1lLCBidWZmZXIsIHBvc2l0aW9uLCBsaW5lLCBjb2x1bW4pIHtcbiAgdGhpcy5uYW1lICAgICA9IG5hbWU7XG4gIHRoaXMuYnVmZmVyICAgPSBidWZmZXI7XG4gIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgdGhpcy5saW5lICAgICA9IGxpbmU7XG4gIHRoaXMuY29sdW1uICAgPSBjb2x1bW47XG59XG5cblxuTWFyay5wcm90b3R5cGUuZ2V0U25pcHBldCA9IGZ1bmN0aW9uIGdldFNuaXBwZXQoaW5kZW50LCBtYXhMZW5ndGgpIHtcbiAgdmFyIGhlYWQsIHN0YXJ0LCB0YWlsLCBlbmQsIHNuaXBwZXQ7XG5cbiAgaWYgKCF0aGlzLmJ1ZmZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaW5kZW50ID0gaW5kZW50IHx8IDQ7XG4gIG1heExlbmd0aCA9IG1heExlbmd0aCB8fCA3NTtcblxuICBoZWFkID0gJyc7XG4gIHN0YXJ0ID0gdGhpcy5wb3NpdGlvbjtcblxuICB3aGlsZSAoc3RhcnQgPiAwICYmIC0xID09PSAnXFx4MDBcXHJcXG5cXHg4NVxcdTIwMjhcXHUyMDI5Jy5pbmRleE9mKHRoaXMuYnVmZmVyLmNoYXJBdChzdGFydCAtIDEpKSkge1xuICAgIHN0YXJ0IC09IDE7XG4gICAgaWYgKHRoaXMucG9zaXRpb24gLSBzdGFydCA+IChtYXhMZW5ndGggLyAyIC0gMSkpIHtcbiAgICAgIGhlYWQgPSAnIC4uLiAnO1xuICAgICAgc3RhcnQgKz0gNTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHRhaWwgPSAnJztcbiAgZW5kID0gdGhpcy5wb3NpdGlvbjtcblxuICB3aGlsZSAoZW5kIDwgdGhpcy5idWZmZXIubGVuZ3RoICYmIC0xID09PSAnXFx4MDBcXHJcXG5cXHg4NVxcdTIwMjhcXHUyMDI5Jy5pbmRleE9mKHRoaXMuYnVmZmVyLmNoYXJBdChlbmQpKSkge1xuICAgIGVuZCArPSAxO1xuICAgIGlmIChlbmQgLSB0aGlzLnBvc2l0aW9uID4gKG1heExlbmd0aCAvIDIgLSAxKSkge1xuICAgICAgdGFpbCA9ICcgLi4uICc7XG4gICAgICBlbmQgLT0gNTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNuaXBwZXQgPSB0aGlzLmJ1ZmZlci5zbGljZShzdGFydCwgZW5kKTtcblxuICByZXR1cm4gY29tbW9uLnJlcGVhdCgnICcsIGluZGVudCkgKyBoZWFkICsgc25pcHBldCArIHRhaWwgKyAnXFxuJyArXG4gICAgICAgICBjb21tb24ucmVwZWF0KCcgJywgaW5kZW50ICsgdGhpcy5wb3NpdGlvbiAtIHN0YXJ0ICsgaGVhZC5sZW5ndGgpICsgJ14nO1xufTtcblxuXG5NYXJrLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKGNvbXBhY3QpIHtcbiAgdmFyIHNuaXBwZXQsIHdoZXJlID0gJyc7XG5cbiAgaWYgKHRoaXMubmFtZSkge1xuICAgIHdoZXJlICs9ICdpbiBcIicgKyB0aGlzLm5hbWUgKyAnXCIgJztcbiAgfVxuXG4gIHdoZXJlICs9ICdhdCBsaW5lICcgKyAodGhpcy5saW5lICsgMSkgKyAnLCBjb2x1bW4gJyArICh0aGlzLmNvbHVtbiArIDEpO1xuXG4gIGlmICghY29tcGFjdCkge1xuICAgIHNuaXBwZXQgPSB0aGlzLmdldFNuaXBwZXQoKTtcblxuICAgIGlmIChzbmlwcGV0KSB7XG4gICAgICB3aGVyZSArPSAnOlxcbicgKyBzbmlwcGV0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3aGVyZTtcbn07XG5cblxubW9kdWxlLmV4cG9ydHMgPSBNYXJrO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKmVzbGludC1kaXNhYmxlIG1heC1sZW4qL1xuXG52YXIgY29tbW9uICAgICAgICA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG52YXIgWUFNTEV4Y2VwdGlvbiA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG52YXIgVHlwZSAgICAgICAgICA9IHJlcXVpcmUoJy4vdHlwZScpO1xuXG5cbmZ1bmN0aW9uIGNvbXBpbGVMaXN0KHNjaGVtYSwgbmFtZSwgcmVzdWx0KSB7XG4gIHZhciBleGNsdWRlID0gW107XG5cbiAgc2NoZW1hLmluY2x1ZGUuZm9yRWFjaChmdW5jdGlvbiAoaW5jbHVkZWRTY2hlbWEpIHtcbiAgICByZXN1bHQgPSBjb21waWxlTGlzdChpbmNsdWRlZFNjaGVtYSwgbmFtZSwgcmVzdWx0KTtcbiAgfSk7XG5cbiAgc2NoZW1hW25hbWVdLmZvckVhY2goZnVuY3Rpb24gKGN1cnJlbnRUeXBlKSB7XG4gICAgcmVzdWx0LmZvckVhY2goZnVuY3Rpb24gKHByZXZpb3VzVHlwZSwgcHJldmlvdXNJbmRleCkge1xuICAgICAgaWYgKHByZXZpb3VzVHlwZS50YWcgPT09IGN1cnJlbnRUeXBlLnRhZykge1xuICAgICAgICBleGNsdWRlLnB1c2gocHJldmlvdXNJbmRleCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXN1bHQucHVzaChjdXJyZW50VHlwZSk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQuZmlsdGVyKGZ1bmN0aW9uICh0eXBlLCBpbmRleCkge1xuICAgIHJldHVybiAtMSA9PT0gZXhjbHVkZS5pbmRleE9mKGluZGV4KTtcbiAgfSk7XG59XG5cblxuZnVuY3Rpb24gY29tcGlsZU1hcCgvKiBsaXN0cy4uLiAqLykge1xuICB2YXIgcmVzdWx0ID0ge30sIGluZGV4LCBsZW5ndGg7XG5cbiAgZnVuY3Rpb24gY29sbGVjdFR5cGUodHlwZSkge1xuICAgIHJlc3VsdFt0eXBlLnRhZ10gPSB0eXBlO1xuICB9XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgYXJndW1lbnRzW2luZGV4XS5mb3JFYWNoKGNvbGxlY3RUeXBlKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cblxuZnVuY3Rpb24gU2NoZW1hKGRlZmluaXRpb24pIHtcbiAgdGhpcy5pbmNsdWRlICA9IGRlZmluaXRpb24uaW5jbHVkZSAgfHwgW107XG4gIHRoaXMuaW1wbGljaXQgPSBkZWZpbml0aW9uLmltcGxpY2l0IHx8IFtdO1xuICB0aGlzLmV4cGxpY2l0ID0gZGVmaW5pdGlvbi5leHBsaWNpdCB8fCBbXTtcblxuICB0aGlzLmltcGxpY2l0LmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICBpZiAodHlwZS5sb2FkS2luZCAmJiAnc2NhbGFyJyAhPT0gdHlwZS5sb2FkS2luZCkge1xuICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1RoZXJlIGlzIGEgbm9uLXNjYWxhciB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBJbXBsaWNpdCByZXNvbHZpbmcgb2Ygc3VjaCB0eXBlcyBpcyBub3Qgc3VwcG9ydGVkLicpO1xuICAgIH1cbiAgfSk7XG5cbiAgdGhpcy5jb21waWxlZEltcGxpY2l0ID0gY29tcGlsZUxpc3QodGhpcywgJ2ltcGxpY2l0JywgW10pO1xuICB0aGlzLmNvbXBpbGVkRXhwbGljaXQgPSBjb21waWxlTGlzdCh0aGlzLCAnZXhwbGljaXQnLCBbXSk7XG4gIHRoaXMuY29tcGlsZWRUeXBlTWFwICA9IGNvbXBpbGVNYXAodGhpcy5jb21waWxlZEltcGxpY2l0LCB0aGlzLmNvbXBpbGVkRXhwbGljaXQpO1xufVxuXG5cblNjaGVtYS5ERUZBVUxUID0gbnVsbDtcblxuXG5TY2hlbWEuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlU2NoZW1hKCkge1xuICB2YXIgc2NoZW1hcywgdHlwZXM7XG5cbiAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gIGNhc2UgMTpcbiAgICBzY2hlbWFzID0gU2NoZW1hLkRFRkFVTFQ7XG4gICAgdHlwZXMgPSBhcmd1bWVudHNbMF07XG4gICAgYnJlYWs7XG5cbiAgY2FzZSAyOlxuICAgIHNjaGVtYXMgPSBhcmd1bWVudHNbMF07XG4gICAgdHlwZXMgPSBhcmd1bWVudHNbMV07XG4gICAgYnJlYWs7XG5cbiAgZGVmYXVsdDpcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgU2NoZW1hLmNyZWF0ZSBmdW5jdGlvbicpO1xuICB9XG5cbiAgc2NoZW1hcyA9IGNvbW1vbi50b0FycmF5KHNjaGVtYXMpO1xuICB0eXBlcyA9IGNvbW1vbi50b0FycmF5KHR5cGVzKTtcblxuICBpZiAoIXNjaGVtYXMuZXZlcnkoZnVuY3Rpb24gKHNjaGVtYSkgeyByZXR1cm4gc2NoZW1hIGluc3RhbmNlb2YgU2NoZW1hOyB9KSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdTcGVjaWZpZWQgbGlzdCBvZiBzdXBlciBzY2hlbWFzIChvciBhIHNpbmdsZSBTY2hlbWEgb2JqZWN0KSBjb250YWlucyBhIG5vbi1TY2hlbWEgb2JqZWN0LicpO1xuICB9XG5cbiAgaWYgKCF0eXBlcy5ldmVyeShmdW5jdGlvbiAodHlwZSkgeyByZXR1cm4gdHlwZSBpbnN0YW5jZW9mIFR5cGU7IH0pKSB7XG4gICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1NwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4nKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHtcbiAgICBpbmNsdWRlOiBzY2hlbWFzLFxuICAgIGV4cGxpY2l0OiB0eXBlc1xuICB9KTtcbn07XG5cblxubW9kdWxlLmV4cG9ydHMgPSBTY2hlbWE7XG4iLCIvLyBTdGFuZGFyZCBZQU1MJ3MgQ29yZSBzY2hlbWEuXG4vLyBodHRwOi8vd3d3LnlhbWwub3JnL3NwZWMvMS4yL3NwZWMuaHRtbCNpZDI4MDQ5MjNcbi8vXG4vLyBOT1RFOiBKUy1ZQU1MIGRvZXMgbm90IHN1cHBvcnQgc2NoZW1hLXNwZWNpZmljIHRhZyByZXNvbHV0aW9uIHJlc3RyaWN0aW9ucy5cbi8vIFNvLCBDb3JlIHNjaGVtYSBoYXMgbm8gZGlzdGluY3Rpb25zIGZyb20gSlNPTiBzY2hlbWEgaXMgSlMtWUFNTC5cblxuXG4ndXNlIHN0cmljdCc7XG5cblxudmFyIFNjaGVtYSA9IHJlcXVpcmUoJy4uL3NjaGVtYScpO1xuXG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFNjaGVtYSh7XG4gIGluY2x1ZGU6IFtcbiAgICByZXF1aXJlKCcuL2pzb24nKVxuICBdXG59KTtcbiIsIi8vIEpTLVlBTUwncyBkZWZhdWx0IHNjaGVtYSBmb3IgYGxvYWRgIGZ1bmN0aW9uLlxuLy8gSXQgaXMgbm90IGRlc2NyaWJlZCBpbiB0aGUgWUFNTCBzcGVjaWZpY2F0aW9uLlxuLy9cbi8vIFRoaXMgc2NoZW1hIGlzIGJhc2VkIG9uIEpTLVlBTUwncyBkZWZhdWx0IHNhZmUgc2NoZW1hIGFuZCBpbmNsdWRlc1xuLy8gSmF2YVNjcmlwdC1zcGVjaWZpYyB0eXBlczogISFqcy91bmRlZmluZWQsICEhanMvcmVnZXhwIGFuZCAhIWpzL2Z1bmN0aW9uLlxuLy9cbi8vIEFsc28gdGhpcyBzY2hlbWEgaXMgdXNlZCBhcyBkZWZhdWx0IGJhc2Ugc2NoZW1hIGF0IGBTY2hlbWEuY3JlYXRlYCBmdW5jdGlvbi5cblxuXG4ndXNlIHN0cmljdCc7XG5cblxudmFyIFNjaGVtYSA9IHJlcXVpcmUoJy4uL3NjaGVtYScpO1xuXG5cbm1vZHVsZS5leHBvcnRzID0gU2NoZW1hLkRFRkFVTFQgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vZGVmYXVsdF9zYWZlJylcbiAgXSxcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL2pzL3VuZGVmaW5lZCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvanMvcmVnZXhwJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9qcy9mdW5jdGlvbicpXG4gIF1cbn0pO1xuIiwiLy8gSlMtWUFNTCdzIGRlZmF1bHQgc2NoZW1hIGZvciBgc2FmZUxvYWRgIGZ1bmN0aW9uLlxuLy8gSXQgaXMgbm90IGRlc2NyaWJlZCBpbiB0aGUgWUFNTCBzcGVjaWZpY2F0aW9uLlxuLy9cbi8vIFRoaXMgc2NoZW1hIGlzIGJhc2VkIG9uIHN0YW5kYXJkIFlBTUwncyBDb3JlIHNjaGVtYSBhbmQgaW5jbHVkZXMgbW9zdCBvZlxuLy8gZXh0cmEgdHlwZXMgZGVzY3JpYmVkIGF0IFlBTUwgdGFnIHJlcG9zaXRvcnkuIChodHRwOi8veWFtbC5vcmcvdHlwZS8pXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9jb3JlJylcbiAgXSxcbiAgaW1wbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL3RpbWVzdGFtcCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvbWVyZ2UnKVxuICBdLFxuICBleHBsaWNpdDogW1xuICAgIHJlcXVpcmUoJy4uL3R5cGUvYmluYXJ5JyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9vbWFwJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9wYWlycycpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvc2V0JylcbiAgXVxufSk7XG4iLCIvLyBTdGFuZGFyZCBZQU1MJ3MgRmFpbHNhZmUgc2NoZW1hLlxuLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyODAyMzQ2XG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBleHBsaWNpdDogW1xuICAgIHJlcXVpcmUoJy4uL3R5cGUvc3RyJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9zZXEnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL21hcCcpXG4gIF1cbn0pO1xuIiwiLy8gU3RhbmRhcmQgWUFNTCdzIEpTT04gc2NoZW1hLlxuLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyODAzMjMxXG4vL1xuLy8gTk9URTogSlMtWUFNTCBkb2VzIG5vdCBzdXBwb3J0IHNjaGVtYS1zcGVjaWZpYyB0YWcgcmVzb2x1dGlvbiByZXN0cmljdGlvbnMuXG4vLyBTbywgdGhpcyBzY2hlbWEgaXMgbm90IHN1Y2ggc3RyaWN0IGFzIGRlZmluZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vIEl0IGFsbG93cyBudW1iZXJzIGluIGJpbmFyeSBub3RhaW9uLCB1c2UgYE51bGxgIGFuZCBgTlVMTGAgYXMgYG51bGxgLCBldGMuXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9mYWlsc2FmZScpXG4gIF0sXG4gIGltcGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9udWxsJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9ib29sJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9pbnQnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL2Zsb2F0JylcbiAgXVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBZQU1MRXhjZXB0aW9uID0gcmVxdWlyZSgnLi9leGNlcHRpb24nKTtcblxudmFyIFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUyA9IFtcbiAgJ2tpbmQnLFxuICAncmVzb2x2ZScsXG4gICdjb25zdHJ1Y3QnLFxuICAnaW5zdGFuY2VPZicsXG4gICdwcmVkaWNhdGUnLFxuICAncmVwcmVzZW50JyxcbiAgJ2RlZmF1bHRTdHlsZScsXG4gICdzdHlsZUFsaWFzZXMnXG5dO1xuXG52YXIgWUFNTF9OT0RFX0tJTkRTID0gW1xuICAnc2NhbGFyJyxcbiAgJ3NlcXVlbmNlJyxcbiAgJ21hcHBpbmcnXG5dO1xuXG5mdW5jdGlvbiBjb21waWxlU3R5bGVBbGlhc2VzKG1hcCkge1xuICB2YXIgcmVzdWx0ID0ge307XG5cbiAgaWYgKG51bGwgIT09IG1hcCkge1xuICAgIE9iamVjdC5rZXlzKG1hcCkuZm9yRWFjaChmdW5jdGlvbiAoc3R5bGUpIHtcbiAgICAgIG1hcFtzdHlsZV0uZm9yRWFjaChmdW5jdGlvbiAoYWxpYXMpIHtcbiAgICAgICAgcmVzdWx0W1N0cmluZyhhbGlhcyldID0gc3R5bGU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIFR5cGUodGFnLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICBpZiAoLTEgPT09IFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUy5pbmRleE9mKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignVW5rbm93biBvcHRpb24gXCInICsgbmFtZSArICdcIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiBcIicgKyB0YWcgKyAnXCIgWUFNTCB0eXBlLicpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gVE9ETzogQWRkIHRhZyBmb3JtYXQgY2hlY2suXG4gIHRoaXMudGFnICAgICAgICAgID0gdGFnO1xuICB0aGlzLmtpbmQgICAgICAgICA9IG9wdGlvbnNbJ2tpbmQnXSAgICAgICAgIHx8IG51bGw7XG4gIHRoaXMucmVzb2x2ZSAgICAgID0gb3B0aW9uc1sncmVzb2x2ZSddICAgICAgfHwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdHJ1ZTsgfTtcbiAgdGhpcy5jb25zdHJ1Y3QgICAgPSBvcHRpb25zWydjb25zdHJ1Y3QnXSAgICB8fCBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZGF0YTsgfTtcbiAgdGhpcy5pbnN0YW5jZU9mICAgPSBvcHRpb25zWydpbnN0YW5jZU9mJ10gICB8fCBudWxsO1xuICB0aGlzLnByZWRpY2F0ZSAgICA9IG9wdGlvbnNbJ3ByZWRpY2F0ZSddICAgIHx8IG51bGw7XG4gIHRoaXMucmVwcmVzZW50ICAgID0gb3B0aW9uc1sncmVwcmVzZW50J10gICAgfHwgbnVsbDtcbiAgdGhpcy5kZWZhdWx0U3R5bGUgPSBvcHRpb25zWydkZWZhdWx0U3R5bGUnXSB8fCBudWxsO1xuICB0aGlzLnN0eWxlQWxpYXNlcyA9IGNvbXBpbGVTdHlsZUFsaWFzZXMob3B0aW9uc1snc3R5bGVBbGlhc2VzJ10gfHwgbnVsbCk7XG5cbiAgaWYgKC0xID09PSBZQU1MX05PREVfS0lORFMuaW5kZXhPZih0aGlzLmtpbmQpKSB7XG4gICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1Vua25vd24ga2luZCBcIicgKyB0aGlzLmtpbmQgKyAnXCIgaXMgc3BlY2lmaWVkIGZvciBcIicgKyB0YWcgKyAnXCIgWUFNTCB0eXBlLicpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gVHlwZTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBuby1iaXR3aXNlKi9cblxuLy8gQSB0cmljayBmb3IgYnJvd3NlcmlmaWVkIHZlcnNpb24uXG4vLyBTaW5jZSB3ZSBtYWtlIGJyb3dzZXJpZmllciB0byBpZ25vcmUgYGJ1ZmZlcmAgbW9kdWxlLCBOb2RlQnVmZmVyIHdpbGwgYmUgdW5kZWZpbmVkXG52YXIgTm9kZUJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcbnZhciBUeXBlICAgICAgID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5cbi8vIFsgNjQsIDY1LCA2NiBdIC0+IFsgcGFkZGluZywgQ1IsIExGIF1cbnZhciBCQVNFNjRfTUFQID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89XFxuXFxyJztcblxuXG5mdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGNvZGUsIGlkeCwgYml0bGVuID0gMCwgbGVuID0gMCwgbWF4ID0gZGF0YS5sZW5ndGgsIG1hcCA9IEJBU0U2NF9NQVA7XG5cbiAgLy8gQ29udmVydCBvbmUgYnkgb25lLlxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBjb2RlID0gbWFwLmluZGV4T2YoZGF0YS5jaGFyQXQoaWR4KSk7XG5cbiAgICAvLyBTa2lwIENSL0xGXG4gICAgaWYgKGNvZGUgPiA2NCkgeyBjb250aW51ZTsgfVxuXG4gICAgLy8gRmFpbCBvbiBpbGxlZ2FsIGNoYXJhY3RlcnNcbiAgICBpZiAoY29kZSA8IDApIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICBiaXRsZW4gKz0gNjtcbiAgfVxuXG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgYml0cyBsZWZ0LCBzb3VyY2Ugd2FzIGNvcnJ1cHRlZFxuICByZXR1cm4gKGJpdGxlbiAlIDgpID09PSAwO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KGRhdGEpIHtcbiAgdmFyIGNvZGUsIGlkeCwgdGFpbGJpdHMsXG4gICAgICBpbnB1dCA9IGRhdGEucmVwbGFjZSgvW1xcclxcbj1dL2csICcnKSwgLy8gcmVtb3ZlIENSL0xGICYgcGFkZGluZyB0byBzaW1wbGlmeSBzY2FuXG4gICAgICBtYXggPSBpbnB1dC5sZW5ndGgsXG4gICAgICBtYXAgPSBCQVNFNjRfTUFQLFxuICAgICAgYml0cyA9IDAsXG4gICAgICByZXN1bHQgPSBbXTtcblxuICAvLyBDb2xsZWN0IGJ5IDYqNCBiaXRzICgzIGJ5dGVzKVxuXG4gIGZvciAoaWR4ID0gMDsgaWR4IDwgbWF4OyBpZHgrKykge1xuICAgIGlmICgoaWR4ICUgNCA9PT0gMCkgJiYgaWR4KSB7XG4gICAgICByZXN1bHQucHVzaCgoYml0cyA+PiAxNikgJiAweEZGKTtcbiAgICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDgpICYgMHhGRik7XG4gICAgICByZXN1bHQucHVzaChiaXRzICYgMHhGRik7XG4gICAgfVxuXG4gICAgYml0cyA9IChiaXRzIDw8IDYpIHwgbWFwLmluZGV4T2YoaW5wdXQuY2hhckF0KGlkeCkpO1xuICB9XG5cbiAgLy8gRHVtcCB0YWlsXG5cbiAgdGFpbGJpdHMgPSAobWF4ICUgNCkgKiA2O1xuXG4gIGlmICh0YWlsYml0cyA9PT0gMCkge1xuICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDE2KSAmIDB4RkYpO1xuICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDgpICYgMHhGRik7XG4gICAgcmVzdWx0LnB1c2goYml0cyAmIDB4RkYpO1xuICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxOCkge1xuICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDEwKSAmIDB4RkYpO1xuICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDIpICYgMHhGRik7XG4gIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDEyKSB7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gNCkgJiAweEZGKTtcbiAgfVxuXG4gIC8vIFdyYXAgaW50byBCdWZmZXIgZm9yIE5vZGVKUyBhbmQgbGVhdmUgQXJyYXkgZm9yIGJyb3dzZXJcbiAgaWYgKE5vZGVCdWZmZXIpIHtcbiAgICByZXR1cm4gbmV3IE5vZGVCdWZmZXIocmVzdWx0KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxCaW5hcnkob2JqZWN0IC8qLCBzdHlsZSovKSB7XG4gIHZhciByZXN1bHQgPSAnJywgYml0cyA9IDAsIGlkeCwgdGFpbCxcbiAgICAgIG1heCA9IG9iamVjdC5sZW5ndGgsXG4gICAgICBtYXAgPSBCQVNFNjRfTUFQO1xuXG4gIC8vIENvbnZlcnQgZXZlcnkgdGhyZWUgYnl0ZXMgdG8gNCBBU0NJSSBjaGFyYWN0ZXJzLlxuXG4gIGZvciAoaWR4ID0gMDsgaWR4IDwgbWF4OyBpZHgrKykge1xuICAgIGlmICgoaWR4ICUgMyA9PT0gMCkgJiYgaWR4KSB7XG4gICAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDE4KSAmIDB4M0ZdO1xuICAgICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxMikgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNikgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbYml0cyAmIDB4M0ZdO1xuICAgIH1cblxuICAgIGJpdHMgPSAoYml0cyA8PCA4KSArIG9iamVjdFtpZHhdO1xuICB9XG5cbiAgLy8gRHVtcCB0YWlsXG5cbiAgdGFpbCA9IG1heCAlIDM7XG5cbiAgaWYgKHRhaWwgPT09IDApIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDE4KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMTIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiA2KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbYml0cyAmIDB4M0ZdO1xuICB9IGVsc2UgaWYgKHRhaWwgPT09IDIpIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDEwKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzIDw8IDIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFs2NF07XG4gIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkge1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMikgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzIDw8IDQpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFs2NF07XG4gICAgcmVzdWx0ICs9IG1hcFs2NF07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBpc0JpbmFyeShvYmplY3QpIHtcbiAgcmV0dXJuIE5vZGVCdWZmZXIgJiYgTm9kZUJ1ZmZlci5pc0J1ZmZlcihvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnknLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEJpbmFyeSxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sQmluYXJ5LFxuICBwcmVkaWNhdGU6IGlzQmluYXJ5LFxuICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxCaW5hcnlcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxCb29sZWFuKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgbWF4ID0gZGF0YS5sZW5ndGg7XG5cbiAgcmV0dXJuIChtYXggPT09IDQgJiYgKGRhdGEgPT09ICd0cnVlJyB8fCBkYXRhID09PSAnVHJ1ZScgfHwgZGF0YSA9PT0gJ1RSVUUnKSkgfHxcbiAgICAgICAgIChtYXggPT09IDUgJiYgKGRhdGEgPT09ICdmYWxzZScgfHwgZGF0YSA9PT0gJ0ZhbHNlJyB8fCBkYXRhID09PSAnRkFMU0UnKSk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxCb29sZWFuKGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEgPT09ICd0cnVlJyB8fFxuICAgICAgICAgZGF0YSA9PT0gJ1RydWUnIHx8XG4gICAgICAgICBkYXRhID09PSAnVFJVRSc7XG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHtcbiAgcmV0dXJuICdbb2JqZWN0IEJvb2xlYW5dJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmJvb2wnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEJvb2xlYW4sXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJvb2xlYW4sXG4gIHByZWRpY2F0ZTogaXNCb29sZWFuLFxuICByZXByZXNlbnQ6IHtcbiAgICBsb3dlcmNhc2U6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuIG9iamVjdCA/ICd0cnVlJyA6ICdmYWxzZSc7IH0sXG4gICAgdXBwZXJjYXNlOiBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiBvYmplY3QgPyAnVFJVRScgOiAnRkFMU0UnOyB9LFxuICAgIGNhbWVsY2FzZTogZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gb2JqZWN0ID8gJ1RydWUnIDogJ0ZhbHNlJzsgfVxuICB9LFxuICBkZWZhdWx0U3R5bGU6ICdsb3dlcmNhc2UnXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbW1vbiA9IHJlcXVpcmUoJy4uL2NvbW1vbicpO1xudmFyIFR5cGUgICA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIFlBTUxfRkxPQVRfUEFUVEVSTiA9IG5ldyBSZWdFeHAoXG4gICdeKD86Wy0rXT8oPzpbMC05XVswLTlfXSopXFxcXC5bMC05X10qKD86W2VFXVstK11bMC05XSspPycgK1xuICAnfFxcXFwuWzAtOV9dKyg/OltlRV1bLStdWzAtOV0rKT8nICtcbiAgJ3xbLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFxcXC5bMC05X10qJyArXG4gICd8Wy0rXT9cXFxcLig/OmluZnxJbmZ8SU5GKScgK1xuICAnfFxcXFwuKD86bmFufE5hTnxOQU4pKSQnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxGbG9hdChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHZhbHVlLCBzaWduLCBiYXNlLCBkaWdpdHM7XG5cbiAgaWYgKCFZQU1MX0ZMT0FUX1BBVFRFUk4udGVzdChkYXRhKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEZsb2F0KGRhdGEpIHtcbiAgdmFyIHZhbHVlLCBzaWduLCBiYXNlLCBkaWdpdHM7XG5cbiAgdmFsdWUgID0gZGF0YS5yZXBsYWNlKC9fL2csICcnKS50b0xvd2VyQ2FzZSgpO1xuICBzaWduICAgPSAnLScgPT09IHZhbHVlWzBdID8gLTEgOiAxO1xuICBkaWdpdHMgPSBbXTtcblxuICBpZiAoMCA8PSAnKy0nLmluZGV4T2YodmFsdWVbMF0pKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgfVxuXG4gIGlmICgnLmluZicgPT09IHZhbHVlKSB7XG4gICAgcmV0dXJuICgxID09PSBzaWduKSA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTtcblxuICB9IGVsc2UgaWYgKCcubmFuJyA9PT0gdmFsdWUpIHtcbiAgICByZXR1cm4gTmFOO1xuXG4gIH0gZWxzZSBpZiAoMCA8PSB2YWx1ZS5pbmRleE9mKCc6JykpIHtcbiAgICB2YWx1ZS5zcGxpdCgnOicpLmZvckVhY2goZnVuY3Rpb24gKHYpIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KHBhcnNlRmxvYXQodiwgMTApKTtcbiAgICB9KTtcblxuICAgIHZhbHVlID0gMC4wO1xuICAgIGJhc2UgPSAxO1xuXG4gICAgZGlnaXRzLmZvckVhY2goZnVuY3Rpb24gKGQpIHtcbiAgICAgIHZhbHVlICs9IGQgKiBiYXNlO1xuICAgICAgYmFzZSAqPSA2MDtcbiAgICB9KTtcblxuICAgIHJldHVybiBzaWduICogdmFsdWU7XG5cbiAgfVxuICByZXR1cm4gc2lnbiAqIHBhcnNlRmxvYXQodmFsdWUsIDEwKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50WWFtbEZsb2F0KG9iamVjdCwgc3R5bGUpIHtcbiAgaWYgKGlzTmFOKG9iamVjdCkpIHtcbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgY2FzZSAnbG93ZXJjYXNlJzpcbiAgICAgIHJldHVybiAnLm5hbic7XG4gICAgY2FzZSAndXBwZXJjYXNlJzpcbiAgICAgIHJldHVybiAnLk5BTic7XG4gICAgY2FzZSAnY2FtZWxjYXNlJzpcbiAgICAgIHJldHVybiAnLk5hTic7XG4gICAgfVxuICB9IGVsc2UgaWYgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgIGNhc2UgJ2xvd2VyY2FzZSc6XG4gICAgICByZXR1cm4gJy5pbmYnO1xuICAgIGNhc2UgJ3VwcGVyY2FzZSc6XG4gICAgICByZXR1cm4gJy5JTkYnO1xuICAgIGNhc2UgJ2NhbWVsY2FzZSc6XG4gICAgICByZXR1cm4gJy5JbmYnO1xuICAgIH1cbiAgfSBlbHNlIGlmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkge1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICBjYXNlICdsb3dlcmNhc2UnOlxuICAgICAgcmV0dXJuICctLmluZic7XG4gICAgY2FzZSAndXBwZXJjYXNlJzpcbiAgICAgIHJldHVybiAnLS5JTkYnO1xuICAgIGNhc2UgJ2NhbWVsY2FzZSc6XG4gICAgICByZXR1cm4gJy0uSW5mJztcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpIHtcbiAgICByZXR1cm4gJy0wLjAnO1xuICB9XG4gIHJldHVybiBvYmplY3QudG9TdHJpbmcoMTApO1xufVxuXG5mdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkge1xuICByZXR1cm4gKCdbb2JqZWN0IE51bWJlcl0nID09PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSkgJiZcbiAgICAgICAgICgwICE9PSBvYmplY3QgJSAxIHx8IGNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxGbG9hdCxcbiAgcHJlZGljYXRlOiBpc0Zsb2F0LFxuICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBUeXBlICAgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIGlzSGV4Q29kZShjKSB7XG4gIHJldHVybiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkgfHxcbiAgICAgICAgICgoMHg0MS8qIEEgKi8gPD0gYykgJiYgKGMgPD0gMHg0Ni8qIEYgKi8pKSB8fFxuICAgICAgICAgKCgweDYxLyogYSAqLyA8PSBjKSAmJiAoYyA8PSAweDY2LyogZiAqLykpO1xufVxuXG5mdW5jdGlvbiBpc09jdENvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM3LyogNyAqLykpO1xufVxuXG5mdW5jdGlvbiBpc0RlY0NvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM5LyogOSAqLykpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlWWFtbEludGVnZXIoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBtYXggPSBkYXRhLmxlbmd0aCxcbiAgICAgIGluZGV4ID0gMCxcbiAgICAgIGhhc0RpZ2l0cyA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKCFtYXgpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgY2ggPSBkYXRhW2luZGV4XTtcblxuICAvLyBzaWduXG4gIGlmIChjaCA9PT0gJy0nIHx8IGNoID09PSAnKycpIHtcbiAgICBjaCA9IGRhdGFbKytpbmRleF07XG4gIH1cblxuICBpZiAoY2ggPT09ICcwJykge1xuICAgIC8vIDBcbiAgICBpZiAoaW5kZXggKyAxID09PSBtYXgpIHsgcmV0dXJuIHRydWU7IH1cbiAgICBjaCA9IGRhdGFbKytpbmRleF07XG5cbiAgICAvLyBiYXNlIDIsIGJhc2UgOCwgYmFzZSAxNlxuXG4gICAgaWYgKGNoID09PSAnYicpIHtcbiAgICAgIC8vIGJhc2UgMlxuICAgICAgaW5kZXgrKztcblxuICAgICAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgICAgIGNoID0gZGF0YVtpbmRleF07XG4gICAgICAgIGlmIChjaCA9PT0gJ18nKSB7IGNvbnRpbnVlOyB9XG4gICAgICAgIGlmIChjaCAhPT0gJzAnICYmIGNoICE9PSAnMScpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNEaWdpdHM7XG4gICAgfVxuXG5cbiAgICBpZiAoY2ggPT09ICd4Jykge1xuICAgICAgLy8gYmFzZSAxNlxuICAgICAgaW5kZXgrKztcblxuICAgICAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgICAgIGNoID0gZGF0YVtpbmRleF07XG4gICAgICAgIGlmIChjaCA9PT0gJ18nKSB7IGNvbnRpbnVlOyB9XG4gICAgICAgIGlmICghaXNIZXhDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzRGlnaXRzO1xuICAgIH1cblxuICAgIC8vIGJhc2UgOFxuICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICAgIGlmIChjaCA9PT0gJ18nKSB7IGNvbnRpbnVlOyB9XG4gICAgICBpZiAoIWlzT2N0Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaGFzRGlnaXRzO1xuICB9XG5cbiAgLy8gYmFzZSAxMCAoZXhjZXB0IDApIG9yIGJhc2UgNjBcblxuICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgIGlmIChjaCA9PT0gJ18nKSB7IGNvbnRpbnVlOyB9XG4gICAgaWYgKGNoID09PSAnOicpIHsgYnJlYWs7IH1cbiAgICBpZiAoIWlzRGVjQ29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICB9XG5cbiAgaWYgKCFoYXNEaWdpdHMpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgLy8gaWYgIWJhc2U2MCAtIGRvbmU7XG4gIGlmIChjaCAhPT0gJzonKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgLy8gYmFzZTYwIGFsbW9zdCBub3QgdXNlZCwgbm8gbmVlZHMgdG8gb3B0aW1pemVcbiAgcmV0dXJuIC9eKDpbMC01XT9bMC05XSkrJC8udGVzdChkYXRhLnNsaWNlKGluZGV4KSk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxJbnRlZ2VyKGRhdGEpIHtcbiAgdmFyIHZhbHVlID0gZGF0YSwgc2lnbiA9IDEsIGNoLCBiYXNlLCBkaWdpdHMgPSBbXTtcblxuICBpZiAodmFsdWUuaW5kZXhPZignXycpICE9PSAtMSkge1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXy9nLCAnJyk7XG4gIH1cblxuICBjaCA9IHZhbHVlWzBdO1xuXG4gIGlmIChjaCA9PT0gJy0nIHx8IGNoID09PSAnKycpIHtcbiAgICBpZiAoY2ggPT09ICctJykgeyBzaWduID0gLTE7IH1cbiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpO1xuICAgIGNoID0gdmFsdWVbMF07XG4gIH1cblxuICBpZiAoJzAnID09PSB2YWx1ZSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKGNoID09PSAnMCcpIHtcbiAgICBpZiAodmFsdWVbMV0gPT09ICdiJykge1xuICAgICAgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMik7XG4gICAgfVxuICAgIGlmICh2YWx1ZVsxXSA9PT0gJ3gnKSB7XG4gICAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxNik7XG4gICAgfVxuICAgIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUsIDgpO1xuXG4gIH1cblxuICBpZiAodmFsdWUuaW5kZXhPZignOicpICE9PSAtMSkge1xuICAgIHZhbHVlLnNwbGl0KCc6JykuZm9yRWFjaChmdW5jdGlvbiAodikge1xuICAgICAgZGlnaXRzLnVuc2hpZnQocGFyc2VJbnQodiwgMTApKTtcbiAgICB9KTtcblxuICAgIHZhbHVlID0gMDtcbiAgICBiYXNlID0gMTtcblxuICAgIGRpZ2l0cy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7XG4gICAgICB2YWx1ZSArPSAoZCAqIGJhc2UpO1xuICAgICAgYmFzZSAqPSA2MDtcbiAgICB9KTtcblxuICAgIHJldHVybiBzaWduICogdmFsdWU7XG5cbiAgfVxuXG4gIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUsIDEwKTtcbn1cblxuZnVuY3Rpb24gaXNJbnRlZ2VyKG9iamVjdCkge1xuICByZXR1cm4gKCdbb2JqZWN0IE51bWJlcl0nID09PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSkgJiZcbiAgICAgICAgICgwID09PSBvYmplY3QgJSAxICYmICFjb21tb24uaXNOZWdhdGl2ZVplcm8ob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmludCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sSW50ZWdlcixcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sSW50ZWdlcixcbiAgcHJlZGljYXRlOiBpc0ludGVnZXIsXG4gIHJlcHJlc2VudDoge1xuICAgIGJpbmFyeTogICAgICBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiAnMGInICsgb2JqZWN0LnRvU3RyaW5nKDIpOyB9LFxuICAgIG9jdGFsOiAgICAgICBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiAnMCcgICsgb2JqZWN0LnRvU3RyaW5nKDgpOyB9LFxuICAgIGRlY2ltYWw6ICAgICBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiAgICAgICAgb2JqZWN0LnRvU3RyaW5nKDEwKTsgfSxcbiAgICBoZXhhZGVjaW1hbDogZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gJzB4JyArIG9iamVjdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTsgfVxuICB9LFxuICBkZWZhdWx0U3R5bGU6ICdkZWNpbWFsJyxcbiAgc3R5bGVBbGlhc2VzOiB7XG4gICAgYmluYXJ5OiAgICAgIFsgMiwgICdiaW4nIF0sXG4gICAgb2N0YWw6ICAgICAgIFsgOCwgICdvY3QnIF0sXG4gICAgZGVjaW1hbDogICAgIFsgMTAsICdkZWMnIF0sXG4gICAgaGV4YWRlY2ltYWw6IFsgMTYsICdoZXgnIF1cbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBlc3ByaW1hO1xuXG4vLyBCcm93c2VyaWZpZWQgdmVyc2lvbiBkb2VzIG5vdCBoYXZlIGVzcHJpbWFcbi8vXG4vLyAxLiBGb3Igbm9kZS5qcyBqdXN0IHJlcXVpcmUgbW9kdWxlIGFzIGRlcHNcbi8vIDIuIEZvciBicm93c2VyIHRyeSB0byByZXF1aXJlIG11ZHVsZSB2aWEgZXh0ZXJuYWwgQU1EIHN5c3RlbS5cbi8vICAgIElmIG5vdCBmb3VuZCAtIHRyeSB0byBmYWxsYmFjayB0byB3aW5kb3cuZXNwcmltYS4gSWYgbm90XG4vLyAgICBmb3VuZCB0b28gLSB0aGVuIGZhaWwgdG8gcGFyc2UuXG4vL1xudHJ5IHtcbiAgZXNwcmltYSA9IHJlcXVpcmUoJ2VzcHJpbWEnKTtcbn0gY2F0Y2ggKF8pIHtcbiAgLypnbG9iYWwgd2luZG93ICovXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgeyBlc3ByaW1hID0gd2luZG93LmVzcHJpbWE7IH1cbn1cblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi8uLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVKYXZhc2NyaXB0RnVuY3Rpb24oZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIHNvdXJjZSA9ICcoJyArIGRhdGEgKyAnKScsXG4gICAgICAgIGFzdCAgICA9IGVzcHJpbWEucGFyc2Uoc291cmNlLCB7IHJhbmdlOiB0cnVlIH0pLFxuICAgICAgICBwYXJhbXMgPSBbXSxcbiAgICAgICAgYm9keTtcblxuICAgIGlmICgnUHJvZ3JhbScgICAgICAgICAgICAgIT09IGFzdC50eXBlICAgICAgICAgfHxcbiAgICAgICAgMSAgICAgICAgICAgICAgICAgICAgICE9PSBhc3QuYm9keS5sZW5ndGggIHx8XG4gICAgICAgICdFeHByZXNzaW9uU3RhdGVtZW50JyAhPT0gYXN0LmJvZHlbMF0udHlwZSB8fFxuICAgICAgICAnRnVuY3Rpb25FeHByZXNzaW9uJyAgIT09IGFzdC5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uc3RydWN0SmF2YXNjcmlwdEZ1bmN0aW9uKGRhdGEpIHtcbiAgLypqc2xpbnQgZXZpbDp0cnVlKi9cblxuICB2YXIgc291cmNlID0gJygnICsgZGF0YSArICcpJyxcbiAgICAgIGFzdCAgICA9IGVzcHJpbWEucGFyc2Uoc291cmNlLCB7IHJhbmdlOiB0cnVlIH0pLFxuICAgICAgcGFyYW1zID0gW10sXG4gICAgICBib2R5O1xuXG4gIGlmICgnUHJvZ3JhbScgICAgICAgICAgICAgIT09IGFzdC50eXBlICAgICAgICAgfHxcbiAgICAgIDEgICAgICAgICAgICAgICAgICAgICAhPT0gYXN0LmJvZHkubGVuZ3RoICB8fFxuICAgICAgJ0V4cHJlc3Npb25TdGF0ZW1lbnQnICE9PSBhc3QuYm9keVswXS50eXBlIHx8XG4gICAgICAnRnVuY3Rpb25FeHByZXNzaW9uJyAgIT09IGFzdC5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHJlc29sdmUgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIGFzdC5ib2R5WzBdLmV4cHJlc3Npb24ucGFyYW1zLmZvckVhY2goZnVuY3Rpb24gKHBhcmFtKSB7XG4gICAgcGFyYW1zLnB1c2gocGFyYW0ubmFtZSk7XG4gIH0pO1xuXG4gIGJvZHkgPSBhc3QuYm9keVswXS5leHByZXNzaW9uLmJvZHkucmFuZ2U7XG5cbiAgLy8gRXNwcmltYSdzIHJhbmdlcyBpbmNsdWRlIHRoZSBmaXJzdCAneycgYW5kIHRoZSBsYXN0ICd9JyBjaGFyYWN0ZXJzIG9uXG4gIC8vIGZ1bmN0aW9uIGV4cHJlc3Npb25zLiBTbyBjdXQgdGhlbSBvdXQuXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tbmV3LWZ1bmMqL1xuICByZXR1cm4gbmV3IEZ1bmN0aW9uKHBhcmFtcywgc291cmNlLnNsaWNlKGJvZHlbMF0gKyAxLCBib2R5WzFdIC0gMSkpO1xufVxuXG5mdW5jdGlvbiByZXByZXNlbnRKYXZhc2NyaXB0RnVuY3Rpb24ob2JqZWN0IC8qLCBzdHlsZSovKSB7XG4gIHJldHVybiBvYmplY3QudG9TdHJpbmcoKTtcbn1cblxuZnVuY3Rpb24gaXNGdW5jdGlvbihvYmplY3QpIHtcbiAgcmV0dXJuICdbb2JqZWN0IEZ1bmN0aW9uXScgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpqcy9mdW5jdGlvbicsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVKYXZhc2NyaXB0RnVuY3Rpb24sXG4gIGNvbnN0cnVjdDogY29uc3RydWN0SmF2YXNjcmlwdEZ1bmN0aW9uLFxuICBwcmVkaWNhdGU6IGlzRnVuY3Rpb24sXG4gIHJlcHJlc2VudDogcmVwcmVzZW50SmF2YXNjcmlwdEZ1bmN0aW9uXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi8uLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVKYXZhc2NyaXB0UmVnRXhwKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoMCA9PT0gZGF0YS5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcmVnZXhwID0gZGF0YSxcbiAgICAgIHRhaWwgICA9IC9cXC8oW2dpbV0qKSQvLmV4ZWMoZGF0YSksXG4gICAgICBtb2RpZmllcnMgPSAnJztcblxuICAvLyBpZiByZWdleHAgc3RhcnRzIHdpdGggJy8nIGl0IGNhbiBoYXZlIG1vZGlmaWVycyBhbmQgbXVzdCBiZSBwcm9wZXJseSBjbG9zZWRcbiAgLy8gYC9mb28vZ2ltYCAtIG1vZGlmaWVycyB0YWlsIGNhbiBiZSBtYXhpbXVtIDMgY2hhcnNcbiAgaWYgKCcvJyA9PT0gcmVnZXhwWzBdKSB7XG4gICAgaWYgKHRhaWwpIHtcbiAgICAgIG1vZGlmaWVycyA9IHRhaWxbMV07XG4gICAgfVxuXG4gICAgaWYgKG1vZGlmaWVycy5sZW5ndGggPiAzKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIC8vIGlmIGV4cHJlc3Npb24gc3RhcnRzIHdpdGggLywgaXMgc2hvdWxkIGJlIHByb3Blcmx5IHRlcm1pbmF0ZWRcbiAgICBpZiAocmVnZXhwW3JlZ2V4cC5sZW5ndGggLSBtb2RpZmllcnMubGVuZ3RoIC0gMV0gIT09ICcvJykgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIHJlZ2V4cCA9IHJlZ2V4cC5zbGljZSgxLCByZWdleHAubGVuZ3RoIC0gbW9kaWZpZXJzLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICB2YXIgZHVtbXkgPSBuZXcgUmVnRXhwKHJlZ2V4cCwgbW9kaWZpZXJzKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uc3RydWN0SmF2YXNjcmlwdFJlZ0V4cChkYXRhKSB7XG4gIHZhciByZWdleHAgPSBkYXRhLFxuICAgICAgdGFpbCAgID0gL1xcLyhbZ2ltXSopJC8uZXhlYyhkYXRhKSxcbiAgICAgIG1vZGlmaWVycyA9ICcnO1xuXG4gIC8vIGAvZm9vL2dpbWAgLSB0YWlsIGNhbiBiZSBtYXhpbXVtIDQgY2hhcnNcbiAgaWYgKCcvJyA9PT0gcmVnZXhwWzBdKSB7XG4gICAgaWYgKHRhaWwpIHtcbiAgICAgIG1vZGlmaWVycyA9IHRhaWxbMV07XG4gICAgfVxuICAgIHJlZ2V4cCA9IHJlZ2V4cC5zbGljZSgxLCByZWdleHAubGVuZ3RoIC0gbW9kaWZpZXJzLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXhwLCBtb2RpZmllcnMpO1xufVxuXG5mdW5jdGlvbiByZXByZXNlbnRKYXZhc2NyaXB0UmVnRXhwKG9iamVjdCAvKiwgc3R5bGUqLykge1xuICB2YXIgcmVzdWx0ID0gJy8nICsgb2JqZWN0LnNvdXJjZSArICcvJztcblxuICBpZiAob2JqZWN0Lmdsb2JhbCkge1xuICAgIHJlc3VsdCArPSAnZyc7XG4gIH1cblxuICBpZiAob2JqZWN0Lm11bHRpbGluZSkge1xuICAgIHJlc3VsdCArPSAnbSc7XG4gIH1cblxuICBpZiAob2JqZWN0Lmlnbm9yZUNhc2UpIHtcbiAgICByZXN1bHQgKz0gJ2knO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaXNSZWdFeHAob2JqZWN0KSB7XG4gIHJldHVybiAnW29iamVjdCBSZWdFeHBdJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmpzL3JlZ2V4cCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVKYXZhc2NyaXB0UmVnRXhwLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdEphdmFzY3JpcHRSZWdFeHAsXG4gIHByZWRpY2F0ZTogaXNSZWdFeHAsXG4gIHJlcHJlc2VudDogcmVwcmVzZW50SmF2YXNjcmlwdFJlZ0V4cFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdFVuZGVmaW5lZCgpIHtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRVbmRlZmluZWQoKSB7XG4gIC8qZXNsaW50LWRpc2FibGUgbm8tdW5kZWZpbmVkKi9cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdFVuZGVmaW5lZCgpIHtcbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBpc1VuZGVmaW5lZChvYmplY3QpIHtcbiAgcmV0dXJuICd1bmRlZmluZWQnID09PSB0eXBlb2Ygb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpqcy91bmRlZmluZWQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdFVuZGVmaW5lZCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RKYXZhc2NyaXB0VW5kZWZpbmVkLFxuICBwcmVkaWNhdGU6IGlzVW5kZWZpbmVkLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRVbmRlZmluZWRcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6bWFwJywge1xuICBraW5kOiAnbWFwcGluZycsXG4gIGNvbnN0cnVjdDogZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIG51bGwgIT09IGRhdGEgPyBkYXRhIDoge307IH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxNZXJnZShkYXRhKSB7XG4gIHJldHVybiAnPDwnID09PSBkYXRhIHx8IG51bGwgPT09IGRhdGE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOm1lcmdlJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxNZXJnZVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbE51bGwoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuXG4gIHJldHVybiAobWF4ID09PSAxICYmIGRhdGEgPT09ICd+JykgfHxcbiAgICAgICAgIChtYXggPT09IDQgJiYgKGRhdGEgPT09ICdudWxsJyB8fCBkYXRhID09PSAnTnVsbCcgfHwgZGF0YSA9PT0gJ05VTEwnKSk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNOdWxsKG9iamVjdCkge1xuICByZXR1cm4gbnVsbCA9PT0gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpudWxsJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxOdWxsLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxOdWxsLFxuICBwcmVkaWNhdGU6IGlzTnVsbCxcbiAgcmVwcmVzZW50OiB7XG4gICAgY2Fub25pY2FsOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnfic7ICAgIH0sXG4gICAgbG93ZXJjYXNlOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnbnVsbCc7IH0sXG4gICAgdXBwZXJjYXNlOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnTlVMTCc7IH0sXG4gICAgY2FtZWxjYXNlOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnTnVsbCc7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG52YXIgX2hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfdG9TdHJpbmcgICAgICAgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbE9tYXAoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSxcbiAgICAgIG9iamVjdCA9IGRhdGE7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG4gICAgcGFpckhhc0tleSA9IGZhbHNlO1xuXG4gICAgaWYgKCdbb2JqZWN0IE9iamVjdF0nICE9PSBfdG9TdHJpbmcuY2FsbChwYWlyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAocGFpcktleSBpbiBwYWlyKSB7XG4gICAgICBpZiAoX2hhc093blByb3BlcnR5LmNhbGwocGFpciwgcGFpcktleSkpIHtcbiAgICAgICAgaWYgKCFwYWlySGFzS2V5KSB7XG4gICAgICAgICAgcGFpckhhc0tleSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFwYWlySGFzS2V5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKC0xID09PSBvYmplY3RLZXlzLmluZGV4T2YocGFpcktleSkpIHtcbiAgICAgIG9iamVjdEtleXMucHVzaChwYWlyS2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sT21hcChkYXRhKSB7XG4gIHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IFtdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpvbWFwJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbE9tYXAsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbE9tYXBcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIF90b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sUGFpcnMoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCxcbiAgICAgIG9iamVjdCA9IGRhdGE7XG5cbiAgcmVzdWx0ID0gbmV3IEFycmF5KG9iamVjdC5sZW5ndGgpO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuXG4gICAgaWYgKCdbb2JqZWN0IE9iamVjdF0nICE9PSBfdG9TdHJpbmcuY2FsbChwYWlyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTtcblxuICAgIGlmICgxICE9PSBrZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJlc3VsdFtpbmRleF0gPSBbIGtleXNbMF0sIHBhaXJba2V5c1swXV0gXTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHZhciBpbmRleCwgbGVuZ3RoLCBwYWlyLCBrZXlzLCByZXN1bHQsXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIHJlc3VsdCA9IG5ldyBBcnJheShvYmplY3QubGVuZ3RoKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTtcblxuICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTtcblxuICAgIHJlc3VsdFtpbmRleF0gPSBbIGtleXNbMF0sIHBhaXJba2V5c1swXV0gXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOnBhaXJzJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbFBhaXJzLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxQYWlyc1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpzZXEnLCB7XG4gIGtpbmQ6ICdzZXF1ZW5jZScsXG4gIGNvbnN0cnVjdDogZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIG51bGwgIT09IGRhdGEgPyBkYXRhIDogW107IH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sU2V0KGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBrZXksIG9iamVjdCA9IGRhdGE7XG5cbiAgZm9yIChrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgaWYgKG51bGwgIT09IG9iamVjdFtrZXldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbFNldChkYXRhKSB7XG4gIHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IHt9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpzZXQnLCB7XG4gIGtpbmQ6ICdtYXBwaW5nJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxTZXQsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbFNldFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpzdHInLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6ICcnOyB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBZQU1MX1RJTUVTVEFNUF9SRUdFWFAgPSBuZXcgUmVnRXhwKFxuICAnXihbMC05XVswLTldWzAtOV1bMC05XSknICAgICAgICAgICsgLy8gWzFdIHllYXJcbiAgJy0oWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICArIC8vIFsyXSBtb250aFxuICAnLShbMC05XVswLTldPyknICAgICAgICAgICAgICAgICAgICsgLy8gWzNdIGRheVxuICAnKD86KD86W1R0XXxbIFxcXFx0XSspJyAgICAgICAgICAgICAgKyAvLyAuLi5cbiAgJyhbMC05XVswLTldPyknICAgICAgICAgICAgICAgICAgICArIC8vIFs0XSBob3VyXG4gICc6KFswLTldWzAtOV0pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNV0gbWludXRlXG4gICc6KFswLTldWzAtOV0pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNl0gc2Vjb25kXG4gICcoPzpcXFxcLihbMC05XSopKT8nICAgICAgICAgICAgICAgICArIC8vIFs3XSBmcmFjdGlvblxuICAnKD86WyBcXFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KScgKyAvLyBbOF0gdHogWzldIHR6X3NpZ24gWzEwXSB0el9ob3VyXG4gICcoPzo6KFswLTldWzAtOV0pKT8pKT8pPyQnKTsgICAgICAgICAvLyBbMTFdIHR6X21pbnV0ZVxuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFRpbWVzdGFtcChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIG1hdGNoLCB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgZnJhY3Rpb24gPSAwLFxuICAgICAgZGVsdGEgPSBudWxsLCB0el9ob3VyLCB0el9taW51dGUsIGRhdGU7XG5cbiAgbWF0Y2ggPSBZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKTtcblxuICBpZiAobnVsbCA9PT0gbWF0Y2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbFRpbWVzdGFtcChkYXRhKSB7XG4gIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCxcbiAgICAgIGRlbHRhID0gbnVsbCwgdHpfaG91ciwgdHpfbWludXRlLCBkYXRlO1xuXG4gIG1hdGNoID0gWUFNTF9USU1FU1RBTVBfUkVHRVhQLmV4ZWMoZGF0YSk7XG5cbiAgaWYgKG51bGwgPT09IG1hdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdEYXRlIHJlc29sdmUgZXJyb3InKTtcbiAgfVxuXG4gIC8vIG1hdGNoOiBbMV0geWVhciBbMl0gbW9udGggWzNdIGRheVxuXG4gIHllYXIgPSArKG1hdGNoWzFdKTtcbiAgbW9udGggPSArKG1hdGNoWzJdKSAtIDE7IC8vIEpTIG1vbnRoIHN0YXJ0cyB3aXRoIDBcbiAgZGF5ID0gKyhtYXRjaFszXSk7XG5cbiAgaWYgKCFtYXRjaFs0XSkgeyAvLyBubyBob3VyXG4gICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTtcbiAgfVxuXG4gIC8vIG1hdGNoOiBbNF0gaG91ciBbNV0gbWludXRlIFs2XSBzZWNvbmQgWzddIGZyYWN0aW9uXG5cbiAgaG91ciA9ICsobWF0Y2hbNF0pO1xuICBtaW51dGUgPSArKG1hdGNoWzVdKTtcbiAgc2Vjb25kID0gKyhtYXRjaFs2XSk7XG5cbiAgaWYgKG1hdGNoWzddKSB7XG4gICAgZnJhY3Rpb24gPSBtYXRjaFs3XS5zbGljZSgwLCAzKTtcbiAgICB3aGlsZSAoZnJhY3Rpb24ubGVuZ3RoIDwgMykgeyAvLyBtaWxsaS1zZWNvbmRzXG4gICAgICBmcmFjdGlvbiArPSAnMCc7XG4gICAgfVxuICAgIGZyYWN0aW9uID0gK2ZyYWN0aW9uO1xuICB9XG5cbiAgLy8gbWF0Y2g6IFs4XSB0eiBbOV0gdHpfc2lnbiBbMTBdIHR6X2hvdXIgWzExXSB0el9taW51dGVcblxuICBpZiAobWF0Y2hbOV0pIHtcbiAgICB0el9ob3VyID0gKyhtYXRjaFsxMF0pO1xuICAgIHR6X21pbnV0ZSA9ICsobWF0Y2hbMTFdIHx8IDApO1xuICAgIGRlbHRhID0gKHR6X2hvdXIgKiA2MCArIHR6X21pbnV0ZSkgKiA2MDAwMDsgLy8gZGVsdGEgaW4gbWlsaS1zZWNvbmRzXG4gICAgaWYgKCctJyA9PT0gbWF0Y2hbOV0pIHtcbiAgICAgIGRlbHRhID0gLWRlbHRhO1xuICAgIH1cbiAgfVxuXG4gIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgZnJhY3Rpb24pKTtcblxuICBpZiAoZGVsdGEpIHtcbiAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgLSBkZWx0YSk7XG4gIH1cblxuICByZXR1cm4gZGF0ZTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50WWFtbFRpbWVzdGFtcChvYmplY3QgLyosIHN0eWxlKi8pIHtcbiAgcmV0dXJuIG9iamVjdC50b0lTT1N0cmluZygpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbFRpbWVzdGFtcCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wLFxuICBpbnN0YW5jZU9mOiBEYXRlLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxUaW1lc3RhbXBcbn0pO1xuIiwiLypcbiAgQ29weXJpZ2h0IChDKSAyMDEzIEFyaXlhIEhpZGF5YXQgPGFyaXlhLmhpZGF5YXRAZ21haWwuY29tPlxuICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhhZGRlZSBUeWwgPHRoYWRkZWUudHlsQGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEzIE1hdGhpYXMgQnluZW5zIDxtYXRoaWFzQHFpd2kuYmU+XG4gIENvcHlyaWdodCAoQykgMjAxMiBBcml5YSBIaWRheWF0IDxhcml5YS5oaWRheWF0QGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIE1hdGhpYXMgQnluZW5zIDxtYXRoaWFzQHFpd2kuYmU+XG4gIENvcHlyaWdodCAoQykgMjAxMiBKb29zdC1XaW0gQm9la2VzdGVpam4gPGpvb3N0LXdpbUBib2VrZXN0ZWlqbi5ubD5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIEtyaXMgS293YWwgPGtyaXMua293YWxAY2l4YXIuY29tPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgQXJwYWQgQm9yc29zIDxhcnBhZC5ib3Jzb3NAZ29vZ2xlbWFpbC5jb20+XG4gIENvcHlyaWdodCAoQykgMjAxMSBBcml5YSBIaWRheWF0IDxhcml5YS5oaWRheWF0QGdtYWlsLmNvbT5cblxuICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG5cbiAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZVxuICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cblxuICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTIFwiQVMgSVNcIlxuICBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFXG4gIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFXG4gIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCA8Q09QWVJJR0hUIEhPTERFUj4gQkUgTElBQkxFIEZPUiBBTllcbiAgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTO1xuICBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4qL1xuXG4oZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvLyBVbml2ZXJzYWwgTW9kdWxlIERlZmluaXRpb24gKFVNRCkgdG8gc3VwcG9ydCBBTUQsIENvbW1vbkpTL05vZGUuanMsXG4gICAgLy8gUmhpbm8sIGFuZCBwbGFpbiBicm93c2VyIGxvYWRpbmcuXG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgZGVmaW5lKFsnZXhwb3J0cyddLCBmYWN0b3J5KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBmYWN0b3J5KGV4cG9ydHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZhY3RvcnkoKHJvb3QuZXNwcmltYSA9IHt9KSk7XG4gICAgfVxufSh0aGlzLCBmdW5jdGlvbiAoZXhwb3J0cykge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciBUb2tlbixcbiAgICAgICAgVG9rZW5OYW1lLFxuICAgICAgICBGbkV4cHJUb2tlbnMsXG4gICAgICAgIFN5bnRheCxcbiAgICAgICAgUGxhY2VIb2xkZXJzLFxuICAgICAgICBNZXNzYWdlcyxcbiAgICAgICAgUmVnZXgsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgc3RyaWN0LFxuICAgICAgICBzb3VyY2VUeXBlLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgbGluZU51bWJlcixcbiAgICAgICAgbGluZVN0YXJ0LFxuICAgICAgICBoYXNMaW5lVGVybWluYXRvcixcbiAgICAgICAgbGFzdEluZGV4LFxuICAgICAgICBsYXN0TGluZU51bWJlcixcbiAgICAgICAgbGFzdExpbmVTdGFydCxcbiAgICAgICAgc3RhcnRJbmRleCxcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyLFxuICAgICAgICBzdGFydExpbmVTdGFydCxcbiAgICAgICAgc2Nhbm5pbmcsXG4gICAgICAgIGxlbmd0aCxcbiAgICAgICAgbG9va2FoZWFkLFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgZXh0cmEsXG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQsXG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCxcbiAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yO1xuXG4gICAgVG9rZW4gPSB7XG4gICAgICAgIEJvb2xlYW5MaXRlcmFsOiAxLFxuICAgICAgICBFT0Y6IDIsXG4gICAgICAgIElkZW50aWZpZXI6IDMsXG4gICAgICAgIEtleXdvcmQ6IDQsXG4gICAgICAgIE51bGxMaXRlcmFsOiA1LFxuICAgICAgICBOdW1lcmljTGl0ZXJhbDogNixcbiAgICAgICAgUHVuY3R1YXRvcjogNyxcbiAgICAgICAgU3RyaW5nTGl0ZXJhbDogOCxcbiAgICAgICAgUmVndWxhckV4cHJlc3Npb246IDksXG4gICAgICAgIFRlbXBsYXRlOiAxMFxuICAgIH07XG5cbiAgICBUb2tlbk5hbWUgPSB7fTtcbiAgICBUb2tlbk5hbWVbVG9rZW4uQm9vbGVhbkxpdGVyYWxdID0gJ0Jvb2xlYW4nO1xuICAgIFRva2VuTmFtZVtUb2tlbi5FT0ZdID0gJzxlbmQ+JztcbiAgICBUb2tlbk5hbWVbVG9rZW4uSWRlbnRpZmllcl0gPSAnSWRlbnRpZmllcic7XG4gICAgVG9rZW5OYW1lW1Rva2VuLktleXdvcmRdID0gJ0tleXdvcmQnO1xuICAgIFRva2VuTmFtZVtUb2tlbi5OdWxsTGl0ZXJhbF0gPSAnTnVsbCc7XG4gICAgVG9rZW5OYW1lW1Rva2VuLk51bWVyaWNMaXRlcmFsXSA9ICdOdW1lcmljJztcbiAgICBUb2tlbk5hbWVbVG9rZW4uUHVuY3R1YXRvcl0gPSAnUHVuY3R1YXRvcic7XG4gICAgVG9rZW5OYW1lW1Rva2VuLlN0cmluZ0xpdGVyYWxdID0gJ1N0cmluZyc7XG4gICAgVG9rZW5OYW1lW1Rva2VuLlJlZ3VsYXJFeHByZXNzaW9uXSA9ICdSZWd1bGFyRXhwcmVzc2lvbic7XG4gICAgVG9rZW5OYW1lW1Rva2VuLlRlbXBsYXRlXSA9ICdUZW1wbGF0ZSc7XG5cbiAgICAvLyBBIGZ1bmN0aW9uIGZvbGxvd2luZyBvbmUgb2YgdGhvc2UgdG9rZW5zIGlzIGFuIGV4cHJlc3Npb24uXG4gICAgRm5FeHByVG9rZW5zID0gWycoJywgJ3snLCAnWycsICdpbicsICd0eXBlb2YnLCAnaW5zdGFuY2VvZicsICduZXcnLFxuICAgICAgICAgICAgICAgICAgICAncmV0dXJuJywgJ2Nhc2UnLCAnZGVsZXRlJywgJ3Rocm93JywgJ3ZvaWQnLFxuICAgICAgICAgICAgICAgICAgICAvLyBhc3NpZ25tZW50IG9wZXJhdG9yc1xuICAgICAgICAgICAgICAgICAgICAnPScsICcrPScsICctPScsICcqPScsICcvPScsICclPScsICc8PD0nLCAnPj49JywgJz4+Pj0nLFxuICAgICAgICAgICAgICAgICAgICAnJj0nLCAnfD0nLCAnXj0nLCAnLCcsXG4gICAgICAgICAgICAgICAgICAgIC8vIGJpbmFyeS91bmFyeSBvcGVyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgJysnLCAnLScsICcqJywgJy8nLCAnJScsICcrKycsICctLScsICc8PCcsICc+PicsICc+Pj4nLCAnJicsXG4gICAgICAgICAgICAgICAgICAgICd8JywgJ14nLCAnIScsICd+JywgJyYmJywgJ3x8JywgJz8nLCAnOicsICc9PT0nLCAnPT0nLCAnPj0nLFxuICAgICAgICAgICAgICAgICAgICAnPD0nLCAnPCcsICc+JywgJyE9JywgJyE9PSddO1xuXG4gICAgU3ludGF4ID0ge1xuICAgICAgICBBc3NpZ25tZW50RXhwcmVzc2lvbjogJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJyxcbiAgICAgICAgQXNzaWdubWVudFBhdHRlcm46ICdBc3NpZ25tZW50UGF0dGVybicsXG4gICAgICAgIEFycmF5RXhwcmVzc2lvbjogJ0FycmF5RXhwcmVzc2lvbicsXG4gICAgICAgIEFycmF5UGF0dGVybjogJ0FycmF5UGF0dGVybicsXG4gICAgICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24nLFxuICAgICAgICBCbG9ja1N0YXRlbWVudDogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICAgICAgQmluYXJ5RXhwcmVzc2lvbjogJ0JpbmFyeUV4cHJlc3Npb24nLFxuICAgICAgICBCcmVha1N0YXRlbWVudDogJ0JyZWFrU3RhdGVtZW50JyxcbiAgICAgICAgQ2FsbEV4cHJlc3Npb246ICdDYWxsRXhwcmVzc2lvbicsXG4gICAgICAgIENhdGNoQ2xhdXNlOiAnQ2F0Y2hDbGF1c2UnLFxuICAgICAgICBDbGFzc0JvZHk6ICdDbGFzc0JvZHknLFxuICAgICAgICBDbGFzc0RlY2xhcmF0aW9uOiAnQ2xhc3NEZWNsYXJhdGlvbicsXG4gICAgICAgIENsYXNzRXhwcmVzc2lvbjogJ0NsYXNzRXhwcmVzc2lvbicsXG4gICAgICAgIENvbmRpdGlvbmFsRXhwcmVzc2lvbjogJ0NvbmRpdGlvbmFsRXhwcmVzc2lvbicsXG4gICAgICAgIENvbnRpbnVlU3RhdGVtZW50OiAnQ29udGludWVTdGF0ZW1lbnQnLFxuICAgICAgICBEb1doaWxlU3RhdGVtZW50OiAnRG9XaGlsZVN0YXRlbWVudCcsXG4gICAgICAgIERlYnVnZ2VyU3RhdGVtZW50OiAnRGVidWdnZXJTdGF0ZW1lbnQnLFxuICAgICAgICBFbXB0eVN0YXRlbWVudDogJ0VtcHR5U3RhdGVtZW50JyxcbiAgICAgICAgRXhwb3J0QWxsRGVjbGFyYXRpb246ICdFeHBvcnRBbGxEZWNsYXJhdGlvbicsXG4gICAgICAgIEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjogJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicsXG4gICAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb246ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyxcbiAgICAgICAgRXhwb3J0U3BlY2lmaWVyOiAnRXhwb3J0U3BlY2lmaWVyJyxcbiAgICAgICAgRXhwcmVzc2lvblN0YXRlbWVudDogJ0V4cHJlc3Npb25TdGF0ZW1lbnQnLFxuICAgICAgICBGb3JTdGF0ZW1lbnQ6ICdGb3JTdGF0ZW1lbnQnLFxuICAgICAgICBGb3JJblN0YXRlbWVudDogJ0ZvckluU3RhdGVtZW50JyxcbiAgICAgICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogJ0Z1bmN0aW9uRGVjbGFyYXRpb24nLFxuICAgICAgICBGdW5jdGlvbkV4cHJlc3Npb246ICdGdW5jdGlvbkV4cHJlc3Npb24nLFxuICAgICAgICBJZGVudGlmaWVyOiAnSWRlbnRpZmllcicsXG4gICAgICAgIElmU3RhdGVtZW50OiAnSWZTdGF0ZW1lbnQnLFxuICAgICAgICBJbXBvcnREZWNsYXJhdGlvbjogJ0ltcG9ydERlY2xhcmF0aW9uJyxcbiAgICAgICAgSW1wb3J0RGVmYXVsdFNwZWNpZmllcjogJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInLFxuICAgICAgICBJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI6ICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInLFxuICAgICAgICBJbXBvcnRTcGVjaWZpZXI6ICdJbXBvcnRTcGVjaWZpZXInLFxuICAgICAgICBMaXRlcmFsOiAnTGl0ZXJhbCcsXG4gICAgICAgIExhYmVsZWRTdGF0ZW1lbnQ6ICdMYWJlbGVkU3RhdGVtZW50JyxcbiAgICAgICAgTG9naWNhbEV4cHJlc3Npb246ICdMb2dpY2FsRXhwcmVzc2lvbicsXG4gICAgICAgIE1lbWJlckV4cHJlc3Npb246ICdNZW1iZXJFeHByZXNzaW9uJyxcbiAgICAgICAgTWV0aG9kRGVmaW5pdGlvbjogJ01ldGhvZERlZmluaXRpb24nLFxuICAgICAgICBOZXdFeHByZXNzaW9uOiAnTmV3RXhwcmVzc2lvbicsXG4gICAgICAgIE9iamVjdEV4cHJlc3Npb246ICdPYmplY3RFeHByZXNzaW9uJyxcbiAgICAgICAgT2JqZWN0UGF0dGVybjogJ09iamVjdFBhdHRlcm4nLFxuICAgICAgICBQcm9ncmFtOiAnUHJvZ3JhbScsXG4gICAgICAgIFByb3BlcnR5OiAnUHJvcGVydHknLFxuICAgICAgICBSZXN0RWxlbWVudDogJ1Jlc3RFbGVtZW50JyxcbiAgICAgICAgUmV0dXJuU3RhdGVtZW50OiAnUmV0dXJuU3RhdGVtZW50JyxcbiAgICAgICAgU2VxdWVuY2VFeHByZXNzaW9uOiAnU2VxdWVuY2VFeHByZXNzaW9uJyxcbiAgICAgICAgU3ByZWFkRWxlbWVudDogJ1NwcmVhZEVsZW1lbnQnLFxuICAgICAgICBTdXBlcjogJ1N1cGVyJyxcbiAgICAgICAgU3dpdGNoQ2FzZTogJ1N3aXRjaENhc2UnLFxuICAgICAgICBTd2l0Y2hTdGF0ZW1lbnQ6ICdTd2l0Y2hTdGF0ZW1lbnQnLFxuICAgICAgICBUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246ICdUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24nLFxuICAgICAgICBUZW1wbGF0ZUVsZW1lbnQ6ICdUZW1wbGF0ZUVsZW1lbnQnLFxuICAgICAgICBUZW1wbGF0ZUxpdGVyYWw6ICdUZW1wbGF0ZUxpdGVyYWwnLFxuICAgICAgICBUaGlzRXhwcmVzc2lvbjogJ1RoaXNFeHByZXNzaW9uJyxcbiAgICAgICAgVGhyb3dTdGF0ZW1lbnQ6ICdUaHJvd1N0YXRlbWVudCcsXG4gICAgICAgIFRyeVN0YXRlbWVudDogJ1RyeVN0YXRlbWVudCcsXG4gICAgICAgIFVuYXJ5RXhwcmVzc2lvbjogJ1VuYXJ5RXhwcmVzc2lvbicsXG4gICAgICAgIFVwZGF0ZUV4cHJlc3Npb246ICdVcGRhdGVFeHByZXNzaW9uJyxcbiAgICAgICAgVmFyaWFibGVEZWNsYXJhdGlvbjogJ1ZhcmlhYmxlRGVjbGFyYXRpb24nLFxuICAgICAgICBWYXJpYWJsZURlY2xhcmF0b3I6ICdWYXJpYWJsZURlY2xhcmF0b3InLFxuICAgICAgICBXaGlsZVN0YXRlbWVudDogJ1doaWxlU3RhdGVtZW50JyxcbiAgICAgICAgV2l0aFN0YXRlbWVudDogJ1dpdGhTdGF0ZW1lbnQnXG4gICAgfTtcblxuICAgIFBsYWNlSG9sZGVycyA9IHtcbiAgICAgICAgQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcjogJ0Fycm93UGFyYW1ldGVyUGxhY2VIb2xkZXInXG4gICAgfTtcblxuICAgIC8vIEVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZSBpZGVudGljYWwgdG8gVjguXG4gICAgTWVzc2FnZXMgPSB7XG4gICAgICAgIFVuZXhwZWN0ZWRUb2tlbjogJ1VuZXhwZWN0ZWQgdG9rZW4gJTAnLFxuICAgICAgICBVbmV4cGVjdGVkTnVtYmVyOiAnVW5leHBlY3RlZCBudW1iZXInLFxuICAgICAgICBVbmV4cGVjdGVkU3RyaW5nOiAnVW5leHBlY3RlZCBzdHJpbmcnLFxuICAgICAgICBVbmV4cGVjdGVkSWRlbnRpZmllcjogJ1VuZXhwZWN0ZWQgaWRlbnRpZmllcicsXG4gICAgICAgIFVuZXhwZWN0ZWRSZXNlcnZlZDogJ1VuZXhwZWN0ZWQgcmVzZXJ2ZWQgd29yZCcsXG4gICAgICAgIFVuZXhwZWN0ZWRUZW1wbGF0ZTogJ1VuZXhwZWN0ZWQgcXVhc2kgJTAnLFxuICAgICAgICBVbmV4cGVjdGVkRU9TOiAnVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQnLFxuICAgICAgICBOZXdsaW5lQWZ0ZXJUaHJvdzogJ0lsbGVnYWwgbmV3bGluZSBhZnRlciB0aHJvdycsXG4gICAgICAgIEludmFsaWRSZWdFeHA6ICdJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbicsXG4gICAgICAgIFVudGVybWluYXRlZFJlZ0V4cDogJ0ludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBtaXNzaW5nIC8nLFxuICAgICAgICBJbnZhbGlkTEhTSW5Bc3NpZ25tZW50OiAnSW52YWxpZCBsZWZ0LWhhbmQgc2lkZSBpbiBhc3NpZ25tZW50JyxcbiAgICAgICAgSW52YWxpZExIU0luRm9ySW46ICdJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGZvci1pbicsXG4gICAgICAgIE11bHRpcGxlRGVmYXVsdHNJblN3aXRjaDogJ01vcmUgdGhhbiBvbmUgZGVmYXVsdCBjbGF1c2UgaW4gc3dpdGNoIHN0YXRlbWVudCcsXG4gICAgICAgIE5vQ2F0Y2hPckZpbmFsbHk6ICdNaXNzaW5nIGNhdGNoIG9yIGZpbmFsbHkgYWZ0ZXIgdHJ5JyxcbiAgICAgICAgVW5rbm93bkxhYmVsOiAnVW5kZWZpbmVkIGxhYmVsIFxcJyUwXFwnJyxcbiAgICAgICAgUmVkZWNsYXJhdGlvbjogJyUwIFxcJyUxXFwnIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQnLFxuICAgICAgICBJbGxlZ2FsQ29udGludWU6ICdJbGxlZ2FsIGNvbnRpbnVlIHN0YXRlbWVudCcsXG4gICAgICAgIElsbGVnYWxCcmVhazogJ0lsbGVnYWwgYnJlYWsgc3RhdGVtZW50JyxcbiAgICAgICAgSWxsZWdhbFJldHVybjogJ0lsbGVnYWwgcmV0dXJuIHN0YXRlbWVudCcsXG4gICAgICAgIFN0cmljdE1vZGVXaXRoOiAnU3RyaWN0IG1vZGUgY29kZSBtYXkgbm90IGluY2x1ZGUgYSB3aXRoIHN0YXRlbWVudCcsXG4gICAgICAgIFN0cmljdENhdGNoVmFyaWFibGU6ICdDYXRjaCB2YXJpYWJsZSBtYXkgbm90IGJlIGV2YWwgb3IgYXJndW1lbnRzIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0VmFyTmFtZTogJ1ZhcmlhYmxlIG5hbWUgbWF5IG5vdCBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdFBhcmFtTmFtZTogJ1BhcmFtZXRlciBuYW1lIGV2YWwgb3IgYXJndW1lbnRzIGlzIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0UGFyYW1EdXBlOiAnU3RyaWN0IG1vZGUgZnVuY3Rpb24gbWF5IG5vdCBoYXZlIGR1cGxpY2F0ZSBwYXJhbWV0ZXIgbmFtZXMnLFxuICAgICAgICBTdHJpY3RGdW5jdGlvbk5hbWU6ICdGdW5jdGlvbiBuYW1lIG1heSBub3QgYmUgZXZhbCBvciBhcmd1bWVudHMgaW4gc3RyaWN0IG1vZGUnLFxuICAgICAgICBTdHJpY3RPY3RhbExpdGVyYWw6ICdPY3RhbCBsaXRlcmFscyBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGUuJyxcbiAgICAgICAgU3RyaWN0RGVsZXRlOiAnRGVsZXRlIG9mIGFuIHVucXVhbGlmaWVkIGlkZW50aWZpZXIgaW4gc3RyaWN0IG1vZGUuJyxcbiAgICAgICAgU3RyaWN0TEhTQXNzaWdubWVudDogJ0Fzc2lnbm1lbnQgdG8gZXZhbCBvciBhcmd1bWVudHMgaXMgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGUnLFxuICAgICAgICBTdHJpY3RMSFNQb3N0Zml4OiAnUG9zdGZpeCBpbmNyZW1lbnQvZGVjcmVtZW50IG1heSBub3QgaGF2ZSBldmFsIG9yIGFyZ3VtZW50cyBvcGVyYW5kIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0TEhTUHJlZml4OiAnUHJlZml4IGluY3JlbWVudC9kZWNyZW1lbnQgbWF5IG5vdCBoYXZlIGV2YWwgb3IgYXJndW1lbnRzIG9wZXJhbmQgaW4gc3RyaWN0IG1vZGUnLFxuICAgICAgICBTdHJpY3RSZXNlcnZlZFdvcmQ6ICdVc2Ugb2YgZnV0dXJlIHJlc2VydmVkIHdvcmQgaW4gc3RyaWN0IG1vZGUnLFxuICAgICAgICBUZW1wbGF0ZU9jdGFsTGl0ZXJhbDogJ09jdGFsIGxpdGVyYWxzIGFyZSBub3QgYWxsb3dlZCBpbiB0ZW1wbGF0ZSBzdHJpbmdzLicsXG4gICAgICAgIFBhcmFtZXRlckFmdGVyUmVzdFBhcmFtZXRlcjogJ1Jlc3QgcGFyYW1ldGVyIG11c3QgYmUgbGFzdCBmb3JtYWwgcGFyYW1ldGVyJyxcbiAgICAgICAgRGVmYXVsdFJlc3RQYXJhbWV0ZXI6ICdVbmV4cGVjdGVkIHRva2VuID0nLFxuICAgICAgICBPYmplY3RQYXR0ZXJuQXNSZXN0UGFyYW1ldGVyOiAnVW5leHBlY3RlZCB0b2tlbiB7JyxcbiAgICAgICAgRHVwbGljYXRlUHJvdG9Qcm9wZXJ0eTogJ0R1cGxpY2F0ZSBfX3Byb3RvX18gZmllbGRzIGFyZSBub3QgYWxsb3dlZCBpbiBvYmplY3QgbGl0ZXJhbHMnLFxuICAgICAgICBDb25zdHJ1Y3RvclNwZWNpYWxNZXRob2Q6ICdDbGFzcyBjb25zdHJ1Y3RvciBtYXkgbm90IGJlIGFuIGFjY2Vzc29yJyxcbiAgICAgICAgRHVwbGljYXRlQ29uc3RydWN0b3I6ICdBIGNsYXNzIG1heSBvbmx5IGhhdmUgb25lIGNvbnN0cnVjdG9yJyxcbiAgICAgICAgU3RhdGljUHJvdG90eXBlOiAnQ2xhc3NlcyBtYXkgbm90IGhhdmUgc3RhdGljIHByb3BlcnR5IG5hbWVkIHByb3RvdHlwZScsXG4gICAgICAgIE1pc3NpbmdGcm9tQ2xhdXNlOiAnVW5leHBlY3RlZCB0b2tlbicsXG4gICAgICAgIE5vQXNBZnRlckltcG9ydE5hbWVzcGFjZTogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBJbnZhbGlkTW9kdWxlU3BlY2lmaWVyOiAnVW5leHBlY3RlZCB0b2tlbicsXG4gICAgICAgIElsbGVnYWxJbXBvcnREZWNsYXJhdGlvbjogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBJbGxlZ2FsRXhwb3J0RGVjbGFyYXRpb246ICdVbmV4cGVjdGVkIHRva2VuJ1xuICAgIH07XG5cbiAgICAvLyBTZWUgYWxzbyB0b29scy9nZW5lcmF0ZS11bmljb2RlLXJlZ2V4LnB5LlxuICAgIFJlZ2V4ID0ge1xuICAgICAgICBOb25Bc2NpaUlkZW50aWZpZXJTdGFydDogbmV3IFJlZ0V4cCgnW1xceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzcwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjIwLVxcdTA2NEFcXHUwNjZFXFx1MDY2RlxcdTA2NzEtXFx1MDZEM1xcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDhBMC1cXHUwOEIyXFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4XFx1MEM1OVxcdTBDNjBcXHUwQzYxXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRjFcXHUwQ0YyXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDYwXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3N1xcdTE4ODAtXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUMxLVxcdTE5QzdcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRCXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjFcXHUxQ0Y1XFx1MUNGNlxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkRcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGQ0NcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFRlxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTc4RVxcdUE3OTAtXFx1QTdBRFxcdUE3QjBcXHVBN0IxXFx1QTdGNy1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNUZcXHVBQjY0XFx1QUI2NVxcdUFCQzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ10nKSxcbiAgICAgICAgTm9uQXNjaWlJZGVudGlmaWVyUGFydDogbmV3IFJlZ0V4cCgnW1xceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzAwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0ODMtXFx1MDQ4N1xcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjEwLVxcdTA2MUFcXHUwNjIwLVxcdTA2NjlcXHUwNjZFLVxcdTA2RDNcXHUwNkQ1LVxcdTA2RENcXHUwNkRGLVxcdTA2RThcXHUwNkVBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMC1cXHUwNzRBXFx1MDc0RC1cXHUwN0IxXFx1MDdDMC1cXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgyRFxcdTA4NDAtXFx1MDg1QlxcdTA4QTAtXFx1MDhCMlxcdTA4RTQtXFx1MDk2M1xcdTA5NjYtXFx1MDk2RlxcdTA5NzEtXFx1MDk4M1xcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkMtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNFXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUzXFx1MDlFNi1cXHUwOUYxXFx1MEEwMS1cXHUwQTAzXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNjYtXFx1MEE3NVxcdTBBODEtXFx1MEE4M1xcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCQy1cXHUwQUM1XFx1MEFDNy1cXHUwQUM5XFx1MEFDQi1cXHUwQUNEXFx1MEFEMFxcdTBBRTAtXFx1MEFFM1xcdTBBRTYtXFx1MEFFRlxcdTBCMDEtXFx1MEIwM1xcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNDLVxcdTBCNDRcXHUwQjQ3XFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjcxXFx1MEI4MlxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEMFxcdTBCRDdcXHUwQkU2LVxcdTBCRUZcXHUwQzAwLVxcdTBDMDNcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNELVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNThcXHUwQzU5XFx1MEM2MC1cXHUwQzYzXFx1MEM2Ni1cXHUwQzZGXFx1MEM4MS1cXHUwQzgzXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCQy1cXHUwQ0M0XFx1MENDNi1cXHUwQ0M4XFx1MENDQS1cXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwQ0RFXFx1MENFMC1cXHUwQ0UzXFx1MENFNi1cXHUwQ0VGXFx1MENGMVxcdTBDRjJcXHUwRDAxLVxcdTBEMDNcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNELVxcdTBENDRcXHUwRDQ2LVxcdTBENDhcXHUwRDRBLVxcdTBENEVcXHUwRDU3XFx1MEQ2MC1cXHUwRDYzXFx1MEQ2Ni1cXHUwRDZGXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4MlxcdTBEODNcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MERDQVxcdTBEQ0YtXFx1MERENFxcdTBERDZcXHUwREQ4LVxcdTBEREZcXHUwREU2LVxcdTBERUZcXHUwREYyXFx1MERGM1xcdTBFMDEtXFx1MEUzQVxcdTBFNDAtXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUI5XFx1MEVCQi1cXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFQzgtXFx1MEVDRFxcdTBFRDAtXFx1MEVEOVxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0UtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGNzEtXFx1MEY4NFxcdTBGODYtXFx1MEY5N1xcdTBGOTktXFx1MEZCQ1xcdTBGQzZcXHUxMDAwLVxcdTEwNDlcXHUxMDUwLVxcdTEwOURcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM1RC1cXHUxMzVGXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y0XFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzE0XFx1MTcyMC1cXHUxNzM0XFx1MTc0MC1cXHUxNzUzXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc3MlxcdTE3NzNcXHUxNzgwLVxcdTE3RDNcXHUxN0Q3XFx1MTdEQ1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODEwLVxcdTE4MTlcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTIwLVxcdTE5MkJcXHUxOTMwLVxcdTE5M0JcXHUxOTQ2LVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxOUQwLVxcdTE5RDlcXHUxQTAwLVxcdTFBMUJcXHUxQTIwLVxcdTFBNUVcXHUxQTYwLVxcdTFBN0NcXHUxQTdGLVxcdTFBODlcXHUxQTkwLVxcdTFBOTlcXHUxQUE3XFx1MUFCMC1cXHUxQUJEXFx1MUIwMC1cXHUxQjRCXFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQkYzXFx1MUMwMC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM0RC1cXHUxQzdEXFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0Y2XFx1MUNGOFxcdTFDRjlcXHUxRDAwLVxcdTFERjVcXHUxREZDLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjAwQ1xcdTIwMERcXHUyMDNGXFx1MjA0MFxcdTIwNTRcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRjBcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ3Ri1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkRFMC1cXHUyREZGXFx1MkUyRlxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyRlxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOTlcXHUzMDlBXFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJEXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkNDXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjJCXFx1QTY0MC1cXHVBNjZGXFx1QTY3NC1cXHVBNjdEXFx1QTY3Ri1cXHVBNjlEXFx1QTY5Ri1cXHVBNkYxXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBNzhFXFx1QTc5MC1cXHVBN0FEXFx1QTdCMFxcdUE3QjFcXHVBN0Y3LVxcdUE4MjdcXHVBODQwLVxcdUE4NzNcXHVBODgwLVxcdUE4QzRcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjdcXHVBOEZCXFx1QTkwMC1cXHVBOTJEXFx1QTkzMC1cXHVBOTUzXFx1QTk2MC1cXHVBOTdDXFx1QTk4MC1cXHVBOUMwXFx1QTlDRi1cXHVBOUQ5XFx1QTlFMC1cXHVBOUZFXFx1QUEwMC1cXHVBQTM2XFx1QUE0MC1cXHVBQTREXFx1QUE1MC1cXHVBQTU5XFx1QUE2MC1cXHVBQTc2XFx1QUE3QS1cXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVGXFx1QUFGMi1cXHVBQUY2XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjVGXFx1QUI2NFxcdUFCNjVcXHVBQkMwLVxcdUFCRUFcXHVBQkVDXFx1QUJFRFxcdUFCRjAtXFx1QUJGOVxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkUwMC1cXHVGRTBGXFx1RkUyMC1cXHVGRTJEXFx1RkUzM1xcdUZFMzRcXHVGRTRELVxcdUZFNEZcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjEwLVxcdUZGMTlcXHVGRjIxLVxcdUZGM0FcXHVGRjNGXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXScpXG4gICAgfTtcblxuICAgIC8vIEVuc3VyZSB0aGUgY29uZGl0aW9uIGlzIHRydWUsIG90aGVyd2lzZSB0aHJvdyBhbiBlcnJvci5cbiAgICAvLyBUaGlzIGlzIG9ubHkgdG8gaGF2ZSBhIGJldHRlciBjb250cmFjdCBzZW1hbnRpYywgaS5lLiBhbm90aGVyIHNhZmV0eSBuZXRcbiAgICAvLyB0byBjYXRjaCBhIGxvZ2ljIGVycm9yLiBUaGUgY29uZGl0aW9uIHNoYWxsIGJlIGZ1bGZpbGxlZCBpbiBub3JtYWwgY2FzZS5cbiAgICAvLyBEbyBOT1QgdXNlIHRoaXMgdG8gZW5mb3JjZSBhIGNlcnRhaW4gY29uZGl0aW9uIG9uIGFueSB1c2VyIGlucHV0LlxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiwgbWVzc2FnZSkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQVNTRVJUOiAnICsgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RlY2ltYWxEaWdpdChjaCkge1xuICAgICAgICByZXR1cm4gKGNoID49IDB4MzAgJiYgY2ggPD0gMHgzOSk7ICAgLy8gMC4uOVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSGV4RGlnaXQoY2gpIHtcbiAgICAgICAgcmV0dXJuICcwMTIzNDU2Nzg5YWJjZGVmQUJDREVGJy5pbmRleE9mKGNoKSA+PSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzT2N0YWxEaWdpdChjaCkge1xuICAgICAgICByZXR1cm4gJzAxMjM0NTY3Jy5pbmRleE9mKGNoKSA+PSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9jdGFsVG9EZWNpbWFsKGNoKSB7XG4gICAgICAgIC8vIFxcMCBpcyBub3Qgb2N0YWwgZXNjYXBlIHNlcXVlbmNlXG4gICAgICAgIHZhciBvY3RhbCA9IChjaCAhPT0gJzAnKSwgY29kZSA9ICcwMTIzNDU2NycuaW5kZXhPZihjaCk7XG5cbiAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmIGlzT2N0YWxEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgb2N0YWwgPSB0cnVlO1xuICAgICAgICAgICAgY29kZSA9IGNvZGUgKiA4ICsgJzAxMjM0NTY3Jy5pbmRleE9mKHNvdXJjZVtpbmRleCsrXSk7XG5cbiAgICAgICAgICAgIC8vIDMgZGlnaXRzIGFyZSBvbmx5IGFsbG93ZWQgd2hlbiBzdHJpbmcgc3RhcnRzXG4gICAgICAgICAgICAvLyB3aXRoIDAsIDEsIDIsIDNcbiAgICAgICAgICAgIGlmICgnMDEyMycuaW5kZXhPZihjaCkgPj0gMCAmJlxuICAgICAgICAgICAgICAgICAgICBpbmRleCA8IGxlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgICBpc09jdGFsRGlnaXQoc291cmNlW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICBjb2RlID0gY29kZSAqIDggKyAnMDEyMzQ1NjcnLmluZGV4T2Yoc291cmNlW2luZGV4KytdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2RlOiBjb2RlLFxuICAgICAgICAgICAgb2N0YWw6IG9jdGFsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gNy4yIFdoaXRlIFNwYWNlXG5cbiAgICBmdW5jdGlvbiBpc1doaXRlU3BhY2UoY2gpIHtcbiAgICAgICAgcmV0dXJuIChjaCA9PT0gMHgyMCkgfHwgKGNoID09PSAweDA5KSB8fCAoY2ggPT09IDB4MEIpIHx8IChjaCA9PT0gMHgwQykgfHwgKGNoID09PSAweEEwKSB8fFxuICAgICAgICAgICAgKGNoID49IDB4MTY4MCAmJiBbMHgxNjgwLCAweDE4MEUsIDB4MjAwMCwgMHgyMDAxLCAweDIwMDIsIDB4MjAwMywgMHgyMDA0LCAweDIwMDUsIDB4MjAwNiwgMHgyMDA3LCAweDIwMDgsIDB4MjAwOSwgMHgyMDBBLCAweDIwMkYsIDB4MjA1RiwgMHgzMDAwLCAweEZFRkZdLmluZGV4T2YoY2gpID49IDApO1xuICAgIH1cblxuICAgIC8vIDcuMyBMaW5lIFRlcm1pbmF0b3JzXG5cbiAgICBmdW5jdGlvbiBpc0xpbmVUZXJtaW5hdG9yKGNoKSB7XG4gICAgICAgIHJldHVybiAoY2ggPT09IDB4MEEpIHx8IChjaCA9PT0gMHgwRCkgfHwgKGNoID09PSAweDIwMjgpIHx8IChjaCA9PT0gMHgyMDI5KTtcbiAgICB9XG5cbiAgICAvLyA3LjYgSWRlbnRpZmllciBOYW1lcyBhbmQgSWRlbnRpZmllcnNcblxuICAgIGZ1bmN0aW9uIGlzSWRlbnRpZmllclN0YXJ0KGNoKSB7XG4gICAgICAgIHJldHVybiAoY2ggPT09IDB4MjQpIHx8IChjaCA9PT0gMHg1RikgfHwgIC8vICQgKGRvbGxhcikgYW5kIF8gKHVuZGVyc2NvcmUpXG4gICAgICAgICAgICAoY2ggPj0gMHg0MSAmJiBjaCA8PSAweDVBKSB8fCAgICAgICAgIC8vIEEuLlpcbiAgICAgICAgICAgIChjaCA+PSAweDYxICYmIGNoIDw9IDB4N0EpIHx8ICAgICAgICAgLy8gYS4uelxuICAgICAgICAgICAgKGNoID09PSAweDVDKSB8fCAgICAgICAgICAgICAgICAgICAgICAvLyBcXCAoYmFja3NsYXNoKVxuICAgICAgICAgICAgKChjaCA+PSAweDgwKSAmJiBSZWdleC5Ob25Bc2NpaUlkZW50aWZpZXJTdGFydC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNJZGVudGlmaWVyUGFydChjaCkge1xuICAgICAgICByZXR1cm4gKGNoID09PSAweDI0KSB8fCAoY2ggPT09IDB4NUYpIHx8ICAvLyAkIChkb2xsYXIpIGFuZCBfICh1bmRlcnNjb3JlKVxuICAgICAgICAgICAgKGNoID49IDB4NDEgJiYgY2ggPD0gMHg1QSkgfHwgICAgICAgICAvLyBBLi5aXG4gICAgICAgICAgICAoY2ggPj0gMHg2MSAmJiBjaCA8PSAweDdBKSB8fCAgICAgICAgIC8vIGEuLnpcbiAgICAgICAgICAgIChjaCA+PSAweDMwICYmIGNoIDw9IDB4MzkpIHx8ICAgICAgICAgLy8gMC4uOVxuICAgICAgICAgICAgKGNoID09PSAweDVDKSB8fCAgICAgICAgICAgICAgICAgICAgICAvLyBcXCAoYmFja3NsYXNoKVxuICAgICAgICAgICAgKChjaCA+PSAweDgwKSAmJiBSZWdleC5Ob25Bc2NpaUlkZW50aWZpZXJQYXJ0LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShjaCkpKTtcbiAgICB9XG5cbiAgICAvLyA3LjYuMS4yIEZ1dHVyZSBSZXNlcnZlZCBXb3Jkc1xuXG4gICAgZnVuY3Rpb24gaXNGdXR1cmVSZXNlcnZlZFdvcmQoaWQpIHtcbiAgICAgICAgc3dpdGNoIChpZCkge1xuICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgY2FzZSAnaW1wb3J0JzpcbiAgICAgICAgY2FzZSAnc3VwZXInOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAxMS42LjIuMiBGdXR1cmUgUmVzZXJ2ZWQgV29yZHNcblxuICAgIGZ1bmN0aW9uIGlzU3RyaWN0TW9kZVJlc2VydmVkV29yZChpZCkge1xuICAgICAgICBzd2l0Y2ggKGlkKSB7XG4gICAgICAgIGNhc2UgJ2ltcGxlbWVudHMnOlxuICAgICAgICBjYXNlICdpbnRlcmZhY2UnOlxuICAgICAgICBjYXNlICdwYWNrYWdlJzpcbiAgICAgICAgY2FzZSAncHJpdmF0ZSc6XG4gICAgICAgIGNhc2UgJ3Byb3RlY3RlZCc6XG4gICAgICAgIGNhc2UgJ3B1YmxpYyc6XG4gICAgICAgIGNhc2UgJ3N0YXRpYyc6XG4gICAgICAgIGNhc2UgJ3lpZWxkJzpcbiAgICAgICAgY2FzZSAnbGV0JzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNSZXN0cmljdGVkV29yZChpZCkge1xuICAgICAgICByZXR1cm4gaWQgPT09ICdldmFsJyB8fCBpZCA9PT0gJ2FyZ3VtZW50cyc7XG4gICAgfVxuXG4gICAgLy8gNy42LjEuMSBLZXl3b3Jkc1xuXG4gICAgZnVuY3Rpb24gaXNLZXl3b3JkKGlkKSB7XG5cbiAgICAgICAgLy8gJ2NvbnN0JyBpcyBzcGVjaWFsaXplZCBhcyBLZXl3b3JkIGluIFY4LlxuICAgICAgICAvLyAneWllbGQnIGFuZCAnbGV0JyBhcmUgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBTcGlkZXJNb25rZXkgYW5kIEVTLm5leHQuXG4gICAgICAgIC8vIFNvbWUgb3RoZXJzIGFyZSBmcm9tIGZ1dHVyZSByZXNlcnZlZCB3b3Jkcy5cblxuICAgICAgICBzd2l0Y2ggKGlkLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnaWYnKSB8fCAoaWQgPT09ICdpbicpIHx8IChpZCA9PT0gJ2RvJyk7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiAoaWQgPT09ICd2YXInKSB8fCAoaWQgPT09ICdmb3InKSB8fCAoaWQgPT09ICduZXcnKSB8fFxuICAgICAgICAgICAgICAgIChpZCA9PT0gJ3RyeScpIHx8IChpZCA9PT0gJ2xldCcpO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAndGhpcycpIHx8IChpZCA9PT0gJ2Vsc2UnKSB8fCAoaWQgPT09ICdjYXNlJykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICd2b2lkJykgfHwgKGlkID09PSAnd2l0aCcpIHx8IChpZCA9PT0gJ2VudW0nKTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ3doaWxlJykgfHwgKGlkID09PSAnYnJlYWsnKSB8fCAoaWQgPT09ICdjYXRjaCcpIHx8XG4gICAgICAgICAgICAgICAgKGlkID09PSAndGhyb3cnKSB8fCAoaWQgPT09ICdjb25zdCcpIHx8IChpZCA9PT0gJ3lpZWxkJykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICdjbGFzcycpIHx8IChpZCA9PT0gJ3N1cGVyJyk7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiAoaWQgPT09ICdyZXR1cm4nKSB8fCAoaWQgPT09ICd0eXBlb2YnKSB8fCAoaWQgPT09ICdkZWxldGUnKSB8fFxuICAgICAgICAgICAgICAgIChpZCA9PT0gJ3N3aXRjaCcpIHx8IChpZCA9PT0gJ2V4cG9ydCcpIHx8IChpZCA9PT0gJ2ltcG9ydCcpO1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnZGVmYXVsdCcpIHx8IChpZCA9PT0gJ2ZpbmFsbHknKSB8fCAoaWQgPT09ICdleHRlbmRzJyk7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIHJldHVybiAoaWQgPT09ICdmdW5jdGlvbicpIHx8IChpZCA9PT0gJ2NvbnRpbnVlJykgfHwgKGlkID09PSAnZGVidWdnZXInKTtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIHJldHVybiAoaWQgPT09ICdpbnN0YW5jZW9mJyk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA3LjQgQ29tbWVudHNcblxuICAgIGZ1bmN0aW9uIGFkZENvbW1lbnQodHlwZSwgdmFsdWUsIHN0YXJ0LCBlbmQsIGxvYykge1xuICAgICAgICB2YXIgY29tbWVudDtcblxuICAgICAgICBhc3NlcnQodHlwZW9mIHN0YXJ0ID09PSAnbnVtYmVyJywgJ0NvbW1lbnQgbXVzdCBoYXZlIHZhbGlkIHBvc2l0aW9uJyk7XG5cbiAgICAgICAgc3RhdGUubGFzdENvbW1lbnRTdGFydCA9IHN0YXJ0O1xuXG4gICAgICAgIGNvbW1lbnQgPSB7XG4gICAgICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIGlmIChleHRyYS5yYW5nZSkge1xuICAgICAgICAgICAgY29tbWVudC5yYW5nZSA9IFtzdGFydCwgZW5kXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXh0cmEubG9jKSB7XG4gICAgICAgICAgICBjb21tZW50LmxvYyA9IGxvYztcbiAgICAgICAgfVxuICAgICAgICBleHRyYS5jb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICBpZiAoZXh0cmEuYXR0YWNoQ29tbWVudCkge1xuICAgICAgICAgICAgZXh0cmEubGVhZGluZ0NvbW1lbnRzLnB1c2goY29tbWVudCk7XG4gICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzLnB1c2goY29tbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBza2lwU2luZ2xlTGluZUNvbW1lbnQob2Zmc2V0KSB7XG4gICAgICAgIHZhciBzdGFydCwgbG9jLCBjaCwgY29tbWVudDtcblxuICAgICAgICBzdGFydCA9IGluZGV4IC0gb2Zmc2V0O1xuICAgICAgICBsb2MgPSB7XG4gICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydCAtIG9mZnNldFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2gpKSB7XG4gICAgICAgICAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChleHRyYS5jb21tZW50cykge1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gc291cmNlLnNsaWNlKHN0YXJ0ICsgb2Zmc2V0LCBpbmRleCAtIDEpO1xuICAgICAgICAgICAgICAgICAgICBsb2MuZW5kID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnQgLSAxXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGFkZENvbW1lbnQoJ0xpbmUnLCBjb21tZW50LCBzdGFydCwgaW5kZXggLSAxLCBsb2MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09IDEzICYmIHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSA9PT0gMTApIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgIGxpbmVTdGFydCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChleHRyYS5jb21tZW50cykge1xuICAgICAgICAgICAgY29tbWVudCA9IHNvdXJjZS5zbGljZShzdGFydCArIG9mZnNldCwgaW5kZXgpO1xuICAgICAgICAgICAgbG9jLmVuZCA9IHtcbiAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhZGRDb21tZW50KCdMaW5lJywgY29tbWVudCwgc3RhcnQsIGluZGV4LCBsb2MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tpcE11bHRpTGluZUNvbW1lbnQoKSB7XG4gICAgICAgIHZhciBzdGFydCwgbG9jLCBjaCwgY29tbWVudDtcblxuICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gaW5kZXggLSAyO1xuICAgICAgICAgICAgbG9jID0ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnQgLSAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoaXNMaW5lVGVybWluYXRvcihjaCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09IDB4MEQgJiYgc291cmNlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSA9PT0gMHgwQSkge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBoYXNMaW5lVGVybWluYXRvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAweDJBKSB7XG4gICAgICAgICAgICAgICAgLy8gQmxvY2sgY29tbWVudCBlbmRzIHdpdGggJyovJy5cbiAgICAgICAgICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSA9PT0gMHgyRikge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBzb3VyY2Uuc2xpY2Uoc3RhcnQgKyAyLCBpbmRleCAtIDIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jLmVuZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRDb21tZW50KCdCbG9jaycsIGNvbW1lbnQsIHN0YXJ0LCBpbmRleCwgbG9jKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIGZpbGUgLSB0aGUgd2hvbGUgdGhpbmcgaXMgYSBjb21tZW50XG4gICAgICAgIGlmIChleHRyYS5jb21tZW50cykge1xuICAgICAgICAgICAgbG9jLmVuZCA9IHtcbiAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb21tZW50ID0gc291cmNlLnNsaWNlKHN0YXJ0ICsgMiwgaW5kZXgpO1xuICAgICAgICAgICAgYWRkQ29tbWVudCgnQmxvY2snLCBjb21tZW50LCBzdGFydCwgaW5kZXgsIGxvYyk7XG4gICAgICAgIH1cbiAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBza2lwQ29tbWVudCgpIHtcbiAgICAgICAgdmFyIGNoLCBzdGFydDtcbiAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSBmYWxzZTtcblxuICAgICAgICBzdGFydCA9IChpbmRleCA9PT0gMCk7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG5cbiAgICAgICAgICAgIGlmIChpc1doaXRlU3BhY2UoY2gpKSB7XG4gICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcihjaCkpIHtcbiAgICAgICAgICAgICAgICBoYXNMaW5lVGVybWluYXRvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09IDB4MEQgJiYgc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpID09PSAweDBBKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICBsaW5lU3RhcnQgPSBpbmRleDtcbiAgICAgICAgICAgICAgICBzdGFydCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAweDJGKSB7IC8vIFUrMDAyRiBpcyAnLydcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAweDJGKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHNraXBTaW5nbGVMaW5lQ29tbWVudCgyKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09IDB4MkEpIHsgIC8vIFUrMDAyQSBpcyAnKidcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgc2tpcE11bHRpTGluZUNvbW1lbnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0ICYmIGNoID09PSAweDJEKSB7IC8vIFUrMDAyRCBpcyAnLSdcbiAgICAgICAgICAgICAgICAvLyBVKzAwM0UgaXMgJz4nXG4gICAgICAgICAgICAgICAgaWYgKChzb3VyY2UuY2hhckNvZGVBdChpbmRleCArIDEpID09PSAweDJEKSAmJiAoc291cmNlLmNoYXJDb2RlQXQoaW5kZXggKyAyKSA9PT0gMHgzRSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gJy0tPicgaXMgYSBzaW5nbGUtbGluZSBjb21tZW50XG4gICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IDM7XG4gICAgICAgICAgICAgICAgICAgIHNraXBTaW5nbGVMaW5lQ29tbWVudCgzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAweDNDKSB7IC8vIFUrMDAzQyBpcyAnPCdcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlLnNsaWNlKGluZGV4ICsgMSwgaW5kZXggKyA0KSA9PT0gJyEtLScpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDsgLy8gYDxgXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7IC8vIGAhYFxuICAgICAgICAgICAgICAgICAgICArK2luZGV4OyAvLyBgLWBcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDsgLy8gYC1gXG4gICAgICAgICAgICAgICAgICAgIHNraXBTaW5nbGVMaW5lQ29tbWVudCg0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2NhbkhleEVzY2FwZShwcmVmaXgpIHtcbiAgICAgICAgdmFyIGksIGxlbiwgY2gsIGNvZGUgPSAwO1xuXG4gICAgICAgIGxlbiA9IChwcmVmaXggPT09ICd1JykgPyA0IDogMjtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCBsZW5ndGggJiYgaXNIZXhEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgICAgIGNvZGUgPSBjb2RlICogMTYgKyAnMDEyMzQ1Njc4OWFiY2RlZicuaW5kZXhPZihjaC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5Vbmljb2RlQ29kZVBvaW50RXNjYXBlKCkge1xuICAgICAgICB2YXIgY2gsIGNvZGUsIGN1MSwgY3UyO1xuXG4gICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgY29kZSA9IDA7XG5cbiAgICAgICAgLy8gQXQgbGVhc3QsIG9uZSBoZXggZGlnaXQgaXMgcmVxdWlyZWQuXG4gICAgICAgIGlmIChjaCA9PT0gJ30nKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIGlmICghaXNIZXhEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvZGUgPSBjb2RlICogMTYgKyAnMDEyMzQ1Njc4OWFiY2RlZicuaW5kZXhPZihjaC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2RlID4gMHgxMEZGRkYgfHwgY2ggIT09ICd9Jykge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVURi0xNiBFbmNvZGluZ1xuICAgICAgICBpZiAoY29kZSA8PSAweEZGRkYpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgICB9XG4gICAgICAgIGN1MSA9ICgoY29kZSAtIDB4MTAwMDApID4+IDEwKSArIDB4RDgwMDtcbiAgICAgICAgY3UyID0gKChjb2RlIC0gMHgxMDAwMCkgJiAxMDIzKSArIDB4REMwMDtcbiAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY3UxLCBjdTIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEVzY2FwZWRJZGVudGlmaWVyKCkge1xuICAgICAgICB2YXIgY2gsIGlkO1xuXG4gICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgrKyk7XG4gICAgICAgIGlkID0gU3RyaW5nLmZyb21DaGFyQ29kZShjaCk7XG5cbiAgICAgICAgLy8gJ1xcdScgKFUrMDA1QywgVSswMDc1KSBkZW5vdGVzIGFuIGVzY2FwZWQgY2hhcmFjdGVyLlxuICAgICAgICBpZiAoY2ggPT09IDB4NUMpIHtcbiAgICAgICAgICAgIGlmIChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkgIT09IDB4NzUpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGNoID0gc2NhbkhleEVzY2FwZSgndScpO1xuICAgICAgICAgICAgaWYgKCFjaCB8fCBjaCA9PT0gJ1xcXFwnIHx8ICFpc0lkZW50aWZpZXJTdGFydChjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZCA9IGNoO1xuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KTtcbiAgICAgICAgICAgIGlmICghaXNJZGVudGlmaWVyUGFydChjaCkpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBpZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoKTtcblxuICAgICAgICAgICAgLy8gJ1xcdScgKFUrMDA1QywgVSswMDc1KSBkZW5vdGVzIGFuIGVzY2FwZWQgY2hhcmFjdGVyLlxuICAgICAgICAgICAgaWYgKGNoID09PSAweDVDKSB7XG4gICAgICAgICAgICAgICAgaWQgPSBpZC5zdWJzdHIoMCwgaWQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSAhPT0gMHg3NSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIGNoID0gc2NhbkhleEVzY2FwZSgndScpO1xuICAgICAgICAgICAgICAgIGlmICghY2ggfHwgY2ggPT09ICdcXFxcJyB8fCAhaXNJZGVudGlmaWVyUGFydChjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZCArPSBjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRJZGVudGlmaWVyKCkge1xuICAgICAgICB2YXIgc3RhcnQsIGNoO1xuXG4gICAgICAgIHN0YXJ0ID0gaW5kZXgrKztcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gMHg1Qykge1xuICAgICAgICAgICAgICAgIC8vIEJsYWNrc2xhc2ggKFUrMDA1QykgbWFya3MgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2UuXG4gICAgICAgICAgICAgICAgaW5kZXggPSBzdGFydDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0RXNjYXBlZElkZW50aWZpZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0lkZW50aWZpZXJQYXJ0KGNoKSkge1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNvdXJjZS5zbGljZShzdGFydCwgaW5kZXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5JZGVudGlmaWVyKCkge1xuICAgICAgICB2YXIgc3RhcnQsIGlkLCB0eXBlO1xuXG4gICAgICAgIHN0YXJ0ID0gaW5kZXg7XG5cbiAgICAgICAgLy8gQmFja3NsYXNoIChVKzAwNUMpIHN0YXJ0cyBhbiBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICAgICAgaWQgPSAoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpID09PSAweDVDKSA/IGdldEVzY2FwZWRJZGVudGlmaWVyKCkgOiBnZXRJZGVudGlmaWVyKCk7XG5cbiAgICAgICAgLy8gVGhlcmUgaXMgbm8ga2V5d29yZCBvciBsaXRlcmFsIHdpdGggb25seSBvbmUgY2hhcmFjdGVyLlxuICAgICAgICAvLyBUaHVzLCBpdCBtdXN0IGJlIGFuIGlkZW50aWZpZXIuXG4gICAgICAgIGlmIChpZC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHR5cGUgPSBUb2tlbi5JZGVudGlmaWVyO1xuICAgICAgICB9IGVsc2UgaWYgKGlzS2V5d29yZChpZCkpIHtcbiAgICAgICAgICAgIHR5cGUgPSBUb2tlbi5LZXl3b3JkO1xuICAgICAgICB9IGVsc2UgaWYgKGlkID09PSAnbnVsbCcpIHtcbiAgICAgICAgICAgIHR5cGUgPSBUb2tlbi5OdWxsTGl0ZXJhbDtcbiAgICAgICAgfSBlbHNlIGlmIChpZCA9PT0gJ3RydWUnIHx8IGlkID09PSAnZmFsc2UnKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uQm9vbGVhbkxpdGVyYWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uSWRlbnRpZmllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICAgICAgdmFsdWU6IGlkLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuXG4gICAgLy8gNy43IFB1bmN0dWF0b3JzXG5cbiAgICBmdW5jdGlvbiBzY2FuUHVuY3R1YXRvcigpIHtcbiAgICAgICAgdmFyIHRva2VuLCBzdHI7XG5cbiAgICAgICAgdG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlbi5QdW5jdHVhdG9yLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IGluZGV4LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENoZWNrIGZvciBtb3N0IGNvbW1vbiBzaW5nbGUtY2hhcmFjdGVyIHB1bmN0dWF0b3JzLlxuICAgICAgICBzdHIgPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICBzd2l0Y2ggKHN0cikge1xuXG4gICAgICAgIGNhc2UgJygnOlxuICAgICAgICAgICAgaWYgKGV4dHJhLnRva2VuaXplKSB7XG4gICAgICAgICAgICAgICAgZXh0cmEub3BlblBhcmVuVG9rZW4gPSBleHRyYS50b2tlbnMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3snOlxuICAgICAgICAgICAgaWYgKGV4dHJhLnRva2VuaXplKSB7XG4gICAgICAgICAgICAgICAgZXh0cmEub3BlbkN1cmx5VG9rZW4gPSBleHRyYS50b2tlbnMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhdGUuY3VybHlTdGFjay5wdXNoKCd7Jyk7XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnLic6XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgaWYgKHNvdXJjZVtpbmRleF0gPT09ICcuJyAmJiBzb3VyY2VbaW5kZXggKyAxXSA9PT0gJy4nKSB7XG4gICAgICAgICAgICAgICAgLy8gU3ByZWFkIG9wZXJhdG9yOiAuLi5cbiAgICAgICAgICAgICAgICBpbmRleCArPSAyO1xuICAgICAgICAgICAgICAgIHN0ciA9ICcuLi4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnfSc6XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgc3RhdGUuY3VybHlTdGFjay5wb3AoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICcpJzpcbiAgICAgICAgY2FzZSAnOyc6XG4gICAgICAgIGNhc2UgJywnOlxuICAgICAgICBjYXNlICdbJzpcbiAgICAgICAgY2FzZSAnXSc6XG4gICAgICAgIGNhc2UgJzonOlxuICAgICAgICBjYXNlICc/JzpcbiAgICAgICAgY2FzZSAnfic6XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIDQtY2hhcmFjdGVyIHB1bmN0dWF0b3IuXG4gICAgICAgICAgICBzdHIgPSBzb3VyY2Uuc3Vic3RyKGluZGV4LCA0KTtcbiAgICAgICAgICAgIGlmIChzdHIgPT09ICc+Pj49Jykge1xuICAgICAgICAgICAgICAgIGluZGV4ICs9IDQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgLy8gMy1jaGFyYWN0ZXIgcHVuY3R1YXRvcnMuXG4gICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cigwLCAzKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RyID09PSAnPT09JyB8fCBzdHIgPT09ICchPT0nIHx8IHN0ciA9PT0gJz4+PicgfHxcbiAgICAgICAgICAgICAgICAgICAgc3RyID09PSAnPDw9JyB8fCBzdHIgPT09ICc+Pj0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IDM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICAvLyAyLWNoYXJhY3RlciBwdW5jdHVhdG9ycy5cbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cigwLCAyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0ciA9PT0gJyYmJyB8fCBzdHIgPT09ICd8fCcgfHwgc3RyID09PSAnPT0nIHx8IHN0ciA9PT0gJyE9JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID09PSAnKz0nIHx8IHN0ciA9PT0gJy09JyB8fCBzdHIgPT09ICcqPScgfHwgc3RyID09PSAnLz0nIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPT09ICcrKycgfHwgc3RyID09PSAnLS0nIHx8IHN0ciA9PT0gJzw8JyB8fCBzdHIgPT09ICc+PicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJyY9JyB8fCBzdHIgPT09ICd8PScgfHwgc3RyID09PSAnXj0nIHx8IHN0ciA9PT0gJyU9JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID09PSAnPD0nIHx8IHN0ciA9PT0gJz49JyB8fCBzdHIgPT09ICc9PicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IDI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEtY2hhcmFjdGVyIHB1bmN0dWF0b3JzLlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnPD49ISstKiUmfF4vJy5pbmRleE9mKHN0cikgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggPT09IHRva2VuLnN0YXJ0KSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdG9rZW4uZW5kID0gaW5kZXg7XG4gICAgICAgIHRva2VuLnZhbHVlID0gc3RyO1xuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgfVxuXG4gICAgLy8gNy44LjMgTnVtZXJpYyBMaXRlcmFsc1xuXG4gICAgZnVuY3Rpb24gc2NhbkhleExpdGVyYWwoc3RhcnQpIHtcbiAgICAgICAgdmFyIG51bWJlciA9ICcnO1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKCFpc0hleERpZ2l0KHNvdXJjZVtpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG51bWJlci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlbi5OdW1lcmljTGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZUludCgnMHgnICsgbnVtYmVyLCAxNiksXG4gICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2NhbkJpbmFyeUxpdGVyYWwoc3RhcnQpIHtcbiAgICAgICAgdmFyIGNoLCBudW1iZXI7XG5cbiAgICAgICAgbnVtYmVyID0gJyc7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgICAgICBpZiAoY2ggIT09ICcwJyAmJiBjaCAhPT0gJzEnKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG51bWJlci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIG9ubHkgMGIgb3IgMEJcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChjaCkgfHwgaXNEZWNpbWFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlbi5OdW1lcmljTGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZUludChudW1iZXIsIDIpLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5PY3RhbExpdGVyYWwocHJlZml4LCBzdGFydCkge1xuICAgICAgICB2YXIgbnVtYmVyLCBvY3RhbDtcblxuICAgICAgICBpZiAoaXNPY3RhbERpZ2l0KHByZWZpeCkpIHtcbiAgICAgICAgICAgIG9jdGFsID0gdHJ1ZTtcbiAgICAgICAgICAgIG51bWJlciA9ICcwJyArIHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9jdGFsID0gZmFsc2U7XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgbnVtYmVyID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICghaXNPY3RhbERpZ2l0KHNvdXJjZVtpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvY3RhbCAmJiBudW1iZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBvbmx5IDBvIG9yIDBPXG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkgfHwgaXNEZWNpbWFsRGlnaXQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlbi5OdW1lcmljTGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZUludChudW1iZXIsIDgpLFxuICAgICAgICAgICAgb2N0YWw6IG9jdGFsLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSW1wbGljaXRPY3RhbExpdGVyYWwoKSB7XG4gICAgICAgIHZhciBpLCBjaDtcblxuICAgICAgICAvLyBJbXBsaWNpdCBvY3RhbCwgdW5sZXNzIHRoZXJlIGlzIGEgbm9uLW9jdGFsIGRpZ2l0LlxuICAgICAgICAvLyAoQW5uZXggQi4xLjEgb24gTnVtZXJpYyBMaXRlcmFscylcbiAgICAgICAgZm9yIChpID0gaW5kZXggKyAxOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2ldO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnOCcgfHwgY2ggPT09ICc5Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNPY3RhbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2Nhbk51bWVyaWNMaXRlcmFsKCkge1xuICAgICAgICB2YXIgbnVtYmVyLCBzdGFydCwgY2g7XG5cbiAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICBhc3NlcnQoaXNEZWNpbWFsRGlnaXQoY2guY2hhckNvZGVBdCgwKSkgfHwgKGNoID09PSAnLicpLFxuICAgICAgICAgICAgJ051bWVyaWMgbGl0ZXJhbCBtdXN0IHN0YXJ0IHdpdGggYSBkZWNpbWFsIGRpZ2l0IG9yIGEgZGVjaW1hbCBwb2ludCcpO1xuXG4gICAgICAgIHN0YXJ0ID0gaW5kZXg7XG4gICAgICAgIG51bWJlciA9ICcnO1xuICAgICAgICBpZiAoY2ggIT09ICcuJykge1xuICAgICAgICAgICAgbnVtYmVyID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuXG4gICAgICAgICAgICAvLyBIZXggbnVtYmVyIHN0YXJ0cyB3aXRoICcweCcuXG4gICAgICAgICAgICAvLyBPY3RhbCBudW1iZXIgc3RhcnRzIHdpdGggJzAnLlxuICAgICAgICAgICAgLy8gT2N0YWwgbnVtYmVyIGluIEVTNiBzdGFydHMgd2l0aCAnMG8nLlxuICAgICAgICAgICAgLy8gQmluYXJ5IG51bWJlciBpbiBFUzYgc3RhcnRzIHdpdGggJzBiJy5cbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09ICcwJykge1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ3gnIHx8IGNoID09PSAnWCcpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5IZXhMaXRlcmFsKHN0YXJ0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnYicgfHwgY2ggPT09ICdCJykge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NhbkJpbmFyeUxpdGVyYWwoc3RhcnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdvJyB8fCBjaCA9PT0gJ08nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuT2N0YWxMaXRlcmFsKGNoLCBzdGFydCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGlzT2N0YWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSW1wbGljaXRPY3RhbExpdGVyYWwoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5PY3RhbExpdGVyYWwoY2gsIHN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2hpbGUgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoID09PSAnLicpIHtcbiAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICB3aGlsZSAoaXNEZWNpbWFsRGlnaXQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2ggPT09ICdlJyB8fCBjaCA9PT0gJ0UnKSB7XG4gICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuXG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgICAgICBpZiAoY2ggPT09ICcrJyB8fCBjaCA9PT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlbi5OdW1lcmljTGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZUZsb2F0KG51bWJlciksXG4gICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gNy44LjQgU3RyaW5nIExpdGVyYWxzXG5cbiAgICBmdW5jdGlvbiBzY2FuU3RyaW5nTGl0ZXJhbCgpIHtcbiAgICAgICAgdmFyIHN0ciA9ICcnLCBxdW90ZSwgc3RhcnQsIGNoLCB1bmVzY2FwZWQsIG9jdFRvRGVjLCBvY3RhbCA9IGZhbHNlO1xuXG4gICAgICAgIHF1b3RlID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgYXNzZXJ0KChxdW90ZSA9PT0gJ1xcJycgfHwgcXVvdGUgPT09ICdcIicpLFxuICAgICAgICAgICAgJ1N0cmluZyBsaXRlcmFsIG11c3Qgc3RhcnRzIHdpdGggYSBxdW90ZScpO1xuXG4gICAgICAgIHN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICsraW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcblxuICAgICAgICAgICAgaWYgKGNoID09PSBxdW90ZSkge1xuICAgICAgICAgICAgICAgIHF1b3RlID0gJyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICBpZiAoIWNoIHx8ICFpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3gnOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtpbmRleF0gPT09ICd7Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IHNjYW5Vbmljb2RlQ29kZVBvaW50RXNjYXBlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXNjYXBlZCA9IHNjYW5IZXhFc2NhcGUoY2gpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdW5lc2NhcGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSB1bmVzY2FwZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbic6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcbic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncic6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xccic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcdCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYic6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcYic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZic6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcZic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndic6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xceDBCJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICc4JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnOSc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPY3RhbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdFRvRGVjID0gb2N0YWxUb0RlY2ltYWwoY2gpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2N0YWwgPSBvY3RUb0RlYy5vY3RhbCB8fCBvY3RhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShvY3RUb0RlYy5jb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2luZGV4XSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0ciArPSBjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChxdW90ZSAhPT0gJycpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uU3RyaW5nTGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiBzdHIsXG4gICAgICAgICAgICBvY3RhbDogb2N0YWwsXG4gICAgICAgICAgICBsaW5lTnVtYmVyOiBzdGFydExpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IHN0YXJ0TGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5UZW1wbGF0ZSgpIHtcbiAgICAgICAgdmFyIGNvb2tlZCA9ICcnLCBjaCwgc3RhcnQsIHJhd09mZnNldCwgdGVybWluYXRlZCwgaGVhZCwgdGFpbCwgcmVzdG9yZSwgdW5lc2NhcGVkO1xuXG4gICAgICAgIHRlcm1pbmF0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGFpbCA9IGZhbHNlO1xuICAgICAgICBzdGFydCA9IGluZGV4O1xuICAgICAgICBoZWFkID0gKHNvdXJjZVtpbmRleF0gPT09ICdgJyk7XG4gICAgICAgIHJhd09mZnNldCA9IDI7XG5cbiAgICAgICAgKytpbmRleDtcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnYCcpIHtcbiAgICAgICAgICAgICAgICByYXdPZmZzZXQgPSAxO1xuICAgICAgICAgICAgICAgIHRhaWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRlcm1pbmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gJyQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtpbmRleF0gPT09ICd7Jykge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jdXJseVN0YWNrLnB1c2goJyR7Jyk7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29va2VkICs9IGNoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gJ1xcXFwnKSB7XG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICAgICAgaWYgKCFpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gJ1xcbic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gJ1xccic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gJ1xcdCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3gnOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtpbmRleF0gPT09ICd7Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9IHNjYW5Vbmljb2RlQ29kZVBvaW50RXNjYXBlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmUgPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmVzY2FwZWQgPSBzY2FuSGV4RXNjYXBlKGNoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5lc2NhcGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSB1bmVzY2FwZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSByZXN0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gY2g7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXGInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXGYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXHYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJzAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWxsZWdhbDogXFwwMSBcXDAyIGFuZCBzbyBvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlRlbXBsYXRlT2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXDAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc09jdGFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWxsZWdhbDogXFwxIFxcMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuVGVtcGxhdGVPY3RhbExpdGVyYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gY2g7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09PSAnXFxyJyAmJiBzb3VyY2VbaW5kZXhdID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsaW5lU3RhcnQgPSBpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnXFxyJyAmJiBzb3VyY2VbaW5kZXhdID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsaW5lU3RhcnQgPSBpbmRleDtcbiAgICAgICAgICAgICAgICBjb29rZWQgKz0gJ1xcbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvb2tlZCArPSBjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGVybWluYXRlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaGVhZCkge1xuICAgICAgICAgICAgc3RhdGUuY3VybHlTdGFjay5wb3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlbi5UZW1wbGF0ZSxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgY29va2VkOiBjb29rZWQsXG4gICAgICAgICAgICAgICAgcmF3OiBzb3VyY2Uuc2xpY2Uoc3RhcnQgKyAxLCBpbmRleCAtIHJhd09mZnNldClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoZWFkOiBoZWFkLFxuICAgICAgICAgICAgdGFpbDogdGFpbCxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0ZXN0UmVnRXhwKHBhdHRlcm4sIGZsYWdzKSB7XG4gICAgICAgIHZhciB0bXAgPSBwYXR0ZXJuO1xuXG4gICAgICAgIGlmIChmbGFncy5pbmRleE9mKCd1JykgPj0gMCkge1xuICAgICAgICAgICAgLy8gUmVwbGFjZSBlYWNoIGFzdHJhbCBzeW1ib2wgYW5kIGV2ZXJ5IFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlXG4gICAgICAgICAgICAvLyB0aGF0IHBvc3NpYmx5IHJlcHJlc2VudHMgYW4gYXN0cmFsIHN5bWJvbCBvciBhIHBhaXJlZCBzdXJyb2dhdGVcbiAgICAgICAgICAgIC8vIHdpdGggYSBzaW5nbGUgQVNDSUkgc3ltYm9sIHRvIGF2b2lkIHRocm93aW5nIG9uIHJlZ3VsYXJcbiAgICAgICAgICAgIC8vIGV4cHJlc3Npb25zIHRoYXQgYXJlIG9ubHkgdmFsaWQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgYC91YFxuICAgICAgICAgICAgLy8gZmxhZy5cbiAgICAgICAgICAgIC8vIE5vdGU6IHJlcGxhY2luZyB3aXRoIHRoZSBBU0NJSSBzeW1ib2wgYHhgIG1pZ2h0IGNhdXNlIGZhbHNlXG4gICAgICAgICAgICAvLyBuZWdhdGl2ZXMgaW4gdW5saWtlbHkgc2NlbmFyaW9zLiBGb3IgZXhhbXBsZSwgYFtcXHV7NjF9LWJdYCBpcyBhXG4gICAgICAgICAgICAvLyBwZXJmZWN0bHkgdmFsaWQgcGF0dGVybiB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gYFthLWJdYCwgYnV0IGl0XG4gICAgICAgICAgICAvLyB3b3VsZCBiZSByZXBsYWNlZCBieSBgW3gtYl1gIHdoaWNoIHRocm93cyBhbiBlcnJvci5cbiAgICAgICAgICAgIHRtcCA9IHRtcFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcdVxceyhbMC05YS1mQS1GXSspXFx9L2csIGZ1bmN0aW9uICgkMCwgJDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KCQxLCAxNikgPD0gMHgxMEZGRkYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuSW52YWxpZFJlZ0V4cCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgL1xcXFx1KFthLWZBLUYwLTldezR9KXxbXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2csXG4gICAgICAgICAgICAgICAgICAgICd4J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaXJzdCwgZGV0ZWN0IGludmFsaWQgcmVndWxhciBleHByZXNzaW9ucy5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIFJlZ0V4cCh0bXApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihudWxsLCBNZXNzYWdlcy5JbnZhbGlkUmVnRXhwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJldHVybiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvYmplY3QgZm9yIHRoaXMgcGF0dGVybi1mbGFnIHBhaXIsIG9yXG4gICAgICAgIC8vIGBudWxsYCBpbiBjYXNlIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgZmxhZ3MgaXRcbiAgICAgICAgLy8gdXNlcy5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4sIGZsYWdzKTtcbiAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5SZWdFeHBCb2R5KCkge1xuICAgICAgICB2YXIgY2gsIHN0ciwgY2xhc3NNYXJrZXIsIHRlcm1pbmF0ZWQsIGJvZHk7XG5cbiAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICBhc3NlcnQoY2ggPT09ICcvJywgJ1JlZ3VsYXIgZXhwcmVzc2lvbiBsaXRlcmFsIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoJyk7XG4gICAgICAgIHN0ciA9IHNvdXJjZVtpbmRleCsrXTtcblxuICAgICAgICBjbGFzc01hcmtlciA9IGZhbHNlO1xuICAgICAgICB0ZXJtaW5hdGVkID0gZmFsc2U7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICBzdHIgKz0gY2g7XG4gICAgICAgICAgICBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgICAgIC8vIEVDTUEtMjYyIDcuOC41XG4gICAgICAgICAgICAgICAgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuVW50ZXJtaW5hdGVkUmVnRXhwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuVW50ZXJtaW5hdGVkUmVnRXhwKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xhc3NNYXJrZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICddJykge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc01hcmtlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnLycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGVybWluYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09ICdbJykge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc01hcmtlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0ZXJtaW5hdGVkKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihudWxsLCBNZXNzYWdlcy5VbnRlcm1pbmF0ZWRSZWdFeHApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhjbHVkZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzbGFzaC5cbiAgICAgICAgYm9keSA9IHN0ci5zdWJzdHIoMSwgc3RyLmxlbmd0aCAtIDIpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IGJvZHksXG4gICAgICAgICAgICBsaXRlcmFsOiBzdHJcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuUmVnRXhwRmxhZ3MoKSB7XG4gICAgICAgIHZhciBjaCwgc3RyLCBmbGFncywgcmVzdG9yZTtcblxuICAgICAgICBzdHIgPSAnJztcbiAgICAgICAgZmxhZ3MgPSAnJztcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgICAgICBpZiAoIWlzSWRlbnRpZmllclBhcnQoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xcXFwnICYmIGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ3UnKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHJlc3RvcmUgPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgY2ggPSBzY2FuSGV4RXNjYXBlKCd1Jyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgKz0gY2g7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHN0ciArPSAnXFxcXHUnOyByZXN0b3JlIDwgaW5kZXg7ICsrcmVzdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBzb3VyY2VbcmVzdG9yZV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHJlc3RvcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFncyArPSAndSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFx1JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXCc7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmbGFncyArPSBjaDtcbiAgICAgICAgICAgICAgICBzdHIgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IGZsYWdzLFxuICAgICAgICAgICAgbGl0ZXJhbDogc3RyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2NhblJlZ0V4cCgpIHtcbiAgICAgICAgc2Nhbm5pbmcgPSB0cnVlO1xuICAgICAgICB2YXIgc3RhcnQsIGJvZHksIGZsYWdzLCB2YWx1ZTtcblxuICAgICAgICBsb29rYWhlYWQgPSBudWxsO1xuICAgICAgICBza2lwQ29tbWVudCgpO1xuICAgICAgICBzdGFydCA9IGluZGV4O1xuXG4gICAgICAgIGJvZHkgPSBzY2FuUmVnRXhwQm9keSgpO1xuICAgICAgICBmbGFncyA9IHNjYW5SZWdFeHBGbGFncygpO1xuICAgICAgICB2YWx1ZSA9IHRlc3RSZWdFeHAoYm9keS52YWx1ZSwgZmxhZ3MudmFsdWUpO1xuICAgICAgICBzY2FubmluZyA9IGZhbHNlO1xuICAgICAgICBpZiAoZXh0cmEudG9rZW5pemUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogVG9rZW4uUmVndWxhckV4cHJlc3Npb24sXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHJlZ2V4OiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IGJvZHkudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzOiBmbGFncy52YWx1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaXRlcmFsOiBib2R5LmxpdGVyYWwgKyBmbGFncy5saXRlcmFsLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgcmVnZXg6IHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuOiBib2R5LnZhbHVlLFxuICAgICAgICAgICAgICAgIGZsYWdzOiBmbGFncy52YWx1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb2xsZWN0UmVnZXgoKSB7XG4gICAgICAgIHZhciBwb3MsIGxvYywgcmVnZXgsIHRva2VuO1xuXG4gICAgICAgIHNraXBDb21tZW50KCk7XG5cbiAgICAgICAgcG9zID0gaW5kZXg7XG4gICAgICAgIGxvYyA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVnZXggPSBzY2FuUmVnRXhwKCk7XG5cbiAgICAgICAgbG9jLmVuZCA9IHtcbiAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgIH07XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgaWYgKCFleHRyYS50b2tlbml6ZSkge1xuICAgICAgICAgICAgLy8gUG9wIHRoZSBwcmV2aW91cyB0b2tlbiwgd2hpY2ggaXMgbGlrZWx5ICcvJyBvciAnLz0nXG4gICAgICAgICAgICBpZiAoZXh0cmEudG9rZW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0b2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS50b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnJhbmdlWzBdID09PSBwb3MgJiYgdG9rZW4udHlwZSA9PT0gJ1B1bmN0dWF0b3InKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbi52YWx1ZSA9PT0gJy8nIHx8IHRva2VuLnZhbHVlID09PSAnLz0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYS50b2tlbnMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV4dHJhLnRva2Vucy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnUmVndWxhckV4cHJlc3Npb24nLFxuICAgICAgICAgICAgICAgIHZhbHVlOiByZWdleC5saXRlcmFsLFxuICAgICAgICAgICAgICAgIHJlZ2V4OiByZWdleC5yZWdleCxcbiAgICAgICAgICAgICAgICByYW5nZTogW3BvcywgaW5kZXhdLFxuICAgICAgICAgICAgICAgIGxvYzogbG9jXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWdleDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0lkZW50aWZpZXJOYW1lKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0b2tlbi50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyIHx8XG4gICAgICAgICAgICB0b2tlbi50eXBlID09PSBUb2tlbi5LZXl3b3JkIHx8XG4gICAgICAgICAgICB0b2tlbi50eXBlID09PSBUb2tlbi5Cb29sZWFuTGl0ZXJhbCB8fFxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW4uTnVsbExpdGVyYWw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWR2YW5jZVNsYXNoKCkge1xuICAgICAgICB2YXIgcHJldlRva2VuLFxuICAgICAgICAgICAgY2hlY2tUb2tlbjtcbiAgICAgICAgLy8gVXNpbmcgdGhlIGZvbGxvd2luZyBhbGdvcml0aG06XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3N3ZWV0LmpzL3dpa2kvZGVzaWduXG4gICAgICAgIHByZXZUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS50b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICghcHJldlRva2VuKSB7XG4gICAgICAgICAgICAvLyBOb3RoaW5nIGJlZm9yZSB0aGF0OiBpdCBjYW5ub3QgYmUgYSBkaXZpc2lvbi5cbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJldlRva2VuLnR5cGUgPT09ICdQdW5jdHVhdG9yJykge1xuICAgICAgICAgICAgaWYgKHByZXZUb2tlbi52YWx1ZSA9PT0gJ10nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJldlRva2VuLnZhbHVlID09PSAnKScpIHtcbiAgICAgICAgICAgICAgICBjaGVja1Rva2VuID0gZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5QYXJlblRva2VuIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrVG9rZW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVG9rZW4udHlwZSA9PT0gJ0tleXdvcmQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tUb2tlbi52YWx1ZSA9PT0gJ2lmJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVG9rZW4udmFsdWUgPT09ICd3aGlsZScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnZhbHVlID09PSAnZm9yJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVG9rZW4udmFsdWUgPT09ICd3aXRoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc2NhblB1bmN0dWF0b3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcmV2VG9rZW4udmFsdWUgPT09ICd9Jykge1xuICAgICAgICAgICAgICAgIC8vIERpdmlkaW5nIGEgZnVuY3Rpb24gYnkgYW55dGhpbmcgbWFrZXMgbGl0dGxlIHNlbnNlLFxuICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIGZvciB0aGF0LlxuICAgICAgICAgICAgICAgIGlmIChleHRyYS50b2tlbnNbZXh0cmEub3BlbkN1cmx5VG9rZW4gLSAzXSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gM10udHlwZSA9PT0gJ0tleXdvcmQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFub255bW91cyBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgY2hlY2tUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDRdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoZWNrVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChleHRyYS50b2tlbnNbZXh0cmEub3BlbkN1cmx5VG9rZW4gLSA0XSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gNF0udHlwZSA9PT0gJ0tleXdvcmQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5hbWVkIGZ1bmN0aW9uLlxuICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuID0gZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gNV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2hlY2tUb2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGNoZWNrVG9rZW4gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBpc1xuICAgICAgICAgICAgICAgIC8vIGEgZGVjbGFyYXRpb24gb3IgYW4gZXhwcmVzc2lvbi5cbiAgICAgICAgICAgICAgICBpZiAoRm5FeHByVG9rZW5zLmluZGV4T2YoY2hlY2tUb2tlbi52YWx1ZSkgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJdCBpcyBhbiBleHByZXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NhblB1bmN0dWF0b3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSXQgaXMgYSBkZWNsYXJhdGlvbi5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZUb2tlbi50eXBlID09PSAnS2V5d29yZCcgJiYgcHJldlRva2VuLnZhbHVlICE9PSAndGhpcycpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2NhblB1bmN0dWF0b3IoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZHZhbmNlKCkge1xuICAgICAgICB2YXIgY2gsIHRva2VuO1xuXG4gICAgICAgIGlmIChpbmRleCA+PSBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogVG9rZW4uRU9GLFxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQ6IGluZGV4LFxuICAgICAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KTtcblxuICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoY2gpKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHNjYW5JZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGlzU3RyaWN0TW9kZVJlc2VydmVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0b2tlbi50eXBlID0gVG9rZW4uS2V5d29yZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZlcnkgY29tbW9uOiAoIGFuZCApIGFuZCA7XG4gICAgICAgIGlmIChjaCA9PT0gMHgyOCB8fCBjaCA9PT0gMHgyOSB8fCBjaCA9PT0gMHgzQikge1xuICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdHJpbmcgbGl0ZXJhbCBzdGFydHMgd2l0aCBzaW5nbGUgcXVvdGUgKFUrMDAyNykgb3IgZG91YmxlIHF1b3RlIChVKzAwMjIpLlxuICAgICAgICBpZiAoY2ggPT09IDB4MjcgfHwgY2ggPT09IDB4MjIpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuU3RyaW5nTGl0ZXJhbCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRG90ICguKSBVKzAwMkUgY2FuIGFsc28gc3RhcnQgYSBmbG9hdGluZy1wb2ludCBudW1iZXIsIGhlbmNlIHRoZSBuZWVkXG4gICAgICAgIC8vIHRvIGNoZWNrIHRoZSBuZXh0IGNoYXJhY3Rlci5cbiAgICAgICAgaWYgKGNoID09PSAweDJFKSB7XG4gICAgICAgICAgICBpZiAoaXNEZWNpbWFsRGlnaXQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2Nhbk51bWVyaWNMaXRlcmFsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2NhblB1bmN0dWF0b3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0RlY2ltYWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuTnVtZXJpY0xpdGVyYWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNsYXNoICgvKSBVKzAwMkYgY2FuIGFsc28gc3RhcnQgYSByZWdleC5cbiAgICAgICAgaWYgKGV4dHJhLnRva2VuaXplICYmIGNoID09PSAweDJGKSB7XG4gICAgICAgICAgICByZXR1cm4gYWR2YW5jZVNsYXNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUZW1wbGF0ZSBsaXRlcmFscyBzdGFydCB3aXRoIGAgKFUrMDA2MCkgZm9yIHRlbXBsYXRlIGhlYWRcbiAgICAgICAgLy8gb3IgfSAoVSswMDdEKSBmb3IgdGVtcGxhdGUgbWlkZGxlIG9yIHRlbXBsYXRlIHRhaWwuXG4gICAgICAgIGlmIChjaCA9PT0gMHg2MCB8fCAoY2ggPT09IDB4N0QgJiYgc3RhdGUuY3VybHlTdGFja1tzdGF0ZS5jdXJseVN0YWNrLmxlbmd0aCAtIDFdID09PSAnJHsnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNjYW5UZW1wbGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29sbGVjdFRva2VuKCkge1xuICAgICAgICB2YXIgbG9jLCB0b2tlbiwgdmFsdWUsIGVudHJ5O1xuXG4gICAgICAgIGxvYyA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdG9rZW4gPSBhZHZhbmNlKCk7XG4gICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgIHZhbHVlID0gc291cmNlLnNsaWNlKHRva2VuLnN0YXJ0LCB0b2tlbi5lbmQpO1xuICAgICAgICAgICAgZW50cnkgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogVG9rZW5OYW1lW3Rva2VuLnR5cGVdLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICByYW5nZTogW3Rva2VuLnN0YXJ0LCB0b2tlbi5lbmRdLFxuICAgICAgICAgICAgICAgIGxvYzogbG9jXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRva2VuLnJlZ2V4KSB7XG4gICAgICAgICAgICAgICAgZW50cnkucmVnZXggPSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IHRva2VuLnJlZ2V4LnBhdHRlcm4sXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzOiB0b2tlbi5yZWdleC5mbGFnc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHRyYS50b2tlbnMucHVzaChlbnRyeSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHNjYW5uaW5nID0gdHJ1ZTtcblxuICAgICAgICBsYXN0SW5kZXggPSBpbmRleDtcbiAgICAgICAgbGFzdExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgICAgICBsYXN0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuXG4gICAgICAgIHNraXBDb21tZW50KCk7XG5cbiAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG5cbiAgICAgICAgc3RhcnRJbmRleCA9IGluZGV4O1xuICAgICAgICBzdGFydExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgICAgICBzdGFydExpbmVTdGFydCA9IGxpbmVTdGFydDtcblxuICAgICAgICBsb29rYWhlYWQgPSAodHlwZW9mIGV4dHJhLnRva2VucyAhPT0gJ3VuZGVmaW5lZCcpID8gY29sbGVjdFRva2VuKCkgOiBhZHZhbmNlKCk7XG4gICAgICAgIHNjYW5uaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwZWVrKCkge1xuICAgICAgICBzY2FubmluZyA9IHRydWU7XG5cbiAgICAgICAgc2tpcENvbW1lbnQoKTtcblxuICAgICAgICBsYXN0SW5kZXggPSBpbmRleDtcbiAgICAgICAgbGFzdExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgICAgICBsYXN0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuXG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG5cbiAgICAgICAgbG9va2FoZWFkID0gKHR5cGVvZiBleHRyYS50b2tlbnMgIT09ICd1bmRlZmluZWQnKSA/IGNvbGxlY3RUb2tlbigpIDogYWR2YW5jZSgpO1xuICAgICAgICBzY2FubmluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIFBvc2l0aW9uKCkge1xuICAgICAgICB0aGlzLmxpbmUgPSBzdGFydExpbmVOdW1iZXI7XG4gICAgICAgIHRoaXMuY29sdW1uID0gc3RhcnRJbmRleCAtIHN0YXJ0TGluZVN0YXJ0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIFNvdXJjZUxvY2F0aW9uKCkge1xuICAgICAgICB0aGlzLnN0YXJ0ID0gbmV3IFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZW5kID0gbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBXcmFwcGluZ1NvdXJjZUxvY2F0aW9uKHN0YXJ0VG9rZW4pIHtcbiAgICAgICAgdGhpcy5zdGFydCA9IHtcbiAgICAgICAgICAgIGxpbmU6IHN0YXJ0VG9rZW4ubGluZU51bWJlcixcbiAgICAgICAgICAgIGNvbHVtbjogc3RhcnRUb2tlbi5zdGFydCAtIHN0YXJ0VG9rZW4ubGluZVN0YXJ0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZW5kID0gbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBOb2RlKCkge1xuICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucmFuZ2UgPSBbc3RhcnRJbmRleCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgdGhpcy5sb2MgPSBuZXcgU291cmNlTG9jYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIFdyYXBwaW5nTm9kZShzdGFydFRva2VuKSB7XG4gICAgICAgIGlmIChleHRyYS5yYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5yYW5nZSA9IFtzdGFydFRva2VuLnN0YXJ0LCAwXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXh0cmEubG9jKSB7XG4gICAgICAgICAgICB0aGlzLmxvYyA9IG5ldyBXcmFwcGluZ1NvdXJjZUxvY2F0aW9uKHN0YXJ0VG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgV3JhcHBpbmdOb2RlLnByb3RvdHlwZSA9IE5vZGUucHJvdG90eXBlID0ge1xuXG4gICAgICAgIHByb2Nlc3NDb21tZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgbGFzdENoaWxkLFxuICAgICAgICAgICAgICAgIGxlYWRpbmdDb21tZW50cyxcbiAgICAgICAgICAgICAgICB0cmFpbGluZ0NvbW1lbnRzLFxuICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0ID0gZXh0cmEuYm90dG9tUmlnaHRTdGFjayxcbiAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgIGNvbW1lbnQsXG4gICAgICAgICAgICAgICAgbGFzdCA9IGJvdHRvbVJpZ2h0W2JvdHRvbVJpZ2h0Lmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSBTeW50YXguUHJvZ3JhbSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJvZHkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXh0cmEudHJhaWxpbmdDb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdHJhaWxpbmdDb21tZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IGV4dHJhLnRyYWlsaW5nQ29tbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9IGV4dHJhLnRyYWlsaW5nQ29tbWVudHNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21tZW50LnJhbmdlWzBdID49IHRoaXMucmFuZ2VbMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nQ29tbWVudHMudW5zaGlmdChjb21tZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLnRyYWlsaW5nQ29tbWVudHMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4dHJhLnRyYWlsaW5nQ29tbWVudHMgPSBbXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGxhc3QgJiYgbGFzdC50cmFpbGluZ0NvbW1lbnRzICYmIGxhc3QudHJhaWxpbmdDb21tZW50c1swXS5yYW5nZVswXSA+PSB0aGlzLnJhbmdlWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nQ29tbWVudHMgPSBsYXN0LnRyYWlsaW5nQ29tbWVudHM7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBsYXN0LnRyYWlsaW5nQ29tbWVudHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFYXRpbmcgdGhlIHN0YWNrLlxuICAgICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgICAgICB3aGlsZSAobGFzdCAmJiBsYXN0LnJhbmdlWzBdID49IHRoaXMucmFuZ2VbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdENoaWxkID0gbGFzdDtcbiAgICAgICAgICAgICAgICAgICAgbGFzdCA9IGJvdHRvbVJpZ2h0LnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxhc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgIGlmIChsYXN0Q2hpbGQubGVhZGluZ0NvbW1lbnRzICYmIGxhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHNbbGFzdENoaWxkLmxlYWRpbmdDb21tZW50cy5sZW5ndGggLSAxXS5yYW5nZVsxXSA8PSB0aGlzLnJhbmdlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGVhZGluZ0NvbW1lbnRzID0gbGFzdENoaWxkLmxlYWRpbmdDb21tZW50cztcbiAgICAgICAgICAgICAgICAgICAgbGFzdENoaWxkLmxlYWRpbmdDb21tZW50cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV4dHJhLmxlYWRpbmdDb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbGVhZGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChpID0gZXh0cmEubGVhZGluZ0NvbW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBleHRyYS5sZWFkaW5nQ29tbWVudHNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21tZW50LnJhbmdlWzFdIDw9IHRoaXMucmFuZ2VbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRpbmdDb21tZW50cy51bnNoaWZ0KGNvbW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEubGVhZGluZ0NvbW1lbnRzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBpZiAobGVhZGluZ0NvbW1lbnRzICYmIGxlYWRpbmdDb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sZWFkaW5nQ29tbWVudHMgPSBsZWFkaW5nQ29tbWVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHJhaWxpbmdDb21tZW50cyAmJiB0cmFpbGluZ0NvbW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYWlsaW5nQ29tbWVudHMgPSB0cmFpbGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBib3R0b21SaWdodC5wdXNoKHRoaXMpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGV4dHJhLnJhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5nZVsxXSA9IGxhc3RJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChleHRyYS5sb2MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmU6IGxhc3RMaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGxhc3RJbmRleCAtIGxhc3RMaW5lU3RhcnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChleHRyYS5zb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Muc291cmNlID0gZXh0cmEuc291cmNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGV4dHJhLmF0dGFjaENvbW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NDb21tZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQXJyYXlFeHByZXNzaW9uOiBmdW5jdGlvbiAoZWxlbWVudHMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5BcnJheUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQXJyYXlQYXR0ZXJuOiBmdW5jdGlvbiAoZWxlbWVudHMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5BcnJheVBhdHRlcm47XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGZ1bmN0aW9uIChwYXJhbXMsIGRlZmF1bHRzLCBib2R5LCBleHByZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXJyb3dGdW5jdGlvbkV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmlkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0cyA9IGRlZmF1bHRzO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdG9yID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFzc2lnbm1lbnRFeHByZXNzaW9uOiBmdW5jdGlvbiAob3BlcmF0b3IsIGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXNzaWdubWVudEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gb3BlcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgICAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuOiBmdW5jdGlvbiAobGVmdCwgcmlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjtcbiAgICAgICAgICAgIHRoaXMubGVmdCA9IGxlZnQ7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0ID0gcmlnaHQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQmluYXJ5RXhwcmVzc2lvbjogZnVuY3Rpb24gKG9wZXJhdG9yLCBsZWZ0LCByaWdodCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gKG9wZXJhdG9yID09PSAnfHwnIHx8IG9wZXJhdG9yID09PSAnJiYnKSA/IFN5bnRheC5Mb2dpY2FsRXhwcmVzc2lvbiA6IFN5bnRheC5CaW5hcnlFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5sZWZ0ID0gbGVmdDtcbiAgICAgICAgICAgIHRoaXMucmlnaHQgPSByaWdodDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hCbG9ja1N0YXRlbWVudDogZnVuY3Rpb24gKGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5CbG9ja1N0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQnJlYWtTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChsYWJlbCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkJyZWFrU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbiAoY2FsbGVlLCBhcmdzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQ2FsbEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmNhbGxlZSA9IGNhbGxlZTtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnRzID0gYXJncztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDYXRjaENsYXVzZTogZnVuY3Rpb24gKHBhcmFtLCBib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQ2F0Y2hDbGF1c2U7XG4gICAgICAgICAgICB0aGlzLnBhcmFtID0gcGFyYW07XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaENsYXNzQm9keTogZnVuY3Rpb24gKGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5DbGFzc0JvZHk7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaENsYXNzRGVjbGFyYXRpb246IGZ1bmN0aW9uIChpZCwgc3VwZXJDbGFzcywgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNsYXNzRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ2xhc3MgPSBzdXBlckNsYXNzO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDbGFzc0V4cHJlc3Npb246IGZ1bmN0aW9uIChpZCwgc3VwZXJDbGFzcywgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNsYXNzRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDbGFzcyA9IHN1cGVyQ2xhc3M7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaENvbmRpdGlvbmFsRXhwcmVzc2lvbjogZnVuY3Rpb24gKHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNvbmRpdGlvbmFsRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMudGVzdCA9IHRlc3Q7XG4gICAgICAgICAgICB0aGlzLmNvbnNlcXVlbnQgPSBjb25zZXF1ZW50O1xuICAgICAgICAgICAgdGhpcy5hbHRlcm5hdGUgPSBhbHRlcm5hdGU7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQ29udGludWVTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChsYWJlbCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNvbnRpbnVlU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaERlYnVnZ2VyU3RhdGVtZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRGVidWdnZXJTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRG9XaGlsZVN0YXRlbWVudDogZnVuY3Rpb24gKGJvZHksIHRlc3QpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Eb1doaWxlU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMudGVzdCA9IHRlc3Q7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRW1wdHlTdGF0ZW1lbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FbXB0eVN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hFeHByZXNzaW9uU3RhdGVtZW50OiBmdW5jdGlvbiAoZXhwcmVzc2lvbikge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkV4cHJlc3Npb25TdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEZvclN0YXRlbWVudDogZnVuY3Rpb24gKGluaXQsIHRlc3QsIHVwZGF0ZSwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkZvclN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuaW5pdCA9IGluaXQ7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy51cGRhdGUgPSB1cGRhdGU7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEZvckluU3RhdGVtZW50OiBmdW5jdGlvbiAobGVmdCwgcmlnaHQsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Gb3JJblN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMubGVmdCA9IGxlZnQ7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0ID0gcmlnaHQ7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5lYWNoID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRnVuY3Rpb25EZWNsYXJhdGlvbjogZnVuY3Rpb24gKGlkLCBwYXJhbXMsIGRlZmF1bHRzLCBib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRnVuY3Rpb25EZWNsYXJhdGlvbjtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0cyA9IGRlZmF1bHRzO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdG9yID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb24gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hGdW5jdGlvbkV4cHJlc3Npb246IGZ1bmN0aW9uIChpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkZ1bmN0aW9uRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0cyA9IGRlZmF1bHRzO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdG9yID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb24gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJZGVudGlmaWVyOiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LklkZW50aWZpZXI7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaElmU3RhdGVtZW50OiBmdW5jdGlvbiAodGVzdCwgY29uc2VxdWVudCwgYWx0ZXJuYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguSWZTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5jb25zZXF1ZW50ID0gY29uc2VxdWVudDtcbiAgICAgICAgICAgIHRoaXMuYWx0ZXJuYXRlID0gYWx0ZXJuYXRlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaExhYmVsZWRTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChsYWJlbCwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkxhYmVsZWRTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaExpdGVyYWw6IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkxpdGVyYWw7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdG9rZW4udmFsdWU7XG4gICAgICAgICAgICB0aGlzLnJhdyA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5yZWdleCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVnZXggPSB0b2tlbi5yZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hNZW1iZXJFeHByZXNzaW9uOiBmdW5jdGlvbiAoYWNjZXNzb3IsIG9iamVjdCwgcHJvcGVydHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5NZW1iZXJFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5jb21wdXRlZCA9IGFjY2Vzc29yID09PSAnWyc7XG4gICAgICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hOZXdFeHByZXNzaW9uOiBmdW5jdGlvbiAoY2FsbGVlLCBhcmdzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguTmV3RXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuY2FsbGVlID0gY2FsbGVlO1xuICAgICAgICAgICAgdGhpcy5hcmd1bWVudHMgPSBhcmdzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaE9iamVjdEV4cHJlc3Npb246IGZ1bmN0aW9uIChwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguT2JqZWN0RXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoT2JqZWN0UGF0dGVybjogZnVuY3Rpb24gKHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5PYmplY3RQYXR0ZXJuO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hQb3N0Zml4RXhwcmVzc2lvbjogZnVuY3Rpb24gKG9wZXJhdG9yLCBhcmd1bWVudCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlVwZGF0ZUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gb3BlcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnByZWZpeCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFByb2dyYW06IGZ1bmN0aW9uIChib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguUHJvZ3JhbTtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICBpZiAoc291cmNlVHlwZSA9PT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgICAvLyB2ZXJ5IHJlc3RyaWN0aXZlIGZvciBub3dcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZVR5cGUgPSBzb3VyY2VUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFByb3BlcnR5OiBmdW5jdGlvbiAoa2luZCwga2V5LCBjb21wdXRlZCwgdmFsdWUsIG1ldGhvZCwgc2hvcnRoYW5kKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguUHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmtleSA9IGtleTtcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWQgPSBjb21wdXRlZDtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMua2luZCA9IGtpbmQ7XG4gICAgICAgICAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgICAgIHRoaXMuc2hvcnRoYW5kID0gc2hvcnRoYW5kO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFJlc3RFbGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5SZXN0RWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hSZXR1cm5TdGF0ZW1lbnQ6IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlJldHVyblN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTZXF1ZW5jZUV4cHJlc3Npb246IGZ1bmN0aW9uIChleHByZXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlNlcXVlbmNlRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBleHByZXNzaW9ucztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTcHJlYWRFbGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5TcHJlYWRFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5hcmd1bWVudCA9IGFyZ3VtZW50O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFN3aXRjaENhc2U6IGZ1bmN0aW9uICh0ZXN0LCBjb25zZXF1ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguU3dpdGNoQ2FzZTtcbiAgICAgICAgICAgIHRoaXMudGVzdCA9IHRlc3Q7XG4gICAgICAgICAgICB0aGlzLmNvbnNlcXVlbnQgPSBjb25zZXF1ZW50O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFN1cGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguU3VwZXI7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoU3dpdGNoU3RhdGVtZW50OiBmdW5jdGlvbiAoZGlzY3JpbWluYW50LCBjYXNlcykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlN3aXRjaFN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuZGlzY3JpbWluYW50ID0gZGlzY3JpbWluYW50O1xuICAgICAgICAgICAgdGhpcy5jYXNlcyA9IGNhc2VzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbjogZnVuY3Rpb24gKHRhZywgcXVhc2kpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLnRhZyA9IHRhZztcbiAgICAgICAgICAgIHRoaXMucXVhc2kgPSBxdWFzaTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUZW1wbGF0ZUVsZW1lbnQ6IGZ1bmN0aW9uICh2YWx1ZSwgdGFpbCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlRlbXBsYXRlRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudGFpbCA9IHRhaWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVGVtcGxhdGVMaXRlcmFsOiBmdW5jdGlvbiAocXVhc2lzLCBleHByZXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlRlbXBsYXRlTGl0ZXJhbDtcbiAgICAgICAgICAgIHRoaXMucXVhc2lzID0gcXVhc2lzO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9ucyA9IGV4cHJlc3Npb25zO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRoaXNFeHByZXNzaW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVGhpc0V4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVGhyb3dTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlRocm93U3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5hcmd1bWVudCA9IGFyZ3VtZW50O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRyeVN0YXRlbWVudDogZnVuY3Rpb24gKGJsb2NrLCBoYW5kbGVyLCBmaW5hbGl6ZXIpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UcnlTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmJsb2NrID0gYmxvY2s7XG4gICAgICAgICAgICB0aGlzLmd1YXJkZWRIYW5kbGVycyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVycyA9IGhhbmRsZXIgPyBbIGhhbmRsZXIgXSA6IFtdO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgICAgIHRoaXMuZmluYWxpemVyID0gZmluYWxpemVyO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFVuYXJ5RXhwcmVzc2lvbjogZnVuY3Rpb24gKG9wZXJhdG9yLCBhcmd1bWVudCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gKG9wZXJhdG9yID09PSAnKysnIHx8IG9wZXJhdG9yID09PSAnLS0nKSA/IFN5bnRheC5VcGRhdGVFeHByZXNzaW9uIDogU3ludGF4LlVuYXJ5RXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMucHJlZml4ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hWYXJpYWJsZURlY2xhcmF0aW9uOiBmdW5jdGlvbiAoZGVjbGFyYXRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVmFyaWFibGVEZWNsYXJhdGlvbjtcbiAgICAgICAgICAgIHRoaXMuZGVjbGFyYXRpb25zID0gZGVjbGFyYXRpb25zO1xuICAgICAgICAgICAgdGhpcy5raW5kID0gJ3Zhcic7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoTGV4aWNhbERlY2xhcmF0aW9uOiBmdW5jdGlvbiAoZGVjbGFyYXRpb25zLCBraW5kKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVmFyaWFibGVEZWNsYXJhdGlvbjtcbiAgICAgICAgICAgIHRoaXMuZGVjbGFyYXRpb25zID0gZGVjbGFyYXRpb25zO1xuICAgICAgICAgICAgdGhpcy5raW5kID0ga2luZDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hWYXJpYWJsZURlY2xhcmF0b3I6IGZ1bmN0aW9uIChpZCwgaW5pdCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlZhcmlhYmxlRGVjbGFyYXRvcjtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgICAgIHRoaXMuaW5pdCA9IGluaXQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoV2hpbGVTdGF0ZW1lbnQ6IGZ1bmN0aW9uICh0ZXN0LCBib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguV2hpbGVTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hXaXRoU3RhdGVtZW50OiBmdW5jdGlvbiAob2JqZWN0LCBib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguV2l0aFN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hFeHBvcnRTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCwgZXhwb3J0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHBvcnRTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmV4cG9ydGVkID0gZXhwb3J0ZWQgfHwgbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSW1wb3J0RGVmYXVsdFNwZWNpZmllcjogZnVuY3Rpb24gKGxvY2FsKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguSW1wb3J0RGVmYXVsdFNwZWNpZmllcjtcbiAgICAgICAgICAgIHRoaXMubG9jYWwgPSBsb2NhbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkltcG9ydE5hbWVzcGFjZVNwZWNpZmllcjtcbiAgICAgICAgICAgIHRoaXMubG9jYWwgPSBsb2NhbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hFeHBvcnROYW1lZERlY2xhcmF0aW9uOiBmdW5jdGlvbiAoZGVjbGFyYXRpb24sIHNwZWNpZmllcnMsIHNyYykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkV4cG9ydE5hbWVkRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9uID0gZGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLnNwZWNpZmllcnMgPSBzcGVjaWZpZXJzO1xuICAgICAgICAgICAgdGhpcy5zb3VyY2UgPSBzcmM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uOiBmdW5jdGlvbiAoZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHBvcnREZWZhdWx0RGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9uID0gZGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0QWxsRGVjbGFyYXRpb246IGZ1bmN0aW9uIChzcmMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHBvcnRBbGxEZWNsYXJhdGlvbjtcbiAgICAgICAgICAgIHRoaXMuc291cmNlID0gc3JjO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEltcG9ydFNwZWNpZmllcjogZnVuY3Rpb24gKGxvY2FsLCBpbXBvcnRlZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkltcG9ydFNwZWNpZmllcjtcbiAgICAgICAgICAgIHRoaXMubG9jYWwgPSBsb2NhbCB8fCBpbXBvcnRlZDtcbiAgICAgICAgICAgIHRoaXMuaW1wb3J0ZWQgPSBpbXBvcnRlZDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gKHNwZWNpZmllcnMsIHNyYykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkltcG9ydERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5zcGVjaWZpZXJzID0gc3BlY2lmaWVycztcbiAgICAgICAgICAgIHRoaXMuc291cmNlID0gc3JjO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfTtcblxuXG4gICAgZnVuY3Rpb24gcmVjb3JkRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgdmFyIGUsIGV4aXN0aW5nO1xuXG4gICAgICAgIGZvciAoZSA9IDA7IGUgPCBleHRyYS5lcnJvcnMubGVuZ3RoOyBlKyspIHtcbiAgICAgICAgICAgIGV4aXN0aW5nID0gZXh0cmEuZXJyb3JzW2VdO1xuICAgICAgICAgICAgLy8gUHJldmVudCBkdXBsaWNhdGVkIGVycm9yLlxuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGlmIChleGlzdGluZy5pbmRleCA9PT0gZXJyb3IuaW5kZXggJiYgZXhpc3RpbmcubWVzc2FnZSA9PT0gZXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4dHJhLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVFcnJvcihsaW5lLCBwb3MsIGRlc2NyaXB0aW9uKSB7XG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcignTGluZSAnICsgbGluZSArICc6ICcgKyBkZXNjcmlwdGlvbik7XG4gICAgICAgIGVycm9yLmluZGV4ID0gcG9zO1xuICAgICAgICBlcnJvci5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgICAgZXJyb3IuY29sdW1uID0gcG9zIC0gKHNjYW5uaW5nID8gbGluZVN0YXJ0IDogbGFzdExpbmVTdGFydCkgKyAxO1xuICAgICAgICBlcnJvci5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLy8gVGhyb3cgYW4gZXhjZXB0aW9uXG5cbiAgICBmdW5jdGlvbiB0aHJvd0Vycm9yKG1lc3NhZ2VGb3JtYXQpIHtcbiAgICAgICAgdmFyIGFyZ3MsIG1zZztcblxuICAgICAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgbXNnID0gbWVzc2FnZUZvcm1hdC5yZXBsYWNlKC8lKFxcZCkvZyxcbiAgICAgICAgICAgIGZ1bmN0aW9uICh3aG9sZSwgaWR4KSB7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KGlkeCA8IGFyZ3MubGVuZ3RoLCAnTWVzc2FnZSByZWZlcmVuY2UgbXVzdCBiZSBpbiByYW5nZScpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhcmdzW2lkeF07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhyb3cgY3JlYXRlRXJyb3IobGFzdExpbmVOdW1iZXIsIGxhc3RJbmRleCwgbXNnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b2xlcmF0ZUVycm9yKG1lc3NhZ2VGb3JtYXQpIHtcbiAgICAgICAgdmFyIGFyZ3MsIG1zZywgZXJyb3I7XG5cbiAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIG1zZyA9IG1lc3NhZ2VGb3JtYXQucmVwbGFjZSgvJShcXGQpL2csXG4gICAgICAgICAgICBmdW5jdGlvbiAod2hvbGUsIGlkeCkge1xuICAgICAgICAgICAgICAgIGFzc2VydChpZHggPCBhcmdzLmxlbmd0aCwgJ01lc3NhZ2UgcmVmZXJlbmNlIG11c3QgYmUgaW4gcmFuZ2UnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJnc1tpZHhdO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGVycm9yID0gY3JlYXRlRXJyb3IobGluZU51bWJlciwgbGFzdEluZGV4LCBtc2cpO1xuICAgICAgICBpZiAoZXh0cmEuZXJyb3JzKSB7XG4gICAgICAgICAgICByZWNvcmRFcnJvcihlcnJvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRocm93IGFuIGV4Y2VwdGlvbiBiZWNhdXNlIG9mIHRoZSB0b2tlbi5cblxuICAgIGZ1bmN0aW9uIHVuZXhwZWN0ZWRUb2tlbkVycm9yKHRva2VuLCBtZXNzYWdlKSB7XG4gICAgICAgIHZhciB2YWx1ZSwgbXNnID0gbWVzc2FnZSB8fCBNZXNzYWdlcy5VbmV4cGVjdGVkVG9rZW47XG5cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBtc2cgPSAodG9rZW4udHlwZSA9PT0gVG9rZW4uRU9GKSA/IE1lc3NhZ2VzLlVuZXhwZWN0ZWRFT1MgOlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikgPyBNZXNzYWdlcy5VbmV4cGVjdGVkSWRlbnRpZmllciA6XG4gICAgICAgICAgICAgICAgICAgICh0b2tlbi50eXBlID09PSBUb2tlbi5OdW1lcmljTGl0ZXJhbCkgPyBNZXNzYWdlcy5VbmV4cGVjdGVkTnVtYmVyIDpcbiAgICAgICAgICAgICAgICAgICAgKHRva2VuLnR5cGUgPT09IFRva2VuLlN0cmluZ0xpdGVyYWwpID8gTWVzc2FnZXMuVW5leHBlY3RlZFN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICh0b2tlbi50eXBlID09PSBUb2tlbi5UZW1wbGF0ZSkgPyBNZXNzYWdlcy5VbmV4cGVjdGVkVGVtcGxhdGUgOlxuICAgICAgICAgICAgICAgICAgICBNZXNzYWdlcy5VbmV4cGVjdGVkVG9rZW47XG5cbiAgICAgICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uS2V5d29yZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGdXR1cmVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBNZXNzYWdlcy5VbmV4cGVjdGVkUmVzZXJ2ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyaWN0ICYmIGlzU3RyaWN0TW9kZVJlc2VydmVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFsdWUgPSAodG9rZW4udHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUpID8gdG9rZW4udmFsdWUucmF3IDogdG9rZW4udmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICdJTExFR0FMJztcbiAgICAgICAgfVxuXG4gICAgICAgIG1zZyA9IG1zZy5yZXBsYWNlKCclMCcsIHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gKHRva2VuICYmIHR5cGVvZiB0b2tlbi5saW5lTnVtYmVyID09PSAnbnVtYmVyJykgP1xuICAgICAgICAgICAgY3JlYXRlRXJyb3IodG9rZW4ubGluZU51bWJlciwgdG9rZW4uc3RhcnQsIG1zZykgOlxuICAgICAgICAgICAgY3JlYXRlRXJyb3Ioc2Nhbm5pbmcgPyBsaW5lTnVtYmVyIDogbGFzdExpbmVOdW1iZXIsIHNjYW5uaW5nID8gaW5kZXggOiBsYXN0SW5kZXgsIG1zZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4sIG1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgdW5leHBlY3RlZFRva2VuRXJyb3IodG9rZW4sIG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBtZXNzYWdlKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHVuZXhwZWN0ZWRUb2tlbkVycm9yKHRva2VuLCBtZXNzYWdlKTtcbiAgICAgICAgaWYgKGV4dHJhLmVycm9ycykge1xuICAgICAgICAgICAgcmVjb3JkRXJyb3IoZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBlY3QgdGhlIG5leHQgdG9rZW4gdG8gbWF0Y2ggdGhlIHNwZWNpZmllZCBwdW5jdHVhdG9yLlxuICAgIC8vIElmIG5vdCwgYW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLlxuXG4gICAgZnVuY3Rpb24gZXhwZWN0KHZhbHVlKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IGxleCgpO1xuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uUHVuY3R1YXRvciB8fCB0b2tlbi52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBuYW1lIGV4cGVjdENvbW1hU2VwYXJhdG9yXG4gICAgICogQGRlc2NyaXB0aW9uIFF1aWV0bHkgZXhwZWN0IGEgY29tbWEgd2hlbiBpbiB0b2xlcmFudCBtb2RlLCBvdGhlcndpc2UgZGVsZWdhdGVzXG4gICAgICogdG8gPGNvZGU+ZXhwZWN0KHZhbHVlKTwvY29kZT5cbiAgICAgKiBAc2luY2UgMi4wXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXhwZWN0Q29tbWFTZXBhcmF0b3IoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcblxuICAgICAgICBpZiAoZXh0cmEuZXJyb3JzKSB7XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbi5QdW5jdHVhdG9yICYmIHRva2VuLnZhbHVlID09PSAnLCcpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiB0b2tlbi52YWx1ZSA9PT0gJzsnKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cGVjdCgnLCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwZWN0IHRoZSBuZXh0IHRva2VuIHRvIG1hdGNoIHRoZSBzcGVjaWZpZWQga2V5d29yZC5cbiAgICAvLyBJZiBub3QsIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cblxuICAgIGZ1bmN0aW9uIGV4cGVjdEtleXdvcmQoa2V5d29yZCkge1xuICAgICAgICB2YXIgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IFRva2VuLktleXdvcmQgfHwgdG9rZW4udmFsdWUgIT09IGtleXdvcmQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBwdW5jdHVhdG9yLlxuXG4gICAgZnVuY3Rpb24gbWF0Y2godmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5QdW5jdHVhdG9yICYmIGxvb2thaGVhZC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRydWUgaWYgdGhlIG5leHQgdG9rZW4gbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGtleXdvcmRcblxuICAgIGZ1bmN0aW9uIG1hdGNoS2V5d29yZChrZXl3b3JkKSB7XG4gICAgICAgIHJldHVybiBsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uS2V5d29yZCAmJiBsb29rYWhlYWQudmFsdWUgPT09IGtleXdvcmQ7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRydWUgaWYgdGhlIG5leHQgdG9rZW4gbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGNvbnRleHR1YWwga2V5d29yZFxuICAgIC8vICh3aGVyZSBhbiBpZGVudGlmaWVyIGlzIHNvbWV0aW1lcyBhIGtleXdvcmQgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0KVxuXG4gICAgZnVuY3Rpb24gbWF0Y2hDb250ZXh0dWFsS2V5d29yZChrZXl3b3JkKSB7XG4gICAgICAgIHJldHVybiBsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllciAmJiBsb29rYWhlYWQudmFsdWUgPT09IGtleXdvcmQ7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRydWUgaWYgdGhlIG5leHQgdG9rZW4gaXMgYW4gYXNzaWdubWVudCBvcGVyYXRvclxuXG4gICAgZnVuY3Rpb24gbWF0Y2hBc3NpZ24oKSB7XG4gICAgICAgIHZhciBvcDtcblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgIT09IFRva2VuLlB1bmN0dWF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBvcCA9IGxvb2thaGVhZC52YWx1ZTtcbiAgICAgICAgcmV0dXJuIG9wID09PSAnPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnKj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJy89JyB8fFxuICAgICAgICAgICAgb3AgPT09ICclPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnKz0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJy09JyB8fFxuICAgICAgICAgICAgb3AgPT09ICc8PD0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJz4+PScgfHxcbiAgICAgICAgICAgIG9wID09PSAnPj4+PScgfHxcbiAgICAgICAgICAgIG9wID09PSAnJj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJ149JyB8fFxuICAgICAgICAgICAgb3AgPT09ICd8PSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29uc3VtZVNlbWljb2xvbigpIHtcbiAgICAgICAgLy8gQ2F0Y2ggdGhlIHZlcnkgY29tbW9uIGNhc2UgZmlyc3Q6IGltbWVkaWF0ZWx5IGEgc2VtaWNvbG9uIChVKzAwM0IpLlxuICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQoc3RhcnRJbmRleCkgPT09IDB4M0IgfHwgbWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZJWE1FKGlrYXJpZW5hdG9yKTogdGhpcyBpcyBzZWVtaW5nbHkgYW4gaXNzdWUgaW4gdGhlIHByZXZpb3VzIGxvY2F0aW9uIGluZm8gY29udmVudGlvbi5cbiAgICAgICAgbGFzdEluZGV4ID0gc3RhcnRJbmRleDtcbiAgICAgICAgbGFzdExpbmVOdW1iZXIgPSBzdGFydExpbmVOdW1iZXI7XG4gICAgICAgIGxhc3RMaW5lU3RhcnQgPSBzdGFydExpbmVTdGFydDtcblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgIT09IFRva2VuLkVPRiAmJiAhbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvdmVyIGdyYW1tYXIgc3VwcG9ydC5cbiAgICAvL1xuICAgIC8vIFdoZW4gYW4gYXNzaWdubWVudCBleHByZXNzaW9uIHBvc2l0aW9uIHN0YXJ0cyB3aXRoIGFuIGxlZnQgcGFyZW50aGVzaXMsIHRoZSBkZXRlcm1pbmF0aW9uIG9mIHRoZSB0eXBlXG4gICAgLy8gb2YgdGhlIHN5bnRheCBpcyB0byBiZSBkZWZlcnJlZCBhcmJpdHJhcmlseSBsb25nIHVudGlsIHRoZSBlbmQgb2YgdGhlIHBhcmVudGhlc2VzIHBhaXIgKHBsdXMgYSBsb29rYWhlYWQpXG4gICAgLy8gb3IgdGhlIGZpcnN0IGNvbW1hLiBUaGlzIHNpdHVhdGlvbiBhbHNvIGRlZmVycyB0aGUgZGV0ZXJtaW5hdGlvbiBvZiBhbGwgdGhlIGV4cHJlc3Npb25zIG5lc3RlZCBpbiB0aGUgcGFpci5cbiAgICAvL1xuICAgIC8vIFRoZXJlIGFyZSB0aHJlZSBwcm9kdWN0aW9ucyB0aGF0IGNhbiBiZSBwYXJzZWQgaW4gYSBwYXJlbnRoZXNlcyBwYWlyIHRoYXQgbmVlZHMgdG8gYmUgZGV0ZXJtaW5lZFxuICAgIC8vIGFmdGVyIHRoZSBvdXRlcm1vc3QgcGFpciBpcyBjbG9zZWQuIFRoZXkgYXJlOlxuICAgIC8vXG4gICAgLy8gICAxLiBBc3NpZ25tZW50RXhwcmVzc2lvblxuICAgIC8vICAgMi4gQmluZGluZ0VsZW1lbnRzXG4gICAgLy8gICAzLiBBc3NpZ25tZW50VGFyZ2V0c1xuICAgIC8vXG4gICAgLy8gSW4gb3JkZXIgdG8gYXZvaWQgZXhwb25lbnRpYWwgYmFja3RyYWNraW5nLCB3ZSB1c2UgdHdvIGZsYWdzIHRvIGRlbm90ZSBpZiB0aGUgcHJvZHVjdGlvbiBjYW4gYmVcbiAgICAvLyBiaW5kaW5nIGVsZW1lbnQgb3IgYXNzaWdubWVudCB0YXJnZXQuXG4gICAgLy9cbiAgICAvLyBUaGUgdGhyZWUgcHJvZHVjdGlvbnMgaGF2ZSB0aGUgcmVsYXRpb25zaGlwOlxuICAgIC8vXG4gICAgLy8gICBCaW5kaW5nRWxlbWVudHMg4oqGIEFzc2lnbm1lbnRUYXJnZXRzIOKKhiBBc3NpZ25tZW50RXhwcmVzc2lvblxuICAgIC8vXG4gICAgLy8gd2l0aCBhIHNpbmdsZSBleGNlcHRpb24gdGhhdCBDb3ZlckluaXRpYWxpemVkTmFtZSB3aGVuIHVzZWQgZGlyZWN0bHkgaW4gYW4gRXhwcmVzc2lvbiwgZ2VuZXJhdGVzXG4gICAgLy8gYW4gZWFybHkgZXJyb3IuIFRoZXJlZm9yZSwgd2UgbmVlZCB0aGUgdGhpcmQgc3RhdGUsIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciwgdG8gdHJhY2sgdGhlXG4gICAgLy8gZmlyc3QgdXNhZ2Ugb2YgQ292ZXJJbml0aWFsaXplZE5hbWUgYW5kIHJlcG9ydCBpdCB3aGVuIHdlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgcGFyZW50aGVzZXMgcGFpci5cbiAgICAvL1xuICAgIC8vIGlzb2xhdGVDb3ZlckdyYW1tYXIgZnVuY3Rpb24gcnVucyB0aGUgZ2l2ZW4gcGFyc2VyIGZ1bmN0aW9uIHdpdGggYSBuZXcgY292ZXIgZ3JhbW1hciBjb250ZXh0LCBhbmQgaXQgZG9lcyBub3RcbiAgICAvLyBlZmZlY3QgdGhlIGN1cnJlbnQgZmxhZ3MuIFRoaXMgbWVhbnMgdGhlIHByb2R1Y3Rpb24gdGhlIHBhcnNlciBwYXJzZXMgaXMgb25seSB1c2VkIGFzIGFuIGV4cHJlc3Npb24uIFRoZXJlZm9yZVxuICAgIC8vIHRoZSBDb3ZlckluaXRpYWxpemVkTmFtZSBjaGVjayBpcyBjb25kdWN0ZWQuXG4gICAgLy9cbiAgICAvLyBpbmhlcml0Q292ZXJHcmFtbWFyIGZ1bmN0aW9uIHJ1bnMgdGhlIGdpdmVuIHBhcnNlIGZ1bmN0aW9uIHdpdGggYSBuZXcgY292ZXIgZ3JhbW1hciBjb250ZXh0LCBhbmQgaXQgcHJvcGFnYXRlc1xuICAgIC8vIHRoZSBmbGFncyBvdXRzaWRlIG9mIHRoZSBwYXJzZXIuIFRoaXMgbWVhbnMgdGhlIHByb2R1Y3Rpb24gdGhlIHBhcnNlciBwYXJzZXMgaXMgdXNlZCBhcyBhIHBhcnQgb2YgYSBwb3RlbnRpYWxcbiAgICAvLyBwYXR0ZXJuLiBUaGUgQ292ZXJJbml0aWFsaXplZE5hbWUgY2hlY2sgaXMgZGVmZXJyZWQuXG4gICAgZnVuY3Rpb24gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZXIpIHtcbiAgICAgICAgdmFyIG9sZElzQmluZGluZ0VsZW1lbnQgPSBpc0JpbmRpbmdFbGVtZW50LFxuICAgICAgICAgICAgb2xkSXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNBc3NpZ25tZW50VGFyZ2V0LFxuICAgICAgICAgICAgb2xkRmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yLFxuICAgICAgICAgICAgcmVzdWx0O1xuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gdHJ1ZTtcbiAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbnVsbDtcbiAgICAgICAgcmVzdWx0ID0gcGFyc2VyKCk7XG4gICAgICAgIGlmIChmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IG9sZElzQmluZGluZ0VsZW1lbnQ7XG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IG9sZElzQXNzaWdubWVudFRhcmdldDtcbiAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gb2xkRmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VyKSB7XG4gICAgICAgIHZhciBvbGRJc0JpbmRpbmdFbGVtZW50ID0gaXNCaW5kaW5nRWxlbWVudCxcbiAgICAgICAgICAgIG9sZElzQXNzaWdubWVudFRhcmdldCA9IGlzQXNzaWdubWVudFRhcmdldCxcbiAgICAgICAgICAgIG9sZEZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcixcbiAgICAgICAgICAgIHJlc3VsdDtcbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IHRydWU7XG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG51bGw7XG4gICAgICAgIHJlc3VsdCA9IHBhcnNlcigpO1xuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gaXNCaW5kaW5nRWxlbWVudCAmJiBvbGRJc0JpbmRpbmdFbGVtZW50O1xuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0Fzc2lnbm1lbnRUYXJnZXQgJiYgb2xkSXNBc3NpZ25tZW50VGFyZ2V0O1xuICAgICAgICBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBvbGRGaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgfHwgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJyYXlQYXR0ZXJuKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCksIGVsZW1lbnRzID0gW10sIHJlc3QsIHJlc3ROb2RlO1xuICAgICAgICBleHBlY3QoJ1snKTtcblxuICAgICAgICB3aGlsZSAoIW1hdGNoKCddJykpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChudWxsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoKCcuLi4nKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN0Tm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgICAgICByZXN0ID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChyZXN0Tm9kZS5maW5pc2hSZXN0RWxlbWVudChyZXN0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gocGFyc2VQYXR0ZXJuV2l0aERlZmF1bHQoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnXScpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEFycmF5UGF0dGVybihlbGVtZW50cyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eVBhdHRlcm4oKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IE5vZGUoKSwga2V5LCBjb21wdXRlZCA9IG1hdGNoKCdbJyksIGluaXQ7XG4gICAgICAgIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAga2V5ID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgaW5pdCA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgJ2luaXQnLCBrZXksIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBuZXcgV3JhcHBpbmdOb2RlKGtleSkuZmluaXNoQXNzaWdubWVudFBhdHRlcm4oa2V5LCBpbml0KSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW1hdGNoKCc6JykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgZmFsc2UsIGtleSwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAga2V5ID0gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdCgnOicpO1xuICAgICAgICBpbml0ID0gcGFyc2VQYXR0ZXJuV2l0aERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoJ2luaXQnLCBrZXksIGNvbXB1dGVkLCBpbml0LCBmYWxzZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlT2JqZWN0UGF0dGVybigpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgTm9kZSgpLCBwcm9wZXJ0aWVzID0gW107XG5cbiAgICAgICAgZXhwZWN0KCd7Jyk7XG5cbiAgICAgICAgd2hpbGUgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2gocGFyc2VQcm9wZXJ0eVBhdHRlcm4oKSk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxleCgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaE9iamVjdFBhdHRlcm4ocHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQYXR0ZXJuKCkge1xuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVZhcmlhYmxlSWRlbnRpZmllcigpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCdbJykpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUFycmF5UGF0dGVybigpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZU9iamVjdFBhdHRlcm4oKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGF0dGVybldpdGhEZWZhdWx0KCkge1xuICAgICAgICB2YXIgc3RhcnRUb2tlbiA9IGxvb2thaGVhZCwgcGF0dGVybiwgcmlnaHQ7XG4gICAgICAgIHBhdHRlcm4gPSBwYXJzZVBhdHRlcm4oKTtcbiAgICAgICAgaWYgKG1hdGNoKCc9JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgcmlnaHQgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgcGF0dGVybiA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoQXNzaWdubWVudFBhdHRlcm4ocGF0dGVybiwgcmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXR0ZXJuO1xuICAgIH1cblxuICAgIC8vIDExLjEuNCBBcnJheSBJbml0aWFsaXNlclxuXG4gICAgZnVuY3Rpb24gcGFyc2VBcnJheUluaXRpYWxpc2VyKCkge1xuICAgICAgICB2YXIgZWxlbWVudHMgPSBbXSwgbm9kZSA9IG5ldyBOb2RlKCksIHJlc3RTcHJlYWQ7XG5cbiAgICAgICAgZXhwZWN0KCdbJyk7XG5cbiAgICAgICAgd2hpbGUgKCFtYXRjaCgnXScpKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcuLi4nKSkge1xuICAgICAgICAgICAgICAgIHJlc3RTcHJlYWQgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHJlc3RTcHJlYWQuZmluaXNoU3ByZWFkRWxlbWVudChpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcblxuICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGV4cGVjdCgnLCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKHJlc3RTcHJlYWQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnXScpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGVjdCgnLCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxleCgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEFycmF5RXhwcmVzc2lvbihlbGVtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gMTEuMS41IE9iamVjdCBJbml0aWFsaXNlclxuXG4gICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eUZ1bmN0aW9uKG5vZGUsIHBhcmFtSW5mbykge1xuICAgICAgICB2YXIgcHJldmlvdXNTdHJpY3QsIGJvZHk7XG5cbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuXG4gICAgICAgIHByZXZpb3VzU3RyaWN0ID0gc3RyaWN0O1xuICAgICAgICBib2R5ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMpO1xuXG4gICAgICAgIGlmIChzdHJpY3QgJiYgcGFyYW1JbmZvLmZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4ocGFyYW1JbmZvLmZpcnN0UmVzdHJpY3RlZCwgcGFyYW1JbmZvLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdHJpY3QgJiYgcGFyYW1JbmZvLnN0cmljdGVkKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihwYXJhbUluZm8uc3RyaWN0ZWQsIHBhcmFtSW5mby5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hGdW5jdGlvbkV4cHJlc3Npb24obnVsbCwgcGFyYW1JbmZvLnBhcmFtcywgcGFyYW1JbmZvLmRlZmF1bHRzLCBib2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVByb3BlcnR5TWV0aG9kRnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwYXJhbXMsIG1ldGhvZCwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgcGFyYW1zID0gcGFyc2VQYXJhbXMoKTtcbiAgICAgICAgbWV0aG9kID0gcGFyc2VQcm9wZXJ0eUZ1bmN0aW9uKG5vZGUsIHBhcmFtcyk7XG5cbiAgICAgICAgcmV0dXJuIG1ldGhvZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCkge1xuICAgICAgICB2YXIgdG9rZW4sIG5vZGUgPSBuZXcgTm9kZSgpLCBleHByO1xuXG4gICAgICAgIHRva2VuID0gbGV4KCk7XG5cbiAgICAgICAgLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBmcm9tIHBhcnNlT2JqZWN0UHJvcGVydHkoKSwgd2hlcmVcbiAgICAgICAgLy8gRU9GIGFuZCBQdW5jdHVhdG9yIHRva2VucyBhcmUgYWxyZWFkeSBmaWx0ZXJlZCBvdXQuXG5cbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgIGNhc2UgVG9rZW4uU3RyaW5nTGl0ZXJhbDpcbiAgICAgICAgY2FzZSBUb2tlbi5OdW1lcmljTGl0ZXJhbDpcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgdG9rZW4ub2N0YWwpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuU3RyaWN0T2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICBjYXNlIFRva2VuLklkZW50aWZpZXI6XG4gICAgICAgIGNhc2UgVG9rZW4uQm9vbGVhbkxpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVsbExpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uS2V5d29yZDpcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaElkZW50aWZpZXIodG9rZW4udmFsdWUpO1xuICAgICAgICBjYXNlIFRva2VuLlB1bmN0dWF0b3I6XG4gICAgICAgICAgICBpZiAodG9rZW4udmFsdWUgPT09ICdbJykge1xuICAgICAgICAgICAgICAgIGV4cHIgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIGV4cGVjdCgnXScpO1xuICAgICAgICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvb2thaGVhZFByb3BlcnR5TmFtZSgpIHtcbiAgICAgICAgc3dpdGNoIChsb29rYWhlYWQudHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuLklkZW50aWZpZXI6XG4gICAgICAgIGNhc2UgVG9rZW4uU3RyaW5nTGl0ZXJhbDpcbiAgICAgICAgY2FzZSBUb2tlbi5Cb29sZWFuTGl0ZXJhbDpcbiAgICAgICAgY2FzZSBUb2tlbi5OdWxsTGl0ZXJhbDpcbiAgICAgICAgY2FzZSBUb2tlbi5OdW1lcmljTGl0ZXJhbDpcbiAgICAgICAgY2FzZSBUb2tlbi5LZXl3b3JkOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNhc2UgVG9rZW4uUHVuY3R1YXRvcjpcbiAgICAgICAgICAgIHJldHVybiBsb29rYWhlYWQudmFsdWUgPT09ICdbJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB0byB0cnkgdG8gcGFyc2UgYSBNZXRob2REZWZpbml0aW9uIGFzIGRlZmluZWQgaW4gMTQuMy4gQnV0IGluIHRoZSBjYXNlIG9mIG9iamVjdCBsaXRlcmFscyxcbiAgICAvLyBpdCBtaWdodCBiZSBjYWxsZWQgYXQgYSBwb3NpdGlvbiB3aGVyZSB0aGVyZSBpcyBpbiBmYWN0IGEgc2hvcnQgaGFuZCBpZGVudGlmaWVyIHBhdHRlcm4gb3IgYSBkYXRhIHByb3BlcnR5LlxuICAgIC8vIFRoaXMgY2FuIG9ubHkgYmUgZGV0ZXJtaW5lZCBhZnRlciB3ZSBjb25zdW1lZCB1cCB0byB0aGUgbGVmdCBwYXJlbnRoZXNlcy5cbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIGJhY2sgdHJhY2tpbmcsIGl0IHJldHVybnMgYG51bGxgIGlmIHRoZSBwb3NpdGlvbiBpcyBub3QgYSBNZXRob2REZWZpbml0aW9uIGFuZCB0aGUgY2FsbGVyXG4gICAgLy8gaXMgcmVzcG9uc2libGUgdG8gdmlzaXQgb3RoZXIgb3B0aW9ucy5cbiAgICBmdW5jdGlvbiB0cnlQYXJzZU1ldGhvZERlZmluaXRpb24odG9rZW4sIGtleSwgY29tcHV0ZWQsIG5vZGUpIHtcbiAgICAgICAgdmFyIHZhbHVlLCBvcHRpb25zLCBtZXRob2ROb2RlO1xuXG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAvLyBjaGVjayBmb3IgYGdldGAgYW5kIGBzZXRgO1xuXG4gICAgICAgICAgICBpZiAodG9rZW4udmFsdWUgPT09ICdnZXQnICYmIGxvb2thaGVhZFByb3BlcnR5TmFtZSgpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZWQgPSBtYXRjaCgnWycpO1xuICAgICAgICAgICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgICAgICAgICBtZXRob2ROb2RlID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgICAgICBleHBlY3QoJygnKTtcbiAgICAgICAgICAgICAgICBleHBlY3QoJyknKTtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlUHJvcGVydHlGdW5jdGlvbihtZXRob2ROb2RlLCB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgc3RyaWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdnZXQnLCBrZXksIGNvbXB1dGVkLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW4udmFsdWUgPT09ICdzZXQnICYmIGxvb2thaGVhZFByb3BlcnR5TmFtZSgpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZWQgPSBtYXRjaCgnWycpO1xuICAgICAgICAgICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgICAgICAgICBtZXRob2ROb2RlID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb3VudDogMCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtU2V0OiB7fVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZVBhcmFtKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5kZWZhdWx0Q291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGVmYXVsdHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VQcm9wZXJ0eUZ1bmN0aW9uKG1ldGhvZE5vZGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdzZXQnLCBrZXksIGNvbXB1dGVkLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaCgnKCcpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHBhcnNlUHJvcGVydHlNZXRob2RGdW5jdGlvbigpO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoJ2luaXQnLCBrZXksIGNvbXB1dGVkLCB2YWx1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTm90IGEgTWV0aG9kRGVmaW5pdGlvbi5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tQcm90byhrZXksIGNvbXB1dGVkLCBoYXNQcm90bykge1xuICAgICAgICBpZiAoY29tcHV0ZWQgPT09IGZhbHNlICYmIChrZXkudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIgJiYga2V5Lm5hbWUgPT09ICdfX3Byb3RvX18nIHx8XG4gICAgICAgICAgICBrZXkudHlwZSA9PT0gU3ludGF4LkxpdGVyYWwgJiYga2V5LnZhbHVlID09PSAnX19wcm90b19fJykpIHtcbiAgICAgICAgICAgIGlmIChoYXNQcm90by52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuRHVwbGljYXRlUHJvdG9Qcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGhhc1Byb3RvLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlT2JqZWN0UHJvcGVydHkoaGFzUHJvdG8pIHtcbiAgICAgICAgdmFyIHRva2VuID0gbG9va2FoZWFkLCBub2RlID0gbmV3IE5vZGUoKSwgY29tcHV0ZWQsIGtleSwgbWF5YmVNZXRob2QsIHZhbHVlO1xuXG4gICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAga2V5ID0gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpO1xuICAgICAgICBtYXliZU1ldGhvZCA9IHRyeVBhcnNlTWV0aG9kRGVmaW5pdGlvbih0b2tlbiwga2V5LCBjb21wdXRlZCwgbm9kZSk7XG5cbiAgICAgICAgaWYgKG1heWJlTWV0aG9kKSB7XG4gICAgICAgICAgICBjaGVja1Byb3RvKG1heWJlTWV0aG9kLmtleSwgbWF5YmVNZXRob2QuY29tcHV0ZWQsIGhhc1Byb3RvKTtcbiAgICAgICAgICAgIC8vIGZpbmlzaGVkXG4gICAgICAgICAgICByZXR1cm4gbWF5YmVNZXRob2Q7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbml0IHByb3BlcnR5IG9yIHNob3J0IGhhbmQgcHJvcGVydHkuXG4gICAgICAgIGNoZWNrUHJvdG8oa2V5LCBjb21wdXRlZCwgaGFzUHJvdG8pO1xuXG4gICAgICAgIGlmIChtYXRjaCgnOicpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHZhbHVlID0gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCc9JykpIHtcbiAgICAgICAgICAgICAgICBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCxcbiAgICAgICAgICAgICAgICAgICAgbmV3IFdyYXBwaW5nTm9kZSh0b2tlbikuZmluaXNoQXNzaWdubWVudFBhdHRlcm4oa2V5LCB2YWx1ZSksIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwga2V5LCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlT2JqZWN0SW5pdGlhbGlzZXIoKSB7XG4gICAgICAgIHZhciBwcm9wZXJ0aWVzID0gW10sIGhhc1Byb3RvID0ge3ZhbHVlOiBmYWxzZX0sIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdCgneycpO1xuXG4gICAgICAgIHdoaWxlICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHBhcnNlT2JqZWN0UHJvcGVydHkoaGFzUHJvdG8pKTtcblxuICAgICAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0Q29tbWFTZXBhcmF0b3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaE9iamVjdEV4cHJlc3Npb24ocHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIpIHtcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgIGNhc2UgU3ludGF4LklkZW50aWZpZXI6XG4gICAgICAgIGNhc2UgU3ludGF4Lk1lbWJlckV4cHJlc3Npb246XG4gICAgICAgIGNhc2UgU3ludGF4LlJlc3RFbGVtZW50OlxuICAgICAgICBjYXNlIFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5TcHJlYWRFbGVtZW50OlxuICAgICAgICAgICAgZXhwci50eXBlID0gU3ludGF4LlJlc3RFbGVtZW50O1xuICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIuYXJndW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LkFycmF5RXhwcmVzc2lvbjpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5BcnJheVBhdHRlcm47XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZXhwci5lbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChleHByLmVsZW1lbnRzW2ldICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLmVsZW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguT2JqZWN0RXhwcmVzc2lvbjpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5PYmplY3RQYXR0ZXJuO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHIucHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLnByb3BlcnRpZXNbaV0udmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LkFzc2lnbm1lbnRFeHByZXNzaW9uOlxuICAgICAgICAgICAgZXhwci50eXBlID0gU3ludGF4LkFzc2lnbm1lbnRQYXR0ZXJuO1xuICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIubGVmdCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIEFsbG93IG90aGVyIG5vZGUgdHlwZSBmb3IgdG9sZXJhbnQgcGFyc2luZy5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VUZW1wbGF0ZUVsZW1lbnQob3B0aW9uKSB7XG4gICAgICAgIHZhciBub2RlLCB0b2tlbjtcblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgIT09IFRva2VuLlRlbXBsYXRlIHx8IChvcHRpb24uaGVhZCAmJiAhbG9va2FoZWFkLmhlYWQpKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgIHRva2VuID0gbGV4KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoVGVtcGxhdGVFbGVtZW50KHsgcmF3OiB0b2tlbi52YWx1ZS5yYXcsIGNvb2tlZDogdG9rZW4udmFsdWUuY29va2VkIH0sIHRva2VuLnRhaWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVGVtcGxhdGVMaXRlcmFsKCkge1xuICAgICAgICB2YXIgcXVhc2ksIHF1YXNpcywgZXhwcmVzc2lvbnMsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIHF1YXNpID0gcGFyc2VUZW1wbGF0ZUVsZW1lbnQoeyBoZWFkOiB0cnVlIH0pO1xuICAgICAgICBxdWFzaXMgPSBbIHF1YXNpIF07XG4gICAgICAgIGV4cHJlc3Npb25zID0gW107XG5cbiAgICAgICAgd2hpbGUgKCFxdWFzaS50YWlsKSB7XG4gICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKHBhcnNlRXhwcmVzc2lvbigpKTtcbiAgICAgICAgICAgIHF1YXNpID0gcGFyc2VUZW1wbGF0ZUVsZW1lbnQoeyBoZWFkOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIHF1YXNpcy5wdXNoKHF1YXNpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFRlbXBsYXRlTGl0ZXJhbChxdWFzaXMsIGV4cHJlc3Npb25zKTtcbiAgICB9XG5cbiAgICAvLyAxMS4xLjYgVGhlIEdyb3VwaW5nIE9wZXJhdG9yXG5cbiAgICBmdW5jdGlvbiBwYXJzZUdyb3VwRXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIGV4cHIsIGV4cHJlc3Npb25zLCBzdGFydFRva2VuLCBpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIGlmIChtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJz0+JykpIHtcbiAgICAgICAgICAgICAgICBleHBlY3QoJz0+Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFBsYWNlSG9sZGVycy5BcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyLFxuICAgICAgICAgICAgICAgIHBhcmFtczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICBpZiAobWF0Y2goJy4uLicpKSB7XG4gICAgICAgICAgICBleHByID0gcGFyc2VSZXN0RWxlbWVudCgpO1xuICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCc9PicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcixcbiAgICAgICAgICAgICAgICBwYXJhbXM6IFtleHByXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSB0cnVlO1xuICAgICAgICBleHByID0gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcblxuICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gZmFsc2U7XG4gICAgICAgICAgICBleHByZXNzaW9ucyA9IFtleHByXTtcblxuICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoKCcuLi4nKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzQmluZGluZ0VsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChwYXJzZVJlc3RFbGVtZW50KCkpO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJyknKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnPT4nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0KCc9PicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHJlc3Npb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwcmVzc2lvbnNbaV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogZXhwcmVzc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hTZXF1ZW5jZUV4cHJlc3Npb24oZXhwcmVzc2lvbnMpO1xuICAgICAgICB9XG5cblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBpZiAobWF0Y2goJz0+JykpIHtcbiAgICAgICAgICAgIGlmICghaXNCaW5kaW5nRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChleHByLnR5cGUgPT09IFN5bnRheC5TZXF1ZW5jZUV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZXhwci5leHByZXNzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwci5leHByZXNzaW9uc1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV4cHIgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogUGxhY2VIb2xkZXJzLkFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBleHByLnR5cGUgPT09IFN5bnRheC5TZXF1ZW5jZUV4cHJlc3Npb24gPyBleHByLmV4cHJlc3Npb25zIDogW2V4cHJdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG5cbiAgICAvLyAxMS4xIFByaW1hcnkgRXhwcmVzc2lvbnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJpbWFyeUV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciB0eXBlLCB0b2tlbiwgZXhwciwgbm9kZTtcblxuICAgICAgICBpZiAobWF0Y2goJygnKSkge1xuICAgICAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VHcm91cEV4cHJlc3Npb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hdGNoKCdbJykpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXJyYXlJbml0aWFsaXNlcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgcmV0dXJuIGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VPYmplY3RJbml0aWFsaXNlcik7XG4gICAgICAgIH1cblxuICAgICAgICB0eXBlID0gbG9va2FoZWFkLnR5cGU7XG4gICAgICAgIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBleHByID0gbm9kZS5maW5pc2hJZGVudGlmaWVyKGxleCgpLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUb2tlbi5TdHJpbmdMaXRlcmFsIHx8IHR5cGUgPT09IFRva2VuLk51bWVyaWNMaXRlcmFsKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGxvb2thaGVhZC5vY3RhbCkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCwgTWVzc2FnZXMuU3RyaWN0T2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwobGV4KCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VGdW5jdGlvbkV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ3RoaXMnKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFRoaXNFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdjbGFzcycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsZXgoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVG9rZW4uQm9vbGVhbkxpdGVyYWwpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICB0b2tlbi52YWx1ZSA9ICh0b2tlbi52YWx1ZSA9PT0gJ3RydWUnKTtcbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLk51bGxMaXRlcmFsKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgdG9rZW4udmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgZXhwciA9IG5vZGUuZmluaXNoTGl0ZXJhbCh0b2tlbik7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJy8nKSB8fCBtYXRjaCgnLz0nKSkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgaW5kZXggPSBzdGFydEluZGV4O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLnRva2VucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB0b2tlbiA9IGNvbGxlY3RSZWdleCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b2tlbiA9IHNjYW5SZWdFeHAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IG5vZGUuZmluaXNoTGl0ZXJhbCh0b2tlbik7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGV4cHIgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obGV4KCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuMiBMZWZ0LUhhbmQtU2lkZSBFeHByZXNzaW9uc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VBcmd1bWVudHMoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW107XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgaWYgKCFtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGFyZ3MucHVzaChpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2goJyknKSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXhwZWN0Q29tbWFTZXBhcmF0b3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIHJldHVybiBhcmdzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpIHtcbiAgICAgICAgdmFyIHRva2VuLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIGlmICghaXNJZGVudGlmaWVyTmFtZSh0b2tlbikpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaElkZW50aWZpZXIodG9rZW4udmFsdWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTm9uQ29tcHV0ZWRNZW1iZXIoKSB7XG4gICAgICAgIGV4cGVjdCgnLicpO1xuXG4gICAgICAgIHJldHVybiBwYXJzZU5vbkNvbXB1dGVkUHJvcGVydHkoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNvbXB1dGVkTWVtYmVyKCkge1xuICAgICAgICB2YXIgZXhwcjtcblxuICAgICAgICBleHBlY3QoJ1snKTtcblxuICAgICAgICBleHByID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUV4cHJlc3Npb24pO1xuXG4gICAgICAgIGV4cGVjdCgnXScpO1xuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTmV3RXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIGNhbGxlZSwgYXJncywgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnbmV3Jyk7XG4gICAgICAgIGNhbGxlZSA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uKTtcbiAgICAgICAgYXJncyA9IG1hdGNoKCcoJykgPyBwYXJzZUFyZ3VtZW50cygpIDogW107XG5cbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaE5ld0V4cHJlc3Npb24oY2FsbGVlLCBhcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUxlZnRIYW5kU2lkZUV4cHJlc3Npb25BbGxvd0NhbGwoKSB7XG4gICAgICAgIHZhciBxdWFzaSwgZXhwciwgYXJncywgcHJvcGVydHksIHN0YXJ0VG9rZW4sIHByZXZpb3VzQWxsb3dJbiA9IHN0YXRlLmFsbG93SW47XG5cbiAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHRydWU7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnc3VwZXInKSAmJiBzdGF0ZS5pbkZ1bmN0aW9uQm9keSkge1xuICAgICAgICAgICAgZXhwciA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGV4cHIgPSBleHByLmZpbmlzaFN1cGVyKCk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKCcoJykgJiYgIW1hdGNoKCcuJykgJiYgIW1hdGNoKCdbJykpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIobWF0Y2hLZXl3b3JkKCduZXcnKSA/IHBhcnNlTmV3RXhwcmVzc2lvbiA6IHBhcnNlUHJpbWFyeUV4cHJlc3Npb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCcuJykpIHtcbiAgICAgICAgICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IHBhcnNlTm9uQ29tcHV0ZWRNZW1iZXIoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hNZW1iZXJFeHByZXNzaW9uKCcuJywgZXhwciwgcHJvcGVydHkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnKCcpKSB7XG4gICAgICAgICAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGFyZ3MgPSBwYXJzZUFyZ3VtZW50cygpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaENhbGxFeHByZXNzaW9uKGV4cHIsIGFyZ3MpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcHJvcGVydHkgPSBwYXJzZUNvbXB1dGVkTWVtYmVyKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoTWVtYmVyRXhwcmVzc2lvbignWycsIGV4cHIsIHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLlRlbXBsYXRlICYmIGxvb2thaGVhZC5oZWFkKSB7XG4gICAgICAgICAgICAgICAgcXVhc2kgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbCgpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaFRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbihleHByLCBxdWFzaSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlLmFsbG93SW4gPSBwcmV2aW91c0FsbG93SW47XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgcXVhc2ksIGV4cHIsIHByb3BlcnR5LCBzdGFydFRva2VuO1xuICAgICAgICBhc3NlcnQoc3RhdGUuYWxsb3dJbiwgJ2NhbGxlZSBvZiBuZXcgZXhwcmVzc2lvbiBhbHdheXMgYWxsb3cgaW4ga2V5d29yZC4nKTtcblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ3N1cGVyJykgJiYgc3RhdGUuaW5GdW5jdGlvbkJvZHkpIHtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBleHByID0gZXhwci5maW5pc2hTdXBlcigpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnWycpICYmICFtYXRjaCgnLicpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKG1hdGNoS2V5d29yZCgnbmV3JykgPyBwYXJzZU5ld0V4cHJlc3Npb24gOiBwYXJzZVByaW1hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcHJvcGVydHkgPSBwYXJzZUNvbXB1dGVkTWVtYmVyKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoTWVtYmVyRXhwcmVzc2lvbignWycsIGV4cHIsIHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJy4nKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VOb25Db21wdXRlZE1lbWJlcigpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaE1lbWJlckV4cHJlc3Npb24oJy4nLCBleHByLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5UZW1wbGF0ZSAmJiBsb29rYWhlYWQuaGVhZCkge1xuICAgICAgICAgICAgICAgIHF1YXNpID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24oZXhwciwgcXVhc2kpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICAvLyAxMS4zIFBvc3RmaXggRXhwcmVzc2lvbnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlUG9zdGZpeEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCB0b2tlbiwgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICBleHByID0gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUxlZnRIYW5kU2lkZUV4cHJlc3Npb25BbGxvd0NhbGwpO1xuXG4gICAgICAgIGlmICghaGFzTGluZVRlcm1pbmF0b3IgJiYgbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLlB1bmN0dWF0b3IpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnKysnKSB8fCBtYXRjaCgnLS0nKSkge1xuICAgICAgICAgICAgICAgIC8vIDExLjMuMSwgMTEuMy4yXG4gICAgICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBleHByLnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGlzUmVzdHJpY3RlZFdvcmQoZXhwci5uYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLlN0cmljdExIU1Bvc3RmaXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuSW52YWxpZExIU0luQXNzaWdubWVudCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hQb3N0Zml4RXhwcmVzc2lvbih0b2tlbi52YWx1ZSwgZXhwcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICAvLyAxMS40IFVuYXJ5IE9wZXJhdG9yc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VVbmFyeUV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciB0b2tlbiwgZXhwciwgc3RhcnRUb2tlbjtcblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgIT09IFRva2VuLlB1bmN0dWF0b3IgJiYgbG9va2FoZWFkLnR5cGUgIT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIGV4cHIgPSBwYXJzZVBvc3RmaXhFeHByZXNzaW9uKCk7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJysrJykgfHwgbWF0Y2goJy0tJykpIHtcbiAgICAgICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgLy8gMTEuNC40LCAxMS40LjVcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZXhwci50eXBlID09PSBTeW50YXguSWRlbnRpZmllciAmJiBpc1Jlc3RyaWN0ZWRXb3JkKGV4cHIubmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLlN0cmljdExIU1ByZWZpeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5JbnZhbGlkTEhTSW5Bc3NpZ25tZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaFVuYXJ5RXhwcmVzc2lvbih0b2tlbi52YWx1ZSwgZXhwcik7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJysnKSB8fCBtYXRjaCgnLScpIHx8IG1hdGNoKCd+JykgfHwgbWF0Y2goJyEnKSkge1xuICAgICAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICBleHByID0gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZVVuYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hVbmFyeUV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoS2V5d29yZCgnZGVsZXRlJykgfHwgbWF0Y2hLZXl3b3JkKCd2b2lkJykgfHwgbWF0Y2hLZXl3b3JkKCd0eXBlb2YnKSkge1xuICAgICAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICBleHByID0gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZVVuYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hVbmFyeUV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBleHByLm9wZXJhdG9yID09PSAnZGVsZXRlJyAmJiBleHByLmFyZ3VtZW50LnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3REZWxldGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwciA9IHBhcnNlUG9zdGZpeEV4cHJlc3Npb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGJpbmFyeVByZWNlZGVuY2UodG9rZW4sIGFsbG93SW4pIHtcbiAgICAgICAgdmFyIHByZWMgPSAwO1xuXG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5QdW5jdHVhdG9yICYmIHRva2VuLnR5cGUgIT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuICAgICAgICBjYXNlICd8fCc6XG4gICAgICAgICAgICBwcmVjID0gMTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJyYmJzpcbiAgICAgICAgICAgIHByZWMgPSAyO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnfCc6XG4gICAgICAgICAgICBwcmVjID0gMztcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ14nOlxuICAgICAgICAgICAgcHJlYyA9IDQ7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICcmJzpcbiAgICAgICAgICAgIHByZWMgPSA1O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnPT0nOlxuICAgICAgICBjYXNlICchPSc6XG4gICAgICAgIGNhc2UgJz09PSc6XG4gICAgICAgIGNhc2UgJyE9PSc6XG4gICAgICAgICAgICBwcmVjID0gNjtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJzwnOlxuICAgICAgICBjYXNlICc+JzpcbiAgICAgICAgY2FzZSAnPD0nOlxuICAgICAgICBjYXNlICc+PSc6XG4gICAgICAgIGNhc2UgJ2luc3RhbmNlb2YnOlxuICAgICAgICAgICAgcHJlYyA9IDc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdpbic6XG4gICAgICAgICAgICBwcmVjID0gYWxsb3dJbiA/IDcgOiAwO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnPDwnOlxuICAgICAgICBjYXNlICc+Pic6XG4gICAgICAgIGNhc2UgJz4+Pic6XG4gICAgICAgICAgICBwcmVjID0gODtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJysnOlxuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICAgIHByZWMgPSA5O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnKic6XG4gICAgICAgIGNhc2UgJy8nOlxuICAgICAgICBjYXNlICclJzpcbiAgICAgICAgICAgIHByZWMgPSAxMTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcmVjO1xuICAgIH1cblxuICAgIC8vIDExLjUgTXVsdGlwbGljYXRpdmUgT3BlcmF0b3JzXG4gICAgLy8gMTEuNiBBZGRpdGl2ZSBPcGVyYXRvcnNcbiAgICAvLyAxMS43IEJpdHdpc2UgU2hpZnQgT3BlcmF0b3JzXG4gICAgLy8gMTEuOCBSZWxhdGlvbmFsIE9wZXJhdG9yc1xuICAgIC8vIDExLjkgRXF1YWxpdHkgT3BlcmF0b3JzXG4gICAgLy8gMTEuMTAgQmluYXJ5IEJpdHdpc2UgT3BlcmF0b3JzXG4gICAgLy8gMTEuMTEgQmluYXJ5IExvZ2ljYWwgT3BlcmF0b3JzXG5cbiAgICBmdW5jdGlvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBtYXJrZXIsIG1hcmtlcnMsIGV4cHIsIHRva2VuLCBwcmVjLCBzdGFjaywgcmlnaHQsIG9wZXJhdG9yLCBsZWZ0LCBpO1xuXG4gICAgICAgIG1hcmtlciA9IGxvb2thaGVhZDtcbiAgICAgICAgbGVmdCA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuXG4gICAgICAgIHRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICBwcmVjID0gYmluYXJ5UHJlY2VkZW5jZSh0b2tlbiwgc3RhdGUuYWxsb3dJbik7XG4gICAgICAgIGlmIChwcmVjID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVmdDtcbiAgICAgICAgfVxuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIHRva2VuLnByZWMgPSBwcmVjO1xuICAgICAgICBsZXgoKTtcblxuICAgICAgICBtYXJrZXJzID0gW21hcmtlciwgbG9va2FoZWFkXTtcbiAgICAgICAgcmlnaHQgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcblxuICAgICAgICBzdGFjayA9IFtsZWZ0LCB0b2tlbiwgcmlnaHRdO1xuXG4gICAgICAgIHdoaWxlICgocHJlYyA9IGJpbmFyeVByZWNlZGVuY2UobG9va2FoZWFkLCBzdGF0ZS5hbGxvd0luKSkgPiAwKSB7XG5cbiAgICAgICAgICAgIC8vIFJlZHVjZTogbWFrZSBhIGJpbmFyeSBleHByZXNzaW9uIGZyb20gdGhlIHRocmVlIHRvcG1vc3QgZW50cmllcy5cbiAgICAgICAgICAgIHdoaWxlICgoc3RhY2subGVuZ3RoID4gMikgJiYgKHByZWMgPD0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMl0ucHJlYykpIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gc3RhY2sucG9wKCkudmFsdWU7XG4gICAgICAgICAgICAgICAgbGVmdCA9IHN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgICAgIG1hcmtlcnMucG9wKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUobWFya2Vyc1ttYXJrZXJzLmxlbmd0aCAtIDFdKS5maW5pc2hCaW5hcnlFeHByZXNzaW9uKG9wZXJhdG9yLCBsZWZ0LCByaWdodCk7XG4gICAgICAgICAgICAgICAgc3RhY2sucHVzaChleHByKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2hpZnQuXG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgdG9rZW4ucHJlYyA9IHByZWM7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgIG1hcmtlcnMucHVzaChsb29rYWhlYWQpO1xuICAgICAgICAgICAgZXhwciA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgc3RhY2sucHVzaChleHByKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbmFsIHJlZHVjZSB0byBjbGVhbi11cCB0aGUgc3RhY2suXG4gICAgICAgIGkgPSBzdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBleHByID0gc3RhY2tbaV07XG4gICAgICAgIG1hcmtlcnMucG9wKCk7XG4gICAgICAgIHdoaWxlIChpID4gMSkge1xuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUobWFya2Vycy5wb3AoKSkuZmluaXNoQmluYXJ5RXhwcmVzc2lvbihzdGFja1tpIC0gMV0udmFsdWUsIHN0YWNrW2kgLSAyXSwgZXhwcik7XG4gICAgICAgICAgICBpIC09IDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cblxuICAgIC8vIDExLjEyIENvbmRpdGlvbmFsIE9wZXJhdG9yXG5cbiAgICBmdW5jdGlvbiBwYXJzZUNvbmRpdGlvbmFsRXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIGV4cHIsIHByZXZpb3VzQWxsb3dJbiwgY29uc2VxdWVudCwgYWx0ZXJuYXRlLCBzdGFydFRva2VuO1xuXG4gICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG5cbiAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VCaW5hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgaWYgKG1hdGNoKCc/JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgcHJldmlvdXNBbGxvd0luID0gc3RhdGUuYWxsb3dJbjtcbiAgICAgICAgICAgIHN0YXRlLmFsbG93SW4gPSB0cnVlO1xuICAgICAgICAgICAgY29uc2VxdWVudCA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuICAgICAgICAgICAgZXhwZWN0KCc6Jyk7XG4gICAgICAgICAgICBhbHRlcm5hdGUgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuXG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hDb25kaXRpb25hbEV4cHJlc3Npb24oZXhwciwgY29uc2VxdWVudCwgYWx0ZXJuYXRlKTtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIC8vIFtFUzZdIDE0LjIgQXJyb3cgRnVuY3Rpb25cblxuICAgIGZ1bmN0aW9uIHBhcnNlQ29uY2lzZUJvZHkoKSB7XG4gICAgICAgIGlmIChtYXRjaCgneycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGdW5jdGlvblNvdXJjZUVsZW1lbnRzKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0pIHtcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHN3aXRjaCAocGFyYW0udHlwZSkge1xuICAgICAgICBjYXNlIFN5bnRheC5JZGVudGlmaWVyOlxuICAgICAgICAgICAgdmFsaWRhdGVQYXJhbShvcHRpb25zLCBwYXJhbSwgcGFyYW0ubmFtZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguUmVzdEVsZW1lbnQ6XG4gICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbS5hcmd1bWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguQXNzaWdubWVudFBhdHRlcm46XG4gICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbS5sZWZ0KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5BcnJheVBhdHRlcm46XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGFyYW0uZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW0uZWxlbWVudHNbaV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0uZWxlbWVudHNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYXNzZXJ0KHBhcmFtLnR5cGUgPT09IFN5bnRheC5PYmplY3RQYXR0ZXJuLCAnSW52YWxpZCB0eXBlJyk7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGFyYW0ucHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtLnByb3BlcnRpZXNbaV0udmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVpbnRlcnByZXRBc0NvdmVyRm9ybWFsc0xpc3QoZXhwcikge1xuICAgICAgICB2YXIgaSwgbGVuLCBwYXJhbSwgcGFyYW1zLCBkZWZhdWx0cywgZGVmYXVsdENvdW50LCBvcHRpb25zLCB0b2tlbjtcblxuICAgICAgICBkZWZhdWx0cyA9IFtdO1xuICAgICAgICBkZWZhdWx0Q291bnQgPSAwO1xuICAgICAgICBwYXJhbXMgPSBbZXhwcl07XG5cbiAgICAgICAgc3dpdGNoIChleHByLnR5cGUpIHtcbiAgICAgICAgY2FzZSBTeW50YXguSWRlbnRpZmllcjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFBsYWNlSG9sZGVycy5BcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyOlxuICAgICAgICAgICAgcGFyYW1zID0gZXhwci5wYXJhbXM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHBhcmFtU2V0OiB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoaSA9IDAsIGxlbiA9IHBhcmFtcy5sZW5ndGg7IGkgPCBsZW47IGkgKz0gMSkge1xuICAgICAgICAgICAgcGFyYW0gPSBwYXJhbXNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHBhcmFtLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU3ludGF4LkFzc2lnbm1lbnRQYXR0ZXJuOlxuICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IHBhcmFtLmxlZnQ7XG4gICAgICAgICAgICAgICAgZGVmYXVsdHMucHVzaChwYXJhbS5yaWdodCk7XG4gICAgICAgICAgICAgICAgKytkZWZhdWx0Q291bnQ7XG4gICAgICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0ubGVmdCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtKTtcbiAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBwYXJhbTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0cy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gTWVzc2FnZXMuU3RyaWN0UGFyYW1EdXBlKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHN0cmljdCA/IG9wdGlvbnMuc3RyaWN0ZWQgOiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZDtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBvcHRpb25zLm1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlZmF1bHRDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgZGVmYXVsdHMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICAgIGRlZmF1bHRzOiBkZWZhdWx0cyxcbiAgICAgICAgICAgIHN0cmljdGVkOiBvcHRpb25zLnN0cmljdGVkLFxuICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMubWVzc2FnZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24ob3B0aW9ucywgbm9kZSkge1xuICAgICAgICB2YXIgcHJldmlvdXNTdHJpY3QsIGJvZHk7XG5cbiAgICAgICAgaWYgKGhhc0xpbmVUZXJtaW5hdG9yKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdCgnPT4nKTtcbiAgICAgICAgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG5cbiAgICAgICAgYm9keSA9IHBhcnNlQ29uY2lzZUJvZHkoKTtcblxuICAgICAgICBpZiAoc3RyaWN0ICYmIG9wdGlvbnMuZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCwgb3B0aW9ucy5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaWN0ICYmIG9wdGlvbnMuc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKG9wdGlvbnMuc3RyaWN0ZWQsIG9wdGlvbnMubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbihvcHRpb25zLnBhcmFtcywgb3B0aW9ucy5kZWZhdWx0cywgYm9keSwgYm9keS50eXBlICE9PSBTeW50YXguQmxvY2tTdGF0ZW1lbnQpO1xuICAgIH1cblxuICAgIC8vIDExLjEzIEFzc2lnbm1lbnQgT3BlcmF0b3JzXG5cbiAgICBmdW5jdGlvbiBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdG9rZW4sIGV4cHIsIHJpZ2h0LCBsaXN0LCBzdGFydFRva2VuO1xuXG4gICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgIHRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIGV4cHIgPSBwYXJzZUNvbmRpdGlvbmFsRXhwcmVzc2lvbigpO1xuXG4gICAgICAgIGlmIChleHByLnR5cGUgPT09IFBsYWNlSG9sZGVycy5BcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyIHx8IG1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBsaXN0ID0gcmVpbnRlcnByZXRBc0NvdmVyRm9ybWFsc0xpc3QoZXhwcik7XG5cbiAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbihsaXN0LCBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hBc3NpZ24oKSkge1xuICAgICAgICAgICAgaWYgKCFpc0Fzc2lnbm1lbnRUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkludmFsaWRMSFNJbkFzc2lnbm1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyAxMS4xMy4xXG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGV4cHIudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIgJiYgaXNSZXN0cmljdGVkV29yZChleHByLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlN0cmljdExIU0Fzc2lnbm1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW1hdGNoKCc9JykpIHtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIHJpZ2h0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaEFzc2lnbm1lbnRFeHByZXNzaW9uKHRva2VuLnZhbHVlLCBleHByLCByaWdodCk7XG4gICAgICAgICAgICBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuMTQgQ29tbWEgT3BlcmF0b3JcblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIGV4cHIsIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQsIGV4cHJlc3Npb25zO1xuXG4gICAgICAgIGV4cHIgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuXG4gICAgICAgIGlmIChtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICBleHByZXNzaW9ucyA9IFtleHByXTtcblxuICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zLnB1c2goaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaFNlcXVlbmNlRXhwcmVzc2lvbihleHByZXNzaW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICAvLyAxMi4xIEJsb2NrXG5cbiAgICBmdW5jdGlvbiBwYXJzZVN0YXRlbWVudExpc3RJdGVtKCkge1xuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICdleHBvcnQnOlxuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUeXBlICE9PSAnbW9kdWxlJykge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQsIE1lc3NhZ2VzLklsbGVnYWxFeHBvcnREZWNsYXJhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cG9ydERlY2xhcmF0aW9uKCk7XG4gICAgICAgICAgICBjYXNlICdpbXBvcnQnOlxuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUeXBlICE9PSAnbW9kdWxlJykge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQsIE1lc3NhZ2VzLklsbGVnYWxJbXBvcnREZWNsYXJhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUltcG9ydERlY2xhcmF0aW9uKCk7XG4gICAgICAgICAgICBjYXNlICdjb25zdCc6XG4gICAgICAgICAgICBjYXNlICdsZXQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUxleGljYWxEZWNsYXJhdGlvbih7aW5Gb3I6IGZhbHNlfSk7XG4gICAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25EZWNsYXJhdGlvbihuZXcgTm9kZSgpKTtcbiAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VDbGFzc0RlY2xhcmF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyc2VTdGF0ZW1lbnQoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVN0YXRlbWVudExpc3QoKSB7XG4gICAgICAgIHZhciBsaXN0ID0gW107XG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGlzdC5wdXNoKHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUJsb2NrKCkge1xuICAgICAgICB2YXIgYmxvY2ssIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdCgneycpO1xuXG4gICAgICAgIGJsb2NrID0gcGFyc2VTdGF0ZW1lbnRMaXN0KCk7XG5cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQmxvY2tTdGF0ZW1lbnQoYmxvY2spO1xuICAgIH1cblxuICAgIC8vIDEyLjIgVmFyaWFibGUgU3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlSWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIHRva2VuLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIHRva2VuLnR5cGUgPT09IFRva2VuLktleXdvcmQgJiYgaXNTdHJpY3RNb2RlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RSZXNlcnZlZFdvcmQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZGVudGlmaWVyKHRva2VuLnZhbHVlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlRGVjbGFyYXRpb24oKSB7XG4gICAgICAgIHZhciBpbml0ID0gbnVsbCwgaWQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGlkID0gcGFyc2VQYXR0ZXJuKCk7XG5cbiAgICAgICAgLy8gMTIuMi4xXG4gICAgICAgIGlmIChzdHJpY3QgJiYgaXNSZXN0cmljdGVkV29yZChpZC5uYW1lKSkge1xuICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RWYXJOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGluaXQgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGlkLnR5cGUgIT09IFN5bnRheC5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBleHBlY3QoJz0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFZhcmlhYmxlRGVjbGFyYXRvcihpZCwgaW5pdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCgpIHtcbiAgICAgICAgdmFyIGxpc3QgPSBbXTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICBsaXN0LnB1c2gocGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgfSB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCk7XG5cbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBkZWNsYXJhdGlvbnM7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgndmFyJyk7XG5cbiAgICAgICAgZGVjbGFyYXRpb25zID0gcGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCgpO1xuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hWYXJpYWJsZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9ucyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VMZXhpY2FsQmluZGluZyhraW5kLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBpbml0ID0gbnVsbCwgaWQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGlkID0gcGFyc2VQYXR0ZXJuKCk7XG5cbiAgICAgICAgLy8gMTIuMi4xXG4gICAgICAgIGlmIChzdHJpY3QgJiYgaWQudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIgJiYgaXNSZXN0cmljdGVkV29yZChpZC5uYW1lKSkge1xuICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RWYXJOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChraW5kID09PSAnY29uc3QnKSB7XG4gICAgICAgICAgICBpZiAoIW1hdGNoS2V5d29yZCgnaW4nKSkge1xuICAgICAgICAgICAgICAgIGV4cGVjdCgnPScpO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCghb3B0aW9ucy5pbkZvciAmJiBpZC50eXBlICE9PSBTeW50YXguSWRlbnRpZmllcikgfHwgbWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgZXhwZWN0KCc9Jyk7XG4gICAgICAgICAgICBpbml0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFZhcmlhYmxlRGVjbGFyYXRvcihpZCwgaW5pdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VCaW5kaW5nTGlzdChraW5kLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBsaXN0ID0gW107XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgbGlzdC5wdXNoKHBhcnNlTGV4aWNhbEJpbmRpbmcoa2luZCwgb3B0aW9ucykpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgfSB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCk7XG5cbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VMZXhpY2FsRGVjbGFyYXRpb24ob3B0aW9ucykge1xuICAgICAgICB2YXIga2luZCwgZGVjbGFyYXRpb25zLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBraW5kID0gbGV4KCkudmFsdWU7XG4gICAgICAgIGFzc2VydChraW5kID09PSAnbGV0JyB8fCBraW5kID09PSAnY29uc3QnLCAnTGV4aWNhbCBkZWNsYXJhdGlvbiBtdXN0IGJlIGVpdGhlciBsZXQgb3IgY29uc3QnKTtcblxuICAgICAgICBkZWNsYXJhdGlvbnMgPSBwYXJzZUJpbmRpbmdMaXN0KGtpbmQsIG9wdGlvbnMpO1xuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hMZXhpY2FsRGVjbGFyYXRpb24oZGVjbGFyYXRpb25zLCBraW5kKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVJlc3RFbGVtZW50KCkge1xuICAgICAgICB2YXIgcGFyYW0sIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGxleCgpO1xuXG4gICAgICAgIGlmIChtYXRjaCgneycpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLk9iamVjdFBhdHRlcm5Bc1Jlc3RQYXJhbWV0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyYW0gPSBwYXJzZVZhcmlhYmxlSWRlbnRpZmllcigpO1xuXG4gICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLkRlZmF1bHRSZXN0UGFyYW1ldGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbWF0Y2goJyknKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5QYXJhbWV0ZXJBZnRlclJlc3RQYXJhbWV0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUmVzdEVsZW1lbnQocGFyYW0pO1xuICAgIH1cblxuICAgIC8vIDEyLjMgRW1wdHkgU3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUVtcHR5U3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgZXhwZWN0KCc7Jyk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEVtcHR5U3RhdGVtZW50KCk7XG4gICAgfVxuXG4gICAgLy8gMTIuNCBFeHByZXNzaW9uIFN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGV4cHIgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFeHByZXNzaW9uU3RhdGVtZW50KGV4cHIpO1xuICAgIH1cblxuICAgIC8vIDEyLjUgSWYgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUlmU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdpZicpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBjb25zZXF1ZW50ID0gcGFyc2VTdGF0ZW1lbnQoKTtcblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdlbHNlJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgYWx0ZXJuYXRlID0gcGFyc2VTdGF0ZW1lbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFsdGVybmF0ZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZlN0YXRlbWVudCh0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUpO1xuICAgIH1cblxuICAgIC8vIDEyLjYgSXRlcmF0aW9uIFN0YXRlbWVudHNcblxuICAgIGZ1bmN0aW9uIHBhcnNlRG9XaGlsZVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBib2R5LCB0ZXN0LCBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdkbycpO1xuXG4gICAgICAgIG9sZEluSXRlcmF0aW9uID0gc3RhdGUuaW5JdGVyYXRpb247XG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gdHJ1ZTtcblxuICAgICAgICBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTtcblxuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IG9sZEluSXRlcmF0aW9uO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3doaWxlJyk7XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgdGVzdCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIGlmIChtYXRjaCgnOycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaERvV2hpbGVTdGF0ZW1lbnQoYm9keSwgdGVzdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VXaGlsZVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciB0ZXN0LCBib2R5LCBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCd3aGlsZScpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBvbGRJbkl0ZXJhdGlvbiA9IHN0YXRlLmluSXRlcmF0aW9uO1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IHRydWU7XG5cbiAgICAgICAgYm9keSA9IHBhcnNlU3RhdGVtZW50KCk7XG5cbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hXaGlsZVN0YXRlbWVudCh0ZXN0LCBib2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUZvclN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBpbml0LCBpbml0U2VxLCBpbml0U3RhcnRUb2tlbiwgdGVzdCwgdXBkYXRlLCBsZWZ0LCByaWdodCwga2luZCwgZGVjbGFyYXRpb25zLFxuICAgICAgICAgICAgYm9keSwgb2xkSW5JdGVyYXRpb24sIHByZXZpb3VzQWxsb3dJbiA9IHN0YXRlLmFsbG93SW47XG5cbiAgICAgICAgaW5pdCA9IHRlc3QgPSB1cGRhdGUgPSBudWxsO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2ZvcicpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIGlmIChtYXRjaCgnOycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ3ZhcicpKSB7XG4gICAgICAgICAgICAgICAgaW5pdCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaW5pdCA9IGluaXQuZmluaXNoVmFyaWFibGVEZWNsYXJhdGlvbihwYXJzZVZhcmlhYmxlRGVjbGFyYXRpb25MaXN0KCkpO1xuICAgICAgICAgICAgICAgIHN0YXRlLmFsbG93SW4gPSBwcmV2aW91c0FsbG93SW47XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5pdC5kZWNsYXJhdGlvbnMubGVuZ3RoID09PSAxICYmIG1hdGNoS2V5d29yZCgnaW4nKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGluaXQ7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGVjdCgnOycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2hLZXl3b3JkKCdjb25zdCcpIHx8IG1hdGNoS2V5d29yZCgnbGV0JykpIHtcbiAgICAgICAgICAgICAgICBpbml0ID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgICAgICBraW5kID0gbGV4KCkudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZGVjbGFyYXRpb25zID0gcGFyc2VCaW5kaW5nTGlzdChraW5kLCB7aW5Gb3I6IHRydWV9KTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRlY2xhcmF0aW9ucy5sZW5ndGggPT09IDEgJiYgZGVjbGFyYXRpb25zWzBdLmluaXQgPT09IG51bGwgJiYgbWF0Y2hLZXl3b3JkKCdpbicpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSBpbml0LmZpbmlzaExleGljYWxEZWNsYXJhdGlvbihkZWNsYXJhdGlvbnMsIGtpbmQpO1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGluaXQ7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgICAgICAgICAgICAgaW5pdCA9IGluaXQuZmluaXNoTGV4aWNhbERlY2xhcmF0aW9uKGRlY2xhcmF0aW9ucywga2luZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbml0U3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaW5pdCA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHByZXZpb3VzQWxsb3dJbjtcblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2luJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0Fzc2lnbm1lbnRUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuSW52YWxpZExIU0luRm9ySW4pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihpbml0KTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGluaXQ7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0U2VxID0gW2luaXRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0U2VxLnB1c2goaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gbmV3IFdyYXBwaW5nTm9kZShpbml0U3RhcnRUb2tlbikuZmluaXNoU2VxdWVuY2VFeHByZXNzaW9uKGluaXRTZXEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV4cGVjdCgnOycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbGVmdCA9PT0gJ3VuZGVmaW5lZCcpIHtcblxuICAgICAgICAgICAgaWYgKCFtYXRjaCgnOycpKSB7XG4gICAgICAgICAgICAgICAgdGVzdCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXhwZWN0KCc7Jyk7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2goJyknKSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZSA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgb2xkSW5JdGVyYXRpb24gPSBzdGF0ZS5pbkl0ZXJhdGlvbjtcbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSB0cnVlO1xuXG4gICAgICAgIGJvZHkgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlU3RhdGVtZW50KTtcblxuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IG9sZEluSXRlcmF0aW9uO1xuXG4gICAgICAgIHJldHVybiAodHlwZW9mIGxlZnQgPT09ICd1bmRlZmluZWQnKSA/XG4gICAgICAgICAgICAgICAgbm9kZS5maW5pc2hGb3JTdGF0ZW1lbnQoaW5pdCwgdGVzdCwgdXBkYXRlLCBib2R5KSA6XG4gICAgICAgICAgICAgICAgbm9kZS5maW5pc2hGb3JJblN0YXRlbWVudChsZWZ0LCByaWdodCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gMTIuNyBUaGUgY29udGludWUgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNvbnRpbnVlU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGxhYmVsID0gbnVsbCwga2V5O1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2NvbnRpbnVlJyk7XG5cbiAgICAgICAgLy8gT3B0aW1pemUgdGhlIG1vc3QgY29tbW9uIGZvcm06ICdjb250aW51ZTsnLlxuICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQoc3RhcnRJbmRleCkgPT09IDB4M0IpIHtcbiAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICBpZiAoIXN0YXRlLmluSXRlcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsQ29udGludWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hDb250aW51ZVN0YXRlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNMaW5lVGVybWluYXRvcikge1xuICAgICAgICAgICAgaWYgKCFzdGF0ZS5pbkl0ZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbENvbnRpbnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQ29udGludWVTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGxhYmVsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICAgICAga2V5ID0gJyQnICsgbGFiZWwubmFtZTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLmxhYmVsU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Vbmtub3duTGFiZWwsIGxhYmVsLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIGlmIChsYWJlbCA9PT0gbnVsbCAmJiAhc3RhdGUuaW5JdGVyYXRpb24pIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbENvbnRpbnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaENvbnRpbnVlU3RhdGVtZW50KGxhYmVsKTtcbiAgICB9XG5cbiAgICAvLyAxMi44IFRoZSBicmVhayBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlQnJlYWtTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgbGFiZWwgPSBudWxsLCBrZXk7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnYnJlYWsnKTtcblxuICAgICAgICAvLyBDYXRjaCB0aGUgdmVyeSBjb21tb24gY2FzZSBmaXJzdDogaW1tZWRpYXRlbHkgYSBzZW1pY29sb24gKFUrMDAzQikuXG4gICAgICAgIGlmIChzb3VyY2UuY2hhckNvZGVBdChsYXN0SW5kZXgpID09PSAweDNCKSB7XG4gICAgICAgICAgICBsZXgoKTtcblxuICAgICAgICAgICAgaWYgKCEoc3RhdGUuaW5JdGVyYXRpb24gfHwgc3RhdGUuaW5Td2l0Y2gpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsQnJlYWspO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hCcmVha1N0YXRlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNMaW5lVGVybWluYXRvcikge1xuICAgICAgICAgICAgaWYgKCEoc3RhdGUuaW5JdGVyYXRpb24gfHwgc3RhdGUuaW5Td2l0Y2gpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsQnJlYWspO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hCcmVha1N0YXRlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgbGFiZWwgPSBwYXJzZVZhcmlhYmxlSWRlbnRpZmllcigpO1xuXG4gICAgICAgICAgICBrZXkgPSAnJCcgKyBsYWJlbC5uYW1lO1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhdGUubGFiZWxTZXQsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlVua25vd25MYWJlbCwgbGFiZWwubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgaWYgKGxhYmVsID09PSBudWxsICYmICEoc3RhdGUuaW5JdGVyYXRpb24gfHwgc3RhdGUuaW5Td2l0Y2gpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxCcmVhayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hCcmVha1N0YXRlbWVudChsYWJlbCk7XG4gICAgfVxuXG4gICAgLy8gMTIuOSBUaGUgcmV0dXJuIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VSZXR1cm5TdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYXJndW1lbnQgPSBudWxsO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3JldHVybicpO1xuXG4gICAgICAgIGlmICghc3RhdGUuaW5GdW5jdGlvbkJvZHkpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuSWxsZWdhbFJldHVybik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAncmV0dXJuJyBmb2xsb3dlZCBieSBhIHNwYWNlIGFuZCBhbiBpZGVudGlmaWVyIGlzIHZlcnkgY29tbW9uLlxuICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQobGFzdEluZGV4KSA9PT0gMHgyMCkge1xuICAgICAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGxhc3RJbmRleCArIDEpKSkge1xuICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFJldHVyblN0YXRlbWVudChhcmd1bWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIC8vIEhBQ0tcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFJldHVyblN0YXRlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnfScpICYmIGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgICAgICBhcmd1bWVudCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFJldHVyblN0YXRlbWVudChhcmd1bWVudCk7XG4gICAgfVxuXG4gICAgLy8gMTIuMTAgVGhlIHdpdGggc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZVdpdGhTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgb2JqZWN0LCBib2R5O1xuXG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0TW9kZVdpdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnd2l0aCcpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIG9iamVjdCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZVN0YXRlbWVudCgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFdpdGhTdGF0ZW1lbnQob2JqZWN0LCBib2R5KTtcbiAgICB9XG5cbiAgICAvLyAxMi4xMCBUaGUgc3dpdGggc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZVN3aXRjaENhc2UoKSB7XG4gICAgICAgIHZhciB0ZXN0LCBjb25zZXF1ZW50ID0gW10sIHN0YXRlbWVudCwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZGVmYXVsdCcpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHRlc3QgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwZWN0S2V5d29yZCgnY2FzZScpO1xuICAgICAgICAgICAgdGVzdCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdCgnOicpO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSB8fCBtYXRjaEtleXdvcmQoJ2RlZmF1bHQnKSB8fCBtYXRjaEtleXdvcmQoJ2Nhc2UnKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgY29uc2VxdWVudC5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hTd2l0Y2hDYXNlKHRlc3QsIGNvbnNlcXVlbnQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlU3dpdGNoU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGRpc2NyaW1pbmFudCwgY2FzZXMsIGNsYXVzZSwgb2xkSW5Td2l0Y2gsIGRlZmF1bHRGb3VuZDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdzd2l0Y2gnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBkaXNjcmltaW5hbnQgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICBjYXNlcyA9IFtdO1xuXG4gICAgICAgIGlmIChtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFN3aXRjaFN0YXRlbWVudChkaXNjcmltaW5hbnQsIGNhc2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9sZEluU3dpdGNoID0gc3RhdGUuaW5Td2l0Y2g7XG4gICAgICAgIHN0YXRlLmluU3dpdGNoID0gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdEZvdW5kID0gZmFsc2U7XG5cbiAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGF1c2UgPSBwYXJzZVN3aXRjaENhc2UoKTtcbiAgICAgICAgICAgIGlmIChjbGF1c2UudGVzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5NdWx0aXBsZURlZmF1bHRzSW5Td2l0Y2gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0Rm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZXMucHVzaChjbGF1c2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUuaW5Td2l0Y2ggPSBvbGRJblN3aXRjaDtcblxuICAgICAgICBleHBlY3QoJ30nKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hTd2l0Y2hTdGF0ZW1lbnQoZGlzY3JpbWluYW50LCBjYXNlcyk7XG4gICAgfVxuXG4gICAgLy8gMTIuMTMgVGhlIHRocm93IHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VUaHJvd1N0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBhcmd1bWVudDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCd0aHJvdycpO1xuXG4gICAgICAgIGlmIChoYXNMaW5lVGVybWluYXRvcikge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5OZXdsaW5lQWZ0ZXJUaHJvdyk7XG4gICAgICAgIH1cblxuICAgICAgICBhcmd1bWVudCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUaHJvd1N0YXRlbWVudChhcmd1bWVudCk7XG4gICAgfVxuXG4gICAgLy8gMTIuMTQgVGhlIHRyeSBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlQ2F0Y2hDbGF1c2UoKSB7XG4gICAgICAgIHZhciBwYXJhbSwgYm9keSwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnY2F0Y2gnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcbiAgICAgICAgaWYgKG1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgIH1cblxuICAgICAgICBwYXJhbSA9IHBhcnNlUGF0dGVybigpO1xuXG4gICAgICAgIC8vIDEyLjE0LjFcbiAgICAgICAgaWYgKHN0cmljdCAmJiBpc1Jlc3RyaWN0ZWRXb3JkKHBhcmFtLm5hbWUpKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLlN0cmljdENhdGNoVmFyaWFibGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgIGJvZHkgPSBwYXJzZUJsb2NrKCk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaENhdGNoQ2xhdXNlKHBhcmFtLCBib2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVRyeVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBibG9jaywgaGFuZGxlciA9IG51bGwsIGZpbmFsaXplciA9IG51bGw7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgndHJ5Jyk7XG5cbiAgICAgICAgYmxvY2sgPSBwYXJzZUJsb2NrKCk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnY2F0Y2gnKSkge1xuICAgICAgICAgICAgaGFuZGxlciA9IHBhcnNlQ2F0Y2hDbGF1c2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2ZpbmFsbHknKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBmaW5hbGl6ZXIgPSBwYXJzZUJsb2NrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhhbmRsZXIgJiYgIWZpbmFsaXplcikge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Ob0NhdGNoT3JGaW5hbGx5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFRyeVN0YXRlbWVudChibG9jaywgaGFuZGxlciwgZmluYWxpemVyKTtcbiAgICB9XG5cbiAgICAvLyAxMi4xNSBUaGUgZGVidWdnZXIgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZURlYnVnZ2VyU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZGVidWdnZXInKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRGVidWdnZXJTdGF0ZW1lbnQoKTtcbiAgICB9XG5cbiAgICAvLyAxMiBTdGF0ZW1lbnRzXG5cbiAgICBmdW5jdGlvbiBwYXJzZVN0YXRlbWVudCgpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBsb29rYWhlYWQudHlwZSxcbiAgICAgICAgICAgIGV4cHIsXG4gICAgICAgICAgICBsYWJlbGVkQm9keSxcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIG5vZGU7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09IFRva2VuLkVPRikge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlID09PSBUb2tlbi5QdW5jdHVhdG9yICYmIGxvb2thaGVhZC52YWx1ZSA9PT0gJ3snKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VCbG9jaygpO1xuICAgICAgICB9XG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSB0cnVlO1xuICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvcikge1xuICAgICAgICAgICAgc3dpdGNoIChsb29rYWhlYWQudmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgJzsnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUVtcHR5U3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnKCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRXhwcmVzc2lvblN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVG9rZW4uS2V5d29yZCkge1xuICAgICAgICAgICAgc3dpdGNoIChsb29rYWhlYWQudmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2JyZWFrJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VCcmVha1N0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRpbnVlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VDb250aW51ZVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ2RlYnVnZ2VyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VEZWJ1Z2dlclN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ2RvJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VEb1doaWxlU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnZm9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VGb3JTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25EZWNsYXJhdGlvbihub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ2lmJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJZlN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ3JldHVybic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmV0dXJuU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VTd2l0Y2hTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICd0aHJvdyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlVGhyb3dTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICd0cnknOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRyeVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ3Zhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlVmFyaWFibGVTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICd3aGlsZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlV2hpbGVTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICd3aXRoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VXaXRoU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cHIgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICAvLyAxMi4xMiBMYWJlbGxlZCBTdGF0ZW1lbnRzXG4gICAgICAgIGlmICgoZXhwci50eXBlID09PSBTeW50YXguSWRlbnRpZmllcikgJiYgbWF0Y2goJzonKSkge1xuICAgICAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgICAgIGtleSA9ICckJyArIGV4cHIubmFtZTtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhdGUubGFiZWxTZXQsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlJlZGVjbGFyYXRpb24sICdMYWJlbCcsIGV4cHIubmFtZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0YXRlLmxhYmVsU2V0W2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgbGFiZWxlZEJvZHkgPSBwYXJzZVN0YXRlbWVudCgpO1xuICAgICAgICAgICAgZGVsZXRlIHN0YXRlLmxhYmVsU2V0W2tleV07XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hMYWJlbGVkU3RhdGVtZW50KGV4cHIsIGxhYmVsZWRCb2R5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFeHByZXNzaW9uU3RhdGVtZW50KGV4cHIpO1xuICAgIH1cblxuICAgIC8vIDEzIEZ1bmN0aW9uIERlZmluaXRpb25cblxuICAgIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25Tb3VyY2VFbGVtZW50cygpIHtcbiAgICAgICAgdmFyIHN0YXRlbWVudCwgYm9keSA9IFtdLCB0b2tlbiwgZGlyZWN0aXZlLCBmaXJzdFJlc3RyaWN0ZWQsXG4gICAgICAgICAgICBvbGRMYWJlbFNldCwgb2xkSW5JdGVyYXRpb24sIG9sZEluU3dpdGNoLCBvbGRJbkZ1bmN0aW9uQm9keSwgb2xkUGFyZW50aGVzaXNDb3VudCxcbiAgICAgICAgICAgIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdCgneycpO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgIT09IFRva2VuLlN0cmluZ0xpdGVyYWwpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgICAgICBzdGF0ZW1lbnQgPSBwYXJzZVN0YXRlbWVudExpc3RJdGVtKCk7XG4gICAgICAgICAgICBib2R5LnB1c2goc3RhdGVtZW50KTtcbiAgICAgICAgICAgIGlmIChzdGF0ZW1lbnQuZXhwcmVzc2lvbi50eXBlICE9PSBTeW50YXguTGl0ZXJhbCkge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IGRpcmVjdGl2ZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlyZWN0aXZlID0gc291cmNlLnNsaWNlKHRva2VuLnN0YXJ0ICsgMSwgdG9rZW4uZW5kIC0gMSk7XG4gICAgICAgICAgICBpZiAoZGlyZWN0aXZlID09PSAndXNlIHN0cmljdCcpIHtcbiAgICAgICAgICAgICAgICBzdHJpY3QgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oZmlyc3RSZXN0cmljdGVkLCBNZXNzYWdlcy5TdHJpY3RPY3RhbExpdGVyYWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFmaXJzdFJlc3RyaWN0ZWQgJiYgdG9rZW4ub2N0YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkID0gdG9rZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgb2xkTGFiZWxTZXQgPSBzdGF0ZS5sYWJlbFNldDtcbiAgICAgICAgb2xkSW5JdGVyYXRpb24gPSBzdGF0ZS5pbkl0ZXJhdGlvbjtcbiAgICAgICAgb2xkSW5Td2l0Y2ggPSBzdGF0ZS5pblN3aXRjaDtcbiAgICAgICAgb2xkSW5GdW5jdGlvbkJvZHkgPSBzdGF0ZS5pbkZ1bmN0aW9uQm9keTtcbiAgICAgICAgb2xkUGFyZW50aGVzaXNDb3VudCA9IHN0YXRlLnBhcmVudGhlc2l6ZWRDb3VudDtcblxuICAgICAgICBzdGF0ZS5sYWJlbFNldCA9IHt9O1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5pblN3aXRjaCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5pbkZ1bmN0aW9uQm9keSA9IHRydWU7XG4gICAgICAgIHN0YXRlLnBhcmVudGhlc2l6ZWRDb3VudCA9IDA7XG5cbiAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib2R5LnB1c2gocGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIHN0YXRlLmxhYmVsU2V0ID0gb2xkTGFiZWxTZXQ7XG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gb2xkSW5JdGVyYXRpb247XG4gICAgICAgIHN0YXRlLmluU3dpdGNoID0gb2xkSW5Td2l0Y2g7XG4gICAgICAgIHN0YXRlLmluRnVuY3Rpb25Cb2R5ID0gb2xkSW5GdW5jdGlvbkJvZHk7XG4gICAgICAgIHN0YXRlLnBhcmVudGhlc2l6ZWRDb3VudCA9IG9sZFBhcmVudGhlc2lzQ291bnQ7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQmxvY2tTdGF0ZW1lbnQoYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGVQYXJhbShvcHRpb25zLCBwYXJhbSwgbmFtZSkge1xuICAgICAgICB2YXIga2V5ID0gJyQnICsgbmFtZTtcbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnN0cmljdGVkID0gcGFyYW07XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5tZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UGFyYW1OYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLnBhcmFtU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFBhcmFtRHVwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIGlmIChpc1Jlc3RyaWN0ZWRXb3JkKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQgPSBwYXJhbTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSBNZXNzYWdlcy5TdHJpY3RQYXJhbU5hbWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaWN0TW9kZVJlc2VydmVkV29yZChuYW1lKSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlyc3RSZXN0cmljdGVkID0gcGFyYW07XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5tZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UmVzZXJ2ZWRXb3JkO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucy5wYXJhbVNldCwga2V5KSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlyc3RSZXN0cmljdGVkID0gcGFyYW07XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5tZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UGFyYW1EdXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMucGFyYW1TZXRba2V5XSA9IHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQYXJhbShvcHRpb25zKSB7XG4gICAgICAgIHZhciB0b2tlbiwgcGFyYW0sIGRlZjtcblxuICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgaWYgKHRva2VuLnZhbHVlID09PSAnLi4uJykge1xuICAgICAgICAgICAgcGFyYW0gPSBwYXJzZVJlc3RFbGVtZW50KCk7XG4gICAgICAgICAgICB2YWxpZGF0ZVBhcmFtKG9wdGlvbnMsIHBhcmFtLmFyZ3VtZW50LCBwYXJhbS5hcmd1bWVudC5uYW1lKTtcbiAgICAgICAgICAgIG9wdGlvbnMucGFyYW1zLnB1c2gocGFyYW0pO1xuICAgICAgICAgICAgb3B0aW9ucy5kZWZhdWx0cy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyYW0gPSBwYXJzZVBhdHRlcm5XaXRoRGVmYXVsdCgpO1xuICAgICAgICB2YWxpZGF0ZVBhcmFtKG9wdGlvbnMsIHRva2VuLCB0b2tlbi52YWx1ZSk7XG5cbiAgICAgICAgaWYgKHBhcmFtLnR5cGUgPT09IFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybikge1xuICAgICAgICAgICAgZGVmID0gcGFyYW0ucmlnaHQ7XG4gICAgICAgICAgICBwYXJhbSA9IHBhcmFtLmxlZnQ7XG4gICAgICAgICAgICArK29wdGlvbnMuZGVmYXVsdENvdW50O1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucy5wYXJhbXMucHVzaChwYXJhbSk7XG4gICAgICAgIG9wdGlvbnMuZGVmYXVsdHMucHVzaChkZWYpO1xuXG4gICAgICAgIHJldHVybiAhbWF0Y2goJyknKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVBhcmFtcyhmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgdmFyIG9wdGlvbnM7XG5cbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHBhcmFtczogW10sXG4gICAgICAgICAgICBkZWZhdWx0Q291bnQ6IDAsXG4gICAgICAgICAgICBkZWZhdWx0czogW10sXG4gICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQ6IGZpcnN0UmVzdHJpY3RlZFxuICAgICAgICB9O1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIGlmICghbWF0Y2goJyknKSkge1xuICAgICAgICAgICAgb3B0aW9ucy5wYXJhbVNldCA9IHt9O1xuICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnNlUGFyYW0ob3B0aW9ucykpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4cGVjdCgnLCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZGVmYXVsdENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICBvcHRpb25zLmRlZmF1bHRzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zLnBhcmFtcyxcbiAgICAgICAgICAgIGRlZmF1bHRzOiBvcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAgICAgc3RyaWN0ZWQ6IG9wdGlvbnMuc3RyaWN0ZWQsXG4gICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQ6IG9wdGlvbnMuZmlyc3RSZXN0cmljdGVkLFxuICAgICAgICAgICAgbWVzc2FnZTogb3B0aW9ucy5tZXNzYWdlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VGdW5jdGlvbkRlY2xhcmF0aW9uKG5vZGUsIGlkZW50aWZpZXJJc09wdGlvbmFsKSB7XG4gICAgICAgIHZhciBpZCA9IG51bGwsIHBhcmFtcyA9IFtdLCBkZWZhdWx0cyA9IFtdLCBib2R5LCB0b2tlbiwgc3RyaWN0ZWQsIHRtcCwgZmlyc3RSZXN0cmljdGVkLCBtZXNzYWdlLCBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdmdW5jdGlvbicpO1xuICAgICAgICBpZiAoIWlkZW50aWZpZXJJc09wdGlvbmFsIHx8ICFtYXRjaCgnKCcpKSB7XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIGlkID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlN0cmljdEZ1bmN0aW9uTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkID0gdG9rZW47XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UmVzZXJ2ZWRXb3JkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRtcCA9IHBhcnNlUGFyYW1zKGZpcnN0UmVzdHJpY3RlZCk7XG4gICAgICAgIHBhcmFtcyA9IHRtcC5wYXJhbXM7XG4gICAgICAgIGRlZmF1bHRzID0gdG1wLmRlZmF1bHRzO1xuICAgICAgICBzdHJpY3RlZCA9IHRtcC5zdHJpY3RlZDtcbiAgICAgICAgZmlyc3RSZXN0cmljdGVkID0gdG1wLmZpcnN0UmVzdHJpY3RlZDtcbiAgICAgICAgaWYgKHRtcC5tZXNzYWdlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdG1wLm1lc3NhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c1N0cmljdCA9IHN0cmljdDtcbiAgICAgICAgYm9keSA9IHBhcnNlRnVuY3Rpb25Tb3VyY2VFbGVtZW50cygpO1xuICAgICAgICBpZiAoc3RyaWN0ICYmIGZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oZmlyc3RSZXN0cmljdGVkLCBtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaWN0ICYmIHN0cmljdGVkKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RyaWN0ID0gcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRnVuY3Rpb25EZWNsYXJhdGlvbihpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VGdW5jdGlvbkV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciB0b2tlbiwgaWQgPSBudWxsLCBzdHJpY3RlZCwgZmlyc3RSZXN0cmljdGVkLCBtZXNzYWdlLCB0bXAsXG4gICAgICAgICAgICBwYXJhbXMgPSBbXSwgZGVmYXVsdHMgPSBbXSwgYm9keSwgcHJldmlvdXNTdHJpY3QsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2Z1bmN0aW9uJyk7XG5cbiAgICAgICAgaWYgKCFtYXRjaCgnKCcpKSB7XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIGlkID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlN0cmljdEZ1bmN0aW9uTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkID0gdG9rZW47XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UmVzZXJ2ZWRXb3JkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRtcCA9IHBhcnNlUGFyYW1zKGZpcnN0UmVzdHJpY3RlZCk7XG4gICAgICAgIHBhcmFtcyA9IHRtcC5wYXJhbXM7XG4gICAgICAgIGRlZmF1bHRzID0gdG1wLmRlZmF1bHRzO1xuICAgICAgICBzdHJpY3RlZCA9IHRtcC5zdHJpY3RlZDtcbiAgICAgICAgZmlyc3RSZXN0cmljdGVkID0gdG1wLmZpcnN0UmVzdHJpY3RlZDtcbiAgICAgICAgaWYgKHRtcC5tZXNzYWdlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdG1wLm1lc3NhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c1N0cmljdCA9IHN0cmljdDtcbiAgICAgICAgYm9keSA9IHBhcnNlRnVuY3Rpb25Tb3VyY2VFbGVtZW50cygpO1xuICAgICAgICBpZiAoc3RyaWN0ICYmIGZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oZmlyc3RSZXN0cmljdGVkLCBtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaWN0ICYmIHN0cmljdGVkKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RyaWN0ID0gcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRnVuY3Rpb25FeHByZXNzaW9uKGlkLCBwYXJhbXMsIGRlZmF1bHRzLCBib2R5KTtcbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIHBhcnNlQ2xhc3NCb2R5KCkge1xuICAgICAgICB2YXIgY2xhc3NCb2R5LCB0b2tlbiwgaXNTdGF0aWMsIGhhc0NvbnN0cnVjdG9yID0gZmFsc2UsIGJvZHksIG1ldGhvZCwgY29tcHV0ZWQsIGtleTtcblxuICAgICAgICBjbGFzc0JvZHkgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdCgneycpO1xuICAgICAgICBib2R5ID0gW107XG4gICAgICAgIHdoaWxlICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCc7JykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgICAgICBpc1N0YXRpYyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgaWYgKGtleS5uYW1lID09PSAnc3RhdGljJyAmJiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgICAgICAgICAgaXNTdGF0aWMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjb21wdXRlZCA9IG1hdGNoKCdbJyk7XG4gICAgICAgICAgICAgICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWV0aG9kID0gdHJ5UGFyc2VNZXRob2REZWZpbml0aW9uKHRva2VuLCBrZXksIGNvbXB1dGVkLCBtZXRob2QpO1xuICAgICAgICAgICAgICAgIGlmIChtZXRob2QpIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kWydzdGF0aWMnXSA9IGlzU3RhdGljO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kLmtpbmQgPT09ICdpbml0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLmtpbmQgPSAnbWV0aG9kJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU3RhdGljKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1ldGhvZC5jb21wdXRlZCAmJiAobWV0aG9kLmtleS5uYW1lIHx8IG1ldGhvZC5rZXkudmFsdWUudG9TdHJpbmcoKSkgPT09ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kLmtpbmQgIT09ICdtZXRob2QnIHx8ICFtZXRob2QubWV0aG9kIHx8IG1ldGhvZC52YWx1ZS5nZW5lcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLkNvbnN0cnVjdG9yU3BlY2lhbE1ldGhvZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNDb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuRHVwbGljYXRlQ29uc3RydWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NvbnN0cnVjdG9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLmtpbmQgPSAnY29uc3RydWN0b3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtZXRob2QuY29tcHV0ZWQgJiYgKG1ldGhvZC5rZXkubmFtZSB8fCBtZXRob2Qua2V5LnZhbHVlLnRvU3RyaW5nKCkpID09PSAncHJvdG90eXBlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdGF0aWNQcm90b3R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZC50eXBlID0gU3ludGF4Lk1ldGhvZERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBtZXRob2QubWV0aG9kO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbWV0aG9kLnNob3J0aGFuZDtcbiAgICAgICAgICAgICAgICAgICAgYm9keS5wdXNoKG1ldGhvZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV4KCk7XG4gICAgICAgIHJldHVybiBjbGFzc0JvZHkuZmluaXNoQ2xhc3NCb2R5KGJvZHkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlQ2xhc3NEZWNsYXJhdGlvbihpZGVudGlmaWVySXNPcHRpb25hbCkge1xuICAgICAgICB2YXIgaWQgPSBudWxsLCBzdXBlckNsYXNzID0gbnVsbCwgY2xhc3NOb2RlID0gbmV3IE5vZGUoKSwgY2xhc3NCb2R5LCBwcmV2aW91c1N0cmljdCA9IHN0cmljdDtcbiAgICAgICAgc3RyaWN0ID0gdHJ1ZTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdjbGFzcycpO1xuXG4gICAgICAgIGlmICghaWRlbnRpZmllcklzT3B0aW9uYWwgfHwgbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlkID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2V4dGVuZHMnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBzdXBlckNsYXNzID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUxlZnRIYW5kU2lkZUV4cHJlc3Npb25BbGxvd0NhbGwpO1xuICAgICAgICB9XG4gICAgICAgIGNsYXNzQm9keSA9IHBhcnNlQ2xhc3NCb2R5KCk7XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBjbGFzc05vZGUuZmluaXNoQ2xhc3NEZWNsYXJhdGlvbihpZCwgc3VwZXJDbGFzcywgY2xhc3NCb2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNsYXNzRXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIGlkID0gbnVsbCwgc3VwZXJDbGFzcyA9IG51bGwsIGNsYXNzTm9kZSA9IG5ldyBOb2RlKCksIGNsYXNzQm9keSwgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIHN0cmljdCA9IHRydWU7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnY2xhc3MnKTtcblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlkID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2V4dGVuZHMnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBzdXBlckNsYXNzID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUxlZnRIYW5kU2lkZUV4cHJlc3Npb25BbGxvd0NhbGwpO1xuICAgICAgICB9XG4gICAgICAgIGNsYXNzQm9keSA9IHBhcnNlQ2xhc3NCb2R5KCk7XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBjbGFzc05vZGUuZmluaXNoQ2xhc3NFeHByZXNzaW9uKGlkLCBzdXBlckNsYXNzLCBjbGFzc0JvZHkpO1xuICAgIH1cblxuICAgIC8vIE1vZHVsZXMgZ3JhbW1hciBmcm9tOlxuICAgIC8vIHBlb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbFxuXG4gICAgZnVuY3Rpb24gcGFyc2VNb2R1bGVTcGVjaWZpZXIoKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgIT09IFRva2VuLlN0cmluZ0xpdGVyYWwpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSW52YWxpZE1vZHVsZVNwZWNpZmllcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoTGl0ZXJhbChsZXgoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VFeHBvcnRTcGVjaWZpZXIoKSB7XG4gICAgICAgIHZhciBleHBvcnRlZCwgbG9jYWwsIG5vZGUgPSBuZXcgTm9kZSgpLCBkZWY7XG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2RlZmF1bHQnKSkge1xuICAgICAgICAgICAgLy8gZXhwb3J0IHtkZWZhdWx0fSBmcm9tICdzb21ldGhpbmcnO1xuICAgICAgICAgICAgZGVmID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgbG9jYWwgPSBkZWYuZmluaXNoSWRlbnRpZmllcignZGVmYXVsdCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWwgPSBwYXJzZVZhcmlhYmxlSWRlbnRpZmllcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdhcycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGV4cG9ydGVkID0gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0U3BlY2lmaWVyKGxvY2FsLCBleHBvcnRlZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgdmFyIGRlY2xhcmF0aW9uID0gbnVsbCxcbiAgICAgICAgICAgIGlzRXhwb3J0RnJvbUlkZW50aWZpZXIsXG4gICAgICAgICAgICBzcmMgPSBudWxsLCBzcGVjaWZpZXJzID0gW107XG5cbiAgICAgICAgLy8gbm9uLWRlZmF1bHQgZXhwb3J0XG4gICAgICAgIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uS2V5d29yZCkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gZXhwb3J0IHZhciBmID0gMTtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbGV0JzpcbiAgICAgICAgICAgICAgICBjYXNlICdjb25zdCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndmFyJzpcbiAgICAgICAgICAgICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGlvbiA9IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0TmFtZWREZWNsYXJhdGlvbihkZWNsYXJhdGlvbiwgc3BlY2lmaWVycywgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ3snKTtcbiAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgaXNFeHBvcnRGcm9tSWRlbnRpZmllciA9IGlzRXhwb3J0RnJvbUlkZW50aWZpZXIgfHwgbWF0Y2hLZXl3b3JkKCdkZWZhdWx0Jyk7XG4gICAgICAgICAgICAgICAgc3BlY2lmaWVycy5wdXNoKHBhcnNlRXhwb3J0U3BlY2lmaWVyKCkpO1xuICAgICAgICAgICAgfSB3aGlsZSAobWF0Y2goJywnKSAmJiBsZXgoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG5cbiAgICAgICAgaWYgKG1hdGNoQ29udGV4dHVhbEtleXdvcmQoJ2Zyb20nKSkge1xuICAgICAgICAgICAgLy8gY292ZXJpbmc6XG4gICAgICAgICAgICAvLyBleHBvcnQge2RlZmF1bHR9IGZyb20gJ2Zvbyc7XG4gICAgICAgICAgICAvLyBleHBvcnQge2Zvb30gZnJvbSAnZm9vJztcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgc3JjID0gcGFyc2VNb2R1bGVTcGVjaWZpZXIoKTtcbiAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0V4cG9ydEZyb21JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAvLyBjb3ZlcmluZzpcbiAgICAgICAgICAgIC8vIGV4cG9ydCB7ZGVmYXVsdH07IC8vIG1pc3NpbmcgZnJvbUNsYXVzZVxuICAgICAgICAgICAgdGhyb3dFcnJvcihsb29rYWhlYWQudmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICBNZXNzYWdlcy5VbmV4cGVjdGVkVG9rZW4gOiBNZXNzYWdlcy5NaXNzaW5nRnJvbUNsYXVzZSwgbG9va2FoZWFkLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGNvdmVyXG4gICAgICAgICAgICAvLyBleHBvcnQge2Zvb307XG4gICAgICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0TmFtZWREZWNsYXJhdGlvbihkZWNsYXJhdGlvbiwgc3BlY2lmaWVycywgc3JjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIHZhciBkZWNsYXJhdGlvbiA9IG51bGwsXG4gICAgICAgICAgICBleHByZXNzaW9uID0gbnVsbDtcblxuICAgICAgICAvLyBjb3ZlcnM6XG4gICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0IC4uLlxuICAgICAgICBleHBlY3RLZXl3b3JkKCdkZWZhdWx0Jyk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZnVuY3Rpb24nKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9vICgpIHt9XG4gICAgICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoKSB7fVxuICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24obmV3IE5vZGUoKSwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24oZGVjbGFyYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2NsYXNzJykpIHtcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uID0gcGFyc2VDbGFzc0RlY2xhcmF0aW9uKHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdmcm9tJykpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuLCBsb29rYWhlYWQudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCB7fTtcbiAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQgW107XG4gICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0ICgxICsgMik7XG4gICAgICAgIGlmIChtYXRjaCgneycpKSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gcGFyc2VPYmplY3RJbml0aWFsaXNlcigpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCdbJykpIHtcbiAgICAgICAgICAgIGV4cHJlc3Npb24gPSBwYXJzZUFycmF5SW5pdGlhbGlzZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHJlc3Npb24gPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24oZXhwcmVzc2lvbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VFeHBvcnRBbGxEZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIHZhciBzcmM7XG5cbiAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAvLyBleHBvcnQgKiBmcm9tICdmb28nO1xuICAgICAgICBleHBlY3QoJyonKTtcbiAgICAgICAgaWYgKCFtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdmcm9tJykpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IobG9va2FoZWFkLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuIDogTWVzc2FnZXMuTWlzc2luZ0Zyb21DbGF1c2UsIGxvb2thaGVhZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV4KCk7XG4gICAgICAgIHNyYyA9IHBhcnNlTW9kdWxlU3BlY2lmaWVyKCk7XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFeHBvcnRBbGxEZWNsYXJhdGlvbihzcmMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IE5vZGUoKTtcbiAgICAgICAgaWYgKHN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxFeHBvcnREZWNsYXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdleHBvcnQnKTtcblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2goJyonKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRXhwb3J0QWxsRGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnNlRXhwb3J0TmFtZWREZWNsYXJhdGlvbihub2RlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUltcG9ydFNwZWNpZmllcigpIHtcbiAgICAgICAgLy8gaW1wb3J0IHs8Zm9vIGFzIGJhcj59IC4uLjtcbiAgICAgICAgdmFyIGxvY2FsLCBpbXBvcnRlZCwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaW1wb3J0ZWQgPSBwYXJzZU5vbkNvbXB1dGVkUHJvcGVydHkoKTtcbiAgICAgICAgaWYgKG1hdGNoQ29udGV4dHVhbEtleXdvcmQoJ2FzJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgbG9jYWwgPSBwYXJzZVZhcmlhYmxlSWRlbnRpZmllcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSW1wb3J0U3BlY2lmaWVyKGxvY2FsLCBpbXBvcnRlZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VOYW1lZEltcG9ydHMoKSB7XG4gICAgICAgIHZhciBzcGVjaWZpZXJzID0gW107XG4gICAgICAgIC8vIHtmb28sIGJhciBhcyBiYXN9XG4gICAgICAgIGV4cGVjdCgneycpO1xuICAgICAgICBpZiAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBzcGVjaWZpZXJzLnB1c2gocGFyc2VJbXBvcnRTcGVjaWZpZXIoKSk7XG4gICAgICAgICAgICB9IHdoaWxlIChtYXRjaCgnLCcpICYmIGxleCgpKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJ30nKTtcbiAgICAgICAgcmV0dXJuIHNwZWNpZmllcnM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnREZWZhdWx0U3BlY2lmaWVyKCkge1xuICAgICAgICAvLyBpbXBvcnQgPGZvbz4gLi4uO1xuICAgICAgICB2YXIgbG9jYWwsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGxvY2FsID0gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSW1wb3J0RGVmYXVsdFNwZWNpZmllcihsb2NhbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIoKSB7XG4gICAgICAgIC8vIGltcG9ydCA8KiBhcyBmb28+IC4uLjtcbiAgICAgICAgdmFyIGxvY2FsLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJyonKTtcbiAgICAgICAgaWYgKCFtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdhcycpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLk5vQXNBZnRlckltcG9ydE5hbWVzcGFjZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV4KCk7XG4gICAgICAgIGxvY2FsID0gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKGxvY2FsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUltcG9ydERlY2xhcmF0aW9uKCkge1xuICAgICAgICB2YXIgc3BlY2lmaWVycywgc3JjLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZiAoc3RhdGUuaW5GdW5jdGlvbkJvZHkpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbEltcG9ydERlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2ltcG9ydCcpO1xuICAgICAgICBzcGVjaWZpZXJzID0gW107XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICAvLyBjb3ZlcnM6XG4gICAgICAgICAgICAvLyBpbXBvcnQgJ2Zvbyc7XG4gICAgICAgICAgICBzcmMgPSBwYXJzZU1vZHVsZVNwZWNpZmllcigpO1xuICAgICAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSW1wb3J0RGVjbGFyYXRpb24oc3BlY2lmaWVycywgc3JjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykgJiYgaXNJZGVudGlmaWVyTmFtZShsb29rYWhlYWQpKSB7XG4gICAgICAgICAgICAvLyBjb3ZlcnM6XG4gICAgICAgICAgICAvLyBpbXBvcnQgZm9vXG4gICAgICAgICAgICAvLyBpbXBvcnQgZm9vLCAuLi5cbiAgICAgICAgICAgIHNwZWNpZmllcnMucHVzaChwYXJzZUltcG9ydERlZmF1bHRTcGVjaWZpZXIoKSk7XG4gICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCgnKicpKSB7XG4gICAgICAgICAgICAvLyBjb3ZlcnM6XG4gICAgICAgICAgICAvLyBpbXBvcnQgZm9vLCAqIGFzIGZvb1xuICAgICAgICAgICAgLy8gaW1wb3J0ICogYXMgZm9vXG4gICAgICAgICAgICBzcGVjaWZpZXJzLnB1c2gocGFyc2VJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0IGZvbywge2Jhcn1cbiAgICAgICAgICAgIC8vIGltcG9ydCB7YmFyfVxuICAgICAgICAgICAgc3BlY2lmaWVycyA9IHNwZWNpZmllcnMuY29uY2F0KHBhcnNlTmFtZWRJbXBvcnRzKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdmcm9tJykpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IobG9va2FoZWFkLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuIDogTWVzc2FnZXMuTWlzc2luZ0Zyb21DbGF1c2UsIGxvb2thaGVhZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV4KCk7XG4gICAgICAgIHNyYyA9IHBhcnNlTW9kdWxlU3BlY2lmaWVyKCk7XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJbXBvcnREZWNsYXJhdGlvbihzcGVjaWZpZXJzLCBzcmMpO1xuICAgIH1cblxuICAgIC8vIDE0IFByb2dyYW1cblxuICAgIGZ1bmN0aW9uIHBhcnNlU2NyaXB0Qm9keSgpIHtcbiAgICAgICAgdmFyIHN0YXRlbWVudCwgYm9keSA9IFtdLCB0b2tlbiwgZGlyZWN0aXZlLCBmaXJzdFJlc3RyaWN0ZWQ7XG5cbiAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IFRva2VuLlN0cmluZ0xpdGVyYWwpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgYm9keS5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgICAgICBpZiAoc3RhdGVtZW50LmV4cHJlc3Npb24udHlwZSAhPT0gU3ludGF4LkxpdGVyYWwpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCBkaXJlY3RpdmVcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpcmVjdGl2ZSA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCArIDEsIHRva2VuLmVuZCAtIDEpO1xuICAgICAgICAgICAgaWYgKGRpcmVjdGl2ZSA9PT0gJ3VzZSBzdHJpY3QnKSB7XG4gICAgICAgICAgICAgICAgc3RyaWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgTWVzc2FnZXMuU3RyaWN0T2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghZmlyc3RSZXN0cmljdGVkICYmIHRva2VuLm9jdGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBzdGF0ZW1lbnQgPSBwYXJzZVN0YXRlbWVudExpc3RJdGVtKCk7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhdGVtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9keS5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQcm9ncmFtKCkge1xuICAgICAgICB2YXIgYm9keSwgbm9kZTtcblxuICAgICAgICBwZWVrKCk7XG4gICAgICAgIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZVNjcmlwdEJvZHkoKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvZ3JhbShib2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaWx0ZXJUb2tlbkxvY2F0aW9uKCkge1xuICAgICAgICB2YXIgaSwgZW50cnksIHRva2VuLCB0b2tlbnMgPSBbXTtcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZXh0cmEudG9rZW5zLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBlbnRyeSA9IGV4dHJhLnRva2Vuc1tpXTtcbiAgICAgICAgICAgIHRva2VuID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IGVudHJ5LnR5cGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGVudHJ5LnZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGVudHJ5LnJlZ2V4KSB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucmVnZXggPSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IGVudHJ5LnJlZ2V4LnBhdHRlcm4sXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzOiBlbnRyeS5yZWdleC5mbGFnc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgICAgICB0b2tlbi5yYW5nZSA9IGVudHJ5LnJhbmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgICAgIHRva2VuLmxvYyA9IGVudHJ5LmxvYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4dHJhLnRva2VucyA9IHRva2VucztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b2tlbml6ZShjb2RlLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciB0b1N0cmluZyxcbiAgICAgICAgICAgIHRva2VucztcblxuICAgICAgICB0b1N0cmluZyA9IFN0cmluZztcbiAgICAgICAgaWYgKHR5cGVvZiBjb2RlICE9PSAnc3RyaW5nJyAmJiAhKGNvZGUgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICBjb2RlID0gdG9TdHJpbmcoY29kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzb3VyY2UgPSBjb2RlO1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIGxpbmVOdW1iZXIgPSAoc291cmNlLmxlbmd0aCA+IDApID8gMSA6IDA7XG4gICAgICAgIGxpbmVTdGFydCA9IDA7XG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG4gICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgICAgIGxvb2thaGVhZCA9IG51bGw7XG4gICAgICAgIHN0YXRlID0ge1xuICAgICAgICAgICAgYWxsb3dJbjogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsU2V0OiB7fSxcbiAgICAgICAgICAgIGluRnVuY3Rpb25Cb2R5OiBmYWxzZSxcbiAgICAgICAgICAgIGluSXRlcmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIGluU3dpdGNoOiBmYWxzZSxcbiAgICAgICAgICAgIGxhc3RDb21tZW50U3RhcnQ6IC0xLFxuICAgICAgICAgICAgY3VybHlTdGFjazogW11cbiAgICAgICAgfTtcblxuICAgICAgICBleHRyYSA9IHt9O1xuXG4gICAgICAgIC8vIE9wdGlvbnMgbWF0Y2hpbmcuXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIC8vIE9mIGNvdXJzZSB3ZSBjb2xsZWN0IHRva2VucyBoZXJlLlxuICAgICAgICBvcHRpb25zLnRva2VucyA9IHRydWU7XG4gICAgICAgIGV4dHJhLnRva2VucyA9IFtdO1xuICAgICAgICBleHRyYS50b2tlbml6ZSA9IHRydWU7XG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgdHdvIGZpZWxkcyBhcmUgbmVjZXNzYXJ5IHRvIGNvbXB1dGUgdGhlIFJlZ2V4IHRva2Vucy5cbiAgICAgICAgZXh0cmEub3BlblBhcmVuVG9rZW4gPSAtMTtcbiAgICAgICAgZXh0cmEub3BlbkN1cmx5VG9rZW4gPSAtMTtcblxuICAgICAgICBleHRyYS5yYW5nZSA9ICh0eXBlb2Ygb3B0aW9ucy5yYW5nZSA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLnJhbmdlO1xuICAgICAgICBleHRyYS5sb2MgPSAodHlwZW9mIG9wdGlvbnMubG9jID09PSAnYm9vbGVhbicpICYmIG9wdGlvbnMubG9jO1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5jb21tZW50ID09PSAnYm9vbGVhbicgJiYgb3B0aW9ucy5jb21tZW50KSB7XG4gICAgICAgICAgICBleHRyYS5jb21tZW50cyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy50b2xlcmFudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMudG9sZXJhbnQpIHtcbiAgICAgICAgICAgIGV4dHJhLmVycm9ycyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBlZWsoKTtcbiAgICAgICAgICAgIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uRU9GKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4dHJhLnRva2VucztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB3aGlsZSAobG9va2FoZWFkLnR5cGUgIT09IFRva2VuLkVPRikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGxleEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChleHRyYS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZEVycm9yKGxleEVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gYnJlYWsgb24gdGhlIGZpcnN0IGVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBhdm9pZCBpbmZpbml0ZSBsb29wcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbGV4RXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZpbHRlclRva2VuTG9jYXRpb24oKTtcbiAgICAgICAgICAgIHRva2VucyA9IGV4dHJhLnRva2VucztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0cmEuY29tbWVudHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdG9rZW5zLmNvbW1lbnRzID0gZXh0cmEuY29tbWVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmVycm9ycyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB0b2tlbnMuZXJyb3JzID0gZXh0cmEuZXJyb3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgZXh0cmEgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW5zO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlKGNvZGUsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHByb2dyYW0sIHRvU3RyaW5nO1xuXG4gICAgICAgIHRvU3RyaW5nID0gU3RyaW5nO1xuICAgICAgICBpZiAodHlwZW9mIGNvZGUgIT09ICdzdHJpbmcnICYmICEoY29kZSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIGNvZGUgPSB0b1N0cmluZyhjb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNvdXJjZSA9IGNvZGU7XG4gICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgbGluZU51bWJlciA9IChzb3VyY2UubGVuZ3RoID4gMCkgPyAxIDogMDtcbiAgICAgICAgbGluZVN0YXJ0ID0gMDtcbiAgICAgICAgc3RhcnRJbmRleCA9IGluZGV4O1xuICAgICAgICBzdGFydExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgICAgICBzdGFydExpbmVTdGFydCA9IGxpbmVTdGFydDtcbiAgICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcbiAgICAgICAgbG9va2FoZWFkID0gbnVsbDtcbiAgICAgICAgc3RhdGUgPSB7XG4gICAgICAgICAgICBhbGxvd0luOiB0cnVlLFxuICAgICAgICAgICAgbGFiZWxTZXQ6IHt9LFxuICAgICAgICAgICAgaW5GdW5jdGlvbkJvZHk6IGZhbHNlLFxuICAgICAgICAgICAgaW5JdGVyYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgaW5Td2l0Y2g6IGZhbHNlLFxuICAgICAgICAgICAgbGFzdENvbW1lbnRTdGFydDogLTEsXG4gICAgICAgICAgICBjdXJseVN0YWNrOiBbXVxuICAgICAgICB9O1xuICAgICAgICBzb3VyY2VUeXBlID0gJ3NjcmlwdCc7XG4gICAgICAgIHN0cmljdCA9IGZhbHNlO1xuXG4gICAgICAgIGV4dHJhID0ge307XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGV4dHJhLnJhbmdlID0gKHR5cGVvZiBvcHRpb25zLnJhbmdlID09PSAnYm9vbGVhbicpICYmIG9wdGlvbnMucmFuZ2U7XG4gICAgICAgICAgICBleHRyYS5sb2MgPSAodHlwZW9mIG9wdGlvbnMubG9jID09PSAnYm9vbGVhbicpICYmIG9wdGlvbnMubG9jO1xuICAgICAgICAgICAgZXh0cmEuYXR0YWNoQ29tbWVudCA9ICh0eXBlb2Ygb3B0aW9ucy5hdHRhY2hDb21tZW50ID09PSAnYm9vbGVhbicpICYmIG9wdGlvbnMuYXR0YWNoQ29tbWVudDtcblxuICAgICAgICAgICAgaWYgKGV4dHJhLmxvYyAmJiBvcHRpb25zLnNvdXJjZSAhPT0gbnVsbCAmJiBvcHRpb25zLnNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZXh0cmEuc291cmNlID0gdG9TdHJpbmcob3B0aW9ucy5zb3VyY2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudG9rZW5zID09PSAnYm9vbGVhbicgJiYgb3B0aW9ucy50b2tlbnMpIHtcbiAgICAgICAgICAgICAgICBleHRyYS50b2tlbnMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5jb21tZW50ID09PSAnYm9vbGVhbicgJiYgb3B0aW9ucy5jb21tZW50KSB7XG4gICAgICAgICAgICAgICAgZXh0cmEuY29tbWVudHMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy50b2xlcmFudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMudG9sZXJhbnQpIHtcbiAgICAgICAgICAgICAgICBleHRyYS5lcnJvcnMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChleHRyYS5hdHRhY2hDb21tZW50KSB7XG4gICAgICAgICAgICAgICAgZXh0cmEucmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGV4dHJhLmNvbW1lbnRzID0gW107XG4gICAgICAgICAgICAgICAgZXh0cmEuYm90dG9tUmlnaHRTdGFjayA9IFtdO1xuICAgICAgICAgICAgICAgIGV4dHJhLnRyYWlsaW5nQ29tbWVudHMgPSBbXTtcbiAgICAgICAgICAgICAgICBleHRyYS5sZWFkaW5nQ29tbWVudHMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNvdXJjZVR5cGUgPT09ICdtb2R1bGUnKSB7XG4gICAgICAgICAgICAgICAgLy8gdmVyeSByZXN0cmljdGl2ZSBjb25kaXRpb24gZm9yIG5vd1xuICAgICAgICAgICAgICAgIHNvdXJjZVR5cGUgPSBvcHRpb25zLnNvdXJjZVR5cGU7XG4gICAgICAgICAgICAgICAgc3RyaWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwcm9ncmFtID0gcGFyc2VQcm9ncmFtKCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmNvbW1lbnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHByb2dyYW0uY29tbWVudHMgPSBleHRyYS5jb21tZW50cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0cmEudG9rZW5zICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGZpbHRlclRva2VuTG9jYXRpb24oKTtcbiAgICAgICAgICAgICAgICBwcm9ncmFtLnRva2VucyA9IGV4dHJhLnRva2VucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0cmEuZXJyb3JzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHByb2dyYW0uZXJyb3JzID0gZXh0cmEuZXJyb3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgZXh0cmEgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcm9ncmFtO1xuICAgIH1cblxuICAgIC8vIFN5bmMgd2l0aCAqLmpzb24gbWFuaWZlc3RzLlxuICAgIGV4cG9ydHMudmVyc2lvbiA9ICcyLjIuMCc7XG5cbiAgICBleHBvcnRzLnRva2VuaXplID0gdG9rZW5pemU7XG5cbiAgICBleHBvcnRzLnBhcnNlID0gcGFyc2U7XG5cbiAgICAvLyBEZWVwIGNvcHkuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBleHBvcnRzLlN5bnRheCA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBuYW1lLCB0eXBlcyA9IHt9O1xuXG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdHlwZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChuYW1lIGluIFN5bnRheCkge1xuICAgICAgICAgICAgaWYgKFN5bnRheC5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICAgICAgICAgIHR5cGVzW25hbWVdID0gU3ludGF4W25hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBPYmplY3QuZnJlZXplID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBPYmplY3QuZnJlZXplKHR5cGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0eXBlcztcbiAgICB9KCkpO1xuXG59KSk7XG4vKiB2aW06IHNldCBzdz00IHRzPTQgZXQgdHc9ODAgOiAqL1xuIiwiLyogZXhwb3J0ZWQgZmluZFJlZnMsIGlzSnNvblJlZmVyZW5jZSwgaXNSZW1vdGVQb2ludGVyLCBwYXRoRnJvbVBvaW50ZXIsIHBhdGhUb1BvaW50ZXIsIHJlc29sdmVSZWZzICovXG5cbi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQgSmVyZW15IFdoaXRsb2NrXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0ge1xuICBjbG9uZURlZXA6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9jbG9uZURlZXAnKSxcbiAgZWFjaDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9jb2xsZWN0aW9uL2VhY2gnKSxcbiAgaW5kZXhPZjogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mJyksXG4gIGlzQXJyYXk6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0FycmF5JyksXG4gIGlzRnVuY3Rpb246IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0Z1bmN0aW9uJyksXG4gIGlzUGxhaW5PYmplY3Q6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc1BsYWluT2JqZWN0JyksXG4gIGlzU3RyaW5nOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNTdHJpbmcnKSxcbiAgaXNVbmRlZmluZWQ6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc1VuZGVmaW5lZCcpLFxuICBrZXlzOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L29iamVjdC9rZXlzJyksXG4gIG1hcDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9jb2xsZWN0aW9uL21hcCcpXG59O1xudmFyIGFzeW5jID0gcmVxdWlyZSgnYXN5bmMnKTtcbnZhciByZXF1ZXN0ID0gcmVxdWlyZSgnc3VwZXJhZ2VudCcpO1xudmFyIHRyYXZlcnNlID0gcmVxdWlyZSgndHJhdmVyc2UnKTtcblxudmFyIHJlbW90ZUNhY2hlID0ge307XG52YXIgc3VwcG9ydGVkU2NoZW1lcyA9IFsnaHR0cCcsICdodHRwcyddO1xuXG4vKipcbiAqIENhbGxiYWNrIHVzZWQgYnkgYWxsIGpzb24tcmVmcyBmdW5jdGlvbnMuXG4gKlxuICogQHBhcmFtIHtlcnJvcn0gW2Vycl0gLSBUaGUgZXJyb3IgaWYgdGhlcmUgaXMgYSBwcm9ibGVtXG4gKiBAcGFyYW0geyp9IFtyZXN1bHRdIC0gVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb25cbiAqXG4gKiBAY2FsbGJhY2sgcmVzdWx0Q2FsbGJhY2tcbiAqL1xuXG4vKipcbiAqIENhbGxiYWNrIHVzZWQgdG8gcHJvdmlkZSBhY2Nlc3MgdG8gYWx0ZXJpbmcgYSByZW1vdGUgcmVxdWVzdCBwcmlvciB0byB0aGUgcmVxdWVzdCBiZWluZyBtYWRlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSByZXEgLSBUaGUgU3VwZXJhZ2VudCByZXF1ZXN0IG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IHJlZiAtIFRoZSByZWZlcmVuY2UgYmVpbmcgcmVzb2x2ZWQgKFdoZW4gYXBwbGljYWJsZSlcbiAqXG4gKiBAY2FsbGJhY2sgcHJlcGFyZVJlcXVlc3RDYWxsYmFja1xuICovXG5cbi8qKlxuICogQ2FsbGJhY2sgdXNlZCB0byBwcm9jZXNzIHRoZSBjb250ZW50IG9mIGEgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IC0gVGhlIGNvbnRlbnQgbG9hZGVkIGZyb20gdGhlIGZpbGUvVVJMXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVmIC0gVGhlIHJlZmVyZW5jZSBzdHJpbmcgKFdoZW4gYXBwbGljYWJsZSlcbiAqIEBwYXJhbSB7b2JqZWN0fSBbcmVzXSAtIFRoZSBTdXBlcmFnZW50IHJlc3BvbnNlIG9iamVjdCAoRm9yIHJlbW90ZSBVUkwgcmVxdWVzdHMgb25seSlcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgSmF2YVNjcmlwdCBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlZmVyZW5jZVxuICpcbiAqIEBjYWxsYmFjayBwcm9jZXNzQ29udGVudENhbGxiYWNrXG4gKi9cblxuLyogSW50ZXJuYWwgRnVuY3Rpb25zICovXG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjb250ZW50IGF0IHRoZSBVUkwgYW5kIHJldHVybnMgaXRzIEpTT04gY29udGVudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byByZXRyaWV2ZVxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBwYXNzZWQgdG8gcmVzb2x2ZVJlZnNcbiAqIEBwYXJhbSB7cmVzdWx0Q2FsbGJhY2t9IGRvbmUgLSBUaGUgcmVzdWx0IGNhbGxiYWNrXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGVyZSBpcyBhIHByb2JsZW0gbWFraW5nIHRoZSByZXF1ZXN0IG9yIHRoZSBjb250ZW50IGlzIG5vdCBKU09OXG4gKi9cbnZhciBnZXRSZW1vdGVKc29uID0gZnVuY3Rpb24gZ2V0UmVtb3RlSnNvbiAodXJsLCBvcHRpb25zLCBkb25lKSB7XG4gIHZhciByZWFsVXJsID0gdXJsLnNwbGl0KCcjJylbMF07XG4gIHZhciBqc29uID0gcmVtb3RlQ2FjaGVbcmVhbFVybF07XG4gIHZhciB1c2VyRXJyO1xuICB2YXIgcmVhbFJlcXVlc3Q7XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKGpzb24pKSB7XG4gICAgZG9uZSh1c2VyRXJyLCBqc29uKTtcbiAgfSBlbHNlIHtcbiAgICByZWFsUmVxdWVzdCA9IHJlcXVlc3QuZ2V0KHVybClcbiAgICAgIC5zZXQoJ3VzZXItYWdlbnQnLCAnd2hpdGxvY2tqYy9qc29uLXJlZnMnKTtcblxuICAgIGlmICghXy5pc1VuZGVmaW5lZChvcHRpb25zLnByZXBhcmVSZXF1ZXN0KSkge1xuICAgICAgb3B0aW9ucy5wcmVwYXJlUmVxdWVzdChyZWFsUmVxdWVzdCwgdXJsKTtcbiAgICB9XG5cbiAgICAvLyBidWZmZXIoKSBpcyBvbmx5IGF2YWlsYWJsZSBpbiBOb2RlLmpzXG4gICAgaWYgKF8uaXNGdW5jdGlvbihyZWFsUmVxdWVzdC5idWZmZXIpKSB7XG4gICAgICByZWFsUmVxdWVzdC5idWZmZXIodHJ1ZSk7XG4gICAgfVxuXG4gICAgcmVhbFJlcXVlc3RcbiAgICAgIC5lbmQoZnVuY3Rpb24gKGVyciwgcmVzKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICB1c2VyRXJyID0gZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHJlcy5lcnJvcikge1xuICAgICAgICAgIHVzZXJFcnIgPSByZXMuZXJyb3I7XG4gICAgICAgIH0gZWxzZSBpZiAoIV8uaXNVbmRlZmluZWQob3B0aW9ucy5wcm9jZXNzQ29udGVudCkpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAganNvbiA9IG9wdGlvbnMucHJvY2Vzc0NvbnRlbnQocmVzLnRleHQsIHVybCwgcmVzKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB1c2VyRXJyID0gZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHJlcy50ZXh0KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB1c2VyRXJyID0gZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZW1vdGVDYWNoZVtyZWFsVXJsXSA9IGpzb247XG5cbiAgICAgICAgZG9uZSh1c2VyRXJyLCBqc29uKTtcbiAgICAgIH0pO1xuICB9XG59O1xuXG4vKiBFeHBvcnRlZCBGdW5jdGlvbnMgKi9cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGludGVybmFsIGNhY2hlIG9mIHVybCAtPiBKYXZhU2NyaXB0IG9iamVjdCBtYXBwaW5ncyBiYXNlZCBvbiBwcmV2aW91c2x5IHJlc29sdmVkIHJlZmVyZW5jZXMuXG4gKi9cbm1vZHVsZS5leHBvcnRzLmNsZWFyQ2FjaGUgPSBmdW5jdGlvbiBjbGVhckNhY2hlICgpIHtcbiAgcmVtb3RlQ2FjaGUgPSB7fTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgb2JqZWN0IHJlcHJlc2VudHMgYSBKU09OIFJlZmVyZW5jZS5cbiAqXG4gKiBAcGFyYW0geyp9IFtvYmpdIC0gVGhlIG9iamVjdCB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGFyZ3VtZW50IGlzIGFuIG9iamVjdCBhbmQgaXRzICRyZWYgcHJvcGVydHkgaXMgYSBzdHJpbmcgYW5kIGZhbHNlIG90aGVyd2lzZVxuICovXG52YXIgaXNKc29uUmVmZXJlbmNlID0gbW9kdWxlLmV4cG9ydHMuaXNKc29uUmVmZXJlbmNlID0gZnVuY3Rpb24gaXNKc29uUmVmZXJlbmNlIChvYmopIHtcbiAgLy8gVE9ETzogQWRkIGNoZWNrIHRoYXQgdGhlIHZhbHVlIGlzIGEgdmFsaWQgSlNPTiBQb2ludGVyXG4gIHJldHVybiBfLmlzUGxhaW5PYmplY3Qob2JqKSAmJiBfLmlzU3RyaW5nKG9iai4kcmVmKTtcbn07XG5cbi8qKlxuICogVGFrZXMgYW4gYXJyYXkgb2YgcGF0aCBzZWdtZW50cyBhbmQgY3JlYXRlcyBhIEpTT04gUG9pbnRlciBmcm9tIGl0LlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY5MDF9XG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aCAtIFRoZSBwYXRoIHNlZ21lbnRzXG4gKlxuICogQHJldHVybnMgYSBKU09OIFBvaW50ZXIgYmFzZWQgb24gdGhlIHBhdGggc2VnbWVudHNcbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBhcmd1bWVudHMgYXJlIG1pc3Npbmcgb3IgaW52YWxpZFxuICovXG52YXIgcGF0aFRvUG9pbnRlciA9IG1vZHVsZS5leHBvcnRzLnBhdGhUb1BvaW50ZXIgPSBmdW5jdGlvbiBwYXRoVG9Qb2ludGVyIChwYXRoKSB7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXRoIGlzIHJlcXVpcmVkJyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNBcnJheShwYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGF0aCBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gIH1cblxuICB2YXIgcHRyID0gJyMnO1xuXG4gIGlmIChwYXRoLmxlbmd0aCA+IDApIHtcbiAgICBwdHIgKz0gJy8nICsgXy5tYXAocGF0aCwgZnVuY3Rpb24gKHBhcnQpIHtcbiAgICAgIHJldHVybiBwYXJ0LnJlcGxhY2UoL34vZywgJ34wJykucmVwbGFjZSgvXFwvL2csICd+MScpO1xuICAgIH0pLmpvaW4oJy8nKTtcbiAgfVxuXG4gIHJldHVybiBwdHI7XG59O1xuXG4vKipcbiAqIEZpbmQgYWxsIEpTT04gUmVmZXJlbmNlcyBpbiB0aGUgZG9jdW1lbnQuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtcGJyeWFuLXp5cC1qc29uLXJlZi0wMyNzZWN0aW9uLTN9XG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiBkb2N1bWVudCB0byBmaW5kIHJlZmVyZW5jZXMgaW5cbiAqXG4gKiBAcmV0dXJucyBhbiBvYmplY3Qgd2hvc2Uga2V5cyBhcmUgSlNPTiBQb2ludGVycyB0byB0aGUgJyRyZWYnIG5vZGUgb2YgdGhlIEpTT04gUmVmZXJlbmNlXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgYXJndW1lbnRzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xudmFyIGZpbmRSZWZzID0gbW9kdWxlLmV4cG9ydHMuZmluZFJlZnMgPSBmdW5jdGlvbiBmaW5kUmVmcyAoanNvbikge1xuICBpZiAoXy5pc1VuZGVmaW5lZChqc29uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignanNvbiBpcyByZXF1aXJlZCcpO1xuICB9IGVsc2UgaWYgKCFfLmlzUGxhaW5PYmplY3QoanNvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2pzb24gbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfVxuXG4gIHJldHVybiB0cmF2ZXJzZShqc29uKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYykge1xuICAgIHZhciB2YWwgPSB0aGlzLm5vZGU7XG5cbiAgICBpZiAodGhpcy5rZXkgPT09ICckcmVmJyAmJiBpc0pzb25SZWZlcmVuY2UodGhpcy5wYXJlbnQubm9kZSkpIHtcbiAgICAgIGFjY1twYXRoVG9Qb2ludGVyKHRoaXMucGF0aCldID0gdmFsO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgSlNPTiBQb2ludGVyIGlzIGEgcmVtb3RlIHJlZmVyZW5jZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHRyIC0gVGhlIEpTT04gUG9pbnRlclxuICpcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIEpTT04gUG9pbnRlciBpcyByZW1vdGUgb3IgZmFsc2UgaWYgbm90XG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgYXJndW1lbnRzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xudmFyIGlzUmVtb3RlUG9pbnRlciA9IG1vZHVsZS5leHBvcnRzLmlzUmVtb3RlUG9pbnRlciA9IGZ1bmN0aW9uIGlzUmVtb3RlUG9pbnRlciAocHRyKSB7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHB0cikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3B0ciBpcyByZXF1aXJlZCcpO1xuICB9IGVsc2UgaWYgKCFfLmlzU3RyaW5nKHB0cikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3B0ciBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gIH1cblxuICByZXR1cm4gL14oKFthLXpBLVowLTkrLi1dKyk6XFwvXFwvfFxcLnsxLDJ9XFwvKS8udGVzdChwdHIpO1xufTtcblxuLyoqXG4gKiBUYWtlcyBhIEpTT04gUmVmZXJlbmNlIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjkwMX1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHRyIC0gVGhlIEpTT04gUG9pbnRlciBmb3IgdGhlIEpTT04gUmVmZXJlbmNlXG4gKlxuICogQHJldHVybnMgYW4gYXJyYXkgb2YgcGF0aCBzZWdtZW50cyBvciB0aGUgcGFzc2VkIGluIHN0cmluZyBpZiBpdCBpcyBhIHJlbW90ZSByZWZlcmVuY2VcbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBhcmd1bWVudHMgYXJlIG1pc3Npbmcgb3IgaW52YWxpZFxuICovXG52YXIgcGF0aEZyb21Qb2ludGVyID0gbW9kdWxlLmV4cG9ydHMucGF0aEZyb21Qb2ludGVyID0gZnVuY3Rpb24gcGF0aEZyb21Qb2ludGVyIChwdHIpIHtcbiAgaWYgKF8uaXNVbmRlZmluZWQocHRyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHRyIGlzIHJlcXVpcmVkJyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNTdHJpbmcocHRyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHRyIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIHZhciBwYXRoID0gW107XG5cbiAgaWYgKGlzUmVtb3RlUG9pbnRlcihwdHIpKSB7XG4gICAgcGF0aCA9IHB0cjtcbiAgfSBlbHNlIHtcbiAgICBpZiAocHRyLmNoYXJBdCgwKSA9PT0gJyMnICYmIHB0ciAhPT0gJyMnKSB7XG4gICAgICBwYXRoID0gXy5tYXAocHRyLnN1YnN0cmluZygxKS5zcGxpdCgnLycpLCBmdW5jdGlvbiAocGFydCkge1xuICAgICAgICByZXR1cm4gcGFydC5yZXBsYWNlKC9+MC9nLCAnficpLnJlcGxhY2UoL34xL2csICcvJyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gJy8nIGJ5IGl0c2VsZiBjb3JyZXNwb25kcyB0byBbJyddIG90aGVyd2lzZSwgcmVtb3ZlIHRoZSBmaXJzdCBlbnRyeVxuICAgICAgaWYgKHBhdGgubGVuZ3RoID4gMSkge1xuICAgICAgICBwYXRoLnNoaWZ0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhdGg7XG59O1xuXG4vKipcbiAqIFRha2VzIGEgSlNPTiBkb2N1bWVudCwgcmVzb2x2ZXMgYWxsIEpTT04gUmVmZXJlbmNlcyBhbmQgcmV0dXJucyBhIGZ1bGx5IHJlc29sdmVkIGVxdWl2YWxlbnQuXG4gKlxuICogSWYgdGhlIGRvY3VtZW50IGhhcyBubyBKU09OIFJlZmVyZW5jZXMsIHRoZSBwYXNzZWQgaW4gZG9jdW1lbnQgaXMgcmV0dXJuZWQgdW50b3VjaGVkLiAgSWYgdGhlcmUgYXJlIHJlZmVyZW5jZXMgdG8gYmVcbiAqIHJlc29sdmVkLCB0aGUgcmV0dXJuZWQgZG9jdW1lbnQgaXMgY2xvbmVkIGFuZCByZXR1cm5lZCBmdWxseSByZXNvbHZlZC4gIFRoZSBvcmlnaW5hbCBkb2N1bWVudCBpcyB1bnRvdWNoZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiAgZG9jdW1lbnQgaGF2aW5nIHplcm8gb3IgbW9yZSBKU09OIFJlZmVyZW5jZXNcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBUaGUgb3B0aW9uc1xuICogQHBhcmFtIHtwcmVwYXJlUmVxdWVzdENhbGxiYWNrfSBbb3B0aW9ucy5wcmVwYXJlUmVxdWVzdF0gLSBUaGUgY2FsbGJhY2sgdXNlZCB0byBwcmVwYXJlIGEgcmVxdWVzdFxuICogQHBhcmFtIHtwcm9jZXNzQ29udGVudENhbGxiYWNrfSBbb3B0aW9ucy5wcm9jZXNzQ29udGVudF0gLSBUaGUgY2FsbGJhY2sgdXNlZCB0byBwcm9jZXNzIGEgcmVmZXJlbmNlJ3MgY29udGVudFxuICogQHBhcmFtIHtyZXN1bHRDYWxsYmFja30gZG9uZSAtIFRoZSByZXN1bHQgY2FsbGJhY2tcbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBhcmd1bWVudHMgYXJlIG1pc3Npbmcgb3IgaW52YWxpZFxuICovXG52YXIgcmVzb2x2ZVJlZnMgPSBtb2R1bGUuZXhwb3J0cy5yZXNvbHZlUmVmcyA9IGZ1bmN0aW9uIHJlc29sdmVSZWZzIChqc29uLCBvcHRpb25zLCBkb25lKSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMykge1xuICAgIGRvbmUgPSBhcmd1bWVudHNbMV07XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQoanNvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2pzb24gaXMgcmVxdWlyZWQnKTtcbiAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KGpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdqc29uIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNQbGFpbk9iamVjdChvcHRpb25zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignb3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICB9IGVsc2UgaWYgKF8uaXNVbmRlZmluZWQoZG9uZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RvbmUgaXMgcmVxdWlyZWQnKTtcbiAgfSBlbHNlIGlmICghXy5pc0Z1bmN0aW9uKGRvbmUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkb25lIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgdGhlIG9wdGlvbnNcbiAgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnMucHJlcGFyZVJlcXVlc3QpICYmICFfLmlzRnVuY3Rpb24ob3B0aW9ucy5wcmVwYXJlUmVxdWVzdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdGlvbnMucHJlcGFyZVJlcXVlc3QgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH0gZWxzZSBpZiAoIV8uaXNVbmRlZmluZWQob3B0aW9ucy5wcm9jZXNzQ29udGVudCkgJiYgIV8uaXNGdW5jdGlvbihvcHRpb25zLnByb2Nlc3NDb250ZW50KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignb3B0aW9ucy5wcm9jZXNzQ29udGVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIHZhciByZWZzID0gZmluZFJlZnMoanNvbik7XG4gIHZhciByZW1vdmVDaXJjdWxhciA9IGZ1bmN0aW9uIHJlbW92ZUNpcmN1bGFyIChqc29uVCkge1xuICAgIC8vIFJlbW92ZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgcmV0dXJuIGpzb25ULm1hcChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAodGhpcy5jaXJjdWxhcikge1xuICAgICAgICAvLyBBbHdheXMgdHJhdmVyc2Ugb25lIGRlcHRoIGFmdGVyIHJlY29nbml6aW5nIGEgY2lyY3VsYXIgZGVwZW5kZW5jeVxuICAgICAgICB0aGlzLnVwZGF0ZSh0cmF2ZXJzZSh0aGlzLm5vZGUpLm1hcChmdW5jdGlvbigpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaXJjdWxhcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQucmVtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIHZhciBtZXRhZGF0YSA9IHt9O1xuICB2YXIgY0pzb25UO1xuXG4gIGlmIChPYmplY3Qua2V5cyhyZWZzKS5sZW5ndGggPiAwKSB7XG4gICAgY0pzb25UID0gdHJhdmVyc2UoXy5jbG9uZURlZXAoanNvbikpOyAvLyBDbG9uZSB0aGUgaW5wdXQgSlNPTiB0byBhdm9pZCBhbHRlcmluZyBpdFxuXG4gICAgdmFyIHJlcGxhY2VSZWZlcmVuY2UgPSBmdW5jdGlvbiAodG8sIGZyb20sIHJlZiwgcmVmUHRyKSB7XG4gICAgICB2YXIgcmVmTWV0YWRhdGEgPSB7XG4gICAgICAgIHJlZjogcmVmXG4gICAgICB9O1xuICAgICAgdmFyIG1pc3NpbmcgPSBmYWxzZTtcbiAgICAgIHZhciBwYXJlbnRQYXRoO1xuICAgICAgdmFyIHJlZlBhdGg7XG4gICAgICB2YXIgdmFsdWU7XG5cbiAgICAgIHJlZiA9IHJlZi5pbmRleE9mKCcjJykgPT09IC0xID9cbiAgICAgICAgJyMnIDpcbiAgICAgICAgcmVmLnN1YnN0cmluZyhyZWYuaW5kZXhPZignIycpKTtcbiAgICAgIHJlZlBhdGggPSBwYXRoRnJvbVBvaW50ZXIocmVmUHRyKTtcbiAgICAgIHBhcmVudFBhdGggPSByZWZQYXRoLnNsaWNlKDAsIHJlZlBhdGgubGVuZ3RoIC0gMSk7XG5cbiAgICAgIGlmIChwYXJlbnRQYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBtaXNzaW5nID0gIV8uaXNVbmRlZmluZWQoZnJvbS52YWx1ZSk7XG4gICAgICAgIHZhbHVlID0gZnJvbS52YWx1ZTtcbiAgICAgICAgdG8udmFsdWUgPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1pc3NpbmcgPSAhZnJvbS5oYXMocGF0aEZyb21Qb2ludGVyKHJlZikpO1xuICAgICAgICB2YWx1ZSA9IGZyb20uZ2V0KHBhdGhGcm9tUG9pbnRlcihyZWYpKTtcbiAgICAgICAgdG8uc2V0KHBhcmVudFBhdGgsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtaXNzaW5nKSB7XG4gICAgICAgIHJlZk1ldGFkYXRhLnZhbHVlID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhW3JlZlB0cl0gPSByZWZNZXRhZGF0YTtcbiAgICB9O1xuICAgIHZhciByZW1vdGVSZWZzID0ge307XG5cbiAgICBfLmVhY2gocmVmcywgZnVuY3Rpb24gKHJlZiwgcmVmUHRyKSB7XG4gICAgICBpZiAoaXNSZW1vdGVQb2ludGVyKHJlZikpIHtcbiAgICAgICAgcmVtb3RlUmVmc1tyZWZQdHJdID0gcmVmO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVwbGFjZVJlZmVyZW5jZShjSnNvblQsIGNKc29uVCwgcmVmLCByZWZQdHIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYXN5bmMubWFwKF8ua2V5cyhyZW1vdGVSZWZzKSwgZnVuY3Rpb24gKHJlZlB0ciwgY2FsbGJhY2spIHtcbiAgICAgIHZhciByZWYgPSByZW1vdGVSZWZzW3JlZlB0cl07XG4gICAgICB2YXIgc2NoZW1lID0gcmVmLnNwbGl0KCc6JylbMF07XG5cbiAgICAgIC8vIERvIG5vdCBwcm9jZXNzIHJlbGF0aXZlIHJlZmVyZW5jZXMgb3IgcmVmZXJlbmNlcyB0byB1bnN1cHBvcnRlZCByZXNvdXJjZXNcbiAgICAgIGlmIChyZWYuY2hhckF0KDApID09PSAnLicgfHwgXy5pbmRleE9mKHN1cHBvcnRlZFNjaGVtZXMsIHNjaGVtZSkgPT09IC0xKSB7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZXRSZW1vdGVKc29uKHJlZiwgb3B0aW9ucywgZnVuY3Rpb24gKGVyciwganNvbikge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmVSZWZzKGpzb24sIG9wdGlvbnMsIGZ1bmN0aW9uIChlcnIsIGpzb24pIHtcbiAgICAgICAgICAgICAgZGVsZXRlIHJlbW90ZVJlZnNbcmVmUHRyXTtcblxuICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXBsYWNlUmVmZXJlbmNlKGNKc29uVCwgdHJhdmVyc2UoanNvbiksIHJlZiwgcmVmUHRyKTtcblxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBkb25lKGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lKHVuZGVmaW5lZCwgcmVtb3ZlQ2lyY3VsYXIoY0pzb25UKSwgbWV0YWRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGRvbmUodW5kZWZpbmVkLCBqc29uLCBtZXRhZGF0YSk7XG4gIH1cbn07XG4iLCIvKiFcbiAqIGFzeW5jXG4gKiBodHRwczovL2dpdGh1Yi5jb20vY2FvbGFuL2FzeW5jXG4gKlxuICogQ29weXJpZ2h0IDIwMTAtMjAxNCBDYW9sYW4gTWNNYWhvblxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKi9cbi8qanNoaW50IG9uZXZhcjogZmFsc2UsIGluZGVudDo0ICovXG4vKmdsb2JhbCBzZXRJbW1lZGlhdGU6IGZhbHNlLCBzZXRUaW1lb3V0OiBmYWxzZSwgY29uc29sZTogZmFsc2UgKi9cbihmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgYXN5bmMgPSB7fTtcblxuICAgIC8vIGdsb2JhbCBvbiB0aGUgc2VydmVyLCB3aW5kb3cgaW4gdGhlIGJyb3dzZXJcbiAgICB2YXIgcm9vdCwgcHJldmlvdXNfYXN5bmM7XG5cbiAgICByb290ID0gdGhpcztcbiAgICBpZiAocm9vdCAhPSBudWxsKSB7XG4gICAgICBwcmV2aW91c19hc3luYyA9IHJvb3QuYXN5bmM7XG4gICAgfVxuXG4gICAgYXN5bmMubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcm9vdC5hc3luYyA9IHByZXZpb3VzX2FzeW5jO1xuICAgICAgICByZXR1cm4gYXN5bmM7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG9ubHlfb25jZShmbikge1xuICAgICAgICB2YXIgY2FsbGVkID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmIChjYWxsZWQpIHRocm93IG5ldyBFcnJvcihcIkNhbGxiYWNrIHdhcyBhbHJlYWR5IGNhbGxlZC5cIik7XG4gICAgICAgICAgICBjYWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgZm4uYXBwbHkocm9vdCwgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vLy8gY3Jvc3MtYnJvd3NlciBjb21wYXRpYmxpdHkgZnVuY3Rpb25zIC8vLy9cblxuICAgIHZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4gICAgdmFyIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIHJldHVybiBfdG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBBcnJheV0nO1xuICAgIH07XG5cbiAgICB2YXIgX2VhY2ggPSBmdW5jdGlvbiAoYXJyLCBpdGVyYXRvcikge1xuICAgICAgICBpZiAoYXJyLmZvckVhY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnIuZm9yRWFjaChpdGVyYXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKGFycltpXSwgaSwgYXJyKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB2YXIgX21hcCA9IGZ1bmN0aW9uIChhcnIsIGl0ZXJhdG9yKSB7XG4gICAgICAgIGlmIChhcnIubWFwKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyLm1hcChpdGVyYXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgX2VhY2goYXJyLCBmdW5jdGlvbiAoeCwgaSwgYSkge1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGl0ZXJhdG9yKHgsIGksIGEpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH07XG5cbiAgICB2YXIgX3JlZHVjZSA9IGZ1bmN0aW9uIChhcnIsIGl0ZXJhdG9yLCBtZW1vKSB7XG4gICAgICAgIGlmIChhcnIucmVkdWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyLnJlZHVjZShpdGVyYXRvciwgbWVtbyk7XG4gICAgICAgIH1cbiAgICAgICAgX2VhY2goYXJyLCBmdW5jdGlvbiAoeCwgaSwgYSkge1xuICAgICAgICAgICAgbWVtbyA9IGl0ZXJhdG9yKG1lbW8sIHgsIGksIGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG1lbW87XG4gICAgfTtcblxuICAgIHZhciBfa2V5cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5cyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBrIGluIG9iaikge1xuICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgICAgIGtleXMucHVzaChrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga2V5cztcbiAgICB9O1xuXG4gICAgLy8vLyBleHBvcnRlZCBhc3luYyBtb2R1bGUgZnVuY3Rpb25zIC8vLy9cblxuICAgIC8vLy8gbmV4dFRpY2sgaW1wbGVtZW50YXRpb24gd2l0aCBicm93c2VyLWNvbXBhdGlibGUgZmFsbGJhY2sgLy8vL1xuICAgIGlmICh0eXBlb2YgcHJvY2VzcyA9PT0gJ3VuZGVmaW5lZCcgfHwgIShwcm9jZXNzLm5leHRUaWNrKSkge1xuICAgICAgICBpZiAodHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgYXN5bmMubmV4dFRpY2sgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgICAgICAgICAvLyBub3QgYSBkaXJlY3QgYWxpYXMgZm9yIElFMTAgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgIHNldEltbWVkaWF0ZShmbik7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXN5bmMuc2V0SW1tZWRpYXRlID0gYXN5bmMubmV4dFRpY2s7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhc3luYy5uZXh0VGljayA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZm4sIDApO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFzeW5jLnNldEltbWVkaWF0ZSA9IGFzeW5jLm5leHRUaWNrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBhc3luYy5uZXh0VGljayA9IHByb2Nlc3MubmV4dFRpY2s7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0SW1tZWRpYXRlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgYXN5bmMuc2V0SW1tZWRpYXRlID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgICAgICAgIC8vIG5vdCBhIGRpcmVjdCBhbGlhcyBmb3IgSUUxMCBjb21wYXRpYmlsaXR5XG4gICAgICAgICAgICAgIHNldEltbWVkaWF0ZShmbik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYXN5bmMuc2V0SW1tZWRpYXRlID0gYXN5bmMubmV4dFRpY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYy5lYWNoID0gZnVuY3Rpb24gKGFyciwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG4gICAgICAgIGlmICghYXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvbXBsZXRlZCA9IDA7XG4gICAgICAgIF9lYWNoKGFyciwgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKHgsIG9ubHlfb25jZShkb25lKSApO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZG9uZShlcnIpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBjb21wbGV0ZWQgKz0gMTtcbiAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZCA+PSBhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBhc3luYy5mb3JFYWNoID0gYXN5bmMuZWFjaDtcblxuICAgIGFzeW5jLmVhY2hTZXJpZXMgPSBmdW5jdGlvbiAoYXJyLCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgaWYgKCFhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29tcGxldGVkID0gMDtcbiAgICAgICAgdmFyIGl0ZXJhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpdGVyYXRvcihhcnJbY29tcGxldGVkXSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCArPSAxO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGxldGVkID49IGFyci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaXRlcmF0ZSgpO1xuICAgIH07XG4gICAgYXN5bmMuZm9yRWFjaFNlcmllcyA9IGFzeW5jLmVhY2hTZXJpZXM7XG5cbiAgICBhc3luYy5lYWNoTGltaXQgPSBmdW5jdGlvbiAoYXJyLCBsaW1pdCwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBmbiA9IF9lYWNoTGltaXQobGltaXQpO1xuICAgICAgICBmbi5hcHBseShudWxsLCBbYXJyLCBpdGVyYXRvciwgY2FsbGJhY2tdKTtcbiAgICB9O1xuICAgIGFzeW5jLmZvckVhY2hMaW1pdCA9IGFzeW5jLmVhY2hMaW1pdDtcblxuICAgIHZhciBfZWFjaExpbWl0ID0gZnVuY3Rpb24gKGxpbWl0KSB7XG5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhcnIsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgIGlmICghYXJyLmxlbmd0aCB8fCBsaW1pdCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgY29tcGxldGVkID0gMDtcbiAgICAgICAgICAgIHZhciBzdGFydGVkID0gMDtcbiAgICAgICAgICAgIHZhciBydW5uaW5nID0gMDtcblxuICAgICAgICAgICAgKGZ1bmN0aW9uIHJlcGxlbmlzaCAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZCA+PSBhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHdoaWxlIChydW5uaW5nIDwgbGltaXQgJiYgc3RhcnRlZCA8IGFyci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRlZCArPSAxO1xuICAgICAgICAgICAgICAgICAgICBydW5uaW5nICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yKGFycltzdGFydGVkIC0gMV0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWQgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uaW5nIC09IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZCA+PSBhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH07XG4gICAgfTtcblxuXG4gICAgdmFyIGRvUGFyYWxsZWwgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBbYXN5bmMuZWFjaF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHZhciBkb1BhcmFsbGVsTGltaXQgPSBmdW5jdGlvbihsaW1pdCwgZm4pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBbX2VhY2hMaW1pdChsaW1pdCldLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICB2YXIgZG9TZXJpZXMgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBbYXN5bmMuZWFjaFNlcmllc10uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgfTtcbiAgICB9O1xuXG5cbiAgICB2YXIgX2FzeW5jTWFwID0gZnVuY3Rpb24gKGVhY2hmbiwgYXJyLCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgYXJyID0gX21hcChhcnIsIGZ1bmN0aW9uICh4LCBpKSB7XG4gICAgICAgICAgICByZXR1cm4ge2luZGV4OiBpLCB2YWx1ZTogeH07XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgICBlYWNoZm4oYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBpdGVyYXRvcih4LnZhbHVlLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gW107XG4gICAgICAgICAgICBlYWNoZm4oYXJyLCBmdW5jdGlvbiAoeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBpdGVyYXRvcih4LnZhbHVlLCBmdW5jdGlvbiAoZXJyLCB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHNbeC5pbmRleF0gPSB2O1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgcmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgYXN5bmMubWFwID0gZG9QYXJhbGxlbChfYXN5bmNNYXApO1xuICAgIGFzeW5jLm1hcFNlcmllcyA9IGRvU2VyaWVzKF9hc3luY01hcCk7XG4gICAgYXN5bmMubWFwTGltaXQgPSBmdW5jdGlvbiAoYXJyLCBsaW1pdCwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBfbWFwTGltaXQobGltaXQpKGFyciwgaXRlcmF0b3IsIGNhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgdmFyIF9tYXBMaW1pdCA9IGZ1bmN0aW9uKGxpbWl0KSB7XG4gICAgICAgIHJldHVybiBkb1BhcmFsbGVsTGltaXQobGltaXQsIF9hc3luY01hcCk7XG4gICAgfTtcblxuICAgIC8vIHJlZHVjZSBvbmx5IGhhcyBhIHNlcmllcyB2ZXJzaW9uLCBhcyBkb2luZyByZWR1Y2UgaW4gcGFyYWxsZWwgd29uJ3RcbiAgICAvLyB3b3JrIGluIG1hbnkgc2l0dWF0aW9ucy5cbiAgICBhc3luYy5yZWR1Y2UgPSBmdW5jdGlvbiAoYXJyLCBtZW1vLCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgYXN5bmMuZWFjaFNlcmllcyhhcnIsIGZ1bmN0aW9uICh4LCBjYWxsYmFjaykge1xuICAgICAgICAgICAgaXRlcmF0b3IobWVtbywgeCwgZnVuY3Rpb24gKGVyciwgdikge1xuICAgICAgICAgICAgICAgIG1lbW8gPSB2O1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyLCBtZW1vKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvLyBpbmplY3QgYWxpYXNcbiAgICBhc3luYy5pbmplY3QgPSBhc3luYy5yZWR1Y2U7XG4gICAgLy8gZm9sZGwgYWxpYXNcbiAgICBhc3luYy5mb2xkbCA9IGFzeW5jLnJlZHVjZTtcblxuICAgIGFzeW5jLnJlZHVjZVJpZ2h0ID0gZnVuY3Rpb24gKGFyciwgbWVtbywgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciByZXZlcnNlZCA9IF9tYXAoYXJyLCBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH0pLnJldmVyc2UoKTtcbiAgICAgICAgYXN5bmMucmVkdWNlKHJldmVyc2VkLCBtZW1vLCBpdGVyYXRvciwgY2FsbGJhY2spO1xuICAgIH07XG4gICAgLy8gZm9sZHIgYWxpYXNcbiAgICBhc3luYy5mb2xkciA9IGFzeW5jLnJlZHVjZVJpZ2h0O1xuXG4gICAgdmFyIF9maWx0ZXIgPSBmdW5jdGlvbiAoZWFjaGZuLCBhcnIsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgICBhcnIgPSBfbWFwKGFyciwgZnVuY3Rpb24gKHgsIGkpIHtcbiAgICAgICAgICAgIHJldHVybiB7aW5kZXg6IGksIHZhbHVlOiB4fTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVhY2hmbihhcnIsIGZ1bmN0aW9uICh4LCBjYWxsYmFjaykge1xuICAgICAgICAgICAgaXRlcmF0b3IoeC52YWx1ZSwgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgY2FsbGJhY2soX21hcChyZXN1bHRzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYS5pbmRleCAtIGIuaW5kZXg7XG4gICAgICAgICAgICB9KSwgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geC52YWx1ZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBhc3luYy5maWx0ZXIgPSBkb1BhcmFsbGVsKF9maWx0ZXIpO1xuICAgIGFzeW5jLmZpbHRlclNlcmllcyA9IGRvU2VyaWVzKF9maWx0ZXIpO1xuICAgIC8vIHNlbGVjdCBhbGlhc1xuICAgIGFzeW5jLnNlbGVjdCA9IGFzeW5jLmZpbHRlcjtcbiAgICBhc3luYy5zZWxlY3RTZXJpZXMgPSBhc3luYy5maWx0ZXJTZXJpZXM7XG5cbiAgICB2YXIgX3JlamVjdCA9IGZ1bmN0aW9uIChlYWNoZm4sIGFyciwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciByZXN1bHRzID0gW107XG4gICAgICAgIGFyciA9IF9tYXAoYXJyLCBmdW5jdGlvbiAoeCwgaSkge1xuICAgICAgICAgICAgcmV0dXJuIHtpbmRleDogaSwgdmFsdWU6IHh9O1xuICAgICAgICB9KTtcbiAgICAgICAgZWFjaGZuKGFyciwgZnVuY3Rpb24gKHgsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICBpdGVyYXRvcih4LnZhbHVlLCBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgIGlmICghdikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgY2FsbGJhY2soX21hcChyZXN1bHRzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYS5pbmRleCAtIGIuaW5kZXg7XG4gICAgICAgICAgICB9KSwgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geC52YWx1ZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBhc3luYy5yZWplY3QgPSBkb1BhcmFsbGVsKF9yZWplY3QpO1xuICAgIGFzeW5jLnJlamVjdFNlcmllcyA9IGRvU2VyaWVzKF9yZWplY3QpO1xuXG4gICAgdmFyIF9kZXRlY3QgPSBmdW5jdGlvbiAoZWFjaGZuLCBhcnIsIGl0ZXJhdG9yLCBtYWluX2NhbGxiYWNrKSB7XG4gICAgICAgIGVhY2hmbihhcnIsIGZ1bmN0aW9uICh4LCBjYWxsYmFjaykge1xuICAgICAgICAgICAgaXRlcmF0b3IoeCwgZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFpbl9jYWxsYmFjayh4KTtcbiAgICAgICAgICAgICAgICAgICAgbWFpbl9jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgbWFpbl9jYWxsYmFjaygpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGFzeW5jLmRldGVjdCA9IGRvUGFyYWxsZWwoX2RldGVjdCk7XG4gICAgYXN5bmMuZGV0ZWN0U2VyaWVzID0gZG9TZXJpZXMoX2RldGVjdCk7XG5cbiAgICBhc3luYy5zb21lID0gZnVuY3Rpb24gKGFyciwgaXRlcmF0b3IsIG1haW5fY2FsbGJhY2spIHtcbiAgICAgICAgYXN5bmMuZWFjaChhcnIsIGZ1bmN0aW9uICh4LCBjYWxsYmFjaykge1xuICAgICAgICAgICAgaXRlcmF0b3IoeCwgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgICAgICBtYWluX2NhbGxiYWNrKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBtYWluX2NhbGxiYWNrID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgbWFpbl9jYWxsYmFjayhmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gYW55IGFsaWFzXG4gICAgYXN5bmMuYW55ID0gYXN5bmMuc29tZTtcblxuICAgIGFzeW5jLmV2ZXJ5ID0gZnVuY3Rpb24gKGFyciwgaXRlcmF0b3IsIG1haW5fY2FsbGJhY2spIHtcbiAgICAgICAgYXN5bmMuZWFjaChhcnIsIGZ1bmN0aW9uICh4LCBjYWxsYmFjaykge1xuICAgICAgICAgICAgaXRlcmF0b3IoeCwgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXYpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFpbl9jYWxsYmFjayhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIG1haW5fY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICBtYWluX2NhbGxiYWNrKHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIGFsbCBhbGlhc1xuICAgIGFzeW5jLmFsbCA9IGFzeW5jLmV2ZXJ5O1xuXG4gICAgYXN5bmMuc29ydEJ5ID0gZnVuY3Rpb24gKGFyciwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIGFzeW5jLm1hcChhcnIsIGZ1bmN0aW9uICh4LCBjYWxsYmFjaykge1xuICAgICAgICAgICAgaXRlcmF0b3IoeCwgZnVuY3Rpb24gKGVyciwgY3JpdGVyaWEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCB7dmFsdWU6IHgsIGNyaXRlcmlhOiBjcml0ZXJpYX0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyLCByZXN1bHRzKSB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXIgZm4gPSBmdW5jdGlvbiAobGVmdCwgcmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBsZWZ0LmNyaXRlcmlhLCBiID0gcmlnaHQuY3JpdGVyaWE7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIF9tYXAocmVzdWx0cy5zb3J0KGZuKSwgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHgudmFsdWU7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgYXN5bmMuYXV0byA9IGZ1bmN0aW9uICh0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgdmFyIGtleXMgPSBfa2V5cyh0YXNrcyk7XG4gICAgICAgIHZhciByZW1haW5pbmdUYXNrcyA9IGtleXMubGVuZ3RoXG4gICAgICAgIGlmICghcmVtYWluaW5nVGFza3MpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlc3VsdHMgPSB7fTtcblxuICAgICAgICB2YXIgbGlzdGVuZXJzID0gW107XG4gICAgICAgIHZhciBhZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICAgICAgbGlzdGVuZXJzLnVuc2hpZnQoZm4pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgcmVtb3ZlTGlzdGVuZXIgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyc1tpXSA9PT0gZm4pIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHRhc2tDb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJlbWFpbmluZ1Rhc2tzLS1cbiAgICAgICAgICAgIF9lYWNoKGxpc3RlbmVycy5zbGljZSgwKSwgZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGFkZExpc3RlbmVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghcmVtYWluaW5nVGFza3MpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhlQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGZpbmFsIGNhbGxiYWNrIGZyb20gY2FsbGluZyBpdHNlbGYgaWYgaXQgZXJyb3JzXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgICAgICAgICAgICAgIHRoZUNhbGxiYWNrKG51bGwsIHJlc3VsdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfZWFjaChrZXlzLCBmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgdmFyIHRhc2sgPSBfaXNBcnJheSh0YXNrc1trXSkgPyB0YXNrc1trXTogW3Rhc2tzW2tdXTtcbiAgICAgICAgICAgIHZhciB0YXNrQ2FsbGJhY2sgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzYWZlUmVzdWx0cyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBfZWFjaChfa2V5cyhyZXN1bHRzKSwgZnVuY3Rpb24ocmtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2FmZVJlc3VsdHNbcmtleV0gPSByZXN1bHRzW3JrZXldO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc2FmZVJlc3VsdHNba10gPSBhcmdzO1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIHNhZmVSZXN1bHRzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gc3RvcCBzdWJzZXF1ZW50IGVycm9ycyBoaXR0aW5nIGNhbGxiYWNrIG11bHRpcGxlIHRpbWVzXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzW2tdID0gYXJncztcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMuc2V0SW1tZWRpYXRlKHRhc2tDb21wbGV0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciByZXF1aXJlcyA9IHRhc2suc2xpY2UoMCwgTWF0aC5hYnModGFzay5sZW5ndGggLSAxKSkgfHwgW107XG4gICAgICAgICAgICB2YXIgcmVhZHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWR1Y2UocmVxdWlyZXMsIGZ1bmN0aW9uIChhLCB4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoYSAmJiByZXN1bHRzLmhhc093blByb3BlcnR5KHgpKTtcbiAgICAgICAgICAgICAgICB9LCB0cnVlKSAmJiAhcmVzdWx0cy5oYXNPd25Qcm9wZXJ0eShrKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmVhZHkoKSkge1xuICAgICAgICAgICAgICAgIHRhc2tbdGFzay5sZW5ndGggLSAxXSh0YXNrQ2FsbGJhY2ssIHJlc3VsdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIGxpc3RlbmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVhZHkoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFza1t0YXNrLmxlbmd0aCAtIDFdKHRhc2tDYWxsYmFjaywgcmVzdWx0cyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGFkZExpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzeW5jLnJldHJ5ID0gZnVuY3Rpb24odGltZXMsIHRhc2ssIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBERUZBVUxUX1RJTUVTID0gNTtcbiAgICAgICAgdmFyIGF0dGVtcHRzID0gW107XG4gICAgICAgIC8vIFVzZSBkZWZhdWx0cyBpZiB0aW1lcyBub3QgcGFzc2VkXG4gICAgICAgIGlmICh0eXBlb2YgdGltZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrID0gdGFzaztcbiAgICAgICAgICAgIHRhc2sgPSB0aW1lcztcbiAgICAgICAgICAgIHRpbWVzID0gREVGQVVMVF9USU1FUztcbiAgICAgICAgfVxuICAgICAgICAvLyBNYWtlIHN1cmUgdGltZXMgaXMgYSBudW1iZXJcbiAgICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lcywgMTApIHx8IERFRkFVTFRfVElNRVM7XG4gICAgICAgIHZhciB3cmFwcGVkVGFzayA9IGZ1bmN0aW9uKHdyYXBwZWRDYWxsYmFjaywgd3JhcHBlZFJlc3VsdHMpIHtcbiAgICAgICAgICAgIHZhciByZXRyeUF0dGVtcHQgPSBmdW5jdGlvbih0YXNrLCBmaW5hbEF0dGVtcHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oc2VyaWVzQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGFzayhmdW5jdGlvbihlcnIsIHJlc3VsdCl7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJpZXNDYWxsYmFjayghZXJyIHx8IGZpbmFsQXR0ZW1wdCwge2VycjogZXJyLCByZXN1bHQ6IHJlc3VsdH0pO1xuICAgICAgICAgICAgICAgICAgICB9LCB3cmFwcGVkUmVzdWx0cyk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aGlsZSAodGltZXMpIHtcbiAgICAgICAgICAgICAgICBhdHRlbXB0cy5wdXNoKHJldHJ5QXR0ZW1wdCh0YXNrLCAhKHRpbWVzLT0xKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXN5bmMuc2VyaWVzKGF0dGVtcHRzLCBmdW5jdGlvbihkb25lLCBkYXRhKXtcbiAgICAgICAgICAgICAgICBkYXRhID0gZGF0YVtkYXRhLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgICh3cmFwcGVkQ2FsbGJhY2sgfHwgY2FsbGJhY2spKGRhdGEuZXJyLCBkYXRhLnJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBhIGNhbGxiYWNrIGlzIHBhc3NlZCwgcnVuIHRoaXMgYXMgYSBjb250cm9sbCBmbG93XG4gICAgICAgIHJldHVybiBjYWxsYmFjayA/IHdyYXBwZWRUYXNrKCkgOiB3cmFwcGVkVGFza1xuICAgIH07XG5cbiAgICBhc3luYy53YXRlcmZhbGwgPSBmdW5jdGlvbiAodGFza3MsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG4gICAgICAgIGlmICghX2lzQXJyYXkodGFza3MpKSB7XG4gICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcignRmlyc3QgYXJndW1lbnQgdG8gd2F0ZXJmYWxsIG11c3QgYmUgYW4gYXJyYXkgb2YgZnVuY3Rpb25zJyk7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB3cmFwSXRlcmF0b3IgPSBmdW5jdGlvbiAoaXRlcmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaCh3cmFwSXRlcmF0b3IobmV4dCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhc3luYy5zZXRJbW1lZGlhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3IuYXBwbHkobnVsbCwgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIHdyYXBJdGVyYXRvcihhc3luYy5pdGVyYXRvcih0YXNrcykpKCk7XG4gICAgfTtcblxuICAgIHZhciBfcGFyYWxsZWwgPSBmdW5jdGlvbihlYWNoZm4sIHRhc2tzLCBjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICBpZiAoX2lzQXJyYXkodGFza3MpKSB7XG4gICAgICAgICAgICBlYWNoZm4ubWFwKHRhc2tzLCBmdW5jdGlvbiAoZm4sIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZuKSB7XG4gICAgICAgICAgICAgICAgICAgIGZuKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGFyZ3NbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKG51bGwsIGVyciwgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0ge307XG4gICAgICAgICAgICBlYWNoZm4uZWFjaChfa2V5cyh0YXNrcyksIGZ1bmN0aW9uIChrLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHRhc2tzW2tdKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGFyZ3NbMF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1trXSA9IGFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCByZXN1bHRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGFzeW5jLnBhcmFsbGVsID0gZnVuY3Rpb24gKHRhc2tzLCBjYWxsYmFjaykge1xuICAgICAgICBfcGFyYWxsZWwoeyBtYXA6IGFzeW5jLm1hcCwgZWFjaDogYXN5bmMuZWFjaCB9LCB0YXNrcywgY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBhc3luYy5wYXJhbGxlbExpbWl0ID0gZnVuY3Rpb24odGFza3MsIGxpbWl0LCBjYWxsYmFjaykge1xuICAgICAgICBfcGFyYWxsZWwoeyBtYXA6IF9tYXBMaW1pdChsaW1pdCksIGVhY2g6IF9lYWNoTGltaXQobGltaXQpIH0sIHRhc2tzLCBjYWxsYmFjayk7XG4gICAgfTtcblxuICAgIGFzeW5jLnNlcmllcyA9IGZ1bmN0aW9uICh0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgaWYgKF9pc0FycmF5KHRhc2tzKSkge1xuICAgICAgICAgICAgYXN5bmMubWFwU2VyaWVzKHRhc2tzLCBmdW5jdGlvbiAoZm4sIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZuKSB7XG4gICAgICAgICAgICAgICAgICAgIGZuKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGFyZ3NbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKG51bGwsIGVyciwgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0ge307XG4gICAgICAgICAgICBhc3luYy5lYWNoU2VyaWVzKF9rZXlzKHRhc2tzKSwgZnVuY3Rpb24gKGssIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgdGFza3Nba10oZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gYXJnc1swXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXN1bHRzW2tdID0gYXJncztcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgYXN5bmMuaXRlcmF0b3IgPSBmdW5jdGlvbiAodGFza3MpIHtcbiAgICAgICAgdmFyIG1ha2VDYWxsYmFjayA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgdmFyIGZuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICh0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFza3NbaW5kZXhdLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmbi5uZXh0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZm4ubmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKGluZGV4IDwgdGFza3MubGVuZ3RoIC0gMSkgPyBtYWtlQ2FsbGJhY2soaW5kZXggKyAxKTogbnVsbDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gZm47XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBtYWtlQ2FsbGJhY2soMCk7XG4gICAgfTtcblxuICAgIGFzeW5jLmFwcGx5ID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShcbiAgICAgICAgICAgICAgICBudWxsLCBhcmdzLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgdmFyIF9jb25jYXQgPSBmdW5jdGlvbiAoZWFjaGZuLCBhcnIsIGZuLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgciA9IFtdO1xuICAgICAgICBlYWNoZm4oYXJyLCBmdW5jdGlvbiAoeCwgY2IpIHtcbiAgICAgICAgICAgIGZuKHgsIGZ1bmN0aW9uIChlcnIsIHkpIHtcbiAgICAgICAgICAgICAgICByID0gci5jb25jYXQoeSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgY2IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhlcnIsIHIpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGFzeW5jLmNvbmNhdCA9IGRvUGFyYWxsZWwoX2NvbmNhdCk7XG4gICAgYXN5bmMuY29uY2F0U2VyaWVzID0gZG9TZXJpZXMoX2NvbmNhdCk7XG5cbiAgICBhc3luYy53aGlsc3QgPSBmdW5jdGlvbiAodGVzdCwgaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0ZXN0KCkpIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhc3luYy53aGlsc3QodGVzdCwgaXRlcmF0b3IsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBhc3luYy5kb1doaWxzdCA9IGZ1bmN0aW9uIChpdGVyYXRvciwgdGVzdCwgY2FsbGJhY2spIHtcbiAgICAgICAgaXRlcmF0b3IoZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgaWYgKHRlc3QuYXBwbHkobnVsbCwgYXJncykpIHtcbiAgICAgICAgICAgICAgICBhc3luYy5kb1doaWxzdChpdGVyYXRvciwgdGVzdCwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzeW5jLnVudGlsID0gZnVuY3Rpb24gKHRlc3QsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAoIXRlc3QoKSkge1xuICAgICAgICAgICAgaXRlcmF0b3IoZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFzeW5jLnVudGlsKHRlc3QsIGl0ZXJhdG9yLCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgYXN5bmMuZG9VbnRpbCA9IGZ1bmN0aW9uIChpdGVyYXRvciwgdGVzdCwgY2FsbGJhY2spIHtcbiAgICAgICAgaXRlcmF0b3IoZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgaWYgKCF0ZXN0LmFwcGx5KG51bGwsIGFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgYXN5bmMuZG9VbnRpbChpdGVyYXRvciwgdGVzdCwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzeW5jLnF1ZXVlID0gZnVuY3Rpb24gKHdvcmtlciwgY29uY3VycmVuY3kpIHtcbiAgICAgICAgaWYgKGNvbmN1cnJlbmN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbmN1cnJlbmN5ID0gMTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBfaW5zZXJ0KHEsIGRhdGEsIHBvcywgY2FsbGJhY2spIHtcbiAgICAgICAgICBpZiAoIXEuc3RhcnRlZCl7XG4gICAgICAgICAgICBxLnN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIV9pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKGRhdGEubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAvLyBjYWxsIGRyYWluIGltbWVkaWF0ZWx5IGlmIHRoZXJlIGFyZSBubyB0YXNrc1xuICAgICAgICAgICAgIHJldHVybiBhc3luYy5zZXRJbW1lZGlhdGUoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgIGlmIChxLmRyYWluKSB7XG4gICAgICAgICAgICAgICAgICAgICBxLmRyYWluKCk7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgX2VhY2goZGF0YSwgZnVuY3Rpb24odGFzaykge1xuICAgICAgICAgICAgICB2YXIgaXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IHRhc2ssXG4gICAgICAgICAgICAgICAgICBjYWxsYmFjazogdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nID8gY2FsbGJhY2sgOiBudWxsXG4gICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgaWYgKHBvcykge1xuICAgICAgICAgICAgICAgIHEudGFza3MudW5zaGlmdChpdGVtKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBxLnRhc2tzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAocS5zYXR1cmF0ZWQgJiYgcS50YXNrcy5sZW5ndGggPT09IHEuY29uY3VycmVuY3kpIHtcbiAgICAgICAgICAgICAgICAgIHEuc2F0dXJhdGVkKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXN5bmMuc2V0SW1tZWRpYXRlKHEucHJvY2Vzcyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgd29ya2VycyA9IDA7XG4gICAgICAgIHZhciBxID0ge1xuICAgICAgICAgICAgdGFza3M6IFtdLFxuICAgICAgICAgICAgY29uY3VycmVuY3k6IGNvbmN1cnJlbmN5LFxuICAgICAgICAgICAgc2F0dXJhdGVkOiBudWxsLFxuICAgICAgICAgICAgZW1wdHk6IG51bGwsXG4gICAgICAgICAgICBkcmFpbjogbnVsbCxcbiAgICAgICAgICAgIHN0YXJ0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgcGF1c2VkOiBmYWxzZSxcbiAgICAgICAgICAgIHB1c2g6IGZ1bmN0aW9uIChkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICBfaW5zZXJ0KHEsIGRhdGEsIGZhbHNlLCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2lsbDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICBxLmRyYWluID0gbnVsbDtcbiAgICAgICAgICAgICAgcS50YXNrcyA9IFtdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVuc2hpZnQ6IGZ1bmN0aW9uIChkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICBfaW5zZXJ0KHEsIGRhdGEsIHRydWUsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9jZXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFxLnBhdXNlZCAmJiB3b3JrZXJzIDwgcS5jb25jdXJyZW5jeSAmJiBxLnRhc2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFzayA9IHEudGFza3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHEuZW1wdHkgJiYgcS50YXNrcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHEuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3b3JrZXJzICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2VycyAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhc2suY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLmNhbGxiYWNrLmFwcGx5KHRhc2ssIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocS5kcmFpbiAmJiBxLnRhc2tzLmxlbmd0aCArIHdvcmtlcnMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxLmRyYWluKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBxLnByb2Nlc3MoKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNiID0gb25seV9vbmNlKG5leHQpO1xuICAgICAgICAgICAgICAgICAgICB3b3JrZXIodGFzay5kYXRhLCBjYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxlbmd0aDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBxLnRhc2tzLmxlbmd0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBydW5uaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlcnM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaWRsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHEudGFza3MubGVuZ3RoICsgd29ya2VycyA9PT0gMDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXVzZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChxLnBhdXNlZCA9PT0gdHJ1ZSkgeyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICBxLnBhdXNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcS5wcm9jZXNzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHEucGF1c2VkID09PSBmYWxzZSkgeyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICBxLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHEucHJvY2VzcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcTtcbiAgICB9O1xuICAgIFxuICAgIGFzeW5jLnByaW9yaXR5UXVldWUgPSBmdW5jdGlvbiAod29ya2VyLCBjb25jdXJyZW5jeSkge1xuICAgICAgICBcbiAgICAgICAgZnVuY3Rpb24gX2NvbXBhcmVUYXNrcyhhLCBiKXtcbiAgICAgICAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBmdW5jdGlvbiBfYmluYXJ5U2VhcmNoKHNlcXVlbmNlLCBpdGVtLCBjb21wYXJlKSB7XG4gICAgICAgICAgdmFyIGJlZyA9IC0xLFxuICAgICAgICAgICAgICBlbmQgPSBzZXF1ZW5jZS5sZW5ndGggLSAxO1xuICAgICAgICAgIHdoaWxlIChiZWcgPCBlbmQpIHtcbiAgICAgICAgICAgIHZhciBtaWQgPSBiZWcgKyAoKGVuZCAtIGJlZyArIDEpID4+PiAxKTtcbiAgICAgICAgICAgIGlmIChjb21wYXJlKGl0ZW0sIHNlcXVlbmNlW21pZF0pID49IDApIHtcbiAgICAgICAgICAgICAgYmVnID0gbWlkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZW5kID0gbWlkIC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJlZztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgZnVuY3Rpb24gX2luc2VydChxLCBkYXRhLCBwcmlvcml0eSwgY2FsbGJhY2spIHtcbiAgICAgICAgICBpZiAoIXEuc3RhcnRlZCl7XG4gICAgICAgICAgICBxLnN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIV9pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKGRhdGEubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAvLyBjYWxsIGRyYWluIGltbWVkaWF0ZWx5IGlmIHRoZXJlIGFyZSBubyB0YXNrc1xuICAgICAgICAgICAgIHJldHVybiBhc3luYy5zZXRJbW1lZGlhdGUoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgIGlmIChxLmRyYWluKSB7XG4gICAgICAgICAgICAgICAgICAgICBxLmRyYWluKCk7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgX2VhY2goZGF0YSwgZnVuY3Rpb24odGFzaykge1xuICAgICAgICAgICAgICB2YXIgaXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IHRhc2ssXG4gICAgICAgICAgICAgICAgICBwcmlvcml0eTogcHJpb3JpdHksXG4gICAgICAgICAgICAgICAgICBjYWxsYmFjazogdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nID8gY2FsbGJhY2sgOiBudWxsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICBxLnRhc2tzLnNwbGljZShfYmluYXJ5U2VhcmNoKHEudGFza3MsIGl0ZW0sIF9jb21wYXJlVGFza3MpICsgMSwgMCwgaXRlbSk7XG5cbiAgICAgICAgICAgICAgaWYgKHEuc2F0dXJhdGVkICYmIHEudGFza3MubGVuZ3RoID09PSBxLmNvbmN1cnJlbmN5KSB7XG4gICAgICAgICAgICAgICAgICBxLnNhdHVyYXRlZCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFzeW5jLnNldEltbWVkaWF0ZShxLnByb2Nlc3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBTdGFydCB3aXRoIGEgbm9ybWFsIHF1ZXVlXG4gICAgICAgIHZhciBxID0gYXN5bmMucXVldWUod29ya2VyLCBjb25jdXJyZW5jeSk7XG4gICAgICAgIFxuICAgICAgICAvLyBPdmVycmlkZSBwdXNoIHRvIGFjY2VwdCBzZWNvbmQgcGFyYW1ldGVyIHJlcHJlc2VudGluZyBwcmlvcml0eVxuICAgICAgICBxLnB1c2ggPSBmdW5jdGlvbiAoZGF0YSwgcHJpb3JpdHksIGNhbGxiYWNrKSB7XG4gICAgICAgICAgX2luc2VydChxLCBkYXRhLCBwcmlvcml0eSwgY2FsbGJhY2spO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gUmVtb3ZlIHVuc2hpZnQgZnVuY3Rpb25cbiAgICAgICAgZGVsZXRlIHEudW5zaGlmdDtcblxuICAgICAgICByZXR1cm4gcTtcbiAgICB9O1xuXG4gICAgYXN5bmMuY2FyZ28gPSBmdW5jdGlvbiAod29ya2VyLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciB3b3JraW5nICAgICA9IGZhbHNlLFxuICAgICAgICAgICAgdGFza3MgICAgICAgPSBbXTtcblxuICAgICAgICB2YXIgY2FyZ28gPSB7XG4gICAgICAgICAgICB0YXNrczogdGFza3MsXG4gICAgICAgICAgICBwYXlsb2FkOiBwYXlsb2FkLFxuICAgICAgICAgICAgc2F0dXJhdGVkOiBudWxsLFxuICAgICAgICAgICAgZW1wdHk6IG51bGwsXG4gICAgICAgICAgICBkcmFpbjogbnVsbCxcbiAgICAgICAgICAgIGRyYWluZWQ6IHRydWUsXG4gICAgICAgICAgICBwdXNoOiBmdW5jdGlvbiAoZGF0YSwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF9lYWNoKGRhdGEsIGZ1bmN0aW9uKHRhc2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGFza3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB0YXNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyA/IGNhbGxiYWNrIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY2FyZ28uZHJhaW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FyZ28uc2F0dXJhdGVkICYmIHRhc2tzLmxlbmd0aCA9PT0gcGF5bG9hZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FyZ28uc2F0dXJhdGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBhc3luYy5zZXRJbW1lZGlhdGUoY2FyZ28ucHJvY2Vzcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvY2VzczogZnVuY3Rpb24gcHJvY2VzcygpIHtcbiAgICAgICAgICAgICAgICBpZiAod29ya2luZykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmICh0YXNrcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FyZ28uZHJhaW4gJiYgIWNhcmdvLmRyYWluZWQpIGNhcmdvLmRyYWluKCk7XG4gICAgICAgICAgICAgICAgICAgIGNhcmdvLmRyYWluZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIHRzID0gdHlwZW9mIHBheWxvYWQgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0YXNrcy5zcGxpY2UoMCwgcGF5bG9hZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhc2tzLnNwbGljZSgwLCB0YXNrcy5sZW5ndGgpO1xuXG4gICAgICAgICAgICAgICAgdmFyIGRzID0gX21hcCh0cywgZnVuY3Rpb24gKHRhc2spIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhc2suZGF0YTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmKGNhcmdvLmVtcHR5KSBjYXJnby5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHdvcmtpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHdvcmtlcihkcywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB3b3JraW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgICAgICAgICAgIF9lYWNoKHRzLCBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmNhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGVuZ3RoOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhc2tzLmxlbmd0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBydW5uaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBjYXJnbztcbiAgICB9O1xuXG4gICAgdmFyIF9jb25zb2xlX2ZuID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChmbikge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgZm4uYXBwbHkobnVsbCwgYXJncy5jb25jYXQoW2Z1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uc29sZS5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25zb2xlW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZWFjaChhcmdzLCBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbbmFtZV0oeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1dKSk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBhc3luYy5sb2cgPSBfY29uc29sZV9mbignbG9nJyk7XG4gICAgYXN5bmMuZGlyID0gX2NvbnNvbGVfZm4oJ2RpcicpO1xuICAgIC8qYXN5bmMuaW5mbyA9IF9jb25zb2xlX2ZuKCdpbmZvJyk7XG4gICAgYXN5bmMud2FybiA9IF9jb25zb2xlX2ZuKCd3YXJuJyk7XG4gICAgYXN5bmMuZXJyb3IgPSBfY29uc29sZV9mbignZXJyb3InKTsqL1xuXG4gICAgYXN5bmMubWVtb2l6ZSA9IGZ1bmN0aW9uIChmbiwgaGFzaGVyKSB7XG4gICAgICAgIHZhciBtZW1vID0ge307XG4gICAgICAgIHZhciBxdWV1ZXMgPSB7fTtcbiAgICAgICAgaGFzaGVyID0gaGFzaGVyIHx8IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJncy5wb3AoKTtcbiAgICAgICAgICAgIHZhciBrZXkgPSBoYXNoZXIuYXBwbHkobnVsbCwgYXJncyk7XG4gICAgICAgICAgICBpZiAoa2V5IGluIG1lbW8pIHtcbiAgICAgICAgICAgICAgICBhc3luYy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG51bGwsIG1lbW9ba2V5XSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChrZXkgaW4gcXVldWVzKSB7XG4gICAgICAgICAgICAgICAgcXVldWVzW2tleV0ucHVzaChjYWxsYmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWV1ZXNba2V5XSA9IFtjYWxsYmFja107XG4gICAgICAgICAgICAgICAgZm4uYXBwbHkobnVsbCwgYXJncy5jb25jYXQoW2Z1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVtb1trZXldID0gYXJndW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcSA9IHF1ZXVlc1trZXldO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcXVldWVzW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gcS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICBxW2ldLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBtZW1vaXplZC5tZW1vID0gbWVtbztcbiAgICAgICAgbWVtb2l6ZWQudW5tZW1vaXplZCA9IGZuO1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWQ7XG4gICAgfTtcblxuICAgIGFzeW5jLnVubWVtb2l6ZSA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChmbi51bm1lbW9pemVkIHx8IGZuKS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgYXN5bmMudGltZXMgPSBmdW5jdGlvbiAoY291bnQsIGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgY291bnRlciA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGNvdW50ZXIucHVzaChpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXN5bmMubWFwKGNvdW50ZXIsIGl0ZXJhdG9yLCBjYWxsYmFjayk7XG4gICAgfTtcblxuICAgIGFzeW5jLnRpbWVzU2VyaWVzID0gZnVuY3Rpb24gKGNvdW50LCBpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGNvdW50ZXIgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBjb3VudGVyLnB1c2goaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFzeW5jLm1hcFNlcmllcyhjb3VudGVyLCBpdGVyYXRvciwgY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBhc3luYy5zZXEgPSBmdW5jdGlvbiAoLyogZnVuY3Rpb25zLi4uICovKSB7XG4gICAgICAgIHZhciBmbnMgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmdzLnBvcCgpO1xuICAgICAgICAgICAgYXN5bmMucmVkdWNlKGZucywgYXJncywgZnVuY3Rpb24gKG5ld2FyZ3MsIGZuLCBjYikge1xuICAgICAgICAgICAgICAgIGZuLmFwcGx5KHRoYXQsIG5ld2FyZ3MuY29uY2F0KFtmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSBhcmd1bWVudHNbMF07XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXh0YXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNiKGVyciwgbmV4dGFyZ3MpO1xuICAgICAgICAgICAgICAgIH1dKSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmdW5jdGlvbiAoZXJyLCByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkodGhhdCwgW2Vycl0uY29uY2F0KHJlc3VsdHMpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBhc3luYy5jb21wb3NlID0gZnVuY3Rpb24gKC8qIGZ1bmN0aW9ucy4uLiAqLykge1xuICAgICAgcmV0dXJuIGFzeW5jLnNlcS5hcHBseShudWxsLCBBcnJheS5wcm90b3R5cGUucmV2ZXJzZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgIH07XG5cbiAgICB2YXIgX2FwcGx5RWFjaCA9IGZ1bmN0aW9uIChlYWNoZm4sIGZucyAvKmFyZ3MuLi4qLykge1xuICAgICAgICB2YXIgZ28gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmdzLnBvcCgpO1xuICAgICAgICAgICAgcmV0dXJuIGVhY2hmbihmbnMsIGZ1bmN0aW9uIChmbiwgY2IpIHtcbiAgICAgICAgICAgICAgICBmbi5hcHBseSh0aGF0LCBhcmdzLmNvbmNhdChbY2JdKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FsbGJhY2spO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTtcbiAgICAgICAgICAgIHJldHVybiBnby5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnbztcbiAgICAgICAgfVxuICAgIH07XG4gICAgYXN5bmMuYXBwbHlFYWNoID0gZG9QYXJhbGxlbChfYXBwbHlFYWNoKTtcbiAgICBhc3luYy5hcHBseUVhY2hTZXJpZXMgPSBkb1NlcmllcyhfYXBwbHlFYWNoKTtcblxuICAgIGFzeW5jLmZvcmV2ZXIgPSBmdW5jdGlvbiAoZm4sIGNhbGxiYWNrKSB7XG4gICAgICAgIGZ1bmN0aW9uIG5leHQoZXJyKSB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmbihuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBuZXh0KCk7XG4gICAgfTtcblxuICAgIC8vIE5vZGUuanNcbiAgICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBhc3luYztcbiAgICB9XG4gICAgLy8gQU1EIC8gUmVxdWlyZUpTXG4gICAgZWxzZSBpZiAodHlwZW9mIGRlZmluZSAhPT0gJ3VuZGVmaW5lZCcgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoW10sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBhc3luYztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIGluY2x1ZGVkIGRpcmVjdGx5IHZpYSA8c2NyaXB0PiB0YWdcbiAgICBlbHNlIHtcbiAgICAgICAgcm9vdC5hc3luYyA9IGFzeW5jO1xuICAgIH1cblxufSgpKTtcbiIsIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG52YXIgRW1pdHRlciA9IHJlcXVpcmUoJ2VtaXR0ZXInKTtcbnZhciByZWR1Y2UgPSByZXF1aXJlKCdyZWR1Y2UnKTtcblxuLyoqXG4gKiBSb290IHJlZmVyZW5jZSBmb3IgaWZyYW1lcy5cbiAqL1xuXG52YXIgcm9vdCA9ICd1bmRlZmluZWQnID09IHR5cGVvZiB3aW5kb3dcbiAgPyB0aGlzXG4gIDogd2luZG93O1xuXG4vKipcbiAqIE5vb3AuXG4gKi9cblxuZnVuY3Rpb24gbm9vcCgpe307XG5cbi8qKlxuICogQ2hlY2sgaWYgYG9iamAgaXMgYSBob3N0IG9iamVjdCxcbiAqIHdlIGRvbid0IHdhbnQgdG8gc2VyaWFsaXplIHRoZXNlIDopXG4gKlxuICogVE9ETzogZnV0dXJlIHByb29mLCBtb3ZlIHRvIGNvbXBvZW50IGxhbmRcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNIb3N0KG9iaikge1xuICB2YXIgc3RyID0ge30udG9TdHJpbmcuY2FsbChvYmopO1xuXG4gIHN3aXRjaCAoc3RyKSB7XG4gICAgY2FzZSAnW29iamVjdCBGaWxlXSc6XG4gICAgY2FzZSAnW29iamVjdCBCbG9iXSc6XG4gICAgY2FzZSAnW29iamVjdCBGb3JtRGF0YV0nOlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIERldGVybWluZSBYSFIuXG4gKi9cblxuZnVuY3Rpb24gZ2V0WEhSKCkge1xuICBpZiAocm9vdC5YTUxIdHRwUmVxdWVzdFxuICAgICYmICgnZmlsZTonICE9IHJvb3QubG9jYXRpb24ucHJvdG9jb2wgfHwgIXJvb3QuQWN0aXZlWE9iamVjdCkpIHtcbiAgICByZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0O1xuICB9IGVsc2Uge1xuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAuNi4wJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjMuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUCcpOyB9IGNhdGNoKGUpIHt9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYWRkZWQgdG8gc3VwcG9ydCBJRS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxudmFyIHRyaW0gPSAnJy50cmltXG4gID8gZnVuY3Rpb24ocykgeyByZXR1cm4gcy50cmltKCk7IH1cbiAgOiBmdW5jdGlvbihzKSB7IHJldHVybiBzLnJlcGxhY2UoLyheXFxzKnxcXHMqJCkvZywgJycpOyB9O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNPYmplY3Qob2JqKSB7XG4gIHJldHVybiBvYmogPT09IE9iamVjdChvYmopO1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gYG9iamAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VyaWFsaXplKG9iaikge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHZhciBwYWlycyA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKG51bGwgIT0gb2JqW2tleV0pIHtcbiAgICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSlcbiAgICAgICAgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQob2JqW2tleV0pKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhaXJzLmpvaW4oJyYnKTtcbn1cblxuLyoqXG4gKiBFeHBvc2Ugc2VyaWFsaXphdGlvbiBtZXRob2QuXG4gKi9cblxuIHJlcXVlc3Quc2VyaWFsaXplT2JqZWN0ID0gc2VyaWFsaXplO1xuXG4gLyoqXG4gICogUGFyc2UgdGhlIGdpdmVuIHgtd3d3LWZvcm0tdXJsZW5jb2RlZCBgc3RyYC5cbiAgKlxuICAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICogQGFwaSBwcml2YXRlXG4gICovXG5cbmZ1bmN0aW9uIHBhcnNlU3RyaW5nKHN0cikge1xuICB2YXIgb2JqID0ge307XG4gIHZhciBwYWlycyA9IHN0ci5zcGxpdCgnJicpO1xuICB2YXIgcGFydHM7XG4gIHZhciBwYWlyO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBwYWlycy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIHBhaXIgPSBwYWlyc1tpXTtcbiAgICBwYXJ0cyA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzBdKV0gPSBkZWNvZGVVUklDb21wb25lbnQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBFeHBvc2UgcGFyc2VyLlxuICovXG5cbnJlcXVlc3QucGFyc2VTdHJpbmcgPSBwYXJzZVN0cmluZztcblxuLyoqXG4gKiBEZWZhdWx0IE1JTUUgdHlwZSBtYXAuXG4gKlxuICogICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICovXG5cbnJlcXVlc3QudHlwZXMgPSB7XG4gIGh0bWw6ICd0ZXh0L2h0bWwnLFxuICBqc29uOiAnYXBwbGljYXRpb24vanNvbicsXG4gIHhtbDogJ2FwcGxpY2F0aW9uL3htbCcsXG4gIHVybGVuY29kZWQ6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybS1kYXRhJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbi8qKlxuICogRGVmYXVsdCBzZXJpYWxpemF0aW9uIG1hcC5cbiAqXG4gKiAgICAgc3VwZXJhZ2VudC5zZXJpYWxpemVbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24ob2JqKXtcbiAqICAgICAgIHJldHVybiAnZ2VuZXJhdGVkIHhtbCBoZXJlJztcbiAqICAgICB9O1xuICpcbiAqL1xuXG4gcmVxdWVzdC5zZXJpYWxpemUgPSB7XG4gICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzogc2VyaWFsaXplLFxuICAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnN0cmluZ2lmeVxuIH07XG5cbiAvKipcbiAgKiBEZWZhdWx0IHBhcnNlcnMuXG4gICpcbiAgKiAgICAgc3VwZXJhZ2VudC5wYXJzZVsnYXBwbGljYXRpb24veG1sJ10gPSBmdW5jdGlvbihzdHIpe1xuICAqICAgICAgIHJldHVybiB7IG9iamVjdCBwYXJzZWQgZnJvbSBzdHIgfTtcbiAgKiAgICAgfTtcbiAgKlxuICAqL1xuXG5yZXF1ZXN0LnBhcnNlID0ge1xuICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzogcGFyc2VTdHJpbmcsXG4gICdhcHBsaWNhdGlvbi9qc29uJzogSlNPTi5wYXJzZVxufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gaGVhZGVyIGBzdHJgIGludG9cbiAqIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBtYXBwZWQgZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKHN0cikge1xuICB2YXIgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKTtcbiAgdmFyIGZpZWxkcyA9IHt9O1xuICB2YXIgaW5kZXg7XG4gIHZhciBsaW5lO1xuICB2YXIgZmllbGQ7XG4gIHZhciB2YWw7XG5cbiAgbGluZXMucG9wKCk7IC8vIHRyYWlsaW5nIENSTEZcblxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gbGluZXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICBsaW5lID0gbGluZXNbaV07XG4gICAgaW5kZXggPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICBmaWVsZCA9IGxpbmUuc2xpY2UoMCwgaW5kZXgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gdHJpbShsaW5lLnNsaWNlKGluZGV4ICsgMSkpO1xuICAgIGZpZWxkc1tmaWVsZF0gPSB2YWw7XG4gIH1cblxuICByZXR1cm4gZmllbGRzO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgbWltZSB0eXBlIGZvciB0aGUgZ2l2ZW4gYHN0cmAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gdHlwZShzdHIpe1xuICByZXR1cm4gc3RyLnNwbGl0KC8gKjsgKi8pLnNoaWZ0KCk7XG59O1xuXG4vKipcbiAqIFJldHVybiBoZWFkZXIgZmllbGQgcGFyYW1ldGVycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJhbXMoc3RyKXtcbiAgcmV0dXJuIHJlZHVjZShzdHIuc3BsaXQoLyAqOyAqLyksIGZ1bmN0aW9uKG9iaiwgc3RyKXtcbiAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoLyAqPSAqLylcbiAgICAgICwga2V5ID0gcGFydHMuc2hpZnQoKVxuICAgICAgLCB2YWwgPSBwYXJ0cy5zaGlmdCgpO1xuXG4gICAgaWYgKGtleSAmJiB2YWwpIG9ialtrZXldID0gdmFsO1xuICAgIHJldHVybiBvYmo7XG4gIH0sIHt9KTtcbn07XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVzcG9uc2VgIHdpdGggdGhlIGdpdmVuIGB4aHJgLlxuICpcbiAqICAtIHNldCBmbGFncyAoLm9rLCAuZXJyb3IsIGV0YylcbiAqICAtIHBhcnNlIGhlYWRlclxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICBBbGlhc2luZyBgc3VwZXJhZ2VudGAgYXMgYHJlcXVlc3RgIGlzIG5pY2U6XG4gKlxuICogICAgICByZXF1ZXN0ID0gc3VwZXJhZ2VudDtcbiAqXG4gKiAgV2UgY2FuIHVzZSB0aGUgcHJvbWlzZS1saWtlIEFQSSwgb3IgcGFzcyBjYWxsYmFja3M6XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnLycpLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICogICAgICByZXF1ZXN0LmdldCgnLycsIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIFNlbmRpbmcgZGF0YSBjYW4gYmUgY2hhaW5lZDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAuc2VuZCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5wb3N0KClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBPciBmdXJ0aGVyIHJlZHVjZWQgdG8gYSBzaW5nbGUgY2FsbCBmb3Igc2ltcGxlIGNhc2VzOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIEBwYXJhbSB7WE1MSFRUUFJlcXVlc3R9IHhoclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIFJlc3BvbnNlKHJlcSwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdGhpcy5yZXEgPSByZXE7XG4gIHRoaXMueGhyID0gdGhpcy5yZXEueGhyO1xuICB0aGlzLnRleHQgPSB0aGlzLnJlcS5tZXRob2QgIT0nSEVBRCcgXG4gICAgID8gdGhpcy54aHIucmVzcG9uc2VUZXh0IFxuICAgICA6IG51bGw7XG4gIHRoaXMuc2V0U3RhdHVzUHJvcGVydGllcyh0aGlzLnhoci5zdGF0dXMpO1xuICB0aGlzLmhlYWRlciA9IHRoaXMuaGVhZGVycyA9IHBhcnNlSGVhZGVyKHRoaXMueGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTtcbiAgLy8gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHNvbWV0aW1lcyBmYWxzZWx5IHJldHVybnMgXCJcIiBmb3IgQ09SUyByZXF1ZXN0cywgYnV0XG4gIC8vIGdldFJlc3BvbnNlSGVhZGVyIHN0aWxsIHdvcmtzLiBzbyB3ZSBnZXQgY29udGVudC10eXBlIGV2ZW4gaWYgZ2V0dGluZ1xuICAvLyBvdGhlciBoZWFkZXJzIGZhaWxzLlxuICB0aGlzLmhlYWRlclsnY29udGVudC10eXBlJ10gPSB0aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcignY29udGVudC10eXBlJyk7XG4gIHRoaXMuc2V0SGVhZGVyUHJvcGVydGllcyh0aGlzLmhlYWRlcik7XG4gIHRoaXMuYm9keSA9IHRoaXMucmVxLm1ldGhvZCAhPSAnSEVBRCdcbiAgICA/IHRoaXMucGFyc2VCb2R5KHRoaXMudGV4dClcbiAgICA6IG51bGw7XG59XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgYGZpZWxkYCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuaGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xufTtcblxuLyoqXG4gKiBTZXQgaGVhZGVyIHJlbGF0ZWQgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gYC50eXBlYCB0aGUgY29udGVudCB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gKlxuICogQSByZXNwb25zZSBvZiBcIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOFwiXG4gKiB3aWxsIHByb3ZpZGUgeW91IHdpdGggYSBgLnR5cGVgIG9mIFwidGV4dC9wbGFpblwiLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBoZWFkZXJcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5zZXRIZWFkZXJQcm9wZXJ0aWVzID0gZnVuY3Rpb24oaGVhZGVyKXtcbiAgLy8gY29udGVudC10eXBlXG4gIHZhciBjdCA9IHRoaXMuaGVhZGVyWydjb250ZW50LXR5cGUnXSB8fCAnJztcbiAgdGhpcy50eXBlID0gdHlwZShjdCk7XG5cbiAgLy8gcGFyYW1zXG4gIHZhciBvYmogPSBwYXJhbXMoY3QpO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB0aGlzW2tleV0gPSBvYmpba2V5XTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGJvZHkgYHN0cmAuXG4gKlxuICogVXNlZCBmb3IgYXV0by1wYXJzaW5nIG9mIGJvZGllcy4gUGFyc2Vyc1xuICogYXJlIGRlZmluZWQgb24gdGhlIGBzdXBlcmFnZW50LnBhcnNlYCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUucGFyc2VCb2R5ID0gZnVuY3Rpb24oc3RyKXtcbiAgdmFyIHBhcnNlID0gcmVxdWVzdC5wYXJzZVt0aGlzLnR5cGVdO1xuICByZXR1cm4gcGFyc2UgJiYgc3RyICYmIHN0ci5sZW5ndGhcbiAgICA/IHBhcnNlKHN0cilcbiAgICA6IG51bGw7XG59O1xuXG4vKipcbiAqIFNldCBmbGFncyBzdWNoIGFzIGAub2tgIGJhc2VkIG9uIGBzdGF0dXNgLlxuICpcbiAqIEZvciBleGFtcGxlIGEgMnh4IHJlc3BvbnNlIHdpbGwgZ2l2ZSB5b3UgYSBgLm9rYCBvZiBfX3RydWVfX1xuICogd2hlcmVhcyA1eHggd2lsbCBiZSBfX2ZhbHNlX18gYW5kIGAuZXJyb3JgIHdpbGwgYmUgX190cnVlX18uIFRoZVxuICogYC5jbGllbnRFcnJvcmAgYW5kIGAuc2VydmVyRXJyb3JgIGFyZSBhbHNvIGF2YWlsYWJsZSB0byBiZSBtb3JlXG4gKiBzcGVjaWZpYywgYW5kIGAuc3RhdHVzVHlwZWAgaXMgdGhlIGNsYXNzIG9mIGVycm9yIHJhbmdpbmcgZnJvbSAxLi41XG4gKiBzb21ldGltZXMgdXNlZnVsIGZvciBtYXBwaW5nIHJlc3BvbmQgY29sb3JzIGV0Yy5cbiAqXG4gKiBcInN1Z2FyXCIgcHJvcGVydGllcyBhcmUgYWxzbyBkZWZpbmVkIGZvciBjb21tb24gY2FzZXMuIEN1cnJlbnRseSBwcm92aWRpbmc6XG4gKlxuICogICAtIC5ub0NvbnRlbnRcbiAqICAgLSAuYmFkUmVxdWVzdFxuICogICAtIC51bmF1dGhvcml6ZWRcbiAqICAgLSAubm90QWNjZXB0YWJsZVxuICogICAtIC5ub3RGb3VuZFxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBzdGF0dXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5zZXRTdGF0dXNQcm9wZXJ0aWVzID0gZnVuY3Rpb24oc3RhdHVzKXtcbiAgdmFyIHR5cGUgPSBzdGF0dXMgLyAxMDAgfCAwO1xuXG4gIC8vIHN0YXR1cyAvIGNsYXNzXG4gIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICB0aGlzLnN0YXR1c1R5cGUgPSB0eXBlO1xuXG4gIC8vIGJhc2ljc1xuICB0aGlzLmluZm8gPSAxID09IHR5cGU7XG4gIHRoaXMub2sgPSAyID09IHR5cGU7XG4gIHRoaXMuY2xpZW50RXJyb3IgPSA0ID09IHR5cGU7XG4gIHRoaXMuc2VydmVyRXJyb3IgPSA1ID09IHR5cGU7XG4gIHRoaXMuZXJyb3IgPSAoNCA9PSB0eXBlIHx8IDUgPT0gdHlwZSlcbiAgICA/IHRoaXMudG9FcnJvcigpXG4gICAgOiBmYWxzZTtcblxuICAvLyBzdWdhclxuICB0aGlzLmFjY2VwdGVkID0gMjAyID09IHN0YXR1cztcbiAgdGhpcy5ub0NvbnRlbnQgPSAyMDQgPT0gc3RhdHVzIHx8IDEyMjMgPT0gc3RhdHVzO1xuICB0aGlzLmJhZFJlcXVlc3QgPSA0MDAgPT0gc3RhdHVzO1xuICB0aGlzLnVuYXV0aG9yaXplZCA9IDQwMSA9PSBzdGF0dXM7XG4gIHRoaXMubm90QWNjZXB0YWJsZSA9IDQwNiA9PSBzdGF0dXM7XG4gIHRoaXMubm90Rm91bmQgPSA0MDQgPT0gc3RhdHVzO1xuICB0aGlzLmZvcmJpZGRlbiA9IDQwMyA9PSBzdGF0dXM7XG59O1xuXG4vKipcbiAqIFJldHVybiBhbiBgRXJyb3JgIHJlcHJlc2VudGF0aXZlIG9mIHRoaXMgcmVzcG9uc2UuXG4gKlxuICogQHJldHVybiB7RXJyb3J9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS50b0Vycm9yID0gZnVuY3Rpb24oKXtcbiAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICB2YXIgbWV0aG9kID0gcmVxLm1ldGhvZDtcbiAgdmFyIHVybCA9IHJlcS51cmw7XG5cbiAgdmFyIG1zZyA9ICdjYW5ub3QgJyArIG1ldGhvZCArICcgJyArIHVybCArICcgKCcgKyB0aGlzLnN0YXR1cyArICcpJztcbiAgdmFyIGVyciA9IG5ldyBFcnJvcihtc2cpO1xuICBlcnIuc3RhdHVzID0gdGhpcy5zdGF0dXM7XG4gIGVyci5tZXRob2QgPSBtZXRob2Q7XG4gIGVyci51cmwgPSB1cmw7XG5cbiAgcmV0dXJuIGVycjtcbn07XG5cbi8qKlxuICogRXhwb3NlIGBSZXNwb25zZWAuXG4gKi9cblxucmVxdWVzdC5SZXNwb25zZSA9IFJlc3BvbnNlO1xuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgYFJlcXVlc3RgIHdpdGggdGhlIGdpdmVuIGBtZXRob2RgIGFuZCBgdXJsYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbWV0aG9kXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIFJlcXVlc3QobWV0aG9kLCB1cmwpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBFbWl0dGVyLmNhbGwodGhpcyk7XG4gIHRoaXMuX3F1ZXJ5ID0gdGhpcy5fcXVlcnkgfHwgW107XG4gIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICB0aGlzLnVybCA9IHVybDtcbiAgdGhpcy5oZWFkZXIgPSB7fTtcbiAgdGhpcy5faGVhZGVyID0ge307XG4gIHRoaXMub24oJ2VuZCcsIGZ1bmN0aW9uKCl7XG4gICAgdmFyIGVyciA9IG51bGw7XG4gICAgdmFyIHJlcyA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgcmVzID0gbmV3IFJlc3BvbnNlKHNlbGYpOyBcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIGVyciA9IG5ldyBFcnJvcignUGFyc2VyIGlzIHVuYWJsZSB0byBwYXJzZSB0aGUgcmVzcG9uc2UnKTtcbiAgICAgIGVyci5wYXJzZSA9IHRydWU7XG4gICAgICBlcnIub3JpZ2luYWwgPSBlO1xuICAgIH1cblxuICAgIHNlbGYuY2FsbGJhY2soZXJyLCByZXMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBNaXhpbiBgRW1pdHRlcmAuXG4gKi9cblxuRW1pdHRlcihSZXF1ZXN0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogQWxsb3cgZm9yIGV4dGVuc2lvblxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uKGZuKSB7XG4gIGZuKHRoaXMpO1xuICByZXR1cm4gdGhpcztcbn1cblxuLyoqXG4gKiBTZXQgdGltZW91dCB0byBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnRpbWVvdXQgPSBmdW5jdGlvbihtcyl7XG4gIHRoaXMuX3RpbWVvdXQgPSBtcztcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIENsZWFyIHByZXZpb3VzIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNsZWFyVGltZW91dCA9IGZ1bmN0aW9uKCl7XG4gIHRoaXMuX3RpbWVvdXQgPSAwO1xuICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWJvcnQgdGhlIHJlcXVlc3QsIGFuZCBjbGVhciBwb3RlbnRpYWwgdGltZW91dC5cbiAqXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hYm9ydCA9IGZ1bmN0aW9uKCl7XG4gIGlmICh0aGlzLmFib3J0ZWQpIHJldHVybjtcbiAgdGhpcy5hYm9ydGVkID0gdHJ1ZTtcbiAgdGhpcy54aHIuYWJvcnQoKTtcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcbiAgdGhpcy5lbWl0KCdhYm9ydCcpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciBgZmllbGRgIHRvIGB2YWxgLCBvciBtdWx0aXBsZSBmaWVsZHMgd2l0aCBvbmUgb2JqZWN0LlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5zZXQoJ1gtQVBJLUtleScsICdmb29iYXInKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCh7IEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLCAnWC1BUEktS2V5JzogJ2Zvb2JhcicgfSlcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oZmllbGQsIHZhbCl7XG4gIGlmIChpc09iamVjdChmaWVsZCkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZmllbGQpIHtcbiAgICAgIHRoaXMuc2V0KGtleSwgZmllbGRba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXSA9IHZhbDtcbiAgdGhpcy5oZWFkZXJbZmllbGRdID0gdmFsO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmVtb3ZlIGhlYWRlciBgZmllbGRgLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogICAgICByZXEuZ2V0KCcvJylcbiAqICAgICAgICAudW5zZXQoJ1VzZXItQWdlbnQnKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnVuc2V0ID0gZnVuY3Rpb24oZmllbGQpe1xuICBkZWxldGUgdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xuICBkZWxldGUgdGhpcy5oZWFkZXJbZmllbGRdO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGBmaWVsZGAgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5nZXRIZWFkZXIgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHJldHVybiB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV07XG59O1xuXG4vKipcbiAqIFNldCBDb250ZW50LVR5cGUgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCd4bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ2FwcGxpY2F0aW9uL3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudHlwZSA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBY2NlcHQgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMuanNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFjY2VwdFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQWNjZXB0JywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBdXRob3JpemF0aW9uIGZpZWxkIHZhbHVlIHdpdGggYHVzZXJgIGFuZCBgcGFzc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXNzXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXV0aCA9IGZ1bmN0aW9uKHVzZXIsIHBhc3Mpe1xuICB2YXIgc3RyID0gYnRvYSh1c2VyICsgJzonICsgcGFzcyk7XG4gIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgKyBzdHIpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuKiBBZGQgcXVlcnktc3RyaW5nIGB2YWxgLlxuKlxuKiBFeGFtcGxlczpcbipcbiogICByZXF1ZXN0LmdldCgnL3Nob2VzJylcbiogICAgIC5xdWVyeSgnc2l6ZT0xMCcpXG4qICAgICAucXVlcnkoeyBjb2xvcjogJ2JsdWUnIH0pXG4qXG4qIEBwYXJhbSB7T2JqZWN0fFN0cmluZ30gdmFsXG4qIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuKiBAYXBpIHB1YmxpY1xuKi9cblxuUmVxdWVzdC5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbih2YWwpe1xuICBpZiAoJ3N0cmluZycgIT0gdHlwZW9mIHZhbCkgdmFsID0gc2VyaWFsaXplKHZhbCk7XG4gIGlmICh2YWwpIHRoaXMuX3F1ZXJ5LnB1c2godmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFdyaXRlIHRoZSBmaWVsZCBgbmFtZWAgYW5kIGB2YWxgIGZvciBcIm11bHRpcGFydC9mb3JtLWRhdGFcIlxuICogcmVxdWVzdCBib2RpZXMuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoJ2ZvbycsICdiYXInKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ3xCbG9ifEZpbGV9IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmZpZWxkID0gZnVuY3Rpb24obmFtZSwgdmFsKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkgdGhpcy5fZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgdGhpcy5fZm9ybURhdGEuYXBwZW5kKG5hbWUsIHZhbCk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBRdWV1ZSB0aGUgZ2l2ZW4gYGZpbGVgIGFzIGFuIGF0dGFjaG1lbnQgdG8gdGhlIHNwZWNpZmllZCBgZmllbGRgLFxuICogd2l0aCBvcHRpb25hbCBgZmlsZW5hbWVgLlxuICpcbiAqIGBgYCBqc1xuICogcmVxdWVzdC5wb3N0KCcvdXBsb2FkJylcbiAqICAgLmF0dGFjaChuZXcgQmxvYihbJzxhIGlkPVwiYVwiPjxiIGlkPVwiYlwiPmhleSE8L2I+PC9hPiddLCB7IHR5cGU6IFwidGV4dC9odG1sXCJ9KSlcbiAqICAgLmVuZChjYWxsYmFjayk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEBwYXJhbSB7QmxvYnxGaWxlfSBmaWxlXG4gKiBAcGFyYW0ge1N0cmluZ30gZmlsZW5hbWVcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hdHRhY2ggPSBmdW5jdGlvbihmaWVsZCwgZmlsZSwgZmlsZW5hbWUpe1xuICBpZiAoIXRoaXMuX2Zvcm1EYXRhKSB0aGlzLl9mb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICB0aGlzLl9mb3JtRGF0YS5hcHBlbmQoZmllbGQsIGZpbGUsIGZpbGVuYW1lKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNlbmQgYGRhdGFgLCBkZWZhdWx0aW5nIHRoZSBgLnR5cGUoKWAgdG8gXCJqc29uXCIgd2hlblxuICogYW4gb2JqZWN0IGlzIGdpdmVuLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgIC8vIHF1ZXJ5c3RyaW5nXG4gKiAgICAgICByZXF1ZXN0LmdldCgnL3NlYXJjaCcpXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gbXVsdGlwbGUgZGF0YSBcIndyaXRlc1wiXG4gKiAgICAgICByZXF1ZXN0LmdldCgnL3NlYXJjaCcpXG4gKiAgICAgICAgIC5zZW5kKHsgc2VhcmNoOiAncXVlcnknIH0pXG4gKiAgICAgICAgIC5zZW5kKHsgcmFuZ2U6ICcxLi41JyB9KVxuICogICAgICAgICAuc2VuZCh7IG9yZGVyOiAnZGVzYycgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBtYW51YWwganNvblxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdqc29uJylcbiAqICAgICAgICAgLnNlbmQoJ3tcIm5hbWVcIjpcInRqXCJ9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGF1dG8ganNvblxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG1hbnVhbCB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKCduYW1lPXRqJylcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdmb3JtJylcbiAqICAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gZGVmYXVsdHMgdG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gICogICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAgKiAgICAgICAgLnNlbmQoJ25hbWU9dG9iaScpXG4gICogICAgICAgIC5zZW5kKCdzcGVjaWVzPWZlcnJldCcpXG4gICogICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBkYXRhXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uKGRhdGEpe1xuICB2YXIgb2JqID0gaXNPYmplY3QoZGF0YSk7XG4gIHZhciB0eXBlID0gdGhpcy5nZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScpO1xuXG4gIC8vIG1lcmdlXG4gIGlmIChvYmogJiYgaXNPYmplY3QodGhpcy5fZGF0YSkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xuICAgICAgdGhpcy5fZGF0YVtrZXldID0gZGF0YVtrZXldO1xuICAgIH1cbiAgfSBlbHNlIGlmICgnc3RyaW5nJyA9PSB0eXBlb2YgZGF0YSkge1xuICAgIGlmICghdHlwZSkgdGhpcy50eXBlKCdmb3JtJyk7XG4gICAgdHlwZSA9IHRoaXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKTtcbiAgICBpZiAoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgPT0gdHlwZSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuX2RhdGFcbiAgICAgICAgPyB0aGlzLl9kYXRhICsgJyYnICsgZGF0YVxuICAgICAgICA6IGRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RhdGEgPSAodGhpcy5fZGF0YSB8fCAnJykgKyBkYXRhO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGlmICghb2JqKSByZXR1cm4gdGhpcztcbiAgaWYgKCF0eXBlKSB0aGlzLnR5cGUoJ2pzb24nKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBgZXJyYCBhbmQgYHJlc2BcbiAqIGFuZCBoYW5kbGUgYXJpdHkgY2hlY2suXG4gKlxuICogQHBhcmFtIHtFcnJvcn0gZXJyXG4gKiBAcGFyYW0ge1Jlc3BvbnNlfSByZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNhbGxiYWNrID0gZnVuY3Rpb24oZXJyLCByZXMpe1xuICB2YXIgZm4gPSB0aGlzLl9jYWxsYmFjaztcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcbiAgaWYgKDIgPT0gZm4ubGVuZ3RoKSByZXR1cm4gZm4oZXJyLCByZXMpO1xuICBpZiAoZXJyKSByZXR1cm4gdGhpcy5lbWl0KCdlcnJvcicsIGVycik7XG4gIGZuKHJlcyk7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHgtZG9tYWluIGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNyb3NzRG9tYWluRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCdPcmlnaW4gaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyk7XG4gIGVyci5jcm9zc0RvbWFpbiA9IHRydWU7XG4gIHRoaXMuY2FsbGJhY2soZXJyKTtcbn07XG5cbi8qKlxuICogSW52b2tlIGNhbGxiYWNrIHdpdGggdGltZW91dCBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS50aW1lb3V0RXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgdGltZW91dCA9IHRoaXMuX3RpbWVvdXQ7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IoJ3RpbWVvdXQgb2YgJyArIHRpbWVvdXQgKyAnbXMgZXhjZWVkZWQnKTtcbiAgZXJyLnRpbWVvdXQgPSB0aW1lb3V0O1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vKipcbiAqIEVuYWJsZSB0cmFuc21pc3Npb24gb2YgY29va2llcyB3aXRoIHgtZG9tYWluIHJlcXVlc3RzLlxuICpcbiAqIE5vdGUgdGhhdCBmb3IgdGhpcyB0byB3b3JrIHRoZSBvcmlnaW4gbXVzdCBub3QgYmVcbiAqIHVzaW5nIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIgd2l0aCBhIHdpbGRjYXJkLFxuICogYW5kIGFsc28gbXVzdCBzZXQgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFsc1wiXG4gKiB0byBcInRydWVcIi5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IGZ1bmN0aW9uKCl7XG4gIHRoaXMuX3dpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBJbml0aWF0ZSByZXF1ZXN0LCBpbnZva2luZyBjYWxsYmFjayBgZm4ocmVzKWBcbiAqIHdpdGggYW4gaW5zdGFuY2VvZiBgUmVzcG9uc2VgLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oZm4pe1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciB4aHIgPSB0aGlzLnhociA9IGdldFhIUigpO1xuICB2YXIgcXVlcnkgPSB0aGlzLl9xdWVyeS5qb2luKCcmJyk7XG4gIHZhciB0aW1lb3V0ID0gdGhpcy5fdGltZW91dDtcbiAgdmFyIGRhdGEgPSB0aGlzLl9mb3JtRGF0YSB8fCB0aGlzLl9kYXRhO1xuXG4gIC8vIHN0b3JlIGNhbGxiYWNrXG4gIHRoaXMuX2NhbGxiYWNrID0gZm4gfHwgbm9vcDtcblxuICAvLyBzdGF0ZSBjaGFuZ2VcbiAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCl7XG4gICAgaWYgKDQgIT0geGhyLnJlYWR5U3RhdGUpIHJldHVybjtcbiAgICBpZiAoMCA9PSB4aHIuc3RhdHVzKSB7XG4gICAgICBpZiAoc2VsZi5hYm9ydGVkKSByZXR1cm4gc2VsZi50aW1lb3V0RXJyb3IoKTtcbiAgICAgIHJldHVybiBzZWxmLmNyb3NzRG9tYWluRXJyb3IoKTtcbiAgICB9XG4gICAgc2VsZi5lbWl0KCdlbmQnKTtcbiAgfTtcblxuICAvLyBwcm9ncmVzc1xuICBpZiAoeGhyLnVwbG9hZCkge1xuICAgIHhoci51cGxvYWQub25wcm9ncmVzcyA9IGZ1bmN0aW9uKGUpe1xuICAgICAgZS5wZXJjZW50ID0gZS5sb2FkZWQgLyBlLnRvdGFsICogMTAwO1xuICAgICAgc2VsZi5lbWl0KCdwcm9ncmVzcycsIGUpO1xuICAgIH07XG4gIH1cblxuICAvLyB0aW1lb3V0XG4gIGlmICh0aW1lb3V0ICYmICF0aGlzLl90aW1lcikge1xuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpe1xuICAgICAgc2VsZi5hYm9ydCgpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9XG5cbiAgLy8gcXVlcnlzdHJpbmdcbiAgaWYgKHF1ZXJ5KSB7XG4gICAgcXVlcnkgPSByZXF1ZXN0LnNlcmlhbGl6ZU9iamVjdChxdWVyeSk7XG4gICAgdGhpcy51cmwgKz0gfnRoaXMudXJsLmluZGV4T2YoJz8nKVxuICAgICAgPyAnJicgKyBxdWVyeVxuICAgICAgOiAnPycgKyBxdWVyeTtcbiAgfVxuXG4gIC8vIGluaXRpYXRlIHJlcXVlc3RcbiAgeGhyLm9wZW4odGhpcy5tZXRob2QsIHRoaXMudXJsLCB0cnVlKTtcblxuICAvLyBDT1JTXG4gIGlmICh0aGlzLl93aXRoQ3JlZGVudGlhbHMpIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xuXG4gIC8vIGJvZHlcbiAgaWYgKCdHRVQnICE9IHRoaXMubWV0aG9kICYmICdIRUFEJyAhPSB0aGlzLm1ldGhvZCAmJiAnc3RyaW5nJyAhPSB0eXBlb2YgZGF0YSAmJiAhaXNIb3N0KGRhdGEpKSB7XG4gICAgLy8gc2VyaWFsaXplIHN0dWZmXG4gICAgdmFyIHNlcmlhbGl6ZSA9IHJlcXVlc3Quc2VyaWFsaXplW3RoaXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKV07XG4gICAgaWYgKHNlcmlhbGl6ZSkgZGF0YSA9IHNlcmlhbGl6ZShkYXRhKTtcbiAgfVxuXG4gIC8vIHNldCBoZWFkZXIgZmllbGRzXG4gIGZvciAodmFyIGZpZWxkIGluIHRoaXMuaGVhZGVyKSB7XG4gICAgaWYgKG51bGwgPT0gdGhpcy5oZWFkZXJbZmllbGRdKSBjb250aW51ZTtcbiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihmaWVsZCwgdGhpcy5oZWFkZXJbZmllbGRdKTtcbiAgfVxuXG4gIC8vIHNlbmQgc3R1ZmZcbiAgdGhpcy5lbWl0KCdyZXF1ZXN0JywgdGhpcyk7XG4gIHhoci5zZW5kKGRhdGEpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogRXhwb3NlIGBSZXF1ZXN0YC5cbiAqL1xuXG5yZXF1ZXN0LlJlcXVlc3QgPSBSZXF1ZXN0O1xuXG4vKipcbiAqIElzc3VlIGEgcmVxdWVzdDpcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICByZXF1ZXN0KCdHRVQnLCAnL3VzZXJzJykuZW5kKGNhbGxiYWNrKVxuICogICAgcmVxdWVzdCgnL3VzZXJzJykuZW5kKGNhbGxiYWNrKVxuICogICAgcmVxdWVzdCgnL3VzZXJzJywgY2FsbGJhY2spXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IHVybCBvciBjYWxsYmFja1xuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gcmVxdWVzdChtZXRob2QsIHVybCkge1xuICAvLyBjYWxsYmFja1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgdXJsKSB7XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0KCdHRVQnLCBtZXRob2QpLmVuZCh1cmwpO1xuICB9XG5cbiAgLy8gdXJsIGZpcnN0XG4gIGlmICgxID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbmV3IFJlcXVlc3QoJ0dFVCcsIG1ldGhvZCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlcXVlc3QobWV0aG9kLCB1cmwpO1xufVxuXG4vKipcbiAqIEdFVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBkYXRhIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5nZXQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0dFVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnF1ZXJ5KGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBIRUFEIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IGRhdGEgb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LmhlYWQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0hFQUQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBERUxFVEUgYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZGVsID0gZnVuY3Rpb24odXJsLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdERUxFVEUnLCB1cmwpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQQVRDSCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR9IGRhdGFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBhdGNoID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQQVRDSCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBPU1QgYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBkYXRhXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wb3N0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQT1NUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogUFVUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gZGF0YSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucHV0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQVVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBFeHBvc2UgYHJlcXVlc3RgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWVzdDtcbiIsIlxuLyoqXG4gKiBFeHBvc2UgYEVtaXR0ZXJgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gRW1pdHRlcjtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBFbWl0dGVyYC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIEVtaXR0ZXIob2JqKSB7XG4gIGlmIChvYmopIHJldHVybiBtaXhpbihvYmopO1xufTtcblxuLyoqXG4gKiBNaXhpbiB0aGUgZW1pdHRlciBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIG1peGluKG9iaikge1xuICBmb3IgKHZhciBrZXkgaW4gRW1pdHRlci5wcm90b3R5cGUpIHtcbiAgICBvYmpba2V5XSA9IEVtaXR0ZXIucHJvdG90eXBlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBMaXN0ZW4gb24gdGhlIGdpdmVuIGBldmVudGAgd2l0aCBgZm5gLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLm9uID1cbkVtaXR0ZXIucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG4gICh0aGlzLl9jYWxsYmFja3NbZXZlbnRdID0gdGhpcy5fY2FsbGJhY2tzW2V2ZW50XSB8fCBbXSlcbiAgICAucHVzaChmbik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBBZGRzIGFuIGBldmVudGAgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGludm9rZWQgYSBzaW5nbGVcbiAqIHRpbWUgdGhlbiBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uKGV2ZW50LCBmbil7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuXG4gIGZ1bmN0aW9uIG9uKCkge1xuICAgIHNlbGYub2ZmKGV2ZW50LCBvbik7XG4gICAgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIG9uLmZuID0gZm47XG4gIHRoaXMub24oZXZlbnQsIG9uKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgZm9yIGBldmVudGAgb3IgYWxsXG4gKiByZWdpc3RlcmVkIGNhbGxiYWNrcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5vZmYgPVxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG5cbiAgLy8gYWxsXG4gIGlmICgwID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICB0aGlzLl9jYWxsYmFja3MgPSB7fTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHNwZWNpZmljIGV2ZW50XG4gIHZhciBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbZXZlbnRdO1xuICBpZiAoIWNhbGxiYWNrcykgcmV0dXJuIHRoaXM7XG5cbiAgLy8gcmVtb3ZlIGFsbCBoYW5kbGVyc1xuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1tldmVudF07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyByZW1vdmUgc3BlY2lmaWMgaGFuZGxlclxuICB2YXIgY2I7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2IgPSBjYWxsYmFja3NbaV07XG4gICAgaWYgKGNiID09PSBmbiB8fCBjYi5mbiA9PT0gZm4pIHtcbiAgICAgIGNhbGxiYWNrcy5zcGxpY2UoaSwgMSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEVtaXQgYGV2ZW50YCB3aXRoIHRoZSBnaXZlbiBhcmdzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHBhcmFtIHtNaXhlZH0gLi4uXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbihldmVudCl7XG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcbiAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSlcbiAgICAsIGNhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrc1tldmVudF07XG5cbiAgaWYgKGNhbGxiYWNrcykge1xuICAgIGNhbGxiYWNrcyA9IGNhbGxiYWNrcy5zbGljZSgwKTtcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gY2FsbGJhY2tzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgICBjYWxsYmFja3NbaV0uYXBwbHkodGhpcywgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJldHVybiBhcnJheSBvZiBjYWxsYmFja3MgZm9yIGBldmVudGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24oZXZlbnQpe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG4gIHJldHVybiB0aGlzLl9jYWxsYmFja3NbZXZlbnRdIHx8IFtdO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiB0aGlzIGVtaXR0ZXIgaGFzIGBldmVudGAgaGFuZGxlcnMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5oYXNMaXN0ZW5lcnMgPSBmdW5jdGlvbihldmVudCl7XG4gIHJldHVybiAhISB0aGlzLmxpc3RlbmVycyhldmVudCkubGVuZ3RoO1xufTtcbiIsIlxuLyoqXG4gKiBSZWR1Y2UgYGFycmAgd2l0aCBgZm5gLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEBwYXJhbSB7TWl4ZWR9IGluaXRpYWxcbiAqXG4gKiBUT0RPOiBjb21iYXRpYmxlIGVycm9yIGhhbmRsaW5nP1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oYXJyLCBmbiwgaW5pdGlhbCl7ICBcbiAgdmFyIGlkeCA9IDA7XG4gIHZhciBsZW4gPSBhcnIubGVuZ3RoO1xuICB2YXIgY3VyciA9IGFyZ3VtZW50cy5sZW5ndGggPT0gM1xuICAgID8gaW5pdGlhbFxuICAgIDogYXJyW2lkeCsrXTtcblxuICB3aGlsZSAoaWR4IDwgbGVuKSB7XG4gICAgY3VyciA9IGZuLmNhbGwobnVsbCwgY3VyciwgYXJyW2lkeF0sICsraWR4LCBhcnIpO1xuICB9XG4gIFxuICByZXR1cm4gY3Vycjtcbn07IiwidmFyIHRyYXZlcnNlID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgcmV0dXJuIG5ldyBUcmF2ZXJzZShvYmopO1xufTtcblxuZnVuY3Rpb24gVHJhdmVyc2UgKG9iaikge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG59XG5cblRyYXZlcnNlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAocHMpIHtcbiAgICB2YXIgbm9kZSA9IHRoaXMudmFsdWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcy5sZW5ndGg7IGkgKyspIHtcbiAgICAgICAgdmFyIGtleSA9IHBzW2ldO1xuICAgICAgICBpZiAoIW5vZGUgfHwgIWhhc093blByb3BlcnR5LmNhbGwobm9kZSwga2V5KSkge1xuICAgICAgICAgICAgbm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBub2RlW2tleV07XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcblxuVHJhdmVyc2UucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChwcykge1xuICAgIHZhciBub2RlID0gdGhpcy52YWx1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBzLmxlbmd0aDsgaSArKykge1xuICAgICAgICB2YXIga2V5ID0gcHNbaV07XG4gICAgICAgIGlmICghbm9kZSB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChub2RlLCBrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZSA9IG5vZGVba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5UcmF2ZXJzZS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKHBzLCB2YWx1ZSkge1xuICAgIHZhciBub2RlID0gdGhpcy52YWx1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBzLmxlbmd0aCAtIDE7IGkgKyspIHtcbiAgICAgICAgdmFyIGtleSA9IHBzW2ldO1xuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwobm9kZSwga2V5KSkgbm9kZVtrZXldID0ge307XG4gICAgICAgIG5vZGUgPSBub2RlW2tleV07XG4gICAgfVxuICAgIG5vZGVbcHNbaV1dID0gdmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcblxuVHJhdmVyc2UucHJvdG90eXBlLm1hcCA9IGZ1bmN0aW9uIChjYikge1xuICAgIHJldHVybiB3YWxrKHRoaXMudmFsdWUsIGNiLCB0cnVlKTtcbn07XG5cblRyYXZlcnNlLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24gKGNiKSB7XG4gICAgdGhpcy52YWx1ZSA9IHdhbGsodGhpcy52YWx1ZSwgY2IsIGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbn07XG5cblRyYXZlcnNlLnByb3RvdHlwZS5yZWR1Y2UgPSBmdW5jdGlvbiAoY2IsIGluaXQpIHtcbiAgICB2YXIgc2tpcCA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDE7XG4gICAgdmFyIGFjYyA9IHNraXAgPyB0aGlzLnZhbHVlIDogaW5pdDtcbiAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUm9vdCB8fCAhc2tpcCkge1xuICAgICAgICAgICAgYWNjID0gY2IuY2FsbCh0aGlzLCBhY2MsIHgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjYztcbn07XG5cblRyYXZlcnNlLnByb3RvdHlwZS5wYXRocyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYWNjID0gW107XG4gICAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgIGFjYy5wdXNoKHRoaXMucGF0aCk7IFxuICAgIH0pO1xuICAgIHJldHVybiBhY2M7XG59O1xuXG5UcmF2ZXJzZS5wcm90b3R5cGUubm9kZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFjYyA9IFtdO1xuICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICBhY2MucHVzaCh0aGlzLm5vZGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBhY2M7XG59O1xuXG5UcmF2ZXJzZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHBhcmVudHMgPSBbXSwgbm9kZXMgPSBbXTtcbiAgICBcbiAgICByZXR1cm4gKGZ1bmN0aW9uIGNsb25lIChzcmMpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJlbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50c1tpXSA9PT0gc3JjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHNyYyA9PT0gJ29iamVjdCcgJiYgc3JjICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgZHN0ID0gY29weShzcmMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBwYXJlbnRzLnB1c2goc3JjKTtcbiAgICAgICAgICAgIG5vZGVzLnB1c2goZHN0KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgZm9yRWFjaChvYmplY3RLZXlzKHNyYyksIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICBkc3Rba2V5XSA9IGNsb25lKHNyY1trZXldKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBwYXJlbnRzLnBvcCgpO1xuICAgICAgICAgICAgbm9kZXMucG9wKCk7XG4gICAgICAgICAgICByZXR1cm4gZHN0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHNyYztcbiAgICAgICAgfVxuICAgIH0pKHRoaXMudmFsdWUpO1xufTtcblxuZnVuY3Rpb24gd2FsayAocm9vdCwgY2IsIGltbXV0YWJsZSkge1xuICAgIHZhciBwYXRoID0gW107XG4gICAgdmFyIHBhcmVudHMgPSBbXTtcbiAgICB2YXIgYWxpdmUgPSB0cnVlO1xuICAgIFxuICAgIHJldHVybiAoZnVuY3Rpb24gd2Fsa2VyIChub2RlXykge1xuICAgICAgICB2YXIgbm9kZSA9IGltbXV0YWJsZSA/IGNvcHkobm9kZV8pIDogbm9kZV87XG4gICAgICAgIHZhciBtb2RpZmllcnMgPSB7fTtcbiAgICAgICAgXG4gICAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgICBcbiAgICAgICAgdmFyIHN0YXRlID0ge1xuICAgICAgICAgICAgbm9kZSA6IG5vZGUsXG4gICAgICAgICAgICBub2RlXyA6IG5vZGVfLFxuICAgICAgICAgICAgcGF0aCA6IFtdLmNvbmNhdChwYXRoKSxcbiAgICAgICAgICAgIHBhcmVudCA6IHBhcmVudHNbcGFyZW50cy5sZW5ndGggLSAxXSxcbiAgICAgICAgICAgIHBhcmVudHMgOiBwYXJlbnRzLFxuICAgICAgICAgICAga2V5IDogcGF0aC5zbGljZSgtMSlbMF0sXG4gICAgICAgICAgICBpc1Jvb3QgOiBwYXRoLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgICAgIGxldmVsIDogcGF0aC5sZW5ndGgsXG4gICAgICAgICAgICBjaXJjdWxhciA6IG51bGwsXG4gICAgICAgICAgICB1cGRhdGUgOiBmdW5jdGlvbiAoeCwgc3RvcEhlcmUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YXRlLmlzUm9vdCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5wYXJlbnQubm9kZVtzdGF0ZS5rZXldID0geDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RhdGUubm9kZSA9IHg7XG4gICAgICAgICAgICAgICAgaWYgKHN0b3BIZXJlKSBrZWVwR29pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnZGVsZXRlJyA6IGZ1bmN0aW9uIChzdG9wSGVyZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBzdGF0ZS5wYXJlbnQubm9kZVtzdGF0ZS5rZXldO1xuICAgICAgICAgICAgICAgIGlmIChzdG9wSGVyZSkga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVtb3ZlIDogZnVuY3Rpb24gKHN0b3BIZXJlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoc3RhdGUucGFyZW50Lm5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLnBhcmVudC5ub2RlLnNwbGljZShzdGF0ZS5rZXksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHN0YXRlLnBhcmVudC5ub2RlW3N0YXRlLmtleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdG9wSGVyZSkga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2V5cyA6IG51bGwsXG4gICAgICAgICAgICBiZWZvcmUgOiBmdW5jdGlvbiAoZikgeyBtb2RpZmllcnMuYmVmb3JlID0gZiB9LFxuICAgICAgICAgICAgYWZ0ZXIgOiBmdW5jdGlvbiAoZikgeyBtb2RpZmllcnMuYWZ0ZXIgPSBmIH0sXG4gICAgICAgICAgICBwcmUgOiBmdW5jdGlvbiAoZikgeyBtb2RpZmllcnMucHJlID0gZiB9LFxuICAgICAgICAgICAgcG9zdCA6IGZ1bmN0aW9uIChmKSB7IG1vZGlmaWVycy5wb3N0ID0gZiB9LFxuICAgICAgICAgICAgc3RvcCA6IGZ1bmN0aW9uICgpIHsgYWxpdmUgPSBmYWxzZSB9LFxuICAgICAgICAgICAgYmxvY2sgOiBmdW5jdGlvbiAoKSB7IGtlZXBHb2luZyA9IGZhbHNlIH1cbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIGlmICghYWxpdmUpIHJldHVybiBzdGF0ZTtcbiAgICAgICAgXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlKCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzdGF0ZS5ub2RlID09PSAnb2JqZWN0JyAmJiBzdGF0ZS5ub2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGF0ZS5rZXlzIHx8IHN0YXRlLm5vZGVfICE9PSBzdGF0ZS5ub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmtleXMgPSBvYmplY3RLZXlzKHN0YXRlLm5vZGUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHN0YXRlLmlzTGVhZiA9IHN0YXRlLmtleXMubGVuZ3RoID09IDA7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJlbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRzW2ldLm5vZGVfID09PSBub2RlXykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuY2lyY3VsYXIgPSBwYXJlbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5pc0xlYWYgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHN0YXRlLmtleXMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBzdGF0ZS5ub3RMZWFmID0gIXN0YXRlLmlzTGVhZjtcbiAgICAgICAgICAgIHN0YXRlLm5vdFJvb3QgPSAhc3RhdGUuaXNSb290O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB1cGRhdGVTdGF0ZSgpO1xuICAgICAgICBcbiAgICAgICAgLy8gdXNlIHJldHVybiB2YWx1ZXMgdG8gdXBkYXRlIGlmIGRlZmluZWRcbiAgICAgICAgdmFyIHJldCA9IGNiLmNhbGwoc3RhdGUsIHN0YXRlLm5vZGUpO1xuICAgICAgICBpZiAocmV0ICE9PSB1bmRlZmluZWQgJiYgc3RhdGUudXBkYXRlKSBzdGF0ZS51cGRhdGUocmV0KTtcbiAgICAgICAgXG4gICAgICAgIGlmIChtb2RpZmllcnMuYmVmb3JlKSBtb2RpZmllcnMuYmVmb3JlLmNhbGwoc3RhdGUsIHN0YXRlLm5vZGUpO1xuICAgICAgICBcbiAgICAgICAgaWYgKCFrZWVwR29pbmcpIHJldHVybiBzdGF0ZTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2Ygc3RhdGUubm9kZSA9PSAnb2JqZWN0J1xuICAgICAgICAmJiBzdGF0ZS5ub2RlICE9PSBudWxsICYmICFzdGF0ZS5jaXJjdWxhcikge1xuICAgICAgICAgICAgcGFyZW50cy5wdXNoKHN0YXRlKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdXBkYXRlU3RhdGUoKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgZm9yRWFjaChzdGF0ZS5rZXlzLCBmdW5jdGlvbiAoa2V5LCBpKSB7XG4gICAgICAgICAgICAgICAgcGF0aC5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVycy5wcmUpIG1vZGlmaWVycy5wcmUuY2FsbChzdGF0ZSwgc3RhdGUubm9kZVtrZXldLCBrZXkpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHZhciBjaGlsZCA9IHdhbGtlcihzdGF0ZS5ub2RlW2tleV0pO1xuICAgICAgICAgICAgICAgIGlmIChpbW11dGFibGUgJiYgaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS5ub2RlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLm5vZGVba2V5XSA9IGNoaWxkLm5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGNoaWxkLmlzTGFzdCA9IGkgPT0gc3RhdGUua2V5cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIGNoaWxkLmlzRmlyc3QgPSBpID09IDA7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVycy5wb3N0KSBtb2RpZmllcnMucG9zdC5jYWxsKHN0YXRlLCBjaGlsZCk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFyZW50cy5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKG1vZGlmaWVycy5hZnRlcikgbW9kaWZpZXJzLmFmdGVyLmNhbGwoc3RhdGUsIHN0YXRlLm5vZGUpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH0pKHJvb3QpLm5vZGU7XG59XG5cbmZ1bmN0aW9uIGNvcHkgKHNyYykge1xuICAgIGlmICh0eXBlb2Ygc3JjID09PSAnb2JqZWN0JyAmJiBzcmMgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIGRzdDtcbiAgICAgICAgXG4gICAgICAgIGlmIChpc0FycmF5KHNyYykpIHtcbiAgICAgICAgICAgIGRzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzRGF0ZShzcmMpKSB7XG4gICAgICAgICAgICBkc3QgPSBuZXcgRGF0ZShzcmMuZ2V0VGltZSA/IHNyYy5nZXRUaW1lKCkgOiBzcmMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzUmVnRXhwKHNyYykpIHtcbiAgICAgICAgICAgIGRzdCA9IG5ldyBSZWdFeHAoc3JjKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0Vycm9yKHNyYykpIHtcbiAgICAgICAgICAgIGRzdCA9IHsgbWVzc2FnZTogc3JjLm1lc3NhZ2UgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0Jvb2xlYW4oc3JjKSkge1xuICAgICAgICAgICAgZHN0ID0gbmV3IEJvb2xlYW4oc3JjKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc051bWJlcihzcmMpKSB7XG4gICAgICAgICAgICBkc3QgPSBuZXcgTnVtYmVyKHNyYyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcoc3JjKSkge1xuICAgICAgICAgICAgZHN0ID0gbmV3IFN0cmluZyhzcmMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKE9iamVjdC5jcmVhdGUgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKSB7XG4gICAgICAgICAgICBkc3QgPSBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihzcmMpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzcmMuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgICAgICAgICAgZHN0ID0ge307XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgcHJvdG8gPVxuICAgICAgICAgICAgICAgIChzcmMuY29uc3RydWN0b3IgJiYgc3JjLmNvbnN0cnVjdG9yLnByb3RvdHlwZSlcbiAgICAgICAgICAgICAgICB8fCBzcmMuX19wcm90b19fXG4gICAgICAgICAgICAgICAgfHwge31cbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIHZhciBUID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICBULnByb3RvdHlwZSA9IHByb3RvO1xuICAgICAgICAgICAgZHN0ID0gbmV3IFQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGZvckVhY2gob2JqZWN0S2V5cyhzcmMpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBkc3Rba2V5XSA9IHNyY1trZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGRzdDtcbiAgICB9XG4gICAgZWxzZSByZXR1cm4gc3JjO1xufVxuXG52YXIgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMgKG9iaikge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSByZXMucHVzaChrZXkpXG4gICAgcmV0dXJuIHJlcztcbn07XG5cbmZ1bmN0aW9uIHRvUyAob2JqKSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSB9XG5mdW5jdGlvbiBpc0RhdGUgKG9iaikgeyByZXR1cm4gdG9TKG9iaikgPT09ICdbb2JqZWN0IERhdGVdJyB9XG5mdW5jdGlvbiBpc1JlZ0V4cCAob2JqKSB7IHJldHVybiB0b1Mob2JqKSA9PT0gJ1tvYmplY3QgUmVnRXhwXScgfVxuZnVuY3Rpb24gaXNFcnJvciAob2JqKSB7IHJldHVybiB0b1Mob2JqKSA9PT0gJ1tvYmplY3QgRXJyb3JdJyB9XG5mdW5jdGlvbiBpc0Jvb2xlYW4gKG9iaikgeyByZXR1cm4gdG9TKG9iaikgPT09ICdbb2JqZWN0IEJvb2xlYW5dJyB9XG5mdW5jdGlvbiBpc051bWJlciAob2JqKSB7IHJldHVybiB0b1Mob2JqKSA9PT0gJ1tvYmplY3QgTnVtYmVyXScgfVxuZnVuY3Rpb24gaXNTdHJpbmcgKG9iaikgeyByZXR1cm4gdG9TKG9iaikgPT09ICdbb2JqZWN0IFN0cmluZ10nIH1cblxudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkgKHhzKSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh4cykgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59O1xuXG52YXIgZm9yRWFjaCA9IGZ1bmN0aW9uICh4cywgZm4pIHtcbiAgICBpZiAoeHMuZm9yRWFjaCkgcmV0dXJuIHhzLmZvckVhY2goZm4pXG4gICAgZWxzZSBmb3IgKHZhciBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZuKHhzW2ldLCBpLCB4cyk7XG4gICAgfVxufTtcblxuZm9yRWFjaChvYmplY3RLZXlzKFRyYXZlcnNlLnByb3RvdHlwZSksIGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0cmF2ZXJzZVtrZXldID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgdmFyIHQgPSBuZXcgVHJhdmVyc2Uob2JqKTtcbiAgICAgICAgcmV0dXJuIHRba2V5XS5hcHBseSh0LCBhcmdzKTtcbiAgICB9O1xufSk7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5oYXNPd25Qcm9wZXJ0eSB8fCBmdW5jdGlvbiAob2JqLCBrZXkpIHtcbiAgICByZXR1cm4ga2V5IGluIG9iajtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuL3V0aWwvY29udGFpbmVyJyksXG4gICAgdHJhdmVyc2UgPSByZXF1aXJlKCcuL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBmb3JtYXRzID0gcmVxdWlyZSgnLi91dGlsL2Zvcm1hdHMnKTtcblxudmFyIGRlcmVmID0gcmVxdWlyZSgnZGVyZWYnKTtcblxuZnVuY3Rpb24gZ2VuZXJhdGUoc2NoZW1hLCByZWZzKSB7XG4gIHZhciAkID0gZGVyZWYoKTtcblxuICB0cnkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlZnMpKSB7XG4gICAgICByZXR1cm4gdHJhdmVyc2UoJChzY2hlbWEsIHJlZnMsIHRydWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJC5yZWZzID0gcmVmcyB8fCB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhdmVyc2UoJChzY2hlbWEsIHRydWUpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlLnBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlLm1lc3NhZ2UgKyAnIGluICcgKyAnLycgKyBlLnBhdGguam9pbignLycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cblxuZ2VuZXJhdGUuZm9ybWF0cyA9IGZvcm1hdHM7XG5nZW5lcmF0ZS5leHRlbmQgPSBjb250YWluZXIuc2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdlbmVyYXRlO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKSxcbiAgICB0cmF2ZXJzZSA9IHJlcXVpcmUoJy4uL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBoYXNQcm9wcyA9IHJlcXVpcmUoJy4uL3V0aWwvaGFzLXByb3BzJyk7XG5cbnZhciBQYXJzZUVycm9yID0gcmVxdWlyZSgnLi4vdXRpbC9lcnJvcicpO1xuXG5mdW5jdGlvbiB1bmlxdWUocGF0aCwgaXRlbXMsIHZhbHVlLCBzYW1wbGUpIHtcbiAgdmFyIHRtcCA9IFtdLFxuICAgICAgc2VlbiA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsob2JqKSB7XG4gICAgdmFyIGpzb24gPSBKU09OLnN0cmluZ2lmeShvYmopO1xuXG4gICAgaWYgKHNlZW4uaW5kZXhPZihqc29uKSA9PT0gLTEpIHtcbiAgICAgIHNlZW4ucHVzaChqc29uKTtcbiAgICAgIHRtcC5wdXNoKG9iaik7XG4gICAgfVxuICB9XG5cbiAgaXRlbXMuZm9yRWFjaCh3YWxrKTtcblxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICB2YXIgbGltaXQgPSAxMDA7XG5cbiAgd2hpbGUgKHRtcC5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aCkge1xuICAgIHdhbGsodHJhdmVyc2UodmFsdWUuaXRlbXMgfHwgc2FtcGxlLCBwYXRoKSk7XG5cbiAgICBpZiAoIWxpbWl0LS0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0bXA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgdmFyIGl0ZW1zID0gW107XG5cbiAgaWYgKCEodmFsdWUuaXRlbXMgfHwgdmFsdWUuYWRkaXRpb25hbEl0ZW1zKSkge1xuICAgIGlmIChoYXNQcm9wcyh2YWx1ZSwgJ21pbkl0ZW1zJywgJ21heEl0ZW1zJywgJ3VuaXF1ZUl0ZW1zJykpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKCdtaXNzaW5nIGl0ZW1zIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUpLCBwYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZS5pdGVtcykpIHtcbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShpdGVtcywgdmFsdWUuaXRlbXMubWFwKGZ1bmN0aW9uKGl0ZW0sIGtleSkge1xuICAgICAgcmV0dXJuIHRyYXZlcnNlKGl0ZW0sIHBhdGguY29uY2F0KFsnaXRlbXMnLCBrZXldKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgdmFyIGxlbmd0aCA9IHJhbmRvbSh2YWx1ZS5taW5JdGVtcywgdmFsdWUubWF4SXRlbXMsIDEsIDUpLFxuICAgICAgc2FtcGxlID0gdHlwZW9mIHZhbHVlLmFkZGl0aW9uYWxJdGVtcyA9PT0gJ29iamVjdCcgPyB2YWx1ZS5hZGRpdGlvbmFsSXRlbXMgOiB7fTtcblxuICBmb3IgKHZhciBjdXJyZW50ID0gaXRlbXMubGVuZ3RoOyBjdXJyZW50IDwgbGVuZ3RoOyBjdXJyZW50ICs9IDEpIHtcbiAgICBpdGVtcy5wdXNoKHRyYXZlcnNlKHZhbHVlLml0ZW1zIHx8IHNhbXBsZSwgcGF0aC5jb25jYXQoWydpdGVtcycsIGN1cnJlbnRdKSkpO1xuICB9XG5cbiAgaWYgKHZhbHVlLnVuaXF1ZUl0ZW1zKSB7XG4gICAgcmV0dXJuIHVuaXF1ZShwYXRoLmNvbmNhdChbJ2l0ZW1zJ10pLCBpdGVtcywgdmFsdWUsIHNhbXBsZSk7XG4gIH1cblxuICByZXR1cm4gaXRlbXM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKSA+IDAuNTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBudW1iZXIgPSByZXF1aXJlKCcuL251bWJlcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHZhbHVlLmhhc1ByZWNpc2lvbiA9IGZhbHNlO1xuXG4gIHJldHVybiBNYXRoLmZsb29yKG51bWJlcih2YWx1ZSkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG51bGw7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgTUlOX0lOVEVHRVIgPSAtMTAwMDAwMDAwLFxuICAgIE1BWF9JTlRFR0VSID0gMTAwMDAwMDAwO1xuXG52YXIgc3RyaW5nID0gcmVxdWlyZSgnLi9zdHJpbmcnKSxcbiAgICByYW5kb20gPSByZXF1aXJlKCcuLi91dGlsL3JhbmRvbScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICh2YWx1ZS5mYWtlciB8fCB2YWx1ZS5jaGFuY2UpIHtcbiAgICByZXR1cm4gc3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHZhciBtaW4gPSB0eXBlb2YgdmFsdWUubWluaW11bSA9PT0gJ3VuZGVmaW5lZCcgPyBNSU5fSU5URUdFUiA6IHZhbHVlLm1pbmltdW0sXG4gICAgICBtYXggPSB0eXBlb2YgdmFsdWUubWF4aW11bSA9PT0gJ3VuZGVmaW5lZCcgPyBNQVhfSU5URUdFUiA6IHZhbHVlLm1heGltdW07XG5cbiAgaWYgKHZhbHVlLmV4Y2x1c2l2ZU1pbmltdW0gJiYgdmFsdWUubWluaW11bSkge1xuICAgIG1pbiArPSAxO1xuICB9XG5cbiAgaWYgKHZhbHVlLmV4Y2x1c2l2ZU1heGltdW0gJiYgdmFsdWUubWF4aW11bSkge1xuICAgIG1heCAtPSAxO1xuICB9XG5cbiAgaWYgKHZhbHVlLm11bHRpcGxlT2YpIHtcbiAgICB2YXIgYmFzZSA9IHJhbmRvbShNYXRoLmZsb29yKG1pbiAvIHZhbHVlLm11bHRpcGxlT2YpLCBNYXRoLmZsb29yKG1heCAvIHZhbHVlLm11bHRpcGxlT2YpKSAqIHZhbHVlLm11bHRpcGxlT2Y7XG5cbiAgICB3aGlsZSAoYmFzZSA8IG1pbikge1xuICAgICAgYmFzZSArPSB2YWx1ZS5tdWx0aXBsZU9mO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgaWYgKHZhbHVlLmhhc1ByZWNpc2lvbikge1xuICAgIHJldHVybiByYW5kb20oZmFsc2UsIG1pbiwgbWF4KTtcbiAgfVxuXG4gIHJldHVybiByYW5kb20oTWF0aC5yYW5kb20oKSA+IDAuNSwgbWluLCBtYXgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbnRhaW5lciA9IHJlcXVpcmUoJy4uL3V0aWwvY29udGFpbmVyJyksXG4gICAgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKSxcbiAgICB0cmF2ZXJzZSA9IHJlcXVpcmUoJy4uL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBoYXNQcm9wcyA9IHJlcXVpcmUoJy4uL3V0aWwvaGFzLXByb3BzJyk7XG5cbnZhciBmYWtlciA9IGNvbnRhaW5lci5nZXQoJ2Zha2VyJyksXG4gICAgUmFuZEV4cCA9IGNvbnRhaW5lci5nZXQoJ3JhbmRleHAnKSxcbiAgICByYW5kZXhwID0gUmFuZEV4cC5yYW5kZXhwO1xuXG52YXIgUGFyc2VFcnJvciA9IHJlcXVpcmUoJy4uL3V0aWwvZXJyb3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xuICB2YXIgcHJvcHMgPSB7fTtcblxuICBpZiAoISh2YWx1ZS5wcm9wZXJ0aWVzIHx8IHZhbHVlLnBhdHRlcm5Qcm9wZXJ0aWVzIHx8IHZhbHVlLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKSkge1xuICAgIGlmIChoYXNQcm9wcyh2YWx1ZSwgJ21pblByb3BlcnRpZXMnLCAnbWF4UHJvcGVydGllcycsICdkZXBlbmRlbmNpZXMnLCAncmVxdWlyZWQnKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoJ21pc3NpbmcgcHJvcGVydGllcyBmb3IgJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlKSwgcGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgdmFyIHJlcVByb3BzID0gdmFsdWUucmVxdWlyZWQgfHwgW10sXG4gICAgICBhbGxQcm9wcyA9IHZhbHVlLnByb3BlcnRpZXMgPyBPYmplY3Qua2V5cyh2YWx1ZS5wcm9wZXJ0aWVzKSA6IFtdO1xuXG4gIHJlcVByb3BzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKHZhbHVlLnByb3BlcnRpZXMgJiYgdmFsdWUucHJvcGVydGllc1trZXldKSB7XG4gICAgICBwcm9wc1trZXldID0gdmFsdWUucHJvcGVydGllc1trZXldO1xuICAgIH1cbiAgfSk7XG5cbiAgdmFyIG9wdFByb3BzID0gYWxsUHJvcHMuZmlsdGVyKGZ1bmN0aW9uKHByb3ApIHtcbiAgICByZXR1cm4gcmVxUHJvcHMuaW5kZXhPZihwcm9wKSA9PT0gLTE7XG4gIH0pO1xuXG4gIGlmICh2YWx1ZS5wYXR0ZXJuUHJvcGVydGllcykge1xuICAgIG9wdFByb3BzID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShvcHRQcm9wcywgT2JqZWN0LmtleXModmFsdWUucGF0dGVyblByb3BlcnRpZXMpKTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSByYW5kb20odmFsdWUubWluUHJvcGVydGllcywgdmFsdWUubWF4UHJvcGVydGllcywgMCwgb3B0UHJvcHMubGVuZ3RoKTtcblxuICByYW5kb20uc2h1ZmZsZShvcHRQcm9wcykuc2xpY2UoMCwgbGVuZ3RoKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIGlmICh2YWx1ZS5wcm9wZXJ0aWVzICYmIHZhbHVlLnByb3BlcnRpZXNba2V5XSkge1xuICAgICAgcHJvcHNba2V5XSA9IHZhbHVlLnByb3BlcnRpZXNba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvcHNbcmFuZGV4cChrZXkpXSA9IHZhbHVlLnBhdHRlcm5Qcm9wZXJ0aWVzW2tleV07XG4gICAgfVxuICB9KTtcblxuICB2YXIgY3VycmVudCA9IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgsXG4gICAgICBzYW1wbGUgPSB0eXBlb2YgdmFsdWUuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09ICdvYmplY3QnID8gdmFsdWUuYWRkaXRpb25hbFByb3BlcnRpZXMgOiB7fTtcblxuICBpZiAoY3VycmVudCA8IGxlbmd0aCkge1xuICAgIGZha2VyLmxvcmVtLndvcmRzKGxlbmd0aCAtIGN1cnJlbnQpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICBwcm9wc1trZXkgKyByYW5kZXhwKCdcXFxcd3sxLDEwfScpXSA9IHNhbXBsZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0cmF2ZXJzZShwcm9wcywgcGF0aC5jb25jYXQoWydwcm9wZXJ0aWVzJ10pKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuLi91dGlsL2NvbnRhaW5lcicpO1xuXG52YXIgZmFrZXIgPSBjb250YWluZXIuZ2V0KCdmYWtlcicpLFxuICAgIENoYW5jZSA9IGNvbnRhaW5lci5nZXQoJ2NoYW5jZScpLFxuICAgIFJhbmRFeHAgPSBjb250YWluZXIuZ2V0KCdyYW5kZXhwJyksXG4gICAgY2hhbmNlID0gbmV3IENoYW5jZSgpLFxuICAgIHJhbmRleHAgPSBSYW5kRXhwLnJhbmRleHA7XG5cbnZhciByYW5kb20gPSByZXF1aXJlKCcuLi91dGlsL3JhbmRvbScpLFxuICAgIGZvcm1hdHMgPSByZXF1aXJlKCcuLi91dGlsL2Zvcm1hdHMnKTtcblxudmFyIHJlZ2V4cHMgPSB7XG4gIGVtYWlsOiAnW2EtekEtWlxcXFxkXVthLXpBLVpcXFxcZC1dezEsMTN9W2EtekEtWlxcXFxkXUB7aG9zdG5hbWV9JyxcbiAgaG9zdG5hbWU6ICdbYS16QS1aXXsxLDMzfVxcXFwuW2Etel17Miw0fScsXG4gIGlwdjY6ICdbYWJjZGVmXFxcXGRdezR9KDpbYWJjZGVmXFxcXGRdezR9KXs3fScsXG4gIHVyaTogJ1thLXpBLVpcXFxcZF9dW1xcXFx3XFxcXFxcL1xcXFxkXy1dezEsNDB9J1xufTtcblxuZnVuY3Rpb24gZ2V0KG9iaiwga2V5KSB7XG4gIHZhciBwYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuXG4gIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHtcbiAgICB2YXIgcHJvcCA9IHBhcnRzLnNoaWZ0KCk7XG5cbiAgICBpZiAoIW9ialtwcm9wXSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgb2JqID0gb2JqW3Byb3BdO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGUodmFsdWUpIHtcbiAgaWYgKHZhbHVlLnVzZSkge1xuICAgIHZhciBhcmdzID0gW10sXG4gICAgICAgIHBhdGggPSB2YWx1ZS5rZXk7XG5cbiAgICBpZiAodHlwZW9mIHBhdGggPT09ICdvYmplY3QnKSB7XG4gICAgICBwYXRoID0gT2JqZWN0LmtleXMocGF0aClbMF07XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlLmtleVtwYXRoXSkpIHtcbiAgICAgICAgYXJncyA9IHZhbHVlLmtleVtwYXRoXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyZ3MucHVzaCh2YWx1ZS5rZXlbcGF0aF0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBnZW4gPSBnZXQodmFsdWUuZ2VuLCBwYXRoKTtcblxuICAgIGlmICh0eXBlb2YgZ2VuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gJyArIHZhbHVlLnVzZSArICctZ2VuZXJhdG9yIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUua2V5KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdlbi5hcHBseSh2YWx1ZS5nZW4sIGFyZ3MpO1xuICB9XG5cbiAgc3dpdGNoICh2YWx1ZS5mb3JtYXQpIHtcbiAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHJhbmRvbSgwLCAxMDAwMDAwMDAwMDAwMDApKS50b0lTT1N0cmluZygpO1xuXG4gICAgY2FzZSAnZW1haWwnOlxuICAgIGNhc2UgJ2hvc3RuYW1lJzpcbiAgICBjYXNlICdpcHY2JzpcbiAgICBjYXNlICd1cmknOlxuICAgICAgcmV0dXJuIHJhbmRleHAocmVnZXhwc1t2YWx1ZS5mb3JtYXRdKS5yZXBsYWNlKC9cXHsoXFx3KylcXH0vLCBmdW5jdGlvbihtYXRjaGVzLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHJhbmRleHAocmVnZXhwc1trZXldKTtcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnaXB2NCc6XG4gICAgICByZXR1cm4gWzAsIDAsIDAsIDBdLm1hcChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJhbmRvbSgwLCAyNTUpO1xuICAgICAgfSkuam9pbignLicpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHZhciBjYWxsYmFjayA9IGZvcm1hdHModmFsdWUuZm9ybWF0KTtcblxuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gZ2VuZXJhdG9yIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUuZm9ybWF0KSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBnZW5lcmF0b3JzID0ge1xuICAgICAgICBmYWtlcjogZmFrZXIsXG4gICAgICAgIGNoYW5jZTogY2hhbmNlLFxuICAgICAgICByYW5kZXhwOiByYW5kZXhwXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gY2FsbGJhY2soZ2VuZXJhdG9ycywgdmFsdWUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgaWYgKHZhbHVlLmZha2VyIHx8IHZhbHVlLmNoYW5jZSkge1xuICAgIHJldHVybiBnZW5lcmF0ZSh7XG4gICAgICB1c2U6IHZhbHVlLmZha2VyID8gJ2Zha2VyJyA6ICdjaGFuY2UnLFxuICAgICAgZ2VuOiB2YWx1ZS5mYWtlciA/IGZha2VyIDogY2hhbmNlLFxuICAgICAga2V5OiB2YWx1ZS5mYWtlciB8fCB2YWx1ZS5jaGFuY2VcbiAgICB9KTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5mb3JtYXQpIHtcbiAgICByZXR1cm4gZ2VuZXJhdGUodmFsdWUpO1xuICB9XG5cbiAgaWYgKHZhbHVlLnBhdHRlcm4pIHtcbiAgICByZXR1cm4gcmFuZGV4cCh2YWx1ZS5wYXR0ZXJuKTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5taW5MZW5ndGggfHwgdmFsdWUubWF4TGVuZ3RoKSB7XG4gICAgdmFyIG1pbiA9IE1hdGgubWF4KDAsIHZhbHVlLm1pbkxlbmd0aCB8fCAwKSxcbiAgICAgICAgbWF4ID0gcmFuZG9tKG1pbiwgdmFsdWUubWF4TGVuZ3RoKTtcblxuICAgIHJldHVybiByYW5kZXhwKCcueycgKyBtaW4gKyAnLCcgKyBtYXggKyAnfScpO1xuICB9XG5cbiAgcmV0dXJuIGZha2VyLmxvcmVtLndvcmRzKHJhbmRvbSgxLCA1KSkuam9pbignICcpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY29tYmluZSh0YXJnZXQpIHtcbiAgdmFyIHByb3BzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcblxuICBwcm9wcy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikge1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gb2JqW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb21iaW5lO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vLyBzdGF0aWMgcmVxdWlyZXMgLSBoYW5kbGUgYm90aCBpbml0aWFsIGRlcGVuZGVuY3kgbG9hZCAoZGVwcyB3aWxsIGJlIGF2YWlsYWJsZVxuLy8gYW1vbmcgb3RoZXIgbW9kdWxlcykgYXMgd2VsbCBhcyB0aGV5IHdpbGwgYmUgaW5jbHVkZWQgYnkgYnJvd3NlcmlmeSBBU1RcbnZhciBjb250YWluZXIgPSB7XG4gIGZha2VyOiByZXF1aXJlKCdmYWtlcicpLFxuICBjaGFuY2U6IHJlcXVpcmUoJ2NoYW5jZScpLFxuICByYW5kZXhwOiByZXF1aXJlKCdyYW5kZXhwJylcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IGZ1bmN0aW9uKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjb250YWluZXJbbmFtZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ1wiJyArIG5hbWUgKyAnXCIgZGVwZW5kZW5jeSBkb2VzblxcJ3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgY29udGFpbmVyW25hbWVdID0gY2FsbGJhY2soY29udGFpbmVyW25hbWVdKTtcbiAgfSxcbiAgZ2V0OiBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lcltuYW1lXTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gUGFyc2VFcnJvcihtZXNzYWdlLCBwYXRoKSB7XG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMucGF0aCA9IHBhdGg7XG4gIHRoaXMubmFtZSA9ICdQYXJzZUVycm9yJztcbn1cblxuUGFyc2VFcnJvci5wcm90b3R5cGUgPSBFcnJvci5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gUGFyc2VFcnJvcjtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJlZ2lzdHJ5ID0ge307XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obmFtZSwgY2FsbGJhY2spIHtcbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgcmVnaXN0cnlbbmFtZV0gPSBjYWxsYmFjaztcbiAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKHZhciBtZXRob2QgaW4gbmFtZSkge1xuICAgICAgcmVnaXN0cnlbbWV0aG9kXSA9IG5hbWVbbWV0aG9kXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobmFtZSkge1xuICAgIHJldHVybiByZWdpc3RyeVtuYW1lXTtcbiAgfVxuXG4gIHJldHVybiByZWdpc3RyeTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLmZpbHRlcihmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9ialtrZXldICE9PSAndW5kZWZpbmVkJztcbiAgfSkubGVuZ3RoID4gMDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpbmZlcnJlZFByb3BlcnRpZXMgPSB7XG4gIGFycmF5OiBbXG4gICAgJ2FkZGl0aW9uYWxJdGVtcycsXG4gICAgJ2l0ZW1zJyxcbiAgICAnbWF4SXRlbXMnLFxuICAgICdtaW5JdGVtcycsXG4gICAgJ3VuaXF1ZUl0ZW1zJ1xuICBdLFxuICBpbnRlZ2VyOiBbXG4gICAgJ2V4Y2x1c2l2ZU1heGltdW0nLFxuICAgICdleGNsdXNpdmVNaW5pbXVtJyxcbiAgICAnbWF4aW11bScsXG4gICAgJ21pbmltdW0nLFxuICAgICdtdWx0aXBsZU9mJ1xuICBdLFxuICBvYmplY3Q6IFtcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnLFxuICAgICdkZXBlbmRlbmNpZXMnLFxuICAgICdtYXhQcm9wZXJ0aWVzJyxcbiAgICAnbWluUHJvcGVydGllcycsXG4gICAgJ3BhdHRlcm5Qcm9wZXJ0aWVzJyxcbiAgICAncHJvcGVydGllcycsXG4gICAgJ3JlcXVpcmVkJ1xuICBdLFxuICBzdHJpbmc6IFtcbiAgICAnbWF4TGVuZ3RoJyxcbiAgICAnbWVubGVuZ3RoJyxcbiAgICAncGF0dGVybidcbiAgXVxufTtcblxuaW5mZXJyZWRQcm9wZXJ0aWVzLm51bWJlciA9IGluZmVycmVkUHJvcGVydGllcy5pbnRlZ2VyO1xuXG5mdW5jdGlvbiBtYXlIYXZlVHlwZShvYmosIHByb3BzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmZpbHRlcihmdW5jdGlvbihwcm9wKSB7XG4gICAgcmV0dXJuIHByb3BzLmluZGV4T2YocHJvcCkgPiAtMTtcbiAgfSkubGVuZ3RoID4gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvYmopIHtcbiAgZm9yICh2YXIgdHlwZSBpbiBpbmZlcnJlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAobWF5SGF2ZVR5cGUob2JqLCBpbmZlcnJlZFByb3BlcnRpZXNbdHlwZV0pKSB7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhcnJheTogcmVxdWlyZSgnLi4vdHlwZXMvYXJyYXknKSxcbiAgYm9vbGVhbjogcmVxdWlyZSgnLi4vdHlwZXMvYm9vbGVhbicpLFxuICBpbnRlZ2VyOiByZXF1aXJlKCcuLi90eXBlcy9pbnRlZ2VyJyksXG4gIG51bWJlcjogcmVxdWlyZSgnLi4vdHlwZXMvbnVtYmVyJyksXG4gIG51bGw6IHJlcXVpcmUoJy4uL3R5cGVzL251bGwnKSxcbiAgb2JqZWN0OiByZXF1aXJlKCcuLi90eXBlcy9vYmplY3QnKSxcbiAgc3RyaW5nOiByZXF1aXJlKCcuLi90eXBlcy9zdHJpbmcnKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbnRhaW5lciA9IHJlcXVpcmUoJy4vY29udGFpbmVyJyk7XG5cbnZhciBmYWtlciA9IGNvbnRhaW5lci5nZXQoJ2Zha2VyJyk7XG5cbnZhciByYW5kb20gPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1pbiwgbWF4LCBkZWZNaW4sIGRlZk1heCkge1xuICB2YXIgaXNJbnRlZ2VyID0gdHJ1ZTtcblxuICBpZiAodHlwZW9mIG1pbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gbm9uLWludGVnZXIgdmFsdWVzXG4gICAgaXNJbnRlZ2VyID0gbWluO1xuICAgIG1pbiA9IGFyZ3VtZW50c1sxXTtcbiAgICBtYXggPSBhcmd1bWVudHNbMl07XG4gICAgZGVmTWluID0gYXJndW1lbnRzWzNdO1xuICAgIGRlZk1heCA9IGFyZ3VtZW50c1s0XTtcbiAgfVxuXG4gIGRlZk1pbiA9IHR5cGVvZiBkZWZNaW4gPT09ICd1bmRlZmluZWQnID8gcmFuZG9tLk1JTl9OVU1CRVIgOiBkZWZNaW47XG4gIGRlZk1heCA9IHR5cGVvZiBkZWZNYXggPT09ICd1bmRlZmluZWQnID8gcmFuZG9tLk1BWF9OVU1CRVIgOiBkZWZNYXg7XG5cbiAgbWluID0gdHlwZW9mIG1pbiA9PT0gJ3VuZGVmaW5lZCcgPyBkZWZNaW4gOiBtaW47XG4gIG1heCA9IHR5cGVvZiBtYXggPT09ICd1bmRlZmluZWQnID8gZGVmTWF4IDogbWF4O1xuXG4gIGlmIChtYXggPCBtaW4pIHtcbiAgICBtYXggKz0gbWluO1xuICB9XG5cbiAgcmV0dXJuIGZha2VyLnJhbmRvbS5udW1iZXIoe1xuICAgIG1pbjogbWluLFxuICAgIG1heDogTWF0aC5tYXgobWF4LCBtaW4gKyAxKSxcbiAgICBwcmVjaXNpb246IGlzSW50ZWdlciA/IDEgOiBNYXRoLnJhbmRvbSgpXG4gIH0pO1xufTtcblxucmFuZG9tLnNodWZmbGUgPSBmdW5jdGlvbihvYmopIHtcbiAgdmFyIGNvcHkgPSBvYmouc2xpY2UoKSxcbiAgICAgIGxlbmd0aCA9IG9iai5sZW5ndGg7XG5cbiAgZm9yICg7IGxlbmd0aCA+IDA7KSB7XG4gICAgdmFyIGtleSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbmd0aCksXG4gICAgICAgIHRtcCA9IGNvcHlbLS1sZW5ndGhdO1xuXG4gICAgY29weVtsZW5ndGhdID0gY29weVtrZXldO1xuICAgIGNvcHlba2V5XSA9IHRtcDtcbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufTtcblxucmFuZG9tLnBpY2sgPSBmdW5jdGlvbihvYmopIHtcbiAgcmV0dXJuIG9ialtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBvYmoubGVuZ3RoKV07XG59O1xuXG5yYW5kb20uTUlOX05VTUJFUiA9IC0xMDA7XG5yYW5kb20uTUFYX05VTUJFUiA9IDEwMDtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJhbmRvbSA9IHJlcXVpcmUoJy4vcmFuZG9tJyksXG4gICAgY29tYmluZSA9IHJlcXVpcmUoJy4vY29tYmluZScpO1xuXG52YXIgUGFyc2VFcnJvciA9IHJlcXVpcmUoJy4vZXJyb3InKTtcblxudmFyIGluZmVycmVkVHlwZSA9IHJlcXVpcmUoJy4vaW5mZXJyZWQnKTtcblxuZnVuY3Rpb24gcmVkdWNlKG9iaikge1xuICB2YXIgbWl4ID0gb2JqLmFsbE9mIHx8IG9iai5hbnlPZiB8fCBvYmoub25lT2Y7XG5cbiAgaWYgKCEobWl4ICYmIG1peC5sZW5ndGgpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICEoa2V5ID09PSAnZW51bScgfHwga2V5ID09PSAncmVxdWlyZWQnKSkge1xuICAgICAgICByZWR1Y2UodmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICgob2JqLm9uZU9mIHx8IG9iai5hbnlPZikgJiYgbWl4Lmxlbmd0aCkge1xuICAgIG1peCA9IFtyYW5kb20ucGljayhtaXgpXTtcbiAgfVxuXG4gIGRlbGV0ZSBvYmouYWxsT2Y7XG4gIGRlbGV0ZSBvYmouYW55T2Y7XG4gIGRlbGV0ZSBvYmoub25lT2Y7XG5cbiAgdmFyIGZpeGVkID0ge307XG5cbiAgbWl4LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICBjb21iaW5lKGZpeGVkLCB2YWx1ZSk7XG4gIH0pO1xuXG4gIGNvbWJpbmUob2JqLCBmaXhlZCk7XG5cbiAgd2hpbGUgKG9iai5hbGxPZiB8fCBvYmouYW55T2YgfHwgb2JqLm9uZU9mKSB7XG4gICAgcmVkdWNlKG9iaik7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhdmVyc2Uob2JqLCBwYXRoKSB7XG4gIHZhciBwcmltaXRpdmVzID0gcmVxdWlyZSgnLi9wcmltaXRpdmVzJyk7XG5cbiAgdmFyIGNvcHkgPSB7fTtcblxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgY29weSA9IFtdO1xuICB9XG5cbiAgcGF0aCA9IHBhdGggfHwgW107XG5cbiAgcmVkdWNlKG9iaik7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqLmVudW0pKSB7XG4gICAgcmV0dXJuIHJhbmRvbS5waWNrKG9iai5lbnVtKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gb2JqLnR5cGU7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICB0eXBlID0gcmFuZG9tLnBpY2sodHlwZSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gQXR0ZW1wdCB0byBpbmZlciB0aGUgdHlwZVxuICAgIHR5cGUgPSBpbmZlcnJlZFR5cGUob2JqKSB8fCB0eXBlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIGlmICghcHJpbWl0aXZlc1t0eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoJ3Vua25vd24gcHJpbWl0aXZlICcgKyBKU09OLnN0cmluZ2lmeSh0eXBlKSwgcGF0aC5jb25jYXQoWyd0eXBlJ10pKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHByaW1pdGl2ZXNbdHlwZV0ob2JqLCBwYXRoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAodHlwZW9mIGUucGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoZS5tZXNzYWdlLCBwYXRoKVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb3B5W2tleV0gPSB0cmF2ZXJzZSh2YWx1ZSwgcGF0aC5jb25jYXQoW2tleV0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29weVtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvcHk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdHJhdmVyc2U7XG4iLCIvLyAgQ2hhbmNlLmpzIDAuNy41XG4vLyAgaHR0cDovL2NoYW5jZWpzLmNvbVxuLy8gIChjKSAyMDEzIFZpY3RvciBRdWlublxuLy8gIENoYW5jZSBtYXkgYmUgZnJlZWx5IGRpc3RyaWJ1dGVkIG9yIG1vZGlmaWVkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cblxuKGZ1bmN0aW9uICgpIHtcblxuICAgIC8vIENvbnN0YW50c1xuICAgIHZhciBNQVhfSU5UID0gOTAwNzE5OTI1NDc0MDk5MjtcbiAgICB2YXIgTUlOX0lOVCA9IC1NQVhfSU5UO1xuICAgIHZhciBOVU1CRVJTID0gJzAxMjM0NTY3ODknO1xuICAgIHZhciBDSEFSU19MT1dFUiA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgdmFyIENIQVJTX1VQUEVSID0gQ0hBUlNfTE9XRVIudG9VcHBlckNhc2UoKTtcbiAgICB2YXIgSEVYX1BPT0wgID0gTlVNQkVSUyArIFwiYWJjZGVmXCI7XG5cbiAgICAvLyBDYWNoZWQgYXJyYXkgaGVscGVyc1xuICAgIHZhciBzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcblxuICAgIC8vIENvbnN0cnVjdG9yXG4gICAgZnVuY3Rpb24gQ2hhbmNlIChzZWVkKSB7XG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBDaGFuY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VlZCA9PSBudWxsID8gbmV3IENoYW5jZSgpIDogbmV3IENoYW5jZShzZWVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHVzZXIgaGFzIHByb3ZpZGVkIGEgZnVuY3Rpb24sIHVzZSB0aGF0IGFzIHRoZSBnZW5lcmF0b3JcbiAgICAgICAgaWYgKHR5cGVvZiBzZWVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmRvbSA9IHNlZWQ7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWVkbGluZztcblxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gc2V0IGEgc3RhcnRpbmcgdmFsdWUgb2YgemVybyBzbyB3ZSBjYW4gYWRkIHRvIGl0XG4gICAgICAgICAgICB0aGlzLnNlZWQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSwgbGVhdmUgdGhpcy5zZWVkIGJsYW5rIHNvIHRoYXQgTVQgd2lsbCByZWNpZXZlIGEgYmxhbmtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc2VlZGxpbmcgPSAwO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcmd1bWVudHNbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc2VlZGxpbmcgKz0gKGFyZ3VtZW50c1tpXS5sZW5ndGggLSBqKSAqIGFyZ3VtZW50c1tpXS5jaGFyQ29kZUF0KGopO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VlZGxpbmcgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlZWQgKz0gKGFyZ3VtZW50cy5sZW5ndGggLSBpKSAqIHNlZWRsaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgbm8gZ2VuZXJhdG9yIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCwgdXNlIG91ciBNVFxuICAgICAgICB0aGlzLm10ID0gdGhpcy5tZXJzZW5uZV90d2lzdGVyKHRoaXMuc2VlZCk7XG4gICAgICAgIHRoaXMuYmltZDUgPSB0aGlzLmJsdWVpbXBfbWQ1KCk7XG4gICAgICAgIHRoaXMucmFuZG9tID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubXQucmFuZG9tKHRoaXMuc2VlZCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5WRVJTSU9OID0gXCIwLjcuNVwiO1xuXG4gICAgLy8gUmFuZG9tIGhlbHBlciBmdW5jdGlvbnNcbiAgICBmdW5jdGlvbiBpbml0T3B0aW9ucyhvcHRpb25zLCBkZWZhdWx0cykge1xuICAgICAgICBvcHRpb25zIHx8IChvcHRpb25zID0ge30pO1xuXG4gICAgICAgIGlmIChkZWZhdWx0cykge1xuICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBkZWZhdWx0cykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1tpXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1tpXSA9IGRlZmF1bHRzW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRlc3RSYW5nZSh0ZXN0LCBlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHRlc3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmNvZGUgdGhlIGlucHV0IHN0cmluZyB3aXRoIEJhc2U2NC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZTY0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gQmFzZTY0IGVuY29kZXIgYXZhaWxhYmxlLicpO1xuICAgIH07XG5cbiAgICAvLyBTZWxlY3QgcHJvcGVyIEJhc2U2NCBlbmNvZGVyLlxuICAgIChmdW5jdGlvbiBkZXRlcm1pbmVCYXNlNjRFbmNvZGVyKCkge1xuICAgICAgICBpZiAodHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGJhc2U2NCA9IGJ0b2E7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgYmFzZTY0ID0gZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJ1ZmZlcihpbnB1dCkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pKCk7XG5cbiAgICAvLyAtLSBCYXNpY3MgLS1cblxuICAgIC8qKlxuICAgICAqICBSZXR1cm4gYSByYW5kb20gYm9vbCwgZWl0aGVyIHRydWUgb3IgZmFsc2VcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9eyBsaWtlbGlob29kOiA1MCB9XSBhbHRlciB0aGUgbGlrZWxpaG9vZCBvZlxuICAgICAqICAgIHJlY2VpdmluZyBhIHRydWUgb3IgZmFsc2UgdmFsdWUgYmFjay5cbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gaWYgdGhlIGxpa2VsaWhvb2QgaXMgb3V0IG9mIGJvdW5kc1xuICAgICAqICBAcmV0dXJucyB7Qm9vbH0gZWl0aGVyIHRydWUgb3IgZmFsc2VcbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmJvb2wgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyBsaWtlbGlob29kIG9mIHN1Y2Nlc3MgKHRydWUpXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bGlrZWxpaG9vZCA6IDUwfSk7XG5cbiAgICAgICAgLy8gTm90ZSwgd2UgY291bGQgZ2V0IHNvbWUgbWlub3IgcGVyZiBvcHRpbWl6YXRpb25zIGJ5IGNoZWNraW5nIHJhbmdlXG4gICAgICAgIC8vIHByaW9yIHRvIGluaXRpYWxpemluZyBkZWZhdWx0cywgYnV0IHRoYXQgbWFrZXMgY29kZSBhIGJpdCBtZXNzaWVyXG4gICAgICAgIC8vIGFuZCB0aGUgY2hlY2sgbW9yZSBjb21wbGljYXRlZCBhcyB3ZSBoYXZlIHRvIGNoZWNrIGV4aXN0ZW5jZSBvZlxuICAgICAgICAvLyB0aGUgb2JqZWN0IHRoZW4gZXhpc3RlbmNlIG9mIHRoZSBrZXkgYmVmb3JlIGNoZWNraW5nIGNvbnN0cmFpbnRzLlxuICAgICAgICAvLyBTaW5jZSB0aGUgb3B0aW9ucyBpbml0aWFsaXphdGlvbiBzaG91bGQgYmUgbWlub3IgY29tcHV0YXRpb25hbGx5LFxuICAgICAgICAvLyBkZWNpc2lvbiBtYWRlIGZvciBjb2RlIGNsZWFubGluZXNzIGludGVudGlvbmFsbHkuIFRoaXMgaXMgbWVudGlvbmVkXG4gICAgICAgIC8vIGhlcmUgYXMgaXQncyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSwgd2lsbCBub3QgYmUgbWVudGlvbmVkIGFnYWluLlxuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLmxpa2VsaWhvb2QgPCAwIHx8IG9wdGlvbnMubGlrZWxpaG9vZCA+IDEwMCxcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBMaWtlbGlob29kIGFjY2VwdHMgdmFsdWVzIGZyb20gMCB0byAxMDAuXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yYW5kb20oKSAqIDEwMCA8IG9wdGlvbnMubGlrZWxpaG9vZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBjaGFyYWN0ZXIuXG4gICAgICpcbiAgICAgKiAgQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBjYW4gc3BlY2lmeSBhIGNoYXJhY3RlciBwb29sLCBvbmx5IGFscGhhLFxuICAgICAqICAgIG9ubHkgc3ltYm9scywgYW5kIGNhc2luZyAobG93ZXIgb3IgdXBwZXIpXG4gICAgICogIEByZXR1cm5zIHtTdHJpbmd9IGEgc2luZ2xlIHJhbmRvbSBjaGFyYWN0ZXJcbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gQ2FuIG9ubHkgc3BlY2lmeSBhbHBoYSBvciBzeW1ib2xzLCBub3QgYm90aFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuY2hhcmFjdGVyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLmFscGhhICYmIG9wdGlvbnMuc3ltYm9scyxcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBDYW5ub3Qgc3BlY2lmeSBib3RoIGFscGhhIGFuZCBzeW1ib2xzLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIHN5bWJvbHMgPSBcIiFAIyQlXiYqKClbXVwiLFxuICAgICAgICAgICAgbGV0dGVycywgcG9vbDtcblxuICAgICAgICBpZiAob3B0aW9ucy5jYXNpbmcgPT09ICdsb3dlcicpIHtcbiAgICAgICAgICAgIGxldHRlcnMgPSBDSEFSU19MT1dFUjtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJykge1xuICAgICAgICAgICAgbGV0dGVycyA9IENIQVJTX1VQUEVSO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0dGVycyA9IENIQVJTX0xPV0VSICsgQ0hBUlNfVVBQRVI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5wb29sKSB7XG4gICAgICAgICAgICBwb29sID0gb3B0aW9ucy5wb29sO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuYWxwaGEpIHtcbiAgICAgICAgICAgIHBvb2wgPSBsZXR0ZXJzO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuc3ltYm9scykge1xuICAgICAgICAgICAgcG9vbCA9IHN5bWJvbHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb29sID0gbGV0dGVycyArIE5VTUJFUlMgKyBzeW1ib2xzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBvb2wuY2hhckF0KHRoaXMubmF0dXJhbCh7bWF4OiAocG9vbC5sZW5ndGggLSAxKX0pKTtcbiAgICB9O1xuXG4gICAgLy8gTm90ZSwgd2FudGVkIHRvIHVzZSBcImZsb2F0XCIgb3IgXCJkb3VibGVcIiBidXQgdGhvc2UgYXJlIGJvdGggSlMgcmVzZXJ2ZWQgd29yZHMuXG5cbiAgICAvLyBOb3RlLCBmaXhlZCBtZWFucyBOIE9SIExFU1MgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsLiBUaGlzIGJlY2F1c2VcbiAgICAvLyBJdCBjb3VsZCBiZSAxNC45MDAwIGJ1dCBpbiBKYXZhU2NyaXB0LCB3aGVuIHRoaXMgaXMgY2FzdCBhcyBhIG51bWJlcixcbiAgICAvLyB0aGUgdHJhaWxpbmcgemVyb2VzIGFyZSBkcm9wcGVkLiBMZWZ0IHRvIHRoZSBjb25zdW1lciBpZiB0cmFpbGluZyB6ZXJvZXMgYXJlXG4gICAgLy8gbmVlZGVkXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBmbG9hdGluZyBwb2ludCBudW1iZXJcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgZml4ZWQgcHJlY2lzaW9uLCBtaW4sIG1heFxuICAgICAqICBAcmV0dXJucyB7TnVtYmVyfSBhIHNpbmdsZSBmbG9hdGluZyBwb2ludCBudW1iZXJcbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gQ2FuIG9ubHkgc3BlY2lmeSBmaXhlZCBvciBwcmVjaXNpb24sIG5vdCBib3RoLiBBbHNvXG4gICAgICogICAgbWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4XG4gICAgICovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5mbG9hdGluZyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQgOiA0fSk7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAgICAgICBcIkNoYW5jZTogQ2Fubm90IHNwZWNpZnkgYm90aCBmaXhlZCBhbmQgcHJlY2lzaW9uLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIG51bTtcbiAgICAgICAgdmFyIGZpeGVkID0gTWF0aC5wb3coMTAsIG9wdGlvbnMuZml4ZWQpO1xuXG4gICAgICAgIHZhciBtYXggPSBNQVhfSU5UIC8gZml4ZWQ7XG4gICAgICAgIHZhciBtaW4gPSAtbWF4O1xuXG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMubWluICYmIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5taW4gPCBtaW4sXG4gICAgICAgICAgICBcIkNoYW5jZTogTWluIHNwZWNpZmllZCBpcyBvdXQgb2YgcmFuZ2Ugd2l0aCBmaXhlZC4gTWluIHNob3VsZCBiZSwgYXQgbGVhc3QsIFwiICsgbWluXG4gICAgICAgICk7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMubWF4ICYmIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5tYXggPiBtYXgsXG4gICAgICAgICAgICBcIkNoYW5jZTogTWF4IHNwZWNpZmllZCBpcyBvdXQgb2YgcmFuZ2Ugd2l0aCBmaXhlZC4gTWF4IHNob3VsZCBiZSwgYXQgbW9zdCwgXCIgKyBtYXhcbiAgICAgICAgKTtcblxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBtaW4gOiBtaW4sIG1heCA6IG1heCB9KTtcblxuICAgICAgICAvLyBUb2RvIC0gTWFrZSB0aGlzIHdvcmshXG4gICAgICAgIC8vIG9wdGlvbnMucHJlY2lzaW9uID0gKHR5cGVvZiBvcHRpb25zLnByZWNpc2lvbiAhPT0gXCJ1bmRlZmluZWRcIikgPyBvcHRpb25zLnByZWNpc2lvbiA6IGZhbHNlO1xuXG4gICAgICAgIG51bSA9IHRoaXMuaW50ZWdlcih7bWluOiBvcHRpb25zLm1pbiAqIGZpeGVkLCBtYXg6IG9wdGlvbnMubWF4ICogZml4ZWR9KTtcbiAgICAgICAgdmFyIG51bV9maXhlZCA9IChudW0gLyBmaXhlZCkudG9GaXhlZChvcHRpb25zLmZpeGVkKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW1fZml4ZWQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIGludGVnZXJcbiAgICAgKlxuICAgICAqICBOT1RFIHRoZSBtYXggYW5kIG1pbiBhcmUgSU5DTFVERUQgaW4gdGhlIHJhbmdlLiBTbzpcbiAgICAgKiAgY2hhbmNlLmludGVnZXIoe21pbjogMSwgbWF4OiAzfSk7XG4gICAgICogIHdvdWxkIHJldHVybiBlaXRoZXIgMSwgMiwgb3IgMy5cbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgbWluIGFuZC9vciBtYXhcbiAgICAgKiAgQHJldHVybnMge051bWJlcn0gYSBzaW5nbGUgcmFuZG9tIGludGVnZXIgbnVtYmVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IG1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuaW50ZWdlciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIC8vIDkwMDcxOTkyNTQ3NDA5OTIgKDJeNTMpIGlzIHRoZSBtYXggaW50ZWdlciBudW1iZXIgaW4gSmF2YVNjcmlwdFxuICAgICAgICAvLyBTZWU6IGh0dHA6Ly92cS5pby8xMzJzYTJqXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWluOiBNSU5fSU5ULCBtYXg6IE1BWF9JTlR9KTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWluID4gb3B0aW9ucy5tYXgsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBNYXguXCIpO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMucmFuZG9tKCkgKiAob3B0aW9ucy5tYXggLSBvcHRpb25zLm1pbiArIDEpICsgb3B0aW9ucy5taW4pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIG5hdHVyYWxcbiAgICAgKlxuICAgICAqICBOT1RFIHRoZSBtYXggYW5kIG1pbiBhcmUgSU5DTFVERUQgaW4gdGhlIHJhbmdlLiBTbzpcbiAgICAgKiAgY2hhbmNlLm5hdHVyYWwoe21pbjogMSwgbWF4OiAzfSk7XG4gICAgICogIHdvdWxkIHJldHVybiBlaXRoZXIgMSwgMiwgb3IgMy5cbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgbWluIGFuZC9vciBtYXhcbiAgICAgKiAgQHJldHVybnMge051bWJlcn0gYSBzaW5nbGUgcmFuZG9tIGludGVnZXIgbnVtYmVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IG1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUubmF0dXJhbCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWluOiAwLCBtYXg6IE1BWF9JTlR9KTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWluIDwgMCwgXCJDaGFuY2U6IE1pbiBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlZ2VyKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIHN0cmluZ1xuICAgICAqXG4gICAgICogIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gY2FuIHNwZWNpZnkgYSBsZW5ndGhcbiAgICAgKiAgQHJldHVybnMge1N0cmluZ30gYSBzdHJpbmcgb2YgcmFuZG9tIGxlbmd0aFxuICAgICAqICBAdGhyb3dzIHtSYW5nZUVycm9yfSBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvXG4gICAgICovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdHJpbmcgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBsZW5ndGg6IHRoaXMubmF0dXJhbCh7bWluOiA1LCBtYXg6IDIwfSkgfSk7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLmxlbmd0aCA8IDAsIFwiQ2hhbmNlOiBMZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvLlwiKTtcbiAgICAgICAgdmFyIGxlbmd0aCA9IG9wdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgdGV4dCA9IHRoaXMubih0aGlzLmNoYXJhY3RlciwgbGVuZ3RoLCBvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gdGV4dC5qb2luKFwiXCIpO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgQmFzaWNzIC0tXG5cbiAgICAvLyAtLSBIZWxwZXJzIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNhcGl0YWxpemUgPSBmdW5jdGlvbiAod29yZCkge1xuICAgICAgICByZXR1cm4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc3Vic3RyKDEpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1peGluID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgICBmb3IgKHZhciBmdW5jX25hbWUgaW4gb2JqKSB7XG4gICAgICAgICAgICBDaGFuY2UucHJvdG90eXBlW2Z1bmNfbmFtZV0gPSBvYmpbZnVuY19uYW1lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIEdpdmVuIGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgc29tZXRoaW5nIHJhbmRvbSBhbmQgYSBudW1iZXIgb2YgaXRlbXMgdG8gZ2VuZXJhdGUsXG4gICAgICogICAgcmV0dXJuIGFuIGFycmF5IG9mIGl0ZW1zIHdoZXJlIG5vbmUgcmVwZWF0LlxuICAgICAqXG4gICAgICogIEBwYXJhbSB7RnVuY3Rpb259IGZuIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBzb21ldGhpbmcgcmFuZG9tXG4gICAgICogIEBwYXJhbSB7TnVtYmVyfSBudW0gbnVtYmVyIG9mIHRlcm1zIHRvIGdlbmVyYXRlXG4gICAgICogIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIGFueSBvcHRpb25zIHRvIHBhc3Mgb24gdG8gdGhlIGdlbmVyYXRvciBmdW5jdGlvblxuICAgICAqICBAcmV0dXJucyB7QXJyYXl9IGFuIGFycmF5IG9mIGxlbmd0aCBgbnVtYCB3aXRoIGV2ZXJ5IGl0ZW0gZ2VuZXJhdGVkIGJ5IGBmbmAgYW5kIHVuaXF1ZVxuICAgICAqXG4gICAgICogIFRoZXJlIGNhbiBiZSBtb3JlIHBhcmFtZXRlcnMgYWZ0ZXIgdGhlc2UuIEFsbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkIHRvIHRoZSBnaXZlbiBmdW5jdGlvblxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUudW5pcXVlID0gZnVuY3Rpb24oZm4sIG51bSwgb3B0aW9ucykge1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICB0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIixcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIC8vIERlZmF1bHQgY29tcGFyYXRvciB0byBjaGVjayB0aGF0IHZhbCBpcyBub3QgYWxyZWFkeSBpbiBhcnIuXG4gICAgICAgICAgICAvLyBTaG91bGQgcmV0dXJuIGBmYWxzZWAgaWYgaXRlbSBub3QgaW4gYXJyYXksIGB0cnVlYCBvdGhlcndpc2VcbiAgICAgICAgICAgIGNvbXBhcmF0b3I6IGZ1bmN0aW9uKGFyciwgdmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKHZhbCkgIT09IC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgYXJyID0gW10sIGNvdW50ID0gMCwgcmVzdWx0LCBNQVhfRFVQTElDQVRFUyA9IG51bSAqIDUwLCBwYXJhbXMgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG5cbiAgICAgICAgd2hpbGUgKGFyci5sZW5ndGggPCBudW0pIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGZuLmFwcGx5KHRoaXMsIHBhcmFtcyk7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMuY29tcGFyYXRvcihhcnIsIHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICBhcnIucHVzaChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIC8vIHJlc2V0IGNvdW50IHdoZW4gdW5pcXVlIGZvdW5kXG4gICAgICAgICAgICAgICAgY291bnQgPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoKytjb3VudCA+IE1BWF9EVVBMSUNBVEVTKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDaGFuY2U6IG51bSBpcyBsaWtlbHkgdG9vIGxhcmdlIGZvciBzYW1wbGUgc2V0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqICBHaXZlcyBhbiBhcnJheSBvZiBuIHJhbmRvbSB0ZXJtc1xuICAgICAqXG4gICAgICogIEBwYXJhbSB7RnVuY3Rpb259IGZuIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBzb21ldGhpbmcgcmFuZG9tXG4gICAgICogIEBwYXJhbSB7TnVtYmVyfSBuIG51bWJlciBvZiB0ZXJtcyB0byBnZW5lcmF0ZVxuICAgICAqICBAcmV0dXJucyB7QXJyYXl9IGFuIGFycmF5IG9mIGxlbmd0aCBgbmAgd2l0aCBpdGVtcyBnZW5lcmF0ZWQgYnkgYGZuYFxuICAgICAqXG4gICAgICogIFRoZXJlIGNhbiBiZSBtb3JlIHBhcmFtZXRlcnMgYWZ0ZXIgdGhlc2UuIEFsbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkIHRvIHRoZSBnaXZlbiBmdW5jdGlvblxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUubiA9IGZ1bmN0aW9uKGZuLCBuKSB7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiLFxuICAgICAgICAgICAgXCJDaGFuY2U6IFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24uXCJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodHlwZW9mIG4gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBuID0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaSA9IG4sIGFyciA9IFtdLCBwYXJhbXMgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG5cbiAgICAgICAgLy8gUHJvdmlkaW5nIGEgbmVnYXRpdmUgY291bnQgc2hvdWxkIHJlc3VsdCBpbiBhIG5vb3AuXG4gICAgICAgIGkgPSBNYXRoLm1heCggMCwgaSApO1xuXG4gICAgICAgIGZvciAobnVsbDsgaS0tOyBudWxsKSB7XG4gICAgICAgICAgICBhcnIucHVzaChmbi5hcHBseSh0aGlzLCBwYXJhbXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcblxuICAgIC8vIEgvVCB0byBTTyBmb3IgdGhpcyBvbmU6IGh0dHA6Ly92cS5pby9PdFVyWjVcbiAgICBDaGFuY2UucHJvdG90eXBlLnBhZCA9IGZ1bmN0aW9uIChudW1iZXIsIHdpZHRoLCBwYWQpIHtcbiAgICAgICAgLy8gRGVmYXVsdCBwYWQgdG8gMCBpZiBub25lIHByb3ZpZGVkXG4gICAgICAgIHBhZCA9IHBhZCB8fCAnMCc7XG4gICAgICAgIC8vIENvbnZlcnQgbnVtYmVyIHRvIGEgc3RyaW5nXG4gICAgICAgIG51bWJlciA9IG51bWJlciArICcnO1xuICAgICAgICByZXR1cm4gbnVtYmVyLmxlbmd0aCA+PSB3aWR0aCA/IG51bWJlciA6IG5ldyBBcnJheSh3aWR0aCAtIG51bWJlci5sZW5ndGggKyAxKS5qb2luKHBhZCkgKyBudW1iZXI7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucGljayA9IGZ1bmN0aW9uIChhcnIsIGNvdW50KSB7XG4gICAgICAgIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNoYW5jZTogQ2Fubm90IHBpY2soKSBmcm9tIGFuIGVtcHR5IGFycmF5XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY291bnQgfHwgY291bnQgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnJbdGhpcy5uYXR1cmFsKHttYXg6IGFyci5sZW5ndGggLSAxfSldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2h1ZmZsZShhcnIpLnNsaWNlKDAsIGNvdW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbiAoYXJyKSB7XG4gICAgICAgIHZhciBvbGRfYXJyYXkgPSBhcnIuc2xpY2UoMCksXG4gICAgICAgICAgICBuZXdfYXJyYXkgPSBbXSxcbiAgICAgICAgICAgIGogPSAwLFxuICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyKG9sZF9hcnJheS5sZW5ndGgpO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIC8vIFBpY2sgYSByYW5kb20gaW5kZXggZnJvbSB0aGUgYXJyYXlcbiAgICAgICAgICAgIGogPSB0aGlzLm5hdHVyYWwoe21heDogb2xkX2FycmF5Lmxlbmd0aCAtIDF9KTtcbiAgICAgICAgICAgIC8vIEFkZCBpdCB0byB0aGUgbmV3IGFycmF5XG4gICAgICAgICAgICBuZXdfYXJyYXlbaV0gPSBvbGRfYXJyYXlbal07XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhhdCBlbGVtZW50IGZyb20gdGhlIG9yaWdpbmFsIGFycmF5XG4gICAgICAgICAgICBvbGRfYXJyYXkuc3BsaWNlKGosIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ld19hcnJheTtcbiAgICB9O1xuXG4gICAgLy8gUmV0dXJucyBhIHNpbmdsZSBpdGVtIGZyb20gYW4gYXJyYXkgd2l0aCByZWxhdGl2ZSB3ZWlnaHRpbmcgb2Ygb2Rkc1xuICAgIENoYW5jZS5wcm90b3R5cGUud2VpZ2h0ZWQgPSBmdW5jdGlvbihhcnIsIHdlaWdodHMpIHtcbiAgICAgICAgaWYgKGFyci5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNoYW5jZTogbGVuZ3RoIG9mIGFycmF5IGFuZCB3ZWlnaHRzIG11c3QgbWF0Y2hcIik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGUgd2VpZ2h0cyB0aGF0IGFyZSBsZXNzIG9yIGVxdWFsIHRvIHplcm8uXG4gICAgICAgIGZvciAodmFyIHdlaWdodEluZGV4ID0gd2VpZ2h0cy5sZW5ndGggLSAxOyB3ZWlnaHRJbmRleCA+PSAwOyAtLXdlaWdodEluZGV4KSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgd2VpZ2h0IGlzIGxlc3Mgb3IgZXF1YWwgdG8gemVybywgcmVtb3ZlIGl0IGFuZCB0aGUgdmFsdWUuXG4gICAgICAgICAgICBpZiAod2VpZ2h0c1t3ZWlnaHRJbmRleF0gPD0gMCkge1xuICAgICAgICAgICAgICAgIGFyci5zcGxpY2Uod2VpZ2h0SW5kZXgsMSk7XG4gICAgICAgICAgICAgICAgd2VpZ2h0cy5zcGxpY2Uod2VpZ2h0SW5kZXgsMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBhbnkgb2YgdGhlIHdlaWdodHMgYXJlIGxlc3MgdGhhbiAxLCB3ZSB3YW50IHRvIHNjYWxlIHRoZW0gdXAgdG8gd2hvbGVcbiAgICAgICAgLy8gICBudW1iZXJzIGZvciB0aGUgcmVzdCBvZiB0aGlzIGxvZ2ljIHRvIHdvcmtcbiAgICAgICAgaWYgKHdlaWdodHMuc29tZShmdW5jdGlvbih3ZWlnaHQpIHsgcmV0dXJuIHdlaWdodCA8IDE7IH0pKSB7XG4gICAgICAgICAgICB2YXIgbWluID0gd2VpZ2h0cy5yZWR1Y2UoZnVuY3Rpb24obWluLCB3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHdlaWdodCA8IG1pbikgPyB3ZWlnaHQgOiBtaW47XG4gICAgICAgICAgICB9LCB3ZWlnaHRzWzBdKTtcblxuICAgICAgICAgICAgdmFyIHNjYWxpbmdfZmFjdG9yID0gMSAvIG1pbjtcblxuICAgICAgICAgICAgd2VpZ2h0cyA9IHdlaWdodHMubWFwKGZ1bmN0aW9uKHdlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3ZWlnaHQgKiBzY2FsaW5nX2ZhY3RvcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN1bSA9IHdlaWdodHMucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCB3ZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0b3RhbCArIHdlaWdodDtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgLy8gZ2V0IGFuIGluZGV4XG4gICAgICAgIHZhciBzZWxlY3RlZCA9IHRoaXMubmF0dXJhbCh7IG1pbjogMSwgbWF4OiBzdW0gfSk7XG5cbiAgICAgICAgdmFyIHRvdGFsID0gMDtcbiAgICAgICAgdmFyIGNob3NlbjtcbiAgICAgICAgLy8gVXNpbmcgc29tZSgpIGhlcmUgc28gd2UgY2FuIGJhaWwgYXMgc29vbiBhcyB3ZSBnZXQgb3VyIG1hdGNoXG4gICAgICAgIHdlaWdodHMuc29tZShmdW5jdGlvbih3ZWlnaHQsIGluZGV4KSB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQgPD0gdG90YWwgKyB3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBjaG9zZW4gPSBhcnJbaW5kZXhdO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG90YWwgKz0gd2VpZ2h0O1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY2hvc2VuO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgSGVscGVycyAtLVxuXG4gICAgLy8gLS0gVGV4dCAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wYXJhZ3JhcGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHNlbnRlbmNlcyA9IG9wdGlvbnMuc2VudGVuY2VzIHx8IHRoaXMubmF0dXJhbCh7bWluOiAzLCBtYXg6IDd9KSxcbiAgICAgICAgICAgIHNlbnRlbmNlX2FycmF5ID0gdGhpcy5uKHRoaXMuc2VudGVuY2UsIHNlbnRlbmNlcyk7XG5cbiAgICAgICAgcmV0dXJuIHNlbnRlbmNlX2FycmF5LmpvaW4oJyAnKTtcbiAgICB9O1xuXG4gICAgLy8gQ291bGQgZ2V0IHNtYXJ0ZXIgYWJvdXQgdGhpcyB0aGFuIGdlbmVyYXRpbmcgcmFuZG9tIHdvcmRzIGFuZFxuICAgIC8vIGNoYWluaW5nIHRoZW0gdG9nZXRoZXIuIFN1Y2ggYXM6IGh0dHA6Ly92cS5pby8xYTVjZU9oXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zZW50ZW5jZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB2YXIgd29yZHMgPSBvcHRpb25zLndvcmRzIHx8IHRoaXMubmF0dXJhbCh7bWluOiAxMiwgbWF4OiAxOH0pLFxuICAgICAgICAgICAgdGV4dCwgd29yZF9hcnJheSA9IHRoaXMubih0aGlzLndvcmQsIHdvcmRzKTtcblxuICAgICAgICB0ZXh0ID0gd29yZF9hcnJheS5qb2luKCcgJyk7XG5cbiAgICAgICAgLy8gQ2FwaXRhbGl6ZSBmaXJzdCBsZXR0ZXIgb2Ygc2VudGVuY2UsIGFkZCBwZXJpb2QgYXQgZW5kXG4gICAgICAgIHRleHQgPSB0aGlzLmNhcGl0YWxpemUodGV4dCkgKyAnLic7XG5cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3lsbGFibGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IG9wdGlvbnMubGVuZ3RoIHx8IHRoaXMubmF0dXJhbCh7bWluOiAyLCBtYXg6IDN9KSxcbiAgICAgICAgICAgIGNvbnNvbmFudHMgPSAnYmNkZmdoamtsbW5wcnN0dnd6JywgLy8gY29uc29uYW50cyBleGNlcHQgaGFyZCB0byBzcGVhayBvbmVzXG4gICAgICAgICAgICB2b3dlbHMgPSAnYWVpb3UnLCAvLyB2b3dlbHNcbiAgICAgICAgICAgIGFsbCA9IGNvbnNvbmFudHMgKyB2b3dlbHMsIC8vIGFsbFxuICAgICAgICAgICAgdGV4dCA9ICcnLFxuICAgICAgICAgICAgY2hyO1xuXG4gICAgICAgIC8vIEknbSBzdXJlIHRoZXJlJ3MgYSBtb3JlIGVsZWdhbnQgd2F5IHRvIGRvIHRoaXMsIGJ1dCB0aGlzIHdvcmtzXG4gICAgICAgIC8vIGRlY2VudGx5IHdlbGwuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgLy8gRmlyc3QgY2hhcmFjdGVyIGNhbiBiZSBhbnl0aGluZ1xuICAgICAgICAgICAgICAgIGNociA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiBhbGx9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uc29uYW50cy5pbmRleE9mKGNocikgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gTGFzdCBjaGFyYWN0ZXIgd2FzIGEgdm93ZWwsIG5vdyB3ZSB3YW50IGEgY29uc29uYW50XG4gICAgICAgICAgICAgICAgY2hyID0gdGhpcy5jaGFyYWN0ZXIoe3Bvb2w6IGNvbnNvbmFudHN9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTGFzdCBjaGFyYWN0ZXIgd2FzIGEgY29uc29uYW50LCBub3cgd2Ugd2FudCBhIHZvd2VsXG4gICAgICAgICAgICAgICAgY2hyID0gdGhpcy5jaGFyYWN0ZXIoe3Bvb2w6IHZvd2Vsc30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZXh0ICs9IGNocjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLndvcmQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdGVzdFJhbmdlKFxuICAgICAgICAgICAgb3B0aW9ucy5zeWxsYWJsZXMgJiYgb3B0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICBcIkNoYW5jZTogQ2Fubm90IHNwZWNpZnkgYm90aCBzeWxsYWJsZXMgQU5EIGxlbmd0aC5cIlxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBzeWxsYWJsZXMgPSBvcHRpb25zLnN5bGxhYmxlcyB8fCB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiAzfSksXG4gICAgICAgICAgICB0ZXh0ID0gJyc7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBFaXRoZXIgYm91bmQgd29yZCBieSBsZW5ndGhcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHRoaXMuc3lsbGFibGUoKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKHRleHQubGVuZ3RoIDwgb3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIG9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE9yIGJ5IG51bWJlciBvZiBzeWxsYWJsZXNcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3lsbGFibGVzOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHRoaXMuc3lsbGFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIFRleHQgLS1cblxuICAgIC8vIC0tIFBlcnNvbiAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hZ2UgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBhZ2VSYW5nZTtcblxuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY2hpbGQnOlxuICAgICAgICAgICAgICAgIGFnZVJhbmdlID0ge21pbjogMSwgbWF4OiAxMn07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZWVuJzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDEzLCBtYXg6IDE5fTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FkdWx0JzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDE4LCBtYXg6IDY1fTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Nlbmlvcic6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiA2NSwgbWF4OiAxMDB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWxsJzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDEsIG1heDogMTAwfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiAxOCwgbWF4OiA2NX07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKGFnZVJhbmdlKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5iaXJ0aGRheSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICB5ZWFyOiAobmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gdGhpcy5hZ2Uob3B0aW9ucykpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUob3B0aW9ucyk7XG4gICAgfTtcblxuICAgIC8vIENQRjsgSUQgdG8gaWRlbnRpZnkgdGF4cGF5ZXJzIGluIEJyYXppbFxuICAgIENoYW5jZS5wcm90b3R5cGUuY3BmID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMubih0aGlzLm5hdHVyYWwsIDksIHsgbWF4OiA5IH0pO1xuICAgICAgICB2YXIgZDEgPSBuWzhdKjIrbls3XSozK25bNl0qNCtuWzVdKjUrbls0XSo2K25bM10qNytuWzJdKjgrblsxXSo5K25bMF0qMTA7XG4gICAgICAgIGQxID0gMTEgLSAoZDEgJSAxMSk7XG4gICAgICAgIGlmIChkMT49MTApIHtcbiAgICAgICAgICAgIGQxID0gMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZDIgPSBkMSoyK25bOF0qMytuWzddKjQrbls2XSo1K25bNV0qNituWzRdKjcrblszXSo4K25bMl0qOStuWzFdKjEwK25bMF0qMTE7XG4gICAgICAgIGQyID0gMTEgLSAoZDIgJSAxMSk7XG4gICAgICAgIGlmIChkMj49MTApIHtcbiAgICAgICAgICAgIGQyID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJycrblswXStuWzFdK25bMl0rJy4nK25bM10rbls0XStuWzVdKycuJytuWzZdK25bN10rbls4XSsnLScrZDErZDI7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZmlyc3QgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2dlbmRlcjogdGhpcy5nZW5kZXIoKX0pO1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKHRoaXMuZ2V0KFwiZmlyc3ROYW1lc1wiKVtvcHRpb25zLmdlbmRlci50b0xvd2VyQ2FzZSgpXSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZ2VuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKFsnTWFsZScsICdGZW1hbGUnXSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubGFzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayh0aGlzLmdldChcImxhc3ROYW1lc1wiKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubXJ6ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGNoZWNrRGlnaXQgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHZhciBhbHBoYSA9IFwiPEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlYWlwiLnNwbGl0KCcnKSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsaWVycyA9IFsgNywgMywgMSBdLFxuICAgICAgICAgICAgICAgIHJ1bm5pbmdUb3RhbCA9IDA7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dC5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbihjaGFyYWN0ZXIsIGlkeCkge1xuICAgICAgICAgICAgICAgIHZhciBwb3MgPSBhbHBoYS5pbmRleE9mKGNoYXJhY3Rlcik7XG5cbiAgICAgICAgICAgICAgICBpZihwb3MgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciA9IHBvcyA9PT0gMCA/IDAgOiBwb3MgKyA5O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciA9IHBhcnNlSW50KGNoYXJhY3RlciwgMTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgKj0gbXVsdGlwbGllcnNbaWR4ICUgbXVsdGlwbGllcnMubGVuZ3RoXTtcbiAgICAgICAgICAgICAgICBydW5uaW5nVG90YWwgKz0gY2hhcmFjdGVyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcnVubmluZ1RvdGFsICUgMTA7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBnZW5lcmF0ZSA9IGZ1bmN0aW9uIChvcHRzKSB7XG4gICAgICAgICAgICB2YXIgcGFkID0gZnVuY3Rpb24gKGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXkobGVuZ3RoICsgMSkuam9pbignPCcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBudW1iZXIgPSBbICdQPCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmlzc3VlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubGFzdC50b1VwcGVyQ2FzZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgJzw8JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZmlyc3QudG9VcHBlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZCgzOSAtIChvcHRzLmxhc3QubGVuZ3RoICsgb3B0cy5maXJzdC5sZW5ndGggKyAyKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLnBhc3Nwb3J0TnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tEaWdpdChvcHRzLnBhc3Nwb3J0TnVtYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubmF0aW9uYWxpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmRvYixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQob3B0cy5kb2IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5nZW5kZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmV4cGlyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQob3B0cy5leHBpcnkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkKDE0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQocGFkKDE0KSkgXS5qb2luKCcnKTtcblxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArXG4gICAgICAgICAgICAgICAgKGNoZWNrRGlnaXQobnVtYmVyLnN1YnN0cig0NCwgMTApICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIuc3Vic3RyKDU3LCA3KSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyLnN1YnN0cig2NSwgNykpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0KCksXG4gICAgICAgICAgICBsYXN0OiB0aGlzLmxhc3QoKSxcbiAgICAgICAgICAgIHBhc3Nwb3J0TnVtYmVyOiB0aGlzLmludGVnZXIoe21pbjogMTAwMDAwMDAwLCBtYXg6IDk5OTk5OTk5OX0pLFxuICAgICAgICAgICAgZG9iOiAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRlID0gdGhhdC5iaXJ0aGRheSh7dHlwZTogJ2FkdWx0J30pO1xuICAgICAgICAgICAgICAgIHJldHVybiBbZGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkuc3Vic3RyKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5wYWQoZGF0ZS5nZXRNb250aCgpICsgMSwgMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnBhZChkYXRlLmdldERhdGUoKSwgMildLmpvaW4oJycpO1xuICAgICAgICAgICAgfSgpKSxcbiAgICAgICAgICAgIGV4cGlyeTogKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsoZGF0ZS5nZXRGdWxsWWVhcigpICsgNSkudG9TdHJpbmcoKS5zdWJzdHIoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnBhZChkYXRlLmdldE1vbnRoKCkgKyAxLCAyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucGFkKGRhdGUuZ2V0RGF0ZSgpLCAyKV0uam9pbignJyk7XG4gICAgICAgICAgICB9KCkpLFxuICAgICAgICAgICAgZ2VuZGVyOiB0aGlzLmdlbmRlcigpID09PSAnRmVtYWxlJyA/ICdGJzogJ00nLFxuICAgICAgICAgICAgaXNzdWVyOiAnR0JSJyxcbiAgICAgICAgICAgIG5hdGlvbmFsaXR5OiAnR0JSJ1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlIChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5uYW1lID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBmaXJzdCA9IHRoaXMuZmlyc3Qob3B0aW9ucyksXG4gICAgICAgICAgICBsYXN0ID0gdGhpcy5sYXN0KCksXG4gICAgICAgICAgICBuYW1lO1xuXG4gICAgICAgIGlmIChvcHRpb25zLm1pZGRsZSkge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgdGhpcy5maXJzdChvcHRpb25zKSArICcgJyArIGxhc3Q7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5taWRkbGVfaW5pdGlhbCkge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgdGhpcy5jaGFyYWN0ZXIoe2FscGhhOiB0cnVlLCBjYXNpbmc6ICd1cHBlcid9KSArICcuICcgKyBsYXN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgbGFzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnByZWZpeCkge1xuICAgICAgICAgICAgbmFtZSA9IHRoaXMucHJlZml4KG9wdGlvbnMpICsgJyAnICsgbmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnN1ZmZpeCkge1xuICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyAnICcgKyB0aGlzLnN1ZmZpeChvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuYW1lO1xuICAgIH07XG5cbiAgICAvLyBSZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG5hbWUgcHJlZml4ZXMgYmFzZWQgb24gc3VwcGxpZWQgZ2VuZGVyLlxuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZV9wcmVmaXhlcyA9IGZ1bmN0aW9uIChnZW5kZXIpIHtcbiAgICAgICAgZ2VuZGVyID0gZ2VuZGVyIHx8IFwiYWxsXCI7XG4gICAgICAgIGdlbmRlciA9IGdlbmRlci50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIHZhciBwcmVmaXhlcyA9IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3RvcicsIGFiYnJldmlhdGlvbjogJ0RyLicgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChnZW5kZXIgPT09IFwibWFsZVwiIHx8IGdlbmRlciA9PT0gXCJhbGxcIikge1xuICAgICAgICAgICAgcHJlZml4ZXMucHVzaCh7IG5hbWU6ICdNaXN0ZXInLCBhYmJyZXZpYXRpb246ICdNci4nIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdlbmRlciA9PT0gXCJmZW1hbGVcIiB8fCBnZW5kZXIgPT09IFwiYWxsXCIpIHtcbiAgICAgICAgICAgIHByZWZpeGVzLnB1c2goeyBuYW1lOiAnTWlzcycsIGFiYnJldmlhdGlvbjogJ01pc3MnIH0pO1xuICAgICAgICAgICAgcHJlZml4ZXMucHVzaCh7IG5hbWU6ICdNaXNzZXMnLCBhYmJyZXZpYXRpb246ICdNcnMuJyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcmVmaXhlcztcbiAgICB9O1xuXG4gICAgLy8gQWxpYXMgZm9yIG5hbWVfcHJlZml4XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wcmVmaXggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lX3ByZWZpeChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5uYW1lX3ByZWZpeCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IGdlbmRlcjogXCJhbGxcIiB9KTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZnVsbCA/XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3ByZWZpeGVzKG9wdGlvbnMuZ2VuZGVyKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3ByZWZpeGVzKG9wdGlvbnMuZ2VuZGVyKSkuYWJicmV2aWF0aW9uO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnNzbiA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7c3NuRm91cjogZmFsc2UsIGRhc2hlczogdHJ1ZX0pO1xuICAgICAgICB2YXIgc3NuX3Bvb2wgPSBcIjEyMzQ1Njc4OTBcIixcbiAgICAgICAgICAgIHNzbixcbiAgICAgICAgICAgIGRhc2ggPSBvcHRpb25zLmRhc2hlcyA/ICctJyA6ICcnO1xuXG4gICAgICAgIGlmKCFvcHRpb25zLnNzbkZvdXIpIHtcbiAgICAgICAgICAgIHNzbiA9IHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiAzfSkgKyBkYXNoICtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiAyfSkgKyBkYXNoICtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiA0fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzc24gPSB0aGlzLnN0cmluZyh7cG9vbDogc3NuX3Bvb2wsIGxlbmd0aDogNH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzc247XG4gICAgfTtcblxuICAgIC8vIFJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbmFtZSBzdWZmaXhlc1xuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZV9zdWZmaXhlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHN1ZmZpeGVzID0gW1xuICAgICAgICAgICAgeyBuYW1lOiAnRG9jdG9yIG9mIE9zdGVvcGF0aGljIE1lZGljaW5lJywgYWJicmV2aWF0aW9uOiAnRC5PLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3RvciBvZiBQaGlsb3NvcGh5JywgYWJicmV2aWF0aW9uOiAnUGguRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdFc3F1aXJlJywgYWJicmV2aWF0aW9uOiAnRXNxLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0p1bmlvcicsIGFiYnJldmlhdGlvbjogJ0pyLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0p1cmlzIERvY3RvcicsIGFiYnJldmlhdGlvbjogJ0ouRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgQXJ0cycsIGFiYnJldmlhdGlvbjogJ00uQS4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgQnVzaW5lc3MgQWRtaW5pc3RyYXRpb24nLCBhYmJyZXZpYXRpb246ICdNLkIuQS4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgU2NpZW5jZScsIGFiYnJldmlhdGlvbjogJ00uUy4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNZWRpY2FsIERvY3RvcicsIGFiYnJldmlhdGlvbjogJ00uRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdTZW5pb3InLCBhYmJyZXZpYXRpb246ICdTci4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdUaGUgVGhpcmQnLCBhYmJyZXZpYXRpb246ICdJSUknIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdUaGUgRm91cnRoJywgYWJicmV2aWF0aW9uOiAnSVYnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdCYWNoZWxvciBvZiBFbmdpbmVlcmluZycsIGFiYnJldmlhdGlvbjogJ0IuRScgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0JhY2hlbG9yIG9mIFRlY2hub2xvZ3knLCBhYmJyZXZpYXRpb246ICdCLlRFQ0gnIH1cbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIHN1ZmZpeGVzO1xuICAgIH07XG5cbiAgICAvLyBBbGlhcyBmb3IgbmFtZV9zdWZmaXhcbiAgICBDaGFuY2UucHJvdG90eXBlLnN1ZmZpeCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWVfc3VmZml4KG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm5hbWVfc3VmZml4ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5mdWxsID9cbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLm5hbWVfc3VmZml4ZXMoKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3N1ZmZpeGVzKCkpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIFBlcnNvbiAtLVxuXG4gICAgLy8gLS0gTW9iaWxlIC0tXG4gICAgLy8gQW5kcm9pZCBHQ00gUmVnaXN0cmF0aW9uIElEXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbmRyb2lkX2lkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gXCJBUEE5MVwiICsgdGhpcy5zdHJpbmcoeyBwb29sOiBcIjAxMjM0NTY3ODlhYmNlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotX1wiLCBsZW5ndGg6IDE3OCB9KTtcbiAgICB9O1xuXG4gICAgLy8gQXBwbGUgUHVzaCBUb2tlblxuICAgIENoYW5jZS5wcm90b3R5cGUuYXBwbGVfdG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZyh7IHBvb2w6IFwiYWJjZGVmMTIzNDU2Nzg5MFwiLCBsZW5ndGg6IDY0IH0pO1xuICAgIH07XG5cbiAgICAvLyBXaW5kb3dzIFBob25lIDggQU5JRDJcbiAgICBDaGFuY2UucHJvdG90eXBlLndwOF9hbmlkMiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGJhc2U2NCggdGhpcy5oYXNoKCB7IGxlbmd0aCA6IDMyIH0gKSApO1xuICAgIH07XG5cbiAgICAvLyBXaW5kb3dzIFBob25lIDcgQU5JRFxuICAgIENoYW5jZS5wcm90b3R5cGUud3A3X2FuaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnQT0nICsgdGhpcy5ndWlkKCkucmVwbGFjZSgvLS9nLCAnJykudG9VcHBlckNhc2UoKSArICcmRT0nICsgdGhpcy5oYXNoKHsgbGVuZ3RoOjMgfSkgKyAnJlc9JyArIHRoaXMuaW50ZWdlcih7IG1pbjowLCBtYXg6OSB9KTtcbiAgICB9O1xuXG4gICAgLy8gQmxhY2tCZXJyeSBEZXZpY2UgUElOXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5iYl9waW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc2goeyBsZW5ndGg6IDggfSk7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBNb2JpbGUgLS1cblxuICAgIC8vIC0tIFdlYiAtLVxuICAgIENoYW5jZS5wcm90b3R5cGUuYXZhdGFyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHVybCA9IG51bGw7XG4gICAgICAgIHZhciBVUkxfQkFTRSA9ICcvL3d3dy5ncmF2YXRhci5jb20vYXZhdGFyLyc7XG4gICAgICAgIHZhciBQUk9UT0NPTFMgPSB7XG4gICAgICAgICAgICBodHRwOiAnaHR0cCcsXG4gICAgICAgICAgICBodHRwczogJ2h0dHBzJ1xuICAgICAgICB9O1xuICAgICAgICB2YXIgRklMRV9UWVBFUyA9IHtcbiAgICAgICAgICAgIGJtcDogJ2JtcCcsXG4gICAgICAgICAgICBnaWY6ICdnaWYnLFxuICAgICAgICAgICAganBnOiAnanBnJyxcbiAgICAgICAgICAgIHBuZzogJ3BuZydcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIEZBTExCQUNLUyA9IHtcbiAgICAgICAgICAgICc0MDQnOiAnNDA0JywgLy8gUmV0dXJuIDQwNCBpZiBub3QgZm91bmRcbiAgICAgICAgICAgIG1tOiAnbW0nLCAvLyBNeXN0ZXJ5IG1hblxuICAgICAgICAgICAgaWRlbnRpY29uOiAnaWRlbnRpY29uJywgLy8gR2VvbWV0cmljIHBhdHRlcm4gYmFzZWQgb24gaGFzaFxuICAgICAgICAgICAgbW9uc3RlcmlkOiAnbW9uc3RlcmlkJywgLy8gQSBnZW5lcmF0ZWQgbW9uc3RlciBpY29uXG4gICAgICAgICAgICB3YXZhdGFyOiAnd2F2YXRhcicsIC8vIEEgZ2VuZXJhdGVkIGZhY2VcbiAgICAgICAgICAgIHJldHJvOiAncmV0cm8nLCAvLyA4LWJpdCBpY29uXG4gICAgICAgICAgICBibGFuazogJ2JsYW5rJyAvLyBBIHRyYW5zcGFyZW50IHBuZ1xuICAgICAgICB9O1xuICAgICAgICB2YXIgUkFUSU5HUyA9IHtcbiAgICAgICAgICAgIGc6ICdnJyxcbiAgICAgICAgICAgIHBnOiAncGcnLFxuICAgICAgICAgICAgcjogJ3InLFxuICAgICAgICAgICAgeDogJ3gnXG4gICAgICAgIH07XG4gICAgICAgIHZhciBvcHRzID0ge1xuICAgICAgICAgICAgcHJvdG9jb2w6IG51bGwsXG4gICAgICAgICAgICBlbWFpbDogbnVsbCxcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb246IG51bGwsXG4gICAgICAgICAgICBzaXplOiBudWxsLFxuICAgICAgICAgICAgZmFsbGJhY2s6IG51bGwsXG4gICAgICAgICAgICByYXRpbmc6IG51bGxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIFNldCB0byBhIHJhbmRvbSBlbWFpbFxuICAgICAgICAgICAgb3B0cy5lbWFpbCA9IHRoaXMuZW1haWwoKTtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIG9wdHMuZW1haWwgPSBvcHRpb25zO1xuICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5jb25zdHJ1Y3RvciA9PT0gJ0FycmF5Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRzID0gaW5pdE9wdGlvbnMob3B0aW9ucywgb3B0cyk7XG5cbiAgICAgICAgaWYgKCFvcHRzLmVtYWlsKSB7XG4gICAgICAgICAgICAvLyBTZXQgdG8gYSByYW5kb20gZW1haWxcbiAgICAgICAgICAgIG9wdHMuZW1haWwgPSB0aGlzLmVtYWlsKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTYWZlIGNoZWNraW5nIGZvciBwYXJhbXNcbiAgICAgICAgb3B0cy5wcm90b2NvbCA9IFBST1RPQ09MU1tvcHRzLnByb3RvY29sXSA/IG9wdHMucHJvdG9jb2wgKyAnOicgOiAnJztcbiAgICAgICAgb3B0cy5zaXplID0gcGFyc2VJbnQob3B0cy5zaXplLCAwKSA/IG9wdHMuc2l6ZSA6ICcnO1xuICAgICAgICBvcHRzLnJhdGluZyA9IFJBVElOR1Nbb3B0cy5yYXRpbmddID8gb3B0cy5yYXRpbmcgOiAnJztcbiAgICAgICAgb3B0cy5mYWxsYmFjayA9IEZBTExCQUNLU1tvcHRzLmZhbGxiYWNrXSA/IG9wdHMuZmFsbGJhY2sgOiAnJztcbiAgICAgICAgb3B0cy5maWxlRXh0ZW5zaW9uID0gRklMRV9UWVBFU1tvcHRzLmZpbGVFeHRlbnNpb25dID8gb3B0cy5maWxlRXh0ZW5zaW9uIDogJyc7XG5cbiAgICAgICAgdXJsID1cbiAgICAgICAgICAgIG9wdHMucHJvdG9jb2wgK1xuICAgICAgICAgICAgVVJMX0JBU0UgK1xuICAgICAgICAgICAgdGhpcy5iaW1kNS5tZDUob3B0cy5lbWFpbCkgK1xuICAgICAgICAgICAgKG9wdHMuZmlsZUV4dGVuc2lvbiA/ICcuJyArIG9wdHMuZmlsZUV4dGVuc2lvbiA6ICcnKSArXG4gICAgICAgICAgICAob3B0cy5zaXplIHx8IG9wdHMucmF0aW5nIHx8IG9wdHMuZmFsbGJhY2sgPyAnPycgOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMuc2l6ZSA/ICcmcz0nICsgb3B0cy5zaXplLnRvU3RyaW5nKCkgOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMucmF0aW5nID8gJyZyPScgKyBvcHRzLnJhdGluZyA6ICcnKSArXG4gICAgICAgICAgICAob3B0cy5mYWxsYmFjayA/ICcmZD0nICsgb3B0cy5mYWxsYmFjayA6ICcnKVxuICAgICAgICAgICAgO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY29sb3IgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBmdW5jdGlvbiBncmF5KHZhbHVlLCBkZWxpbWl0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIHZhbHVlLCB2YWx1ZV0uam9pbihkZWxpbWl0ZXIgfHwgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5waWNrKFsnaGV4JywgJ3Nob3J0aGV4JywgJ3JnYicsICdyZ2JhJywgJzB4J10pLFxuICAgICAgICAgICAgZ3JheXNjYWxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNhc2luZzogJ2xvd2VyJ1xuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgaXNHcmF5c2NhbGUgPSBvcHRpb25zLmdyYXlzY2FsZTtcbiAgICAgICAgdmFyIGNvbG9yVmFsdWU7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnaGV4Jykge1xuICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICcjJyArIChpc0dyYXlzY2FsZSA/IGdyYXkodGhpcy5oYXNoKHtsZW5ndGg6IDJ9KSkgOiB0aGlzLmhhc2goe2xlbmd0aDogNn0pKTtcblxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnc2hvcnRoZXgnKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlID0gJyMnICsgKGlzR3JheXNjYWxlID8gZ3JheSh0aGlzLmhhc2goe2xlbmd0aDogMX0pKSA6IHRoaXMuaGFzaCh7bGVuZ3RoOiAzfSkpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyZ2InKSB7XG4gICAgICAgICAgICBpZiAoaXNHcmF5c2NhbGUpIHtcbiAgICAgICAgICAgICAgICBjb2xvclZhbHVlID0gJ3JnYignICsgZ3JheSh0aGlzLm5hdHVyYWwoe21heDogMjU1fSksICcsJykgKyAnKSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yVmFsdWUgPSAncmdiKCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyZ2JhJykge1xuICAgICAgICAgICAgaWYgKGlzR3JheXNjYWxlKSB7XG4gICAgICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICdyZ2JhKCcgKyBncmF5KHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSwgJywnKSArICcsJyArIHRoaXMuZmxvYXRpbmcoe21pbjowLCBtYXg6MX0pICsgJyknO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvclZhbHVlID0gJ3JnYmEoJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMuZmxvYXRpbmcoe21pbjowLCBtYXg6MX0pICsgJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnMHgnKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlID0gJzB4JyArIChpc0dyYXlzY2FsZSA/IGdyYXkodGhpcy5oYXNoKHtsZW5ndGg6IDJ9KSkgOiB0aGlzLmhhc2goe2xlbmd0aDogNn0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIGZvcm1hdCBwcm92aWRlZC4gUGxlYXNlIHByb3ZpZGUgb25lIG9mIFwiaGV4XCIsIFwic2hvcnRoZXhcIiwgXCJyZ2JcIiwgXCJyZ2JhXCIsIG9yIFwiMHhcIi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJyApIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUgPSBjb2xvclZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29sb3JWYWx1ZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kb21haW4gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLndvcmQoKSArICcuJyArIChvcHRpb25zLnRsZCB8fCB0aGlzLnRsZCgpKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5lbWFpbCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud29yZCh7bGVuZ3RoOiBvcHRpb25zLmxlbmd0aH0pICsgJ0AnICsgKG9wdGlvbnMuZG9tYWluIHx8IHRoaXMuZG9tYWluKCkpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmZiaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCgnMTAwMDAnICsgdGhpcy5uYXR1cmFsKHttYXg6IDEwMDAwMDAwMDAwMH0pLCAxMCk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZ29vZ2xlX2FuYWx5dGljcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGFjY291bnQgPSB0aGlzLnBhZCh0aGlzLm5hdHVyYWwoe21heDogOTk5OTk5fSksIDYpO1xuICAgICAgICB2YXIgcHJvcGVydHkgPSB0aGlzLnBhZCh0aGlzLm5hdHVyYWwoe21heDogOTl9KSwgMik7XG5cbiAgICAgICAgcmV0dXJuICdVQS0nICsgYWNjb3VudCArICctJyArIHByb3BlcnR5O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmhhc2h0YWcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLndvcmQoKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5pcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gVG9kbzogVGhpcyBjb3VsZCByZXR1cm4gc29tZSByZXNlcnZlZCBJUHMuIFNlZSBodHRwOi8vdnEuaW8vMTM3ZGdZeVxuICAgICAgICAvLyB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSB1cGRhdGVkIHRvIGFjY291bnQgZm9yIHRoYXQgcmFyZSBhcyBpdCBtYXkgYmVcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcuJyArXG4gICAgICAgICAgICAgICB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLicgK1xuICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pICsgJy4nICtcbiAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5pcHY2ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaXBfYWRkciA9IHRoaXMubih0aGlzLmhhc2gsIDgsIHtsZW5ndGg6IDR9KTtcblxuICAgICAgICByZXR1cm4gaXBfYWRkci5qb2luKFwiOlwiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5rbG91dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWluOiAxLCBtYXg6IDk5fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudGxkcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFsnY29tJywgJ29yZycsICdlZHUnLCAnZ292JywgJ2NvLnVrJywgJ25ldCcsICdpbyddO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnRsZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayh0aGlzLnRsZHMoKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudHdpdHRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICdAJyArIHRoaXMud29yZCgpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnVybCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IHByb3RvY29sOiBcImh0dHBcIiwgZG9tYWluOiB0aGlzLmRvbWFpbihvcHRpb25zKSwgZG9tYWluX3ByZWZpeDogXCJcIiwgcGF0aDogdGhpcy53b3JkKCksIGV4dGVuc2lvbnM6IFtdfSk7XG5cbiAgICAgICAgdmFyIGV4dGVuc2lvbiA9IG9wdGlvbnMuZXh0ZW5zaW9ucy5sZW5ndGggPiAwID8gXCIuXCIgKyB0aGlzLnBpY2sob3B0aW9ucy5leHRlbnNpb25zKSA6IFwiXCI7XG4gICAgICAgIHZhciBkb21haW4gPSBvcHRpb25zLmRvbWFpbl9wcmVmaXggPyBvcHRpb25zLmRvbWFpbl9wcmVmaXggKyBcIi5cIiArIG9wdGlvbnMuZG9tYWluIDogb3B0aW9ucy5kb21haW47XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucHJvdG9jb2wgKyBcIjovL1wiICsgZG9tYWluICsgXCIvXCIgKyBvcHRpb25zLnBhdGggKyBleHRlbnNpb247XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBXZWIgLS1cblxuICAgIC8vIC0tIExvY2F0aW9uIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmFkZHJlc3MgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21pbjogNSwgbWF4OiAyMDAwfSkgKyAnICcgKyB0aGlzLnN0cmVldChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbHRpdHVkZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQ6IDUsIG1pbjogMCwgbWF4OiA4ODQ4fSk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb2F0aW5nKHtcbiAgICAgICAgICAgIG1pbjogb3B0aW9ucy5taW4sXG4gICAgICAgICAgICBtYXg6IG9wdGlvbnMubWF4LFxuICAgICAgICAgICAgZml4ZWQ6IG9wdGlvbnMuZml4ZWRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuYXJlYWNvZGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge3BhcmVucyA6IHRydWV9KTtcbiAgICAgICAgLy8gRG9uJ3Qgd2FudCBhcmVhIGNvZGVzIHRvIHN0YXJ0IHdpdGggMSwgb3IgaGF2ZSBhIDkgYXMgdGhlIHNlY29uZCBkaWdpdFxuICAgICAgICB2YXIgYXJlYWNvZGUgPSB0aGlzLm5hdHVyYWwoe21pbjogMiwgbWF4OiA5fSkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHttaW46IDAsIG1heDogOH0pLnRvU3RyaW5nKCkgK1xuICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWluOiAwLCBtYXg6IDl9KS50b1N0cmluZygpO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnBhcmVucyA/ICcoJyArIGFyZWFjb2RlICsgJyknIDogYXJlYWNvZGU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY2l0eSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwaXRhbGl6ZSh0aGlzLndvcmQoe3N5bGxhYmxlczogM30pKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jb29yZGluYXRlcyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhdGl0dWRlKG9wdGlvbnMpICsgJywgJyArIHRoaXMubG9uZ2l0dWRlKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNvdW50cmllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwiY291bnRyaWVzXCIpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNvdW50cnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBjb3VudHJ5ID0gdGhpcy5waWNrKHRoaXMuY291bnRyaWVzKCkpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5mdWxsID8gY291bnRyeS5uYW1lIDogY291bnRyeS5hYmJyZXZpYXRpb247XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZGVwdGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2ZpeGVkOiA1LCBtaW46IC0yNTUwLCBtYXg6IDB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXRpbmcoe1xuICAgICAgICAgICAgbWluOiBvcHRpb25zLm1pbixcbiAgICAgICAgICAgIG1heDogb3B0aW9ucy5tYXgsXG4gICAgICAgICAgICBmaXhlZDogb3B0aW9ucy5maXhlZFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5nZW9oYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgbGVuZ3RoOiA3IH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmcoeyBsZW5ndGg6IG9wdGlvbnMubGVuZ3RoLCBwb29sOiAnMDEyMzQ1Njc4OWJjZGVmZ2hqa21ucHFyc3R1dnd4eXonIH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmdlb2pzb24gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXRpdHVkZShvcHRpb25zKSArICcsICcgKyB0aGlzLmxvbmdpdHVkZShvcHRpb25zKSArICcsICcgKyB0aGlzLmFsdGl0dWRlKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmxhdGl0dWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtmaXhlZDogNSwgbWluOiAtOTAsIG1heDogOTB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXRpbmcoe21pbjogb3B0aW9ucy5taW4sIG1heDogb3B0aW9ucy5tYXgsIGZpeGVkOiBvcHRpb25zLmZpeGVkfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubG9uZ2l0dWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtmaXhlZDogNSwgbWluOiAtMTgwLCBtYXg6IDE4MH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5mbG9hdGluZyh7bWluOiBvcHRpb25zLm1pbiwgbWF4OiBvcHRpb25zLm1heCwgZml4ZWQ6IG9wdGlvbnMuZml4ZWR9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5waG9uZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgICAgIG51bVBpY2ssXG4gICAgICAgICAgICB1a051bSA9IGZ1bmN0aW9uIChwYXJ0cykge1xuICAgICAgICAgICAgICAgIHZhciBzZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgLy9maWxscyB0aGUgc2VjdGlvbiBwYXJ0IG9mIHRoZSBwaG9uZSBudW1iZXIgd2l0aCByYW5kb20gbnVtYmVycy5cbiAgICAgICAgICAgICAgICBwYXJ0cy5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi5wdXNoKHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IG59KSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnRzLmFyZWEgKyBzZWN0aW9uLmpvaW4oJyAnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICBmb3JtYXR0ZWQ6IHRydWUsXG4gICAgICAgICAgICBjb3VudHJ5OiAndXMnLFxuICAgICAgICAgICAgbW9iaWxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFvcHRpb25zLmZvcm1hdHRlZCkge1xuICAgICAgICAgICAgb3B0aW9ucy5wYXJlbnMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGhvbmU7XG4gICAgICAgIHN3aXRjaCAob3B0aW9ucy5jb3VudHJ5KSB7XG4gICAgICAgICAgICBjYXNlICdmcic6XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLm1vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICBudW1QaWNrID0gdGhpcy5waWNrKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIHpvbmUgYW5kIGTDqXBhcnRlbWVudCBjb2Rlcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICcwMScgKyB0aGlzLnBpY2soWyczMCcsICczNCcsICczOScsICc0MCcsICc0MScsICc0MicsICc0MycsICc0NCcsICc0NScsICc0NicsICc0NycsICc0OCcsICc0OScsICc1MycsICc1NScsICc1NicsICc1OCcsICc2MCcsICc2NCcsICc2OScsICc3MCcsICc3MicsICc3MycsICc3NCcsICc3NScsICc3NicsICc3NycsICc3OCcsICc3OScsICc4MCcsICc4MScsICc4MicsICc4MyddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwMicgKyB0aGlzLnBpY2soWycxNCcsICcxOCcsICcyMicsICcyMycsICcyOCcsICcyOScsICczMCcsICczMScsICczMicsICczMycsICczNCcsICczNScsICczNicsICczNycsICczOCcsICc0MCcsICc0MScsICc0MycsICc0NCcsICc0NScsICc0NicsICc0NycsICc0OCcsICc0OScsICc1MCcsICc1MScsICc1MicsICc1MycsICc1NCcsICc1NicsICc1NycsICc2MScsICc2MicsICc2OScsICc3MicsICc3NicsICc3NycsICc3OCcsICc4NScsICc5MCcsICc5NicsICc5NycsICc5OCcsICc5OSddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwMycgKyB0aGlzLnBpY2soWycxMCcsICcyMCcsICcyMScsICcyMicsICcyMycsICcyNCcsICcyNScsICcyNicsICcyNycsICcyOCcsICcyOScsICczOScsICc0NCcsICc0NScsICc1MScsICc1MicsICc1NCcsICc1NScsICc1NycsICc1OCcsICc1OScsICc2MCcsICc2MScsICc2MicsICc2MycsICc2NCcsICc2NScsICc2NicsICc2NycsICc2OCcsICc2OScsICc3MCcsICc3MScsICc3MicsICc3MycsICc4MCcsICc4MScsICc4MicsICc4MycsICc4NCcsICc4NScsICc4NicsICc4NycsICc4OCcsICc4OScsICc5MCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwNCcgKyB0aGlzLnBpY2soWycxMScsICcxMycsICcxNScsICcyMCcsICcyMicsICcyNicsICcyNycsICczMCcsICczMicsICczNCcsICczNycsICc0MicsICc0MycsICc0NCcsICc1MCcsICc1NicsICc1NycsICc2MycsICc2NicsICc2NycsICc2OCcsICc2OScsICc3MCcsICc3MScsICc3MicsICc3MycsICc3NCcsICc3NScsICc3NicsICc3NycsICc3OCcsICc3OScsICc4MCcsICc4MScsICc4MicsICc4MycsICc4NCcsICc4NScsICc4NicsICc4OCcsICc4OScsICc5MCcsICc5MScsICc5MicsICc5MycsICc5NCcsICc5NScsICc5NycsICc5OCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwNScgKyB0aGlzLnBpY2soWycwOCcsICcxNicsICcxNycsICcxOScsICcyNCcsICczMScsICczMicsICczMycsICczNCcsICczNScsICc0MCcsICc0NScsICc0NicsICc0NycsICc0OScsICc1MycsICc1NScsICc1NicsICc1NycsICc1OCcsICc1OScsICc2MScsICc2MicsICc2MycsICc2NCcsICc2NScsICc2NycsICc3OScsICc4MScsICc4MicsICc4NicsICc4NycsICc5MCcsICc5NCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwOScgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA4fSksXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gbnVtUGljay5tYXRjaCgvLi4vZykuam9pbignICcpIDogbnVtUGljaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBudW1QaWNrID0gdGhpcy5waWNrKFsnMDYnLCAnMDcnXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA4fSk7XG4gICAgICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyBudW1QaWNrLm1hdGNoKC8uLi9nKS5qb2luKCcgJykgOiBudW1QaWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VrJzpcbiAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMubW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIG51bVBpY2sgPSB0aGlzLnBpY2soW1xuICAgICAgICAgICAgICAgICAgICAgICAgLy92YWxpZCBhcmVhIGNvZGVzIG9mIG1ham9yIGNpdGllcy9jb3VudGllcyBmb2xsb3dlZCBieSByYW5kb20gbnVtYmVycyBpbiByZXF1aXJlZCBmb3JtYXQuXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMScgKyB0aGlzLmNoYXJhY3Rlcih7IHBvb2w6ICcyMzQ1NjknIH0pICsgJzEgJywgc2VjdGlvbnM6IFszLDRdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMjAgJyArIHRoaXMuY2hhcmFjdGVyKHsgcG9vbDogJzM3OCcgfSksIHNlY3Rpb25zOiBbMyw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDIzICcgKyB0aGlzLmNoYXJhY3Rlcih7IHBvb2w6ICc4OScgfSksIHNlY3Rpb25zOiBbMyw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDI0IDcnLCBzZWN0aW9uczogWzMsNF0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAyOCAnICsgdGhpcy5waWNrKFsnMjUnLCcyOCcsJzM3JywnNzEnLCc4MicsJzkwJywnOTInLCc5NSddKSwgc2VjdGlvbnM6IFsyLDRdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTInICsgdGhpcy5waWNrKFsnMDQnLCcwOCcsJzU0JywnNzYnLCc5NycsJzk4J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTMnICsgdGhpcy5waWNrKFsnNjMnLCc2NCcsJzg0JywnODYnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNCcgKyB0aGlzLnBpY2soWycwNCcsJzIwJywnNjAnLCc2MScsJzgwJywnODgnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNScgKyB0aGlzLnBpY2soWycyNCcsJzI3JywnNjInLCc2NiddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDE2JyArIHRoaXMucGljayhbJzA2JywnMjknLCczNScsJzQ3JywnNTknLCc5NSddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDE3JyArIHRoaXMucGljayhbJzI2JywnNDQnLCc1MCcsJzY4J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTgnICsgdGhpcy5waWNrKFsnMjcnLCczNycsJzg0JywnOTcnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxOScgKyB0aGlzLnBpY2soWycwMCcsJzA1JywnMzUnLCc0NicsJzQ5JywnNjMnLCc5NSddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9XG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gdWtOdW0obnVtUGljaykgOiB1a051bShudW1QaWNrKS5yZXBsYWNlKCcgJywgJycsICdnJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtUGljayA9IHRoaXMucGljayhbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwNycgKyB0aGlzLnBpY2soWyc0JywnNScsJzcnLCc4JywnOSddKSwgc2VjdGlvbnM6IFsyLDZdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwNzYyNCAnLCBzZWN0aW9uczogWzZdIH1cbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyB1a051bShudW1QaWNrKSA6IHVrTnVtKG51bVBpY2spLnJlcGxhY2UoJyAnLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXMnOlxuICAgICAgICAgICAgICAgIHZhciBhcmVhY29kZSA9IHRoaXMuYXJlYWNvZGUob3B0aW9ucykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB2YXIgZXhjaGFuZ2UgPSB0aGlzLm5hdHVyYWwoeyBtaW46IDIsIG1heDogOSB9KS50b1N0cmluZygpICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHsgbWluOiAwLCBtYXg6IDkgfSkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7IG1pbjogMCwgbWF4OiA5IH0pLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgdmFyIHN1YnNjcmliZXIgPSB0aGlzLm5hdHVyYWwoeyBtaW46IDEwMDAsIG1heDogOTk5OSB9KS50b1N0cmluZygpOyAvLyB0aGlzIGNvdWxkIGJlIHJhbmRvbSBbMC05XXs0fVxuICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyBhcmVhY29kZSArICcgJyArIGV4Y2hhbmdlICsgJy0nICsgc3Vic2NyaWJlciA6IGFyZWFjb2RlICsgZXhjaGFuZ2UgKyBzdWJzY3JpYmVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwaG9uZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wb3N0YWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIFBvc3RhbCBEaXN0cmljdFxuICAgICAgICB2YXIgcGQgPSB0aGlzLmNoYXJhY3Rlcih7cG9vbDogXCJYVlRTUlBOS0xNSEpHRUNCQVwifSk7XG4gICAgICAgIC8vIEZvcndhcmQgU29ydGF0aW9uIEFyZWEgKEZTQSlcbiAgICAgICAgdmFyIGZzYSA9IHBkICsgdGhpcy5uYXR1cmFsKHttYXg6IDl9KSArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KTtcbiAgICAgICAgLy8gTG9jYWwgRGVsaXZlcnkgVW51dCAoTERVKVxuICAgICAgICB2YXIgbGR1ID0gdGhpcy5uYXR1cmFsKHttYXg6IDl9KSArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KSArIHRoaXMubmF0dXJhbCh7bWF4OiA5fSk7XG5cbiAgICAgICAgcmV0dXJuIGZzYSArIFwiIFwiICsgbGR1O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnByb3ZpbmNlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwicHJvdmluY2VzXCIpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnByb3ZpbmNlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIChvcHRpb25zICYmIG9wdGlvbnMuZnVsbCkgP1xuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMucHJvdmluY2VzKCkpLm5hbWUgOlxuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMucHJvdmluY2VzKCkpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdGF0ZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiAob3B0aW9ucyAmJiBvcHRpb25zLmZ1bGwpID9cbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLnN0YXRlcyhvcHRpb25zKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5zdGF0ZXMob3B0aW9ucykpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdGF0ZXMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHN0YXRlcyxcbiAgICAgICAgICAgIHVzX3N0YXRlc19hbmRfZGMgPSB0aGlzLmdldChcInVzX3N0YXRlc19hbmRfZGNcIiksXG4gICAgICAgICAgICB0ZXJyaXRvcmllcyA9IHRoaXMuZ2V0KFwidGVycml0b3JpZXNcIiksXG4gICAgICAgICAgICBhcm1lZF9mb3JjZXMgPSB0aGlzLmdldChcImFybWVkX2ZvcmNlc1wiKTtcblxuICAgICAgICBzdGF0ZXMgPSB1c19zdGF0ZXNfYW5kX2RjO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnRlcnJpdG9yaWVzKSB7XG4gICAgICAgICAgICBzdGF0ZXMgPSBzdGF0ZXMuY29uY2F0KHRlcnJpdG9yaWVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hcm1lZF9mb3JjZXMpIHtcbiAgICAgICAgICAgIHN0YXRlcyA9IHN0YXRlcy5jb25jYXQoYXJtZWRfZm9yY2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZXM7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RyZWV0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBzdHJlZXQgPSB0aGlzLndvcmQoe3N5bGxhYmxlczogMn0pO1xuICAgICAgICBzdHJlZXQgPSB0aGlzLmNhcGl0YWxpemUoc3RyZWV0KTtcbiAgICAgICAgc3RyZWV0ICs9ICcgJztcbiAgICAgICAgc3RyZWV0ICs9IG9wdGlvbnMuc2hvcnRfc3VmZml4ID9cbiAgICAgICAgICAgIHRoaXMuc3RyZWV0X3N1ZmZpeCgpLmFiYnJldmlhdGlvbiA6XG4gICAgICAgICAgICB0aGlzLnN0cmVldF9zdWZmaXgoKS5uYW1lO1xuICAgICAgICByZXR1cm4gc3RyZWV0O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnN0cmVldF9zdWZmaXggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy5zdHJlZXRfc3VmZml4ZXMoKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RyZWV0X3N1ZmZpeGVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIG1vc3QgY29tbW9uIHN1ZmZpeGVzLlxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoXCJzdHJlZXRfc3VmZml4ZXNcIik7XG4gICAgfTtcblxuICAgIC8vIE5vdGU6IG9ubHkgcmV0dXJuaW5nIFVTIHppcCBjb2RlcywgaW50ZXJuYXRpb25hbGl6YXRpb24gd2lsbCBiZSBhIHdob2xlXG4gICAgLy8gb3RoZXIgYmVhc3QgdG8gdGFja2xlIGF0IHNvbWUgcG9pbnQuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS56aXAgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgemlwID0gdGhpcy5uKHRoaXMubmF0dXJhbCwgNSwge21heDogOX0pO1xuXG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucGx1c2ZvdXIgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHppcC5wdXNoKCctJyk7XG4gICAgICAgICAgICB6aXAgPSB6aXAuY29uY2F0KHRoaXMubih0aGlzLm5hdHVyYWwsIDQsIHttYXg6IDl9KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gemlwLmpvaW4oXCJcIik7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBMb2NhdGlvbiAtLVxuXG4gICAgLy8gLS0gVGltZVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbXBtID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ib29sKCkgPyAnYW0nIDogJ3BtJztcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGRhdGVfc3RyaW5nLCBkYXRlO1xuXG4gICAgICAgIC8vIElmIGludGVydmFsIGlzIHNwZWNpZmllZCB3ZSBpZ25vcmUgcHJlc2V0XG4gICAgICAgIGlmKG9wdGlvbnMgJiYgKG9wdGlvbnMubWluIHx8IG9wdGlvbnMubWF4KSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBhbWVyaWNhbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdHJpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBtaW4gPSB0eXBlb2Ygb3B0aW9ucy5taW4gIT09IFwidW5kZWZpbmVkXCIgPyBvcHRpb25zLm1pbi5nZXRUaW1lKCkgOiAxO1xuICAgICAgICAgICAgLy8gMTAwLDAwMCwwMDAgZGF5cyBtZWFzdXJlZCByZWxhdGl2ZSB0byBtaWRuaWdodCBhdCB0aGUgYmVnaW5uaW5nIG9mIDAxIEphbnVhcnksIDE5NzAgVVRDLiBodHRwOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjkuMS4xXG4gICAgICAgICAgICB2YXIgbWF4ID0gdHlwZW9mIG9wdGlvbnMubWF4ICE9PSBcInVuZGVmaW5lZFwiID8gb3B0aW9ucy5tYXguZ2V0VGltZSgpIDogODY0MDAwMDAwMDAwMDAwMDtcblxuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKHRoaXMubmF0dXJhbCh7bWluOiBtaW4sIG1heDogbWF4fSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIG0gPSB0aGlzLm1vbnRoKHtyYXc6IHRydWV9KTtcbiAgICAgICAgICAgIHZhciBkYXlzSW5Nb250aCA9IG0uZGF5cztcblxuICAgICAgICAgICAgaWYob3B0aW9ucyAmJiBvcHRpb25zLm1vbnRoKSB7XG4gICAgICAgICAgICAgICAgLy8gTW9kIDEyIHRvIGFsbG93IG1vbnRocyBvdXRzaWRlIHJhbmdlIG9mIDAtMTEgKG5vdCBlbmNvdXJhZ2VkLCBidXQgYWxzbyBub3QgcHJldmVudGVkKS5cbiAgICAgICAgICAgICAgICBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0KCdtb250aHMnKVsoKG9wdGlvbnMubW9udGggJSAxMikgKyAxMikgJSAxMl0uZGF5cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICB5ZWFyOiBwYXJzZUludCh0aGlzLnllYXIoKSwgMTApLFxuICAgICAgICAgICAgICAgIC8vIE5lY2Vzc2FyeSB0byBzdWJ0cmFjdCAxIGJlY2F1c2UgRGF0ZSgpIDAtaW5kZXhlcyBtb250aCBidXQgbm90IGRheSBvciB5ZWFyXG4gICAgICAgICAgICAgICAgLy8gZm9yIHNvbWUgcmVhc29uLlxuICAgICAgICAgICAgICAgIG1vbnRoOiBtLm51bWVyaWMgLSAxLFxuICAgICAgICAgICAgICAgIGRheTogdGhpcy5uYXR1cmFsKHttaW46IDEsIG1heDogZGF5c0luTW9udGh9KSxcbiAgICAgICAgICAgICAgICBob3VyOiB0aGlzLmhvdXIoKSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMubWludXRlKCksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiB0aGlzLnNlY29uZCgpLFxuICAgICAgICAgICAgICAgIG1pbGxpc2Vjb25kOiB0aGlzLm1pbGxpc2Vjb25kKCksXG4gICAgICAgICAgICAgICAgYW1lcmljYW46IHRydWUsXG4gICAgICAgICAgICAgICAgc3RyaW5nOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShvcHRpb25zLnllYXIsIG9wdGlvbnMubW9udGgsIG9wdGlvbnMuZGF5LCBvcHRpb25zLmhvdXIsIG9wdGlvbnMubWludXRlLCBvcHRpb25zLnNlY29uZCwgb3B0aW9ucy5taWxsaXNlY29uZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5hbWVyaWNhbikge1xuICAgICAgICAgICAgLy8gQWRkaW5nIDEgdG8gdGhlIG1vbnRoIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIERhdGUoKSAwLWluZGV4ZXNcbiAgICAgICAgICAgIC8vIG1vbnRocyBidXQgbm90IGRheSBmb3Igc29tZSBvZGQgcmVhc29uLlxuICAgICAgICAgICAgZGF0ZV9zdHJpbmcgPSAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLycgKyBkYXRlLmdldERhdGUoKSArICcvJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGVfc3RyaW5nID0gZGF0ZS5nZXREYXRlKCkgKyAnLycgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLycgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5zdHJpbmcgPyBkYXRlX3N0cmluZyA6IGRhdGU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuaGFtbWVydGltZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUob3B0aW9ucykuZ2V0VGltZSgpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmhvdXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMSwgbWF4OiBvcHRpb25zICYmIG9wdGlvbnMudHdlbnR5Zm91ciA/IDI0IDogMTJ9KTtcblxuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPCAxLCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBsZXNzIHRoYW4gMS5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLnR3ZW50eWZvdXIgJiYgb3B0aW9ucy5tYXggPiAyNCwgXCJDaGFuY2U6IE1heCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDI0IGZvciB0d2VudHlmb3VyIG9wdGlvbi5cIik7XG4gICAgICAgIHRlc3RSYW5nZSghb3B0aW9ucy50d2VudHlmb3VyICYmIG9wdGlvbnMubWF4ID4gMTIsIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMi5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubWlsbGlzZWNvbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21heDogOTk5fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubWludXRlID0gQ2hhbmNlLnByb3RvdHlwZS5zZWNvbmQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMCwgbWF4OiA1OX0pO1xuXG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA8IDAsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGxlc3MgdGhhbiAwLlwiKTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWF4ID4gNTksIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiA1OS5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubW9udGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMSwgbWF4OiAxMn0pO1xuXG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA8IDEsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGxlc3MgdGhhbiAxLlwiKTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWF4ID4gMTIsIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMi5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICB2YXIgbW9udGggPSB0aGlzLnBpY2sodGhpcy5tb250aHMoKS5zbGljZShvcHRpb25zLm1pbiAtIDEsIG9wdGlvbnMubWF4KSk7XG4gICAgICAgIHJldHVybiBvcHRpb25zLnJhdyA/IG1vbnRoIDogbW9udGgubmFtZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5tb250aHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcIm1vbnRoc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zZWNvbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21heDogNTl9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS50aW1lc3RhbXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiBwYXJzZUludChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAsIDEwKX0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnllYXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgeWVhciBhcyBtaW4gaWYgbm9uZSBzcGVjaWZpZWRcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttaW46IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0pO1xuXG4gICAgICAgIC8vIERlZmF1bHQgdG8gb25lIGNlbnR1cnkgYWZ0ZXIgY3VycmVudCB5ZWFyIGFzIG1heCBpZiBub25lIHNwZWNpZmllZFxuICAgICAgICBvcHRpb25zLm1heCA9ICh0eXBlb2Ygb3B0aW9ucy5tYXggIT09IFwidW5kZWZpbmVkXCIpID8gb3B0aW9ucy5tYXggOiBvcHRpb25zLm1pbiArIDEwMDtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKG9wdGlvbnMpLnRvU3RyaW5nKCk7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBUaW1lXG5cbiAgICAvLyAtLSBGaW5hbmNlIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNjID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciB0eXBlLCBudW1iZXIsIHRvX2dlbmVyYXRlO1xuXG4gICAgICAgIHR5cGUgPSAob3B0aW9ucy50eXBlKSA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2NfdHlwZSh7IG5hbWU6IG9wdGlvbnMudHlwZSwgcmF3OiB0cnVlIH0pIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jY190eXBlKHsgcmF3OiB0cnVlIH0pO1xuXG4gICAgICAgIG51bWJlciA9IHR5cGUucHJlZml4LnNwbGl0KFwiXCIpO1xuICAgICAgICB0b19nZW5lcmF0ZSA9IHR5cGUubGVuZ3RoIC0gdHlwZS5wcmVmaXgubGVuZ3RoIC0gMTtcblxuICAgICAgICAvLyBHZW5lcmF0ZXMgbiAtIDEgZGlnaXRzXG4gICAgICAgIG51bWJlciA9IG51bWJlci5jb25jYXQodGhpcy5uKHRoaXMuaW50ZWdlciwgdG9fZ2VuZXJhdGUsIHttaW46IDAsIG1heDogOX0pKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZXMgdGhlIGxhc3QgZGlnaXQgYWNjb3JkaW5nIHRvIEx1aG4gYWxnb3JpdGhtXG4gICAgICAgIG51bWJlci5wdXNoKHRoaXMubHVobl9jYWxjdWxhdGUobnVtYmVyLmpvaW4oXCJcIikpKTtcblxuICAgICAgICByZXR1cm4gbnVtYmVyLmpvaW4oXCJcIik7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY2NfdHlwZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFua19jYXJkX251bWJlciNJc3N1ZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyXy4yOElJTi4yOVxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoXCJjY190eXBlc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jY190eXBlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgdHlwZXMgPSB0aGlzLmNjX3R5cGVzKCksXG4gICAgICAgICAgICB0eXBlID0gbnVsbDtcblxuICAgICAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgLy8gQWNjZXB0IGVpdGhlciBuYW1lIG9yIHNob3J0X25hbWUgdG8gc3BlY2lmeSBjYXJkIHR5cGVcbiAgICAgICAgICAgICAgICBpZiAodHlwZXNbaV0ubmFtZSA9PT0gb3B0aW9ucy5uYW1lIHx8IHR5cGVzW2ldLnNob3J0X25hbWUgPT09IG9wdGlvbnMubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0eXBlID0gdHlwZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDcmVkaXQgY2FyZCB0eXBlICdcIiArIG9wdGlvbnMubmFtZSArIFwiJycgaXMgbm90IHN1cHBvcnRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHR5cGUgPSB0aGlzLnBpY2sodHlwZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucmF3ID8gdHlwZSA6IHR5cGUubmFtZTtcbiAgICB9O1xuXG4gICAgLy9yZXR1cm4gYWxsIHdvcmxkIGN1cnJlbmN5IGJ5IElTTyA0MjE3XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jdXJyZW5jeV90eXBlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwiY3VycmVuY3lfdHlwZXNcIik7XG4gICAgfTtcblxuICAgIC8vcmV0dXJuIHJhbmRvbSB3b3JsZCBjdXJyZW5jeSBieSBJU08gNDIxN1xuICAgIENoYW5jZS5wcm90b3R5cGUuY3VycmVuY3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy5jdXJyZW5jeV90eXBlcygpKTtcbiAgICB9O1xuXG4gICAgLy9SZXR1cm4gcmFuZG9tIGNvcnJlY3QgY3VycmVuY3kgZXhjaGFuZ2UgcGFpciAoZS5nLiBFVVIvVVNEKSBvciBhcnJheSBvZiBjdXJyZW5jeSBjb2RlXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jdXJyZW5jeV9wYWlyID0gZnVuY3Rpb24gKHJldHVybkFzU3RyaW5nKSB7XG4gICAgICAgIHZhciBjdXJyZW5jaWVzID0gdGhpcy51bmlxdWUodGhpcy5jdXJyZW5jeSwgMiwge1xuICAgICAgICAgICAgY29tcGFyYXRvcjogZnVuY3Rpb24oYXJyLCB2YWwpIHtcblxuICAgICAgICAgICAgICAgIHJldHVybiBhcnIucmVkdWNlKGZ1bmN0aW9uKGFjYywgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiBhIG1hdGNoIGhhcyBiZWVuIGZvdW5kLCBzaG9ydCBjaXJjdWl0IGNoZWNrIGFuZCBqdXN0IHJldHVyblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjIHx8IChpdGVtLmNvZGUgPT09IHZhbC5jb2RlKTtcbiAgICAgICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXR1cm5Bc1N0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbmNpZXNbMF0uY29kZSArICcvJyArIGN1cnJlbmNpZXNbMV0uY29kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW5jaWVzO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZG9sbGFyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgLy8gQnkgZGVmYXVsdCwgYSBzb21ld2hhdCBtb3JlIHNhbmUgbWF4IGZvciBkb2xsYXIgdGhhbiBhbGwgYXZhaWxhYmxlIG51bWJlcnNcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttYXggOiAxMDAwMCwgbWluIDogMH0pO1xuXG4gICAgICAgIHZhciBkb2xsYXIgPSB0aGlzLmZsb2F0aW5nKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4LCBmaXhlZDogMn0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBjZW50cyA9IGRvbGxhci5zcGxpdCgnLicpWzFdO1xuXG4gICAgICAgIGlmIChjZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2xsYXIgKz0gJy4wMCc7XG4gICAgICAgIH0gZWxzZSBpZiAoY2VudHMubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgZG9sbGFyID0gZG9sbGFyICsgJzAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRvbGxhciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnLSQnICsgZG9sbGFyLnJlcGxhY2UoJy0nLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyQnICsgZG9sbGFyO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZXhwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgZXhwID0ge307XG5cbiAgICAgICAgZXhwLnllYXIgPSB0aGlzLmV4cF95ZWFyKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIHllYXIgaXMgdGhpcyB5ZWFyLCBuZWVkIHRvIGVuc3VyZSBtb250aCBpcyBncmVhdGVyIHRoYW4gdGhlXG4gICAgICAgIC8vIGN1cnJlbnQgbW9udGggb3IgdGhpcyBleHBpcmF0aW9uIHdpbGwgbm90IGJlIHZhbGlkXG4gICAgICAgIGlmIChleHAueWVhciA9PT0gKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgIGV4cC5tb250aCA9IHRoaXMuZXhwX21vbnRoKHtmdXR1cmU6IHRydWV9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cC5tb250aCA9IHRoaXMuZXhwX21vbnRoKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5yYXcgPyBleHAgOiBleHAubW9udGggKyAnLycgKyBleHAueWVhcjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5leHBfbW9udGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBtb250aCwgbW9udGhfaW50LFxuICAgICAgICAgICAgY3VyTW9udGggPSBuZXcgRGF0ZSgpLmdldE1vbnRoKCk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZnV0dXJlKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgbW9udGggPSB0aGlzLm1vbnRoKHtyYXc6IHRydWV9KS5udW1lcmljO1xuICAgICAgICAgICAgICAgIG1vbnRoX2ludCA9IHBhcnNlSW50KG1vbnRoLCAxMCk7XG4gICAgICAgICAgICB9IHdoaWxlIChtb250aF9pbnQgPCBjdXJNb250aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtb250aCA9IHRoaXMubW9udGgoe3JhdzogdHJ1ZX0pLm51bWVyaWM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9udGg7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZXhwX3llYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIoe21heDogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICsgMTB9KTtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIEZpbmFuY2VcblxuICAgIC8vIC0tIE1pc2NlbGxhbmVvdXMgLS1cblxuICAgIC8vIERpY2UgLSBGb3IgYWxsIHRoZSBib2FyZCBnYW1lIGdlZWtzIG91dCB0aGVyZSwgbXlzZWxmIGluY2x1ZGVkIDspXG4gICAgZnVuY3Rpb24gZGljZUZuIChyYW5nZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbChyYW5nZSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIENoYW5jZS5wcm90b3R5cGUuZDQgPSBkaWNlRm4oe21pbjogMSwgbWF4OiA0fSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kNiA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDZ9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQ4ID0gZGljZUZuKHttaW46IDEsIG1heDogOH0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDEwID0gZGljZUZuKHttaW46IDEsIG1heDogMTB9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQxMiA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDEyfSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kMjAgPSBkaWNlRm4oe21pbjogMSwgbWF4OiAyMH0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDMwID0gZGljZUZuKHttaW46IDEsIG1heDogMzB9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQxMDAgPSBkaWNlRm4oe21pbjogMSwgbWF4OiAxMDB9KTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucnBnID0gZnVuY3Rpb24gKHRocm93biwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIGlmICghdGhyb3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkEgdHlwZSBvZiBkaWUgcm9sbCBtdXN0IGJlIGluY2x1ZGVkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGJpdHMgPSB0aHJvd24udG9Mb3dlckNhc2UoKS5zcGxpdChcImRcIiksXG4gICAgICAgICAgICAgICAgcm9sbHMgPSBbXTtcblxuICAgICAgICAgICAgaWYgKGJpdHMubGVuZ3RoICE9PSAyIHx8ICFwYXJzZUludChiaXRzWzBdLCAxMCkgfHwgIXBhcnNlSW50KGJpdHNbMV0sIDEwKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZm9ybWF0IHByb3ZpZGVkLiBQbGVhc2UgcHJvdmlkZSAjZCMgd2hlcmUgdGhlIGZpcnN0ICMgaXMgdGhlIG51bWJlciBvZiBkaWNlIHRvIHJvbGwsIHRoZSBzZWNvbmQgIyBpcyB0aGUgbWF4IG9mIGVhY2ggZGllXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGJpdHNbMF07IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICByb2xsc1tpIC0gMV0gPSB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiBiaXRzWzFdfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHR5cGVvZiBvcHRpb25zLnN1bSAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucy5zdW0pID8gcm9sbHMucmVkdWNlKGZ1bmN0aW9uIChwLCBjKSB7IHJldHVybiBwICsgYzsgfSkgOiByb2xscztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBHdWlkXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5ndWlkID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgdmVyc2lvbjogNSB9KTtcblxuICAgICAgICB2YXIgZ3VpZF9wb29sID0gXCJhYmNkZWYxMjM0NTY3ODkwXCIsXG4gICAgICAgICAgICB2YXJpYW50X3Bvb2wgPSBcImFiODlcIixcbiAgICAgICAgICAgIGd1aWQgPSB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiA4IH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiA0IH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICAvLyBUaGUgVmVyc2lvblxuICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudmVyc2lvbiArXG4gICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoeyBwb29sOiBndWlkX3Bvb2wsIGxlbmd0aDogMyB9KSArICctJyArXG4gICAgICAgICAgICAgICAgICAgLy8gVGhlIFZhcmlhbnRcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IHZhcmlhbnRfcG9vbCwgbGVuZ3RoOiAxIH0pICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiAzIH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiAxMiB9KTtcbiAgICAgICAgcmV0dXJuIGd1aWQ7XG4gICAgfTtcblxuICAgIC8vIEhhc2hcbiAgICBDaGFuY2UucHJvdG90eXBlLmhhc2ggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2xlbmd0aCA6IDQwLCBjYXNpbmc6ICdsb3dlcid9KTtcbiAgICAgICAgdmFyIHBvb2wgPSBvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJyA/IEhFWF9QT09MLnRvVXBwZXJDYXNlKCkgOiBIRVhfUE9PTDtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nKHtwb29sOiBwb29sLCBsZW5ndGg6IG9wdGlvbnMubGVuZ3RofSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubHVobl9jaGVjayA9IGZ1bmN0aW9uIChudW0pIHtcbiAgICAgICAgdmFyIHN0ciA9IG51bS50b1N0cmluZygpO1xuICAgICAgICB2YXIgY2hlY2tEaWdpdCA9ICtzdHIuc3Vic3RyaW5nKHN0ci5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrRGlnaXQgPT09IHRoaXMubHVobl9jYWxjdWxhdGUoK3N0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aCAtIDEpKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5sdWhuX2NhbGN1bGF0ZSA9IGZ1bmN0aW9uIChudW0pIHtcbiAgICAgICAgdmFyIGRpZ2l0cyA9IG51bS50b1N0cmluZygpLnNwbGl0KFwiXCIpLnJldmVyc2UoKTtcbiAgICAgICAgdmFyIHN1bSA9IDA7XG4gICAgICAgIHZhciBkaWdpdDtcblxuICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGRpZ2l0cy5sZW5ndGg7IGwgPiBpOyArK2kpIHtcbiAgICAgICAgICAgIGRpZ2l0ID0gK2RpZ2l0c1tpXTtcbiAgICAgICAgICAgIGlmIChpICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGRpZ2l0ICo9IDI7XG4gICAgICAgICAgICAgICAgaWYgKGRpZ2l0ID4gOSkge1xuICAgICAgICAgICAgICAgICAgICBkaWdpdCAtPSA5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1bSArPSBkaWdpdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHN1bSAqIDkpICUgMTA7XG4gICAgfTtcblxuICAgIC8vIE1ENSBIYXNoXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5tZDUgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBvcHRzID0geyBzdHI6ICcnLCBrZXk6IG51bGwsIHJhdzogZmFsc2UgfTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIG9wdHMuc3RyID0gdGhpcy5zdHJpbmcoKTtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIG9wdHMuc3RyID0gb3B0aW9ucztcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYob3B0aW9ucy5jb25zdHJ1Y3RvciA9PT0gJ0FycmF5Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRzID0gaW5pdE9wdGlvbnMob3B0aW9ucywgb3B0cyk7XG5cbiAgICAgICAgaWYoIW9wdHMuc3RyKXtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gcmV0dXJuIGFuIG1kNSBoYXNoLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYmltZDUubWQ1KG9wdHMuc3RyLCBvcHRzLmtleSwgb3B0cy5yYXcpO1xuICAgIH07XG5cbiAgICB2YXIgZGF0YSA9IHtcblxuICAgICAgICBmaXJzdE5hbWVzOiB7XG4gICAgICAgICAgICBcIm1hbGVcIjogW1wiSmFtZXNcIiwgXCJKb2huXCIsIFwiUm9iZXJ0XCIsIFwiTWljaGFlbFwiLCBcIldpbGxpYW1cIiwgXCJEYXZpZFwiLCBcIlJpY2hhcmRcIiwgXCJKb3NlcGhcIiwgXCJDaGFybGVzXCIsIFwiVGhvbWFzXCIsIFwiQ2hyaXN0b3BoZXJcIiwgXCJEYW5pZWxcIiwgXCJNYXR0aGV3XCIsIFwiR2VvcmdlXCIsIFwiRG9uYWxkXCIsIFwiQW50aG9ueVwiLCBcIlBhdWxcIiwgXCJNYXJrXCIsIFwiRWR3YXJkXCIsIFwiU3RldmVuXCIsIFwiS2VubmV0aFwiLCBcIkFuZHJld1wiLCBcIkJyaWFuXCIsIFwiSm9zaHVhXCIsIFwiS2V2aW5cIiwgXCJSb25hbGRcIiwgXCJUaW1vdGh5XCIsIFwiSmFzb25cIiwgXCJKZWZmcmV5XCIsIFwiRnJhbmtcIiwgXCJHYXJ5XCIsIFwiUnlhblwiLCBcIk5pY2hvbGFzXCIsIFwiRXJpY1wiLCBcIlN0ZXBoZW5cIiwgXCJKYWNvYlwiLCBcIkxhcnJ5XCIsIFwiSm9uYXRoYW5cIiwgXCJTY290dFwiLCBcIlJheW1vbmRcIiwgXCJKdXN0aW5cIiwgXCJCcmFuZG9uXCIsIFwiR3JlZ29yeVwiLCBcIlNhbXVlbFwiLCBcIkJlbmphbWluXCIsIFwiUGF0cmlja1wiLCBcIkphY2tcIiwgXCJIZW5yeVwiLCBcIldhbHRlclwiLCBcIkRlbm5pc1wiLCBcIkplcnJ5XCIsIFwiQWxleGFuZGVyXCIsIFwiUGV0ZXJcIiwgXCJUeWxlclwiLCBcIkRvdWdsYXNcIiwgXCJIYXJvbGRcIiwgXCJBYXJvblwiLCBcIkpvc2VcIiwgXCJBZGFtXCIsIFwiQXJ0aHVyXCIsIFwiWmFjaGFyeVwiLCBcIkNhcmxcIiwgXCJOYXRoYW5cIiwgXCJBbGJlcnRcIiwgXCJLeWxlXCIsIFwiTGF3cmVuY2VcIiwgXCJKb2VcIiwgXCJXaWxsaWVcIiwgXCJHZXJhbGRcIiwgXCJSb2dlclwiLCBcIktlaXRoXCIsIFwiSmVyZW15XCIsIFwiVGVycnlcIiwgXCJIYXJyeVwiLCBcIlJhbHBoXCIsIFwiU2VhblwiLCBcIkplc3NlXCIsIFwiUm95XCIsIFwiTG91aXNcIiwgXCJCaWxseVwiLCBcIkF1c3RpblwiLCBcIkJydWNlXCIsIFwiRXVnZW5lXCIsIFwiQ2hyaXN0aWFuXCIsIFwiQnJ5YW5cIiwgXCJXYXluZVwiLCBcIlJ1c3NlbGxcIiwgXCJIb3dhcmRcIiwgXCJGcmVkXCIsIFwiRXRoYW5cIiwgXCJKb3JkYW5cIiwgXCJQaGlsaXBcIiwgXCJBbGFuXCIsIFwiSnVhblwiLCBcIlJhbmR5XCIsIFwiVmluY2VudFwiLCBcIkJvYmJ5XCIsIFwiRHlsYW5cIiwgXCJKb2hubnlcIiwgXCJQaGlsbGlwXCIsIFwiVmljdG9yXCIsIFwiQ2xhcmVuY2VcIiwgXCJFcm5lc3RcIiwgXCJNYXJ0aW5cIiwgXCJDcmFpZ1wiLCBcIlN0YW5sZXlcIiwgXCJTaGF3blwiLCBcIlRyYXZpc1wiLCBcIkJyYWRsZXlcIiwgXCJMZW9uYXJkXCIsIFwiRWFybFwiLCBcIkdhYnJpZWxcIiwgXCJKaW1teVwiLCBcIkZyYW5jaXNcIiwgXCJUb2RkXCIsIFwiTm9haFwiLCBcIkRhbm55XCIsIFwiRGFsZVwiLCBcIkNvZHlcIiwgXCJDYXJsb3NcIiwgXCJBbGxlblwiLCBcIkZyZWRlcmlja1wiLCBcIkxvZ2FuXCIsIFwiQ3VydGlzXCIsIFwiQWxleFwiLCBcIkpvZWxcIiwgXCJMdWlzXCIsIFwiTm9ybWFuXCIsIFwiTWFydmluXCIsIFwiR2xlbm5cIiwgXCJUb255XCIsIFwiTmF0aGFuaWVsXCIsIFwiUm9kbmV5XCIsIFwiTWVsdmluXCIsIFwiQWxmcmVkXCIsIFwiU3RldmVcIiwgXCJDYW1lcm9uXCIsIFwiQ2hhZFwiLCBcIkVkd2luXCIsIFwiQ2FsZWJcIiwgXCJFdmFuXCIsIFwiQW50b25pb1wiLCBcIkxlZVwiLCBcIkhlcmJlcnRcIiwgXCJKZWZmZXJ5XCIsIFwiSXNhYWNcIiwgXCJEZXJla1wiLCBcIlJpY2t5XCIsIFwiTWFyY3VzXCIsIFwiVGhlb2RvcmVcIiwgXCJFbGlqYWhcIiwgXCJMdWtlXCIsIFwiSmVzdXNcIiwgXCJFZGRpZVwiLCBcIlRyb3lcIiwgXCJNaWtlXCIsIFwiRHVzdGluXCIsIFwiUmF5XCIsIFwiQWRyaWFuXCIsIFwiQmVybmFyZFwiLCBcIkxlcm95XCIsIFwiQW5nZWxcIiwgXCJSYW5kYWxsXCIsIFwiV2VzbGV5XCIsIFwiSWFuXCIsIFwiSmFyZWRcIiwgXCJNYXNvblwiLCBcIkh1bnRlclwiLCBcIkNhbHZpblwiLCBcIk9zY2FyXCIsIFwiQ2xpZmZvcmRcIiwgXCJKYXlcIiwgXCJTaGFuZVwiLCBcIlJvbm5pZVwiLCBcIkJhcnJ5XCIsIFwiTHVjYXNcIiwgXCJDb3JleVwiLCBcIk1hbnVlbFwiLCBcIkxlb1wiLCBcIlRvbW15XCIsIFwiV2FycmVuXCIsIFwiSmFja3NvblwiLCBcIklzYWlhaFwiLCBcIkNvbm5vclwiLCBcIkRvblwiLCBcIkRlYW5cIiwgXCJKb25cIiwgXCJKdWxpYW5cIiwgXCJNaWd1ZWxcIiwgXCJCaWxsXCIsIFwiTGxveWRcIiwgXCJDaGFybGllXCIsIFwiTWl0Y2hlbGxcIiwgXCJMZW9uXCIsIFwiSmVyb21lXCIsIFwiRGFycmVsbFwiLCBcIkplcmVtaWFoXCIsIFwiQWx2aW5cIiwgXCJCcmV0dFwiLCBcIlNldGhcIiwgXCJGbG95ZFwiLCBcIkppbVwiLCBcIkJsYWtlXCIsIFwiTWljaGVhbFwiLCBcIkdvcmRvblwiLCBcIlRyZXZvclwiLCBcIkxld2lzXCIsIFwiRXJpa1wiLCBcIkVkZ2FyXCIsIFwiVmVybm9uXCIsIFwiRGV2aW5cIiwgXCJHYXZpblwiLCBcIkpheWRlblwiLCBcIkNocmlzXCIsIFwiQ2x5ZGVcIiwgXCJUb21cIiwgXCJEZXJyaWNrXCIsIFwiTWFyaW9cIiwgXCJCcmVudFwiLCBcIk1hcmNcIiwgXCJIZXJtYW5cIiwgXCJDaGFzZVwiLCBcIkRvbWluaWNcIiwgXCJSaWNhcmRvXCIsIFwiRnJhbmtsaW5cIiwgXCJNYXVyaWNlXCIsIFwiTWF4XCIsIFwiQWlkZW5cIiwgXCJPd2VuXCIsIFwiTGVzdGVyXCIsIFwiR2lsYmVydFwiLCBcIkVsbWVyXCIsIFwiR2VuZVwiLCBcIkZyYW5jaXNjb1wiLCBcIkdsZW5cIiwgXCJDb3J5XCIsIFwiR2FycmV0dFwiLCBcIkNsYXl0b25cIiwgXCJTYW1cIiwgXCJKb3JnZVwiLCBcIkNoZXN0ZXJcIiwgXCJBbGVqYW5kcm9cIiwgXCJKZWZmXCIsIFwiSGFydmV5XCIsIFwiTWlsdG9uXCIsIFwiQ29sZVwiLCBcIkl2YW5cIiwgXCJBbmRyZVwiLCBcIkR1YW5lXCIsIFwiTGFuZG9uXCJdLFxuICAgICAgICAgICAgXCJmZW1hbGVcIjogW1wiTWFyeVwiLCBcIkVtbWFcIiwgXCJFbGl6YWJldGhcIiwgXCJNaW5uaWVcIiwgXCJNYXJnYXJldFwiLCBcIklkYVwiLCBcIkFsaWNlXCIsIFwiQmVydGhhXCIsIFwiU2FyYWhcIiwgXCJBbm5pZVwiLCBcIkNsYXJhXCIsIFwiRWxsYVwiLCBcIkZsb3JlbmNlXCIsIFwiQ29yYVwiLCBcIk1hcnRoYVwiLCBcIkxhdXJhXCIsIFwiTmVsbGllXCIsIFwiR3JhY2VcIiwgXCJDYXJyaWVcIiwgXCJNYXVkZVwiLCBcIk1hYmVsXCIsIFwiQmVzc2llXCIsIFwiSmVubmllXCIsIFwiR2VydHJ1ZGVcIiwgXCJKdWxpYVwiLCBcIkhhdHRpZVwiLCBcIkVkaXRoXCIsIFwiTWF0dGllXCIsIFwiUm9zZVwiLCBcIkNhdGhlcmluZVwiLCBcIkxpbGxpYW5cIiwgXCJBZGFcIiwgXCJMaWxsaWVcIiwgXCJIZWxlblwiLCBcIkplc3NpZVwiLCBcIkxvdWlzZVwiLCBcIkV0aGVsXCIsIFwiTHVsYVwiLCBcIk15cnRsZVwiLCBcIkV2YVwiLCBcIkZyYW5jZXNcIiwgXCJMZW5hXCIsIFwiTHVjeVwiLCBcIkVkbmFcIiwgXCJNYWdnaWVcIiwgXCJQZWFybFwiLCBcIkRhaXN5XCIsIFwiRmFubmllXCIsIFwiSm9zZXBoaW5lXCIsIFwiRG9yYVwiLCBcIlJvc2FcIiwgXCJLYXRoZXJpbmVcIiwgXCJBZ25lc1wiLCBcIk1hcmllXCIsIFwiTm9yYVwiLCBcIk1heVwiLCBcIk1hbWllXCIsIFwiQmxhbmNoZVwiLCBcIlN0ZWxsYVwiLCBcIkVsbGVuXCIsIFwiTmFuY3lcIiwgXCJFZmZpZVwiLCBcIlNhbGxpZVwiLCBcIk5ldHRpZVwiLCBcIkRlbGxhXCIsIFwiTGl6emllXCIsIFwiRmxvcmFcIiwgXCJTdXNpZVwiLCBcIk1hdWRcIiwgXCJNYWVcIiwgXCJFdHRhXCIsIFwiSGFycmlldFwiLCBcIlNhZGllXCIsIFwiQ2Fyb2xpbmVcIiwgXCJLYXRpZVwiLCBcIkx5ZGlhXCIsIFwiRWxzaWVcIiwgXCJLYXRlXCIsIFwiU3VzYW5cIiwgXCJNb2xsaWVcIiwgXCJBbG1hXCIsIFwiQWRkaWVcIiwgXCJHZW9yZ2lhXCIsIFwiRWxpemFcIiwgXCJMdWx1XCIsIFwiTmFubmllXCIsIFwiTG90dGllXCIsIFwiQW1hbmRhXCIsIFwiQmVsbGVcIiwgXCJDaGFybG90dGVcIiwgXCJSZWJlY2NhXCIsIFwiUnV0aFwiLCBcIlZpb2xhXCIsIFwiT2xpdmVcIiwgXCJBbWVsaWFcIiwgXCJIYW5uYWhcIiwgXCJKYW5lXCIsIFwiVmlyZ2luaWFcIiwgXCJFbWlseVwiLCBcIk1hdGlsZGFcIiwgXCJJcmVuZVwiLCBcIkthdGhyeW5cIiwgXCJFc3RoZXJcIiwgXCJXaWxsaWVcIiwgXCJIZW5yaWV0dGFcIiwgXCJPbGxpZVwiLCBcIkFteVwiLCBcIlJhY2hlbFwiLCBcIlNhcmFcIiwgXCJFc3RlbGxhXCIsIFwiVGhlcmVzYVwiLCBcIkF1Z3VzdGFcIiwgXCJPcmFcIiwgXCJQYXVsaW5lXCIsIFwiSm9zaWVcIiwgXCJMb2xhXCIsIFwiU29waGlhXCIsIFwiTGVvbmFcIiwgXCJBbm5lXCIsIFwiTWlsZHJlZFwiLCBcIkFublwiLCBcIkJldWxhaFwiLCBcIkNhbGxpZVwiLCBcIkxvdVwiLCBcIkRlbGlhXCIsIFwiRWxlYW5vclwiLCBcIkJhcmJhcmFcIiwgXCJJdmFcIiwgXCJMb3Vpc2FcIiwgXCJNYXJpYVwiLCBcIk1heW1lXCIsIFwiRXZlbHluXCIsIFwiRXN0ZWxsZVwiLCBcIk5pbmFcIiwgXCJCZXR0eVwiLCBcIk1hcmlvblwiLCBcIkJldHRpZVwiLCBcIkRvcm90aHlcIiwgXCJMdWVsbGFcIiwgXCJJbmV6XCIsIFwiTGVsYVwiLCBcIlJvc2llXCIsIFwiQWxsaWVcIiwgXCJNaWxsaWVcIiwgXCJKYW5pZVwiLCBcIkNvcm5lbGlhXCIsIFwiVmljdG9yaWFcIiwgXCJSdWJ5XCIsIFwiV2luaWZyZWRcIiwgXCJBbHRhXCIsIFwiQ2VsaWFcIiwgXCJDaHJpc3RpbmVcIiwgXCJCZWF0cmljZVwiLCBcIkJpcmRpZVwiLCBcIkhhcnJpZXR0XCIsIFwiTWFibGVcIiwgXCJNeXJhXCIsIFwiU29waGllXCIsIFwiVGlsbGllXCIsIFwiSXNhYmVsXCIsIFwiU3lsdmlhXCIsIFwiQ2Fyb2x5blwiLCBcIklzYWJlbGxlXCIsIFwiTGVpbGFcIiwgXCJTYWxseVwiLCBcIkluYVwiLCBcIkVzc2llXCIsIFwiQmVydGllXCIsIFwiTmVsbFwiLCBcIkFsYmVydGFcIiwgXCJLYXRoYXJpbmVcIiwgXCJMb3JhXCIsIFwiUmVuYVwiLCBcIk1pbmFcIiwgXCJSaG9kYVwiLCBcIk1hdGhpbGRhXCIsIFwiQWJiaWVcIiwgXCJFdWxhXCIsIFwiRG9sbGllXCIsIFwiSGV0dGllXCIsIFwiRXVuaWNlXCIsIFwiRmFubnlcIiwgXCJPbGFcIiwgXCJMZW5vcmFcIiwgXCJBZGVsYWlkZVwiLCBcIkNocmlzdGluYVwiLCBcIkxlbGlhXCIsIFwiTmVsbGVcIiwgXCJTdWVcIiwgXCJKb2hhbm5hXCIsIFwiTGlsbHlcIiwgXCJMdWNpbmRhXCIsIFwiTWluZXJ2YVwiLCBcIkxldHRpZVwiLCBcIlJveGllXCIsIFwiQ3ludGhpYVwiLCBcIkhlbGVuYVwiLCBcIkhpbGRhXCIsIFwiSHVsZGFcIiwgXCJCZXJuaWNlXCIsIFwiR2VuZXZpZXZlXCIsIFwiSmVhblwiLCBcIkNvcmRlbGlhXCIsIFwiTWFyaWFuXCIsIFwiRnJhbmNpc1wiLCBcIkplYW5ldHRlXCIsIFwiQWRlbGluZVwiLCBcIkd1c3NpZVwiLCBcIkxlYWhcIiwgXCJMb2lzXCIsIFwiTHVyYVwiLCBcIk1pdHRpZVwiLCBcIkhhbGxpZVwiLCBcIklzYWJlbGxhXCIsIFwiT2xnYVwiLCBcIlBob2ViZVwiLCBcIlRlcmVzYVwiLCBcIkhlc3RlclwiLCBcIkxpZGFcIiwgXCJMaW5hXCIsIFwiV2lubmllXCIsIFwiQ2xhdWRpYVwiLCBcIk1hcmd1ZXJpdGVcIiwgXCJWZXJhXCIsIFwiQ2VjZWxpYVwiLCBcIkJlc3NcIiwgXCJFbWlsaWVcIiwgXCJKb2huXCIsIFwiUm9zZXR0YVwiLCBcIlZlcm5hXCIsIFwiTXlydGllXCIsIFwiQ2VjaWxpYVwiLCBcIkVsdmFcIiwgXCJPbGl2aWFcIiwgXCJPcGhlbGlhXCIsIFwiR2VvcmdpZVwiLCBcIkVsbm9yYVwiLCBcIlZpb2xldFwiLCBcIkFkZWxlXCIsIFwiTGlseVwiLCBcIkxpbm5pZVwiLCBcIkxvcmV0dGFcIiwgXCJNYWRnZVwiLCBcIlBvbGx5XCIsIFwiVmlyZ2llXCIsIFwiRXVnZW5pYVwiLCBcIkx1Y2lsZVwiLCBcIkx1Y2lsbGVcIiwgXCJNYWJlbGxlXCIsIFwiUm9zYWxpZVwiXVxuICAgICAgICB9LFxuXG4gICAgICAgIGxhc3ROYW1lczogWydTbWl0aCcsICdKb2huc29uJywgJ1dpbGxpYW1zJywgJ0pvbmVzJywgJ0Jyb3duJywgJ0RhdmlzJywgJ01pbGxlcicsICdXaWxzb24nLCAnTW9vcmUnLCAnVGF5bG9yJywgJ0FuZGVyc29uJywgJ1Rob21hcycsICdKYWNrc29uJywgJ1doaXRlJywgJ0hhcnJpcycsICdNYXJ0aW4nLCAnVGhvbXBzb24nLCAnR2FyY2lhJywgJ01hcnRpbmV6JywgJ1JvYmluc29uJywgJ0NsYXJrJywgJ1JvZHJpZ3VleicsICdMZXdpcycsICdMZWUnLCAnV2Fsa2VyJywgJ0hhbGwnLCAnQWxsZW4nLCAnWW91bmcnLCAnSGVybmFuZGV6JywgJ0tpbmcnLCAnV3JpZ2h0JywgJ0xvcGV6JywgJ0hpbGwnLCAnU2NvdHQnLCAnR3JlZW4nLCAnQWRhbXMnLCAnQmFrZXInLCAnR29uemFsZXonLCAnTmVsc29uJywgJ0NhcnRlcicsICdNaXRjaGVsbCcsICdQZXJleicsICdSb2JlcnRzJywgJ1R1cm5lcicsICdQaGlsbGlwcycsICdDYW1wYmVsbCcsICdQYXJrZXInLCAnRXZhbnMnLCAnRWR3YXJkcycsICdDb2xsaW5zJywgJ1N0ZXdhcnQnLCAnU2FuY2hleicsICdNb3JyaXMnLCAnUm9nZXJzJywgJ1JlZWQnLCAnQ29vaycsICdNb3JnYW4nLCAnQmVsbCcsICdNdXJwaHknLCAnQmFpbGV5JywgJ1JpdmVyYScsICdDb29wZXInLCAnUmljaGFyZHNvbicsICdDb3gnLCAnSG93YXJkJywgJ1dhcmQnLCAnVG9ycmVzJywgJ1BldGVyc29uJywgJ0dyYXknLCAnUmFtaXJleicsICdKYW1lcycsICdXYXRzb24nLCAnQnJvb2tzJywgJ0tlbGx5JywgJ1NhbmRlcnMnLCAnUHJpY2UnLCAnQmVubmV0dCcsICdXb29kJywgJ0Jhcm5lcycsICdSb3NzJywgJ0hlbmRlcnNvbicsICdDb2xlbWFuJywgJ0plbmtpbnMnLCAnUGVycnknLCAnUG93ZWxsJywgJ0xvbmcnLCAnUGF0dGVyc29uJywgJ0h1Z2hlcycsICdGbG9yZXMnLCAnV2FzaGluZ3RvbicsICdCdXRsZXInLCAnU2ltbW9ucycsICdGb3N0ZXInLCAnR29uemFsZXMnLCAnQnJ5YW50JywgJ0FsZXhhbmRlcicsICdSdXNzZWxsJywgJ0dyaWZmaW4nLCAnRGlheicsICdIYXllcycsICdNeWVycycsICdGb3JkJywgJ0hhbWlsdG9uJywgJ0dyYWhhbScsICdTdWxsaXZhbicsICdXYWxsYWNlJywgJ1dvb2RzJywgJ0NvbGUnLCAnV2VzdCcsICdKb3JkYW4nLCAnT3dlbnMnLCAnUmV5bm9sZHMnLCAnRmlzaGVyJywgJ0VsbGlzJywgJ0hhcnJpc29uJywgJ0dpYnNvbicsICdNY0RvbmFsZCcsICdDcnV6JywgJ01hcnNoYWxsJywgJ09ydGl6JywgJ0dvbWV6JywgJ011cnJheScsICdGcmVlbWFuJywgJ1dlbGxzJywgJ1dlYmInLCAnU2ltcHNvbicsICdTdGV2ZW5zJywgJ1R1Y2tlcicsICdQb3J0ZXInLCAnSHVudGVyJywgJ0hpY2tzJywgJ0NyYXdmb3JkJywgJ0hlbnJ5JywgJ0JveWQnLCAnTWFzb24nLCAnTW9yYWxlcycsICdLZW5uZWR5JywgJ1dhcnJlbicsICdEaXhvbicsICdSYW1vcycsICdSZXllcycsICdCdXJucycsICdHb3Jkb24nLCAnU2hhdycsICdIb2xtZXMnLCAnUmljZScsICdSb2JlcnRzb24nLCAnSHVudCcsICdCbGFjaycsICdEYW5pZWxzJywgJ1BhbG1lcicsICdNaWxscycsICdOaWNob2xzJywgJ0dyYW50JywgJ0tuaWdodCcsICdGZXJndXNvbicsICdSb3NlJywgJ1N0b25lJywgJ0hhd2tpbnMnLCAnRHVubicsICdQZXJraW5zJywgJ0h1ZHNvbicsICdTcGVuY2VyJywgJ0dhcmRuZXInLCAnU3RlcGhlbnMnLCAnUGF5bmUnLCAnUGllcmNlJywgJ0JlcnJ5JywgJ01hdHRoZXdzJywgJ0Fybm9sZCcsICdXYWduZXInLCAnV2lsbGlzJywgJ1JheScsICdXYXRraW5zJywgJ09sc29uJywgJ0NhcnJvbGwnLCAnRHVuY2FuJywgJ1NueWRlcicsICdIYXJ0JywgJ0N1bm5pbmdoYW0nLCAnQnJhZGxleScsICdMYW5lJywgJ0FuZHJld3MnLCAnUnVpeicsICdIYXJwZXInLCAnRm94JywgJ1JpbGV5JywgJ0FybXN0cm9uZycsICdDYXJwZW50ZXInLCAnV2VhdmVyJywgJ0dyZWVuZScsICdMYXdyZW5jZScsICdFbGxpb3R0JywgJ0NoYXZleicsICdTaW1zJywgJ0F1c3RpbicsICdQZXRlcnMnLCAnS2VsbGV5JywgJ0ZyYW5rbGluJywgJ0xhd3NvbicsICdGaWVsZHMnLCAnR3V0aWVycmV6JywgJ1J5YW4nLCAnU2NobWlkdCcsICdDYXJyJywgJ1Zhc3F1ZXonLCAnQ2FzdGlsbG8nLCAnV2hlZWxlcicsICdDaGFwbWFuJywgJ09saXZlcicsICdNb250Z29tZXJ5JywgJ1JpY2hhcmRzJywgJ1dpbGxpYW1zb24nLCAnSm9obnN0b24nLCAnQmFua3MnLCAnTWV5ZXInLCAnQmlzaG9wJywgJ01jQ295JywgJ0hvd2VsbCcsICdBbHZhcmV6JywgJ01vcnJpc29uJywgJ0hhbnNlbicsICdGZXJuYW5kZXonLCAnR2FyemEnLCAnSGFydmV5JywgJ0xpdHRsZScsICdCdXJ0b24nLCAnU3RhbmxleScsICdOZ3V5ZW4nLCAnR2VvcmdlJywgJ0phY29icycsICdSZWlkJywgJ0tpbScsICdGdWxsZXInLCAnTHluY2gnLCAnRGVhbicsICdHaWxiZXJ0JywgJ0dhcnJldHQnLCAnUm9tZXJvJywgJ1dlbGNoJywgJ0xhcnNvbicsICdGcmF6aWVyJywgJ0J1cmtlJywgJ0hhbnNvbicsICdEYXknLCAnTWVuZG96YScsICdNb3Jlbm8nLCAnQm93bWFuJywgJ01lZGluYScsICdGb3dsZXInLCAnQnJld2VyJywgJ0hvZmZtYW4nLCAnQ2FybHNvbicsICdTaWx2YScsICdQZWFyc29uJywgJ0hvbGxhbmQnLCAnRG91Z2xhcycsICdGbGVtaW5nJywgJ0plbnNlbicsICdWYXJnYXMnLCAnQnlyZCcsICdEYXZpZHNvbicsICdIb3BraW5zJywgJ01heScsICdUZXJyeScsICdIZXJyZXJhJywgJ1dhZGUnLCAnU290bycsICdXYWx0ZXJzJywgJ0N1cnRpcycsICdOZWFsJywgJ0NhbGR3ZWxsJywgJ0xvd2UnLCAnSmVubmluZ3MnLCAnQmFybmV0dCcsICdHcmF2ZXMnLCAnSmltZW5leicsICdIb3J0b24nLCAnU2hlbHRvbicsICdCYXJyZXR0JywgJ09icmllbicsICdDYXN0cm8nLCAnU3V0dG9uJywgJ0dyZWdvcnknLCAnTWNLaW5uZXknLCAnTHVjYXMnLCAnTWlsZXMnLCAnQ3JhaWcnLCAnUm9kcmlxdWV6JywgJ0NoYW1iZXJzJywgJ0hvbHQnLCAnTGFtYmVydCcsICdGbGV0Y2hlcicsICdXYXR0cycsICdCYXRlcycsICdIYWxlJywgJ1Job2RlcycsICdQZW5hJywgJ0JlY2snLCAnTmV3bWFuJywgJ0hheW5lcycsICdNY0RhbmllbCcsICdNZW5kZXonLCAnQnVzaCcsICdWYXVnaG4nLCAnUGFya3MnLCAnRGF3c29uJywgJ1NhbnRpYWdvJywgJ05vcnJpcycsICdIYXJkeScsICdMb3ZlJywgJ1N0ZWVsZScsICdDdXJyeScsICdQb3dlcnMnLCAnU2NodWx0eicsICdCYXJrZXInLCAnR3V6bWFuJywgJ1BhZ2UnLCAnTXVub3onLCAnQmFsbCcsICdLZWxsZXInLCAnQ2hhbmRsZXInLCAnV2ViZXInLCAnTGVvbmFyZCcsICdXYWxzaCcsICdMeW9ucycsICdSYW1zZXknLCAnV29sZmUnLCAnU2NobmVpZGVyJywgJ011bGxpbnMnLCAnQmVuc29uJywgJ1NoYXJwJywgJ0Jvd2VuJywgJ0RhbmllbCcsICdCYXJiZXInLCAnQ3VtbWluZ3MnLCAnSGluZXMnLCAnQmFsZHdpbicsICdHcmlmZml0aCcsICdWYWxkZXonLCAnSHViYmFyZCcsICdTYWxhemFyJywgJ1JlZXZlcycsICdXYXJuZXInLCAnU3RldmVuc29uJywgJ0J1cmdlc3MnLCAnU2FudG9zJywgJ1RhdGUnLCAnQ3Jvc3MnLCAnR2FybmVyJywgJ01hbm4nLCAnTWFjaycsICdNb3NzJywgJ1Rob3JudG9uJywgJ0Rlbm5pcycsICdNY0dlZScsICdGYXJtZXInLCAnRGVsZ2FkbycsICdBZ3VpbGFyJywgJ1ZlZ2EnLCAnR2xvdmVyJywgJ01hbm5pbmcnLCAnQ29oZW4nLCAnSGFybW9uJywgJ1JvZGdlcnMnLCAnUm9iYmlucycsICdOZXd0b24nLCAnVG9kZCcsICdCbGFpcicsICdIaWdnaW5zJywgJ0luZ3JhbScsICdSZWVzZScsICdDYW5ub24nLCAnU3RyaWNrbGFuZCcsICdUb3duc2VuZCcsICdQb3R0ZXInLCAnR29vZHdpbicsICdXYWx0b24nLCAnUm93ZScsICdIYW1wdG9uJywgJ09ydGVnYScsICdQYXR0b24nLCAnU3dhbnNvbicsICdKb3NlcGgnLCAnRnJhbmNpcycsICdHb29kbWFuJywgJ01hbGRvbmFkbycsICdZYXRlcycsICdCZWNrZXInLCAnRXJpY2tzb24nLCAnSG9kZ2VzJywgJ1Jpb3MnLCAnQ29ubmVyJywgJ0Fka2lucycsICdXZWJzdGVyJywgJ05vcm1hbicsICdNYWxvbmUnLCAnSGFtbW9uZCcsICdGbG93ZXJzJywgJ0NvYmInLCAnTW9vZHknLCAnUXVpbm4nLCAnQmxha2UnLCAnTWF4d2VsbCcsICdQb3BlJywgJ0Zsb3lkJywgJ09zYm9ybmUnLCAnUGF1bCcsICdNY0NhcnRoeScsICdHdWVycmVybycsICdMaW5kc2V5JywgJ0VzdHJhZGEnLCAnU2FuZG92YWwnLCAnR2liYnMnLCAnVHlsZXInLCAnR3Jvc3MnLCAnRml0emdlcmFsZCcsICdTdG9rZXMnLCAnRG95bGUnLCAnU2hlcm1hbicsICdTYXVuZGVycycsICdXaXNlJywgJ0NvbG9uJywgJ0dpbGwnLCAnQWx2YXJhZG8nLCAnR3JlZXInLCAnUGFkaWxsYScsICdTaW1vbicsICdXYXRlcnMnLCAnTnVuZXonLCAnQmFsbGFyZCcsICdTY2h3YXJ0eicsICdNY0JyaWRlJywgJ0hvdXN0b24nLCAnQ2hyaXN0ZW5zZW4nLCAnS2xlaW4nLCAnUHJhdHQnLCAnQnJpZ2dzJywgJ1BhcnNvbnMnLCAnTWNMYXVnaGxpbicsICdaaW1tZXJtYW4nLCAnRnJlbmNoJywgJ0J1Y2hhbmFuJywgJ01vcmFuJywgJ0NvcGVsYW5kJywgJ1JveScsICdQaXR0bWFuJywgJ0JyYWR5JywgJ01jQ29ybWljaycsICdIb2xsb3dheScsICdCcm9jaycsICdQb29sZScsICdGcmFuaycsICdMb2dhbicsICdPd2VuJywgJ0Jhc3MnLCAnTWFyc2gnLCAnRHJha2UnLCAnV29uZycsICdKZWZmZXJzb24nLCAnUGFyaycsICdNb3J0b24nLCAnQWJib3R0JywgJ1NwYXJrcycsICdQYXRyaWNrJywgJ05vcnRvbicsICdIdWZmJywgJ0NsYXl0b24nLCAnTWFzc2V5JywgJ0xsb3lkJywgJ0ZpZ3Vlcm9hJywgJ0NhcnNvbicsICdCb3dlcnMnLCAnUm9iZXJzb24nLCAnQmFydG9uJywgJ1RyYW4nLCAnTGFtYicsICdIYXJyaW5ndG9uJywgJ0Nhc2V5JywgJ0Jvb25lJywgJ0NvcnRleicsICdDbGFya2UnLCAnTWF0aGlzJywgJ1NpbmdsZXRvbicsICdXaWxraW5zJywgJ0NhaW4nLCAnQnJ5YW4nLCAnVW5kZXJ3b29kJywgJ0hvZ2FuJywgJ01jS2VuemllJywgJ0NvbGxpZXInLCAnTHVuYScsICdQaGVscHMnLCAnTWNHdWlyZScsICdBbGxpc29uJywgJ0JyaWRnZXMnLCAnV2lsa2Vyc29uJywgJ05hc2gnLCAnU3VtbWVycycsICdBdGtpbnMnXSxcblxuICAgICAgICAvLyBEYXRhIHRha2VuIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VtcGlyc2t5L2NvdW50cnktbGlzdC9ibG9iL21hc3Rlci9jb3VudHJ5L2NsZHIvZW5fVVMvY291bnRyeS5qc29uXG4gICAgICAgIGNvdW50cmllczogW3tcIm5hbWVcIjpcIkFmZ2hhbmlzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFGXCJ9LHtcIm5hbWVcIjpcIkFsYmFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiQUxcIn0se1wibmFtZVwiOlwiQWxnZXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJEWlwifSx7XCJuYW1lXCI6XCJBbWVyaWNhbiBTYW1vYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBU1wifSx7XCJuYW1lXCI6XCJBbmRvcnJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFEXCJ9LHtcIm5hbWVcIjpcIkFuZ29sYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBT1wifSx7XCJuYW1lXCI6XCJBbmd1aWxsYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBSVwifSx7XCJuYW1lXCI6XCJBbnRhcmN0aWNhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFRXCJ9LHtcIm5hbWVcIjpcIkFudGlndWEgYW5kIEJhcmJ1ZGFcIixcImFiYnJldmlhdGlvblwiOlwiQUdcIn0se1wibmFtZVwiOlwiQXJnZW50aW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFSXCJ9LHtcIm5hbWVcIjpcIkFybWVuaWFcIixcImFiYnJldmlhdGlvblwiOlwiQU1cIn0se1wibmFtZVwiOlwiQXJ1YmFcIixcImFiYnJldmlhdGlvblwiOlwiQVdcIn0se1wibmFtZVwiOlwiQXVzdHJhbGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFVXCJ9LHtcIm5hbWVcIjpcIkF1c3RyaWFcIixcImFiYnJldmlhdGlvblwiOlwiQVRcIn0se1wibmFtZVwiOlwiQXplcmJhaWphblwiLFwiYWJicmV2aWF0aW9uXCI6XCJBWlwifSx7XCJuYW1lXCI6XCJCYWhhbWFzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJTXCJ9LHtcIm5hbWVcIjpcIkJhaHJhaW5cIixcImFiYnJldmlhdGlvblwiOlwiQkhcIn0se1wibmFtZVwiOlwiQmFuZ2xhZGVzaFwiLFwiYWJicmV2aWF0aW9uXCI6XCJCRFwifSx7XCJuYW1lXCI6XCJCYXJiYWRvc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCQlwifSx7XCJuYW1lXCI6XCJCZWxhcnVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJZXCJ9LHtcIm5hbWVcIjpcIkJlbGdpdW1cIixcImFiYnJldmlhdGlvblwiOlwiQkVcIn0se1wibmFtZVwiOlwiQmVsaXplXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJaXCJ9LHtcIm5hbWVcIjpcIkJlbmluXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJKXCJ9LHtcIm5hbWVcIjpcIkJlcm11ZGFcIixcImFiYnJldmlhdGlvblwiOlwiQk1cIn0se1wibmFtZVwiOlwiQmh1dGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJUXCJ9LHtcIm5hbWVcIjpcIkJvbGl2aWFcIixcImFiYnJldmlhdGlvblwiOlwiQk9cIn0se1wibmFtZVwiOlwiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCQVwifSx7XCJuYW1lXCI6XCJCb3Rzd2FuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCV1wifSx7XCJuYW1lXCI6XCJCb3V2ZXQgSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJWXCJ9LHtcIm5hbWVcIjpcIkJyYXppbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJCUlwifSx7XCJuYW1lXCI6XCJCcml0aXNoIEFudGFyY3RpYyBUZXJyaXRvcnlcIixcImFiYnJldmlhdGlvblwiOlwiQlFcIn0se1wibmFtZVwiOlwiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5XCIsXCJhYmJyZXZpYXRpb25cIjpcIklPXCJ9LHtcIm5hbWVcIjpcIkJyaXRpc2ggVmlyZ2luIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiVkdcIn0se1wibmFtZVwiOlwiQnJ1bmVpXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJOXCJ9LHtcIm5hbWVcIjpcIkJ1bGdhcmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJHXCJ9LHtcIm5hbWVcIjpcIkJ1cmtpbmEgRmFzb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCRlwifSx7XCJuYW1lXCI6XCJCdXJ1bmRpXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJJXCJ9LHtcIm5hbWVcIjpcIkNhbWJvZGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIktIXCJ9LHtcIm5hbWVcIjpcIkNhbWVyb29uXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNNXCJ9LHtcIm5hbWVcIjpcIkNhbmFkYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDQVwifSx7XCJuYW1lXCI6XCJDYW50b24gYW5kIEVuZGVyYnVyeSBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNUXCJ9LHtcIm5hbWVcIjpcIkNhcGUgVmVyZGVcIixcImFiYnJldmlhdGlvblwiOlwiQ1ZcIn0se1wibmFtZVwiOlwiQ2F5bWFuIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiS1lcIn0se1wibmFtZVwiOlwiQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNGXCJ9LHtcIm5hbWVcIjpcIkNoYWRcIixcImFiYnJldmlhdGlvblwiOlwiVERcIn0se1wibmFtZVwiOlwiQ2hpbGVcIixcImFiYnJldmlhdGlvblwiOlwiQ0xcIn0se1wibmFtZVwiOlwiQ2hpbmFcIixcImFiYnJldmlhdGlvblwiOlwiQ05cIn0se1wibmFtZVwiOlwiQ2hyaXN0bWFzIElzbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJDWFwifSx7XCJuYW1lXCI6XCJDb2NvcyBbS2VlbGluZ10gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDQ1wifSx7XCJuYW1lXCI6XCJDb2xvbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDT1wifSx7XCJuYW1lXCI6XCJDb21vcm9zXCIsXCJhYmJyZXZpYXRpb25cIjpcIktNXCJ9LHtcIm5hbWVcIjpcIkNvbmdvIC0gQnJhenphdmlsbGVcIixcImFiYnJldmlhdGlvblwiOlwiQ0dcIn0se1wibmFtZVwiOlwiQ29uZ28gLSBLaW5zaGFzYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDRFwifSx7XCJuYW1lXCI6XCJDb29rIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiQ0tcIn0se1wibmFtZVwiOlwiQ29zdGEgUmljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDUlwifSx7XCJuYW1lXCI6XCJDcm9hdGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkhSXCJ9LHtcIm5hbWVcIjpcIkN1YmFcIixcImFiYnJldmlhdGlvblwiOlwiQ1VcIn0se1wibmFtZVwiOlwiQ3lwcnVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNZXCJ9LHtcIm5hbWVcIjpcIkN6ZWNoIFJlcHVibGljXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNaXCJ9LHtcIm5hbWVcIjpcIkPDtHRlIGTigJlJdm9pcmVcIixcImFiYnJldmlhdGlvblwiOlwiQ0lcIn0se1wibmFtZVwiOlwiRGVubWFya1wiLFwiYWJicmV2aWF0aW9uXCI6XCJES1wifSx7XCJuYW1lXCI6XCJEamlib3V0aVwiLFwiYWJicmV2aWF0aW9uXCI6XCJESlwifSx7XCJuYW1lXCI6XCJEb21pbmljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJETVwifSx7XCJuYW1lXCI6XCJEb21pbmljYW4gUmVwdWJsaWNcIixcImFiYnJldmlhdGlvblwiOlwiRE9cIn0se1wibmFtZVwiOlwiRHJvbm5pbmcgTWF1ZCBMYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5RXCJ9LHtcIm5hbWVcIjpcIkVhc3QgR2VybWFueVwiLFwiYWJicmV2aWF0aW9uXCI6XCJERFwifSx7XCJuYW1lXCI6XCJFY3VhZG9yXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVDXCJ9LHtcIm5hbWVcIjpcIkVneXB0XCIsXCJhYmJyZXZpYXRpb25cIjpcIkVHXCJ9LHtcIm5hbWVcIjpcIkVsIFNhbHZhZG9yXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNWXCJ9LHtcIm5hbWVcIjpcIkVxdWF0b3JpYWwgR3VpbmVhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdRXCJ9LHtcIm5hbWVcIjpcIkVyaXRyZWFcIixcImFiYnJldmlhdGlvblwiOlwiRVJcIn0se1wibmFtZVwiOlwiRXN0b25pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJFRVwifSx7XCJuYW1lXCI6XCJFdGhpb3BpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJFVFwifSx7XCJuYW1lXCI6XCJGYWxrbGFuZCBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZLXCJ9LHtcIm5hbWVcIjpcIkZhcm9lIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiRk9cIn0se1wibmFtZVwiOlwiRmlqaVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGSlwifSx7XCJuYW1lXCI6XCJGaW5sYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZJXCJ9LHtcIm5hbWVcIjpcIkZyYW5jZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGUlwifSx7XCJuYW1lXCI6XCJGcmVuY2ggR3VpYW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdGXCJ9LHtcIm5hbWVcIjpcIkZyZW5jaCBQb2x5bmVzaWFcIixcImFiYnJldmlhdGlvblwiOlwiUEZcIn0se1wibmFtZVwiOlwiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRGXCJ9LHtcIm5hbWVcIjpcIkZyZW5jaCBTb3V0aGVybiBhbmQgQW50YXJjdGljIFRlcnJpdG9yaWVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZRXCJ9LHtcIm5hbWVcIjpcIkdhYm9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdBXCJ9LHtcIm5hbWVcIjpcIkdhbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHTVwifSx7XCJuYW1lXCI6XCJHZW9yZ2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdFXCJ9LHtcIm5hbWVcIjpcIkdlcm1hbnlcIixcImFiYnJldmlhdGlvblwiOlwiREVcIn0se1wibmFtZVwiOlwiR2hhbmFcIixcImFiYnJldmlhdGlvblwiOlwiR0hcIn0se1wibmFtZVwiOlwiR2licmFsdGFyXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdJXCJ9LHtcIm5hbWVcIjpcIkdyZWVjZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHUlwifSx7XCJuYW1lXCI6XCJHcmVlbmxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiR0xcIn0se1wibmFtZVwiOlwiR3JlbmFkYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHRFwifSx7XCJuYW1lXCI6XCJHdWFkZWxvdXBlXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdQXCJ9LHtcIm5hbWVcIjpcIkd1YW1cIixcImFiYnJldmlhdGlvblwiOlwiR1VcIn0se1wibmFtZVwiOlwiR3VhdGVtYWxhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdUXCJ9LHtcIm5hbWVcIjpcIkd1ZXJuc2V5XCIsXCJhYmJyZXZpYXRpb25cIjpcIkdHXCJ9LHtcIm5hbWVcIjpcIkd1aW5lYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHTlwifSx7XCJuYW1lXCI6XCJHdWluZWEtQmlzc2F1XCIsXCJhYmJyZXZpYXRpb25cIjpcIkdXXCJ9LHtcIm5hbWVcIjpcIkd1eWFuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHWVwifSx7XCJuYW1lXCI6XCJIYWl0aVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIVFwifSx7XCJuYW1lXCI6XCJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiSE1cIn0se1wibmFtZVwiOlwiSG9uZHVyYXNcIixcImFiYnJldmlhdGlvblwiOlwiSE5cIn0se1wibmFtZVwiOlwiSG9uZyBLb25nIFNBUiBDaGluYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIS1wifSx7XCJuYW1lXCI6XCJIdW5nYXJ5XCIsXCJhYmJyZXZpYXRpb25cIjpcIkhVXCJ9LHtcIm5hbWVcIjpcIkljZWxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiSVNcIn0se1wibmFtZVwiOlwiSW5kaWFcIixcImFiYnJldmlhdGlvblwiOlwiSU5cIn0se1wibmFtZVwiOlwiSW5kb25lc2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIklEXCJ9LHtcIm5hbWVcIjpcIklyYW5cIixcImFiYnJldmlhdGlvblwiOlwiSVJcIn0se1wibmFtZVwiOlwiSXJhcVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJUVwifSx7XCJuYW1lXCI6XCJJcmVsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIklFXCJ9LHtcIm5hbWVcIjpcIklzbGUgb2YgTWFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIklNXCJ9LHtcIm5hbWVcIjpcIklzcmFlbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJJTFwifSx7XCJuYW1lXCI6XCJJdGFseVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJVFwifSx7XCJuYW1lXCI6XCJKYW1haWNhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpNXCJ9LHtcIm5hbWVcIjpcIkphcGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpQXCJ9LHtcIm5hbWVcIjpcIkplcnNleVwiLFwiYWJicmV2aWF0aW9uXCI6XCJKRVwifSx7XCJuYW1lXCI6XCJKb2huc3RvbiBJc2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiSlRcIn0se1wibmFtZVwiOlwiSm9yZGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpPXCJ9LHtcIm5hbWVcIjpcIkthemFraHN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiS1pcIn0se1wibmFtZVwiOlwiS2VueWFcIixcImFiYnJldmlhdGlvblwiOlwiS0VcIn0se1wibmFtZVwiOlwiS2lyaWJhdGlcIixcImFiYnJldmlhdGlvblwiOlwiS0lcIn0se1wibmFtZVwiOlwiS3V3YWl0XCIsXCJhYmJyZXZpYXRpb25cIjpcIktXXCJ9LHtcIm5hbWVcIjpcIkt5cmd5enN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiS0dcIn0se1wibmFtZVwiOlwiTGFvc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJMQVwifSx7XCJuYW1lXCI6XCJMYXR2aWFcIixcImFiYnJldmlhdGlvblwiOlwiTFZcIn0se1wibmFtZVwiOlwiTGViYW5vblwiLFwiYWJicmV2aWF0aW9uXCI6XCJMQlwifSx7XCJuYW1lXCI6XCJMZXNvdGhvXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxTXCJ9LHtcIm5hbWVcIjpcIkxpYmVyaWFcIixcImFiYnJldmlhdGlvblwiOlwiTFJcIn0se1wibmFtZVwiOlwiTGlieWFcIixcImFiYnJldmlhdGlvblwiOlwiTFlcIn0se1wibmFtZVwiOlwiTGllY2h0ZW5zdGVpblwiLFwiYWJicmV2aWF0aW9uXCI6XCJMSVwifSx7XCJuYW1lXCI6XCJMaXRodWFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiTFRcIn0se1wibmFtZVwiOlwiTHV4ZW1ib3VyZ1wiLFwiYWJicmV2aWF0aW9uXCI6XCJMVVwifSx7XCJuYW1lXCI6XCJNYWNhdSBTQVIgQ2hpbmFcIixcImFiYnJldmlhdGlvblwiOlwiTU9cIn0se1wibmFtZVwiOlwiTWFjZWRvbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1LXCJ9LHtcIm5hbWVcIjpcIk1hZGFnYXNjYXJcIixcImFiYnJldmlhdGlvblwiOlwiTUdcIn0se1wibmFtZVwiOlwiTWFsYXdpXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1XXCJ9LHtcIm5hbWVcIjpcIk1hbGF5c2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1ZXCJ9LHtcIm5hbWVcIjpcIk1hbGRpdmVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1WXCJ9LHtcIm5hbWVcIjpcIk1hbGlcIixcImFiYnJldmlhdGlvblwiOlwiTUxcIn0se1wibmFtZVwiOlwiTWFsdGFcIixcImFiYnJldmlhdGlvblwiOlwiTVRcIn0se1wibmFtZVwiOlwiTWFyc2hhbGwgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNSFwifSx7XCJuYW1lXCI6XCJNYXJ0aW5pcXVlXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1RXCJ9LHtcIm5hbWVcIjpcIk1hdXJpdGFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiTVJcIn0se1wibmFtZVwiOlwiTWF1cml0aXVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1VXCJ9LHtcIm5hbWVcIjpcIk1heW90dGVcIixcImFiYnJldmlhdGlvblwiOlwiWVRcIn0se1wibmFtZVwiOlwiTWV0cm9wb2xpdGFuIEZyYW5jZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGWFwifSx7XCJuYW1lXCI6XCJNZXhpY29cIixcImFiYnJldmlhdGlvblwiOlwiTVhcIn0se1wibmFtZVwiOlwiTWljcm9uZXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGTVwifSx7XCJuYW1lXCI6XCJNaWR3YXkgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNSVwifSx7XCJuYW1lXCI6XCJNb2xkb3ZhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1EXCJ9LHtcIm5hbWVcIjpcIk1vbmFjb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNQ1wifSx7XCJuYW1lXCI6XCJNb25nb2xpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNTlwifSx7XCJuYW1lXCI6XCJNb250ZW5lZ3JvXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1FXCJ9LHtcIm5hbWVcIjpcIk1vbnRzZXJyYXRcIixcImFiYnJldmlhdGlvblwiOlwiTVNcIn0se1wibmFtZVwiOlwiTW9yb2Njb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNQVwifSx7XCJuYW1lXCI6XCJNb3phbWJpcXVlXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1aXCJ9LHtcIm5hbWVcIjpcIk15YW5tYXIgW0J1cm1hXVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNTVwifSx7XCJuYW1lXCI6XCJOYW1pYmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5BXCJ9LHtcIm5hbWVcIjpcIk5hdXJ1XCIsXCJhYmJyZXZpYXRpb25cIjpcIk5SXCJ9LHtcIm5hbWVcIjpcIk5lcGFsXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5QXCJ9LHtcIm5hbWVcIjpcIk5ldGhlcmxhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5MXCJ9LHtcIm5hbWVcIjpcIk5ldGhlcmxhbmRzIEFudGlsbGVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFOXCJ9LHtcIm5hbWVcIjpcIk5ldXRyYWwgWm9uZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOVFwifSx7XCJuYW1lXCI6XCJOZXcgQ2FsZWRvbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5DXCJ9LHtcIm5hbWVcIjpcIk5ldyBaZWFsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5aXCJ9LHtcIm5hbWVcIjpcIk5pY2FyYWd1YVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOSVwifSx7XCJuYW1lXCI6XCJOaWdlclwiLFwiYWJicmV2aWF0aW9uXCI6XCJORVwifSx7XCJuYW1lXCI6XCJOaWdlcmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5HXCJ9LHtcIm5hbWVcIjpcIk5pdWVcIixcImFiYnJldmlhdGlvblwiOlwiTlVcIn0se1wibmFtZVwiOlwiTm9yZm9sayBJc2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiTkZcIn0se1wibmFtZVwiOlwiTm9ydGggS29yZWFcIixcImFiYnJldmlhdGlvblwiOlwiS1BcIn0se1wibmFtZVwiOlwiTm9ydGggVmlldG5hbVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWRFwifSx7XCJuYW1lXCI6XCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiTVBcIn0se1wibmFtZVwiOlwiTm9yd2F5XCIsXCJhYmJyZXZpYXRpb25cIjpcIk5PXCJ9LHtcIm5hbWVcIjpcIk9tYW5cIixcImFiYnJldmlhdGlvblwiOlwiT01cIn0se1wibmFtZVwiOlwiUGFjaWZpYyBJc2xhbmRzIFRydXN0IFRlcnJpdG9yeVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQQ1wifSx7XCJuYW1lXCI6XCJQYWtpc3RhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJQS1wifSx7XCJuYW1lXCI6XCJQYWxhdVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQV1wifSx7XCJuYW1lXCI6XCJQYWxlc3RpbmlhbiBUZXJyaXRvcmllc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJQU1wifSx7XCJuYW1lXCI6XCJQYW5hbWFcIixcImFiYnJldmlhdGlvblwiOlwiUEFcIn0se1wibmFtZVwiOlwiUGFuYW1hIENhbmFsIFpvbmVcIixcImFiYnJldmlhdGlvblwiOlwiUFpcIn0se1wibmFtZVwiOlwiUGFwdWEgTmV3IEd1aW5lYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQR1wifSx7XCJuYW1lXCI6XCJQYXJhZ3VheVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQWVwifSx7XCJuYW1lXCI6XCJQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljIG9mIFllbWVuXCIsXCJhYmJyZXZpYXRpb25cIjpcIllEXCJ9LHtcIm5hbWVcIjpcIlBlcnVcIixcImFiYnJldmlhdGlvblwiOlwiUEVcIn0se1wibmFtZVwiOlwiUGhpbGlwcGluZXNcIixcImFiYnJldmlhdGlvblwiOlwiUEhcIn0se1wibmFtZVwiOlwiUGl0Y2Fpcm4gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJQTlwifSx7XCJuYW1lXCI6XCJQb2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiUExcIn0se1wibmFtZVwiOlwiUG9ydHVnYWxcIixcImFiYnJldmlhdGlvblwiOlwiUFRcIn0se1wibmFtZVwiOlwiUHVlcnRvIFJpY29cIixcImFiYnJldmlhdGlvblwiOlwiUFJcIn0se1wibmFtZVwiOlwiUWF0YXJcIixcImFiYnJldmlhdGlvblwiOlwiUUFcIn0se1wibmFtZVwiOlwiUm9tYW5pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJST1wifSx7XCJuYW1lXCI6XCJSdXNzaWFcIixcImFiYnJldmlhdGlvblwiOlwiUlVcIn0se1wibmFtZVwiOlwiUndhbmRhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJXXCJ9LHtcIm5hbWVcIjpcIlLDqXVuaW9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJFXCJ9LHtcIm5hbWVcIjpcIlNhaW50IEJhcnRow6lsZW15XCIsXCJhYmJyZXZpYXRpb25cIjpcIkJMXCJ9LHtcIm5hbWVcIjpcIlNhaW50IEhlbGVuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTSFwifSx7XCJuYW1lXCI6XCJTYWludCBLaXR0cyBhbmQgTmV2aXNcIixcImFiYnJldmlhdGlvblwiOlwiS05cIn0se1wibmFtZVwiOlwiU2FpbnQgTHVjaWFcIixcImFiYnJldmlhdGlvblwiOlwiTENcIn0se1wibmFtZVwiOlwiU2FpbnQgTWFydGluXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1GXCJ9LHtcIm5hbWVcIjpcIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb25cIixcImFiYnJldmlhdGlvblwiOlwiUE1cIn0se1wibmFtZVwiOlwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcImFiYnJldmlhdGlvblwiOlwiVkNcIn0se1wibmFtZVwiOlwiU2Ftb2FcIixcImFiYnJldmlhdGlvblwiOlwiV1NcIn0se1wibmFtZVwiOlwiU2FuIE1hcmlub1wiLFwiYWJicmV2aWF0aW9uXCI6XCJTTVwifSx7XCJuYW1lXCI6XCJTYXVkaSBBcmFiaWFcIixcImFiYnJldmlhdGlvblwiOlwiU0FcIn0se1wibmFtZVwiOlwiU2VuZWdhbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJTTlwifSx7XCJuYW1lXCI6XCJTZXJiaWFcIixcImFiYnJldmlhdGlvblwiOlwiUlNcIn0se1wibmFtZVwiOlwiU2VyYmlhIGFuZCBNb250ZW5lZ3JvXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNTXCJ9LHtcIm5hbWVcIjpcIlNleWNoZWxsZXNcIixcImFiYnJldmlhdGlvblwiOlwiU0NcIn0se1wibmFtZVwiOlwiU2llcnJhIExlb25lXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNMXCJ9LHtcIm5hbWVcIjpcIlNpbmdhcG9yZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTR1wifSx7XCJuYW1lXCI6XCJTbG92YWtpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTS1wifSx7XCJuYW1lXCI6XCJTbG92ZW5pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTSVwifSx7XCJuYW1lXCI6XCJTb2xvbW9uIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiU0JcIn0se1wibmFtZVwiOlwiU29tYWxpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTT1wifSx7XCJuYW1lXCI6XCJTb3V0aCBBZnJpY2FcIixcImFiYnJldmlhdGlvblwiOlwiWkFcIn0se1wibmFtZVwiOlwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiR1NcIn0se1wibmFtZVwiOlwiU291dGggS29yZWFcIixcImFiYnJldmlhdGlvblwiOlwiS1JcIn0se1wibmFtZVwiOlwiU3BhaW5cIixcImFiYnJldmlhdGlvblwiOlwiRVNcIn0se1wibmFtZVwiOlwiU3JpIExhbmthXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxLXCJ9LHtcIm5hbWVcIjpcIlN1ZGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNEXCJ9LHtcIm5hbWVcIjpcIlN1cmluYW1lXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNSXCJ9LHtcIm5hbWVcIjpcIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW5cIixcImFiYnJldmlhdGlvblwiOlwiU0pcIn0se1wibmFtZVwiOlwiU3dhemlsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNaXCJ9LHtcIm5hbWVcIjpcIlN3ZWRlblwiLFwiYWJicmV2aWF0aW9uXCI6XCJTRVwifSx7XCJuYW1lXCI6XCJTd2l0emVybGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJDSFwifSx7XCJuYW1lXCI6XCJTeXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTWVwifSx7XCJuYW1lXCI6XCJTw6NvIFRvbcOpIGFuZCBQcsOtbmNpcGVcIixcImFiYnJldmlhdGlvblwiOlwiU1RcIn0se1wibmFtZVwiOlwiVGFpd2FuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRXXCJ9LHtcIm5hbWVcIjpcIlRhamlraXN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiVEpcIn0se1wibmFtZVwiOlwiVGFuemFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiVFpcIn0se1wibmFtZVwiOlwiVGhhaWxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiVEhcIn0se1wibmFtZVwiOlwiVGltb3ItTGVzdGVcIixcImFiYnJldmlhdGlvblwiOlwiVExcIn0se1wibmFtZVwiOlwiVG9nb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJUR1wifSx7XCJuYW1lXCI6XCJUb2tlbGF1XCIsXCJhYmJyZXZpYXRpb25cIjpcIlRLXCJ9LHtcIm5hbWVcIjpcIlRvbmdhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRPXCJ9LHtcIm5hbWVcIjpcIlRyaW5pZGFkIGFuZCBUb2JhZ29cIixcImFiYnJldmlhdGlvblwiOlwiVFRcIn0se1wibmFtZVwiOlwiVHVuaXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJUTlwifSx7XCJuYW1lXCI6XCJUdXJrZXlcIixcImFiYnJldmlhdGlvblwiOlwiVFJcIn0se1wibmFtZVwiOlwiVHVya21lbmlzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRNXCJ9LHtcIm5hbWVcIjpcIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJUQ1wifSx7XCJuYW1lXCI6XCJUdXZhbHVcIixcImFiYnJldmlhdGlvblwiOlwiVFZcIn0se1wibmFtZVwiOlwiVS5TLiBNaW5vciBPdXRseWluZyBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVNXCJ9LHtcIm5hbWVcIjpcIlUuUy4gTWlzY2VsbGFuZW91cyBQYWNpZmljIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiUFVcIn0se1wibmFtZVwiOlwiVS5TLiBWaXJnaW4gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJWSVwifSx7XCJuYW1lXCI6XCJVZ2FuZGFcIixcImFiYnJldmlhdGlvblwiOlwiVUdcIn0se1wibmFtZVwiOlwiVWtyYWluZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJVQVwifSx7XCJuYW1lXCI6XCJVbmlvbiBvZiBTb3ZpZXQgU29jaWFsaXN0IFJlcHVibGljc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJTVVwifSx7XCJuYW1lXCI6XCJVbml0ZWQgQXJhYiBFbWlyYXRlc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJBRVwifSx7XCJuYW1lXCI6XCJVbml0ZWQgS2luZ2RvbVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHQlwifSx7XCJuYW1lXCI6XCJVbml0ZWQgU3RhdGVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVTXCJ9LHtcIm5hbWVcIjpcIlVua25vd24gb3IgSW52YWxpZCBSZWdpb25cIixcImFiYnJldmlhdGlvblwiOlwiWlpcIn0se1wibmFtZVwiOlwiVXJ1Z3VheVwiLFwiYWJicmV2aWF0aW9uXCI6XCJVWVwifSx7XCJuYW1lXCI6XCJVemJla2lzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVaXCJ9LHtcIm5hbWVcIjpcIlZhbnVhdHVcIixcImFiYnJldmlhdGlvblwiOlwiVlVcIn0se1wibmFtZVwiOlwiVmF0aWNhbiBDaXR5XCIsXCJhYmJyZXZpYXRpb25cIjpcIlZBXCJ9LHtcIm5hbWVcIjpcIlZlbmV6dWVsYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWRVwifSx7XCJuYW1lXCI6XCJWaWV0bmFtXCIsXCJhYmJyZXZpYXRpb25cIjpcIlZOXCJ9LHtcIm5hbWVcIjpcIldha2UgSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIldLXCJ9LHtcIm5hbWVcIjpcIldhbGxpcyBhbmQgRnV0dW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIldGXCJ9LHtcIm5hbWVcIjpcIldlc3Rlcm4gU2FoYXJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVIXCJ9LHtcIm5hbWVcIjpcIlllbWVuXCIsXCJhYmJyZXZpYXRpb25cIjpcIllFXCJ9LHtcIm5hbWVcIjpcIlphbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJaTVwifSx7XCJuYW1lXCI6XCJaaW1iYWJ3ZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJaV1wifSx7XCJuYW1lXCI6XCLDhWxhbmQgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJBWFwifV0sXG5cbiAgICAgICAgcHJvdmluY2VzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FsYmVydGEnLCBhYmJyZXZpYXRpb246ICdBQid9LFxuICAgICAgICAgICAge25hbWU6ICdCcml0aXNoIENvbHVtYmlhJywgYWJicmV2aWF0aW9uOiAnQkMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFuaXRvYmEnLCBhYmJyZXZpYXRpb246ICdNQid9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgQnJ1bnN3aWNrJywgYWJicmV2aWF0aW9uOiAnTkInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3Zm91bmRsYW5kIGFuZCBMYWJyYWRvcicsIGFiYnJldmlhdGlvbjogJ05MJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vdmEgU2NvdGlhJywgYWJicmV2aWF0aW9uOiAnTlMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT250YXJpbycsIGFiYnJldmlhdGlvbjogJ09OJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1ByaW5jZSBFZHdhcmQgSXNsYW5kJywgYWJicmV2aWF0aW9uOiAnUEUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUXVlYmVjJywgYWJicmV2aWF0aW9uOiAnUUMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU2Fza2F0Y2hld2FuJywgYWJicmV2aWF0aW9uOiAnU0snfSxcblxuICAgICAgICAgICAgLy8gVGhlIGNhc2UgY291bGQgYmUgbWFkZSB0aGF0IHRoZSBmb2xsb3dpbmcgYXJlIG5vdCBhY3R1YWxseSBwcm92aW5jZXNcbiAgICAgICAgICAgIC8vIHNpbmNlIHRoZXkgYXJlIHRlY2huaWNhbGx5IGNvbnNpZGVyZWQgXCJ0ZXJyaXRvcmllc1wiIGhvd2V2ZXIgdGhleSBhbGxcbiAgICAgICAgICAgIC8vIGxvb2sgdGhlIHNhbWUgb24gYW4gZW52ZWxvcGUhXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRod2VzdCBUZXJyaXRvcmllcycsIGFiYnJldmlhdGlvbjogJ05UJ30sXG4gICAgICAgICAgICB7bmFtZTogJ051bmF2dXQnLCBhYmJyZXZpYXRpb246ICdOVSd9LFxuICAgICAgICAgICAge25hbWU6ICdZdWtvbicsIGFiYnJldmlhdGlvbjogJ1lUJ31cbiAgICAgICAgXSxcblxuICAgICAgICB1c19zdGF0ZXNfYW5kX2RjOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FsYWJhbWEnLCBhYmJyZXZpYXRpb246ICdBTCd9LFxuICAgICAgICAgICAge25hbWU6ICdBbGFza2EnLCBhYmJyZXZpYXRpb246ICdBSyd9LFxuICAgICAgICAgICAge25hbWU6ICdBcml6b25hJywgYWJicmV2aWF0aW9uOiAnQVonfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXJrYW5zYXMnLCBhYmJyZXZpYXRpb246ICdBUid9LFxuICAgICAgICAgICAge25hbWU6ICdDYWxpZm9ybmlhJywgYWJicmV2aWF0aW9uOiAnQ0EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ29sb3JhZG8nLCBhYmJyZXZpYXRpb246ICdDTyd9LFxuICAgICAgICAgICAge25hbWU6ICdDb25uZWN0aWN1dCcsIGFiYnJldmlhdGlvbjogJ0NUJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0RlbGF3YXJlJywgYWJicmV2aWF0aW9uOiAnREUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRGlzdHJpY3Qgb2YgQ29sdW1iaWEnLCBhYmJyZXZpYXRpb246ICdEQyd9LFxuICAgICAgICAgICAge25hbWU6ICdGbG9yaWRhJywgYWJicmV2aWF0aW9uOiAnRkwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnR2VvcmdpYScsIGFiYnJldmlhdGlvbjogJ0dBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0hhd2FpaScsIGFiYnJldmlhdGlvbjogJ0hJJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0lkYWhvJywgYWJicmV2aWF0aW9uOiAnSUQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSWxsaW5vaXMnLCBhYmJyZXZpYXRpb246ICdJTCd9LFxuICAgICAgICAgICAge25hbWU6ICdJbmRpYW5hJywgYWJicmV2aWF0aW9uOiAnSU4nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSW93YScsIGFiYnJldmlhdGlvbjogJ0lBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0thbnNhcycsIGFiYnJldmlhdGlvbjogJ0tTJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0tlbnR1Y2t5JywgYWJicmV2aWF0aW9uOiAnS1knfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTG91aXNpYW5hJywgYWJicmV2aWF0aW9uOiAnTEEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFpbmUnLCBhYmJyZXZpYXRpb246ICdNRSd9LFxuICAgICAgICAgICAge25hbWU6ICdNYXJ5bGFuZCcsIGFiYnJldmlhdGlvbjogJ01EJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hc3NhY2h1c2V0dHMnLCBhYmJyZXZpYXRpb246ICdNQSd9LFxuICAgICAgICAgICAge25hbWU6ICdNaWNoaWdhbicsIGFiYnJldmlhdGlvbjogJ01JJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pbm5lc290YScsIGFiYnJldmlhdGlvbjogJ01OJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pc3Npc3NpcHBpJywgYWJicmV2aWF0aW9uOiAnTVMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWlzc291cmknLCBhYmJyZXZpYXRpb246ICdNTyd9LFxuICAgICAgICAgICAge25hbWU6ICdNb250YW5hJywgYWJicmV2aWF0aW9uOiAnTVQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmVicmFza2EnLCBhYmJyZXZpYXRpb246ICdORSd9LFxuICAgICAgICAgICAge25hbWU6ICdOZXZhZGEnLCBhYmJyZXZpYXRpb246ICdOVid9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgSGFtcHNoaXJlJywgYWJicmV2aWF0aW9uOiAnTkgnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3IEplcnNleScsIGFiYnJldmlhdGlvbjogJ05KJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05ldyBNZXhpY28nLCBhYmJyZXZpYXRpb246ICdOTSd9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgWW9yaycsIGFiYnJldmlhdGlvbjogJ05ZJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRoIENhcm9saW5hJywgYWJicmV2aWF0aW9uOiAnTkMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTm9ydGggRGFrb3RhJywgYWJicmV2aWF0aW9uOiAnTkQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT2hpbycsIGFiYnJldmlhdGlvbjogJ09IJ30sXG4gICAgICAgICAgICB7bmFtZTogJ09rbGFob21hJywgYWJicmV2aWF0aW9uOiAnT0snfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT3JlZ29uJywgYWJicmV2aWF0aW9uOiAnT1InfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUGVubnN5bHZhbmlhJywgYWJicmV2aWF0aW9uOiAnUEEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUmhvZGUgSXNsYW5kJywgYWJicmV2aWF0aW9uOiAnUkknfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU291dGggQ2Fyb2xpbmEnLCBhYmJyZXZpYXRpb246ICdTQyd9LFxuICAgICAgICAgICAge25hbWU6ICdTb3V0aCBEYWtvdGEnLCBhYmJyZXZpYXRpb246ICdTRCd9LFxuICAgICAgICAgICAge25hbWU6ICdUZW5uZXNzZWUnLCBhYmJyZXZpYXRpb246ICdUTid9LFxuICAgICAgICAgICAge25hbWU6ICdUZXhhcycsIGFiYnJldmlhdGlvbjogJ1RYJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1V0YWgnLCBhYmJyZXZpYXRpb246ICdVVCd9LFxuICAgICAgICAgICAge25hbWU6ICdWZXJtb250JywgYWJicmV2aWF0aW9uOiAnVlQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlyZ2luaWEnLCBhYmJyZXZpYXRpb246ICdWQSd9LFxuICAgICAgICAgICAge25hbWU6ICdXYXNoaW5ndG9uJywgYWJicmV2aWF0aW9uOiAnV0EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnV2VzdCBWaXJnaW5pYScsIGFiYnJldmlhdGlvbjogJ1dWJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1dpc2NvbnNpbicsIGFiYnJldmlhdGlvbjogJ1dJJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1d5b21pbmcnLCBhYmJyZXZpYXRpb246ICdXWSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgdGVycml0b3JpZXM6IFtcbiAgICAgICAgICAgIHtuYW1lOiAnQW1lcmljYW4gU2Ftb2EnLCBhYmJyZXZpYXRpb246ICdBUyd9LFxuICAgICAgICAgICAge25hbWU6ICdGZWRlcmF0ZWQgU3RhdGVzIG9mIE1pY3JvbmVzaWEnLCBhYmJyZXZpYXRpb246ICdGTSd9LFxuICAgICAgICAgICAge25hbWU6ICdHdWFtJywgYWJicmV2aWF0aW9uOiAnR1UnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFyc2hhbGwgSXNsYW5kcycsIGFiYnJldmlhdGlvbjogJ01IJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsIGFiYnJldmlhdGlvbjogJ01QJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1B1ZXJ0byBSaWNvJywgYWJicmV2aWF0aW9uOiAnUFInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlyZ2luIElzbGFuZHMsIFUuUy4nLCBhYmJyZXZpYXRpb246ICdWSSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgYXJtZWRfZm9yY2VzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FybWVkIEZvcmNlcyBFdXJvcGUnLCBhYmJyZXZpYXRpb246ICdBRSd9LFxuICAgICAgICAgICAge25hbWU6ICdBcm1lZCBGb3JjZXMgUGFjaWZpYycsIGFiYnJldmlhdGlvbjogJ0FQJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0FybWVkIEZvcmNlcyB0aGUgQW1lcmljYXMnLCBhYmJyZXZpYXRpb246ICdBQSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgc3RyZWV0X3N1ZmZpeGVzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0F2ZW51ZScsIGFiYnJldmlhdGlvbjogJ0F2ZSd9LFxuICAgICAgICAgICAge25hbWU6ICdCb3VsZXZhcmQnLCBhYmJyZXZpYXRpb246ICdCbHZkJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0NlbnRlcicsIGFiYnJldmlhdGlvbjogJ0N0cid9LFxuICAgICAgICAgICAge25hbWU6ICdDaXJjbGUnLCBhYmJyZXZpYXRpb246ICdDaXInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ291cnQnLCBhYmJyZXZpYXRpb246ICdDdCd9LFxuICAgICAgICAgICAge25hbWU6ICdEcml2ZScsIGFiYnJldmlhdGlvbjogJ0RyJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0V4dGVuc2lvbicsIGFiYnJldmlhdGlvbjogJ0V4dCd9LFxuICAgICAgICAgICAge25hbWU6ICdHbGVuJywgYWJicmV2aWF0aW9uOiAnR2xuJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0dyb3ZlJywgYWJicmV2aWF0aW9uOiAnR3J2J30sXG4gICAgICAgICAgICB7bmFtZTogJ0hlaWdodHMnLCBhYmJyZXZpYXRpb246ICdIdHMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSGlnaHdheScsIGFiYnJldmlhdGlvbjogJ0h3eSd9LFxuICAgICAgICAgICAge25hbWU6ICdKdW5jdGlvbicsIGFiYnJldmlhdGlvbjogJ0pjdCd9LFxuICAgICAgICAgICAge25hbWU6ICdLZXknLCBhYmJyZXZpYXRpb246ICdLZXknfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTGFuZScsIGFiYnJldmlhdGlvbjogJ0xuJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0xvb3AnLCBhYmJyZXZpYXRpb246ICdMb29wJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hbm9yJywgYWJicmV2aWF0aW9uOiAnTW5yJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pbGwnLCBhYmJyZXZpYXRpb246ICdNaWxsJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BhcmsnLCBhYmJyZXZpYXRpb246ICdQYXJrJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bhcmt3YXknLCBhYmJyZXZpYXRpb246ICdQa3d5J30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bhc3MnLCBhYmJyZXZpYXRpb246ICdQYXNzJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BhdGgnLCBhYmJyZXZpYXRpb246ICdQYXRoJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bpa2UnLCBhYmJyZXZpYXRpb246ICdQaWtlJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BsYWNlJywgYWJicmV2aWF0aW9uOiAnUGwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUGxhemEnLCBhYmJyZXZpYXRpb246ICdQbHonfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUG9pbnQnLCBhYmJyZXZpYXRpb246ICdQdCd9LFxuICAgICAgICAgICAge25hbWU6ICdSaWRnZScsIGFiYnJldmlhdGlvbjogJ1JkZyd9LFxuICAgICAgICAgICAge25hbWU6ICdSaXZlcicsIGFiYnJldmlhdGlvbjogJ1Jpdid9LFxuICAgICAgICAgICAge25hbWU6ICdSb2FkJywgYWJicmV2aWF0aW9uOiAnUmQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU3F1YXJlJywgYWJicmV2aWF0aW9uOiAnU3EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU3RyZWV0JywgYWJicmV2aWF0aW9uOiAnU3QnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVGVycmFjZScsIGFiYnJldmlhdGlvbjogJ1Rlcid9LFxuICAgICAgICAgICAge25hbWU6ICdUcmFpbCcsIGFiYnJldmlhdGlvbjogJ1RybCd9LFxuICAgICAgICAgICAge25hbWU6ICdUdXJucGlrZScsIGFiYnJldmlhdGlvbjogJ1Rwa2UnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlldycsIGFiYnJldmlhdGlvbjogJ1Z3J30sXG4gICAgICAgICAgICB7bmFtZTogJ1dheScsIGFiYnJldmlhdGlvbjogJ1dheSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgbW9udGhzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0phbnVhcnknLCBzaG9ydF9uYW1lOiAnSmFuJywgbnVtZXJpYzogJzAxJywgZGF5czogMzF9LFxuICAgICAgICAgICAgLy8gTm90IG1lc3Npbmcgd2l0aCBsZWFwIHllYXJzLi4uXG4gICAgICAgICAgICB7bmFtZTogJ0ZlYnJ1YXJ5Jywgc2hvcnRfbmFtZTogJ0ZlYicsIG51bWVyaWM6ICcwMicsIGRheXM6IDI4fSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFyY2gnLCBzaG9ydF9uYW1lOiAnTWFyJywgbnVtZXJpYzogJzAzJywgZGF5czogMzF9LFxuICAgICAgICAgICAge25hbWU6ICdBcHJpbCcsIHNob3J0X25hbWU6ICdBcHInLCBudW1lcmljOiAnMDQnLCBkYXlzOiAzMH0sXG4gICAgICAgICAgICB7bmFtZTogJ01heScsIHNob3J0X25hbWU6ICdNYXknLCBudW1lcmljOiAnMDUnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ0p1bmUnLCBzaG9ydF9uYW1lOiAnSnVuJywgbnVtZXJpYzogJzA2JywgZGF5czogMzB9LFxuICAgICAgICAgICAge25hbWU6ICdKdWx5Jywgc2hvcnRfbmFtZTogJ0p1bCcsIG51bWVyaWM6ICcwNycsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXVndXN0Jywgc2hvcnRfbmFtZTogJ0F1ZycsIG51bWVyaWM6ICcwOCcsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU2VwdGVtYmVyJywgc2hvcnRfbmFtZTogJ1NlcCcsIG51bWVyaWM6ICcwOScsIGRheXM6IDMwfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT2N0b2JlcicsIHNob3J0X25hbWU6ICdPY3QnLCBudW1lcmljOiAnMTAnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ05vdmVtYmVyJywgc2hvcnRfbmFtZTogJ05vdicsIG51bWVyaWM6ICcxMScsIGRheXM6IDMwfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRGVjZW1iZXInLCBzaG9ydF9uYW1lOiAnRGVjJywgbnVtZXJpYzogJzEyJywgZGF5czogMzF9XG4gICAgICAgIF0sXG5cbiAgICAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYW5rX2NhcmRfbnVtYmVyI0lzc3Vlcl9pZGVudGlmaWNhdGlvbl9udW1iZXJfLjI4SUlOLjI5XG4gICAgICAgIGNjX3R5cGVzOiBbXG4gICAgICAgICAgICB7bmFtZTogXCJBbWVyaWNhbiBFeHByZXNzXCIsIHNob3J0X25hbWU6ICdhbWV4JywgcHJlZml4OiAnMzQnLCBsZW5ndGg6IDE1fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkJhbmtjYXJkXCIsIHNob3J0X25hbWU6ICdiYW5rY2FyZCcsIHByZWZpeDogJzU2MTAnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkNoaW5hIFVuaW9uUGF5XCIsIHNob3J0X25hbWU6ICdjaGluYXVuaW9uJywgcHJlZml4OiAnNjInLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIENhcnRlIEJsYW5jaGVcIiwgc2hvcnRfbmFtZTogJ2RjY2FydGUnLCBwcmVmaXg6ICczMDAnLCBsZW5ndGg6IDE0fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIGVuUm91dGVcIiwgc2hvcnRfbmFtZTogJ2RjZW5yb3V0ZScsIHByZWZpeDogJzIwMTQnLCBsZW5ndGg6IDE1fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIEludGVybmF0aW9uYWxcIiwgc2hvcnRfbmFtZTogJ2RjaW50bCcsIHByZWZpeDogJzM2JywgbGVuZ3RoOiAxNH0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaW5lcnMgQ2x1YiBVbml0ZWQgU3RhdGVzICYgQ2FuYWRhXCIsIHNob3J0X25hbWU6ICdkY3VzYycsIHByZWZpeDogJzU0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaXNjb3ZlciBDYXJkXCIsIHNob3J0X25hbWU6ICdkaXNjb3ZlcicsIHByZWZpeDogJzYwMTEnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkluc3RhUGF5bWVudFwiLCBzaG9ydF9uYW1lOiAnaW5zdGFwYXknLCBwcmVmaXg6ICc2MzcnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkpDQlwiLCBzaG9ydF9uYW1lOiAnamNiJywgcHJlZml4OiAnMzUyOCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiTGFzZXJcIiwgc2hvcnRfbmFtZTogJ2xhc2VyJywgcHJlZml4OiAnNjMwNCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiTWFlc3Ryb1wiLCBzaG9ydF9uYW1lOiAnbWFlc3RybycsIHByZWZpeDogJzUwMTgnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIk1hc3RlcmNhcmRcIiwgc2hvcnRfbmFtZTogJ21jJywgcHJlZml4OiAnNTEnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIlNvbG9cIiwgc2hvcnRfbmFtZTogJ3NvbG8nLCBwcmVmaXg6ICc2MzM0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJTd2l0Y2hcIiwgc2hvcnRfbmFtZTogJ3N3aXRjaCcsIHByZWZpeDogJzQ5MDMnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIlZpc2FcIiwgc2hvcnRfbmFtZTogJ3Zpc2EnLCBwcmVmaXg6ICc0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJWaXNhIEVsZWN0cm9uXCIsIHNob3J0X25hbWU6ICdlbGVjdHJvbicsIHByZWZpeDogJzQwMjYnLCBsZW5ndGg6IDE2fVxuICAgICAgICBdLFxuXG4gICAgICAgIC8vcmV0dXJuIGFsbCB3b3JsZCBjdXJyZW5jeSBieSBJU08gNDIxN1xuICAgICAgICBjdXJyZW5jeV90eXBlczogW1xuICAgICAgICAgICAgeydjb2RlJyA6ICdBRUQnLCAnbmFtZScgOiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMgRGlyaGFtJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FGTicsICduYW1lJyA6ICdBZmdoYW5pc3RhbiBBZmdoYW5pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FMTCcsICduYW1lJyA6ICdBbGJhbmlhIExlayd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBTUQnLCAnbmFtZScgOiAnQXJtZW5pYSBEcmFtJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FORycsICduYW1lJyA6ICdOZXRoZXJsYW5kcyBBbnRpbGxlcyBHdWlsZGVyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FPQScsICduYW1lJyA6ICdBbmdvbGEgS3dhbnphJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FSUycsICduYW1lJyA6ICdBcmdlbnRpbmEgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBVUQnLCAnbmFtZScgOiAnQXVzdHJhbGlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBV0cnLCAnbmFtZScgOiAnQXJ1YmEgR3VpbGRlcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBWk4nLCAnbmFtZScgOiAnQXplcmJhaWphbiBOZXcgTWFuYXQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkFNJywgJ25hbWUnIDogJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEgQ29udmVydGlibGUgTWFya2EnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkJEJywgJ25hbWUnIDogJ0JhcmJhZG9zIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCRFQnLCAnbmFtZScgOiAnQmFuZ2xhZGVzaCBUYWthJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JHTicsICduYW1lJyA6ICdCdWxnYXJpYSBMZXYnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkhEJywgJ25hbWUnIDogJ0JhaHJhaW4gRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQklGJywgJ25hbWUnIDogJ0J1cnVuZGkgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQk1EJywgJ25hbWUnIDogJ0Jlcm11ZGEgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JORCcsICduYW1lJyA6ICdCcnVuZWkgRGFydXNzYWxhbSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQk9CJywgJ25hbWUnIDogJ0JvbGl2aWEgQm9saXZpYW5vJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JSTCcsICduYW1lJyA6ICdCcmF6aWwgUmVhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCU0QnLCAnbmFtZScgOiAnQmFoYW1hcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQlROJywgJ25hbWUnIDogJ0JodXRhbiBOZ3VsdHJ1bSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCV1AnLCAnbmFtZScgOiAnQm90c3dhbmEgUHVsYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCWVInLCAnbmFtZScgOiAnQmVsYXJ1cyBSdWJsZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCWkQnLCAnbmFtZScgOiAnQmVsaXplIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDQUQnLCAnbmFtZScgOiAnQ2FuYWRhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDREYnLCAnbmFtZScgOiAnQ29uZ28vS2luc2hhc2EgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ0hGJywgJ25hbWUnIDogJ1N3aXR6ZXJsYW5kIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NMUCcsICduYW1lJyA6ICdDaGlsZSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NOWScsICduYW1lJyA6ICdDaGluYSBZdWFuIFJlbm1pbmJpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NPUCcsICduYW1lJyA6ICdDb2xvbWJpYSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NSQycsICduYW1lJyA6ICdDb3N0YSBSaWNhIENvbG9uJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NVQycsICduYW1lJyA6ICdDdWJhIENvbnZlcnRpYmxlIFBlc28nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ1VQJywgJ25hbWUnIDogJ0N1YmEgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDVkUnLCAnbmFtZScgOiAnQ2FwZSBWZXJkZSBFc2N1ZG8nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ1pLJywgJ25hbWUnIDogJ0N6ZWNoIFJlcHVibGljIEtvcnVuYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdESkYnLCAnbmFtZScgOiAnRGppYm91dGkgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnREtLJywgJ25hbWUnIDogJ0Rlbm1hcmsgS3JvbmUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnRE9QJywgJ25hbWUnIDogJ0RvbWluaWNhbiBSZXB1YmxpYyBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0RaRCcsICduYW1lJyA6ICdBbGdlcmlhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0VHUCcsICduYW1lJyA6ICdFZ3lwdCBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFUk4nLCAnbmFtZScgOiAnRXJpdHJlYSBOYWtmYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFVEInLCAnbmFtZScgOiAnRXRoaW9waWEgQmlycid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFVVInLCAnbmFtZScgOiAnRXVybyBNZW1iZXIgQ291bnRyaWVzJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0ZKRCcsICduYW1lJyA6ICdGaWppIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdGS1AnLCAnbmFtZScgOiAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dCUCcsICduYW1lJyA6ICdVbml0ZWQgS2luZ2RvbSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHRUwnLCAnbmFtZScgOiAnR2VvcmdpYSBMYXJpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dHUCcsICduYW1lJyA6ICdHdWVybnNleSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHSFMnLCAnbmFtZScgOiAnR2hhbmEgQ2VkaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHSVAnLCAnbmFtZScgOiAnR2licmFsdGFyIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dNRCcsICduYW1lJyA6ICdHYW1iaWEgRGFsYXNpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dORicsICduYW1lJyA6ICdHdWluZWEgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnR1RRJywgJ25hbWUnIDogJ0d1YXRlbWFsYSBRdWV0emFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dZRCcsICduYW1lJyA6ICdHdXlhbmEgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hLRCcsICduYW1lJyA6ICdIb25nIEtvbmcgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hOTCcsICduYW1lJyA6ICdIb25kdXJhcyBMZW1waXJhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hSSycsICduYW1lJyA6ICdDcm9hdGlhIEt1bmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSFRHJywgJ25hbWUnIDogJ0hhaXRpIEdvdXJkZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdIVUYnLCAnbmFtZScgOiAnSHVuZ2FyeSBGb3JpbnQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSURSJywgJ25hbWUnIDogJ0luZG9uZXNpYSBSdXBpYWgnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSUxTJywgJ25hbWUnIDogJ0lzcmFlbCBTaGVrZWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSU1QJywgJ25hbWUnIDogJ0lzbGUgb2YgTWFuIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lOUicsICduYW1lJyA6ICdJbmRpYSBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJUUQnLCAnbmFtZScgOiAnSXJhcSBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJUlInLCAnbmFtZScgOiAnSXJhbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lTSycsICduYW1lJyA6ICdJY2VsYW5kIEtyb25hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pFUCcsICduYW1lJyA6ICdKZXJzZXkgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSk1EJywgJ25hbWUnIDogJ0phbWFpY2EgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pPRCcsICduYW1lJyA6ICdKb3JkYW4gRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSlBZJywgJ25hbWUnIDogJ0phcGFuIFllbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLRVMnLCAnbmFtZScgOiAnS2VueWEgU2hpbGxpbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS0dTJywgJ25hbWUnIDogJ0t5cmd5enN0YW4gU29tJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tIUicsICduYW1lJyA6ICdDYW1ib2RpYSBSaWVsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tNRicsICduYW1lJyA6ICdDb21vcm9zIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tQVycsICduYW1lJyA6ICdLb3JlYSAoTm9ydGgpIFdvbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLUlcnLCAnbmFtZScgOiAnS29yZWEgKFNvdXRoKSBXb24nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS1dEJywgJ25hbWUnIDogJ0t1d2FpdCBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLWUQnLCAnbmFtZScgOiAnQ2F5bWFuIElzbGFuZHMgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0taVCcsICduYW1lJyA6ICdLYXpha2hzdGFuIFRlbmdlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xBSycsICduYW1lJyA6ICdMYW9zIEtpcCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMQlAnLCAnbmFtZScgOiAnTGViYW5vbiBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMS1InLCAnbmFtZScgOiAnU3JpIExhbmthIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xSRCcsICduYW1lJyA6ICdMaWJlcmlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMU0wnLCAnbmFtZScgOiAnTGVzb3RobyBMb3RpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xUTCcsICduYW1lJyA6ICdMaXRodWFuaWEgTGl0YXMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTFlEJywgJ25hbWUnIDogJ0xpYnlhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01BRCcsICduYW1lJyA6ICdNb3JvY2NvIERpcmhhbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNREwnLCAnbmFtZScgOiAnTW9sZG92YSBMZXUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTUdBJywgJ25hbWUnIDogJ01hZGFnYXNjYXIgQXJpYXJ5J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01LRCcsICduYW1lJyA6ICdNYWNlZG9uaWEgRGVuYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTU1LJywgJ25hbWUnIDogJ015YW5tYXIgKEJ1cm1hKSBLeWF0J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01OVCcsICduYW1lJyA6ICdNb25nb2xpYSBUdWdocmlrJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01PUCcsICduYW1lJyA6ICdNYWNhdSBQYXRhY2EnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTVJPJywgJ25hbWUnIDogJ01hdXJpdGFuaWEgT3VndWl5YSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNVVInLCAnbmFtZScgOiAnTWF1cml0aXVzIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01WUicsICduYW1lJyA6ICdNYWxkaXZlcyAoTWFsZGl2ZSBJc2xhbmRzKSBSdWZpeWFhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01XSycsICduYW1lJyA6ICdNYWxhd2kgS3dhY2hhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01YTicsICduYW1lJyA6ICdNZXhpY28gUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNWVInLCAnbmFtZScgOiAnTWFsYXlzaWEgUmluZ2dpdCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNWk4nLCAnbmFtZScgOiAnTW96YW1iaXF1ZSBNZXRpY2FsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ05BRCcsICduYW1lJyA6ICdOYW1pYmlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOR04nLCAnbmFtZScgOiAnTmlnZXJpYSBOYWlyYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOSU8nLCAnbmFtZScgOiAnTmljYXJhZ3VhIENvcmRvYmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTk9LJywgJ25hbWUnIDogJ05vcndheSBLcm9uZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOUFInLCAnbmFtZScgOiAnTmVwYWwgUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTlpEJywgJ25hbWUnIDogJ05ldyBaZWFsYW5kIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdPTVInLCAnbmFtZScgOiAnT21hbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BBQicsICduYW1lJyA6ICdQYW5hbWEgQmFsYm9hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BFTicsICduYW1lJyA6ICdQZXJ1IE51ZXZvIFNvbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQR0snLCAnbmFtZScgOiAnUGFwdWEgTmV3IEd1aW5lYSBLaW5hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BIUCcsICduYW1lJyA6ICdQaGlsaXBwaW5lcyBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BLUicsICduYW1lJyA6ICdQYWtpc3RhbiBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQTE4nLCAnbmFtZScgOiAnUG9sYW5kIFpsb3R5J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BZRycsICduYW1lJyA6ICdQYXJhZ3VheSBHdWFyYW5pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1FBUicsICduYW1lJyA6ICdRYXRhciBSaXlhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdST04nLCAnbmFtZScgOiAnUm9tYW5pYSBOZXcgTGV1J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1JTRCcsICduYW1lJyA6ICdTZXJiaWEgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnUlVCJywgJ25hbWUnIDogJ1J1c3NpYSBSdWJsZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdSV0YnLCAnbmFtZScgOiAnUndhbmRhIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NBUicsICduYW1lJyA6ICdTYXVkaSBBcmFiaWEgUml5YWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0JEJywgJ25hbWUnIDogJ1NvbG9tb24gSXNsYW5kcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0NSJywgJ25hbWUnIDogJ1NleWNoZWxsZXMgUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0RHJywgJ25hbWUnIDogJ1N1ZGFuIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NFSycsICduYW1lJyA6ICdTd2VkZW4gS3JvbmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0dEJywgJ25hbWUnIDogJ1NpbmdhcG9yZSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0hQJywgJ25hbWUnIDogJ1NhaW50IEhlbGVuYSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTTEwnLCAnbmFtZScgOiAnU2llcnJhIExlb25lIExlb25lJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NPUycsICduYW1lJyA6ICdTb21hbGlhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NQTCcsICduYW1lJyA6ICdTZWJvcmdhIEx1aWdpbm8nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1JEJywgJ25hbWUnIDogJ1N1cmluYW1lIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTVEQnLCAnbmFtZScgOiAnU8OjbyBUb23DqSBhbmQgUHLDrW5jaXBlIERvYnJhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NWQycsICduYW1lJyA6ICdFbCBTYWx2YWRvciBDb2xvbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTWVAnLCAnbmFtZScgOiAnU3lyaWEgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1pMJywgJ25hbWUnIDogJ1N3YXppbGFuZCBMaWxhbmdlbmknfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVEhCJywgJ25hbWUnIDogJ1RoYWlsYW5kIEJhaHQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVEpTJywgJ25hbWUnIDogJ1RhamlraXN0YW4gU29tb25pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RNVCcsICduYW1lJyA6ICdUdXJrbWVuaXN0YW4gTWFuYXQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVE5EJywgJ25hbWUnIDogJ1R1bmlzaWEgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVE9QJywgJ25hbWUnIDogJ1RvbmdhIFBhXFwnYW5nYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUUlknLCAnbmFtZScgOiAnVHVya2V5IExpcmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVFREJywgJ25hbWUnIDogJ1RyaW5pZGFkIGFuZCBUb2JhZ28gRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RWRCcsICduYW1lJyA6ICdUdXZhbHUgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RXRCcsICduYW1lJyA6ICdUYWl3YW4gTmV3IERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUWlMnLCAnbmFtZScgOiAnVGFuemFuaWEgU2hpbGxpbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVUFIJywgJ25hbWUnIDogJ1VrcmFpbmUgSHJ5dm5pYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVR1gnLCAnbmFtZScgOiAnVWdhbmRhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1VTRCcsICduYW1lJyA6ICdVbml0ZWQgU3RhdGVzIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVWVUnLCAnbmFtZScgOiAnVXJ1Z3VheSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1VaUycsICduYW1lJyA6ICdVemJla2lzdGFuIFNvbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdWRUYnLCAnbmFtZScgOiAnVmVuZXp1ZWxhIEJvbGl2YXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVk5EJywgJ25hbWUnIDogJ1ZpZXQgTmFtIERvbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVlVWJywgJ25hbWUnIDogJ1ZhbnVhdHUgVmF0dSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdXU1QnLCAnbmFtZScgOiAnU2Ftb2EgVGFsYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYQUYnLCAnbmFtZScgOiAnQ29tbXVuYXV0w6kgRmluYW5jacOocmUgQWZyaWNhaW5lIChCRUFDKSBDRkEgRnJhbmMgQkVBQyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYQ0QnLCAnbmFtZScgOiAnRWFzdCBDYXJpYmJlYW4gRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1hEUicsICduYW1lJyA6ICdJbnRlcm5hdGlvbmFsIE1vbmV0YXJ5IEZ1bmQgKElNRikgU3BlY2lhbCBEcmF3aW5nIFJpZ2h0cyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYT0YnLCAnbmFtZScgOiAnQ29tbXVuYXV0w6kgRmluYW5jacOocmUgQWZyaWNhaW5lIChCQ0VBTykgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWFBGJywgJ25hbWUnIDogJ0NvbXB0b2lycyBGcmFuw6dhaXMgZHUgUGFjaWZpcXVlIChDRlApIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1lFUicsICduYW1lJyA6ICdZZW1lbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1pBUicsICduYW1lJyA6ICdTb3V0aCBBZnJpY2EgUmFuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdaTVcnLCAnbmFtZScgOiAnWmFtYmlhIEt3YWNoYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdaV0QnLCAnbmFtZScgOiAnWmltYmFid2UgRG9sbGFyJ31cbiAgICAgICAgXVxuICAgIH07XG5cbiAgICB2YXIgb19oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIG9fa2V5cyA9IChPYmplY3Qua2V5cyB8fCBmdW5jdGlvbihvYmopIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKG9faGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBfY29weU9iamVjdChzb3VyY2UsIHRhcmdldCkge1xuICAgICAgdmFyIGtleXMgPSBvX2tleXMoc291cmNlKTtcbiAgICAgIHZhciBrZXk7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XSB8fCB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBfY29weUFycmF5KHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHNvdXJjZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdGFyZ2V0W2ldID0gc291cmNlW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBfdGFyZ2V0KSB7XG4gICAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuICAgICAgICB2YXIgdGFyZ2V0ID0gX3RhcmdldCB8fCAoaXNBcnJheSA/IG5ldyBBcnJheShzb3VyY2UubGVuZ3RoKSA6IHt9KTtcblxuICAgICAgICBpZiAoaXNBcnJheSkge1xuICAgICAgICAgIF9jb3B5QXJyYXkoc291cmNlLCB0YXJnZXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9jb3B5T2JqZWN0KHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgZGF0YSBiYXNlZCBvbiBrZXkqKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIHJldHVybiBjb3B5T2JqZWN0KGRhdGFbbmFtZV0pO1xuICAgIH07XG5cbiAgICAvLyBNYWMgQWRkcmVzc1xuICAgIENoYW5jZS5wcm90b3R5cGUubWFjX2FkZHJlc3MgPSBmdW5jdGlvbihvcHRpb25zKXtcbiAgICAgICAgLy8gdHlwaWNhbGx5IG1hYyBhZGRyZXNzZXMgYXJlIHNlcGFyYXRlZCBieSBcIjpcIlxuICAgICAgICAvLyBob3dldmVyIHRoZXkgY2FuIGFsc28gYmUgc2VwYXJhdGVkIGJ5IFwiLVwiXG4gICAgICAgIC8vIHRoZSBuZXR3b3JrIHZhcmlhbnQgdXNlcyBhIGRvdCBldmVyeSBmb3VydGggYnl0ZVxuXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgaWYoIW9wdGlvbnMuc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zLnNlcGFyYXRvciA9ICBvcHRpb25zLm5ldHdvcmtWZXJzaW9uID8gXCIuXCIgOiBcIjpcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBtYWNfcG9vbD1cIkFCQ0RFRjEyMzQ1Njc4OTBcIixcbiAgICAgICAgICAgIG1hYyA9IFwiXCI7XG4gICAgICAgIGlmKCFvcHRpb25zLm5ldHdvcmtWZXJzaW9uKSB7XG4gICAgICAgICAgICBtYWMgPSB0aGlzLm4odGhpcy5zdHJpbmcsIDYsIHsgcG9vbDogbWFjX3Bvb2wsIGxlbmd0aDoyIH0pLmpvaW4ob3B0aW9ucy5zZXBhcmF0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFjID0gdGhpcy5uKHRoaXMuc3RyaW5nLCAzLCB7IHBvb2w6IG1hY19wb29sLCBsZW5ndGg6NCB9KS5qb2luKG9wdGlvbnMuc2VwYXJhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYWM7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubm9ybWFsID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttZWFuIDogMCwgZGV2IDogMX0pO1xuXG4gICAgICAgIC8vIFRoZSBNYXJzYWdsaWEgUG9sYXIgbWV0aG9kXG4gICAgICAgIHZhciBzLCB1LCB2LCBub3JtLFxuICAgICAgICAgICAgbWVhbiA9IG9wdGlvbnMubWVhbixcbiAgICAgICAgICAgIGRldiA9IG9wdGlvbnMuZGV2O1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIC8vIFUgYW5kIFYgYXJlIGZyb20gdGhlIHVuaWZvcm0gZGlzdHJpYnV0aW9uIG9uICgtMSwgMSlcbiAgICAgICAgICAgIHUgPSB0aGlzLnJhbmRvbSgpICogMiAtIDE7XG4gICAgICAgICAgICB2ID0gdGhpcy5yYW5kb20oKSAqIDIgLSAxO1xuXG4gICAgICAgICAgICBzID0gdSAqIHUgKyB2ICogdjtcbiAgICAgICAgfSB3aGlsZSAocyA+PSAxKTtcblxuICAgICAgICAvLyBDb21wdXRlIHRoZSBzdGFuZGFyZCBub3JtYWwgdmFyaWF0ZVxuICAgICAgICBub3JtID0gdSAqIE1hdGguc3FydCgtMiAqIE1hdGgubG9nKHMpIC8gcyk7XG5cbiAgICAgICAgLy8gU2hhcGUgYW5kIHNjYWxlXG4gICAgICAgIHJldHVybiBkZXYgKiBub3JtICsgbWVhbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5yYWRpbyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIC8vIEluaXRpYWwgTGV0dGVyIChUeXBpY2FsbHkgRGVzaWduYXRlZCBieSBTaWRlIG9mIE1pc3Npc3NpcHBpIFJpdmVyKVxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge3NpZGUgOiBcIj9cIn0pO1xuICAgICAgICB2YXIgZmwgPSBcIlwiO1xuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuc2lkZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgXCJlYXN0XCI6XG4gICAgICAgIGNhc2UgXCJlXCI6XG4gICAgICAgICAgICBmbCA9IFwiV1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ3ZXN0XCI6XG4gICAgICAgIGNhc2UgXCJ3XCI6XG4gICAgICAgICAgICBmbCA9IFwiS1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBmbCA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiBcIktXXCJ9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZsICsgdGhpcy5jaGFyYWN0ZXIoe2FscGhhOiB0cnVlLCBjYXNpbmc6IFwidXBwZXJcIn0pICtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3Rlcih7YWxwaGE6IHRydWUsIGNhc2luZzogXCJ1cHBlclwifSkgK1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KTtcbiAgICB9O1xuXG4gICAgLy8gU2V0IHRoZSBkYXRhIGFzIGtleSBhbmQgZGF0YSBvciB0aGUgZGF0YSBtYXBcbiAgICBDaGFuY2UucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBkYXRhW25hbWVdID0gdmFsdWVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YSA9IGNvcHlPYmplY3QobmFtZSwgZGF0YSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS50diA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhZGlvKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICAvLyBJRCBudW1iZXIgZm9yIEJyYXppbCBjb21wYW5pZXNcbiAgICBDaGFuY2UucHJvdG90eXBlLmNucGogPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5uKHRoaXMubmF0dXJhbCwgOCwgeyBtYXg6IDkgfSk7XG4gICAgICAgIHZhciBkMSA9IDIrbls3XSo2K25bNl0qNytuWzVdKjgrbls0XSo5K25bM10qMituWzJdKjMrblsxXSo0K25bMF0qNTtcbiAgICAgICAgZDEgPSAxMSAtIChkMSAlIDExKTtcbiAgICAgICAgaWYgKGQxPj0xMCl7XG4gICAgICAgICAgICBkMSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGQyID0gZDEqMiszK25bN10qNytuWzZdKjgrbls1XSo5K25bNF0qMituWzNdKjMrblsyXSo0K25bMV0qNStuWzBdKjY7XG4gICAgICAgIGQyID0gMTEgLSAoZDIgJSAxMSk7XG4gICAgICAgIGlmIChkMj49MTApe1xuICAgICAgICAgICAgZDIgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJytuWzBdK25bMV0rJy4nK25bMl0rblszXStuWzRdKycuJytuWzVdK25bNl0rbls3XSsnLzAwMDEtJytkMStkMjtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIE1pc2NlbGxhbmVvdXMgLS1cblxuICAgIENoYW5jZS5wcm90b3R5cGUubWVyc2VubmVfdHdpc3RlciA9IGZ1bmN0aW9uIChzZWVkKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWVyc2VubmVUd2lzdGVyKHNlZWQpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmJsdWVpbXBfbWQ1ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IEJsdWVJbXBNRDUoKTtcbiAgICB9O1xuXG4gICAgLy8gTWVyc2VubmUgVHdpc3RlciBmcm9tIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2JhbmtzZWFuLzMwMDQ5NFxuICAgIHZhciBNZXJzZW5uZVR3aXN0ZXIgPSBmdW5jdGlvbiAoc2VlZCkge1xuICAgICAgICBpZiAoc2VlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBrZXB0IHJhbmRvbSBudW1iZXIgc2FtZSBzaXplIGFzIHRpbWUgdXNlZCBwcmV2aW91c2x5IHRvIGVuc3VyZSBubyB1bmV4cGVjdGVkIHJlc3VsdHMgZG93bnN0cmVhbVxuICAgICAgICAgICAgc2VlZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpNYXRoLnBvdygxMCwxMykpO1xuICAgICAgICB9XG4gICAgICAgIC8qIFBlcmlvZCBwYXJhbWV0ZXJzICovXG4gICAgICAgIHRoaXMuTiA9IDYyNDtcbiAgICAgICAgdGhpcy5NID0gMzk3O1xuICAgICAgICB0aGlzLk1BVFJJWF9BID0gMHg5OTA4YjBkZjsgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuICAgICAgICB0aGlzLlVQUEVSX01BU0sgPSAweDgwMDAwMDAwOyAvKiBtb3N0IHNpZ25pZmljYW50IHctciBiaXRzICovXG4gICAgICAgIHRoaXMuTE9XRVJfTUFTSyA9IDB4N2ZmZmZmZmY7IC8qIGxlYXN0IHNpZ25pZmljYW50IHIgYml0cyAqL1xuXG4gICAgICAgIHRoaXMubXQgPSBuZXcgQXJyYXkodGhpcy5OKTsgLyogdGhlIGFycmF5IGZvciB0aGUgc3RhdGUgdmVjdG9yICovXG4gICAgICAgIHRoaXMubXRpID0gdGhpcy5OICsgMTsgLyogbXRpPT1OICsgMSBtZWFucyBtdFtOXSBpcyBub3QgaW5pdGlhbGl6ZWQgKi9cblxuICAgICAgICB0aGlzLmluaXRfZ2VucmFuZChzZWVkKTtcbiAgICB9O1xuXG4gICAgLyogaW5pdGlhbGl6ZXMgbXRbTl0gd2l0aCBhIHNlZWQgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLmluaXRfZ2VucmFuZCA9IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgIHRoaXMubXRbMF0gPSBzID4+PiAwO1xuICAgICAgICBmb3IgKHRoaXMubXRpID0gMTsgdGhpcy5tdGkgPCB0aGlzLk47IHRoaXMubXRpKyspIHtcbiAgICAgICAgICAgIHMgPSB0aGlzLm10W3RoaXMubXRpIC0gMV0gXiAodGhpcy5tdFt0aGlzLm10aSAtIDFdID4+PiAzMCk7XG4gICAgICAgICAgICB0aGlzLm10W3RoaXMubXRpXSA9ICgoKCgocyAmIDB4ZmZmZjAwMDApID4+PiAxNikgKiAxODEyNDMzMjUzKSA8PCAxNikgKyAocyAmIDB4MDAwMGZmZmYpICogMTgxMjQzMzI1MykgKyB0aGlzLm10aTtcbiAgICAgICAgICAgIC8qIFNlZSBLbnV0aCBUQU9DUCBWb2wyLiAzcmQgRWQuIFAuMTA2IGZvciBtdWx0aXBsaWVyLiAqL1xuICAgICAgICAgICAgLyogSW4gdGhlIHByZXZpb3VzIHZlcnNpb25zLCBNU0JzIG9mIHRoZSBzZWVkIGFmZmVjdCAgICovXG4gICAgICAgICAgICAvKiBvbmx5IE1TQnMgb2YgdGhlIGFycmF5IG10W10uICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC8qIDIwMDIvMDEvMDkgbW9kaWZpZWQgYnkgTWFrb3RvIE1hdHN1bW90byAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5tdFt0aGlzLm10aV0gPj4+PSAwO1xuICAgICAgICAgICAgLyogZm9yID4zMiBiaXQgbWFjaGluZXMgKi9cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBpbml0aWFsaXplIGJ5IGFuIGFycmF5IHdpdGggYXJyYXktbGVuZ3RoICovXG4gICAgLyogaW5pdF9rZXkgaXMgdGhlIGFycmF5IGZvciBpbml0aWFsaXppbmcga2V5cyAqL1xuICAgIC8qIGtleV9sZW5ndGggaXMgaXRzIGxlbmd0aCAqL1xuICAgIC8qIHNsaWdodCBjaGFuZ2UgZm9yIEMrKywgMjAwNC8yLzI2ICovXG4gICAgTWVyc2VubmVUd2lzdGVyLnByb3RvdHlwZS5pbml0X2J5X2FycmF5ID0gZnVuY3Rpb24gKGluaXRfa2V5LCBrZXlfbGVuZ3RoKSB7XG4gICAgICAgIHZhciBpID0gMSwgaiA9IDAsIGssIHM7XG4gICAgICAgIHRoaXMuaW5pdF9nZW5yYW5kKDE5NjUwMjE4KTtcbiAgICAgICAgayA9ICh0aGlzLk4gPiBrZXlfbGVuZ3RoID8gdGhpcy5OIDoga2V5X2xlbmd0aCk7XG4gICAgICAgIGZvciAoOyBrOyBrLS0pIHtcbiAgICAgICAgICAgIHMgPSB0aGlzLm10W2kgLSAxXSBeICh0aGlzLm10W2kgLSAxXSA+Pj4gMzApO1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA9ICh0aGlzLm10W2ldIF4gKCgoKChzICYgMHhmZmZmMDAwMCkgPj4+IDE2KSAqIDE2NjQ1MjUpIDw8IDE2KSArICgocyAmIDB4MDAwMGZmZmYpICogMTY2NDUyNSkpKSArIGluaXRfa2V5W2pdICsgajsgLyogbm9uIGxpbmVhciAqL1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA+Pj49IDA7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBqKys7XG4gICAgICAgICAgICBpZiAoaSA+PSB0aGlzLk4pIHsgdGhpcy5tdFswXSA9IHRoaXMubXRbdGhpcy5OIC0gMV07IGkgPSAxOyB9XG4gICAgICAgICAgICBpZiAoaiA+PSBrZXlfbGVuZ3RoKSB7IGogPSAwOyB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChrID0gdGhpcy5OIC0gMTsgazsgay0tKSB7XG4gICAgICAgICAgICBzID0gdGhpcy5tdFtpIC0gMV0gXiAodGhpcy5tdFtpIC0gMV0gPj4+IDMwKTtcbiAgICAgICAgICAgIHRoaXMubXRbaV0gPSAodGhpcy5tdFtpXSBeICgoKCgocyAmIDB4ZmZmZjAwMDApID4+PiAxNikgKiAxNTY2MDgzOTQxKSA8PCAxNikgKyAocyAmIDB4MDAwMGZmZmYpICogMTU2NjA4Mzk0MSkpIC0gaTsgLyogbm9uIGxpbmVhciAqL1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA+Pj49IDA7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBpZiAoaSA+PSB0aGlzLk4pIHsgdGhpcy5tdFswXSA9IHRoaXMubXRbdGhpcy5OIC0gMV07IGkgPSAxOyB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm10WzBdID0gMHg4MDAwMDAwMDsgLyogTVNCIGlzIDE7IGFzc3VyaW5nIG5vbi16ZXJvIGluaXRpYWwgYXJyYXkgKi9cbiAgICB9O1xuXG4gICAgLyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweGZmZmZmZmZmXS1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9pbnQzMiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHk7XG4gICAgICAgIHZhciBtYWcwMSA9IG5ldyBBcnJheSgweDAsIHRoaXMuTUFUUklYX0EpO1xuICAgICAgICAvKiBtYWcwMVt4XSA9IHggKiBNQVRSSVhfQSAgZm9yIHg9MCwxICovXG5cbiAgICAgICAgaWYgKHRoaXMubXRpID49IHRoaXMuTikgeyAvKiBnZW5lcmF0ZSBOIHdvcmRzIGF0IG9uZSB0aW1lICovXG4gICAgICAgICAgICB2YXIga2s7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm10aSA9PT0gdGhpcy5OICsgMSkgeyAgIC8qIGlmIGluaXRfZ2VucmFuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQsICovXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0X2dlbnJhbmQoNTQ4OSk7IC8qIGEgZGVmYXVsdCBpbml0aWFsIHNlZWQgaXMgdXNlZCAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChrayA9IDA7IGtrIDwgdGhpcy5OIC0gdGhpcy5NOyBraysrKSB7XG4gICAgICAgICAgICAgICAgeSA9ICh0aGlzLm10W2trXSZ0aGlzLlVQUEVSX01BU0spfCh0aGlzLm10W2trICsgMV0mdGhpcy5MT1dFUl9NQVNLKTtcbiAgICAgICAgICAgICAgICB0aGlzLm10W2trXSA9IHRoaXMubXRba2sgKyB0aGlzLk1dIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKDtrayA8IHRoaXMuTiAtIDE7IGtrKyspIHtcbiAgICAgICAgICAgICAgICB5ID0gKHRoaXMubXRba2tdJnRoaXMuVVBQRVJfTUFTSyl8KHRoaXMubXRba2sgKyAxXSZ0aGlzLkxPV0VSX01BU0spO1xuICAgICAgICAgICAgICAgIHRoaXMubXRba2tdID0gdGhpcy5tdFtrayArICh0aGlzLk0gLSB0aGlzLk4pXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeSA9ICh0aGlzLm10W3RoaXMuTiAtIDFdJnRoaXMuVVBQRVJfTUFTSyl8KHRoaXMubXRbMF0mdGhpcy5MT1dFUl9NQVNLKTtcbiAgICAgICAgICAgIHRoaXMubXRbdGhpcy5OIC0gMV0gPSB0aGlzLm10W3RoaXMuTSAtIDFdIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG5cbiAgICAgICAgICAgIHRoaXMubXRpID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHkgPSB0aGlzLm10W3RoaXMubXRpKytdO1xuXG4gICAgICAgIC8qIFRlbXBlcmluZyAqL1xuICAgICAgICB5IF49ICh5ID4+PiAxMSk7XG4gICAgICAgIHkgXj0gKHkgPDwgNykgJiAweDlkMmM1NjgwO1xuICAgICAgICB5IF49ICh5IDw8IDE1KSAmIDB4ZWZjNjAwMDA7XG4gICAgICAgIHkgXj0gKHkgPj4+IDE4KTtcblxuICAgICAgICByZXR1cm4geSA+Pj4gMDtcbiAgICB9O1xuXG4gICAgLyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweDdmZmZmZmZmXS1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9pbnQzMSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKSA+Pj4gMSk7XG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMV0tcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9yZWFsMSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpICogKDEuMCAvIDQyOTQ5NjcyOTUuMCk7XG4gICAgICAgIC8qIGRpdmlkZWQgYnkgMl4zMi0xICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSktcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUucmFuZG9tID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZW5yYW5kX2ludDMyKCkgKiAoMS4wIC8gNDI5NDk2NzI5Ni4wKTtcbiAgICAgICAgLyogZGl2aWRlZCBieSAyXjMyICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gKDAsMSktcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9yZWFsMyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKSArIDAuNSkgKiAoMS4wIC8gNDI5NDk2NzI5Ni4wKTtcbiAgICAgICAgLyogZGl2aWRlZCBieSAyXjMyICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSkgd2l0aCA1My1iaXQgcmVzb2x1dGlvbiovXG4gICAgTWVyc2VubmVUd2lzdGVyLnByb3RvdHlwZS5nZW5yYW5kX3JlczUzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgYSA9IHRoaXMuZ2VucmFuZF9pbnQzMigpPj4+NSwgYiA9IHRoaXMuZ2VucmFuZF9pbnQzMigpPj4+NjtcbiAgICAgICAgcmV0dXJuIChhICogNjcxMDg4NjQuMCArIGIpICogKDEuMCAvIDkwMDcxOTkyNTQ3NDA5OTIuMCk7XG4gICAgfTtcblxuICAgIC8vIEJsdWVJbXAgTUQ1IGhhc2hpbmcgYWxnb3JpdGhtIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2JsdWVpbXAvSmF2YVNjcmlwdC1NRDVcbiAgICB2YXIgQmx1ZUltcE1ENSA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuVkVSU0lPTiA9ICcxLjAuMSc7XG5cbiAgICAvKlxuICAgICogQWRkIGludGVnZXJzLCB3cmFwcGluZyBhdCAyXjMyLiBUaGlzIHVzZXMgMTYtYml0IG9wZXJhdGlvbnMgaW50ZXJuYWxseVxuICAgICogdG8gd29yayBhcm91bmQgYnVncyBpbiBzb21lIEpTIGludGVycHJldGVycy5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnNhZmVfYWRkID0gZnVuY3Rpb24gc2FmZV9hZGQoeCwgeSkge1xuICAgICAgICB2YXIgbHN3ID0gKHggJiAweEZGRkYpICsgKHkgJiAweEZGRkYpLFxuICAgICAgICAgICAgbXN3ID0gKHggPj4gMTYpICsgKHkgPj4gMTYpICsgKGxzdyA+PiAxNik7XG4gICAgICAgIHJldHVybiAobXN3IDw8IDE2KSB8IChsc3cgJiAweEZGRkYpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogQml0d2lzZSByb3RhdGUgYSAzMi1iaXQgbnVtYmVyIHRvIHRoZSBsZWZ0LlxuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuYml0X3JvbGwgPSBmdW5jdGlvbiAobnVtLCBjbnQpIHtcbiAgICAgICAgcmV0dXJuIChudW0gPDwgY250KSB8IChudW0gPj4+ICgzMiAtIGNudCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogVGhlc2UgZnVuY3Rpb25zIGltcGxlbWVudCB0aGUgZml2ZSBiYXNpYyBvcGVyYXRpb25zIHRoZSBhbGdvcml0aG0gdXNlcy5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNV9jbW4gPSBmdW5jdGlvbiAocSwgYSwgYiwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlX2FkZCh0aGlzLmJpdF9yb2xsKHRoaXMuc2FmZV9hZGQodGhpcy5zYWZlX2FkZChhLCBxKSwgdGhpcy5zYWZlX2FkZCh4LCB0KSksIHMpLCBiKTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNV9mZiA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1kNV9jbW4oKGIgJiBjKSB8ICgofmIpICYgZCksIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUubWQ1X2dnID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWQ1X2NtbigoYiAmIGQpIHwgKGMgJiAofmQpKSwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfaGggPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZDVfY21uKGIgXiBjIF4gZCwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfaWkgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZDVfY21uKGMgXiAoYiB8ICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENhbGN1bGF0ZSB0aGUgTUQ1IG9mIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHMsIGFuZCBhIGJpdCBsZW5ndGguXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5iaW5sX21kNSA9IGZ1bmN0aW9uICh4LCBsZW4pIHtcbiAgICAgICAgLyogYXBwZW5kIHBhZGRpbmcgKi9cbiAgICAgICAgeFtsZW4gPj4gNV0gfD0gMHg4MCA8PCAobGVuICUgMzIpO1xuICAgICAgICB4WygoKGxlbiArIDY0KSA+Pj4gOSkgPDwgNCkgKyAxNF0gPSBsZW47XG5cbiAgICAgICAgdmFyIGksIG9sZGEsIG9sZGIsIG9sZGMsIG9sZGQsXG4gICAgICAgICAgICBhID0gIDE3MzI1ODQxOTMsXG4gICAgICAgICAgICBiID0gLTI3MTczMzg3OSxcbiAgICAgICAgICAgIGMgPSAtMTczMjU4NDE5NCxcbiAgICAgICAgICAgIGQgPSAgMjcxNzMzODc4O1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSArPSAxNikge1xuICAgICAgICAgICAgb2xkYSA9IGE7XG4gICAgICAgICAgICBvbGRiID0gYjtcbiAgICAgICAgICAgIG9sZGMgPSBjO1xuICAgICAgICAgICAgb2xkZCA9IGQ7XG5cbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9mZihhLCBiLCBjLCBkLCB4W2ldLCAgICAgICA3LCAtNjgwODc2OTM2KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAgMV0sIDEyLCAtMzg5NTY0NTg2KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9mZihjLCBkLCBhLCBiLCB4W2kgKyAgMl0sIDE3LCAgNjA2MTA1ODE5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAgM10sIDIyLCAtMTA0NDUyNTMzMCk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgIDRdLCAgNywgLTE3NjQxODg5Nyk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgIDVdLCAxMiwgIDEyMDAwODA0MjYpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArICA2XSwgMTcsIC0xNDczMjMxMzQxKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAgN10sIDIyLCAtNDU3MDU5ODMpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArICA4XSwgIDcsICAxNzcwMDM1NDE2KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAgOV0sIDEyLCAtMTk1ODQxNDQxNyk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMTBdLCAxNywgLTQyMDYzKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAxMV0sIDIyLCAtMTk5MDQwNDE2Mik7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgMTJdLCAgNywgIDE4MDQ2MDM2ODIpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2ZmKGQsIGEsIGIsIGMsIHhbaSArIDEzXSwgMTIsIC00MDM0MTEwMSk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMTRdLCAxNywgLTE1MDIwMDIyOTApO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2ZmKGIsIGMsIGQsIGEsIHhbaSArIDE1XSwgMjIsICAxMjM2NTM1MzI5KTtcblxuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArICAxXSwgIDUsIC0xNjU3OTY1MTApO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArICA2XSwgIDksIC0xMDY5NTAxNjMyKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE0LCAgNjQzNzE3NzEzKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2ldLCAgICAgIDIwLCAtMzczODk3MzAyKTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyAgNV0sICA1LCAtNzAxNTU4NjkxKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyAxMF0sICA5LCAgMzgwMTYwODMpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTQsIC02NjA0NzgzMzUpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArICA0XSwgMjAsIC00MDU1Mzc4NDgpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArICA5XSwgIDUsICA1Njg0NDY0MzgpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArIDE0XSwgIDksIC0xMDE5ODAzNjkwKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAgM10sIDE0LCAtMTg3MzYzOTYxKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyAgOF0sIDIwLCAgMTE2MzUzMTUwMSk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZ2coYSwgYiwgYywgZCwgeFtpICsgMTNdLCAgNSwgLTE0NDQ2ODE0NjcpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArICAyXSwgIDksIC01MTQwMzc4NCk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZ2coYywgZCwgYSwgYiwgeFtpICsgIDddLCAxNCwgIDE3MzUzMjg0NzMpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArIDEyXSwgMjAsIC0xOTI2NjA3NzM0KTtcblxuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArICA1XSwgIDQsIC0zNzg1NTgpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArICA4XSwgMTEsIC0yMDIyNTc0NDYzKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE2LCAgMTgzOTAzMDU2Mik7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaGgoYiwgYywgZCwgYSwgeFtpICsgMTRdLCAyMywgLTM1MzA5NTU2KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAgMV0sICA0LCAtMTUzMDk5MjA2MCk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpICsgIDRdLCAxMSwgIDEyNzI4OTMzNTMpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArICA3XSwgMTYsIC0xNTU0OTc2MzIpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArIDEwXSwgMjMsIC0xMDk0NzMwNjQwKTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAxM10sICA0LCAgNjgxMjc5MTc0KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9oaChkLCBhLCBiLCBjLCB4W2ldLCAgICAgIDExLCAtMzU4NTM3MjIyKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAgM10sIDE2LCAtNzIyNTIxOTc5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAgNl0sIDIzLCAgNzYwMjkxODkpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArICA5XSwgIDQsIC02NDAzNjQ0ODcpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArIDEyXSwgMTEsIC00MjE4MTU4MzUpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTYsICA1MzA3NDI1MjApO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArICAyXSwgMjMsIC05OTUzMzg2NTEpO1xuXG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfaWkoYSwgYiwgYywgZCwgeFtpXSwgICAgICAgNiwgLTE5ODYzMDg0NCk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgIDddLCAxMCwgIDExMjY4OTE0MTUpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2lpKGMsIGQsIGEsIGIsIHhbaSArIDE0XSwgMTUsIC0xNDE2MzU0OTA1KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAgNV0sIDIxLCAtNTc0MzQwNTUpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArIDEyXSwgIDYsICAxNzAwNDg1NTcxKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9paShkLCBhLCBiLCBjLCB4W2kgKyAgM10sIDEwLCAtMTg5NDk4NjYwNik7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgMTBdLCAxNSwgLTEwNTE1MjMpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2lpKGIsIGMsIGQsIGEsIHhbaSArICAxXSwgMjEsIC0yMDU0OTIyNzk5KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9paShhLCBiLCBjLCBkLCB4W2kgKyAgOF0sICA2LCAgMTg3MzMxMzM1OSk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgMTVdLCAxMCwgLTMwNjExNzQ0KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAgNl0sIDE1LCAtMTU2MDE5ODM4MCk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaWkoYiwgYywgZCwgYSwgeFtpICsgMTNdLCAyMSwgIDEzMDkxNTE2NDkpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArICA0XSwgIDYsIC0xNDU1MjMwNzApO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArIDExXSwgMTAsIC0xMTIwMjEwMzc5KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAgMl0sIDE1LCAgNzE4Nzg3MjU5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAgOV0sIDIxLCAtMzQzNDg1NTUxKTtcblxuICAgICAgICAgICAgYSA9IHRoaXMuc2FmZV9hZGQoYSwgb2xkYSk7XG4gICAgICAgICAgICBiID0gdGhpcy5zYWZlX2FkZChiLCBvbGRiKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLnNhZmVfYWRkKGMsIG9sZGMpO1xuICAgICAgICAgICAgZCA9IHRoaXMuc2FmZV9hZGQoZCwgb2xkZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFthLCBiLCBjLCBkXTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENvbnZlcnQgYW4gYXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcyB0byBhIHN0cmluZ1xuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuYmlubDJyc3RyID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0cHV0ID0gJyc7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGggKiAzMjsgaSArPSA4KSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoaW5wdXRbaSA+PiA1XSA+Pj4gKGkgJSAzMikpICYgMHhGRik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENvbnZlcnQgYSByYXcgc3RyaW5nIHRvIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHNcbiAgICAqIENoYXJhY3RlcnMgPjI1NSBoYXZlIHRoZWlyIGhpZ2gtYnl0ZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucnN0cjJiaW5sID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0cHV0ID0gW107XG4gICAgICAgIG91dHB1dFsoaW5wdXQubGVuZ3RoID4+IDIpIC0gMV0gPSB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBvdXRwdXQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIG91dHB1dFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGlucHV0Lmxlbmd0aCAqIDg7IGkgKz0gOCkge1xuICAgICAgICAgICAgb3V0cHV0W2kgPj4gNV0gfD0gKGlucHV0LmNoYXJDb2RlQXQoaSAvIDgpICYgMHhGRikgPDwgKGkgJSAzMik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENhbGN1bGF0ZSB0aGUgTUQ1IG9mIGEgcmF3IHN0cmluZ1xuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucnN0cl9tZDUgPSBmdW5jdGlvbiAocykge1xuICAgICAgICByZXR1cm4gdGhpcy5iaW5sMnJzdHIodGhpcy5iaW5sX21kNSh0aGlzLnJzdHIyYmlubChzKSwgcy5sZW5ndGggKiA4KSk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDYWxjdWxhdGUgdGhlIEhNQUMtTUQ1LCBvZiBhIGtleSBhbmQgc29tZSBkYXRhIChyYXcgc3RyaW5ncylcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHJfaG1hY19tZDUgPSBmdW5jdGlvbiAoa2V5LCBkYXRhKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgYmtleSA9IHRoaXMucnN0cjJiaW5sKGtleSksXG4gICAgICAgICAgICBpcGFkID0gW10sXG4gICAgICAgICAgICBvcGFkID0gW10sXG4gICAgICAgICAgICBoYXNoO1xuICAgICAgICBpcGFkWzE1XSA9IG9wYWRbMTVdID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYmtleS5sZW5ndGggPiAxNikge1xuICAgICAgICAgICAgYmtleSA9IHRoaXMuYmlubF9tZDUoYmtleSwga2V5Lmxlbmd0aCAqIDgpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSArPSAxKSB7XG4gICAgICAgICAgICBpcGFkW2ldID0gYmtleVtpXSBeIDB4MzYzNjM2MzY7XG4gICAgICAgICAgICBvcGFkW2ldID0gYmtleVtpXSBeIDB4NUM1QzVDNUM7XG4gICAgICAgIH1cbiAgICAgICAgaGFzaCA9IHRoaXMuYmlubF9tZDUoaXBhZC5jb25jYXQodGhpcy5yc3RyMmJpbmwoZGF0YSkpLCA1MTIgKyBkYXRhLmxlbmd0aCAqIDgpO1xuICAgICAgICByZXR1cm4gdGhpcy5iaW5sMnJzdHIodGhpcy5iaW5sX21kNShvcGFkLmNvbmNhdChoYXNoKSwgNTEyICsgMTI4KSk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDb252ZXJ0IGEgcmF3IHN0cmluZyB0byBhIGhleCBzdHJpbmdcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHIyaGV4ID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBoZXhfdGFiID0gJzAxMjM0NTY3ODlhYmNkZWYnLFxuICAgICAgICAgICAgb3V0cHV0ID0gJycsXG4gICAgICAgICAgICB4LFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICB4ID0gaW5wdXQuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIG91dHB1dCArPSBoZXhfdGFiLmNoYXJBdCgoeCA+Pj4gNCkgJiAweDBGKSArXG4gICAgICAgICAgICAgICAgaGV4X3RhYi5jaGFyQXQoeCAmIDB4MEYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBFbmNvZGUgYSBzdHJpbmcgYXMgdXRmLThcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnN0cjJyc3RyX3V0ZjggPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogVGFrZSBzdHJpbmcgYXJndW1lbnRzIGFuZCByZXR1cm4gZWl0aGVyIHJhdyBvciBoZXggZW5jb2RlZCBzdHJpbmdzXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5yYXdfbWQ1ID0gZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cl9tZDUodGhpcy5zdHIycnN0cl91dGY4KHMpKTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLmhleF9tZDUgPSBmdW5jdGlvbiAocykge1xuICAgICAgICByZXR1cm4gdGhpcy5yc3RyMmhleCh0aGlzLnJhd19tZDUocykpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucmF3X2htYWNfbWQ1ID0gZnVuY3Rpb24gKGssIGQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cl9obWFjX21kNSh0aGlzLnN0cjJyc3RyX3V0ZjgoayksIHRoaXMuc3RyMnJzdHJfdXRmOChkKSk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5oZXhfaG1hY19tZDUgPSBmdW5jdGlvbiAoaywgZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yc3RyMmhleCh0aGlzLnJhd19obWFjX21kNShrLCBkKSk7XG4gICAgfTtcblxuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNSA9IGZ1bmN0aW9uIChzdHJpbmcsIGtleSwgcmF3KSB7XG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICBpZiAoIXJhdykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhleF9tZDUoc3RyaW5nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmF3X21kNShzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhleF9obWFjX21kNShrZXksIHN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5yYXdfaG1hY19tZDUoa2V5LCBzdHJpbmcpO1xuICAgIH07XG5cbiAgICAvLyBDb21tb25KUyBtb2R1bGVcbiAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gQ2hhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydHMuQ2hhbmNlID0gQ2hhbmNlO1xuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBBTUQgbW9kdWxlXG4gICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoW10sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBDaGFuY2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZXJlIGlzIGEgaW1wb3J0c1NjcmlwcyBvYmplY3QgZGVmaW5lIGNoYW5jZSBmb3Igd29ya2VyXG4gICAgaWYgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjaGFuY2UgPSBuZXcgQ2hhbmNlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgYSB3aW5kb3cgb2JqZWN0LCB0aGF0IGF0IGxlYXN0IGhhcyBhIGRvY3VtZW50IHByb3BlcnR5LFxuICAgIC8vIGluc3RhbnRpYXRlIGFuZCBkZWZpbmUgY2hhbmNlIG9uIHRoZSB3aW5kb3dcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygd2luZG93LmRvY3VtZW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHdpbmRvdy5DaGFuY2UgPSBDaGFuY2U7XG4gICAgICAgIHdpbmRvdy5jaGFuY2UgPSBuZXcgQ2hhbmNlKCk7XG4gICAgfVxufSkoKTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyICQgPSByZXF1aXJlKCcuL3V0aWwvdXJpLWhlbHBlcnMnKTtcblxuJC5maW5kQnlSZWYgPSByZXF1aXJlKCcuL3V0aWwvZmluZC1yZWZlcmVuY2UnKTtcbiQucmVzb2x2ZVNjaGVtYSA9IHJlcXVpcmUoJy4vdXRpbC9yZXNvbHZlLXNjaGVtYScpO1xuJC5ub3JtYWxpemVTY2hlbWEgPSByZXF1aXJlKCcuL3V0aWwvbm9ybWFsaXplLXNjaGVtYScpO1xuXG52YXIgaW5zdGFuY2UgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiAkcmVmKGZha2Vyb290LCBzY2hlbWEsIHJlZnMsIGV4KSB7XG4gICAgaWYgKHR5cGVvZiBmYWtlcm9vdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGV4ID0gcmVmcztcbiAgICAgIHJlZnMgPSBzY2hlbWE7XG4gICAgICBzY2hlbWEgPSBmYWtlcm9vdDtcbiAgICAgIGZha2Vyb290ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgZXggPSAhIXJlZnM7XG4gICAgICByZWZzID0gW107XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHVzaChyZWYpIHtcbiAgICAgIGlmICh0eXBlb2YgcmVmLmlkID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YXIgaWQgPSAkLnJlc29sdmVVUkwoZmFrZXJvb3QsIHJlZi5pZCkucmVwbGFjZSgvXFwvIz8kLywgJycpO1xuXG4gICAgICAgIGlmIChpZC5pbmRleE9mKCcjJykgPiAtMSkge1xuICAgICAgICAgIHZhciBwYXJ0cyA9IGlkLnNwbGl0KCcjJyk7XG5cbiAgICAgICAgICBpZiAocGFydHNbMV0uY2hhckF0KCkgPT09ICcvJykge1xuICAgICAgICAgICAgaWQgPSBwYXJ0c1swXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWQgPSBwYXJ0c1sxXSB8fCBwYXJ0c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISRyZWYucmVmc1tpZF0pIHtcbiAgICAgICAgICAkcmVmLnJlZnNbaWRdID0gcmVmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVmcy5jb25jYXQoW3NjaGVtYV0pLmZvckVhY2goZnVuY3Rpb24ocmVmKSB7XG4gICAgICBzY2hlbWEgPSAkLm5vcm1hbGl6ZVNjaGVtYShmYWtlcm9vdCwgcmVmLCBwdXNoKTtcbiAgICAgIHB1c2goc2NoZW1hKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAkLnJlc29sdmVTY2hlbWEoc2NoZW1hLCAkcmVmLnJlZnMsIGV4KTtcbiAgfVxuXG4gICRyZWYucmVmcyA9IHt9O1xuICAkcmVmLnV0aWwgPSAkO1xuXG4gIHJldHVybiAkcmVmO1xufTtcblxuaW5zdGFuY2UudXRpbCA9ICQ7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjbG9uZSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqKSB7XG4gIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHZhciB0YXJnZXQgPSBBcnJheS5pc0FycmF5KG9iaikgPyBbXSA6IHt9O1xuXG4gIGZ1bmN0aW9uIGNvcHkoa2V5LCB2YWx1ZSkge1xuICAgIHRhcmdldFtrZXldID0gY2xvbmUodmFsdWUpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgIG9iai5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgIGNvcHkoa2V5LCB2YWx1ZSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgY29weShrZXksIG9ialtrZXldKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgJCA9IHJlcXVpcmUoJy4vdXJpLWhlbHBlcnMnKTtcblxuZnVuY3Rpb24gZ2V0KG9iaiwgcGF0aCkge1xuICB2YXIgaGFzaCA9IHBhdGguc3BsaXQoJyMnKVsxXTtcblxuICB2YXIgcGFydHMgPSBoYXNoLnNwbGl0KCcvJykuc2xpY2UoMSk7XG5cbiAgd2hpbGUgKHBhcnRzLmxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQocGFydHMuc2hpZnQoKSkucmVwbGFjZSgvfjEvZywgJy8nKS5yZXBsYWNlKC9+MC9nLCAnficpO1xuXG4gICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVmZXJlbmNlIG5vdCBmb3VuZDogJyArIHBhdGgpO1xuICAgIH1cblxuICAgIG9iaiA9IG9ialtrZXldO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxudmFyIGZpbmQgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlkLCByZWZzKSB7XG4gIHZhciB0YXJnZXQgPSByZWZzW2lkXSB8fCByZWZzW2lkLnNwbGl0KCcjJylbMV1dIHx8IHJlZnNbJC5nZXREb2N1bWVudFVSSShpZCldO1xuXG4gIGlmICh0YXJnZXQpIHtcbiAgICB0YXJnZXQgPSBpZC5pbmRleE9mKCcjLycpID4gLTEgPyBnZXQodGFyZ2V0LCBpZCkgOiB0YXJnZXQ7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIga2V5IGluIHJlZnMpIHtcbiAgICAgIGlmICgkLnJlc29sdmVVUkwocmVmc1trZXldLmlkLCBpZCkgPT09IHJlZnNba2V5XS5pZCkge1xuICAgICAgICB0YXJnZXQgPSByZWZzW2tleV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZWZlcmVuY2Ugbm90IGZvdW5kOiAnICsgaWQpO1xuICB9XG5cbiAgd2hpbGUgKHRhcmdldC4kcmVmKSB7XG4gICAgdGFyZ2V0ID0gZmluZCh0YXJnZXQuJHJlZiwgcmVmcyk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyICQgPSByZXF1aXJlKCcuL3VyaS1oZWxwZXJzJyk7XG5cbnZhciBjbG9uZU9iaiA9IHJlcXVpcmUoJy4vY2xvbmUtb2JqJyk7XG5cbnZhciBTQ0hFTUFfVVJJID0gW1xuICAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWEjJyxcbiAgJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIydcbl07XG5cbmZ1bmN0aW9uIGV4cGFuZChvYmosIHBhcmVudCwgY2FsbGJhY2spIHtcbiAgaWYgKG9iaikge1xuICAgIHZhciBpZCA9IHR5cGVvZiBvYmouaWQgPT09ICdzdHJpbmcnID8gb2JqLmlkIDogJyMnO1xuXG4gICAgaWYgKCEkLmlzVVJMKGlkKSkge1xuICAgICAgaWQgPSAkLnJlc29sdmVVUkwocGFyZW50ID09PSBpZCA/IG51bGwgOiBwYXJlbnQsIGlkKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iai4kcmVmID09PSAnc3RyaW5nJyAmJiAhJC5pc1VSTChvYmouJHJlZikpIHtcbiAgICAgIG9iai4kcmVmID0gJC5yZXNvbHZlVVJMKGlkLCBvYmouJHJlZik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvYmouaWQgPSBwYXJlbnQgPSBpZDtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhKGtleSA9PT0gJ2VudW0nIHx8IGtleSA9PT0gJ3JlcXVpcmVkJykpIHtcbiAgICAgIGV4cGFuZCh2YWx1ZSwgcGFyZW50LCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNhbGxiYWNrKG9iaik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihmYWtlcm9vdCwgc2NoZW1hLCBwdXNoKSB7XG4gIGlmICh0eXBlb2YgZmFrZXJvb3QgPT09ICdvYmplY3QnKSB7XG4gICAgcHVzaCA9IHNjaGVtYTtcbiAgICBzY2hlbWEgPSBmYWtlcm9vdDtcbiAgICBmYWtlcm9vdCA9IG51bGw7XG4gIH1cblxuICB2YXIgYmFzZSA9IGZha2Vyb290IHx8ICcnLFxuICAgICAgY29weSA9IGNsb25lT2JqKHNjaGVtYSk7XG5cbiAgaWYgKGNvcHkuJHNjaGVtYSAmJiBTQ0hFTUFfVVJJLmluZGV4T2YoY29weS4kc2NoZW1hKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHNjaGVtYSB2ZXJzaW9uICh2NCBvbmx5KScpO1xuICB9XG5cbiAgYmFzZSA9ICQucmVzb2x2ZVVSTChjb3B5LiRzY2hlbWEgfHwgU0NIRU1BX1VSSVswXSwgYmFzZSk7XG5cbiAgZXhwYW5kKGNvcHksICQucmVzb2x2ZVVSTChjb3B5LmlkLCBiYXNlKSwgcHVzaCk7XG5cbiAgLy8gVE9ETzogcmVxdWlyZWQgZm9yIGpzb24tcG9pbnRlciB0byBpdHNlbGY/XG4gIGNvcHkuaWQgPSBjb3B5LmlkIHx8ICcjJztcblxuICByZXR1cm4gY29weTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciAkID0gcmVxdWlyZSgnLi91cmktaGVscGVycycpO1xuXG52YXIgZmluZCA9IHJlcXVpcmUoJy4vZmluZC1yZWZlcmVuY2UnKTtcblxuZnVuY3Rpb24gY2xvbmUob2JqLCByZWZzLCBjaGlsZCwgZXhwYW5kKSB7XG4gIHZhciBjb3B5ID0ge307XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGNvcHkgPSBbXTtcbiAgfVxuXG4gIGlmICgkLmlzVVJMKG9iai4kcmVmKSkge1xuICAgIHZhciBmaXhlZCA9IGZpbmQob2JqLiRyZWYsIHJlZnMpO1xuXG4gICAgaWYgKGZpeGVkICYmIGV4cGFuZCkge1xuICAgICAgdmFyIGlkID0gdHlwZW9mIGZpeGVkLmlkID09PSAnc3RyaW5nJyA/IGZpeGVkLmlkIDogJyMnO1xuXG4gICAgICBvYmogPSBmaXhlZDtcblxuICAgICAgaWYgKG9iai4kcmVmICE9PSBpZCkge1xuICAgICAgICByZXR1cm4gY2xvbmUoZml4ZWQsIHJlZnMsIHRydWUsIGV4cGFuZCk7XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSBvYmouJHJlZjtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhKGtleSA9PT0gJ2VudW0nIHx8IGtleSA9PT0gJ3JlcXVpcmVkJykpIHtcbiAgICAgIGNvcHlba2V5XSA9IGNsb25lKHZhbHVlLCByZWZzLCB0cnVlLCBleHBhbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3B5W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiBzZXJpb3VzbHkgYXJlIHJlcXVpcmVkIG9yIG5vdD9cbiAgaWYgKGNoaWxkKSB7XG4gICAgaWYgKHR5cGVvZiBjb3B5LiRzY2hlbWEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZWxldGUgY29weS4kc2NoZW1hO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29weS5pZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRlbGV0ZSBjb3B5LmlkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iaiwgcmVmcywgZXhwYW5kKSB7XG4gIHJldHVybiBjbG9uZShvYmosIHJlZnMsIGZhbHNlLCBleHBhbmQpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGp0MzMvZWZiMmYxMTM0YmFiOTg2MTEzZmRcblxuZnVuY3Rpb24gVVJMVXRpbHModXJsLCBiYXNlVVJMKSB7XG4gIHZhciBtID0gU3RyaW5nKHVybCkucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpLm1hdGNoKC9eKFteOlxcLz8jXSs6KT8oPzpcXC9cXC8oPzooW146QF0qKSg/OjooW146QF0qKSk/QCk/KChbXjpcXC8/I10qKSg/OjooXFxkKikpPykpPyhbXj8jXSopKFxcP1teI10qKT8oI1tcXHNcXFNdKik/Lyk7XG4gIGlmICghbSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCk7XG4gIH1cbiAgdmFyIGhyZWYgPSBtWzBdIHx8ICcnO1xuICB2YXIgcHJvdG9jb2wgPSBtWzFdIHx8ICcnO1xuICB2YXIgdXNlcm5hbWUgPSBtWzJdIHx8ICcnO1xuICB2YXIgcGFzc3dvcmQgPSBtWzNdIHx8ICcnO1xuICB2YXIgaG9zdCA9IG1bNF0gfHwgJyc7XG4gIHZhciBob3N0bmFtZSA9IG1bNV0gfHwgJyc7XG4gIHZhciBwb3J0ID0gbVs2XSB8fCAnJztcbiAgdmFyIHBhdGhuYW1lID0gbVs3XSB8fCAnJztcbiAgdmFyIHNlYXJjaCA9IG1bOF0gfHwgJyc7XG4gIHZhciBoYXNoID0gbVs5XSB8fCAnJztcbiAgaWYgKGJhc2VVUkwgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBiYXNlID0gbmV3IFVSTFV0aWxzKGJhc2VVUkwpO1xuICAgIHZhciBmbGFnID0gcHJvdG9jb2wgPT09ICcnICYmIGhvc3QgPT09ICcnICYmIHVzZXJuYW1lID09PSAnJztcbiAgICBpZiAoZmxhZyAmJiBwYXRobmFtZSA9PT0gJycgJiYgc2VhcmNoID09PSAnJykge1xuICAgICAgc2VhcmNoID0gYmFzZS5zZWFyY2g7XG4gICAgfVxuICAgIGlmIChmbGFnICYmIHBhdGhuYW1lLmNoYXJBdCgwKSAhPT0gJy8nKSB7XG4gICAgICBwYXRobmFtZSA9IChwYXRobmFtZSAhPT0gJycgPyAoYmFzZS5wYXRobmFtZS5zbGljZSgwLCBiYXNlLnBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKSArIHBhdGhuYW1lKSA6IGJhc2UucGF0aG5hbWUpO1xuICAgIH1cbiAgICAvLyBkb3Qgc2VnbWVudHMgcmVtb3ZhbFxuICAgIHZhciBvdXRwdXQgPSBbXTtcblxuICAgIHBhdGhuYW1lLnJlcGxhY2UoL1xcLz9bXlxcL10rL2csIGZ1bmN0aW9uKHApIHtcbiAgICAgIGlmIChwID09PSAnLy4uJykge1xuICAgICAgICBvdXRwdXQucG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXQucHVzaChwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHBhdGhuYW1lID0gb3V0cHV0LmpvaW4oJycpIHx8ICcvJztcblxuICAgIGlmIChmbGFnKSB7XG4gICAgICBwb3J0ID0gYmFzZS5wb3J0O1xuICAgICAgaG9zdG5hbWUgPSBiYXNlLmhvc3RuYW1lO1xuICAgICAgaG9zdCA9IGJhc2UuaG9zdDtcbiAgICAgIHBhc3N3b3JkID0gYmFzZS5wYXNzd29yZDtcbiAgICAgIHVzZXJuYW1lID0gYmFzZS51c2VybmFtZTtcbiAgICB9XG4gICAgaWYgKHByb3RvY29sID09PSAnJykge1xuICAgICAgcHJvdG9jb2wgPSBiYXNlLnByb3RvY29sO1xuICAgIH1cbiAgICBocmVmID0gcHJvdG9jb2wgKyAoaG9zdCAhPT0gJycgPyAnLy8nIDogJycpICsgKHVzZXJuYW1lICE9PSAnJyA/IHVzZXJuYW1lICsgKHBhc3N3b3JkICE9PSAnJyA/ICc6JyArIHBhc3N3b3JkIDogJycpICsgJ0AnIDogJycpICsgaG9zdCArIHBhdGhuYW1lICsgc2VhcmNoICsgaGFzaDtcbiAgfVxuICB0aGlzLmhyZWYgPSBocmVmO1xuICB0aGlzLm9yaWdpbiA9IHByb3RvY29sICsgKGhvc3QgIT09ICcnID8gJy8vJyArIGhvc3QgOiAnJyk7XG4gIHRoaXMucHJvdG9jb2wgPSBwcm90b2NvbDtcbiAgdGhpcy51c2VybmFtZSA9IHVzZXJuYW1lO1xuICB0aGlzLnBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gIHRoaXMuaG9zdCA9IGhvc3Q7XG4gIHRoaXMuaG9zdG5hbWUgPSBob3N0bmFtZTtcbiAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgdGhpcy5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgdGhpcy5oYXNoID0gaGFzaDtcbn1cblxuZnVuY3Rpb24gaXNVUkwocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnICYmIC9eXFx3KzpcXC9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVVSSShocmVmLCBiYXNlKSB7XG4gIHJldHVybiBuZXcgVVJMVXRpbHMoaHJlZiwgYmFzZSk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVVUkwoYmFzZSwgaHJlZikge1xuICBiYXNlID0gYmFzZSB8fCAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWEjJztcblxuICBocmVmID0gcGFyc2VVUkkoaHJlZiwgYmFzZSk7XG4gIGJhc2UgPSBwYXJzZVVSSShiYXNlKTtcblxuICBpZiAoYmFzZS5oYXNoICYmICFocmVmLmhhc2gpIHtcbiAgICByZXR1cm4gaHJlZi5ocmVmICsgYmFzZS5oYXNoO1xuICB9XG5cbiAgcmV0dXJuIGhyZWYuaHJlZjtcbn1cblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRVUkkodXJpKSB7XG4gIHJldHVybiB0eXBlb2YgdXJpID09PSAnc3RyaW5nJyAmJiB1cmkuc3BsaXQoJyMnKVswXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGlzVVJMOiBpc1VSTCxcbiAgcGFyc2VVUkk6IHBhcnNlVVJJLFxuICByZXNvbHZlVVJMOiByZXNvbHZlVVJMLFxuICBnZXREb2N1bWVudFVSSTogZ2V0RG9jdW1lbnRVUklcbn07XG4iLCIvKlxuXG4gICB0aGlzIGluZGV4LmpzIGZpbGUgaXMgdXNlZCBmb3IgaW5jbHVkaW5nIHRoZSBmYWtlciBsaWJyYXJ5IGFzIGEgQ29tbW9uSlMgbW9kdWxlLCBpbnN0ZWFkIG9mIGEgYnVuZGxlXG5cbiAgIHlvdSBjYW4gaW5jbHVkZSB0aGUgZmFrZXIgbGlicmFyeSBpbnRvIHlvdXIgZXhpc3Rpbmcgbm9kZS5qcyBhcHBsaWNhdGlvbiBieSByZXF1aXJpbmcgdGhlIGVudGlyZSAvZmFrZXIgZGlyZWN0b3J5XG5cbiAgICB2YXIgZmFrZXIgPSByZXF1aXJlKC4vZmFrZXIpO1xuICAgIHZhciByYW5kb21OYW1lID0gZmFrZXIubmFtZS5maW5kTmFtZSgpO1xuXG4gICB5b3UgY2FuIGFsc28gc2ltcGx5IGluY2x1ZGUgdGhlIFwiZmFrZXIuanNcIiBmaWxlIHdoaWNoIGlzIHRoZSBhdXRvLWdlbmVyYXRlZCBidW5kbGVkIHZlcnNpb24gb2YgdGhlIGZha2VyIGxpYnJhcnlcblxuICAgIHZhciBmYWtlciA9IHJlcXVpcmUoLi9jdXN0b21BcHBQYXRoL2Zha2VyKTtcbiAgICB2YXIgcmFuZG9tTmFtZSA9IGZha2VyLm5hbWUuZmluZE5hbWUoKTtcblxuXG4gIGlmIHlvdSBwbGFuIG9uIG1vZGlmeWluZyB0aGUgZmFrZXIgbGlicmFyeSB5b3Ugc2hvdWxkIGJlIHBlcmZvcm1pbmcgeW91ciBjaGFuZ2VzIGluIHRoZSAvbGliLyBkaXJlY3RvcnlcblxuKi9cblxuZXhwb3J0cy5uYW1lID0gcmVxdWlyZSgnLi9saWIvbmFtZScpO1xuZXhwb3J0cy5hZGRyZXNzID0gcmVxdWlyZSgnLi9saWIvYWRkcmVzcycpO1xuZXhwb3J0cy5waG9uZSA9IHJlcXVpcmUoJy4vbGliL3Bob25lX251bWJlcicpO1xuZXhwb3J0cy5pbnRlcm5ldCA9IHJlcXVpcmUoJy4vbGliL2ludGVybmV0Jyk7XG5leHBvcnRzLmNvbXBhbnkgPSByZXF1aXJlKCcuL2xpYi9jb21wYW55Jyk7XG5leHBvcnRzLmltYWdlID0gcmVxdWlyZSgnLi9saWIvaW1hZ2UnKTtcbmV4cG9ydHMubG9yZW0gPSByZXF1aXJlKCcuL2xpYi9sb3JlbScpO1xuZXhwb3J0cy5oZWxwZXJzID0gIHJlcXVpcmUoJy4vbGliL2hlbHBlcnMnKTtcbmV4cG9ydHMuZGF0ZSA9IHJlcXVpcmUoJy4vbGliL2RhdGUnKTtcbmV4cG9ydHMucmFuZG9tID0gcmVxdWlyZSgnLi9saWIvcmFuZG9tJyk7XG5leHBvcnRzLmZpbmFuY2UgPSByZXF1aXJlKCcuL2xpYi9maW5hbmNlJyk7XG5leHBvcnRzLmhhY2tlciA9IHJlcXVpcmUoJy4vbGliL2hhY2tlcicpO1xuXG52YXIgbG9jYWxlcyA9IGV4cG9ydHMubG9jYWxlcyA9IHJlcXVpcmUoJy4vbGliL2xvY2FsZXMnKTtcblxuLy8gZGVmYXVsdCBsb2NhbGVcbmV4cG9ydHMubG9jYWxlID0gXCJlblwiO1xuXG4vLyBpbiBjYXNlIGEgbG9jYWxlIGlzIG1pc3NpbmcgYSBkZWZpbml0aW9uLCBmYWxsYmFjayB0byB0aGlzIGxvY2FsZVxuZXhwb3J0cy5sb2NhbGVGYWxsYmFjayA9IFwiZW5cIjtcblxuZXhwb3J0cy5kZWZpbml0aW9ucyA9IHt9O1xuXG52YXIgX2RlZmluaXRpb25zID0ge1xuICBcIm5hbWVcIjogW1wiZmlyc3RfbmFtZVwiLCBcImxhc3RfbmFtZVwiLCBcInByZWZpeFwiLCBcInN1ZmZpeFwiXSxcbiAgXCJhZGRyZXNzXCI6IFtcImNpdHlfcHJlZml4XCIsIFwiY2l0eV9zdWZmaXhcIiwgXCJzdHJlZXRfc3VmZml4XCIsIFwiY291bnR5XCIsIFwiY291bnRyeVwiLCBcInN0YXRlXCIsIFwic3RhdGVfYWJiclwiXSxcbiAgXCJjb21wYW55XCI6IFtcImFkamVjdGl2ZVwiLCBcIm5vdW5cIiwgXCJkZXNjcmlwdG9yXCIsIFwiYnNfYWRqZWN0aXZlXCIsIFwiYnNfbm91blwiLCBcImJzX3ZlcmJcIl0sXG4gIFwibG9yZW1cIjogW1wid29yZHNcIl0sXG4gIFwiaGFja2VyXCI6IFtcImFiYnJldmlhdGlvblwiLCBcImFkamVjdGl2ZVwiLCBcIm5vdW5cIiwgXCJ2ZXJiXCIsIFwiaW5ndmVyYlwiXSxcbiAgXCJwaG9uZV9udW1iZXJcIjogW1wiZm9ybWF0c1wiXSxcbiAgXCJmaW5hbmNlXCI6IFtcImFjY291bnRfdHlwZVwiLCBcInRyYW5zYWN0aW9uX3R5cGVcIiwgXCJjdXJyZW5jeVwiXSxcbiAgXCJpbnRlcm5ldFwiOiBbXCJhdmF0YXJfdXJpXCIsIFwiZG9tYWluX3N1ZmZpeFwiLCBcImZyZWVfZW1haWxcIiwgXCJwYXNzd29yZFwiXVxufTtcblxuLy8gQ3JlYXRlIGEgR2V0dGVyIGZvciBhbGwgZGVmaW5pdGlvbnMuZm9vLmJhciBwcm9wZXRyaWVzXG5PYmplY3Qua2V5cyhfZGVmaW5pdGlvbnMpLmZvckVhY2goZnVuY3Rpb24oZCl7XG4gIGlmICh0eXBlb2YgZXhwb3J0cy5kZWZpbml0aW9uc1tkXSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGV4cG9ydHMuZGVmaW5pdGlvbnNbZF0gPSB7fTtcbiAgfVxuICBfZGVmaW5pdGlvbnNbZF0uZm9yRWFjaChmdW5jdGlvbihwKXtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZpbml0aW9uc1tkXSwgcCwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbG9jYWxlc1tleHBvcnRzLmxvY2FsZV1bZF0gPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mIGxvY2FsZXNbZXhwb3J0cy5sb2NhbGVdW2RdW3BdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgLy8gY2VydGFpbiBsb2NhbGl6YXRpb24gc2V0cyBjb250YWluIGxlc3MgZGF0YSB0aGVuIG90aGVycy5cbiAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBvZiBhIG1pc3NpbmcgZGVmaW50aW9uLCB1c2UgdGhlIGRlZmF1bHQgbG9jYWxlRmFsbGJhY2sgdG8gc3Vic3RpdHV0ZSB0aGUgbWlzc2luZyBzZXQgZGF0YVxuICAgICAgICAgIHJldHVybiBsb2NhbGVzW2V4cG9ydHMubG9jYWxlRmFsbGJhY2tdW2RdW3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHJldHVybiBsb2NhbGl6ZWQgZGF0YVxuICAgICAgICAgIHJldHVybiBsb2NhbGVzW2V4cG9ydHMubG9jYWxlXVtkXVtwXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pOyIsInZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG52YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgYWRkcmVzcyA9IHtcbiAgICB6aXBDb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KFtcIiMjIyMjXCIsICcjIyMjIy0jIyMjJ10pKTtcbiAgICB9LFxuXG4gICAgY2l0eTogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMykpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIuYWRkcmVzcy5jaXR5UHJlZml4KCkgKyBcIiBcIiArIGZha2VyLm5hbWUuZmlyc3ROYW1lKCkgKyBmYWtlci5hZGRyZXNzLmNpdHlTdWZmaXgoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXN1bHQgPSBmYWtlci5hZGRyZXNzLmNpdHlQcmVmaXgoKSArIFwiIFwiICsgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXN1bHQgPSBmYWtlci5uYW1lLmZpcnN0TmFtZSgpICsgZmFrZXIuYWRkcmVzcy5jaXR5U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgZmFrZXIuYWRkcmVzcy5jaXR5U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICBjaXR5UHJlZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5jaXR5X3ByZWZpeCk7XG4gICAgfSxcblxuICAgIGNpdHlTdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNpdHlfc3VmZml4KTtcbiAgICB9LFxuXG4gICAgc3RyZWV0TmFtZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMSkpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCIgXCIgKyBmYWtlci5hZGRyZXNzLnN0cmVldFN1ZmZpeCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJlc3VsdCA9IGZha2VyLm5hbWUuZmlyc3ROYW1lKCkgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICAvL1xuICAgIC8vIFRPRE86IGNoYW5nZSBhbGwgdGhlc2UgbWV0aG9kcyB0aGF0IGFjY2VwdCBhIGJvb2xlYW4gdG8gaW5zdGVhZCBhY2NlcHQgYW4gb3B0aW9ucyBoYXNoLlxuICAgIC8vXG4gICAgc3RyZWV0QWRkcmVzczogZnVuY3Rpb24gKHVzZUZ1bGxBZGRyZXNzKSB7XG4gICAgICAgIGlmICh1c2VGdWxsQWRkcmVzcyA9PT0gdW5kZWZpbmVkKSB7IHVzZUZ1bGxBZGRyZXNzID0gZmFsc2U7IH1cbiAgICAgICAgdmFyIGFkZHJlc3MgPSBcIlwiO1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMikpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyMjI1wiKSArIFwiIFwiICsgZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyMjXCIpICsgIFwiIFwiICsgZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyNcIikgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0TmFtZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZUZ1bGxBZGRyZXNzID8gKGFkZHJlc3MgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpKSA6IGFkZHJlc3M7XG4gICAgfSxcblxuICAgIHN0cmVldFN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5zdHJlZXRfc3VmZml4KTtcbiAgICB9LFxuXG4gICAgc2Vjb25kYXJ5QWRkcmVzczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gSGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnQXB0LiAjIyMnLFxuICAgICAgICAgICAgICAgICdTdWl0ZSAjIyMnXG4gICAgICAgICAgICBdXG4gICAgICAgICkpO1xuICAgIH0sXG5cbiAgICBjb3VudHk6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNvdW50eSk7XG4gICAgfSxcblxuICAgIGNvdW50cnk6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNvdW50cnkpO1xuICAgIH0sXG5cbiAgICBzdGF0ZTogZnVuY3Rpb24gKHVzZUFiYnIpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3Muc3RhdGUpO1xuICAgIH0sXG5cbiAgICBzdGF0ZUFiYnI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3Muc3RhdGVfYWJicik7XG4gICAgfSxcblxuICAgIGxhdGl0dWRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoZmFrZXIucmFuZG9tLm51bWJlcigxODAgKiAxMDAwMCkgLyAxMDAwMC4wIC0gOTAuMCkudG9GaXhlZCg0KTtcbiAgICB9LFxuXG4gICAgbG9uZ2l0dWRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoZmFrZXIucmFuZG9tLm51bWJlcigzNjAgKiAxMDAwMCkgLyAxMDAwMC4wIC0gMTgwLjApLnRvRml4ZWQoNCk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBhZGRyZXNzO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGNvbXBhbnkgPSB7XG5cbiAgICBzdWZmaXhlczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gW1wiSW5jXCIsIFwiYW5kIFNvbnNcIiwgXCJMTENcIiwgXCJHcm91cFwiLCBcImFuZCBEYXVnaHRlcnNcIl07XG4gICAgfSxcblxuICAgIGNvbXBhbnlOYW1lOiBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHN3aXRjaCAoKGZvcm1hdCA/IGZvcm1hdCA6IGZha2VyLnJhbmRvbS5udW1iZXIoMikpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHJldHVybiBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiBcIiArIGZha2VyLmNvbXBhbnkuY29tcGFueVN1ZmZpeCgpO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCItXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiwgXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiBhbmQgXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcGFueVN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuY29tcGFueS5zdWZmaXhlcygpKTtcbiAgICB9LFxuXG4gICAgY2F0Y2hQaHJhc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2VBZGplY3RpdmUoKSArIFwiIFwiICtcbiAgICAgICAgICAgIGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2VEZXNjcmlwdG9yKCkgKyBcIiBcIiArXG4gICAgICAgICAgICBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlTm91bigpO1xuICAgIH0sXG5cbiAgICBiczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIuY29tcGFueS5ic0FkamVjdGl2ZSgpICsgXCIgXCIgK1xuICAgICAgICAgICAgZmFrZXIuY29tcGFueS5ic0J1enooKSArIFwiIFwiICtcbiAgICAgICAgICAgIGZha2VyLmNvbXBhbnkuYnNOb3VuKCk7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlQWRqZWN0aXZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5jb21wYW55LmFkamVjdGl2ZSk7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlRGVzY3JpcHRvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5kZXNjcmlwdG9yKTtcbiAgICB9LFxuXG4gICAgY2F0Y2hQaHJhc2VOb3VuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5jb21wYW55Lm5vdW4pO1xuICAgIH0sXG5cbiAgICBic0FkamVjdGl2ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5ic19hZGplY3RpdmUpO1xuICAgIH0sXG5cbiAgICBic0J1eno6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmNvbXBhbnkuYnNfdmVyYik7XG4gICAgfSxcblxuICAgIGJzTm91bjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5ic19ub3VuKTtcbiAgICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcGFueTtcbiIsInZhciBmYWtlciA9IHJlcXVpcmUoXCIuLi9pbmRleFwiKTtcblxudmFyIGRhdGUgPSB7XG5cbiAgICBwYXN0OiBmdW5jdGlvbiAoeWVhcnMsIHJlZkRhdGUpIHtcbiAgICAgICAgdmFyIGRhdGUgPSAocmVmRGF0ZSkgPyBuZXcgRGF0ZShEYXRlLnBhcnNlKHJlZkRhdGUpKSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIHZhciByYW5nZSA9IHtcbiAgICAgICAgICBtaW46IDEwMDAsXG4gICAgICAgICAgbWF4OiAoeWVhcnMgfHwgMSkgKiAzNjUgKiAyNCAqIDM2MDAgKiAxMDAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHBhc3QgPSBkYXRlLmdldFRpbWUoKTtcbiAgICAgICAgcGFzdCAtPSBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKTsgLy8gc29tZSB0aW1lIGZyb20gbm93IHRvIE4geWVhcnMgYWdvLCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgZGF0ZS5zZXRUaW1lKHBhc3QpO1xuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH0sXG5cbiAgICBmdXR1cmU6IGZ1bmN0aW9uICh5ZWFycywgcmVmRGF0ZSkge1xuICAgICAgICB2YXIgZGF0ZSA9IChyZWZEYXRlKSA/IG5ldyBEYXRlKERhdGUucGFyc2UocmVmRGF0ZSkpIDogbmV3IERhdGUoKTtcbiAgICAgICAgdmFyIHJhbmdlID0ge1xuICAgICAgICAgIG1pbjogMTAwMCxcbiAgICAgICAgICBtYXg6ICh5ZWFycyB8fCAxKSAqIDM2NSAqIDI0ICogMzYwMCAqIDEwMDBcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZnV0dXJlID0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGZ1dHVyZSArPSBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKTsgLy8gc29tZSB0aW1lIGZyb20gbm93IHRvIE4geWVhcnMgbGF0ZXIsIGluIG1pbGxpc2Vjb25kc1xuICAgICAgICBkYXRlLnNldFRpbWUoZnV0dXJlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9LFxuXG4gICAgYmV0d2VlbjogZnVuY3Rpb24gKGZyb20sIHRvKSB7XG4gICAgICAgIHZhciBmcm9tTWlsbGkgPSBEYXRlLnBhcnNlKGZyb20pO1xuICAgICAgICB2YXIgZGF0ZU9mZnNldCA9IGZha2VyLnJhbmRvbS5udW1iZXIoRGF0ZS5wYXJzZSh0bykgLSBmcm9tTWlsbGkpO1xuXG4gICAgICAgIHZhciBuZXdEYXRlID0gbmV3IERhdGUoZnJvbU1pbGxpICsgZGF0ZU9mZnNldCk7XG5cbiAgICAgICAgcmV0dXJuIG5ld0RhdGU7XG4gICAgfSxcblxuICAgIHJlY2VudDogZnVuY3Rpb24gKGRheXMpIHtcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB2YXIgcmFuZ2UgPSB7XG4gICAgICAgICAgbWluOiAxMDAwLFxuICAgICAgICAgIG1heDogKGRheXMgfHwgMSkgKiAyNCAqIDM2MDAgKiAxMDAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZ1dHVyZSA9IGRhdGUuZ2V0VGltZSgpO1xuICAgICAgICBmdXR1cmUgLT0gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7IC8vIHNvbWUgdGltZSBmcm9tIG5vdyB0byBOIGRheXMgYWdvLCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgZGF0ZS5zZXRUaW1lKGZ1dHVyZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxufTtcbm1vZHVsZS5leHBvcnRzID0gZGF0ZTtcbiIsInZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyksXG4gICAgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgZmluYW5jZSA9IHtcblxuICAgIGFjY291bnQ6IGZ1bmN0aW9uIChsZW5ndGgpIHtcblxuICAgICAgICBsZW5ndGggPSBsZW5ndGggfHwgODtcblxuICAgICAgICB2YXIgdGVtcGxhdGUgPSAnJztcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IHRlbXBsYXRlICsgJyMnO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aCA9IG51bGw7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKHRlbXBsYXRlKTtcbiAgICB9LFxuXG4gICAgYWNjb3VudE5hbWU6IGZ1bmN0aW9uICgpIHtcblxuICAgICAgICByZXR1cm4gW0hlbHBlcnMucmFuZG9taXplKGZha2VyLmRlZmluaXRpb25zLmZpbmFuY2UuYWNjb3VudF90eXBlKSwgJ0FjY291bnQnXS5qb2luKCcgJyk7XG4gICAgfSxcblxuICAgIG1hc2s6IGZ1bmN0aW9uIChsZW5ndGgsIHBhcmVucywgZWxpcHNpcykge1xuXG5cbiAgICAgICAgLy9zZXQgZGVmYXVsdHNcbiAgICAgICAgbGVuZ3RoID0gKGxlbmd0aCA9PSAwIHx8ICFsZW5ndGggfHwgdHlwZW9mIGxlbmd0aCA9PSAndW5kZWZpbmVkJykgPyA0IDogbGVuZ3RoO1xuICAgICAgICBwYXJlbnMgPSAocGFyZW5zID09PSBudWxsKSA/IHRydWUgOiBwYXJlbnM7XG4gICAgICAgIGVsaXBzaXMgPSAoZWxpcHNpcyA9PT0gbnVsbCkgPyB0cnVlIDogZWxpcHNpcztcblxuICAgICAgICAvL2NyZWF0ZSBhIHRlbXBsYXRlIGZvciBsZW5ndGhcbiAgICAgICAgdmFyIHRlbXBsYXRlID0gJyc7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZSArICcjJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vcHJlZml4IHdpdGggZWxpcHNpc1xuICAgICAgICB0ZW1wbGF0ZSA9IChlbGlwc2lzKSA/IFsnLi4uJywgdGVtcGxhdGVdLmpvaW4oJycpIDogdGVtcGxhdGU7XG5cbiAgICAgICAgdGVtcGxhdGUgPSAocGFyZW5zKSA/IFsnKCcsIHRlbXBsYXRlLCAnKSddLmpvaW4oJycpIDogdGVtcGxhdGU7XG5cbiAgICAgICAgLy9nZW5lcmF0ZSByYW5kb20gbnVtYmVyc1xuICAgICAgICB0ZW1wbGF0ZSA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIodGVtcGxhdGUpO1xuXG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZTtcblxuICAgIH0sXG5cbiAgICAvL21pbiBhbmQgbWF4IHRha2UgaW4gbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnRzLCBkZWMgaXMgdGhlIGRlY2ltYWwgcGxhY2UgeW91IHdhbnQgcm91bmRlZCB0bywgc3ltYm9sIGlzICQsIOKCrCwgwqMsIGV0Y1xuICAgIC8vTk9URTogdGhpcyByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSwgaWYgeW91IHdhbnQgYSBudW1iZXIgdXNlIHBhcnNlRmxvYXQgYW5kIG5vIHN5bWJvbFxuXG4gICAgYW1vdW50OiBmdW5jdGlvbiAobWluLCBtYXgsIGRlYywgc3ltYm9sKSB7XG5cbiAgICAgICAgbWluID0gbWluIHx8IDA7XG4gICAgICAgIG1heCA9IG1heCB8fCAxMDAwO1xuICAgICAgICBkZWMgPSBkZWMgfHwgMjtcbiAgICAgICAgc3ltYm9sID0gc3ltYm9sIHx8ICcnO1xuXG4gICAgICAgIHJldHVybiBzeW1ib2wgKyAoTWF0aC5yb3VuZCgoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluKSAqIE1hdGgucG93KDEwLCBkZWMpKSAvIE1hdGgucG93KDEwLCBkZWMpKS50b0ZpeGVkKGRlYyk7XG5cbiAgICB9LFxuXG4gICAgdHJhbnNhY3Rpb25UeXBlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJhbmRvbWl6ZShmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUpO1xuICAgIH0sXG5cbiAgICBjdXJyZW5jeUNvZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5KVsnY29kZSddO1xuICAgIH0sXG5cbiAgICBjdXJyZW5jeU5hbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5LCAna2V5Jyk7XG4gICAgfSxcblxuICAgIGN1cnJlbmN5U3ltYm9sOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzeW1ib2w7XG5cbiAgICAgICAgd2hpbGUgKCFzeW1ib2wpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5KVsnc3ltYm9sJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN5bWJvbDtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbmFuY2U7IiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGhhY2tlciA9IHtcblxuICBhYmJyZXZpYXRpb24gOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci5hYmJyZXZpYXRpb24pO1xuICB9LFxuXG4gIGFkamVjdGl2ZSA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaGFja2VyLmFkamVjdGl2ZSk7XG4gIH0sXG5cbiAgbm91biA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaGFja2VyLm5vdW4pO1xuICB9LFxuXG4gIHZlcmIgOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci52ZXJiKTtcbiAgfSxcblxuICBpbmd2ZXJiIDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5oYWNrZXIuaW5ndmVyYik7XG4gIH0sXG5cbiAgcGhyYXNlIDogZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGRhdGEgPSB7XG4gICAgICBhYmJyZXZpYXRpb246IGhhY2tlci5hYmJyZXZpYXRpb24oKSxcbiAgICAgIGFkamVjdGl2ZTogaGFja2VyLmFkamVjdGl2ZSgpLFxuICAgICAgaW5ndmVyYjogaGFja2VyLmluZ3ZlcmIoKSxcbiAgICAgIG5vdW46IGhhY2tlci5ub3VuKCksXG4gICAgICB2ZXJiOiBoYWNrZXIudmVyYigpXG4gICAgfTtcblxuICAgIHZhciBwaHJhc2UgPSBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbIFwiSWYgd2Uge3t2ZXJifX0gdGhlIHt7bm91bn19LCB3ZSBjYW4gZ2V0IHRvIHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IHRocm91Z2ggdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSFcIixcbiAgICAgIFwiV2UgbmVlZCB0byB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJUcnkgdG8ge3t2ZXJifX0gdGhlIHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0sIG1heWJlIGl0IHdpbGwge3t2ZXJifX0gdGhlIHt7YWRqZWN0aXZlfX0ge3tub3VufX0hXCIsXG4gICAgICBcIllvdSBjYW4ndCB7e3ZlcmJ9fSB0aGUge3tub3VufX0gd2l0aG91dCB7e2luZ3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJVc2UgdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSwgdGhlbiB5b3UgY2FuIHt7dmVyYn19IHRoZSB7e2FkamVjdGl2ZX19IHt7bm91bn19IVwiLFxuICAgICAgXCJUaGUge3thYmJyZXZpYXRpb259fSB7e25vdW59fSBpcyBkb3duLCB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e25vdW59fSBzbyB3ZSBjYW4ge3t2ZXJifX0gdGhlIHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0hXCIsXG4gICAgICBcInt7aW5ndmVyYn19IHRoZSB7e25vdW59fSB3b24ndCBkbyBhbnl0aGluZywgd2UgbmVlZCB0byB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJJJ2xsIHt7dmVyYn19IHRoZSB7e2FkamVjdGl2ZX19IHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0sIHRoYXQgc2hvdWxkIHt7bm91bn19IHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiXG4gICBdKTtcblxuICAgcmV0dXJuIGZha2VyLmhlbHBlcnMubXVzdGFjaGUocGhyYXNlLCBkYXRhKTtcblxuICB9LFxuXG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaGFja2VyO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxuLy8gYmFja3dvcmQtY29tcGF0aWJpbGl0eVxuZXhwb3J0cy5yYW5kb21OdW1iZXIgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7XG59O1xuXG4vLyBiYWNrd29yZC1jb21wYXRpYmlsaXR5XG5leHBvcnRzLnJhbmRvbWl6ZSA9IGZ1bmN0aW9uIChhcnJheSkge1xuICAgIGFycmF5ID0gYXJyYXkgfHwgW1wiYVwiLCBcImJcIiwgXCJjXCJdO1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChhcnJheSk7XG59O1xuXG4vLyBzbHVnaWZpZXMgc3RyaW5nXG5leHBvcnRzLnNsdWdpZnkgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgc3RyaW5nID0gc3RyaW5nIHx8IFwiXCI7XG4gICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8gL2csICctJykucmVwbGFjZSgvW15cXHdcXC5cXC1dKy9nLCAnJyk7XG59O1xuXG4vLyBwYXJzZXMgc3RyaW5nIGZvciBhIHN5bWJvbCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcmFuZG9tIG51bWJlciBmcm9tIDEtMTBcbmV4cG9ydHMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIgPSBmdW5jdGlvbiAoc3RyaW5nLCBzeW1ib2wpIHtcbiAgICBzdHJpbmcgPSBzdHJpbmcgfHwgXCJcIjtcbiAgICAvLyBkZWZhdWx0IHN5bWJvbCBpcyAnIydcbiAgICBpZiAoc3ltYm9sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3ltYm9sID0gJyMnO1xuICAgIH1cblxuICAgIHZhciBzdHIgPSAnJztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc3RyaW5nLmNoYXJBdChpKSA9PSBzeW1ib2wpIHtcbiAgICAgICAgICAgIHN0ciArPSBmYWtlci5yYW5kb20ubnVtYmVyKDkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RyICs9IHN0cmluZy5jaGFyQXQoaSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbn07XG5cbi8vIHRha2VzIGFuIGFycmF5IGFuZCByZXR1cm5zIGl0IHJhbmRvbWl6ZWRcbmV4cG9ydHMuc2h1ZmZsZSA9IGZ1bmN0aW9uIChvKSB7XG4gICAgbyA9IG8gfHwgW1wiYVwiLCBcImJcIiwgXCJjXCJdO1xuICAgIGZvciAodmFyIGosIHgsIGkgPSBvLmxlbmd0aC0xOyBpOyBqID0gZmFrZXIucmFuZG9tLm51bWJlcihpKSwgeCA9IG9bLS1pXSwgb1tpXSA9IG9bal0sIG9bal0gPSB4KTtcbiAgICByZXR1cm4gbztcbn07XG5cbmV4cG9ydHMubXVzdGFjaGUgPSBmdW5jdGlvbiAoc3RyLCBkYXRhKSB7XG4gIGZvcih2YXIgcCBpbiBkYXRhKSB7XG4gICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgne3snICsgcCArICd9fScsICdnJylcbiAgICBzdHIgPSBzdHIucmVwbGFjZShyZSwgZGF0YVtwXSk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn07XG5cbmV4cG9ydHMuY3JlYXRlQ2FyZCA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBcIm5hbWVcIjogZmFrZXIubmFtZS5maW5kTmFtZSgpLFxuICAgICAgICBcInVzZXJuYW1lXCI6IGZha2VyLmludGVybmV0LnVzZXJOYW1lKCksXG4gICAgICAgIFwiZW1haWxcIjogZmFrZXIuaW50ZXJuZXQuZW1haWwoKSxcbiAgICAgICAgXCJhZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwic3RyZWV0QVwiOiBmYWtlci5hZGRyZXNzLnN0cmVldE5hbWUoKSxcbiAgICAgICAgICAgIFwic3RyZWV0QlwiOiBmYWtlci5hZGRyZXNzLnN0cmVldEFkZHJlc3MoKSxcbiAgICAgICAgICAgIFwic3RyZWV0Q1wiOiBmYWtlci5hZGRyZXNzLnN0cmVldEFkZHJlc3ModHJ1ZSksXG4gICAgICAgICAgICBcInN0cmVldERcIjogZmFrZXIuYWRkcmVzcy5zZWNvbmRhcnlBZGRyZXNzKCksXG4gICAgICAgICAgICBcImNpdHlcIjogZmFrZXIuYWRkcmVzcy5jaXR5KCksXG4gICAgICAgICAgICBcInN0YXRlXCI6IGZha2VyLmFkZHJlc3Muc3RhdGUoKSxcbiAgICAgICAgICAgIFwiY291bnRyeVwiOiBmYWtlci5hZGRyZXNzLmNvdW50cnkoKSxcbiAgICAgICAgICAgIFwiemlwY29kZVwiOiBmYWtlci5hZGRyZXNzLnppcENvZGUoKSxcbiAgICAgICAgICAgIFwiZ2VvXCI6IHtcbiAgICAgICAgICAgICAgICBcImxhdFwiOiBmYWtlci5hZGRyZXNzLmxhdGl0dWRlKCksXG4gICAgICAgICAgICAgICAgXCJsbmdcIjogZmFrZXIuYWRkcmVzcy5sb25naXR1ZGUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBob25lXCI6IGZha2VyLnBob25lLnBob25lTnVtYmVyKCksXG4gICAgICAgIFwid2Vic2l0ZVwiOiBmYWtlci5pbnRlcm5ldC5kb21haW5OYW1lKCksXG4gICAgICAgIFwiY29tcGFueVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgICAgICAgICAgXCJjYXRjaFBocmFzZVwiOiBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlKCksXG4gICAgICAgICAgICBcImJzXCI6IGZha2VyLmNvbXBhbnkuYnMoKVxuICAgICAgICB9LFxuICAgICAgICBcInBvc3RzXCI6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIndvcmRzXCI6IGZha2VyLmxvcmVtLndvcmRzKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZVwiOiBmYWtlci5sb3JlbS5zZW50ZW5jZSgpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VzXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlcygpLFxuICAgICAgICAgICAgICAgIFwicGFyYWdyYXBoXCI6IGZha2VyLmxvcmVtLnBhcmFncmFwaCgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwid29yZHNcIjogZmFrZXIubG9yZW0ud29yZHMoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZXNcIjogZmFrZXIubG9yZW0uc2VudGVuY2VzKCksXG4gICAgICAgICAgICAgICAgXCJwYXJhZ3JhcGhcIjogZmFrZXIubG9yZW0ucGFyYWdyYXBoKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJ3b3Jkc1wiOiBmYWtlci5sb3JlbS53b3JkcygpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VcIjogZmFrZXIubG9yZW0uc2VudGVuY2UoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlc1wiOiBmYWtlci5sb3JlbS5zZW50ZW5jZXMoKSxcbiAgICAgICAgICAgICAgICBcInBhcmFncmFwaFwiOiBmYWtlci5sb3JlbS5wYXJhZ3JhcGgoKVxuICAgICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBcImFjY291bnRIaXN0b3J5XCI6IFtmYWtlci5oZWxwZXJzLmNyZWF0ZVRyYW5zYWN0aW9uKCksIGZha2VyLmhlbHBlcnMuY3JlYXRlVHJhbnNhY3Rpb24oKSwgZmFrZXIuaGVscGVycy5jcmVhdGVUcmFuc2FjdGlvbigpXVxuICAgIH07XG59O1xuXG5leHBvcnRzLmNvbnRleHR1YWxDYXJkID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbmFtZSA9IGZha2VyLm5hbWUuZmlyc3ROYW1lKCksXG4gICAgICB1c2VyTmFtZSA9IGZha2VyLmludGVybmV0LnVzZXJOYW1lKG5hbWUpO1xuICByZXR1cm4ge1xuICAgICAgXCJuYW1lXCI6IG5hbWUsXG4gICAgICBcInVzZXJuYW1lXCI6IHVzZXJOYW1lLFxuICAgICAgXCJhdmF0YXJcIjogZmFrZXIuaW50ZXJuZXQuYXZhdGFyKCksXG4gICAgICBcImVtYWlsXCI6IGZha2VyLmludGVybmV0LmVtYWlsKHVzZXJOYW1lKSxcbiAgICAgIFwiZG9iXCI6IGZha2VyLmRhdGUucGFzdCg1MCwgbmV3IERhdGUoXCJTYXQgU2VwIDIwIDE5OTIgMjE6MzU6MDIgR01UKzAyMDAgKENFU1QpXCIpKSxcbiAgICAgIFwicGhvbmVcIjogZmFrZXIucGhvbmUucGhvbmVOdW1iZXIoKSxcbiAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgXCJzdHJlZXRcIjogZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKHRydWUpLFxuICAgICAgICAgIFwic3VpdGVcIjogZmFrZXIuYWRkcmVzcy5zZWNvbmRhcnlBZGRyZXNzKCksXG4gICAgICAgICAgXCJjaXR5XCI6IGZha2VyLmFkZHJlc3MuY2l0eSgpLFxuICAgICAgICAgIFwiemlwY29kZVwiOiBmYWtlci5hZGRyZXNzLnppcENvZGUoKSxcbiAgICAgICAgICBcImdlb1wiOiB7XG4gICAgICAgICAgICAgIFwibGF0XCI6IGZha2VyLmFkZHJlc3MubGF0aXR1ZGUoKSxcbiAgICAgICAgICAgICAgXCJsbmdcIjogZmFrZXIuYWRkcmVzcy5sb25naXR1ZGUoKVxuICAgICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndlYnNpdGVcIjogZmFrZXIuaW50ZXJuZXQuZG9tYWluTmFtZSgpLFxuICAgICAgXCJjb21wYW55XCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgICAgICAgIFwiY2F0Y2hQaHJhc2VcIjogZmFrZXIuY29tcGFueS5jYXRjaFBocmFzZSgpLFxuICAgICAgICAgIFwiYnNcIjogZmFrZXIuY29tcGFueS5icygpXG4gICAgICB9XG4gIH07XG59O1xuXG5cbmV4cG9ydHMudXNlckNhcmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgXCJuYW1lXCI6IGZha2VyLm5hbWUuZmluZE5hbWUoKSxcbiAgICAgICAgXCJ1c2VybmFtZVwiOiBmYWtlci5pbnRlcm5ldC51c2VyTmFtZSgpLFxuICAgICAgICBcImVtYWlsXCI6IGZha2VyLmludGVybmV0LmVtYWlsKCksXG4gICAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcInN0cmVldFwiOiBmYWtlci5hZGRyZXNzLnN0cmVldE5hbWUodHJ1ZSksXG4gICAgICAgICAgICBcInN1aXRlXCI6IGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpLFxuICAgICAgICAgICAgXCJjaXR5XCI6IGZha2VyLmFkZHJlc3MuY2l0eSgpLFxuICAgICAgICAgICAgXCJ6aXBjb2RlXCI6IGZha2VyLmFkZHJlc3MuemlwQ29kZSgpLFxuICAgICAgICAgICAgXCJnZW9cIjoge1xuICAgICAgICAgICAgICAgIFwibGF0XCI6IGZha2VyLmFkZHJlc3MubGF0aXR1ZGUoKSxcbiAgICAgICAgICAgICAgICBcImxuZ1wiOiBmYWtlci5hZGRyZXNzLmxvbmdpdHVkZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGhvbmVcIjogZmFrZXIucGhvbmUucGhvbmVOdW1iZXIoKSxcbiAgICAgICAgXCJ3ZWJzaXRlXCI6IGZha2VyLmludGVybmV0LmRvbWFpbk5hbWUoKSxcbiAgICAgICAgXCJjb21wYW55XCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBmYWtlci5jb21wYW55LmNvbXBhbnlOYW1lKCksXG4gICAgICAgICAgICBcImNhdGNoUGhyYXNlXCI6IGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2UoKSxcbiAgICAgICAgICAgIFwiYnNcIjogZmFrZXIuY29tcGFueS5icygpXG4gICAgICAgIH1cbiAgICB9O1xufTtcblxuZXhwb3J0cy5jcmVhdGVUcmFuc2FjdGlvbiA9IGZ1bmN0aW9uKCl7XG4gIHJldHVybiB7XG4gICAgXCJhbW91bnRcIiA6IGZha2VyLmZpbmFuY2UuYW1vdW50KCksXG4gICAgXCJkYXRlXCIgOiBuZXcgRGF0ZSgyMDEyLCAxLCAyKSwgIC8vVE9ETzogYWRkIGEgcmFuZ2VkIGRhdGUgbWV0aG9kXG4gICAgXCJidXNpbmVzc1wiOiBmYWtlci5jb21wYW55LmNvbXBhbnlOYW1lKCksXG4gICAgXCJuYW1lXCI6IFtmYWtlci5maW5hbmNlLmFjY291bnROYW1lKCksIGZha2VyLmZpbmFuY2UubWFzaygpXS5qb2luKCcgJyksXG4gICAgXCJ0eXBlXCIgOiBleHBvcnRzLnJhbmRvbWl6ZShmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUpLFxuICAgIFwiYWNjb3VudFwiIDogZmFrZXIuZmluYW5jZS5hY2NvdW50KClcbiAgfTtcbn07XG5cbi8qXG5TdHJpbmcucHJvdG90eXBlLmNhcGl0YWxpemUgPSBmdW5jdGlvbiAoKSB7IC8vdjEuMFxuICAgIHJldHVybiB0aGlzLnJlcGxhY2UoL1xcdysvZywgZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIGEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBhLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xufTtcbiovXG5cbiIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbnZhciBpbWFnZSA9IHtcbiAgaW1hZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY2F0ZWdvcmllcyA9IFtcImFic3RyYWN0XCIsIFwiYW5pbWFsc1wiLCBcImJ1c2luZXNzXCIsIFwiY2F0c1wiLCBcImNpdHlcIiwgXCJmb29kXCIsIFwibmlnaHRsaWZlXCIsIFwiZmFzaGlvblwiLCBcInBlb3BsZVwiLCBcIm5hdHVyZVwiLCBcInNwb3J0c1wiLCBcInRlY2huaWNzXCIsIFwidHJhbnNwb3J0XCJdO1xuICAgIHJldHVybiBpbWFnZVtmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChjYXRlZ29yaWVzKV0oKTtcbiAgfSxcbiAgYXZhdGFyOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLmludGVybmV0LmF2YXRhcigpO1xuICB9LFxuICBpbWFnZVVybDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIGNhdGVnb3J5KSB7XG4gICAgICB2YXIgd2lkdGggPSB3aWR0aCB8fCA2NDA7XG4gICAgICB2YXIgaGVpZ2h0ID0gaGVpZ2h0IHx8IDQ4MDtcblxuICAgICAgdmFyIHVybCA9J2h0dHA6Ly9sb3JlbXBpeGVsLmNvbS8nICsgd2lkdGggKyAnLycgKyBoZWlnaHQ7XG4gICAgICBpZiAodHlwZW9mIGNhdGVnb3J5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB1cmwgKz0gJy8nICsgY2F0ZWdvcnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXJsO1xuICB9LFxuICBhYnN0cmFjdDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2Fic3RyYWN0Jyk7XG4gIH0sXG4gIGFuaW1hbHM6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdhbmltYWxzJyk7XG4gIH0sXG4gIGJ1c2luZXNzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnYnVzaW5lc3MnKTtcbiAgfSxcbiAgY2F0czogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2NhdHMnKTtcbiAgfSxcbiAgY2l0eTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2NpdHknKTtcbiAgfSxcbiAgZm9vZDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2Zvb2QnKTtcbiAgfSxcbiAgbmlnaHRsaWZlOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnbmlnaHRsaWZlJyk7XG4gIH0sXG4gIGZhc2hpb246IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdmYXNoaW9uJyk7XG4gIH0sXG4gIHBlb3BsZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ3Blb3BsZScpO1xuICB9LFxuICBuYXR1cmU6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICduYXR1cmUnKTtcbiAgfSxcbiAgc3BvcnRzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnc3BvcnRzJyk7XG4gIH0sXG4gIHRlY2huaWNzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAndGVjaG5pY3MnKTtcbiAgfSxcbiAgdHJhbnNwb3J0OiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAndHJhbnNwb3J0Jyk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW1hZ2U7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpLFxuICAgIHBhc3N3b3JkX2dlbmVyYXRvciA9IHJlcXVpcmUoJy4uL3ZlbmRvci9wYXNzd29yZC1nZW5lcmF0b3IuanMnKSxcbiAgICByYW5kb21fdWEgPSByZXF1aXJlKCcuLi92ZW5kb3IvdXNlci1hZ2VudCcpO1xuXG52YXIgaW50ZXJuZXQgPSB7XG5cbiAgICBhdmF0YXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmludGVybmV0LmF2YXRhcl91cmkpO1xuICAgIH0sXG5cbiAgICBlbWFpbDogZnVuY3Rpb24gKGZpcnN0TmFtZSwgbGFzdE5hbWUsIHByb3ZpZGVyKSB7XG4gICAgICAgIHByb3ZpZGVyID0gcHJvdmlkZXIgfHwgZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaW50ZXJuZXQuZnJlZV9lbWFpbCk7XG4gICAgICAgIHJldHVybiAgZmFrZXIuaGVscGVycy5zbHVnaWZ5KGZha2VyLmludGVybmV0LnVzZXJOYW1lKGZpcnN0TmFtZSwgbGFzdE5hbWUpKSArIFwiQFwiICsgcHJvdmlkZXI7XG4gICAgfSxcblxuICAgIHVzZXJOYW1lOiBmdW5jdGlvbiAoZmlyc3ROYW1lLCBsYXN0TmFtZSkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgfHwgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSB8fCBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIHN3aXRjaCAoZmFrZXIucmFuZG9tLm51bWJlcigyKSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20ubnVtYmVyKDk5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbXCIuXCIsIFwiX1wiXSkgKyBsYXN0TmFtZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbXCIuXCIsIFwiX1wiXSkgKyBsYXN0TmFtZSArIGZha2VyLnJhbmRvbS5udW1iZXIoOTkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLycvZywgXCJcIik7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC8gL2csIFwiXCIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICBkb21haW5OYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5pbnRlcm5ldC5kb21haW5Xb3JkKCkgKyBcIi5cIiArIGZha2VyLmludGVybmV0LmRvbWFpblN1ZmZpeCgpO1xuICAgIH0sXG5cbiAgICBkb21haW5TdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmludGVybmV0LmRvbWFpbl9zdWZmaXgpO1xuICAgIH0sXG5cbiAgICBkb21haW5Xb3JkOiAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5maXJzdE5hbWUoKS5yZXBsYWNlKC8oW15BLVowLTkuXyUrLV0pL2lnLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICB9LFxuXG4gICAgaXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJhbmROdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gKGZha2VyLnJhbmRvbS5udW1iZXIoMjU1KSkudG9GaXhlZCgwKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRbaV0gPSByYW5kTnVtKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0LmpvaW4oXCIuXCIpO1xuICAgIH0sXG5cbiAgICB1c2VyQWdlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByYW5kb21fdWEuZ2VuZXJhdGUoKTtcbiAgICB9LFxuXG4gICAgY29sb3I6IGZ1bmN0aW9uIChiYXNlUmVkMjU1LCBiYXNlR3JlZW4yNTUsIGJhc2VCbHVlMjU1KSB7XG4gICAgICAgIGJhc2VSZWQyNTUgPSBiYXNlUmVkMjU1IHx8IDA7XG4gICAgICAgIGJhc2VHcmVlbjI1NSA9IGJhc2VHcmVlbjI1NSB8fCAwO1xuICAgICAgICBiYXNlQmx1ZTI1NSA9IGJhc2VCbHVlMjU1IHx8IDA7XG4gICAgICAgIC8vIGJhc2VkIG9uIGF3ZXNvbWUgcmVzcG9uc2UgOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzMDQ0L2FsZ29yaXRobS10by1yYW5kb21seS1nZW5lcmF0ZS1hbi1hZXN0aGV0aWNhbGx5LXBsZWFzaW5nLWNvbG9yLXBhbGV0dGVcbiAgICAgICAgdmFyIHJlZCA9IE1hdGguZmxvb3IoKGZha2VyLnJhbmRvbS5udW1iZXIoMjU2KSArIGJhc2VSZWQyNTUpIC8gMik7XG4gICAgICAgIHZhciBncmVlbiA9IE1hdGguZmxvb3IoKGZha2VyLnJhbmRvbS5udW1iZXIoMjU2KSArIGJhc2VHcmVlbjI1NSkgLyAyKTtcbiAgICAgICAgdmFyIGJsdWUgPSBNYXRoLmZsb29yKChmYWtlci5yYW5kb20ubnVtYmVyKDI1NikgKyBiYXNlQmx1ZTI1NSkgLyAyKTtcbiAgICAgICAgdmFyIHJlZFN0ciA9IHJlZC50b1N0cmluZygxNik7XG4gICAgICAgIHZhciBncmVlblN0ciA9IGdyZWVuLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgdmFyIGJsdWVTdHIgPSBibHVlLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgcmV0dXJuICcjJyArXG4gICAgICAgICAgKHJlZFN0ci5sZW5ndGggPT09IDEgPyAnMCcgOiAnJykgKyByZWRTdHIgK1xuICAgICAgICAgIChncmVlblN0ci5sZW5ndGggPT09IDEgPyAnMCcgOiAnJykgKyBncmVlblN0ciArXG4gICAgICAgICAgKGJsdWVTdHIubGVuZ3RoID09PSAxID8gJzAnOiAnJykgKyBibHVlU3RyO1xuXG4gICAgfSxcblxuICAgIHBhc3N3b3JkOiBmdW5jdGlvbiAobGVuLCBtZW1vcmFibGUsIHBhdHRlcm4sIHByZWZpeCkge1xuICAgICAgbGVuID0gbGVuIHx8IDE1O1xuICAgICAgaWYgKHR5cGVvZiBtZW1vcmFibGUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbWVtb3JhYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFzc3dvcmRfZ2VuZXJhdG9yKGxlbiwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJuZXQ7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuZXhwb3J0c1snZGUnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZS5qcycpO1xuZXhwb3J0c1snZGVfQVQnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZV9BVC5qcycpO1xuZXhwb3J0c1snZGVfQ0gnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZV9DSC5qcycpO1xuZXhwb3J0c1snZW4nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbi5qcycpO1xuZXhwb3J0c1snZW5fQVUnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9BVS5qcycpO1xuZXhwb3J0c1snZW5fQk9SSyddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0JPUksuanMnKTtcbmV4cG9ydHNbJ2VuX0NBJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fQ0EuanMnKTtcbmV4cG9ydHNbJ2VuX0dCJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fR0IuanMnKTtcbmV4cG9ydHNbJ2VuX0lORCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0lORC5qcycpO1xuZXhwb3J0c1snZW5fVVMnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9VUy5qcycpO1xuZXhwb3J0c1snZW5fYXVfb2NrZXInXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9hdV9vY2tlci5qcycpO1xuZXhwb3J0c1snZXMnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lcy5qcycpO1xuZXhwb3J0c1snZmEnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9mYS5qcycpO1xuZXhwb3J0c1snZnInXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9mci5qcycpO1xuZXhwb3J0c1snaXQnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9pdC5qcycpO1xuZXhwb3J0c1snamEnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9qYS5qcycpO1xuZXhwb3J0c1sna28nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9rby5qcycpO1xuZXhwb3J0c1snbmJfTk8nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9uYl9OTy5qcycpO1xuZXhwb3J0c1snbmVwJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvbmVwLmpzJyk7XG5leHBvcnRzWydubCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL25sLmpzJyk7XG5leHBvcnRzWydwbCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3BsLmpzJyk7XG5leHBvcnRzWydwdF9CUiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3B0X0JSLmpzJyk7XG5leHBvcnRzWydydSddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3J1LmpzJyk7XG5leHBvcnRzWydzayddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3NrLmpzJyk7XG5leHBvcnRzWydzdiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3N2LmpzJyk7XG5leHBvcnRzWyd2aSddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3ZpLmpzJyk7XG5leHBvcnRzWyd6aF9DTiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3poX0NOLmpzJyk7IiwidmFyIGRlID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZGU7XG5kZS50aXRsZSA9IFwiR2VybWFuXCI7XG5kZS5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vcmRcIixcbiAgICBcIk9zdFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiU8O8ZFwiLFxuICAgIFwiTmV1XCIsXG4gICAgXCJBbHRcIixcbiAgICBcIkJhZFwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwic3RhZHRcIixcbiAgICBcImRvcmZcIixcbiAgICBcImxhbmRcIixcbiAgICBcInNjaGVpZFwiLFxuICAgIFwiYnVyZ1wiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCLDhGd5cHRlblwiLFxuICAgIFwiw4RxdWF0b3JpYWxndWluZWFcIixcbiAgICBcIsOEdGhpb3BpZW5cIixcbiAgICBcIsOWc3RlcnJlaWNoXCIsXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pZW5cIixcbiAgICBcIkFsZ2VyaWVuXCIsXG4gICAgXCJBbWVyaWthbmlzY2gtU2Ftb2FcIixcbiAgICBcIkFtZXJpa2FuaXNjaGUgSnVuZ2Zlcm5pbnNlbG5cIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGFya3Rpc1wiLFxuICAgIFwiQW50aWd1YSB1bmQgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5pZW5cIixcbiAgICBcIkFybWVuaWVuXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXNlcmJhaWRzY2hhblwiLFxuICAgIFwiQXVzdHJhbGllblwiLFxuICAgIFwiQmFoYW1hc1wiLFxuICAgIFwiQmFocmFpblwiLFxuICAgIFwiQmFuZ2xhZGVzY2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxhcnVzXCIsXG4gICAgXCJCZWxnaWVuXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJkaWUgQmVybXVkYXNcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpZW5cIixcbiAgICBcIkJvc25pZW4gdW5kIEhlcnplZ293aW5hXCIsXG4gICAgXCJCb3RzdWFuYVwiLFxuICAgIFwiQm91dmV0aW5zZWxcIixcbiAgICBcIkJyYXNpbGllblwiLFxuICAgIFwiQnJpdGlzY2hlIEp1bmdmZXJuaW5zZWxuXCIsXG4gICAgXCJCcml0aXNjaGVzIFRlcnJpdG9yaXVtIGltIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiQnJ1bmVpIERhcnVzc2FsYW1cIixcbiAgICBcIkJ1bGdhcmllblwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIkNvb2tpbnNlbG5cIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkTDpG5lbWFya1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBSZXB1YmxpayBLb25nb1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBWb2xrc3JlcHVibGlrIEtvcmVhXCIsXG4gICAgXCJEZXV0c2NobGFuZFwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIkRvbWluaWthbmlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJEc2NoaWJ1dGlcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJFc3RsYW5kXCIsXG4gICAgXCJGw6Ryw7ZlclwiLFxuICAgIFwiRmFsa2xhbmRpbnNlbG5cIixcbiAgICBcIkZpZHNjaGlcIixcbiAgICBcIkZpbm5sYW5kXCIsXG4gICAgXCJGcmFua3JlaWNoXCIsXG4gICAgXCJGcmFuesO2c2lzY2gtR3VheWFuYVwiLFxuICAgIFwiRnJhbnrDtnNpc2NoLVBvbHluZXNpZW5cIixcbiAgICBcIkZyYW56w7ZzaXNjaGUgR2ViaWV0ZSBpbSBzw7xkbGljaGVuIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiR2FidW5cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2VvcmdpZW5cIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3JpZWNoZW5sYW5kXCIsXG4gICAgXCJHdWFkZWxvdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgdW5kIE1jRG9uYWxkaW5zZWxuXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZ2tvbmdcIixcbiAgICBcIkluZGllblwiLFxuICAgIFwiSW5kb25lc2llblwiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXJsYW5kXCIsXG4gICAgXCJJc2xhbmRcIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiSXRhbGllblwiLFxuICAgIFwiSmFtYWlrYVwiLFxuICAgIFwiSmFwYW5cIixcbiAgICBcIkplbWVuXCIsXG4gICAgXCJKb3JkYW5pZW5cIixcbiAgICBcIkp1Z29zbGF3aWVuXCIsXG4gICAgXCJLYWltYW5pbnNlbG5cIixcbiAgICBcIkthbWJvZHNjaGFcIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbmFkYVwiLFxuICAgIFwiS2FwIFZlcmRlXCIsXG4gICAgXCJLYXNhY2hzdGFuXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpc2lzdGFuXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS2xlaW5lcmUgYW1lcmlrYW5pc2NoZSDDnGJlcnNlZWluc2VsblwiLFxuICAgIFwiS29rb3NpbnNlbG5cIixcbiAgICBcIktvbHVtYmllblwiLFxuICAgIFwiS29tb3JlblwiLFxuICAgIFwiS29uZ29cIixcbiAgICBcIktyb2F0aWVuXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdXdhaXRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxldHRsYW5kXCIsXG4gICAgXCJMaWJhbm9uXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJ5ZW5cIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdGF1ZW5cIixcbiAgICBcIkx1eGVtYnVyZ1wiLFxuICAgIFwiTWFjYXVcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIk1hbGVkaXZlblwiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcImVoZW1hbGlnZSBqdWdvc2xhd2lzY2hlIFJlcHVibGlrIE1hemVkb25pZW5cIixcbiAgICBcIk1hcm9ra29cIixcbiAgICBcIk1hcnNoYWxsaW5zZWxuXCIsXG4gICAgXCJNYXJ0aW5pcXVlXCIsXG4gICAgXCJNYXVyZXRhbmllblwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIk1pa3JvbmVzaWVuXCIsXG4gICAgXCJNb25hY29cIixcbiAgICBcIk1vbmdvbGVpXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3NhbWJpa1wiLFxuICAgIFwiTXlhbm1hclwiLFxuICAgIFwiTsO2cmRsaWNoZSBNYXJpYW5lblwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJOZXVrYWxlZG9uaWVuXCIsXG4gICAgXCJOZXVzZWVsYW5kXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZWRlcmzDpG5kaXNjaGUgQW50aWxsZW5cIixcbiAgICBcIk5pZWRlcmxhbmRlXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9yZm9sa2luc2VsXCIsXG4gICAgXCJOb3J3ZWdlblwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiT3N0dGltb3JcIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YS1OZXVndWluZWFcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQaGlsaXBwaW5lblwiLFxuICAgIFwiUGl0Y2Fpcm5pbnNlbG5cIixcbiAgICBcIlBvbGVuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlLDqXVuaW9uXCIsXG4gICAgXCJSZXB1YmxpayBLb3JlYVwiLFxuICAgIFwiUmVwdWJsaWsgTW9sZGF1XCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlJ1bcOkbmllblwiLFxuICAgIFwiUnVzc2lzY2hlIEbDtmRlcmF0aW9uXCIsXG4gICAgXCJTw6NvIFRvbcOpIHVuZCBQcsOtbmNpcGVcIixcbiAgICBcIlPDvGRhZnJpa2FcIixcbiAgICBcIlPDvGRnZW9yZ2llbiB1bmQgU8O8ZGxpY2hlIFNhbmR3aWNoaW5zZWxuXCIsXG4gICAgXCJTYWxvbW9uZW5cIixcbiAgICBcIlNhbWJpYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNhdWRpLUFyYWJpZW5cIixcbiAgICBcIlNjaHdlZGVuXCIsXG4gICAgXCJTY2h3ZWl6XCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXljaGVsbGVuXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbWJhYndlXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU2xvd2FrZWlcIixcbiAgICBcIlNsb3dlbmllblwiLFxuICAgIFwiU29tYWxpZW5cIixcbiAgICBcIlNwYW5pZW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3QuIEhlbGVuYVwiLFxuICAgIFwiU3QuIEtpdHRzIHVuZCBOZXZpc1wiLFxuICAgIFwiU3QuIEx1Y2lhXCIsXG4gICAgXCJTdC4gUGllcnJlIHVuZCBNaXF1ZWxvblwiLFxuICAgIFwiU3QuIFZpbmNlbnQgdW5kIGRpZSBHcmVuYWRpbmVuXCIsXG4gICAgXCJTdWRhblwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3ZhbGJhcmQgdW5kIEphbiBNYXllblwiLFxuICAgIFwiU3dhc2lsYW5kXCIsXG4gICAgXCJTeXJpZW5cIixcbiAgICBcIlTDvHJrZWlcIixcbiAgICBcIlRhZHNjaGlraXN0YW5cIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiVGFuc2FuaWFcIixcbiAgICBcIlRoYWlsYW5kXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb2tlbGF1XCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJpbmlkYWQgdW5kIFRvYmFnb1wiLFxuICAgIFwiVHNjaGFkXCIsXG4gICAgXCJUc2NoZWNoaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIlR1bmVzaWVuXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1cmtzLSB1bmQgQ2FpY29zaW5zZWxuXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluZVwiLFxuICAgIFwiVW5nYXJuXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVc2Jla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWYXRpa2Fuc3RhZHRcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVyZWluaWd0ZSBBcmFiaXNjaGUgRW1pcmF0ZVwiLFxuICAgIFwiVmVyZWluaWd0ZSBTdGFhdGVuXCIsXG4gICAgXCJWZXJlaW5pZ3RlcyBLw7ZuaWdyZWljaFwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiV2FsbGlzIHVuZCBGdXR1bmFcIixcbiAgICBcIldlaWhuYWNodHNpbnNlbFwiLFxuICAgIFwiV2VzdHNhaGFyYVwiLFxuICAgIFwiWmVudHJhbGFmcmlrYW5pc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiWnlwZXJuXCJcbiAgXSxcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJBY2tlcndlZ1wiLFxuICAgIFwiQWRhbGJlcnQtU3RpZnRlci1TdHIuXCIsXG4gICAgXCJBZGFsYmVydHN0ci5cIixcbiAgICBcIkFkb2xmLUJhZXllci1TdHIuXCIsXG4gICAgXCJBZG9sZi1LYXNjaG55LVN0ci5cIixcbiAgICBcIkFkb2xmLVJlaWNod2Vpbi1TdHIuXCIsXG4gICAgXCJBZG9sZnNzdHIuXCIsXG4gICAgXCJBaG9ybndlZ1wiLFxuICAgIFwiQWhyc3RyLlwiLFxuICAgIFwiQWthemllbndlZ1wiLFxuICAgIFwiQWxiZXJ0LUVpbnN0ZWluLVN0ci5cIixcbiAgICBcIkFsYmVydC1TY2h3ZWl0emVyLVN0ci5cIixcbiAgICBcIkFsYmVydHVzLU1hZ251cy1TdHIuXCIsXG4gICAgXCJBbGJlcnQtWmFydGhlLVdlZ1wiLFxuICAgIFwiQWxiaW4tRWRlbG1hbm4tU3RyLlwiLFxuICAgIFwiQWxicmVjaHQtSGF1c2hvZmVyLVN0ci5cIixcbiAgICBcIkFsZGVndW5kaXNzdHIuXCIsXG4gICAgXCJBbGV4YW5kZXJzdHIuXCIsXG4gICAgXCJBbGZyZWQtRGVscC1TdHIuXCIsXG4gICAgXCJBbGZyZWQtS3ViaW4tU3RyLlwiLFxuICAgIFwiQWxmcmVkLVN0b2NrLVN0ci5cIixcbiAgICBcIkFsa2VucmF0aGVyIFN0ci5cIixcbiAgICBcIkFsbGVuc3RlaW5lciBTdHIuXCIsXG4gICAgXCJBbHNlbnN0ci5cIixcbiAgICBcIkFsdCBTdGVpbmLDvGNoZWxlciBXZWdcIixcbiAgICBcIkFsdGUgR2FydGVuXCIsXG4gICAgXCJBbHRlIEhlaWRlXCIsXG4gICAgXCJBbHRlIExhbmRzdHIuXCIsXG4gICAgXCJBbHRlIFppZWdlbGVpXCIsXG4gICAgXCJBbHRlbmJlcmdlciBTdHIuXCIsXG4gICAgXCJBbHRlbmhvZlwiLFxuICAgIFwiQWx0ZXIgR3Jlbnp3ZWdcIixcbiAgICBcIkFsdHN0YWR0c3RyLlwiLFxuICAgIFwiQW0gQWx0ZW4gR2Fzd2Vya1wiLFxuICAgIFwiQW0gQWx0ZW4gU2NoYWZzdGFsbFwiLFxuICAgIFwiQW0gQXJlbnpiZXJnXCIsXG4gICAgXCJBbSBCZW50aGFsXCIsXG4gICAgXCJBbSBCaXJrZW5iZXJnXCIsXG4gICAgXCJBbSBCbGF1ZW4gQmVyZ1wiLFxuICAgIFwiQW0gQm9yc2JlcmdcIixcbiAgICBcIkFtIEJydW5nZW5cIixcbiAgICBcIkFtIELDvGNoZWx0ZXIgSG9mXCIsXG4gICAgXCJBbSBCdXR0ZXJtYXJrdFwiLFxuICAgIFwiQW0gRWhyZW5mcmllZGhvZlwiLFxuICAgIFwiQW0gRXNlbHNkYW1tXCIsXG4gICAgXCJBbSBGYWxrZW5iZXJnXCIsXG4gICAgXCJBbSBGcmFua2VuYmVyZ1wiLFxuICAgIFwiQW0gR2VzdW5kaGVpdHNwYXJrXCIsXG4gICAgXCJBbSBHaWVybGljaHNob2ZcIixcbiAgICBcIkFtIEdyYWJlblwiLFxuICAgIFwiQW0gSGFnZWxrcmV1elwiLFxuICAgIFwiQW0gSGFuZ1wiLFxuICAgIFwiQW0gSGVpZGthbXBcIixcbiAgICBcIkFtIEhlbW1lbHJhdGhlciBIb2ZcIixcbiAgICBcIkFtIEhvZmFja2VyXCIsXG4gICAgXCJBbSBIb2hlbiBVZmVyXCIsXG4gICAgXCJBbSBIw7ZsbGVycyBFY2tcIixcbiAgICBcIkFtIEjDvGhuZXJiZXJnXCIsXG4gICAgXCJBbSBKw6RnZXJob2ZcIixcbiAgICBcIkFtIEp1bmtlcm5rYW1wXCIsXG4gICAgXCJBbSBLZW1wZXJzdGllZ2VsXCIsXG4gICAgXCJBbSBLZXR0bmVyc2J1c2NoXCIsXG4gICAgXCJBbSBLaWVzYmVyZ1wiLFxuICAgIFwiQW0gS2zDtnN0ZXJjaGVuXCIsXG4gICAgXCJBbSBLbmVjaHRzZ3JhYmVuXCIsXG4gICAgXCJBbSBLw7ZsbGVyd2VnXCIsXG4gICAgXCJBbSBLw7Z0dGVyc2JhY2hcIixcbiAgICBcIkFtIEtyZWlzcGFya1wiLFxuICAgIFwiQW0gS3JvbmVmZWxkXCIsXG4gICAgXCJBbSBLw7xjaGVuaG9mXCIsXG4gICAgXCJBbSBLw7xobnNidXNjaFwiLFxuICAgIFwiQW0gTGluZGVuZmVsZFwiLFxuICAgIFwiQW0gTcOkcmNoZW5cIixcbiAgICBcIkFtIE1pdHRlbGJlcmdcIixcbiAgICBcIkFtIE3Dtm5jaHNob2ZcIixcbiAgICBcIkFtIE3DvGhsZW5iYWNoXCIsXG4gICAgXCJBbSBOZXVlbmhvZlwiLFxuICAgIFwiQW0gTm9ubmVuYnJ1Y2hcIixcbiAgICBcIkFtIFBsYXR0ZW5idXNjaFwiLFxuICAgIFwiQW0gUXVldHRpbmdlciBGZWxkXCIsXG4gICAgXCJBbSBSb3NlbmjDvGdlbFwiLFxuICAgIFwiQW0gU2FuZGJlcmdcIixcbiAgICBcIkFtIFNjaGVyZmVuYnJhbmRcIixcbiAgICBcIkFtIFNjaG9ra2VyXCIsXG4gICAgXCJBbSBTaWxiZXJzZWVcIixcbiAgICBcIkFtIFNvbm5lbmhhbmdcIixcbiAgICBcIkFtIFNwb3J0cGxhdHpcIixcbiAgICBcIkFtIFN0YWR0cGFya1wiLFxuICAgIFwiQW0gU3RlaW5iZXJnXCIsXG4gICAgXCJBbSBUZWxlZ3JhZlwiLFxuICAgIFwiQW0gVGhlbGVuaG9mXCIsXG4gICAgXCJBbSBWb2dlbGtyZXV6XCIsXG4gICAgXCJBbSBWb2dlbHNhbmdcIixcbiAgICBcIkFtIFZvZ2Vsc2ZlbGRjaGVuXCIsXG4gICAgXCJBbSBXYW1iYWNoZXIgSG9mXCIsXG4gICAgXCJBbSBXYXNzZXJ0dXJtXCIsXG4gICAgXCJBbSBXZWlkZW5idXNjaFwiLFxuICAgIFwiQW0gV2VpaGVyXCIsXG4gICAgXCJBbSBXZWluZ2FydGVuXCIsXG4gICAgXCJBbSBXZXJ0aFwiLFxuICAgIFwiQW1zZWx3ZWdcIixcbiAgICBcIkFuIGRlbiBJcmxlblwiLFxuICAgIFwiQW4gZGVuIFJoZWluYXVlblwiLFxuICAgIFwiQW4gZGVyIEJlcmdlcndlaWRlXCIsXG4gICAgXCJBbiBkZXIgRGluZ2JhbmtcIixcbiAgICBcIkFuIGRlciBFdmFuZ2VsaXNjaGVuIEtpcmNoZVwiLFxuICAgIFwiQW4gZGVyIEV2Z2wuIEtpcmNoZVwiLFxuICAgIFwiQW4gZGVyIEZlbGRnYXNzZVwiLFxuICAgIFwiQW4gZGVyIEZldHRlaGVubmVcIixcbiAgICBcIkFuIGRlciBLYW50ZVwiLFxuICAgIFwiQW4gZGVyIExhYWNoXCIsXG4gICAgXCJBbiBkZXIgTGVobWt1aGxlXCIsXG4gICAgXCJBbiBkZXIgTGljaHRlbmJ1cmdcIixcbiAgICBcIkFuIGRlciBMdWlzZW5idXJnXCIsXG4gICAgXCJBbiBkZXIgUm9iZXJ0c2J1cmdcIixcbiAgICBcIkFuIGRlciBTY2htaXR0ZW5cIixcbiAgICBcIkFuIGRlciBTY2h1c3Rlcmluc2VsXCIsXG4gICAgXCJBbiBkZXIgU3RlaW5yw7x0c2NoXCIsXG4gICAgXCJBbiBTdC4gQW5kcmVhc1wiLFxuICAgIFwiQW4gU3QuIFJlbWlnaXVzXCIsXG4gICAgXCJBbmRyZWFzc3RyLlwiLFxuICAgIFwiQW5rZXJ3ZWdcIixcbiAgICBcIkFubmV0dGUtS29sYi1TdHIuXCIsXG4gICAgXCJBcGVucmFkZXIgU3RyLlwiLFxuICAgIFwiQXJub2xkLU9obGV0ei1TdHIuXCIsXG4gICAgXCJBdHpsZW5iYWNoZXIgU3RyLlwiLFxuICAgIFwiQXVlcndlZ1wiLFxuICAgIFwiQXVlc3RyLlwiLFxuICAgIFwiQXVmIGRlbSBBY2tlclwiLFxuICAgIFwiQXVmIGRlbSBCbGFobmVuaG9mXCIsXG4gICAgXCJBdWYgZGVtIEJvaG5iw7xjaGVsXCIsXG4gICAgXCJBdWYgZGVtIEJydWNoXCIsXG4gICAgXCJBdWYgZGVtIEVuZFwiLFxuICAgIFwiQXVmIGRlbSBGb3JzdFwiLFxuICAgIFwiQXVmIGRlbSBIZXJiZXJnXCIsXG4gICAgXCJBdWYgZGVtIExlaG5cIixcbiAgICBcIkF1ZiBkZW0gU3RlaW5cIixcbiAgICBcIkF1ZiBkZW0gV2VpZXJiZXJnXCIsXG4gICAgXCJBdWYgZGVtIFdlaWhlcmhhaG5cIixcbiAgICBcIkF1ZiBkZW4gUmVpZW5cIixcbiAgICBcIkF1ZiBkZXIgRG9ubmVuXCIsXG4gICAgXCJBdWYgZGVyIEdyaWXDn2VcIixcbiAgICBcIkF1ZiBkZXIgT2htZXJcIixcbiAgICBcIkF1ZiBkZXIgV2VpZGVcIixcbiAgICBcIkF1ZidtIEJlcmdcIixcbiAgICBcIkF1ZidtIEthbXBcIixcbiAgICBcIkF1Z3VzdGFzdHIuXCIsXG4gICAgXCJBdWd1c3QtS2VrdWzDqS1TdHIuXCIsXG4gICAgXCJBLi1XLi12Li1Ib2ZtYW5uLVN0ci5cIixcbiAgICBcIkJhaG5hbGxlZVwiLFxuICAgIFwiQmFobmhvZnN0ci5cIixcbiAgICBcIkJhbHRydW1zdHIuXCIsXG4gICAgXCJCYW1iZXJnZXIgU3RyLlwiLFxuICAgIFwiQmF1bWJlcmdlciBTdHIuXCIsXG4gICAgXCJCZWJlbHN0ci5cIixcbiAgICBcIkJlY2tlcnMgS8OkbXBjaGVuXCIsXG4gICAgXCJCZWVyZW5zdHIuXCIsXG4gICAgXCJCZWV0aG92ZW5zdHIuXCIsXG4gICAgXCJCZWhyaW5nc3RyLlwiLFxuICAgIFwiQmVuZGVud2VnXCIsXG4gICAgXCJCZW5zYmVyZ2VyIFN0ci5cIixcbiAgICBcIkJlbnpzdHIuXCIsXG4gICAgXCJCZXJnaXNjaGUgTGFuZHN0ci5cIixcbiAgICBcIkJlcmdzdHIuXCIsXG4gICAgXCJCZXJsaW5lciBQbGF0elwiLFxuICAgIFwiQmVybGluZXIgU3RyLlwiLFxuICAgIFwiQmVybmhhcmQtTGV0dGVyaGF1cy1TdHIuXCIsXG4gICAgXCJCZXJuaGFyZC1MaWNodGVuYmVyZy1TdHIuXCIsXG4gICAgXCJCZXJuaGFyZC1SaWRkZXItU3RyLlwiLFxuICAgIFwiQmVybnN0ZWluc3RyLlwiLFxuICAgIFwiQmVydGhhLU1pZGRlbGhhdXZlLVN0ci5cIixcbiAgICBcIkJlcnRoYS12b24tU3V0dG5lci1TdHIuXCIsXG4gICAgXCJCZXJ0b2x0LUJyZWNodC1TdHIuXCIsXG4gICAgXCJCZXJ6ZWxpdXNzdHIuXCIsXG4gICAgXCJCaWVsZXJ0c3RyLlwiLFxuICAgIFwiQmllc2VuYmFjaFwiLFxuICAgIFwiQmlsbHJvdGhzdHIuXCIsXG4gICAgXCJCaXJrZW5iZXJnc3RyLlwiLFxuICAgIFwiQmlya2VuZ2FydGVuc3RyLlwiLFxuICAgIFwiQmlya2Vud2VnXCIsXG4gICAgXCJCaXNtYXJja3N0ci5cIixcbiAgICBcIkJpdHRlcmZlbGRlciBTdHIuXCIsXG4gICAgXCJCbGFua2VuYnVyZ1wiLFxuICAgIFwiQmxhdWtlaGxjaGVud2VnXCIsXG4gICAgXCJCbMO8dGVuc3RyLlwiLFxuICAgIFwiQm9iZXJzdHIuXCIsXG4gICAgXCJCw7Zja2xlcnN0ci5cIixcbiAgICBcIkJvZGVsc2Nod2luZ2hzdHIuXCIsXG4gICAgXCJCb2Rlc3RyLlwiLFxuICAgIFwiQm9nZW5zdHIuXCIsXG4gICAgXCJCb2huZW5rYW1wc3dlZ1wiLFxuICAgIFwiQm9ob2Zzd2VnXCIsXG4gICAgXCJCb25pZmF0aXVzc3RyLlwiLFxuICAgIFwiQm9ubmVyIFN0ci5cIixcbiAgICBcIkJvcmt1bXN0ci5cIixcbiAgICBcIkJvcm5oZWltZXIgU3RyLlwiLFxuICAgIFwiQm9yc2lnc3RyLlwiLFxuICAgIFwiQm9ydXNzaWFzdHIuXCIsXG4gICAgXCJCcmFja25lbGxzdHIuXCIsXG4gICAgXCJCcmFobXN3ZWdcIixcbiAgICBcIkJyYW5kZW5idXJnZXIgU3RyLlwiLFxuICAgIFwiQnJlaWRlbmJhY2hzdHIuXCIsXG4gICAgXCJCcmVzbGF1ZXIgU3RyLlwiLFxuICAgIFwiQnJ1Y2hoYXVzZXIgU3RyLlwiLFxuICAgIFwiQnLDvGNrZW5zdHIuXCIsXG4gICAgXCJCcnVja25lcnN0ci5cIixcbiAgICBcIkJyw7xkZXItQm9uaG9lZmZlci1TdHIuXCIsXG4gICAgXCJCdWNoZW53ZWdcIixcbiAgICBcIkLDvHJnZXJidXNjaHdlZ1wiLFxuICAgIFwiQnVyZ2xvY2hcIixcbiAgICBcIkJ1cmdwbGF0elwiLFxuICAgIFwiQnVyZ3N0ci5cIixcbiAgICBcIkJ1cmd3ZWdcIixcbiAgICBcIkLDvHJyaWdlciBXZWdcIixcbiAgICBcIkJ1cnNjaGVpZGVyIFN0ci5cIixcbiAgICBcIkJ1c2Noa8OkbXBjaGVuXCIsXG4gICAgXCJCdXR0ZXJoZWlkZXIgU3RyLlwiLFxuICAgIFwiQ2FybC1EdWlzYmVyZy1QbGF0elwiLFxuICAgIFwiQ2FybC1EdWlzYmVyZy1TdHIuXCIsXG4gICAgXCJDYXJsLUxldmVya3VzLVN0ci5cIixcbiAgICBcIkNhcmwtTWFyaWEtdm9uLVdlYmVyLVBsYXR6XCIsXG4gICAgXCJDYXJsLU1hcmlhLXZvbi1XZWJlci1TdHIuXCIsXG4gICAgXCJDYXJsby1NaWVyZW5kb3JmZi1TdHIuXCIsXG4gICAgXCJDYXJsLVJ1bXBmZi1TdHIuXCIsXG4gICAgXCJDYXJsLXZvbi1Pc3NpZXR6a3ktU3RyLlwiLFxuICAgIFwiQ2hhcmxvdHRlbmJ1cmdlciBTdHIuXCIsXG4gICAgXCJDaHJpc3RpYW4tSGXDny1TdHIuXCIsXG4gICAgXCJDbGFhc2JydWNoXCIsXG4gICAgXCJDbGVtZW5zLVdpbmtsZXItU3RyLlwiLFxuICAgIFwiQ29uY29yZGlhc3RyLlwiLFxuICAgIFwiQ3JhbmFjaHN0ci5cIixcbiAgICBcIkRhaGxlbWVyIFN0ci5cIixcbiAgICBcIkRhaW1sZXJzdHIuXCIsXG4gICAgXCJEYW1hc2Noa2VzdHIuXCIsXG4gICAgXCJEYW56aWdlciBTdHIuXCIsXG4gICAgXCJEZWJlbmdhc3NlXCIsXG4gICAgXCJEZWNoYW50LUZlaW4tU3RyLlwiLFxuICAgIFwiRGVjaGFudC1LcmV5LVN0ci5cIixcbiAgICBcIkRlaWNodG9yc3RyLlwiLFxuICAgIFwiRGjDvG5uYmVyZ1wiLFxuICAgIFwiRGjDvG5uc3RyLlwiLFxuICAgIFwiRGlhbmFzdHIuXCIsXG4gICAgXCJEaWVkZW5ob2ZlbmVyIFN0ci5cIixcbiAgICBcIkRpZXBlbnRhbFwiLFxuICAgIFwiRGllcGVudGhhbGVyIFN0ci5cIixcbiAgICBcIkRpZXNlbHN0ci5cIixcbiAgICBcIkRpbGxpbmdlciBTdHIuXCIsXG4gICAgXCJEaXN0ZWxrYW1wXCIsXG4gICAgXCJEb2hyZ2Fzc2VcIixcbiAgICBcIkRvbWJsaWNrXCIsXG4gICAgXCJEw7ZuaG9mZnN0ci5cIixcbiAgICBcIkRvcm5pZXJzdHIuXCIsXG4gICAgXCJEcmFjaGVuZmVsc3N0ci5cIixcbiAgICBcIkRyLi1BdWd1c3QtQmxhbmstU3RyLlwiLFxuICAgIFwiRHJlc2RlbmVyIFN0ci5cIixcbiAgICBcIkRyaWVzY2hlciBIZWNrZVwiLFxuICAgIFwiRHJvc3NlbHdlZ1wiLFxuICAgIFwiRHVkd2VpbGVyc3RyLlwiLFxuICAgIFwiRMO8bmVud2VnXCIsXG4gICAgXCJEw7xuZmVsZGVyIFN0ci5cIixcbiAgICBcIkTDvG5ud2FsZGVyIEdyZW56d2VnXCIsXG4gICAgXCJEw7xwcGVsZXIgU3RyLlwiLFxuICAgIFwiRMO8cmVyc3RyLlwiLFxuICAgIFwiRMO8cnNjaGVpZGVyIFdlZ1wiLFxuICAgIFwiRMO8c3NlbGRvcmZlciBTdHIuXCIsXG4gICAgXCJFZGVscmF0aGVyIFdlZ1wiLFxuICAgIFwiRWRtdW5kLUh1c3NlcmwtU3RyLlwiLFxuICAgIFwiRWR1YXJkLVNwcmFuZ2VyLVN0ci5cIixcbiAgICBcIkVocmxpY2hzdHIuXCIsXG4gICAgXCJFaWNoZW5rYW1wXCIsXG4gICAgXCJFaWNoZW53ZWdcIixcbiAgICBcIkVpZGVjaHNlbndlZ1wiLFxuICAgIFwiRWlmZWxzdHIuXCIsXG4gICAgXCJFaWZnZW5zdHIuXCIsXG4gICAgXCJFaW50cmFjaHRzdHIuXCIsXG4gICAgXCJFbGJlc3RyLlwiLFxuICAgIFwiRWxpc2FiZXRoLUxhbmdnw6Rzc2VyLVN0ci5cIixcbiAgICBcIkVsaXNhYmV0aHN0ci5cIixcbiAgICBcIkVsaXNhYmV0aC12b24tVGhhZGRlbi1TdHIuXCIsXG4gICAgXCJFbGlzZW5zdHIuXCIsXG4gICAgXCJFbHNhLUJyw6RuZHN0csO2bS1TdHIuXCIsXG4gICAgXCJFbHNiYWNoc3RyLlwiLFxuICAgIFwiRWxzZS1MYXNrZXItU2Now7xsZXItU3RyLlwiLFxuICAgIFwiRWxzdGVyc3RyLlwiLFxuICAgIFwiRW1pbC1GaXNjaGVyLVN0ci5cIixcbiAgICBcIkVtaWwtTm9sZGUtU3RyLlwiLFxuICAgIFwiRW5nZWxiZXJ0c3RyLlwiLFxuICAgIFwiRW5nc3RlbmJlcmdlciBXZWdcIixcbiAgICBcIkVudGVucGZ1aGxcIixcbiAgICBcIkVyYmVsZWdhc3NlXCIsXG4gICAgXCJFcmZ0c3RyLlwiLFxuICAgIFwiRXJmdXJ0ZXIgU3RyLlwiLFxuICAgIFwiRXJpY2gtSGVja2VsLVN0ci5cIixcbiAgICBcIkVyaWNoLUtsYXVzZW5lci1TdHIuXCIsXG4gICAgXCJFcmljaC1PbGxlbmhhdWVyLVN0ci5cIixcbiAgICBcIkVybGVud2VnXCIsXG4gICAgXCJFcm5zdC1CbG9jaC1TdHIuXCIsXG4gICAgXCJFcm5zdC1MdWR3aWctS2lyY2huZXItU3RyLlwiLFxuICAgIFwiRXJ6YmVyZ2Vyc3RyLlwiLFxuICAgIFwiRXNjaGVuYWxsZWVcIixcbiAgICBcIkVzY2hlbndlZ1wiLFxuICAgIFwiRXNtYXJjaHN0ci5cIixcbiAgICBcIkVzcGVud2VnXCIsXG4gICAgXCJFdWNrZW5zdHIuXCIsXG4gICAgXCJFdWxlbmdhc3NlXCIsXG4gICAgXCJFdWxlbmthbXBcIixcbiAgICBcIkV3YWxkLUZsYW1tZS1TdHIuXCIsXG4gICAgXCJFd2FsZC1Sw7ZsbC1TdHIuXCIsXG4gICAgXCJGw6RocnN0ci5cIixcbiAgICBcIkZhcm53ZWdcIixcbiAgICBcIkZhc2FuZW53ZWdcIixcbiAgICBcIkZhw59iYWNoZXIgSG9mXCIsXG4gICAgXCJGZWxkZXJzdHIuXCIsXG4gICAgXCJGZWxka2FtcHN0ci5cIixcbiAgICBcIkZlbGRzaWVmZXIgV2VnXCIsXG4gICAgXCJGZWxkc2llZmVyIFdpZXNlblwiLFxuICAgIFwiRmVsZHN0ci5cIixcbiAgICBcIkZlbGR0b3JzdHIuXCIsXG4gICAgXCJGZWxpeC12b24tUm9sbC1TdHIuXCIsXG4gICAgXCJGZXJkaW5hbmQtTGFzc2FsbGUtU3RyLlwiLFxuICAgIFwiRmVzdGVyIFdlZ1wiLFxuICAgIFwiRmV1ZXJiYWNoc3RyLlwiLFxuICAgIFwiRmV1ZXJkb3Jud2VnXCIsXG4gICAgXCJGaWNodGVud2VnXCIsXG4gICAgXCJGaWNodGVzdHIuXCIsXG4gICAgXCJGaW5rZWxzdGVpbnN0ci5cIixcbiAgICBcIkZpbmtlbndlZ1wiLFxuICAgIFwiRml4aGVpZGVyIFN0ci5cIixcbiAgICBcIkZsYWJiZW5ow6R1c2NoZW5cIixcbiAgICBcIkZsZW5zYnVyZ2VyIFN0ci5cIixcbiAgICBcIkZsaWVkZXJ3ZWdcIixcbiAgICBcIkZsb3Jhc3RyLlwiLFxuICAgIFwiRmxvcmlhbndlZ1wiLFxuICAgIFwiRmxvdG93c3RyLlwiLFxuICAgIFwiRmx1cnN0ci5cIixcbiAgICBcIkbDtmhyZW53ZWdcIixcbiAgICBcIkZvbnRhbmVzdHIuXCIsXG4gICAgXCJGb3JlbGxlbnRhbFwiLFxuICAgIFwiRm9ydHVuYXN0ci5cIixcbiAgICBcIkZyYW56LUVzc2VyLVN0ci5cIixcbiAgICBcIkZyYW56LUhpdHplLVN0ci5cIixcbiAgICBcIkZyYW56LUthaWwtU3RyLlwiLFxuICAgIFwiRnJhbnotTWFyYy1TdHIuXCIsXG4gICAgXCJGcmVpYnVyZ2VyIFN0ci5cIixcbiAgICBcIkZyZWloZWl0c3RyLlwiLFxuICAgIFwiRnJlaWhlcnItdm9tLVN0ZWluLVN0ci5cIixcbiAgICBcIkZyZXVkZW50aGFsXCIsXG4gICAgXCJGcmV1ZGVudGhhbGVyIFdlZ1wiLFxuICAgIFwiRnJpZHRqb2YtTmFuc2VuLVN0ci5cIixcbiAgICBcIkZyaWVkZW5iZXJnZXIgU3RyLlwiLFxuICAgIFwiRnJpZWRlbnNzdHIuXCIsXG4gICAgXCJGcmllZGhvZnN0ci5cIixcbiAgICBcIkZyaWVkbGFuZHN0ci5cIixcbiAgICBcIkZyaWVkbGllYi1GZXJkaW5hbmQtUnVuZ2UtU3RyLlwiLFxuICAgIFwiRnJpZWRyaWNoLUJheWVyLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1CZXJnaXVzLVBsYXR6XCIsXG4gICAgXCJGcmllZHJpY2gtRWJlcnQtUGxhdHpcIixcbiAgICBcIkZyaWVkcmljaC1FYmVydC1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtRW5nZWxzLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1MaXN0LVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1OYXVtYW5uLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1TZXJ0w7xybmVyLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaHN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1XZXNrb3R0LVN0ci5cIixcbiAgICBcIkZyaWVzZW53ZWdcIixcbiAgICBcIkZyaXNjaGVuYmVyZ1wiLFxuICAgIFwiRnJpdHotRXJsZXItU3RyLlwiLFxuICAgIFwiRnJpdHotSGVuc2VsZXItU3RyLlwiLFxuICAgIFwiRnLDtmJlbHN0ci5cIixcbiAgICBcIkbDvHJzdGVuYmVyZ3BsYXR6XCIsXG4gICAgXCJGw7xyc3RlbmJlcmdzdHIuXCIsXG4gICAgXCJHYWJyaWVsZS1Nw7xudGVyLVN0ci5cIixcbiAgICBcIkdhcnRlbnN0ci5cIixcbiAgICBcIkdlYmhhcmRzdHIuXCIsXG4gICAgXCJHZWliZWxzdHIuXCIsXG4gICAgXCJHZWxsZXJ0c3RyLlwiLFxuICAgIFwiR2Vvcmctdm9uLVZvbGxtYXItU3RyLlwiLFxuICAgIFwiR2VyaGFyZC1Eb21hZ2stU3RyLlwiLFxuICAgIFwiR2VyaGFydC1IYXVwdG1hbm4tU3RyLlwiLFxuICAgIFwiR2VyaWNodHNzdHIuXCIsXG4gICAgXCJHZXNjaHdpc3Rlci1TY2hvbGwtU3RyLlwiLFxuICAgIFwiR2V6ZWxpbmFsbGVlXCIsXG4gICAgXCJHaWVyZW5lciBXZWdcIixcbiAgICBcIkdpbnN0ZXJ3ZWdcIixcbiAgICBcIkdpc2JlcnQtQ3JlbWVyLVN0ci5cIixcbiAgICBcIkdsw7xja3NidXJnZXIgU3RyLlwiLFxuICAgIFwiR2x1Y2tzdHIuXCIsXG4gICAgXCJHbmVpc2VuYXVzdHIuXCIsXG4gICAgXCJHb2V0aGVwbGF0elwiLFxuICAgIFwiR29ldGhlc3RyLlwiLFxuICAgIFwiR29sby1NYW5uLVN0ci5cIixcbiAgICBcIkfDtnJsaXR6ZXIgU3RyLlwiLFxuICAgIFwiR8O2cnJlc3N0ci5cIixcbiAgICBcIkdyYWViZXN0ci5cIixcbiAgICBcIkdyYWYtR2FsZW4tUGxhdHpcIixcbiAgICBcIkdyZWdvci1NZW5kZWwtU3RyLlwiLFxuICAgIFwiR3JlaWZzd2FsZGVyIFN0ci5cIixcbiAgICBcIkdyaWxsZW53ZWdcIixcbiAgICBcIkdyb25lbmJvcm5lciBXZWdcIixcbiAgICBcIkdyb8OfZSBLaXJjaHN0ci5cIixcbiAgICBcIkdydW5kZXIgV2llc2VuXCIsXG4gICAgXCJHcnVuZGVybcO8aGxlXCIsXG4gICAgXCJHcnVuZGVybcO8aGxlbmhvZlwiLFxuICAgIFwiR3J1bmRlcm3DvGhsZW53ZWdcIixcbiAgICBcIkdyw7xuZXIgV2VnXCIsXG4gICAgXCJHcnVuZXdhbGRzdHIuXCIsXG4gICAgXCJHcsO8bnN0ci5cIixcbiAgICBcIkfDvG50aGVyLVdlaXNlbmJvcm4tU3RyLlwiLFxuICAgIFwiR3VzdGF2LUZyZXl0YWctU3RyLlwiLFxuICAgIFwiR3VzdGF2LUhlaW5lbWFubi1TdHIuXCIsXG4gICAgXCJHdXN0YXYtUmFkYnJ1Y2gtU3RyLlwiLFxuICAgIFwiR3V0IFJldXNjaGVuYmVyZ1wiLFxuICAgIFwiR3V0ZW5iZXJnc3RyLlwiLFxuICAgIFwiSGFiZXJzdHIuXCIsXG4gICAgXCJIYWJpY2h0Z2Fzc2VcIixcbiAgICBcIkhhZmVuc3RyLlwiLFxuICAgIFwiSGFnZW5hdWVyIFN0ci5cIixcbiAgICBcIkhhaG5lbmJsZWNoZXJcIixcbiAgICBcIkhhbGVuc2Vlc3RyLlwiLFxuICAgIFwiSGFsZmVubGVpbWJhY2hcIixcbiAgICBcIkhhbGxlc2NoZSBTdHIuXCIsXG4gICAgXCJIYWxsaWdzdHIuXCIsXG4gICAgXCJIYW1iZXJnZXIgU3RyLlwiLFxuICAgIFwiSGFtbWVyd2VnXCIsXG4gICAgXCJIw6RuZGVsc3RyLlwiLFxuICAgIFwiSGFubmFoLUjDtmNoLVN0ci5cIixcbiAgICBcIkhhbnMtQXJwLVN0ci5cIixcbiAgICBcIkhhbnMtR2VyaGFyZC1TdHIuXCIsXG4gICAgXCJIYW5zLVNhY2hzLVN0ci5cIixcbiAgICBcIkhhbnMtU2NobGVoYWhuLVN0ci5cIixcbiAgICBcIkhhbnMtdm9uLURvaG5hbnlpLVN0ci5cIixcbiAgICBcIkhhcmRlbmJlcmdzdHIuXCIsXG4gICAgXCJIYXNlbHdlZ1wiLFxuICAgIFwiSGF1cHRzdHIuXCIsXG4gICAgXCJIYXVzLVZvcnN0ZXItU3RyLlwiLFxuICAgIFwiSGF1d2VnXCIsXG4gICAgXCJIYXZlbHN0ci5cIixcbiAgICBcIkhhdmVuc3RlaW5zdHIuXCIsXG4gICAgXCJIYXlkbnN0ci5cIixcbiAgICBcIkhlYmJlbHN0ci5cIixcbiAgICBcIkhlY2tlbndlZ1wiLFxuICAgIFwiSGVlcndlZ1wiLFxuICAgIFwiSGVnZWxzdHIuXCIsXG4gICAgXCJIZWlkYmVyZ1wiLFxuICAgIFwiSGVpZGVow7ZoZVwiLFxuICAgIFwiSGVpZGVzdHIuXCIsXG4gICAgXCJIZWltc3TDpHR0ZW53ZWdcIixcbiAgICBcIkhlaW5yaWNoLULDtmxsLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUJyw7xuaW5nLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUNsYWVzLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUhlaW5lLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUjDtnJsZWluLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUzDvGJrZS1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1Mw7x0emVua2lyY2hlbi1XZWdcIixcbiAgICBcIkhlaW5yaWNoc3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtU3RyZXJhdGgtU3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtdm9uLUtsZWlzdC1TdHIuXCIsXG4gICAgXCJIZWlucmljaC12b24tU3RlcGhhbi1TdHIuXCIsXG4gICAgXCJIZWlzdGVyYmFjaHN0ci5cIixcbiAgICBcIkhlbGVuZW5zdHIuXCIsXG4gICAgXCJIZWxtZXN0ci5cIixcbiAgICBcIkhlbW1lbHJhdGhlciBXZWdcIixcbiAgICBcIkhlbnJ5LVQuLXYuLULDtnR0aW5nZXItU3RyLlwiLFxuICAgIFwiSGVyZGVyc3RyLlwiLFxuICAgIFwiSGVyaWJlcnRzdHIuXCIsXG4gICAgXCJIZXJtYW5uLUVobGVycy1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLUhlc3NlLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tS8O2bmlnLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tTMO2bnMtU3RyLlwiLFxuICAgIFwiSGVybWFubi1NaWxkZS1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLU7DtnJyZW5iZXJnLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tdm9uLUhlbG1ob2x0ei1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLVdhaWJlbC1TdHIuXCIsXG4gICAgXCJIZXJ6b2dzdHIuXCIsXG4gICAgXCJIZXltYW5uc3RyLlwiLFxuICAgIFwiSGluZGVuYnVyZ3N0ci5cIixcbiAgICBcIkhpcnplbmJlcmdcIixcbiAgICBcIkhpdGRvcmZlciBLaXJjaHdlZ1wiLFxuICAgIFwiSGl0ZG9yZmVyIFN0ci5cIixcbiAgICBcIkjDtmZlciBNw7xobGVcIixcbiAgICBcIkjDtmZlciBXZWdcIixcbiAgICBcIkhvaGUgU3RyLlwiLFxuICAgIFwiSMO2aGVuc3RyLlwiLFxuICAgIFwiSMO2bHRnZXN0YWxcIixcbiAgICBcIkhvbHVuZGVyd2VnXCIsXG4gICAgXCJIb2x6ZXIgV2VnXCIsXG4gICAgXCJIb2x6ZXIgV2llc2VuXCIsXG4gICAgXCJIb3JucG90dHdlZ1wiLFxuICAgIFwiSHViZXJ0dXN3ZWdcIixcbiAgICBcIkh1ZmVsYW5kc3RyLlwiLFxuICAgIFwiSHVmZXIgV2VnXCIsXG4gICAgXCJIdW1ib2xkdHN0ci5cIixcbiAgICBcIkh1bW1lbHNoZWltXCIsXG4gICAgXCJIdW1tZWx3ZWdcIixcbiAgICBcIkh1bXBlcmRpbmNrc3RyLlwiLFxuICAgIFwiSMO8c2NoZWlkZXIgR8OkcnRlblwiLFxuICAgIFwiSMO8c2NoZWlkZXIgU3RyLlwiLFxuICAgIFwiSMO8dHRlXCIsXG4gICAgXCJJbG1zdHIuXCIsXG4gICAgXCJJbSBCZXJnaXNjaGVuIEhlaW1cIixcbiAgICBcIkltIEJydWNoXCIsXG4gICAgXCJJbSBCdWNoZW5oYWluXCIsXG4gICAgXCJJbSBCw7xobFwiLFxuICAgIFwiSW0gQnVyZ2ZlbGRcIixcbiAgICBcIkltIERvcmZcIixcbiAgICBcIkltIEVpc2hvbHpcIixcbiAgICBcIkltIEZyaWVkZW5zdGFsXCIsXG4gICAgXCJJbSBGcm9oZW50YWxcIixcbiAgICBcIkltIEdydW5kZVwiLFxuICAgIFwiSW0gSGVkZXJpY2hzZmVsZFwiLFxuICAgIFwiSW0gSsO8Y2hlcmZlbGRcIixcbiAgICBcIkltIEthbGtmZWxkXCIsXG4gICAgXCJJbSBLaXJiZXJnXCIsXG4gICAgXCJJbSBLaXJjaGZlbGRcIixcbiAgICBcIkltIEtyZXV6YnJ1Y2hcIixcbiAgICBcIkltIE3DvGhsZW5mZWxkXCIsXG4gICAgXCJJbSBOZXNzZWxyYWRlciBLYW1wXCIsXG4gICAgXCJJbSBPYmVyZG9yZlwiLFxuICAgIFwiSW0gT2JlcmZlbGRcIixcbiAgICBcIkltIFJvc2VuZ2FydGVuXCIsXG4gICAgXCJJbSBSb3R0bGFuZFwiLFxuICAgIFwiSW0gU2NoZWZmZW5nYXJ0ZW5cIixcbiAgICBcIkltIFN0YWRlcmZlbGRcIixcbiAgICBcIkltIFN0ZWluZmVsZFwiLFxuICAgIFwiSW0gV2VpZGVuYmxlY2hcIixcbiAgICBcIkltIFdpbmtlbFwiLFxuICAgIFwiSW0gWmllZ2VsZmVsZFwiLFxuICAgIFwiSW1iYWNoXCIsXG4gICAgXCJJbWJhY2hlciBXZWdcIixcbiAgICBcIkltbWVud2VnXCIsXG4gICAgXCJJbiBkZW4gQmxlY2hlbmjDtmZlblwiLFxuICAgIFwiSW4gZGVuIERlaGxlblwiLFxuICAgIFwiSW4gZGVyIEJpcmtlbmF1XCIsXG4gICAgXCJJbiBkZXIgRGFzbGFkZW5cIixcbiAgICBcIkluIGRlciBGZWxkZXJow7x0dGVuXCIsXG4gICAgXCJJbiBkZXIgSGFydG1hbm5zd2llc2VcIixcbiAgICBcIkluIGRlciBIw7ZobGVcIixcbiAgICBcIkluIGRlciBTY2hhYWZzZGVsbGVuXCIsXG4gICAgXCJJbiBkZXIgV2Fzc2Vya3VobFwiLFxuICAgIFwiSW4gZGVyIFfDvHN0ZVwiLFxuICAgIFwiSW4gSG9semhhdXNlblwiLFxuICAgIFwiSW5zdGVyc3RyLlwiLFxuICAgIFwiSmFjb2ItRnLDtmhsZW4tU3RyLlwiLFxuICAgIFwiSsOkZ2Vyc3RyLlwiLFxuICAgIFwiSmFobnN0ci5cIixcbiAgICBcIkpha29iLUV1bGVuYmVyZy1XZWdcIixcbiAgICBcIkpha29iaXN0ci5cIixcbiAgICBcIkpha29iLUthaXNlci1TdHIuXCIsXG4gICAgXCJKZW5hZXIgU3RyLlwiLFxuICAgIFwiSm9oYW5uZXMtQmFwdGlzdC1TdHIuXCIsXG4gICAgXCJKb2hhbm5lcy1Eb3R0LVN0ci5cIixcbiAgICBcIkpvaGFubmVzLVBvcGl0ei1TdHIuXCIsXG4gICAgXCJKb2hhbm5lcy1XaXNsaWNlbnVzLVN0ci5cIixcbiAgICBcIkpvaGFubmlzYnVyZ2VyIFN0ci5cIixcbiAgICBcIkpvaGFubi1KYW5zc2VuLVN0ci5cIixcbiAgICBcIkpvaGFubi1XaXJ0ei1XZWdcIixcbiAgICBcIkpvc2Vmc3RyLlwiLFxuICAgIFwiSsO8Y2hcIixcbiAgICBcIkp1bGl1cy1Eb21zLVN0ci5cIixcbiAgICBcIkp1bGl1cy1MZWJlci1TdHIuXCIsXG4gICAgXCJLYWlzZXJwbGF0elwiLFxuICAgIFwiS2Fpc2Vyc3RyLlwiLFxuICAgIFwiS2Fpc2VyLVdpbGhlbG0tQWxsZWVcIixcbiAgICBcIkthbGtzdHIuXCIsXG4gICAgXCJLw6RtcGNoZW5zdHIuXCIsXG4gICAgXCJLw6RtcGVud2llc2VcIixcbiAgICBcIkvDpG1wZXIgV2VnXCIsXG4gICAgXCJLYW1wdGFsd2VnXCIsXG4gICAgXCJLYW5hbHN0ci5cIixcbiAgICBcIkthbmRpbnNreXN0ci5cIixcbiAgICBcIkthbnRzdHIuXCIsXG4gICAgXCJLYXBlbGxlbnN0ci5cIixcbiAgICBcIkthcmwtQXJub2xkLVN0ci5cIixcbiAgICBcIkthcmwtQm9zY2gtU3RyLlwiLFxuICAgIFwiS2FybC1Cw7xja2FydC1TdHIuXCIsXG4gICAgXCJLYXJsLUNhcnN0ZW5zLVJpbmdcIixcbiAgICBcIkthcmwtRnJpZWRyaWNoLUdvZXJkZWxlci1TdHIuXCIsXG4gICAgXCJLYXJsLUphc3BlcnMtU3RyLlwiLFxuICAgIFwiS2FybC1Lw7ZuaWctU3RyLlwiLFxuICAgIFwiS2FybC1LcmVrZWxlci1TdHIuXCIsXG4gICAgXCJLYXJsLU1hcngtU3RyLlwiLFxuICAgIFwiS2FybHN0ci5cIixcbiAgICBcIkthcmwtVWxpdHprYS1TdHIuXCIsXG4gICAgXCJLYXJsLVdpY2htYW5uLVN0ci5cIixcbiAgICBcIkthcmwtV2luZ2NoZW4tU3RyLlwiLFxuICAgIFwiS8Okc2VuYnJvZFwiLFxuICAgIFwiS8OkdGhlLUtvbGx3aXR6LVN0ci5cIixcbiAgICBcIkthdHpiYWNoc3RyLlwiLFxuICAgIFwiS2Vyc2NoZW5zdGVpbmVyc3RyLlwiLFxuICAgIFwiS2llZmVybndlZ1wiLFxuICAgIFwiS2llbGVyIFN0ci5cIixcbiAgICBcIktpZXNlbHN0ci5cIixcbiAgICBcIktpZXN3ZWdcIixcbiAgICBcIktpbmRlcmhhdXNlblwiLFxuICAgIFwiS2xlaWJlcndlZ1wiLFxuICAgIFwiS2xlaW5lIEtpcmNoc3RyLlwiLFxuICAgIFwiS2xlaW5nYW5zd2VnXCIsXG4gICAgXCJLbGVpbmhlaWRlciBXZWdcIixcbiAgICBcIktsaWVmXCIsXG4gICAgXCJLbmVpcHBzdHIuXCIsXG4gICAgXCJLbm9jaGVuYmVyZ3N3ZWdcIixcbiAgICBcIktvY2hlcmdhcnRlblwiLFxuICAgIFwiS29jaGVyc3RyLlwiLFxuICAgIFwiS29ja2Vsc2JlcmdcIixcbiAgICBcIktvbGJlcmdlciBTdHIuXCIsXG4gICAgXCJLb2xtYXJlciBTdHIuXCIsXG4gICAgXCJLw7ZsbmVyIEdhc3NlXCIsXG4gICAgXCJLw7ZsbmVyIFN0ci5cIixcbiAgICBcIktvbHBpbmdzdHIuXCIsXG4gICAgXCJLw7ZuaWdzYmVyZ2VyIFBsYXR6XCIsXG4gICAgXCJLb25yYWQtQWRlbmF1ZXItUGxhdHpcIixcbiAgICBcIkvDtnBlbmlja2VyIFN0ci5cIixcbiAgICBcIktvcGVybmlrdXNzdHIuXCIsXG4gICAgXCJLw7ZybmVyc3RyLlwiLFxuICAgIFwiS8O2c2NoZW5iZXJnXCIsXG4gICAgXCJLw7Z0dGVyc2hvZlwiLFxuICAgIFwiS3JldXpicm9pY2hlciBTdHIuXCIsXG4gICAgXCJLcmV1emthbXBcIixcbiAgICBcIktydW1tZXIgV2VnXCIsXG4gICAgXCJLcnVwcHN0ci5cIixcbiAgICBcIkt1aGxtYW5ud2VnXCIsXG4gICAgXCJLdW1wXCIsXG4gICAgXCJLdW1wZXIgV2VnXCIsXG4gICAgXCJLdW5zdGZlbGRzdHIuXCIsXG4gICAgXCJLw7xwcGVyc3RlZ2VyIFN0ci5cIixcbiAgICBcIkt1cnNpZWZlblwiLFxuICAgIFwiS3Vyc2llZmVyIFdlZ1wiLFxuICAgIFwiS3VydGVrb3R0ZW53ZWdcIixcbiAgICBcIkt1cnQtU2NodW1hY2hlci1SaW5nXCIsXG4gICAgXCJLeWxsc3RyLlwiLFxuICAgIFwiTGFuZ2VuZmVsZGVyIFN0ci5cIixcbiAgICBcIkzDpG5nc2xlaW1iYWNoXCIsXG4gICAgXCJMw6RyY2hlbndlZ1wiLFxuICAgIFwiTGVnaWVuc3RyLlwiLFxuICAgIFwiTGVobmVyIE3DvGhsZVwiLFxuICAgIFwiTGVpY2hsaW5nZXIgU3RyLlwiLFxuICAgIFwiTGVpbWJhY2hlciBIb2ZcIixcbiAgICBcIkxlaW5lc3RyLlwiLFxuICAgIFwiTGVpbmV3ZWJlcnN0ci5cIixcbiAgICBcIkxlaXB6aWdlciBTdHIuXCIsXG4gICAgXCJMZXJjaGVuZ2Fzc2VcIixcbiAgICBcIkxlc3NpbmdzdHIuXCIsXG4gICAgXCJMaWJlbGxlbndlZ1wiLFxuICAgIFwiTGljaHN0ci5cIixcbiAgICBcIkxpZWJpZ3N0ci5cIixcbiAgICBcIkxpbmRlbnN0ci5cIixcbiAgICBcIkxpbmdlbmZlbGRcIixcbiAgICBcIkxpbmllbnN0ci5cIixcbiAgICBcIkxpcHBlXCIsXG4gICAgXCJMw7ZjaGVyZ3JhYmVuXCIsXG4gICAgXCJMw7ZmZmxlcnN0ci5cIixcbiAgICBcIkxvaGV3ZWdcIixcbiAgICBcIkxvaHJiZXJnc3RyLlwiLFxuICAgIFwiTG9ocnN0ci5cIixcbiAgICBcIkzDtmhzdHIuXCIsXG4gICAgXCJMb3J0emluZ3N0ci5cIixcbiAgICBcIkzDtnR6ZW5lciBTdHIuXCIsXG4gICAgXCJMw7Z3ZW5idXJnc3RyLlwiLFxuICAgIFwiTHVjYXNzdHIuXCIsXG4gICAgXCJMdWR3aWctRXJoYXJkLVBsYXR6XCIsXG4gICAgXCJMdWR3aWctR2lydGxlci1TdHIuXCIsXG4gICAgXCJMdWR3aWctS25vcnItU3RyLlwiLFxuICAgIFwiTHVpc2Vuc3RyLlwiLFxuICAgIFwiTHVwaW5lbndlZ1wiLFxuICAgIFwiTHVyY2hlbndlZ1wiLFxuICAgIFwiTMO8dHplbmtpcmNoZW5lciBTdHIuXCIsXG4gICAgXCJMeWNrZXIgU3RyLlwiLFxuICAgIFwiTWFhc2hvZnN0ci5cIixcbiAgICBcIk1hbmZvcnRlciBTdHIuXCIsXG4gICAgXCJNYXJjLUNoYWdhbGwtU3RyLlwiLFxuICAgIFwiTWFyaWEtRHJlc2VuLVN0ci5cIixcbiAgICBcIk1hcmlhLVRlcndpZWwtU3RyLlwiLFxuICAgIFwiTWFyaWUtQ3VyaWUtU3RyLlwiLFxuICAgIFwiTWFyaWVuYnVyZ2VyIFN0ci5cIixcbiAgICBcIk1hcmllbmRvcmZlciBTdHIuXCIsXG4gICAgXCJNYXJpZW53ZXJkZXJzdHIuXCIsXG4gICAgXCJNYXJpZS1TY2hsZWktU3RyLlwiLFxuICAgIFwiTWFya3RwbGF0elwiLFxuICAgIFwiTWFya3Vzd2VnXCIsXG4gICAgXCJNYXJ0aW4tQnViZXItU3RyLlwiLFxuICAgIFwiTWFydGluLUhlaWRlZ2dlci1TdHIuXCIsXG4gICAgXCJNYXJ0aW4tTHV0aGVyLVN0ci5cIixcbiAgICBcIk1hc3VyZW5zdHIuXCIsXG4gICAgXCJNYXRoaWxkZW53ZWdcIixcbiAgICBcIk1hdXJpbnVzc3RyLlwiLFxuICAgIFwiTWF1c3BmYWRcIixcbiAgICBcIk1heC1CZWNrbWFubi1TdHIuXCIsXG4gICAgXCJNYXgtRGVsYnLDvGNrLVN0ci5cIixcbiAgICBcIk1heC1Fcm5zdC1TdHIuXCIsXG4gICAgXCJNYXgtSG9sdGhhdXNlbi1QbGF0elwiLFxuICAgIFwiTWF4LUhvcmtoZWltZXItU3RyLlwiLFxuICAgIFwiTWF4LUxpZWJlcm1hbm4tU3RyLlwiLFxuICAgIFwiTWF4LVBlY2hzdGVpbi1TdHIuXCIsXG4gICAgXCJNYXgtUGxhbmNrLVN0ci5cIixcbiAgICBcIk1heC1TY2hlbGVyLVN0ci5cIixcbiAgICBcIk1heC1TY2jDtm5lbmJlcmctU3RyLlwiLFxuICAgIFwiTWF5YmFjaHN0ci5cIixcbiAgICBcIk1lY2tob2ZlciBGZWxkXCIsXG4gICAgXCJNZWlzZW53ZWdcIixcbiAgICBcIk1lbWVsc3RyLlwiLFxuICAgIFwiTWVuY2hlbmRhaGxlciBTdHIuXCIsXG4gICAgXCJNZW5kZWxzc29obnN0ci5cIixcbiAgICBcIk1lcnppZ2VyIFN0ci5cIixcbiAgICBcIk1ldHRsYWNoZXIgU3RyLlwiLFxuICAgIFwiTWV0emVyIFN0ci5cIixcbiAgICBcIk1pY2hhZWxzd2VnXCIsXG4gICAgXCJNaXNlbG9oZXN0ci5cIixcbiAgICBcIk1pdHRlbHN0ci5cIixcbiAgICBcIk1vaGxlbnN0ci5cIixcbiAgICBcIk1vbHRrZXN0ci5cIixcbiAgICBcIk1vbmhlaW1lciBTdHIuXCIsXG4gICAgXCJNb250YW51c3N0ci5cIixcbiAgICBcIk1vbnRlc3Nvcml3ZWdcIixcbiAgICBcIk1vb3N3ZWdcIixcbiAgICBcIk1vcnNicm9pY2hlciBTdHIuXCIsXG4gICAgXCJNb3NlbHN0ci5cIixcbiAgICBcIk1vc2thdWVyIFN0ci5cIixcbiAgICBcIk1vemFydHN0ci5cIixcbiAgICBcIk3DvGhsZW53ZWdcIixcbiAgICBcIk11aHJnYXNzZVwiLFxuICAgIFwiTXVsZGVzdHIuXCIsXG4gICAgXCJNw7xsaGF1c2VuZXIgU3RyLlwiLFxuICAgIFwiTcO8bGhlaW1lciBTdHIuXCIsXG4gICAgXCJNw7xuc3RlcnMgR8Okw59jaGVuXCIsXG4gICAgXCJNw7xuenN0ci5cIixcbiAgICBcIk3DvHJpdHpzdHIuXCIsXG4gICAgXCJNeWxpdXNzdHIuXCIsXG4gICAgXCJOYWNodGlnYWxsZW53ZWdcIixcbiAgICBcIk5hdWVuZXIgU3RyLlwiLFxuICAgIFwiTmVpw59lc3RyLlwiLFxuICAgIFwiTmVsbHktU2FjaHMtU3RyLlwiLFxuICAgIFwiTmV0emVzdHIuXCIsXG4gICAgXCJOZXVlbmRyaWVzY2hcIixcbiAgICBcIk5ldWVuaGF1c2dhc3NlXCIsXG4gICAgXCJOZXVlbmthbXBcIixcbiAgICBcIk5ldWp1ZGVuaG9mXCIsXG4gICAgXCJOZXVrcm9uZW5iZXJnZXIgU3RyLlwiLFxuICAgIFwiTmV1c3RhZHRzdHIuXCIsXG4gICAgXCJOaWNvbGFpLUhhcnRtYW5uLVN0ci5cIixcbiAgICBcIk5pZWRlcmJsZWNoZXJcIixcbiAgICBcIk5pZWRlcmZlbGRzdHIuXCIsXG4gICAgXCJOaWV0enNjaGVzdHIuXCIsXG4gICAgXCJOaWtvbGF1cy1Hcm/Dny1TdHIuXCIsXG4gICAgXCJOb2JlbHN0ci5cIixcbiAgICBcIk5vcmRlcm5leXN0ci5cIixcbiAgICBcIk5vcmRzdHIuXCIsXG4gICAgXCJPYmVyIGRlbSBIb2ZcIixcbiAgICBcIk9iZXJlIExpbmRlbnN0ci5cIixcbiAgICBcIk9iZXJlIFN0ci5cIixcbiAgICBcIk9iZXLDtmxiYWNoXCIsXG4gICAgXCJPZGVudGhhbGVyIFN0ci5cIixcbiAgICBcIk9kZXJzdHIuXCIsXG4gICAgXCJPa2Vyc3RyLlwiLFxuICAgIFwiT2xvZi1QYWxtZS1TdHIuXCIsXG4gICAgXCJPcGhvdmVuZXIgU3RyLlwiLFxuICAgIFwiT3BsYWRlbmVyIFBsYXR6XCIsXG4gICAgXCJPcGxhZGVuZXIgU3RyLlwiLFxuICAgIFwiT3J0ZWxzYnVyZ2VyIFN0ci5cIixcbiAgICBcIk9za2FyLU1vbGwtU3RyLlwiLFxuICAgIFwiT3NrYXItU2NobGVtbWVyLVN0ci5cIixcbiAgICBcIk9zdHN0ci5cIixcbiAgICBcIk9zd2FsZC1TcGVuZ2xlci1TdHIuXCIsXG4gICAgXCJPdHRvLURpeC1TdHIuXCIsXG4gICAgXCJPdHRvLUdyaW1tLVN0ci5cIixcbiAgICBcIk90dG8tSGFobi1TdHIuXCIsXG4gICAgXCJPdHRvLU3DvGxsZXItU3RyLlwiLFxuICAgIFwiT3R0by1TdGFuZ2UtU3RyLlwiLFxuICAgIFwiT3R0b3N0ci5cIixcbiAgICBcIk90dG8tVmFybmhhZ2VuLVN0ci5cIixcbiAgICBcIk90dG8tV2Vscy1TdHIuXCIsXG4gICAgXCJPdHR3ZWlsZXJzdHIuXCIsXG4gICAgXCJPdWx1c3RyLlwiLFxuICAgIFwiT3ZlcmZlbGR3ZWdcIixcbiAgICBcIlBhcHBlbHdlZ1wiLFxuICAgIFwiUGFyYWNlbHN1c3N0ci5cIixcbiAgICBcIlBhcmtzdHIuXCIsXG4gICAgXCJQYXN0b3ItTG91aXMtU3RyLlwiLFxuICAgIFwiUGFzdG9yLVNjaGVpYmxlci1TdHIuXCIsXG4gICAgXCJQYXN0b3Jza2FtcFwiLFxuICAgIFwiUGF1bC1LbGVlLVN0ci5cIixcbiAgICBcIlBhdWwtTMO2YmUtU3RyLlwiLFxuICAgIFwiUGF1bHN0ci5cIixcbiAgICBcIlBlZW5lc3RyLlwiLFxuICAgIFwiUGVzY2hlciBCdXNjaFwiLFxuICAgIFwiUGVzY2hzdHIuXCIsXG4gICAgXCJQZXN0YWxvenppc3RyLlwiLFxuICAgIFwiUGV0ZXItR3JpZcOfLVN0ci5cIixcbiAgICBcIlBldGVyLUpvc2VwaC1MZW5uw6ktU3RyLlwiLFxuICAgIFwiUGV0ZXItTmV1ZW5oZXVzZXItU3RyLlwiLFxuICAgIFwiUGV0ZXJzYmVyZ3N0ci5cIixcbiAgICBcIlBldGVyc3RyLlwiLFxuICAgIFwiUGZhcnJlci1KZWtlbC1TdHIuXCIsXG4gICAgXCJQZmFycmVyLUtsZWluLVN0ci5cIixcbiAgICBcIlBmYXJyZXItUsO2aHItU3RyLlwiLFxuICAgIFwiUGZlaWxzaG9mc3RyLlwiLFxuICAgIFwiUGhpbGlwcC1PdHQtU3RyLlwiLFxuICAgIFwiUGlldC1Nb25kcmlhbi1TdHIuXCIsXG4gICAgXCJQbGF0YW5lbndlZ1wiLFxuICAgIFwiUG9tbWVybnN0ci5cIixcbiAgICBcIlBvcnNjaGVzdHIuXCIsXG4gICAgXCJQb3N0c3RyLlwiLFxuICAgIFwiUG90c2RhbWVyIFN0ci5cIixcbiAgICBcIlByZWdlbHN0ci5cIixcbiAgICBcIlByaWXDn25pdHpzdHIuXCIsXG4gICAgXCJQw7x0emRlbGxlXCIsXG4gICAgXCJRdWFyenN0ci5cIixcbiAgICBcIlF1ZXR0aW5nZXIgU3RyLlwiLFxuICAgIFwiUmF0LURleWNrcy1TdHIuXCIsXG4gICAgXCJSYXRoZW5hdXN0ci5cIixcbiAgICBcIlJhdGhlcmvDpG1wXCIsXG4gICAgXCJSYXRpYm9yZXIgU3RyLlwiLFxuICAgIFwiUmF1c2hvZnN0ci5cIixcbiAgICBcIlJlZ2Vuc2J1cmdlciBTdHIuXCIsXG4gICAgXCJSZWluaWNrZW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiUmVua2dhc3NlXCIsXG4gICAgXCJSZW5uYmF1bXBsYXR6XCIsXG4gICAgXCJSZW5uYmF1bXN0ci5cIixcbiAgICBcIlJldXNjaGVuYmVyZ2VyIFN0ci5cIixcbiAgICBcIlJldXNyYXRoZXIgU3RyLlwiLFxuICAgIFwiUmV1dGVyc3RyLlwiLFxuICAgIFwiUmhlaW5hbGxlZVwiLFxuICAgIFwiUmhlaW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiUmhlaW5zdHIuXCIsXG4gICAgXCJSaGVpbi1XdXBwZXItUGxhdHpcIixcbiAgICBcIlJpY2hhcmQtV2FnbmVyLVN0ci5cIixcbiAgICBcIlJpbGtlc3RyLlwiLFxuICAgIFwiUmluZ3N0ci5cIixcbiAgICBcIlJvYmVydC1CbHVtLVN0ci5cIixcbiAgICBcIlJvYmVydC1Lb2NoLVN0ci5cIixcbiAgICBcIlJvYmVydC1NZWRlbndhbGQtU3RyLlwiLFxuICAgIFwiUm9sYW5kc3RyLlwiLFxuICAgIFwiUm9tYmVyZ1wiLFxuICAgIFwiUsO2bnRnZW5zdHIuXCIsXG4gICAgXCJSb29uc3RyLlwiLFxuICAgIFwiUm9wZW5zdGFsbFwiLFxuICAgIFwiUm9wZW5zdGFsbGVyIFdlZ1wiLFxuICAgIFwiUm9zZW50aGFsXCIsXG4gICAgXCJSb3N0b2NrZXIgU3RyLlwiLFxuICAgIFwiUm90ZG9ybndlZ1wiLFxuICAgIFwiUsO2dHRnZXJ3ZWdcIixcbiAgICBcIlLDvGNrZXJ0c3RyLlwiLFxuICAgIFwiUnVkb2xmLUJyZWl0c2NoZWlkLVN0ci5cIixcbiAgICBcIlJ1ZG9sZi1NYW5uLVBsYXR6XCIsXG4gICAgXCJSdWRvbGYtU3RyYWNrZS1TdHIuXCIsXG4gICAgXCJSdWhsYWNocGxhdHpcIixcbiAgICBcIlJ1aGxhY2hzdHIuXCIsXG4gICAgXCJSw7x0dGVyc3dlZ1wiLFxuICAgIFwiU2FhbGVzdHIuXCIsXG4gICAgXCJTYWFyYnLDvGNrZXIgU3RyLlwiLFxuICAgIFwiU2FhcmxhdXRlcm5lciBTdHIuXCIsXG4gICAgXCJTYWFyc3RyLlwiLFxuICAgIFwiU2FsYW1hbmRlcndlZ1wiLFxuICAgIFwiU2FtbGFuZHN0ci5cIixcbiAgICBcIlNhbmRkb3Juc3RyLlwiLFxuICAgIFwiU2FuZHN0ci5cIixcbiAgICBcIlNhdWVyYnJ1Y2hzdHIuXCIsXG4gICAgXCJTY2jDpGZlcnNow7x0dGVcIixcbiAgICBcIlNjaGFybmhvcnN0c3RyLlwiLFxuICAgIFwiU2NoZWZmZXJzaG9mXCIsXG4gICAgXCJTY2hlaWRlbWFubnN0ci5cIixcbiAgICBcIlNjaGVsbGluZ3N0ci5cIixcbiAgICBcIlNjaGVua2VuZG9yZnN0ci5cIixcbiAgICBcIlNjaGllw59iZXJnc3RyLlwiLFxuICAgIFwiU2NoaWxsZXJzdHIuXCIsXG4gICAgXCJTY2hsYW5nZW5oZWNrZVwiLFxuICAgIFwiU2NobGVidXNjaGVyIEhlaWRlXCIsXG4gICAgXCJTY2hsZWJ1c2NoZXIgU3RyLlwiLFxuICAgIFwiU2NobGVidXNjaHJhdGhcIixcbiAgICBcIlNjaGxlaGRvcm5zdHIuXCIsXG4gICAgXCJTY2hsZWllcm1hY2hlcnN0ci5cIixcbiAgICBcIlNjaGxvw59zdHIuXCIsXG4gICAgXCJTY2htYWxlbmJydWNoXCIsXG4gICAgXCJTY2huZXBmZW5mbHVjaHRcIixcbiAgICBcIlNjaMO2ZmZlbndlZ1wiLFxuICAgIFwiU2Now7ZsbGVyc3RyLlwiLFxuICAgIFwiU2Now7ZuZSBBdXNzaWNodFwiLFxuICAgIFwiU2Now7ZuZWJlcmdlciBTdHIuXCIsXG4gICAgXCJTY2hvcGVuaGF1ZXJzdHIuXCIsXG4gICAgXCJTY2h1YmVydHBsYXR6XCIsXG4gICAgXCJTY2h1YmVydHN0ci5cIixcbiAgICBcIlNjaHVsYmVyZ1wiLFxuICAgIFwiU2NodWxzdHIuXCIsXG4gICAgXCJTY2h1bWFubnN0ci5cIixcbiAgICBcIlNjaHdhbGJlbndlZ1wiLFxuICAgIFwiU2Nod2FyemFzdHIuXCIsXG4gICAgXCJTZWJhc3RpYW51c3dlZ1wiLFxuICAgIFwiU2VtbWVsd2Vpc3N0ci5cIixcbiAgICBcIlNpZWJlbHBsYXR6XCIsXG4gICAgXCJTaWVtZW5zc3RyLlwiLFxuICAgIFwiU29saW5nZXIgU3RyLlwiLFxuICAgIFwiU29uZGVyYnVyZ2VyIFN0ci5cIixcbiAgICBcIlNwYW5kYXVlciBTdHIuXCIsXG4gICAgXCJTcGVlc3RyLlwiLFxuICAgIFwiU3BlcmJlcndlZ1wiLFxuICAgIFwiU3Blcmxpbmdzd2VnXCIsXG4gICAgXCJTcGl0endlZ3N0ci5cIixcbiAgICBcIlNwb3JyZW5iZXJnZXIgTcO8aGxlXCIsXG4gICAgXCJTcHJlZXN0ci5cIixcbiAgICBcIlN0LiBJbmdiZXJ0ZXIgU3RyLlwiLFxuICAgIFwiU3RhcmVud2VnXCIsXG4gICAgXCJTdGF1ZmZlbmJlcmdzdHIuXCIsXG4gICAgXCJTdGVmYW4tWndlaWctU3RyLlwiLFxuICAgIFwiU3RlZ2Vyd2FsZHN0ci5cIixcbiAgICBcIlN0ZWdsaXR6ZXIgU3RyLlwiLFxuICAgIFwiU3RlaW5iw7xjaGVsZXIgRmVsZFwiLFxuICAgIFwiU3RlaW5iw7xjaGVsZXIgU3RyLlwiLFxuICAgIFwiU3RlaW5zdHIuXCIsXG4gICAgXCJTdGVpbndlZ1wiLFxuICAgIFwiU3RlcGhhbi1Mb2NobmVyLVN0ci5cIixcbiAgICBcIlN0ZXBoYW51c3N0ci5cIixcbiAgICBcIlN0ZXR0aW5lciBTdHIuXCIsXG4gICAgXCJTdGl4Y2hlc3N0ci5cIixcbiAgICBcIlN0w7Zja2Vuc3RyLlwiLFxuICAgIFwiU3RyYWxzdW5kZXIgU3RyLlwiLFxuICAgIFwiU3RyYcOfYnVyZ2VyIFN0ci5cIixcbiAgICBcIlN0cmVzZW1hbm5wbGF0elwiLFxuICAgIFwiU3Ryb21iZXJnc3RyLlwiLFxuICAgIFwiU3Ryb21zdHIuXCIsXG4gICAgXCJTdMO8dHRla29mZW5lciBTdHIuXCIsXG4gICAgXCJTdWRlc3RyLlwiLFxuICAgIFwiU8O8cmRlcnN0ci5cIixcbiAgICBcIlN5bHRzdHIuXCIsXG4gICAgXCJUYWxzdHIuXCIsXG4gICAgXCJUYW5uZW5iZXJnc3RyLlwiLFxuICAgIFwiVGFubmVud2VnXCIsXG4gICAgXCJUYXViZW53ZWdcIixcbiAgICBcIlRlaXRzY2hlaWRlciBXZWdcIixcbiAgICBcIlRlbGVncmFmZW5zdHIuXCIsXG4gICAgXCJUZWx0b3dlciBTdHIuXCIsXG4gICAgXCJUZW1wZWxob2ZlciBTdHIuXCIsXG4gICAgXCJUaGVvZG9yLUFkb3Juby1TdHIuXCIsXG4gICAgXCJUaGVvZG9yLUZsaWVkbmVyLVN0ci5cIixcbiAgICBcIlRoZW9kb3ItR2llcmF0aC1TdHIuXCIsXG4gICAgXCJUaGVvZG9yLUhhdWJhY2gtU3RyLlwiLFxuICAgIFwiVGhlb2Rvci1IZXVzcy1SaW5nXCIsXG4gICAgXCJUaGVvZG9yLVN0b3JtLVN0ci5cIixcbiAgICBcIlRoZW9kb3JzdHIuXCIsXG4gICAgXCJUaG9tYXMtRGVobGVyLVN0ci5cIixcbiAgICBcIlRob21hcy1Nb3J1cy1TdHIuXCIsXG4gICAgXCJUaG9tYXMtdm9uLUFxdWluLVN0ci5cIixcbiAgICBcIlTDtm5nZXMgRmVsZFwiLFxuICAgIFwiVG9yc3RyLlwiLFxuICAgIFwiVHJlcHRvd2VyIFN0ci5cIixcbiAgICBcIlRyZXVidXJnZXIgU3RyLlwiLFxuICAgIFwiVWhsYW5kc3RyLlwiLFxuICAgIFwiVWxtZW53ZWdcIixcbiAgICBcIlVsbWVyIFN0ci5cIixcbiAgICBcIlVscmljaHN0ci5cIixcbiAgICBcIlVscmljaC12b24tSGFzc2VsbC1TdHIuXCIsXG4gICAgXCJVbWxhZ1wiLFxuICAgIFwiVW5zdHJ1dHN0ci5cIixcbiAgICBcIlVudGVyIGRlbSBTY2hpbGRjaGVuXCIsXG4gICAgXCJVbnRlcsO2bGJhY2hcIixcbiAgICBcIlVudGVyc3RyLlwiLFxuICAgIFwiVXBwZXJzYmVyZ1wiLFxuICAgIFwiVmFuXFxcXCd0LUhvZmYtU3RyLlwiLFxuICAgIFwiVmVpdC1TdG/Dny1TdHIuXCIsXG4gICAgXCJWZXJlaW5zc3RyLlwiLFxuICAgIFwiVmlrdG9yLU1leWVyLVN0ci5cIixcbiAgICBcIlZpbmNlbnQtdmFuLUdvZ2gtU3RyLlwiLFxuICAgIFwiVmlyY2hvd3N0ci5cIixcbiAgICBcIlZvaWd0c2xhY2hcIixcbiAgICBcIlZvbGhhcmRzdHIuXCIsXG4gICAgXCJWw7Zsa2xpbmdlciBTdHIuXCIsXG4gICAgXCJWb24tQnJlbnRhbm8tU3RyLlwiLFxuICAgIFwiVm9uLURpZXJnYXJkdC1TdHIuXCIsXG4gICAgXCJWb24tRWljaGVuZG9yZmYtU3RyLlwiLFxuICAgIFwiVm9uLUtldHRlbGVyLVN0ci5cIixcbiAgICBcIlZvbi1Lbm9lcmluZ2VuLVN0ci5cIixcbiAgICBcIlZvbi1QZXR0ZW5rb2Zlci1TdHIuXCIsXG4gICAgXCJWb24tU2llYm9sZC1TdHIuXCIsXG4gICAgXCJXYWNob2xkZXJ3ZWdcIixcbiAgICBcIldhbGRzdHIuXCIsXG4gICAgXCJXYWx0ZXItRmxleC1TdHIuXCIsXG4gICAgXCJXYWx0ZXItSGVtcGVsLVN0ci5cIixcbiAgICBcIldhbHRlci1Ib2NoYXBmZWwtU3RyLlwiLFxuICAgIFwiV2FsdGVyLU5lcm5zdC1TdHIuXCIsXG4gICAgXCJXYW5uc2Vlc3RyLlwiLFxuICAgIFwiV2Fybm93c3RyLlwiLFxuICAgIFwiV2FydGhlc3RyLlwiLFxuICAgIFwiV2VkZGlnZW5zdHIuXCIsXG4gICAgXCJXZWljaHNlbHN0ci5cIixcbiAgICBcIldlaWRlbnN0ci5cIixcbiAgICBcIldlaWRmZWxkc3RyLlwiLFxuICAgIFwiV2VpaGVyZmVsZFwiLFxuICAgIFwiV2VpaGVyc3RyLlwiLFxuICAgIFwiV2VpbmjDpHVzZXIgU3RyLlwiLFxuICAgIFwiV2Vpw59kb3Jud2VnXCIsXG4gICAgXCJXZWnDn2Vuc2Vlc3RyLlwiLFxuICAgIFwiV2VpemthbXBcIixcbiAgICBcIldlcmZ0c3RyLlwiLFxuICAgIFwiV2Vya3N0w6R0dGVuc3RyLlwiLFxuICAgIFwiV2VybmVyLUhlaXNlbmJlcmctU3RyLlwiLFxuICAgIFwiV2VycmFzdHIuXCIsXG4gICAgXCJXZXllcndlZ1wiLFxuICAgIFwiV2lkZGF1ZW5lciBTdHIuXCIsXG4gICAgXCJXaWViZXJ0c2hvZlwiLFxuICAgIFwiV2llaGJhY2h0YWxcIixcbiAgICBcIldpZW1iYWNoYWxsZWVcIixcbiAgICBcIldpZXNkb3JmZXIgUGxhdHpcIixcbiAgICBcIldpZXNlbnN0ci5cIixcbiAgICBcIldpbGhlbG0tQnVzY2gtU3RyLlwiLFxuICAgIFwiV2lsaGVsbS1IYXN0cmljaC1TdHIuXCIsXG4gICAgXCJXaWxoZWxtLUxldXNjaG5lci1TdHIuXCIsXG4gICAgXCJXaWxoZWxtLUxpZWJrbmVjaHQtU3RyLlwiLFxuICAgIFwiV2lsaGVsbXNnYXNzZVwiLFxuICAgIFwiV2lsaGVsbXN0ci5cIixcbiAgICBcIldpbGxpLUJhdW1laXN0ZXItU3RyLlwiLFxuICAgIFwiV2lsbHktQnJhbmR0LVJpbmdcIixcbiAgICBcIldpbmFuZC1Sb3NzaS1TdHIuXCIsXG4gICAgXCJXaW5kdGhvcnN0c3RyLlwiLFxuICAgIFwiV2lua2Vsd2VnXCIsXG4gICAgXCJXaW50ZXJiZXJnXCIsXG4gICAgXCJXaXR0ZW5iZXJnc3RyLlwiLFxuICAgIFwiV29sZi1Wb3N0ZWxsLVN0ci5cIixcbiAgICBcIldvbGtlbmJ1cmdzdHIuXCIsXG4gICAgXCJXdXBwZXJzdHIuXCIsXG4gICAgXCJXdXBwZXJ0YWxzdHIuXCIsXG4gICAgXCJXw7xzdGVuaG9mXCIsXG4gICAgXCJZaXR6aGFrLVJhYmluLVN0ci5cIixcbiAgICBcIlphdWJlcmt1aGxlXCIsXG4gICAgXCJaZWRlcm53ZWdcIixcbiAgICBcIlplaGxlbmRvcmZlciBTdHIuXCIsXG4gICAgXCJaZWhudGVud2VnXCIsXG4gICAgXCJaZWlzaWd3ZWdcIixcbiAgICBcIlplcHBlbGluc3RyLlwiLFxuICAgIFwiWnNjaG9wYXVzdHIuXCIsXG4gICAgXCJadW0gQ2xhYXNow6R1c2NoZW5cIixcbiAgICBcIlrDvG5kaMO8dGNoZW53ZWdcIixcbiAgICBcIlp1ciBBbHRlbiBCcmF1ZXJlaVwiLFxuICAgIFwiWnVyIGFsdGVuIEZhYnJpa1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIixcbiAgICBcIiMjYVwiLFxuICAgIFwiIyNiXCIsXG4gICAgXCIjI2NcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJaaW1tZXIgIyMjXCIsXG4gICAgXCIjIE9HXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkJhZGVuLVfDvHJ0dGVtYmVyZ1wiLFxuICAgIFwiQmF5ZXJuXCIsXG4gICAgXCJCZXJsaW5cIixcbiAgICBcIkJyYW5kZW5idXJnXCIsXG4gICAgXCJCcmVtZW5cIixcbiAgICBcIkhhbWJ1cmdcIixcbiAgICBcIkhlc3NlblwiLFxuICAgIFwiTWVja2xlbmJ1cmctVm9ycG9tbWVyblwiLFxuICAgIFwiTmllZGVyc2FjaHNlblwiLFxuICAgIFwiTm9yZHJoZWluLVdlc3RmYWxlblwiLFxuICAgIFwiUmhlaW5sYW5kLVBmYWx6XCIsXG4gICAgXCJTYWFybGFuZFwiLFxuICAgIFwiU2FjaHNlblwiLFxuICAgIFwiU2FjaHNlbi1BbmhhbHRcIixcbiAgICBcIlNjaGxlc3dpZy1Ib2xzdGVpblwiLFxuICAgIFwiVGjDvHJpbmdlblwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJCV1wiLFxuICAgIFwiQllcIixcbiAgICBcIkJFXCIsXG4gICAgXCJCQlwiLFxuICAgIFwiSEJcIixcbiAgICBcIkhIXCIsXG4gICAgXCJIRVwiLFxuICAgIFwiTVZcIixcbiAgICBcIk5JXCIsXG4gICAgXCJOV1wiLFxuICAgIFwiUlBcIixcbiAgICBcIlNMXCIsXG4gICAgXCJTTlwiLFxuICAgIFwiU1RcIixcbiAgICBcIlNIXCIsXG4gICAgXCJUSFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcm9vdH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkRldXRzY2hsYW5kXCJcbiAgXVxufTtcbmRlLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkdtYkhcIixcbiAgICBcIkFHXCIsXG4gICAgXCJHcnVwcGVcIixcbiAgICBcIktHXCIsXG4gICAgXCJHbWJIICYgQ28uIEtHXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiT0hHXCJcbiAgXSxcbiAgXCJsZWdhbF9mb3JtXCI6IFtcbiAgICBcIkdtYkhcIixcbiAgICBcIkFHXCIsXG4gICAgXCJHcnVwcGVcIixcbiAgICBcIktHXCIsXG4gICAgXCJHbWJIICYgQ28uIEtHXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiT0hHXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSB1bmQgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xuZGUuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiLFxuICAgIFwiZGVcIixcbiAgICBcImNoXCJcbiAgXVxufTtcbmRlLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF1cbn07XG5kZS5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFiZHVsXCIsXG4gICAgXCJBYmR1bGxhaFwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJBZHJpYW5vXCIsXG4gICAgXCJBaG1hZFwiLFxuICAgIFwiQWhtZWRcIixcbiAgICBcIkFobWV0XCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsZXNzYW5kcm9cIixcbiAgICBcIkFsZXNzaW9cIixcbiAgICBcIkFsZXhcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQWxmcmVkXCIsXG4gICAgXCJBbGlcIixcbiAgICBcIkFtYXJcIixcbiAgICBcIkFtaXJcIixcbiAgICBcIkFtb25cIixcbiAgICBcIkFuZHJlXCIsXG4gICAgXCJBbmRyZWFzXCIsXG4gICAgXCJBbmRyZXdcIixcbiAgICBcIkFuZ2Vsb1wiLFxuICAgIFwiQW5zZ2FyXCIsXG4gICAgXCJBbnRob255XCIsXG4gICAgXCJBbnRvblwiLFxuICAgIFwiQW50b25pb1wiLFxuICAgIFwiQXJkYVwiLFxuICAgIFwiQXJpYW5cIixcbiAgICBcIkFybWluXCIsXG4gICAgXCJBcm5lXCIsXG4gICAgXCJBcm5vXCIsXG4gICAgXCJBcnRodXJcIixcbiAgICBcIkFydHVyXCIsXG4gICAgXCJBcnZlZFwiLFxuICAgIFwiQXJ2aWRcIixcbiAgICBcIkF5bWFuXCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyaXNcIixcbiAgICBcIkJhc3RpYW5cIixcbiAgICBcIkJhdHVoYW5cIixcbiAgICBcIkJlbGFcIixcbiAgICBcIkJlblwiLFxuICAgIFwiQmVuZWRpa3RcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJCZW5uZXRcIixcbiAgICBcIkJlbm5ldHRcIixcbiAgICBcIkJlbm5vXCIsXG4gICAgXCJCZW50XCIsXG4gICAgXCJCZXJhdFwiLFxuICAgIFwiQmVya2F5XCIsXG4gICAgXCJCZXJuZFwiLFxuICAgIFwiQmlsYWxcIixcbiAgICBcIkJqYXJuZVwiLFxuICAgIFwiQmrDtnJuXCIsXG4gICAgXCJCb1wiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkJyYW5kb25cIixcbiAgICBcIkJyaWFuXCIsXG4gICAgXCJCcnVub1wiLFxuICAgIFwiQnJ5YW5cIixcbiAgICBcIkJ1cmFrXCIsXG4gICAgXCJDYWx2aW5cIixcbiAgICBcIkNhblwiLFxuICAgIFwiQ2FybFwiLFxuICAgIFwiQ2FybG9cIixcbiAgICBcIkNhcmxvc1wiLFxuICAgIFwiQ2FzcGFyXCIsXG4gICAgXCJDZWRyaWNcIixcbiAgICBcIkNlZHJpa1wiLFxuICAgIFwiQ2VtXCIsXG4gICAgXCJDaGFybGllXCIsXG4gICAgXCJDaHJpc1wiLFxuICAgIFwiQ2hyaXN0aWFuXCIsXG4gICAgXCJDaHJpc3RpYW5vXCIsXG4gICAgXCJDaHJpc3RvcGhcIixcbiAgICBcIkNocmlzdG9waGVyXCIsXG4gICAgXCJDbGFhc1wiLFxuICAgIFwiQ2xlbWVuc1wiLFxuICAgIFwiQ29saW5cIixcbiAgICBcIkNvbGxpblwiLFxuICAgIFwiQ29ubmVyXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIkNvbnN0YW50aW5cIixcbiAgICBcIkNvcnZpblwiLFxuICAgIFwiQ3VydFwiLFxuICAgIFwiRGFtaWFuXCIsXG4gICAgXCJEYW1pZW5cIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFuaWxvXCIsXG4gICAgXCJEYW5ueVwiLFxuICAgIFwiRGFyaWFuXCIsXG4gICAgXCJEYXJpb1wiLFxuICAgIFwiRGFyaXVzXCIsXG4gICAgXCJEYXJyZW5cIixcbiAgICBcIkRhdmlkXCIsXG4gICAgXCJEYXZpZGVcIixcbiAgICBcIkRhdmluXCIsXG4gICAgXCJEZWFuXCIsXG4gICAgXCJEZW5pelwiLFxuICAgIFwiRGVubmlzXCIsXG4gICAgXCJEZW5ueVwiLFxuICAgIFwiRGV2aW5cIixcbiAgICBcIkRpZWdvXCIsXG4gICAgXCJEaW9uXCIsXG4gICAgXCJEb21lbmljXCIsXG4gICAgXCJEb21lbmlrXCIsXG4gICAgXCJEb21pbmljXCIsXG4gICAgXCJEb21pbmlrXCIsXG4gICAgXCJEb3JpYW5cIixcbiAgICBcIkR1c3RpblwiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIkVjcmluXCIsXG4gICAgXCJFZGRpXCIsXG4gICAgXCJFZGR5XCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWR3aW5cIixcbiAgICBcIkVmZVwiLFxuICAgIFwiRWdlXCIsXG4gICAgXCJFbGlhXCIsXG4gICAgXCJFbGlhaFwiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkVsaWphaFwiLFxuICAgIFwiRW1hbnVlbFwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiRW1pbGlhblwiLFxuICAgIFwiRW1pbGlvXCIsXG4gICAgXCJFbWlyXCIsXG4gICAgXCJFbWlyaGFuXCIsXG4gICAgXCJFbXJlXCIsXG4gICAgXCJFbmVzXCIsXG4gICAgXCJFbm5vXCIsXG4gICAgXCJFbnJpY29cIixcbiAgICBcIkVyZW5cIixcbiAgICBcIkVyaWNcIixcbiAgICBcIkVyaWtcIixcbiAgICBcIkV0aWVubmVcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmFiaWVuXCIsXG4gICAgXCJGYWJpb1wiLFxuICAgIFwiRmFicmljZVwiLFxuICAgIFwiRmFsa1wiLFxuICAgIFwiRmVsaXhcIixcbiAgICBcIkZlcmRpbmFuZFwiLFxuICAgIFwiRmlldGVcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJGaW5sYXlcIixcbiAgICBcIkZpbmxleVwiLFxuICAgIFwiRmlublwiLFxuICAgIFwiRmlubmxleVwiLFxuICAgIFwiRmxvcmlhblwiLFxuICAgIFwiRnJhbmNlc2NvXCIsXG4gICAgXCJGcmFuelwiLFxuICAgIFwiRnJlZGVyaWNcIixcbiAgICBcIkZyZWRlcmlja1wiLFxuICAgIFwiRnJlZGVyaWtcIixcbiAgICBcIkZyaWVkcmljaFwiLFxuICAgIFwiRnJpdHpcIixcbiAgICBcIkZ1cmthblwiLFxuICAgIFwiRnlublwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2VvcmdcIixcbiAgICBcIkdlcnJpdFwiLFxuICAgIFwiR2lhblwiLFxuICAgIFwiR2lhbmx1Y2FcIixcbiAgICBcIkdpbm9cIixcbiAgICBcIkdpdWxpYW5vXCIsXG4gICAgXCJHaXVzZXBwZVwiLFxuICAgIFwiR3JlZ29yXCIsXG4gICAgXCJHdXN0YXZcIixcbiAgICBcIkhhZ2VuXCIsXG4gICAgXCJIYW16YVwiLFxuICAgIFwiSGFubmVzXCIsXG4gICAgXCJIYW5ub1wiLFxuICAgIFwiSGFuc1wiLFxuICAgIFwiSGFzYW5cIixcbiAgICBcIkhhc3NhblwiLFxuICAgIFwiSGF1a2VcIixcbiAgICBcIkhlbmRyaWtcIixcbiAgICBcIkhlbm5lc1wiLFxuICAgIFwiSGVubmluZ1wiLFxuICAgIFwiSGVucmlcIixcbiAgICBcIkhlbnJpY2tcIixcbiAgICBcIkhlbnJpa1wiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkh1Z29cIixcbiAgICBcIkh1c3NlaW5cIixcbiAgICBcIklhblwiLFxuICAgIFwiSWJyYWhpbVwiLFxuICAgIFwiSWxpYXNcIixcbiAgICBcIklsamFcIixcbiAgICBcIklseWFzXCIsXG4gICAgXCJJbW1hbnVlbFwiLFxuICAgIFwiSXNtYWVsXCIsXG4gICAgXCJJc21haWxcIixcbiAgICBcIkl2YW5cIixcbiAgICBcIkl2ZW5cIixcbiAgICBcIkphY2tcIixcbiAgICBcIkphY29iXCIsXG4gICAgXCJKYWRlblwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIkphbWFsXCIsXG4gICAgXCJKYW1lc1wiLFxuICAgIFwiSmFtaWVcIixcbiAgICBcIkphblwiLFxuICAgIFwiSmFuZWtcIixcbiAgICBcIkphbmlzXCIsXG4gICAgXCJKYW5uZVwiLFxuICAgIFwiSmFubmVrXCIsXG4gICAgXCJKYW5uZXNcIixcbiAgICBcIkphbm5pa1wiLFxuICAgIFwiSmFubmlzXCIsXG4gICAgXCJKYW5vXCIsXG4gICAgXCJKYW5vc2NoXCIsXG4gICAgXCJKYXJlZFwiLFxuICAgIFwiSmFyaVwiLFxuICAgIFwiSmFybmVcIixcbiAgICBcIkphcm5vXCIsXG4gICAgXCJKYXJvblwiLFxuICAgIFwiSmFzb25cIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSmF5XCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIkpheXNvblwiLFxuICAgIFwiSmVhblwiLFxuICAgIFwiSmVuc1wiLFxuICAgIFwiSmVyZW1pYXNcIixcbiAgICBcIkplcmVtaWVcIixcbiAgICBcIkplcmVteVwiLFxuICAgIFwiSmVybWFpbmVcIixcbiAgICBcIkplcm9tZVwiLFxuICAgIFwiSmVzcGVyXCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiSmltXCIsXG4gICAgXCJKaW1teVwiLFxuICAgIFwiSm9lXCIsXG4gICAgXCJKb2VsXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb2hhbm5cIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJKb2huXCIsXG4gICAgXCJKb2hubnlcIixcbiAgICBcIkpvblwiLFxuICAgIFwiSm9uYVwiLFxuICAgIFwiSm9uYWhcIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiSm9udGVcIixcbiAgICBcIkpvb3N0XCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIkpvcmlzXCIsXG4gICAgXCJKb3NjaGFcIixcbiAgICBcIkpvc2NodWFcIixcbiAgICBcIkpvc2VmXCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkpvc2hcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiSm9zdWFcIixcbiAgICBcIkp1YW5cIixcbiAgICBcIkp1bGlhblwiLFxuICAgIFwiSnVsaWVuXCIsXG4gICAgXCJKdWxpdXNcIixcbiAgICBcIkp1cmlcIixcbiAgICBcIkp1c3RpblwiLFxuICAgIFwiSnVzdHVzXCIsXG4gICAgXCJLYWFuXCIsXG4gICAgXCJLYWlcIixcbiAgICBcIkthbGxlXCIsXG4gICAgXCJLYXJpbVwiLFxuICAgIFwiS2FybFwiLFxuICAgIFwiS2FybG9cIixcbiAgICBcIktheVwiLFxuICAgIFwiS2VhbnVcIixcbiAgICBcIktlbmFuXCIsXG4gICAgXCJLZW5ueVwiLFxuICAgIFwiS2Vub1wiLFxuICAgIFwiS2VyZW1cIixcbiAgICBcIktlcmltXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiS2lhblwiLFxuICAgIFwiS2lsaWFuXCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWlcIixcbiAgICBcIktqZWxsXCIsXG4gICAgXCJLbGFhc1wiLFxuICAgIFwiS2xlbWVuc1wiLFxuICAgIFwiS29ucmFkXCIsXG4gICAgXCJLb25zdGFudGluXCIsXG4gICAgXCJLb3JheVwiLFxuICAgIFwiS29yYmluaWFuXCIsXG4gICAgXCJLdXJ0XCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJMYXNzZVwiLFxuICAgIFwiTGF1cmVuY2VcIixcbiAgICBcIkxhdXJlbnNcIixcbiAgICBcIkxhdXJlbnpcIixcbiAgICBcIkxhdXJpblwiLFxuICAgIFwiTGVhblwiLFxuICAgIFwiTGVhbmRlclwiLFxuICAgIFwiTGVhbmRyb1wiLFxuICAgIFwiTGVpZlwiLFxuICAgIFwiTGVuXCIsXG4gICAgXCJMZW5uXCIsXG4gICAgXCJMZW5uYXJkXCIsXG4gICAgXCJMZW5uYXJ0XCIsXG4gICAgXCJMZW5uZXJ0XCIsXG4gICAgXCJMZW5uaWVcIixcbiAgICBcIkxlbm5veFwiLFxuICAgIFwiTGVubnlcIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVvblwiLFxuICAgIFwiTGVvbmFyZFwiLFxuICAgIFwiTGVvbmFyZG9cIixcbiAgICBcIkxlb25oYXJkXCIsXG4gICAgXCJMZW9uaWRhc1wiLFxuICAgIFwiTGVvcG9sZFwiLFxuICAgIFwiTGVyb3lcIixcbiAgICBcIkxldmVudFwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTGV2aW5cIixcbiAgICBcIkxld2luXCIsXG4gICAgXCJMZXdpc1wiLFxuICAgIFwiTGlhbVwiLFxuICAgIFwiTGlhblwiLFxuICAgIFwiTGlhc1wiLFxuICAgIFwiTGlub1wiLFxuICAgIFwiTGludXNcIixcbiAgICBcIkxpb1wiLFxuICAgIFwiTGlvblwiLFxuICAgIFwiTGlvbmVsXCIsXG4gICAgXCJMb2dhblwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3JlbnpvXCIsXG4gICAgXCJMb3Jpc1wiLFxuICAgIFwiTG91aXNcIixcbiAgICBcIkx1YW5cIixcbiAgICBcIkx1Y1wiLFxuICAgIFwiTHVjYVwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkx1Y2lhblwiLFxuICAgIFwiTHVjaWVuXCIsXG4gICAgXCJMdWR3aWdcIixcbiAgICBcIkx1aXNcIixcbiAgICBcIkx1aXpcIixcbiAgICBcIkx1a1wiLFxuICAgIFwiTHVrYVwiLFxuICAgIFwiTHVrYXNcIixcbiAgICBcIkx1a2VcIixcbiAgICBcIkx1dHpcIixcbiAgICBcIk1hZGRveFwiLFxuICAgIFwiTWFkc1wiLFxuICAgIFwiTWFnbnVzXCIsXG4gICAgXCJNYWlrXCIsXG4gICAgXCJNYWtzaW1cIixcbiAgICBcIk1hbGlrXCIsXG4gICAgXCJNYWx0ZVwiLFxuICAgIFwiTWFudWVsXCIsXG4gICAgXCJNYXJjXCIsXG4gICAgXCJNYXJjZWxcIixcbiAgICBcIk1hcmNvXCIsXG4gICAgXCJNYXJjdXNcIixcbiAgICBcIk1hcmVrXCIsXG4gICAgXCJNYXJpYW5cIixcbiAgICBcIk1hcmlvXCIsXG4gICAgXCJNYXJpdXNcIixcbiAgICBcIk1hcmtcIixcbiAgICBcIk1hcmtvXCIsXG4gICAgXCJNYXJrdXNcIixcbiAgICBcIk1hcmxvXCIsXG4gICAgXCJNYXJsb25cIixcbiAgICBcIk1hcnRlblwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1hcndpblwiLFxuICAgIFwiTWF0ZW9cIixcbiAgICBcIk1hdGhpc1wiLFxuICAgIFwiTWF0aXNcIixcbiAgICBcIk1hdHNcIixcbiAgICBcIk1hdHRlb1wiLFxuICAgIFwiTWF0dGVzXCIsXG4gICAgXCJNYXR0aGlhc1wiLFxuICAgIFwiTWF0dGhpc1wiLFxuICAgIFwiTWF0dGlcIixcbiAgICBcIk1hdHRpc1wiLFxuICAgIFwiTWF1cmljZVwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNYXhpbVwiLFxuICAgIFwiTWF4aW1pbGlhblwiLFxuICAgIFwiTWVobWV0XCIsXG4gICAgXCJNZWlrXCIsXG4gICAgXCJNZWx2aW5cIixcbiAgICBcIk1lcmxpblwiLFxuICAgIFwiTWVydFwiLFxuICAgIFwiTWljaGFlbFwiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWNrXCIsXG4gICAgXCJNaWd1ZWxcIixcbiAgICBcIk1pa2FcIixcbiAgICBcIk1pa2FpbFwiLFxuICAgIFwiTWlrZVwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIk1pbG9cIixcbiAgICBcIk1pb1wiLFxuICAgIFwiTWlyYWNcIixcbiAgICBcIk1pcmNvXCIsXG4gICAgXCJNaXJrb1wiLFxuICAgIFwiTW9oYW1lZFwiLFxuICAgIFwiTW9oYW1tYWRcIixcbiAgICBcIk1vaGFtbWVkXCIsXG4gICAgXCJNb3JpdHpcIixcbiAgICBcIk1vcnRlblwiLFxuICAgIFwiTXVoYW1tZWRcIixcbiAgICBcIk11cmF0XCIsXG4gICAgXCJNdXN0YWZhXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIk5hdGhhbmFlbFwiLFxuICAgIFwiTmVsc29uXCIsXG4gICAgXCJOZW9cIixcbiAgICBcIk5ldmlvXCIsXG4gICAgXCJOaWNrXCIsXG4gICAgXCJOaWNsYXNcIixcbiAgICBcIk5pY29cIixcbiAgICBcIk5pY29sYWlcIixcbiAgICBcIk5pY29sYXNcIixcbiAgICBcIk5pZWxzXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pa2xhc1wiLFxuICAgIFwiTmlrb1wiLFxuICAgIFwiTmlrb2xhaVwiLFxuICAgIFwiTmlrb2xhc1wiLFxuICAgIFwiTmlsc1wiLFxuICAgIFwiTmlub1wiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiTm9ybWFuXCIsXG4gICAgXCJPZGluXCIsXG4gICAgXCJPa2VcIixcbiAgICBcIk9sZVwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJPbWFyXCIsXG4gICAgXCJPbnVyXCIsXG4gICAgXCJPc2NhclwiLFxuICAgIFwiT3NrYXJcIixcbiAgICBcIlBhc2NhbFwiLFxuICAgIFwiUGF0cmljZVwiLFxuICAgIFwiUGF0cmlja1wiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiUGVlclwiLFxuICAgIFwiUGVwZVwiLFxuICAgIFwiUGV0ZXJcIixcbiAgICBcIlBoaWxcIixcbiAgICBcIlBoaWxpcFwiLFxuICAgIFwiUGhpbGlwcFwiLFxuICAgIFwiUGllcnJlXCIsXG4gICAgXCJQaWV0XCIsXG4gICAgXCJQaXRcIixcbiAgICBcIlBpdXNcIixcbiAgICBcIlF1ZW50aW5cIixcbiAgICBcIlF1aXJpblwiLFxuICAgIFwiUmFmYWVsXCIsXG4gICAgXCJSYWlrXCIsXG4gICAgXCJSYW1vblwiLFxuICAgIFwiUmFwaGFlbFwiLFxuICAgIFwiUmFzbXVzXCIsXG4gICAgXCJSYXVsXCIsXG4gICAgXCJSYXlhblwiLFxuICAgIFwiUmVuw6lcIixcbiAgICBcIlJpY2FyZG9cIixcbiAgICBcIlJpY2NhcmRvXCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJSaWNrXCIsXG4gICAgXCJSaWNvXCIsXG4gICAgXCJSb2JlcnRcIixcbiAgICBcIlJvYmluXCIsXG4gICAgXCJSb2Njb1wiLFxuICAgIFwiUm9tYW5cIixcbiAgICBcIlJvbWVvXCIsXG4gICAgXCJSb25cIixcbiAgICBcIlJ1YmVuXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJTYWlkXCIsXG4gICAgXCJTYWxpaFwiLFxuICAgIFwiU2FtXCIsXG4gICAgXCJTYW1pXCIsXG4gICAgXCJTYW1teVwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYW5kcm9cIixcbiAgICBcIlNhbnRpbm9cIixcbiAgICBcIlNhc2NoYVwiLFxuICAgIFwiU2VhblwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZWxpbVwiLFxuICAgIFwiU2VtaWhcIixcbiAgICBcIlNoYXduXCIsXG4gICAgXCJTaWxhc1wiLFxuICAgIFwiU2ltZW9uXCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiU2luYW5cIixcbiAgICBcIlNreVwiLFxuICAgIFwiU3RlZmFuXCIsXG4gICAgXCJTdGVmZmVuXCIsXG4gICAgXCJTdGVwaGFuXCIsXG4gICAgXCJTdGV2ZVwiLFxuICAgIFwiU3RldmVuXCIsXG4gICAgXCJTdmVuXCIsXG4gICAgXCJTw7Zua2VcIixcbiAgICBcIlPDtnJlblwiLFxuICAgIFwiVGFoYVwiLFxuICAgIFwiVGFtaW5vXCIsXG4gICAgXCJUYW1tb1wiLFxuICAgIFwiVGFyaWtcIixcbiAgICBcIlRheWxlclwiLFxuICAgIFwiVGF5bG9yXCIsXG4gICAgXCJUZW9cIixcbiAgICBcIlRoZW9cIixcbiAgICBcIlRoZW9kb3JcIixcbiAgICBcIlRoaWVzXCIsXG4gICAgXCJUaGlsb1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJUaG9yYmVuXCIsXG4gICAgXCJUaG9yZVwiLFxuICAgIFwiVGhvcmdlXCIsXG4gICAgXCJUaWFnb1wiLFxuICAgIFwiVGlsXCIsXG4gICAgXCJUaWxsXCIsXG4gICAgXCJUaWxsbWFublwiLFxuICAgIFwiVGltXCIsXG4gICAgXCJUaW1tXCIsXG4gICAgXCJUaW1vXCIsXG4gICAgXCJUaW1vblwiLFxuICAgIFwiVGltb3RoeVwiLFxuICAgIFwiVGlub1wiLFxuICAgIFwiVGl0dXNcIixcbiAgICBcIlRpemlhblwiLFxuICAgIFwiVGphcmtcIixcbiAgICBcIlRvYmlhc1wiLFxuICAgIFwiVG9tXCIsXG4gICAgXCJUb21teVwiLFxuICAgIFwiVG9uaVwiLFxuICAgIFwiVG9ueVwiLFxuICAgIFwiVG9yYmVuXCIsXG4gICAgXCJUb3JlXCIsXG4gICAgXCJUcmlzdGFuXCIsXG4gICAgXCJUeWxlclwiLFxuICAgIFwiVHlyb25cIixcbiAgICBcIlVtdXRcIixcbiAgICBcIlZhbGVudGluXCIsXG4gICAgXCJWYWxlbnRpbm9cIixcbiAgICBcIlZlaXRcIixcbiAgICBcIlZpY3RvclwiLFxuICAgIFwiVmlrdG9yXCIsXG4gICAgXCJWaW5cIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIlZpdG9cIixcbiAgICBcIlZpdHVzXCIsXG4gICAgXCJXaWxoZWxtXCIsXG4gICAgXCJXaWxsaVwiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiV2lsbHlcIixcbiAgICBcIlhhdmVyXCIsXG4gICAgXCJZYW5uaWNcIixcbiAgICBcIllhbm5pY2tcIixcbiAgICBcIllhbm5pa1wiLFxuICAgIFwiWWFubmlzXCIsXG4gICAgXCJZYXNpblwiLFxuICAgIFwiWW91c3NlZlwiLFxuICAgIFwiWXVudXNcIixcbiAgICBcIll1c3VmXCIsXG4gICAgXCJZdmVuXCIsXG4gICAgXCJZdmVzXCIsXG4gICAgXCLDlm1lclwiLFxuICAgIFwiQWFsaXlhaFwiLFxuICAgIFwiQWJieVwiLFxuICAgIFwiQWJpZ2FpbFwiLFxuICAgIFwiQWRhXCIsXG4gICAgXCJBZGVsaW5hXCIsXG4gICAgXCJBZHJpYW5hXCIsXG4gICAgXCJBaWxlZW5cIixcbiAgICBcIkFpbWVlXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiQWxlYVwiLFxuICAgIFwiQWxlbmFcIixcbiAgICBcIkFsZXNzYVwiLFxuICAgIFwiQWxlc3NpYVwiLFxuICAgIFwiQWxleGFcIixcbiAgICBcIkFsZXhhbmRyYVwiLFxuICAgIFwiQWxleGlhXCIsXG4gICAgXCJBbGV4aXNcIixcbiAgICBcIkFsZXluYVwiLFxuICAgIFwiQWxpYVwiLFxuICAgIFwiQWxpY2FcIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIkFsaW5hXCIsXG4gICAgXCJBbGlzYVwiLFxuICAgIFwiQWxpc2hhXCIsXG4gICAgXCJBbGlzc2FcIixcbiAgICBcIkFsaXlhXCIsXG4gICAgXCJBbGl5YWhcIixcbiAgICBcIkFsbGVncmFcIixcbiAgICBcIkFsbWFcIixcbiAgICBcIkFseXNzYVwiLFxuICAgIFwiQW1hbGlhXCIsXG4gICAgXCJBbWFuZGFcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiQW1lbGllXCIsXG4gICAgXCJBbWluYVwiLFxuICAgIFwiQW1pcmFcIixcbiAgICBcIkFteVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmFiZWxcIixcbiAgICBcIkFuYXN0YXNpYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJBbmdlbGFcIixcbiAgICBcIkFuZ2VsaW5hXCIsXG4gICAgXCJBbmdlbGlxdWVcIixcbiAgICBcIkFuamFcIixcbiAgICBcIkFublwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiQW5uYWJlbFwiLFxuICAgIFwiQW5uYWJlbGxcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiQW5uYWxlbmFcIixcbiAgICBcIkFubmVcIixcbiAgICBcIkFubmVrZVwiLFxuICAgIFwiQW5uZWxpZVwiLFxuICAgIFwiQW5uZW1hcmllXCIsXG4gICAgXCJBbm5pXCIsXG4gICAgXCJBbm5pZVwiLFxuICAgIFwiQW5uaWthXCIsXG4gICAgXCJBbm55XCIsXG4gICAgXCJBbm91a1wiLFxuICAgIFwiQW50b25pYVwiLFxuICAgIFwiQXJkYVwiLFxuICAgIFwiQXJpYW5hXCIsXG4gICAgXCJBcmlhbmVcIixcbiAgICBcIkFyd2VuXCIsXG4gICAgXCJBc2hsZXlcIixcbiAgICBcIkFzeWFcIixcbiAgICBcIkF1cmVsaWFcIixcbiAgICBcIkF1cm9yYVwiLFxuICAgIFwiQXZhXCIsXG4gICAgXCJBeWxlZW5cIixcbiAgICBcIkF5bGluXCIsXG4gICAgXCJBeXNlXCIsXG4gICAgXCJBenJhXCIsXG4gICAgXCJCZXR0eVwiLFxuICAgIFwiQmlhbmNhXCIsXG4gICAgXCJCaWFua2FcIixcbiAgICBcIkNhaXRsaW5cIixcbiAgICBcIkNhcmFcIixcbiAgICBcIkNhcmluYVwiLFxuICAgIFwiQ2FybGFcIixcbiAgICBcIkNhcmxvdHRhXCIsXG4gICAgXCJDYXJtZW5cIixcbiAgICBcIkNhcm9saW5cIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXJvbGluZVwiLFxuICAgIFwiQ2Fzc2FuZHJhXCIsXG4gICAgXCJDYXRoYXJpbmFcIixcbiAgICBcIkNhdHJpblwiLFxuICAgIFwiQ2VjaWxlXCIsXG4gICAgXCJDZWNpbGlhXCIsXG4gICAgXCJDZWxpYVwiLFxuICAgIFwiQ2VsaW5hXCIsXG4gICAgXCJDZWxpbmVcIixcbiAgICBcIkNleWRhXCIsXG4gICAgXCJDZXlsaW5cIixcbiAgICBcIkNoYW50YWxcIixcbiAgICBcIkNoYXJsZWVuXCIsXG4gICAgXCJDaGFybG90dGFcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQ2hheWVubmVcIixcbiAgICBcIkNoZXllbm5lXCIsXG4gICAgXCJDaGlhcmFcIixcbiAgICBcIkNocmlzdGluXCIsXG4gICAgXCJDaHJpc3RpbmFcIixcbiAgICBcIkNpbmR5XCIsXG4gICAgXCJDbGFpcmVcIixcbiAgICBcIkNsYXJhXCIsXG4gICAgXCJDbGFyaXNzYVwiLFxuICAgIFwiQ29sbGVlblwiLFxuICAgIFwiQ29sbGllblwiLFxuICAgIFwiQ29yYVwiLFxuICAgIFwiQ29yaW5uYVwiLFxuICAgIFwiQ29zaW1hXCIsXG4gICAgXCJEYW5hXCIsXG4gICAgXCJEYW5pZWxhXCIsXG4gICAgXCJEYXJpYVwiLFxuICAgIFwiRGFybGVlblwiLFxuICAgIFwiRGVmbmVcIixcbiAgICBcIkRlbGlhXCIsXG4gICAgXCJEZW5pc2VcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEaWxhcmFcIixcbiAgICBcIkRpbmFcIixcbiAgICBcIkRvcm90aGVhXCIsXG4gICAgXCJFY3JpblwiLFxuICAgIFwiRWRhXCIsXG4gICAgXCJFaWxlZW5cIixcbiAgICBcIkVsYVwiLFxuICAgIFwiRWxhaW5lXCIsXG4gICAgXCJFbGFudXJcIixcbiAgICBcIkVsZWFcIixcbiAgICBcIkVsZW5hXCIsXG4gICAgXCJFbGVuaVwiLFxuICAgIFwiRWxlb25vcmFcIixcbiAgICBcIkVsaWFuYVwiLFxuICAgIFwiRWxpZlwiLFxuICAgIFwiRWxpbmFcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkVsbGFcIixcbiAgICBcIkVsbGVuXCIsXG4gICAgXCJFbGxpXCIsXG4gICAgXCJFbGx5XCIsXG4gICAgXCJFbHNhXCIsXG4gICAgXCJFbWVsaWVcIixcbiAgICBcIkVtZWx5XCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVtaWxpZVwiLFxuICAgIFwiRW1pbHlcIixcbiAgICBcIkVtbWFcIixcbiAgICBcIkVtbWVseVwiLFxuICAgIFwiRW1taVwiLFxuICAgIFwiRW1teVwiLFxuICAgIFwiRW5pZVwiLFxuICAgIFwiRW5uYVwiLFxuICAgIFwiRW55YVwiLFxuICAgIFwiRXNtYVwiLFxuICAgIFwiRXN0ZWxsZVwiLFxuICAgIFwiRXN0aGVyXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIkV2ZWxpblwiLFxuICAgIFwiRXZlbGluYVwiLFxuICAgIFwiRXZlbGluZVwiLFxuICAgIFwiRXZlbHluXCIsXG4gICAgXCJGYWJpZW5uZVwiLFxuICAgIFwiRmF0aW1hXCIsXG4gICAgXCJGYXRtYVwiLFxuICAgIFwiRmVsaWNpYVwiLFxuICAgIFwiRmVsaWNpdGFzXCIsXG4gICAgXCJGZWxpbmFcIixcbiAgICBcIkZlbWtlXCIsXG4gICAgXCJGZW5qYVwiLFxuICAgIFwiRmluZVwiLFxuICAgIFwiRmluaWFcIixcbiAgICBcIkZpbmphXCIsXG4gICAgXCJGaW5uamFcIixcbiAgICBcIkZpb25hXCIsXG4gICAgXCJGbG9yYVwiLFxuICAgIFwiRmxvcmVudGluZVwiLFxuICAgIFwiRnJhbmNlc2NhXCIsXG4gICAgXCJGcmFua2FcIixcbiAgICBcIkZyYW56aXNrYVwiLFxuICAgIFwiRnJlZGVyaWtlXCIsXG4gICAgXCJGcmV5YVwiLFxuICAgIFwiRnJpZGFcIixcbiAgICBcIkZyaWVkYVwiLFxuICAgIFwiRnJpZWRlcmlrZVwiLFxuICAgIFwiR2lhZGFcIixcbiAgICBcIkdpbmFcIixcbiAgICBcIkdpdWxpYVwiLFxuICAgIFwiR2l1bGlhbmFcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJIYWlsZXlcIixcbiAgICBcIkhhbmFcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIkhlaWRpXCIsXG4gICAgXCJIZWxlblwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJIZWxlbmVcIixcbiAgICBcIkhlbGluXCIsXG4gICAgXCJIZW5yaWV0dGVcIixcbiAgICBcIkhlbnJpa2VcIixcbiAgICBcIkhlcm1pbmVcIixcbiAgICBcIklkYVwiLFxuICAgIFwiSWxheWRhXCIsXG4gICAgXCJJbWtlXCIsXG4gICAgXCJJbmFcIixcbiAgICBcIkluZXNcIixcbiAgICBcIkluZ2FcIixcbiAgICBcIklua2FcIixcbiAgICBcIklyZW1cIixcbiAgICBcIklzYVwiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxsXCIsXG4gICAgXCJJc2FiZWxsYVwiLFxuICAgIFwiSXNhYmVsbGVcIixcbiAgICBcIkl2b25uZVwiLFxuICAgIFwiSmFjcXVlbGluZVwiLFxuICAgIFwiSmFtaWVcIixcbiAgICBcIkphbWlsYVwiLFxuICAgIFwiSmFuYVwiLFxuICAgIFwiSmFuZVwiLFxuICAgIFwiSmFuaW5cIixcbiAgICBcIkphbmluYVwiLFxuICAgIFwiSmFuaW5lXCIsXG4gICAgXCJKYW5uYVwiLFxuICAgIFwiSmFubmVcIixcbiAgICBcIkphcmFcIixcbiAgICBcIkphc21pblwiLFxuICAgIFwiSmFzbWluYVwiLFxuICAgIFwiSmFzbWluZVwiLFxuICAgIFwiSmVsbGFcIixcbiAgICBcIkplbm5hXCIsXG4gICAgXCJKZW5uaWZlclwiLFxuICAgIFwiSmVubnlcIixcbiAgICBcIkplc3NpY2FcIixcbiAgICBcIkplc3N5XCIsXG4gICAgXCJKZXR0ZVwiLFxuICAgIFwiSmlsXCIsXG4gICAgXCJKaWxsXCIsXG4gICAgXCJKb2FuYVwiLFxuICAgIFwiSm9hbm5hXCIsXG4gICAgXCJKb2VsaW5hXCIsXG4gICAgXCJKb2VsaW5lXCIsXG4gICAgXCJKb2VsbGVcIixcbiAgICBcIkpvaGFubmFcIixcbiAgICBcIkpvbGVlblwiLFxuICAgIFwiSm9saWVcIixcbiAgICBcIkpvbGllblwiLFxuICAgIFwiSm9saW5cIixcbiAgICBcIkpvbGluYVwiLFxuICAgIFwiSm9saW5lXCIsXG4gICAgXCJKb25hXCIsXG4gICAgXCJKb25haFwiLFxuICAgIFwiSm9ubmFcIixcbiAgICBcIkpvc2VmaW5cIixcbiAgICBcIkpvc2VmaW5lXCIsXG4gICAgXCJKb3NlcGhpblwiLFxuICAgIFwiSm9zZXBoaW5lXCIsXG4gICAgXCJKb3NpZVwiLFxuICAgIFwiSm9zeVwiLFxuICAgIFwiSm95XCIsXG4gICAgXCJKb3ljZVwiLFxuICAgIFwiSnVkaXRoXCIsXG4gICAgXCJKdWR5XCIsXG4gICAgXCJKdWxlXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuYVwiLFxuICAgIFwiSnVsaWFuZVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIkp1bGllbm5lXCIsXG4gICAgXCJKdWxpa2FcIixcbiAgICBcIkp1bGluYVwiLFxuICAgIFwiSnVuYVwiLFxuICAgIFwiSnVzdGluZVwiLFxuICAgIFwiS2FqYVwiLFxuICAgIFwiS2FyaW5hXCIsXG4gICAgXCJLYXJsYVwiLFxuICAgIFwiS2FybG90dGFcIixcbiAgICBcIkthcm9saW5hXCIsXG4gICAgXCJLYXJvbGluZVwiLFxuICAgIFwiS2Fzc2FuZHJhXCIsXG4gICAgXCJLYXRhcmluYVwiLFxuICAgIFwiS2F0aGFyaW5hXCIsXG4gICAgXCJLYXRocmluXCIsXG4gICAgXCJLYXRqYVwiLFxuICAgIFwiS2F0cmluXCIsXG4gICAgXCJLYXlhXCIsXG4gICAgXCJLYXlyYVwiLFxuICAgIFwiS2lhbmFcIixcbiAgICBcIktpYXJhXCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWJlcmxleVwiLFxuICAgIFwiS2ltYmVybHlcIixcbiAgICBcIktpcmFcIixcbiAgICBcIktsYXJhXCIsXG4gICAgXCJLb3Jpbm5hXCIsXG4gICAgXCJLcmlzdGluXCIsXG4gICAgXCJLeXJhXCIsXG4gICAgXCJMYWlsYVwiLFxuICAgIFwiTGFuYVwiLFxuICAgIFwiTGFyYVwiLFxuICAgIFwiTGFyaXNzYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkxhdXJlZW5cIixcbiAgICBcIkxhdmluaWFcIixcbiAgICBcIkxlYVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiTGVhbmFcIixcbiAgICBcIkxlYW5kcmFcIixcbiAgICBcIkxlYW5uXCIsXG4gICAgXCJMZWVcIixcbiAgICBcIkxlaWxhXCIsXG4gICAgXCJMZW5hXCIsXG4gICAgXCJMZW5lXCIsXG4gICAgXCJMZW5pXCIsXG4gICAgXCJMZW5pYVwiLFxuICAgIFwiTGVuamFcIixcbiAgICBcIkxlbnlhXCIsXG4gICAgXCJMZW9uYVwiLFxuICAgIFwiTGVvbmlcIixcbiAgICBcIkxlb25pZVwiLFxuICAgIFwiTGVvbm9yYVwiLFxuICAgIFwiTGV0aWNpYVwiLFxuICAgIFwiTGV0aXppYVwiLFxuICAgIFwiTGV2a2VcIixcbiAgICBcIkxleWxhXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpYWhcIixcbiAgICBcIkxpYW5hXCIsXG4gICAgXCJMaWxpXCIsXG4gICAgXCJMaWxpYVwiLFxuICAgIFwiTGlsaWFuXCIsXG4gICAgXCJMaWxpYW5hXCIsXG4gICAgXCJMaWxpdGhcIixcbiAgICBcIkxpbGxpXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJMaWxseVwiLFxuICAgIFwiTGlseVwiLFxuICAgIFwiTGluYVwiLFxuICAgIFwiTGluZGFcIixcbiAgICBcIkxpbmRzYXlcIixcbiAgICBcIkxpbmVcIixcbiAgICBcIkxpbm5cIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiTGlzYW5uXCIsXG4gICAgXCJMaXNhbm5lXCIsXG4gICAgXCJMaXZcIixcbiAgICBcIkxpdmlhXCIsXG4gICAgXCJMaXpcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkxvcmVlblwiLFxuICAgIFwiTG9yZW5hXCIsXG4gICAgXCJMb3R0YVwiLFxuICAgIFwiTG90dGVcIixcbiAgICBcIkxvdWlzYVwiLFxuICAgIFwiTG91aXNlXCIsXG4gICAgXCJMdWFuYVwiLFxuICAgIFwiTHVjYVwiLFxuICAgIFwiTHVjaWFcIixcbiAgICBcIkx1Y2llXCIsXG4gICAgXCJMdWNpZW5uZVwiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiTHVpc2FcIixcbiAgICBcIkx1aXNlXCIsXG4gICAgXCJMdWthXCIsXG4gICAgXCJMdW5hXCIsXG4gICAgXCJMdXppZVwiLFxuICAgIFwiTHlhXCIsXG4gICAgXCJMeWRpYVwiLFxuICAgIFwiTHluXCIsXG4gICAgXCJMeW5uXCIsXG4gICAgXCJNYWRlbGVpbmVcIixcbiAgICBcIk1hZGl0YVwiLFxuICAgIFwiTWFkbGVlblwiLFxuICAgIFwiTWFkbGVuXCIsXG4gICAgXCJNYWdkYWxlbmFcIixcbiAgICBcIk1haWtlXCIsXG4gICAgXCJNYWlsaW5cIixcbiAgICBcIk1haXJhXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJNYWxlbmFcIixcbiAgICBcIk1hbGlhXCIsXG4gICAgXCJNYWxpblwiLFxuICAgIFwiTWFsaW5hXCIsXG4gICAgXCJNYW5keVwiLFxuICAgIFwiTWFyYVwiLFxuICAgIFwiTWFyYWhcIixcbiAgICBcIk1hcmVpa2VcIixcbiAgICBcIk1hcmVuXCIsXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiTWFyaWFtXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiTWFyaWVrZVwiLFxuICAgIFwiTWFyaWVsbGFcIixcbiAgICBcIk1hcmlrYVwiLFxuICAgIFwiTWFyaW5hXCIsXG4gICAgXCJNYXJpc2FcIixcbiAgICBcIk1hcmlzc2FcIixcbiAgICBcIk1hcml0XCIsXG4gICAgXCJNYXJsYVwiLFxuICAgIFwiTWFybGVlblwiLFxuICAgIFwiTWFybGVuXCIsXG4gICAgXCJNYXJsZW5hXCIsXG4gICAgXCJNYXJsZW5lXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydGhhXCIsXG4gICAgXCJNYXJ5XCIsXG4gICAgXCJNYXJ5YW1cIixcbiAgICBcIk1hdGhpbGRhXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWF0aWxkYVwiLFxuICAgIFwiTWF4aVwiLFxuICAgIFwiTWF4aW1hXCIsXG4gICAgXCJNYXhpbmVcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heXJhXCIsXG4gICAgXCJNZWRpbmFcIixcbiAgICBcIk1lZGluZVwiLFxuICAgIFwiTWVpa2VcIixcbiAgICBcIk1lbGFuaWVcIixcbiAgICBcIk1lbGVrXCIsXG4gICAgXCJNZWxpa2VcIixcbiAgICBcIk1lbGluYVwiLFxuICAgIFwiTWVsaW5kYVwiLFxuICAgIFwiTWVsaXNcIixcbiAgICBcIk1lbGlzYVwiLFxuICAgIFwiTWVsaXNzYVwiLFxuICAgIFwiTWVybGVcIixcbiAgICBcIk1lcnZlXCIsXG4gICAgXCJNZXJ5ZW1cIixcbiAgICBcIk1ldHRlXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIk1pY2hhZWxhXCIsXG4gICAgXCJNaWNoZWxsZVwiLFxuICAgIFwiTWlla2VcIixcbiAgICBcIk1pbGFcIixcbiAgICBcIk1pbGFuYVwiLFxuICAgIFwiTWlsZW5hXCIsXG4gICAgXCJNaWxsYVwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiTWlyYVwiLFxuICAgIFwiTWlyYXlcIixcbiAgICBcIk1pcmlhbVwiLFxuICAgIFwiTWlyamFcIixcbiAgICBcIk1vbmFcIixcbiAgICBcIk1vbmlxdWVcIixcbiAgICBcIk5hZGluZVwiLFxuICAgIFwiTmFkamFcIixcbiAgICBcIk5hZW1pXCIsXG4gICAgXCJOYW5jeVwiLFxuICAgIFwiTmFvbWlcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5hdGFsaWVcIixcbiAgICBcIk5hdGhhbGllXCIsXG4gICAgXCJOZWVsZVwiLFxuICAgIFwiTmVsYVwiLFxuICAgIFwiTmVsZVwiLFxuICAgIFwiTmVsbGlcIixcbiAgICBcIk5lbGx5XCIsXG4gICAgXCJOaWFcIixcbiAgICBcIk5pY29sZVwiLFxuICAgIFwiTmlrYVwiLFxuICAgIFwiTmlrZVwiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWxhXCIsXG4gICAgXCJOaW5hXCIsXG4gICAgXCJOaXNhXCIsXG4gICAgXCJOb2VtaVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJQYXRyaWNpYVwiLFxuICAgIFwiUGF0cml6aWFcIixcbiAgICBcIlBhdWxhXCIsXG4gICAgXCJQYXVsaW5hXCIsXG4gICAgXCJQYXVsaW5lXCIsXG4gICAgXCJQZW5lbG9wZVwiLFxuICAgIFwiUGhpbGluZVwiLFxuICAgIFwiUGhvZWJlXCIsXG4gICAgXCJQaWFcIixcbiAgICBcIlJhaGVsXCIsXG4gICAgXCJSYW5pYVwiLFxuICAgIFwiUmViZWNjYVwiLFxuICAgIFwiUmViZWtrYVwiLFxuICAgIFwiUmlhbmFcIixcbiAgICBcIlJpZWtlXCIsXG4gICAgXCJSaWtlXCIsXG4gICAgXCJSb21pbmFcIixcbiAgICBcIlJvbXlcIixcbiAgICBcIlJvbmphXCIsXG4gICAgXCJSb3NhXCIsXG4gICAgXCJSb3NhbGllXCIsXG4gICAgXCJSdWJ5XCIsXG4gICAgXCJTYWJyaW5hXCIsXG4gICAgXCJTYWhyYVwiLFxuICAgIFwiU2FsbHlcIixcbiAgICBcIlNhbG9tZVwiLFxuICAgIFwiU2FtYW50aGFcIixcbiAgICBcIlNhbWlhXCIsXG4gICAgXCJTYW1pcmFcIixcbiAgICBcIlNhbmRyYVwiLFxuICAgIFwiU2FuZHlcIixcbiAgICBcIlNhbmphXCIsXG4gICAgXCJTYXBoaXJhXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiU2Fza2lhXCIsXG4gICAgXCJTZWxpblwiLFxuICAgIFwiU2VsaW5hXCIsXG4gICAgXCJTZWxtYVwiLFxuICAgIFwiU2VuYVwiLFxuICAgIFwiU2lkbmV5XCIsXG4gICAgXCJTaWVubmFcIixcbiAgICBcIlNpbGphXCIsXG4gICAgXCJTaW5hXCIsXG4gICAgXCJTaW5qYVwiLFxuICAgIFwiU21pbGxhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiU29maWVcIixcbiAgICBcIlNvbmphXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiU29yYXlhXCIsXG4gICAgXCJTdGVmYW5pZVwiLFxuICAgIFwiU3RlbGxhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIlN0aW5hXCIsXG4gICAgXCJTdWRlXCIsXG4gICAgXCJTdW1tZXJcIixcbiAgICBcIlN1c2FubmVcIixcbiAgICBcIlN2ZWFcIixcbiAgICBcIlN2ZW5qYVwiLFxuICAgIFwiU3lkbmV5XCIsXG4gICAgXCJUYWJlYVwiLFxuICAgIFwiVGFsZWFcIixcbiAgICBcIlRhbGlhXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIlRhbWlhXCIsXG4gICAgXCJUYW1pbmFcIixcbiAgICBcIlRhbmphXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUYXJqYVwiLFxuICAgIFwiVGVyZXNhXCIsXG4gICAgXCJUZXNzYVwiLFxuICAgIFwiVGhhbGVhXCIsXG4gICAgXCJUaGFsaWFcIixcbiAgICBcIlRoZWFcIixcbiAgICBcIlRoZXJlc2FcIixcbiAgICBcIlRpYVwiLFxuICAgIFwiVGluYVwiLFxuICAgIFwiVG9ta2VcIixcbiAgICBcIlR1YW5hXCIsXG4gICAgXCJWYWxlbnRpbmFcIixcbiAgICBcIlZhbGVyaWFcIixcbiAgICBcIlZhbGVyaWVcIixcbiAgICBcIlZhbmVzc2FcIixcbiAgICBcIlZlcmFcIixcbiAgICBcIlZlcm9uaWthXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiVmlrdG9yaWFcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJWaXZpYW5cIixcbiAgICBcIlZpdmllblwiLFxuICAgIFwiVml2aWVubmVcIixcbiAgICBcIldpYmtlXCIsXG4gICAgXCJXaWVia2VcIixcbiAgICBcIlhlbmlhXCIsXG4gICAgXCJZYXJhXCIsXG4gICAgXCJZYXJlblwiLFxuICAgIFwiWWFzbWluXCIsXG4gICAgXCJZbHZpXCIsXG4gICAgXCJZbHZpZVwiLFxuICAgIFwiWXZvbm5lXCIsXG4gICAgXCJaYXJhXCIsXG4gICAgXCJaZWhyYVwiLFxuICAgIFwiWmV5bmVwXCIsXG4gICAgXCJab2VcIixcbiAgICBcIlpvZXlcIixcbiAgICBcIlpvw6lcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBYmVsXCIsXG4gICAgXCJBYmljaHRcIixcbiAgICBcIkFicmFoYW1cIixcbiAgICBcIkFicmFtb3ZpY1wiLFxuICAgIFwiQWJ0XCIsXG4gICAgXCJBY2hpbGxlc1wiLFxuICAgIFwiQWNoa2luYWR6ZVwiLFxuICAgIFwiQWNrZXJtYW5uXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCJBZGFtc1wiLFxuICAgIFwiQWRlXCIsXG4gICAgXCJBZ29zdGluaVwiLFxuICAgIFwiQWhsa2VcIixcbiAgICBcIkFocmVuYmVyZ1wiLFxuICAgIFwiQWhyZW5zXCIsXG4gICAgXCJBaWduZXJcIixcbiAgICBcIkFsYmVydFwiLFxuICAgIFwiQWxicmVjaHRcIixcbiAgICBcIkFsZXhhXCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkFsaXphZGVoXCIsXG4gICAgXCJBbGxnZXllclwiLFxuICAgIFwiQW1hbm5cIixcbiAgICBcIkFtYmVyZ1wiLFxuICAgIFwiQW5kaW5nXCIsXG4gICAgXCJBbmdncmVueVwiLFxuICAgIFwiQXBpdHpcIixcbiAgICBcIkFyZW5kdFwiLFxuICAgIFwiQXJlbnNcIixcbiAgICBcIkFybmR0XCIsXG4gICAgXCJBcnllZVwiLFxuICAgIFwiQXNjaGVuYnJvaWNoXCIsXG4gICAgXCJBc3NtdXNcIixcbiAgICBcIkFzdGFmZWlcIixcbiAgICBcIkF1ZXJcIixcbiAgICBcIkF4bWFublwiLFxuICAgIFwiQmFhcmNrXCIsXG4gICAgXCJCYWNobWFublwiLFxuICAgIFwiQmFkYW5lXCIsXG4gICAgXCJCYWRlclwiLFxuICAgIFwiQmFnYW56XCIsXG4gICAgXCJCYWhsXCIsXG4gICAgXCJCYWtcIixcbiAgICBcIkJhbGNlclwiLFxuICAgIFwiQmFsY2tcIixcbiAgICBcIkJhbGtvd1wiLFxuICAgIFwiQmFsbnV3ZWl0XCIsXG4gICAgXCJCYWx6ZXJcIixcbiAgICBcIkJhbnNlXCIsXG4gICAgXCJCYXJyXCIsXG4gICAgXCJCYXJ0ZWxzXCIsXG4gICAgXCJCYXJ0aFwiLFxuICAgIFwiQmFyeWxsYVwiLFxuICAgIFwiQmFzZWRhXCIsXG4gICAgXCJCYXR0a2VcIixcbiAgICBcIkJhdWVyXCIsXG4gICAgXCJCYXVlcm1laXN0ZXJcIixcbiAgICBcIkJhdW1hbm5cIixcbiAgICBcIkJhdW1laXN0ZXJcIixcbiAgICBcIkJhdXNjaGluZ2VyXCIsXG4gICAgXCJCYXVzY2hrZVwiLFxuICAgIFwiQmF5ZXJcIixcbiAgICBcIkJlYXZvZ3VpXCIsXG4gICAgXCJCZWNrXCIsXG4gICAgXCJCZWNrZWxcIixcbiAgICBcIkJlY2tlclwiLFxuICAgIFwiQmVja21hbm5cIixcbiAgICBcIkJlZGV3aXR6XCIsXG4gICAgXCJCZWVsZVwiLFxuICAgIFwiQmVlclwiLFxuICAgIFwiQmVnZ2Vyb3dcIixcbiAgICBcIkJlaFwiLFxuICAgIFwiQmVoclwiLFxuICAgIFwiQmVocmVuYnJ1Y2hcIixcbiAgICBcIkJlbHpcIixcbiAgICBcIkJlbmRlclwiLFxuICAgIFwiQmVuZWNrZVwiLFxuICAgIFwiQmVubmVyXCIsXG4gICAgXCJCZW5uaW5nZXJcIixcbiAgICBcIkJlbnppbmdcIixcbiAgICBcIkJlcmVuZHNcIixcbiAgICBcIkJlcmdlclwiLFxuICAgIFwiQmVybmVyXCIsXG4gICAgXCJCZXJuaW5nXCIsXG4gICAgXCJCZXJ0ZW5icmVpdGVyXCIsXG4gICAgXCJCZXN0XCIsXG4gICAgXCJCZXRoa2VcIixcbiAgICBcIkJldHpcIixcbiAgICBcIkJldXNoYXVzZW5cIixcbiAgICBcIkJldXRlbHNwYWNoZXJcIixcbiAgICBcIkJleWVyXCIsXG4gICAgXCJCaWJhXCIsXG4gICAgXCJCaWNobGVyXCIsXG4gICAgXCJCaWNrZWxcIixcbiAgICBcIkJpZWRlcm1hbm5cIixcbiAgICBcIkJpZWxlclwiLFxuICAgIFwiQmllbGVydFwiLFxuICAgIFwiQmllbmFzY2hcIixcbiAgICBcIkJpZW5pYXNcIixcbiAgICBcIkJpZXNlbmJhY2hcIixcbiAgICBcIkJpZ2RlbGlcIixcbiAgICBcIkJpcmtlbWV5ZXJcIixcbiAgICBcIkJpdHRuZXJcIixcbiAgICBcIkJsYW5rXCIsXG4gICAgXCJCbGFzY2hla1wiLFxuICAgIFwiQmxhc3NuZWNrXCIsXG4gICAgXCJCbG9jaFwiLFxuICAgIFwiQmxvY2h3aXR6XCIsXG4gICAgXCJCbG9ja2hhdXNcIixcbiAgICBcIkJsdW1cIixcbiAgICBcIkJsdW1lXCIsXG4gICAgXCJCb2NrXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2dkYXNoaW5cIixcbiAgICBcIkJvZ2VucmllZGVyXCIsXG4gICAgXCJCb2hnZVwiLFxuICAgIFwiQm9sbVwiLFxuICAgIFwiQm9yZ3NjaHVsemVcIixcbiAgICBcIkJvcmtcIixcbiAgICBcIkJvcm1hbm5cIixcbiAgICBcIkJvcm5zY2hldWVyXCIsXG4gICAgXCJCb3JybWFublwiLFxuICAgIFwiQm9yc2NoXCIsXG4gICAgXCJCb3J1c2NoZXdza2lcIixcbiAgICBcIkJvc1wiLFxuICAgIFwiQm9zbGVyXCIsXG4gICAgXCJCb3Vycm91YWdcIixcbiAgICBcIkJvdXNjaGVuXCIsXG4gICAgXCJCb3hoYW1tZXJcIixcbiAgICBcIkJveWRlXCIsXG4gICAgXCJCb3pzaWtcIixcbiAgICBcIkJyYW5kXCIsXG4gICAgXCJCcmFuZGVuYnVyZ1wiLFxuICAgIFwiQnJhbmRpc1wiLFxuICAgIFwiQnJhbmR0XCIsXG4gICAgXCJCcmF1ZXJcIixcbiAgICBcIkJyYXVuXCIsXG4gICAgXCJCcmVobWVyXCIsXG4gICAgXCJCcmVpdGVuc3RlaW5cIixcbiAgICBcIkJyZW1lclwiLFxuICAgIFwiQnJlbXNlclwiLFxuICAgIFwiQnJlbm5lclwiLFxuICAgIFwiQnJldHRzY2huZWlkZXJcIixcbiAgICBcIkJyZXVcIixcbiAgICBcIkJyZXVlclwiLFxuICAgIFwiQnJpZXNlbmlja1wiLFxuICAgIFwiQnJpbmdtYW5uXCIsXG4gICAgXCJCcmlua21hbm5cIixcbiAgICBcIkJyaXhcIixcbiAgICBcIkJyb2VuaW5nXCIsXG4gICAgXCJCcm9zY2hcIixcbiAgICBcIkJydWNrbWFublwiLFxuICAgIFwiQnJ1ZGVyXCIsXG4gICAgXCJCcnVobnNcIixcbiAgICBcIkJydW5uZXJcIixcbiAgICBcIkJydW5zXCIsXG4gICAgXCJCcsOkdXRpZ2FtXCIsXG4gICAgXCJCcsO2bW1lXCIsXG4gICAgXCJCcsO8Z2dtYW5uXCIsXG4gICAgXCJCdWNoaG9selwiLFxuICAgIFwiQnVjaHJ1Y2tlclwiLFxuICAgIFwiQnVkZXJcIixcbiAgICBcIkJ1bHRtYW5uXCIsXG4gICAgXCJCdW5qZXNcIixcbiAgICBcIkJ1cmdlclwiLFxuICAgIFwiQnVyZ2hhZ2VuXCIsXG4gICAgXCJCdXJraGFyZFwiLFxuICAgIFwiQnVya2hhcmR0XCIsXG4gICAgXCJCdXJtZWlzdGVyXCIsXG4gICAgXCJCdXNjaFwiLFxuICAgIFwiQnVzY2hiYXVtXCIsXG4gICAgXCJCdXNlbWFublwiLFxuICAgIFwiQnVzc1wiLFxuICAgIFwiQnVzc2VcIixcbiAgICBcIkJ1c3NtYW5uXCIsXG4gICAgXCJCeXJkXCIsXG4gICAgXCJCw6Rja2VyXCIsXG4gICAgXCJCw7ZobVwiLFxuICAgIFwiQsO2bmlzY2hcIixcbiAgICBcIkLDtnJnZWxpbmdcIixcbiAgICBcIkLDtnJuZXJcIixcbiAgICBcIkLDtnR0bmVyXCIsXG4gICAgXCJCw7xjaGVsZVwiLFxuICAgIFwiQsO8aGxlclwiLFxuICAgIFwiQsO8a2VyXCIsXG4gICAgXCJCw7xuZ2VuZXJcIixcbiAgICBcIkLDvHJnZXJcIixcbiAgICBcIkLDvHJrbGVpblwiLFxuICAgIFwiQsO8c2NoZXJcIixcbiAgICBcIkLDvHR0bmVyXCIsXG4gICAgXCJDYW1hcmFcIixcbiAgICBcIkNhcmxvd2l0elwiLFxuICAgIFwiQ2FybHNvaG5cIixcbiAgICBcIkNhc3BhcmlcIixcbiAgICBcIkNhc3BlcnNcIixcbiAgICBcIkNoYXByb25cIixcbiAgICBcIkNocmlzdFwiLFxuICAgIFwiQ2llcnBpbnNraVwiLFxuICAgIFwiQ2xhcml1c1wiLFxuICAgIFwiQ2xlZW1cIixcbiAgICBcIkNsZXZlXCIsXG4gICAgXCJDb1wiLFxuICAgIFwiQ29ucmFkXCIsXG4gICAgXCJDb3JkZXNcIixcbiAgICBcIkNvcm5lbHNlblwiLFxuICAgIFwiQ29yc1wiLFxuICAgIFwiQ290dGhhcmR0XCIsXG4gICAgXCJDcmV3c1wiLFxuICAgIFwiQ3JvbmrDpGdlclwiLFxuICAgIFwiQ3Jvc3Nrb2ZwXCIsXG4gICAgXCJEYVwiLFxuICAgIFwiRGFobVwiLFxuICAgIFwiRGFobWVuXCIsXG4gICAgXCJEYWltZXJcIixcbiAgICBcIkRhbWFza2VcIixcbiAgICBcIkRhbm5lYmVyZ1wiLFxuICAgIFwiRGFubmVyXCIsXG4gICAgXCJEYXViXCIsXG4gICAgXCJEYXVibmVyXCIsXG4gICAgXCJEYXVkcmljaFwiLFxuICAgIFwiRGF1ZXJcIixcbiAgICBcIkRhdW1cIixcbiAgICBcIkRhdXRoXCIsXG4gICAgXCJEYXV0emVuYmVyZ1wiLFxuICAgIFwiRGVcIixcbiAgICBcIkRlY2tlclwiLFxuICAgIFwiRGVja2VydFwiLFxuICAgIFwiRGVlcmJlcmdcIixcbiAgICBcIkRlaG1lbFwiLFxuICAgIFwiRGVqYVwiLFxuICAgIFwiRGVsb25nZVwiLFxuICAgIFwiRGVtdXRcIixcbiAgICBcIkRlbmdsZXJcIixcbiAgICBcIkRlbm5lclwiLFxuICAgIFwiRGVuemluZ2VyXCIsXG4gICAgXCJEZXJyXCIsXG4gICAgXCJEZXJ0bWFublwiLFxuICAgIFwiRGV0aGxvZmZcIixcbiAgICBcIkRldXNjaGxlXCIsXG4gICAgXCJEaWVja21hbm5cIixcbiAgICBcIkRpZWRyaWNoXCIsXG4gICAgXCJEaWVrbWFublwiLFxuICAgIFwiRGllbmVsXCIsXG4gICAgXCJEaWVzXCIsXG4gICAgXCJEaWV0cmljaFwiLFxuICAgIFwiRGlldHpcIixcbiAgICBcIkRpZXR6c2NoXCIsXG4gICAgXCJEaWV6ZWxcIixcbiAgICBcIkRpbGxhXCIsXG4gICAgXCJEaW5nZWxzdGVkdFwiLFxuICAgIFwiRGlwcGxcIixcbiAgICBcIkRpdHRtYW5uXCIsXG4gICAgXCJEaXR0bWFyXCIsXG4gICAgXCJEaXR0bWVyXCIsXG4gICAgXCJEaXhcIixcbiAgICBcIkRvYmJydW56XCIsXG4gICAgXCJEb2JsZXJcIixcbiAgICBcIkRvaHJpbmdcIixcbiAgICBcIkRvbGNoXCIsXG4gICAgXCJEb2xkXCIsXG4gICAgXCJEb21icm93c2tpXCIsXG4gICAgXCJEb25pZVwiLFxuICAgIFwiRG9za29jenluc2tpXCIsXG4gICAgXCJEcmFndVwiLFxuICAgIFwiRHJlY2hzbGVyXCIsXG4gICAgXCJEcmVlc1wiLFxuICAgIFwiRHJlaGVyXCIsXG4gICAgXCJEcmVpZXJcIixcbiAgICBcIkRyZWlzc2lnYWNrZXJcIixcbiAgICBcIkRyZXNzbGVyXCIsXG4gICAgXCJEcmV3c1wiLFxuICAgIFwiRHVtYVwiLFxuICAgIFwiRHV0a2lld2ljelwiLFxuICAgIFwiRHlldHRcIixcbiAgICBcIkR5bHVzXCIsXG4gICAgXCJEw6RjaGVydFwiLFxuICAgIFwiRMO2YmVsXCIsXG4gICAgXCJEw7ZyaW5nXCIsXG4gICAgXCJEw7ZybmVyXCIsXG4gICAgXCJEw7ZycmVcIixcbiAgICBcIkTDvGNrXCIsXG4gICAgXCJFYmVyaGFyZFwiLFxuICAgIFwiRWJlcmhhcmR0XCIsXG4gICAgXCJFY2tlclwiLFxuICAgIFwiRWNraGFyZHRcIixcbiAgICBcIkVkb3JoXCIsXG4gICAgXCJFZmZsZXJcIixcbiAgICBcIkVnZ2VubXVlbGxlclwiLFxuICAgIFwiRWhtXCIsXG4gICAgXCJFaG1hbm5cIixcbiAgICBcIkVocmlnXCIsXG4gICAgXCJFaWNoXCIsXG4gICAgXCJFaWNobWFublwiLFxuICAgIFwiRWlmZXJ0XCIsXG4gICAgXCJFaW5lcnRcIixcbiAgICBcIkVpc2VubGF1ZXJcIixcbiAgICBcIkVrcG9cIixcbiAgICBcIkVsYmVcIixcbiAgICBcIkVsZXl0aFwiLFxuICAgIFwiRWxzc1wiLFxuICAgIFwiRW1lcnRcIixcbiAgICBcIkVtbWVsbWFublwiLFxuICAgIFwiRW5kZXJcIixcbiAgICBcIkVuZ2VsXCIsXG4gICAgXCJFbmdlbGVuXCIsXG4gICAgXCJFbmdlbG1hbm5cIixcbiAgICBcIkVwbGluaXVzXCIsXG4gICAgXCJFcmRtYW5uXCIsXG4gICAgXCJFcmhhcmR0XCIsXG4gICAgXCJFcmxlaVwiLFxuICAgIFwiRXJtXCIsXG4gICAgXCJFcm5zdFwiLFxuICAgIFwiRXJ0bFwiLFxuICAgIFwiRXJ3ZXNcIixcbiAgICBcIkVzZW53ZWluXCIsXG4gICAgXCJFc3NlclwiLFxuICAgIFwiRXZlcnNcIixcbiAgICBcIkV2ZXJ0c1wiLFxuICAgIFwiRXdhbGRcIixcbiAgICBcIkZhaG5lclwiLFxuICAgIFwiRmFsbGVyXCIsXG4gICAgXCJGYWx0ZXJcIixcbiAgICBcIkZhcmJlclwiLFxuICAgIFwiRmFzc2JlbmRlclwiLFxuICAgIFwiRmF1bGhhYmVyXCIsXG4gICAgXCJGZWhyaWdcIixcbiAgICBcIkZlbGRcIixcbiAgICBcIkZlbGtlXCIsXG4gICAgXCJGZWxsZXJcIixcbiAgICBcIkZlbm5lclwiLFxuICAgIFwiRmVuc2tlXCIsXG4gICAgXCJGZXVlcmJhY2hcIixcbiAgICBcIkZpZXR6XCIsXG4gICAgXCJGaWdsXCIsXG4gICAgXCJGaWd1cmFcIixcbiAgICBcIkZpbGlwb3dza2lcIixcbiAgICBcIkZpbHNpbmdlclwiLFxuICAgIFwiRmluY2tlXCIsXG4gICAgXCJGaW5rXCIsXG4gICAgXCJGaW5rZVwiLFxuICAgIFwiRmlzY2hlclwiLFxuICAgIFwiRml0c2NoZW5cIixcbiAgICBcIkZsZWlzY2hlclwiLFxuICAgIFwiRmxlaXNjaG1hbm5cIixcbiAgICBcIkZsb2RlclwiLFxuICAgIFwiRmxvcmN6YWtcIixcbiAgICBcIkZsb3JlXCIsXG4gICAgXCJGbG90dG1hbm5cIixcbiAgICBcIkZvcmtlbFwiLFxuICAgIFwiRm9yc3RcIixcbiAgICBcIkZyYWhtZWtlXCIsXG4gICAgXCJGcmFua1wiLFxuICAgIFwiRnJhbmtlXCIsXG4gICAgXCJGcmFudGFcIixcbiAgICBcIkZyYW50elwiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyYW56aXNcIixcbiAgICBcIkZyYW56bWFublwiLFxuICAgIFwiRnJhdWVuXCIsXG4gICAgXCJGcmF1ZW5kb3JmXCIsXG4gICAgXCJGcmVpZ2FuZ1wiLFxuICAgIFwiRnJlaW1hbm5cIixcbiAgICBcIkZyZWltdXRoXCIsXG4gICAgXCJGcmVpc2VuXCIsXG4gICAgXCJGcmVuemVsXCIsXG4gICAgXCJGcmV5XCIsXG4gICAgXCJGcmlja2VcIixcbiAgICBcIkZyaWVkXCIsXG4gICAgXCJGcmllZGVrXCIsXG4gICAgXCJGcmllZGVuYmVyZ1wiLFxuICAgIFwiRnJpZWRtYW5uXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaWVzc1wiLFxuICAgIFwiRnJpc2NoXCIsXG4gICAgXCJGcm9oblwiLFxuICAgIFwiRnJvc2NoXCIsXG4gICAgXCJGdWNoc1wiLFxuICAgIFwiRnVobGJyw7xnZ2VcIixcbiAgICBcIkZ1c2VuaWdcIixcbiAgICBcIkZ1c3RcIixcbiAgICBcIkbDtnJzdGVyXCIsXG4gICAgXCJHYWJhXCIsXG4gICAgXCJHYWJpdXNcIixcbiAgICBcIkdhYmxlclwiLFxuICAgIFwiR2Fkc2NoaWV3XCIsXG4gICAgXCJHYWtzdMOkZHRlclwiLFxuICAgIFwiR2FsYW5kZXJcIixcbiAgICBcIkdhbWxpblwiLFxuICAgIFwiR2FtcGVyXCIsXG4gICAgXCJHYW5nbnVzXCIsXG4gICAgXCJHYW56bWFublwiLFxuICAgIFwiR2FyYXR2YVwiLFxuICAgIFwiR2FzdFwiLFxuICAgIFwiR2FzdGVsXCIsXG4gICAgXCJHYXR6a2FcIixcbiAgICBcIkdhdWRlclwiLFxuICAgIFwiR2ViaGFyZHRcIixcbiAgICBcIkdlZXNlXCIsXG4gICAgXCJHZWhyZVwiLFxuICAgIFwiR2VocmlnXCIsXG4gICAgXCJHZWhyaW5nXCIsXG4gICAgXCJHZWhya2VcIixcbiAgICBcIkdlaWdlclwiLFxuICAgIFwiR2Vpc2xlclwiLFxuICAgIFwiR2Vpc3NsZXJcIixcbiAgICBcIkdlbGxpbmdcIixcbiAgICBcIkdlbnNcIixcbiAgICBcIkdlcmJlbm5vd1wiLFxuICAgIFwiR2VyZGVsXCIsXG4gICAgXCJHZXJoYXJkdFwiLFxuICAgIFwiR2Vyc2NobGVyXCIsXG4gICAgXCJHZXJzb25cIixcbiAgICBcIkdlc2VsbFwiLFxuICAgIFwiR2V5ZXJcIixcbiAgICBcIkdoaXJtYWlcIixcbiAgICBcIkdob3NoXCIsXG4gICAgXCJHaWVobFwiLFxuICAgIFwiR2llcmlzY2hcIixcbiAgICBcIkdpZXNhXCIsXG4gICAgXCJHaWVzY2hlXCIsXG4gICAgXCJHaWxkZVwiLFxuICAgIFwiR2xhdHRpbmdcIixcbiAgICBcIkdvZWJlbFwiLFxuICAgIFwiR29lZGlja2VcIixcbiAgICBcIkdvbGRiZWNrXCIsXG4gICAgXCJHb2xkZnVzc1wiLFxuICAgIFwiR29sZGthbXBcIixcbiAgICBcIkdvbGRrw7xobGVcIixcbiAgICBcIkdvbGxlclwiLFxuICAgIFwiR29sbGluZ1wiLFxuICAgIFwiR29sbG5vd1wiLFxuICAgIFwiR29sb21za2lcIixcbiAgICBcIkdvbWJlcnRcIixcbiAgICBcIkdvdHRoYXJkdFwiLFxuICAgIFwiR290dHNjaGFsa1wiLFxuICAgIFwiR290elwiLFxuICAgIFwiR295XCIsXG4gICAgXCJHcmFkemtpXCIsXG4gICAgXCJHcmFmXCIsXG4gICAgXCJHcmFtc1wiLFxuICAgIFwiR3Jhc3NlXCIsXG4gICAgXCJHcmF0emt5XCIsXG4gICAgXCJHcmF1XCIsXG4gICAgXCJHcmViXCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZ2VyXCIsXG4gICAgXCJHcmVpdGhhbm5lclwiLFxuICAgIFwiR3Jlc2NobmVyXCIsXG4gICAgXCJHcmllbVwiLFxuICAgIFwiR3JpZXNlXCIsXG4gICAgXCJHcmltbVwiLFxuICAgIFwiR3JvbWlzY2hcIixcbiAgICBcIkdyb3NzXCIsXG4gICAgXCJHcm9zc2VyXCIsXG4gICAgXCJHcm9zc2hlaW1cIixcbiAgICBcIkdyb3Nza29wZlwiLFxuICAgIFwiR3JvdGhhdXNcIixcbiAgICBcIkdyb3Roa29wcFwiLFxuICAgIFwiR3JvdGtlXCIsXG4gICAgXCJHcnViZVwiLFxuICAgIFwiR3J1YmVyXCIsXG4gICAgXCJHcnVuZG1hbm5cIixcbiAgICBcIkdydW5pbmdcIixcbiAgICBcIkdydXN6ZWNraVwiLFxuICAgIFwiR3LDtnNzXCIsXG4gICAgXCJHcsO2dHppbmdlclwiLFxuICAgIFwiR3LDvG5cIixcbiAgICBcIkdyw7xuZXJcIixcbiAgICBcIkd1bW1lbHRcIixcbiAgICBcIkd1bmtlbFwiLFxuICAgIFwiR3VudGhlclwiLFxuICAgIFwiR3V0amFoclwiLFxuICAgIFwiR3V0b3dpY3pcIixcbiAgICBcIkd1dHNjaGFua1wiLFxuICAgIFwiR8O2YmVsXCIsXG4gICAgXCJHw7Zja2VyaXR6XCIsXG4gICAgXCJHw7ZobGVyXCIsXG4gICAgXCJHw7ZybGljaFwiLFxuICAgIFwiR8O2cm1lclwiLFxuICAgIFwiR8O2dHpcIixcbiAgICBcIkfDtnR6ZWxtYW5uXCIsXG4gICAgXCJHw7xsZGVtZWlzdGVyXCIsXG4gICAgXCJHw7xudGhlclwiLFxuICAgIFwiR8O8bnpcIixcbiAgICBcIkfDvHJiaWdcIixcbiAgICBcIkhhYWNrXCIsXG4gICAgXCJIYWFmXCIsXG4gICAgXCJIYWJlbFwiLFxuICAgIFwiSGFjaGVcIixcbiAgICBcIkhhY2tidXNjaFwiLFxuICAgIFwiSGFja2VsYnVzY2hcIixcbiAgICBcIkhhZGZpZWxkXCIsXG4gICAgXCJIYWR3aWNoXCIsXG4gICAgXCJIYWZlcmthbXBcIixcbiAgICBcIkhhaG5cIixcbiAgICBcIkhhamVrXCIsXG4gICAgXCJIYWxsbWFublwiLFxuICAgIFwiSGFtYW5uXCIsXG4gICAgXCJIYW5lbmJlcmdlclwiLFxuICAgIFwiSGFubmVja2VyXCIsXG4gICAgXCJIYW5uaXNrZVwiLFxuICAgIFwiSGFuc2VuXCIsXG4gICAgXCJIYXJkeVwiLFxuICAgIFwiSGFyZ2Fzc2VyXCIsXG4gICAgXCJIYXJtc1wiLFxuICAgIFwiSGFybmFwcFwiLFxuICAgIFwiSGFydGVyXCIsXG4gICAgXCJIYXJ0aW5nXCIsXG4gICAgXCJIYXJ0bGllYlwiLFxuICAgIFwiSGFydG1hbm5cIixcbiAgICBcIkhhcnR3aWdcIixcbiAgICBcIkhhcnR6XCIsXG4gICAgXCJIYXNjaGtlXCIsXG4gICAgXCJIYXNsZXJcIixcbiAgICBcIkhhc3NlXCIsXG4gICAgXCJIYXNzZmVsZFwiLFxuICAgIFwiSGF1Z1wiLFxuICAgIFwiSGF1a2VcIixcbiAgICBcIkhhdXB0XCIsXG4gICAgXCJIYXZlcm5leVwiLFxuICAgIFwiSGViZXJzdHJlaXRcIixcbiAgICBcIkhlY2hsZXJcIixcbiAgICBcIkhlY2h0XCIsXG4gICAgXCJIZWNrXCIsXG4gICAgXCJIZWRlcm1hbm5cIixcbiAgICBcIkhlaGxcIixcbiAgICBcIkhlaWRlbG1hbm5cIixcbiAgICBcIkhlaWRsZXJcIixcbiAgICBcIkhlaW5lbWFublwiLFxuICAgIFwiSGVpbmlnXCIsXG4gICAgXCJIZWlua2VcIixcbiAgICBcIkhlaW5yaWNoXCIsXG4gICAgXCJIZWluemVcIixcbiAgICBcIkhlaXNlclwiLFxuICAgIFwiSGVpc3RcIixcbiAgICBcIkhlbGxtYW5uXCIsXG4gICAgXCJIZWxtXCIsXG4gICAgXCJIZWxta2VcIixcbiAgICBcIkhlbHBsaW5nXCIsXG4gICAgXCJIZW5nbWl0aFwiLFxuICAgIFwiSGVua2VsXCIsXG4gICAgXCJIZW5uZXNcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIZW5zZVwiLFxuICAgIFwiSGVuc2VsXCIsXG4gICAgXCJIZW50ZWxcIixcbiAgICBcIkhlbnRzY2hlbFwiLFxuICAgIFwiSGVudHNjaGtlXCIsXG4gICAgXCJIZXBwZXJsZVwiLFxuICAgIFwiSGVyYmVyZ2VyXCIsXG4gICAgXCJIZXJicmFuZFwiLFxuICAgIFwiSGVyaW5nXCIsXG4gICAgXCJIZXJtYW5uXCIsXG4gICAgXCJIZXJtZWNrZVwiLFxuICAgIFwiSGVybXNcIixcbiAgICBcIkhlcm9sZFwiLFxuICAgIFwiSGVycm1hbm5cIixcbiAgICBcIkhlcnNjaG1hbm5cIixcbiAgICBcIkhlcnRlbFwiLFxuICAgIFwiSGVyd2VnXCIsXG4gICAgXCJIZXJ3aWdcIixcbiAgICBcIkhlcnplbmJlcmdcIixcbiAgICBcIkhlc3NcIixcbiAgICBcIkhlc3NlXCIsXG4gICAgXCJIZXNzZWtcIixcbiAgICBcIkhlc3NsZXJcIixcbiAgICBcIkhldHpsZXJcIixcbiAgICBcIkhldWNrXCIsXG4gICAgXCJIZXlkZW3DvGxsZXJcIixcbiAgICBcIkhpZWJsXCIsXG4gICAgXCJIaWxkZWJyYW5kXCIsXG4gICAgXCJIaWxkZW5icmFuZFwiLFxuICAgIFwiSGlsZ2VuZG9yZlwiLFxuICAgIFwiSGlsbGFyZFwiLFxuICAgIFwiSGlsbGVyXCIsXG4gICAgXCJIaW5nc2VuXCIsXG4gICAgXCJIaW5nc3RcIixcbiAgICBcIkhpbnJpY2hzXCIsXG4gICAgXCJIaXJzY2hcIixcbiAgICBcIkhpcnNjaGJlcmdcIixcbiAgICBcIkhpcnRcIixcbiAgICBcIkhvZGVhXCIsXG4gICAgXCJIb2ZmbWFuXCIsXG4gICAgXCJIb2ZmbWFublwiLFxuICAgIFwiSG9mbWFublwiLFxuICAgIFwiSG9oZW5iZXJnZXJcIixcbiAgICBcIkhvaGxcIixcbiAgICBcIkhvaG5cIixcbiAgICBcIkhvaG5oZWlzZXJcIixcbiAgICBcIkhvbGRcIixcbiAgICBcIkhvbGR0XCIsXG4gICAgXCJIb2xpbnNraVwiLFxuICAgIFwiSG9sbFwiLFxuICAgIFwiSG9sdGZyZXRlclwiLFxuICAgIFwiSG9selwiLFxuICAgIFwiSG9semRlcHBlXCIsXG4gICAgXCJIb2x6bmVyXCIsXG4gICAgXCJIb21tZWxcIixcbiAgICBcIkhvbnpcIixcbiAgICBcIkhvb3NzXCIsXG4gICAgXCJIb3BwZVwiLFxuICAgIFwiSG9yYWtcIixcbiAgICBcIkhvcm5cIixcbiAgICBcIkhvcm5hXCIsXG4gICAgXCJIb3JudW5nXCIsXG4gICAgXCJIb3J0XCIsXG4gICAgXCJIb3dhcmRcIixcbiAgICBcIkh1YmVyXCIsXG4gICAgXCJIdWNrZXN0ZWluXCIsXG4gICAgXCJIdWRha1wiLFxuICAgIFwiSHVlYmVsXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJIdWhuXCIsXG4gICAgXCJIdWpvXCIsXG4gICAgXCJIdWtlXCIsXG4gICAgXCJIdWxzXCIsXG4gICAgXCJIdW1iZXJ0XCIsXG4gICAgXCJIdW5la2VcIixcbiAgICBcIkh1dGhcIixcbiAgICBcIkjDpGJlclwiLFxuICAgIFwiSMOkZm5lclwiLFxuICAgIFwiSMO2Y2tlXCIsXG4gICAgXCJIw7ZmdFwiLFxuICAgIFwiSMO2aG5lXCIsXG4gICAgXCJIw7ZuaWdcIixcbiAgICBcIkjDtnJkdFwiLFxuICAgIFwiSMO8YmVuYmVja2VyXCIsXG4gICAgXCJIw7xibFwiLFxuICAgIFwiSMO8Ym5lclwiLFxuICAgIFwiSMO8Z2VsXCIsXG4gICAgXCJIw7x0dGNoZXJcIixcbiAgICBcIkjDvHR0ZXJcIixcbiAgICBcIkliZVwiLFxuICAgIFwiSWhseVwiLFxuICAgIFwiSWxsaW5nXCIsXG4gICAgXCJJc2FrXCIsXG4gICAgXCJJc2VrZW5tZWllclwiLFxuICAgIFwiSXR0XCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYWd1c2NoXCIsXG4gICAgXCJKYWhuXCIsXG4gICAgXCJKYWhua2VcIixcbiAgICBcIkpha29ic1wiLFxuICAgIFwiSmFrdWJjenlrXCIsXG4gICAgXCJKYW1ib3JcIixcbiAgICBcIkphbXJvenlcIixcbiAgICBcIkphbmRlclwiLFxuICAgIFwiSmFuaWNoXCIsXG4gICAgXCJKYW5rZVwiLFxuICAgIFwiSmFuc2VuXCIsXG4gICAgXCJKYXJldHNcIixcbiAgICBcIkphcm9zXCIsXG4gICAgXCJKYXNpbnNraVwiLFxuICAgIFwiSmFzcGVyXCIsXG4gICAgXCJKZWdvcm92XCIsXG4gICAgXCJKZWxsaW5naGF1c1wiLFxuICAgIFwiSmVvcmdhXCIsXG4gICAgXCJKZXJzY2hhYmVrXCIsXG4gICAgXCJKZXNzXCIsXG4gICAgXCJKb2huXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9zc2FcIixcbiAgICBcIkp1Y2tlblwiLFxuICAgIFwiSnVuZ1wiLFxuICAgIFwiSnVuZ2JsdXRoXCIsXG4gICAgXCJKdW5ndG9uXCIsXG4gICAgXCJKdXN0XCIsXG4gICAgXCJKw7xyZ2Vuc1wiLFxuICAgIFwiS2Fjem1hcmVrXCIsXG4gICAgXCJLYWVzbWFjaGVyXCIsXG4gICAgXCJLYWhsXCIsXG4gICAgXCJLYWhsZXJ0XCIsXG4gICAgXCJLYWhsZXNcIixcbiAgICBcIkthaGxtZXllclwiLFxuICAgIFwiS2Fpc2VyXCIsXG4gICAgXCJLYWxpbm93c2tpXCIsXG4gICAgXCJLYWxsYWJpc1wiLFxuICAgIFwiS2FsbGVuc2VlXCIsXG4gICAgXCJLYW1wZlwiLFxuICAgIFwiS2FtcHNjaHVsdGVcIixcbiAgICBcIkthcHBlXCIsXG4gICAgXCJLYXBwbGVyXCIsXG4gICAgXCJLYXJob2ZmXCIsXG4gICAgXCJLYXJyYXNzXCIsXG4gICAgXCJLYXJzdFwiLFxuICAgIFwiS2Fyc3RlblwiLFxuICAgIFwiS2FydXNcIixcbiAgICBcIkthc3NcIixcbiAgICBcIkthc3RlblwiLFxuICAgIFwiS2FzdG5lclwiLFxuICAgIFwiS2F0emluc2tpXCIsXG4gICAgXCJLYXVmbWFublwiLFxuICAgIFwiS2F1bFwiLFxuICAgIFwiS2F1c2VtYW5uXCIsXG4gICAgXCJLYXdvaGxcIixcbiAgICBcIkthem1hcmVrXCIsXG4gICAgXCJLZWR6aWVyc2tpXCIsXG4gICAgXCJLZWlsXCIsXG4gICAgXCJLZWluZXJcIixcbiAgICBcIktlbGxlclwiLFxuICAgIFwiS2VsbVwiLFxuICAgIFwiS2VtcGVcIixcbiAgICBcIktlbXBlclwiLFxuICAgIFwiS2VtcHRlclwiLFxuICAgIFwiS2VybFwiLFxuICAgIFwiS2VyblwiLFxuICAgIFwiS2Vzc2VscmluZ1wiLFxuICAgIFwiS2Vzc2Vsc2NobMOkZ2VyXCIsXG4gICAgXCJLZXR0ZVwiLFxuICAgIFwiS2V0dGVuaXNcIixcbiAgICBcIktldXRlbFwiLFxuICAgIFwiS2lja1wiLFxuICAgIFwiS2llc3NsaW5nXCIsXG4gICAgXCJLaW5hZGV0ZXJcIixcbiAgICBcIktpbnplbFwiLFxuICAgIFwiS2luenlcIixcbiAgICBcIktpcmNoXCIsXG4gICAgXCJLaXJzdFwiLFxuICAgIFwiS2lzYWJha2FcIixcbiAgICBcIktsYWFzXCIsXG4gICAgXCJLbGFidWhuXCIsXG4gICAgXCJLbGFwcGVyXCIsXG4gICAgXCJLbGF1ZGVyXCIsXG4gICAgXCJLbGF1c1wiLFxuICAgIFwiS2xlZWJlcmdcIixcbiAgICBcIktsZWliZXJcIixcbiAgICBcIktsZWluXCIsXG4gICAgXCJLbGVpbmVydFwiLFxuICAgIFwiS2xlaW5pbmdlclwiLFxuICAgIFwiS2xlaW5tYW5uXCIsXG4gICAgXCJLbGVpbnN0ZXViZXJcIixcbiAgICBcIktsZWlzc1wiLFxuICAgIFwiS2xlbW1lXCIsXG4gICAgXCJLbGltY3pha1wiLFxuICAgIFwiS2xpbmdlclwiLFxuICAgIFwiS2xpbmtcIixcbiAgICBcIktsb3BzY2hcIixcbiAgICBcIktsb3NlXCIsXG4gICAgXCJLbG9zc1wiLFxuICAgIFwiS2x1Z2VcIixcbiAgICBcIktsdXdlXCIsXG4gICAgXCJLbmFiZVwiLFxuICAgIFwiS25laWZlbFwiLFxuICAgIFwiS25ldHNjaFwiLFxuICAgIFwiS25pZXNcIixcbiAgICBcIktuaXBwZWxcIixcbiAgICBcIktub2JlbFwiLFxuICAgIFwiS25vYmxpY2hcIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJLbm9yclwiLFxuICAgIFwiS25vcnNjaGVpZHRcIixcbiAgICBcIktudXRcIixcbiAgICBcIktvYnNcIixcbiAgICBcIktvY2hcIixcbiAgICBcIktvY2hhblwiLFxuICAgIFwiS29ja1wiLFxuICAgIFwiS29jenVsbGFcIixcbiAgICBcIktvZGVyaXNjaFwiLFxuICAgIFwiS29laGxcIixcbiAgICBcIktvZWhsZXJcIixcbiAgICBcIktvZW5pZ1wiLFxuICAgIFwiS29lc3RlclwiLFxuICAgIFwiS29mZmVyc2NobGFnZXJcIixcbiAgICBcIktvaGFcIixcbiAgICBcIktvaGxlXCIsXG4gICAgXCJLb2hsbWFublwiLFxuICAgIFwiS29obmxlXCIsXG4gICAgXCJLb2hydFwiLFxuICAgIFwiS29qXCIsXG4gICAgXCJLb2xiXCIsXG4gICAgXCJLb2xlaXNraVwiLFxuICAgIFwiS29sb2thc1wiLFxuICAgIFwiS29tb2xsXCIsXG4gICAgXCJLb25pZWN6bnlcIixcbiAgICBcIktvbmlnXCIsXG4gICAgXCJLb25vd1wiLFxuICAgIFwiS29ueWFcIixcbiAgICBcIktvb2JcIixcbiAgICBcIktvcGZcIixcbiAgICBcIktvc2Vua293XCIsXG4gICAgXCJLb3N0ZXJcIixcbiAgICBcIktvc3pld3NraVwiLFxuICAgIFwiS291YmFhXCIsXG4gICAgXCJLb3ZhY3NcIixcbiAgICBcIktvd2FsaWNrXCIsXG4gICAgXCJLb3dhbGluc2tpXCIsXG4gICAgXCJLb3pha2lld2ljelwiLFxuICAgIFwiS3JhYmJlXCIsXG4gICAgXCJLcmFmdFwiLFxuICAgIFwiS3JhbFwiLFxuICAgIFwiS3JhbWVyXCIsXG4gICAgXCJLcmF1ZWxcIixcbiAgICBcIktyYXVzXCIsXG4gICAgXCJLcmF1c2VcIixcbiAgICBcIktyYXVzcGVcIixcbiAgICBcIktyZWJcIixcbiAgICBcIktyZWJzXCIsXG4gICAgXCJLcmVpc3NpZ1wiLFxuICAgIFwiS3Jlc3NlXCIsXG4gICAgXCJLcmV1dHpcIixcbiAgICBcIktyaWVnZXJcIixcbiAgICBcIktyaXBwbmVyXCIsXG4gICAgXCJLcm9kaW5nZXJcIixcbiAgICBcIktyb2huXCIsXG4gICAgXCJLcm9sXCIsXG4gICAgXCJLcm9uXCIsXG4gICAgXCJLcnVlZ2VyXCIsXG4gICAgXCJLcnVnXCIsXG4gICAgXCJLcnVnZXJcIixcbiAgICBcIktydWxsXCIsXG4gICAgXCJLcnVzY2hpbnNraVwiLFxuICAgIFwiS3LDpG1lclwiLFxuICAgIFwiS3LDtmNrZXJ0XCIsXG4gICAgXCJLcsO2Z2VyXCIsXG4gICAgXCJLcsO8Z2VyXCIsXG4gICAgXCJLdWJlcmFcIixcbiAgICBcIkt1ZmFobFwiLFxuICAgIFwiS3VobGVlXCIsXG4gICAgXCJLdWhuZW5cIixcbiAgICBcIkt1bGltYW5uXCIsXG4gICAgXCJLdWxtYVwiLFxuICAgIFwiS3VtYmVybnVzc1wiLFxuICAgIFwiS3VtbWxlXCIsXG4gICAgXCJLdW56XCIsXG4gICAgXCJLdXBmZXJcIixcbiAgICBcIkt1cHByaW9uXCIsXG4gICAgXCJLdXByaW9uXCIsXG4gICAgXCJLdXJuaWNraVwiLFxuICAgIFwiS3VycmF0XCIsXG4gICAgXCJLdXJzY2hpbGdlblwiLFxuICAgIFwiS3VzY2hld2l0elwiLFxuICAgIFwiS3VzY2htYW5uXCIsXG4gICAgXCJLdXNrZVwiLFxuICAgIFwiS3VzdGVybWFublwiLFxuICAgIFwiS3V0c2NoZXJhdWVyXCIsXG4gICAgXCJLdXR6bmVyXCIsXG4gICAgXCJLd2Fkd29cIixcbiAgICBcIkvDpGhsZXJcIixcbiAgICBcIkvDpHRoZXJcIixcbiAgICBcIkvDtmhsZXJcIixcbiAgICBcIkvDtmhyYnLDvGNrXCIsXG4gICAgXCJLw7ZocmVcIixcbiAgICBcIkvDtmxvdHplaVwiLFxuICAgIFwiS8O2bmlnXCIsXG4gICAgXCJLw7ZwZXJuaWNrXCIsXG4gICAgXCJLw7ZzZW9nbHVcIixcbiAgICBcIkvDumhuXCIsXG4gICAgXCJLw7pobmVydFwiLFxuICAgIFwiS8O8aG5cIixcbiAgICBcIkvDvGhuZWxcIixcbiAgICBcIkvDvGhuZW11bmRcIixcbiAgICBcIkvDvGhuZXJ0XCIsXG4gICAgXCJLw7xobmtlXCIsXG4gICAgXCJLw7xzdGVyc1wiLFxuICAgIFwiS8O8dGVyXCIsXG4gICAgXCJMYWFja1wiLFxuICAgIFwiTGFja1wiLFxuICAgIFwiTGFkZXdpZ1wiLFxuICAgIFwiTGFrb215XCIsXG4gICAgXCJMYW1tZXJ0XCIsXG4gICAgXCJMYW1vc1wiLFxuICAgIFwiTGFuZG1hbm5cIixcbiAgICBcIkxhbmdcIixcbiAgICBcIkxhbmdlXCIsXG4gICAgXCJMYW5nZmVsZFwiLFxuICAgIFwiTGFuZ2hpcnRcIixcbiAgICBcIkxhbmlnXCIsXG4gICAgXCJMYXVja25lclwiLFxuICAgIFwiTGF1aW5nZXJcIixcbiAgICBcIkxhdXLDqW5cIixcbiAgICBcIkxhdXNlY2tlclwiLFxuICAgIFwiTGF1eFwiLFxuICAgIFwiTGF3c1wiLFxuICAgIFwiTGF4XCIsXG4gICAgXCJMZWJlcmVyXCIsXG4gICAgXCJMZWhtYW5uXCIsXG4gICAgXCJMZWhuZXJcIixcbiAgICBcIkxlaWJvbGRcIixcbiAgICBcIkxlaWRlXCIsXG4gICAgXCJMZWltYmFjaFwiLFxuICAgIFwiTGVpcG9sZFwiLFxuICAgIFwiTGVpc3RcIixcbiAgICBcIkxlaXRlclwiLFxuICAgIFwiTGVpdGVyaXR6XCIsXG4gICAgXCJMZWl0aGVpbVwiLFxuICAgIFwiTGVpd2VzbWVpZXJcIixcbiAgICBcIkxlbmZlcnNcIixcbiAgICBcIkxlbmtcIixcbiAgICBcIkxlbnpcIixcbiAgICBcIkxlbnplblwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJMZXB0aGluXCIsXG4gICAgXCJMZXNjaFwiLFxuICAgIFwiTGVzY2huaWtcIixcbiAgICBcIkxldHplbHRlclwiLFxuICAgIFwiTGV3aW5cIixcbiAgICBcIkxld2tlXCIsXG4gICAgXCJMZXlja2VzXCIsXG4gICAgXCJMZ1wiLFxuICAgIFwiTGljaHRlbmZlbGRcIixcbiAgICBcIkxpY2h0ZW5oYWdlblwiLFxuICAgIFwiTGljaHRsXCIsXG4gICAgXCJMaWViYWNoXCIsXG4gICAgXCJMaWViZVwiLFxuICAgIFwiTGllYmljaFwiLFxuICAgIFwiTGllYm9sZFwiLFxuICAgIFwiTGllZGVyXCIsXG4gICAgXCJMaWVuc2jDtmZ0XCIsXG4gICAgXCJMaW5kZW5cIixcbiAgICBcIkxpbmRlbmJlcmdcIixcbiAgICBcIkxpbmRlbm1heWVyXCIsXG4gICAgXCJMaW5kbmVyXCIsXG4gICAgXCJMaW5rZVwiLFxuICAgIFwiTGlubmVuYmF1bVwiLFxuICAgIFwiTGlwcGVcIixcbiAgICBcIkxpcHNrZVwiLFxuICAgIFwiTGlwdXNcIixcbiAgICBcIkxpc2Noa2FcIixcbiAgICBcIkxvYmluZ2VyXCIsXG4gICAgXCJMb2dzY2hcIixcbiAgICBcIkxvaG1hbm5cIixcbiAgICBcIkxvaHJlXCIsXG4gICAgXCJMb2hzZVwiLFxuICAgIFwiTG9rYXJcIixcbiAgICBcIkxvb2dlblwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3NjaFwiLFxuICAgIFwiTG9za2FcIixcbiAgICBcIkxvdHRcIixcbiAgICBcIkxveVwiLFxuICAgIFwiTHViaW5hXCIsXG4gICAgXCJMdWRvbGZcIixcbiAgICBcIkx1ZmZ0XCIsXG4gICAgXCJMdWtvc2NoZWtcIixcbiAgICBcIkx1dGplXCIsXG4gICAgXCJMdXR6XCIsXG4gICAgXCJMw7ZzZXJcIixcbiAgICBcIkzDtndhXCIsXG4gICAgXCJMw7xia2VcIixcbiAgICBcIk1hYWtcIixcbiAgICBcIk1hY3pleVwiLFxuICAgIFwiTWFkZXR6a3lcIixcbiAgICBcIk1hZHVidWtvXCIsXG4gICAgXCJNYWlcIixcbiAgICBcIk1haWVyXCIsXG4gICAgXCJNYWlzY2hcIixcbiAgICBcIk1hbGVrXCIsXG4gICAgXCJNYWxrdXNcIixcbiAgICBcIk1hbGxtYW5uXCIsXG4gICAgXCJNYWx1Y2hhXCIsXG4gICAgXCJNYW5uc1wiLFxuICAgIFwiTWFuelwiLFxuICAgIFwiTWFyYWhyZW5zXCIsXG4gICAgXCJNYXJjaGV3c2tpXCIsXG4gICAgXCJNYXJnaXNcIixcbiAgICBcIk1hcmtvd3NraVwiLFxuICAgIFwiTWFybFwiLFxuICAgIFwiTWFybmVyXCIsXG4gICAgXCJNYXJxdWFydFwiLFxuICAgIFwiTWFyc2NoZWtcIixcbiAgICBcIk1hcnRlbFwiLFxuICAgIFwiTWFydGVuXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIk1hcnhcIixcbiAgICBcIk1hcnhlblwiLFxuICAgIFwiTWF0aGVzXCIsXG4gICAgXCJNYXRoaWVzXCIsXG4gICAgXCJNYXRoaXN6aWtcIixcbiAgICBcIk1hdHNjaGtlXCIsXG4gICAgXCJNYXR0ZXJuXCIsXG4gICAgXCJNYXR0aGVzXCIsXG4gICAgXCJNYXR1bGFcIixcbiAgICBcIk1hdVwiLFxuICAgIFwiTWF1cmVyXCIsXG4gICAgXCJNYXVyb2ZmXCIsXG4gICAgXCJNYXlcIixcbiAgICBcIk1heWJhY2hcIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNZWJvbGRcIixcbiAgICBcIk1laGxcIixcbiAgICBcIk1laGxob3JuXCIsXG4gICAgXCJNZWhsb3JuXCIsXG4gICAgXCJNZWllclwiLFxuICAgIFwiTWVpc2NoXCIsXG4gICAgXCJNZWlzc25lclwiLFxuICAgIFwiTWVsb25pXCIsXG4gICAgXCJNZWx6ZXJcIixcbiAgICBcIk1lbmdhXCIsXG4gICAgXCJNZW5uZVwiLFxuICAgIFwiTWVuc2FoXCIsXG4gICAgXCJNZW5zaW5nXCIsXG4gICAgXCJNZXJrZWxcIixcbiAgICBcIk1lcnNlYnVyZ1wiLFxuICAgIFwiTWVydGVuc1wiLFxuICAgIFwiTWVzbG9oXCIsXG4gICAgXCJNZXR6Z2VyXCIsXG4gICAgXCJNZXR6bmVyXCIsXG4gICAgXCJNZXdlc1wiLFxuICAgIFwiTWV5ZXJcIixcbiAgICBcIk1pY2hhbGxla1wiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWVsa2VcIixcbiAgICBcIk1pa2l0ZW5rb1wiLFxuICAgIFwiTWlsZGVcIixcbiAgICBcIk1pbmFoXCIsXG4gICAgXCJNaW50emxhZmZcIixcbiAgICBcIk1vY2tlbmhhdXB0XCIsXG4gICAgXCJNb2VkZVwiLFxuICAgIFwiTW9lZGxcIixcbiAgICBcIk1vZWxsZXJcIixcbiAgICBcIk1vZ3VlbmFyYVwiLFxuICAgIFwiTW9oclwiLFxuICAgIFwiTW9ocmhhcmRcIixcbiAgICBcIk1vbGl0b3JcIixcbiAgICBcIk1vbGxcIixcbiAgICBcIk1vbGxlclwiLFxuICAgIFwiTW9semFuXCIsXG4gICAgXCJNb250YWdcIixcbiAgICBcIk1vb3JtYW5uXCIsXG4gICAgXCJNb3JkaG9yc3RcIixcbiAgICBcIk1vcmdlbnN0ZXJuXCIsXG4gICAgXCJNb3JoZWxmZXJcIixcbiAgICBcIk1vcml0elwiLFxuICAgIFwiTW9zZXJcIixcbiAgICBcIk1vdGNoZWJvblwiLFxuICAgIFwiTW90emVuYmLDpGNrZXJcIixcbiAgICBcIk1ydWdhbGxhXCIsXG4gICAgXCJNdWNrZW50aGFsZXJcIixcbiAgICBcIk11ZXNcIixcbiAgICBcIk11bGxlclwiLFxuICAgIFwiTXVscmFpblwiLFxuICAgIFwiTcOkY2h0aWdcIixcbiAgICBcIk3DpGRlclwiLFxuICAgIFwiTcO2Y2tzXCIsXG4gICAgXCJNw7ZnZW5idXJnXCIsXG4gICAgXCJNw7Zoc25lclwiLFxuICAgIFwiTcO2bGRuZXJcIixcbiAgICBcIk3DtmxsZW5iZWNrXCIsXG4gICAgXCJNw7ZsbGVyXCIsXG4gICAgXCJNw7ZsbGluZ2VyXCIsXG4gICAgXCJNw7Zyc2NoXCIsXG4gICAgXCJNw7xobGVpc1wiLFxuICAgIFwiTcO8bGxlclwiLFxuICAgIFwiTcO8bmNoXCIsXG4gICAgXCJOYWJlaW5cIixcbiAgICBcIk5hYm93XCIsXG4gICAgXCJOYWdlbFwiLFxuICAgIFwiTmFubmVuXCIsXG4gICAgXCJOYXN0dm9nZWxcIixcbiAgICBcIk5hdVwiLFxuICAgIFwiTmF1YmVydFwiLFxuICAgIFwiTmF1bWFublwiLFxuICAgIFwiTmVcIixcbiAgICBcIk5laW1rZVwiLFxuICAgIFwiTmVyaXVzXCIsXG4gICAgXCJOZXViYXVlclwiLFxuICAgIFwiTmV1YmVydFwiLFxuICAgIFwiTmV1ZW5kb3JmXCIsXG4gICAgXCJOZXVtYWlyXCIsXG4gICAgXCJOZXVtYW5uXCIsXG4gICAgXCJOZXVwZXJ0XCIsXG4gICAgXCJOZXVyb2hyXCIsXG4gICAgXCJOZXVzY2h3YW5kZXJcIixcbiAgICBcIk5ld3RvblwiLFxuICAgIFwiTmV5XCIsXG4gICAgXCJOaWNvbGF5XCIsXG4gICAgXCJOaWVkZXJtZWllclwiLFxuICAgIFwiTmlla2xhdXNvblwiLFxuICAgIFwiTmlrbGF1c1wiLFxuICAgIFwiTml0enNjaGVcIixcbiAgICBcIk5vYWNrXCIsXG4gICAgXCJOb2RsZXJcIixcbiAgICBcIk5vbHRlXCIsXG4gICAgXCJOb3JtYW5uXCIsXG4gICAgXCJOb3JyaXNcIixcbiAgICBcIk5vcnRob2ZmXCIsXG4gICAgXCJOb3dha1wiLFxuICAgIFwiTnVzc2JlY2tcIixcbiAgICBcIk53YWNodWt3dVwiLFxuICAgIFwiTnl0cmFcIixcbiAgICBcIk7DtmhcIixcbiAgICBcIk9iZXJlbVwiLFxuICAgIFwiT2Jlcmdmw7ZsbFwiLFxuICAgIFwiT2Jlcm1haWVyXCIsXG4gICAgXCJPY2hzXCIsXG4gICAgXCJPZXNlclwiLFxuICAgIFwiT2xicmljaFwiLFxuICAgIFwiT25uZW5cIixcbiAgICBcIk9waGV5XCIsXG4gICAgXCJPcHBvbmdcIixcbiAgICBcIk9ydGhcIixcbiAgICBcIk9ydGhtYW5uXCIsXG4gICAgXCJPc2Noa2VuYXRcIixcbiAgICBcIk9zZWlcIixcbiAgICBcIk9zZW5iZXJnXCIsXG4gICAgXCJPc3RlbmRhcnBcIixcbiAgICBcIk9zdHdhbGRcIixcbiAgICBcIk90dGVcIixcbiAgICBcIk90dG9cIixcbiAgICBcIlBhZXNsZXJcIixcbiAgICBcIlBham9ua1wiLFxuICAgIFwiUGFsbGVudGluXCIsXG4gICAgXCJQYW56aWdcIixcbiAgICBcIlBhc2Noa2VcIixcbiAgICBcIlBhdHp3YWhsXCIsXG4gICAgXCJQYXVrbmVyXCIsXG4gICAgXCJQZXNlbG1hblwiLFxuICAgIFwiUGV0ZXJcIixcbiAgICBcIlBldGVyc1wiLFxuICAgIFwiUGV0em9sZFwiLFxuICAgIFwiUGZlaWZmZXJcIixcbiAgICBcIlBmZW5uaWdcIixcbiAgICBcIlBmZXJzaWNoXCIsXG4gICAgXCJQZmluZ3N0ZW5cIixcbiAgICBcIlBmbGllZ2VyXCIsXG4gICAgXCJQZmzDvGduZXJcIixcbiAgICBcIlBoaWxpcHBcIixcbiAgICBcIlBpY2hsbWFpZXJcIixcbiAgICBcIlBpZXNrZXJcIixcbiAgICBcIlBpZXRzY2hcIixcbiAgICBcIlBpbmdwYW5rXCIsXG4gICAgXCJQaW5ub2NrXCIsXG4gICAgXCJQaXBwaWdcIixcbiAgICBcIlBpdHNjaHVnaW5cIixcbiAgICBcIlBsYW5rXCIsXG4gICAgXCJQbGFzc1wiLFxuICAgIFwiUGxhdHplclwiLFxuICAgIFwiUGxhdWtcIixcbiAgICBcIlBsYXV0elwiLFxuICAgIFwiUGxldHNjaFwiLFxuICAgIFwiUGxvdHppdHprYVwiLFxuICAgIFwiUG9laG5cIixcbiAgICBcIlBvZXNjaGxcIixcbiAgICBcIlBvZ29yemVsc2tpXCIsXG4gICAgXCJQb2hsXCIsXG4gICAgXCJQb2hsYW5kXCIsXG4gICAgXCJQb2hsZVwiLFxuICAgIFwiUG9saWZrYVwiLFxuICAgIFwiUG9saXp6aVwiLFxuICAgIFwiUG9sbG3DpGNoZXJcIixcbiAgICBcIlBvbXBcIixcbiAgICBcIlBvbml0enNjaFwiLFxuICAgIFwiUG9yc2NoZVwiLFxuICAgIFwiUG9ydGhcIixcbiAgICBcIlBvc2NobWFublwiLFxuICAgIFwiUG9zZXJcIixcbiAgICBcIlBvdHRlbFwiLFxuICAgIFwiUHJhaFwiLFxuICAgIFwiUHJhbmdlXCIsXG4gICAgXCJQcmVkaWdlclwiLFxuICAgIFwiUHJlc3NsZXJcIixcbiAgICBcIlByZXVrXCIsXG4gICAgXCJQcmV1c3NcIixcbiAgICBcIlByZXlcIixcbiAgICBcIlByaWVtZXJcIixcbiAgICBcIlByb3NrZVwiLFxuICAgIFwiUHVzY2hcIixcbiAgICBcIlDDtmNoZVwiLFxuICAgIFwiUMO2Z2VcIixcbiAgICBcIlJhYWJlXCIsXG4gICAgXCJSYWJlbnN0ZWluXCIsXG4gICAgXCJSYWNoXCIsXG4gICAgXCJSYWR0a2VcIixcbiAgICBcIlJhaG5cIixcbiAgICBcIlJhbmZ0bFwiLFxuICAgIFwiUmFuZ2VuXCIsXG4gICAgXCJSYW56XCIsXG4gICAgXCJSYXBwXCIsXG4gICAgXCJSYXRoXCIsXG4gICAgXCJSYXVcIixcbiAgICBcIlJhdWJ1Y2hcIixcbiAgICBcIlJhdWt1Y1wiLFxuICAgIFwiUmF1dGVua3JhbnpcIixcbiAgICBcIlJlaHdhZ2VuXCIsXG4gICAgXCJSZWliZXJcIixcbiAgICBcIlJlaWNoYXJkdFwiLFxuICAgIFwiUmVpY2hlbFwiLFxuICAgIFwiUmVpY2hsaW5nXCIsXG4gICAgXCJSZWlmXCIsXG4gICAgXCJSZWlmZW5yYXRoXCIsXG4gICAgXCJSZWltYW5uXCIsXG4gICAgXCJSZWluYmVyZ1wiLFxuICAgIFwiUmVpbmVsdFwiLFxuICAgIFwiUmVpbmhhcmR0XCIsXG4gICAgXCJSZWlua2VcIixcbiAgICBcIlJlaXR6ZVwiLFxuICAgIFwiUmVua1wiLFxuICAgIFwiUmVudHpcIixcbiAgICBcIlJlbnpcIixcbiAgICBcIlJlcHBpblwiLFxuICAgIFwiUmVzdGxlXCIsXG4gICAgXCJSZXN0b3JmZlwiLFxuICAgIFwiUmV0emtlXCIsXG4gICAgXCJSZXViZXJcIixcbiAgICBcIlJldW1hbm5cIixcbiAgICBcIlJldXNcIixcbiAgICBcIlJldXNzXCIsXG4gICAgXCJSZXVzc2VcIixcbiAgICBcIlJoZWRlclwiLFxuICAgIFwiUmhvZGVuXCIsXG4gICAgXCJSaWNoYXJkc1wiLFxuICAgIFwiUmljaHRlclwiLFxuICAgIFwiUmllZGVsXCIsXG4gICAgXCJSaWVkaWdlclwiLFxuICAgIFwiUmllZ2VyXCIsXG4gICAgXCJSaWVrbWFublwiLFxuICAgIFwiUmllcGxcIixcbiAgICBcIlJpZXJtZWllclwiLFxuICAgIFwiUmllc3RlclwiLFxuICAgIFwiUmlldGhtw7xsbGVyXCIsXG4gICAgXCJSaWV0bcO8bGxlclwiLFxuICAgIFwiUmlldHNjaGVyXCIsXG4gICAgXCJSaW5nZWxcIixcbiAgICBcIlJpbmdlclwiLFxuICAgIFwiUmlua1wiLFxuICAgIFwiUmlwa2VuXCIsXG4gICAgXCJSaXRvc2VrXCIsXG4gICAgXCJSaXRzY2hlbFwiLFxuICAgIFwiUml0dGVyXCIsXG4gICAgXCJSaXR0d2VnXCIsXG4gICAgXCJSaXR6XCIsXG4gICAgXCJSb2JhXCIsXG4gICAgXCJSb2NrbWVpZXJcIixcbiAgICBcIlJvZGVoYXVcIixcbiAgICBcIlJvZG93c2tpXCIsXG4gICAgXCJSb2Vja2VyXCIsXG4gICAgXCJSb2dnYXR6XCIsXG4gICAgXCJSb2hsw6RuZGVyXCIsXG4gICAgXCJSb2hyZXJcIixcbiAgICBcIlJva29zc2FcIixcbiAgICBcIlJvbGVkZXJcIixcbiAgICBcIlJvbG9mZlwiLFxuICAgIFwiUm9vc1wiLFxuICAgIFwiUm9zYmFjaFwiLFxuICAgIFwiUm9zY2hpbnNreVwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiUm9zZW5hdWVyXCIsXG4gICAgXCJSb3NlbmJhdWVyXCIsXG4gICAgXCJSb3NlbnRoYWxcIixcbiAgICBcIlJvc2tzY2hcIixcbiAgICBcIlJvc3NiZXJnXCIsXG4gICAgXCJSb3NzbGVyXCIsXG4gICAgXCJSb3RoXCIsXG4gICAgXCJSb3RoZXJcIixcbiAgICBcIlJ1Y2hcIixcbiAgICBcIlJ1Y2tkZXNjaGVsXCIsXG4gICAgXCJSdW1wZlwiLFxuICAgIFwiUnVwcHJlY2h0XCIsXG4gICAgXCJSdXRoXCIsXG4gICAgXCJSeWppa2hcIixcbiAgICBcIlJ5emloXCIsXG4gICAgXCJSw6RkbGVyXCIsXG4gICAgXCJSw6RudHNjaFwiLFxuICAgIFwiUsO2ZGlnZXJcIixcbiAgICBcIlLDtnNlXCIsXG4gICAgXCJSw7Z0dGdlclwiLFxuICAgIFwiUsO8Y2tlclwiLFxuICAgIFwiUsO8ZGlnZXJcIixcbiAgICBcIlLDvHRlclwiLFxuICAgIFwiU2FjaHNlXCIsXG4gICAgXCJTYWNrXCIsXG4gICAgXCJTYWZsYW5pc1wiLFxuICAgIFwiU2FnYWZlXCIsXG4gICAgXCJTYWdvbmFzXCIsXG4gICAgXCJTYWhuZXJcIixcbiAgICBcIlNhaWxlXCIsXG4gICAgXCJTYWlsZXJcIixcbiAgICBcIlNhbG93XCIsXG4gICAgXCJTYWx6ZXJcIixcbiAgICBcIlNhbHptYW5uXCIsXG4gICAgXCJTYW1tZXJ0XCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIlNhcnZhcmlcIixcbiAgICBcIlNhdHRlbG1haWVyXCIsXG4gICAgXCJTYXVlclwiLFxuICAgIFwiU2F1ZXJsYW5kXCIsXG4gICAgXCJTYXVtd2ViZXJcIixcbiAgICBcIlNhdm9pYVwiLFxuICAgIFwiU2NjXCIsXG4gICAgXCJTY2hhY2h0XCIsXG4gICAgXCJTY2hhZWZlclwiLFxuICAgIFwiU2NoYWZmYXJ6aWtcIixcbiAgICBcIlNjaGFoYmFzaWFuXCIsXG4gICAgXCJTY2hhcmZcIixcbiAgICBcIlNjaGVkbGVyXCIsXG4gICAgXCJTY2hlZXJcIixcbiAgICBcIlNjaGVsa1wiLFxuICAgIFwiU2NoZWxsZW5iZWNrXCIsXG4gICAgXCJTY2hlbWJlcmFcIixcbiAgICBcIlNjaGVua1wiLFxuICAgIFwiU2NoZXJiYXJ0aFwiLFxuICAgIFwiU2NoZXJlclwiLFxuICAgIFwiU2NoZXJzaW5nXCIsXG4gICAgXCJTY2hlcnpcIixcbiAgICBcIlNjaGV1cmVyXCIsXG4gICAgXCJTY2hldXJpbmdcIixcbiAgICBcIlNjaGV5dHRcIixcbiAgICBcIlNjaGllbGtlXCIsXG4gICAgXCJTY2hpZXNrb3dcIixcbiAgICBcIlNjaGlsZGhhdWVyXCIsXG4gICAgXCJTY2hpbGxpbmdcIixcbiAgICBcIlNjaGltYVwiLFxuICAgIFwiU2NoaW1tZXJcIixcbiAgICBcIlNjaGluZHppZWxvcnpcIixcbiAgICBcIlNjaGlybWVyXCIsXG4gICAgXCJTY2hpcnJtZWlzdGVyXCIsXG4gICAgXCJTY2hsYWNodGVyXCIsXG4gICAgXCJTY2hsYW5nZW5cIixcbiAgICBcIlNjaGxhd2l0elwiLFxuICAgIFwiU2NobGVjaHR3ZWdcIixcbiAgICBcIlNjaGxleVwiLFxuICAgIFwiU2NobGljaHRcIixcbiAgICBcIlNjaGxpdHplclwiLFxuICAgIFwiU2NobWFsemxlXCIsXG4gICAgXCJTY2htaWRcIixcbiAgICBcIlNjaG1pZHRcIixcbiAgICBcIlNjaG1pZHRjaGVuXCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJTY2htaXR6XCIsXG4gICAgXCJTY2htdWhsXCIsXG4gICAgXCJTY2huZWlkZXJcIixcbiAgICBcIlNjaG5lbHRpbmdcIixcbiAgICBcIlNjaG5pZWRlclwiLFxuICAgIFwiU2NobmllZGVybWVpZXJcIixcbiAgICBcIlNjaG7DvHJlclwiLFxuICAgIFwiU2Nob2JlcmdcIixcbiAgICBcIlNjaG9selwiLFxuICAgIFwiU2Nob25iZXJnXCIsXG4gICAgXCJTY2hvbmRlbG1haWVyXCIsXG4gICAgXCJTY2hvcnJcIixcbiAgICBcIlNjaG90dFwiLFxuICAgIFwiU2Nob3R0bWFublwiLFxuICAgIFwiU2Nob3VyZW5cIixcbiAgICBcIlNjaHJhZGVyXCIsXG4gICAgXCJTY2hyYW1tXCIsXG4gICAgXCJTY2hyZWNrXCIsXG4gICAgXCJTY2hyZWliZXJcIixcbiAgICBcIlNjaHJlaW5lclwiLFxuICAgIFwiU2NocmVpdGVyXCIsXG4gICAgXCJTY2hyb2RlclwiLFxuICAgIFwiU2NocsO2ZGVyXCIsXG4gICAgXCJTY2h1ZXJtYW5uXCIsXG4gICAgXCJTY2h1ZmZcIixcbiAgICBcIlNjaHVoYWpcIixcbiAgICBcIlNjaHVsZHRcIixcbiAgICBcIlNjaHVsdFwiLFxuICAgIFwiU2NodWx0ZVwiLFxuICAgIFwiU2NodWx0elwiLFxuICAgIFwiU2NodWx0emVcIixcbiAgICBcIlNjaHVselwiLFxuICAgIFwiU2NodWx6ZVwiLFxuICAgIFwiU2NodW1hY2hlclwiLFxuICAgIFwiU2NodW1hbm5cIixcbiAgICBcIlNjaHVwcFwiLFxuICAgIFwiU2NodXJpXCIsXG4gICAgXCJTY2h1c3RlclwiLFxuICAgIFwiU2Nod2FiXCIsXG4gICAgXCJTY2h3YWxtXCIsXG4gICAgXCJTY2h3YW5iZWNrXCIsXG4gICAgXCJTY2h3YW5ka2VcIixcbiAgICBcIlNjaHdhbml0elwiLFxuICAgIFwiU2Nod2FydGhvZmZcIixcbiAgICBcIlNjaHdhcnR6XCIsXG4gICAgXCJTY2h3YXJ6XCIsXG4gICAgXCJTY2h3YXJ6ZXJcIixcbiAgICBcIlNjaHdhcnprb3BmXCIsXG4gICAgXCJTY2h3YXJ6bWVpZXJcIixcbiAgICBcIlNjaHdhdGxvXCIsXG4gICAgXCJTY2h3ZWlzZnVydGhcIixcbiAgICBcIlNjaHdlbm5lblwiLFxuICAgIFwiU2Nod2VyZHRuZXJcIixcbiAgICBcIlNjaHdpZGRlXCIsXG4gICAgXCJTY2h3aXJrc2NobGllc1wiLFxuICAgIFwiU2Nod3VjaG93XCIsXG4gICAgXCJTY2jDpGZlclwiLFxuICAgIFwiU2Now6RmZmVsXCIsXG4gICAgXCJTY2jDpGZmZXJcIixcbiAgICBcIlNjaMOkbmluZ1wiLFxuICAgIFwiU2Now7Zja2VsXCIsXG4gICAgXCJTY2jDtm5iYWxsXCIsXG4gICAgXCJTY2jDtm5iZWNrXCIsXG4gICAgXCJTY2jDtm5iZXJnXCIsXG4gICAgXCJTY2jDtm5lYmVja1wiLFxuICAgIFwiU2Now7ZuZW5iZXJnZXJcIixcbiAgICBcIlNjaMO2bmZlbGRcIixcbiAgICBcIlNjaMO2bmhlcnJcIixcbiAgICBcIlNjaMO2bmxlYmVcIixcbiAgICBcIlNjaMO2dHpcIixcbiAgICBcIlNjaMO8bGVyXCIsXG4gICAgXCJTY2jDvHBwZWxcIixcbiAgICBcIlNjaMO8dHpcIixcbiAgICBcIlNjaMO8dHplXCIsXG4gICAgXCJTZWVnZXJcIixcbiAgICBcIlNlZWxpZ1wiLFxuICAgIFwiU2VobHNcIixcbiAgICBcIlNlaWJvbGRcIixcbiAgICBcIlNlaWRlbFwiLFxuICAgIFwiU2VpZGVyc1wiLFxuICAgIFwiU2VpZ2VsXCIsXG4gICAgXCJTZWlsZXJcIixcbiAgICBcIlNlaXR6XCIsXG4gICAgXCJTZW1pc2NoXCIsXG4gICAgXCJTZW5rZWxcIixcbiAgICBcIlNld2FsZFwiLFxuICAgIFwiU2llYmVsXCIsXG4gICAgXCJTaWViZXJ0XCIsXG4gICAgXCJTaWVnbGluZ1wiLFxuICAgIFwiU2llbGVtYW5uXCIsXG4gICAgXCJTaWVtb25cIixcbiAgICBcIlNpZW5lclwiLFxuICAgIFwiU2lldmVyc1wiLFxuICAgIFwiU2lld2VydFwiLFxuICAgIFwiU2lobGVyXCIsXG4gICAgXCJTaWxsYWhcIixcbiAgICBcIlNpbW9uXCIsXG4gICAgXCJTaW5uaHViZXJcIixcbiAgICBcIlNpc2Noa2FcIixcbiAgICBcIlNraWJpY2tpXCIsXG4gICAgXCJTbGFkZWtcIixcbiAgICBcIlNsb3R0YVwiLFxuICAgIFwiU21pZWphXCIsXG4gICAgXCJTb2JvbGxcIixcbiAgICBcIlNva29sb3dza2lcIixcbiAgICBcIlNvbGxlclwiLFxuICAgIFwiU29sbG5lclwiLFxuICAgIFwiU29tbWVyXCIsXG4gICAgXCJTb21zc2ljaFwiLFxuICAgIFwiU29ublwiLFxuICAgIFwiU29ubmFiZW5kXCIsXG4gICAgXCJTcGFoblwiLFxuICAgIFwiU3BhbmtcIixcbiAgICBcIlNwZWxtZXllclwiLFxuICAgIFwiU3BpZWdlbGJ1cmdcIixcbiAgICBcIlNwaWVsdm9nZWxcIixcbiAgICBcIlNwaW5uZXJcIixcbiAgICBcIlNwaXR6bcO8bGxlclwiLFxuICAgIFwiU3BsaW50ZXJcIixcbiAgICBcIlNwb3JyZXJcIixcbiAgICBcIlNwcmVuZ2VyXCIsXG4gICAgXCJTcMO2dHRlbFwiLFxuICAgIFwiU3RhaGxcIixcbiAgICBcIlN0YW5nXCIsXG4gICAgXCJTdGFuZ2VyXCIsXG4gICAgXCJTdGF1c3NcIixcbiAgICBcIlN0ZWRpbmdcIixcbiAgICBcIlN0ZWZmZW5cIixcbiAgICBcIlN0ZWZmbnlcIixcbiAgICBcIlN0ZWlkbFwiLFxuICAgIFwiU3RlaWdhdWZcIixcbiAgICBcIlN0ZWluXCIsXG4gICAgXCJTdGVpbmVja2VcIixcbiAgICBcIlN0ZWluZXJ0XCIsXG4gICAgXCJTdGVpbmthbXBcIixcbiAgICBcIlN0ZWlubWV0elwiLFxuICAgIFwiU3RlbGtlbnNcIixcbiAgICBcIlN0ZW5nZWxcIixcbiAgICBcIlN0ZW5nbFwiLFxuICAgIFwiU3RlbnplbFwiLFxuICAgIFwiU3RlcGFub3ZcIixcbiAgICBcIlN0ZXBoYW5cIixcbiAgICBcIlN0ZXJuXCIsXG4gICAgXCJTdGV1a1wiLFxuICAgIFwiU3RpZWZcIixcbiAgICBcIlN0aWZlbFwiLFxuICAgIFwiU3RvbGxcIixcbiAgICBcIlN0b2xsZVwiLFxuICAgIFwiU3RvbHpcIixcbiAgICBcIlN0b3JsXCIsXG4gICAgXCJTdG9ycFwiLFxuICAgIFwiU3RvdXRqZXNkaWprXCIsXG4gICAgXCJTdHJhdG1hbm5cIixcbiAgICBcIlN0cmF1YlwiLFxuICAgIFwiU3RyYXVzYVwiLFxuICAgIFwiU3RyZWNrXCIsXG4gICAgXCJTdHJlZXNlXCIsXG4gICAgXCJTdHJlZ2VcIixcbiAgICBcIlN0cmVpdFwiLFxuICAgIFwiU3RyZWxsZXJcIixcbiAgICBcIlN0cmllZGVyXCIsXG4gICAgXCJTdHJpZXplbFwiLFxuICAgIFwiU3Ryb2dpZXNcIixcbiAgICBcIlN0cm9oc2NoYW5rXCIsXG4gICAgXCJTdHJ1bnpcIixcbiAgICBcIlN0cnV0elwiLFxuICAgIFwiU3R1YmVcIixcbiAgICBcIlN0w7Zja2VydFwiLFxuICAgIFwiU3TDtnBwbGVyXCIsXG4gICAgXCJTdMO2d2VyXCIsXG4gICAgXCJTdMO8cm1lclwiLFxuICAgIFwiU3VmZmFcIixcbiAgICBcIlN1amV3XCIsXG4gICAgXCJTdXNzbWFublwiLFxuICAgIFwiU3V0aGVcIixcbiAgICBcIlN1dHNjaGV0XCIsXG4gICAgXCJTd2lsbGltc1wiLFxuICAgIFwiU3plbmRyZWlcIixcbiAgICBcIlPDtnJlblwiLFxuICAgIFwiU8O8cnRoXCIsXG4gICAgXCJUYWZlbG1laWVyXCIsXG4gICAgXCJUYW5nXCIsXG4gICAgXCJUYXNjaGVcIixcbiAgICBcIlRhdWZyYXRzaG9mZXJcIixcbiAgICBcIlRlZ2V0aG9mXCIsXG4gICAgXCJUZWljaG1hbm5cIixcbiAgICBcIlRlcHBlclwiLFxuICAgIFwiVGVyaGVpZGVuXCIsXG4gICAgXCJUZXJsZWNraVwiLFxuICAgIFwiVGV1ZmVsXCIsXG4gICAgXCJUaGVlbGVcIixcbiAgICBcIlRoaWVrZVwiLFxuICAgIFwiVGhpbW1cIixcbiAgICBcIlRoaW9tYXNcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiVGhyaWVuZVwiLFxuICAgIFwiVGhyw6RuaGFyZHRcIixcbiAgICBcIlRodXN0XCIsXG4gICAgXCJUaHlzc2VuXCIsXG4gICAgXCJUaMO2bmVcIixcbiAgICBcIlRpZG93XCIsXG4gICAgXCJUaWVkdGtlXCIsXG4gICAgXCJUaWV0emVcIixcbiAgICBcIlRpbGduZXJcIixcbiAgICBcIlRpbGxhY2tcIixcbiAgICBcIlRpbW1lcm1hbm5cIixcbiAgICBcIlRpc2NobGVyXCIsXG4gICAgXCJUaXNjaG1hbm5cIixcbiAgICBcIlRpdHRtYW5cIixcbiAgICBcIlRpdm9udHNjaGlrXCIsXG4gICAgXCJUb25hdFwiLFxuICAgIFwiVG9ublwiLFxuICAgIFwiVHJhbXBlbGlcIixcbiAgICBcIlRyYXV0aFwiLFxuICAgIFwiVHJhdXRtYW5uXCIsXG4gICAgXCJUcmF2YW5cIixcbiAgICBcIlRyZWZmXCIsXG4gICAgXCJUcmVtbWVsXCIsXG4gICAgXCJUcmVzc1wiLFxuICAgIFwiVHNhbW9uaWtpYW5cIixcbiAgICBcIlRzY2hpZXJzXCIsXG4gICAgXCJUc2NoaXJjaFwiLFxuICAgIFwiVHVjaFwiLFxuICAgIFwiVHVjaG9sa2VcIixcbiAgICBcIlR1ZG93XCIsXG4gICAgXCJUdXNjaG1vXCIsXG4gICAgXCJUw6RjaGxcIixcbiAgICBcIlTDtmJiZW5cIixcbiAgICBcIlTDtnBmZXJcIixcbiAgICBcIlVobGVtYW5uXCIsXG4gICAgXCJVaGxpZ1wiLFxuICAgIFwiVWhyaWdcIixcbiAgICBcIlVpYmVsXCIsXG4gICAgXCJVbGljemthXCIsXG4gICAgXCJVbGxtYW5uXCIsXG4gICAgXCJVbGxyaWNoXCIsXG4gICAgXCJVbWJhY2hcIixcbiAgICBcIlVtbGF1ZnRcIixcbiAgICBcIlVtbWluZ2VyXCIsXG4gICAgXCJVbmdlclwiLFxuICAgIFwiVW50ZXJwYWludG5lclwiLFxuICAgIFwiVXJiYW5cIixcbiAgICBcIlVyYmFuaWFrXCIsXG4gICAgXCJVcmJhbnNreVwiLFxuICAgIFwiVXJoaWdcIixcbiAgICBcIlZhaGxlbnNpZWNrXCIsXG4gICAgXCJWYW5cIixcbiAgICBcIlZhbmdlcm1haW5cIixcbiAgICBcIlZhdGVyXCIsXG4gICAgXCJWZW5naGF1c1wiLFxuICAgIFwiVmVybmllc3RcIixcbiAgICBcIlZlcnppXCIsXG4gICAgXCJWZXlcIixcbiAgICBcIlZpZWxsZWhuZXJcIixcbiAgICBcIlZpZXdlZ1wiLFxuICAgIFwiVm9lbGtlbFwiLFxuICAgIFwiVm9nZWxcIixcbiAgICBcIlZvZ2VsZ3NhbmdcIixcbiAgICBcIlZvZ3RcIixcbiAgICBcIlZvaWd0XCIsXG4gICAgXCJWb2t1aGxcIixcbiAgICBcIlZvbGtcIixcbiAgICBcIlZvbGtlclwiLFxuICAgIFwiVm9sa21hbm5cIixcbiAgICBcIlZvblwiLFxuICAgIFwiVm9uYVwiLFxuICAgIFwiVm9udGVpblwiLFxuICAgIFwiV2FjaGVuYnJ1bm5lclwiLFxuICAgIFwiV2FjaHRlbFwiLFxuICAgIFwiV2FnbmVyXCIsXG4gICAgXCJXYWliZWxcIixcbiAgICBcIldha2FuXCIsXG4gICAgXCJXYWxkbWFublwiLFxuICAgIFwiV2FsbG5lclwiLFxuICAgIFwiV2FsbHN0YWJcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FsdGhlclwiLFxuICAgIFwiV2FsdG9uXCIsXG4gICAgXCJXYWx6XCIsXG4gICAgXCJXYW5uZXJcIixcbiAgICBcIldhcnRlbmJlcmdcIixcbiAgICBcIldhc2NoYsO8c2NoXCIsXG4gICAgXCJXYXNzaWxld1wiLFxuICAgIFwiV2Fzc2lsdWtcIixcbiAgICBcIldlYmVyXCIsXG4gICAgXCJXZWhyc2VuXCIsXG4gICAgXCJXZWlkbGljaFwiLFxuICAgIFwiV2VpZG5lclwiLFxuICAgIFwiV2VpZ2VsXCIsXG4gICAgXCJXZWlnaHRcIixcbiAgICBcIldlaWxlclwiLFxuICAgIFwiV2VpbWVyXCIsXG4gICAgXCJXZWlzXCIsXG4gICAgXCJXZWlzc1wiLFxuICAgIFwiV2VsbGVyXCIsXG4gICAgXCJXZWxzY2hcIixcbiAgICBcIldlbHpcIixcbiAgICBcIldlbHplbFwiLFxuICAgIFwiV2VuaWdlclwiLFxuICAgIFwiV2Vua1wiLFxuICAgIFwiV2VybGVcIixcbiAgICBcIldlcm5lclwiLFxuICAgIFwiV2Vycm1hbm5cIixcbiAgICBcIldlc3NlbFwiLFxuICAgIFwiV2Vzc2luZ2hhZ2VcIixcbiAgICBcIldleWVsXCIsXG4gICAgXCJXZXplbFwiLFxuICAgIFwiV2ljaG1hbm5cIixcbiAgICBcIldpY2tlcnRcIixcbiAgICBcIldpZWJlXCIsXG4gICAgXCJXaWVjaG1hbm5cIixcbiAgICBcIldpZWdlbG1hbm5cIixcbiAgICBcIldpZXJpZ1wiLFxuICAgIFwiV2llc2VcIixcbiAgICBcIldpZXNlclwiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsa3lcIixcbiAgICBcIldpbGxcIixcbiAgICBcIldpbGx3YWNoZXJcIixcbiAgICBcIldpbHRzXCIsXG4gICAgXCJXaW1tZXJcIixcbiAgICBcIldpbmtlbG1hbm5cIixcbiAgICBcIldpbmtsZXJcIixcbiAgICBcIldpbnRlclwiLFxuICAgIFwiV2lzY2hla1wiLFxuICAgIFwiV2lzY2hlclwiLFxuICAgIFwiV2lzc2luZ1wiLFxuICAgIFwiV2l0dGljaFwiLFxuICAgIFwiV2l0dGxcIixcbiAgICBcIldvbGZcIixcbiAgICBcIldvbGZhcnRoXCIsXG4gICAgXCJXb2xmZlwiLFxuICAgIFwiV29sbGVuYmVyZ1wiLFxuICAgIFwiV29sbG1hbm5cIixcbiAgICBcIldveXRrb3dza2FcIixcbiAgICBcIld1amFrXCIsXG4gICAgXCJXdXJtXCIsXG4gICAgXCJXeWx1ZGRhXCIsXG4gICAgXCJXw7ZscGVydFwiLFxuICAgIFwiV8O2c2NobGVyXCIsXG4gICAgXCJXw7xoblwiLFxuICAgIFwiV8O8bnNjaGVcIixcbiAgICBcIlphY2hcIixcbiAgICBcIlphY3praWV3aWN6XCIsXG4gICAgXCJaYWhuXCIsXG4gICAgXCJaYWl0dWNcIixcbiAgICBcIlphbmR0XCIsXG4gICAgXCJaYW5uZXJcIixcbiAgICBcIlphcGxldGFsXCIsXG4gICAgXCJaYXViZXJcIixcbiAgICBcIlplaWRsZXJcIixcbiAgICBcIlpla2xcIixcbiAgICBcIlplbmRlclwiLFxuICAgIFwiWmV1Y2hcIixcbiAgICBcIlpleWVuXCIsXG4gICAgXCJaZXlobGVcIixcbiAgICBcIlppZWdsZXJcIixcbiAgICBcIlppbWFueWlcIixcbiAgICBcIlppbW1lclwiLFxuICAgIFwiWmltbWVybWFublwiLFxuICAgIFwiWmluc2VyXCIsXG4gICAgXCJaaW50bFwiLFxuICAgIFwiWmlwcFwiLFxuICAgIFwiWmlwc2VcIixcbiAgICBcIlpzY2h1bmtlXCIsXG4gICAgXCJadWJlclwiLFxuICAgIFwiWndpZW5lclwiLFxuICAgIFwiWsO8bXNhbmRlXCIsXG4gICAgXCLDlnN0cmluZ2VyXCIsXG4gICAgXCLDnGJlcmFja2VyXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiSHIuXCIsXG4gICAgXCJGci5cIixcbiAgICBcIkRyLlwiLFxuICAgIFwiUHJvZi4gRHIuXCJcbiAgXSxcbiAgXCJub2JpbGl0eV90aXRsZV9wcmVmaXhcIjogW1xuICAgIFwienVcIixcbiAgICBcInZvblwiLFxuICAgIFwidm9tXCIsXG4gICAgXCJ2b24gZGVyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje25vYmlsaXR5X3RpdGxlX3ByZWZpeH0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIoMCMjIykgIyMjIyMjIyMjXCIsXG4gICAgXCIoMCMjIyMpICMjIyMjIyNcIixcbiAgICBcIis0OS0jIyMtIyMjIyMjI1wiLFxuICAgIFwiKzQ5LSMjIyMtIyMjIyMjIyNcIlxuICBdXG59O1xuZGUuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIis0OS0xIyMtIyMjIyMjI1wiLFxuICAgIFwiKzQ5LTEjIyMtIyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGRlX0FUID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZGVfQVQ7XG5kZV9BVC50aXRsZSA9IFwiR2VybWFuIChBdXN0cmlhKVwiO1xuZGVfQVQuYWRkcmVzcyA9IHtcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIsOEZ3lwdGVuXCIsXG4gICAgXCLDhHF1YXRvcmlhbGd1aW5lYVwiLFxuICAgIFwiw4R0aGlvcGllblwiLFxuICAgIFwiw5ZzdGVycmVpY2hcIixcbiAgICBcIkFmZ2hhbmlzdGFuXCIsXG4gICAgXCJBbGJhbmllblwiLFxuICAgIFwiQWxnZXJpZW5cIixcbiAgICBcIkFtZXJpa2FuaXNjaC1TYW1vYVwiLFxuICAgIFwiQW1lcmlrYW5pc2NoZSBKdW5nZmVybmluc2VsblwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmd1aWxsYVwiLFxuICAgIFwiQW50YXJrdGlzXCIsXG4gICAgXCJBbnRpZ3VhIHVuZCBCYXJidWRhXCIsXG4gICAgXCJBcmdlbnRpbmllblwiLFxuICAgIFwiQXJtZW5pZW5cIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBc2VyYmFpZHNjaGFuXCIsXG4gICAgXCJBdXN0cmFsaWVuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJCYW5nbGFkZXNjaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJlbGFydXNcIixcbiAgICBcIkJlbGdpZW5cIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcImRpZSBCZXJtdWRhc1wiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2xpdmllblwiLFxuICAgIFwiQm9zbmllbiB1bmQgSGVyemVnb3dpbmFcIixcbiAgICBcIkJvdHN1YW5hXCIsXG4gICAgXCJCb3V2ZXRpbnNlbFwiLFxuICAgIFwiQnJhc2lsaWVuXCIsXG4gICAgXCJCcml0aXNjaGUgSnVuZ2Zlcm5pbnNlbG5cIixcbiAgICBcIkJyaXRpc2NoZXMgVGVycml0b3JpdW0gaW0gSW5kaXNjaGVuIE96ZWFuXCIsXG4gICAgXCJCcnVuZWkgRGFydXNzYWxhbVwiLFxuICAgIFwiQnVsZ2FyaWVuXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNoaWxlXCIsXG4gICAgXCJDaGluYVwiLFxuICAgIFwiQ29va2luc2VsblwiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiRMOkbmVtYXJrXCIsXG4gICAgXCJEZW1va3JhdGlzY2hlIFJlcHVibGlrIEtvbmdvXCIsXG4gICAgXCJEZW1va3JhdGlzY2hlIFZvbGtzcmVwdWJsaWsgS29yZWFcIixcbiAgICBcIkRldXRzY2hsYW5kXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiRG9taW5pa2FuaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIkRzY2hpYnV0aVwiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdGxhbmRcIixcbiAgICBcIkbDpHLDtmVyXCIsXG4gICAgXCJGYWxrbGFuZGluc2VsblwiLFxuICAgIFwiRmlkc2NoaVwiLFxuICAgIFwiRmlubmxhbmRcIixcbiAgICBcIkZyYW5rcmVpY2hcIixcbiAgICBcIkZyYW56w7ZzaXNjaC1HdWF5YW5hXCIsXG4gICAgXCJGcmFuesO2c2lzY2gtUG9seW5lc2llblwiLFxuICAgIFwiRnJhbnrDtnNpc2NoZSBHZWJpZXRlIGltIHPDvGRsaWNoZW4gSW5kaXNjaGVuIE96ZWFuXCIsXG4gICAgXCJHYWJ1blwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHZW9yZ2llblwiLFxuICAgIFwiR2hhbmFcIixcbiAgICBcIkdpYnJhbHRhclwiLFxuICAgIFwiR3LDtm5sYW5kXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcmllY2hlbmxhbmRcIixcbiAgICBcIkd1YWRlbG91cGVcIixcbiAgICBcIkd1YW1cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWEtQmlzc2F1XCIsXG4gICAgXCJHdXlhbmFcIixcbiAgICBcIkhhaXRpXCIsXG4gICAgXCJIZWFyZCB1bmQgTWNEb25hbGRpbnNlbG5cIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25na29uZ1wiLFxuICAgIFwiSW5kaWVuXCIsXG4gICAgXCJJbmRvbmVzaWVuXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJcmxhbmRcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNyYWVsXCIsXG4gICAgXCJJdGFsaWVuXCIsXG4gICAgXCJKYW1haWthXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkpvcmRhbmllblwiLFxuICAgIFwiSnVnb3NsYXdpZW5cIixcbiAgICBcIkthaW1hbmluc2VsblwiLFxuICAgIFwiS2FtYm9kc2NoYVwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYXAgVmVyZGVcIixcbiAgICBcIkthc2FjaHN0YW5cIixcbiAgICBcIkthdGFyXCIsXG4gICAgXCJLZW5pYVwiLFxuICAgIFwiS2lyZ2lzaXN0YW5cIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLbGVpbmVyZSBhbWVyaWthbmlzY2hlIMOcYmVyc2VlaW5zZWxuXCIsXG4gICAgXCJLb2tvc2luc2VsblwiLFxuICAgIFwiS29sdW1iaWVuXCIsXG4gICAgXCJLb21vcmVuXCIsXG4gICAgXCJLb25nb1wiLFxuICAgIFwiS3JvYXRpZW5cIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiTGFvc1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGV0dGxhbmRcIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkxpYmVyaWFcIixcbiAgICBcIkxpYnllblwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0YXVlblwiLFxuICAgIFwiTHV4ZW1idXJnXCIsXG4gICAgXCJNYWNhdVwiLFxuICAgIFwiTWFkYWdhc2thclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxheXNpYVwiLFxuICAgIFwiTWFsZWRpdmVuXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiZWhlbWFsaWdlIGp1Z29zbGF3aXNjaGUgUmVwdWJsaWsgTWF6ZWRvbmllblwiLFxuICAgIFwiTWFyb2trb1wiLFxuICAgIFwiTWFyc2hhbGxpbnNlbG5cIixcbiAgICBcIk1hcnRpbmlxdWVcIixcbiAgICBcIk1hdXJldGFuaWVuXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk1leGlrb1wiLFxuICAgIFwiTWlrcm9uZXNpZW5cIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29sZWlcIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1vc2FtYmlrXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOw7ZyZGxpY2hlIE1hcmlhbmVuXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIk5ldWthbGVkb25pZW5cIixcbiAgICBcIk5ldXNlZWxhbmRcIixcbiAgICBcIk5pY2FyYWd1YVwiLFxuICAgIFwiTmllZGVybMOkbmRpc2NoZSBBbnRpbGxlblwiLFxuICAgIFwiTmllZGVybGFuZGVcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJOb3Jmb2xraW5zZWxcIixcbiAgICBcIk5vcndlZ2VuXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJPc3R0aW1vclwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlBhcHVhLU5ldWd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlBoaWxpcHBpbmVuXCIsXG4gICAgXCJQaXRjYWlybmluc2VsblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUsOpdW5pb25cIixcbiAgICBcIlJlcHVibGlrIEtvcmVhXCIsXG4gICAgXCJSZXB1YmxpayBNb2xkYXVcIixcbiAgICBcIlJ1YW5kYVwiLFxuICAgIFwiUnVtw6RuaWVuXCIsXG4gICAgXCJSdXNzaXNjaGUgRsO2ZGVyYXRpb25cIixcbiAgICBcIlPDo28gVG9tw6kgdW5kIFByw61uY2lwZVwiLFxuICAgIFwiU8O8ZGFmcmlrYVwiLFxuICAgIFwiU8O8ZGdlb3JnaWVuIHVuZCBTw7xkbGljaGUgU2FuZHdpY2hpbnNlbG5cIixcbiAgICBcIlNhbG9tb25lblwiLFxuICAgIFwiU2FtYmlhXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2F1ZGktQXJhYmllblwiLFxuICAgIFwiU2Nod2VkZW5cIixcbiAgICBcIlNjaHdlaXpcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNleWNoZWxsZW5cIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2ltYmFid2VcIixcbiAgICBcIlNpbmdhcHVyXCIsXG4gICAgXCJTbG93YWtlaVwiLFxuICAgIFwiU2xvd2VuaWVuXCIsXG4gICAgXCJTb21hbGllblwiLFxuICAgIFwiU3BhbmllblwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdC4gSGVsZW5hXCIsXG4gICAgXCJTdC4gS2l0dHMgdW5kIE5ldmlzXCIsXG4gICAgXCJTdC4gTHVjaWFcIixcbiAgICBcIlN0LiBQaWVycmUgdW5kIE1pcXVlbG9uXCIsXG4gICAgXCJTdC4gVmluY2VudCB1bmQgZGllIEdyZW5hZGluZW5cIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJTdmFsYmFyZCB1bmQgSmFuIE1heWVuXCIsXG4gICAgXCJTd2FzaWxhbmRcIixcbiAgICBcIlN5cmllblwiLFxuICAgIFwiVMO8cmtlaVwiLFxuICAgIFwiVGFkc2NoaWtpc3RhblwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYW5zYW5pYVwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCB1bmQgVG9iYWdvXCIsXG4gICAgXCJUc2NoYWRcIixcbiAgICBcIlRzY2hlY2hpc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiVHVuZXNpZW5cIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiVHVya3MtIHVuZCBDYWljb3NpbnNlbG5cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVa3JhaW5lXCIsXG4gICAgXCJVbmdhcm5cIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlVzYmVraXN0YW5cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZhdGlrYW5zdGFkdFwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWZXJlaW5pZ3RlIEFyYWJpc2NoZSBFbWlyYXRlXCIsXG4gICAgXCJWZXJlaW5pZ3RlIFN0YWF0ZW5cIixcbiAgICBcIlZlcmVpbmlndGVzIEvDtm5pZ3JlaWNoXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJXYWxsaXMgdW5kIEZ1dHVuYVwiLFxuICAgIFwiV2VpaG5hY2h0c2luc2VsXCIsXG4gICAgXCJXZXN0c2FoYXJhXCIsXG4gICAgXCJaZW50cmFsYWZyaWthbmlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJaeXBlcm5cIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkFob3JuXCIsXG4gICAgXCJBaG9ybmdhc3NlIChTdC4gQW5kcsOkKVwiLFxuICAgIFwiQWxsZWVzdHJhw59lIChQb3lzYnJ1bm4pXCIsXG4gICAgXCJBbHBlbmxhbmRzdHJhw59lXCIsXG4gICAgXCJBbHRlIFBvc3RzdHJhw59lXCIsXG4gICAgXCJBbHRlIFVmZXJnYXNzZVwiLFxuICAgIFwiQW0gS3JvbmF3ZXR0IChIYWdlbmJydW5uKVwiLFxuICAgIFwiQW0gTcO8aGx3YXNzZXJcIixcbiAgICBcIkFtIFJlYmVuaGFuZ1wiLFxuICAgIFwiQW0gU3Rlcm53ZWdcIixcbiAgICBcIkFudG9uIFdpbGRnYW5zLVN0cmHDn2VcIixcbiAgICBcIkF1ZXItdm9uLVdlbHNiYWNoLVdlZ1wiLFxuICAgIFwiQXVmIGRlciBTdGlmdFwiLFxuICAgIFwiQXVmZWxkZ2Fzc2VcIixcbiAgICBcIkJhaG5nYXNzZVwiLFxuICAgIFwiQmFobmhvZnN0cmHDn2VcIixcbiAgICBcIkJhaG5zdHJhw59lIChHZXJoYXVzKVwiLFxuICAgIFwiQmFzdGVpZ2Fzc2VcIixcbiAgICBcIkJlcmdnYXNzZVwiLFxuICAgIFwiQmVyZ3N0cmHDn2VcIixcbiAgICBcIkJpcmtlbndlZ1wiLFxuICAgIFwiQmxhc2l1c3N0ZWlnXCIsXG4gICAgXCJCbGF0dHVyXCIsXG4gICAgXCJCcnVkZXJob2ZnYXNzZVwiLFxuICAgIFwiQnJ1bm5lbGxpZ2Fzc2VcIixcbiAgICBcIkLDvGhlbHdlZ1wiLFxuICAgIFwiRGFybmF1dGdhc3NlXCIsXG4gICAgXCJEb25hdWdhc3NlXCIsXG4gICAgXCJEb3JmcGxhdHogKEhhc2VsYmFjaClcIixcbiAgICBcIkRyLi1PYmVycmVpdGVyLVN0cmHDn2VcIixcbiAgICBcIkRyLkthcmwgSG9sb3ViZWstU3RyLlwiLFxuICAgIFwiRHJhdXRhbCBCdW5kZXNzdHJhw59lXCIsXG4gICAgXCJEw7xybnJvaHJlciBTdHJhw59lXCIsXG4gICAgXCJFYmVudGhhbGVyc3RyYcOfZVwiLFxuICAgIFwiRWNrZ3JhYmVud2VnXCIsXG4gICAgXCJFcmxlbnN0cmHDn2VcIixcbiAgICBcIkVybGVud2VnXCIsXG4gICAgXCJFc2NoZW53ZWdcIixcbiAgICBcIkV0cmljaGdhc3NlXCIsXG4gICAgXCJGYXNzZXJnYXNzZVwiLFxuICAgIFwiRmVpY2h0ZWdnZXJ3aWVzZVwiLFxuICAgIFwiRmVsZC1XZWdcIixcbiAgICBcIkZlbGRnYXNzZVwiLFxuICAgIFwiRmVsZHN0YXBmZVwiLFxuICAgIFwiRmlzY2hwb2ludHdlZ1wiLFxuICAgIFwiRmxhY2hiZXJnc3RyYcOfZVwiLFxuICAgIFwiRmx1cndlZ1wiLFxuICAgIFwiRnJhbnogU2NodWJlcnQtR2Fzc2VcIixcbiAgICBcIkZyYW56LVNjaG5lZXdlacOfLVdlZ1wiLFxuICAgIFwiRnJhbnotdm9uLUFzc2lzaS1TdHJhw59lXCIsXG4gICAgXCJGcml0ei1QcmVnbC1TdHJhw59lXCIsXG4gICAgXCJGdWNoc2dydWJlbndlZ1wiLFxuICAgIFwiRsO2ZGxlcndlZ1wiLFxuICAgIFwiRsO2aHJlbndlZ1wiLFxuICAgIFwiRsO8bmZoYXVzIChQYWFzZG9yZilcIixcbiAgICBcIkdhYmVsc2JlcmdlcnN0cmHDn2VcIixcbiAgICBcIkdhcnRlbnN0cmHDn2VcIixcbiAgICBcIkdlaWdlblwiLFxuICAgIFwiR2VpZ2VyZ2Fzc2VcIixcbiAgICBcIkdlbWVpbmRlYXVnYXNzZVwiLFxuICAgIFwiR2VtZWluZGVwbGF0elwiLFxuICAgIFwiR2VvcmctQWljaGluZ2VyLVN0cmHDn2VcIixcbiAgICBcIkdsYW5mZWxkYmFjaHdlZ1wiLFxuICAgIFwiR3JhYmVuIChCdXJnYXViZXJnKVwiLFxuICAgIFwiR3J1YlwiLFxuICAgIFwiR3LDtnJldGdhc3NlXCIsXG4gICAgXCJHcsO8bmJhY2hcIixcbiAgICBcIkfDtnN0aW5nXCIsXG4gICAgXCJIYWluc2Nod2FuZ1wiLFxuICAgIFwiSGFucy1NYXVyYWNoZXItU3RyYcOfZVwiLFxuICAgIFwiSGFydFwiLFxuICAgIFwiVGVpY2hzdHJhw59lXCIsXG4gICAgXCJIYXVwdHBsYXR6XCIsXG4gICAgXCJIYXVwdHN0cmHDn2VcIixcbiAgICBcIkhlaWRld2VnXCIsXG4gICAgXCJIZWlucmljaCBMYW5kYXVlciBHYXNzZVwiLFxuICAgIFwiSGVsZW5lbmdhc3NlXCIsXG4gICAgXCJIZXJtYW5uIHZvbiBHaWxtd2VnXCIsXG4gICAgXCJIZXJtYW5uLUzDtm5zLUdhc3NlXCIsXG4gICAgXCJIZXJtaW5lbmdhc3NlXCIsXG4gICAgXCJIZXJuc3RvcmZlcnN0cmHDn2VcIixcbiAgICBcIkhpcnNkb3JmXCIsXG4gICAgXCJIb2NoZmVpc3RyaXR6XCIsXG4gICAgXCJIb2NoaGF1cyBOZXVlIERvbmF1XCIsXG4gICAgXCJIb2ZcIixcbiAgICBcIkh1c3Nvdml0cyBHYXNzZVwiLFxuICAgIFwiSMO2Z2dlblwiLFxuICAgIFwiSMO8dHRlblwiLFxuICAgIFwiSmFuemdhc3NlXCIsXG4gICAgXCJKb2NocmllbWd1dHN0cmHDn2VcIixcbiAgICBcIkpvaGFubi1TdHJhdcOfLUdhc3NlXCIsXG4gICAgXCJKdWxpdXMtUmFhYi1TdHJhw59lXCIsXG4gICAgXCJLYWhsZW5iZXJnZXIgU3RyYcOfZVwiLFxuICAgIFwiS2FybCBLcmFmdC1TdHJhw59lXCIsXG4gICAgXCJLZWdlbHByaWVsc3RyYcOfZVwiLFxuICAgIFwiS2VsdGVuYmVyZy1FcG9uYXdlZ1wiLFxuICAgIFwiS2VubmVkeWJyw7xja2VcIixcbiAgICBcIktlcnBlbHlzdHJhw59lXCIsXG4gICAgXCJLaW5kZXJnYXJ0ZW5zdHJhw59lXCIsXG4gICAgXCJLaW5kZXJoZWltZ2Fzc2VcIixcbiAgICBcIktpcmNoZW5wbGF0elwiLFxuICAgIFwiS2lyY2h3ZWdcIixcbiAgICBcIktsYWdlbmZ1cnRlciBTdHJhw59lXCIsXG4gICAgXCJLbGFtbVwiLFxuICAgIFwiS2xlaW5iYXVtZ2FydGVuXCIsXG4gICAgXCJLbGluZ2VyZ2Fzc2VcIixcbiAgICBcIktvbG9uaWVzdHJhw59lXCIsXG4gICAgXCJLb25yYWQtRHVkZW4tR2Fzc2VcIixcbiAgICBcIktyYW5rZW5oYXVzc3RyYcOfZVwiLFxuICAgIFwiS3ViaW5zdHJhw59lXCIsXG4gICAgXCJLw7ZobGRvcmZlcmdhc3NlXCIsXG4gICAgXCJMYWNrZW53ZWdcIixcbiAgICBcIkxhbmdlIE1la290dGVcIixcbiAgICBcIkxlaWZsaW5nXCIsXG4gICAgXCJMZW9wb2xkIEZyYW5rLVN0cmHDn2UgKFBlbGxlbmRvcmYpXCIsXG4gICAgXCJMZXJjaGVuZ2Fzc2UgKFBpcmthKVwiLFxuICAgIFwiTGljaHRlbnN0ZXJuc2llZGx1bmcgVlwiLFxuICAgIFwiTGluZGVuaG9mc3RyYcOfZVwiLFxuICAgIFwiTGluZGVud2VnXCIsXG4gICAgXCJMdWVnc3RyYcOfZVwiLFxuICAgIFwiTWFpZXJob2ZcIixcbiAgICBcIk1hbGVyd2VnXCIsXG4gICAgXCJNaXR0ZXJ3ZWdcIixcbiAgICBcIk1pdHRsZXJlIEhhdXB0c3RyYcOfZVwiLFxuICAgIFwiTW9vc2JhY2hnYXNzZVwiLFxuICAgIFwiTW9yZXR0aWdhc3NlXCIsXG4gICAgXCJNdXNpa3BhdmlsbG9uIFJpZXpsZXJuXCIsXG4gICAgXCJNw7xobGJvZGVuXCIsXG4gICAgXCJNw7xobGVcIixcbiAgICBcIk3DvGhsZW53ZWdcIixcbiAgICBcIk5ldXN0aWZ0Z2Fzc2VcIixcbiAgICBcIk5pZWRlcmVnZ1wiLFxuICAgIFwiTmllZGVyZ2Ftc1wiLFxuICAgIFwiTm9yZHdlc3RiYWhuYnLDvGNrZVwiLFxuICAgIFwiT2JlcmLDtmRlbmFsbVwiLFxuICAgIFwiT2JlcmUgQmVyZ2dhc3NlXCIsXG4gICAgXCJPZWR0XCIsXG4gICAgXCJBbSBGw6RyYmVyYmVyZ1wiLFxuICAgIFwiT3R0b2dhc3NlXCIsXG4gICAgXCJQYXVsIFBldGVycy1HYXNzZVwiLFxuICAgIFwiUGVyc3Bla3RpdnN0cmHDn2VcIixcbiAgICBcIlBvcHBpY2hsXCIsXG4gICAgXCJQcml2YXR3ZWdcIixcbiAgICBcIlByaXhnYXNzZVwiLFxuICAgIFwiUHlocmFcIixcbiAgICBcIlJhZGV0emt5c3RyYcOfZVwiLFxuICAgIFwiUmFpZGVuXCIsXG4gICAgXCJSZWljaGVuc3RlaW5zdHJhw59lXCIsXG4gICAgXCJSZWl0YmF1ZXJuc3RyYcOfZVwiLFxuICAgIFwiUmVpdGVyd2VnXCIsXG4gICAgXCJSZWl0c2NodWxnYXNzZVwiLFxuICAgIFwiUmluZ3dlZ1wiLFxuICAgIFwiUnVwZXJ0aXN0cmHDn2VcIixcbiAgICBcIlLDtm1lcnN0cmHDn2VcIixcbiAgICBcIlLDtm1lcndlZ1wiLFxuICAgIFwiU2Fja2dhc3NlXCIsXG4gICAgXCJTY2hhdW5iZXJnZXJzdHJhw59lXCIsXG4gICAgXCJTY2hsb8Ofd2VnXCIsXG4gICAgXCJTY2h1bGdhc3NlIChMYW5nZWNrKVwiLFxuICAgIFwiU2Now7ZuaG9sZHNpZWRsdW5nXCIsXG4gICAgXCJTZWVibGlja1wiLFxuICAgIFwiU2Vlc3RyYcOfZVwiLFxuICAgIFwiU2VtcmlhY2hlcnN0cmHDn2VcIixcbiAgICBcIlNpbWxpbmdcIixcbiAgICBcIlNpcGJhY2h6ZWxsZXIgU3RyYcOfZVwiLFxuICAgIFwiU29ubmVud2VnXCIsXG4gICAgXCJTcGFyZ2VsZmVsZGdhc3NlXCIsXG4gICAgXCJTcGllc21heXJ3ZWdcIixcbiAgICBcIlNwb3J0cGxhdHpzdHJhw59lXCIsXG4gICAgXCJTdC5VbHJpY2hcIixcbiAgICBcIlN0ZWlsbWFubnN0cmHDn2VcIixcbiAgICBcIlN0ZWluZ3LDvG5lcmVkdFwiLFxuICAgIFwiU3RyYXNzZmVsZFwiLFxuICAgIFwiU3RyYcOfZXJhdVwiLFxuICAgIFwiU3TDtnBmbHdlZ1wiLFxuICAgIFwiU3TDvHJhXCIsXG4gICAgXCJUYWZlcm5nYXNzZVwiLFxuICAgIFwiVGVubndlZ1wiLFxuICAgIFwiVGhvbWFzIEtvc2NoYXQtR2Fzc2VcIixcbiAgICBcIlRpcm9sZXIgU3RyYcOfZVwiLFxuICAgIFwiVG9ycm9nYXNzZVwiLFxuICAgIFwiVWZlcnN0cmHDn2UgKFNjaHdhcnphdSBhbSBTdGVpbmZlbGQpXCIsXG4gICAgXCJVbnRlcmTDtnJmbFwiLFxuICAgIFwiVW50ZXJlciBTb25ucmFpbndlZ1wiLFxuICAgIFwiVmVyd2FsdGVyc2llZGx1bmdcIixcbiAgICBcIldhbGRoYW5nXCIsXG4gICAgXCJXYXNlblwiLFxuICAgIFwiV2VpZGVuc3RyYcOfZVwiLFxuICAgIFwiV2VpaGVyd2VnXCIsXG4gICAgXCJXZXR0c3RlaW5nYXNzZVwiLFxuICAgIFwiV2llbmVyIFN0cmHDn2VcIixcbiAgICBcIldpbmRpc2NoXCIsXG4gICAgXCJaZWJyYWdhc3NlXCIsXG4gICAgXCJaZWxsZXJzdHJhw59lXCIsXG4gICAgXCJaaWVocmVyc3RyYcOfZVwiLFxuICAgIFwiWnVsZWNobmVyd2VnXCIsXG4gICAgXCJad2VyZ2pvY2hcIixcbiAgICBcIsOWdHpicnVja1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIixcbiAgICBcIiMjYVwiLFxuICAgIFwiIyNiXCIsXG4gICAgXCIjI2NcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJaaW1tZXIgIyMjXCIsXG4gICAgXCIjIE9HXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCdXJnZW5sYW5kXCIsXG4gICAgXCJLw6RybnRlblwiLFxuICAgIFwiTmllZGVyw7ZzdGVycmVpY2hcIixcbiAgICBcIk9iZXLDtnN0ZXJyZWljaFwiLFxuICAgIFwiU2FsemJ1cmdcIixcbiAgICBcIlN0ZWllcm1hcmtcIixcbiAgICBcIlRpcm9sXCIsXG4gICAgXCJWb3JhcmxiZXJnXCIsXG4gICAgXCJXaWVuXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkJnbGQuXCIsXG4gICAgXCJLdG4uXCIsXG4gICAgXCJOw5ZcIixcbiAgICBcIk/DllwiLFxuICAgIFwiU2JnLlwiLFxuICAgIFwiU3Rtay5cIixcbiAgICBcIlRcIixcbiAgICBcIlZiZy5cIixcbiAgICBcIldcIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCJBaWdlbiBpbSBNw7xobGtyZWlzXCIsXG4gICAgXCJBbGxlcmhlaWxpZ2VuIGJlaSBXaWxkb25cIixcbiAgICBcIkFsdGVuZmVsZGVuXCIsXG4gICAgXCJBcnJpYWNoXCIsXG4gICAgXCJBeGFtc1wiLFxuICAgIFwiQmF1bWdhcnRlbmJlcmdcIixcbiAgICBcIkJlcmdlcm4gaW0gRHVua2Vsc3RlaW5lcndhbGRcIixcbiAgICBcIkJlcm5kb3JmIGJlaSBTYWx6YnVyZ1wiLFxuICAgIFwiQnJlZ2VuelwiLFxuICAgIFwiQnJlaXRlbmJhY2ggYW0gSW5uXCIsXG4gICAgXCJEZXV0c2NoLVdhZ3JhbVwiLFxuICAgIFwiRGllbnRlbiBhbSBIb2Noa8O2bmlnXCIsXG4gICAgXCJEaWV0YWNoXCIsXG4gICAgXCJEb3JuYmlyblwiLFxuICAgIFwiRMO8cm5rcnV0XCIsXG4gICAgXCJFYmVuIGltIFBvbmdhdVwiLFxuICAgIFwiRWJlbnRoYWwgaW4gS8Okcm50ZW5cIixcbiAgICBcIkVpY2hncmFiZW5cIixcbiAgICBcIkVpc2Vuc3RhZHRcIixcbiAgICBcIkVsbG1hdVwiLFxuICAgIFwiRmVpc3RyaXR6IGFtIFdlY2hzZWxcIixcbiAgICBcIkZpbmtlbmJlcmdcIixcbiAgICBcIkZpc3NcIixcbiAgICBcIkZyYW50c2NoYWNoLVN0LiBHZXJ0cmF1ZFwiLFxuICAgIFwiRnJpdHplbnNcIixcbiAgICBcIkdhbXMgYmVpIEhpZWZsYXVcIixcbiAgICBcIkdlaWVyc2JlcmdcIixcbiAgICBcIkdyYXpcIixcbiAgICBcIkdyb8OfaMO2ZmxlaW5cIixcbiAgICBcIkfDtsOfbml0elwiLFxuICAgIFwiSGFydGxcIixcbiAgICBcIkhhdXNsZWl0ZW5cIixcbiAgICBcIkhlcnpvZ2VuYnVyZ1wiLFxuICAgIFwiSGludGVyaG9ybmJhY2hcIixcbiAgICBcIkhvY2h3b2xrZXJzZG9yZlwiLFxuICAgIFwiSWx6XCIsXG4gICAgXCJJbHp0YWxcIixcbiAgICBcIklubmVyYnJhelwiLFxuICAgIFwiSW5uc2JydWNrXCIsXG4gICAgXCJJdHRlclwiLFxuICAgIFwiSmFnZXJiZXJnXCIsXG4gICAgXCJKZWdpbmdcIixcbiAgICBcIkpvaG5zYmFjaFwiLFxuICAgIFwiSm9obnNkb3JmLUJydW5uXCIsXG4gICAgXCJKdW5naG9selwiLFxuICAgIFwiS2lyY2hkb3JmIGFtIElublwiLFxuICAgIFwiS2xhZ2VuZnVydFwiLFxuICAgIFwiS290dGVzLVB1cmtcIixcbiAgICBcIktydW1hdSBhbSBLYW1wXCIsXG4gICAgXCJLcnVtYmFjaFwiLFxuICAgIFwiTGF2YW3DvG5kXCIsXG4gICAgXCJMZWNoXCIsXG4gICAgXCJMaW56XCIsXG4gICAgXCJMdWRlc2NoXCIsXG4gICAgXCJMw7ZkZXJzZG9yZlwiLFxuICAgIFwiTWFyYmFjaCBhbiBkZXIgRG9uYXVcIixcbiAgICBcIk1hdHRzZWVcIixcbiAgICBcIk1hdXRlcm4gYW4gZGVyIERvbmF1XCIsXG4gICAgXCJNYXV0ZXJuZG9yZlwiLFxuICAgIFwiTWl0dGVyYmFjaCBhbSBFcmxhdWZzZWVcIixcbiAgICBcIk5ldWRvcmYgYmVpIFBhc3NhaWxcIixcbiAgICBcIk5ldWRvcmYgYmVpIFN0YWF0elwiLFxuICAgIFwiTmV1a2lyY2hlbiBhbiBkZXIgRW5rbmFjaFwiLFxuICAgIFwiTmV1c3RpZnQgYW4gZGVyIExhZm5pdHpcIixcbiAgICBcIk5pZWRlcmxlaXNcIixcbiAgICBcIk9iZXJuZG9yZiBpbiBUaXJvbFwiLFxuICAgIFwiT2JlcnN0b3JjaGFcIixcbiAgICBcIk9iZXJ3YWx0ZXJzZG9yZlwiLFxuICAgIFwiT2VkLU9laGxpbmdcIixcbiAgICBcIk9ydCBpbSBJbm5rcmVpc1wiLFxuICAgIFwiUGlsZ2Vyc2RvcmZcIixcbiAgICBcIlBpdHNjaGdhdVwiLFxuICAgIFwiUG9sbGhhbVwiLFxuICAgIFwiUHJlaXRlbmVnZ1wiLFxuICAgIFwiUHVyYmFjaCBhbSBOZXVzaWVkbGVyIFNlZVwiLFxuICAgIFwiUmFiZW53YWxkXCIsXG4gICAgXCJSYWlkaW5nXCIsXG4gICAgXCJSYXN0ZW5mZWxkXCIsXG4gICAgXCJSYXR0ZW5cIixcbiAgICBcIlJldHRlbmVnZ1wiLFxuICAgIFwiU2FsemJ1cmdcIixcbiAgICBcIlNhbmt0IEpvaGFubiBpbSBTYWdnYXV0YWxcIixcbiAgICBcIlN0LiBQZXRlciBhbSBLYW1tZXJzYmVyZ1wiLFxuICAgIFwiU3QuIFDDtmx0ZW5cIixcbiAgICBcIlN0LiBWZWl0IGFuIGRlciBHbGFuXCIsXG4gICAgXCJUYXhlbmJhY2hcIixcbiAgICBcIlRyYWd3ZWluXCIsXG4gICAgXCJUcmViZXNpbmdcIixcbiAgICBcIlRyaWViZW5cIixcbiAgICBcIlR1cm5hdVwiLFxuICAgIFwiVW5nZXJkb3JmXCIsXG4gICAgXCJVbnRlcmF1ZXJzYmFjaFwiLFxuICAgIFwiVW50ZXJzdGlua2VuYnJ1bm5cIixcbiAgICBcIlVudGVydGlsbGlhY2hcIixcbiAgICBcIlV0dGVuZG9yZlwiLFxuICAgIFwiVmFsc1wiLFxuICAgIFwiVmVsZGVuIGFtIFfDtnJ0aGVyIFNlZVwiLFxuICAgIFwiVmllaGhvZmVuXCIsXG4gICAgXCJWaWxsYWNoXCIsXG4gICAgXCJWaXRpc1wiLFxuICAgIFwiV2FpZGhvZmVuIGFuIGRlciBUaGF5YVwiLFxuICAgIFwiV2FsZGtpcmNoZW4gYW0gV2VzZW5cIixcbiAgICBcIldlacOfa2lyY2hlbiBhbiBkZXIgVHJhdW5cIixcbiAgICBcIldpZW5cIixcbiAgICBcIldpbXBhc3NpbmcgaW0gU2Nod2FyemF0YWxlXCIsXG4gICAgXCJZYmJzIGFuIGRlciBEb25hdVwiLFxuICAgIFwiWWJic2l0elwiLFxuICAgIFwiWXNwZXJ0YWxcIixcbiAgICBcIlplaWxsZXJuXCIsXG4gICAgXCJaZWxsIGFtIFBldHRlbmZpcnN0XCIsXG4gICAgXCJaZWxsIGFuIGRlciBQcmFtXCIsXG4gICAgXCJaZXJsYWNoXCIsXG4gICAgXCJad8O2bGZheGluZ1wiLFxuICAgIFwiw5ZibGFyblwiLFxuICAgIFwiw5xiZWxiYWNoXCIsXG4gICAgXCLDnGJlcmFja2VyblwiLFxuICAgIFwiw5xiZXJzYXhlblwiLFxuICAgIFwiw5xiZXJzYmFjaFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCLDlnN0ZXJyZWljaFwiXG4gIF1cbn07XG5kZV9BVC5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibGVnYWxfZm9ybVwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gdW5kICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmRlX0FULmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIixcbiAgICBcImRlXCIsXG4gICAgXCJjaFwiLFxuICAgIFwiYXRcIlxuICBdXG59O1xuZGVfQVQubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJBYmR1bFwiLFxuICAgIFwiQWJkdWxsYWhcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQWRyaWFub1wiLFxuICAgIFwiQWhtYWRcIixcbiAgICBcIkFobWVkXCIsXG4gICAgXCJBaG1ldFwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGVzc2FuZHJvXCIsXG4gICAgXCJBbGVzc2lvXCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkFsZnJlZFwiLFxuICAgIFwiQWxpXCIsXG4gICAgXCJBbWFyXCIsXG4gICAgXCJBbWlyXCIsXG4gICAgXCJBbW9uXCIsXG4gICAgXCJBbmRyZVwiLFxuICAgIFwiQW5kcmVhc1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbmdlbG9cIixcbiAgICBcIkFuc2dhclwiLFxuICAgIFwiQW50aG9ueVwiLFxuICAgIFwiQW50b25cIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuXCIsXG4gICAgXCJBcm1pblwiLFxuICAgIFwiQXJuZVwiLFxuICAgIFwiQXJub1wiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJBcnR1clwiLFxuICAgIFwiQXJ2ZWRcIixcbiAgICBcIkFydmlkXCIsXG4gICAgXCJBeW1hblwiLFxuICAgIFwiQmFyYW5cIixcbiAgICBcIkJhcmlzXCIsXG4gICAgXCJCYXN0aWFuXCIsXG4gICAgXCJCYXR1aGFuXCIsXG4gICAgXCJCZWxhXCIsXG4gICAgXCJCZW5cIixcbiAgICBcIkJlbmVkaWt0XCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQmVubmV0XCIsXG4gICAgXCJCZW5uZXR0XCIsXG4gICAgXCJCZW5ub1wiLFxuICAgIFwiQmVudFwiLFxuICAgIFwiQmVyYXRcIixcbiAgICBcIkJlcmtheVwiLFxuICAgIFwiQmVybmRcIixcbiAgICBcIkJpbGFsXCIsXG4gICAgXCJCamFybmVcIixcbiAgICBcIkJqw7ZyblwiLFxuICAgIFwiQm9cIixcbiAgICBcIkJvcmlzXCIsXG4gICAgXCJCcmFuZG9uXCIsXG4gICAgXCJCcmlhblwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkJyeWFuXCIsXG4gICAgXCJCdXJha1wiLFxuICAgIFwiQ2FsdmluXCIsXG4gICAgXCJDYW5cIixcbiAgICBcIkNhcmxcIixcbiAgICBcIkNhcmxvXCIsXG4gICAgXCJDYXJsb3NcIixcbiAgICBcIkNhc3BhclwiLFxuICAgIFwiQ2VkcmljXCIsXG4gICAgXCJDZWRyaWtcIixcbiAgICBcIkNlbVwiLFxuICAgIFwiQ2hhcmxpZVwiLFxuICAgIFwiQ2hyaXNcIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiQ2hyaXN0aWFub1wiLFxuICAgIFwiQ2hyaXN0b3BoXCIsXG4gICAgXCJDaHJpc3RvcGhlclwiLFxuICAgIFwiQ2xhYXNcIixcbiAgICBcIkNsZW1lbnNcIixcbiAgICBcIkNvbGluXCIsXG4gICAgXCJDb2xsaW5cIixcbiAgICBcIkNvbm5lclwiLFxuICAgIFwiQ29ubm9yXCIsXG4gICAgXCJDb25zdGFudGluXCIsXG4gICAgXCJDb3J2aW5cIixcbiAgICBcIkN1cnRcIixcbiAgICBcIkRhbWlhblwiLFxuICAgIFwiRGFtaWVuXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIkRhbmlsb1wiLFxuICAgIFwiRGFubnlcIixcbiAgICBcIkRhcmlhblwiLFxuICAgIFwiRGFyaW9cIixcbiAgICBcIkRhcml1c1wiLFxuICAgIFwiRGFycmVuXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiRGF2aWRlXCIsXG4gICAgXCJEYXZpblwiLFxuICAgIFwiRGVhblwiLFxuICAgIFwiRGVuaXpcIixcbiAgICBcIkRlbm5pc1wiLFxuICAgIFwiRGVubnlcIixcbiAgICBcIkRldmluXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRGlvblwiLFxuICAgIFwiRG9tZW5pY1wiLFxuICAgIFwiRG9tZW5pa1wiLFxuICAgIFwiRG9taW5pY1wiLFxuICAgIFwiRG9taW5pa1wiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJEdXN0aW5cIixcbiAgICBcIkR5bGFuXCIsXG4gICAgXCJFY3JpblwiLFxuICAgIFwiRWRkaVwiLFxuICAgIFwiRWRkeVwiLFxuICAgIFwiRWRnYXJcIixcbiAgICBcIkVkd2luXCIsXG4gICAgXCJFZmVcIixcbiAgICBcIkVnZVwiLFxuICAgIFwiRWxpYVwiLFxuICAgIFwiRWxpYWhcIixcbiAgICBcIkVsaWFzXCIsXG4gICAgXCJFbGlqYWhcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtaWxpYW5cIixcbiAgICBcIkVtaWxpb1wiLFxuICAgIFwiRW1pclwiLFxuICAgIFwiRW1pcmhhblwiLFxuICAgIFwiRW1yZVwiLFxuICAgIFwiRW5lc1wiLFxuICAgIFwiRW5ub1wiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFcmVuXCIsXG4gICAgXCJFcmljXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJFdGllbm5lXCIsXG4gICAgXCJGYWJpYW5cIixcbiAgICBcIkZhYmllblwiLFxuICAgIFwiRmFiaW9cIixcbiAgICBcIkZhYnJpY2VcIixcbiAgICBcIkZhbGtcIixcbiAgICBcIkZlbGl4XCIsXG4gICAgXCJGZXJkaW5hbmRcIixcbiAgICBcIkZpZXRlXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiRmlubGF5XCIsXG4gICAgXCJGaW5sZXlcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZpbm5sZXlcIixcbiAgICBcIkZsb3JpYW5cIixcbiAgICBcIkZyYW5jZXNjb1wiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyZWRlcmljXCIsXG4gICAgXCJGcmVkZXJpY2tcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaXR6XCIsXG4gICAgXCJGdXJrYW5cIixcbiAgICBcIkZ5bm5cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlb3JnXCIsXG4gICAgXCJHZXJyaXRcIixcbiAgICBcIkdpYW5cIixcbiAgICBcIkdpYW5sdWNhXCIsXG4gICAgXCJHaW5vXCIsXG4gICAgXCJHaXVsaWFub1wiLFxuICAgIFwiR2l1c2VwcGVcIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiR3VzdGF2XCIsXG4gICAgXCJIYWdlblwiLFxuICAgIFwiSGFtemFcIixcbiAgICBcIkhhbm5lc1wiLFxuICAgIFwiSGFubm9cIixcbiAgICBcIkhhbnNcIixcbiAgICBcIkhhc2FuXCIsXG4gICAgXCJIYXNzYW5cIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIZW5kcmlrXCIsXG4gICAgXCJIZW5uZXNcIixcbiAgICBcIkhlbm5pbmdcIixcbiAgICBcIkhlbnJpXCIsXG4gICAgXCJIZW5yaWNrXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJIdXNzZWluXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklicmFoaW1cIixcbiAgICBcIklsaWFzXCIsXG4gICAgXCJJbGphXCIsXG4gICAgXCJJbHlhc1wiLFxuICAgIFwiSW1tYW51ZWxcIixcbiAgICBcIklzbWFlbFwiLFxuICAgIFwiSXNtYWlsXCIsXG4gICAgXCJJdmFuXCIsXG4gICAgXCJJdmVuXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSmFkZW5cIixcbiAgICBcIkpha29iXCIsXG4gICAgXCJKYW1hbFwiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW5cIixcbiAgICBcIkphbmVrXCIsXG4gICAgXCJKYW5pc1wiLFxuICAgIFwiSmFubmVcIixcbiAgICBcIkphbm5la1wiLFxuICAgIFwiSmFubmVzXCIsXG4gICAgXCJKYW5uaWtcIixcbiAgICBcIkphbm5pc1wiLFxuICAgIFwiSmFub1wiLFxuICAgIFwiSmFub3NjaFwiLFxuICAgIFwiSmFyZWRcIixcbiAgICBcIkphcmlcIixcbiAgICBcIkphcm5lXCIsXG4gICAgXCJKYXJub1wiLFxuICAgIFwiSmFyb25cIixcbiAgICBcIkphc29uXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJKYXlzb25cIixcbiAgICBcIkplYW5cIixcbiAgICBcIkplbnNcIixcbiAgICBcIkplcmVtaWFzXCIsXG4gICAgXCJKZXJlbWllXCIsXG4gICAgXCJKZXJlbXlcIixcbiAgICBcIkplcm1haW5lXCIsXG4gICAgXCJKZXJvbWVcIixcbiAgICBcIkplc3BlclwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkppbVwiLFxuICAgIFwiSmltbXlcIixcbiAgICBcIkpvZVwiLFxuICAgIFwiSm9lbFwiLFxuICAgIFwiSm9leVwiLFxuICAgIFwiSm9oYW5uXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9obm55XCIsXG4gICAgXCJKb25cIixcbiAgICBcIkpvbmFcIixcbiAgICBcIkpvbmFoXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkpvbnRlXCIsXG4gICAgXCJKb29zdFwiLFxuICAgIFwiSm9yZGFuXCIsXG4gICAgXCJKb3Jpc1wiLFxuICAgIFwiSm9zY2hhXCIsXG4gICAgXCJKb3NjaHVhXCIsXG4gICAgXCJKb3NlZlwiLFxuICAgIFwiSm9zZXBoXCIsXG4gICAgXCJKb3NoXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIkpvc3VhXCIsXG4gICAgXCJKdWFuXCIsXG4gICAgXCJKdWxpYW5cIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiSnVsaXVzXCIsXG4gICAgXCJKdXJpXCIsXG4gICAgXCJKdXN0aW5cIixcbiAgICBcIkp1c3R1c1wiLFxuICAgIFwiS2FhblwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJLYWxsZVwiLFxuICAgIFwiS2FyaW1cIixcbiAgICBcIkthcmxcIixcbiAgICBcIkthcmxvXCIsXG4gICAgXCJLYXlcIixcbiAgICBcIktlYW51XCIsXG4gICAgXCJLZW5hblwiLFxuICAgIFwiS2VubnlcIixcbiAgICBcIktlbm9cIixcbiAgICBcIktlcmVtXCIsXG4gICAgXCJLZXJpbVwiLFxuICAgIFwiS2V2aW5cIixcbiAgICBcIktpYW5cIixcbiAgICBcIktpbGlhblwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1pXCIsXG4gICAgXCJLamVsbFwiLFxuICAgIFwiS2xhYXNcIixcbiAgICBcIktsZW1lbnNcIixcbiAgICBcIktvbnJhZFwiLFxuICAgIFwiS29uc3RhbnRpblwiLFxuICAgIFwiS29yYXlcIixcbiAgICBcIktvcmJpbmlhblwiLFxuICAgIFwiS3VydFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiTGFzc2VcIixcbiAgICBcIkxhdXJlbmNlXCIsXG4gICAgXCJMYXVyZW5zXCIsXG4gICAgXCJMYXVyZW56XCIsXG4gICAgXCJMYXVyaW5cIixcbiAgICBcIkxlYW5cIixcbiAgICBcIkxlYW5kZXJcIixcbiAgICBcIkxlYW5kcm9cIixcbiAgICBcIkxlaWZcIixcbiAgICBcIkxlblwiLFxuICAgIFwiTGVublwiLFxuICAgIFwiTGVubmFyZFwiLFxuICAgIFwiTGVubmFydFwiLFxuICAgIFwiTGVubmVydFwiLFxuICAgIFwiTGVubmllXCIsXG4gICAgXCJMZW5ub3hcIixcbiAgICBcIkxlbm55XCIsXG4gICAgXCJMZW9cIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25hcmRvXCIsXG4gICAgXCJMZW9uaGFyZFwiLFxuICAgIFwiTGVvbmlkYXNcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkxlcm95XCIsXG4gICAgXCJMZXZlbnRcIixcbiAgICBcIkxldmlcIixcbiAgICBcIkxldmluXCIsXG4gICAgXCJMZXdpblwiLFxuICAgIFwiTGV3aXNcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkxpYW5cIixcbiAgICBcIkxpYXNcIixcbiAgICBcIkxpbm9cIixcbiAgICBcIkxpbnVzXCIsXG4gICAgXCJMaW9cIixcbiAgICBcIkxpb25cIixcbiAgICBcIkxpb25lbFwiLFxuICAgIFwiTG9nYW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTG9yaXNcIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJMdWFuXCIsXG4gICAgXCJMdWNcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWNpYW5cIixcbiAgICBcIkx1Y2llblwiLFxuICAgIFwiTHVkd2lnXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWl6XCIsXG4gICAgXCJMdWtcIixcbiAgICBcIkx1a2FcIixcbiAgICBcIkx1a2FzXCIsXG4gICAgXCJMdWtlXCIsXG4gICAgXCJMdXR6XCIsXG4gICAgXCJNYWRkb3hcIixcbiAgICBcIk1hZHNcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFpa1wiLFxuICAgIFwiTWFrc2ltXCIsXG4gICAgXCJNYWxpa1wiLFxuICAgIFwiTWFsdGVcIixcbiAgICBcIk1hbnVlbFwiLFxuICAgIFwiTWFyY1wiLFxuICAgIFwiTWFyY2VsXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyY3VzXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFyaWFuXCIsXG4gICAgXCJNYXJpb1wiLFxuICAgIFwiTWFyaXVzXCIsXG4gICAgXCJNYXJrXCIsXG4gICAgXCJNYXJrb1wiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXJsb1wiLFxuICAgIFwiTWFybG9uXCIsXG4gICAgXCJNYXJ0ZW5cIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXJ3aW5cIixcbiAgICBcIk1hdGVvXCIsXG4gICAgXCJNYXRoaXNcIixcbiAgICBcIk1hdGlzXCIsXG4gICAgXCJNYXRzXCIsXG4gICAgXCJNYXR0ZW9cIixcbiAgICBcIk1hdHRlc1wiLFxuICAgIFwiTWF0dGhpYXNcIixcbiAgICBcIk1hdHRoaXNcIixcbiAgICBcIk1hdHRpXCIsXG4gICAgXCJNYXR0aXNcIixcbiAgICBcIk1hdXJpY2VcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWF4aW1cIixcbiAgICBcIk1heGltaWxpYW5cIixcbiAgICBcIk1laG1ldFwiLFxuICAgIFwiTWVpa1wiLFxuICAgIFwiTWVsdmluXCIsXG4gICAgXCJNZXJsaW5cIixcbiAgICBcIk1lcnRcIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWlja1wiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWthXCIsXG4gICAgXCJNaWthaWxcIixcbiAgICBcIk1pa2VcIixcbiAgICBcIk1pbGFuXCIsXG4gICAgXCJNaWxvXCIsXG4gICAgXCJNaW9cIixcbiAgICBcIk1pcmFjXCIsXG4gICAgXCJNaXJjb1wiLFxuICAgIFwiTWlya29cIixcbiAgICBcIk1vaGFtZWRcIixcbiAgICBcIk1vaGFtbWFkXCIsXG4gICAgXCJNb2hhbW1lZFwiLFxuICAgIFwiTW9yaXR6XCIsXG4gICAgXCJNb3J0ZW5cIixcbiAgICBcIk11aGFtbWVkXCIsXG4gICAgXCJNdXJhdFwiLFxuICAgIFwiTXVzdGFmYVwiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJOYXRoYW5hZWxcIixcbiAgICBcIk5lbHNvblwiLFxuICAgIFwiTmVvXCIsXG4gICAgXCJOZXZpb1wiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmljbGFzXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOaWNvbGFpXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOaWVsc1wiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWtsYXNcIixcbiAgICBcIk5pa29cIixcbiAgICBcIk5pa29sYWlcIixcbiAgICBcIk5pa29sYXNcIixcbiAgICBcIk5pbHNcIixcbiAgICBcIk5pbm9cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIk5vZWxcIixcbiAgICBcIk5vcm1hblwiLFxuICAgIFwiT2RpblwiLFxuICAgIFwiT2tlXCIsXG4gICAgXCJPbGVcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiT21hclwiLFxuICAgIFwiT251clwiLFxuICAgIFwiT3NjYXJcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJQYXNjYWxcIixcbiAgICBcIlBhdHJpY2VcIixcbiAgICBcIlBhdHJpY2tcIixcbiAgICBcIlBhdWxcIixcbiAgICBcIlBlZXJcIixcbiAgICBcIlBlcGVcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQaGlsXCIsXG4gICAgXCJQaGlsaXBcIixcbiAgICBcIlBoaWxpcHBcIixcbiAgICBcIlBpZXJyZVwiLFxuICAgIFwiUGlldFwiLFxuICAgIFwiUGl0XCIsXG4gICAgXCJQaXVzXCIsXG4gICAgXCJRdWVudGluXCIsXG4gICAgXCJRdWlyaW5cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFpa1wiLFxuICAgIFwiUmFtb25cIixcbiAgICBcIlJhcGhhZWxcIixcbiAgICBcIlJhc211c1wiLFxuICAgIFwiUmF1bFwiLFxuICAgIFwiUmF5YW5cIixcbiAgICBcIlJlbsOpXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSaWNjYXJkb1wiLFxuICAgIFwiUmljaGFyZFwiLFxuICAgIFwiUmlja1wiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2JpblwiLFxuICAgIFwiUm9jY29cIixcbiAgICBcIlJvbWFuXCIsXG4gICAgXCJSb21lb1wiLFxuICAgIFwiUm9uXCIsXG4gICAgXCJSdWJlblwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiU2FpZFwiLFxuICAgIFwiU2FsaWhcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiU2FtaVwiLFxuICAgIFwiU2FtbXlcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiU2FuZHJvXCIsXG4gICAgXCJTYW50aW5vXCIsXG4gICAgXCJTYXNjaGFcIixcbiAgICBcIlNlYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiU2VsaW1cIixcbiAgICBcIlNlbWloXCIsXG4gICAgXCJTaGF3blwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlNpbWVvblwiLFxuICAgIFwiU2ltb25cIixcbiAgICBcIlNpbmFuXCIsXG4gICAgXCJTa3lcIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiU3RlZmZlblwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3RldmVcIixcbiAgICBcIlN0ZXZlblwiLFxuICAgIFwiU3ZlblwiLFxuICAgIFwiU8O2bmtlXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlRhaGFcIixcbiAgICBcIlRhbWlub1wiLFxuICAgIFwiVGFtbW9cIixcbiAgICBcIlRhcmlrXCIsXG4gICAgXCJUYXlsZXJcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiVGVvXCIsXG4gICAgXCJUaGVvXCIsXG4gICAgXCJUaGVvZG9yXCIsXG4gICAgXCJUaGllc1wiLFxuICAgIFwiVGhpbG9cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiVGhvcmJlblwiLFxuICAgIFwiVGhvcmVcIixcbiAgICBcIlRob3JnZVwiLFxuICAgIFwiVGlhZ29cIixcbiAgICBcIlRpbFwiLFxuICAgIFwiVGlsbFwiLFxuICAgIFwiVGlsbG1hbm5cIixcbiAgICBcIlRpbVwiLFxuICAgIFwiVGltbVwiLFxuICAgIFwiVGltb1wiLFxuICAgIFwiVGltb25cIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRpbm9cIixcbiAgICBcIlRpdHVzXCIsXG4gICAgXCJUaXppYW5cIixcbiAgICBcIlRqYXJrXCIsXG4gICAgXCJUb2JpYXNcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiVG9tbXlcIixcbiAgICBcIlRvbmlcIixcbiAgICBcIlRvbnlcIixcbiAgICBcIlRvcmJlblwiLFxuICAgIFwiVG9yZVwiLFxuICAgIFwiVHJpc3RhblwiLFxuICAgIFwiVHlsZXJcIixcbiAgICBcIlR5cm9uXCIsXG4gICAgXCJVbXV0XCIsXG4gICAgXCJWYWxlbnRpblwiLFxuICAgIFwiVmFsZW50aW5vXCIsXG4gICAgXCJWZWl0XCIsXG4gICAgXCJWaWN0b3JcIixcbiAgICBcIlZpa3RvclwiLFxuICAgIFwiVmluXCIsXG4gICAgXCJWaW5jZW50XCIsXG4gICAgXCJWaXRvXCIsXG4gICAgXCJWaXR1c1wiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsbGlcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIldpbGx5XCIsXG4gICAgXCJYYXZlclwiLFxuICAgIFwiWWFubmljXCIsXG4gICAgXCJZYW5uaWNrXCIsXG4gICAgXCJZYW5uaWtcIixcbiAgICBcIllhbm5pc1wiLFxuICAgIFwiWWFzaW5cIixcbiAgICBcIllvdXNzZWZcIixcbiAgICBcIll1bnVzXCIsXG4gICAgXCJZdXN1ZlwiLFxuICAgIFwiWXZlblwiLFxuICAgIFwiWXZlc1wiLFxuICAgIFwiw5ZtZXJcIixcbiAgICBcIkFhbGl5YWhcIixcbiAgICBcIkFiYnlcIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIkFkYVwiLFxuICAgIFwiQWRlbGluYVwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWlsZWVuXCIsXG4gICAgXCJBaW1lZVwiLFxuICAgIFwiQWxhbmFcIixcbiAgICBcIkFsZWFcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJBbGVzc2FcIixcbiAgICBcIkFsZXNzaWFcIixcbiAgICBcIkFsZXhhXCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkFsZXhpYVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJBbGV5bmFcIixcbiAgICBcIkFsaWFcIixcbiAgICBcIkFsaWNhXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiQWxpY2lhXCIsXG4gICAgXCJBbGluYVwiLFxuICAgIFwiQWxpc2FcIixcbiAgICBcIkFsaXNoYVwiLFxuICAgIFwiQWxpc3NhXCIsXG4gICAgXCJBbGl5YVwiLFxuICAgIFwiQWxpeWFoXCIsXG4gICAgXCJBbGxlZ3JhXCIsXG4gICAgXCJBbG1hXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbWVsaWFcIixcbiAgICBcIkFtZWxpZVwiLFxuICAgIFwiQW1pbmFcIixcbiAgICBcIkFtaXJhXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFuYVwiLFxuICAgIFwiQW5hYmVsXCIsXG4gICAgXCJBbmFzdGFzaWFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJBbmdlbGluYVwiLFxuICAgIFwiQW5nZWxpcXVlXCIsXG4gICAgXCJBbmphXCIsXG4gICAgXCJBbm5cIixcbiAgICBcIkFubmFcIixcbiAgICBcIkFubmFiZWxcIixcbiAgICBcIkFubmFiZWxsXCIsXG4gICAgXCJBbm5hYmVsbGVcIixcbiAgICBcIkFubmFsZW5hXCIsXG4gICAgXCJBbm5lXCIsXG4gICAgXCJBbm5la2VcIixcbiAgICBcIkFubmVsaWVcIixcbiAgICBcIkFubmVtYXJpZVwiLFxuICAgIFwiQW5uaVwiLFxuICAgIFwiQW5uaWVcIixcbiAgICBcIkFubmlrYVwiLFxuICAgIFwiQW5ueVwiLFxuICAgIFwiQW5vdWtcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuYVwiLFxuICAgIFwiQXJpYW5lXCIsXG4gICAgXCJBcndlblwiLFxuICAgIFwiQXNobGV5XCIsXG4gICAgXCJBc3lhXCIsXG4gICAgXCJBdXJlbGlhXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkF2YVwiLFxuICAgIFwiQXlsZWVuXCIsXG4gICAgXCJBeWxpblwiLFxuICAgIFwiQXlzZVwiLFxuICAgIFwiQXpyYVwiLFxuICAgIFwiQmV0dHlcIixcbiAgICBcIkJpYW5jYVwiLFxuICAgIFwiQmlhbmthXCIsXG4gICAgXCJDYWl0bGluXCIsXG4gICAgXCJDYXJhXCIsXG4gICAgXCJDYXJpbmFcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJDYXJsb3R0YVwiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJvbGluXCIsXG4gICAgXCJDYXJvbGluYVwiLFxuICAgIFwiQ2Fyb2xpbmVcIixcbiAgICBcIkNhc3NhbmRyYVwiLFxuICAgIFwiQ2F0aGFyaW5hXCIsXG4gICAgXCJDYXRyaW5cIixcbiAgICBcIkNlY2lsZVwiLFxuICAgIFwiQ2VjaWxpYVwiLFxuICAgIFwiQ2VsaWFcIixcbiAgICBcIkNlbGluYVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJDZXlkYVwiLFxuICAgIFwiQ2V5bGluXCIsXG4gICAgXCJDaGFudGFsXCIsXG4gICAgXCJDaGFybGVlblwiLFxuICAgIFwiQ2hhcmxvdHRhXCIsXG4gICAgXCJDaGFybG90dGVcIixcbiAgICBcIkNoYXllbm5lXCIsXG4gICAgXCJDaGV5ZW5uZVwiLFxuICAgIFwiQ2hpYXJhXCIsXG4gICAgXCJDaHJpc3RpblwiLFxuICAgIFwiQ2hyaXN0aW5hXCIsXG4gICAgXCJDaW5keVwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiQ2xhcmlzc2FcIixcbiAgICBcIkNvbGxlZW5cIixcbiAgICBcIkNvbGxpZW5cIixcbiAgICBcIkNvcmFcIixcbiAgICBcIkNvcmlubmFcIixcbiAgICBcIkNvc2ltYVwiLFxuICAgIFwiRGFuYVwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiRGFyaWFcIixcbiAgICBcIkRhcmxlZW5cIixcbiAgICBcIkRlZm5lXCIsXG4gICAgXCJEZWxpYVwiLFxuICAgIFwiRGVuaXNlXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGlsYXJhXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEb3JvdGhlYVwiLFxuICAgIFwiRWNyaW5cIixcbiAgICBcIkVkYVwiLFxuICAgIFwiRWlsZWVuXCIsXG4gICAgXCJFbGFcIixcbiAgICBcIkVsYWluZVwiLFxuICAgIFwiRWxhbnVyXCIsXG4gICAgXCJFbGVhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxlbmlcIixcbiAgICBcIkVsZW9ub3JhXCIsXG4gICAgXCJFbGlhbmFcIixcbiAgICBcIkVsaWZcIixcbiAgICBcIkVsaW5hXCIsXG4gICAgXCJFbGlzYVwiLFxuICAgIFwiRWxpc2FiZXRoXCIsXG4gICAgXCJFbGxhXCIsXG4gICAgXCJFbGxlblwiLFxuICAgIFwiRWxsaVwiLFxuICAgIFwiRWxseVwiLFxuICAgIFwiRWxzYVwiLFxuICAgIFwiRW1lbGllXCIsXG4gICAgXCJFbWVseVwiLFxuICAgIFwiRW1pbGlhXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkVtaWx5XCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJFbW1lbHlcIixcbiAgICBcIkVtbWlcIixcbiAgICBcIkVtbXlcIixcbiAgICBcIkVuaWVcIixcbiAgICBcIkVubmFcIixcbiAgICBcIkVueWFcIixcbiAgICBcIkVzbWFcIixcbiAgICBcIkVzdGVsbGVcIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJFdmVsaW5cIixcbiAgICBcIkV2ZWxpbmFcIixcbiAgICBcIkV2ZWxpbmVcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiRmFiaWVubmVcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmF0bWFcIixcbiAgICBcIkZlbGljaWFcIixcbiAgICBcIkZlbGljaXRhc1wiLFxuICAgIFwiRmVsaW5hXCIsXG4gICAgXCJGZW1rZVwiLFxuICAgIFwiRmVuamFcIixcbiAgICBcIkZpbmVcIixcbiAgICBcIkZpbmlhXCIsXG4gICAgXCJGaW5qYVwiLFxuICAgIFwiRmlubmphXCIsXG4gICAgXCJGaW9uYVwiLFxuICAgIFwiRmxvcmFcIixcbiAgICBcIkZsb3JlbnRpbmVcIixcbiAgICBcIkZyYW5jZXNjYVwiLFxuICAgIFwiRnJhbmthXCIsXG4gICAgXCJGcmFuemlza2FcIixcbiAgICBcIkZyZWRlcmlrZVwiLFxuICAgIFwiRnJleWFcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJGcmllZGFcIixcbiAgICBcIkZyaWVkZXJpa2VcIixcbiAgICBcIkdpYWRhXCIsXG4gICAgXCJHaW5hXCIsXG4gICAgXCJHaXVsaWFcIixcbiAgICBcIkdpdWxpYW5hXCIsXG4gICAgXCJHcmV0YVwiLFxuICAgIFwiSGFpbGV5XCIsXG4gICAgXCJIYW5hXCIsXG4gICAgXCJIYW5uYVwiLFxuICAgIFwiSGFubmFoXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiSGVsZW5cIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJIZWxpblwiLFxuICAgIFwiSGVucmlldHRlXCIsXG4gICAgXCJIZW5yaWtlXCIsXG4gICAgXCJIZXJtaW5lXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIklsYXlkYVwiLFxuICAgIFwiSW1rZVwiLFxuICAgIFwiSW5hXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJJbmdhXCIsXG4gICAgXCJJbmthXCIsXG4gICAgXCJJcmVtXCIsXG4gICAgXCJJc2FcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNhYmVsbFwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIklzYWJlbGxlXCIsXG4gICAgXCJJdm9ubmVcIixcbiAgICBcIkphY3F1ZWxpbmVcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW1pbGFcIixcbiAgICBcIkphbmFcIixcbiAgICBcIkphbmVcIixcbiAgICBcIkphbmluXCIsXG4gICAgXCJKYW5pbmFcIixcbiAgICBcIkphbmluZVwiLFxuICAgIFwiSmFubmFcIixcbiAgICBcIkphbm5lXCIsXG4gICAgXCJKYXJhXCIsXG4gICAgXCJKYXNtaW5cIixcbiAgICBcIkphc21pbmFcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkplbGxhXCIsXG4gICAgXCJKZW5uYVwiLFxuICAgIFwiSmVubmlmZXJcIixcbiAgICBcIkplbm55XCIsXG4gICAgXCJKZXNzaWNhXCIsXG4gICAgXCJKZXNzeVwiLFxuICAgIFwiSmV0dGVcIixcbiAgICBcIkppbFwiLFxuICAgIFwiSmlsbFwiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkpvYW5uYVwiLFxuICAgIFwiSm9lbGluYVwiLFxuICAgIFwiSm9lbGluZVwiLFxuICAgIFwiSm9lbGxlXCIsXG4gICAgXCJKb2hhbm5hXCIsXG4gICAgXCJKb2xlZW5cIixcbiAgICBcIkpvbGllXCIsXG4gICAgXCJKb2xpZW5cIixcbiAgICBcIkpvbGluXCIsXG4gICAgXCJKb2xpbmFcIixcbiAgICBcIkpvbGluZVwiLFxuICAgIFwiSm9uYVwiLFxuICAgIFwiSm9uYWhcIixcbiAgICBcIkpvbm5hXCIsXG4gICAgXCJKb3NlZmluXCIsXG4gICAgXCJKb3NlZmluZVwiLFxuICAgIFwiSm9zZXBoaW5cIixcbiAgICBcIkpvc2VwaGluZVwiLFxuICAgIFwiSm9zaWVcIixcbiAgICBcIkpvc3lcIixcbiAgICBcIkpveVwiLFxuICAgIFwiSm95Y2VcIixcbiAgICBcIkp1ZGl0aFwiLFxuICAgIFwiSnVkeVwiLFxuICAgIFwiSnVsZVwiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhbmFcIixcbiAgICBcIkp1bGlhbmVcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJKdWxpZW5uZVwiLFxuICAgIFwiSnVsaWthXCIsXG4gICAgXCJKdWxpbmFcIixcbiAgICBcIkp1bmFcIixcbiAgICBcIkp1c3RpbmVcIixcbiAgICBcIkthamFcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiS2FybGFcIixcbiAgICBcIkthcmxvdHRhXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiS2Fyb2xpbmVcIixcbiAgICBcIkthc3NhbmRyYVwiLFxuICAgIFwiS2F0YXJpbmFcIixcbiAgICBcIkthdGhhcmluYVwiLFxuICAgIFwiS2F0aHJpblwiLFxuICAgIFwiS2F0amFcIixcbiAgICBcIkthdHJpblwiLFxuICAgIFwiS2F5YVwiLFxuICAgIFwiS2F5cmFcIixcbiAgICBcIktpYW5hXCIsXG4gICAgXCJLaWFyYVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1iZXJsZXlcIixcbiAgICBcIktpbWJlcmx5XCIsXG4gICAgXCJLaXJhXCIsXG4gICAgXCJLbGFyYVwiLFxuICAgIFwiS29yaW5uYVwiLFxuICAgIFwiS3Jpc3RpblwiLFxuICAgIFwiS3lyYVwiLFxuICAgIFwiTGFpbGFcIixcbiAgICBcIkxhbmFcIixcbiAgICBcIkxhcmFcIixcbiAgICBcIkxhcmlzc2FcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMYXVyZWVuXCIsXG4gICAgXCJMYXZpbmlhXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlYWhcIixcbiAgICBcIkxlYW5hXCIsXG4gICAgXCJMZWFuZHJhXCIsXG4gICAgXCJMZWFublwiLFxuICAgIFwiTGVlXCIsXG4gICAgXCJMZWlsYVwiLFxuICAgIFwiTGVuYVwiLFxuICAgIFwiTGVuZVwiLFxuICAgIFwiTGVuaVwiLFxuICAgIFwiTGVuaWFcIixcbiAgICBcIkxlbmphXCIsXG4gICAgXCJMZW55YVwiLFxuICAgIFwiTGVvbmFcIixcbiAgICBcIkxlb25pXCIsXG4gICAgXCJMZW9uaWVcIixcbiAgICBcIkxlb25vcmFcIixcbiAgICBcIkxldGljaWFcIixcbiAgICBcIkxldGl6aWFcIixcbiAgICBcIkxldmtlXCIsXG4gICAgXCJMZXlsYVwiLFxuICAgIFwiTGlhXCIsXG4gICAgXCJMaWFoXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTGlsaVwiLFxuICAgIFwiTGlsaWFcIixcbiAgICBcIkxpbGlhblwiLFxuICAgIFwiTGlsaWFuYVwiLFxuICAgIFwiTGlsaXRoXCIsXG4gICAgXCJMaWxsaVwiLFxuICAgIFwiTGlsbGlhblwiLFxuICAgIFwiTGlsbHlcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIkxpbmFcIixcbiAgICBcIkxpbmRhXCIsXG4gICAgXCJMaW5kc2F5XCIsXG4gICAgXCJMaW5lXCIsXG4gICAgXCJMaW5uXCIsXG4gICAgXCJMaW5uZWFcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxpc2FublwiLFxuICAgIFwiTGlzYW5uZVwiLFxuICAgIFwiTGl2XCIsXG4gICAgXCJMaXZpYVwiLFxuICAgIFwiTGl6XCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJMb3JlZW5cIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG90dGFcIixcbiAgICBcIkxvdHRlXCIsXG4gICAgXCJMb3Vpc2FcIixcbiAgICBcIkxvdWlzZVwiLFxuICAgIFwiTHVhbmFcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiTHVjaWVubmVcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkx1aXNhXCIsXG4gICAgXCJMdWlzZVwiLFxuICAgIFwiTHVrYVwiLFxuICAgIFwiTHVuYVwiLFxuICAgIFwiTHV6aWVcIixcbiAgICBcIkx5YVwiLFxuICAgIFwiTHlkaWFcIixcbiAgICBcIkx5blwiLFxuICAgIFwiTHlublwiLFxuICAgIFwiTWFkZWxlaW5lXCIsXG4gICAgXCJNYWRpdGFcIixcbiAgICBcIk1hZGxlZW5cIixcbiAgICBcIk1hZGxlblwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYWlrZVwiLFxuICAgIFwiTWFpbGluXCIsXG4gICAgXCJNYWlyYVwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiTWFsZW5hXCIsXG4gICAgXCJNYWxpYVwiLFxuICAgIFwiTWFsaW5cIixcbiAgICBcIk1hbGluYVwiLFxuICAgIFwiTWFuZHlcIixcbiAgICBcIk1hcmFcIixcbiAgICBcIk1hcmFoXCIsXG4gICAgXCJNYXJlaWtlXCIsXG4gICAgXCJNYXJlblwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhbVwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIk1hcmlla2VcIixcbiAgICBcIk1hcmllbGxhXCIsXG4gICAgXCJNYXJpa2FcIixcbiAgICBcIk1hcmluYVwiLFxuICAgIFwiTWFyaXNhXCIsXG4gICAgXCJNYXJpc3NhXCIsXG4gICAgXCJNYXJpdFwiLFxuICAgIFwiTWFybGFcIixcbiAgICBcIk1hcmxlZW5cIixcbiAgICBcIk1hcmxlblwiLFxuICAgIFwiTWFybGVuYVwiLFxuICAgIFwiTWFybGVuZVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIk1hcnRoYVwiLFxuICAgIFwiTWFyeVwiLFxuICAgIFwiTWFyeWFtXCIsXG4gICAgXCJNYXRoaWxkYVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIk1heGlcIixcbiAgICBcIk1heGltYVwiLFxuICAgIFwiTWF4aW5lXCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJNYXlyYVwiLFxuICAgIFwiTWVkaW5hXCIsXG4gICAgXCJNZWRpbmVcIixcbiAgICBcIk1laWtlXCIsXG4gICAgXCJNZWxhbmllXCIsXG4gICAgXCJNZWxla1wiLFxuICAgIFwiTWVsaWtlXCIsXG4gICAgXCJNZWxpbmFcIixcbiAgICBcIk1lbGluZGFcIixcbiAgICBcIk1lbGlzXCIsXG4gICAgXCJNZWxpc2FcIixcbiAgICBcIk1lbGlzc2FcIixcbiAgICBcIk1lcmxlXCIsXG4gICAgXCJNZXJ2ZVwiLFxuICAgIFwiTWVyeWVtXCIsXG4gICAgXCJNZXR0ZVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiTWljaGVsbGVcIixcbiAgICBcIk1pZWtlXCIsXG4gICAgXCJNaWxhXCIsXG4gICAgXCJNaWxhbmFcIixcbiAgICBcIk1pbGVuYVwiLFxuICAgIFwiTWlsbGFcIixcbiAgICBcIk1pbmFcIixcbiAgICBcIk1pcmFcIixcbiAgICBcIk1pcmF5XCIsXG4gICAgXCJNaXJpYW1cIixcbiAgICBcIk1pcmphXCIsXG4gICAgXCJNb25hXCIsXG4gICAgXCJNb25pcXVlXCIsXG4gICAgXCJOYWRpbmVcIixcbiAgICBcIk5hZGphXCIsXG4gICAgXCJOYWVtaVwiLFxuICAgIFwiTmFuY3lcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJOYXRoYWxpZVwiLFxuICAgIFwiTmVlbGVcIixcbiAgICBcIk5lbGFcIixcbiAgICBcIk5lbGVcIixcbiAgICBcIk5lbGxpXCIsXG4gICAgXCJOZWxseVwiLFxuICAgIFwiTmlhXCIsXG4gICAgXCJOaWNvbGVcIixcbiAgICBcIk5pa2FcIixcbiAgICBcIk5pa2VcIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlsYVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTmlzYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIk9saXZpYVwiLFxuICAgIFwiUGF0cmljaWFcIixcbiAgICBcIlBhdHJpemlhXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGF1bGluYVwiLFxuICAgIFwiUGF1bGluZVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBoaWxpbmVcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiUGlhXCIsXG4gICAgXCJSYWhlbFwiLFxuICAgIFwiUmFuaWFcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJlYmVra2FcIixcbiAgICBcIlJpYW5hXCIsXG4gICAgXCJSaWVrZVwiLFxuICAgIFwiUmlrZVwiLFxuICAgIFwiUm9taW5hXCIsXG4gICAgXCJSb215XCIsXG4gICAgXCJSb25qYVwiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zYWxpZVwiLFxuICAgIFwiUnVieVwiLFxuICAgIFwiU2FicmluYVwiLFxuICAgIFwiU2FocmFcIixcbiAgICBcIlNhbGx5XCIsXG4gICAgXCJTYWxvbWVcIixcbiAgICBcIlNhbWFudGhhXCIsXG4gICAgXCJTYW1pYVwiLFxuICAgIFwiU2FtaXJhXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIlNhbmR5XCIsXG4gICAgXCJTYW5qYVwiLFxuICAgIFwiU2FwaGlyYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIlNhc2tpYVwiLFxuICAgIFwiU2VsaW5cIixcbiAgICBcIlNlbGluYVwiLFxuICAgIFwiU2VsbWFcIixcbiAgICBcIlNlbmFcIixcbiAgICBcIlNpZG5leVwiLFxuICAgIFwiU2llbm5hXCIsXG4gICAgXCJTaWxqYVwiLFxuICAgIFwiU2luYVwiLFxuICAgIFwiU2luamFcIixcbiAgICBcIlNtaWxsYVwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIlNvZmllXCIsXG4gICAgXCJTb25qYVwiLFxuICAgIFwiU29waGlhXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIlNvcmF5YVwiLFxuICAgIFwiU3RlZmFuaWVcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlcGhhbmllXCIsXG4gICAgXCJTdGluYVwiLFxuICAgIFwiU3VkZVwiLFxuICAgIFwiU3VtbWVyXCIsXG4gICAgXCJTdXNhbm5lXCIsXG4gICAgXCJTdmVhXCIsXG4gICAgXCJTdmVuamFcIixcbiAgICBcIlN5ZG5leVwiLFxuICAgIFwiVGFiZWFcIixcbiAgICBcIlRhbGVhXCIsXG4gICAgXCJUYWxpYVwiLFxuICAgIFwiVGFtYXJhXCIsXG4gICAgXCJUYW1pYVwiLFxuICAgIFwiVGFtaW5hXCIsXG4gICAgXCJUYW5qYVwiLFxuICAgIFwiVGFyYVwiLFxuICAgIFwiVGFyamFcIixcbiAgICBcIlRlcmVzYVwiLFxuICAgIFwiVGVzc2FcIixcbiAgICBcIlRoYWxlYVwiLFxuICAgIFwiVGhhbGlhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUaGVyZXNhXCIsXG4gICAgXCJUaWFcIixcbiAgICBcIlRpbmFcIixcbiAgICBcIlRvbWtlXCIsXG4gICAgXCJUdWFuYVwiLFxuICAgIFwiVmFsZW50aW5hXCIsXG4gICAgXCJWYWxlcmlhXCIsXG4gICAgXCJWYWxlcmllXCIsXG4gICAgXCJWYW5lc3NhXCIsXG4gICAgXCJWZXJhXCIsXG4gICAgXCJWZXJvbmlrYVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpa3RvcmlhXCIsXG4gICAgXCJWaW9sYVwiLFxuICAgIFwiVml2aWFuXCIsXG4gICAgXCJWaXZpZW5cIixcbiAgICBcIlZpdmllbm5lXCIsXG4gICAgXCJXaWJrZVwiLFxuICAgIFwiV2llYmtlXCIsXG4gICAgXCJYZW5pYVwiLFxuICAgIFwiWWFyYVwiLFxuICAgIFwiWWFyZW5cIixcbiAgICBcIllhc21pblwiLFxuICAgIFwiWWx2aVwiLFxuICAgIFwiWWx2aWVcIixcbiAgICBcIll2b25uZVwiLFxuICAgIFwiWmFyYVwiLFxuICAgIFwiWmVocmFcIixcbiAgICBcIlpleW5lcFwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJab2V5XCIsXG4gICAgXCJab8OpXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJlbFwiLFxuICAgIFwiQWJpY2h0XCIsXG4gICAgXCJBYnJhaGFtXCIsXG4gICAgXCJBYnJhbW92aWNcIixcbiAgICBcIkFidFwiLFxuICAgIFwiQWNoaWxsZXNcIixcbiAgICBcIkFjaGtpbmFkemVcIixcbiAgICBcIkFja2VybWFublwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiQWRhbXNcIixcbiAgICBcIkFkZVwiLFxuICAgIFwiQWdvc3RpbmlcIixcbiAgICBcIkFobGtlXCIsXG4gICAgXCJBaHJlbmJlcmdcIixcbiAgICBcIkFocmVuc1wiLFxuICAgIFwiQWlnbmVyXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsYnJlY2h0XCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGl6YWRlaFwiLFxuICAgIFwiQWxsZ2V5ZXJcIixcbiAgICBcIkFtYW5uXCIsXG4gICAgXCJBbWJlcmdcIixcbiAgICBcIkFuZGluZ1wiLFxuICAgIFwiQW5nZ3JlbnlcIixcbiAgICBcIkFwaXR6XCIsXG4gICAgXCJBcmVuZHRcIixcbiAgICBcIkFyZW5zXCIsXG4gICAgXCJBcm5kdFwiLFxuICAgIFwiQXJ5ZWVcIixcbiAgICBcIkFzY2hlbmJyb2ljaFwiLFxuICAgIFwiQXNzbXVzXCIsXG4gICAgXCJBc3RhZmVpXCIsXG4gICAgXCJBdWVyXCIsXG4gICAgXCJBeG1hbm5cIixcbiAgICBcIkJhYXJja1wiLFxuICAgIFwiQmFjaG1hbm5cIixcbiAgICBcIkJhZGFuZVwiLFxuICAgIFwiQmFkZXJcIixcbiAgICBcIkJhZ2FuelwiLFxuICAgIFwiQmFobFwiLFxuICAgIFwiQmFrXCIsXG4gICAgXCJCYWxjZXJcIixcbiAgICBcIkJhbGNrXCIsXG4gICAgXCJCYWxrb3dcIixcbiAgICBcIkJhbG51d2VpdFwiLFxuICAgIFwiQmFsemVyXCIsXG4gICAgXCJCYW5zZVwiLFxuICAgIFwiQmFyclwiLFxuICAgIFwiQmFydGVsc1wiLFxuICAgIFwiQmFydGhcIixcbiAgICBcIkJhcnlsbGFcIixcbiAgICBcIkJhc2VkYVwiLFxuICAgIFwiQmF0dGtlXCIsXG4gICAgXCJCYXVlclwiLFxuICAgIFwiQmF1ZXJtZWlzdGVyXCIsXG4gICAgXCJCYXVtYW5uXCIsXG4gICAgXCJCYXVtZWlzdGVyXCIsXG4gICAgXCJCYXVzY2hpbmdlclwiLFxuICAgIFwiQmF1c2Noa2VcIixcbiAgICBcIkJheWVyXCIsXG4gICAgXCJCZWF2b2d1aVwiLFxuICAgIFwiQmVja1wiLFxuICAgIFwiQmVja2VsXCIsXG4gICAgXCJCZWNrZXJcIixcbiAgICBcIkJlY2ttYW5uXCIsXG4gICAgXCJCZWRld2l0elwiLFxuICAgIFwiQmVlbGVcIixcbiAgICBcIkJlZXJcIixcbiAgICBcIkJlZ2dlcm93XCIsXG4gICAgXCJCZWhcIixcbiAgICBcIkJlaHJcIixcbiAgICBcIkJlaHJlbmJydWNoXCIsXG4gICAgXCJCZWx6XCIsXG4gICAgXCJCZW5kZXJcIixcbiAgICBcIkJlbmVja2VcIixcbiAgICBcIkJlbm5lclwiLFxuICAgIFwiQmVubmluZ2VyXCIsXG4gICAgXCJCZW56aW5nXCIsXG4gICAgXCJCZXJlbmRzXCIsXG4gICAgXCJCZXJnZXJcIixcbiAgICBcIkJlcm5lclwiLFxuICAgIFwiQmVybmluZ1wiLFxuICAgIFwiQmVydGVuYnJlaXRlclwiLFxuICAgIFwiQmVzdFwiLFxuICAgIFwiQmV0aGtlXCIsXG4gICAgXCJCZXR6XCIsXG4gICAgXCJCZXVzaGF1c2VuXCIsXG4gICAgXCJCZXV0ZWxzcGFjaGVyXCIsXG4gICAgXCJCZXllclwiLFxuICAgIFwiQmliYVwiLFxuICAgIFwiQmljaGxlclwiLFxuICAgIFwiQmlja2VsXCIsXG4gICAgXCJCaWVkZXJtYW5uXCIsXG4gICAgXCJCaWVsZXJcIixcbiAgICBcIkJpZWxlcnRcIixcbiAgICBcIkJpZW5hc2NoXCIsXG4gICAgXCJCaWVuaWFzXCIsXG4gICAgXCJCaWVzZW5iYWNoXCIsXG4gICAgXCJCaWdkZWxpXCIsXG4gICAgXCJCaXJrZW1leWVyXCIsXG4gICAgXCJCaXR0bmVyXCIsXG4gICAgXCJCbGFua1wiLFxuICAgIFwiQmxhc2NoZWtcIixcbiAgICBcIkJsYXNzbmVja1wiLFxuICAgIFwiQmxvY2hcIixcbiAgICBcIkJsb2Nod2l0elwiLFxuICAgIFwiQmxvY2toYXVzXCIsXG4gICAgXCJCbHVtXCIsXG4gICAgXCJCbHVtZVwiLFxuICAgIFwiQm9ja1wiLFxuICAgIFwiQm9kZVwiLFxuICAgIFwiQm9nZGFzaGluXCIsXG4gICAgXCJCb2dlbnJpZWRlclwiLFxuICAgIFwiQm9oZ2VcIixcbiAgICBcIkJvbG1cIixcbiAgICBcIkJvcmdzY2h1bHplXCIsXG4gICAgXCJCb3JrXCIsXG4gICAgXCJCb3JtYW5uXCIsXG4gICAgXCJCb3Juc2NoZXVlclwiLFxuICAgIFwiQm9ycm1hbm5cIixcbiAgICBcIkJvcnNjaFwiLFxuICAgIFwiQm9ydXNjaGV3c2tpXCIsXG4gICAgXCJCb3NcIixcbiAgICBcIkJvc2xlclwiLFxuICAgIFwiQm91cnJvdWFnXCIsXG4gICAgXCJCb3VzY2hlblwiLFxuICAgIFwiQm94aGFtbWVyXCIsXG4gICAgXCJCb3lkZVwiLFxuICAgIFwiQm96c2lrXCIsXG4gICAgXCJCcmFuZFwiLFxuICAgIFwiQnJhbmRlbmJ1cmdcIixcbiAgICBcIkJyYW5kaXNcIixcbiAgICBcIkJyYW5kdFwiLFxuICAgIFwiQnJhdWVyXCIsXG4gICAgXCJCcmF1blwiLFxuICAgIFwiQnJlaG1lclwiLFxuICAgIFwiQnJlaXRlbnN0ZWluXCIsXG4gICAgXCJCcmVtZXJcIixcbiAgICBcIkJyZW1zZXJcIixcbiAgICBcIkJyZW5uZXJcIixcbiAgICBcIkJyZXR0c2NobmVpZGVyXCIsXG4gICAgXCJCcmV1XCIsXG4gICAgXCJCcmV1ZXJcIixcbiAgICBcIkJyaWVzZW5pY2tcIixcbiAgICBcIkJyaW5nbWFublwiLFxuICAgIFwiQnJpbmttYW5uXCIsXG4gICAgXCJCcml4XCIsXG4gICAgXCJCcm9lbmluZ1wiLFxuICAgIFwiQnJvc2NoXCIsXG4gICAgXCJCcnVja21hbm5cIixcbiAgICBcIkJydWRlclwiLFxuICAgIFwiQnJ1aG5zXCIsXG4gICAgXCJCcnVubmVyXCIsXG4gICAgXCJCcnVuc1wiLFxuICAgIFwiQnLDpHV0aWdhbVwiLFxuICAgIFwiQnLDtm1tZVwiLFxuICAgIFwiQnLDvGdnbWFublwiLFxuICAgIFwiQnVjaGhvbHpcIixcbiAgICBcIkJ1Y2hydWNrZXJcIixcbiAgICBcIkJ1ZGVyXCIsXG4gICAgXCJCdWx0bWFublwiLFxuICAgIFwiQnVuamVzXCIsXG4gICAgXCJCdXJnZXJcIixcbiAgICBcIkJ1cmdoYWdlblwiLFxuICAgIFwiQnVya2hhcmRcIixcbiAgICBcIkJ1cmtoYXJkdFwiLFxuICAgIFwiQnVybWVpc3RlclwiLFxuICAgIFwiQnVzY2hcIixcbiAgICBcIkJ1c2NoYmF1bVwiLFxuICAgIFwiQnVzZW1hbm5cIixcbiAgICBcIkJ1c3NcIixcbiAgICBcIkJ1c3NlXCIsXG4gICAgXCJCdXNzbWFublwiLFxuICAgIFwiQnlyZFwiLFxuICAgIFwiQsOkY2tlclwiLFxuICAgIFwiQsO2aG1cIixcbiAgICBcIkLDtm5pc2NoXCIsXG4gICAgXCJCw7ZyZ2VsaW5nXCIsXG4gICAgXCJCw7ZybmVyXCIsXG4gICAgXCJCw7Z0dG5lclwiLFxuICAgIFwiQsO8Y2hlbGVcIixcbiAgICBcIkLDvGhsZXJcIixcbiAgICBcIkLDvGtlclwiLFxuICAgIFwiQsO8bmdlbmVyXCIsXG4gICAgXCJCw7xyZ2VyXCIsXG4gICAgXCJCw7xya2xlaW5cIixcbiAgICBcIkLDvHNjaGVyXCIsXG4gICAgXCJCw7x0dG5lclwiLFxuICAgIFwiQ2FtYXJhXCIsXG4gICAgXCJDYXJsb3dpdHpcIixcbiAgICBcIkNhcmxzb2huXCIsXG4gICAgXCJDYXNwYXJpXCIsXG4gICAgXCJDYXNwZXJzXCIsXG4gICAgXCJDaGFwcm9uXCIsXG4gICAgXCJDaHJpc3RcIixcbiAgICBcIkNpZXJwaW5za2lcIixcbiAgICBcIkNsYXJpdXNcIixcbiAgICBcIkNsZWVtXCIsXG4gICAgXCJDbGV2ZVwiLFxuICAgIFwiQ29cIixcbiAgICBcIkNvbnJhZFwiLFxuICAgIFwiQ29yZGVzXCIsXG4gICAgXCJDb3JuZWxzZW5cIixcbiAgICBcIkNvcnNcIixcbiAgICBcIkNvdHRoYXJkdFwiLFxuICAgIFwiQ3Jld3NcIixcbiAgICBcIkNyb25qw6RnZXJcIixcbiAgICBcIkNyb3Nza29mcFwiLFxuICAgIFwiRGFcIixcbiAgICBcIkRhaG1cIixcbiAgICBcIkRhaG1lblwiLFxuICAgIFwiRGFpbWVyXCIsXG4gICAgXCJEYW1hc2tlXCIsXG4gICAgXCJEYW5uZWJlcmdcIixcbiAgICBcIkRhbm5lclwiLFxuICAgIFwiRGF1YlwiLFxuICAgIFwiRGF1Ym5lclwiLFxuICAgIFwiRGF1ZHJpY2hcIixcbiAgICBcIkRhdWVyXCIsXG4gICAgXCJEYXVtXCIsXG4gICAgXCJEYXV0aFwiLFxuICAgIFwiRGF1dHplbmJlcmdcIixcbiAgICBcIkRlXCIsXG4gICAgXCJEZWNrZXJcIixcbiAgICBcIkRlY2tlcnRcIixcbiAgICBcIkRlZXJiZXJnXCIsXG4gICAgXCJEZWhtZWxcIixcbiAgICBcIkRlamFcIixcbiAgICBcIkRlbG9uZ2VcIixcbiAgICBcIkRlbXV0XCIsXG4gICAgXCJEZW5nbGVyXCIsXG4gICAgXCJEZW5uZXJcIixcbiAgICBcIkRlbnppbmdlclwiLFxuICAgIFwiRGVyclwiLFxuICAgIFwiRGVydG1hbm5cIixcbiAgICBcIkRldGhsb2ZmXCIsXG4gICAgXCJEZXVzY2hsZVwiLFxuICAgIFwiRGllY2ttYW5uXCIsXG4gICAgXCJEaWVkcmljaFwiLFxuICAgIFwiRGlla21hbm5cIixcbiAgICBcIkRpZW5lbFwiLFxuICAgIFwiRGllc1wiLFxuICAgIFwiRGlldHJpY2hcIixcbiAgICBcIkRpZXR6XCIsXG4gICAgXCJEaWV0enNjaFwiLFxuICAgIFwiRGllemVsXCIsXG4gICAgXCJEaWxsYVwiLFxuICAgIFwiRGluZ2Vsc3RlZHRcIixcbiAgICBcIkRpcHBsXCIsXG4gICAgXCJEaXR0bWFublwiLFxuICAgIFwiRGl0dG1hclwiLFxuICAgIFwiRGl0dG1lclwiLFxuICAgIFwiRGl4XCIsXG4gICAgXCJEb2JicnVuelwiLFxuICAgIFwiRG9ibGVyXCIsXG4gICAgXCJEb2hyaW5nXCIsXG4gICAgXCJEb2xjaFwiLFxuICAgIFwiRG9sZFwiLFxuICAgIFwiRG9tYnJvd3NraVwiLFxuICAgIFwiRG9uaWVcIixcbiAgICBcIkRvc2tvY3p5bnNraVwiLFxuICAgIFwiRHJhZ3VcIixcbiAgICBcIkRyZWNoc2xlclwiLFxuICAgIFwiRHJlZXNcIixcbiAgICBcIkRyZWhlclwiLFxuICAgIFwiRHJlaWVyXCIsXG4gICAgXCJEcmVpc3NpZ2Fja2VyXCIsXG4gICAgXCJEcmVzc2xlclwiLFxuICAgIFwiRHJld3NcIixcbiAgICBcIkR1bWFcIixcbiAgICBcIkR1dGtpZXdpY3pcIixcbiAgICBcIkR5ZXR0XCIsXG4gICAgXCJEeWx1c1wiLFxuICAgIFwiRMOkY2hlcnRcIixcbiAgICBcIkTDtmJlbFwiLFxuICAgIFwiRMO2cmluZ1wiLFxuICAgIFwiRMO2cm5lclwiLFxuICAgIFwiRMO2cnJlXCIsXG4gICAgXCJEw7xja1wiLFxuICAgIFwiRWJlcmhhcmRcIixcbiAgICBcIkViZXJoYXJkdFwiLFxuICAgIFwiRWNrZXJcIixcbiAgICBcIkVja2hhcmR0XCIsXG4gICAgXCJFZG9yaFwiLFxuICAgIFwiRWZmbGVyXCIsXG4gICAgXCJFZ2dlbm11ZWxsZXJcIixcbiAgICBcIkVobVwiLFxuICAgIFwiRWhtYW5uXCIsXG4gICAgXCJFaHJpZ1wiLFxuICAgIFwiRWljaFwiLFxuICAgIFwiRWljaG1hbm5cIixcbiAgICBcIkVpZmVydFwiLFxuICAgIFwiRWluZXJ0XCIsXG4gICAgXCJFaXNlbmxhdWVyXCIsXG4gICAgXCJFa3BvXCIsXG4gICAgXCJFbGJlXCIsXG4gICAgXCJFbGV5dGhcIixcbiAgICBcIkVsc3NcIixcbiAgICBcIkVtZXJ0XCIsXG4gICAgXCJFbW1lbG1hbm5cIixcbiAgICBcIkVuZGVyXCIsXG4gICAgXCJFbmdlbFwiLFxuICAgIFwiRW5nZWxlblwiLFxuICAgIFwiRW5nZWxtYW5uXCIsXG4gICAgXCJFcGxpbml1c1wiLFxuICAgIFwiRXJkbWFublwiLFxuICAgIFwiRXJoYXJkdFwiLFxuICAgIFwiRXJsZWlcIixcbiAgICBcIkVybVwiLFxuICAgIFwiRXJuc3RcIixcbiAgICBcIkVydGxcIixcbiAgICBcIkVyd2VzXCIsXG4gICAgXCJFc2Vud2VpblwiLFxuICAgIFwiRXNzZXJcIixcbiAgICBcIkV2ZXJzXCIsXG4gICAgXCJFdmVydHNcIixcbiAgICBcIkV3YWxkXCIsXG4gICAgXCJGYWhuZXJcIixcbiAgICBcIkZhbGxlclwiLFxuICAgIFwiRmFsdGVyXCIsXG4gICAgXCJGYXJiZXJcIixcbiAgICBcIkZhc3NiZW5kZXJcIixcbiAgICBcIkZhdWxoYWJlclwiLFxuICAgIFwiRmVocmlnXCIsXG4gICAgXCJGZWxkXCIsXG4gICAgXCJGZWxrZVwiLFxuICAgIFwiRmVsbGVyXCIsXG4gICAgXCJGZW5uZXJcIixcbiAgICBcIkZlbnNrZVwiLFxuICAgIFwiRmV1ZXJiYWNoXCIsXG4gICAgXCJGaWV0elwiLFxuICAgIFwiRmlnbFwiLFxuICAgIFwiRmlndXJhXCIsXG4gICAgXCJGaWxpcG93c2tpXCIsXG4gICAgXCJGaWxzaW5nZXJcIixcbiAgICBcIkZpbmNrZVwiLFxuICAgIFwiRmlua1wiLFxuICAgIFwiRmlua2VcIixcbiAgICBcIkZpc2NoZXJcIixcbiAgICBcIkZpdHNjaGVuXCIsXG4gICAgXCJGbGVpc2NoZXJcIixcbiAgICBcIkZsZWlzY2htYW5uXCIsXG4gICAgXCJGbG9kZXJcIixcbiAgICBcIkZsb3JjemFrXCIsXG4gICAgXCJGbG9yZVwiLFxuICAgIFwiRmxvdHRtYW5uXCIsXG4gICAgXCJGb3JrZWxcIixcbiAgICBcIkZvcnN0XCIsXG4gICAgXCJGcmFobWVrZVwiLFxuICAgIFwiRnJhbmtcIixcbiAgICBcIkZyYW5rZVwiLFxuICAgIFwiRnJhbnRhXCIsXG4gICAgXCJGcmFudHpcIixcbiAgICBcIkZyYW56XCIsXG4gICAgXCJGcmFuemlzXCIsXG4gICAgXCJGcmFuem1hbm5cIixcbiAgICBcIkZyYXVlblwiLFxuICAgIFwiRnJhdWVuZG9yZlwiLFxuICAgIFwiRnJlaWdhbmdcIixcbiAgICBcIkZyZWltYW5uXCIsXG4gICAgXCJGcmVpbXV0aFwiLFxuICAgIFwiRnJlaXNlblwiLFxuICAgIFwiRnJlbnplbFwiLFxuICAgIFwiRnJleVwiLFxuICAgIFwiRnJpY2tlXCIsXG4gICAgXCJGcmllZFwiLFxuICAgIFwiRnJpZWRla1wiLFxuICAgIFwiRnJpZWRlbmJlcmdcIixcbiAgICBcIkZyaWVkbWFublwiLFxuICAgIFwiRnJpZWRyaWNoXCIsXG4gICAgXCJGcmllc3NcIixcbiAgICBcIkZyaXNjaFwiLFxuICAgIFwiRnJvaG5cIixcbiAgICBcIkZyb3NjaFwiLFxuICAgIFwiRnVjaHNcIixcbiAgICBcIkZ1aGxicsO8Z2dlXCIsXG4gICAgXCJGdXNlbmlnXCIsXG4gICAgXCJGdXN0XCIsXG4gICAgXCJGw7Zyc3RlclwiLFxuICAgIFwiR2FiYVwiLFxuICAgIFwiR2FiaXVzXCIsXG4gICAgXCJHYWJsZXJcIixcbiAgICBcIkdhZHNjaGlld1wiLFxuICAgIFwiR2Frc3TDpGR0ZXJcIixcbiAgICBcIkdhbGFuZGVyXCIsXG4gICAgXCJHYW1saW5cIixcbiAgICBcIkdhbXBlclwiLFxuICAgIFwiR2FuZ251c1wiLFxuICAgIFwiR2Fuem1hbm5cIixcbiAgICBcIkdhcmF0dmFcIixcbiAgICBcIkdhc3RcIixcbiAgICBcIkdhc3RlbFwiLFxuICAgIFwiR2F0emthXCIsXG4gICAgXCJHYXVkZXJcIixcbiAgICBcIkdlYmhhcmR0XCIsXG4gICAgXCJHZWVzZVwiLFxuICAgIFwiR2VocmVcIixcbiAgICBcIkdlaHJpZ1wiLFxuICAgIFwiR2VocmluZ1wiLFxuICAgIFwiR2VocmtlXCIsXG4gICAgXCJHZWlnZXJcIixcbiAgICBcIkdlaXNsZXJcIixcbiAgICBcIkdlaXNzbGVyXCIsXG4gICAgXCJHZWxsaW5nXCIsXG4gICAgXCJHZW5zXCIsXG4gICAgXCJHZXJiZW5ub3dcIixcbiAgICBcIkdlcmRlbFwiLFxuICAgIFwiR2VyaGFyZHRcIixcbiAgICBcIkdlcnNjaGxlclwiLFxuICAgIFwiR2Vyc29uXCIsXG4gICAgXCJHZXNlbGxcIixcbiAgICBcIkdleWVyXCIsXG4gICAgXCJHaGlybWFpXCIsXG4gICAgXCJHaG9zaFwiLFxuICAgIFwiR2llaGxcIixcbiAgICBcIkdpZXJpc2NoXCIsXG4gICAgXCJHaWVzYVwiLFxuICAgIFwiR2llc2NoZVwiLFxuICAgIFwiR2lsZGVcIixcbiAgICBcIkdsYXR0aW5nXCIsXG4gICAgXCJHb2ViZWxcIixcbiAgICBcIkdvZWRpY2tlXCIsXG4gICAgXCJHb2xkYmVja1wiLFxuICAgIFwiR29sZGZ1c3NcIixcbiAgICBcIkdvbGRrYW1wXCIsXG4gICAgXCJHb2xka8O8aGxlXCIsXG4gICAgXCJHb2xsZXJcIixcbiAgICBcIkdvbGxpbmdcIixcbiAgICBcIkdvbGxub3dcIixcbiAgICBcIkdvbG9tc2tpXCIsXG4gICAgXCJHb21iZXJ0XCIsXG4gICAgXCJHb3R0aGFyZHRcIixcbiAgICBcIkdvdHRzY2hhbGtcIixcbiAgICBcIkdvdHpcIixcbiAgICBcIkdveVwiLFxuICAgIFwiR3JhZHpraVwiLFxuICAgIFwiR3JhZlwiLFxuICAgIFwiR3JhbXNcIixcbiAgICBcIkdyYXNzZVwiLFxuICAgIFwiR3JhdHpreVwiLFxuICAgIFwiR3JhdVwiLFxuICAgIFwiR3JlYlwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWdlclwiLFxuICAgIFwiR3JlaXRoYW5uZXJcIixcbiAgICBcIkdyZXNjaG5lclwiLFxuICAgIFwiR3JpZW1cIixcbiAgICBcIkdyaWVzZVwiLFxuICAgIFwiR3JpbW1cIixcbiAgICBcIkdyb21pc2NoXCIsXG4gICAgXCJHcm9zc1wiLFxuICAgIFwiR3Jvc3NlclwiLFxuICAgIFwiR3Jvc3NoZWltXCIsXG4gICAgXCJHcm9zc2tvcGZcIixcbiAgICBcIkdyb3RoYXVzXCIsXG4gICAgXCJHcm90aGtvcHBcIixcbiAgICBcIkdyb3RrZVwiLFxuICAgIFwiR3J1YmVcIixcbiAgICBcIkdydWJlclwiLFxuICAgIFwiR3J1bmRtYW5uXCIsXG4gICAgXCJHcnVuaW5nXCIsXG4gICAgXCJHcnVzemVja2lcIixcbiAgICBcIkdyw7Zzc1wiLFxuICAgIFwiR3LDtnR6aW5nZXJcIixcbiAgICBcIkdyw7xuXCIsXG4gICAgXCJHcsO8bmVyXCIsXG4gICAgXCJHdW1tZWx0XCIsXG4gICAgXCJHdW5rZWxcIixcbiAgICBcIkd1bnRoZXJcIixcbiAgICBcIkd1dGphaHJcIixcbiAgICBcIkd1dG93aWN6XCIsXG4gICAgXCJHdXRzY2hhbmtcIixcbiAgICBcIkfDtmJlbFwiLFxuICAgIFwiR8O2Y2tlcml0elwiLFxuICAgIFwiR8O2aGxlclwiLFxuICAgIFwiR8O2cmxpY2hcIixcbiAgICBcIkfDtnJtZXJcIixcbiAgICBcIkfDtnR6XCIsXG4gICAgXCJHw7Z0emVsbWFublwiLFxuICAgIFwiR8O8bGRlbWVpc3RlclwiLFxuICAgIFwiR8O8bnRoZXJcIixcbiAgICBcIkfDvG56XCIsXG4gICAgXCJHw7xyYmlnXCIsXG4gICAgXCJIYWFja1wiLFxuICAgIFwiSGFhZlwiLFxuICAgIFwiSGFiZWxcIixcbiAgICBcIkhhY2hlXCIsXG4gICAgXCJIYWNrYnVzY2hcIixcbiAgICBcIkhhY2tlbGJ1c2NoXCIsXG4gICAgXCJIYWRmaWVsZFwiLFxuICAgIFwiSGFkd2ljaFwiLFxuICAgIFwiSGFmZXJrYW1wXCIsXG4gICAgXCJIYWhuXCIsXG4gICAgXCJIYWpla1wiLFxuICAgIFwiSGFsbG1hbm5cIixcbiAgICBcIkhhbWFublwiLFxuICAgIFwiSGFuZW5iZXJnZXJcIixcbiAgICBcIkhhbm5lY2tlclwiLFxuICAgIFwiSGFubmlza2VcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyZHlcIixcbiAgICBcIkhhcmdhc3NlclwiLFxuICAgIFwiSGFybXNcIixcbiAgICBcIkhhcm5hcHBcIixcbiAgICBcIkhhcnRlclwiLFxuICAgIFwiSGFydGluZ1wiLFxuICAgIFwiSGFydGxpZWJcIixcbiAgICBcIkhhcnRtYW5uXCIsXG4gICAgXCJIYXJ0d2lnXCIsXG4gICAgXCJIYXJ0elwiLFxuICAgIFwiSGFzY2hrZVwiLFxuICAgIFwiSGFzbGVyXCIsXG4gICAgXCJIYXNzZVwiLFxuICAgIFwiSGFzc2ZlbGRcIixcbiAgICBcIkhhdWdcIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIYXVwdFwiLFxuICAgIFwiSGF2ZXJuZXlcIixcbiAgICBcIkhlYmVyc3RyZWl0XCIsXG4gICAgXCJIZWNobGVyXCIsXG4gICAgXCJIZWNodFwiLFxuICAgIFwiSGVja1wiLFxuICAgIFwiSGVkZXJtYW5uXCIsXG4gICAgXCJIZWhsXCIsXG4gICAgXCJIZWlkZWxtYW5uXCIsXG4gICAgXCJIZWlkbGVyXCIsXG4gICAgXCJIZWluZW1hbm5cIixcbiAgICBcIkhlaW5pZ1wiLFxuICAgIFwiSGVpbmtlXCIsXG4gICAgXCJIZWlucmljaFwiLFxuICAgIFwiSGVpbnplXCIsXG4gICAgXCJIZWlzZXJcIixcbiAgICBcIkhlaXN0XCIsXG4gICAgXCJIZWxsbWFublwiLFxuICAgIFwiSGVsbVwiLFxuICAgIFwiSGVsbWtlXCIsXG4gICAgXCJIZWxwbGluZ1wiLFxuICAgIFwiSGVuZ21pdGhcIixcbiAgICBcIkhlbmtlbFwiLFxuICAgIFwiSGVubmVzXCIsXG4gICAgXCJIZW5yeVwiLFxuICAgIFwiSGVuc2VcIixcbiAgICBcIkhlbnNlbFwiLFxuICAgIFwiSGVudGVsXCIsXG4gICAgXCJIZW50c2NoZWxcIixcbiAgICBcIkhlbnRzY2hrZVwiLFxuICAgIFwiSGVwcGVybGVcIixcbiAgICBcIkhlcmJlcmdlclwiLFxuICAgIFwiSGVyYnJhbmRcIixcbiAgICBcIkhlcmluZ1wiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWVja2VcIixcbiAgICBcIkhlcm1zXCIsXG4gICAgXCJIZXJvbGRcIixcbiAgICBcIkhlcnJtYW5uXCIsXG4gICAgXCJIZXJzY2htYW5uXCIsXG4gICAgXCJIZXJ0ZWxcIixcbiAgICBcIkhlcndlZ1wiLFxuICAgIFwiSGVyd2lnXCIsXG4gICAgXCJIZXJ6ZW5iZXJnXCIsXG4gICAgXCJIZXNzXCIsXG4gICAgXCJIZXNzZVwiLFxuICAgIFwiSGVzc2VrXCIsXG4gICAgXCJIZXNzbGVyXCIsXG4gICAgXCJIZXR6bGVyXCIsXG4gICAgXCJIZXVja1wiLFxuICAgIFwiSGV5ZGVtw7xsbGVyXCIsXG4gICAgXCJIaWVibFwiLFxuICAgIFwiSGlsZGVicmFuZFwiLFxuICAgIFwiSGlsZGVuYnJhbmRcIixcbiAgICBcIkhpbGdlbmRvcmZcIixcbiAgICBcIkhpbGxhcmRcIixcbiAgICBcIkhpbGxlclwiLFxuICAgIFwiSGluZ3NlblwiLFxuICAgIFwiSGluZ3N0XCIsXG4gICAgXCJIaW5yaWNoc1wiLFxuICAgIFwiSGlyc2NoXCIsXG4gICAgXCJIaXJzY2hiZXJnXCIsXG4gICAgXCJIaXJ0XCIsXG4gICAgXCJIb2RlYVwiLFxuICAgIFwiSG9mZm1hblwiLFxuICAgIFwiSG9mZm1hbm5cIixcbiAgICBcIkhvZm1hbm5cIixcbiAgICBcIkhvaGVuYmVyZ2VyXCIsXG4gICAgXCJIb2hsXCIsXG4gICAgXCJIb2huXCIsXG4gICAgXCJIb2huaGVpc2VyXCIsXG4gICAgXCJIb2xkXCIsXG4gICAgXCJIb2xkdFwiLFxuICAgIFwiSG9saW5za2lcIixcbiAgICBcIkhvbGxcIixcbiAgICBcIkhvbHRmcmV0ZXJcIixcbiAgICBcIkhvbHpcIixcbiAgICBcIkhvbHpkZXBwZVwiLFxuICAgIFwiSG9sem5lclwiLFxuICAgIFwiSG9tbWVsXCIsXG4gICAgXCJIb256XCIsXG4gICAgXCJIb29zc1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvcmFrXCIsXG4gICAgXCJIb3JuXCIsXG4gICAgXCJIb3JuYVwiLFxuICAgIFwiSG9ybnVuZ1wiLFxuICAgIFwiSG9ydFwiLFxuICAgIFwiSG93YXJkXCIsXG4gICAgXCJIdWJlclwiLFxuICAgIFwiSHVja2VzdGVpblwiLFxuICAgIFwiSHVkYWtcIixcbiAgICBcIkh1ZWJlbFwiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiSHVoblwiLFxuICAgIFwiSHVqb1wiLFxuICAgIFwiSHVrZVwiLFxuICAgIFwiSHVsc1wiLFxuICAgIFwiSHVtYmVydFwiLFxuICAgIFwiSHVuZWtlXCIsXG4gICAgXCJIdXRoXCIsXG4gICAgXCJIw6RiZXJcIixcbiAgICBcIkjDpGZuZXJcIixcbiAgICBcIkjDtmNrZVwiLFxuICAgIFwiSMO2ZnRcIixcbiAgICBcIkjDtmhuZVwiLFxuICAgIFwiSMO2bmlnXCIsXG4gICAgXCJIw7ZyZHRcIixcbiAgICBcIkjDvGJlbmJlY2tlclwiLFxuICAgIFwiSMO8YmxcIixcbiAgICBcIkjDvGJuZXJcIixcbiAgICBcIkjDvGdlbFwiLFxuICAgIFwiSMO8dHRjaGVyXCIsXG4gICAgXCJIw7x0dGVyXCIsXG4gICAgXCJJYmVcIixcbiAgICBcIklobHlcIixcbiAgICBcIklsbGluZ1wiLFxuICAgIFwiSXNha1wiLFxuICAgIFwiSXNla2VubWVpZXJcIixcbiAgICBcIkl0dFwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkphY29ic1wiLFxuICAgIFwiSmFndXNjaFwiLFxuICAgIFwiSmFoblwiLFxuICAgIFwiSmFobmtlXCIsXG4gICAgXCJKYWtvYnNcIixcbiAgICBcIkpha3ViY3p5a1wiLFxuICAgIFwiSmFtYm9yXCIsXG4gICAgXCJKYW1yb3p5XCIsXG4gICAgXCJKYW5kZXJcIixcbiAgICBcIkphbmljaFwiLFxuICAgIFwiSmFua2VcIixcbiAgICBcIkphbnNlblwiLFxuICAgIFwiSmFyZXRzXCIsXG4gICAgXCJKYXJvc1wiLFxuICAgIFwiSmFzaW5za2lcIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSmVnb3JvdlwiLFxuICAgIFwiSmVsbGluZ2hhdXNcIixcbiAgICBcIkplb3JnYVwiLFxuICAgIFwiSmVyc2NoYWJla1wiLFxuICAgIFwiSmVzc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkpvc3NhXCIsXG4gICAgXCJKdWNrZW5cIixcbiAgICBcIkp1bmdcIixcbiAgICBcIkp1bmdibHV0aFwiLFxuICAgIFwiSnVuZ3RvblwiLFxuICAgIFwiSnVzdFwiLFxuICAgIFwiSsO8cmdlbnNcIixcbiAgICBcIkthY3ptYXJla1wiLFxuICAgIFwiS2Flc21hY2hlclwiLFxuICAgIFwiS2FobFwiLFxuICAgIFwiS2FobGVydFwiLFxuICAgIFwiS2FobGVzXCIsXG4gICAgXCJLYWhsbWV5ZXJcIixcbiAgICBcIkthaXNlclwiLFxuICAgIFwiS2FsaW5vd3NraVwiLFxuICAgIFwiS2FsbGFiaXNcIixcbiAgICBcIkthbGxlbnNlZVwiLFxuICAgIFwiS2FtcGZcIixcbiAgICBcIkthbXBzY2h1bHRlXCIsXG4gICAgXCJLYXBwZVwiLFxuICAgIFwiS2FwcGxlclwiLFxuICAgIFwiS2FyaG9mZlwiLFxuICAgIFwiS2FycmFzc1wiLFxuICAgIFwiS2Fyc3RcIixcbiAgICBcIkthcnN0ZW5cIixcbiAgICBcIkthcnVzXCIsXG4gICAgXCJLYXNzXCIsXG4gICAgXCJLYXN0ZW5cIixcbiAgICBcIkthc3RuZXJcIixcbiAgICBcIkthdHppbnNraVwiLFxuICAgIFwiS2F1Zm1hbm5cIixcbiAgICBcIkthdWxcIixcbiAgICBcIkthdXNlbWFublwiLFxuICAgIFwiS2F3b2hsXCIsXG4gICAgXCJLYXptYXJla1wiLFxuICAgIFwiS2VkemllcnNraVwiLFxuICAgIFwiS2VpbFwiLFxuICAgIFwiS2VpbmVyXCIsXG4gICAgXCJLZWxsZXJcIixcbiAgICBcIktlbG1cIixcbiAgICBcIktlbXBlXCIsXG4gICAgXCJLZW1wZXJcIixcbiAgICBcIktlbXB0ZXJcIixcbiAgICBcIktlcmxcIixcbiAgICBcIktlcm5cIixcbiAgICBcIktlc3NlbHJpbmdcIixcbiAgICBcIktlc3NlbHNjaGzDpGdlclwiLFxuICAgIFwiS2V0dGVcIixcbiAgICBcIktldHRlbmlzXCIsXG4gICAgXCJLZXV0ZWxcIixcbiAgICBcIktpY2tcIixcbiAgICBcIktpZXNzbGluZ1wiLFxuICAgIFwiS2luYWRldGVyXCIsXG4gICAgXCJLaW56ZWxcIixcbiAgICBcIktpbnp5XCIsXG4gICAgXCJLaXJjaFwiLFxuICAgIFwiS2lyc3RcIixcbiAgICBcIktpc2FiYWthXCIsXG4gICAgXCJLbGFhc1wiLFxuICAgIFwiS2xhYnVoblwiLFxuICAgIFwiS2xhcHBlclwiLFxuICAgIFwiS2xhdWRlclwiLFxuICAgIFwiS2xhdXNcIixcbiAgICBcIktsZWViZXJnXCIsXG4gICAgXCJLbGVpYmVyXCIsXG4gICAgXCJLbGVpblwiLFxuICAgIFwiS2xlaW5lcnRcIixcbiAgICBcIktsZWluaW5nZXJcIixcbiAgICBcIktsZWlubWFublwiLFxuICAgIFwiS2xlaW5zdGV1YmVyXCIsXG4gICAgXCJLbGVpc3NcIixcbiAgICBcIktsZW1tZVwiLFxuICAgIFwiS2xpbWN6YWtcIixcbiAgICBcIktsaW5nZXJcIixcbiAgICBcIktsaW5rXCIsXG4gICAgXCJLbG9wc2NoXCIsXG4gICAgXCJLbG9zZVwiLFxuICAgIFwiS2xvc3NcIixcbiAgICBcIktsdWdlXCIsXG4gICAgXCJLbHV3ZVwiLFxuICAgIFwiS25hYmVcIixcbiAgICBcIktuZWlmZWxcIixcbiAgICBcIktuZXRzY2hcIixcbiAgICBcIktuaWVzXCIsXG4gICAgXCJLbmlwcGVsXCIsXG4gICAgXCJLbm9iZWxcIixcbiAgICBcIktub2JsaWNoXCIsXG4gICAgXCJLbm9sbFwiLFxuICAgIFwiS25vcnJcIixcbiAgICBcIktub3JzY2hlaWR0XCIsXG4gICAgXCJLbnV0XCIsXG4gICAgXCJLb2JzXCIsXG4gICAgXCJLb2NoXCIsXG4gICAgXCJLb2NoYW5cIixcbiAgICBcIktvY2tcIixcbiAgICBcIktvY3p1bGxhXCIsXG4gICAgXCJLb2RlcmlzY2hcIixcbiAgICBcIktvZWhsXCIsXG4gICAgXCJLb2VobGVyXCIsXG4gICAgXCJLb2VuaWdcIixcbiAgICBcIktvZXN0ZXJcIixcbiAgICBcIktvZmZlcnNjaGxhZ2VyXCIsXG4gICAgXCJLb2hhXCIsXG4gICAgXCJLb2hsZVwiLFxuICAgIFwiS29obG1hbm5cIixcbiAgICBcIktvaG5sZVwiLFxuICAgIFwiS29ocnRcIixcbiAgICBcIktvalwiLFxuICAgIFwiS29sYlwiLFxuICAgIFwiS29sZWlza2lcIixcbiAgICBcIktvbG9rYXNcIixcbiAgICBcIktvbW9sbFwiLFxuICAgIFwiS29uaWVjem55XCIsXG4gICAgXCJLb25pZ1wiLFxuICAgIFwiS29ub3dcIixcbiAgICBcIktvbnlhXCIsXG4gICAgXCJLb29iXCIsXG4gICAgXCJLb3BmXCIsXG4gICAgXCJLb3Nlbmtvd1wiLFxuICAgIFwiS29zdGVyXCIsXG4gICAgXCJLb3N6ZXdza2lcIixcbiAgICBcIktvdWJhYVwiLFxuICAgIFwiS292YWNzXCIsXG4gICAgXCJLb3dhbGlja1wiLFxuICAgIFwiS293YWxpbnNraVwiLFxuICAgIFwiS296YWtpZXdpY3pcIixcbiAgICBcIktyYWJiZVwiLFxuICAgIFwiS3JhZnRcIixcbiAgICBcIktyYWxcIixcbiAgICBcIktyYW1lclwiLFxuICAgIFwiS3JhdWVsXCIsXG4gICAgXCJLcmF1c1wiLFxuICAgIFwiS3JhdXNlXCIsXG4gICAgXCJLcmF1c3BlXCIsXG4gICAgXCJLcmViXCIsXG4gICAgXCJLcmVic1wiLFxuICAgIFwiS3JlaXNzaWdcIixcbiAgICBcIktyZXNzZVwiLFxuICAgIFwiS3JldXR6XCIsXG4gICAgXCJLcmllZ2VyXCIsXG4gICAgXCJLcmlwcG5lclwiLFxuICAgIFwiS3JvZGluZ2VyXCIsXG4gICAgXCJLcm9oblwiLFxuICAgIFwiS3JvbFwiLFxuICAgIFwiS3JvblwiLFxuICAgIFwiS3J1ZWdlclwiLFxuICAgIFwiS3J1Z1wiLFxuICAgIFwiS3J1Z2VyXCIsXG4gICAgXCJLcnVsbFwiLFxuICAgIFwiS3J1c2NoaW5za2lcIixcbiAgICBcIktyw6RtZXJcIixcbiAgICBcIktyw7Zja2VydFwiLFxuICAgIFwiS3LDtmdlclwiLFxuICAgIFwiS3LDvGdlclwiLFxuICAgIFwiS3ViZXJhXCIsXG4gICAgXCJLdWZhaGxcIixcbiAgICBcIkt1aGxlZVwiLFxuICAgIFwiS3VobmVuXCIsXG4gICAgXCJLdWxpbWFublwiLFxuICAgIFwiS3VsbWFcIixcbiAgICBcIkt1bWJlcm51c3NcIixcbiAgICBcIkt1bW1sZVwiLFxuICAgIFwiS3VuelwiLFxuICAgIFwiS3VwZmVyXCIsXG4gICAgXCJLdXBwcmlvblwiLFxuICAgIFwiS3VwcmlvblwiLFxuICAgIFwiS3Vybmlja2lcIixcbiAgICBcIkt1cnJhdFwiLFxuICAgIFwiS3Vyc2NoaWxnZW5cIixcbiAgICBcIkt1c2NoZXdpdHpcIixcbiAgICBcIkt1c2NobWFublwiLFxuICAgIFwiS3Vza2VcIixcbiAgICBcIkt1c3Rlcm1hbm5cIixcbiAgICBcIkt1dHNjaGVyYXVlclwiLFxuICAgIFwiS3V0em5lclwiLFxuICAgIFwiS3dhZHdvXCIsXG4gICAgXCJLw6RobGVyXCIsXG4gICAgXCJLw6R0aGVyXCIsXG4gICAgXCJLw7ZobGVyXCIsXG4gICAgXCJLw7ZocmJyw7xja1wiLFxuICAgIFwiS8O2aHJlXCIsXG4gICAgXCJLw7Zsb3R6ZWlcIixcbiAgICBcIkvDtm5pZ1wiLFxuICAgIFwiS8O2cGVybmlja1wiLFxuICAgIFwiS8O2c2VvZ2x1XCIsXG4gICAgXCJLw7poblwiLFxuICAgIFwiS8O6aG5lcnRcIixcbiAgICBcIkvDvGhuXCIsXG4gICAgXCJLw7xobmVsXCIsXG4gICAgXCJLw7xobmVtdW5kXCIsXG4gICAgXCJLw7xobmVydFwiLFxuICAgIFwiS8O8aG5rZVwiLFxuICAgIFwiS8O8c3RlcnNcIixcbiAgICBcIkvDvHRlclwiLFxuICAgIFwiTGFhY2tcIixcbiAgICBcIkxhY2tcIixcbiAgICBcIkxhZGV3aWdcIixcbiAgICBcIkxha29teVwiLFxuICAgIFwiTGFtbWVydFwiLFxuICAgIFwiTGFtb3NcIixcbiAgICBcIkxhbmRtYW5uXCIsXG4gICAgXCJMYW5nXCIsXG4gICAgXCJMYW5nZVwiLFxuICAgIFwiTGFuZ2ZlbGRcIixcbiAgICBcIkxhbmdoaXJ0XCIsXG4gICAgXCJMYW5pZ1wiLFxuICAgIFwiTGF1Y2tuZXJcIixcbiAgICBcIkxhdWluZ2VyXCIsXG4gICAgXCJMYXVyw6luXCIsXG4gICAgXCJMYXVzZWNrZXJcIixcbiAgICBcIkxhdXhcIixcbiAgICBcIkxhd3NcIixcbiAgICBcIkxheFwiLFxuICAgIFwiTGViZXJlclwiLFxuICAgIFwiTGVobWFublwiLFxuICAgIFwiTGVobmVyXCIsXG4gICAgXCJMZWlib2xkXCIsXG4gICAgXCJMZWlkZVwiLFxuICAgIFwiTGVpbWJhY2hcIixcbiAgICBcIkxlaXBvbGRcIixcbiAgICBcIkxlaXN0XCIsXG4gICAgXCJMZWl0ZXJcIixcbiAgICBcIkxlaXRlcml0elwiLFxuICAgIFwiTGVpdGhlaW1cIixcbiAgICBcIkxlaXdlc21laWVyXCIsXG4gICAgXCJMZW5mZXJzXCIsXG4gICAgXCJMZW5rXCIsXG4gICAgXCJMZW56XCIsXG4gICAgXCJMZW56ZW5cIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVwdGhpblwiLFxuICAgIFwiTGVzY2hcIixcbiAgICBcIkxlc2NobmlrXCIsXG4gICAgXCJMZXR6ZWx0ZXJcIixcbiAgICBcIkxld2luXCIsXG4gICAgXCJMZXdrZVwiLFxuICAgIFwiTGV5Y2tlc1wiLFxuICAgIFwiTGdcIixcbiAgICBcIkxpY2h0ZW5mZWxkXCIsXG4gICAgXCJMaWNodGVuaGFnZW5cIixcbiAgICBcIkxpY2h0bFwiLFxuICAgIFwiTGllYmFjaFwiLFxuICAgIFwiTGllYmVcIixcbiAgICBcIkxpZWJpY2hcIixcbiAgICBcIkxpZWJvbGRcIixcbiAgICBcIkxpZWRlclwiLFxuICAgIFwiTGllbnNow7ZmdFwiLFxuICAgIFwiTGluZGVuXCIsXG4gICAgXCJMaW5kZW5iZXJnXCIsXG4gICAgXCJMaW5kZW5tYXllclwiLFxuICAgIFwiTGluZG5lclwiLFxuICAgIFwiTGlua2VcIixcbiAgICBcIkxpbm5lbmJhdW1cIixcbiAgICBcIkxpcHBlXCIsXG4gICAgXCJMaXBza2VcIixcbiAgICBcIkxpcHVzXCIsXG4gICAgXCJMaXNjaGthXCIsXG4gICAgXCJMb2JpbmdlclwiLFxuICAgIFwiTG9nc2NoXCIsXG4gICAgXCJMb2htYW5uXCIsXG4gICAgXCJMb2hyZVwiLFxuICAgIFwiTG9oc2VcIixcbiAgICBcIkxva2FyXCIsXG4gICAgXCJMb29nZW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9zY2hcIixcbiAgICBcIkxvc2thXCIsXG4gICAgXCJMb3R0XCIsXG4gICAgXCJMb3lcIixcbiAgICBcIkx1YmluYVwiLFxuICAgIFwiTHVkb2xmXCIsXG4gICAgXCJMdWZmdFwiLFxuICAgIFwiTHVrb3NjaGVrXCIsXG4gICAgXCJMdXRqZVwiLFxuICAgIFwiTHV0elwiLFxuICAgIFwiTMO2c2VyXCIsXG4gICAgXCJMw7Z3YVwiLFxuICAgIFwiTMO8YmtlXCIsXG4gICAgXCJNYWFrXCIsXG4gICAgXCJNYWN6ZXlcIixcbiAgICBcIk1hZGV0emt5XCIsXG4gICAgXCJNYWR1YnVrb1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJNYWllclwiLFxuICAgIFwiTWFpc2NoXCIsXG4gICAgXCJNYWxla1wiLFxuICAgIFwiTWFsa3VzXCIsXG4gICAgXCJNYWxsbWFublwiLFxuICAgIFwiTWFsdWNoYVwiLFxuICAgIFwiTWFubnNcIixcbiAgICBcIk1hbnpcIixcbiAgICBcIk1hcmFocmVuc1wiLFxuICAgIFwiTWFyY2hld3NraVwiLFxuICAgIFwiTWFyZ2lzXCIsXG4gICAgXCJNYXJrb3dza2lcIixcbiAgICBcIk1hcmxcIixcbiAgICBcIk1hcm5lclwiLFxuICAgIFwiTWFycXVhcnRcIixcbiAgICBcIk1hcnNjaGVrXCIsXG4gICAgXCJNYXJ0ZWxcIixcbiAgICBcIk1hcnRlblwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ4XCIsXG4gICAgXCJNYXJ4ZW5cIixcbiAgICBcIk1hdGhlc1wiLFxuICAgIFwiTWF0aGllc1wiLFxuICAgIFwiTWF0aGlzemlrXCIsXG4gICAgXCJNYXRzY2hrZVwiLFxuICAgIFwiTWF0dGVyblwiLFxuICAgIFwiTWF0dGhlc1wiLFxuICAgIFwiTWF0dWxhXCIsXG4gICAgXCJNYXVcIixcbiAgICBcIk1hdXJlclwiLFxuICAgIFwiTWF1cm9mZlwiLFxuICAgIFwiTWF5XCIsXG4gICAgXCJNYXliYWNoXCIsXG4gICAgXCJNYXllclwiLFxuICAgIFwiTWVib2xkXCIsXG4gICAgXCJNZWhsXCIsXG4gICAgXCJNZWhsaG9yblwiLFxuICAgIFwiTWVobG9yblwiLFxuICAgIFwiTWVpZXJcIixcbiAgICBcIk1laXNjaFwiLFxuICAgIFwiTWVpc3NuZXJcIixcbiAgICBcIk1lbG9uaVwiLFxuICAgIFwiTWVsemVyXCIsXG4gICAgXCJNZW5nYVwiLFxuICAgIFwiTWVubmVcIixcbiAgICBcIk1lbnNhaFwiLFxuICAgIFwiTWVuc2luZ1wiLFxuICAgIFwiTWVya2VsXCIsXG4gICAgXCJNZXJzZWJ1cmdcIixcbiAgICBcIk1lcnRlbnNcIixcbiAgICBcIk1lc2xvaFwiLFxuICAgIFwiTWV0emdlclwiLFxuICAgIFwiTWV0em5lclwiLFxuICAgIFwiTWV3ZXNcIixcbiAgICBcIk1leWVyXCIsXG4gICAgXCJNaWNoYWxsZWtcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWllbGtlXCIsXG4gICAgXCJNaWtpdGVua29cIixcbiAgICBcIk1pbGRlXCIsXG4gICAgXCJNaW5haFwiLFxuICAgIFwiTWludHpsYWZmXCIsXG4gICAgXCJNb2NrZW5oYXVwdFwiLFxuICAgIFwiTW9lZGVcIixcbiAgICBcIk1vZWRsXCIsXG4gICAgXCJNb2VsbGVyXCIsXG4gICAgXCJNb2d1ZW5hcmFcIixcbiAgICBcIk1vaHJcIixcbiAgICBcIk1vaHJoYXJkXCIsXG4gICAgXCJNb2xpdG9yXCIsXG4gICAgXCJNb2xsXCIsXG4gICAgXCJNb2xsZXJcIixcbiAgICBcIk1vbHphblwiLFxuICAgIFwiTW9udGFnXCIsXG4gICAgXCJNb29ybWFublwiLFxuICAgIFwiTW9yZGhvcnN0XCIsXG4gICAgXCJNb3JnZW5zdGVyblwiLFxuICAgIFwiTW9yaGVsZmVyXCIsXG4gICAgXCJNb3JpdHpcIixcbiAgICBcIk1vc2VyXCIsXG4gICAgXCJNb3RjaGVib25cIixcbiAgICBcIk1vdHplbmJiw6Rja2VyXCIsXG4gICAgXCJNcnVnYWxsYVwiLFxuICAgIFwiTXVja2VudGhhbGVyXCIsXG4gICAgXCJNdWVzXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk11bHJhaW5cIixcbiAgICBcIk3DpGNodGlnXCIsXG4gICAgXCJNw6RkZXJcIixcbiAgICBcIk3DtmNrc1wiLFxuICAgIFwiTcO2Z2VuYnVyZ1wiLFxuICAgIFwiTcO2aHNuZXJcIixcbiAgICBcIk3DtmxkbmVyXCIsXG4gICAgXCJNw7ZsbGVuYmVja1wiLFxuICAgIFwiTcO2bGxlclwiLFxuICAgIFwiTcO2bGxpbmdlclwiLFxuICAgIFwiTcO2cnNjaFwiLFxuICAgIFwiTcO8aGxlaXNcIixcbiAgICBcIk3DvGxsZXJcIixcbiAgICBcIk3DvG5jaFwiLFxuICAgIFwiTmFiZWluXCIsXG4gICAgXCJOYWJvd1wiLFxuICAgIFwiTmFnZWxcIixcbiAgICBcIk5hbm5lblwiLFxuICAgIFwiTmFzdHZvZ2VsXCIsXG4gICAgXCJOYXVcIixcbiAgICBcIk5hdWJlcnRcIixcbiAgICBcIk5hdW1hbm5cIixcbiAgICBcIk5lXCIsXG4gICAgXCJOZWlta2VcIixcbiAgICBcIk5lcml1c1wiLFxuICAgIFwiTmV1YmF1ZXJcIixcbiAgICBcIk5ldWJlcnRcIixcbiAgICBcIk5ldWVuZG9yZlwiLFxuICAgIFwiTmV1bWFpclwiLFxuICAgIFwiTmV1bWFublwiLFxuICAgIFwiTmV1cGVydFwiLFxuICAgIFwiTmV1cm9oclwiLFxuICAgIFwiTmV1c2Nod2FuZGVyXCIsXG4gICAgXCJOZXd0b25cIixcbiAgICBcIk5leVwiLFxuICAgIFwiTmljb2xheVwiLFxuICAgIFwiTmllZGVybWVpZXJcIixcbiAgICBcIk5pZWtsYXVzb25cIixcbiAgICBcIk5pa2xhdXNcIixcbiAgICBcIk5pdHpzY2hlXCIsXG4gICAgXCJOb2Fja1wiLFxuICAgIFwiTm9kbGVyXCIsXG4gICAgXCJOb2x0ZVwiLFxuICAgIFwiTm9ybWFublwiLFxuICAgIFwiTm9ycmlzXCIsXG4gICAgXCJOb3J0aG9mZlwiLFxuICAgIFwiTm93YWtcIixcbiAgICBcIk51c3NiZWNrXCIsXG4gICAgXCJOd2FjaHVrd3VcIixcbiAgICBcIk55dHJhXCIsXG4gICAgXCJOw7ZoXCIsXG4gICAgXCJPYmVyZW1cIixcbiAgICBcIk9iZXJnZsO2bGxcIixcbiAgICBcIk9iZXJtYWllclwiLFxuICAgIFwiT2Noc1wiLFxuICAgIFwiT2VzZXJcIixcbiAgICBcIk9sYnJpY2hcIixcbiAgICBcIk9ubmVuXCIsXG4gICAgXCJPcGhleVwiLFxuICAgIFwiT3Bwb25nXCIsXG4gICAgXCJPcnRoXCIsXG4gICAgXCJPcnRobWFublwiLFxuICAgIFwiT3NjaGtlbmF0XCIsXG4gICAgXCJPc2VpXCIsXG4gICAgXCJPc2VuYmVyZ1wiLFxuICAgIFwiT3N0ZW5kYXJwXCIsXG4gICAgXCJPc3R3YWxkXCIsXG4gICAgXCJPdHRlXCIsXG4gICAgXCJPdHRvXCIsXG4gICAgXCJQYWVzbGVyXCIsXG4gICAgXCJQYWpvbmtcIixcbiAgICBcIlBhbGxlbnRpblwiLFxuICAgIFwiUGFuemlnXCIsXG4gICAgXCJQYXNjaGtlXCIsXG4gICAgXCJQYXR6d2FobFwiLFxuICAgIFwiUGF1a25lclwiLFxuICAgIFwiUGVzZWxtYW5cIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQZXRlcnNcIixcbiAgICBcIlBldHpvbGRcIixcbiAgICBcIlBmZWlmZmVyXCIsXG4gICAgXCJQZmVubmlnXCIsXG4gICAgXCJQZmVyc2ljaFwiLFxuICAgIFwiUGZpbmdzdGVuXCIsXG4gICAgXCJQZmxpZWdlclwiLFxuICAgIFwiUGZsw7xnbmVyXCIsXG4gICAgXCJQaGlsaXBwXCIsXG4gICAgXCJQaWNobG1haWVyXCIsXG4gICAgXCJQaWVza2VyXCIsXG4gICAgXCJQaWV0c2NoXCIsXG4gICAgXCJQaW5ncGFua1wiLFxuICAgIFwiUGlubm9ja1wiLFxuICAgIFwiUGlwcGlnXCIsXG4gICAgXCJQaXRzY2h1Z2luXCIsXG4gICAgXCJQbGFua1wiLFxuICAgIFwiUGxhc3NcIixcbiAgICBcIlBsYXR6ZXJcIixcbiAgICBcIlBsYXVrXCIsXG4gICAgXCJQbGF1dHpcIixcbiAgICBcIlBsZXRzY2hcIixcbiAgICBcIlBsb3R6aXR6a2FcIixcbiAgICBcIlBvZWhuXCIsXG4gICAgXCJQb2VzY2hsXCIsXG4gICAgXCJQb2dvcnplbHNraVwiLFxuICAgIFwiUG9obFwiLFxuICAgIFwiUG9obGFuZFwiLFxuICAgIFwiUG9obGVcIixcbiAgICBcIlBvbGlma2FcIixcbiAgICBcIlBvbGl6emlcIixcbiAgICBcIlBvbGxtw6RjaGVyXCIsXG4gICAgXCJQb21wXCIsXG4gICAgXCJQb25pdHpzY2hcIixcbiAgICBcIlBvcnNjaGVcIixcbiAgICBcIlBvcnRoXCIsXG4gICAgXCJQb3NjaG1hbm5cIixcbiAgICBcIlBvc2VyXCIsXG4gICAgXCJQb3R0ZWxcIixcbiAgICBcIlByYWhcIixcbiAgICBcIlByYW5nZVwiLFxuICAgIFwiUHJlZGlnZXJcIixcbiAgICBcIlByZXNzbGVyXCIsXG4gICAgXCJQcmV1a1wiLFxuICAgIFwiUHJldXNzXCIsXG4gICAgXCJQcmV5XCIsXG4gICAgXCJQcmllbWVyXCIsXG4gICAgXCJQcm9za2VcIixcbiAgICBcIlB1c2NoXCIsXG4gICAgXCJQw7ZjaGVcIixcbiAgICBcIlDDtmdlXCIsXG4gICAgXCJSYWFiZVwiLFxuICAgIFwiUmFiZW5zdGVpblwiLFxuICAgIFwiUmFjaFwiLFxuICAgIFwiUmFkdGtlXCIsXG4gICAgXCJSYWhuXCIsXG4gICAgXCJSYW5mdGxcIixcbiAgICBcIlJhbmdlblwiLFxuICAgIFwiUmFuelwiLFxuICAgIFwiUmFwcFwiLFxuICAgIFwiUmF0aFwiLFxuICAgIFwiUmF1XCIsXG4gICAgXCJSYXVidWNoXCIsXG4gICAgXCJSYXVrdWNcIixcbiAgICBcIlJhdXRlbmtyYW56XCIsXG4gICAgXCJSZWh3YWdlblwiLFxuICAgIFwiUmVpYmVyXCIsXG4gICAgXCJSZWljaGFyZHRcIixcbiAgICBcIlJlaWNoZWxcIixcbiAgICBcIlJlaWNobGluZ1wiLFxuICAgIFwiUmVpZlwiLFxuICAgIFwiUmVpZmVucmF0aFwiLFxuICAgIFwiUmVpbWFublwiLFxuICAgIFwiUmVpbmJlcmdcIixcbiAgICBcIlJlaW5lbHRcIixcbiAgICBcIlJlaW5oYXJkdFwiLFxuICAgIFwiUmVpbmtlXCIsXG4gICAgXCJSZWl0emVcIixcbiAgICBcIlJlbmtcIixcbiAgICBcIlJlbnR6XCIsXG4gICAgXCJSZW56XCIsXG4gICAgXCJSZXBwaW5cIixcbiAgICBcIlJlc3RsZVwiLFxuICAgIFwiUmVzdG9yZmZcIixcbiAgICBcIlJldHprZVwiLFxuICAgIFwiUmV1YmVyXCIsXG4gICAgXCJSZXVtYW5uXCIsXG4gICAgXCJSZXVzXCIsXG4gICAgXCJSZXVzc1wiLFxuICAgIFwiUmV1c3NlXCIsXG4gICAgXCJSaGVkZXJcIixcbiAgICBcIlJob2RlblwiLFxuICAgIFwiUmljaGFyZHNcIixcbiAgICBcIlJpY2h0ZXJcIixcbiAgICBcIlJpZWRlbFwiLFxuICAgIFwiUmllZGlnZXJcIixcbiAgICBcIlJpZWdlclwiLFxuICAgIFwiUmlla21hbm5cIixcbiAgICBcIlJpZXBsXCIsXG4gICAgXCJSaWVybWVpZXJcIixcbiAgICBcIlJpZXN0ZXJcIixcbiAgICBcIlJpZXRobcO8bGxlclwiLFxuICAgIFwiUmlldG3DvGxsZXJcIixcbiAgICBcIlJpZXRzY2hlclwiLFxuICAgIFwiUmluZ2VsXCIsXG4gICAgXCJSaW5nZXJcIixcbiAgICBcIlJpbmtcIixcbiAgICBcIlJpcGtlblwiLFxuICAgIFwiUml0b3Nla1wiLFxuICAgIFwiUml0c2NoZWxcIixcbiAgICBcIlJpdHRlclwiLFxuICAgIFwiUml0dHdlZ1wiLFxuICAgIFwiUml0elwiLFxuICAgIFwiUm9iYVwiLFxuICAgIFwiUm9ja21laWVyXCIsXG4gICAgXCJSb2RlaGF1XCIsXG4gICAgXCJSb2Rvd3NraVwiLFxuICAgIFwiUm9lY2tlclwiLFxuICAgIFwiUm9nZ2F0elwiLFxuICAgIFwiUm9obMOkbmRlclwiLFxuICAgIFwiUm9ocmVyXCIsXG4gICAgXCJSb2tvc3NhXCIsXG4gICAgXCJSb2xlZGVyXCIsXG4gICAgXCJSb2xvZmZcIixcbiAgICBcIlJvb3NcIixcbiAgICBcIlJvc2JhY2hcIixcbiAgICBcIlJvc2NoaW5za3lcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIlJvc2VuYXVlclwiLFxuICAgIFwiUm9zZW5iYXVlclwiLFxuICAgIFwiUm9zZW50aGFsXCIsXG4gICAgXCJSb3Nrc2NoXCIsXG4gICAgXCJSb3NzYmVyZ1wiLFxuICAgIFwiUm9zc2xlclwiLFxuICAgIFwiUm90aFwiLFxuICAgIFwiUm90aGVyXCIsXG4gICAgXCJSdWNoXCIsXG4gICAgXCJSdWNrZGVzY2hlbFwiLFxuICAgIFwiUnVtcGZcIixcbiAgICBcIlJ1cHByZWNodFwiLFxuICAgIFwiUnV0aFwiLFxuICAgIFwiUnlqaWtoXCIsXG4gICAgXCJSeXppaFwiLFxuICAgIFwiUsOkZGxlclwiLFxuICAgIFwiUsOkbnRzY2hcIixcbiAgICBcIlLDtmRpZ2VyXCIsXG4gICAgXCJSw7ZzZVwiLFxuICAgIFwiUsO2dHRnZXJcIixcbiAgICBcIlLDvGNrZXJcIixcbiAgICBcIlLDvGRpZ2VyXCIsXG4gICAgXCJSw7x0ZXJcIixcbiAgICBcIlNhY2hzZVwiLFxuICAgIFwiU2Fja1wiLFxuICAgIFwiU2FmbGFuaXNcIixcbiAgICBcIlNhZ2FmZVwiLFxuICAgIFwiU2Fnb25hc1wiLFxuICAgIFwiU2FobmVyXCIsXG4gICAgXCJTYWlsZVwiLFxuICAgIFwiU2FpbGVyXCIsXG4gICAgXCJTYWxvd1wiLFxuICAgIFwiU2FsemVyXCIsXG4gICAgXCJTYWx6bWFublwiLFxuICAgIFwiU2FtbWVydFwiLFxuICAgIFwiU2FuZGVyXCIsXG4gICAgXCJTYXJ2YXJpXCIsXG4gICAgXCJTYXR0ZWxtYWllclwiLFxuICAgIFwiU2F1ZXJcIixcbiAgICBcIlNhdWVybGFuZFwiLFxuICAgIFwiU2F1bXdlYmVyXCIsXG4gICAgXCJTYXZvaWFcIixcbiAgICBcIlNjY1wiLFxuICAgIFwiU2NoYWNodFwiLFxuICAgIFwiU2NoYWVmZXJcIixcbiAgICBcIlNjaGFmZmFyemlrXCIsXG4gICAgXCJTY2hhaGJhc2lhblwiLFxuICAgIFwiU2NoYXJmXCIsXG4gICAgXCJTY2hlZGxlclwiLFxuICAgIFwiU2NoZWVyXCIsXG4gICAgXCJTY2hlbGtcIixcbiAgICBcIlNjaGVsbGVuYmVja1wiLFxuICAgIFwiU2NoZW1iZXJhXCIsXG4gICAgXCJTY2hlbmtcIixcbiAgICBcIlNjaGVyYmFydGhcIixcbiAgICBcIlNjaGVyZXJcIixcbiAgICBcIlNjaGVyc2luZ1wiLFxuICAgIFwiU2NoZXJ6XCIsXG4gICAgXCJTY2hldXJlclwiLFxuICAgIFwiU2NoZXVyaW5nXCIsXG4gICAgXCJTY2hleXR0XCIsXG4gICAgXCJTY2hpZWxrZVwiLFxuICAgIFwiU2NoaWVza293XCIsXG4gICAgXCJTY2hpbGRoYXVlclwiLFxuICAgIFwiU2NoaWxsaW5nXCIsXG4gICAgXCJTY2hpbWFcIixcbiAgICBcIlNjaGltbWVyXCIsXG4gICAgXCJTY2hpbmR6aWVsb3J6XCIsXG4gICAgXCJTY2hpcm1lclwiLFxuICAgIFwiU2NoaXJybWVpc3RlclwiLFxuICAgIFwiU2NobGFjaHRlclwiLFxuICAgIFwiU2NobGFuZ2VuXCIsXG4gICAgXCJTY2hsYXdpdHpcIixcbiAgICBcIlNjaGxlY2h0d2VnXCIsXG4gICAgXCJTY2hsZXlcIixcbiAgICBcIlNjaGxpY2h0XCIsXG4gICAgXCJTY2hsaXR6ZXJcIixcbiAgICBcIlNjaG1hbHpsZVwiLFxuICAgIFwiU2NobWlkXCIsXG4gICAgXCJTY2htaWR0XCIsXG4gICAgXCJTY2htaWR0Y2hlblwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobWl0elwiLFxuICAgIFwiU2NobXVobFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2huZWx0aW5nXCIsXG4gICAgXCJTY2huaWVkZXJcIixcbiAgICBcIlNjaG5pZWRlcm1laWVyXCIsXG4gICAgXCJTY2huw7xyZXJcIixcbiAgICBcIlNjaG9iZXJnXCIsXG4gICAgXCJTY2hvbHpcIixcbiAgICBcIlNjaG9uYmVyZ1wiLFxuICAgIFwiU2Nob25kZWxtYWllclwiLFxuICAgIFwiU2Nob3JyXCIsXG4gICAgXCJTY2hvdHRcIixcbiAgICBcIlNjaG90dG1hbm5cIixcbiAgICBcIlNjaG91cmVuXCIsXG4gICAgXCJTY2hyYWRlclwiLFxuICAgIFwiU2NocmFtbVwiLFxuICAgIFwiU2NocmVja1wiLFxuICAgIFwiU2NocmVpYmVyXCIsXG4gICAgXCJTY2hyZWluZXJcIixcbiAgICBcIlNjaHJlaXRlclwiLFxuICAgIFwiU2Nocm9kZXJcIixcbiAgICBcIlNjaHLDtmRlclwiLFxuICAgIFwiU2NodWVybWFublwiLFxuICAgIFwiU2NodWZmXCIsXG4gICAgXCJTY2h1aGFqXCIsXG4gICAgXCJTY2h1bGR0XCIsXG4gICAgXCJTY2h1bHRcIixcbiAgICBcIlNjaHVsdGVcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNjaHVsdHplXCIsXG4gICAgXCJTY2h1bHpcIixcbiAgICBcIlNjaHVsemVcIixcbiAgICBcIlNjaHVtYWNoZXJcIixcbiAgICBcIlNjaHVtYW5uXCIsXG4gICAgXCJTY2h1cHBcIixcbiAgICBcIlNjaHVyaVwiLFxuICAgIFwiU2NodXN0ZXJcIixcbiAgICBcIlNjaHdhYlwiLFxuICAgIFwiU2Nod2FsbVwiLFxuICAgIFwiU2Nod2FuYmVja1wiLFxuICAgIFwiU2Nod2FuZGtlXCIsXG4gICAgXCJTY2h3YW5pdHpcIixcbiAgICBcIlNjaHdhcnRob2ZmXCIsXG4gICAgXCJTY2h3YXJ0elwiLFxuICAgIFwiU2Nod2FyelwiLFxuICAgIFwiU2Nod2FyemVyXCIsXG4gICAgXCJTY2h3YXJ6a29wZlwiLFxuICAgIFwiU2Nod2Fyem1laWVyXCIsXG4gICAgXCJTY2h3YXRsb1wiLFxuICAgIFwiU2Nod2Vpc2Z1cnRoXCIsXG4gICAgXCJTY2h3ZW5uZW5cIixcbiAgICBcIlNjaHdlcmR0bmVyXCIsXG4gICAgXCJTY2h3aWRkZVwiLFxuICAgIFwiU2Nod2lya3NjaGxpZXNcIixcbiAgICBcIlNjaHd1Y2hvd1wiLFxuICAgIFwiU2Now6RmZXJcIixcbiAgICBcIlNjaMOkZmZlbFwiLFxuICAgIFwiU2Now6RmZmVyXCIsXG4gICAgXCJTY2jDpG5pbmdcIixcbiAgICBcIlNjaMO2Y2tlbFwiLFxuICAgIFwiU2Now7ZuYmFsbFwiLFxuICAgIFwiU2Now7ZuYmVja1wiLFxuICAgIFwiU2Now7ZuYmVyZ1wiLFxuICAgIFwiU2Now7ZuZWJlY2tcIixcbiAgICBcIlNjaMO2bmVuYmVyZ2VyXCIsXG4gICAgXCJTY2jDtm5mZWxkXCIsXG4gICAgXCJTY2jDtm5oZXJyXCIsXG4gICAgXCJTY2jDtm5sZWJlXCIsXG4gICAgXCJTY2jDtnR6XCIsXG4gICAgXCJTY2jDvGxlclwiLFxuICAgIFwiU2Now7xwcGVsXCIsXG4gICAgXCJTY2jDvHR6XCIsXG4gICAgXCJTY2jDvHR6ZVwiLFxuICAgIFwiU2VlZ2VyXCIsXG4gICAgXCJTZWVsaWdcIixcbiAgICBcIlNlaGxzXCIsXG4gICAgXCJTZWlib2xkXCIsXG4gICAgXCJTZWlkZWxcIixcbiAgICBcIlNlaWRlcnNcIixcbiAgICBcIlNlaWdlbFwiLFxuICAgIFwiU2VpbGVyXCIsXG4gICAgXCJTZWl0elwiLFxuICAgIFwiU2VtaXNjaFwiLFxuICAgIFwiU2Vua2VsXCIsXG4gICAgXCJTZXdhbGRcIixcbiAgICBcIlNpZWJlbFwiLFxuICAgIFwiU2llYmVydFwiLFxuICAgIFwiU2llZ2xpbmdcIixcbiAgICBcIlNpZWxlbWFublwiLFxuICAgIFwiU2llbW9uXCIsXG4gICAgXCJTaWVuZXJcIixcbiAgICBcIlNpZXZlcnNcIixcbiAgICBcIlNpZXdlcnRcIixcbiAgICBcIlNpaGxlclwiLFxuICAgIFwiU2lsbGFoXCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiU2lubmh1YmVyXCIsXG4gICAgXCJTaXNjaGthXCIsXG4gICAgXCJTa2liaWNraVwiLFxuICAgIFwiU2xhZGVrXCIsXG4gICAgXCJTbG90dGFcIixcbiAgICBcIlNtaWVqYVwiLFxuICAgIFwiU29ib2xsXCIsXG4gICAgXCJTb2tvbG93c2tpXCIsXG4gICAgXCJTb2xsZXJcIixcbiAgICBcIlNvbGxuZXJcIixcbiAgICBcIlNvbW1lclwiLFxuICAgIFwiU29tc3NpY2hcIixcbiAgICBcIlNvbm5cIixcbiAgICBcIlNvbm5hYmVuZFwiLFxuICAgIFwiU3BhaG5cIixcbiAgICBcIlNwYW5rXCIsXG4gICAgXCJTcGVsbWV5ZXJcIixcbiAgICBcIlNwaWVnZWxidXJnXCIsXG4gICAgXCJTcGllbHZvZ2VsXCIsXG4gICAgXCJTcGlubmVyXCIsXG4gICAgXCJTcGl0em3DvGxsZXJcIixcbiAgICBcIlNwbGludGVyXCIsXG4gICAgXCJTcG9ycmVyXCIsXG4gICAgXCJTcHJlbmdlclwiLFxuICAgIFwiU3DDtnR0ZWxcIixcbiAgICBcIlN0YWhsXCIsXG4gICAgXCJTdGFuZ1wiLFxuICAgIFwiU3RhbmdlclwiLFxuICAgIFwiU3RhdXNzXCIsXG4gICAgXCJTdGVkaW5nXCIsXG4gICAgXCJTdGVmZmVuXCIsXG4gICAgXCJTdGVmZm55XCIsXG4gICAgXCJTdGVpZGxcIixcbiAgICBcIlN0ZWlnYXVmXCIsXG4gICAgXCJTdGVpblwiLFxuICAgIFwiU3RlaW5lY2tlXCIsXG4gICAgXCJTdGVpbmVydFwiLFxuICAgIFwiU3RlaW5rYW1wXCIsXG4gICAgXCJTdGVpbm1ldHpcIixcbiAgICBcIlN0ZWxrZW5zXCIsXG4gICAgXCJTdGVuZ2VsXCIsXG4gICAgXCJTdGVuZ2xcIixcbiAgICBcIlN0ZW56ZWxcIixcbiAgICBcIlN0ZXBhbm92XCIsXG4gICAgXCJTdGVwaGFuXCIsXG4gICAgXCJTdGVyblwiLFxuICAgIFwiU3RldWtcIixcbiAgICBcIlN0aWVmXCIsXG4gICAgXCJTdGlmZWxcIixcbiAgICBcIlN0b2xsXCIsXG4gICAgXCJTdG9sbGVcIixcbiAgICBcIlN0b2x6XCIsXG4gICAgXCJTdG9ybFwiLFxuICAgIFwiU3RvcnBcIixcbiAgICBcIlN0b3V0amVzZGlqa1wiLFxuICAgIFwiU3RyYXRtYW5uXCIsXG4gICAgXCJTdHJhdWJcIixcbiAgICBcIlN0cmF1c2FcIixcbiAgICBcIlN0cmVja1wiLFxuICAgIFwiU3RyZWVzZVwiLFxuICAgIFwiU3RyZWdlXCIsXG4gICAgXCJTdHJlaXRcIixcbiAgICBcIlN0cmVsbGVyXCIsXG4gICAgXCJTdHJpZWRlclwiLFxuICAgIFwiU3RyaWV6ZWxcIixcbiAgICBcIlN0cm9naWVzXCIsXG4gICAgXCJTdHJvaHNjaGFua1wiLFxuICAgIFwiU3RydW56XCIsXG4gICAgXCJTdHJ1dHpcIixcbiAgICBcIlN0dWJlXCIsXG4gICAgXCJTdMO2Y2tlcnRcIixcbiAgICBcIlN0w7ZwcGxlclwiLFxuICAgIFwiU3TDtndlclwiLFxuICAgIFwiU3TDvHJtZXJcIixcbiAgICBcIlN1ZmZhXCIsXG4gICAgXCJTdWpld1wiLFxuICAgIFwiU3Vzc21hbm5cIixcbiAgICBcIlN1dGhlXCIsXG4gICAgXCJTdXRzY2hldFwiLFxuICAgIFwiU3dpbGxpbXNcIixcbiAgICBcIlN6ZW5kcmVpXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlPDvHJ0aFwiLFxuICAgIFwiVGFmZWxtZWllclwiLFxuICAgIFwiVGFuZ1wiLFxuICAgIFwiVGFzY2hlXCIsXG4gICAgXCJUYXVmcmF0c2hvZmVyXCIsXG4gICAgXCJUZWdldGhvZlwiLFxuICAgIFwiVGVpY2htYW5uXCIsXG4gICAgXCJUZXBwZXJcIixcbiAgICBcIlRlcmhlaWRlblwiLFxuICAgIFwiVGVybGVja2lcIixcbiAgICBcIlRldWZlbFwiLFxuICAgIFwiVGhlZWxlXCIsXG4gICAgXCJUaGlla2VcIixcbiAgICBcIlRoaW1tXCIsXG4gICAgXCJUaGlvbWFzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRocmllbmVcIixcbiAgICBcIlRocsOkbmhhcmR0XCIsXG4gICAgXCJUaHVzdFwiLFxuICAgIFwiVGh5c3NlblwiLFxuICAgIFwiVGjDtm5lXCIsXG4gICAgXCJUaWRvd1wiLFxuICAgIFwiVGllZHRrZVwiLFxuICAgIFwiVGlldHplXCIsXG4gICAgXCJUaWxnbmVyXCIsXG4gICAgXCJUaWxsYWNrXCIsXG4gICAgXCJUaW1tZXJtYW5uXCIsXG4gICAgXCJUaXNjaGxlclwiLFxuICAgIFwiVGlzY2htYW5uXCIsXG4gICAgXCJUaXR0bWFuXCIsXG4gICAgXCJUaXZvbnRzY2hpa1wiLFxuICAgIFwiVG9uYXRcIixcbiAgICBcIlRvbm5cIixcbiAgICBcIlRyYW1wZWxpXCIsXG4gICAgXCJUcmF1dGhcIixcbiAgICBcIlRyYXV0bWFublwiLFxuICAgIFwiVHJhdmFuXCIsXG4gICAgXCJUcmVmZlwiLFxuICAgIFwiVHJlbW1lbFwiLFxuICAgIFwiVHJlc3NcIixcbiAgICBcIlRzYW1vbmlraWFuXCIsXG4gICAgXCJUc2NoaWVyc1wiLFxuICAgIFwiVHNjaGlyY2hcIixcbiAgICBcIlR1Y2hcIixcbiAgICBcIlR1Y2hvbGtlXCIsXG4gICAgXCJUdWRvd1wiLFxuICAgIFwiVHVzY2htb1wiLFxuICAgIFwiVMOkY2hsXCIsXG4gICAgXCJUw7ZiYmVuXCIsXG4gICAgXCJUw7ZwZmVyXCIsXG4gICAgXCJVaGxlbWFublwiLFxuICAgIFwiVWhsaWdcIixcbiAgICBcIlVocmlnXCIsXG4gICAgXCJVaWJlbFwiLFxuICAgIFwiVWxpY3prYVwiLFxuICAgIFwiVWxsbWFublwiLFxuICAgIFwiVWxscmljaFwiLFxuICAgIFwiVW1iYWNoXCIsXG4gICAgXCJVbWxhdWZ0XCIsXG4gICAgXCJVbW1pbmdlclwiLFxuICAgIFwiVW5nZXJcIixcbiAgICBcIlVudGVycGFpbnRuZXJcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJVcmJhbmlha1wiLFxuICAgIFwiVXJiYW5za3lcIixcbiAgICBcIlVyaGlnXCIsXG4gICAgXCJWYWhsZW5zaWVja1wiLFxuICAgIFwiVmFuXCIsXG4gICAgXCJWYW5nZXJtYWluXCIsXG4gICAgXCJWYXRlclwiLFxuICAgIFwiVmVuZ2hhdXNcIixcbiAgICBcIlZlcm5pZXN0XCIsXG4gICAgXCJWZXJ6aVwiLFxuICAgIFwiVmV5XCIsXG4gICAgXCJWaWVsbGVobmVyXCIsXG4gICAgXCJWaWV3ZWdcIixcbiAgICBcIlZvZWxrZWxcIixcbiAgICBcIlZvZ2VsXCIsXG4gICAgXCJWb2dlbGdzYW5nXCIsXG4gICAgXCJWb2d0XCIsXG4gICAgXCJWb2lndFwiLFxuICAgIFwiVm9rdWhsXCIsXG4gICAgXCJWb2xrXCIsXG4gICAgXCJWb2xrZXJcIixcbiAgICBcIlZvbGttYW5uXCIsXG4gICAgXCJWb25cIixcbiAgICBcIlZvbmFcIixcbiAgICBcIlZvbnRlaW5cIixcbiAgICBcIldhY2hlbmJydW5uZXJcIixcbiAgICBcIldhY2h0ZWxcIixcbiAgICBcIldhZ25lclwiLFxuICAgIFwiV2FpYmVsXCIsXG4gICAgXCJXYWthblwiLFxuICAgIFwiV2FsZG1hbm5cIixcbiAgICBcIldhbGxuZXJcIixcbiAgICBcIldhbGxzdGFiXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbHRoZXJcIixcbiAgICBcIldhbHRvblwiLFxuICAgIFwiV2FselwiLFxuICAgIFwiV2FubmVyXCIsXG4gICAgXCJXYXJ0ZW5iZXJnXCIsXG4gICAgXCJXYXNjaGLDvHNjaFwiLFxuICAgIFwiV2Fzc2lsZXdcIixcbiAgICBcIldhc3NpbHVrXCIsXG4gICAgXCJXZWJlclwiLFxuICAgIFwiV2VocnNlblwiLFxuICAgIFwiV2VpZGxpY2hcIixcbiAgICBcIldlaWRuZXJcIixcbiAgICBcIldlaWdlbFwiLFxuICAgIFwiV2VpZ2h0XCIsXG4gICAgXCJXZWlsZXJcIixcbiAgICBcIldlaW1lclwiLFxuICAgIFwiV2Vpc1wiLFxuICAgIFwiV2Vpc3NcIixcbiAgICBcIldlbGxlclwiLFxuICAgIFwiV2Vsc2NoXCIsXG4gICAgXCJXZWx6XCIsXG4gICAgXCJXZWx6ZWxcIixcbiAgICBcIldlbmlnZXJcIixcbiAgICBcIldlbmtcIixcbiAgICBcIldlcmxlXCIsXG4gICAgXCJXZXJuZXJcIixcbiAgICBcIldlcnJtYW5uXCIsXG4gICAgXCJXZXNzZWxcIixcbiAgICBcIldlc3NpbmdoYWdlXCIsXG4gICAgXCJXZXllbFwiLFxuICAgIFwiV2V6ZWxcIixcbiAgICBcIldpY2htYW5uXCIsXG4gICAgXCJXaWNrZXJ0XCIsXG4gICAgXCJXaWViZVwiLFxuICAgIFwiV2llY2htYW5uXCIsXG4gICAgXCJXaWVnZWxtYW5uXCIsXG4gICAgXCJXaWVyaWdcIixcbiAgICBcIldpZXNlXCIsXG4gICAgXCJXaWVzZXJcIixcbiAgICBcIldpbGhlbG1cIixcbiAgICBcIldpbGt5XCIsXG4gICAgXCJXaWxsXCIsXG4gICAgXCJXaWxsd2FjaGVyXCIsXG4gICAgXCJXaWx0c1wiLFxuICAgIFwiV2ltbWVyXCIsXG4gICAgXCJXaW5rZWxtYW5uXCIsXG4gICAgXCJXaW5rbGVyXCIsXG4gICAgXCJXaW50ZXJcIixcbiAgICBcIldpc2NoZWtcIixcbiAgICBcIldpc2NoZXJcIixcbiAgICBcIldpc3NpbmdcIixcbiAgICBcIldpdHRpY2hcIixcbiAgICBcIldpdHRsXCIsXG4gICAgXCJXb2xmXCIsXG4gICAgXCJXb2xmYXJ0aFwiLFxuICAgIFwiV29sZmZcIixcbiAgICBcIldvbGxlbmJlcmdcIixcbiAgICBcIldvbGxtYW5uXCIsXG4gICAgXCJXb3l0a293c2thXCIsXG4gICAgXCJXdWpha1wiLFxuICAgIFwiV3VybVwiLFxuICAgIFwiV3lsdWRkYVwiLFxuICAgIFwiV8O2bHBlcnRcIixcbiAgICBcIlfDtnNjaGxlclwiLFxuICAgIFwiV8O8aG5cIixcbiAgICBcIlfDvG5zY2hlXCIsXG4gICAgXCJaYWNoXCIsXG4gICAgXCJaYWN6a2lld2ljelwiLFxuICAgIFwiWmFoblwiLFxuICAgIFwiWmFpdHVjXCIsXG4gICAgXCJaYW5kdFwiLFxuICAgIFwiWmFubmVyXCIsXG4gICAgXCJaYXBsZXRhbFwiLFxuICAgIFwiWmF1YmVyXCIsXG4gICAgXCJaZWlkbGVyXCIsXG4gICAgXCJaZWtsXCIsXG4gICAgXCJaZW5kZXJcIixcbiAgICBcIlpldWNoXCIsXG4gICAgXCJaZXllblwiLFxuICAgIFwiWmV5aGxlXCIsXG4gICAgXCJaaWVnbGVyXCIsXG4gICAgXCJaaW1hbnlpXCIsXG4gICAgXCJaaW1tZXJcIixcbiAgICBcIlppbW1lcm1hbm5cIixcbiAgICBcIlppbnNlclwiLFxuICAgIFwiWmludGxcIixcbiAgICBcIlppcHBcIixcbiAgICBcIlppcHNlXCIsXG4gICAgXCJac2NodW5rZVwiLFxuICAgIFwiWnViZXJcIixcbiAgICBcIlp3aWVuZXJcIixcbiAgICBcIlrDvG1zYW5kZVwiLFxuICAgIFwiw5ZzdHJpbmdlclwiLFxuICAgIFwiw5xiZXJhY2tlclwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkRyLlwiLFxuICAgIFwiUHJvZi4gRHIuXCJcbiAgXSxcbiAgXCJub2JpbGl0eV90aXRsZV9wcmVmaXhcIjogW1xuICAgIFwienVcIixcbiAgICBcInZvblwiLFxuICAgIFwidm9tXCIsXG4gICAgXCJ2b24gZGVyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje25vYmlsaXR5X3RpdGxlX3ByZWZpeH0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZV9BVC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwMSAjIyMjIyMjXCIsXG4gICAgXCIwMSMjIyMjIyNcIixcbiAgICBcIis0My0xLSMjIyMjIyNcIixcbiAgICBcIis0MzEjIyMjIyMjXCIsXG4gICAgXCIwIyMjIyAjIyMjXCIsXG4gICAgXCIwIyMjIyMjIyMjXCIsXG4gICAgXCIrNDMtIyMjIy0jIyMjXCIsXG4gICAgXCIrNDMgIyMjIyMjIyNcIlxuICBdXG59O1xuZGVfQVQuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIis0My02IyMtIyMjIyMjI1wiLFxuICAgIFwiMDYjIy0jIyMjIyMjI1wiLFxuICAgIFwiKzQzNiMjIyMjIyMjI1wiLFxuICAgIFwiMDYjIyMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBkZV9DSCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGRlX0NIO1xuZGVfQ0gudGl0bGUgPSBcIkdlcm1hbiAoU3dpdHplcmxhbmQpXCI7XG5kZV9DSC5hZGRyZXNzID0ge1xuICBcImNvdW50cnlfY29kZVwiOiBbXG4gICAgXCJDSFwiLFxuICAgIFwiQ0hcIixcbiAgICBcIkNIXCIsXG4gICAgXCJERVwiLFxuICAgIFwiQVRcIixcbiAgICBcIlVTXCIsXG4gICAgXCJMSVwiLFxuICAgIFwiVVNcIixcbiAgICBcIkhLXCIsXG4gICAgXCJWTlwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiMSMjI1wiLFxuICAgIFwiMiMjI1wiLFxuICAgIFwiMyMjI1wiLFxuICAgIFwiNCMjI1wiLFxuICAgIFwiNSMjI1wiLFxuICAgIFwiNiMjI1wiLFxuICAgIFwiNyMjI1wiLFxuICAgIFwiOCMjI1wiLFxuICAgIFwiOSMjI1wiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIlNjaHdlaXpcIlxuICBdXG59O1xuZGVfQ0guY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiQUdcIixcbiAgICBcIkdtYkhcIixcbiAgICBcInVuZCBTw7ZobmVcIixcbiAgICBcInVuZCBQYXJ0bmVyXCIsXG4gICAgXCImIENvLlwiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJMTENcIixcbiAgICBcIkluYy5cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IHVuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZV9DSC5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJiaXpcIixcbiAgICBcImNoXCIsXG4gICAgXCJkZVwiLFxuICAgIFwibGlcIixcbiAgICBcImF0XCIsXG4gICAgXCJjaFwiLFxuICAgIFwiY2hcIlxuICBdXG59O1xuZGVfQ0gucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDgwMCAjIyMgIyMjXCIsXG4gICAgXCIwODAwICMjICMjICMjXCIsXG4gICAgXCIwIyMgIyMjICMjICMjXCIsXG4gICAgXCIwIyMgIyMjICMjICMjXCIsXG4gICAgXCIrNDEgIyMgIyMjICMjICMjXCIsXG4gICAgXCIwOTAwICMjIyAjIyNcIixcbiAgICBcIjA3NiAjIyMgIyMgIyNcIixcbiAgICBcIis0MTc4ICMjIyAjIyAjI1wiLFxuICAgIFwiMDA0MSA3OSAjIyMgIyMgIyNcIlxuICBdXG59O1xuIiwidmFyIGVuID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW47XG5lbi50aXRsZSA9IFwiRW5nbGlzaFwiO1xuZW4uc2VwYXJhdG9yID0gXCIgJiBcIjtcbmVuLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiTm9ydGhcIixcbiAgICBcIkVhc3RcIixcbiAgICBcIldlc3RcIixcbiAgICBcIlNvdXRoXCIsXG4gICAgXCJOZXdcIixcbiAgICBcIkxha2VcIixcbiAgICBcIlBvcnRcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcInRvd25cIixcbiAgICBcInRvblwiLFxuICAgIFwibGFuZFwiLFxuICAgIFwidmlsbGVcIixcbiAgICBcImJlcmdcIixcbiAgICBcImJ1cmdoXCIsXG4gICAgXCJib3JvdWdoXCIsXG4gICAgXCJidXJ5XCIsXG4gICAgXCJ2aWV3XCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJtb3V0aFwiLFxuICAgIFwic3RhZFwiLFxuICAgIFwiZnVydFwiLFxuICAgIFwiY2hlc3RlclwiLFxuICAgIFwibW91dGhcIixcbiAgICBcImZvcnRcIixcbiAgICBcImhhdmVuXCIsXG4gICAgXCJzaWRlXCIsXG4gICAgXCJzaGlyZVwiXG4gIF0sXG4gIC8vIFRPRE86IGdldCBjb21tb24gQ291bnR5IG5hbWVzIGluIEFtZXJpY2EgYW5kIHBvcHVsYXRlIGhlcmVcbiAgXCJjb3VudHlcIjogW1xuICAgIFwiQXZvblwiLFxuICAgIFwiQmVkZm9yZHNoaXJlXCIsXG4gICAgXCJCZXJrc2hpcmVcIixcbiAgICBcIkJvcmRlcnNcIixcbiAgICBcIkJ1Y2tpbmdoYW1zaGlyZVwiLFxuICAgIFwiQ2FtYnJpZGdlc2hpcmVcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnaGFuaXN0YW5cIixcbiAgICBcIkFsYmFuaWFcIixcbiAgICBcIkFsZ2VyaWFcIixcbiAgICBcIkFtZXJpY2FuIFNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcmN0aWNhICh0aGUgdGVycml0b3J5IFNvdXRoIG9mIDYwIGRlZyBTKVwiLFxuICAgIFwiQW50aWd1YSBhbmQgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5hXCIsXG4gICAgXCJBcm1lbmlhXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXVzdHJhbGlhXCIsXG4gICAgXCJBdXN0cmlhXCIsXG4gICAgXCJBemVyYmFpamFuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJCYW5nbGFkZXNoXCIsXG4gICAgXCJCYXJiYWRvc1wiLFxuICAgIFwiQmVsYXJ1c1wiLFxuICAgIFwiQmVsZ2l1bVwiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZW5pblwiLFxuICAgIFwiQmVybXVkYVwiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2xpdmlhXCIsXG4gICAgXCJCb3NuaWEgYW5kIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm91dmV0IElzbGFuZCAoQm91dmV0b3lhKVwiLFxuICAgIFwiQnJhemlsXCIsXG4gICAgXCJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkgKENoYWdvcyBBcmNoaXBlbGFnbylcIixcbiAgICBcIkJydW5laSBEYXJ1c3NhbGFtXCIsXG4gICAgXCJCdWxnYXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1ib2RpYVwiLFxuICAgIFwiQ2FtZXJvb25cIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2FwZSBWZXJkZVwiLFxuICAgIFwiQ2F5bWFuIElzbGFuZHNcIixcbiAgICBcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY1wiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJDaHJpc3RtYXMgSXNsYW5kXCIsXG4gICAgXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9yb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJDb25nb1wiLFxuICAgIFwiQ29vayBJc2xhbmRzXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3RlIGQnSXZvaXJlXCIsXG4gICAgXCJDcm9hdGlhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDeXBydXNcIixcbiAgICBcIkN6ZWNoIFJlcHVibGljXCIsXG4gICAgXCJEZW5tYXJrXCIsXG4gICAgXCJEamlib3V0aVwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIkRvbWluaWNhbiBSZXB1YmxpY1wiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiRWd5cHRcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcXVhdG9yaWFsIEd1aW5lYVwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRoaW9waWFcIixcbiAgICBcIkZhcm9lIElzbGFuZHNcIixcbiAgICBcIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKVwiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiRmlubGFuZFwiLFxuICAgIFwiRnJhbmNlXCIsXG4gICAgXCJGcmVuY2ggR3VpYW5hXCIsXG4gICAgXCJGcmVuY2ggUG9seW5lc2lhXCIsXG4gICAgXCJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXNcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkdlcm1hbnlcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyZWVjZVwiLFxuICAgIFwiR3JlZW5sYW5kXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHdWFkZWxvdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kc1wiLFxuICAgIFwiSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSlcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nIEtvbmdcIixcbiAgICBcIkh1bmdhcnlcIixcbiAgICBcIkljZWxhbmRcIixcbiAgICBcIkluZGlhXCIsXG4gICAgXCJJbmRvbmVzaWFcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklyYXFcIixcbiAgICBcIklyZWxhbmRcIixcbiAgICBcIklzbGUgb2YgTWFuXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkl0YWx5XCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIkthemFraHN0YW5cIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiRGVtb2NyYXRpYyBQZW9wbGUncyBSZXB1YmxpYyBvZiBLb3JlYVwiLFxuICAgIFwiUmVwdWJsaWMgb2YgS29yZWFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiS3lyZ3l6IFJlcHVibGljXCIsXG4gICAgXCJMYW8gUGVvcGxlJ3MgRGVtb2NyYXRpYyBSZXB1YmxpY1wiLFxuICAgIFwiTGF0dmlhXCIsXG4gICAgXCJMZWJhbm9uXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXRodWFuaWFcIixcbiAgICBcIkx1eGVtYm91cmdcIixcbiAgICBcIk1hY2FvXCIsXG4gICAgXCJNYWNlZG9uaWFcIixcbiAgICBcIk1hZGFnYXNjYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIk1hbGRpdmVzXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyc2hhbGwgSXNsYW5kc1wiLFxuICAgIFwiTWFydGluaXF1ZVwiLFxuICAgIFwiTWF1cml0YW5pYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXhpY29cIixcbiAgICBcIk1pY3JvbmVzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29saWFcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1vcm9jY29cIixcbiAgICBcIk1vemFtYmlxdWVcIixcbiAgICBcIk15YW5tYXJcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmV0aGVybGFuZHMgQW50aWxsZXNcIixcbiAgICBcIk5ldGhlcmxhbmRzXCIsXG4gICAgXCJOZXcgQ2FsZWRvbmlhXCIsXG4gICAgXCJOZXcgWmVhbGFuZFwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICBcIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kc1wiLFxuICAgIFwiTm9yd2F5XCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbGVzdGluaWFuIFRlcnJpdG9yeVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YSBOZXcgR3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiUGhpbGlwcGluZXNcIixcbiAgICBcIlBpdGNhaXJuIElzbGFuZHNcIixcbiAgICBcIlBvbGFuZFwiLFxuICAgIFwiUG9ydHVnYWxcIixcbiAgICBcIlB1ZXJ0byBSaWNvXCIsXG4gICAgXCJRYXRhclwiLFxuICAgIFwiUmV1bmlvblwiLFxuICAgIFwiUm9tYW5pYVwiLFxuICAgIFwiUnVzc2lhbiBGZWRlcmF0aW9uXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIlNhaW50IEJhcnRoZWxlbXlcIixcbiAgICBcIlNhaW50IEhlbGVuYVwiLFxuICAgIFwiU2FpbnQgS2l0dHMgYW5kIE5ldmlzXCIsXG4gICAgXCJTYWludCBMdWNpYVwiLFxuICAgIFwiU2FpbnQgTWFydGluXCIsXG4gICAgXCJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uXCIsXG4gICAgXCJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lc1wiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNhbyBUb21lIGFuZCBQcmluY2lwZVwiLFxuICAgIFwiU2F1ZGkgQXJhYmlhXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTbG92YWtpYSAoU2xvdmFrIFJlcHVibGljKVwiLFxuICAgIFwiU2xvdmVuaWFcIixcbiAgICBcIlNvbG9tb24gSXNsYW5kc1wiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU291dGggQWZyaWNhXCIsXG4gICAgXCJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgIFwiU3BhaW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3VkYW5cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdmFsYmFyZCAmIEphbiBNYXllbiBJc2xhbmRzXCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlN3ZWRlblwiLFxuICAgIFwiU3dpdHplcmxhbmRcIixcbiAgICBcIlN5cmlhbiBBcmFiIFJlcHVibGljXCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIlRhamlraXN0YW5cIixcbiAgICBcIlRhbnphbmlhXCIsXG4gICAgXCJUaGFpbGFuZFwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCBhbmQgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2lhXCIsXG4gICAgXCJUdXJrZXlcIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluZVwiLFxuICAgIFwiVW5pdGVkIEFyYWIgRW1pcmF0ZXNcIixcbiAgICBcIlVuaXRlZCBLaW5nZG9tXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2FcIixcbiAgICBcIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kc1wiLFxuICAgIFwiVXJ1Z3VheVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaFwiLFxuICAgIFwiVmlyZ2luIElzbGFuZHMsIFUuUy5cIixcbiAgICBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgXCJXZXN0ZXJuIFNhaGFyYVwiLFxuICAgIFwiWWVtZW5cIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiWmltYmFid2VcIlxuICBdLFxuICBcImNvdW50cnlfY29kZVwiOiBbXG4gICAgXCJBRFwiLFxuICAgIFwiQUVcIixcbiAgICBcIkFGXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiQUlcIixcbiAgICBcIkFMXCIsXG4gICAgXCJBTVwiLFxuICAgIFwiQU9cIixcbiAgICBcIkFRXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQVNcIixcbiAgICBcIkFUXCIsXG4gICAgXCJBVVwiLFxuICAgIFwiQVdcIixcbiAgICBcIkFYXCIsXG4gICAgXCJBWlwiLFxuICAgIFwiQkFcIixcbiAgICBcIkJCXCIsXG4gICAgXCJCRFwiLFxuICAgIFwiQkVcIixcbiAgICBcIkJGXCIsXG4gICAgXCJCR1wiLFxuICAgIFwiQkhcIixcbiAgICBcIkJJXCIsXG4gICAgXCJCSlwiLFxuICAgIFwiQkxcIixcbiAgICBcIkJNXCIsXG4gICAgXCJCTlwiLFxuICAgIFwiQk9cIixcbiAgICBcIkJRXCIsXG4gICAgXCJCUVwiLFxuICAgIFwiQlJcIixcbiAgICBcIkJTXCIsXG4gICAgXCJCVFwiLFxuICAgIFwiQlZcIixcbiAgICBcIkJXXCIsXG4gICAgXCJCWVwiLFxuICAgIFwiQlpcIixcbiAgICBcIkNBXCIsXG4gICAgXCJDQ1wiLFxuICAgIFwiQ0RcIixcbiAgICBcIkNGXCIsXG4gICAgXCJDR1wiLFxuICAgIFwiQ0hcIixcbiAgICBcIkNJXCIsXG4gICAgXCJDS1wiLFxuICAgIFwiQ0xcIixcbiAgICBcIkNNXCIsXG4gICAgXCJDTlwiLFxuICAgIFwiQ09cIixcbiAgICBcIkNSXCIsXG4gICAgXCJDVVwiLFxuICAgIFwiQ1ZcIixcbiAgICBcIkNXXCIsXG4gICAgXCJDWFwiLFxuICAgIFwiQ1lcIixcbiAgICBcIkNaXCIsXG4gICAgXCJERVwiLFxuICAgIFwiREpcIixcbiAgICBcIkRLXCIsXG4gICAgXCJETVwiLFxuICAgIFwiRE9cIixcbiAgICBcIkRaXCIsXG4gICAgXCJFQ1wiLFxuICAgIFwiRUVcIixcbiAgICBcIkVHXCIsXG4gICAgXCJFSFwiLFxuICAgIFwiRVJcIixcbiAgICBcIkVTXCIsXG4gICAgXCJFVFwiLFxuICAgIFwiRklcIixcbiAgICBcIkZKXCIsXG4gICAgXCJGS1wiLFxuICAgIFwiRk1cIixcbiAgICBcIkZPXCIsXG4gICAgXCJGUlwiLFxuICAgIFwiR0FcIixcbiAgICBcIkdCXCIsXG4gICAgXCJHRFwiLFxuICAgIFwiR0VcIixcbiAgICBcIkdGXCIsXG4gICAgXCJHR1wiLFxuICAgIFwiR0hcIixcbiAgICBcIkdJXCIsXG4gICAgXCJHTFwiLFxuICAgIFwiR01cIixcbiAgICBcIkdOXCIsXG4gICAgXCJHUFwiLFxuICAgIFwiR1FcIixcbiAgICBcIkdSXCIsXG4gICAgXCJHU1wiLFxuICAgIFwiR1RcIixcbiAgICBcIkdVXCIsXG4gICAgXCJHV1wiLFxuICAgIFwiR1lcIixcbiAgICBcIkhLXCIsXG4gICAgXCJITVwiLFxuICAgIFwiSE5cIixcbiAgICBcIkhSXCIsXG4gICAgXCJIVFwiLFxuICAgIFwiSFVcIixcbiAgICBcIklEXCIsXG4gICAgXCJJRVwiLFxuICAgIFwiSUxcIixcbiAgICBcIklNXCIsXG4gICAgXCJJTlwiLFxuICAgIFwiSU9cIixcbiAgICBcIklRXCIsXG4gICAgXCJJUlwiLFxuICAgIFwiSVNcIixcbiAgICBcIklUXCIsXG4gICAgXCJKRVwiLFxuICAgIFwiSk1cIixcbiAgICBcIkpPXCIsXG4gICAgXCJKUFwiLFxuICAgIFwiS0VcIixcbiAgICBcIktHXCIsXG4gICAgXCJLSFwiLFxuICAgIFwiS0lcIixcbiAgICBcIktNXCIsXG4gICAgXCJLTlwiLFxuICAgIFwiS1BcIixcbiAgICBcIktSXCIsXG4gICAgXCJLV1wiLFxuICAgIFwiS1lcIixcbiAgICBcIktaXCIsXG4gICAgXCJMQVwiLFxuICAgIFwiTEJcIixcbiAgICBcIkxDXCIsXG4gICAgXCJMSVwiLFxuICAgIFwiTEtcIixcbiAgICBcIkxSXCIsXG4gICAgXCJMU1wiLFxuICAgIFwiTFRcIixcbiAgICBcIkxVXCIsXG4gICAgXCJMVlwiLFxuICAgIFwiTFlcIixcbiAgICBcIk1BXCIsXG4gICAgXCJNQ1wiLFxuICAgIFwiTURcIixcbiAgICBcIk1FXCIsXG4gICAgXCJNRlwiLFxuICAgIFwiTUdcIixcbiAgICBcIk1IXCIsXG4gICAgXCJNS1wiLFxuICAgIFwiTUxcIixcbiAgICBcIk1NXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiTU9cIixcbiAgICBcIk1QXCIsXG4gICAgXCJNUVwiLFxuICAgIFwiTVJcIixcbiAgICBcIk1TXCIsXG4gICAgXCJNVFwiLFxuICAgIFwiTVVcIixcbiAgICBcIk1WXCIsXG4gICAgXCJNV1wiLFxuICAgIFwiTVhcIixcbiAgICBcIk1ZXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiTkFcIixcbiAgICBcIk5DXCIsXG4gICAgXCJORVwiLFxuICAgIFwiTkZcIixcbiAgICBcIk5HXCIsXG4gICAgXCJOSVwiLFxuICAgIFwiTkxcIixcbiAgICBcIk5PXCIsXG4gICAgXCJOUFwiLFxuICAgIFwiTlJcIixcbiAgICBcIk5VXCIsXG4gICAgXCJOWlwiLFxuICAgIFwiT01cIixcbiAgICBcIlBBXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUEZcIixcbiAgICBcIlBHXCIsXG4gICAgXCJQSFwiLFxuICAgIFwiUEtcIixcbiAgICBcIlBMXCIsXG4gICAgXCJQTVwiLFxuICAgIFwiUE5cIixcbiAgICBcIlBSXCIsXG4gICAgXCJQU1wiLFxuICAgIFwiUFRcIixcbiAgICBcIlBXXCIsXG4gICAgXCJQWVwiLFxuICAgIFwiUUFcIixcbiAgICBcIlJFXCIsXG4gICAgXCJST1wiLFxuICAgIFwiUlNcIixcbiAgICBcIlJVXCIsXG4gICAgXCJSV1wiLFxuICAgIFwiU0FcIixcbiAgICBcIlNCXCIsXG4gICAgXCJTQ1wiLFxuICAgIFwiU0RcIixcbiAgICBcIlNFXCIsXG4gICAgXCJTR1wiLFxuICAgIFwiU0hcIixcbiAgICBcIlNJXCIsXG4gICAgXCJTSlwiLFxuICAgIFwiU0tcIixcbiAgICBcIlNMXCIsXG4gICAgXCJTTVwiLFxuICAgIFwiU05cIixcbiAgICBcIlNPXCIsXG4gICAgXCJTUlwiLFxuICAgIFwiU1NcIixcbiAgICBcIlNUXCIsXG4gICAgXCJTVlwiLFxuICAgIFwiU1hcIixcbiAgICBcIlNZXCIsXG4gICAgXCJTWlwiLFxuICAgIFwiVENcIixcbiAgICBcIlREXCIsXG4gICAgXCJURlwiLFxuICAgIFwiVEdcIixcbiAgICBcIlRIXCIsXG4gICAgXCJUSlwiLFxuICAgIFwiVEtcIixcbiAgICBcIlRMXCIsXG4gICAgXCJUTVwiLFxuICAgIFwiVE5cIixcbiAgICBcIlRPXCIsXG4gICAgXCJUUlwiLFxuICAgIFwiVFRcIixcbiAgICBcIlRWXCIsXG4gICAgXCJUV1wiLFxuICAgIFwiVFpcIixcbiAgICBcIlVBXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiVU1cIixcbiAgICBcIlVTXCIsXG4gICAgXCJVWVwiLFxuICAgIFwiVVpcIixcbiAgICBcIlZBXCIsXG4gICAgXCJWQ1wiLFxuICAgIFwiVkVcIixcbiAgICBcIlZHXCIsXG4gICAgXCJWSVwiLFxuICAgIFwiVk5cIixcbiAgICBcIlZVXCIsXG4gICAgXCJXRlwiLFxuICAgIFwiV1NcIixcbiAgICBcIllFXCIsXG4gICAgXCJZVFwiLFxuICAgIFwiWkFcIixcbiAgICBcIlpNXCIsXG4gICAgXCJaV1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQWxsZXlcIixcbiAgICBcIkF2ZW51ZVwiLFxuICAgIFwiQnJhbmNoXCIsXG4gICAgXCJCcmlkZ2VcIixcbiAgICBcIkJyb29rXCIsXG4gICAgXCJCcm9va3NcIixcbiAgICBcIkJ1cmdcIixcbiAgICBcIkJ1cmdzXCIsXG4gICAgXCJCeXBhc3NcIixcbiAgICBcIkNhbXBcIixcbiAgICBcIkNhbnlvblwiLFxuICAgIFwiQ2FwZVwiLFxuICAgIFwiQ2F1c2V3YXlcIixcbiAgICBcIkNlbnRlclwiLFxuICAgIFwiQ2VudGVyc1wiLFxuICAgIFwiQ2lyY2xlXCIsXG4gICAgXCJDaXJjbGVzXCIsXG4gICAgXCJDbGlmZlwiLFxuICAgIFwiQ2xpZmZzXCIsXG4gICAgXCJDbHViXCIsXG4gICAgXCJDb21tb25cIixcbiAgICBcIkNvcm5lclwiLFxuICAgIFwiQ29ybmVyc1wiLFxuICAgIFwiQ291cnNlXCIsXG4gICAgXCJDb3VydFwiLFxuICAgIFwiQ291cnRzXCIsXG4gICAgXCJDb3ZlXCIsXG4gICAgXCJDb3Zlc1wiLFxuICAgIFwiQ3JlZWtcIixcbiAgICBcIkNyZXNjZW50XCIsXG4gICAgXCJDcmVzdFwiLFxuICAgIFwiQ3Jvc3NpbmdcIixcbiAgICBcIkNyb3Nzcm9hZFwiLFxuICAgIFwiQ3VydmVcIixcbiAgICBcIkRhbGVcIixcbiAgICBcIkRhbVwiLFxuICAgIFwiRGl2aWRlXCIsXG4gICAgXCJEcml2ZVwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkRyaXZlc1wiLFxuICAgIFwiRXN0YXRlXCIsXG4gICAgXCJFc3RhdGVzXCIsXG4gICAgXCJFeHByZXNzd2F5XCIsXG4gICAgXCJFeHRlbnNpb25cIixcbiAgICBcIkV4dGVuc2lvbnNcIixcbiAgICBcIkZhbGxcIixcbiAgICBcIkZhbGxzXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmllbGRcIixcbiAgICBcIkZpZWxkc1wiLFxuICAgIFwiRmxhdFwiLFxuICAgIFwiRmxhdHNcIixcbiAgICBcIkZvcmRcIixcbiAgICBcIkZvcmRzXCIsXG4gICAgXCJGb3Jlc3RcIixcbiAgICBcIkZvcmdlXCIsXG4gICAgXCJGb3JnZXNcIixcbiAgICBcIkZvcmtcIixcbiAgICBcIkZvcmtzXCIsXG4gICAgXCJGb3J0XCIsXG4gICAgXCJGcmVld2F5XCIsXG4gICAgXCJHYXJkZW5cIixcbiAgICBcIkdhcmRlbnNcIixcbiAgICBcIkdhdGV3YXlcIixcbiAgICBcIkdsZW5cIixcbiAgICBcIkdsZW5zXCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZW5zXCIsXG4gICAgXCJHcm92ZVwiLFxuICAgIFwiR3JvdmVzXCIsXG4gICAgXCJIYXJib3JcIixcbiAgICBcIkhhcmJvcnNcIixcbiAgICBcIkhhdmVuXCIsXG4gICAgXCJIZWlnaHRzXCIsXG4gICAgXCJIaWdod2F5XCIsXG4gICAgXCJIaWxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSG9sbG93XCIsXG4gICAgXCJJbmxldFwiLFxuICAgIFwiSW5sZXRcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJJc2xhbmRzXCIsXG4gICAgXCJJc2xhbmRzXCIsXG4gICAgXCJJc2xlXCIsXG4gICAgXCJJc2xlXCIsXG4gICAgXCJKdW5jdGlvblwiLFxuICAgIFwiSnVuY3Rpb25zXCIsXG4gICAgXCJLZXlcIixcbiAgICBcIktleXNcIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJLbm9sbHNcIixcbiAgICBcIkxha2VcIixcbiAgICBcIkxha2VzXCIsXG4gICAgXCJMYW5kXCIsXG4gICAgXCJMYW5kaW5nXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMaWdodFwiLFxuICAgIFwiTGlnaHRzXCIsXG4gICAgXCJMb2FmXCIsXG4gICAgXCJMb2NrXCIsXG4gICAgXCJMb2Nrc1wiLFxuICAgIFwiTG9ja3NcIixcbiAgICBcIkxvZGdlXCIsXG4gICAgXCJMb2RnZVwiLFxuICAgIFwiTG9vcFwiLFxuICAgIFwiTWFsbFwiLFxuICAgIFwiTWFub3JcIixcbiAgICBcIk1hbm9yc1wiLFxuICAgIFwiTWVhZG93XCIsXG4gICAgXCJNZWFkb3dzXCIsXG4gICAgXCJNZXdzXCIsXG4gICAgXCJNaWxsXCIsXG4gICAgXCJNaWxsc1wiLFxuICAgIFwiTWlzc2lvblwiLFxuICAgIFwiTWlzc2lvblwiLFxuICAgIFwiTW90b3J3YXlcIixcbiAgICBcIk1vdW50XCIsXG4gICAgXCJNb3VudGFpblwiLFxuICAgIFwiTW91bnRhaW5cIixcbiAgICBcIk1vdW50YWluc1wiLFxuICAgIFwiTW91bnRhaW5zXCIsXG4gICAgXCJOZWNrXCIsXG4gICAgXCJPcmNoYXJkXCIsXG4gICAgXCJPdmFsXCIsXG4gICAgXCJPdmVycGFzc1wiLFxuICAgIFwiUGFya1wiLFxuICAgIFwiUGFya3NcIixcbiAgICBcIlBhcmt3YXlcIixcbiAgICBcIlBhcmt3YXlzXCIsXG4gICAgXCJQYXNzXCIsXG4gICAgXCJQYXNzYWdlXCIsXG4gICAgXCJQYXRoXCIsXG4gICAgXCJQaWtlXCIsXG4gICAgXCJQaW5lXCIsXG4gICAgXCJQaW5lc1wiLFxuICAgIFwiUGxhY2VcIixcbiAgICBcIlBsYWluXCIsXG4gICAgXCJQbGFpbnNcIixcbiAgICBcIlBsYWluc1wiLFxuICAgIFwiUGxhemFcIixcbiAgICBcIlBsYXphXCIsXG4gICAgXCJQb2ludFwiLFxuICAgIFwiUG9pbnRzXCIsXG4gICAgXCJQb3J0XCIsXG4gICAgXCJQb3J0XCIsXG4gICAgXCJQb3J0c1wiLFxuICAgIFwiUG9ydHNcIixcbiAgICBcIlByYWlyaWVcIixcbiAgICBcIlByYWlyaWVcIixcbiAgICBcIlJhZGlhbFwiLFxuICAgIFwiUmFtcFwiLFxuICAgIFwiUmFuY2hcIixcbiAgICBcIlJhcGlkXCIsXG4gICAgXCJSYXBpZHNcIixcbiAgICBcIlJlc3RcIixcbiAgICBcIlJpZGdlXCIsXG4gICAgXCJSaWRnZXNcIixcbiAgICBcIlJpdmVyXCIsXG4gICAgXCJSb2FkXCIsXG4gICAgXCJSb2FkXCIsXG4gICAgXCJSb2Fkc1wiLFxuICAgIFwiUm9hZHNcIixcbiAgICBcIlJvdXRlXCIsXG4gICAgXCJSb3dcIixcbiAgICBcIlJ1ZVwiLFxuICAgIFwiUnVuXCIsXG4gICAgXCJTaG9hbFwiLFxuICAgIFwiU2hvYWxzXCIsXG4gICAgXCJTaG9yZVwiLFxuICAgIFwiU2hvcmVzXCIsXG4gICAgXCJTa3l3YXlcIixcbiAgICBcIlNwcmluZ1wiLFxuICAgIFwiU3ByaW5nc1wiLFxuICAgIFwiU3ByaW5nc1wiLFxuICAgIFwiU3B1clwiLFxuICAgIFwiU3B1cnNcIixcbiAgICBcIlNxdWFyZVwiLFxuICAgIFwiU3F1YXJlXCIsXG4gICAgXCJTcXVhcmVzXCIsXG4gICAgXCJTcXVhcmVzXCIsXG4gICAgXCJTdGF0aW9uXCIsXG4gICAgXCJTdGF0aW9uXCIsXG4gICAgXCJTdHJhdmVudWVcIixcbiAgICBcIlN0cmF2ZW51ZVwiLFxuICAgIFwiU3RyZWFtXCIsXG4gICAgXCJTdHJlYW1cIixcbiAgICBcIlN0cmVldFwiLFxuICAgIFwiU3RyZWV0XCIsXG4gICAgXCJTdHJlZXRzXCIsXG4gICAgXCJTdW1taXRcIixcbiAgICBcIlN1bW1pdFwiLFxuICAgIFwiVGVycmFjZVwiLFxuICAgIFwiVGhyb3VnaHdheVwiLFxuICAgIFwiVHJhY2VcIixcbiAgICBcIlRyYWNrXCIsXG4gICAgXCJUcmFmZmljd2F5XCIsXG4gICAgXCJUcmFpbFwiLFxuICAgIFwiVHJhaWxcIixcbiAgICBcIlR1bm5lbFwiLFxuICAgIFwiVHVubmVsXCIsXG4gICAgXCJUdXJucGlrZVwiLFxuICAgIFwiVHVybnBpa2VcIixcbiAgICBcIlVuZGVycGFzc1wiLFxuICAgIFwiVW5pb25cIixcbiAgICBcIlVuaW9uc1wiLFxuICAgIFwiVmFsbGV5XCIsXG4gICAgXCJWYWxsZXlzXCIsXG4gICAgXCJWaWFcIixcbiAgICBcIlZpYWR1Y3RcIixcbiAgICBcIlZpZXdcIixcbiAgICBcIlZpZXdzXCIsXG4gICAgXCJWaWxsYWdlXCIsXG4gICAgXCJWaWxsYWdlXCIsXG4gICAgXCJWaWxsYWdlc1wiLFxuICAgIFwiVmlsbGVcIixcbiAgICBcIlZpc3RhXCIsXG4gICAgXCJWaXN0YVwiLFxuICAgIFwiV2Fsa1wiLFxuICAgIFwiV2Fsa3NcIixcbiAgICBcIldhbGxcIixcbiAgICBcIldheVwiLFxuICAgIFwiV2F5c1wiLFxuICAgIFwiV2VsbFwiLFxuICAgIFwiV2VsbHNcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJTdWl0ZSAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjIy0jIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZV9ieV9zdGF0ZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyMtIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxhYmFtYVwiLFxuICAgIFwiQWxhc2thXCIsXG4gICAgXCJBcml6b25hXCIsXG4gICAgXCJBcmthbnNhc1wiLFxuICAgIFwiQ2FsaWZvcm5pYVwiLFxuICAgIFwiQ29sb3JhZG9cIixcbiAgICBcIkNvbm5lY3RpY3V0XCIsXG4gICAgXCJEZWxhd2FyZVwiLFxuICAgIFwiRmxvcmlkYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiSGF3YWlpXCIsXG4gICAgXCJJZGFob1wiLFxuICAgIFwiSWxsaW5vaXNcIixcbiAgICBcIkluZGlhbmFcIixcbiAgICBcIklvd2FcIixcbiAgICBcIkthbnNhc1wiLFxuICAgIFwiS2VudHVja3lcIixcbiAgICBcIkxvdWlzaWFuYVwiLFxuICAgIFwiTWFpbmVcIixcbiAgICBcIk1hcnlsYW5kXCIsXG4gICAgXCJNYXNzYWNodXNldHRzXCIsXG4gICAgXCJNaWNoaWdhblwiLFxuICAgIFwiTWlubmVzb3RhXCIsXG4gICAgXCJNaXNzaXNzaXBwaVwiLFxuICAgIFwiTWlzc291cmlcIixcbiAgICBcIk1vbnRhbmFcIixcbiAgICBcIk5lYnJhc2thXCIsXG4gICAgXCJOZXZhZGFcIixcbiAgICBcIk5ldyBIYW1wc2hpcmVcIixcbiAgICBcIk5ldyBKZXJzZXlcIixcbiAgICBcIk5ldyBNZXhpY29cIixcbiAgICBcIk5ldyBZb3JrXCIsXG4gICAgXCJOb3J0aCBDYXJvbGluYVwiLFxuICAgIFwiTm9ydGggRGFrb3RhXCIsXG4gICAgXCJPaGlvXCIsXG4gICAgXCJPa2xhaG9tYVwiLFxuICAgIFwiT3JlZ29uXCIsXG4gICAgXCJQZW5uc3lsdmFuaWFcIixcbiAgICBcIlJob2RlIElzbGFuZFwiLFxuICAgIFwiU291dGggQ2Fyb2xpbmFcIixcbiAgICBcIlNvdXRoIERha290YVwiLFxuICAgIFwiVGVubmVzc2VlXCIsXG4gICAgXCJUZXhhc1wiLFxuICAgIFwiVXRhaFwiLFxuICAgIFwiVmVybW9udFwiLFxuICAgIFwiVmlyZ2luaWFcIixcbiAgICBcIldhc2hpbmd0b25cIixcbiAgICBcIldlc3QgVmlyZ2luaWFcIixcbiAgICBcIldpc2NvbnNpblwiLFxuICAgIFwiV3lvbWluZ1wiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBTFwiLFxuICAgIFwiQUtcIixcbiAgICBcIkFaXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQ0FcIixcbiAgICBcIkNPXCIsXG4gICAgXCJDVFwiLFxuICAgIFwiREVcIixcbiAgICBcIkZMXCIsXG4gICAgXCJHQVwiLFxuICAgIFwiSElcIixcbiAgICBcIklEXCIsXG4gICAgXCJJTFwiLFxuICAgIFwiSU5cIixcbiAgICBcIklBXCIsXG4gICAgXCJLU1wiLFxuICAgIFwiS1lcIixcbiAgICBcIkxBXCIsXG4gICAgXCJNRVwiLFxuICAgIFwiTURcIixcbiAgICBcIk1BXCIsXG4gICAgXCJNSVwiLFxuICAgIFwiTU5cIixcbiAgICBcIk1TXCIsXG4gICAgXCJNT1wiLFxuICAgIFwiTVRcIixcbiAgICBcIk5FXCIsXG4gICAgXCJOVlwiLFxuICAgIFwiTkhcIixcbiAgICBcIk5KXCIsXG4gICAgXCJOTVwiLFxuICAgIFwiTllcIixcbiAgICBcIk5DXCIsXG4gICAgXCJORFwiLFxuICAgIFwiT0hcIixcbiAgICBcIk9LXCIsXG4gICAgXCJPUlwiLFxuICAgIFwiUEFcIixcbiAgICBcIlJJXCIsXG4gICAgXCJTQ1wiLFxuICAgIFwiU0RcIixcbiAgICBcIlROXCIsXG4gICAgXCJUWFwiLFxuICAgIFwiVVRcIixcbiAgICBcIlZUXCIsXG4gICAgXCJWQVwiLFxuICAgIFwiV0FcIixcbiAgICBcIldWXCIsXG4gICAgXCJXSVwiLFxuICAgIFwiV1lcIlxuICBdLFxuICBcInRpbWVfem9uZVwiOiBbXG4gICAgXCJQYWNpZmljL01pZHdheVwiLFxuICAgIFwiUGFjaWZpYy9QYWdvX1BhZ29cIixcbiAgICBcIlBhY2lmaWMvSG9ub2x1bHVcIixcbiAgICBcIkFtZXJpY2EvSnVuZWF1XCIsXG4gICAgXCJBbWVyaWNhL0xvc19BbmdlbGVzXCIsXG4gICAgXCJBbWVyaWNhL1RpanVhbmFcIixcbiAgICBcIkFtZXJpY2EvRGVudmVyXCIsXG4gICAgXCJBbWVyaWNhL1Bob2VuaXhcIixcbiAgICBcIkFtZXJpY2EvQ2hpaHVhaHVhXCIsXG4gICAgXCJBbWVyaWNhL01hemF0bGFuXCIsXG4gICAgXCJBbWVyaWNhL0NoaWNhZ29cIixcbiAgICBcIkFtZXJpY2EvUmVnaW5hXCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01vbnRlcnJleVwiLFxuICAgIFwiQW1lcmljYS9HdWF0ZW1hbGFcIixcbiAgICBcIkFtZXJpY2EvTmV3X1lvcmtcIixcbiAgICBcIkFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXNcIixcbiAgICBcIkFtZXJpY2EvQm9nb3RhXCIsXG4gICAgXCJBbWVyaWNhL0xpbWFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9IYWxpZmF4XCIsXG4gICAgXCJBbWVyaWNhL0NhcmFjYXNcIixcbiAgICBcIkFtZXJpY2EvTGFfUGF6XCIsXG4gICAgXCJBbWVyaWNhL1NhbnRpYWdvXCIsXG4gICAgXCJBbWVyaWNhL1N0X0pvaG5zXCIsXG4gICAgXCJBbWVyaWNhL1Nhb19QYXVsb1wiLFxuICAgIFwiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzXCIsXG4gICAgXCJBbWVyaWNhL0d1eWFuYVwiLFxuICAgIFwiQW1lcmljYS9Hb2R0aGFiXCIsXG4gICAgXCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhXCIsXG4gICAgXCJBdGxhbnRpYy9Bem9yZXNcIixcbiAgICBcIkF0bGFudGljL0NhcGVfVmVyZGVcIixcbiAgICBcIkV1cm9wZS9EdWJsaW5cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkV1cm9wZS9MaXNib25cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkFmcmljYS9DYXNhYmxhbmNhXCIsXG4gICAgXCJBZnJpY2EvTW9ucm92aWFcIixcbiAgICBcIkV0Yy9VVENcIixcbiAgICBcIkV1cm9wZS9CZWxncmFkZVwiLFxuICAgIFwiRXVyb3BlL0JyYXRpc2xhdmFcIixcbiAgICBcIkV1cm9wZS9CdWRhcGVzdFwiLFxuICAgIFwiRXVyb3BlL0xqdWJsamFuYVwiLFxuICAgIFwiRXVyb3BlL1ByYWd1ZVwiLFxuICAgIFwiRXVyb3BlL1NhcmFqZXZvXCIsXG4gICAgXCJFdXJvcGUvU2tvcGplXCIsXG4gICAgXCJFdXJvcGUvV2Fyc2F3XCIsXG4gICAgXCJFdXJvcGUvWmFncmViXCIsXG4gICAgXCJFdXJvcGUvQnJ1c3NlbHNcIixcbiAgICBcIkV1cm9wZS9Db3BlbmhhZ2VuXCIsXG4gICAgXCJFdXJvcGUvTWFkcmlkXCIsXG4gICAgXCJFdXJvcGUvUGFyaXNcIixcbiAgICBcIkV1cm9wZS9BbXN0ZXJkYW1cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9Sb21lXCIsXG4gICAgXCJFdXJvcGUvU3RvY2tob2xtXCIsXG4gICAgXCJFdXJvcGUvVmllbm5hXCIsXG4gICAgXCJBZnJpY2EvQWxnaWVyc1wiLFxuICAgIFwiRXVyb3BlL0J1Y2hhcmVzdFwiLFxuICAgIFwiQWZyaWNhL0NhaXJvXCIsXG4gICAgXCJFdXJvcGUvSGVsc2lua2lcIixcbiAgICBcIkV1cm9wZS9LaWV2XCIsXG4gICAgXCJFdXJvcGUvUmlnYVwiLFxuICAgIFwiRXVyb3BlL1NvZmlhXCIsXG4gICAgXCJFdXJvcGUvVGFsbGlublwiLFxuICAgIFwiRXVyb3BlL1ZpbG5pdXNcIixcbiAgICBcIkV1cm9wZS9BdGhlbnNcIixcbiAgICBcIkV1cm9wZS9Jc3RhbmJ1bFwiLFxuICAgIFwiRXVyb3BlL01pbnNrXCIsXG4gICAgXCJBc2lhL0plcnVzYWxlbVwiLFxuICAgIFwiQWZyaWNhL0hhcmFyZVwiLFxuICAgIFwiQWZyaWNhL0pvaGFubmVzYnVyZ1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiQXNpYS9LdXdhaXRcIixcbiAgICBcIkFzaWEvUml5YWRoXCIsXG4gICAgXCJBZnJpY2EvTmFpcm9iaVwiLFxuICAgIFwiQXNpYS9CYWdoZGFkXCIsXG4gICAgXCJBc2lhL1RlaHJhblwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvTXVzY2F0XCIsXG4gICAgXCJBc2lhL0Jha3VcIixcbiAgICBcIkFzaWEvVGJpbGlzaVwiLFxuICAgIFwiQXNpYS9ZZXJldmFuXCIsXG4gICAgXCJBc2lhL0thYnVsXCIsXG4gICAgXCJBc2lhL1lla2F0ZXJpbmJ1cmdcIixcbiAgICBcIkFzaWEvS2FyYWNoaVwiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL1Rhc2hrZW50XCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS2F0aG1hbmR1XCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0NvbG9tYm9cIixcbiAgICBcIkFzaWEvQWxtYXR5XCIsXG4gICAgXCJBc2lhL05vdm9zaWJpcnNrXCIsXG4gICAgXCJBc2lhL1Jhbmdvb25cIixcbiAgICBcIkFzaWEvQmFuZ2tva1wiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0pha2FydGFcIixcbiAgICBcIkFzaWEvS3Jhc25veWFyc2tcIixcbiAgICBcIkFzaWEvU2hhbmdoYWlcIixcbiAgICBcIkFzaWEvQ2hvbmdxaW5nXCIsXG4gICAgXCJBc2lhL0hvbmdfS29uZ1wiLFxuICAgIFwiQXNpYS9VcnVtcWlcIixcbiAgICBcIkFzaWEvS3VhbGFfTHVtcHVyXCIsXG4gICAgXCJBc2lhL1NpbmdhcG9yZVwiLFxuICAgIFwiQXNpYS9UYWlwZWlcIixcbiAgICBcIkF1c3RyYWxpYS9QZXJ0aFwiLFxuICAgIFwiQXNpYS9Jcmt1dHNrXCIsXG4gICAgXCJBc2lhL1VsYWFuYmFhdGFyXCIsXG4gICAgXCJBc2lhL1Nlb3VsXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1lha3V0c2tcIixcbiAgICBcIkF1c3RyYWxpYS9EYXJ3aW5cIixcbiAgICBcIkF1c3RyYWxpYS9BZGVsYWlkZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL1N5ZG5leVwiLFxuICAgIFwiQXVzdHJhbGlhL0JyaXNiYW5lXCIsXG4gICAgXCJBdXN0cmFsaWEvSG9iYXJ0XCIsXG4gICAgXCJBc2lhL1ZsYWRpdm9zdG9rXCIsXG4gICAgXCJQYWNpZmljL0d1YW1cIixcbiAgICBcIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5XCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiUGFjaWZpYy9Ob3VtZWFcIixcbiAgICBcIlBhY2lmaWMvRmlqaVwiLFxuICAgIFwiQXNpYS9LYW1jaGF0a2FcIixcbiAgICBcIlBhY2lmaWMvTWFqdXJvXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL1RvbmdhdGFwdVwiLFxuICAgIFwiUGFjaWZpYy9GYWthb2ZvXCIsXG4gICAgXCJQYWNpZmljL0FwaWFcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSAje3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje2J1aWxkaW5nX251bWJlcn0gI3tzdHJlZXRfbmFtZX1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2FcIlxuICBdXG59O1xuZW4uY3JlZGl0X2NhcmQgPSB7XG4gIFwidmlzYVwiOiBbXG4gICAgXCIvNCMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi80IyMjLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwibWFzdGVyY2FyZFwiOiBbXG4gICAgXCIvNVsxLTVdIyMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjc3MS04OSMjLSMjIyMtIyMjTC9cIlxuICBdLFxuICBcImRpc2NvdmVyXCI6IFtcbiAgICBcIi82MDExLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY1IyMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjRbNC05XSMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjAxMS02MiMjLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY1IyMtNjIjIy0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi82NFs0LTldIy02MiMjLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwiYW1lcmljYW5fZXhwcmVzc1wiOiBbXG4gICAgXCIvMzQjIy0jIyMjIyMtIyMjI0wvXCIsXG4gICAgXCIvMzcjIy0jIyMjIyMtIyMjI0wvXCJcbiAgXSxcbiAgXCJkaW5lcnNfY2x1YlwiOiBbXG4gICAgXCIvMzBbMC01XSMtIyMjIyMjLSMjI0wvXCIsXG4gICAgXCIvMzY4Iy0jIyMjIyMtIyMjTC9cIlxuICBdLFxuICBcImpjYlwiOiBbXG4gICAgXCIvMzUyOC0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi8zNTI5LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzM1WzMtOF0jLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwic3dpdGNoXCI6IFtcbiAgICBcIi82NzU5LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY3NTktIyMjIy0jIyMjLSMjIyMtI0wvXCIsXG4gICAgXCIvNjc1OS0jIyMjLSMjIyMtIyMjIy0jI0wvXCJcbiAgXSxcbiAgXCJzb2xvXCI6IFtcbiAgICBcIi82NzY3LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY3NjctIyMjIy0jIyMjLSMjIyMtI0wvXCIsXG4gICAgXCIvNjc2Ny0jIyMjLSMjIyMtIyMjIy0jI0wvXCJcbiAgXSxcbiAgXCJkYW5rb3J0XCI6IFwiLzUwMTktIyMjIy0jIyMjLSMjI0wvXCIsXG4gIFwibWFlc3Ryb1wiOiBbXG4gICAgXCIvNTAjezksMTZ9TC9cIixcbiAgICBcIi81WzYtOF0jezksMTZ9TC9cIixcbiAgICBcIi81NiMjezksMTZ9TC9cIlxuICBdLFxuICBcImZvcmJydWdzZm9yZW5pbmdlblwiOiBcIi82MDA3LTIyIyMtIyMjIy0jIyNML1wiLFxuICBcImxhc2VyXCI6IFtcbiAgICBcIi82MzA0IyMjIyMjIyMjIyNML1wiLFxuICAgIFwiLzY3MDYjIyMjIyMjIyMjI0wvXCIsXG4gICAgXCIvNjc3MSMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi82NzA5IyMjIyMjIyMjIyNML1wiLFxuICAgIFwiLzYzMDQjIyMjIyMjIyN7NSw2fUwvXCIsXG4gICAgXCIvNjcwNiMjIyMjIyMjI3s1LDZ9TC9cIixcbiAgICBcIi82NzcxIyMjIyMjIyMjezUsNn1ML1wiLFxuICAgIFwiLzY3MDkjIyMjIyMjIyN7NSw2fUwvXCJcbiAgXVxufTtcbmVuLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkluY1wiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkxMQ1wiLFxuICAgIFwiR3JvdXBcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgXSxcbiAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjogW1xuICAgICAgXCJhYmlsaXR5XCIsXG4gICAgICBcImFjY2Vzc1wiLFxuICAgICAgXCJhZGFwdGVyXCIsXG4gICAgICBcImFsZ29yaXRobVwiLFxuICAgICAgXCJhbGxpYW5jZVwiLFxuICAgICAgXCJhbmFseXplclwiLFxuICAgICAgXCJhcHBsaWNhdGlvblwiLFxuICAgICAgXCJhcHByb2FjaFwiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVcIixcbiAgICAgIFwiYXJjaGl2ZVwiLFxuICAgICAgXCJhcnRpZmljaWFsIGludGVsbGlnZW5jZVwiLFxuICAgICAgXCJhcnJheVwiLFxuICAgICAgXCJhdHRpdHVkZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiYnVkZ2V0YXJ5IG1hbmFnZW1lbnRcIixcbiAgICAgIFwiY2FwYWJpbGl0eVwiLFxuICAgICAgXCJjYXBhY2l0eVwiLFxuICAgICAgXCJjaGFsbGVuZ2VcIixcbiAgICAgIFwiY2lyY3VpdFwiLFxuICAgICAgXCJjb2xsYWJvcmF0aW9uXCIsXG4gICAgICBcImNvbXBsZXhpdHlcIixcbiAgICAgIFwiY29uY2VwdFwiLFxuICAgICAgXCJjb25nbG9tZXJhdGlvblwiLFxuICAgICAgXCJjb250aW5nZW5jeVwiLFxuICAgICAgXCJjb3JlXCIsXG4gICAgICBcImN1c3RvbWVyIGxveWFsdHlcIixcbiAgICAgIFwiZGF0YWJhc2VcIixcbiAgICAgIFwiZGF0YS13YXJlaG91c2VcIixcbiAgICAgIFwiZGVmaW5pdGlvblwiLFxuICAgICAgXCJlbXVsYXRpb25cIixcbiAgICAgIFwiZW5jb2RpbmdcIixcbiAgICAgIFwiZW5jcnlwdGlvblwiLFxuICAgICAgXCJleHRyYW5ldFwiLFxuICAgICAgXCJmaXJtd2FyZVwiLFxuICAgICAgXCJmbGV4aWJpbGl0eVwiLFxuICAgICAgXCJmb2N1cyBncm91cFwiLFxuICAgICAgXCJmb3JlY2FzdFwiLFxuICAgICAgXCJmcmFtZVwiLFxuICAgICAgXCJmcmFtZXdvcmtcIixcbiAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcIkdyYXBoaWMgSW50ZXJmYWNlXCIsXG4gICAgICBcImdyb3Vwd2FyZVwiLFxuICAgICAgXCJHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VcIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiaGVscC1kZXNrXCIsXG4gICAgICBcImhpZXJhcmNoeVwiLFxuICAgICAgXCJodWJcIixcbiAgICAgIFwiaW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiaW5mby1tZWRpYXJpZXNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiaW5pdGlhdGl2ZVwiLFxuICAgICAgXCJpbnN0YWxsYXRpb25cIixcbiAgICAgIFwiaW5zdHJ1Y3Rpb24gc2V0XCIsXG4gICAgICBcImludGVyZmFjZVwiLFxuICAgICAgXCJpbnRlcm5ldCBzb2x1dGlvblwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJrbm93bGVkZ2UgdXNlclwiLFxuICAgICAgXCJrbm93bGVkZ2UgYmFzZVwiLFxuICAgICAgXCJsb2NhbCBhcmVhIG5ldHdvcmtcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwibWF0cmljZXNcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcIm1ldGhvZG9sb2d5XCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmF0aW9uXCIsXG4gICAgICBcIm1vZGVsXCIsXG4gICAgICBcIm1vZGVyYXRvclwiLFxuICAgICAgXCJtb25pdG9yaW5nXCIsXG4gICAgICBcIm1vcmF0b3JpdW1cIixcbiAgICAgIFwibmV1cmFsLW5ldFwiLFxuICAgICAgXCJvcGVuIGFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJvcGVuIHN5c3RlbVwiLFxuICAgICAgXCJvcmNoZXN0cmF0aW9uXCIsXG4gICAgICBcInBhcmFkaWdtXCIsXG4gICAgICBcInBhcmFsbGVsaXNtXCIsXG4gICAgICBcInBvbGljeVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwicHJpY2luZyBzdHJ1Y3R1cmVcIixcbiAgICAgIFwicHJvY2VzcyBpbXByb3ZlbWVudFwiLFxuICAgICAgXCJwcm9kdWN0XCIsXG4gICAgICBcInByb2R1Y3Rpdml0eVwiLFxuICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICBcInByb2plY3Rpb25cIixcbiAgICAgIFwicHJvdG9jb2xcIixcbiAgICAgIFwic2VjdXJlZCBsaW5lXCIsXG4gICAgICBcInNlcnZpY2UtZGVza1wiLFxuICAgICAgXCJzb2Z0d2FyZVwiLFxuICAgICAgXCJzb2x1dGlvblwiLFxuICAgICAgXCJzdGFuZGFyZGl6YXRpb25cIixcbiAgICAgIFwic3RyYXRlZ3lcIixcbiAgICAgIFwic3RydWN0dXJlXCIsXG4gICAgICBcInN1Y2Nlc3NcIixcbiAgICAgIFwic3VwZXJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VwcG9ydFwiLFxuICAgICAgXCJzeW5lcmd5XCIsXG4gICAgICBcInN5c3RlbSBlbmdpbmVcIixcbiAgICAgIFwidGFzay1mb3JjZVwiLFxuICAgICAgXCJ0aHJvdWdocHV0XCIsXG4gICAgICBcInRpbWUtZnJhbWVcIixcbiAgICAgIFwidG9vbHNldFwiLFxuICAgICAgXCJ1dGlsaXNhdGlvblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcIndvcmtmb3JjZVwiXG4gICBdLFxuICBcImJzX3ZlcmJcIjogW1xuICAgICAgXCJpbXBsZW1lbnRcIixcbiAgICAgIFwidXRpbGl6ZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVcIixcbiAgICAgIFwic3RyZWFtbGluZVwiLFxuICAgICAgXCJvcHRpbWl6ZVwiLFxuICAgICAgXCJldm9sdmVcIixcbiAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICBcImVtYnJhY2VcIixcbiAgICAgIFwiZW5hYmxlXCIsXG4gICAgICBcIm9yY2hlc3RyYXRlXCIsXG4gICAgICBcImxldmVyYWdlXCIsXG4gICAgICBcInJlaW52ZW50XCIsXG4gICAgICBcImFnZ3JlZ2F0ZVwiLFxuICAgICAgXCJhcmNoaXRlY3RcIixcbiAgICAgIFwiZW5oYW5jZVwiLFxuICAgICAgXCJpbmNlbnRpdml6ZVwiLFxuICAgICAgXCJtb3JwaFwiLFxuICAgICAgXCJlbXBvd2VyXCIsXG4gICAgICBcImVudmlzaW9uZWVyXCIsXG4gICAgICBcIm1vbmV0aXplXCIsXG4gICAgICBcImhhcm5lc3NcIixcbiAgICAgIFwiZmFjaWxpdGF0ZVwiLFxuICAgICAgXCJzZWl6ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwic3luZXJnaXplXCIsXG4gICAgICBcInN0cmF0ZWdpemVcIixcbiAgICAgIFwiZGVwbG95XCIsXG4gICAgICBcImJyYW5kXCIsXG4gICAgICBcImdyb3dcIixcbiAgICAgIFwidGFyZ2V0XCIsXG4gICAgICBcInN5bmRpY2F0ZVwiLFxuICAgICAgXCJzeW50aGVzaXplXCIsXG4gICAgICBcImRlbGl2ZXJcIixcbiAgICAgIFwibWVzaFwiLFxuICAgICAgXCJpbmN1YmF0ZVwiLFxuICAgICAgXCJlbmdhZ2VcIixcbiAgICAgIFwibWF4aW1pemVcIixcbiAgICAgIFwiYmVuY2htYXJrXCIsXG4gICAgICBcImV4cGVkaXRlXCIsXG4gICAgICBcInJlaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcIndoaXRlYm9hcmRcIixcbiAgICAgIFwidmlzdWFsaXplXCIsXG4gICAgICBcInJlcHVycG9zZVwiLFxuICAgICAgXCJpbm5vdmF0ZVwiLFxuICAgICAgXCJzY2FsZVwiLFxuICAgICAgXCJ1bmxlYXNoXCIsXG4gICAgICBcImRyaXZlXCIsXG4gICAgICBcImV4dGVuZFwiLFxuICAgICAgXCJlbmdpbmVlclwiLFxuICAgICAgXCJyZXZvbHV0aW9uaXplXCIsXG4gICAgICBcImdlbmVyYXRlXCIsXG4gICAgICBcImV4cGxvaXRcIixcbiAgICAgIFwidHJhbnNpdGlvblwiLFxuICAgICAgXCJlLWVuYWJsZVwiLFxuICAgICAgXCJpdGVyYXRlXCIsXG4gICAgICBcImN1bHRpdmF0ZVwiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwicHJvZHVjdGl6ZVwiLFxuICAgICAgXCJyZWRlZmluZVwiLFxuICAgICAgXCJyZWNvbnRleHR1YWxpemVcIlxuICAgIF0sXG4gICAgXCJic19hZGplY3RpdmVcIjogW1xuICAgICAgXCJjbGlja3MtYW5kLW1vcnRhclwiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ2ZXJ0aWNhbFwiLFxuICAgICAgXCJwcm9hY3RpdmVcIixcbiAgICAgIFwicm9idXN0XCIsXG4gICAgICBcInJldm9sdXRpb25hcnlcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwibGVhZGluZy1lZGdlXCIsXG4gICAgICBcImlubm92YXRpdmVcIixcbiAgICAgIFwiaW50dWl0aXZlXCIsXG4gICAgICBcInN0cmF0ZWdpY1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwic3RpY2t5XCIsXG4gICAgICBcIm9uZS10by1vbmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJlbmQtdG8tZW5kXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyXCIsXG4gICAgICBcImZyaWN0aW9ubGVzc1wiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZpcmFsXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiMjQvMzY1XCIsXG4gICAgICBcImJlc3Qtb2YtYnJlZWRcIixcbiAgICAgIFwia2lsbGVyXCIsXG4gICAgICBcIm1hZ25ldGljXCIsXG4gICAgICBcImJsZWVkaW5nLWVkZ2VcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiZG90LWNvbVwiLFxuICAgICAgXCJzZXh5XCIsXG4gICAgICBcImJhY2stZW5kXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJlZmZpY2llbnRcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGVkXCIsXG4gICAgICBcInNlYW1sZXNzXCIsXG4gICAgICBcImV4dGVuc2libGVcIixcbiAgICAgIFwidHVybi1rZXlcIixcbiAgICAgIFwid29ybGQtY2xhc3NcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiY3Jvc3MtbWVkaWFcIixcbiAgICAgIFwic3luZXJnaXN0aWNcIixcbiAgICAgIFwiYnJpY2tzLWFuZC1jbGlja3NcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInVzZXItY2VudHJpY1wiLFxuICAgICAgXCJ2aXNpb25hcnlcIixcbiAgICAgIFwiY3VzdG9taXplZFwiLFxuICAgICAgXCJ1YmlxdWl0b3VzXCIsXG4gICAgICBcInBsdWctYW5kLXBsYXlcIixcbiAgICAgIFwiY29sbGFib3JhdGl2ZVwiLFxuICAgICAgXCJjb21wZWxsaW5nXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcInJpY2hcIlxuICAgIF0sXG4gICAgXCJic19ub3VuXCI6IFtcbiAgICAgIFwic3luZXJnaWVzXCIsXG4gICAgICBcIndlYi1yZWFkaW5lc3NcIixcbiAgICAgIFwicGFyYWRpZ21zXCIsXG4gICAgICBcIm1hcmtldHNcIixcbiAgICAgIFwicGFydG5lcnNoaXBzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlc1wiLFxuICAgICAgXCJwbGF0Zm9ybXNcIixcbiAgICAgIFwiaW5pdGlhdGl2ZXNcIixcbiAgICAgIFwiY2hhbm5lbHNcIixcbiAgICAgIFwiZXllYmFsbHNcIixcbiAgICAgIFwiY29tbXVuaXRpZXNcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV0aW9uc1wiLFxuICAgICAgXCJlLXRhaWxlcnNcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJhY3Rpb24taXRlbXNcIixcbiAgICAgIFwicG9ydGFsc1wiLFxuICAgICAgXCJuaWNoZXNcIixcbiAgICAgIFwidGVjaG5vbG9naWVzXCIsXG4gICAgICBcImNvbnRlbnRcIixcbiAgICAgIFwidm9ydGFsc1wiLFxuICAgICAgXCJzdXBwbHktY2hhaW5zXCIsXG4gICAgICBcImNvbnZlcmdlbmNlXCIsXG4gICAgICBcInJlbGF0aW9uc2hpcHNcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlc1wiLFxuICAgICAgXCJpbnRlcmZhY2VzXCIsXG4gICAgICBcImUtbWFya2V0c1wiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInN5c3RlbXNcIixcbiAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICBcImluZm9tZWRpYXJpZXNcIixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm1pbmRzaGFyZVwiLFxuICAgICAgXCJkZWxpdmVyYWJsZXNcIixcbiAgICAgIFwidXNlcnNcIixcbiAgICAgIFwic2NoZW1hc1wiLFxuICAgICAgXCJuZXR3b3Jrc1wiLFxuICAgICAgXCJhcHBsaWNhdGlvbnNcIixcbiAgICAgIFwibWV0cmljc1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJleHBlcmllbmNlc1wiLFxuICAgICAgXCJ3ZWIgc2VydmljZXNcIixcbiAgICAgIFwibWV0aG9kb2xvZ2llc1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gYW5kICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmVuLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5cbi8vQWxsIHRoaXMgYXZhdGFyIGhhdmUgYmVlbiBhdXRob3JpemVkIGJ5IGl0cyBhd2Vzb21lIHVzZXJzIHRvIGJlIHVzZSBvbiBsaXZlIHdlYnNpdGVzIChub3QganVzdCBtb2NrdXBzKVxuLy9Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0OiBodHRwOi8vdWlmYWNlcy5jb20vYXV0aG9yaXplZFxudmFyIGF2YXRhclVyaSA9IFtcImphcmphbi8xMjguanBnXCIsXG4gICAgXCJtYWhkaWYvMTI4LmpwZ1wiLFxuICAgIFwic3ByYXlhZ2EvMTI4LmpwZ1wiLFxuICAgIFwicnV6aW5hdi8xMjguanBnXCIsXG4gICAgXCJTa3loYXJ0bWFuLzEyOC5qcGdcIixcbiAgICBcIm1vc2Nvei8xMjguanBnXCIsXG4gICAgXCJrdXJhZmlyZS8xMjguanBnXCIsXG4gICAgXCI5MWJpbGFsLzEyOC5qcGdcIixcbiAgICBcImlnb3JnYXJ5YmFsZGkvMTI4LmpwZ1wiLFxuICAgIFwiY2FsZWJvZ2Rlbi8xMjguanBnXCIsXG4gICAgXCJtYWx5a2hpbnYvMTI4LmpwZ1wiLFxuICAgIFwiam9lbGhlbGluLzEyOC5qcGdcIixcbiAgICBcImt1c2hzb2xpdGFyeS8xMjguanBnXCIsXG4gICAgXCJjb3JleXdlYi8xMjguanBnXCIsXG4gICAgXCJzbm93c2hhZGUvMTI4LmpwZ1wiLFxuICAgIFwiYXJldXMvMTI4LmpwZ1wiLFxuICAgIFwiaG9sZGVud2ViLzEyOC5qcGdcIixcbiAgICBcImhleWltanVhbmkvMTI4LmpwZ1wiLFxuICAgIFwiZW52ZXgvMTI4LmpwZ1wiLFxuICAgIFwidW50ZXJkcmVodC8xMjguanBnXCIsXG4gICAgXCJjb2xsZWdlbWFuLzEyOC5qcGdcIixcbiAgICBcInBlZWpmYW5jaGVyLzEyOC5qcGdcIixcbiAgICBcImFuZHlpc29ubGluZS8xMjguanBnXCIsXG4gICAgXCJ1bHRyYWdleC8xMjguanBnXCIsXG4gICAgXCJmdWNrX3lvdV90d28vMTI4LmpwZ1wiLFxuICAgIFwiYWRlbGxlY2hhcmxlcy8xMjguanBnXCIsXG4gICAgXCJhdGVuZXVwb3B1bGFyLzEyOC5qcGdcIixcbiAgICBcImFobWV0YWxwYmFsa2FuLzEyOC5qcGdcIixcbiAgICBcIlN0aWV2aXVzLzEyOC5qcGdcIixcbiAgICBcImtlcmVtLzEyOC5qcGdcIixcbiAgICBcIm9zdmFsZGFzLzEyOC5qcGdcIixcbiAgICBcImFuZ2VsY2ViYWxsb3MvMTI4LmpwZ1wiLFxuICAgIFwidGhpZXJyeWtvYmxlbnR6LzEyOC5qcGdcIixcbiAgICBcInBldGVybGFuZHQvMTI4LmpwZ1wiLFxuICAgIFwiY2F0YXJpbm8vMTI4LmpwZ1wiLFxuICAgIFwid3IvMTI4LmpwZ1wiLFxuICAgIFwid2VnbG92LzEyOC5qcGdcIixcbiAgICBcImJyYW5kY2xheS8xMjguanBnXCIsXG4gICAgXCJmbGFtZV9rYWl6YXIvMTI4LmpwZ1wiLFxuICAgIFwiYWhtZXRzdWxlay8xMjguanBnXCIsXG4gICAgXCJuaWNvbGFzZm9sbGlvdC8xMjguanBnXCIsXG4gICAgXCJqYXlyb2JpbnNvbi8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3Jlcml4b24vMTI4LmpwZ1wiLFxuICAgIFwia29sYWdlLzEyOC5qcGdcIixcbiAgICBcIm1pY2h6ZW4vMTI4LmpwZ1wiLFxuICAgIFwibWFya2plbmtpbnMvMTI4LmpwZ1wiLFxuICAgIFwibmljb2xhaV9sYXJzZW4vMTI4LmpwZ1wiLFxuICAgIFwiZ3QvMTI4LmpwZ1wiLFxuICAgIFwibm94ZHppbmUvMTI4LmpwZ1wiLFxuICAgIFwiYWxhZ29vbi8xMjguanBnXCIsXG4gICAgXCJpZGlvdC8xMjguanBnXCIsXG4gICAgXCJtaXprby8xMjguanBnXCIsXG4gICAgXCJjaGFkZW5nbGUvMTI4LmpwZ1wiLFxuICAgIFwibXV0bHU4Mi8xMjguanBnXCIsXG4gICAgXCJzaW1vYmVuc28vMTI4LmpwZ1wiLFxuICAgIFwidm9jaW5vLzEyOC5qcGdcIixcbiAgICBcImd1aWlpcG9udGVzLzEyOC5qcGdcIixcbiAgICBcInNveWphdmkvMTI4LmpwZ1wiLFxuICAgIFwiam9zaGF1c3Rpbi8xMjguanBnXCIsXG4gICAgXCJ0b21hc2xhdS8xMjguanBnXCIsXG4gICAgXCJWaW5UaG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwiTWFuaWtSYXRoZWUvMTI4LmpwZ1wiLFxuICAgIFwibGFuZ2F0ZS8xMjguanBnXCIsXG4gICAgXCJjZW1zaGlkLzEyOC5qcGdcIixcbiAgICBcImxlZW11bnJvZS8xMjguanBnXCIsXG4gICAgXCJfc2hhaGVkay8xMjguanBnXCIsXG4gICAgXCJlbmRhLzEyOC5qcGdcIixcbiAgICBcIkJpbGxTS2VubmV5LzEyOC5qcGdcIixcbiAgICBcImRpdnlhLzEyOC5qcGdcIixcbiAgICBcImpvc2hoZW1zbGV5LzEyOC5qcGdcIixcbiAgICBcInNpbmRyZXNvcmh1cy8xMjguanBnXCIsXG4gICAgXCJzb2ZmZXMvMTI4LmpwZ1wiLFxuICAgIFwiOWxlc3NvbnMvMTI4LmpwZ1wiLFxuICAgIFwibGludXgyOS8xMjguanBnXCIsXG4gICAgXCJDaGFraW50b3NoLzEyOC5qcGdcIixcbiAgICBcImFuYWFtaS8xMjguanBnXCIsXG4gICAgXCJqb3JlaXJhLzEyOC5qcGdcIixcbiAgICBcInNoYWRlZWQ5LzEyOC5qcGdcIixcbiAgICBcInNjb3R0a2NsYXJrLzEyOC5qcGdcIixcbiAgICBcImplZGJyaWRnZXMvMTI4LmpwZ1wiLFxuICAgIFwic2FsbGVlZGVzaWduLzEyOC5qcGdcIixcbiAgICBcIm1hcmFrYXNpbmEvMTI4LmpwZ1wiLFxuICAgIFwiYXJpaWwvMTI4LmpwZ1wiLFxuICAgIFwiQnJpYW5QdXJraXNzLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxtYXJ0aW5oby8xMjguanBnXCIsXG4gICAgXCJidWJsaWVua28vMTI4LmpwZ1wiLFxuICAgIFwiZGV2YW5rb3NoYWwvMTI4LmpwZ1wiLFxuICAgIFwiWmFjaGFyeVpvcmJhcy8xMjguanBnXCIsXG4gICAgXCJ0aW1taWxsd29vZC8xMjguanBnXCIsXG4gICAgXCJqb3NodWFzb3J0aW5vLzEyOC5qcGdcIixcbiAgICBcImRhbWVubGVldHVya3MvMTI4LmpwZ1wiLFxuICAgIFwidG9tYXNfamFub3VzZWsvMTI4LmpwZ1wiLFxuICAgIFwiaGVycmhhYXNlLzEyOC5qcGdcIixcbiAgICBcIlJ1c3NlbGxCaXNob3AvMTI4LmpwZ1wiLFxuICAgIFwiYnJhamVzaHdhci8xMjguanBnXCIsXG4gICAgXCJuYWNodG1laXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwiY2JyYWNjby8xMjguanBnXCIsXG4gICAgXCJiZXJtb25wYWludGVyLzEyOC5qcGdcIixcbiAgICBcImFiZHVsbGluZGVuaXMvMTI4LmpwZ1wiLFxuICAgIFwiaXNhY29zdGEvMTI4LmpwZ1wiLFxuICAgIFwic3VwcmIvMTI4LmpwZ1wiLFxuICAgIFwieWFsb3poa2luLzEyOC5qcGdcIixcbiAgICBcImNoYW5kbGVydmR3LzEyOC5qcGdcIixcbiAgICBcImlhbWdhcnRoLzEyOC5qcGdcIixcbiAgICBcIl92aWN0YS8xMjguanBnXCIsXG4gICAgXCJjb21tYWRlbGltaXRlZC8xMjguanBnXCIsXG4gICAgXCJyb3liYXJiZXJ1ay8xMjguanBnXCIsXG4gICAgXCJheGVsLzEyOC5qcGdcIixcbiAgICBcInZsYWRhcmJhdG92LzEyOC5qcGdcIixcbiAgICBcImZmYmVsLzEyOC5qcGdcIixcbiAgICBcInN5cm9waWFuLzEyOC5qcGdcIixcbiAgICBcImFua2l0aW5kLzEyOC5qcGdcIixcbiAgICBcInRyYW5lYmxvdy8xMjguanBnXCIsXG4gICAgXCJmbGFzaG11cnBoeS8xMjguanBnXCIsXG4gICAgXCJDaHJpc0ZhcmluYTc4LzEyOC5qcGdcIixcbiAgICBcImJhbGlvbWVnYS8xMjguanBnXCIsXG4gICAgXCJzYXNjaGFtdC8xMjguanBnXCIsXG4gICAgXCJqbV9kZW5pcy8xMjguanBnXCIsXG4gICAgXCJhbm9mZi8xMjguanBnXCIsXG4gICAgXCJrZW5ueWFkci8xMjguanBnXCIsXG4gICAgXCJjaGF0eXJrby8xMjguanBnXCIsXG4gICAgXCJkaW5neWkvMTI4LmpwZ1wiLFxuICAgIFwibWRzLzEyOC5qcGdcIixcbiAgICBcInRlcnJ5eGxpZmUvMTI4LmpwZ1wiLFxuICAgIFwiYWFyb25pLzEyOC5qcGdcIixcbiAgICBcImtpbmRheS8xMjguanBnXCIsXG4gICAgXCJwcnJzdG4vMTI4LmpwZ1wiLFxuICAgIFwiZWR1YXJkb3N0dWFydC8xMjguanBnXCIsXG4gICAgXCJkaGlsaXBzaXZhLzEyOC5qcGdcIixcbiAgICBcIkdhdmljb0luZC8xMjguanBnXCIsXG4gICAgXCJiYWlyZXMvMTI4LmpwZ1wiLFxuICAgIFwicm9oaXh4LzEyOC5qcGdcIixcbiAgICBcImJpZ21hbmNoby8xMjguanBnXCIsXG4gICAgXCJibGFrZXNpbWtpbnMvMTI4LmpwZ1wiLFxuICAgIFwibGVlaWlvLzEyOC5qcGdcIixcbiAgICBcInRqcnVzLzEyOC5qcGdcIixcbiAgICBcInViZXJzY2hpem8vMTI4LmpwZ1wiLFxuICAgIFwia3lsZWZvdW5kcnkvMTI4LmpwZ1wiLFxuICAgIFwiY2xhdWRpb2d1Z2xpZXJpLzEyOC5qcGdcIixcbiAgICBcInJpcHBsZW1kay8xMjguanBnXCIsXG4gICAgXCJleGVudHJpY2gvMTI4LmpwZ1wiLFxuICAgIFwiamFrZW1vb3JlLzEyOC5qcGdcIixcbiAgICBcImpvYW9lZHVtZWRlaXJvcy8xMjguanBnXCIsXG4gICAgXCJwb29ybWluaS8xMjguanBnXCIsXG4gICAgXCJ0ZXJlc2hlbmtvdi8xMjguanBnXCIsXG4gICAgXCJrZXJ5aWxtYXovMTI4LmpwZ1wiLFxuICAgIFwiaGF5ZG5fd29vZHMvMTI4LmpwZ1wiLFxuICAgIFwicnVkZS8xMjguanBnXCIsXG4gICAgXCJsbHVuLzEyOC5qcGdcIixcbiAgICBcInNnYXVyYXZfYmFnaGVsLzEyOC5qcGdcIixcbiAgICBcImphbWllYnJpdHRhaW4vMTI4LmpwZ1wiLFxuICAgIFwiYmFkbGl0dGxlZHVjay8xMjguanBnXCIsXG4gICAgXCJwaWZhZ29yLzEyOC5qcGdcIixcbiAgICBcImFncm9tb3YvMTI4LmpwZ1wiLFxuICAgIFwiYmVuZWZyaXR6LzEyOC5qcGdcIixcbiAgICBcImVyd2FuaGVzcnkvMTI4LmpwZ1wiLFxuICAgIFwiZGllc2VsbGF3cy8xMjguanBnXCIsXG4gICAgXCJqZXJlbWlhaGEvMTI4LmpwZ1wiLFxuICAgIFwia29yaWRoYW5keS8xMjguanBnXCIsXG4gICAgXCJjaGFlbnNlbC8xMjguanBnXCIsXG4gICAgXCJhbmRyZXdjb2hlbi8xMjguanBnXCIsXG4gICAgXCJzbWFjem55LzEyOC5qcGdcIixcbiAgICBcImdvbnphbG9yb2JhaW5hLzEyOC5qcGdcIixcbiAgICBcIm5hbmRpbmlfbS8xMjguanBnXCIsXG4gICAgXCJzeWRsYXdyZW5jZS8xMjguanBnXCIsXG4gICAgXCJjZGhhcnJpc29uLzEyOC5qcGdcIixcbiAgICBcInRnZXJrZW4vMTI4LmpwZ1wiLFxuICAgIFwibGV3aXNhaW5zbGllLzEyOC5qcGdcIixcbiAgICBcImNoYXJsaWVjd2FpdGUvMTI4LmpwZ1wiLFxuICAgIFwicm9iYnNjaGlsbGVyLzEyOC5qcGdcIixcbiAgICBcImZsZXhycy8xMjguanBnXCIsXG4gICAgXCJtYXR0ZGV0YWlscy8xMjguanBnXCIsXG4gICAgXCJyYXF1ZWx3aWxzb24vMTI4LmpwZ1wiLFxuICAgIFwia2Fyc2gvMTI4LmpwZ1wiLFxuICAgIFwibXJtYXJ0aW5lYXUvMTI4LmpwZ1wiLFxuICAgIFwib3Buc3JjZS8xMjguanBnXCIsXG4gICAgXCJoZ2hhcnJ5Z28vMTI4LmpwZ1wiLFxuICAgIFwibWF4aW1zZXNodWsvMTI4LmpwZ1wiLFxuICAgIFwidXhhbGV4LzEyOC5qcGdcIixcbiAgICBcInNhbWloYWgvMTI4LmpwZ1wiLFxuICAgIFwiY2hhbnBvcnkvMTI4LmpwZ1wiLFxuICAgIFwic2hhcnZpbi8xMjguanBnXCIsXG4gICAgXCJqb3NlbWFycXVlcy8xMjguanBnXCIsXG4gICAgXCJqZWZmZmlzLzEyOC5qcGdcIixcbiAgICBcImtyeXN0YWxmaXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwibG9rZXNoX2NvZGVyLzEyOC5qcGdcIixcbiAgICBcInRoZWRhbWlhbmhkZXovMTI4LmpwZ1wiLFxuICAgIFwiZHBtYWNoYWRvLzEyOC5qcGdcIixcbiAgICBcImZ1bndhdGVyY2F0LzEyOC5qcGdcIixcbiAgICBcInRpbW90aHljZC8xMjguanBnXCIsXG4gICAgXCJpdmFuZmlsaXBvdmJnLzEyOC5qcGdcIixcbiAgICBcInBpY2FyZDEwMi8xMjguanBnXCIsXG4gICAgXCJtYXJjb2JhcmJvc2EvMTI4LmpwZ1wiLFxuICAgIFwia3Jhc25vdWtob3YvMTI4LmpwZ1wiLFxuICAgIFwiZzNkLzEyOC5qcGdcIixcbiAgICBcImFkZW1pbHRlci8xMjguanBnXCIsXG4gICAgXCJyaWNrZHQvMTI4LmpwZ1wiLFxuICAgIFwib3BlcmF0aW5vLzEyOC5qcGdcIixcbiAgICBcImJ1bmdpd2FuLzEyOC5qcGdcIixcbiAgICBcImh1Z29tYW5vLzEyOC5qcGdcIixcbiAgICBcImxvZ29yYWRvLzEyOC5qcGdcIixcbiAgICBcImRjX3VzZXIvMTI4LmpwZ1wiLFxuICAgIFwiaG9yYWNpb2JlbGxhLzEyOC5qcGdcIixcbiAgICBcIlNsYWFwTWUvMTI4LmpwZ1wiLFxuICAgIFwidGVlcmFnaXQvMTI4LmpwZ1wiLFxuICAgIFwiaXFvbmljZC8xMjguanBnXCIsXG4gICAgXCJpbHlhX3Blc3Rvdi8xMjguanBnXCIsXG4gICAgXCJhbmRyZXdhcnJvdy8xMjguanBnXCIsXG4gICAgXCJzc2lza2luZC8xMjguanBnXCIsXG4gICAgXCJzdGFuLzEyOC5qcGdcIixcbiAgICBcIkhlbnJ5SG9mZm1hbi8xMjguanBnXCIsXG4gICAgXCJyZHNhdW5kZXJzLzEyOC5qcGdcIixcbiAgICBcImFkYW1zeHUvMTI4LmpwZ1wiLFxuICAgIFwiY3VyaW91c29mZmljZS8xMjguanBnXCIsXG4gICAgXCJ0aGVtYWRyYXkvMTI4LmpwZ1wiLFxuICAgIFwibWljaGlnYW5ncmFoYW0vMTI4LmpwZ1wiLFxuICAgIFwia29oZXR0ZS8xMjguanBnXCIsXG4gICAgXCJuaWNrZnJhdHRlci8xMjguanBnXCIsXG4gICAgXCJydW5uaW5nc2t1bGwvMTI4LmpwZ1wiLFxuICAgIFwibWFkeXNvbmRlc2lnbnMvMTI4LmpwZ1wiLFxuICAgIFwiYnJlbnRvbl9jbGFya2UvMTI4LmpwZ1wiLFxuICAgIFwiamVubnlzaGVuLzEyOC5qcGdcIixcbiAgICBcImJyYWRlbmhhbW0vMTI4LmpwZ1wiLFxuICAgIFwia3VydGluYy8xMjguanBnXCIsXG4gICAgXCJhbWFucnV6YWluaS8xMjguanBnXCIsXG4gICAgXCJjb3JleWhhZ2dhcmQvMTI4LmpwZ1wiLFxuICAgIFwiS2FyaW1tb3ZlLzEyOC5qcGdcIixcbiAgICBcImFhcm9uYWxmcmVkLzEyOC5qcGdcIixcbiAgICBcInd0cnNsZC8xMjguanBnXCIsXG4gICAgXCJqaXRhY2hpLzEyOC5qcGdcIixcbiAgICBcInRoZXJlYWxtYXJ2aW4vMTI4LmpwZ1wiLFxuICAgIFwicG1laXNzbmVyLzEyOC5qcGdcIixcbiAgICBcIm9vb216LzEyOC5qcGdcIixcbiAgICBcImNoYWNreTE0LzEyOC5qcGdcIixcbiAgICBcImplc3NlZGR5LzEyOC5qcGdcIixcbiAgICBcInRoaW5tYXR0LzEyOC5qcGdcIixcbiAgICBcInNoYW5laHVkc29uLzEyOC5qcGdcIixcbiAgICBcImFrbXVyLzEyOC5qcGdcIixcbiAgICBcIklzYXJ5QW1haXJhbmkvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0aHVyaG9sY29tYmUxLzEyOC5qcGdcIixcbiAgICBcImFuZHljaGlwc3Rlci8xMjguanBnXCIsXG4gICAgXCJib3htb2RlbC8xMjguanBnXCIsXG4gICAgXCJlaHNhbmRpYXJ5LzEyOC5qcGdcIixcbiAgICBcIkx1Y2FzUGVyZGlkYW8vMTI4LmpwZ1wiLFxuICAgIFwic2hhbHQwbmkvMTI4LmpwZ1wiLFxuICAgIFwic3dhcGxvcmQvMTI4LmpwZ1wiLFxuICAgIFwia2FlbGlmYS8xMjguanBnXCIsXG4gICAgXCJwbGJhYmluLzEyOC5qcGdcIixcbiAgICBcImd1aWxsZW1ib3RpLzEyOC5qcGdcIixcbiAgICBcImFyaW5kYW1fLzEyOC5qcGdcIixcbiAgICBcInJlbmJ5cmQvMTI4LmpwZ1wiLFxuICAgIFwidGhpYWdvdmVybmV0dGkvMTI4LmpwZ1wiLFxuICAgIFwiam1pbGxzcGF5c2JpbGxzLzEyOC5qcGdcIixcbiAgICBcIm1pa2VtYWkyYXdlc29tZS8xMjguanBnXCIsXG4gICAgXCJqZXJ2by8xMjguanBnXCIsXG4gICAgXCJtZWthbC8xMjguanBnXCIsXG4gICAgXCJzdGExZXgvMTI4LmpwZ1wiLFxuICAgIFwicm9iZXJnZC8xMjguanBnXCIsXG4gICAgXCJmZWxpcGVjc2wvMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmVhMjExMDg3LzEyOC5qcGdcIixcbiAgICBcImdhcmFuZC8xMjguanBnXCIsXG4gICAgXCJkaG9veWVuZ2EvMTI4LmpwZ1wiLFxuICAgIFwiYWJvdmVmdW5jdGlvbi8xMjguanBnXCIsXG4gICAgXCJwY3JpZGVzYWdhaW4vMTI4LmpwZ1wiLFxuICAgIFwicmFuZG9tbGllcy8xMjguanBnXCIsXG4gICAgXCJCcnlhbkhvcnNleS8xMjguanBnXCIsXG4gICAgXCJoZXlrZW5uZXRoLzEyOC5qcGdcIixcbiAgICBcImRhaHBhcnJhLzEyOC5qcGdcIixcbiAgICBcImFsbHRoaW5nc3NtaXR0eS8xMjguanBnXCIsXG4gICAgXCJkYW52ZXJub24vMTI4LmpwZ1wiLFxuICAgIFwiYmV3ZWlucmVpY2gvMTI4LmpwZ1wiLFxuICAgIFwiaW5jcmVhc2UvMTI4LmpwZ1wiLFxuICAgIFwiZmFsdmFyYWQvMTI4LmpwZ1wiLFxuICAgIFwiYWx4bmRydXN0aW5vdi8xMjguanBnXCIsXG4gICAgXCJzb3V1Zi8xMjguanBnXCIsXG4gICAgXCJvcmt1bmNheWxhci8xMjguanBnXCIsXG4gICAgXCJBTV9LbjIvMTI4LmpwZ1wiLFxuICAgIFwiZ2VhcnBpeGVscy8xMjguanBnXCIsXG4gICAgXCJiYXNzYW1vbG9neS8xMjguanBnXCIsXG4gICAgXCJ2aW1hcmV0aG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwia29zbWFyLzEyOC5qcGdcIixcbiAgICBcIlNVTGlpay8xMjguanBnXCIsXG4gICAgXCJtcmphbWVzbm9ibGUvMTI4LmpwZ1wiLFxuICAgIFwic2lsdmFubXVobGVtYW5uLzEyOC5qcGdcIixcbiAgICBcInNoYW5lSXhELzEyOC5qcGdcIixcbiAgICBcIm5hY2hvLzEyOC5qcGdcIixcbiAgICBcInlpZ2l0cGluYXJiYXNpLzEyOC5qcGdcIixcbiAgICBcImJ1enp1c2Jvcm5lLzEyOC5qcGdcIixcbiAgICBcImFhcm9ua3doaXRlLzEyOC5qcGdcIixcbiAgICBcInJtbGV3aXN1ay8xMjguanBnXCIsXG4gICAgXCJnaWFuY2FybG9uLzEyOC5qcGdcIixcbiAgICBcIm5iaXJja2VsLzEyOC5qcGdcIixcbiAgICBcImRfbm55X21fY2hlci8xMjguanBnXCIsXG4gICAgXCJzZGlkb25hdG8vMTI4LmpwZ1wiLFxuICAgIFwiYXRhcmlib3kvMTI4LmpwZ1wiLFxuICAgIFwiYWJvdGFwLzEyOC5qcGdcIixcbiAgICBcImthcmFsZWsvMTI4LmpwZ1wiLFxuICAgIFwicHNkZXNpZ251ay8xMjguanBnXCIsXG4gICAgXCJsdWR3aWN6YWtwYXdlbC8xMjguanBnXCIsXG4gICAgXCJuZW1hbmphaXZhbm92aWMvMTI4LmpwZ1wiLFxuICAgIFwiYmFsdWxpLzEyOC5qcGdcIixcbiAgICBcImFobWFkYWptaS8xMjguanBnXCIsXG4gICAgXCJ2b3ZrYXNvbG92ZXYvMTI4LmpwZ1wiLFxuICAgIFwic2FtZ3JvdmVyLzEyOC5qcGdcIixcbiAgICBcImRlcmllbnpvNzc3LzEyOC5qcGdcIixcbiAgICBcImpvbmF0aGFuc2ltbW9ucy8xMjguanBnXCIsXG4gICAgXCJuZWxzb25qb3ljZS8xMjguanBnXCIsXG4gICAgXCJTMHVmaTRuMy8xMjguanBnXCIsXG4gICAgXCJ4dG9waGVycGF1bC8xMjguanBnXCIsXG4gICAgXCJvYWt0cmVlbWVkaWEvMTI4LmpwZ1wiLFxuICAgIFwibmF0ZXNjaHVsdGUvMTI4LmpwZ1wiLFxuICAgIFwiZmluZGluZ2plbm55LzEyOC5qcGdcIixcbiAgICBcIm5hbWFua3JlYXRpdmUvMTI4LmpwZ1wiLFxuICAgIFwiYW50b255em90b3YvMTI4LmpwZ1wiLFxuICAgIFwid2Vfc29jaWFsLzEyOC5qcGdcIixcbiAgICBcImxlZWhhbWJsZXkvMTI4LmpwZ1wiLFxuICAgIFwic29saWRfY29sb3IvMTI4LmpwZ1wiLFxuICAgIFwiYWJlbGNhYmFucy8xMjguanBnXCIsXG4gICAgXCJtYmlsZGVyYmFjaC8xMjguanBnXCIsXG4gICAgXCJra3VzYWEvMTI4LmpwZ1wiLFxuICAgIFwiam9yZHl2ZGJvb20vMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zZ2F2aW5hLzEyOC5qcGdcIixcbiAgICBcInBlY2hraW5hdG9yLzEyOC5qcGdcIixcbiAgICBcInZjMjcvMTI4LmpwZ1wiLFxuICAgIFwicmRiYW5ub24vMTI4LmpwZ1wiLFxuICAgIFwiY3JvYWt4LzEyOC5qcGdcIixcbiAgICBcInN1cmliYmxlcy8xMjguanBnXCIsXG4gICAgXCJrZXJpaGVuYXJlLzEyOC5qcGdcIixcbiAgICBcImNhdGFkZWxlb24vMTI4LmpwZ1wiLFxuICAgIFwiZ2Ntb3JsZXkvMTI4LmpwZ1wiLFxuICAgIFwiZHVpdnZ2LzEyOC5qcGdcIixcbiAgICBcInNhc2NoYWRyb3N0ZS8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JEdWJ1Z3Jhcy8xMjguanBnXCIsXG4gICAgXCJ3aW50b3BpYS8xMjguanBnXCIsXG4gICAgXCJtYXR0Ymlsb3R0aS8xMjguanBnXCIsXG4gICAgXCJ0YXlsb3JsaW5nLzEyOC5qcGdcIixcbiAgICBcIm1lZ2RyYXdzLzEyOC5qcGdcIixcbiAgICBcIm1lbG4xa3MvMTI4LmpwZ1wiLFxuICAgIFwibWFobW91ZG1ldHdhbGx5LzEyOC5qcGdcIixcbiAgICBcIlNpbHZlcmVkZ2U5LzEyOC5qcGdcIixcbiAgICBcImRlcmVrZWJyYWRsZXkvMTI4LmpwZ1wiLFxuICAgIFwiaGFwcHlwZXRlcjE5ODMvMTI4LmpwZ1wiLFxuICAgIFwidHJhdmlzX2Fybm9sZC8xMjguanBnXCIsXG4gICAgXCJhcnRlbV9rb3N0ZW5rby8xMjguanBnXCIsXG4gICAgXCJhZG9iaS8xMjguanBnXCIsXG4gICAgXCJkYXlraWluZS8xMjguanBnXCIsXG4gICAgXCJhbGVrX2RqdXJpYy8xMjguanBnXCIsXG4gICAgXCJzY2lwcy8xMjguanBnXCIsXG4gICAgXCJtaWd1ZWxtZW5kZXMvMTI4LmpwZ1wiLFxuICAgIFwianVzdGlucmhlZS8xMjguanBnXCIsXG4gICAgXCJhbHNvYnJvb2tzLzEyOC5qcGdcIixcbiAgICBcImZyb254LzEyOC5qcGdcIixcbiAgICBcIm1jZmx5ZGVzaWduLzEyOC5qcGdcIixcbiAgICBcInNhbnRpX3Vyc28vMTI4LmpwZ1wiLFxuICAgIFwiYWxsZm9yZGVzaWduLzEyOC5qcGdcIixcbiAgICBcInN0YXl1YmVyLzEyOC5qcGdcIixcbiAgICBcImJlcnRib2VybGFuZC8xMjguanBnXCIsXG4gICAgXCJtYXJvc2hvbGx5LzEyOC5qcGdcIixcbiAgICBcImFkYW1uYWMvMTI4LmpwZ1wiLFxuICAgIFwiY3ludGhpYXNhdmFyZC8xMjguanBnXCIsXG4gICAgXCJtdXJpbmdhLzEyOC5qcGdcIixcbiAgICBcImRhbnJvLzEyOC5qcGdcIixcbiAgICBcImhpZW1pbC8xMjguanBnXCIsXG4gICAgXCJqYWNraWVzYWlrLzEyOC5qcGdcIixcbiAgICBcInphY3NuaWRlci8xMjguanBnXCIsXG4gICAgXCJpZHV1Y2svMTI4LmpwZ1wiLFxuICAgIFwiYW50amFudXMvMTI4LmpwZ1wiLFxuICAgIFwiYXJvb25fc2hhcm1hLzEyOC5qcGdcIixcbiAgICBcImRzaHN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwidGhlaGFja2VyLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxicm9va3Nqci8xMjguanBnXCIsXG4gICAgXCJyeWFubWNsYXVnaGxpbi8xMjguanBnXCIsXG4gICAgXCJjbHViYjNycnkvMTI4LmpwZ1wiLFxuICAgIFwidGF5YmVubG9yLzEyOC5qcGdcIixcbiAgICBcInhyaXB1bm92LzEyOC5qcGdcIixcbiAgICBcIm15YXN0cm8vMTI4LmpwZ1wiLFxuICAgIFwiYWRpdHlhc3V0b21vLzEyOC5qcGdcIixcbiAgICBcImRpZ2l0YWxtYXZlcmljay8xMjguanBnXCIsXG4gICAgXCJoamFydHN0cm9ybi8xMjguanBnXCIsXG4gICAgXCJpdG9sbWFjaC8xMjguanBnXCIsXG4gICAgXCJ2YXVnaGFubW9mZml0dC8xMjguanBnXCIsXG4gICAgXCJhYmRvdHMvMTI4LmpwZ1wiLFxuICAgIFwiaXNuaWZlci8xMjguanBnXCIsXG4gICAgXCJzZXJnZXlzYWZvbm92LzEyOC5qcGdcIixcbiAgICBcIm1hei8xMjguanBnXCIsXG4gICAgXCJzY3JhcGRuYi8xMjguanBnXCIsXG4gICAgXCJjaHJpc21qODMvMTI4LmpwZ1wiLFxuICAgIFwidml0b3JsZWFsLzEyOC5qcGdcIixcbiAgICBcInNva2FuaXdhYWwvMTI4LmpwZ1wiLFxuICAgIFwiemFraTNkLzEyOC5qcGdcIixcbiAgICBcImlsbHl6b3Jlbi8xMjguanBnXCIsXG4gICAgXCJtb2NhYnl0ZS8xMjguanBnXCIsXG4gICAgXCJvc21hbmluY2UvMTI4LmpwZ1wiLFxuICAgIFwiZGpzaGVybWFuLzEyOC5qcGdcIixcbiAgICBcImRhdmlkaGVtcGhpbGwvMTI4LmpwZ1wiLFxuICAgIFwid2FnaG5lci8xMjguanBnXCIsXG4gICAgXCJuZWNvZHltaWNvbmVyLzEyOC5qcGdcIixcbiAgICBcInByYXZlZW5fdmlqYXlhLzEyOC5qcGdcIixcbiAgICBcImZhYmJydWNjaS8xMjguanBnXCIsXG4gICAgXCJjbGlmZnNlYWwvMTI4LmpwZ1wiLFxuICAgIFwidHJhdmlzaGluZXMvMTI4LmpwZ1wiLFxuICAgIFwia3VsZGFya2FsdmlrLzEyOC5qcGdcIixcbiAgICBcIkVsdF9uLzEyOC5qcGdcIixcbiAgICBcInBoaWxsYXBpZXIvMTI4LmpwZ1wiLFxuICAgIFwib2tzZWFuamF5LzEyOC5qcGdcIixcbiAgICBcImlkODM1NTU5LzEyOC5qcGdcIixcbiAgICBcImt1ZHJldGtlc2tpbi8xMjguanBnXCIsXG4gICAgXCJhbmpoZXJvLzEyOC5qcGdcIixcbiAgICBcImR1Y2s0ZnVjay8xMjguanBnXCIsXG4gICAgXCJzY290dF9yaWxleS8xMjguanBnXCIsXG4gICAgXCJub3VmYWxpYnJhaGltLzEyOC5qcGdcIixcbiAgICBcImgxYnJkLzEyOC5qcGdcIixcbiAgICBcImJvcmdlc19tYXJjb3MvMTI4LmpwZ1wiLFxuICAgIFwiZGV2aW5oYWxsYWRheS8xMjguanBnXCIsXG4gICAgXCJjaWFyYW5yLzEyOC5qcGdcIixcbiAgICBcInN0ZWZvb28vMTI4LmpwZ1wiLFxuICAgIFwibWlrZWJlZWNoYW0vMTI4LmpwZ1wiLFxuICAgIFwidG9ueW1pbGxpb24vMTI4LmpwZ1wiLFxuICAgIFwiam9zaHVhcmFpY2h1ci8xMjguanBnXCIsXG4gICAgXCJpcmFlLzEyOC5qcGdcIixcbiAgICBcInBldHJhbmdyLzEyOC5qcGdcIixcbiAgICBcImRtaXRyaXljaHV0YS8xMjguanBnXCIsXG4gICAgXCJjaGFybGllZ2Fubi8xMjguanBnXCIsXG4gICAgXCJhcmFzaG1hbnRlZ2hpLzEyOC5qcGdcIixcbiAgICBcImFkaGFtZGFubmF3YXkvMTI4LmpwZ1wiLFxuICAgIFwiYWluc2xleXdhZ29uLzEyOC5qcGdcIixcbiAgICBcInN2ZW5sZW4vMTI4LmpwZ1wiLFxuICAgIFwiZmFpc2FsYWJpZC8xMjguanBnXCIsXG4gICAgXCJiZXNodXIvMTI4LmpwZ1wiLFxuICAgIFwiY2FybHlzb24vMTI4LmpwZ1wiLFxuICAgIFwiZHV0Y2huYWRpYS8xMjguanBnXCIsXG4gICAgXCJ0ZWRkeXpldHRlcmx1bmQvMTI4LmpwZ1wiLFxuICAgIFwic2FtdWVsa3JhZnQvMTI4LmpwZ1wiLFxuICAgIFwiYW9pbWVkaWEvMTI4LmpwZ1wiLFxuICAgIFwidG9kZHJldy8xMjguanBnXCIsXG4gICAgXCJjb2RlcG9ldF9ydS8xMjguanBnXCIsXG4gICAgXCJhcnR2YXZzLzEyOC5qcGdcIixcbiAgICBcImJlbm9pdGJvdWNhcnQvMTI4LmpwZ1wiLFxuICAgIFwiam9tYXJtZW4vMTI4LmpwZ1wiLFxuICAgIFwia29sbWFybG9wZXovMTI4LmpwZ1wiLFxuICAgIFwiY3JlYXJ0aW5jLzEyOC5qcGdcIixcbiAgICBcImhvbWthLzEyOC5qcGdcIixcbiAgICBcImdhYm9yZW50b24vMTI4LmpwZ1wiLFxuICAgIFwicm9iaW5jbGVkaWVyZS8xMjguanBnXCIsXG4gICAgXCJtYXhpbXNvcm9raW4vMTI4LmpwZ1wiLFxuICAgIFwicGxhc3RpY2luZS8xMjguanBnXCIsXG4gICAgXCJqMmRlbWUvMTI4LmpwZ1wiLFxuICAgIFwicGVhY2hhbmFuci8xMjguanBnXCIsXG4gICAgXCJrYXBhbHVjY2lvLzEyOC5qcGdcIixcbiAgICBcImRlX2FzY2FuaW8vMTI4LmpwZ1wiLFxuICAgIFwicmlrYXMvMTI4LmpwZ1wiLFxuICAgIFwiZGF3aWR3dS8xMjguanBnXCIsXG4gICAgXCJtYXJjb3JhbWlyZXMvMTI4LmpwZ1wiLFxuICAgIFwiYW5nZWxjcmVhdGl2ZS8xMjguanBnXCIsXG4gICAgXCJycGF0ZXkvMTI4LmpwZ1wiLFxuICAgIFwicG9wZXkvMTI4LmpwZ1wiLFxuICAgIFwicmVoYXRrYXRodXJpYS8xMjguanBnXCIsXG4gICAgXCJ0aGVfcHVycGxlYnVubnkvMTI4LmpwZ1wiLFxuICAgIFwiMW1hcmtpei8xMjguanBnXCIsXG4gICAgXCJhamF4eV9ydS8xMjguanBnXCIsXG4gICAgXCJicmVubXVycmVsbC8xMjguanBnXCIsXG4gICAgXCJkdWRlc3RlaW4vMTI4LmpwZ1wiLFxuICAgIFwib3NrYXJsZXZpbnNvbi8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JzdHViZXIvMTI4LmpwZ1wiLFxuICAgIFwibmVoZnkvMTI4LmpwZ1wiLFxuICAgIFwidmljaXZhZGVsaW5lLzEyOC5qcGdcIixcbiAgICBcImxlYW5kcm92YXJhbmRhLzEyOC5qcGdcIixcbiAgICBcInNjb3R0Z2FsbGFudC8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JfaGF5ZGluLzEyOC5qcGdcIixcbiAgICBcInNhd3JiLzEyOC5qcGdcIixcbiAgICBcInJ5aGFuaGFzc2FuLzEyOC5qcGdcIixcbiAgICBcImFtYXl2cy8xMjguanBnXCIsXG4gICAgXCJhX2JyaXhlbi8xMjguanBnXCIsXG4gICAgXCJrYXJvbGtyYWtvd2lha18vMTI4LmpwZ1wiLFxuICAgIFwiaGVya3VsYW5vLzEyOC5qcGdcIixcbiAgICBcImdlcmFuNy8xMjguanBnXCIsXG4gICAgXCJjZ2dhdXJhdi8xMjguanBnXCIsXG4gICAgXCJjaHJpc193aXRrby8xMjguanBnXCIsXG4gICAgXCJsb3Nvc2luYS8xMjguanBnXCIsXG4gICAgXCJwb2xhcml0eS8xMjguanBnXCIsXG4gICAgXCJtYXR0bGF0LzEyOC5qcGdcIixcbiAgICBcImJyYW5kb25idXJrZS8xMjguanBnXCIsXG4gICAgXCJjb25zdGFudHgvMTI4LmpwZ1wiLFxuICAgIFwidGV5bG9yZmVsaXovMTI4LmpwZ1wiLFxuICAgIFwiY3JhaWdlbGltZWxpYWgvMTI4LmpwZ1wiLFxuICAgIFwicmFjaGVscmV2ZWxleS8xMjguanBnXCIsXG4gICAgXCJyZWFibzEwMS8xMjguanBnXCIsXG4gICAgXCJyYWhtZWVuLzEyOC5qcGdcIixcbiAgICBcImt5LzEyOC5qcGdcIixcbiAgICBcInJpY2t5eWVhbi8xMjguanBnXCIsXG4gICAgXCJqMDRudG9oLzEyOC5qcGdcIixcbiAgICBcInNwYnJvbWEvMTI4LmpwZ1wiLFxuICAgIFwic2ViYXNodG9uLzEyOC5qcGdcIixcbiAgICBcImpwZW5pY28vMTI4LmpwZ1wiLFxuICAgIFwiZnJhbmNpc192ZWdhLzEyOC5qcGdcIixcbiAgICBcIm9rdGF5ZWxpcGVrLzEyOC5qcGdcIixcbiAgICBcImtpa2lsbG8vMTI4LmpwZ1wiLFxuICAgIFwiZmFiYmlhbnovMTI4LmpwZ1wiLFxuICAgIFwibGFycnlnZXJhcmQvMTI4LmpwZ1wiLFxuICAgIFwiQnJvdW1pWW91c3NlZi8xMjguanBnXCIsXG4gICAgXCIwdGhlcnBsYW5ldC8xMjguanBnXCIsXG4gICAgXCJtYmlsYWxzaWRkaXF1ZTEvMTI4LmpwZ1wiLFxuICAgIFwiaW9udXNzLzEyOC5qcGdcIixcbiAgICBcImdycnJfbmwvMTI4LmpwZ1wiLFxuICAgIFwibGltaW5oYS8xMjguanBnXCIsXG4gICAgXCJyYXdkaWdnaWUvMTI4LmpwZ1wiLFxuICAgIFwicnlhbmRvd25pZS8xMjguanBnXCIsXG4gICAgXCJzZXRobG91ZXkvMTI4LmpwZ1wiLFxuICAgIFwicGl4YWdlLzEyOC5qcGdcIixcbiAgICBcImFycGl0bmovMTI4LmpwZ1wiLFxuICAgIFwic3dpdG1lcjc3Ny8xMjguanBnXCIsXG4gICAgXCJqb3Nldm5jbGNoLzEyOC5qcGdcIixcbiAgICBcImthbmlja2FpcmFqLzEyOC5qcGdcIixcbiAgICBcInB1emlrLzEyOC5qcGdcIixcbiAgICBcInRiYWtkZXNpZ25zLzEyOC5qcGdcIixcbiAgICBcImJlc2J1anVwaS8xMjguanBnXCIsXG4gICAgXCJzdXBqb2V5LzEyOC5qcGdcIixcbiAgICBcImxvd2llLzEyOC5qcGdcIixcbiAgICBcImxpbmtpYm9sLzEyOC5qcGdcIixcbiAgICBcImJhbGludG9yb3N6LzEyOC5qcGdcIixcbiAgICBcImltY29kaW5nLzEyOC5qcGdcIixcbiAgICBcImFndXN0aW5jcnVpei8xMjguanBnXCIsXG4gICAgXCJndXNvdG8vMTI4LmpwZ1wiLFxuICAgIFwidGhvbWFzc2NocmlqZXIvMTI4LmpwZ1wiLFxuICAgIFwic3VwZXJvdXRtYW4vMTI4LmpwZ1wiLFxuICAgIFwia2FsbWVycmF1dGFtLzEyOC5qcGdcIixcbiAgICBcImdhYnJpZWxpemFsby8xMjguanBnXCIsXG4gICAgXCJnb2plYW55bi8xMjguanBnXCIsXG4gICAgXCJkYXZpZGJhbGRpZS8xMjguanBnXCIsXG4gICAgXCJfdm9qdG8vMTI4LmpwZ1wiLFxuICAgIFwibGF1cmVuZ3JheS8xMjguanBnXCIsXG4gICAgXCJqeWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJteW15Ym95LzEyOC5qcGdcIixcbiAgICBcIm5lbGxsZW8vMTI4LmpwZ1wiLFxuICAgIFwibWFyY2lvdG9sZWRvLzEyOC5qcGdcIixcbiAgICBcIm5pbmphZDNtMC8xMjguanBnXCIsXG4gICAgXCJ0b19zb2hhbS8xMjguanBnXCIsXG4gICAgXCJoYXNzbHVuc2ZvcmQvMTI4LmpwZ1wiLFxuICAgIFwibXVyaWRyYWhoYWwvMTI4LmpwZ1wiLFxuICAgIFwibGV2aXNhbi8xMjguanBnXCIsXG4gICAgXCJncmFoYW1rZW5uZXJ5LzEyOC5qcGdcIixcbiAgICBcImxlcGV0aXRvZ3JlLzEyOC5qcGdcIixcbiAgICBcImFudG9uZ2Vua2luLzEyOC5qcGdcIixcbiAgICBcIm5lc3NvaWxhLzEyOC5qcGdcIixcbiAgICBcImFtYW5kYWJ1emFyZC8xMjguanBnXCIsXG4gICAgXCJzYWZyYW5rb3YvMTI4LmpwZ1wiLFxuICAgIFwiY29jb2xlcm8vMTI4LmpwZ1wiLFxuICAgIFwiZHNzNDkvMTI4LmpwZ1wiLFxuICAgIFwibWF0dDMyMjQvMTI4LmpwZ1wiLFxuICAgIFwiYmx1ZXNpeC8xMjguanBnXCIsXG4gICAgXCJxdWFpbGFuZHF1YXNhci8xMjguanBnXCIsXG4gICAgXCJBbGJlcnRvQ29jb2NpLzEyOC5qcGdcIixcbiAgICBcImxlcGluc2tpLzEyOC5qcGdcIixcbiAgICBcInNlbWVudGl5LzEyOC5qcGdcIixcbiAgICBcIm1odWRvYml2bmlrLzEyOC5qcGdcIixcbiAgICBcInRoaWJhdXRfcmUvMTI4LmpwZ1wiLFxuICAgIFwib2xnYXJ5LzEyOC5qcGdcIixcbiAgICBcInNob2piZXJnLzEyOC5qcGdcIixcbiAgICBcIm10b2xva29ubmlrb3YvMTI4LmpwZ1wiLFxuICAgIFwiYmVyZXRvLzEyOC5qcGdcIixcbiAgICBcIm5hdXBpbnRvcy8xMjguanBnXCIsXG4gICAgXCJ3ZWdvdHZpY2VzLzEyOC5qcGdcIixcbiAgICBcInhhZGhpeC8xMjguanBnXCIsXG4gICAgXCJtYWN4aW0vMTI4LmpwZ1wiLFxuICAgIFwicm9kbnlsb2Jvcy8xMjguanBnXCIsXG4gICAgXCJtYWRjYW1wb3MvMTI4LmpwZ1wiLFxuICAgIFwibWFkZWJ5dmFkaW0vMTI4LmpwZ1wiLFxuICAgIFwiYmFydG9zemRhd3lkemlrLzEyOC5qcGdcIixcbiAgICBcInN1cGVydm92YS8xMjguanBnXCIsXG4gICAgXCJtYXJrcmV0emxvZmYvMTI4LmpwZ1wiLFxuICAgIFwidm9uYWNob28vMTI4LmpwZ1wiLFxuICAgIFwiZGFyeWx3cy8xMjguanBnXCIsXG4gICAgXCJzdGV2ZWRlc2lnbmVyLzEyOC5qcGdcIixcbiAgICBcIm15bGVzYi8xMjguanBnXCIsXG4gICAgXCJoZXJiaWd0LzEyOC5qcGdcIixcbiAgICBcImRlcGF1bGF3YWduZXIvMTI4LmpwZ1wiLFxuICAgIFwiZ2VzaGFuLzEyOC5qcGdcIixcbiAgICBcImdpem1lZWRldmlsMTk5MS8xMjguanBnXCIsXG4gICAgXCJfc2NvdHRidXJnZXNzLzEyOC5qcGdcIixcbiAgICBcImxpc292c2t5LzEyOC5qcGdcIixcbiAgICBcImRhdmlkc2FzZGEvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0ZF9zaWduLzEyOC5qcGdcIixcbiAgICBcIllvdW5nQ3V0bGFzcy8xMjguanBnXCIsXG4gICAgXCJtZ29udG8vMTI4LmpwZ1wiLFxuICAgIFwiaXRzdG90YWxseWFteS8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JxdWlubi8xMjguanBnXCIsXG4gICAgXCJvc21vbmQvMTI4LmpwZ1wiLFxuICAgIFwib2tzYW5hZnJld2VyLzEyOC5qcGdcIixcbiAgICBcInphdWVya3JhdXQvMTI4LmpwZ1wiLFxuICAgIFwiaWFta2VpdGhtYXNvbi8xMjguanBnXCIsXG4gICAgXCJuaXRpbmhheWFyYW4vMTI4LmpwZ1wiLFxuICAgIFwibG1qYWJyZXUvMTI4LmpwZ1wiLFxuICAgIFwibWFuZGFsYXJlb3BlbnMvMTI4LmpwZ1wiLFxuICAgIFwidGhpbmtsZWZ0LzEyOC5qcGdcIixcbiAgICBcInBvbmNob21lbmRpdmlsLzEyOC5qcGdcIixcbiAgICBcImp1YW1wZXJyby8xMjguanBnXCIsXG4gICAgXCJicnVub2Rlc2lnbjEyMDYvMTI4LmpwZ1wiLFxuICAgIFwiY2FzZXljYXZhbmFnaC8xMjguanBnXCIsXG4gICAgXCJsdXhlLzEyOC5qcGdcIixcbiAgICBcImRvdGdyaWRsaW5lLzEyOC5qcGdcIixcbiAgICBcInNwZWR3aWcvMTI4LmpwZ1wiLFxuICAgIFwibWFkZXd1bGYvMTI4LmpwZ1wiLFxuICAgIFwibWF0dHNhcGlpLzEyOC5qcGdcIixcbiAgICBcImhlbGRlcmxlYWwvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXNzdHVtcGgvMTI4LmpwZ1wiLFxuICAgIFwiamF5cGhlbi8xMjguanBnXCIsXG4gICAgXCJuc2Ftb3lsb3YvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXN2YW5kZXJrb29pLzEyOC5qcGdcIixcbiAgICBcImp1c3RtZV90aW1vdGh5Zy8xMjguanBnXCIsXG4gICAgXCJvdG96ay8xMjguanBnXCIsXG4gICAgXCJwcmluemFkaS8xMjguanBnXCIsXG4gICAgXCJndTV0YWYvMTI4LmpwZ1wiLFxuICAgIFwiY3lyaWxfZ2FpbGxhcmQvMTI4LmpwZ1wiLFxuICAgIFwiZF9rb2JlbHlhdHNreS8xMjguanBnXCIsXG4gICAgXCJkYW5pbG9jLzEyOC5qcGdcIixcbiAgICBcIm53ZHNoYS8xMjguanBnXCIsXG4gICAgXCJyb21hbmJ1bGFoLzEyOC5qcGdcIixcbiAgICBcInNra2lyaWxvdi8xMjguanBnXCIsXG4gICAgXCJkdmR3aW5kZW4vMTI4LmpwZ1wiLFxuICAgIFwiZGFubm9sLzEyOC5qcGdcIixcbiAgICBcInRoZWtldmluam9uZXMvMTI4LmpwZ1wiLFxuICAgIFwiandhbHRlcjE0LzEyOC5qcGdcIixcbiAgICBcInRpbWd0aG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwiYnVkZGhhc291cmNlLzEyOC5qcGdcIixcbiAgICBcInV4cGlwZXIvMTI4LmpwZ1wiLFxuICAgIFwidGhhdG9uZXRvbW15LzEyOC5qcGdcIixcbiAgICBcImRpYW5zaWdpdHAvMTI4LmpwZ1wiLFxuICAgIFwiYWRyaWVudGhzLzEyOC5qcGdcIixcbiAgICBcImtsaW1ta2EvMTI4LmpwZ1wiLFxuICAgIFwiZ2thYW0vMTI4LmpwZ1wiLFxuICAgIFwiZGVyZWtjcmFtZXIvMTI4LmpwZ1wiLFxuICAgIFwiamVubnl5by8xMjguanBnXCIsXG4gICAgXCJuZXJyc29mdC8xMjguanBnXCIsXG4gICAgXCJ4YWxpb25tYWxpay8xMjguanBnXCIsXG4gICAgXCJlZGhlbmRlcnNvbi8xMjguanBnXCIsXG4gICAgXCJrZXl1cmk4NS8xMjguanBnXCIsXG4gICAgXCJyb3hhbmVqYW1tZXQvMTI4LmpwZ1wiLFxuICAgIFwia2ltY29vbC8xMjguanBnXCIsXG4gICAgXCJlZGtmLzEyOC5qcGdcIixcbiAgICBcIm1hdGtpbnMvMTI4LmpwZ1wiLFxuICAgIFwiYWxlc3NhbmRyb3JpYmUvMTI4LmpwZ1wiLFxuICAgIFwiamFja3NvbmxhdGthLzEyOC5qcGdcIixcbiAgICBcImxlYnJvbmplbm5hbi8xMjguanBnXCIsXG4gICAgXCJrb3N0YXNwdC8xMjguanBnXCIsXG4gICAgXCJrYXJsa2FuYWxsLzEyOC5qcGdcIixcbiAgICBcIm1veW5paGFuLzEyOC5qcGdcIixcbiAgICBcImRhbnBsaWVnby8xMjguanBnXCIsXG4gICAgXCJzYXVsaWhpcnZpLzEyOC5qcGdcIixcbiAgICBcIndlc2xleXRyYW5raW4vMTI4LmpwZ1wiLFxuICAgIFwiZmphZ3Vlcm8vMTI4LmpwZ1wiLFxuICAgIFwiYm93YnJpY2svMTI4LmpwZ1wiLFxuICAgIFwibWFzaGFhYWFhbC8xMjguanBnXCIsXG4gICAgXCJ5YXNzaXJ5YWh5YS8xMjguanBnXCIsXG4gICAgXCJkcGFycmVsbGkvMTI4LmpwZ1wiLFxuICAgIFwiZm90b21hZ2luLzEyOC5qcGdcIixcbiAgICBcImFrYV9qYW1lcy8xMjguanBnXCIsXG4gICAgXCJkZW5pc2VwaXJlcy8xMjguanBnXCIsXG4gICAgXCJpcWJhbHBlcmthc2EvMTI4LmpwZ1wiLFxuICAgIFwibWFydGluYW5zdHkvMTI4LmpwZ1wiLFxuICAgIFwiamFyc2VuLzEyOC5qcGdcIixcbiAgICBcInJfb3kvMTI4LmpwZ1wiLFxuICAgIFwianVzdGlucm9iLzEyOC5qcGdcIixcbiAgICBcImdhYnJpZWxyb3NzZXIvMTI4LmpwZ1wiLFxuICAgIFwibWFsZ29yZG9uLzEyOC5qcGdcIixcbiAgICBcImNhcmxmYWlyY2xvdWdoLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxhYmVoc2VyYS8xMjguanBnXCIsXG4gICAgXCJwaWVycmVzdG9mZmUvMTI4LmpwZ1wiLFxuICAgIFwiZW5qb3l0aGV0YXUvMTI4LmpwZ1wiLFxuICAgIFwibG9nYW5qbGFtYmVydC8xMjguanBnXCIsXG4gICAgXCJycGVlenkvMTI4LmpwZ1wiLFxuICAgIFwiY29yZXlnaW5uaXZhbi8xMjguanBnXCIsXG4gICAgXCJtaWNoYWxocm9uLzEyOC5qcGdcIixcbiAgICBcIm1zdmVldC8xMjguanBnXCIsXG4gICAgXCJsaW5nZXN3YXJhbi8xMjguanBnXCIsXG4gICAgXCJrb2xzdmVpbi8xMjguanBnXCIsXG4gICAgXCJwZXRlcjU3Ni8xMjguanBnXCIsXG4gICAgXCJyZWlkZWlyZWRhbGUvMTI4LmpwZ1wiLFxuICAgIFwiam9leW11cmRhaC8xMjguanBnXCIsXG4gICAgXCJyYXBoYWVsbmlrc29uLzEyOC5qcGdcIixcbiAgICBcIm12ZGhldXZlbC8xMjguanBnXCIsXG4gICAgXCJtYXhsaW5kZXJtYW4vMTI4LmpwZ1wiLFxuICAgIFwiamltbXVpcmhlYWQvMTI4LmpwZ1wiLFxuICAgIFwiYmVncmVhdGl2ZS8xMjguanBnXCIsXG4gICAgXCJmcmFua2llZnJlZXNiaWUvMTI4LmpwZ1wiLFxuICAgIFwicm9idHVybGluY2t4LzEyOC5qcGdcIixcbiAgICBcIlRhbGJpX0NvblNlcHQvMTI4LmpwZ1wiLFxuICAgIFwibG9uZ2xpdmVteXdvcmQvMTI4LmpwZ1wiLFxuICAgIFwidmFuY2hlc3ovMTI4LmpwZ1wiLFxuICAgIFwibWFpa2xhbS8xMjguanBnXCIsXG4gICAgXCJoZXJtYW5vYnJvdGhlci8xMjguanBnXCIsXG4gICAgXCJyZXpfX19hLzEyOC5qcGdcIixcbiAgICBcImdyZWdzcXVlZWIvMTI4LmpwZ1wiLFxuICAgIFwiZ3JlZW5iZXMvMTI4LmpwZ1wiLFxuICAgIFwiX3JhZ3pvci8xMjguanBnXCIsXG4gICAgXCJhbnRob255c3Vrb3cvMTI4LmpwZ1wiLFxuICAgIFwiZmx1aWRicnVzaC8xMjguanBnXCIsXG4gICAgXCJkYWN0cnRyLzEyOC5qcGdcIixcbiAgICBcImplaG5nbHlubi8xMjguanBnXCIsXG4gICAgXCJiZXJnbWFydGluLzEyOC5qcGdcIixcbiAgICBcImh1Z29jb3JuZWpvLzEyOC5qcGdcIixcbiAgICBcIl9ra2dhLzEyOC5qcGdcIixcbiAgICBcImR6YW50aWV2bS8xMjguanBnXCIsXG4gICAgXCJzYXdhbGF6YXIvMTI4LmpwZ1wiLFxuICAgIFwic292ZXNvdmUvMTI4LmpwZ1wiLFxuICAgIFwiam9uc2dvdHdvb2QvMTI4LmpwZ1wiLFxuICAgIFwiYnlyeWFuLzEyOC5qcGdcIixcbiAgICBcInZ5dGF1dGFzX2EvMTI4LmpwZ1wiLFxuICAgIFwibWl6aGdhbi8xMjguanBnXCIsXG4gICAgXCJjaWNlcm9ici8xMjguanBnXCIsXG4gICAgXCJuaWxzaGVsbWVyc3Nvbi8xMjguanBnXCIsXG4gICAgXCJkMzNwdGhvdWdodC8xMjguanBnXCIsXG4gICAgXCJkYXZlY3JhaWdlLzEyOC5qcGdcIixcbiAgICBcIm5ja2pydnMvMTI4LmpwZ1wiLFxuICAgIFwiYWxleGFuZGVybWF5ZXMvMTI4LmpwZ1wiLFxuICAgIFwiamN1YmljLzEyOC5qcGdcIixcbiAgICBcImNyYWlncmNvbGVzLzEyOC5qcGdcIixcbiAgICBcImJhZ2F3YXJtYW4vMTI4LmpwZ1wiLFxuICAgIFwicm9iX3Rob21hczEwLzEyOC5qcGdcIixcbiAgICBcImNvZmxhLzEyOC5qcGdcIixcbiAgICBcIm1haWtlbGsvMTI4LmpwZ1wiLFxuICAgIFwicnRnaWJib25zLzEyOC5qcGdcIixcbiAgICBcInJ1c3NlbGxfYmF5bGlzLzEyOC5qcGdcIixcbiAgICBcIm1oZXNzbG93LzEyOC5qcGdcIixcbiAgICBcImNvZHlzYW5maWxpcHBvLzEyOC5qcGdcIixcbiAgICBcIndlYnRhbnlhLzEyOC5qcGdcIixcbiAgICBcIm1hZGVieWJyZW50b24vMTI4LmpwZ1wiLFxuICAgIFwiZGNhbG9uYWNpLzEyOC5qcGdcIixcbiAgICBcInBlcmZlY3RmbG93LzEyOC5qcGdcIixcbiAgICBcImpqc2lpaS8xMjguanBnXCIsXG4gICAgXCJzYWFyYWJwcmVldC8xMjguanBnXCIsXG4gICAgXCJrdW1hcnJhamFuMTIxMjMvMTI4LmpwZ1wiLFxuICAgIFwiaWFtc3RlZmZlbi8xMjguanBnXCIsXG4gICAgXCJ0aGVtaWtlbmFnbGUvMTI4LmpwZ1wiLFxuICAgIFwiY2Vla2F5dHdlZXQvMTI4LmpwZ1wiLFxuICAgIFwibGFycnlib2x0LzEyOC5qcGdcIixcbiAgICBcImNvbnNwaXJhdG9yLzEyOC5qcGdcIixcbiAgICBcImRhbGxhc2JwZXRlcnMvMTI4LmpwZ1wiLFxuICAgIFwibjNkbWF4LzEyOC5qcGdcIixcbiAgICBcInRlcnBpbW9zdC8xMjguanBnXCIsXG4gICAgXCJraXJpbGx6LzEyOC5qcGdcIixcbiAgICBcImJ5cm5lY29yZS8xMjguanBnXCIsXG4gICAgXCJqX2RyYWtlXy8xMjguanBnXCIsXG4gICAgXCJjYWxlYmpveWNlLzEyOC5qcGdcIixcbiAgICBcInJ1c3NvZWR1LzEyOC5qcGdcIixcbiAgICBcImhvYW5nbG9pLzEyOC5qcGdcIixcbiAgICBcInRvYnlzYXhvbi8xMjguanBnXCIsXG4gICAgXCJnb2ZyYXNkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwiZGltYXBvc255eS8xMjguanBnXCIsXG4gICAgXCJ0amlzb3VzYS8xMjguanBnXCIsXG4gICAgXCJva2FuZHVuZ2VsLzEyOC5qcGdcIixcbiAgICBcImJpbGx5cm9zaGFuLzEyOC5qcGdcIixcbiAgICBcIm9za2FtYXlhLzEyOC5qcGdcIixcbiAgICBcIm1vdGlvbnRoaW5rcy8xMjguanBnXCIsXG4gICAgXCJrbmlsb2IvMTI4LmpwZ1wiLFxuICAgIFwiYXNob2NrYTE4LzEyOC5qcGdcIixcbiAgICBcIm1hcnJpbW8vMTI4LmpwZ1wiLFxuICAgIFwiYmFydGpvLzEyOC5qcGdcIixcbiAgICBcIm9tbml6eWEvMTI4LmpwZ1wiLFxuICAgIFwiZXJuZXN0c2VtZXJkYS8xMjguanBnXCIsXG4gICAgXCJhbmRyZWFzX3ByLzEyOC5qcGdcIixcbiAgICBcImVkZ2FyY2hyaXM5OS8xMjguanBnXCIsXG4gICAgXCJ0aG9tYXNnZWlzZW4vMTI4LmpwZ1wiLFxuICAgIFwiZ3NlZ3Vpbi8xMjguanBnXCIsXG4gICAgXCJqb2FubmVmb3Vybmllci8xMjguanBnXCIsXG4gICAgXCJkZW1lcnNkZXNpZ25zLzEyOC5qcGdcIixcbiAgICBcImFkYW1tYXJzYmFyLzEyOC5qcGdcIixcbiAgICBcIm5hc2lyd2QvMTI4LmpwZ1wiLFxuICAgIFwibl90YXNzb25lLzEyOC5qcGdcIixcbiAgICBcImphdm9yc3preS8xMjguanBnXCIsXG4gICAgXCJ0aGVtcmRhdmUvMTI4LmpwZ1wiLFxuICAgIFwieWVjaWRzbS8xMjguanBnXCIsXG4gICAgXCJuaWNvbGxlcmljaC8xMjguanBnXCIsXG4gICAgXCJjYW5hcHVkLzEyOC5qcGdcIixcbiAgICBcIm5pY29sZWdseW5uLzEyOC5qcGdcIixcbiAgICBcImp1ZHpoaW5fbWlsZXMvMTI4LmpwZ1wiLFxuICAgIFwiZGVzaWduZXJ2em0vMTI4LmpwZ1wiLFxuICAgIFwia2lhbm9zaHAvMTI4LmpwZ1wiLFxuICAgIFwiZXZhbmRyaXgvMTI4LmpwZ1wiLFxuICAgIFwiYWx0ZXJjaHVjYS8xMjguanBnXCIsXG4gICAgXCJkaHJ1Ym8vMTI4LmpwZ1wiLFxuICAgIFwibWFfdGlheC8xMjguanBnXCIsXG4gICAgXCJzc2JiX21lLzEyOC5qcGdcIixcbiAgICBcImRvcnBoZXJuLzEyOC5qcGdcIixcbiAgICBcIm1hdXJpb2xnLzEyOC5qcGdcIixcbiAgICBcImJydW5vX21hcnQvMTI4LmpwZ1wiLFxuICAgIFwibWFjdG9wdXMvMTI4LmpwZ1wiLFxuICAgIFwidGhlX3dpbnNsZXQvMTI4LmpwZ1wiLFxuICAgIFwiam9lbWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJTaHJpaWlpaW1wLzEyOC5qcGdcIixcbiAgICBcImphY29iYmVubmV0dC8xMjguanBnXCIsXG4gICAgXCJuZmVkb3JvZmYvMTI4LmpwZ1wiLFxuICAgIFwiaWFtZ2xpbXkvMTI4LmpwZ1wiLFxuICAgIFwiYWxsYWdyaW5nYXVzLzEyOC5qcGdcIixcbiAgICBcImFpaWFpaWFpaS8xMjguanBnXCIsXG4gICAgXCJvbGFvbHVzb2dhLzEyOC5qcGdcIixcbiAgICBcImJ1cnlha25pY2svMTI4LmpwZ1wiLFxuICAgIFwid2ltMWsvMTI4LmpwZ1wiLFxuICAgIFwibmlja2xhY2tlLzEyOC5qcGdcIixcbiAgICBcImExY2hhcG9uZS8xMjguanBnXCIsXG4gICAgXCJzdGV5bnZpbGpvZW4vMTI4LmpwZ1wiLFxuICAgIFwic3RyaWtld2FuLzEyOC5qcGdcIixcbiAgICBcInJ5YW5raXJrbWFuLzEyOC5qcGdcIixcbiAgICBcImFuZHJld2Fib2dhZG8vMTI4LmpwZ1wiLFxuICAgIFwiZG9vb29uLzEyOC5qcGdcIixcbiAgICBcImphZ2FuMTIzLzEyOC5qcGdcIixcbiAgICBcImFyaWZmc2V0aWF3YW4vMTI4LmpwZ1wiLFxuICAgIFwiZWxlbmFkaXNzaS8xMjguanBnXCIsXG4gICAgXCJtd2Fya2VudGluLzEyOC5qcGdcIixcbiAgICBcInRoaWVycnltZWllcl8vMTI4LmpwZ1wiLFxuICAgIFwicl9nYXJjaWEvMTI4LmpwZ1wiLFxuICAgIFwiZG1hY2tlcm1hbi8xMjguanBnXCIsXG4gICAgXCJib3JhbnR1bGEvMTI4LmpwZ1wiLFxuICAgIFwia29udXMvMTI4LmpwZ1wiLFxuICAgIFwic3BhY2V3b29kXy8xMjguanBnXCIsXG4gICAgXCJyeXVjaGkzMTEvMTI4LmpwZ1wiLFxuICAgIFwiZXZhbnNoYWplZC8xMjguanBnXCIsXG4gICAgXCJ0cmlzdGFubGVncm9zLzEyOC5qcGdcIixcbiAgICBcInNob2FpYjI1My8xMjguanBnXCIsXG4gICAgXCJhaXNsaW5ua2VsbHkvMTI4LmpwZ1wiLFxuICAgIFwib2tjb2tlci8xMjguanBnXCIsXG4gICAgXCJ0aW1wZXRyaWNvbGEvMTI4LmpwZ1wiLFxuICAgIFwic3Vuc2hpbmVkZ2lybC8xMjguanBnXCIsXG4gICAgXCJjaGFkYW1pLzEyOC5qcGdcIixcbiAgICBcImFsZWNsYXJzb25pdi8xMjguanBnXCIsXG4gICAgXCJub21pZGVzaWducy8xMjguanBnXCIsXG4gICAgXCJwZXRlYmVybmFyZG8vMTI4LmpwZ1wiLFxuICAgIFwic2NvdHRpZWR1ZGUvMTI4LmpwZ1wiLFxuICAgIFwibWlsbGluZXQvMTI4LmpwZ1wiLFxuICAgIFwiaW1zb3Blci8xMjguanBnXCIsXG4gICAgXCJpbWFtbXVodC8xMjguanBnXCIsXG4gICAgXCJiZW5qYW1pbl9rbmlnaHQvMTI4LmpwZ1wiLFxuICAgIFwibmVwZHVkLzEyOC5qcGdcIixcbiAgICBcImpva2k0LzEyOC5qcGdcIixcbiAgICBcImxhbmNlZ3V5YXR0LzEyOC5qcGdcIixcbiAgICBcImJib3kxODk1LzEyOC5qcGdcIixcbiAgICBcImFteXdlYmJiLzEyOC5qcGdcIixcbiAgICBcInJ3ZXZlLzEyOC5qcGdcIixcbiAgICBcImhhcnVpbnRlc2V0dGRlbi8xMjguanBnXCIsXG4gICAgXCJyaWNidXJ0b24vMTI4LmpwZ1wiLFxuICAgIFwibmVsc2hkLzEyOC5qcGdcIixcbiAgICBcImJhdHNpcmFpLzEyOC5qcGdcIixcbiAgICBcInByaW1vemNpZ2xlci8xMjguanBnXCIsXG4gICAgXCJqZmZncmRuci8xMjguanBnXCIsXG4gICAgXCI4ZDNrLzEyOC5qcGdcIixcbiAgICBcImdlbmVzZWxlem5ldi8xMjguanBnXCIsXG4gICAgXCJhbF9saS8xMjguanBnXCIsXG4gICAgXCJzb3VwZXJwaGx5LzEyOC5qcGdcIixcbiAgICBcIm1zbGFya2luYS8xMjguanBnXCIsXG4gICAgXCIyZm9ja3VzLzEyOC5qcGdcIixcbiAgICBcImNkYXZpczU2NS8xMjguanBnXCIsXG4gICAgXCJ4aWVsLzEyOC5qcGdcIixcbiAgICBcInR1cmt1dHV1bGkvMTI4LmpwZ1wiLFxuICAgIFwidXh3YXJkLzEyOC5qcGdcIixcbiAgICBcImxlYmlub2NsYXJkLzEyOC5qcGdcIixcbiAgICBcImdhdXJhdmphc3NhbC8xMjguanBnXCIsXG4gICAgXCJkYXZpZG1lcnJpcXVlLzEyOC5qcGdcIixcbiAgICBcIm1kc2lzdG8vMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmV3b2ZmaWNlci8xMjguanBnXCIsXG4gICAgXCJrb2pvdXJpbi8xMjguanBnXCIsXG4gICAgXCJkbmlybWFsLzEyOC5qcGdcIixcbiAgICBcImtldmthLzEyOC5qcGdcIixcbiAgICBcIm1yX3NoaXpuaXQvMTI4LmpwZ1wiLFxuICAgIFwiYWx1aXNpb19hemV2ZWRvLzEyOC5qcGdcIixcbiAgICBcImNsb3Vkc3R1ZGlvLzEyOC5qcGdcIixcbiAgICBcImRhbnZpZXJpY2gvMTI4LmpwZ1wiLFxuICAgIFwiYWxleGl2YW5pY2hraW4vMTI4LmpwZ1wiLFxuICAgIFwiZnJhbl9tY2hhbXkvMTI4LmpwZ1wiLFxuICAgIFwicGVycmV0bWFnYWxpLzEyOC5qcGdcIixcbiAgICBcImJldHJheWRhbi8xMjguanBnXCIsXG4gICAgXCJjYWRpa2thcmEvMTI4LmpwZ1wiLFxuICAgIFwibWF0YmVlZG90Y29tLzEyOC5qcGdcIixcbiAgICBcImplcmVteXdvcmJveXMvMTI4LmpwZ1wiLFxuICAgIFwiYnBhcnRyaWRnZS8xMjguanBnXCIsXG4gICAgXCJtaWNoYWVsa29wZXIvMTI4LmpwZ1wiLFxuICAgIFwic2lsdjNyZ3ZuLzEyOC5qcGdcIixcbiAgICBcImFsZXZpemlvLzEyOC5qcGdcIixcbiAgICBcImpvaG5zbWl0aGFnZW5jeS8xMjguanBnXCIsXG4gICAgXCJsYXdsYndveS8xMjguanBnXCIsXG4gICAgXCJ2aXRvcjM3Ni8xMjguanBnXCIsXG4gICAgXCJkZXNhc3Ryb3pvLzEyOC5qcGdcIixcbiAgICBcInRoaW1vX2N6LzEyOC5qcGdcIixcbiAgICBcImphc29ubWFya2pvbmVzLzEyOC5qcGdcIixcbiAgICBcImxoYXVzZXJtYW5uLzEyOC5qcGdcIixcbiAgICBcInhyYXZpbC8xMjguanBnXCIsXG4gICAgXCJndWlzY2htaXR0LzEyOC5qcGdcIixcbiAgICBcInZpZ29icm9ueC8xMjguanBnXCIsXG4gICAgXCJwYW5naGFsMC8xMjguanBnXCIsXG4gICAgXCJtaWd1ZWxrb29yZW1hbi8xMjguanBnXCIsXG4gICAgXCJzdXJnZW9uaXN0LzEyOC5qcGdcIixcbiAgICBcImNocmlzdGlhbm9saWZmLzEyOC5qcGdcIixcbiAgICBcImNhc3BlcmdybC8xMjguanBnXCIsXG4gICAgXCJpYW1rYXJuYS8xMjguanBnXCIsXG4gICAgXCJpcGF2ZWxlay8xMjguanBnXCIsXG4gICAgXCJwaWVycmVfbmVsLzEyOC5qcGdcIixcbiAgICBcInkyZ3JhcGhpYy8xMjguanBnXCIsXG4gICAgXCJzdGVybGluZ3J1bGVzLzEyOC5qcGdcIixcbiAgICBcImVsYnVzY2FpbmZvLzEyOC5qcGdcIixcbiAgICBcImJlbm55amllbi8xMjguanBnXCIsXG4gICAgXCJzdHVzaG9uYS8xMjguanBnXCIsXG4gICAgXCJlc3RlYmFudXJpYmUvMTI4LmpwZ1wiLFxuICAgIFwiZW1icmNlY3JlYXRpb25zLzEyOC5qcGdcIixcbiAgICBcImRhbmlsbG9zLzEyOC5qcGdcIixcbiAgICBcImVsbGlvdGxld2lzLzEyOC5qcGdcIixcbiAgICBcImNoYXJsZXNycHJhdHQvMTI4LmpwZ1wiLFxuICAgIFwidmxhZHluLzEyOC5qcGdcIixcbiAgICBcImVtbWVmZmVzcy8xMjguanBnXCIsXG4gICAgXCJjYXJsb3NibGFuY29fZXUvMTI4LmpwZ1wiLFxuICAgIFwibGVvbmZlZG90b3YvMTI4LmpwZ1wiLFxuICAgIFwicmFuZ2FmYW5ncy8xMjguanBnXCIsXG4gICAgXCJjaHJpc19mcmVlcy8xMjguanBnXCIsXG4gICAgXCJ0Z29ybXR4LzEyOC5qcGdcIixcbiAgICBcImJyeWFuX3RvcGhhbS8xMjguanBnXCIsXG4gICAgXCJqcHNjcmliYmxlcy8xMjguanBnXCIsXG4gICAgXCJtaWdodHk1NS8xMjguanBnXCIsXG4gICAgXCJjYXJib250d2VsdmUvMTI4LmpwZ1wiLFxuICAgIFwiaXNhYWNmaWZ0aC8xMjguanBnXCIsXG4gICAgXCJpYW1qZGVsZW9uLzEyOC5qcGdcIixcbiAgICBcInNub3d3cml0ZS8xMjguanBnXCIsXG4gICAgXCJiYXJwdXRyby8xMjguanBnXCIsXG4gICAgXCJkcmV3YnlyZWVzZS8xMjguanBnXCIsXG4gICAgXCJzYWNoYWNvcmF6emkvMTI4LmpwZ1wiLFxuICAgIFwiYmlzdHJpYW5pb3NpcC8xMjguanBnXCIsXG4gICAgXCJtYWdvbzA0LzEyOC5qcGdcIixcbiAgICBcInBlaGFtb25kZWxsby8xMjguanBnXCIsXG4gICAgXCJ5YXl0ZWVqYXkvMTI4LmpwZ1wiLFxuICAgIFwiYV9oYXJyaXM4OC8xMjguanBnXCIsXG4gICAgXCJhbGd1bnNhbmFicmlhLzEyOC5qcGdcIixcbiAgICBcInpmb3JyZXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwib3ZhbGwvMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zamdzb3VzYS8xMjguanBnXCIsXG4gICAgXCJnZW9iaWthcy8xMjguanBnXCIsXG4gICAgXCJhaF9saWNlLzEyOC5qcGdcIixcbiAgICBcImxvb25leWRvb2RsZS8xMjguanBnXCIsXG4gICAgXCJuZXJkZ3I4LzEyOC5qcGdcIixcbiAgICBcImRkZ2djY2FhLzEyOC5qcGdcIixcbiAgICBcInphY2tlZWxlci8xMjguanBnXCIsXG4gICAgXCJub3JtYW5ib3gvMTI4LmpwZ1wiLFxuICAgIFwiZWxfZnVlcnRpc2ltby8xMjguanBnXCIsXG4gICAgXCJpc21haWxfYmlsdGFnaS8xMjguanBnXCIsXG4gICAgXCJqdWFuZ29tZXp3LzEyOC5qcGdcIixcbiAgICBcImpubW5yZC8xMjguanBnXCIsXG4gICAgXCJwYXRyaWNrY29vbWJlLzEyOC5qcGdcIixcbiAgICBcInJ5YW5qb2huc29uX21lLzEyOC5qcGdcIixcbiAgICBcIm1hcmtvbHNjaGVza3kvMTI4LmpwZ1wiLFxuICAgIFwiamVmZmdvbGVuc2tpLzEyOC5qcGdcIixcbiAgICBcImt2YXNuaWMvMTI4LmpwZ1wiLFxuICAgIFwibGluZHNleXppbGxhLzEyOC5qcGdcIixcbiAgICBcImdhdWNob21hdHQvMTI4LmpwZ1wiLFxuICAgIFwiYWZ1c2luYXR0by8xMjguanBnXCIsXG4gICAgXCJrZXZpbm9oLzEyOC5qcGdcIixcbiAgICBcIm9rYW5zdXJyZWVsLzEyOC5qcGdcIixcbiAgICBcImFkYW1hd2Vzb21lZmFjZS8xMjguanBnXCIsXG4gICAgXCJlbWlsZWJvdWRlbGluZy8xMjguanBnXCIsXG4gICAgXCJhcmlzaGlfLzEyOC5qcGdcIixcbiAgICBcImp1YW5tYW1hcnRpbmV6LzEyOC5qcGdcIixcbiAgICBcIndpa2l6aW5lci8xMjguanBnXCIsXG4gICAgXCJkYW50aG1zLzEyOC5qcGdcIixcbiAgICBcIm1rZ2luZm8vMTI4LmpwZ1wiLFxuICAgIFwidGVycm9ycGl4ZWwvMTI4LmpwZ1wiLFxuICAgIFwiY3VyaW91c29uYXV0LzEyOC5qcGdcIixcbiAgICBcInByaGVlbW8vMTI4LmpwZ1wiLFxuICAgIFwibWljaGFlbGNvbGVuc28vMTI4LmpwZ1wiLFxuICAgIFwiZm9jenppLzEyOC5qcGdcIixcbiAgICBcIm1hcnRpcDA3LzEyOC5qcGdcIixcbiAgICBcInRoYW9kYW5nMTcvMTI4LmpwZ1wiLFxuICAgIFwiam9obmNhZmF6emEvMTI4LmpwZ1wiLFxuICAgIFwicm9iaW5sYXlmaWVsZC8xMjguanBnXCIsXG4gICAgXCJmcmFuY2lzY29hbWsvMTI4LmpwZ1wiLFxuICAgIFwiYWJkdWxoeWV1ay8xMjguanBnXCIsXG4gICAgXCJtYXJrbGFtYi8xMjguanBnXCIsXG4gICAgXCJlZG9iZW5lLzEyOC5qcGdcIixcbiAgICBcImFuZHJlc2VuZnJlZHJpay8xMjguanBnXCIsXG4gICAgXCJtaWthZWxqb3JodWx0LzEyOC5qcGdcIixcbiAgICBcImNocmlzc2xvd2lrLzEyOC5qcGdcIixcbiAgICBcInZpbmNpYXJ0cy8xMjguanBnXCIsXG4gICAgXCJtZWVsZm9yZC8xMjguanBnXCIsXG4gICAgXCJlbGxpb3Rub2x0ZW4vMTI4LmpwZ1wiLFxuICAgIFwieWVodWRhYi8xMjguanBnXCIsXG4gICAgXCJ2aWpheWthcnRoaWsvMTI4LmpwZ1wiLFxuICAgIFwiYmZyb2hzLzEyOC5qcGdcIixcbiAgICBcImpvc2VwX21hcnRpbnMvMTI4LmpwZ1wiLFxuICAgIFwiYXR0YWNrcy8xMjguanBnXCIsXG4gICAgXCJzdXI0ZHllLzEyOC5qcGdcIixcbiAgICBcInR1bXNraS8xMjguanBnXCIsXG4gICAgXCJpbnN0YWxveC8xMjguanBnXCIsXG4gICAgXCJtYW5nb3NhbmdvLzEyOC5qcGdcIixcbiAgICBcInBhdWxmYXJpbm8vMTI4LmpwZ1wiLFxuICAgIFwia2F6YWt5OTk5LzEyOC5qcGdcIixcbiAgICBcImtpd2l1cG92ZXIvMTI4LmpwZ1wiLFxuICAgIFwibnZrem5lbW8vMTI4LmpwZ1wiLFxuICAgIFwidG9tX2V2ZW4vMTI4LmpwZ1wiLFxuICAgIFwicmF0YnVzLzEyOC5qcGdcIixcbiAgICBcIndvb2RzbWFuMDAxLzEyOC5qcGdcIixcbiAgICBcImpvc2htZWRlc2tpLzEyOC5qcGdcIixcbiAgICBcInRoZXdpbGxiZWFyZC8xMjguanBnXCIsXG4gICAgXCJwc2Fpa2FsaS8xMjguanBnXCIsXG4gICAgXCJqb2VfYmxhY2svMTI4LmpwZ1wiLFxuICAgIFwiYWxlaW5hZHNheXMvMTI4LmpwZ1wiLFxuICAgIFwibWFyY3VzZ29yaWxsaXVzLzEyOC5qcGdcIixcbiAgICBcImhvdGFfdi8xMjguanBnXCIsXG4gICAgXCJqZ2h5bGxlYmVydC8xMjguanBnXCIsXG4gICAgXCJzaGluemUvMTI4LmpwZ1wiLFxuICAgIFwiamFucGFsb3VuZWsvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW1pZXNwb2tlbi8xMjguanBnXCIsXG4gICAgXCJoZXJfcnV1LzEyOC5qcGdcIixcbiAgICBcImRhbnNvd3Rlci8xMjguanBnXCIsXG4gICAgXCJmZWxpcGVhcGlyZXNzLzEyOC5qcGdcIixcbiAgICBcIm1hZ3VnemJyYW5kMmQvMTI4LmpwZ1wiLFxuICAgIFwicG9zdGVyam9iLzEyOC5qcGdcIixcbiAgICBcIm5hdGhhbGllX2ZzLzEyOC5qcGdcIixcbiAgICBcImJvYmJ5dHdvc2hvZXMvMTI4LmpwZ1wiLFxuICAgIFwiZHJlaXpsZS8xMjguanBnXCIsXG4gICAgXCJqZXJlbXltb3V0b24vMTI4LmpwZ1wiLFxuICAgIFwiZWxpc2FiZXRoa2phZXIvMTI4LmpwZ1wiLFxuICAgIFwibm90YmFkYXJ0LzEyOC5qcGdcIixcbiAgICBcIm1vaGFucm9oaXRoLzEyOC5qcGdcIixcbiAgICBcImpsc29sZXJkZWx0b3JvLzEyOC5qcGdcIixcbiAgICBcIml0c2thd3Nhci8xMjguanBnXCIsXG4gICAgXCJzbG93c3BvY2svMTI4LmpwZ1wiLFxuICAgIFwienZjaGtlbGx5LzEyOC5qcGdcIixcbiAgICBcIndpbGphbnNsb2ZzdHJhLzEyOC5qcGdcIixcbiAgICBcImNyYWlnaGVubmViZXJyeS8xMjguanBnXCIsXG4gICAgXCJ0cnViZWF0dG8vMTI4LmpwZ1wiLFxuICAgIFwianVhdW1sb2wvMTI4LmpwZ1wiLFxuICAgIFwic2Ftc2NvdXRvLzEyOC5qcGdcIixcbiAgICBcIkJlbm91YXJyYWRlTS8xMjguanBnXCIsXG4gICAgXCJnaXBzeV9yYWYvMTI4LmpwZ1wiLFxuICAgIFwibmV0b25ldF9pbC8xMjguanBnXCIsXG4gICAgXCJhcmtva29sZXkvMTI4LmpwZ1wiLFxuICAgIFwiaXRzYWppbWl0aGluZy8xMjguanBnXCIsXG4gICAgXCJzbWFsb25zby8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JkZWFuZGEvMTI4LmpwZ1wiLFxuICAgIFwiX2R3aXRlXy8xMjguanBnXCIsXG4gICAgXCJyaWNoYXJkZ2FycmV0dHMvMTI4LmpwZ1wiLFxuICAgIFwiZ3JlZ3J3aWxraW5zb24vMTI4LmpwZ1wiLFxuICAgIFwiYW5hdG9saW5pY29sYWUvMTI4LmpwZ1wiLFxuICAgIFwibHU0c2gxaS8xMjguanBnXCIsXG4gICAgXCJzdGVmYW5vdGlybG9uaS8xMjguanBnXCIsXG4gICAgXCJvc3RpcmJ1LzEyOC5qcGdcIixcbiAgICBcImRhcmN5c3RvbmdlLzEyOC5qcGdcIixcbiAgICBcIm5haXRhbmFtb3Jlbm8vMTI4LmpwZ1wiLFxuICAgIFwibWljaGFlbGNvbWlza2V5LzEyOC5qcGdcIixcbiAgICBcImFkaGlhcmRhbmEvMTI4LmpwZ1wiLFxuICAgIFwibWFyY29tYW5vXy8xMjguanBnXCIsXG4gICAgXCJkYXZpZGNhemFsaXMvMTI4LmpwZ1wiLFxuICAgIFwiZmFsY29uZXJpZS8xMjguanBnXCIsXG4gICAgXCJncmVna2lsaWFuLzEyOC5qcGdcIixcbiAgICBcImJjcmFkLzEyOC5qcGdcIixcbiAgICBcImJvbHphbm1hcmNvLzEyOC5qcGdcIixcbiAgICBcImxvd19yZXMvMTI4LmpwZ1wiLFxuICAgIFwidmxhamtpLzEyOC5qcGdcIixcbiAgICBcInBldGFyX3Byb2cvMTI4LmpwZ1wiLFxuICAgIFwiam9ua3Nwci8xMjguanBnXCIsXG4gICAgXCJha21hbGZpa3JpLzEyOC5qcGdcIixcbiAgICBcIm1mYWNjaGluZWxsby8xMjguanBnXCIsXG4gICAgXCJhdGFuaXNtLzEyOC5qcGdcIixcbiAgICBcImhhcnJ5X3Npc3RhbGFtLzEyOC5qcGdcIixcbiAgICBcIm11cnJheXN3aWZ0LzEyOC5qcGdcIixcbiAgICBcImJvYndhc3Nlcm1hbm4vMTI4LmpwZ1wiLFxuICAgIFwiZ2F2cjFsMC8xMjguanBnXCIsXG4gICAgXCJtYWRzaGVuc2VsLzEyOC5qcGdcIixcbiAgICBcIm1yX3N1YnRsZS8xMjguanBnXCIsXG4gICAgXCJkZXZpbGpob18vMTI4LmpwZ1wiLFxuICAgIFwic2FsaW1pYW5vZmYvMTI4LmpwZ1wiLFxuICAgIFwiam9ldHJ1ZXNkZWxsLzEyOC5qcGdcIixcbiAgICBcInR3aXR0eXBvcmsvMTI4LmpwZ1wiLFxuICAgIFwiYWlyc2t5bGFyLzEyOC5qcGdcIixcbiAgICBcImRuZXprdW1hci8xMjguanBnXCIsXG4gICAgXCJkZ2FqamFyLzEyOC5qcGdcIixcbiAgICBcImNoZXJpZl9iLzEyOC5qcGdcIixcbiAgICBcInNhbHZhZmMvMTI4LmpwZ1wiLFxuICAgIFwibG91aXNfY3VycmllLzEyOC5qcGdcIixcbiAgICBcImRlZWVucmlnaHQvMTI4LmpwZ1wiLFxuICAgIFwiY3liaW5kLzEyOC5qcGdcIixcbiAgICBcImV5cm9ubi8xMjguanBnXCIsXG4gICAgXCJ2aWNreXNoaXRzLzEyOC5qcGdcIixcbiAgICBcInN3ZWV0ZGVsaXNhLzEyOC5qcGdcIixcbiAgICBcImNib2xsZXIxLzEyOC5qcGdcIixcbiAgICBcImFuZHJlc2RqYXNzby8xMjguanBnXCIsXG4gICAgXCJtZWx2aW5kaWRpdC8xMjguanBnXCIsXG4gICAgXCJhbmR5c29sb21vbi8xMjguanBnXCIsXG4gICAgXCJ0aGFpc3NlbGVuYXRvcl8vMTI4LmpwZ1wiLFxuICAgIFwibHZvdmVub2svMTI4LmpwZ1wiLFxuICAgIFwiZ2l1bGl1c2EvMTI4LmpwZ1wiLFxuICAgIFwiYmVseWFldl9ycy8xMjguanBnXCIsXG4gICAgXCJvdmVyY2xvYWNrZWQvMTI4LmpwZ1wiLFxuICAgIFwia2FtYWxfY2hhbmVtYW4vMTI4LmpwZ1wiLFxuICAgIFwiaW5jdWJvODIvMTI4LmpwZ1wiLFxuICAgIFwiaGVsbG9mZXZlcnJyci8xMjguanBnXCIsXG4gICAgXCJtaGFsaWdvd3NraS8xMjguanBnXCIsXG4gICAgXCJzdW5sYW5kaWN0d2luLzEyOC5qcGdcIixcbiAgICBcImJ1NzkyMS8xMjguanBnXCIsXG4gICAgXCJhbmR5dGxhdy8xMjguanBnXCIsXG4gICAgXCJqZXJlbWVyeS8xMjguanBnXCIsXG4gICAgXCJmaW5jaGprZS8xMjguanBnXCIsXG4gICAgXCJtYW5pZ20vMTI4LmpwZ1wiLFxuICAgIFwidW11cmdkay8xMjguanBnXCIsXG4gICAgXCJzY290dGZlbHRoYW0vMTI4LmpwZ1wiLFxuICAgIFwiZ2Fuc2VyZW5lLzEyOC5qcGdcIixcbiAgICBcIm11dHVfa3Jpc2gvMTI4LmpwZ1wiLFxuICAgIFwiam9keXRhZ2dhcnQvMTI4LmpwZ1wiLFxuICAgIFwibnRmYmxvZy8xMjguanBnXCIsXG4gICAgXCJ0YW52ZWVycmFvLzEyOC5qcGdcIixcbiAgICBcImhmYWx1Y2FzLzEyOC5qcGdcIixcbiAgICBcImFseGxlcm95ZGV2YWwvMTI4LmpwZ1wiLFxuICAgIFwia3VjaW5nYmVsYW5nNC8xMjguanBnXCIsXG4gICAgXCJiYXJnYW9yb2JhbG8vMTI4LmpwZ1wiLFxuICAgIFwiY29sZ3J1di8xMjguanBnXCIsXG4gICAgXCJzdGFsZXdpbmUvMTI4LmpwZ1wiLFxuICAgIFwia3lsZWZyb3N0LzEyOC5qcGdcIixcbiAgICBcImJhdW1hbm56b25lLzEyOC5qcGdcIixcbiAgICBcImFuZ2VsY29sYmVyZy8xMjguanBnXCIsXG4gICAgXCJzYWNoaW5nYXdhcy8xMjguanBnXCIsXG4gICAgXCJqanNoYXcxNC8xMjguanBnXCIsXG4gICAgXCJyYW1hbmF0aGFuX3BkeS8xMjguanBnXCIsXG4gICAgXCJqb2huZGV6ZW1iZXIvMTI4LmpwZ1wiLFxuICAgIFwibmlsc2hvZW5zb24vMTI4LmpwZ1wiLFxuICAgIFwiYnJhbmRvbm1vcnJlYWxlLzEyOC5qcGdcIixcbiAgICBcIm51dHp1bWkvMTI4LmpwZ1wiLFxuICAgIFwiYnJhbmRvbmZsYXRzb2RhLzEyOC5qcGdcIixcbiAgICBcInNlcmdleWFsbW9uZS8xMjguanBnXCIsXG4gICAgXCJrbGVmdWUvMTI4LmpwZ1wiLFxuICAgIFwia2lyYW5nb3BhbC8xMjguanBnXCIsXG4gICAgXCJiYXVtYW5uX2FsZXgvMTI4LmpwZ1wiLFxuICAgIFwibWF0dGhld2theV8vMTI4LmpwZ1wiLFxuICAgIFwiamF5X3dpbGJ1cm4vMTI4LmpwZ1wiLFxuICAgIFwic2hlc2dhcmVkLzEyOC5qcGdcIixcbiAgICBcImFwcmllbmRlYXUvMTI4LmpwZ1wiLFxuICAgIFwiam9obnJpb3JkYW4vMTI4LmpwZ1wiLFxuICAgIFwid2FrZV9ncy8xMjguanBnXCIsXG4gICAgXCJhbGVrc2l0YXBwdXJhLzEyOC5qcGdcIixcbiAgICBcImVtc2d1bGFtLzEyOC5qcGdcIixcbiAgICBcInhpbGFudHJhLzEyOC5qcGdcIixcbiAgICBcImltb21lbnVpLzEyOC5qcGdcIixcbiAgICBcInNpcmNhbGViZ3JvdmUvMTI4LmpwZ1wiLFxuICAgIFwibmV3YnJ1c2hlcy8xMjguanBnXCIsXG4gICAgXCJoc2lueW8yMy8xMjguanBnXCIsXG4gICAgXCJtNHJpby8xMjguanBnXCIsXG4gICAgXCJrYXRpZW1kYWx5LzEyOC5qcGdcIixcbiAgICBcInM0ZjEvMTI4LmpwZ1wiLFxuICAgIFwiZWNvbW1lcmNlaWwvMTI4LmpwZ1wiLFxuICAgIFwibWFybGluamF5YWtvZHkvMTI4LmpwZ1wiLFxuICAgIFwic3dvb3NoeWN1ZWIvMTI4LmpwZ1wiLFxuICAgIFwic2FuZ2R0aC8xMjguanBnXCIsXG4gICAgXCJjb2RlcmRpYXovMTI4LmpwZ1wiLFxuICAgIFwiYmx1ZWZ4Xy8xMjguanBnXCIsXG4gICAgXCJ2aXZla3BydnIvMTI4LmpwZ1wiLFxuICAgIFwic2FzaGFfc2hlc3Rha292LzEyOC5qcGdcIixcbiAgICBcImV1Z2VuZWV3ZWIvMTI4LmpwZ1wiLFxuICAgIFwiZGdjbGVnZy8xMjguanBnXCIsXG4gICAgXCJuMWdodF9jb2Rlci8xMjguanBnXCIsXG4gICAgXCJkaXhjaGVuLzEyOC5qcGdcIixcbiAgICBcImJsYWtlaGF3a3N3b3J0aC8xMjguanBnXCIsXG4gICAgXCJ0cnVlYmxvb2RfMzMvMTI4LmpwZ1wiLFxuICAgIFwiaGFpX25pbmhfbmd1eWVuLzEyOC5qcGdcIixcbiAgICBcIm1hcmNsZ29uemFsZXMvMTI4LmpwZ1wiLFxuICAgIFwieWVzbWVjay8xMjguanBnXCIsXG4gICAgXCJzdGVwaGNvdWUvMTI4LmpwZ1wiLFxuICAgIFwiZG9yb25tYWxraS8xMjguanBnXCIsXG4gICAgXCJydWVobGRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJhbmFzbmFrYXdhLzEyOC5qcGdcIixcbiAgICBcImtpamFubWFoYXJqYW4vMTI4LmpwZ1wiLFxuICAgIFwid2VhcmVzYXZhcy8xMjguanBnXCIsXG4gICAgXCJzdGVmdmRoYW0vMTI4LmpwZ1wiLFxuICAgIFwidHdlZXR1YmhhaS8xMjguanBnXCIsXG4gICAgXCJhbGVjYXJwZW50aWVyLzEyOC5qcGdcIixcbiAgICBcImZpdGVyaWsvMTI4LmpwZ1wiLFxuICAgIFwiYW50b255cnluZHlhLzEyOC5qcGdcIixcbiAgICBcImQwMG1hei8xMjguanBnXCIsXG4gICAgXCJ0aGVvbmx5emVrZS8xMjguanBnXCIsXG4gICAgXCJtaXNzYWFhbXkvMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zbS8xMjguanBnXCIsXG4gICAgXCJtYW5la2VudGhlLzEyOC5qcGdcIixcbiAgICBcInJlZXRhamF5ZW5kcmEvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW15c2hpbWtvLzEyOC5qcGdcIixcbiAgICBcImp1c3RpbnJncmFoYW0vMTI4LmpwZ1wiLFxuICAgIFwic3RlZmFub3pvZmZvbGkvMTI4LmpwZ1wiLFxuICAgIFwib3ZlcnJhLzEyOC5qcGdcIixcbiAgICBcIm1yZWJheTAwNy8xMjguanBnXCIsXG4gICAgXCJzaHZlbG85Ni8xMjguanBnXCIsXG4gICAgXCJweXJvbml0ZS8xMjguanBnXCIsXG4gICAgXCJ0aGVkanBldGVyc2VuLzEyOC5qcGdcIixcbiAgICBcInJ0eXVrbWFldi8xMjguanBnXCIsXG4gICAgXCJfd2lsbGlhbWd1ZXJyYS8xMjguanBnXCIsXG4gICAgXCJhbGJlcnRhdWd1c3Rpbi8xMjguanBnXCIsXG4gICAgXCJ2aWthc2hwYXRoYWsxOC8xMjguanBnXCIsXG4gICAgXCJrZXZpbmpvaG5kYXl5LzEyOC5qcGdcIixcbiAgICBcInZqX2RlbWllbi8xMjguanBnXCIsXG4gICAgXCJjb2xpcnBpeG9pbC8xMjguanBnXCIsXG4gICAgXCJnb2RkYXJkbGV3aXMvMTI4LmpwZ1wiLFxuICAgIFwibGFhc2xpLzEyOC5qcGdcIixcbiAgICBcImpxaXVzcy8xMjguanBnXCIsXG4gICAgXCJoZXljYW10YXlsb3IvMTI4LmpwZ1wiLFxuICAgIFwibmFzdHlhX21hbmUvMTI4LmpwZ1wiLFxuICAgIFwibWFzdGVybWluZGVzaWduLzEyOC5qcGdcIixcbiAgICBcImNjaW5vamFzc28xLzEyOC5qcGdcIixcbiAgICBcIm55YW5jZWNvbS8xMjguanBnXCIsXG4gICAgXCJzYW5keXdvb2RydWZmLzEyOC5qcGdcIixcbiAgICBcImJpZ2hhbmRkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwic2J0cmFuc3BhcmVudC8xMjguanBnXCIsXG4gICAgXCJhdmlkZGF5ZW50b25iYXkvMTI4LmpwZ1wiLFxuICAgIFwicmljaHdpbGQvMTI4LmpwZ1wiLFxuICAgIFwia2F5c2l4X2Rpenp5LzEyOC5qcGdcIixcbiAgICBcInR1cjhsZS8xMjguanBnXCIsXG4gICAgXCJzZXllZGhvc3NlaW4xLzEyOC5qcGdcIixcbiAgICBcInByaXZldHdhZ25lci8xMjguanBnXCIsXG4gICAgXCJlbW1hbmRlbm4vMTI4LmpwZ1wiLFxuICAgIFwiZGV2X2Vzc2VudGlhbHMvMTI4LmpwZ1wiLFxuICAgIFwiam1mc29jaWFsLzEyOC5qcGdcIixcbiAgICBcIl95YXJkZW5vb24vMTI4LmpwZ1wiLFxuICAgIFwibWF0ZWFvZHZpdGV6YS8xMjguanBnXCIsXG4gICAgXCJ3ZWF2ZXJtZWRpYS8xMjguanBnXCIsXG4gICAgXCJtdWZhZGRhbF9tdy8xMjguanBnXCIsXG4gICAgXCJoYWZlZXNraGFuLzEyOC5qcGdcIixcbiAgICBcImFzaGVybmF0YWxpLzEyOC5qcGdcIixcbiAgICBcInN1bGFxby8xMjguanBnXCIsXG4gICAgXCJlZGRpZWNoZW4vMTI4LmpwZ1wiLFxuICAgIFwiam9zZWNhcmxvc3BzaC8xMjguanBnXCIsXG4gICAgXCJ2bV9mLzEyOC5qcGdcIixcbiAgICBcImVucmljb2NpY2NvbmkvMTI4LmpwZ1wiLFxuICAgIFwiZGFubWFydGluNzAvMTI4LmpwZ1wiLFxuICAgIFwiZ21vdXJpZXIvMTI4LmpwZ1wiLFxuICAgIFwiZG9uamFpbi8xMjguanBnXCIsXG4gICAgXCJtcnhsb2thLzEyOC5qcGdcIixcbiAgICBcIl9wZWRyb3BpbmhvLzEyOC5qcGdcIixcbiAgICBcImVpdGFyYWZhLzEyOC5qcGdcIixcbiAgICBcIm9zY2Fyb3d1c3UvMTI4LmpwZ1wiLFxuICAgIFwicmFscGhfbGFtLzEyOC5qcGdcIixcbiAgICBcInBhbmNoYWphbnlhZy8xMjguanBnXCIsXG4gICAgXCJ3b29keWRvdG14LzEyOC5qcGdcIixcbiAgICBcImplcnJ5YmFpMTkwNy8xMjguanBnXCIsXG4gICAgXCJtYXJzaGFsbGNoZW5fLzEyOC5qcGdcIixcbiAgICBcInhhbW9yZXAvMTI4LmpwZ1wiLFxuICAgIFwiYWlvX19fLzEyOC5qcGdcIixcbiAgICBcImNoYWFiYW5lX3dhaWwvMTI4LmpwZ1wiLFxuICAgIFwidHhjeC8xMjguanBnXCIsXG4gICAgXCJha2FzaHNoYXJtYTM5LzEyOC5qcGdcIixcbiAgICBcImZhbGxpbmdfc291bC8xMjguanBnXCIsXG4gICAgXCJzYWlucmFqYS8xMjguanBnXCIsXG4gICAgXCJtdWd1a2FtaWwvMTI4LmpwZ1wiLFxuICAgIFwiam9oYW5uZXNuZXUvMTI4LmpwZ1wiLFxuICAgIFwibWFya3dpZW5hbmRzLzEyOC5qcGdcIixcbiAgICBcImthcnRoaXBhbnJhai8xMjguanBnXCIsXG4gICAgXCJiYWxha2F5dXJpeS8xMjguanBnXCIsXG4gICAgXCJhbGFuX3poYW5nXy8xMjguanBnXCIsXG4gICAgXCJsYXllcnNzc3MvMTI4LmpwZ1wiLFxuICAgIFwia2FzcGVybm9yZGt2aXN0LzEyOC5qcGdcIixcbiAgICBcIm1pcmZhbnF1cmVzaGkvMTI4LmpwZ1wiLFxuICAgIFwiaGFubmFfc21pLzEyOC5qcGdcIixcbiAgICBcIlZNaWxlc2N1LzEyOC5qcGdcIixcbiAgICBcImFlb241Ni8xMjguanBnXCIsXG4gICAgXCJtX2thbGlicnkvMTI4LmpwZ1wiLFxuICAgIFwic3JlZWppdGhleHAvMTI4LmpwZ1wiLFxuICAgIFwiZGljZXNhbGVzLzEyOC5qcGdcIixcbiAgICBcImRob290X2FtaXQvMTI4LmpwZ1wiLFxuICAgIFwic21lbm92LzEyOC5qcGdcIixcbiAgICBcImxvbmVzb21lbGVtb24vMTI4LmpwZ1wiLFxuICAgIFwidmxhZGltaXJkZXZpYy8xMjguanBnXCIsXG4gICAgXCJqb2VsY2lwcmlhbm8vMTI4LmpwZ1wiLFxuICAgIFwiaGFsaWdhbGloYXJ1bi8xMjguanBnXCIsXG4gICAgXCJidWxlc3dhcG5pbC8xMjguanBnXCIsXG4gICAgXCJzZXJlZmthLzEyOC5qcGdcIixcbiAgICBcImlmYXJhZm9ub3cvMTI4LmpwZ1wiLFxuICAgIFwidmlrYXN2aW5mb3RlY2gvMTI4LmpwZ1wiLFxuICAgIFwidXJydXRpbWVvbGkvMTI4LmpwZ1wiLFxuICAgIFwiYXJlYW5kYWNvbS8xMjguanBnXCJcbl07XG5cbmVuLmludGVybmV0LmF2YXRhcl91cmkgPSBbXTtcblxuZm9yICh2YXIgaSA9IDA7IGkgPCBhdmF0YXJVcmkubGVuZ3RoOyBpKyspIHtcbiAgZW4uaW50ZXJuZXQuYXZhdGFyX3VyaS5wdXNoKFwiaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3VpZmFjZXMvZmFjZXMvdHdpdHRlci9cIiArIGF2YXRhclVyaVtpXSk7XG59O1xuXG5lbi5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdLFxuICBcInN1cHBsZW1lbnRhbFwiOiBbXG4gICAgXCJhYmJhc1wiLFxuICAgIFwiYWJkdWNvXCIsXG4gICAgXCJhYmVvXCIsXG4gICAgXCJhYnNjaWRvXCIsXG4gICAgXCJhYnNjb25kaXR1c1wiLFxuICAgIFwiYWJzZW5zXCIsXG4gICAgXCJhYnNvcmJlb1wiLFxuICAgIFwiYWJzcXVlXCIsXG4gICAgXCJhYnN0ZXJnb1wiLFxuICAgIFwiYWJzdW1cIixcbiAgICBcImFidW5kYW5zXCIsXG4gICAgXCJhYnV0b3JcIixcbiAgICBcImFjY2Vkb1wiLFxuICAgIFwiYWNjZW5kb1wiLFxuICAgIFwiYWNjZXB0dXNcIixcbiAgICBcImFjY2lwaW9cIixcbiAgICBcImFjY29tbW9kb1wiLFxuICAgIFwiYWNjdXNhdG9yXCIsXG4gICAgXCJhY2VyXCIsXG4gICAgXCJhY2VyYml0YXNcIixcbiAgICBcImFjZXJ2dXNcIixcbiAgICBcImFjaWR1c1wiLFxuICAgIFwiYWNpZXNcIixcbiAgICBcImFjcXVpcm9cIixcbiAgICBcImFjc2lcIixcbiAgICBcImFkYW1vXCIsXG4gICAgXCJhZGF1Z2VvXCIsXG4gICAgXCJhZGRvXCIsXG4gICAgXCJhZGR1Y29cIixcbiAgICBcImFkZW1wdGlvXCIsXG4gICAgXCJhZGVvXCIsXG4gICAgXCJhZGVwdGlvXCIsXG4gICAgXCJhZGZlY3R1c1wiLFxuICAgIFwiYWRmZXJvXCIsXG4gICAgXCJhZGZpY2lvXCIsXG4gICAgXCJhZGZsaWN0b1wiLFxuICAgIFwiYWRoYWVyb1wiLFxuICAgIFwiYWRodWNcIixcbiAgICBcImFkaWNpb1wiLFxuICAgIFwiYWRpbXBsZW9cIixcbiAgICBcImFkaW52ZW50aXRpYXNcIixcbiAgICBcImFkaXBpc2NvclwiLFxuICAgIFwiYWRpdXZvXCIsXG4gICAgXCJhZG1pbmlzdHJhdGlvXCIsXG4gICAgXCJhZG1pcmF0aW9cIixcbiAgICBcImFkbWl0dG9cIixcbiAgICBcImFkbW9uZW9cIixcbiAgICBcImFkbW92ZW9cIixcbiAgICBcImFkbnVvXCIsXG4gICAgXCJhZG9wdG9cIixcbiAgICBcImFkc2lkdWVcIixcbiAgICBcImFkc3RyaW5nb1wiLFxuICAgIFwiYWRzdWVzY29cIixcbiAgICBcImFkc3VtXCIsXG4gICAgXCJhZHVsYXRpb1wiLFxuICAgIFwiYWR1bGVzY2Vuc1wiLFxuICAgIFwiYWR1bHR1c1wiLFxuICAgIFwiYWR1cm9cIixcbiAgICBcImFkdmVuaW9cIixcbiAgICBcImFkdmVyc3VzXCIsXG4gICAgXCJhZHZvY29cIixcbiAgICBcImFlZGlmaWNpdW1cIixcbiAgICBcImFlZ2VyXCIsXG4gICAgXCJhZWdyZVwiLFxuICAgIFwiYWVncm90YXRpb1wiLFxuICAgIFwiYWVncnVzXCIsXG4gICAgXCJhZW5ldXNcIixcbiAgICBcImFlcXVpdGFzXCIsXG4gICAgXCJhZXF1dXNcIixcbiAgICBcImFlclwiLFxuICAgIFwiYWVzdGFzXCIsXG4gICAgXCJhZXN0aXZ1c1wiLFxuICAgIFwiYWVzdHVzXCIsXG4gICAgXCJhZXRhc1wiLFxuICAgIFwiYWV0ZXJudXNcIixcbiAgICBcImFnZXJcIixcbiAgICBcImFnZ2Vyb1wiLFxuICAgIFwiYWdncmVkaW9yXCIsXG4gICAgXCJhZ25pdGlvXCIsXG4gICAgXCJhZ25vc2NvXCIsXG4gICAgXCJhZ29cIixcbiAgICBcImFpdFwiLFxuICAgIFwiYWl1bnRcIixcbiAgICBcImFsaWVudXNcIixcbiAgICBcImFsaWlcIixcbiAgICBcImFsaW9xdWlcIixcbiAgICBcImFsaXF1YVwiLFxuICAgIFwiYWxpdXNcIixcbiAgICBcImFsbGF0dXNcIixcbiAgICBcImFsb1wiLFxuICAgIFwiYWx0ZXJcIixcbiAgICBcImFsdHVzXCIsXG4gICAgXCJhbHZldXNcIixcbiAgICBcImFtYXJpdHVkb1wiLFxuICAgIFwiYW1iaXR1c1wiLFxuICAgIFwiYW1idWxvXCIsXG4gICAgXCJhbWljaXRpYVwiLFxuICAgIFwiYW1pY3VsdW1cIixcbiAgICBcImFtaXNzaW9cIixcbiAgICBcImFtaXRhXCIsXG4gICAgXCJhbWl0dG9cIixcbiAgICBcImFtb1wiLFxuICAgIFwiYW1vclwiLFxuICAgIFwiYW1vdmVvXCIsXG4gICAgXCJhbXBsZXh1c1wiLFxuICAgIFwiYW1wbGl0dWRvXCIsXG4gICAgXCJhbXBsdXNcIixcbiAgICBcImFuY2lsbGFcIixcbiAgICBcImFuZ2VsdXNcIixcbiAgICBcImFuZ3VsdXNcIixcbiAgICBcImFuZ3VzdHVzXCIsXG4gICAgXCJhbmltYWR2ZXJ0b1wiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImFuaW11c1wiLFxuICAgIFwiYW5udXNcIixcbiAgICBcImFuc2VyXCIsXG4gICAgXCJhbnRlXCIsXG4gICAgXCJhbnRlYVwiLFxuICAgIFwiYW50ZXBvbm9cIixcbiAgICBcImFudGlxdXVzXCIsXG4gICAgXCJhcGVyaW9cIixcbiAgICBcImFwZXJ0ZVwiLFxuICAgIFwiYXBvc3RvbHVzXCIsXG4gICAgXCJhcHBhcmF0dXNcIixcbiAgICBcImFwcGVsbG9cIixcbiAgICBcImFwcG9ub1wiLFxuICAgIFwiYXBwb3NpdHVzXCIsXG4gICAgXCJhcHByb2JvXCIsXG4gICAgXCJhcHRvXCIsXG4gICAgXCJhcHR1c1wiLFxuICAgIFwiYXB1ZFwiLFxuICAgIFwiYXF1YVwiLFxuICAgIFwiYXJhXCIsXG4gICAgXCJhcmFuZWFcIixcbiAgICBcImFyYml0cm9cIixcbiAgICBcImFyYm9yXCIsXG4gICAgXCJhcmJ1c3R1bVwiLFxuICAgIFwiYXJjYVwiLFxuICAgIFwiYXJjZW9cIixcbiAgICBcImFyY2Vzc29cIixcbiAgICBcImFyY3VzXCIsXG4gICAgXCJhcmdlbnR1bVwiLFxuICAgIFwiYXJndW1lbnR1bVwiLFxuICAgIFwiYXJndW9cIixcbiAgICBcImFybWFcIixcbiAgICBcImFybWFyaXVtXCIsXG4gICAgXCJhcm1vXCIsXG4gICAgXCJhcm9cIixcbiAgICBcImFyc1wiLFxuICAgIFwiYXJ0aWN1bHVzXCIsXG4gICAgXCJhcnRpZmljaW9zZVwiLFxuICAgIFwiYXJ0b1wiLFxuICAgIFwiYXJ4XCIsXG4gICAgXCJhc2Npc2NvXCIsXG4gICAgXCJhc2NpdFwiLFxuICAgIFwiYXNwZXJcIixcbiAgICBcImFzcGljaW9cIixcbiAgICBcImFzcG9ydG9cIixcbiAgICBcImFzc2VudGF0b3JcIixcbiAgICBcImFzdHJ1bVwiLFxuICAgIFwiYXRhdnVzXCIsXG4gICAgXCJhdGVyXCIsXG4gICAgXCJhdHF1aVwiLFxuICAgIFwiYXRyb2NpdGFzXCIsXG4gICAgXCJhdHJveFwiLFxuICAgIFwiYXR0ZXJvXCIsXG4gICAgXCJhdHRvbGxvXCIsXG4gICAgXCJhdHRvbmJpdHVzXCIsXG4gICAgXCJhdWN0b3JcIixcbiAgICBcImF1Y3R1c1wiLFxuICAgIFwiYXVkYWNpYVwiLFxuICAgIFwiYXVkYXhcIixcbiAgICBcImF1ZGVudGlhXCIsXG4gICAgXCJhdWRlb1wiLFxuICAgIFwiYXVkaW9cIixcbiAgICBcImF1ZGl0b3JcIixcbiAgICBcImF1ZmVyb1wiLFxuICAgIFwiYXVyZXVzXCIsXG4gICAgXCJhdXJpc1wiLFxuICAgIFwiYXVydW1cIixcbiAgICBcImF1dFwiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcImF1dHVzXCIsXG4gICAgXCJhdXhpbGl1bVwiLFxuICAgIFwiYXZhcml0aWFcIixcbiAgICBcImF2YXJ1c1wiLFxuICAgIFwiYXZlaG9cIixcbiAgICBcImF2ZXJ0b1wiLFxuICAgIFwiYXZvY29cIixcbiAgICBcImJhaXVsdXNcIixcbiAgICBcImJhbGJ1c1wiLFxuICAgIFwiYmFyYmFcIixcbiAgICBcImJhcmR1c1wiLFxuICAgIFwiYmFzaXVtXCIsXG4gICAgXCJiZWF0dXNcIixcbiAgICBcImJlbGxpY3VzXCIsXG4gICAgXCJiZWxsdW1cIixcbiAgICBcImJlbmVcIixcbiAgICBcImJlbmVmaWNpdW1cIixcbiAgICBcImJlbmV2b2xlbnRpYVwiLFxuICAgIFwiYmVuaWduZVwiLFxuICAgIFwiYmVzdGlhXCIsXG4gICAgXCJiaWJvXCIsXG4gICAgXCJiaXNcIixcbiAgICBcImJsYW5kaW9yXCIsXG4gICAgXCJib251c1wiLFxuICAgIFwiYm9zXCIsXG4gICAgXCJicmV2aXNcIixcbiAgICBcImNhZG9cIixcbiAgICBcImNhZWN1c1wiLFxuICAgIFwiY2FlbGVzdGlzXCIsXG4gICAgXCJjYWVsdW1cIixcbiAgICBcImNhbGFtaXRhc1wiLFxuICAgIFwiY2FsY2FyXCIsXG4gICAgXCJjYWxjb1wiLFxuICAgIFwiY2FsY3VsdXNcIixcbiAgICBcImNhbGxpZGVcIixcbiAgICBcImNhbXBhbmFcIixcbiAgICBcImNhbmRpZHVzXCIsXG4gICAgXCJjYW5pc1wiLFxuICAgIFwiY2Fub25pY3VzXCIsXG4gICAgXCJjYW50b1wiLFxuICAgIFwiY2FwaWxsdXNcIixcbiAgICBcImNhcGlvXCIsXG4gICAgXCJjYXBpdHVsdXNcIixcbiAgICBcImNhcHRvXCIsXG4gICAgXCJjYXB1dFwiLFxuICAgIFwiY2FyYm9cIixcbiAgICBcImNhcmNlclwiLFxuICAgIFwiY2FyZW9cIixcbiAgICBcImNhcmllc1wiLFxuICAgIFwiY2FyaW9zdXNcIixcbiAgICBcImNhcml0YXNcIixcbiAgICBcImNhcm1lblwiLFxuICAgIFwiY2FycG9cIixcbiAgICBcImNhcnVzXCIsXG4gICAgXCJjYXNzb1wiLFxuICAgIFwiY2FzdGVcIixcbiAgICBcImNhc3VzXCIsXG4gICAgXCJjYXRlbmFcIixcbiAgICBcImNhdGVydmFcIixcbiAgICBcImNhdHR1c1wiLFxuICAgIFwiY2F1ZGFcIixcbiAgICBcImNhdXNhXCIsXG4gICAgXCJjYXV0ZVwiLFxuICAgIFwiY2F2ZW9cIixcbiAgICBcImNhdnVzXCIsXG4gICAgXCJjZWRvXCIsXG4gICAgXCJjZWxlYnJlclwiLFxuICAgIFwiY2VsZXJcIixcbiAgICBcImNlbG9cIixcbiAgICBcImNlbmFcIixcbiAgICBcImNlbmFjdWx1bVwiLFxuICAgIFwiY2Vub1wiLFxuICAgIFwiY2Vuc3VyYVwiLFxuICAgIFwiY2VudHVtXCIsXG4gICAgXCJjZXJub1wiLFxuICAgIFwiY2VybnV1c1wiLFxuICAgIFwiY2VydGVcIixcbiAgICBcImNlcnRvXCIsXG4gICAgXCJjZXJ0dXNcIixcbiAgICBcImNlcnZ1c1wiLFxuICAgIFwiY2V0ZXJhXCIsXG4gICAgXCJjaGFyaXNtYVwiLFxuICAgIFwiY2hpcm9ncmFwaHVtXCIsXG4gICAgXCJjaWJvXCIsXG4gICAgXCJjaWJ1c1wiLFxuICAgIFwiY2ljdXRhXCIsXG4gICAgXCJjaWxpY2l1bVwiLFxuICAgIFwiY2ltZW50YXJpdXNcIixcbiAgICBcImNpbWluYXRpb1wiLFxuICAgIFwiY2luaXNcIixcbiAgICBcImNpcmN1bXZlbmlvXCIsXG4gICAgXCJjaXRvXCIsXG4gICAgXCJjaXZpc1wiLFxuICAgIFwiY2l2aXRhc1wiLFxuICAgIFwiY2xhbVwiLFxuICAgIFwiY2xhbW9cIixcbiAgICBcImNsYXJvXCIsXG4gICAgXCJjbGFydXNcIixcbiAgICBcImNsYXVkZW9cIixcbiAgICBcImNsYXVzdHJ1bVwiLFxuICAgIFwiY2xlbWVudGlhXCIsXG4gICAgXCJjbGliYW51c1wiLFxuICAgIFwiY29hZHVuYXRpb1wiLFxuICAgIFwiY29hZWdyZXNjb1wiLFxuICAgIFwiY29lcGlcIixcbiAgICBcImNvZXJjZW9cIixcbiAgICBcImNvZ2l0b1wiLFxuICAgIFwiY29nbmF0dXNcIixcbiAgICBcImNvZ25vbWVuXCIsXG4gICAgXCJjb2dvXCIsXG4gICAgXCJjb2hhZXJvXCIsXG4gICAgXCJjb2hpYmVvXCIsXG4gICAgXCJjb2hvcnNcIixcbiAgICBcImNvbGxpZ29cIixcbiAgICBcImNvbGxvY29cIixcbiAgICBcImNvbGx1bVwiLFxuICAgIFwiY29sb1wiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbWFcIixcbiAgICBcImNvbWJpYm9cIixcbiAgICBcImNvbWJ1cm9cIixcbiAgICBcImNvbWVkb1wiLFxuICAgIFwiY29tZXNcIixcbiAgICBcImNvbWV0ZXNcIixcbiAgICBcImNvbWlzXCIsXG4gICAgXCJjb21pdGF0dXNcIixcbiAgICBcImNvbW1lbW9yb1wiLFxuICAgIFwiY29tbWlub3JcIixcbiAgICBcImNvbW1vZG9cIixcbiAgICBcImNvbW11bmlzXCIsXG4gICAgXCJjb21wYXJvXCIsXG4gICAgXCJjb21wZWxsb1wiLFxuICAgIFwiY29tcGxlY3R1c1wiLFxuICAgIFwiY29tcG9ub1wiLFxuICAgIFwiY29tcHJlaGVuZG9cIixcbiAgICBcImNvbXB0dXNcIixcbiAgICBcImNvbmF0dXNcIixcbiAgICBcImNvbmNlZG9cIixcbiAgICBcImNvbmNpZG9cIixcbiAgICBcImNvbmN1bGNvXCIsXG4gICAgXCJjb25kaWNvXCIsXG4gICAgXCJjb25kdWNvXCIsXG4gICAgXCJjb25mZXJvXCIsXG4gICAgXCJjb25maWRvXCIsXG4gICAgXCJjb25mb3J0b1wiLFxuICAgIFwiY29uZnVnb1wiLFxuICAgIFwiY29uZ3JlZ2F0aW9cIixcbiAgICBcImNvbmljaW9cIixcbiAgICBcImNvbmllY3RvXCIsXG4gICAgXCJjb25pdG9yXCIsXG4gICAgXCJjb25pdXJhdGlvXCIsXG4gICAgXCJjb25vclwiLFxuICAgIFwiY29ucXVlcm9yXCIsXG4gICAgXCJjb25zY2VuZG9cIixcbiAgICBcImNvbnNlcnZvXCIsXG4gICAgXCJjb25zaWRlcm9cIixcbiAgICBcImNvbnNwZXJnb1wiLFxuICAgIFwiY29uc3RhbnNcIixcbiAgICBcImNvbnN1YXNvclwiLFxuICAgIFwiY29udGFiZXNjb1wiLFxuICAgIFwiY29udGVnb1wiLFxuICAgIFwiY29udGlnb1wiLFxuICAgIFwiY29udHJhXCIsXG4gICAgXCJjb250dXJib1wiLFxuICAgIFwiY29udmVudHVzXCIsXG4gICAgXCJjb252b2NvXCIsXG4gICAgXCJjb3BpYVwiLFxuICAgIFwiY29waW9zZVwiLFxuICAgIFwiY29ybnVcIixcbiAgICBcImNvcm9uYVwiLFxuICAgIFwiY29ycHVzXCIsXG4gICAgXCJjb3JyZXB0aXVzXCIsXG4gICAgXCJjb3JyaWdvXCIsXG4gICAgXCJjb3Jyb2Jvcm9cIixcbiAgICBcImNvcnJ1bXBvXCIsXG4gICAgXCJjb3J1c2N1c1wiLFxuICAgIFwiY290aWRpZVwiLFxuICAgIFwiY3JhcHVsYVwiLFxuICAgIFwiY3Jhc1wiLFxuICAgIFwiY3Jhc3RpbnVzXCIsXG4gICAgXCJjcmVhdG9yXCIsXG4gICAgXCJjcmViZXJcIixcbiAgICBcImNyZWJyb1wiLFxuICAgIFwiY3JlZG9cIixcbiAgICBcImNyZW9cIixcbiAgICBcImNyZXB0aW9cIixcbiAgICBcImNyZXB1c2N1bHVtXCIsXG4gICAgXCJjcmVzY29cIixcbiAgICBcImNyZXRhXCIsXG4gICAgXCJjcmlicm9cIixcbiAgICBcImNyaW5pc1wiLFxuICAgIFwiY3J1Y2lhbWVudHVtXCIsXG4gICAgXCJjcnVkZWxpc1wiLFxuICAgIFwiY3J1ZW50dXNcIixcbiAgICBcImNydXJcIixcbiAgICBcImNydXN0dWx1bVwiLFxuICAgIFwiY3J1eFwiLFxuICAgIFwiY3ViaWN1bGFyaXNcIixcbiAgICBcImN1Yml0dW1cIixcbiAgICBcImN1Ym9cIixcbiAgICBcImN1aVwiLFxuICAgIFwiY3VpdXNcIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJjdWxwb1wiLFxuICAgIFwiY3VsdGVsbHVzXCIsXG4gICAgXCJjdWx0dXJhXCIsXG4gICAgXCJjdW1cIixcbiAgICBcImN1bmFidWxhXCIsXG4gICAgXCJjdW5hZVwiLFxuICAgIFwiY3VuY3RhdGlvXCIsXG4gICAgXCJjdXBpZGl0YXNcIixcbiAgICBcImN1cGlvXCIsXG4gICAgXCJjdXBwZWRpYVwiLFxuICAgIFwiY3VwcmVzc3VzXCIsXG4gICAgXCJjdXJcIixcbiAgICBcImN1cmFcIixcbiAgICBcImN1cmF0aW9cIixcbiAgICBcImN1cmlhXCIsXG4gICAgXCJjdXJpb3NpdGFzXCIsXG4gICAgXCJjdXJpc1wiLFxuICAgIFwiY3Vyb1wiLFxuICAgIFwiY3VycmljdWx1bVwiLFxuICAgIFwiY3VycnVzXCIsXG4gICAgXCJjdXJzaW1cIixcbiAgICBcImN1cnNvXCIsXG4gICAgXCJjdXJzdXNcIixcbiAgICBcImN1cnRvXCIsXG4gICAgXCJjdXJ0dXNcIixcbiAgICBcImN1cnZvXCIsXG4gICAgXCJjdXJ2dXNcIixcbiAgICBcImN1c3RvZGlhXCIsXG4gICAgXCJkYW1uYXRpb1wiLFxuICAgIFwiZGFtbm9cIixcbiAgICBcImRhcGlmZXJcIixcbiAgICBcImRlYmVvXCIsXG4gICAgXCJkZWJpbGl0b1wiLFxuICAgIFwiZGVjZW5zXCIsXG4gICAgXCJkZWNlcm5vXCIsXG4gICAgXCJkZWNldFwiLFxuICAgIFwiZGVjaW11c1wiLFxuICAgIFwiZGVjaXBpb1wiLFxuICAgIFwiZGVjb3JcIixcbiAgICBcImRlY3JldHVtXCIsXG4gICAgXCJkZWN1bWJvXCIsXG4gICAgXCJkZWRlY29yXCIsXG4gICAgXCJkZWRpY29cIixcbiAgICBcImRlZHVjb1wiLFxuICAgIFwiZGVmYWVjb1wiLFxuICAgIFwiZGVmZW5kb1wiLFxuICAgIFwiZGVmZXJvXCIsXG4gICAgXCJkZWZlc3N1c1wiLFxuICAgIFwiZGVmZXRpc2NvclwiLFxuICAgIFwiZGVmaWNpb1wiLFxuICAgIFwiZGVmaWdvXCIsXG4gICAgXCJkZWZsZW9cIixcbiAgICBcImRlZmx1b1wiLFxuICAgIFwiZGVmdW5nb1wiLFxuICAgIFwiZGVnZW5lcm9cIixcbiAgICBcImRlZ2Vyb1wiLFxuICAgIFwiZGVndXN0b1wiLFxuICAgIFwiZGVpbmRlXCIsXG4gICAgXCJkZWxlY3RhdGlvXCIsXG4gICAgXCJkZWxlZ29cIixcbiAgICBcImRlbGVvXCIsXG4gICAgXCJkZWxpYmVyb1wiLFxuICAgIFwiZGVsaWNhdGVcIixcbiAgICBcImRlbGlucXVvXCIsXG4gICAgXCJkZWx1ZG9cIixcbiAgICBcImRlbWVuc1wiLFxuICAgIFwiZGVtZXJnb1wiLFxuICAgIFwiZGVtaXR0b1wiLFxuICAgIFwiZGVtb1wiLFxuICAgIFwiZGVtb25zdHJvXCIsXG4gICAgXCJkZW1vcm9yXCIsXG4gICAgXCJkZW11bGNlb1wiLFxuICAgIFwiZGVtdW1cIixcbiAgICBcImRlbmVnb1wiLFxuICAgIFwiZGVuaXF1ZVwiLFxuICAgIFwiZGVuc1wiLFxuICAgIFwiZGVudW5jaW9cIixcbiAgICBcImRlbnVvXCIsXG4gICAgXCJkZW9yc3VtXCIsXG4gICAgXCJkZXBlcmVvXCIsXG4gICAgXCJkZXBvbm9cIixcbiAgICBcImRlcG9wdWxvXCIsXG4gICAgXCJkZXBvcnRvXCIsXG4gICAgXCJkZXByYWVkb3JcIixcbiAgICBcImRlcHJlY2F0b3JcIixcbiAgICBcImRlcHJpbW9cIixcbiAgICBcImRlcHJvbW9cIixcbiAgICBcImRlcHVsc29cIixcbiAgICBcImRlcHV0b1wiLFxuICAgIFwiZGVyZWxpbnF1b1wiLFxuICAgIFwiZGVyaWRlb1wiLFxuICAgIFwiZGVyaXBpb1wiLFxuICAgIFwiZGVzaWRlcm9cIixcbiAgICBcImRlc2lub1wiLFxuICAgIFwiZGVzaXBpb1wiLFxuICAgIFwiZGVzb2xvXCIsXG4gICAgXCJkZXNwYXJhdHVzXCIsXG4gICAgXCJkZXNwZWN0b1wiLFxuICAgIFwiZGVzcGlybWF0aW9cIixcbiAgICBcImluZml0XCIsXG4gICAgXCJpbmZsYW1tYXRpb1wiLFxuICAgIFwicGFlbnNcIixcbiAgICBcInBhdGlvclwiLFxuICAgIFwicGF0cmlhXCIsXG4gICAgXCJwYXRyb2Npbm9yXCIsXG4gICAgXCJwYXRydXVzXCIsXG4gICAgXCJwYXVjaVwiLFxuICAgIFwicGF1bGF0aW1cIixcbiAgICBcInBhdXBlclwiLFxuICAgIFwicGF4XCIsXG4gICAgXCJwZWNjYXR1c1wiLFxuICAgIFwicGVjY29cIixcbiAgICBcInBlY3RvXCIsXG4gICAgXCJwZWN0dXNcIixcbiAgICBcInBlY3VuaWFcIixcbiAgICBcInBlY3VzXCIsXG4gICAgXCJwZWlvclwiLFxuICAgIFwicGVsXCIsXG4gICAgXCJvY2VyXCIsXG4gICAgXCJzb2NpdXNcIixcbiAgICBcInNvZGFsaXRhc1wiLFxuICAgIFwic29sXCIsXG4gICAgXCJzb2xlb1wiLFxuICAgIFwic29saW9cIixcbiAgICBcInNvbGl0dWRvXCIsXG4gICAgXCJzb2xpdW1cIixcbiAgICBcInNvbGxlcnNcIixcbiAgICBcInNvbGxpY2l0b1wiLFxuICAgIFwic29sdW1cIixcbiAgICBcInNvbHVzXCIsXG4gICAgXCJzb2x1dGlvXCIsXG4gICAgXCJzb2x2b1wiLFxuICAgIFwic29tbmljdWxvc3VzXCIsXG4gICAgXCJzb21udXNcIixcbiAgICBcInNvbml0dXNcIixcbiAgICBcInNvbm9cIixcbiAgICBcInNvcGhpc21hdGFcIixcbiAgICBcInNvcG9yXCIsXG4gICAgXCJzb3JkZW9cIixcbiAgICBcInNvcnRpdHVzXCIsXG4gICAgXCJzcGFyZ29cIixcbiAgICBcInNwZWNpb3N1c1wiLFxuICAgIFwic3BlY3RhY3VsdW1cIixcbiAgICBcInNwZWN1bHVtXCIsXG4gICAgXCJzcGVybm9cIixcbiAgICBcInNwZXJvXCIsXG4gICAgXCJzcGVzXCIsXG4gICAgXCJzcGljdWx1bVwiLFxuICAgIFwic3Bpcml0dXNcIixcbiAgICBcInNwb2xpYXRpb1wiLFxuICAgIFwic3BvbnRlXCIsXG4gICAgXCJzdGFiaWxpc1wiLFxuICAgIFwic3RhdGltXCIsXG4gICAgXCJzdGF0dWFcIixcbiAgICBcInN0ZWxsYVwiLFxuICAgIFwic3RpbGxpY2lkaXVtXCIsXG4gICAgXCJzdGlwZXNcIixcbiAgICBcInN0aXBzXCIsXG4gICAgXCJzdG9cIixcbiAgICBcInN0cmVudXVzXCIsXG4gICAgXCJzdHJ1ZXNcIixcbiAgICBcInN0dWRpb1wiLFxuICAgIFwic3R1bHR1c1wiLFxuICAgIFwic3VhZGVvXCIsXG4gICAgXCJzdWFzb3JpYVwiLFxuICAgIFwic3ViXCIsXG4gICAgXCJzdWJpdG9cIixcbiAgICBcInN1Yml1bmdvXCIsXG4gICAgXCJzdWJsaW1lXCIsXG4gICAgXCJzdWJuZWN0b1wiLFxuICAgIFwic3Vic2Vjb1wiLFxuICAgIFwic3Vic3RhbnRpYVwiLFxuICAgIFwic3VidmVuaW9cIixcbiAgICBcInN1Y2NlZG9cIixcbiAgICBcInN1Y2N1cnJvXCIsXG4gICAgXCJzdWZmaWNpb1wiLFxuICAgIFwic3VmZm9jb1wiLFxuICAgIFwic3VmZnJhZ2l1bVwiLFxuICAgIFwic3VnZ2Vyb1wiLFxuICAgIFwic3VpXCIsXG4gICAgXCJzdWx1bVwiLFxuICAgIFwic3VtXCIsXG4gICAgXCJzdW1tYVwiLFxuICAgIFwic3VtbWlzc2VcIixcbiAgICBcInN1bW1vcGVyZVwiLFxuICAgIFwic3Vtb1wiLFxuICAgIFwic3VtcHR1c1wiLFxuICAgIFwic3VwZWxsZXhcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzdXBwZWxsZXhcIixcbiAgICBcInN1cHBsYW50b1wiLFxuICAgIFwic3VwcG9ub1wiLFxuICAgIFwic3VwcmFcIixcbiAgICBcInN1cmN1bHVzXCIsXG4gICAgXCJzdXJnb1wiLFxuICAgIFwic3Vyc3VtXCIsXG4gICAgXCJzdXNjaXBpb1wiLFxuICAgIFwic3VzcGVuZG9cIixcbiAgICBcInN1c3RpbmVvXCIsXG4gICAgXCJzdXVzXCIsXG4gICAgXCJzeW5hZ29nYVwiLFxuICAgIFwidGFiZWxsYVwiLFxuICAgIFwidGFiZXJudXNcIixcbiAgICBcInRhYmVzY29cIixcbiAgICBcInRhYmdvXCIsXG4gICAgXCJ0YWJ1bGFcIixcbiAgICBcInRhY2VvXCIsXG4gICAgXCJ0YWN0dXNcIixcbiAgICBcInRhZWRpdW1cIixcbiAgICBcInRhbGlvXCIsXG4gICAgXCJ0YWxpc1wiLFxuICAgIFwidGFsdXNcIixcbiAgICBcInRhbVwiLFxuICAgIFwidGFtZGl1XCIsXG4gICAgXCJ0YW1lblwiLFxuICAgIFwidGFtZXRzaVwiLFxuICAgIFwidGFtaXNpdW1cIixcbiAgICBcInRhbXF1YW1cIixcbiAgICBcInRhbmRlbVwiLFxuICAgIFwidGFudGlsbHVzXCIsXG4gICAgXCJ0YW50dW1cIixcbiAgICBcInRhcmR1c1wiLFxuICAgIFwidGVnb1wiLFxuICAgIFwidGVtZXJpdGFzXCIsXG4gICAgXCJ0ZW1wZXJhbnRpYVwiLFxuICAgIFwidGVtcGx1bVwiLFxuICAgIFwidGVtcHRhdGlvXCIsXG4gICAgXCJ0ZW1wdXNcIixcbiAgICBcInRlbmF4XCIsXG4gICAgXCJ0ZW5kb1wiLFxuICAgIFwidGVuZW9cIixcbiAgICBcInRlbmVyXCIsXG4gICAgXCJ0ZW51aXNcIixcbiAgICBcInRlbnVzXCIsXG4gICAgXCJ0ZXBlc2NvXCIsXG4gICAgXCJ0ZXBpZHVzXCIsXG4gICAgXCJ0ZXJcIixcbiAgICBcInRlcmVicm9cIixcbiAgICBcInRlcmVzXCIsXG4gICAgXCJ0ZXJnYVwiLFxuICAgIFwidGVyZ2VvXCIsXG4gICAgXCJ0ZXJnaXZlcnNhdGlvXCIsXG4gICAgXCJ0ZXJnb1wiLFxuICAgIFwidGVyZ3VtXCIsXG4gICAgXCJ0ZXJtZXNcIixcbiAgICBcInRlcm1pbmF0aW9cIixcbiAgICBcInRlcm9cIixcbiAgICBcInRlcnJhXCIsXG4gICAgXCJ0ZXJyZW9cIixcbiAgICBcInRlcnJpdG9cIixcbiAgICBcInRlcnJvclwiLFxuICAgIFwidGVyc3VzXCIsXG4gICAgXCJ0ZXJ0aXVzXCIsXG4gICAgXCJ0ZXN0aW1vbml1bVwiLFxuICAgIFwidGV4b1wiLFxuICAgIFwidGV4dGlsaXNcIixcbiAgICBcInRleHRvclwiLFxuICAgIFwidGV4dHVzXCIsXG4gICAgXCJ0aGFsYXNzaW51c1wiLFxuICAgIFwidGhlYXRydW1cIixcbiAgICBcInRoZWNhXCIsXG4gICAgXCJ0aGVtYVwiLFxuICAgIFwidGhlb2xvZ3VzXCIsXG4gICAgXCJ0aGVybWFlXCIsXG4gICAgXCJ0aGVzYXVydXNcIixcbiAgICBcInRoZXNpc1wiLFxuICAgIFwidGhvcmF4XCIsXG4gICAgXCJ0aHltYnJhXCIsXG4gICAgXCJ0aHltdW1cIixcbiAgICBcInRpYmlcIixcbiAgICBcInRpbWlkdXNcIixcbiAgICBcInRpbW9yXCIsXG4gICAgXCJ0aXR1bHVzXCIsXG4gICAgXCJ0b2xlcm9cIixcbiAgICBcInRvbGxvXCIsXG4gICAgXCJ0b25kZW9cIixcbiAgICBcInRvbnNvclwiLFxuICAgIFwidG9ycXVlb1wiLFxuICAgIFwidG9ycmVuc1wiLFxuICAgIFwidG90XCIsXG4gICAgXCJ0b3RpZGVtXCIsXG4gICAgXCJ0b3RpZXNcIixcbiAgICBcInRvdHVzXCIsXG4gICAgXCJ0cmFjdG9cIixcbiAgICBcInRyYWRvXCIsXG4gICAgXCJ0cmFob1wiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyZWRlY2ltXCIsXG4gICAgXCJ0cmVtb1wiLFxuICAgIFwidHJlcGlkZVwiLFxuICAgIFwidHJlc1wiLFxuICAgIFwidHJpYnVvXCIsXG4gICAgXCJ0cmljZXNpbXVzXCIsXG4gICAgXCJ0cmlkdWFuYVwiLFxuICAgIFwidHJpZ2ludGFcIixcbiAgICBcInRyaXB1ZGlvXCIsXG4gICAgXCJ0cmlzdGlzXCIsXG4gICAgXCJ0cml1bXBodXNcIixcbiAgICBcInRydWNpZG9cIixcbiAgICBcInRydWN1bGVudGVyXCIsXG4gICAgXCJ0dWJpbmV1c1wiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0dW1cIixcbiAgICBcInR1bXVsdHVzXCIsXG4gICAgXCJ0dW5jXCIsXG4gICAgXCJ0dXJiYVwiLFxuICAgIFwidHVyYm9cIixcbiAgICBcInR1cnBlXCIsXG4gICAgXCJ0dXJwaXNcIixcbiAgICBcInR1dGFtZW5cIixcbiAgICBcInR1dGlzXCIsXG4gICAgXCJ0eXJhbm51c1wiLFxuICAgIFwidWJlcnJpbWVcIixcbiAgICBcInViaVwiLFxuICAgIFwidWxjaXNjb3JcIixcbiAgICBcInVsbHVzXCIsXG4gICAgXCJ1bHRlcml1c1wiLFxuICAgIFwidWx0aW9cIixcbiAgICBcInVsdHJhXCIsXG4gICAgXCJ1bWJyYVwiLFxuICAgIFwidW1lcnVzXCIsXG4gICAgXCJ1bXF1YW1cIixcbiAgICBcInVuYVwiLFxuICAgIFwidW5kZVwiLFxuICAgIFwidW5kaXF1ZVwiLFxuICAgIFwidW5pdmVyc2VcIixcbiAgICBcInVudXNcIixcbiAgICBcInVyYmFudXNcIixcbiAgICBcInVyYnNcIixcbiAgICBcInVyZWRvXCIsXG4gICAgXCJ1c2l0YXNcIixcbiAgICBcInVzcXVlXCIsXG4gICAgXCJ1c3RpbG9cIixcbiAgICBcInVzdHVsb1wiLFxuICAgIFwidXN1c1wiLFxuICAgIFwidXRlclwiLFxuICAgIFwidXRlcnF1ZVwiLFxuICAgIFwidXRpbGlzXCIsXG4gICAgXCJ1dGlxdWVcIixcbiAgICBcInV0b3JcIixcbiAgICBcInV0cG90ZVwiLFxuICAgIFwidXRyaW1xdWVcIixcbiAgICBcInV0cm9xdWVcIixcbiAgICBcInV0cnVtXCIsXG4gICAgXCJ1eG9yXCIsXG4gICAgXCJ2YWNvXCIsXG4gICAgXCJ2YWN1dXNcIixcbiAgICBcInZhZG9cIixcbiAgICBcInZhZVwiLFxuICAgIFwidmFsZGVcIixcbiAgICBcInZhbGVuc1wiLFxuICAgIFwidmFsZW9cIixcbiAgICBcInZhbGV0dWRvXCIsXG4gICAgXCJ2YWxpZHVzXCIsXG4gICAgXCJ2YWxsdW1cIixcbiAgICBcInZhcHVsdXNcIixcbiAgICBcInZhcmlldGFzXCIsXG4gICAgXCJ2YXJpdXNcIixcbiAgICBcInZlaGVtZW5zXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcInZlbG9jaXRlclwiLFxuICAgIFwidmVsdW1cIixcbiAgICBcInZlbHV0XCIsXG4gICAgXCJ2ZW5pYVwiLFxuICAgIFwidmVuaW9cIixcbiAgICBcInZlbnRpdG9cIixcbiAgICBcInZlbnRvc3VzXCIsXG4gICAgXCJ2ZW50dXNcIixcbiAgICBcInZlbnVzdGFzXCIsXG4gICAgXCJ2ZXJcIixcbiAgICBcInZlcmJlcmFcIixcbiAgICBcInZlcmJ1bVwiLFxuICAgIFwidmVyZVwiLFxuICAgIFwidmVyZWN1bmRpYVwiLFxuICAgIFwidmVyZW9yXCIsXG4gICAgXCJ2ZXJnb1wiLFxuICAgIFwidmVyaXRhc1wiLFxuICAgIFwidmVyb1wiLFxuICAgIFwidmVyc3VzXCIsXG4gICAgXCJ2ZXJ0b1wiLFxuICAgIFwidmVydW10YW1lblwiLFxuICAgIFwidmVydXNcIixcbiAgICBcInZlc2NvXCIsXG4gICAgXCJ2ZXNpY2FcIixcbiAgICBcInZlc3BlclwiLFxuICAgIFwidmVzcGlsbG9cIixcbiAgICBcInZlc3RlclwiLFxuICAgIFwidmVzdGlnaXVtXCIsXG4gICAgXCJ2ZXN0cnVtXCIsXG4gICAgXCJ2ZXR1c1wiLFxuICAgIFwidmlhXCIsXG4gICAgXCJ2aWNpbnVzXCIsXG4gICAgXCJ2aWNpc3NpdHVkb1wiLFxuICAgIFwidmljdG9yaWFcIixcbiAgICBcInZpY3R1c1wiLFxuICAgIFwidmlkZWxpY2V0XCIsXG4gICAgXCJ2aWRlb1wiLFxuICAgIFwidmlkdWF0YVwiLFxuICAgIFwidmlkdW9cIixcbiAgICBcInZpZ2lsb1wiLFxuICAgIFwidmlnb3JcIixcbiAgICBcInZpbGljdXNcIixcbiAgICBcInZpbGlzXCIsXG4gICAgXCJ2aWxpdGFzXCIsXG4gICAgXCJ2aWxsYVwiLFxuICAgIFwidmluY29cIixcbiAgICBcInZpbmN1bHVtXCIsXG4gICAgXCJ2aW5kaWNvXCIsXG4gICAgXCJ2aW5pdG9yXCIsXG4gICAgXCJ2aW51bVwiLFxuICAgIFwidmlyXCIsXG4gICAgXCJ2aXJnYVwiLFxuICAgIFwidmlyZ29cIixcbiAgICBcInZpcmlkaXNcIixcbiAgICBcInZpcmlsaXRlclwiLFxuICAgIFwidmlydHVzXCIsXG4gICAgXCJ2aXNcIixcbiAgICBcInZpc2N1c1wiLFxuICAgIFwidml0YVwiLFxuICAgIFwidml0aW9zdXNcIixcbiAgICBcInZpdGl1bVwiLFxuICAgIFwidml0b1wiLFxuICAgIFwidml2b1wiLFxuICAgIFwidml4XCIsXG4gICAgXCJ2b2Jpc1wiLFxuICAgIFwidm9jaWZlcm9yXCIsXG4gICAgXCJ2b2NvXCIsXG4gICAgXCJ2b2xhdGljdXNcIixcbiAgICBcInZvbG9cIixcbiAgICBcInZvbHViaWxpc1wiLFxuICAgIFwidm9sdW50YXJpdXNcIixcbiAgICBcInZvbHVwXCIsXG4gICAgXCJ2b2x1dGFicnVtXCIsXG4gICAgXCJ2b2x2YVwiLFxuICAgIFwidm9tZXJcIixcbiAgICBcInZvbWljYVwiLFxuICAgIFwidm9taXRvXCIsXG4gICAgXCJ2b3JhZ29cIixcbiAgICBcInZvcmF4XCIsXG4gICAgXCJ2b3JvXCIsXG4gICAgXCJ2b3NcIixcbiAgICBcInZvdHVtXCIsXG4gICAgXCJ2b3Zlb1wiLFxuICAgIFwidm94XCIsXG4gICAgXCJ2dWxhcml0ZXJcIixcbiAgICBcInZ1bGdhcmlzXCIsXG4gICAgXCJ2dWxnaXZhZ3VzXCIsXG4gICAgXCJ2dWxnb1wiLFxuICAgIFwidnVsZ3VzXCIsXG4gICAgXCJ2dWxuZXJvXCIsXG4gICAgXCJ2dWxudXNcIixcbiAgICBcInZ1bHBlc1wiLFxuICAgIFwidnVsdGljdWx1c1wiLFxuICAgIFwidnVsdHVvc3VzXCIsXG4gICAgXCJ4aXBoaWFzXCJcbiAgXVxufTtcbmVuLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBYWxpeWFoXCIsXG4gICAgXCJBYXJvblwiLFxuICAgIFwiQWJhZ2FpbFwiLFxuICAgIFwiQWJiZXlcIixcbiAgICBcIkFiYmllXCIsXG4gICAgXCJBYmJpZ2FpbFwiLFxuICAgIFwiQWJieVwiLFxuICAgIFwiQWJkaWVsXCIsXG4gICAgXCJBYmR1bFwiLFxuICAgIFwiQWJkdWxsYWhcIixcbiAgICBcIkFiZVwiLFxuICAgIFwiQWJlbFwiLFxuICAgIFwiQWJlbGFyZG9cIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIkFiaWdhbGVcIixcbiAgICBcIkFiaWdheWxlXCIsXG4gICAgXCJBYm5lclwiLFxuICAgIFwiQWJyYWhhbVwiLFxuICAgIFwiQWRhXCIsXG4gICAgXCJBZGFoXCIsXG4gICAgXCJBZGFsYmVydG9cIixcbiAgICBcIkFkYWxpbmVcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkYW5cIixcbiAgICBcIkFkZGllXCIsXG4gICAgXCJBZGRpc29uXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiQWRlbGJlcnRcIixcbiAgICBcIkFkZWxlXCIsXG4gICAgXCJBZGVsaWFcIixcbiAgICBcIkFkZWxpbmVcIixcbiAgICBcIkFkZWxsXCIsXG4gICAgXCJBZGVsbGFcIixcbiAgICBcIkFkZWxsZVwiLFxuICAgIFwiQWRpdHlhXCIsXG4gICAgXCJBZG9sZlwiLFxuICAgIFwiQWRvbGZvXCIsXG4gICAgXCJBZG9scGhcIixcbiAgICBcIkFkb2xwaHVzXCIsXG4gICAgXCJBZG9uaXNcIixcbiAgICBcIkFkcmFpblwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJBZHJpYW5hXCIsXG4gICAgXCJBZHJpYW5uYVwiLFxuICAgIFwiQWRyaWVsXCIsXG4gICAgXCJBZHJpZW5cIixcbiAgICBcIkFkcmllbm5lXCIsXG4gICAgXCJBZnRvblwiLFxuICAgIFwiQWdsYWVcIixcbiAgICBcIkFnbmVzXCIsXG4gICAgXCJBZ3VzdGluXCIsXG4gICAgXCJBZ3VzdGluYVwiLFxuICAgIFwiQWhtYWRcIixcbiAgICBcIkFobWVkXCIsXG4gICAgXCJBaWRhXCIsXG4gICAgXCJBaWRhblwiLFxuICAgIFwiQWlkZW5cIixcbiAgICBcIkFpbGVlblwiLFxuICAgIFwiQWltZWVcIixcbiAgICBcIkFpc2hhXCIsXG4gICAgXCJBaXlhbmFcIixcbiAgICBcIkFrZWVtXCIsXG4gICAgXCJBbFwiLFxuICAgIFwiQWxhaW5hXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiQWxhbmlzXCIsXG4gICAgXCJBbGFubmFcIixcbiAgICBcIkFsYXluYVwiLFxuICAgIFwiQWxiYVwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGJlcnRhXCIsXG4gICAgXCJBbGJlcnRoYVwiLFxuICAgIFwiQWxiZXJ0b1wiLFxuICAgIFwiQWxiaW5cIixcbiAgICBcIkFsYmluYVwiLFxuICAgIFwiQWxkYVwiLFxuICAgIFwiQWxkZW5cIixcbiAgICBcIkFsZWNcIixcbiAgICBcIkFsZWVuXCIsXG4gICAgXCJBbGVqYW5kcmFcIixcbiAgICBcIkFsZWphbmRyaW5cIixcbiAgICBcIkFsZWtcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJBbGVuZVwiLFxuICAgIFwiQWxlc3NhbmRyYVwiLFxuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxlc3NpYVwiLFxuICAgIFwiQWxldGhhXCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkFsZXhhbmRyZVwiLFxuICAgIFwiQWxleGFuZHJlYVwiLFxuICAgIFwiQWxleGFuZHJpYVwiLFxuICAgIFwiQWxleGFuZHJpbmVcIixcbiAgICBcIkFsZXhhbmRyb1wiLFxuICAgIFwiQWxleGFuZVwiLFxuICAgIFwiQWxleGFubmVcIixcbiAgICBcIkFsZXhpZVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJBbGV4eXNcIixcbiAgICBcIkFsZXh6YW5kZXJcIixcbiAgICBcIkFsZlwiLFxuICAgIFwiQWxmb25zb1wiLFxuICAgIFwiQWxmb256b1wiLFxuICAgIFwiQWxmb3JkXCIsXG4gICAgXCJBbGZyZWRcIixcbiAgICBcIkFsZnJlZGFcIixcbiAgICBcIkFsZnJlZG9cIixcbiAgICBcIkFsaVwiLFxuICAgIFwiQWxpYVwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIkFsaWNpYVwiLFxuICAgIFwiQWxpc2FcIixcbiAgICBcIkFsaXNoYVwiLFxuICAgIFwiQWxpc29uXCIsXG4gICAgXCJBbGl2aWFcIixcbiAgICBcIkFsaXlhXCIsXG4gICAgXCJBbGl5YWhcIixcbiAgICBcIkFsaXphXCIsXG4gICAgXCJBbGl6ZVwiLFxuICAgIFwiQWxsYW5cIixcbiAgICBcIkFsbGVuXCIsXG4gICAgXCJBbGxlbmVcIixcbiAgICBcIkFsbGllXCIsXG4gICAgXCJBbGxpc29uXCIsXG4gICAgXCJBbGx5XCIsXG4gICAgXCJBbHBob25zb1wiLFxuICAgIFwiQWx0YVwiLFxuICAgIFwiQWx0aGVhXCIsXG4gICAgXCJBbHZhXCIsXG4gICAgXCJBbHZhaFwiLFxuICAgIFwiQWx2ZW5hXCIsXG4gICAgXCJBbHZlcmFcIixcbiAgICBcIkFsdmVydGFcIixcbiAgICBcIkFsdmluYVwiLFxuICAgIFwiQWx2aXNcIixcbiAgICBcIkFseWNlXCIsXG4gICAgXCJBbHljaWFcIixcbiAgICBcIkFseXNhXCIsXG4gICAgXCJBbHlzaGFcIixcbiAgICBcIkFseXNvblwiLFxuICAgIFwiQWx5c3NvblwiLFxuICAgIFwiQW1hbGlhXCIsXG4gICAgXCJBbWFuZGFcIixcbiAgICBcIkFtYW5pXCIsXG4gICAgXCJBbWFyYVwiLFxuICAgIFwiQW1hcmlcIixcbiAgICBcIkFtYXlhXCIsXG4gICAgXCJBbWJlclwiLFxuICAgIFwiQW1icm9zZVwiLFxuICAgIFwiQW1lbGlhXCIsXG4gICAgXCJBbWVsaWVcIixcbiAgICBcIkFtZWx5XCIsXG4gICAgXCJBbWVyaWNhXCIsXG4gICAgXCJBbWVyaWNvXCIsXG4gICAgXCJBbWllXCIsXG4gICAgXCJBbWluYVwiLFxuICAgIFwiQW1pclwiLFxuICAgIFwiQW1pcmFcIixcbiAgICBcIkFtaXlhXCIsXG4gICAgXCJBbW9zXCIsXG4gICAgXCJBbXBhcm9cIixcbiAgICBcIkFteVwiLFxuICAgIFwiQW15YVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmFiZWxcIixcbiAgICBcIkFuYWJlbGxlXCIsXG4gICAgXCJBbmFoaVwiLFxuICAgIFwiQW5haXNcIixcbiAgICBcIkFuYXN0YWNpb1wiLFxuICAgIFwiQW5hc3Rhc2lhXCIsXG4gICAgXCJBbmRlcnNvblwiLFxuICAgIFwiQW5kcmVcIixcbiAgICBcIkFuZHJlYW5lXCIsXG4gICAgXCJBbmRyZWFubmVcIixcbiAgICBcIkFuZHJlc1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbmR5XCIsXG4gICAgXCJBbmdlbFwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJBbmdlbGljYVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIkFuZ2VsaW5lXCIsXG4gICAgXCJBbmdlbGl0YVwiLFxuICAgIFwiQW5nZWxvXCIsXG4gICAgXCJBbmdpZVwiLFxuICAgIFwiQW5ndXNcIixcbiAgICBcIkFuaWJhbFwiLFxuICAgIFwiQW5pa2FcIixcbiAgICBcIkFuaXNzYVwiLFxuICAgIFwiQW5pdGFcIixcbiAgICBcIkFuaXlhXCIsXG4gICAgXCJBbml5YWhcIixcbiAgICBcIkFuamFsaVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiQW5uYWJlbFwiLFxuICAgIFwiQW5uYWJlbGxcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiQW5uYWxpc2VcIixcbiAgICBcIkFubmFtYWVcIixcbiAgICBcIkFubmFtYXJpZVwiLFxuICAgIFwiQW5uZVwiLFxuICAgIFwiQW5uZXR0YVwiLFxuICAgIFwiQW5uZXR0ZVwiLFxuICAgIFwiQW5uaWVcIixcbiAgICBcIkFuc2VsXCIsXG4gICAgXCJBbnNsZXlcIixcbiAgICBcIkFudGhvbnlcIixcbiAgICBcIkFudG9pbmV0dGVcIixcbiAgICBcIkFudG9uZVwiLFxuICAgIFwiQW50b25ldHRhXCIsXG4gICAgXCJBbnRvbmV0dGVcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFudG9uaWV0dGFcIixcbiAgICBcIkFudG9uaW5hXCIsXG4gICAgXCJBbnRvbmlvXCIsXG4gICAgXCJBbnR3YW5cIixcbiAgICBcIkFudHdvblwiLFxuICAgIFwiQW55YVwiLFxuICAgIFwiQXByaWxcIixcbiAgICBcIkFyYVwiLFxuICAgIFwiQXJhY2VsaVwiLFxuICAgIFwiQXJhY2VseVwiLFxuICAgIFwiQXJjaFwiLFxuICAgIFwiQXJjaGliYWxkXCIsXG4gICAgXCJBcmRlbGxhXCIsXG4gICAgXCJBcmRlblwiLFxuICAgIFwiQXJkaXRoXCIsXG4gICAgXCJBcmVseVwiLFxuICAgIFwiQXJpXCIsXG4gICAgXCJBcmlhbmVcIixcbiAgICBcIkFyaWFubmFcIixcbiAgICBcIkFyaWNcIixcbiAgICBcIkFyaWVsXCIsXG4gICAgXCJBcmllbGxlXCIsXG4gICAgXCJBcmp1blwiLFxuICAgIFwiQXJsZW5lXCIsXG4gICAgXCJBcmxpZVwiLFxuICAgIFwiQXJsb1wiLFxuICAgIFwiQXJtYW5kXCIsXG4gICAgXCJBcm1hbmRvXCIsXG4gICAgXCJBcm1hbmlcIixcbiAgICBcIkFybmFsZG9cIixcbiAgICBcIkFybmVcIixcbiAgICBcIkFybm9cIixcbiAgICBcIkFybm9sZFwiLFxuICAgIFwiQXJub2xkb1wiLFxuICAgIFwiQXJudWxmb1wiLFxuICAgIFwiQXJvblwiLFxuICAgIFwiQXJ0XCIsXG4gICAgXCJBcnRodXJcIixcbiAgICBcIkFydHVyb1wiLFxuICAgIFwiQXJ2ZWxcIixcbiAgICBcIkFydmlkXCIsXG4gICAgXCJBcnZpbGxhXCIsXG4gICAgXCJBcnlhbm5hXCIsXG4gICAgXCJBc2FcIixcbiAgICBcIkFzaGFcIixcbiAgICBcIkFzaGxlZVwiLFxuICAgIFwiQXNobGVpZ2hcIixcbiAgICBcIkFzaGxleVwiLFxuICAgIFwiQXNobHlcIixcbiAgICBcIkFzaGx5bm5cIixcbiAgICBcIkFzaHRvblwiLFxuICAgIFwiQXNodHluXCIsXG4gICAgXCJBc2lhXCIsXG4gICAgXCJBc3N1bnRhXCIsXG4gICAgXCJBc3RyaWRcIixcbiAgICBcIkF0aGVuYVwiLFxuICAgIFwiQXVicmVlXCIsXG4gICAgXCJBdWJyZXlcIixcbiAgICBcIkF1ZGllXCIsXG4gICAgXCJBdWRyYVwiLFxuICAgIFwiQXVkcmVhbm5lXCIsXG4gICAgXCJBdWRyZXlcIixcbiAgICBcIkF1Z3VzdFwiLFxuICAgIFwiQXVndXN0YVwiLFxuICAgIFwiQXVndXN0aW5lXCIsXG4gICAgXCJBdWd1c3R1c1wiLFxuICAgIFwiQXVyZWxpYVwiLFxuICAgIFwiQXVyZWxpZVwiLFxuICAgIFwiQXVyZWxpb1wiLFxuICAgIFwiQXVyb3JlXCIsXG4gICAgXCJBdXN0ZW5cIixcbiAgICBcIkF1c3RpblwiLFxuICAgIFwiQXVzdHluXCIsXG4gICAgXCJBdXR1bW5cIixcbiAgICBcIkF2YVwiLFxuICAgIFwiQXZlcnlcIixcbiAgICBcIkF2aXNcIixcbiAgICBcIkF4ZWxcIixcbiAgICBcIkF5YW5hXCIsXG4gICAgXCJBeWRlblwiLFxuICAgIFwiQXlsYVwiLFxuICAgIFwiQXlsaW5cIixcbiAgICBcIkJhYnlcIixcbiAgICBcIkJhaWxlZVwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYXJiYXJhXCIsXG4gICAgXCJCYXJuZXlcIixcbiAgICBcIkJhcm9uXCIsXG4gICAgXCJCYXJyZXR0XCIsXG4gICAgXCJCYXJyeVwiLFxuICAgIFwiQmFydFwiLFxuICAgIFwiQmFydGhvbG9tZVwiLFxuICAgIFwiQmFydG9uXCIsXG4gICAgXCJCYXlsZWVcIixcbiAgICBcIkJlYXRyaWNlXCIsXG4gICAgXCJCZWF1XCIsXG4gICAgXCJCZWF1bGFoXCIsXG4gICAgXCJCZWxsXCIsXG4gICAgXCJCZWxsYVwiLFxuICAgIFwiQmVsbGVcIixcbiAgICBcIkJlblwiLFxuICAgIFwiQmVuZWRpY3RcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJCZW5uZXR0XCIsXG4gICAgXCJCZW5uaWVcIixcbiAgICBcIkJlbm55XCIsXG4gICAgXCJCZW50b25cIixcbiAgICBcIkJlcmVuaWNlXCIsXG4gICAgXCJCZXJuYWRldHRlXCIsXG4gICAgXCJCZXJuYWRpbmVcIixcbiAgICBcIkJlcm5hcmRcIixcbiAgICBcIkJlcm5hcmRvXCIsXG4gICAgXCJCZXJuZWljZVwiLFxuICAgIFwiQmVybmhhcmRcIixcbiAgICBcIkJlcm5pY2VcIixcbiAgICBcIkJlcm5pZVwiLFxuICAgIFwiQmVybmllY2VcIixcbiAgICBcIkJlcm5pdGFcIixcbiAgICBcIkJlcnJ5XCIsXG4gICAgXCJCZXJ0XCIsXG4gICAgXCJCZXJ0YVwiLFxuICAgIFwiQmVydGhhXCIsXG4gICAgXCJCZXJ0cmFtXCIsXG4gICAgXCJCZXJ0cmFuZFwiLFxuICAgIFwiQmVyeWxcIixcbiAgICBcIkJlc3NpZVwiLFxuICAgIFwiQmV0aFwiLFxuICAgIFwiQmV0aGFueVwiLFxuICAgIFwiQmV0aGVsXCIsXG4gICAgXCJCZXRzeVwiLFxuICAgIFwiQmV0dGVcIixcbiAgICBcIkJldHRpZVwiLFxuICAgIFwiQmV0dHlcIixcbiAgICBcIkJldHR5ZVwiLFxuICAgIFwiQmV1bGFoXCIsXG4gICAgXCJCZXZlcmx5XCIsXG4gICAgXCJCaWFua2FcIixcbiAgICBcIkJpbGxcIixcbiAgICBcIkJpbGxpZVwiLFxuICAgIFwiQmlsbHlcIixcbiAgICBcIkJpcmRpZVwiLFxuICAgIFwiQmxhaXJcIixcbiAgICBcIkJsYWlzZVwiLFxuICAgIFwiQmxha2VcIixcbiAgICBcIkJsYW5jYVwiLFxuICAgIFwiQmxhbmNoZVwiLFxuICAgIFwiQmxhemVcIixcbiAgICBcIkJvXCIsXG4gICAgXCJCb2JiaWVcIixcbiAgICBcIkJvYmJ5XCIsXG4gICAgXCJCb25pdGFcIixcbiAgICBcIkJvbm5pZVwiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkJveWRcIixcbiAgICBcIkJyYWRcIixcbiAgICBcIkJyYWRlblwiLFxuICAgIFwiQnJhZGZvcmRcIixcbiAgICBcIkJyYWRsZXlcIixcbiAgICBcIkJyYWRseVwiLFxuICAgIFwiQnJhZHlcIixcbiAgICBcIkJyYWVkZW5cIixcbiAgICBcIkJyYWluXCIsXG4gICAgXCJCcmFuZGlcIixcbiAgICBcIkJyYW5kb1wiLFxuICAgIFwiQnJhbmRvblwiLFxuICAgIFwiQnJhbmR0XCIsXG4gICAgXCJCcmFuZHlcIixcbiAgICBcIkJyYW5keW5cIixcbiAgICBcIkJyYW5ub25cIixcbiAgICBcIkJyYW5zb25cIixcbiAgICBcIkJyYW50XCIsXG4gICAgXCJCcmF1bGlvXCIsXG4gICAgXCJCcmF4dG9uXCIsXG4gICAgXCJCcmF5YW5cIixcbiAgICBcIkJyZWFuYVwiLFxuICAgIFwiQnJlYW5uYVwiLFxuICAgIFwiQnJlYW5uZVwiLFxuICAgIFwiQnJlbmRhXCIsXG4gICAgXCJCcmVuZGFuXCIsXG4gICAgXCJCcmVuZGVuXCIsXG4gICAgXCJCcmVuZG9uXCIsXG4gICAgXCJCcmVubmFcIixcbiAgICBcIkJyZW5uYW5cIixcbiAgICBcIkJyZW5ub25cIixcbiAgICBcIkJyZW50XCIsXG4gICAgXCJCcmV0XCIsXG4gICAgXCJCcmV0dFwiLFxuICAgIFwiQnJpYVwiLFxuICAgIFwiQnJpYW5cIixcbiAgICBcIkJyaWFuYVwiLFxuICAgIFwiQnJpYW5uZVwiLFxuICAgIFwiQnJpY2VcIixcbiAgICBcIkJyaWRnZXRcIixcbiAgICBcIkJyaWRnZXR0ZVwiLFxuICAgIFwiQnJpZGllXCIsXG4gICAgXCJCcmllbGxlXCIsXG4gICAgXCJCcmlnaXR0ZVwiLFxuICAgIFwiQnJpb25uYVwiLFxuICAgIFwiQnJpc2FcIixcbiAgICBcIkJyaXRuZXlcIixcbiAgICBcIkJyaXR0YW55XCIsXG4gICAgXCJCcm9ja1wiLFxuICAgIFwiQnJvZGVyaWNrXCIsXG4gICAgXCJCcm9keVwiLFxuICAgIFwiQnJvb2tcIixcbiAgICBcIkJyb29rZVwiLFxuICAgIFwiQnJvb2tseW5cIixcbiAgICBcIkJyb29rc1wiLFxuICAgIFwiQnJvd25cIixcbiAgICBcIkJydWNlXCIsXG4gICAgXCJCcnlhbmFcIixcbiAgICBcIkJyeWNlXCIsXG4gICAgXCJCcnljZW5cIixcbiAgICBcIkJyeW9uXCIsXG4gICAgXCJCdWNrXCIsXG4gICAgXCJCdWRcIixcbiAgICBcIkJ1ZGR5XCIsXG4gICAgXCJCdWZvcmRcIixcbiAgICBcIkJ1bGFoXCIsXG4gICAgXCJCdXJkZXR0ZVwiLFxuICAgIFwiQnVybGV5XCIsXG4gICAgXCJCdXJuaWNlXCIsXG4gICAgXCJCdXN0ZXJcIixcbiAgICBcIkNhZGVcIixcbiAgICBcIkNhZGVuXCIsXG4gICAgXCJDYWVzYXJcIixcbiAgICBcIkNhaXRseW5cIixcbiAgICBcIkNhbGVcIixcbiAgICBcIkNhbGViXCIsXG4gICAgXCJDYWxlaWdoXCIsXG4gICAgXCJDYWxpXCIsXG4gICAgXCJDYWxpc3RhXCIsXG4gICAgXCJDYWxsaWVcIixcbiAgICBcIkNhbWRlblwiLFxuICAgIFwiQ2FtZXJvblwiLFxuICAgIFwiQ2FtaWxhXCIsXG4gICAgXCJDYW1pbGxhXCIsXG4gICAgXCJDYW1pbGxlXCIsXG4gICAgXCJDYW1yZW5cIixcbiAgICBcIkNhbXJvblwiLFxuICAgIFwiQ2FtcnluXCIsXG4gICAgXCJDYW15bGxlXCIsXG4gICAgXCJDYW5kYWNlXCIsXG4gICAgXCJDYW5kZWxhcmlvXCIsXG4gICAgXCJDYW5kaWNlXCIsXG4gICAgXCJDYW5kaWRhXCIsXG4gICAgXCJDYW5kaWRvXCIsXG4gICAgXCJDYXJhXCIsXG4gICAgXCJDYXJleVwiLFxuICAgIFwiQ2FyaXNzYVwiLFxuICAgIFwiQ2FybGVlXCIsXG4gICAgXCJDYXJsZXRvblwiLFxuICAgIFwiQ2FybGV5XCIsXG4gICAgXCJDYXJsaVwiLFxuICAgIFwiQ2FybGllXCIsXG4gICAgXCJDYXJsb1wiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDYXJsb3R0YVwiLFxuICAgIFwiQ2FybWVsXCIsXG4gICAgXCJDYXJtZWxhXCIsXG4gICAgXCJDYXJtZWxsYVwiLFxuICAgIFwiQ2FybWVsb1wiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJtaW5lXCIsXG4gICAgXCJDYXJvbFwiLFxuICAgIFwiQ2Fyb2xhbm5lXCIsXG4gICAgXCJDYXJvbGVcIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXJvbGluZVwiLFxuICAgIFwiQ2Fyb2x5blwiLFxuICAgIFwiQ2Fyb2x5bmVcIixcbiAgICBcIkNhcnJpZVwiLFxuICAgIFwiQ2Fycm9sbFwiLFxuICAgIFwiQ2Fyc29uXCIsXG4gICAgXCJDYXJ0ZXJcIixcbiAgICBcIkNhcnlcIixcbiAgICBcIkNhc2FuZHJhXCIsXG4gICAgXCJDYXNleVwiLFxuICAgIFwiQ2FzaW1lclwiLFxuICAgIFwiQ2FzaW1pclwiLFxuICAgIFwiQ2FzcGVyXCIsXG4gICAgXCJDYXNzYW5kcmFcIixcbiAgICBcIkNhc3NhbmRyZVwiLFxuICAgIFwiQ2Fzc2lkeVwiLFxuICAgIFwiQ2Fzc2llXCIsXG4gICAgXCJDYXRhbGluYVwiLFxuICAgIFwiQ2F0ZXJpbmFcIixcbiAgICBcIkNhdGhhcmluZVwiLFxuICAgIFwiQ2F0aGVyaW5lXCIsXG4gICAgXCJDYXRocmluZVwiLFxuICAgIFwiQ2F0aHJ5blwiLFxuICAgIFwiQ2F0aHlcIixcbiAgICBcIkNheWxhXCIsXG4gICAgXCJDZWFzYXJcIixcbiAgICBcIkNlY2VsaWFcIixcbiAgICBcIkNlY2lsXCIsXG4gICAgXCJDZWNpbGVcIixcbiAgICBcIkNlY2lsaWFcIixcbiAgICBcIkNlZHJpY2tcIixcbiAgICBcIkNlbGVzdGluZVwiLFxuICAgIFwiQ2VsZXN0aW5vXCIsXG4gICAgXCJDZWxpYVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJDZXNhclwiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hhZGRcIixcbiAgICBcIkNoYWRyaWNrXCIsXG4gICAgXCJDaGFpbVwiLFxuICAgIFwiQ2hhbmNlXCIsXG4gICAgXCJDaGFuZGxlclwiLFxuICAgIFwiQ2hhbmVsXCIsXG4gICAgXCJDaGFuZWxsZVwiLFxuICAgIFwiQ2hhcml0eVwiLFxuICAgIFwiQ2hhcmxlbmVcIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkNoYXJsZXlcIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQ2hhc2VcIixcbiAgICBcIkNoYXNpdHlcIixcbiAgICBcIkNoYXVuY2V5XCIsXG4gICAgXCJDaGF5YVwiLFxuICAgIFwiQ2hhelwiLFxuICAgIFwiQ2hlbHNlYVwiLFxuICAgIFwiQ2hlbHNleVwiLFxuICAgIFwiQ2hlbHNpZVwiLFxuICAgIFwiQ2hlc2xleVwiLFxuICAgIFwiQ2hlc3RlclwiLFxuICAgIFwiQ2hldFwiLFxuICAgIFwiQ2hleWFubmVcIixcbiAgICBcIkNoZXllbm5lXCIsXG4gICAgXCJDaGxvZVwiLFxuICAgIFwiQ2hyaXNcIixcbiAgICBcIkNocmlzdFwiLFxuICAgIFwiQ2hyaXN0YVwiLFxuICAgIFwiQ2hyaXN0ZWxsZVwiLFxuICAgIFwiQ2hyaXN0aWFuXCIsXG4gICAgXCJDaHJpc3RpYW5hXCIsXG4gICAgXCJDaHJpc3RpbmFcIixcbiAgICBcIkNocmlzdGluZVwiLFxuICAgIFwiQ2hyaXN0b3BcIixcbiAgICBcIkNocmlzdG9waGVcIixcbiAgICBcIkNocmlzdG9waGVyXCIsXG4gICAgXCJDaHJpc3R5XCIsXG4gICAgXCJDaHluYVwiLFxuICAgIFwiQ2lhcmFcIixcbiAgICBcIkNpY2Vyb1wiLFxuICAgIFwiQ2llbG9cIixcbiAgICBcIkNpZXJyYVwiLFxuICAgIFwiQ2luZHlcIixcbiAgICBcIkNpdGxhbGxpXCIsXG4gICAgXCJDbGFpclwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiQ2xhcmFiZWxsZVwiLFxuICAgIFwiQ2xhcmVcIixcbiAgICBcIkNsYXJpc3NhXCIsXG4gICAgXCJDbGFya1wiLFxuICAgIFwiQ2xhdWRcIixcbiAgICBcIkNsYXVkZVwiLFxuICAgIFwiQ2xhdWRpYVwiLFxuICAgIFwiQ2xhdWRpZVwiLFxuICAgIFwiQ2xhdWRpbmVcIixcbiAgICBcIkNsYXlcIixcbiAgICBcIkNsZW1lbnNcIixcbiAgICBcIkNsZW1lbnRcIixcbiAgICBcIkNsZW1lbnRpbmFcIixcbiAgICBcIkNsZW1lbnRpbmVcIixcbiAgICBcIkNsZW1taWVcIixcbiAgICBcIkNsZW9cIixcbiAgICBcIkNsZW9yYVwiLFxuICAgIFwiQ2xldGFcIixcbiAgICBcIkNsZXR1c1wiLFxuICAgIFwiQ2xldmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2xpZmZvcmRcIixcbiAgICBcIkNsaWZ0b25cIixcbiAgICBcIkNsaW50XCIsXG4gICAgXCJDbGludG9uXCIsXG4gICAgXCJDbG90aWxkZVwiLFxuICAgIFwiQ2xvdmlzXCIsXG4gICAgXCJDbG95ZFwiLFxuICAgIFwiQ2x5ZGVcIixcbiAgICBcIkNvYnlcIixcbiAgICBcIkNvZHlcIixcbiAgICBcIkNvbGJ5XCIsXG4gICAgXCJDb2xlXCIsXG4gICAgXCJDb2xlbWFuXCIsXG4gICAgXCJDb2xpblwiLFxuICAgIFwiQ29sbGVlblwiLFxuICAgIFwiQ29sbGluXCIsXG4gICAgXCJDb2x0XCIsXG4gICAgXCJDb2x0ZW5cIixcbiAgICBcIkNvbHRvblwiLFxuICAgIFwiQ29sdW1idXNcIixcbiAgICBcIkNvbmNlcGNpb25cIixcbiAgICBcIkNvbm5lclwiLFxuICAgIFwiQ29ubmllXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIkNvbm9yXCIsXG4gICAgXCJDb25yYWRcIixcbiAgICBcIkNvbnN0YW5jZVwiLFxuICAgIFwiQ29uc3RhbnRpblwiLFxuICAgIFwiQ29uc3VlbG9cIixcbiAgICBcIkNvb3BlclwiLFxuICAgIFwiQ29yYVwiLFxuICAgIFwiQ29yYWxpZVwiLFxuICAgIFwiQ29yYmluXCIsXG4gICAgXCJDb3JkZWxpYVwiLFxuICAgIFwiQ29yZGVsbFwiLFxuICAgIFwiQ29yZGlhXCIsXG4gICAgXCJDb3JkaWVcIixcbiAgICBcIkNvcmVuZVwiLFxuICAgIFwiQ29yaW5lXCIsXG4gICAgXCJDb3JuZWxpdXNcIixcbiAgICBcIkNvcm5lbGxcIixcbiAgICBcIkNvcnJpbmVcIixcbiAgICBcIkNvcnRlelwiLFxuICAgIFwiQ29ydG5leVwiLFxuICAgIFwiQ29yeVwiLFxuICAgIFwiQ290eVwiLFxuICAgIFwiQ291cnRuZXlcIixcbiAgICBcIkNveVwiLFxuICAgIFwiQ3JhaWdcIixcbiAgICBcIkNyYXdmb3JkXCIsXG4gICAgXCJDcmVvbGFcIixcbiAgICBcIkNyaXN0YWxcIixcbiAgICBcIkNyaXN0aWFuXCIsXG4gICAgXCJDcmlzdGluYVwiLFxuICAgIFwiQ3Jpc3RvYmFsXCIsXG4gICAgXCJDcmlzdG9waGVyXCIsXG4gICAgXCJDcnV6XCIsXG4gICAgXCJDcnlzdGFsXCIsXG4gICAgXCJDcnlzdGVsXCIsXG4gICAgXCJDdWxsZW5cIixcbiAgICBcIkN1cnRcIixcbiAgICBcIkN1cnRpc1wiLFxuICAgIFwiQ3lkbmV5XCIsXG4gICAgXCJDeW50aGlhXCIsXG4gICAgXCJDeXJpbFwiLFxuICAgIFwiQ3lydXNcIixcbiAgICBcIkRhZ21hclwiLFxuICAgIFwiRGFobGlhXCIsXG4gICAgXCJEYWlqYVwiLFxuICAgIFwiRGFpc2hhXCIsXG4gICAgXCJEYWlzeVwiLFxuICAgIFwiRGFrb3RhXCIsXG4gICAgXCJEYWxlXCIsXG4gICAgXCJEYWxsYXNcIixcbiAgICBcIkRhbGxpblwiLFxuICAgIFwiRGFsdG9uXCIsXG4gICAgXCJEYW1hcmlzXCIsXG4gICAgXCJEYW1lb25cIixcbiAgICBcIkRhbWlhblwiLFxuICAgIFwiRGFtaWVuXCIsXG4gICAgXCJEYW1pb25cIixcbiAgICBcIkRhbW9uXCIsXG4gICAgXCJEYW5cIixcbiAgICBcIkRhbmFcIixcbiAgICBcIkRhbmRyZVwiLFxuICAgIFwiRGFuZVwiLFxuICAgIFwiRCdhbmdlbG9cIixcbiAgICBcIkRhbmdlbG9cIixcbiAgICBcIkRhbmlhbFwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiRGFuaWVsbGFcIixcbiAgICBcIkRhbmllbGxlXCIsXG4gICAgXCJEYW5pa2FcIixcbiAgICBcIkRhbm5pZVwiLFxuICAgIFwiRGFubnlcIixcbiAgICBcIkRhbnRlXCIsXG4gICAgXCJEYW55a2FcIixcbiAgICBcIkRhcGhuZVwiLFxuICAgIFwiRGFwaG5lZVwiLFxuICAgIFwiRGFwaG5leVwiLFxuICAgIFwiRGFyYnlcIixcbiAgICBcIkRhcmVuXCIsXG4gICAgXCJEYXJpYW5cIixcbiAgICBcIkRhcmlhbmFcIixcbiAgICBcIkRhcmllblwiLFxuICAgIFwiRGFyaW9cIixcbiAgICBcIkRhcmlvblwiLFxuICAgIFwiRGFyaXVzXCIsXG4gICAgXCJEYXJsZW5lXCIsXG4gICAgXCJEYXJvblwiLFxuICAgIFwiRGFycmVsXCIsXG4gICAgXCJEYXJyZWxsXCIsXG4gICAgXCJEYXJyZW5cIixcbiAgICBcIkRhcnJpY2tcIixcbiAgICBcIkRhcnJpblwiLFxuICAgIFwiRGFycmlvblwiLFxuICAgIFwiRGFycm9uXCIsXG4gICAgXCJEYXJyeWxcIixcbiAgICBcIkRhcndpblwiLFxuICAgIFwiRGFyeWxcIixcbiAgICBcIkRhc2hhd25cIixcbiAgICBcIkRhc2lhXCIsXG4gICAgXCJEYXZlXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiRGF2aW5cIixcbiAgICBcIkRhdmlvblwiLFxuICAgIFwiRGF2b25cIixcbiAgICBcIkRhdm9udGVcIixcbiAgICBcIkRhd25cIixcbiAgICBcIkRhd3NvblwiLFxuICAgIFwiRGF4XCIsXG4gICAgXCJEYXlhbmFcIixcbiAgICBcIkRheW5hXCIsXG4gICAgXCJEYXluZVwiLFxuICAgIFwiRGF5dG9uXCIsXG4gICAgXCJEZWFuXCIsXG4gICAgXCJEZWFuZ2Vsb1wiLFxuICAgIFwiRGVhbm5hXCIsXG4gICAgXCJEZWJvcmFoXCIsXG4gICAgXCJEZWNsYW5cIixcbiAgICBcIkRlZHJpY1wiLFxuICAgIFwiRGVkcmlja1wiLFxuICAgIFwiRGVlXCIsXG4gICAgXCJEZWlvblwiLFxuICAgIFwiRGVqYVwiLFxuICAgIFwiRGVqYWhcIixcbiAgICBcIkRlam9uXCIsXG4gICAgXCJEZWp1YW5cIixcbiAgICBcIkRlbGFuZXlcIixcbiAgICBcIkRlbGJlcnRcIixcbiAgICBcIkRlbGZpbmFcIixcbiAgICBcIkRlbGlhXCIsXG4gICAgXCJEZWxpbGFoXCIsXG4gICAgXCJEZWxsXCIsXG4gICAgXCJEZWxsYVwiLFxuICAgIFwiRGVsbWVyXCIsXG4gICAgXCJEZWxvcmVzXCIsXG4gICAgXCJEZWxwaGFcIixcbiAgICBcIkRlbHBoaWFcIixcbiAgICBcIkRlbHBoaW5lXCIsXG4gICAgXCJEZWx0YVwiLFxuICAgIFwiRGVtYXJjb1wiLFxuICAgIFwiRGVtYXJjdXNcIixcbiAgICBcIkRlbWFyaW9cIixcbiAgICBcIkRlbWV0cmlzXCIsXG4gICAgXCJEZW1ldHJpdXNcIixcbiAgICBcIkRlbW9uZFwiLFxuICAgIFwiRGVuYVwiLFxuICAgIFwiRGVuaXNcIixcbiAgICBcIkRlbm5pc1wiLFxuICAgIFwiRGVvblwiLFxuICAgIFwiRGVvbmRyZVwiLFxuICAgIFwiRGVvbnRhZVwiLFxuICAgIFwiRGVvbnRlXCIsXG4gICAgXCJEZXJlY2tcIixcbiAgICBcIkRlcmVrXCIsXG4gICAgXCJEZXJpY2tcIixcbiAgICBcIkRlcm9uXCIsXG4gICAgXCJEZXJyaWNrXCIsXG4gICAgXCJEZXNoYXVuXCIsXG4gICAgXCJEZXNoYXduXCIsXG4gICAgXCJEZXNpcmVlXCIsXG4gICAgXCJEZXNtb25kXCIsXG4gICAgXCJEZXNzaWVcIixcbiAgICBcIkRlc3RhbnlcIixcbiAgICBcIkRlc3RpblwiLFxuICAgIFwiRGVzdGluZWVcIixcbiAgICBcIkRlc3RpbmV5XCIsXG4gICAgXCJEZXN0aW5pXCIsXG4gICAgXCJEZXN0aW55XCIsXG4gICAgXCJEZXZhblwiLFxuICAgIFwiRGV2YW50ZVwiLFxuICAgIFwiRGV2ZW5cIixcbiAgICBcIkRldmluXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRGV2b250ZVwiLFxuICAgIFwiRGV2eW5cIixcbiAgICBcIkRld2F5bmVcIixcbiAgICBcIkRld2l0dFwiLFxuICAgIFwiRGV4dGVyXCIsXG4gICAgXCJEaWFtb25kXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGlhbm5hXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRGlsbGFuXCIsXG4gICAgXCJEaWxsb25cIixcbiAgICBcIkRpbWl0cmlcIixcbiAgICBcIkRpbmFcIixcbiAgICBcIkRpbm9cIixcbiAgICBcIkRpb25cIixcbiAgICBcIkRpeGllXCIsXG4gICAgXCJEb2NrXCIsXG4gICAgXCJEb2xseVwiLFxuICAgIFwiRG9sb3Jlc1wiLFxuICAgIFwiRG9tZW5pY1wiLFxuICAgIFwiRG9tZW5pY2FcIixcbiAgICBcIkRvbWVuaWNrXCIsXG4gICAgXCJEb21lbmljb1wiLFxuICAgIFwiRG9taW5nb1wiLFxuICAgIFwiRG9taW5pY1wiLFxuICAgIFwiRG9taW5pcXVlXCIsXG4gICAgXCJEb25cIixcbiAgICBcIkRvbmFsZFwiLFxuICAgIFwiRG9uYXRvXCIsXG4gICAgXCJEb25hdm9uXCIsXG4gICAgXCJEb25uYVwiLFxuICAgIFwiRG9ubmVsbFwiLFxuICAgIFwiRG9ubmllXCIsXG4gICAgXCJEb25ueVwiLFxuICAgIFwiRG9yYVwiLFxuICAgIFwiRG9yY2FzXCIsXG4gICAgXCJEb3JpYW5cIixcbiAgICBcIkRvcmlzXCIsXG4gICAgXCJEb3JvdGhlYVwiLFxuICAgIFwiRG9yb3RoeVwiLFxuICAgIFwiRG9ycmlzXCIsXG4gICAgXCJEb3J0aGFcIixcbiAgICBcIkRvcnRoeVwiLFxuICAgIFwiRG91Z1wiLFxuICAgIFwiRG91Z2xhc1wiLFxuICAgIFwiRG92aWVcIixcbiAgICBcIkRveWxlXCIsXG4gICAgXCJEcmFrZVwiLFxuICAgIFwiRHJld1wiLFxuICAgIFwiRHVhbmVcIixcbiAgICBcIkR1ZGxleVwiLFxuICAgIFwiRHVsY2VcIixcbiAgICBcIkR1bmNhblwiLFxuICAgIFwiRHVyd2FyZFwiLFxuICAgIFwiRHVzdGluXCIsXG4gICAgXCJEdXN0eVwiLFxuICAgIFwiRHdpZ2h0XCIsXG4gICAgXCJEeWxhblwiLFxuICAgIFwiRWFybFwiLFxuICAgIFwiRWFybGVuZVwiLFxuICAgIFwiRWFybGluZVwiLFxuICAgIFwiRWFybmVzdFwiLFxuICAgIFwiRWFybmVzdGluZVwiLFxuICAgIFwiRWFzdGVyXCIsXG4gICAgXCJFYXN0b25cIixcbiAgICBcIkViYmFcIixcbiAgICBcIkVib255XCIsXG4gICAgXCJFZFwiLFxuICAgIFwiRWRhXCIsXG4gICAgXCJFZGRcIixcbiAgICBcIkVkZGllXCIsXG4gICAgXCJFZGVuXCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWRnYXJkb1wiLFxuICAgIFwiRWRpc29uXCIsXG4gICAgXCJFZG1vbmRcIixcbiAgICBcIkVkbXVuZFwiLFxuICAgIFwiRWRuYVwiLFxuICAgIFwiRWR1YXJkb1wiLFxuICAgIFwiRWR3YXJkXCIsXG4gICAgXCJFZHdhcmRvXCIsXG4gICAgXCJFZHdpblwiLFxuICAgIFwiRWR3aW5hXCIsXG4gICAgXCJFZHl0aFwiLFxuICAgIFwiRWR5dGhlXCIsXG4gICAgXCJFZmZpZVwiLFxuICAgIFwiRWZyYWluXCIsXG4gICAgXCJFZnJlblwiLFxuICAgIFwiRWlsZWVuXCIsXG4gICAgXCJFaW5hclwiLFxuICAgIFwiRWlub1wiLFxuICAgIFwiRWxhZGlvXCIsXG4gICAgXCJFbGFpbmFcIixcbiAgICBcIkVsYmVydFwiLFxuICAgIFwiRWxkYVwiLFxuICAgIFwiRWxkb25cIixcbiAgICBcIkVsZG9yYVwiLFxuICAgIFwiRWxkcmVkXCIsXG4gICAgXCJFbGRyaWRnZVwiLFxuICAgIFwiRWxlYW5vcmFcIixcbiAgICBcIkVsZWFub3JlXCIsXG4gICAgXCJFbGVhemFyXCIsXG4gICAgXCJFbGVjdGFcIixcbiAgICBcIkVsZW5hXCIsXG4gICAgXCJFbGVub3JcIixcbiAgICBcIkVsZW5vcmFcIixcbiAgICBcIkVsZW9ub3JlXCIsXG4gICAgXCJFbGZyaWVkYVwiLFxuICAgIFwiRWxpXCIsXG4gICAgXCJFbGlhblwiLFxuICAgIFwiRWxpYW5lXCIsXG4gICAgXCJFbGlhc1wiLFxuICAgIFwiRWxpZXplclwiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJFbGlub3JcIixcbiAgICBcIkVsaW5vcmVcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkVsaXNlXCIsXG4gICAgXCJFbGlzZW9cIixcbiAgICBcIkVsaXNoYVwiLFxuICAgIFwiRWxpc3NhXCIsXG4gICAgXCJFbGl6YVwiLFxuICAgIFwiRWxpemFiZXRoXCIsXG4gICAgXCJFbGxhXCIsXG4gICAgXCJFbGxlblwiLFxuICAgIFwiRWxsaWVcIixcbiAgICBcIkVsbGlvdFwiLFxuICAgIFwiRWxsaW90dFwiLFxuICAgIFwiRWxsaXNcIixcbiAgICBcIkVsbHN3b3J0aFwiLFxuICAgIFwiRWxtZXJcIixcbiAgICBcIkVsbWlyYVwiLFxuICAgIFwiRWxtb1wiLFxuICAgIFwiRWxtb3JlXCIsXG4gICAgXCJFbG5hXCIsXG4gICAgXCJFbG5vcmFcIixcbiAgICBcIkVsb2R5XCIsXG4gICAgXCJFbG9pc2FcIixcbiAgICBcIkVsb2lzZVwiLFxuICAgIFwiRWxvdWlzZVwiLFxuICAgIFwiRWxveVwiLFxuICAgIFwiRWxyb3lcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVsc2VcIixcbiAgICBcIkVsc2llXCIsXG4gICAgXCJFbHRhXCIsXG4gICAgXCJFbHRvblwiLFxuICAgIFwiRWx2YVwiLFxuICAgIFwiRWx2ZXJhXCIsXG4gICAgXCJFbHZpZVwiLFxuICAgIFwiRWx2aXNcIixcbiAgICBcIkVsd2luXCIsXG4gICAgXCJFbHd5blwiLFxuICAgIFwiRWx5c2VcIixcbiAgICBcIkVseXNzYVwiLFxuICAgIFwiRWx6YVwiLFxuICAgIFwiRW1hbnVlbFwiLFxuICAgIFwiRW1lbGlhXCIsXG4gICAgXCJFbWVsaWVcIixcbiAgICBcIkVtZWx5XCIsXG4gICAgXCJFbWVyYWxkXCIsXG4gICAgXCJFbWVyc29uXCIsXG4gICAgXCJFbWVyeVwiLFxuICAgIFwiRW1pZVwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiRW1pbGVcIixcbiAgICBcIkVtaWxpYVwiLFxuICAgIFwiRW1pbGlhbm9cIixcbiAgICBcIkVtaWxpZVwiLFxuICAgIFwiRW1pbGlvXCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiRW1tYWxlZVwiLFxuICAgIFwiRW1tYW51ZWxcIixcbiAgICBcIkVtbWFudWVsbGVcIixcbiAgICBcIkVtbWV0XCIsXG4gICAgXCJFbW1ldHRcIixcbiAgICBcIkVtbWllXCIsXG4gICAgXCJFbW1pdHRcIixcbiAgICBcIkVtbXlcIixcbiAgICBcIkVtb3J5XCIsXG4gICAgXCJFbmFcIixcbiAgICBcIkVuaWRcIixcbiAgICBcIkVub2NoXCIsXG4gICAgXCJFbm9sYVwiLFxuICAgIFwiRW5vc1wiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFbnJpcXVlXCIsXG4gICAgXCJFcGhyYWltXCIsXG4gICAgXCJFcmFcIixcbiAgICBcIkVyaWJlcnRvXCIsXG4gICAgXCJFcmljXCIsXG4gICAgXCJFcmljYVwiLFxuICAgIFwiRXJpY2hcIixcbiAgICBcIkVyaWNrXCIsXG4gICAgXCJFcmlja2FcIixcbiAgICBcIkVyaWtcIixcbiAgICBcIkVyaWthXCIsXG4gICAgXCJFcmluXCIsXG4gICAgXCJFcmxpbmdcIixcbiAgICBcIkVybmFcIixcbiAgICBcIkVybmVzdFwiLFxuICAgIFwiRXJuZXN0aW5hXCIsXG4gICAgXCJFcm5lc3RpbmVcIixcbiAgICBcIkVybmVzdG9cIixcbiAgICBcIkVybmllXCIsXG4gICAgXCJFcnZpblwiLFxuICAgIFwiRXJ3aW5cIixcbiAgICBcIkVyeW5cIixcbiAgICBcIkVzbWVyYWxkYVwiLFxuICAgIFwiRXNwZXJhbnphXCIsXG4gICAgXCJFc3RhXCIsXG4gICAgXCJFc3RlYmFuXCIsXG4gICAgXCJFc3RlZmFuaWFcIixcbiAgICBcIkVzdGVsXCIsXG4gICAgXCJFc3RlbGxcIixcbiAgICBcIkVzdGVsbGFcIixcbiAgICBcIkVzdGVsbGVcIixcbiAgICBcIkVzdGV2YW5cIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRXN0cmVsbGFcIixcbiAgICBcIkV0aGFcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJFdGhlbFwiLFxuICAgIFwiRXRoZWx5blwiLFxuICAgIFwiRXRoeWxcIixcbiAgICBcIkV0dGllXCIsXG4gICAgXCJFdWRvcmFcIixcbiAgICBcIkV1Z2VuZVwiLFxuICAgIFwiRXVnZW5pYVwiLFxuICAgIFwiRXVsYVwiLFxuICAgIFwiRXVsYWhcIixcbiAgICBcIkV1bGFsaWFcIixcbiAgICBcIkV1bmFcIixcbiAgICBcIkV1bmljZVwiLFxuICAgIFwiRXVzZWJpb1wiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJFdmFseW5cIixcbiAgICBcIkV2YW5cIixcbiAgICBcIkV2YW5nZWxpbmVcIixcbiAgICBcIkV2YW5zXCIsXG4gICAgXCJFdmVcIixcbiAgICBcIkV2ZWxpbmVcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiRXZlcmFyZG9cIixcbiAgICBcIkV2ZXJldHRcIixcbiAgICBcIkV2ZXJldHRlXCIsXG4gICAgXCJFdmVydFwiLFxuICAgIFwiRXZpZVwiLFxuICAgIFwiRXdhbGRcIixcbiAgICBcIkV3ZWxsXCIsXG4gICAgXCJFemVraWVsXCIsXG4gICAgXCJFemVxdWllbFwiLFxuICAgIFwiRXpyYVwiLFxuICAgIFwiRmFiaWFuXCIsXG4gICAgXCJGYWJpb2xhXCIsXG4gICAgXCJGYWVcIixcbiAgICBcIkZhbm5pZVwiLFxuICAgIFwiRmFubnlcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmF1c3Rpbm9cIixcbiAgICBcIkZhdXN0b1wiLFxuICAgIFwiRmF2aWFuXCIsXG4gICAgXCJGYXlcIixcbiAgICBcIkZheWVcIixcbiAgICBcIkZlZGVyaWNvXCIsXG4gICAgXCJGZWxpY2lhXCIsXG4gICAgXCJGZWxpY2l0YVwiLFxuICAgIFwiRmVsaWNpdHlcIixcbiAgICBcIkZlbGlwYVwiLFxuICAgIFwiRmVsaXBlXCIsXG4gICAgXCJGZWxpeFwiLFxuICAgIFwiRmVsdG9uXCIsXG4gICAgXCJGZXJtaW5cIixcbiAgICBcIkZlcm5cIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGZXJuZVwiLFxuICAgIFwiRmlkZWxcIixcbiAgICBcIkZpbGliZXJ0b1wiLFxuICAgIFwiRmlsb21lbmFcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZpb25hXCIsXG4gICAgXCJGbGF2aWVcIixcbiAgICBcIkZsYXZpb1wiLFxuICAgIFwiRmxldGFcIixcbiAgICBcIkZsZXRjaGVyXCIsXG4gICAgXCJGbG9cIixcbiAgICBcIkZsb3JlbmNlXCIsXG4gICAgXCJGbG9yZW5jaW9cIixcbiAgICBcIkZsb3JpYW5cIixcbiAgICBcIkZsb3JpZGFcIixcbiAgICBcIkZsb3JpbmVcIixcbiAgICBcIkZsb3NzaWVcIixcbiAgICBcIkZsb3lcIixcbiAgICBcIkZsb3lkXCIsXG4gICAgXCJGb3JkXCIsXG4gICAgXCJGb3Jlc3RcIixcbiAgICBcIkZvcnJlc3RcIixcbiAgICBcIkZvc3RlclwiLFxuICAgIFwiRnJhbmNlc1wiLFxuICAgIFwiRnJhbmNlc2NhXCIsXG4gICAgXCJGcmFuY2VzY29cIixcbiAgICBcIkZyYW5jaXNcIixcbiAgICBcIkZyYW5jaXNjYVwiLFxuICAgIFwiRnJhbmNpc2NvXCIsXG4gICAgXCJGcmFuY29cIixcbiAgICBcIkZyYW5rXCIsXG4gICAgXCJGcmFua2llXCIsXG4gICAgXCJGcmFuelwiLFxuICAgIFwiRnJlZFwiLFxuICAgIFwiRnJlZGFcIixcbiAgICBcIkZyZWRkaWVcIixcbiAgICBcIkZyZWRkeVwiLFxuICAgIFwiRnJlZGVyaWNcIixcbiAgICBcIkZyZWRlcmlja1wiLFxuICAgIFwiRnJlZGVyaWtcIixcbiAgICBcIkZyZWRlcmlxdWVcIixcbiAgICBcIkZyZWRyaWNrXCIsXG4gICAgXCJGcmVkeVwiLFxuICAgIFwiRnJlZWRhXCIsXG4gICAgXCJGcmVlbWFuXCIsXG4gICAgXCJGcmVpZGFcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJGcmllZGFcIixcbiAgICBcIkZyaWVkcmljaFwiLFxuICAgIFwiRnJpdHpcIixcbiAgICBcIkZ1cm1hblwiLFxuICAgIFwiR2FiZVwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2FicmllbGxhXCIsXG4gICAgXCJHYWJyaWVsbGVcIixcbiAgICBcIkdhZXRhbm9cIixcbiAgICBcIkdhZ2VcIixcbiAgICBcIkdhaWxcIixcbiAgICBcIkdhcmRuZXJcIixcbiAgICBcIkdhcmV0dFwiLFxuICAgIFwiR2FyZmllbGRcIixcbiAgICBcIkdhcmxhbmRcIixcbiAgICBcIkdhcm5ldFwiLFxuICAgIFwiR2FybmV0dFwiLFxuICAgIFwiR2FycmV0XCIsXG4gICAgXCJHYXJyZXR0XCIsXG4gICAgXCJHYXJyaWNrXCIsXG4gICAgXCJHYXJyaXNvblwiLFxuICAgIFwiR2FycnlcIixcbiAgICBcIkdhcnRoXCIsXG4gICAgXCJHYXN0b25cIixcbiAgICBcIkdhdmluXCIsXG4gICAgXCJHYXlcIixcbiAgICBcIkdheWxlXCIsXG4gICAgXCJHYXlsb3JkXCIsXG4gICAgXCJHZW5lXCIsXG4gICAgXCJHZW5lcmFsXCIsXG4gICAgXCJHZW5lc2lzXCIsXG4gICAgXCJHZW5ldmlldmVcIixcbiAgICBcIkdlbm5hcm9cIixcbiAgICBcIkdlbm92ZXZhXCIsXG4gICAgXCJHZW9cIixcbiAgICBcIkdlb2ZmcmV5XCIsXG4gICAgXCJHZW9yZ2VcIixcbiAgICBcIkdlb3JnZXR0ZVwiLFxuICAgIFwiR2VvcmdpYW5hXCIsXG4gICAgXCJHZW9yZ2lhbm5hXCIsXG4gICAgXCJHZW92YW5uaVwiLFxuICAgIFwiR2VvdmFubnlcIixcbiAgICBcIkdlb3ZhbnlcIixcbiAgICBcIkdlcmFsZFwiLFxuICAgIFwiR2VyYWxkaW5lXCIsXG4gICAgXCJHZXJhcmRcIixcbiAgICBcIkdlcmFyZG9cIixcbiAgICBcIkdlcmRhXCIsXG4gICAgXCJHZXJoYXJkXCIsXG4gICAgXCJHZXJtYWluZVwiLFxuICAgIFwiR2VybWFuXCIsXG4gICAgXCJHZXJyeVwiLFxuICAgIFwiR2Vyc29uXCIsXG4gICAgXCJHZXJ0cnVkZVwiLFxuICAgIFwiR2lhXCIsXG4gICAgXCJHaWFubmlcIixcbiAgICBcIkdpZGVvblwiLFxuICAgIFwiR2lsYmVydFwiLFxuICAgIFwiR2lsYmVydG9cIixcbiAgICBcIkdpbGRhXCIsXG4gICAgXCJHaWxlc1wiLFxuICAgIFwiR2lsbGlhblwiLFxuICAgIFwiR2luYVwiLFxuICAgIFwiR2lub1wiLFxuICAgIFwiR2lvdmFuaVwiLFxuICAgIFwiR2lvdmFubmFcIixcbiAgICBcIkdpb3Zhbm5pXCIsXG4gICAgXCJHaW92YW5ueVwiLFxuICAgIFwiR2lzc2VsbGVcIixcbiAgICBcIkdpdXNlcHBlXCIsXG4gICAgXCJHbGFkeWNlXCIsXG4gICAgXCJHbGFkeXNcIixcbiAgICBcIkdsZW5cIixcbiAgICBcIkdsZW5kYVwiLFxuICAgIFwiR2xlbm5hXCIsXG4gICAgXCJHbGVubmllXCIsXG4gICAgXCJHbG9yaWFcIixcbiAgICBcIkdvZGZyZXlcIixcbiAgICBcIkdvbGRhXCIsXG4gICAgXCJHb2xkZW5cIixcbiAgICBcIkdvbnphbG9cIixcbiAgICBcIkdvcmRvblwiLFxuICAgIFwiR3JhY2VcIixcbiAgICBcIkdyYWNpZVwiLFxuICAgIFwiR3JhY2llbGFcIixcbiAgICBcIkdyYWR5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmFudmlsbGVcIixcbiAgICBcIkdyYXljZVwiLFxuICAgIFwiR3JheXNvblwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWdcIixcbiAgICBcIkdyZWdnXCIsXG4gICAgXCJHcmVnb3JpYVwiLFxuICAgIFwiR3JlZ29yaW9cIixcbiAgICBcIkdyZWdvcnlcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJHcmV0Y2hlblwiLFxuICAgIFwiR3JleXNvblwiLFxuICAgIFwiR3JpZmZpblwiLFxuICAgIFwiR3JvdmVyXCIsXG4gICAgXCJHdWFkYWx1cGVcIixcbiAgICBcIkd1ZHJ1blwiLFxuICAgIFwiR3VpZG9cIixcbiAgICBcIkd1aWxsZXJtb1wiLFxuICAgIFwiR3Vpc2VwcGVcIixcbiAgICBcIkd1bm5hclwiLFxuICAgIFwiR3VubmVyXCIsXG4gICAgXCJHdXNcIixcbiAgICBcIkd1c3NpZVwiLFxuICAgIFwiR3VzdFwiLFxuICAgIFwiR3VzdGF2ZVwiLFxuICAgIFwiR3V5XCIsXG4gICAgXCJHd2VuXCIsXG4gICAgXCJHd2VuZG9seW5cIixcbiAgICBcIkhhZGxleVwiLFxuICAgIFwiSGFpbGVlXCIsXG4gICAgXCJIYWlsZXlcIixcbiAgICBcIkhhaWxpZVwiLFxuICAgIFwiSGFsXCIsXG4gICAgXCJIYWxlaWdoXCIsXG4gICAgXCJIYWxleVwiLFxuICAgIFwiSGFsaWVcIixcbiAgICBcIkhhbGxlXCIsXG4gICAgXCJIYWxsaWVcIixcbiAgICBcIkhhbmtcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIkhhbnNcIixcbiAgICBcIkhhcmR5XCIsXG4gICAgXCJIYXJsZXlcIixcbiAgICBcIkhhcm1vblwiLFxuICAgIFwiSGFybW9ueVwiLFxuICAgIFwiSGFyb2xkXCIsXG4gICAgXCJIYXJyaXNvblwiLFxuICAgIFwiSGFycnlcIixcbiAgICBcIkhhcnZleVwiLFxuICAgIFwiSGFza2VsbFwiLFxuICAgIFwiSGFzc2FuXCIsXG4gICAgXCJIYXNzaWVcIixcbiAgICBcIkhhdHRpZVwiLFxuICAgIFwiSGF2ZW5cIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiSGF5bGVlXCIsXG4gICAgXCJIYXlsZXlcIixcbiAgICBcIkhheWxpZVwiLFxuICAgIFwiSGF6ZWxcIixcbiAgICBcIkhhemxlXCIsXG4gICAgXCJIZWF0aFwiLFxuICAgIFwiSGVhdGhlclwiLFxuICAgIFwiSGVhdmVuXCIsXG4gICAgXCJIZWJlclwiLFxuICAgIFwiSGVjdG9yXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiSGVsZW5cIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJIZWxnYVwiLFxuICAgIFwiSGVsbGVuXCIsXG4gICAgXCJIZWxtZXJcIixcbiAgICBcIkhlbG9pc2VcIixcbiAgICBcIkhlbmRlcnNvblwiLFxuICAgIFwiSGVucmlcIixcbiAgICBcIkhlbnJpZXR0ZVwiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkhlcmJlcnRcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWluYVwiLFxuICAgIFwiSGVybWluaWFcIixcbiAgICBcIkhlcm1pbmlvXCIsXG4gICAgXCJIZXJzaGVsXCIsXG4gICAgXCJIZXJ0YVwiLFxuICAgIFwiSGVydGhhXCIsXG4gICAgXCJIZXN0ZXJcIixcbiAgICBcIkhldHRpZVwiLFxuICAgIFwiSGlsYXJpb1wiLFxuICAgIFwiSGlsYmVydFwiLFxuICAgIFwiSGlsZGFcIixcbiAgICBcIkhpbGRlZ2FyZFwiLFxuICAgIFwiSGlsbGFyZFwiLFxuICAgIFwiSGlsbGFyeVwiLFxuICAgIFwiSGlsbWFcIixcbiAgICBcIkhpbHRvblwiLFxuICAgIFwiSGlwb2xpdG9cIixcbiAgICBcIkhpcmFtXCIsXG4gICAgXCJIb2JhcnRcIixcbiAgICBcIkhvbGRlblwiLFxuICAgIFwiSG9sbGllXCIsXG4gICAgXCJIb2xsaXNcIixcbiAgICBcIkhvbGx5XCIsXG4gICAgXCJIb3BlXCIsXG4gICAgXCJIb3JhY2VcIixcbiAgICBcIkhvcmFjaW9cIixcbiAgICBcIkhvcnRlbnNlXCIsXG4gICAgXCJIb3NlYVwiLFxuICAgIFwiSG91c3RvblwiLFxuICAgIFwiSG93YXJkXCIsXG4gICAgXCJIb3dlbGxcIixcbiAgICBcIkhveXRcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWdoXCIsXG4gICAgXCJIdWxkYVwiLFxuICAgIFwiSHVtYmVydG9cIixcbiAgICBcIkh1bnRlclwiLFxuICAgIFwiSHltYW5cIixcbiAgICBcIklhblwiLFxuICAgIFwiSWJyYWhpbVwiLFxuICAgIFwiSWNpZVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJJZGVsbFwiLFxuICAgIFwiSWRlbGxhXCIsXG4gICAgXCJJZ25hY2lvXCIsXG4gICAgXCJJZ25hdGl1c1wiLFxuICAgIFwiSWtlXCIsXG4gICAgXCJJbGFcIixcbiAgICBcIklsZW5lXCIsXG4gICAgXCJJbGlhbmFcIixcbiAgICBcIkltYVwiLFxuICAgIFwiSW1hbmlcIixcbiAgICBcIkltZWxkYVwiLFxuICAgIFwiSW1tYW51ZWxcIixcbiAgICBcIkltb2dlbmVcIixcbiAgICBcIkluZXNcIixcbiAgICBcIklybWFcIixcbiAgICBcIklydmluZ1wiLFxuICAgIFwiSXJ3aW5cIixcbiAgICBcIklzYWFjXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzYWJlbGxcIixcbiAgICBcIklzYWJlbGxhXCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiSXNhY1wiLFxuICAgIFwiSXNhZG9yZVwiLFxuICAgIFwiSXNhaVwiLFxuICAgIFwiSXNhaWFoXCIsXG4gICAgXCJJc2FpYXNcIixcbiAgICBcIklzaWRyb1wiLFxuICAgIFwiSXNtYWVsXCIsXG4gICAgXCJJc29iZWxcIixcbiAgICBcIklzb21cIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiSXNzYWNcIixcbiAgICBcIkl0emVsXCIsXG4gICAgXCJJdmFcIixcbiAgICBcIkl2YWhcIixcbiAgICBcIkl2b3J5XCIsXG4gICAgXCJJdnlcIixcbiAgICBcIkl6YWJlbGxhXCIsXG4gICAgXCJJemFpYWhcIixcbiAgICBcIkphYmFyaVwiLFxuICAgIFwiSmFjZVwiLFxuICAgIFwiSmFjZXlcIixcbiAgICBcIkphY2ludGhlXCIsXG4gICAgXCJKYWNpbnRvXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYWNrZWxpbmVcIixcbiAgICBcIkphY2tpZVwiLFxuICAgIFwiSmFja2x5blwiLFxuICAgIFwiSmFja3NvblwiLFxuICAgIFwiSmFja3lcIixcbiAgICBcIkphY2x5blwiLFxuICAgIFwiSmFjcXVlbHluXCIsXG4gICAgXCJKYWNxdWVzXCIsXG4gICAgXCJKYWN5bnRoZVwiLFxuICAgIFwiSmFkYVwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiSmFkZW5cIixcbiAgICBcIkphZG9uXCIsXG4gICAgXCJKYWR5blwiLFxuICAgIFwiSmFlZGVuXCIsXG4gICAgXCJKYWlkYVwiLFxuICAgIFwiSmFpZGVuXCIsXG4gICAgXCJKYWlseW5cIixcbiAgICBcIkphaW1lXCIsXG4gICAgXCJKYWlyb1wiLFxuICAgIFwiSmFrYXlsYVwiLFxuICAgIFwiSmFrZVwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIkphbGVlbFwiLFxuICAgIFwiSmFsZW5cIixcbiAgICBcIkphbG9uXCIsXG4gICAgXCJKYWx5blwiLFxuICAgIFwiSmFtYWFsXCIsXG4gICAgXCJKYW1hbFwiLFxuICAgIFwiSmFtYXJcIixcbiAgICBcIkphbWFyY3VzXCIsXG4gICAgXCJKYW1lbFwiLFxuICAgIFwiSmFtZXNvblwiLFxuICAgIFwiSmFtZXlcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW1pbFwiLFxuICAgIFwiSmFtaXJcIixcbiAgICBcIkphbWlzb25cIixcbiAgICBcIkphbW1pZVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYW5hXCIsXG4gICAgXCJKYW5hZVwiLFxuICAgIFwiSmFuZVwiLFxuICAgIFwiSmFuZWxsZVwiLFxuICAgIFwiSmFuZXNzYVwiLFxuICAgIFwiSmFuZXRcIixcbiAgICBcIkphbmljZVwiLFxuICAgIFwiSmFuaWNrXCIsXG4gICAgXCJKYW5pZVwiLFxuICAgIFwiSmFuaXNcIixcbiAgICBcIkphbml5YVwiLFxuICAgIFwiSmFubmllXCIsXG4gICAgXCJKYW55XCIsXG4gICAgXCJKYXF1YW5cIixcbiAgICBcIkphcXVlbGluXCIsXG4gICAgXCJKYXF1ZWxpbmVcIixcbiAgICBcIkphcmVkXCIsXG4gICAgXCJKYXJlblwiLFxuICAgIFwiSmFyb2RcIixcbiAgICBcIkphcm9uXCIsXG4gICAgXCJKYXJyZWRcIixcbiAgICBcIkphcnJlbGxcIixcbiAgICBcIkphcnJldFwiLFxuICAgIFwiSmFycmV0dFwiLFxuICAgIFwiSmFycm9kXCIsXG4gICAgXCJKYXJ2aXNcIixcbiAgICBcIkphc2VuXCIsXG4gICAgXCJKYXNtaW5cIixcbiAgICBcIkphc29uXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkphdW5pdGFcIixcbiAgICBcIkphdmllclwiLFxuICAgIFwiSmF2b25cIixcbiAgICBcIkphdm9udGVcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSmF5Y2VcIixcbiAgICBcIkpheWNlZVwiLFxuICAgIFwiSmF5ZGFcIixcbiAgICBcIkpheWRlXCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIkpheWRvblwiLFxuICAgIFwiSmF5bGFuXCIsXG4gICAgXCJKYXlsZW5cIixcbiAgICBcIkpheWxpblwiLFxuICAgIFwiSmF5bG9uXCIsXG4gICAgXCJKYXltZVwiLFxuICAgIFwiSmF5bmVcIixcbiAgICBcIkpheXNvblwiLFxuICAgIFwiSmF6bHluXCIsXG4gICAgXCJKYXptaW5cIixcbiAgICBcIkphem15blwiLFxuICAgIFwiSmF6bXluZVwiLFxuICAgIFwiSmVhblwiLFxuICAgIFwiSmVhbmV0dGVcIixcbiAgICBcIkplYW5pZVwiLFxuICAgIFwiSmVhbm5lXCIsXG4gICAgXCJKZWRcIixcbiAgICBcIkplZGVkaWFoXCIsXG4gICAgXCJKZWRpZGlhaFwiLFxuICAgIFwiSmVmZlwiLFxuICAgIFwiSmVmZmVyZXlcIixcbiAgICBcIkplZmZlcnlcIixcbiAgICBcIkplZmZyZXlcIixcbiAgICBcIkplZmZyeVwiLFxuICAgIFwiSmVuYVwiLFxuICAgIFwiSmVuaWZlclwiLFxuICAgIFwiSmVubmllXCIsXG4gICAgXCJKZW5uaWZlclwiLFxuICAgIFwiSmVubmluZ3NcIixcbiAgICBcIkplbm55ZmVyXCIsXG4gICAgXCJKZW5zZW5cIixcbiAgICBcIkplcmFkXCIsXG4gICAgXCJKZXJhbGRcIixcbiAgICBcIkplcmFtaWVcIixcbiAgICBcIkplcmFteVwiLFxuICAgIFwiSmVyZWxcIixcbiAgICBcIkplcmVtaWVcIixcbiAgICBcIkplcmVteVwiLFxuICAgIFwiSmVybWFpblwiLFxuICAgIFwiSmVybWFpbmVcIixcbiAgICBcIkplcm1leVwiLFxuICAgIFwiSmVyb2RcIixcbiAgICBcIkplcm9tZVwiLFxuICAgIFwiSmVyb215XCIsXG4gICAgXCJKZXJyZWxsXCIsXG4gICAgXCJKZXJyb2RcIixcbiAgICBcIkplcnJvbGRcIixcbiAgICBcIkplcnJ5XCIsXG4gICAgXCJKZXNzXCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiSmVzc2ljYVwiLFxuICAgIFwiSmVzc2llXCIsXG4gICAgXCJKZXNzaWthXCIsXG4gICAgXCJKZXNzeVwiLFxuICAgIFwiSmVzc3ljYVwiLFxuICAgIFwiSmVzdXNcIixcbiAgICBcIkpldHRcIixcbiAgICBcIkpldHRpZVwiLFxuICAgIFwiSmV2b25cIixcbiAgICBcIkpld2VsXCIsXG4gICAgXCJKZXdlbGxcIixcbiAgICBcIkppbGxpYW5cIixcbiAgICBcIkppbW1pZVwiLFxuICAgIFwiSmltbXlcIixcbiAgICBcIkpvXCIsXG4gICAgXCJKb2FuXCIsXG4gICAgXCJKb2FuYVwiLFxuICAgIFwiSm9hbmllXCIsXG4gICAgXCJKb2FubmVcIixcbiAgICBcIkpvYW5uaWVcIixcbiAgICBcIkpvYW5ueVwiLFxuICAgIFwiSm9hbnlcIixcbiAgICBcIkpvYXF1aW5cIixcbiAgICBcIkpvY2VseW5cIixcbiAgICBcIkpvZGllXCIsXG4gICAgXCJKb2R5XCIsXG4gICAgXCJKb2VcIixcbiAgICBcIkpvZWxcIixcbiAgICBcIkpvZWxsZVwiLFxuICAgIFwiSm9lc3BoXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb2hhblwiLFxuICAgIFwiSm9oYW5uXCIsXG4gICAgXCJKb2hhbm5hXCIsXG4gICAgXCJKb2hhdGhhblwiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9obmF0aGFuXCIsXG4gICAgXCJKb2huYXRob25cIixcbiAgICBcIkpvaG5uaWVcIixcbiAgICBcIkpvaG5ueVwiLFxuICAgIFwiSm9obnBhdWxcIixcbiAgICBcIkpvaG5zb25cIixcbiAgICBcIkpvbGllXCIsXG4gICAgXCJKb25cIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJKb25hdGFuXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiSm9uYXRob25cIixcbiAgICBcIkpvcmRhblwiLFxuICAgIFwiSm9yZGFuZVwiLFxuICAgIFwiSm9yZGlcIixcbiAgICBcIkpvcmRvblwiLFxuICAgIFwiSm9yZHlcIixcbiAgICBcIkpvcmR5blwiLFxuICAgIFwiSm9yZ2VcIixcbiAgICBcIkpvc2VcIixcbiAgICBcIkpvc2VmYVwiLFxuICAgIFwiSm9zZWZpbmFcIixcbiAgICBcIkpvc2VwaFwiLFxuICAgIFwiSm9zZXBoaW5lXCIsXG4gICAgXCJKb3NoXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIkpvc2h1YWhcIixcbiAgICBcIkpvc2lhaFwiLFxuICAgIFwiSm9zaWFuZVwiLFxuICAgIFwiSm9zaWFubmVcIixcbiAgICBcIkpvc2llXCIsXG4gICAgXCJKb3N1ZVwiLFxuICAgIFwiSm92YW5cIixcbiAgICBcIkpvdmFuaVwiLFxuICAgIFwiSm92YW5ueVwiLFxuICAgIFwiSm92YW55XCIsXG4gICAgXCJKb3lcIixcbiAgICBcIkpveWNlXCIsXG4gICAgXCJKdWFuYVwiLFxuICAgIFwiSnVhbml0YVwiLFxuICAgIFwiSnVkYWhcIixcbiAgICBcIkp1ZGRcIixcbiAgICBcIkp1ZGVcIixcbiAgICBcIkp1ZGdlXCIsXG4gICAgXCJKdWRzb25cIixcbiAgICBcIkp1ZHlcIixcbiAgICBcIkp1bGVzXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJKdWxpYW5hXCIsXG4gICAgXCJKdWxpYW5uZVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiSnVsaWV0XCIsXG4gICAgXCJKdWxpb1wiLFxuICAgIFwiSnVsaXVzXCIsXG4gICAgXCJKdW5lXCIsXG4gICAgXCJKdW5pb3JcIixcbiAgICBcIkp1bml1c1wiLFxuICAgIFwiSnVzdGVuXCIsXG4gICAgXCJKdXN0aWNlXCIsXG4gICAgXCJKdXN0aW5hXCIsXG4gICAgXCJKdXN0aW5lXCIsXG4gICAgXCJKdXN0b25cIixcbiAgICBcIkp1c3R1c1wiLFxuICAgIFwiSnVzdHluXCIsXG4gICAgXCJKdXZlbmFsXCIsXG4gICAgXCJKdXdhblwiLFxuICAgIFwiS2FjZXlcIixcbiAgICBcIkthY2lcIixcbiAgICBcIkthY2llXCIsXG4gICAgXCJLYWRlXCIsXG4gICAgXCJLYWRlblwiLFxuICAgIFwiS2FkaW5cIixcbiAgICBcIkthZWxhXCIsXG4gICAgXCJLYWVseW5cIixcbiAgICBcIkthaWFcIixcbiAgICBcIkthaWxlZVwiLFxuICAgIFwiS2FpbGV5XCIsXG4gICAgXCJLYWlseW5cIixcbiAgICBcIkthaXRsaW5cIixcbiAgICBcIkthaXRseW5cIixcbiAgICBcIkthbGVcIixcbiAgICBcIkthbGViXCIsXG4gICAgXCJLYWxlaWdoXCIsXG4gICAgXCJLYWxleVwiLFxuICAgIFwiS2FsaVwiLFxuICAgIFwiS2FsbGllXCIsXG4gICAgXCJLYW1lcm9uXCIsXG4gICAgXCJLYW1pbGxlXCIsXG4gICAgXCJLYW1yZW5cIixcbiAgICBcIkthbXJvblwiLFxuICAgIFwiS2FtcnluXCIsXG4gICAgXCJLYW5lXCIsXG4gICAgXCJLYXJhXCIsXG4gICAgXCJLYXJlZW1cIixcbiAgICBcIkthcmVsbGVcIixcbiAgICBcIkthcmVuXCIsXG4gICAgXCJLYXJpXCIsXG4gICAgXCJLYXJpYW5lXCIsXG4gICAgXCJLYXJpYW5uZVwiLFxuICAgIFwiS2FyaW5hXCIsXG4gICAgXCJLYXJpbmVcIixcbiAgICBcIkthcmxcIixcbiAgICBcIkthcmxlZVwiLFxuICAgIFwiS2FybGV5XCIsXG4gICAgXCJLYXJsaVwiLFxuICAgIFwiS2FybGllXCIsXG4gICAgXCJLYXJvbGFublwiLFxuICAgIFwiS2Fyc29uXCIsXG4gICAgXCJLYXNhbmRyYVwiLFxuICAgIFwiS2FzZXlcIixcbiAgICBcIkthc3NhbmRyYVwiLFxuICAgIFwiS2F0YXJpbmFcIixcbiAgICBcIkthdGVsaW5cIixcbiAgICBcIkthdGVseW5cIixcbiAgICBcIkthdGVseW5uXCIsXG4gICAgXCJLYXRoYXJpbmFcIixcbiAgICBcIkthdGhlcmluZVwiLFxuICAgIFwiS2F0aGVyeW5cIixcbiAgICBcIkthdGhsZWVuXCIsXG4gICAgXCJLYXRobHluXCIsXG4gICAgXCJLYXRocnluXCIsXG4gICAgXCJLYXRocnluZVwiLFxuICAgIFwiS2F0bHluXCIsXG4gICAgXCJLYXRseW5uXCIsXG4gICAgXCJLYXRyaW5hXCIsXG4gICAgXCJLYXRyaW5lXCIsXG4gICAgXCJLYXR0aWVcIixcbiAgICBcIkthdm9uXCIsXG4gICAgXCJLYXlcIixcbiAgICBcIktheWFcIixcbiAgICBcIktheWNlZVwiLFxuICAgIFwiS2F5ZGVuXCIsXG4gICAgXCJLYXlsYVwiLFxuICAgIFwiS2F5bGFoXCIsXG4gICAgXCJLYXlsZWVcIixcbiAgICBcIktheWxlaWdoXCIsXG4gICAgXCJLYXlsZXlcIixcbiAgICBcIktheWxpXCIsXG4gICAgXCJLYXlsaWVcIixcbiAgICBcIktheWxpblwiLFxuICAgIFwiS2VhZ2FuXCIsXG4gICAgXCJLZWFudVwiLFxuICAgIFwiS2VhcmFcIixcbiAgICBcIktlYXRvblwiLFxuICAgIFwiS2VlZ2FuXCIsXG4gICAgXCJLZWVsZXlcIixcbiAgICBcIktlZWx5XCIsXG4gICAgXCJLZWVuYW5cIixcbiAgICBcIktlaXJhXCIsXG4gICAgXCJLZWl0aFwiLFxuICAgIFwiS2VsbGVuXCIsXG4gICAgXCJLZWxsZXlcIixcbiAgICBcIktlbGxpXCIsXG4gICAgXCJLZWxsaWVcIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLZWxzaVwiLFxuICAgIFwiS2Vsc2llXCIsXG4gICAgXCJLZWx0b25cIixcbiAgICBcIktlbHZpblwiLFxuICAgIFwiS2VuXCIsXG4gICAgXCJLZW5kYWxsXCIsXG4gICAgXCJLZW5kcmFcIixcbiAgICBcIktlbmRyaWNrXCIsXG4gICAgXCJLZW5uYVwiLFxuICAgIFwiS2VubmVkaVwiLFxuICAgIFwiS2VubmVkeVwiLFxuICAgIFwiS2VubmV0aFwiLFxuICAgIFwiS2Vubml0aFwiLFxuICAgIFwiS2VubnlcIixcbiAgICBcIktlbnRvblwiLFxuICAgIFwiS2VueWFcIixcbiAgICBcIktlbnlhdHRhXCIsXG4gICAgXCJLZW55b25cIixcbiAgICBcIktlb25cIixcbiAgICBcIktlc2hhdW5cIixcbiAgICBcIktlc2hhd25cIixcbiAgICBcIktldmVuXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiS2V2b25cIixcbiAgICBcIktleW9uXCIsXG4gICAgXCJLZXlzaGF3blwiLFxuICAgIFwiS2hhbGlkXCIsXG4gICAgXCJLaGFsaWxcIixcbiAgICBcIktpYW5cIixcbiAgICBcIktpYW5hXCIsXG4gICAgXCJLaWFubmFcIixcbiAgICBcIktpYXJhXCIsXG4gICAgXCJLaWFycmFcIixcbiAgICBcIktpZWxcIixcbiAgICBcIktpZXJhXCIsXG4gICAgXCJLaWVyYW5cIixcbiAgICBcIktpbGV5XCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWJlcmx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJLaXBcIixcbiAgICBcIktpcmFcIixcbiAgICBcIktpcmtcIixcbiAgICBcIktpcnN0ZW5cIixcbiAgICBcIktpcnN0aW5cIixcbiAgICBcIktpdHR5XCIsXG4gICAgXCJLb2JlXCIsXG4gICAgXCJLb2J5XCIsXG4gICAgXCJLb2R5XCIsXG4gICAgXCJLb2xieVwiLFxuICAgIFwiS29sZVwiLFxuICAgIFwiS29yYmluXCIsXG4gICAgXCJLb3JleVwiLFxuICAgIFwiS29yeVwiLFxuICAgIFwiS3JhaWdcIixcbiAgICBcIktyaXNcIixcbiAgICBcIktyaXN0YVwiLFxuICAgIFwiS3Jpc3RpYW5cIixcbiAgICBcIktyaXN0aW5cIixcbiAgICBcIktyaXN0aW5hXCIsXG4gICAgXCJLcmlzdG9mZXJcIixcbiAgICBcIktyaXN0b2ZmZXJcIixcbiAgICBcIktyaXN0b3BoZXJcIixcbiAgICBcIktyaXN0eVwiLFxuICAgIFwiS3J5c3RhbFwiLFxuICAgIFwiS3J5c3RlbFwiLFxuICAgIFwiS3J5c3RpbmFcIixcbiAgICBcIkt1cnRcIixcbiAgICBcIkt1cnRpc1wiLFxuICAgIFwiS3lsYVwiLFxuICAgIFwiS3lsZVwiLFxuICAgIFwiS3lsZWVcIixcbiAgICBcIkt5bGVpZ2hcIixcbiAgICBcIkt5bGVyXCIsXG4gICAgXCJLeWxpZVwiLFxuICAgIFwiS3lyYVwiLFxuICAgIFwiTGFjZXlcIixcbiAgICBcIkxhY3lcIixcbiAgICBcIkxhZGFyaXVzXCIsXG4gICAgXCJMYWZheWV0dGVcIixcbiAgICBcIkxhaWxhXCIsXG4gICAgXCJMYWlzaGFcIixcbiAgICBcIkxhbWFyXCIsXG4gICAgXCJMYW1iZXJ0XCIsXG4gICAgXCJMYW1vbnRcIixcbiAgICBcIkxhbmNlXCIsXG4gICAgXCJMYW5kZW5cIixcbiAgICBcIkxhbmVcIixcbiAgICBcIkxhbmV5XCIsXG4gICAgXCJMYXJpc3NhXCIsXG4gICAgXCJMYXJvblwiLFxuICAgIFwiTGFycnlcIixcbiAgICBcIkxhcnVlXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGF1cmVsXCIsXG4gICAgXCJMYXVyZW5cIixcbiAgICBcIkxhdXJlbmNlXCIsXG4gICAgXCJMYXVyZXR0YVwiLFxuICAgIFwiTGF1cmlhbmVcIixcbiAgICBcIkxhdXJpYW5uZVwiLFxuICAgIFwiTGF1cmllXCIsXG4gICAgXCJMYXVyaW5lXCIsXG4gICAgXCJMYXVyeVwiLFxuICAgIFwiTGF1cnluXCIsXG4gICAgXCJMYXZhZGFcIixcbiAgICBcIkxhdmVyblwiLFxuICAgIFwiTGF2ZXJuYVwiLFxuICAgIFwiTGF2ZXJuZVwiLFxuICAgIFwiTGF2aW5hXCIsXG4gICAgXCJMYXZpbmlhXCIsXG4gICAgXCJMYXZvblwiLFxuICAgIFwiTGF2b25uZVwiLFxuICAgIFwiTGF3cmVuY2VcIixcbiAgICBcIkxhd3NvblwiLFxuICAgIFwiTGF5bGFcIixcbiAgICBcIkxheW5lXCIsXG4gICAgXCJMYXphcm9cIixcbiAgICBcIkxlYVwiLFxuICAgIFwiTGVhbm5cIixcbiAgICBcIkxlYW5uYVwiLFxuICAgIFwiTGVhbm5lXCIsXG4gICAgXCJMZWF0aGFcIixcbiAgICBcIkxlZGFcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiTGVpZlwiLFxuICAgIFwiTGVpbGFcIixcbiAgICBcIkxlaWxhbmlcIixcbiAgICBcIkxlbGFcIixcbiAgICBcIkxlbGFoXCIsXG4gICAgXCJMZWxhbmRcIixcbiAgICBcIkxlbGlhXCIsXG4gICAgXCJMZW1waVwiLFxuICAgIFwiTGVtdWVsXCIsXG4gICAgXCJMZW5uYVwiLFxuICAgIFwiTGVubmllXCIsXG4gICAgXCJMZW5ueVwiLFxuICAgIFwiTGVub3JhXCIsXG4gICAgXCJMZW5vcmVcIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVvbGFcIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25hcmRvXCIsXG4gICAgXCJMZW9uZVwiLFxuICAgIFwiTGVvbmVsXCIsXG4gICAgXCJMZW9uaWVcIixcbiAgICBcIkxlb25vclwiLFxuICAgIFwiTGVvbm9yYVwiLFxuICAgIFwiTGVvcG9sZFwiLFxuICAgIFwiTGVvcG9sZG9cIixcbiAgICBcIkxlb3JhXCIsXG4gICAgXCJMZXJhXCIsXG4gICAgXCJMZXNsZXlcIixcbiAgICBcIkxlc2xpZVwiLFxuICAgIFwiTGVzbHlcIixcbiAgICBcIkxlc3NpZVwiLFxuICAgIFwiTGVzdGVyXCIsXG4gICAgXCJMZXRhXCIsXG4gICAgXCJMZXRoYVwiLFxuICAgIFwiTGV0aXRpYVwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTGV3XCIsXG4gICAgXCJMZXdpc1wiLFxuICAgIFwiTGV4aVwiLFxuICAgIFwiTGV4aWVcIixcbiAgICBcIkxleHVzXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkxpYW5hXCIsXG4gICAgXCJMaWJiaWVcIixcbiAgICBcIkxpYmJ5XCIsXG4gICAgXCJMaWxhXCIsXG4gICAgXCJMaWxpYW5cIixcbiAgICBcIkxpbGlhbmFcIixcbiAgICBcIkxpbGlhbmVcIixcbiAgICBcIkxpbGxhXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJMaWxsaWFuYVwiLFxuICAgIFwiTGlsbGllXCIsXG4gICAgXCJMaWxseVwiLFxuICAgIFwiTGlseVwiLFxuICAgIFwiTGlseWFuXCIsXG4gICAgXCJMaW5hXCIsXG4gICAgXCJMaW5jb2xuXCIsXG4gICAgXCJMaW5kYVwiLFxuICAgIFwiTGluZHNheVwiLFxuICAgIFwiTGluZHNleVwiLFxuICAgIFwiTGlubmVhXCIsXG4gICAgXCJMaW5uaWVcIixcbiAgICBcIkxpbndvb2RcIixcbiAgICBcIkxpb25lbFwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiTGlzYW5kcm9cIixcbiAgICBcIkxpc2V0dGVcIixcbiAgICBcIkxpdHp5XCIsXG4gICAgXCJMaXphXCIsXG4gICAgXCJMaXpldGhcIixcbiAgICBcIkxpenppZVwiLFxuICAgIFwiTGxld2VsbHluXCIsXG4gICAgXCJMbG95ZFwiLFxuICAgIFwiTG9nYW5cIixcbiAgICBcIkxvaXNcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkxvbGl0YVwiLFxuICAgIFwiTG9tYVwiLFxuICAgIFwiTG9uXCIsXG4gICAgXCJMb25kb25cIixcbiAgICBcIkxvbmllXCIsXG4gICAgXCJMb25uaWVcIixcbiAgICBcIkxvbm55XCIsXG4gICAgXCJMb256b1wiLFxuICAgIFwiTG9yYVwiLFxuICAgIFwiTG9yYWluZVwiLFxuICAgIFwiTG9yZW5cIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3JlbnphXCIsXG4gICAgXCJMb3JlbnpvXCIsXG4gICAgXCJMb3JpXCIsXG4gICAgXCJMb3JpbmVcIixcbiAgICBcIkxvcm5hXCIsXG4gICAgXCJMb3R0aWVcIixcbiAgICBcIkxvdVwiLFxuICAgIFwiTG91aWVcIixcbiAgICBcIkxvdWlzYVwiLFxuICAgIFwiTG91cmRlc1wiLFxuICAgIFwiTG91dmVuaWFcIixcbiAgICBcIkxvd2VsbFwiLFxuICAgIFwiTG95XCIsXG4gICAgXCJMb3lhbFwiLFxuICAgIFwiTG95Y2VcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWNpYW5vXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiTHVjaWVubmVcIixcbiAgICBcIkx1Y2lsZVwiLFxuICAgIFwiTHVjaW5kYVwiLFxuICAgIFwiTHVjaW9cIixcbiAgICBcIkx1Y2lvdXNcIixcbiAgICBcIkx1Y2l1c1wiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiTHVkaWVcIixcbiAgICBcIkx1ZHdpZ1wiLFxuICAgIFwiTHVlXCIsXG4gICAgXCJMdWVsbGFcIixcbiAgICBcIkx1aWdpXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWlzYVwiLFxuICAgIFwiTHVrYXNcIixcbiAgICBcIkx1bGFcIixcbiAgICBcIkx1bHVcIixcbiAgICBcIkx1bmFcIixcbiAgICBcIkx1cGVcIixcbiAgICBcIkx1cmFcIixcbiAgICBcIkx1cmxpbmVcIixcbiAgICBcIkx1dGhlclwiLFxuICAgIFwiTHV6XCIsXG4gICAgXCJMeWRhXCIsXG4gICAgXCJMeWRpYVwiLFxuICAgIFwiTHlsYVwiLFxuICAgIFwiTHlublwiLFxuICAgIFwiTHlyaWNcIixcbiAgICBcIkx5c2FubmVcIixcbiAgICBcIk1hYmVsXCIsXG4gICAgXCJNYWJlbGxlXCIsXG4gICAgXCJNYWJsZVwiLFxuICAgIFwiTWFjXCIsXG4gICAgXCJNYWNleVwiLFxuICAgIFwiTWFjaVwiLFxuICAgIFwiTWFjaWVcIixcbiAgICBcIk1hY2tcIixcbiAgICBcIk1hY2tlbnppZVwiLFxuICAgIFwiTWFjeVwiLFxuICAgIFwiTWFkYWxpbmVcIixcbiAgICBcIk1hZGFseW5cIixcbiAgICBcIk1hZGRpc29uXCIsXG4gICAgXCJNYWRlbGluZVwiLFxuICAgIFwiTWFkZWx5blwiLFxuICAgIFwiTWFkZWx5bm5cIixcbiAgICBcIk1hZGdlXCIsXG4gICAgXCJNYWRpZVwiLFxuICAgIFwiTWFkaWx5blwiLFxuICAgIFwiTWFkaXNlblwiLFxuICAgIFwiTWFkaXNvblwiLFxuICAgIFwiTWFkaXN5blwiLFxuICAgIFwiTWFkb25uYVwiLFxuICAgIFwiTWFkeXNvblwiLFxuICAgIFwiTWFlXCIsXG4gICAgXCJNYWVnYW5cIixcbiAgICBcIk1hZXZlXCIsXG4gICAgXCJNYWZhbGRhXCIsXG4gICAgXCJNYWdhbGlcIixcbiAgICBcIk1hZ2RhbGVuXCIsXG4gICAgXCJNYWdkYWxlbmFcIixcbiAgICBcIk1hZ2dpZVwiLFxuICAgIFwiTWFnbm9saWFcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFpYVwiLFxuICAgIFwiTWFpZGFcIixcbiAgICBcIk1haXlhXCIsXG4gICAgXCJNYWpvclwiLFxuICAgIFwiTWFrYXlsYVwiLFxuICAgIFwiTWFrZW5uYVwiLFxuICAgIFwiTWFrZW56aWVcIixcbiAgICBcIk1hbGFjaGlcIixcbiAgICBcIk1hbGNvbG1cIixcbiAgICBcIk1hbGlrYVwiLFxuICAgIFwiTWFsaW5kYVwiLFxuICAgIFwiTWFsbGllXCIsXG4gICAgXCJNYWxsb3J5XCIsXG4gICAgXCJNYWx2aW5hXCIsXG4gICAgXCJNYW5keVwiLFxuICAgIFwiTWFubGV5XCIsXG4gICAgXCJNYW51ZWxcIixcbiAgICBcIk1hbnVlbGFcIixcbiAgICBcIk1hcmFcIixcbiAgICBcIk1hcmNcIixcbiAgICBcIk1hcmNlbFwiLFxuICAgIFwiTWFyY2VsaW5hXCIsXG4gICAgXCJNYXJjZWxpbm9cIixcbiAgICBcIk1hcmNlbGxhXCIsXG4gICAgXCJNYXJjZWxsZVwiLFxuICAgIFwiTWFyY2VsbHVzXCIsXG4gICAgXCJNYXJjZWxvXCIsXG4gICAgXCJNYXJjaWFcIixcbiAgICBcIk1hcmNvXCIsXG4gICAgXCJNYXJjb3NcIixcbiAgICBcIk1hcmN1c1wiLFxuICAgIFwiTWFyZ2FyZXRcIixcbiAgICBcIk1hcmdhcmV0ZVwiLFxuICAgIFwiTWFyZ2FyZXR0XCIsXG4gICAgXCJNYXJnYXJldHRhXCIsXG4gICAgXCJNYXJnYXJldHRlXCIsXG4gICAgXCJNYXJnYXJpdGFcIixcbiAgICBcIk1hcmdlXCIsXG4gICAgXCJNYXJnaWVcIixcbiAgICBcIk1hcmdvdFwiLFxuICAgIFwiTWFyZ3JldFwiLFxuICAgIFwiTWFyZ3Vlcml0ZVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhaFwiLFxuICAgIFwiTWFyaWFtXCIsXG4gICAgXCJNYXJpYW5cIixcbiAgICBcIk1hcmlhbmFcIixcbiAgICBcIk1hcmlhbmVcIixcbiAgICBcIk1hcmlhbm5hXCIsXG4gICAgXCJNYXJpYW5uZVwiLFxuICAgIFwiTWFyaWFub1wiLFxuICAgIFwiTWFyaWJlbFwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIk1hcmllbGFcIixcbiAgICBcIk1hcmllbGxlXCIsXG4gICAgXCJNYXJpZXR0YVwiLFxuICAgIFwiTWFyaWxpZVwiLFxuICAgIFwiTWFyaWxvdVwiLFxuICAgIFwiTWFyaWx5bmVcIixcbiAgICBcIk1hcmluYVwiLFxuICAgIFwiTWFyaW9cIixcbiAgICBcIk1hcmlvblwiLFxuICAgIFwiTWFyaXNhXCIsXG4gICAgXCJNYXJpc29sXCIsXG4gICAgXCJNYXJpdHphXCIsXG4gICAgXCJNYXJqb2xhaW5lXCIsXG4gICAgXCJNYXJqb3JpZVwiLFxuICAgIFwiTWFyam9yeVwiLFxuICAgIFwiTWFya1wiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXJsZWVcIixcbiAgICBcIk1hcmxlblwiLFxuICAgIFwiTWFybGVuZVwiLFxuICAgIFwiTWFybGV5XCIsXG4gICAgXCJNYXJsaW5cIixcbiAgICBcIk1hcmxvblwiLFxuICAgIFwiTWFycXVlc1wiLFxuICAgIFwiTWFycXVpc1wiLFxuICAgIFwiTWFycXVpc2VcIixcbiAgICBcIk1hcnNoYWxsXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ0aW5hXCIsXG4gICAgXCJNYXJ0aW5lXCIsXG4gICAgXCJNYXJ0eVwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXJ5XCIsXG4gICAgXCJNYXJ5YW1cIixcbiAgICBcIk1hcnlqYW5lXCIsXG4gICAgXCJNYXJ5c2VcIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWF0aGV3XCIsXG4gICAgXCJNYXRoaWFzXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWF0aWxkYVwiLFxuICAgIFwiTWF0aWxkZVwiLFxuICAgIFwiTWF0dFwiLFxuICAgIFwiTWF0dGVvXCIsXG4gICAgXCJNYXR0aWVcIixcbiAgICBcIk1hdWRcIixcbiAgICBcIk1hdWRlXCIsXG4gICAgXCJNYXVkaWVcIixcbiAgICBcIk1hdXJlZW5cIixcbiAgICBcIk1hdXJpY2VcIixcbiAgICBcIk1hdXJpY2lvXCIsXG4gICAgXCJNYXVyaW5lXCIsXG4gICAgXCJNYXZlcmlja1wiLFxuICAgIFwiTWF2aXNcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWF4aWVcIixcbiAgICBcIk1heGltZVwiLFxuICAgIFwiTWF4aW1pbGlhblwiLFxuICAgIFwiTWF4aW1pbGxpYVwiLFxuICAgIFwiTWF4aW1pbGxpYW5cIixcbiAgICBcIk1heGltb1wiLFxuICAgIFwiTWF4aW11c1wiLFxuICAgIFwiTWF4aW5lXCIsXG4gICAgXCJNYXh3ZWxsXCIsXG4gICAgXCJNYXlcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heWJlbGxcIixcbiAgICBcIk1heWJlbGxlXCIsXG4gICAgXCJNYXllXCIsXG4gICAgXCJNYXltaWVcIixcbiAgICBcIk1heW5hcmRcIixcbiAgICBcIk1heXJhXCIsXG4gICAgXCJNYXppZVwiLFxuICAgIFwiTWNrYXlsYVwiLFxuICAgIFwiTWNrZW5uYVwiLFxuICAgIFwiTWNrZW56aWVcIixcbiAgICBcIk1lYWdhblwiLFxuICAgIFwiTWVhZ2hhblwiLFxuICAgIFwiTWVkYVwiLFxuICAgIFwiTWVnYW5lXCIsXG4gICAgXCJNZWdnaWVcIixcbiAgICBcIk1lZ2hhblwiLFxuICAgIFwiTWVraGlcIixcbiAgICBcIk1lbGFueVwiLFxuICAgIFwiTWVsYmFcIixcbiAgICBcIk1lbGlzYVwiLFxuICAgIFwiTWVsaXNzYVwiLFxuICAgIFwiTWVsbGllXCIsXG4gICAgXCJNZWxvZHlcIixcbiAgICBcIk1lbHZpblwiLFxuICAgIFwiTWVsdmluYVwiLFxuICAgIFwiTWVseW5hXCIsXG4gICAgXCJNZWx5c3NhXCIsXG4gICAgXCJNZXJjZWRlc1wiLFxuICAgIFwiTWVyZWRpdGhcIixcbiAgICBcIk1lcmxcIixcbiAgICBcIk1lcmxlXCIsXG4gICAgXCJNZXJsaW5cIixcbiAgICBcIk1lcnJpdHRcIixcbiAgICBcIk1lcnRpZVwiLFxuICAgIFwiTWVydmluXCIsXG4gICAgXCJNZXRhXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIk1pY2FlbGFcIixcbiAgICBcIk1pY2FoXCIsXG4gICAgXCJNaWNoYWVsXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiTWljaGFsZVwiLFxuICAgIFwiTWljaGVhbFwiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWNoZWxlXCIsXG4gICAgXCJNaWNoZWxsZVwiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWtheWxhXCIsXG4gICAgXCJNaWtlXCIsXG4gICAgXCJNaWtlbFwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIk1pbGVzXCIsXG4gICAgXCJNaWxmb3JkXCIsXG4gICAgXCJNaWxsZXJcIixcbiAgICBcIk1pbGxpZVwiLFxuICAgIFwiTWlsb1wiLFxuICAgIFwiTWlsdG9uXCIsXG4gICAgXCJNaW5hXCIsXG4gICAgXCJNaW5lcnZhXCIsXG4gICAgXCJNaW5uaWVcIixcbiAgICBcIk1pcmFjbGVcIixcbiAgICBcIk1pcmVpbGxlXCIsXG4gICAgXCJNaXJleWFcIixcbiAgICBcIk1pc2FlbFwiLFxuICAgIFwiTWlzc291cmlcIixcbiAgICBcIk1pc3R5XCIsXG4gICAgXCJNaXRjaGVsXCIsXG4gICAgXCJNaXRjaGVsbFwiLFxuICAgIFwiTWl0dGllXCIsXG4gICAgXCJNb2Rlc3RhXCIsXG4gICAgXCJNb2Rlc3RvXCIsXG4gICAgXCJNb2hhbWVkXCIsXG4gICAgXCJNb2hhbW1hZFwiLFxuICAgIFwiTW9oYW1tZWRcIixcbiAgICBcIk1vaXNlc1wiLFxuICAgIFwiTW9sbGllXCIsXG4gICAgXCJNb2xseVwiLFxuICAgIFwiTW9uYVwiLFxuICAgIFwiTW9uaWNhXCIsXG4gICAgXCJNb25pcXVlXCIsXG4gICAgXCJNb25yb2VcIixcbiAgICBcIk1vbnNlcnJhdFwiLFxuICAgIFwiTW9uc2VycmF0ZVwiLFxuICAgIFwiTW9udGFuYVwiLFxuICAgIFwiTW9udGVcIixcbiAgICBcIk1vbnR5XCIsXG4gICAgXCJNb3JnYW5cIixcbiAgICBcIk1vcmlhaFwiLFxuICAgIFwiTW9ycmlzXCIsXG4gICAgXCJNb3J0aW1lclwiLFxuICAgIFwiTW9ydG9uXCIsXG4gICAgXCJNb3NlXCIsXG4gICAgXCJNb3Nlc1wiLFxuICAgIFwiTW9zaGVcIixcbiAgICBcIk1vc3NpZVwiLFxuICAgIFwiTW96ZWxsXCIsXG4gICAgXCJNb3plbGxlXCIsXG4gICAgXCJNdWhhbW1hZFwiLFxuICAgIFwiTXVyaWVsXCIsXG4gICAgXCJNdXJsXCIsXG4gICAgXCJNdXJwaHlcIixcbiAgICBcIk11cnJheVwiLFxuICAgIFwiTXVzdGFmYVwiLFxuICAgIFwiTXlhXCIsXG4gICAgXCJNeWFoXCIsXG4gICAgXCJNeWxlbmVcIixcbiAgICBcIk15bGVzXCIsXG4gICAgXCJNeXJhXCIsXG4gICAgXCJNeXJpYW1cIixcbiAgICBcIk15cmxcIixcbiAgICBcIk15cm5hXCIsXG4gICAgXCJNeXJvblwiLFxuICAgIFwiTXlydGljZVwiLFxuICAgIFwiTXlydGllXCIsXG4gICAgXCJNeXJ0aXNcIixcbiAgICBcIk15cnRsZVwiLFxuICAgIFwiTmFkaWFcIixcbiAgICBcIk5ha2lhXCIsXG4gICAgXCJOYW1lXCIsXG4gICAgXCJOYW5uaWVcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYW9taWVcIixcbiAgICBcIk5hcG9sZW9uXCIsXG4gICAgXCJOYXJjaXNvXCIsXG4gICAgXCJOYXNoXCIsXG4gICAgXCJOYXNpclwiLFxuICAgIFwiTmF0XCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJOYXRhc2hhXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIk5hdGhhbmFlbFwiLFxuICAgIFwiTmF0aGFuaWFsXCIsXG4gICAgXCJOYXRoYW5pZWxcIixcbiAgICBcIk5hdGhlblwiLFxuICAgIFwiTmF5ZWxpXCIsXG4gICAgXCJOZWFsXCIsXG4gICAgXCJOZWRcIixcbiAgICBcIk5lZHJhXCIsXG4gICAgXCJOZWhhXCIsXG4gICAgXCJOZWlsXCIsXG4gICAgXCJOZWxkYVwiLFxuICAgIFwiTmVsbGFcIixcbiAgICBcIk5lbGxlXCIsXG4gICAgXCJOZWxsaWVcIixcbiAgICBcIk5lbHNcIixcbiAgICBcIk5lbHNvblwiLFxuICAgIFwiTmVvbWFcIixcbiAgICBcIk5lc3RvclwiLFxuICAgIFwiTmV0dGllXCIsXG4gICAgXCJOZXZhXCIsXG4gICAgXCJOZXdlbGxcIixcbiAgICBcIk5ld3RvblwiLFxuICAgIFwiTmlhXCIsXG4gICAgXCJOaWNob2xhc1wiLFxuICAgIFwiTmljaG9sYXVzXCIsXG4gICAgXCJOaWNob2xlXCIsXG4gICAgXCJOaWNrXCIsXG4gICAgXCJOaWNrbGF1c1wiLFxuICAgIFwiTmlja29sYXNcIixcbiAgICBcIk5pY29cIixcbiAgICBcIk5pY29sYVwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiTmljb2xlXCIsXG4gICAgXCJOaWNvbGV0dGVcIixcbiAgICBcIk5pZ2VsXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pa2tpXCIsXG4gICAgXCJOaWtrb1wiLFxuICAgIFwiTmlrb1wiLFxuICAgIFwiTmlrb2xhc1wiLFxuICAgIFwiTmlsc1wiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTm9ibGVcIixcbiAgICBcIk5vZVwiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiTm9lbGlhXCIsXG4gICAgXCJOb2VtaVwiLFxuICAgIFwiTm9lbWllXCIsXG4gICAgXCJOb2VteVwiLFxuICAgIFwiTm9sYVwiLFxuICAgIFwiTm9sYW5cIixcbiAgICBcIk5vbmFcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIk5vcmJlcnRcIixcbiAgICBcIk5vcmJlcnRvXCIsXG4gICAgXCJOb3JlbmVcIixcbiAgICBcIk5vcm1hXCIsXG4gICAgXCJOb3JyaXNcIixcbiAgICBcIk5vcnZhbFwiLFxuICAgIFwiTm9yd29vZFwiLFxuICAgIFwiTm92YVwiLFxuICAgIFwiTm92ZWxsYVwiLFxuICAgIFwiTnlhXCIsXG4gICAgXCJOeWFoXCIsXG4gICAgXCJOeWFzaWFcIixcbiAgICBcIk9iaWVcIixcbiAgICBcIk9jZWFuZVwiLFxuICAgIFwiT2NpZVwiLFxuICAgIFwiT2N0YXZpYVwiLFxuICAgIFwiT2RhXCIsXG4gICAgXCJPZGVsbFwiLFxuICAgIFwiT2Rlc3NhXCIsXG4gICAgXCJPZGllXCIsXG4gICAgXCJPZmVsaWFcIixcbiAgICBcIk9rZXlcIixcbiAgICBcIk9sYVwiLFxuICAgIFwiT2xhZlwiLFxuICAgIFwiT2xlXCIsXG4gICAgXCJPbGVuXCIsXG4gICAgXCJPbGV0YVwiLFxuICAgIFwiT2xnYVwiLFxuICAgIFwiT2xpblwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJPbGxpZVwiLFxuICAgIFwiT21hXCIsXG4gICAgXCJPbWFyaVwiLFxuICAgIFwiT21lclwiLFxuICAgIFwiT25hXCIsXG4gICAgXCJPbmllXCIsXG4gICAgXCJPcGFsXCIsXG4gICAgXCJPcGhlbGlhXCIsXG4gICAgXCJPcmFcIixcbiAgICBcIk9yYWxcIixcbiAgICBcIk9yYW5cIixcbiAgICBcIk9yZW5cIixcbiAgICBcIk9yaWVcIixcbiAgICBcIk9yaW5cIixcbiAgICBcIk9yaW9uXCIsXG4gICAgXCJPcmxhbmRcIixcbiAgICBcIk9ybGFuZG9cIixcbiAgICBcIk9ybG9cIixcbiAgICBcIk9ycGhhXCIsXG4gICAgXCJPcnJpblwiLFxuICAgIFwiT3J2YWxcIixcbiAgICBcIk9ydmlsbGVcIixcbiAgICBcIk9zYmFsZG9cIixcbiAgICBcIk9zYm9ybmVcIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJPc3ZhbGRvXCIsXG4gICAgXCJPc3dhbGRcIixcbiAgICBcIk9zd2FsZG9cIixcbiAgICBcIk90aGFcIixcbiAgICBcIk90aG9cIixcbiAgICBcIk90aWxpYVwiLFxuICAgIFwiT3Rpc1wiLFxuICAgIFwiT3R0aWxpZVwiLFxuICAgIFwiT3R0aXNcIixcbiAgICBcIk90dG9cIixcbiAgICBcIk92YVwiLFxuICAgIFwiT3dlblwiLFxuICAgIFwiT3plbGxhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGFpZ2VcIixcbiAgICBcIlBhbG1hXCIsXG4gICAgXCJQYW1lbGFcIixcbiAgICBcIlBhbnN5XCIsXG4gICAgXCJQYW9sb1wiLFxuICAgIFwiUGFyaXNcIixcbiAgICBcIlBhcmtlclwiLFxuICAgIFwiUGFzY2FsZVwiLFxuICAgIFwiUGFzcXVhbGVcIixcbiAgICBcIlBhdFwiLFxuICAgIFwiUGF0aWVuY2VcIixcbiAgICBcIlBhdHJpY2lhXCIsXG4gICAgXCJQYXRyaWNrXCIsXG4gICAgXCJQYXRzeVwiLFxuICAgIFwiUGF0dGllXCIsXG4gICAgXCJQYXVsXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGF1bGluZVwiLFxuICAgIFwiUGF4dG9uXCIsXG4gICAgXCJQYXl0b25cIixcbiAgICBcIlBlYXJsXCIsXG4gICAgXCJQZWFybGllXCIsXG4gICAgXCJQZWFybGluZVwiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlBlZ2dpZVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBlcmNpdmFsXCIsXG4gICAgXCJQZXJjeVwiLFxuICAgIFwiUGVycnlcIixcbiAgICBcIlBldGVcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQZXRyYVwiLFxuICAgIFwiUGV5dG9uXCIsXG4gICAgXCJQaGlsaXBcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiUGh5bGxpc1wiLFxuICAgIFwiUGllcmNlXCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlBpZXRyb1wiLFxuICAgIFwiUGlua1wiLFxuICAgIFwiUGlua2llXCIsXG4gICAgXCJQaXBlclwiLFxuICAgIFwiUG9sbHlcIixcbiAgICBcIlBvcnRlclwiLFxuICAgIFwiUHJlY2lvdXNcIixcbiAgICBcIlByZXNsZXlcIixcbiAgICBcIlByZXN0b25cIixcbiAgICBcIlByaWNlXCIsXG4gICAgXCJQcmluY2VcIixcbiAgICBcIlByaW5jZXNzXCIsXG4gICAgXCJQcmlzY2lsbGFcIixcbiAgICBcIlByb3ZpZGVuY2lcIixcbiAgICBcIlBydWRlbmNlXCIsXG4gICAgXCJRdWVlblwiLFxuICAgIFwiUXVlZW5pZVwiLFxuICAgIFwiUXVlbnRpblwiLFxuICAgIFwiUXVpbmN5XCIsXG4gICAgXCJRdWlublwiLFxuICAgIFwiUXVpbnRlblwiLFxuICAgIFwiUXVpbnRvblwiLFxuICAgIFwiUmFjaGFlbFwiLFxuICAgIFwiUmFjaGVsXCIsXG4gICAgXCJSYWNoZWxsZVwiLFxuICAgIFwiUmFlXCIsXG4gICAgXCJSYWVnYW5cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFmYWVsYVwiLFxuICAgIFwiUmFoZWVtXCIsXG4gICAgXCJSYWhzYWFuXCIsXG4gICAgXCJSYWh1bFwiLFxuICAgIFwiUmFpbmFcIixcbiAgICBcIlJhbGVpZ2hcIixcbiAgICBcIlJhbHBoXCIsXG4gICAgXCJSYW1pcm9cIixcbiAgICBcIlJhbW9uXCIsXG4gICAgXCJSYW1vbmFcIixcbiAgICBcIlJhbmRhbFwiLFxuICAgIFwiUmFuZGFsbFwiLFxuICAgIFwiUmFuZGlcIixcbiAgICBcIlJhbmR5XCIsXG4gICAgXCJSYW5zb21cIixcbiAgICBcIlJhb3VsXCIsXG4gICAgXCJSYXBoYWVsXCIsXG4gICAgXCJSYXBoYWVsbGVcIixcbiAgICBcIlJhcXVlbFwiLFxuICAgIFwiUmFzaGFkXCIsXG4gICAgXCJSYXNoYXduXCIsXG4gICAgXCJSYXNoZWVkXCIsXG4gICAgXCJSYXVsXCIsXG4gICAgXCJSYXZlblwiLFxuICAgIFwiUmF5XCIsXG4gICAgXCJSYXltb25kXCIsXG4gICAgXCJSYXltdW5kb1wiLFxuICAgIFwiUmVhZ2FuXCIsXG4gICAgXCJSZWFubmFcIixcbiAgICBcIlJlYmFcIixcbiAgICBcIlJlYmVjYVwiLFxuICAgIFwiUmViZWNjYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSZWJla2FoXCIsXG4gICAgXCJSZWVjZVwiLFxuICAgIFwiUmVlZFwiLFxuICAgIFwiUmVlc2VcIixcbiAgICBcIlJlZ2FuXCIsXG4gICAgXCJSZWdnaWVcIixcbiAgICBcIlJlZ2luYWxkXCIsXG4gICAgXCJSZWlkXCIsXG4gICAgXCJSZWlsbHlcIixcbiAgICBcIlJlaW5hXCIsXG4gICAgXCJSZWluaG9sZFwiLFxuICAgIFwiUmVtaW5ndG9uXCIsXG4gICAgXCJSZW5lXCIsXG4gICAgXCJSZW5lZVwiLFxuICAgIFwiUmVzc2llXCIsXG4gICAgXCJSZXRhXCIsXG4gICAgXCJSZXRoYVwiLFxuICAgIFwiUmV0dGFcIixcbiAgICBcIlJldWJlblwiLFxuICAgIFwiUmV2YVwiLFxuICAgIFwiUmV4XCIsXG4gICAgXCJSZXlcIixcbiAgICBcIlJleWVzXCIsXG4gICAgXCJSZXltdW5kb1wiLFxuICAgIFwiUmV5bmFcIixcbiAgICBcIlJleW5vbGRcIixcbiAgICBcIlJoZWFcIixcbiAgICBcIlJoZXR0XCIsXG4gICAgXCJSaGlhbm5hXCIsXG4gICAgXCJSaGlhbm5vblwiLFxuICAgIFwiUmhvZGFcIixcbiAgICBcIlJpY2FyZG9cIixcbiAgICBcIlJpY2hhcmRcIixcbiAgICBcIlJpY2hpZVwiLFxuICAgIFwiUmljaG1vbmRcIixcbiAgICBcIlJpY2tcIixcbiAgICBcIlJpY2tleVwiLFxuICAgIFwiUmlja2llXCIsXG4gICAgXCJSaWNreVwiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUmlnb2JlcnRvXCIsXG4gICAgXCJSaWxleVwiLFxuICAgIFwiUml0YVwiLFxuICAgIFwiUml2ZXJcIixcbiAgICBcIlJvYmJcIixcbiAgICBcIlJvYmJpZVwiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2JlcnRhXCIsXG4gICAgXCJSb2JlcnRvXCIsXG4gICAgXCJSb2JpblwiLFxuICAgIFwiUm9ieW5cIixcbiAgICBcIlJvY2lvXCIsXG4gICAgXCJSb2NreVwiLFxuICAgIFwiUm9kXCIsXG4gICAgXCJSb2Rlcmlja1wiLFxuICAgIFwiUm9kZ2VyXCIsXG4gICAgXCJSb2RvbGZvXCIsXG4gICAgXCJSb2RyaWNrXCIsXG4gICAgXCJSb2RyaWdvXCIsXG4gICAgXCJSb2VsXCIsXG4gICAgXCJSb2dlbGlvXCIsXG4gICAgXCJSb2dlclwiLFxuICAgIFwiUm9nZXJzXCIsXG4gICAgXCJSb2xhbmRvXCIsXG4gICAgXCJSb2xsaW5cIixcbiAgICBcIlJvbWFcIixcbiAgICBcIlJvbWFpbmVcIixcbiAgICBcIlJvbWFuXCIsXG4gICAgXCJSb25cIixcbiAgICBcIlJvbmFsZG9cIixcbiAgICBcIlJvbm55XCIsXG4gICAgXCJSb29zZXZlbHRcIixcbiAgICBcIlJvcnlcIixcbiAgICBcIlJvc2FcIixcbiAgICBcIlJvc2FsZWVcIixcbiAgICBcIlJvc2FsaWFcIixcbiAgICBcIlJvc2FsaW5kXCIsXG4gICAgXCJSb3NhbGluZGFcIixcbiAgICBcIlJvc2FseW5cIixcbiAgICBcIlJvc2Ftb25kXCIsXG4gICAgXCJSb3Nhbm5hXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJSb3Njb2VcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIlJvc2VsbGFcIixcbiAgICBcIlJvc2VseW5cIixcbiAgICBcIlJvc2VtYXJpZVwiLFxuICAgIFwiUm9zZW1hcnlcIixcbiAgICBcIlJvc2VuZG9cIixcbiAgICBcIlJvc2V0dGFcIixcbiAgICBcIlJvc2llXCIsXG4gICAgXCJSb3NpbmFcIixcbiAgICBcIlJvc2x5blwiLFxuICAgIFwiUm9zc1wiLFxuICAgIFwiUm9zc2llXCIsXG4gICAgXCJSb3dhblwiLFxuICAgIFwiUm93ZW5hXCIsXG4gICAgXCJSb3dsYW5kXCIsXG4gICAgXCJSb3hhbmVcIixcbiAgICBcIlJveGFubmVcIixcbiAgICBcIlJveVwiLFxuICAgIFwiUm95YWxcIixcbiAgICBcIlJveWNlXCIsXG4gICAgXCJSb3plbGxhXCIsXG4gICAgXCJSdWJlblwiLFxuICAgIFwiUnViaWVcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIlJ1YnllXCIsXG4gICAgXCJSdWRvbHBoXCIsXG4gICAgXCJSdWR5XCIsXG4gICAgXCJSdXBlcnRcIixcbiAgICBcIlJ1c3NcIixcbiAgICBcIlJ1c3NlbFwiLFxuICAgIFwiUnVzc2VsbFwiLFxuICAgIFwiUnVzdHlcIixcbiAgICBcIlJ1dGhcIixcbiAgICBcIlJ1dGhlXCIsXG4gICAgXCJSdXRoaWVcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJ5YW5uXCIsXG4gICAgXCJSeWRlclwiLFxuICAgIFwiUnlsYW5cIixcbiAgICBcIlJ5bGVlXCIsXG4gICAgXCJSeWxlaWdoXCIsXG4gICAgXCJSeWxleVwiLFxuICAgIFwiU2FiaW5hXCIsXG4gICAgXCJTYWJyaW5hXCIsXG4gICAgXCJTYWJyeW5hXCIsXG4gICAgXCJTYWRpZVwiLFxuICAgIFwiU2FkeWVcIixcbiAgICBcIlNhZ2VcIixcbiAgICBcIlNhaWdlXCIsXG4gICAgXCJTYWxsaWVcIixcbiAgICBcIlNhbGx5XCIsXG4gICAgXCJTYWxtYVwiLFxuICAgIFwiU2FsdmFkb3JcIixcbiAgICBcIlNhbHZhdG9yZVwiLFxuICAgIFwiU2FtXCIsXG4gICAgXCJTYW1hbnRhXCIsXG4gICAgXCJTYW1hbnRoYVwiLFxuICAgIFwiU2FtYXJhXCIsXG4gICAgXCJTYW1pclwiLFxuICAgIFwiU2FtbWllXCIsXG4gICAgXCJTYW1teVwiLFxuICAgIFwiU2Ftc29uXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIlNhbmRyaW5lXCIsXG4gICAgXCJTYW5keVwiLFxuICAgIFwiU2FuZm9yZFwiLFxuICAgIFwiU2FudGFcIixcbiAgICBcIlNhbnRpYWdvXCIsXG4gICAgXCJTYW50aW5hXCIsXG4gICAgXCJTYW50aW5vXCIsXG4gICAgXCJTYW50b3NcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJTYXJhaVwiLFxuICAgIFwiU2FyaW5hXCIsXG4gICAgXCJTYXNoYVwiLFxuICAgIFwiU2F1bFwiLFxuICAgIFwiU2F2YW5haFwiLFxuICAgIFwiU2F2YW5uYVwiLFxuICAgIFwiU2F2YW5uYWhcIixcbiAgICBcIlNhdmlvblwiLFxuICAgIFwiU2NhcmxldHRcIixcbiAgICBcIlNjaHV5bGVyXCIsXG4gICAgXCJTY290XCIsXG4gICAgXCJTY290dGllXCIsXG4gICAgXCJTY290dHlcIixcbiAgICBcIlNlYW11c1wiLFxuICAgIFwiU2VhblwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZWRyaWNrXCIsXG4gICAgXCJTZWxlbmFcIixcbiAgICBcIlNlbGluYVwiLFxuICAgIFwiU2VsbWVyXCIsXG4gICAgXCJTZXJlbmFcIixcbiAgICBcIlNlcmVuaXR5XCIsXG4gICAgXCJTZXRoXCIsXG4gICAgXCJTaGFkXCIsXG4gICAgXCJTaGFpbmFcIixcbiAgICBcIlNoYWtpcmFcIixcbiAgICBcIlNoYW5hXCIsXG4gICAgXCJTaGFuZVwiLFxuICAgIFwiU2hhbmVsXCIsXG4gICAgXCJTaGFuZWxsZVwiLFxuICAgIFwiU2hhbmlhXCIsXG4gICAgXCJTaGFuaWVcIixcbiAgICBcIlNoYW5peWFcIixcbiAgICBcIlNoYW5uYVwiLFxuICAgIFwiU2hhbm5vblwiLFxuICAgIFwiU2hhbm55XCIsXG4gICAgXCJTaGFub25cIixcbiAgICBcIlNoYW55XCIsXG4gICAgXCJTaGFyb25cIixcbiAgICBcIlNoYXVuXCIsXG4gICAgXCJTaGF3blwiLFxuICAgIFwiU2hhd25hXCIsXG4gICAgXCJTaGF5bGVlXCIsXG4gICAgXCJTaGF5bmFcIixcbiAgICBcIlNoYXluZVwiLFxuICAgIFwiU2hlYVwiLFxuICAgIFwiU2hlaWxhXCIsXG4gICAgXCJTaGVsZG9uXCIsXG4gICAgXCJTaGVtYXJcIixcbiAgICBcIlNoZXJpZGFuXCIsXG4gICAgXCJTaGVybWFuXCIsXG4gICAgXCJTaGVyd29vZFwiLFxuICAgIFwiU2hpcmxleVwiLFxuICAgIFwiU2h5YW5uXCIsXG4gICAgXCJTaHlhbm5lXCIsXG4gICAgXCJTaWJ5bFwiLFxuICAgIFwiU2lkXCIsXG4gICAgXCJTaWRuZXlcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiU2llcnJhXCIsXG4gICAgXCJTaWdtdW5kXCIsXG4gICAgXCJTaWdyaWRcIixcbiAgICBcIlNpZ3VyZFwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlNpbVwiLFxuICAgIFwiU2ltZW9uXCIsXG4gICAgXCJTaW1vbmVcIixcbiAgICBcIlNpbmNlcmVcIixcbiAgICBcIlNpc3RlclwiLFxuICAgIFwiU2t5ZVwiLFxuICAgIFwiU2t5bGFcIixcbiAgICBcIlNreWxhclwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIlNvbGVkYWRcIixcbiAgICBcIlNvbG9uXCIsXG4gICAgXCJTb25pYVwiLFxuICAgIFwiU29ubnlcIixcbiAgICBcIlNvbnlhXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiU3BlbmNlclwiLFxuICAgIFwiU3RhY2V5XCIsXG4gICAgXCJTdGFjeVwiLFxuICAgIFwiU3RhblwiLFxuICAgIFwiU3RhbmZvcmRcIixcbiAgICBcIlN0YW5sZXlcIixcbiAgICBcIlN0YW50b25cIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiU3RlZmFuaWVcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3RlcGhhbmlhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIlN0ZXBoYW55XCIsXG4gICAgXCJTdGVwaGVuXCIsXG4gICAgXCJTdGVwaG9uXCIsXG4gICAgXCJTdGVybGluZ1wiLFxuICAgIFwiU3RldmVcIixcbiAgICBcIlN0ZXZpZVwiLFxuICAgIFwiU3Rld2FydFwiLFxuICAgIFwiU3RvbmVcIixcbiAgICBcIlN0dWFydFwiLFxuICAgIFwiU3VtbWVyXCIsXG4gICAgXCJTdW5ueVwiLFxuICAgIFwiU3VzYW5cIixcbiAgICBcIlN1c2FuYVwiLFxuICAgIFwiU3VzYW5uYVwiLFxuICAgIFwiU3VzaWVcIixcbiAgICBcIlN1emFubmVcIixcbiAgICBcIlN2ZW5cIixcbiAgICBcIlN5YmxlXCIsXG4gICAgXCJTeWRuZWVcIixcbiAgICBcIlN5ZG5leVwiLFxuICAgIFwiU3lkbmlcIixcbiAgICBcIlN5ZG5pZVwiLFxuICAgIFwiU3lsdmFuXCIsXG4gICAgXCJTeWx2ZXN0ZXJcIixcbiAgICBcIlN5bHZpYVwiLFxuICAgIFwiVGFiaXRoYVwiLFxuICAgIFwiVGFkXCIsXG4gICAgXCJUYWxpYVwiLFxuICAgIFwiVGFsb25cIixcbiAgICBcIlRhbWFyYVwiLFxuICAgIFwiVGFtaWFcIixcbiAgICBcIlRhbmlhXCIsXG4gICAgXCJUYW5uZXJcIixcbiAgICBcIlRhbnlhXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUYXJ5blwiLFxuICAgIFwiVGF0ZVwiLFxuICAgIFwiVGF0dW1cIixcbiAgICBcIlRhdHlhbmFcIixcbiAgICBcIlRhdXJlYW5cIixcbiAgICBcIlRhdmFyZXNcIixcbiAgICBcIlRheWFcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiVGVhZ2FuXCIsXG4gICAgXCJUZWRcIixcbiAgICBcIlRlbGx5XCIsXG4gICAgXCJUZXJlbmNlXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIlRlcnJhbmNlXCIsXG4gICAgXCJUZXJyZWxsXCIsXG4gICAgXCJUZXJyZW5jZVwiLFxuICAgIFwiVGVycmlsbFwiLFxuICAgIFwiVGVycnlcIixcbiAgICBcIlRlc3NcIixcbiAgICBcIlRlc3NpZVwiLFxuICAgIFwiVGV2aW5cIixcbiAgICBcIlRoYWRcIixcbiAgICBcIlRoYWRkZXVzXCIsXG4gICAgXCJUaGFsaWFcIixcbiAgICBcIlRoZWFcIixcbiAgICBcIlRoZWxtYVwiLFxuICAgIFwiVGhlb1wiLFxuICAgIFwiVGhlb2RvcmFcIixcbiAgICBcIlRoZW9kb3JlXCIsXG4gICAgXCJUaGVyZXNhXCIsXG4gICAgXCJUaGVyZXNlXCIsXG4gICAgXCJUaGVyZXNpYVwiLFxuICAgIFwiVGhlcm9uXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRob3JhXCIsXG4gICAgXCJUaHVybWFuXCIsXG4gICAgXCJUaWFcIixcbiAgICBcIlRpYW5hXCIsXG4gICAgXCJUaWFubmFcIixcbiAgICBcIlRpYXJhXCIsXG4gICAgXCJUaWVycmFcIixcbiAgICBcIlRpZmZhbnlcIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRpbW1vdGh5XCIsXG4gICAgXCJUaW1teVwiLFxuICAgIFwiVGltb3RoeVwiLFxuICAgIFwiVGluYVwiLFxuICAgIFwiVGl0b1wiLFxuICAgIFwiVGl0dXNcIixcbiAgICBcIlRvYmluXCIsXG4gICAgXCJUb2J5XCIsXG4gICAgXCJUb2RcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiVG9tYXNcIixcbiAgICBcIlRvbWFzYVwiLFxuICAgIFwiVG9tbWllXCIsXG4gICAgXCJUb25leVwiLFxuICAgIFwiVG9uaVwiLFxuICAgIFwiVG9ueVwiLFxuICAgIFwiVG9yZXlcIixcbiAgICBcIlRvcnJhbmNlXCIsXG4gICAgXCJUb3JyZXlcIixcbiAgICBcIlRveVwiLFxuICAgIFwiVHJhY2VcIixcbiAgICBcIlRyYWNleVwiLFxuICAgIFwiVHJhY3lcIixcbiAgICBcIlRyYXZpc1wiLFxuICAgIFwiVHJhdm9uXCIsXG4gICAgXCJUcmVcIixcbiAgICBcIlRyZW1haW5lXCIsXG4gICAgXCJUcmVtYXluZVwiLFxuICAgIFwiVHJlbnRcIixcbiAgICBcIlRyZW50b25cIixcbiAgICBcIlRyZXNzYVwiLFxuICAgIFwiVHJlc3NpZVwiLFxuICAgIFwiVHJldmFcIixcbiAgICBcIlRyZXZlclwiLFxuICAgIFwiVHJldmlvblwiLFxuICAgIFwiVHJldm9yXCIsXG4gICAgXCJUcmV5XCIsXG4gICAgXCJUcmluaXR5XCIsXG4gICAgXCJUcmlzaGFcIixcbiAgICBcIlRyaXN0aWFuXCIsXG4gICAgXCJUcmlzdGluXCIsXG4gICAgXCJUcmlzdG9uXCIsXG4gICAgXCJUcm95XCIsXG4gICAgXCJUcnVkaWVcIixcbiAgICBcIlRyeWNpYVwiLFxuICAgIFwiVHJ5c3RhblwiLFxuICAgIFwiVHVybmVyXCIsXG4gICAgXCJUd2lsYVwiLFxuICAgIFwiVHlsZXJcIixcbiAgICBcIlR5cmFcIixcbiAgICBcIlR5cmVlXCIsXG4gICAgXCJUeXJlZWtcIixcbiAgICBcIlR5cmVsXCIsXG4gICAgXCJUeXJlbGxcIixcbiAgICBcIlR5cmVzZVwiLFxuICAgIFwiVHlyaXF1ZVwiLFxuICAgIFwiVHlzaGF3blwiLFxuICAgIFwiVHlzb25cIixcbiAgICBcIlViYWxkb1wiLFxuICAgIFwiVWxpY2VzXCIsXG4gICAgXCJVbGlzZXNcIixcbiAgICBcIlVuYVwiLFxuICAgIFwiVW5pcXVlXCIsXG4gICAgXCJVcmJhblwiLFxuICAgIFwiVXJpYWhcIixcbiAgICBcIlVyaWVsXCIsXG4gICAgXCJVcnN1bGFcIixcbiAgICBcIlZhZGFcIixcbiAgICBcIlZhbGVudGluXCIsXG4gICAgXCJWYWxlbnRpbmFcIixcbiAgICBcIlZhbGVudGluZVwiLFxuICAgIFwiVmFsZXJpZVwiLFxuICAgIFwiVmFsbGllXCIsXG4gICAgXCJWYW5cIixcbiAgICBcIlZhbmNlXCIsXG4gICAgXCJWYW5lc3NhXCIsXG4gICAgXCJWYXVnaG5cIixcbiAgICBcIlZlZGFcIixcbiAgICBcIlZlbGRhXCIsXG4gICAgXCJWZWxsYVwiLFxuICAgIFwiVmVsbWFcIixcbiAgICBcIlZlbHZhXCIsXG4gICAgXCJWZW5hXCIsXG4gICAgXCJWZXJkYVwiLFxuICAgIFwiVmVyZGllXCIsXG4gICAgXCJWZXJnaWVcIixcbiAgICBcIlZlcmxhXCIsXG4gICAgXCJWZXJsaWVcIixcbiAgICBcIlZlcm5cIixcbiAgICBcIlZlcm5hXCIsXG4gICAgXCJWZXJuZXJcIixcbiAgICBcIlZlcm5pY2VcIixcbiAgICBcIlZlcm5pZVwiLFxuICAgIFwiVmVybm9uXCIsXG4gICAgXCJWZXJvbmFcIixcbiAgICBcIlZlcm9uaWNhXCIsXG4gICAgXCJWZXN0YVwiLFxuICAgIFwiVmljZW50YVwiLFxuICAgIFwiVmljZW50ZVwiLFxuICAgIFwiVmlja2llXCIsXG4gICAgXCJWaWNreVwiLFxuICAgIFwiVmljdG9yXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiVmlkYVwiLFxuICAgIFwiVmlkYWxcIixcbiAgICBcIlZpbG1hXCIsXG4gICAgXCJWaW5jZVwiLFxuICAgIFwiVmluY2VudFwiLFxuICAgIFwiVmluY2VuemFcIixcbiAgICBcIlZpbmNlbnpvXCIsXG4gICAgXCJWaW5uaWVcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJWaW9sZXRcIixcbiAgICBcIlZpb2xldHRlXCIsXG4gICAgXCJWaXJnaWVcIixcbiAgICBcIlZpcmdpbFwiLFxuICAgIFwiVmlyZ2luaWFcIixcbiAgICBcIlZpcmdpbmllXCIsXG4gICAgXCJWaXRhXCIsXG4gICAgXCJWaXRvXCIsXG4gICAgXCJWaXZhXCIsXG4gICAgXCJWaXZpYW5cIixcbiAgICBcIlZpdmlhbmVcIixcbiAgICBcIlZpdmlhbm5lXCIsXG4gICAgXCJWaXZpZW5cIixcbiAgICBcIlZpdmllbm5lXCIsXG4gICAgXCJWbGFkaW1pclwiLFxuICAgIFwiV2FkZVwiLFxuICAgIFwiV2Fpbm9cIixcbiAgICBcIldhbGRvXCIsXG4gICAgXCJXYWxrZXJcIixcbiAgICBcIldhbGxhY2VcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FsdG9uXCIsXG4gICAgXCJXYW5kYVwiLFxuICAgIFwiV2FyZFwiLFxuICAgIFwiV2FycmVuXCIsXG4gICAgXCJXYXRzb25cIixcbiAgICBcIldhdmFcIixcbiAgICBcIldheWxvblwiLFxuICAgIFwiV2F5bmVcIixcbiAgICBcIldlYnN0ZXJcIixcbiAgICBcIldlbGRvblwiLFxuICAgIFwiV2VsbGluZ3RvblwiLFxuICAgIFwiV2VuZGVsbFwiLFxuICAgIFwiV2VuZHlcIixcbiAgICBcIldlcm5lclwiLFxuICAgIFwiV2VzdGxleVwiLFxuICAgIFwiV2VzdG9uXCIsXG4gICAgXCJXaGl0bmV5XCIsXG4gICAgXCJXaWxiZXJcIixcbiAgICBcIldpbGJlcnRcIixcbiAgICBcIldpbGJ1cm5cIixcbiAgICBcIldpbGV5XCIsXG4gICAgXCJXaWxmb3JkXCIsXG4gICAgXCJXaWxmcmVkXCIsXG4gICAgXCJXaWxmcmVkb1wiLFxuICAgIFwiV2lsZnJpZFwiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsaGVsbWluZVwiLFxuICAgIFwiV2lsbFwiLFxuICAgIFwiV2lsbGFcIixcbiAgICBcIldpbGxhcmRcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIldpbGxpZVwiLFxuICAgIFwiV2lsbGlzXCIsXG4gICAgXCJXaWxsb3dcIixcbiAgICBcIldpbGx5XCIsXG4gICAgXCJXaWxtYVwiLFxuICAgIFwiV2lsbWVyXCIsXG4gICAgXCJXaWxzb25cIixcbiAgICBcIldpbHRvblwiLFxuICAgIFwiV2luZmllbGRcIixcbiAgICBcIldpbmlmcmVkXCIsXG4gICAgXCJXaW5uaWZyZWRcIixcbiAgICBcIldpbm9uYVwiLFxuICAgIFwiV2luc3RvblwiLFxuICAgIFwiV29vZHJvd1wiLFxuICAgIFwiV3lhdHRcIixcbiAgICBcIld5bWFuXCIsXG4gICAgXCJYYW5kZXJcIixcbiAgICBcIlhhdmllclwiLFxuICAgIFwiWHphdmllclwiLFxuICAgIFwiWWFkaXJhXCIsXG4gICAgXCJZYXNtZWVuXCIsXG4gICAgXCJZYXNtaW5cIixcbiAgICBcIllhc21pbmVcIixcbiAgICBcIllhem1pblwiLFxuICAgIFwiWWVzZW5pYVwiLFxuICAgIFwiWWVzc2VuaWFcIixcbiAgICBcIllvbGFuZGFcIixcbiAgICBcIllvc2hpa29cIixcbiAgICBcIll2ZXR0ZVwiLFxuICAgIFwiWXZvbm5lXCIsXG4gICAgXCJaYWNoYXJpYWhcIixcbiAgICBcIlphY2hhcnlcIixcbiAgICBcIlphY2hlcnlcIixcbiAgICBcIlphY2tcIixcbiAgICBcIlphY2thcnlcIixcbiAgICBcIlphY2tlcnlcIixcbiAgICBcIlpha2FyeVwiLFxuICAgIFwiWmFuZGVyXCIsXG4gICAgXCJaYW5lXCIsXG4gICAgXCJaYXJpYVwiLFxuICAgIFwiWmVjaGFyaWFoXCIsXG4gICAgXCJaZWxkYVwiLFxuICAgIFwiWmVsbGFcIixcbiAgICBcIlplbG1hXCIsXG4gICAgXCJaZW5hXCIsXG4gICAgXCJaZXR0YVwiLFxuICAgIFwiWmlvblwiLFxuICAgIFwiWml0YVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJab2V5XCIsXG4gICAgXCJab2llXCIsXG4gICAgXCJab2lsYVwiLFxuICAgIFwiWm9sYVwiLFxuICAgIFwiWm9yYVwiLFxuICAgIFwiWnVsYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkFiYm90dFwiLFxuICAgIFwiQWJlcm5hdGh5XCIsXG4gICAgXCJBYnNoaXJlXCIsXG4gICAgXCJBZGFtc1wiLFxuICAgIFwiQWx0ZW53ZXJ0aFwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIkFua3VuZGluZ1wiLFxuICAgIFwiQXJtc3Ryb25nXCIsXG4gICAgXCJBdWVyXCIsXG4gICAgXCJBdWZkZXJoYXJcIixcbiAgICBcIkJhaHJpbmdlclwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYWxpc3RyZXJpXCIsXG4gICAgXCJCYXJyb3dzXCIsXG4gICAgXCJCYXJ0ZWxsXCIsXG4gICAgXCJCYXJ0b2xldHRpXCIsXG4gICAgXCJCYXJ0b25cIixcbiAgICBcIkJhc2hpcmlhblwiLFxuICAgIFwiQmF0elwiLFxuICAgIFwiQmF1Y2hcIixcbiAgICBcIkJhdW1iYWNoXCIsXG4gICAgXCJCYXllclwiLFxuICAgIFwiQmVhaGFuXCIsXG4gICAgXCJCZWF0dHlcIixcbiAgICBcIkJlY2h0ZWxhclwiLFxuICAgIFwiQmVja2VyXCIsXG4gICAgXCJCZWRuYXJcIixcbiAgICBcIkJlZXJcIixcbiAgICBcIkJlaWVyXCIsXG4gICAgXCJCZXJnZVwiLFxuICAgIFwiQmVyZ25hdW1cIixcbiAgICBcIkJlcmdzdHJvbVwiLFxuICAgIFwiQmVybmhhcmRcIixcbiAgICBcIkJlcm5pZXJcIixcbiAgICBcIkJpbnNcIixcbiAgICBcIkJsYW5kYVwiLFxuICAgIFwiQmxpY2tcIixcbiAgICBcIkJsb2NrXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2VobVwiLFxuICAgIFwiQm9nYW5cIixcbiAgICBcIkJvZ2lzaWNoXCIsXG4gICAgXCJCb3JlclwiLFxuICAgIFwiQm9zY29cIixcbiAgICBcIkJvdHNmb3JkXCIsXG4gICAgXCJCb3llclwiLFxuICAgIFwiQm95bGVcIixcbiAgICBcIkJyYWR0a2VcIixcbiAgICBcIkJyYWt1c1wiLFxuICAgIFwiQnJhdW5cIixcbiAgICBcIkJyZWl0ZW5iZXJnXCIsXG4gICAgXCJCcmVra2VcIixcbiAgICBcIkJyb3duXCIsXG4gICAgXCJCcnVlblwiLFxuICAgIFwiQnVja3JpZGdlXCIsXG4gICAgXCJDYXJyb2xsXCIsXG4gICAgXCJDYXJ0ZXJcIixcbiAgICBcIkNhcnR3cmlnaHRcIixcbiAgICBcIkNhc3BlclwiLFxuICAgIFwiQ2Fzc2luXCIsXG4gICAgXCJDaGFtcGxpblwiLFxuICAgIFwiQ2hyaXN0aWFuc2VuXCIsXG4gICAgXCJDb2xlXCIsXG4gICAgXCJDb2xsaWVyXCIsXG4gICAgXCJDb2xsaW5zXCIsXG4gICAgXCJDb25uXCIsXG4gICAgXCJDb25uZWxseVwiLFxuICAgIFwiQ29ucm95XCIsXG4gICAgXCJDb25zaWRpbmVcIixcbiAgICBcIkNvcmtlcnlcIixcbiAgICBcIkNvcm1pZXJcIixcbiAgICBcIkNvcndpblwiLFxuICAgIFwiQ3JlbWluXCIsXG4gICAgXCJDcmlzdFwiLFxuICAgIFwiQ3JvbmFcIixcbiAgICBcIkNyb25pblwiLFxuICAgIFwiQ3Jvb2tzXCIsXG4gICAgXCJDcnVpY2tzaGFua1wiLFxuICAgIFwiQ3VtbWVyYXRhXCIsXG4gICAgXCJDdW1taW5nc1wiLFxuICAgIFwiRGFjaFwiLFxuICAgIFwiRCdBbW9yZVwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJEYXJlXCIsXG4gICAgXCJEYXVnaGVydHlcIixcbiAgICBcIkRhdmlzXCIsXG4gICAgXCJEZWNrb3dcIixcbiAgICBcIkRlbmVzaWtcIixcbiAgICBcIkRpYmJlcnRcIixcbiAgICBcIkRpY2tlbnNcIixcbiAgICBcIkRpY2tpXCIsXG4gICAgXCJEaWNraW5zb25cIixcbiAgICBcIkRpZXRyaWNoXCIsXG4gICAgXCJEb25uZWxseVwiLFxuICAgIFwiRG9vbGV5XCIsXG4gICAgXCJEb3VnbGFzXCIsXG4gICAgXCJEb3lsZVwiLFxuICAgIFwiRHVCdXF1ZVwiLFxuICAgIFwiRHVyZ2FuXCIsXG4gICAgXCJFYmVydFwiLFxuICAgIFwiRWZmZXJ0elwiLFxuICAgIFwiRWljaG1hbm5cIixcbiAgICBcIkVtYXJkXCIsXG4gICAgXCJFbW1lcmljaFwiLFxuICAgIFwiRXJkbWFuXCIsXG4gICAgXCJFcm5zZXJcIixcbiAgICBcIkZhZGVsXCIsXG4gICAgXCJGYWhleVwiLFxuICAgIFwiRmFycmVsbFwiLFxuICAgIFwiRmF5XCIsXG4gICAgXCJGZWVuZXlcIixcbiAgICBcIkZlZXN0XCIsXG4gICAgXCJGZWlsXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmlzaGVyXCIsXG4gICAgXCJGbGF0bGV5XCIsXG4gICAgXCJGcmFtaVwiLFxuICAgIFwiRnJhbmVja2lcIixcbiAgICBcIkZyaWVzZW5cIixcbiAgICBcIkZyaXRzY2hcIixcbiAgICBcIkZ1bmtcIixcbiAgICBcIkdheWxvcmRcIixcbiAgICBcIkdlcmhvbGRcIixcbiAgICBcIkdlcmxhY2hcIixcbiAgICBcIkdpYnNvblwiLFxuICAgIFwiR2lzbGFzb25cIixcbiAgICBcIkdsZWFzb25cIixcbiAgICBcIkdsZWljaG5lclwiLFxuICAgIFwiR2xvdmVyXCIsXG4gICAgXCJHb2xkbmVyXCIsXG4gICAgXCJHb29kd2luXCIsXG4gICAgXCJHb3JjemFueVwiLFxuICAgIFwiR290dGxpZWJcIixcbiAgICBcIkdveWV0dGVcIixcbiAgICBcIkdyYWR5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZW5mZWxkZXJcIixcbiAgICBcIkdyZWVuaG9sdFwiLFxuICAgIFwiR3JpbWVzXCIsXG4gICAgXCJHdWxnb3dza2lcIixcbiAgICBcIkd1c2lrb3dza2lcIixcbiAgICBcIkd1dGtvd3NraVwiLFxuICAgIFwiR3V0bWFublwiLFxuICAgIFwiSGFhZ1wiLFxuICAgIFwiSGFja2V0dFwiLFxuICAgIFwiSGFnZW5lc1wiLFxuICAgIFwiSGFoblwiLFxuICAgIFwiSGFsZXlcIixcbiAgICBcIkhhbHZvcnNvblwiLFxuICAgIFwiSGFtaWxsXCIsXG4gICAgXCJIYW1tZXNcIixcbiAgICBcIkhhbmRcIixcbiAgICBcIkhhbmVcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyYmVyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkhhcnRtYW5uXCIsXG4gICAgXCJIYXJ2ZXlcIixcbiAgICBcIkhhdWNrXCIsXG4gICAgXCJIYXllc1wiLFxuICAgIFwiSGVhbmV5XCIsXG4gICAgXCJIZWF0aGNvdGVcIixcbiAgICBcIkhlZ21hbm5cIixcbiAgICBcIkhlaWRlbnJlaWNoXCIsXG4gICAgXCJIZWxsZXJcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWlzdG9uXCIsXG4gICAgXCJIZXJ6b2dcIixcbiAgICBcIkhlc3NlbFwiLFxuICAgIFwiSGV0dGluZ2VyXCIsXG4gICAgXCJIaWNrbGVcIixcbiAgICBcIkhpbGxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSGlscGVydFwiLFxuICAgIFwiSGludHpcIixcbiAgICBcIkhpcnRoZVwiLFxuICAgIFwiSG9ka2lld2ljelwiLFxuICAgIFwiSG9lZ2VyXCIsXG4gICAgXCJIb21lbmlja1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvd2VcIixcbiAgICBcIkhvd2VsbFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWVsXCIsXG4gICAgXCJIdWVsc1wiLFxuICAgIFwiSHlhdHRcIixcbiAgICBcIkphY29iaVwiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYWNvYnNvblwiLFxuICAgIFwiSmFrdWJvd3NraVwiLFxuICAgIFwiSmFza29sc2tpXCIsXG4gICAgXCJKYXN0XCIsXG4gICAgXCJKZW5raW5zXCIsXG4gICAgXCJKZXJkZVwiLFxuICAgIFwiSm9obnNcIixcbiAgICBcIkpvaG5zb25cIixcbiAgICBcIkpvaG5zdG9uXCIsXG4gICAgXCJKb25lc1wiLFxuICAgIFwiS2Fzc3Vsa2VcIixcbiAgICBcIkthdXR6ZXJcIixcbiAgICBcIktlZWJsZXJcIixcbiAgICBcIktlZWxpbmdcIixcbiAgICBcIktlbW1lclwiLFxuICAgIFwiS2VybHVrZVwiLFxuICAgIFwiS2VydHptYW5uXCIsXG4gICAgXCJLZXNzbGVyXCIsXG4gICAgXCJLaWVoblwiLFxuICAgIFwiS2loblwiLFxuICAgIFwiS2lsYmFja1wiLFxuICAgIFwiS2luZ1wiLFxuICAgIFwiS2lybGluXCIsXG4gICAgXCJLbGVpblwiLFxuICAgIFwiS2xpbmdcIixcbiAgICBcIktsb2Nrb1wiLFxuICAgIFwiS29jaFwiLFxuICAgIFwiS29lbHBpblwiLFxuICAgIFwiS29lcHBcIixcbiAgICBcIktvaGxlclwiLFxuICAgIFwiS29ub3BlbHNraVwiLFxuICAgIFwiS29zc1wiLFxuICAgIFwiS292YWNla1wiLFxuICAgIFwiS296ZXlcIixcbiAgICBcIktyYWpjaWtcIixcbiAgICBcIktyZWlnZXJcIixcbiAgICBcIktyaXNcIixcbiAgICBcIktzaGxlcmluXCIsXG4gICAgXCJLdWJcIixcbiAgICBcIkt1aGljXCIsXG4gICAgXCJLdWhsbWFuXCIsXG4gICAgXCJLdWhuXCIsXG4gICAgXCJLdWxhc1wiLFxuICAgIFwiS3VuZGVcIixcbiAgICBcIkt1bnplXCIsXG4gICAgXCJLdXBoYWxcIixcbiAgICBcIkt1dGNoXCIsXG4gICAgXCJLdXZhbGlzXCIsXG4gICAgXCJMYWJhZGllXCIsXG4gICAgXCJMYWtpblwiLFxuICAgIFwiTGFuZ1wiLFxuICAgIFwiTGFuZ29zaFwiLFxuICAgIFwiTGFuZ3dvcnRoXCIsXG4gICAgXCJMYXJraW5cIixcbiAgICBcIkxhcnNvblwiLFxuICAgIFwiTGVhbm5vblwiLFxuICAgIFwiTGVic2Fja1wiLFxuICAgIFwiTGVkbmVyXCIsXG4gICAgXCJMZWZmbGVyXCIsXG4gICAgXCJMZWdyb3NcIixcbiAgICBcIkxlaG5lclwiLFxuICAgIFwiTGVta2VcIixcbiAgICBcIkxlc2NoXCIsXG4gICAgXCJMZXVzY2hrZVwiLFxuICAgIFwiTGluZFwiLFxuICAgIFwiTGluZGdyZW5cIixcbiAgICBcIkxpdHRlbFwiLFxuICAgIFwiTGl0dGxlXCIsXG4gICAgXCJMb2NrbWFuXCIsXG4gICAgXCJMb3dlXCIsXG4gICAgXCJMdWJvd2l0elwiLFxuICAgIFwiTHVlaWx3aXR6XCIsXG4gICAgXCJMdWV0dGdlblwiLFxuICAgIFwiTHluY2hcIixcbiAgICBcIk1hY2Vqa292aWNcIixcbiAgICBcIk1hY0d5dmVyXCIsXG4gICAgXCJNYWdnaW9cIixcbiAgICBcIk1hbm5cIixcbiAgICBcIk1hbnRlXCIsXG4gICAgXCJNYXJrc1wiLFxuICAgIFwiTWFycXVhcmR0XCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNYXllcnRcIixcbiAgICBcIk1jQ2x1cmVcIixcbiAgICBcIk1jQ3VsbG91Z2hcIixcbiAgICBcIk1jRGVybW90dFwiLFxuICAgIFwiTWNHbHlublwiLFxuICAgIFwiTWNLZW56aWVcIixcbiAgICBcIk1jTGF1Z2hsaW5cIixcbiAgICBcIk1lZGh1cnN0XCIsXG4gICAgXCJNZXJ0elwiLFxuICAgIFwiTWV0elwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaWxsc1wiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIk1vZW5cIixcbiAgICBcIk1vaHJcIixcbiAgICBcIk1vbmFoYW5cIixcbiAgICBcIk1vb3JlXCIsXG4gICAgXCJNb3JhclwiLFxuICAgIFwiTW9yaXNzZXR0ZVwiLFxuICAgIFwiTW9zY2lza2lcIixcbiAgICBcIk1yYXpcIixcbiAgICBcIk11ZWxsZXJcIixcbiAgICBcIk11bGxlclwiLFxuICAgIFwiTXVyYXppa1wiLFxuICAgIFwiTXVycGh5XCIsXG4gICAgXCJNdXJyYXlcIixcbiAgICBcIk5hZGVyXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOaWVub3dcIixcbiAgICBcIk5pa29sYXVzXCIsXG4gICAgXCJOaXR6c2NoZVwiLFxuICAgIFwiTm9sYW5cIixcbiAgICBcIk9iZXJicnVubmVyXCIsXG4gICAgXCJPJ0Nvbm5lbGxcIixcbiAgICBcIk8nQ29ubmVyXCIsXG4gICAgXCJPJ0hhcmFcIixcbiAgICBcIk8nS2VlZmVcIixcbiAgICBcIk8nS29uXCIsXG4gICAgXCJPa3VuZXZhXCIsXG4gICAgXCJPbHNvblwiLFxuICAgIFwiT25kcmlja2FcIixcbiAgICBcIk8nUmVpbGx5XCIsXG4gICAgXCJPcm5cIixcbiAgICBcIk9ydGl6XCIsXG4gICAgXCJPc2luc2tpXCIsXG4gICAgXCJQYWNvY2hhXCIsXG4gICAgXCJQYWRiZXJnXCIsXG4gICAgXCJQYWdhY1wiLFxuICAgIFwiUGFyaXNpYW5cIixcbiAgICBcIlBhcmtlclwiLFxuICAgIFwiUGF1Y2VrXCIsXG4gICAgXCJQZmFubmVyc3RpbGxcIixcbiAgICBcIlBmZWZmZXJcIixcbiAgICBcIlBvbGxpY2hcIixcbiAgICBcIlBvdXJvc1wiLFxuICAgIFwiUG93bG93c2tpXCIsXG4gICAgXCJQcmVkb3ZpY1wiLFxuICAgIFwiUHJpY2VcIixcbiAgICBcIlByb2hhc2thXCIsXG4gICAgXCJQcm9zYWNjb1wiLFxuICAgIFwiUHVyZHlcIixcbiAgICBcIlF1aWdsZXlcIixcbiAgICBcIlF1aXR6b25cIixcbiAgICBcIlJhdGhcIixcbiAgICBcIlJhdGtlXCIsXG4gICAgXCJSYXVcIixcbiAgICBcIlJheW5vclwiLFxuICAgIFwiUmVpY2hlbFwiLFxuICAgIFwiUmVpY2hlcnRcIixcbiAgICBcIlJlaWxseVwiLFxuICAgIFwiUmVpbmdlclwiLFxuICAgIFwiUmVtcGVsXCIsXG4gICAgXCJSZW5uZXJcIixcbiAgICBcIlJleW5vbGRzXCIsXG4gICAgXCJSaWNlXCIsXG4gICAgXCJSaXBwaW5cIixcbiAgICBcIlJpdGNoaWVcIixcbiAgICBcIlJvYmVsXCIsXG4gICAgXCJSb2JlcnRzXCIsXG4gICAgXCJSb2RyaWd1ZXpcIixcbiAgICBcIlJvZ2FoblwiLFxuICAgIFwiUm9oYW5cIixcbiAgICBcIlJvbGZzb25cIixcbiAgICBcIlJvbWFndWVyYVwiLFxuICAgIFwiUm9vYlwiLFxuICAgIFwiUm9zZW5iYXVtXCIsXG4gICAgXCJSb3dlXCIsXG4gICAgXCJSdWVja2VyXCIsXG4gICAgXCJSdW5vbGZzZG90dGlyXCIsXG4gICAgXCJSdW5vbGZzc29uXCIsXG4gICAgXCJSdW50ZVwiLFxuICAgIFwiUnVzc2VsXCIsXG4gICAgXCJSdXRoZXJmb3JkXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJTYW5mb3JkXCIsXG4gICAgXCJTYXR0ZXJmaWVsZFwiLFxuICAgIFwiU2F1ZXJcIixcbiAgICBcIlNhd2F5blwiLFxuICAgIFwiU2NoYWRlblwiLFxuICAgIFwiU2NoYWVmZXJcIixcbiAgICBcIlNjaGFtYmVyZ2VyXCIsXG4gICAgXCJTY2hpbGxlclwiLFxuICAgIFwiU2NoaW1tZWxcIixcbiAgICBcIlNjaGlubmVyXCIsXG4gICAgXCJTY2htZWxlclwiLFxuICAgIFwiU2NobWlkdFwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2hvZW5cIixcbiAgICBcIlNjaG93YWx0ZXJcIixcbiAgICBcIlNjaHJvZWRlclwiLFxuICAgIFwiU2NodWxpc3RcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNjaHVtbVwiLFxuICAgIFwiU2NodXBwZVwiLFxuICAgIFwiU2NodXN0ZXJcIixcbiAgICBcIlNlbmdlclwiLFxuICAgIFwiU2hhbmFoYW5cIixcbiAgICBcIlNoaWVsZHNcIixcbiAgICBcIlNpbW9uaXNcIixcbiAgICBcIlNpcGVzXCIsXG4gICAgXCJTa2lsZXNcIixcbiAgICBcIlNtaXRoXCIsXG4gICAgXCJTbWl0aGFtXCIsXG4gICAgXCJTcGVuY2VyXCIsXG4gICAgXCJTcGlua2FcIixcbiAgICBcIlNwb3JlclwiLFxuICAgIFwiU3RhbW1cIixcbiAgICBcIlN0YW50b25cIixcbiAgICBcIlN0YXJrXCIsXG4gICAgXCJTdGVoclwiLFxuICAgIFwiU3RldWJlclwiLFxuICAgIFwiU3RpZWRlbWFublwiLFxuICAgIFwiU3Rva2VzXCIsXG4gICAgXCJTdG9sdGVuYmVyZ1wiLFxuICAgIFwiU3RyYWNrZVwiLFxuICAgIFwiU3RyZWljaFwiLFxuICAgIFwiU3Ryb21hblwiLFxuICAgIFwiU3Ryb3NpblwiLFxuICAgIFwiU3dhbmlhd3NraVwiLFxuICAgIFwiU3dpZnRcIixcbiAgICBcIlRlcnJ5XCIsXG4gICAgXCJUaGllbFwiLFxuICAgIFwiVGhvbXBzb25cIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRvcnBcIixcbiAgICBcIlRvcnBoeVwiLFxuICAgIFwiVG93bmVcIixcbiAgICBcIlRveVwiLFxuICAgIFwiVHJhbnRvd1wiLFxuICAgIFwiVHJlbWJsYXlcIixcbiAgICBcIlRyZXV0ZWxcIixcbiAgICBcIlRyb21wXCIsXG4gICAgXCJUdXJjb3R0ZVwiLFxuICAgIFwiVHVybmVyXCIsXG4gICAgXCJVbGxyaWNoXCIsXG4gICAgXCJVcHRvblwiLFxuICAgIFwiVmFuZGVydm9ydFwiLFxuICAgIFwiVmV1bVwiLFxuICAgIFwiVm9sa21hblwiLFxuICAgIFwiVm9uXCIsXG4gICAgXCJWb25SdWVkZW5cIixcbiAgICBcIldhZWxjaGlcIixcbiAgICBcIldhbGtlclwiLFxuICAgIFwiV2Fsc2hcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FyZFwiLFxuICAgIFwiV2F0ZXJzXCIsXG4gICAgXCJXYXRzaWNhXCIsXG4gICAgXCJXZWJlclwiLFxuICAgIFwiV2VobmVyXCIsXG4gICAgXCJXZWltYW5uXCIsXG4gICAgXCJXZWlzc25hdFwiLFxuICAgIFwiV2VsY2hcIixcbiAgICBcIldlc3RcIixcbiAgICBcIldoaXRlXCIsXG4gICAgXCJXaWVnYW5kXCIsXG4gICAgXCJXaWxkZXJtYW5cIixcbiAgICBcIldpbGtpbnNvblwiLFxuICAgIFwiV2lsbFwiLFxuICAgIFwiV2lsbGlhbXNvblwiLFxuICAgIFwiV2lsbG1zXCIsXG4gICAgXCJXaW5kbGVyXCIsXG4gICAgXCJXaW50aGVpc2VyXCIsXG4gICAgXCJXaXNva3lcIixcbiAgICBcIldpc296a1wiLFxuICAgIFwiV2l0dGluZ1wiLFxuICAgIFwiV2l6YVwiLFxuICAgIFwiV29sZlwiLFxuICAgIFwiV29sZmZcIixcbiAgICBcIld1Y2tlcnRcIixcbiAgICBcIld1bnNjaFwiLFxuICAgIFwiV3ltYW5cIixcbiAgICBcIllvc3RcIixcbiAgICBcIll1bmR0XCIsXG4gICAgXCJaYm9uY2FrXCIsXG4gICAgXCJaZW1sYWtcIixcbiAgICBcIlppZW1hbm5cIixcbiAgICBcIlppZW1lXCIsXG4gICAgXCJadWxhdWZcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJNci5cIixcbiAgICBcIk1ycy5cIixcbiAgICBcIk1zLlwiLFxuICAgIFwiTWlzc1wiLFxuICAgIFwiRHIuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiSnIuXCIsXG4gICAgXCJTci5cIixcbiAgICBcIklcIixcbiAgICBcIklJXCIsXG4gICAgXCJJSUlcIixcbiAgICBcIklWXCIsXG4gICAgXCJWXCIsXG4gICAgXCJNRFwiLFxuICAgIFwiRERTXCIsXG4gICAgXCJQaERcIixcbiAgICBcIkRWTVwiXG4gIF0sXG4gIFwidGl0bGVcIjoge1xuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIkxlYWRcIixcbiAgICAgIFwiU2VuaW9yXCIsXG4gICAgICBcIkRpcmVjdFwiLFxuICAgICAgXCJDb3Jwb3JhdGVcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJGdXR1cmVcIixcbiAgICAgIFwiUHJvZHVjdFwiLFxuICAgICAgXCJOYXRpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cmljdFwiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDdXN0b21lclwiLFxuICAgICAgXCJJbnZlc3RvclwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiTGVnYWN5XCIsXG4gICAgICBcIkZvcndhcmRcIixcbiAgICAgIFwiSW50ZXJuYWxcIixcbiAgICAgIFwiSHVtYW5cIixcbiAgICAgIFwiQ2hpZWZcIixcbiAgICAgIFwiUHJpbmNpcGFsXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1dGlvbnNcIixcbiAgICAgIFwiUHJvZ3JhbVwiLFxuICAgICAgXCJCcmFuZFwiLFxuICAgICAgXCJTZWN1cml0eVwiLFxuICAgICAgXCJSZXNlYXJjaFwiLFxuICAgICAgXCJNYXJrZXRpbmdcIixcbiAgICAgIFwiRGlyZWN0aXZlc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJJbnRlZ3JhdGlvblwiLFxuICAgICAgXCJGdW5jdGlvbmFsaXR5XCIsXG4gICAgICBcIlJlc3BvbnNlXCIsXG4gICAgICBcIlBhcmFkaWdtXCIsXG4gICAgICBcIlRhY3RpY3NcIixcbiAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgIFwiTWFya2V0c1wiLFxuICAgICAgXCJHcm91cFwiLFxuICAgICAgXCJEaXZpc2lvblwiLFxuICAgICAgXCJBcHBsaWNhdGlvbnNcIixcbiAgICAgIFwiT3B0aW1pemF0aW9uXCIsXG4gICAgICBcIk9wZXJhdGlvbnNcIixcbiAgICAgIFwiSW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tbXVuaWNhdGlvbnNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkJyYW5kaW5nXCIsXG4gICAgICBcIlF1YWxpdHlcIixcbiAgICAgIFwiQXNzdXJhbmNlXCIsXG4gICAgICBcIk1vYmlsaXR5XCIsXG4gICAgICBcIkFjY291bnRzXCIsXG4gICAgICBcIkRhdGFcIixcbiAgICAgIFwiQ3JlYXRpdmVcIixcbiAgICAgIFwiQ29uZmlndXJhdGlvblwiLFxuICAgICAgXCJBY2NvdW50YWJpbGl0eVwiLFxuICAgICAgXCJJbnRlcmFjdGlvbnNcIixcbiAgICAgIFwiRmFjdG9yc1wiLFxuICAgICAgXCJVc2FiaWxpdHlcIixcbiAgICAgIFwiTWV0cmljc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNzb2NpYXRlXCIsXG4gICAgICBcIkV4ZWN1dGl2ZVwiLFxuICAgICAgXCJMaWFzb25cIixcbiAgICAgIFwiT2ZmaWNlclwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkVuZ2luZWVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmF0b3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRvclwiLFxuICAgICAgXCJBcmNoaXRlY3RcIixcbiAgICAgIFwiQW5hbHlzdFwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJQbGFubmVyXCIsXG4gICAgICBcIk9yY2hlc3RyYXRvclwiLFxuICAgICAgXCJUZWNobmljaWFuXCIsXG4gICAgICBcIkRldmVsb3BlclwiLFxuICAgICAgXCJQcm9kdWNlclwiLFxuICAgICAgXCJDb25zdWx0YW50XCIsXG4gICAgICBcIkFzc2lzdGFudFwiLFxuICAgICAgXCJGYWNpbGl0YXRvclwiLFxuICAgICAgXCJBZ2VudFwiLFxuICAgICAgXCJSZXByZXNlbnRhdGl2ZVwiLFxuICAgICAgXCJTdHJhdGVnaXN0XCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZW4ucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIigjIyMpICMjIy0jIyMjIHgjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjXCIsXG4gICAgXCIjIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIigjIyMpICMjIy0jIyMjIHgjIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjXCIsXG4gICAgXCIjIyMtIyMjLSMjIyMgeCMjIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjI1wiXG4gIF1cbn07XG5lbi5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiXG4gIF1cbn07XG5lbi5idXNpbmVzcyA9IHtcbiAgXCJjcmVkaXRfY2FyZF9udW1iZXJzXCI6IFtcbiAgICBcIjEyMzQtMjEyMS0xMjIxLTEyMTFcIixcbiAgICBcIjEyMTItMTIyMS0xMTIxLTEyMzRcIixcbiAgICBcIjEyMTEtMTIyMS0xMjM0LTIyMDFcIixcbiAgICBcIjEyMjgtMTIyMS0xMjIxLTE0MzFcIlxuICBdLFxuICBcImNyZWRpdF9jYXJkX2V4cGlyeV9kYXRlc1wiOiBbXG4gICAgXCIyMDExLTEwLTEyXCIsXG4gICAgXCIyMDEyLTExLTEyXCIsXG4gICAgXCIyMDE1LTExLTExXCIsXG4gICAgXCIyMDEzLTktMTJcIlxuICBdLFxuICBcImNyZWRpdF9jYXJkX3R5cGVzXCI6IFtcbiAgICBcInZpc2FcIixcbiAgICBcIm1hc3RlcmNhcmRcIixcbiAgICBcImFtZXJpY2FuZXhwcmVzc1wiLFxuICAgIFwiZGlzY292ZXJcIlxuICBdXG59O1xuZW4uY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwicmVkXCIsXG4gICAgXCJncmVlblwiLFxuICAgIFwiYmx1ZVwiLFxuICAgIFwieWVsbG93XCIsXG4gICAgXCJwdXJwbGVcIixcbiAgICBcIm1pbnQgZ3JlZW5cIixcbiAgICBcInRlYWxcIixcbiAgICBcIndoaXRlXCIsXG4gICAgXCJibGFja1wiLFxuICAgIFwib3JhbmdlXCIsXG4gICAgXCJwaW5rXCIsXG4gICAgXCJncmV5XCIsXG4gICAgXCJtYXJvb25cIixcbiAgICBcInZpb2xldFwiLFxuICAgIFwidHVycXVvaXNlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInNreSBibHVlXCIsXG4gICAgXCJzYWxtb25cIixcbiAgICBcInBsdW1cIixcbiAgICBcIm9yY2hpZFwiLFxuICAgIFwib2xpdmVcIixcbiAgICBcIm1hZ2VudGFcIixcbiAgICBcImxpbWVcIixcbiAgICBcIml2b3J5XCIsXG4gICAgXCJpbmRpZ29cIixcbiAgICBcImdvbGRcIixcbiAgICBcImZ1Y2hzaWFcIixcbiAgICBcImN5YW5cIixcbiAgICBcImF6dXJlXCIsXG4gICAgXCJsYXZlbmRlclwiLFxuICAgIFwic2lsdmVyXCJcbiAgXSxcbiAgXCJkZXBhcnRtZW50XCI6IFtcbiAgICBcIkJvb2tzXCIsXG4gICAgXCJNb3ZpZXNcIixcbiAgICBcIk11c2ljXCIsXG4gICAgXCJHYW1lc1wiLFxuICAgIFwiRWxlY3Ryb25pY3NcIixcbiAgICBcIkNvbXB1dGVyc1wiLFxuICAgIFwiSG9tZVwiLFxuICAgIFwiR2FyZGVuXCIsXG4gICAgXCJUb29sc1wiLFxuICAgIFwiR3JvY2VyeVwiLFxuICAgIFwiSGVhbHRoXCIsXG4gICAgXCJCZWF1dHlcIixcbiAgICBcIlRveXNcIixcbiAgICBcIktpZHNcIixcbiAgICBcIkJhYnlcIixcbiAgICBcIkNsb3RoaW5nXCIsXG4gICAgXCJTaG9lc1wiLFxuICAgIFwiSmV3ZWxlcnlcIixcbiAgICBcIlNwb3J0c1wiLFxuICAgIFwiT3V0ZG9vcnNcIixcbiAgICBcIkF1dG9tb3RpdmVcIixcbiAgICBcIkluZHVzdHJpYWxcIlxuICBdLFxuICBcInByb2R1Y3RfbmFtZVwiOiB7XG4gICAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJTbWFsbFwiLFxuICAgICAgXCJFcmdvbm9taWNcIixcbiAgICAgIFwiUnVzdGljXCIsXG4gICAgICBcIkludGVsbGlnZW50XCIsXG4gICAgICBcIkdvcmdlb3VzXCIsXG4gICAgICBcIkluY3JlZGlibGVcIixcbiAgICAgIFwiRmFudGFzdGljXCIsXG4gICAgICBcIlByYWN0aWNhbFwiLFxuICAgICAgXCJTbGVla1wiLFxuICAgICAgXCJBd2Vzb21lXCJcbiAgICBdLFxuICAgIFwibWF0ZXJpYWxcIjogW1xuICAgICAgXCJTdGVlbFwiLFxuICAgICAgXCJXb29kZW5cIixcbiAgICAgIFwiQ29uY3JldGVcIixcbiAgICAgIFwiUGxhc3RpY1wiLFxuICAgICAgXCJDb3R0b25cIixcbiAgICAgIFwiR3Jhbml0ZVwiLFxuICAgICAgXCJSdWJiZXJcIlxuICAgIF0sXG4gICAgXCJwcm9kdWN0XCI6IFtcbiAgICAgIFwiQ2hhaXJcIixcbiAgICAgIFwiQ2FyXCIsXG4gICAgICBcIkNvbXB1dGVyXCIsXG4gICAgICBcIkdsb3Zlc1wiLFxuICAgICAgXCJQYW50c1wiLFxuICAgICAgXCJTaGlydFwiLFxuICAgICAgXCJUYWJsZVwiLFxuICAgICAgXCJTaG9lc1wiLFxuICAgICAgXCJIYXRcIlxuICAgIF1cbiAgfVxufTtcbmVuLnRlYW0gPSB7XG4gIFwiY3JlYXR1cmVcIjogW1xuICAgIFwiYW50c1wiLFxuICAgIFwiYmF0c1wiLFxuICAgIFwiYmVhcnNcIixcbiAgICBcImJlZXNcIixcbiAgICBcImJpcmRzXCIsXG4gICAgXCJidWZmYWxvXCIsXG4gICAgXCJjYXRzXCIsXG4gICAgXCJjaGlja2Vuc1wiLFxuICAgIFwiY2F0dGxlXCIsXG4gICAgXCJkb2dzXCIsXG4gICAgXCJkb2xwaGluc1wiLFxuICAgIFwiZHVja3NcIixcbiAgICBcImVsZXBoYW50c1wiLFxuICAgIFwiZmlzaGVzXCIsXG4gICAgXCJmb3hlc1wiLFxuICAgIFwiZnJvZ3NcIixcbiAgICBcImdlZXNlXCIsXG4gICAgXCJnb2F0c1wiLFxuICAgIFwiaG9yc2VzXCIsXG4gICAgXCJrYW5nYXJvb3NcIixcbiAgICBcImxpb25zXCIsXG4gICAgXCJtb25rZXlzXCIsXG4gICAgXCJvd2xzXCIsXG4gICAgXCJveGVuXCIsXG4gICAgXCJwZW5ndWluc1wiLFxuICAgIFwicGVvcGxlXCIsXG4gICAgXCJwaWdzXCIsXG4gICAgXCJyYWJiaXRzXCIsXG4gICAgXCJzaGVlcFwiLFxuICAgIFwidGlnZXJzXCIsXG4gICAgXCJ3aGFsZXNcIixcbiAgICBcIndvbHZlc1wiLFxuICAgIFwiemVicmFzXCIsXG4gICAgXCJiYW5zaGVlc1wiLFxuICAgIFwiY3Jvd3NcIixcbiAgICBcImJsYWNrIGNhdHNcIixcbiAgICBcImNoaW1lcmFzXCIsXG4gICAgXCJnaG9zdHNcIixcbiAgICBcImNvbnNwaXJhdG9yc1wiLFxuICAgIFwiZHJhZ29uc1wiLFxuICAgIFwiZHdhcnZlc1wiLFxuICAgIFwiZWx2ZXNcIixcbiAgICBcImVuY2hhbnRlcnNcIixcbiAgICBcImV4b3JjaXN0c1wiLFxuICAgIFwic29uc1wiLFxuICAgIFwiZm9lc1wiLFxuICAgIFwiZ2lhbnRzXCIsXG4gICAgXCJnbm9tZXNcIixcbiAgICBcImdvYmxpbnNcIixcbiAgICBcImdvb3Nlc1wiLFxuICAgIFwiZ3JpZmZpbnNcIixcbiAgICBcImx5Y2FudGhyb3Blc1wiLFxuICAgIFwibmVtZXNpc1wiLFxuICAgIFwib2dyZXNcIixcbiAgICBcIm9yYWNsZXNcIixcbiAgICBcInByb3BoZXRzXCIsXG4gICAgXCJzb3JjZXJvcnNcIixcbiAgICBcInNwaWRlcnNcIixcbiAgICBcInNwaXJpdHNcIixcbiAgICBcInZhbXBpcmVzXCIsXG4gICAgXCJ3YXJsb2Nrc1wiLFxuICAgIFwidml4ZW5zXCIsXG4gICAgXCJ3ZXJld29sdmVzXCIsXG4gICAgXCJ3aXRjaGVzXCIsXG4gICAgXCJ3b3JzaGlwZXJzXCIsXG4gICAgXCJ6b21iaWVzXCIsXG4gICAgXCJkcnVpZHNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tBZGRyZXNzLnN0YXRlfSAje2NyZWF0dXJlfVwiXG4gIF1cbn07XG5lbi5oYWNrZXIgPSB7XG4gIFwiYWJicmV2aWF0aW9uXCI6IFtcbiAgICBcIlRDUFwiLFxuICAgIFwiSFRUUFwiLFxuICAgIFwiU0REXCIsXG4gICAgXCJSQU1cIixcbiAgICBcIkdCXCIsXG4gICAgXCJDU1NcIixcbiAgICBcIlNTTFwiLFxuICAgIFwiQUdQXCIsXG4gICAgXCJTUUxcIixcbiAgICBcIkZUUFwiLFxuICAgIFwiUENJXCIsXG4gICAgXCJBSVwiLFxuICAgIFwiQURQXCIsXG4gICAgXCJSU1NcIixcbiAgICBcIlhNTFwiLFxuICAgIFwiRVhFXCIsXG4gICAgXCJDT01cIixcbiAgICBcIkhERFwiLFxuICAgIFwiVEhYXCIsXG4gICAgXCJTTVRQXCIsXG4gICAgXCJTTVNcIixcbiAgICBcIlVTQlwiLFxuICAgIFwiUE5HXCIsXG4gICAgXCJTQVNcIixcbiAgICBcIklCXCIsXG4gICAgXCJTQ1NJXCIsXG4gICAgXCJKU09OXCIsXG4gICAgXCJYU1NcIixcbiAgICBcIkpCT0RcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgXCJhdXhpbGlhcnlcIixcbiAgICBcInByaW1hcnlcIixcbiAgICBcImJhY2stZW5kXCIsXG4gICAgXCJkaWdpdGFsXCIsXG4gICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgIFwidmlydHVhbFwiLFxuICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICBcInJlZHVuZGFudFwiLFxuICAgIFwib25saW5lXCIsXG4gICAgXCJoYXB0aWNcIixcbiAgICBcIm11bHRpLWJ5dGVcIixcbiAgICBcImJsdWV0b290aFwiLFxuICAgIFwid2lyZWxlc3NcIixcbiAgICBcIjEwODBwXCIsXG4gICAgXCJuZXVyYWxcIixcbiAgICBcIm9wdGljYWxcIixcbiAgICBcInNvbGlkIHN0YXRlXCIsXG4gICAgXCJtb2JpbGVcIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgIFwiZHJpdmVyXCIsXG4gICAgXCJwcm90b2NvbFwiLFxuICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgXCJwYW5lbFwiLFxuICAgIFwibWljcm9jaGlwXCIsXG4gICAgXCJwcm9ncmFtXCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJjYXJkXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcInNlbnNvclwiLFxuICAgIFwiZmlyZXdhbGxcIixcbiAgICBcImhhcmQgZHJpdmVcIixcbiAgICBcInBpeGVsXCIsXG4gICAgXCJhbGFybVwiLFxuICAgIFwiZmVlZFwiLFxuICAgIFwibW9uaXRvclwiLFxuICAgIFwiYXBwbGljYXRpb25cIixcbiAgICBcInRyYW5zbWl0dGVyXCIsXG4gICAgXCJidXNcIixcbiAgICBcImNpcmN1aXRcIixcbiAgICBcImNhcGFjaXRvclwiLFxuICAgIFwibWF0cml4XCJcbiAgXSxcbiAgXCJ2ZXJiXCI6IFtcbiAgICBcImJhY2sgdXBcIixcbiAgICBcImJ5cGFzc1wiLFxuICAgIFwiaGFja1wiLFxuICAgIFwib3ZlcnJpZGVcIixcbiAgICBcImNvbXByZXNzXCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJuYXZpZ2F0ZVwiLFxuICAgIFwiaW5kZXhcIixcbiAgICBcImNvbm5lY3RcIixcbiAgICBcImdlbmVyYXRlXCIsXG4gICAgXCJxdWFudGlmeVwiLFxuICAgIFwiY2FsY3VsYXRlXCIsXG4gICAgXCJzeW50aGVzaXplXCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwidHJhbnNtaXRcIixcbiAgICBcInByb2dyYW1cIixcbiAgICBcInJlYm9vdFwiLFxuICAgIFwicGFyc2VcIlxuICBdLFxuICBcImluZ3ZlcmJcIjogW1xuICAgIFwiYmFja2luZyB1cFwiLFxuICAgIFwiYnlwYXNzaW5nXCIsXG4gICAgXCJoYWNraW5nXCIsXG4gICAgXCJvdmVycmlkaW5nXCIsXG4gICAgXCJjb21wcmVzc2luZ1wiLFxuICAgIFwiY29weWluZ1wiLFxuICAgIFwibmF2aWdhdGluZ1wiLFxuICAgIFwiaW5kZXhpbmdcIixcbiAgICBcImNvbm5lY3RpbmdcIixcbiAgICBcImdlbmVyYXRpbmdcIixcbiAgICBcInF1YW50aWZ5aW5nXCIsXG4gICAgXCJjYWxjdWxhdGluZ1wiLFxuICAgIFwic3ludGhlc2l6aW5nXCIsXG4gICAgXCJ0cmFuc21pdHRpbmdcIixcbiAgICBcInByb2dyYW1taW5nXCIsXG4gICAgXCJwYXJzaW5nXCJcbiAgXVxufTtcbmVuLmFwcCA9IHtcbiAgXCJuYW1lXCI6IFtcbiAgICBcIlJlZGhvbGRcIixcbiAgICBcIlRyZWVmbGV4XCIsXG4gICAgXCJUcmlwcGxlZGV4XCIsXG4gICAgXCJLYW5sYW1cIixcbiAgICBcIkJpZ3RheFwiLFxuICAgIFwiRGFsdGZyZXNoXCIsXG4gICAgXCJUb3VnaGpveWZheFwiLFxuICAgIFwiTWF0IExhbSBUYW1cIixcbiAgICBcIk90Y29tXCIsXG4gICAgXCJUcmVzLVphcFwiLFxuICAgIFwiWS1Tb2xvd2FybVwiLFxuICAgIFwiVHJlc29tXCIsXG4gICAgXCJWb2x0c2lsbGFtXCIsXG4gICAgXCJCaW9kZXhcIixcbiAgICBcIkdyZWVubGFtXCIsXG4gICAgXCJWaXZhXCIsXG4gICAgXCJNYXRzb2Z0XCIsXG4gICAgXCJUZW1wXCIsXG4gICAgXCJab29sYWJcIixcbiAgICBcIlN1YmluXCIsXG4gICAgXCJSYW5rXCIsXG4gICAgXCJKb2JcIixcbiAgICBcIlN0cmluZ3RvdWdoXCIsXG4gICAgXCJUaW5cIixcbiAgICBcIkl0XCIsXG4gICAgXCJIb21lIEluZ1wiLFxuICAgIFwiWmFtaXRcIixcbiAgICBcIlNvbnNpbmdcIixcbiAgICBcIktvbmtsYWJcIixcbiAgICBcIkFscGhhXCIsXG4gICAgXCJMYXRsdXhcIixcbiAgICBcIlZveWF0b3VjaFwiLFxuICAgIFwiQWxwaGF6YXBcIixcbiAgICBcIkhvbGRsYW1pc1wiLFxuICAgIFwiWmFhbS1Eb3hcIixcbiAgICBcIlN1Yi1FeFwiLFxuICAgIFwiUXVvIEx1eFwiLFxuICAgIFwiQmFtaXR5XCIsXG4gICAgXCJWZW50b3NhbnphcFwiLFxuICAgIFwiTG90c3RyaW5nXCIsXG4gICAgXCJIYXRpdHlcIixcbiAgICBcIlRlbXBzb2Z0XCIsXG4gICAgXCJPdmVyaG9sZFwiLFxuICAgIFwiRml4ZmxleFwiLFxuICAgIFwiS29ua2x1eFwiLFxuICAgIFwiWm9udHJheFwiLFxuICAgIFwiVGFtcGZsZXhcIixcbiAgICBcIlNwYW5cIixcbiAgICBcIk5hbWZpeFwiLFxuICAgIFwiVHJhbnNjb2ZcIixcbiAgICBcIlN0aW1cIixcbiAgICBcIkZpeCBTYW5cIixcbiAgICBcIlNvbmFpclwiLFxuICAgIFwiU3Ryb25naG9sZFwiLFxuICAgIFwiRmludG9uZVwiLFxuICAgIFwiWS1maW5kXCIsXG4gICAgXCJPcGVsYVwiLFxuICAgIFwiTG90bHV4XCIsXG4gICAgXCJSb25zdHJpbmdcIixcbiAgICBcIlphdGhpblwiLFxuICAgIFwiRHVvYmFtXCIsXG4gICAgXCJLZXlsZXhcIlxuICBdLFxuICBcInZlcnNpb25cIjogW1xuICAgIFwiMC4jLiNcIixcbiAgICBcIjAuIyNcIixcbiAgICBcIiMuIyNcIixcbiAgICBcIiMuI1wiLFxuICAgIFwiIy4jLiNcIlxuICBdLFxuICBcImF1dGhvclwiOiBbXG4gICAgXCIje05hbWUubmFtZX1cIixcbiAgICBcIiN7Q29tcGFueS5uYW1lfVwiXG4gIF1cbn07XG5cbmVuLmZpbmFuY2UgPSB7fTtcbmVuLmZpbmFuY2UuYWNjb3VudF90eXBlID0gW1wiQ2hlY2tpbmdcIixcIlNhdmluZ3NcIixcIk1vbmV5IE1hcmtldFwiLCBcIkludmVzdG1lbnRcIiwgXCJIb21lIExvYW5cIiwgXCJDcmVkaXQgQ2FyZFwiLCBcIkF1dG8gTG9hblwiLCBcIlBlcnNvbmFsIExvYW5cIl07XG5lbi5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUgPSBbXCJkZXBvc2l0XCIsIFwid2l0aGRyYXdhbFwiLCBcInBheW1lbnRcIiwgXCJpbnZvaWNlXCJdO1xuXG5lbi5maW5hbmNlLmN1cnJlbmN5ID0ge1xuICBcIlVBRSBEaXJoYW1cIjoge1xuICAgIFwiY29kZVwiOiBcIkFFRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJBZmdoYW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJBRk5cIixcbiAgICBcInN5bWJvbFwiOiBcItiLXCJcbiAgfSxcbiAgXCJMZWtcIjoge1xuICAgIFwiY29kZVwiOiBcIkFMTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTGVrXCJcbiAgfSxcbiAgXCJBcm1lbmlhbiBEcmFtXCI6IHtcbiAgICBcImNvZGVcIjogXCJBTURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTmV0aGVybGFuZHMgQW50aWxsaWFuIEd1aWxkZXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkFOR1wiLFxuICAgIFwic3ltYm9sXCI6IFwixpJcIlxuICB9LFxuICBcIkt3YW56YVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQU9BXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkFyZ2VudGluZSBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJBUlNcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkF1c3RyYWxpYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJBVURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkFydWJhbiBHdWlsZGVyXCI6IHtcbiAgICBcImNvZGVcIjogXCJBV0dcIixcbiAgICBcInN5bWJvbFwiOiBcIsaSXCJcbiAgfSxcbiAgXCJBemVyYmFpamFuaWFuIE1hbmF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJBWk5cIixcbiAgICBcInN5bWJvbFwiOiBcItC80LDQvVwiXG4gIH0sXG4gIFwiQ29udmVydGlibGUgTWFya3NcIjoge1xuICAgIFwiY29kZVwiOiBcIkJBTVwiLFxuICAgIFwic3ltYm9sXCI6IFwiS01cIlxuICB9LFxuICBcIkJhcmJhZG9zIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkJEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJUYWthXCI6IHtcbiAgICBcImNvZGVcIjogXCJCRFRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQnVsZ2FyaWFuIExldlwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkdOXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJCYWhyYWluaSBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkhEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkJ1cnVuZGkgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkJJRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJCZXJtdWRpYW4gRG9sbGFyIChjdXN0b21hcmlseSBrbm93biBhcyBCZXJtdWRhIERvbGxhcilcIjoge1xuICAgIFwiY29kZVwiOiBcIkJNRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiQnJ1bmVpIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQk5EXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJCb2xpdmlhbm8gTXZkb2xcIjoge1xuICAgIFwiY29kZVwiOiBcIkJPQiBCT1ZcIixcbiAgICBcInN5bWJvbFwiOiBcIiRiXCJcbiAgfSxcbiAgXCJCcmF6aWxpYW4gUmVhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQlJMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSJFwiXG4gIH0sXG4gIFwiQmFoYW1pYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJCU0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlB1bGFcIjoge1xuICAgIFwiY29kZVwiOiBcIkJXUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiUFwiXG4gIH0sXG4gIFwiQmVsYXJ1c3NpYW4gUnVibGVcIjoge1xuICAgIFwiY29kZVwiOiBcIkJZUlwiLFxuICAgIFwic3ltYm9sXCI6IFwicC5cIlxuICB9LFxuICBcIkJlbGl6ZSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkJaRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiQlokXCJcbiAgfSxcbiAgXCJDYW5hZGlhbiBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkNBRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiQ29uZ29sZXNlIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJDREZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU3dpc3MgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkNIRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiQ0hGXCJcbiAgfSxcbiAgXCJDaGlsZWFuIFBlc28gVW5pZGFkZXMgZGUgZm9tZW50b1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ0xQIENMRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiWXVhbiBSZW5taW5iaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ05ZXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCpVwiXG4gIH0sXG4gIFwiQ29sb21iaWFuIFBlc28gVW5pZGFkIGRlIFZhbG9yIFJlYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIkNPUCBDT1VcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkNvc3RhIFJpY2FuIENvbG9uXCI6IHtcbiAgICBcImNvZGVcIjogXCJDUkNcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCoVwiXG4gIH0sXG4gIFwiQ3ViYW4gUGVzbyBQZXNvIENvbnZlcnRpYmxlXCI6IHtcbiAgICBcImNvZGVcIjogXCJDVVAgQ1VDXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigrFcIlxuICB9LFxuICBcIkNhcGUgVmVyZGUgRXNjdWRvXCI6IHtcbiAgICBcImNvZGVcIjogXCJDVkVcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ3plY2ggS29ydW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJDWktcIixcbiAgICBcInN5bWJvbFwiOiBcIkvEjVwiXG4gIH0sXG4gIFwiRGppYm91dGkgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkRKRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJEYW5pc2ggS3JvbmVcIjoge1xuICAgIFwiY29kZVwiOiBcIkRLS1wiLFxuICAgIFwic3ltYm9sXCI6IFwia3JcIlxuICB9LFxuICBcIkRvbWluaWNhbiBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJET1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlJEJFwiXG4gIH0sXG4gIFwiQWxnZXJpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkRaRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJLcm9vblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRUVLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkVneXB0aWFuIFBvdW5kXCI6IHtcbiAgICBcImNvZGVcIjogXCJFR1BcIixcbiAgICBcInN5bWJvbFwiOiBcIsKjXCJcbiAgfSxcbiAgXCJOYWtmYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRVJOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkV0aGlvcGlhbiBCaXJyXCI6IHtcbiAgICBcImNvZGVcIjogXCJFVEJcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRXVyb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiRVVSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqxcIlxuICB9LFxuICBcIkZpamkgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJGSkRcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkZhbGtsYW5kIElzbGFuZHMgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIkZLUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqNcIlxuICB9LFxuICBcIlBvdW5kIFN0ZXJsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJHQlBcIixcbiAgICBcInN5bWJvbFwiOiBcIsKjXCJcbiAgfSxcbiAgXCJMYXJpXCI6IHtcbiAgICBcImNvZGVcIjogXCJHRUxcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ2VkaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0hTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkdpYnJhbHRhciBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0lQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiRGFsYXNpXCI6IHtcbiAgICBcImNvZGVcIjogXCJHTURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiR3VpbmVhIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJHTkZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUXVldHphbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR1RRXCIsXG4gICAgXCJzeW1ib2xcIjogXCJRXCJcbiAgfSxcbiAgXCJHdXlhbmEgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJHWURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkhvbmcgS29uZyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkhLRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiTGVtcGlyYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSE5MXCIsXG4gICAgXCJzeW1ib2xcIjogXCJMXCJcbiAgfSxcbiAgXCJDcm9hdGlhbiBLdW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJIUktcIixcbiAgICBcInN5bWJvbFwiOiBcImtuXCJcbiAgfSxcbiAgXCJHb3VyZGUgVVMgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJIVEcgVVNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkZvcmludFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSFVGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJGdFwiXG4gIH0sXG4gIFwiUnVwaWFoXCI6IHtcbiAgICBcImNvZGVcIjogXCJJRFJcIixcbiAgICBcInN5bWJvbFwiOiBcIlJwXCJcbiAgfSxcbiAgXCJOZXcgSXNyYWVsaSBTaGVxZWxcIjoge1xuICAgIFwiY29kZVwiOiBcIklMU1wiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKqXCJcbiAgfSxcbiAgXCJJbmRpYW4gUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIklOUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJJbmRpYW4gUnVwZWUgTmd1bHRydW1cIjoge1xuICAgIFwiY29kZVwiOiBcIklOUiBCVE5cIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSXJhcWkgRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIklRRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJJcmFuaWFuIFJpYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIklSUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi77e8XCJcbiAgfSxcbiAgXCJJY2VsYW5kIEtyb25hXCI6IHtcbiAgICBcImNvZGVcIjogXCJJU0tcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJKYW1haWNhbiBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkpNRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiSiRcIlxuICB9LFxuICBcIkpvcmRhbmlhbiBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSk9EXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlllblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSlBZXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCpVwiXG4gIH0sXG4gIFwiS2VueWFuIFNoaWxsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJLRVNcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU29tXCI6IHtcbiAgICBcImNvZGVcIjogXCJLR1NcIixcbiAgICBcInN5bWJvbFwiOiBcItC70LJcIlxuICB9LFxuICBcIlJpZWxcIjoge1xuICAgIFwiY29kZVwiOiBcIktIUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4Z+bXCJcbiAgfSxcbiAgXCJDb21vcm8gRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIktNRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJOb3J0aCBLb3JlYW4gV29uXCI6IHtcbiAgICBcImNvZGVcIjogXCJLUFdcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqVwiXG4gIH0sXG4gIFwiV29uXCI6IHtcbiAgICBcImNvZGVcIjogXCJLUldcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqVwiXG4gIH0sXG4gIFwiS3V3YWl0aSBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1dEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNheW1hbiBJc2xhbmRzIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1lEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJUZW5nZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1pUXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJLaXBcIjoge1xuICAgIFwiY29kZVwiOiBcIkxBS1wiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKtXCJcbiAgfSxcbiAgXCJMZWJhbmVzZSBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTEJQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiU3JpIExhbmthIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJMS1JcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqFwiXG4gIH0sXG4gIFwiTGliZXJpYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJMUkRcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkxpdGh1YW5pYW4gTGl0YXNcIjoge1xuICAgIFwiY29kZVwiOiBcIkxUTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTHRcIlxuICB9LFxuICBcIkxhdHZpYW4gTGF0c1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiTFZMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJMc1wiXG4gIH0sXG4gIFwiTGlieWFuIERpbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJMWURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTW9yb2NjYW4gRGlyaGFtXCI6IHtcbiAgICBcImNvZGVcIjogXCJNQURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTW9sZG92YW4gTGV1XCI6IHtcbiAgICBcImNvZGVcIjogXCJNRExcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTWFsYWdhc3kgQXJpYXJ5XCI6IHtcbiAgICBcImNvZGVcIjogXCJNR0FcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRGVuYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIk1LRFwiLFxuICAgIFwic3ltYm9sXCI6IFwi0LTQtdC9XCJcbiAgfSxcbiAgXCJLeWF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJNTUtcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVncmlrXCI6IHtcbiAgICBcImNvZGVcIjogXCJNTlRcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCrlwiXG4gIH0sXG4gIFwiUGF0YWNhXCI6IHtcbiAgICBcImNvZGVcIjogXCJNT1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiT3VndWl5YVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVJPXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1hdXJpdGl1cyBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVVSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIlJ1Zml5YWFcIjoge1xuICAgIFwiY29kZVwiOiBcIk1WUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJLd2FjaGFcIjoge1xuICAgIFwiY29kZVwiOiBcIk1XS1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJNZXhpY2FuIFBlc28gTWV4aWNhbiBVbmlkYWQgZGUgSW52ZXJzaW9uIChVREkpXCI6IHtcbiAgICBcImNvZGVcIjogXCJNWE4gTVhWXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJNYWxheXNpYW4gUmluZ2dpdFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVlSXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSTVwiXG4gIH0sXG4gIFwiTWV0aWNhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVpOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJNVFwiXG4gIH0sXG4gIFwiTmFpcmFcIjoge1xuICAgIFwiY29kZVwiOiBcIk5HTlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKmXCJcbiAgfSxcbiAgXCJDb3Jkb2JhIE9yb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiTklPXCIsXG4gICAgXCJzeW1ib2xcIjogXCJDJFwiXG4gIH0sXG4gIFwiTm9yd2VnaWFuIEtyb25lXCI6IHtcbiAgICBcImNvZGVcIjogXCJOT0tcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJOZXBhbGVzZSBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTlBSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIk5ldyBaZWFsYW5kIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTlpEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJSaWFsIE9tYW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJPTVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiQmFsYm9hIFVTIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUEFCIFVTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiQi8uXCJcbiAgfSxcbiAgXCJOdWV2byBTb2xcIjoge1xuICAgIFwiY29kZVwiOiBcIlBFTlwiLFxuICAgIFwic3ltYm9sXCI6IFwiUy8uXCJcbiAgfSxcbiAgXCJLaW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJQR0tcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUGhpbGlwcGluZSBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJQSFBcIixcbiAgICBcInN5bWJvbFwiOiBcIlBocFwiXG4gIH0sXG4gIFwiUGFraXN0YW4gUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIlBLUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKoXCJcbiAgfSxcbiAgXCJabG90eVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUExOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJ6xYJcIlxuICB9LFxuICBcIkd1YXJhbmlcIjoge1xuICAgIFwiY29kZVwiOiBcIlBZR1wiLFxuICAgIFwic3ltYm9sXCI6IFwiR3NcIlxuICB9LFxuICBcIlFhdGFyaSBSaWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJRQVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiTmV3IExldVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUk9OXCIsXG4gICAgXCJzeW1ib2xcIjogXCJsZWlcIlxuICB9LFxuICBcIlNlcmJpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlJTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwi0JTQuNC9LlwiXG4gIH0sXG4gIFwiUnVzc2lhbiBSdWJsZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUlVCXCIsXG4gICAgXCJzeW1ib2xcIjogXCLRgNGD0LFcIlxuICB9LFxuICBcIlJ3YW5kYSBGcmFuY1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiUldGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlNhdWRpIFJpeWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJTQVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiU29sb21vbiBJc2xhbmRzIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0JEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTZXljaGVsbGVzIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJTQ1JcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqFwiXG4gIH0sXG4gIFwiU3VkYW5lc2UgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIlNER1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTd2VkaXNoIEtyb25hXCI6IHtcbiAgICBcImNvZGVcIjogXCJTRUtcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJTaW5nYXBvcmUgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJTR0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlNhaW50IEhlbGVuYSBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0hQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTGVvbmVcIjoge1xuICAgIFwiY29kZVwiOiBcIlNMTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTb21hbGkgU2hpbGxpbmdcIjoge1xuICAgIFwiY29kZVwiOiBcIlNPU1wiLFxuICAgIFwic3ltYm9sXCI6IFwiU1wiXG4gIH0sXG4gIFwiU3VyaW5hbSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlNSRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiRG9icmFcIjoge1xuICAgIFwiY29kZVwiOiBcIlNURFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFbCBTYWx2YWRvciBDb2xvbiBVUyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlNWQyBVU0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlN5cmlhbiBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU1lQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTGlsYW5nZW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJTWkxcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQmFodFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVEhCXCIsXG4gICAgXCJzeW1ib2xcIjogXCLguL9cIlxuICB9LFxuICBcIlNvbW9uaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVEpTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1hbmF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJUTVRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVuaXNpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlRORFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQYSdhbmdhXCI6IHtcbiAgICBcImNvZGVcIjogXCJUT1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVya2lzaCBMaXJhXCI6IHtcbiAgICBcImNvZGVcIjogXCJUUllcIixcbiAgICBcInN5bWJvbFwiOiBcIlRMXCJcbiAgfSxcbiAgXCJUcmluaWRhZCBhbmQgVG9iYWdvIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVFREXCIsXG4gICAgXCJzeW1ib2xcIjogXCJUVCRcIlxuICB9LFxuICBcIk5ldyBUYWl3YW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJUV0RcIixcbiAgICBcInN5bWJvbFwiOiBcIk5UJFwiXG4gIH0sXG4gIFwiVGFuemFuaWFuIFNoaWxsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJUWlNcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSHJ5dm5pYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVUFIXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigrRcIlxuICB9LFxuICBcIlVnYW5kYSBTaGlsbGluZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiVUdYXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlVTIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVVNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJQZXNvIFVydWd1YXlvIFVydWd1YXkgUGVzbyBlbiBVbmlkYWRlcyBJbmRleGFkYXNcIjoge1xuICAgIFwiY29kZVwiOiBcIlVZVSBVWUlcIixcbiAgICBcInN5bWJvbFwiOiBcIiRVXCJcbiAgfSxcbiAgXCJVemJla2lzdGFuIFN1bVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVVpTXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJCb2xpdmFyIEZ1ZXJ0ZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVkVGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJCc1wiXG4gIH0sXG4gIFwiRG9uZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiVk5EXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqtcIlxuICB9LFxuICBcIlZhdHVcIjoge1xuICAgIFwiY29kZVwiOiBcIlZVVlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJUYWxhXCI6IHtcbiAgICBcImNvZGVcIjogXCJXU1RcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ0ZBIEZyYW5jIEJFQUNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhBRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTaWx2ZXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlhBR1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJHb2xkXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQVVcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQm9uZCBNYXJrZXRzIFVuaXRzIEV1cm9wZWFuIENvbXBvc2l0ZSBVbml0IChFVVJDTylcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQVwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBNb25ldGFyeSBVbml0IChFLk0uVS4tNilcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBVbml0IG9mIEFjY291bnQgOShFLlUuQS4tOSlcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQ1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBVbml0IG9mIEFjY291bnQgMTcoRS5VLkEuLTE3KVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWEJEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkVhc3QgQ2FyaWJiZWFuIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWENEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTRFJcIjoge1xuICAgIFwiY29kZVwiOiBcIlhEUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJVSUMtRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhGVVwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDRkEgRnJhbmMgQkNFQU9cIjoge1xuICAgIFwiY29kZVwiOiBcIlhPRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQYWxsYWRpdW1cIjoge1xuICAgIFwiY29kZVwiOiBcIlhQRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDRlAgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhQRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQbGF0aW51bVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWFBUXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNvZGVzIHNwZWNpZmljYWxseSByZXNlcnZlZCBmb3IgdGVzdGluZyBwdXJwb3Nlc1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiWFRTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlllbWVuaSBSaWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJZRVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiUmFuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWkFSXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSXCJcbiAgfSxcbiAgXCJSYW5kIExvdGlcIjoge1xuICAgIFwiY29kZVwiOiBcIlpBUiBMU0xcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUmFuZCBOYW1pYmlhIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWkFSIE5BRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJaYW1iaWFuIEt3YWNoYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWk1LXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlppbWJhYndlIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWldMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9XG59OyIsInZhciBlbl9BVSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVuX0FVO1xuZW5fQVUudGl0bGUgPSBcIkF1c3RyYWxpYSAoRW5nbGlzaClcIjtcbmVuX0FVLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJPbGl2ZXJcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJMYWNobGFuXCIsXG4gICAgXCJDb29wZXJcIixcbiAgICBcIk5vYWhcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIk1heFwiLFxuICAgIFwiSXNhYWNcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiUmlsZXlcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJKYWtlXCIsXG4gICAgXCJNYXR0aGV3XCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIkhhcnJ5XCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIk5pY2hvbGFzXCIsXG4gICAgXCJIYXJyaXNvblwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTHVrZVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkFpZGVuXCIsXG4gICAgXCJEeWxhblwiLFxuICAgIFwiT3NjYXJcIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIkxvZ2FuXCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkJsYWtlXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIkNvbm5vclwiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJOYXRlXCIsXG4gICAgXCJBcmNoaWVcIixcbiAgICBcIkJhaWxleVwiLFxuICAgIFwiTWFyY3VzXCIsXG4gICAgXCJDYW1lcm9uXCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIlphY2hhcnlcIixcbiAgICBcIkNhbGViXCIsXG4gICAgXCJIdW50ZXJcIixcbiAgICBcIkFzaHRvblwiLFxuICAgIFwiVG9ieVwiLFxuICAgIFwiQWlkYW5cIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiTWFzb25cIixcbiAgICBcIkhhbWlzaFwiLFxuICAgIFwiRWR3YXJkXCIsXG4gICAgXCJBbmd1c1wiLFxuICAgIFwiRWxpXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiUGF0cmlja1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbnRob255XCIsXG4gICAgXCJMdWNhXCIsXG4gICAgXCJLYWlcIixcbiAgICBcIkJlYXVcIixcbiAgICBcIkFsZXhcIixcbiAgICBcIkdlb3JnZVwiLFxuICAgIFwiQ2FsbHVtXCIsXG4gICAgXCJGaW5uXCIsXG4gICAgXCJaYWNcIixcbiAgICBcIk1pdGNoZWxsXCIsXG4gICAgXCJKZXR0XCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJEZWNsYW5cIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiQ2hyaXN0b3BoZXJcIixcbiAgICBcIkNoYXNlXCIsXG4gICAgXCJPd2VuXCIsXG4gICAgXCJKdXN0aW5cIixcbiAgICBcIkFsaVwiLFxuICAgIFwiRGFyY3lcIixcbiAgICBcIkxpbmNvbG5cIixcbiAgICBcIkNvZHlcIixcbiAgICBcIlBob2VuaXhcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9lbFwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIkNobG9lXCIsXG4gICAgXCJPbGl2aWFcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJMaWx5XCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiU2llbm5hXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiR3JhY2VcIixcbiAgICBcIkF2YVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIkhhbm5haFwiLFxuICAgIFwiSmVzc2ljYVwiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIlphcmFcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiU2NhcmxldHRcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkNoZWxzZWFcIixcbiAgICBcIkxpbGx5XCIsXG4gICAgXCJJdnlcIixcbiAgICBcIklzbGFcIixcbiAgICBcIkV2aWVcIixcbiAgICBcIklzYWJlbGxlXCIsXG4gICAgXCJNYWRkaXNvblwiLFxuICAgIFwiTGF5bGFcIixcbiAgICBcIlN1bW1lclwiLFxuICAgIFwiQW5uYWJlbGxlXCIsXG4gICAgXCJBbGV4aXNcIixcbiAgICBcIkVsaXphYmV0aFwiLFxuICAgIFwiQmVsbGFcIixcbiAgICBcIkhvbGx5XCIsXG4gICAgXCJMYXJhXCIsXG4gICAgXCJNYWRpc29uXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIk1heWFcIixcbiAgICBcIlRhaGxpYVwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJIYXlsZXlcIixcbiAgICBcIkltb2dlblwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiRWxsaWVcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJBZGRpc29uXCIsXG4gICAgXCJNb2xseVwiLFxuICAgIFwiUGhvZWJlXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiU2F2YW5uYWhcIixcbiAgICBcIkdhYnJpZWxsYVwiLFxuICAgIFwiS2F5bGFcIixcbiAgICBcIk1pa2F5bGFcIixcbiAgICBcIkFiYmV5XCIsXG4gICAgXCJFbGl6YVwiLFxuICAgIFwiV2lsbG93XCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIlBvcHB5XCIsXG4gICAgXCJTYW1hbnRoYVwiLFxuICAgIFwiU3RlbGxhXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFtZWxpZVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiUGlwZXJcIixcbiAgICBcIkdlbW1hXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIkNhaXRsaW5cIixcbiAgICBcIkhlaWRpXCIsXG4gICAgXCJQYWlnZVwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiQW1iZXJcIixcbiAgICBcIkF1ZHJleVwiLFxuICAgIFwiQ2xhdWRpYVwiLFxuICAgIFwiVGF5bG9yXCIsXG4gICAgXCJNYWRlbGluZVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIk5hdGFsaWVcIixcbiAgICBcIkNoYXJsaVwiLFxuICAgIFwiTGF1cmVuXCIsXG4gICAgXCJBc2hsZXlcIixcbiAgICBcIlZpb2xldFwiLFxuICAgIFwiTWFja2VuemllXCIsXG4gICAgXCJBYmJ5XCIsXG4gICAgXCJTa3llXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiRXZlXCIsXG4gICAgXCJLaWFyYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIlNtaXRoXCIsXG4gICAgXCJKb25lc1wiLFxuICAgIFwiV2lsbGlhbXNcIixcbiAgICBcIkJyb3duXCIsXG4gICAgXCJXaWxzb25cIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiSm9obnNvblwiLFxuICAgIFwiV2hpdGVcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIlRob21wc29uXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiV2Fsa2VyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiUm9iaW5zb25cIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJEYXZpc1wiLFxuICAgIFwiV3JpZ2h0XCIsXG4gICAgXCJFdmFuc1wiLFxuICAgIFwiUm9iZXJ0c1wiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkhhbGxcIixcbiAgICBcIldvb2RcIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIkNsYXJrZVwiLFxuICAgIFwiUGF0ZWxcIixcbiAgICBcIktoYW5cIixcbiAgICBcIkxld2lzXCIsXG4gICAgXCJKYW1lc1wiLFxuICAgIFwiUGhpbGxpcHNcIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJNaXRjaGVsbFwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiRGF2aWVzXCIsXG4gICAgXCJSb2RyaWd1ZXpcIixcbiAgICBcIkNveFwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJHYXJkZW5cIixcbiAgICBcIkNhbXBiZWxsXCIsXG4gICAgXCJKb2huc3RvblwiLFxuICAgIFwiTW9vcmVcIixcbiAgICBcIlNteXRoXCIsXG4gICAgXCJPJ25laWxsXCIsXG4gICAgXCJEb2hlcnR5XCIsXG4gICAgXCJTdGV3YXJ0XCIsXG4gICAgXCJRdWlublwiLFxuICAgIFwiTXVycGh5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIk1jbGF1Z2hsaW5cIixcbiAgICBcIkhhbWlsdG9uXCIsXG4gICAgXCJNdXJyYXlcIixcbiAgICBcIkh1Z2hlc1wiLFxuICAgIFwiUm9iZXJ0c29uXCIsXG4gICAgXCJUaG9tc29uXCIsXG4gICAgXCJTY290dFwiLFxuICAgIFwiTWFjZG9uYWxkXCIsXG4gICAgXCJSZWlkXCIsXG4gICAgXCJDbGFya1wiLFxuICAgIFwiUm9zc1wiLFxuICAgIFwiWW91bmdcIixcbiAgICBcIldhdHNvblwiLFxuICAgIFwiUGF0ZXJzb25cIixcbiAgICBcIk1vcnJpc29uXCIsXG4gICAgXCJNb3JnYW5cIixcbiAgICBcIkdyaWZmaXRoc1wiLFxuICAgIFwiRWR3YXJkc1wiLFxuICAgIFwiUmVlc1wiLFxuICAgIFwiSmVua2luc1wiLFxuICAgIFwiT3dlblwiLFxuICAgIFwiUHJpY2VcIixcbiAgICBcIk1vc3NcIixcbiAgICBcIlJpY2hhcmRzXCIsXG4gICAgXCJBYmJvdHRcIixcbiAgICBcIkFkYW1zXCIsXG4gICAgXCJBcm1zdHJvbmdcIixcbiAgICBcIkJhaHJpbmdlclwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYXJyb3dzXCIsXG4gICAgXCJCYXJ0ZWxsXCIsXG4gICAgXCJCYXJ0b2xldHRpXCIsXG4gICAgXCJCYXJ0b25cIixcbiAgICBcIkJhdWNoXCIsXG4gICAgXCJCYXVtYmFjaFwiLFxuICAgIFwiQmF5ZXJcIixcbiAgICBcIkJlYWhhblwiLFxuICAgIFwiQmVhdHR5XCIsXG4gICAgXCJCZWNrZXJcIixcbiAgICBcIkJlaWVyXCIsXG4gICAgXCJCZXJnZVwiLFxuICAgIFwiQmVyZ3N0cm9tXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2dhblwiLFxuICAgIFwiQm9yZXJcIixcbiAgICBcIkJvc2NvXCIsXG4gICAgXCJCb3RzZm9yZFwiLFxuICAgIFwiQm95ZXJcIixcbiAgICBcIkJveWxlXCIsXG4gICAgXCJCcmF1blwiLFxuICAgIFwiQnJ1ZW5cIixcbiAgICBcIkNhcnJvbGxcIixcbiAgICBcIkNhcnRlclwiLFxuICAgIFwiQ2FydHdyaWdodFwiLFxuICAgIFwiQ2FzcGVyXCIsXG4gICAgXCJDYXNzaW5cIixcbiAgICBcIkNoYW1wbGluXCIsXG4gICAgXCJDaHJpc3RpYW5zZW5cIixcbiAgICBcIkNvbGVcIixcbiAgICBcIkNvbGxpZXJcIixcbiAgICBcIkNvbGxpbnNcIixcbiAgICBcIkNvbm5lbGx5XCIsXG4gICAgXCJDb25yb3lcIixcbiAgICBcIkNvcmtlcnlcIixcbiAgICBcIkNvcm1pZXJcIixcbiAgICBcIkNvcndpblwiLFxuICAgIFwiQ3JvbmluXCIsXG4gICAgXCJDcm9va3NcIixcbiAgICBcIkNydWlja3NoYW5rXCIsXG4gICAgXCJDdW1taW5nc1wiLFxuICAgIFwiRCdhbW9yZVwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJEYXJlXCIsXG4gICAgXCJEYXVnaGVydHlcIixcbiAgICBcIkRpY2tlbnNcIixcbiAgICBcIkRpY2tpbnNvblwiLFxuICAgIFwiRGlldHJpY2hcIixcbiAgICBcIkRvbm5lbGx5XCIsXG4gICAgXCJEb29sZXlcIixcbiAgICBcIkRvdWdsYXNcIixcbiAgICBcIkRveWxlXCIsXG4gICAgXCJEdXJnYW5cIixcbiAgICBcIkViZXJ0XCIsXG4gICAgXCJFbWFyZFwiLFxuICAgIFwiRW1tZXJpY2hcIixcbiAgICBcIkVyZG1hblwiLFxuICAgIFwiRXJuc2VyXCIsXG4gICAgXCJGYWRlbFwiLFxuICAgIFwiRmFoZXlcIixcbiAgICBcIkZhcnJlbGxcIixcbiAgICBcIkZheVwiLFxuICAgIFwiRmVlbmV5XCIsXG4gICAgXCJGZWlsXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmlzaGVyXCIsXG4gICAgXCJGbGF0bGV5XCIsXG4gICAgXCJHaWJzb25cIixcbiAgICBcIkdsZWFzb25cIixcbiAgICBcIkdsb3ZlclwiLFxuICAgIFwiR29sZG5lclwiLFxuICAgIFwiR29vZHdpblwiLFxuICAgIFwiR3JhZHlcIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmVlbmZlbGRlclwiLFxuICAgIFwiR3JlZW5ob2x0XCIsXG4gICAgXCJHcmltZXNcIixcbiAgICBcIkd1dG1hbm5cIixcbiAgICBcIkhhY2tldHRcIixcbiAgICBcIkhhaG5cIixcbiAgICBcIkhhbGV5XCIsXG4gICAgXCJIYW1tZXNcIixcbiAgICBcIkhhbmRcIixcbiAgICBcIkhhbmVcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyYmVyXCIsXG4gICAgXCJIYXJ0bWFublwiLFxuICAgIFwiSGFydmV5XCIsXG4gICAgXCJIYXllc1wiLFxuICAgIFwiSGVhbmV5XCIsXG4gICAgXCJIZWF0aGNvdGVcIixcbiAgICBcIkhlbGxlclwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWlzdG9uXCIsXG4gICAgXCJIZXNzZWxcIixcbiAgICBcIkhldHRpbmdlclwiLFxuICAgIFwiSGlja2xlXCIsXG4gICAgXCJIaWxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvd2VcIixcbiAgICBcIkhvd2VsbFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWVsXCIsXG4gICAgXCJIeWF0dFwiLFxuICAgIFwiSmFjb2JpXCIsXG4gICAgXCJKYWNvYnNcIixcbiAgICBcIkphY29ic29uXCIsXG4gICAgXCJKZXJkZVwiLFxuICAgIFwiSm9obnNcIixcbiAgICBcIktlZWxpbmdcIixcbiAgICBcIktlbW1lclwiLFxuICAgIFwiS2Vzc2xlclwiLFxuICAgIFwiS2llaG5cIixcbiAgICBcIktpcmxpblwiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktvY2hcIixcbiAgICBcIktvZWxwaW5cIixcbiAgICBcIktvaGxlclwiLFxuICAgIFwiS29zc1wiLFxuICAgIFwiS292YWNla1wiLFxuICAgIFwiS3JlaWdlclwiLFxuICAgIFwiS3Jpc1wiLFxuICAgIFwiS3VobG1hblwiLFxuICAgIFwiS3VoblwiLFxuICAgIFwiS3VsYXNcIixcbiAgICBcIkt1bmRlXCIsXG4gICAgXCJLdXRjaFwiLFxuICAgIFwiTGFraW5cIixcbiAgICBcIkxhbmdcIixcbiAgICBcIkxhbmd3b3J0aFwiLFxuICAgIFwiTGFya2luXCIsXG4gICAgXCJMYXJzb25cIixcbiAgICBcIkxlYW5ub25cIixcbiAgICBcIkxlZmZsZXJcIixcbiAgICBcIkxpdHRsZVwiLFxuICAgIFwiTG9ja21hblwiLFxuICAgIFwiTG93ZVwiLFxuICAgIFwiTHluY2hcIixcbiAgICBcIk1hbm5cIixcbiAgICBcIk1hcmtzXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNY2N1bGxvdWdoXCIsXG4gICAgXCJNY2Rlcm1vdHRcIixcbiAgICBcIk1ja2VuemllXCIsXG4gICAgXCJNaWxsZXJcIixcbiAgICBcIk1pbGxzXCIsXG4gICAgXCJNb25haGFuXCIsXG4gICAgXCJNb3Jpc3NldHRlXCIsXG4gICAgXCJNdWVsbGVyXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk5hZGVyXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOb2xhblwiLFxuICAgIFwiTydjb25uZWxsXCIsXG4gICAgXCJPJ2Nvbm5lclwiLFxuICAgIFwiTydoYXJhXCIsXG4gICAgXCJPJ2tlZWZlXCIsXG4gICAgXCJPbHNvblwiLFxuICAgIFwiTydyZWlsbHlcIixcbiAgICBcIlBhcmlzaWFuXCIsXG4gICAgXCJQYXJrZXJcIixcbiAgICBcIlF1aWdsZXlcIixcbiAgICBcIlJlaWxseVwiLFxuICAgIFwiUmV5bm9sZHNcIixcbiAgICBcIlJpY2VcIixcbiAgICBcIlJpdGNoaWVcIixcbiAgICBcIlJvaGFuXCIsXG4gICAgXCJSb2xmc29uXCIsXG4gICAgXCJSb3dlXCIsXG4gICAgXCJSdXNzZWxcIixcbiAgICBcIlJ1dGhlcmZvcmRcIixcbiAgICBcIlNhbmZvcmRcIixcbiAgICBcIlNhdWVyXCIsXG4gICAgXCJTY2htaWR0XCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJTY2huZWlkZXJcIixcbiAgICBcIlNjaHJvZWRlclwiLFxuICAgIFwiU2NodWx0elwiLFxuICAgIFwiU2hpZWxkc1wiLFxuICAgIFwiU21pdGhhbVwiLFxuICAgIFwiU3BlbmNlclwiLFxuICAgIFwiU3RhbnRvblwiLFxuICAgIFwiU3RhcmtcIixcbiAgICBcIlN0b2tlc1wiLFxuICAgIFwiU3dpZnRcIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRvd25lXCIsXG4gICAgXCJUcmVtYmxheVwiLFxuICAgIFwiVHJvbXBcIixcbiAgICBcIlR1cmNvdHRlXCIsXG4gICAgXCJUdXJuZXJcIixcbiAgICBcIldhbHNoXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhcmRcIixcbiAgICBcIldhdGVyc1wiLFxuICAgIFwiV2ViZXJcIixcbiAgICBcIldlbGNoXCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJXaWxkZXJtYW5cIixcbiAgICBcIldpbGtpbnNvblwiLFxuICAgIFwiV2lsbGlhbXNvblwiLFxuICAgIFwiV2luZGxlclwiLFxuICAgIFwiV29sZlwiXG4gIF1cbn07XG5lbl9BVS5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJQdHkgTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCIsXG4gICAgXCJQYXJ0bmVyc1wiXG4gIF1cbn07XG5lbl9BVS5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbS5hdVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXQuYXVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnLmF1XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZW5fQVUuYWRkcmVzcyA9IHtcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIk5TV1wiLFxuICAgIFwiUUxEXCIsXG4gICAgXCJOVFwiLFxuICAgIFwiU0FcIixcbiAgICBcIldBXCIsXG4gICAgXCJUQVNcIixcbiAgICBcIkFDVFwiLFxuICAgIFwiVklDXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJOZXcgU291dGggV2FsZXNcIixcbiAgICBcIlF1ZWVuc2xhbmRcIixcbiAgICBcIk5vcnRoZXJuIFRlcnJpdG9yeVwiLFxuICAgIFwiU291dGggQXVzdHJhbGlhXCIsXG4gICAgXCJXZXN0ZXJuIEF1c3RyYWxpYVwiLFxuICAgIFwiVGFzbWFuaWFcIixcbiAgICBcIkF1c3RyYWxpYW4gQ2FwaXRhbCBUZXJyaXRvcnlcIixcbiAgICBcIlZpY3RvcmlhXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIwIyMjXCIsXG4gICAgXCIyIyMjXCIsXG4gICAgXCIzIyMjXCIsXG4gICAgXCI0IyMjXCIsXG4gICAgXCI1IyMjXCIsXG4gICAgXCI2IyMjXCIsXG4gICAgXCI3IyMjXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjXCIsXG4gICAgXCIjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJBdmVudWVcIixcbiAgICBcIkJvdWxldmFyZFwiLFxuICAgIFwiQ2lyY2xlXCIsXG4gICAgXCJDaXJjdWl0XCIsXG4gICAgXCJDb3VydFwiLFxuICAgIFwiQ3Jlc2NlbnRcIixcbiAgICBcIkNyZXN0XCIsXG4gICAgXCJEcml2ZVwiLFxuICAgIFwiRXN0YXRlIERyXCIsXG4gICAgXCJHcm92ZVwiLFxuICAgIFwiSGlsbFwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJKdW5jdGlvblwiLFxuICAgIFwiS25vbGxcIixcbiAgICBcIkxhbmVcIixcbiAgICBcIkxvb3BcIixcbiAgICBcIk1hbGxcIixcbiAgICBcIk1hbm9yXCIsXG4gICAgXCJNZWFkb3dcIixcbiAgICBcIk1ld3NcIixcbiAgICBcIlBhcmFkZVwiLFxuICAgIFwiUGFya3dheVwiLFxuICAgIFwiUGFzc1wiLFxuICAgIFwiUGxhY2VcIixcbiAgICBcIlBsYXphXCIsXG4gICAgXCJSaWRnZVwiLFxuICAgIFwiUm9hZFwiLFxuICAgIFwiUnVuXCIsXG4gICAgXCJTcXVhcmVcIixcbiAgICBcIlN0YXRpb24gU3RcIixcbiAgICBcIlN0cmVldFwiLFxuICAgIFwiU3VtbWl0XCIsXG4gICAgXCJUZXJyYWNlXCIsXG4gICAgXCJUcmFja1wiLFxuICAgIFwiVHJhaWxcIixcbiAgICBcIlZpZXcgUmRcIixcbiAgICBcIldheVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkF1c3RyYWxpYVwiXG4gIF1cbn07XG5lbl9BVS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwIyAjIyMjICMjIyNcIixcbiAgICBcIis2MSAjICMjIyMgIyMjI1wiLFxuICAgIFwiMDQjIyAjIyMgIyMjXCIsXG4gICAgXCIrNjEgNCMjICMjIyAjIyNcIlxuICBdXG59O1xuIiwidmFyIGVuX0JPUksgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9CT1JLO1xuZW5fQk9SSy50aXRsZSA9IFwiQm9yayAoRW5nbGlzaClcIjtcbmVuX0JPUksubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwiQm9vdFwiLFxuICAgIFwiSVwiLFxuICAgIFwiTnVcIixcbiAgICBcIk51clwiLFxuICAgIFwiVHVcIixcbiAgICBcIlVtXCIsXG4gICAgXCJhXCIsXG4gICAgXCJiZWNvb3NlLWFcIixcbiAgICBcImJvb3RcIixcbiAgICBcImJvcmtcIixcbiAgICBcImJ1cm5cIixcbiAgICBcImNodXVzZXNcIixcbiAgICBcImN1bXBsZXRlLWFcIixcbiAgICBcImN1blwiLFxuICAgIFwiY3Vuc2Vxb29lbmNlc1wiLFxuICAgIFwiY3VyY29vbXN0dW5jZXNcIixcbiAgICBcImRlZVwiLFxuICAgIFwiZGVlc2xpa2VzXCIsXG4gICAgXCJkZW51b29uY2VlbmdcIixcbiAgICBcImRlc3VyZXNcIixcbiAgICBcImR1XCIsXG4gICAgXCJlY2N1b29udFwiLFxuICAgIFwiZWN0b29lbFwiLFxuICAgIFwiZWRmdW50ZWdlLWFcIixcbiAgICBcImVmdWVlZHNcIixcbiAgICBcImVnZWVlblwiLFxuICAgIFwiZWxsXCIsXG4gICAgXCJlcmUtYVwiLFxuICAgIFwiZmVlbmRcIixcbiAgICBcImZvb2x0XCIsXG4gICAgXCJmcnVtXCIsXG4gICAgXCJnZWVmZS1hXCIsXG4gICAgXCJnZXNoXCIsXG4gICAgXCJncmVldFwiLFxuICAgIFwiaGVlbVwiLFxuICAgIFwiaGVwcGVlbmVzc1wiLFxuICAgIFwiaGVzXCIsXG4gICAgXCJob29cIixcbiAgICBcImhvb211blwiLFxuICAgIFwiaWRlYVwiLFxuICAgIFwiaWZlclwiLFxuICAgIFwiaW5cIixcbiAgICBcImluY3Vvb250ZXJcIixcbiAgICBcImluanV5XCIsXG4gICAgXCJpdHNlbGZmXCIsXG4gICAgXCJpeGNlcHRcIixcbiAgICBcIml4ZW1wbGUtYVwiLFxuICAgIFwiaXhlcmNlZXNlLWFcIixcbiAgICBcIml4cGxlZWVuXCIsXG4gICAgXCJpeHBsdXJlclwiLFxuICAgIFwiaXhwdW9vbmRcIixcbiAgICBcIml4dHJlbWVseVwiLFxuICAgIFwia25vb1wiLFxuICAgIFwibGVidXJlZXVvb3NcIixcbiAgICBcImx1ZmVzXCIsXG4gICAgXCJtZWVzdGVrZWVcIixcbiAgICBcIm1lc3Rlci1ib29lZWxkZXJcIixcbiAgICBcIm1vb3N0XCIsXG4gICAgXCJtdW5cIixcbiAgICBcIm51XCIsXG4gICAgXCJudXRcIixcbiAgICBcIm9vYnRlZWVuXCIsXG4gICAgXCJvb2NjZXNlZXVuZWxseVwiLFxuICAgIFwib29jY29vclwiLFxuICAgIFwib29mZlwiLFxuICAgIFwib29uZS1hXCIsXG4gICAgXCJvb3JcIixcbiAgICBcInBlZWVuXCIsXG4gICAgXCJwZWVlbmZmb29sXCIsXG4gICAgXCJwaHlzZWVjZWxcIixcbiAgICBcInBsZWVzb29yZS1hXCIsXG4gICAgXCJwb29yc29vZS1hXCIsXG4gICAgXCJwb29yc29vZXNcIixcbiAgICBcInByZWVlc2luZ1wiLFxuICAgIFwicHJ1Y29vcmUtYVwiLFxuICAgIFwicHJ1ZG9vY2VzXCIsXG4gICAgXCJyZWVnaHRcIixcbiAgICBcInJlc2h1bmVsbHlcIixcbiAgICBcInJlc29vbHR1bnRcIixcbiAgICBcInN1bWUtYVwiLFxuICAgIFwidGVlY2hlZW5nc1wiLFxuICAgIFwidGVrZS1hXCIsXG4gICAgXCJ0aGVlc1wiLFxuICAgIFwidGhldFwiLFxuICAgIFwidGh1c2UtYVwiLFxuICAgIFwidHJlZWZpZWxcIixcbiAgICBcInRyb290XCIsXG4gICAgXCJ0dVwiLFxuICAgIFwidHVlZWxcIixcbiAgICBcInVuZFwiLFxuICAgIFwidW5kZXJ0ZWtlc1wiLFxuICAgIFwidW5udXllZW5nXCIsXG4gICAgXCJ1bnlcIixcbiAgICBcInVueXVuZS1hXCIsXG4gICAgXCJ1c1wiLFxuICAgIFwidmVlbGxcIixcbiAgICBcInZlZXRcIixcbiAgICBcInZlc1wiLFxuICAgIFwidmhlZWNoXCIsXG4gICAgXCJ2aHVcIixcbiAgICBcInl1b29cIixcbiAgICBcInplZVwiLFxuICAgIFwiemVlcmUtYVwiXG4gIF1cbn07XG4iLCJ2YXIgZW5fQ0EgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9DQTtcbmVuX0NBLnRpdGxlID0gXCJDYW5hZGEgKEVuZ2xpc2gpXCI7XG5lbl9DQS5hZGRyZXNzID0ge1xuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIj8jPyAjPyNcIixcbiAgICBcIj8jPyM/I1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxiZXJ0YVwiLFxuICAgIFwiQnJpdGlzaCBDb2x1bWJpYVwiLFxuICAgIFwiTWFuaXRvYmFcIixcbiAgICBcIk5ldyBCcnVuc3dpY2tcIixcbiAgICBcIk5ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3JcIixcbiAgICBcIk5vdmEgU2NvdGlhXCIsXG4gICAgXCJOb3J0aHdlc3QgVGVycml0b3JpZXNcIixcbiAgICBcIk51bmF2dXRcIixcbiAgICBcIk9udGFyaW9cIixcbiAgICBcIlByaW5jZSBFZHdhcmQgSXNsYW5kXCIsXG4gICAgXCJRdWViZWNcIixcbiAgICBcIlNhc2thdGNoZXdhblwiLFxuICAgIFwiWXVrb25cIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQUJcIixcbiAgICBcIkJDXCIsXG4gICAgXCJNQlwiLFxuICAgIFwiTkJcIixcbiAgICBcIk5MXCIsXG4gICAgXCJOU1wiLFxuICAgIFwiTlVcIixcbiAgICBcIk5UXCIsXG4gICAgXCJPTlwiLFxuICAgIFwiUEVcIixcbiAgICBcIlFDXCIsXG4gICAgXCJTS1wiLFxuICAgIFwiWUtcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJDYW5hZGFcIlxuICBdXG59O1xuZW5fQ0EuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNhXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjYVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX0NBLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMtIyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIigjIyMpIyMjLSMjIyMgeCMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyMgeCMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyNcIixcbiAgICBcIiMjIy0jIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fR0IgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9HQjtcbmVuX0dCLnRpdGxlID0gXCJHcmVhdCBCcml0YWluIChFbmdsaXNoKVwiO1xuZW5fR0IuYWRkcmVzcyA9IHtcbiAgXCJwb3N0Y29kZVwiOiBcIi9bQS1QUi1VV1laXVtBLUhLLVldP1swLTldW0FCRUhNTlBSVldYWTAtOV0/IFswLTldW0FCRC1ISkxOLVVXLVpdezJ9L1wiLFxuICBcImNvdW50eVwiOiBbXG4gICAgXCJBdm9uXCIsXG4gICAgXCJCZWRmb3Jkc2hpcmVcIixcbiAgICBcIkJlcmtzaGlyZVwiLFxuICAgIFwiQm9yZGVyc1wiLFxuICAgIFwiQnVja2luZ2hhbXNoaXJlXCIsXG4gICAgXCJDYW1icmlkZ2VzaGlyZVwiLFxuICAgIFwiQ2VudHJhbFwiLFxuICAgIFwiQ2hlc2hpcmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2x3eWRcIixcbiAgICBcIkNvcm53YWxsXCIsXG4gICAgXCJDb3VudHkgQW50cmltXCIsXG4gICAgXCJDb3VudHkgQXJtYWdoXCIsXG4gICAgXCJDb3VudHkgRG93blwiLFxuICAgIFwiQ291bnR5IEZlcm1hbmFnaFwiLFxuICAgIFwiQ291bnR5IExvbmRvbmRlcnJ5XCIsXG4gICAgXCJDb3VudHkgVHlyb25lXCIsXG4gICAgXCJDdW1icmlhXCIsXG4gICAgXCJEZXJieXNoaXJlXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRG9yc2V0XCIsXG4gICAgXCJEdW1mcmllcyBhbmQgR2FsbG93YXlcIixcbiAgICBcIkR1cmhhbVwiLFxuICAgIFwiRHlmZWRcIixcbiAgICBcIkVhc3QgU3Vzc2V4XCIsXG4gICAgXCJFc3NleFwiLFxuICAgIFwiRmlmZVwiLFxuICAgIFwiR2xvdWNlc3RlcnNoaXJlXCIsXG4gICAgXCJHcmFtcGlhblwiLFxuICAgIFwiR3JlYXRlciBNYW5jaGVzdGVyXCIsXG4gICAgXCJHd2VudFwiLFxuICAgIFwiR3d5bmVkZCBDb3VudHlcIixcbiAgICBcIkhhbXBzaGlyZVwiLFxuICAgIFwiSGVyZWZvcmRzaGlyZVwiLFxuICAgIFwiSGVydGZvcmRzaGlyZVwiLFxuICAgIFwiSGlnaGxhbmRzIGFuZCBJc2xhbmRzXCIsXG4gICAgXCJIdW1iZXJzaWRlXCIsXG4gICAgXCJJc2xlIG9mIFdpZ2h0XCIsXG4gICAgXCJLZW50XCIsXG4gICAgXCJMYW5jYXNoaXJlXCIsXG4gICAgXCJMZWljZXN0ZXJzaGlyZVwiLFxuICAgIFwiTGluY29sbnNoaXJlXCIsXG4gICAgXCJMb3RoaWFuXCIsXG4gICAgXCJNZXJzZXlzaWRlXCIsXG4gICAgXCJNaWQgR2xhbW9yZ2FuXCIsXG4gICAgXCJOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aCBZb3Jrc2hpcmVcIixcbiAgICBcIk5vcnRoYW1wdG9uc2hpcmVcIixcbiAgICBcIk5vcnRodW1iZXJsYW5kXCIsXG4gICAgXCJOb3R0aW5naGFtc2hpcmVcIixcbiAgICBcIk94Zm9yZHNoaXJlXCIsXG4gICAgXCJQb3d5c1wiLFxuICAgIFwiUnV0bGFuZFwiLFxuICAgIFwiU2hyb3BzaGlyZVwiLFxuICAgIFwiU29tZXJzZXRcIixcbiAgICBcIlNvdXRoIEdsYW1vcmdhblwiLFxuICAgIFwiU291dGggWW9ya3NoaXJlXCIsXG4gICAgXCJTdGFmZm9yZHNoaXJlXCIsXG4gICAgXCJTdHJhdGhjbHlkZVwiLFxuICAgIFwiU3VmZm9sa1wiLFxuICAgIFwiU3VycmV5XCIsXG4gICAgXCJUYXlzaWRlXCIsXG4gICAgXCJUeW5lIGFuZCBXZWFyXCIsXG4gICAgXCJXYXJ3aWNrc2hpcmVcIixcbiAgICBcIldlc3QgR2xhbW9yZ2FuXCIsXG4gICAgXCJXZXN0IE1pZGxhbmRzXCIsXG4gICAgXCJXZXN0IFN1c3NleFwiLFxuICAgIFwiV2VzdCBZb3Jrc2hpcmVcIixcbiAgICBcIldpbHRzaGlyZVwiLFxuICAgIFwiV29yY2VzdGVyc2hpcmVcIlxuICBdLFxuICBcInVrX2NvdW50cnlcIjogW1xuICAgIFwiRW5nbGFuZFwiLFxuICAgIFwiU2NvdGxhbmRcIixcbiAgICBcIldhbGVzXCIsXG4gICAgXCJOb3J0aGVybiBJcmVsYW5kXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiRW5nbGFuZFwiLFxuICAgIFwiU2NvdGxhbmRcIixcbiAgICBcIldhbGVzXCIsXG4gICAgXCJOb3J0aGVybiBJcmVsYW5kXCJcbiAgXVxufTtcbmVuX0dCLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY28udWtcIixcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCJcbiAgXVxufTtcbmVuX0dCLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAxIyMjIyAjIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyMjXCIsXG4gICAgXCIwMSMxICMjIyAjIyMjXCIsXG4gICAgXCIwMTEjICMjIyAjIyMjXCIsXG4gICAgXCIwMiMgIyMjIyAjIyMjXCIsXG4gICAgXCIwMyMjICMjIyAjIyMjXCIsXG4gICAgXCIwNTUgIyMjIyAjIyMjXCIsXG4gICAgXCIwNTYgIyMjIyAjIyMjXCIsXG4gICAgXCIwODAwICMjIyAjIyMjXCIsXG4gICAgXCIwOCMjICMjIyAjIyMjXCIsXG4gICAgXCIwOSMjICMjIyAjIyMjXCIsXG4gICAgXCIwMTY5NzcgIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyNcIixcbiAgICBcIjA1MDAgIyMjIyMjXCIsXG4gICAgXCIwODAwICMjIyMjI1wiXG4gIF1cbn07XG5lbl9HQi5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDc0IyMgIyMjIyMjXCIsXG4gICAgXCIwNzUjIyAjIyMjIyNcIixcbiAgICBcIjA3NiMjICMjIyMjI1wiLFxuICAgIFwiMDc3IyMgIyMjIyMjXCIsXG4gICAgXCIwNzgjIyAjIyMjIyNcIixcbiAgICBcIjA3OSMjICMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fSU5EID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fSU5EO1xuZW5fSU5ELnRpdGxlID0gXCJJbmRpYSAoRW5nbGlzaClcIjtcbmVuX0lORC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFkcmlrYVwiLFxuICAgIFwiQWFuYW5kaW5paVwiLFxuICAgIFwiQWFyYXRyaWthXCIsXG4gICAgXCJBYXJ5YVwiLFxuICAgIFwiQXJ5YVwiLFxuICAgIFwiQWFzaHJpdGhhXCIsXG4gICAgXCJBYXRtYWphXCIsXG4gICAgXCJBdG1hamFcIixcbiAgICBcIkFiaGF5YVwiLFxuICAgIFwiQWR3aXRpeWFcIixcbiAgICBcIkFncmF0YVwiLFxuICAgIFwiQWhpbHlhXCIsXG4gICAgXCJBaGFseWFcIixcbiAgICBcIkFpc2hhbmlcIixcbiAgICBcIkFrc2hhaW5pZVwiLFxuICAgIFwiQWtzaGF0YVwiLFxuICAgIFwiQWtzaGl0YVwiLFxuICAgIFwiQWt1bGFcIixcbiAgICBcIkFtYmFyXCIsXG4gICAgXCJBbW9kaW5pXCIsXG4gICAgXCJBbXJpdGFcIixcbiAgICBcIkFtcml0YW1idVwiLFxuICAgIFwiQW5hbGFcIixcbiAgICBcIkFuYW1pa2FcIixcbiAgICBcIkFuYW5kYVwiLFxuICAgIFwiQW5hbmRhbWF5aVwiLFxuICAgIFwiQW5hbnRhXCIsXG4gICAgXCJBbmlsYVwiLFxuICAgIFwiQW5qYWxpXCIsXG4gICAgXCJBbmp1c2hyaVwiLFxuICAgIFwiQW5qdXNocmVlXCIsXG4gICAgXCJBbm5hcHVybmFcIixcbiAgICBcIkFuc2h1bGFcIixcbiAgICBcIkFudWphXCIsXG4gICAgXCJBbnVzdXlhXCIsXG4gICAgXCJBbmFzdXlhXCIsXG4gICAgXCJBbmFzb295YVwiLFxuICAgIFwiQW53ZXNoYVwiLFxuICAgIFwiQXBzYXJhXCIsXG4gICAgXCJBcnVuYVwiLFxuICAgIFwiQXNoYVwiLFxuICAgIFwiQWFzYVwiLFxuICAgIFwiQWFzaGFcIixcbiAgICBcIkFzbGVzaGFcIixcbiAgICBcIkF0cmV5aVwiLFxuICAgIFwiQXRyZXllZVwiLFxuICAgIFwiQXZhbmlcIixcbiAgICBcIkFiYW5pXCIsXG4gICAgXCJBdmFudGlrYVwiLFxuICAgIFwiQXl1c2htYXRpXCIsXG4gICAgXCJCYWlkZWhpXCIsXG4gICAgXCJWYWlkZWhpXCIsXG4gICAgXCJCYWxhXCIsXG4gICAgXCJCYWFsYVwiLFxuICAgIFwiQmFsYW1hbmlcIixcbiAgICBcIkJhc2FudGlcIixcbiAgICBcIlZhc2FudGlcIixcbiAgICBcIkJlbGFcIixcbiAgICBcIkJoYWRyYVwiLFxuICAgIFwiQmhhZ2lyYXRoaVwiLFxuICAgIFwiQmhhZ3dhbnRpXCIsXG4gICAgXCJCaGFnd2F0aVwiLFxuICAgIFwiQmhhbWluaVwiLFxuICAgIFwiQmhhbnVtYXRpXCIsXG4gICAgXCJCaGFhbnVtYXRpXCIsXG4gICAgXCJCaGFyZ2F2aVwiLFxuICAgIFwiQmhhdmFuaVwiLFxuICAgIFwiQmhpbGFuZ2FuYVwiLFxuICAgIFwiQmlsd2FcIixcbiAgICBcIkJpbHZhXCIsXG4gICAgXCJCdWRkaGFuYVwiLFxuICAgIFwiQ2hha3Jpa2FcIixcbiAgICBcIkNoYW5kYVwiLFxuICAgIFwiQ2hhbmRpXCIsXG4gICAgXCJDaGFuZG5pXCIsXG4gICAgXCJDaGFuZGluaVwiLFxuICAgIFwiQ2hhbmRhbmlcIixcbiAgICBcIkNoYW5kcmFcIixcbiAgICBcIkNoYW5kaXJhXCIsXG4gICAgXCJDaGFuZHJhYmhhZ2FcIixcbiAgICBcIkNoYW5kcmFrYWxhXCIsXG4gICAgXCJDaGFuZHJha2luXCIsXG4gICAgXCJDaGFuZHJhbWFuaVwiLFxuICAgIFwiQ2hhbmRyYW5pXCIsXG4gICAgXCJDaGFuZHJhcHJhYmhhXCIsXG4gICAgXCJDaGFuZHJhc3dhcm9vcGFcIixcbiAgICBcIkNoYW5kcmF2YXRpXCIsXG4gICAgXCJDaGFwYWxhXCIsXG4gICAgXCJDaGFydW1hdGlcIixcbiAgICBcIkNoYXJ2aVwiLFxuICAgIFwiQ2hhdHVyYVwiLFxuICAgIFwiQ2hpdHJhbGlcIixcbiAgICBcIkNoaXRyYW1hbGFcIixcbiAgICBcIkNoaXRyYW5nYWRhXCIsXG4gICAgXCJEYWtzaGFcIixcbiAgICBcIkRha3NoYXlhbmlcIixcbiAgICBcIkRhbWF5YW50aVwiLFxuICAgIFwiRGFyc2h3YW5hXCIsXG4gICAgXCJEZWVwYWxpXCIsXG4gICAgXCJEaXBhbGlcIixcbiAgICBcIkRlZXB0aW1veWVlXCIsXG4gICAgXCJEZWVwdGltYXllZVwiLFxuICAgIFwiRGV2YW5nYW5hXCIsXG4gICAgXCJEZXZhbmlcIixcbiAgICBcIkRldmFzcmVlXCIsXG4gICAgXCJEZXZpXCIsXG4gICAgXCJEYWV2aVwiLFxuICAgIFwiRGV2aWthXCIsXG4gICAgXCJEYWV2aWthXCIsXG4gICAgXCJEaGFhbnlhbGFrc2htaVwiLFxuICAgIFwiRGhhbmFsYWtzaG1pXCIsXG4gICAgXCJEaGFuYVwiLFxuICAgIFwiRGhhbmFkZWVwYVwiLFxuICAgIFwiRGhhcmFcIixcbiAgICBcIkRoYXJhbmlcIixcbiAgICBcIkRoYXJpdHJpXCIsXG4gICAgXCJEaGF0cmlcIixcbiAgICBcIkRpa3NoYVwiLFxuICAgIFwiRGVla3NoYVwiLFxuICAgIFwiRGl2eWFcIixcbiAgICBcIkRyYXVwYWRpXCIsXG4gICAgXCJEdWxhcmlcIixcbiAgICBcIkR1cmdhXCIsXG4gICAgXCJEdXJnZXNod2FyaVwiLFxuICAgIFwiRWthcGFybmlrYVwiLFxuICAgIFwiRWxha3NoaVwiLFxuICAgIFwiRW5ha3NoaVwiLFxuICAgIFwiRXNoYVwiLFxuICAgIFwiRXNoYW5hXCIsXG4gICAgXCJFc2hpdGFcIixcbiAgICBcIkdhdXRhbWlcIixcbiAgICBcIkdheWF0cmlcIixcbiAgICBcIkdlZXRhXCIsXG4gICAgXCJHZWV0YW5qYWxpXCIsXG4gICAgXCJHaXRhbmphbGlcIixcbiAgICBcIkdlbWluZVwiLFxuICAgIFwiR2VtaW5pXCIsXG4gICAgXCJHaXJqYVwiLFxuICAgIFwiR2lyaWphXCIsXG4gICAgXCJHaXRhXCIsXG4gICAgXCJIYW1zaW5pXCIsXG4gICAgXCJIYXJpbmFrc2hpXCIsXG4gICAgXCJIYXJpdGFcIixcbiAgICBcIkhlZW1hXCIsXG4gICAgXCJIaW1hZHJpXCIsXG4gICAgXCJIaW1hbmlcIixcbiAgICBcIkhpcmFueWFcIixcbiAgICBcIkluZGlyYVwiLFxuICAgIFwiSmFpbWluaVwiLFxuICAgIFwiSmF5YVwiLFxuICAgIFwiSnlvdGlcIixcbiAgICBcIkp5b3RzYW5hXCIsXG4gICAgXCJLYWxpXCIsXG4gICAgXCJLYWxpbmRhXCIsXG4gICAgXCJLYWxwYW5hXCIsXG4gICAgXCJLYWx5YW5pXCIsXG4gICAgXCJLYW1hXCIsXG4gICAgXCJLYW1hbGFcIixcbiAgICBcIkthbWxhXCIsXG4gICAgXCJLYW5jaGFuXCIsXG4gICAgXCJLYW5pc2hrYVwiLFxuICAgIFwiS2FudGlcIixcbiAgICBcIkthc2h5YXBpXCIsXG4gICAgXCJLdW1hcmlcIixcbiAgICBcIkt1bXVkYVwiLFxuICAgIFwiTGFrc2htaVwiLFxuICAgIFwiTGF4bWlcIixcbiAgICBcIkxhbGl0YVwiLFxuICAgIFwiTGF2YW55YVwiLFxuICAgIFwiTGVlbGFcIixcbiAgICBcIkxpbGFcIixcbiAgICBcIkxlZWxhXCIsXG4gICAgXCJNYWRodXJpXCIsXG4gICAgXCJNYWx0aVwiLFxuICAgIFwiTWFsYXRpXCIsXG4gICAgXCJNYW5kYWtpbmlcIixcbiAgICBcIk1hbmRhYWtpblwiLFxuICAgIFwiTWFuZ2FsYVwiLFxuICAgIFwiTWFuZ2FseWFcIixcbiAgICBcIk1hbmlcIixcbiAgICBcIk1hbmlzaGFcIixcbiAgICBcIk1hbmp1c2hhXCIsXG4gICAgXCJNZWVuYVwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiTWVlbmFrc2hpXCIsXG4gICAgXCJNaW5ha3NoaVwiLFxuICAgIFwiTWVua2FcIixcbiAgICBcIk1lbmFrYVwiLFxuICAgIFwiTW9oYW5hXCIsXG4gICAgXCJNb2hpbmlcIixcbiAgICBcIk5hbGluaVwiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJPamFzd2luaVwiLFxuICAgIFwiT21hbmFcIixcbiAgICBcIk9vcm1pbGFcIixcbiAgICBcIlVybWlsYVwiLFxuICAgIFwiT3BhbGluYVwiLFxuICAgIFwiT3BhbGluZVwiLFxuICAgIFwiUGFkbWFcIixcbiAgICBcIlBhcnZhdGlcIixcbiAgICBcIlBvb3JuaW1hXCIsXG4gICAgXCJQdXJuaW1hXCIsXG4gICAgXCJQcmFtaWxhXCIsXG4gICAgXCJQcmFzYW5uYVwiLFxuICAgIFwiUHJlaXR5XCIsXG4gICAgXCJQcmVtYVwiLFxuICAgIFwiUHJpeWFcIixcbiAgICBcIlByaXlhbGFcIixcbiAgICBcIlB1c2h0aVwiLFxuICAgIFwiUmFkaGFcIixcbiAgICBcIlJhZ2Vzd2FyaVwiLFxuICAgIFwiUmFnZXNod2FyaVwiLFxuICAgIFwiUmFqaW5kZXJcIixcbiAgICBcIlJhbWFhXCIsXG4gICAgXCJSYXRpXCIsXG4gICAgXCJSaXRhXCIsXG4gICAgXCJSb2hhbmFcIixcbiAgICBcIlJ1a2htYW5pXCIsXG4gICAgXCJSdWttaW5cIixcbiAgICBcIlJ1cGluZGVyXCIsXG4gICAgXCJTYW55YVwiLFxuICAgIFwiU2FyYWRhXCIsXG4gICAgXCJTaGFyZGFcIixcbiAgICBcIlNhcmFsYVwiLFxuICAgIFwiU2FybGFcIixcbiAgICBcIlNhcmFzd2F0aVwiLFxuICAgIFwiU2FyaXNoYVwiLFxuICAgIFwiU2Fyb2phXCIsXG4gICAgXCJTaGFrdGlcIixcbiAgICBcIlNoYWt1bnRhbGFcIixcbiAgICBcIlNoYW50aVwiLFxuICAgIFwiU2hhcm1pbGFcIixcbiAgICBcIlNoYXNoaVwiLFxuICAgIFwiU2hhc2hpa2FsYVwiLFxuICAgIFwiU2hlZWxhXCIsXG4gICAgXCJTaGl2YWthcmlcIixcbiAgICBcIlNob2JoYW5hXCIsXG4gICAgXCJTaHJlc3RoXCIsXG4gICAgXCJTaHJlc3RoaVwiLFxuICAgIFwiU2hyZXlhXCIsXG4gICAgXCJTaHJleWFzaGlcIixcbiAgICBcIlNocmlkZXZpXCIsXG4gICAgXCJTaHJpc2h0aVwiLFxuICAgIFwiU2h1YmhhXCIsXG4gICAgXCJTaHViaGFwcmFkYVwiLFxuICAgIFwiU2lkZGhpXCIsXG4gICAgXCJTaXRhcmFcIixcbiAgICBcIlNsb2thXCIsXG4gICAgXCJTbWl0YVwiLFxuICAgIFwiU21yaXRpXCIsXG4gICAgXCJTb21hXCIsXG4gICAgXCJTdWJoYXNoaW5pXCIsXG4gICAgXCJTdWJoYXNpbmlcIixcbiAgICBcIlN1Y2hldGFcIixcbiAgICBcIlN1ZGV2YVwiLFxuICAgIFwiU3VqYXRhXCIsXG4gICAgXCJTdWthbnlhXCIsXG4gICAgXCJTdW1hXCIsXG4gICAgXCJTdW1hXCIsXG4gICAgXCJTdW1pdHJhXCIsXG4gICAgXCJTdW5pdGFcIixcbiAgICBcIlN1cnlha2FudGFtXCIsXG4gICAgXCJTdXNobWFcIixcbiAgICBcIlN3YXJhXCIsXG4gICAgXCJTd2FybmFsYXRhXCIsXG4gICAgXCJTd2V0YVwiLFxuICAgIFwiU2h3ZXRcIixcbiAgICBcIlRhbmlyaWthXCIsXG4gICAgXCJUYW51c2hyZWVcIixcbiAgICBcIlRhbnVzaHJpXCIsXG4gICAgXCJUYW51c2hyaVwiLFxuICAgIFwiVGFueWFcIixcbiAgICBcIlRhcmFcIixcbiAgICBcIlRyaXNoYVwiLFxuICAgIFwiVW1hXCIsXG4gICAgXCJVc2hhXCIsXG4gICAgXCJWYWlqYXlhbnRpXCIsXG4gICAgXCJWYWlqYXlhbnRoaVwiLFxuICAgIFwiQmFpamF5YW50aVwiLFxuICAgIFwiVmFpc2h2aVwiLFxuICAgIFwiVmFpc2huYXZpXCIsXG4gICAgXCJWYWlzaG5vXCIsXG4gICAgXCJWYXJhbGFrc2htaVwiLFxuICAgIFwiVmFzdWRoYVwiLFxuICAgIFwiVmFzdW5kaGFyYVwiLFxuICAgIFwiVmVkYVwiLFxuICAgIFwiVmVkYW5zaGlcIixcbiAgICBcIlZpZHlhXCIsXG4gICAgXCJWaW1hbGFcIixcbiAgICBcIlZyaW5kYVwiLFxuICAgIFwiVnJ1bmRcIixcbiAgICBcIkFhZGlcIixcbiAgICBcIkFhZGlkZXZcIixcbiAgICBcIkFhZGluYXRoXCIsXG4gICAgXCJBYWRpdHlhXCIsXG4gICAgXCJBYWdhbVwiLFxuICAgIFwiQWFnbmV5XCIsXG4gICAgXCJBYW1vZFwiLFxuICAgIFwiQWFuYW5kYXN3YXJ1cFwiLFxuICAgIFwiQW5hbmQgU3dhcnVwXCIsXG4gICAgXCJBYW5qYW5leWFcIixcbiAgICBcIkFuamFuZXlhXCIsXG4gICAgXCJBYXJ5YW5cIixcbiAgICBcIkFyeWFuXCIsXG4gICAgXCJBYXRtYWpcIixcbiAgICBcIkFhdHJleWFcIixcbiAgICBcIkFheXVzaG1hYW5cIixcbiAgICBcIkFheXVzaG1hblwiLFxuICAgIFwiQWJoYWlkZXZcIixcbiAgICBcIkFiaGF5YVwiLFxuICAgIFwiQWJoaXJhdGhcIixcbiAgICBcIkFiaGlzeWFudGFcIixcbiAgICBcIkFjYXJ5YXRhbmF5YVwiLFxuICAgIFwiQWNoYWxlc3ZhcmFcIixcbiAgICBcIkFjaGFyeWFuYW5kYW5hXCIsXG4gICAgXCJBY2hhcnlhc3V0YVwiLFxuICAgIFwiQWNoaW50eWFcIixcbiAgICBcIkFjaHl1dFwiLFxuICAgIFwiQWRoZWVzaFwiLFxuICAgIFwiQWRoaXJhalwiLFxuICAgIFwiQWRocml0XCIsXG4gICAgXCJBZGlrYXZpXCIsXG4gICAgXCJBZGluYXRoXCIsXG4gICAgXCJBZGl0ZXlhXCIsXG4gICAgXCJBZGl0eWFcIixcbiAgICBcIkFkaXR5YW5hbmRhblwiLFxuICAgIFwiQWRpdHlhbmFuZGFuYVwiLFxuICAgIFwiQWRyaXBhdGhpXCIsXG4gICAgXCJBZHZheWFcIixcbiAgICBcIkFnYXN0aVwiLFxuICAgIFwiQWdhc3R5YVwiLFxuICAgIFwiQWduZXlhXCIsXG4gICAgXCJBYWduZXlhXCIsXG4gICAgXCJBZ25pbWl0cmFcIixcbiAgICBcIkFnbmlwcmF2YVwiLFxuICAgIFwiQWduaXZlc2hcIixcbiAgICBcIkFncmF0YVwiLFxuICAgIFwiQWppdFwiLFxuICAgIFwiQWplZXRcIixcbiAgICBcIkFrcm9vclwiLFxuICAgIFwiQWtzaGFqXCIsXG4gICAgXCJBa3NoYXRcIixcbiAgICBcIkFrc2hheWFrZWVydGlcIixcbiAgICBcIkFsb2tcIixcbiAgICBcIkFhbG9rXCIsXG4gICAgXCJBbWFyYW5hYXRoXCIsXG4gICAgXCJBbWFybmF0aFwiLFxuICAgIFwiQW1hcmVzaFwiLFxuICAgIFwiQW1iYXJcIixcbiAgICBcIkFtZXlhdG1hXCIsXG4gICAgXCJBbWlzaFwiLFxuICAgIFwiQW1vZ2hcIixcbiAgICBcIkFtcml0XCIsXG4gICAgXCJBbmFhZGlcIixcbiAgICBcIkFuYWdoXCIsXG4gICAgXCJBbmFsXCIsXG4gICAgXCJBbmFuZFwiLFxuICAgIFwiQWFuYW5kXCIsXG4gICAgXCJBbmFuZ1wiLFxuICAgIFwiQW5pbFwiLFxuICAgIFwiQW5pbGFhYmhcIixcbiAgICBcIkFuaWxhYmhcIixcbiAgICBcIkFuaXNoXCIsXG4gICAgXCJBbmthbFwiLFxuICAgIFwiQW51bmF5XCIsXG4gICAgXCJBbnVyYWdcIixcbiAgICBcIkFudXJhYWdcIixcbiAgICBcIkFyY2hhblwiLFxuICAgIFwiQXJpbmRhbVwiLFxuICAgIFwiQXJqdW5cIixcbiAgICBcIkFybmVzaFwiLFxuICAgIFwiQXJ1blwiLFxuICAgIFwiQXNobGVzaFwiLFxuICAgIFwiQXNob2tcIixcbiAgICBcIkF0bWFuYW5kXCIsXG4gICAgXCJBdG1hbmFuZGFcIixcbiAgICBcIkF2YWRoZXNoXCIsXG4gICAgXCJCYWFsYWFkaXR5YVwiLFxuICAgIFwiQmFsYWRpdHlhXCIsXG4gICAgXCJCYWFsYWdvcGFhbFwiLFxuICAgIFwiQmFsZ29wYWxcIixcbiAgICBcIkJhbGFnb3BhbFwiLFxuICAgIFwiQmFodWxhXCIsXG4gICAgXCJCYWt1bGFcIixcbiAgICBcIkJhbGFcIixcbiAgICBcIkJhbGFhZGl0eWFcIixcbiAgICBcIkJhbGFjaGFuZHJhXCIsXG4gICAgXCJCYWxhZ292aW5kXCIsXG4gICAgXCJCYW5kaHVcIixcbiAgICBcIkJhbmRodWxcIixcbiAgICBcIkJhbmtpbVwiLFxuICAgIFwiQmFua2ltY2hhbmRyYVwiLFxuICAgIFwiQmhhZHJha1wiLFxuICAgIFwiQmhhZHJha3NoXCIsXG4gICAgXCJCaGFkcmFuXCIsXG4gICAgXCJCaGFnYXZhYW5cIixcbiAgICBcIkJoYWd2YW5cIixcbiAgICBcIkJoYXJhZHdhalwiLFxuICAgIFwiQmhhcmR3YWpcIixcbiAgICBcIkJoYXJhdFwiLFxuICAgIFwiQmhhcmdhdmFcIixcbiAgICBcIkJoYXN2YW5cIixcbiAgICBcIkJoYWFzdmFuXCIsXG4gICAgXCJCaGFzd2FyXCIsXG4gICAgXCJCaGFhc3dhclwiLFxuICAgIFwiQmhhdW1pa1wiLFxuICAgIFwiQmhhdmVzXCIsXG4gICAgXCJCaGVlc2htYVwiLFxuICAgIFwiQmhpc2hhbVwiLFxuICAgIFwiQmhpc2htYVwiLFxuICAgIFwiQmhpbWFcIixcbiAgICBcIkJob2pcIixcbiAgICBcIkJocmFtYXJcIixcbiAgICBcIkJodWRldlwiLFxuICAgIFwiQmh1ZGV2YVwiLFxuICAgIFwiQmh1cGF0aVwiLFxuICAgIFwiQmhvb3BhdGlcIixcbiAgICBcIkJob29wYXRcIixcbiAgICBcIkJodXBlblwiLFxuICAgIFwiQmh1c2hhblwiLFxuICAgIFwiQmhvb3NoYW5cIixcbiAgICBcIkJodXNoaXRcIixcbiAgICBcIkJob29zaGl0XCIsXG4gICAgXCJCaHV2YW5lc2hcIixcbiAgICBcIkJodXZhbmVzaHdhclwiLFxuICAgIFwiQmlsdmFcIixcbiAgICBcIkJvZGhhblwiLFxuICAgIFwiQnJhaG1hXCIsXG4gICAgXCJCcmFobWFicmF0YVwiLFxuICAgIFwiQnJhaG1hbmFuZGFtXCIsXG4gICAgXCJCcmFobWFhbmFuZFwiLFxuICAgIFwiQnJhaG1kZXZcIixcbiAgICBcIkJyYWplbmRyYVwiLFxuICAgIFwiQnJhamVzaFwiLFxuICAgIFwiQnJpamVzaFwiLFxuICAgIFwiQmlyamVzaFwiLFxuICAgIFwiQnVkaGlsXCIsXG4gICAgXCJDaGFrb3JcIixcbiAgICBcIkNoYWtyYWRoYXJcIixcbiAgICBcIkNoYWtyYXZhcnRlZVwiLFxuICAgIFwiQ2hha3JhdmFydGlcIixcbiAgICBcIkNoYW5ha3lhXCIsXG4gICAgXCJDaGFhbmFreWFcIixcbiAgICBcIkNoYW5kYWtcIixcbiAgICBcIkNoYW5kYW5cIixcbiAgICBcIkNoYW5kcmFcIixcbiAgICBcIkNoYW5kcmFheWFuXCIsXG4gICAgXCJDaGFuZHJhYmhhblwiLFxuICAgIFwiQ2hhbmRyYWRldlwiLFxuICAgIFwiQ2hhbmRyYWtldHVcIixcbiAgICBcIkNoYW5kcmFtYXVsaVwiLFxuICAgIFwiQ2hhbmRyYW1vaGFuXCIsXG4gICAgXCJDaGFuZHJhblwiLFxuICAgIFwiQ2hhbmRyYW5hdGhcIixcbiAgICBcIkNoYXBhbFwiLFxuICAgIFwiQ2hhcmFrXCIsXG4gICAgXCJDaGFydWNoYW5kcmFcIixcbiAgICBcIkNoYWFydWNoYW5kcmFcIixcbiAgICBcIkNoYXJ1dnJhdFwiLFxuICAgIFwiQ2hhdHVyXCIsXG4gICAgXCJDaGF0dXJhYW5hblwiLFxuICAgIFwiQ2hhdHVyYmh1alwiLFxuICAgIFwiQ2hldGFuXCIsXG4gICAgXCJDaGF0ZW5cIixcbiAgICBcIkNoYWl0YW5cIixcbiAgICBcIkNoZXRhbmFhbmFuZFwiLFxuICAgIFwiQ2hpZGFha2Fhc2hcIixcbiAgICBcIkNoaWRhYXRtYVwiLFxuICAgIFwiQ2hpZGFtYmFyXCIsXG4gICAgXCJDaGlkYW1iYXJhbVwiLFxuICAgIFwiQ2hpZGFuYW5kYVwiLFxuICAgIFwiQ2hpbm1heWFuYW5kXCIsXG4gICAgXCJDaGlubWF5YW5hbmRhXCIsXG4gICAgXCJDaGlyYW5qZWV2XCIsXG4gICAgXCJDaGlyYW5qZWV2ZVwiLFxuICAgIFwiQ2hpdHJha3NoXCIsXG4gICAgXCJEYWl3aWtcIixcbiAgICBcIkRha3NoYVwiLFxuICAgIFwiRGFtb2RhcmFcIixcbiAgICBcIkRhbmRha1wiLFxuICAgIFwiRGFuZGFwYWFuaVwiLFxuICAgIFwiRGFyc2hhblwiLFxuICAgIFwiRGF0dGFcIixcbiAgICBcIkRheWFhbWF5XCIsXG4gICAgXCJEYXlhbWF5ZWVcIixcbiAgICBcIkRheWFhbmFuZGFcIixcbiAgICBcIkRheWFhbmlkaGlcIixcbiAgICBcIktpblwiLFxuICAgIFwiRGVlbmFiYW5kaHVcIixcbiAgICBcIkRlZXBhblwiLFxuICAgIFwiRGVlcGFua2FyXCIsXG4gICAgXCJEaXBhbmthclwiLFxuICAgIFwiRGVlcGVuZHJhXCIsXG4gICAgXCJEaXBlbmRyYVwiLFxuICAgIFwiRGVlcGVzaFwiLFxuICAgIFwiRGlwZXNoXCIsXG4gICAgXCJEZWVwdGFuc2h1XCIsXG4gICAgXCJEZWVwdGVuZHVcIixcbiAgICBcIkRpcHRlbmR1XCIsXG4gICAgXCJEZWVwdGltYW5cIixcbiAgICBcIkRlZXB0aW1veVwiLFxuICAgIFwiRGVlcHRpbWF5XCIsXG4gICAgXCJEZXZcIixcbiAgICBcIkRlYlwiLFxuICAgIFwiRGV2YWRhdHRcIixcbiAgICBcIkRldmFneWFcIixcbiAgICBcIkRldmFqeW90aVwiLFxuICAgIFwiRGV2YWtcIixcbiAgICBcIkRldmRhblwiLFxuICAgIFwiRGV2ZW5cIixcbiAgICBcIkRldmVzaFwiLFxuICAgIFwiRGV2ZXNod2FyXCIsXG4gICAgXCJEZXZpXCIsXG4gICAgXCJEZXZ2cmF0XCIsXG4gICAgXCJEaGFuYW5qYXlcIixcbiAgICBcIkRoYW5hcGF0aVwiLFxuICAgIFwiRGhhbnBhdGlcIixcbiAgICBcIkRoYW5lc2hcIixcbiAgICBcIkRoYW51XCIsXG4gICAgXCJEaGFudmluXCIsXG4gICAgXCJEaGFybWFrZXR1XCIsXG4gICAgXCJEaHJ1dlwiLFxuICAgIFwiRGh5YW5lc2hcIixcbiAgICBcIkRoeWFuZXNod2FyXCIsXG4gICAgXCJEaWdhbWJhclwiLFxuICAgIFwiRGlnYW1iYXJhXCIsXG4gICAgXCJEaW5ha2FyXCIsXG4gICAgXCJEaW5rYXJcIixcbiAgICBcIkRpbmVzaFwiLFxuICAgIFwiRGl2YWFrYXJcIixcbiAgICBcIkRpdmFrYXJcIixcbiAgICBcIkRlZXZha2FyXCIsXG4gICAgXCJEaXZqb3RcIixcbiAgICBcIkRyb25cIixcbiAgICBcIkRyb25hXCIsXG4gICAgXCJEd2FpcGF5YW5cIixcbiAgICBcIkR3YWlwYXlhbmFcIixcbiAgICBcIkVla2FsYWJ5YVwiLFxuICAgIFwiRWthbGF2eWFcIixcbiAgICBcIkVrYWtzaFwiLFxuICAgIFwiRWthYWtzaFwiLFxuICAgIFwiRWthbGluZ1wiLFxuICAgIFwiRWtkYW50XCIsXG4gICAgXCJFa2FkYW50XCIsXG4gICAgXCJHYWphYWRoYXJcIixcbiAgICBcIkdhamFkaGFyXCIsXG4gICAgXCJHYWpiYWFodVwiLFxuICAgIFwiR2FqYWJhaHVcIixcbiAgICBcIkdhbmFrXCIsXG4gICAgXCJHYW5ha2FcIixcbiAgICBcIkdhbmFwYXRpXCIsXG4gICAgXCJHYW5kaGFydlwiLFxuICAgIFwiR2FuZGhhcnZhXCIsXG4gICAgXCJHYW5lc2hcIixcbiAgICBcIkdhbmdlc2hcIixcbiAgICBcIkdhcnVkXCIsXG4gICAgXCJHYXJ1ZGFcIixcbiAgICBcIkdhdGlcIixcbiAgICBcIkdhdGlrXCIsXG4gICAgXCJHYXVyYW5nXCIsXG4gICAgXCJHYXVyYWFuZ1wiLFxuICAgIFwiR2F1cmFuZ2FcIixcbiAgICBcIkdvdXJhbmdhXCIsXG4gICAgXCJHYXV0YW1cIixcbiAgICBcIkdhdXRhbWFcIixcbiAgICBcIkdvdXRhbVwiLFxuICAgIFwiR2hhbmFhbmFuZFwiLFxuICAgIFwiR2hhbnNoeWFtXCIsXG4gICAgXCJHaGFuYXNoeWFtXCIsXG4gICAgXCJHaXJpXCIsXG4gICAgXCJHaXJpa1wiLFxuICAgIFwiR2lyaWthXCIsXG4gICAgXCJHaXJpbmRyYVwiLFxuICAgIFwiR2lyaXJhYWpcIixcbiAgICBcIkdpcmlyYWpcIixcbiAgICBcIkdpcmlzaFwiLFxuICAgIFwiR29wYWxcIixcbiAgICBcIkdvcGFhbFwiLFxuICAgIFwiR29waVwiLFxuICAgIFwiR29wZWVcIixcbiAgICBcIkdvcmFraG5hdGhcIixcbiAgICBcIkdvcmFraGFuYXRoYVwiLFxuICAgIFwiR29zd2FtZWVcIixcbiAgICBcIkdvc3dhbWlcIixcbiAgICBcIkdvdHVtXCIsXG4gICAgXCJHYXV0YW1cIixcbiAgICBcIkdvdmluZGFcIixcbiAgICBcIkdvYmluZGFcIixcbiAgICBcIkd1ZGFrZXNoYVwiLFxuICAgIFwiR3VkYWtlc2FcIixcbiAgICBcIkd1cmRldlwiLFxuICAgIFwiR3VydVwiLFxuICAgIFwiSGFyaVwiLFxuICAgIFwiSGFyaW5hcmF5YW5cIixcbiAgICBcIkhhcml0XCIsXG4gICAgXCJIaW1hZHJpXCIsXG4gICAgXCJIaXJhbm1heVwiLFxuICAgIFwiSGlyYW5tYXlhXCIsXG4gICAgXCJIaXJhbnlhXCIsXG4gICAgXCJJbmRlclwiLFxuICAgIFwiSW5kcmFcIixcbiAgICBcIkluZHJhXCIsXG4gICAgXCJKYWdhZGlzaFwiLFxuICAgIFwiSmFnYWRpc2hhXCIsXG4gICAgXCJKYWdhdGhpXCIsXG4gICAgXCJKYWdkZWVwXCIsXG4gICAgXCJKYWdkaXNoXCIsXG4gICAgXCJKYWdtZWV0XCIsXG4gICAgXCJKYWhudVwiLFxuICAgIFwiSmFpXCIsXG4gICAgXCJKYXZhc1wiLFxuICAgIFwiSmF5XCIsXG4gICAgXCJKaXRlbmRyYVwiLFxuICAgIFwiSml0ZW5kZXJcIixcbiAgICBcIkp5b3Rpc1wiLFxuICAgIFwiS2FpbGFzaFwiLFxuICAgIFwiS2FtYVwiLFxuICAgIFwiS2FtYWxlc2hcIixcbiAgICBcIkthbWxlc2hcIixcbiAgICBcIkthbmFrXCIsXG4gICAgXCJLYW5ha2FcIixcbiAgICBcIkthbm5hblwiLFxuICAgIFwiS2FubmVuXCIsXG4gICAgXCJLYXJhblwiLFxuICAgIFwiS2FydGhpa1wiLFxuICAgIFwiS2FydGlrXCIsXG4gICAgXCJLYXJ1bmFuaWRoaVwiLFxuICAgIFwiS2FzaHlhcFwiLFxuICAgIFwiS2lyYW5cIixcbiAgICBcIktpcnRpXCIsXG4gICAgXCJLZWVydGlcIixcbiAgICBcIktyaXNobmFcIixcbiAgICBcIktyaXNobmFkYXNcIixcbiAgICBcIktyaXNobmFkYXNhXCIsXG4gICAgXCJLdW1hclwiLFxuICAgIFwiTGFpXCIsXG4gICAgXCJMYWtzaG1hblwiLFxuICAgIFwiTGF4bWFuXCIsXG4gICAgXCJMYWtzaG1pZGhhclwiLFxuICAgIFwiTGFrc2htaW5hdGhcIixcbiAgICBcIkxhbFwiLFxuICAgIFwiTGFhbFwiLFxuICAgIFwiTWFoZW5kcmFcIixcbiAgICBcIk1vaGluZGVyXCIsXG4gICAgXCJNYWhlc2hcIixcbiAgICBcIk1haGVzd2FyXCIsXG4gICAgXCJNYW5pXCIsXG4gICAgXCJNYW5pa1wiLFxuICAgIFwiTWFuaWt5YVwiLFxuICAgIFwiTWFub2pcIixcbiAgICBcIk1hcnV0XCIsXG4gICAgXCJNYXlvb3JcIixcbiAgICBcIk1lZ2huYWRcIixcbiAgICBcIk1lZ2huYXRoXCIsXG4gICAgXCJNb2hhblwiLFxuICAgIFwiTXVrZXNoXCIsXG4gICAgXCJNdWt1bFwiLFxuICAgIFwiTmFnYWJodXNoYW5hbVwiLFxuICAgIFwiTmFuZGFcIixcbiAgICBcIk5hcmF5YW5cIixcbiAgICBcIk5hcmVuZHJhXCIsXG4gICAgXCJOYXJpbmRlclwiLFxuICAgIFwiTmF2ZWVuXCIsXG4gICAgXCJOYXZpblwiLFxuICAgIFwiTmF3YWxcIixcbiAgICBcIk5hdmFsXCIsXG4gICAgXCJOaW1pdFwiLFxuICAgIFwiTmlyYW5qYW5cIixcbiAgICBcIk5pcmJoYXlcIixcbiAgICBcIk5pcm9cIixcbiAgICBcIlBhcmFtXCIsXG4gICAgXCJQYXJhbWFydGhhXCIsXG4gICAgXCJQcmFuXCIsXG4gICAgXCJQcmFuYXlcIixcbiAgICBcIlByYXNhZFwiLFxuICAgIFwiUHJhdGhhbWVzaFwiLFxuICAgIFwiUHJheWFnXCIsXG4gICAgXCJQcmVtXCIsXG4gICAgXCJQdW5lZXRcIixcbiAgICBcIlB1cnVzaG90dGFtXCIsXG4gICAgXCJSYWh1bFwiLFxuICAgIFwiUmFqXCIsXG4gICAgXCJSYWphblwiLFxuICAgIFwiUmFqZW5kcmFcIixcbiAgICBcIlJhamluZGVyXCIsXG4gICAgXCJSYWppdlwiLFxuICAgIFwiUmFrZXNoXCIsXG4gICAgXCJSYW1lc2hcIixcbiAgICBcIlJhbWVzaHdhclwiLFxuICAgIFwiUmFuaml0XCIsXG4gICAgXCJSYW5qZWV0XCIsXG4gICAgXCJSYXZpXCIsXG4gICAgXCJSaXRlc2hcIixcbiAgICBcIlJvaGFuXCIsXG4gICAgXCJSb2hpdFwiLFxuICAgIFwiUnVkcmFcIixcbiAgICBcIlNhY2hpblwiLFxuICAgIFwiU2FtZWVyXCIsXG4gICAgXCJTYW1pclwiLFxuICAgIFwiU2FuamF5XCIsXG4gICAgXCJTYW5rYVwiLFxuICAgIFwiU2FydmluXCIsXG4gICAgXCJTYXRpc2hcIixcbiAgICBcIlNhdHllblwiLFxuICAgIFwiU2hhbmthclwiLFxuICAgIFwiU2hhbnRhbnVcIixcbiAgICBcIlNoYXNoaVwiLFxuICAgIFwiU2hlclwiLFxuICAgIFwiU2hpdlwiLFxuICAgIFwiU2lkZGFydGhcIixcbiAgICBcIlNpZGRocmFuXCIsXG4gICAgXCJTb21cIixcbiAgICBcIlNvbXVcIixcbiAgICBcIlNvbW5hdGhcIixcbiAgICBcIlN1Ymhhc2hcIixcbiAgICBcIlN1Ym9kaFwiLFxuICAgIFwiU3VtYW5cIixcbiAgICBcIlN1cmVzaFwiLFxuICAgIFwiU3VyeWFcIixcbiAgICBcIlN1cnlha2FudFwiLFxuICAgIFwiU3VyeWFrYW50YVwiLFxuICAgIFwiU3VzaGlsXCIsXG4gICAgXCJTdXNoZWVsXCIsXG4gICAgXCJTd2FtaVwiLFxuICAgIFwiU3dhcG5pbFwiLFxuICAgIFwiVGFwYW5cIixcbiAgICBcIlRhcmFcIixcbiAgICBcIlRhcnVuXCIsXG4gICAgXCJUZWpcIixcbiAgICBcIlRlamFzXCIsXG4gICAgXCJUcmlsb2NoYW5cIixcbiAgICBcIlRyaWxvY2hhbmFcIixcbiAgICBcIlRyaWxva1wiLFxuICAgIFwiVHJpbG9rZXNoXCIsXG4gICAgXCJUcmlsb2tpXCIsXG4gICAgXCJUcmlsb2tpIE5hdGhcIixcbiAgICBcIlRyaWxva2FuYXRoXCIsXG4gICAgXCJUdXNoYXJcIixcbiAgICBcIlVkYWlcIixcbiAgICBcIlVkaXRcIixcbiAgICBcIlVqamF3YWxcIixcbiAgICBcIlVqandhbFwiLFxuICAgIFwiVW1hbmdcIixcbiAgICBcIlVwZW5kcmFcIixcbiAgICBcIlV0dGFtXCIsXG4gICAgXCJWYXN1ZGV2XCIsXG4gICAgXCJWYXN1ZGV2YVwiLFxuICAgIFwiVmVkYW5nXCIsXG4gICAgXCJWZWRhbmdhXCIsXG4gICAgXCJWaWRoeWFcIixcbiAgICBcIlZpZHVyXCIsXG4gICAgXCJWaWRodXJcIixcbiAgICBcIlZpamF5XCIsXG4gICAgXCJWaW1hbFwiLFxuICAgIFwiVmluYXlcIixcbiAgICBcIlZpc2hudVwiLFxuICAgIFwiQmlzaG51XCIsXG4gICAgXCJWaXNod2FtaXRyYVwiLFxuICAgIFwiVnlhc1wiLFxuICAgIFwiWW9nZW5kcmFcIixcbiAgICBcIllvZ2luZGVyXCIsXG4gICAgXCJZb2dlc2hcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBYmJvdHRcIixcbiAgICBcIkFjaGFyaVwiLFxuICAgIFwiQWNoYXJ5YVwiLFxuICAgIFwiQWRpZ2FcIixcbiAgICBcIkFnYXJ3YWxcIixcbiAgICBcIkFobHV3YWxpYVwiLFxuICAgIFwiQWh1amFcIixcbiAgICBcIkFyb3JhXCIsXG4gICAgXCJBc2FuXCIsXG4gICAgXCJCYW5kb3BhZGh5YXlcIixcbiAgICBcIkJhbmVyamVlXCIsXG4gICAgXCJCaGFyYWR3YWpcIixcbiAgICBcIkJoYXRcIixcbiAgICBcIkJ1dHRcIixcbiAgICBcIkJoYXR0YWNoYXJ5YVwiLFxuICAgIFwiQmhhdHRhdGhpcmlcIixcbiAgICBcIkNoYXR1cnZlZGlcIixcbiAgICBcIkNoYXR0b3BhZGh5YXlcIixcbiAgICBcIkNob3ByYVwiLFxuICAgIFwiRGVzYWlcIixcbiAgICBcIkRlc2hwYW5kZVwiLFxuICAgIFwiRGV2YXJcIixcbiAgICBcIkRoYXdhblwiLFxuICAgIFwiRHViYXNoaVwiLFxuICAgIFwiRHV0dGFcIixcbiAgICBcIkR3aXZlZGlcIixcbiAgICBcIkVtYnJhbnRoaXJpXCIsXG4gICAgXCJHYW5ha2FcIixcbiAgICBcIkdhbmRoaVwiLFxuICAgIFwiR2lsbFwiLFxuICAgIFwiR293ZGFcIixcbiAgICBcIkd1aGFcIixcbiAgICBcIkd1bmV0YVwiLFxuICAgIFwiR3VwdGFcIixcbiAgICBcIkl5ZXJcIixcbiAgICBcIkl5ZW5nYXJcIixcbiAgICBcIkphaW5cIixcbiAgICBcIkpoYVwiLFxuICAgIFwiSm9oYXJcIixcbiAgICBcIkpvc2hpXCIsXG4gICAgXCJLYWtrYXJcIixcbiAgICBcIkthbml5YXJcIixcbiAgICBcIkthcG9vclwiLFxuICAgIFwiS2F1bFwiLFxuICAgIFwiS2F1clwiLFxuICAgIFwiS2hhblwiLFxuICAgIFwiS2hhbm5hXCIsXG4gICAgXCJLaGF0cmlcIixcbiAgICBcIktvY2NoYXJcIixcbiAgICBcIk1haGFqYW5cIixcbiAgICBcIk1hbGlrXCIsXG4gICAgXCJNYXJhclwiLFxuICAgIFwiTWVub25cIixcbiAgICBcIk1laHJhXCIsXG4gICAgXCJNZWhyb3RyYVwiLFxuICAgIFwiTWlzaHJhXCIsXG4gICAgXCJNdWtob3BhZGh5YXlcIixcbiAgICBcIk5heWFyXCIsXG4gICAgXCJOYWlrXCIsXG4gICAgXCJOYWlyXCIsXG4gICAgXCJOYW1iZWVzYW5cIixcbiAgICBcIk5hbWJvb3RoaXJpXCIsXG4gICAgXCJOZWhydVwiLFxuICAgIFwiUGFuZGV5XCIsXG4gICAgXCJQYW5pY2tlclwiLFxuICAgIFwiUGF0ZWxcIixcbiAgICBcIlBhdGlsXCIsXG4gICAgXCJQaWxsYVwiLFxuICAgIFwiUGlsbGFpXCIsXG4gICAgXCJQb3RodXZhYWxcIixcbiAgICBcIlByYWphcGF0XCIsXG4gICAgXCJSYW5hXCIsXG4gICAgXCJSZWRkeVwiLFxuICAgIFwiU2FpbmlcIixcbiAgICBcIlNldGhpXCIsXG4gICAgXCJTaGFoXCIsXG4gICAgXCJTaGFybWFcIixcbiAgICBcIlNodWtsYVwiLFxuICAgIFwiU2luZ2hcIixcbiAgICBcIlNpbmhhXCIsXG4gICAgXCJTb21heWFqaVwiLFxuICAgIFwiVGFnb3JlXCIsXG4gICAgXCJUYWx3YXJcIixcbiAgICBcIlRhbmRvblwiLFxuICAgIFwiVHJpdmVkaVwiLFxuICAgIFwiVmFycmllclwiLFxuICAgIFwiVmFybWFcIixcbiAgICBcIlZhcm1hblwiLFxuICAgIFwiVmVybWFcIlxuICBdXG59O1xuZW5fSU5ELmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiPyM/ICM/I1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQW5kcmEgUHJhZGVzaFwiLFxuICAgIFwiQXJ1bmFjaGFsIFByYWRlc2hcIixcbiAgICBcIkFzc2FtXCIsXG4gICAgXCJCaWhhclwiLFxuICAgIFwiQ2hoYXR0aXNnYXJoXCIsXG4gICAgXCJHb2FcIixcbiAgICBcIkd1amFyYXRcIixcbiAgICBcIkhhcnlhbmFcIixcbiAgICBcIkhpbWFjaGFsIFByYWRlc2hcIixcbiAgICBcIkphbW11IGFuZCBLYXNobWlyXCIsXG4gICAgXCJKaGFya2hhbmRcIixcbiAgICBcIkthcm5hdGFrYVwiLFxuICAgIFwiS2VyYWxhXCIsXG4gICAgXCJNYWR5YSBQcmFkZXNoXCIsXG4gICAgXCJNYWhhcmFzaHRyYVwiLFxuICAgIFwiTWFuaXB1clwiLFxuICAgIFwiTWVnaGFsYXlhXCIsXG4gICAgXCJNaXpvcmFtXCIsXG4gICAgXCJOYWdhbGFuZFwiLFxuICAgIFwiT3Jpc3NhXCIsXG4gICAgXCJQdW5qYWJcIixcbiAgICBcIlJhamFzdGhhblwiLFxuICAgIFwiU2lra2ltXCIsXG4gICAgXCJUYW1pbCBOYWR1XCIsXG4gICAgXCJUcmlwdXJhXCIsXG4gICAgXCJVdHRhcmFuY2hhbFwiLFxuICAgIFwiVXR0YXIgUHJhZGVzaFwiLFxuICAgIFwiV2VzdCBCZW5nYWxcIixcbiAgICBcIkFuZGFtYW4gYW5kIE5pY29iYXIgSXNsYW5kc1wiLFxuICAgIFwiQ2hhbmRpZ2FyaFwiLFxuICAgIFwiRGFkYXIgYW5kIE5hZ2FyIEhhdmVsaVwiLFxuICAgIFwiRGFtYW4gYW5kIERpdVwiLFxuICAgIFwiRGVsaGlcIixcbiAgICBcIkxha3NoYWR3ZWVwXCIsXG4gICAgXCJQb25kaWNoZXJyeVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBUFwiLFxuICAgIFwiQVJcIixcbiAgICBcIkFTXCIsXG4gICAgXCJCUlwiLFxuICAgIFwiQ0dcIixcbiAgICBcIkRMXCIsXG4gICAgXCJHQVwiLFxuICAgIFwiR0pcIixcbiAgICBcIkhSXCIsXG4gICAgXCJIUFwiLFxuICAgIFwiSktcIixcbiAgICBcIkpTXCIsXG4gICAgXCJLQVwiLFxuICAgIFwiS0xcIixcbiAgICBcIk1QXCIsXG4gICAgXCJNSFwiLFxuICAgIFwiTU5cIixcbiAgICBcIk1MXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiTkxcIixcbiAgICBcIk9SXCIsXG4gICAgXCJQQlwiLFxuICAgIFwiUkpcIixcbiAgICBcIlNLXCIsXG4gICAgXCJUTlwiLFxuICAgIFwiVFJcIixcbiAgICBcIlVLXCIsXG4gICAgXCJVUFwiLFxuICAgIFwiV0JcIixcbiAgICBcIkFOXCIsXG4gICAgXCJDSFwiLFxuICAgIFwiRE5cIixcbiAgICBcIkREXCIsXG4gICAgXCJMRFwiLFxuICAgIFwiUFlcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWFuIFJlcHVibGljXCIsXG4gICAgXCJCaGFyYXRcIixcbiAgICBcIkhpbmR1c3RhblwiXG4gIF1cbn07XG5lbl9JTkQuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvLmluXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJpblwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCIsXG4gICAgXCJjby5pblwiXG4gIF1cbn07XG5lbl9JTkQuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHZ0IEx0ZFwiLFxuICAgIFwiTGltaXRlZFwiLFxuICAgIFwiTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCJcbiAgXVxufTtcbmVuX0lORC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIrOTEjIyMtIyMjLSMjIyNcIixcbiAgICBcIis5MSMjIyMjIyMjIyNcIixcbiAgICBcIis5MS0jIyMtIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fVVMgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9VUztcbmVuX1VTLnRpdGxlID0gXCJVbml0ZWQgU3RhdGVzIChFbmdsaXNoKVwiO1xuZW5fVVMuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcInVzXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX1VTLmFkZHJlc3MgPSB7XG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIlVuaXRlZCBTdGF0ZXNcIixcbiAgICBcIlVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYVwiLFxuICAgIFwiVVNBXCJcbiAgXSxcbiAgXCJwb3N0Y29kZV9ieV9zdGF0ZVwiOiB7XG4gICAgXCJBTFwiOiBcIjM1MCMjXCIsXG4gICAgXCJBS1wiOiBcIjk5NSMjXCIsXG4gICAgXCJBU1wiOiBcIjk2NyMjXCIsXG4gICAgXCJBWlwiOiBcIjg1MCMjXCIsXG4gICAgXCJBUlwiOiBcIjcxNyMjXCIsXG4gICAgXCJDQVwiOiBcIjkwMCMjXCIsXG4gICAgXCJDT1wiOiBcIjgwMCMjXCIsXG4gICAgXCJDVFwiOiBcIjA2MSMjXCIsXG4gICAgXCJEQ1wiOiBcIjIwNCMjXCIsXG4gICAgXCJERVwiOiBcIjE5OCMjXCIsXG4gICAgXCJGTFwiOiBcIjMyMiMjXCIsXG4gICAgXCJHQVwiOiBcIjMwMSMjXCIsXG4gICAgXCJISVwiOiBcIjk2NyMjXCIsXG4gICAgXCJJRFwiOiBcIjgzMiMjXCIsXG4gICAgXCJJTFwiOiBcIjYwMCMjXCIsXG4gICAgXCJJTlwiOiBcIjQ2MyMjXCIsXG4gICAgXCJJQVwiOiBcIjUxMCMjXCIsXG4gICAgXCJLU1wiOiBcIjY2NiMjXCIsXG4gICAgXCJLWVwiOiBcIjQwNCMjXCIsXG4gICAgXCJMQVwiOiBcIjcwMSMjXCIsXG4gICAgXCJNRVwiOiBcIjA0MiMjXCIsXG4gICAgXCJNRFwiOiBcIjIxMCMjXCIsXG4gICAgXCJNQVwiOiBcIjAyNiMjXCIsXG4gICAgXCJNSVwiOiBcIjQ4MCMjXCIsXG4gICAgXCJNTlwiOiBcIjU1NSMjXCIsXG4gICAgXCJNU1wiOiBcIjM4NyMjXCIsXG4gICAgXCJNT1wiOiBcIjY1MCMjXCIsXG4gICAgXCJNVFwiOiBcIjU5MCMjXCIsXG4gICAgXCJORVwiOiBcIjY4OCMjXCIsXG4gICAgXCJOVlwiOiBcIjg5OCMjXCIsXG4gICAgXCJOSFwiOiBcIjAzNiMjXCIsXG4gICAgXCJOSlwiOiBcIjA3NiMjXCIsXG4gICAgXCJOTVwiOiBcIjg4MCMjXCIsXG4gICAgXCJOWVwiOiBcIjEyMiMjXCIsXG4gICAgXCJOQ1wiOiBcIjI4OCMjXCIsXG4gICAgXCJORFwiOiBcIjU4NiMjXCIsXG4gICAgXCJPSFwiOiBcIjQ0NCMjXCIsXG4gICAgXCJPS1wiOiBcIjczMCMjXCIsXG4gICAgXCJPUlwiOiBcIjk3OSMjXCIsXG4gICAgXCJQQVwiOiBcIjE4NiMjXCIsXG4gICAgXCJSSVwiOiBcIjAyOSMjXCIsXG4gICAgXCJTQ1wiOiBcIjI5OSMjXCIsXG4gICAgXCJTRFwiOiBcIjU3NyMjXCIsXG4gICAgXCJUTlwiOiBcIjM4MyMjXCIsXG4gICAgXCJUWFwiOiBcIjc5OCMjXCIsXG4gICAgXCJVVFwiOiBcIjg0NyMjXCIsXG4gICAgXCJWVFwiOiBcIjA1MCMjXCIsXG4gICAgXCJWQVwiOiBcIjIyMiMjXCIsXG4gICAgXCJXQVwiOiBcIjk5MCMjXCIsXG4gICAgXCJXVlwiOiBcIjI0NyMjXCIsXG4gICAgXCJXSVwiOiBcIjU0OSMjXCIsXG4gICAgXCJXWVwiOiBcIjgzMSMjXCJcbiAgfVxufTtcbmVuX1VTLnBob25lX251bWJlciA9IHtcbiAgXCJhcmVhX2NvZGVcIjogW1xuICAgIFwiMjAxXCIsXG4gICAgXCIyMDJcIixcbiAgICBcIjIwM1wiLFxuICAgIFwiMjA1XCIsXG4gICAgXCIyMDZcIixcbiAgICBcIjIwN1wiLFxuICAgIFwiMjA4XCIsXG4gICAgXCIyMDlcIixcbiAgICBcIjIxMFwiLFxuICAgIFwiMjEyXCIsXG4gICAgXCIyMTNcIixcbiAgICBcIjIxNFwiLFxuICAgIFwiMjE1XCIsXG4gICAgXCIyMTZcIixcbiAgICBcIjIxN1wiLFxuICAgIFwiMjE4XCIsXG4gICAgXCIyMTlcIixcbiAgICBcIjIyNFwiLFxuICAgIFwiMjI1XCIsXG4gICAgXCIyMjdcIixcbiAgICBcIjIyOFwiLFxuICAgIFwiMjI5XCIsXG4gICAgXCIyMzFcIixcbiAgICBcIjIzNFwiLFxuICAgIFwiMjM5XCIsXG4gICAgXCIyNDBcIixcbiAgICBcIjI0OFwiLFxuICAgIFwiMjUxXCIsXG4gICAgXCIyNTJcIixcbiAgICBcIjI1M1wiLFxuICAgIFwiMjU0XCIsXG4gICAgXCIyNTZcIixcbiAgICBcIjI2MFwiLFxuICAgIFwiMjYyXCIsXG4gICAgXCIyNjdcIixcbiAgICBcIjI2OVwiLFxuICAgIFwiMjcwXCIsXG4gICAgXCIyNzZcIixcbiAgICBcIjI4MVwiLFxuICAgIFwiMjgzXCIsXG4gICAgXCIzMDFcIixcbiAgICBcIjMwMlwiLFxuICAgIFwiMzAzXCIsXG4gICAgXCIzMDRcIixcbiAgICBcIjMwNVwiLFxuICAgIFwiMzA3XCIsXG4gICAgXCIzMDhcIixcbiAgICBcIjMwOVwiLFxuICAgIFwiMzEwXCIsXG4gICAgXCIzMTJcIixcbiAgICBcIjMxM1wiLFxuICAgIFwiMzE0XCIsXG4gICAgXCIzMTVcIixcbiAgICBcIjMxNlwiLFxuICAgIFwiMzE3XCIsXG4gICAgXCIzMThcIixcbiAgICBcIjMxOVwiLFxuICAgIFwiMzIwXCIsXG4gICAgXCIzMjFcIixcbiAgICBcIjMyM1wiLFxuICAgIFwiMzMwXCIsXG4gICAgXCIzMzFcIixcbiAgICBcIjMzNFwiLFxuICAgIFwiMzM2XCIsXG4gICAgXCIzMzdcIixcbiAgICBcIjMzOVwiLFxuICAgIFwiMzQ3XCIsXG4gICAgXCIzNTFcIixcbiAgICBcIjM1MlwiLFxuICAgIFwiMzYwXCIsXG4gICAgXCIzNjFcIixcbiAgICBcIjM4NlwiLFxuICAgIFwiNDAxXCIsXG4gICAgXCI0MDJcIixcbiAgICBcIjQwNFwiLFxuICAgIFwiNDA1XCIsXG4gICAgXCI0MDZcIixcbiAgICBcIjQwN1wiLFxuICAgIFwiNDA4XCIsXG4gICAgXCI0MDlcIixcbiAgICBcIjQxMFwiLFxuICAgIFwiNDEyXCIsXG4gICAgXCI0MTNcIixcbiAgICBcIjQxNFwiLFxuICAgIFwiNDE1XCIsXG4gICAgXCI0MTdcIixcbiAgICBcIjQxOVwiLFxuICAgIFwiNDIzXCIsXG4gICAgXCI0MjRcIixcbiAgICBcIjQyNVwiLFxuICAgIFwiNDM0XCIsXG4gICAgXCI0MzVcIixcbiAgICBcIjQ0MFwiLFxuICAgIFwiNDQzXCIsXG4gICAgXCI0NDVcIixcbiAgICBcIjQ2NFwiLFxuICAgIFwiNDY5XCIsXG4gICAgXCI0NzBcIixcbiAgICBcIjQ3NVwiLFxuICAgIFwiNDc4XCIsXG4gICAgXCI0NzlcIixcbiAgICBcIjQ4MFwiLFxuICAgIFwiNDg0XCIsXG4gICAgXCI1MDFcIixcbiAgICBcIjUwMlwiLFxuICAgIFwiNTAzXCIsXG4gICAgXCI1MDRcIixcbiAgICBcIjUwNVwiLFxuICAgIFwiNTA3XCIsXG4gICAgXCI1MDhcIixcbiAgICBcIjUwOVwiLFxuICAgIFwiNTEwXCIsXG4gICAgXCI1MTJcIixcbiAgICBcIjUxM1wiLFxuICAgIFwiNTE1XCIsXG4gICAgXCI1MTZcIixcbiAgICBcIjUxN1wiLFxuICAgIFwiNTE4XCIsXG4gICAgXCI1MjBcIixcbiAgICBcIjUzMFwiLFxuICAgIFwiNTQwXCIsXG4gICAgXCI1NDFcIixcbiAgICBcIjU1MVwiLFxuICAgIFwiNTU3XCIsXG4gICAgXCI1NTlcIixcbiAgICBcIjU2MVwiLFxuICAgIFwiNTYyXCIsXG4gICAgXCI1NjNcIixcbiAgICBcIjU2NFwiLFxuICAgIFwiNTY3XCIsXG4gICAgXCI1NzBcIixcbiAgICBcIjU3MVwiLFxuICAgIFwiNTczXCIsXG4gICAgXCI1NzRcIixcbiAgICBcIjU4MFwiLFxuICAgIFwiNTg1XCIsXG4gICAgXCI1ODZcIixcbiAgICBcIjYwMVwiLFxuICAgIFwiNjAyXCIsXG4gICAgXCI2MDNcIixcbiAgICBcIjYwNVwiLFxuICAgIFwiNjA2XCIsXG4gICAgXCI2MDdcIixcbiAgICBcIjYwOFwiLFxuICAgIFwiNjA5XCIsXG4gICAgXCI2MTBcIixcbiAgICBcIjYxMlwiLFxuICAgIFwiNjE0XCIsXG4gICAgXCI2MTVcIixcbiAgICBcIjYxNlwiLFxuICAgIFwiNjE3XCIsXG4gICAgXCI2MThcIixcbiAgICBcIjYxOVwiLFxuICAgIFwiNjIwXCIsXG4gICAgXCI2MjNcIixcbiAgICBcIjYyNlwiLFxuICAgIFwiNjMwXCIsXG4gICAgXCI2MzFcIixcbiAgICBcIjYzNlwiLFxuICAgIFwiNjQxXCIsXG4gICAgXCI2NDZcIixcbiAgICBcIjY1MFwiLFxuICAgIFwiNjUxXCIsXG4gICAgXCI2NjBcIixcbiAgICBcIjY2MVwiLFxuICAgIFwiNjYyXCIsXG4gICAgXCI2NjdcIixcbiAgICBcIjY3OFwiLFxuICAgIFwiNjgyXCIsXG4gICAgXCI3MDFcIixcbiAgICBcIjcwMlwiLFxuICAgIFwiNzAzXCIsXG4gICAgXCI3MDRcIixcbiAgICBcIjcwNlwiLFxuICAgIFwiNzA3XCIsXG4gICAgXCI3MDhcIixcbiAgICBcIjcxMlwiLFxuICAgIFwiNzEzXCIsXG4gICAgXCI3MTRcIixcbiAgICBcIjcxNVwiLFxuICAgIFwiNzE2XCIsXG4gICAgXCI3MTdcIixcbiAgICBcIjcxOFwiLFxuICAgIFwiNzE5XCIsXG4gICAgXCI3MjBcIixcbiAgICBcIjcyNFwiLFxuICAgIFwiNzI3XCIsXG4gICAgXCI3MzFcIixcbiAgICBcIjczMlwiLFxuICAgIFwiNzM0XCIsXG4gICAgXCI3MzdcIixcbiAgICBcIjc0MFwiLFxuICAgIFwiNzU0XCIsXG4gICAgXCI3NTdcIixcbiAgICBcIjc2MFwiLFxuICAgIFwiNzYzXCIsXG4gICAgXCI3NjVcIixcbiAgICBcIjc3MFwiLFxuICAgIFwiNzcyXCIsXG4gICAgXCI3NzNcIixcbiAgICBcIjc3NFwiLFxuICAgIFwiNzc1XCIsXG4gICAgXCI3ODFcIixcbiAgICBcIjc4NVwiLFxuICAgIFwiNzg2XCIsXG4gICAgXCI4MDFcIixcbiAgICBcIjgwMlwiLFxuICAgIFwiODAzXCIsXG4gICAgXCI4MDRcIixcbiAgICBcIjgwNVwiLFxuICAgIFwiODA2XCIsXG4gICAgXCI4MDhcIixcbiAgICBcIjgxMFwiLFxuICAgIFwiODEyXCIsXG4gICAgXCI4MTNcIixcbiAgICBcIjgxNFwiLFxuICAgIFwiODE1XCIsXG4gICAgXCI4MTZcIixcbiAgICBcIjgxN1wiLFxuICAgIFwiODE4XCIsXG4gICAgXCI4MjhcIixcbiAgICBcIjgzMFwiLFxuICAgIFwiODMxXCIsXG4gICAgXCI4MzJcIixcbiAgICBcIjgzNVwiLFxuICAgIFwiODQzXCIsXG4gICAgXCI4NDVcIixcbiAgICBcIjg0N1wiLFxuICAgIFwiODQ4XCIsXG4gICAgXCI4NTBcIixcbiAgICBcIjg1NlwiLFxuICAgIFwiODU3XCIsXG4gICAgXCI4NThcIixcbiAgICBcIjg1OVwiLFxuICAgIFwiODYwXCIsXG4gICAgXCI4NjJcIixcbiAgICBcIjg2M1wiLFxuICAgIFwiODY0XCIsXG4gICAgXCI4NjVcIixcbiAgICBcIjg3MFwiLFxuICAgIFwiODcyXCIsXG4gICAgXCI4NzhcIixcbiAgICBcIjkwMVwiLFxuICAgIFwiOTAzXCIsXG4gICAgXCI5MDRcIixcbiAgICBcIjkwNlwiLFxuICAgIFwiOTA3XCIsXG4gICAgXCI5MDhcIixcbiAgICBcIjkwOVwiLFxuICAgIFwiOTEwXCIsXG4gICAgXCI5MTJcIixcbiAgICBcIjkxM1wiLFxuICAgIFwiOTE0XCIsXG4gICAgXCI5MTVcIixcbiAgICBcIjkxNlwiLFxuICAgIFwiOTE3XCIsXG4gICAgXCI5MThcIixcbiAgICBcIjkxOVwiLFxuICAgIFwiOTIwXCIsXG4gICAgXCI5MjVcIixcbiAgICBcIjkyOFwiLFxuICAgIFwiOTMxXCIsXG4gICAgXCI5MzZcIixcbiAgICBcIjkzN1wiLFxuICAgIFwiOTQwXCIsXG4gICAgXCI5NDFcIixcbiAgICBcIjk0N1wiLFxuICAgIFwiOTQ5XCIsXG4gICAgXCI5NTJcIixcbiAgICBcIjk1NFwiLFxuICAgIFwiOTU2XCIsXG4gICAgXCI5NTlcIixcbiAgICBcIjk3MFwiLFxuICAgIFwiOTcxXCIsXG4gICAgXCI5NzJcIixcbiAgICBcIjk3M1wiLFxuICAgIFwiOTc1XCIsXG4gICAgXCI5NzhcIixcbiAgICBcIjk3OVwiLFxuICAgIFwiOTgwXCIsXG4gICAgXCI5ODRcIixcbiAgICBcIjk4NVwiLFxuICAgIFwiOTg5XCJcbiAgXSxcbiAgXCJleGNoYW5nZV9jb2RlXCI6IFtcbiAgICBcIjIwMVwiLFxuICAgIFwiMjAyXCIsXG4gICAgXCIyMDNcIixcbiAgICBcIjIwNVwiLFxuICAgIFwiMjA2XCIsXG4gICAgXCIyMDdcIixcbiAgICBcIjIwOFwiLFxuICAgIFwiMjA5XCIsXG4gICAgXCIyMTBcIixcbiAgICBcIjIxMlwiLFxuICAgIFwiMjEzXCIsXG4gICAgXCIyMTRcIixcbiAgICBcIjIxNVwiLFxuICAgIFwiMjE2XCIsXG4gICAgXCIyMTdcIixcbiAgICBcIjIxOFwiLFxuICAgIFwiMjE5XCIsXG4gICAgXCIyMjRcIixcbiAgICBcIjIyNVwiLFxuICAgIFwiMjI3XCIsXG4gICAgXCIyMjhcIixcbiAgICBcIjIyOVwiLFxuICAgIFwiMjMxXCIsXG4gICAgXCIyMzRcIixcbiAgICBcIjIzOVwiLFxuICAgIFwiMjQwXCIsXG4gICAgXCIyNDhcIixcbiAgICBcIjI1MVwiLFxuICAgIFwiMjUyXCIsXG4gICAgXCIyNTNcIixcbiAgICBcIjI1NFwiLFxuICAgIFwiMjU2XCIsXG4gICAgXCIyNjBcIixcbiAgICBcIjI2MlwiLFxuICAgIFwiMjY3XCIsXG4gICAgXCIyNjlcIixcbiAgICBcIjI3MFwiLFxuICAgIFwiMjc2XCIsXG4gICAgXCIyODFcIixcbiAgICBcIjI4M1wiLFxuICAgIFwiMzAxXCIsXG4gICAgXCIzMDJcIixcbiAgICBcIjMwM1wiLFxuICAgIFwiMzA0XCIsXG4gICAgXCIzMDVcIixcbiAgICBcIjMwN1wiLFxuICAgIFwiMzA4XCIsXG4gICAgXCIzMDlcIixcbiAgICBcIjMxMFwiLFxuICAgIFwiMzEyXCIsXG4gICAgXCIzMTNcIixcbiAgICBcIjMxNFwiLFxuICAgIFwiMzE1XCIsXG4gICAgXCIzMTZcIixcbiAgICBcIjMxN1wiLFxuICAgIFwiMzE4XCIsXG4gICAgXCIzMTlcIixcbiAgICBcIjMyMFwiLFxuICAgIFwiMzIxXCIsXG4gICAgXCIzMjNcIixcbiAgICBcIjMzMFwiLFxuICAgIFwiMzMxXCIsXG4gICAgXCIzMzRcIixcbiAgICBcIjMzNlwiLFxuICAgIFwiMzM3XCIsXG4gICAgXCIzMzlcIixcbiAgICBcIjM0N1wiLFxuICAgIFwiMzUxXCIsXG4gICAgXCIzNTJcIixcbiAgICBcIjM2MFwiLFxuICAgIFwiMzYxXCIsXG4gICAgXCIzODZcIixcbiAgICBcIjQwMVwiLFxuICAgIFwiNDAyXCIsXG4gICAgXCI0MDRcIixcbiAgICBcIjQwNVwiLFxuICAgIFwiNDA2XCIsXG4gICAgXCI0MDdcIixcbiAgICBcIjQwOFwiLFxuICAgIFwiNDA5XCIsXG4gICAgXCI0MTBcIixcbiAgICBcIjQxMlwiLFxuICAgIFwiNDEzXCIsXG4gICAgXCI0MTRcIixcbiAgICBcIjQxNVwiLFxuICAgIFwiNDE3XCIsXG4gICAgXCI0MTlcIixcbiAgICBcIjQyM1wiLFxuICAgIFwiNDI0XCIsXG4gICAgXCI0MjVcIixcbiAgICBcIjQzNFwiLFxuICAgIFwiNDM1XCIsXG4gICAgXCI0NDBcIixcbiAgICBcIjQ0M1wiLFxuICAgIFwiNDQ1XCIsXG4gICAgXCI0NjRcIixcbiAgICBcIjQ2OVwiLFxuICAgIFwiNDcwXCIsXG4gICAgXCI0NzVcIixcbiAgICBcIjQ3OFwiLFxuICAgIFwiNDc5XCIsXG4gICAgXCI0ODBcIixcbiAgICBcIjQ4NFwiLFxuICAgIFwiNTAxXCIsXG4gICAgXCI1MDJcIixcbiAgICBcIjUwM1wiLFxuICAgIFwiNTA0XCIsXG4gICAgXCI1MDVcIixcbiAgICBcIjUwN1wiLFxuICAgIFwiNTA4XCIsXG4gICAgXCI1MDlcIixcbiAgICBcIjUxMFwiLFxuICAgIFwiNTEyXCIsXG4gICAgXCI1MTNcIixcbiAgICBcIjUxNVwiLFxuICAgIFwiNTE2XCIsXG4gICAgXCI1MTdcIixcbiAgICBcIjUxOFwiLFxuICAgIFwiNTIwXCIsXG4gICAgXCI1MzBcIixcbiAgICBcIjU0MFwiLFxuICAgIFwiNTQxXCIsXG4gICAgXCI1NTFcIixcbiAgICBcIjU1N1wiLFxuICAgIFwiNTU5XCIsXG4gICAgXCI1NjFcIixcbiAgICBcIjU2MlwiLFxuICAgIFwiNTYzXCIsXG4gICAgXCI1NjRcIixcbiAgICBcIjU2N1wiLFxuICAgIFwiNTcwXCIsXG4gICAgXCI1NzFcIixcbiAgICBcIjU3M1wiLFxuICAgIFwiNTc0XCIsXG4gICAgXCI1ODBcIixcbiAgICBcIjU4NVwiLFxuICAgIFwiNTg2XCIsXG4gICAgXCI2MDFcIixcbiAgICBcIjYwMlwiLFxuICAgIFwiNjAzXCIsXG4gICAgXCI2MDVcIixcbiAgICBcIjYwNlwiLFxuICAgIFwiNjA3XCIsXG4gICAgXCI2MDhcIixcbiAgICBcIjYwOVwiLFxuICAgIFwiNjEwXCIsXG4gICAgXCI2MTJcIixcbiAgICBcIjYxNFwiLFxuICAgIFwiNjE1XCIsXG4gICAgXCI2MTZcIixcbiAgICBcIjYxN1wiLFxuICAgIFwiNjE4XCIsXG4gICAgXCI2MTlcIixcbiAgICBcIjYyMFwiLFxuICAgIFwiNjIzXCIsXG4gICAgXCI2MjZcIixcbiAgICBcIjYzMFwiLFxuICAgIFwiNjMxXCIsXG4gICAgXCI2MzZcIixcbiAgICBcIjY0MVwiLFxuICAgIFwiNjQ2XCIsXG4gICAgXCI2NTBcIixcbiAgICBcIjY1MVwiLFxuICAgIFwiNjYwXCIsXG4gICAgXCI2NjFcIixcbiAgICBcIjY2MlwiLFxuICAgIFwiNjY3XCIsXG4gICAgXCI2NzhcIixcbiAgICBcIjY4MlwiLFxuICAgIFwiNzAxXCIsXG4gICAgXCI3MDJcIixcbiAgICBcIjcwM1wiLFxuICAgIFwiNzA0XCIsXG4gICAgXCI3MDZcIixcbiAgICBcIjcwN1wiLFxuICAgIFwiNzA4XCIsXG4gICAgXCI3MTJcIixcbiAgICBcIjcxM1wiLFxuICAgIFwiNzE0XCIsXG4gICAgXCI3MTVcIixcbiAgICBcIjcxNlwiLFxuICAgIFwiNzE3XCIsXG4gICAgXCI3MThcIixcbiAgICBcIjcxOVwiLFxuICAgIFwiNzIwXCIsXG4gICAgXCI3MjRcIixcbiAgICBcIjcyN1wiLFxuICAgIFwiNzMxXCIsXG4gICAgXCI3MzJcIixcbiAgICBcIjczNFwiLFxuICAgIFwiNzM3XCIsXG4gICAgXCI3NDBcIixcbiAgICBcIjc1NFwiLFxuICAgIFwiNzU3XCIsXG4gICAgXCI3NjBcIixcbiAgICBcIjc2M1wiLFxuICAgIFwiNzY1XCIsXG4gICAgXCI3NzBcIixcbiAgICBcIjc3MlwiLFxuICAgIFwiNzczXCIsXG4gICAgXCI3NzRcIixcbiAgICBcIjc3NVwiLFxuICAgIFwiNzgxXCIsXG4gICAgXCI3ODVcIixcbiAgICBcIjc4NlwiLFxuICAgIFwiODAxXCIsXG4gICAgXCI4MDJcIixcbiAgICBcIjgwM1wiLFxuICAgIFwiODA0XCIsXG4gICAgXCI4MDVcIixcbiAgICBcIjgwNlwiLFxuICAgIFwiODA4XCIsXG4gICAgXCI4MTBcIixcbiAgICBcIjgxMlwiLFxuICAgIFwiODEzXCIsXG4gICAgXCI4MTRcIixcbiAgICBcIjgxNVwiLFxuICAgIFwiODE2XCIsXG4gICAgXCI4MTdcIixcbiAgICBcIjgxOFwiLFxuICAgIFwiODI4XCIsXG4gICAgXCI4MzBcIixcbiAgICBcIjgzMVwiLFxuICAgIFwiODMyXCIsXG4gICAgXCI4MzVcIixcbiAgICBcIjg0M1wiLFxuICAgIFwiODQ1XCIsXG4gICAgXCI4NDdcIixcbiAgICBcIjg0OFwiLFxuICAgIFwiODUwXCIsXG4gICAgXCI4NTZcIixcbiAgICBcIjg1N1wiLFxuICAgIFwiODU4XCIsXG4gICAgXCI4NTlcIixcbiAgICBcIjg2MFwiLFxuICAgIFwiODYyXCIsXG4gICAgXCI4NjNcIixcbiAgICBcIjg2NFwiLFxuICAgIFwiODY1XCIsXG4gICAgXCI4NzBcIixcbiAgICBcIjg3MlwiLFxuICAgIFwiODc4XCIsXG4gICAgXCI5MDFcIixcbiAgICBcIjkwM1wiLFxuICAgIFwiOTA0XCIsXG4gICAgXCI5MDZcIixcbiAgICBcIjkwN1wiLFxuICAgIFwiOTA4XCIsXG4gICAgXCI5MDlcIixcbiAgICBcIjkxMFwiLFxuICAgIFwiOTEyXCIsXG4gICAgXCI5MTNcIixcbiAgICBcIjkxNFwiLFxuICAgIFwiOTE1XCIsXG4gICAgXCI5MTZcIixcbiAgICBcIjkxN1wiLFxuICAgIFwiOTE4XCIsXG4gICAgXCI5MTlcIixcbiAgICBcIjkyMFwiLFxuICAgIFwiOTI1XCIsXG4gICAgXCI5MjhcIixcbiAgICBcIjkzMVwiLFxuICAgIFwiOTM2XCIsXG4gICAgXCI5MzdcIixcbiAgICBcIjk0MFwiLFxuICAgIFwiOTQxXCIsXG4gICAgXCI5NDdcIixcbiAgICBcIjk0OVwiLFxuICAgIFwiOTUyXCIsXG4gICAgXCI5NTRcIixcbiAgICBcIjk1NlwiLFxuICAgIFwiOTU5XCIsXG4gICAgXCI5NzBcIixcbiAgICBcIjk3MVwiLFxuICAgIFwiOTcyXCIsXG4gICAgXCI5NzNcIixcbiAgICBcIjk3NVwiLFxuICAgIFwiOTc4XCIsXG4gICAgXCI5NzlcIixcbiAgICBcIjk4MFwiLFxuICAgIFwiOTg0XCIsXG4gICAgXCI5ODVcIixcbiAgICBcIjk4OVwiXG4gIF1cbn07XG4iLCJ2YXIgZW5fYXVfb2NrZXIgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9hdV9vY2tlcjtcbmVuX2F1X29ja2VyLnRpdGxlID0gXCJBdXN0cmFsaWEgT2NrZXIgKEVuZ2xpc2gpXCI7XG5lbl9hdV9vY2tlci5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQ2hhcmxvdHRlXCIsXG4gICAgXCJBdmFcIixcbiAgICBcIkNobG9lXCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJab2VcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiQW1lbGlhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiTWlhKzNcIixcbiAgICBcIkdyYWNlXCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJJdnlcIixcbiAgICBcIkxheWxhXCIsXG4gICAgXCJBYmlnYWlsXCIsXG4gICAgXCJJc2xhXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIlphcmFcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkV2aWVcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiTWFkaXNvblwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1hZGVsaW5lXCIsXG4gICAgXCJBdWRyZXlcIixcbiAgICBcIlNjYXJsZXR0XCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiQ2hlbHNlYVwiLFxuICAgIFwiTWlsYVwiLFxuICAgIFwiSG9sbHlcIixcbiAgICBcIkluZGlhbmFcIixcbiAgICBcIlBvcHB5XCIsXG4gICAgXCJIYXJwZXJcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkltb2dlblwiLFxuICAgIFwiSGF5bGV5XCIsXG4gICAgXCJQaGVvYmVcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRXZlbHluXCIsXG4gICAgXCJNYWNrZW56aWVcIixcbiAgICBcIkF5bGFcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiSmFja1wiLFxuICAgIFwiSmFja3NvblwiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiRXRoYW5cIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJDb29wZXJcIixcbiAgICBcIkxhY2hsYW5cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJJc2FhY1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQWlkZW5cIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIkphbWVzXCIsXG4gICAgXCJMZXZpXCIsXG4gICAgXCJSaWxleVwiLFxuICAgIFwiSGFycmlzb25cIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJMZW9cIixcbiAgICBcIlphY2hcIixcbiAgICBcIkhhcnJ5XCIsXG4gICAgXCJIdW50ZXJcIixcbiAgICBcIkZseW5uXCIsXG4gICAgXCJBcmNoaWVcIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJFbGlqYWhcIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJCbGFrZVwiLFxuICAgIFwiQXJjaGVyXCIsXG4gICAgXCJBc2h0b25cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiWmFjaGVyeVwiLFxuICAgIFwiTGluY29sblwiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiTmlnZWxcIixcbiAgICBcIk1hdHRcIixcbiAgICBcIlNlYW5cIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJTbWl0aFwiLFxuICAgIFwiSm9uZXNcIixcbiAgICBcIldpbGxpYW1zXCIsXG4gICAgXCJCcm93blwiLFxuICAgIFwiV2lsc29uXCIsXG4gICAgXCJUYXlsb3JcIixcbiAgICBcIk1vcnRvblwiLFxuICAgIFwiV2hpdGVcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIlRob21wc29uXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiV2Fsa2VyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiUm9iaW5zb25cIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJSYXVzY2hcIixcbiAgICBcIlJpZGdlXCIsXG4gICAgXCJDb25ub2xseVwiLFxuICAgIFwiTGVRdWVzbmVcIlxuICBdLFxuICBcIm9ja2VyX2ZpcnN0X25hbWVcIjogW1xuICAgIFwiQmF6emFcIixcbiAgICBcIkJsdWV5XCIsXG4gICAgXCJEYXZvXCIsXG4gICAgXCJKb2hub1wiLFxuICAgIFwiU2hhbm9cIixcbiAgICBcIlNoYXp6YVwiXG4gIF1cbn07XG5lbl9hdV9vY2tlci5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJQdHkgTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCIsXG4gICAgXCJQYXJ0bmVyc1wiXG4gIF1cbn07XG5lbl9hdV9vY2tlci5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbS5hdVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXQuYXVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnLmF1XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIuYWRkcmVzcyA9IHtcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJSYW1zYXkgU3RyZWV0XCIsXG4gICAgXCJCb25uaWUgRG9vblwiLFxuICAgIFwiQ2F2aWxsIEF2ZW51ZVwiLFxuICAgIFwiUXVlZW4gU3RyZWV0XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fVwiXG4gIF0sXG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiQm9uZGlcIixcbiAgICBcIkJ1cmxlaWdoIEhlYWRzXCIsXG4gICAgXCJDYXJsdG9uXCIsXG4gICAgXCJGaXR6cm95XCIsXG4gICAgXCJGcmVtYW50bGVcIixcbiAgICBcIkdsZW5lbGdcIixcbiAgICBcIk1hbmx5XCIsXG4gICAgXCJOb29zYVwiLFxuICAgIFwiU3RvbmVzIENvcm5lclwiLFxuICAgIFwiU3QgS2lsZGFcIixcbiAgICBcIlN1cnJ5IEhpbGxzXCIsXG4gICAgXCJZYXJyYSBWYWxsZXlcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH1cIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiTlNXXCIsXG4gICAgXCJRTERcIixcbiAgICBcIk5UXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiV0FcIixcbiAgICBcIlRBU1wiLFxuICAgIFwiQUNUXCIsXG4gICAgXCJWSUNcIlxuICBdLFxuICBcInJlZ2lvblwiOiBbXG4gICAgXCJTb3V0aCBFYXN0IFF1ZWVuc2xhbmRcIixcbiAgICBcIldpZGUgQmF5IEJ1cm5ldHRcIixcbiAgICBcIk1hcmdhcmV0IFJpdmVyXCIsXG4gICAgXCJQb3J0IFBpcmllXCIsXG4gICAgXCJHaXBwc2xhbmRcIixcbiAgICBcIkVsaXphYmV0aFwiLFxuICAgIFwiQmFyb3NzYVwiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiTmV3IFNvdXRoIFdhbGVzXCIsXG4gICAgXCJRdWVlbnNsYW5kXCIsXG4gICAgXCJOb3J0aGVybiBUZXJyaXRvcnlcIixcbiAgICBcIlNvdXRoIEF1c3RyYWxpYVwiLFxuICAgIFwiV2VzdGVybiBBdXN0cmFsaWFcIixcbiAgICBcIlRhc21hbmlhXCIsXG4gICAgXCJBdXN0cmFsaWFuIENhcGl0YWwgVGVycml0b3J5XCIsXG4gICAgXCJWaWN0b3JpYVwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiMCMjI1wiLFxuICAgIFwiMiMjI1wiLFxuICAgIFwiMyMjI1wiLFxuICAgIFwiNCMjI1wiLFxuICAgIFwiNSMjI1wiLFxuICAgIFwiNiMjI1wiLFxuICAgIFwiNyMjI1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQXZlbnVlXCIsXG4gICAgXCJCb3VsZXZhcmRcIixcbiAgICBcIkNpcmNsZVwiLFxuICAgIFwiQ2lyY3VpdFwiLFxuICAgIFwiQ291cnRcIixcbiAgICBcIkNyZXNjZW50XCIsXG4gICAgXCJDcmVzdFwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkVzdGF0ZSBEclwiLFxuICAgIFwiR3JvdmVcIixcbiAgICBcIkhpbGxcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSnVuY3Rpb25cIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMb29wXCIsXG4gICAgXCJNYWxsXCIsXG4gICAgXCJNYW5vclwiLFxuICAgIFwiTWVhZG93XCIsXG4gICAgXCJNZXdzXCIsXG4gICAgXCJQYXJhZGVcIixcbiAgICBcIlBhcmt3YXlcIixcbiAgICBcIlBhc3NcIixcbiAgICBcIlBsYWNlXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUmlkZ2VcIixcbiAgICBcIlJvYWRcIixcbiAgICBcIlJ1blwiLFxuICAgIFwiU3F1YXJlXCIsXG4gICAgXCJTdGF0aW9uIFN0XCIsXG4gICAgXCJTdHJlZXRcIixcbiAgICBcIlN1bW1pdFwiLFxuICAgIFwiVGVycmFjZVwiLFxuICAgIFwiVHJhY2tcIixcbiAgICBcIlRyYWlsXCIsXG4gICAgXCJWaWV3IFJkXCIsXG4gICAgXCJXYXlcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJBdXN0cmFsaWFcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMCMgIyMjIyAjIyMjXCIsXG4gICAgXCIrNjEgIyAjIyMjICMjIyNcIixcbiAgICBcIjA0IyMgIyMjICMjI1wiLFxuICAgIFwiKzYxIDQjIyAjIyMgIyMjXCJcbiAgXVxufTtcbiIsInZhciBlcyA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVzO1xuZXMudGl0bGUgPSBcIlNwYW5pc2hcIjtcbmVzLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiUGFybGFcIixcbiAgICBcIlRlbGRlXCIsXG4gICAgXCJCYXJhY2FsZG9cIixcbiAgICBcIlNhbiBGZXJuYW5kb1wiLFxuICAgIFwiVG9ycmV2aWVqYVwiLFxuICAgIFwiTHVnb1wiLFxuICAgIFwiU2FudGlhZ28gZGUgQ29tcG9zdGVsYVwiLFxuICAgIFwiR2Vyb25hXCIsXG4gICAgXCJDw6FjZXJlc1wiLFxuICAgIFwiTG9yY2FcIixcbiAgICBcIkNvc2xhZGFcIixcbiAgICBcIlRhbGF2ZXJhIGRlIGxhIFJlaW5hXCIsXG4gICAgXCJFbCBQdWVydG8gZGUgU2FudGEgTWFyw61hXCIsXG4gICAgXCJDb3JuZWxsw6EgZGUgTGxvYnJlZ2F0XCIsXG4gICAgXCJBdmlsw6lzXCIsXG4gICAgXCJQYWxlbmNpYVwiLFxuICAgIFwiR2VjaG9cIixcbiAgICBcIk9yaWh1ZWxhXCIsXG4gICAgXCJQb250ZXZlZHJhXCIsXG4gICAgXCJQb3p1ZWxvIGRlIEFsYXJjw7NuXCIsXG4gICAgXCJUb2xlZG9cIixcbiAgICBcIkVsIEVqaWRvXCIsXG4gICAgXCJHdWFkYWxhamFyYVwiLFxuICAgIFwiR2FuZMOtYVwiLFxuICAgIFwiQ2V1dGFcIixcbiAgICBcIkZlcnJvbFwiLFxuICAgIFwiQ2hpY2xhbmEgZGUgbGEgRnJvbnRlcmFcIixcbiAgICBcIk1hbnJlc2FcIixcbiAgICBcIlJvcXVldGFzIGRlIE1hclwiLFxuICAgIFwiQ2l1ZGFkIFJlYWxcIixcbiAgICBcIlJ1YsOtXCIsXG4gICAgXCJCZW5pZG9ybVwiLFxuICAgIFwiU2FuIFNlYmFzdMOtYW4gZGUgbG9zIFJleWVzXCIsXG4gICAgXCJQb25mZXJyYWRhXCIsXG4gICAgXCJaYW1vcmFcIixcbiAgICBcIkFsY2Fsw6EgZGUgR3VhZGFpcmFcIixcbiAgICBcIkZ1ZW5naXJvbGFcIixcbiAgICBcIk1pamFzXCIsXG4gICAgXCJTYW5sw7pjYXIgZGUgQmFycmFtZWRhXCIsXG4gICAgXCJMYSBMw61uZWEgZGUgbGEgQ29uY2VwY2nDs25cIixcbiAgICBcIk1hamFkYWhvbmRhXCIsXG4gICAgXCJTYWd1bnRvXCIsXG4gICAgXCJFbCBQcmF0IGRlIExMb2JyZWdhdFwiLFxuICAgIFwiVmlsYWRlY2Fuc1wiLFxuICAgIFwiTGluYXJlc1wiLFxuICAgIFwiQWxjb3lcIixcbiAgICBcIklyw7puXCIsXG4gICAgXCJFc3RlcG9uYVwiLFxuICAgIFwiVG9ycmVtb2xpbm9zXCIsXG4gICAgXCJSaXZhcy1WYWNpYW1hZHJpZFwiLFxuICAgIFwiTW9saW5hIGRlIFNlZ3VyYVwiLFxuICAgIFwiUGF0ZXJuYVwiLFxuICAgIFwiR3Jhbm9sbGVyc1wiLFxuICAgIFwiU2FudGEgTHVjw61hIGRlIFRpcmFqYW5hXCIsXG4gICAgXCJNb3RyaWxcIixcbiAgICBcIkNlcmRhw7FvbGEgZGVsIFZhbGzDqXNcIixcbiAgICBcIkFycmVjaWZlXCIsXG4gICAgXCJTZWdvdmlhXCIsXG4gICAgXCJUb3JyZWxhdmVnYVwiLFxuICAgIFwiRWxkYVwiLFxuICAgIFwiTcOpcmlkYVwiLFxuICAgIFwiw4F2aWxhXCIsXG4gICAgXCJWYWxkZW1vcm9cIixcbiAgICBcIkN1ZW50YVwiLFxuICAgIFwiQ29sbGFkbyBWaWxsYWxiYVwiLFxuICAgIFwiQmVuYWxtw6FkZW5hXCIsXG4gICAgXCJNb2xsZXQgZGVsIFZhbGzDqXNcIixcbiAgICBcIlB1ZXJ0b2xsYW5vXCIsXG4gICAgXCJNYWRyaWRcIixcbiAgICBcIkJhcmNlbG9uYVwiLFxuICAgIFwiVmFsZW5jaWFcIixcbiAgICBcIlNldmlsbGFcIixcbiAgICBcIlphcmFnb3phXCIsXG4gICAgXCJNw6FsYWdhXCIsXG4gICAgXCJNdXJjaWFcIixcbiAgICBcIlBhbG1hIGRlIE1hbGxvcmNhXCIsXG4gICAgXCJMYXMgUGFsbWFzIGRlIEdyYW4gQ2FuYXJpYVwiLFxuICAgIFwiQmlsYmFvXCIsXG4gICAgXCJDw7NyZG9iYVwiLFxuICAgIFwiQWxpY2FudGVcIixcbiAgICBcIlZhbGxhZG9saWRcIixcbiAgICBcIlZpZ29cIixcbiAgICBcIkdpasOzblwiLFxuICAgIFwiSG9zcGl0YWxldCBkZSBMTG9icmVnYXRcIixcbiAgICBcIkxhIENvcnXDsWFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIlZpdG9yaWFcIixcbiAgICBcIkVsY2hlXCIsXG4gICAgXCJTYW50YSBDcnV6IGRlIFRlbmVyaWZlXCIsXG4gICAgXCJPdmllZG9cIixcbiAgICBcIkJhZGFsb25hXCIsXG4gICAgXCJDYXJ0YWdlbmFcIixcbiAgICBcIk3Ds3N0b2xlc1wiLFxuICAgIFwiSmVyZXogZGUgbGEgRnJvbnRlcmFcIixcbiAgICBcIlRhcnJhc2FcIixcbiAgICBcIlNhYmFkZWxsXCIsXG4gICAgXCJBbGNhbMOhIGRlIEhlbmFyZXNcIixcbiAgICBcIlBhbXBsb25hXCIsXG4gICAgXCJGdWVubGFicmFkYVwiLFxuICAgIFwiQWxtZXLDrWFcIixcbiAgICBcIlNhbiBTZWJhc3Rpw6FuXCIsXG4gICAgXCJMZWdhbsOpc1wiLFxuICAgIFwiU2FudGFuZGVyXCIsXG4gICAgXCJCdXJnb3NcIixcbiAgICBcIkNhc3RlbGzDs24gZGUgbGEgUGxhbmFcIixcbiAgICBcIkFsY29yY8OzblwiLFxuICAgIFwiQWxiYWNldGVcIixcbiAgICBcIkdldGFmZVwiLFxuICAgIFwiU2FsYW1hbmNhXCIsXG4gICAgXCJIdWVsdmFcIixcbiAgICBcIkxvZ3Jvw7FvXCIsXG4gICAgXCJCYWRham96XCIsXG4gICAgXCJTYW4gQ3Jpc3Ryw7NiYWwgZGUgbGEgTGFndW5hXCIsXG4gICAgXCJMZcOzblwiLFxuICAgIFwiVGFycmFnb25hXCIsXG4gICAgXCJDw6FkaXpcIixcbiAgICBcIkzDqXJpZGFcIixcbiAgICBcIk1hcmJlbGxhXCIsXG4gICAgXCJNYXRhcsOzXCIsXG4gICAgXCJEb3MgSGVybWFuYXNcIixcbiAgICBcIlNhbnRhIENvbG9tYSBkZSBHcmFtYW5ldFwiLFxuICAgIFwiSmHDqW5cIixcbiAgICBcIkFsZ2VjaXJhc1wiLFxuICAgIFwiVG9ycmVqw7NuIGRlIEFyZG96XCIsXG4gICAgXCJPcmVuc2VcIixcbiAgICBcIkFsY29iZW5kYXNcIixcbiAgICBcIlJldXNcIixcbiAgICBcIkNhbGFob3JyYVwiLFxuICAgIFwiSW5jYVwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdhbmlzdMOhblwiLFxuICAgIFwiQWxiYW5pYVwiLFxuICAgIFwiQXJnZWxpYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0cmFsaWFcIixcbiAgICBcIkF1c3RyaWFcIixcbiAgICBcIkF6ZXJiYXnDoW5cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhcmVpblwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJpZWxvcnVzaWFcIixcbiAgICBcIkLDqWxnaWNhXCIsXG4gICAgXCJCZWxpY2VcIixcbiAgICBcIkJlcm11ZGFcIixcbiAgICBcIkJ1dMOhblwiLFxuICAgIFwiQm9saXZpYVwiLFxuICAgIFwiQm9zbmlhIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQnJhc2lsXCIsXG4gICAgXCJCdWxnYXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1ib3lhXCIsXG4gICAgXCJDYW1lcsO6blwiLFxuICAgIFwiQ2FuYWRhXCIsXG4gICAgXCJDYWJvIFZlcmRlXCIsXG4gICAgXCJJc2xhcyBDYWltw6FuXCIsXG4gICAgXCJDaGFkXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIklzbGEgZGUgTmF2aWRhZFwiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9kb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3N0YSBkZSBNYXJmaWxcIixcbiAgICBcIkNyb2FjaWFcIixcbiAgICBcIkN1YmFcIixcbiAgICBcIkNoaXByZVwiLFxuICAgIFwiUmVww7pibGljYSBDaGVjYVwiLFxuICAgIFwiRGluYW1hcmNhXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiUmVww7pibGljYSBEb21pbmljYW5hXCIsXG4gICAgXCJFY3VhZG9yXCIsXG4gICAgXCJFZ2lwdG9cIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJHdWluZWEgRWN1YXRvcmlhbFwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRpb3DDrWFcIixcbiAgICBcIklzbGFzIEZhcm9cIixcbiAgICBcIkZpamlcIixcbiAgICBcIkZpbmxhbmRpYVwiLFxuICAgIFwiRnJhbmNpYVwiLFxuICAgIFwiR2Fiw7NuXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkFsZW1hbmlhXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR3JlY2lhXCIsXG4gICAgXCJHcm9lbmxhbmRpYVwiLFxuICAgIFwiR3JhbmFkYVwiLFxuICAgIFwiR3VhZGFsdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc2F1XCIsXG4gICAgXCJHdWF5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmcgS29uZ1wiLFxuICAgIFwiSHVuZ3JpYVwiLFxuICAgIFwiSXNsYW5kaWFcIixcbiAgICBcIkluZGlhXCIsXG4gICAgXCJJbmRvbmVzaWFcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklyYWtcIixcbiAgICBcIklybGFuZGFcIixcbiAgICBcIkl0YWxpYVwiLFxuICAgIFwiSmFtYWljYVwiLFxuICAgIFwiSmFww7NuXCIsXG4gICAgXCJKb3JkYW5pYVwiLFxuICAgIFwiS2F6YWppc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJDb3JlYVwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJMZXRvbmlhXCIsXG4gICAgXCJMw61iYW5vXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXR1YW5pYVwiLFxuICAgIFwiTHV4ZW1idXJnb1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkb25pYVwiLFxuICAgIFwiTWFkYWdhc2NhclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxhc2lhXCIsXG4gICAgXCJNYWxkaXZhc1wiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hcnRpbmljYVwiLFxuICAgIFwiTWF1cml0YW5pYVwiLFxuICAgIFwiTcOpamljb1wiLFxuICAgIFwiTWljcm9uZXNpYVwiLFxuICAgIFwiTW9sZGF2aWFcIixcbiAgICBcIk3Ds25hY29cIixcbiAgICBcIk1vbmdvbGlhXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNYXJydWVjb3NcIixcbiAgICBcIk1vemFtYmlxdWVcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiSG9sYW5kYVwiLFxuICAgIFwiTnVldmEgWmVsYW5kYVwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTm9ydWVnYVwiLFxuICAgIFwiT23DoW5cIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYW5hbcOhXCIsXG4gICAgXCJQYXDDumEgTnVldmEgR3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVyw7pcIixcbiAgICBcIkZpbGlwaW5hc1wiLFxuICAgIFwiUG9sYW5kXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlJ1c2lhXCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW50byBUb23DqSB5IFByaW5jaXBlXCIsXG4gICAgXCJBcmFiaWEgU2F1ZMOtXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uYVwiLFxuICAgIFwiU2luZ2FwdXJcIixcbiAgICBcIkVzbG92YXF1aWFcIixcbiAgICBcIkVzbG92ZW5pYVwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiRXNwYcOxYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdWTDoW5cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdWVjaWFcIixcbiAgICBcIlN1aXphXCIsXG4gICAgXCJTaXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppa2lzdGFuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGFpbGFuZGlhXCIsXG4gICAgXCJUaW1vci1MZXN0ZVwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIlRyaW5pZGFkIHkgVG9iYWdvXCIsXG4gICAgXCJUdW5lelwiLFxuICAgIFwiVHVycXVpYVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3JhbmlhXCIsXG4gICAgXCJFbWlyYXRvcyDDgXJhYmVzIFVuaWRvc1wiLFxuICAgIFwiUmVpbm8gVW5pZG9cIixcbiAgICBcIkVzdGFkb3MgVW5pZG9zIGRlIEFtw6lyaWNhXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIlllbWVuXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIHMvbi5cIixcbiAgICBcIiwgI1wiLFxuICAgIFwiLCAjI1wiLFxuICAgIFwiICNcIixcbiAgICBcIiAjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJBbGRlYVwiLFxuICAgIFwiQXBhcnRhbWVudG9cIixcbiAgICBcIkFycmFiYWxcIixcbiAgICBcIkFycm95b1wiLFxuICAgIFwiQXZlbmlkYVwiLFxuICAgIFwiQmFqYWRhXCIsXG4gICAgXCJCYXJyYW5jb1wiLFxuICAgIFwiQmFycmlvXCIsXG4gICAgXCJCbG9xdWVcIixcbiAgICBcIkNhbGxlXCIsXG4gICAgXCJDYWxsZWphXCIsXG4gICAgXCJDYW1pbm9cIixcbiAgICBcIkNhcnJldGVyYVwiLFxuICAgIFwiQ2FzZXJpb1wiLFxuICAgIFwiQ29sZWdpb1wiLFxuICAgIFwiQ29sb25pYVwiLFxuICAgIFwiQ29uanVudG9cIixcbiAgICBcIkN1ZXN0YVwiLFxuICAgIFwiQ2hhbGV0XCIsXG4gICAgXCJFZGlmaWNpb1wiLFxuICAgIFwiRW50cmFkYVwiLFxuICAgIFwiRXNjYWxpbmF0YVwiLFxuICAgIFwiRXhwbGFuYWRhXCIsXG4gICAgXCJFeHRyYW11cm9zXCIsXG4gICAgXCJFeHRyYXJyYWRpb1wiLFxuICAgIFwiRmVycm9jYXJyaWxcIixcbiAgICBcIkdsb3JpZXRhXCIsXG4gICAgXCJHcmFuIFN1YmlkYVwiLFxuICAgIFwiR3J1cG9cIixcbiAgICBcIkh1ZXJ0YVwiLFxuICAgIFwiSmFyZGluZXNcIixcbiAgICBcIkxhZG9cIixcbiAgICBcIkx1Z2FyXCIsXG4gICAgXCJNYW56YW5hXCIsXG4gICAgXCJNYXPDrWFcIixcbiAgICBcIk1lcmNhZG9cIixcbiAgICBcIk1vbnRlXCIsXG4gICAgXCJNdWVsbGVcIixcbiAgICBcIk11bmljaXBpb1wiLFxuICAgIFwiUGFyY2VsYVwiLFxuICAgIFwiUGFycXVlXCIsXG4gICAgXCJQYXJ0aWRhXCIsXG4gICAgXCJQYXNhamVcIixcbiAgICBcIlBhc2VvXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUG9ibGFkb1wiLFxuICAgIFwiUG9sw61nb25vXCIsXG4gICAgXCJQcm9sb25nYWNpw7NuXCIsXG4gICAgXCJQdWVudGVcIixcbiAgICBcIlB1ZXJ0YVwiLFxuICAgIFwiUXVpbnRhXCIsXG4gICAgXCJSYW1hbFwiLFxuICAgIFwiUmFtYmxhXCIsXG4gICAgXCJSYW1wYVwiLFxuICAgIFwiUmllcmFcIixcbiAgICBcIlJpbmPDs25cIixcbiAgICBcIlJvbmRhXCIsXG4gICAgXCJSdWFcIixcbiAgICBcIlNhbGlkYVwiLFxuICAgIFwiU2VjdG9yXCIsXG4gICAgXCJTZWNjacOzblwiLFxuICAgIFwiU2VuZGFcIixcbiAgICBcIlNvbGFyXCIsXG4gICAgXCJTdWJpZGFcIixcbiAgICBcIlRlcnJlbm9zXCIsXG4gICAgXCJUb3JyZW50ZVwiLFxuICAgIFwiVHJhdmVzw61hXCIsXG4gICAgXCJVcmJhbml6YWNpw7NuXCIsXG4gICAgXCJWw61hXCIsXG4gICAgXCJWw61hIFDDumJsaWNhXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJFc2MuICMjI1wiLFxuICAgIFwiUHVlcnRhICMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInByb3ZpbmNlXCI6IFtcbiAgICBcIsOBbGF2YVwiLFxuICAgIFwiQWxiYWNldGVcIixcbiAgICBcIkFsaWNhbnRlXCIsXG4gICAgXCJBbG1lcsOtYVwiLFxuICAgIFwiQXN0dXJpYXNcIixcbiAgICBcIsOBdmlsYVwiLFxuICAgIFwiQmFkYWpvelwiLFxuICAgIFwiQmFyY2Vsb25hXCIsXG4gICAgXCJCdXJnb3NcIixcbiAgICBcIkNhbnRhYnJpYVwiLFxuICAgIFwiQ2FzdGVsbMOzblwiLFxuICAgIFwiQ2l1ZGFkIFJlYWxcIixcbiAgICBcIkN1ZW5jYVwiLFxuICAgIFwiQ8OhY2VyZXNcIixcbiAgICBcIkPDoWRpelwiLFxuICAgIFwiQ8OzcmRvYmFcIixcbiAgICBcIkdlcm9uYVwiLFxuICAgIFwiR3JhbmFkYVwiLFxuICAgIFwiR3VhZGFsYWphcmFcIixcbiAgICBcIkd1aXDDunpjb2FcIixcbiAgICBcIkh1ZWx2YVwiLFxuICAgIFwiSHVlc2NhXCIsXG4gICAgXCJJc2xhcyBCYWxlYXJlc1wiLFxuICAgIFwiSmHDqW5cIixcbiAgICBcIkxhIENvcnXDsWFcIixcbiAgICBcIkxhIFJpb2phXCIsXG4gICAgXCJMYXMgUGFsbWFzXCIsXG4gICAgXCJMZcOzblwiLFxuICAgIFwiTHVnb1wiLFxuICAgIFwibMOpcmlkYVwiLFxuICAgIFwiTWFkcmlkXCIsXG4gICAgXCJNdXJjaWFcIixcbiAgICBcIk3DoWxhZ2FcIixcbiAgICBcIk5hdmFycmFcIixcbiAgICBcIk9yZW5zZVwiLFxuICAgIFwiUGFsZW5jaWFcIixcbiAgICBcIlBvbnRldmVkcmFcIixcbiAgICBcIlNhbGFtYW5jYVwiLFxuICAgIFwiU2FudGEgQ3J1eiBkZSBUZW5lcmlmZVwiLFxuICAgIFwiU2Vnb3ZpYVwiLFxuICAgIFwiU2V2aWxsYVwiLFxuICAgIFwiU29yaWFcIixcbiAgICBcIlRhcnJhZ29uYVwiLFxuICAgIFwiVGVydWVsXCIsXG4gICAgXCJUb2xlZG9cIixcbiAgICBcIlZhbGVuY2lhXCIsXG4gICAgXCJWYWxsYWRvbGlkXCIsXG4gICAgXCJWaXpjYXlhXCIsXG4gICAgXCJaYW1vcmFcIixcbiAgICBcIlphcmFnb3phXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJBbmRhbHVjw61hXCIsXG4gICAgXCJBcmFnw7NuXCIsXG4gICAgXCJQcmluY2lwYWRvIGRlIEFzdHVyaWFzXCIsXG4gICAgXCJCYWxlYXJlc1wiLFxuICAgIFwiQ2FuYXJpYXNcIixcbiAgICBcIkNhbnRhYnJpYVwiLFxuICAgIFwiQ2FzdGlsbGEtTGEgTWFuY2hhXCIsXG4gICAgXCJDYXN0aWxsYSB5IExlw7NuXCIsXG4gICAgXCJDYXRhbHXDsWFcIixcbiAgICBcIkNvbXVuaWRhZCBWYWxlbmNpYW5hXCIsXG4gICAgXCJFeHRyZW1hZHVyYVwiLFxuICAgIFwiR2FsaWNpYVwiLFxuICAgIFwiTGEgUmlvamFcIixcbiAgICBcIkNvbXVuaWRhZCBkZSBNYWRyaWRcIixcbiAgICBcIk5hdmFycmFcIixcbiAgICBcIlBhw61zIFZhc2NvXCIsXG4gICAgXCJSZWdpw7NuIGRlIE11cmNpYVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBbmRcIixcbiAgICBcIkFyYVwiLFxuICAgIFwiQXN0XCIsXG4gICAgXCJCYWxcIixcbiAgICBcIkNhblwiLFxuICAgIFwiQ2JyXCIsXG4gICAgXCJNYW5cIixcbiAgICBcIkxlb1wiLFxuICAgIFwiQ2F0XCIsXG4gICAgXCJDb21cIixcbiAgICBcIkV4dFwiLFxuICAgIFwiR2FsXCIsXG4gICAgXCJSaW9cIixcbiAgICBcIk1hZFwiLFxuICAgIFwiTmF2XCIsXG4gICAgXCJWYXNcIixcbiAgICBcIk11clwiXG4gIF0sXG4gIFwidGltZV96b25lXCI6IFtcbiAgICBcIlBhY8OtZmljby9NaWR3YXlcIixcbiAgICBcIlBhY8OtZmljby9QYWdvX1BhZ29cIixcbiAgICBcIlBhY8OtZmljby9Ib25vbHVsdVwiLFxuICAgIFwiQW1lcmljYS9KdW5lYXVcIixcbiAgICBcIkFtZXJpY2EvTG9zX0FuZ2VsZXNcIixcbiAgICBcIkFtZXJpY2EvVGlqdWFuYVwiLFxuICAgIFwiQW1lcmljYS9EZW52ZXJcIixcbiAgICBcIkFtZXJpY2EvUGhvZW5peFwiLFxuICAgIFwiQW1lcmljYS9DaGlodWFodWFcIixcbiAgICBcIkFtZXJpY2EvTWF6YXRsYW5cIixcbiAgICBcIkFtZXJpY2EvQ2hpY2Fnb1wiLFxuICAgIFwiQW1lcmljYS9SZWdpbmFcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTW9udGVycmV5XCIsXG4gICAgXCJBbWVyaWNhL0d1YXRlbWFsYVwiLFxuICAgIFwiQW1lcmljYS9OZXdfWW9ya1wiLFxuICAgIFwiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpc1wiLFxuICAgIFwiQW1lcmljYS9Cb2dvdGFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9MaW1hXCIsXG4gICAgXCJBbWVyaWNhL0hhbGlmYXhcIixcbiAgICBcIkFtZXJpY2EvQ2FyYWNhc1wiLFxuICAgIFwiQW1lcmljYS9MYV9QYXpcIixcbiAgICBcIkFtZXJpY2EvU2FudGlhZ29cIixcbiAgICBcIkFtZXJpY2EvU3RfSm9obnNcIixcbiAgICBcIkFtZXJpY2EvU2FvX1BhdWxvXCIsXG4gICAgXCJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXNcIixcbiAgICBcIkFtZXJpY2EvR3V5YW5hXCIsXG4gICAgXCJBbWVyaWNhL0dvZHRoYWJcIixcbiAgICBcIkF0bGFudGljL1NvdXRoX0dlb3JnaWFcIixcbiAgICBcIkF0bGFudGljL0F6b3Jlc1wiLFxuICAgIFwiQXRsYW50aWMvQ2FwZV9WZXJkZVwiLFxuICAgIFwiRXVyb3BhL0R1YmxpblwiLFxuICAgIFwiRXVyb3BhL0xvbmRvblwiLFxuICAgIFwiRXVyb3BhL0xpc2JvblwiLFxuICAgIFwiRXVyb3BhL0xvbmRvblwiLFxuICAgIFwiQWZyaWNhL0Nhc2FibGFuY2FcIixcbiAgICBcIkFmcmljYS9Nb25yb3ZpYVwiLFxuICAgIFwiRXRjL1VUQ1wiLFxuICAgIFwiRXVyb3BhL0JlbGdyYWRlXCIsXG4gICAgXCJFdXJvcGEvQnJhdGlzbGF2YVwiLFxuICAgIFwiRXVyb3BhL0J1ZGFwZXN0XCIsXG4gICAgXCJFdXJvcGEvTGp1YmxqYW5hXCIsXG4gICAgXCJFdXJvcGEvUHJhZ3VlXCIsXG4gICAgXCJFdXJvcGEvU2FyYWpldm9cIixcbiAgICBcIkV1cm9wYS9Ta29wamVcIixcbiAgICBcIkV1cm9wYS9XYXJzYXdcIixcbiAgICBcIkV1cm9wYS9aYWdyZWJcIixcbiAgICBcIkV1cm9wYS9CcnVzc2Vsc1wiLFxuICAgIFwiRXVyb3BhL0NvcGVuaGFnZW5cIixcbiAgICBcIkV1cm9wYS9NYWRyaWRcIixcbiAgICBcIkV1cm9wYS9QYXJpc1wiLFxuICAgIFwiRXVyb3BhL0Ftc3RlcmRhbVwiLFxuICAgIFwiRXVyb3BhL0JlcmxpblwiLFxuICAgIFwiRXVyb3BhL0JlcmxpblwiLFxuICAgIFwiRXVyb3BhL1JvbWVcIixcbiAgICBcIkV1cm9wYS9TdG9ja2hvbG1cIixcbiAgICBcIkV1cm9wYS9WaWVubmFcIixcbiAgICBcIkFmcmljYS9BbGdpZXJzXCIsXG4gICAgXCJFdXJvcGEvQnVjaGFyZXN0XCIsXG4gICAgXCJBZnJpY2EvQ2Fpcm9cIixcbiAgICBcIkV1cm9wYS9IZWxzaW5raVwiLFxuICAgIFwiRXVyb3BhL0tpZXZcIixcbiAgICBcIkV1cm9wYS9SaWdhXCIsXG4gICAgXCJFdXJvcGEvU29maWFcIixcbiAgICBcIkV1cm9wYS9UYWxsaW5uXCIsXG4gICAgXCJFdXJvcGEvVmlsbml1c1wiLFxuICAgIFwiRXVyb3BhL0F0aGVuc1wiLFxuICAgIFwiRXVyb3BhL0lzdGFuYnVsXCIsXG4gICAgXCJFdXJvcGEvTWluc2tcIixcbiAgICBcIkFzaWEvSmVydXNhbGVuXCIsXG4gICAgXCJBZnJpY2EvSGFyYXJlXCIsXG4gICAgXCJBZnJpY2EvSm9oYW5uZXNidXJnXCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJBc2lhL0t1d2FpdFwiLFxuICAgIFwiQXNpYS9SaXlhZGhcIixcbiAgICBcIkFmcmljYS9OYWlyb2JpXCIsXG4gICAgXCJBc2lhL0JhZ2hkYWRcIixcbiAgICBcIkFzaWEvVGVocmFuXCIsXG4gICAgXCJBc2lhL011c2NhdFwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvQmFrdVwiLFxuICAgIFwiQXNpYS9UYmlsaXNpXCIsXG4gICAgXCJBc2lhL1llcmV2YW5cIixcbiAgICBcIkFzaWEvS2FidWxcIixcbiAgICBcIkFzaWEvWWVrYXRlcmluYnVyZ1wiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL0thcmFjaGlcIixcbiAgICBcIkFzaWEvVGFzaGtlbnRcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9LYXRobWFuZHVcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvQ29sb21ib1wiLFxuICAgIFwiQXNpYS9BbG1hdHlcIixcbiAgICBcIkFzaWEvTm92b3NpYmlyc2tcIixcbiAgICBcIkFzaWEvUmFuZ29vblwiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0Jhbmdrb2tcIixcbiAgICBcIkFzaWEvSmFrYXJ0YVwiLFxuICAgIFwiQXNpYS9LcmFzbm95YXJza1wiLFxuICAgIFwiQXNpYS9TaGFuZ2hhaVwiLFxuICAgIFwiQXNpYS9DaG9uZ3FpbmdcIixcbiAgICBcIkFzaWEvSG9uZ19Lb25nXCIsXG4gICAgXCJBc2lhL1VydW1xaVwiLFxuICAgIFwiQXNpYS9LdWFsYV9MdW1wdXJcIixcbiAgICBcIkFzaWEvU2luZ2Fwb3JlXCIsXG4gICAgXCJBc2lhL1RhaXBlaVwiLFxuICAgIFwiQXVzdHJhbGlhL1BlcnRoXCIsXG4gICAgXCJBc2lhL0lya3V0c2tcIixcbiAgICBcIkFzaWEvVWxhYW5iYWF0YXJcIixcbiAgICBcIkFzaWEvU2VvdWxcIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvWWFrdXRza1wiLFxuICAgIFwiQXVzdHJhbGlhL0RhcndpblwiLFxuICAgIFwiQXVzdHJhbGlhL0FkZWxhaWRlXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvU3lkbmV5XCIsXG4gICAgXCJBdXN0cmFsaWEvQnJpc2JhbmVcIixcbiAgICBcIkF1c3RyYWxpYS9Ib2JhcnRcIixcbiAgICBcIkFzaWEvVmxhZGl2b3N0b2tcIixcbiAgICBcIlBhY8OtZmljby9HdWFtXCIsXG4gICAgXCJQYWPDrWZpY28vUG9ydF9Nb3Jlc2J5XCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiUGFjw61maWNvL05vdW1lYVwiLFxuICAgIFwiUGFjw61maWNvL0ZpamlcIixcbiAgICBcIkFzaWEvS2FtY2hhdGthXCIsXG4gICAgXCJQYWPDrWZpY28vTWFqdXJvXCIsXG4gICAgXCJQYWPDrWZpY28vQXVja2xhbmRcIixcbiAgICBcIlBhY8OtZmljby9BdWNrbGFuZFwiLFxuICAgIFwiUGFjw61maWNvL1RvbmdhdGFwdVwiLFxuICAgIFwiUGFjw61maWNvL0Zha2FvZm9cIixcbiAgICBcIlBhY8OtZmljby9BcGlhXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9zdWZmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tzdHJlZXRfc3VmZml4fSAje05hbWUuZmlyc3RfbmFtZX0gI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9I3tidWlsZGluZ19udW1iZXJ9XCIsXG4gICAgXCIje3N0cmVldF9uYW1lfSN7YnVpbGRpbmdfbnVtYmVyfSAje3NlY29uZGFyeV9hZGRyZXNzfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkVzcGHDsWFcIlxuICBdXG59O1xuZXMuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUy5MLlwiLFxuICAgIFwiZSBIaWpvc1wiLFxuICAgIFwiUy5BLlwiLFxuICAgIFwiSGVybWFub3NcIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgICAgXCJoYWJpbGlkYWRcIixcbiAgICAgIFwiYWNjZXNvXCIsXG4gICAgICBcImFkYXB0YWRvclwiLFxuICAgICAgXCJhbGdvcml0bW9cIixcbiAgICAgIFwiYWxpYW56YVwiLFxuICAgICAgXCJhbmFsaXN0YVwiLFxuICAgICAgXCJhcGxpY2FjacOzblwiLFxuICAgICAgXCJlbmZvcXVlXCIsXG4gICAgICBcImFycXVpdGVjdHVyYVwiLFxuICAgICAgXCJhcmNoaXZvXCIsXG4gICAgICBcImludGVsaWdlbmNpYSBhcnRpZmljaWFsXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImFjdGl0dWRcIixcbiAgICAgIFwibWVkaWNpw7NuXCIsXG4gICAgICBcImdlc3Rpw7NuIHByZXN1cHVlc3RhcmlhXCIsXG4gICAgICBcImNhcGFjaWRhZFwiLFxuICAgICAgXCJkZXNhZsOtb1wiLFxuICAgICAgXCJjaXJjdWl0b1wiLFxuICAgICAgXCJjb2xhYm9yYWNpw7NuXCIsXG4gICAgICBcImNvbXBsZWppZGFkXCIsXG4gICAgICBcImNvbmNlcHRvXCIsXG4gICAgICBcImNvbmdsb21lcmFjacOzblwiLFxuICAgICAgXCJjb250aW5nZW5jaWFcIixcbiAgICAgIFwibsO6Y2xlb1wiLFxuICAgICAgXCJmaWRlbGlkYWRcIixcbiAgICAgIFwiYmFzZSBkZSBkYXRvc1wiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbmljacOzblwiLFxuICAgICAgXCJlbXVsYWNpw7NuXCIsXG4gICAgICBcImNvZGlmaWNhclwiLFxuICAgICAgXCJlbmNyaXB0YXJcIixcbiAgICAgIFwiZXh0cmFuZXRcIixcbiAgICAgIFwiZmlybXdhcmVcIixcbiAgICAgIFwiZmxleGliaWxpZGFkXCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcInByZXZpc2nDs25cIixcbiAgICAgIFwiYmFzZSBkZSB0cmFiYWpvXCIsXG4gICAgICBcImZ1bmNpw7NuXCIsXG4gICAgICBcImZ1bmNpb25hbGlkYWRcIixcbiAgICAgIFwiSW50ZXJmYXogR3LDoWZpY2FcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkludGVyZmF6IGdyw6FmaWNvIGRlIHVzdWFyaW9cIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiU29wb3J0ZVwiLFxuICAgICAgXCJqZXJhcnF1w61hXCIsXG4gICAgICBcImNvbmp1bnRvXCIsXG4gICAgICBcImltcGxlbWVudGFjacOzblwiLFxuICAgICAgXCJpbmZyYWVzdHJ1Y3R1cmFcIixcbiAgICAgIFwiaW5pY2lhdGl2YVwiLFxuICAgICAgXCJpbnN0YWxhY2nDs25cIixcbiAgICAgIFwiY29uanVudG8gZGUgaW5zdHJ1Y2Npb25lc1wiLFxuICAgICAgXCJpbnRlcmZhelwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJiYXNlIGRlbCBjb25vY2ltaWVudG9cIixcbiAgICAgIFwicmVkIGRlIGFyZWEgbG9jYWxcIixcbiAgICAgIFwiYXByb3ZlY2hhclwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtZXRvZG9sb2fDrWFzXCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmFjacOzblwiLFxuICAgICAgXCJtb2RlbG9cIixcbiAgICAgIFwibW9kZXJhZG9yXCIsXG4gICAgICBcIm1vbml0b3JpemFyXCIsXG4gICAgICBcImFycXVpdGVjdHVyYSBhYmllcnRhXCIsXG4gICAgICBcInNpc3RlbWEgYWJpZXJ0b1wiLFxuICAgICAgXCJvcnF1ZXN0YXJcIixcbiAgICAgIFwicGFyYWRpZ21hXCIsXG4gICAgICBcInBhcmFsZWxpc21vXCIsXG4gICAgICBcInBvbMOtdGljYVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwiZXN0cnVjdHVyYSBkZSBwcmVjaW9zXCIsXG4gICAgICBcInByb2Nlc28gZGUgbWVqb3JhXCIsXG4gICAgICBcInByb2R1Y3RvXCIsXG4gICAgICBcInByb2R1Y3RpdmlkYWRcIixcbiAgICAgIFwicHJveWVjdG9cIixcbiAgICAgIFwicHJveWVjY2nDs25cIixcbiAgICAgIFwicHJvdG9jb2xvXCIsXG4gICAgICBcImzDrW5lYSBzZWd1cmFcIixcbiAgICAgIFwic29mdHdhcmVcIixcbiAgICAgIFwic29sdWNpw7NuXCIsXG4gICAgICBcImVzdGFuZGFyZGl6YWNpw7NuXCIsXG4gICAgICBcImVzdHJhdGVnaWFcIixcbiAgICAgIFwiZXN0cnVjdHVyYVwiLFxuICAgICAgXCLDqXhpdG9cIixcbiAgICAgIFwic3VwZXJlc3RydWN0dXJhXCIsXG4gICAgICBcInNvcG9ydGVcIixcbiAgICAgIFwic2luZXJnaWFcIixcbiAgICAgIFwibWVkaWFudGVcIixcbiAgICAgIFwibWFyY28gZGUgdGllbXBvXCIsXG4gICAgICBcImNhamEgZGUgaGVycmFtaWVudGFzXCIsXG4gICAgICBcInV0aWxpemFjacOzblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcImZ1ZXJ6YSBkZSB0cmFiYWpvXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIjI0IGhvcmFzXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiM3JkIGdlbmVyYWNpw7NuXCIsXG4gICAgICBcIjR0aCBnZW5lcmFjacOzblwiLFxuICAgICAgXCI1dGggZ2VuZXJhY2nDs25cIixcbiAgICAgIFwiNnRoIGdlbmVyYWNpw7NuXCIsXG4gICAgICBcImFuYWxpemFkYVwiLFxuICAgICAgXCJhc2ltw6l0cmljYVwiLFxuICAgICAgXCJhc8OtbmNyb25hXCIsXG4gICAgICBcIm1vbml0b3JpemFkYSBwb3IgcmVkXCIsXG4gICAgICBcImJpZGlyZWNjaW9uYWxcIixcbiAgICAgIFwiYmlmdXJjYWRhXCIsXG4gICAgICBcImdlbmVyYWRhIHBvciBlbCBjbGllbnRlXCIsXG4gICAgICBcImNsaWVudGUgc2Vydmlkb3JcIixcbiAgICAgIFwiY29oZXJlbnRlXCIsXG4gICAgICBcImNvaGVzaXZhXCIsXG4gICAgICBcImNvbXB1ZXN0b1wiLFxuICAgICAgXCJzZW5zaWJsZSBhbCBjb250ZXh0b1wiLFxuICAgICAgXCJiYXNhZG8gZW4gZWwgY29udGV4dG9cIixcbiAgICAgIFwiYmFzYWRvIGVuIGNvbnRlbmlkb1wiLFxuICAgICAgXCJkZWRpY2FkYVwiLFxuICAgICAgXCJnZW5lcmFkbyBwb3IgbGEgZGVtYW5kYVwiLFxuICAgICAgXCJkaWRhY3RpY2FcIixcbiAgICAgIFwiZGlyZWNjaW9uYWxcIixcbiAgICAgIFwiZGlzY3JldGFcIixcbiAgICAgIFwiZGluw6FtaWNhXCIsXG4gICAgICBcInBvdGVuY2lhZGFcIixcbiAgICAgIFwiYWNvbXBhc2FkYVwiLFxuICAgICAgXCJlamVjdXRpdmFcIixcbiAgICAgIFwiZXhwbMOtY2l0YVwiLFxuICAgICAgXCJ0b2xlcmFudGUgYSBmYWxsb3NcIixcbiAgICAgIFwiaW5ub3ZhZG9yYVwiLFxuICAgICAgXCJhbXBsaW8gw6FiYW5pY29cIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImhldXLDrXN0aWNhXCIsXG4gICAgICBcImFsdG8gbml2ZWxcIixcbiAgICAgIFwiaG9sw61zdGljYVwiLFxuICAgICAgXCJob21vZ8OpbmVhXCIsXG4gICAgICBcImhpYnJpZGFcIixcbiAgICAgIFwiaW5jcmVtZW50YWxcIixcbiAgICAgIFwiaW50YW5naWJsZVwiLFxuICAgICAgXCJpbnRlcmFjdGl2YVwiLFxuICAgICAgXCJpbnRlcm1lZGlhXCIsXG4gICAgICBcImxvY2FsXCIsXG4gICAgICBcImxvZ8Otc3RpY2FcIixcbiAgICAgIFwibWF4aW1pemFkYVwiLFxuICAgICAgXCJtZXTDs2RpY2FcIixcbiAgICAgIFwibWlzacOzbiBjcsOtdGljYVwiLFxuICAgICAgXCJtw7NiaWxcIixcbiAgICAgIFwibW9kdWxhclwiLFxuICAgICAgXCJtb3RpdmFkb3JhXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGllc3RhZG9cIixcbiAgICAgIFwibXVsdGl0YXJlYVwiLFxuICAgICAgXCJuYWNpb25hbFwiLFxuICAgICAgXCJiYXNhZG8gZW4gbmVjZXNpZGFkZXNcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJudWV2YSBnZW5lcmFjacOzblwiLFxuICAgICAgXCJuby12b2zDoXRpbFwiLFxuICAgICAgXCJvcmllbnRhZG8gYSBvYmpldG9zXCIsXG4gICAgICBcIsOzcHRpbWFcIixcbiAgICAgIFwib3B0aW1pemFkYVwiLFxuICAgICAgXCJyYWRpY2FsXCIsXG4gICAgICBcInRpZW1wbyByZWFsXCIsXG4gICAgICBcInJlY8OtcHJvY2FcIixcbiAgICAgIFwicmVnaW9uYWxcIixcbiAgICAgIFwiZXNjYWxhYmxlXCIsXG4gICAgICBcInNlY3VuZGFyaWFcIixcbiAgICAgIFwib3JpZW50YWRhIGEgc29sdWNpb25lc1wiLFxuICAgICAgXCJlc3RhYmxlXCIsXG4gICAgICBcImVzdGF0aWNhXCIsXG4gICAgICBcInNpc3RlbcOhdGljYVwiLFxuICAgICAgXCJzaXN0w6ltaWNhXCIsXG4gICAgICBcInRhbmdpYmxlXCIsXG4gICAgICBcInRlcmNpYXJpYVwiLFxuICAgICAgXCJ0cmFuc2ljaW9uYWxcIixcbiAgICAgIFwidW5pZm9ybWVcIixcbiAgICAgIFwidmFsb3IgYcOxYWRpZG9cIixcbiAgICAgIFwidsOtYSB3ZWJcIixcbiAgICAgIFwiZGVmZWN0b3MgY2Vyb1wiLFxuICAgICAgXCJ0b2xlcmFuY2lhIGNlcm9cIlxuICAgIF0sXG4gICAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJBZGFwdGF0aXZvXCIsXG4gICAgICBcIkF2YW56YWRvXCIsXG4gICAgICBcIkFzaW1pbGFkb1wiLFxuICAgICAgXCJBdXRvbWF0aXphZG9cIixcbiAgICAgIFwiRXF1aWxpYnJhZG9cIixcbiAgICAgIFwiQ2VudHJhZG8gZW4gZWwgbmVnb2Npb1wiLFxuICAgICAgXCJDZW50cmFsaXphZG9cIixcbiAgICAgIFwiQ2xvbmFkb1wiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJNdWx0aSBncnVwb1wiLFxuICAgICAgXCJNdWx0aSBwbGF0YWZvcm1hXCIsXG4gICAgICBcIkNlbnRyYWRvIGVuIGVsIHVzdWFyaW9cIixcbiAgICAgIFwiQ29uZmlndXJhYmxlXCIsXG4gICAgICBcIkRlc2NlbnRyYWxpemFkb1wiLFxuICAgICAgXCJEaWdpdGFsaXphZG9cIixcbiAgICAgIFwiRGlzdHJpYnVpZG9cIixcbiAgICAgIFwiRGl2ZXJzb1wiLFxuICAgICAgXCJSZWR1Y2lkb1wiLFxuICAgICAgXCJNZWpvcmFkb1wiLFxuICAgICAgXCJQYXJhIHRvZGEgbGEgZW1wcmVzYVwiLFxuICAgICAgXCJFcmdvbm9taWNvXCIsXG4gICAgICBcIkV4Y2x1c2l2b1wiLFxuICAgICAgXCJFeHBhbmRpZG9cIixcbiAgICAgIFwiRXh0ZW5kaWRvXCIsXG4gICAgICBcIkNhcmEgYSBjYXJhXCIsXG4gICAgICBcIkVuZm9jYWRvXCIsXG4gICAgICBcIlRvdGFsbWVudGUgY29uZmlndXJhYmxlXCIsXG4gICAgICBcIkZ1bmRhbWVudGFsXCIsXG4gICAgICBcIk9yw61nZW5lc1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGFkb1wiLFxuICAgICAgXCJJbm5vdmFkb3JcIixcbiAgICAgIFwiSW50ZWdyYWRvXCIsXG4gICAgICBcIkludHVpdGl2b1wiLFxuICAgICAgXCJJbnZlcnNvXCIsXG4gICAgICBcIkdlc3Rpb25hZG9cIixcbiAgICAgIFwiT2JsaWdhdG9yaW9cIixcbiAgICAgIFwiTW9uaXRvcml6YWRvXCIsXG4gICAgICBcIk11bHRpIGNhbmFsXCIsXG4gICAgICBcIk11bHRpIGxhdGVyYWxcIixcbiAgICAgIFwiTXVsdGkgY2FwYVwiLFxuICAgICAgXCJFbiByZWRcIixcbiAgICAgIFwiT3JpZW50YWRvIGEgb2JqZXRvc1wiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdm9cIixcbiAgICAgIFwiT3B0aW1pemFkb1wiLFxuICAgICAgXCJPcGNpb25hbFwiLFxuICAgICAgXCJPcmdhbmljb1wiLFxuICAgICAgXCJPcmdhbml6YWRvXCIsXG4gICAgICBcIlBlcnNldmVyYW5kb1wiLFxuICAgICAgXCJQZXJzaXN0ZW50ZVwiLFxuICAgICAgXCJlbiBmYXNlc1wiLFxuICAgICAgXCJQb2xhcml6YWRvXCIsXG4gICAgICBcIlByZS1lbXB0aXZvXCIsXG4gICAgICBcIlByb2FjdGl2b1wiLFxuICAgICAgXCJFbmZvY2FkbyBhIGJlbmZpY2lvc1wiLFxuICAgICAgXCJQcm9mdW5kb1wiLFxuICAgICAgXCJQcm9ncmFtYWJsZVwiLFxuICAgICAgXCJQcm9ncmVzaXZvXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiRW5mb2NhZG8gZW4gbGEgY2FsaWRhZFwiLFxuICAgICAgXCJSZWFjdGl2b1wiLFxuICAgICAgXCJSZWFsaW5lYWRvXCIsXG4gICAgICBcIlJlLWNvbnRleHR1YWxpemFkb1wiLFxuICAgICAgXCJSZS1pbXBsZW1lbnRhZG9cIixcbiAgICAgIFwiUmVkdWNpZG9cIixcbiAgICAgIFwiSW5nZW5pZXJpYSBpbnZlcnNhXCIsXG4gICAgICBcIlJvYnVzdG9cIixcbiAgICAgIFwiRsOhY2lsXCIsXG4gICAgICBcIlNlZ3Vyb1wiLFxuICAgICAgXCJBdXRvIHByb3BvcmNpb25hXCIsXG4gICAgICBcIkNvbXBhcnRpYmxlXCIsXG4gICAgICBcIkludGVyY2FtYmlhYmxlXCIsXG4gICAgICBcIlNpbmNyb25pemFkb1wiLFxuICAgICAgXCJPcmllbnRhZG8gYSBlcXVpcG9zXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlVuaXZlcnNhbFwiLFxuICAgICAgXCJNZWpvcmFkb1wiLFxuICAgICAgXCJBY3R1YWxpemFibGVcIixcbiAgICAgIFwiQ2VudHJhZG8gZW4gZWwgdXN1YXJpb1wiLFxuICAgICAgXCJBbWlnYWJsZVwiLFxuICAgICAgXCJWZXJzYXRpbFwiLFxuICAgICAgXCJWaXJ0dWFsXCIsXG4gICAgICBcIlZpc2lvbmFyaW9cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSB5ICN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSB5ICN7TmFtZS5sYXN0X25hbWV9IEFzb2NpYWRvc1wiXG4gIF1cbn07XG5lcy5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImVzXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJjb20uZXNcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5lcy5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWTDoW5cIixcbiAgICBcIkFndXN0w61uXCIsXG4gICAgXCJBbGJlcnRvXCIsXG4gICAgXCJBbGVqYW5kcm9cIixcbiAgICBcIkFsZm9uc29cIixcbiAgICBcIkFsZnJlZG9cIixcbiAgICBcIkFuZHLDqXNcIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFybWFuZG9cIixcbiAgICBcIkFydHVyb1wiLFxuICAgIFwiQmVuaXRvXCIsXG4gICAgXCJCZW5qYW3DrW5cIixcbiAgICBcIkJlcm5hcmRvXCIsXG4gICAgXCJDYXJsb3NcIixcbiAgICBcIkPDqXNhclwiLFxuICAgIFwiQ2xhdWRpb1wiLFxuICAgIFwiQ2xlbWVudGVcIixcbiAgICBcIkNyaXN0aWFuXCIsXG4gICAgXCJDcmlzdG9iYWxcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGF2aWRcIixcbiAgICBcIkRpZWdvXCIsXG4gICAgXCJFZHVhcmRvXCIsXG4gICAgXCJFbWlsaW9cIixcbiAgICBcIkVucmlxdWVcIixcbiAgICBcIkVybmVzdG9cIixcbiAgICBcIkVzdGViYW5cIixcbiAgICBcIkZlZGVyaWNvXCIsXG4gICAgXCJGZWxpcGVcIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGcmFuY2lzY29cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlcmFyZG9cIixcbiAgICBcIkdlcm3DoW5cIixcbiAgICBcIkdpbGJlcnRvXCIsXG4gICAgXCJHb256YWxvXCIsXG4gICAgXCJHcmVnb3Jpb1wiLFxuICAgIFwiR3VpbGxlcm1vXCIsXG4gICAgXCJHdXN0YXZvXCIsXG4gICAgXCJIZXJuw6FuXCIsXG4gICAgXCJIb21lcm9cIixcbiAgICBcIkhvcmFjaW9cIixcbiAgICBcIkh1Z29cIixcbiAgICBcIklnbmFjaW9cIixcbiAgICBcIkphY29ib1wiLFxuICAgIFwiSmFpbWVcIixcbiAgICBcIkphdmllclwiLFxuICAgIFwiSmVyw7NuaW1vXCIsXG4gICAgXCJKZXPDunNcIixcbiAgICBcIkpvYXF1w61uXCIsXG4gICAgXCJKb3JnZVwiLFxuICAgIFwiSm9yZ2UgTHVpc1wiLFxuICAgIFwiSm9zw6lcIixcbiAgICBcIkpvc8OpIEVkdWFyZG9cIixcbiAgICBcIkpvc8OpIEVtaWxpb1wiLFxuICAgIFwiSm9zw6kgTHVpc1wiLFxuICAgIFwiSm9zw6kgTWFyw61hXCIsXG4gICAgXCJKdWFuXCIsXG4gICAgXCJKdWFuIENhcmxvc1wiLFxuICAgIFwiSnVsaW9cIixcbiAgICBcIkp1bGlvIEPDqXNhclwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkx1aXNcIixcbiAgICBcIkx1aXMgTWlndWVsXCIsXG4gICAgXCJNYW51ZWxcIixcbiAgICBcIk1hcmNvIEFudG9uaW9cIixcbiAgICBcIk1hcmNvc1wiLFxuICAgIFwiTWFyaWFub1wiLFxuICAgIFwiTWFyaW9cIixcbiAgICBcIk1hcnTDrW5cIixcbiAgICBcIk1hdGVvXCIsXG4gICAgXCJNaWd1ZWxcIixcbiAgICBcIk1pZ3VlbCDDgW5nZWxcIixcbiAgICBcIk5pY29sw6FzXCIsXG4gICAgXCJPY3RhdmlvXCIsXG4gICAgXCLDk3NjYXJcIixcbiAgICBcIlBhYmxvXCIsXG4gICAgXCJQYXRyaWNpb1wiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFtaXJvXCIsXG4gICAgXCJSYW3Ds25cIixcbiAgICBcIlJhw7psXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSb2JlcnRvXCIsXG4gICAgXCJSb2RyaWdvXCIsXG4gICAgXCJSdWLDqW5cIixcbiAgICBcIlNhbHZhZG9yXCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIlNhbmNob1wiLFxuICAgIFwiU2FudGlhZ29cIixcbiAgICBcIlNlcmdpb1wiLFxuICAgIFwiVGVvZG9yb1wiLFxuICAgIFwiVGltb3Rlb1wiLFxuICAgIFwiVG9tw6FzXCIsXG4gICAgXCJWaWNlbnRlXCIsXG4gICAgXCJWw61jdG9yXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWxlamFuZHJhXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmEgTHVpc2FcIixcbiAgICBcIkFuYSBNYXLDrWFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW5pdGFcIixcbiAgICBcIsOBbmdlbGFcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFyaWFkbmFcIixcbiAgICBcIkJhcmJhcmFcIixcbiAgICBcIkJlYXRyaXpcIixcbiAgICBcIkJlcnRhXCIsXG4gICAgXCJCbGFuY2FcIixcbiAgICBcIkNhcmlkYWRcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJDYXJsb3RhXCIsXG4gICAgXCJDYXJtZW5cIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXRhbGluYVwiLFxuICAgIFwiQ2VjaWxpYVwiLFxuICAgIFwiQ2xhcmFcIixcbiAgICBcIkNsYXVkaWFcIixcbiAgICBcIkNvbmNlcGNpw7NuXCIsXG4gICAgXCJDb25jaGl0YVwiLFxuICAgIFwiQ3Jpc3RpbmFcIixcbiAgICBcIkRhbmllbGFcIixcbiAgICBcIkTDqWJvcmFcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEb2xvcmVzXCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJEb3JvdGVhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxpc2FcIixcbiAgICBcIkVsb2lzYVwiLFxuICAgIFwiRWxzYVwiLFxuICAgIFwiRWx2aXJhXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVzcGVyYW56YVwiLFxuICAgIFwiRXN0ZWxhXCIsXG4gICAgXCJFc3RlclwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJGbG9yZW5jaWFcIixcbiAgICBcIkZyYW5jaXNjYVwiLFxuICAgIFwiR2FicmllbGFcIixcbiAgICBcIkdsb3JpYVwiLFxuICAgIFwiR3JhY2llbGFcIixcbiAgICBcIkd1YWRhbHVwZVwiLFxuICAgIFwiR3VpbGxlcm1pbmFcIixcbiAgICBcIkluw6lzXCIsXG4gICAgXCJJcmVuZVwiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxhXCIsXG4gICAgXCJKb3NlZmluYVwiLFxuICAgIFwiSnVhbmFcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGVvbm9yXCIsXG4gICAgXCJMZXRpY2lhXCIsXG4gICAgXCJMaWxpYVwiLFxuICAgIFwiTG9yZW5hXCIsXG4gICAgXCJMb3VyZGVzXCIsXG4gICAgXCJMdWNpYVwiLFxuICAgIFwiTHVpc2FcIixcbiAgICBcIkx1elwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYW51ZWxhXCIsXG4gICAgXCJNYXJjZWxhXCIsXG4gICAgXCJNYXJnYXJpdGFcIixcbiAgICBcIk1hcsOtYVwiLFxuICAgIFwiTWFyw61hIGRlbCBDYXJtZW5cIixcbiAgICBcIk1hcsOtYSBDcmlzdGluYVwiLFxuICAgIFwiTWFyw61hIEVsZW5hXCIsXG4gICAgXCJNYXLDrWEgRXVnZW5pYVwiLFxuICAgIFwiTWFyw61hIEpvc8OpXCIsXG4gICAgXCJNYXLDrWEgTHVpc2FcIixcbiAgICBcIk1hcsOtYSBTb2xlZGFkXCIsXG4gICAgXCJNYXLDrWEgVGVyZXNhXCIsXG4gICAgXCJNYXJpYW5hXCIsXG4gICAgXCJNYXJpY2FybWVuXCIsXG4gICAgXCJNYXJpbHVcIixcbiAgICBcIk1hcmlzb2xcIixcbiAgICBcIk1hcnRhXCIsXG4gICAgXCJNYXl0ZVwiLFxuICAgIFwiTWVyY2VkZXNcIixcbiAgICBcIk1pY2FlbGFcIixcbiAgICBcIk3Ds25pY2FcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5vcm1hXCIsXG4gICAgXCJPbGl2aWFcIixcbiAgICBcIlBhdHJpY2lhXCIsXG4gICAgXCJQaWxhclwiLFxuICAgIFwiUmFtb25hXCIsXG4gICAgXCJSYXF1ZWxcIixcbiAgICBcIlJlYmVjYVwiLFxuICAgIFwiUmVpbmFcIixcbiAgICBcIlJvY2lvXCIsXG4gICAgXCJSb3NhXCIsXG4gICAgXCJSb3NhbGlhXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJTaWx2aWFcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJTb2xlZGFkXCIsXG4gICAgXCJTb25pYVwiLFxuICAgIFwiU3VzYW5hXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIlZlcsOzbmljYVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpcmdpbmlhXCIsXG4gICAgXCJZb2xhbmRhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJleXRhXCIsXG4gICAgXCJBYnJlZ29cIixcbiAgICBcIkFicmV1XCIsXG4gICAgXCJBY2V2ZWRvXCIsXG4gICAgXCJBY29zdGFcIixcbiAgICBcIkFjdcOxYVwiLFxuICAgIFwiQWRhbWVcIixcbiAgICBcIkFkb3Jub1wiLFxuICAgIFwiQWdvc3RvXCIsXG4gICAgXCJBZ3VheW9cIixcbiAgICBcIsOBZ3VpbGFyXCIsXG4gICAgXCJBZ3VpbGVyYVwiLFxuICAgIFwiQWd1aXJyZVwiLFxuICAgIFwiQWxhbmlzXCIsXG4gICAgXCJBbGFuaXpcIixcbiAgICBcIkFsYXJjw7NuXCIsXG4gICAgXCJBbGJhXCIsXG4gICAgXCJBbGNhbGFcIixcbiAgICBcIkFsY8OhbnRhclwiLFxuICAgIFwiQWxjYXJhelwiLFxuICAgIFwiQWxlamFuZHJvXCIsXG4gICAgXCJBbGVtw6FuXCIsXG4gICAgXCJBbGZhcm9cIixcbiAgICBcIkFsaWNlYVwiLFxuICAgIFwiQWxtYW56YVwiLFxuICAgIFwiQWxtYXJhelwiLFxuICAgIFwiQWxtb250ZVwiLFxuICAgIFwiQWxvbnNvXCIsXG4gICAgXCJBbG9uem9cIixcbiAgICBcIkFsdGFtaXJhbm9cIixcbiAgICBcIkFsdmFcIixcbiAgICBcIkFsdmFyYWRvXCIsXG4gICAgXCJBbHZhcmV6XCIsXG4gICAgXCJBbWFkb3JcIixcbiAgICBcIkFtYXlhXCIsXG4gICAgXCJBbmF5YVwiLFxuICAgIFwiQW5ndWlhbm9cIixcbiAgICBcIkFuZ3Vsb1wiLFxuICAgIFwiQXBhcmljaW9cIixcbiAgICBcIkFwb2RhY2FcIixcbiAgICBcIkFwb250ZVwiLFxuICAgIFwiQXJhZ8OzblwiLFxuICAgIFwiQXJhw7FhXCIsXG4gICAgXCJBcmFuZGFcIixcbiAgICBcIkFyY2VcIixcbiAgICBcIkFyY2h1bGV0YVwiLFxuICAgIFwiQXJlbGxhbm9cIixcbiAgICBcIkFyZW5hc1wiLFxuICAgIFwiQXJldmFsb1wiLFxuICAgIFwiQXJndWVsbG9cIixcbiAgICBcIkFyaWFzXCIsXG4gICAgXCJBcm1hc1wiLFxuICAgIFwiQXJtZW5kw6FyaXpcIixcbiAgICBcIkFybWVudGFcIixcbiAgICBcIkFybWlqb1wiLFxuICAgIFwiQXJyZWRvbmRvXCIsXG4gICAgXCJBcnJlb2xhXCIsXG4gICAgXCJBcnJpYWdhXCIsXG4gICAgXCJBcnJveW9cIixcbiAgICBcIkFydGVhZ2FcIixcbiAgICBcIkF0ZW5jaW9cIixcbiAgICBcIsOBdmFsb3NcIixcbiAgICBcIsOBdmlsYVwiLFxuICAgIFwiQXZpbMOpc1wiLFxuICAgIFwiQXlhbGFcIixcbiAgICBcIkJhY2FcIixcbiAgICBcIkJhZGlsbG9cIixcbiAgICBcIkLDoWV6XCIsXG4gICAgXCJCYWV6YVwiLFxuICAgIFwiQmFoZW5hXCIsXG4gICAgXCJCYWxkZXJhc1wiLFxuICAgIFwiQmFsbGVzdGVyb3NcIixcbiAgICBcIkJhbmRhXCIsXG4gICAgXCJCYcOxdWVsb3NcIixcbiAgICBcIkJhcmFqYXNcIixcbiAgICBcIkJhcmVsYVwiLFxuICAgIFwiQmFycmFnw6FuXCIsXG4gICAgXCJCYXJyYXphXCIsXG4gICAgXCJCYXJyZXJhXCIsXG4gICAgXCJCYXJyZXRvXCIsXG4gICAgXCJCYXJyaWVudG9zXCIsXG4gICAgXCJCYXJyaW9zXCIsXG4gICAgXCJCYXRpc3RhXCIsXG4gICAgXCJCZWNlcnJhXCIsXG4gICAgXCJCZWx0csOhblwiLFxuICAgIFwiQmVuYXZpZGVzXCIsXG4gICAgXCJCZW5hdsOtZGV6XCIsXG4gICAgXCJCZW7DrXRlelwiLFxuICAgIFwiQmVybcO6ZGV6XCIsXG4gICAgXCJCZXJuYWxcIixcbiAgICBcIkJlcnLDrW9zXCIsXG4gICAgXCJCw6l0YW5jb3VydFwiLFxuICAgIFwiQmxhbmNvXCIsXG4gICAgXCJCb25pbGxhXCIsXG4gICAgXCJCb3JyZWdvXCIsXG4gICAgXCJCb3RlbGxvXCIsXG4gICAgXCJCcmF2b1wiLFxuICAgIFwiQnJpb25lc1wiLFxuICAgIFwiQnJpc2XDsW9cIixcbiAgICBcIkJyaXRvXCIsXG4gICAgXCJCdWVub1wiLFxuICAgIFwiQnVyZ29zXCIsXG4gICAgXCJCdXN0YW1hbnRlXCIsXG4gICAgXCJCdXN0b3NcIixcbiAgICBcIkNhYmFsbGVyb1wiLFxuICAgIFwiQ2Fiw6FuXCIsXG4gICAgXCJDYWJyZXJhXCIsXG4gICAgXCJDYWRlbmFcIixcbiAgICBcIkNhbGRlcmFcIixcbiAgICBcIkNhbGRlcsOzblwiLFxuICAgIFwiQ2FsdmlsbG9cIixcbiAgICBcIkNhbWFjaG9cIixcbiAgICBcIkNhbWFyaWxsb1wiLFxuICAgIFwiQ2FtcG9zXCIsXG4gICAgXCJDYW5hbGVzXCIsXG4gICAgXCJDYW5kZWxhcmlhXCIsXG4gICAgXCJDYW5vXCIsXG4gICAgXCJDYW50w7pcIixcbiAgICBcIkNhcmFiYWxsb1wiLFxuICAgIFwiQ2FyYmFqYWxcIixcbiAgICBcIkNhcmRlbmFzXCIsXG4gICAgXCJDYXJkb25hXCIsXG4gICAgXCJDYXJtb25hXCIsXG4gICAgXCJDYXJyYW56YVwiLFxuICAgIFwiQ2FycmFzY29cIixcbiAgICBcIkNhcnJhc3F1aWxsb1wiLFxuICAgIFwiQ2FycmXDs25cIixcbiAgICBcIkNhcnJlcmFcIixcbiAgICBcIkNhcnJlcm9cIixcbiAgICBcIkNhcnJpbGxvXCIsXG4gICAgXCJDYXJyaW9uXCIsXG4gICAgXCJDYXJ2YWphbFwiLFxuICAgIFwiQ2FzYW5vdmFcIixcbiAgICBcIkNhc2FyZXNcIixcbiAgICBcIkNhc8OhcmV6XCIsXG4gICAgXCJDYXNhc1wiLFxuICAgIFwiQ2FzaWxsYXNcIixcbiAgICBcIkNhc3Rhw7FlZGFcIixcbiAgICBcIkNhc3RlbGxhbm9zXCIsXG4gICAgXCJDYXN0aWxsb1wiLFxuICAgIFwiQ2FzdHJvXCIsXG4gICAgXCJDYXZhem9zXCIsXG4gICAgXCJDYXphcmVzXCIsXG4gICAgXCJDZWJhbGxvc1wiLFxuICAgIFwiQ2VkaWxsb1wiLFxuICAgIFwiQ2VqYVwiLFxuICAgIFwiQ2VudGVub1wiLFxuICAgIFwiQ2VwZWRhXCIsXG4gICAgXCJDZXJkYVwiLFxuICAgIFwiQ2VydmFudGVzXCIsXG4gICAgXCJDZXJ2w6FudGV6XCIsXG4gICAgXCJDaGFjw7NuXCIsXG4gICAgXCJDaGFwYVwiLFxuICAgIFwiQ2hhdmFycsOtYVwiLFxuICAgIFwiQ2jDoXZlelwiLFxuICAgIFwiQ2ludHLDs25cIixcbiAgICBcIkNpc25lcm9zXCIsXG4gICAgXCJDb2xsYWRvXCIsXG4gICAgXCJDb2xsYXpvXCIsXG4gICAgXCJDb2zDs25cIixcbiAgICBcIkNvbHVuZ2FcIixcbiAgICBcIkNvbmNlcGNpw7NuXCIsXG4gICAgXCJDb250cmVyYXNcIixcbiAgICBcIkNvcmRlcm9cIixcbiAgICBcIkPDs3Jkb3ZhXCIsXG4gICAgXCJDb3JuZWpvXCIsXG4gICAgXCJDb3JvbmFcIixcbiAgICBcIkNvcm9uYWRvXCIsXG4gICAgXCJDb3JyYWxcIixcbiAgICBcIkNvcnJhbGVzXCIsXG4gICAgXCJDb3JyZWFcIixcbiAgICBcIkNvcnTDqXNcIixcbiAgICBcIkNvcnRlelwiLFxuICAgIFwiQ290dG9cIixcbiAgICBcIkNvdmFycnViaWFzXCIsXG4gICAgXCJDcmVzcG9cIixcbiAgICBcIkNydXpcIixcbiAgICBcIkN1ZWxsYXJcIixcbiAgICBcIkN1cmllbFwiLFxuICAgIFwiRMOhdmlsYVwiLFxuICAgIFwiZGUgQW5kYVwiLFxuICAgIFwiZGUgSmVzw7pzXCIsXG4gICAgXCJEZWxhY3LDunpcIixcbiAgICBcIkRlbGFmdWVudGVcIixcbiAgICBcIkRlbGFnYXJ6YVwiLFxuICAgIFwiRGVsYW9cIixcbiAgICBcIkRlbGFwYXpcIixcbiAgICBcIkRlbGFyb3NhXCIsXG4gICAgXCJEZWxhdG9ycmVcIixcbiAgICBcIkRlbGXDs25cIixcbiAgICBcIkRlbGdhZGlsbG9cIixcbiAgICBcIkRlbGdhZG9cIixcbiAgICBcIkRlbHLDrW9cIixcbiAgICBcIkRlbHZhbGxlXCIsXG4gICAgXCJEw61helwiLFxuICAgIFwiRG9tw61uZ3VlelwiLFxuICAgIFwiRG9tw61ucXVlelwiLFxuICAgIFwiRHVhcnRlXCIsXG4gICAgXCJEdWXDsWFzXCIsXG4gICAgXCJEdXJhblwiLFxuICAgIFwiRWNoZXZhcnLDrWFcIixcbiAgICBcIkVsaXpvbmRvXCIsXG4gICAgXCJFbnLDrXF1ZXpcIixcbiAgICBcIkVzY2FsYW50ZVwiLFxuICAgIFwiRXNjYW1pbGxhXCIsXG4gICAgXCJFc2NvYmFyXCIsXG4gICAgXCJFc2NvYmVkb1wiLFxuICAgIFwiRXNwYXJ6YVwiLFxuICAgIFwiRXNwaW5hbFwiLFxuICAgIFwiRXNwaW5vXCIsXG4gICAgXCJFc3Bpbm9zYVwiLFxuICAgIFwiRXNwaW5vemFcIixcbiAgICBcIkVzcXVpYmVsXCIsXG4gICAgXCJFc3F1aXZlbFwiLFxuICAgIFwiRXN0w6l2ZXpcIixcbiAgICBcIkVzdHJhZGFcIixcbiAgICBcIkZhamFyZG9cIixcbiAgICBcIkZhcsOtYXNcIixcbiAgICBcIkZlbGljaWFub1wiLFxuICAgIFwiRmVybsOhbmRlelwiLFxuICAgIFwiRmVycmVyXCIsXG4gICAgXCJGaWVycm9cIixcbiAgICBcIkZpZ3Vlcm9hXCIsXG4gICAgXCJGbG9yZXNcIixcbiAgICBcIkZsw7NyZXpcIixcbiAgICBcIkZvbnNlY2FcIixcbiAgICBcIkZyYW5jb1wiLFxuICAgIFwiRnLDrWFzXCIsXG4gICAgXCJGdWVudGVzXCIsXG4gICAgXCJHYWl0w6FuXCIsXG4gICAgXCJHYWxhcnphXCIsXG4gICAgXCJHYWxpbmRvXCIsXG4gICAgXCJHYWxsYXJkb1wiLFxuICAgIFwiR2FsbGVnb3NcIixcbiAgICBcIkdhbHbDoW5cIixcbiAgICBcIkfDoWx2ZXpcIixcbiAgICBcIkdhbWJvYVwiLFxuICAgIFwiR2FtZXpcIixcbiAgICBcIkdhb25hXCIsXG4gICAgXCJHYXJheVwiLFxuICAgIFwiR2FyY8OtYVwiLFxuICAgIFwiR2FyaWJheVwiLFxuICAgIFwiR2FyaWNhXCIsXG4gICAgXCJHYXJyaWRvXCIsXG4gICAgXCJHYXJ6YVwiLFxuICAgIFwiR2FzdMOpbHVtXCIsXG4gICAgXCJHYXl0w6FuXCIsXG4gICAgXCJHaWxcIixcbiAgICBcIkdpcsOzblwiLFxuICAgIFwiR29kw61uZXpcIixcbiAgICBcIkdvZG95XCIsXG4gICAgXCJHw7NtZXpcIixcbiAgICBcIkdvbnphbGVzXCIsXG4gICAgXCJHb256w6FsZXpcIixcbiAgICBcIkdvbGx1bVwiLFxuICAgIFwiR3JhY2lhXCIsXG4gICAgXCJHcmFuYWRvXCIsXG4gICAgXCJHcmFuYWRvc1wiLFxuICAgIFwiR3JpZWdvXCIsXG4gICAgXCJHcmlqYWx2YVwiLFxuICAgIFwiR3VhamFyZG9cIixcbiAgICBcIkd1YXJkYWRvXCIsXG4gICAgXCJHdWVycmFcIixcbiAgICBcIkd1ZXJyZXJvXCIsXG4gICAgXCJHdWV2YXJhXCIsXG4gICAgXCJHdWlsbGVuXCIsXG4gICAgXCJHdXJ1bGVcIixcbiAgICBcIkd1dGnDqXJyZXpcIixcbiAgICBcIkd1em3DoW5cIixcbiAgICBcIkhhcm9cIixcbiAgICBcIkhlbnLDrXF1ZXpcIixcbiAgICBcIkhlcmVkaWFcIixcbiAgICBcIkhlcm7DoWRlelwiLFxuICAgIFwiSGVybmFuZGVzXCIsXG4gICAgXCJIZXJuw6FuZGV6XCIsXG4gICAgXCJIZXJyZXJhXCIsXG4gICAgXCJIaWRhbGdvXCIsXG4gICAgXCJIaW5vam9zYVwiLFxuICAgIFwiSG9sZ3XDrW5cIixcbiAgICBcIkh1ZXJ0YVwiLFxuICAgIFwiSHVydGFkb1wiLFxuICAgIFwiSWJhcnJhXCIsXG4gICAgXCJJZ2xlc2lhc1wiLFxuICAgIFwiSXJpemFycnlcIixcbiAgICBcIkphaW1lXCIsXG4gICAgXCJKYWltZXNcIixcbiAgICBcIkrDoXF1ZXpcIixcbiAgICBcIkphcmFtaWxsb1wiLFxuICAgIFwiSmFzc29cIixcbiAgICBcIkppbcOpbmV6XCIsXG4gICAgXCJKaW3DrW5lelwiLFxuICAgIFwiSnXDoXJlelwiLFxuICAgIFwiSnVyYWRvXCIsXG4gICAgXCJMYWJveVwiLFxuICAgIFwiTGFyYVwiLFxuICAgIFwiTGF1cmVhbm9cIixcbiAgICBcIkxlYWxcIixcbiAgICBcIkxlYnLDs25cIixcbiAgICBcIkxlZGVzbWFcIixcbiAgICBcIkxlaXZhXCIsXG4gICAgXCJMZW11c1wiLFxuICAgIFwiTGXDs25cIixcbiAgICBcIkxlcm1hXCIsXG4gICAgXCJMZXl2YVwiLFxuICAgIFwiTGltw7NuXCIsXG4gICAgXCJMaW5hcmVzXCIsXG4gICAgXCJMaXJhXCIsXG4gICAgXCJMbGFtYXNcIixcbiAgICBcIkxvZXJhXCIsXG4gICAgXCJMb21lbGlcIixcbiAgICBcIkxvbmdvcmlhXCIsXG4gICAgXCJMw7NwZXpcIixcbiAgICBcIkxvdmF0b1wiLFxuICAgIFwiTG95YVwiLFxuICAgIFwiTG96YWRhXCIsXG4gICAgXCJMb3phbm9cIixcbiAgICBcIkx1Y2Vyb1wiLFxuICAgIFwiTHVjaW9cIixcbiAgICBcIkx1ZXZhbm9cIixcbiAgICBcIkx1Z29cIixcbiAgICBcIkx1bmFcIixcbiAgICBcIk1hY8OtYXNcIixcbiAgICBcIk1hZGVyYVwiLFxuICAgIFwiTWFkcmlkXCIsXG4gICAgXCJNYWRyaWdhbFwiLFxuICAgIFwiTWFlc3Rhc1wiLFxuICAgIFwiTWFnYcOxYVwiLFxuICAgIFwiTWFsYXZlXCIsXG4gICAgXCJNYWxkb25hZG9cIixcbiAgICBcIk1hbnphbmFyZXNcIixcbiAgICBcIk1hcmVzXCIsXG4gICAgXCJNYXLDrW5cIixcbiAgICBcIk3DoXJxdWV6XCIsXG4gICAgXCJNYXJyZXJvXCIsXG4gICAgXCJNYXJyb3F1w61uXCIsXG4gICAgXCJNYXJ0w61uZXpcIixcbiAgICBcIk1hc2NhcmXDsWFzXCIsXG4gICAgXCJNYXRhXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWF0w61hc1wiLFxuICAgIFwiTWF0b3NcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heW9yZ2FcIixcbiAgICBcIk1lZGluYVwiLFxuICAgIFwiTWVkcmFub1wiLFxuICAgIFwiTWVqw61hXCIsXG4gICAgXCJNZWzDqW5kZXpcIixcbiAgICBcIk1lbGdhclwiLFxuICAgIFwiTWVuYVwiLFxuICAgIFwiTWVuY2hhY2FcIixcbiAgICBcIk3DqW5kZXpcIixcbiAgICBcIk1lbmRvemFcIixcbiAgICBcIk1lbsOpbmRlelwiLFxuICAgIFwiTWVyYXpcIixcbiAgICBcIk1lcmNhZG9cIixcbiAgICBcIk1lcmlub1wiLFxuICAgIFwiTWVzYVwiLFxuICAgIFwiTWV6YVwiLFxuICAgIFwiTWlyYW1vbnRlc1wiLFxuICAgIFwiTWlyYW5kYVwiLFxuICAgIFwiTWlyZWxlc1wiLFxuICAgIFwiTW9qaWNhXCIsXG4gICAgXCJNb2xpbmFcIixcbiAgICBcIk1vbmRyYWfDs25cIixcbiAgICBcIk1vbnJveVwiLFxuICAgIFwiTW9udGFsdm9cIixcbiAgICBcIk1vbnRhw7FlelwiLFxuICAgIFwiTW9udGHDsW9cIixcbiAgICBcIk1vbnRlbWF5b3JcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRlcm9cIixcbiAgICBcIk1vbnRlc1wiLFxuICAgIFwiTW9udGV6XCIsXG4gICAgXCJNb250b3lhXCIsXG4gICAgXCJNb3JhXCIsXG4gICAgXCJNb3JhbGVzXCIsXG4gICAgXCJNb3Jlbm9cIixcbiAgICBcIk1vdGFcIixcbiAgICBcIk1veWFcIixcbiAgICBcIk11bmd1w61hXCIsXG4gICAgXCJNdcOxaXpcIixcbiAgICBcIk11w7FvelwiLFxuICAgIFwiTXVyaWxsb1wiLFxuICAgIFwiTXVyb1wiLFxuICAgIFwiTsOhamVyYVwiLFxuICAgIFwiTmFyYW5qb1wiLFxuICAgIFwiTmFydsOhZXpcIixcbiAgICBcIk5hdmFcIixcbiAgICBcIk5hdmFycmV0ZVwiLFxuICAgIFwiTmF2YXJyb1wiLFxuICAgIFwiTmF6YXJpb1wiLFxuICAgIFwiTmVncmV0ZVwiLFxuICAgIFwiTmVncsOzblwiLFxuICAgIFwiTmV2w6FyZXpcIixcbiAgICBcIk5pZXRvXCIsXG4gICAgXCJOaWV2ZXNcIixcbiAgICBcIk5pw7FvXCIsXG4gICAgXCJOb3JpZWdhXCIsXG4gICAgXCJOw7rDsWV6XCIsXG4gICAgXCJPY2FtcG9cIixcbiAgICBcIk9jYXNpb1wiLFxuICAgIFwiT2Nob2FcIixcbiAgICBcIk9qZWRhXCIsXG4gICAgXCJPbGl2YXJlc1wiLFxuICAgIFwiT2xpdsOhcmV6XCIsXG4gICAgXCJPbGl2YXNcIixcbiAgICBcIk9saXZlcmFcIixcbiAgICBcIk9saXZvXCIsXG4gICAgXCJPbG1vc1wiLFxuICAgIFwiT2x2ZXJhXCIsXG4gICAgXCJPbnRpdmVyb3NcIixcbiAgICBcIk9xdWVuZG9cIixcbiAgICBcIk9yZMOzw7FlelwiLFxuICAgIFwiT3JlbGxhbmFcIixcbiAgICBcIk9ybmVsYXNcIixcbiAgICBcIk9yb3Njb1wiLFxuICAgIFwiT3JvemNvXCIsXG4gICAgXCJPcnRhXCIsXG4gICAgXCJPcnRlZ2FcIixcbiAgICBcIk9ydGl6XCIsXG4gICAgXCJPc29yaW9cIixcbiAgICBcIk90ZXJvXCIsXG4gICAgXCJPenVuYVwiLFxuICAgIFwiUGFiw7NuXCIsXG4gICAgXCJQYWNoZWNvXCIsXG4gICAgXCJQYWRpbGxhXCIsXG4gICAgXCJQYWRyw7NuXCIsXG4gICAgXCJQw6FlelwiLFxuICAgIFwiUGFnYW5cIixcbiAgICBcIlBhbGFjaW9zXCIsXG4gICAgXCJQYWxvbWlub1wiLFxuICAgIFwiUGFsb21vXCIsXG4gICAgXCJQYW50b2phXCIsXG4gICAgXCJQYXJlZGVzXCIsXG4gICAgXCJQYXJyYVwiLFxuICAgIFwiUGFydGlkYVwiLFxuICAgIFwiUGF0acOxb1wiLFxuICAgIFwiUGF6XCIsXG4gICAgXCJQZWRyYXphXCIsXG4gICAgXCJQZWRyb3phXCIsXG4gICAgXCJQZWxheW9cIixcbiAgICBcIlBlw7FhXCIsXG4gICAgXCJQZXJhbGVzXCIsXG4gICAgXCJQZXJhbHRhXCIsXG4gICAgXCJQZXJlYVwiLFxuICAgIFwiUGVyZXNcIixcbiAgICBcIlDDqXJlelwiLFxuICAgIFwiUGljaGFyZG9cIixcbiAgICBcIlBpw7FhXCIsXG4gICAgXCJQaW5lZGFcIixcbiAgICBcIlBpemFycm9cIixcbiAgICBcIlBvbGFuY29cIixcbiAgICBcIlBvbmNlXCIsXG4gICAgXCJQb3JyYXNcIixcbiAgICBcIlBvcnRpbGxvXCIsXG4gICAgXCJQb3NhZGFcIixcbiAgICBcIlByYWRvXCIsXG4gICAgXCJQcmVjaWFkb1wiLFxuICAgIFwiUHJpZXRvXCIsXG4gICAgXCJQdWVudGVcIixcbiAgICBcIlB1Z2FcIixcbiAgICBcIlB1bGlkb1wiLFxuICAgIFwiUXVlc2FkYVwiLFxuICAgIFwiUXVlemFkYVwiLFxuICAgIFwiUXVpw7FvbmVzXCIsXG4gICAgXCJRdWnDscOzbmV6XCIsXG4gICAgXCJRdWludGFuYVwiLFxuICAgIFwiUXVpbnRhbmlsbGFcIixcbiAgICBcIlF1aW50ZXJvXCIsXG4gICAgXCJRdWlyb3pcIixcbiAgICBcIlJhZWxcIixcbiAgICBcIlJhbcOtcmV6XCIsXG4gICAgXCJSYW3Ds25cIixcbiAgICBcIlJhbW9zXCIsXG4gICAgXCJSYW5nZWxcIixcbiAgICBcIlJhc2PDs25cIixcbiAgICBcIlJheWFcIixcbiAgICBcIlJhem9cIixcbiAgICBcIlJlZ2FsYWRvXCIsXG4gICAgXCJSZW5kw7NuXCIsXG4gICAgXCJSZW50ZXLDrWFcIixcbiAgICBcIlJlc8OpbmRlelwiLFxuICAgIFwiUmV5ZXNcIixcbiAgICBcIlJleW5hXCIsXG4gICAgXCJSZXlub3NvXCIsXG4gICAgXCJSaWNvXCIsXG4gICAgXCJSaW5jw7NuXCIsXG4gICAgXCJSaW9qYXNcIixcbiAgICBcIlLDrW9zXCIsXG4gICAgXCJSaXZhc1wiLFxuICAgIFwiUml2ZXJhXCIsXG4gICAgXCJSaXZlcm9cIixcbiAgICBcIlJvYmxlZG9cIixcbiAgICBcIlJvYmxlc1wiLFxuICAgIFwiUm9jaGFcIixcbiAgICBcIlJvZGFydGVcIixcbiAgICBcIlJvZHLDrWdlelwiLFxuICAgIFwiUm9kcsOtZ3VlelwiLFxuICAgIFwiUm9kcsOtcXVlelwiLFxuICAgIFwiUm9qYXNcIixcbiAgICBcIlJvam9cIixcbiAgICBcIlJvbGTDoW5cIixcbiAgICBcIlJvbMOzblwiLFxuICAgIFwiUm9tZXJvXCIsXG4gICAgXCJSb21vXCIsXG4gICAgXCJSb3F1ZVwiLFxuICAgIFwiUm9zYWRvXCIsXG4gICAgXCJSb3NhbGVzXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJSb3Nhc1wiLFxuICAgIFwiUm95YmFsXCIsXG4gICAgXCJSdWJpb1wiLFxuICAgIFwiUnVlbGFzXCIsXG4gICAgXCJSdWl6XCIsXG4gICAgXCJTYWF2ZWRyYVwiLFxuICAgIFwiU8OhZW56XCIsXG4gICAgXCJTYWl6XCIsXG4gICAgXCJTYWxhc1wiLFxuICAgIFwiU2FsYXphclwiLFxuICAgIFwiU2FsY2Vkb1wiLFxuICAgIFwiU2FsY2lkb1wiLFxuICAgIFwiU2FsZGHDsWFcIixcbiAgICBcIlNhbGRpdmFyXCIsXG4gICAgXCJTYWxnYWRvXCIsXG4gICAgXCJTYWxpbmFzXCIsXG4gICAgXCJTYW1hbmllZ29cIixcbiAgICBcIlNhbmFicmlhXCIsXG4gICAgXCJTYW5jaGVzXCIsXG4gICAgXCJTw6FuY2hlelwiLFxuICAgIFwiU2FuZG92YWxcIixcbiAgICBcIlNhbnRhY3J1elwiLFxuICAgIFwiU2FudGFuYVwiLFxuICAgIFwiU2FudGlhZ29cIixcbiAgICBcIlNhbnRpbGzDoW5cIixcbiAgICBcIlNhcmFiaWFcIixcbiAgICBcIlNhdWNlZGFcIixcbiAgICBcIlNhdWNlZG9cIixcbiAgICBcIlNlZGlsbG9cIixcbiAgICBcIlNlZ292aWFcIixcbiAgICBcIlNlZ3VyYVwiLFxuICAgIFwiU2Vww7psdmVkYVwiLFxuICAgIFwiU2VybmFcIixcbiAgICBcIlNlcnJhbm9cIixcbiAgICBcIlNlcnJhdG9cIixcbiAgICBcIlNldmlsbGFcIixcbiAgICBcIlNpZXJyYVwiLFxuICAgIFwiU2lzbmVyb3NcIixcbiAgICBcIlNvbGFub1wiLFxuICAgIFwiU29sw61zXCIsXG4gICAgXCJTb2xpelwiLFxuICAgIFwiU29sb3Jpb1wiLFxuICAgIFwiU29sb3J6YW5vXCIsXG4gICAgXCJTb3JpYVwiLFxuICAgIFwiU29zYVwiLFxuICAgIFwiU290ZWxvXCIsXG4gICAgXCJTb3RvXCIsXG4gICAgXCJTdcOhcmV6XCIsXG4gICAgXCJUYWZveWFcIixcbiAgICBcIlRhbWF5b1wiLFxuICAgIFwiVGFtZXpcIixcbiAgICBcIlRhcGlhXCIsXG4gICAgXCJUZWphZGFcIixcbiAgICBcIlRlamVkYVwiLFxuICAgIFwiVMOpbGxlelwiLFxuICAgIFwiVGVsbG9cIixcbiAgICBcIlRlcsOhblwiLFxuICAgIFwiVGVycmF6YXNcIixcbiAgICBcIlRpamVyaW5hXCIsXG4gICAgXCJUaXJhZG9cIixcbiAgICBcIlRvbGVkb1wiLFxuICAgIFwiVG9yb1wiLFxuICAgIFwiVG9ycmVzXCIsXG4gICAgXCJUw7NycmV6XCIsXG4gICAgXCJUb3ZhclwiLFxuICAgIFwiVHJlam9cIixcbiAgICBcIlRyZXZpw7FvXCIsXG4gICAgXCJUcnVqaWxsb1wiLFxuICAgIFwiVWxpYmFycmlcIixcbiAgICBcIlVsbG9hXCIsXG4gICAgXCJVcmJpbmFcIixcbiAgICBcIlVyZcOxYVwiLFxuICAgIFwiVXLDrWFzXCIsXG4gICAgXCJVcmliZVwiLFxuICAgIFwiVXJydXRpYVwiLFxuICAgIFwiVmFjYVwiLFxuICAgIFwiVmFsYWRlelwiLFxuICAgIFwiVmFsZMOpc1wiLFxuICAgIFwiVmFsZGV6XCIsXG4gICAgXCJWYWxkaXZpYVwiLFxuICAgIFwiVmFsZW5jaWFcIixcbiAgICBcIlZhbGVudMOtblwiLFxuICAgIFwiVmFsZW56dWVsYVwiLFxuICAgIFwiVmFsbGFkYXJlc1wiLFxuICAgIFwiVmFsbGVcIixcbiAgICBcIlZhbGxlam9cIixcbiAgICBcIlZhbGxlc1wiLFxuICAgIFwiVmFsdmVyZGVcIixcbiAgICBcIlZhbmVnYXNcIixcbiAgICBcIlZhcmVsYVwiLFxuICAgIFwiVmFyZ2FzXCIsXG4gICAgXCJWw6FzcXVlelwiLFxuICAgIFwiVsOhenF1ZXpcIixcbiAgICBcIlZlZ2FcIixcbiAgICBcIlZlbGFcIixcbiAgICBcIlZlbGFzY29cIixcbiAgICBcIlZlbMOhc3F1ZXpcIixcbiAgICBcIlZlbMOhenF1ZXpcIixcbiAgICBcIlbDqWxlelwiLFxuICAgIFwiVsOpbGl6XCIsXG4gICAgXCJWZW5lZ2FzXCIsXG4gICAgXCJWZXJhXCIsXG4gICAgXCJWZXJkdWdvXCIsXG4gICAgXCJWZXJkdXpjb1wiLFxuICAgIFwiVmVyZ2FyYVwiLFxuICAgIFwiVmllcmFcIixcbiAgICBcIlZpZ2lsXCIsXG4gICAgXCJWaWxsYVwiLFxuICAgIFwiVmlsbGFnw7NtZXpcIixcbiAgICBcIlZpbGxhbG9ib3NcIixcbiAgICBcIlZpbGxhbHBhbmRvXCIsXG4gICAgXCJWaWxsYW51ZXZhXCIsXG4gICAgXCJWaWxsYXJlYWxcIixcbiAgICBcIlZpbGxhcnJlYWxcIixcbiAgICBcIlZpbGxhc2XDsW9yXCIsXG4gICAgXCJWaWxsZWdhc1wiLFxuICAgIFwiWcOhw7FlelwiLFxuICAgIFwiWWJhcnJhXCIsXG4gICAgXCJaYW1icmFub1wiLFxuICAgIFwiWmFtb3JhXCIsXG4gICAgXCJaYW11ZGlvXCIsXG4gICAgXCJaYXBhdGFcIixcbiAgICBcIlphcmFnb3phXCIsXG4gICAgXCJaYXJhdGVcIixcbiAgICBcIlphdmFsYVwiLFxuICAgIFwiWmF5YXNcIixcbiAgICBcIlplbGF5YVwiLFxuICAgIFwiWmVwZWRhXCIsXG4gICAgXCJaw7rDsWlnYVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNyLlwiLFxuICAgIFwiU3JhLlwiLFxuICAgIFwiU3RhLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiU3IuXCIsXG4gICAgXCJJXCIsXG4gICAgXCJJSVwiLFxuICAgIFwiSUlJXCIsXG4gICAgXCJJVlwiLFxuICAgIFwiVlwiLFxuICAgIFwiTURcIixcbiAgICBcIkREU1wiLFxuICAgIFwiUGhEXCIsXG4gICAgXCJEVk1cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJKZWZlXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RvXCIsXG4gICAgICBcIkNvcnBvcmF0aXZvXCIsXG4gICAgICBcIkRpbsOhbm1pY29cIixcbiAgICAgIFwiRnV0dXJvXCIsXG4gICAgICBcIlByb2R1Y3RvXCIsXG4gICAgICBcIk5hY2lvbmFsXCIsXG4gICAgICBcIlJlZ2lvbmFsXCIsXG4gICAgICBcIkRpc3RyaXRvXCIsXG4gICAgICBcIkNlbnRyYWxcIixcbiAgICAgIFwiR2xvYmFsXCIsXG4gICAgICBcIkNsaWVudGVcIixcbiAgICAgIFwiSW52ZXJzb3JcIixcbiAgICAgIFwiSW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJIZXJlZGFkb1wiLFxuICAgICAgXCJBZGVsYW50ZVwiLFxuICAgICAgXCJJbnRlcm5vXCIsXG4gICAgICBcIkh1bWFub1wiLFxuICAgICAgXCJHZXJlbnRlXCIsXG4gICAgICBcIkRpcmVjdG9yXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1Y2lvbmVzXCIsXG4gICAgICBcIlByb2dyYW1hXCIsXG4gICAgICBcIk1hcmNhXCIsXG4gICAgICBcIlNlZ3VyaWRhZGFcIixcbiAgICAgIFwiSW52ZXN0aWdhY2nDs25cIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIk5vcm1hc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhY2nDs25cIixcbiAgICAgIFwiSW50ZWdyYWNpw7NuXCIsXG4gICAgICBcIkZ1bmNpb25hbGlkYWRcIixcbiAgICAgIFwiUmVzcHVlc3RhXCIsXG4gICAgICBcIlBhcmFkaWdtYVwiLFxuICAgICAgXCJUw6FjdGljYXNcIixcbiAgICAgIFwiSWRlbnRpZGFkXCIsXG4gICAgICBcIk1lcmNhZG9zXCIsXG4gICAgICBcIkdydXBvXCIsXG4gICAgICBcIkRpdmlzacOzblwiLFxuICAgICAgXCJBcGxpY2FjaW9uZXNcIixcbiAgICAgIFwiT3B0aW1pemFjacOzblwiLFxuICAgICAgXCJPcGVyYWNpb25lc1wiLFxuICAgICAgXCJJbmZyYWVzdHJ1Y3R1cmFcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tdW5pY2FjaW9uZXNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkNhbGlkYWRcIixcbiAgICAgIFwiU2VndXJvXCIsXG4gICAgICBcIk1vYmlsaWRhZFwiLFxuICAgICAgXCJDdWVudGFzXCIsXG4gICAgICBcIkRhdG9zXCIsXG4gICAgICBcIkNyZWF0aXZvXCIsXG4gICAgICBcIkNvbmZpZ3VyYWNpw7NuXCIsXG4gICAgICBcIkNvbnRhYmlsaWRhZFwiLFxuICAgICAgXCJJbnRlcmFjY2lvbmVzXCIsXG4gICAgICBcIkZhY3RvcmVzXCIsXG4gICAgICBcIlVzYWJpbGlkYWRcIixcbiAgICAgIFwiTcOpdHJpY2FzXCJcbiAgICBdLFxuICAgIFwiam9iXCI6IFtcbiAgICAgIFwiU3VwZXJ2aXNvclwiLFxuICAgICAgXCJBc29jaWFkb1wiLFxuICAgICAgXCJFamVjdXRpdm9cIixcbiAgICAgIFwiUmVsYWNjaW9uZXNcIixcbiAgICAgIFwiT2ZpY2lhbFwiLFxuICAgICAgXCJHZXJlbnRlXCIsXG4gICAgICBcIkluZ2VuaWVyb1wiLFxuICAgICAgXCJFc3BlY2lhbGlzdGFcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmFkb3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYWRvclwiLFxuICAgICAgXCJBcnF1aXRlY3RvXCIsXG4gICAgICBcIkFuYWxpc3RhXCIsXG4gICAgICBcIkRpc2XDsWFkb3JcIixcbiAgICAgIFwiUGxhbmlmaWNhZG9yXCIsXG4gICAgICBcIlTDqWNuaWNvXCIsXG4gICAgICBcIkZ1bmNpb25hcmlvXCIsXG4gICAgICBcIkRlc2Fycm9sbGFkb3JcIixcbiAgICAgIFwiUHJvZHVjdG9yXCIsXG4gICAgICBcIkNvbnN1bHRvclwiLFxuICAgICAgXCJBc2lzdGVudGVcIixcbiAgICAgIFwiRmFjaWxpdGFkb3JcIixcbiAgICAgIFwiQWdlbnRlXCIsXG4gICAgICBcIlJlcHJlc2VudGFudGVcIixcbiAgICAgIFwiRXN0cmF0ZWdhXCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZXMucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiOSMjLSMjIy0jIyNcIixcbiAgICBcIjkjIy4jIyMuIyMjXCIsXG4gICAgXCI5IyMgIyMjICMjI1wiLFxuICAgIFwiOSMjIyMjIyMjXCJcbiAgXVxufTtcbmVzLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCI2IyMtIyMjLSMjI1wiLFxuICAgIFwiNiMjLiMjIy4jIyNcIixcbiAgICBcIjYjIyAjIyMgIyMjXCIsXG4gICAgXCI2IyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGZhID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZmE7XG5mYS50aXRsZSA9IFwiRmFyc2lcIjtcbmZhLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLYotio2KfZhiDYr9iu2KpcIixcbiAgICBcItii2KjYqtuM2YZcIixcbiAgICBcItii2KrZiNiz2KdcIixcbiAgICBcItii2YHYsVwiLFxuICAgIFwi2KLZgdix2Ycg2K/YrtiqXCIsXG4gICAgXCLYotiw2LHZhtmI2LTigIxcIixcbiAgICBcItii2LDbjNmGXCIsXG4gICAgXCLYotix2KfZh1wiLFxuICAgIFwi2KLYsdiy2YhcIixcbiAgICBcItii2LHYtFwiLFxuICAgIFwi2KLYsdiq24zZhlwiLFxuICAgIFwi2KLYsdiq2KfZhVwiLFxuICAgIFwi2KLYsdiq2YXZhlwiLFxuICAgIFwi2KLYsdi02KfZhVwiLFxuICAgIFwi2KLYsdmF2KfZhlwiLFxuICAgIFwi2KLYsdmF24zZhlwiLFxuICAgIFwi2KLYsdmF24zYqtinXCIsXG4gICAgXCLYotix24zYpyDZgdixXCIsXG4gICAgXCLYotix24zYp1wiLFxuICAgIFwi2KLYsduM2Kcg2YXZh9ixXCIsXG4gICAgXCLYotix24zZhlwiLFxuICAgIFwi2KLYstin2K/Zh1wiLFxuICAgIFwi2KLYstix2YVcIixcbiAgICBcItii2LLYsdmF2K/YrtiqXCIsXG4gICAgXCLYotiy24zYqtinXCIsXG4gICAgXCLYotmG2KfZh9uM2KrYp1wiLFxuICAgIFwi2KLZiNmG2q9cIixcbiAgICBcItii2YfZiFwiLFxuICAgIFwi2KLbjNiv2KdcIixcbiAgICBcItin2KrYs9iyXCIsXG4gICAgXCLYp9iu2KrYsVwiLFxuICAgIFwi2KfYsdivXCIsXG4gICAgXCLYp9ix2K8g2LTbjNixXCIsXG4gICAgXCLYp9ix2K/ZiNin2YZcIixcbiAgICBcItin2LHamNmGXCIsXG4gICAgXCLYp9ix2pjZhtqvXCIsXG4gICAgXCLYp9ix2LPZhNin2YZcIixcbiAgICBcItin2LHYutmI2KfZhlwiLFxuICAgIFwi2KfYsdmF2LrYp9mGXCIsXG4gICAgXCLYp9ix2YbZiNin2LJcIixcbiAgICBcItin2LHZiNin2YbZh1wiLFxuICAgIFwi2KfYs9iq2LFcIixcbiAgICBcItin2LPZgdmG2K/bjNin2LFcIixcbiAgICBcItin2LTaqdin2YZcIixcbiAgICBcItin2LTaqdio2YjYs1wiLFxuICAgIFwi2KfZgdiz2KfZhtmHXCIsXG4gICAgXCLYp9mB2LPZiNmGXCIsXG4gICAgXCLYp9mB2LTbjNmGXCIsXG4gICAgXCLYp9mF24zYr1wiLFxuICAgIFwi2KfZhtmI2LQgKOKAjCDYotmG2YjYtNinIClcIixcbiAgICBcItin2YbZiNi02LHZiNin2YZcIixcbiAgICBcItin2YjYsdmG2q9cIixcbiAgICBcItin2YjamNmGXCIsXG4gICAgXCLYp9mI2LPYqtinXCIsXG4gICAgXCLYp9mH2YjYsdinXCIsXG4gICAgXCLYp9uM2KfYslwiLFxuICAgIFwi2KfbjNix2KfZhlwiLFxuICAgIFwi2KfbjNix2KfZhtiv2K7YqlwiLFxuICAgIFwi2KfbjNix2KxcIixcbiAgICBcItin24zYstiv24zYp9ixXCIsXG4gICAgXCLYqNin2KjaqVwiLFxuICAgIFwi2KjYp9m+2YjaqVwiLFxuICAgIFwi2KjYp9ix2KjYr1wiLFxuICAgIFwi2KjYp9ix2YXYp9mGXCIsXG4gICAgXCLYqNin2YXYr9in2K9cIixcbiAgICBcItio2KfZhdi02KfYr1wiLFxuICAgIFwi2KjYp9mG2YhcIixcbiAgICBcItio2K7YqtuM2KfYsVwiLFxuICAgIFwi2KjYsdin2YbZiNi0XCIsXG4gICAgXCLYqNix2K/bjNinXCIsXG4gICAgXCLYqNix2LLZiFwiLFxuICAgIFwi2KjYsdiy2YjbjNmHXCIsXG4gICAgXCLYqNix2LLbjNmGXCIsXG4gICAgXCLYqNix2YXaqVwiLFxuICAgIFwi2KjYstix2q/ZhdmH2LFcIixcbiAgICBcItio2YbZgdi02YdcIixcbiAgICBcItio2YjamNin2YZcIixcbiAgICBcItio2YjbjNin2YZcIixcbiAgICBcItio2YfYp9ixXCIsXG4gICAgXCLYqNmH2KfYsdqpXCIsXG4gICAgXCLYqNmH2KfYsdmHXCIsXG4gICAgXCLYqNmH2KrYp9i0XCIsXG4gICAgXCLYqNmH2K/Yp9ivXCIsXG4gICAgXCLYqNmH2LHYp9mFXCIsXG4gICAgXCLYqNmH2K/bjNizXCIsXG4gICAgXCLYqNmH2LHYrlwiLFxuICAgIFwi2KjZh9ix2Ybar1wiLFxuICAgIFwi2KjZh9ix2YjYslwiLFxuICAgIFwi2KjZh9iy2KfYr1wiLFxuICAgIFwi2KjZh9i02KfYr1wiLFxuICAgIFwi2KjZh9mF2YZcIixcbiAgICBcItio2YfZhtin2LJcIixcbiAgICBcItio2YfZhtin2YVcIixcbiAgICBcItio2YfZhtmI2K9cIixcbiAgICBcItio2YfZhtmI2LRcIixcbiAgICBcItio24zYqtinXCIsXG4gICAgXCLYqNuM2pjZhlwiLFxuICAgIFwi2b7Yp9ix2LPYp1wiLFxuICAgIFwi2b7Yp9qp2KfZhlwiLFxuICAgIFwi2b7Yp9qp2KrZhlwiLFxuICAgIFwi2b7Yp9qp2K/YrtiqXCIsXG4gICAgXCLZvtin2YbYqtmHINiiXCIsXG4gICAgXCLZvtiv2LHYp9mFXCIsXG4gICAgXCLZvtix2KrZiFwiLFxuICAgIFwi2b7Ysdi02Ybar1wiLFxuICAgIFwi2b7Ysdiq2YhcIixcbiAgICBcItm+2LHYs9iq2YhcIixcbiAgICBcItm+2LHZiNuM2LJcIixcbiAgICBcItm+2LHYr9uM2LNcIixcbiAgICBcItm+2LHZh9in2YVcIixcbiAgICBcItm+2pjZhdin2YZcIixcbiAgICBcItm+2pjZiNinXCIsXG4gICAgXCLZvtix2YbbjNinXCIsXG4gICAgXCLZvti02Ybar1wiLFxuICAgIFwi2b7YsdmI2KfZhtmHXCIsXG4gICAgXCLZvtix2YjbjNmGXCIsXG4gICAgXCLZvtix24xcIixcbiAgICBcItm+2LHbjNqG2YfYsVwiLFxuICAgIFwi2b7YsduM2K/YrtiqXCIsXG4gICAgXCLZvtix24zYs9inXCIsXG4gICAgXCLZvtix2YbYp9iyXCIsXG4gICAgXCLZvtix24zZiNi0XCIsXG4gICAgXCLZvtix24zYp1wiLFxuICAgIFwi2b7ZiNm+2qlcIixcbiAgICBcItm+2YjYsdin2YZcIixcbiAgICBcItm+2YjYsdin2YbYr9iu2KpcIixcbiAgICBcItm+2YjYsduM2KdcIixcbiAgICBcItm+2YjZhNin2K9cIixcbiAgICBcItm+2YjbjNinXCIsXG4gICAgXCLZvtmI2YbZh1wiLFxuICAgIFwi2b7bjNin2YVcIixcbiAgICBcItm+24zYsdmI2LJcIixcbiAgICBcItm+24zZhdin2YZcIixcbiAgICBcItiq2KfYqNin2YZcIixcbiAgICBcItiq2KfYqNin2YbYr9iu2KpcIixcbiAgICBcItiq2KfYrNuMXCIsXG4gICAgXCLYqtin2LHYp1wiLFxuICAgIFwi2KrYp9mI24zYp9ixXCIsXG4gICAgXCLYqtix2KfZhtmHXCIsXG4gICAgXCLYqtmG2KfYslwiLFxuICAgIFwi2KrZiNix2KfZhlwiLFxuICAgIFwi2KrZiNix2KfZhtiv2K7YqlwiLFxuICAgIFwi2KrZiNix2KxcIixcbiAgICBcItiq2YjYsdiq2qlcIixcbiAgICBcItiq2YjZgdin2YZcIixcbiAgICBcItiq2YjamNin2YRcIixcbiAgICBcItiq24zYsSDYr9in2K9cIixcbiAgICBcItiq24zZhtinXCIsXG4gICAgXCLYqtuM2YbZiFwiLFxuICAgIFwi2KzYp9io2KfZhlwiLFxuICAgIFwi2KzYp9mF24zZhlwiLFxuICAgIFwi2KzYp9mI24zYr1wiLFxuICAgIFwi2KzYsduM2LHZh1wiLFxuICAgIFwi2KzZhdi024zYr1wiLFxuICAgIFwi2KzZiNin2YZcIixcbiAgICBcItis2YjbjNinXCIsXG4gICAgXCLYrNmH2KfZhlwiLFxuICAgIFwi2KzZh9in2YbYqNiu2KpcIixcbiAgICBcItis2YfYp9mG2KjYrti0XCIsXG4gICAgXCLYrNmH2KfZhtiv2KfYsVwiLFxuICAgIFwi2KzZh9in2Ybar9uM2LFcIixcbiAgICBcItis2YfYp9mGINio2KfZhtmIXCIsXG4gICAgXCLYrNmH2KfZhtiv2K7YqlwiLFxuICAgIFwi2KzZh9in2YYg2YbYp9iyXCIsXG4gICAgXCLYrNuM2LHYp9mGXCIsXG4gICAgXCLahtin2KjaqVwiLFxuICAgIFwi2obYp9mE2KfaqVwiLFxuICAgIFwi2obYp9mI2LRcIixcbiAgICBcItqG2KrYsdinXCIsXG4gICAgXCLahtmI2KjbjNmGXCIsXG4gICAgXCLahtmH2LHYstin2K9cIixcbiAgICBcItiu2KfZiNix2K/YrtiqXCIsXG4gICAgXCLYrtiv2KfYr9in2K9cIixcbiAgICBcItiu2K/Yp9uM2KfYsVwiLFxuICAgIFwi2K7YsdmFXCIsXG4gICAgXCLYrtix2YXYr9iu2KpcIixcbiAgICBcItiu2LPYsdmIXCIsXG4gICAgXCLYrti02KfbjNin2LFcIixcbiAgICBcItiu2YjYsdi024zYr1wiLFxuICAgIFwi2K/Yp9iv2YXZh9ixXCIsXG4gICAgXCLYr9in2LHYp1wiLFxuICAgIFwi2K/Yp9ix2KfYqFwiLFxuICAgIFwi2K/Yp9ix24zYp1wiLFxuICAgIFwi2K/Yp9ix24zZiNi0XCIsXG4gICAgXCLYr9in2YbZiNi0XCIsXG4gICAgXCLYr9in2YjYseKAjFwiLFxuICAgIFwi2K/Yp9uM2KfZhlwiLFxuICAgIFwi2K/YsduM2KdcIixcbiAgICBcItiv2YQg2KLYsdinXCIsXG4gICAgXCLYr9mEINii2YjbjNiyXCIsXG4gICAgXCLYr9mE2KfYsdin2YVcIixcbiAgICBcItiv2YQg2KfZhtqv24zYslwiLFxuICAgIFwi2K/ZhNio2LFcIixcbiAgICBcItiv2YTYqNmG2K9cIixcbiAgICBcItiv2YTYsdio2KdcIixcbiAgICBcItiv2YTYtNin2K9cIixcbiAgICBcItiv2YTaqdi0XCIsXG4gICAgXCLYr9mE2YbYp9iyXCIsXG4gICAgXCLYr9mE2YbZiNin2LJcIixcbiAgICBcItiv2YjYsdi02KfYs9ioXCIsXG4gICAgXCLYr9mG24zYp1wiLFxuICAgIFwi2K/bjNin2KfaqdmIXCIsXG4gICAgXCLYr9uM2KfZhtmI2LRcIixcbiAgICBcItiv24zYqNinXCIsXG4gICAgXCLYr9uM2KjYpyDYr9iu2KpcIixcbiAgICBcItix2KfYqNmIXCIsXG4gICAgXCLYsdin2KjbjNmGXCIsXG4gICAgXCLYsdin2K/YqNin2YbZiFwiLFxuICAgIFwi2LHYp9iv2YXYp9mGXCIsXG4gICAgXCLYsdin2LLYqNin2YZcIixcbiAgICBcItix2KfamNin2YbZh1wiLFxuICAgIFwi2LHYp9iz2KdcIixcbiAgICBcItix2KfZhdiq24zZhlwiLFxuICAgIFwi2LHYp9mF2LRcIixcbiAgICBcItix2KfZhdi02q/YsVwiLFxuICAgIFwi2LHYp9mF2YjZhtinXCIsXG4gICAgXCLYsdin2YXbjNin2LFcIixcbiAgICBcItix2KfZhduM2YTYp1wiLFxuICAgIFwi2LHYp9mF24zZhlwiLFxuICAgIFwi2LHYp9mI24zYp9ixXCIsXG4gICAgXCLYsdqY24zZhtinXCIsXG4gICAgXCLYsdiu2b7Yp9qpXCIsXG4gICAgXCLYsdiu2LPYp9ixXCIsXG4gICAgXCLYsdiu2LTYp9mG2YdcIixcbiAgICBcItix2K7YtNmG2K/Zh1wiLFxuICAgIFwi2LHYstmF24zYp9ixXCIsXG4gICAgXCLYsdiz2KrZhVwiLFxuICAgIFwi2LHaqdiz2KfZhtinXCIsXG4gICAgXCLYsdmI2KjbjNmG2KdcIixcbiAgICBcItix2YjYr9in2KjZh1wiLFxuICAgIFwi2LHZiNiy2KjZh1wiLFxuICAgIFwi2LHZiNi02YbaqVwiLFxuICAgIFwi2LHZiNmG2KfaqVwiLFxuICAgIFwi2LHZh9in2YVcIixcbiAgICBcItix2YfbjFwiLFxuICAgIFwi2LHbjNio2KfYsVwiLFxuICAgIFwi2LHYp9iz2b7bjNmG2KdcIixcbiAgICBcItiy2KfYr9io2K7YqlwiLFxuICAgIFwi2LLYp9ivINio2YdcIixcbiAgICBcItiy2KfYryDahtmH2LFcIixcbiAgICBcItiy2KfYryDZgdixXCIsXG4gICAgXCLYstin2YRcIixcbiAgICBcItiy2KfYr9mF2KfYs9ioXCIsXG4gICAgXCLYstin2YjYp1wiLFxuICAgIFwi2LLYsdiv2LTYqlwiLFxuICAgIFwi2LLYsdmG2q/Yp9ixXCIsXG4gICAgXCLYstix24xcIixcbiAgICBcItiy2LHbjNmGXCIsXG4gICAgXCLYstix24zZhtmHXCIsXG4gICAgXCLYstmF2KfZhtmHXCIsXG4gICAgXCLYstmI2YbYp1wiLFxuICAgIFwi2LLbjNio2KdcIixcbiAgICBcItiy24zYqNin2LFcIixcbiAgICBcItiy24zZhdinXCIsXG4gICAgXCLYstuM2YbZiFwiLFxuICAgIFwi2pjYp9mE2YdcIixcbiAgICBcItqY2KfZhNin2YZcIixcbiAgICBcItqY24zYp9ixXCIsXG4gICAgXCLamNuM2YbYp1wiLFxuICAgIFwi2pjbjNmI2KfYsVwiLFxuICAgIFwi2LPYp9ix2KdcIixcbiAgICBcItiz2KfYsdqpXCIsXG4gICAgXCLYs9in2LHZhtqvXCIsXG4gICAgXCLYs9in2LHZh1wiLFxuICAgIFwi2LPYp9iz2KfZhlwiLFxuICAgIFwi2LPYp9i62LFcIixcbiAgICBcItiz2KfZhVwiLFxuICAgIFwi2LPYp9mF2KfZhlwiLFxuICAgIFwi2LPYp9mG2KdcIixcbiAgICBcItiz2KfZhtin2LJcIixcbiAgICBcItiz2KfZhtuM2KfYsVwiLFxuICAgIFwi2LPYp9mI24zYslwiLFxuICAgIFwi2LPYp9mH24xcIixcbiAgICBcItiz2KfbjNmG2KdcIixcbiAgICBcItiz2KfbjNmHXCIsXG4gICAgXCLYs9m+2YbYqtinXCIsXG4gICAgXCLYs9m+2YbYr1wiLFxuICAgIFwi2LPZvtmH2LFcIixcbiAgICBcItiz2b7Zh9ix2K/Yp9ivXCIsXG4gICAgXCLYs9m+24zYr9in2LFcIixcbiAgICBcItiz2b7bjNivINio2KfZhtmIXCIsXG4gICAgXCLYs9m+24zYr9mHXCIsXG4gICAgXCLYs9iq2KfYsdmHXCIsXG4gICAgXCLYs9iq24xcIixcbiAgICBcItiz2LHYp9mB2LHYp9iyXCIsXG4gICAgXCLYs9ix2YjYsVwiLFxuICAgIFwi2LPYsdmI2LRcIixcbiAgICBcItiz2LHZiNixXCIsXG4gICAgXCLYs9mI2KjYp1wiLFxuICAgIFwi2LPZiNio2KfYsVwiLFxuICAgIFwi2LPZhtio2YTZh1wiLFxuICAgIFwi2LPZiNiv2KfYqNmHXCIsXG4gICAgXCLYs9mI2LHbjFwiLFxuICAgIFwi2LPZiNix2YZcIixcbiAgICBcItiz2YjYsdmG2KdcIixcbiAgICBcItiz2YjYstin2YZcIixcbiAgICBcItiz2YjYstmHXCIsXG4gICAgXCLYs9mI2LPZhlwiLFxuICAgIFwi2LPZiNmF2KfYsVwiLFxuICAgIFwi2LPZiNmE2KfZhlwiLFxuICAgIFwi2LPZiNmE2YXYp9iyXCIsXG4gICAgXCLYs9mI2q/ZhtivXCIsXG4gICAgXCLYs9mH2LHYp9ioXCIsXG4gICAgXCLYs9mH2LHZh1wiLFxuICAgIFwi2LPZh9mG2K9cIixcbiAgICBcItiz24zYp9mF2qlcIixcbiAgICBcItiz24zYp9mI2LRcIixcbiAgICBcItiz24zYqNmI2KjZhyDigIxcIixcbiAgICBcItiz24zZhdinXCIsXG4gICAgXCLYs9uM2YXYr9iu2KpcIixcbiAgICBcItiz24zZhtinXCIsXG4gICAgXCLYs9uM2YXbjNmGXCIsXG4gICAgXCLYs9uM2YXbjNmGINiv2K7YqlwiLFxuICAgIFwi2LTYp9m+2LHaqVwiLFxuICAgIFwi2LTYp9iv24xcIixcbiAgICBcIti02KfYr9mF2YfYsVwiLFxuICAgIFwi2LTYp9ix2KfZhlwiLFxuICAgIFwi2LTYp9mH2b7ZiNixXCIsXG4gICAgXCLYtNin2YfYr9iu2KpcIixcbiAgICBcIti02KfZh9ix2K5cIixcbiAgICBcIti02KfZh9uM2YZcIixcbiAgICBcIti02KfZh9uM2YbYr9iu2KpcIixcbiAgICBcIti02KfbjNiz2KrZh1wiLFxuICAgIFwi2LTYqNin2YfZhtqvXCIsXG4gICAgXCLYtNioINio2YhcIixcbiAgICBcIti02KjYr9uM2LJcIixcbiAgICBcIti02KjZhtmFXCIsXG4gICAgXCLYtNix2KfYsdmHXCIsXG4gICAgXCLYtNix2YXbjNmGXCIsXG4gICAgXCLYtNix2YjbjNmGXCIsXG4gICAgXCLYtNqp2YjZgdmHXCIsXG4gICAgXCLYtNqp2YHYqtmHXCIsXG4gICAgXCLYtNmF2LTYp9ivXCIsXG4gICAgXCLYtNmF24zZhlwiLFxuICAgIFwi2LTZiNin2YZcIixcbiAgICBcIti02YXbjNmE2KdcIixcbiAgICBcIti02YjYsdin2Ybar9uM2LJcIixcbiAgICBcIti02YjYsduMXCIsXG4gICAgXCLYtNmH2KfYqFwiLFxuICAgIFwi2LTZh9io2KfYsVwiLFxuICAgIFwi2LTZh9io2KfYslwiLFxuICAgIFwi2LTZh9io2KfZhFwiLFxuICAgIFwi2LTZh9m+2LFcIixcbiAgICBcIti02YfYr9in2K9cIixcbiAgICBcIti02YfYsdii2LHYp1wiLFxuICAgIFwi2LTZh9ix2KfZhVwiLFxuICAgIFwi2LTZh9ix2KjYp9mG2YhcIixcbiAgICBcIti02YfYsdiy2KfYr1wiLFxuICAgIFwi2LTZh9ix2YbYp9iyXCIsXG4gICAgXCLYtNmH2LHZhtmI2LRcIixcbiAgICBcIti02YfYsdmHXCIsXG4gICAgXCLYtNmH2LHbjNin2LFcIixcbiAgICBcIti02YfYsdiy2KfYr1wiLFxuICAgIFwi2LTZh9mE2KdcIixcbiAgICBcIti02YfZhtmI2KfYslwiLFxuICAgIFwi2LTZh9uM2YZcIixcbiAgICBcIti024zYqNinXCIsXG4gICAgXCLYtNuM2K/Yp1wiLFxuICAgIFwi2LTbjNiv2YdcIixcbiAgICBcIti024zYsdiv2YRcIixcbiAgICBcIti024zYsdiy2KfYr1wiLFxuICAgIFwi2LTbjNix2Ybar1wiLFxuICAgIFwi2LTbjNix2YhcIixcbiAgICBcIti024zYsduM2YYg2K/YrtiqXCIsXG4gICAgXCLYtNuM2YXYp1wiLFxuICAgIFwi2LTbjNmG2KdcIixcbiAgICBcIti024zYsduM2YZcIixcbiAgICBcIti024zZiNinXCIsXG4gICAgXCLYt9mI2LNcIixcbiAgICBcIti32YjYt9uMXCIsXG4gICAgXCLYt9mH2YXYp9iz2KhcIixcbiAgICBcIti32YfZhdmI2LHYq1wiLFxuICAgIFwi2LrZiNi62KdcIixcbiAgICBcIti62YbahtmHXCIsXG4gICAgXCLZgdiq2KfZhtmHXCIsXG4gICAgXCLZgdiv2KdcIixcbiAgICBcItmB2LHYp9iyXCIsXG4gICAgXCLZgdix2KfZhdix2LJcIixcbiAgICBcItmB2LHYp9mG2qlcIixcbiAgICBcItmB2LHYp9mH2KfZhlwiLFxuICAgIFwi2YHYsdio2K9cIixcbiAgICBcItmB2LHYqNi6XCIsXG4gICAgXCLZgdix2KzYp9ivXCIsXG4gICAgXCLZgdix2K5cIixcbiAgICBcItmB2LHYriDZvtuMXCIsXG4gICAgXCLZgdix2K4g2K/Yp9ivXCIsXG4gICAgXCLZgdix2K4g2LHZiFwiLFxuICAgIFwi2YHYsdiuINiy2KfYr1wiLFxuICAgIFwi2YHYsdiuINmE2YLYp1wiLFxuICAgIFwi2YHYsdiuINmF2YfYsVwiLFxuICAgIFwi2YHYsdiv2KfYr1wiLFxuICAgIFwi2YHYsdiv24zYs1wiLFxuICAgIFwi2YHYsduM2YZcIixcbiAgICBcItmB2LHYstin2K9cIixcbiAgICBcItmB2LHYstin2YVcIixcbiAgICBcItmB2LHYstin2YZcIixcbiAgICBcItmB2LHYstin2YbZh1wiLFxuICAgIFwi2YHYsdiy24zZhlwiLFxuICAgIFwi2YHYsdi02KfYr1wiLFxuICAgIFwi2YHYsdi02KrZh1wiLFxuICAgIFwi2YHYsdi024zYr1wiLFxuICAgIFwi2YHYsdmF2KfZhlwiLFxuICAgIFwi2YHYsdmG2KfYslwiLFxuICAgIFwi2YHYsdmG2q/bjNizXCIsXG4gICAgXCLZgdix2YbZiNivXCIsXG4gICAgXCLZgdix2YbZiNi0XCIsXG4gICAgXCLZgdix2YbbjNinXCIsXG4gICAgXCLZgdix2YjYqtmGXCIsXG4gICAgXCLZgdix2YjYr1wiLFxuICAgIFwi2YHYsdmI2LJcIixcbiAgICBcItmB2LHZiNiy2KfZhlwiLFxuICAgIFwi2YHYsdmI2LLYtFwiLFxuICAgIFwi2YHYsdmI2LLZhtiv2YdcIixcbiAgICBcItmB2LHZiNi6XCIsXG4gICAgXCLZgdix2YfYp9ivXCIsXG4gICAgXCLZgdix2YfZhtqvXCIsXG4gICAgXCLZgdix2YfZiNivXCIsXG4gICAgXCLZgdix2KjYp9ixXCIsXG4gICAgXCLZgdix24zYqNinXCIsXG4gICAgXCLZgdix24zYr1wiLFxuICAgIFwi2YHYsduM2K/YrtiqXCIsXG4gICAgXCLZgdix24zYr9mI2YZcIixcbiAgICBcItmB2LHbjNmF2KfZhlwiLFxuICAgIFwi2YHYsduM2YbYp9iyXCIsXG4gICAgXCLZgdix24zZhtmI2LRcIixcbiAgICBcItmB2LHbjNmI2LRcIixcbiAgICBcItmB24zYsdmI2LJcIixcbiAgICBcItmB24zYsdmI2LLZh1wiLFxuICAgIFwi2YLYp9io2YjYs1wiLFxuICAgIFwi2YLYqNin2K9cIixcbiAgICBcItmC2K/Ys9uMXCIsXG4gICAgXCLaqdin2KjYp9mGXCIsXG4gICAgXCLaqdin2KjZiNqpXCIsXG4gICAgXCLaqdin2LHYp1wiLFxuICAgIFwi2qnYp9ix2YhcIixcbiAgICBcItqp2KfYsdin2qnZiFwiLFxuICAgIFwi2qnYp9mF2KjYrtiqXCIsXG4gICAgXCLaqdin2YXYqNiu2LRcIixcbiAgICBcItqp2KfZhdio24zYslwiLFxuICAgIFwi2qnYp9mF2KzZiFwiLFxuICAgIFwi2qnYp9mF2K/bjNmGXCIsXG4gICAgXCLaqdin2YXYsdin2YZcIixcbiAgICBcItqp2KfZhdix2KfZiNinXCIsXG4gICAgXCLaqdin2YXaqVwiLFxuICAgIFwi2qnYp9mF2YbZiNi0XCIsXG4gICAgXCLaqdin2YXbjNin2LFcIixcbiAgICBcItqp2KfZhtuM2KfYsVwiLFxuICAgIFwi2qnYp9mI2YjYs1wiLFxuICAgIFwi2qnYp9mI2YdcIixcbiAgICBcItqp2KrYp9uM2YjZhlwiLFxuICAgIFwi2qnYsdi02YXZh1wiLFxuICAgIFwi2qnYs9ix24xcIixcbiAgICBcItqp2YTYp9mE2YdcIixcbiAgICBcItqp2YXYqNmI2KzbjNmHXCIsXG4gICAgXCLaqdmI2LTYp1wiLFxuICAgIFwi2qnZh9io2K9cIixcbiAgICBcItqp2YfYsdin2YVcIixcbiAgICBcItqp2YfYstin2K9cIixcbiAgICBcItqp24zYp9ix2LRcIixcbiAgICBcItqp24zYp9mGXCIsXG4gICAgXCLaqduM2KfZhtinXCIsXG4gICAgXCLaqduM2KfZhtqG2YfYsVwiLFxuICAgIFwi2qnbjNin2YbYr9iu2KpcIixcbiAgICBcItqp24zYp9mG2YjYtFwiLFxuICAgIFwi2qnbjNin2YjYtFwiLFxuICAgIFwi2qnbjNiu2LPYsdmIXCIsXG4gICAgXCLaqduM2YLYqNin2K9cIixcbiAgICBcItqp24zaqdin2YjZiNizXCIsXG4gICAgXCLaqduM2YjYp9mGXCIsXG4gICAgXCLaqduM2YjYp9mGINiv2K7YqlwiLFxuICAgIFwi2qnbjNmI2YXYsdirXCIsXG4gICAgXCLaqduM2YfYp9mGXCIsXG4gICAgXCLaqduM2KfZhtiv2K7YqlwiLFxuICAgIFwi2qnbjNmH2KfZhtmHXCIsXG4gICAgXCLar9ix2K8g2KLZgdix24zYr1wiLFxuICAgIFwi2q/Ysdiv2KfZhlwiLFxuICAgIFwi2q/Ysdi02KdcIixcbiAgICBcItqv2LHYtNin2LPYqFwiLFxuICAgIFwi2q/Ysdi024zZhlwiLFxuICAgIFwi2q/Ysdqv24zZhlwiLFxuICAgIFwi2q/YstmEXCIsXG4gICAgXCLar9i02KrYp9iz2KhcIixcbiAgICBcItqv2LTYs9ioXCIsXG4gICAgXCLar9i02LPYqCDYqNin2YbZiFwiLFxuICAgIFwi2q/ZhFwiLFxuICAgIFwi2q/ZhCDYotiw24zZhlwiLFxuICAgIFwi2q/ZhCDYotix2KfigIxcIixcbiAgICBcItqv2YTYp9ix2YdcIixcbiAgICBcItqv2YQg2KfZgdix2YjYslwiLFxuICAgIFwi2q/ZhNin2YTZh1wiLFxuICAgIFwi2q/ZhCDYp9mG2K/Yp9mFXCIsXG4gICAgXCLar9mE2KfZiNuM2LJcIixcbiAgICBcItqv2YTYqNin2K9cIixcbiAgICBcItqv2YTYqNin2LFcIixcbiAgICBcItqv2YTYqNin2YVcIixcbiAgICBcItqv2YTYqNin2YZcIixcbiAgICBcItqv2YTYqNin2YbZiFwiLFxuICAgIFwi2q/ZhNio2LHar1wiLFxuICAgIFwi2q/ZhNio2YhcIixcbiAgICBcItqv2YTYqNmH2KfYsVwiLFxuICAgIFwi2q/ZhNio24zYslwiLFxuICAgIFwi2q/ZhNm+2KfYsdmHXCIsXG4gICAgXCLar9mE2b7YsVwiLFxuICAgIFwi2q/ZhNm+2LHbjFwiLFxuICAgIFwi2q/ZhNm+2YjYtFwiLFxuICAgIFwi2q/ZhCDZvtmI2YbZh1wiLFxuICAgIFwi2q/ZhNqG24zZhlwiLFxuICAgIFwi2q/ZhNiv2K7YqlwiLFxuICAgIFwi2q/ZhNiv24zYs1wiLFxuICAgIFwi2q/ZhNix2KjYp1wiLFxuICAgIFwi2q/ZhNix2K5cIixcbiAgICBcItqv2YTYsdmG2q9cIixcbiAgICBcItqv2YTYsdmIXCIsXG4gICAgXCLar9mE2LTZhlwiLFxuICAgIFwi2q/ZhNix24zYslwiLFxuICAgIFwi2q/ZhNiy2KfYr1wiLFxuICAgIFwi2q/ZhNiy2KfYsVwiLFxuICAgIFwi2q/ZhNiz2KdcIixcbiAgICBcItqv2YTYtNuM2K9cIixcbiAgICBcItqv2YTZhtin2LFcIixcbiAgICBcItqv2YTZhtin2LJcIixcbiAgICBcItqv2YTZhtiz2KdcIixcbiAgICBcItqv2YTZhtmI2KfYslwiLFxuICAgIFwi2q/ZhNmG2YjYtFwiLFxuICAgIFwi2q/ZhNuMXCIsXG4gICAgXCLar9mI2K/YsdiyXCIsXG4gICAgXCLar9mI2YXYp9iq2YhcIixcbiAgICBcItqv2YfYsSDahtmH2LFcIixcbiAgICBcItqv2YjZh9ixINmG2KfYslwiLFxuICAgIFwi2q/bjNiq24xcIixcbiAgICBcItqv24zYs9mIXCIsXG4gICAgXCLar9uM2YTYr9inXCIsXG4gICAgXCLar9uM2YhcIixcbiAgICBcItmE2KfYr9mGXCIsXG4gICAgXCLZhNin2YTZh1wiLFxuICAgIFwi2YTYp9mE2Ycg2LHYrlwiLFxuICAgIFwi2YTYp9mE2Ycg2K/YrtiqXCIsXG4gICAgXCLZhNio2K7ZhtivXCIsXG4gICAgXCLZhNmC2KfYoVwiLFxuICAgIFwi2YTZiNmF2KfZhtinXCIsXG4gICAgXCLZhNmH2LHYp9iz2KhcIixcbiAgICBcItmF2KfYsdin2YRcIixcbiAgICBcItmF2KfYsduMXCIsXG4gICAgXCLZhdin2LLbjNin2LFcIixcbiAgICBcItmF2Kfaqdin2YZcIixcbiAgICBcItmF2KfZhdqpXCIsXG4gICAgXCLZhdin2YbYp1wiLFxuICAgIFwi2YXYp9mG2K/Yp9mG2KdcIixcbiAgICBcItmF2KfZhtmI2LRcIixcbiAgICBcItmF2KfZhtuMXCIsXG4gICAgXCLZhdin2YbbjNinXCIsXG4gICAgXCLZhdin2YfYp9mGXCIsXG4gICAgXCLZhdin2YfYp9mG2K/YrtiqXCIsXG4gICAgXCLZhdin2Ycg2KjYsdiy24zZhlwiLFxuICAgIFwi2YXYp9mHINis2YfYp9mGXCIsXG4gICAgXCLZhdin2YfahtmH2LFcIixcbiAgICBcItmF2KfZh9iv2K7YqlwiLFxuICAgIFwi2YXYp9mH2YjYsVwiLFxuICAgIFwi2YXYp9mH2LHYrlwiLFxuICAgIFwi2YXYp9mH2LLYp9ivXCIsXG4gICAgXCLZhdix2K/YotmI24zYslwiLFxuICAgIFwi2YXYsdiv2KfYs1wiLFxuICAgIFwi2YXYsdiy2KjYp9mGXCIsXG4gICAgXCLZhdix2YXYsVwiLFxuICAgIFwi2YXYstiv2qlcIixcbiAgICBcItmF2pjYr9mHXCIsXG4gICAgXCLZhdqY2q/Yp9mGXCIsXG4gICAgXCLZhdiz2KrYp9mGXCIsXG4gICAgXCLZhdiz2KrYp9mG2YdcIixcbiAgICBcItmF2LTaqdin2YbYr9iu2KpcIixcbiAgICBcItmF2LTaqdmG2KfYslwiLFxuICAgIFwi2YXYtNqp24zZhiDYr9iu2KpcIixcbiAgICBcItmF2YbbjNqY2YdcIixcbiAgICBcItmF2YbZiNqG2YfYsVwiLFxuICAgIFwi2YXZh9io2KfZhtmIXCIsXG4gICAgXCLZhdmH2KjYr1wiLFxuICAgIFwi2YXZhyDYr9in2K9cIixcbiAgICBcItmF2YfYqtin2KhcIixcbiAgICBcItmF2YfYr9uM2LNcIixcbiAgICBcItmF2Ycg2KzYqNuM2YZcIixcbiAgICBcItmF2Ycg2K/YrtiqXCIsXG4gICAgXCLZhdmH2LEg2KLYsNixXCIsXG4gICAgXCLZhdmH2LEg2KLYsdinXCIsXG4gICAgXCLZhdmH2LEg2KLYs9inXCIsXG4gICAgXCLZhdmH2LEg2KLZgdin2YJcIixcbiAgICBcItmF2YfYsSDYp9mB2LHbjNmGXCIsXG4gICAgXCLZhdmH2LHYotioXCIsXG4gICAgXCLZhdmH2LHYr9in2K9cIixcbiAgICBcItmF2YfYsSDYp9mB2LLZiNmGXCIsXG4gICAgXCLZhdmH2LHYp9mFXCIsXG4gICAgXCLZhdmH2LHYp9mGXCIsXG4gICAgXCLZhdmH2LHYp9mG2K/YrtiqXCIsXG4gICAgXCLZhdmH2LHYp9mG2K/bjNi0XCIsXG4gICAgXCLZhdmH2LHYp9mG2YHYsVwiLFxuICAgIFwi2YXZh9ix2KfZhtqv24zYslwiLFxuICAgIFwi2YXZh9ix2K/Yp9ivXCIsXG4gICAgXCLZhdmH2LEg2K/YrtiqXCIsXG4gICAgXCLZhdmH2LHYstin2K/ZhyDigIxcIixcbiAgICBcItmF2YfYsdmG2KfYslwiLFxuICAgIFwi2YXZh9ix2YbZiNi0XCIsXG4gICAgXCLZhdmH2LHZhtqp2KfYsVwiLFxuICAgIFwi2YXZh9ix2YbbjNinXCIsXG4gICAgXCLZhdmH2LHZiNiyXCIsXG4gICAgXCLZhdmH2LHbjFwiLFxuICAgIFwi2YXZh9ix24zYp9ixXCIsXG4gICAgXCLZhdmH2LPYp1wiLFxuICAgIFwi2YXZh9iz2KrbjFwiLFxuICAgIFwi2YXZhyDYs9uM2YXYp1wiLFxuICAgIFwi2YXZh9i02KfYr1wiLFxuICAgIFwi2YXZh9i024zYr1wiLFxuICAgIFwi2YXZh9mG2KfZhVwiLFxuICAgIFwi2YXZh9mG2KfYslwiLFxuICAgIFwi2YXZh9mG2YjYtFwiLFxuICAgIFwi2YXZh9mI2LRcIixcbiAgICBcItmF2YfbjNin2LFcIixcbiAgICBcItmF2YfbjNmGXCIsXG4gICAgXCLZhdmH24zZhiDYr9iu2KpcIixcbiAgICBcItmF24zYqtix2KdcIixcbiAgICBcItmF24zYrtqpXCIsXG4gICAgXCLZhduM2YbYp1wiLFxuICAgIFwi2YXbjNmG2Kcg2K/YrtiqXCIsXG4gICAgXCLZhduM2YbZiFwiLFxuICAgIFwi2YXbjNmG2YjYr9iu2KpcIixcbiAgICBcItmF24zZhtmIINmB2LFcIixcbiAgICBcItmG2KfYr9ixXCIsXG4gICAgXCLZhtin2LIg2KLZgdix24zZhlwiLFxuICAgIFwi2YbYp9iy2KjYp9mG2YhcIixcbiAgICBcItmG2KfYstm+2LHZiNixXCIsXG4gICAgXCLZhtin2LLahtmH2LFcIixcbiAgICBcItmG2KfYstmB2LFcIixcbiAgICBcItmG2KfYstmE24xcIixcbiAgICBcItmG2KfYstuMXCIsXG4gICAgXCLZhtin2LLbjNiv2K7YqlwiLFxuICAgIFwi2YbYp9mF2YjYsVwiLFxuICAgIFwi2YbYp9mH24zYr1wiLFxuICAgIFwi2YbYr9inXCIsXG4gICAgXCLZhtix2LPbjFwiLFxuICAgIFwi2YbYsdqv2LNcIixcbiAgICBcItmG2LHZhdqpXCIsXG4gICAgXCLZhtix2YXbjNmGXCIsXG4gICAgXCLZhtix24zZhdin2YZcIixcbiAgICBcItmG2LPYqtix2YZcIixcbiAgICBcItmG2LPYsduM2YZcIixcbiAgICBcItmG2LPYsduM2YYg2K/YrtiqXCIsXG4gICAgXCLZhtiz2LHbjNmGINmG2YjYtFwiLFxuICAgIFwi2YbaqduM2LPYp1wiLFxuICAgIFwi2Ybar9in2LFcIixcbiAgICBcItmG2q/Yp9ix2YdcIixcbiAgICBcItmG2q/Yp9ix24zZhlwiLFxuICAgIFwi2Ybar9uM2YZcIixcbiAgICBcItmG2YjYp1wiLFxuICAgIFwi2YbZiNi0XCIsXG4gICAgXCLZhtmI2LQg2KLYsNixXCIsXG4gICAgXCLZhtmI2LQg2KLZiNixXCIsXG4gICAgXCLZhtmI2LTYp1wiLFxuICAgIFwi2YbZiNi0INii2YHYsduM2YZcIixcbiAgICBcItmG2YjYtNiv2K7YqlwiLFxuICAgIFwi2YbZiNi02LHZiNin2YZcIixcbiAgICBcItmG2YjYtNmB2LFcIixcbiAgICBcItmG2YjYtNmG2KfYslwiLFxuICAgIFwi2YbZiNi024zZhlwiLFxuICAgIFwi2YbZiNuM2K9cIixcbiAgICBcItmG2YjbjNmGXCIsXG4gICAgXCLZhtmI24zZhiDYr9iu2KpcIixcbiAgICBcItmG24zYtCDYp1wiLFxuICAgIFwi2YbbjNqpINio24zZhlwiLFxuICAgIFwi2YbbjNqpINm+24xcIixcbiAgICBcItmG24zaqSDahtmH2LFcIixcbiAgICBcItmG24zaqSDYrtmI2KfZh1wiLFxuICAgIFwi2YbbjNqp2K/Yp9ivXCIsXG4gICAgXCLZhtuM2qnYr9iu2KpcIixcbiAgICBcItmG24zaqdiv2YRcIixcbiAgICBcItmG24zaqdiy2KfYr1wiLFxuICAgIFwi2YbbjNmE2YjZgdixXCIsXG4gICAgXCLZhtuM2YXYp1wiLFxuICAgIFwi2YjYp9mF2YJcIixcbiAgICBcItmI2LHYrNin2YjZhtivXCIsXG4gICAgXCLZiNix24zYp1wiLFxuICAgIFwi2YjYtNmF2q/bjNixXCIsXG4gICAgXCLZiNmH2LHYslwiLFxuICAgIFwi2YjZh9iz2YjYr9in2YZcIixcbiAgICBcItmI24zYr9inXCIsXG4gICAgXCLZiNuM2LNcIixcbiAgICBcItmI24zYtNiq2KfYs9ioXCIsXG4gICAgXCLZiNuM2q/ZhlwiLFxuICAgIFwi2YfamNuM2LFcIixcbiAgICBcItmH2K7Yp9mF2YbYtFwiLFxuICAgIFwi2YfYsdio2K8oINmH24zYsdio2K8gKVwiLFxuICAgIFwi2YfYsdmF2LJcIixcbiAgICBcItmH2YXYp9uM2YjZhlwiLFxuICAgIFwi2YfZhdinXCIsXG4gICAgXCLZh9mF2KfYr9iu2KpcIixcbiAgICBcItmH2YXYr9mFXCIsXG4gICAgXCLZh9mF2LHYp9iyXCIsXG4gICAgXCLZh9mF2LHYp9mHXCIsXG4gICAgXCLZh9mG2q/Yp9mF2YdcIixcbiAgICBcItmH2YjYqtmGXCIsXG4gICAgXCLZh9mI2LFcIixcbiAgICBcItmH2YjYsdiq2KfYtFwiLFxuICAgIFwi2YfZiNix2obZh9ixXCIsXG4gICAgXCLZh9mI2LHYr9in2K9cIixcbiAgICBcItmH2YjYsdiv2K7YqlwiLFxuICAgIFwi2YfZiNix2LLYp9ivXCIsXG4gICAgXCLZh9mI2LHZhdmG2K9cIixcbiAgICBcItmH2YjYsdmI2LRcIixcbiAgICBcItmH2YjYtNmG2q9cIixcbiAgICBcItmH2YjYtNuM2KfYsVwiLFxuICAgIFwi2YfZiNmF2KfZhlwiLFxuICAgIFwi2YfZiNmF2YZcIixcbiAgICBcItmH2YjZhtin2YVcIixcbiAgICBcItmH2YjbjNiv2KdcIixcbiAgICBcItmH24zYqtin2LPYqFwiLFxuICAgIFwi2YfbjNix2YXZhtivXCIsXG4gICAgXCLZh9uM2YXYp1wiLFxuICAgIFwi2YfbjNmI2KdcIixcbiAgICBcItuM2KfYr9qv2KfYsVwiLFxuICAgIFwi24zYp9iz2YXZhiAoINuM2KfYs9mF24zZhiApXCIsXG4gICAgXCLbjNin2LTYp9ixXCIsXG4gICAgXCLbjNin2YjYsVwiLFxuICAgIFwi24zYstiv2KfZhlwiLFxuICAgIFwi24zar9in2YbZh1wiLFxuICAgIFwi24zZiNi024zYqtinXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi2LnYp9ix2YFcIixcbiAgICBcIti52KfYtNmI2LHbjFwiLFxuICAgIFwi2LnYp9mE24xcIixcbiAgICBcIti52KjYp9iv24xcIixcbiAgICBcIti52KjYr9in2YTaqdix24zZhduMXCIsXG4gICAgXCLYudio2K/Yp9mE2YXZhNqp24xcIixcbiAgICBcIti52LHYp9mC24xcIixcbiAgICBcIti52LLbjNiy24xcIixcbiAgICBcIti52LXYp9ixXCIsXG4gICAgXCLYudmC24zZhNuMXCIsXG4gICAgXCLYudmE2YVcIixcbiAgICBcIti52YTZheKAjNin2YTZh9iv24xcIixcbiAgICBcIti52YTbjCDYudiz2q/YsduMXCIsXG4gICAgXCLYudmE24zigIzYotio2KfYr9uMXCIsXG4gICAgXCLYudmE24zYp1wiLFxuICAgIFwi2LnZhNuM4oCM2b7ZiNixXCIsXG4gICAgXCLYudmE24zigIzYstmF2KfZhtuMXCIsXG4gICAgXCLYudmG2KfbjNiqXCIsXG4gICAgXCLYuti22YbZgdix24xcIixcbiAgICBcIti62YbbjFwiLFxuICAgIFwi2YHYp9ix2LPbjFwiLFxuICAgIFwi2YHYp9i32YXbjFwiLFxuICAgIFwi2YHYp9mG24xcIixcbiAgICBcItmB2KrYp9it24xcIixcbiAgICBcItmB2LHYp9mF2LHYstuMXCIsXG4gICAgXCLZgdix2KxcIixcbiAgICBcItmB2LHYtNuM2K/ZiNix2K9cIixcbiAgICBcItmB2LHZhdin2YbZgdix2YXYp9im24zYp9mGXCIsXG4gICAgXCLZgdix2YjYqtmGXCIsXG4gICAgXCLZgdix2YfZhtqvXCIsXG4gICAgXCLZgdix24zYp9ivXCIsXG4gICAgXCLZgdmG2KfbjNuMXCIsXG4gICAgXCLZgdmG24zigIzYstin2K/Zh1wiLFxuICAgIFwi2YHZiNmE2KfYr9mI2YbYr1wiLFxuICAgIFwi2YHZh9mF24zYr9mHXCIsXG4gICAgXCLZgtin2LbbjFwiLFxuICAgIFwi2YLYp9mG2LnbjFwiLFxuICAgIFwi2YLYp9mG2YjZhtuMXCIsXG4gICAgXCLZgtmF24zYtNuMXCIsXG4gICAgXCLZgtmG2KjYsduMXCIsXG4gICAgXCLZgtmH2LHZhdin2YZcIixcbiAgICBcItmC2YfYsdmF2KfZhtuMXCIsXG4gICAgXCLZgtmH2LHZhdin2YbbjNin2YZcIixcbiAgICBcItmC2YfYs9iq2KfZhtuMXCIsXG4gICAgXCLaqdin2LTbjFwiLFxuICAgIFwi2qnYp9qp2KfZiNmG2K9cIixcbiAgICBcItqp2KfZhdqp2KfYsVwiLFxuICAgIFwi2qnYp9mF2YTbjFwiLFxuICAgIFwi2qnYp9mI24zYp9mG24xcIixcbiAgICBcItqp2K/bjNmI2LFcIixcbiAgICBcItqp2LHYr9io2obZh1wiLFxuICAgIFwi2qnYsdmF2KfZhtuMXCIsXG4gICAgXCLaqdix24zZhduMXCIsXG4gICAgXCLaqdmE2KjYp9iz24xcIixcbiAgICBcItqp2YXYp9mE24xcIixcbiAgICBcItqp2YjYtNqp24xcIixcbiAgICBcItqp2YfZhtmF2YjbjNuMXCIsXG4gICAgXCLaqduM2KfZhlwiLFxuICAgIFwi2qnbjNin2YbbjCAo2YbYp9mFINiu2KfZhtmI2KfYr9qv24wpXCIsXG4gICAgXCLaqduM2YXbjNin24zbjFwiLFxuICAgIFwi2q/ZhCDZhdit2YXYr9uMXCIsXG4gICAgXCLar9mE2b7Yp9uM2q/Yp9mG24xcIixcbiAgICBcItqv2YbYrNuMXCIsXG4gICAgXCLZhNin2KzZiNix2K/bjFwiLFxuICAgIFwi2YTYp9qG24zZhtuMXCIsXG4gICAgXCLZhNin2YfZiNiq24xcIixcbiAgICBcItmE2Ybaqdix2KfZhtuMXCIsXG4gICAgXCLZhNmI2qnYs1wiLFxuICAgIFwi2YXYrNin2YfYr1wiLFxuICAgIFwi2YXYrNiq2KjYp9uM24xcIixcbiAgICBcItmF2KzYqtio2YjbjFwiLFxuICAgIFwi2YXYrNiq2YfYryDYtNio2LPYqtix24xcIixcbiAgICBcItmF2KzYqtmH2K/bjFwiLFxuICAgIFwi2YXYrNix2K9cIixcbiAgICBcItmF2K3YrNmI2KhcIixcbiAgICBcItmF2K3YrNmI2KjbjFwiLFxuICAgIFwi2YXYrdiv2KvbjFwiLFxuICAgIFwi2YXYrdmF2K/Ysdi22KfbjNuMXCIsXG4gICAgXCLZhdit2YXYr9uMXCIsXG4gICAgXCLZhdiv2K/bjFwiLFxuICAgIFwi2YXYsdin2K/Yrtin2YbbjFwiLFxuICAgIFwi2YXYsdiq2LbZiNuMXCIsXG4gICAgXCLZhdiz2KrZiNmB24xcIixcbiAgICBcItmF2LTYp1wiLFxuICAgIFwi2YXYtdin2K3YqFwiLFxuICAgIFwi2YXYtdio2KfYrVwiLFxuICAgIFwi2YXYtdio2KfYreKAjNiy2KfYr9mHXCIsXG4gICAgXCLZhdi32YfYsduMXCIsXG4gICAgXCLZhdi42YHYsVwiLFxuICAgIFwi2YXYudin2LHZgVwiLFxuICAgIFwi2YXYudix2YjZgVwiLFxuICAgIFwi2YXYuduM2YZcIixcbiAgICBcItmF2YHYqtin2K1cIixcbiAgICBcItmF2YHYqtitXCIsXG4gICAgXCLZhdmC2K/ZhVwiLFxuICAgIFwi2YXZhNin24zYsduMXCIsXG4gICAgXCLZhdmE2qlcIixcbiAgICBcItmF2YTaqduM2KfZhlwiLFxuICAgIFwi2YXZhtmI2obZh9ix24xcIixcbiAgICBcItmF2YjYrdivXCIsXG4gICAgXCLZhdmI2LPZiNuMXCIsXG4gICAgXCLZhdmI2LPZiNuM2KfZhlwiLFxuICAgIFwi2YXZh9in2KzYsdin2YbbjFwiLFxuICAgIFwi2YXZh9iv24zigIzZvtmI2LFcIixcbiAgICBcItmF24zYsdio2KfZgtix24xcIixcbiAgICBcItmF24zYsdiv2KfZhdin2K/bjFwiLFxuICAgIFwi2YXbjNix2LLYp9iv2YdcIixcbiAgICBcItmF24zYsdiz2b7Yp9iz24xcIixcbiAgICBcItmF24zYstio2KfZhtuMXCIsXG4gICAgXCLZhtin2LjYsduMXCIsXG4gICAgXCLZhtin2YXZiNixXCIsXG4gICAgXCLZhtis2YHbjFwiLFxuICAgIFwi2YbYr9mI2LTZhlwiLFxuICAgIFwi2YbYsdin2YLbjFwiLFxuICAgIFwi2YbYudmF2KrigIzYstin2K/Zh1wiLFxuICAgIFwi2YbZgtiv24xcIixcbiAgICBcItmG2YLbjNio4oCM2LLYp9iv2YdcIixcbiAgICBcItmG2YjYp9ioXCIsXG4gICAgXCLZhtmI2KjYrtiqXCIsXG4gICAgXCLZhtmI2KjYrtiq24xcIixcbiAgICBcItmG2YfYp9mI2YbYr9uMXCIsXG4gICAgXCLZhtuM2LTYp9io2YjYsduMXCIsXG4gICAgXCLZhtuM2YTZiNmB2LHbjFwiLFxuICAgIFwi2YjYp9ir2YLbjFwiLFxuICAgIFwi2YjYp9i52LhcIixcbiAgICBcItmI2KfYudi44oCM2LLYp9iv2YdcIixcbiAgICBcItmI2KfYudi424xcIixcbiAgICBcItmI2qnbjNmE24xcIixcbiAgICBcItmH2KfYtNmF24xcIixcbiAgICBcItmH2KfYtNmF24wg2LHZgdiz2YbYrNin2YbbjFwiLFxuICAgIFwi2YfYp9i02YXbjNin2YZcIixcbiAgICBcItmH2KfZhdmI2YZcIixcbiAgICBcItmH2K/Yp9uM2KpcIixcbiAgICBcItmH2LHYp9iq24xcIixcbiAgICBcItmH2LHZiNuMXCIsXG4gICAgXCLZh9mF2KfbjNmI2YZcIixcbiAgICBcItmH2YXYqlwiLFxuICAgIFwi2YfZhdiv2KfZhtuMXCIsXG4gICAgXCLZh9mI2LTbjNin2LFcIixcbiAgICBcItmH2YjZhdmGXCIsXG4gICAgXCLbjNin2K3ZgtuMXCIsXG4gICAgXCLbjNin2K/ar9in2LFcIixcbiAgICBcItuM2KvYsdio24xcIixcbiAgICBcItuM2YTYr9inXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwi2KLZgtin24xcIixcbiAgICBcItiu2KfZhtmFXCIsXG4gICAgXCLYr9qp2KrYsVwiXG4gIF1cbn07XG4iLCJ2YXIgZnIgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBmcjtcbmZyLnRpdGxlID0gXCJGcmVuY2hcIjtcbmZyLmFkZHJlc3MgPSB7XG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiQWxsw6llLCBWb2llXCIsXG4gICAgXCJSdWVcIixcbiAgICBcIkF2ZW51ZVwiLFxuICAgIFwiQm91bGV2YXJkXCIsXG4gICAgXCJRdWFpXCIsXG4gICAgXCJQYXNzYWdlXCIsXG4gICAgXCJJbXBhc3NlXCIsXG4gICAgXCJQbGFjZVwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0LiAjIyNcIixcbiAgICBcIiMgw6l0YWdlXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxzYWNlXCIsXG4gICAgXCJBcXVpdGFpbmVcIixcbiAgICBcIkF1dmVyZ25lXCIsXG4gICAgXCJCYXNzZS1Ob3JtYW5kaWVcIixcbiAgICBcIkJvdXJnb2duZVwiLFxuICAgIFwiQnJldGFnbmVcIixcbiAgICBcIkNlbnRyZVwiLFxuICAgIFwiQ2hhbXBhZ25lLUFyZGVubmVcIixcbiAgICBcIkNvcnNlXCIsXG4gICAgXCJGcmFuY2hlLUNvbXTDqVwiLFxuICAgIFwiSGF1dGUtTm9ybWFuZGllXCIsXG4gICAgXCLDjmxlLWRlLUZyYW5jZVwiLFxuICAgIFwiTGFuZ3VlZG9jLVJvdXNzaWxsb25cIixcbiAgICBcIkxpbW91c2luXCIsXG4gICAgXCJMb3JyYWluZVwiLFxuICAgIFwiTWlkaS1QeXLDqW7DqWVzXCIsXG4gICAgXCJOb3JkLVBhcy1kZS1DYWxhaXNcIixcbiAgICBcIlBheXMgZGUgbGEgTG9pcmVcIixcbiAgICBcIlBpY2FyZGllXCIsXG4gICAgXCJQb2l0b3UtQ2hhcmVudGVzXCIsXG4gICAgXCJQcm92ZW5jZS1BbHBlcy1Dw7R0ZSBkJ0F6dXJcIixcbiAgICBcIlJow7RuZS1BbHBlc1wiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIlBhcmlzXCIsXG4gICAgXCJNYXJzZWlsbGVcIixcbiAgICBcIkx5b25cIixcbiAgICBcIlRvdWxvdXNlXCIsXG4gICAgXCJOaWNlXCIsXG4gICAgXCJOYW50ZXNcIixcbiAgICBcIlN0cmFzYm91cmdcIixcbiAgICBcIk1vbnRwZWxsaWVyXCIsXG4gICAgXCJCb3JkZWF1eFwiLFxuICAgIFwiTGlsbGUxM1wiLFxuICAgIFwiUmVubmVzXCIsXG4gICAgXCJSZWltc1wiLFxuICAgIFwiTGUgSGF2cmVcIixcbiAgICBcIlNhaW50LcOJdGllbm5lXCIsXG4gICAgXCJUb3Vsb25cIixcbiAgICBcIkdyZW5vYmxlXCIsXG4gICAgXCJEaWpvblwiLFxuICAgIFwiQW5nZXJzXCIsXG4gICAgXCJTYWludC1EZW5pc1wiLFxuICAgIFwiVmlsbGV1cmJhbm5lXCIsXG4gICAgXCJMZSBNYW5zXCIsXG4gICAgXCJBaXgtZW4tUHJvdmVuY2VcIixcbiAgICBcIkJyZXN0XCIsXG4gICAgXCJOw65tZXNcIixcbiAgICBcIkxpbW9nZXNcIixcbiAgICBcIkNsZXJtb250LUZlcnJhbmRcIixcbiAgICBcIlRvdXJzXCIsXG4gICAgXCJBbWllbnNcIixcbiAgICBcIk1ldHpcIixcbiAgICBcIlBlcnBpZ25hblwiLFxuICAgIFwiQmVzYW7Dp29uXCIsXG4gICAgXCJPcmzDqWFuc1wiLFxuICAgIFwiQm91bG9nbmUtQmlsbGFuY291cnRcIixcbiAgICBcIk11bGhvdXNlXCIsXG4gICAgXCJSb3VlblwiLFxuICAgIFwiQ2FlblwiLFxuICAgIFwiTmFuY3lcIixcbiAgICBcIlNhaW50LURlbmlzXCIsXG4gICAgXCJTYWludC1QYXVsXCIsXG4gICAgXCJNb250cmV1aWxcIixcbiAgICBcIkFyZ2VudGV1aWxcIixcbiAgICBcIlJvdWJhaXhcIixcbiAgICBcIkR1bmtlcnF1ZTE0XCIsXG4gICAgXCJUb3VyY29pbmdcIixcbiAgICBcIk5hbnRlcnJlXCIsXG4gICAgXCJBdmlnbm9uXCIsXG4gICAgXCJDcsOpdGVpbFwiLFxuICAgIFwiUG9pdGllcnNcIixcbiAgICBcIkZvcnQtZGUtRnJhbmNlXCIsXG4gICAgXCJDb3VyYmV2b2llXCIsXG4gICAgXCJWZXJzYWlsbGVzXCIsXG4gICAgXCJWaXRyeS1zdXItU2VpbmVcIixcbiAgICBcIkNvbG9tYmVzXCIsXG4gICAgXCJQYXVcIixcbiAgICBcIkF1bG5heS1zb3VzLUJvaXNcIixcbiAgICBcIkFzbmnDqHJlcy1zdXItU2VpbmVcIixcbiAgICBcIlJ1ZWlsLU1hbG1haXNvblwiLFxuICAgIFwiU2FpbnQtUGllcnJlXCIsXG4gICAgXCJBbnRpYmVzXCIsXG4gICAgXCJTYWludC1NYXVyLWRlcy1Gb3Nzw6lzXCIsXG4gICAgXCJDaGFtcGlnbnktc3VyLU1hcm5lXCIsXG4gICAgXCJMYSBSb2NoZWxsZVwiLFxuICAgIFwiQXViZXJ2aWxsaWVyc1wiLFxuICAgIFwiQ2FsYWlzXCIsXG4gICAgXCJDYW5uZXNcIixcbiAgICBcIkxlIFRhbXBvblwiLFxuICAgIFwiQsOpemllcnNcIixcbiAgICBcIkNvbG1hclwiLFxuICAgIFwiQm91cmdlc1wiLFxuICAgIFwiRHJhbmN5XCIsXG4gICAgXCJNw6lyaWduYWNcIixcbiAgICBcIlNhaW50LU5hemFpcmVcIixcbiAgICBcIlZhbGVuY2VcIixcbiAgICBcIkFqYWNjaW9cIixcbiAgICBcIklzc3ktbGVzLU1vdWxpbmVhdXhcIixcbiAgICBcIlZpbGxlbmV1dmUtZCdBc2NxXCIsXG4gICAgXCJMZXZhbGxvaXMtUGVycmV0XCIsXG4gICAgXCJOb2lzeS1sZS1HcmFuZFwiLFxuICAgIFwiUXVpbXBlclwiLFxuICAgIFwiTGEgU2V5bmUtc3VyLU1lclwiLFxuICAgIFwiQW50b255XCIsXG4gICAgXCJUcm95ZXNcIixcbiAgICBcIk5ldWlsbHktc3VyLVNlaW5lXCIsXG4gICAgXCJTYXJjZWxsZXNcIixcbiAgICBcIkxlcyBBYnltZXNcIixcbiAgICBcIlbDqW5pc3NpZXV4XCIsXG4gICAgXCJDbGljaHlcIixcbiAgICBcIkxvcmllbnRcIixcbiAgICBcIlBlc3NhY1wiLFxuICAgIFwiSXZyeS1zdXItU2VpbmVcIixcbiAgICBcIkNlcmd5XCIsXG4gICAgXCJDYXllbm5lXCIsXG4gICAgXCJOaW9ydFwiLFxuICAgIFwiQ2hhbWLDqXJ5XCIsXG4gICAgXCJNb250YXViYW5cIixcbiAgICBcIlNhaW50LVF1ZW50aW5cIixcbiAgICBcIlZpbGxlanVpZlwiLFxuICAgIFwiSHnDqHJlc1wiLFxuICAgIFwiQmVhdXZhaXNcIixcbiAgICBcIkNob2xldFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiZGUgbCdBYmJheWVcIixcbiAgICBcIkFkb2xwaGUgTWlsbGVcIixcbiAgICBcImQnQWzDqXNpYVwiLFxuICAgIFwiZCdBcmdlbnRldWlsXCIsXG4gICAgXCJkJ0Fzc2FzXCIsXG4gICAgXCJkdSBCYWNcIixcbiAgICBcImRlIFBhcmlzXCIsXG4gICAgXCJMYSBCb8OpdGllXCIsXG4gICAgXCJCb25hcGFydGVcIixcbiAgICBcImRlIGxhIELDu2NoZXJpZVwiLFxuICAgIFwiZGUgQ2F1bWFydGluXCIsXG4gICAgXCJDaGFybGVtYWduZVwiLFxuICAgIFwiZHUgQ2hhdC1xdWktUMOqY2hlXCIsXG4gICAgXCJkZSBsYSBDaGF1c3PDqWUtZCdBbnRpblwiLFxuICAgIFwiZHUgRGFob21leVwiLFxuICAgIFwiRGF1cGhpbmVcIixcbiAgICBcIkRlbGVzc2V1eFwiLFxuICAgIFwiZHUgRmF1Ym91cmcgU2FpbnQtSG9ub3LDqVwiLFxuICAgIFwiZHUgRmF1Ym91cmctU2FpbnQtRGVuaXNcIixcbiAgICBcImRlIGxhIEZlcnJvbm5lcmllXCIsXG4gICAgXCJkZXMgRnJhbmNzLUJvdXJnZW9pc1wiLFxuICAgIFwiZGVzIEdyYW5kcyBBdWd1c3RpbnNcIixcbiAgICBcImRlIGxhIEhhcnBlXCIsXG4gICAgXCJkdSBIYXZyZVwiLFxuICAgIFwiZGUgbGEgSHVjaGV0dGVcIixcbiAgICBcIkpvdWJlcnRcIixcbiAgICBcIkxhZmZpdHRlXCIsXG4gICAgXCJMZXBpY1wiLFxuICAgIFwiZGVzIExvbWJhcmRzXCIsXG4gICAgXCJNYXJjYWRldFwiLFxuICAgIFwiTW9sacOocmVcIixcbiAgICBcIk1vbnNpZXVyLWxlLVByaW5jZVwiLFxuICAgIFwiZGUgTW9udG1vcmVuY3lcIixcbiAgICBcIk1vbnRvcmd1ZWlsXCIsXG4gICAgXCJNb3VmZmV0YXJkXCIsXG4gICAgXCJkZSBOZXNsZVwiLFxuICAgIFwiT2JlcmthbXBmXCIsXG4gICAgXCJkZSBsJ09kw6lvblwiLFxuICAgIFwiZCdPcnNlbFwiLFxuICAgIFwiZGUgbGEgUGFpeFwiLFxuICAgIFwiZGVzIFBhbm9yYW1hc1wiLFxuICAgIFwiUGFzdG91cmVsbGVcIixcbiAgICBcIlBpZXJyZSBDaGFycm9uXCIsXG4gICAgXCJkZSBsYSBQb21wZVwiLFxuICAgIFwiZGUgUHJlc2JvdXJnXCIsXG4gICAgXCJkZSBQcm92ZW5jZVwiLFxuICAgIFwiZGUgUmljaGVsaWV1XCIsXG4gICAgXCJkZSBSaXZvbGlcIixcbiAgICBcImRlcyBSb3NpZXJzXCIsXG4gICAgXCJSb3lhbGVcIixcbiAgICBcImQnQWJiZXZpbGxlXCIsXG4gICAgXCJTYWludC1Ib25vcsOpXCIsXG4gICAgXCJTYWludC1CZXJuYXJkXCIsXG4gICAgXCJTYWludC1EZW5pc1wiLFxuICAgIFwiU2FpbnQtRG9taW5pcXVlXCIsXG4gICAgXCJTYWludC1KYWNxdWVzXCIsXG4gICAgXCJTYWludC1Tw6l2ZXJpblwiLFxuICAgIFwiZGVzIFNhdXNzYWllc1wiLFxuICAgIFwiZGUgU2VpbmVcIixcbiAgICBcImRlIFNvbGbDqXJpbm9cIixcbiAgICBcIkR1IFNvbW1lcmFyZFwiLFxuICAgIFwiZGUgVGlsc2l0dFwiLFxuICAgIFwiVmFuZWF1XCIsXG4gICAgXCJkZSBWYXVnaXJhcmRcIixcbiAgICBcImRlIGxhIFZpY3RvaXJlXCIsXG4gICAgXCJaYWRraW5lXCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9wcmVmaXh9ICN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7YnVpbGRpbmdfbnVtYmVyfSAje3N0cmVldF9uYW1lfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkZyYW5jZVwiXG4gIF1cbn07XG5mci5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJTQVJMXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiRVVSTFwiLFxuICAgIFwiU0FTXCIsXG4gICAgXCJTRU1cIixcbiAgICBcIlNDT1BcIixcbiAgICBcIkdJRVwiLFxuICAgIFwiRUlcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOlxuICAgIFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjpcbiAgICBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6XG4gICAgW1xuICAgICAgXCJjbGlja3MtYW5kLW1vcnRhclwiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ2ZXJ0aWNhbFwiLFxuICAgICAgXCJwcm9hY3RpdmVcIixcbiAgICAgIFwicm9idXN0XCIsXG4gICAgICBcInJldm9sdXRpb25hcnlcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwibGVhZGluZy1lZGdlXCIsXG4gICAgICBcImlubm92YXRpdmVcIixcbiAgICAgIFwiaW50dWl0aXZlXCIsXG4gICAgICBcInN0cmF0ZWdpY1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwic3RpY2t5XCIsXG4gICAgICBcIm9uZS10by1vbmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJlbmQtdG8tZW5kXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyXCIsXG4gICAgICBcImZyaWN0aW9ubGVzc1wiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZpcmFsXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiMjQvMzY1XCIsXG4gICAgICBcImJlc3Qtb2YtYnJlZWRcIixcbiAgICAgIFwia2lsbGVyXCIsXG4gICAgICBcIm1hZ25ldGljXCIsXG4gICAgICBcImJsZWVkaW5nLWVkZ2VcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiZG90LWNvbVwiLFxuICAgICAgXCJzZXh5XCIsXG4gICAgICBcImJhY2stZW5kXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJlZmZpY2llbnRcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGVkXCIsXG4gICAgICBcInNlYW1sZXNzXCIsXG4gICAgICBcImV4dGVuc2libGVcIixcbiAgICAgIFwidHVybi1rZXlcIixcbiAgICAgIFwid29ybGQtY2xhc3NcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiY3Jvc3MtbWVkaWFcIixcbiAgICAgIFwic3luZXJnaXN0aWNcIixcbiAgICAgIFwiYnJpY2tzLWFuZC1jbGlja3NcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInVzZXItY2VudHJpY1wiLFxuICAgICAgXCJ2aXNpb25hcnlcIixcbiAgICAgIFwiY3VzdG9taXplZFwiLFxuICAgICAgXCJ1YmlxdWl0b3VzXCIsXG4gICAgICBcInBsdWctYW5kLXBsYXlcIixcbiAgICAgIFwiY29sbGFib3JhdGl2ZVwiLFxuICAgICAgXCJjb21wZWxsaW5nXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcInJpY2hcIlxuICAgIF0sXG4gICAgXCJic19ub3VuXCI6IFtcbiAgICAgIFwic3luZXJnaWVzXCIsXG4gICAgICBcIndlYi1yZWFkaW5lc3NcIixcbiAgICAgIFwicGFyYWRpZ21zXCIsXG4gICAgICBcIm1hcmtldHNcIixcbiAgICAgIFwicGFydG5lcnNoaXBzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlc1wiLFxuICAgICAgXCJwbGF0Zm9ybXNcIixcbiAgICAgIFwiaW5pdGlhdGl2ZXNcIixcbiAgICAgIFwiY2hhbm5lbHNcIixcbiAgICAgIFwiZXllYmFsbHNcIixcbiAgICAgIFwiY29tbXVuaXRpZXNcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV0aW9uc1wiLFxuICAgICAgXCJlLXRhaWxlcnNcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJhY3Rpb24taXRlbXNcIixcbiAgICAgIFwicG9ydGFsc1wiLFxuICAgICAgXCJuaWNoZXNcIixcbiAgICAgIFwidGVjaG5vbG9naWVzXCIsXG4gICAgICBcImNvbnRlbnRcIixcbiAgICAgIFwidm9ydGFsc1wiLFxuICAgICAgXCJzdXBwbHktY2hhaW5zXCIsXG4gICAgICBcImNvbnZlcmdlbmNlXCIsXG4gICAgICBcInJlbGF0aW9uc2hpcHNcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlc1wiLFxuICAgICAgXCJpbnRlcmZhY2VzXCIsXG4gICAgICBcImUtbWFya2V0c1wiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInN5c3RlbXNcIixcbiAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICBcImluZm9tZWRpYXJpZXNcIixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm1pbmRzaGFyZVwiLFxuICAgICAgXCJkZWxpdmVyYWJsZXNcIixcbiAgICAgIFwidXNlcnNcIixcbiAgICAgIFwic2NoZW1hc1wiLFxuICAgICAgXCJuZXR3b3Jrc1wiLFxuICAgICAgXCJhcHBsaWNhdGlvbnNcIixcbiAgICAgIFwibWV0cmljc1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJleHBlcmllbmNlc1wiLFxuICAgICAgXCJ3ZWIgc2VydmljZXNcIixcbiAgICAgIFwibWV0aG9kb2xvZ2llc1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9IGV0ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmZyLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5mclwiLFxuICAgIFwiaG90bWFpbC5mclwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImZyXCIsXG4gICAgXCJldVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZnIubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwiYWxpYXNcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInBlcmZlcmVuZGlzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcImFjY3VzYW50aXVtXCIsXG4gICAgXCJkb2xvcmVtcXVlXCIsXG4gICAgXCJhcGVyaWFtXCIsXG4gICAgXCJlYXF1ZVwiLFxuICAgIFwiaXBzYVwiLFxuICAgIFwicXVhZVwiLFxuICAgIFwiYWJcIixcbiAgICBcImlsbG9cIixcbiAgICBcImludmVudG9yZVwiLFxuICAgIFwidmVyaXRhdGlzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc2lcIixcbiAgICBcImFyY2hpdGVjdG9cIixcbiAgICBcImJlYXRhZVwiLFxuICAgIFwidml0YWVcIixcbiAgICBcImRpY3RhXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJleHBsaWNhYm9cIixcbiAgICBcImFzcGVybmF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwib2RpdFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJmdWdpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJjb25zZXF1dW50dXJcIixcbiAgICBcIm1hZ25pXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJlb3NcIixcbiAgICBcInF1aVwiLFxuICAgIFwicmF0aW9uZVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwic2VxdWlcIixcbiAgICBcIm5lc2NpdW50XCIsXG4gICAgXCJuZXF1ZVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiaXBzdW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJzaXRcIixcbiAgICBcImFtZXRcIixcbiAgICBcImNvbnNlY3RldHVyXCIsXG4gICAgXCJhZGlwaXNjaVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJudW1xdWFtXCIsXG4gICAgXCJlaXVzXCIsXG4gICAgXCJtb2RpXCIsXG4gICAgXCJ0ZW1wb3JhXCIsXG4gICAgXCJpbmNpZHVudFwiLFxuICAgIFwidXRcIixcbiAgICBcImxhYm9yZVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9yZVwiLFxuICAgIFwibWFnbmFtXCIsXG4gICAgXCJhbGlxdWFtXCIsXG4gICAgXCJxdWFlcmF0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiYWRcIixcbiAgICBcIm1pbmltYVwiLFxuICAgIFwidmVuaWFtXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJub3N0cnVtXCIsXG4gICAgXCJleGVyY2l0YXRpb25lbVwiLFxuICAgIFwidWxsYW1cIixcbiAgICBcImNvcnBvcmlzXCIsXG4gICAgXCJuZW1vXCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJpcHNhbVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwic3VzY2lwaXRcIixcbiAgICBcImxhYm9yaW9zYW1cIixcbiAgICBcIm5pc2lcIixcbiAgICBcInV0XCIsXG4gICAgXCJhbGlxdWlkXCIsXG4gICAgXCJleFwiLFxuICAgIFwiZWFcIixcbiAgICBcImNvbW1vZGlcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJldW1cIixcbiAgICBcIml1cmVcIixcbiAgICBcInJlcHJlaGVuZGVyaXRcIixcbiAgICBcInF1aVwiLFxuICAgIFwiaW5cIixcbiAgICBcImVhXCIsXG4gICAgXCJ2b2x1cHRhdGVcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJlc3NlXCIsXG4gICAgXCJxdWFtXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaXVzdG9cIixcbiAgICBcIm9kaW9cIixcbiAgICBcImRpZ25pc3NpbW9zXCIsXG4gICAgXCJkdWNpbXVzXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImJsYW5kaXRpaXNcIixcbiAgICBcInByYWVzZW50aXVtXCIsXG4gICAgXCJsYXVkYW50aXVtXCIsXG4gICAgXCJ0b3RhbVwiLFxuICAgIFwicmVtXCIsXG4gICAgXCJ2b2x1cHRhdHVtXCIsXG4gICAgXCJkZWxlbml0aVwiLFxuICAgIFwiYXRxdWVcIixcbiAgICBcImNvcnJ1cHRpXCIsXG4gICAgXCJxdW9zXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc1wiLFxuICAgIFwibW9sZXN0aWFzXCIsXG4gICAgXCJleGNlcHR1cmlcIixcbiAgICBcInNpbnRcIixcbiAgICBcIm9jY2FlY2F0aVwiLFxuICAgIFwiY3VwaWRpdGF0ZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJwcm92aWRlbnRcIixcbiAgICBcInNlZFwiLFxuICAgIFwidXRcIixcbiAgICBcInBlcnNwaWNpYXRpc1wiLFxuICAgIFwidW5kZVwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImlzdGVcIixcbiAgICBcIm5hdHVzXCIsXG4gICAgXCJlcnJvclwiLFxuICAgIFwic2ltaWxpcXVlXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJpblwiLFxuICAgIFwiY3VscGFcIixcbiAgICBcInF1aVwiLFxuICAgIFwib2ZmaWNpYVwiLFxuICAgIFwiZGVzZXJ1bnRcIixcbiAgICBcIm1vbGxpdGlhXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiaWRcIixcbiAgICBcImVzdFwiLFxuICAgIFwibGFib3J1bVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9ydW1cIixcbiAgICBcImZ1Z2FcIixcbiAgICBcImV0XCIsXG4gICAgXCJoYXJ1bVwiLFxuICAgIFwicXVpZGVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiZmFjaWxpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJldFwiLFxuICAgIFwiZXhwZWRpdGFcIixcbiAgICBcImRpc3RpbmN0aW9cIixcbiAgICBcIm5hbVwiLFxuICAgIFwibGliZXJvXCIsXG4gICAgXCJ0ZW1wb3JlXCIsXG4gICAgXCJjdW1cIixcbiAgICBcInNvbHV0YVwiLFxuICAgIFwibm9iaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZWxpZ2VuZGlcIixcbiAgICBcIm9wdGlvXCIsXG4gICAgXCJjdW1xdWVcIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJpbXBlZGl0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInBvcnJvXCIsXG4gICAgXCJxdWlzcXVhbVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm1pbnVzXCIsXG4gICAgXCJpZFwiLFxuICAgIFwicXVvZFwiLFxuICAgIFwibWF4aW1lXCIsXG4gICAgXCJwbGFjZWF0XCIsXG4gICAgXCJmYWNlcmVcIixcbiAgICBcInBvc3NpbXVzXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcImFzc3VtZW5kYVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInJlcGVsbGVuZHVzXCIsXG4gICAgXCJ0ZW1wb3JpYnVzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwicXVpYnVzZGFtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJpbGx1bVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJldW1cIixcbiAgICBcImZ1Z2lhdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwibnVsbGFcIixcbiAgICBcInBhcmlhdHVyXCIsXG4gICAgXCJhdFwiLFxuICAgIFwidmVyb1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYWNjdXNhbXVzXCIsXG4gICAgXCJvZmZpY2lpc1wiLFxuICAgIFwiZGViaXRpc1wiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwibmVjZXNzaXRhdGlidXNcIixcbiAgICBcInNhZXBlXCIsXG4gICAgXCJldmVuaWV0XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZXRcIixcbiAgICBcInZvbHVwdGF0ZXNcIixcbiAgICBcInJlcHVkaWFuZGFlXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJldFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJub25cIixcbiAgICBcInJlY3VzYW5kYWVcIixcbiAgICBcIml0YXF1ZVwiLFxuICAgIFwiZWFydW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJoaWNcIixcbiAgICBcInRlbmV0dXJcIixcbiAgICBcImFcIixcbiAgICBcInNhcGllbnRlXCIsXG4gICAgXCJkZWxlY3R1c1wiLFxuICAgIFwidXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVpY2llbmRpc1wiLFxuICAgIFwidm9sdXB0YXRpYnVzXCIsXG4gICAgXCJtYWlvcmVzXCIsXG4gICAgXCJkb2xvcmlidXNcIixcbiAgICBcImFzcGVyaW9yZXNcIixcbiAgICBcInJlcGVsbGF0XCJcbiAgXSxcbiAgXCJzdXBwbGVtZW50YWxcIjogW1xuICAgIFwiYWJiYXNcIixcbiAgICBcImFiZHVjb1wiLFxuICAgIFwiYWJlb1wiLFxuICAgIFwiYWJzY2lkb1wiLFxuICAgIFwiYWJzY29uZGl0dXNcIixcbiAgICBcImFic2Vuc1wiLFxuICAgIFwiYWJzb3JiZW9cIixcbiAgICBcImFic3F1ZVwiLFxuICAgIFwiYWJzdGVyZ29cIixcbiAgICBcImFic3VtXCIsXG4gICAgXCJhYnVuZGFuc1wiLFxuICAgIFwiYWJ1dG9yXCIsXG4gICAgXCJhY2NlZG9cIixcbiAgICBcImFjY2VuZG9cIixcbiAgICBcImFjY2VwdHVzXCIsXG4gICAgXCJhY2NpcGlvXCIsXG4gICAgXCJhY2NvbW1vZG9cIixcbiAgICBcImFjY3VzYXRvclwiLFxuICAgIFwiYWNlclwiLFxuICAgIFwiYWNlcmJpdGFzXCIsXG4gICAgXCJhY2VydnVzXCIsXG4gICAgXCJhY2lkdXNcIixcbiAgICBcImFjaWVzXCIsXG4gICAgXCJhY3F1aXJvXCIsXG4gICAgXCJhY3NpXCIsXG4gICAgXCJhZGFtb1wiLFxuICAgIFwiYWRhdWdlb1wiLFxuICAgIFwiYWRkb1wiLFxuICAgIFwiYWRkdWNvXCIsXG4gICAgXCJhZGVtcHRpb1wiLFxuICAgIFwiYWRlb1wiLFxuICAgIFwiYWRlcHRpb1wiLFxuICAgIFwiYWRmZWN0dXNcIixcbiAgICBcImFkZmVyb1wiLFxuICAgIFwiYWRmaWNpb1wiLFxuICAgIFwiYWRmbGljdG9cIixcbiAgICBcImFkaGFlcm9cIixcbiAgICBcImFkaHVjXCIsXG4gICAgXCJhZGljaW9cIixcbiAgICBcImFkaW1wbGVvXCIsXG4gICAgXCJhZGludmVudGl0aWFzXCIsXG4gICAgXCJhZGlwaXNjb3JcIixcbiAgICBcImFkaXV2b1wiLFxuICAgIFwiYWRtaW5pc3RyYXRpb1wiLFxuICAgIFwiYWRtaXJhdGlvXCIsXG4gICAgXCJhZG1pdHRvXCIsXG4gICAgXCJhZG1vbmVvXCIsXG4gICAgXCJhZG1vdmVvXCIsXG4gICAgXCJhZG51b1wiLFxuICAgIFwiYWRvcHRvXCIsXG4gICAgXCJhZHNpZHVlXCIsXG4gICAgXCJhZHN0cmluZ29cIixcbiAgICBcImFkc3Vlc2NvXCIsXG4gICAgXCJhZHN1bVwiLFxuICAgIFwiYWR1bGF0aW9cIixcbiAgICBcImFkdWxlc2NlbnNcIixcbiAgICBcImFkdWx0dXNcIixcbiAgICBcImFkdXJvXCIsXG4gICAgXCJhZHZlbmlvXCIsXG4gICAgXCJhZHZlcnN1c1wiLFxuICAgIFwiYWR2b2NvXCIsXG4gICAgXCJhZWRpZmljaXVtXCIsXG4gICAgXCJhZWdlclwiLFxuICAgIFwiYWVncmVcIixcbiAgICBcImFlZ3JvdGF0aW9cIixcbiAgICBcImFlZ3J1c1wiLFxuICAgIFwiYWVuZXVzXCIsXG4gICAgXCJhZXF1aXRhc1wiLFxuICAgIFwiYWVxdXVzXCIsXG4gICAgXCJhZXJcIixcbiAgICBcImFlc3Rhc1wiLFxuICAgIFwiYWVzdGl2dXNcIixcbiAgICBcImFlc3R1c1wiLFxuICAgIFwiYWV0YXNcIixcbiAgICBcImFldGVybnVzXCIsXG4gICAgXCJhZ2VyXCIsXG4gICAgXCJhZ2dlcm9cIixcbiAgICBcImFnZ3JlZGlvclwiLFxuICAgIFwiYWduaXRpb1wiLFxuICAgIFwiYWdub3Njb1wiLFxuICAgIFwiYWdvXCIsXG4gICAgXCJhaXRcIixcbiAgICBcImFpdW50XCIsXG4gICAgXCJhbGllbnVzXCIsXG4gICAgXCJhbGlpXCIsXG4gICAgXCJhbGlvcXVpXCIsXG4gICAgXCJhbGlxdWFcIixcbiAgICBcImFsaXVzXCIsXG4gICAgXCJhbGxhdHVzXCIsXG4gICAgXCJhbG9cIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhbHR1c1wiLFxuICAgIFwiYWx2ZXVzXCIsXG4gICAgXCJhbWFyaXR1ZG9cIixcbiAgICBcImFtYml0dXNcIixcbiAgICBcImFtYnVsb1wiLFxuICAgIFwiYW1pY2l0aWFcIixcbiAgICBcImFtaWN1bHVtXCIsXG4gICAgXCJhbWlzc2lvXCIsXG4gICAgXCJhbWl0YVwiLFxuICAgIFwiYW1pdHRvXCIsXG4gICAgXCJhbW9cIixcbiAgICBcImFtb3JcIixcbiAgICBcImFtb3Zlb1wiLFxuICAgIFwiYW1wbGV4dXNcIixcbiAgICBcImFtcGxpdHVkb1wiLFxuICAgIFwiYW1wbHVzXCIsXG4gICAgXCJhbmNpbGxhXCIsXG4gICAgXCJhbmdlbHVzXCIsXG4gICAgXCJhbmd1bHVzXCIsXG4gICAgXCJhbmd1c3R1c1wiLFxuICAgIFwiYW5pbWFkdmVydG9cIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJhbmltdXNcIixcbiAgICBcImFubnVzXCIsXG4gICAgXCJhbnNlclwiLFxuICAgIFwiYW50ZVwiLFxuICAgIFwiYW50ZWFcIixcbiAgICBcImFudGVwb25vXCIsXG4gICAgXCJhbnRpcXV1c1wiLFxuICAgIFwiYXBlcmlvXCIsXG4gICAgXCJhcGVydGVcIixcbiAgICBcImFwb3N0b2x1c1wiLFxuICAgIFwiYXBwYXJhdHVzXCIsXG4gICAgXCJhcHBlbGxvXCIsXG4gICAgXCJhcHBvbm9cIixcbiAgICBcImFwcG9zaXR1c1wiLFxuICAgIFwiYXBwcm9ib1wiLFxuICAgIFwiYXB0b1wiLFxuICAgIFwiYXB0dXNcIixcbiAgICBcImFwdWRcIixcbiAgICBcImFxdWFcIixcbiAgICBcImFyYVwiLFxuICAgIFwiYXJhbmVhXCIsXG4gICAgXCJhcmJpdHJvXCIsXG4gICAgXCJhcmJvclwiLFxuICAgIFwiYXJidXN0dW1cIixcbiAgICBcImFyY2FcIixcbiAgICBcImFyY2VvXCIsXG4gICAgXCJhcmNlc3NvXCIsXG4gICAgXCJhcmN1c1wiLFxuICAgIFwiYXJnZW50dW1cIixcbiAgICBcImFyZ3VtZW50dW1cIixcbiAgICBcImFyZ3VvXCIsXG4gICAgXCJhcm1hXCIsXG4gICAgXCJhcm1hcml1bVwiLFxuICAgIFwiYXJtb1wiLFxuICAgIFwiYXJvXCIsXG4gICAgXCJhcnNcIixcbiAgICBcImFydGljdWx1c1wiLFxuICAgIFwiYXJ0aWZpY2lvc2VcIixcbiAgICBcImFydG9cIixcbiAgICBcImFyeFwiLFxuICAgIFwiYXNjaXNjb1wiLFxuICAgIFwiYXNjaXRcIixcbiAgICBcImFzcGVyXCIsXG4gICAgXCJhc3BpY2lvXCIsXG4gICAgXCJhc3BvcnRvXCIsXG4gICAgXCJhc3NlbnRhdG9yXCIsXG4gICAgXCJhc3RydW1cIixcbiAgICBcImF0YXZ1c1wiLFxuICAgIFwiYXRlclwiLFxuICAgIFwiYXRxdWlcIixcbiAgICBcImF0cm9jaXRhc1wiLFxuICAgIFwiYXRyb3hcIixcbiAgICBcImF0dGVyb1wiLFxuICAgIFwiYXR0b2xsb1wiLFxuICAgIFwiYXR0b25iaXR1c1wiLFxuICAgIFwiYXVjdG9yXCIsXG4gICAgXCJhdWN0dXNcIixcbiAgICBcImF1ZGFjaWFcIixcbiAgICBcImF1ZGF4XCIsXG4gICAgXCJhdWRlbnRpYVwiLFxuICAgIFwiYXVkZW9cIixcbiAgICBcImF1ZGlvXCIsXG4gICAgXCJhdWRpdG9yXCIsXG4gICAgXCJhdWZlcm9cIixcbiAgICBcImF1cmV1c1wiLFxuICAgIFwiYXVyaXNcIixcbiAgICBcImF1cnVtXCIsXG4gICAgXCJhdXRcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJhdXR1c1wiLFxuICAgIFwiYXV4aWxpdW1cIixcbiAgICBcImF2YXJpdGlhXCIsXG4gICAgXCJhdmFydXNcIixcbiAgICBcImF2ZWhvXCIsXG4gICAgXCJhdmVydG9cIixcbiAgICBcImF2b2NvXCIsXG4gICAgXCJiYWl1bHVzXCIsXG4gICAgXCJiYWxidXNcIixcbiAgICBcImJhcmJhXCIsXG4gICAgXCJiYXJkdXNcIixcbiAgICBcImJhc2l1bVwiLFxuICAgIFwiYmVhdHVzXCIsXG4gICAgXCJiZWxsaWN1c1wiLFxuICAgIFwiYmVsbHVtXCIsXG4gICAgXCJiZW5lXCIsXG4gICAgXCJiZW5lZmljaXVtXCIsXG4gICAgXCJiZW5ldm9sZW50aWFcIixcbiAgICBcImJlbmlnbmVcIixcbiAgICBcImJlc3RpYVwiLFxuICAgIFwiYmlib1wiLFxuICAgIFwiYmlzXCIsXG4gICAgXCJibGFuZGlvclwiLFxuICAgIFwiYm9udXNcIixcbiAgICBcImJvc1wiLFxuICAgIFwiYnJldmlzXCIsXG4gICAgXCJjYWRvXCIsXG4gICAgXCJjYWVjdXNcIixcbiAgICBcImNhZWxlc3Rpc1wiLFxuICAgIFwiY2FlbHVtXCIsXG4gICAgXCJjYWxhbWl0YXNcIixcbiAgICBcImNhbGNhclwiLFxuICAgIFwiY2FsY29cIixcbiAgICBcImNhbGN1bHVzXCIsXG4gICAgXCJjYWxsaWRlXCIsXG4gICAgXCJjYW1wYW5hXCIsXG4gICAgXCJjYW5kaWR1c1wiLFxuICAgIFwiY2FuaXNcIixcbiAgICBcImNhbm9uaWN1c1wiLFxuICAgIFwiY2FudG9cIixcbiAgICBcImNhcGlsbHVzXCIsXG4gICAgXCJjYXBpb1wiLFxuICAgIFwiY2FwaXR1bHVzXCIsXG4gICAgXCJjYXB0b1wiLFxuICAgIFwiY2FwdXRcIixcbiAgICBcImNhcmJvXCIsXG4gICAgXCJjYXJjZXJcIixcbiAgICBcImNhcmVvXCIsXG4gICAgXCJjYXJpZXNcIixcbiAgICBcImNhcmlvc3VzXCIsXG4gICAgXCJjYXJpdGFzXCIsXG4gICAgXCJjYXJtZW5cIixcbiAgICBcImNhcnBvXCIsXG4gICAgXCJjYXJ1c1wiLFxuICAgIFwiY2Fzc29cIixcbiAgICBcImNhc3RlXCIsXG4gICAgXCJjYXN1c1wiLFxuICAgIFwiY2F0ZW5hXCIsXG4gICAgXCJjYXRlcnZhXCIsXG4gICAgXCJjYXR0dXNcIixcbiAgICBcImNhdWRhXCIsXG4gICAgXCJjYXVzYVwiLFxuICAgIFwiY2F1dGVcIixcbiAgICBcImNhdmVvXCIsXG4gICAgXCJjYXZ1c1wiLFxuICAgIFwiY2Vkb1wiLFxuICAgIFwiY2VsZWJyZXJcIixcbiAgICBcImNlbGVyXCIsXG4gICAgXCJjZWxvXCIsXG4gICAgXCJjZW5hXCIsXG4gICAgXCJjZW5hY3VsdW1cIixcbiAgICBcImNlbm9cIixcbiAgICBcImNlbnN1cmFcIixcbiAgICBcImNlbnR1bVwiLFxuICAgIFwiY2Vybm9cIixcbiAgICBcImNlcm51dXNcIixcbiAgICBcImNlcnRlXCIsXG4gICAgXCJjZXJ0b1wiLFxuICAgIFwiY2VydHVzXCIsXG4gICAgXCJjZXJ2dXNcIixcbiAgICBcImNldGVyYVwiLFxuICAgIFwiY2hhcmlzbWFcIixcbiAgICBcImNoaXJvZ3JhcGh1bVwiLFxuICAgIFwiY2lib1wiLFxuICAgIFwiY2lidXNcIixcbiAgICBcImNpY3V0YVwiLFxuICAgIFwiY2lsaWNpdW1cIixcbiAgICBcImNpbWVudGFyaXVzXCIsXG4gICAgXCJjaW1pbmF0aW9cIixcbiAgICBcImNpbmlzXCIsXG4gICAgXCJjaXJjdW12ZW5pb1wiLFxuICAgIFwiY2l0b1wiLFxuICAgIFwiY2l2aXNcIixcbiAgICBcImNpdml0YXNcIixcbiAgICBcImNsYW1cIixcbiAgICBcImNsYW1vXCIsXG4gICAgXCJjbGFyb1wiLFxuICAgIFwiY2xhcnVzXCIsXG4gICAgXCJjbGF1ZGVvXCIsXG4gICAgXCJjbGF1c3RydW1cIixcbiAgICBcImNsZW1lbnRpYVwiLFxuICAgIFwiY2xpYmFudXNcIixcbiAgICBcImNvYWR1bmF0aW9cIixcbiAgICBcImNvYWVncmVzY29cIixcbiAgICBcImNvZXBpXCIsXG4gICAgXCJjb2VyY2VvXCIsXG4gICAgXCJjb2dpdG9cIixcbiAgICBcImNvZ25hdHVzXCIsXG4gICAgXCJjb2dub21lblwiLFxuICAgIFwiY29nb1wiLFxuICAgIFwiY29oYWVyb1wiLFxuICAgIFwiY29oaWJlb1wiLFxuICAgIFwiY29ob3JzXCIsXG4gICAgXCJjb2xsaWdvXCIsXG4gICAgXCJjb2xsb2NvXCIsXG4gICAgXCJjb2xsdW1cIixcbiAgICBcImNvbG9cIixcbiAgICBcImNvbG9yXCIsXG4gICAgXCJjb21hXCIsXG4gICAgXCJjb21iaWJvXCIsXG4gICAgXCJjb21idXJvXCIsXG4gICAgXCJjb21lZG9cIixcbiAgICBcImNvbWVzXCIsXG4gICAgXCJjb21ldGVzXCIsXG4gICAgXCJjb21pc1wiLFxuICAgIFwiY29taXRhdHVzXCIsXG4gICAgXCJjb21tZW1vcm9cIixcbiAgICBcImNvbW1pbm9yXCIsXG4gICAgXCJjb21tb2RvXCIsXG4gICAgXCJjb21tdW5pc1wiLFxuICAgIFwiY29tcGFyb1wiLFxuICAgIFwiY29tcGVsbG9cIixcbiAgICBcImNvbXBsZWN0dXNcIixcbiAgICBcImNvbXBvbm9cIixcbiAgICBcImNvbXByZWhlbmRvXCIsXG4gICAgXCJjb21wdHVzXCIsXG4gICAgXCJjb25hdHVzXCIsXG4gICAgXCJjb25jZWRvXCIsXG4gICAgXCJjb25jaWRvXCIsXG4gICAgXCJjb25jdWxjb1wiLFxuICAgIFwiY29uZGljb1wiLFxuICAgIFwiY29uZHVjb1wiLFxuICAgIFwiY29uZmVyb1wiLFxuICAgIFwiY29uZmlkb1wiLFxuICAgIFwiY29uZm9ydG9cIixcbiAgICBcImNvbmZ1Z29cIixcbiAgICBcImNvbmdyZWdhdGlvXCIsXG4gICAgXCJjb25pY2lvXCIsXG4gICAgXCJjb25pZWN0b1wiLFxuICAgIFwiY29uaXRvclwiLFxuICAgIFwiY29uaXVyYXRpb1wiLFxuICAgIFwiY29ub3JcIixcbiAgICBcImNvbnF1ZXJvclwiLFxuICAgIFwiY29uc2NlbmRvXCIsXG4gICAgXCJjb25zZXJ2b1wiLFxuICAgIFwiY29uc2lkZXJvXCIsXG4gICAgXCJjb25zcGVyZ29cIixcbiAgICBcImNvbnN0YW5zXCIsXG4gICAgXCJjb25zdWFzb3JcIixcbiAgICBcImNvbnRhYmVzY29cIixcbiAgICBcImNvbnRlZ29cIixcbiAgICBcImNvbnRpZ29cIixcbiAgICBcImNvbnRyYVwiLFxuICAgIFwiY29udHVyYm9cIixcbiAgICBcImNvbnZlbnR1c1wiLFxuICAgIFwiY29udm9jb1wiLFxuICAgIFwiY29waWFcIixcbiAgICBcImNvcGlvc2VcIixcbiAgICBcImNvcm51XCIsXG4gICAgXCJjb3JvbmFcIixcbiAgICBcImNvcnB1c1wiLFxuICAgIFwiY29ycmVwdGl1c1wiLFxuICAgIFwiY29ycmlnb1wiLFxuICAgIFwiY29ycm9ib3JvXCIsXG4gICAgXCJjb3JydW1wb1wiLFxuICAgIFwiY29ydXNjdXNcIixcbiAgICBcImNvdGlkaWVcIixcbiAgICBcImNyYXB1bGFcIixcbiAgICBcImNyYXNcIixcbiAgICBcImNyYXN0aW51c1wiLFxuICAgIFwiY3JlYXRvclwiLFxuICAgIFwiY3JlYmVyXCIsXG4gICAgXCJjcmVicm9cIixcbiAgICBcImNyZWRvXCIsXG4gICAgXCJjcmVvXCIsXG4gICAgXCJjcmVwdGlvXCIsXG4gICAgXCJjcmVwdXNjdWx1bVwiLFxuICAgIFwiY3Jlc2NvXCIsXG4gICAgXCJjcmV0YVwiLFxuICAgIFwiY3JpYnJvXCIsXG4gICAgXCJjcmluaXNcIixcbiAgICBcImNydWNpYW1lbnR1bVwiLFxuICAgIFwiY3J1ZGVsaXNcIixcbiAgICBcImNydWVudHVzXCIsXG4gICAgXCJjcnVyXCIsXG4gICAgXCJjcnVzdHVsdW1cIixcbiAgICBcImNydXhcIixcbiAgICBcImN1YmljdWxhcmlzXCIsXG4gICAgXCJjdWJpdHVtXCIsXG4gICAgXCJjdWJvXCIsXG4gICAgXCJjdWlcIixcbiAgICBcImN1aXVzXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwiY3VscG9cIixcbiAgICBcImN1bHRlbGx1c1wiLFxuICAgIFwiY3VsdHVyYVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJjdW5hYnVsYVwiLFxuICAgIFwiY3VuYWVcIixcbiAgICBcImN1bmN0YXRpb1wiLFxuICAgIFwiY3VwaWRpdGFzXCIsXG4gICAgXCJjdXBpb1wiLFxuICAgIFwiY3VwcGVkaWFcIixcbiAgICBcImN1cHJlc3N1c1wiLFxuICAgIFwiY3VyXCIsXG4gICAgXCJjdXJhXCIsXG4gICAgXCJjdXJhdGlvXCIsXG4gICAgXCJjdXJpYVwiLFxuICAgIFwiY3VyaW9zaXRhc1wiLFxuICAgIFwiY3VyaXNcIixcbiAgICBcImN1cm9cIixcbiAgICBcImN1cnJpY3VsdW1cIixcbiAgICBcImN1cnJ1c1wiLFxuICAgIFwiY3Vyc2ltXCIsXG4gICAgXCJjdXJzb1wiLFxuICAgIFwiY3Vyc3VzXCIsXG4gICAgXCJjdXJ0b1wiLFxuICAgIFwiY3VydHVzXCIsXG4gICAgXCJjdXJ2b1wiLFxuICAgIFwiY3VydnVzXCIsXG4gICAgXCJjdXN0b2RpYVwiLFxuICAgIFwiZGFtbmF0aW9cIixcbiAgICBcImRhbW5vXCIsXG4gICAgXCJkYXBpZmVyXCIsXG4gICAgXCJkZWJlb1wiLFxuICAgIFwiZGViaWxpdG9cIixcbiAgICBcImRlY2Vuc1wiLFxuICAgIFwiZGVjZXJub1wiLFxuICAgIFwiZGVjZXRcIixcbiAgICBcImRlY2ltdXNcIixcbiAgICBcImRlY2lwaW9cIixcbiAgICBcImRlY29yXCIsXG4gICAgXCJkZWNyZXR1bVwiLFxuICAgIFwiZGVjdW1ib1wiLFxuICAgIFwiZGVkZWNvclwiLFxuICAgIFwiZGVkaWNvXCIsXG4gICAgXCJkZWR1Y29cIixcbiAgICBcImRlZmFlY29cIixcbiAgICBcImRlZmVuZG9cIixcbiAgICBcImRlZmVyb1wiLFxuICAgIFwiZGVmZXNzdXNcIixcbiAgICBcImRlZmV0aXNjb3JcIixcbiAgICBcImRlZmljaW9cIixcbiAgICBcImRlZmlnb1wiLFxuICAgIFwiZGVmbGVvXCIsXG4gICAgXCJkZWZsdW9cIixcbiAgICBcImRlZnVuZ29cIixcbiAgICBcImRlZ2VuZXJvXCIsXG4gICAgXCJkZWdlcm9cIixcbiAgICBcImRlZ3VzdG9cIixcbiAgICBcImRlaW5kZVwiLFxuICAgIFwiZGVsZWN0YXRpb1wiLFxuICAgIFwiZGVsZWdvXCIsXG4gICAgXCJkZWxlb1wiLFxuICAgIFwiZGVsaWJlcm9cIixcbiAgICBcImRlbGljYXRlXCIsXG4gICAgXCJkZWxpbnF1b1wiLFxuICAgIFwiZGVsdWRvXCIsXG4gICAgXCJkZW1lbnNcIixcbiAgICBcImRlbWVyZ29cIixcbiAgICBcImRlbWl0dG9cIixcbiAgICBcImRlbW9cIixcbiAgICBcImRlbW9uc3Ryb1wiLFxuICAgIFwiZGVtb3JvclwiLFxuICAgIFwiZGVtdWxjZW9cIixcbiAgICBcImRlbXVtXCIsXG4gICAgXCJkZW5lZ29cIixcbiAgICBcImRlbmlxdWVcIixcbiAgICBcImRlbnNcIixcbiAgICBcImRlbnVuY2lvXCIsXG4gICAgXCJkZW51b1wiLFxuICAgIFwiZGVvcnN1bVwiLFxuICAgIFwiZGVwZXJlb1wiLFxuICAgIFwiZGVwb25vXCIsXG4gICAgXCJkZXBvcHVsb1wiLFxuICAgIFwiZGVwb3J0b1wiLFxuICAgIFwiZGVwcmFlZG9yXCIsXG4gICAgXCJkZXByZWNhdG9yXCIsXG4gICAgXCJkZXByaW1vXCIsXG4gICAgXCJkZXByb21vXCIsXG4gICAgXCJkZXB1bHNvXCIsXG4gICAgXCJkZXB1dG9cIixcbiAgICBcImRlcmVsaW5xdW9cIixcbiAgICBcImRlcmlkZW9cIixcbiAgICBcImRlcmlwaW9cIixcbiAgICBcImRlc2lkZXJvXCIsXG4gICAgXCJkZXNpbm9cIixcbiAgICBcImRlc2lwaW9cIixcbiAgICBcImRlc29sb1wiLFxuICAgIFwiZGVzcGFyYXR1c1wiLFxuICAgIFwiZGVzcGVjdG9cIixcbiAgICBcImRlc3Bpcm1hdGlvXCIsXG4gICAgXCJpbmZpdFwiLFxuICAgIFwiaW5mbGFtbWF0aW9cIixcbiAgICBcInBhZW5zXCIsXG4gICAgXCJwYXRpb3JcIixcbiAgICBcInBhdHJpYVwiLFxuICAgIFwicGF0cm9jaW5vclwiLFxuICAgIFwicGF0cnV1c1wiLFxuICAgIFwicGF1Y2lcIixcbiAgICBcInBhdWxhdGltXCIsXG4gICAgXCJwYXVwZXJcIixcbiAgICBcInBheFwiLFxuICAgIFwicGVjY2F0dXNcIixcbiAgICBcInBlY2NvXCIsXG4gICAgXCJwZWN0b1wiLFxuICAgIFwicGVjdHVzXCIsXG4gICAgXCJwZWN1bmlhXCIsXG4gICAgXCJwZWN1c1wiLFxuICAgIFwicGVpb3JcIixcbiAgICBcInBlbFwiLFxuICAgIFwib2NlclwiLFxuICAgIFwic29jaXVzXCIsXG4gICAgXCJzb2RhbGl0YXNcIixcbiAgICBcInNvbFwiLFxuICAgIFwic29sZW9cIixcbiAgICBcInNvbGlvXCIsXG4gICAgXCJzb2xpdHVkb1wiLFxuICAgIFwic29saXVtXCIsXG4gICAgXCJzb2xsZXJzXCIsXG4gICAgXCJzb2xsaWNpdG9cIixcbiAgICBcInNvbHVtXCIsXG4gICAgXCJzb2x1c1wiLFxuICAgIFwic29sdXRpb1wiLFxuICAgIFwic29sdm9cIixcbiAgICBcInNvbW5pY3Vsb3N1c1wiLFxuICAgIFwic29tbnVzXCIsXG4gICAgXCJzb25pdHVzXCIsXG4gICAgXCJzb25vXCIsXG4gICAgXCJzb3BoaXNtYXRhXCIsXG4gICAgXCJzb3BvclwiLFxuICAgIFwic29yZGVvXCIsXG4gICAgXCJzb3J0aXR1c1wiLFxuICAgIFwic3BhcmdvXCIsXG4gICAgXCJzcGVjaW9zdXNcIixcbiAgICBcInNwZWN0YWN1bHVtXCIsXG4gICAgXCJzcGVjdWx1bVwiLFxuICAgIFwic3Blcm5vXCIsXG4gICAgXCJzcGVyb1wiLFxuICAgIFwic3Blc1wiLFxuICAgIFwic3BpY3VsdW1cIixcbiAgICBcInNwaXJpdHVzXCIsXG4gICAgXCJzcG9saWF0aW9cIixcbiAgICBcInNwb250ZVwiLFxuICAgIFwic3RhYmlsaXNcIixcbiAgICBcInN0YXRpbVwiLFxuICAgIFwic3RhdHVhXCIsXG4gICAgXCJzdGVsbGFcIixcbiAgICBcInN0aWxsaWNpZGl1bVwiLFxuICAgIFwic3RpcGVzXCIsXG4gICAgXCJzdGlwc1wiLFxuICAgIFwic3RvXCIsXG4gICAgXCJzdHJlbnV1c1wiLFxuICAgIFwic3RydWVzXCIsXG4gICAgXCJzdHVkaW9cIixcbiAgICBcInN0dWx0dXNcIixcbiAgICBcInN1YWRlb1wiLFxuICAgIFwic3Vhc29yaWFcIixcbiAgICBcInN1YlwiLFxuICAgIFwic3ViaXRvXCIsXG4gICAgXCJzdWJpdW5nb1wiLFxuICAgIFwic3VibGltZVwiLFxuICAgIFwic3VibmVjdG9cIixcbiAgICBcInN1YnNlY29cIixcbiAgICBcInN1YnN0YW50aWFcIixcbiAgICBcInN1YnZlbmlvXCIsXG4gICAgXCJzdWNjZWRvXCIsXG4gICAgXCJzdWNjdXJyb1wiLFxuICAgIFwic3VmZmljaW9cIixcbiAgICBcInN1ZmZvY29cIixcbiAgICBcInN1ZmZyYWdpdW1cIixcbiAgICBcInN1Z2dlcm9cIixcbiAgICBcInN1aVwiLFxuICAgIFwic3VsdW1cIixcbiAgICBcInN1bVwiLFxuICAgIFwic3VtbWFcIixcbiAgICBcInN1bW1pc3NlXCIsXG4gICAgXCJzdW1tb3BlcmVcIixcbiAgICBcInN1bW9cIixcbiAgICBcInN1bXB0dXNcIixcbiAgICBcInN1cGVsbGV4XCIsXG4gICAgXCJzdXBlclwiLFxuICAgIFwic3VwcGVsbGV4XCIsXG4gICAgXCJzdXBwbGFudG9cIixcbiAgICBcInN1cHBvbm9cIixcbiAgICBcInN1cHJhXCIsXG4gICAgXCJzdXJjdWx1c1wiLFxuICAgIFwic3VyZ29cIixcbiAgICBcInN1cnN1bVwiLFxuICAgIFwic3VzY2lwaW9cIixcbiAgICBcInN1c3BlbmRvXCIsXG4gICAgXCJzdXN0aW5lb1wiLFxuICAgIFwic3V1c1wiLFxuICAgIFwic3luYWdvZ2FcIixcbiAgICBcInRhYmVsbGFcIixcbiAgICBcInRhYmVybnVzXCIsXG4gICAgXCJ0YWJlc2NvXCIsXG4gICAgXCJ0YWJnb1wiLFxuICAgIFwidGFidWxhXCIsXG4gICAgXCJ0YWNlb1wiLFxuICAgIFwidGFjdHVzXCIsXG4gICAgXCJ0YWVkaXVtXCIsXG4gICAgXCJ0YWxpb1wiLFxuICAgIFwidGFsaXNcIixcbiAgICBcInRhbHVzXCIsXG4gICAgXCJ0YW1cIixcbiAgICBcInRhbWRpdVwiLFxuICAgIFwidGFtZW5cIixcbiAgICBcInRhbWV0c2lcIixcbiAgICBcInRhbWlzaXVtXCIsXG4gICAgXCJ0YW1xdWFtXCIsXG4gICAgXCJ0YW5kZW1cIixcbiAgICBcInRhbnRpbGx1c1wiLFxuICAgIFwidGFudHVtXCIsXG4gICAgXCJ0YXJkdXNcIixcbiAgICBcInRlZ29cIixcbiAgICBcInRlbWVyaXRhc1wiLFxuICAgIFwidGVtcGVyYW50aWFcIixcbiAgICBcInRlbXBsdW1cIixcbiAgICBcInRlbXB0YXRpb1wiLFxuICAgIFwidGVtcHVzXCIsXG4gICAgXCJ0ZW5heFwiLFxuICAgIFwidGVuZG9cIixcbiAgICBcInRlbmVvXCIsXG4gICAgXCJ0ZW5lclwiLFxuICAgIFwidGVudWlzXCIsXG4gICAgXCJ0ZW51c1wiLFxuICAgIFwidGVwZXNjb1wiLFxuICAgIFwidGVwaWR1c1wiLFxuICAgIFwidGVyXCIsXG4gICAgXCJ0ZXJlYnJvXCIsXG4gICAgXCJ0ZXJlc1wiLFxuICAgIFwidGVyZ2FcIixcbiAgICBcInRlcmdlb1wiLFxuICAgIFwidGVyZ2l2ZXJzYXRpb1wiLFxuICAgIFwidGVyZ29cIixcbiAgICBcInRlcmd1bVwiLFxuICAgIFwidGVybWVzXCIsXG4gICAgXCJ0ZXJtaW5hdGlvXCIsXG4gICAgXCJ0ZXJvXCIsXG4gICAgXCJ0ZXJyYVwiLFxuICAgIFwidGVycmVvXCIsXG4gICAgXCJ0ZXJyaXRvXCIsXG4gICAgXCJ0ZXJyb3JcIixcbiAgICBcInRlcnN1c1wiLFxuICAgIFwidGVydGl1c1wiLFxuICAgIFwidGVzdGltb25pdW1cIixcbiAgICBcInRleG9cIixcbiAgICBcInRleHRpbGlzXCIsXG4gICAgXCJ0ZXh0b3JcIixcbiAgICBcInRleHR1c1wiLFxuICAgIFwidGhhbGFzc2ludXNcIixcbiAgICBcInRoZWF0cnVtXCIsXG4gICAgXCJ0aGVjYVwiLFxuICAgIFwidGhlbWFcIixcbiAgICBcInRoZW9sb2d1c1wiLFxuICAgIFwidGhlcm1hZVwiLFxuICAgIFwidGhlc2F1cnVzXCIsXG4gICAgXCJ0aGVzaXNcIixcbiAgICBcInRob3JheFwiLFxuICAgIFwidGh5bWJyYVwiLFxuICAgIFwidGh5bXVtXCIsXG4gICAgXCJ0aWJpXCIsXG4gICAgXCJ0aW1pZHVzXCIsXG4gICAgXCJ0aW1vclwiLFxuICAgIFwidGl0dWx1c1wiLFxuICAgIFwidG9sZXJvXCIsXG4gICAgXCJ0b2xsb1wiLFxuICAgIFwidG9uZGVvXCIsXG4gICAgXCJ0b25zb3JcIixcbiAgICBcInRvcnF1ZW9cIixcbiAgICBcInRvcnJlbnNcIixcbiAgICBcInRvdFwiLFxuICAgIFwidG90aWRlbVwiLFxuICAgIFwidG90aWVzXCIsXG4gICAgXCJ0b3R1c1wiLFxuICAgIFwidHJhY3RvXCIsXG4gICAgXCJ0cmFkb1wiLFxuICAgIFwidHJhaG9cIixcbiAgICBcInRyYW5zXCIsXG4gICAgXCJ0cmVkZWNpbVwiLFxuICAgIFwidHJlbW9cIixcbiAgICBcInRyZXBpZGVcIixcbiAgICBcInRyZXNcIixcbiAgICBcInRyaWJ1b1wiLFxuICAgIFwidHJpY2VzaW11c1wiLFxuICAgIFwidHJpZHVhbmFcIixcbiAgICBcInRyaWdpbnRhXCIsXG4gICAgXCJ0cmlwdWRpb1wiLFxuICAgIFwidHJpc3Rpc1wiLFxuICAgIFwidHJpdW1waHVzXCIsXG4gICAgXCJ0cnVjaWRvXCIsXG4gICAgXCJ0cnVjdWxlbnRlclwiLFxuICAgIFwidHViaW5ldXNcIixcbiAgICBcInR1aVwiLFxuICAgIFwidHVtXCIsXG4gICAgXCJ0dW11bHR1c1wiLFxuICAgIFwidHVuY1wiLFxuICAgIFwidHVyYmFcIixcbiAgICBcInR1cmJvXCIsXG4gICAgXCJ0dXJwZVwiLFxuICAgIFwidHVycGlzXCIsXG4gICAgXCJ0dXRhbWVuXCIsXG4gICAgXCJ0dXRpc1wiLFxuICAgIFwidHlyYW5udXNcIixcbiAgICBcInViZXJyaW1lXCIsXG4gICAgXCJ1YmlcIixcbiAgICBcInVsY2lzY29yXCIsXG4gICAgXCJ1bGx1c1wiLFxuICAgIFwidWx0ZXJpdXNcIixcbiAgICBcInVsdGlvXCIsXG4gICAgXCJ1bHRyYVwiLFxuICAgIFwidW1icmFcIixcbiAgICBcInVtZXJ1c1wiLFxuICAgIFwidW1xdWFtXCIsXG4gICAgXCJ1bmFcIixcbiAgICBcInVuZGVcIixcbiAgICBcInVuZGlxdWVcIixcbiAgICBcInVuaXZlcnNlXCIsXG4gICAgXCJ1bnVzXCIsXG4gICAgXCJ1cmJhbnVzXCIsXG4gICAgXCJ1cmJzXCIsXG4gICAgXCJ1cmVkb1wiLFxuICAgIFwidXNpdGFzXCIsXG4gICAgXCJ1c3F1ZVwiLFxuICAgIFwidXN0aWxvXCIsXG4gICAgXCJ1c3R1bG9cIixcbiAgICBcInVzdXNcIixcbiAgICBcInV0ZXJcIixcbiAgICBcInV0ZXJxdWVcIixcbiAgICBcInV0aWxpc1wiLFxuICAgIFwidXRpcXVlXCIsXG4gICAgXCJ1dG9yXCIsXG4gICAgXCJ1dHBvdGVcIixcbiAgICBcInV0cmltcXVlXCIsXG4gICAgXCJ1dHJvcXVlXCIsXG4gICAgXCJ1dHJ1bVwiLFxuICAgIFwidXhvclwiLFxuICAgIFwidmFjb1wiLFxuICAgIFwidmFjdXVzXCIsXG4gICAgXCJ2YWRvXCIsXG4gICAgXCJ2YWVcIixcbiAgICBcInZhbGRlXCIsXG4gICAgXCJ2YWxlbnNcIixcbiAgICBcInZhbGVvXCIsXG4gICAgXCJ2YWxldHVkb1wiLFxuICAgIFwidmFsaWR1c1wiLFxuICAgIFwidmFsbHVtXCIsXG4gICAgXCJ2YXB1bHVzXCIsXG4gICAgXCJ2YXJpZXRhc1wiLFxuICAgIFwidmFyaXVzXCIsXG4gICAgXCJ2ZWhlbWVuc1wiLFxuICAgIFwidmVsXCIsXG4gICAgXCJ2ZWxvY2l0ZXJcIixcbiAgICBcInZlbHVtXCIsXG4gICAgXCJ2ZWx1dFwiLFxuICAgIFwidmVuaWFcIixcbiAgICBcInZlbmlvXCIsXG4gICAgXCJ2ZW50aXRvXCIsXG4gICAgXCJ2ZW50b3N1c1wiLFxuICAgIFwidmVudHVzXCIsXG4gICAgXCJ2ZW51c3Rhc1wiLFxuICAgIFwidmVyXCIsXG4gICAgXCJ2ZXJiZXJhXCIsXG4gICAgXCJ2ZXJidW1cIixcbiAgICBcInZlcmVcIixcbiAgICBcInZlcmVjdW5kaWFcIixcbiAgICBcInZlcmVvclwiLFxuICAgIFwidmVyZ29cIixcbiAgICBcInZlcml0YXNcIixcbiAgICBcInZlcm9cIixcbiAgICBcInZlcnN1c1wiLFxuICAgIFwidmVydG9cIixcbiAgICBcInZlcnVtdGFtZW5cIixcbiAgICBcInZlcnVzXCIsXG4gICAgXCJ2ZXNjb1wiLFxuICAgIFwidmVzaWNhXCIsXG4gICAgXCJ2ZXNwZXJcIixcbiAgICBcInZlc3BpbGxvXCIsXG4gICAgXCJ2ZXN0ZXJcIixcbiAgICBcInZlc3RpZ2l1bVwiLFxuICAgIFwidmVzdHJ1bVwiLFxuICAgIFwidmV0dXNcIixcbiAgICBcInZpYVwiLFxuICAgIFwidmljaW51c1wiLFxuICAgIFwidmljaXNzaXR1ZG9cIixcbiAgICBcInZpY3RvcmlhXCIsXG4gICAgXCJ2aWN0dXNcIixcbiAgICBcInZpZGVsaWNldFwiLFxuICAgIFwidmlkZW9cIixcbiAgICBcInZpZHVhdGFcIixcbiAgICBcInZpZHVvXCIsXG4gICAgXCJ2aWdpbG9cIixcbiAgICBcInZpZ29yXCIsXG4gICAgXCJ2aWxpY3VzXCIsXG4gICAgXCJ2aWxpc1wiLFxuICAgIFwidmlsaXRhc1wiLFxuICAgIFwidmlsbGFcIixcbiAgICBcInZpbmNvXCIsXG4gICAgXCJ2aW5jdWx1bVwiLFxuICAgIFwidmluZGljb1wiLFxuICAgIFwidmluaXRvclwiLFxuICAgIFwidmludW1cIixcbiAgICBcInZpclwiLFxuICAgIFwidmlyZ2FcIixcbiAgICBcInZpcmdvXCIsXG4gICAgXCJ2aXJpZGlzXCIsXG4gICAgXCJ2aXJpbGl0ZXJcIixcbiAgICBcInZpcnR1c1wiLFxuICAgIFwidmlzXCIsXG4gICAgXCJ2aXNjdXNcIixcbiAgICBcInZpdGFcIixcbiAgICBcInZpdGlvc3VzXCIsXG4gICAgXCJ2aXRpdW1cIixcbiAgICBcInZpdG9cIixcbiAgICBcInZpdm9cIixcbiAgICBcInZpeFwiLFxuICAgIFwidm9iaXNcIixcbiAgICBcInZvY2lmZXJvclwiLFxuICAgIFwidm9jb1wiLFxuICAgIFwidm9sYXRpY3VzXCIsXG4gICAgXCJ2b2xvXCIsXG4gICAgXCJ2b2x1YmlsaXNcIixcbiAgICBcInZvbHVudGFyaXVzXCIsXG4gICAgXCJ2b2x1cFwiLFxuICAgIFwidm9sdXRhYnJ1bVwiLFxuICAgIFwidm9sdmFcIixcbiAgICBcInZvbWVyXCIsXG4gICAgXCJ2b21pY2FcIixcbiAgICBcInZvbWl0b1wiLFxuICAgIFwidm9yYWdvXCIsXG4gICAgXCJ2b3JheFwiLFxuICAgIFwidm9yb1wiLFxuICAgIFwidm9zXCIsXG4gICAgXCJ2b3R1bVwiLFxuICAgIFwidm92ZW9cIixcbiAgICBcInZveFwiLFxuICAgIFwidnVsYXJpdGVyXCIsXG4gICAgXCJ2dWxnYXJpc1wiLFxuICAgIFwidnVsZ2l2YWd1c1wiLFxuICAgIFwidnVsZ29cIixcbiAgICBcInZ1bGd1c1wiLFxuICAgIFwidnVsbmVyb1wiLFxuICAgIFwidnVsbnVzXCIsXG4gICAgXCJ2dWxwZXNcIixcbiAgICBcInZ1bHRpY3VsdXNcIixcbiAgICBcInZ1bHR1b3N1c1wiLFxuICAgIFwieGlwaGlhc1wiXG4gIF1cbn07XG5mci5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiRW56b1wiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk1hdGhpc1wiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIkh1Z29cIixcbiAgICBcIlRow6lvXCIsXG4gICAgXCJUb21cIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJSYXBoYcOrbFwiLFxuICAgIFwiQ2zDqW1lbnRcIixcbiAgICBcIkzDqW9cIixcbiAgICBcIk1hdGjDqW9cIixcbiAgICBcIk1heGltZVwiLFxuICAgIFwiQWxleGFuZHJlXCIsXG4gICAgXCJBbnRvaW5lXCIsXG4gICAgXCJZYW5pc1wiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiQmFwdGlzdGVcIixcbiAgICBcIkFsZXhpc1wiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJKdWxlc1wiLFxuICAgIFwiRXRoYW5cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIlF1ZW50aW5cIixcbiAgICBcIkF4ZWxcIixcbiAgICBcIkV2YW5cIixcbiAgICBcIk1hdHTDqW9cIixcbiAgICBcIlJvbWFpblwiLFxuICAgIFwiVmFsZW50aW5cIixcbiAgICBcIk1heGVuY2VcIixcbiAgICBcIk5vYVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiSnVsaWVuXCIsXG4gICAgXCJNYWVsXCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlJheWFuXCIsXG4gICAgXCJWaWN0b3JcIixcbiAgICBcIk1vaGFtZWRcIixcbiAgICBcIkFkcmllblwiLFxuICAgIFwiS3lsaWFuXCIsXG4gICAgXCJTYWNoYVwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIkzDqWFcIixcbiAgICBcIkNsYXJhXCIsXG4gICAgXCJNYW5vblwiLFxuICAgIFwiQ2hsb8OpXCIsXG4gICAgXCJDYW1pbGxlXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiQW5hw69zXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiT2PDqWFuZVwiLFxuICAgIFwiTGlsb3VcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIlJvbWFuZVwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIkxvdWlzZVwiLFxuICAgIFwiSnVsaWV0dGVcIixcbiAgICBcIkNsw6ltZW5jZVwiLFxuICAgIFwiQ8OpbGlhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGVuYVwiLFxuICAgIFwiTWHDq2x5c1wiLFxuICAgIFwiQ2hhcmxvdHRlXCIsXG4gICAgXCJBbWJyZVwiLFxuICAgIFwiTWFldmFcIixcbiAgICBcIlBhdWxpbmVcIixcbiAgICBcIkxpbmFcIixcbiAgICBcIkplYW5uZVwiLFxuICAgIFwiTG91XCIsXG4gICAgXCJOb8OpbWllXCIsXG4gICAgXCJKdXN0aW5lXCIsXG4gICAgXCJMb3VuYVwiLFxuICAgIFwiRWxpc2FcIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJNYcOrbGxlXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIk3DqWxpc3NhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiTWFydGluXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJEdWJvaXNcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJQZXRpdFwiLFxuICAgIFwiRHVyYW5kXCIsXG4gICAgXCJMZXJveVwiLFxuICAgIFwiTW9yZWF1XCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiTGF1cmVudFwiLFxuICAgIFwiTGVmZWJ2cmVcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiR2FyY2lhXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiQmVydHJhbmRcIixcbiAgICBcIlJvdXhcIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIkZvdXJuaWVyXCIsXG4gICAgXCJNb3JlbFwiLFxuICAgIFwiR2lyYXJkXCIsXG4gICAgXCJBbmRyZVwiLFxuICAgIFwiTGVmZXZyZVwiLFxuICAgIFwiTWVyY2llclwiLFxuICAgIFwiRHVwb250XCIsXG4gICAgXCJMYW1iZXJ0XCIsXG4gICAgXCJCb25uZXRcIixcbiAgICBcIkZyYW5jb2lzXCIsXG4gICAgXCJNYXJ0aW5lelwiLFxuICAgIFwiTGVncmFuZFwiLFxuICAgIFwiR2FybmllclwiLFxuICAgIFwiRmF1cmVcIixcbiAgICBcIlJvdXNzZWF1XCIsXG4gICAgXCJCbGFuY1wiLFxuICAgIFwiR3VlcmluXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJSb3Vzc2VsXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJQZXJyaW5cIixcbiAgICBcIk1vcmluXCIsXG4gICAgXCJNYXRoaWV1XCIsXG4gICAgXCJDbGVtZW50XCIsXG4gICAgXCJHYXV0aGllclwiLFxuICAgIFwiRHVtb250XCIsXG4gICAgXCJMb3BlelwiLFxuICAgIFwiRm9udGFpbmVcIixcbiAgICBcIkNoZXZhbGllclwiLFxuICAgIFwiUm9iaW5cIixcbiAgICBcIk1hc3NvblwiLFxuICAgIFwiU2FuY2hlelwiLFxuICAgIFwiR2VyYXJkXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIkJveWVyXCIsXG4gICAgXCJEZW5pc1wiLFxuICAgIFwiTGVtYWlyZVwiLFxuICAgIFwiRHV2YWxcIixcbiAgICBcIkpvbHlcIixcbiAgICBcIkdhdXRpZXJcIixcbiAgICBcIlJvZ2VyXCIsXG4gICAgXCJSb2NoZVwiLFxuICAgIFwiUm95XCIsXG4gICAgXCJOb2VsXCIsXG4gICAgXCJNZXllclwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk1ldW5pZXJcIixcbiAgICBcIkplYW5cIixcbiAgICBcIlBlcmV6XCIsXG4gICAgXCJNYXJjaGFuZFwiLFxuICAgIFwiRHVmb3VyXCIsXG4gICAgXCJCbGFuY2hhcmRcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJCYXJiaWVyXCIsXG4gICAgXCJCcnVuXCIsXG4gICAgXCJEdW1hc1wiLFxuICAgIFwiQnJ1bmV0XCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJMZXJvdXhcIixcbiAgICBcIkNvbGluXCIsXG4gICAgXCJGZXJuYW5kZXpcIixcbiAgICBcIlBpZXJyZVwiLFxuICAgIFwiUmVuYXJkXCIsXG4gICAgXCJBcm5hdWRcIixcbiAgICBcIlJvbGxhbmRcIixcbiAgICBcIkNhcm9uXCIsXG4gICAgXCJBdWJlcnRcIixcbiAgICBcIkdpcmF1ZFwiLFxuICAgIFwiTGVjbGVyY1wiLFxuICAgIFwiVmlkYWxcIixcbiAgICBcIkJvdXJnZW9pc1wiLFxuICAgIFwiUmVuYXVkXCIsXG4gICAgXCJMZW1vaW5lXCIsXG4gICAgXCJQaWNhcmRcIixcbiAgICBcIkdhaWxsYXJkXCIsXG4gICAgXCJQaGlsaXBwZVwiLFxuICAgIFwiTGVjbGVyY3FcIixcbiAgICBcIkxhY3JvaXhcIixcbiAgICBcIkZhYnJlXCIsXG4gICAgXCJEdXB1aXNcIixcbiAgICBcIk9saXZpZXJcIixcbiAgICBcIlJvZHJpZ3VlelwiLFxuICAgIFwiRGEgc2lsdmFcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiTG91aXNcIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkd1aWxsb3RcIixcbiAgICBcIlJpdmllcmVcIixcbiAgICBcIkxlIGdhbGxcIixcbiAgICBcIkd1aWxsYXVtZVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiUmV5XCIsXG4gICAgXCJNb3VsaW5cIixcbiAgICBcIkdvbnphbGV6XCIsXG4gICAgXCJCZXJnZXJcIixcbiAgICBcIkxlY29tdGVcIixcbiAgICBcIk1lbmFyZFwiLFxuICAgIFwiRmxldXJ5XCIsXG4gICAgXCJEZXNjaGFtcHNcIixcbiAgICBcIkNhcnBlbnRpZXJcIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiQmVub2l0XCIsXG4gICAgXCJQYXJpc1wiLFxuICAgIFwiTWFpbGxhcmRcIixcbiAgICBcIk1hcmNoYWxcIixcbiAgICBcIkF1YnJ5XCIsXG4gICAgXCJWYXNzZXVyXCIsXG4gICAgXCJMZSByb3V4XCIsXG4gICAgXCJSZW5hdWx0XCIsXG4gICAgXCJKYWNxdWV0XCIsXG4gICAgXCJDb2xsZXRcIixcbiAgICBcIlByZXZvc3RcIixcbiAgICBcIlBvaXJpZXJcIixcbiAgICBcIkNoYXJwZW50aWVyXCIsXG4gICAgXCJSb3llclwiLFxuICAgIFwiSHVldFwiLFxuICAgIFwiQmFyb25cIixcbiAgICBcIkR1cHV5XCIsXG4gICAgXCJQb25zXCIsXG4gICAgXCJQYXVsXCIsXG4gICAgXCJMYWluZVwiLFxuICAgIFwiQ2FycmVcIixcbiAgICBcIkJyZXRvblwiLFxuICAgIFwiUmVteVwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJQZXJyb3RcIixcbiAgICBcIkd1eW90XCIsXG4gICAgXCJCYXJyZVwiLFxuICAgIFwiTWFydHlcIixcbiAgICBcIkNvdXNpblwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIk1cIixcbiAgICBcIk1tZVwiLFxuICAgIFwiTWxsZVwiLFxuICAgIFwiRHJcIixcbiAgICBcIlByb2ZcIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzZXVyXCIsXG4gICAgICBcIkV4ZWN1dGlmXCIsXG4gICAgICBcIk1hbmFnZXJcIixcbiAgICAgIFwiSW5nZW5pZXVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RlXCIsXG4gICAgICBcIkRpcmVjdGV1clwiLFxuICAgICAgXCJDb29yZGluYXRldXJcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRldXJcIixcbiAgICAgIFwiQXJjaGl0ZWN0ZVwiLFxuICAgICAgXCJBbmFseXN0ZVwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJUZWNobmljaWVuXCIsXG4gICAgICBcIkRldmVsb3BwZXVyXCIsXG4gICAgICBcIlByb2R1Y3RldXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiU3RhZ2lhaXJlXCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2xhc3RfbmFtZX0gI3tmaXJzdF9uYW1lfVwiXG4gIF1cbn07XG5mci5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwMSMjIyMjIyMjXCIsXG4gICAgXCIwMiMjIyMjIyMjXCIsXG4gICAgXCIwMyMjIyMjIyMjXCIsXG4gICAgXCIwNCMjIyMjIyMjXCIsXG4gICAgXCIwNSMjIyMjIyMjXCIsXG4gICAgXCIwNiMjIyMjIyMjXCIsXG4gICAgXCIwNyMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMSMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMiMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMyMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNCMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNSMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNiMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNyMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBpdCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGl0O1xuaXQudGl0bGUgPSBcIkl0YWxpYW5cIjtcbml0LmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiU2FuXCIsXG4gICAgXCJCb3Jnb1wiLFxuICAgIFwiU2VzdG9cIixcbiAgICBcIlF1YXJ0b1wiLFxuICAgIFwiU2V0dGltb1wiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiYSBtYXJlXCIsXG4gICAgXCJsaWRvXCIsXG4gICAgXCJsaWd1cmVcIixcbiAgICBcImRlbCBmcml1bGlcIixcbiAgICBcInNhbGVudGlub1wiLFxuICAgIFwiY2FsYWJyb1wiLFxuICAgIFwidmVuZXRvXCIsXG4gICAgXCJuZWxsJ2VtaWxpYVwiLFxuICAgIFwidW1icm9cIixcbiAgICBcImxhemlhbGVcIixcbiAgICBcInRlcm1lXCIsXG4gICAgXCJzYXJkb1wiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pYVwiLFxuICAgIFwiQWxnZXJpYVwiLFxuICAgIFwiQW1lcmljYW4gU2Ftb2FcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGFydGlkZSAodGVycml0b3JpIGEgc3VkIGRlbCA2MMKwIHBhcmFsbGVsbylcIixcbiAgICBcIkFudGlndWEgZSBCYXJidWRhXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0cmFsaWFcIixcbiAgICBcIkF1c3RyaWFcIixcbiAgICBcIkF6ZXJiYWlqYW5cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhaHJhaW5cIixcbiAgICBcIkJhbmdsYWRlc2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCaWVsb3J1c3NpYVwiLFxuICAgIFwiQmVsZ2lvXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbGl2aWFcIixcbiAgICBcIkJvc25pYSBlIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm91dmV0IElzbGFuZCAoQm91dmV0b3lhKVwiLFxuICAgIFwiQnJhc2lsZVwiLFxuICAgIFwiVGVycml0b3JpbyBkZWxsJ2FyY2lwZWxhZ28gaW5kaWFub1wiLFxuICAgIFwiSXNvbGUgVmVyZ2luaSBCcml0YW5uaWNoZVwiLFxuICAgIFwiQnJ1bmVpIERhcnVzc2FsYW1cIixcbiAgICBcIkJ1bGdhcmlhXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNhbWJvZ2lhXCIsXG4gICAgXCJDYW1lcm9vblwiLFxuICAgIFwiQ2FuYWRhXCIsXG4gICAgXCJDYXBvIFZlcmRlXCIsXG4gICAgXCJJc29sZSBDYXltYW5cIixcbiAgICBcIlJlcHViYmxpY2EgQ2VudHJhbGUgQWZyaWNhbmFcIixcbiAgICBcIkNoYWRcIixcbiAgICBcIkNpbGVcIixcbiAgICBcIkNpbmFcIixcbiAgICBcIklzb2xhIGRpIFBhc3F1YVwiLFxuICAgIFwiSXNvbGEgZGkgQ29jb3MgKEtlZWxpbmcpXCIsXG4gICAgXCJDb2xvbWJpYVwiLFxuICAgIFwiQ29tb3Jvc1wiLFxuICAgIFwiQ29uZ29cIixcbiAgICBcIklzb2xlIENvb2tcIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkNvc3RhIGQnQXZvcmlvXCIsXG4gICAgXCJDcm9hemlhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDaXByb1wiLFxuICAgIFwiUmVwdWJibGljYSBDZWNhXCIsXG4gICAgXCJEYW5pbWFyY2FcIixcbiAgICBcIkdpYnV0aVwiLFxuICAgIFwiUmVwdWJibGljYSBEb21pbmljYW5hXCIsXG4gICAgXCJFcXVhZG9yXCIsXG4gICAgXCJFZ2l0dG9cIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJHdWluZWEgRXF1YXRvcmlhbGVcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdG9uaWFcIixcbiAgICBcIkV0aW9waWFcIixcbiAgICBcIklzb2xlIEZhcm9lXCIsXG4gICAgXCJJc29sZSBGYWxrbGFuZCAoTWFsdmluYXMpXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaW5sYW5kaWFcIixcbiAgICBcIkZyYW5jaWFcIixcbiAgICBcIkd1eWFuYSBGcmFuY2VzZVwiLFxuICAgIFwiUG9saW5lc2lhIEZyYW5jZXNlXCIsXG4gICAgXCJUZXJyaXRvcmkgRnJhbmNlc2kgZGVsIHN1ZFwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiR2VybWFuaWFcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJpbHRlcnJhXCIsXG4gICAgXCJHcmVjaWFcIixcbiAgICBcIkdyb2VubGFuZGlhXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHdWFkYWx1cGFcIixcbiAgICBcIkd1YW1cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3Vlcm5zZXlcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXG4gICAgXCJDaXR0w6AgZGVsIFZhdGljYW5vXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZyBLb25nXCIsXG4gICAgXCJVbmdoZXJpYVwiLFxuICAgIFwiSXNsYW5kYVwiLFxuICAgIFwiSW5kaWFcIixcbiAgICBcIkluZG9uZXNpYVwiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXJhcVwiLFxuICAgIFwiSXJsYW5kYVwiLFxuICAgIFwiSXNvbGEgZGkgTWFuXCIsXG4gICAgXCJJc3JhZWxlXCIsXG4gICAgXCJJdGFsaWFcIixcbiAgICBcIkdpYW1haWNhXCIsXG4gICAgXCJHaWFwcG9uZVwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJHaW9yZGFuaWFcIixcbiAgICBcIkthemFraHN0YW5cIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS29yZWFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiUmVwdWJsaWNjYSBLaXJnaXphXCIsXG4gICAgXCJSZXB1YmJsaWNhIGRlbCBMYW9zXCIsXG4gICAgXCJMYXR2aWFcIixcbiAgICBcIkxpYmFub1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGlieWFuIEFyYWIgSmFtYWhpcml5YVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0dWFuaWFcIixcbiAgICBcIkx1c3NlbWJ1cmdvXCIsXG4gICAgXCJNYWNhb1wiLFxuICAgIFwiTWFjZWRvbmlhXCIsXG4gICAgXCJNYWRhZ2FzY2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGVzaWFcIixcbiAgICBcIk1hbGRpdmVcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJJc29sZSBNYXJzaGFsbFwiLFxuICAgIFwiTWFydGluaWNhXCIsXG4gICAgXCJNYXVyaXRhbmlhXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk1lc3NpY29cIixcbiAgICBcIk1pY3JvbmVzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIlByaW5jaXBhdG8gZGkgTW9uYWNvXCIsXG4gICAgXCJNb25nb2xpYVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTWFyb2Njb1wiLFxuICAgIFwiTW96YW1iaWNvXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkFudGlsbGUgT2xhbmRlc2lcIixcbiAgICBcIk9sYW5kYVwiLFxuICAgIFwiTnVvdmEgQ2FsZWRvbmlhXCIsXG4gICAgXCJOdW92YSBaZWxhbmRhXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJJc29sZSBOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcbiAgICBcIk5vcnZlZ2lhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbGVzdGluYVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YSBOdW92YSBHdWluZWFcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJGaWxpcHBpbmVcIixcbiAgICBcIlBpdGNhaXJuIElzbGFuZHNcIixcbiAgICBcIlBvbG9uaWFcIixcbiAgICBcIlBvcnRvZ2FsbG9cIixcbiAgICBcIlBvcnRvIFJpY29cIixcbiAgICBcIlFhdGFyXCIsXG4gICAgXCJSZXVuaW9uXCIsXG4gICAgXCJSb21hbmlhXCIsXG4gICAgXCJSdXNzaWFcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiU2FuIEJhcnRvbG9tZW9cIixcbiAgICBcIlNhbnQnRWxlbmFcIixcbiAgICBcIlNhaW50IEtpdHRzIGFuZCBOZXZpc1wiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIlNhaW50IE1hcnRpblwiLFxuICAgIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW8gVG9tZSBhbmQgUHJpbmNpcGVcIixcbiAgICBcIkFyYWJpYSBTYXVkaXRhXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTbG92ZW5pYVwiLFxuICAgIFwiSXNvbGUgU29sb21vblwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU3VkIEFmcmljYVwiLFxuICAgIFwiR2VvcmdpYSBkZWwgc3VkIGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgIFwiU3BhZ25hXCIsXG4gICAgXCJTcmkgTGFua2FcIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kc1wiLFxuICAgIFwiU3dhemlsYW5kXCIsXG4gICAgXCJTdmV6aWFcIixcbiAgICBcIlN2aXp6ZXJhXCIsXG4gICAgXCJTaXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppa2lzdGFuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGFpbGFuZGlhXCIsXG4gICAgXCJUaW1vci1MZXN0ZVwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG9rZWxhdVwiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIlRyaW5pZGFkIGUgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2lhXCIsXG4gICAgXCJUdXJjaGlhXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIklzb2xlIGRpIFR1cmtzIGFuZCBDYWljb3NcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3JhaW5hXCIsXG4gICAgXCJFbWlyYXRpIEFyYWJpIFVuaXRpXCIsXG4gICAgXCJSZWdubyBVbml0b1wiLFxuICAgIFwiU3RhdGkgVW5pdGkgZCdBbWVyaWNhXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHNcIixcbiAgICBcIklzb2xlIFZlcmdpbmkgU3RhdHVuaXRlbnNpXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgXCJXZXN0ZXJuIFNhaGFyYVwiLFxuICAgIFwiWWVtZW5cIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiWmltYmFid2VcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIlBpYXp6YVwiLFxuICAgIFwiU3RyYWRhXCIsXG4gICAgXCJWaWFcIixcbiAgICBcIkJvcmdvXCIsXG4gICAgXCJDb250cmFkYVwiLFxuICAgIFwiUm90b25kYVwiLFxuICAgIFwiSW5jcm9jaW9cIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwcGFydGFtZW50byAjI1wiLFxuICAgIFwiUGlhbm8gI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkFncmlnZW50b1wiLFxuICAgIFwiQWxlc3NhbmRyaWFcIixcbiAgICBcIkFuY29uYVwiLFxuICAgIFwiQW9zdGFcIixcbiAgICBcIkFyZXp6b1wiLFxuICAgIFwiQXNjb2xpIFBpY2Vub1wiLFxuICAgIFwiQXN0aVwiLFxuICAgIFwiQXZlbGxpbm9cIixcbiAgICBcIkJhcmlcIixcbiAgICBcIkJhcmxldHRhLUFuZHJpYS1UcmFuaVwiLFxuICAgIFwiQmVsbHVub1wiLFxuICAgIFwiQmVuZXZlbnRvXCIsXG4gICAgXCJCZXJnYW1vXCIsXG4gICAgXCJCaWVsbGFcIixcbiAgICBcIkJvbG9nbmFcIixcbiAgICBcIkJvbHphbm9cIixcbiAgICBcIkJyZXNjaWFcIixcbiAgICBcIkJyaW5kaXNpXCIsXG4gICAgXCJDYWdsaWFyaVwiLFxuICAgIFwiQ2FsdGFuaXNzZXR0YVwiLFxuICAgIFwiQ2FtcG9iYXNzb1wiLFxuICAgIFwiQ2FyYm9uaWEtSWdsZXNpYXNcIixcbiAgICBcIkNhc2VydGFcIixcbiAgICBcIkNhdGFuaWFcIixcbiAgICBcIkNhdGFuemFyb1wiLFxuICAgIFwiQ2hpZXRpXCIsXG4gICAgXCJDb21vXCIsXG4gICAgXCJDb3NlbnphXCIsXG4gICAgXCJDcmVtb25hXCIsXG4gICAgXCJDcm90b25lXCIsXG4gICAgXCJDdW5lb1wiLFxuICAgIFwiRW5uYVwiLFxuICAgIFwiRmVybW9cIixcbiAgICBcIkZlcnJhcmFcIixcbiAgICBcIkZpcmVuemVcIixcbiAgICBcIkZvZ2dpYVwiLFxuICAgIFwiRm9ybMOsLUNlc2VuYVwiLFxuICAgIFwiRnJvc2lub25lXCIsXG4gICAgXCJHZW5vdmFcIixcbiAgICBcIkdvcml6aWFcIixcbiAgICBcIkdyb3NzZXRvXCIsXG4gICAgXCJJbXBlcmlhXCIsXG4gICAgXCJJc2VybmlhXCIsXG4gICAgXCJMYSBTcGV6aWFcIixcbiAgICBcIkwnQXF1aWxhXCIsXG4gICAgXCJMYXRpbmFcIixcbiAgICBcIkxlY2NlXCIsXG4gICAgXCJMZWNjb1wiLFxuICAgIFwiTGl2b3Jub1wiLFxuICAgIFwiTG9kaVwiLFxuICAgIFwiTHVjY2FcIixcbiAgICBcIk1hY2VyYXRhXCIsXG4gICAgXCJNYW50b3ZhXCIsXG4gICAgXCJNYXNzYS1DYXJyYXJhXCIsXG4gICAgXCJNYXRlcmFcIixcbiAgICBcIk1lc3NpbmFcIixcbiAgICBcIk1pbGFub1wiLFxuICAgIFwiTW9kZW5hXCIsXG4gICAgXCJNb256YSBlIGRlbGxhIEJyaWFuemFcIixcbiAgICBcIk5hcG9saVwiLFxuICAgIFwiTm92YXJhXCIsXG4gICAgXCJOdW9yb1wiLFxuICAgIFwiT2xiaWEtVGVtcGlvXCIsXG4gICAgXCJPcmlzdGFub1wiLFxuICAgIFwiUGFkb3ZhXCIsXG4gICAgXCJQYWxlcm1vXCIsXG4gICAgXCJQYXJtYVwiLFxuICAgIFwiUGF2aWFcIixcbiAgICBcIlBlcnVnaWFcIixcbiAgICBcIlBlc2FybyBlIFVyYmlub1wiLFxuICAgIFwiUGVzY2FyYVwiLFxuICAgIFwiUGlhY2VuemFcIixcbiAgICBcIlBpc2FcIixcbiAgICBcIlBpc3RvaWFcIixcbiAgICBcIlBvcmRlbm9uZVwiLFxuICAgIFwiUG90ZW56YVwiLFxuICAgIFwiUHJhdG9cIixcbiAgICBcIlJhZ3VzYVwiLFxuICAgIFwiUmF2ZW5uYVwiLFxuICAgIFwiUmVnZ2lvIENhbGFicmlhXCIsXG4gICAgXCJSZWdnaW8gRW1pbGlhXCIsXG4gICAgXCJSaWV0aVwiLFxuICAgIFwiUmltaW5pXCIsXG4gICAgXCJSb21hXCIsXG4gICAgXCJSb3ZpZ29cIixcbiAgICBcIlNhbGVybm9cIixcbiAgICBcIk1lZGlvIENhbXBpZGFub1wiLFxuICAgIFwiU2Fzc2FyaVwiLFxuICAgIFwiU2F2b25hXCIsXG4gICAgXCJTaWVuYVwiLFxuICAgIFwiU2lyYWN1c2FcIixcbiAgICBcIlNvbmRyaW9cIixcbiAgICBcIlRhcmFudG9cIixcbiAgICBcIlRlcmFtb1wiLFxuICAgIFwiVGVybmlcIixcbiAgICBcIlRvcmlub1wiLFxuICAgIFwiT2dsaWFzdHJhXCIsXG4gICAgXCJUcmFwYW5pXCIsXG4gICAgXCJUcmVudG9cIixcbiAgICBcIlRyZXZpc29cIixcbiAgICBcIlRyaWVzdGVcIixcbiAgICBcIlVkaW5lXCIsXG4gICAgXCJWYXJlc2VcIixcbiAgICBcIlZlbmV6aWFcIixcbiAgICBcIlZlcmJhbm8tQ3VzaW8tT3Nzb2xhXCIsXG4gICAgXCJWZXJjZWxsaVwiLFxuICAgIFwiVmVyb25hXCIsXG4gICAgXCJWaWJvIFZhbGVudGlhXCIsXG4gICAgXCJWaWNlbnphXCIsXG4gICAgXCJWaXRlcmJvXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkFHXCIsXG4gICAgXCJBTFwiLFxuICAgIFwiQU5cIixcbiAgICBcIkFPXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQVBcIixcbiAgICBcIkFUXCIsXG4gICAgXCJBVlwiLFxuICAgIFwiQkFcIixcbiAgICBcIkJUXCIsXG4gICAgXCJCTFwiLFxuICAgIFwiQk5cIixcbiAgICBcIkJHXCIsXG4gICAgXCJCSVwiLFxuICAgIFwiQk9cIixcbiAgICBcIkJaXCIsXG4gICAgXCJCU1wiLFxuICAgIFwiQlJcIixcbiAgICBcIkNBXCIsXG4gICAgXCJDTFwiLFxuICAgIFwiQ0JcIixcbiAgICBcIkNJXCIsXG4gICAgXCJDRVwiLFxuICAgIFwiQ1RcIixcbiAgICBcIkNaXCIsXG4gICAgXCJDSFwiLFxuICAgIFwiQ09cIixcbiAgICBcIkNTXCIsXG4gICAgXCJDUlwiLFxuICAgIFwiS1JcIixcbiAgICBcIkNOXCIsXG4gICAgXCJFTlwiLFxuICAgIFwiRk1cIixcbiAgICBcIkZFXCIsXG4gICAgXCJGSVwiLFxuICAgIFwiRkdcIixcbiAgICBcIkZDXCIsXG4gICAgXCJGUlwiLFxuICAgIFwiR0VcIixcbiAgICBcIkdPXCIsXG4gICAgXCJHUlwiLFxuICAgIFwiSU1cIixcbiAgICBcIklTXCIsXG4gICAgXCJTUFwiLFxuICAgIFwiQVFcIixcbiAgICBcIkxUXCIsXG4gICAgXCJMRVwiLFxuICAgIFwiTENcIixcbiAgICBcIkxJXCIsXG4gICAgXCJMT1wiLFxuICAgIFwiTFVcIixcbiAgICBcIk1DXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiTVNcIixcbiAgICBcIk1UXCIsXG4gICAgXCJNRVwiLFxuICAgIFwiTUlcIixcbiAgICBcIk1PXCIsXG4gICAgXCJNQlwiLFxuICAgIFwiTkFcIixcbiAgICBcIk5PXCIsXG4gICAgXCJOVVwiLFxuICAgIFwiT1RcIixcbiAgICBcIk9SXCIsXG4gICAgXCJQRFwiLFxuICAgIFwiUEFcIixcbiAgICBcIlBSXCIsXG4gICAgXCJQVlwiLFxuICAgIFwiUEdcIixcbiAgICBcIlBVXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUENcIixcbiAgICBcIlBJXCIsXG4gICAgXCJQVFwiLFxuICAgIFwiUE5cIixcbiAgICBcIlBaXCIsXG4gICAgXCJQT1wiLFxuICAgIFwiUkdcIixcbiAgICBcIlJBXCIsXG4gICAgXCJSQ1wiLFxuICAgIFwiUkVcIixcbiAgICBcIlJJXCIsXG4gICAgXCJSTlwiLFxuICAgIFwiUk1cIixcbiAgICBcIlJPXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiVlNcIixcbiAgICBcIlNTXCIsXG4gICAgXCJTVlwiLFxuICAgIFwiU0lcIixcbiAgICBcIlNSXCIsXG4gICAgXCJTT1wiLFxuICAgIFwiVEFcIixcbiAgICBcIlRFXCIsXG4gICAgXCJUUlwiLFxuICAgIFwiVE9cIixcbiAgICBcIk9HXCIsXG4gICAgXCJUUFwiLFxuICAgIFwiVE5cIixcbiAgICBcIlRWXCIsXG4gICAgXCJUU1wiLFxuICAgIFwiVURcIixcbiAgICBcIlZBXCIsXG4gICAgXCJWRVwiLFxuICAgIFwiVkJcIixcbiAgICBcIlZDXCIsXG4gICAgXCJWUlwiLFxuICAgIFwiVlZcIixcbiAgICBcIlZJXCIsXG4gICAgXCJWVFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0gI3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9ICN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfc3VmZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiLFxuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9LCAje3NlY29uZGFyeV9hZGRyZXNzfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkl0YWxpYVwiXG4gIF1cbn07XG5pdC5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJTUEFcIixcbiAgICBcImUgZmlnbGlcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJzLnIubC5cIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgICAgXCJBYmlsaXTDoFwiLFxuICAgICAgXCJBY2Nlc3NcIixcbiAgICAgIFwiQWRhdHRhdG9yZVwiLFxuICAgICAgXCJBbGdvcml0bW9cIixcbiAgICAgIFwiQWxsZWFuemFcIixcbiAgICAgIFwiQW5hbGl6emF0b3JlXCIsXG4gICAgICBcIkFwcGxpY2F6aW9uZVwiLFxuICAgICAgXCJBcHByb2NjaW9cIixcbiAgICAgIFwiQXJjaGl0ZXR0dXJhXCIsXG4gICAgICBcIkFyY2hpdmlvXCIsXG4gICAgICBcIkludGVsbGlnZW56YSBhcnRpZmljaWFsZVwiLFxuICAgICAgXCJBcnJheVwiLFxuICAgICAgXCJBdHRpdHVkaW5lXCIsXG4gICAgICBcIkJlbmNobWFya1wiLFxuICAgICAgXCJDYXBhY2l0w6BcIixcbiAgICAgIFwiU2ZpZGFcIixcbiAgICAgIFwiQ2lyY3VpdG9cIixcbiAgICAgIFwiQ29sbGFib3JhemlvbmVcIixcbiAgICAgIFwiQ29tcGxlc3NpdMOgXCIsXG4gICAgICBcIkNvbmNldHRvXCIsXG4gICAgICBcIkNvbmdsb21lcmF0b1wiLFxuICAgICAgXCJDb250aW5nZW56YVwiLFxuICAgICAgXCJDb3JlXCIsXG4gICAgICBcIkRhdGFiYXNlXCIsXG4gICAgICBcIkRhdGEtd2FyZWhvdXNlXCIsXG4gICAgICBcIkRlZmluaXppb25lXCIsXG4gICAgICBcIkVtdWxhemlvbmVcIixcbiAgICAgIFwiQ29kaWZpY2FcIixcbiAgICAgIFwiQ3JpcHRhemlvbmVcIixcbiAgICAgIFwiRmlybXdhcmVcIixcbiAgICAgIFwiRmxlc3NpYmlsaXTDoFwiLFxuICAgICAgXCJQcmV2aXNpb25lXCIsXG4gICAgICBcIkZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJGdW56aW9uZVwiLFxuICAgICAgXCJGdW56aW9uYWxpdMOgXCIsXG4gICAgICBcIkludGVyZmFjY2lhIGdyYWZpY2FcIixcbiAgICAgIFwiSGFyZHdhcmVcIixcbiAgICAgIFwiSGVscC1kZXNrXCIsXG4gICAgICBcIkdlcmFyY2hpYVwiLFxuICAgICAgXCJIdWJcIixcbiAgICAgIFwiSW1wbGVtZW50YXppb25lXCIsXG4gICAgICBcIkluZnJhc3RydXR0dXJhXCIsXG4gICAgICBcIkluaXppYXRpdmFcIixcbiAgICAgIFwiSW5zdGFsbGF6aW9uZVwiLFxuICAgICAgXCJTZXQgZGkgaXN0cnV6aW9uaVwiLFxuICAgICAgXCJJbnRlcmZhY2NpYVwiLFxuICAgICAgXCJTb2x1emlvbmUgaW50ZXJuZXRcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29ub3NjZW56YSBiYXNlXCIsXG4gICAgICBcIk1hdHJpY2lcIixcbiAgICAgIFwiTWF0cmljZVwiLFxuICAgICAgXCJNZXRvZG9sb2dpYVwiLFxuICAgICAgXCJNaWRkbGV3YXJlXCIsXG4gICAgICBcIk1pZ3JhemlvbmVcIixcbiAgICAgIFwiTW9kZWxsb1wiLFxuICAgICAgXCJNb2RlcmF6aW9uZVwiLFxuICAgICAgXCJNb25pdG9yYWdnaW9cIixcbiAgICAgIFwiTW9yYXRvcmlhXCIsXG4gICAgICBcIlJldGVcIixcbiAgICAgIFwiQXJjaGl0ZXR0dXJhIGFwZXJ0YVwiLFxuICAgICAgXCJTaXN0ZW1hIGFwZXJ0b1wiLFxuICAgICAgXCJPcmNoZXN0cmF6aW9uZVwiLFxuICAgICAgXCJQYXJhZGlnbWFcIixcbiAgICAgIFwiUGFyYWxsZWxpc21vXCIsXG4gICAgICBcIlBvbGljeVwiLFxuICAgICAgXCJQb3J0YWxlXCIsXG4gICAgICBcIlN0cnV0dHVyYSBkaSBwcmV6em9cIixcbiAgICAgIFwiUHJvZG90dG9cIixcbiAgICAgIFwiUHJvZHV0dGl2aXTDoFwiLFxuICAgICAgXCJQcm9nZXR0b1wiLFxuICAgICAgXCJQcm9pZXppb25lXCIsXG4gICAgICBcIlByb3RvY29sbG9cIixcbiAgICAgIFwiU2Vydml6aW8gY2xpZW50aVwiLFxuICAgICAgXCJTb2Z0d2FyZVwiLFxuICAgICAgXCJTb2x1emlvbmVcIixcbiAgICAgIFwiU3RhbmRhcmRpenphemlvbmVcIixcbiAgICAgIFwiU3RyYXRlZ2lhXCIsXG4gICAgICBcIlN0cnV0dHVyYVwiLFxuICAgICAgXCJTdWNjZXNzb1wiLFxuICAgICAgXCJTb3ZyYXN0cnV0dHVyYVwiLFxuICAgICAgXCJTdXBwb3J0b1wiLFxuICAgICAgXCJTaW5lcmdpYVwiLFxuICAgICAgXCJUYXNrLWZvcmNlXCIsXG4gICAgICBcIkZpbmVzdHJhIHRlbXBvcmFsZVwiLFxuICAgICAgXCJTdHJ1bWVudGlcIixcbiAgICAgIFwiVXRpbGl6emF6aW9uZVwiLFxuICAgICAgXCJTaXRvIHdlYlwiLFxuICAgICAgXCJGb3J6YSBsYXZvcm9cIlxuICAgIF0sXG4gICAgXCJkZXNjcmlwdG9yXCI6W1xuICAgICAgXCJhZGF0dGl2YVwiLFxuICAgICAgXCJhdmFuemF0YVwiLFxuICAgICAgXCJtaWdsaW9yYXRhXCIsXG4gICAgICBcImFzc2ltaWxhdGFcIixcbiAgICAgIFwiYXV0b21hdGl6emF0YVwiLFxuICAgICAgXCJiaWxhbmNpYXRhXCIsXG4gICAgICBcImNlbnRyYWxpenphdGFcIixcbiAgICAgIFwiY29tcGF0aWJpbGVcIixcbiAgICAgIFwiY29uZmlndXJhYmlsZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJkZWNlbnRyYWxpenphdGFcIixcbiAgICAgIFwiZGlnaXRhbGl6emF0YVwiLFxuICAgICAgXCJkaXN0cmlidWl0YVwiLFxuICAgICAgXCJwaWNjb2xhXCIsXG4gICAgICBcImVyZ29ub21pY2FcIixcbiAgICAgIFwiZXNjbHVzaXZhXCIsXG4gICAgICBcImVzcGFuc2FcIixcbiAgICAgIFwiZXN0ZXNhXCIsXG4gICAgICBcImNvbmZpZ3VyYWJpbGVcIixcbiAgICAgIFwiZm9uZGFtZW50YWxlXCIsXG4gICAgICBcIm9yaXp6b250YWxlXCIsXG4gICAgICBcImltcGxlbWVudGF0YVwiLFxuICAgICAgXCJpbm5vdmF0aXZhXCIsXG4gICAgICBcImludGVncmF0YVwiLFxuICAgICAgXCJpbnR1aXRpdmFcIixcbiAgICAgIFwiaW52ZXJzYVwiLFxuICAgICAgXCJnZXN0aXRhXCIsXG4gICAgICBcIm9iYmxpZ2F0b3JpYVwiLFxuICAgICAgXCJtb25pdG9yYXRhXCIsXG4gICAgICBcIm11bHRpLWNhbmFsZVwiLFxuICAgICAgXCJtdWx0aS1sYXRlcmFsZVwiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJvcGVyYXRpdmFcIixcbiAgICAgIFwib3R0aW1penphdGFcIixcbiAgICAgIFwib3JnYW5pY2FcIixcbiAgICAgIFwicGVyc2lzdGVudGVcIixcbiAgICAgIFwicG9sYXJpenphdGFcIixcbiAgICAgIFwicHJvYXR0aXZhXCIsXG4gICAgICBcInByb2dyYW1tYWJpbGVcIixcbiAgICAgIFwicHJvZ3Jlc3NpdmFcIixcbiAgICAgIFwicmVhdHRpdmFcIixcbiAgICAgIFwicmlhbGxpbmVhdGFcIixcbiAgICAgIFwicmljb250ZXN0dWFsaXp6YXRhXCIsXG4gICAgICBcInJpZG90dGFcIixcbiAgICAgIFwicm9idXN0YVwiLFxuICAgICAgXCJzaWN1cmFcIixcbiAgICAgIFwiY29uZGl2aXNpYmlsZVwiLFxuICAgICAgXCJzdGFuZC1hbG9uZVwiLFxuICAgICAgXCJzd2l0Y2hhYmlsZVwiLFxuICAgICAgXCJzaW5jcm9uaXp6YXRhXCIsXG4gICAgICBcInNpbmVyZ2ljYVwiLFxuICAgICAgXCJ0b3RhbGVcIixcbiAgICAgIFwidW5pdmVyc2FsZVwiLFxuICAgICAgXCJ1c2VyLWZyaWVuZGx5XCIsXG4gICAgICBcInZlcnNhdGlsZVwiLFxuICAgICAgXCJ2aXJ0dWFsZVwiLFxuICAgICAgXCJ2aXNpb25hcmlhXCJcbiAgICBdLFxuICAgIFwiYWRqZWN0aXZlXCI6XG4gICAgW1xuICAgICAgXCIyNCBvcmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJ0ZXJ6YSBnZW5lcmF6aW9uZVwiLFxuICAgICAgXCJxdWFydGEgZ2VuZXJhemlvbmVcIixcbiAgICAgIFwicXVpbnRhIGdlbmVyYXppb25lXCIsXG4gICAgICBcInNlc3RhIGdlbmVyYXppb25lXCIsXG4gICAgICBcImFzaW1tZXRyaWNhXCIsXG4gICAgICBcImFzaW5jcm9uYVwiLFxuICAgICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgICBcImJpLWRpcmV6aW9uYWxlXCIsXG4gICAgICBcImJpZm9yY2F0YVwiLFxuICAgICAgXCJib3R0b20tbGluZVwiLFxuICAgICAgXCJjb2VyZW50ZVwiLFxuICAgICAgXCJjb2VzaXZhXCIsXG4gICAgICBcImNvbXBvc2l0YVwiLFxuICAgICAgXCJzZW5zaWJpbGUgYWwgY29udGVzdG9cIixcbiAgICAgIFwiYmFzdGEgc3VsIGNvbnRlc3RvXCIsXG4gICAgICBcImJhc2F0YSBzdWwgY29udGVudXRvXCIsXG4gICAgICBcImRlZGljYXRhXCIsXG4gICAgICBcImRpZGF0dGljYVwiLFxuICAgICAgXCJkaXJlemlvbmFsZVwiLFxuICAgICAgXCJkaXNjcmV0YVwiLFxuICAgICAgXCJkaW5hbWljYVwiLFxuICAgICAgXCJlY28tY2VudHJpY2FcIixcbiAgICAgIFwiZXNlY3V0aXZhXCIsXG4gICAgICBcImVzcGxpY2l0YVwiLFxuICAgICAgXCJmdWxsLXJhbmdlXCIsXG4gICAgICBcImdsb2JhbGVcIixcbiAgICAgIFwiZXVyaXN0aWNhXCIsXG4gICAgICBcImFsdG8gbGl2ZWxsb1wiLFxuICAgICAgXCJvbGlzdGljYVwiLFxuICAgICAgXCJvbW9nZW5lYVwiLFxuICAgICAgXCJpYnJpZGFcIixcbiAgICAgIFwiaW1wYXR0YW50ZVwiLFxuICAgICAgXCJpbmNyZW1lbnRhbGVcIixcbiAgICAgIFwiaW50YW5naWJpbGVcIixcbiAgICAgIFwiaW50ZXJhdHRpdmFcIixcbiAgICAgIFwiaW50ZXJtZWRpYXJpYVwiLFxuICAgICAgXCJsb2NhbGVcIixcbiAgICAgIFwibG9naXN0aWNhXCIsXG4gICAgICBcIm1hc3NpbWl6emF0YVwiLFxuICAgICAgXCJtZXRvZGljYVwiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcIm1vYmlsZVwiLFxuICAgICAgXCJtb2R1bGFyZVwiLFxuICAgICAgXCJtb3RpdmF6aW9uYWxlXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGktdGFza2luZ1wiLFxuICAgICAgXCJuYXppb25hbGVcIixcbiAgICAgIFwibmV1dHJhbGVcIixcbiAgICAgIFwibmV4dGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvdHRpbWFcIixcbiAgICAgIFwib3R0aW1penphbnRlXCIsXG4gICAgICBcInJhZGljYWxlXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJyZWNpcHJvY2FcIixcbiAgICAgIFwicmVnaW9uYWxlXCIsXG4gICAgICBcInJlc3BvbnNpdmFcIixcbiAgICAgIFwic2NhbGFiaWxlXCIsXG4gICAgICBcInNlY29uZGFyaWFcIixcbiAgICAgIFwic3RhYmlsZVwiLFxuICAgICAgXCJzdGF0aWNhXCIsXG4gICAgICBcInNpc3RlbWF0aWNhXCIsXG4gICAgICBcInNpc3RlbWljYVwiLFxuICAgICAgXCJ0YW5naWJpbGVcIixcbiAgICAgIFwidGVyemlhcmlhXCIsXG4gICAgICBcInVuaWZvcm1lXCIsXG4gICAgICBcInZhbG9yZSBhZ2dpdW50b1wiXG4gIF0sXG4gIFwiYnNfbm91blwiOiBbXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJjb211bml0w6BcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV6aW9uaVwiLFxuICAgICAgXCJlLXNlcnZpY2VzXCIsXG4gICAgICBcIm5pY2NoaWVcIixcbiAgICAgIFwidGVjbm9sb2dpZVwiLFxuICAgICAgXCJjb250ZW51dGlcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW56ZVwiLFxuICAgICAgXCJyZWxhemlvbmlcIixcbiAgICAgIFwiYXJjaGl0ZXR0dXJlXCIsXG4gICAgICBcImludGVyZmFjY2VcIixcbiAgICAgIFwibWVyY2F0aVwiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInNpc3RlbWlcIixcbiAgICAgIFwibW9kZWxsaVwiLFxuICAgICAgXCJzY2hlbWlcIixcbiAgICAgIFwicmV0aVwiLFxuICAgICAgXCJhcHBsaWNhemlvbmlcIixcbiAgICAgIFwibWV0cmljaGVcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW56aW9uYWxpdMOgXCIsXG4gICAgICBcImVzcGVyaWVuemVcIixcbiAgICAgIFwid2Vic2VydmljZXNcIixcbiAgICAgIFwibWV0b2RvbG9naWVcIlxuICAgIF0sXG4gICAgXCJic192ZXJiXCI6XG4gICAgW1xuICAgICAgXCJpbXBsZW1lbnRhdGVcIixcbiAgICAgIFwidXRpbGl6em9cIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcIm90dGltYWxpXCIsXG4gICAgICBcImV2b2x1dGl2ZVwiLFxuICAgICAgXCJhYmlsaXRhdGVcIixcbiAgICAgIFwicmVpbnZlbnRhdGVcIixcbiAgICAgIFwiYWdncmVnYXRlXCIsXG4gICAgICBcIm1pZ2xpb3JhdGVcIixcbiAgICAgIFwiaW5jZW50aXZhdGVcIixcbiAgICAgIFwibW9uZXRpenphdGVcIixcbiAgICAgIFwic2luZXJnaXp6YXRlXCIsXG4gICAgICBcInN0cmF0ZWdpY2hlXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJtYXJjaGlcIixcbiAgICAgIFwiYWNjcmVzY2l0aXZlXCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzaW50ZXRpenphdGVcIixcbiAgICAgIFwic3BlZGl6aW9uaVwiLFxuICAgICAgXCJtYXNzaW1penphdGVcIixcbiAgICAgIFwiaW5ub3ZhemlvbmVcIixcbiAgICAgIFwiZ3VpZGFcIixcbiAgICAgIFwiZXN0ZW5zaW9uaVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXppb25hbGlcIixcbiAgICAgIFwibWF0cmljaVwiLFxuICAgICAgXCJyaWNvbnRlc3R1YWxpenphdGVcIlxuICAgIF0sXG4gICAgXCJic19hZGplY3RpdmVcIjpcbiAgICBbXG4gICAgICBcInZhbG9yZSBhZ2dpdW50b1wiLFxuICAgICAgXCJ2ZXJ0aWNhbGl6emF0ZVwiLFxuICAgICAgXCJwcm9hdHRpdmVcIixcbiAgICAgIFwiZm9ydGlcIixcbiAgICAgIFwicml2b2x1emlvbmFyaVwiLFxuICAgICAgXCJzY2FsYWJpbGlcIixcbiAgICAgIFwiaW5ub3ZhdGl2aVwiLFxuICAgICAgXCJpbnR1aXRpdmlcIixcbiAgICAgIFwic3RyYXRlZ2ljaVwiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJnbG9iYWxpXCIsXG4gICAgICBcIkIyQlwiLFxuICAgICAgXCJCMkNcIixcbiAgICAgIFwiZ3JhbnVsYXJpXCIsXG4gICAgICBcInZpcnR1YWxpXCIsXG4gICAgICBcInZpcmFsaVwiLFxuICAgICAgXCJkaW5hbWljaGVcIixcbiAgICAgIFwibWFnbmV0aWNoZVwiLFxuICAgICAgXCJ3ZWJcIixcbiAgICAgIFwiaW50ZXJhdHRpdmVcIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50aVwiLFxuICAgICAgXCJmcm9udC1lbmRcIixcbiAgICAgIFwiZGlzdHJpYnV0aXZpXCIsXG4gICAgICBcImVzdGVuc2liaWxpXCIsXG4gICAgICBcIm1vbmRpYWxpXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcInNpbmVyZ2ljaGVcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVcIixcbiAgICAgIFwiZGkgaW1wYXR0b1wiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFzcGFyZW50aVwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInZpc2lvbmFyaVwiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwib2xpc3RpY2hlXCIsXG4gICAgICBcInJpY2NoZVwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IGUgI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbml0LmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCIsXG4gICAgXCJlbWFpbC5pdFwiLFxuICAgIFwibGliZXJvLml0XCIsXG4gICAgXCJ5YWhvby5pdFwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImNvbVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiLFxuICAgIFwiaXRcIixcbiAgICBcIml0XCIsXG4gICAgXCJpdFwiXG4gIF1cbn07XG5pdC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFraXJhXCIsXG4gICAgXCJBbGJlcnRvXCIsXG4gICAgXCJBbGVzc2FuZHJvXCIsXG4gICAgXCJBbGlnaGllcmlcIixcbiAgICBcIkFtZWRlb1wiLFxuICAgIFwiQW1vc1wiLFxuICAgIFwiQW5zZWxtb1wiLFxuICAgIFwiQW50b25pbm9cIixcbiAgICBcIkFyY2liYWxkb1wiLFxuICAgIFwiQXJtYW5kb1wiLFxuICAgIFwiQXJ0ZXNcIixcbiAgICBcIkF1ZGVuaWNvXCIsXG4gICAgXCJBdXNvbmlvXCIsXG4gICAgXCJCYWNjaGlzaW9cIixcbiAgICBcIkJhdHRpc3RhXCIsXG4gICAgXCJCZXJuYXJkb1wiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkNhaW9cIixcbiAgICBcIkNhcmxvXCIsXG4gICAgXCJDZWNjb1wiLFxuICAgIFwiQ2lyaW5vXCIsXG4gICAgXCJDbGVyb3NcIixcbiAgICBcIkNvc3RhbnRpbm9cIixcbiAgICBcIkRhbWlhbm9cIixcbiAgICBcIkRhbm55XCIsXG4gICAgXCJEYXZpZGVcIixcbiAgICBcIkRlbWlhblwiLFxuICAgIFwiRGltaXRyaVwiLFxuICAgIFwiRG9taW5nb1wiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIkVkaWxpb1wiLFxuICAgIFwiRWdpZGlvXCIsXG4gICAgXCJFbGlvXCIsXG4gICAgXCJFbWFudWVsXCIsXG4gICAgXCJFbnJpY29cIixcbiAgICBcIkVyY29sZVwiLFxuICAgIFwiRXJtZXNcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJFdXNlYmlvXCIsXG4gICAgXCJFdmFuZ2VsaXN0YVwiLFxuICAgIFwiRmFiaWFub1wiLFxuICAgIFwiRmVyZGluYW5kb1wiLFxuICAgIFwiRmlvcmVudGlub1wiLFxuICAgIFwiRmxhdmlvXCIsXG4gICAgXCJGdWx2aW9cIixcbiAgICBcIkdhYnJpZWxlXCIsXG4gICAgXCJHYXN0b25lXCIsXG4gICAgXCJHZXJtYW5vXCIsXG4gICAgXCJHaWFjaW50b1wiLFxuICAgIFwiR2lhbmFudG9uaW9cIixcbiAgICBcIkdpYW5sZW9uYXJkb1wiLFxuICAgIFwiR2lhbm1hcmNvXCIsXG4gICAgXCJHaWFucmljY2FyZG9cIixcbiAgICBcIkdpb2FjY2hpbm9cIixcbiAgICBcIkdpb3JkYW5vXCIsXG4gICAgXCJHaXVsaWFub1wiLFxuICAgIFwiR3Jhemlhbm9cIixcbiAgICBcIkd1aWRvXCIsXG4gICAgXCJIYXJyeVwiLFxuICAgIFwiSWFjb3BvXCIsXG4gICAgXCJJbGFyaW9cIixcbiAgICBcIklvbmVcIixcbiAgICBcIkl0YWxvXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYXJpXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkthaVwiLFxuICAgIFwiS29jaXNzXCIsXG4gICAgXCJMYWVydGVcIixcbiAgICBcIkxhdXJvXCIsXG4gICAgXCJMZW9uYXJkb1wiLFxuICAgIFwiTGlib3Jpb1wiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTHVkb3ZpY29cIixcbiAgICBcIk1hZ2dpb3JlXCIsXG4gICAgXCJNYW51ZWxlXCIsXG4gICAgXCJNYXJpYW5vXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1hdHRlb1wiLFxuICAgIFwiTWF1cm9cIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIk1pcmNvXCIsXG4gICAgXCJNb2Rlc3RvXCIsXG4gICAgXCJNdXppb1wiLFxuICAgIFwiTmFiaWxcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiT2Rpbm9cIixcbiAgICBcIk9sb1wiLFxuICAgIFwiT3Jlc3RlXCIsXG4gICAgXCJPc2VhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGF0cml6aW9cIixcbiAgICBcIlBpZXJlcm1pbmlvXCIsXG4gICAgXCJQaWVyZnJhbmNlc2NvXCIsXG4gICAgXCJQaWVyc2lsdmlvXCIsXG4gICAgXCJQcmlhbW9cIixcbiAgICBcIlF1YXJ0b1wiLFxuICAgIFwiUXVpcmlub1wiLFxuICAgIFwiUmFkYW1lc1wiLFxuICAgIFwiUmFuaWVyb1wiLFxuICAgIFwiUmVuYXRvXCIsXG4gICAgXCJSb2Njb1wiLFxuICAgIFwiUm9tZW9cIixcbiAgICBcIlJvc2FsaW5vXCIsXG4gICAgXCJSdWR5XCIsXG4gICAgXCJTYWJhdGlub1wiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYW50b1wiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZXJzZVwiLFxuICAgIFwiU2lsdmFub1wiLFxuICAgIFwiU2lyaW9cIixcbiAgICBcIlRhbmNyZWRpXCIsXG4gICAgXCJUZXJ6b1wiLFxuICAgIFwiVGltb3Rlb1wiLFxuICAgIFwiVG9sb21lb1wiLFxuICAgIFwiVHJldmlzXCIsXG4gICAgXCJVYmFsZG9cIixcbiAgICBcIlVscmljb1wiLFxuICAgIFwiVmFsZG9cIixcbiAgICBcIk5lcmlcIixcbiAgICBcIlZpbmljaW9cIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiWGF2aWVyXCIsXG4gICAgXCJZYWdvXCIsXG4gICAgXCJaYWNjYXJpYVwiLFxuICAgIFwiQWJyYW1vXCIsXG4gICAgXCJBZHJpYW5vXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJpbm9cIixcbiAgICBcIkFsZXNzaW9cIixcbiAgICBcIkFsaWdoaWVyb1wiLFxuICAgIFwiQW1lcmlnb1wiLFxuICAgIFwiQW5hc3Rhc2lvXCIsXG4gICAgXCJBbnRpbW9cIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFyZHVpbm9cIixcbiAgICBcIkFyb2xkb1wiLFxuICAgIFwiQXJ0dXJvXCIsXG4gICAgXCJBdWd1c3RvXCIsXG4gICAgXCJBdmlkZVwiLFxuICAgIFwiQmFsZGFzc2FycmVcIixcbiAgICBcIkJldHRpbm9cIixcbiAgICBcIkJvcnRvbG9cIixcbiAgICBcIkNhbGlnb2xhXCIsXG4gICAgXCJDYXJtZWxvXCIsXG4gICAgXCJDZWxlc3RlXCIsXG4gICAgXCJDaXJvXCIsXG4gICAgXCJDb3N0YW56b1wiLFxuICAgIFwiRGFudGVcIixcbiAgICBcIkRhbnRob25cIixcbiAgICBcIkRhdmlzXCIsXG4gICAgXCJEZW1pc1wiLFxuICAgIFwiRGluZG9cIixcbiAgICBcIkRvbWl6aWFub1wiLFxuICAgIFwiRWRpcG9cIixcbiAgICBcIkVnaXN0b1wiLFxuICAgIFwiRWxpemlhcmlvXCIsXG4gICAgXCJFbWlkaW9cIixcbiAgICBcIkVuem9cIixcbiAgICBcIkVyaWJlcnRvXCIsXG4gICAgXCJFcm1pbmlvXCIsXG4gICAgXCJFdHRvcmVcIixcbiAgICBcIkV1c3RhY2hpb1wiLFxuICAgIFwiRmFiaW9cIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGaW9yZW56b1wiLFxuICAgIFwiRm9sY29cIixcbiAgICBcIkZ1cmlvXCIsXG4gICAgXCJHYWV0YW5vXCIsXG4gICAgXCJHYXZpbm9cIixcbiAgICBcIkdlcmxhbmRvXCIsXG4gICAgXCJHaWFjb2JiZVwiLFxuICAgIFwiR2lhbmNhcmxvXCIsXG4gICAgXCJHaWFubWFyaWFcIixcbiAgICBcIkdpb2JiZVwiLFxuICAgIFwiR2lvcmdpb1wiLFxuICAgIFwiR2l1bGlvXCIsXG4gICAgXCJHcmVnb3Jpb1wiLFxuICAgIFwiSGVjdG9yXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklwcG9saXRvXCIsXG4gICAgXCJJdmFub1wiLFxuICAgIFwiSmFjb3BvXCIsXG4gICAgXCJKYXJub1wiLFxuICAgIFwiSm9hbm5lc1wiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJLYXJpbVwiLFxuICAgIFwiS3Jpc1wiLFxuICAgIFwiTGFtYmVydG9cIixcbiAgICBcIkxhenphcm9cIixcbiAgICBcIkxlb25lXCIsXG4gICAgXCJMaW5vXCIsXG4gICAgXCJMb3Jpc1wiLFxuICAgIFwiTHVpZ2lcIixcbiAgICBcIk1hbmZyZWRpXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyaW5vXCIsXG4gICAgXCJNYXJ6aW9cIixcbiAgICBcIk1hdHRpYVwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNaWNoZWxlXCIsXG4gICAgXCJNaXJrb1wiLFxuICAgIFwiTW9yZW5vXCIsXG4gICAgXCJOYWRpclwiLFxuICAgIFwiTmF6emFyZW5vXCIsXG4gICAgXCJOZXN0b3JlXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOb2VsXCIsXG4gICAgXCJPZG9uZVwiLFxuICAgIFwiT21hclwiLFxuICAgIFwiT3JmZW9cIixcbiAgICBcIk9zdmFsZG9cIixcbiAgICBcIlBhY2lmaWNvXCIsXG4gICAgXCJQZXJpY2xlXCIsXG4gICAgXCJQaWV0cm9cIixcbiAgICBcIlByaW1vXCIsXG4gICAgXCJRdWFzaW1vZG9cIixcbiAgICBcIlJhZGlvXCIsXG4gICAgXCJSYW91bFwiLFxuICAgIFwiUmVuem9cIixcbiAgICBcIlJvZG9sZm9cIixcbiAgICBcIlJvbW9sb1wiLFxuICAgIFwiUm9zb2xpbm9cIixcbiAgICBcIlJ1Zm9cIixcbiAgICBcIlNhYmlub1wiLFxuICAgIFwiU2FuZHJvXCIsXG4gICAgXCJTYXNoYVwiLFxuICAgIFwiU2Vjb25kb1wiLFxuICAgIFwiU2VzdG9cIixcbiAgICBcIlNpbHZlcmlvXCIsXG4gICAgXCJTaXJvXCIsXG4gICAgXCJUYXppb1wiLFxuICAgIFwiVGVzZW9cIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRvbW1hc29cIixcbiAgICBcIlRyaXN0YW5vXCIsXG4gICAgXCJVbWJlcnRvXCIsXG4gICAgXCJBcmllbFwiLFxuICAgIFwiQXJ0ZW1pZGVcIixcbiAgICBcIkFzc2lhXCIsXG4gICAgXCJBenVlXCIsXG4gICAgXCJCZW5lZGV0dGFcIixcbiAgICBcIkJpYmlhbmFcIixcbiAgICBcIkJyaWdpdHRhXCIsXG4gICAgXCJDYXJtZWxhXCIsXG4gICAgXCJDYXNzaW9wZWFcIixcbiAgICBcIkNlc2lkaWFcIixcbiAgICBcIkNpcmFcIixcbiAgICBcIkNsZWFcIixcbiAgICBcIkNsZW9wYXRyYVwiLFxuICAgIFwiQ2xvZG92ZWFcIixcbiAgICBcIkNvbmNldHRhXCIsXG4gICAgXCJDb3NldHRhXCIsXG4gICAgXCJDcmlzdHluXCIsXG4gICAgXCJEYW1pYW5hXCIsXG4gICAgXCJEYW51dGFcIixcbiAgICBcIkRlYm9yYWhcIixcbiAgICBcIkRlbWlcIixcbiAgICBcIkRpYW1hbnRlXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRG9uYXRlbGxhXCIsXG4gICAgXCJEb3JpYW5hXCIsXG4gICAgXCJFZHZpZ2VcIixcbiAgICBcIkVsZGFcIixcbiAgICBcIkVsZ2FcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVtaWxpYVwiLFxuICAgIFwiRW5yaWNhXCIsXG4gICAgXCJFcm1pbmlhXCIsXG4gICAgXCJFdWZlbWlhXCIsXG4gICAgXCJFdml0YVwiLFxuICAgIFwiRmF0aW1hXCIsXG4gICAgXCJGZWxpY2lhXCIsXG4gICAgXCJGaWxvbWVuYVwiLFxuICAgIFwiRmxhdmlhbmFcIixcbiAgICBcIkZvcnR1bmF0YVwiLFxuICAgIFwiR2Vsc29taW5hXCIsXG4gICAgXCJHZW56aWFuYVwiLFxuICAgIFwiR2lhY2ludGFcIixcbiAgICBcIkdpbGRhXCIsXG4gICAgXCJHaW92YW5uYVwiLFxuICAgIFwiR2l1bGlldHRhXCIsXG4gICAgXCJHcmF6aWFcIixcbiAgICBcIkd1ZW5kYWxpbmFcIixcbiAgICBcIkhlbGdhXCIsXG4gICAgXCJJbGVhbmFcIixcbiAgICBcIkluZ3JpZFwiLFxuICAgIFwiSXJlbmVcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNpcmFcIixcbiAgICBcIkl2b25uZVwiLFxuICAgIFwiSmVsZW5hXCIsXG4gICAgXCJKb2xlXCIsXG4gICAgXCJDbGF1ZGlhXCIsXG4gICAgXCJLYXlsYVwiLFxuICAgIFwiS3Jpc3RlbFwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpZGlhXCIsXG4gICAgXCJMaXNhXCIsXG4gICAgXCJMb3JlZGFuYVwiLFxuICAgIFwiTG9yZXR0YVwiLFxuICAgIFwiTHVjZVwiLFxuICAgIFwiTHVjcmV6aWFcIixcbiAgICBcIkx1bmFcIixcbiAgICBcIk1haWthXCIsXG4gICAgXCJNYXJjZWxsYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhZ2l1bGlhXCIsXG4gICAgXCJNYXJpYW5pdGFcIixcbiAgICBcIk1hcmlhcGlhXCIsXG4gICAgXCJNYXJpZXZhXCIsXG4gICAgXCJNYXJpbmFcIixcbiAgICBcIk1hcmlzdGVsbGFcIixcbiAgICBcIk1hcnVza2FcIixcbiAgICBcIk1hdGlsZGVcIixcbiAgICBcIk1lY3JlblwiLFxuICAgIFwiTWVyY2VkZXNcIixcbiAgICBcIk1pZXR0YVwiLFxuICAgIFwiTWlyaWFuYVwiLFxuICAgIFwiTWlyaWFtXCIsXG4gICAgXCJNb25pYVwiLFxuICAgIFwiTW9yZ2FuYVwiLFxuICAgIFwiTmFvbWlcIixcbiAgICBcIk5heWFkZVwiLFxuICAgIFwiTmljb2xldHRhXCIsXG4gICAgXCJOaW5mYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk51bnppYVwiLFxuICAgIFwiT2xpbXBpYVwiLFxuICAgIFwiT3JldHRhXCIsXG4gICAgXCJPcnRlbnNpYVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBpY2NhcmRhXCIsXG4gICAgXCJQcmlzY2FcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJpdGFcIixcbiAgICBcIlJvc2FsYmFcIixcbiAgICBcIlJvc2FyaWFcIixcbiAgICBcIlJvc2l0YVwiLFxuICAgIFwiUnV0aFwiLFxuICAgIFwiU2FtaXJhXCIsXG4gICAgXCJTYXJpdGFcIixcbiAgICBcIlNlbHZhZ2dpYVwiLFxuICAgIFwiU2hhaXJhXCIsXG4gICAgXCJTaWJpbGxhXCIsXG4gICAgXCJTb3JpYW5hXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUb3NjYVwiLFxuICAgIFwiVXJzdWxhXCIsXG4gICAgXCJWYW5pYVwiLFxuICAgIFwiVmVyYVwiLFxuICAgIFwiVmllbm5hXCIsXG4gICAgXCJWaW9sYW50ZVwiLFxuICAgIFwiVml0YWxiYVwiLFxuICAgIFwiWmVsaWRhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQW1hdG9cIixcbiAgICBcIkJhcmJpZXJpXCIsXG4gICAgXCJCYXJvbmVcIixcbiAgICBcIkJhc2lsZVwiLFxuICAgIFwiQmF0dGFnbGlhXCIsXG4gICAgXCJCZWxsaW5pXCIsXG4gICAgXCJCZW5lZGV0dGlcIixcbiAgICBcIkJlcm5hcmRpXCIsXG4gICAgXCJCaWFuY1wiLFxuICAgIFwiQmlhbmNoaVwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkNhcHV0b1wiLFxuICAgIFwiQ2FyYm9uXCIsXG4gICAgXCJDYXJ1c29cIixcbiAgICBcIkNhdHRhbmVvXCIsXG4gICAgXCJDb2xvbWJvXCIsXG4gICAgXCJDb250XCIsXG4gICAgXCJDb250ZVwiLFxuICAgIFwiQ29wcG9sYVwiLFxuICAgIFwiQ29zdGFcIixcbiAgICBcIkNvc3RhbnRpblwiLFxuICAgIFwiRCdhbWljb1wiLFxuICAgIFwiRCdhbmdlbG9cIixcbiAgICBcIkRhbWljb1wiLFxuICAgIFwiRGUgQW5nZWxpc1wiLFxuICAgIFwiRGUgbHVjYVwiLFxuICAgIFwiRGUgcm9zYVwiLFxuICAgIFwiRGUgU2FudGlzXCIsXG4gICAgXCJEb25hdGlcIixcbiAgICBcIkVzcG9zaXRvXCIsXG4gICAgXCJGYWJicmlcIixcbiAgICBcIkZhcmluXCIsXG4gICAgXCJGZXJyYXJhXCIsXG4gICAgXCJGZXJyYXJpXCIsXG4gICAgXCJGZXJyYXJvXCIsXG4gICAgXCJGZXJyZXR0aVwiLFxuICAgIFwiRmVycmlcIixcbiAgICBcIkZpb3JcIixcbiAgICBcIkZvbnRhbmFcIixcbiAgICBcIkdhbGxpXCIsXG4gICAgXCJHYWxsb1wiLFxuICAgIFwiR2F0dGlcIixcbiAgICBcIkdlbnRpbGVcIixcbiAgICBcIkdpb3JkYW5vXCIsXG4gICAgXCJHaXVsaWFuaVwiLFxuICAgIFwiR3Jhc3NpXCIsXG4gICAgXCJHcmFzc29cIixcbiAgICBcIkdyZWNvXCIsXG4gICAgXCJHdWVycmFcIixcbiAgICBcIkxlb25lXCIsXG4gICAgXCJMb21iYXJkaVwiLFxuICAgIFwiTG9tYmFyZG9cIixcbiAgICBcIkxvbmdvXCIsXG4gICAgXCJNYW5jaW5pXCIsXG4gICAgXCJNYXJjaGV0dGlcIixcbiAgICBcIk1hcmlhblwiLFxuICAgIFwiTWFyaW5pXCIsXG4gICAgXCJNYXJpbm9cIixcbiAgICBcIk1hcnRpbmVsbGlcIixcbiAgICBcIk1hcnRpbmlcIixcbiAgICBcIk1hcnRpbm9cIixcbiAgICBcIk1henphXCIsXG4gICAgXCJNZXNzaW5hXCIsXG4gICAgXCJNaWxhbmlcIixcbiAgICBcIk1vbnRhbmFyaVwiLFxuICAgIFwiTW9udGlcIixcbiAgICBcIk1vcmVsbGlcIixcbiAgICBcIk1vcmV0dGlcIixcbiAgICBcIk5lZ3JpXCIsXG4gICAgXCJOZXJpXCIsXG4gICAgXCJPcmxhbmRvXCIsXG4gICAgXCJQYWdhbm9cIixcbiAgICBcIlBhbG1pZXJpXCIsXG4gICAgXCJQYWx1bWJvXCIsXG4gICAgXCJQYXJpc2lcIixcbiAgICBcIlBlbGxlZ3JpbmlcIixcbiAgICBcIlBlbGxlZ3Jpbm9cIixcbiAgICBcIlBpcmFzXCIsXG4gICAgXCJSaWNjaVwiLFxuICAgIFwiUmluYWxkaVwiLFxuICAgIFwiUml2YVwiLFxuICAgIFwiUml6emlcIixcbiAgICBcIlJpenpvXCIsXG4gICAgXCJSb21hbm9cIixcbiAgICBcIlJvc3NcIixcbiAgICBcIlJvc3NldHRpXCIsXG4gICAgXCJSdWdnaWVyb1wiLFxuICAgIFwiUnVzc29cIixcbiAgICBcIlNhbGFcIixcbiAgICBcIlNhbm5hXCIsXG4gICAgXCJTYW50b3JvXCIsXG4gICAgXCJTYXJ0b3JpXCIsXG4gICAgXCJTZXJyXCIsXG4gICAgXCJTaWx2ZXN0cmlcIixcbiAgICBcIlNvcnJlbnRpbm9cIixcbiAgICBcIlRlc3RhXCIsXG4gICAgXCJWYWxlbnRpbmlcIixcbiAgICBcIlZpbGxhXCIsXG4gICAgXCJWaXRhbGVcIixcbiAgICBcIlZpdGFsaVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNpZy5cIixcbiAgICBcIkRvdHQuXCIsXG4gICAgXCJEci5cIixcbiAgICBcIkluZy5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbml0LnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIisjIyAjIyMgIyMgIyMgIyMjI1wiLFxuICAgIFwiKyMjICMjICMjIyMjIyNcIixcbiAgICBcIisjIyAjIyAjIyMjIyMjI1wiLFxuICAgIFwiKyMjICMjIyAjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjICMjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjIyAjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjIyAjIyMjIyMjI1wiLFxuICAgIFwiMCMjICMjIyAjIyMjXCIsXG4gICAgXCIrMzkgMCMjICMjIyAjIyNcIixcbiAgICBcIjMjIyAjIyMgIyMjXCIsXG4gICAgXCIrMzkgMyMjICMjIyAjIyNcIlxuICBdXG59O1xuIiwidmFyIGphID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gamE7XG5qYS50aXRsZSA9IFwiSmFwYW5lc2VcIjtcbmphLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjLSMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIuWMl+a1t+mBk1wiLFxuICAgIFwi6Z2S5qOu55yMXCIsXG4gICAgXCLlsqnmiYvnnIxcIixcbiAgICBcIuWuruWfjuecjFwiLFxuICAgIFwi56eL55Sw55yMXCIsXG4gICAgXCLlsbHlvaLnnIxcIixcbiAgICBcIuemj+WztuecjFwiLFxuICAgIFwi6Iyo5Z+O55yMXCIsXG4gICAgXCLmoIPmnKjnnIxcIixcbiAgICBcIue+pOmmrOecjFwiLFxuICAgIFwi5Z+8546J55yMXCIsXG4gICAgXCLljYPokYnnnIxcIixcbiAgICBcIuadseS6rOmDvVwiLFxuICAgIFwi56We5aWI5bed55yMXCIsXG4gICAgXCLmlrDmvZ/nnIxcIixcbiAgICBcIuWvjOWxseecjFwiLFxuICAgIFwi55+z5bed55yMXCIsXG4gICAgXCLnpo/kupXnnIxcIixcbiAgICBcIuWxseaiqOecjFwiLFxuICAgIFwi6ZW36YeO55yMXCIsXG4gICAgXCLlspDpmJznnIxcIixcbiAgICBcIumdmeWyoeecjFwiLFxuICAgIFwi5oSb55+l55yMXCIsXG4gICAgXCLkuInph43nnIxcIixcbiAgICBcIua7i+izgOecjFwiLFxuICAgIFwi5Lqs6YO95bqcXCIsXG4gICAgXCLlpKfpmKrlupxcIixcbiAgICBcIuWFteW6q+ecjFwiLFxuICAgIFwi5aWI6Imv55yMXCIsXG4gICAgXCLlkozmrYzlsbHnnIxcIixcbiAgICBcIumzpeWPluecjFwiLFxuICAgIFwi5bO25qC555yMXCIsXG4gICAgXCLlsqHlsbHnnIxcIixcbiAgICBcIuW6g+WztuecjFwiLFxuICAgIFwi5bGx5Y+j55yMXCIsXG4gICAgXCLlvrPls7bnnIxcIixcbiAgICBcIummmeW3neecjFwiLFxuICAgIFwi5oSb5aqb55yMXCIsXG4gICAgXCLpq5jnn6XnnIxcIixcbiAgICBcIuemj+WyoeecjFwiLFxuICAgIFwi5L2Q6LOA55yMXCIsXG4gICAgXCLplbfltI7nnIxcIixcbiAgICBcIueGiuacrOecjFwiLFxuICAgIFwi5aSn5YiG55yMXCIsXG4gICAgXCLlrq7ltI7nnIxcIixcbiAgICBcIum5v+WFkOWztuecjFwiLFxuICAgIFwi5rKW57iE55yMXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIjFcIixcbiAgICBcIjJcIixcbiAgICBcIjNcIixcbiAgICBcIjRcIixcbiAgICBcIjVcIixcbiAgICBcIjZcIixcbiAgICBcIjdcIixcbiAgICBcIjhcIixcbiAgICBcIjlcIixcbiAgICBcIjEwXCIsXG4gICAgXCIxMVwiLFxuICAgIFwiMTJcIixcbiAgICBcIjEzXCIsXG4gICAgXCIxNFwiLFxuICAgIFwiMTVcIixcbiAgICBcIjE2XCIsXG4gICAgXCIxN1wiLFxuICAgIFwiMThcIixcbiAgICBcIjE5XCIsXG4gICAgXCIyMFwiLFxuICAgIFwiMjFcIixcbiAgICBcIjIyXCIsXG4gICAgXCIyM1wiLFxuICAgIFwiMjRcIixcbiAgICBcIjI1XCIsXG4gICAgXCIyNlwiLFxuICAgIFwiMjdcIixcbiAgICBcIjI4XCIsXG4gICAgXCIyOVwiLFxuICAgIFwiMzBcIixcbiAgICBcIjMxXCIsXG4gICAgXCIzMlwiLFxuICAgIFwiMzNcIixcbiAgICBcIjM0XCIsXG4gICAgXCIzNVwiLFxuICAgIFwiMzZcIixcbiAgICBcIjM3XCIsXG4gICAgXCIzOFwiLFxuICAgIFwiMzlcIixcbiAgICBcIjQwXCIsXG4gICAgXCI0MVwiLFxuICAgIFwiNDJcIixcbiAgICBcIjQzXCIsXG4gICAgXCI0NFwiLFxuICAgIFwiNDVcIixcbiAgICBcIjQ2XCIsXG4gICAgXCI0N1wiXG4gIF0sXG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwi5YyXXCIsXG4gICAgXCLmnbFcIixcbiAgICBcIuilv1wiLFxuICAgIFwi5Y2XXCIsXG4gICAgXCLmlrBcIixcbiAgICBcIua5llwiLFxuICAgIFwi5rivXCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCLluIJcIixcbiAgICBcIuWMulwiLFxuICAgIFwi55S6XCIsXG4gICAgXCLmnZFcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0je05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9I3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je3N0cmVldF9zdWZmaXh9XCJcbiAgXVxufTtcbmphLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAjIyMjLSMtIyMjI1wiLFxuICAgIFwiMCMjIy0jIy0jIyMjXCIsXG4gICAgXCIwIyMtIyMjLSMjIyNcIixcbiAgICBcIjAjLSMjIyMtIyMjI1wiXG4gIF1cbn07XG5qYS5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDkwLSMjIyMtIyMjI1wiLFxuICAgIFwiMDgwLSMjIyMtIyMjI1wiLFxuICAgIFwiMDcwLSMjIyMtIyMjI1wiXG4gIF1cbn07XG5qYS5uYW1lID0ge1xuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCLkvZDol6RcIixcbiAgICBcIumItOacqFwiLFxuICAgIFwi6auY5qmLXCIsXG4gICAgXCLnlLDkuK1cIixcbiAgICBcIua4oei+ulwiLFxuICAgIFwi5LyK6JekXCIsXG4gICAgXCLlsbHmnKxcIixcbiAgICBcIuS4readkVwiLFxuICAgIFwi5bCP5p6XXCIsXG4gICAgXCLliqDol6RcIixcbiAgICBcIuWQieeUsFwiLFxuICAgIFwi5bGx55SwXCIsXG4gICAgXCLkvZDjgIXmnKhcIixcbiAgICBcIuWxseWPo1wiLFxuICAgIFwi5paO6JekXCIsXG4gICAgXCLmnb7mnKxcIixcbiAgICBcIuS6leS4ilwiLFxuICAgIFwi5pyo5p2RXCIsXG4gICAgXCLmnpdcIixcbiAgICBcIua4heawtFwiXG4gIF0sXG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLlpKfnv5RcIixcbiAgICBcIuiTrlwiLFxuICAgIFwi6aKv5aSqXCIsXG4gICAgXCLmqLlcIixcbiAgICBcIuWkp+WSjFwiLFxuICAgIFwi6Zm957+UXCIsXG4gICAgXCLpmbjmlpdcIixcbiAgICBcIuWkquS4gFwiLFxuICAgIFwi5rW357+UXCIsXG4gICAgXCLokrznqbpcIixcbiAgICBcIue/vFwiLFxuICAgIFwi6Zm96I+cXCIsXG4gICAgXCLntZDmhJtcIixcbiAgICBcIue1kOiho1wiLFxuICAgIFwi5p2PXCIsXG4gICAgXCLojonlrZBcIixcbiAgICBcIue+jue+vVwiLFxuICAgIFwi57WQ6I+cXCIsXG4gICAgXCLlv4PmhJtcIixcbiAgICBcIuaEm+iPnFwiLFxuICAgIFwi576O5ZKyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7bGFzdF9uYW1lfSAje2ZpcnN0X25hbWV9XCJcbiAgXVxufTtcbiIsInZhciBrbyA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGtvO1xua28udGl0bGUgPSBcIktvcmVhblwiO1xua28uYWRkcmVzcyA9IHtcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCLqsJXsm5BcIixcbiAgICBcIuqyveq4sFwiLFxuICAgIFwi6rK964KoXCIsXG4gICAgXCLqsr3rtoFcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi64yA6rWsXCIsXG4gICAgXCLrjIDsoIRcIixcbiAgICBcIuu2gOyCsFwiLFxuICAgIFwi7ISc7Jq4XCIsXG4gICAgXCLsmrjsgrBcIixcbiAgICBcIuyduOyynFwiLFxuICAgIFwi7KCE64KoXCIsXG4gICAgXCLsoITrtoFcIixcbiAgICBcIuygnOyjvFwiLFxuICAgIFwi7Lap64KoXCIsXG4gICAgXCLstqnrtoFcIixcbiAgICBcIuyEuOyihVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCLqsJXsm5BcIixcbiAgICBcIuqyveq4sFwiLFxuICAgIFwi6rK964KoXCIsXG4gICAgXCLqsr3rtoFcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi64yA6rWsXCIsXG4gICAgXCLrjIDsoIRcIixcbiAgICBcIuu2gOyCsFwiLFxuICAgIFwi7ISc7Jq4XCIsXG4gICAgXCLsmrjsgrBcIixcbiAgICBcIuyduOyynFwiLFxuICAgIFwi7KCE64KoXCIsXG4gICAgXCLsoITrtoFcIixcbiAgICBcIuygnOyjvFwiLFxuICAgIFwi7Lap64KoXCIsXG4gICAgXCLstqnrtoFcIixcbiAgICBcIuyEuOyihVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwi6rWsXCIsXG4gICAgXCLsi5xcIixcbiAgICBcIuq1sFwiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIuqwleumiVwiLFxuICAgIFwi7JaR7JaRXCIsXG4gICAgXCLsnbjsoJxcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi6rWs66asXCIsXG4gICAgXCLrtoDsspxcIixcbiAgICBcIuuwgOyWkVwiLFxuICAgIFwi7Ya17JiBXCIsXG4gICAgXCLssL3sm5BcIixcbiAgICBcIuqxsOywvVwiLFxuICAgIFwi6rOg7ISxXCIsXG4gICAgXCLslpHsgrBcIixcbiAgICBcIuq5gOyynFwiLFxuICAgIFwi6rWs66+4XCIsXG4gICAgXCLsmIHso7xcIixcbiAgICBcIuq0keyCsFwiLFxuICAgIFwi64KoXCIsXG4gICAgXCLrtoFcIixcbiAgICBcIuqzoOywvVwiLFxuICAgIFwi6rWw7IKwXCIsXG4gICAgXCLrgqjsm5BcIixcbiAgICBcIuuPmeyekVwiLFxuICAgIFwi66eI7Y+sXCIsXG4gICAgXCLshqHtjIxcIixcbiAgICBcIuyaqeyCsFwiLFxuICAgIFwi67aA7Y+JXCIsXG4gICAgXCLqsJXtmZRcIixcbiAgICBcIuyImOyEsVwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X3Jvb3RcIjogW1xuICAgIFwi7IOB6rOEXCIsXG4gICAgXCLtmZTqs6FcIixcbiAgICBcIuyLoOyglVwiLFxuICAgIFwi66qpXCIsXG4gICAgXCLsnqDsi6RcIixcbiAgICBcIuuptOuqqVwiLFxuICAgIFwi7KO87JWIXCIsXG4gICAgXCLslYjslpFcIixcbiAgICBcIuykkVwiLFxuICAgIFwi7KCV7JmVXCIsXG4gICAgXCLqtazroZxcIixcbiAgICBcIuyLoOyblFwiLFxuICAgIFwi7Jew7IKwXCIsXG4gICAgXCLrtoDtj4lcIixcbiAgICBcIuywvVwiLFxuICAgIFwi66eM7IiYXCIsXG4gICAgXCLspJHqs4RcIixcbiAgICBcIuqygOuLqFwiLFxuICAgIFwi7Iuc7Z2lXCIsXG4gICAgXCLsg4Hrj4RcIixcbiAgICBcIuuwqeuwsFwiLFxuICAgIFwi7J6l7JygXCIsXG4gICAgXCLsg4FcIixcbiAgICBcIuq0keuqhVwiLFxuICAgIFwi7Iug6ri4XCIsXG4gICAgXCLtlonsi6BcIixcbiAgICBcIuuMgOuqhVwiLFxuICAgIFwi64+Z7YOEXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIuydjVwiLFxuICAgIFwi66m0XCIsXG4gICAgXCLrj5lcIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9I3tzdHJlZXRfc3VmZml4fVwiXG4gIF1cbn07XG5rby5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwIy0jIyMjIy0jIyMjXCIsXG4gICAgXCIwIyMtIyMjLSMjIyNcIixcbiAgICBcIjAjIy0jIyMjLSMjIyNcIlxuICBdXG59O1xua28uY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwi7Jew6rWs7IaMXCIsXG4gICAgXCLqsozsnoTspohcIixcbiAgICBcIuq3uOujuVwiLFxuICAgIFwi7KCE7J6QXCIsXG4gICAgXCLrrLzsgrBcIixcbiAgICBcIuy9lOumrOyVhFwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIuyjvOyLne2ajOyCrFwiLFxuICAgIFwi7ZWc6rWtXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSAje3N1ZmZpeH1cIlxuICBdXG59O1xua28uaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvLmtyXCIsXG4gICAgXCJoYW5tYWlsLm5ldFwiLFxuICAgIFwibmF2ZXIuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvLmtyXCIsXG4gICAgXCJjb21cIixcbiAgICBcImJpelwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmUua3JcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3Iua3JcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5rby5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuuyleuloOydtFwiLFxuICAgIFwi7KCV7ZWY64qUXCIsXG4gICAgXCLrsJTsl5BcIixcbiAgICBcIuydmO2VmOyXrFwiLFxuICAgIFwi7J6s7Jm46rWt66+87J2EXCIsXG4gICAgXCLrs7TtmLjtlaBcIixcbiAgICBcIuydmOustOulvFwiLFxuICAgIFwi7KeE64ukLlwiLFxuICAgIFwi66qo65OgXCIsXG4gICAgXCLqta3rr7zsnYBcIixcbiAgICBcIuyLoOyytOydmFwiLFxuICAgIFwi7J6Q7Jyg66W8XCIsXG4gICAgXCLqsIDsp4Tri6QuXCIsXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuyghO2GteusuO2ZlOydmFwiLFxuICAgIFwi6rOE7Iq5wrfrsJzsoITqs7xcIixcbiAgICBcIuuvvOyhseusuO2ZlOydmFwiLFxuICAgIFwi7LC964us7JeQXCIsXG4gICAgXCLrhbjroKXtlZjsl6zslbxcIixcbiAgICBcIu2VnOuLpC5cIixcbiAgICBcIu2GteyLoMK367Cp7Iah7J2YXCIsXG4gICAgXCLsi5zshKTquLDspIDqs7xcIixcbiAgICBcIuyLoOusuOydmFwiLFxuICAgIFwi6riw64ql7J2EXCIsXG4gICAgXCLrs7TsnqXtlZjquLBcIixcbiAgICBcIuychO2VmOyXrFwiLFxuICAgIFwi7ZWE7JqU7ZWcXCIsXG4gICAgXCLsgqztla3snYBcIixcbiAgICBcIuuyleuloOuhnFwiLFxuICAgIFwi7KCV7ZWc64ukLlwiLFxuICAgIFwi7ZeM67KV7JeQXCIsXG4gICAgXCLsnZjtlZjsl6xcIixcbiAgICBcIuyytOqysMK36rO17Y+s65CcXCIsXG4gICAgXCLsobDslb3qs7xcIixcbiAgICBcIuydvOuwmOyggeycvOuhnFwiLFxuICAgIFwi7Iq57J2465CcXCIsXG4gICAgXCLqta3soJzrspXqt5zripRcIixcbiAgICBcIuq1reuCtOuyleqzvFwiLFxuICAgIFwi6rCZ7J2AXCIsXG4gICAgXCLtmqjroKXsnYRcIixcbiAgICBcIuqwgOynhOuLpC5cIixcbiAgICBcIuuLpOunjCxcIixcbiAgICBcIu2YhO2WieuylOyduOyduFwiLFxuICAgIFwi6rK97Jqw7JmAXCIsXG4gICAgXCLsnqXquLBcIixcbiAgICBcIjPrhYRcIixcbiAgICBcIuydtOyDgeydmFwiLFxuICAgIFwi7ZiV7JeQXCIsXG4gICAgXCLtlbTri7ntlZjripRcIixcbiAgICBcIuyjhOulvFwiLFxuICAgIFwi67KU7ZWY6rOgXCIsXG4gICAgXCLrj4TtlLxcIixcbiAgICBcIuuYkOuKlFwiLFxuICAgIFwi7Kad6rGw7J2466m47J2YXCIsXG4gICAgXCLsl7zroKTqsIBcIixcbiAgICBcIuyeiOydhFwiLFxuICAgIFwi65WM7JeQ64qUXCIsXG4gICAgXCLsgqztm4Tsl5BcIixcbiAgICBcIuyYgeyepeydhFwiLFxuICAgIFwi7LKt6rWs7ZWgXCIsXG4gICAgXCLsiJhcIixcbiAgICBcIuyeiOuLpC5cIixcbiAgICBcIuyggOyekeyekMK367Cc66qF6rCAwrfqs7ztlZnquLDsiKDsnpDsmYBcIixcbiAgICBcIuyYiOyIoOqwgOydmFwiLFxuICAgIFwi6raM66as64qUXCIsXG4gICAgXCLrspXrpaDroZzsjahcIixcbiAgICBcIuuztO2YuO2VnOuLpC5cIixcbiAgICBcIu2YleyCrO2UvOqzoOyduOydgFwiLFxuICAgIFwi7Jyg7KOE7J2YXCIsXG4gICAgXCLtjJDqsrDsnbRcIixcbiAgICBcIu2ZleygleuQoFwiLFxuICAgIFwi65WM6rmM7KeA64qUXCIsXG4gICAgXCLrrLTso4TroZxcIixcbiAgICBcIuy2lOygleuQnOuLpC5cIixcbiAgICBcIuuqqOuToFwiLFxuICAgIFwi6rWt66+87J2AXCIsXG4gICAgXCLtlonsnITsi5zsnZhcIixcbiAgICBcIuuyleuloOyXkFwiLFxuICAgIFwi7J2Y7ZWY7JesXCIsXG4gICAgXCLrspTso4TrpbxcIixcbiAgICBcIuq1rOyEse2VmOyngFwiLFxuICAgIFwi7JWE64uI7ZWY64qUXCIsXG4gICAgXCLtlonsnITroZxcIixcbiAgICBcIuyGjOy2lOuQmOyngFwiLFxuICAgIFwi7JWE64uI7ZWY66mwLFwiLFxuICAgIFwi64+Z7J287ZWcXCIsXG4gICAgXCLrspTso4Tsl5BcIixcbiAgICBcIuuMgO2VmOyXrFwiLFxuICAgIFwi6rGw65OtXCIsXG4gICAgXCLsspjrsozrsJvsp4BcIixcbiAgICBcIuyVhOuLiO2VnOuLpC5cIixcbiAgICBcIuq1reqwgOuKlFwiLFxuICAgIFwi7Y+J7IOd6rWQ7Jyh7J2EXCIsXG4gICAgXCLsp4TtnaXtlZjsl6zslbxcIixcbiAgICBcIu2VnOuLpC5cIixcbiAgICBcIuuqqOuToFwiLFxuICAgIFwi6rWt66+87J2AXCIsXG4gICAgXCLsgqzsg53tmZzsnZhcIixcbiAgICBcIuu5hOuwgOqzvFwiLFxuICAgIFwi7J6Q7Jyg66W8XCIsXG4gICAgXCLsuajtlbTrsJvsp4BcIixcbiAgICBcIuyVhOuLiO2VnOuLpC5cIixcbiAgICBcIuydmOustOq1kOycoeydgFwiLFxuICAgIFwi66y07IOB7Jy866GcXCIsXG4gICAgXCLtlZzri6QuXCIsXG4gICAgXCLsoIDsnpHsnpDCt+uwnOuqheqwgMK36rO87ZWZ6riw7Iig7J6Q7JmAXCIsXG4gICAgXCLsmIjsiKDqsIDsnZhcIixcbiAgICBcIuq2jOumrOuKlFwiLFxuICAgIFwi67KV66Wg66Gc7I2oXCIsXG4gICAgXCLrs7TtmLjtlZzri6QuXCIsXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuuqqOyEseydmFwiLFxuICAgIFwi67O07Zi466W8XCIsXG4gICAgXCLsnITtlZjsl6xcIixcbiAgICBcIuuFuOugpe2VmOyXrOyVvFwiLFxuICAgIFwi7ZWc64ukLlwiLFxuICAgIFwi7ZeM67KV7JeQXCIsXG4gICAgXCLsnZjtlZjsl6xcIixcbiAgICBcIuyytOqysMK36rO17Y+s65CcXCIsXG4gICAgXCLsobDslb3qs7xcIixcbiAgICBcIuydvOuwmOyggeycvOuhnFwiLFxuICAgIFwi7Iq57J2465CcXCIsXG4gICAgXCLqta3soJzrspXqt5zripRcIixcbiAgICBcIuq1reuCtOuyleqzvFwiLFxuICAgIFwi6rCZ7J2AXCIsXG4gICAgXCLtmqjroKXsnYRcIixcbiAgICBcIuqwgOynhOuLpC5cIlxuICBdXG59O1xua28ubmFtZSA9IHtcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi6rmAXCIsXG4gICAgXCLsnbRcIixcbiAgICBcIuuwlVwiLFxuICAgIFwi7LWcXCIsXG4gICAgXCLsoJVcIixcbiAgICBcIuqwlVwiLFxuICAgIFwi7KGwXCIsXG4gICAgXCLsnKRcIixcbiAgICBcIuyepVwiLFxuICAgIFwi7J6EXCIsXG4gICAgXCLsmKRcIixcbiAgICBcIu2VnFwiLFxuICAgIFwi7IugXCIsXG4gICAgXCLshJxcIixcbiAgICBcIuq2jFwiLFxuICAgIFwi7ZmpXCIsXG4gICAgXCLslYhcIixcbiAgICBcIuyGoVwiLFxuICAgIFwi66WYXCIsXG4gICAgXCLtmY1cIlxuICBdLFxuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwi7ISc7JewXCIsXG4gICAgXCLrr7zshJxcIixcbiAgICBcIuyEnO2YhFwiLFxuICAgIFwi7KeA7JqwXCIsXG4gICAgXCLshJzsnKRcIixcbiAgICBcIuyngOuvvFwiLFxuICAgIFwi7IiY67mIXCIsXG4gICAgXCLtlZjsnYBcIixcbiAgICBcIuyYiOydgFwiLFxuICAgIFwi7Jyk7IScXCIsXG4gICAgXCLrr7zspIBcIixcbiAgICBcIuyngO2bhFwiLFxuICAgIFwi7KeA7ZuIXCIsXG4gICAgXCLspIDshJxcIixcbiAgICBcIu2YhOyasFwiLFxuICAgIFwi7JiI7KSAXCIsXG4gICAgXCLqsbTsmrBcIixcbiAgICBcIu2YhOykgFwiLFxuICAgIFwi66+87J6sXCIsXG4gICAgXCLsmrDsp4RcIixcbiAgICBcIuydgOyjvFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2xhc3RfbmFtZX0gI3tmaXJzdF9uYW1lfVwiXG4gIF1cbn07XG4iLCJ2YXIgbmJfTk8gPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBuYl9OTztcbm5iX05PLnRpdGxlID0gXCJOb3J3ZWdpYW5cIjtcbm5iX05PLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9yb290XCI6IFtcbiAgICBcIkZldFwiLFxuICAgIFwiR2plc1wiLFxuICAgIFwiSMO4eVwiLFxuICAgIFwiSW5uXCIsXG4gICAgXCJGYWdlclwiLFxuICAgIFwiTGlsbGVcIixcbiAgICBcIkxvXCIsXG4gICAgXCJNYWxcIixcbiAgICBcIk5vcmRcIixcbiAgICBcIk7DpnJcIixcbiAgICBcIlNhbmRcIixcbiAgICBcIlNtZVwiLFxuICAgIFwiU3RhdlwiLFxuICAgIFwiU3RvclwiLFxuICAgIFwiVGFuZFwiLFxuICAgIFwiVXRcIixcbiAgICBcIlZlc3RcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcImJlcmdcIixcbiAgICBcImJvcmdcIixcbiAgICBcImJ5XCIsXG4gICAgXCJiw7hcIixcbiAgICBcImRhbFwiLFxuICAgIFwiZWlkXCIsXG4gICAgXCJmamVsbFwiLFxuICAgIFwiZmpvcmRcIixcbiAgICBcImZvc3NcIixcbiAgICBcImdydW5uXCIsXG4gICAgXCJoYW1uXCIsXG4gICAgXCJoYXZuXCIsXG4gICAgXCJoZWxsZVwiLFxuICAgIFwibWFya1wiLFxuICAgIFwibmVzXCIsXG4gICAgXCJvZGRlblwiLFxuICAgIFwic2FuZFwiLFxuICAgIFwic2rDuGVuXCIsXG4gICAgXCJzdGFkXCIsXG4gICAgXCJzdHJhbmRcIixcbiAgICBcInN0csO4bVwiLFxuICAgIFwic3VuZFwiLFxuICAgIFwidmlrXCIsXG4gICAgXCJ2w6ZyXCIsXG4gICAgXCJ2w6VnXCIsXG4gICAgXCLDuFwiLFxuICAgIFwiw7h5XCIsXG4gICAgXCLDpXNcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiw5h2cmVcIixcbiAgICBcIk5lZHJlXCIsXG4gICAgXCJTw7huZHJlXCIsXG4gICAgXCJHYW1sZVwiLFxuICAgIFwiw5hzdHJlXCIsXG4gICAgXCJWZXN0cmVcIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkVpa2VcIixcbiAgICBcIkJqw7hya2VcIixcbiAgICBcIkdyYW5cIixcbiAgICBcIlZhc3NcIixcbiAgICBcIkZ1cnVcIixcbiAgICBcIkxpdGpcIixcbiAgICBcIkxpbGxlXCIsXG4gICAgXCJIw7h5XCIsXG4gICAgXCJGb3NzZVwiLFxuICAgIFwiRWx2ZVwiLFxuICAgIFwiS3VcIixcbiAgICBcIktvbnZhbGxcIixcbiAgICBcIlNvbGR1Z2dcIixcbiAgICBcIkhlc3RlbXlyXCIsXG4gICAgXCJHcmFuaXR0XCIsXG4gICAgXCJIZWdnZVwiLFxuICAgIFwiUm9nbmVcIixcbiAgICBcIkZpb2xcIixcbiAgICBcIlNvbFwiLFxuICAgIFwiVGluZ1wiLFxuICAgIFwiTWFsbVwiLFxuICAgIFwiS2xva2tlclwiLFxuICAgIFwiUHJlc3RlXCIsXG4gICAgXCJEYW1cIixcbiAgICBcIkdlaXRlcnlnZ1wiLFxuICAgIFwiQmVra2VcIixcbiAgICBcIkJlcmdcIixcbiAgICBcIktpcmtlXCIsXG4gICAgXCJLb3JzXCIsXG4gICAgXCJCcnVcIixcbiAgICBcIkJsw6V2ZWlzXCIsXG4gICAgXCJUb3JnXCIsXG4gICAgXCJTasO4XCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcImFsbMOpZW5cIixcbiAgICBcImJha2tlblwiLFxuICAgIFwiYmVyZ2V0XCIsXG4gICAgXCJicsOldGVuXCIsXG4gICAgXCJlZ2dlblwiLFxuICAgIFwiZW5nZW5cIixcbiAgICBcImVrcmFcIixcbiAgICBcImZhcmV0XCIsXG4gICAgXCJmbGF0YVwiLFxuICAgIFwiZ2F0YVwiLFxuICAgIFwiZ2plcmRldFwiLFxuICAgIFwiZ3JlbmRhXCIsXG4gICAgXCJncm9wYVwiLFxuICAgIFwiaGFnZW5cIixcbiAgICBcImhhdWdlblwiLFxuICAgIFwiaGF2bmFcIixcbiAgICBcImhvbHRldFwiLFxuICAgIFwiaMO4Z2RhXCIsXG4gICAgXCJqb3JkZXRcIixcbiAgICBcImtvbGxlblwiLFxuICAgIFwia3Jva2VuXCIsXG4gICAgXCJsaWFcIixcbiAgICBcImx1bmRlblwiLFxuICAgIFwibHluZ2VuXCIsXG4gICAgXCJsw7hra2FcIixcbiAgICBcIm1hcmthXCIsXG4gICAgXCJtb2VuXCIsXG4gICAgXCJteXJhXCIsXG4gICAgXCJwbGFzc2VuXCIsXG4gICAgXCJyaW5nZW5cIixcbiAgICBcInJvYVwiLFxuICAgIFwicsO4YVwiLFxuICAgIFwic2tvZ2VuXCIsXG4gICAgXCJza3JlbnRlblwiLFxuICAgIFwic3ByYW5nZXRcIixcbiAgICBcInN0aWVuXCIsXG4gICAgXCJzdHJhbmRhXCIsXG4gICAgXCJzdHViYmVuXCIsXG4gICAgXCJzdHlra2V0XCIsXG4gICAgXCJzdmluZ2VuXCIsXG4gICAgXCJ0amVybmV0XCIsXG4gICAgXCJ0b3BwZW5cIixcbiAgICBcInR1bmV0XCIsXG4gICAgXCJ2b2xsZW5cIixcbiAgICBcInZpa2FcIixcbiAgICBcIsOlc2VuXCJcbiAgXSxcbiAgXCJjb21tb25fc3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJzZ2F0ZVwiLFxuICAgIFwic3ZlaVwiLFxuICAgIFwicyBHYXRlXCIsXG4gICAgXCJzIFZlaVwiLFxuICAgIFwiZ2F0YVwiLFxuICAgIFwidmVpZW5cIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiTGVpbC4gIyMjXCIsXG4gICAgXCJPcHBnYW5nIEFcIixcbiAgICBcIk9wcGdhbmcgQlwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjI1wiLFxuICAgIFwiMCMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9yb290fSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7c3RyZWV0X3ByZWZpeH0gI3tzdHJlZXRfcm9vdH0je3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiTm9yZ2VcIlxuICBdXG59O1xubmJfTk8uY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiR3J1cHBlblwiLFxuICAgIFwiQVNcIixcbiAgICBcIkFTQVwiLFxuICAgIFwiQkFcIixcbiAgICBcIlJGSFwiLFxuICAgIFwib2cgU8O4bm5lclwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gb2cgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xubmJfTk8uaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJub1wiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5uYl9OTy5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiRW1tYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiVGhlYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiRW1pbGllXCIsXG4gICAgXCJJbmdyaWRcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiU29maWVcIixcbiAgICBcIkFubmFcIixcbiAgICBcIk1hbGluXCIsXG4gICAgXCJBbWFsaWVcIixcbiAgICBcIlZpbGRlXCIsXG4gICAgXCJGcmlkYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJUdXZhXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJLYXJvbGluZVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hcnRpbmVcIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTWFydGVcIixcbiAgICBcIkhlZGRhXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJTaWxqZVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiRWxpc2VcIixcbiAgICBcIk9kYVwiLFxuICAgIFwiS3Jpc3RpbmVcIixcbiAgICBcIkF1cm9yYVwiLFxuICAgIFwiS2FqYVwiLFxuICAgIFwiQ2FtaWxsYVwiLFxuICAgIFwiTWFyaVwiLFxuICAgIFwiTWFyZW5cIixcbiAgICBcIk1pbmFcIixcbiAgICBcIlNlbG1hXCIsXG4gICAgXCJKZW5ueVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJFbGluZVwiLFxuICAgIFwiU3Vubml2YVwiLFxuICAgIFwiTmF0YWxpZVwiLFxuICAgIFwiVGlyaWxcIixcbiAgICBcIlN5bm5lXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIk1hZGVsZWluZVwiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXRoaWFzXCIsXG4gICAgXCJLcmlzdGlhblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkFuZHJlYXNcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiTWFnbnVzXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIlRvYmlhc1wiLFxuICAgIFwiS3Jpc3RvZmZlclwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIk1hcml1c1wiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkZyZWRyaWtcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiU29uZHJlXCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJOaWtvbGFpXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiTWF0c1wiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiRXJpa1wiLFxuICAgIFwiU2ltZW5cIixcbiAgICBcIk9sZVwiLFxuICAgIFwiRWlyaWtcIixcbiAgICBcIklzYWtcIixcbiAgICBcIkthc3BlclwiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiSm9ha2ltXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSMOla29uXCIsXG4gICAgXCJTaW5kcmVcIixcbiAgICBcIkrDuHJnZW5cIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiQW5kZXJzXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiRXZlblwiLFxuICAgIFwiVGhlb2RvclwiLFxuICAgIFwiTWlra2VsXCIsXG4gICAgXCJBa3NlbFwiXG4gIF0sXG4gIFwiZmVtaW5pbmVfbmFtZVwiOiBbXG4gICAgXCJFbW1hXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkluZ3JpZFwiLFxuICAgIFwiSGFubmFcIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJTb2ZpZVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiTWFsaW5cIixcbiAgICBcIkFtYWxpZVwiLFxuICAgIFwiVmlsZGVcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJBbmRyZWFcIixcbiAgICBcIlR1dmFcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIkthcm9saW5lXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWFydGluZVwiLFxuICAgIFwiTGlubmVhXCIsXG4gICAgXCJNYXJ0ZVwiLFxuICAgIFwiSGVkZGFcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJIZWxlbmVcIixcbiAgICBcIlNpbGplXCIsXG4gICAgXCJMZWFoXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJFbGlzZVwiLFxuICAgIFwiT2RhXCIsXG4gICAgXCJLcmlzdGluZVwiLFxuICAgIFwiQXVyb3JhXCIsXG4gICAgXCJLYWphXCIsXG4gICAgXCJDYW1pbGxhXCIsXG4gICAgXCJNYXJpXCIsXG4gICAgXCJNYXJlblwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiU2VsbWFcIixcbiAgICBcIkplbm55XCIsXG4gICAgXCJDZWxpbmVcIixcbiAgICBcIkVsaW5lXCIsXG4gICAgXCJTdW5uaXZhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJUaXJpbFwiLFxuICAgIFwiU3lubmVcIixcbiAgICBcIlNhbmRyYVwiLFxuICAgIFwiTWFkZWxlaW5lXCJcbiAgXSxcbiAgXCJtYXNjdWxpbmVfbmFtZVwiOiBbXG4gICAgXCJNYXJrdXNcIixcbiAgICBcIk1hdGhpYXNcIixcbiAgICBcIktyaXN0aWFuXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiQW5kcmVhc1wiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIlNhbmRlclwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJNYWdudXNcIixcbiAgICBcIkhlbnJpa1wiLFxuICAgIFwiVG9iaWFzXCIsXG4gICAgXCJLcmlzdG9mZmVyXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJBZHJpYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiTWFyaXVzXCIsXG4gICAgXCJFbGlhc1wiLFxuICAgIFwiRnJlZHJpa1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJTb25kcmVcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJKYWtvYlwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiT3NrYXJcIixcbiAgICBcIk5pa29sYWlcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJNYXRzXCIsXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJTaW1lblwiLFxuICAgIFwiT2xlXCIsXG4gICAgXCJFaXJpa1wiLFxuICAgIFwiSXNha1wiLFxuICAgIFwiS2FzcGVyXCIsXG4gICAgXCJOb2FoXCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJKb2FraW1cIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJIw6Vrb25cIixcbiAgICBcIlNpbmRyZVwiLFxuICAgIFwiSsO4cmdlblwiLFxuICAgIFwiSGVybWFuXCIsXG4gICAgXCJBbmRlcnNcIixcbiAgICBcIkpvbmF0aGFuXCIsXG4gICAgXCJFdmVuXCIsXG4gICAgXCJUaGVvZG9yXCIsXG4gICAgXCJNaWtrZWxcIixcbiAgICBcIkFrc2VsXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiSm9oYW5zZW5cIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiQW5kZXJzZW5cIixcbiAgICBcIktyaXN0aWFuc2VuXCIsXG4gICAgXCJMYXJzZW5cIixcbiAgICBcIk9sc2VuXCIsXG4gICAgXCJTb2xiZXJnXCIsXG4gICAgXCJBbmRyZXNlblwiLFxuICAgIFwiUGVkZXJzZW5cIixcbiAgICBcIk5pbHNlblwiLFxuICAgIFwiQmVyZ1wiLFxuICAgIFwiSGFsdm9yc2VuXCIsXG4gICAgXCJLYXJsc2VuXCIsXG4gICAgXCJTdmVuZHNlblwiLFxuICAgIFwiSmVuc2VuXCIsXG4gICAgXCJIYXVnZW5cIixcbiAgICBcIk1hcnRpbnNlblwiLFxuICAgIFwiRXJpa3NlblwiLFxuICAgIFwiU8O4cmVuc2VuXCIsXG4gICAgXCJKb2huc2VuXCIsXG4gICAgXCJNeWhyZXJcIixcbiAgICBcIkpvaGFubmVzc2VuXCIsXG4gICAgXCJOaWVsc2VuXCIsXG4gICAgXCJIYWdlblwiLFxuICAgIFwiUGV0dGVyc2VuXCIsXG4gICAgXCJCYWtrZVwiLFxuICAgIFwiU2t1dGVydWRcIixcbiAgICBcIkzDuGtlblwiLFxuICAgIFwiR3VuZGVyc2VuXCIsXG4gICAgXCJTdHJhbmRcIixcbiAgICBcIkrDuHJnZW5zZW5cIixcbiAgICBcIkt2YXJtZVwiLFxuICAgIFwiUsO4ZWRcIixcbiAgICBcIlPDpnRoZXJcIixcbiAgICBcIlN0ZW5zcnVkXCIsXG4gICAgXCJNb2VcIixcbiAgICBcIktyaXN0b2ZmZXJzZW5cIixcbiAgICBcIkpha29ic2VuXCIsXG4gICAgXCJIb2xtXCIsXG4gICAgXCJBYXNcIixcbiAgICBcIkxpZVwiLFxuICAgIFwiTW9lblwiLFxuICAgIFwiQW5kcmVhc3NlblwiLFxuICAgIFwiVmVkdmlrXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIkphY29ic2VuXCIsXG4gICAgXCJUb3JnZXJzZW5cIixcbiAgICBcIlJ1dWRcIixcbiAgICBcIktyb2doXCIsXG4gICAgXCJDaHJpc3RpYW5zZW5cIixcbiAgICBcIkJqZXJrZVwiLFxuICAgIFwiQWFsZXJ1ZFwiLFxuICAgIFwiQm9yZ2VcIixcbiAgICBcIlPDuHJsaWVcIixcbiAgICBcIkJlcmdlXCIsXG4gICAgXCLDmHN0bGlcIixcbiAgICBcIsOYZGVnw6VyZFwiLFxuICAgIFwiVG9ycFwiLFxuICAgIFwiSGVucmlrc2VuXCIsXG4gICAgXCJIYXVrZWxpZHPDpnRlclwiLFxuICAgIFwiRmplbGRcIixcbiAgICBcIkRhbmllbHNlblwiLFxuICAgIFwiQWFzZW5cIixcbiAgICBcIkZyZWRyaWtzZW5cIixcbiAgICBcIkRhaGxcIixcbiAgICBcIkJlcm50c2VuXCIsXG4gICAgXCJBcm5lc2VuXCIsXG4gICAgXCJXb2xkXCIsXG4gICAgXCJUaG9yZXNlblwiLFxuICAgIFwiU29saGVpbVwiLFxuICAgIFwiU2tvZ2x1bmRcIixcbiAgICBcIkJha2tlblwiLFxuICAgIFwiQW11bmRzZW5cIixcbiAgICBcIlNvbGxpXCIsXG4gICAgXCJTbW9nZWxpXCIsXG4gICAgXCJLcmlzdGVuc2VuXCIsXG4gICAgXCJHbG9zbGlcIixcbiAgICBcIkZvc3N1bVwiLFxuICAgIFwiRXZlbnNlblwiLFxuICAgIFwiRWlkZVwiLFxuICAgIFwiQ2FybHNlblwiLFxuICAgIFwiw5hzdGJ5XCIsXG4gICAgXCJWZWdnZVwiLFxuICAgIFwiVGFuZ2VuXCIsXG4gICAgXCJTbWVkc3J1ZFwiLFxuICAgIFwiT2xzdGFkXCIsXG4gICAgXCJMdW5kZVwiLFxuICAgIFwiS2xldmVuXCIsXG4gICAgXCJIdXNlYnlcIixcbiAgICBcIkJqw7hybnN0YWRcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJhc211c3NlblwiLFxuICAgIFwiTnlnw6VyZFwiLFxuICAgIFwiTm9yZHNrYXVnXCIsXG4gICAgXCJOb3JkYnlcIixcbiAgICBcIk1hdGhpc2VuXCIsXG4gICAgXCJIb3BsYW5kXCIsXG4gICAgXCJHcmFuXCIsXG4gICAgXCJGaW5zdGFkXCIsXG4gICAgXCJFZHZhcmRzZW5cIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJEci5cIixcbiAgICBcIlByb2YuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiSnIuXCIsXG4gICAgXCJTci5cIixcbiAgICBcIklcIixcbiAgICBcIklJXCIsXG4gICAgXCJJSUlcIixcbiAgICBcIklWXCIsXG4gICAgXCJWXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje2ZlbWluaW5lX25hbWV9ICN7ZmVtaW5pbmVfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje21hc2N1bGluZV9uYW1lfSAje21hc2N1bGluZV9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xubmJfTk8ucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjIyMjIyNcIixcbiAgICBcIiMjICMjICMjICMjXCIsXG4gICAgXCIjIyMgIyMgIyMjXCIsXG4gICAgXCIrNDcgIyMgIyMgIyMgIyNcIlxuICBdXG59O1xuIiwidmFyIG5lcCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IG5lcDtcbm5lcC50aXRsZSA9IFwiTmVwYWxlc2VcIjtcbm5lcC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyYXZcIixcbiAgICBcIkFqaXRhXCIsXG4gICAgXCJBbWl0XCIsXG4gICAgXCJBbWl0YVwiLFxuICAgIFwiQW1yaXRcIixcbiAgICBcIkFyaWppdFwiLFxuICAgIFwiQXNobWlcIixcbiAgICBcIkFzbWl0YVwiLFxuICAgIFwiQmliZWtcIixcbiAgICBcIkJpamF5XCIsXG4gICAgXCJCaWthc2hcIixcbiAgICBcIkJpbmFcIixcbiAgICBcIkJpc2hhbFwiLFxuICAgIFwiQmlzaG51XCIsXG4gICAgXCJCdWRkaGFcIixcbiAgICBcIkRlZXBpa2FcIixcbiAgICBcIkRpcGVuZHJhXCIsXG4gICAgXCJHYWdhblwiLFxuICAgIFwiR2FuZXNoXCIsXG4gICAgXCJLaGVtXCIsXG4gICAgXCJLcmlzaG5hXCIsXG4gICAgXCJMYXhtaVwiLFxuICAgIFwiTWFuaXNoYVwiLFxuICAgIFwiTmFiaW5cIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlyYWpcIixcbiAgICBcIk5pc2NoYWxcIixcbiAgICBcIlBhZGFtXCIsXG4gICAgXCJQb29qYVwiLFxuICAgIFwiUHJhYmluXCIsXG4gICAgXCJQcmFrYXNoXCIsXG4gICAgXCJQcmFzaGFudFwiLFxuICAgIFwiUHJlbVwiLFxuICAgIFwiUHVybmFcIixcbiAgICBcIlJhamVuZHJhXCIsXG4gICAgXCJSYWppbmFcIixcbiAgICBcIlJhanVcIixcbiAgICBcIlJha2VzaFwiLFxuICAgIFwiUmFuamFuXCIsXG4gICAgXCJSYXRuYVwiLFxuICAgIFwiU2FnYXJcIixcbiAgICBcIlNhbmRlZXBcIixcbiAgICBcIlNhbmpheVwiLFxuICAgIFwiU2FudG9zaFwiLFxuICAgIFwiU2FyaXRhXCIsXG4gICAgXCJTaGlscGFcIixcbiAgICBcIlNoaXJpc2hhXCIsXG4gICAgXCJTaHJpc3RpXCIsXG4gICAgXCJTaWRkaGFydGhhXCIsXG4gICAgXCJTdWJhc2hcIixcbiAgICBcIlN1bWVldFwiLFxuICAgIFwiU3VuaXRhXCIsXG4gICAgXCJTdXJhalwiLFxuICAgIFwiU3VzYW5cIixcbiAgICBcIlN1c2hhbnRcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBZGhpa2FyaVwiLFxuICAgIFwiQXJ5YWxcIixcbiAgICBcIkJhcmFsXCIsXG4gICAgXCJCYXNuZXRcIixcbiAgICBcIkJhc3RvbGFcIixcbiAgICBcIkJhc3luYXRcIixcbiAgICBcIkJoYW5kYXJpXCIsXG4gICAgXCJCaGF0dGFyYWlcIixcbiAgICBcIkNoZXR0cmlcIixcbiAgICBcIkRldmtvdGFcIixcbiAgICBcIkRoYWthbFwiLFxuICAgIFwiRG9uZ29sXCIsXG4gICAgXCJHaGFsZVwiLFxuICAgIFwiR3VydW5nXCIsXG4gICAgXCJHeWF3YWxpXCIsXG4gICAgXCJIYW1hbFwiLFxuICAgIFwiSnVuZ1wiLFxuICAgIFwiS0NcIixcbiAgICBcIkthZmxlXCIsXG4gICAgXCJLYXJraVwiLFxuICAgIFwiS2hhZGthXCIsXG4gICAgXCJLb2lyYWxhXCIsXG4gICAgXCJMYW1hXCIsXG4gICAgXCJMaW1idVwiLFxuICAgIFwiTWFnYXJcIixcbiAgICBcIk1haGFyamFuXCIsXG4gICAgXCJOaXJvdWxhXCIsXG4gICAgXCJQYW5kZXlcIixcbiAgICBcIlByYWRoYW5cIixcbiAgICBcIlJhbmFcIixcbiAgICBcIlJhdXRcIixcbiAgICBcIlNhaVwiLFxuICAgIFwiU2hhaVwiLFxuICAgIFwiU2hha3lhXCIsXG4gICAgXCJTaGVycGFcIixcbiAgICBcIlNocmVzdGhhXCIsXG4gICAgXCJTdWJlZGlcIixcbiAgICBcIlRhbWFuZ1wiLFxuICAgIFwiVGhhcGFcIlxuICBdXG59O1xubmVwLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIDBcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCYWdsdW5nXCIsXG4gICAgXCJCYW5rZVwiLFxuICAgIFwiQmFyYVwiLFxuICAgIFwiQmFyZGl5YVwiLFxuICAgIFwiQmhha3RhcHVyXCIsXG4gICAgXCJCaG9qdXB1XCIsXG4gICAgXCJDaGl0d2FuXCIsXG4gICAgXCJEYWlsZWtoXCIsXG4gICAgXCJEYW5nXCIsXG4gICAgXCJEaGFkaW5nXCIsXG4gICAgXCJEaGFua3V0YVwiLFxuICAgIFwiRGhhbnVzYVwiLFxuICAgIFwiRG9sYWtoYVwiLFxuICAgIFwiRG9scGhhXCIsXG4gICAgXCJHb3JraGFcIixcbiAgICBcIkd1bG1pXCIsXG4gICAgXCJIdW1sYVwiLFxuICAgIFwiSWxhbVwiLFxuICAgIFwiSmFqYXJrb3RcIixcbiAgICBcIkpoYXBhXCIsXG4gICAgXCJKdW1sYVwiLFxuICAgIFwiS2FiaHJlcGFsYW5jaG9rXCIsXG4gICAgXCJLYWxpa290XCIsXG4gICAgXCJLYXBpbHZhc3R1XCIsXG4gICAgXCJLYXNraVwiLFxuICAgIFwiS2F0aG1hbmR1XCIsXG4gICAgXCJMYWxpdHB1clwiLFxuICAgIFwiTGFtanVuZ1wiLFxuICAgIFwiTWFuYW5nXCIsXG4gICAgXCJNb2hvdHRhcmlcIixcbiAgICBcIk1vcmFuZ1wiLFxuICAgIFwiTXVndVwiLFxuICAgIFwiTXVzdGFuZ1wiLFxuICAgIFwiTXlhZ2RpXCIsXG4gICAgXCJOYXdhbHBhcmFzaVwiLFxuICAgIFwiTnV3YWtvdFwiLFxuICAgIFwiUGFscGFcIixcbiAgICBcIlBhcmJhdFwiLFxuICAgIFwiUGFyc2FcIixcbiAgICBcIlJhbWVjaGhhcFwiLFxuICAgIFwiUmF1c3dhXCIsXG4gICAgXCJSYXV0YWhhdFwiLFxuICAgIFwiUm9scGFcIixcbiAgICBcIlJ1cGFuZGVoaVwiLFxuICAgIFwiU2Fua2h1d2FzYWJoYVwiLFxuICAgIFwiU2FybGFoaVwiLFxuICAgIFwiU2luZGh1bGlcIixcbiAgICBcIlNpbmRodXBhbGNob2tcIixcbiAgICBcIlN1bnNhcmlcIixcbiAgICBcIlN1cmtldFwiLFxuICAgIFwiU3lhbmdqYVwiLFxuICAgIFwiVGFuYWh1XCIsXG4gICAgXCJUZXJoYXRodW1cIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiQmhha3RhcHVyXCIsXG4gICAgXCJCaXJhdG5hZ2FyXCIsXG4gICAgXCJCaXJlbmRyYW5hZ2FyXCIsXG4gICAgXCJCaXJndW5qXCIsXG4gICAgXCJCdXR3YWxcIixcbiAgICBcIkRhbWFrXCIsXG4gICAgXCJEaGFyYW5cIixcbiAgICBcIkdhdXJcIixcbiAgICBcIkdvcmtoYVwiLFxuICAgIFwiSGV0YXVkYVwiLFxuICAgIFwiSXRhaGFyaVwiLFxuICAgIFwiSmFuYWtwdXJcIixcbiAgICBcIkthdGhtYW5kdVwiLFxuICAgIFwiTGFoYW5cIixcbiAgICBcIk5lcGFsZ3VualwiLFxuICAgIFwiUG9raGFyYVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIk5lcGFsXCJcbiAgXVxufTtcbm5lcC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcIndvcmxkbGluay5jb20ubnBcIixcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJucFwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5uZXAuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHZ0IEx0ZFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkx0ZFwiLFxuICAgIFwiTGltaXRlZFwiXG4gIF1cbn07XG5uZXAucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMtIyMjIyMjI1wiLFxuICAgIFwiKzk3Ny0jLSMjIyMjIyNcIixcbiAgICBcIis5NzcjIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgbmwgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBubDtcbm5sLnRpdGxlID0gXCJEdXRjaFwiO1xubmwuYWRkcmVzcyA9IHtcbiAgXCJjaXR5X3ByZWZpeFwiOiBbXG4gICAgXCJOb29yZFwiLFxuICAgIFwiT29zdFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiWnVpZFwiLFxuICAgIFwiTmlldXdcIixcbiAgICBcIk91ZFwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiZGFtXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCIgYWFuIGRlIFJpam5cIixcbiAgICBcIiBhYW4gZGUgSUpzc2VsXCIsXG4gICAgXCJzd2FlcmRcIixcbiAgICBcImVuZHJlY2h0XCIsXG4gICAgXCJyZWNodFwiLFxuICAgIFwiYW1iYWNodFwiLFxuICAgIFwiZW5tYWVzXCIsXG4gICAgXCJ3aWprXCIsXG4gICAgXCJzbGFuZFwiLFxuICAgIFwic3Ryb29tXCIsXG4gICAgXCJzbHV1c1wiLFxuICAgIFwiZGlqa1wiLFxuICAgIFwiZG9ycFwiLFxuICAgIFwiYnVyZ1wiLFxuICAgIFwidmVsZFwiLFxuICAgIFwic2x1aXNcIixcbiAgICBcImtvb3BcIixcbiAgICBcImxla1wiLFxuICAgIFwiaG91dFwiLFxuICAgIFwiZ2Vlc3RcIixcbiAgICBcImtlcmtcIixcbiAgICBcIndvdWRlXCIsXG4gICAgXCJob3ZlblwiLFxuICAgIFwiaG90ZW5cIixcbiAgICBcImluZ2VuXCIsXG4gICAgXCJwbGFzXCIsXG4gICAgXCJtZWVyXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWtyb3RpcmlcIixcbiAgICBcIkFsYmFuacOrXCIsXG4gICAgXCJBbGdlcmlqZVwiLFxuICAgIFwiQW1lcmlrYWFuc2UgTWFhZ2RlbmVpbGFuZGVuXCIsXG4gICAgXCJBbWVyaWthYW5zLVNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcmN0aWNhXCIsXG4gICAgXCJBbnRpZ3VhIGVuIEJhcmJ1ZGFcIixcbiAgICBcIkFyY3RpYyBPY2VhblwiLFxuICAgIFwiQXJnZW50aW5pw6tcIixcbiAgICBcIkFybWVuacOrXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXNobW9yZSBhbmQgQ2FydGllciBJc2xhbmRzXCIsXG4gICAgXCJBdGxhbnRpYyBPY2VhblwiLFxuICAgIFwiQXVzdHJhbGnDq1wiLFxuICAgIFwiQXplcmJlaWR6amFuXCIsXG4gICAgXCJCYWhhbWEnc1wiLFxuICAgIFwiQmFocmVpblwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJlbGFydXNcIixcbiAgICBcIkJlbGdpw6tcIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkJlcm11ZGFcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpw6tcIixcbiAgICBcIkJvc25pw6stSGVyemVnb3ZpbmFcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCb3V2ZXQgSXNsYW5kXCIsXG4gICAgXCJCcmF6aWxpw6tcIixcbiAgICBcIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeVwiLFxuICAgIFwiQnJpdHNlIE1hYWdkZW5laWxhbmRlblwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJCdWxnYXJpamVcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2FtYm9kamFcIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2F5bWFuZWlsYW5kZW5cIixcbiAgICBcIkNlbnRyYWFsLUFmcmlrYWFuc2UgUmVwdWJsaWVrXCIsXG4gICAgXCJDaGlsaVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIkNocmlzdG1hcyBJc2xhbmRcIixcbiAgICBcIkNsaXBwZXJ0b24gSXNsYW5kXCIsXG4gICAgXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9yZW4gKFVuaWUpXCIsXG4gICAgXCJDb25nbyAoRGVtb2NyYXRpc2NoZSBSZXB1YmxpZWspXCIsXG4gICAgXCJDb25nbyAoVm9sa3NyZXB1YmxpZWspXCIsXG4gICAgXCJDb29rXCIsXG4gICAgXCJDb3JhbCBTZWEgSXNsYW5kc1wiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiQ3ViYVwiLFxuICAgIFwiQ3lwcnVzXCIsXG4gICAgXCJEZW5lbWFya2VuXCIsXG4gICAgXCJEaGVrZWxpYVwiLFxuICAgIFwiRGppYm91dGlcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJEb21pbmljYWFuc2UgUmVwdWJsaWVrXCIsXG4gICAgXCJEdWl0c2xhbmRcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVneXB0ZVwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIkVxdWF0b3JpYWFsLUd1aW5lYVwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0bGFuZFwiLFxuICAgIFwiRXRoaW9wacOrXCIsXG4gICAgXCJFdXJvcGVhbiBVbmlvblwiLFxuICAgIFwiRmFsa2xhbmRcIixcbiAgICBcIkZhcm9lIElzbGFuZHNcIixcbiAgICBcIkZpamlcIixcbiAgICBcIkZpbGlwaWpuZW5cIixcbiAgICBcIkZpbmxhbmRcIixcbiAgICBcIkZyYW5rcmlqa1wiLFxuICAgIFwiRnJhbnMtUG9seW5lc2nDq1wiLFxuICAgIFwiRnJlbmNoIFNvdXRoZXJuIGFuZCBBbnRhcmN0aWMgTGFuZHNcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdhemEgU3RyaXBcIixcbiAgICBcIkdlb3JnacOrXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR2licmFsdGFyXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcmlla2VubGFuZFwiLFxuICAgIFwiR3JvZW5sYW5kXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lZS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGHDr3RpXCIsXG4gICAgXCJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHNcIixcbiAgICBcIkhlaWxpZ2UgU3RvZWxcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nYXJpamVcIixcbiAgICBcIkhvbmdrb25nXCIsXG4gICAgXCJJZXJsYW5kXCIsXG4gICAgXCJJSnNsYW5kXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWFuIE9jZWFuXCIsXG4gICAgXCJJbmRvbmVzacOrXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJc2xlIG9mIE1hblwiLFxuICAgIFwiSXNyYcOrbFwiLFxuICAgIFwiSXRhbGnDq1wiLFxuICAgIFwiSXZvb3JrdXN0XCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJKYW4gTWF5ZW5cIixcbiAgICBcIkphcGFuXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3JkYW5pw6tcIixcbiAgICBcIkthYXB2ZXJkacOrXCIsXG4gICAgXCJLYW1lcm9lblwiLFxuICAgIFwiS2F6YWNoc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpenN0YW5cIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLb2V3ZWl0XCIsXG4gICAgXCJLcm9hdGnDq1wiLFxuICAgIFwiTGFvc1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGV0bGFuZFwiLFxuICAgIFwiTGliYW5vblwiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGliacOrXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXRvdXdlblwiLFxuICAgIFwiTHV4ZW1idXJnXCIsXG4gICAgXCJNYWNhb1wiLFxuICAgIFwiTWFjZWRvbmnDq1wiLFxuICAgIFwiTWFkYWdhc2thclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxkaXZlblwiLFxuICAgIFwiTWFsZWlzacOrXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2trb1wiLFxuICAgIFwiTWFyc2hhbGwgSXNsYW5kc1wiLFxuICAgIFwiTWF1cml0YW5pw6tcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTWV4aWNvXCIsXG4gICAgXCJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mXCIsXG4gICAgXCJNb2xkYXZpw6tcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29sacOrXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3phbWJpcXVlXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmnDq1wiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5hdmFzc2EgSXNsYW5kXCIsXG4gICAgXCJOZWRlcmxhbmRcIixcbiAgICBcIk5lZGVybGFuZHNlIEFudGlsbGVuXCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmd3YW5lXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZXV3LUNhbGVkb25pw6tcIixcbiAgICBcIk5pZXV3LVplZWxhbmRcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJOb29yZGVsaWprZSBNYXJpYW5lblwiLFxuICAgIFwiTm9vcmQtS29yZWFcIixcbiAgICBcIk5vb3J3ZWdlblwiLFxuICAgIFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICBcIk9la3Jhw69uZVwiLFxuICAgIFwiT2V6YmVraXN0YW5cIixcbiAgICBcIk9tYW5cIixcbiAgICBcIk9vc3RlbnJpamtcIixcbiAgICBcIlBhY2lmaWMgT2NlYW5cIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXBvZWEtTmlldXctR3VpbmVhXCIsXG4gICAgXCJQYXJhY2VsIElzbGFuZHNcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQaXRjYWlyblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIlJvZW1lbmnDq1wiLFxuICAgIFwiUnVzbGFuZFwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJTYWludCBIZWxlbmFcIixcbiAgICBcIlNhaW50IEx1Y2lhXCIsXG4gICAgXCJTYWludCBWaW5jZW50IGVuIGRlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhaW50LVBpZXJyZSBlbiBNaXF1ZWxvblwiLFxuICAgIFwiU2Fsb21vblwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlPDo28gVG9tw6kgZW4gUHJpbmNpcGVcIixcbiAgICBcIlNhdWRpLUFyYWJpw6tcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNlcnZpw6tcIixcbiAgICBcIlNleWNoZWxsZW5cIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTaW50LUtpdHRzIGVuIE5ldmlzXCIsXG4gICAgXCJTbG92ZW5pw6tcIixcbiAgICBcIlNsb3dha2lqZVwiLFxuICAgIFwiU29lZGFuXCIsXG4gICAgXCJTb21hbGnDq1wiLFxuICAgIFwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNvdXRoZXJuIE9jZWFuXCIsXG4gICAgXCJTcGFuamVcIixcbiAgICBcIlNwcmF0bHkgSXNsYW5kc1wiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmRcIixcbiAgICBcIlN5cmnDq1wiLFxuICAgIFwiVGFkemppa2lzdGFuXCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIlRhbnphbmlhXCIsXG4gICAgXCJUaGFpbGFuZFwiLFxuICAgIFwiVGltb3IgTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCBlbiBUb2JhZ29cIixcbiAgICBcIlRzamFhZFwiLFxuICAgIFwiVHNqZWNoacOrXCIsXG4gICAgXCJUdW5lc2nDq1wiLFxuICAgIFwiVHVya2lqZVwiLFxuICAgIFwiVHVya21lbmlzdGFuXCIsXG4gICAgXCJUdXJrcy1lbiBDYWljb3NlaWxhbmRlblwiLFxuICAgIFwiVHV2YWx1XCIsXG4gICAgXCJVZ2FuZGFcIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVyZW5pZ2QgS29uaW5rcmlqa1wiLFxuICAgIFwiVmVyZW5pZ2RlIEFyYWJpc2NoZSBFbWlyYXRlblwiLFxuICAgIFwiVmVyZW5pZ2RlIFN0YXRlbiB2YW4gQW1lcmlrYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiV2FrZSBJc2xhbmRcIixcbiAgICBcIldhbGxpcyBlbiBGdXR1bmFcIixcbiAgICBcIldlcmVsZFwiLFxuICAgIFwiV2VzdCBCYW5rXCIsXG4gICAgXCJXZXN0ZWxpamtlIFNhaGFyYVwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiWnVpZC1BZnJpa2FcIixcbiAgICBcIlp1aWQtS29yZWFcIixcbiAgICBcIlp3ZWRlblwiLFxuICAgIFwiWndpdHNlcmxhbmRcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiLFxuICAgIFwiIyMjXCIsXG4gICAgXCIjIyNhXCIsXG4gICAgXCIjIyNiXCIsXG4gICAgXCIjIyNjXCIsXG4gICAgXCIjIyMgSVwiLFxuICAgIFwiIyMjIElJXCIsXG4gICAgXCIjIyMgSUlJXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcInN0cmFhdFwiLFxuICAgIFwibGFhblwiLFxuICAgIFwid2VnXCIsXG4gICAgXCJwbGFudHNvZW5cIixcbiAgICBcInBhcmtcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIjEgaG9vZ1wiLFxuICAgIFwiMiBob29nXCIsXG4gICAgXCIzIGhvb2dcIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tzdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjID8/XCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJOb29yZC1Ib2xsYW5kXCIsXG4gICAgXCJadWlkLUhvbGxhbmRcIixcbiAgICBcIlV0cmVjaHRcIixcbiAgICBcIlplZWxhbmRcIixcbiAgICBcIk92ZXJpanNzZWxcIixcbiAgICBcIkdlbGRlcmxhbmRcIixcbiAgICBcIkRyZW50aGVcIixcbiAgICBcIkZyaWVzbGFuZFwiLFxuICAgIFwiR3JvbmluZ2VuXCIsXG4gICAgXCJOb29yZC1CcmFiYW50XCIsXG4gICAgXCJMaW1idXJnXCIsXG4gICAgXCJGbGV2b2xhbmRcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJOZWRlcmxhbmRcIlxuICBdXG59O1xubmwuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiQlZcIixcbiAgICBcIlYuTy5GLlwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcImVuIFpvbmVuXCJcbiAgXVxufTtcbm5sLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcIm5sXCIsXG4gICAgXCJjb21cIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbm5sLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xubmwubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFtYmVyXCIsXG4gICAgXCJBbm5hXCIsXG4gICAgXCJBbm5lXCIsXG4gICAgXCJBbm91a1wiLFxuICAgIFwiQmFzXCIsXG4gICAgXCJCcmFtXCIsXG4gICAgXCJCcml0dFwiLFxuICAgIFwiRGFhblwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJGZW1rZVwiLFxuICAgIFwiRmlublwiLFxuICAgIFwiRmxldXJcIixcbiAgICBcIklyaXNcIixcbiAgICBcIklzYVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpheWRlblwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiTGlla2VcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxvdHRlXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiTHV1a1wiLFxuICAgIFwiTWF1ZFwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNaWtlXCIsXG4gICAgXCJNaWxhblwiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmllbHNcIixcbiAgICBcIk5vYVwiLFxuICAgIFwiUmlja1wiLFxuICAgIFwiUm9vc1wiLFxuICAgIFwiUnViZW5cIixcbiAgICBcIlNhbmRlclwiLFxuICAgIFwiU2FubmVcIixcbiAgICBcIlNlbVwiLFxuICAgIFwiU29waGllXCIsXG4gICAgXCJTdGlqblwiLFxuICAgIFwiU3ZlblwiLFxuICAgIFwiVGhpanNcIixcbiAgICBcIlRoaWpzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRpbVwiLFxuICAgIFwiVG9tXCJcbiAgXSxcbiAgXCJ0dXNzZW52b2Vnc2VsXCI6IFtcbiAgICBcInZhblwiLFxuICAgIFwidmFuIGRlXCIsXG4gICAgXCJ2YW4gZGVuXCIsXG4gICAgXCJ2YW4gJ3RcIixcbiAgICBcInZhbiBoZXRcIixcbiAgICBcImRlXCIsXG4gICAgXCJkZW5cIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJCYWtrZXJcIixcbiAgICBcIkJlZWtcIixcbiAgICBcIkJlcmdcIixcbiAgICBcIkJvZXJcIixcbiAgICBcIkJvc1wiLFxuICAgIFwiQm9zY2hcIixcbiAgICBcIkJyaW5rXCIsXG4gICAgXCJCcm9la1wiLFxuICAgIFwiQnJvdXdlclwiLFxuICAgIFwiQnJ1aW5cIixcbiAgICBcIkRhbVwiLFxuICAgIFwiRGVra2VyXCIsXG4gICAgXCJEaWprXCIsXG4gICAgXCJEaWprc3RyYVwiLFxuICAgIFwiR3JhYWZcIixcbiAgICBcIkdyb290XCIsXG4gICAgXCJIYWFuXCIsXG4gICAgXCJIZW5kcmlrc1wiLFxuICAgIFwiSGV1dmVsXCIsXG4gICAgXCJIb2VrXCIsXG4gICAgXCJKYWNvYnNcIixcbiAgICBcIkphbnNlblwiLFxuICAgIFwiSmFuc3NlblwiLFxuICAgIFwiSm9uZ1wiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktva1wiLFxuICAgIFwiS29uaW5nXCIsXG4gICAgXCJLb3N0ZXJcIixcbiAgICBcIkxlZXV3ZW5cIixcbiAgICBcIkxpbmRlblwiLFxuICAgIFwiTWFhc1wiLFxuICAgIFwiTWVlclwiLFxuICAgIFwiTWVpamVyXCIsXG4gICAgXCJNdWxkZXJcIixcbiAgICBcIlBldGVyc1wiLFxuICAgIFwiUnVpdGVyXCIsXG4gICAgXCJTY2hvdXRlblwiLFxuICAgIFwiU21pdFwiLFxuICAgIFwiU21pdHNcIixcbiAgICBcIlN0aWNodGluZ1wiLFxuICAgIFwiVmVlblwiLFxuICAgIFwiVmVuXCIsXG4gICAgXCJWZXJtZXVsZW5cIixcbiAgICBcIlZpc3NlclwiLFxuICAgIFwiVmxpZXRcIixcbiAgICBcIlZvc1wiLFxuICAgIFwiVnJpZXNcIixcbiAgICBcIldhbFwiLFxuICAgIFwiV2lsbGVtc1wiLFxuICAgIFwiV2l0XCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiRGhyLlwiLFxuICAgIFwiTWV2ci4gRHIuXCIsXG4gICAgXCJCc2NcIixcbiAgICBcIk1zY1wiLFxuICAgIFwiUHJvZi5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJKci5cIixcbiAgICBcIlNyLlwiLFxuICAgIFwiSVwiLFxuICAgIFwiSUlcIixcbiAgICBcIklJSVwiLFxuICAgIFwiSVZcIixcbiAgICBcIlZcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje3R1c3NlbnZvZWdzZWx9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje3R1c3NlbnZvZWdzZWx9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5ubC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIoIyMjIykgIyMjIyMjXCIsXG4gICAgXCIjIyMjIyMjIyMjXCIsXG4gICAgXCIwNiMjIyMjIyMjXCIsXG4gICAgXCIwNiAjIyMjICMjIyNcIlxuICBdXG59O1xuIiwidmFyIHBsID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gcGw7XG5wbC50aXRsZSA9IFwiUG9saXNoXCI7XG5wbC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFicmFoYW1cIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQXRhbmF6eVwiLFxuICAgIFwiQWdhdG9uXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsZWtzYW5kZXJcIixcbiAgICBcIkFsZWtzeVwiLFxuICAgIFwiQWxmcmVkXCIsXG4gICAgXCJBbHdhclwiLFxuICAgIFwiQW1icm/FvHlcIixcbiAgICBcIkFuYXRvbFwiLFxuICAgIFwiQW5kcnplalwiLFxuICAgIFwiQW50b25pXCIsXG4gICAgXCJBcG9sbGluYXJ5XCIsXG4gICAgXCJBcG9sbG9cIixcbiAgICBcIkFya2FkeVwiLFxuICAgIFwiQXJrYWRpdXN6XCIsXG4gICAgXCJBcmNoaWJhbGRcIixcbiAgICBcIkFyeXN0YXJjaFwiLFxuICAgIFwiQXJub2xkXCIsXG4gICAgXCJBcnNlbml1c3pcIixcbiAgICBcIkFydHVyXCIsXG4gICAgXCJBdWd1c3RcIixcbiAgICBcIkJhbGR3aW5cIixcbiAgICBcIkJhenlsaVwiLFxuICAgIFwiQmVuZWR5a3RcIixcbiAgICBcIkJlbmlhbWluXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJCZXJ0cmFuZFwiLFxuICAgIFwiQmVydHJhbVwiLFxuICAgIFwiQm9yeXNcIixcbiAgICBcIkJyYWphblwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkNlemFyeVwiLFxuICAgIFwiQ2VjeWxpdXN6XCIsXG4gICAgXCJLYXJvbFwiLFxuICAgIFwiS3J5c3RpYW5cIixcbiAgICBcIktyenlzenRvZlwiLFxuICAgIFwiS2xhcmVuY2p1c3pcIixcbiAgICBcIktsYXVkaXVzelwiLFxuICAgIFwiS2xlbWVuc1wiLFxuICAgIFwiS29ucmFkXCIsXG4gICAgXCJLb25zdGFudHlcIixcbiAgICBcIktvbnN0YW50eW5cIixcbiAgICBcIktvcm5lbFwiLFxuICAgIFwiS29ybmVsaXVzelwiLFxuICAgIFwiS29ybmVsaVwiLFxuICAgIFwiQ3lyeWxcIixcbiAgICBcIkN5cnVzXCIsXG4gICAgXCJEYW1pYW5cIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFyaXVzelwiLFxuICAgIFwiRGF3aWRcIixcbiAgICBcIkRpb25penlcIixcbiAgICBcIkRlbWV0cml1c3pcIixcbiAgICBcIkRvbWluaWtcIixcbiAgICBcIkRvbmFsZFwiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWRtdW5kXCIsXG4gICAgXCJFZHdhcmRcIixcbiAgICBcIkVkd2luXCIsXG4gICAgXCJFZnJlbVwiLFxuICAgIFwiRWZyYWltXCIsXG4gICAgXCJFbGlhc3pcIixcbiAgICBcIkVsZWF6YXJcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVyYXN0XCIsXG4gICAgXCJFcm5lc3RcIixcbiAgICBcIkV1Z2VuaXVzelwiLFxuICAgIFwiRXVzdHJhY2p1c3pcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmVsaWtzXCIsXG4gICAgXCJGbG9yaWFuXCIsXG4gICAgXCJGcmFuY2lzemVrXCIsXG4gICAgXCJGcnlkZXJ5a1wiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2VkZW9uXCIsXG4gICAgXCJHYWxmcnlkXCIsXG4gICAgXCJKZXJ6eVwiLFxuICAgIFwiR2VyYWxkXCIsXG4gICAgXCJHZXJhenltXCIsXG4gICAgXCJHaWxiZXJ0XCIsXG4gICAgXCJHb25zYWx3eVwiLFxuICAgIFwiR3J6ZWdvcnpcIixcbiAgICBcIkd3aWRvXCIsXG4gICAgXCJIYXJhbGRcIixcbiAgICBcIkhlbnJ5a1wiLFxuICAgIFwiSGVyYmVydFwiLFxuICAgIFwiSGVybWFuXCIsXG4gICAgXCJIaWxhcnlcIixcbiAgICBcIkhvcmFjeVwiLFxuICAgIFwiSHViZXJ0XCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJJZ25hY3lcIixcbiAgICBcIklnb3JcIixcbiAgICBcIkhpbGFyaW9uXCIsXG4gICAgXCJJbm5vY2VudHlcIixcbiAgICBcIkhpcG9saXRcIixcbiAgICBcIklyZW5ldXN6XCIsXG4gICAgXCJFcndpblwiLFxuICAgIFwiSXphYWtcIixcbiAgICBcIkl6YWphc3pcIixcbiAgICBcIkl6eWRvclwiLFxuICAgIFwiSmFrdWJcIixcbiAgICBcIkplcmVtaVwiLFxuICAgIFwiSmVyZW1pYXN6XCIsXG4gICAgXCJIaWVyb25pbVwiLFxuICAgIFwiR2VyYWxkXCIsXG4gICAgXCJKb2FjaGltXCIsXG4gICAgXCJKYW5cIixcbiAgICBcIkphbnVzelwiLFxuICAgIFwiSm9uYXRhblwiLFxuICAgIFwiSsOzemVmXCIsXG4gICAgXCJKb3p1ZVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJKdWxpdXN6XCIsXG4gICAgXCJKdXN0eW5cIixcbiAgICBcIkthbGlzdHJhdFwiLFxuICAgIFwiS2F6aW1pZXJ6XCIsXG4gICAgXCJXYXdyenluaWVjXCIsXG4gICAgXCJMYXVyZW50eVwiLFxuICAgIFwiTGF1cmVuY2p1c3pcIixcbiAgICBcIsWBYXphcnpcIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25pZFwiLFxuICAgIFwiTGVvblwiLFxuICAgIFwiTHVkd2lrXCIsXG4gICAgXCLFgXVrYXN6XCIsXG4gICAgXCJMdWNqYW5cIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFrYXJ5XCIsXG4gICAgXCJNYXJjZWxpXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFyY2luXCIsXG4gICAgXCJNYXRldXN6XCIsXG4gICAgXCJNYXVyeWN5XCIsXG4gICAgXCJNYWtzeW1cIixcbiAgICBcIk1ha3N5bWlsaWFuXCIsXG4gICAgXCJNaWNoYcWCXCIsXG4gICAgXCJNaXJvblwiLFxuICAgIFwiTW9kZXN0XCIsXG4gICAgXCJNb2rFvGVzelwiLFxuICAgIFwiTmF0YW5cIixcbiAgICBcIk5hdGFuYWVsXCIsXG4gICAgXCJOYXphcml1c3pcIixcbiAgICBcIk5hemFyeVwiLFxuICAgIFwiTmVzdG9yXCIsXG4gICAgXCJNaWtvxYJhalwiLFxuICAgIFwiTmlrb2RlbVwiLFxuICAgIFwiT2xhZlwiLFxuICAgIFwiT2xlZ1wiLFxuICAgIFwiT2xpd2llclwiLFxuICAgIFwiT251ZnJ5XCIsXG4gICAgXCJPcmVzdGVzXCIsXG4gICAgXCJPc2thclwiLFxuICAgIFwiQW5zZ2FyeVwiLFxuICAgIFwiT3NtdW5kXCIsXG4gICAgXCJQYW5rcmFjeVwiLFxuICAgIFwiUGFudGFsZW9uXCIsXG4gICAgXCJQYXRyeWtcIixcbiAgICBcIlBhdHJ5Y2p1c3pcIixcbiAgICBcIlBhdHJ5Y3lcIixcbiAgICBcIlBhd2XFglwiLFxuICAgIFwiUGlvdHJcIixcbiAgICBcIkZpbGVtb25cIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJQbGF0b25cIixcbiAgICBcIlBvbGlrYXJwXCIsXG4gICAgXCJQb3JmaXJ5XCIsXG4gICAgXCJQb3JmaXJpdXN6XCIsXG4gICAgXCJQcm9rbGVzXCIsXG4gICAgXCJQcm9rdWxcIixcbiAgICBcIlByb2tvcFwiLFxuICAgIFwiS3dpbnR5blwiLFxuICAgIFwiUmFuZG9sZlwiLFxuICAgIFwiUmFmYcWCXCIsXG4gICAgXCJSYWptdW5kXCIsXG4gICAgXCJSZWdpbmFsZFwiLFxuICAgIFwiUmFqbm9sZFwiLFxuICAgIFwiUnlzemFyZFwiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2RlcnlrXCIsXG4gICAgXCJSb2dlclwiLFxuICAgIFwiUm9sYW5kXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiUm9tZW9cIixcbiAgICBcIlJlZ2luYWxkXCIsXG4gICAgXCJSdWRvbGZcIixcbiAgICBcIlNhbXNvblwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYWx3YXRvclwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZXJhZmluXCIsXG4gICAgXCJTZXJnaXVzelwiLFxuICAgIFwiU2V3ZXJ5blwiLFxuICAgIFwiWnlnbXVudFwiLFxuICAgIFwiU3lsd2VzdGVyXCIsXG4gICAgXCJTenltb25cIixcbiAgICBcIlNhbG9tb25cIixcbiAgICBcIlNwaXJ5ZGlvblwiLFxuICAgIFwiU3RhbmlzxYJhd1wiLFxuICAgIFwiU3pjemVwYW5cIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiVGVyZW5janVzelwiLFxuICAgIFwiVGVvZG9yXCIsXG4gICAgXCJUb21hc3pcIixcbiAgICBcIlR5bW90ZXVzelwiLFxuICAgIFwiVG9iaWFzelwiLFxuICAgIFwiV2FsZW50eVwiLFxuICAgIFwiV2FsZW50eW5cIixcbiAgICBcIldhbGVyaWFuXCIsXG4gICAgXCJXYWxlcnlcIixcbiAgICBcIldpa3RvclwiLFxuICAgIFwiV2luY2VudHlcIixcbiAgICBcIldpdGFsaXNcIixcbiAgICBcIlfFgm9kemltaWVyelwiLFxuICAgIFwiV8WCYWR5c8WCYXdcIixcbiAgICBcIkLFgmHFvGVqXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbGdpZXJ6XCIsXG4gICAgXCJXYWPFgmF3XCIsXG4gICAgXCJXaWxmcnlkXCIsXG4gICAgXCJXaWxoZWxtXCIsXG4gICAgXCJLc2F3ZXJ5XCIsXG4gICAgXCJLc2Vub2ZvbnRcIixcbiAgICBcIkplcnp5XCIsXG4gICAgXCJaYWNoYXJpYXN6XCIsXG4gICAgXCJaYWNoYXJ5XCIsXG4gICAgXCJBZGFcIixcbiAgICBcIkFkZWxhamRhXCIsXG4gICAgXCJBZ2F0YVwiLFxuICAgIFwiQWduaWVzemthXCIsXG4gICAgXCJBZ3J5cGluYVwiLFxuICAgIFwiQWlkYVwiLFxuICAgIFwiQWxla3NhbmRyYVwiLFxuICAgIFwiQWxpY2phXCIsXG4gICAgXCJBbGluYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbmFzdGF6amFcIixcbiAgICBcIkFuZ2VsYVwiLFxuICAgIFwiQW5kxbxlbGlrYVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIkFubmFcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCLigJRcIixcbiAgICBcIkFudG9uaW5hXCIsXG4gICAgXCJBcmlhZG5hXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkJhcmJhcmFcIixcbiAgICBcIkJlYXRyeWN6ZVwiLFxuICAgIFwiQmVydGFcIixcbiAgICBcIkJyeWdpZGFcIixcbiAgICBcIkthbWlsYVwiLFxuICAgIFwiS2Fyb2xpbmFcIixcbiAgICBcIkthcm9saW5hXCIsXG4gICAgXCJLb3JuZWxpYVwiLFxuICAgIFwiS2F0YXJ6eW5hXCIsXG4gICAgXCJDZWN5bGlhXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiQ2hsb2VcIixcbiAgICBcIktyeXN0eW5hXCIsXG4gICAgXCJLbGFyYVwiLFxuICAgIFwiS2xhdWRpYVwiLFxuICAgIFwiS2xlbWVudHluYVwiLFxuICAgIFwiS29uc3RhbmNqYVwiLFxuICAgIFwiS29yYWxpYVwiLFxuICAgIFwiRGFyaWFcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEb3JvdGFcIixcbiAgICBcIkVkeXRhXCIsXG4gICAgXCJFbGVvbm9yYVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIkVsxbxiaWV0YVwiLFxuICAgIFwiSXphYmVsYVwiLFxuICAgIFwiRWx3aXJhXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVzdGVyYVwiLFxuICAgIFwiRXVkb2tzamFcIixcbiAgICBcIkV1ZG9raWFcIixcbiAgICBcIkV1Z2VuaWFcIixcbiAgICBcIkV3YVwiLFxuICAgIFwiRXdlbGluYVwiLFxuICAgIFwiRmVyZHluYW5kYVwiLFxuICAgIFwiRmxvcmVuY2phXCIsXG4gICAgXCJGcmFuY2lzemthXCIsXG4gICAgXCJHYWJyaWVsYVwiLFxuICAgIFwiR2VydHJ1ZGFcIixcbiAgICBcIkdsb3JpYVwiLFxuICAgIFwiR3JhY2phXCIsXG4gICAgXCJKYWR3aWdhXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIkhlbnJ5a2FcIixcbiAgICBcIk5hZHppZWphXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIklsb25hXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIklyZW5hXCIsXG4gICAgXCJJcm1hXCIsXG4gICAgXCJJemFiZWxhXCIsXG4gICAgXCJJem9sZGFcIixcbiAgICBcIkpha3ViaW5hXCIsXG4gICAgXCJKb2FubmFcIixcbiAgICBcIkphbmluYVwiLFxuICAgIFwixbthbmV0YVwiLFxuICAgIFwiSm9hbm5hXCIsXG4gICAgXCJHaW5ld3JhXCIsXG4gICAgXCJKw7N6ZWZpbmFcIixcbiAgICBcIkp1ZHl0YVwiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJKdWxpdGFcIixcbiAgICBcIkp1c3R5bmFcIixcbiAgICBcIktpcmFcIixcbiAgICBcIkN5cmFcIixcbiAgICBcIktsZW9wYXRyYVwiLFxuICAgIFwiTGFyeXNhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGF1cmVuY2phXCIsXG4gICAgXCJMYXVyZW50eW5hXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlaWxhXCIsXG4gICAgXCJFbGVvbm9yYVwiLFxuICAgIFwiTGlsaWFuYVwiLFxuICAgIFwiTGlsaWFubmFcIixcbiAgICBcIkxpbGlhXCIsXG4gICAgXCJMaWxsYVwiLFxuICAgIFwiTGl6YVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMdWR3aWthXCIsXG4gICAgXCJMdWl6YVwiLFxuICAgIFwixYF1Y2phXCIsXG4gICAgXCJMdWNqYVwiLFxuICAgIFwiTGlkaWFcIixcbiAgICBcIkFtYWJlbGFcIixcbiAgICBcIk1hZ2RhbGVuYVwiLFxuICAgIFwiTWFsd2luYVwiLFxuICAgIFwiTWHFgmdvcnphdGFcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJNYXJpYW5uYVwiLFxuICAgIFwiTWFyeW5hXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydHluYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hdHlsZGFcIixcbiAgICBcIk1hamFcIixcbiAgICBcIk1hamFcIixcbiAgICBcIk1lbGFuaWFcIixcbiAgICBcIk1pY2hhbGluYVwiLFxuICAgIFwiTW9uaWthXCIsXG4gICAgXCJOYWR6aWVqYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5pa29sYVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiT2xnYVwiLFxuICAgIFwiT2xpbXBpYVwiLFxuICAgIFwiT2xpd2lhXCIsXG4gICAgXCJPZmVsaWFcIixcbiAgICBcIlBhdHJ5Y2phXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGVsYWdpYVwiLFxuICAgIFwiUGVuZWxvcGFcIixcbiAgICBcIkZpbGlwYVwiLFxuICAgIFwiUGF1bGluYVwiLFxuICAgIFwiUmFjaGVsYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSZWdpbmFcIixcbiAgICBcIlJlbmF0YVwiLFxuICAgIFwiUm96YWxpYVwiLFxuICAgIFwiUsOzxbxhXCIsXG4gICAgXCJSb2tzYW5hXCIsXG4gICAgXCJSdWZpbmFcIixcbiAgICBcIlJ1dGFcIixcbiAgICBcIlNhYmluYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2VyYWZpbmFcIixcbiAgICBcIlN5YmlsbGFcIixcbiAgICBcIlN5bHdpYVwiLFxuICAgIFwiWm9maWFcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlZmFuaWFcIixcbiAgICBcIlp1emFubmFcIixcbiAgICBcIlRhbWFyYVwiLFxuICAgIFwiVGFjamFuYVwiLFxuICAgIFwiVGVrbGFcIixcbiAgICBcIlRlb2RvcmFcIixcbiAgICBcIlRlcmVzYVwiLFxuICAgIFwiV2FsZW50eW5hXCIsXG4gICAgXCJXYWxlcmlhXCIsXG4gICAgXCJXYW5lc2FcIixcbiAgICBcIldpYXJhXCIsXG4gICAgXCJXZXJvbmlrYVwiLFxuICAgIFwiV2lrdG9yaWFcIixcbiAgICBcIldpcmdpbmlhXCIsXG4gICAgXCJCaWJpYW5hXCIsXG4gICAgXCJCaWJpYW5uYVwiLFxuICAgIFwiV2FuZGFcIixcbiAgICBcIldpbGhlbG1pbmFcIixcbiAgICBcIktzYXdlcmFcIixcbiAgICBcIktzZW5pYVwiLFxuICAgIFwiWm9lXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWRhbWN6YWtcIixcbiAgICBcIkFkYW1jenlrXCIsXG4gICAgXCJBZGFtZWtcIixcbiAgICBcIkFkYW1pYWtcIixcbiAgICBcIkFkYW1pZWNcIixcbiAgICBcIkFkYW1vd2ljelwiLFxuICAgIFwiQWRhbXNraVwiLFxuICAgIFwiQWRhbXVzXCIsXG4gICAgXCJBbGVrc2FuZHJvd2ljelwiLFxuICAgIFwiQW5kcnplamN6YWtcIixcbiAgICBcIkFuZHJ6ZWpld3NraVwiLFxuICAgIFwiQW50Y3pha1wiLFxuICAgIFwiQXVndXN0eW5cIixcbiAgICBcIkF1Z3VzdHluaWFrXCIsXG4gICAgXCJCYWdpxYRza2lcIixcbiAgICBcIkJhbGNlcnpha1wiLFxuICAgIFwiQmFuYWNoXCIsXG4gICAgXCJCYW5hc2lha1wiLFxuICAgIFwiQmFuYXNpa1wiLFxuICAgIFwiQmFuYcWbXCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyYW5vd3NraVwiLFxuICAgIFwiQmFyYcWEc2tpXCIsXG4gICAgXCJCYXJ0Y3pha1wiLFxuICAgIFwiQmFydGtvd2lha1wiLFxuICAgIFwiQmFydG5pa1wiLFxuICAgIFwiQmFydG9zaWtcIixcbiAgICBcIkJlZG5hcmN6eWtcIixcbiAgICBcIkJlZG5hcmVrXCIsXG4gICAgXCJCZWRuYXJza2lcIixcbiAgICBcIkJlZG5hcnpcIixcbiAgICBcIkJpYcWCYXNcIixcbiAgICBcIkJpYcWCZWtcIixcbiAgICBcIkJpYcWCa293c2tpXCIsXG4gICAgXCJCaWVsYWtcIixcbiAgICBcIkJpZWxhd3NraVwiLFxuICAgIFwiQmllbGVja2lcIixcbiAgICBcIkJpZWxza2lcIixcbiAgICBcIkJpZW5pZWtcIixcbiAgICBcIkJpZXJuYWNraVwiLFxuICAgIFwiQmllcm5hdFwiLFxuICAgIFwiQmllxYRrb3dza2lcIixcbiAgICBcIkJpbHNraVwiLFxuICAgIFwiQm9iZXJcIixcbiAgICBcIkJvY2hlbmVrXCIsXG4gICAgXCJCb2d1Y2tpXCIsXG4gICAgXCJCb2d1c3pcIixcbiAgICBcIkJvcmVrXCIsXG4gICAgXCJCb3Jrb3dza2lcIixcbiAgICBcIkJvcm93aWVjXCIsXG4gICAgXCJCb3Jvd3NraVwiLFxuICAgIFwiQm/FvGVrXCIsXG4gICAgXCJCcm9kYVwiLFxuICAgIFwiQnJ6ZXppxYRza2lcIixcbiAgICBcIkJyem96b3dza2lcIixcbiAgICBcIkJ1Y3pla1wiLFxuICAgIFwiQnVjemtvd3NraVwiLFxuICAgIFwiQnVjennFhHNraVwiLFxuICAgIFwiQnVkemnFhHNraVwiLFxuICAgIFwiQnVkennFhHNraVwiLFxuICAgIFwiQnVqYWtcIixcbiAgICBcIkJ1a293c2tpXCIsXG4gICAgXCJCdXJ6ecWEc2tpXCIsXG4gICAgXCJCxIVrXCIsXG4gICAgXCJCxIVrb3dza2lcIixcbiAgICBcIkLFgmFzemN6YWtcIixcbiAgICBcIkLFgmFzemN6eWtcIixcbiAgICBcIkNlYnVsYVwiLFxuICAgIFwiQ2htaWVsXCIsXG4gICAgXCJDaG1pZWxld3NraVwiLFxuICAgIFwiQ2htdXJhXCIsXG4gICAgXCJDaG9qbmFja2lcIixcbiAgICBcIkNob2pub3dza2lcIixcbiAgICBcIkNob2xld2FcIixcbiAgICBcIkNocnphbm93c2tpXCIsXG4gICAgXCJDaHVkemlrXCIsXG4gICAgXCJDaWNob2NraVwiLFxuICAgIFwiQ2ljaG/FhFwiLFxuICAgIFwiQ2ljaHlcIixcbiAgICBcIkNpZXNpZWxza2lcIixcbiAgICBcIkNpZcWbbGFcIixcbiAgICBcIkNpZcWbbGFrXCIsXG4gICAgXCJDaWXFm2xpa1wiLFxuICAgIFwiQ2lzemV3c2tpXCIsXG4gICAgXCJDeWJ1bHNraVwiLFxuICAgIFwiQ3lnYW5cIixcbiAgICBcIkN6YWphXCIsXG4gICAgXCJDemFqa2FcIixcbiAgICBcIkN6YWprb3dza2lcIixcbiAgICBcIkN6YXBsYVwiLFxuICAgIFwiQ3phcm5lY2tpXCIsXG4gICAgXCJDemVjaFwiLFxuICAgIFwiQ3plY2hvd3NraVwiLFxuICAgIFwiQ3pla2FqXCIsXG4gICAgXCJDemVybmlha1wiLFxuICAgIFwiQ3plcndpxYRza2lcIixcbiAgICBcIkN6ecW8XCIsXG4gICAgXCJDennFvGV3c2tpXCIsXG4gICAgXCJEZWNcIixcbiAgICBcIkRvYm9zelwiLFxuICAgIFwiRG9icm93b2xza2lcIixcbiAgICBcIkRvYnJ6ecWEc2tpXCIsXG4gICAgXCJEb21hZ2HFgmFcIixcbiAgICBcIkRvbWHFhHNraVwiLFxuICAgIFwiRG9taW5pYWtcIixcbiAgICBcIkRyYWJpa1wiLFxuICAgIFwiRHJvemRcIixcbiAgICBcIkRyb3pkb3dza2lcIixcbiAgICBcIkRyemV3aWVja2lcIixcbiAgICBcIkRyw7PFvGTFvFwiLFxuICAgIFwiRHViaWVsXCIsXG4gICAgXCJEdWRhXCIsXG4gICAgXCJEdWRla1wiLFxuICAgIFwiRHVkemlha1wiLFxuICAgIFwiRHVkemlrXCIsXG4gICAgXCJEdWR6acWEc2tpXCIsXG4gICAgXCJEdXN6ecWEc2tpXCIsXG4gICAgXCJEemllZHppY1wiLFxuICAgIFwiRHppdWJhXCIsXG4gICAgXCJExIViZWtcIixcbiAgICBcIkTEhWJrb3dza2lcIixcbiAgICBcIkTEhWJyb3dza2lcIixcbiAgICBcIkTEmWJvd3NraVwiLFxuICAgIFwiRMSZYnNraVwiLFxuICAgIFwiRMWCdWdvc3pcIixcbiAgICBcIkZhbGtvd3NraVwiLFxuICAgIFwiRmlqYcWCa293c2tpXCIsXG4gICAgXCJGaWxpcGVrXCIsXG4gICAgXCJGaWxpcGlha1wiLFxuICAgIFwiRmlsaXBvd2ljelwiLFxuICAgIFwiRmxha1wiLFxuICAgIFwiRmxpc1wiLFxuICAgIFwiRmxvcmN6YWtcIixcbiAgICBcIkZsb3Jla1wiLFxuICAgIFwiRnJhbmtvd3NraVwiLFxuICAgIFwiRnLEhWNrb3dpYWtcIixcbiAgICBcIkZyxIVjemVrXCIsXG4gICAgXCJGcsSFdGN6YWtcIixcbiAgICBcIkZ1cm1hblwiLFxuICAgIFwiR2Fkb21za2lcIixcbiAgICBcIkdhamRhXCIsXG4gICAgXCJHYWpld3NraVwiLFxuICAgIFwiR2F3ZcWCXCIsXG4gICAgXCJHYXdsaWtcIixcbiAgICBcIkdhd3JvblwiLFxuICAgIFwiR2F3cm/FhHNraVwiLFxuICAgIFwiR2HFgmthXCIsXG4gICAgXCJHYcWCxIV6a2FcIixcbiAgICBcIkdpbFwiLFxuICAgIFwiR29kbGV3c2tpXCIsXG4gICAgXCJHb2xlY1wiLFxuICAgIFwiR2/FgsSFYlwiLFxuICAgIFwiR2/FgsSZYmlld3NraVwiLFxuICAgIFwiR2/FgsSZYmlvd3NraVwiLFxuICAgIFwiR3JhYm93c2tpXCIsXG4gICAgXCJHcmFjenlrXCIsXG4gICAgXCJHcm9jaG93c2tpXCIsXG4gICAgXCJHcnVkemllxYRcIixcbiAgICBcIkdydXN6Y3p5xYRza2lcIixcbiAgICBcIkdydXN6a2FcIixcbiAgICBcIkdyemVnb3JjenlrXCIsXG4gICAgXCJHcnplbGFrXCIsXG4gICAgXCJHcnplc2lha1wiLFxuICAgIFwiR3J6ZXNpa1wiLFxuICAgIFwiR3J6ZcWba293aWFrXCIsXG4gICAgXCJHcnp5YlwiLFxuICAgIFwiR3J6eWJvd3NraVwiLFxuICAgIFwiR3J6eXdhY3pcIixcbiAgICBcIkd1dG93c2tpXCIsXG4gICAgXCJHdXppa1wiLFxuICAgIFwiR3fDs8W6ZMW6XCIsXG4gICAgXCJHw7NyYVwiLFxuICAgIFwiR8OzcmFsXCIsXG4gICAgXCJHw7NyZWNraVwiLFxuICAgIFwiR8OzcmthXCIsXG4gICAgXCJHw7Nybmlha1wiLFxuICAgIFwiR8Ozcm55XCIsXG4gICAgXCJHw7Nyc2tpXCIsXG4gICAgXCJHxIVzaW9yXCIsXG4gICAgXCJHxIVzaW9yb3dza2lcIixcbiAgICBcIkfFgm9nb3dza2lcIixcbiAgICBcIkfFgm93YWNraVwiLFxuICAgIFwiR8WCxIViXCIsXG4gICAgXCJIYWpkdWtcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSXdhxYRza2lcIixcbiAgICBcIkl6ZGVic2tpXCIsXG4gICAgXCJKYWLFgm/FhHNraVwiLFxuICAgIFwiSmFja293c2tpXCIsXG4gICAgXCJKYWdpZWxza2lcIixcbiAgICBcIkphZ2llxYLFgm9cIixcbiAgICBcIkphZ29kemnFhHNraVwiLFxuICAgIFwiSmFrdWJpYWtcIixcbiAgICBcIkpha3Vib3dza2lcIixcbiAgICBcIkphbmFzXCIsXG4gICAgXCJKYW5pYWtcIixcbiAgICBcIkphbmlja2lcIixcbiAgICBcIkphbmlrXCIsXG4gICAgXCJKYW5pc3pld3NraVwiLFxuICAgIFwiSmFua293aWFrXCIsXG4gICAgXCJKYW5rb3dza2lcIixcbiAgICBcIkphbm93c2tpXCIsXG4gICAgXCJKYW51c1wiLFxuICAgIFwiSmFudXN6XCIsXG4gICAgXCJKYW51c3pld3NraVwiLFxuICAgIFwiSmFyb3NcIixcbiAgICBcIkphcm9zelwiLFxuICAgIFwiSmFyesSFYmVrXCIsXG4gICAgXCJKYXNpxYRza2lcIixcbiAgICBcIkphc3RyesSZYnNraVwiLFxuICAgIFwiSmF3b3Jza2lcIixcbiAgICBcIkphxZtraWV3aWN6XCIsXG4gICAgXCJKZXppZXJza2lcIixcbiAgICBcIkp1cmVrXCIsXG4gICAgXCJKdXJraWV3aWN6XCIsXG4gICAgXCJKdXJrb3dza2lcIixcbiAgICBcIkp1c3pjemFrXCIsXG4gICAgXCJKw7PFundpYWtcIixcbiAgICBcIkrDs8W6d2lrXCIsXG4gICAgXCJKxJlkcnplamN6YWtcIixcbiAgICBcIkrEmWRyemVqY3p5a1wiLFxuICAgIFwiSsSZZHJ6ZWpld3NraVwiLFxuICAgIFwiS2FjcHJ6YWtcIixcbiAgICBcIkthY3ptYXJjenlrXCIsXG4gICAgXCJLYWN6bWFyZWtcIixcbiAgICBcIkthY3ptYXJza2lcIixcbiAgICBcIkthY3pvclwiLFxuICAgIFwiS2Fjem9yb3dza2lcIixcbiAgICBcIkthY3p5xYRza2lcIixcbiAgICBcIkthbGV0YVwiLFxuICAgIFwiS2FsaW5vd3NraVwiLFxuICAgIFwiS2FsaXN6XCIsXG4gICAgXCJLYW1pxYRza2lcIixcbiAgICBcIkthbmlhXCIsXG4gICAgXCJLYW5pZXdza2lcIixcbiAgICBcIkthcHVzdGFcIixcbiAgICBcIkthcmHFm1wiLFxuICAgIFwiS2FyY3pld3NraVwiLFxuICAgIFwiS2FycGnFhHNraVwiLFxuICAgIFwiS2Fyd293c2tpXCIsXG4gICAgXCJLYXNwZXJla1wiLFxuICAgIFwiS2FzcHJ6YWtcIixcbiAgICBcIkthc3ByenlrXCIsXG4gICAgXCJLYXN6dWJhXCIsXG4gICAgXCJLYXdhXCIsXG4gICAgXCJLYXdlY2tpXCIsXG4gICAgXCJLYcWCdcW8YVwiLFxuICAgIFwiS2HFum1pZXJjemFrXCIsXG4gICAgXCJLaWXFgmJhc2FcIixcbiAgICBcIktpc2llbFwiLFxuICAgIFwiS2l0YVwiLFxuICAgIFwiS2xpbWN6YWtcIixcbiAgICBcIktsaW1la1wiLFxuICAgIFwiS21pZWNpa1wiLFxuICAgIFwiS21pZcSHXCIsXG4gICAgXCJLbmFwaWtcIixcbiAgICBcIktvYnVzXCIsXG4gICAgXCJLb2d1dFwiLFxuICAgIFwiS29sYXNhXCIsXG4gICAgXCJLb21vcm93c2tpXCIsXG4gICAgXCJLb25pZWN6bmFcIixcbiAgICBcIktvbmllY3pueVwiLFxuICAgIFwiS29ub3BrYVwiLFxuICAgIFwiS29wY3p5xYRza2lcIixcbiAgICBcIktvcGVyXCIsXG4gICAgXCJLb3BlxIdcIixcbiAgICBcIktvcnplbmlvd3NraVwiLFxuICAgIFwiS29zXCIsXG4gICAgXCJLb3NpxYRza2lcIixcbiAgICBcIktvc293c2tpXCIsXG4gICAgXCJLb3N0ZWNraVwiLFxuICAgIFwiS29zdHJ6ZXdhXCIsXG4gICAgXCJLb3RcIixcbiAgICBcIktvdG93c2tpXCIsXG4gICAgXCJLb3dhbFwiLFxuICAgIFwiS293YWxjenVrXCIsXG4gICAgXCJLb3dhbGN6eWtcIixcbiAgICBcIktvd2FsZXdza2lcIixcbiAgICBcIktvd2FsaWtcIixcbiAgICBcIktvd2Fsc2tpXCIsXG4gICAgXCJLb3phXCIsXG4gICAgXCJLb3pha1wiLFxuICAgIFwiS296aWXFglwiLFxuICAgIFwiS296aW/FglwiLFxuICAgIFwiS296xYJvd3NraVwiLFxuICAgIFwiS2/FgmFrb3dza2lcIixcbiAgICBcIktvxYJvZHppZWpcIixcbiAgICBcIktvxYJvZHppZWpjenlrXCIsXG4gICAgXCJLb8WCb2R6aWVqc2tpXCIsXG4gICAgXCJLcmFqZXdza2lcIixcbiAgICBcIktyYWtvd2lha1wiLFxuICAgIFwiS3Jhd2N6eWtcIixcbiAgICBcIktyYXdpZWNcIixcbiAgICBcIktydWtcIixcbiAgICBcIktydWtvd3NraVwiLFxuICAgIFwiS3J1cGFcIixcbiAgICBcIktydXBpxYRza2lcIixcbiAgICBcIktydXN6ZXdza2lcIixcbiAgICBcIktyeXNpYWtcIixcbiAgICBcIktyemVtacWEc2tpXCIsXG4gICAgXCJLcnp5xbxhbm93c2tpXCIsXG4gICAgXCJLcsOzbFwiLFxuICAgIFwiS3LDs2xpa293c2tpXCIsXG4gICAgXCJLc2nEhcW8ZWtcIixcbiAgICBcIkt1YmFja2lcIixcbiAgICBcIkt1Ymlha1wiLFxuICAgIFwiS3ViaWNhXCIsXG4gICAgXCJLdWJpY2tpXCIsXG4gICAgXCJLdWJpa1wiLFxuICAgIFwiS3VjXCIsXG4gICAgXCJLdWNoYXJjenlrXCIsXG4gICAgXCJLdWNoYXJza2lcIixcbiAgICBcIkt1Y2h0YVwiLFxuICAgIFwiS3VjacWEc2tpXCIsXG4gICAgXCJLdWN6ecWEc2tpXCIsXG4gICAgXCJLdWphd2FcIixcbiAgICBcIkt1amF3c2tpXCIsXG4gICAgXCJLdWxhXCIsXG4gICAgXCJLdWxlc3phXCIsXG4gICAgXCJLdWxpZ1wiLFxuICAgIFwiS3VsaWtcIixcbiAgICBcIkt1bGnFhHNraVwiLFxuICAgIFwiS3VyZWtcIixcbiAgICBcIkt1cm93c2tpXCIsXG4gICAgXCJLdcWbXCIsXG4gICAgXCJLd2HFm25pZXdza2lcIixcbiAgICBcIkt3aWF0a293c2tpXCIsXG4gICAgXCJLd2llY2llxYRcIixcbiAgICBcIkt3aWVjacWEc2tpXCIsXG4gICAgXCJLxJlkemllcnNraVwiLFxuICAgIFwiS8SZZHppb3JhXCIsXG4gICAgXCJLxJlwYVwiLFxuICAgIFwiS8WCb3NcIixcbiAgICBcIkvFgm9zb3dza2lcIixcbiAgICBcIkxhY2hcIixcbiAgICBcIkxhc2tvd3NraVwiLFxuICAgIFwiTGFzb3RhXCIsXG4gICAgXCJMZWNoXCIsXG4gICAgXCJMZW5hcnRcIixcbiAgICBcIkxlc2lha1wiLFxuICAgIFwiTGVzemN6ecWEc2tpXCIsXG4gICAgXCJMZXdhbmRvd3NraVwiLFxuICAgIFwiTGV3aWNraVwiLFxuICAgIFwiTGXFm25pYWtcIixcbiAgICBcIkxlxZtuaWV3c2tpXCIsXG4gICAgXCJMaXBpxYRza2lcIixcbiAgICBcIkxpcGthXCIsXG4gICAgXCJMaXBza2lcIixcbiAgICBcIkxpc1wiLFxuICAgIFwiTGlzaWVja2lcIixcbiAgICBcIkxpc293c2tpXCIsXG4gICAgXCJNYWNpZWpld3NraVwiLFxuICAgIFwiTWFjacSFZ1wiLFxuICAgIFwiTWFja2lld2ljelwiLFxuICAgIFwiTWFkZWpcIixcbiAgICBcIk1halwiLFxuICAgIFwiTWFqY2hlclwiLFxuICAgIFwiTWFqY2hyemFrXCIsXG4gICAgXCJNYWpld3NraVwiLFxuICAgIFwiTWFqa2FcIixcbiAgICBcIk1ha293c2tpXCIsXG4gICAgXCJNYWxlY1wiLFxuICAgIFwiTWFsaWNraVwiLFxuICAgIFwiTWFsaW5vd3NraVwiLFxuICAgIFwiTWFsaXN6ZXdza2lcIixcbiAgICBcIk1hcmNoZXdrYVwiLFxuICAgIFwiTWFyY2luaWFrXCIsXG4gICAgXCJNYXJjaW5rb3dza2lcIixcbiAgICBcIk1hcmN6YWtcIixcbiAgICBcIk1hcmVrXCIsXG4gICAgXCJNYXJraWV3aWN6XCIsXG4gICAgXCJNYXJrb3dza2lcIixcbiAgICBcIk1hcnN6YcWCZWtcIixcbiAgICBcIk1hcnplY1wiLFxuICAgIFwiTWFzxYJvd3NraVwiLFxuICAgIFwiTWF0dXNpYWtcIixcbiAgICBcIk1hdHVzemFrXCIsXG4gICAgXCJNYXR1c3pld3NraVwiLFxuICAgIFwiTWF0eXNpYWtcIixcbiAgICBcIk1henVyXCIsXG4gICAgXCJNYXp1cmVrXCIsXG4gICAgXCJNYXp1cmtpZXdpY3pcIixcbiAgICBcIk1hxIdrb3dpYWtcIixcbiAgICBcIk1hxYJlY2tpXCIsXG4gICAgXCJNYcWCZWtcIixcbiAgICBcIk1hxZtsYW5rYVwiLFxuICAgIFwiTWljaGFsYWtcIixcbiAgICBcIk1pY2hhbGN6eWtcIixcbiAgICBcIk1pY2hhbGlrXCIsXG4gICAgXCJNaWNoYWxza2lcIixcbiAgICBcIk1pY2hhxYJla1wiLFxuICAgIFwiTWljaGHFgm93c2tpXCIsXG4gICAgXCJNaWVsY3phcmVrXCIsXG4gICAgXCJNaWVyemVqZXdza2lcIixcbiAgICBcIk1pa2FcIixcbiAgICBcIk1pa2/FgmFqY3pha1wiLFxuICAgIFwiTWlrb8WCYWpjenlrXCIsXG4gICAgXCJNaWt1bHNraVwiLFxuICAgIFwiTWlsY3phcmVrXCIsXG4gICAgXCJNaWxld3NraVwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaXNpYWtcIixcbiAgICBcIk1pc3p0YWxcIixcbiAgICBcIk1pxZtraWV3aWN6XCIsXG4gICAgXCJNb2R6ZWxld3NraVwiLFxuICAgIFwiTW9sZW5kYVwiLFxuICAgIFwiTW9yYXdza2lcIixcbiAgICBcIk1vdHlrYVwiLFxuICAgIFwiTXJvY3pla1wiLFxuICAgIFwiTXJvY3prb3dza2lcIixcbiAgICBcIk1yb3pla1wiLFxuICAgIFwiTXLDs3pcIixcbiAgICBcIk11Y2hhXCIsXG4gICAgXCJNdXJhd3NraVwiLFxuICAgIFwiTXVzaWHFglwiLFxuICAgIFwiTXVzennFhHNraVwiLFxuICAgIFwiTcWCeW5hcmN6eWtcIixcbiAgICBcIk5hcGllcmHFgmFcIixcbiAgICBcIk5hd3JvY2tpXCIsXG4gICAgXCJOYXdyb3RcIixcbiAgICBcIk5pZWR6aWVsYVwiLFxuICAgIFwiTmllZHppZWxza2lcIixcbiAgICBcIk5pZWTFundpZWNraVwiLFxuICAgIFwiTmllbWN6eWtcIixcbiAgICBcIk5pZW1pZWNcIixcbiAgICBcIk5pZXdpYWRvbXNraVwiLFxuICAgIFwiTm9nYVwiLFxuICAgIFwiTm93YWNraVwiLFxuICAgIFwiTm93YWN6eWtcIixcbiAgICBcIk5vd2FrXCIsXG4gICAgXCJOb3dha293c2tpXCIsXG4gICAgXCJOb3dpY2tpXCIsXG4gICAgXCJOb3dpxYRza2lcIixcbiAgICBcIk9sY3pha1wiLFxuICAgIFwiT2xlam5pY3pha1wiLFxuICAgIFwiT2xlam5pa1wiLFxuICAgIFwiT2xzemV3c2tpXCIsXG4gICAgXCJPcnplY2hvd3NraVwiLFxuICAgIFwiT3LFgm93c2tpXCIsXG4gICAgXCJPc2nFhHNraVwiLFxuICAgIFwiT3Nzb3dza2lcIixcbiAgICBcIk9zdHJvd3NraVwiLFxuICAgIFwiT3djemFyZWtcIixcbiAgICBcIlBhY3prb3dza2lcIixcbiAgICBcIlBhasSFa1wiLFxuICAgIFwiUGFrdcWCYVwiLFxuICAgIFwiUGFsdWNoXCIsXG4gICAgXCJQYW5la1wiLFxuICAgIFwiUGFydHlrYVwiLFxuICAgIFwiUGFzdGVybmFrXCIsXG4gICAgXCJQYXN6a293c2tpXCIsXG4gICAgXCJQYXdlbGVjXCIsXG4gICAgXCJQYXdsYWtcIixcbiAgICBcIlBhd2xpY2tpXCIsXG4gICAgXCJQYXdsaWtcIixcbiAgICBcIlBhd2xpa293c2tpXCIsXG4gICAgXCJQYXfFgm93c2tpXCIsXG4gICAgXCJQYcWCa2FcIixcbiAgICBcIlBpYXNlY2tpXCIsXG4gICAgXCJQaWVjaG90YVwiLFxuICAgIFwiUGlla2Fyc2tpXCIsXG4gICAgXCJQaWV0cmFzXCIsXG4gICAgXCJQaWV0cnVzemthXCIsXG4gICAgXCJQaWV0cnpha1wiLFxuICAgIFwiUGlldHJ6eWtcIixcbiAgICBcIlBpbGFyc2tpXCIsXG4gICAgXCJQaWxjaFwiLFxuICAgIFwiUGlvdHJvd2ljelwiLFxuICAgIFwiUGlvdHJvd3NraVwiLFxuICAgIFwiUGl3b3dhcmN6eWtcIixcbiAgICBcIlBpw7Nya293c2tpXCIsXG4gICAgXCJQacSFdGVrXCIsXG4gICAgXCJQacSFdGtvd3NraVwiLFxuICAgIFwiUGnFgmF0XCIsXG4gICAgXCJQbHV0YVwiLFxuICAgIFwiUG9kZ8OzcnNraVwiLFxuICAgIFwiUG9sYWtcIixcbiAgICBcIlBvcMWCYXdza2lcIixcbiAgICBcIlBvcsSZYnNraVwiLFxuICAgIFwiUHJva29wXCIsXG4gICAgXCJQcnVzXCIsXG4gICAgXCJQcnp5Ynlsc2tpXCIsXG4gICAgXCJQcnp5YnlzelwiLFxuICAgIFwiUHJ6eWJ5xYJcIixcbiAgICBcIlByenliecWCYVwiLFxuICAgIFwiUHRha1wiLFxuICAgIFwiUHVjaGFsc2tpXCIsXG4gICAgXCJQeXRlbFwiLFxuICAgIFwiUMWCb25rYVwiLFxuICAgIFwiUmFjennFhHNraVwiLFxuICAgIFwiUmFkZWNraVwiLFxuICAgIFwiUmFkb21za2lcIixcbiAgICBcIlJha1wiLFxuICAgIFwiUmFrb3dza2lcIixcbiAgICBcIlJhdGFqY3pha1wiLFxuICAgIFwiUm9iYWtcIixcbiAgICBcIlJvZ2FsYVwiLFxuICAgIFwiUm9nYWxza2lcIixcbiAgICBcIlJvZ293c2tpXCIsXG4gICAgXCJSb2pla1wiLFxuICAgIFwiUm9tYW5vd3NraVwiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zaWFrXCIsXG4gICAgXCJSb3NpxYRza2lcIixcbiAgICBcIlJ1Y2nFhHNraVwiLFxuICAgIFwiUnVkbmlja2lcIixcbiAgICBcIlJ1ZHppxYRza2lcIixcbiAgICBcIlJ1ZHpraVwiLFxuICAgIFwiUnVzaW5cIixcbiAgICBcIlJ1dGtvd3NraVwiLFxuICAgIFwiUnliYWtcIixcbiAgICBcIlJ5YmFyY3p5a1wiLFxuICAgIFwiUnliaWNraVwiLFxuICAgIFwiUnplcGthXCIsXG4gICAgXCJSw7PFvGHFhHNraVwiLFxuICAgIFwiUsOzxbx5Y2tpXCIsXG4gICAgXCJTYWRvd3NraVwiLFxuICAgIFwiU2F3aWNraVwiLFxuICAgIFwiU2VyYWZpblwiLFxuICAgIFwiU2llZGxlY2tpXCIsXG4gICAgXCJTaWVua2lld2ljelwiLFxuICAgIFwiU2llcmFkemtpXCIsXG4gICAgXCJTaWtvcmFcIixcbiAgICBcIlNpa29yc2tpXCIsXG4gICAgXCJTaXRla1wiLFxuICAgIFwiU2l3ZWtcIixcbiAgICBcIlNrYWxza2lcIixcbiAgICBcIlNraWJhXCIsXG4gICAgXCJTa2liacWEc2tpXCIsXG4gICAgXCJTa29jenlsYXNcIixcbiAgICBcIlNrb3dyb25cIixcbiAgICBcIlNrb3dyb25la1wiLFxuICAgIFwiU2tvd3JvxYRza2lcIixcbiAgICBcIlNrcnp5cGN6YWtcIixcbiAgICBcIlNrcnp5cGVrXCIsXG4gICAgXCJTa8OzcmFcIixcbiAgICBcIlNtb2xpxYRza2lcIixcbiAgICBcIlNvYmN6YWtcIixcbiAgICBcIlNvYmN6eWtcIixcbiAgICBcIlNvYmllcmFqXCIsXG4gICAgXCJTb2JvbGV3c2tpXCIsXG4gICAgXCJTb2NoYVwiLFxuICAgIFwiU29jaGFja2lcIixcbiAgICBcIlNva2/Fgm93c2tpXCIsXG4gICAgXCJTb2vDs8WCXCIsXG4gICAgXCJTb3Nub3dza2lcIixcbiAgICBcIlNvd2FcIixcbiAgICBcIlNvd2nFhHNraVwiLFxuICAgIFwiU2/FgnR5c1wiLFxuICAgIFwiU2/FgnR5c2lha1wiLFxuICAgIFwiU3Jva2FcIixcbiAgICBcIlN0YWNob3dpYWtcIixcbiAgICBcIlN0YWNob3dpY3pcIixcbiAgICBcIlN0YWNodXJhXCIsXG4gICAgXCJTdGFjaHVyc2tpXCIsXG4gICAgXCJTdGFuZWtcIixcbiAgICBcIlN0YW5pc3pld3NraVwiLFxuICAgIFwiU3RhbmlzxYJhd3NraVwiLFxuICAgIFwiU3RhbmtpZXdpY3pcIixcbiAgICBcIlN0YXNpYWtcIixcbiAgICBcIlN0YXN6ZXdza2lcIixcbiAgICBcIlN0YXdpY2tpXCIsXG4gICAgXCJTdGVjXCIsXG4gICAgXCJTdGVmYW5pYWtcIixcbiAgICBcIlN0ZWZhxYRza2lcIixcbiAgICBcIlN0ZWxtYWNoXCIsXG4gICAgXCJTdG9sYXJjenlrXCIsXG4gICAgXCJTdG9sYXJza2lcIixcbiAgICBcIlN0cnplbGN6eWtcIixcbiAgICBcIlN0cnplbGVja2lcIixcbiAgICBcIlN0xJlwaWXFhFwiLFxuICAgIFwiU3TEmXBuaWFrXCIsXG4gICAgXCJTdXJtYVwiLFxuICAgIFwiU3Vza2lcIixcbiAgICBcIlN6YWZyYcWEc2tpXCIsXG4gICAgXCJTemF0a293c2tpXCIsXG4gICAgXCJTemN6ZXBhbmlha1wiLFxuICAgIFwiU3pjemVwYW5pa1wiLFxuICAgIFwiU3pjemVwYcWEc2tpXCIsXG4gICAgXCJTemN6ZXJiYVwiLFxuICAgIFwiU3pjemXFm25pYWtcIixcbiAgICBcIlN6Y3p5Z2llxYJcIixcbiAgICBcIlN6Y3rEmXNuYVwiLFxuICAgIFwiU3pjesSZc255XCIsXG4gICAgXCJTemVsxIVnXCIsXG4gICAgXCJTemV3Y3p5a1wiLFxuICAgIFwiU3pvc3Rha1wiLFxuICAgIFwiU3p1bGNcIixcbiAgICBcIlN6d2FyY1wiLFxuICAgIFwiU3p3ZWRcIixcbiAgICBcIlN6eWTFgm93c2tpXCIsXG4gICAgXCJTenltYcWEc2tpXCIsXG4gICAgXCJTenltY3pha1wiLFxuICAgIFwiU3p5bWN6eWtcIixcbiAgICBcIlN6eW1rb3dpYWtcIixcbiAgICBcIlN6eXN6a2FcIixcbiAgICBcIlPFgmF3acWEc2tpXCIsXG4gICAgXCJTxYJvd2lrXCIsXG4gICAgXCJTxYJvd2nFhHNraVwiLFxuICAgIFwiVGFybm93c2tpXCIsXG4gICAgXCJUa2FjenlrXCIsXG4gICAgXCJUb2thcnNraVwiLFxuICAgIFwiVG9tYWxhXCIsXG4gICAgXCJUb21hc3pld3NraVwiLFxuICAgIFwiVG9tY3pha1wiLFxuICAgIFwiVG9tY3p5a1wiLFxuICAgIFwiVHJhY3pcIixcbiAgICBcIlRyb2phbm93c2tpXCIsXG4gICAgXCJUcnpjacWEc2tpXCIsXG4gICAgXCJUcnplY2lha1wiLFxuICAgIFwiVHVyZWtcIixcbiAgICBcIlR3YXJkb3dza2lcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJVcmJhbmVrXCIsXG4gICAgXCJVcmJhbmlha1wiLFxuICAgIFwiVXJiYW5vd2ljelwiLFxuICAgIFwiVXJiYcWEY3p5a1wiLFxuICAgIFwiVXJiYcWEc2tpXCIsXG4gICAgXCJXYWxjemFrXCIsXG4gICAgXCJXYWxrb3dpYWtcIixcbiAgICBcIldhcmNob8WCXCIsXG4gICAgXCJXYXNpYWtcIixcbiAgICBcIldhc2lsZXdza2lcIixcbiAgICBcIldhd3J6eW5pYWtcIixcbiAgICBcIldlc2/Fgm93c2tpXCIsXG4gICAgXCJXaWVjem9yZWtcIixcbiAgICBcIldpZXJ6Ymlja2lcIixcbiAgICBcIldpbGN6ZWtcIixcbiAgICBcIldpbGN6ecWEc2tpXCIsXG4gICAgXCJXaWxrXCIsXG4gICAgXCJXaW5pYXJza2lcIixcbiAgICBcIldpdGN6YWtcIixcbiAgICBcIldpdGVrXCIsXG4gICAgXCJXaXRrb3dza2lcIixcbiAgICBcIldpxIVjZWtcIixcbiAgICBcIldpxJljZWtcIixcbiAgICBcIldpxJlja293c2tpXCIsXG4gICAgXCJXacWbbmlld3NraVwiLFxuICAgIFwiV251a1wiLFxuICAgIFwiV29qY2llY2hvd3NraVwiLFxuICAgIFwiV29qdGFzXCIsXG4gICAgXCJXb2p0YXNpa1wiLFxuICAgIFwiV29qdGN6YWtcIixcbiAgICBcIldvanRrb3dpYWtcIixcbiAgICBcIldvbGFrXCIsXG4gICAgXCJXb2xpxYRza2lcIixcbiAgICBcIldvbG55XCIsXG4gICAgXCJXb2xza2lcIixcbiAgICBcIldvxZtcIixcbiAgICBcIldvxbpuaWFrXCIsXG4gICAgXCJXcm9uYVwiLFxuICAgIFwiV3JvxYRza2lcIixcbiAgICBcIldyw7NiZWxcIixcbiAgICBcIldyw7NibGV3c2tpXCIsXG4gICAgXCJXeXB5Y2hcIixcbiAgICBcIld5c29ja2lcIixcbiAgICBcIld5c3p5xYRza2lcIixcbiAgICBcIlfDs2pjaWNraVwiLFxuICAgIFwiV8OzamNpa1wiLFxuICAgIFwiV8OzanRvd2ljelwiLFxuICAgIFwiV8SFc2lrXCIsXG4gICAgXCJXxJlncnp5blwiLFxuICAgIFwiV8WCb2RhcmN6eWtcIixcbiAgICBcIlfFgm9kYXJza2lcIixcbiAgICBcIlphYm9yb3dza2lcIixcbiAgICBcIlphYsWCb2NraVwiLFxuICAgIFwiWmFnw7Nyc2tpXCIsXG4gICAgXCJaYWrEhWNcIixcbiAgICBcIlphasSFY3prb3dza2lcIixcbiAgICBcIlpha3J6ZXdza2lcIixcbiAgICBcIlphbGV3c2tpXCIsXG4gICAgXCJaYXJlbWJhXCIsXG4gICAgXCJaYXJ6eWNraVwiLFxuICAgIFwiWmFyxJliYVwiLFxuICAgIFwiWmF3YWRhXCIsXG4gICAgXCJaYXdhZHpraVwiLFxuICAgIFwiWmR1bmVrXCIsXG4gICAgXCJaaWVsacWEc2tpXCIsXG4gICAgXCJaaWVsb25rYVwiLFxuICAgIFwiWmnDs8WCa293c2tpXCIsXG4gICAgXCJaacSZYmFcIixcbiAgICBcIlppxJl0ZWtcIixcbiAgICBcIlp3b2xpxYRza2lcIixcbiAgICBcIlp5Y2hcIixcbiAgICBcIlp5Z211bnRcIixcbiAgICBcIsWBYXBpxYRza2lcIixcbiAgICBcIsWBdWN6YWtcIixcbiAgICBcIsWBdWthc2lld2ljelwiLFxuICAgIFwixYF1a2FzaWtcIixcbiAgICBcIsWBdWthc3pld3NraVwiLFxuICAgIFwixZpsaXdhXCIsXG4gICAgXCLFmmxpd2nFhHNraVwiLFxuICAgIFwixZpsdXNhcmN6eWtcIixcbiAgICBcIsWad2lkZXJza2lcIixcbiAgICBcIsWad2llcmN6ecWEc2tpXCIsXG4gICAgXCLFmndpxIV0ZWtcIixcbiAgICBcIsW7YWtcIixcbiAgICBcIsW7ZWJyb3dza2lcIixcbiAgICBcIsW7bXVkYVwiLFxuICAgIFwixbt1a1wiLFxuICAgIFwixbt1a293c2tpXCIsXG4gICAgXCLFu3VyYXdza2lcIixcbiAgICBcIsW7dXJla1wiLFxuICAgIFwixbt5xYJhXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiUGFuXCIsXG4gICAgXCJQYW5pXCJcbiAgXSxcbiAgXCJ0aXRsZVwiOiB7XG4gICAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiTGVhZFwiLFxuICAgICAgXCJTZW5pb3JcIixcbiAgICAgIFwiRGlyZWN0XCIsXG4gICAgICBcIkNvcnBvcmF0ZVwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkZ1dHVyZVwiLFxuICAgICAgXCJQcm9kdWN0XCIsXG4gICAgICBcIk5hdGlvbmFsXCIsXG4gICAgICBcIlJlZ2lvbmFsXCIsXG4gICAgICBcIkRpc3RyaWN0XCIsXG4gICAgICBcIkNlbnRyYWxcIixcbiAgICAgIFwiR2xvYmFsXCIsXG4gICAgICBcIkN1c3RvbWVyXCIsXG4gICAgICBcIkludmVzdG9yXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiSW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJMZWdhY3lcIixcbiAgICAgIFwiRm9yd2FyZFwiLFxuICAgICAgXCJJbnRlcm5hbFwiLFxuICAgICAgXCJIdW1hblwiLFxuICAgICAgXCJDaGllZlwiLFxuICAgICAgXCJQcmluY2lwYWxcIlxuICAgIF0sXG4gICAgXCJsZXZlbFwiOiBbXG4gICAgICBcIlNvbHV0aW9uc1wiLFxuICAgICAgXCJQcm9ncmFtXCIsXG4gICAgICBcIkJyYW5kXCIsXG4gICAgICBcIlNlY3VyaXR5XCIsXG4gICAgICBcIlJlc2VhcmNoXCIsXG4gICAgICBcIk1hcmtldGluZ1wiLFxuICAgICAgXCJEaXJlY3RpdmVzXCIsXG4gICAgICBcIkltcGxlbWVudGF0aW9uXCIsXG4gICAgICBcIkludGVncmF0aW9uXCIsXG4gICAgICBcIkZ1bmN0aW9uYWxpdHlcIixcbiAgICAgIFwiUmVzcG9uc2VcIixcbiAgICAgIFwiUGFyYWRpZ21cIixcbiAgICAgIFwiVGFjdGljc1wiLFxuICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgXCJNYXJrZXRzXCIsXG4gICAgICBcIkdyb3VwXCIsXG4gICAgICBcIkRpdmlzaW9uXCIsXG4gICAgICBcIkFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJPcHRpbWl6YXRpb25cIixcbiAgICAgIFwiT3BlcmF0aW9uc1wiLFxuICAgICAgXCJJbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJJbnRyYW5ldFwiLFxuICAgICAgXCJDb21tdW5pY2F0aW9uc1wiLFxuICAgICAgXCJXZWJcIixcbiAgICAgIFwiQnJhbmRpbmdcIixcbiAgICAgIFwiUXVhbGl0eVwiLFxuICAgICAgXCJBc3N1cmFuY2VcIixcbiAgICAgIFwiTW9iaWxpdHlcIixcbiAgICAgIFwiQWNjb3VudHNcIixcbiAgICAgIFwiRGF0YVwiLFxuICAgICAgXCJDcmVhdGl2ZVwiLFxuICAgICAgXCJDb25maWd1cmF0aW9uXCIsXG4gICAgICBcIkFjY291bnRhYmlsaXR5XCIsXG4gICAgICBcIkludGVyYWN0aW9uc1wiLFxuICAgICAgXCJGYWN0b3JzXCIsXG4gICAgICBcIlVzYWJpbGl0eVwiLFxuICAgICAgXCJNZXRyaWNzXCJcbiAgICBdLFxuICAgIFwiam9iXCI6IFtcbiAgICAgIFwiU3VwZXJ2aXNvclwiLFxuICAgICAgXCJBc3NvY2lhdGVcIixcbiAgICAgIFwiRXhlY3V0aXZlXCIsXG4gICAgICBcIkxpYXNvblwiLFxuICAgICAgXCJPZmZpY2VyXCIsXG4gICAgICBcIk1hbmFnZXJcIixcbiAgICAgIFwiRW5naW5lZXJcIixcbiAgICAgIFwiU3BlY2lhbGlzdFwiLFxuICAgICAgXCJEaXJlY3RvclwiLFxuICAgICAgXCJDb29yZGluYXRvclwiLFxuICAgICAgXCJBZG1pbmlzdHJhdG9yXCIsXG4gICAgICBcIkFyY2hpdGVjdFwiLFxuICAgICAgXCJBbmFseXN0XCIsXG4gICAgICBcIkRlc2lnbmVyXCIsXG4gICAgICBcIlBsYW5uZXJcIixcbiAgICAgIFwiT3JjaGVzdHJhdG9yXCIsXG4gICAgICBcIlRlY2huaWNpYW5cIixcbiAgICAgIFwiRGV2ZWxvcGVyXCIsXG4gICAgICBcIlByb2R1Y2VyXCIsXG4gICAgICBcIkNvbnN1bHRhbnRcIixcbiAgICAgIFwiQXNzaXN0YW50XCIsXG4gICAgICBcIkZhY2lsaXRhdG9yXCIsXG4gICAgICBcIkFnZW50XCIsXG4gICAgICBcIlJlcHJlc2VudGF0aXZlXCIsXG4gICAgICBcIlN0cmF0ZWdpc3RcIlxuICAgIF1cbiAgfSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbnBsLmFkZHJlc3MgPSB7XG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdhbmlzdGFuXCIsXG4gICAgXCJBbGJhbmlhXCIsXG4gICAgXCJBbGdpZXJpYVwiLFxuICAgIFwiQW5kb3JhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFudGlndWEgaSBCYXJidWRhXCIsXG4gICAgXCJBcmFiaWEgU2F1ZHlqc2thXCIsXG4gICAgXCJBcmdlbnR5bmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkF1c3RyYWxpYVwiLFxuICAgIFwiQXVzdHJpYVwiLFxuICAgIFwiQXplcmJlamTFvGFuXCIsXG4gICAgXCJCYWhhbXlcIixcbiAgICBcIkJhaHJham5cIixcbiAgICBcIkJhbmdsYWRlc3pcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxnaWFcIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQmlhxYJvcnXFm1wiLFxuICAgIFwiQmlybWFcIixcbiAgICBcIkJvbGl3aWFcIixcbiAgICBcIlN1Y3JlXCIsXG4gICAgXCJCb8WbbmlhIGkgSGVyY2Vnb3dpbmFcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCcmF6eWxpYVwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJCdcWCZ2FyaWFcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW55XCIsXG4gICAgXCJDaG9yd2FjamFcIixcbiAgICBcIkN5cHJcIixcbiAgICBcIkN6YWRcIixcbiAgICBcIkN6YXJub2fDs3JhXCIsXG4gICAgXCJDemVjaHlcIixcbiAgICBcIkRhbmlhXCIsXG4gICAgXCJEZW1va3JhdHljem5hIFJlcHVibGlrYSBLb25nYVwiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIkRvbWluaWthbmFcIixcbiAgICBcIkTFvGlidXRpXCIsXG4gICAgXCJFZ2lwdFwiLFxuICAgIFwiRWt3YWRvclwiLFxuICAgIFwiRXJ5dHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRpb3BpYVwiLFxuICAgIFwiRmlkxbxpXCIsXG4gICAgXCJGaWxpcGlueVwiLFxuICAgIFwiRmlubGFuZGlhXCIsXG4gICAgXCJGcmFuY2phXCIsXG4gICAgXCJHYWJvblwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR3JlY2phXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcnV6amFcIixcbiAgICBcIkd1amFuYVwiLFxuICAgIFwiR3dhdGVtYWxhXCIsXG4gICAgXCJHd2luZWFcIixcbiAgICBcIkd3aW5lYSBCaXNzYXVcIixcbiAgICBcIkd3aW5lYSBSw7N3bmlrb3dhXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGlzenBhbmlhXCIsXG4gICAgXCJIb2xhbmRpYVwiLFxuICAgIFwiSGFnYVwiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkluZGllXCIsXG4gICAgXCJJbmRvbmV6amFcIixcbiAgICBcIklyYWtcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklybGFuZGlhXCIsXG4gICAgXCJJc2xhbmRpYVwiLFxuICAgIFwiSXpyYWVsXCIsXG4gICAgXCJKYW1hamthXCIsXG4gICAgXCJKYXBvbmlhXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiSm9yZGFuaWFcIixcbiAgICBcIkthbWJvZMW8YVwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwiS2F6YWNoc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpc3RhblwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIktvbHVtYmlhXCIsXG4gICAgXCJLb21vcnlcIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJLb3JlYSBQb8WCdWRuaW93YVwiLFxuICAgIFwiS29yZWEgUMOzxYJub2NuYVwiLFxuICAgIFwiS29zdGFyeWthXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdXdlanRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxpYmFuXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJpYVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0d2FcIixcbiAgICBcIkx1a3NlbWJ1cmdcIixcbiAgICBcIsWBb3R3YVwiLFxuICAgIFwiTWFjZWRvbmlhXCIsXG4gICAgXCJNYWRhZ2Fza2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGVkaXd5XCIsXG4gICAgXCJNYWxlemphXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2tvXCIsXG4gICAgXCJNYXVyZXRhbmlhXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1la3N5a1wiLFxuICAgIFwiTWlrcm9uZXpqYVwiLFxuICAgIFwiTW/FgmRhd2lhXCIsXG4gICAgXCJNb25ha29cIixcbiAgICBcIk1vbmdvbGlhXCIsXG4gICAgXCJNb3phbWJpa1wiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJOaWVtY3lcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaWthcmFndWFcIixcbiAgICBcIk5vcndlZ2lhXCIsXG4gICAgXCJOb3dhIFplbGFuZGlhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbmFtYVwiLFxuICAgIFwiUGFwdWEtTm93YSBHd2luZWFcIixcbiAgICBcIlBhcmFnd2FqXCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQb2xza2FcIixcbiAgICBcIjMyMiA1NzVcIixcbiAgICBcIlBvcnR1Z2FsaWFcIixcbiAgICBcIlJlcHVibGlrYSBQb8WCdWRuaW93ZWogQWZyeWtpXCIsXG4gICAgXCJSZXB1Ymxpa2EgxZpyb2Rrb3dvYWZyeWthxYRza2FcIixcbiAgICBcIlJlcHVibGlrYSBaaWVsb25lZ28gUHJ6eWzEhWRrYVwiLFxuICAgIFwiUm9zamFcIixcbiAgICBcIlJ1bXVuaWFcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiU2FpbnQgS2l0dHMgaSBOZXZpc1wiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIlNhaW50IFZpbmNlbnQgaSBHcmVuYWR5bnlcIixcbiAgICBcIlNhbHdhZG9yXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU2VyYmlhXCIsXG4gICAgXCJTZXN6ZWxlXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbmdhcHVyXCIsXG4gICAgXCJTxYJvd2FjamFcIixcbiAgICBcIlPFgm93ZW5pYVwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdGFueSBaamVkbm9jem9uZVwiLFxuICAgIFwiU3VhemlcIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdWRhbiBQb8WCdWRuaW93eVwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3lyaWFcIixcbiAgICBcIlN6d2FqY2FyaWFcIixcbiAgICBcIlN6d2VjamFcIixcbiAgICBcIlRhZMW8eWtpc3RhblwiLFxuICAgIFwiVGFqbGFuZGlhXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGltb3IgV3NjaG9kbmlcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcnluaWRhZCBpIFRvYmFnb1wiLFxuICAgIFwiVHVuZXpqYVwiLFxuICAgIFwiVHVyY2phXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiRnVuYWZ1dGlcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluYVwiLFxuICAgIFwiVXJ1Z3dhalwiLFxuICAgIDIwMDgsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJXYXR5a2FuXCIsXG4gICAgXCJXZW5lenVlbGFcIixcbiAgICBcIlfEmWdyeVwiLFxuICAgIFwiV2llbGthIEJyeXRhbmlhXCIsXG4gICAgXCJXaWV0bmFtXCIsXG4gICAgXCJXxYJvY2h5XCIsXG4gICAgXCJXeWJyemXFvGUgS2/Fm2NpIFPFgm9uaW93ZWpcIixcbiAgICBcIld5c3B5IE1hcnNoYWxsYVwiLFxuICAgIFwiV3lzcHkgU2Fsb21vbmFcIixcbiAgICBcIld5c3B5IMWad2nEmXRlZ28gVG9tYXN6YSBpIEtzacSFxbzEmWNhXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCIsXG4gICAgXCJaamVkbm9jem9uZSBFbWlyYXR5IEFyYWJza2llXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3ByZWZpeFwiOiBbXG4gICAgXCJ1bC5cIixcbiAgICBcImFsLlwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0LiAjIyNcIixcbiAgICBcIlN1aXRlICMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJEb2xub8WbbMSFc2tpZVwiLFxuICAgIFwiS3VqYXdza28tcG9tb3Jza2llXCIsXG4gICAgXCJMdWJlbHNraWVcIixcbiAgICBcIkx1YnVza2llXCIsXG4gICAgXCLFgcOzZHpraWVcIixcbiAgICBcIk1hxYJvcG9sc2tpZVwiLFxuICAgIFwiTWF6b3dpZWNraWVcIixcbiAgICBcIk9wb2xza2llXCIsXG4gICAgXCJQb2RrYXJwYWNraWVcIixcbiAgICBcIlBvZGxhc2tpZVwiLFxuICAgIFwiUG9tb3Jza2llXCIsXG4gICAgXCLFmmzEhXNraWVcIixcbiAgICBcIsWad2nEmXRva3J6eXNraWVcIixcbiAgICBcIldhcm1pxYRza28tbWF6dXJza2llXCIsXG4gICAgXCJXaWVsa29wb2xza2llXCIsXG4gICAgXCJaYWNob2RuaW9wb21vcnNraWVcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiRMWaXCIsXG4gICAgXCJLUFwiLFxuICAgIFwiTEJcIixcbiAgICBcIkxTXCIsXG4gICAgXCLFgURcIixcbiAgICBcIk1QXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiT1BcIixcbiAgICBcIlBLXCIsXG4gICAgXCJQTFwiLFxuICAgIFwiUE1cIixcbiAgICBcIsWaTFwiLFxuICAgIFwixZpLXCIsXG4gICAgXCJXTVwiLFxuICAgIFwiV1BcIixcbiAgICBcIlpQXCJcbiAgXSxcbiAgXCJjaXR5X25hbWVcIjogW1xuICAgIFwiQWxla3NhbmRyw7N3IEt1amF3c2tpXCIsXG4gICAgXCJBbGVrc2FuZHLDs3cgxYHDs2R6a2lcIixcbiAgICBcIkFsd2VybmlhXCIsXG4gICAgXCJBbmRyeWNow7N3XCIsXG4gICAgXCJBbm5vcG9sXCIsXG4gICAgXCJBdWd1c3TDs3dcIixcbiAgICBcIkJhYmltb3N0XCIsXG4gICAgXCJCYWJvcsOzd1wiLFxuICAgIFwiQmFyYW7Ds3cgU2FuZG9taWVyc2tpXCIsXG4gICAgXCJCYXJjaW5cIixcbiAgICBcIkJhcmN6ZXdvXCIsXG4gICAgXCJCYXJkb1wiLFxuICAgIFwiQmFybGluZWtcIixcbiAgICBcIkJhcnRvc3p5Y2VcIixcbiAgICBcIkJhcndpY2VcIixcbiAgICBcIkJlxYJjaGF0w7N3XCIsXG4gICAgXCJCZcWCxbx5Y2VcIixcbiAgICBcIkLEmWR6aW5cIixcbiAgICBcIkJpYcWCYVwiLFxuICAgIFwiQmlhxYJhIFBpc2thXCIsXG4gICAgXCJCaWHFgmEgUG9kbGFza2FcIixcbiAgICBcIkJpYcWCYSBSYXdza2FcIixcbiAgICBcIkJpYcWCb2JyemVnaVwiLFxuICAgIFwiQmlhxYJvZ2FyZFwiLFxuICAgIFwiQmlhxYJ5IELDs3JcIixcbiAgICBcIkJpYcWCeXN0b2tcIixcbiAgICBcIkJpZWN6XCIsXG4gICAgXCJCaWVsYXdhXCIsXG4gICAgXCJCaWVsc2sgUG9kbGFza2lcIixcbiAgICBcIkJpZWxza28tQmlhxYJhXCIsXG4gICAgXCJCaWVydcWEXCIsXG4gICAgXCJCaWVydXTDs3dcIixcbiAgICBcIkJpZcW8dcWEXCIsXG4gICAgXCJCacWCZ29yYWpcIixcbiAgICBcIkJpc2t1cGllY1wiLFxuICAgIFwiQmlzenR5bmVrXCIsXG4gICAgXCJCbGFjaG93bmlhXCIsXG4gICAgXCJCxYJhc3praVwiLFxuICAgIFwiQsWCYcW8b3dhXCIsXG4gICAgXCJCxYJvbmllXCIsXG4gICAgXCJCb2JvbGljZVwiLFxuICAgIFwiQm9ib3dhXCIsXG4gICAgXCJCb2NobmlhXCIsXG4gICAgXCJCb2R6ZW50eW5cIixcbiAgICBcIkJvZ2F0eW5pYVwiLFxuICAgIFwiQm9ndWNod2HFgmFcIixcbiAgICBcIkJvZ3VzesOzdy1Hb3JjZVwiLFxuICAgIFwiQm9qYW5vd29cIixcbiAgICBcIkJvbGVzxYJhd2llY1wiLFxuICAgIFwiQm9sa8Ozd1wiLFxuICAgIFwiQm9yZWsgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJCb3JuZSBTdWxpbm93b1wiLFxuICAgIFwiQnJhbmlld29cIixcbiAgICBcIkJyYcWEc2tcIixcbiAgICBcIkJyb2RuaWNhXCIsXG4gICAgXCJCcm9rXCIsXG4gICAgXCJCcnVzeVwiLFxuICAgIFwiQnJ3aW7Ds3dcIixcbiAgICBcIkJyemVnXCIsXG4gICAgXCJCcnplZyBEb2xueVwiLFxuICAgIFwiQnJ6ZXNrb1wiLFxuICAgIFwiQnJ6ZXN6Y3plXCIsXG4gICAgXCJCcnplxZvEhyBLdWphd3NraVwiLFxuICAgIFwiQnJ6ZXppbnlcIixcbiAgICBcIkJyem9zdGVrXCIsXG4gICAgXCJCcnpvesOzd1wiLFxuICAgIFwiQnVrXCIsXG4gICAgXCJCdWtvd25vXCIsXG4gICAgXCJCdXNrby1aZHLDs2pcIixcbiAgICBcIkJ5Y2hhd2FcIixcbiAgICBcIkJ5Y3p5bmFcIixcbiAgICBcIkJ5ZGdvc3pjelwiLFxuICAgIFwiQnlzdHJ6eWNhIEvFgm9kemthXCIsXG4gICAgXCJCeXRvbVwiLFxuICAgIFwiQnl0b20gT2RyemHFhHNraVwiLFxuICAgIFwiQnl0w7N3XCIsXG4gICAgXCJDZWR5bmlhXCIsXG4gICAgXCJDaGXFgm1cIixcbiAgICBcIkNoZcWCbWVrXCIsXG4gICAgXCJDaGXFgm1ub1wiLFxuICAgIFwiQ2hlxYJtxbxhXCIsXG4gICAgXCJDaMSZY2lueVwiLFxuICAgIFwiQ2htaWVsbmlrXCIsXG4gICAgXCJDaG9jaWFuw7N3XCIsXG4gICAgXCJDaG9jaXdlbFwiLFxuICAgIFwiQ2hvZGVjelwiLFxuICAgIFwiQ2hvZHppZcW8XCIsXG4gICAgXCJDaG9qbmFcIixcbiAgICBcIkNob2puaWNlXCIsXG4gICAgXCJDaG9qbsOzd1wiLFxuICAgIFwiQ2hvcm9zemN6XCIsXG4gICAgXCJDaG9yemVsZVwiLFxuICAgIFwiQ2hvcnrDs3dcIixcbiAgICBcIkNob3N6Y3pub1wiLFxuICAgIFwiQ2hyemFuw7N3XCIsXG4gICAgXCJDaWVjaGFub3dpZWNcIixcbiAgICBcIkNpZWNoYW7Ds3dcIixcbiAgICBcIkNpZWNob2NpbmVrXCIsXG4gICAgXCJDaWVzemFuw7N3XCIsXG4gICAgXCJDaWVzenluXCIsXG4gICAgXCJDacSZxbxrb3dpY2VcIixcbiAgICBcIkN5Ymlua2FcIixcbiAgICBcIkN6YXBsaW5la1wiLFxuICAgIFwiQ3phcm5hIEJpYcWCb3N0b2NrYVwiLFxuICAgIFwiQ3phcm5hIFdvZGFcIixcbiAgICBcIkN6YXJuZVwiLFxuICAgIFwiQ3phcm5rw7N3XCIsXG4gICAgXCJDemNow7N3XCIsXG4gICAgXCJDemVjaG93aWNlLUR6aWVkemljZVwiLFxuICAgIFwiQ3plbGFkxbpcIixcbiAgICBcIkN6ZW1wacWEXCIsXG4gICAgXCJDemVybmllamV3b1wiLFxuICAgIFwiQ3plcnNrXCIsXG4gICAgXCJDemVyd2llxYRza1wiLFxuICAgIFwiQ3plcndpb25rYS1MZXN6Y3p5bnlcIixcbiAgICBcIkN6xJlzdG9jaG93YVwiLFxuICAgIFwiQ3rFgm9wYVwiLFxuICAgIFwiQ3rFgnVjaMOzd1wiLFxuICAgIFwiQ3p5xbxld1wiLFxuICAgIFwixIZtaWVsw7N3XCIsXG4gICAgXCJEYWxlc3p5Y2VcIixcbiAgICBcIkRhcsWCb3dvXCIsXG4gICAgXCJExIViaWVcIixcbiAgICBcIkTEhWJyb3dhIEJpYcWCb3N0b2NrYVwiLFxuICAgIFwiRMSFYnJvd2EgR8Ozcm5pY3phXCIsXG4gICAgXCJExIVicm93YSBUYXJub3dza2FcIixcbiAgICBcIkRlYnJ6bm9cIixcbiAgICBcIkTEmWJpY2FcIixcbiAgICBcIkTEmWJsaW5cIixcbiAgICBcIkTEmWJub1wiLFxuICAgIFwiRG9iY3p5Y2VcIixcbiAgICBcIkRvYmllZ25pZXdcIixcbiAgICBcIkRvYnJhIChwb3dpYXQgxYJvYmVza2kpXCIsXG4gICAgXCJEb2JyYSAocG93aWF0IHR1cmVja2kpXCIsXG4gICAgXCJEb2JyZSBNaWFzdG9cIixcbiAgICBcIkRvYnJvZHppZcWEXCIsXG4gICAgXCJEb2JyemFueVwiLFxuICAgIFwiRG9icnp5xYQgbmFkIFdpc8WCxIVcIixcbiAgICBcIkRvbHNrXCIsXG4gICAgXCJEcmF3bm9cIixcbiAgICBcIkRyYXdza28gUG9tb3Jza2llXCIsXG4gICAgXCJEcmV6ZGVua29cIixcbiAgICBcIkRyb2JpblwiLFxuICAgIFwiRHJvaGljenluXCIsXG4gICAgXCJEcnpld2ljYVwiLFxuICAgIFwiRHVrbGFcIixcbiAgICBcIkR1c3puaWtpLVpkcsOzalwiLFxuICAgIFwiRHluw7N3XCIsXG4gICAgXCJEemlhxYJkb3dvXCIsXG4gICAgXCJEemlhxYJvc3p5Y2VcIixcbiAgICBcIkR6aWHFgm9zenluXCIsXG4gICAgXCJEemllcnpnb8WEXCIsXG4gICAgXCJEemllcsW8b25pw7N3XCIsXG4gICAgXCJEeml3bsOzd1wiLFxuICAgIFwiRWxibMSFZ1wiLFxuICAgIFwiRcWCa1wiLFxuICAgIFwiRnJhbXBvbFwiLFxuICAgIFwiRnJvbWJvcmtcIixcbiAgICBcIkdhcndvbGluXCIsXG4gICAgXCJHxIViaW5cIixcbiAgICBcIkdkYcWEc2tcIixcbiAgICBcIkdkeW5pYVwiLFxuICAgIFwiR2nFvHlja29cIixcbiAgICBcIkdsaW5vamVja1wiLFxuICAgIFwiR2xpd2ljZVwiLFxuICAgIFwiR8WCb2fDs3dcIixcbiAgICBcIkfFgm9nw7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJHxYJvZ8Ozd2VrXCIsXG4gICAgXCJHxYJvd25vXCIsXG4gICAgXCJHxYJ1YmN6eWNlXCIsXG4gICAgXCJHxYJ1Y2hvxYJhenlcIixcbiAgICBcIkfFgnVzenljYVwiLFxuICAgIFwiR25pZXdcIixcbiAgICBcIkduaWV3a293b1wiLFxuICAgIFwiR25pZXpub1wiLFxuICAgIFwiR29nb2xpblwiLFxuICAgIFwiR29sY3pld29cIixcbiAgICBcIkdvbGVuacOzd1wiLFxuICAgIFwiR29saW5hXCIsXG4gICAgXCJHb2x1Yi1Eb2JyennFhFwiLFxuICAgIFwiR2/FgmHFhGN6XCIsXG4gICAgXCJHb8WCZGFwXCIsXG4gICAgXCJHb25pxIVkelwiLFxuICAgIFwiR29ybGljZVwiLFxuICAgIFwiR29yesOzdyDFmmzEhXNraVwiLFxuICAgIFwiR29yesOzdyBXaWVsa29wb2xza2lcIixcbiAgICBcIkdvc3R5bmluXCIsXG4gICAgXCJHb3N0ecWEXCIsXG4gICAgXCJHb8WbY2lub1wiLFxuICAgIFwiR296ZG5pY2FcIixcbiAgICBcIkfDs3JhXCIsXG4gICAgXCJHw7NyYSBLYWx3YXJpYVwiLFxuICAgIFwiR8Ozcm93byBJxYJhd2Vja2llXCIsXG4gICAgXCJHw7Nyem5vXCIsXG4gICAgXCJHcmFiw7N3IG5hZCBQcm9zbsSFXCIsXG4gICAgXCJHcmFqZXdvXCIsXG4gICAgXCJHcm9ka8Ozd1wiLFxuICAgIFwiR3JvZHppc2sgTWF6b3dpZWNraVwiLFxuICAgIFwiR3JvZHppc2sgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJHcsOzamVjXCIsXG4gICAgXCJHcnVkemnEhWR6XCIsXG4gICAgXCJHcnliw7N3XCIsXG4gICAgXCJHcnlmaWNlXCIsXG4gICAgXCJHcnlmaW5vXCIsXG4gICAgXCJHcnlmw7N3IMWabMSFc2tpXCIsXG4gICAgXCJHdWJpblwiLFxuICAgIFwiSGFqbsOzd2thXCIsXG4gICAgXCJIYWxpbsOzd1wiLFxuICAgIFwiSGVsXCIsXG4gICAgXCJIcnViaWVzesOzd1wiLFxuICAgIFwiScWCYXdhXCIsXG4gICAgXCJJxYJvd2FcIixcbiAgICBcIknFgsW8YVwiLFxuICAgIFwiSW1pZWxpblwiLFxuICAgIFwiSW5vd3JvY8WCYXdcIixcbiAgICBcIknFhHNrb1wiLFxuICAgIFwiSXdvbmljei1aZHLDs2pcIixcbiAgICBcIkl6YmljYSBLdWphd3NrYVwiLFxuICAgIFwiSmFixYJvbm93byBQb21vcnNraWVcIixcbiAgICBcIkphbmlrb3dvXCIsXG4gICAgXCJKYW5vd2llYyBXaWVsa29wb2xza2lcIixcbiAgICBcIkphbsOzdyBMdWJlbHNraVwiLFxuICAgIFwiSmFyb2NpblwiLFxuICAgIFwiSmFyb3PFgmF3XCIsXG4gICAgXCJKYXNpZcWEXCIsXG4gICAgXCJKYXPFgm9cIixcbiAgICBcIkphc3Rhcm5pYVwiLFxuICAgIFwiSmFzdHJvd2llXCIsXG4gICAgXCJKYXN0cnrEmWJpZS1aZHLDs2pcIixcbiAgICBcIkphd29yXCIsXG4gICAgXCJKYXdvcnpub1wiLFxuICAgIFwiSmF3b3J6eW5hIMWabMSFc2thXCIsXG4gICAgXCJKZWRsaWN6ZVwiLFxuICAgIFwiSmVkbGluYS1aZHLDs2pcIixcbiAgICBcIkplZHdhYm5lXCIsXG4gICAgXCJKZWxjei1MYXNrb3dpY2VcIixcbiAgICBcIkplbGVuaWEgR8OzcmFcIixcbiAgICBcIkplemlvcmFueVwiLFxuICAgIFwiSsSZZHJ6ZWrDs3dcIixcbiAgICBcIkpvcmRhbsOzd1wiLFxuICAgIFwiSsOzemVmw7N3IChwb3dpYXQgYmnFgmdvcmFqc2tpKVwiLFxuICAgIFwiSsOzemVmw7N3IChwb3dpYXQgb3R3b2NraSlcIixcbiAgICBcIkp1dHJvc2luXCIsXG4gICAgXCJLYWxldHlcIixcbiAgICBcIkthbGlzelwiLFxuICAgIFwiS2FsaXN6IFBvbW9yc2tpXCIsXG4gICAgXCJLYWx3YXJpYSBaZWJyenlkb3dza2FcIixcbiAgICBcIkthxYJ1c3p5blwiLFxuICAgIFwiS2FtaWVubmEgR8OzcmFcIixcbiAgICBcIkthbWllxYQgS3JhamXFhHNraVwiLFxuICAgIFwiS2FtaWXFhCBQb21vcnNraVwiLFxuICAgIFwiS2FtaWXFhHNrXCIsXG4gICAgXCJLYcWEY3p1Z2FcIixcbiAgICBcIkthcmN6ZXdcIixcbiAgICBcIkthcmdvd2FcIixcbiAgICBcIkthcmxpbm9cIixcbiAgICBcIkthcnBhY3pcIixcbiAgICBcIkthcnR1enlcIixcbiAgICBcIkthdG93aWNlXCIsXG4gICAgXCJLYXppbWllcnogRG9sbnlcIixcbiAgICBcIkthemltaWVyemEgV2llbGthXCIsXG4gICAgXCJLxIV0eSBXcm9jxYJhd3NraWVcIixcbiAgICBcIktjeW5pYVwiLFxuICAgIFwiS8SZZHppZXJ6eW4tS2/FumxlXCIsXG4gICAgXCJLxJlwaWNlXCIsXG4gICAgXCJLxJlwbm9cIixcbiAgICBcIkvEmXRyenluXCIsXG4gICAgXCJLxJl0eVwiLFxuICAgIFwiS2llbGNlXCIsXG4gICAgXCJLaWV0cnpcIixcbiAgICBcIktpc2llbGljZVwiLFxuICAgIFwiS2xlY3pld1wiLFxuICAgIFwiS2xlc3pjemVsZVwiLFxuICAgIFwiS2x1Y3pib3JrXCIsXG4gICAgXCJLxYJlY2tvXCIsXG4gICAgXCJLxYJvYnVja1wiLFxuICAgIFwiS8WCb2Rhd2FcIixcbiAgICBcIkvFgm9kemtvXCIsXG4gICAgXCJLbnVyw7N3XCIsXG4gICAgXCJLbnlzenluXCIsXG4gICAgXCJLb2J5bGluXCIsXG4gICAgXCJLb2J5xYJrYVwiLFxuICAgIFwiS29ja1wiLFxuICAgIFwiS29sYnVzem93YVwiLFxuICAgIFwiS29sbm9cIixcbiAgICBcIktvbG9ub3dza2llXCIsXG4gICAgXCJLb2x1c3praVwiLFxuICAgIFwiS2/FgmFjenljZVwiLFxuICAgIFwiS2/Fgm9cIixcbiAgICBcIktvxYJvYnJ6ZWdcIixcbiAgICBcIktvbmllY3BvbFwiLFxuICAgIFwiS29uaW5cIixcbiAgICBcIktvbnN0YW5jaW4tSmV6aW9ybmFcIixcbiAgICBcIktvbnN0YW50eW7Ds3cgxYHDs2R6a2lcIixcbiAgICBcIktvxYRza2llXCIsXG4gICAgXCJLb3Byenl3bmljYVwiLFxuICAgIFwiS29yZmFudMOzd1wiLFxuICAgIFwiS29yb25vd29cIixcbiAgICBcIktvcnN6ZVwiLFxuICAgIFwiS29zw7N3IExhY2tpXCIsXG4gICAgXCJLb3N0cnp5blwiLFxuICAgIFwiS29zdHJ6eW4gbmFkIE9kcsSFXCIsXG4gICAgXCJLb3N6YWxpblwiLFxuICAgIFwiS2/Fm2NpYW5cIixcbiAgICBcIktvxZtjaWVyenluYVwiLFxuICAgIFwiS293YWxcIixcbiAgICBcIktvd2FsZXdvIFBvbW9yc2tpZVwiLFxuICAgIFwiS293YXJ5XCIsXG4gICAgXCJLb3ppZWfFgm93eVwiLFxuICAgIFwiS296aWVuaWNlXCIsXG4gICAgXCJLb8W6bWluIFdpZWxrb3BvbHNraVwiLFxuICAgIFwiS2/FvHVjaMOzd1wiLFxuICAgIFwiS8Ozcm5pa1wiLFxuICAgIFwiS3JhamVua2FcIixcbiAgICBcIktyYWvDs3dcIixcbiAgICBcIktyYXBrb3dpY2VcIixcbiAgICBcIktyYXNub2Jyw7NkXCIsXG4gICAgXCJLcmFzbnlzdGF3XCIsXG4gICAgXCJLcmHFm25pa1wiLFxuICAgIFwiS3JvYmlhXCIsXG4gICAgXCJLcm9zbm9cIixcbiAgICBcIktyb3NubyBPZHJ6YcWEc2tpZVwiLFxuICAgIFwiS3JvxZtuaWV3aWNlXCIsXG4gICAgXCJLcm90b3N6eW5cIixcbiAgICBcIktydXN6d2ljYVwiLFxuICAgIFwiS3J5bmljYSBNb3Jza2FcIixcbiAgICBcIktyeW5pY2EtWmRyw7NqXCIsXG4gICAgXCJLcnlua2lcIixcbiAgICBcIktyemFub3dpY2VcIixcbiAgICBcIktyemVwaWNlXCIsXG4gICAgXCJLcnplc3pvd2ljZVwiLFxuICAgIFwiS3J6eXdpxYRcIixcbiAgICBcIktyennFvCBXaWVsa29wb2xza2lcIixcbiAgICBcIktzacSFxbwgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJLdWRvd2EtWmRyw7NqXCIsXG4gICAgXCJLdW7Ds3dcIixcbiAgICBcIkt1dG5vXCIsXG4gICAgXCJLdcW6bmlhIFJhY2lib3Jza2FcIixcbiAgICBcIkt3aWR6eW5cIixcbiAgICBcIkzEhWRlay1aZHLDs2pcIixcbiAgICBcIkxlZ2lvbm93b1wiLFxuICAgIFwiTGVnbmljYVwiLFxuICAgIFwiTGVza29cIixcbiAgICBcIkxlc3pub1wiLFxuICAgIFwiTGXFm25hXCIsXG4gICAgXCJMZcWbbmljYVwiLFxuICAgIFwiTGV3aW4gQnJ6ZXNraVwiLFxuICAgIFwiTGXFvGFqc2tcIixcbiAgICBcIkzEmWJvcmtcIixcbiAgICBcIkzEmWR6aW55XCIsXG4gICAgXCJMaWJpxIXFvFwiLFxuICAgIFwiTGlkemJhcmtcIixcbiAgICBcIkxpZHpiYXJrIFdhcm1pxYRza2lcIixcbiAgICBcIkxpbWFub3dhXCIsXG4gICAgXCJMaXBpYW55XCIsXG4gICAgXCJMaXBub1wiLFxuICAgIFwiTGlwc2tcIixcbiAgICBcIkxpcHNrb1wiLFxuICAgIFwiTHViYWN6w7N3XCIsXG4gICAgXCJMdWJhxYRcIixcbiAgICBcIkx1YmFydMOzd1wiLFxuICAgIFwiTHViYXdhXCIsXG4gICAgXCJMdWJhd2thXCIsXG4gICAgXCJMdWJpZcWEIEt1amF3c2tpXCIsXG4gICAgXCJMdWJpblwiLFxuICAgIFwiTHVibGluXCIsXG4gICAgXCJMdWJsaW5pZWNcIixcbiAgICBcIkx1Ym5pZXdpY2VcIixcbiAgICBcIkx1Ym9taWVyelwiLFxuICAgIFwiTHVib8WEXCIsXG4gICAgXCJMdWJyYW5pZWNcIixcbiAgICBcIkx1YnNrb1wiLFxuICAgIFwiTHfDs3dla1wiLFxuICAgIFwiTHfDs3dlayDFmmzEhXNraVwiLFxuICAgIFwixYFhYmlzenluXCIsXG4gICAgXCLFgWHFhGN1dFwiLFxuICAgIFwixYFhcHlcIixcbiAgICBcIsWBYXNpblwiLFxuICAgIFwixYFhc2tcIixcbiAgICBcIsWBYXNrYXJ6ZXdcIixcbiAgICBcIsWBYXN6Y3rDs3dcIixcbiAgICBcIsWBYXppc2thIEfDs3JuZVwiLFxuICAgIFwixYFhenlcIixcbiAgICBcIsWBZWJhXCIsXG4gICAgXCLFgcSZY3puYVwiLFxuICAgIFwixYHEmWN6eWNhXCIsXG4gICAgXCLFgcSZa25pY2FcIixcbiAgICBcIsWBb2JlelwiLFxuICAgIFwixYFvYsW8ZW5pY2FcIixcbiAgICBcIsWBb2Now7N3XCIsXG4gICAgXCLFgW9taWFua2lcIixcbiAgICBcIsWBb23FvGFcIixcbiAgICBcIsWBb3NpY2VcIixcbiAgICBcIsWBb3dpY3pcIixcbiAgICBcIsWBw7NkxbpcIixcbiAgICBcIsWBdWvDs3dcIixcbiAgICBcIk1ha8OzdyBNYXpvd2llY2tpXCIsXG4gICAgXCJNYWvDs3cgUG9kaGFsYcWEc2tpXCIsXG4gICAgXCJNYWxib3JrXCIsXG4gICAgXCJNYcWCb2dvc3pjelwiLFxuICAgIFwiTWHFgm9taWNlXCIsXG4gICAgXCJNYXJnb25pblwiLFxuICAgIFwiTWFya2lcIixcbiAgICBcIk1hc3pld29cIixcbiAgICBcIk1pYXN0ZWN6a28gxZpsxIVza2llXCIsXG4gICAgXCJNaWFzdGtvXCIsXG4gICAgXCJNaWNoYcWCb3dvXCIsXG4gICAgXCJNaWVjaMOzd1wiLFxuICAgIFwiTWllanNrYSBHw7Nya2FcIixcbiAgICBcIk1pZWxlY1wiLFxuICAgIFwiTWllcm9zesOzd1wiLFxuICAgIFwiTWllc3prb3dpY2VcIixcbiAgICBcIk1pxJlkenliw7NyelwiLFxuICAgIFwiTWnEmWR6eWNow7NkXCIsXG4gICAgXCJNacSZZHp5bGVzaWVcIixcbiAgICBcIk1pxJlkenlyemVjIFBvZGxhc2tpXCIsXG4gICAgXCJNacSZZHp5cnplY3pcIixcbiAgICBcIk1pxJlkenl6ZHJvamVcIixcbiAgICBcIk1pa2/FgmFqa2lcIixcbiAgICBcIk1pa2/FgsOzd1wiLFxuICAgIFwiTWlrc3RhdFwiLFxuICAgIFwiTWlsYW7Ds3dla1wiLFxuICAgIFwiTWlsaWN6XCIsXG4gICAgXCJNacWCYWtvd29cIixcbiAgICBcIk1pxYJvbcWCeW5cIixcbiAgICBcIk1pxYJvc8WCYXdcIixcbiAgICBcIk1pxYRzayBNYXpvd2llY2tpXCIsXG4gICAgXCJNaXJvc8WCYXdpZWNcIixcbiAgICBcIk1pcnNrXCIsXG4gICAgXCJNxYJhd2FcIixcbiAgICBcIk3FgnluYXJ5XCIsXG4gICAgXCJNb2dpZWxuaWNhXCIsXG4gICAgXCJNb2dpbG5vXCIsXG4gICAgXCJNb8WEa2lcIixcbiAgICBcIk1vcsSFZ1wiLFxuICAgIFwiTW9yZHlcIixcbiAgICBcIk1vcnnFhFwiLFxuICAgIFwiTW9zaW5hXCIsXG4gICAgXCJNcsSFZ293b1wiLFxuICAgIFwiTXJvY3phXCIsXG4gICAgXCJNc3phbmEgRG9sbmFcIixcbiAgICBcIk1zemN6b27Ds3dcIixcbiAgICBcIk11cm93YW5hIEdvxZtsaW5hXCIsXG4gICAgXCJNdXN6eW5hXCIsXG4gICAgXCJNeXPFgm93aWNlXCIsXG4gICAgXCJNeXN6a8Ozd1wiLFxuICAgIFwiTXlzenluaWVjXCIsXG4gICAgXCJNecWbbGVuaWNlXCIsXG4gICAgXCJNecWbbGliw7NyelwiLFxuICAgIFwiTmFrxYJvIG5hZCBOb3RlY2nEhVwiLFxuICAgIFwiTmHFgsSZY3rDs3dcIixcbiAgICBcIk5hbXlzxYLDs3dcIixcbiAgICBcIk5hcm9sXCIsXG4gICAgXCJOYXNpZWxza1wiLFxuICAgIFwiTmVrbGFcIixcbiAgICBcIk5pZHppY2FcIixcbiAgICBcIk5pZW1jemFcIixcbiAgICBcIk5pZW1vZGxpblwiLFxuICAgIFwiTmllcG/Fgm9taWNlXCIsXG4gICAgXCJOaWVzemF3YVwiLFxuICAgIFwiTmlza29cIixcbiAgICBcIk5vd2EgRMSZYmFcIixcbiAgICBcIk5vd2EgUnVkYVwiLFxuICAgIFwiTm93YSBTYXJ6eW5hXCIsXG4gICAgXCJOb3dhIFPDs2xcIixcbiAgICBcIk5vd2VcIixcbiAgICBcIk5vd2UgQnJ6ZXNrb1wiLFxuICAgIFwiTm93ZSBNaWFzdGVjemtvXCIsXG4gICAgXCJOb3dlIE1pYXN0byBMdWJhd3NraWVcIixcbiAgICBcIk5vd2UgTWlhc3RvIG5hZCBQaWxpY8SFXCIsXG4gICAgXCJOb3dlIFNrYWxtaWVyenljZVwiLFxuICAgIFwiTm93ZSBXYXJwbm9cIixcbiAgICBcIk5vd29nYXJkXCIsXG4gICAgXCJOb3dvZ3JvZHppZWNcIixcbiAgICBcIk5vd29ncsOzZFwiLFxuICAgIFwiTm93b2dyw7NkIEJvYnJ6YcWEc2tpXCIsXG4gICAgXCJOb3d5IER3w7NyIEdkYcWEc2tpXCIsXG4gICAgXCJOb3d5IER3w7NyIE1hem93aWVja2lcIixcbiAgICBcIk5vd3kgU8SFY3pcIixcbiAgICBcIk5vd3kgU3Rhd1wiLFxuICAgIFwiTm93eSBUYXJnXCIsXG4gICAgXCJOb3d5IFRvbXnFm2xcIixcbiAgICBcIk5vd3kgV2nFm25pY3pcIixcbiAgICBcIk55c2FcIixcbiAgICBcIk9ib3JuaWtpXCIsXG4gICAgXCJPYm9ybmlraSDFmmzEhXNraWVcIixcbiAgICBcIk9icnp5Y2tvXCIsXG4gICAgXCJPZG9sYW7Ds3dcIixcbiAgICBcIk9ncm9kemllbmllY1wiLFxuICAgIFwiT2tvbmVrXCIsXG4gICAgXCJPbGVja29cIixcbiAgICBcIk9sZXNub1wiLFxuICAgIFwiT2xlc3p5Y2VcIixcbiAgICBcIk9sZcWbbmljYVwiLFxuICAgIFwiT2xrdXN6XCIsXG4gICAgXCJPbHN6dHluXCIsXG4gICAgXCJPbHN6dHluZWtcIixcbiAgICBcIk9sc3p5bmFcIixcbiAgICBcIk/FgmF3YVwiLFxuICAgIFwiT3BhbGVuaWNhXCIsXG4gICAgXCJPcGF0w7N3XCIsXG4gICAgXCJPcG9jem5vXCIsXG4gICAgXCJPcG9sZVwiLFxuICAgIFwiT3BvbGUgTHViZWxza2llXCIsXG4gICAgXCJPcm5ldGFcIixcbiAgICBcIk9yemVzemVcIixcbiAgICBcIk9yenlzelwiLFxuICAgIFwiT3NpZWN6bmFcIixcbiAgICBcIk9zaWVrXCIsXG4gICAgXCJPc3Ryb8WCxJlrYVwiLFxuICAgIFwiT3N0cm9yw7NnXCIsXG4gICAgXCJPc3Ryb3dpZWMgxZp3acSZdG9rcnp5c2tpXCIsXG4gICAgXCJPc3Ryw7NkYVwiLFxuICAgIFwiT3N0csOzdyBMdWJlbHNraVwiLFxuICAgIFwiT3N0csOzdyBNYXpvd2llY2thXCIsXG4gICAgXCJPc3Ryw7N3IFdpZWxrb3BvbHNraVwiLFxuICAgIFwiT3N0cnplc3rDs3dcIixcbiAgICBcIk/Fm25vIEx1YnVza2llXCIsXG4gICAgXCJPxZt3acSZY2ltXCIsXG4gICAgXCJPdG11Y2jDs3dcIixcbiAgICBcIk90d29ja1wiLFxuICAgIFwiT3ppbWVrXCIsXG4gICAgXCJPem9ya8Ozd1wiLFxuICAgIFwiT8W8YXLDs3dcIixcbiAgICBcIk/FvGFyw7N3IE1hem93aWVja2lcIixcbiAgICBcIlBhYmlhbmljZVwiLFxuICAgIFwiUGFjemvDs3dcIixcbiAgICBcIlBhasSZY3pub1wiLFxuICAgIFwiUGFrb8WbxIdcIixcbiAgICBcIlBhcmN6ZXdcIixcbiAgICBcIlBhc8WCxJlrXCIsXG4gICAgXCJQYXN5bVwiLFxuICAgIFwiUGVscGxpblwiLFxuICAgIFwiUGXFgmN6eWNlXCIsXG4gICAgXCJQaWFzZWN6bm9cIixcbiAgICBcIlBpYXNraVwiLFxuICAgIFwiUGlhc3TDs3dcIixcbiAgICBcIlBpZWNob3dpY2VcIixcbiAgICBcIlBpZWthcnkgxZpsxIVza2llXCIsXG4gICAgXCJQaWVuacSZxbxub1wiLFxuICAgIFwiUGllxYRza1wiLFxuICAgIFwiUGllc3p5Y2VcIixcbiAgICBcIlBpbGF3YVwiLFxuICAgIFwiUGlsaWNhXCIsXG4gICAgXCJQaWx6bm9cIixcbiAgICBcIlBpxYJhXCIsXG4gICAgXCJQacWCYXdhIEfDs3JuYVwiLFxuICAgIFwiUGnFhGN6w7N3XCIsXG4gICAgXCJQaW9ua2lcIixcbiAgICBcIlBpb3Rya8OzdyBLdWphd3NraVwiLFxuICAgIFwiUGlvdHJrw7N3IFRyeWJ1bmFsc2tpXCIsXG4gICAgXCJQaXN6XCIsXG4gICAgXCJQaXduaWN6bmEtWmRyw7NqXCIsXG4gICAgXCJQbGVzemV3XCIsXG4gICAgXCJQxYJvY2tcIixcbiAgICBcIlDFgm/FhHNrXCIsXG4gICAgXCJQxYJvdHlcIixcbiAgICBcIlBuaWV3eVwiLFxuICAgIFwiUG9iaWVkemlza2FcIixcbiAgICBcIlBvZGTEmWJpY2VcIixcbiAgICBcIlBvZGtvd2EgTGXFm25hXCIsXG4gICAgXCJQb2dvcnplbGFcIixcbiAgICBcIlBvbGFuaWNhLVpkcsOzalwiLFxuICAgIFwiUG9sYW7Ds3dcIixcbiAgICBcIlBvbGljZVwiLFxuICAgIFwiUG9sa293aWNlXCIsXG4gICAgXCJQb8WCYW5pZWNcIixcbiAgICBcIlBvxYJjenluLVpkcsOzalwiLFxuICAgIFwiUG9uaWF0b3dhXCIsXG4gICAgXCJQb25pZWNcIixcbiAgICBcIlBvcsSZYmFcIixcbiAgICBcIlBvem5hxYRcIixcbiAgICBcIlByYWJ1dHlcIixcbiAgICBcIlByYXN6a2FcIixcbiAgICBcIlByb2Nob3dpY2VcIixcbiAgICBcIlByb3N6b3dpY2VcIixcbiAgICBcIlByw7NzemvDs3dcIixcbiAgICBcIlBydWNobmlrXCIsXG4gICAgXCJQcnVkbmlrXCIsXG4gICAgXCJQcnVzaWNlXCIsXG4gICAgXCJQcnVzemN6IEdkYcWEc2tpXCIsXG4gICAgXCJQcnVzemvDs3dcIixcbiAgICBcIlByemFzbnlzelwiLFxuICAgIFwiUHJ6ZWPFgmF3XCIsXG4gICAgXCJQcnplZGLDs3J6XCIsXG4gICAgXCJQcnplZGVjelwiLFxuICAgIFwiUHJ6ZW1rw7N3XCIsXG4gICAgXCJQcnplbXnFm2xcIixcbiAgICBcIlByemV3b3Jza1wiLFxuICAgIFwiUHJ6eXN1Y2hhXCIsXG4gICAgXCJQc3pjenluYVwiLFxuICAgIFwiUHN6w7N3XCIsXG4gICAgXCJQdWNrXCIsXG4gICAgXCJQdcWCYXd5XCIsXG4gICAgXCJQdcWCdHVza1wiLFxuICAgIFwiUHVzemN6eWtvd29cIixcbiAgICBcIlB5cnp5Y2VcIixcbiAgICBcIlB5c2tvd2ljZVwiLFxuICAgIFwiUHl6ZHJ5XCIsXG4gICAgXCJSYWJrYS1aZHLDs2pcIixcbiAgICBcIlJhY2nEhcW8XCIsXG4gICAgXCJSYWNpYsOzcnpcIixcbiAgICBcIlJhZGvDs3dcIixcbiAgICBcIlJhZGxpblwiLFxuICAgIFwiUmFkxYLDs3dcIixcbiAgICBcIlJhZG9tXCIsXG4gICAgXCJSYWRvbXNrb1wiLFxuICAgIFwiUmFkb215xZtsIFdpZWxraVwiLFxuICAgIFwiUmFkeW1ub1wiLFxuICAgIFwiUmFkemllasOzd1wiLFxuICAgIFwiUmFkemlvbmvDs3dcIixcbiAgICBcIlJhZHp5bWluXCIsXG4gICAgXCJSYWR6ecWEIENoZcWCbWnFhHNraVwiLFxuICAgIFwiUmFkennFhCBQb2RsYXNraVwiLFxuICAgIFwiUmFqZ3LDs2RcIixcbiAgICBcIlJha29uaWV3aWNlXCIsXG4gICAgXCJSYXN6a8Ozd1wiLFxuICAgIFwiUmF3YSBNYXpvd2llY2thXCIsXG4gICAgXCJSYXdpY3pcIixcbiAgICBcIlJlY3pcIixcbiAgICBcIlJlZGFcIixcbiAgICBcIlJlam93aWVjIEZhYnJ5Y3pueVwiLFxuICAgIFwiUmVza29cIixcbiAgICBcIlJlc3plbFwiLFxuICAgIFwiUm9nb8W6bm9cIixcbiAgICBcIlJvcGN6eWNlXCIsXG4gICAgXCJSw7PFvGFuXCIsXG4gICAgXCJSdWNpYW5lLU5pZGFcIixcbiAgICBcIlJ1ZGEgxZpsxIVza2FcIixcbiAgICBcIlJ1ZG5payBuYWQgU2FuZW1cIixcbiAgICBcIlJ1bWlhXCIsXG4gICAgXCJSeWJuaWtcIixcbiAgICBcIlJ5Y2h3YcWCXCIsXG4gICAgXCJSeWR1xYJ0b3d5XCIsXG4gICAgXCJSeWR6eW5hXCIsXG4gICAgXCJSeWdsaWNlXCIsXG4gICAgXCJSeWtpXCIsXG4gICAgXCJSeW1hbsOzd1wiLFxuICAgIFwiUnluXCIsXG4gICAgXCJSeXBpblwiLFxuICAgIFwiUnplcGluXCIsXG4gICAgXCJSemVzesOzd1wiLFxuICAgIFwiUnpnw7N3XCIsXG4gICAgXCJTYW5kb21pZXJ6XCIsXG4gICAgXCJTYW5va1wiLFxuICAgIFwiU2VqbnlcIixcbiAgICBcIlNlcm9ja1wiLFxuICAgIFwiU8SZZHppc3rDs3dcIixcbiAgICBcIlPEmWR6aXN6w7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJTxJlwb3BvbFwiLFxuICAgIFwiU8SZcMOzbG5vIEtyYWplxYRza2llXCIsXG4gICAgXCJTaWFuw7N3XCIsXG4gICAgXCJTaWVjaG5pY2VcIixcbiAgICBcIlNpZWRsY2VcIixcbiAgICBcIlNpZW1pYW5vd2ljZSDFmmzEhXNraWVcIixcbiAgICBcIlNpZW1pYXR5Y3plXCIsXG4gICAgXCJTaWVuaWF3YVwiLFxuICAgIFwiU2llcmFkelwiLFxuICAgIFwiU2llcmFrw7N3XCIsXG4gICAgXCJTaWVycGNcIixcbiAgICBcIlNpZXdpZXJ6XCIsXG4gICAgXCJTa2FsYm1pZXJ6XCIsXG4gICAgXCJTa2HFgmFcIixcbiAgICBcIlNrYXJzemV3eVwiLFxuICAgIFwiU2thcnlzemV3XCIsXG4gICAgXCJTa2Fyxbx5c2tvLUthbWllbm5hXCIsXG4gICAgXCJTa2F3aW5hXCIsXG4gICAgXCJTa8SZcGVcIixcbiAgICBcIlNraWVybmlld2ljZVwiLFxuICAgIFwiU2tvY3rDs3dcIixcbiAgICBcIlNrb2tpXCIsXG4gICAgXCJTa8OzcmN6XCIsXG4gICAgXCJTa3dpZXJ6eW5hXCIsXG4gICAgXCJTxYJhd2FcIixcbiAgICBcIlPFgmF3a8Ozd1wiLFxuICAgIFwiU8WCYXdub1wiLFxuICAgIFwiU8WCb21uaWtpXCIsXG4gICAgXCJTxYJ1YmljZVwiLFxuICAgIFwiU8WCdXBjYVwiLFxuICAgIFwiU8WCdXBza1wiLFxuICAgIFwiU29iw7N0a2FcIixcbiAgICBcIlNvY2hhY3pld1wiLFxuICAgIFwiU29rb8WCw7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJTb2tvxYLDs3cgUG9kbGFza2lcIixcbiAgICBcIlNva8OzxYJrYVwiLFxuICAgIFwiU29sZWMgS3VqYXdza2lcIixcbiAgICBcIlNvbXBvbG5vXCIsXG4gICAgXCJTb3BvdFwiLFxuICAgIFwiU29zbm93aWVjXCIsXG4gICAgXCJTb8Wbbmljb3dpY2VcIixcbiAgICBcIlN0YWxvd2EgV29sYVwiLFxuICAgIFwiU3RhcmFjaG93aWNlXCIsXG4gICAgXCJTdGFyZ2FyZCBTemN6ZWNpxYRza2lcIixcbiAgICBcIlN0YXJvZ2FyZCBHZGHFhHNraVwiLFxuICAgIFwiU3RhcnkgU8SFY3pcIixcbiAgICBcIlN0YXN6w7N3XCIsXG4gICAgXCJTdGF3aXNraVwiLFxuICAgIFwiU3Rhd2lzenluXCIsXG4gICAgXCJTdMSFcG9ya8Ozd1wiLFxuICAgIFwiU3TEmXN6ZXdcIixcbiAgICBcIlN0b2N6ZWsgxYF1a293c2tpXCIsXG4gICAgXCJTdHJvbmllIMWabMSFc2tpZVwiLFxuICAgIFwiU3RydW1pZcWEXCIsXG4gICAgXCJTdHJ5a8Ozd1wiLFxuICAgIFwiU3RyemVnb21cIixcbiAgICBcIlN0cnplbGNlIEtyYWplxYRza2llXCIsXG4gICAgXCJTdHJ6ZWxjZSBPcG9sc2tpZVwiLFxuICAgIFwiU3RyemVsaW5cIixcbiAgICBcIlN0cnplbG5vXCIsXG4gICAgXCJTdHJ6ecW8w7N3XCIsXG4gICAgXCJTdWNoYSBCZXNraWR6a2FcIixcbiAgICBcIlN1Y2hhxYRcIixcbiAgICBcIlN1Y2hlZG5pw7N3XCIsXG4gICAgXCJTdWNob3dvbGFcIixcbiAgICBcIlN1bGVjaMOzd1wiLFxuICAgIFwiU3VsZWrDs3dcIixcbiAgICBcIlN1bGVqw7N3ZWtcIixcbiAgICBcIlN1bMSZY2luXCIsXG4gICAgXCJTdWxtaWVyenljZVwiLFxuICAgIFwiU3XFgmtvd2ljZVwiLFxuICAgIFwiU3VwcmHFm2xcIixcbiAgICBcIlN1cmHFvFwiLFxuICAgIFwiU3VzelwiLFxuICAgIFwiU3V3YcWCa2lcIixcbiAgICBcIlN3YXJ6xJlkelwiLFxuICAgIFwiU3ljw7N3XCIsXG4gICAgXCJTemFkZWtcIixcbiAgICBcIlN6YW1vY2luXCIsXG4gICAgXCJTemFtb3R1xYJ5XCIsXG4gICAgXCJTemN6YXduaWNhXCIsXG4gICAgXCJTemN6YXduby1aZHLDs2pcIixcbiAgICBcIlN6Y3plYnJ6ZXN6eW5cIixcbiAgICBcIlN6Y3plY2luXCIsXG4gICAgXCJTemN6ZWNpbmVrXCIsXG4gICAgXCJTemN6ZWtvY2lueVwiLFxuICAgIFwiU3pjenVjaW5cIixcbiAgICBcIlN6Y3p1Y3p5blwiLFxuICAgIFwiU3pjenlya1wiLFxuICAgIFwiU3pjenl0bmFcIixcbiAgICBcIlN6Y3p5dG5vXCIsXG4gICAgXCJTemVwaWV0b3dvXCIsXG4gICAgXCJTemtsYXJza2EgUG9yxJliYVwiLFxuICAgIFwiU3psaWNodHluZ293YVwiLFxuICAgIFwiU3pwcm90YXdhXCIsXG4gICAgXCJTenR1bVwiLFxuICAgIFwiU3p1YmluXCIsXG4gICAgXCJTenlkxYJvd2llY1wiLFxuICAgIFwixZpjaW5hd2FcIixcbiAgICBcIsWabGVzaW5cIixcbiAgICBcIsWabWlnaWVsXCIsXG4gICAgXCLFmnJlbVwiLFxuICAgIFwixZpyb2RhIMWabMSFc2thXCIsXG4gICAgXCLFmnJvZGEgV2llbGtvcG9sc2thXCIsXG4gICAgXCLFmndpxIV0bmlraSBHw7NybmVcIixcbiAgICBcIsWad2lkbmljYVwiLFxuICAgIFwixZp3aWRuaWtcIixcbiAgICBcIsWad2lkd2luXCIsXG4gICAgXCLFmndpZWJvZHppY2VcIixcbiAgICBcIsWad2llYm9kemluXCIsXG4gICAgXCLFmndpZWNpZVwiLFxuICAgIFwixZp3aWVyYWTDs3ctWmRyw7NqXCIsXG4gICAgXCLFmndpZXJ6YXdhXCIsXG4gICAgXCLFmndpxJl0b2NoxYJvd2ljZVwiLFxuICAgIFwixZp3aW5vdWrFm2NpZVwiLFxuICAgIFwiVGFyY3p5blwiLFxuICAgIFwiVGFybm9icnplZ1wiLFxuICAgIFwiVGFybm9ncsOzZFwiLFxuICAgIFwiVGFybm93c2tpZSBHw7NyeVwiLFxuICAgIFwiVGFybsOzd1wiLFxuICAgIFwiVGN6ZXdcIixcbiAgICBcIlRlcmVzcG9sXCIsXG4gICAgXCJUxYJ1c3pjelwiLFxuICAgIFwiVG9sa21pY2tvXCIsXG4gICAgXCJUb21hc3rDs3cgTHViZWxza2lcIixcbiAgICBcIlRvbWFzesOzdyBNYXpvd2llY2tpXCIsXG4gICAgXCJUb3J1xYRcIixcbiAgICBcIlRvcnp5bVwiLFxuICAgIFwiVG9zemVrXCIsXG4gICAgXCJUcnpjaWFua2FcIixcbiAgICBcIlRyemNpZWxcIixcbiAgICBcIlRyemNpxYRza28tWmRyw7NqXCIsXG4gICAgXCJUcnplYmlhdMOzd1wiLFxuICAgIFwiVHJ6ZWJpbmlhXCIsXG4gICAgXCJUcnplYm5pY2FcIixcbiAgICBcIlRyemVtZXN6bm9cIixcbiAgICBcIlR1Y2hvbGFcIixcbiAgICBcIlR1Y2jDs3dcIixcbiAgICBcIlR1Y3pub1wiLFxuICAgIFwiVHVsaXN6a8Ozd1wiLFxuICAgIFwiVHVyZWtcIixcbiAgICBcIlR1c3p5blwiLFxuICAgIFwiVHdhcmRvZ8OzcmFcIixcbiAgICBcIlR5Y2hvd29cIixcbiAgICBcIlR5Y2h5XCIsXG4gICAgXCJUeWN6eW5cIixcbiAgICBcIlR5a29jaW5cIixcbiAgICBcIlR5c3pvd2NlXCIsXG4gICAgXCJVamF6ZFwiLFxuICAgIFwiVWrFm2NpZVwiLFxuICAgIFwiVWxhbsOzd1wiLFxuICAgIFwiVW5pZWrDs3dcIixcbiAgICBcIlVzdGthXCIsXG4gICAgXCJVc3Ryb8WEXCIsXG4gICAgXCJVc3RyenlraSBEb2xuZVwiLFxuICAgIFwiV2Fkb3dpY2VcIixcbiAgICBcIldhxYJicnp5Y2hcIixcbiAgICBcIldhxYJjelwiLFxuICAgIFwiV2Fya2FcIixcbiAgICBcIldhcnN6YXdhXCIsXG4gICAgXCJXYXJ0YVwiLFxuICAgIFwiV2FzaWxrw7N3XCIsXG4gICAgXCJXxIVicnplxbpub1wiLFxuICAgIFwiV8SFY2hvY2tcIixcbiAgICBcIlfEhWdyb3dpZWNcIixcbiAgICBcIlfEhXNvc3pcIixcbiAgICBcIldlamhlcm93b1wiLFxuICAgIFwiV8SZZ2xpbmllY1wiLFxuICAgIFwiV8SZZ29yemV3b1wiLFxuICAgIFwiV8SZZ29yenlub1wiLFxuICAgIFwiV8SZZ3LDs3dcIixcbiAgICBcIldpxIV6w7N3XCIsXG4gICAgXCJXaWVsZcWEXCIsXG4gICAgXCJXaWVsaWNob3dvXCIsXG4gICAgXCJXaWVsaWN6a2FcIixcbiAgICBcIldpZWx1xYRcIixcbiAgICBcIldpZXJ1c3rDs3dcIixcbiAgICBcIldpxJljYm9ya1wiLFxuICAgIFwiV2lsYW1vd2ljZVwiLFxuICAgIFwiV2lzxYJhXCIsXG4gICAgXCJXaXRrb3dvXCIsXG4gICAgXCJXaXRuaWNhXCIsXG4gICAgXCJXbGXFhFwiLFxuICAgIFwiV8WCYWR5c8WCYXdvd29cIixcbiAgICBcIlfFgm9jxYJhd2VrXCIsXG4gICAgXCJXxYJvZGF3YVwiLFxuICAgIFwiV8WCb3N6Y3pvd2FcIixcbiAgICBcIldvZHppc8WCYXcgxZpsxIVza2lcIixcbiAgICBcIldvamNpZXN6w7N3XCIsXG4gICAgXCJXb2prb3dpY2VcIixcbiAgICBcIldvam5pY3pcIixcbiAgICBcIldvbGLDs3J6XCIsXG4gICAgXCJXb2xicm9tXCIsXG4gICAgXCJXb2xpblwiLFxuICAgIFwiV29sc3p0eW5cIixcbiAgICBcIldvxYJjenluXCIsXG4gICAgXCJXb8WCb21pblwiLFxuICAgIFwiV2/FgsOzd1wiLFxuICAgIFwiV2/Fum5pa2lcIixcbiAgICBcIldyb2PFgmF3XCIsXG4gICAgXCJXcm9ua2lcIixcbiAgICBcIldyemXFm25pYVwiLFxuICAgIFwiV3NjaG93YVwiLFxuICAgIFwiV3lyenlza1wiLFxuICAgIFwiV3lzb2thXCIsXG4gICAgXCJXeXNva2llIE1hem93aWVja2llXCIsXG4gICAgXCJXeXN6a8Ozd1wiLFxuICAgIFwiV3lzem9ncsOzZFwiLFxuICAgIFwiV3nFm21pZXJ6eWNlXCIsXG4gICAgXCJaYWLFgnVkw7N3XCIsXG4gICAgXCJaYWJyemVcIixcbiAgICBcIlphZ8OzcsOzd1wiLFxuICAgIFwiWmFnw7NyelwiLFxuICAgIFwiWmFrbGljenluXCIsXG4gICAgXCJaYWtvcGFuZVwiLFxuICAgIFwiWmFrcm9jenltXCIsXG4gICAgXCJaYWxld29cIixcbiAgICBcIlphbWJyw7N3XCIsXG4gICAgXCJaYW1vxZvEh1wiLFxuICAgIFwiWmF0b3JcIixcbiAgICBcIlphd2FkemtpZVwiLFxuICAgIFwiWmF3aWNob3N0XCIsXG4gICAgXCJaYXdpZMOzd1wiLFxuICAgIFwiWmF3aWVyY2llXCIsXG4gICAgXCJaxIVia2lcIixcbiAgICBcIlrEhWJrb3dpY2UgxZpsxIVza2llXCIsXG4gICAgXCJaYsSFc3p5bmVrXCIsXG4gICAgXCJaYsSFc3p5xYRcIixcbiAgICBcIlpkdW55XCIsXG4gICAgXCJaZHXFhHNrYSBXb2xhXCIsXG4gICAgXCJaZHppZXN6b3dpY2VcIixcbiAgICBcIlplbMOzd1wiLFxuICAgIFwiWmdpZXJ6XCIsXG4gICAgXCJaZ29yemVsZWNcIixcbiAgICBcIlppZWxvbmEgR8OzcmFcIixcbiAgICBcIlppZWxvbmthXCIsXG4gICAgXCJaacSZYmljZVwiLFxuICAgIFwiWsWCb2NpZW5pZWNcIixcbiAgICBcIlrFgm9jemV3XCIsXG4gICAgXCJaxYJvdG9yeWphXCIsXG4gICAgXCJaxYJvdMOzd1wiLFxuICAgIFwiWsWCb3R5IFN0b2tcIixcbiAgICBcIlp3aWVyenluaWVjXCIsXG4gICAgXCJad29sZcWEXCIsXG4gICAgXCLFu2Fibm9cIixcbiAgICBcIsW7YWdhxYRcIixcbiAgICBcIsW7YXJraVwiLFxuICAgIFwixbthcsOzd1wiLFxuICAgIFwixbthcnlcIixcbiAgICBcIsW7ZWxlY2jDs3dcIixcbiAgICBcIsW7ZXJrw7N3XCIsXG4gICAgXCLFu21pZ3LDs2RcIixcbiAgICBcIsW7bmluXCIsXG4gICAgXCLFu29yeVwiLFxuICAgIFwixbt1a293b1wiLFxuICAgIFwixbt1cm9taW5cIixcbiAgICBcIsW7eWNobGluXCIsXG4gICAgXCLFu3lyYXJkw7N3XCIsXG4gICAgXCLFu3l3aWVjXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9uYW1lfVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcHJlZml4fSAje05hbWUubGFzdF9uYW1lfVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiUG9sc2thXCJcbiAgXVxufTtcbnBsLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkluY1wiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkxMQ1wiLFxuICAgIFwiR3JvdXBcIlxuICBdLFxuICBcImFkamV0aXZlXCI6IFtcbiAgICAgIFwiQWRhcHRpdmVcIixcbiAgICAgIFwiQWR2YW5jZWRcIixcbiAgICAgIFwiQW1lbGlvcmF0ZWRcIixcbiAgICAgIFwiQXNzaW1pbGF0ZWRcIixcbiAgICAgIFwiQXV0b21hdGVkXCIsXG4gICAgICBcIkJhbGFuY2VkXCIsXG4gICAgICBcIkJ1c2luZXNzLWZvY3VzZWRcIixcbiAgICAgIFwiQ2VudHJhbGl6ZWRcIixcbiAgICAgIFwiQ2xvbmVkXCIsXG4gICAgICBcIkNvbXBhdGlibGVcIixcbiAgICAgIFwiQ29uZmlndXJhYmxlXCIsXG4gICAgICBcIkNyb3NzLWdyb3VwXCIsXG4gICAgICBcIkNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcIkN1c3RvbWVyLWZvY3VzZWRcIixcbiAgICAgIFwiQ3VzdG9taXphYmxlXCIsXG4gICAgICBcIkRlY2VudHJhbGl6ZWRcIixcbiAgICAgIFwiRGUtZW5naW5lZXJlZFwiLFxuICAgICAgXCJEZXZvbHZlZFwiLFxuICAgICAgXCJEaWdpdGl6ZWRcIixcbiAgICAgIFwiRGlzdHJpYnV0ZWRcIixcbiAgICAgIFwiRGl2ZXJzZVwiLFxuICAgICAgXCJEb3duLXNpemVkXCIsXG4gICAgICBcIkVuaGFuY2VkXCIsXG4gICAgICBcIkVudGVycHJpc2Utd2lkZVwiLFxuICAgICAgXCJFcmdvbm9taWNcIixcbiAgICAgIFwiRXhjbHVzaXZlXCIsXG4gICAgICBcIkV4cGFuZGVkXCIsXG4gICAgICBcIkV4dGVuZGVkXCIsXG4gICAgICBcIkZhY2UgdG8gZmFjZVwiLFxuICAgICAgXCJGb2N1c2VkXCIsXG4gICAgICBcIkZyb250LWxpbmVcIixcbiAgICAgIFwiRnVsbHktY29uZmlndXJhYmxlXCIsXG4gICAgICBcIkZ1bmN0aW9uLWJhc2VkXCIsXG4gICAgICBcIkZ1bmRhbWVudGFsXCIsXG4gICAgICBcIkZ1dHVyZS1wcm9vZmVkXCIsXG4gICAgICBcIkdyYXNzLXJvb3RzXCIsXG4gICAgICBcIkhvcml6b250YWxcIixcbiAgICAgIFwiSW1wbGVtZW50ZWRcIixcbiAgICAgIFwiSW5ub3ZhdGl2ZVwiLFxuICAgICAgXCJJbnRlZ3JhdGVkXCIsXG4gICAgICBcIkludHVpdGl2ZVwiLFxuICAgICAgXCJJbnZlcnNlXCIsXG4gICAgICBcIk1hbmFnZWRcIixcbiAgICAgIFwiTWFuZGF0b3J5XCIsXG4gICAgICBcIk1vbml0b3JlZFwiLFxuICAgICAgXCJNdWx0aS1jaGFubmVsbGVkXCIsXG4gICAgICBcIk11bHRpLWxhdGVyYWxcIixcbiAgICAgIFwiTXVsdGktbGF5ZXJlZFwiLFxuICAgICAgXCJNdWx0aS10aWVyZWRcIixcbiAgICAgIFwiTmV0d29ya2VkXCIsXG4gICAgICBcIk9iamVjdC1iYXNlZFwiLFxuICAgICAgXCJPcGVuLWFyY2hpdGVjdGVkXCIsXG4gICAgICBcIk9wZW4tc291cmNlXCIsXG4gICAgICBcIk9wZXJhdGl2ZVwiLFxuICAgICAgXCJPcHRpbWl6ZWRcIixcbiAgICAgIFwiT3B0aW9uYWxcIixcbiAgICAgIFwiT3JnYW5pY1wiLFxuICAgICAgXCJPcmdhbml6ZWRcIixcbiAgICAgIFwiUGVyc2V2ZXJpbmdcIixcbiAgICAgIFwiUGVyc2lzdGVudFwiLFxuICAgICAgXCJQaGFzZWRcIixcbiAgICAgIFwiUG9sYXJpc2VkXCIsXG4gICAgICBcIlByZS1lbXB0aXZlXCIsXG4gICAgICBcIlByb2FjdGl2ZVwiLFxuICAgICAgXCJQcm9maXQtZm9jdXNlZFwiLFxuICAgICAgXCJQcm9mb3VuZFwiLFxuICAgICAgXCJQcm9ncmFtbWFibGVcIixcbiAgICAgIFwiUHJvZ3Jlc3NpdmVcIixcbiAgICAgIFwiUHVibGljLWtleVwiLFxuICAgICAgXCJRdWFsaXR5LWZvY3VzZWRcIixcbiAgICAgIFwiUmVhY3RpdmVcIixcbiAgICAgIFwiUmVhbGlnbmVkXCIsXG4gICAgICBcIlJlLWNvbnRleHR1YWxpemVkXCIsXG4gICAgICBcIlJlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiUmVkdWNlZFwiLFxuICAgICAgXCJSZXZlcnNlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiUmlnaHQtc2l6ZWRcIixcbiAgICAgIFwiUm9idXN0XCIsXG4gICAgICBcIlNlYW1sZXNzXCIsXG4gICAgICBcIlNlY3VyZWRcIixcbiAgICAgIFwiU2VsZi1lbmFibGluZ1wiLFxuICAgICAgXCJTaGFyYWJsZVwiLFxuICAgICAgXCJTdGFuZC1hbG9uZVwiLFxuICAgICAgXCJTdHJlYW1saW5lZFwiLFxuICAgICAgXCJTd2l0Y2hhYmxlXCIsXG4gICAgICBcIlN5bmNocm9uaXNlZFwiLFxuICAgICAgXCJTeW5lcmdpc3RpY1wiLFxuICAgICAgXCJTeW5lcmdpemVkXCIsXG4gICAgICBcIlRlYW0tb3JpZW50ZWRcIixcbiAgICAgIFwiVG90YWxcIixcbiAgICAgIFwiVHJpcGxlLWJ1ZmZlcmVkXCIsXG4gICAgICBcIlVuaXZlcnNhbFwiLFxuICAgICAgXCJVcC1zaXplZFwiLFxuICAgICAgXCJVcGdyYWRhYmxlXCIsXG4gICAgICBcIlVzZXItY2VudHJpY1wiLFxuICAgICAgXCJVc2VyLWZyaWVuZGx5XCIsXG4gICAgICBcIlZlcnNhdGlsZVwiLFxuICAgICAgXCJWaXJ0dWFsXCIsXG4gICAgICBcIlZpc2lvbmFyeVwiLFxuICAgICAgXCJWaXNpb24tb3JpZW50ZWRcIlxuICAgIF0sXG4gICAgXCJkZXNjcmlwdG9yXCI6W1xuICAgICAgXCIyNCBob3VyXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiM3JkIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNHRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNXRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNnRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiYWN0dWF0aW5nXCIsXG4gICAgICBcImFuYWx5emluZ1wiLFxuICAgICAgXCJhc3ltbWV0cmljXCIsXG4gICAgICBcImFzeW5jaHJvbm91c1wiLFxuICAgICAgXCJhdHRpdHVkZS1vcmllbnRlZFwiLFxuICAgICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgICBcImJhbmR3aWR0aC1tb25pdG9yZWRcIixcbiAgICAgIFwiYmktZGlyZWN0aW9uYWxcIixcbiAgICAgIFwiYmlmdXJjYXRlZFwiLFxuICAgICAgXCJib3R0b20tbGluZVwiLFxuICAgICAgXCJjbGVhci10aGlua2luZ1wiLFxuICAgICAgXCJjbGllbnQtZHJpdmVuXCIsXG4gICAgICBcImNsaWVudC1zZXJ2ZXJcIixcbiAgICAgIFwiY29oZXJlbnRcIixcbiAgICAgIFwiY29oZXNpdmVcIixcbiAgICAgIFwiY29tcG9zaXRlXCIsXG4gICAgICBcImNvbnRleHQtc2Vuc2l0aXZlXCIsXG4gICAgICBcImNvbnRleHR1YWxseS1iYXNlZFwiLFxuICAgICAgXCJjb250ZW50LWJhc2VkXCIsXG4gICAgICBcImRlZGljYXRlZFwiLFxuICAgICAgXCJkZW1hbmQtZHJpdmVuXCIsXG4gICAgICBcImRpZGFjdGljXCIsXG4gICAgICBcImRpcmVjdGlvbmFsXCIsXG4gICAgICBcImRpc2NyZXRlXCIsXG4gICAgICBcImRpc2ludGVybWVkaWF0ZVwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcImVjby1jZW50cmljXCIsXG4gICAgICBcImVtcG93ZXJpbmdcIixcbiAgICAgIFwiZW5jb21wYXNzaW5nXCIsXG4gICAgICBcImV2ZW4ta2VlbGVkXCIsXG4gICAgICBcImV4ZWN1dGl2ZVwiLFxuICAgICAgXCJleHBsaWNpdFwiLFxuICAgICAgXCJleHVkaW5nXCIsXG4gICAgICBcImZhdWx0LXRvbGVyYW50XCIsXG4gICAgICBcImZvcmVncm91bmRcIixcbiAgICAgIFwiZnJlc2gtdGhpbmtpbmdcIixcbiAgICAgIFwiZnVsbC1yYW5nZVwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiZ3JpZC1lbmFibGVkXCIsXG4gICAgICBcImhldXJpc3RpY1wiLFxuICAgICAgXCJoaWdoLWxldmVsXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcImhvbW9nZW5lb3VzXCIsXG4gICAgICBcImh1bWFuLXJlc291cmNlXCIsXG4gICAgICBcImh5YnJpZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwiaW5jcmVtZW50YWxcIixcbiAgICAgIFwiaW50YW5naWJsZVwiLFxuICAgICAgXCJpbnRlcmFjdGl2ZVwiLFxuICAgICAgXCJpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwibGVhZGluZyBlZGdlXCIsXG4gICAgICBcImxvY2FsXCIsXG4gICAgICBcImxvZ2lzdGljYWxcIixcbiAgICAgIFwibWF4aW1pemVkXCIsXG4gICAgICBcIm1ldGhvZGljYWxcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJtb2JpbGVcIixcbiAgICAgIFwibW9kdWxhclwiLFxuICAgICAgXCJtb3RpdmF0aW5nXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGktc3RhdGVcIixcbiAgICAgIFwibXVsdGktdGFza2luZ1wiLFxuICAgICAgXCJuYXRpb25hbFwiLFxuICAgICAgXCJuZWVkcy1iYXNlZFwiLFxuICAgICAgXCJuZXV0cmFsXCIsXG4gICAgICBcIm5leHQgZ2VuZXJhdGlvblwiLFxuICAgICAgXCJub24tdm9sYXRpbGVcIixcbiAgICAgIFwib2JqZWN0LW9yaWVudGVkXCIsXG4gICAgICBcIm9wdGltYWxcIixcbiAgICAgIFwib3B0aW1pemluZ1wiLFxuICAgICAgXCJyYWRpY2FsXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJyZWNpcHJvY2FsXCIsXG4gICAgICBcInJlZ2lvbmFsXCIsXG4gICAgICBcInJlc3BvbnNpdmVcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwic2Vjb25kYXJ5XCIsXG4gICAgICBcInNvbHV0aW9uLW9yaWVudGVkXCIsXG4gICAgICBcInN0YWJsZVwiLFxuICAgICAgXCJzdGF0aWNcIixcbiAgICAgIFwic3lzdGVtYXRpY1wiLFxuICAgICAgXCJzeXN0ZW1pY1wiLFxuICAgICAgXCJzeXN0ZW0td29ydGh5XCIsXG4gICAgICBcInRhbmdpYmxlXCIsXG4gICAgICBcInRlcnRpYXJ5XCIsXG4gICAgICBcInRyYW5zaXRpb25hbFwiLFxuICAgICAgXCJ1bmlmb3JtXCIsXG4gICAgICBcInVwd2FyZC10cmVuZGluZ1wiLFxuICAgICAgXCJ1c2VyLWZhY2luZ1wiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ3ZWItZW5hYmxlZFwiLFxuICAgICAgXCJ3ZWxsLW1vZHVsYXRlZFwiLFxuICAgICAgXCJ6ZXJvIGFkbWluaXN0cmF0aW9uXCIsXG4gICAgICBcInplcm8gZGVmZWN0XCIsXG4gICAgICBcInplcm8gdG9sZXJhbmNlXCJcbiAgICBdLFxuICAgIFwibm91blwiOiBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiY2xpY2tzLWFuZC1tb3J0YXJcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwidmVydGljYWxcIixcbiAgICAgIFwicHJvYWN0aXZlXCIsXG4gICAgICBcInJvYnVzdFwiLFxuICAgICAgXCJyZXZvbHV0aW9uYXJ5XCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcImxlYWRpbmctZWRnZVwiLFxuICAgICAgXCJpbm5vdmF0aXZlXCIsXG4gICAgICBcImludHVpdGl2ZVwiLFxuICAgICAgXCJzdHJhdGVnaWNcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcInN0aWNreVwiLFxuICAgICAgXCJvbmUtdG8tb25lXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiZW5kLXRvLWVuZFwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiQjJCXCIsXG4gICAgICBcIkIyQ1wiLFxuICAgICAgXCJncmFudWxhclwiLFxuICAgICAgXCJmcmljdGlvbmxlc3NcIixcbiAgICAgIFwidmlydHVhbFwiLFxuICAgICAgXCJ2aXJhbFwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcIjI0LzM2NVwiLFxuICAgICAgXCJiZXN0LW9mLWJyZWVkXCIsXG4gICAgICBcImtpbGxlclwiLFxuICAgICAgXCJtYWduZXRpY1wiLFxuICAgICAgXCJibGVlZGluZy1lZGdlXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImRvdC1jb21cIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50XCIsXG4gICAgICBcImZyb250LWVuZFwiLFxuICAgICAgXCJkaXN0cmlidXRlZFwiLFxuICAgICAgXCJzZWFtbGVzc1wiLFxuICAgICAgXCJleHRlbnNpYmxlXCIsXG4gICAgICBcInR1cm4ta2V5XCIsXG4gICAgICBcIndvcmxkLWNsYXNzXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcImNyb3NzLW1lZGlhXCIsXG4gICAgICBcInN5bmVyZ2lzdGljXCIsXG4gICAgICBcImJyaWNrcy1hbmQtY2xpY2tzXCIsXG4gICAgICBcIm91dC1vZi10aGUtYm94XCIsXG4gICAgICBcImVudGVycHJpc2VcIixcbiAgICAgIFwiaW50ZWdyYXRlZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwid2lyZWxlc3NcIixcbiAgICAgIFwidHJhbnNwYXJlbnRcIixcbiAgICAgIFwibmV4dC1nZW5lcmF0aW9uXCIsXG4gICAgICBcImN1dHRpbmctZWRnZVwiLFxuICAgICAgXCJ1c2VyLWNlbnRyaWNcIixcbiAgICAgIFwidmlzaW9uYXJ5XCIsXG4gICAgICBcImN1c3RvbWl6ZWRcIixcbiAgICAgIFwidWJpcXVpdG91c1wiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwiY29tcGVsbGluZ1wiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJyaWNoXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcInN5bmVyZ2llc1wiLFxuICAgICAgXCJ3ZWItcmVhZGluZXNzXCIsXG4gICAgICBcInBhcmFkaWdtc1wiLFxuICAgICAgXCJtYXJrZXRzXCIsXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZXNcIixcbiAgICAgIFwicGxhdGZvcm1zXCIsXG4gICAgICBcImluaXRpYXRpdmVzXCIsXG4gICAgICBcImNoYW5uZWxzXCIsXG4gICAgICBcImV5ZWJhbGxzXCIsXG4gICAgICBcImNvbW11bml0aWVzXCIsXG4gICAgICBcIlJPSVwiLFxuICAgICAgXCJzb2x1dGlvbnNcIixcbiAgICAgIFwiZS10YWlsZXJzXCIsXG4gICAgICBcImUtc2VydmljZXNcIixcbiAgICAgIFwiYWN0aW9uLWl0ZW1zXCIsXG4gICAgICBcInBvcnRhbHNcIixcbiAgICAgIFwibmljaGVzXCIsXG4gICAgICBcInRlY2hub2xvZ2llc1wiLFxuICAgICAgXCJjb250ZW50XCIsXG4gICAgICBcInZvcnRhbHNcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW5jZVwiLFxuICAgICAgXCJyZWxhdGlvbnNoaXBzXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZXNcIixcbiAgICAgIFwiaW50ZXJmYWNlc1wiLFxuICAgICAgXCJlLW1hcmtldHNcIixcbiAgICAgIFwiZS1jb21tZXJjZVwiLFxuICAgICAgXCJzeXN0ZW1zXCIsXG4gICAgICBcImJhbmR3aWR0aFwiLFxuICAgICAgXCJpbmZvbWVkaWFyaWVzXCIsXG4gICAgICBcIm1vZGVsc1wiLFxuICAgICAgXCJtaW5kc2hhcmVcIixcbiAgICAgIFwiZGVsaXZlcmFibGVzXCIsXG4gICAgICBcInVzZXJzXCIsXG4gICAgICBcInNjaGVtYXNcIixcbiAgICAgIFwibmV0d29ya3NcIixcbiAgICAgIFwiYXBwbGljYXRpb25zXCIsXG4gICAgICBcIm1ldHJpY3NcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiZXhwZXJpZW5jZXNcIixcbiAgICAgIFwid2ViIHNlcnZpY2VzXCIsXG4gICAgICBcIm1ldGhvZG9sb2dpZXNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IGFuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5wbC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcInBsXCIsXG4gICAgXCJjb20ucGxcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnBsLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xucGwucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMTItIyMjLSMjLSMjXCIsXG4gICAgXCIxMy0jIyMtIyMtIyNcIixcbiAgICBcIjE0LSMjIy0jIy0jI1wiLFxuICAgIFwiMTUtIyMjLSMjLSMjXCIsXG4gICAgXCIxNi0jIyMtIyMtIyNcIixcbiAgICBcIjE3LSMjIy0jIy0jI1wiLFxuICAgIFwiMTgtIyMjLSMjLSMjXCIsXG4gICAgXCIyMi0jIyMtIyMtIyNcIixcbiAgICBcIjIzLSMjIy0jIy0jI1wiLFxuICAgIFwiMjQtIyMjLSMjLSMjXCIsXG4gICAgXCIyNS0jIyMtIyMtIyNcIixcbiAgICBcIjI5LSMjIy0jIy0jI1wiLFxuICAgIFwiMzItIyMjLSMjLSMjXCIsXG4gICAgXCIzMy0jIyMtIyMtIyNcIixcbiAgICBcIjM0LSMjIy0jIy0jI1wiLFxuICAgIFwiNDEtIyMjLSMjLSMjXCIsXG4gICAgXCI0Mi0jIyMtIyMtIyNcIixcbiAgICBcIjQzLSMjIy0jIy0jI1wiLFxuICAgIFwiNDQtIyMjLSMjLSMjXCIsXG4gICAgXCI0Ni0jIyMtIyMtIyNcIixcbiAgICBcIjQ4LSMjIy0jIy0jI1wiLFxuICAgIFwiNTItIyMjLSMjLSMjXCIsXG4gICAgXCI1NC0jIyMtIyMtIyNcIixcbiAgICBcIjU1LSMjIy0jIy0jI1wiLFxuICAgIFwiNTYtIyMjLSMjLSMjXCIsXG4gICAgXCI1OC0jIyMtIyMtIyNcIixcbiAgICBcIjU5LSMjIy0jIy0jI1wiLFxuICAgIFwiNjEtIyMjLSMjLSMjXCIsXG4gICAgXCI2Mi0jIyMtIyMtIyNcIixcbiAgICBcIjYzLSMjIy0jIy0jI1wiLFxuICAgIFwiNjUtIyMjLSMjLSMjXCIsXG4gICAgXCI2Ny0jIyMtIyMtIyNcIixcbiAgICBcIjY4LSMjIy0jIy0jI1wiLFxuICAgIFwiNzEtIyMjLSMjLSMjXCIsXG4gICAgXCI3NC0jIyMtIyMtIyNcIixcbiAgICBcIjc1LSMjIy0jIy0jI1wiLFxuICAgIFwiNzYtIyMjLSMjLSMjXCIsXG4gICAgXCI3Ny0jIyMtIyMtIyNcIixcbiAgICBcIjgxLSMjIy0jIy0jI1wiLFxuICAgIFwiODItIyMjLSMjLSMjXCIsXG4gICAgXCI4My0jIyMtIyMtIyNcIixcbiAgICBcIjg0LSMjIy0jIy0jI1wiLFxuICAgIFwiODUtIyMjLSMjLSMjXCIsXG4gICAgXCI4Ni0jIyMtIyMtIyNcIixcbiAgICBcIjg3LSMjIy0jIy0jI1wiLFxuICAgIFwiODktIyMjLSMjLSMjXCIsXG4gICAgXCI5MS0jIyMtIyMtIyNcIixcbiAgICBcIjk0LSMjIy0jIy0jI1wiLFxuICAgIFwiOTUtIyMjLSMjLSMjXCJcbiAgXVxufTtcbnBsLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCI1MC0jIyMtIyMtIyNcIixcbiAgICBcIjUxLSMjIy0jIy0jI1wiLFxuICAgIFwiNTMtIyMjLSMjLSMjXCIsXG4gICAgXCI1Ny0jIyMtIyMtIyNcIixcbiAgICBcIjYwLSMjIy0jIy0jI1wiLFxuICAgIFwiNjYtIyMjLSMjLSMjXCIsXG4gICAgXCI2OS0jIyMtIyMtIyNcIixcbiAgICBcIjcyLSMjIy0jIy0jI1wiLFxuICAgIFwiNzMtIyMjLSMjLSMjXCIsXG4gICAgXCI3OC0jIyMtIyMtIyNcIixcbiAgICBcIjc5LSMjIy0jIy0jI1wiLFxuICAgIFwiODgtIyMjLSMjLSMjXCJcbiAgXVxufTtcbiIsInZhciBwdF9CUiA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHB0X0JSO1xucHRfQlIudGl0bGUgPSBcIlBvcnR1Z3Vlc2UgKEJyYXppbClcIjtcbnB0X0JSLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiTm92YVwiLFxuICAgIFwiVmVsaGFcIixcbiAgICBcIkdyYW5kZVwiLFxuICAgIFwiVmlsYVwiLFxuICAgIFwiTXVuaWPDrXBpbyBkZVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiZG8gRGVzY29iZXJ0b1wiLFxuICAgIFwiZGUgTm9zc2EgU2VuaG9yYVwiLFxuICAgIFwiZG8gTm9ydGVcIixcbiAgICBcImRvIFN1bFwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmVnYW5pc3TDo29cIixcbiAgICBcIkFsYsOibmlhXCIsXG4gICAgXCJBbGfDqXJpYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGlndWEgYW5kIEJhcmJhZGFcIixcbiAgICBcIkFyZ2VudGluYVwiLFxuICAgIFwiQXJtw6puaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0csOhbGlhXCIsXG4gICAgXCLDgXVzdHJpYVwiLFxuICAgIFwiQWx6ZXJiYWrDo29cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhcsOpbVwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb1wiLFxuICAgIFwiQmVsZ3JhZG9cIixcbiAgICBcIkLDqWxnaWNhXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbMOtdmlhXCIsXG4gICAgXCJCw7RzbmlhXCIsXG4gICAgXCJCb3R1YXN1bmFcIixcbiAgICBcIkJvdXZldG9pYVwiLFxuICAgIFwiQnJhc2lsXCIsXG4gICAgXCJBcnF1aXDDqWxhZ28gZGUgQ2hhZ29zXCIsXG4gICAgXCJJbGhhcyBWaXJnZW5zXCIsXG4gICAgXCJCcnVuZWlcIixcbiAgICBcIkJ1bGfDoXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1iw7NqaWFcIixcbiAgICBcIkNhbWFyw7Vlc1wiLFxuICAgIFwiQ2FuYWTDoVwiLFxuICAgIFwiQ2FibyBWZXJkZVwiLFxuICAgIFwiSWxoYXMgQ2FpbWFuXCIsXG4gICAgXCJSZXDDumJsaWNhIGRhIMOBZnJpY2EgQ2VudHJhbFwiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJJbGhhcyBOYXRhbFwiLFxuICAgIFwiSWxoYXMgQ29jb3NcIixcbiAgICBcIkNvbMO0bWJpYVwiLFxuICAgIFwiQ29tb3Jvc1wiLFxuICAgIFwiQ29uZ29cIixcbiAgICBcIklsaGFzIENvb2tcIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkNvc3RhIGRvIE1hcmZpbVwiLFxuICAgIFwiQ3Jvw6FjaWFcIixcbiAgICBcIkN1YmFcIixcbiAgICBcIkN5cHJ1c1wiLFxuICAgIFwiUmVww7pibGljYSBUY2hlY2FcIixcbiAgICBcIkRpbmFtYXJjYVwiLFxuICAgIFwiRGppYm91dGlcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJSZXDDumJsaWNhIERvbWluaWNhbmFcIixcbiAgICBcIkVxdWFkb3JcIixcbiAgICBcIkVnaXRvXCIsXG4gICAgXCJFbCBTYWx2YWRvclwiLFxuICAgIFwiR3VpbsOpIEVxdWF0b3JpYWxcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdMO0bmlhXCIsXG4gICAgXCJFdGnDs3BpYVwiLFxuICAgIFwiSWxoYXMgRmFyb2VcIixcbiAgICBcIk1hbHZpbmFzXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaW5sw6JuZGlhXCIsXG4gICAgXCJGcmFuw6dhXCIsXG4gICAgXCJHdWluw6kgRnJhbmNlc2FcIixcbiAgICBcIlBvbGluw6lzaWEgRnJhbmNlc2FcIixcbiAgICBcIkdhYsOjb1wiLFxuICAgIFwiR8OibWJpYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiQWxlbWFuaGFcIixcbiAgICBcIkdhbmFcIixcbiAgICBcIkdpYnJhbHRhclwiLFxuICAgIFwiR3LDqWNpYVwiLFxuICAgIFwiR3JvZWzDom5kaWFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIkd1YWRhbHVwZVwiLFxuICAgIFwiR3Vhbm9cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3Vlcm5zZXlcIixcbiAgICBcIkd1aW7DqVwiLFxuICAgIFwiR3VpbsOpLUJpc3NhdVwiLFxuICAgIFwiR3VpYW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXG4gICAgXCJWYXRpY2Fub1wiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmcgS29uZ1wiLFxuICAgIFwiSHVuZ3JpYVwiLFxuICAgIFwiSWNlbGFuZFwiLFxuICAgIFwiw41uZGlhXCIsXG4gICAgXCJJbmRvbsOpc2lhXCIsXG4gICAgXCJJcsOjXCIsXG4gICAgXCJJcmFxdWVcIixcbiAgICBcIklybGFuZGFcIixcbiAgICBcIklsaGEgZGUgTWFuXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkl0w6FsaWFcIixcbiAgICBcIkphbWFpY2FcIixcbiAgICBcIkphcMOjb1wiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3Jkw6JuaWFcIixcbiAgICBcIkNhemFxdWlzdMOjb1wiLFxuICAgIFwiUXXDqm5pYVwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIkNvcmVpYSBkbyBOb3J0ZVwiLFxuICAgIFwiQ29yZWlhIGRvIFN1bFwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJLeXJneXogUmVwdWJsaWNcIixcbiAgICBcIlJlcMO6YmxpY2EgRGVtb2Nyw6F0aWNhIGRlIExhbyBQZW9wbGVcIixcbiAgICBcIkxhdHZpYVwiLFxuICAgIFwiTMOtYmFub1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGliw6lyaWFcIixcbiAgICBcIkxpYnlhbiBBcmFiIEphbWFoaXJpeWFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdHXDom5pYVwiLFxuICAgIFwiTHV4ZW1idXJnb1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkw7RuaWFcIixcbiAgICBcIk1hZGFnYXNjYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsw6FzaWFcIixcbiAgICBcIk1hbGRpdmVzXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiSWxoYXMgTWFyc2hhbGxcIixcbiAgICBcIk1hcnRpbmljYVwiLFxuICAgIFwiTWF1cml0w6JuaWFcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTcOpeGljb1wiLFxuICAgIFwiTWljcm9uw6lzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIk3DtG5hY29cIixcbiAgICBcIk1vbmfDs2xpYVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTWFycm9jb3NcIixcbiAgICBcIk1vw6dhbWJpcXVlXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkFudGlsaGFzIEhvbGFuZGVzYXNcIixcbiAgICBcIkhvbGFuZGFcIixcbiAgICBcIk5vdmEgQ2FsZWRvbmlhXCIsXG4gICAgXCJOb3ZhIFplbMOibmRpYVwiLFxuICAgIFwiTmljYXLDoWd1YVwiLFxuICAgIFwiTmlnw6lyaWFcIixcbiAgICBcIk5pdWVcIixcbiAgICBcIklsaGEgTm9yZm9sa1wiLFxuICAgIFwiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzXCIsXG4gICAgXCJOb3J1ZWdhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYXF1aXN0w6NvXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiVGVycml0w7NyaW8gZGEgUGFsZXN0aW5hXCIsXG4gICAgXCJQYW5hbcOhXCIsXG4gICAgXCJOb3ZhIEd1aW7DqSBQYXB1YVwiLFxuICAgIFwiUGFyYWd1YWlcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIkZpbGlwaW5hc1wiLFxuICAgIFwiUG9sw7RuaWFcIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIlJvbcOqbmlhXCIsXG4gICAgXCJSw7pzc2lhXCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlPDo28gQmFydG9sb21ldVwiLFxuICAgIFwiU2FudGEgSGVsZW5hXCIsXG4gICAgXCJTYW50YSBMw7pjaWFcIixcbiAgICBcIlNhaW50IE1hcnRpblwiLFxuICAgIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW8gVG9tw6kgZSBQcsOtbmNpcGVcIixcbiAgICBcIkFyw6FiaWEgU2F1ZGl0YVwiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU8OpcnZpYVwiLFxuICAgIFwiU2V5Y2hlbGxlc1wiLFxuICAgIFwiU2VycmEgTGVvYVwiLFxuICAgIFwiU2luZ2FwdXJhXCIsXG4gICAgXCJFc2xvdsOhcXVpYVwiLFxuICAgIFwiRXNsb3bDqm5pYVwiLFxuICAgIFwiSWxoYXMgU2Fsb23Do29cIixcbiAgICBcIlNvbcOhbGlhXCIsXG4gICAgXCLDgWZyaWNhIGRvIFN1bFwiLFxuICAgIFwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNwYW5oYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdWTDo29cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdmFsYmFyZCAmIEphbiBNYXllbiBJc2xhbmRzXCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlN1w6ljaWFcIixcbiAgICBcIlN1w63Dp2FcIixcbiAgICBcIlPDrXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppcXVpc3TDo29cIixcbiAgICBcIlRhbnrDom5pYVwiLFxuICAgIFwiVGFpbMOibmRpYVwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWTDoSBlIFRvYmFnb1wiLFxuICAgIFwiVHVuw61zaWFcIixcbiAgICBcIlR1cnF1aWFcIixcbiAgICBcIlR1cmNvbWVuaXN0w6NvXCIsXG4gICAgXCJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHNcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3LDom5pYVwiLFxuICAgIFwiRW1pcmFkb3Mgw4FyYWJlcyBVbmlkb3NcIixcbiAgICBcIlJlaW5vIFVuaWRvXCIsXG4gICAgXCJFc3RhZG9zIFVuaWRvcyBkYSBBbcOpcmljYVwiLFxuICAgIFwiRXN0YWRvcyBVbmlkb3MgZGFzIElsaGFzIFZpcmdlbnNcIixcbiAgICBcIlVydWd1YWlcIixcbiAgICBcIlV6YmVxdWlzdMOjb1wiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bsOjXCIsXG4gICAgXCJXYWxsaXMgYW5kIEZ1dHVuYVwiLFxuICAgIFwiU2FoYXJhXCIsXG4gICAgXCJZZW1lblwiLFxuICAgIFwiWsOibWJpYVwiLFxuICAgIFwiWmltYsOhYnVlXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJSdWFcIixcbiAgICBcIkF2ZW5pZGFcIixcbiAgICBcIlRyYXZlc3NhXCIsXG4gICAgXCJQb250ZVwiLFxuICAgIFwiQWxhbWVkYVwiLFxuICAgIFwiTWFyZ2luYWxcIixcbiAgICBcIlZpZWxhXCIsXG4gICAgXCJSb2RvdmlhXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHRvLiAjIyNcIixcbiAgICBcIlNvYnJhZG8gIyNcIixcbiAgICBcIkNhc2EgI1wiLFxuICAgIFwiTG90ZSAjI1wiLFxuICAgIFwiUXVhZHJhICMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJBY3JlXCIsXG4gICAgXCJBbGFnb2FzXCIsXG4gICAgXCJBbWFww6FcIixcbiAgICBcIkFtYXpvbmFzXCIsXG4gICAgXCJCYWhpYVwiLFxuICAgIFwiQ2VhcsOhXCIsXG4gICAgXCJEaXN0cml0byBGZWRlcmFsXCIsXG4gICAgXCJFc3DDrXJpdG8gU2FudG9cIixcbiAgICBcIkdvacOhc1wiLFxuICAgIFwiTWFyYW5ow6NvXCIsXG4gICAgXCJNYXRvIEdyb3Nzb1wiLFxuICAgIFwiTWF0byBHcm9zc28gZG8gU3VsXCIsXG4gICAgXCJNaW5hcyBHZXJhaXNcIixcbiAgICBcIlBhcsOhXCIsXG4gICAgXCJQYXJhw61iYVwiLFxuICAgIFwiUGFyYW7DoVwiLFxuICAgIFwiUGVybmFtYnVjb1wiLFxuICAgIFwiUGlhdcOtXCIsXG4gICAgXCJSaW8gZGUgSmFuZWlyb1wiLFxuICAgIFwiUmlvIEdyYW5kZSBkbyBOb3J0ZVwiLFxuICAgIFwiUmlvIEdyYW5kZSBkbyBTdWxcIixcbiAgICBcIlJvbmTDtG5pYVwiLFxuICAgIFwiUm9yYWltYVwiLFxuICAgIFwiU2FudGEgQ2F0YXJpbmFcIixcbiAgICBcIlPDo28gUGF1bG9cIixcbiAgICBcIlNlcmdpcGVcIixcbiAgICBcIlRvY2FudGluc1wiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBQ1wiLFxuICAgIFwiQUxcIixcbiAgICBcIkFQXCIsXG4gICAgXCJBTVwiLFxuICAgIFwiQkFcIixcbiAgICBcIkNFXCIsXG4gICAgXCJERlwiLFxuICAgIFwiRVNcIixcbiAgICBcIkdPXCIsXG4gICAgXCJNQVwiLFxuICAgIFwiTVRcIixcbiAgICBcIk1TXCIsXG4gICAgXCJQQVwiLFxuICAgIFwiUEJcIixcbiAgICBcIlBSXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUElcIixcbiAgICBcIlJKXCIsXG4gICAgXCJSTlwiLFxuICAgIFwiUlNcIixcbiAgICBcIlJPXCIsXG4gICAgXCJSUlwiLFxuICAgIFwiU0NcIixcbiAgICBcIlNQXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiQnJhc2lsXCJcbiAgXVxufTtcbnB0X0JSLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlMuQS5cIixcbiAgICBcIkxUREFcIixcbiAgICBcImUgQXNzb2NpYWRvc1wiLFxuICAgIFwiQ29tw6lyY2lvXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSBlICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbnB0X0JSLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCIsXG4gICAgXCJsaXZlLmNvbVwiLFxuICAgIFwiYm9sLmNvbS5iclwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJiclwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnB0X0JSLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF1cbn07XG5wdF9CUi5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxlc3NhbmRyYVwiLFxuICAgIFwiQWxleGFuZHJlXCIsXG4gICAgXCJBbGluZVwiLFxuICAgIFwiQW50w7RuaW9cIixcbiAgICBcIkJyZW5vXCIsXG4gICAgXCJCcnVuYVwiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDYXJsYVwiLFxuICAgIFwiQ8OpbGlhXCIsXG4gICAgXCJDZWPDrWxpYVwiLFxuICAgIFwiQ8Opc2FyXCIsXG4gICAgXCJEYW5pbG9cIixcbiAgICBcIkRhbGlsYVwiLFxuICAgIFwiRGVuZXZhbFwiLFxuICAgIFwiRWR1YXJkb1wiLFxuICAgIFwiRWR1YXJkYVwiLFxuICAgIFwiRXN0aGVyXCIsXG4gICAgXCJFbMOtc2lvXCIsXG4gICAgXCJGw6FiaW9cIixcbiAgICBcIkZhYnLDrWNpb1wiLFxuICAgIFwiRmFicsOtY2lhXCIsXG4gICAgXCJGw6lsaXhcIixcbiAgICBcIkZlbMOtY2lhXCIsXG4gICAgXCJGZWxpY2lhbm9cIixcbiAgICBcIkZyZWRlcmljb1wiLFxuICAgIFwiRmFiaWFub1wiLFxuICAgIFwiR3VzdGF2b1wiLFxuICAgIFwiR3VpbGhlcm1lXCIsXG4gICAgXCJHw7piaW9cIixcbiAgICBcIkhlaXRvclwiLFxuICAgIFwiSMOpbGlvXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzYWJlbGFcIixcbiAgICBcIsONZ29yXCIsXG4gICAgXCJKb8Ojb1wiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkrDumxpbyBDw6lzYXJcIixcbiAgICBcIkrDumxpb1wiLFxuICAgIFwiSsO6bGlhXCIsXG4gICAgXCJKYW5hw61uYVwiLFxuICAgIFwiS2FybGFcIixcbiAgICBcIktsw6liZXJcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMb3JlbmFcIixcbiAgICBcIkxvcnJhaW5lXCIsXG4gICAgXCJMYXJpc3NhXCIsXG4gICAgXCJMYWRpc2xhdVwiLFxuICAgIFwiTWFyY29zXCIsXG4gICAgXCJNZWlyZVwiLFxuICAgIFwiTWFyY2Vsb1wiLFxuICAgIFwiTWFyY2VsYVwiLFxuICAgIFwiTWFyZ2FyaWRhXCIsXG4gICAgXCJNw6lyY2lhXCIsXG4gICAgXCJNw6FyY2lhXCIsXG4gICAgXCJNYXJsaVwiLFxuICAgIFwiTW9yZ2FuYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk5vcmJlcnRvXCIsXG4gICAgXCJOYXTDoWxpYVwiLFxuICAgIFwiTmF0YW5pZWxcIixcbiAgICBcIk7DumJpYVwiLFxuICAgIFwiT2bDqWxpYVwiLFxuICAgIFwiUGF1bG9cIixcbiAgICBcIlBhdWxhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlJhdWxcIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFmYWVsYVwiLFxuICAgIFwiUmljYXJkb1wiLFxuICAgIFwiUm9iZXJ0b1wiLFxuICAgIFwiUm9iZXJ0YVwiLFxuICAgIFwiU8OtbHZpYVwiLFxuICAgIFwiU8OtbHZpYVwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlN1w6lsZW5cIixcbiAgICBcIlNhcmFcIixcbiAgICBcIlNhbHZhZG9yXCIsXG4gICAgXCJTaXJpbmV1XCIsXG4gICAgXCJUYWxpdGFcIixcbiAgICBcIlRlcnR1bGlhbm9cIixcbiAgICBcIlZpY2VudGVcIixcbiAgICBcIlbDrWN0b3JcIixcbiAgICBcIlZpdMOzcmlhXCIsXG4gICAgXCJZYW5nb1wiLFxuICAgIFwiWWFnb1wiLFxuICAgIFwiWXVyaVwiLFxuICAgIFwiV2FzaGluZ3RvblwiLFxuICAgIFwiV2FybGV5XCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiU2lsdmFcIixcbiAgICBcIlNvdXphXCIsXG4gICAgXCJDYXJ2YWxob1wiLFxuICAgIFwiU2FudG9zXCIsXG4gICAgXCJSZWlzXCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIkZyYW5jb1wiLFxuICAgIFwiQnJhZ2FcIixcbiAgICBcIk1hY2Vkb1wiLFxuICAgIFwiQmF0aXN0YVwiLFxuICAgIFwiQmFycm9zXCIsXG4gICAgXCJNb3JhZXNcIixcbiAgICBcIkNvc3RhXCIsXG4gICAgXCJQZXJlaXJhXCIsXG4gICAgXCJDYXJ2YWxob1wiLFxuICAgIFwiTWVsb1wiLFxuICAgIFwiU2FyYWl2YVwiLFxuICAgIFwiTm9ndWVpcmFcIixcbiAgICBcIk9saXZlaXJhXCIsXG4gICAgXCJNYXJ0aW5zXCIsXG4gICAgXCJNb3JlaXJhXCIsXG4gICAgXCJBbGJ1cXVlcnF1ZVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNyLlwiLFxuICAgIFwiU3JhLlwiLFxuICAgIFwiU3J0YS5cIixcbiAgICBcIkRyLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiTmV0b1wiLFxuICAgIFwiRmlsaG9cIlxuICBdXG59O1xucHRfQlIucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKCMjKSAjIyMjLSMjIyNcIixcbiAgICBcIis1NSAoIyMpICMjIyMtIyMjI1wiLFxuICAgIFwiKCMjKSAjIyMjIy0jIyMjXCJcbiAgXVxufTtcbiIsInZhciBydSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHJ1O1xucnUudGl0bGUgPSBcIlJ1c3NpYW5cIjtcbnJ1LnNlcGFyYXRvciA9IFwiINC4IFwiO1xucnUuYWRkcmVzcyA9IHtcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcItCQ0LLRgdGC0YDQsNC70LjRj1wiLFxuICAgIFwi0JDQstGB0YLRgNC40Y9cIixcbiAgICBcItCQ0LfQtdGA0LHQsNC50LTQttCw0L1cIixcbiAgICBcItCQ0LvQsdCw0L3QuNGPXCIsXG4gICAgXCLQkNC70LbQuNGAXCIsXG4gICAgXCLQkNC80LXRgNC40LrQsNC90YHQutC+0LUg0KHQsNC80L7QsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JDQvdCz0LjQu9GM0Y9cIixcbiAgICBcItCQ0L3Qs9C+0LvQsFwiLFxuICAgIFwi0JDQvdC00L7RgNGA0LBcIixcbiAgICBcItCQ0L3RgtCw0YDQutGC0LjQutCwICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQkNC90YLQuNCz0YPQsCDQuCDQkdCw0YDQsdGD0LTQsFwiLFxuICAgIFwi0JDQvdGC0LjQu9GM0YHQutC40LUg0J7RgdGC0YDQvtCy0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCQ0L7QvNGL0L3RjCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JDRgNCz0LXQvdGC0LjQvdCwXCIsXG4gICAgXCLQkNGA0LzQtdC90LjRj1wiLFxuICAgIFwi0JDRhNCz0LDQvdC40YHRgtCw0L1cIixcbiAgICBcItCR0LDQs9Cw0LzRgdC60LjQtSDQntGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JHQsNC90LPQu9Cw0LTQtdGIXCIsXG4gICAgXCLQkdCw0YDQsdCw0LTQvtGBXCIsXG4gICAgXCLQkdCw0YXRgNC10LnQvVwiLFxuICAgIFwi0JHQtdC70LDRgNGD0YHRjFwiLFxuICAgIFwi0JHQtdC70LjQt1wiLFxuICAgIFwi0JHQtdC70YzQs9C40Y9cIixcbiAgICBcItCR0LXQvdC40L1cIixcbiAgICBcItCR0L7Qu9Cz0LDRgNC40Y9cIixcbiAgICBcItCR0L7Qu9C40LLQuNGPXCIsXG4gICAgXCLQkdC+0YHQvdC40Y8g0Lgg0JPQtdGA0YbQtdCz0L7QstC40L3QsFwiLFxuICAgIFwi0JHQvtGC0YHQstCw0L3QsFwiLFxuICAgIFwi0JHRgNCw0LfQuNC70LjRj1wiLFxuICAgIFwi0JHRgNGD0L3QtdC5XCIsXG4gICAgXCLQkdGD0YDQutC40L3QsC3QpNCw0YHQvlwiLFxuICAgIFwi0JHRg9GA0YPQvdC00LhcIixcbiAgICBcItCR0YPRgtCw0L1cIixcbiAgICBcItCS0LDQvdGD0LDRgtGDXCIsXG4gICAgXCLQktCw0YLQuNC60LDQvVwiLFxuICAgIFwi0JLQtdC70LjQutC+0LHRgNC40YLQsNC90LjRj1wiLFxuICAgIFwi0JLQtdC90LPRgNC40Y9cIixcbiAgICBcItCS0LXQvdC10YHRg9GN0LvQsFwiLFxuICAgIFwi0JLQvtGB0YLQvtGH0L3Ri9C5INCi0LjQvNC+0YBcIixcbiAgICBcItCS0YzQtdGC0L3QsNC8XCIsXG4gICAgXCLQk9Cw0LHQvtC9XCIsXG4gICAgXCLQk9Cw0LjRgtC4XCIsXG4gICAgXCLQk9Cw0LnQsNC90LBcIixcbiAgICBcItCT0LDQvNCx0LjRj1wiLFxuICAgIFwi0JPQsNC90LBcIixcbiAgICBcItCT0LLQsNC00LXQu9GD0L/QsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JPQstCw0YLQtdC80LDQu9CwXCIsXG4gICAgXCLQk9Cy0LjQsNC90LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCT0LLQuNC90LXRj1wiLFxuICAgIFwi0JPQstC40L3QtdGPLdCR0LjRgdCw0YNcIixcbiAgICBcItCT0LXRgNC80LDQvdC40Y9cIixcbiAgICBcItCT0L7QvdC00YPRgNCw0YFcIixcbiAgICBcItCT0YDQtdC90LDQtNCwXCIsXG4gICAgXCLQk9GA0LXRhtC40Y9cIixcbiAgICBcItCT0YDRg9C30LjRj1wiLFxuICAgIFwi0JTQsNC90LjRj1wiLFxuICAgIFwi0JTQttC40LHRg9GC0LhcIixcbiAgICBcItCU0L7QvNC40L3QuNC60LBcIixcbiAgICBcItCU0L7QvNC40L3QuNC60LDQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQldCz0LjQv9C10YJcIixcbiAgICBcItCX0LDQvNCx0LjRj1wiLFxuICAgIFwi0JfQuNC80LHQsNCx0LLQtVwiLFxuICAgIFwi0JjQt9GA0LDQuNC70YxcIixcbiAgICBcItCY0L3QtNC40Y9cIixcbiAgICBcItCY0L3QtNC+0L3QtdC30LjRj1wiLFxuICAgIFwi0JjQvtGA0LTQsNC90LjRj1wiLFxuICAgIFwi0JjRgNCw0LpcIixcbiAgICBcItCY0YDQsNC9XCIsXG4gICAgXCLQmNGA0LvQsNC90LTQuNGPXCIsXG4gICAgXCLQmNGB0LvQsNC90LTQuNGPXCIsXG4gICAgXCLQmNGB0L/QsNC90LjRj1wiLFxuICAgIFwi0JjRgtCw0LvQuNGPXCIsXG4gICAgXCLQmdC10LzQtdC9XCIsXG4gICAgXCLQmtCw0LHQvi3QktC10YDQtNC1XCIsXG4gICAgXCLQmtCw0LfQsNGF0YHRgtCw0L1cIixcbiAgICBcItCa0LDQvNCx0L7QtNC20LBcIixcbiAgICBcItCa0LDQvNC10YDRg9C9XCIsXG4gICAgXCLQmtCw0L3QsNC00LBcIixcbiAgICBcItCa0LDRgtCw0YBcIixcbiAgICBcItCa0LXQvdC40Y9cIixcbiAgICBcItCa0LjQv9GAXCIsXG4gICAgXCLQmtC40YDQuNCx0LDRgtC4XCIsXG4gICAgXCLQmtC40YLQsNC5XCIsXG4gICAgXCLQmtC+0LvRg9C80LHQuNGPXCIsXG4gICAgXCLQmtC+0LzQvtGA0YHQutC40LUg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCa0L7QvdCz0L5cIixcbiAgICBcItCU0LXQvNC+0LrRgNCw0YLQuNGH0LXRgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsFwiLFxuICAgIFwi0JrQvtGA0LXRjyAo0KHQtdCy0LXRgNC90LDRjylcIixcbiAgICBcItCa0L7RgNC10Y8gKNCu0LbQvdCw0Y8pXCIsXG4gICAgXCLQmtC+0YHQvtCy0L5cIixcbiAgICBcItCa0L7RgdGC0LAt0KDQuNC60LBcIixcbiAgICBcItCa0L7Rgi3QtCfQmNCy0YPQsNGAXCIsXG4gICAgXCLQmtGD0LHQsFwiLFxuICAgIFwi0JrRg9Cy0LXQudGCXCIsXG4gICAgXCLQmtGD0LrQsCDQvtGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JrRi9GA0LPRi9C30YHRgtCw0L1cIixcbiAgICBcItCb0LDQvtGBXCIsXG4gICAgXCLQm9Cw0YLQstC40Y9cIixcbiAgICBcItCb0LXRgdC+0YLQvlwiLFxuICAgIFwi0JvQuNCx0LXRgNC40Y9cIixcbiAgICBcItCb0LjQstCw0L1cIixcbiAgICBcItCb0LjQstC40Y9cIixcbiAgICBcItCb0LjRgtCy0LBcIixcbiAgICBcItCb0LjRhdGC0LXQvdGI0YLQtdC50L1cIixcbiAgICBcItCb0Y7QutGB0LXQvNCx0YPRgNCzXCIsXG4gICAgXCLQnNCw0LLRgNC40LrQuNC5XCIsXG4gICAgXCLQnNCw0LLRgNC40YLQsNC90LjRj1wiLFxuICAgIFwi0JzQsNC00LDQs9Cw0YHQutCw0YBcIixcbiAgICBcItCc0LDQutC10LTQvtC90LjRj1wiLFxuICAgIFwi0JzQsNC70LDQstC4XCIsXG4gICAgXCLQnNCw0LvQsNC50LfQuNGPXCIsXG4gICAgXCLQnNCw0LvQuFwiLFxuICAgIFwi0JzQsNC70YzQtNC40LLRi1wiLFxuICAgIFwi0JzQsNC70YzRgtCwXCIsXG4gICAgXCLQnNCw0YDRiNCw0LvQu9C+0LLRiyDQntGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JzQtdC60YHQuNC60LBcIixcbiAgICBcItCc0LjQutGA0L7QvdC10LfQuNGPXCIsXG4gICAgXCLQnNC+0LfQsNC80LHQuNC6XCIsXG4gICAgXCLQnNC+0LvQtNC+0LLQsFwiLFxuICAgIFwi0JzQvtC90LDQutC+XCIsXG4gICAgXCLQnNC+0L3Qs9C+0LvQuNGPXCIsXG4gICAgXCLQnNCw0YDQvtC60LrQvlwiLFxuICAgIFwi0JzRjNGP0L3QvNCwXCIsXG4gICAgXCLQndCw0LzQuNCx0LjRj1wiLFxuICAgIFwi0J3QsNGD0YDRg1wiLFxuICAgIFwi0J3QtdC/0LDQu1wiLFxuICAgIFwi0J3QuNCz0LXRgFwiLFxuICAgIFwi0J3QuNCz0LXRgNC40Y9cIixcbiAgICBcItCd0LjQtNC10YDQu9Cw0L3QtNGLXCIsXG4gICAgXCLQndC40LrQsNGA0LDQs9GD0LBcIixcbiAgICBcItCd0L7QstCw0Y8g0JfQtdC70LDQvdC00LjRj1wiLFxuICAgIFwi0J3QvtGA0LLQtdCz0LjRj1wiLFxuICAgIFwi0J7QsdGK0LXQtNC40L3QtdC90L3Ri9C1INCQ0YDQsNCx0YHQutC40LUg0K3QvNC40YDQsNGC0YtcIixcbiAgICBcItCe0LzQsNC9XCIsXG4gICAgXCLQn9Cw0LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQn9Cw0LvQsNGDXCIsXG4gICAgXCLQn9Cw0L3QsNC80LBcIixcbiAgICBcItCf0LDQv9GD0LAg4oCUINCd0L7QstCw0Y8g0JPQstC40L3QtdGPXCIsXG4gICAgXCLQn9Cw0YDQsNCz0LLQsNC5XCIsXG4gICAgXCLQn9C10YDRg1wiLFxuICAgIFwi0J/QvtC70YzRiNCwXCIsXG4gICAgXCLQn9C+0YDRgtGD0LPQsNC70LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQvtC90LPQvlwiLFxuICAgIFwi0KDQvtGB0YHQuNGPXCIsXG4gICAgXCLQoNGD0LDQvdC00LBcIixcbiAgICBcItCg0YPQvNGL0L3QuNGPXCIsXG4gICAgXCLQodCw0LvRjNCy0LDQtNC+0YBcIixcbiAgICBcItCh0LDQvNC+0LBcIixcbiAgICBcItCh0LDQvS3QnNCw0YDQuNC90L5cIixcbiAgICBcItCh0LDQvS3QotC+0LzQtSDQuCDQn9GA0LjQvdGB0LjQv9C4XCIsXG4gICAgXCLQodCw0YPQtNC+0LLRgdC60LDRjyDQkNGA0LDQstC40Y9cIixcbiAgICBcItCh0LLQsNC30LjQu9C10L3QtFwiLFxuICAgIFwi0KHQtdC50YjQtdC70YzRgdC60LjQtSDQvtGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0KHQtdC90LXQs9Cw0LtcIixcbiAgICBcItCh0LXQvdGCLdCS0LjQvdGB0LXQvdGCINC4INCT0YDQtdC90LDQtNC40L3Ri1wiLFxuICAgIFwi0KHQtdC90YIt0JrQuNGC0YLRgSDQuCDQndC10LLQuNGBXCIsXG4gICAgXCLQodC10L3Rgi3Qm9GO0YHQuNGPXCIsXG4gICAgXCLQodC10YDQsdC40Y9cIixcbiAgICBcItCh0LjQvdCz0LDQv9GD0YBcIixcbiAgICBcItCh0LjRgNC40Y9cIixcbiAgICBcItCh0LvQvtCy0LDQutC40Y9cIixcbiAgICBcItCh0LvQvtCy0LXQvdC40Y9cIixcbiAgICBcItCh0L7QtdC00LjQvdC10L3QvdGL0LUg0KjRgtCw0YLRiyDQkNC80LXRgNC40LrQuFwiLFxuICAgIFwi0KHQvtC70L7QvNC+0L3QvtCy0Ysg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCh0L7QvNCw0LvQuFwiLFxuICAgIFwi0KHRg9C00LDQvVwiLFxuICAgIFwi0KHRg9GA0LjQvdCw0LxcIixcbiAgICBcItCh0YzQtdGA0YDQsC3Qm9C10L7QvdC1XCIsXG4gICAgXCLQotCw0LTQttC40LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQotCw0LjQu9Cw0L3QtFwiLFxuICAgIFwi0KLQsNC50LLQsNC90YwgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0LDQvNC40Lst0JjQu9Cw0LwgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0LDQvdC30LDQvdC40Y9cIixcbiAgICBcItCi0ZHRgNC60YEg0Lgg0JrQsNC50LrQvtGBICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQotC+0LPQvlwiLFxuICAgIFwi0KLQvtC60LXQu9Cw0YMgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0L7QvdCz0LBcIixcbiAgICBcItCi0YDQuNC90LjQtNCw0LQg0Lgg0KLQvtCx0LDQs9C+XCIsXG4gICAgXCLQotGD0LLQsNC70YNcIixcbiAgICBcItCi0YPQvdC40YFcIixcbiAgICBcItCi0YPRgNC10YbQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KHQtdCy0LXRgNC90L7Qs9C+INCa0LjQv9GA0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0YPRgNC60LzQtdC90LjRgdGC0LDQvVwiLFxuICAgIFwi0KLRg9GA0YbQuNGPXCIsXG4gICAgXCLQo9Cz0LDQvdC00LBcIixcbiAgICBcItCj0LfQsdC10LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQo9C60YDQsNC40L3QsFwiLFxuICAgIFwi0KPRgNGD0LPQstCw0LlcIixcbiAgICBcItCk0LDRgNC10YDRgdC60LjQtSDQntGB0YLRgNC+0LLQsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0KTQuNC00LbQuFwiLFxuICAgIFwi0KTQuNC70LjQv9C/0LjQvdGLXCIsXG4gICAgXCLQpNC40L3Qu9GP0L3QtNC40Y9cIixcbiAgICBcItCk0YDQsNC90YbQuNGPXCIsXG4gICAgXCLQpNGA0LDQvdGG0YPQt9GB0LrQsNGPINCf0L7Qu9C40L3QtdC30LjRjyAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0KXQvtGA0LLQsNGC0LjRj1wiLFxuICAgIFwi0KbQtdC90YLRgNCw0LvRjNC90L7QsNGE0YDQuNC60LDQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQp9Cw0LRcIixcbiAgICBcItCn0LXRgNC90L7Qs9C+0YDQuNGPXCIsXG4gICAgXCLQp9C10YXQuNGPXCIsXG4gICAgXCLQp9C40LvQuFwiLFxuICAgIFwi0KjQstC10LnRhtCw0YDQuNGPXCIsXG4gICAgXCLQqNCy0LXRhtC40Y9cIixcbiAgICBcItCo0YDQuC3Qm9Cw0L3QutCwXCIsXG4gICAgXCLQrdC60LLQsNC00L7RgFwiLFxuICAgIFwi0K3QutCy0LDRgtC+0YDQuNCw0LvRjNC90LDRjyDQk9Cy0LjQvdC10Y9cIixcbiAgICBcItCt0YDQuNGC0YDQtdGPXCIsXG4gICAgXCLQrdGB0YLQvtC90LjRj1wiLFxuICAgIFwi0K3RhNC40L7Qv9C40Y9cIixcbiAgICBcItCu0LbQvdC+LdCQ0YTRgNC40LrQsNC90YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCv0LzQsNC50LrQsFwiLFxuICAgIFwi0K/Qv9C+0L3QuNGPXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcItGD0LsuXCIsXG4gICAgXCLRg9C70LjRhtCwXCIsXG4gICAgXCLQv9GA0L7RgdC/0LXQutGCXCIsXG4gICAgXCLQv9GALlwiLFxuICAgIFwi0L/Qu9C+0YnQsNC00YxcIixcbiAgICBcItC/0LsuXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCLQutCyLiAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JDQtNGL0LPQtdGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQkdCw0YjQutC+0YDRgtC+0YHRgtCw0L1cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCR0YPRgNGP0YLQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQkNC70YLQsNC5INCg0LXRgdC/0YPQsdC70LjQutCwINCU0LDQs9C10YHRgtCw0L1cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCY0L3Qs9GD0YjQtdGC0LjRj1wiLFxuICAgIFwi0JrQsNCx0LDRgNC00LjQvdC+LdCR0LDQu9C60LDRgNGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0LvQvNGL0LrQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0YDQsNGH0LDQtdCy0L4t0KfQtdGA0LrQtdGB0YHQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0YDQtdC70LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQvtC80LhcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCc0LDRgNC40Lkg0K3Qu1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JzQvtGA0LTQvtCy0LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KHQsNGF0LAgKNCv0LrRg9GC0LjRjylcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCh0LXQstC10YDQvdCw0Y8g0J7RgdC10YLQuNGPLdCQ0LvQsNC90LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KLQsNGC0LDRgNGB0YLQsNC9XCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQotGL0LLQsFwiLFxuICAgIFwi0KPQtNC80YPRgNGC0YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCl0LDQutCw0YHQuNGPXCIsXG4gICAgXCLQp9GD0LLQsNGI0YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCQ0LvRgtCw0LnRgdC60LjQuSDQutGA0LDQuVwiLFxuICAgIFwi0JrRgNCw0YHQvdC+0LTQsNGA0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCa0YDQsNGB0L3QvtGP0YDRgdC60LjQuSDQutGA0LDQuVwiLFxuICAgIFwi0J/RgNC40LzQvtGA0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCh0YLQsNCy0YDQvtC/0L7Qu9GM0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCl0LDQsdCw0YDQvtCy0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCQ0LzRg9GA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCQ0YDRhdCw0L3Qs9C10LvRjNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQkNGB0YLRgNCw0YXQsNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCR0LXQu9Cz0L7RgNC+0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JHRgNGP0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQu9Cw0LTQuNC80LjRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQktC+0LvQs9C+0LPRgNCw0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQvtC70L7Qs9C+0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQvtGA0L7QvdC10LbRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JjQstCw0L3QvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCY0YDQutGD0YLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQsNC70LjQvdC40LPRgNCw0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQsNC70YPQttGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtCw0LzRh9Cw0YLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQtdC80LXRgNC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQuNGA0L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtC+0YHRgtGA0L7QvNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtGD0YDQs9Cw0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrRg9GA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCb0LXQvdC40L3Qs9GA0LDQtNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQm9C40L/QtdGG0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQnNCw0LPQsNC00LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQnNC+0YHQutC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JzRg9GA0LzQsNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCd0LjQttC10LPQvtGA0L7QtNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQndC+0LLQs9C+0YDQvtC00YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCd0L7QstC+0YHQuNCx0LjRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQntC80YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCe0YDQtdC90LHRg9GA0LPRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J7RgNC70L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQn9C10L3Qt9C10L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J/QtdGA0LzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J/RgdC60L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQoNC+0YHRgtC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KDRj9C30LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQodCw0LzQsNGA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LDRgNCw0YLQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LDRhdCw0LvQuNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LLQtdGA0LTQu9C+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KHQvNC+0LvQtdC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCi0LDQvNCx0L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQotCy0LXRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQotC+0LzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLRg9C70YzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLRjtC80LXQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQo9C70YzRj9C90L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQp9C10LvRj9Cx0LjQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQp9C40YLQuNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCv0YDQvtGB0LvQsNCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCV0LLRgNC10LnRgdC60LDRjyDQsNCy0YLQvtC90L7QvNC90LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JDQs9C40L3RgdC60LjQuSDQkdGD0YDRj9GC0YHQutC40Lkg0LDQstGCLiDQvtC60YDRg9CzXCIsXG4gICAgXCLQmtC+0LzQuC3Qn9C10YDQvNGP0YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0JrQvtGA0Y/QutGB0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCd0LXQvdC10YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KLQsNC50LzRi9GA0YHQutC40LkgKNCU0L7Qu9Cz0LDQvdC+LdCd0LXQvdC10YbQutC40LkpINCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCj0YHRgtGMLdCe0YDQtNGL0L3RgdC60LjQuSDQkdGD0YDRj9GC0YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KXQsNC90YLRiy3QnNCw0L3RgdC40LnRgdC60LjQuSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQp9GD0LrQvtGC0YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0K3QstC10L3QutC40LnRgdC60LjQuSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQr9C80LDQu9C+LdCd0LXQvdC10YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KfQtdGH0LXQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCJcbiAgXSxcbiAgXCJzdHJlZXRfdGl0bGVcIjogW1xuICAgIFwi0KHQvtCy0LXRgtGB0LrQsNGPXCIsXG4gICAgXCLQnNC+0LvQvtC00LXQttC90LDRj1wiLFxuICAgIFwi0KbQtdC90YLRgNCw0LvRjNC90LDRj1wiLFxuICAgIFwi0KjQutC+0LvRjNC90LDRj1wiLFxuICAgIFwi0J3QvtCy0LDRj1wiLFxuICAgIFwi0KHQsNC00L7QstCw0Y9cIixcbiAgICBcItCb0LXRgdC90LDRj1wiLFxuICAgIFwi0J3QsNCx0LXRgNC10LbQvdCw0Y9cIixcbiAgICBcItCb0LXQvdC40L3QsFwiLFxuICAgIFwi0JzQuNGA0LBcIixcbiAgICBcItCe0LrRgtGP0LHRgNGM0YHQutCw0Y9cIixcbiAgICBcItCX0LXQu9C10L3QsNGPXCIsXG4gICAgXCLQmtC+0LzRgdC+0LzQvtC70YzRgdC60LDRj1wiLFxuICAgIFwi0JfQsNGA0LXRh9C90LDRj1wiLFxuICAgIFwi0J/QtdGA0LLQvtC80LDQudGB0LrQsNGPXCIsXG4gICAgXCLQk9Cw0LPQsNGA0LjQvdCwXCIsXG4gICAgXCLQn9C+0LvQtdCy0LDRj1wiLFxuICAgIFwi0JvRg9Cz0L7QstCw0Y9cIixcbiAgICBcItCf0LjQvtC90LXRgNGB0LrQsNGPXCIsXG4gICAgXCLQmtC40YDQvtCy0LBcIixcbiAgICBcItCu0LHQuNC70LXQudC90LDRj1wiLFxuICAgIFwi0KHQtdCy0LXRgNC90LDRj1wiLFxuICAgIFwi0J/RgNC+0LvQtdGC0LDRgNGB0LrQsNGPXCIsXG4gICAgXCLQodGC0LXQv9C90LDRj1wiLFxuICAgIFwi0J/Rg9GI0LrQuNC90LBcIixcbiAgICBcItCa0LDQu9C40L3QuNC90LBcIixcbiAgICBcItCu0LbQvdCw0Y9cIixcbiAgICBcItCa0L7Qu9GF0L7Qt9C90LDRj1wiLFxuICAgIFwi0KDQsNCx0L7Rh9Cw0Y9cIixcbiAgICBcItCh0L7Qu9C90LXRh9C90LDRj1wiLFxuICAgIFwi0JbQtdC70LXQt9C90L7QtNC+0YDQvtC20L3QsNGPXCIsXG4gICAgXCLQktC+0YHRgtC+0YfQvdCw0Y9cIixcbiAgICBcItCX0LDQstC+0LTRgdC60LDRj1wiLFxuICAgIFwi0KfQsNC/0LDQtdCy0LBcIixcbiAgICBcItCd0LDQs9C+0YDQvdCw0Y9cIixcbiAgICBcItCh0YLRgNC+0LjRgtC10LvQtdC5XCIsXG4gICAgXCLQkdC10YDQtdCz0L7QstCw0Y9cIixcbiAgICBcItCf0L7QsdC10LTRi1wiLFxuICAgIFwi0JPQvtGA0YzQutC+0LPQvlwiLFxuICAgIFwi0JrQvtC+0L/QtdGA0LDRgtC40LLQvdCw0Y9cIixcbiAgICBcItCa0YDQsNGB0L3QvtCw0YDQvNC10LnRgdC60LDRj1wiLFxuICAgIFwi0KHQvtCy0YXQvtC30L3QsNGPXCIsXG4gICAgXCLQoNC10YfQvdCw0Y9cIixcbiAgICBcItCo0LrQvtC70YzQvdGL0LlcIixcbiAgICBcItCh0L/QvtGA0YLQuNCy0L3QsNGPXCIsXG4gICAgXCLQntC30LXRgNC90LDRj1wiLFxuICAgIFwi0KHRgtGA0L7QuNGC0LXQu9GM0L3QsNGPXCIsXG4gICAgXCLQn9Cw0YDQutC+0LLQsNGPXCIsXG4gICAgXCLQp9C60LDQu9C+0LLQsFwiLFxuICAgIFwi0JzQuNGH0YPRgNC40L3QsFwiLFxuICAgIFwi0YDQtdGH0LXQvdGMINGD0LvQuNGGXCIsXG4gICAgXCLQn9C+0LTQs9C+0YDQvdCw0Y9cIixcbiAgICBcItCU0YDRg9C20LHRi1wiLFxuICAgIFwi0J/QvtGH0YLQvtCy0LDRj1wiLFxuICAgIFwi0J/QsNGA0YLQuNC30LDQvdGB0LrQsNGPXCIsXG4gICAgXCLQktC+0LrQt9Cw0LvRjNC90LDRj1wiLFxuICAgIFwi0JvQtdGA0LzQvtC90YLQvtCy0LBcIixcbiAgICBcItCh0LLQvtCx0L7QtNGLXCIsXG4gICAgXCLQlNC+0YDQvtC20L3QsNGPXCIsXG4gICAgXCLQlNCw0YfQvdCw0Y9cIixcbiAgICBcItCc0LDRj9C60L7QstGB0LrQvtCz0L5cIixcbiAgICBcItCX0LDQv9Cw0LTQvdCw0Y9cIixcbiAgICBcItCk0YDRg9C90LfQtVwiLFxuICAgIFwi0JTQt9C10YDQttC40L3RgdC60L7Qs9C+XCIsXG4gICAgXCLQnNC+0YHQutC+0LLRgdC60LDRj1wiLFxuICAgIFwi0KHQstC10YDQtNC70L7QstCwXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCy0LBcIixcbiAgICBcItCT0L7Qs9C+0LvRj1wiLFxuICAgIFwi0JrRgNCw0YHQvdCw0Y9cIixcbiAgICBcItCi0YDRg9C00L7QstCw0Y9cIixcbiAgICBcItCo0L7RgdGB0LXQudC90LDRj1wiLFxuICAgIFwi0KfQtdGF0L7QstCwXCIsXG4gICAgXCLQmtC+0LzQvNGD0L3QuNGB0YLQuNGH0LXRgdC60LDRj1wiLFxuICAgIFwi0KLRgNGD0LTQsFwiLFxuICAgIFwi0JrQvtC80LDRgNC+0LLQsFwiLFxuICAgIFwi0JzQsNGC0YDQvtGB0L7QstCwXCIsXG4gICAgXCLQntGB0YLRgNC+0LLRgdC60L7Qs9C+XCIsXG4gICAgXCLQodC+0YHQvdC+0LLQsNGPXCIsXG4gICAgXCLQmtC70YPQsdC90LDRj1wiLFxuICAgIFwi0JrRg9C50LHRi9GI0LXQstCwXCIsXG4gICAgXCLQmtGA0YPQv9GB0LrQvtC5XCIsXG4gICAgXCLQkdC10YDQtdC30L7QstCw0Y9cIixcbiAgICBcItCa0LDRgNC70LAg0JzQsNGA0LrRgdCwXCIsXG4gICAgXCI4INCc0LDRgNGC0LBcIixcbiAgICBcItCR0L7Qu9GM0L3QuNGH0L3QsNGPXCIsXG4gICAgXCLQodCw0LTQvtCy0YvQuVwiLFxuICAgIFwi0JjQvdGC0LXRgNC90LDRhtC40L7QvdCw0LvRjNC90LDRj1wiLFxuICAgIFwi0KHRg9Cy0L7RgNC+0LLQsFwiLFxuICAgIFwi0KbQstC10YLQvtGH0L3QsNGPXCIsXG4gICAgXCLQotGA0LDQutGC0L7QstCw0Y9cIixcbiAgICBcItCb0L7QvNC+0L3QvtGB0L7QstCwXCIsXG4gICAgXCLQk9C+0YDQvdCw0Y9cIixcbiAgICBcItCa0L7RgdC80L7QvdCw0LLRgtC+0LJcIixcbiAgICBcItCt0L3QtdGA0LPQtdGC0LjQutC+0LJcIixcbiAgICBcItCo0LXQstGH0LXQvdC60L5cIixcbiAgICBcItCS0LXRgdC10L3QvdGP0Y9cIixcbiAgICBcItCc0LXRhdCw0L3QuNC30LDRgtC+0YDQvtCyXCIsXG4gICAgXCLQmtC+0LzQvNGD0L3QsNC70YzQvdCw0Y9cIixcbiAgICBcItCb0LXRgdC90L7QuVwiLFxuICAgIFwiNDAg0LvQtdGCINCf0L7QsdC10LTRi1wiLFxuICAgIFwi0JzQsNC50YHQutCw0Y9cIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCLQnNC+0YHQutCy0LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YBcIixcbiAgICBcItCh0LDQvdC60YIt0J/QtdGC0LXRgNCx0YPRgNCzXCIsXG4gICAgXCLQndC+0LLQvtGB0LjQsdC40YDRgdC6XCIsXG4gICAgXCLQldC60LDRgtC10YDQuNC90LHRg9GA0LNcIixcbiAgICBcItCd0LjQttC90LjQuSDQndC+0LLQs9C+0YDQvtC0XCIsXG4gICAgXCLQodCw0LzQsNGA0LBcIixcbiAgICBcItCa0LDQt9Cw0L3RjFwiLFxuICAgIFwi0J7QvNGB0LpcIixcbiAgICBcItCn0LXQu9GP0LHQuNC90YHQulwiLFxuICAgIFwi0KDQvtGB0YLQvtCyLdC90LAt0JTQvtC90YNcIixcbiAgICBcItCj0YTQsFwiLFxuICAgIFwi0JLQvtC70LPQvtCz0YDQsNC0XCIsXG4gICAgXCLQn9C10YDQvNGMXCIsXG4gICAgXCLQmtGA0LDRgdC90L7Rj9GA0YHQulwiLFxuICAgIFwi0JLQvtGA0L7QvdC10LZcIixcbiAgICBcItCh0LDRgNCw0YLQvtCyXCIsXG4gICAgXCLQmtGA0LDRgdC90L7QtNCw0YBcIixcbiAgICBcItCi0L7Qu9GM0Y/RgtGC0LhcIixcbiAgICBcItCY0LbQtdCy0YHQulwiLFxuICAgIFwi0JHQsNGA0L3QsNGD0LtcIixcbiAgICBcItCj0LvRjNGP0L3QvtCy0YHQulwiLFxuICAgIFwi0KLRjtC80LXQvdGMXCIsXG4gICAgXCLQmNGA0LrRg9GC0YHQulwiLFxuICAgIFwi0JLQu9Cw0LTQuNCy0L7RgdGC0L7QulwiLFxuICAgIFwi0K/RgNC+0YHQu9Cw0LLQu9GMXCIsXG4gICAgXCLQpdCw0LHQsNGA0L7QstGB0LpcIixcbiAgICBcItCc0LDRhdCw0YfQutCw0LvQsFwiLFxuICAgIFwi0J7RgNC10L3QsdGD0YDQs1wiLFxuICAgIFwi0J3QvtCy0L7QutGD0LfQvdC10YbQulwiLFxuICAgIFwi0KLQvtC80YHQulwiLFxuICAgIFwi0JrQtdC80LXRgNC+0LLQvlwiLFxuICAgIFwi0KDRj9C30LDQvdGMXCIsXG4gICAgXCLQkNGB0YLRgNCw0YXQsNC90YxcIixcbiAgICBcItCf0LXQvdC30LBcIixcbiAgICBcItCb0LjQv9C10YbQulwiLFxuICAgIFwi0KLRg9C70LBcIixcbiAgICBcItCa0LjRgNC+0LJcIixcbiAgICBcItCn0LXQsdC+0LrRgdCw0YDRi1wiLFxuICAgIFwi0JrRg9GA0YHQulwiLFxuICAgIFwi0JHRgNGP0L3RgdC6bSDQnNCw0LPQvdC40YLQvtCz0L7RgNGB0LpcIixcbiAgICBcItCY0LLQsNC90L7QstC+XCIsXG4gICAgXCLQotCy0LXRgNGMXCIsXG4gICAgXCLQodGC0LDQstGA0L7Qv9C+0LvRjFwiLFxuICAgIFwi0JHQtdC70LPQvtGA0L7QtFwiLFxuICAgIFwi0KHQvtGH0LhcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tBZGRyZXNzLmNpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tBZGRyZXNzLnN0cmVldF90aXRsZX1cIixcbiAgICBcIiN7QWRkcmVzcy5zdHJlZXRfdGl0bGV9ICN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9LCAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCLQoNC+0YHRgdC40Y9cIlxuICBdXG59O1xucnUuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJ5YW5kZXgucnVcIixcbiAgICBcInlhLnJ1XCIsXG4gICAgXCJtYWlsLnJ1XCIsXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJydVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwi0YDRhFwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xucnUubmFtZSA9IHtcbiAgXCJtYWxlX2ZpcnN0X25hbWVcIjogW1xuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGAXCIsXG4gICAgXCLQkNC70LXQutGB0LXQuVwiLFxuICAgIFwi0JDQu9GM0LHQtdGA0YJcIixcbiAgICBcItCQ0L3QsNGC0L7Qu9C40LlcIixcbiAgICBcItCQ0L3QtNGA0LXQuVwiLFxuICAgIFwi0JDQvdGC0L7QvVwiLFxuICAgIFwi0JDRgNC60LDQtNC40LlcIixcbiAgICBcItCQ0YDRgdC10L3QuNC5XCIsXG4gICAgXCLQkNGA0YLRkdC8XCIsXG4gICAgXCLQkdC+0YDQuNGBXCIsXG4gICAgXCLQktCw0LTQuNC8XCIsXG4gICAgXCLQktCw0LvQtdC90YLQuNC9XCIsXG4gICAgXCLQktCw0LvQtdGA0LjQuVwiLFxuICAgIFwi0JLQsNGB0LjQu9C40LlcIixcbiAgICBcItCS0LjQutGC0L7RgFwiLFxuICAgIFwi0JLQuNGC0LDQu9C40LlcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YBcIixcbiAgICBcItCS0LvQsNC00LjRgdC70LDQslwiLFxuICAgIFwi0JLRj9GH0LXRgdC70LDQslwiLFxuICAgIFwi0JPQtdC90L3QsNC00LjQuVwiLFxuICAgIFwi0JPQtdC+0YDQs9C40LlcIixcbiAgICBcItCT0LXRgNC80LDQvVwiLFxuICAgIFwi0JPRgNC40LPQvtGA0LjQuVwiLFxuICAgIFwi0JTQsNC90LjQuNC7XCIsXG4gICAgXCLQlNC10L3QuNGBXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQuVwiLFxuICAgIFwi0JXQstCz0LXQvdC40LlcIixcbiAgICBcItCV0LPQvtGAXCIsXG4gICAgXCLQmNCy0LDQvVwiLFxuICAgIFwi0JjQs9C90LDRgtC40LlcIixcbiAgICBcItCY0LPQvtGA0YxcIixcbiAgICBcItCY0LvRjNGPXCIsXG4gICAgXCLQmtC+0L3RgdGC0LDQvdGC0LjQvVwiLFxuICAgIFwi0JvQsNCy0YDQtdC90YLQuNC5XCIsXG4gICAgXCLQm9C10L7QvdC40LRcIixcbiAgICBcItCb0YPQutCwXCIsXG4gICAgXCLQnNCw0LrQsNGAXCIsXG4gICAgXCLQnNCw0LrRgdC40LxcIixcbiAgICBcItCc0LDRgtCy0LXQuVwiLFxuICAgIFwi0JzQuNGF0LDQuNC7XCIsXG4gICAgXCLQndC40LrQuNGC0LBcIixcbiAgICBcItCd0LjQutC+0LvQsNC5XCIsXG4gICAgXCLQntC70LXQs1wiLFxuICAgIFwi0KDQvtC80LDQvVwiLFxuICAgIFwi0KHQtdC80ZHQvVwiLFxuICAgIFwi0KHQtdGA0LPQtdC5XCIsXG4gICAgXCLQodGC0LDQvdC40YHQu9Cw0LJcIixcbiAgICBcItCh0YLQtdC/0LDQvVwiLFxuICAgIFwi0KTRkdC00L7RgFwiLFxuICAgIFwi0K3QtNGD0LDRgNC0XCIsXG4gICAgXCLQrtGA0LjQuVwiLFxuICAgIFwi0K/RgNC+0YHQu9Cw0LJcIlxuICBdLFxuICBcIm1hbGVfbWlkZGxlX25hbWVcIjogW1xuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YdcIixcbiAgICBcItCQ0LvQtdC60YHQtdC10LLQuNGHXCIsXG4gICAgXCLQkNC70YzQsdC10YDRgtC+0LLQuNGHXCIsXG4gICAgXCLQkNC90LDRgtC+0LvRjNC10LLQuNGHXCIsXG4gICAgXCLQkNC90LTRgNC10LXQstC40YdcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCy0LjRh1wiLFxuICAgIFwi0JDRgNC60LDQtNGM0LXQstC40YdcIixcbiAgICBcItCQ0YDRgdC10L3RjNC10LLQuNGHXCIsXG4gICAgXCLQkNGA0YLRkdC80L7QstC40YdcIixcbiAgICBcItCR0L7RgNC40YHQvtCy0LjRh1wiLFxuICAgIFwi0JLQsNC00LjQvNC+0LLQuNGHXCIsXG4gICAgXCLQktCw0LvQtdC90YLQuNC90L7QstC40YdcIixcbiAgICBcItCS0LDQu9C10YDRjNC10LLQuNGHXCIsXG4gICAgXCLQktCw0YHQuNC70YzQtdCy0LjRh1wiLFxuICAgIFwi0JLQuNC60YLQvtGA0L7QstC40YdcIixcbiAgICBcItCS0LjRgtCw0LvRjNC10LLQuNGHXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QstC40YdcIixcbiAgICBcItCS0LvQsNC00LjRgdC70LDQstC+0LLQuNGHXCIsXG4gICAgXCLQktGP0YfQtdGB0LvQsNCy0L7QstC40YdcIixcbiAgICBcItCT0LXQvdC90LDQtNGM0LXQstC40YdcIixcbiAgICBcItCT0LXQvtGA0LPQuNC10LLQuNGHXCIsXG4gICAgXCLQk9C10YDQvNCw0L3QvtCy0LjRh1wiLFxuICAgIFwi0JPRgNC40LPQvtGA0YzQtdCy0LjRh1wiLFxuICAgIFwi0JTQsNC90LjQuNC70L7QstC40YdcIixcbiAgICBcItCU0LXQvdC40YHQvtCy0LjRh1wiLFxuICAgIFwi0JTQvNC40YLRgNC40LXQstC40YdcIixcbiAgICBcItCV0LLQs9C10L3RjNC10LLQuNGHXCIsXG4gICAgXCLQldCz0L7RgNC+0LLQuNGHXCIsXG4gICAgXCLQmNCy0LDQvdC+0LLQuNGHXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCy0LjRh1wiLFxuICAgIFwi0JjQs9C+0YDQtdCy0LjRh1wiLFxuICAgIFwi0JjQu9GM0LjRh1wiLFxuICAgIFwi0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRh1wiLFxuICAgIFwi0JvQsNCy0YDQtdC90YLRjNC10LLQuNGHXCIsXG4gICAgXCLQm9C10L7QvdC40LTQvtCy0LjRh1wiLFxuICAgIFwi0JvRg9C60LjRh1wiLFxuICAgIFwi0JzQsNC60LDRgNC+0LLQuNGHXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCy0LjRh1wiLFxuICAgIFwi0JzQsNGC0LLQtdC10LLQuNGHXCIsXG4gICAgXCLQnNC40YXQsNC50LvQvtCy0LjRh1wiLFxuICAgIFwi0J3QuNC60LjRgtC40YdcIixcbiAgICBcItCd0LjQutC+0LvQsNC10LLQuNGHXCIsXG4gICAgXCLQntC70LXQs9C+0LLQuNGHXCIsXG4gICAgXCLQoNC+0LzQsNC90L7QstC40YdcIixcbiAgICBcItCh0LXQvNGR0L3QvtCy0LjRh1wiLFxuICAgIFwi0KHQtdGA0LPQtdC10LLQuNGHXCIsXG4gICAgXCLQodGC0LDQvdC40YHQu9Cw0LLQvtCy0LjRh1wiLFxuICAgIFwi0KHRgtC10L/QsNC90L7QstC40YdcIixcbiAgICBcItCk0ZHQtNC+0YDQvtCy0LjRh1wiLFxuICAgIFwi0K3QtNGD0LDRgNC00L7QstC40YdcIixcbiAgICBcItCu0YDRjNC10LLQuNGHXCIsXG4gICAgXCLQr9GA0L7RgdC70LDQstC+0LLQuNGHXCJcbiAgXSxcbiAgXCJtYWxlX2xhc3RfbmFtZVwiOiBbXG4gICAgXCLQodC80LjRgNC90L7QslwiLFxuICAgIFwi0JjQstCw0L3QvtCyXCIsXG4gICAgXCLQmtGD0LfQvdC10YbQvtCyXCIsXG4gICAgXCLQn9C+0L/QvtCyXCIsXG4gICAgXCLQodC+0LrQvtC70L7QslwiLFxuICAgIFwi0JvQtdCx0LXQtNC10LJcIixcbiAgICBcItCa0L7Qt9C70L7QslwiLFxuICAgIFwi0J3QvtCy0LjQutC+0LJcIixcbiAgICBcItCc0L7RgNC+0LfQvtCyXCIsXG4gICAgXCLQn9C10YLRgNC+0LJcIixcbiAgICBcItCS0L7Qu9C60L7QslwiLFxuICAgIFwi0KHQvtC70L7QstGM0LXQslwiLFxuICAgIFwi0JLQsNGB0LjQu9GM0LXQslwiLFxuICAgIFwi0JfQsNC50YbQtdCyXCIsXG4gICAgXCLQn9Cw0LLQu9C+0LJcIixcbiAgICBcItCh0LXQvNC10L3QvtCyXCIsXG4gICAgXCLQk9C+0LvRg9Cx0LXQslwiLFxuICAgIFwi0JLQuNC90L7Qs9GA0LDQtNC+0LJcIixcbiAgICBcItCR0L7Qs9C00LDQvdC+0LJcIixcbiAgICBcItCS0L7RgNC+0LHRjNC10LJcIixcbiAgICBcItCk0LXQtNC+0YDQvtCyXCIsXG4gICAgXCLQnNC40YXQsNC50LvQvtCyXCIsXG4gICAgXCLQkdC10LvRj9C10LJcIixcbiAgICBcItCi0LDRgNCw0YHQvtCyXCIsXG4gICAgXCLQkdC10LvQvtCyXCIsXG4gICAgXCLQmtC+0LzQsNGA0L7QslwiLFxuICAgIFwi0J7RgNC70L7QslwiLFxuICAgIFwi0JrQuNGB0LXQu9C10LJcIixcbiAgICBcItCc0LDQutCw0YDQvtCyXCIsXG4gICAgXCLQkNC90LTRgNC10LXQslwiLFxuICAgIFwi0JrQvtCy0LDQu9C10LJcIixcbiAgICBcItCY0LvRjNC40L1cIixcbiAgICBcItCT0YPRgdC10LJcIixcbiAgICBcItCi0LjRgtC+0LJcIixcbiAgICBcItCa0YPQt9GM0LzQuNC9XCIsXG4gICAgXCLQmtGD0LTRgNGP0LLRhtC10LJcIixcbiAgICBcItCR0LDRgNCw0L3QvtCyXCIsXG4gICAgXCLQmtGD0LvQuNC60L7QslwiLFxuICAgIFwi0JDQu9C10LrRgdC10LXQslwiLFxuICAgIFwi0KHRgtC10L/QsNC90L7QslwiLFxuICAgIFwi0K/QutC+0LLQu9C10LJcIixcbiAgICBcItCh0L7RgNC+0LrQuNC9XCIsXG4gICAgXCLQodC10YDQs9C10LXQslwiLFxuICAgIFwi0KDQvtC80LDQvdC+0LJcIixcbiAgICBcItCX0LDRhdCw0YDQvtCyXCIsXG4gICAgXCLQkdC+0YDQuNGB0L7QslwiLFxuICAgIFwi0JrQvtGA0L7Qu9C10LJcIixcbiAgICBcItCT0LXRgNCw0YHQuNC80L7QslwiLFxuICAgIFwi0J/QvtC90L7QvNCw0YDQtdCyXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LJcIixcbiAgICBcItCb0LDQt9Cw0YDQtdCyXCIsXG4gICAgXCLQnNC10LTQstC10LTQtdCyXCIsXG4gICAgXCLQldGA0YjQvtCyXCIsXG4gICAgXCLQndC40LrQuNGC0LjQvVwiLFxuICAgIFwi0KHQvtCx0L7Qu9C10LJcIixcbiAgICBcItCg0Y/QsdC+0LJcIixcbiAgICBcItCf0L7Qu9GP0LrQvtCyXCIsXG4gICAgXCLQptCy0LXRgtC60L7QslwiLFxuICAgIFwi0JTQsNC90LjQu9C+0LJcIixcbiAgICBcItCW0YPQutC+0LJcIixcbiAgICBcItCk0YDQvtC70L7QslwiLFxuICAgIFwi0JbRg9GA0LDQstC70LXQslwiLFxuICAgIFwi0J3QuNC60L7Qu9Cw0LXQslwiLFxuICAgIFwi0JrRgNGL0LvQvtCyXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCyXCIsXG4gICAgXCLQodC40LTQvtGA0L7QslwiLFxuICAgIFwi0J7RgdC40L/QvtCyXCIsXG4gICAgXCLQkdC10LvQvtGD0YHQvtCyXCIsXG4gICAgXCLQpNC10LTQvtGC0L7QslwiLFxuICAgIFwi0JTQvtGA0L7RhNC10LXQslwiLFxuICAgIFwi0JXQs9C+0YDQvtCyXCIsXG4gICAgXCLQnNCw0YLQstC10LXQslwiLFxuICAgIFwi0JHQvtCx0YDQvtCyXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCyXCIsXG4gICAgXCLQmtCw0LvQuNC90LjQvVwiLFxuICAgIFwi0JDQvdC40YHQuNC80L7QslwiLFxuICAgIFwi0J/QtdGC0YPRhdC+0LJcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCyXCIsXG4gICAgXCLQotC40LzQvtGE0LXQtdCyXCIsXG4gICAgXCLQndC40LrQuNGE0L7RgNC+0LJcIixcbiAgICBcItCS0LXRgdC10LvQvtCyXCIsXG4gICAgXCLQpNC40LvQuNC/0L/QvtCyXCIsXG4gICAgXCLQnNCw0YDQutC+0LJcIixcbiAgICBcItCR0L7Qu9GM0YjQsNC60L7QslwiLFxuICAgIFwi0KHRg9GF0LDQvdC+0LJcIixcbiAgICBcItCc0LjRgNC+0L3QvtCyXCIsXG4gICAgXCLQqNC40YDRj9C10LJcIixcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgNC+0LJcIixcbiAgICBcItCa0L7QvdC+0LLQsNC70L7QslwiLFxuICAgIFwi0KjQtdGB0YLQsNC60L7QslwiLFxuICAgIFwi0JrQsNC30LDQutC+0LJcIixcbiAgICBcItCV0YTQuNC80L7QslwiLFxuICAgIFwi0JTQtdC90LjRgdC+0LJcIixcbiAgICBcItCT0YDQvtC80L7QslwiLFxuICAgIFwi0KTQvtC80LjQvVwiLFxuICAgIFwi0JTQsNCy0YvQtNC+0LJcIixcbiAgICBcItCc0LXQu9GM0L3QuNC60L7QslwiLFxuICAgIFwi0KnQtdGA0LHQsNC60L7QslwiLFxuICAgIFwi0JHQu9C40L3QvtCyXCIsXG4gICAgXCLQmtC+0LvQtdGB0L3QuNC60L7QslwiLFxuICAgIFwi0JrQsNGA0L/QvtCyXCIsXG4gICAgXCLQkNGE0LDQvdCw0YHRjNC10LJcIixcbiAgICBcItCS0LvQsNGB0L7QslwiLFxuICAgIFwi0JzQsNGB0LvQvtCyXCIsXG4gICAgXCLQmNGB0LDQutC+0LJcIixcbiAgICBcItCi0LjRhdC+0L3QvtCyXCIsXG4gICAgXCLQkNC60YHQtdC90L7QslwiLFxuICAgIFwi0JPQsNCy0YDQuNC70L7QslwiLFxuICAgIFwi0KDQvtC00LjQvtC90L7QslwiLFxuICAgIFwi0JrQvtGC0L7QslwiLFxuICAgIFwi0JPQvtGA0LHRg9C90L7QslwiLFxuICAgIFwi0JrRg9C00YDRj9GI0L7QslwiLFxuICAgIFwi0JHRi9C60L7QslwiLFxuICAgIFwi0JfRg9C10LJcIixcbiAgICBcItCi0YDQtdGC0YzRj9C60L7QslwiLFxuICAgIFwi0KHQsNCy0LXQu9GM0LXQslwiLFxuICAgIFwi0J/QsNC90L7QslwiLFxuICAgIFwi0KDRi9Cx0LDQutC+0LJcIixcbiAgICBcItCh0YPQstC+0YDQvtCyXCIsXG4gICAgXCLQkNCx0YDQsNC80L7QslwiLFxuICAgIFwi0JLQvtGA0L7QvdC+0LJcIixcbiAgICBcItCc0YPRhdC40L1cIixcbiAgICBcItCQ0YDRhdC40L/QvtCyXCIsXG4gICAgXCLQotGA0L7RhNC40LzQvtCyXCIsXG4gICAgXCLQnNCw0YDRgtGL0L3QvtCyXCIsXG4gICAgXCLQldC80LXQu9GM0Y/QvdC+0LJcIixcbiAgICBcItCT0L7RgNGI0LrQvtCyXCIsXG4gICAgXCLQp9C10YDQvdC+0LJcIixcbiAgICBcItCe0LLRh9C40L3QvdC40LrQvtCyXCIsXG4gICAgXCLQodC10LvQtdC30L3QtdCyXCIsXG4gICAgXCLQn9Cw0L3RhNC40LvQvtCyXCIsXG4gICAgXCLQmtC+0L/Ri9C70L7QslwiLFxuICAgIFwi0JzQuNGF0LXQtdCyXCIsXG4gICAgXCLQk9Cw0LvQutC40L1cIixcbiAgICBcItCd0LDQt9Cw0YDQvtCyXCIsXG4gICAgXCLQm9C+0LHQsNC90L7QslwiLFxuICAgIFwi0JvRg9C60LjQvVwiLFxuICAgIFwi0JHQtdC70Y/QutC+0LJcIixcbiAgICBcItCf0L7RgtCw0L/QvtCyXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCyXCIsXG4gICAgXCLQpdC+0YXQu9C+0LJcIixcbiAgICBcItCW0LTQsNC90L7QslwiLFxuICAgIFwi0J3QsNGD0LzQvtCyXCIsXG4gICAgXCLQqNC40LvQvtCyXCIsXG4gICAgXCLQktC+0YDQvtC90YbQvtCyXCIsXG4gICAgXCLQldGA0LzQsNC60L7QslwiLFxuICAgIFwi0JTRgNC+0LfQtNC+0LJcIixcbiAgICBcItCY0LPQvdCw0YLRjNC10LJcIixcbiAgICBcItCh0LDQstC40L1cIixcbiAgICBcItCb0L7Qs9C40L3QvtCyXCIsXG4gICAgXCLQodCw0YTQvtC90L7QslwiLFxuICAgIFwi0JrQsNC/0YPRgdGC0LjQvVwiLFxuICAgIFwi0JrQuNGA0LjQu9C70L7QslwiLFxuICAgIFwi0JzQvtC40YHQtdC10LJcIixcbiAgICBcItCV0LvQuNGB0LXQtdCyXCIsXG4gICAgXCLQmtC+0YjQtdC70LXQslwiLFxuICAgIFwi0JrQvtGB0YLQuNC9XCIsXG4gICAgXCLQk9C+0YDQsdCw0YfQtdCyXCIsXG4gICAgXCLQntGA0LXRhdC+0LJcIixcbiAgICBcItCV0YTRgNC10LzQvtCyXCIsXG4gICAgXCLQmNGB0LDQtdCyXCIsXG4gICAgXCLQldCy0LTQvtC60LjQvNC+0LJcIixcbiAgICBcItCa0LDQu9Cw0YjQvdC40LrQvtCyXCIsXG4gICAgXCLQmtCw0LHQsNC90L7QslwiLFxuICAgIFwi0J3QvtGB0LrQvtCyXCIsXG4gICAgXCLQrtC00LjQvVwiLFxuICAgIFwi0JrRg9C70LDQs9C40L1cIixcbiAgICBcItCb0LDQv9C40L1cIixcbiAgICBcItCf0YDQvtGF0L7RgNC+0LJcIixcbiAgICBcItCd0LXRgdGC0LXRgNC+0LJcIixcbiAgICBcItCl0LDRgNC40YLQvtC90L7QslwiLFxuICAgIFwi0JDQs9Cw0YTQvtC90L7QslwiLFxuICAgIFwi0JzRg9GA0LDQstGM0LXQslwiLFxuICAgIFwi0JvQsNGA0LjQvtC90L7QslwiLFxuICAgIFwi0KTQtdC00L7RgdC10LXQslwiLFxuICAgIFwi0JfQuNC80LjQvVwiLFxuICAgIFwi0J/QsNGF0L7QvNC+0LJcIixcbiAgICBcItCo0YPQsdC40L1cIixcbiAgICBcItCY0LPQvdCw0YLQvtCyXCIsXG4gICAgXCLQpNC40LvQsNGC0L7QslwiLFxuICAgIFwi0JrRgNGO0LrQvtCyXCIsXG4gICAgXCLQoNC+0LPQvtCyXCIsXG4gICAgXCLQmtGD0LvQsNC60L7QslwiLFxuICAgIFwi0KLQtdGA0LXQvdGC0YzQtdCyXCIsXG4gICAgXCLQnNC+0LvRh9Cw0L3QvtCyXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QslwiLFxuICAgIFwi0JDRgNGC0LXQvNGM0LXQslwiLFxuICAgIFwi0JPRg9GA0YzQtdCyXCIsXG4gICAgXCLQl9C40L3QvtCy0YzQtdCyXCIsXG4gICAgXCLQk9GA0LjRiNC40L1cIixcbiAgICBcItCa0L7QvdC+0L3QvtCyXCIsXG4gICAgXCLQlNC10LzQtdC90YLRjNC10LJcIixcbiAgICBcItCh0LjRgtC90LjQutC+0LJcIixcbiAgICBcItCh0LjQvNC+0L3QvtCyXCIsXG4gICAgXCLQnNC40YjQuNC9XCIsXG4gICAgXCLQpNCw0LTQtdC10LJcIixcbiAgICBcItCa0L7QvNC40YHRgdCw0YDQvtCyXCIsXG4gICAgXCLQnNCw0LzQvtC90YLQvtCyXCIsXG4gICAgXCLQndC+0YHQvtCyXCIsXG4gICAgXCLQk9GD0LvRj9C10LJcIixcbiAgICBcItCo0LDRgNC+0LJcIixcbiAgICBcItCj0YHRgtC40L3QvtCyXCIsXG4gICAgXCLQktC40YjQvdGP0LrQvtCyXCIsXG4gICAgXCLQldCy0YHQtdC10LJcIixcbiAgICBcItCb0LDQstGA0LXQvdGC0YzQtdCyXCIsXG4gICAgXCLQkdGA0LDQs9C40L1cIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QslwiLFxuICAgIFwi0JrQvtGA0L3QuNC70L7QslwiLFxuICAgIFwi0JDQstC00LXQtdCyXCIsXG4gICAgXCLQl9GL0LrQvtCyXCIsXG4gICAgXCLQkdC40YDRjtC60L7QslwiLFxuICAgIFwi0KjQsNGA0LDQv9C+0LJcIixcbiAgICBcItCd0LjQutC+0L3QvtCyXCIsXG4gICAgXCLQqdGD0LrQuNC9XCIsXG4gICAgXCLQlNGM0Y/Rh9C60L7QslwiLFxuICAgIFwi0J7QtNC40L3RhtC+0LJcIixcbiAgICBcItCh0LDQt9C+0L3QvtCyXCIsXG4gICAgXCLQr9C60YPRiNC10LJcIixcbiAgICBcItCa0YDQsNGB0LjQu9GM0L3QuNC60L7QslwiLFxuICAgIFwi0JPQvtGA0LTQtdC10LJcIixcbiAgICBcItCh0LDQvNC+0LnQu9C+0LJcIixcbiAgICBcItCa0L3Rj9C30LXQslwiLFxuICAgIFwi0JHQtdGB0L/QsNC70L7QslwiLFxuICAgIFwi0KPQstCw0YDQvtCyXCIsXG4gICAgXCLQqNCw0YjQutC+0LJcIixcbiAgICBcItCR0L7QsdGL0LvQtdCyXCIsXG4gICAgXCLQlNC+0YDQvtC90LjQvVwiLFxuICAgIFwi0JHQtdC70L7Qt9C10YDQvtCyXCIsXG4gICAgXCLQoNC+0LbQutC+0LJcIixcbiAgICBcItCh0LDQvNGB0L7QvdC+0LJcIixcbiAgICBcItCc0Y/RgdC90LjQutC+0LJcIixcbiAgICBcItCb0LjRhdCw0YfQtdCyXCIsXG4gICAgXCLQkdGD0YDQvtCyXCIsXG4gICAgXCLQodGL0YHQvtC10LJcIixcbiAgICBcItCk0L7QvNC40YfQtdCyXCIsXG4gICAgXCLQoNGD0YHQsNC60L7QslwiLFxuICAgIFwi0KHRgtGA0LXQu9C60L7QslwiLFxuICAgIFwi0JPRg9GJ0LjQvVwiLFxuICAgIFwi0KLQtdGC0LXRgNC40L1cIixcbiAgICBcItCa0L7Qu9C+0LHQvtCyXCIsXG4gICAgXCLQodGD0LHQsdC+0YLQuNC9XCIsXG4gICAgXCLQpNC+0LrQuNC9XCIsXG4gICAgXCLQkdC70L7RhdC40L1cIixcbiAgICBcItCh0LXQu9C40LLQtdGA0YHRgtC+0LJcIixcbiAgICBcItCf0LXRgdGC0L7QslwiLFxuICAgIFwi0JrQvtC90LTRgNCw0YLRjNC10LJcIixcbiAgICBcItCh0LjQu9C40L1cIixcbiAgICBcItCc0LXRgNC60YPRiNC10LJcIixcbiAgICBcItCb0YvRgtC60LjQvVwiLFxuICAgIFwi0KLRg9GA0L7QslwiXG4gIF0sXG4gIFwiZmVtYWxlX2ZpcnN0X25hbWVcIjogW1xuICAgIFwi0JDQvdC90LBcIixcbiAgICBcItCQ0LvRkdC90LBcIixcbiAgICBcItCQ0LvQtdCy0YLQuNC90LBcIixcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgNCwXCIsXG4gICAgXCLQkNC70LjQvdCwXCIsXG4gICAgXCLQkNC70LvQsFwiLFxuICAgIFwi0JDQvdCw0YHRgtCw0YHQuNGPXCIsXG4gICAgXCLQkNC90LPQtdC70LjQvdCwXCIsXG4gICAgXCLQkNC90LbQtdC70LBcIixcbiAgICBcItCQ0L3QttC10LvQuNC60LBcIixcbiAgICBcItCQ0L3RgtC+0L3QuNC00LBcIixcbiAgICBcItCQ0L3RgtC+0L3QuNC90LBcIixcbiAgICBcItCQ0L3RhNC40YHQsFwiLFxuICAgIFwi0JDRgNC40L3QsFwiLFxuICAgIFwi0JLQsNC70LXQvdGC0LjQvdCwXCIsXG4gICAgXCLQktCw0LvQtdGA0LjRj1wiLFxuICAgIFwi0JLQsNGA0LLQsNGA0LBcIixcbiAgICBcItCS0LDRgdC40LvQuNGB0LBcIixcbiAgICBcItCS0LXRgNCwXCIsXG4gICAgXCLQktC10YDQvtC90LjQutCwXCIsXG4gICAgXCLQktC40LrRgtC+0YDQuNGPXCIsXG4gICAgXCLQk9Cw0LvQuNC90LBcIixcbiAgICBcItCU0LDRgNGM0Y9cIixcbiAgICBcItCV0LLQs9C10L3QuNGPXCIsXG4gICAgXCLQldC60LDRgtC10YDQuNC90LBcIixcbiAgICBcItCV0LvQtdC90LBcIixcbiAgICBcItCV0LvQuNC30LDQstC10YLQsFwiLFxuICAgIFwi0JbQsNC90L3QsFwiLFxuICAgIFwi0JfQuNC90LDQuNC00LBcIixcbiAgICBcItCX0L7Rj1wiLFxuICAgIFwi0JjRgNC40L3QsFwiLFxuICAgIFwi0JrQuNGA0LBcIixcbiAgICBcItCa0LvQsNCy0LTQuNGPXCIsXG4gICAgXCLQmtGB0LXQvdC40Y9cIixcbiAgICBcItCb0LDRgNC40YHQsFwiLFxuICAgIFwi0JvQuNC00LjRj1wiLFxuICAgIFwi0JvRjtCx0L7QstGMXCIsXG4gICAgXCLQm9GO0LTQvNC40LvQsFwiLFxuICAgIFwi0JzQsNGA0LPQsNGA0LjRgtCwXCIsXG4gICAgXCLQnNCw0YDQuNC90LBcIixcbiAgICBcItCc0LDRgNC40Y9cIixcbiAgICBcItCd0LDQtNC10LbQtNCwXCIsXG4gICAgXCLQndCw0YLQsNC70YzRj1wiLFxuICAgIFwi0J3QuNC90LBcIixcbiAgICBcItCe0LrRgdCw0L3QsFwiLFxuICAgIFwi0J7Qu9GM0LPQsFwiLFxuICAgIFwi0KDQsNC40YHQsFwiLFxuICAgIFwi0KDQtdCz0LjQvdCwXCIsXG4gICAgXCLQoNC40LzQvNCwXCIsXG4gICAgXCLQodCy0LXRgtC70LDQvdCwXCIsXG4gICAgXCLQodC+0YTQuNGPXCIsXG4gICAgXCLQotCw0LjRgdC40Y9cIixcbiAgICBcItCi0LDQvNCw0YDQsFwiLFxuICAgIFwi0KLQsNGC0YzRj9C90LBcIixcbiAgICBcItCj0LvRjNGP0L3QsFwiLFxuICAgIFwi0K7Qu9C40Y9cIlxuICBdLFxuICBcImZlbWFsZV9taWRkbGVfbmFtZVwiOiBbXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsFwiLFxuICAgIFwi0JDQu9C10LrRgdC10LXQstC90LBcIixcbiAgICBcItCQ0LvRjNCx0LXRgNGC0L7QstC90LBcIixcbiAgICBcItCQ0L3QsNGC0L7Qu9GM0LXQstC90LBcIixcbiAgICBcItCQ0L3QtNGA0LXQtdCy0L3QsFwiLFxuICAgIFwi0JDQvdGC0L7QvdC+0LLQvdCwXCIsXG4gICAgXCLQkNGA0LrQsNC00YzQtdCy0L3QsFwiLFxuICAgIFwi0JDRgNGB0LXQvdGM0LXQstC90LBcIixcbiAgICBcItCQ0YDRgtGR0LzQvtCy0L3QsFwiLFxuICAgIFwi0JHQvtGA0LjRgdC+0LLQvdCwXCIsXG4gICAgXCLQktCw0LTQuNC80L7QstC90LBcIixcbiAgICBcItCS0LDQu9C10L3RgtC40L3QvtCy0L3QsFwiLFxuICAgIFwi0JLQsNC70LXRgNGM0LXQstC90LBcIixcbiAgICBcItCS0LDRgdC40LvRjNC10LLQvdCwXCIsXG4gICAgXCLQktC40LrRgtC+0YDQvtCy0L3QsFwiLFxuICAgIFwi0JLQuNGC0LDQu9GM0LXQstC90LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YDQvtCy0L3QsFwiLFxuICAgIFwi0JLQu9Cw0LTQuNGB0LvQsNCy0L7QstC90LBcIixcbiAgICBcItCS0Y/Rh9C10YHQu9Cw0LLQvtCy0L3QsFwiLFxuICAgIFwi0JPQtdC90L3QsNC00YzQtdCy0L3QsFwiLFxuICAgIFwi0JPQtdC+0YDQs9C40LXQstC90LBcIixcbiAgICBcItCT0LXRgNC80LDQvdC+0LLQvdCwXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LLQvdCwXCIsXG4gICAgXCLQlNCw0L3QuNC40LvQvtCy0L3QsFwiLFxuICAgIFwi0JTQtdC90LjRgdC+0LLQvdCwXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCy0L3QsFwiLFxuICAgIFwi0JXQstCz0LXQvdGM0LXQstC90LBcIixcbiAgICBcItCV0LPQvtGA0L7QstC90LBcIixcbiAgICBcItCY0LLQsNC90L7QstC90LBcIixcbiAgICBcItCY0LPQvdCw0YLRjNC10LLQvdCwXCIsXG4gICAgXCLQmNCz0L7RgNC10LLQvdCwXCIsXG4gICAgXCLQmNC70YzQuNC90LjRh9C90LBcIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC90LBcIixcbiAgICBcItCb0LDQstGA0LXQvdGC0YzQtdCy0L3QsFwiLFxuICAgIFwi0JvQtdC+0L3QuNC00L7QstC90LBcIixcbiAgICBcItCc0LDQutCw0YDQvtCy0L3QsFwiLFxuICAgIFwi0JzQsNC60YHQuNC80L7QstC90LBcIixcbiAgICBcItCc0LDRgtCy0LXQtdCy0L3QsFwiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QstC90LBcIixcbiAgICBcItCd0LjQutC40YLQuNGH0L3QsFwiLFxuICAgIFwi0J3QuNC60L7Qu9Cw0LXQstC90LBcIixcbiAgICBcItCe0LvQtdCz0L7QstC90LBcIixcbiAgICBcItCg0L7QvNCw0L3QvtCy0L3QsFwiLFxuICAgIFwi0KHQtdC80ZHQvdC+0LLQvdCwXCIsXG4gICAgXCLQodC10YDQs9C10LXQstC90LBcIixcbiAgICBcItCh0YLQsNC90LjRgdC70LDQstC+0LLQvdCwXCIsXG4gICAgXCLQodGC0LXQv9Cw0L3QvtCy0L3QsFwiLFxuICAgIFwi0KTRkdC00L7RgNC+0LLQvdCwXCIsXG4gICAgXCLQrdC00YPQsNGA0LTQvtCy0L3QsFwiLFxuICAgIFwi0K7RgNGM0LXQstC90LBcIixcbiAgICBcItCv0YDQvtGB0LvQsNCy0L7QstC90LBcIlxuICBdLFxuICBcImZlbWFsZV9sYXN0X25hbWVcIjogW1xuICAgIFwi0KHQvNC40YDQvdC+0LLQsFwiLFxuICAgIFwi0JjQstCw0L3QvtCy0LBcIixcbiAgICBcItCa0YPQt9C90LXRhtC+0LLQsFwiLFxuICAgIFwi0J/QvtC/0L7QstCwXCIsXG4gICAgXCLQodC+0LrQvtC70L7QstCwXCIsXG4gICAgXCLQm9C10LHQtdC00LXQstCwXCIsXG4gICAgXCLQmtC+0LfQu9C+0LLQsFwiLFxuICAgIFwi0J3QvtCy0LjQutC+0LLQsFwiLFxuICAgIFwi0JzQvtGA0L7Qt9C+0LLQsFwiLFxuICAgIFwi0J/QtdGC0YDQvtCy0LBcIixcbiAgICBcItCS0L7Qu9C60L7QstCwXCIsXG4gICAgXCLQodC+0LvQvtCy0YzQtdCy0LBcIixcbiAgICBcItCS0LDRgdC40LvRjNC10LLQsFwiLFxuICAgIFwi0JfQsNC50YbQtdCy0LBcIixcbiAgICBcItCf0LDQstC70L7QstCwXCIsXG4gICAgXCLQodC10LzQtdC90L7QstCwXCIsXG4gICAgXCLQk9C+0LvRg9Cx0LXQstCwXCIsXG4gICAgXCLQktC40L3QvtCz0YDQsNC00L7QstCwXCIsXG4gICAgXCLQkdC+0LPQtNCw0L3QvtCy0LBcIixcbiAgICBcItCS0L7RgNC+0LHRjNC10LLQsFwiLFxuICAgIFwi0KTQtdC00L7RgNC+0LLQsFwiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QstCwXCIsXG4gICAgXCLQkdC10LvRj9C10LLQsFwiLFxuICAgIFwi0KLQsNGA0LDRgdC+0LLQsFwiLFxuICAgIFwi0JHQtdC70L7QstCwXCIsXG4gICAgXCLQmtC+0LzQsNGA0L7QstCwXCIsXG4gICAgXCLQntGA0LvQvtCy0LBcIixcbiAgICBcItCa0LjRgdC10LvQtdCy0LBcIixcbiAgICBcItCc0LDQutCw0YDQvtCy0LBcIixcbiAgICBcItCQ0L3QtNGA0LXQtdCy0LBcIixcbiAgICBcItCa0L7QstCw0LvQtdCy0LBcIixcbiAgICBcItCY0LvRjNC40L3QsFwiLFxuICAgIFwi0JPRg9GB0LXQstCwXCIsXG4gICAgXCLQotC40YLQvtCy0LBcIixcbiAgICBcItCa0YPQt9GM0LzQuNC90LBcIixcbiAgICBcItCa0YPQtNGA0Y/QstGG0LXQstCwXCIsXG4gICAgXCLQkdCw0YDQsNC90L7QstCwXCIsXG4gICAgXCLQmtGD0LvQuNC60L7QstCwXCIsXG4gICAgXCLQkNC70LXQutGB0LXQtdCy0LBcIixcbiAgICBcItCh0YLQtdC/0LDQvdC+0LLQsFwiLFxuICAgIFwi0K/QutC+0LLQu9C10LLQsFwiLFxuICAgIFwi0KHQvtGA0L7QutC40L3QsFwiLFxuICAgIFwi0KHQtdGA0LPQtdC10LLQsFwiLFxuICAgIFwi0KDQvtC80LDQvdC+0LLQsFwiLFxuICAgIFwi0JfQsNGF0LDRgNC+0LLQsFwiLFxuICAgIFwi0JHQvtGA0LjRgdC+0LLQsFwiLFxuICAgIFwi0JrQvtGA0L7Qu9C10LLQsFwiLFxuICAgIFwi0JPQtdGA0LDRgdC40LzQvtCy0LBcIixcbiAgICBcItCf0L7QvdC+0LzQsNGA0LXQstCwXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LLQsFwiLFxuICAgIFwi0JvQsNC30LDRgNC10LLQsFwiLFxuICAgIFwi0JzQtdC00LLQtdC00LXQstCwXCIsXG4gICAgXCLQldGA0YjQvtCy0LBcIixcbiAgICBcItCd0LjQutC40YLQuNC90LBcIixcbiAgICBcItCh0L7QsdC+0LvQtdCy0LBcIixcbiAgICBcItCg0Y/QsdC+0LLQsFwiLFxuICAgIFwi0J/QvtC70Y/QutC+0LLQsFwiLFxuICAgIFwi0KbQstC10YLQutC+0LLQsFwiLFxuICAgIFwi0JTQsNC90LjQu9C+0LLQsFwiLFxuICAgIFwi0JbRg9C60L7QstCwXCIsXG4gICAgXCLQpNGA0L7Qu9C+0LLQsFwiLFxuICAgIFwi0JbRg9GA0LDQstC70LXQstCwXCIsXG4gICAgXCLQndC40LrQvtC70LDQtdCy0LBcIixcbiAgICBcItCa0YDRi9C70L7QstCwXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCy0LBcIixcbiAgICBcItCh0LjQtNC+0YDQvtCy0LBcIixcbiAgICBcItCe0YHQuNC/0L7QstCwXCIsXG4gICAgXCLQkdC10LvQvtGD0YHQvtCy0LBcIixcbiAgICBcItCk0LXQtNC+0YLQvtCy0LBcIixcbiAgICBcItCU0L7RgNC+0YTQtdC10LLQsFwiLFxuICAgIFwi0JXQs9C+0YDQvtCy0LBcIixcbiAgICBcItCc0LDRgtCy0LXQtdCy0LBcIixcbiAgICBcItCR0L7QsdGA0L7QstCwXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCy0LBcIixcbiAgICBcItCa0LDQu9C40L3QuNC90LBcIixcbiAgICBcItCQ0L3QuNGB0LjQvNC+0LLQsFwiLFxuICAgIFwi0J/QtdGC0YPRhdC+0LLQsFwiLFxuICAgIFwi0JDQvdGC0L7QvdC+0LLQsFwiLFxuICAgIFwi0KLQuNC80L7RhNC10LXQstCwXCIsXG4gICAgXCLQndC40LrQuNGE0L7RgNC+0LLQsFwiLFxuICAgIFwi0JLQtdGB0LXQu9C+0LLQsFwiLFxuICAgIFwi0KTQuNC70LjQv9C/0L7QstCwXCIsXG4gICAgXCLQnNCw0YDQutC+0LLQsFwiLFxuICAgIFwi0JHQvtC70YzRiNCw0LrQvtCy0LBcIixcbiAgICBcItCh0YPRhdCw0L3QvtCy0LBcIixcbiAgICBcItCc0LjRgNC+0L3QvtCy0LBcIixcbiAgICBcItCo0LjRgNGP0LXQstCwXCIsXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQvtCy0LBcIixcbiAgICBcItCa0L7QvdC+0LLQsNC70L7QstCwXCIsXG4gICAgXCLQqNC10YHRgtCw0LrQvtCy0LBcIixcbiAgICBcItCa0LDQt9Cw0LrQvtCy0LBcIixcbiAgICBcItCV0YTQuNC80L7QstCwXCIsXG4gICAgXCLQlNC10L3QuNGB0L7QstCwXCIsXG4gICAgXCLQk9GA0L7QvNC+0LLQsFwiLFxuICAgIFwi0KTQvtC80LjQvdCwXCIsXG4gICAgXCLQlNCw0LLRi9C00L7QstCwXCIsXG4gICAgXCLQnNC10LvRjNC90LjQutC+0LLQsFwiLFxuICAgIFwi0KnQtdGA0LHQsNC60L7QstCwXCIsXG4gICAgXCLQkdC70LjQvdC+0LLQsFwiLFxuICAgIFwi0JrQvtC70LXRgdC90LjQutC+0LLQsFwiLFxuICAgIFwi0JrQsNGA0L/QvtCy0LBcIixcbiAgICBcItCQ0YTQsNC90LDRgdGM0LXQstCwXCIsXG4gICAgXCLQktC70LDRgdC+0LLQsFwiLFxuICAgIFwi0JzQsNGB0LvQvtCy0LBcIixcbiAgICBcItCY0YHQsNC60L7QstCwXCIsXG4gICAgXCLQotC40YXQvtC90L7QstCwXCIsXG4gICAgXCLQkNC60YHQtdC90L7QstCwXCIsXG4gICAgXCLQk9Cw0LLRgNC40LvQvtCy0LBcIixcbiAgICBcItCg0L7QtNC40L7QvdC+0LLQsFwiLFxuICAgIFwi0JrQvtGC0L7QstCwXCIsXG4gICAgXCLQk9C+0YDQsdGD0L3QvtCy0LBcIixcbiAgICBcItCa0YPQtNGA0Y/RiNC+0LLQsFwiLFxuICAgIFwi0JHRi9C60L7QstCwXCIsXG4gICAgXCLQl9GD0LXQstCwXCIsXG4gICAgXCLQotGA0LXRgtGM0Y/QutC+0LLQsFwiLFxuICAgIFwi0KHQsNCy0LXQu9GM0LXQstCwXCIsXG4gICAgXCLQn9Cw0L3QvtCy0LBcIixcbiAgICBcItCg0YvQsdCw0LrQvtCy0LBcIixcbiAgICBcItCh0YPQstC+0YDQvtCy0LBcIixcbiAgICBcItCQ0LHRgNCw0LzQvtCy0LBcIixcbiAgICBcItCS0L7RgNC+0L3QvtCy0LBcIixcbiAgICBcItCc0YPRhdC40L3QsFwiLFxuICAgIFwi0JDRgNGF0LjQv9C+0LLQsFwiLFxuICAgIFwi0KLRgNC+0YTQuNC80L7QstCwXCIsXG4gICAgXCLQnNCw0YDRgtGL0L3QvtCy0LBcIixcbiAgICBcItCV0LzQtdC70YzRj9C90L7QstCwXCIsXG4gICAgXCLQk9C+0YDRiNC60L7QstCwXCIsXG4gICAgXCLQp9C10YDQvdC+0LLQsFwiLFxuICAgIFwi0J7QstGH0LjQvdC90LjQutC+0LLQsFwiLFxuICAgIFwi0KHQtdC70LXQt9C90LXQstCwXCIsXG4gICAgXCLQn9Cw0L3RhNC40LvQvtCy0LBcIixcbiAgICBcItCa0L7Qv9GL0LvQvtCy0LBcIixcbiAgICBcItCc0LjRhdC10LXQstCwXCIsXG4gICAgXCLQk9Cw0LvQutC40L3QsFwiLFxuICAgIFwi0J3QsNC30LDRgNC+0LLQsFwiLFxuICAgIFwi0JvQvtCx0LDQvdC+0LLQsFwiLFxuICAgIFwi0JvRg9C60LjQvdCwXCIsXG4gICAgXCLQkdC10LvRj9C60L7QstCwXCIsXG4gICAgXCLQn9C+0YLQsNC/0L7QstCwXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCy0LBcIixcbiAgICBcItCl0L7RhdC70L7QstCwXCIsXG4gICAgXCLQltC00LDQvdC+0LLQsFwiLFxuICAgIFwi0J3QsNGD0LzQvtCy0LBcIixcbiAgICBcItCo0LjQu9C+0LLQsFwiLFxuICAgIFwi0JLQvtGA0L7QvdGG0L7QstCwXCIsXG4gICAgXCLQldGA0LzQsNC60L7QstCwXCIsXG4gICAgXCLQlNGA0L7Qt9C00L7QstCwXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCy0LBcIixcbiAgICBcItCh0LDQstC40L3QsFwiLFxuICAgIFwi0JvQvtCz0LjQvdC+0LLQsFwiLFxuICAgIFwi0KHQsNGE0L7QvdC+0LLQsFwiLFxuICAgIFwi0JrQsNC/0YPRgdGC0LjQvdCwXCIsXG4gICAgXCLQmtC40YDQuNC70LvQvtCy0LBcIixcbiAgICBcItCc0L7QuNGB0LXQtdCy0LBcIixcbiAgICBcItCV0LvQuNGB0LXQtdCy0LBcIixcbiAgICBcItCa0L7RiNC10LvQtdCy0LBcIixcbiAgICBcItCa0L7RgdGC0LjQvdCwXCIsXG4gICAgXCLQk9C+0YDQsdCw0YfQtdCy0LBcIixcbiAgICBcItCe0YDQtdGF0L7QstCwXCIsXG4gICAgXCLQldGE0YDQtdC80L7QstCwXCIsXG4gICAgXCLQmNGB0LDQtdCy0LBcIixcbiAgICBcItCV0LLQtNC+0LrQuNC80L7QstCwXCIsXG4gICAgXCLQmtCw0LvQsNGI0L3QuNC60L7QstCwXCIsXG4gICAgXCLQmtCw0LHQsNC90L7QstCwXCIsXG4gICAgXCLQndC+0YHQutC+0LLQsFwiLFxuICAgIFwi0K7QtNC40L3QsFwiLFxuICAgIFwi0JrRg9C70LDQs9C40L3QsFwiLFxuICAgIFwi0JvQsNC/0LjQvdCwXCIsXG4gICAgXCLQn9GA0L7RhdC+0YDQvtCy0LBcIixcbiAgICBcItCd0LXRgdGC0LXRgNC+0LLQsFwiLFxuICAgIFwi0KXQsNGA0LjRgtC+0L3QvtCy0LBcIixcbiAgICBcItCQ0LPQsNGE0L7QvdC+0LLQsFwiLFxuICAgIFwi0JzRg9GA0LDQstGM0LXQstCwXCIsXG4gICAgXCLQm9Cw0YDQuNC+0L3QvtCy0LBcIixcbiAgICBcItCk0LXQtNC+0YHQtdC10LLQsFwiLFxuICAgIFwi0JfQuNC80LjQvdCwXCIsXG4gICAgXCLQn9Cw0YXQvtC80L7QstCwXCIsXG4gICAgXCLQqNGD0LHQuNC90LBcIixcbiAgICBcItCY0LPQvdCw0YLQvtCy0LBcIixcbiAgICBcItCk0LjQu9Cw0YLQvtCy0LBcIixcbiAgICBcItCa0YDRjtC60L7QstCwXCIsXG4gICAgXCLQoNC+0LPQvtCy0LBcIixcbiAgICBcItCa0YPQu9Cw0LrQvtCy0LBcIixcbiAgICBcItCi0LXRgNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQnNC+0LvRh9Cw0L3QvtCy0LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YDQvtCy0LBcIixcbiAgICBcItCQ0YDRgtC10LzRjNC10LLQsFwiLFxuICAgIFwi0JPRg9GA0YzQtdCy0LBcIixcbiAgICBcItCX0LjQvdC+0LLRjNC10LLQsFwiLFxuICAgIFwi0JPRgNC40YjQuNC90LBcIixcbiAgICBcItCa0L7QvdC+0L3QvtCy0LBcIixcbiAgICBcItCU0LXQvNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQodC40YLQvdC40LrQvtCy0LBcIixcbiAgICBcItCh0LjQvNC+0L3QvtCy0LBcIixcbiAgICBcItCc0LjRiNC40L3QsFwiLFxuICAgIFwi0KTQsNC00LXQtdCy0LBcIixcbiAgICBcItCa0L7QvNC40YHRgdCw0YDQvtCy0LBcIixcbiAgICBcItCc0LDQvNC+0L3RgtC+0LLQsFwiLFxuICAgIFwi0J3QvtGB0L7QstCwXCIsXG4gICAgXCLQk9GD0LvRj9C10LLQsFwiLFxuICAgIFwi0KjQsNGA0L7QstCwXCIsXG4gICAgXCLQo9GB0YLQuNC90L7QstCwXCIsXG4gICAgXCLQktC40YjQvdGP0LrQvtCy0LBcIixcbiAgICBcItCV0LLRgdC10LXQstCwXCIsXG4gICAgXCLQm9Cw0LLRgNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQkdGA0LDQs9C40L3QsFwiLFxuICAgIFwi0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LBcIixcbiAgICBcItCa0L7RgNC90LjQu9C+0LLQsFwiLFxuICAgIFwi0JDQstC00LXQtdCy0LBcIixcbiAgICBcItCX0YvQutC+0LLQsFwiLFxuICAgIFwi0JHQuNGA0Y7QutC+0LLQsFwiLFxuICAgIFwi0KjQsNGA0LDQv9C+0LLQsFwiLFxuICAgIFwi0J3QuNC60L7QvdC+0LLQsFwiLFxuICAgIFwi0KnRg9C60LjQvdCwXCIsXG4gICAgXCLQlNGM0Y/Rh9C60L7QstCwXCIsXG4gICAgXCLQntC00LjQvdGG0L7QstCwXCIsXG4gICAgXCLQodCw0LfQvtC90L7QstCwXCIsXG4gICAgXCLQr9C60YPRiNC10LLQsFwiLFxuICAgIFwi0JrRgNCw0YHQuNC70YzQvdC40LrQvtCy0LBcIixcbiAgICBcItCT0L7RgNC00LXQtdCy0LBcIixcbiAgICBcItCh0LDQvNC+0LnQu9C+0LLQsFwiLFxuICAgIFwi0JrQvdGP0LfQtdCy0LBcIixcbiAgICBcItCR0LXRgdC/0LDQu9C+0LLQsFwiLFxuICAgIFwi0KPQstCw0YDQvtCy0LBcIixcbiAgICBcItCo0LDRiNC60L7QstCwXCIsXG4gICAgXCLQkdC+0LHRi9C70LXQstCwXCIsXG4gICAgXCLQlNC+0YDQvtC90LjQvdCwXCIsXG4gICAgXCLQkdC10LvQvtC30LXRgNC+0LLQsFwiLFxuICAgIFwi0KDQvtC20LrQvtCy0LBcIixcbiAgICBcItCh0LDQvNGB0L7QvdC+0LLQsFwiLFxuICAgIFwi0JzRj9GB0L3QuNC60L7QstCwXCIsXG4gICAgXCLQm9C40YXQsNGH0LXQstCwXCIsXG4gICAgXCLQkdGD0YDQvtCy0LBcIixcbiAgICBcItCh0YvRgdC+0LXQstCwXCIsXG4gICAgXCLQpNC+0LzQuNGH0LXQstCwXCIsXG4gICAgXCLQoNGD0YHQsNC60L7QstCwXCIsXG4gICAgXCLQodGC0YDQtdC70LrQvtCy0LBcIixcbiAgICBcItCT0YPRidC40L3QsFwiLFxuICAgIFwi0KLQtdGC0LXRgNC40L3QsFwiLFxuICAgIFwi0JrQvtC70L7QsdC+0LLQsFwiLFxuICAgIFwi0KHRg9Cx0LHQvtGC0LjQvdCwXCIsXG4gICAgXCLQpNC+0LrQuNC90LBcIixcbiAgICBcItCR0LvQvtGF0LjQvdCwXCIsXG4gICAgXCLQodC10LvQuNCy0LXRgNGB0YLQvtCy0LBcIixcbiAgICBcItCf0LXRgdGC0L7QstCwXCIsXG4gICAgXCLQmtC+0L3QtNGA0LDRgtGM0LXQstCwXCIsXG4gICAgXCLQodC40LvQuNC90LBcIixcbiAgICBcItCc0LXRgNC60YPRiNC10LLQsFwiLFxuICAgIFwi0JvRi9GC0LrQuNC90LBcIixcbiAgICBcItCi0YPRgNC+0LLQsFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje21hbGVfZmlyc3RfbmFtZX0gI3ttYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFsZV9sYXN0X25hbWV9ICN7bWFsZV9maXJzdF9uYW1lfVwiLFxuICAgIFwiI3ttYWxlX2ZpcnN0X25hbWV9ICN7bWFsZV9taWRkbGVfbmFtZX0gI3ttYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFsZV9sYXN0X25hbWV9ICN7bWFsZV9maXJzdF9uYW1lfSAje21hbGVfbWlkZGxlX25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9sYXN0X25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9sYXN0X25hbWV9ICN7ZmVtYWxlX2ZpcnN0X25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9taWRkbGVfbmFtZX0gI3tmZW1hbGVfbGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmZW1hbGVfbGFzdF9uYW1lfSAje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9taWRkbGVfbmFtZX1cIlxuICBdXG59O1xucnUucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKDkjIykjIyMtIyMtIyNcIlxuICBdXG59O1xucnUuY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwi0LrRgNCw0YHQvdGL0LlcIixcbiAgICBcItC30LXQu9C10L3Ri9C5XCIsXG4gICAgXCLRgdC40L3QuNC5XCIsXG4gICAgXCLQttC10LvRgtGL0LlcIixcbiAgICBcItCx0LDQs9GA0L7QstGL0LlcIixcbiAgICBcItC80Y/RgtC90YvQuVwiLFxuICAgIFwi0LfQtdC70LXQvdC+0LLQsNGC0L4t0LPQvtC70YPQsdC+0LlcIixcbiAgICBcItCx0LXQu9GL0LlcIixcbiAgICBcItGH0LXRgNC90YvQuVwiLFxuICAgIFwi0L7RgNCw0L3QttC10LLRi9C5XCIsXG4gICAgXCLRgNC+0LfQvtCy0YvQuVwiLFxuICAgIFwi0YHQtdGA0YvQuVwiLFxuICAgIFwi0LrRgNCw0YHQvdC+LdC60L7RgNC40YfQvdC10LLRi9C5XCIsXG4gICAgXCLRhNC40L7Qu9C10YLQvtCy0YvQuVwiLFxuICAgIFwi0LHQuNGA0Y7Qt9C+0LLRi9C5XCIsXG4gICAgXCLQttC10LvRgtC+LdC60L7RgNC40YfQvdC10LLRi9C5XCIsXG4gICAgXCLQvdC10LHQtdGB0L3QviDQs9C+0LvRg9Cx0L7QuVwiLFxuICAgIFwi0L7RgNCw0L3QttC10LLQvi3RgNC+0LfQvtCy0YvQuVwiLFxuICAgIFwi0YLQtdC80L3Qvi3RhNC40L7Qu9C10YLQvtCy0YvQuVwiLFxuICAgIFwi0L7RgNGF0LjQtNC90YvQuVwiLFxuICAgIFwi0L7Qu9C40LLQutC+0LLRi9C5XCIsXG4gICAgXCLQv9GD0YDQv9GD0YDQvdGL0LlcIixcbiAgICBcItC70LjQvNC+0L3QvdGL0LlcIixcbiAgICBcItC60YDQtdC80L7QstGL0LlcIixcbiAgICBcItGB0LjQvdC1LdGE0LjQvtC70LXRgtC+0LLRi9C5XCIsXG4gICAgXCLQt9C+0LvQvtGC0L7QuVwiLFxuICAgIFwi0LrRgNCw0YHQvdC+LdC/0YPRgNC/0YPRgNC90YvQuVwiLFxuICAgIFwi0LPQvtC70YPQsdC+0LlcIixcbiAgICBcItC70LDQt9GD0YDQvdGL0LlcIixcbiAgICBcItC70LjQu9C+0LLRi9C5XCIsXG4gICAgXCLRgdC10YDQtdCx0YDRj9C90YvQuVwiXG4gIF0sXG4gIFwiZGVwYXJ0bWVudFwiOiBbXG4gICAgXCLQmtC90LjQs9C4XCIsXG4gICAgXCLQpNC40LvRjNC80YtcIixcbiAgICBcItC80YPQt9GL0LrQsFwiLFxuICAgIFwi0LjQs9GA0YtcIixcbiAgICBcItCt0LvQtdC60YLRgNC+0L3QuNC60LBcIixcbiAgICBcItC60L7QvNC/0YzRjtGC0LXRgNGLXCIsXG4gICAgXCLQlNC+0LxcIixcbiAgICBcItGB0LDQtNC40L3RgdGC0YDRg9C80LXQvdGCXCIsXG4gICAgXCLQkdCw0LrQsNC70LXRj1wiLFxuICAgIFwi0LfQtNC+0YDQvtCy0YzQtVwiLFxuICAgIFwi0LrRgNCw0YHQvtGC0LBcIixcbiAgICBcItCY0LPRgNGD0YjQutC4XCIsXG4gICAgXCLQtNC10YLRgdC60L7QtVwiLFxuICAgIFwi0LTQu9GPINC80LDQu9GL0YjQtdC5XCIsXG4gICAgXCLQntC00LXQttC00LBcIixcbiAgICBcItC+0LHRg9Cy0YxcIixcbiAgICBcItGD0LrRgNCw0YjQtdC90LjRj1wiLFxuICAgIFwi0KHQv9C+0YDRglwiLFxuICAgIFwi0YLRg9GA0LjQt9C8XCIsXG4gICAgXCLQkNCy0YLQvtC80L7QsdC40LvRjNC90L7QtVwiLFxuICAgIFwi0L/RgNC+0LzRi9GI0LvQtdC90L3QvtC1XCJcbiAgXSxcbiAgXCJwcm9kdWN0X25hbWVcIjoge1xuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwi0JzQsNC70LXQvdGM0LrQuNC5XCIsXG4gICAgICBcItCt0YDQs9C+0L3QvtC80LjRh9C90YvQuVwiLFxuICAgICAgXCLQk9GA0YPQsdGL0LlcIixcbiAgICAgIFwi0JjQvdGC0LXQu9C70LXQutGC0YPQsNC70YzQvdGL0LlcIixcbiAgICAgIFwi0JLQtdC70LjQutC+0LvQtdC/0L3Ri9C5XCIsXG4gICAgICBcItCd0LXQstC10YDQvtGP0YLQvdGL0LlcIixcbiAgICAgIFwi0KTQsNC90YLQsNGB0YLQuNGH0LXRgdC60LjQuVwiLFxuICAgICAgXCLQn9GA0LDQutGC0YfQuNC90YvQuVwiLFxuICAgICAgXCLQm9C+0YHQvdGP0YnQuNC50YHRj1wiLFxuICAgICAgXCLQn9C+0YLRgNGP0YHQsNGO0YnQuNC5XCJcbiAgICBdLFxuICAgIFwibWF0ZXJpYWxcIjogW1xuICAgICAgXCLQodGC0LDQu9GM0L3QvtC5XCIsXG4gICAgICBcItCU0LXRgNC10LLRj9C90L3Ri9C5XCIsXG4gICAgICBcItCR0LXRgtC+0L3QvdGL0LlcIixcbiAgICAgIFwi0J/Qu9Cw0YHRgtC40LrQvtCy0YvQuVwiLFxuICAgICAgXCLQpdC70L7Qv9C60L7QstGL0LlcIixcbiAgICAgIFwi0JPRgNCw0L3QuNGC0L3Ri9C5XCIsXG4gICAgICBcItCg0LXQt9C40L3QvtCy0YvQuVwiXG4gICAgXSxcbiAgICBcInByb2R1Y3RcIjogW1xuICAgICAgXCLQodGC0YPQu1wiLFxuICAgICAgXCLQkNCy0YLQvtC80L7QsdC40LvRjFwiLFxuICAgICAgXCLQmtC+0LzQv9GM0Y7RgtC10YBcIixcbiAgICAgIFwi0JHQtdGA0LXRglwiLFxuICAgICAgXCLQmtGD0LvQvtC9XCIsXG4gICAgICBcItCh0YLQvtC7XCIsXG4gICAgICBcItCh0LLQuNGC0LXRgFwiLFxuICAgICAgXCLQoNC10LzQtdC90YxcIixcbiAgICAgIFwi0JHQvtGC0LjQvdC+0LpcIlxuICAgIF1cbiAgfVxufTtcbnJ1LmNvbXBhbnkgPSB7XG4gIFwicHJlZml4XCI6IFtcbiAgICBcItCY0J9cIixcbiAgICBcItCe0J7QnlwiLFxuICAgIFwi0JfQkNCeXCIsXG4gICAgXCLQntCQ0J5cIixcbiAgICBcItCd0JrQnlwiLFxuICAgIFwi0KLQodCWXCIsXG4gICAgXCLQntCfXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwi0KHQvdCw0LFcIixcbiAgICBcItCi0L7RgNCzXCIsXG4gICAgXCLQn9GA0L7QvFwiLFxuICAgIFwi0KLRgNC10LnQtFwiLFxuICAgIFwi0KHQsdGL0YJcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5mZW1hbGVfZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje05hbWUubWFsZV9maXJzdF9uYW1lfVwiLFxuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5tYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje3N1ZmZpeH0je3N1ZmZpeH1cIixcbiAgICBcIiN7cHJlZml4fSAje3N1ZmZpeH0je3N1ZmZpeH0je3N1ZmZpeH1cIixcbiAgICBcIiN7cHJlZml4fSAje0FkZHJlc3MuY2l0eV9uYW1lfSN7c3VmZml4fVwiLFxuICAgIFwiI3twcmVmaXh9ICN7QWRkcmVzcy5jaXR5X25hbWV9I3tzdWZmaXh9I3tzdWZmaXh9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tBZGRyZXNzLmNpdHlfbmFtZX0je3N1ZmZpeH0je3N1ZmZpeH0je3N1ZmZpeH1cIlxuICBdXG59O1xuIiwidmFyIHNrID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gc2s7XG5zay50aXRsZSA9IFwiU2xvdmFraWFuXCI7XG5zay5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vcnRoXCIsXG4gICAgXCJFYXN0XCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJTb3V0aFwiLFxuICAgIFwiTmV3XCIsXG4gICAgXCJMYWtlXCIsXG4gICAgXCJQb3J0XCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCJ0b3duXCIsXG4gICAgXCJ0b25cIixcbiAgICBcImxhbmRcIixcbiAgICBcInZpbGxlXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCJidXJnaFwiLFxuICAgIFwiYm9yb3VnaFwiLFxuICAgIFwiYnVyeVwiLFxuICAgIFwidmlld1wiLFxuICAgIFwicG9ydFwiLFxuICAgIFwibW91dGhcIixcbiAgICBcInN0YWRcIixcbiAgICBcImZ1cnRcIixcbiAgICBcImNoZXN0ZXJcIixcbiAgICBcIm1vdXRoXCIsXG4gICAgXCJmb3J0XCIsXG4gICAgXCJoYXZlblwiLFxuICAgIFwic2lkZVwiLFxuICAgIFwic2hpcmVcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnYW5pc3RhblwiLFxuICAgIFwiQWZnw6Fuc2t5IGlzbGFtc2vDvSDFoXTDoXRcIixcbiAgICBcIkFsYsOhbnNrb1wiLFxuICAgIFwiQWxiw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiQWzFvsOtcnNrb1wiLFxuICAgIFwiQWzFvsOtcnNrYSBkZW1va3JhdGlja8OhIMS+dWRvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5kb3Jyc2vDqSBrbmllxb5hdHN2b1wiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmdvbHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJBbnRpZ3VhIGEgQmFyYnVkYVwiLFxuICAgIFwiQW50aWd1YSBhIEJhcmJ1ZGFcIixcbiAgICBcIkFyZ2VudMOtbmFcIixcbiAgICBcIkFyZ2VudMOtbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkFybcOpbnNrb1wiLFxuICAgIFwiQXJtw6luc2thIHJlcHVibGlrYVwiLFxuICAgIFwiQXVzdHLDoWxpYVwiLFxuICAgIFwiQXVzdHLDoWxza3kgenbDpHpcIixcbiAgICBcIkF6ZXJiYWpkxb5hblwiLFxuICAgIFwiQXplcmJhamTFvmFuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJhaGFteVwiLFxuICAgIFwiQmFoYW1za8OpIHNwb2xvxI1lbnN0dm9cIixcbiAgICBcIkJhaHJham5cIixcbiAgICBcIkJhaHJham5za8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmFuZ2xhZMOpxaFcIixcbiAgICBcIkJhbmdsYWTDqcWhc2thIMS+dWRvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxnaWNrb1wiLFxuICAgIFwiQmVsZ2lja8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZW5pbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCaHV0w6FuXCIsXG4gICAgXCJCaHV0w6Fuc2tlIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmllbG9ydXNrb1wiLFxuICAgIFwiQmllbG9ydXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCb2zDrXZpYVwiLFxuICAgIFwiQm9sw612aWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQm9zbmEgYSBIZXJjZWdvdmluYVwiLFxuICAgIFwiUmVwdWJsaWthIEJvc255IGEgSGVyY2Vnb3ZpbnlcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCb3Rzd2Fuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJyYXrDrWxpYVwiLFxuICAgIFwiQnJhesOtbHNrYSBmZWRlcmF0w612bmEgcmVwdWJsaWthXCIsXG4gICAgXCJCcnVuZWpcIixcbiAgICBcIkJydW5lanNrw70gc3VsdGFuw6F0XCIsXG4gICAgXCJCdWxoYXJza29cIixcbiAgICBcIkJ1bGhhcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQnVydW5kc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkN5cHJ1c1wiLFxuICAgIFwiQ3lwZXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwixIxhZFwiLFxuICAgIFwiUmVwdWJsaWthIMSMYWRcIixcbiAgICBcIsSMZXNrb1wiLFxuICAgIFwixIxlc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIsSMw61uYVwiLFxuICAgIFwixIzDrW5za2EgxL51ZG92w6EgcmVwdWJsaWthXCIsXG4gICAgXCJEw6Fuc2tvXCIsXG4gICAgXCJEw6Fuc2tvIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIlNwb2xvxI1lbnN0dm8gRG9taW5pa2FcIixcbiAgICBcIkRvbWluaWvDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJEb21pbmlrw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRMW+aWJ1dHNrb1wiLFxuICAgIFwiRMW+aWJ1dHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJFZ3lwdFwiLFxuICAgIFwiRWd5cHRza8OhIGFyYWJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiRWt2w6Fkb3JcIixcbiAgICBcIkVrdsOhZG9yc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVyaXRyZWpza8O9IMWhdMOhdFwiLFxuICAgIFwiRXN0w7Nuc2tvXCIsXG4gICAgXCJFc3TDs25za2EgcmVwdWJsaWthXCIsXG4gICAgXCJFdGnDs3BpYVwiLFxuICAgIFwiRXRpw7Nwc2thIGZlZGVyYXTDrXZuYSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiRmlkxb5pXCIsXG4gICAgXCJSZXB1Ymxpa2Egb3N0cm92eSBGaWTFvmlcIixcbiAgICBcIkZpbGlww61ueVwiLFxuICAgIFwiRmlsaXDDrW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJGw61uc2tvXCIsXG4gICAgXCJGw61uc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRnJhbmPDunpza29cIixcbiAgICBcIkZyYW5jw7p6c2thIHJlcHVibGlrYVwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkdhYm9uc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2FtYmlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaGFuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdyw6lja29cIixcbiAgICBcIkhlbMOpbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIkdydXrDrW5za29cIixcbiAgICBcIkdydXrDrW5za29cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3VhdGVtYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiUmVwdWJsaWthIEd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1YXlhbmFcIixcbiAgICBcIkd1YXlhbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiUmVwdWJsaWthIEhhaXRpXCIsXG4gICAgXCJIb2xhbmRza29cIixcbiAgICBcIkhvbGFuZHNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZHVyYXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwixIzDrWxza2EgcmVwdWJsaWthXCIsXG4gICAgXCJDaG9ydsOhdHNrb1wiLFxuICAgIFwiQ2hvcnbDoXRza2EgcmVwdWJsaWthXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJJbmRvbsOpemlhXCIsXG4gICAgXCJJbmRvbsOpenNrYSByZXB1Ymxpa2FcIixcbiAgICBcIklyYWtcIixcbiAgICBcIklyYWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJJcsOhblwiLFxuICAgIFwiSXLDoW5za2EgaXNsYW1za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJJc2xhbmRza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSXpyYWVsXCIsXG4gICAgXCLFoHTDoXQgSXpyYWVsXCIsXG4gICAgXCLDjXJza29cIixcbiAgICBcIsONcnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkphbWFqa2FcIixcbiAgICBcIkphbWFqa2FcIixcbiAgICBcIkphcG9uc2tvXCIsXG4gICAgXCJKYXBvbnNrb1wiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkplbWVuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkpvcmTDoW5za29cIixcbiAgICBcIkpvcmTDoW5za2UgaMOhxaFpbW92c2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkp1xb5uw6EgQWZyaWthXCIsXG4gICAgXCJKdWhvYWZyaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLYW1ib2TFvmFcIixcbiAgICBcIkthbWJvZMW+c2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbWVydW5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYW5hZGFcIixcbiAgICBcIkthcHZlcmR5XCIsXG4gICAgXCJLYXB2ZXJkc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkthdGFyXCIsXG4gICAgXCLFoHTDoXQgS2F0YXJcIixcbiAgICBcIkthemFjaHN0YW5cIixcbiAgICBcIkthemHFoXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLZcWIYVwiLFxuICAgIFwiS2Vuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktpcmdpenNrb1wiLFxuICAgIFwiS2lyZ2l6c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLaXJpYmF0c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktvbHVtYmlhXCIsXG4gICAgXCJLb2x1bWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLb21vcnlcIixcbiAgICBcIktvbW9yc2vDoSDDum5pYVwiLFxuICAgIFwiS29uZ29cIixcbiAgICBcIktvbsW+c2vDoSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS29uZ28gKFxcXCJCcmF6emF2aWxsZVxcXCIpXCIsXG4gICAgXCJLb27FvnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLw7NyZWEgKFxcXCJKdcW+bsOhXFxcIilcIixcbiAgICBcIkvDs3JlanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLw7NyZWEgKFxcXCJTZXZlcm7DoVxcXCIpXCIsXG4gICAgXCJLw7NyZWpza8OhIMS+dWRvdm9kZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS29zdGFyaWthXCIsXG4gICAgXCJLb3N0YXJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkt1YsOhbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkt1dmFqdFwiLFxuICAgIFwiS3V2YWp0c2vDvSDFoXTDoXRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxhb3Nrw6EgxL51ZG92b2RlbW9rcmF0aWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMZXNvdGhza8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiTGliYW5vblwiLFxuICAgIFwiTGliYW5vbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMaWLDqXJpYVwiLFxuICAgIFwiTGliw6lyaWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTMOtYnlhXCIsXG4gICAgXCJMw61ieWpza8OhIGFyYWJza8OhIMS+dWRvdsOhIHNvY2lhbGlzdGlja8OhIGTFvmFtw6Fow61yaWphXCIsXG4gICAgXCJMaWNodGVuxaF0YWpuc2tvXCIsXG4gICAgXCJMaWNodGVuxaF0YWpuc2vDqSBrbmllxb5hdHN0dm9cIixcbiAgICBcIkxpdHZhXCIsXG4gICAgXCJMaXRvdnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMb3R5xaFza29cIixcbiAgICBcIkxvdHnFoXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMdXhlbWJ1cnNrb1wiLFxuICAgIFwiTHV4ZW1idXJza8OpIHZlxL5rb3ZvanZvZHN0dm9cIixcbiAgICBcIk1hY2Vkw7Nuc2tvXCIsXG4gICAgXCJNYWNlZMOzbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hZGFnYXNrYXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWHEj2Fyc2tvXCIsXG4gICAgXCJNYcSPYXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWFsYWp6aWFcIixcbiAgICBcIk1hbGFqemlhXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGF3aWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWFsZGl2eVwiLFxuICAgIFwiTWFsZGl2c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbGlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2tvXCIsXG4gICAgXCJNYXJvY2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIk1hcnNoYWxsb3ZlIG9zdHJvdnlcIixcbiAgICBcIlJlcHVibGlrYSBNYXJzaGFsbG92w71jaCBvc3Ryb3Z5XCIsXG4gICAgXCJNYXVyaXTDoW5pYVwiLFxuICAgIFwiTWF1cml0w6Fuc2thIGlzbGFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hdXLDrWNpdXNcIixcbiAgICBcIk1hdXLDrWNpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIlNwb2plbsOpIMWhdMOhdHkgbWV4aWNrw6lcIixcbiAgICBcIk1pa3JvbsOpemlhXCIsXG4gICAgXCJNaWtyb27DqXpza2UgZmVkZXJhdMOtdm5lIMWhdMOhdHlcIixcbiAgICBcIk1qYW5tYXJza29cIixcbiAgICBcIk1qYW5tYXJza8O9IHp2w6R6XCIsXG4gICAgXCJNb2xkYXZza29cIixcbiAgICBcIk1vbGRhdnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNb25ha29cIixcbiAgICBcIk1vbmFja8OpIGtuaWXFvmF0c3R2b1wiLFxuICAgIFwiTW9uZ29sc2tvXCIsXG4gICAgXCJNb25nb2xza29cIixcbiAgICBcIk1vemFtYmlrXCIsXG4gICAgXCJNb3phbWJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk5hbcOtYmlhXCIsXG4gICAgXCJOYW3DrWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmF1cnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOZW1lY2tvXCIsXG4gICAgXCJOZW1lY2vDoSBzcG9sa292w6EgcmVwdWJsaWthXCIsXG4gICAgXCJOZXDDoWxcIixcbiAgICBcIk5lcMOhbHNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOaWfDqXJpYVwiLFxuICAgIFwiTmlnw6lyaWpza8OhIGZlZGVyYXTDrXZuYSByZXB1Ymxpa2FcIixcbiAgICBcIk5pa2FyYWd1YVwiLFxuICAgIFwiTmlrYXJhZ3Vqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk5vdsO9IFrDqWxhbmRcIixcbiAgICBcIk5vdsO9IFrDqWxhbmRcIixcbiAgICBcIk7Ds3Jza29cIixcbiAgICBcIk7Ds3Jza2Uga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJPbcOhblwiLFxuICAgIFwiT23DoW5za3kgc3VsdGFuw6F0XCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFraXN0YW5za8OhIGlzbGFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYWxhdXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlBhbmFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBhcHVhLU5vdsOhIEd1aW5lYVwiLFxuICAgIFwiTmV6w6F2aXNsw70gxaF0w6F0IFBhcHVhLU5vdsOhIEd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YWpcIixcbiAgICBcIlBhcmFndWFqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlBlcnXDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJQb2JyZcW+aWUgU2xvbm92aW55XCIsXG4gICAgXCJSZXB1Ymxpa2EgUG9icmXFvmllIFNsb25vdmlueVwiLFxuICAgIFwiUG/EvnNrb1wiLFxuICAgIFwiUG/EvnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQb3J0dWdhbHNrb1wiLFxuICAgIFwiUG9ydHVnYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiUmFrw7pza29cIixcbiAgICBcIlJha8O6c2thIHJlcHVibGlrYVwiLFxuICAgIFwiUm92bsOta292w6EgR3VpbmVhXCIsXG4gICAgXCJSZXB1Ymxpa2EgUm92bsOta292w6EgR3VpbmVhXCIsXG4gICAgXCJSdW11bnNrb1wiLFxuICAgIFwiUnVtdW5za29cIixcbiAgICBcIlJ1c2tvXCIsXG4gICAgXCJSdXNrw6EgZmVkZXLDoWNpYVwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJSd2FuZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTYWx2w6Fkb3JcIixcbiAgICBcIlNhbHbDoWRvcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiTmV6w6F2aXNsw70gxaF0w6F0IFNhbW9hXCIsXG4gICAgXCJTYW4gTWFyw61ub1wiLFxuICAgIFwiU2FubWFyw61uc2thIHJlcHVibGlrYVwiLFxuICAgIFwiU2F1ZHNrw6EgQXLDoWJpYVwiLFxuICAgIFwiS3LDocS+b3ZzdHZvIFNhdWRza2VqIEFyw6FiaWVcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNlbmVnYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2V5Y2hlbHlcIixcbiAgICBcIlNleWNoZWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2llcnJhIExlb25lXCIsXG4gICAgXCJSZXB1Ymxpa2EgU2llcnJhIExlb25lXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU2luZ2FwdXJza2EgcmVwdWJsaWthXCIsXG4gICAgXCJTbG92ZW5za29cIixcbiAgICBcIlNsb3ZlbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTbG92aW5za29cIixcbiAgICBcIlNsb3ZpbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTb23DoWxza29cIixcbiAgICBcIlNvbcOhbHNrYSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU3BvamVuw6kgYXJhYnNrw6kgZW1pcsOhdHlcIixcbiAgICBcIlNwb2plbsOpIGFyYWJza8OpIGVtaXLDoXR5XCIsXG4gICAgXCJTcG9qZW7DqSDFoXTDoXR5IGFtZXJpY2vDqVwiLFxuICAgIFwiU3BvamVuw6kgxaF0w6F0eSBhbWVyaWNrw6lcIixcbiAgICBcIlNyYnNrbyBhIMSMaWVybmEgSG9yYVwiLFxuICAgIFwiU3Jic2tvIGEgxIxpZXJuYSBIb3JhXCIsXG4gICAgXCJTcsOtIExhbmthXCIsXG4gICAgXCJEZW1va3JhdGlja8OhIHNvY2lhbGlzdGlja8OhIHJlcHVibGlrYSBTcsOtIExhbmthXCIsXG4gICAgXCJTdHJlZG9hZnJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlN0cmVkb2Fmcmlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU3Vkw6FuXCIsXG4gICAgXCJTdWTDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJTdXJpbmFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlN2YXppanNrb1wiLFxuICAgIFwiU3Zhemlqc2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIlN2w6R0w6EgTHVjaWFcIixcbiAgICBcIlN2w6R0w6EgTHVjaWFcIixcbiAgICBcIlN2w6R0w70gS3JpxaF0b2YgYSBOZXZpc1wiLFxuICAgIFwiRmVkZXLDoWNpYSBTdsOkdMO9IEtyacWhdG9mIGEgTmV2aXNcIixcbiAgICBcIlN2LiBUb23DocWhIGEgUHJpbmNvdiBPc3Ryb3ZcIixcbiAgICBcIkRlbW9rcmF0aWNrw6EgcmVwdWJsaWthIFN2w6R0w70gVG9tw6HFoSBhIFByaW5jb3YgT3N0cm92XCIsXG4gICAgXCJTdi4gVmluY2VudCBhIEdyZW5hZMOtbnlcIixcbiAgICBcIlN2w6R0w70gVmluY2VudCBhIEdyZW5hZMOtbnlcIixcbiAgICBcIlPDvXJpYVwiLFxuICAgIFwiU8O9cnNrYSBhcmFic2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIsWgYWxhbcO6bm92ZSBvc3Ryb3Z5XCIsXG4gICAgXCLFoGFsYW3Dum5vdmUgb3N0cm92eVwiLFxuICAgIFwixaBwYW5pZWxza29cIixcbiAgICBcIsWgcGFuaWVsc2tlIGtyw6HEvm92c3R2b1wiLFxuICAgIFwixaB2YWrEjWlhcnNrb1wiLFxuICAgIFwixaB2YWrEjWlhcnNrYSBrb25mZWRlcsOhY2lhXCIsXG4gICAgXCLFoHbDqWRza29cIixcbiAgICBcIsWgdsOpZHNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIlRhZMW+aWtpc3RhblwiLFxuICAgIFwiVGFkxb5pY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlRhbGlhbnNrb1wiLFxuICAgIFwiVGFsaWFuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiVGFuesOhbmlhXCIsXG4gICAgXCJUYW56w6FuaWpza8OhIHpqZWRub3RlbsOhIHJlcHVibGlrYVwiLFxuICAgIFwiVGhhanNrb1wiLFxuICAgIFwiVGhhanNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb8W+c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUb27FvnNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJUcmluaWRhZCBhIFRvYmFnb1wiLFxuICAgIFwiUmVwdWJsaWthIFRyaW5pZGFkIGEgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2tvXCIsXG4gICAgXCJUdW5pc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlR1cmVja29cIixcbiAgICBcIlR1cmVja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVHVya23DqW5za29cIixcbiAgICBcIlR1cmttw6luc2tvXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVZ2FuZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJVa3JhamluYVwiLFxuICAgIFwiVXJ1Z3VhalwiLFxuICAgIFwiVXJ1Z3VhanNrw6EgdsO9Y2hvZG7DoSByZXB1Ymxpa2FcIixcbiAgICBcIlV6YmVraXN0YW5cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZhbnVhdHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJWYXRpa8OhblwiLFxuICAgIFwiU3bDpHTDoSBTdG9saWNhXCIsXG4gICAgXCJWZcS+a8OhIEJyaXTDoW5pYVwiLFxuICAgIFwiU3BvamVuw6kga3LDocS+b3ZzdHZvIFZlxL5rZWogQnJpdMOhbmllIGEgU2V2ZXJuw6lobyDDjXJza2FcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVuZXp1ZWxza8OhIGJvbMOtdmFyb3Zza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiVmlldG5hbXNrw6Egc29jaWFsaXN0aWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJWw71jaG9kbsO9IFRpbW9yXCIsXG4gICAgXCJEZW1va3JhdGlja8OhIHJlcHVibGlrYSBWw71jaG9kbsO9IFRpbW9yXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlphbWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiWmltYmFid2lhbnNrYSByZXB1Ymxpa2FcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiLFxuICAgIFwiIyMjXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHQuICMjI1wiLFxuICAgIFwiU3VpdGUgIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjICMjXCIsXG4gICAgXCIjIyAjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtdLFxuICBcInN0YXRlX2FiYnJcIjogW10sXG4gIFwidGltZV96b25lXCI6IFtcbiAgICBcIlBhY2lmaWMvTWlkd2F5XCIsXG4gICAgXCJQYWNpZmljL1BhZ29fUGFnb1wiLFxuICAgIFwiUGFjaWZpYy9Ib25vbHVsdVwiLFxuICAgIFwiQW1lcmljYS9KdW5lYXVcIixcbiAgICBcIkFtZXJpY2EvTG9zX0FuZ2VsZXNcIixcbiAgICBcIkFtZXJpY2EvVGlqdWFuYVwiLFxuICAgIFwiQW1lcmljYS9EZW52ZXJcIixcbiAgICBcIkFtZXJpY2EvUGhvZW5peFwiLFxuICAgIFwiQW1lcmljYS9DaGlodWFodWFcIixcbiAgICBcIkFtZXJpY2EvTWF6YXRsYW5cIixcbiAgICBcIkFtZXJpY2EvQ2hpY2Fnb1wiLFxuICAgIFwiQW1lcmljYS9SZWdpbmFcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTW9udGVycmV5XCIsXG4gICAgXCJBbWVyaWNhL0d1YXRlbWFsYVwiLFxuICAgIFwiQW1lcmljYS9OZXdfWW9ya1wiLFxuICAgIFwiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpc1wiLFxuICAgIFwiQW1lcmljYS9Cb2dvdGFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9MaW1hXCIsXG4gICAgXCJBbWVyaWNhL0hhbGlmYXhcIixcbiAgICBcIkFtZXJpY2EvQ2FyYWNhc1wiLFxuICAgIFwiQW1lcmljYS9MYV9QYXpcIixcbiAgICBcIkFtZXJpY2EvU2FudGlhZ29cIixcbiAgICBcIkFtZXJpY2EvU3RfSm9obnNcIixcbiAgICBcIkFtZXJpY2EvU2FvX1BhdWxvXCIsXG4gICAgXCJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXNcIixcbiAgICBcIkFtZXJpY2EvR3V5YW5hXCIsXG4gICAgXCJBbWVyaWNhL0dvZHRoYWJcIixcbiAgICBcIkF0bGFudGljL1NvdXRoX0dlb3JnaWFcIixcbiAgICBcIkF0bGFudGljL0F6b3Jlc1wiLFxuICAgIFwiQXRsYW50aWMvQ2FwZV9WZXJkZVwiLFxuICAgIFwiRXVyb3BlL0R1YmxpblwiLFxuICAgIFwiRXVyb3BlL0xvbmRvblwiLFxuICAgIFwiRXVyb3BlL0xpc2JvblwiLFxuICAgIFwiRXVyb3BlL0xvbmRvblwiLFxuICAgIFwiQWZyaWNhL0Nhc2FibGFuY2FcIixcbiAgICBcIkFmcmljYS9Nb25yb3ZpYVwiLFxuICAgIFwiRXRjL1VUQ1wiLFxuICAgIFwiRXVyb3BlL0JlbGdyYWRlXCIsXG4gICAgXCJFdXJvcGUvQnJhdGlzbGF2YVwiLFxuICAgIFwiRXVyb3BlL0J1ZGFwZXN0XCIsXG4gICAgXCJFdXJvcGUvTGp1YmxqYW5hXCIsXG4gICAgXCJFdXJvcGUvUHJhZ3VlXCIsXG4gICAgXCJFdXJvcGUvU2FyYWpldm9cIixcbiAgICBcIkV1cm9wZS9Ta29wamVcIixcbiAgICBcIkV1cm9wZS9XYXJzYXdcIixcbiAgICBcIkV1cm9wZS9aYWdyZWJcIixcbiAgICBcIkV1cm9wZS9CcnVzc2Vsc1wiLFxuICAgIFwiRXVyb3BlL0NvcGVuaGFnZW5cIixcbiAgICBcIkV1cm9wZS9NYWRyaWRcIixcbiAgICBcIkV1cm9wZS9QYXJpc1wiLFxuICAgIFwiRXVyb3BlL0Ftc3RlcmRhbVwiLFxuICAgIFwiRXVyb3BlL0JlcmxpblwiLFxuICAgIFwiRXVyb3BlL0JlcmxpblwiLFxuICAgIFwiRXVyb3BlL1JvbWVcIixcbiAgICBcIkV1cm9wZS9TdG9ja2hvbG1cIixcbiAgICBcIkV1cm9wZS9WaWVubmFcIixcbiAgICBcIkFmcmljYS9BbGdpZXJzXCIsXG4gICAgXCJFdXJvcGUvQnVjaGFyZXN0XCIsXG4gICAgXCJBZnJpY2EvQ2Fpcm9cIixcbiAgICBcIkV1cm9wZS9IZWxzaW5raVwiLFxuICAgIFwiRXVyb3BlL0tpZXZcIixcbiAgICBcIkV1cm9wZS9SaWdhXCIsXG4gICAgXCJFdXJvcGUvU29maWFcIixcbiAgICBcIkV1cm9wZS9UYWxsaW5uXCIsXG4gICAgXCJFdXJvcGUvVmlsbml1c1wiLFxuICAgIFwiRXVyb3BlL0F0aGVuc1wiLFxuICAgIFwiRXVyb3BlL0lzdGFuYnVsXCIsXG4gICAgXCJFdXJvcGUvTWluc2tcIixcbiAgICBcIkFzaWEvSmVydXNhbGVtXCIsXG4gICAgXCJBZnJpY2EvSGFyYXJlXCIsXG4gICAgXCJBZnJpY2EvSm9oYW5uZXNidXJnXCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJBc2lhL0t1d2FpdFwiLFxuICAgIFwiQXNpYS9SaXlhZGhcIixcbiAgICBcIkFmcmljYS9OYWlyb2JpXCIsXG4gICAgXCJBc2lhL0JhZ2hkYWRcIixcbiAgICBcIkFzaWEvVGVocmFuXCIsXG4gICAgXCJBc2lhL011c2NhdFwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvQmFrdVwiLFxuICAgIFwiQXNpYS9UYmlsaXNpXCIsXG4gICAgXCJBc2lhL1llcmV2YW5cIixcbiAgICBcIkFzaWEvS2FidWxcIixcbiAgICBcIkFzaWEvWWVrYXRlcmluYnVyZ1wiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL0thcmFjaGlcIixcbiAgICBcIkFzaWEvVGFzaGtlbnRcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9LYXRobWFuZHVcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvQ29sb21ib1wiLFxuICAgIFwiQXNpYS9BbG1hdHlcIixcbiAgICBcIkFzaWEvTm92b3NpYmlyc2tcIixcbiAgICBcIkFzaWEvUmFuZ29vblwiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0Jhbmdrb2tcIixcbiAgICBcIkFzaWEvSmFrYXJ0YVwiLFxuICAgIFwiQXNpYS9LcmFzbm95YXJza1wiLFxuICAgIFwiQXNpYS9TaGFuZ2hhaVwiLFxuICAgIFwiQXNpYS9DaG9uZ3FpbmdcIixcbiAgICBcIkFzaWEvSG9uZ19Lb25nXCIsXG4gICAgXCJBc2lhL1VydW1xaVwiLFxuICAgIFwiQXNpYS9LdWFsYV9MdW1wdXJcIixcbiAgICBcIkFzaWEvU2luZ2Fwb3JlXCIsXG4gICAgXCJBc2lhL1RhaXBlaVwiLFxuICAgIFwiQXVzdHJhbGlhL1BlcnRoXCIsXG4gICAgXCJBc2lhL0lya3V0c2tcIixcbiAgICBcIkFzaWEvVWxhYW5iYWF0YXJcIixcbiAgICBcIkFzaWEvU2VvdWxcIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvWWFrdXRza1wiLFxuICAgIFwiQXVzdHJhbGlhL0RhcndpblwiLFxuICAgIFwiQXVzdHJhbGlhL0FkZWxhaWRlXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvU3lkbmV5XCIsXG4gICAgXCJBdXN0cmFsaWEvQnJpc2JhbmVcIixcbiAgICBcIkF1c3RyYWxpYS9Ib2JhcnRcIixcbiAgICBcIkFzaWEvVmxhZGl2b3N0b2tcIixcbiAgICBcIlBhY2lmaWMvR3VhbVwiLFxuICAgIFwiUGFjaWZpYy9Qb3J0X01vcmVzYnlcIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiQXNpYS9NYWdhZGFuXCIsXG4gICAgXCJQYWNpZmljL05vdW1lYVwiLFxuICAgIFwiUGFjaWZpYy9GaWppXCIsXG4gICAgXCJBc2lhL0thbWNoYXRrYVwiLFxuICAgIFwiUGFjaWZpYy9NYWp1cm9cIixcbiAgICBcIlBhY2lmaWMvQXVja2xhbmRcIixcbiAgICBcIlBhY2lmaWMvQXVja2xhbmRcIixcbiAgICBcIlBhY2lmaWMvVG9uZ2F0YXB1XCIsXG4gICAgXCJQYWNpZmljL0Zha2FvZm9cIixcbiAgICBcIlBhY2lmaWMvQXBpYVwiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIkLDoW5vdmNlIG5hZCBCZWJyYXZvdVwiLFxuICAgIFwiQmFuc2vDoSBCeXN0cmljYVwiLFxuICAgIFwiQmFuc2vDoSDFoHRpYXZuaWNhXCIsXG4gICAgXCJCYXJkZWpvdlwiLFxuICAgIFwiQnJhdGlzbGF2YSBJXCIsXG4gICAgXCJCcmF0aXNsYXZhIElJXCIsXG4gICAgXCJCcmF0aXNsYXZhIElJSVwiLFxuICAgIFwiQnJhdGlzbGF2YSBJVlwiLFxuICAgIFwiQnJhdGlzbGF2YSBWXCIsXG4gICAgXCJCcmV6bm9cIixcbiAgICBcIkJ5dMSNYVwiLFxuICAgIFwixIxhZGNhXCIsXG4gICAgXCJEZXR2YVwiLFxuICAgIFwiRG9sbsO9IEt1YsOtblwiLFxuICAgIFwiRHVuYWpza8OhIFN0cmVkYVwiLFxuICAgIFwiR2FsYW50YVwiLFxuICAgIFwiR2VsbmljYVwiLFxuICAgIFwiSGxvaG92ZWNcIixcbiAgICBcIkh1bWVubsOpXCIsXG4gICAgXCJJbGF2YVwiLFxuICAgIFwiS2XFvm1hcm9rXCIsXG4gICAgXCJLb23DoXJub1wiLFxuICAgIFwiS2/FoWljZSBJXCIsXG4gICAgXCJLb8WhaWNlIElJXCIsXG4gICAgXCJLb8WhaWNlIElJSVwiLFxuICAgIFwiS2/FoWljZSBJVlwiLFxuICAgIFwiS2/FoWljZS1va29saWVcIixcbiAgICBcIktydXBpbmFcIixcbiAgICBcIkt5c3Vja8OpIE5vdsOpIE1lc3RvXCIsXG4gICAgXCJMZXZpY2VcIixcbiAgICBcIkxldm/EjWFcIixcbiAgICBcIkxpcHRvdnNrw70gTWlrdWzDocWhXCIsXG4gICAgXCJMdcSNZW5lY1wiLFxuICAgIFwiTWFsYWNreVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNZWR6aWxhYm9yY2VcIixcbiAgICBcIk1pY2hhbG92Y2VcIixcbiAgICBcIk15amF2YVwiLFxuICAgIFwiTsOhbWVzdG92b1wiLFxuICAgIFwiTml0cmFcIixcbiAgICBcIk5vdsOpIE1lc3RvIG4uVsOhaG9tXCIsXG4gICAgXCJOb3bDqSBaw6Fta3lcIixcbiAgICBcIlBhcnRpesOhbnNrZVwiLFxuICAgIFwiUGV6aW5va1wiLFxuICAgIFwiUGllxaHFpWFueVwiLFxuICAgIFwiUG9sdMOhclwiLFxuICAgIFwiUG9wcmFkXCIsXG4gICAgXCJQb3Zhxb5za8OhIEJ5c3RyaWNhXCIsXG4gICAgXCJQcmXFoW92XCIsXG4gICAgXCJQcmlldmlkemFcIixcbiAgICBcIlDDumNob3ZcIixcbiAgICBcIlJldsO6Y2FcIixcbiAgICBcIlJpbWF2c2vDoSBTb2JvdGFcIixcbiAgICBcIlJvxb7FiGF2YVwiLFxuICAgIFwiUnXFvm9tYmVyb2tcIixcbiAgICBcIlNhYmlub3ZcIixcbiAgICBcIsWgYcS+YVwiLFxuICAgIFwiU2VuZWNcIixcbiAgICBcIlNlbmljYVwiLFxuICAgIFwiU2thbGljYVwiLFxuICAgIFwiU25pbmFcIixcbiAgICBcIlNvYnJhbmNlXCIsXG4gICAgXCJTcGnFoXNrw6EgTm92w6EgVmVzXCIsXG4gICAgXCJTdGFyw6EgxL11Ym92xYhhXCIsXG4gICAgXCJTdHJvcGtvdlwiLFxuICAgIFwiU3ZpZG7DrWtcIixcbiAgICBcIlRvcG/EvsSNYW55XCIsXG4gICAgXCJUcmViacWhb3ZcIixcbiAgICBcIlRyZW7EjcOtblwiLFxuICAgIFwiVHJuYXZhXCIsXG4gICAgXCJUdXLEjWlhbnNrZSBUZXBsaWNlXCIsXG4gICAgXCJUdnJkb8Whw61uXCIsXG4gICAgXCJWZcS+a8O9IEtydMOtxaFcIixcbiAgICBcIlZyYW5vdiBuYWQgVG9wxL5vdVwiLFxuICAgIFwixb1hcm5vdmljYVwiLFxuICAgIFwixb1pYXIgbmFkIEhyb25vbVwiLFxuICAgIFwixb1pbGluYVwiLFxuICAgIFwiWmxhdMOpIE1vcmF2Y2VcIixcbiAgICBcIlp2b2xlblwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldFwiOiBbXG4gICAgXCJBZMOhbWlob1wiLFxuICAgIFwiQWhvalwiLFxuICAgIFwiQWxiw61uYSBCcnVub3Zza8OpaG9cIixcbiAgICBcIkFsYnJlY2h0b3ZhXCIsXG4gICAgXCJBbGVqb3bDoVwiLFxuICAgIFwiQWxlxaFvdmFcIixcbiAgICBcIkFsaWJlcm5ldG92w6FcIixcbiAgICBcIkFsxb5iZXTDrW5za2FcIixcbiAgICBcIkFsxb5iZXR5IEd3ZXJrb3ZlalwiLFxuICAgIFwiQW1icm9zZWhvXCIsXG4gICAgXCJBbWJydcWhb3ZhXCIsXG4gICAgXCJBbWVyaWNrw6FcIixcbiAgICBcIkFtZXJpY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIkFtZXJpY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIkFuZHJlamEgTXLDoXphXCIsXG4gICAgXCJBbmRyZWphIFBsw6F2a3VcIixcbiAgICBcIkFuZHJ1c292b3ZhXCIsXG4gICAgXCJBbmVuc2vDoVwiLFxuICAgIFwiQW5lbnNrw6FcIixcbiAgICBcIkFudG9sc2vDoVwiLFxuICAgIFwiQXN0cm9ub21pY2vDoVwiLFxuICAgIFwiQXN0cm92w6FcIixcbiAgICBcIkF6YWxrb3bDoVwiLFxuICAgIFwiQXpvdnNrw6FcIixcbiAgICBcIkJhYnXFoWtvdmFcIixcbiAgICBcIkJhY2hvdmFcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhanpvdmFcIixcbiAgICBcIkJhbmPDrWtvdmVqXCIsXG4gICAgXCJCYW7DrWNrYVwiLFxuICAgIFwiQmFuw61rb3ZhXCIsXG4gICAgXCJCYW5za29ieXN0cmlja8OhXCIsXG4gICAgXCJCYW7FoWVsb3ZhXCIsXG4gICAgXCJCYXJkZWpvdnNrw6FcIixcbiAgICBcIkJhcnTDs2tvdmFcIixcbiAgICBcIkJhcnRvxYhvdmFcIixcbiAgICBcIkJhcnRvxaFrb3ZhXCIsXG4gICAgXCJCYcWhdG92w6FcIixcbiAgICBcIkJhem92w6FcIixcbiAgICBcIkJhxb5hbnRpYVwiLFxuICAgIFwiQmVibGF2w6lob1wiLFxuICAgIFwiQmVja292c2vDoVwiLFxuICAgIFwiQmVkxL5vdsOhXCIsXG4gICAgXCJCZWzDoW5pa292w6FcIixcbiAgICBcIkJlbGVocmFkc2vDoVwiLFxuICAgIFwiQmVsaW5za8OpaG9cIixcbiAgICBcIkJlbG9wb3RvY2vDqWhvXCIsXG4gICAgXCJCZcWIYWRpY2vDoVwiLFxuICAgIFwiQmVuY8O6cm92YVwiLFxuICAgIFwiQmVuZWRpa3RpaG9cIixcbiAgICBcIkJlbmlha292YVwiLFxuICAgIFwiQmVybm9sw6Frb3ZhXCIsXG4gICAgXCJCZXNreWRza8OhXCIsXG4gICAgXCJCZXRsaWFyc2thXCIsXG4gICAgXCJCZXpydcSNb3ZhXCIsXG4gICAgXCJCaWVsYVwiLFxuICAgIFwiQmllbGtvdmFcIixcbiAgICBcIkJqw7ZybnNvbm92YVwiLFxuICAgIFwiQmxhZ29ldm92YVwiLFxuICAgIFwiQmxhdG5pY2vDoVwiLFxuICAgIFwiQmx1bWVudMOhbHNrYVwiLFxuICAgIFwiQmx5c2vDocSNb3bDoVwiLFxuICAgIFwiQm/EjW7DoVwiLFxuICAgIFwiQm9ocm92YVwiLFxuICAgIFwiQm9ow7rFiG92YVwiLFxuICAgIFwiQm9qbmlja8OhXCIsXG4gICAgXCJCb3JvZMOhxI1vdmFcIixcbiAgICBcIkJvcnNrw6FcIixcbiAgICBcIkJvc8Oha292YVwiLFxuICAgIFwiQm90YW5pY2vDoVwiLFxuICAgIFwiQm90dG92YVwiLFxuICAgIFwiQm/FvmVueSBOxJttY292ZWpcIixcbiAgICBcIkLDtHJpa1wiLFxuICAgIFwiQnJhZMOhxI1vdmFcIixcbiAgICBcIkJyYWRsaWFuc2thXCIsXG4gICAgXCJCcmFuxI1za8OhXCIsXG4gICAgXCJCcmF0c2vDoVwiLFxuICAgIFwiQnJlc3RvdsOhXCIsXG4gICAgXCJCcmV6b3Zza8OhXCIsXG4gICAgXCJCcmllxb5reVwiLFxuICAgIFwiQnJuaWFuc2thXCIsXG4gICAgXCJCcm9kbsOhXCIsXG4gICAgXCJCcm9kc2vDoVwiLFxuICAgIFwiQnJvc2t5xYhvdsOhXCIsXG4gICAgXCJCxZllY2xhdnNrw6FcIixcbiAgICBcIkJ1ZGF0w61uc2thXCIsXG4gICAgXCJCdWRhdMOtbnNrYVwiLFxuICAgIFwiQnVkYXTDrW5za2FcIixcbiAgICBcIkLDumRrb3ZhICBjZXN0YVwiLFxuICAgIFwiQnVkb3ZhdGXEvnNrw6FcIixcbiAgICBcIkJ1ZHnFocOtbnNrYVwiLFxuICAgIFwiQnVkecWhw61uc2thXCIsXG4gICAgXCJCdWtvdsOhXCIsXG4gICAgXCJCdWt1cmXFoXRza8OhXCIsXG4gICAgXCJCdWxoYXJza8OhXCIsXG4gICAgXCJCdWzDrWtvdmFcIixcbiAgICBcIkJ5c3Ryw6lob1wiLFxuICAgIFwiQnpvdsOtY2thXCIsXG4gICAgXCJDYWJsa292YVwiLFxuICAgIFwiQ2VzdGEgbmEgxIxlcnZlbsO9IG1vc3RcIixcbiAgICBcIkNlc3RhIG5hIMSMZXJ2ZW7DvSBtb3N0XCIsXG4gICAgXCJDZXN0YSBuYSBTZW5lY1wiLFxuICAgIFwiQ2lra2Vyb3ZhXCIsXG4gICAgXCJDaW50b3LDrW5za2FcIixcbiAgICBcIkNpbnR1bG92YVwiLFxuICAgIFwiQ3Vrcm92w6FcIixcbiAgICBcIkN5cmlsb3ZhXCIsXG4gICAgXCLEjGFqYWtvdmFcIixcbiAgICBcIsSMYWprb3Zza8OpaG9cIixcbiAgICBcIsSMYWtsb3Zza8OhXCIsXG4gICAgXCLEjGFsb3Zza8OhXCIsXG4gICAgXCLEjGFwYWpldm92YVwiLFxuICAgIFwixIxhcGtvdmFcIixcbiAgICBcIsSMw6Fyc2tlaG9cIixcbiAgICBcIsSMYXZvanNrw6lob1wiLFxuICAgIFwixIxlxI1pbm92w6FcIixcbiAgICBcIsSMZWxha292c2vDqWhvXCIsXG4gICAgXCLEjGVyZcWhxYhvdsOhXCIsXG4gICAgXCLEjGVybnnFoWV2c2vDqWhvXCIsXG4gICAgXCLEjGVydmXFiG92YVwiLFxuICAgIFwixIxlc2vDoVwiLFxuICAgIFwixIxlc2tvc2xvdmVuc2vDvWNoIHBhclwiLFxuICAgIFwixIxpcGvDoXJza2FcIixcbiAgICBcIsSMbWVsw61rb3ZhXCIsXG4gICAgXCLEjG1lxL5vdmVjXCIsXG4gICAgXCLEjHVsZW5vdmFcIixcbiAgICBcIkRhbGlib3Jvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEYW5rb3Zza8OpaG9cIixcbiAgICBcIkRhcmdvdnNrw6FcIixcbiAgICBcIsSOYXRlbGlub3bDoVwiLFxuICAgIFwiRGF4bmVyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiRGV2w61uc2thIGNlc3RhXCIsXG4gICAgXCJEbGjDqSBkaWVseSBJLlwiLFxuICAgIFwiRGxow6kgZGllbHkgSUkuXCIsXG4gICAgXCJEbGjDqSBkaWVseSBJSUkuXCIsXG4gICAgXCJEb2Jyb3ZpxI1vdmFcIixcbiAgICBcIkRvYnJvdmnEjW92YVwiLFxuICAgIFwiRG9icm92c2vDqWhvXCIsXG4gICAgXCJEb2LFoWluc2vDqWhvXCIsXG4gICAgXCJEb2huYWxvdmFcIixcbiAgICBcIkRvaG7DoW55aG9cIixcbiAgICBcIkRvbGXFvmFsb3ZhXCIsXG4gICAgXCJEb2xuw6FcIixcbiAgICBcIkRvbG5vemVtc2vDoSBjZXN0YVwiLFxuICAgIFwiRG9ta8OhcnNrYVwiLFxuICAgIFwiRG9tb3bDqSByb2xlXCIsXG4gICAgXCJEb25uZXJvdmFcIixcbiAgICBcIkRvbm92YWxvdmFcIixcbiAgICBcIkRvc3RvamV2c2vDqWhvIHJhZFwiLFxuICAgIFwiRHIuIFZsYWRpbcOtcmEgQ2xlbWVuXCIsXG4gICAgXCJEcmV2ZW7DoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJ1xb5pY292w6FcIixcbiAgICBcIkRydcW+c3Rldm7DoVwiLFxuICAgIFwiRHVibmlja8OhXCIsXG4gICAgXCJEdWJvdsOhXCIsXG4gICAgXCJEw7picmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiRHVkb3ZhXCIsXG4gICAgXCJEdWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEdWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEdW5hanNrw6FcIixcbiAgICBcIkR2b8WZw6Frb3ZvIG7DoWJyZcW+aWVcIixcbiAgICBcIkVkaXNvbm92YVwiLFxuICAgIFwiRWluc3RlaW5vdmFcIixcbiAgICBcIkVsZWt0csOhcmVuc2vDoVwiLFxuICAgIFwiRXhuw6Fyb3ZhXCIsXG4gICAgXCJGLiBLb3N0a3VcIixcbiAgICBcIkZhZHJ1c3pvdmFcIixcbiAgICBcIkZham5vcm92byBuw6FicmXFvmllXCIsXG4gICAgXCJGw6FuZGx5aG9cIixcbiAgICBcIkZhcmVibsOhXCIsXG4gICAgXCJGYXJza8OhXCIsXG4gICAgXCJGYXJza8OpaG9cIixcbiAgICBcIkZhenXEvm92w6FcIixcbiAgICBcIkZlZGlub3ZhXCIsXG4gICAgXCJGZXJpZW7EjcOta292YVwiLFxuICAgIFwiRmlhbGtvdsOpIMO6ZG9saWVcIixcbiAgICBcIkZpYmljaG92YVwiLFxuICAgIFwiRmlsacOhbG5lIG7DoWRyYcW+aWVcIixcbiAgICBcIkZsw7ZnbG92YVwiLFxuICAgIFwiRmxvcmnDoW5za2UgbsOhbWVzdGllXCIsXG4gICAgXCJGcmHFiGEgS3LDocS+YVwiLFxuICAgIFwiRnJhbmNpc2NpaG9cIixcbiAgICBcIkZyYW5jw7p6c2t5Y2ggcGFydGl6w6FcIixcbiAgICBcIkZyYW50acWha8OhbnNrYVwiLFxuICAgIFwiRnJhbnRpxaFrw6Fuc2tlIG7DoW1lc3RcIixcbiAgICBcIkZ1cmRla292YVwiLFxuICAgIFwiRnVyZGVrb3ZhXCIsXG4gICAgXCJHYWLEjcOta292YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2Fqb3ZhXCIsXG4gICAgXCJHYWxha3RpY2vDoVwiLFxuICAgIFwiR2FsYW5kb3ZhXCIsXG4gICAgXCJHYWxsb3ZhXCIsXG4gICAgXCJHYWx2YW5paG9cIixcbiAgICBcIkdhxaFwYXLDrWtvdmFcIixcbiAgICBcIkdhxaF0YW5vdsOhXCIsXG4gICAgXCJHYXZsb3ZpxI1vdmFcIixcbiAgICBcIkdlbWVyc2vDoVwiLFxuICAgIFwiR2VyY2Vub3ZhXCIsXG4gICAgXCJHZXNzYXlvdmFcIixcbiAgICBcIkdldHRpbmdvdsOhXCIsXG4gICAgXCJHb2Ryb3ZhXCIsXG4gICAgXCJHb2dvxL5vdmFcIixcbiAgICBcIkdvbMOhxYhvdmFcIixcbiAgICBcIkdvbmRvdmFcIixcbiAgICBcIkdvcmFsc2vDoVwiLFxuICAgIFwiR29yYXpkb3ZhXCIsXG4gICAgXCJHb3Jrw6lob1wiLFxuICAgIFwiR3JlZ29yb3ZlalwiLFxuICAgIFwiR3LDtnNzbGluZ292YVwiLFxuICAgIFwiR3J1esOtbnNrYVwiLFxuICAgIFwiR3VuZHVsacSNb3ZhXCIsXG4gICAgXCJHdXNldm92YVwiLFxuICAgIFwiSGFhbm92YVwiLFxuICAgIFwiSGFidXJza8OhXCIsXG4gICAgXCJIYWxhxaFvdmFcIixcbiAgICBcIkjDoWxrb3ZhXCIsXG4gICAgXCJIw6Fsb3ZhXCIsXG4gICAgXCJIYW11bGlha292YVwiLFxuICAgIFwiSGFuw6Fja2FcIixcbiAgICBcIkhhbmRsb3Zza8OhXCIsXG4gICAgXCJIYW55IE1lbGnEjWtvdmVqXCIsXG4gICAgXCJIYXJtYW5lY2vDoVwiLFxuICAgIFwiSGFzacSNc2vDoVwiLFxuICAgIFwiSGF0dGFsb3ZhXCIsXG4gICAgXCJIYXZsw63EjWtvdmFcIixcbiAgICBcIkhhdnJhbmlhXCIsXG4gICAgXCJIYXlkbm92YVwiLFxuICAgIFwiSGVybGlhbnNrYVwiLFxuICAgIFwiSGVybGlhbnNrYVwiLFxuICAgIFwiSGV5ZHVrb3ZhXCIsXG4gICAgXCJIbGF2w6HEjWlrb3ZhXCIsXG4gICAgXCJIbGF2YXTDqWhvXCIsXG4gICAgXCJIbGF2bsOpIG7DoW1lc3RpZVwiLFxuICAgIFwiSGxib2vDoSBjZXN0YVwiLFxuICAgIFwiSGxib2vDoSBjZXN0YVwiLFxuICAgIFwiSGxpdm92w6FcIixcbiAgICBcIkhsdcSNw61uc2thXCIsXG4gICAgXCJIb2TDoWxvdmFcIixcbiAgICBcIkhvZMW+b3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiSG9sZWtvdmFcIixcbiAgICBcIkhvbMOtxI1za2FcIixcbiAgICBcIkhvbGzDqWhvXCIsXG4gICAgXCJIb2x1Ynlob1wiLFxuICAgIFwiSG9udGlhbnNrYVwiLFxuICAgIFwiSG9yw6Fyc2thXCIsXG4gICAgXCJIb3Juw6kgxb1pZGlueVwiLFxuICAgIFwiSG9yc2vDoVwiLFxuICAgIFwiSG9yc2vDoVwiLFxuICAgIFwiSHJhZFwiLFxuICAgIFwiSHJhZG7DqSDDumRvbGllXCIsXG4gICAgXCJIcmFjaG92w6FcIixcbiAgICBcIkhyYW5pxI1uw6FcIixcbiAgICBcIkhyZWJlbmRvdmFcIixcbiAgICBcIkhyw61ib3bDoVwiLFxuICAgIFwiSHJpxYhvdnNrw6FcIixcbiAgICBcIkhyb2LDoWtvdmFcIixcbiAgICBcIkhyb2LDoXJza2FcIixcbiAgICBcIkhyb2JvxYhvdmFcIixcbiAgICBcIkh1ZGVjb3ZhXCIsXG4gICAgXCJIdW1lbnNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJIdW1tZWxvdmFcIixcbiAgICBcIkh1cmJhbm92byBuw6FtZXN0aWVcIixcbiAgICBcIkh1cmJhbm92byBuw6FtZXN0aWVcIixcbiAgICBcIkh2aWV6ZG9zbGF2b3ZvIG7DoW1lc1wiLFxuICAgIFwiSMO9cm/FoW92YVwiLFxuICAgIFwiQ2hhbHVwa292YVwiLFxuICAgIFwiQ2hlbWlja8OhXCIsXG4gICAgXCJDaGx1bWVja8OpaG9cIixcbiAgICBcIkNob3J2w6F0c2thXCIsXG4gICAgXCJDaG9ydsOhdHNrYVwiLFxuICAgIFwiScS+anXFoWlub3ZhXCIsXG4gICAgXCJJbGtvdmnEjW92YVwiLFxuICAgIFwiSW5vdmVja8OhXCIsXG4gICAgXCJJbm92ZWNrw6FcIixcbiAgICBcIklza2VybsOta292w6FcIixcbiAgICBcIkl2YW5hIEhvcnbDoXRoYVwiLFxuICAgIFwiSXbDoW5za2EgY2VzdGFcIixcbiAgICBcIkouQy5Icm9uc2vDqWhvXCIsXG4gICAgXCJKYWJsb8WIb3bDoVwiLFxuICAgIFwiSmFkcm92w6FcIixcbiAgICBcIkpha2Fib3ZhXCIsXG4gICAgXCJKYWt1Ym92byBuw6FtZXN0aWVcIixcbiAgICBcIkphbW5pY2vDqWhvXCIsXG4gICAgXCJKw6FuYSBTdGFuaXNsYXZhXCIsXG4gICAgXCJKYW7DocSNa292YVwiLFxuICAgIFwiSmFuxI1vdmFcIixcbiAgICBcIkphbsOta292ZSByb2xlXCIsXG4gICAgXCJKYW5rb2xvdmFcIixcbiAgICBcIkrDoW5vxaHDrWtvdmFcIixcbiAgICBcIkrDoW5vxaFrb3ZhXCIsXG4gICAgXCJKYW5vdG92YVwiLFxuICAgIFwiSsOhbnNrYVwiLFxuICAgIFwiSmFudMOhcm92w6EgY2VzdGFcIixcbiAgICBcIkphcmFiaW5rb3bDoVwiLFxuICAgIFwiSmFybsOhXCIsXG4gICAgXCJKYXJvc2xhdm92YVwiLFxuICAgIFwiSmFyb8Whb3ZhXCIsXG4gICAgXCJKYXNlxYhvdsOhXCIsXG4gICAgXCJKYXNuw6FcIixcbiAgICBcIkphc292c2vDoVwiLFxuICAgIFwiSmFzdHJhYmlhXCIsXG4gICAgXCJKYcWhw61rb3ZhXCIsXG4gICAgXCJKYXZvcmluc2vDoVwiLFxuICAgIFwiSmF2b3JvdsOhXCIsXG4gICAgXCJKYXpkZWNrw6FcIixcbiAgICBcIkplZGzDrWtvdmFcIixcbiAgICBcIkrDqWfDqWhvXCIsXG4gICAgXCJKZWxhxI1pxI1vdmFcIixcbiAgICBcIkplbGVuaWFcIixcbiAgICBcIkplc2VubsOhXCIsXG4gICAgXCJKZXNlbnNrw6lob1wiLFxuICAgIFwiSmlyw6Fza292YVwiLFxuICAgIFwiSmlza3JvdmFcIixcbiAgICBcIkpvemVmc2vDoVwiLFxuICAgIFwiSnVuw6Fja2FcIixcbiAgICBcIkp1bmdtYW5ub3ZhXCIsXG4gICAgXCJKdXJpZ292byBuw6FtZXN0aWVcIixcbiAgICBcIkp1cm92c2vDqWhvXCIsXG4gICAgXCJKdXJza8OhXCIsXG4gICAgXCJKdXN0acSNbsOhXCIsXG4gICAgXCJLIGxvbXVcIixcbiAgICBcIksgxb1lbGV6bmVqIHN0dWRpZW5rZVwiLFxuICAgIFwiS2FsaW7EjWlha292YVwiLFxuICAgIFwiS2FtZW7DoXJza2FcIixcbiAgICBcIkthbWVubsOpIG7DoW1lc3RpZVwiLFxuICAgIFwiS2FwaWNvdmFcIixcbiAgICBcIkthcGl0dWxza8OhXCIsXG4gICAgXCJLYXBpdHVsc2vDvSBkdm9yXCIsXG4gICAgXCJLYXB1Y8OtbnNrYVwiLFxuICAgIFwiS2FwdcWhaWFuc2thXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJsb3Zlc2vDoVwiLFxuICAgIFwiS2FybG92ZXNrw6kgcmFtZW5vXCIsXG4gICAgXCJLYXJwYXRza8OhXCIsXG4gICAgXCJLYcWhbcOtcnNrYVwiLFxuICAgIFwiS2HFoXRpZWxza2FcIixcbiAgICBcIkthdWthenNrw6FcIixcbiAgICBcIktlbXBlbGVub3ZhXCIsXG4gICAgXCJLZcW+bWFyc2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIktsYWRuaWFuc2thXCIsXG4gICAgXCJLbGFyaXNrw6FcIixcbiAgICBcIktsw6HFoXRvcnNrw6FcIixcbiAgICBcIktsYXRvdnNrw6FcIixcbiAgICBcIktsYXRvdnNrw6FcIixcbiAgICBcIktsZW1lbnNvdmFcIixcbiAgICBcIktsaW5jb3bDoVwiLFxuICAgIFwiS2xvYnXEjW7DrWNrYVwiLFxuICAgIFwiS2xva2/EjW92YVwiLFxuICAgIFwiS8S+dWthdMOhXCIsXG4gICAgXCJLbWXFpW92byBuw6FtZXN0aWVcIixcbiAgICBcIktvY2XEvm92YVwiLFxuICAgIFwiS2/EjcOhbmtvdmFcIixcbiAgICBcIktvaMO6dG92YVwiLFxuICAgIFwiS29sw6Fyc2thXCIsXG4gICAgXCJLb2zDrXNrb3ZhXCIsXG4gICAgXCJLb2xsw6Fyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiS29sbMOhcm92byBuw6FtZXN0aWVcIixcbiAgICBcIktvbG3DoVwiLFxuICAgIFwiS29tw6FyxYhhbnNrw6FcIixcbiAgICBcIktvbcOhcm5pY2vDoVwiLFxuICAgIFwiS29tw6Fybmlja8OhXCIsXG4gICAgXCJLb21lbnNrw6lobyBuw6FtZXN0aWVcIixcbiAgICBcIktvbWluw6Fyc2thXCIsXG4gICAgXCJLb21vbmljb3bDoVwiLFxuICAgIFwiS29ub3Buw6FcIixcbiAgICBcIktvbnZhbGlua292w6FcIixcbiAgICBcIktvbnZlbnRuw6FcIixcbiAgICBcIktvcGFuaWNlXCIsXG4gICAgXCJLb3DEjWlhbnNrYVwiLFxuICAgIFwiS29wZXJuw61rb3ZhXCIsXG4gICAgXCJLb3JhYmluc2vDqWhvXCIsXG4gICAgXCJLb3JlbmnEjW92YVwiLFxuICAgIFwiS29zdGxpdsOpaG9cIixcbiAgICBcIktvc3RvbG7DoVwiLFxuICAgIFwiS2/FoWlja8OhXCIsXG4gICAgXCJLb8WhaWNrw6FcIixcbiAgICBcIktvxaFpY2vDoVwiLFxuICAgIFwiS292w6HEjXNrYVwiLFxuICAgIFwiS292b3JvYm90bsOtY2thXCIsXG4gICAgXCJLb3ppYVwiLFxuICAgIFwiS296aWFya2FcIixcbiAgICBcIktvem1vbmF1dGlja8OhXCIsXG4gICAgXCJLcmFqbsOhXCIsXG4gICAgXCJLcmFrb3Zza8OhXCIsXG4gICAgXCJLcsOhxL5vdnNrw6kgw7pkb2xpZVwiLFxuICAgIFwiS3Jhc2luc2vDqWhvXCIsXG4gICAgXCJLcmFza292YVwiLFxuICAgIFwiS3LDoXNuYVwiLFxuICAgIFwiS3LDoXNub2hvcnNrw6FcIixcbiAgICBcIktyYXNvdnNrw6lob1wiLFxuICAgIFwiS3LDoXRrYVwiLFxuICAgIFwiS3LEjW3DqXJ5aG9cIixcbiAgICBcIktyZW1uaWNrw6FcIixcbiAgICBcIktyZXPDoW5rb3ZhXCIsXG4gICAgXCJLcml2w6FcIixcbiAgICBcIktyacW+a292YVwiLFxuICAgIFwiS3LDrcW+bmFcIixcbiAgICBcIktyw63Fvm5hXCIsXG4gICAgXCJLcsOtxb5uYVwiLFxuICAgIFwiS3LDrcW+bmFcIixcbiAgICBcIktybWFub3ZhXCIsXG4gICAgXCJLcm9tcGHFoXNrw6FcIixcbiAgICBcIktydXBpbnNrw6FcIixcbiAgICBcIktydXBrb3ZhXCIsXG4gICAgXCJLdWLDoW5paG9cIixcbiAgICBcIkt1YsOtbnNrYVwiLFxuICAgIFwiS3VrbG92c2vDoVwiLFxuICAgIFwiS3VrdcSNw61ub3ZhXCIsXG4gICAgXCJLdWt1cmnEjW7DoVwiLFxuICAgIFwiS3Vsw63FoWtvdmFcIixcbiAgICBcIkt1bHTDunJuYVwiLFxuICAgIFwiS3VwZWNrw6lob1wiLFxuICAgIFwiS8O6cGXEvm7DoVwiLFxuICAgIFwiS3V0bMOta292YVwiLFxuICAgIFwiS3V0dXpvdm92YVwiLFxuICAgIFwiS3V6bcOhbnlob1wiLFxuICAgIFwiS3ZhxI1hbG92YVwiLFxuICAgIFwiS3ZldG7DoVwiLFxuICAgIFwiS8O9xI1lcnNrw6lob1wiLFxuICAgIFwiS3lqZXZza8OhXCIsXG4gICAgXCJLeXN1Y2vDoVwiLFxuICAgIFwiTGFib3JlY2vDoVwiLFxuICAgIFwiTGFja292YVwiLFxuICAgIFwiTGFkaXNsYXZhIFPDoXJ1XCIsXG4gICAgXCLEvWFkb3bDoVwiLFxuICAgIFwiTGFjaG92YVwiLFxuICAgIFwixL1hbGlvdsOhXCIsXG4gICAgXCJMYW1hxI1za8OhIGNlc3RhXCIsXG4gICAgXCJMYW1hxI1za8OhIGNlc3RhXCIsXG4gICAgXCJMYW1hbnNrw6lob1wiLFxuICAgIFwiTGFuZGVyZXJvdmFcIixcbiAgICBcIkxhbmdzZmVsZG92YVwiLFxuICAgIFwixL1hbm92w6FcIixcbiAgICBcIkxhc2tvbWVyc2vDqWhvXCIsXG4gICAgXCJMYXXEjWVrb3ZhXCIsXG4gICAgXCJMYXVyaW5za8OhXCIsXG4gICAgXCJMYXphcmV0c2vDoVwiLFxuICAgIFwiTGF6YXJldHNrw6FcIixcbiAgICBcIkxlZ2Vyc2vDqWhvXCIsXG4gICAgXCJMZWdpb27DoXJza2FcIixcbiAgICBcIkxlZ2lvbsOhcnNrYVwiLFxuICAgIFwiTGVob2Nrw6lob1wiLFxuICAgIFwiTGVob2Nrw6lob1wiLFxuICAgIFwiTGVuYXJkb3ZhXCIsXG4gICAgXCJMZXJtb250b3ZvdmFcIixcbiAgICBcIkxlc27DoVwiLFxuICAgIFwiTGXFoWtvdmFcIixcbiAgICBcIkxldGVja8OhXCIsXG4gICAgXCJMZXRpc2tvIE0uUi7FoHRlZsOhbmlrXCIsXG4gICAgXCJMZXRuw6FcIixcbiAgICBcIkxldsOhcnNrYVwiLFxuICAgIFwiTGV2aWNrw6FcIixcbiAgICBcIkxldm/EjXNrw6FcIixcbiAgICBcIkxpZGlja8OhXCIsXG4gICAgXCJMaWV0YXZza8OhXCIsXG4gICAgXCJMaWNoYXJkb3ZhXCIsXG4gICAgXCJMaXBvdsOhXCIsXG4gICAgXCJMaXBvdmlub3bDoVwiLFxuICAgIFwiTGlwdG92c2vDoVwiLFxuICAgIFwiTGlzdG92w6FcIixcbiAgICBcIkzDrcWhxI1pZSBuaXZ5XCIsXG4gICAgXCJMw63FocSNaWUgw7pkb2xpZVwiLFxuICAgIFwiTGl0b3Zza8OhXCIsXG4gICAgXCJMb2Ruw6FcIixcbiAgICBcIkxvbWJhcmRpbmlob1wiLFxuICAgIFwiTG9tb25vc292b3ZhXCIsXG4gICAgXCJMb3BlbsOtY2thXCIsXG4gICAgXCJMb3ZpbnNrw6lob1wiLFxuICAgIFwixL11YmlldG92c2vDoVwiLFxuICAgIFwixL11Ymluc2vDoVwiLFxuICAgIFwixL11YsS+YW5za8OhXCIsXG4gICAgXCLEvXVib2NobmlhbnNrYVwiLFxuICAgIFwixL11Ym92bmlhbnNrYVwiLFxuICAgIFwiTMO6xI1uYVwiLFxuICAgIFwixL11ZG92w6kgbsOhbWVzdGllXCIsXG4gICAgXCLEvXVkb3bDrXRhIEZ1bGx1XCIsXG4gICAgXCJMdWhhxI1vdmlja8OhXCIsXG4gICAgXCJMdcW+aWNrw6FcIixcbiAgICBcIkx1xb5uw6FcIixcbiAgICBcIkzDvWNlam7DoVwiLFxuICAgIFwiTHlrb3Zjb3bDoVwiLFxuICAgIFwiTS4gSGVsbGFcIixcbiAgICBcIk1hZ25ldG92w6FcIixcbiAgICBcIk1hY2hhcm92YVwiLFxuICAgIFwiTWFqYWtvdnNrw6lob1wiLFxuICAgIFwiTWFqZXJuw61rb3ZhXCIsXG4gICAgXCJNw6Fqa292YVwiLFxuICAgIFwiTcOham92w6FcIixcbiAgICBcIk1ha292aWNrw6lob1wiLFxuICAgIFwiTWFsw6FcIixcbiAgICBcIk1hbMOpIHDDoWxlbmlza29cIixcbiAgICBcIk1hbGlub3bDoVwiLFxuICAgIFwiTWFsw70gRHJhxb5kaWFrXCIsXG4gICAgXCJNYWzDvSB0cmhcIixcbiAgICBcIk1hbWF0ZXlvdmFcIixcbiAgICBcIk1hbWF0ZXlvdmFcIixcbiAgICBcIk3DoW5lc292byBuw6FtZXN0aWVcIixcbiAgICBcIk1hcmnDoW5za2FcIixcbiAgICBcIk1hcmllIEN1cmllLVNrbG9kb3dzXCIsXG4gICAgXCJNw6FyaWUgTWVkdmXEj292ZWpcIixcbiAgICBcIk1hcmtvdmFcIixcbiAgICBcIk1hcsOzdHlob1wiLFxuICAgIFwiTWFydMOha292ZWpcIixcbiAgICBcIk1hcnRpbsSNZWtvdmFcIixcbiAgICBcIk1hcnRpbsSNZWtvdmFcIixcbiAgICBcIk1hcnRpbmVuZ292YVwiLFxuICAgIFwiTWFydGluc2vDoVwiLFxuICAgIFwiTWF0ZWphIEJlbGFcIixcbiAgICBcIk1hdGVqa292YVwiLFxuICAgIFwiTWF0acSNbsOhXCIsXG4gICAgXCJNYXTDusWhb3ZhXCIsXG4gICAgXCJNZWRlbsOhXCIsXG4gICAgXCJNZWR6aWVya2FcIixcbiAgICBcIk1lZHppbGFib3JlY2vDoVwiLFxuICAgIFwiTWVybG90b3bDoVwiLFxuICAgIFwiTWVzYcSNbsOhXCIsXG4gICAgXCJNZXN0c2vDoVwiLFxuICAgIFwiTWV0ZW9yb3bDoVwiLFxuICAgIFwiTWV0b2RvdmFcIixcbiAgICBcIk1pY2tpZXdpY3pvdmFcIixcbiAgICBcIk1pZXJvdsOhXCIsXG4gICAgXCJNaWNoYWxza8OhXCIsXG4gICAgXCJNaWtvdsOtbmlob1wiLFxuICAgIFwiTWlrdWzDocWhc2thXCIsXG4gICAgXCJNaWxldGnEjW92YVwiLFxuICAgIFwiTWlsZXRpxI1vdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1saWVrw6FyZW5za8OhXCIsXG4gICAgXCJNbHluYXJvdmnEjW92YVwiLFxuICAgIFwiTWx5bnNrw6EgZG9saW5hXCIsXG4gICAgXCJNbHluc2vDoSBkb2xpbmFcIixcbiAgICBcIk1seW5za8OhIGRvbGluYVwiLFxuICAgIFwiTWx5bnNrw6kgbHVoeVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnlcIixcbiAgICBcIk1vZHJhbnNrw6FcIixcbiAgICBcIk1vam3DrXJvdmFcIixcbiAgICBcIk1va3LDocWIIHrDoWhvblwiLFxuICAgIFwiTW9rcm9ow6Fqc2thIGNlc3RhXCIsXG4gICAgXCJNb2xkYXZza8OhXCIsXG4gICAgXCJNb2xlY292YVwiLFxuICAgIFwiTW9yYXZza8OhXCIsXG4gICAgXCJNb3Nrb3Zza8OhXCIsXG4gICAgXCJNb3N0IFNOUFwiLFxuICAgIFwiTW9zdG92w6FcIixcbiAgICBcIk1vxaFvdnNrw6lob1wiLFxuICAgIFwiTW90w71saWFcIixcbiAgICBcIk1veXplc292YVwiLFxuICAgIFwiTW96YXJ0b3ZhXCIsXG4gICAgXCJNcmF6aWFyZW5za8OhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWNob3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiTXVyZ2HFoW92YVwiLFxuICAgIFwiTXXFoWvDoXRvdsOhXCIsXG4gICAgXCJNdcWhdG92w6FcIixcbiAgICBcIk3Dunplam7DoVwiLFxuICAgIFwiTXlqYXZza8OhXCIsXG4gICAgXCJNw710bmFcIixcbiAgICBcIk3DvXRuYVwiLFxuICAgIFwiTmEgQmFyw6Fua3VcIixcbiAgICBcIk5hIEJyZXppbsOhY2hcIixcbiAgICBcIk5hIEhyZWJpZW5rdVwiLFxuICAgIFwiTmEgS2FsdsOhcmlpXCIsXG4gICAgXCJOYSBLYW1ww6Fya2VcIixcbiAgICBcIk5hIGtvcGNpXCIsXG4gICAgXCJOYSBrcmnFvm92YXRrw6FjaFwiLFxuICAgIFwiTmEgbMOhbm9jaFwiLFxuICAgIFwiTmEgcGHFoWlcIixcbiAgICBcIk5hIHBpZXNrdVwiLFxuICAgIFwiTmEgUml2acOpcmVcIixcbiAgICBcIk5hIFNpdGluZVwiLFxuICAgIFwiTmEgU2xhdsOtbmVcIixcbiAgICBcIk5hIHN0csOhbmlcIixcbiAgICBcIk5hIMWgdHlyaWRzaWF0a3VcIixcbiAgICBcIk5hIMO6dnJhdGlcIixcbiAgICBcIk5hIHbFlcWha3VcIixcbiAgICBcIk5hIHbDvXNsbsOtXCIsXG4gICAgXCJOw6FixJtsa292YVwiLFxuICAgIFwiTsOhYnJlxb5pZSBhcm0uIGdlbi4gTFwiLFxuICAgIFwiTsOhYnJlxb5uw6FcIixcbiAgICBcIk5hZCBEdW5ham9tXCIsXG4gICAgXCJOYWQgbG9tb21cIixcbiAgICBcIk5hZCBsw7rEjWthbWlcIixcbiAgICBcIk5hZCBsw7rEjWthbWlcIixcbiAgICBcIk5hZCBvc3Ryb3ZvbVwiLFxuICAgIFwiTmFkIFNpaG/FpW91XCIsXG4gICAgXCJOw6FtZXN0aWUgMS4gbcOhamFcIixcbiAgICBcIk7DoW1lc3RpZSBBbGV4YW5kcmEgRFwiLFxuICAgIFwiTsOhbWVzdGllIEJpZWx5IGtyw63FvlwiLFxuICAgIFwiTsOhbWVzdGllIEhyYW5pxI1pYXJvdlwiLFxuICAgIFwiTsOhbWVzdGllIErDoW5hIFBhdmxhXCIsXG4gICAgXCJOw6FtZXN0aWUgxL11ZG92w610YSDFoHRcIixcbiAgICBcIk7DoW1lc3RpZSBNYXJ0aW5hIEJlblwiLFxuICAgIFwiTsOhbS4gTS5SLsWgdGVmw6FuaWthXCIsXG4gICAgXCJOw6FtZXN0aWUgc2xvYm9keVwiLFxuICAgIFwiTsOhbWVzdGllIHNsb2JvZHlcIixcbiAgICBcIk7DoW1lc3RpZSBTTlBcIixcbiAgICBcIk7DoW1lc3RpZSBTTlBcIixcbiAgICBcIk7DoW1lc3RpZSBzdi4gRnJhbnRpxaFcIixcbiAgICBcIk5hcmNpc292w6FcIixcbiAgICBcIk5lZGJhbG92YVwiLFxuICAgIFwiTmVrcmFzb3ZvdmFcIixcbiAgICBcIk5lcm9uZXRvdsOhXCIsXG4gICAgXCJOZXJ1ZG92YVwiLFxuICAgIFwiTmV2w6Rkem92w6FcIixcbiAgICBcIk5lesOhYnVka292w6FcIixcbiAgICBcIk5pxaVvdsOhXCIsXG4gICAgXCJOaXRyaWFuc2thXCIsXG4gICAgXCJOw63FvmlubsOhXCIsXG4gICAgXCJOb2JlbG92YVwiLFxuICAgIFwiTm9iZWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJOb3bDoVwiLFxuICAgIFwiTm92w6EgUm/FvsWIYXZza8OhXCIsXG4gICAgXCJOb3ZhY2vDqWhvXCIsXG4gICAgXCJOb3bDqSBww6FsZW5pc2tvXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJSVwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgSUlJXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJVlwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgVlwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgVklcIixcbiAgICBcIk5vdsOpIHrDoWhyYWR5IFZJSVwiLFxuICAgIFwiTm92aW7DoXJza2FcIixcbiAgICBcIk5vdm9iYW5za8OhXCIsXG4gICAgXCJOb3ZvaHJhZHNrw6FcIixcbiAgICBcIk5vdm9zdmV0c2vDoVwiLFxuICAgIFwiTm92b3N2ZXRza8OhXCIsXG4gICAgXCJOb3Zvc3ZldHNrw6FcIixcbiAgICBcIk9iZcW+bsOhXCIsXG4gICAgXCJPYmNob2Ruw6FcIixcbiAgICBcIk/EjW92c2vDoVwiLFxuICAgIFwiT2Rib2rDoXJvdlwiLFxuICAgIFwiT2Rib3LDoXJza2FcIixcbiAgICBcIk9kYm9yw6Fyc2tlIG7DoW1lc3RpZVwiLFxuICAgIFwiT2Rib3LDoXJza2UgbsOhbWVzdGllXCIsXG4gICAgXCJPaG5pY292w6FcIixcbiAgICBcIk9rw6FuaWtvdmFcIixcbiAgICBcIk9rcnXFvm7DoVwiLFxuICAgIFwiT2xicmFjaHRvdmFcIixcbiAgICBcIk9sZWprw6Fyc2thXCIsXG4gICAgXCJPbmRhdnNrw6FcIixcbiAgICBcIk9uZHJlam92b3ZhXCIsXG4gICAgXCJPcmF2c2vDoVwiLFxuICAgIFwiT3JlY2hvdsOhIGNlc3RhXCIsXG4gICAgXCJPcmVjaG92w70gcmFkXCIsXG4gICAgXCJPcmllxaFrb3bDoVwiLFxuICAgIFwiT3JtaXNvdmFcIixcbiAgICBcIk9zYWRuw6FcIixcbiAgICBcIk9zdHJhdnNrw6FcIixcbiAgICBcIk9zdHJlZGtvdsOhXCIsXG4gICAgXCJPc3Vza8OpaG9cIixcbiAgICBcIk9zdmV0b3bDoVwiLFxuICAgIFwiT3RvbmVsc2vDoVwiLFxuICAgIFwiT3ZydcSNc2vDoVwiLFxuICAgIFwiT3ZzacWhdHNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJQYWrFoXTDum5za2FcIixcbiAgICBcIlBhbGFja8OpaG9cIixcbiAgICBcIlBhbMOhcmlrb3ZhXCIsXG4gICAgXCJQYWzDoXJpa292YVwiLFxuICAgIFwiUMOhbGF2c2vDoVwiLFxuICAgIFwiUGFsaXPDoWR5XCIsXG4gICAgXCJQYWxpc8OhZHlcIixcbiAgICBcIlBhbGlzw6FkeVwiLFxuICAgIFwiUGFsa292acSNb3ZhXCIsXG4gICAgXCJQYW5lbnNrw6FcIixcbiAgICBcIlBhbmvDumNob3ZhXCIsXG4gICAgXCJQYW7Ds25za2EgY2VzdGFcIixcbiAgICBcIlBhbnNrw6FcIixcbiAgICBcIlBhcMOhbmtvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJQYXByYcSPb3bDoVwiLFxuICAgIFwiUMOhcmnEjWtvdmFcIixcbiAgICBcIlBhcmtvdsOhXCIsXG4gICAgXCJQYXJ0aXrDoW5za2FcIixcbiAgICBcIlBhc2llbmt5XCIsXG4gICAgXCJQYXVsw61ueWhvXCIsXG4gICAgXCJQYXZsb3ZpxI1vdmFcIixcbiAgICBcIlBhdmxvdm92YVwiLFxuICAgIFwiUGF2bG92c2vDoVwiLFxuICAgIFwiUGHFvmlja8OpaG9cIixcbiAgICBcIlBhxb7DrXRrb3bDoVwiLFxuICAgIFwiUGXEjW5pYW5za2FcIixcbiAgICBcIlBlcm5lY2vDoVwiLFxuICAgIFwiUGVzdG92YXRlxL5za8OhXCIsXG4gICAgXCJQZXRlcnNrw6FcIixcbiAgICBcIlBldHp2YWxvdmFcIixcbiAgICBcIlBlemluc2vDoVwiLFxuICAgIFwiUGllc2/EjW7DoVwiLFxuICAgIFwiUGllxaHFpWFuc2vDoVwiLFxuICAgIFwiUGlmZmxvdmFcIixcbiAgICBcIlBpbMOhcmlrb3ZhXCIsXG4gICAgXCJQaW9uaWVyc2thXCIsXG4gICAgXCJQaXZvxYhrb3bDoVwiLFxuICAgIFwiUGxhbmNrb3ZhXCIsXG4gICAgXCJQbGFuw6l0XCIsXG4gICAgXCJQbMOhdGVuw61ja2FcIixcbiAgICBcIlBsdWhvdsOhXCIsXG4gICAgXCJQbHluw6FyZW5za8OhXCIsXG4gICAgXCJQbHplbnNrw6FcIixcbiAgICBcIlBvYnJlxb5uw6FcIixcbiAgICBcIlBvZCBCw7RyaWtvbVwiLFxuICAgIFwiUG9kIEthbHbDoXJpb3VcIixcbiAgICBcIlBvZCBsZXNvbVwiLFxuICAgIFwiUG9kIFJvdm5pY2FtaVwiLFxuICAgIFwiUG9kIHZpbmljYW1pXCIsXG4gICAgXCJQb2Rob3Jza8OpaG9cIixcbiAgICBcIlBvZGphdm9yaW5za2VqXCIsXG4gICAgXCJQb2RsdcSNaW5za8OpaG9cIixcbiAgICBcIlBvZG5pa292w6FcIixcbiAgICBcIlBvZHRhdHJhbnNrw6lob1wiLFxuICAgIFwiUG9ocm9uc2vDoVwiLFxuICAgIFwiUG9sw6FybmFcIixcbiAgICBcIlBvbG9yZWNrw6lob1wiLFxuICAgIFwiUG/Evm7DoVwiLFxuICAgIFwiUG/EvnNrw6FcIixcbiAgICBcIlBvbHVkbsOta292w6FcIixcbiAgICBcIlBvcnVic2vDqWhvXCIsXG4gICAgXCJQb8WhdG92w6FcIixcbiAgICBcIlBvdmHFvnNrw6FcIixcbiAgICBcIlBvdnJhem7DrWNrYVwiLFxuICAgIFwiUG92cmF6bsOtY2thXCIsXG4gICAgXCJQcmHFvnNrw6FcIixcbiAgICBcIlByZWRzdGFuacSNbsOpIG7DoW1lc3RpXCIsXG4gICAgXCJQcmVwb8WhdHNrw6FcIixcbiAgICBcIlByZcWhZXJub3ZhXCIsXG4gICAgXCJQcmXFoW92c2vDoVwiLFxuICAgIFwiUHJlxaFvdnNrw6FcIixcbiAgICBcIlByZcWhb3Zza8OhXCIsXG4gICAgXCJQcmkgQmllbG9tIGtyw63FvmlcIixcbiAgICBcIlByaSBkdm9yZVwiLFxuICAgIFwiUHJpIER5bmFtaXRrZVwiLFxuICAgIFwiUHJpIEhhYsOhbnNrb20gbWx5bmVcIixcbiAgICBcIlByaSBocmFkbmVqIHN0dWRuaVwiLFxuICAgIFwiUHJpIHNlxI1pXCIsXG4gICAgXCJQcmkgU3RhcmVqIFByYWNow6FybmlcIixcbiAgICBcIlByaSBTdGFyb20gaMOhamlcIixcbiAgICBcIlByaSBTdGFyb20gTcO9dGVcIixcbiAgICBcIlByaSBzdHJlbG5pY2lcIixcbiAgICBcIlByaSBTdWNob20gbWx5bmVcIixcbiAgICBcIlByaSB6dm9uaWNpXCIsXG4gICAgXCJQcmliaW5vdmFcIixcbiAgICBcIlByaWJpbm92YVwiLFxuICAgIFwiUHJpYmlub3ZhXCIsXG4gICAgXCJQcmliacWhb3ZhXCIsXG4gICAgXCJQcmlieWxpbnNrw6FcIixcbiAgICBcIlByaWXEjW5hXCIsXG4gICAgXCJQcmlla29weVwiLFxuICAgIFwiUHJpZW15c2VsbsOhXCIsXG4gICAgXCJQcmllbXlzZWxuw6FcIixcbiAgICBcIlByaWV2b3pza8OhXCIsXG4gICAgXCJQcmlldm96c2vDoVwiLFxuICAgIFwiUHJpZXZvenNrw6FcIixcbiAgICBcIlByw61rb3BvdmFcIixcbiAgICBcIlByaW1hY2nDoWxuZSBuw6FtZXN0aWVcIixcbiAgICBcIlByw61zdGF2XCIsXG4gICAgXCJQcsOtc3Rhdm7DoVwiLFxuICAgIFwiUHJva29maWV2b3ZhXCIsXG4gICAgXCJQcm9rb3BhIFZlxL5rw6lob1wiLFxuICAgIFwiUHJva29wb3ZhXCIsXG4gICAgXCJQcsO6ZG92w6FcIixcbiAgICBcIlBydm9zaWVua292w6FcIixcbiAgICBcIlDDunBhdm92w6FcIixcbiAgICBcIlB1c3TDoVwiLFxuICAgIFwiUHXFoWtpbm92YVwiLFxuICAgIFwiUmHEjWlhbnNrYVwiLFxuICAgIFwiUmHEjWlhbnNrYVwiLFxuICAgIFwiUmHEjWlhbnNrZSBtw710b1wiLFxuICAgIFwiUmFkYXJvdsOhXCIsXG4gICAgXCJSw6FkaW92w6FcIixcbiAgICBcIlJhZGxpbnNrw6lob1wiLFxuICAgIFwiUmFkbmnEjW7DoVwiLFxuICAgIFwiUmFkbmnEjW7DqSBuw6FtZXN0aWVcIixcbiAgICBcIlJhZHZhbnNrw6FcIixcbiAgICBcIlJhanNrw6FcIixcbiAgICBcIlJha2V0b3bDoVwiLFxuICAgIFwiUsOha29zb3bDoVwiLFxuICAgIFwiUmFzdGlzbGF2b3ZhXCIsXG4gICAgXCJSw6F6dXNvdm8gbsOhYnJlxb5pZVwiLFxuICAgIFwiUmVwbsOhXCIsXG4gICAgXCJSZcWhZXRrb3ZhXCIsXG4gICAgXCJSZXZvbHXEjW7DoVwiLFxuICAgIFwiUsOpdm92w6FcIixcbiAgICBcIlJldsO6Y2thXCIsXG4gICAgXCJSZXplZG92w6FcIixcbiAgICBcIlJpYXphbnNrw6FcIixcbiAgICBcIlJpYXphbnNrw6FcIixcbiAgICBcIlJpYmF5b3bDoVwiLFxuICAgIFwiUmllxI1uYVwiLFxuICAgIFwiUmlnZWxlaG9cIixcbiAgICBcIlLDrXpsaW5nb3bDoVwiLFxuICAgIFwiUml6bmVyb3ZhXCIsXG4gICAgXCJSb2JvdG7DrWNrYVwiLFxuICAgIFwiUm9tYW5vdmFcIixcbiAgICBcIlLDtm50Z2Vub3ZhXCIsXG4gICAgXCJSb3Nuw6FcIixcbiAgICBcIlJvdm7DoVwiLFxuICAgIFwiUm92bmlhbmtvdmFcIixcbiAgICBcIlJvdm7DrWtvdsOhXCIsXG4gICAgXCJSb3ptYXLDrW5vdsOhXCIsXG4gICAgXCJSb8W+xYhhdnNrw6FcIixcbiAgICBcIlJvxb7FiGF2c2vDoVwiLFxuICAgIFwiUm/FvsWIYXZza8OhXCIsXG4gICAgXCJSdWJpbnN0ZWlub3ZhXCIsXG4gICAgXCJSdWRuYXlvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJSdW1hbsSNZWtvdsOhXCIsXG4gICAgXCJSdXNvdnNrw6EgY2VzdGFcIixcbiAgICBcIlJ1xb5pxI1rb3bDoVwiLFxuICAgIFwiUnXFvmlub3Zza8OhXCIsXG4gICAgXCJSdcW+aW5vdnNrw6FcIixcbiAgICBcIlJ1xb5pbm92c2vDoVwiLFxuICAgIFwiUnXFvm9tYmVyc2vDoVwiLFxuICAgIFwiUnXFvm92w6EgZG9saW5hXCIsXG4gICAgXCJSdcW+b3bDoSBkb2xpbmFcIixcbiAgICBcIlJ5YsOhcnNrYSBicsOhbmFcIixcbiAgICBcIlJ5Ym7DqSBuw6FtZXN0aWVcIixcbiAgICBcIlLDvWR6aWtvdsOhXCIsXG4gICAgXCJTYWJpbm92c2vDoVwiLFxuICAgIFwiU2FiaW5vdnNrw6FcIixcbiAgICBcIlNhZCBKYW5rYSBLcsOhxL5hXCIsXG4gICAgXCJTYWRvdsOhXCIsXG4gICAgXCJTYXJ0b3Jpc292YVwiLFxuICAgIFwiU2FzaW5rb3ZhXCIsXG4gICAgXCJTZWJlcsOtbmlob1wiLFxuICAgIFwiU2XEjW92c2vDoVwiLFxuICAgIFwiU2VkbMOhcnNrYVwiLFxuICAgIFwiU2VkbW9rcsOhc2tvdsOhXCIsXG4gICAgXCJTZWduZXJvdmFcIixcbiAgICBcIlNla3Vsc2vDoVwiLFxuICAgIFwiU2VtaWFub3ZhXCIsXG4gICAgXCJTZW5pY2vDoVwiLFxuICAgIFwiU2VubsOhXCIsXG4gICAgXCJTY2hpbGxlcm92YVwiLFxuICAgIFwiU2Nob2R5IHByaSBzdGFyZWogdm9cIixcbiAgICBcIlNpYsOtcnNrYVwiLFxuICAgIFwiU2llbmtpZXdpY3pvdmFcIixcbiAgICBcIlNpbHbDoW5za2FcIixcbiAgICBcIlNpbm9rdmV0bsOhXCIsXG4gICAgXCJTa2FsaWNrw6EgY2VzdGFcIixcbiAgICBcIlNrYWxuw6FcIixcbiAgICBcIlNrbGVuw6Fyb3ZhXCIsXG4gICAgXCJTa2xlbsOhcnNrYVwiLFxuICAgIFwiU2zDoWRrb3ZpxI1vdmFcIixcbiAgICBcIlNsYWRvdsOhXCIsXG4gICAgXCJTbMOhdmnEjWllIMO6ZG9saWVcIixcbiAgICBcIlNsYXbDrW5cIixcbiAgICBcIlNsZXDDoVwiLFxuICAgIFwiU2xpYcSNc2thXCIsXG4gICAgXCJTbGllenNrYVwiLFxuICAgIFwiU2xpdmtvdsOhXCIsXG4gICAgXCJTbG5lxI1uw6FcIixcbiAgICBcIlNsb3ZhbnNrw6FcIixcbiAgICBcIlNsb3ZpbnNrw6FcIixcbiAgICBcIlNsb3ZuYWZ0c2vDoVwiLFxuICAgIFwiU2xvd2Fja8OpaG9cIixcbiAgICBcIlNtZXRhbm92YVwiLFxuICAgIFwiU21pa292YVwiLFxuICAgIFwiU21vbGVuaWNrw6FcIixcbiAgICBcIlNtb2xuw61ja2FcIixcbiAgICBcIlNtcmXEjWlhbnNrYVwiLFxuICAgIFwiU29mZXJvdmUgc2Nob2R5XCIsXG4gICAgXCJTb2Now6HFiG92YVwiLFxuICAgIFwiU29rb2xza8OhXCIsXG4gICAgXCJTb2xpdmFyc2vDoVwiLFxuICAgIFwiU29sb8Whbmlja8OhXCIsXG4gICAgXCJTb21vbGlja8OpaG9cIixcbiAgICBcIlNvbW9saWNrw6lob1wiLFxuICAgIFwiU29zbm92w6FcIixcbiAgICBcIlNwacWhc2vDoVwiLFxuICAgIFwiU3Bvam7DoVwiLFxuICAgIFwiU3BvbG/EjWVuc2vDoVwiLFxuICAgIFwiU3B1dG5pa292w6FcIixcbiAgICBcIlNyZXpuZXZza8OpaG9cIixcbiAgICBcIlNybsSNaWFcIixcbiAgICBcIlN0YWNoYW5vdnNrw6FcIixcbiAgICBcIlN0w6FsaWNvdsOhXCIsXG4gICAgXCJTdGFuacSNbsOhXCIsXG4gICAgXCJTdGFyw6EgxIxlcm5pY292w6FcIixcbiAgICBcIlN0YXLDoSBJdsOhbnNrYSBjZXN0YVwiLFxuICAgIFwiU3RhcsOhIFByaWV2b3pza8OhXCIsXG4gICAgXCJTdGFyw6EgVmFqbm9yc2vDoVwiLFxuICAgIFwiU3RhcsOhIHZpbsOhcnNrYVwiLFxuICAgIFwiU3RhcsOpIEdydW50eVwiLFxuICAgIFwiU3RhcsOpIGlocmlza29cIixcbiAgICBcIlN0YXLDqSB6w6FocmFkeVwiLFxuICAgIFwiU3RhcmhyYWRza8OhXCIsXG4gICAgXCJTdGFyb2jDoWpza2FcIixcbiAgICBcIlN0YXJvbWVzdHNrw6FcIixcbiAgICBcIlN0YXJvdHVyc2vDvSBjaG9kbsOta1wiLFxuICAgIFwiU3Rhdml0ZcS+c2vDoVwiLFxuICAgIFwiU3RvZG9sb3ZhXCIsXG4gICAgXCJTdG9rbGFzb3bDoVwiLFxuICAgIFwiU3RyYWtvdmFcIixcbiAgICBcIlN0csOhxb5uaWNrw6FcIixcbiAgICBcIlN0csOhxb5ueSBkb21cIixcbiAgICBcIlN0cmXEjW5pYW5za2FcIixcbiAgICBcIlN0cmVkbsOhXCIsXG4gICAgXCJTdHJlbGVja8OhXCIsXG4gICAgXCJTdHJtw6EgY2VzdGFcIixcbiAgICBcIlN0cm9qbsOtY2thXCIsXG4gICAgXCJTdHJvcGtvdnNrw6FcIixcbiAgICBcIlN0cnVrb3bDoVwiLFxuICAgIFwiU3R1ZGVuw6FcIixcbiAgICBcIlN0dWhvdsOhXCIsXG4gICAgXCJTw7piZcW+bsOhXCIsXG4gICAgXCJTw7podmV6ZG7DoVwiLFxuICAgIFwiU3VjaMOpIG3DvXRvXCIsXG4gICAgXCJTdWNob2hyYWRza8OhXCIsXG4gICAgXCJTw7prZW5uw61ja2FcIixcbiAgICBcIlPDusS+b3Zza8OhXCIsXG4gICAgXCJTdW1iYWxvdmFcIixcbiAgICBcIlPDum1yYcSNbsOhXCIsXG4gICAgXCJTw7rFpWHFvm7DoVwiLFxuICAgIFwiU3bDpHTDqWhvIFZpbmNlbnRhXCIsXG4gICAgXCJTdsOkdG9wbHVrb3ZhXCIsXG4gICAgXCJTdsOkdG9wbHVrb3ZhXCIsXG4gICAgXCJTdsOkdG92b2p0ZcWhc2vDoVwiLFxuICAgIFwiU3ZldGzDoVwiLFxuICAgIFwiU3bDrWJvdsOhXCIsXG4gICAgXCJTdmlkbsOtY2thXCIsXG4gICAgXCJTdm9yYWRvdmFcIixcbiAgICBcIlN2csSNaWFcIixcbiAgICBcIlN5c2xpYVwiLFxuICAgIFwixaBhZsOhcmlrb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaBhZsOhcmlrb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaBhZnLDoW5vdsOhXCIsXG4gICAgXCLFoGFnw6F0b3ZhXCIsXG4gICAgXCLFoGFsdmlvdsOhXCIsXG4gICAgXCLFoGFuY292w6FcIixcbiAgICBcIsWgYW5jb3bDoVwiLFxuICAgIFwixaBhbmNvdsOhXCIsXG4gICAgXCLFoGFuY292w6FcIixcbiAgICBcIsWgw6FuZG9yb3ZhXCIsXG4gICAgXCLFoGFyacWhc2vDoVwiLFxuICAgIFwixaDDocWhb3Zza8OhXCIsXG4gICAgXCLFoGHFoXTDrW5za2FcIixcbiAgICBcIsWgZXbEjWVua292YVwiLFxuICAgIFwixaBpbnRhdnNrw6FcIixcbiAgICBcIsWgw61wa292w6FcIixcbiAgICBcIsWga2FybmljbG92YVwiLFxuICAgIFwixaBrb2xza8OhXCIsXG4gICAgXCLFoGtvdnLDoW7EjWlhXCIsXG4gICAgXCLFoGt1bHTDqXR5aG9cIixcbiAgICBcIsWgb2x0w6lzb3ZlalwiLFxuICAgIFwixaBwaWVzem92YVwiLFxuICAgIFwixaBwaXTDoWxza2FcIixcbiAgICBcIsWgcG9ydG92w6FcIixcbiAgICBcIsWgcm9iw6Fyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaDFpWFzdG7DoVwiLFxuICAgIFwixaB0ZWRyw6FcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmYW5vdmnEjW92YVwiLFxuICAgIFwixaB0ZWZ1bmtvdmFcIixcbiAgICBcIsWgdGV0aW5vdmFcIixcbiAgICBcIsWgdGlhdm5pY2vDoVwiLFxuICAgIFwixaB0w7pyb3ZhXCIsXG4gICAgXCLFoHR5bmRsb3ZhXCIsXG4gICAgXCLFoHVsZWtvdmFcIixcbiAgICBcIsWgdWxla292YVwiLFxuICAgIFwixaB1bGVrb3ZhXCIsXG4gICAgXCLFoHVtYXZza8OhXCIsXG4gICAgXCLFoHXFiGF2Y292YVwiLFxuICAgIFwixaB1c3Rla292YVwiLFxuICAgIFwixaB2YWJpbnNrw6lob1wiLFxuICAgIFwiVGFiYWtvdsOhXCIsXG4gICAgXCJUYWJsaWNvdmFcIixcbiAgICBcIlTDoWJvcnNrw6FcIixcbiAgICBcIlRham92c2vDqWhvXCIsXG4gICAgXCJUYWxsZXJvdmFcIixcbiAgICBcIlRlaGVsbsOhXCIsXG4gICAgXCJUZWNobmlja8OhXCIsXG4gICAgXCJUZWtvdnNrw6FcIixcbiAgICBcIlRlbG9jdmnEjW7DoVwiLFxuICAgIFwiVGVtYXTDrW5za2FcIixcbiAgICBcIlRlcGxpY2vDoVwiLFxuICAgIFwiVGVyY2hvdnNrw6FcIixcbiAgICBcIlRlc2xvdmFcIixcbiAgICBcIlRldG1heWVyb3ZhXCIsXG4gICAgXCJUaHVyem92YVwiLFxuICAgIFwiVGljaMOhXCIsXG4gICAgXCJUaWxnbmVyb3ZhXCIsXG4gICAgXCJUaW1yYXZpbmFcIixcbiAgICBcIlRvYnJ1Y2vDoVwiLFxuICAgIFwiVG9rYWrDrWNrYVwiLFxuICAgIFwiVG9sc3TDqWhvXCIsXG4gICAgXCJUb23DoW5rb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvbcOhxaFpa292YVwiLFxuICAgIFwiVG9tw6HFoWlrb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvbcOhxaFpa292YVwiLFxuICAgIFwiVG9wb8S+xI1pYW5za2FcIixcbiAgICBcIlRvcG/Evm92w6FcIixcbiAgICBcIlRvdsOhcmVuc2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlbsSNaWFuc2thXCIsXG4gICAgXCJUcmVza2/FiG92YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6EgY2VzdGFcIixcbiAgICBcIlRybmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6EgY2VzdGFcIixcbiAgICBcIlRybmF2c2vDqSBtw710b1wiLFxuICAgIFwiVMWVxYhvdsOhXCIsXG4gICAgXCJUcm9qZG9teVwiLFxuICAgIFwiVHXEjWtvdmFcIixcbiAgICBcIlR1cG9sZXZvdmFcIixcbiAgICBcIlR1cmLDrW5vdmFcIixcbiAgICBcIlR1csSNaWFuc2thXCIsXG4gICAgXCJUdXJuaWFuc2thXCIsXG4gICAgXCJUdmFyb8W+a292YVwiLFxuICAgIFwiVHlsb3ZhXCIsXG4gICAgXCJUeXLFoW92byBuw6FicmXFvmllXCIsXG4gICAgXCLDmmRlcm7DrWNrYVwiLFxuICAgIFwiw5pkb2xuw6FcIixcbiAgICBcIlVob3Jrb3bDoVwiLFxuICAgIFwiVWtyYWppbnNrw6FcIixcbiAgICBcIlVsaWNhIDI5LiBhdWd1c3RhXCIsXG4gICAgXCJVbGljYSAyOS4gYXVndXN0YVwiLFxuICAgIFwiVWxpY2EgMjkuIGF1Z3VzdGFcIixcbiAgICBcIlVsaWNhIDI5LiBhdWd1c3RhXCIsXG4gICAgXCJVbGljYSBJbXJpY2hhIEthcnZhxaFcIixcbiAgICBcIlVsaWNhIEpvemVmYSBLcsOzbmVyYVwiLFxuICAgIFwiVWxpY2EgVmlrdG9yYSBUZWdlbGhcIixcbiAgICBcIsOacHJrb3ZhXCIsXG4gICAgXCLDmnJhZG7DrWNrYVwiLFxuICAgIFwiVXLDoW5vdsOhXCIsXG4gICAgXCJVcmLDoW5rb3ZhXCIsXG4gICAgXCJVcnPDrW55aG9cIixcbiAgICBcIlVyxaF1bMOtbnNrYVwiLFxuICAgIFwiw5p6a2FcIixcbiAgICBcIlYgesOhaHJhZMOhY2hcIixcbiAgICBcIlZhamFuc2vDqWhvIG7DoWJyZcW+aWVcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZhbGHFoXNrw6FcIixcbiAgICBcIlZhbGNow6Fyc2thXCIsXG4gICAgXCJWYW5zb3ZlalwiLFxuICAgIFwiVsOhcGVubsOhXCIsXG4gICAgXCJWYXLDrW5za2FcIixcbiAgICBcIlZhcsWhYXZza8OhXCIsXG4gICAgXCJWYXLFoWF2c2vDoVwiLFxuICAgIFwiVmF2aWxvdm92YVwiLFxuICAgIFwiVmF2csOtbm92YVwiLFxuICAgIFwiVmF6b3ZvdmFcIixcbiAgICBcIlbEjWVsw6Fyc2thXCIsXG4gICAgXCJWZWxlaHJhZHNrw6FcIixcbiAgICBcIlZlbHRsw61uc2thXCIsXG4gICAgXCJWZW50w7pyc2thXCIsXG4gICAgXCJWZXRlcm7DoVwiLFxuICAgIFwiVmV0ZXJuaWNvdsOhXCIsXG4gICAgXCJWZXR2b3bDoVwiLFxuICAgIFwiVmllZGVuc2vDoSBjZXN0YVwiLFxuICAgIFwiVmllZGVuc2vDoSBjZXN0YVwiLFxuICAgIFwiVmlldG5hbXNrw6FcIixcbiAgICBcIlbDrWfEvmHFoXNrw6FcIixcbiAgICBcIlZpaG9ybGF0c2vDoVwiLFxuICAgIFwiVmlrdG9yw61ub3ZhXCIsXG4gICAgXCJWaWxvdsOhXCIsXG4gICAgXCJWaW5jZW50YSBIbG/Fvm7DrWthXCIsXG4gICAgXCJWw61ubmFcIixcbiAgICBcIlZsYXN0ZW5lY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIlZsxI1rb3ZhXCIsXG4gICAgXCJWbMSNa292YVwiLFxuICAgIFwiVmzEjWtvdmFcIixcbiAgICBcIlZvZG7DvSB2cmNoXCIsXG4gICAgXCJWb3RydWJvdmFcIixcbiAgICBcIlZyw6FiZcS+c2vDoVwiLFxuICAgIFwiVnJha3Vuc2vDoSBjZXN0YVwiLFxuICAgIFwiVnJhbm92c2vDoVwiLFxuICAgIFwiVnJldGVub3bDoVwiLFxuICAgIFwiVnJjaG7DoVwiLFxuICAgIFwiVnLDunRvY2vDoVwiLFxuICAgIFwiVnlobGlhZGthXCIsXG4gICAgXCJWeWhuaWFuc2thIGNlc3RhXCIsXG4gICAgXCJWeXNva8OhXCIsXG4gICAgXCJWecWhZWhyYWRza8OhXCIsXG4gICAgXCJWecWhbsOhXCIsXG4gICAgXCJXYXR0b3ZhXCIsXG4gICAgXCJXaWxzb25vdmFcIixcbiAgICBcIldvbGtyb3ZhXCIsXG4gICAgXCJaYSBLYXPDoXLFiG91XCIsXG4gICAgXCJaYSBzb2tvbG92xYhvdVwiLFxuICAgIFwiWmEgU3Rhbmljb3VcIixcbiAgICBcIlphIHRlaGVsxYhvdVwiLFxuICAgIFwiWsOhYm9yc2vDqWhvXCIsXG4gICAgXCJaYWR1bmFqc2vDoSBjZXN0YVwiLFxuICAgIFwiWsOhaG9yw6Fja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyZWJza8OhXCIsXG4gICAgXCJaw6FocmVic2vDoVwiLFxuICAgIFwiWsOhbHXFvmlja8OhXCIsXG4gICAgXCJaw6Ftb2Nrw6FcIixcbiAgICBcIlrDoW1vY2vDqSBzY2hvZHlcIixcbiAgICBcIlrDoW1vxI1uw61ja2FcIixcbiAgICBcIlrDoXBhZG7DoVwiLFxuICAgIFwiWsOhcGFkbsO9IHJhZFwiLFxuICAgIFwiWsOhcG9yb8W+c2vDoVwiLFxuICAgIFwiWsOhdGnFoWllXCIsXG4gICAgXCJaw6F2b2Ruw61rb3ZhXCIsXG4gICAgXCJaZWxlbsOhXCIsXG4gICAgXCJaZWxpbsOhcnNrYVwiLFxuICAgIFwiWmltbsOhXCIsXG4gICAgXCJabGF0w6kgcGllc2t5XCIsXG4gICAgXCJabGF0w6kgc2Nob2R5XCIsXG4gICAgXCJabmlldnNrYVwiLFxuICAgIFwiWm9ob3Jza8OhXCIsXG4gICAgXCJab2Nob3ZhXCIsXG4gICAgXCJacmluc2vDqWhvXCIsXG4gICAgXCJadm9sZW5za8OhXCIsXG4gICAgXCLFvWFiw60gbWFqZXJcIixcbiAgICBcIsW9YWJvdG92YVwiLFxuICAgIFwixb1laHJpYW5za2FcIixcbiAgICBcIsW9ZWxlem7DoVwiLFxuICAgIFwixb1lbGV6bmnEjWlhcnNrYVwiLFxuICAgIFwixb1lbGxvdmFcIixcbiAgICBcIsW9aWFyc2thXCIsXG4gICAgXCLFvWlkb3Zza8OhXCIsXG4gICAgXCLFvWlsaW5za8OhXCIsXG4gICAgXCLFvWlsaW5za8OhXCIsXG4gICAgXCLFvWl2bm9zdGVuc2vDoVwiLFxuICAgIFwixb1pxb5rb3ZhXCIsXG4gICAgXCLFvXVwbsOpIG7DoW1lc3RpZVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXR9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJTbG92ZW5za29cIlxuICBdXG59O1xuc2suY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwicy5yLm8uXCIsXG4gICAgXCJhLnMuXCIsXG4gICAgXCJ2Lm8ucy5cIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOlxuICAgIFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjpcbiAgICBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcImNsaWNrcy1hbmQtbW9ydGFyXCIsXG4gICAgICBcInZhbHVlLWFkZGVkXCIsXG4gICAgICBcInZlcnRpY2FsXCIsXG4gICAgICBcInByb2FjdGl2ZVwiLFxuICAgICAgXCJyb2J1c3RcIixcbiAgICAgIFwicmV2b2x1dGlvbmFyeVwiLFxuICAgICAgXCJzY2FsYWJsZVwiLFxuICAgICAgXCJsZWFkaW5nLWVkZ2VcIixcbiAgICAgIFwiaW5ub3ZhdGl2ZVwiLFxuICAgICAgXCJpbnR1aXRpdmVcIixcbiAgICAgIFwic3RyYXRlZ2ljXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJzdGlja3lcIixcbiAgICAgIFwib25lLXRvLW9uZVwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcImVuZC10by1lbmRcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcIkIyQlwiLFxuICAgICAgXCJCMkNcIixcbiAgICAgIFwiZ3JhbnVsYXJcIixcbiAgICAgIFwiZnJpY3Rpb25sZXNzXCIsXG4gICAgICBcInZpcnR1YWxcIixcbiAgICAgIFwidmlyYWxcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCIyNC8zNjVcIixcbiAgICAgIFwiYmVzdC1vZi1icmVlZFwiLFxuICAgICAgXCJraWxsZXJcIixcbiAgICAgIFwibWFnbmV0aWNcIixcbiAgICAgIFwiYmxlZWRpbmctZWRnZVwiLFxuICAgICAgXCJ3ZWItZW5hYmxlZFwiLFxuICAgICAgXCJpbnRlcmFjdGl2ZVwiLFxuICAgICAgXCJkb3QtY29tXCIsXG4gICAgICBcInNleHlcIixcbiAgICAgIFwiYmFjay1lbmRcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcImVmZmljaWVudFwiLFxuICAgICAgXCJmcm9udC1lbmRcIixcbiAgICAgIFwiZGlzdHJpYnV0ZWRcIixcbiAgICAgIFwic2VhbWxlc3NcIixcbiAgICAgIFwiZXh0ZW5zaWJsZVwiLFxuICAgICAgXCJ0dXJuLWtleVwiLFxuICAgICAgXCJ3b3JsZC1jbGFzc1wiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJjcm9zcy1tZWRpYVwiLFxuICAgICAgXCJzeW5lcmdpc3RpY1wiLFxuICAgICAgXCJicmlja3MtYW5kLWNsaWNrc1wiLFxuICAgICAgXCJvdXQtb2YtdGhlLWJveFwiLFxuICAgICAgXCJlbnRlcnByaXNlXCIsXG4gICAgICBcImludGVncmF0ZWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcIndpcmVsZXNzXCIsXG4gICAgICBcInRyYW5zcGFyZW50XCIsXG4gICAgICBcIm5leHQtZ2VuZXJhdGlvblwiLFxuICAgICAgXCJjdXR0aW5nLWVkZ2VcIixcbiAgICAgIFwidXNlci1jZW50cmljXCIsXG4gICAgICBcInZpc2lvbmFyeVwiLFxuICAgICAgXCJjdXN0b21pemVkXCIsXG4gICAgICBcInViaXF1aXRvdXNcIixcbiAgICAgIFwicGx1Zy1hbmQtcGxheVwiLFxuICAgICAgXCJjb2xsYWJvcmF0aXZlXCIsXG4gICAgICBcImNvbXBlbGxpbmdcIixcbiAgICAgIFwiaG9saXN0aWNcIixcbiAgICAgIFwicmljaFwiLFxuICAgICAgXCJzeW5lcmdpZXNcIixcbiAgICAgIFwid2ViLXJlYWRpbmVzc1wiLFxuICAgICAgXCJwYXJhZGlnbXNcIixcbiAgICAgIFwibWFya2V0c1wiLFxuICAgICAgXCJwYXJ0bmVyc2hpcHNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVzXCIsXG4gICAgICBcInBsYXRmb3Jtc1wiLFxuICAgICAgXCJpbml0aWF0aXZlc1wiLFxuICAgICAgXCJjaGFubmVsc1wiLFxuICAgICAgXCJleWViYWxsc1wiLFxuICAgICAgXCJjb21tdW5pdGllc1wiLFxuICAgICAgXCJST0lcIixcbiAgICAgIFwic29sdXRpb25zXCIsXG4gICAgICBcImUtdGFpbGVyc1wiLFxuICAgICAgXCJlLXNlcnZpY2VzXCIsXG4gICAgICBcImFjdGlvbi1pdGVtc1wiLFxuICAgICAgXCJwb3J0YWxzXCIsXG4gICAgICBcIm5pY2hlc1wiLFxuICAgICAgXCJ0ZWNobm9sb2dpZXNcIixcbiAgICAgIFwiY29udGVudFwiLFxuICAgICAgXCJ2b3J0YWxzXCIsXG4gICAgICBcInN1cHBseS1jaGFpbnNcIixcbiAgICAgIFwiY29udmVyZ2VuY2VcIixcbiAgICAgIFwicmVsYXRpb25zaGlwc1wiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVzXCIsXG4gICAgICBcImludGVyZmFjZXNcIixcbiAgICAgIFwiZS1tYXJrZXRzXCIsXG4gICAgICBcImUtY29tbWVyY2VcIixcbiAgICAgIFwic3lzdGVtc1wiLFxuICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgIFwiaW5mb21lZGlhcmllc1wiLFxuICAgICAgXCJtb2RlbHNcIixcbiAgICAgIFwibWluZHNoYXJlXCIsXG4gICAgICBcImRlbGl2ZXJhYmxlc1wiLFxuICAgICAgXCJ1c2Vyc1wiLFxuICAgICAgXCJzY2hlbWFzXCIsXG4gICAgICBcIm5ldHdvcmtzXCIsXG4gICAgICBcImFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJtZXRyaWNzXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcImV4cGVyaWVuY2VzXCIsXG4gICAgICBcIndlYiBzZXJ2aWNlc1wiLFxuICAgICAgXCJtZXRob2RvbG9naWVzXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubWFuX2xhc3RfbmFtZX0gYSAje05hbWUubWFuX2xhc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbnNrLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ6b3puYW0uc2tcIixcbiAgICBcImF6ZXQuc2tcIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwic2tcIixcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJldVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnNrLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xuc2submFtZSA9IHtcbiAgXCJtYW5fZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJEcmFob3NsYXZcIixcbiAgICBcIlNldmVyw61uXCIsXG4gICAgXCJBbGV4ZWpcIixcbiAgICBcIkVybmVzdFwiLFxuICAgIFwiUmFzdGlzbGF2XCIsXG4gICAgXCJSYWRvdmFuXCIsXG4gICAgXCJEb2Jyb3NsYXZcIixcbiAgICBcIkRhbGlib3JcIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIk1pbG/FoVwiLFxuICAgIFwiVGltb3RlalwiLFxuICAgIFwiR2VqemFcIixcbiAgICBcIkJvaHXFoVwiLFxuICAgIFwiQWxmb256XCIsXG4gICAgXCJHYcWhcGFyXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJCbGHFvmVqXCIsXG4gICAgXCJaZGVua29cIixcbiAgICBcIkRlemlkZXJcIixcbiAgICBcIkFycMOhZFwiLFxuICAgIFwiVmFsZW50w61uXCIsXG4gICAgXCJQcmF2b3NsYXZcIixcbiAgICBcIkphcm9tw61yXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiTWF0ZWpcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJWaWt0b3JcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiUmFkb23DrXJcIixcbiAgICBcIkFsYsOtblwiLFxuICAgIFwiQm9odW1pbFwiLFxuICAgIFwiS2F6aW3DrXJcIixcbiAgICBcIkZyaWRyaWNoXCIsXG4gICAgXCJSYWRvc2xhdlwiLFxuICAgIFwiVG9tw6HFoVwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQnJhbmlzbGF2XCIsXG4gICAgXCJCcnVub1wiLFxuICAgIFwiR3JlZ29yXCIsXG4gICAgXCJWbGFzdGltaWxcIixcbiAgICBcIkJvbGVzbGF2XCIsXG4gICAgXCJFZHVhcmRcIixcbiAgICBcIkpvemVmXCIsXG4gICAgXCJWw63FpWF6b3NsYXZcIixcbiAgICBcIkJsYWhvc2xhdlwiLFxuICAgIFwiQmXFiGFkaWtcIixcbiAgICBcIkFkcmnDoW5cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIk1hcmnDoW5cIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIk1pcm9zbGF2XCIsXG4gICAgXCJCZW5qYW3DrW5cIixcbiAgICBcIkh1Z29cIixcbiAgICBcIlJpY2hhcmRcIixcbiAgICBcIkl6aWRvclwiLFxuICAgIFwiWm9sdMOhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJJZ29yXCIsXG4gICAgXCJKw7psaXVzXCIsXG4gICAgXCJBbGXFoVwiLFxuICAgIFwiRmVkb3JcIixcbiAgICBcIlJ1ZG9sZlwiLFxuICAgIFwiVmFsw6lyXCIsXG4gICAgXCJNYXJjZWxcIixcbiAgICBcIkVydsOtblwiLFxuICAgIFwiU2xhdm9tw61yXCIsXG4gICAgXCJWb2p0ZWNoXCIsXG4gICAgXCJKdXJhalwiLFxuICAgIFwiTWFyZWtcIixcbiAgICBcIkphcm9zbGF2XCIsXG4gICAgXCLFvWlnbXVuZFwiLFxuICAgIFwiRmxvcmnDoW5cIixcbiAgICBcIlJvbGFuZFwiLFxuICAgIFwiUGFua3LDoWNcIixcbiAgICBcIlNlcnbDoWNcIixcbiAgICBcIkJvbmlmw6FjXCIsXG4gICAgXCJTdmV0b3rDoXJcIixcbiAgICBcIkJlcm5hcmRcIixcbiAgICBcIkrDumxpYVwiLFxuICAgIFwiVXJiYW5cIixcbiAgICBcIkR1xaFhblwiLFxuICAgIFwiVmlsaWFtXCIsXG4gICAgXCJGZXJkaW5hbmRcIixcbiAgICBcIk5vcmJlcnRcIixcbiAgICBcIlLDs2JlcnRcIixcbiAgICBcIk1lZGFyZFwiLFxuICAgIFwiWmxhdGtvXCIsXG4gICAgXCJBbnRvblwiLFxuICAgIFwiVmFzaWxcIixcbiAgICBcIlbDrXRcIixcbiAgICBcIkFkb2xmXCIsXG4gICAgXCJWcmF0aXNsYXZcIixcbiAgICBcIkFsZnLDqWRcIixcbiAgICBcIkFsb2p6XCIsXG4gICAgXCJKw6FuXCIsXG4gICAgXCJUYWRlw6HFoVwiLFxuICAgIFwiTGFkaXNsYXZcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQYXZvbFwiLFxuICAgIFwiTWlsb3NsYXZcIixcbiAgICBcIlByb2tvcFwiLFxuICAgIFwiQ3lyaWxcIixcbiAgICBcIk1ldG9kXCIsXG4gICAgXCJQYXRyaWtcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiSXZhblwiLFxuICAgIFwiS2FtaWxcIixcbiAgICBcIkhlbnJpY2hcIixcbiAgICBcIkRyYWhvbcOtclwiLFxuICAgIFwiQm9odXNsYXZcIixcbiAgICBcIknEvmphXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIlZsYWRpbcOtclwiLFxuICAgIFwiSmFrdWJcIixcbiAgICBcIktyacWhdG9mXCIsXG4gICAgXCJJZ27DoWNcIixcbiAgICBcIkd1c3TDoXZcIixcbiAgICBcIkplcmd1xaFcIixcbiAgICBcIkRvbWluaWtcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJWYXZyaW5lY1wiLFxuICAgIFwixL11Ym9tw61yXCIsXG4gICAgXCJNb2ptw61yXCIsXG4gICAgXCJMZW9uYXJkXCIsXG4gICAgXCJUaWNob23DrXJcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJCYXJ0b2xvbWVqXCIsXG4gICAgXCLEvXVkb3bDrXRcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiQXVndXN0w61uXCIsXG4gICAgXCJCZWxvXCIsXG4gICAgXCJPbGVnXCIsXG4gICAgXCJCeXN0csOta1wiLFxuICAgIFwiQ3RpYm9yXCIsXG4gICAgXCLEvXVkb21pbFwiLFxuICAgIFwiS29uxaF0YW50w61uXCIsXG4gICAgXCLEvXVib3NsYXZcIixcbiAgICBcIk1hdMO6xaFcIixcbiAgICBcIk3Ds3JpY1wiLFxuICAgIFwixL11Ym/FoVwiLFxuICAgIFwixL11Ym9yXCIsXG4gICAgXCJWbGFkaXNsYXZcIixcbiAgICBcIkN5cHJpw6FuXCIsXG4gICAgXCJWw6FjbGF2XCIsXG4gICAgXCJNaWNoYWxcIixcbiAgICBcIkphcm9sw61tXCIsXG4gICAgXCJBcm5vbGRcIixcbiAgICBcIkxldm9zbGF2XCIsXG4gICAgXCJGcmFudGnFoWVrXCIsXG4gICAgXCJEaW9uw716XCIsXG4gICAgXCJNYXhpbWlsacOhblwiLFxuICAgIFwiS29sb21hblwiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkx1a8OhxaFcIixcbiAgICBcIktyaXN0acOhblwiLFxuICAgIFwiVmVuZGVsw61uXCIsXG4gICAgXCJTZXJnZWpcIixcbiAgICBcIkF1cmVsXCIsXG4gICAgXCJEZW1ldGVyXCIsXG4gICAgXCJEZW5pc1wiLFxuICAgIFwiSHViZXJ0XCIsXG4gICAgXCJLYXJvbFwiLFxuICAgIFwiSW1yaWNoXCIsXG4gICAgXCJSZW7DqVwiLFxuICAgIFwiQm9odW3DrXJcIixcbiAgICBcIlRlb2RvclwiLFxuICAgIFwiVGlib3JcIixcbiAgICBcIk1hcm/FoVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJTdsOkdG9wbHVrXCIsXG4gICAgXCJTdGFuaXNsYXZcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkV1Z2VuXCIsXG4gICAgXCJGw6lsaXhcIixcbiAgICBcIktsZW1lbnRcIixcbiAgICBcIktvcm5lbFwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIlZyYXRrb1wiLFxuICAgIFwiT25kcmVqXCIsXG4gICAgXCJBbmRyZWpcIixcbiAgICBcIkVkbXVuZFwiLFxuICAgIFwiT2xkcmljaFwiLFxuICAgIFwiT3RvXCIsXG4gICAgXCJNaWt1bMOhxaFcIixcbiAgICBcIkFtYnLDs3pcIixcbiAgICBcIlJhZMO6elwiLFxuICAgIFwiQm9oZGFuXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCLFoHRlZmFuXCIsXG4gICAgXCJEw6F2aWRcIixcbiAgICBcIlNpbHZlc3RlclwiXG4gIF0sXG4gIFwid29tYW5fZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJBbnTDs25pYVwiLFxuICAgIFwiQm9odXNsYXZhXCIsXG4gICAgXCJEw6HFoWFcIixcbiAgICBcIk1hbHbDrW5hXCIsXG4gICAgXCJLcmlzdMOtbmFcIixcbiAgICBcIk5hdGHFoWFcIixcbiAgICBcIkJvaGRhbmFcIixcbiAgICBcIkRyYWhvbcOtcmFcIixcbiAgICBcIlPDoXJhXCIsXG4gICAgXCJab3JhXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIkVtYVwiLFxuICAgIFwiVGF0aWFuYVwiLFxuICAgIFwiRXJpa2FcIixcbiAgICBcIlZlcm9uaWthXCIsXG4gICAgXCJBZ8OhdGFcIixcbiAgICBcIkRvcm90YVwiLFxuICAgIFwiVmFuZGFcIixcbiAgICBcIlpvamFcIixcbiAgICBcIkdhYnJpZWxhXCIsXG4gICAgXCJQZXJsYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTWlsb3NsYXZhXCIsXG4gICAgXCJWbGFzdGFcIixcbiAgICBcIkzDrXZpYVwiLFxuICAgIFwiRWxlb27Ds3JhXCIsXG4gICAgXCJFdGVsYVwiLFxuICAgIFwiUm9tYW5hXCIsXG4gICAgXCJabGF0aWNhXCIsXG4gICAgXCJBbmXFvmthXCIsXG4gICAgXCJCb2h1bWlsYVwiLFxuICAgIFwiRnJhbnRpxaFrYVwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJNYXRpbGRhXCIsXG4gICAgXCJTdmV0bGFuYVwiLFxuICAgIFwixL11YmljYVwiLFxuICAgIFwiQWxlbmFcIixcbiAgICBcIlNvxYhhXCIsXG4gICAgXCJWaWVyb3NsYXZhXCIsXG4gICAgXCJaaXRhXCIsXG4gICAgXCJNaXJvc2xhdmFcIixcbiAgICBcIklyZW5hXCIsXG4gICAgXCJNaWxlbmFcIixcbiAgICBcIkVzdGVyYVwiLFxuICAgIFwiSnVzdMOtbmFcIixcbiAgICBcIkRhbmFcIixcbiAgICBcIkRhbmljYVwiLFxuICAgIFwiSmVsYVwiLFxuICAgIFwiSmFyb3NsYXZhXCIsXG4gICAgXCJKYXJtaWxhXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkFuYXN0w6F6aWFcIixcbiAgICBcIkdhbGluYVwiLFxuICAgIFwiTGVzYW5hXCIsXG4gICAgXCJIZXJtw61uYVwiLFxuICAgIFwiTW9uaWthXCIsXG4gICAgXCJJbmdyaWRhXCIsXG4gICAgXCJWaWt0w7NyaWFcIixcbiAgICBcIkJsYcW+ZW5hXCIsXG4gICAgXCLFvW9maWFcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJHaXplbGFcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJHZXJ0csO6ZGFcIixcbiAgICBcIlppbmFcIixcbiAgICBcIkrDumxpYVwiLFxuICAgIFwiSnVsaWFuYVwiLFxuICAgIFwixb1lbG3DrXJhXCIsXG4gICAgXCJFbGFcIixcbiAgICBcIlZhbmVzYVwiLFxuICAgIFwiSXZldGFcIixcbiAgICBcIlZpbG1hXCIsXG4gICAgXCJQZXRyb25lbGFcIixcbiAgICBcIsW9YW5ldGFcIixcbiAgICBcIljDqW5pYVwiLFxuICAgIFwiS2Fyb2zDrW5hXCIsXG4gICAgXCJMZW5rYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIlN0YW5pc2xhdmFcIixcbiAgICBcIk1hcmdhcsOpdGFcIixcbiAgICBcIkRvYnJvc2xhdmFcIixcbiAgICBcIkJsYW5rYVwiLFxuICAgIFwiVmFsw6lyaWFcIixcbiAgICBcIlBhdWzDrW5hXCIsXG4gICAgXCJTaWTDs25pYVwiLFxuICAgIFwiQWRyacOhbmFcIixcbiAgICBcIkJlw6F0YVwiLFxuICAgIFwiUGV0cmFcIixcbiAgICBcIk1lbMOhbmlhXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiQmVydGFcIixcbiAgICBcIlBhdHLDrWNpYVwiLFxuICAgIFwiTHVqemFcIixcbiAgICBcIkFtw6FsaWFcIixcbiAgICBcIk1pbG90YVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTWFyZ2l0YVwiLFxuICAgIFwiS2FtaWxhXCIsXG4gICAgXCJEdcWhYW5hXCIsXG4gICAgXCJNYWdkYWzDqW5hXCIsXG4gICAgXCJPxL5nYVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiSGFuYVwiLFxuICAgIFwiQm/FvmVuYVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIkxpYnXFoWFcIixcbiAgICBcIkJvxb5pZGFyYVwiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIkhvcnRlbnppYVwiLFxuICAgIFwiSm96ZWbDrW5hXCIsXG4gICAgXCLFoHRlZsOhbmlhXCIsXG4gICAgXCLEvXVib23DrXJhXCIsXG4gICAgXCJadXphbmFcIixcbiAgICBcIkRhcmluYVwiLFxuICAgIFwiTWFyY2VsYVwiLFxuICAgIFwiTWlsaWNhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJMw71kaWFcIixcbiAgICBcIkFuYWJlbGFcIixcbiAgICBcIkphbmFcIixcbiAgICBcIlNpbHZpYVwiLFxuICAgIFwiTmlrb2xhXCIsXG4gICAgXCJSdcW+ZW5hXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJEcmFob3NsYXZhXCIsXG4gICAgXCJMaW5kYVwiLFxuICAgIFwiTWVsaW5kYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSb3rDoWxpYVwiLFxuICAgIFwiUmVnw61uYVwiLFxuICAgIFwiQWxpY2FcIixcbiAgICBcIk1hcmlhbm5hXCIsXG4gICAgXCJNaXJpYW1hXCIsXG4gICAgXCJNYXJ0aW5hXCIsXG4gICAgXCJNw6FyaWFcIixcbiAgICBcIkpvbGFuYVwiLFxuICAgIFwixL11ZG9taWxhXCIsXG4gICAgXCLEvXVkbWlsYVwiLFxuICAgIFwiT2x5bXBpYVwiLFxuICAgIFwiRXVnw6luaWFcIixcbiAgICBcIsS9dWJvc2xhdmFcIixcbiAgICBcIlpkZW5rYVwiLFxuICAgIFwiRWRpdGFcIixcbiAgICBcIk1pY2hhZWxhXCIsXG4gICAgXCJTdGVsYVwiLFxuICAgIFwiVmllcmFcIixcbiAgICBcIk5hdMOhbGlhXCIsXG4gICAgXCJFbGnFoWthXCIsXG4gICAgXCJCcmlnaXRhXCIsXG4gICAgXCJWYWxlbnTDrW5hXCIsXG4gICAgXCJUZXLDqXppYVwiLFxuICAgIFwiVmxhZGltw61yYVwiLFxuICAgIFwiSGVkdmlnYVwiLFxuICAgIFwiVXLFoXXEvmFcIixcbiAgICBcIkFsb2p6YVwiLFxuICAgIFwiS3ZldG9zbGF2YVwiLFxuICAgIFwiU2Fiw61uYVwiLFxuICAgIFwiRG9icm9taWxhXCIsXG4gICAgXCJLbMOhcmFcIixcbiAgICBcIlNpbW9uYVwiLFxuICAgIFwiQXVyw6lsaWFcIixcbiAgICBcIkRlbmlzYVwiLFxuICAgIFwiUmVuw6F0YVwiLFxuICAgIFwiSXJtYVwiLFxuICAgIFwiQWduZXNhXCIsXG4gICAgXCJLbGF1ZGlhXCIsXG4gICAgXCJBbMW+YmV0YVwiLFxuICAgIFwiRWx2w61yYVwiLFxuICAgIFwiQ2Vjw61saWFcIixcbiAgICBcIkVtw61saWFcIixcbiAgICBcIkthdGFyw61uYVwiLFxuICAgIFwiSGVucmlldGFcIixcbiAgICBcIkJpYmnDoW5hXCIsXG4gICAgXCJCYXJib3JhXCIsXG4gICAgXCJNYXLDrW5hXCIsXG4gICAgXCJJemFiZWxhXCIsXG4gICAgXCJIaWxkYVwiLFxuICAgIFwiT3TDrWxpYVwiLFxuICAgIFwiTHVjaWFcIixcbiAgICBcIkJyYW5pc2xhdmFcIixcbiAgICBcIkJyb25pc2xhdmFcIixcbiAgICBcIkl2aWNhXCIsXG4gICAgXCJBbGLDrW5hXCIsXG4gICAgXCJLb3Juw6lsaWFcIixcbiAgICBcIlNsw6F2YVwiLFxuICAgIFwiU2zDoXZrYVwiLFxuICAgIFwiSnVkaXRhXCIsXG4gICAgXCJEYWdtYXJhXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiTmFkZcW+ZGFcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRmlsb23DqW5hXCIsXG4gICAgXCJJdmFuYVwiLFxuICAgIFwiTWlsYWRhXCJcbiAgXSxcbiAgXCJtYW5fbGFzdF9uYW1lXCI6IFtcbiAgICBcIkFudGFsXCIsXG4gICAgXCJCYWJrYVwiLFxuICAgIFwiQmFobmFcIixcbiAgICBcIkJhaG5vXCIsXG4gICAgXCJCYWzDocW+XCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyYW5rYVwiLFxuICAgIFwiQmFydG92acSNXCIsXG4gICAgXCJCYXJ0b8WhXCIsXG4gICAgXCJCYcSNYVwiLFxuICAgIFwiQmVybm9sw6FrXCIsXG4gICAgXCJCZcWIb1wiLFxuICAgIFwiQmljZWtcIixcbiAgICBcIkJpZWxpa1wiLFxuICAgIFwiQmxhaG9cIixcbiAgICBcIkJvbmRyYVwiLFxuICAgIFwiQm9zw6FrXCIsXG4gICAgXCJCb8Wha2FcIixcbiAgICBcIkJyZXppbmFcIixcbiAgICBcIkJ1a292c2vDvVwiLFxuICAgIFwiQ2hhbHVwa2FcIixcbiAgICBcIkNodWTDrWtcIixcbiAgICBcIkNpYnVsYVwiLFxuICAgIFwiQ2lidWxrYVwiLFxuICAgIFwiQ2lidcS+YVwiLFxuICAgIFwiQ3lwcmljaFwiLFxuICAgIFwiQ8OtZ2VyXCIsXG4gICAgXCJEYW5rb1wiLFxuICAgIFwiRGHFiGtvXCIsXG4gICAgXCJEYcWIb1wiLFxuICAgIFwiRGVibsOhclwiLFxuICAgIFwiRGVqXCIsXG4gICAgXCJEZWvDvcWhXCIsXG4gICAgXCJEb2xlxb5hbFwiLFxuICAgIFwiRG/EjW9sb21hbnNrw71cIixcbiAgICBcIkRyb3BwYVwiLFxuICAgIFwiRHVib3Zza8O9XCIsXG4gICAgXCJEdWRla1wiLFxuICAgIFwiRHVsYVwiLFxuICAgIFwiRHVsbGFcIixcbiAgICBcIkR1c8Ota1wiLFxuICAgIFwiRHZvbsSNXCIsXG4gICAgXCJEenVyamFuaW5cIixcbiAgICBcIkTDoXZpZFwiLFxuICAgIFwiRmFiaWFuXCIsXG4gICAgXCJGYWJpw6FuXCIsXG4gICAgXCJGYWpub3JcIixcbiAgICBcIkZhcmthxaFvdnNrw71cIixcbiAgICBcIkZpY29cIixcbiAgICBcIkZpbGNcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJGaW5rYVwiLFxuICAgIFwiRnRvcmVrXCIsXG4gICAgXCJHYcWhcGFyXCIsXG4gICAgXCJHYcWhcGFyb3ZpxI1cIixcbiAgICBcIkdvY27DrWtcIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiR3JlZ3XFoVwiLFxuICAgIFwiR3J6bsOhclwiLFxuICAgIFwiSGFibMOha1wiLFxuICAgIFwiSGFixaF1ZGFcIixcbiAgICBcIkhhbGRhXCIsXG4gICAgXCJIYWx1xaFrYVwiLFxuICAgIFwiSGFsw6FrXCIsXG4gICAgXCJIYW5rb1wiLFxuICAgIFwiSGFuemFsXCIsXG4gICAgXCJIYcWhxI3DoWtcIixcbiAgICBcIkhlcmV0aWtcIixcbiAgICBcIkhlxI1rb1wiLFxuICAgIFwiSGxhdsOhxI1la1wiLFxuICAgIFwiSGxpbmthXCIsXG4gICAgXCJIb2x1YlwiLFxuICAgIFwiSG9sdWJ5XCIsXG4gICAgXCJIb3NzYVwiLFxuICAgIFwiSG96YVwiLFxuICAgIFwiSHJhxaFrb1wiLFxuICAgIFwiSHJpY1wiLFxuICAgIFwiSHJtb1wiLFxuICAgIFwiSHJ1xaFvdnNrw71cIixcbiAgICBcIkh1YmFcIixcbiAgICBcIklobmHEjcOha1wiLFxuICAgIFwiSmFuZcSNZWtcIixcbiAgICBcIkphbm/FoWthXCIsXG4gICAgXCJKYW50b8Whb3ZpxI1cIixcbiAgICBcIkphbsOta1wiLFxuICAgIFwiSmFuxI1la1wiLFxuICAgIFwiSmVkxL5vdnNrw71cIixcbiAgICBcIkplbmRla1wiLFxuICAgIFwiSm9uYXRhXCIsXG4gICAgXCJKdXJpbmFcIixcbiAgICBcIkp1cmtvdmnEjVwiLFxuICAgIFwiSnVyw61rXCIsXG4gICAgXCJKw6Fub8Whw61rXCIsXG4gICAgXCJLYWZlbmRhXCIsXG4gICAgXCJLYWxpc2vDvVwiLFxuICAgIFwiS2FydWxcIixcbiAgICBcIktlbsOtxb5cIixcbiAgICBcIktsYXBrYVwiLFxuICAgIFwiS21lxaVcIixcbiAgICBcIktvbGVzw6FyXCIsXG4gICAgXCJLb2xsw6FyXCIsXG4gICAgXCJLb2xuaWtcIixcbiAgICBcIktvbG7DrWtcIixcbiAgICBcIktvbMOhclwiLFxuICAgIFwiS29yZWNcIixcbiAgICBcIktvc3RrYVwiLFxuICAgIFwiS29zdHJlY1wiLFxuICAgIFwiS292w6HEjVwiLFxuICAgIFwiS292w6HEjWlrXCIsXG4gICAgXCJLb3phXCIsXG4gICAgXCJLb8SNacWhXCIsXG4gICAgXCJLcmFqw63EjWVrXCIsXG4gICAgXCJLcmFqxI1pXCIsXG4gICAgXCJLcmFqxI1vXCIsXG4gICAgXCJLcmFqxI1vdmnEjVwiLFxuICAgIFwiS3JhasSNw61yXCIsXG4gICAgXCJLcsOhbGlrXCIsXG4gICAgXCJLcsO6cGFcIixcbiAgICBcIkt1YsOta1wiLFxuICAgIFwiS3lzZcS+XCIsXG4gICAgXCJLw6FsbGF5XCIsXG4gICAgXCJMYWJ1ZGFcIixcbiAgICBcIkxlcMWhw61rXCIsXG4gICAgXCJMaXB0w6FrXCIsXG4gICAgXCJMaXNpY2vDvVwiLFxuICAgIFwiTHViaW5hXCIsXG4gICAgXCJMdWvDocSNXCIsXG4gICAgXCJMdXB0w6FrXCIsXG4gICAgXCJMw63FoWthXCIsXG4gICAgXCJNYWRlalwiLFxuICAgIFwiTWFqZXNrw71cIixcbiAgICBcIk1hbGFjaG92c2vDvVwiLFxuICAgIFwiTWFsw63FoWVrXCIsXG4gICAgXCJNYW1vamthXCIsXG4gICAgXCJNYXJjaW5rb1wiLFxuICAgIFwiTWFyacOhblwiLFxuICAgIFwiTWFzYXJ5a1wiLFxuICAgIFwiTWFzbG9cIixcbiAgICBcIk1hdGlhxaFrb1wiLFxuICAgIFwiTWVkdmXEj1wiLFxuICAgIFwiTWVsY2VyXCIsXG4gICAgXCJNZcSNaWFyXCIsXG4gICAgXCJNaWNoYWzDrWtcIixcbiAgICBcIk1paGFsaWtcIixcbiAgICBcIk1paMOhbFwiLFxuICAgIFwiTWlow6FsaWtcIixcbiAgICBcIk1pa2xvxaFrb1wiLFxuICAgIFwiTWlrdWzDrWtcIixcbiAgICBcIk1pa3XFoVwiLFxuICAgIFwiTWlrw7rFoVwiLFxuICAgIFwiTWlsb3RhXCIsXG4gICAgXCJNaW7DocSNXCIsXG4gICAgXCJNacWhw61rXCIsXG4gICAgXCJNb2rFvmnFoVwiLFxuICAgIFwiTW9rcm/FoVwiLFxuICAgIFwiTW9yYVwiLFxuICAgIFwiTW9yYXbEjcOta1wiLFxuICAgIFwiTXlkbG9cIixcbiAgICBcIk5lbWVjXCIsXG4gICAgXCJOaXRyYVwiLFxuICAgIFwiTm92w6FrXCIsXG4gICAgXCJPYsWhdXRcIixcbiAgICBcIk9uZHJ1xaFcIixcbiAgICBcIk90xI1lbsOhxaFcIixcbiAgICBcIlBhdWtvXCIsXG4gICAgXCJQYXZsaWtvdnNrw71cIixcbiAgICBcIlBhdsO6a1wiLFxuICAgIFwiUGHFoWVrXCIsXG4gICAgXCJQYcWha2FcIixcbiAgICBcIlBhxaFrb1wiLFxuICAgIFwiUGVsaWvDoW5cIixcbiAgICBcIlBldHJvdmlja8O9XCIsXG4gICAgXCJQZXRydcWha2FcIixcbiAgICBcIlBlxaFrb1wiLFxuICAgIFwiUGxjaFwiLFxuICAgIFwiUGxla2FuZWNcIixcbiAgICBcIlBvZGhyYWRza8O9XCIsXG4gICAgXCJQb2Rrb25pY2vDvVwiLFxuICAgIFwiUG9saWFrXCIsXG4gICAgXCJQdXDDoWtcIixcbiAgICBcIlJha1wiLFxuICAgIFwiUmVwaXNrw71cIixcbiAgICBcIlJvbWFuxI3DrWtcIixcbiAgICBcIlJ1c1wiLFxuICAgIFwiUnXFvmnEjWthXCIsXG4gICAgXCJSeWJuw63EjWVrXCIsXG4gICAgXCJSeWLDoXJcIixcbiAgICBcIlJ5YsOhcmlrXCIsXG4gICAgXCJTYW1zb25cIixcbiAgICBcIlNlZGxpYWtcIixcbiAgICBcIlNlbmtvXCIsXG4gICAgXCJTa2xlbmthXCIsXG4gICAgXCJTa29rYW5cIixcbiAgICBcIlNrdXRlY2vDvVwiLFxuICAgIFwiU2xhxaHFpWFuXCIsXG4gICAgXCJTbG9ib2RhXCIsXG4gICAgXCJTbG9ib2Ruw61rXCIsXG4gICAgXCJTbG90YVwiLFxuICAgIFwiU2xvdsOha1wiLFxuICAgIFwiU21yZWtcIixcbiAgICBcIlN0b2RvbGFcIixcbiAgICBcIlN0cmFrYVwiLFxuICAgIFwiU3Rybmlza29cIixcbiAgICBcIlN2cmLDrWtcIixcbiAgICBcIlPDoW1lbFwiLFxuICAgIFwiU8O9a29yYVwiLFxuICAgIFwiVGF0YXJcIixcbiAgICBcIlRhdGFya2FcIixcbiAgICBcIlRhdMOhclwiLFxuICAgIFwiVGF0w6Fya2FcIixcbiAgICBcIlRob21rYVwiLFxuICAgIFwiVG9tZcSNZWtcIixcbiAgICBcIlRvbWthXCIsXG4gICAgXCJUb21rb1wiLFxuICAgIFwiVHJ1YmVuXCIsXG4gICAgXCJUdXLEjW9rXCIsXG4gICAgXCJVcmFtXCIsXG4gICAgXCJVcmJsw61rXCIsXG4gICAgXCJWYWpjw61rXCIsXG4gICAgXCJWYWpkYVwiLFxuICAgIFwiVmFsYWNoXCIsXG4gICAgXCJWYWxhY2hvdmnEjVwiLFxuICAgIFwiVmFsZW50XCIsXG4gICAgXCJWYWx1xaFrYVwiLFxuICAgIFwiVmFuZWtcIixcbiAgICBcIlZlc2VsXCIsXG4gICAgXCJWaWNlblwiLFxuICAgIFwiVmnFocWIb3Zza8O9XCIsXG4gICAgXCJWbGFjaFwiLFxuICAgIFwiVm9qdGVrXCIsXG4gICAgXCJWeWRhcmVuw71cIixcbiAgICBcIlphamFjXCIsXG4gICAgXCJaaW1hXCIsXG4gICAgXCJaaW1rYVwiLFxuICAgIFwiWsOhYm9yc2vDvVwiLFxuICAgIFwiWsO6YnJpa1wiLFxuICAgIFwixIxhcGtvdmnEjVwiLFxuICAgIFwixIxhcGxvdmnEjVwiLFxuICAgIFwixIxhcm5vZ3Vyc2vDvVwiLFxuICAgIFwixIxpZXJueVwiLFxuICAgIFwixIxvYnJkYVwiLFxuICAgIFwixI5hxI9vXCIsXG4gICAgXCLEjnVyaWNhXCIsXG4gICAgXCLEjnVyacWhXCIsXG4gICAgXCLFoGlkbG9cIixcbiAgICBcIsWgaW1vbm92acSNXCIsXG4gICAgXCLFoGtyaW5pYXJcIixcbiAgICBcIsWga3VsdMOpdHlcIixcbiAgICBcIsWgbWFqZGFcIixcbiAgICBcIsWgb2x0w6lzXCIsXG4gICAgXCLFoG9sdMO9c1wiLFxuICAgIFwixaB0ZWZhblwiLFxuICAgIFwixaB0ZWZhbmthXCIsXG4gICAgXCLFoHVsY1wiLFxuICAgIFwixaB1cmthXCIsXG4gICAgXCLFoHZlaGxhXCIsXG4gICAgXCLFoMWlYXN0bsO9XCJcbiAgXSxcbiAgXCJ3b21hbl9sYXN0X25hbWVcIjogW1xuICAgIFwiQW50YWxvdsOhXCIsXG4gICAgXCJCYWJrb3bDoVwiLFxuICAgIFwiQmFobm92w6FcIixcbiAgICBcIkJhbMOhxb5vdsOhXCIsXG4gICAgXCJCYXJhbm92w6FcIixcbiAgICBcIkJhcmFua292w6FcIixcbiAgICBcIkJhcnRvdmnEjW92w6FcIixcbiAgICBcIkJhcnRvxaFvdsOhXCIsXG4gICAgXCJCYcSNb3bDoVwiLFxuICAgIFwiQmVybm9sw6Frb3bDoVwiLFxuICAgIFwiQmXFiG92w6FcIixcbiAgICBcIkJpY2Vrb3bDoVwiLFxuICAgIFwiQmllbGlrb3bDoVwiLFxuICAgIFwiQmxhaG92w6FcIixcbiAgICBcIkJvbmRyb3bDoVwiLFxuICAgIFwiQm9zw6Frb3bDoVwiLFxuICAgIFwiQm/FoWtvdsOhXCIsXG4gICAgXCJCcmV6aW5vdsOhXCIsXG4gICAgXCJCdWtvdnNrw6FcIixcbiAgICBcIkNoYWx1cGtvdsOhXCIsXG4gICAgXCJDaHVkw61rb3bDoVwiLFxuICAgIFwiQ2lidWxvdsOhXCIsXG4gICAgXCJDaWJ1bGtvdsOhXCIsXG4gICAgXCJDeXByaWNob3bDoVwiLFxuICAgIFwiQ8OtZ2Vyb3bDoVwiLFxuICAgIFwiRGFua292w6FcIixcbiAgICBcIkRhxYhrb3bDoVwiLFxuICAgIFwiRGHFiG92w6FcIixcbiAgICBcIkRlYm7DoXJvdsOhXCIsXG4gICAgXCJEZWpvdsOhXCIsXG4gICAgXCJEZWvDvcWhb3bDoVwiLFxuICAgIFwiRG9sZcW+YWxvdsOhXCIsXG4gICAgXCJEb8SNb2xvbWFuc2vDoVwiLFxuICAgIFwiRHJvcHBvdsOhXCIsXG4gICAgXCJEdWJvdnNrw6FcIixcbiAgICBcIkR1ZGVrb3bDoVwiLFxuICAgIFwiRHVsb3bDoVwiLFxuICAgIFwiRHVsbG92w6FcIixcbiAgICBcIkR1c8Ota292w6FcIixcbiAgICBcIkR2b27EjW92w6FcIixcbiAgICBcIkR6dXJqYW5pbm92w6FcIixcbiAgICBcIkTDoXZpZG92w6FcIixcbiAgICBcIkZhYmlhbm92w6FcIixcbiAgICBcIkZhYmnDoW5vdsOhXCIsXG4gICAgXCJGYWpub3JvdsOhXCIsXG4gICAgXCJGYXJrYcWhb3Zza8OhXCIsXG4gICAgXCJGaWNvdsOhXCIsXG4gICAgXCJGaWxjb3bDoVwiLFxuICAgIFwiRmlsaXBvdsOhXCIsXG4gICAgXCJGaW5rb3bDoVwiLFxuICAgIFwiRnRvcmVrb3bDoVwiLFxuICAgIFwiR2HFoXBhcm92w6FcIixcbiAgICBcIkdhxaFwYXJvdmnEjW92w6FcIixcbiAgICBcIkdvY27DrWtvdsOhXCIsXG4gICAgXCJHcmVnb3JvdsOhXCIsXG4gICAgXCJHcmVndcWhb3bDoVwiLFxuICAgIFwiR3J6bsOhcm92w6FcIixcbiAgICBcIkhhYmzDoWtvdsOhXCIsXG4gICAgXCJIYWLFoXVkb3bDoVwiLFxuICAgIFwiSGFsZG92w6FcIixcbiAgICBcIkhhbHXFoWtvdsOhXCIsXG4gICAgXCJIYWzDoWtvdsOhXCIsXG4gICAgXCJIYW5rb3bDoVwiLFxuICAgIFwiSGFuemFsb3bDoVwiLFxuICAgIFwiSGHFocSNw6Frb3bDoVwiLFxuICAgIFwiSGVyZXRpa292w6FcIixcbiAgICBcIkhlxI1rb3bDoVwiLFxuICAgIFwiSGxhdsOhxI1la292w6FcIixcbiAgICBcIkhsaW5rb3bDoVwiLFxuICAgIFwiSG9sdWJvdsOhXCIsXG4gICAgXCJIb2x1YnlvdsOhXCIsXG4gICAgXCJIb3Nzb3bDoVwiLFxuICAgIFwiSG96b3bDoVwiLFxuICAgIFwiSHJhxaFrb3bDoVwiLFxuICAgIFwiSHJpY292w6FcIixcbiAgICBcIkhybW92w6FcIixcbiAgICBcIkhydcWhb3Zza8OhXCIsXG4gICAgXCJIdWJvdsOhXCIsXG4gICAgXCJJaG5hxI3DoWtvdsOhXCIsXG4gICAgXCJKYW5lxI1la292w6FcIixcbiAgICBcIkphbm/FoWtvdsOhXCIsXG4gICAgXCJKYW50b8Whb3ZpxI1vdsOhXCIsXG4gICAgXCJKYW7DrWtvdsOhXCIsXG4gICAgXCJKYW7EjWVrb3bDoVwiLFxuICAgIFwiSmVkxL5vdnNrw6FcIixcbiAgICBcIkplbmRla292w6FcIixcbiAgICBcIkpvbmF0b3bDoVwiLFxuICAgIFwiSnVyaW5vdsOhXCIsXG4gICAgXCJKdXJrb3ZpxI1vdsOhXCIsXG4gICAgXCJKdXLDrWtvdsOhXCIsXG4gICAgXCJKw6Fub8Whw61rb3bDoVwiLFxuICAgIFwiS2FmZW5kb3bDoVwiLFxuICAgIFwiS2FsaXNrw6FcIixcbiAgICBcIkthcnVsb3bDoVwiLFxuICAgIFwiS2Vuw63Fvm92w6FcIixcbiAgICBcIktsYXBrb3bDoVwiLFxuICAgIFwiS21lxaVvdsOhXCIsXG4gICAgXCJLb2xlc8Ohcm92w6FcIixcbiAgICBcIktvbGzDoXJvdsOhXCIsXG4gICAgXCJLb2xuaWtvdsOhXCIsXG4gICAgXCJLb2xuw61rb3bDoVwiLFxuICAgIFwiS29sw6Fyb3bDoVwiLFxuICAgIFwiS29yZWNvdsOhXCIsXG4gICAgXCJLb3N0a2FvdsOhXCIsXG4gICAgXCJLb3N0cmVjb3bDoVwiLFxuICAgIFwiS292w6HEjW92w6FcIixcbiAgICBcIktvdsOhxI1pa292w6FcIixcbiAgICBcIktvem92w6FcIixcbiAgICBcIktvxI1pxaFvdsOhXCIsXG4gICAgXCJLcmFqw63EjWVrb3bDoVwiLFxuICAgIFwiS3JhasSNb3bDoVwiLFxuICAgIFwiS3JhasSNb3ZpxI1vdsOhXCIsXG4gICAgXCJLcmFqxI3DrXJvdsOhXCIsXG4gICAgXCJLcsOhbGlrb3bDoVwiLFxuICAgIFwiS3LDunBvdsOhXCIsXG4gICAgXCJLdWLDrWtvdsOhXCIsXG4gICAgXCJLeXNlxL5vdsOhXCIsXG4gICAgXCJLw6FsbGF5b3bDoVwiLFxuICAgIFwiTGFidWRvdsOhXCIsXG4gICAgXCJMZXDFocOta292w6FcIixcbiAgICBcIkxpcHTDoWtvdsOhXCIsXG4gICAgXCJMaXNpY2vDoVwiLFxuICAgIFwiTHViaW5vdsOhXCIsXG4gICAgXCJMdWvDocSNb3bDoVwiLFxuICAgIFwiTHVwdMOha292w6FcIixcbiAgICBcIkzDrcWha292w6FcIixcbiAgICBcIk1hZGVqb3bDoVwiLFxuICAgIFwiTWFqZXNrw6FcIixcbiAgICBcIk1hbGFjaG92c2vDoVwiLFxuICAgIFwiTWFsw63FoWVrb3bDoVwiLFxuICAgIFwiTWFtb2prb3bDoVwiLFxuICAgIFwiTWFyY2lua292w6FcIixcbiAgICBcIk1hcmnDoW5vdsOhXCIsXG4gICAgXCJNYXNhcnlrb3bDoVwiLFxuICAgIFwiTWFzbG92w6FcIixcbiAgICBcIk1hdGlhxaFrb3bDoVwiLFxuICAgIFwiTWVkdmXEj292w6FcIixcbiAgICBcIk1lbGNlcm92w6FcIixcbiAgICBcIk1lxI1pYXJvdsOhXCIsXG4gICAgXCJNaWNoYWzDrWtvdsOhXCIsXG4gICAgXCJNaWhhbGlrb3bDoVwiLFxuICAgIFwiTWlow6Fsb3bDoVwiLFxuICAgIFwiTWlow6FsaWtvdsOhXCIsXG4gICAgXCJNaWtsb8Wha292w6FcIixcbiAgICBcIk1pa3Vsw61rb3bDoVwiLFxuICAgIFwiTWlrdcWhb3bDoVwiLFxuICAgIFwiTWlrw7rFoW92w6FcIixcbiAgICBcIk1pbG90b3bDoVwiLFxuICAgIFwiTWluw6HEjW92w6FcIixcbiAgICBcIk1pxaHDrWtvdsOhXCIsXG4gICAgXCJNb2rFvmnFoW92w6FcIixcbiAgICBcIk1va3JvxaFvdsOhXCIsXG4gICAgXCJNb3JvdsOhXCIsXG4gICAgXCJNb3JhdsSNw61rb3bDoVwiLFxuICAgIFwiTXlkbG92w6FcIixcbiAgICBcIk5lbWNvdsOhXCIsXG4gICAgXCJOb3bDoWtvdsOhXCIsXG4gICAgXCJPYsWhdXRvdsOhXCIsXG4gICAgXCJPbmRydcWhb3bDoVwiLFxuICAgIFwiT3TEjWVuw6HFoW92w6FcIixcbiAgICBcIlBhdWtvdsOhXCIsXG4gICAgXCJQYXZsaWtvdnNrw6FcIixcbiAgICBcIlBhdsO6a292w6FcIixcbiAgICBcIlBhxaFla292w6FcIixcbiAgICBcIlBhxaFrb3bDoVwiLFxuICAgIFwiUGVsaWvDoW5vdsOhXCIsXG4gICAgXCJQZXRyb3ZpY2vDoVwiLFxuICAgIFwiUGV0cnXFoWtvdsOhXCIsXG4gICAgXCJQZcWha292w6FcIixcbiAgICBcIlBsY2hvdsOhXCIsXG4gICAgXCJQbGVrYW5lY292w6FcIixcbiAgICBcIlBvZGhyYWRza8OhXCIsXG4gICAgXCJQb2Rrb25pY2vDoVwiLFxuICAgIFwiUG9saWFrb3bDoVwiLFxuICAgIFwiUHVww6Frb3bDoVwiLFxuICAgIFwiUmFrb3bDoVwiLFxuICAgIFwiUmVwaXNrw6FcIixcbiAgICBcIlJvbWFuxI3DrWtvdsOhXCIsXG4gICAgXCJSdXNvdsOhXCIsXG4gICAgXCJSdcW+acSNa292w6FcIixcbiAgICBcIlJ5Ym7DrcSNZWtvdsOhXCIsXG4gICAgXCJSeWLDoXJvdsOhXCIsXG4gICAgXCJSeWLDoXJpa292w6FcIixcbiAgICBcIlNhbXNvbm92w6FcIixcbiAgICBcIlNlZGxpYWtvdsOhXCIsXG4gICAgXCJTZW5rb3bDoVwiLFxuICAgIFwiU2tsZW5rb3bDoVwiLFxuICAgIFwiU2tva2Fub3bDoVwiLFxuICAgIFwiU2t1dGVja8OhXCIsXG4gICAgXCJTbGHFocWlYW5vdsOhXCIsXG4gICAgXCJTbG9ib2RvdsOhXCIsXG4gICAgXCJTbG9ib2Ruw61rb3bDoVwiLFxuICAgIFwiU2xvdG92w6FcIixcbiAgICBcIlNsb3bDoWtvdsOhXCIsXG4gICAgXCJTbXJla292w6FcIixcbiAgICBcIlN0b2RvbG92w6FcIixcbiAgICBcIlN0cmFrb3bDoVwiLFxuICAgIFwiU3Rybmlza292w6FcIixcbiAgICBcIlN2cmLDrWtvdsOhXCIsXG4gICAgXCJTw6FtZWxvdsOhXCIsXG4gICAgXCJTw71rb3JvdsOhXCIsXG4gICAgXCJUYXRhcm92w6FcIixcbiAgICBcIlRhdGFya292w6FcIixcbiAgICBcIlRhdMOhcm92w6FcIixcbiAgICBcIlRhdMOhcmthb3bDoVwiLFxuICAgIFwiVGhvbWtvdsOhXCIsXG4gICAgXCJUb21lxI1la292w6FcIixcbiAgICBcIlRvbWtvdsOhXCIsXG4gICAgXCJUcnViZW5vdsOhXCIsXG4gICAgXCJUdXLEjW9rb3bDoVwiLFxuICAgIFwiVXJhbW92w6FcIixcbiAgICBcIlVyYmzDrWtvdsOhXCIsXG4gICAgXCJWYWpjw61rb3bDoVwiLFxuICAgIFwiVmFqZG92w6FcIixcbiAgICBcIlZhbGFjaG92w6FcIixcbiAgICBcIlZhbGFjaG92acSNb3bDoVwiLFxuICAgIFwiVmFsZW50b3bDoVwiLFxuICAgIFwiVmFsdcWha292w6FcIixcbiAgICBcIlZhbmVrb3bDoVwiLFxuICAgIFwiVmVzZWxvdsOhXCIsXG4gICAgXCJWaWNlbm92w6FcIixcbiAgICBcIlZpxaHFiG92c2vDoVwiLFxuICAgIFwiVmxhY2hvdsOhXCIsXG4gICAgXCJWb2p0ZWtvdsOhXCIsXG4gICAgXCJWeWRhcmVuw6FcIixcbiAgICBcIlphamFjb3bDoVwiLFxuICAgIFwiWmltb3bDoVwiLFxuICAgIFwiWmlta292w6FcIixcbiAgICBcIlrDoWJvcnNrw6FcIixcbiAgICBcIlrDumJyaWtvdsOhXCIsXG4gICAgXCLEjGFwa292acSNb3bDoVwiLFxuICAgIFwixIxhcGxvdmnEjW92w6FcIixcbiAgICBcIsSMYXJub2d1cnNrw6FcIixcbiAgICBcIsSMaWVybsOhXCIsXG4gICAgXCLEjG9icmRvdsOhXCIsXG4gICAgXCLEjmHEj292w6FcIixcbiAgICBcIsSOdXJpY292w6FcIixcbiAgICBcIsSOdXJpxaFvdsOhXCIsXG4gICAgXCLFoGlkbG92w6FcIixcbiAgICBcIsWgaW1vbm92acSNb3bDoVwiLFxuICAgIFwixaBrcmluaWFyb3bDoVwiLFxuICAgIFwixaBrdWx0w6l0eW92w6FcIixcbiAgICBcIsWgbWFqZG92w6FcIixcbiAgICBcIsWgb2x0w6lzb3bDoVwiLFxuICAgIFwixaBvbHTDvXNvdsOhXCIsXG4gICAgXCLFoHRlZmFub3bDoVwiLFxuICAgIFwixaB0ZWZhbmtvdsOhXCIsXG4gICAgXCLFoHVsY292w6FcIixcbiAgICBcIsWgdXJrb3bDoVwiLFxuICAgIFwixaB2ZWhsb3bDoVwiLFxuICAgIFwixaDFpWFzdG7DoVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkluZy5cIixcbiAgICBcIk1nci5cIixcbiAgICBcIkpVRHIuXCIsXG4gICAgXCJNVURyLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlBoZC5cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJMZWFkXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RcIixcbiAgICAgIFwiQ29ycG9yYXRlXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiRnV0dXJlXCIsXG4gICAgICBcIlByb2R1Y3RcIixcbiAgICAgIFwiTmF0aW9uYWxcIixcbiAgICAgIFwiUmVnaW9uYWxcIixcbiAgICAgIFwiRGlzdHJpY3RcIixcbiAgICAgIFwiQ2VudHJhbFwiLFxuICAgICAgXCJHbG9iYWxcIixcbiAgICAgIFwiQ3VzdG9tZXJcIixcbiAgICAgIFwiSW52ZXN0b3JcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJJbnRlcm5hdGlvbmFsXCIsXG4gICAgICBcIkxlZ2FjeVwiLFxuICAgICAgXCJGb3J3YXJkXCIsXG4gICAgICBcIkludGVybmFsXCIsXG4gICAgICBcIkh1bWFuXCIsXG4gICAgICBcIkNoaWVmXCIsXG4gICAgICBcIlByaW5jaXBhbFwiXG4gICAgXSxcbiAgICBcImxldmVsXCI6IFtcbiAgICAgIFwiU29sdXRpb25zXCIsXG4gICAgICBcIlByb2dyYW1cIixcbiAgICAgIFwiQnJhbmRcIixcbiAgICAgIFwiU2VjdXJpdHlcIixcbiAgICAgIFwiUmVzZWFyY2hcIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIkRpcmVjdGl2ZXNcIixcbiAgICAgIFwiSW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiSW50ZWdyYXRpb25cIixcbiAgICAgIFwiRnVuY3Rpb25hbGl0eVwiLFxuICAgICAgXCJSZXNwb25zZVwiLFxuICAgICAgXCJQYXJhZGlnbVwiLFxuICAgICAgXCJUYWN0aWNzXCIsXG4gICAgICBcIklkZW50aXR5XCIsXG4gICAgICBcIk1hcmtldHNcIixcbiAgICAgIFwiR3JvdXBcIixcbiAgICAgIFwiRGl2aXNpb25cIixcbiAgICAgIFwiQXBwbGljYXRpb25zXCIsXG4gICAgICBcIk9wdGltaXphdGlvblwiLFxuICAgICAgXCJPcGVyYXRpb25zXCIsXG4gICAgICBcIkluZnJhc3RydWN0dXJlXCIsXG4gICAgICBcIkludHJhbmV0XCIsXG4gICAgICBcIkNvbW11bmljYXRpb25zXCIsXG4gICAgICBcIldlYlwiLFxuICAgICAgXCJCcmFuZGluZ1wiLFxuICAgICAgXCJRdWFsaXR5XCIsXG4gICAgICBcIkFzc3VyYW5jZVwiLFxuICAgICAgXCJNb2JpbGl0eVwiLFxuICAgICAgXCJBY2NvdW50c1wiLFxuICAgICAgXCJEYXRhXCIsXG4gICAgICBcIkNyZWF0aXZlXCIsXG4gICAgICBcIkNvbmZpZ3VyYXRpb25cIixcbiAgICAgIFwiQWNjb3VudGFiaWxpdHlcIixcbiAgICAgIFwiSW50ZXJhY3Rpb25zXCIsXG4gICAgICBcIkZhY3RvcnNcIixcbiAgICAgIFwiVXNhYmlsaXR5XCIsXG4gICAgICBcIk1ldHJpY3NcIlxuICAgIF0sXG4gICAgXCJqb2JcIjogW1xuICAgICAgXCJTdXBlcnZpc29yXCIsXG4gICAgICBcIkFzc29jaWF0ZVwiLFxuICAgICAgXCJFeGVjdXRpdmVcIixcbiAgICAgIFwiTGlhc29uXCIsXG4gICAgICBcIk9mZmljZXJcIixcbiAgICAgIFwiTWFuYWdlclwiLFxuICAgICAgXCJFbmdpbmVlclwiLFxuICAgICAgXCJTcGVjaWFsaXN0XCIsXG4gICAgICBcIkRpcmVjdG9yXCIsXG4gICAgICBcIkNvb3JkaW5hdG9yXCIsXG4gICAgICBcIkFkbWluaXN0cmF0b3JcIixcbiAgICAgIFwiQXJjaGl0ZWN0XCIsXG4gICAgICBcIkFuYWx5c3RcIixcbiAgICAgIFwiRGVzaWduZXJcIixcbiAgICAgIFwiUGxhbm5lclwiLFxuICAgICAgXCJPcmNoZXN0cmF0b3JcIixcbiAgICAgIFwiVGVjaG5pY2lhblwiLFxuICAgICAgXCJEZXZlbG9wZXJcIixcbiAgICAgIFwiUHJvZHVjZXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiRmFjaWxpdGF0b3JcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiUmVwcmVzZW50YXRpdmVcIixcbiAgICAgIFwiU3RyYXRlZ2lzdFwiXG4gICAgXVxuICB9LFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7bWFuX2ZpcnN0X25hbWV9ICN7bWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7d29tYW5fZmlyc3RfbmFtZX0gI3t3b21hbl9sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3t3b21hbl9maXJzdF9uYW1lfSAje3dvbWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7d29tYW5fZmlyc3RfbmFtZX0gI3t3b21hbl9sYXN0X25hbWV9XCIsXG4gICAgXCIje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfVwiXG4gIF1cbn07XG5zay5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwOSMjICMjIyAjIyNcIixcbiAgICBcIjAjIyAjIyMjICMjIyNcIixcbiAgICBcIjAjICMjIyMgIyMjI1wiLFxuICAgIFwiKzQyMSAjIyMgIyMjICMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgc3YgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBzdjtcbnN2LnRpdGxlID0gXCJTd2VkaXNoXCI7XG5zdi5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIlPDtmRlclwiLFxuICAgIFwiTm9yclwiLFxuICAgIFwiVsOkc3RcIixcbiAgICBcIsOWc3RlclwiLFxuICAgIFwiQWxpbmdcIixcbiAgICBcIkFyXCIsXG4gICAgXCJBdlwiLFxuICAgIFwiQm9cIixcbiAgICBcIkJyXCIsXG4gICAgXCJCw6VcIixcbiAgICBcIkVrXCIsXG4gICAgXCJFblwiLFxuICAgIFwiRXNrXCIsXG4gICAgXCJGYWxcIixcbiAgICBcIkfDpHZcIixcbiAgICBcIkfDtnRlXCIsXG4gICAgXCJIYVwiLFxuICAgIFwiSGVsc2luZ1wiLFxuICAgIFwiS2FybFwiLFxuICAgIFwiS3Jpc3RcIixcbiAgICBcIktyYW1cIixcbiAgICBcIkt1bmdcIixcbiAgICBcIkvDtlwiLFxuICAgIFwiTHlja1wiLFxuICAgIFwiTnlcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcInN0YWRcIixcbiAgICBcImxhbmRcIixcbiAgICBcInPDpXNcIixcbiAgICBcIsOlc1wiLFxuICAgIFwiaG9sbVwiLFxuICAgIFwidHVuYVwiLFxuICAgIFwic3RhXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCJsw7Z2XCIsXG4gICAgXCJib3JnXCIsXG4gICAgXCJtb3JhXCIsXG4gICAgXCJoYW1uXCIsXG4gICAgXCJmb3JzXCIsXG4gICAgXCJrw7ZwaW5nXCIsXG4gICAgXCJieVwiLFxuICAgIFwiaHVsdFwiLFxuICAgIFwidG9ycFwiLFxuICAgIFwiZnJlZFwiLFxuICAgIFwidmlrXCJcbiAgXSxcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIlJ5c3NsYW5kXCIsXG4gICAgXCJLYW5hZGFcIixcbiAgICBcIktpbmFcIixcbiAgICBcIlVTQVwiLFxuICAgIFwiQnJhc2lsaWVuXCIsXG4gICAgXCJBdXN0cmFsaWVuXCIsXG4gICAgXCJJbmRpZW5cIixcbiAgICBcIkFyZ2VudGluYVwiLFxuICAgIFwiS2F6YWtzdGFuXCIsXG4gICAgXCJBbGdlcmlldFwiLFxuICAgIFwiRFIgS29uZ29cIixcbiAgICBcIkRhbm1hcmtcIixcbiAgICBcIkbDpHLDtmFybmFcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiU2F1ZGlhcmFiaWVuXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIkluZG9uZXNpZW5cIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJMaWJ5ZW5cIixcbiAgICBcIklyYW5cIixcbiAgICBcIk1vbmdvbGlldFwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiVGNoYWRcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIlN5ZGFmcmlrYVwiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkV0aW9waWVuXCIsXG4gICAgXCJCb2xpdmlhXCIsXG4gICAgXCJNYXVyZXRhbmllblwiLFxuICAgIFwiRWd5cHRlblwiLFxuICAgIFwiVGFuemFuaWFcIixcbiAgICBcIk5pZ2VyaWFcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIk1vw6dhbWJpcXVlXCIsXG4gICAgXCJUdXJraWV0XCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJNYXJvY2tvXCIsXG4gICAgXCJWw6RzdHNhaGFyYVwiLFxuICAgIFwiQnVybWFcIixcbiAgICBcIkFmZ2hhbmlzdGFuXCIsXG4gICAgXCJTb21hbGlhXCIsXG4gICAgXCJDZW50cmFsYWZyaWthbnNrYSByZXB1Ymxpa2VuXCIsXG4gICAgXCJTeWRzdWRhblwiLFxuICAgIFwiVWtyYWluYVwiLFxuICAgIFwiQm90c3dhbmFcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJGcmFua3Jpa2VcIixcbiAgICBcIkZyYW5za2EgR3V5YW5hXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlNwYW5pZW5cIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiUGFwdWEgTnlhIEd1aW5lYVwiLFxuICAgIFwiU3ZlcmlnZVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlppbWJhYndlXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiVHlza2xhbmRcIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJGaW5sYW5kXCIsXG4gICAgXCJNYWxheXNpYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiTm9yZ2VcIixcbiAgICBcIlN2YWxiYXJkXCIsXG4gICAgXCJKYW4gTWF5ZW5cIixcbiAgICBcIkVsZmVuYmVuc2t1c3RlblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIkl0YWxpZW5cIixcbiAgICBcIkZpbGlwcGluZXJuYVwiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJOeWEgWmVlbGFuZFwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiU3RvcmJyaXRhbm5pZW5cIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJSdW3DpG5pZW5cIixcbiAgICBcIkxhb3NcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJWaXRyeXNzbGFuZFwiLFxuICAgIFwiS2lyZ2l6aXN0YW5cIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlN5cmllblwiLFxuICAgIFwiS2FtYm9kamFcIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlR1bmlzaWVuXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiVGFkemppa2lzdGFuXCIsXG4gICAgXCJHcmVrbGFuZFwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJOb3Jka29yZWFcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJCdWxnYXJpZW5cIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJTeWRrb3JlYVwiLFxuICAgIFwiVW5nZXJuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiSm9yZGFuaWVuXCIsXG4gICAgXCJTZXJiaWVuXCIsXG4gICAgXCJBemVyYmFqZHpqYW5cIixcbiAgICBcIsOWc3RlcnJpa2VcIixcbiAgICBcIkbDtnJlbmFkZSBBcmFiZW1pcmF0ZW5cIixcbiAgICBcIlRqZWNraWVuXCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiSXJsYW5kXCIsXG4gICAgXCJHZW9yZ2llblwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJMaXRhdWVuXCIsXG4gICAgXCJMZXR0bGFuZFwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiS3JvYXRpZW5cIixcbiAgICBcIkJvc25pZW4gb2NoIEhlcmNlZ292aW5hXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJTbG92YWtpZW5cIixcbiAgICBcIkRvbWluaWthbnNrYSByZXB1Ymxpa2VuXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkVzdGxhbmRcIixcbiAgICBcIkRhbm1hcmtcIixcbiAgICBcIkbDpHLDtmFybmFcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiTmVkZXJsw6RuZGVybmFcIixcbiAgICBcIlNjaHdlaXpcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiTW9sZGF2aWVuXCIsXG4gICAgXCJCZWxnaWVuXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJBcm1lbmllblwiLFxuICAgIFwiQWxiYW5pZW5cIixcbiAgICBcIlNhbG9tb27DtmFybmFcIixcbiAgICBcIkVrdmF0b3JpYWxndWluZWFcIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkhhaXRpXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIk1ha2Vkb25pZW5cIixcbiAgICBcIkRqaWJvdXRpXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIlNsb3ZlbmllblwiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlRpbW9yLUxlc3RlXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJRYXRhclwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJLb3Nvdm9cIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkN5cGVyblwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJUcmluaWRhZCBvY2ggVG9iYWdvXCIsXG4gICAgXCJLYXAgVmVyZGVcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJMdXhlbWJ1cmdcIixcbiAgICBcIktvbW9yZXJuYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJTw6NvIFRvbcOpIG9jaCBQcsOtbmNpcGVcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIk1pa3JvbmVzaWVucyBmZWRlcmVyYWRlIHN0YXRlclwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJTYWludCBMdWNpYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlNleWNoZWxsZXJuYVwiLFxuICAgIFwiQW50aWd1YSBvY2ggQmFyYnVkYVwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIlNhaW50IFZpbmNlbnQgb2NoIEdyZW5hZGluZXJuYVwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hbGRpdmVybmFcIixcbiAgICBcIlNhaW50IEtpdHRzIG9jaCBOZXZpc1wiLFxuICAgIFwiTWFyc2hhbGzDtmFybmFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiVmF0aWthbnN0YXRlblwiXG4gIF0sXG4gIFwiY29tbW9uX3N0cmVldF9zdWZmaXhcIjogW1xuICAgIFwicyBWw6RnXCIsXG4gICAgXCJzIEdhdGFcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiVsOkc3RyYVwiLFxuICAgIFwiw5ZzdHJhXCIsXG4gICAgXCJOb3JyYVwiLFxuICAgIFwiU8O2ZHJhXCIsXG4gICAgXCLDlnZyZVwiLFxuICAgIFwiVW5kcmVcIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkJqw7Zya1wiLFxuICAgIFwiSsOkcm52w6Rnc1wiLFxuICAgIFwiUmluZ1wiLFxuICAgIFwiU2tvbFwiLFxuICAgIFwiU2tvZ3NcIixcbiAgICBcIk55XCIsXG4gICAgXCJHcmFuXCIsXG4gICAgXCJJZHJvdHRzXCIsXG4gICAgXCJTdG9yXCIsXG4gICAgXCJLeXJrXCIsXG4gICAgXCJJbmR1c3RyaVwiLFxuICAgIFwiUGFya1wiLFxuICAgIFwiU3RyYW5kXCIsXG4gICAgXCJTa29sXCIsXG4gICAgXCJUcsOkZGfDpXJkXCIsXG4gICAgXCLDhG5nc1wiLFxuICAgIFwiS3lya29cIixcbiAgICBcIlZpbGxhXCIsXG4gICAgXCJFa1wiLFxuICAgIFwiS3Zhcm5cIixcbiAgICBcIlN0YXRpb25zXCIsXG4gICAgXCJCYWNrXCIsXG4gICAgXCJGdXJ1XCIsXG4gICAgXCJHZW5cIixcbiAgICBcIkZhYnJpa3NcIixcbiAgICBcIsOFa2VyXCIsXG4gICAgXCJCw6Rja1wiLFxuICAgIFwiQXNwXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcInbDpGdlblwiLFxuICAgIFwiZ2F0YW5cIixcbiAgICBcImdyw6RuZGVuXCIsXG4gICAgXCJnw6RyZGV0XCIsXG4gICAgXCJhbGzDqW5cIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkJsZWtpbmdlXCIsXG4gICAgXCJEYWxhcm5hXCIsXG4gICAgXCJHb3RsYW5kXCIsXG4gICAgXCJHw6R2bGVib3JnXCIsXG4gICAgXCJHw7Z0ZWJvcmdcIixcbiAgICBcIkhhbGxhbmRcIixcbiAgICBcIkrDpG10bGFuZFwiLFxuICAgIFwiSsO2bmvDtnBpbmdcIixcbiAgICBcIkthbG1hclwiLFxuICAgIFwiS3Jvbm9iZXJnXCIsXG4gICAgXCJOb3JyYm90dGVuXCIsXG4gICAgXCJTa2FyYWJvcmdcIixcbiAgICBcIlNrw6VuZVwiLFxuICAgIFwiU3RvY2tob2xtXCIsXG4gICAgXCJTw7ZkZXJtYW5sYW5kXCIsXG4gICAgXCJVcHBzYWxhXCIsXG4gICAgXCJWw6RybWxhbmRcIixcbiAgICBcIlbDpHN0ZXJib3R0ZW5cIixcbiAgICBcIlbDpHN0ZXJub3JybGFuZFwiLFxuICAgIFwiVsOkc3RtYW5sYW5kXCIsXG4gICAgXCLDhGx2c2JvcmdcIixcbiAgICBcIsOWcmVicm9cIixcbiAgICBcIsOWc3RlcmfDtnRsYW5kXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9I3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tzdHJlZXRfcHJlZml4fSAje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y29tbW9uX3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7Y29tbW9uX3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkxnaC4gIyMjXCIsXG4gICAgXCJIdXMgIyMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJTdmVyaWdlXCJcbiAgXVxufTtcbnN2LmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkdydXBwZW5cIixcbiAgICBcIkFCXCIsXG4gICAgXCJIQlwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkludmVzdG1lbnRcIixcbiAgICBcIktvbW1hbmRpdGJvbGFnXCIsXG4gICAgXCJBa3RpZWJvbGFnXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIlxuICBdXG59O1xuc3YuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJzZVwiLFxuICAgIFwibnVcIixcbiAgICBcImluZm9cIixcbiAgICBcImNvbVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnN2Lm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZV93b21lblwiOiBbXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiTWFyZ2FyZXRhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiQmlyZ2l0dGFcIixcbiAgICBcIktyaXN0aW5hXCIsXG4gICAgXCJLYXJpblwiLFxuICAgIFwiRWxpc2FiZXRcIixcbiAgICBcIk1hcmllXCJcbiAgXSxcbiAgXCJmaXJzdF9uYW1lX21lblwiOiBbXG4gICAgXCJFcmlrXCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJLYXJsXCIsXG4gICAgXCJBbmRlcnNcIixcbiAgICBcIlBlclwiLFxuICAgIFwiSm9oYW5cIixcbiAgICBcIk5pbHNcIixcbiAgICBcIkxlbm5hcnRcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkhhbnNcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJKb2hhbnNzb25cIixcbiAgICBcIkFuZGVyc3NvblwiLFxuICAgIFwiS2FybHNzb25cIixcbiAgICBcIk5pbHNzb25cIixcbiAgICBcIkVyaWtzc29uXCIsXG4gICAgXCJMYXJzc29uXCIsXG4gICAgXCJPbHNzb25cIixcbiAgICBcIlBlcnNzb25cIixcbiAgICBcIlN2ZW5zc29uXCIsXG4gICAgXCJHdXN0YWZzc29uXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiRHIuXCIsXG4gICAgXCJQcm9mLlwiLFxuICAgIFwiUGhELlwiXG4gIF0sXG4gIFwidGl0bGVcIjoge1xuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIkxlYWRcIixcbiAgICAgIFwiU2VuaW9yXCIsXG4gICAgICBcIkRpcmVjdFwiLFxuICAgICAgXCJDb3Jwb3JhdGVcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJGdXR1cmVcIixcbiAgICAgIFwiUHJvZHVjdFwiLFxuICAgICAgXCJOYXRpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cmljdFwiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDdXN0b21lclwiLFxuICAgICAgXCJJbnZlc3RvclwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiTGVnYWN5XCIsXG4gICAgICBcIkZvcndhcmRcIixcbiAgICAgIFwiSW50ZXJuYWxcIixcbiAgICAgIFwiSHVtYW5cIixcbiAgICAgIFwiQ2hpZWZcIixcbiAgICAgIFwiUHJpbmNpcGFsXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1dGlvbnNcIixcbiAgICAgIFwiUHJvZ3JhbVwiLFxuICAgICAgXCJCcmFuZFwiLFxuICAgICAgXCJTZWN1cml0eVwiLFxuICAgICAgXCJSZXNlYXJjaFwiLFxuICAgICAgXCJNYXJrZXRpbmdcIixcbiAgICAgIFwiRGlyZWN0aXZlc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJJbnRlZ3JhdGlvblwiLFxuICAgICAgXCJGdW5jdGlvbmFsaXR5XCIsXG4gICAgICBcIlJlc3BvbnNlXCIsXG4gICAgICBcIlBhcmFkaWdtXCIsXG4gICAgICBcIlRhY3RpY3NcIixcbiAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgIFwiTWFya2V0c1wiLFxuICAgICAgXCJHcm91cFwiLFxuICAgICAgXCJEaXZpc2lvblwiLFxuICAgICAgXCJBcHBsaWNhdGlvbnNcIixcbiAgICAgIFwiT3B0aW1pemF0aW9uXCIsXG4gICAgICBcIk9wZXJhdGlvbnNcIixcbiAgICAgIFwiSW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tbXVuaWNhdGlvbnNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkJyYW5kaW5nXCIsXG4gICAgICBcIlF1YWxpdHlcIixcbiAgICAgIFwiQXNzdXJhbmNlXCIsXG4gICAgICBcIk1vYmlsaXR5XCIsXG4gICAgICBcIkFjY291bnRzXCIsXG4gICAgICBcIkRhdGFcIixcbiAgICAgIFwiQ3JlYXRpdmVcIixcbiAgICAgIFwiQ29uZmlndXJhdGlvblwiLFxuICAgICAgXCJBY2NvdW50YWJpbGl0eVwiLFxuICAgICAgXCJJbnRlcmFjdGlvbnNcIixcbiAgICAgIFwiRmFjdG9yc1wiLFxuICAgICAgXCJVc2FiaWxpdHlcIixcbiAgICAgIFwiTWV0cmljc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNzb2NpYXRlXCIsXG4gICAgICBcIkV4ZWN1dGl2ZVwiLFxuICAgICAgXCJMaWFzb25cIixcbiAgICAgIFwiT2ZmaWNlclwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkVuZ2luZWVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmF0b3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRvclwiLFxuICAgICAgXCJBcmNoaXRlY3RcIixcbiAgICAgIFwiQW5hbHlzdFwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJQbGFubmVyXCIsXG4gICAgICBcIk9yY2hlc3RyYXRvclwiLFxuICAgICAgXCJUZWNobmljaWFuXCIsXG4gICAgICBcIkRldmVsb3BlclwiLFxuICAgICAgXCJQcm9kdWNlclwiLFxuICAgICAgXCJDb25zdWx0YW50XCIsXG4gICAgICBcIkFzc2lzdGFudFwiLFxuICAgICAgXCJGYWNpbGl0YXRvclwiLFxuICAgICAgXCJBZ2VudFwiLFxuICAgICAgXCJSZXByZXNlbnRhdGl2ZVwiLFxuICAgICAgXCJTdHJhdGVnaXN0XCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lX3dvbWVufSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuc3YucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjIy0jIyMjI1wiLFxuICAgIFwiIyMjIy0jIyMjIyNcIlxuICBdXG59O1xuc3YuY2VsbF9waG9uZSA9IHtcbiAgXCJjb21tb25fY2VsbF9wcmVmaXhcIjogW1xuICAgIDU2LFxuICAgIDYyLFxuICAgIDU5XG4gIF0sXG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIje2NvbW1vbl9jZWxsX3ByZWZpeH0tIyMjLSMjIyNcIlxuICBdXG59O1xuc3YuY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwidml0XCIsXG4gICAgXCJzaWx2ZXJcIixcbiAgICBcImdyw6VcIixcbiAgICBcInN2YXJ0XCIsXG4gICAgXCJyw7ZkXCIsXG4gICAgXCJncsO2blwiLFxuICAgIFwiYmzDpVwiLFxuICAgIFwiZ3VsXCIsXG4gICAgXCJsaWxhXCIsXG4gICAgXCJpbmRpZ29cIixcbiAgICBcImd1bGRcIixcbiAgICBcImJydW5cIixcbiAgICBcInJvc2FcIixcbiAgICBcInB1cnB1clwiLFxuICAgIFwia29yYWxsXCJcbiAgXSxcbiAgXCJkZXBhcnRtZW50XCI6IFtcbiAgICBcIkLDtmNrZXJcIixcbiAgICBcIkZpbG1lclwiLFxuICAgIFwiTXVzaWtcIixcbiAgICBcIlNwZWxcIixcbiAgICBcIkVsZWt0cm9uaWtcIixcbiAgICBcIkRhdG9yZXJcIixcbiAgICBcIkhlbVwiLFxuICAgIFwiVHLDpGRnw6VyZFwiLFxuICAgIFwiVmVya3R5Z1wiLFxuICAgIFwiTGl2c21lZGVsXCIsXG4gICAgXCJIw6Rsc2FcIixcbiAgICBcIlNrw7ZuaGV0XCIsXG4gICAgXCJMZWtzYWtlclwiLFxuICAgIFwiS2zDpGRzZWxcIixcbiAgICBcIlNrb3JcIixcbiAgICBcIlNteWNrZW5cIixcbiAgICBcIlNwb3J0XCJcbiAgXSxcbiAgXCJwcm9kdWN0X25hbWVcIjoge1xuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiTGl0ZW5cIixcbiAgICAgIFwiRXJnb25vbWlza1wiLFxuICAgICAgXCJSb2J1c3RcIixcbiAgICAgIFwiSW50ZWxsaWdlbnRcIixcbiAgICAgIFwiU8O2dFwiLFxuICAgICAgXCJPdHJvbGlnXCIsXG4gICAgICBcIkZhdGFzdGlza1wiLFxuICAgICAgXCJQcmFrdGlza1wiLFxuICAgICAgXCJTbGltbWFkXCIsXG4gICAgICBcIkdyeW1cIlxuICAgIF0sXG4gICAgXCJtYXRlcmlhbFwiOiBbXG4gICAgICBcIlN0w6VsXCIsXG4gICAgICBcIk1ldGFsbFwiLFxuICAgICAgXCJUcsOkXCIsXG4gICAgICBcIkJldG9uZ1wiLFxuICAgICAgXCJQbGFzdFwiLFxuICAgICAgXCJCb211bFwiLFxuICAgICAgXCJHcm5pdFwiLFxuICAgICAgXCJHdW1taVwiLFxuICAgICAgXCJMYXRleFwiXG4gICAgXSxcbiAgICBcInByb2R1Y3RcIjogW1xuICAgICAgXCJTdG9sXCIsXG4gICAgICBcIkJpbFwiLFxuICAgICAgXCJEYXRvclwiLFxuICAgICAgXCJIYW5kc2thclwiLFxuICAgICAgXCJQYW50c1wiLFxuICAgICAgXCJTaGlydFwiLFxuICAgICAgXCJUYWJsZVwiLFxuICAgICAgXCJTaG9lc1wiLFxuICAgICAgXCJIYXRcIlxuICAgIF1cbiAgfVxufTtcbnN2LnRlYW0gPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIklGXCIsXG4gICAgXCJGRlwiLFxuICAgIFwiQktcIixcbiAgICBcIkhLXCIsXG4gICAgXCJBSUZcIixcbiAgICBcIlNLXCIsXG4gICAgXCJGQ1wiLFxuICAgIFwiU0tcIixcbiAgICBcIkJvSVNcIixcbiAgICBcIkZLXCIsXG4gICAgXCJCSVNcIixcbiAgICBcIkZJRlwiLFxuICAgIFwiSUtcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tBZGRyZXNzLmNpdHl9ICN7c3VmZml4fVwiXG4gIF1cbn07XG4iLCJ2YXIgdmkgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSB2aTtcbnZpLnRpdGxlID0gXCJWaWV0bmFtZXNlXCI7XG52aS5hZGRyZXNzID0ge1xuICBcImNpdHlfcm9vdFwiOiBbXG4gICAgXCJC4bqvYyBHaWFuZ1wiLFxuICAgIFwiQuG6r2MgS+G6oW5cIixcbiAgICBcIkLhuq9jIE5pbmhcIixcbiAgICBcIkNhbyBC4bqxbmdcIixcbiAgICBcIsSQaeG7h24gQmnDqm5cIixcbiAgICBcIkjDoCBHaWFuZ1wiLFxuICAgIFwiSMOgIE5hbVwiLFxuICAgIFwiSMOgIFTDonlcIixcbiAgICBcIkjhuqNpIETGsMahbmdcIixcbiAgICBcIlRQIEjhuqNpIFBow7JuZ1wiLFxuICAgIFwiSMOyYSBCw6xuaFwiLFxuICAgIFwiSMawbmcgWcOqblwiLFxuICAgIFwiTGFpIENow6J1XCIsXG4gICAgXCJMw6BvIENhaVwiLFxuICAgIFwiTOG6oW5nIFPGoW5cIixcbiAgICBcIk5hbSDEkOG7i25oXCIsXG4gICAgXCJOaW5oIELDrG5oXCIsXG4gICAgXCJQaMO6IFRo4buNXCIsXG4gICAgXCJRdeG6o25nIE5pbmhcIixcbiAgICBcIlPGoW4gTGFcIixcbiAgICBcIlRow6FpIELDrG5oXCIsXG4gICAgXCJUaMOhaSBOZ3V5w6puXCIsXG4gICAgXCJUdXnDqm4gUXVhbmdcIixcbiAgICBcIlbEqW5oIFBow7pjXCIsXG4gICAgXCJZw6puIELDoWlcIixcbiAgICBcIlRQIMSQw6AgTuG6tW5nXCIsXG4gICAgXCJCw6xuaCDEkOG7i25oXCIsXG4gICAgXCLEkOG6r2sgTOG6r2tcIixcbiAgICBcIsSQ4bqvayBOw7RuZ1wiLFxuICAgIFwiR2lhIExhaVwiLFxuICAgIFwiSMOgIFTEqW5oXCIsXG4gICAgXCJLaMOhbmggSMOyYVwiLFxuICAgIFwiS29uIFR1bVwiLFxuICAgIFwiTmdo4buHIEFuXCIsXG4gICAgXCJQaMO6IFnDqm5cIixcbiAgICBcIlF14bqjbmcgQsOsbmhcIixcbiAgICBcIlF14bqjbmcgTmFtXCIsXG4gICAgXCJRdeG6o25nIE5nw6NpXCIsXG4gICAgXCJRdeG6o25nIFRy4buLXCIsXG4gICAgXCJUaGFuaCBIw7NhXCIsXG4gICAgXCJUaOG7q2EgVGhpw6puIEh14bq/XCIsXG4gICAgXCJUUCBUUC4gSOG7kyBDaMOtIE1pbmhcIixcbiAgICBcIkFuIEdpYW5nXCIsXG4gICAgXCJCw6AgUuG7i2EgVsWpbmcgVMOgdVwiLFxuICAgIFwiQuG6oWMgTGnDqnVcIixcbiAgICBcIkLhur9uIFRyZVwiLFxuICAgIFwiQsOsbmggRMawxqFuZ1wiLFxuICAgIFwiQsOsbmggUGjGsOG7m2NcIixcbiAgICBcIkLDrG5oIFRodeG6rW5cIixcbiAgICBcIkPDoCBNYXVcIixcbiAgICBcIlRQIEPhuqduIFRoxqFcIixcbiAgICBcIsSQ4buTbmcgTmFpXCIsXG4gICAgXCLEkOG7k25nIFRow6FwXCIsXG4gICAgXCJI4bqtdSBHaWFuZ1wiLFxuICAgIFwiS2nDqm4gR2lhbmdcIixcbiAgICBcIkzDom0gxJDhu5NuZ1wiLFxuICAgIFwiTG9uZyBBblwiLFxuICAgIFwiTmluaCBUaHXhuq1uXCIsXG4gICAgXCJTw7NjIFRyxINuZ1wiLFxuICAgIFwiVMOieSBOaW5oXCIsXG4gICAgXCJUaeG7gW4gR2lhbmdcIixcbiAgICBcIlRyw6AgVmluaFwiLFxuICAgIFwiVsSpbmggTG9uZ1wiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcm9vdH1cIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFwiL1tBLVBSLVVXWVowLTldW0EtSEstWTAtOV1bQUVITU5QUlRWWFkwLTldP1tBQkVITU5QUlZXWFkwLTldPyB7MSwyfVswLTldW0FCRC1ISkxOLVVXLVpdezJ9L1wiLFxuICBcImNvdW50eVwiOiBbXG4gICAgXCJBdm9uXCIsXG4gICAgXCJCZWRmb3Jkc2hpcmVcIixcbiAgICBcIkJlcmtzaGlyZVwiLFxuICAgIFwiQm9yZGVyc1wiLFxuICAgIFwiQnVja2luZ2hhbXNoaXJlXCIsXG4gICAgXCJDYW1icmlkZ2VzaGlyZVwiLFxuICAgIFwiQ2VudHJhbFwiLFxuICAgIFwiQ2hlc2hpcmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2x3eWRcIixcbiAgICBcIkNvcm53YWxsXCIsXG4gICAgXCJDb3VudHkgQW50cmltXCIsXG4gICAgXCJDb3VudHkgQXJtYWdoXCIsXG4gICAgXCJDb3VudHkgRG93blwiLFxuICAgIFwiQ291bnR5IEZlcm1hbmFnaFwiLFxuICAgIFwiQ291bnR5IExvbmRvbmRlcnJ5XCIsXG4gICAgXCJDb3VudHkgVHlyb25lXCIsXG4gICAgXCJDdW1icmlhXCIsXG4gICAgXCJEZXJieXNoaXJlXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRG9yc2V0XCIsXG4gICAgXCJEdW1mcmllcyBhbmQgR2FsbG93YXlcIixcbiAgICBcIkR1cmhhbVwiLFxuICAgIFwiRHlmZWRcIixcbiAgICBcIkVhc3QgU3Vzc2V4XCIsXG4gICAgXCJFc3NleFwiLFxuICAgIFwiRmlmZVwiLFxuICAgIFwiR2xvdWNlc3RlcnNoaXJlXCIsXG4gICAgXCJHcmFtcGlhblwiLFxuICAgIFwiR3JlYXRlciBNYW5jaGVzdGVyXCIsXG4gICAgXCJHd2VudFwiLFxuICAgIFwiR3d5bmVkZCBDb3VudHlcIixcbiAgICBcIkhhbXBzaGlyZVwiLFxuICAgIFwiSGVyZWZvcmRzaGlyZVwiLFxuICAgIFwiSGVydGZvcmRzaGlyZVwiLFxuICAgIFwiSGlnaGxhbmRzIGFuZCBJc2xhbmRzXCIsXG4gICAgXCJIdW1iZXJzaWRlXCIsXG4gICAgXCJJc2xlIG9mIFdpZ2h0XCIsXG4gICAgXCJLZW50XCIsXG4gICAgXCJMYW5jYXNoaXJlXCIsXG4gICAgXCJMZWljZXN0ZXJzaGlyZVwiLFxuICAgIFwiTGluY29sbnNoaXJlXCIsXG4gICAgXCJMb3RoaWFuXCIsXG4gICAgXCJNZXJzZXlzaWRlXCIsXG4gICAgXCJNaWQgR2xhbW9yZ2FuXCIsXG4gICAgXCJOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aCBZb3Jrc2hpcmVcIixcbiAgICBcIk5vcnRoYW1wdG9uc2hpcmVcIixcbiAgICBcIk5vcnRodW1iZXJsYW5kXCIsXG4gICAgXCJOb3R0aW5naGFtc2hpcmVcIixcbiAgICBcIk94Zm9yZHNoaXJlXCIsXG4gICAgXCJQb3d5c1wiLFxuICAgIFwiUnV0bGFuZFwiLFxuICAgIFwiU2hyb3BzaGlyZVwiLFxuICAgIFwiU29tZXJzZXRcIixcbiAgICBcIlNvdXRoIEdsYW1vcmdhblwiLFxuICAgIFwiU291dGggWW9ya3NoaXJlXCIsXG4gICAgXCJTdGFmZm9yZHNoaXJlXCIsXG4gICAgXCJTdHJhdGhjbHlkZVwiLFxuICAgIFwiU3VmZm9sa1wiLFxuICAgIFwiU3VycmV5XCIsXG4gICAgXCJUYXlzaWRlXCIsXG4gICAgXCJUeW5lIGFuZCBXZWFyXCIsXG4gICAgXCJWaeG7h3QgTmFtXCIsXG4gICAgXCJXYXJ3aWNrc2hpcmVcIixcbiAgICBcIldlc3QgR2xhbW9yZ2FuXCIsXG4gICAgXCJXZXN0IE1pZGxhbmRzXCIsXG4gICAgXCJXZXN0IFN1c3NleFwiLFxuICAgIFwiV2VzdCBZb3Jrc2hpcmVcIixcbiAgICBcIldpbHRzaGlyZVwiLFxuICAgIFwiV29yY2VzdGVyc2hpcmVcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJWaeG7h3QgTmFtXCJcbiAgXVxufTtcbnZpLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcImluZm9cIixcbiAgICBcInZuXCIsXG4gICAgXCJjb20udm5cIlxuICBdXG59O1xudmkucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDEjIyMjICMjIyMjXCIsXG4gICAgXCIwMSMjIyAjIyMjIyNcIixcbiAgICBcIjAxIzEgIyMjICMjIyNcIixcbiAgICBcIjAxMSMgIyMjICMjIyNcIixcbiAgICBcIjAyIyAjIyMjICMjIyNcIixcbiAgICBcIjAzIyMgIyMjICMjIyNcIixcbiAgICBcIjA1NSAjIyMjICMjIyNcIixcbiAgICBcIjA1NiAjIyMjICMjIyNcIixcbiAgICBcIjA4MDAgIyMjICMjIyNcIixcbiAgICBcIjA4IyMgIyMjICMjIyNcIixcbiAgICBcIjA5IyMgIyMjICMjIyNcIixcbiAgICBcIjAxNjk3NyAjIyMjXCIsXG4gICAgXCIwMSMjIyAjIyMjI1wiLFxuICAgIFwiMDUwMCAjIyMjIyNcIixcbiAgICBcIjA4MDAgIyMjIyMjXCJcbiAgXVxufTtcbnZpLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwNzQjIyAjIyMjIyNcIixcbiAgICBcIjA3NSMjICMjIyMjI1wiLFxuICAgIFwiMDc2IyMgIyMjIyMjXCIsXG4gICAgXCIwNzcjIyAjIyMjIyNcIixcbiAgICBcIjA3OCMjICMjIyMjI1wiLFxuICAgIFwiMDc5IyMgIyMjIyMjXCJcbiAgXVxufTtcbnZpLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJQaOG6oW1cIixcbiAgICBcIk5ndXnhu4VuXCIsXG4gICAgXCJUcuG6p25cIixcbiAgICBcIkzDqlwiLFxuICAgIFwiTMO9XCIsXG4gICAgXCJIb8OgbmdcIixcbiAgICBcIlBoYW5cIixcbiAgICBcIlbFqVwiLFxuICAgIFwiVMSDbmdcIixcbiAgICBcIsSQ4bq3bmdcIixcbiAgICBcIkLDuWlcIixcbiAgICBcIsSQ4buXXCIsXG4gICAgXCJI4buTXCIsXG4gICAgXCJOZ8O0XCIsXG4gICAgXCJExrDGoW5nXCIsXG4gICAgXCLEkMOgb1wiLFxuICAgIFwixJBvw6BuXCIsXG4gICAgXCJWxrDGoW5nXCIsXG4gICAgXCJUcuG7i25oXCIsXG4gICAgXCLEkGluaFwiLFxuICAgIFwiTMOibVwiLFxuICAgIFwiUGjDuW5nXCIsXG4gICAgXCJNYWlcIixcbiAgICBcIlTDtFwiLFxuICAgIFwiVHLGsMahbmdcIixcbiAgICBcIkjDoFwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIk5hbVwiLFxuICAgIFwiVHJ1bmdcIixcbiAgICBcIlRoYW5oXCIsXG4gICAgXCJUaOG7i1wiLFxuICAgIFwiVsSDblwiLFxuICAgIFwiRMawxqFuZ1wiLFxuICAgIFwiVMSDbmdcIixcbiAgICBcIlF14buRY1wiLFxuICAgIFwiTmjGsFwiLFxuICAgIFwiUGjhuqFtXCIsXG4gICAgXCJOZ3V54buFblwiLFxuICAgIFwiVHLhuqduXCIsXG4gICAgXCJMw6pcIixcbiAgICBcIkzDvVwiLFxuICAgIFwiSG/DoG5nXCIsXG4gICAgXCJQaGFuXCIsXG4gICAgXCJWxalcIixcbiAgICBcIlTEg25nXCIsXG4gICAgXCLEkOG6t25nXCIsXG4gICAgXCJCw7lpXCIsXG4gICAgXCLEkOG7l1wiLFxuICAgIFwiSOG7k1wiLFxuICAgIFwiTmfDtFwiLFxuICAgIFwiRMawxqFuZ1wiLFxuICAgIFwixJDDoG9cIixcbiAgICBcIsSQb8OgblwiLFxuICAgIFwiVsawxqFuZ1wiLFxuICAgIFwiVHLhu4tuaFwiLFxuICAgIFwixJBpbmhcIixcbiAgICBcIkzDom1cIixcbiAgICBcIlBow7luZ1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJUw7RcIixcbiAgICBcIlRyxrDGoW5nXCIsXG4gICAgXCJIw6BcIixcbiAgICBcIlZpbmhcIixcbiAgICBcIk5odW5nXCIsXG4gICAgXCJIw7JhXCIsXG4gICAgXCJUaeG6v25cIixcbiAgICBcIlTDom1cIixcbiAgICBcIkLhu611XCIsXG4gICAgXCJMb2FuXCIsXG4gICAgXCJIaeG7gW5cIixcbiAgICBcIkjhuqNpXCIsXG4gICAgXCJWw6JuXCIsXG4gICAgXCJLaGFcIixcbiAgICBcIk1pbmhcIixcbiAgICBcIk5ow6JuXCIsXG4gICAgXCJUcmnhu4d1XCIsXG4gICAgXCJUdcOiblwiLFxuICAgIFwiSOG7r3VcIixcbiAgICBcIsSQ4bupY1wiLFxuICAgIFwiUGjDulwiLFxuICAgIFwiS2hvYVwiLFxuICAgIFwiVGjhuq9nblwiLFxuICAgIFwiU8ahblwiLFxuICAgIFwiRHVuZ1wiLFxuICAgIFwiVMO6XCIsXG4gICAgXCJUcmluaFwiLFxuICAgIFwiVGjhuqNvXCIsXG4gICAgXCJTYVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJMb25nXCIsXG4gICAgXCJUaGlcIixcbiAgICBcIkPGsOG7nW5nXCIsXG4gICAgXCJOZ+G7jWNcIixcbiAgICBcIlNpbmhcIixcbiAgICBcIktoYW5nXCIsXG4gICAgXCJQaG9uZ1wiLFxuICAgIFwiVGjhuq9tXCIsXG4gICAgXCJUaHVcIixcbiAgICBcIlRo4buneVwiLFxuICAgIFwiTmjDoG5cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG52aS5jb21wYW55ID0ge1xuICBcInByZWZpeFwiOiBbXG4gICAgXCJDw7RuZyB0eVwiLFxuICAgIFwiQ3R5IFROSEhcIixcbiAgICBcIkN0eVwiLFxuICAgIFwiQ+G7rWEgaMOgbmdcIixcbiAgICBcIlRydW5nIHTDom1cIixcbiAgICBcIkNoaSBuaMOhbmhcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbnZpLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcIsSRw6NcIixcbiAgICBcIsSRYW5nXCIsXG4gICAgXCLhu6tcIixcbiAgICBcIuG7nVwiLFxuICAgIFwiw6FcIixcbiAgICBcImtow7RuZ1wiLFxuICAgIFwiYmnhur90XCIsXG4gICAgXCJnw6xcIixcbiAgICBcImjhur90XCIsXG4gICAgXCLEkcOidVwiLFxuICAgIFwibmhhXCIsXG4gICAgXCJ0aOG6v1wiLFxuICAgIFwidGjDrFwiLFxuICAgIFwibMOgXCIsXG4gICAgXCLEkcOhbmhcIixcbiAgICBcIsSRw6FcIixcbiAgICBcIsSR4bqtcFwiLFxuICAgIFwicGjDoVwiLFxuICAgIFwidmnhur90XCIsXG4gICAgXCJ24bq9XCIsXG4gICAgXCJ0w7RcIixcbiAgICBcInRodcOqXCIsXG4gICAgXCJtxrDhu5tuXCIsXG4gICAgXCJtxrDhu6NuXCIsXG4gICAgXCJtdWFcIixcbiAgICBcIm3hu5l0XCIsXG4gICAgXCJoYWlcIixcbiAgICBcImJhXCIsXG4gICAgXCJi4buRblwiLFxuICAgIFwibsSDbVwiLFxuICAgIFwic8OhdVwiLFxuICAgIFwiYuG6o3lcIixcbiAgICBcInTDoW1cIixcbiAgICBcImNow61uXCIsXG4gICAgXCJtxrDhu51pXCIsXG4gICAgXCJ0aMO0aVwiLFxuICAgIFwidmnhu4djXCIsXG4gICAgXCJuZ2jhu4lcIixcbiAgICBcImzDoG1cIixcbiAgICBcIm5ow6BcIixcbiAgICBcImPhu61hXCIsXG4gICAgXCJ4ZVwiLFxuICAgIFwixJHhuqFwXCIsXG4gICAgXCLDoWNcIixcbiAgICBcIsSR4buZY1wiLFxuICAgIFwia2hv4bqjbmdcIixcbiAgICBcImtob2FuXCIsXG4gICAgXCJ0aHV54buBblwiLFxuICAgIFwidMOgdVwiLFxuICAgIFwiYsOoXCIsXG4gICAgXCJs4bqndVwiLFxuICAgIFwieGFuaFwiLFxuICAgIFwixJHhu49cIixcbiAgICBcInTDrW1cIixcbiAgICBcInbDoG5nXCIsXG4gICAgXCJraW1cIixcbiAgICBcImNo4buJXCIsXG4gICAgXCJraMOidVwiLFxuICAgIFwibWF5XCIsXG4gICAgXCJ2w6FcIixcbiAgICBcImVtXCIsXG4gICAgXCJhbmhcIixcbiAgICBcInnDqnVcIixcbiAgICBcInRoxrDGoW5nXCIsXG4gICAgXCJ0aMOtY2hcIixcbiAgICBcImNvblwiLFxuICAgIFwiY8OhaVwiLFxuICAgIFwiYsOgblwiLFxuICAgIFwiZ2jhur9cIixcbiAgICBcInThu6dcIixcbiAgICBcInF14bqnblwiLFxuICAgIFwiw6FvXCIsXG4gICAgXCJuw7NuXCIsXG4gICAgXCJkw6lwXCIsXG4gICAgXCJnacOgeVwiLFxuICAgIFwibOG7l2lcIixcbiAgICBcIsSRxrDhu6NjXCIsXG4gICAgXCJnaMOpdFwiLFxuICAgIFwiZ2nhur90XCIsXG4gICAgXCJjaOG6v3RcIixcbiAgICBcImjhur90XCIsXG4gICAgXCJ0w7RpXCIsXG4gICAgXCJi4bqhblwiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0cuG7nWlcIixcbiAgICBcInRyxINuZ1wiLFxuICAgIFwibcOieVwiLFxuICAgIFwiZ2nDs1wiLFxuICAgIFwibcOheVwiLFxuICAgIFwiaMOgbmdcIixcbiAgICBcImjDs2FcIixcbiAgICBcImxlb1wiLFxuICAgIFwibsO6aVwiLFxuICAgIFwiYsahaVwiLFxuICAgIFwiYmnhu4NuXCIsXG4gICAgXCJjaMOsbVwiLFxuICAgIFwieHXhu5NuZ1wiLFxuICAgIFwibsaw4bubY1wiLFxuICAgIFwibmfhu410XCIsXG4gICAgXCJydeG7mW5nXCIsXG4gICAgXCLEkeG7k25nXCIsXG4gICAgXCJxdcOqXCIsXG4gICAgXCJoxrDGoW5nXCJcbiAgXVxufTtcbiIsInZhciB6aF9DTiA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHpoX0NOO1xuemhfQ04udGl0bGUgPSBcIkNoaW5lc2VcIjtcbnpoX0NOLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwi6ZW/XCIsXG4gICAgXCLkuIpcIixcbiAgICBcIuWNl1wiLFxuICAgIFwi6KW/XCIsXG4gICAgXCLljJdcIixcbiAgICBcIuivuFwiLFxuICAgIFwi5a6BXCIsXG4gICAgXCLnj6BcIixcbiAgICBcIuatplwiLFxuICAgIFwi6KGhXCIsXG4gICAgXCLmiJBcIixcbiAgICBcIuemj1wiLFxuICAgIFwi5Y6mXCIsXG4gICAgXCLotLVcIixcbiAgICBcIuWQiVwiLFxuICAgIFwi5rW3XCIsXG4gICAgXCLlpKpcIixcbiAgICBcIua1jlwiLFxuICAgIFwi5a6JXCIsXG4gICAgXCLlkIlcIixcbiAgICBcIuWMhVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwi5rKZ5biCXCIsXG4gICAgXCLkuqzluIJcIixcbiAgICBcIuWugeW4glwiLFxuICAgIFwi5a6J5biCXCIsXG4gICAgXCLkuaHljr9cIixcbiAgICBcIua1t+W4glwiLFxuICAgIFwi56CB5biCXCIsXG4gICAgXCLmsYnluIJcIixcbiAgICBcIumYs+W4glwiLFxuICAgIFwi6YO95biCXCIsXG4gICAgXCLlt57luIJcIixcbiAgICBcIumXqOW4glwiLFxuICAgIFwi6Ziz5biCXCIsXG4gICAgXCLlj6PluIJcIixcbiAgICBcIuWOn+W4glwiLFxuICAgIFwi5Y2X5biCXCIsXG4gICAgXCLlvr3luIJcIixcbiAgICBcIuael+W4glwiLFxuICAgIFwi5aS05biCXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwi5be3XCIsXG4gICAgXCLooZdcIixcbiAgICBcIui3r1wiLFxuICAgIFwi5qGlXCIsXG4gICAgXCLkvqxcIixcbiAgICBcIuaXgVwiLFxuICAgIFwi5Lit5b+DXCIsXG4gICAgXCLmoItcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwi5YyX5Lqs5biCXCIsXG4gICAgXCLkuIrmtbfluIJcIixcbiAgICBcIuWkqea0peW4glwiLFxuICAgIFwi6YeN5bqG5biCXCIsXG4gICAgXCLpu5HpvpnmsZ/nnIFcIixcbiAgICBcIuWQieael+ecgVwiLFxuICAgIFwi6L695a6B55yBXCIsXG4gICAgXCLlhoXokpnlj6RcIixcbiAgICBcIuays+WMl+ecgVwiLFxuICAgIFwi5paw55aGXCIsXG4gICAgXCLnlJjogoPnnIFcIixcbiAgICBcIumdkua1t+ecgVwiLFxuICAgIFwi6ZmV6KW/55yBXCIsXG4gICAgXCLlroHlpI9cIixcbiAgICBcIuays+WNl+ecgVwiLFxuICAgIFwi5bGx5Lic55yBXCIsXG4gICAgXCLlsbHopb/nnIFcIixcbiAgICBcIuWuieW+veecgVwiLFxuICAgIFwi5rmW5YyX55yBXCIsXG4gICAgXCLmuZbljZfnnIFcIixcbiAgICBcIuaxn+iLj+ecgVwiLFxuICAgIFwi5Zub5bed55yBXCIsXG4gICAgXCLotLXlt57nnIFcIixcbiAgICBcIuS6keWNl+ecgVwiLFxuICAgIFwi5bm/6KW/55yBXCIsXG4gICAgXCLopb/ol49cIixcbiAgICBcIua1meaxn+ecgVwiLFxuICAgIFwi5rGf6KW/55yBXCIsXG4gICAgXCLlub/kuJznnIFcIixcbiAgICBcIuemj+W7uuecgVwiLFxuICAgIFwi5Y+w5rm+55yBXCIsXG4gICAgXCLmtbfljZfnnIFcIixcbiAgICBcIummmea4r1wiLFxuICAgIFwi5r6z6ZeoXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIuS6rFwiLFxuICAgIFwi5rKqXCIsXG4gICAgXCLmtKVcIixcbiAgICBcIua4nVwiLFxuICAgIFwi6buRXCIsXG4gICAgXCLlkIlcIixcbiAgICBcIui+vVwiLFxuICAgIFwi6JKZXCIsXG4gICAgXCLlhoBcIixcbiAgICBcIuaWsFwiLFxuICAgIFwi55SYXCIsXG4gICAgXCLpnZJcIixcbiAgICBcIumZlVwiLFxuICAgIFwi5a6BXCIsXG4gICAgXCLosatcIixcbiAgICBcIumygVwiLFxuICAgIFwi5pmLXCIsXG4gICAgXCLnmpZcIixcbiAgICBcIumEglwiLFxuICAgIFwi5rmYXCIsXG4gICAgXCLoi49cIixcbiAgICBcIuW3nVwiLFxuICAgIFwi6buUXCIsXG4gICAgXCLmu4dcIixcbiAgICBcIuahglwiLFxuICAgIFwi6JePXCIsXG4gICAgXCLmtZlcIixcbiAgICBcIui1o1wiLFxuICAgIFwi57KkXCIsXG4gICAgXCLpl71cIixcbiAgICBcIuWPsFwiLFxuICAgIFwi55C8XCIsXG4gICAgXCLmuK9cIixcbiAgICBcIua+s1wiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9I3tidWlsZGluZ19udW1iZXJ95Y+3XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwi5Lit5Zu9XCJcbiAgXVxufTtcbnpoX0NOLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLnjotcIixcbiAgICBcIuadjlwiLFxuICAgIFwi5bygXCIsXG4gICAgXCLliJhcIixcbiAgICBcIumZiFwiLFxuICAgIFwi5p2oXCIsXG4gICAgXCLpu4RcIixcbiAgICBcIuWQtFwiLFxuICAgIFwi6LW1XCIsXG4gICAgXCLlkahcIixcbiAgICBcIuW+kFwiLFxuICAgIFwi5a2ZXCIsXG4gICAgXCLpqaxcIixcbiAgICBcIuacsVwiLFxuICAgIFwi6IOhXCIsXG4gICAgXCLmnpdcIixcbiAgICBcIumDrVwiLFxuICAgIFwi5L2VXCIsXG4gICAgXCLpq5hcIixcbiAgICBcIue9l1wiLFxuICAgIFwi6YORXCIsXG4gICAgXCLmooFcIixcbiAgICBcIuiwolwiLFxuICAgIFwi5a6LXCIsXG4gICAgXCLllJBcIixcbiAgICBcIuiuuFwiLFxuICAgIFwi6YKTXCIsXG4gICAgXCLlhq9cIixcbiAgICBcIumfqVwiLFxuICAgIFwi5pu5XCIsXG4gICAgXCLmm75cIixcbiAgICBcIuW9rVwiLFxuICAgIFwi6JCnXCIsXG4gICAgXCLolKFcIixcbiAgICBcIua9mFwiLFxuICAgIFwi55SwXCIsXG4gICAgXCLokaNcIixcbiAgICBcIuiigVwiLFxuICAgIFwi5LqOXCIsXG4gICAgXCLkvZlcIixcbiAgICBcIuWPtlwiLFxuICAgIFwi6JKLXCIsXG4gICAgXCLmnZxcIixcbiAgICBcIuiLj1wiLFxuICAgIFwi6a2PXCIsXG4gICAgXCLnqItcIixcbiAgICBcIuWQlVwiLFxuICAgIFwi5LiBXCIsXG4gICAgXCLmsohcIixcbiAgICBcIuS7u1wiLFxuICAgIFwi5aeaXCIsXG4gICAgXCLljaJcIixcbiAgICBcIuWChVwiLFxuICAgIFwi6ZKfXCIsXG4gICAgXCLlp5xcIixcbiAgICBcIuW0lFwiLFxuICAgIFwi6LCtXCIsXG4gICAgXCLlu5ZcIixcbiAgICBcIuiMg1wiLFxuICAgIFwi5rGqXCIsXG4gICAgXCLpmYZcIixcbiAgICBcIumHkVwiLFxuICAgIFwi55+zXCIsXG4gICAgXCLmiLRcIixcbiAgICBcIui0vlwiLFxuICAgIFwi6Z+mXCIsXG4gICAgXCLlpI9cIixcbiAgICBcIumCsVwiLFxuICAgIFwi5pa5XCIsXG4gICAgXCLkvq9cIixcbiAgICBcIumCuVwiLFxuICAgIFwi54aKXCIsXG4gICAgXCLlrZ9cIixcbiAgICBcIuenplwiLFxuICAgIFwi55m9XCIsXG4gICAgXCLmsZ9cIixcbiAgICBcIumYjlwiLFxuICAgIFwi6JabXCIsXG4gICAgXCLlsLlcIixcbiAgICBcIuautVwiLFxuICAgIFwi6Zu3XCIsXG4gICAgXCLpu45cIixcbiAgICBcIuWPslwiLFxuICAgIFwi6b6ZXCIsXG4gICAgXCLpmbZcIixcbiAgICBcIui0ulwiLFxuICAgIFwi6aG+XCIsXG4gICAgXCLmr5tcIixcbiAgICBcIumDnVwiLFxuICAgIFwi6b6aXCIsXG4gICAgXCLpgrVcIixcbiAgICBcIuS4h1wiLFxuICAgIFwi6ZKxXCIsXG4gICAgXCLkuKVcIixcbiAgICBcIui1llwiLFxuICAgIFwi6KaDXCIsXG4gICAgXCLmtKpcIixcbiAgICBcIuatplwiLFxuICAgIFwi6I6rXCIsXG4gICAgXCLlrZRcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCLnu43pvZBcIixcbiAgICBcIuWNmuaWh1wiLFxuICAgIFwi5qKT5pmoXCIsXG4gICAgXCLog6TnpaVcIixcbiAgICBcIueRnumcllwiLFxuICAgIFwi5piO5ZOyXCIsXG4gICAgXCLlpKnnv4pcIixcbiAgICBcIuWHr+eRnlwiLFxuICAgIFwi5YGl6ZuEXCIsXG4gICAgXCLogIDmnbBcIixcbiAgICBcIua9h+eEtlwiLFxuICAgIFwi5a2Q5ra1XCIsXG4gICAgXCLotorlvaxcIixcbiAgICBcIumSsOi9qVwiLFxuICAgIFwi5pm66L6JXCIsXG4gICAgXCLoh7Tov5xcIixcbiAgICBcIuS/iumpsFwiLFxuICAgIFwi6Zuo5rO9XCIsXG4gICAgXCLng6jno4pcIixcbiAgICBcIuaZn+edv1wiLFxuICAgIFwi5paH5piKXCIsXG4gICAgXCLkv67mtIFcIixcbiAgICBcIum7juaYlVwiLFxuICAgIFwi6L+c6IiqXCIsXG4gICAgXCLml63lsKdcIixcbiAgICBcIum4v+a2m1wiLFxuICAgIFwi5Lyf56W6XCIsXG4gICAgXCLojaPovalcIixcbiAgICBcIui2iuazvVwiLFxuICAgIFwi5rWp5a6HXCIsXG4gICAgXCLnkb7nkZxcIixcbiAgICBcIueak+i9qVwiLFxuICAgIFwi5pOO6IuNXCIsXG4gICAgXCLmk47lrodcIixcbiAgICBcIuW/l+azvVwiLFxuICAgIFwi5a2Q6L2pXCIsXG4gICAgXCLnnb/muIpcIixcbiAgICBcIuW8mOaWh1wiLFxuICAgIFwi5ZOy54CaXCIsXG4gICAgXCLpm6jms71cIixcbiAgICBcIualt+eRnlwiLFxuICAgIFwi5bu66L6JXCIsXG4gICAgXCLmmYvpuY9cIixcbiAgICBcIuWkqeejilwiLFxuICAgIFwi57uN6L6JXCIsXG4gICAgXCLms73mtItcIixcbiAgICBcIumRq+ejilwiLFxuICAgIFwi6bmP54WKXCIsXG4gICAgXCLmmIrlvLpcIixcbiAgICBcIuS8n+WuuFwiLFxuICAgIFwi5Y2a6LaFXCIsXG4gICAgXCLlkJvmtalcIixcbiAgICBcIuWtkOmqnlwiLFxuICAgIFwi6bmP5rabXCIsXG4gICAgXCLngo7lvaxcIixcbiAgICBcIum5pOi9qVwiLFxuICAgIFwi6LaK5b2sXCIsXG4gICAgXCLpo47ljY5cIixcbiAgICBcIumdlueQqlwiLFxuICAgIFwi5piO6L6JXCIsXG4gICAgXCLkvJ/or5pcIixcbiAgICBcIuaYjui9qVwiLFxuICAgIFwi5YGl5p+PXCIsXG4gICAgXCLkv67mnbBcIixcbiAgICBcIuW/l+azvVwiLFxuICAgIFwi5byY5paHXCIsXG4gICAgXCLls7vnhplcIixcbiAgICBcIuWYieaHv1wiLFxuICAgIFwi54Wc5Z+OXCIsXG4gICAgXCLmh7/ovalcIixcbiAgICBcIueDqOS8n1wiLFxuICAgIFwi6IuR5Y2aXCIsXG4gICAgXCLkvJ/ms71cIixcbiAgICBcIueGoOW9pFwiLFxuICAgIFwi6bi/54WKXCIsXG4gICAgXCLljZrmtptcIixcbiAgICBcIueDqOmcllwiLFxuICAgIFwi54Oo5Y2OXCIsXG4gICAgXCLnhZznpbpcIixcbiAgICBcIuaZuuWuuFwiLFxuICAgIFwi5q2j6LGqXCIsXG4gICAgXCLmmIrnhLZcIixcbiAgICBcIuaYjuadsFwiLFxuICAgIFwi56uL6K+aXCIsXG4gICAgXCLnq4vovalcIixcbiAgICBcIueri+i+iVwiLFxuICAgIFwi5bO754aZXCIsXG4gICAgXCLlvJjmlodcIixcbiAgICBcIueGoOW9pFwiLFxuICAgIFwi6bi/54WKXCIsXG4gICAgXCLng6jpnJZcIixcbiAgICBcIuWTsueAmlwiLFxuICAgIFwi6ZGr6bmPXCIsXG4gICAgXCLmmIrlpKlcIixcbiAgICBcIuaAneiBqlwiLFxuICAgIFwi5bGV6bmPXCIsXG4gICAgXCLnrJHmhJpcIixcbiAgICBcIuW/l+W8ulwiLFxuICAgIFwi54Kr5piOXCIsXG4gICAgXCLpm6rmnb5cIixcbiAgICBcIuaAnea6kFwiLFxuICAgIFwi5pm65riKXCIsXG4gICAgXCLmgJ3mt7xcIixcbiAgICBcIuaZk+WVuFwiLFxuICAgIFwi5aSp5a6HXCIsXG4gICAgXCLmtannhLZcIixcbiAgICBcIuaWh+i9qVwiLFxuICAgIFwi6bmt5rSLXCIsXG4gICAgXCLmjK/lrrZcIixcbiAgICBcIuS5kOmpuVwiLFxuICAgIFwi5pmT5Y2aXCIsXG4gICAgXCLmlofljZpcIixcbiAgICBcIuaYiueEsVwiLFxuICAgIFwi56uL5p6cXCIsXG4gICAgXCLph5HpkatcIixcbiAgICBcIumUpueoi1wiLFxuICAgIFwi5ZiJ54aZXCIsXG4gICAgXCLpuY/po55cIixcbiAgICBcIuWtkOm7mFwiLFxuICAgIFwi5oCd6L+cXCIsXG4gICAgXCLmtanovalcIixcbiAgICBcIuivreWgglwiLFxuICAgIFwi6IGq5YGlXCIsXG4gICAgXCLmmI5cIixcbiAgICBcIuaWh1wiLFxuICAgIFwi5p6cXCIsXG4gICAgXCLmgJ1cIixcbiAgICBcIum5j1wiLFxuICAgIFwi6amwXCIsXG4gICAgXCLmtptcIixcbiAgICBcIueQqlwiLFxuICAgIFwi5rWpXCIsXG4gICAgXCLoiKpcIixcbiAgICBcIuW9rFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2ZpcnN0X25hbWV9I3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbnpoX0NOLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMjIyMjI1wiLFxuICAgIFwiIyMjIy0jIyMjIyMjI1wiLFxuICAgIFwiIyMjIyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcbnZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbnZhciBsb3JlbSA9IHtcbiAgICB3b3JkczogZnVuY3Rpb24gKG51bSkge1xuICAgICAgICBpZiAodHlwZW9mIG51bSA9PSAndW5kZWZpbmVkJykgeyBudW0gPSAzOyB9XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnNodWZmbGUoZmFrZXIuZGVmaW5pdGlvbnMubG9yZW0ud29yZHMpLnNsaWNlKDAsIG51bSk7XG4gICAgfSxcblxuICAgIHNlbnRlbmNlOiBmdW5jdGlvbiAod29yZENvdW50LCByYW5nZSkge1xuICAgICAgICBpZiAodHlwZW9mIHdvcmRDb3VudCA9PSAndW5kZWZpbmVkJykgeyB3b3JkQ291bnQgPSAzOyB9XG4gICAgICAgIGlmICh0eXBlb2YgcmFuZ2UgPT0gJ3VuZGVmaW5lZCcpIHsgcmFuZ2UgPSA3OyB9XG5cbiAgICAgICAgLy8gc3RyYW5nZSBpc3N1ZSB3aXRoIHRoZSBub2RlX21pbl90ZXN0IGZhaWxpbmcgZm9yIGNhcHRpYWxpemUsIHBsZWFzZSBmaXggYW5kIGFkZCBmYWtlci5sb3JlbS5iYWNrXG4gICAgICAgIC8vcmV0dXJuICBmYWtlci5sb3JlbS53b3Jkcyh3b3JkQ291bnQgKyBIZWxwZXJzLnJhbmRvbU51bWJlcihyYW5nZSkpLmpvaW4oJyAnKS5jYXBpdGFsaXplKCk7XG5cbiAgICAgICAgcmV0dXJuICBmYWtlci5sb3JlbS53b3Jkcyh3b3JkQ291bnQgKyBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKSkuam9pbignICcpO1xuICAgIH0sXG5cbiAgICBzZW50ZW5jZXM6IGZ1bmN0aW9uIChzZW50ZW5jZUNvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VudGVuY2VDb3VudCA9PSAndW5kZWZpbmVkJykgeyBzZW50ZW5jZUNvdW50ID0gMzsgfVxuICAgICAgICB2YXIgc2VudGVuY2VzID0gW107XG4gICAgICAgIGZvciAoc2VudGVuY2VDb3VudDsgc2VudGVuY2VDb3VudCA+IDA7IHNlbnRlbmNlQ291bnQtLSkge1xuICAgICAgICAgICAgc2VudGVuY2VzLnB1c2goZmFrZXIubG9yZW0uc2VudGVuY2UoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbnRlbmNlcy5qb2luKFwiXFxuXCIpO1xuICAgIH0sXG5cbiAgICBwYXJhZ3JhcGg6IGZ1bmN0aW9uIChzZW50ZW5jZUNvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VudGVuY2VDb3VudCA9PSAndW5kZWZpbmVkJykgeyBzZW50ZW5jZUNvdW50ID0gMzsgfVxuICAgICAgICByZXR1cm4gZmFrZXIubG9yZW0uc2VudGVuY2VzKHNlbnRlbmNlQ291bnQgKyBmYWtlci5yYW5kb20ubnVtYmVyKDMpKTtcbiAgICB9LFxuXG4gICAgcGFyYWdyYXBoczogZnVuY3Rpb24gKHBhcmFncmFwaENvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyYWdyYXBoQ291bnQgPT0gJ3VuZGVmaW5lZCcpIHsgcGFyYWdyYXBoQ291bnQgPSAzOyB9XG4gICAgICAgIHZhciBwYXJhZ3JhcGhzID0gW107XG4gICAgICAgIGZvciAocGFyYWdyYXBoQ291bnQ7IHBhcmFncmFwaENvdW50ID4gMDsgcGFyYWdyYXBoQ291bnQtLSkge1xuICAgICAgICAgICAgcGFyYWdyYXBocy5wdXNoKGZha2VyLmxvcmVtLnBhcmFncmFwaCgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYWdyYXBocy5qb2luKFwiXFxuIFxcclxcdFwiKTtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGxvcmVtO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIF9uYW1lID0ge1xuXG4gICAgZmlyc3ROYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAodHlwZW9mIGZha2VyLmRlZmluaXRpb25zLm5hbWUubWFsZV9maXJzdF9uYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBmYWtlci5kZWZpbml0aW9ucy5uYW1lLmZlbWFsZV9maXJzdF9uYW1lICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIC8vIHNvbWUgbG9jYWxlIGRhdGFzZXRzICggbGlrZSBydSApIGhhdmUgZmlyc3RfbmFtZSBzcGxpdCBieSBnZW5kZXIuIHNpbmNlIHRoZSBuYW1lLmZpcnN0X25hbWUgZmllbGQgZG9lcyBub3QgZXhpc3QgaW4gdGhlc2UgZGF0YXNldHMsXG4gICAgICAgIC8vIHdlIG11c3QgcmFuZG9tbHkgcGljayBhIG5hbWUgZnJvbSBlaXRoZXIgZ2VuZGVyIGFycmF5IHNvIGZha2VyLm5hbWUuZmlyc3ROYW1lIHdpbGwgcmV0dXJuIHRoZSBjb3JyZWN0IGxvY2FsZSBkYXRhICggYW5kIG5vdCBmYWxsYmFjayApXG4gICAgICAgIHZhciByYW5kID0gZmFrZXIucmFuZG9tLm51bWJlcigxKTtcbiAgICAgICAgaWYgKHJhbmQgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIubG9jYWxlc1tmYWtlci5sb2NhbGVdLm5hbWUubWFsZV9maXJzdF9uYW1lKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5sb2NhbGVzW2Zha2VyLmxvY2FsZV0ubmFtZS5mZW1hbGVfZmlyc3RfbmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLm5hbWUuZmlyc3RfbmFtZSlcbiAgICB9LFxuXG4gICAgbGFzdE5hbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICh0eXBlb2YgZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5tYWxlX2xhc3RfbmFtZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgZmFrZXIuZGVmaW50aW9ucy5uYW1lLmZlbWFsZV9sYXN0X25hbWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgLy8gc29tZSBsb2NhbGUgZGF0YXNldHMgKCBsaWtlIHJ1ICkgaGF2ZSBsYXN0X25hbWUgc3BsaXQgYnkgZ2VuZGVyLiBpIGhhdmUgbm8gaWRlYSBob3cgbGFzdCBuYW1lcyBjYW4gaGF2ZSBnZW5kZXJzLCBidXQgYWxzbyBpIGRvIG5vdCBzcGVhayBydXNzaWFuXG4gICAgICAgIC8vIHNlZSBhYm92ZSBjb21tZW50IG9mIGZpcnN0TmFtZSBtZXRob2RcbiAgICAgICAgdmFyIHJhbmQgPSBmYWtlci5yYW5kb20ubnVtYmVyKDEpO1xuICAgICAgICBpZiAocmFuZCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5sb2NhbGVzW2Zha2VyLmxvY2FsZV0ubmFtZS5tYWxlX2xhc3RfbmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmxvY2FsZXNbZmFrZXIubG9jYWxlXS5uYW1lLmZlbWFsZV9sYXN0X25hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5sYXN0X25hbWUpO1xuICAgIH0sXG5cbiAgICBmaW5kTmFtZTogZnVuY3Rpb24gKGZpcnN0TmFtZSwgbGFzdE5hbWUpIHtcbiAgICAgICAgdmFyIHIgPSBmYWtlci5yYW5kb20ubnVtYmVyKDgpO1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgfHwgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSB8fCBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIHN3aXRjaCAocikge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5wcmVmaXgoKSArIFwiIFwiICsgZmlyc3ROYW1lICsgXCIgXCIgKyBsYXN0TmFtZTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0TmFtZSArIFwiIFwiICsgbGFzdE5hbWUgKyBcIiBcIiArIGZha2VyLm5hbWUuc3VmZml4KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlyc3ROYW1lICsgXCIgXCIgKyBsYXN0TmFtZTtcbiAgICB9LFxuXG4gICAgcHJlZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5uYW1lLnByZWZpeCk7XG4gICAgfSxcblxuICAgIHN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5zdWZmaXgpO1xuICAgIH0sXG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gX25hbWU7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgcGhvbmUgPSB7XG4gICAgcGhvbmVOdW1iZXI6IGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8IGZha2VyLnBob25lLnBob25lRm9ybWF0cygpO1xuICAgICAgICByZXR1cm4gZmFrZXIuaGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmb3JtYXQpO1xuICAgIH0sXG5cbiAgICAvLyBGSVhNRTogdGhpcyBpcyBzdHJhbmdlIHBhc3NpbmcgaW4gYW4gYXJyYXkgaW5kZXguXG4gICAgcGhvbmVOdW1iZXJGb3JtYXQ6IGZ1bmN0aW9uIChwaG9uZUZvcm1hdHNBcnJheUluZGV4KSB7XG4gICAgICAgIHBob25lRm9ybWF0c0FycmF5SW5kZXggPSBwaG9uZUZvcm1hdHNBcnJheUluZGV4IHx8IDA7XG4gICAgICAgIHJldHVybiBmYWtlci5oZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKGZha2VyLmRlZmluaXRpb25zLnBob25lX251bWJlci5mb3JtYXRzW3Bob25lRm9ybWF0c0FycmF5SW5kZXhdKTtcbiAgICB9LFxuXG4gICAgcGhvbmVGb3JtYXRzOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMucGhvbmVfbnVtYmVyLmZvcm1hdHMpO1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBwaG9uZTtcbiIsInZhciBtZXJzZW5uZSA9IHJlcXVpcmUoJy4uL3ZlbmRvci9tZXJzZW5uZScpO1xudmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIHJhbmRvbSA9IHtcbiAgICAvLyByZXR1cm5zIGEgc2luZ2xlIHJhbmRvbSBudW1iZXIgYmFzZWQgb24gYSBtYXggbnVtYmVyIG9yIHJhbmdlXG4gICAgbnVtYmVyOiBmdW5jdGlvbiAob3B0aW9ucykge1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBtYXg6IG9wdGlvbnNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm1pbiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIG9wdGlvbnMubWluID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5tYXggPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBvcHRpb25zLm1heCA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnByZWNpc2lvbiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIG9wdGlvbnMucHJlY2lzaW9uID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgdGhlIHJhbmdlIGluY2x1c2l2ZSBvZiB0aGUgbWF4IHZhbHVlXG4gICAgICAgIHZhciBtYXggPSBvcHRpb25zLm1heDtcbiAgICAgICAgaWYgKG1heCA+IDApIHtcbiAgICAgICAgICBtYXggKz0gb3B0aW9ucy5wcmVjaXNpb247XG4gICAgICAgIH0gXG4gICAgICAgICAgXG4gICAgICAgIHZhciByYW5kb21OdW1iZXIgPSBvcHRpb25zLnByZWNpc2lvbiAqIE1hdGguZmxvb3IoXG4gICAgICAgICAgbWVyc2VubmUucmFuZChtYXggLyBvcHRpb25zLnByZWNpc2lvbiwgb3B0aW9ucy5taW4gLyBvcHRpb25zLnByZWNpc2lvbikpO1xuXG4gICAgICAgIHJldHVybiByYW5kb21OdW1iZXI7XG5cbiAgICB9LFxuXG4gICAgLy8gdGFrZXMgYW4gYXJyYXkgYW5kIHJldHVybnMgYSByYW5kb20gZWxlbWVudCBvZiB0aGUgYXJyYXlcbiAgICBhcnJheV9lbGVtZW50OiBmdW5jdGlvbiAoYXJyYXkpIHtcbiAgICAgICAgYXJyYXkgPSBhcnJheSB8fCBbXCJhXCIsIFwiYlwiLCBcImNcIl07XG4gICAgICAgIHZhciByID0gZmFrZXIucmFuZG9tLm51bWJlcih7IG1heDogYXJyYXkubGVuZ3RoIC0gMSB9KTtcbiAgICAgICAgcmV0dXJuIGFycmF5W3JdO1xuICAgIH0sXG5cbiAgICAvLyB0YWtlcyBhbiBvYmplY3QgYW5kIHJldHVybnMgdGhlIHJhbmRvbWx5IGtleSBvciB2YWx1ZVxuICAgIG9iamVjdF9lbGVtZW50OiBmdW5jdGlvbiAob2JqZWN0LCBmaWVsZCkge1xuICAgICAgICBvYmplY3QgPSBvYmplY3QgfHwge307XG4gICAgICAgIHZhciBhcnJheSA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgICAgIHZhciBrZXkgPSBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChhcnJheSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkID09PSBcImtleVwiID8ga2V5IDogb2JqZWN0W2tleV07XG4gICAgfSxcblxuICAgIHV1aWQgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBSRkM0MTIyX1RFTVBMQVRFID0gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCc7XG4gICAgICAgIHZhciByZXBsYWNlUGxhY2Vob2xkZXJzID0gZnVuY3Rpb24gKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB2YXIgcmFuZG9tID0gTWF0aC5yYW5kb20oKSoxNnwwO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gcGxhY2Vob2xkZXIgPT0gJ3gnID8gcmFuZG9tIDogKHJhbmRvbSAmMHgzIHwgMHg4KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygxNik7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBSRkM0MTIyX1RFTVBMQVRFLnJlcGxhY2UoL1t4eV0vZywgcmVwbGFjZVBsYWNlaG9sZGVycyk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSByYW5kb207XG4iLCIvLyB0aGlzIHByb2dyYW0gaXMgYSBKYXZhU2NyaXB0IHZlcnNpb24gb2YgTWVyc2VubmUgVHdpc3Rlciwgd2l0aCBjb25jZWFsbWVudCBhbmQgZW5jYXBzdWxhdGlvbiBpbiBjbGFzcyxcbi8vIGFuIGFsbW9zdCBzdHJhaWdodCBjb252ZXJzaW9uIGZyb20gdGhlIG9yaWdpbmFsIHByb2dyYW0sIG10MTk5Mzdhci5jLFxuLy8gdHJhbnNsYXRlZCBieSB5LiBva2FkYSBvbiBKdWx5IDE3LCAyMDA2LlxuLy8gYW5kIG1vZGlmaWVkIGEgbGl0dGxlIGF0IGp1bHkgMjAsIDIwMDYsIGJ1dCB0aGVyZSBhcmUgbm90IGFueSBzdWJzdGFudGlhbCBkaWZmZXJlbmNlcy5cbi8vIGluIHRoaXMgcHJvZ3JhbSwgcHJvY2VkdXJlIGRlc2NyaXB0aW9ucyBhbmQgY29tbWVudHMgb2Ygb3JpZ2luYWwgc291cmNlIGNvZGUgd2VyZSBub3QgcmVtb3ZlZC5cbi8vIGxpbmVzIGNvbW1lbnRlZCB3aXRoIC8vYy8vIHdlcmUgb3JpZ2luYWxseSBkZXNjcmlwdGlvbnMgb2YgYyBwcm9jZWR1cmUuIGFuZCBhIGZldyBmb2xsb3dpbmcgbGluZXMgYXJlIGFwcHJvcHJpYXRlIEphdmFTY3JpcHQgZGVzY3JpcHRpb25zLlxuLy8gbGluZXMgY29tbWVudGVkIHdpdGggLyogYW5kICovIGFyZSBvcmlnaW5hbCBjb21tZW50cy5cbi8vIGxpbmVzIGNvbW1lbnRlZCB3aXRoIC8vIGFyZSBhZGRpdGlvbmFsIGNvbW1lbnRzIGluIHRoaXMgSmF2YVNjcmlwdCB2ZXJzaW9uLlxuLy8gYmVmb3JlIHVzaW5nIHRoaXMgdmVyc2lvbiwgY3JlYXRlIGF0IGxlYXN0IG9uZSBpbnN0YW5jZSBvZiBNZXJzZW5uZVR3aXN0ZXIxOTkzNyBjbGFzcywgYW5kIGluaXRpYWxpemUgdGhlIGVhY2ggc3RhdGUsIGdpdmVuIGJlbG93IGluIGMgY29tbWVudHMsIG9mIGFsbCB0aGUgaW5zdGFuY2VzLlxuLypcbiAgIEEgQy1wcm9ncmFtIGZvciBNVDE5OTM3LCB3aXRoIGluaXRpYWxpemF0aW9uIGltcHJvdmVkIDIwMDIvMS8yNi5cbiAgIENvZGVkIGJ5IFRha3VqaSBOaXNoaW11cmEgYW5kIE1ha290byBNYXRzdW1vdG8uXG5cbiAgIEJlZm9yZSB1c2luZywgaW5pdGlhbGl6ZSB0aGUgc3RhdGUgYnkgdXNpbmcgaW5pdF9nZW5yYW5kKHNlZWQpXG4gICBvciBpbml0X2J5X2FycmF5KGluaXRfa2V5LCBrZXlfbGVuZ3RoKS5cblxuICAgQ29weXJpZ2h0IChDKSAxOTk3IC0gMjAwMiwgTWFrb3RvIE1hdHN1bW90byBhbmQgVGFrdWppIE5pc2hpbXVyYSxcbiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cbiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zXG4gICBhcmUgbWV0OlxuXG4gICAgIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cblxuICAgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlXG4gICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cbiAgICAgMy4gVGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZVxuICAgICAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW5cbiAgICAgICAgcGVybWlzc2lvbi5cblxuICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SU1xuICAgXCJBUyBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVFxuICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SXG4gICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1JcbiAgIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLFxuICAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLFxuICAgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SXG4gICBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GXG4gICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElOR1xuICAgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTXG4gICBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cblxuXG4gICBBbnkgZmVlZGJhY2sgaXMgdmVyeSB3ZWxjb21lLlxuICAgaHR0cDovL3d3dy5tYXRoLnNjaS5oaXJvc2hpbWEtdS5hYy5qcC9+bS1tYXQvTVQvZW10Lmh0bWxcbiAgIGVtYWlsOiBtLW1hdCBAIG1hdGguc2NpLmhpcm9zaGltYS11LmFjLmpwIChyZW1vdmUgc3BhY2UpXG4qL1xuXG5mdW5jdGlvbiBNZXJzZW5uZVR3aXN0ZXIxOTkzNygpXG57XG5cdC8qIGNvbnN0YW50cyBzaG91bGQgYmUgc2NvcGVkIGluc2lkZSB0aGUgY2xhc3MgKi9cblx0dmFyIE4sIE0sIE1BVFJJWF9BLCBVUFBFUl9NQVNLLCBMT1dFUl9NQVNLO1xuXHQvKiBQZXJpb2QgcGFyYW1ldGVycyAqL1xuXHQvL2MvLyNkZWZpbmUgTiA2MjRcblx0Ly9jLy8jZGVmaW5lIE0gMzk3XG5cdC8vYy8vI2RlZmluZSBNQVRSSVhfQSAweDk5MDhiMGRmVUwgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuXHQvL2MvLyNkZWZpbmUgVVBQRVJfTUFTSyAweDgwMDAwMDAwVUwgLyogbW9zdCBzaWduaWZpY2FudCB3LXIgYml0cyAqL1xuXHQvL2MvLyNkZWZpbmUgTE9XRVJfTUFTSyAweDdmZmZmZmZmVUwgLyogbGVhc3Qgc2lnbmlmaWNhbnQgciBiaXRzICovXG5cdE4gPSA2MjQ7XG5cdE0gPSAzOTc7XG5cdE1BVFJJWF9BID0gMHg5OTA4YjBkZjsgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuXHRVUFBFUl9NQVNLID0gMHg4MDAwMDAwMDsgLyogbW9zdCBzaWduaWZpY2FudCB3LXIgYml0cyAqL1xuXHRMT1dFUl9NQVNLID0gMHg3ZmZmZmZmZjsgLyogbGVhc3Qgc2lnbmlmaWNhbnQgciBiaXRzICovXG5cdC8vYy8vc3RhdGljIHVuc2lnbmVkIGxvbmcgbXRbTl07IC8qIHRoZSBhcnJheSBmb3IgdGhlIHN0YXRlIHZlY3RvciAgKi9cblx0Ly9jLy9zdGF0aWMgaW50IG10aT1OKzE7IC8qIG10aT09TisxIG1lYW5zIG10W05dIGlzIG5vdCBpbml0aWFsaXplZCAqL1xuXHR2YXIgbXQgPSBuZXcgQXJyYXkoTik7ICAgLyogdGhlIGFycmF5IGZvciB0aGUgc3RhdGUgdmVjdG9yICAqL1xuXHR2YXIgbXRpID0gTisxOyAgICAgICAgICAgLyogbXRpPT1OKzEgbWVhbnMgbXRbTl0gaXMgbm90IGluaXRpYWxpemVkICovXG5cblx0ZnVuY3Rpb24gdW5zaWduZWQzMiAobjEpIC8vIHJldHVybnMgYSAzMi1iaXRzIHVuc2lnZWQgaW50ZWdlciBmcm9tIGFuIG9wZXJhbmQgdG8gd2hpY2ggYXBwbGllZCBhIGJpdCBvcGVyYXRvci5cblx0e1xuXHRcdHJldHVybiBuMSA8IDAgPyAobjEgXiBVUFBFUl9NQVNLKSArIFVQUEVSX01BU0sgOiBuMTtcblx0fVxuXG5cdGZ1bmN0aW9uIHN1YnRyYWN0aW9uMzIgKG4xLCBuMikgLy8gZW11bGF0ZXMgbG93ZXJmbG93IG9mIGEgYyAzMi1iaXRzIHVuc2lnZWQgaW50ZWdlciB2YXJpYWJsZSwgaW5zdGVhZCBvZiB0aGUgb3BlcmF0b3IgLS4gdGhlc2UgYm90aCBhcmd1bWVudHMgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlcnMgZXhwcmVzc2libGUgdXNpbmcgdW5zaWduZWQgMzIgYml0cy5cblx0e1xuXHRcdHJldHVybiBuMSA8IG4yID8gdW5zaWduZWQzMigoMHgxMDAwMDAwMDAgLSAobjIgLSBuMSkpICYgMHhmZmZmZmZmZikgOiBuMSAtIG4yO1xuXHR9XG5cblx0ZnVuY3Rpb24gYWRkaXRpb24zMiAobjEsIG4yKSAvLyBlbXVsYXRlcyBvdmVyZmxvdyBvZiBhIGMgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgdmFyaWFibGUsIGluc3RlYWQgb2YgdGhlIG9wZXJhdG9yICsuIHRoZXNlIGJvdGggYXJndW1lbnRzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzIGV4cHJlc3NpYmxlIHVzaW5nIHVuc2lnbmVkIDMyIGJpdHMuXG5cdHtcblx0XHRyZXR1cm4gdW5zaWduZWQzMigobjEgKyBuMikgJiAweGZmZmZmZmZmKVxuXHR9XG5cblx0ZnVuY3Rpb24gbXVsdGlwbGljYXRpb24zMiAobjEsIG4yKSAvLyBlbXVsYXRlcyBvdmVyZmxvdyBvZiBhIGMgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgdmFyaWFibGUsIGluc3RlYWQgb2YgdGhlIG9wZXJhdG9yICouIHRoZXNlIGJvdGggYXJndW1lbnRzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzIGV4cHJlc3NpYmxlIHVzaW5nIHVuc2lnbmVkIDMyIGJpdHMuXG5cdHtcblx0XHR2YXIgc3VtID0gMDtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDMyOyArK2kpe1xuXHRcdFx0aWYgKChuMSA+Pj4gaSkgJiAweDEpe1xuXHRcdFx0XHRzdW0gPSBhZGRpdGlvbjMyKHN1bSwgdW5zaWduZWQzMihuMiA8PCBpKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzdW07XG5cdH1cblxuXHQvKiBpbml0aWFsaXplcyBtdFtOXSB3aXRoIGEgc2VlZCAqL1xuXHQvL2MvL3ZvaWQgaW5pdF9nZW5yYW5kKHVuc2lnbmVkIGxvbmcgcylcblx0dGhpcy5pbml0X2dlbnJhbmQgPSBmdW5jdGlvbiAocylcblx0e1xuXHRcdC8vYy8vbXRbMF09IHMgJiAweGZmZmZmZmZmO1xuXHRcdG10WzBdPSB1bnNpZ25lZDMyKHMgJiAweGZmZmZmZmZmKTtcblx0XHRmb3IgKG10aT0xOyBtdGk8TjsgbXRpKyspIHtcblx0XHRcdG10W210aV0gPSBcblx0XHRcdC8vYy8vKDE4MTI0MzMyNTMgKiAobXRbbXRpLTFdIF4gKG10W210aS0xXSA+PiAzMCkpICsgbXRpKTtcblx0XHRcdGFkZGl0aW9uMzIobXVsdGlwbGljYXRpb24zMigxODEyNDMzMjUzLCB1bnNpZ25lZDMyKG10W210aS0xXSBeIChtdFttdGktMV0gPj4+IDMwKSkpLCBtdGkpO1xuXHRcdFx0LyogU2VlIEtudXRoIFRBT0NQIFZvbDIuIDNyZCBFZC4gUC4xMDYgZm9yIG11bHRpcGxpZXIuICovXG5cdFx0XHQvKiBJbiB0aGUgcHJldmlvdXMgdmVyc2lvbnMsIE1TQnMgb2YgdGhlIHNlZWQgYWZmZWN0ICAgKi9cblx0XHRcdC8qIG9ubHkgTVNCcyBvZiB0aGUgYXJyYXkgbXRbXS4gICAgICAgICAgICAgICAgICAgICAgICAqL1xuXHRcdFx0LyogMjAwMi8wMS8wOSBtb2RpZmllZCBieSBNYWtvdG8gTWF0c3Vtb3RvICAgICAgICAgICAgICovXG5cdFx0XHQvL2MvL210W210aV0gJj0gMHhmZmZmZmZmZjtcblx0XHRcdG10W210aV0gPSB1bnNpZ25lZDMyKG10W210aV0gJiAweGZmZmZmZmZmKTtcblx0XHRcdC8qIGZvciA+MzIgYml0IG1hY2hpbmVzICovXG5cdFx0fVxuXHR9XG5cblx0LyogaW5pdGlhbGl6ZSBieSBhbiBhcnJheSB3aXRoIGFycmF5LWxlbmd0aCAqL1xuXHQvKiBpbml0X2tleSBpcyB0aGUgYXJyYXkgZm9yIGluaXRpYWxpemluZyBrZXlzICovXG5cdC8qIGtleV9sZW5ndGggaXMgaXRzIGxlbmd0aCAqL1xuXHQvKiBzbGlnaHQgY2hhbmdlIGZvciBDKyssIDIwMDQvMi8yNiAqL1xuXHQvL2MvL3ZvaWQgaW5pdF9ieV9hcnJheSh1bnNpZ25lZCBsb25nIGluaXRfa2V5W10sIGludCBrZXlfbGVuZ3RoKVxuXHR0aGlzLmluaXRfYnlfYXJyYXkgPSBmdW5jdGlvbiAoaW5pdF9rZXksIGtleV9sZW5ndGgpXG5cdHtcblx0XHQvL2MvL2ludCBpLCBqLCBrO1xuXHRcdHZhciBpLCBqLCBrO1xuXHRcdC8vYy8vaW5pdF9nZW5yYW5kKDE5NjUwMjE4KTtcblx0XHR0aGlzLmluaXRfZ2VucmFuZCgxOTY1MDIxOCk7XG5cdFx0aT0xOyBqPTA7XG5cdFx0ayA9IChOPmtleV9sZW5ndGggPyBOIDoga2V5X2xlbmd0aCk7XG5cdFx0Zm9yICg7IGs7IGstLSkge1xuXHRcdFx0Ly9jLy9tdFtpXSA9IChtdFtpXSBeICgobXRbaS0xXSBeIChtdFtpLTFdID4+IDMwKSkgKiAxNjY0NTI1KSlcblx0XHRcdC8vYy8vXHQrIGluaXRfa2V5W2pdICsgajsgLyogbm9uIGxpbmVhciAqL1xuXHRcdFx0bXRbaV0gPSBhZGRpdGlvbjMyKGFkZGl0aW9uMzIodW5zaWduZWQzMihtdFtpXSBeIG11bHRpcGxpY2F0aW9uMzIodW5zaWduZWQzMihtdFtpLTFdIF4gKG10W2ktMV0gPj4+IDMwKSksIDE2NjQ1MjUpKSwgaW5pdF9rZXlbal0pLCBqKTtcblx0XHRcdG10W2ldID0gXG5cdFx0XHQvL2MvL210W2ldICY9IDB4ZmZmZmZmZmY7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG5cdFx0XHR1bnNpZ25lZDMyKG10W2ldICYgMHhmZmZmZmZmZik7XG5cdFx0XHRpKys7IGorKztcblx0XHRcdGlmIChpPj1OKSB7IG10WzBdID0gbXRbTi0xXTsgaT0xOyB9XG5cdFx0XHRpZiAoaj49a2V5X2xlbmd0aCkgaj0wO1xuXHRcdH1cblx0XHRmb3IgKGs9Ti0xOyBrOyBrLS0pIHtcblx0XHRcdC8vYy8vbXRbaV0gPSAobXRbaV0gXiAoKG10W2ktMV0gXiAobXRbaS0xXSA+PiAzMCkpICogMTU2NjA4Mzk0MSkpXG5cdFx0XHQvL2MvLy0gaTsgLyogbm9uIGxpbmVhciAqL1xuXHRcdFx0bXRbaV0gPSBzdWJ0cmFjdGlvbjMyKHVuc2lnbmVkMzIoKGRiZz1tdFtpXSkgXiBtdWx0aXBsaWNhdGlvbjMyKHVuc2lnbmVkMzIobXRbaS0xXSBeIChtdFtpLTFdID4+PiAzMCkpLCAxNTY2MDgzOTQxKSksIGkpO1xuXHRcdFx0Ly9jLy9tdFtpXSAmPSAweGZmZmZmZmZmOyAvKiBmb3IgV09SRFNJWkUgPiAzMiBtYWNoaW5lcyAqL1xuXHRcdFx0bXRbaV0gPSB1bnNpZ25lZDMyKG10W2ldICYgMHhmZmZmZmZmZik7XG5cdFx0XHRpKys7XG5cdFx0XHRpZiAoaT49TikgeyBtdFswXSA9IG10W04tMV07IGk9MTsgfVxuXHRcdH1cblx0XHRtdFswXSA9IDB4ODAwMDAwMDA7IC8qIE1TQiBpcyAxOyBhc3N1cmluZyBub24temVybyBpbml0aWFsIGFycmF5ICovXG5cdH1cblxuICAgIC8qIG1vdmVkIG91dHNpZGUgb2YgZ2VucmFuZF9pbnQzMigpIGJ5IGp3YXR0ZSAyMDEwLTExLTE3OyBnZW5lcmF0ZSBsZXNzIGdhcmJhZ2UgKi9cbiAgICB2YXIgbWFnMDEgPSBbMHgwLCBNQVRSSVhfQV07XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweGZmZmZmZmZmXS1pbnRlcnZhbCAqL1xuXHQvL2MvL3Vuc2lnbmVkIGxvbmcgZ2VucmFuZF9pbnQzMih2b2lkKVxuXHR0aGlzLmdlbnJhbmRfaW50MzIgPSBmdW5jdGlvbiAoKVxuXHR7XG5cdFx0Ly9jLy91bnNpZ25lZCBsb25nIHk7XG5cdFx0Ly9jLy9zdGF0aWMgdW5zaWduZWQgbG9uZyBtYWcwMVsyXT17MHgwVUwsIE1BVFJJWF9BfTtcblx0XHR2YXIgeTtcblx0XHQvKiBtYWcwMVt4XSA9IHggKiBNQVRSSVhfQSAgZm9yIHg9MCwxICovXG5cblx0XHRpZiAobXRpID49IE4pIHsgLyogZ2VuZXJhdGUgTiB3b3JkcyBhdCBvbmUgdGltZSAqL1xuXHRcdFx0Ly9jLy9pbnQga2s7XG5cdFx0XHR2YXIga2s7XG5cblx0XHRcdGlmIChtdGkgPT0gTisxKSAgIC8qIGlmIGluaXRfZ2VucmFuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQsICovXG5cdFx0XHRcdC8vYy8vaW5pdF9nZW5yYW5kKDU0ODkpOyAvKiBhIGRlZmF1bHQgaW5pdGlhbCBzZWVkIGlzIHVzZWQgKi9cblx0XHRcdFx0dGhpcy5pbml0X2dlbnJhbmQoNTQ4OSk7IC8qIGEgZGVmYXVsdCBpbml0aWFsIHNlZWQgaXMgdXNlZCAqL1xuXG5cdFx0XHRmb3IgKGtrPTA7a2s8Ti1NO2trKyspIHtcblx0XHRcdFx0Ly9jLy95ID0gKG10W2trXSZVUFBFUl9NQVNLKXwobXRba2srMV0mTE9XRVJfTUFTSyk7XG5cdFx0XHRcdC8vYy8vbXRba2tdID0gbXRba2srTV0gXiAoeSA+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXHRcdFx0XHR5ID0gdW5zaWduZWQzMigobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKSk7XG5cdFx0XHRcdG10W2trXSA9IHVuc2lnbmVkMzIobXRba2srTV0gXiAoeSA+Pj4gMSkgXiBtYWcwMVt5ICYgMHgxXSk7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKDtrazxOLTE7a2srKykge1xuXHRcdFx0XHQvL2MvL3kgPSAobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKTtcblx0XHRcdFx0Ly9jLy9tdFtra10gPSBtdFtraysoTS1OKV0gXiAoeSA+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXHRcdFx0XHR5ID0gdW5zaWduZWQzMigobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKSk7XG5cdFx0XHRcdG10W2trXSA9IHVuc2lnbmVkMzIobXRba2srKE0tTildIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV0pO1xuXHRcdFx0fVxuXHRcdFx0Ly9jLy95ID0gKG10W04tMV0mVVBQRVJfTUFTSyl8KG10WzBdJkxPV0VSX01BU0spO1xuXHRcdFx0Ly9jLy9tdFtOLTFdID0gbXRbTS0xXSBeICh5ID4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG5cdFx0XHR5ID0gdW5zaWduZWQzMigobXRbTi0xXSZVUFBFUl9NQVNLKXwobXRbMF0mTE9XRVJfTUFTSykpO1xuXHRcdFx0bXRbTi0xXSA9IHVuc2lnbmVkMzIobXRbTS0xXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdKTtcblx0XHRcdG10aSA9IDA7XG5cdFx0fVxuXG5cdFx0eSA9IG10W210aSsrXTtcblxuXHRcdC8qIFRlbXBlcmluZyAqL1xuXHRcdC8vYy8veSBePSAoeSA+PiAxMSk7XG5cdFx0Ly9jLy95IF49ICh5IDw8IDcpICYgMHg5ZDJjNTY4MDtcblx0XHQvL2MvL3kgXj0gKHkgPDwgMTUpICYgMHhlZmM2MDAwMDtcblx0XHQvL2MvL3kgXj0gKHkgPj4gMTgpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoeSA+Pj4gMTEpKTtcblx0XHR5ID0gdW5zaWduZWQzMih5IF4gKCh5IDw8IDcpICYgMHg5ZDJjNTY4MCkpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoKHkgPDwgMTUpICYgMHhlZmM2MDAwMCkpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoeSA+Pj4gMTgpKTtcblxuXHRcdHJldHVybiB5O1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweDdmZmZmZmZmXS1pbnRlcnZhbCAqL1xuXHQvL2MvL2xvbmcgZ2VucmFuZF9pbnQzMSh2b2lkKVxuXHR0aGlzLmdlbnJhbmRfaW50MzEgPSBmdW5jdGlvbiAoKVxuXHR7XG5cdFx0Ly9jLy9yZXR1cm4gKGdlbnJhbmRfaW50MzIoKT4+MSk7XG5cdFx0cmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKT4+PjEpO1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwxXS1yZWFsLWludGVydmFsICovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVhbDEodm9pZClcblx0dGhpcy5nZW5yYW5kX3JlYWwxID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vcmV0dXJuIGdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTUuMCk7XG5cdFx0cmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpKigxLjAvNDI5NDk2NzI5NS4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzItMSAqL1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwxKS1yZWFsLWludGVydmFsICovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVhbDIodm9pZClcblx0dGhpcy5nZW5yYW5kX3JlYWwyID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vcmV0dXJuIGdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTYuMCk7XG5cdFx0cmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzIgKi9cblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gKDAsMSktcmVhbC1pbnRlcnZhbCAqL1xuXHQvL2MvL2RvdWJsZSBnZW5yYW5kX3JlYWwzKHZvaWQpXG5cdHRoaXMuZ2VucmFuZF9yZWFsMyA9IGZ1bmN0aW9uICgpXG5cdHtcblx0XHQvL2MvL3JldHVybiAoKGdlbnJhbmRfaW50MzIoKSkgKyAwLjUpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHRyZXR1cm4gKCh0aGlzLmdlbnJhbmRfaW50MzIoKSkgKyAwLjUpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzIgKi9cblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSkgd2l0aCA1My1iaXQgcmVzb2x1dGlvbiovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVzNTModm9pZClcblx0dGhpcy5nZW5yYW5kX3JlczUzID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vdW5zaWduZWQgbG9uZyBhPWdlbnJhbmRfaW50MzIoKT4+NSwgYj1nZW5yYW5kX2ludDMyKCk+PjY7XG5cdFx0dmFyIGE9dGhpcy5nZW5yYW5kX2ludDMyKCk+Pj41LCBiPXRoaXMuZ2VucmFuZF9pbnQzMigpPj4+Njtcblx0XHRyZXR1cm4oYSo2NzEwODg2NC4wK2IpKigxLjAvOTAwNzE5OTI1NDc0MDk5Mi4wKTtcblx0fVxuXHQvKiBUaGVzZSByZWFsIHZlcnNpb25zIGFyZSBkdWUgdG8gSXNha3UgV2FkYSwgMjAwMi8wMS8wOSBhZGRlZCAqL1xufVxuXG4vLyAgRXhwb3J0czogUHVibGljIEFQSVxuXG4vLyAgRXhwb3J0IHRoZSB0d2lzdGVyIGNsYXNzXG5leHBvcnRzLk1lcnNlbm5lVHdpc3RlcjE5OTM3ID0gTWVyc2VubmVUd2lzdGVyMTk5Mzc7XG5cbi8vICBFeHBvcnQgYSBzaW1wbGlmaWVkIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIHJhbmRvbSBudW1iZXJzXG52YXIgZ2VuID0gbmV3IE1lcnNlbm5lVHdpc3RlcjE5OTM3O1xuZ2VuLmluaXRfZ2VucmFuZCgobmV3IERhdGUpLmdldFRpbWUoKSAlIDEwMDAwMDAwMDApO1xuXG4vLyBBZGRlZCBtYXgsIG1pbiByYW5nZSBmdW5jdGlvbmFsaXR5LCBNYXJhayBTcXVpcmVzIFNlcHQgMTEgMjAxNFxuZXhwb3J0cy5yYW5kID0gZnVuY3Rpb24obWF4LCBtaW4pIHtcbiAgICBpZiAoIW1heClcbiAgICAgICAge1xuICAgICAgICBtaW4gPSAwO1xuICAgICAgICBtYXggPSAzMjc2ODtcbiAgICAgICAgfVxuICAgIHJldHVybiBNYXRoLmZsb29yKGdlbi5nZW5yYW5kX3JlYWwyKCkgKiAobWF4IC0gbWluKSArIG1pbik7XG59XG5leHBvcnRzLnNlZWQgPSBmdW5jdGlvbihTKSB7XG4gICAgaWYgKHR5cGVvZihTKSAhPSAnbnVtYmVyJylcbiAgICAgICAge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZWVkKFMpIG11c3QgdGFrZSBudW1lcmljIGFyZ3VtZW50OyBpcyBcIiArIHR5cGVvZihTKSk7XG4gICAgICAgIH1cbiAgICBnZW4uaW5pdF9nZW5yYW5kKFMpO1xufVxuZXhwb3J0cy5zZWVkX2FycmF5ID0gZnVuY3Rpb24oQSkge1xuICAgIGlmICh0eXBlb2YoQSkgIT0gJ29iamVjdCcpXG4gICAgICAgIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2VlZF9hcnJheShBKSBtdXN0IHRha2UgYXJyYXkgb2YgbnVtYmVyczsgaXMgXCIgKyB0eXBlb2YoQSkpO1xuICAgICAgICB9XG4gICAgZ2VuLmluaXRfYnlfYXJyYXkoQSk7XG59XG5cbiIsIi8qXG4gKiBwYXNzd29yZC1nZW5lcmF0b3JcbiAqIENvcHlyaWdodChjKSAyMDExLTIwMTMgQmVybWkgRmVycmVyIDxiZXJtaUBiZXJtaWxhYnMuY29tPlxuICogTUlUIExpY2Vuc2VkXG4gKi9cbihmdW5jdGlvbiAocm9vdCkge1xuXG4gIHZhciBsb2NhbE5hbWUsIGNvbnNvbmFudCwgbGV0dGVyLCBwYXNzd29yZCwgdm93ZWw7XG4gIGxldHRlciA9IC9bYS16QS1aXSQvO1xuICB2b3dlbCA9IC9bYWVpb3VBRUlPVV0kLztcbiAgY29uc29uYW50ID0gL1tiY2RmZ2hqa2xtbnBxcnN0dnd4eXpCQ0RGR0hKS0xNTlBRUlNUVldYWVpdJC87XG5cblxuICAvLyBEZWZpbmVzIHRoZSBuYW1lIG9mIHRoZSBsb2NhbCB2YXJpYWJsZSB0aGUgcGFzc3dvcmRHZW5lcmF0b3IgbGlicmFyeSB3aWxsIHVzZVxuICAvLyB0aGlzIGlzIHNwZWNpYWxseSB1c2VmdWwgaWYgd2luZG93LnBhc3N3b3JkR2VuZXJhdG9yIGlzIGFscmVhZHkgYmVpbmcgdXNlZFxuICAvLyBieSB5b3VyIGFwcGxpY2F0aW9uIGFuZCB5b3Ugd2FudCBhIGRpZmZlcmVudCBuYW1lLiBGb3IgZXhhbXBsZTpcbiAgLy8gICAgLy8gRGVjbGFyZSBiZWZvcmUgaW5jbHVkaW5nIHRoZSBwYXNzd29yZEdlbmVyYXRvciBsaWJyYXJ5XG4gIC8vICAgIHZhciBsb2NhbFBhc3N3b3JkR2VuZXJhdG9yTGlicmFyeU5hbWUgPSAncGFzcyc7XG4gIGxvY2FsTmFtZSA9IHJvb3QubG9jYWxQYXNzd29yZEdlbmVyYXRvckxpYnJhcnlOYW1lIHx8IFwiZ2VuZXJhdGVQYXNzd29yZFwiLFxuXG4gIHBhc3N3b3JkID0gZnVuY3Rpb24gKGxlbmd0aCwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpIHtcbiAgICB2YXIgY2hhciwgbjtcbiAgICBpZiAobGVuZ3RoID09IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IDEwO1xuICAgIH1cbiAgICBpZiAobWVtb3JhYmxlID09IG51bGwpIHtcbiAgICAgIG1lbW9yYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChwYXR0ZXJuID09IG51bGwpIHtcbiAgICAgIHBhdHRlcm4gPSAvXFx3LztcbiAgICB9XG4gICAgaWYgKHByZWZpeCA9PSBudWxsKSB7XG4gICAgICBwcmVmaXggPSAnJztcbiAgICB9XG4gICAgaWYgKHByZWZpeC5sZW5ndGggPj0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcHJlZml4O1xuICAgIH1cbiAgICBpZiAobWVtb3JhYmxlKSB7XG4gICAgICBpZiAocHJlZml4Lm1hdGNoKGNvbnNvbmFudCkpIHtcbiAgICAgICAgcGF0dGVybiA9IHZvd2VsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF0dGVybiA9IGNvbnNvbmFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk0KSArIDMzO1xuICAgIGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKG4pO1xuICAgIGlmIChtZW1vcmFibGUpIHtcbiAgICAgIGNoYXIgPSBjaGFyLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIGlmICghY2hhci5tYXRjaChwYXR0ZXJuKSkge1xuICAgICAgcmV0dXJuIHBhc3N3b3JkKGxlbmd0aCwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGFzc3dvcmQobGVuZ3RoLCBtZW1vcmFibGUsIHBhdHRlcm4sIFwiXCIgKyBwcmVmaXggKyBjaGFyKTtcbiAgfTtcblxuXG4gICgodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSA/IGV4cG9ydHMgOiByb290KVtsb2NhbE5hbWVdID0gcGFzc3dvcmQ7XG4gIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAgIG1vZHVsZS5leHBvcnRzID0gcGFzc3dvcmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRXN0YWJsaXNoIHRoZSByb290IG9iamVjdCwgYHdpbmRvd2AgaW4gdGhlIGJyb3dzZXIsIG9yIGBnbG9iYWxgIG9uIHRoZSBzZXJ2ZXIuXG59KHRoaXMpKTsiLCIvKlxuXG5Db3B5cmlnaHQgKGMpIDIwMTItMjAxNCBKZWZmcmV5IE1lYWxvXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZFxuZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb25cbnRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmRcbnRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlXG5Tb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRVxuV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG5DT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG5PVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5CYXNlZCBsb29zZWx5IG9uIEx1a2EgUHVzaWMncyBQSFAgU2NyaXB0OiBodHRwOi8vMzYwcGVyY2VudHMuY29tL3Bvc3RzL3BocC1yYW5kb20tdXNlci1hZ2VudC1nZW5lcmF0b3IvXG5cblRoZSBsaWNlbnNlIGZvciB0aGF0IHNjcmlwdCBpcyBhcyBmb2xsb3dzOlxuXG5cIlRIRSBCRUVSLVdBUkUgTElDRU5TRVwiIChSZXZpc2lvbiA0Mik6XG5cbjxwdXNpYzkzQGdtYWlsLmNvbT4gd3JvdGUgdGhpcyBmaWxlLiBBcyBsb25nIGFzIHlvdSByZXRhaW4gdGhpcyBub3RpY2UgeW91IGNhbiBkbyB3aGF0ZXZlciB5b3Ugd2FudCB3aXRoIHRoaXMgc3R1ZmYuXG5JZiB3ZSBtZWV0IHNvbWUgZGF5LCBhbmQgeW91IHRoaW5rIHRoaXMgc3R1ZmYgaXMgd29ydGggaXQsIHlvdSBjYW4gYnV5IG1lIGEgYmVlciBpbiByZXR1cm4uIEx1a2EgUHVzaWNcbiovXG5cbmZ1bmN0aW9uIHJuZChhLCBiKSB7XG4gICAgLy9jYWxsaW5nIHJuZCgpIHdpdGggbm8gYXJndW1lbnRzIGlzIGlkZW50aWNhbCB0byBybmQoMCwgMTAwKVxuICAgIGEgPSBhIHx8IDA7XG4gICAgYiA9IGIgfHwgMTAwO1xuXG4gICAgaWYgKHR5cGVvZiBiID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgYSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgLy9ybmQoaW50IG1pbiwgaW50IG1heCkgcmV0dXJucyBpbnRlZ2VyIGJldHdlZW4gbWluLCBtYXhcbiAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAobWluLCBtYXgpIHtcbiAgICAgICAgICAgIGlmIChtaW4gPiBtYXgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZXhwZWN0ZWQgbWluIDw9IG1heDsgZ290IG1pbiA9ICcgKyBtaW4gKyAnLCBtYXggPSAnICsgbWF4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpICsgbWluO1xuICAgICAgICB9KGEsIGIpKTtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpID09PSBcIltvYmplY3QgQXJyYXldXCIpIHtcbiAgICAgICAgLy9yZXR1cm5zIGEgcmFuZG9tIGVsZW1lbnQgZnJvbSBhcnJheSAoYSksIGV2ZW4gd2VpZ2h0aW5nXG4gICAgICAgIHJldHVybiBhW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGEubGVuZ3RoKV07XG4gICAgfVxuXG4gICAgaWYgKGEgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vcmV0dXJucyBhIHJhbmRvbSBrZXkgZnJvbSB0aGUgcGFzc2VkIG9iamVjdDsga2V5cyBhcmUgd2VpZ2h0ZWQgYnkgdGhlIGRlY2ltYWwgcHJvYmFiaWxpdHkgaW4gdGhlaXIgdmFsdWVcbiAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICB2YXIgcmFuZCA9IHJuZCgwLCAxMDApIC8gMTAwLCBtaW4gPSAwLCBtYXggPSAwLCBrZXksIHJldHVybl92YWw7XG5cbiAgICAgICAgICAgIGZvciAoa2V5IGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBtYXggPSBvYmpba2V5XSArIG1pbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbCA9IGtleTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmQgPj0gbWluICYmIHJhbmQgPD0gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtaW4gPSBtaW4gKyBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXR1cm5fdmFsO1xuICAgICAgICB9KGEpKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8gcm5kLiAoJyArIChiID8gYSArICcsICcgKyBiIDogYSkgKyAnKScpO1xufVxuXG5mdW5jdGlvbiByYW5kb21MYW5nKCkge1xuICAgIHJldHVybiBybmQoWydBQicsICdBRicsICdBTicsICdBUicsICdBUycsICdBWicsICdCRScsICdCRycsICdCTicsICdCTycsICdCUicsICdCUycsICdDQScsICdDRScsICdDTycsICdDUycsXG4gICAgICAgICAgICAgICAgJ0NVJywgJ0NZJywgJ0RBJywgJ0RFJywgJ0VMJywgJ0VOJywgJ0VPJywgJ0VTJywgJ0VUJywgJ0VVJywgJ0ZBJywgJ0ZJJywgJ0ZKJywgJ0ZPJywgJ0ZSJywgJ0ZZJyxcbiAgICAgICAgICAgICAgICAnR0EnLCAnR0QnLCAnR0wnLCAnR1YnLCAnSEUnLCAnSEknLCAnSFInLCAnSFQnLCAnSFUnLCAnSFknLCAnSUQnLCAnSVMnLCAnSVQnLCAnSkEnLCAnSlYnLCAnS0EnLFxuICAgICAgICAgICAgICAgICdLRycsICdLTycsICdLVScsICdLVycsICdLWScsICdMQScsICdMQicsICdMSScsICdMTicsICdMVCcsICdMVicsICdNRycsICdNSycsICdNTicsICdNTycsICdNUycsXG4gICAgICAgICAgICAgICAgJ01UJywgJ01ZJywgJ05CJywgJ05FJywgJ05MJywgJ05OJywgJ05PJywgJ09DJywgJ1BMJywgJ1BUJywgJ1JNJywgJ1JPJywgJ1JVJywgJ1NDJywgJ1NFJywgJ1NLJyxcbiAgICAgICAgICAgICAgICAnU0wnLCAnU08nLCAnU1EnLCAnU1InLCAnU1YnLCAnU1cnLCAnVEsnLCAnVFInLCAnVFknLCAnVUsnLCAnVVInLCAnVVonLCAnVkknLCAnVk8nLCAnWUknLCAnWkgnXSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbUJyb3dzZXJBbmRPUygpIHtcbiAgICB2YXIgYnJvd3NlciA9IHJuZCh7XG4gICAgICAgIGNocm9tZTogICAgLjQ1MTMyODEwNTY2LFxuICAgICAgICBpZXhwbG9yZXI6IC4yNzQ3NzA2MTgzNixcbiAgICAgICAgZmlyZWZveDogICAuMTkzODQxNzA2MDgsXG4gICAgICAgIHNhZmFyaTogICAgLjA2MTg2NzgxMTE4LFxuICAgICAgICBvcGVyYTogICAgIC4wMTU3NDIzNjk1NVxuICAgIH0pLFxuICAgIG9zID0ge1xuICAgICAgICBjaHJvbWU6ICB7d2luOiAuODksICBtYWM6IC4wOSAsIGxpbjogLjAyfSxcbiAgICAgICAgZmlyZWZveDoge3dpbjogLjgzLCAgbWFjOiAuMTYsICBsaW46IC4wMX0sXG4gICAgICAgIG9wZXJhOiAgIHt3aW46IC45MSwgIG1hYzogLjAzICwgbGluOiAuMDZ9LFxuICAgICAgICBzYWZhcmk6ICB7d2luOiAuMDQgLCBtYWM6IC45NiAgfSxcbiAgICAgICAgaWV4cGxvcmVyOiBbJ3dpbiddXG4gICAgfTtcblxuICAgIHJldHVybiBbYnJvd3Nlciwgcm5kKG9zW2Jyb3dzZXJdKV07XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVByb2MoYXJjaCkge1xuICAgIHZhciBwcm9jcyA9IHtcbiAgICAgICAgbGluOlsnaTY4NicsICd4ODZfNjQnXSxcbiAgICAgICAgbWFjOiB7J0ludGVsJyA6IC40OCwgJ1BQQyc6IC4wMSwgJ1U7IEludGVsJzouNDgsICdVOyBQUEMnIDouMDF9LFxuICAgICAgICB3aW46WycnLCAnV09XNjQnLCAnV2luNjQ7IHg2NCddXG4gICAgfTtcbiAgICByZXR1cm4gcm5kKHByb2NzW2FyY2hdKTtcbn1cblxuZnVuY3Rpb24gcmFuZG9tUmV2aXNpb24oZG90cykge1xuICAgIHZhciByZXR1cm5fdmFsID0gJyc7XG4gICAgLy9nZW5lcmF0ZSBhIHJhbmRvbSByZXZpc2lvblxuICAgIC8vZG90cyA9IDIgcmV0dXJucyAueC55IHdoZXJlIHggJiB5IGFyZSBiZXR3ZWVuIDAgYW5kIDlcbiAgICBmb3IgKHZhciB4ID0gMDsgeCA8IGRvdHM7IHgrKykge1xuICAgICAgICByZXR1cm5fdmFsICs9ICcuJyArIHJuZCgwLCA5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybl92YWw7XG59XG5cbnZhciB2ZXJzaW9uX3N0cmluZyA9IHtcbiAgICBuZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtybmQoMSwgNCksIHJuZCgwLCA5KSwgcm5kKDEwMDAwLCA5OTk5OSksIHJuZCgwLCA5KV0uam9pbignLicpO1xuICAgIH0sXG4gICAgbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJuZCg1LCA2KSArICcuJyArIHJuZCgwLCAzKTtcbiAgICB9LFxuICAgIGllOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBybmQoNywgMTEpO1xuICAgIH0sXG4gICAgdHJpZGVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDMsIDcpICsgJy4nICsgcm5kKDAsIDEpO1xuICAgIH0sXG4gICAgb3N4OiBmdW5jdGlvbiAoZGVsaW0pIHtcbiAgICAgICAgcmV0dXJuIFsxMCwgcm5kKDUsIDEwKSwgcm5kKDAsIDkpXS5qb2luKGRlbGltIHx8ICcuJyk7XG4gICAgfSxcbiAgICBjaHJvbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtybmQoMTMsIDM5KSwgMCwgcm5kKDgwMCwgODk5KSwgMF0uam9pbignLicpO1xuICAgIH0sXG4gICAgcHJlc3RvOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnMi45LicgKyBybmQoMTYwLCAxOTApO1xuICAgIH0sXG4gICAgcHJlc3RvMjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDEwLCAxMikgKyAnLjAwJztcbiAgICB9LFxuICAgIHNhZmFyaTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDUzMSwgNTM4KSArICcuJyArIHJuZCgwLCAyKSArICcuJyArIHJuZCgwLDIpO1xuICAgIH1cbn07XG5cbnZhciBicm93c2VyID0ge1xuICAgIGZpcmVmb3g6IGZ1bmN0aW9uIGZpcmVmb3goYXJjaCkge1xuICAgICAgICAvL2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvR2Vja29fdXNlcl9hZ2VudF9zdHJpbmdfcmVmZXJlbmNlXG4gICAgICAgIHZhciBmaXJlZm94X3ZlciA9IHJuZCg1LCAxNSkgKyByYW5kb21SZXZpc2lvbigyKSxcbiAgICAgICAgICAgIGdlY2tvX3ZlciA9ICdHZWNrby8yMDEwMDEwMSBGaXJlZm94LycgKyBmaXJlZm94X3ZlcixcbiAgICAgICAgICAgIHByb2MgPSByYW5kb21Qcm9jKGFyY2gpLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICd3aW4nKSA/ICcoV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICgocHJvYykgPyAnOyAnICsgcHJvYyA6ICcnKVxuICAgICAgICAgICAgOiAoYXJjaCA9PT0gJ21hYycpID8gJyhNYWNpbnRvc2g7ICcgKyBwcm9jICsgJyBNYWMgT1MgWCAnICsgdmVyc2lvbl9zdHJpbmcub3N4KClcbiAgICAgICAgICAgIDogJyhYMTE7IExpbnV4ICcgKyBwcm9jO1xuXG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgJyArIG9zX3ZlciArICc7IHJ2OicgKyBmaXJlZm94X3Zlci5zbGljZSgwLCAtMikgKyAnKSAnICsgZ2Vja29fdmVyO1xuICAgIH0sXG5cbiAgICBpZXhwbG9yZXI6IGZ1bmN0aW9uIGlleHBsb3JlcigpIHtcbiAgICAgICAgdmFyIHZlciA9IHZlcnNpb25fc3RyaW5nLmllKCk7XG5cbiAgICAgICAgaWYgKHZlciA+PSAxMSkge1xuICAgICAgICAgICAgLy9odHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvaGg4NjkzMDEodj12cy44NSkuYXNweFxuICAgICAgICAgICAgcmV0dXJuICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LicgKyBybmQoMSwzKSArICc7IFRyaWRlbnQvNy4wOyAnICsgcm5kKFsnVG91Y2g7ICcsICcnXSkgKyAncnY6MTEuMCkgbGlrZSBHZWNrbyc7XG4gICAgICAgIH1cblxuICAgICAgICAvL2h0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9tczUzNzUwMyh2PXZzLjg1KS5hc3B4XG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgKGNvbXBhdGlibGU7IE1TSUUgJyArIHZlciArICcuMDsgV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICc7IFRyaWRlbnQvJyArXG4gICAgICAgICAgICB2ZXJzaW9uX3N0cmluZy50cmlkZW50KCkgKyAoKHJuZCgwLCAxKSA9PT0gMSkgPyAnOyAuTkVUIENMUiAnICsgdmVyc2lvbl9zdHJpbmcubmV0KCkgOiAnJykgKyAnKSc7XG4gICAgfSxcblxuICAgIG9wZXJhOiBmdW5jdGlvbiBvcGVyYShhcmNoKSB7XG4gICAgICAgIC8vaHR0cDovL3d3dy5vcGVyYS5jb20vZG9jcy9oaXN0b3J5L1xuICAgICAgICB2YXIgcHJlc3RvX3ZlciA9ICcgUHJlc3RvLycgKyB2ZXJzaW9uX3N0cmluZy5wcmVzdG8oKSArICcgVmVyc2lvbi8nICsgdmVyc2lvbl9zdHJpbmcucHJlc3RvMigpICsgJyknLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICd3aW4nKSA/ICcoV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICc7IFU7ICcgKyByYW5kb21MYW5nKCkgKyBwcmVzdG9fdmVyXG4gICAgICAgICAgICA6IChhcmNoID09PSAnbGluJykgPyAnKFgxMTsgTGludXggJyArIHJhbmRvbVByb2MoYXJjaCkgKyAnOyBVOyAnICsgcmFuZG9tTGFuZygpICsgcHJlc3RvX3ZlclxuICAgICAgICAgICAgOiAnKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggJyArIHZlcnNpb25fc3RyaW5nLm9zeCgpICsgJyBVOyAnICsgcmFuZG9tTGFuZygpICsgJyBQcmVzdG8vJyArXG4gICAgICAgICAgICB2ZXJzaW9uX3N0cmluZy5wcmVzdG8oKSArICcgVmVyc2lvbi8nICsgdmVyc2lvbl9zdHJpbmcucHJlc3RvMigpICsgJyknO1xuXG4gICAgICAgIHJldHVybiAnT3BlcmEvJyArIHJuZCg5LCAxNCkgKyAnLicgKyBybmQoMCwgOTkpICsgJyAnICsgb3NfdmVyO1xuICAgIH0sXG5cbiAgICBzYWZhcmk6IGZ1bmN0aW9uIHNhZmFyaShhcmNoKSB7XG4gICAgICAgIHZhciBzYWZhcmkgPSB2ZXJzaW9uX3N0cmluZy5zYWZhcmkoKSxcbiAgICAgICAgICAgIHZlciA9IHJuZCg0LCA3KSArICcuJyArIHJuZCgwLDEpICsgJy4nICsgcm5kKDAsMTApLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICdtYWMnKSA/ICcoTWFjaW50b3NoOyAnICsgcmFuZG9tUHJvYygnbWFjJykgKyAnIE1hYyBPUyBYICcrIHZlcnNpb25fc3RyaW5nLm9zeCgnXycpICsgJyBydjonICsgcm5kKDIsIDYpICsgJy4wOyAnKyByYW5kb21MYW5nKCkgKyAnKSAnXG4gICAgICAgICAgICA6ICcoV2luZG93czsgVTsgV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICcpJztcblxuICAgICAgICByZXR1cm4gJ01vemlsbGEvNS4wICcgKyBvc192ZXIgKyAnQXBwbGVXZWJLaXQvJyArIHNhZmFyaSArICcgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLycgKyB2ZXIgKyAnIFNhZmFyaS8nICsgc2FmYXJpO1xuICAgIH0sXG5cbiAgICBjaHJvbWU6IGZ1bmN0aW9uIGNocm9tZShhcmNoKSB7XG4gICAgICAgIHZhciBzYWZhcmkgPSB2ZXJzaW9uX3N0cmluZy5zYWZhcmkoKSxcbiAgICAgICAgICAgIG9zX3ZlciA9IChhcmNoID09PSAnbWFjJykgPyAnKE1hY2ludG9zaDsgJyArIHJhbmRvbVByb2MoJ21hYycpICsgJyBNYWMgT1MgWCAnICsgdmVyc2lvbl9zdHJpbmcub3N4KCdfJykgKyAnKSAnXG4gICAgICAgICAgICA6IChhcmNoID09PSAnd2luJykgPyAnKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgJyArIHZlcnNpb25fc3RyaW5nLm50KCkgKyAnKSdcbiAgICAgICAgICAgIDogJyhYMTE7IExpbnV4ICcgKyByYW5kb21Qcm9jKGFyY2gpO1xuXG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgJyArIG9zX3ZlciArICcgQXBwbGVXZWJLaXQvJyArIHNhZmFyaSArICcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvJyArIHZlcnNpb25fc3RyaW5nLmNocm9tZSgpICsgJyBTYWZhcmkvJyArIHNhZmFyaTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmdlbmVyYXRlID0gZnVuY3Rpb24gZ2VuZXJhdGUoKSB7XG4gICAgdmFyIHJhbmRvbSA9IHJhbmRvbUJyb3dzZXJBbmRPUygpO1xuICAgIHJldHVybiBicm93c2VyW3JhbmRvbVswXV0ocmFuZG9tWzFdKTtcbn07XG4iLCJ2YXIgcmV0ID0gcmVxdWlyZSgncmV0Jyk7XG52YXIgRFJhbmdlID0gcmVxdWlyZSgnZGlzY29udGludW91cy1yYW5nZScpO1xudmFyIHR5cGVzID0gcmV0LnR5cGVzO1xuXG5cbi8qKlxuICogSWYgY29kZSBpcyBhbHBoYWJldGljLCBjb252ZXJ0cyB0byBvdGhlciBjYXNlLlxuICogSWYgbm90IGFscGhhYmV0aWMsIHJldHVybnMgYmFjayBjb2RlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb2RlXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIHRvT3RoZXJDYXNlKGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgKyAoOTcgPD0gY29kZSAmJiBjb2RlIDw9IDEyMiA/IC0zMiA6XG4gICAgICAgICAgICAgICAgIDY1IDw9IGNvZGUgJiYgY29kZSA8PSA5MCAgPyAgMzIgOiAwKTtcbn1cblxuXG4vKipcbiAqIFJhbmRvbWx5IHJldHVybnMgYSB0cnVlIG9yIGZhbHNlIHZhbHVlLlxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIHJhbmRCb29sKCkge1xuICByZXR1cm4gIXRoaXMucmFuZEludCgwLCAxKTtcbn07XG5cblxuLyoqXG4gKiBSYW5kb21seSBzZWxlY3RzIGFuZCByZXR1cm5zIGEgdmFsdWUgZnJvbSB0aGUgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtBcnJheS48T2JqZWN0Pn0gYXJyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHJhbmRTZWxlY3QoYXJyKSB7XG4gIGlmIChhcnIgaW5zdGFuY2VvZiBEUmFuZ2UpIHtcbiAgICByZXR1cm4gYXJyLmluZGV4KHRoaXMucmFuZEludCgwLCBhcnIubGVuZ3RoIC0gMSkpO1xuICB9XG4gIHJldHVybiBhcnJbdGhpcy5yYW5kSW50KDAsIGFyci5sZW5ndGggLSAxKV07XG59O1xuXG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIGNoYXJhY3RlciBjb2RlIGlzIGFscGhhYmV0aWMgYW5kIGRlY2lkZVxuICogdG8gc3dpdGNoIGNhc2UgcmFuZG9tbHkuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gaWdub3JlQ2FzZVxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBjaGFyKGNvZGUsIGlnbm9yZUNhc2UpIHtcbiAgY29kZSA9IGlnbm9yZUNhc2UgJiYgcmFuZEJvb2wuY2FsbCh0aGlzKSA/IHRvT3RoZXJDYXNlKGNvZGUpIDogY29kZTtcbiAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG59O1xuXG5cbi8qKlxuICogZXhwYW5kcyBhIHRva2VuIHRvIGEgRGlzY29udGludW91c1JhbmdlIG9mIGNoYXJhY3RlcnMgd2hpY2ggaGFzIGEgXG4gKiBsZW5ndGggYW5kIGFuIGluZGV4IGZ1bmN0aW9uIChmb3IgcmFuZG9tIHNlbGVjdGluZylcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdG9rZW5cbiAqIEByZXR1cm4ge0Rpc2NvbnRpbnVvdXNSYW5nZX1cbiAqL1xuZnVuY3Rpb24gZXhwYW5kKHRva2VuKSB7XG4gIGlmICh0b2tlbi50eXBlID09PSByZXQudHlwZXMuQ0hBUikgcmV0dXJuIG5ldyBEUmFuZ2UodG9rZW4udmFsdWUpO1xuICBpZiAodG9rZW4udHlwZSA9PT0gcmV0LnR5cGVzLlJBTkdFKSByZXR1cm4gbmV3IERSYW5nZSh0b2tlbi5mcm9tLCB0b2tlbi50byk7XG4gIGlmICh0b2tlbi50eXBlID09PSByZXQudHlwZXMuU0VUKSB7XG4gICAgdmFyIGRyYW5nZSA9IG5ldyBEUmFuZ2UoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2VuLnNldC5sZW5ndGg7IGkrKykge1xuICAgICAgZHJhbmdlLmFkZChleHBhbmQuY2FsbCh0aGlzLCB0b2tlbi5zZXRbaV0pKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLm5vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFJhbmdlLmNsb25lKCkuc3VidHJhY3QoZHJhbmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRyYW5nZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGFuZGFibGUgdG9rZW4gdHlwZTogJyArIHRva2VuLnR5cGUpO1xufTtcblxuXG4vKipcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtSZWdFeHB8U3RyaW5nfSByZWdleHBcbiAqIEBwYXJhbSB7U3RyaW5nfSBtXG4gKi9cbnZhciBSYW5kRXhwID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihyZWdleHAsIG0pIHtcbiAgdGhpcy5kZWZhdWx0UmFuZ2UgPSB0aGlzLmRlZmF1bHRSYW5nZS5jbG9uZSgpO1xuICBpZiAocmVnZXhwIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgdGhpcy5pZ25vcmVDYXNlID0gcmVnZXhwLmlnbm9yZUNhc2U7XG4gICAgdGhpcy5tdWx0aWxpbmUgPSByZWdleHAubXVsdGlsaW5lO1xuICAgIGlmICh0eXBlb2YgcmVnZXhwLm1heCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMubWF4ID0gcmVnZXhwLm1heDtcbiAgICB9XG4gICAgcmVnZXhwID0gcmVnZXhwLnNvdXJjZTtcblxuICB9IGVsc2UgaWYgKHR5cGVvZiByZWdleHAgPT09ICdzdHJpbmcnKSB7XG4gICAgdGhpcy5pZ25vcmVDYXNlID0gbSAmJiBtLmluZGV4T2YoJ2knKSAhPT0gLTE7XG4gICAgdGhpcy5tdWx0aWxpbmUgPSBtICYmIG0uaW5kZXhPZignbScpICE9PSAtMTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgcmVnZXhwIG9yIHN0cmluZycpO1xuICB9XG5cbiAgdGhpcy50b2tlbnMgPSByZXQocmVnZXhwKTtcbn07XG5cblxuLy8gV2hlbiBhIHJlcGV0aXRpb25hbCB0b2tlbiBoYXMgaXRzIG1heCBzZXQgdG8gSW5maW5pdGUsXG4vLyByYW5kZXhwIHdvbid0IGFjdHVhbGx5IGdlbmVyYXRlIGEgcmFuZG9tIGFtb3VudCBiZXR3ZWVuIG1pbiBhbmQgSW5maW5pdGVcbi8vIGluc3RlYWQgaXQgd2lsbCBzZWUgSW5maW5pdGUgYXMgbWluICsgMTAwLlxuUmFuZEV4cC5wcm90b3R5cGUubWF4ID0gMTAwO1xuXG5cbi8vIEdlbmVyYXRlcyB0aGUgcmFuZG9tIHN0cmluZy5cblJhbmRFeHAucHJvdG90eXBlLmdlbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZ2VuLmNhbGwodGhpcywgdGhpcy50b2tlbnMsIFtdKTtcbn07XG5cblxuLy8gRW5hYmxlcyB1c2Ugb2YgcmFuZGV4cCB3aXRoIGEgc2hvcnRlciBjYWxsLlxuUmFuZEV4cC5yYW5kZXhwID0gZnVuY3Rpb24ocmVnZXhwLCBtKSB7XG4gIHZhciByYW5kZXhwO1xuXG4gIGlmIChyZWdleHAuX3JhbmRleHAgPT09IHVuZGVmaW5lZCkge1xuICAgIHJhbmRleHAgPSBuZXcgUmFuZEV4cChyZWdleHAsIG0pO1xuICAgIHJlZ2V4cC5fcmFuZGV4cCA9IHJhbmRleHA7XG4gIH0gZWxzZSB7XG4gICAgcmFuZGV4cCA9IHJlZ2V4cC5fcmFuZGV4cDtcbiAgICBpZiAodHlwZW9mIHJlZ2V4cC5tYXggPT09ICdudW1iZXInKSB7XG4gICAgICByYW5kZXhwLm1heCA9IHJlZ2V4cC5tYXg7XG4gICAgfVxuICAgIGlmIChyZWdleHAuZGVmYXVsdFJhbmdlIGluc3RhbmNlb2YgRFJhbmdlKSB7XG4gICAgICByYW5kZXhwLmRlZmF1bHRSYW5nZSA9IHJlZ2V4cC5kZWZhdWx0UmFuZ2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVnZXhwLnJhbmRJbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJhbmRleHAucmFuZEludCA9IHJlZ2V4cC5yYW5kSW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByYW5kZXhwLmdlbigpO1xufTtcblxuXG4vLyBUaGlzIGVuYWJsZXMgc3VnYXJ5IC9yZWdleHAvLmdlbiBzeW50YXguXG5SYW5kRXhwLnN1Z2FyID0gZnVuY3Rpb24oKSB7XG4gIC8qIGpzaGludCBmcmVlemU6ZmFsc2UgKi9cbiAgUmVnRXhwLnByb3RvdHlwZS5nZW4gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gUmFuZEV4cC5yYW5kZXhwKHRoaXMpO1xuICB9O1xufTtcblxuLy8gVGhpcyBhbGxvd3MgZXhwYW5kaW5nIHRvIGluY2x1ZGUgYWRkaXRpb25hbCBjaGFyYWN0ZXJzXG4vLyBmb3IgaW5zdGFuY2U6IFJhbmRFeHAuZGVmYXVsdFJhbmdlLmFkZCgwLCA2NTUzNSk7XG5SYW5kRXhwLnByb3RvdHlwZS5kZWZhdWx0UmFuZ2UgPSBuZXcgRFJhbmdlKDMyLCAxMjYpO1xuXG5cblxuXG5cblxuLyoqXG4gKiBSYW5kb21seSBnZW5lcmF0ZXMgYW5kIHJldHVybnMgYSBudW1iZXIgYmV0d2VlbiBhIGFuZCBiIChpbmNsdXNpdmUpLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBhXG4gKiBAcGFyYW0ge051bWJlcn0gYlxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG5SYW5kRXhwLnByb3RvdHlwZS5yYW5kSW50ID0gZnVuY3Rpb24oYSwgYikge1xuICByZXR1cm4gYSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICgxICsgYiAtIGEpKTtcbn07XG5cblxuLyoqXG4gKiBHZW5lcmF0ZSByYW5kb20gc3RyaW5nIG1vZGVsZWQgYWZ0ZXIgZ2l2ZW4gdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB0b2tlblxuICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gZ3JvdXBzXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdlbih0b2tlbiwgZ3JvdXBzKSB7XG4gIHZhciBzdGFjaywgc3RyLCBuLCBpLCBsO1xuXG4gIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXG5cbiAgICBjYXNlIHR5cGVzLlJPT1Q6XG4gICAgY2FzZSB0eXBlcy5HUk9VUDpcbiAgICAgIGlmICh0b2tlbi5ub3RGb2xsb3dlZEJ5KSB7IHJldHVybiAnJzsgfVxuXG4gICAgICAvLyBJbnNlcnQgcGxhY2Vob2xkZXIgdW50aWwgZ3JvdXAgc3RyaW5nIGlzIGdlbmVyYXRlZC5cbiAgICAgIGlmICh0b2tlbi5yZW1lbWJlciAmJiB0b2tlbi5ncm91cE51bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRva2VuLmdyb3VwTnVtYmVyID0gZ3JvdXBzLnB1c2gobnVsbCkgLSAxO1xuICAgICAgfVxuXG4gICAgICBzdGFjayA9IHRva2VuLm9wdGlvbnMgPyByYW5kU2VsZWN0LmNhbGwodGhpcywgdG9rZW4ub3B0aW9ucykgOiB0b2tlbi5zdGFjaztcblxuICAgICAgc3RyID0gJyc7XG4gICAgICBmb3IgKGkgPSAwLCBsID0gc3RhY2subGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHN0ciArPSBnZW4uY2FsbCh0aGlzLCBzdGFja1tpXSwgZ3JvdXBzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2VuLnJlbWVtYmVyKSB7XG4gICAgICAgIGdyb3Vwc1t0b2tlbi5ncm91cE51bWJlcl0gPSBzdHI7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyO1xuXG5cbiAgICBjYXNlIHR5cGVzLlBPU0lUSU9OOlxuICAgICAgLy8gRG8gbm90aGluZyBmb3Igbm93LlxuICAgICAgcmV0dXJuICcnO1xuXG5cbiAgICBjYXNlIHR5cGVzLlNFVDpcblxuICAgICAgdmFyIGV4cGFuZGVkX3NldCA9IGV4cGFuZC5jYWxsKHRoaXMsIHRva2VuKTtcbiAgICAgIGlmICghZXhwYW5kZWRfc2V0Lmxlbmd0aCkgcmV0dXJuICcnO1xuICAgICAgcmV0dXJuIGNoYXIuY2FsbCh0aGlzLCByYW5kU2VsZWN0LmNhbGwodGhpcywgZXhwYW5kZWRfc2V0KSwgdGhpcy5pZ25vcmVDYXNlKTtcblxuICAgIGNhc2UgdHlwZXMuUkFOR0U6XG4gICAgICByZXR1cm4gY2hhci5jYWxsKHRoaXMsIHRoaXMucmFuZEludCh0b2tlbi5mcm9tLCB0b2tlbi50byksIHRoaXMuaWdub3JlQ2FzZSk7XG5cblxuICAgIGNhc2UgdHlwZXMuUkVQRVRJVElPTjpcbiAgICAgIC8vIFJhbmRvbWx5IGdlbmVyYXRlIG51bWJlciBiZXR3ZWVuIG1pbiBhbmQgbWF4LlxuICAgICAgbiA9IHRoaXMucmFuZEludCh0b2tlbi5taW4sXG4gICAgICAgICAgICAgIHRva2VuLm1heCA9PT0gSW5maW5pdHkgPyB0b2tlbi5taW4gKyB0aGlzLm1heCA6IHRva2VuLm1heCk7XG5cbiAgICAgIHN0ciA9ICcnO1xuICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBzdHIgKz0gZ2VuLmNhbGwodGhpcywgdG9rZW4udmFsdWUsIGdyb3Vwcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHI7XG5cblxuICAgIGNhc2UgdHlwZXMuUkVGRVJFTkNFOlxuICAgICAgcmV0dXJuIGdyb3Vwc1t0b2tlbi52YWx1ZSAtIDFdIHx8ICcnO1xuXG5cbiAgICBjYXNlIHR5cGVzLkNIQVI6XG4gICAgICByZXR1cm4gY2hhci5jYWxsKHRoaXMsIHRva2VuLnZhbHVlLCB0aGlzLmlnbm9yZUNhc2UpO1xuICB9XG59XG5cblxuIiwiLy9wcm90ZWN0ZWQgaGVscGVyIGNsYXNzXG5mdW5jdGlvbiBfU3ViUmFuZ2UobG93LCBoaWdoKSB7XG4gICAgdGhpcy5sb3cgPSBsb3c7XG4gICAgdGhpcy5oaWdoID0gaGlnaDtcbiAgICB0aGlzLmxlbmd0aCA9IDEgKyBoaWdoIC0gbG93O1xufVxuXG5fU3ViUmFuZ2UucHJvdG90eXBlLm92ZXJsYXBzID0gZnVuY3Rpb24gKHJhbmdlKSB7XG4gICAgcmV0dXJuICEodGhpcy5oaWdoIDwgcmFuZ2UubG93IHx8IHRoaXMubG93ID4gcmFuZ2UuaGlnaCk7XG59O1xuXG5fU3ViUmFuZ2UucHJvdG90eXBlLnRvdWNoZXMgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICByZXR1cm4gISh0aGlzLmhpZ2ggKyAxIDwgcmFuZ2UubG93IHx8IHRoaXMubG93IC0gMSA+IHJhbmdlLmhpZ2gpO1xufTtcblxuLy9yZXR1cm5zIGluY2x1c2l2ZSBjb21iaW5hdGlvbiBvZiBfU3ViUmFuZ2VzIGFzIGEgX1N1YlJhbmdlXG5fU3ViUmFuZ2UucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChyYW5nZSkge1xuICAgIHJldHVybiB0aGlzLnRvdWNoZXMocmFuZ2UpICYmIG5ldyBfU3ViUmFuZ2UoTWF0aC5taW4odGhpcy5sb3csIHJhbmdlLmxvdyksIE1hdGgubWF4KHRoaXMuaGlnaCwgcmFuZ2UuaGlnaCkpO1xufTtcblxuLy9yZXR1cm5zIHN1YnRyYWN0aW9uIG9mIF9TdWJSYW5nZXMgYXMgYW4gYXJyYXkgb2YgX1N1YlJhbmdlcyAodGhlcmUncyBhIGNhc2Ugd2hlcmUgc3VidHJhY3Rpb24gZGl2aWRlcyBpdCBpbiAyKVxuX1N1YlJhbmdlLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uIChyYW5nZSkge1xuICAgIGlmICghdGhpcy5vdmVybGFwcyhyYW5nZSkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocmFuZ2UubG93IDw9IHRoaXMubG93ICYmIHJhbmdlLmhpZ2ggPj0gdGhpcy5oaWdoKSByZXR1cm4gW107XG4gICAgaWYgKHJhbmdlLmxvdyA+IHRoaXMubG93ICYmIHJhbmdlLmhpZ2ggPCB0aGlzLmhpZ2gpIHJldHVybiBbbmV3IF9TdWJSYW5nZSh0aGlzLmxvdywgcmFuZ2UubG93IC0gMSksIG5ldyBfU3ViUmFuZ2UocmFuZ2UuaGlnaCArIDEsIHRoaXMuaGlnaCldO1xuICAgIGlmIChyYW5nZS5sb3cgPD0gdGhpcy5sb3cpIHJldHVybiBbbmV3IF9TdWJSYW5nZShyYW5nZS5oaWdoICsgMSwgdGhpcy5oaWdoKV07XG4gICAgcmV0dXJuIFtuZXcgX1N1YlJhbmdlKHRoaXMubG93LCByYW5nZS5sb3cgLSAxKV07XG59O1xuXG5fU3ViUmFuZ2UucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLmxvdyA9PSB0aGlzLmhpZ2gpIHJldHVybiB0aGlzLmxvdy50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmxvdyArICctJyArIHRoaXMuaGlnaDtcbn07XG5cbl9TdWJSYW5nZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG5ldyBfU3ViUmFuZ2UodGhpcy5sb3csIHRoaXMuaGlnaCk7XG59O1xuXG5cblxuXG5mdW5jdGlvbiBEaXNjb250aW51b3VzUmFuZ2UoYSwgYikge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgRGlzY29udGludW91c1JhbmdlKSB7XG4gICAgICAgIHRoaXMucmFuZ2VzID0gW107XG4gICAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICAgICAgaWYgKGEgIT09IHVuZGVmaW5lZCkgdGhpcy5hZGQoYSwgYik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEaXNjb250aW51b3VzUmFuZ2UoYSwgYik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBfdXBkYXRlX2xlbmd0aChzZWxmKSB7XG4gICAgc2VsZi5sZW5ndGggPSBzZWxmLnJhbmdlcy5yZWR1Y2UoZnVuY3Rpb24gKHByZXZpb3VzLCByYW5nZSkge3JldHVybiBwcmV2aW91cyArIHJhbmdlLmxlbmd0aH0sIDApO1xufVxuXG5EaXNjb250aW51b3VzUmFuZ2UucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIF9hZGQoc3VicmFuZ2UpIHtcbiAgICAgICAgdmFyIG5ld19yYW5nZXMgPSBbXTtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiAhc3VicmFuZ2UudG91Y2hlcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMucHVzaChzZWxmLnJhbmdlc1tpXS5jbG9uZSgpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiBzdWJyYW5nZS50b3VjaGVzKHNlbGYucmFuZ2VzW2ldKSkge1xuICAgICAgICAgICAgc3VicmFuZ2UgPSBzdWJyYW5nZS5hZGQoc2VsZi5yYW5nZXNbaV0pO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIG5ld19yYW5nZXMucHVzaChzdWJyYW5nZSk7XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZi5yYW5nZXMgPSBuZXdfcmFuZ2VzO1xuICAgICAgICBfdXBkYXRlX2xlbmd0aChzZWxmKTtcbiAgICB9XG5cbiAgICBpZiAoYSBpbnN0YW5jZW9mIERpc2NvbnRpbnVvdXNSYW5nZSkge1xuICAgICAgICBhLnJhbmdlcy5mb3JFYWNoKF9hZGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhIGluc3RhbmNlb2YgX1N1YlJhbmdlKSB7XG4gICAgICAgICAgICBfYWRkKGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGIgPT09IHVuZGVmaW5lZCkgYiA9IGE7XG4gICAgICAgICAgICBfYWRkKG5ldyBfU3ViUmFuZ2UoYSwgYikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xufTtcblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIF9zdWJ0cmFjdChzdWJyYW5nZSkge1xuICAgICAgICB2YXIgbmV3X3JhbmdlcyA9IFtdO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoICYmICFzdWJyYW5nZS5vdmVybGFwcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMucHVzaChzZWxmLnJhbmdlc1tpXS5jbG9uZSgpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiBzdWJyYW5nZS5vdmVybGFwcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMgPSBuZXdfcmFuZ2VzLmNvbmNhdChzZWxmLnJhbmdlc1tpXS5zdWJ0cmFjdChzdWJyYW5nZSkpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZi5yYW5nZXMgPSBuZXdfcmFuZ2VzO1xuICAgICAgICBfdXBkYXRlX2xlbmd0aChzZWxmKTtcbiAgICB9XG4gICAgaWYgKGEgaW5zdGFuY2VvZiBEaXNjb250aW51b3VzUmFuZ2UpIHtcbiAgICAgICAgYS5yYW5nZXMuZm9yRWFjaChfc3VidHJhY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhIGluc3RhbmNlb2YgX1N1YlJhbmdlKSB7XG4gICAgICAgICAgICBfc3VidHJhY3QoYSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoYiA9PT0gdW5kZWZpbmVkKSBiID0gYTtcbiAgICAgICAgICAgIF9zdWJ0cmFjdChuZXcgX1N1YlJhbmdlKGEsIGIpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbn07XG5cblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS5pbmRleCA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHRoaXMucmFuZ2VzLmxlbmd0aCAmJiB0aGlzLnJhbmdlc1tpXS5sZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgaW5kZXggLT0gdGhpcy5yYW5nZXNbaV0ubGVuZ3RoO1xuICAgICAgICBpKys7XG4gICAgfVxuICAgIGlmIChpID49IHRoaXMucmFuZ2VzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2VzW2ldLmxvdyArIGluZGV4O1xufTtcblxuXG5EaXNjb250aW51b3VzUmFuZ2UucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAnWyAnICsgdGhpcy5yYW5nZXMuam9pbignLCAnKSArICcgXSdcbn07XG5cbkRpc2NvbnRpbnVvdXNSYW5nZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG5ldyBEaXNjb250aW51b3VzUmFuZ2UodGhpcyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERpc2NvbnRpbnVvdXNSYW5nZTtcbiIsInZhciB1dGlsICAgICAgPSByZXF1aXJlKCcuL3V0aWwnKTtcbnZhciB0eXBlcyAgICAgPSByZXF1aXJlKCcuL3R5cGVzJyk7XG52YXIgc2V0cyAgICAgID0gcmVxdWlyZSgnLi9zZXRzJyk7XG52YXIgcG9zaXRpb25zID0gcmVxdWlyZSgnLi9wb3NpdGlvbnMnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHJlZ2V4cFN0cikge1xuICB2YXIgaSA9IDAsIGwsIGMsXG4gICAgICBzdGFydCA9IHsgdHlwZTogdHlwZXMuUk9PVCwgc3RhY2s6IFtdfSxcblxuICAgICAgLy8gS2VlcCB0cmFjayBvZiBsYXN0IGNsYXVzZS9ncm91cCBhbmQgc3RhY2suXG4gICAgICBsYXN0R3JvdXAgPSBzdGFydCxcbiAgICAgIGxhc3QgPSBzdGFydC5zdGFjayxcbiAgICAgIGdyb3VwU3RhY2sgPSBbXTtcblxuXG4gIHZhciByZXBlYXRFcnIgPSBmdW5jdGlvbihpKSB7XG4gICAgdXRpbC5lcnJvcihyZWdleHBTdHIsICdOb3RoaW5nIHRvIHJlcGVhdCBhdCBjb2x1bW4gJyArIChpIC0gMSkpO1xuICB9O1xuXG4gIC8vIERlY29kZSBhIGZldyBlc2NhcGVkIGNoYXJhY3RlcnMuXG4gIHZhciBzdHIgPSB1dGlsLnN0clRvQ2hhcnMocmVnZXhwU3RyKTtcbiAgbCA9IHN0ci5sZW5ndGg7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggY2hhcmFjdGVyIGluIHN0cmluZy5cbiAgd2hpbGUgKGkgPCBsKSB7XG4gICAgYyA9IHN0cltpKytdO1xuXG4gICAgc3dpdGNoIChjKSB7XG4gICAgICAvLyBIYW5kbGUgZXNjYXBlZCBjaGFyYWN0ZXJzLCBpbmNsdWVzIGEgZmV3IHNldHMuXG4gICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgYyA9IHN0cltpKytdO1xuXG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy53b3JkQm91bmRhcnkoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ0InOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy5ub25Xb3JkQm91bmRhcnkoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMud29yZHMoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMubm90V29yZHMoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMuaW50cygpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICBsYXN0LnB1c2goc2V0cy5ub3RJbnRzKCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChzZXRzLndoaXRlc3BhY2UoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1MnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMubm90V2hpdGVzcGFjZSgpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGMgaXMgaW50ZWdlci5cbiAgICAgICAgICAgIC8vIEluIHdoaWNoIGNhc2UgaXQncyBhIHJlZmVyZW5jZS5cbiAgICAgICAgICAgIGlmICgvXFxkLy50ZXN0KGMpKSB7XG4gICAgICAgICAgICAgIGxhc3QucHVzaCh7IHR5cGU6IHR5cGVzLlJFRkVSRU5DRSwgdmFsdWU6IHBhcnNlSW50KGMsIDEwKSB9KTtcblxuICAgICAgICAgICAgLy8gRXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsYXN0LnB1c2goeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogYy5jaGFyQ29kZUF0KDApIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gUG9zaXRpb25hbHMuXG4gICAgICBjYXNlICdeJzpcbiAgICAgICAgICBsYXN0LnB1c2gocG9zaXRpb25zLmJlZ2luKCkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnJCc6XG4gICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy5lbmQoKSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIEhhbmRsZSBjdXN0b20gc2V0cy5cbiAgICAgIGNhc2UgJ1snOlxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGNsYXNzIGlzICdhbnRpJyBpLmUuIFteYWJjXS5cbiAgICAgICAgdmFyIG5vdDtcbiAgICAgICAgaWYgKHN0cltpXSA9PT0gJ14nKSB7XG4gICAgICAgICAgbm90ID0gdHJ1ZTtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm90ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgYWxsIHRoZSBjaGFyYWN0ZXJzIGluIGNsYXNzLlxuICAgICAgICB2YXIgY2xhc3NUb2tlbnMgPSB1dGlsLnRva2VuaXplQ2xhc3Moc3RyLnNsaWNlKGkpLCByZWdleHBTdHIpO1xuXG4gICAgICAgIC8vIEluY3JlYXNlIGluZGV4IGJ5IGxlbmd0aCBvZiBjbGFzcy5cbiAgICAgICAgaSArPSBjbGFzc1Rva2Vuc1sxXTtcbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlNFVFxuICAgICAgICAgICwgc2V0OiBjbGFzc1Rva2Vuc1swXVxuICAgICAgICAgICwgbm90OiBub3RcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gQ2xhc3Mgb2YgYW55IGNoYXJhY3RlciBleGNlcHQgXFxuLlxuICAgICAgY2FzZSAnLic6XG4gICAgICAgIGxhc3QucHVzaChzZXRzLmFueUNoYXIoKSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFB1c2ggZ3JvdXAgb250byBzdGFjay5cbiAgICAgIGNhc2UgJygnOlxuICAgICAgICAvLyBDcmVhdGUgZ3JvdXAuXG4gICAgICAgIHZhciBncm91cCA9IHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLkdST1VQXG4gICAgICAgICAgLCBzdGFjazogW11cbiAgICAgICAgICAsIHJlbWVtYmVyOiB0cnVlXG4gICAgICAgIH07XG5cbiAgICAgICAgYyA9IHN0cltpXTtcblxuICAgICAgICAvLyBpZiBpZiB0aGlzIGlzIGEgc3BlY2lhbCBraW5kIG9mIGdyb3VwLlxuICAgICAgICBpZiAoYyA9PT0gJz8nKSB7XG4gICAgICAgICAgYyA9IHN0cltpICsgMV07XG4gICAgICAgICAgaSArPSAyO1xuXG4gICAgICAgICAgLy8gTWF0Y2ggaWYgZm9sbG93ZWQgYnkuXG4gICAgICAgICAgaWYgKGMgPT09ICc9Jykge1xuICAgICAgICAgICAgZ3JvdXAuZm9sbG93ZWRCeSA9IHRydWU7XG5cbiAgICAgICAgICAvLyBNYXRjaCBpZiBub3QgZm9sbG93ZWQgYnkuXG4gICAgICAgICAgfSBlbHNlIGlmIChjID09PSAnIScpIHtcbiAgICAgICAgICAgIGdyb3VwLm5vdEZvbGxvd2VkQnkgPSB0cnVlO1xuXG4gICAgICAgICAgfSBlbHNlIGlmIChjICE9PSAnOicpIHtcbiAgICAgICAgICAgIHV0aWwuZXJyb3IocmVnZXhwU3RyLFxuICAgICAgICAgICAgICAgICdJbnZhbGlkIGdyb3VwLCBjaGFyYWN0ZXIgXFwnJyArIGMgKyAnXFwnIGFmdGVyIFxcJz9cXCcgYXQgY29sdW1uICcgK1xuICAgICAgICAgICAgICAgIChpIC0gMSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGdyb3VwLnJlbWVtYmVyID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnNlcnQgc3ViZ3JvdXAgaW50byBjdXJyZW50IGdyb3VwIHN0YWNrLlxuICAgICAgICBsYXN0LnB1c2goZ3JvdXApO1xuXG4gICAgICAgIC8vIFJlbWVtYmVyIHRoZSBjdXJyZW50IGdyb3VwIGZvciB3aGVuIHRoZSBncm91cCBjbG9zZXMuXG4gICAgICAgIGdyb3VwU3RhY2sucHVzaChsYXN0R3JvdXApO1xuXG4gICAgICAgIC8vIE1ha2UgdGhpcyBuZXcgZ3JvdXAgdGhlIGN1cnJlbnQgZ3JvdXAuXG4gICAgICAgIGxhc3RHcm91cCA9IGdyb3VwO1xuICAgICAgICBsYXN0ID0gZ3JvdXAuc3RhY2s7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFBvcCBncm91cCBvdXQgb2Ygc3RhY2suXG4gICAgICBjYXNlICcpJzpcbiAgICAgICAgaWYgKGdyb3VwU3RhY2subGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdXRpbC5lcnJvcihyZWdleHBTdHIsICdVbm1hdGNoZWQgKSBhdCBjb2x1bW4gJyArIChpIC0gMSkpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RHcm91cCA9IGdyb3VwU3RhY2sucG9wKCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBncm91cCBoYXMgYSBQSVBFLlxuICAgICAgICAvLyBUbyBnZXQgYmFjayB0aGUgY29ycmVjdCBsYXN0IHN0YWNrLlxuICAgICAgICBsYXN0ID0gbGFzdEdyb3VwLm9wdGlvbnMgPyBsYXN0R3JvdXAub3B0aW9uc1tsYXN0R3JvdXAub3B0aW9ucy5sZW5ndGggLSAxXSA6IGxhc3RHcm91cC5zdGFjaztcbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gVXNlIHBpcGUgY2hhcmFjdGVyIHRvIGdpdmUgbW9yZSBjaG9pY2VzLlxuICAgICAgY2FzZSAnfCc6XG4gICAgICAgIC8vIENyZWF0ZSBhcnJheSB3aGVyZSBvcHRpb25zIGFyZSBpZiB0aGlzIGlzIHRoZSBmaXJzdCBQSVBFXG4gICAgICAgIC8vIGluIHRoaXMgY2xhdXNlLlxuICAgICAgICBpZiAoIWxhc3RHcm91cC5vcHRpb25zKSB7XG4gICAgICAgICAgbGFzdEdyb3VwLm9wdGlvbnMgPSBbbGFzdEdyb3VwLnN0YWNrXTtcbiAgICAgICAgICBkZWxldGUgbGFzdEdyb3VwLnN0YWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHN0YWNrIGFuZCBhZGQgdG8gb3B0aW9ucyBmb3IgcmVzdCBvZiBjbGF1c2UuXG4gICAgICAgIHZhciBzdGFjayA9IFtdO1xuICAgICAgICBsYXN0R3JvdXAub3B0aW9ucy5wdXNoKHN0YWNrKTtcbiAgICAgICAgbGFzdCA9IHN0YWNrO1xuICAgICAgICBicmVhaztcblxuXG4gICAgICAvLyBSZXBldGl0aW9uLlxuICAgICAgLy8gRm9yIGV2ZXJ5IHJlcGV0aXRpb24sIHJlbW92ZSBsYXN0IGVsZW1lbnQgZnJvbSBsYXN0IHN0YWNrXG4gICAgICAvLyB0aGVuIGluc2VydCBiYWNrIGEgUkFOR0Ugb2JqZWN0LlxuICAgICAgLy8gVGhpcyBkZXNpZ24gaXMgY2hvc2VuIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgbW9yZSB0aGFuXG4gICAgICAvLyBvbmUgcmVwZXRpdGlvbiBzeW1ib2xzIGluIGEgcmVnZXggaS5lLiBgYT8rezIsM31gLlxuICAgICAgY2FzZSAneyc6XG4gICAgICAgIHZhciBycyA9IC9eKFxcZCspKCwoXFxkKyk/KT9cXH0vLmV4ZWMoc3RyLnNsaWNlKGkpKSwgbWluLCBtYXg7XG4gICAgICAgIGlmIChycyAhPT0gbnVsbCkge1xuICAgICAgICAgIG1pbiA9IHBhcnNlSW50KHJzWzFdLCAxMCk7XG4gICAgICAgICAgbWF4ID0gcnNbMl0gPyByc1szXSA/IHBhcnNlSW50KHJzWzNdLCAxMCkgOiBJbmZpbml0eSA6IG1pbjtcbiAgICAgICAgICBpICs9IHJzWzBdLmxlbmd0aDtcblxuICAgICAgICAgIGxhc3QucHVzaCh7XG4gICAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAgICwgbWluOiBtaW5cbiAgICAgICAgICAgICwgbWF4OiBtYXhcbiAgICAgICAgICAgICwgdmFsdWU6IGxhc3QucG9wKClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgICB0eXBlOiB0eXBlcy5DSEFSXG4gICAgICAgICAgICAsIHZhbHVlOiAxMjNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnPyc6XG4gICAgICAgIGlmIChsYXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJlcGVhdEVycihpKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgdHlwZTogdHlwZXMuUkVQRVRJVElPTlxuICAgICAgICAgICwgbWluOiAwXG4gICAgICAgICAgLCBtYXg6IDFcbiAgICAgICAgICAsIHZhbHVlOiBsYXN0LnBvcCgpXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnKyc6XG4gICAgICAgIGlmIChsYXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJlcGVhdEVycihpKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgdHlwZTogdHlwZXMuUkVQRVRJVElPTlxuICAgICAgICAgICwgbWluOiAxXG4gICAgICAgICAgLCBtYXg6IEluZmluaXR5XG4gICAgICAgICAgLCB2YWx1ZTogbGFzdC5wb3AoKVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJyonOlxuICAgICAgICBpZiAobGFzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXBlYXRFcnIoaSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAsIG1pbjogMFxuICAgICAgICAgICwgbWF4OiBJbmZpbml0eVxuICAgICAgICAgICwgdmFsdWU6IGxhc3QucG9wKClcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIERlZmF1bHQgaXMgYSBjaGFyYWN0ZXIgdGhhdCBpcyBub3QgYFxcW10oKXt9PysqXiRgLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLkNIQVJcbiAgICAgICAgICAsIHZhbHVlOiBjLmNoYXJDb2RlQXQoMClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gIH1cblxuICAvLyBDaGVjayBpZiBhbnkgZ3JvdXBzIGhhdmUgbm90IGJlZW4gY2xvc2VkLlxuICBpZiAoZ3JvdXBTdGFjay5sZW5ndGggIT09IDApIHtcbiAgICB1dGlsLmVycm9yKHJlZ2V4cFN0ciwgJ1VudGVybWluYXRlZCBncm91cCcpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXJ0O1xufTtcblxubW9kdWxlLmV4cG9ydHMudHlwZXMgPSB0eXBlcztcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxuZXhwb3J0cy53b3JkQm91bmRhcnkgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuUE9TSVRJT04sIHZhbHVlOiAnYicgfTtcbn07XG5cbmV4cG9ydHMubm9uV29yZEJvdW5kYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlBPU0lUSU9OLCB2YWx1ZTogJ0InIH07XG59O1xuXG5leHBvcnRzLmJlZ2luID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlBPU0lUSU9OLCB2YWx1ZTogJ14nIH07XG59O1xuXG5leHBvcnRzLmVuZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5QT1NJVElPTiwgdmFsdWU6ICckJyB9O1xufTtcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxudmFyIElOVFMgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gW3sgdHlwZTogdHlwZXMuUkFOR0UgLCBmcm9tOiA0OCwgdG86IDU3IH1dO1xufTtcblxudmFyIFdPUkRTID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDk1IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuUkFOR0UsIGZyb206IDk3LCB0bzogMTIyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuUkFOR0UsIGZyb206IDY1LCB0bzogOTAgfVxuICBdLmNvbmNhdChJTlRTKCkpO1xufTtcblxudmFyIFdISVRFU1BBQ0UgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gW1xuICAgICAgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogOSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAzMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxNjAgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogNTc2MCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA2MTU4IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5MyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk0IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTUgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5NiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk3IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTggfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5OSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjAwIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMDEgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIwMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjMyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzMgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIzOSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4Mjg3IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEyMjg4IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDY1Mjc5IH1cbiAgXTtcbn07XG5cbnZhciBOT1RBTllDSEFSID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEwIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEzIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIzMyB9XG4gIF07XG59O1xuXG4vLyBwcmVkZWZpbmVkIGNsYXNzIG9iamVjdHNcbmV4cG9ydHMud29yZHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdPUkRTKCksIG5vdDogZmFsc2UgfTtcbn07XG5cbmV4cG9ydHMubm90V29yZHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdPUkRTKCksIG5vdDogdHJ1ZSB9O1xufTtcblxuZXhwb3J0cy5pbnRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlNFVCwgc2V0OiBJTlRTKCksIG5vdDogZmFsc2UgfTtcbn07XG5cbmV4cG9ydHMubm90SW50cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5TRVQsIHNldDogSU5UUygpLCBub3Q6IHRydWUgfTtcbn07XG5cbmV4cG9ydHMud2hpdGVzcGFjZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5TRVQsIHNldDogV0hJVEVTUEFDRSgpLCBub3Q6IGZhbHNlIH07XG59O1xuXG5leHBvcnRzLm5vdFdoaXRlc3BhY2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdISVRFU1BBQ0UoKSwgbm90OiB0cnVlIH07XG59O1xuXG5leHBvcnRzLmFueUNoYXIgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IE5PVEFOWUNIQVIoKSwgbm90OiB0cnVlIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUk9PVCAgICAgICA6IDBcbiAgLCBHUk9VUCAgICAgIDogMVxuICAsIFBPU0lUSU9OICAgOiAyXG4gICwgU0VUICAgICAgICA6IDNcbiAgLCBSQU5HRSAgICAgIDogNFxuICAsIFJFUEVUSVRJT04gOiA1XG4gICwgUkVGRVJFTkNFICA6IDZcbiAgLCBDSEFSICAgICAgIDogN1xufTtcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcbnZhciBzZXRzICA9IHJlcXVpcmUoJy4vc2V0cycpO1xuXG5cbi8vIEFsbCBvZiB0aGVzZSBhcmUgcHJpdmF0ZSBhbmQgb25seSB1c2VkIGJ5IHJhbmRleHAuXG4vLyBJdCdzIGFzc3VtZWQgdGhhdCB0aGV5IHdpbGwgYWx3YXlzIGJlIGNhbGxlZCB3aXRoIHRoZSBjb3JyZWN0IGlucHV0LlxuXG52YXIgQ1RSTCA9ICdAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eID8nO1xudmFyIFNMU0ggPSB7ICcwJzogMCwgJ3QnOiA5LCAnbic6IDEwLCAndic6IDExLCAnZic6IDEyLCAncic6IDEzIH07XG5cbi8qKlxuICogRmluZHMgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9ucyBpbiBzdHIgYW5kIGNvbnZlcnQgYWxsIHRvXG4gKiB0aGVpciByZXNwZWN0aXZlIGNoYXJhY3RlcnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmV4cG9ydHMuc3RyVG9DaGFycyA9IGZ1bmN0aW9uKHN0cikge1xuICB2YXIgY2hhcnNfcmVnZXggPSAvKFxcW1xcXFxiXFxdKXxcXFxcKD86dShbQS1GMC05XXs0fSl8eChbQS1GMC05XXsyfSl8KDA/WzAtN117Mn0pfGMoW0BBLVpcXFtcXFxcXFxdXFxeP10pfChbMHRudmZyXSkpL2c7XG4gIHN0ciA9IHN0ci5yZXBsYWNlKGNoYXJzX3JlZ2V4LCBmdW5jdGlvbihzLCBiLCBhMTYsIGIxNiwgYzgsIGRjdHJsLCBlc2xzaCkge1xuICAgIHZhciBjb2RlID0gYiAgICAgPyA4IDpcbiAgICAgICAgICAgICAgIGExNiAgID8gcGFyc2VJbnQoYTE2LCAxNikgOlxuICAgICAgICAgICAgICAgYjE2ICAgPyBwYXJzZUludChiMTYsIDE2KSA6XG4gICAgICAgICAgICAgICBjOCAgICA/IHBhcnNlSW50KGM4LCAgIDgpIDpcbiAgICAgICAgICAgICAgIGRjdHJsID8gQ1RSTC5pbmRleE9mKGRjdHJsKSA6XG4gICAgICAgICAgICAgICBlc2xzaCA/IFNMU0hbZXNsc2hdIDogdW5kZWZpbmVkO1xuICAgIFxuICAgIHZhciBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcblxuICAgIC8vIEVzY2FwZSBzcGVjaWFsIHJlZ2V4IGNoYXJhY3RlcnMuXG4gICAgaWYgKC9bXFxbXFxde31cXF4kLnw/KisoKV0vLnRlc3QoYykpIHtcbiAgICAgIGMgPSAnXFxcXCcgKyBjO1xuICAgIH1cblxuICAgIHJldHVybiBjO1xuICB9KTtcblxuICByZXR1cm4gc3RyO1xufTtcblxuXG4vKipcbiAqIHR1cm5zIGNsYXNzIGludG8gdG9rZW5zXG4gKiByZWFkcyBzdHIgdW50aWwgaXQgZW5jb3VudGVycyBhIF0gbm90IHByZWNlZWRlZCBieSBhIFxcXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHBhcmFtIHtTdHJpbmd9IHJlZ2V4cFN0clxuICogQHJldHVybiB7QXJyYXkuPEFycmF5LjxPYmplY3Q+LCBOdW1iZXI+fVxuICovXG5leHBvcnRzLnRva2VuaXplQ2xhc3MgPSBmdW5jdGlvbihzdHIsIHJlZ2V4cFN0cikge1xuICB2YXIgdG9rZW5zID0gW11cbiAgICAsIHJlZ2V4cCA9IC9cXFxcKD86KHcpfChkKXwocyl8KFcpfChEKXwoUykpfCgoPzooPzpcXFxcKSguKXwoW15cXF1cXFxcXSkpLSg/OlxcXFwpPyhbXlxcXV0pKXwoXFxdKXwoPzpcXFxcKT8oLikvZ1xuICAgICwgcnMsIGNcbiAgICA7XG5cblxuICB3aGlsZSAoKHJzID0gcmVnZXhwLmV4ZWMoc3RyKSkgIT0gbnVsbCkge1xuICAgIGlmIChyc1sxXSkge1xuICAgICAgdG9rZW5zLnB1c2goc2V0cy53b3JkcygpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbMl0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMuaW50cygpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbM10pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMud2hpdGVzcGFjZSgpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbNF0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMubm90V29yZHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzVdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLm5vdEludHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzZdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLm5vdFdoaXRlc3BhY2UoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzddKSB7XG4gICAgICB0b2tlbnMucHVzaCh7XG4gICAgICAgICAgdHlwZTogdHlwZXMuUkFOR0VcbiAgICAgICAgLCBmcm9tOiAocnNbOF0gfHwgcnNbOV0pLmNoYXJDb2RlQXQoMClcbiAgICAgICAgLCAgIHRvOiByc1sxMF0uY2hhckNvZGVBdCgwKVxuICAgICAgfSk7XG5cbiAgICB9IGVsc2UgaWYgKGMgPSByc1sxMl0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiB0eXBlcy5DSEFSXG4gICAgICAgICwgdmFsdWU6IGMuY2hhckNvZGVBdCgwKVxuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt0b2tlbnMsIHJlZ2V4cC5sYXN0SW5kZXhdO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydHMuZXJyb3IocmVnZXhwU3RyLCAnVW50ZXJtaW5hdGVkIGNoYXJhY3RlciBjbGFzcycpO1xufTtcblxuXG4vKipcbiAqIFNob3J0Y3V0IHRvIHRocm93IGVycm9ycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcmVnZXhwXG4gKiBAcGFyYW0ge1N0cmluZ30gbXNnXG4gKi9cbmV4cG9ydHMuZXJyb3IgPSBmdW5jdGlvbihyZWdleHAsIG1zZykge1xuICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ0ludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiAvJyArIHJlZ2V4cCArICcvOiAnICsgbXNnKTtcbn07XG4iLCJ2YXIgYmFzZUluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlSW5kZXhPZicpLFxuICAgIGJpbmFyeUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmluYXJ5SW5kZXgnKTtcblxuLyogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heDtcblxuLyoqXG4gKiBHZXRzIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBgdmFsdWVgIGlzIGZvdW5kIGluIGBhcnJheWBcbiAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQgaXMgdXNlZCBhcyB0aGUgb2Zmc2V0XG4gKiBmcm9tIHRoZSBlbmQgb2YgYGFycmF5YC4gSWYgYGFycmF5YCBpcyBzb3J0ZWQgcHJvdmlkaW5nIGB0cnVlYCBmb3IgYGZyb21JbmRleGBcbiAqIHBlcmZvcm1zIGEgZmFzdGVyIGJpbmFyeSBzZWFyY2guXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge2Jvb2xlYW58bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbSBvciBgdHJ1ZWBcbiAqICB0byBwZXJmb3JtIGEgYmluYXJ5IHNlYXJjaCBvbiBhIHNvcnRlZCBhcnJheS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaW5kZXhPZihbMSwgMiwgMSwgMl0sIDIpO1xuICogLy8gPT4gMVxuICpcbiAqIC8vIHVzaW5nIGBmcm9tSW5kZXhgXG4gKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyLCAyKTtcbiAqIC8vID0+IDNcbiAqXG4gKiAvLyBwZXJmb3JtaW5nIGEgYmluYXJ5IHNlYXJjaFxuICogXy5pbmRleE9mKFsxLCAxLCAyLCAyXSwgMiwgdHJ1ZSk7XG4gKiAvLyA9PiAyXG4gKi9cbmZ1bmN0aW9uIGluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgaWYgKHR5cGVvZiBmcm9tSW5kZXggPT0gJ251bWJlcicpIHtcbiAgICBmcm9tSW5kZXggPSBmcm9tSW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCkgOiBmcm9tSW5kZXg7XG4gIH0gZWxzZSBpZiAoZnJvbUluZGV4KSB7XG4gICAgdmFyIGluZGV4ID0gYmluYXJ5SW5kZXgoYXJyYXksIHZhbHVlKSxcbiAgICAgICAgb3RoZXIgPSBhcnJheVtpbmRleF07XG5cbiAgICBpZiAodmFsdWUgPT09IHZhbHVlID8gKHZhbHVlID09PSBvdGhlcikgOiAob3RoZXIgIT09IG90aGVyKSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgcmV0dXJuIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4IHx8IDApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluZGV4T2Y7XG4iLCIvKipcbiAqIEdldHMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5sYXN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAzXG4gKi9cbmZ1bmN0aW9uIGxhc3QoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxhc3Q7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZm9yRWFjaCcpO1xuIiwidmFyIGFycmF5RWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2FycmF5RWFjaCcpLFxuICAgIGJhc2VFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUVhY2gnKSxcbiAgICBjcmVhdGVGb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvY3JlYXRlRm9yRWFjaCcpO1xuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gIGludm9raW5nIGBpdGVyYXRlZWAgZm9yIGVhY2ggZWxlbWVudC5cbiAqIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseVxuICogYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiAqKk5vdGU6KiogQXMgd2l0aCBvdGhlciBcIkNvbGxlY3Rpb25zXCIgbWV0aG9kcywgb2JqZWN0cyB3aXRoIGEgXCJsZW5ndGhcIiBwcm9wZXJ0eVxuICogYXJlIGl0ZXJhdGVkIGxpa2UgYXJyYXlzLiBUbyBhdm9pZCB0aGlzIGJlaGF2aW9yIGBfLmZvckluYCBvciBgXy5mb3JPd25gXG4gKiBtYXkgYmUgdXNlZCBmb3Igb2JqZWN0IGl0ZXJhdGlvbi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGFsaWFzIGVhY2hcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R8c3RyaW5nfSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXyhbMSwgMl0pLmZvckVhY2goZnVuY3Rpb24obikge1xuICogICBjb25zb2xlLmxvZyhuKTtcbiAqIH0pLnZhbHVlKCk7XG4gKiAvLyA9PiBsb2dzIGVhY2ggdmFsdWUgZnJvbSBsZWZ0IHRvIHJpZ2h0IGFuZCByZXR1cm5zIHRoZSBhcnJheVxuICpcbiAqIF8uZm9yRWFjaCh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKG4sIGtleSkge1xuICogICBjb25zb2xlLmxvZyhuLCBrZXkpO1xuICogfSk7XG4gKiAvLyA9PiBsb2dzIGVhY2ggdmFsdWUta2V5IHBhaXIgYW5kIHJldHVybnMgdGhlIG9iamVjdCAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG52YXIgZm9yRWFjaCA9IGNyZWF0ZUZvckVhY2goYXJyYXlFYWNoLCBiYXNlRWFjaCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZm9yRWFjaDtcbiIsInZhciBhcnJheU1hcCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2FycmF5TWFwJyksXG4gICAgYmFzZUNhbGxiYWNrID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUNhbGxiYWNrJyksXG4gICAgYmFzZU1hcCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VNYXAnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocm91Z2hcbiAqIGBpdGVyYXRlZWAuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlXG4gKiBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAqXG4gKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gKlxuICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKlxuICogTWFueSBsb2Rhc2ggbWV0aG9kcyBhcmUgZ3VhcmRlZCB0byB3b3JrIGFzIGludGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxuICogYF8uZXZlcnlgLCBgXy5maWx0ZXJgLCBgXy5tYXBgLCBgXy5tYXBWYWx1ZXNgLCBgXy5yZWplY3RgLCBhbmQgYF8uc29tZWAuXG4gKlxuICogVGhlIGd1YXJkZWQgbWV0aG9kcyBhcmU6XG4gKiBgYXJ5YCwgYGNhbGxiYWNrYCwgYGNodW5rYCwgYGNsb25lYCwgYGNyZWF0ZWAsIGBjdXJyeWAsIGBjdXJyeVJpZ2h0YCxcbiAqIGBkcm9wYCwgYGRyb3BSaWdodGAsIGBldmVyeWAsIGBmaWxsYCwgYGZsYXR0ZW5gLCBgaW52ZXJ0YCwgYG1heGAsIGBtaW5gLFxuICogYHBhcnNlSW50YCwgYHNsaWNlYCwgYHNvcnRCeWAsIGB0YWtlYCwgYHRha2VSaWdodGAsIGB0ZW1wbGF0ZWAsIGB0cmltYCxcbiAqIGB0cmltTGVmdGAsIGB0cmltUmlnaHRgLCBgdHJ1bmNgLCBgcmFuZG9tYCwgYHJhbmdlYCwgYHNhbXBsZWAsIGBzb21lYCxcbiAqIGBzdW1gLCBgdW5pcWAsIGFuZCBgd29yZHNgXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBhbGlhcyBjb2xsZWN0XG4gKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gKiAgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiB0aW1lc1RocmVlKG4pIHtcbiAqICAgcmV0dXJuIG4gKiAzO1xuICogfVxuICpcbiAqIF8ubWFwKFsxLCAyXSwgdGltZXNUaHJlZSk7XG4gKiAvLyA9PiBbMywgNl1cbiAqXG4gKiBfLm1hcCh7ICdhJzogMSwgJ2InOiAyIH0sIHRpbWVzVGhyZWUpO1xuICogLy8gPT4gWzMsIDZdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogdmFyIHVzZXJzID0gW1xuICogICB7ICd1c2VyJzogJ2Jhcm5leScgfSxcbiAqICAgeyAndXNlcic6ICdmcmVkJyB9XG4gKiBdO1xuICpcbiAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gKiBfLm1hcCh1c2VycywgJ3VzZXInKTtcbiAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnXVxuICovXG5mdW5jdGlvbiBtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlNYXAgOiBiYXNlTWFwO1xuICBpdGVyYXRlZSA9IGJhc2VDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgMyk7XG4gIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXA7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBsb2Rhc2ggMy44LjAgKEN1c3RvbSBCdWlsZCkgPGh0dHBzOi8vbG9kYXNoLmNvbS8+XG4gKiBCdWlsZDogYGxvZGFzaCBjb21wYXQgLWQgLW8gLi9pbmRleC5qc2BcbiAqIENvcHlyaWdodCAyMDEyLTIwMTUgVGhlIERvam8gRm91bmRhdGlvbiA8aHR0cDovL2Rvam9mb3VuZGF0aW9uLm9yZy8+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IDIwMDktMjAxNSBKZXJlbXkgQXNoa2VuYXMsIERvY3VtZW50Q2xvdWQgYW5kIEludmVzdGlnYXRpdmUgUmVwb3J0ZXJzICYgRWRpdG9yc1xuICogQXZhaWxhYmxlIHVuZGVyIE1JVCBsaWNlbnNlIDxodHRwczovL2xvZGFzaC5jb20vbGljZW5zZT5cbiAqL1xuOyhmdW5jdGlvbigpIHtcblxuICAvKiogVXNlZCBhcyBhIHNhZmUgcmVmZXJlbmNlIGZvciBgdW5kZWZpbmVkYCBpbiBwcmUtRVM1IGVudmlyb25tZW50cy4gKi9cbiAgdmFyIHVuZGVmaW5lZDtcblxuICAvKiogVXNlZCBhcyB0aGUgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIuICovXG4gIHZhciBWRVJTSU9OID0gJzMuOC4wJztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB3cmFwcGVyIG1ldGFkYXRhLiAqL1xuICB2YXIgQklORF9GTEFHID0gMSxcbiAgICAgIEJJTkRfS0VZX0ZMQUcgPSAyLFxuICAgICAgQ1VSUllfQk9VTkRfRkxBRyA9IDQsXG4gICAgICBDVVJSWV9GTEFHID0gOCxcbiAgICAgIENVUlJZX1JJR0hUX0ZMQUcgPSAxNixcbiAgICAgIFBBUlRJQUxfRkxBRyA9IDMyLFxuICAgICAgUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsXG4gICAgICBBUllfRkxBRyA9IDEyOCxcbiAgICAgIFJFQVJHX0ZMQUcgPSAyNTY7XG5cbiAgLyoqIFVzZWQgYXMgZGVmYXVsdCBvcHRpb25zIGZvciBgXy50cnVuY2AuICovXG4gIHZhciBERUZBVUxUX1RSVU5DX0xFTkdUSCA9IDMwLFxuICAgICAgREVGQVVMVF9UUlVOQ19PTUlTU0lPTiA9ICcuLi4nO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCB3aGVuIGEgZnVuY3Rpb24gYmVjb21lcyBob3QuICovXG4gIHZhciBIT1RfQ09VTlQgPSAxNTAsXG4gICAgICBIT1RfU1BBTiA9IDE2O1xuXG4gIC8qKiBVc2VkIHRvIGluZGljYXRlIHRoZSB0eXBlIG9mIGxhenkgaXRlcmF0ZWVzLiAqL1xuICB2YXIgTEFaWV9EUk9QX1dISUxFX0ZMQUcgPSAwLFxuICAgICAgTEFaWV9GSUxURVJfRkxBRyA9IDEsXG4gICAgICBMQVpZX01BUF9GTEFHID0gMjtcblxuICAvKiogVXNlZCBhcyB0aGUgYFR5cGVFcnJvcmAgbWVzc2FnZSBmb3IgXCJGdW5jdGlvbnNcIiBtZXRob2RzLiAqL1xuICB2YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4gIC8qKiBVc2VkIGFzIHRoZSBpbnRlcm5hbCBhcmd1bWVudCBwbGFjZWhvbGRlci4gKi9cbiAgdmFyIFBMQUNFSE9MREVSID0gJ19fbG9kYXNoX3BsYWNlaG9sZGVyX18nO1xuXG4gIC8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbiAgdmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nO1xuXG4gIHZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggZW1wdHkgc3RyaW5nIGxpdGVyYWxzIGluIGNvbXBpbGVkIHRlbXBsYXRlIHNvdXJjZS4gKi9cbiAgdmFyIHJlRW1wdHlTdHJpbmdMZWFkaW5nID0gL1xcYl9fcCBcXCs9ICcnOy9nLFxuICAgICAgcmVFbXB0eVN0cmluZ01pZGRsZSA9IC9cXGIoX19wIFxcKz0pICcnIFxcKy9nLFxuICAgICAgcmVFbXB0eVN0cmluZ1RyYWlsaW5nID0gLyhfX2VcXCguKj9cXCl8XFxiX190XFwpKSBcXCtcXG4nJzsvZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBIVE1MIGVudGl0aWVzIGFuZCBIVE1MIGNoYXJhY3RlcnMuICovXG4gIHZhciByZUVzY2FwZWRIdG1sID0gLyYoPzphbXB8bHR8Z3R8cXVvdHwjMzl8Izk2KTsvZyxcbiAgICAgIHJlVW5lc2NhcGVkSHRtbCA9IC9bJjw+XCInYF0vZyxcbiAgICAgIHJlSGFzRXNjYXBlZEh0bWwgPSBSZWdFeHAocmVFc2NhcGVkSHRtbC5zb3VyY2UpLFxuICAgICAgcmVIYXNVbmVzY2FwZWRIdG1sID0gUmVnRXhwKHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UpO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG4gIHZhciByZUVzY2FwZSA9IC88JS0oW1xcc1xcU10rPyklPi9nLFxuICAgICAgcmVFdmFsdWF0ZSA9IC88JShbXFxzXFxTXSs/KSU+L2csXG4gICAgICByZUludGVycG9sYXRlID0gLzwlPShbXFxzXFxTXSs/KSU+L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggcHJvcGVydHkgbmFtZXMgd2l0aGluIHByb3BlcnR5IHBhdGhzLiAqL1xuICB2YXIgcmVJc0RlZXBQcm9wID0gL1xcLnxcXFsoPzpbXltcXF1dKnwoW1wiJ10pKD86KD8hXFwxKVteXFxuXFxcXF18XFxcXC4pKj9cXDEpXFxdLyxcbiAgICAgIHJlSXNQbGFpblByb3AgPSAvXlxcdyokLyxcbiAgICAgIHJlUHJvcE5hbWUgPSAvW14uW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxuXFxcXF18XFxcXC4pKj8pXFwyKVxcXS9nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIFtzcGVjaWFsIGNoYXJhY3RlcnNdKGh0dHA6Ly93d3cucmVndWxhci1leHByZXNzaW9ucy5pbmZvL2NoYXJhY3RlcnMuaHRtbCNzcGVjaWFsKS5cbiAgICogSW4gYWRkaXRpb24gdG8gc3BlY2lhbCBjaGFyYWN0ZXJzIHRoZSBmb3J3YXJkIHNsYXNoIGlzIGVzY2FwZWQgdG8gYWxsb3cgZm9yXG4gICAqIGVhc2llciBgZXZhbGAgdXNlIGFuZCBgRnVuY3Rpb25gIGNvbXBpbGF0aW9uLlxuICAgKi9cbiAgdmFyIHJlUmVnRXhwQ2hhcnMgPSAvWy4qKz9eJHt9KCl8W1xcXVxcL1xcXFxdL2csXG4gICAgICByZUhhc1JlZ0V4cENoYXJzID0gUmVnRXhwKHJlUmVnRXhwQ2hhcnMuc291cmNlKTtcblxuICAvKiogVXNlZCB0byBtYXRjaCBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpLiAqL1xuICB2YXIgcmVDb21ib01hcmsgPSAvW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyM10vZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbiAgdmFyIHJlRXNjYXBlQ2hhciA9IC9cXFxcKFxcXFwpPy9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIFtFUyB0ZW1wbGF0ZSBkZWxpbWl0ZXJzXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtdGVtcGxhdGUtbGl0ZXJhbC1sZXhpY2FsLWNvbXBvbmVudHMpLiAqL1xuICB2YXIgcmVFc1RlbXBsYXRlID0gL1xcJFxceyhbXlxcXFx9XSooPzpcXFxcLlteXFxcXH1dKikqKVxcfS9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xuICB2YXIgcmVGbGFncyA9IC9cXHcqJC87XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG4gIHZhciByZUhhc0hleFByZWZpeCA9IC9eMFt4WF0vO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBob3N0IGNvbnN0cnVjdG9ycyAoU2FmYXJpID4gNSkuICovXG4gIHZhciByZUlzSG9zdEN0b3IgPSAvXlxcW29iamVjdCAuKz9Db25zdHJ1Y3RvclxcXSQvO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGxhdGluLTEgc3VwcGxlbWVudGFyeSBsZXR0ZXJzIChleGNsdWRpbmcgbWF0aGVtYXRpY2FsIG9wZXJhdG9ycykuICovXG4gIHZhciByZUxhdGluMSA9IC9bXFx4YzAtXFx4ZDZcXHhkOC1cXHhkZVxceGRmLVxceGY2XFx4ZjgtXFx4ZmZdL2c7XG5cbiAgLyoqIFVzZWQgdG8gZW5zdXJlIGNhcHR1cmluZyBvcmRlciBvZiB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLiAqL1xuICB2YXIgcmVOb01hdGNoID0gLygkXikvO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIHVuZXNjYXBlZCBjaGFyYWN0ZXJzIGluIGNvbXBpbGVkIHN0cmluZyBsaXRlcmFscy4gKi9cbiAgdmFyIHJlVW5lc2NhcGVkU3RyaW5nID0gL1snXFxuXFxyXFx1MjAyOFxcdTIwMjlcXFxcXS9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIHdvcmRzIHRvIGNyZWF0ZSBjb21wb3VuZCB3b3Jkcy4gKi9cbiAgdmFyIHJlV29yZHMgPSAoZnVuY3Rpb24oKSB7XG4gICAgdmFyIHVwcGVyID0gJ1tBLVpcXFxceGMwLVxcXFx4ZDZcXFxceGQ4LVxcXFx4ZGVdJyxcbiAgICAgICAgbG93ZXIgPSAnW2EtelxcXFx4ZGYtXFxcXHhmNlxcXFx4ZjgtXFxcXHhmZl0rJztcblxuICAgIHJldHVybiBSZWdFeHAodXBwZXIgKyAnKyg/PScgKyB1cHBlciArIGxvd2VyICsgJyl8JyArIHVwcGVyICsgJz8nICsgbG93ZXIgKyAnfCcgKyB1cHBlciArICcrfFswLTldKycsICdnJyk7XG4gIH0oKSk7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGFuZCB0ZXN0IGZvciB3aGl0ZXNwYWNlLiAqL1xuICB2YXIgd2hpdGVzcGFjZSA9IChcbiAgICAvLyBCYXNpYyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMuXG4gICAgJyBcXHRcXHgwYlxcZlxceGEwXFx1ZmVmZicgK1xuXG4gICAgLy8gTGluZSB0ZXJtaW5hdG9ycy5cbiAgICAnXFxuXFxyXFx1MjAyOFxcdTIwMjknICtcblxuICAgIC8vIFVuaWNvZGUgY2F0ZWdvcnkgXCJac1wiIHNwYWNlIHNlcGFyYXRvcnMuXG4gICAgJ1xcdTE2ODBcXHUxODBlXFx1MjAwMFxcdTIwMDFcXHUyMDAyXFx1MjAwM1xcdTIwMDRcXHUyMDA1XFx1MjAwNlxcdTIwMDdcXHUyMDA4XFx1MjAwOVxcdTIwMGFcXHUyMDJmXFx1MjA1ZlxcdTMwMDAnXG4gICk7XG5cbiAgLyoqIFVzZWQgdG8gYXNzaWduIGRlZmF1bHQgYGNvbnRleHRgIG9iamVjdCBwcm9wZXJ0aWVzLiAqL1xuICB2YXIgY29udGV4dFByb3BzID0gW1xuICAgICdBcnJheScsICdBcnJheUJ1ZmZlcicsICdEYXRlJywgJ0Vycm9yJywgJ0Zsb2F0MzJBcnJheScsICdGbG9hdDY0QXJyYXknLFxuICAgICdGdW5jdGlvbicsICdJbnQ4QXJyYXknLCAnSW50MTZBcnJheScsICdJbnQzMkFycmF5JywgJ01hdGgnLCAnTnVtYmVyJyxcbiAgICAnT2JqZWN0JywgJ1JlZ0V4cCcsICdTZXQnLCAnU3RyaW5nJywgJ18nLCAnY2xlYXJUaW1lb3V0JywgJ2RvY3VtZW50JyxcbiAgICAnaXNGaW5pdGUnLCAncGFyc2VJbnQnLCAnc2V0VGltZW91dCcsICdUeXBlRXJyb3InLCAnVWludDhBcnJheScsXG4gICAgJ1VpbnQ4Q2xhbXBlZEFycmF5JywgJ1VpbnQxNkFycmF5JywgJ1VpbnQzMkFycmF5JywgJ1dlYWtNYXAnLFxuICAgICd3aW5kb3cnXG4gIF07XG5cbiAgLyoqIFVzZWQgdG8gZml4IHRoZSBKU2NyaXB0IGBbW0RvbnRFbnVtXV1gIGJ1Zy4gKi9cbiAgdmFyIHNoYWRvd1Byb3BzID0gW1xuICAgICdjb25zdHJ1Y3RvcicsICdoYXNPd25Qcm9wZXJ0eScsICdpc1Byb3RvdHlwZU9mJywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgICAndG9Mb2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndmFsdWVPZidcbiAgXTtcblxuICAvKiogVXNlZCB0byBtYWtlIHRlbXBsYXRlIHNvdXJjZVVSTHMgZWFzaWVyIHRvIGlkZW50aWZ5LiAqL1xuICB2YXIgdGVtcGxhdGVDb3VudGVyID0gLTE7XG5cbiAgLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xuICB2YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbiAgdHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbiAgdHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID0gdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPSB0eXBlZEFycmF5VGFnc1ttYXBUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID0gdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPSB0eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4gIC8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG4gIHZhciBjbG9uZWFibGVUYWdzID0ge307XG4gIGNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0MzJUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tmbG9hdDY0VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50OFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW2ludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MzJUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tudW1iZXJUYWddID0gY2xvbmVhYmxlVGFnc1tvYmplY3RUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tyZWdleHBUYWddID0gY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID1cbiAgY2xvbmVhYmxlVGFnc1t1aW50OFRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3VpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xuICBjbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxuICBjbG9uZWFibGVUYWdzW21hcFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbiAgLyoqIFVzZWQgYXMgYW4gaW50ZXJuYWwgYF8uZGVib3VuY2VgIG9wdGlvbnMgb2JqZWN0IGJ5IGBfLnRocm90dGxlYC4gKi9cbiAgdmFyIGRlYm91bmNlT3B0aW9ucyA9IHtcbiAgICAnbGVhZGluZyc6IGZhbHNlLFxuICAgICdtYXhXYWl0JzogMCxcbiAgICAndHJhaWxpbmcnOiBmYWxzZVxuICB9O1xuXG4gIC8qKiBVc2VkIHRvIG1hcCBsYXRpbi0xIHN1cHBsZW1lbnRhcnkgbGV0dGVycyB0byBiYXNpYyBsYXRpbiBsZXR0ZXJzLiAqL1xuICB2YXIgZGVidXJyZWRMZXR0ZXJzID0ge1xuICAgICdcXHhjMCc6ICdBJywgICdcXHhjMSc6ICdBJywgJ1xceGMyJzogJ0EnLCAnXFx4YzMnOiAnQScsICdcXHhjNCc6ICdBJywgJ1xceGM1JzogJ0EnLFxuICAgICdcXHhlMCc6ICdhJywgICdcXHhlMSc6ICdhJywgJ1xceGUyJzogJ2EnLCAnXFx4ZTMnOiAnYScsICdcXHhlNCc6ICdhJywgJ1xceGU1JzogJ2EnLFxuICAgICdcXHhjNyc6ICdDJywgICdcXHhlNyc6ICdjJyxcbiAgICAnXFx4ZDAnOiAnRCcsICAnXFx4ZjAnOiAnZCcsXG4gICAgJ1xceGM4JzogJ0UnLCAgJ1xceGM5JzogJ0UnLCAnXFx4Y2EnOiAnRScsICdcXHhjYic6ICdFJyxcbiAgICAnXFx4ZTgnOiAnZScsICAnXFx4ZTknOiAnZScsICdcXHhlYSc6ICdlJywgJ1xceGViJzogJ2UnLFxuICAgICdcXHhjQyc6ICdJJywgICdcXHhjZCc6ICdJJywgJ1xceGNlJzogJ0knLCAnXFx4Y2YnOiAnSScsXG4gICAgJ1xceGVDJzogJ2knLCAgJ1xceGVkJzogJ2knLCAnXFx4ZWUnOiAnaScsICdcXHhlZic6ICdpJyxcbiAgICAnXFx4ZDEnOiAnTicsICAnXFx4ZjEnOiAnbicsXG4gICAgJ1xceGQyJzogJ08nLCAgJ1xceGQzJzogJ08nLCAnXFx4ZDQnOiAnTycsICdcXHhkNSc6ICdPJywgJ1xceGQ2JzogJ08nLCAnXFx4ZDgnOiAnTycsXG4gICAgJ1xceGYyJzogJ28nLCAgJ1xceGYzJzogJ28nLCAnXFx4ZjQnOiAnbycsICdcXHhmNSc6ICdvJywgJ1xceGY2JzogJ28nLCAnXFx4ZjgnOiAnbycsXG4gICAgJ1xceGQ5JzogJ1UnLCAgJ1xceGRhJzogJ1UnLCAnXFx4ZGInOiAnVScsICdcXHhkYyc6ICdVJyxcbiAgICAnXFx4ZjknOiAndScsICAnXFx4ZmEnOiAndScsICdcXHhmYic6ICd1JywgJ1xceGZjJzogJ3UnLFxuICAgICdcXHhkZCc6ICdZJywgICdcXHhmZCc6ICd5JywgJ1xceGZmJzogJ3knLFxuICAgICdcXHhjNic6ICdBZScsICdcXHhlNic6ICdhZScsXG4gICAgJ1xceGRlJzogJ1RoJywgJ1xceGZlJzogJ3RoJyxcbiAgICAnXFx4ZGYnOiAnc3MnXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gbWFwIGNoYXJhY3RlcnMgdG8gSFRNTCBlbnRpdGllcy4gKi9cbiAgdmFyIGh0bWxFc2NhcGVzID0ge1xuICAgICcmJzogJyZhbXA7JyxcbiAgICAnPCc6ICcmbHQ7JyxcbiAgICAnPic6ICcmZ3Q7JyxcbiAgICAnXCInOiAnJnF1b3Q7JyxcbiAgICBcIidcIjogJyYjMzk7JyxcbiAgICAnYCc6ICcmIzk2OydcbiAgfTtcblxuICAvKiogVXNlZCB0byBtYXAgSFRNTCBlbnRpdGllcyB0byBjaGFyYWN0ZXJzLiAqL1xuICB2YXIgaHRtbFVuZXNjYXBlcyA9IHtcbiAgICAnJmFtcDsnOiAnJicsXG4gICAgJyZsdDsnOiAnPCcsXG4gICAgJyZndDsnOiAnPicsXG4gICAgJyZxdW90Oyc6ICdcIicsXG4gICAgJyYjMzk7JzogXCInXCIsXG4gICAgJyYjOTY7JzogJ2AnXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIHZhbHVlcyBhcmUgb2YgdGhlIGxhbmd1YWdlIHR5cGUgYE9iamVjdGAuICovXG4gIHZhciBvYmplY3RUeXBlcyA9IHtcbiAgICAnZnVuY3Rpb24nOiB0cnVlLFxuICAgICdvYmplY3QnOiB0cnVlXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciBzdHJpbmdFc2NhcGVzID0ge1xuICAgICdcXFxcJzogJ1xcXFwnLFxuICAgIFwiJ1wiOiBcIidcIixcbiAgICAnXFxuJzogJ24nLFxuICAgICdcXHInOiAncicsXG4gICAgJ1xcdTIwMjgnOiAndTIwMjgnLFxuICAgICdcXHUyMDI5JzogJ3UyMDI5J1xuICB9O1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG4gIHZhciBmcmVlRXhwb3J0cyA9IG9iamVjdFR5cGVzW3R5cGVvZiBleHBvcnRzXSAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xuICB2YXIgZnJlZU1vZHVsZSA9IG9iamVjdFR5cGVzW3R5cGVvZiBtb2R1bGVdICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xuICB2YXIgZnJlZUdsb2JhbCA9IGZyZWVFeHBvcnRzICYmIGZyZWVNb2R1bGUgJiYgdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCAmJiBnbG9iYWw7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbiAgdmFyIGZyZWVTZWxmID0gb2JqZWN0VHlwZXNbdHlwZW9mIHNlbGZdICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgJiYgc2VsZjtcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHdpbmRvd2AuICovXG4gIHZhciBmcmVlV2luZG93ID0gb2JqZWN0VHlwZXNbdHlwZW9mIHdpbmRvd10gJiYgd2luZG93ICYmIHdpbmRvdy5PYmplY3QgJiYgd2luZG93O1xuXG4gIC8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG4gIHZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzICYmIGZyZWVFeHBvcnRzO1xuXG4gIC8qKlxuICAgKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LlxuICAgKlxuICAgKiBUaGUgYHRoaXNgIHZhbHVlIGlzIHVzZWQgaWYgaXQgaXMgdGhlIGdsb2JhbCBvYmplY3QgdG8gYXZvaWQgR3JlYXNlbW9ua2V5J3NcbiAgICogcmVzdHJpY3RlZCBgd2luZG93YCBvYmplY3QsIG90aGVyd2lzZSB0aGUgYHdpbmRvd2Agb2JqZWN0IGlzIHVzZWQuXG4gICAqL1xuICB2YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgKChmcmVlV2luZG93ICE9PSAodGhpcyAmJiB0aGlzLndpbmRvdykpICYmIGZyZWVXaW5kb3cpIHx8IGZyZWVTZWxmIHx8IHRoaXM7XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBjb21wYXJlQXNjZW5kaW5nYCB3aGljaCBjb21wYXJlcyB2YWx1ZXMgYW5kXG4gICAqIHNvcnRzIHRoZW0gaW4gYXNjZW5kaW5nIG9yZGVyIHdpdGhvdXQgZ3VhcmFudGVlaW5nIGEgc3RhYmxlIHNvcnQuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUgdG8gYG90aGVyYC5cbiAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgdmFsdWUgdG8gY29tcGFyZSB0byBgdmFsdWVgLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYHZhbHVlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VDb21wYXJlQXNjZW5kaW5nKHZhbHVlLCBvdGhlcikge1xuICAgIGlmICh2YWx1ZSAhPT0gb3RoZXIpIHtcbiAgICAgIHZhciB2YWxJc1JlZmxleGl2ZSA9IHZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgICBvdGhJc1JlZmxleGl2ZSA9IG90aGVyID09PSBvdGhlcjtcblxuICAgICAgaWYgKHZhbHVlID4gb3RoZXIgfHwgIXZhbElzUmVmbGV4aXZlIHx8ICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSA8IG90aGVyIHx8ICFvdGhJc1JlZmxleGl2ZSB8fCAob3RoZXIgPT09IHVuZGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSkpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gICAqIHN1cHBvcnQgZm9yIGNhbGxiYWNrIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2VhcmNoLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlRmluZEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21SaWdodCkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTE7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5kZXhPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBiaW5hcnkgc2VhcmNoZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICBpZiAodmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaW5kZXhPZk5hTihhcnJheSwgZnJvbUluZGV4KTtcbiAgICB9XG4gICAgdmFyIGluZGV4ID0gZnJvbUluZGV4IC0gMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGlmIChhcnJheVtpbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRnVuY3Rpb25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgZW52aXJvbm1lbnRzXG4gICAqIHdpdGggaW5jb3JyZWN0IGB0eXBlb2ZgIHJlc3VsdHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZUlzRnVuY3Rpb24odmFsdWUpIHtcbiAgICAvLyBBdm9pZCBhIENoYWtyYSBKSVQgYnVnIGluIGNvbXBhdGliaWxpdHkgbW9kZXMgb2YgSUUgMTEuXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNoa2VuYXMvdW5kZXJzY29yZS9pc3N1ZXMvMTYyMSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJyB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvbmUuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZFxuICAgKiBmb3IgYG51bGxgIG9yIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogKHZhbHVlICsgJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8ubWF4YCBhbmQgYF8ubWluYCBhcyB0aGUgZGVmYXVsdCBjYWxsYmFjayBmb3Igc3RyaW5nIHZhbHVlcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvZGUgdW5pdCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBjaGFyQXRDYWxsYmFjayhzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLmNoYXJDb2RlQXQoMCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbUxlZnRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlclxuICAgKiBvZiBgc3RyaW5nYCB0aGF0IGlzIG5vdCBmb3VuZCBpbiBgY2hhcnNgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXJzIFRoZSBjaGFyYWN0ZXJzIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbm90IGZvdW5kIGluIGBjaGFyc2AuXG4gICAqL1xuICBmdW5jdGlvbiBjaGFyc0xlZnRJbmRleChzdHJpbmcsIGNoYXJzKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiBjaGFycy5pbmRleE9mKHN0cmluZy5jaGFyQXQoaW5kZXgpKSA+IC0xKSB7fVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLnRyaW1gIGFuZCBgXy50cmltUmlnaHRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY2hhcmFjdGVyXG4gICAqIG9mIGBzdHJpbmdgIHRoYXQgaXMgbm90IGZvdW5kIGluIGBjaGFyc2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhcnMgVGhlIGNoYXJhY3RlcnMgdG8gZmluZC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY2hhcmFjdGVyIG5vdCBmb3VuZCBpbiBgY2hhcnNgLlxuICAgKi9cbiAgZnVuY3Rpb24gY2hhcnNSaWdodEluZGV4KHN0cmluZywgY2hhcnMpIHtcbiAgICB2YXIgaW5kZXggPSBzdHJpbmcubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGluZGV4LS0gJiYgY2hhcnMuaW5kZXhPZihzdHJpbmcuY2hhckF0KGluZGV4KSkgPiAtMSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy5zb3J0QnlgIHRvIGNvbXBhcmUgdHJhbnNmb3JtZWQgZWxlbWVudHMgb2YgYSBjb2xsZWN0aW9uIGFuZCBzdGFibGVcbiAgICogc29ydCB0aGVtIGluIGFzY2VuZGluZyBvcmRlci5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8gYG90aGVyYC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvYmplY3QgdG8gY29tcGFyZSB0byBgb2JqZWN0YC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGBvYmplY3RgLlxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGFyZUFzY2VuZGluZyhvYmplY3QsIG90aGVyKSB7XG4gICAgcmV0dXJuIGJhc2VDb21wYXJlQXNjZW5kaW5nKG9iamVjdC5jcml0ZXJpYSwgb3RoZXIuY3JpdGVyaWEpIHx8IChvYmplY3QuaW5kZXggLSBvdGhlci5pbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy5zb3J0QnlPcmRlcmAgdG8gY29tcGFyZSBtdWx0aXBsZSBwcm9wZXJ0aWVzIG9mIGVhY2ggZWxlbWVudFxuICAgKiBpbiBhIGNvbGxlY3Rpb24gYW5kIHN0YWJsZSBzb3J0IHRoZW0gaW4gdGhlIGZvbGxvd2luZyBvcmRlcjpcbiAgICpcbiAgICogSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIHNvcnQgaW4gYXNjZW5kaW5nIG9yZGVyIGZvciBhbGwgcHJvcGVydGllcy5cbiAgICogT3RoZXJ3aXNlLCBmb3IgZWFjaCBwcm9wZXJ0eSwgc29ydCBpbiBhc2NlbmRpbmcgb3JkZXIgaWYgaXRzIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW5cbiAgICogb3JkZXJzIGlzIHRydWUsIGFuZCBkZXNjZW5kaW5nIG9yZGVyIGlmIGZhbHNlLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZSB0byBgb3RoZXJgLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG9iamVjdCB0byBjb21wYXJlIHRvIGBvYmplY3RgLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW5bXX0gb3JkZXJzIFRoZSBvcmRlciB0byBzb3J0IGJ5IGZvciBlYWNoIHByb3BlcnR5LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYG9iamVjdGAuXG4gICAqL1xuICBmdW5jdGlvbiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIG9iakNyaXRlcmlhID0gb2JqZWN0LmNyaXRlcmlhLFxuICAgICAgICBvdGhDcml0ZXJpYSA9IG90aGVyLmNyaXRlcmlhLFxuICAgICAgICBsZW5ndGggPSBvYmpDcml0ZXJpYS5sZW5ndGgsXG4gICAgICAgIG9yZGVyc0xlbmd0aCA9IG9yZGVycy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VDb21wYXJlQXNjZW5kaW5nKG9iakNyaXRlcmlhW2luZGV4XSwgb3RoQ3JpdGVyaWFbaW5kZXhdKTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgaWYgKGluZGV4ID49IG9yZGVyc0xlbmd0aCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdCAqIChvcmRlcnNbaW5kZXhdID8gMSA6IC0xKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gRml4ZXMgYW4gYEFycmF5I3NvcnRgIGJ1ZyBpbiB0aGUgSlMgZW5naW5lIGVtYmVkZGVkIGluIEFkb2JlIGFwcGxpY2F0aW9uc1xuICAgIC8vIHRoYXQgY2F1c2VzIGl0LCB1bmRlciBjZXJ0YWluIGNpcmN1bXN0YW5jZXMsIHRvIHByb3ZpZGUgdGhlIHNhbWUgdmFsdWUgZm9yXG4gICAgLy8gYG9iamVjdGAgYW5kIGBvdGhlcmAuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvcHVsbC8xMjQ3XG4gICAgLy8gZm9yIG1vcmUgZGV0YWlscy5cbiAgICAvL1xuICAgIC8vIFRoaXMgYWxzbyBlbnN1cmVzIGEgc3RhYmxlIHNvcnQgaW4gVjggYW5kIG90aGVyIGVuZ2luZXMuXG4gICAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD05MCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIHJldHVybiBvYmplY3QuaW5kZXggLSBvdGhlci5pbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLmRlYnVycmAgdG8gY29udmVydCBsYXRpbi0xIHN1cHBsZW1lbnRhcnkgbGV0dGVycyB0byBiYXNpYyBsYXRpbiBsZXR0ZXJzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGV0dGVyIFRoZSBtYXRjaGVkIGxldHRlciB0byBkZWJ1cnIuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGRlYnVycmVkIGxldHRlci5cbiAgICovXG4gIGZ1bmN0aW9uIGRlYnVyckxldHRlcihsZXR0ZXIpIHtcbiAgICByZXR1cm4gZGVidXJyZWRMZXR0ZXJzW2xldHRlcl07XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy5lc2NhcGVgIHRvIGNvbnZlcnQgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgY2hhcmFjdGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gZXNjYXBlSHRtbENoYXIoY2hyKSB7XG4gICAgcmV0dXJuIGh0bWxFc2NhcGVzW2Nocl07XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50ZW1wbGF0ZWAgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZFxuICAgKiBzdHJpbmcgbGl0ZXJhbHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAqL1xuICBmdW5jdGlvbiBlc2NhcGVTdHJpbmdDaGFyKGNocikge1xuICAgIHJldHVybiAnXFxcXCcgKyBzdHJpbmdFc2NhcGVzW2Nocl07XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYE5hTmAgaXMgZm91bmQgaW4gYGFycmF5YC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCBgTmFOYCwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gaW5kZXhPZk5hTihhcnJheSwgZnJvbUluZGV4LCBmcm9tUmlnaHQpIHtcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICBpbmRleCA9IGZyb21JbmRleCArIChmcm9tUmlnaHQgPyAwIDogLTEpO1xuXG4gICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICAgIHZhciBvdGhlciA9IGFycmF5W2luZGV4XTtcbiAgICAgIGlmIChvdGhlciAhPT0gb3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBob3N0IG9iamVjdCBpbiBJRSA8IDkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICB2YXIgaXNIb3N0T2JqZWN0ID0gKGZ1bmN0aW9uKCkge1xuICAgIHRyeSB7XG4gICAgICBPYmplY3QoeyAndG9TdHJpbmcnOiAwIH0gKyAnJyk7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAvLyBJRSA8IDkgcHJlc2VudHMgbWFueSBob3N0IG9iamVjdHMgYXMgYE9iamVjdGAgb2JqZWN0cyB0aGF0IGNhbiBjb2VyY2VcbiAgICAgIC8vIHRvIHN0cmluZ3MgZGVzcGl0ZSBoYXZpbmcgaW1wcm9wZXJseSBkZWZpbmVkIGB0b1N0cmluZ2AgbWV0aG9kcy5cbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgKHZhbHVlICsgJycpID09ICdzdHJpbmcnO1xuICAgIH07XG4gIH0oKSk7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0JztcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGB0cmltbWVkTGVmdEluZGV4YCBhbmQgYHRyaW1tZWRSaWdodEluZGV4YCB0byBkZXRlcm1pbmUgaWYgYVxuICAgKiBjaGFyYWN0ZXIgY29kZSBpcyB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY2hhckNvZGUgVGhlIGNoYXJhY3RlciBjb2RlIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgY2hhckNvZGVgIGlzIHdoaXRlc3BhY2UsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGlzU3BhY2UoY2hhckNvZGUpIHtcbiAgICByZXR1cm4gKChjaGFyQ29kZSA8PSAxNjAgJiYgKGNoYXJDb2RlID49IDkgJiYgY2hhckNvZGUgPD0gMTMpIHx8IGNoYXJDb2RlID09IDMyIHx8IGNoYXJDb2RlID09IDE2MCkgfHwgY2hhckNvZGUgPT0gNTc2MCB8fCBjaGFyQ29kZSA9PSA2MTU4IHx8XG4gICAgICAoY2hhckNvZGUgPj0gODE5MiAmJiAoY2hhckNvZGUgPD0gODIwMiB8fCBjaGFyQ29kZSA9PSA4MjMyIHx8IGNoYXJDb2RlID09IDgyMzMgfHwgY2hhckNvZGUgPT0gODIzOSB8fCBjaGFyQ29kZSA9PSA4Mjg3IHx8IGNoYXJDb2RlID09IDEyMjg4IHx8IGNoYXJDb2RlID09IDY1Mjc5KSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBgcGxhY2Vob2xkZXJgIGVsZW1lbnRzIGluIGBhcnJheWAgd2l0aCBhbiBpbnRlcm5hbCBwbGFjZWhvbGRlclxuICAgKiBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiB0aGVpciBpbmRleGVzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0geyp9IHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlciB0byByZXBsYWNlLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgKi9cbiAgZnVuY3Rpb24gcmVwbGFjZUhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gcGxhY2Vob2xkZXIpIHtcbiAgICAgICAgYXJyYXlbaW5kZXhdID0gUExBQ0VIT0xERVI7XG4gICAgICAgIHJlc3VsdFsrK3Jlc0luZGV4XSA9IGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuaXFgIG9wdGltaXplZCBmb3Igc29ydGVkIGFycmF5cyB3aXRob3V0IHN1cHBvcnRcbiAgICogZm9yIGNhbGxiYWNrIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUtdmFsdWUtZnJlZSBhcnJheS5cbiAgICovXG4gIGZ1bmN0aW9uIHNvcnRlZFVuaXEoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIHNlZW4sXG4gICAgICAgIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSA6IHZhbHVlO1xuXG4gICAgICBpZiAoIWluZGV4IHx8IHNlZW4gIT09IGNvbXB1dGVkKSB7XG4gICAgICAgIHNlZW4gPSBjb21wdXRlZDtcbiAgICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbUxlZnRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlXG4gICAqIGNoYXJhY3RlciBvZiBgc3RyaW5nYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIuXG4gICAqL1xuICBmdW5jdGlvbiB0cmltbWVkTGVmdEluZGV4KHN0cmluZykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGggJiYgaXNTcGFjZShzdHJpbmcuY2hhckNvZGVBdChpbmRleCkpKSB7fVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLnRyaW1gIGFuZCBgXy50cmltUmlnaHRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2VcbiAgICogY2hhcmFjdGVyIG9mIGBzdHJpbmdgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gdHJpbW1lZFJpZ2h0SW5kZXgoc3RyaW5nKSB7XG4gICAgdmFyIGluZGV4ID0gc3RyaW5nLmxlbmd0aDtcblxuICAgIHdoaWxlIChpbmRleC0tICYmIGlzU3BhY2Uoc3RyaW5nLmNoYXJDb2RlQXQoaW5kZXgpKSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy51bmVzY2FwZWAgdG8gY29udmVydCBIVE1MIGVudGl0aWVzIHRvIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIHVuZXNjYXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1bmVzY2FwZWQgY2hhcmFjdGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gdW5lc2NhcGVIdG1sQ2hhcihjaHIpIHtcbiAgICByZXR1cm4gaHRtbFVuZXNjYXBlc1tjaHJdO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB1c2luZyB0aGUgZ2l2ZW4gYGNvbnRleHRgIG9iamVjdC5cbiAgICpcbiAgICogQHN0YXRpY1xuICAgKiBAbWVtYmVyT2YgX1xuICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgKiBAcGFyYW0ge09iamVjdH0gW2NvbnRleHQ9cm9vdF0gVGhlIGNvbnRleHQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYSBuZXcgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIF8ubWl4aW4oeyAnZm9vJzogXy5jb25zdGFudCgnZm9vJykgfSk7XG4gICAqXG4gICAqIHZhciBsb2Rhc2ggPSBfLnJ1bkluQ29udGV4dCgpO1xuICAgKiBsb2Rhc2gubWl4aW4oeyAnYmFyJzogbG9kYXNoLmNvbnN0YW50KCdiYXInKSB9KTtcbiAgICpcbiAgICogXy5pc0Z1bmN0aW9uKF8uZm9vKTtcbiAgICogLy8gPT4gdHJ1ZVxuICAgKiBfLmlzRnVuY3Rpb24oXy5iYXIpO1xuICAgKiAvLyA9PiBmYWxzZVxuICAgKlxuICAgKiBsb2Rhc2guaXNGdW5jdGlvbihsb2Rhc2guZm9vKTtcbiAgICogLy8gPT4gZmFsc2VcbiAgICogbG9kYXNoLmlzRnVuY3Rpb24obG9kYXNoLmJhcik7XG4gICAqIC8vID0+IHRydWVcbiAgICpcbiAgICogLy8gdXNpbmcgYGNvbnRleHRgIHRvIG1vY2sgYERhdGUjZ2V0VGltZWAgdXNlIGluIGBfLm5vd2BcbiAgICogdmFyIG1vY2sgPSBfLnJ1bkluQ29udGV4dCh7XG4gICAqICAgJ0RhdGUnOiBmdW5jdGlvbigpIHtcbiAgICogICAgIHJldHVybiB7ICdnZXRUaW1lJzogZ2V0VGltZU1vY2sgfTtcbiAgICogICB9XG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBvciBjcmVhdGluZyBhIHN1cGVkLXVwIGBkZWZlcmAgaW4gTm9kZS5qc1xuICAgKiB2YXIgZGVmZXIgPSBfLnJ1bkluQ29udGV4dCh7ICdzZXRUaW1lb3V0Jzogc2V0SW1tZWRpYXRlIH0pLmRlZmVyO1xuICAgKi9cbiAgZnVuY3Rpb24gcnVuSW5Db250ZXh0KGNvbnRleHQpIHtcbiAgICAvLyBBdm9pZCBpc3N1ZXMgd2l0aCBzb21lIEVTMyBlbnZpcm9ubWVudHMgdGhhdCBhdHRlbXB0IHRvIHVzZSB2YWx1ZXMsIG5hbWVkXG4gICAgLy8gYWZ0ZXIgYnVpbHQtaW4gY29uc3RydWN0b3JzIGxpa2UgYE9iamVjdGAsIGZvciB0aGUgY3JlYXRpb24gb2YgbGl0ZXJhbHMuXG4gICAgLy8gRVM1IGNsZWFycyB0aGlzIHVwIGJ5IHN0YXRpbmcgdGhhdCBsaXRlcmFscyBtdXN0IHVzZSBidWlsdC1pbiBjb25zdHJ1Y3RvcnMuXG4gICAgLy8gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDExLjEuNSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIGNvbnRleHQgPSBjb250ZXh0ID8gXy5kZWZhdWx0cyhyb290Lk9iamVjdCgpLCBjb250ZXh0LCBfLnBpY2socm9vdCwgY29udGV4dFByb3BzKSkgOiByb290O1xuXG4gICAgLyoqIE5hdGl2ZSBjb25zdHJ1Y3RvciByZWZlcmVuY2VzLiAqL1xuICAgIHZhciBBcnJheSA9IGNvbnRleHQuQXJyYXksXG4gICAgICAgIERhdGUgPSBjb250ZXh0LkRhdGUsXG4gICAgICAgIEVycm9yID0gY29udGV4dC5FcnJvcixcbiAgICAgICAgRnVuY3Rpb24gPSBjb250ZXh0LkZ1bmN0aW9uLFxuICAgICAgICBNYXRoID0gY29udGV4dC5NYXRoLFxuICAgICAgICBOdW1iZXIgPSBjb250ZXh0Lk51bWJlcixcbiAgICAgICAgT2JqZWN0ID0gY29udGV4dC5PYmplY3QsXG4gICAgICAgIFJlZ0V4cCA9IGNvbnRleHQuUmVnRXhwLFxuICAgICAgICBTdHJpbmcgPSBjb250ZXh0LlN0cmluZyxcbiAgICAgICAgVHlwZUVycm9yID0gY29udGV4dC5UeXBlRXJyb3I7XG5cbiAgICAvKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xuICAgIHZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlLFxuICAgICAgICBlcnJvclByb3RvID0gRXJyb3IucHJvdG90eXBlLFxuICAgICAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGUsXG4gICAgICAgIHN0cmluZ1Byb3RvID0gU3RyaW5nLnByb3RvdHlwZTtcblxuICAgIC8qKiBVc2VkIHRvIGRldGVjdCBET00gc3VwcG9ydC4gKi9cbiAgICB2YXIgZG9jdW1lbnQgPSAoZG9jdW1lbnQgPSBjb250ZXh0LndpbmRvdykgJiYgZG9jdW1lbnQuZG9jdW1lbnQ7XG5cbiAgICAvKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG4gICAgdmFyIGZuVG9TdHJpbmcgPSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7XG5cbiAgICAvKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbiAgICB2YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuICAgIC8qKiBVc2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBJRHMuICovXG4gICAgdmFyIGlkQ291bnRlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAgICAgKiBvZiB2YWx1ZXMuXG4gICAgICovXG4gICAgdmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbiAgICAvKiogVXNlZCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBgX2AgcmVmZXJlbmNlIGluIGBfLm5vQ29uZmxpY3RgLiAqL1xuICAgIHZhciBvbGREYXNoID0gY29udGV4dC5fO1xuXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbiAgICB2YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cCgnXicgK1xuICAgICAgZXNjYXBlUmVnRXhwKG9ialRvU3RyaW5nKVxuICAgICAgLnJlcGxhY2UoL3RvU3RyaW5nfChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4gICAgKTtcblxuICAgIC8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG4gICAgdmFyIEFycmF5QnVmZmVyID0gaXNOYXRpdmUoQXJyYXlCdWZmZXIgPSBjb250ZXh0LkFycmF5QnVmZmVyKSAmJiBBcnJheUJ1ZmZlcixcbiAgICAgICAgYnVmZmVyU2xpY2UgPSBpc05hdGl2ZShidWZmZXJTbGljZSA9IEFycmF5QnVmZmVyICYmIG5ldyBBcnJheUJ1ZmZlcigwKS5zbGljZSkgJiYgYnVmZmVyU2xpY2UsXG4gICAgICAgIGNlaWwgPSBNYXRoLmNlaWwsXG4gICAgICAgIGNsZWFyVGltZW91dCA9IGNvbnRleHQuY2xlYXJUaW1lb3V0LFxuICAgICAgICBmbG9vciA9IE1hdGguZmxvb3IsXG4gICAgICAgIGdldE93blByb3BlcnR5U3ltYm9scyA9IGlzTmF0aXZlKGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpICYmIGdldE93blByb3BlcnR5U3ltYm9scyxcbiAgICAgICAgZ2V0UHJvdG90eXBlT2YgPSBpc05hdGl2ZShnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZikgJiYgZ2V0UHJvdG90eXBlT2YsXG4gICAgICAgIHB1c2ggPSBhcnJheVByb3RvLnB1c2gsXG4gICAgICAgIHByZXZlbnRFeHRlbnNpb25zID0gaXNOYXRpdmUocHJldmVudEV4dGVuc2lvbnMgPSBPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIHByZXZlbnRFeHRlbnNpb25zLFxuICAgICAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlLFxuICAgICAgICBTZXQgPSBpc05hdGl2ZShTZXQgPSBjb250ZXh0LlNldCkgJiYgU2V0LFxuICAgICAgICBzZXRUaW1lb3V0ID0gY29udGV4dC5zZXRUaW1lb3V0LFxuICAgICAgICBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZSxcbiAgICAgICAgVWludDhBcnJheSA9IGlzTmF0aXZlKFVpbnQ4QXJyYXkgPSBjb250ZXh0LlVpbnQ4QXJyYXkpICYmIFVpbnQ4QXJyYXksXG4gICAgICAgIFdlYWtNYXAgPSBpc05hdGl2ZShXZWFrTWFwID0gY29udGV4dC5XZWFrTWFwKSAmJiBXZWFrTWFwO1xuXG4gICAgLyoqIFVzZWQgdG8gY2xvbmUgYXJyYXkgYnVmZmVycy4gKi9cbiAgICB2YXIgRmxvYXQ2NEFycmF5ID0gKGZ1bmN0aW9uKCkge1xuICAgICAgLy8gU2FmYXJpIDUgZXJyb3JzIHdoZW4gdXNpbmcgYW4gYXJyYXkgYnVmZmVyIHRvIGluaXRpYWxpemUgYSB0eXBlZCBhcnJheVxuICAgICAgLy8gd2hlcmUgdGhlIGFycmF5IGJ1ZmZlcidzIGBieXRlTGVuZ3RoYCBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgdHlwZWRcbiAgICAgIC8vIGFycmF5J3MgYEJZVEVTX1BFUl9FTEVNRU5UYC5cbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBmdW5jID0gaXNOYXRpdmUoZnVuYyA9IGNvbnRleHQuRmxvYXQ2NEFycmF5KSAmJiBmdW5jLFxuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IGZ1bmMobmV3IEFycmF5QnVmZmVyKDEwKSwgMCwgMSkgJiYgZnVuYztcbiAgICAgIH0gY2F0Y2goZSkge31cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSgpKTtcblxuICAgIC8qKiBVc2VkIGFzIGBiYXNlQXNzaWduYC4gKi9cbiAgICB2YXIgbmF0aXZlQXNzaWduID0gKGZ1bmN0aW9uKCkge1xuICAgICAgLy8gQXZvaWQgYE9iamVjdC5hc3NpZ25gIGluIEZpcmVmb3ggMzQtMzcgd2hpY2ggaGF2ZSBhbiBlYXJseSBpbXBsZW1lbnRhdGlvblxuICAgICAgLy8gd2l0aCBhIG5vdyBkZWZ1bmN0IHRyeS9jYXRjaCBiZWhhdmlvci4gU2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzNDRcbiAgICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAvL1xuICAgICAgLy8gVXNlIGBPYmplY3QucHJldmVudEV4dGVuc2lvbnNgIG9uIGEgcGxhaW4gb2JqZWN0IGluc3RlYWQgb2Ygc2ltcGx5IHVzaW5nXG4gICAgICAvLyBgT2JqZWN0KCd4JylgIGJlY2F1c2UgQ2hyb21lIGFuZCBJRSBmYWlsIHRvIHRocm93IGFuIGVycm9yIHdoZW4gYXR0ZW1wdGluZ1xuICAgICAgLy8gdG8gYXNzaWduIHZhbHVlcyB0byByZWFkb25seSBpbmRleGVzIG9mIHN0cmluZ3MuXG4gICAgICB2YXIgZnVuYyA9IHByZXZlbnRFeHRlbnNpb25zICYmIGlzTmF0aXZlKGZ1bmMgPSBPYmplY3QuYXNzaWduKSAmJiBmdW5jO1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGZ1bmMpIHtcbiAgICAgICAgICB2YXIgb2JqZWN0ID0gcHJldmVudEV4dGVuc2lvbnMoeyAnMSc6IDAgfSk7XG4gICAgICAgICAgb2JqZWN0WzBdID0gMTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgIC8vIE9ubHkgYXR0ZW1wdCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgdHJ5IHsgZnVuYyhvYmplY3QsICd4bycpOyB9IGNhdGNoKGUpIHt9XG4gICAgICAgIHJldHVybiAhb2JqZWN0WzFdICYmIGZ1bmM7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSgpKTtcblxuICAgIC8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG4gICAgdmFyIG5hdGl2ZUlzQXJyYXkgPSBpc05hdGl2ZShuYXRpdmVJc0FycmF5ID0gQXJyYXkuaXNBcnJheSkgJiYgbmF0aXZlSXNBcnJheSxcbiAgICAgICAgbmF0aXZlQ3JlYXRlID0gaXNOYXRpdmUobmF0aXZlQ3JlYXRlID0gT2JqZWN0LmNyZWF0ZSkgJiYgbmF0aXZlQ3JlYXRlLFxuICAgICAgICBuYXRpdmVJc0Zpbml0ZSA9IGNvbnRleHQuaXNGaW5pdGUsXG4gICAgICAgIG5hdGl2ZUtleXMgPSBpc05hdGl2ZShuYXRpdmVLZXlzID0gT2JqZWN0LmtleXMpICYmIG5hdGl2ZUtleXMsXG4gICAgICAgIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgICAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbixcbiAgICAgICAgbmF0aXZlTm93ID0gaXNOYXRpdmUobmF0aXZlTm93ID0gRGF0ZS5ub3cpICYmIG5hdGl2ZU5vdyxcbiAgICAgICAgbmF0aXZlTnVtSXNGaW5pdGUgPSBpc05hdGl2ZShuYXRpdmVOdW1Jc0Zpbml0ZSA9IE51bWJlci5pc0Zpbml0ZSkgJiYgbmF0aXZlTnVtSXNGaW5pdGUsXG4gICAgICAgIG5hdGl2ZVBhcnNlSW50ID0gY29udGV4dC5wYXJzZUludCxcbiAgICAgICAgbmF0aXZlUmFuZG9tID0gTWF0aC5yYW5kb207XG5cbiAgICAvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciBgLUluZmluaXR5YCBhbmQgYEluZmluaXR5YC4gKi9cbiAgICB2YXIgTkVHQVRJVkVfSU5GSU5JVFkgPSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gICAgICAgIFBPU0lUSVZFX0lORklOSVRZID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXG4gICAgLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbiAgICB2YXIgTUFYX0FSUkFZX0xFTkdUSCA9IE1hdGgucG93KDIsIDMyKSAtIDEsXG4gICAgICAgIE1BWF9BUlJBWV9JTkRFWCA9IE1BWF9BUlJBWV9MRU5HVEggLSAxLFxuICAgICAgICBIQUxGX01BWF9BUlJBWV9MRU5HVEggPSBNQVhfQVJSQVlfTEVOR1RIID4+PiAxO1xuXG4gICAgLyoqIFVzZWQgYXMgdGhlIHNpemUsIGluIGJ5dGVzLCBvZiBlYWNoIGBGbG9hdDY0QXJyYXlgIGVsZW1lbnQuICovXG4gICAgdmFyIEZMT0FUNjRfQllURVNfUEVSX0VMRU1FTlQgPSBGbG9hdDY0QXJyYXkgPyBGbG9hdDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgOiAwO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCBhcyB0aGUgW21heGltdW0gbGVuZ3RoXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtbnVtYmVyLm1heF9zYWZlX2ludGVnZXIpXG4gICAgICogb2YgYW4gYXJyYXktbGlrZSB2YWx1ZS5cbiAgICAgKi9cbiAgICB2YXIgTUFYX1NBRkVfSU5URUdFUiA9IE1hdGgucG93KDIsIDUzKSAtIDE7XG5cbiAgICAvKiogVXNlZCB0byBzdG9yZSBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cbiAgICB2YXIgbWV0YU1hcCA9IFdlYWtNYXAgJiYgbmV3IFdlYWtNYXA7XG5cbiAgICAvKiogVXNlZCB0byBsb29rdXAgdW5taW5pZmllZCBmdW5jdGlvbiBuYW1lcy4gKi9cbiAgICB2YXIgcmVhbE5hbWVzID0ge307XG5cbiAgICAvKiogVXNlZCB0byBsb29rdXAgYSB0eXBlIGFycmF5IGNvbnN0cnVjdG9ycyBieSBgdG9TdHJpbmdUYWdgLiAqL1xuICAgIHZhciBjdG9yQnlUYWcgPSB7fTtcbiAgICBjdG9yQnlUYWdbZmxvYXQzMlRhZ10gPSBjb250ZXh0LkZsb2F0MzJBcnJheTtcbiAgICBjdG9yQnlUYWdbZmxvYXQ2NFRhZ10gPSBjb250ZXh0LkZsb2F0NjRBcnJheTtcbiAgICBjdG9yQnlUYWdbaW50OFRhZ10gPSBjb250ZXh0LkludDhBcnJheTtcbiAgICBjdG9yQnlUYWdbaW50MTZUYWddID0gY29udGV4dC5JbnQxNkFycmF5O1xuICAgIGN0b3JCeVRhZ1tpbnQzMlRhZ10gPSBjb250ZXh0LkludDMyQXJyYXk7XG4gICAgY3RvckJ5VGFnW3VpbnQ4VGFnXSA9IGNvbnRleHQuVWludDhBcnJheTtcbiAgICBjdG9yQnlUYWdbdWludDhDbGFtcGVkVGFnXSA9IGNvbnRleHQuVWludDhDbGFtcGVkQXJyYXk7XG4gICAgY3RvckJ5VGFnW3VpbnQxNlRhZ10gPSBjb250ZXh0LlVpbnQxNkFycmF5O1xuICAgIGN0b3JCeVRhZ1t1aW50MzJUYWddID0gY29udGV4dC5VaW50MzJBcnJheTtcblxuICAgIC8qKiBVc2VkIHRvIGF2b2lkIGl0ZXJhdGluZyBvdmVyIG5vbi1lbnVtZXJhYmxlIHByb3BlcnRpZXMgaW4gSUUgPCA5LiAqL1xuICAgIHZhciBub25FbnVtUHJvcHMgPSB7fTtcbiAgICBub25FbnVtUHJvcHNbYXJyYXlUYWddID0gbm9uRW51bVByb3BzW2RhdGVUYWddID0gbm9uRW51bVByb3BzW251bWJlclRhZ10gPSB7ICdjb25zdHJ1Y3Rvcic6IHRydWUsICd0b0xvY2FsZVN0cmluZyc6IHRydWUsICd0b1N0cmluZyc6IHRydWUsICd2YWx1ZU9mJzogdHJ1ZSB9O1xuICAgIG5vbkVudW1Qcm9wc1tib29sVGFnXSA9IG5vbkVudW1Qcm9wc1tzdHJpbmdUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlLCAndG9TdHJpbmcnOiB0cnVlLCAndmFsdWVPZic6IHRydWUgfTtcbiAgICBub25FbnVtUHJvcHNbZXJyb3JUYWddID0gbm9uRW51bVByb3BzW2Z1bmNUYWddID0gbm9uRW51bVByb3BzW3JlZ2V4cFRhZ10gPSB7ICdjb25zdHJ1Y3Rvcic6IHRydWUsICd0b1N0cmluZyc6IHRydWUgfTtcbiAgICBub25FbnVtUHJvcHNbb2JqZWN0VGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSB9O1xuXG4gICAgYXJyYXlFYWNoKHNoYWRvd1Byb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgIGZvciAodmFyIHRhZyBpbiBub25FbnVtUHJvcHMpIHtcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwobm9uRW51bVByb3BzLCB0YWcpKSB7XG4gICAgICAgICAgdmFyIHByb3BzID0gbm9uRW51bVByb3BzW3RhZ107XG4gICAgICAgICAgcHJvcHNba2V5XSA9IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgbG9kYXNoYCBvYmplY3Qgd2hpY2ggd3JhcHMgYHZhbHVlYCB0byBlbmFibGUgaW1wbGljaXQgY2hhaW5pbmcuXG4gICAgICogTWV0aG9kcyB0aGF0IG9wZXJhdGUgb24gYW5kIHJldHVybiBhcnJheXMsIGNvbGxlY3Rpb25zLCBhbmQgZnVuY3Rpb25zIGNhblxuICAgICAqIGJlIGNoYWluZWQgdG9nZXRoZXIuIE1ldGhvZHMgdGhhdCByZXR1cm4gYSBib29sZWFuIG9yIHNpbmdsZSB2YWx1ZSB3aWxsXG4gICAgICogYXV0b21hdGljYWxseSBlbmQgdGhlIGNoYWluIHJldHVybmluZyB0aGUgdW53cmFwcGVkIHZhbHVlLiBFeHBsaWNpdCBjaGFpbmluZ1xuICAgICAqIG1heSBiZSBlbmFibGVkIHVzaW5nIGBfLmNoYWluYC4gVGhlIGV4ZWN1dGlvbiBvZiBjaGFpbmVkIG1ldGhvZHMgaXMgbGF6eSxcbiAgICAgKiB0aGF0IGlzLCBleGVjdXRpb24gaXMgZGVmZXJyZWQgdW50aWwgYF8jdmFsdWVgIGlzIGltcGxpY2l0bHkgb3IgZXhwbGljaXRseVxuICAgICAqIGNhbGxlZC5cbiAgICAgKlxuICAgICAqIExhenkgZXZhbHVhdGlvbiBhbGxvd3Mgc2V2ZXJhbCBtZXRob2RzIHRvIHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uLiBTaG9ydGN1dFxuICAgICAqIGZ1c2lvbiBpcyBhbiBvcHRpbWl6YXRpb24gdGhhdCBtZXJnZXMgaXRlcmF0ZWVzIHRvIGF2b2lkIGNyZWF0aW5nIGludGVybWVkaWF0ZVxuICAgICAqIGFycmF5cyBhbmQgcmVkdWNlIHRoZSBudW1iZXIgb2YgaXRlcmF0ZWUgZXhlY3V0aW9ucy5cbiAgICAgKlxuICAgICAqIENoYWluaW5nIGlzIHN1cHBvcnRlZCBpbiBjdXN0b20gYnVpbGRzIGFzIGxvbmcgYXMgdGhlIGBfI3ZhbHVlYCBtZXRob2QgaXNcbiAgICAgKiBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAgICAgKlxuICAgICAqIEluIGFkZGl0aW9uIHRvIGxvZGFzaCBtZXRob2RzLCB3cmFwcGVycyBoYXZlIGBBcnJheWAgYW5kIGBTdHJpbmdgIG1ldGhvZHMuXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBgQXJyYXlgIG1ldGhvZHMgYXJlOlxuICAgICAqIGBjb25jYXRgLCBgam9pbmAsIGBwb3BgLCBgcHVzaGAsIGByZXZlcnNlYCwgYHNoaWZ0YCwgYHNsaWNlYCwgYHNvcnRgLFxuICAgICAqIGBzcGxpY2VgLCBhbmQgYHVuc2hpZnRgXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBgU3RyaW5nYCBtZXRob2RzIGFyZTpcbiAgICAgKiBgcmVwbGFjZWAgYW5kIGBzcGxpdGBcbiAgICAgKlxuICAgICAqIFRoZSB3cmFwcGVyIG1ldGhvZHMgdGhhdCBzdXBwb3J0IHNob3J0Y3V0IGZ1c2lvbiBhcmU6XG4gICAgICogYGNvbXBhY3RgLCBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZHJvcFJpZ2h0V2hpbGVgLCBgZHJvcFdoaWxlYCwgYGZpbHRlcmAsXG4gICAgICogYGZpcnN0YCwgYGluaXRpYWxgLCBgbGFzdGAsIGBtYXBgLCBgcGx1Y2tgLCBgcmVqZWN0YCwgYHJlc3RgLCBgcmV2ZXJzZWAsXG4gICAgICogYHNsaWNlYCwgYHRha2VgLCBgdGFrZVJpZ2h0YCwgYHRha2VSaWdodFdoaWxlYCwgYHRha2VXaGlsZWAsIGB0b0FycmF5YCxcbiAgICAgKiBhbmQgYHdoZXJlYFxuICAgICAqXG4gICAgICogVGhlIGNoYWluYWJsZSB3cmFwcGVyIG1ldGhvZHMgYXJlOlxuICAgICAqIGBhZnRlcmAsIGBhcnlgLCBgYXNzaWduYCwgYGF0YCwgYGJlZm9yZWAsIGBiaW5kYCwgYGJpbmRBbGxgLCBgYmluZEtleWAsXG4gICAgICogYGNhbGxiYWNrYCwgYGNoYWluYCwgYGNodW5rYCwgYGNvbW1pdGAsIGBjb21wYWN0YCwgYGNvbmNhdGAsIGBjb25zdGFudGAsXG4gICAgICogYGNvdW50QnlgLCBgY3JlYXRlYCwgYGN1cnJ5YCwgYGRlYm91bmNlYCwgYGRlZmF1bHRzYCwgYGRlZmVyYCwgYGRlbGF5YCxcbiAgICAgKiBgZGlmZmVyZW5jZWAsIGBkcm9wYCwgYGRyb3BSaWdodGAsIGBkcm9wUmlnaHRXaGlsZWAsIGBkcm9wV2hpbGVgLCBgZmlsbGAsXG4gICAgICogYGZpbHRlcmAsIGBmbGF0dGVuYCwgYGZsYXR0ZW5EZWVwYCwgYGZsb3dgLCBgZmxvd1JpZ2h0YCwgYGZvckVhY2hgLFxuICAgICAqIGBmb3JFYWNoUmlnaHRgLCBgZm9ySW5gLCBgZm9ySW5SaWdodGAsIGBmb3JPd25gLCBgZm9yT3duUmlnaHRgLCBgZnVuY3Rpb25zYCxcbiAgICAgKiBgZ3JvdXBCeWAsIGBpbmRleEJ5YCwgYGluaXRpYWxgLCBgaW50ZXJzZWN0aW9uYCwgYGludmVydGAsIGBpbnZva2VgLCBga2V5c2AsXG4gICAgICogYGtleXNJbmAsIGBtYXBgLCBgbWFwVmFsdWVzYCwgYG1hdGNoZXNgLCBgbWF0Y2hlc1Byb3BlcnR5YCwgYG1lbW9pemVgLFxuICAgICAqIGBtZXJnZWAsIGBtaXhpbmAsIGBuZWdhdGVgLCBgb21pdGAsIGBvbmNlYCwgYHBhaXJzYCwgYHBhcnRpYWxgLCBgcGFydGlhbFJpZ2h0YCxcbiAgICAgKiBgcGFydGl0aW9uYCwgYHBpY2tgLCBgcGxhbnRgLCBgcGx1Y2tgLCBgcHJvcGVydHlgLCBgcHJvcGVydHlPZmAsIGBwdWxsYCxcbiAgICAgKiBgcHVsbEF0YCwgYHB1c2hgLCBgcmFuZ2VgLCBgcmVhcmdgLCBgcmVqZWN0YCwgYHJlbW92ZWAsIGByZXN0YCwgYHJldmVyc2VgLFxuICAgICAqIGBzaHVmZmxlYCwgYHNsaWNlYCwgYHNvcnRgLCBgc29ydEJ5YCwgYHNvcnRCeUFsbGAsIGBzb3J0QnlPcmRlcmAsIGBzcGxpY2VgLFxuICAgICAqIGBzcHJlYWRgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLCBgdGFrZVJpZ2h0V2hpbGVgLCBgdGFrZVdoaWxlYCwgYHRhcGAsXG4gICAgICogYHRocm90dGxlYCwgYHRocnVgLCBgdGltZXNgLCBgdG9BcnJheWAsIGB0b1BsYWluT2JqZWN0YCwgYHRyYW5zZm9ybWAsXG4gICAgICogYHVuaW9uYCwgYHVuaXFgLCBgdW5zaGlmdGAsIGB1bnppcGAsIGB2YWx1ZXNgLCBgdmFsdWVzSW5gLCBgd2hlcmVgLFxuICAgICAqIGB3aXRob3V0YCwgYHdyYXBgLCBgeG9yYCwgYHppcGAsIGFuZCBgemlwT2JqZWN0YFxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgbWV0aG9kcyB0aGF0IGFyZSAqKm5vdCoqIGNoYWluYWJsZSBieSBkZWZhdWx0IGFyZTpcbiAgICAgKiBgYWRkYCwgYGF0dGVtcHRgLCBgY2FtZWxDYXNlYCwgYGNhcGl0YWxpemVgLCBgY2xvbmVgLCBgY2xvbmVEZWVwYCwgYGRlYnVycmAsXG4gICAgICogYGVuZHNXaXRoYCwgYGVzY2FwZWAsIGBlc2NhcGVSZWdFeHBgLCBgZXZlcnlgLCBgZmluZGAsIGBmaW5kSW5kZXhgLCBgZmluZEtleWAsXG4gICAgICogYGZpbmRMYXN0YCwgYGZpbmRMYXN0SW5kZXhgLCBgZmluZExhc3RLZXlgLCBgZmluZFdoZXJlYCwgYGZpcnN0YCwgYGhhc2AsXG4gICAgICogYGlkZW50aXR5YCwgYGluY2x1ZGVzYCwgYGluZGV4T2ZgLCBgaW5SYW5nZWAsIGBpc0FyZ3VtZW50c2AsIGBpc0FycmF5YCxcbiAgICAgKiBgaXNCb29sZWFuYCwgYGlzRGF0ZWAsIGBpc0VsZW1lbnRgLCBgaXNFbXB0eWAsIGBpc0VxdWFsYCwgYGlzRXJyb3JgLCBgaXNGaW5pdGVgXG4gICAgICogYGlzRnVuY3Rpb25gLCBgaXNNYXRjaGAsIGBpc05hdGl2ZWAsIGBpc05hTmAsIGBpc051bGxgLCBgaXNOdW1iZXJgLCBgaXNPYmplY3RgLFxuICAgICAqIGBpc1BsYWluT2JqZWN0YCwgYGlzUmVnRXhwYCwgYGlzU3RyaW5nYCwgYGlzVW5kZWZpbmVkYCwgYGlzVHlwZWRBcnJheWAsXG4gICAgICogYGpvaW5gLCBga2ViYWJDYXNlYCwgYGxhc3RgLCBgbGFzdEluZGV4T2ZgLCBgbWF4YCwgYG1pbmAsIGBub0NvbmZsaWN0YCxcbiAgICAgKiBgbm9vcGAsIGBub3dgLCBgcGFkYCwgYHBhZExlZnRgLCBgcGFkUmlnaHRgLCBgcGFyc2VJbnRgLCBgcG9wYCwgYHJhbmRvbWAsXG4gICAgICogYHJlZHVjZWAsIGByZWR1Y2VSaWdodGAsIGByZXBlYXRgLCBgcmVzdWx0YCwgYHJ1bkluQ29udGV4dGAsIGBzaGlmdGAsIGBzaXplYCxcbiAgICAgKiBgc25ha2VDYXNlYCwgYHNvbWVgLCBgc29ydGVkSW5kZXhgLCBgc29ydGVkTGFzdEluZGV4YCwgYHN0YXJ0Q2FzZWAsIGBzdGFydHNXaXRoYCxcbiAgICAgKiBgc3VtYCwgYHRlbXBsYXRlYCwgYHRyaW1gLCBgdHJpbUxlZnRgLCBgdHJpbVJpZ2h0YCwgYHRydW5jYCwgYHVuZXNjYXBlYCxcbiAgICAgKiBgdW5pcXVlSWRgLCBgdmFsdWVgLCBhbmQgYHdvcmRzYFxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgbWV0aG9kIGBzYW1wbGVgIHdpbGwgcmV0dXJuIGEgd3JhcHBlZCB2YWx1ZSB3aGVuIGBuYCBpcyBwcm92aWRlZCxcbiAgICAgKiBvdGhlcndpc2UgYW4gdW53cmFwcGVkIHZhbHVlIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQG5hbWUgX1xuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAgaW4gYSBgbG9kYXNoYCBpbnN0YW5jZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyLCAzXSk7XG4gICAgICpcbiAgICAgKiAvLyByZXR1cm5zIGFuIHVud3JhcHBlZCB2YWx1ZVxuICAgICAqIHdyYXBwZWQucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCBuKSB7XG4gICAgICogICByZXR1cm4gdG90YWwgKyBuO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IDZcbiAgICAgKlxuICAgICAqIC8vIHJldHVybnMgYSB3cmFwcGVkIHZhbHVlXG4gICAgICogdmFyIHNxdWFyZXMgPSB3cmFwcGVkLm1hcChmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoc3F1YXJlcyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheShzcXVhcmVzLnZhbHVlKCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsb2Rhc2godmFsdWUpIHtcbiAgICAgIGlmIChpc09iamVjdExpa2UodmFsdWUpICYmICFpc0FycmF5KHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpKSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIExvZGFzaFdyYXBwZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdfX2NoYWluX18nKSAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnX193cmFwcGVkX18nKSkge1xuICAgICAgICAgIHJldHVybiB3cmFwcGVyQ2xvbmUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBmdW5jdGlvbiB3aG9zZSBwcm90b3R5cGUgYWxsIGNoYWluaW5nIHdyYXBwZXJzIGluaGVyaXQgZnJvbS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUxvZGFzaCgpIHtcbiAgICAgIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgY29uc3RydWN0b3IgZm9yIGNyZWF0aW5nIGBsb2Rhc2hgIHdyYXBwZXIgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjaGFpbkFsbF0gRW5hYmxlIGNoYWluaW5nIGZvciBhbGwgd3JhcHBlciBtZXRob2RzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthY3Rpb25zPVtdXSBBY3Rpb25zIHRvIHBlZm9ybSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTG9kYXNoV3JhcHBlcih2YWx1ZSwgY2hhaW5BbGwsIGFjdGlvbnMpIHtcbiAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgIHRoaXMuX19hY3Rpb25zX18gPSBhY3Rpb25zIHx8IFtdO1xuICAgICAgdGhpcy5fX2NoYWluX18gPSAhIWNoYWluQWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIG9iamVjdCBlbnZpcm9ubWVudCBmZWF0dXJlIGZsYWdzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHR5cGUgT2JqZWN0XG4gICAgICovXG4gICAgdmFyIHN1cHBvcnQgPSBsb2Rhc2guc3VwcG9ydCA9IHt9O1xuXG4gICAgKGZ1bmN0aW9uKHgpIHtcbiAgICAgIHZhciBDdG9yID0gZnVuY3Rpb24oKSB7IHRoaXMueCA9IHg7IH0sXG4gICAgICAgICAgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICBvYmplY3QgPSB7ICcwJzogeCwgJ2xlbmd0aCc6IHggfSxcbiAgICAgICAgICBwcm9wcyA9IFtdO1xuXG4gICAgICBDdG9yLnByb3RvdHlwZSA9IHsgJ3ZhbHVlT2YnOiB4LCAneSc6IHggfTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBuZXcgQ3RvcikgeyBwcm9wcy5wdXNoKGtleSk7IH1cblxuICAgICAgLyoqXG4gICAgICAgKiBEZXRlY3QgaWYgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBpcyByZXNvbHZhYmxlXG4gICAgICAgKiAoYWxsIGJ1dCBGaXJlZm94IDwgNCwgSUUgPCA5KS5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgKi9cbiAgICAgIHN1cHBvcnQuYXJnc1RhZyA9IG9ialRvU3RyaW5nLmNhbGwoYXJncykgPT0gYXJnc1RhZztcblxuICAgICAgLyoqXG4gICAgICAgKiBEZXRlY3QgaWYgYG5hbWVgIG9yIGBtZXNzYWdlYCBwcm9wZXJ0aWVzIG9mIGBFcnJvci5wcm90b3R5cGVgIGFyZVxuICAgICAgICogZW51bWVyYWJsZSBieSBkZWZhdWx0IChJRSA8IDksIFNhZmFyaSA8IDUuMSkuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0LmVudW1FcnJvclByb3BzID0gcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlcnJvclByb3RvLCAnbWVzc2FnZScpIHx8XG4gICAgICAgIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZXJyb3JQcm90bywgJ25hbWUnKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBEZXRlY3QgaWYgYHByb3RvdHlwZWAgcHJvcGVydGllcyBhcmUgZW51bWVyYWJsZSBieSBkZWZhdWx0LlxuICAgICAgICpcbiAgICAgICAqIEZpcmVmb3ggPCAzLjYsIE9wZXJhID4gOS41MCAtIE9wZXJhIDwgMTEuNjAsIGFuZCBTYWZhcmkgPCA1LjFcbiAgICAgICAqIChpZiB0aGUgcHJvdG90eXBlIG9yIGEgcHJvcGVydHkgb24gdGhlIHByb3RvdHlwZSBoYXMgYmVlbiBzZXQpXG4gICAgICAgKiBpbmNvcnJlY3RseSBzZXQgdGhlIGBbW0VudW1lcmFibGVdXWAgdmFsdWUgb2YgYSBmdW5jdGlvbidzIGBwcm90b3R5cGVgXG4gICAgICAgKiBwcm9wZXJ0eSB0byBgdHJ1ZWAuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0LmVudW1Qcm90b3R5cGVzID0gcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChDdG9yLCAncHJvdG90eXBlJyk7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb21waWxlZCBieSBgRnVuY3Rpb24jdG9TdHJpbmdgXG4gICAgICAgKiAoYWxsIGJ1dCBGaXJlZm94IE9TIGNlcnRpZmllZCBhcHBzLCBvbGRlciBPcGVyYSBtb2JpbGUgYnJvd3NlcnMsIGFuZFxuICAgICAgICogdGhlIFBsYXlTdGF0aW9uIDM7IGZvcmNlZCBgZmFsc2VgIGZvciBXaW5kb3dzIDggYXBwcykuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0LmZ1bmNEZWNvbXAgPSAvXFxidGhpc1xcYi8udGVzdChmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiBgRnVuY3Rpb24jbmFtZWAgaXMgc3VwcG9ydGVkIChhbGwgYnV0IElFKS5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgKi9cbiAgICAgIHN1cHBvcnQuZnVuY05hbWVzID0gdHlwZW9mIEZ1bmN0aW9uLm5hbWUgPT0gJ3N0cmluZyc7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIHRoZSBgdG9TdHJpbmdUYWdgIG9mIERPTSBub2RlcyBpcyByZXNvbHZhYmxlIChhbGwgYnV0IElFIDwgOSkuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0Lm5vZGVUYWcgPSBvYmpUb1N0cmluZy5jYWxsKGRvY3VtZW50KSAhPSBvYmplY3RUYWc7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIHN0cmluZyBpbmRleGVzIGFyZSBub24tZW51bWVyYWJsZSAoSUUgPCA5LCBSaW5nb0pTLCBSaGlubywgTmFyd2hhbCkuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0Lm5vbkVudW1TdHJpbmdzID0gIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoJ3gnLCAwKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBEZXRlY3QgaWYgcHJvcGVydGllcyBzaGFkb3dpbmcgdGhvc2Ugb24gYE9iamVjdC5wcm90b3R5cGVgIGFyZSBub24tZW51bWVyYWJsZS5cbiAgICAgICAqXG4gICAgICAgKiBJbiBJRSA8IDkgYW4gb2JqZWN0J3Mgb3duIHByb3BlcnRpZXMsIHNoYWRvd2luZyBub24tZW51bWVyYWJsZSBvbmVzLFxuICAgICAgICogYXJlIG1hZGUgbm9uLWVudW1lcmFibGUgYXMgd2VsbCAoYS5rLmEgdGhlIEpTY3JpcHQgYFtbRG9udEVudW1dXWAgYnVnKS5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgKi9cbiAgICAgIHN1cHBvcnQubm9uRW51bVNoYWRvd3MgPSAhL3ZhbHVlT2YvLnRlc3QocHJvcHMpO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVjdCBpZiBvd24gcHJvcGVydGllcyBhcmUgaXRlcmF0ZWQgYWZ0ZXIgaW5oZXJpdGVkIHByb3BlcnRpZXMgKElFIDwgOSkuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICovXG4gICAgICBzdXBwb3J0Lm93bkxhc3QgPSBwcm9wc1swXSAhPSAneCc7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIGBBcnJheSNzaGlmdGAgYW5kIGBBcnJheSNzcGxpY2VgIGF1Z21lbnQgYXJyYXktbGlrZSBvYmplY3RzXG4gICAgICAgKiBjb3JyZWN0bHkuXG4gICAgICAgKlxuICAgICAgICogRmlyZWZveCA8IDEwLCBjb21wYXRpYmlsaXR5IG1vZGVzIG9mIElFIDgsIGFuZCBJRSA8IDkgaGF2ZSBidWdneSBBcnJheVxuICAgICAgICogYHNoaWZ0KClgIGFuZCBgc3BsaWNlKClgIGZ1bmN0aW9ucyB0aGF0IGZhaWwgdG8gcmVtb3ZlIHRoZSBsYXN0IGVsZW1lbnQsXG4gICAgICAgKiBgdmFsdWVbMF1gLCBvZiBhcnJheS1saWtlIG9iamVjdHMgZXZlbiB0aG91Z2ggdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgaXNcbiAgICAgICAqIHNldCB0byBgMGAuIFRoZSBgc2hpZnQoKWAgbWV0aG9kIGlzIGJ1Z2d5IGluIGNvbXBhdGliaWxpdHkgbW9kZXMgb2YgSUUgOCxcbiAgICAgICAqIHdoaWxlIGBzcGxpY2UoKWAgaXMgYnVnZ3kgcmVnYXJkbGVzcyBvZiBtb2RlIGluIElFIDwgOS5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgKi9cbiAgICAgIHN1cHBvcnQuc3BsaWNlT2JqZWN0cyA9IChzcGxpY2UuY2FsbChvYmplY3QsIDAsIDEpLCAhb2JqZWN0WzBdKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBEZXRlY3QgbGFjayBvZiBzdXBwb3J0IGZvciBhY2Nlc3Npbmcgc3RyaW5nIGNoYXJhY3RlcnMgYnkgaW5kZXguXG4gICAgICAgKlxuICAgICAgICogSUUgPCA4IGNhbid0IGFjY2VzcyBjaGFyYWN0ZXJzIGJ5IGluZGV4LiBJRSA4IGNhbiBvbmx5IGFjY2VzcyBjaGFyYWN0ZXJzXG4gICAgICAgKiBieSBpbmRleCBvbiBzdHJpbmcgbGl0ZXJhbHMsIG5vdCBzdHJpbmcgb2JqZWN0cy5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgKi9cbiAgICAgIHN1cHBvcnQudW5pbmRleGVkQ2hhcnMgPSAoJ3gnWzBdICsgT2JqZWN0KCd4JylbMF0pICE9ICd4eCc7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIHRoZSBET00gaXMgc3VwcG9ydGVkLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3VwcG9ydC5kb20gPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkubm9kZVR5cGUgPT09IDExO1xuICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgIHN1cHBvcnQuZG9tID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogRGV0ZWN0IGlmIGBhcmd1bWVudHNgIG9iamVjdCBpbmRleGVzIGFyZSBub24tZW51bWVyYWJsZS5cbiAgICAgICAqXG4gICAgICAgKiBJbiBGaXJlZm94IDwgNCwgSUUgPCA5LCBQaGFudG9tSlMsIGFuZCBTYWZhcmkgPCA1LjEgYGFyZ3VtZW50c2Agb2JqZWN0XG4gICAgICAgKiBpbmRleGVzIGFyZSBub24tZW51bWVyYWJsZS4gQ2hyb21lIDwgMjUgYW5kIE5vZGUuanMgPCAwLjExLjAgdHJlYXRcbiAgICAgICAqIGBhcmd1bWVudHNgIG9iamVjdCBpbmRleGVzIGFzIG5vbi1lbnVtZXJhYmxlIGFuZCBmYWlsIGBoYXNPd25Qcm9wZXJ0eWBcbiAgICAgICAqIGNoZWNrcyBmb3IgaW5kZXhlcyB0aGF0IGV4Y2VlZCB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9uIHBhcmFtZXRlcnMgYW5kXG4gICAgICAgKiB3aG9zZSBhc3NvY2lhdGVkIGFyZ3VtZW50IHZhbHVlcyBhcmUgYDBgLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAqL1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3VwcG9ydC5ub25FbnVtQXJncyA9ICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGFyZ3MsIDEpO1xuICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgIHN1cHBvcnQubm9uRW51bUFyZ3MgPSB0cnVlO1xuICAgICAgfVxuICAgIH0oMSwgMCkpO1xuXG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCwgdGhlIHRlbXBsYXRlIGRlbGltaXRlcnMgdXNlZCBieSBsb2Rhc2ggYXJlIGxpa2UgdGhvc2UgaW5cbiAgICAgKiBlbWJlZGRlZCBSdWJ5IChFUkIpLiBDaGFuZ2UgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBzZXR0aW5ncyB0byB1c2VcbiAgICAgKiBhbHRlcm5hdGl2ZSBkZWxpbWl0ZXJzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHR5cGUgT2JqZWN0XG4gICAgICovXG4gICAgbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3MgPSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBiZSBIVE1MLWVzY2FwZWQuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUgUmVnRXhwXG4gICAgICAgKi9cbiAgICAgICdlc2NhcGUnOiByZUVzY2FwZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIGRldGVjdCBjb2RlIHRvIGJlIGV2YWx1YXRlZC5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgKiBAdHlwZSBSZWdFeHBcbiAgICAgICAqL1xuICAgICAgJ2V2YWx1YXRlJzogcmVFdmFsdWF0ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIGRldGVjdCBgZGF0YWAgcHJvcGVydHkgdmFsdWVzIHRvIGluamVjdC5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgKiBAdHlwZSBSZWdFeHBcbiAgICAgICAqL1xuICAgICAgJ2ludGVycG9sYXRlJzogcmVJbnRlcnBvbGF0ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIHJlZmVyZW5jZSB0aGUgZGF0YSBvYmplY3QgaW4gdGhlIHRlbXBsYXRlIHRleHQuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUgc3RyaW5nXG4gICAgICAgKi9cbiAgICAgICd2YXJpYWJsZSc6ICcnLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gaW1wb3J0IHZhcmlhYmxlcyBpbnRvIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgKiBAdHlwZSBPYmplY3RcbiAgICAgICAqL1xuICAgICAgJ2ltcG9ydHMnOiB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgbG9kYXNoYCBmdW5jdGlvbi5cbiAgICAgICAgICpcbiAgICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXG4gICAgICAgICAqIEB0eXBlIEZ1bmN0aW9uXG4gICAgICAgICAqL1xuICAgICAgICAnXyc6IGxvZGFzaFxuICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbGF6eSB3cmFwcGVyIG9iamVjdCB3aGljaCB3cmFwcyBgdmFsdWVgIHRvIGVuYWJsZSBsYXp5IGV2YWx1YXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTGF6eVdyYXBwZXIodmFsdWUpIHtcbiAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgIHRoaXMuX19hY3Rpb25zX18gPSBudWxsO1xuICAgICAgdGhpcy5fX2Rpcl9fID0gMTtcbiAgICAgIHRoaXMuX19kcm9wQ291bnRfXyA9IDA7XG4gICAgICB0aGlzLl9fZmlsdGVyZWRfXyA9IGZhbHNlO1xuICAgICAgdGhpcy5fX2l0ZXJhdGVlc19fID0gbnVsbDtcbiAgICAgIHRoaXMuX190YWtlQ291bnRfXyA9IFBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgdGhpcy5fX3ZpZXdzX18gPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgbGF6eSB3cmFwcGVyIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgY2xvbmVcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgYExhenlXcmFwcGVyYCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGF6eUNsb25lKCkge1xuICAgICAgdmFyIGFjdGlvbnMgPSB0aGlzLl9fYWN0aW9uc19fLFxuICAgICAgICAgIGl0ZXJhdGVlcyA9IHRoaXMuX19pdGVyYXRlZXNfXyxcbiAgICAgICAgICB2aWV3cyA9IHRoaXMuX192aWV3c19fLFxuICAgICAgICAgIHJlc3VsdCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzLl9fd3JhcHBlZF9fKTtcblxuICAgICAgcmVzdWx0Ll9fYWN0aW9uc19fID0gYWN0aW9ucyA/IGFycmF5Q29weShhY3Rpb25zKSA6IG51bGw7XG4gICAgICByZXN1bHQuX19kaXJfXyA9IHRoaXMuX19kaXJfXztcbiAgICAgIHJlc3VsdC5fX2ZpbHRlcmVkX18gPSB0aGlzLl9fZmlsdGVyZWRfXztcbiAgICAgIHJlc3VsdC5fX2l0ZXJhdGVlc19fID0gaXRlcmF0ZWVzID8gYXJyYXlDb3B5KGl0ZXJhdGVlcykgOiBudWxsO1xuICAgICAgcmVzdWx0Ll9fdGFrZUNvdW50X18gPSB0aGlzLl9fdGFrZUNvdW50X187XG4gICAgICByZXN1bHQuX192aWV3c19fID0gdmlld3MgPyBhcnJheUNvcHkodmlld3MpIDogbnVsbDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV2ZXJzZXMgdGhlIGRpcmVjdGlvbiBvZiBsYXp5IGl0ZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgcmV2ZXJzZVxuICAgICAqIEBtZW1iZXJPZiBMYXp5V3JhcHBlclxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyByZXZlcnNlZCBgTGF6eVdyYXBwZXJgIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXp5UmV2ZXJzZSgpIHtcbiAgICAgIGlmICh0aGlzLl9fZmlsdGVyZWRfXykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICByZXN1bHQuX19kaXJfXyA9IC0xO1xuICAgICAgICByZXN1bHQuX19maWx0ZXJlZF9fID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuY2xvbmUoKTtcbiAgICAgICAgcmVzdWx0Ll9fZGlyX18gKj0gLTE7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4dHJhY3RzIHRoZSB1bndyYXBwZWQgdmFsdWUgZnJvbSBpdHMgbGF6eSB3cmFwcGVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSB2YWx1ZVxuICAgICAqIEBtZW1iZXJPZiBMYXp5V3JhcHBlclxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGF6eVZhbHVlKCkge1xuICAgICAgdmFyIGFycmF5ID0gdGhpcy5fX3dyYXBwZWRfXy52YWx1ZSgpO1xuICAgICAgaWYgKCFpc0FycmF5KGFycmF5KSkge1xuICAgICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZShhcnJheSwgdGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICB9XG4gICAgICB2YXIgZGlyID0gdGhpcy5fX2Rpcl9fLFxuICAgICAgICAgIGlzUmlnaHQgPSBkaXIgPCAwLFxuICAgICAgICAgIHZpZXcgPSBnZXRWaWV3KDAsIGFycmF5Lmxlbmd0aCwgdGhpcy5fX3ZpZXdzX18pLFxuICAgICAgICAgIHN0YXJ0ID0gdmlldy5zdGFydCxcbiAgICAgICAgICBlbmQgPSB2aWV3LmVuZCxcbiAgICAgICAgICBsZW5ndGggPSBlbmQgLSBzdGFydCxcbiAgICAgICAgICBpbmRleCA9IGlzUmlnaHQgPyBlbmQgOiAoc3RhcnQgLSAxKSxcbiAgICAgICAgICB0YWtlQ291bnQgPSBuYXRpdmVNaW4obGVuZ3RoLCB0aGlzLl9fdGFrZUNvdW50X18pLFxuICAgICAgICAgIGl0ZXJhdGVlcyA9IHRoaXMuX19pdGVyYXRlZXNfXyxcbiAgICAgICAgICBpdGVyTGVuZ3RoID0gaXRlcmF0ZWVzID8gaXRlcmF0ZWVzLmxlbmd0aCA6IDAsXG4gICAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlIChsZW5ndGgtLSAmJiByZXNJbmRleCA8IHRha2VDb3VudCkge1xuICAgICAgICBpbmRleCArPSBkaXI7XG5cbiAgICAgICAgdmFyIGl0ZXJJbmRleCA9IC0xLFxuICAgICAgICAgICAgdmFsdWUgPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgd2hpbGUgKCsraXRlckluZGV4IDwgaXRlckxlbmd0aCkge1xuICAgICAgICAgIHZhciBkYXRhID0gaXRlcmF0ZWVzW2l0ZXJJbmRleF0sXG4gICAgICAgICAgICAgIGl0ZXJhdGVlID0gZGF0YS5pdGVyYXRlZSxcbiAgICAgICAgICAgICAgdHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgICAgIGlmICh0eXBlID09IExBWllfRFJPUF9XSElMRV9GTEFHKSB7XG4gICAgICAgICAgICBpZiAoZGF0YS5kb25lICYmIChpc1JpZ2h0ID8gKGluZGV4ID4gZGF0YS5pbmRleCkgOiAoaW5kZXggPCBkYXRhLmluZGV4KSkpIHtcbiAgICAgICAgICAgICAgZGF0YS5jb3VudCA9IDA7XG4gICAgICAgICAgICAgIGRhdGEuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS5pbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgaWYgKCFkYXRhLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGxpbWl0ID0gZGF0YS5saW1pdDtcbiAgICAgICAgICAgICAgaWYgKCEoZGF0YS5kb25lID0gbGltaXQgPiAtMSA/IChkYXRhLmNvdW50KysgPj0gbGltaXQpIDogIWl0ZXJhdGVlKHZhbHVlKSkpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgY29tcHV0ZWQgPSBpdGVyYXRlZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodHlwZSA9PSBMQVpZX01BUF9GTEFHKSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gY29tcHV0ZWQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFjb21wdXRlZCkge1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PSBMQVpZX0ZJTFRFUl9GTEFHKSB7XG4gICAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWsgb3V0ZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5L3ZhbHVlIHBhaXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG5hbWUgQ2FjaGVcbiAgICAgKiBAbWVtYmVyT2YgXy5tZW1vaXplXG4gICAgICovXG4gICAgZnVuY3Rpb24gTWFwQ2FjaGUoKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fID0ge307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgXy5tZW1vaXplLkNhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCBzdWNjZXNzZnVsbHksIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBEZWxldGUoa2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGNhY2hlZCB2YWx1ZSBmb3IgYGtleWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGdldFxuICAgICAqIEBtZW1iZXJPZiBfLm1lbW9pemUuQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2FjaGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcEdldChrZXkpIHtcbiAgICAgIHJldHVybiBrZXkgPT0gJ19fcHJvdG9fXycgPyB1bmRlZmluZWQgOiB0aGlzLl9fZGF0YV9fW2tleV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgY2FjaGVkIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGhhc1xuICAgICAqIEBtZW1iZXJPZiBfLm1lbW9pemUuQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwSGFzKGtleSkge1xuICAgICAgcmV0dXJuIGtleSAhPSAnX19wcm90b19fJyAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuX19kYXRhX18sIGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBgdmFsdWVgIHRvIGBrZXlgIG9mIHRoZSBjYWNoZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIF8ubWVtb2l6ZS5DYWNoZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gY2FjaGUuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2FjaGUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2FjaGUgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcFNldChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoa2V5ICE9ICdfX3Byb3RvX18nKSB7XG4gICAgICAgIHRoaXMuX19kYXRhX19ba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIHVuaXF1ZSB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gY2FjaGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gU2V0Q2FjaGUodmFsdWVzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gdmFsdWVzID8gdmFsdWVzLmxlbmd0aCA6IDA7XG5cbiAgICAgIHRoaXMuZGF0YSA9IHsgJ2hhc2gnOiBuYXRpdmVDcmVhdGUobnVsbCksICdzZXQnOiBuZXcgU2V0IH07XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdGhpcy5wdXNoKHZhbHVlc1tsZW5ndGhdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBpbiBgY2FjaGVgIG1pbWlja2luZyB0aGUgcmV0dXJuIHNpZ25hdHVyZSBvZlxuICAgICAqIGBfLmluZGV4T2ZgIGJ5IHJldHVybmluZyBgMGAgaWYgdGhlIHZhbHVlIGlzIGZvdW5kLCBlbHNlIGAtMWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjYWNoZSBUaGUgY2FjaGUgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyBgMGAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgLTFgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhY2hlSW5kZXhPZihjYWNoZSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gY2FjaGUuZGF0YSxcbiAgICAgICAgICByZXN1bHQgPSAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzT2JqZWN0KHZhbHVlKSkgPyBkYXRhLnNldC5oYXModmFsdWUpIDogZGF0YS5oYXNoW3ZhbHVlXTtcblxuICAgICAgcmV0dXJuIHJlc3VsdCA/IDAgOiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGB2YWx1ZWAgdG8gdGhlIGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBwdXNoXG4gICAgICogQG1lbWJlck9mIFNldENhY2hlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2FjaGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FjaGVQdXNoKHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGRhdGEuc2V0LmFkZCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhLmhhc2hbdmFsdWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5PVtdXSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgdG8uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlDb3B5KHNvdXJjZSwgYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgICAgIGFycmF5IHx8IChhcnJheSA9IEFycmF5KGxlbmd0aCkpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheUVhY2goYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaFJpZ2h0YCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICAgKiBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5RWFjaFJpZ2h0KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGlmIChpdGVyYXRlZShhcnJheVtsZW5ndGhdLCBsZW5ndGgsIGFycmF5KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5ldmVyeWAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFsbCBlbGVtZW50cyBwYXNzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheUV2ZXJ5KGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgaWYgKCFwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZmlsdGVyYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1heGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF4aW11bSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheU1heChhcnJheSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IE5FR0FUSVZFX0lORklOSVRZO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgIGlmICh2YWx1ZSA+IHJlc3VsdCkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5taW5gIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1pbmltdW0gdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlNaW4oYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBQT1NJVElWRV9JTkZJTklUWTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAodmFsdWUgPCByZXN1bHQpIHtcbiAgICAgICAgICByZXN1bHQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpbml0RnJvbUFycmF5XSBTcGVjaWZ5IHVzaW5nIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBhcnJheWBcbiAgICAgKiAgYXMgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5UmVkdWNlKGFycmF5LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRGcm9tQXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgaWYgKGluaXRGcm9tQXJyYXkgJiYgbGVuZ3RoKSB7XG4gICAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbKytpbmRleF07XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnJlZHVjZVJpZ2h0YCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICAgKiBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpbml0RnJvbUFycmF5XSBTcGVjaWZ5IHVzaW5nIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YFxuICAgICAqICBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlSZWR1Y2VSaWdodChhcnJheSwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0RnJvbUFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKGluaXRGcm9tQXJyYXkgJiYgbGVuZ3RoKSB7XG4gICAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbLS1sZW5ndGhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGFjY3VtdWxhdG9yID0gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIGFycmF5W2xlbmd0aF0sIGxlbmd0aCwgYXJyYXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IGVsZW1lbnQgcGFzc2VzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVNvbWUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBpZiAocHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnN1bWAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlTdW0oYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gMDtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHJlc3VsdCArPSArYXJyYXlbbGVuZ3RoXSB8fCAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGJ5IGBfLmRlZmF1bHRzYCB0byBjdXN0b21pemUgaXRzIGBfLmFzc2lnbmAgdXNlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IG9iamVjdFZhbHVlIFRoZSBkZXN0aW5hdGlvbiBvYmplY3QgcHJvcGVydHkgdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBzb3VyY2VWYWx1ZSBUaGUgc291cmNlIG9iamVjdCBwcm9wZXJ0eSB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdmFsdWUgdG8gYXNzaWduIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdHMob2JqZWN0VmFsdWUsIHNvdXJjZVZhbHVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0VmFsdWUgPT09IHVuZGVmaW5lZCA/IHNvdXJjZVZhbHVlIDogb2JqZWN0VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCBieSBgXy50ZW1wbGF0ZWAgdG8gY3VzdG9taXplIGl0cyBgXy5hc3NpZ25gIHVzZS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGFzc2lnbkRlZmF1bHRzYCBleGNlcHQgdGhhdCBpdCBpZ25vcmVzXG4gICAgICogaW5oZXJpdGVkIHByb3BlcnR5IHZhbHVlcyB3aGVuIGNoZWNraW5nIGlmIGEgcHJvcGVydHkgaXMgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gb2JqZWN0VmFsdWUgVGhlIGRlc3RpbmF0aW9uIG9iamVjdCBwcm9wZXJ0eSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0geyp9IHNvdXJjZVZhbHVlIFRoZSBzb3VyY2Ugb2JqZWN0IHByb3BlcnR5IHZhbHVlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdCBhbmQgc291cmNlIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHZhbHVlIHRvIGFzc2lnbiB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFzc2lnbk93bkRlZmF1bHRzKG9iamVjdFZhbHVlLCBzb3VyY2VWYWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICAgIHJldHVybiAob2JqZWN0VmFsdWUgPT09IHVuZGVmaW5lZCB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpXG4gICAgICAgID8gc291cmNlVmFsdWVcbiAgICAgICAgOiBvYmplY3RWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uYXNzaWduYCBmb3IgY3VzdG9taXppbmcgYXNzaWduZWQgdmFsdWVzIHdpdGhvdXRcbiAgICAgKiBzdXBwb3J0IGZvciBhcmd1bWVudCBqdWdnbGluZywgbXVsdGlwbGUgc291cmNlcywgYW5kIGB0aGlzYCBiaW5kaW5nIGBjdXN0b21pemVyYFxuICAgICAqIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFzc2lnbldpdGgob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIHZhciBwcm9wcyA9IGtleXMoc291cmNlKTtcbiAgICAgIHB1c2guYXBwbHkocHJvcHMsIGdldFN5bWJvbHMoc291cmNlKSk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XSxcbiAgICAgICAgICAgIHZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgICByZXN1bHQgPSBjdXN0b21pemVyKHZhbHVlLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSk7XG5cbiAgICAgICAgaWYgKChyZXN1bHQgPT09IHJlc3VsdCA/IChyZXN1bHQgIT09IHZhbHVlKSA6ICh2YWx1ZSA9PT0gdmFsdWUpKSB8fFxuICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICAgICAgICBvYmplY3Rba2V5XSA9IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmcsXG4gICAgICogbXVsdGlwbGUgc291cmNlcywgYW5kIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgdmFyIGJhc2VBc3NpZ24gPSBuYXRpdmVBc3NpZ24gfHwgZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBzb3VyY2UgPT0gbnVsbFxuICAgICAgICA/IG9iamVjdFxuICAgICAgICA6IGJhc2VDb3B5KHNvdXJjZSwgZ2V0U3ltYm9scyhzb3VyY2UpLCBiYXNlQ29weShzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmF0YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0cmluZyBjb2xsZWN0aW9uc1xuICAgICAqIGFuZCBpbmRpdmlkdWFsIGtleSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge251bWJlcltdfHN0cmluZ1tdfSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgb3IgaW5kZXhlcyBvZiBlbGVtZW50cyB0byBwaWNrLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHBpY2tlZCBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQXQoY29sbGVjdGlvbiwgcHJvcHMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGlzTmlsID0gY29sbGVjdGlvbiA9PSBudWxsLFxuICAgICAgICAgIGlzQXJyID0gIWlzTmlsICYmIGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIGxlbmd0aCA9IGlzQXJyICYmIGNvbGxlY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgIHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KHByb3BzTGVuZ3RoKTtcblxuICAgICAgd2hpbGUoKytpbmRleCA8IHByb3BzTGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgICAgIGlmIChpc0Fycikge1xuICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSBpc0luZGV4KGtleSwgbGVuZ3RoKSA/IGNvbGxlY3Rpb25ba2V5XSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRbaW5kZXhdID0gaXNOaWwgPyB1bmRlZmluZWQgOiBjb2xsZWN0aW9uW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gY29weS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQ29weShzb3VyY2UsIHByb3BzLCBvYmplY3QpIHtcbiAgICAgIG9iamVjdCB8fCAob2JqZWN0ID0ge30pO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgICAgIG9iamVjdFtrZXldID0gc291cmNlW2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNhbGxiYWNrYCB3aGljaCBzdXBwb3J0cyBzcGVjaWZ5aW5nIHRoZVxuICAgICAqIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gW2Z1bmM9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYSBjYWxsYmFjay5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJnQ291bnRdIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2FsbGJhY2suXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KSB7XG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiBmdW5jO1xuICAgICAgaWYgKHR5cGUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdGhpc0FyZyA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBmdW5jXG4gICAgICAgICAgOiBiaW5kQ2FsbGJhY2soZnVuYywgdGhpc0FyZywgYXJnQ291bnQpO1xuICAgICAgfVxuICAgICAgaWYgKGZ1bmMgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gYmFzZU1hdGNoZXMoZnVuYyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpc0FyZyA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gcHJvcGVydHkoZnVuYylcbiAgICAgICAgOiBiYXNlTWF0Y2hlc1Byb3BlcnR5KGZ1bmMsIHRoaXNBcmcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nXG4gICAgICogYW5kIGB0aGlzYCBiaW5kaW5nIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZyB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXldIFRoZSBrZXkgb2YgYHZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCBgdmFsdWVgIGJlbG9uZ3MgdG8uXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCPVtdXSBBc3NvY2lhdGVzIGNsb25lcyB3aXRoIHNvdXJjZSBjb3VudGVycGFydHMuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGNsb25lZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQ2xvbmUodmFsdWUsIGlzRGVlcCwgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrQSwgc3RhY2tCKSB7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgcmVzdWx0ID0gb2JqZWN0ID8gY3VzdG9taXplcih2YWx1ZSwga2V5LCBvYmplY3QpIDogY3VzdG9taXplcih2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpO1xuICAgICAgaWYgKGlzQXJyKSB7XG4gICAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcbiAgICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXlDb3B5KHZhbHVlLCByZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgdGFnID0gb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSksXG4gICAgICAgICAgICBpc0Z1bmMgPSB0YWcgPT0gZnVuY1RhZztcblxuICAgICAgICBpZiAodGFnID09IG9iamVjdFRhZyB8fCB0YWcgPT0gYXJnc1RhZyB8fCAoaXNGdW5jICYmICFvYmplY3QpKSB7XG4gICAgICAgICAgaWYgKGlzSG9zdE9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3QgPyB2YWx1ZSA6IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSBpbml0Q2xvbmVPYmplY3QoaXNGdW5jID8ge30gOiB2YWx1ZSk7XG4gICAgICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gY2xvbmVhYmxlVGFnc1t0YWddXG4gICAgICAgICAgICA/IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcClcbiAgICAgICAgICAgIDogKG9iamVjdCA/IHZhbHVlIDoge30pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDaGVjayBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcyBhbmQgcmV0dXJuIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gICAgICBzdGFja0EgfHwgKHN0YWNrQSA9IFtdKTtcbiAgICAgIHN0YWNrQiB8fCAoc3RhY2tCID0gW10pO1xuXG4gICAgICB2YXIgbGVuZ3RoID0gc3RhY2tBLmxlbmd0aDtcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBpZiAoc3RhY2tBW2xlbmd0aF0gPT0gdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gc3RhY2tCW2xlbmd0aF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEFkZCB0aGUgc291cmNlIHZhbHVlIHRvIHRoZSBzdGFjayBvZiB0cmF2ZXJzZWQgb2JqZWN0cyBhbmQgYXNzb2NpYXRlIGl0IHdpdGggaXRzIGNsb25lLlxuICAgICAgc3RhY2tBLnB1c2godmFsdWUpO1xuICAgICAgc3RhY2tCLnB1c2gocmVzdWx0KTtcblxuICAgICAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgIChpc0FyciA/IGFycmF5RWFjaCA6IGJhc2VGb3JPd24pKHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gYmFzZUNsb25lKHN1YlZhbHVlLCBpc0RlZXAsIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jcmVhdGVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXNzaWduaW5nXG4gICAgICogcHJvcGVydGllcyB0byB0aGUgY3JlYXRlZCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm90b3R5cGUgVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUNyZWF0ZSA9IChmdW5jdGlvbigpIHtcbiAgICAgIGZ1bmN0aW9uIE9iamVjdCgpIHt9XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocHJvdG90eXBlKSB7XG4gICAgICAgIGlmIChpc09iamVjdChwcm90b3R5cGUpKSB7XG4gICAgICAgICAgT2JqZWN0LnByb3RvdHlwZSA9IHByb3RvdHlwZTtcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IE9iamVjdDtcbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IGNvbnRleHQuT2JqZWN0KCk7XG4gICAgICB9O1xuICAgIH0oKSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5kZWxheWAgYW5kIGBfLmRlZmVyYCB3aGljaCBhY2NlcHRzIGFuIGluZGV4XG4gICAgICogb2Ygd2hlcmUgdG8gc2xpY2UgdGhlIGFyZ3VtZW50cyB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVsYXkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdhaXQgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkgaW52b2NhdGlvbi5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gYXJncyBUaGUgYXJndW1lbnRzIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VEZWxheShmdW5jLCB3YWl0LCBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpIHsgZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3MpOyB9LCB3YWl0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5kaWZmZXJlbmNlYCB3aGljaCBhY2NlcHRzIGEgc2luZ2xlIGFycmF5XG4gICAgICogb2YgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VEaWZmZXJlbmNlKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDAsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmRleE9mID0gZ2V0SW5kZXhPZigpLFxuICAgICAgICAgIGlzQ29tbW9uID0gaW5kZXhPZiA9PSBiYXNlSW5kZXhPZixcbiAgICAgICAgICBjYWNoZSA9IChpc0NvbW1vbiAmJiB2YWx1ZXMubGVuZ3RoID49IDIwMCkgPyBjcmVhdGVDYWNoZSh2YWx1ZXMpIDogbnVsbCxcbiAgICAgICAgICB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMubGVuZ3RoO1xuXG4gICAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgaW5kZXhPZiA9IGNhY2hlSW5kZXhPZjtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgdmFsdWVzID0gY2FjaGU7XG4gICAgICB9XG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICBpZiAoaXNDb21tb24gJiYgdmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHZhbHVlc0luZGV4ID0gdmFsdWVzTGVuZ3RoO1xuICAgICAgICAgIHdoaWxlICh2YWx1ZXNJbmRleC0tKSB7XG4gICAgICAgICAgICBpZiAodmFsdWVzW3ZhbHVlc0luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpbmRleE9mKHZhbHVlcywgdmFsdWUsIDApIDwgMCkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fHN0cmluZ30gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICovXG4gICAgdmFyIGJhc2VFYWNoID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93bik7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R8c3RyaW5nfSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUVhY2hSaWdodCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd25SaWdodCwgdHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5ldmVyeWAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFja1xuICAgICAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbGwgZWxlbWVudHMgcGFzcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRXZlcnkoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICByZXN1bHQgPSAhIXByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbGxgIHdpdGhvdXQgYW4gaXRlcmF0ZWUgY2FsbCBndWFyZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZpbGwuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZmlsbCBgYXJyYXlgIHdpdGguXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgc3RhcnQgPSBzdGFydCA9PSBudWxsID8gMCA6ICgrc3RhcnQgfHwgMCk7XG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IChsZW5ndGggKyBzdGFydCk7XG4gICAgICB9XG4gICAgICBlbmQgPSAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gbGVuZ3RoKSA/IGxlbmd0aCA6ICgrZW5kIHx8IDApO1xuICAgICAgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgZW5kICs9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGxlbmd0aCA9IHN0YXJ0ID4gZW5kID8gMCA6IChlbmQgPj4+IDApO1xuICAgICAgc3RhcnQgPj4+PSAwO1xuXG4gICAgICB3aGlsZSAoc3RhcnQgPCBsZW5ndGgpIHtcbiAgICAgICAgYXJyYXlbc3RhcnQrK10gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maWx0ZXJgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmlsdGVyKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbmRgLCBgXy5maW5kTGFzdGAsIGBfLmZpbmRLZXlgLCBhbmQgYF8uZmluZExhc3RLZXlgLFxuICAgICAqIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2sgc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcsIHdoaWNoIGl0ZXJhdGVzXG4gICAgICogb3ZlciBgY29sbGVjdGlvbmAgdXNpbmcgdGhlIHByb3ZpZGVkIGBlYWNoRnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzZWFyY2guXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBgY29sbGVjdGlvbmAuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmV0S2V5XSBTcGVjaWZ5IHJldHVybmluZyB0aGUga2V5IG9mIHRoZSBmb3VuZCBlbGVtZW50XG4gICAgICogIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmb3VuZCBlbGVtZW50IG9yIGl0cyBrZXksIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZpbmQoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBlYWNoRnVuYywgcmV0S2V5KSB7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmV0S2V5ID8ga2V5IDogdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmxhdHRlbmAgd2l0aCBhZGRlZCBzdXBwb3J0IGZvciByZXN0cmljdGluZ1xuICAgICAqIGZsYXR0ZW5pbmcgYW5kIHNwZWNpZnlpbmcgdGhlIHN0YXJ0IGluZGV4LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGZsYXR0ZW4uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNTdHJpY3RdIFJlc3RyaWN0IGZsYXR0ZW5pbmcgdG8gYXJyYXlzLWxpa2Ugb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZsYXR0ZW4oYXJyYXksIGlzRGVlcCwgaXNTdHJpY3QpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgIGlmIChpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKSAmJlxuICAgICAgICAgICAgKGlzU3RyaWN0IHx8IGlzQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICAgICAgICBpZiAoaXNEZWVwKSB7XG4gICAgICAgICAgICAvLyBSZWN1cnNpdmVseSBmbGF0dGVuIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICAgICAgdmFsdWUgPSBiYXNlRmxhdHRlbih2YWx1ZSwgaXNEZWVwLCBpc1N0cmljdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciB2YWxJbmRleCA9IC0xLFxuICAgICAgICAgICAgICB2YWxMZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG5cbiAgICAgICAgICB3aGlsZSAoKyt2YWxJbmRleCA8IHZhbExlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gdmFsdWVbdmFsSW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghaXNTdHJpY3QpIHtcbiAgICAgICAgICByZXN1bHRbKytyZXNJbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYmFzZUZvckluYCBhbmQgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzXG4gICAgICogb3ZlciBgb2JqZWN0YCBwcm9wZXJ0aWVzIHJldHVybmVkIGJ5IGBrZXlzRnVuY2AgaW52b2tpbmcgYGl0ZXJhdGVlYCBmb3JcbiAgICAgKiBlYWNoIHByb3BlcnR5LiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHlcbiAgICAgKiByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUZvciA9IGNyZWF0ZUJhc2VGb3IoKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmFzZUZvcmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBwcm9wZXJ0aWVzXG4gICAgICogaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIHZhciBiYXNlRm9yUmlnaHQgPSBjcmVhdGVCYXNlRm9yKHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9ySW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZvckluKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlRm9yKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGb3JPd24ob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duUmlnaHRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAgICAgKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZvck93blJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlRm9yUmlnaHQob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZnVuY3Rpb25zYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5IG9mXG4gICAgICogYG9iamVjdGAgZnVuY3Rpb24gcHJvcGVydHkgbmFtZXMgZmlsdGVyZWQgZnJvbSB0aG9zZSBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGZpbHRlci5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRnVuY3Rpb25zKG9iamVjdCwgcHJvcHMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihvYmplY3Rba2V5XSkpIHtcbiAgICAgICAgICByZXN1bHRbKytyZXNJbmRleF0gPSBrZXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldGAgd2l0aG91dCBzdXBwb3J0IGZvciBzdHJpbmcgcGF0aHNcbiAgICAgKiBhbmQgZGVmYXVsdCB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoS2V5XSBUaGUga2V5IHJlcHJlc2VudGF0aW9uIG9mIHBhdGguXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VHZXQob2JqZWN0LCBwYXRoLCBwYXRoS2V5KSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgICAgIGlmIChwYXRoS2V5ICE9PSB1bmRlZmluZWQgJiYgcGF0aEtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgcGF0aCA9IFtwYXRoS2V5XTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpW3BhdGhbaW5kZXhdXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0VxdWFsYCB3aXRob3V0IHN1cHBvcnQgZm9yIGB0aGlzYCBiaW5kaW5nXG4gICAgICogYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQl0gVHJhY2tzIHRyYXZlcnNlZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gICAgICAvLyBFeGl0IGVhcmx5IGZvciBpZGVudGljYWwgdmFsdWVzLlxuICAgICAgaWYgKHZhbHVlID09PSBvdGhlcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciB2YWxUeXBlID0gdHlwZW9mIHZhbHVlLFxuICAgICAgICAgIG90aFR5cGUgPSB0eXBlb2Ygb3RoZXI7XG5cbiAgICAgIC8vIEV4aXQgZWFybHkgZm9yIHVubGlrZSBwcmltaXRpdmUgdmFsdWVzLlxuICAgICAgaWYgKCh2YWxUeXBlICE9ICdmdW5jdGlvbicgJiYgdmFsVHlwZSAhPSAnb2JqZWN0JyAmJiBvdGhUeXBlICE9ICdmdW5jdGlvbicgJiYgb3RoVHlwZSAhPSAnb2JqZWN0JykgfHxcbiAgICAgICAgICB2YWx1ZSA9PSBudWxsIHx8IG90aGVyID09IG51bGwpIHtcbiAgICAgICAgLy8gUmV0dXJuIGBmYWxzZWAgdW5sZXNzIGJvdGggdmFsdWVzIGFyZSBgTmFOYC5cbiAgICAgICAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUlzRXF1YWxEZWVwKHZhbHVlLCBvdGhlciwgYmFzZUlzRXF1YWwsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gICAgICogZGVlcCBjb21wYXJpc29ucyBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGVuYWJsaW5nIG9iamVjdHMgd2l0aCBjaXJjdWxhclxuICAgICAqIHJlZmVyZW5jZXMgdG8gYmUgY29tcGFyZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0E9W11dIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0I9W11dIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc0VxdWFsRGVlcChvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gICAgICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICAgICAgb3RoSXNBcnIgPSBpc0FycmF5KG90aGVyKSxcbiAgICAgICAgICBvYmpUYWcgPSBhcnJheVRhZyxcbiAgICAgICAgICBvdGhUYWcgPSBhcnJheVRhZztcblxuICAgICAgaWYgKCFvYmpJc0Fycikge1xuICAgICAgICBvYmpUYWcgPSBvYmpUb1N0cmluZy5jYWxsKG9iamVjdCk7XG4gICAgICAgIGlmIChvYmpUYWcgPT0gYXJnc1RhZykge1xuICAgICAgICAgIG9ialRhZyA9IG9iamVjdFRhZztcbiAgICAgICAgfSBlbHNlIGlmIChvYmpUYWcgIT0gb2JqZWN0VGFnKSB7XG4gICAgICAgICAgb2JqSXNBcnIgPSBpc1R5cGVkQXJyYXkob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFvdGhJc0Fycikge1xuICAgICAgICBvdGhUYWcgPSBvYmpUb1N0cmluZy5jYWxsKG90aGVyKTtcbiAgICAgICAgaWYgKG90aFRhZyA9PSBhcmdzVGFnKSB7XG4gICAgICAgICAgb3RoVGFnID0gb2JqZWN0VGFnO1xuICAgICAgICB9IGVsc2UgaWYgKG90aFRhZyAhPSBvYmplY3RUYWcpIHtcbiAgICAgICAgICBvdGhJc0FyciA9IGlzVHlwZWRBcnJheShvdGhlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBvYmpJc09iaiA9IG9ialRhZyA9PSBvYmplY3RUYWcgJiYgIWlzSG9zdE9iamVjdChvYmplY3QpLFxuICAgICAgICAgIG90aElzT2JqID0gb3RoVGFnID09IG9iamVjdFRhZyAmJiAhaXNIb3N0T2JqZWN0KG90aGVyKSxcbiAgICAgICAgICBpc1NhbWVUYWcgPSBvYmpUYWcgPT0gb3RoVGFnO1xuXG4gICAgICBpZiAoaXNTYW1lVGFnICYmICEob2JqSXNBcnIgfHwgb2JqSXNPYmopKSB7XG4gICAgICAgIHJldHVybiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZyk7XG4gICAgICB9XG4gICAgICBpZiAoIWlzTG9vc2UpIHtcbiAgICAgICAgdmFyIHZhbFdyYXBwZWQgPSBvYmpJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ19fd3JhcHBlZF9fJyksXG4gICAgICAgICAgICBvdGhXcmFwcGVkID0gb3RoSXNPYmogJiYgaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwgJ19fd3JhcHBlZF9fJyk7XG5cbiAgICAgICAgaWYgKHZhbFdyYXBwZWQgfHwgb3RoV3JhcHBlZCkge1xuICAgICAgICAgIHJldHVybiBlcXVhbEZ1bmModmFsV3JhcHBlZCA/IG9iamVjdC52YWx1ZSgpIDogb2JqZWN0LCBvdGhXcmFwcGVkID8gb3RoZXIudmFsdWUoKSA6IG90aGVyLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaXNTYW1lVGFnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIEFzc3VtZSBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgIC8vIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGRldGVjdGluZyBjaXJjdWxhciByZWZlcmVuY2VzIHNlZSBodHRwczovL2VzNS5naXRodWIuaW8vI0pPLlxuICAgICAgc3RhY2tBIHx8IChzdGFja0EgPSBbXSk7XG4gICAgICBzdGFja0IgfHwgKHN0YWNrQiA9IFtdKTtcblxuICAgICAgdmFyIGxlbmd0aCA9IHN0YWNrQS5sZW5ndGg7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgaWYgKHN0YWNrQVtsZW5ndGhdID09IG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBzdGFja0JbbGVuZ3RoXSA9PSBvdGhlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQWRkIGBvYmplY3RgIGFuZCBgb3RoZXJgIHRvIHRoZSBzdGFjayBvZiB0cmF2ZXJzZWQgb2JqZWN0cy5cbiAgICAgIHN0YWNrQS5wdXNoKG9iamVjdCk7XG4gICAgICBzdGFja0IucHVzaChvdGhlcik7XG5cbiAgICAgIHZhciByZXN1bHQgPSAob2JqSXNBcnIgPyBlcXVhbEFycmF5cyA6IGVxdWFsT2JqZWN0cykob2JqZWN0LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG5cbiAgICAgIHN0YWNrQS5wb3AoKTtcbiAgICAgIHN0YWNrQi5wb3AoKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hdGNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gICAgICogc2hvcnRoYW5kcyBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBzb3VyY2UgcHJvcGVydHkgbmFtZXMgdG8gbWF0Y2guXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSBzb3VyY2UgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHN0cmljdENvbXBhcmVGbGFncyBTdHJpY3QgY29tcGFyaXNvbiBmbGFncyBmb3Igc291cmNlIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc01hdGNoKG9iamVjdCwgcHJvcHMsIHZhbHVlcywgc3RyaWN0Q29tcGFyZUZsYWdzLCBjdXN0b21pemVyKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICAgICAgbm9DdXN0b21pemVyID0gIWN1c3RvbWl6ZXI7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGlmICgobm9DdXN0b21pemVyICYmIHN0cmljdENvbXBhcmVGbGFnc1tpbmRleF0pXG4gICAgICAgICAgICAgID8gdmFsdWVzW2luZGV4XSAhPT0gb2JqZWN0W3Byb3BzW2luZGV4XV1cbiAgICAgICAgICAgICAgOiAhKHByb3BzW2luZGV4XSBpbiBvYmplY3QpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGluZGV4ID0gLTE7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdLFxuICAgICAgICAgICAgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICAgIHNyY1ZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgICAgICBpZiAobm9DdXN0b21pemVyICYmIHN0cmljdENvbXBhcmVGbGFnc1tpbmRleF0pIHtcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gb2JqVmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXkpIDogdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9ialZhbHVlLCBjdXN0b21pemVyLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hcGAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzXG4gICAgICogYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0WysraW5kZXhdID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgY29sbGVjdGlvbik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc2Agd2hpY2ggZG9lcyBub3QgY2xvbmUgYHNvdXJjZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU1hdGNoZXMoc291cmNlKSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSksXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gY29uc3RhbnQodHJ1ZSk7XG4gICAgICB9XG4gICAgICBpZiAobGVuZ3RoID09IDEpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzWzBdLFxuICAgICAgICAgICAgdmFsdWUgPSBzb3VyY2Vba2V5XTtcblxuICAgICAgICBpZiAoaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldID09PSB2YWx1ZSAmJiAodmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIG9iamVjdCkpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciB2YWx1ZXMgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgIHN0cmljdENvbXBhcmVGbGFncyA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YWx1ZSA9IHNvdXJjZVtwcm9wc1tsZW5ndGhdXTtcbiAgICAgICAgdmFsdWVzW2xlbmd0aF0gPSB2YWx1ZTtcbiAgICAgICAgc3RyaWN0Q29tcGFyZUZsYWdzW2xlbmd0aF0gPSBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgYmFzZUlzTWF0Y2godG9PYmplY3Qob2JqZWN0KSwgcHJvcHMsIHZhbHVlcywgc3RyaWN0Q29tcGFyZUZsYWdzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2VzIG5vdCB3aGljaCBkb2VzXG4gICAgICogbm90IGNsb25lIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHZhbHVlKSB7XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHBhdGgpLFxuICAgICAgICAgIGlzQ29tbW9uID0gaXNLZXkocGF0aCkgJiYgaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSxcbiAgICAgICAgICBwYXRoS2V5ID0gKHBhdGggKyAnJyk7XG5cbiAgICAgIHBhdGggPSB0b1BhdGgocGF0aCk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5ID0gcGF0aEtleTtcbiAgICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgICAgICAgaWYgKChpc0FyciB8fCAhaXNDb21tb24pICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgICBvYmplY3QgPSBwYXRoLmxlbmd0aCA9PSAxID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xuICAgICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrZXkgPSBsYXN0KHBhdGgpO1xuICAgICAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldID09PSB2YWx1ZVxuICAgICAgICAgID8gKHZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBvYmplY3QpKVxuICAgICAgICAgIDogYmFzZUlzRXF1YWwodmFsdWUsIG9iamVjdFtrZXldLCBudWxsLCB0cnVlKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWVyZ2VgIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmcsXG4gICAgICogbXVsdGlwbGUgc291cmNlcywgYW5kIGB0aGlzYCBiaW5kaW5nIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIG1lcmdpbmcgcHJvcGVydGllcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBPVtdXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0I9W11dIEFzc29jaWF0ZXMgdmFsdWVzIHdpdGggc291cmNlIGNvdW50ZXJwYXJ0cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplciwgc3RhY2tBLCBzdGFja0IpIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgICAgdmFyIGlzU3JjQXJyID0gaXNBcnJheUxpa2Uoc291cmNlKSAmJiAoaXNBcnJheShzb3VyY2UpIHx8IGlzVHlwZWRBcnJheShzb3VyY2UpKTtcbiAgICAgIGlmICghaXNTcmNBcnIpIHtcbiAgICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpO1xuICAgICAgICBwdXNoLmFwcGx5KHByb3BzLCBnZXRTeW1ib2xzKHNvdXJjZSkpO1xuICAgICAgfVxuICAgICAgYXJyYXlFYWNoKHByb3BzIHx8IHNvdXJjZSwgZnVuY3Rpb24oc3JjVmFsdWUsIGtleSkge1xuICAgICAgICBpZiAocHJvcHMpIHtcbiAgICAgICAgICBrZXkgPSBzcmNWYWx1ZTtcbiAgICAgICAgICBzcmNWYWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc09iamVjdExpa2Uoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgc3RhY2tBIHx8IChzdGFja0EgPSBbXSk7XG4gICAgICAgICAgc3RhY2tCIHx8IChzdGFja0IgPSBbXSk7XG4gICAgICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBiYXNlTWVyZ2UsIGN1c3RvbWl6ZXIsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICAgICAgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIodmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgaXNDb21tb24gPSByZXN1bHQgPT09IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGlmIChpc0NvbW1vbikge1xuICAgICAgICAgICAgcmVzdWx0ID0gc3JjVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgoaXNTcmNBcnIgfHwgcmVzdWx0ICE9PSB1bmRlZmluZWQpICYmXG4gICAgICAgICAgICAgIChpc0NvbW1vbiB8fCAocmVzdWx0ID09PSByZXN1bHQgPyAocmVzdWx0ICE9PSB2YWx1ZSkgOiAodmFsdWUgPT09IHZhbHVlKSkpKSB7XG4gICAgICAgICAgICBvYmplY3Rba2V5XSA9IHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VNZXJnZWAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xuICAgICAqIGRlZXAgbWVyZ2VzIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gICAgICogcmVmZXJlbmNlcyB0byBiZSBtZXJnZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gbWVyZ2UuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGdW5jIFRoZSBmdW5jdGlvbiB0byBtZXJnZSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgbWVyZ2luZyBwcm9wZXJ0aWVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0E9W11dIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQj1bXV0gQXNzb2NpYXRlcyB2YWx1ZXMgd2l0aCBzb3VyY2UgY291bnRlcnBhcnRzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNZXJnZURlZXAob2JqZWN0LCBzb3VyY2UsIGtleSwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFja0EsIHN0YWNrQikge1xuICAgICAgdmFyIGxlbmd0aCA9IHN0YWNrQS5sZW5ndGgsXG4gICAgICAgICAgc3JjVmFsdWUgPSBzb3VyY2Vba2V5XTtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGlmIChzdGFja0FbbGVuZ3RoXSA9PSBzcmNWYWx1ZSkge1xuICAgICAgICAgIG9iamVjdFtrZXldID0gc3RhY2tCW2xlbmd0aF07XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICByZXN1bHQgPSBjdXN0b21pemVyID8gY3VzdG9taXplcih2YWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGlzQ29tbW9uID0gcmVzdWx0ID09PSB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChpc0NvbW1vbikge1xuICAgICAgICByZXN1bHQgPSBzcmNWYWx1ZTtcbiAgICAgICAgaWYgKGlzQXJyYXlMaWtlKHNyY1ZhbHVlKSAmJiAoaXNBcnJheShzcmNWYWx1ZSkgfHwgaXNUeXBlZEFycmF5KHNyY1ZhbHVlKSkpIHtcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgOiAoaXNBcnJheUxpa2UodmFsdWUpID8gYXJyYXlDb3B5KHZhbHVlKSA6IFtdKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHNyY1ZhbHVlKSB8fCBpc0FyZ3VtZW50cyhzcmNWYWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHQgPSBpc0FyZ3VtZW50cyh2YWx1ZSlcbiAgICAgICAgICAgID8gdG9QbGFpbk9iamVjdCh2YWx1ZSlcbiAgICAgICAgICAgIDogKGlzUGxhaW5PYmplY3QodmFsdWUpID8gdmFsdWUgOiB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQWRkIHRoZSBzb3VyY2UgdmFsdWUgdG8gdGhlIHN0YWNrIG9mIHRyYXZlcnNlZCBvYmplY3RzIGFuZCBhc3NvY2lhdGVcbiAgICAgIC8vIGl0IHdpdGggaXRzIG1lcmdlZCB2YWx1ZS5cbiAgICAgIHN0YWNrQS5wdXNoKHNyY1ZhbHVlKTtcbiAgICAgIHN0YWNrQi5wdXNoKHJlc3VsdCk7XG5cbiAgICAgIGlmIChpc0NvbW1vbikge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIGFuZCBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgb2JqZWN0W2tleV0gPSBtZXJnZUZ1bmMocmVzdWx0LCBzcmNWYWx1ZSwgY3VzdG9taXplciwgc3RhY2tBLCBzdGFja0IpO1xuICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IHJlc3VsdCA/IChyZXN1bHQgIT09IHZhbHVlKSA6ICh2YWx1ZSA9PT0gdmFsdWUpKSB7XG4gICAgICAgIG9iamVjdFtrZXldID0gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnByb3BlcnR5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQcm9wZXJ0eShrZXkpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogdG9PYmplY3Qob2JqZWN0KVtrZXldO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VQcm9wZXJ0eWAgd2hpY2ggc3VwcG9ydHMgZGVlcCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpIHtcbiAgICAgIHZhciBwYXRoS2V5ID0gKHBhdGggKyAnJyk7XG4gICAgICBwYXRoID0gdG9QYXRoKHBhdGgpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICByZXR1cm4gYmFzZUdldChvYmplY3QsIHBhdGgsIHBhdGhLZXkpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wdWxsQXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICAgICAqIGluZGV4IGFyZ3VtZW50cyBhbmQgY2FwdHVyaW5nIHRoZSByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyW119IGluZGV4ZXMgVGhlIGluZGV4ZXMgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGluZGV4ZXMubGVuZ3RoIDogMDtcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgaW5kZXggPSBwYXJzZUZsb2F0KGluZGV4ZXNbbGVuZ3RoXSk7XG4gICAgICAgIGlmIChpbmRleCAhPSBwcmV2aW91cyAmJiBpc0luZGV4KGluZGV4KSkge1xuICAgICAgICAgIHZhciBwcmV2aW91cyA9IGluZGV4O1xuICAgICAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yYW5kb21gIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmdcbiAgICAgKiBhbmQgcmV0dXJuaW5nIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaW4gVGhlIG1pbmltdW0gcG9zc2libGUgdmFsdWUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1heCBUaGUgbWF4aW11bSBwb3NzaWJsZSB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByYW5kb20gbnVtYmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSYW5kb20obWluLCBtYXgpIHtcbiAgICAgIHJldHVybiBtaW4gKyBmbG9vcihuYXRpdmVSYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVkdWNlYCBhbmQgYF8ucmVkdWNlUmlnaHRgIHdpdGhvdXQgc3VwcG9ydFxuICAgICAqIGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmBcbiAgICAgKiB1c2luZyB0aGUgcHJvdmlkZWQgYGVhY2hGdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gYWNjdW11bGF0b3IgVGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBpbml0RnJvbUNvbGxlY3Rpb24gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3Qgb3IgbGFzdCBlbGVtZW50XG4gICAgICogIG9mIGBjb2xsZWN0aW9uYCBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVJlZHVjZShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRGcm9tQ29sbGVjdGlvbiwgZWFjaEZ1bmMpIHtcbiAgICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICBhY2N1bXVsYXRvciA9IGluaXRGcm9tQ29sbGVjdGlvblxuICAgICAgICAgID8gKGluaXRGcm9tQ29sbGVjdGlvbiA9IGZhbHNlLCB2YWx1ZSlcbiAgICAgICAgICA6IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldERhdGFgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3AgZGV0ZWN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhc3NvY2lhdGUgbWV0YWRhdGEgd2l0aC5cbiAgICAgKiBAcGFyYW0geyp9IGRhdGEgVGhlIG1ldGFkYXRhLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gICAgICovXG4gICAgdmFyIGJhc2VTZXREYXRhID0gIW1ldGFNYXAgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIGRhdGEpIHtcbiAgICAgIG1ldGFNYXAuc2V0KGZ1bmMsIGRhdGEpO1xuICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNsaWNlYCB3aXRob3V0IGFuIGl0ZXJhdGVlIGNhbGwgZ3VhcmQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzbGljZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogKCtzdGFydCB8fCAwKTtcbiAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogKGxlbmd0aCArIHN0YXJ0KTtcbiAgICAgIH1cbiAgICAgIGVuZCA9IChlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPiBsZW5ndGgpID8gbGVuZ3RoIDogKCtlbmQgfHwgMCk7XG4gICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICBlbmQgKz0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogKChlbmQgLSBzdGFydCkgPj4+IDApO1xuICAgICAgc3RhcnQgPj4+PSAwO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBhcnJheVtpbmRleCArIHN0YXJ0XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29tZWAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzXG4gICAgICogYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb21lKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdDtcblxuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJlc3VsdCA9IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICByZXR1cm4gIXJlc3VsdDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICEhcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeWAgd2hpY2ggdXNlcyBgY29tcGFyZXJgIHRvIGRlZmluZVxuICAgICAqIHRoZSBzb3J0IG9yZGVyIG9mIGBhcnJheWAgYW5kIHJlcGxhY2VzIGNyaXRlcmlhIG9iamVjdHMgd2l0aCB0aGVpclxuICAgICAqIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc29ydC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJlciBUaGUgZnVuY3Rpb24gdG8gZGVmaW5lIHNvcnQgb3JkZXIuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIGFycmF5LnNvcnQoY29tcGFyZXIpO1xuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGFycmF5W2xlbmd0aF0gPSBhcnJheVtsZW5ndGhdLnZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeU9yZGVyYCB3aXRob3V0IHBhcmFtIGd1YXJkcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IGl0ZXJhdGVlcyBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gICAgICogQHBhcmFtIHtib29sZWFuW119IG9yZGVycyBUaGUgc29ydCBvcmRlcnMgb2YgYGl0ZXJhdGVlc2AuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb3J0QnlPcmRlcihjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycykge1xuICAgICAgdmFyIGNhbGxiYWNrID0gZ2V0Q2FsbGJhY2soKSxcbiAgICAgICAgICBpbmRleCA9IC0xO1xuXG4gICAgICBpdGVyYXRlZXMgPSBhcnJheU1hcChpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlKSB7IHJldHVybiBjYWxsYmFjayhpdGVyYXRlZSk7IH0pO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZU1hcChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICB2YXIgY3JpdGVyaWEgPSBhcnJheU1hcChpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlKSB7IHJldHVybiBpdGVyYXRlZSh2YWx1ZSk7IH0pO1xuICAgICAgICByZXR1cm4geyAnY3JpdGVyaWEnOiBjcml0ZXJpYSwgJ2luZGV4JzogKytpbmRleCwgJ3ZhbHVlJzogdmFsdWUgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYmFzZVNvcnRCeShyZXN1bHQsIGZ1bmN0aW9uKG9iamVjdCwgb3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVNdWx0aXBsZShvYmplY3QsIG90aGVyLCBvcmRlcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc3VtYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrIHNob3J0aGFuZHNcbiAgICAgKiBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVN1bShjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IDA7XG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0ICs9ICtpdGVyYXRlZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHx8IDA7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5pcWAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzXG4gICAgICogYW5kIGB0aGlzYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlLXZhbHVlLWZyZWUgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVVuaXEoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmRleE9mID0gZ2V0SW5kZXhPZigpLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICBpc0NvbW1vbiA9IGluZGV4T2YgPT0gYmFzZUluZGV4T2YsXG4gICAgICAgICAgaXNMYXJnZSA9IGlzQ29tbW9uICYmIGxlbmd0aCA+PSAyMDAsXG4gICAgICAgICAgc2VlbiA9IGlzTGFyZ2UgPyBjcmVhdGVDYWNoZSgpIDogbnVsbCxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgaW5kZXhPZiA9IGNhY2hlSW5kZXhPZjtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzTGFyZ2UgPSBmYWxzZTtcbiAgICAgICAgc2VlbiA9IGl0ZXJhdGVlID8gW10gOiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSA6IHZhbHVlO1xuXG4gICAgICAgIGlmIChpc0NvbW1vbiAmJiB2YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICB2YXIgc2VlbkluZGV4ID0gc2Vlbi5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKHNlZW5JbmRleC0tKSB7XG4gICAgICAgICAgICBpZiAoc2VlbltzZWVuSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKSB7XG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaW5kZXhPZihzZWVuLCBjb21wdXRlZCwgMCkgPCAwKSB7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlIHx8IGlzTGFyZ2UpIHtcbiAgICAgICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy52YWx1ZXNgIGFuZCBgXy52YWx1ZXNJbmAgd2hpY2ggY3JlYXRlcyBhblxuICAgICAqIGFycmF5IG9mIGBvYmplY3RgIHByb3BlcnR5IHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcm9wZXJ0eSBuYW1lc1xuICAgICAqIG9mIGBwcm9wc2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VWYWx1ZXMob2JqZWN0LCBwcm9wcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBvYmplY3RbcHJvcHNbaW5kZXhdXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZHJvcFJpZ2h0V2hpbGVgLCBgXy5kcm9wV2hpbGVgLCBgXy50YWtlUmlnaHRXaGlsZWAsXG4gICAgICogYW5kIGBfLnRha2VXaGlsZWAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRHJvcF0gU3BlY2lmeSBkcm9wcGluZyBlbGVtZW50cyBpbnN0ZWFkIG9mIHRha2luZyB0aGVtLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlV2hpbGUoYXJyYXksIHByZWRpY2F0ZSwgaXNEcm9wLCBmcm9tUmlnaHQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMTtcblxuICAgICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkgJiYgcHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge31cbiAgICAgIHJldHVybiBpc0Ryb3BcbiAgICAgICAgPyBiYXNlU2xpY2UoYXJyYXksIChmcm9tUmlnaHQgPyAwIDogaW5kZXgpLCAoZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogbGVuZ3RoKSlcbiAgICAgICAgOiBiYXNlU2xpY2UoYXJyYXksIChmcm9tUmlnaHQgPyBpbmRleCArIDEgOiAwKSwgKGZyb21SaWdodCA/IGxlbmd0aCA6IGluZGV4KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHdyYXBwZXJWYWx1ZWAgd2hpY2ggcmV0dXJucyB0aGUgcmVzdWx0IG9mXG4gICAgICogcGVyZm9ybWluZyBhIHNlcXVlbmNlIG9mIGFjdGlvbnMgb24gdGhlIHVud3JhcHBlZCBgdmFsdWVgLCB3aGVyZSBlYWNoXG4gICAgICogc3VjY2Vzc2l2ZSBhY3Rpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhY3Rpb25zIEFjdGlvbnMgdG8gcGVmb3JtIHRvIHJlc29sdmUgdGhlIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVdyYXBwZXJWYWx1ZSh2YWx1ZSwgYWN0aW9ucykge1xuICAgICAgdmFyIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC52YWx1ZSgpO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYWN0aW9ucy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW3Jlc3VsdF0sXG4gICAgICAgICAgICBhY3Rpb24gPSBhY3Rpb25zW2luZGV4XTtcblxuICAgICAgICBwdXNoLmFwcGx5KGFyZ3MsIGFjdGlvbi5hcmdzKTtcbiAgICAgICAgcmVzdWx0ID0gYWN0aW9uLmZ1bmMuYXBwbHkoYWN0aW9uLnRoaXNBcmcsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIGJpbmFyeSBzZWFyY2ggb2YgYGFycmF5YCB0byBkZXRlcm1pbmUgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWBcbiAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBgYXJyYXlgIGluIG9yZGVyIHRvIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmV0SGlnaGVzdF0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGhpZ2hlc3QgcXVhbGlmaWVkIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiaW5hcnlJbmRleChhcnJheSwgdmFsdWUsIHJldEhpZ2hlc3QpIHtcbiAgICAgIHZhciBsb3cgPSAwLFxuICAgICAgICAgIGhpZ2ggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IGxvdztcblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJiB2YWx1ZSA9PT0gdmFsdWUgJiYgaGlnaCA8PSBIQUxGX01BWF9BUlJBWV9MRU5HVEgpIHtcbiAgICAgICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgICAgICB2YXIgbWlkID0gKGxvdyArIGhpZ2gpID4+PiAxLFxuICAgICAgICAgICAgICBjb21wdXRlZCA9IGFycmF5W21pZF07XG5cbiAgICAgICAgICBpZiAocmV0SGlnaGVzdCA/IChjb21wdXRlZCA8PSB2YWx1ZSkgOiAoY29tcHV0ZWQgPCB2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoaWdoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJpbmFyeUluZGV4QnkoYXJyYXksIHZhbHVlLCBpZGVudGl0eSwgcmV0SGlnaGVzdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBiaW5hcnlJbmRleGAgZXhjZXB0IHRoYXQgaXQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvclxuICAgICAqIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGUgdGhlaXIgc29ydCByYW5raW5nLiBUaGVcbiAgICAgKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJpbmFyeUluZGV4QnkoYXJyYXksIHZhbHVlLCBpdGVyYXRlZSwgcmV0SGlnaGVzdCkge1xuICAgICAgdmFsdWUgPSBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICAgIHZhciBsb3cgPSAwLFxuICAgICAgICAgIGhpZ2ggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDAsXG4gICAgICAgICAgdmFsSXNOYU4gPSB2YWx1ZSAhPT0gdmFsdWUsXG4gICAgICAgICAgdmFsSXNVbmRlZiA9IHZhbHVlID09PSB1bmRlZmluZWQ7XG5cbiAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgIHZhciBtaWQgPSBmbG9vcigobG93ICsgaGlnaCkgLyAyKSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUoYXJyYXlbbWlkXSksXG4gICAgICAgICAgICBpc1JlZmxleGl2ZSA9IGNvbXB1dGVkID09PSBjb21wdXRlZDtcblxuICAgICAgICBpZiAodmFsSXNOYU4pIHtcbiAgICAgICAgICB2YXIgc2V0TG93ID0gaXNSZWZsZXhpdmUgfHwgcmV0SGlnaGVzdDtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxJc1VuZGVmKSB7XG4gICAgICAgICAgc2V0TG93ID0gaXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgY29tcHV0ZWQgIT09IHVuZGVmaW5lZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0TG93ID0gcmV0SGlnaGVzdCA/IChjb21wdXRlZCA8PSB2YWx1ZSkgOiAoY29tcHV0ZWQgPCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNldExvdykge1xuICAgICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5hdGl2ZU1pbihoaWdoLCBNQVhfQVJSQVlfSU5ERVgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUNhbGxiYWNrYCB3aGljaCBvbmx5IHN1cHBvcnRzIGB0aGlzYCBiaW5kaW5nXG4gICAgICogYW5kIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gICAgICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdDb3VudF0gVGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiaW5kQ2FsbGJhY2soZnVuYywgdGhpc0FyZywgYXJnQ291bnQpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzQXJnID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGFyZ0NvdW50KSB7XG4gICAgICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCB2YWx1ZSk7XG4gICAgICAgIH07XG4gICAgICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgICAgICAgfTtcbiAgICAgICAgY2FzZSA0OiByZXR1cm4gZnVuY3Rpb24oYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgICAgIH07XG4gICAgICAgIGNhc2UgNTogcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvdGhlciwga2V5LCBvYmplY3QsIHNvdXJjZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUsIG90aGVyLCBrZXksIG9iamVjdCwgc291cmNlKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBnaXZlbiBhcnJheSBidWZmZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGJ1ZmZlciBUaGUgYXJyYXkgYnVmZmVyIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBidWZmZXJDbG9uZShidWZmZXIpIHtcbiAgICAgIHJldHVybiBidWZmZXJTbGljZS5jYWxsKGJ1ZmZlciwgMCk7XG4gICAgfVxuICAgIGlmICghYnVmZmVyU2xpY2UpIHtcbiAgICAgIC8vIFBoYW50b21KUyBoYXMgYEFycmF5QnVmZmVyYCBhbmQgYFVpbnQ4QXJyYXlgIGJ1dCBub3QgYEZsb2F0NjRBcnJheWAuXG4gICAgICBidWZmZXJDbG9uZSA9ICEoQXJyYXlCdWZmZXIgJiYgVWludDhBcnJheSkgPyBjb25zdGFudChudWxsKSA6IGZ1bmN0aW9uKGJ1ZmZlcikge1xuICAgICAgICB2YXIgYnl0ZUxlbmd0aCA9IGJ1ZmZlci5ieXRlTGVuZ3RoLFxuICAgICAgICAgICAgZmxvYXRMZW5ndGggPSBGbG9hdDY0QXJyYXkgPyBmbG9vcihieXRlTGVuZ3RoIC8gRkxPQVQ2NF9CWVRFU19QRVJfRUxFTUVOVCkgOiAwLFxuICAgICAgICAgICAgb2Zmc2V0ID0gZmxvYXRMZW5ndGggKiBGTE9BVDY0X0JZVEVTX1BFUl9FTEVNRU5ULFxuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVMZW5ndGgpO1xuXG4gICAgICAgIGlmIChmbG9hdExlbmd0aCkge1xuICAgICAgICAgIHZhciB2aWV3ID0gbmV3IEZsb2F0NjRBcnJheShyZXN1bHQsIDAsIGZsb2F0TGVuZ3RoKTtcbiAgICAgICAgICB2aWV3LnNldChuZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlciwgMCwgZmxvYXRMZW5ndGgpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYnl0ZUxlbmd0aCAhPSBvZmZzZXQpIHtcbiAgICAgICAgICB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkocmVzdWx0LCBvZmZzZXQpO1xuICAgICAgICAgIHZpZXcuc2V0KG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgb2Zmc2V0KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSB0aGF0IGlzIHRoZSBjb21wb3NpdGlvbiBvZiBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMsXG4gICAgICogcGxhY2Vob2xkZXJzLCBhbmQgcHJvdmlkZWQgYXJndW1lbnRzIGludG8gYSBzaW5nbGUgYXJyYXkgb2YgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tcG9zZWQgYXJndW1lbnRzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKSB7XG4gICAgICB2YXIgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgICAgIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgIGFyZ3NMZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBob2xkZXJzTGVuZ3RoLCAwKSxcbiAgICAgICAgICBsZWZ0SW5kZXggPSAtMSxcbiAgICAgICAgICBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGFyZ3NMZW5ndGggKyBsZWZ0TGVuZ3RoKTtcblxuICAgICAgd2hpbGUgKCsrbGVmdEluZGV4IDwgbGVmdExlbmd0aCkge1xuICAgICAgICByZXN1bHRbbGVmdEluZGV4XSA9IHBhcnRpYWxzW2xlZnRJbmRleF07XG4gICAgICB9XG4gICAgICB3aGlsZSAoKythcmdzSW5kZXggPCBob2xkZXJzTGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtob2xkZXJzW2FyZ3NJbmRleF1dID0gYXJnc1thcmdzSW5kZXhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKGFyZ3NMZW5ndGgtLSkge1xuICAgICAgICByZXN1bHRbbGVmdEluZGV4KytdID0gYXJnc1thcmdzSW5kZXgrK107XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgY29tcG9zZUFyZ3NgIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgY29tcG9zaXRpb25cbiAgICAgKiBpcyB0YWlsb3JlZCBmb3IgYF8ucGFydGlhbFJpZ2h0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGFyZ3MgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tcG9zZWQgYXJndW1lbnRzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHMsIGhvbGRlcnMpIHtcbiAgICAgIHZhciBob2xkZXJzSW5kZXggPSAtMSxcbiAgICAgICAgICBob2xkZXJzTGVuZ3RoID0gaG9sZGVycy5sZW5ndGgsXG4gICAgICAgICAgYXJnc0luZGV4ID0gLTEsXG4gICAgICAgICAgYXJnc0xlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIGhvbGRlcnNMZW5ndGgsIDApLFxuICAgICAgICAgIHJpZ2h0SW5kZXggPSAtMSxcbiAgICAgICAgICByaWdodExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShhcmdzTGVuZ3RoICsgcmlnaHRMZW5ndGgpO1xuXG4gICAgICB3aGlsZSAoKythcmdzSW5kZXggPCBhcmdzTGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFthcmdzSW5kZXhdID0gYXJnc1thcmdzSW5kZXhdO1xuICAgICAgfVxuICAgICAgdmFyIG9mZnNldCA9IGFyZ3NJbmRleDtcbiAgICAgIHdoaWxlICgrK3JpZ2h0SW5kZXggPCByaWdodExlbmd0aCkge1xuICAgICAgICByZXN1bHRbb2Zmc2V0ICsgcmlnaHRJbmRleF0gPSBwYXJ0aWFsc1tyaWdodEluZGV4XTtcbiAgICAgIH1cbiAgICAgIHdoaWxlICgrK2hvbGRlcnNJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W29mZnNldCArIGhvbGRlcnNbaG9sZGVyc0luZGV4XV0gPSBhcmdzW2FyZ3NJbmRleCsrXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYWdncmVnYXRlcyBhIGNvbGxlY3Rpb24sIGNyZWF0aW5nIGFuIGFjY3VtdWxhdG9yXG4gICAgICogb2JqZWN0IGNvbXBvc2VkIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICAgKiB0aHJvdWdoIGFuIGl0ZXJhdGVlLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgYF8uY291bnRCeWAsIGBfLmdyb3VwQnlgLCBgXy5pbmRleEJ5YCxcbiAgICAgKiBhbmQgYF8ucGFydGl0aW9uYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc2V0dGVyIFRoZSBmdW5jdGlvbiB0byBzZXQga2V5cyBhbmQgdmFsdWVzIG9mIHRoZSBhY2N1bXVsYXRvciBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2luaXRpYWxpemVyXSBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgYWNjdW11bGF0b3Igb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFnZ3JlZ2F0b3IgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQWdncmVnYXRvcihzZXR0ZXIsIGluaXRpYWxpemVyKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGluaXRpYWxpemVyID8gaW5pdGlhbGl6ZXIoKSA6IHt9O1xuICAgICAgICBpdGVyYXRlZSA9IGdldENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcblxuICAgICAgICBpZiAoaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgICAgICBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aDtcblxuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBjb2xsZWN0aW9uW2luZGV4XTtcbiAgICAgICAgICAgIHNldHRlcihyZXN1bHQsIHZhbHVlLCBpdGVyYXRlZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pLCBjb2xsZWN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgICAgICAgICAgc2V0dGVyKHJlc3VsdCwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pLCBjb2xsZWN0aW9uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBhc3NpZ25zIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdChzKSB0byBhIGdpdmVuXG4gICAgICogZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgYF8uYXNzaWduYCwgYF8uZGVmYXVsdHNgLCBhbmQgYF8ubWVyZ2VgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhc3NpZ25lciBUaGUgZnVuY3Rpb24gdG8gYXNzaWduIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVBc3NpZ25lcihhc3NpZ25lcikge1xuICAgICAgcmV0dXJuIHJlc3RQYXJhbShmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZW5ndGggPSBvYmplY3QgPT0gbnVsbCA/IDAgOiBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPiAyICYmIHNvdXJjZXNbbGVuZ3RoIC0gMl0sXG4gICAgICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgJiYgc291cmNlc1syXSxcbiAgICAgICAgICAgIHRoaXNBcmcgPSBsZW5ndGggPiAxICYmIHNvdXJjZXNbbGVuZ3RoIC0gMV07XG5cbiAgICAgICAgaWYgKHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gYmluZENhbGxiYWNrKGN1c3RvbWl6ZXIsIHRoaXNBcmcsIDUpO1xuICAgICAgICAgIGxlbmd0aCAtPSAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgdGhpc0FyZyA9PSAnZnVuY3Rpb24nID8gdGhpc0FyZyA6IG51bGw7XG4gICAgICAgICAgbGVuZ3RoIC09IChjdXN0b21pemVyID8gMSA6IDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoIDwgMyA/IG51bGwgOiBjdXN0b21pemVyO1xuICAgICAgICAgIGxlbmd0aCA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBiYXNlRWFjaGAgb3IgYGJhc2VFYWNoUmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbiA/IGdldExlbmd0aChjb2xsZWN0aW9uKSA6IDA7XG4gICAgICAgIGlmICghaXNMZW5ndGgobGVuZ3RoKSkge1xuICAgICAgICAgIHJldHVybiBlYWNoRnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsXG4gICAgICAgICAgICBpdGVyYWJsZSA9IHRvT2JqZWN0KGNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2luZGV4XSwgaW5kZXgsIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGJhc2UgZnVuY3Rpb24gZm9yIGBfLmZvckluYCBvciBgXy5mb3JJblJpZ2h0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRm9yKGZyb21SaWdodCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNGdW5jKSB7XG4gICAgICAgIHZhciBpdGVyYWJsZSA9IHRvT2JqZWN0KG9iamVjdCksXG4gICAgICAgICAgICBwcm9wcyA9IGtleXNGdW5jKG9iamVjdCksXG4gICAgICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xO1xuXG4gICAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICAgICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggdGhlIGB0aGlzYFxuICAgICAqIGJpbmRpbmcgb2YgYHRoaXNBcmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBiaW5kLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQmluZFdyYXBwZXIoZnVuYywgdGhpc0FyZykge1xuICAgICAgdmFyIEN0b3IgPSBjcmVhdGVDdG9yV3JhcHBlcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNBcmcsIGFyZ3VtZW50cyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYFNldGAgY2FjaGUgb2JqZWN0IHRvIG9wdGltaXplIGxpbmVhciBzZWFyY2hlcyBvZiBsYXJnZSBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gY2FjaGUuXG4gICAgICogQHJldHVybnMge251bGx8T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgY2FjaGUgb2JqZWN0IGlmIGBTZXRgIGlzIHN1cHBvcnRlZCwgZWxzZSBgbnVsbGAuXG4gICAgICovXG4gICAgdmFyIGNyZWF0ZUNhY2hlID0gIShuYXRpdmVDcmVhdGUgJiYgU2V0KSA/IGNvbnN0YW50KG51bGwpIDogZnVuY3Rpb24odmFsdWVzKSB7XG4gICAgICByZXR1cm4gbmV3IFNldENhY2hlKHZhbHVlcyk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGNvbXBvdW5kIHdvcmRzIG91dCBvZiB0aGUgd29yZHMgaW4gYVxuICAgICAqIGdpdmVuIHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmUgZWFjaCB3b3JkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvdW5kZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ29tcG91bmRlcihjYWxsYmFjaykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGFycmF5ID0gd29yZHMoZGVidXJyKHN0cmluZykpLFxuICAgICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgICAgcmVzdWx0ID0gJyc7XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICByZXN1bHQgPSBjYWxsYmFjayhyZXN1bHQsIGFycmF5W2luZGV4XSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGFuIGluc3RhbmNlIG9mIGBDdG9yYCByZWdhcmRsZXNzIG9mXG4gICAgICogd2hldGhlciBpdCB3YXMgaW52b2tlZCBhcyBwYXJ0IG9mIGEgYG5ld2AgZXhwcmVzc2lvbiBvciBieSBgY2FsbGAgb3IgYGFwcGx5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gQ3RvciBUaGUgY29uc3RydWN0b3IgdG8gd3JhcC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUN0b3JXcmFwcGVyKEN0b3IpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHRoaXNCaW5kaW5nID0gYmFzZUNyZWF0ZShDdG9yLnByb3RvdHlwZSksXG4gICAgICAgICAgICByZXN1bHQgPSBDdG9yLmFwcGx5KHRoaXNCaW5kaW5nLCBhcmd1bWVudHMpO1xuXG4gICAgICAgIC8vIE1pbWljIHRoZSBjb25zdHJ1Y3RvcidzIGByZXR1cm5gIGJlaGF2aW9yLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyN4MTMuMi4yIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgIHJldHVybiBpc09iamVjdChyZXN1bHQpID8gcmVzdWx0IDogdGhpc0JpbmRpbmc7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgXy5jdXJyeWAgb3IgYF8uY3VycnlSaWdodGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZmxhZyBUaGUgY3VycnkgYml0IGZsYWcuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycnkgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ3VycnkoZmxhZykge1xuICAgICAgZnVuY3Rpb24gY3VycnlGdW5jKGZ1bmMsIGFyaXR5LCBndWFyZCkge1xuICAgICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoZnVuYywgYXJpdHksIGd1YXJkKSkge1xuICAgICAgICAgIGFyaXR5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVzdWx0ID0gY3JlYXRlV3JhcHBlcihmdW5jLCBmbGFnLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBhcml0eSk7XG4gICAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IGN1cnJ5RnVuYy5wbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyeUZ1bmM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLm1heGAgb3IgYF8ubWluYCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXJyYXlGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGV4dHJlbXVtIHZhbHVlIGZyb20gYW4gYXJyYXkuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNNaW5dIFNwZWNpZnkgcmV0dXJuaW5nIHRoZSBtaW5pbXVtLCBpbnN0ZWFkIG9mIHRoZSBtYXhpbXVtLFxuICAgICAqICBleHRyZW11bSB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBleHRyZW11bSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVFeHRyZW11bShhcnJheUZ1bmMsIGlzTWluKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgICAgaWYgKHRoaXNBcmcgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpKSB7XG4gICAgICAgICAgaXRlcmF0ZWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmdW5jID0gZ2V0Q2FsbGJhY2soKSxcbiAgICAgICAgICAgIG5vSXRlcmF0ZWUgPSBpdGVyYXRlZSA9PSBudWxsO1xuXG4gICAgICAgIGlmICghKGZ1bmMgPT09IGJhc2VDYWxsYmFjayAmJiBub0l0ZXJhdGVlKSkge1xuICAgICAgICAgIG5vSXRlcmF0ZWUgPSBmYWxzZTtcbiAgICAgICAgICBpdGVyYXRlZSA9IGZ1bmMoaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub0l0ZXJhdGVlKSB7XG4gICAgICAgICAgdmFyIGlzQXJyID0gaXNBcnJheShjb2xsZWN0aW9uKTtcbiAgICAgICAgICBpZiAoIWlzQXJyICYmIGlzU3RyaW5nKGNvbGxlY3Rpb24pKSB7XG4gICAgICAgICAgICBpdGVyYXRlZSA9IGNoYXJBdENhbGxiYWNrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyYXlGdW5jKGlzQXJyID8gY29sbGVjdGlvbiA6IHRvSXRlcmFibGUoY29sbGVjdGlvbikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXh0cmVtdW1CeShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgaXNNaW4pO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmluZGAgb3IgYF8uZmluZExhc3RgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmaW5kIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpbmQoZWFjaEZ1bmMsIGZyb21SaWdodCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgICBpZiAoaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHZhciBpbmRleCA9IGJhc2VGaW5kSW5kZXgoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tUmlnaHQpO1xuICAgICAgICAgIHJldHVybiBpbmRleCA+IC0xID8gY29sbGVjdGlvbltpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJhc2VGaW5kKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZWFjaEZ1bmMpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmluZEluZGV4YCBvciBgXy5maW5kTGFzdEluZGV4YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmluZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGaW5kSW5kZXgoZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oYXJyYXksIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHByZWRpY2F0ZSA9IGdldENhbGxiYWNrKHByZWRpY2F0ZSwgdGhpc0FyZywgMyk7XG4gICAgICAgIHJldHVybiBiYXNlRmluZEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21SaWdodCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgXy5maW5kS2V5YCBvciBgXy5maW5kTGFzdEtleWAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9iamVjdEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbiBvYmplY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmluZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGaW5kS2V5KG9iamVjdEZ1bmMpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgICByZXR1cm4gYmFzZUZpbmQob2JqZWN0LCBwcmVkaWNhdGUsIG9iamVjdEZ1bmMsIHRydWUpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmxvd2Agb3IgYF8uZmxvd1JpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmxvdyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGbG93KGZyb21SaWdodCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHNbMF07IH07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHdyYXBwZXIsXG4gICAgICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xLFxuICAgICAgICAgICAgbGVmdEluZGV4ID0gMCxcbiAgICAgICAgICAgIGZ1bmNzID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgICAgIHZhciBmdW5jID0gZnVuY3NbbGVmdEluZGV4KytdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgZnVuY05hbWUgPSB3cmFwcGVyID8gJycgOiBnZXRGdW5jTmFtZShmdW5jKTtcbiAgICAgICAgICB3cmFwcGVyID0gZnVuY05hbWUgPT0gJ3dyYXBwZXInID8gbmV3IExvZGFzaFdyYXBwZXIoW10pIDogd3JhcHBlcjtcbiAgICAgICAgfVxuICAgICAgICBpbmRleCA9IHdyYXBwZXIgPyAtMSA6IGxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBmdW5jID0gZnVuY3NbaW5kZXhdO1xuICAgICAgICAgIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyk7XG5cbiAgICAgICAgICB2YXIgZGF0YSA9IGZ1bmNOYW1lID09ICd3cmFwcGVyJyA/IGdldERhdGEoZnVuYykgOiBudWxsO1xuICAgICAgICAgIGlmIChkYXRhICYmIGlzTGF6aWFibGUoZGF0YVswXSkgJiYgZGF0YVsxXSA9PSAoQVJZX0ZMQUcgfCBDVVJSWV9GTEFHIHwgUEFSVElBTF9GTEFHIHwgUkVBUkdfRkxBRykgJiYgIWRhdGFbNF0ubGVuZ3RoICYmIGRhdGFbOV0gPT0gMSkge1xuICAgICAgICAgICAgd3JhcHBlciA9IHdyYXBwZXJbZ2V0RnVuY05hbWUoZGF0YVswXSldLmFwcGx5KHdyYXBwZXIsIGRhdGFbM10pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cmFwcGVyID0gKGZ1bmMubGVuZ3RoID09IDEgJiYgaXNMYXppYWJsZShmdW5jKSkgPyB3cmFwcGVyW2Z1bmNOYW1lXSgpIDogd3JhcHBlci50aHJ1KGZ1bmMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgaWYgKHdyYXBwZXIgJiYgYXJncy5sZW5ndGggPT0gMSAmJiBpc0FycmF5KGFyZ3NbMF0pKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcHBlci5wbGFudChhcmdzWzBdKS52YWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgICAgICByZXN1bHQgPSBmdW5jc1tpbmRleF0uYXBwbHkodGhpcywgYXJncyk7XG5cbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZnVuY3NbaW5kZXhdLmNhbGwodGhpcywgcmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGZvciBgXy5mb3JFYWNoYCBvciBgXy5mb3JFYWNoUmlnaHRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhcnJheUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbiBhcnJheS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBlYWNoIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUZvckVhY2goYXJyYXlGdW5jLCBlYWNoRnVuYykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICAgIHJldHVybiAodHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgJiYgdGhpc0FyZyA9PT0gdW5kZWZpbmVkICYmIGlzQXJyYXkoY29sbGVjdGlvbikpXG4gICAgICAgICAgPyBhcnJheUZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpXG4gICAgICAgICAgOiBlYWNoRnVuYyhjb2xsZWN0aW9uLCBiaW5kQ2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGZvciBgXy5mb3JJbmAgb3IgYF8uZm9ySW5SaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9iamVjdEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbiBvYmplY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZWFjaCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGb3JJbihvYmplY3RGdW5jKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZXJhdGVlICE9ICdmdW5jdGlvbicgfHwgdGhpc0FyZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaXRlcmF0ZWUgPSBiaW5kQ2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmplY3RGdW5jKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNJbik7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8uZm9yT3duYCBvciBgXy5mb3JPd25SaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9iamVjdEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbiBvYmplY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZWFjaCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGb3JPd24ob2JqZWN0RnVuYykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVyYXRlZSAhPSAnZnVuY3Rpb24nIHx8IHRoaXNBcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGl0ZXJhdGVlID0gYmluZENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0RnVuYyhvYmplY3QsIGl0ZXJhdGVlKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGZvciBgXy5tYXBLZXlzYCBvciBgXy5tYXBWYWx1ZXNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc01hcEtleXNdIFNwZWNpZnkgbWFwcGluZyBrZXlzIGluc3RlYWQgb2YgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1hcCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVPYmplY3RNYXBwZXIoaXNNYXBLZXlzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgICAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgICAgIGl0ZXJhdGVlID0gZ2V0Q2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuXG4gICAgICAgIGJhc2VGb3JPd24ob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICAgICAgICB2YXIgbWFwcGVkID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgb2JqZWN0KTtcbiAgICAgICAgICBrZXkgPSBpc01hcEtleXMgPyBtYXBwZWQgOiBrZXk7XG4gICAgICAgICAgdmFsdWUgPSBpc01hcEtleXMgPyB2YWx1ZSA6IG1hcHBlZDtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGZvciBgXy5wYWRMZWZ0YCBvciBgXy5wYWRSaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBwYWRkaW5nIGZyb20gdGhlIHJpZ2h0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHBhZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVQYWREaXIoZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgICByZXR1cm4gKGZyb21SaWdodCA/IHN0cmluZyA6ICcnKSArIGNyZWF0ZVBhZGRpbmcoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSArIChmcm9tUmlnaHQgPyAnJyA6IHN0cmluZyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgXy5wYXJ0aWFsYCBvciBgXy5wYXJ0aWFsUmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZsYWcgVGhlIHBhcnRpYWwgYml0IGZsYWcuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFydGlhbCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVQYXJ0aWFsKGZsYWcpIHtcbiAgICAgIHZhciBwYXJ0aWFsRnVuYyA9IHJlc3RQYXJhbShmdW5jdGlvbihmdW5jLCBwYXJ0aWFscykge1xuICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBwYXJ0aWFsRnVuYy5wbGFjZWhvbGRlcik7XG4gICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGZ1bmMsIGZsYWcsIG51bGwsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHBhcnRpYWxGdW5jO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8ucmVkdWNlYCBvciBgXy5yZWR1Y2VSaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGFycmF5RnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGFuIGFycmF5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYSBjb2xsZWN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGVhY2ggZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUmVkdWNlKGFycmF5RnVuYywgZWFjaEZ1bmMpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIHRoaXNBcmcpIHtcbiAgICAgICAgdmFyIGluaXRGcm9tQXJyYXkgPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcbiAgICAgICAgcmV0dXJuICh0eXBlb2YgaXRlcmF0ZWUgPT0gJ2Z1bmN0aW9uJyAmJiB0aGlzQXJnID09PSB1bmRlZmluZWQgJiYgaXNBcnJheShjb2xsZWN0aW9uKSlcbiAgICAgICAgICA/IGFycmF5RnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRGcm9tQXJyYXkpXG4gICAgICAgICAgOiBiYXNlUmVkdWNlKGNvbGxlY3Rpb24sIGdldENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCA0KSwgYWNjdW11bGF0b3IsIGluaXRGcm9tQXJyYXksIGVhY2hGdW5jKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggb3B0aW9uYWwgYHRoaXNgXG4gICAgICogYmluZGluZyBvZiwgcGFydGlhbCBhcHBsaWNhdGlvbiwgYW5kIGN1cnJ5aW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gZnVuYyBUaGUgZnVuY3Rpb24gb3IgbWV0aG9kIG5hbWUgdG8gcmVmZXJlbmNlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIG9mIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBwZXJgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzXSBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc1JpZ2h0XSBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzUmlnaHRdIFRoZSBgcGFydGlhbHNSaWdodGAgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVIeWJyaWRXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQXJ5ID0gYml0bWFzayAmIEFSWV9GTEFHLFxuICAgICAgICAgIGlzQmluZCA9IGJpdG1hc2sgJiBCSU5EX0ZMQUcsXG4gICAgICAgICAgaXNCaW5kS2V5ID0gYml0bWFzayAmIEJJTkRfS0VZX0ZMQUcsXG4gICAgICAgICAgaXNDdXJyeSA9IGJpdG1hc2sgJiBDVVJSWV9GTEFHLFxuICAgICAgICAgIGlzQ3VycnlCb3VuZCA9IGJpdG1hc2sgJiBDVVJSWV9CT1VORF9GTEFHLFxuICAgICAgICAgIGlzQ3VycnlSaWdodCA9IGJpdG1hc2sgJiBDVVJSWV9SSUdIVF9GTEFHO1xuXG4gICAgICB2YXIgQ3RvciA9ICFpc0JpbmRLZXkgJiYgY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyksXG4gICAgICAgICAga2V5ID0gZnVuYztcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgLy8gQXZvaWQgYGFyZ3VtZW50c2Agb2JqZWN0IHVzZSBkaXNxdWFsaWZ5aW5nIG9wdGltaXphdGlvbnMgYnlcbiAgICAgICAgLy8gY29udmVydGluZyBpdCB0byBhbiBhcnJheSBiZWZvcmUgcHJvdmlkaW5nIGl0IHRvIG90aGVyIGZ1bmN0aW9ucy5cbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBpbmRleCA9IGxlbmd0aCxcbiAgICAgICAgICAgIGFyZ3MgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgYXJnc1tpbmRleF0gPSBhcmd1bWVudHNbaW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWFscykge1xuICAgICAgICAgIGFyZ3MgPSBjb21wb3NlQXJncyhhcmdzLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3NSaWdodChhcmdzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0N1cnJ5IHx8IGlzQ3VycnlSaWdodCkge1xuICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9IHdyYXBwZXIucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgIGFyZ3NIb2xkZXJzID0gcmVwbGFjZUhvbGRlcnMoYXJncywgcGxhY2Vob2xkZXIpO1xuXG4gICAgICAgICAgbGVuZ3RoIC09IGFyZ3NIb2xkZXJzLmxlbmd0aDtcbiAgICAgICAgICBpZiAobGVuZ3RoIDwgYXJpdHkpIHtcbiAgICAgICAgICAgIHZhciBuZXdBcmdQb3MgPSBhcmdQb3MgPyBhcnJheUNvcHkoYXJnUG9zKSA6IG51bGwsXG4gICAgICAgICAgICAgICAgbmV3QXJpdHkgPSBuYXRpdmVNYXgoYXJpdHkgLSBsZW5ndGgsIDApLFxuICAgICAgICAgICAgICAgIG5ld3NIb2xkZXJzID0gaXNDdXJyeSA/IGFyZ3NIb2xkZXJzIDogbnVsbCxcbiAgICAgICAgICAgICAgICBuZXdIb2xkZXJzUmlnaHQgPSBpc0N1cnJ5ID8gbnVsbCA6IGFyZ3NIb2xkZXJzLFxuICAgICAgICAgICAgICAgIG5ld1BhcnRpYWxzID0gaXNDdXJyeSA/IGFyZ3MgOiBudWxsLFxuICAgICAgICAgICAgICAgIG5ld1BhcnRpYWxzUmlnaHQgPSBpc0N1cnJ5ID8gbnVsbCA6IGFyZ3M7XG5cbiAgICAgICAgICAgIGJpdG1hc2sgfD0gKGlzQ3VycnkgPyBQQVJUSUFMX0ZMQUcgOiBQQVJUSUFMX1JJR0hUX0ZMQUcpO1xuICAgICAgICAgICAgYml0bWFzayAmPSB+KGlzQ3VycnkgPyBQQVJUSUFMX1JJR0hUX0ZMQUcgOiBQQVJUSUFMX0ZMQUcpO1xuXG4gICAgICAgICAgICBpZiAoIWlzQ3VycnlCb3VuZCkge1xuICAgICAgICAgICAgICBiaXRtYXNrICY9IH4oQklORF9GTEFHIHwgQklORF9LRVlfRkxBRyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbmV3RGF0YSA9IFtmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBuZXdQYXJ0aWFscywgbmV3c0hvbGRlcnMsIG5ld1BhcnRpYWxzUmlnaHQsIG5ld0hvbGRlcnNSaWdodCwgbmV3QXJnUG9zLCBhcnksIG5ld0FyaXR5XSxcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBjcmVhdGVIeWJyaWRXcmFwcGVyLmFwcGx5KHVuZGVmaW5lZCwgbmV3RGF0YSk7XG5cbiAgICAgICAgICAgIGlmIChpc0xhemlhYmxlKGZ1bmMpKSB7XG4gICAgICAgICAgICAgIHNldERhdGEocmVzdWx0LCBuZXdEYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXM7XG4gICAgICAgIGlmIChpc0JpbmRLZXkpIHtcbiAgICAgICAgICBmdW5jID0gdGhpc0JpbmRpbmdba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXJnUG9zKSB7XG4gICAgICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNBcnkgJiYgYXJ5IDwgYXJncy5sZW5ndGgpIHtcbiAgICAgICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZm4gPSAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IChDdG9yIHx8IGNyZWF0ZUN0b3JXcmFwcGVyKGZ1bmMpKSA6IGZ1bmM7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBwYWRkaW5nIHJlcXVpcmVkIGZvciBgc3RyaW5nYCBiYXNlZCBvbiB0aGUgZ2l2ZW4gYGxlbmd0aGAuXG4gICAgICogVGhlIGBjaGFyc2Agc3RyaW5nIGlzIHRydW5jYXRlZCBpZiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZXhjZWVkcyBgbGVuZ3RoYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNyZWF0ZSBwYWRkaW5nIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZCBmb3IgYHN0cmluZ2AuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFkZGluZyhzdHJpbmcsIGxlbmd0aCwgY2hhcnMpIHtcbiAgICAgIHZhciBzdHJMZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgbGVuZ3RoID0gK2xlbmd0aDtcblxuICAgICAgaWYgKHN0ckxlbmd0aCA+PSBsZW5ndGggfHwgIW5hdGl2ZUlzRmluaXRlKGxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgdmFyIHBhZExlbmd0aCA9IGxlbmd0aCAtIHN0ckxlbmd0aDtcbiAgICAgIGNoYXJzID0gY2hhcnMgPT0gbnVsbCA/ICcgJyA6IChjaGFycyArICcnKTtcbiAgICAgIHJldHVybiByZXBlYXQoY2hhcnMsIGNlaWwocGFkTGVuZ3RoIC8gY2hhcnMubGVuZ3RoKSkuc2xpY2UoMCwgcGFkTGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgYW5kIGludm9rZXMgaXQgd2l0aCB0aGUgb3B0aW9uYWwgYHRoaXNgXG4gICAgICogYmluZGluZyBvZiBgdGhpc0FyZ2AgYW5kIHRoZSBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aG9zZSBwcm92aWRlZCB0b1xuICAgICAqIHRoZSB3cmFwcGVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBwYXJ0aWFsbHkgYXBwbHkgYXJndW1lbnRzIHRvLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIG9mIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBwZXJgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFydGlhbHMgVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFydGlhbFdyYXBwZXIoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgQklORF9GTEFHLFxuICAgICAgICAgIEN0b3IgPSBjcmVhdGVDdG9yV3JhcHBlcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgLy8gQXZvaWQgYGFyZ3VtZW50c2Agb2JqZWN0IHVzZSBkaXNxdWFsaWZ5aW5nIG9wdGltaXphdGlvbnMgYnlcbiAgICAgICAgLy8gY29udmVydGluZyBpdCB0byBhbiBhcnJheSBiZWZvcmUgcHJvdmlkaW5nIGl0IGBmdW5jYC5cbiAgICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBsZWZ0SW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlZnRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkoYXJnc0xlbmd0aCArIGxlZnRMZW5ndGgpO1xuXG4gICAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgICBhcmdzW2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcbiAgICAgICAgICBhcmdzW2xlZnRJbmRleCsrXSA9IGFyZ3VtZW50c1srK2FyZ3NJbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgXy5zb3J0ZWRJbmRleGAgb3IgYF8uc29ydGVkTGFzdEluZGV4YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmV0SGlnaGVzdF0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGhpZ2hlc3QgcXVhbGlmaWVkIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGluZGV4IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVNvcnRlZEluZGV4KHJldEhpZ2hlc3QpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihhcnJheSwgdmFsdWUsIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICAgIHZhciBmdW5jID0gZ2V0Q2FsbGJhY2soaXRlcmF0ZWUpO1xuICAgICAgICByZXR1cm4gKGZ1bmMgPT09IGJhc2VDYWxsYmFjayAmJiBpdGVyYXRlZSA9PSBudWxsKVxuICAgICAgICAgID8gYmluYXJ5SW5kZXgoYXJyYXksIHZhbHVlLCByZXRIaWdoZXN0KVxuICAgICAgICAgIDogYmluYXJ5SW5kZXhCeShhcnJheSwgdmFsdWUsIGZ1bmMoaXRlcmF0ZWUsIHRoaXNBcmcsIDEpLCByZXRIaWdoZXN0KTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZWl0aGVyIGN1cnJpZXMgb3IgaW52b2tlcyBgZnVuY2Agd2l0aCBvcHRpb25hbFxuICAgICAqIGB0aGlzYCBiaW5kaW5nIGFuZCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byByZWZlcmVuY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgb2YgZmxhZ3MuXG4gICAgICogIFRoZSBiaXRtYXNrIG1heSBiZSBjb21wb3NlZCBvZiB0aGUgZm9sbG93aW5nIGZsYWdzOlxuICAgICAqICAgICAxIC0gYF8uYmluZGBcbiAgICAgKiAgICAgMiAtIGBfLmJpbmRLZXlgXG4gICAgICogICAgIDQgLSBgXy5jdXJyeWAgb3IgYF8uY3VycnlSaWdodGAgb2YgYSBib3VuZCBmdW5jdGlvblxuICAgICAqICAgICA4IC0gYF8uY3VycnlgXG4gICAgICogICAgMTYgLSBgXy5jdXJyeVJpZ2h0YFxuICAgICAqICAgIDMyIC0gYF8ucGFydGlhbGBcbiAgICAgKiAgICA2NCAtIGBfLnBhcnRpYWxSaWdodGBcbiAgICAgKiAgIDEyOCAtIGBfLnJlYXJnYFxuICAgICAqICAgMjU2IC0gYF8uYXJ5YFxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzXSBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcmdQb3NdIFRoZSBhcmd1bWVudCBwb3NpdGlvbnMgb2YgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyeV0gVGhlIGFyaXR5IGNhcCBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXIoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQmluZEtleSA9IGJpdG1hc2sgJiBCSU5EX0tFWV9GTEFHO1xuICAgICAgaWYgKCFpc0JpbmRLZXkgJiYgdHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gcGFydGlhbHMgPyBwYXJ0aWFscy5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgYml0bWFzayAmPSB+KFBBUlRJQUxfRkxBRyB8IFBBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IG51bGw7XG4gICAgICB9XG4gICAgICBsZW5ndGggLT0gKGhvbGRlcnMgPyBob2xkZXJzLmxlbmd0aCA6IDApO1xuICAgICAgaWYgKGJpdG1hc2sgJiBQQVJUSUFMX1JJR0hUX0ZMQUcpIHtcbiAgICAgICAgdmFyIHBhcnRpYWxzUmlnaHQgPSBwYXJ0aWFscyxcbiAgICAgICAgICAgIGhvbGRlcnNSaWdodCA9IGhvbGRlcnM7XG5cbiAgICAgICAgcGFydGlhbHMgPSBob2xkZXJzID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBkYXRhID0gaXNCaW5kS2V5ID8gbnVsbCA6IGdldERhdGEoZnVuYyksXG4gICAgICAgICAgbmV3RGF0YSA9IFtmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LCBhcmdQb3MsIGFyeSwgYXJpdHldO1xuXG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBtZXJnZURhdGEobmV3RGF0YSwgZGF0YSk7XG4gICAgICAgIGJpdG1hc2sgPSBuZXdEYXRhWzFdO1xuICAgICAgICBhcml0eSA9IG5ld0RhdGFbOV07XG4gICAgICB9XG4gICAgICBuZXdEYXRhWzldID0gYXJpdHkgPT0gbnVsbFxuICAgICAgICA/IChpc0JpbmRLZXkgPyAwIDogZnVuYy5sZW5ndGgpXG4gICAgICAgIDogKG5hdGl2ZU1heChhcml0eSAtIGxlbmd0aCwgMCkgfHwgMCk7XG5cbiAgICAgIGlmIChiaXRtYXNrID09IEJJTkRfRkxBRykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gY3JlYXRlQmluZFdyYXBwZXIobmV3RGF0YVswXSwgbmV3RGF0YVsyXSk7XG4gICAgICB9IGVsc2UgaWYgKChiaXRtYXNrID09IFBBUlRJQUxfRkxBRyB8fCBiaXRtYXNrID09IChCSU5EX0ZMQUcgfCBQQVJUSUFMX0ZMQUcpKSAmJiAhbmV3RGF0YVs0XS5sZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0ID0gY3JlYXRlUGFydGlhbFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcbiAgICAgIH1cbiAgICAgIHZhciBzZXR0ZXIgPSBkYXRhID8gYmFzZVNldERhdGEgOiBzZXREYXRhO1xuICAgICAgcmV0dXJuIHNldHRlcihyZXN1bHQsIG5ld0RhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgYXJyYXlzIHdpdGggc3VwcG9ydCBmb3JcbiAgICAgKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgYXJyYXlzLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0FdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJyYXlzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxBcnJheXMoYXJyYXksIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBhcnJMZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgb3RoTGVuZ3RoID0gb3RoZXIubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHRydWU7XG5cbiAgICAgIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNMb29zZSAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIERlZXAgY29tcGFyZSB0aGUgY29udGVudHMsIGlnbm9yaW5nIG5vbi1udW1lcmljIHByb3BlcnRpZXMuXG4gICAgICB3aGlsZSAocmVzdWx0ICYmICsraW5kZXggPCBhcnJMZW5ndGgpIHtcbiAgICAgICAgdmFyIGFyclZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG5cbiAgICAgICAgcmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgIHJlc3VsdCA9IGlzTG9vc2VcbiAgICAgICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4KVxuICAgICAgICAgICAgOiBjdXN0b21pemVyKGFyclZhbHVlLCBvdGhWYWx1ZSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgICAgaWYgKGlzTG9vc2UpIHtcbiAgICAgICAgICAgIHZhciBvdGhJbmRleCA9IG90aExlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChvdGhJbmRleC0tKSB7XG4gICAgICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJbb3RoSW5kZXhdO1xuICAgICAgICAgICAgICByZXN1bHQgPSAoYXJyVmFsdWUgJiYgYXJyVmFsdWUgPT09IG90aFZhbHVlKSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoYXJyVmFsdWUgJiYgYXJyVmFsdWUgPT09IG90aFZhbHVlKSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gISFyZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBjb21wYXJpbmcgb2JqZWN0cyBvZlxuICAgICAqIHRoZSBzYW1lIGB0b1N0cmluZ1RhZ2AuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNvbXBhcmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gICAgICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgb3IgYFN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZSBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3RzIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCB0YWcpIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgYm9vbFRhZzpcbiAgICAgICAgY2FzZSBkYXRlVGFnOlxuICAgICAgICAgIC8vIENvZXJjZSBkYXRlcyBhbmQgYm9vbGVhbnMgdG8gbnVtYmVycywgZGF0ZXMgdG8gbWlsbGlzZWNvbmRzIGFuZCBib29sZWFuc1xuICAgICAgICAgIC8vIHRvIGAxYCBvciBgMGAgdHJlYXRpbmcgaW52YWxpZCBkYXRlcyBjb2VyY2VkIHRvIGBOYU5gIGFzIG5vdCBlcXVhbC5cbiAgICAgICAgICByZXR1cm4gK29iamVjdCA9PSArb3RoZXI7XG5cbiAgICAgICAgY2FzZSBlcnJvclRhZzpcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Lm5hbWUgPT0gb3RoZXIubmFtZSAmJiBvYmplY3QubWVzc2FnZSA9PSBvdGhlci5tZXNzYWdlO1xuXG4gICAgICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgICAgICAgIC8vIFRyZWF0IGBOYU5gIHZzLiBgTmFOYCBhcyBlcXVhbC5cbiAgICAgICAgICByZXR1cm4gKG9iamVjdCAhPSArb2JqZWN0KVxuICAgICAgICAgICAgPyBvdGhlciAhPSArb3RoZXJcbiAgICAgICAgICAgIDogb2JqZWN0ID09ICtvdGhlcjtcblxuICAgICAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAgICAgLy8gQ29lcmNlIHJlZ2V4ZXMgdG8gc3RyaW5ncyBhbmQgdHJlYXQgc3RyaW5ncyBwcmltaXRpdmVzIGFuZCBzdHJpbmdcbiAgICAgICAgICAvLyBvYmplY3RzIGFzIGVxdWFsLiBTZWUgaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyN4MTUuMTAuNi40IGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSAob3RoZXIgKyAnJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3JcbiAgICAgKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQl0gVHJhY2tzIHRyYXZlcnNlZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGVxdWFsRnVuYywgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpIHtcbiAgICAgIHZhciBvYmpQcm9wcyA9IGtleXMob2JqZWN0KSxcbiAgICAgICAgICBvYmpMZW5ndGggPSBvYmpQcm9wcy5sZW5ndGgsXG4gICAgICAgICAgb3RoUHJvcHMgPSBrZXlzKG90aGVyKSxcbiAgICAgICAgICBvdGhMZW5ndGggPSBvdGhQcm9wcy5sZW5ndGg7XG5cbiAgICAgIGlmIChvYmpMZW5ndGggIT0gb3RoTGVuZ3RoICYmICFpc0xvb3NlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBza2lwQ3RvciA9IGlzTG9vc2UsXG4gICAgICAgICAgaW5kZXggPSAtMTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBvYmpMZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IG9ialByb3BzW2luZGV4XSxcbiAgICAgICAgICAgIHJlc3VsdCA9IGlzTG9vc2UgPyBrZXkgaW4gb3RoZXIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBrZXkpO1xuXG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltrZXldO1xuXG4gICAgICAgICAgcmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBpc0xvb3NlXG4gICAgICAgICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgb2JqVmFsdWUsIGtleSlcbiAgICAgICAgICAgICAgOiBjdXN0b21pemVyKG9ialZhbHVlLCBvdGhWYWx1ZSwga2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgICAgIHJlc3VsdCA9IChvYmpWYWx1ZSAmJiBvYmpWYWx1ZSA9PT0gb3RoVmFsdWUpIHx8IGVxdWFsRnVuYyhvYmpWYWx1ZSwgb3RoVmFsdWUsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgc2tpcEN0b3IgfHwgKHNraXBDdG9yID0ga2V5ID09ICdjb25zdHJ1Y3RvcicpO1xuICAgICAgfVxuICAgICAgaWYgKCFza2lwQ3Rvcikge1xuICAgICAgICB2YXIgb2JqQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcixcbiAgICAgICAgICAgIG90aEN0b3IgPSBvdGhlci5jb25zdHJ1Y3RvcjtcblxuICAgICAgICAvLyBOb24gYE9iamVjdGAgb2JqZWN0IGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudCBjb25zdHJ1Y3RvcnMgYXJlIG5vdCBlcXVhbC5cbiAgICAgICAgaWYgKG9iakN0b3IgIT0gb3RoQ3RvciAmJlxuICAgICAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXG4gICAgICAgICAgICAhKHR5cGVvZiBvYmpDdG9yID09ICdmdW5jdGlvbicgJiYgb2JqQ3RvciBpbnN0YW5jZW9mIG9iakN0b3IgJiZcbiAgICAgICAgICAgICAgdHlwZW9mIG90aEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvdGhDdG9yIGluc3RhbmNlb2Ygb3RoQ3RvcikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGV4dHJlbXVtIHZhbHVlIG9mIGBjb2xsZWN0aW9uYCBpbnZva2luZyBgaXRlcmF0ZWVgIGZvciBlYWNoIHZhbHVlXG4gICAgICogaW4gYGNvbGxlY3Rpb25gIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2ggdGhlIHZhbHVlIGlzIHJhbmtlZC5cbiAgICAgKiBUaGUgYGl0ZXJhdGVlYCBpcyBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTWluXSBTcGVjaWZ5IHJldHVybmluZyB0aGUgbWluaW11bSwgaW5zdGVhZCBvZiB0aGVcbiAgICAgKiAgbWF4aW11bSwgZXh0cmVtdW0gdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGV4dHJlbXVtIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV4dHJlbXVtQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGlzTWluKSB7XG4gICAgICB2YXIgZXhWYWx1ZSA9IGlzTWluID8gUE9TSVRJVkVfSU5GSU5JVFkgOiBORUdBVElWRV9JTkZJTklUWSxcbiAgICAgICAgICBjb21wdXRlZCA9IGV4VmFsdWUsXG4gICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZWQ7XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICB2YXIgY3VycmVudCA9IGl0ZXJhdGVlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgICAgIGlmICgoaXNNaW4gPyAoY3VycmVudCA8IGNvbXB1dGVkKSA6IChjdXJyZW50ID4gY29tcHV0ZWQpKSB8fFxuICAgICAgICAgICAgKGN1cnJlbnQgPT09IGV4VmFsdWUgJiYgY3VycmVudCA9PT0gcmVzdWx0KSkge1xuICAgICAgICAgIGNvbXB1dGVkID0gY3VycmVudDtcbiAgICAgICAgICByZXN1bHQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwcHJvcHJpYXRlIFwiY2FsbGJhY2tcIiBmdW5jdGlvbi4gSWYgdGhlIGBfLmNhbGxiYWNrYCBtZXRob2QgaXNcbiAgICAgKiBjdXN0b21pemVkIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgY3VzdG9tIG1ldGhvZCwgb3RoZXJ3aXNlIGl0IHJldHVybnNcbiAgICAgKiB0aGUgYGJhc2VDYWxsYmFja2AgZnVuY3Rpb24uIElmIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdGhlIGNob3NlbiBmdW5jdGlvblxuICAgICAqIGlzIGludm9rZWQgd2l0aCB0aGVtIGFuZCBpdHMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNob3NlbiBmdW5jdGlvbiBvciBpdHMgcmVzdWx0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldENhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoLmNhbGxiYWNrIHx8IGNhbGxiYWNrO1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSBjYWxsYmFjayA/IGJhc2VDYWxsYmFjayA6IHJlc3VsdDtcbiAgICAgIHJldHVybiBhcmdDb3VudCA/IHJlc3VsdChmdW5jLCB0aGlzQXJnLCBhcmdDb3VudCkgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgZ2V0RGF0YSA9ICFtZXRhTWFwID8gbm9vcCA6IGZ1bmN0aW9uKGZ1bmMpIHtcbiAgICAgIHJldHVybiBtZXRhTWFwLmdldChmdW5jKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmFtZSBvZiBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWUuXG4gICAgICovXG4gICAgdmFyIGdldEZ1bmNOYW1lID0gKGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCFzdXBwb3J0LmZ1bmNOYW1lcykge1xuICAgICAgICByZXR1cm4gY29uc3RhbnQoJycpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnN0YW50Lm5hbWUgPT0gJ2NvbnN0YW50Jykge1xuICAgICAgICByZXR1cm4gYmFzZVByb3BlcnR5KCduYW1lJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24oZnVuYykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gZnVuYy5uYW1lLFxuICAgICAgICAgICAgYXJyYXkgPSByZWFsTmFtZXNbcmVzdWx0XSxcbiAgICAgICAgICAgIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcblxuICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IGFycmF5W2xlbmd0aF0sXG4gICAgICAgICAgICAgIG90aGVyRnVuYyA9IGRhdGEuZnVuYztcblxuICAgICAgICAgIGlmIChvdGhlckZ1bmMgPT0gbnVsbCB8fCBvdGhlckZ1bmMgPT0gZnVuYykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEubmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSgpKTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwcHJvcHJpYXRlIFwiaW5kZXhPZlwiIGZ1bmN0aW9uLiBJZiB0aGUgYF8uaW5kZXhPZmAgbWV0aG9kIGlzXG4gICAgICogY3VzdG9taXplZCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGN1c3RvbSBtZXRob2QsIG90aGVyd2lzZSBpdCByZXR1cm5zXG4gICAgICogdGhlIGBiYXNlSW5kZXhPZmAgZnVuY3Rpb24uIElmIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdGhlIGNob3NlbiBmdW5jdGlvblxuICAgICAqIGlzIGludm9rZWQgd2l0aCB0aGVtIGFuZCBpdHMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb258bnVtYmVyfSBSZXR1cm5zIHRoZSBjaG9zZW4gZnVuY3Rpb24gb3IgaXRzIHJlc3VsdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRJbmRleE9mKGNvbGxlY3Rpb24sIHRhcmdldCwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoLmluZGV4T2YgfHwgaW5kZXhPZjtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCA9PT0gaW5kZXhPZiA/IGJhc2VJbmRleE9mIDogcmVzdWx0O1xuICAgICAgcmV0dXJuIGNvbGxlY3Rpb24gPyByZXN1bHQoY29sbGVjdGlvbiwgdGFyZ2V0LCBmcm9tSW5kZXgpIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgdmFsdWUgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGF2b2lkIGEgW0pJVCBidWddKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3OTIpXG4gICAgICogdGhhdCBhZmZlY3RzIFNhZmFyaSBvbiBhdCBsZWFzdCBpT1MgOC4xLTguMyBBUk02NC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBcImxlbmd0aFwiIHZhbHVlLlxuICAgICAqL1xuICAgIHZhciBnZXRMZW5ndGggPSBiYXNlUHJvcGVydHkoJ2xlbmd0aCcpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHN5bWJvbHMuXG4gICAgICovXG4gICAgdmFyIGdldFN5bWJvbHMgPSAhZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gY29uc3RhbnQoW10pIDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRvT2JqZWN0KG9iamVjdCkpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2aWV3LCBhcHBseWluZyBhbnkgYHRyYW5zZm9ybXNgIHRvIHRoZSBgc3RhcnRgIGFuZCBgZW5kYCBwb3NpdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHZpZXcuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSB2aWV3LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt0cmFuc2Zvcm1zXSBUaGUgdHJhbnNmb3JtYXRpb25zIHRvIGFwcGx5IHRvIHRoZSB2aWV3LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGBzdGFydGAgYW5kIGBlbmRgXG4gICAgICogIHBvc2l0aW9ucyBvZiB0aGUgdmlldy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRWaWV3KHN0YXJ0LCBlbmQsIHRyYW5zZm9ybXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHRyYW5zZm9ybXMgPyB0cmFuc2Zvcm1zLmxlbmd0aCA6IDA7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBkYXRhID0gdHJhbnNmb3Jtc1tpbmRleF0sXG4gICAgICAgICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gICAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnZHJvcCc6ICAgICAgc3RhcnQgKz0gc2l6ZTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZHJvcFJpZ2h0JzogZW5kIC09IHNpemU7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Rha2UnOiAgICAgIGVuZCA9IG5hdGl2ZU1pbihlbmQsIHN0YXJ0ICsgc2l6ZSk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Rha2VSaWdodCc6IHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0LCBlbmQgLSBzaXplKTsgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7ICdzdGFydCc6IHN0YXJ0LCAnZW5kJzogZW5kIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gYXJyYXkgY2xvbmUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluaXRDbG9uZUFycmF5KGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IG5ldyBhcnJheS5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gICAgICAvLyBBZGQgYXJyYXkgcHJvcGVydGllcyBhc3NpZ25lZCBieSBgUmVnRXhwI2V4ZWNgLlxuICAgICAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICAgICAgcmVzdWx0LmluZGV4ID0gYXJyYXkuaW5kZXg7XG4gICAgICAgIHJlc3VsdC5pbnB1dCA9IGFycmF5LmlucHV0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gICAgICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgIGlmICghKHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IpKSB7XG4gICAgICAgIEN0b3IgPSBPYmplY3Q7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IEN0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lIGJhc2VkIG9uIGl0cyBgdG9TdHJpbmdUYWdgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjbG9uaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAgICAgKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBpc0RlZXApIHtcbiAgICAgIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgICAgICByZXR1cm4gYnVmZmVyQ2xvbmUob2JqZWN0KTtcblxuICAgICAgICBjYXNlIGJvb2xUYWc6XG4gICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICAgICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgICAgIGNhc2UgaW50OFRhZzogY2FzZSBpbnQxNlRhZzogY2FzZSBpbnQzMlRhZzpcbiAgICAgICAgY2FzZSB1aW50OFRhZzogY2FzZSB1aW50OENsYW1wZWRUYWc6IGNhc2UgdWludDE2VGFnOiBjYXNlIHVpbnQzMlRhZzpcbiAgICAgICAgICAvLyBTYWZhcmkgNSBtb2JpbGUgaW5jb3JyZWN0bHkgaGFzIGBPYmplY3RgIGFzIHRoZSBjb25zdHJ1Y3RvciBvZiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgaWYgKEN0b3IgaW5zdGFuY2VvZiBDdG9yKSB7XG4gICAgICAgICAgICBDdG9yID0gY3RvckJ5VGFnW3RhZ107XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBidWZmZXIgPSBvYmplY3QuYnVmZmVyO1xuICAgICAgICAgIHJldHVybiBuZXcgQ3Rvcihpc0RlZXAgPyBidWZmZXJDbG9uZShidWZmZXIpIDogYnVmZmVyLCBvYmplY3QuYnl0ZU9mZnNldCwgb2JqZWN0Lmxlbmd0aCk7XG5cbiAgICAgICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihvYmplY3QpO1xuXG4gICAgICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgQ3RvcihvYmplY3Quc291cmNlLCByZUZsYWdzLmV4ZWMob2JqZWN0KSk7XG4gICAgICAgICAgcmVzdWx0Lmxhc3RJbmRleCA9IG9iamVjdC5sYXN0SW5kZXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb24gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZva2VkIG1ldGhvZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnZva2VQYXRoKG9iamVjdCwgcGF0aCwgYXJncykge1xuICAgICAgaWYgKG9iamVjdCAhPSBudWxsICYmICFpc0tleShwYXRoLCBvYmplY3QpKSB7XG4gICAgICAgIHBhdGggPSB0b1BhdGgocGF0aCk7XG4gICAgICAgIG9iamVjdCA9IHBhdGgubGVuZ3RoID09IDEgPyBvYmplY3QgOiBiYXNlR2V0KG9iamVjdCwgYmFzZVNsaWNlKHBhdGgsIDAsIC0xKSk7XG4gICAgICAgIHBhdGggPSBsYXN0KHBhdGgpO1xuICAgICAgfVxuICAgICAgdmFyIGZ1bmMgPSBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IG9iamVjdFtwYXRoXTtcbiAgICAgIHJldHVybiBmdW5jID09IG51bGwgPyB1bmRlZmluZWQgOiBmdW5jLmFwcGx5KG9iamVjdCwgYXJncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiBpc0xlbmd0aChnZXRMZW5ndGgodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGluZGV4LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4gICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcbiAgICAgIHJldHVybiB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBmcm9tIGFuIGl0ZXJhdGVlIGNhbGwuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSB2YWx1ZSBhcmd1bWVudC5cbiAgICAgKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICAgICAqIEBwYXJhbSB7Kn0gb2JqZWN0IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgb2JqZWN0IGFyZ3VtZW50LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJndW1lbnRzIGFyZSBmcm9tIGFuIGl0ZXJhdGVlIGNhbGwsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgaW5kZXgsIG9iamVjdCkge1xuICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xuICAgICAgaWYgKHR5cGUgPT0gJ251bWJlcidcbiAgICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICAgIDogKHR5cGUgPT0gJ3N0cmluZycgJiYgaW5kZXggaW4gb2JqZWN0KSkge1xuICAgICAgICB2YXIgb3RoZXIgPSBvYmplY3RbaW5kZXhdO1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlID8gKHZhbHVlID09PSBvdGhlcikgOiAob3RoZXIgIT09IG90aGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUgYW5kIG5vdCBhIHByb3BlcnR5IHBhdGguXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNLZXkodmFsdWUsIG9iamVjdCkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICBpZiAoKHR5cGUgPT0gJ3N0cmluZycgJiYgcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSkgfHwgdHlwZSA9PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKTtcbiAgICAgIHJldHVybiByZXN1bHQgfHwgKG9iamVjdCAhPSBudWxsICYmIHZhbHVlIGluIHRvT2JqZWN0KG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGEgbGF6eSBjb3VudGVycGFydC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBmdW5jYCBoYXMgYSBsYXp5IGNvdW50ZXJwYXJ0LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNMYXppYWJsZShmdW5jKSB7XG4gICAgICB2YXIgZnVuY05hbWUgPSBnZXRGdW5jTmFtZShmdW5jKTtcbiAgICAgIHJldHVybiAhIWZ1bmNOYW1lICYmIGZ1bmMgPT09IGxvZGFzaFtmdW5jTmFtZV0gJiYgZnVuY05hbWUgaW4gTGF6eVdyYXBwZXIucHJvdG90eXBlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBpcyBiYXNlZCBvbiBbYFRvTGVuZ3RoYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXRvbGVuZ3RoKS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJiB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29ucywgaS5lLiBgPT09YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaWYgc3VpdGFibGUgZm9yIHN0cmljdFxuICAgICAqICBlcXVhbGl0eSBjb21wYXJpc29ucywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSAmJiAhaXNPYmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlcyB0aGUgZnVuY3Rpb24gbWV0YWRhdGEgb2YgYHNvdXJjZWAgaW50byBgZGF0YWAuXG4gICAgICpcbiAgICAgKiBNZXJnaW5nIG1ldGFkYXRhIHJlZHVjZXMgdGhlIG51bWJlciBvZiB3cmFwcGVycyByZXF1aXJlZCB0byBpbnZva2UgYSBmdW5jdGlvbi5cbiAgICAgKiBUaGlzIGlzIHBvc3NpYmxlIGJlY2F1c2UgbWV0aG9kcyBsaWtlIGBfLmJpbmRgLCBgXy5jdXJyeWAsIGFuZCBgXy5wYXJ0aWFsYFxuICAgICAqIG1heSBiZSBhcHBsaWVkIHJlZ2FyZGxlc3Mgb2YgZXhlY3V0aW9uIG9yZGVyLiBNZXRob2RzIGxpa2UgYF8uYXJ5YCBhbmQgYF8ucmVhcmdgXG4gICAgICogYXVnbWVudCBmdW5jdGlvbiBhcmd1bWVudHMsIG1ha2luZyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcmUgZXhlY3V0ZWQgaW1wb3J0YW50LFxuICAgICAqIHByZXZlbnRpbmcgdGhlIG1lcmdpbmcgb2YgbWV0YWRhdGEuIEhvd2V2ZXIsIHdlIG1ha2UgYW4gZXhjZXB0aW9uIGZvciBhIHNhZmVcbiAgICAgKiBjb21tb24gY2FzZSB3aGVyZSBjdXJyaWVkIGZ1bmN0aW9ucyBoYXZlIGBfLmFyeWAgYW5kIG9yIGBfLnJlYXJnYCBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBkYXRhIFRoZSBkZXN0aW5hdGlvbiBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIHNvdXJjZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGRhdGFgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lcmdlRGF0YShkYXRhLCBzb3VyY2UpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gZGF0YVsxXSxcbiAgICAgICAgICBzcmNCaXRtYXNrID0gc291cmNlWzFdLFxuICAgICAgICAgIG5ld0JpdG1hc2sgPSBiaXRtYXNrIHwgc3JjQml0bWFzayxcbiAgICAgICAgICBpc0NvbW1vbiA9IG5ld0JpdG1hc2sgPCBBUllfRkxBRztcblxuICAgICAgdmFyIGlzQ29tYm8gPVxuICAgICAgICAoc3JjQml0bWFzayA9PSBBUllfRkxBRyAmJiBiaXRtYXNrID09IENVUlJZX0ZMQUcpIHx8XG4gICAgICAgIChzcmNCaXRtYXNrID09IEFSWV9GTEFHICYmIGJpdG1hc2sgPT0gUkVBUkdfRkxBRyAmJiBkYXRhWzddLmxlbmd0aCA8PSBzb3VyY2VbOF0pIHx8XG4gICAgICAgIChzcmNCaXRtYXNrID09IChBUllfRkxBRyB8IFJFQVJHX0ZMQUcpICYmIGJpdG1hc2sgPT0gQ1VSUllfRkxBRyk7XG5cbiAgICAgIC8vIEV4aXQgZWFybHkgaWYgbWV0YWRhdGEgY2FuJ3QgYmUgbWVyZ2VkLlxuICAgICAgaWYgKCEoaXNDb21tb24gfHwgaXNDb21ibykpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGB0aGlzQXJnYCBpZiBhdmFpbGFibGUuXG4gICAgICBpZiAoc3JjQml0bWFzayAmIEJJTkRfRkxBRykge1xuICAgICAgICBkYXRhWzJdID0gc291cmNlWzJdO1xuICAgICAgICAvLyBTZXQgd2hlbiBjdXJyeWluZyBhIGJvdW5kIGZ1bmN0aW9uLlxuICAgICAgICBuZXdCaXRtYXNrIHw9IChiaXRtYXNrICYgQklORF9GTEFHKSA/IDAgOiBDVVJSWV9CT1VORF9GTEFHO1xuICAgICAgfVxuICAgICAgLy8gQ29tcG9zZSBwYXJ0aWFsIGFyZ3VtZW50cy5cbiAgICAgIHZhciB2YWx1ZSA9IHNvdXJjZVszXTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YXIgcGFydGlhbHMgPSBkYXRhWzNdO1xuICAgICAgICBkYXRhWzNdID0gcGFydGlhbHMgPyBjb21wb3NlQXJncyhwYXJ0aWFscywgdmFsdWUsIHNvdXJjZVs0XSkgOiBhcnJheUNvcHkodmFsdWUpO1xuICAgICAgICBkYXRhWzRdID0gcGFydGlhbHMgPyByZXBsYWNlSG9sZGVycyhkYXRhWzNdLCBQTEFDRUhPTERFUikgOiBhcnJheUNvcHkoc291cmNlWzRdKTtcbiAgICAgIH1cbiAgICAgIC8vIENvbXBvc2UgcGFydGlhbCByaWdodCBhcmd1bWVudHMuXG4gICAgICB2YWx1ZSA9IHNvdXJjZVs1XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBwYXJ0aWFscyA9IGRhdGFbNV07XG4gICAgICAgIGRhdGFbNV0gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzUmlnaHQocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNl0pIDogYXJyYXlDb3B5KHZhbHVlKTtcbiAgICAgICAgZGF0YVs2XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVs1XSwgUExBQ0VIT0xERVIpIDogYXJyYXlDb3B5KHNvdXJjZVs2XSk7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBhcmdQb3NgIGlmIGF2YWlsYWJsZS5cbiAgICAgIHZhbHVlID0gc291cmNlWzddO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGRhdGFbN10gPSBhcnJheUNvcHkodmFsdWUpO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJ5YCBpZiBpdCdzIHNtYWxsZXIuXG4gICAgICBpZiAoc3JjQml0bWFzayAmIEFSWV9GTEFHKSB7XG4gICAgICAgIGRhdGFbOF0gPSBkYXRhWzhdID09IG51bGwgPyBzb3VyY2VbOF0gOiBuYXRpdmVNaW4oZGF0YVs4XSwgc291cmNlWzhdKTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYGFyaXR5YCBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICAgICAgaWYgKGRhdGFbOV0gPT0gbnVsbCkge1xuICAgICAgICBkYXRhWzldID0gc291cmNlWzldO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgZnVuY2AgYW5kIG1lcmdlIGJpdG1hc2tzLlxuICAgICAgZGF0YVswXSA9IHNvdXJjZVswXTtcbiAgICAgIGRhdGFbMV0gPSBuZXdCaXRtYXNrO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucGlja2Agd2hpY2ggcGlja3MgYG9iamVjdGAgcHJvcGVydGllcyBzcGVjaWZpZWRcbiAgICAgKiBieSBgcHJvcHNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBwaWNrLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGlja0J5QXJyYXkob2JqZWN0LCBwcm9wcykge1xuICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgICBpZiAoa2V5IGluIG9iamVjdCkge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gb2JqZWN0W2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnBpY2tgIHdoaWNoIHBpY2tzIGBvYmplY3RgIHByb3BlcnRpZXMgYHByZWRpY2F0ZWBcbiAgICAgKiByZXR1cm5zIHRydXRoeSBmb3IuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwaWNrQnlDYWxsYmFjayhvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgYmFzZUZvckluKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGtleSwgb2JqZWN0KSkge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW9yZGVyIGBhcnJheWAgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgaW5kZXhlcyB3aGVyZSB0aGUgZWxlbWVudCBhdFxuICAgICAqIHRoZSBmaXJzdCBpbmRleCBpcyBhc3NpZ25lZCBhcyB0aGUgZmlyc3QgZWxlbWVudCwgdGhlIGVsZW1lbnQgYXRcbiAgICAgKiB0aGUgc2Vjb25kIGluZGV4IGlzIGFzc2lnbmVkIGFzIHRoZSBzZWNvbmQgZWxlbWVudCwgYW5kIHNvIG9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcmVvcmRlci5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBpbmRleGVzIFRoZSBhcnJhbmdlZCBhcnJheSBpbmRleGVzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlb3JkZXIoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBhcnJMZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGluZGV4ZXMubGVuZ3RoLCBhcnJMZW5ndGgpLFxuICAgICAgICAgIG9sZEFycmF5ID0gYXJyYXlDb3B5KGFycmF5KTtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGluZGV4ZXNbbGVuZ3RoXTtcbiAgICAgICAgYXJyYXlbbGVuZ3RoXSA9IGlzSW5kZXgoaW5kZXgsIGFyckxlbmd0aCkgPyBvbGRBcnJheVtpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIElmIHRoaXMgZnVuY3Rpb24gYmVjb21lcyBob3QsIGkuZS4gaXMgaW52b2tlZCBhIGxvdCBpbiBhIHNob3J0XG4gICAgICogcGVyaW9kIG9mIHRpbWUsIGl0IHdpbGwgdHJpcCBpdHMgYnJlYWtlciBhbmQgdHJhbnNpdGlvbiB0byBhbiBpZGVudGl0eSBmdW5jdGlvblxuICAgICAqIHRvIGF2b2lkIGdhcmJhZ2UgY29sbGVjdGlvbiBwYXVzZXMgaW4gVjguIFNlZSBbVjggaXNzdWUgMjA3MF0oaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTIwNzApXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIG1ldGFkYXRhIHdpdGguXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIFRoZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBzZXREYXRhID0gKGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNvdW50ID0gMCxcbiAgICAgICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIHN0YW1wID0gbm93KCksXG4gICAgICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuXG4gICAgICAgIGxhc3RDYWxsZWQgPSBzdGFtcDtcbiAgICAgICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvdW50ID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmFzZVNldERhdGEoa2V5LCB2YWx1ZSk7XG4gICAgICB9O1xuICAgIH0oKSk7XG5cbiAgICAvKipcbiAgICAgKiBBIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzUGxhaW5PYmplY3RgIHdoaWNoIGNoZWNrcyBpZiBgdmFsdWVgXG4gICAgICogaXMgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlIGBPYmplY3RgIGNvbnN0cnVjdG9yIG9yIGhhcyBhIGBbW1Byb3RvdHlwZV1dYFxuICAgICAqIG9mIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzaGltSXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgICAgdmFyIEN0b3IsXG4gICAgICAgICAgc3VwcG9ydCA9IGxvZGFzaC5zdXBwb3J0O1xuXG4gICAgICAvLyBFeGl0IGVhcmx5IGZvciBub24gYE9iamVjdGAgb2JqZWN0cy5cbiAgICAgIGlmICghKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gb2JqZWN0VGFnICYmICFpc0hvc3RPYmplY3QodmFsdWUpKSB8fFxuICAgICAgICAgICghaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NvbnN0cnVjdG9yJykgJiZcbiAgICAgICAgICAgIChDdG9yID0gdmFsdWUuY29uc3RydWN0b3IsIHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgIShDdG9yIGluc3RhbmNlb2YgQ3RvcikpKSB8fFxuICAgICAgICAgICghc3VwcG9ydC5hcmdzVGFnICYmIGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gSUUgPCA5IGl0ZXJhdGVzIGluaGVyaXRlZCBwcm9wZXJ0aWVzIGJlZm9yZSBvd24gcHJvcGVydGllcy4gSWYgdGhlIGZpcnN0XG4gICAgICAvLyBpdGVyYXRlZCBwcm9wZXJ0eSBpcyBhbiBvYmplY3QncyBvd24gcHJvcGVydHkgdGhlbiB0aGVyZSBhcmUgbm8gaW5oZXJpdGVkXG4gICAgICAvLyBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgaWYgKHN1cHBvcnQub3duTGFzdCkge1xuICAgICAgICBiYXNlRm9ySW4odmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICAgIHJlc3VsdCA9IGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQgIT09IGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gSW4gbW9zdCBlbnZpcm9ubWVudHMgYW4gb2JqZWN0J3Mgb3duIHByb3BlcnRpZXMgYXJlIGl0ZXJhdGVkIGJlZm9yZVxuICAgICAgLy8gaXRzIGluaGVyaXRlZCBwcm9wZXJ0aWVzLiBJZiB0aGUgbGFzdCBpdGVyYXRlZCBwcm9wZXJ0eSBpcyBhbiBvYmplY3Qnc1xuICAgICAgLy8gb3duIHByb3BlcnR5IHRoZW4gdGhlcmUgYXJlIG5vIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICBiYXNlRm9ySW4odmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXkpIHtcbiAgICAgICAgcmVzdWx0ID0ga2V5O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgcmVzdWx0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIG9mIGBPYmplY3Qua2V5c2Agd2hpY2ggY3JlYXRlcyBhbiBhcnJheSBvZiB0aGVcbiAgICAgKiBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2hpbUtleXMob2JqZWN0KSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzSW4ob2JqZWN0KSxcbiAgICAgICAgICBwcm9wc0xlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICBsZW5ndGggPSBwcm9wc0xlbmd0aCAmJiBvYmplY3QubGVuZ3RoLFxuICAgICAgICAgIHN1cHBvcnQgPSBsb2Rhc2guc3VwcG9ydDtcblxuICAgICAgdmFyIGFsbG93SW5kZXhlcyA9IGxlbmd0aCAmJiBpc0xlbmd0aChsZW5ndGgpICYmXG4gICAgICAgIChpc0FycmF5KG9iamVjdCkgfHwgKHN1cHBvcnQubm9uRW51bVN0cmluZ3MgJiYgaXNTdHJpbmcob2JqZWN0KSkgfHxcbiAgICAgICAgICAoc3VwcG9ydC5ub25FbnVtQXJncyAmJiBpc0FyZ3VtZW50cyhvYmplY3QpKSk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IHByb3BzTGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgICAgIGlmICgoYWxsb3dJbmRleGVzICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpKSB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhbiBhcnJheS1saWtlIG9iamVjdCBpZiBpdCBpcyBub3Qgb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgdGhlIGFycmF5LWxpa2Ugb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvSXRlcmFibGUodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNBcnJheUxpa2UodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXModmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKGxvZGFzaC5zdXBwb3J0LnVuaW5kZXhlZENoYXJzICYmIGlzU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzT2JqZWN0KHZhbHVlKSA/IHZhbHVlIDogT2JqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIG9iamVjdCBpZiBpdCBpcyBub3Qgb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b09iamVjdCh2YWx1ZSkge1xuICAgICAgaWYgKGxvZGFzaC5zdXBwb3J0LnVuaW5kZXhlZENoYXJzICYmIGlzU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgICAgIHJlc3VsdCA9IE9iamVjdCh2YWx1ZSk7XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICByZXN1bHRbaW5kZXhdID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzT2JqZWN0KHZhbHVlKSA/IHZhbHVlIDogT2JqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIHByb3BlcnR5IHBhdGggYXJyYXkgaWYgaXQgaXMgbm90IG9uZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9QYXRoKHZhbHVlKSB7XG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgYmFzZVRvU3RyaW5nKHZhbHVlKS5yZXBsYWNlKHJlUHJvcE5hbWUsIGZ1bmN0aW9uKG1hdGNoLCBudW1iZXIsIHF1b3RlLCBzdHJpbmcpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gocXVvdGUgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsICckMScpIDogKG51bWJlciB8fCBtYXRjaCkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgd3JhcHBlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB3cmFwcGVyIFRoZSB3cmFwcGVyIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB3cmFwcGVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJDbG9uZSh3cmFwcGVyKSB7XG4gICAgICByZXR1cm4gd3JhcHBlciBpbnN0YW5jZW9mIExhenlXcmFwcGVyXG4gICAgICAgID8gd3JhcHBlci5jbG9uZSgpXG4gICAgICAgIDogbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlci5fX3dyYXBwZWRfXywgd3JhcHBlci5fX2NoYWluX18sIGFycmF5Q29weSh3cmFwcGVyLl9fYWN0aW9uc19fKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cyBzcGxpdCBpbnRvIGdyb3VwcyB0aGUgbGVuZ3RoIG9mIGBzaXplYC5cbiAgICAgKiBJZiBgY29sbGVjdGlvbmAgY2FuJ3QgYmUgc3BsaXQgZXZlbmx5LCB0aGUgZmluYWwgY2h1bmsgd2lsbCBiZSB0aGUgcmVtYWluaW5nXG4gICAgICogZWxlbWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NpemU9MV0gVGhlIGxlbmd0aCBvZiBlYWNoIGNodW5rLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IGNvbnRhaW5pbmcgY2h1bmtzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNodW5rKFsnYScsICdiJywgJ2MnLCAnZCddLCAyKTtcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InXSwgWydjJywgJ2QnXV1cbiAgICAgKlxuICAgICAqIF8uY2h1bmsoWydhJywgJ2InLCAnYycsICdkJ10sIDMpO1xuICAgICAqIC8vID0+IFtbJ2EnLCAnYicsICdjJ10sIFsnZCddXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNodW5rKGFycmF5LCBzaXplLCBndWFyZCkge1xuICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoYXJyYXksIHNpemUsIGd1YXJkKSA6IHNpemUgPT0gbnVsbCkge1xuICAgICAgICBzaXplID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNpemUgPSBuYXRpdmVNYXgoK3NpemUgfHwgMSwgMSk7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMCxcbiAgICAgICAgICByZXNJbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGNlaWwobGVuZ3RoIC8gc2l6ZSkpO1xuXG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gYmFzZVNsaWNlKGFycmF5LCBpbmRleCwgKGluZGV4ICs9IHNpemUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSB3aXRoIGFsbCBmYWxzZXkgdmFsdWVzIHJlbW92ZWQuIFRoZSB2YWx1ZXMgYGZhbHNlYCwgYG51bGxgLFxuICAgICAqIGAwYCwgYFwiXCJgLCBgdW5kZWZpbmVkYCwgYW5kIGBOYU5gIGFyZSBmYWxzZXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29tcGFjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY29tcGFjdChbMCwgMSwgZmFsc2UsIDIsICcnLCAzXSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcGFjdChhcnJheSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwLFxuICAgICAgICAgIHJlc0luZGV4ID0gLTEsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBleGNsdWRpbmcgYWxsIHZhbHVlcyBvZiB0aGUgcHJvdmlkZWQgYXJyYXlzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIGFycmF5cyBvZiB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGlmZmVyZW5jZShbMSwgMiwgM10sIFs0LCAyXSk7XG4gICAgICogLy8gPT4gWzEsIDNdXG4gICAgICovXG4gICAgdmFyIGRpZmZlcmVuY2UgPSByZXN0UGFyYW0oZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKGFycmF5KVxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCBiYXNlRmxhdHRlbih2YWx1ZXMsIGZhbHNlLCB0cnVlKSlcbiAgICAgICAgOiBbXTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggYG5gIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgYmVnaW5uaW5nLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRyb3AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqXG4gICAgICogXy5kcm9wKFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3AoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoYXJyYXksIG4sIGd1YXJkKSA6IG4gPT0gbnVsbCkge1xuICAgICAgICBuID0gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIG4gPCAwID8gMCA6IG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggYG5gIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgZW5kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRyb3AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogXy5kcm9wUmlnaHQoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJvcFJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBuLCBndWFyZCkgOiBuID09IG51bGwpIHtcbiAgICAgICAgbiA9IDE7XG4gICAgICB9XG4gICAgICBuID0gbGVuZ3RoIC0gKCtuIHx8IDApO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgZXhjbHVkaW5nIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgZW5kLlxuICAgICAqIEVsZW1lbnRzIGFyZSBkcm9wcGVkIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgbWF0Y2ggdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wUmlnaHRXaGlsZShbMSwgMiwgM10sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuID4gMTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9KSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5kcm9wUmlnaHRXaGlsZSh1c2VycywgJ2FjdGl2ZScsIGZhbHNlKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5kcm9wUmlnaHRXaGlsZSh1c2VycywgJ2FjdGl2ZScpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJvcFJpZ2h0V2hpbGUoYXJyYXksIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZVdoaWxlKGFycmF5LCBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpLCB0cnVlLCB0cnVlKVxuICAgICAgICA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGV4Y2x1ZGluZyBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGJlZ2lubmluZy5cbiAgICAgKiBFbGVtZW50cyBhcmUgZHJvcHBlZCB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wV2hpbGUoWzEsIDIsIDNdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiA8IDM7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzNdXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLmRyb3BXaGlsZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLmRyb3BXaGlsZSh1c2VycywgJ2FjdGl2ZScsIGZhbHNlKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8uZHJvcFdoaWxlKHVzZXJzLCAnYWN0aXZlJyksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkcm9wV2hpbGUoYXJyYXksIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZVdoaWxlKGFycmF5LCBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpLCB0cnVlKVxuICAgICAgICA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbGxzIGVsZW1lbnRzIG9mIGBhcnJheWAgd2l0aCBgdmFsdWVgIGZyb20gYHN0YXJ0YCB1cCB0bywgYnV0IG5vdFxuICAgICAqIGluY2x1ZGluZywgYGVuZGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZpbGwuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZmlsbCBgYXJyYXlgIHdpdGguXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XG4gICAgICpcbiAgICAgKiBfLmZpbGwoYXJyYXksICdhJyk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsnYScsICdhJywgJ2EnXVxuICAgICAqXG4gICAgICogXy5maWxsKEFycmF5KDMpLCAyKTtcbiAgICAgKiAvLyA9PiBbMiwgMiwgMl1cbiAgICAgKlxuICAgICAqIF8uZmlsbChbNCwgNiwgOF0sICcqJywgMSwgMik7XG4gICAgICogLy8gPT4gWzQsICcqJywgOF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGFydCAmJiB0eXBlb2Ygc3RhcnQgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoYXJyYXksIHZhbHVlLCBzdGFydCkpIHtcbiAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICBlbmQgPSBsZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUZpbGwoYXJyYXksIHZhbHVlLCBzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRgIGV4Y2VwdCB0aGF0IGl0IHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdFxuICAgICAqIGVsZW1lbnQgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZm91bmQgZWxlbWVudCwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgZnVuY3Rpb24oY2hyKSB7XG4gICAgICogICByZXR1cm4gY2hyLnVzZXIgPT0gJ2Jhcm5leSc7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCB7ICd1c2VyJzogJ2ZyZWQnLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gMVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsICdhY3RpdmUnLCBmYWxzZSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IDJcbiAgICAgKi9cbiAgICB2YXIgZmluZEluZGV4ID0gY3JlYXRlRmluZEluZGV4KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRJbmRleGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50c1xuICAgICAqIG9mIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgZnVuY3Rpb24oY2hyKSB7XG4gICAgICogICByZXR1cm4gY2hyLnVzZXIgPT0gJ3BlYmJsZXMnO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kTGFzdEluZGV4KHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kTGFzdEluZGV4KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gMFxuICAgICAqL1xuICAgIHZhciBmaW5kTGFzdEluZGV4ID0gY3JlYXRlRmluZEluZGV4KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGhlYWRcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5maXJzdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIF8uZmlyc3QoW10pO1xuICAgICAqIC8vID0+IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpcnN0KGFycmF5KSB7XG4gICAgICByZXR1cm4gYXJyYXkgPyBhcnJheVswXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbGF0dGVucyBhIG5lc3RlZCBhcnJheS4gSWYgYGlzRGVlcGAgaXMgYHRydWVgIHRoZSBhcnJheSBpcyByZWN1cnNpdmVseVxuICAgICAqIGZsYXR0ZW5lZCwgb3RoZXJ3aXNlIGl0IGlzIG9ubHkgZmxhdHRlbmVkIGEgc2luZ2xlIGxldmVsLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBmbGF0dGVuLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuKFsxLCBbMiwgMywgWzRdXV0pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCBbNF1dXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBgaXNEZWVwYFxuICAgICAqIF8uZmxhdHRlbihbMSwgWzIsIDMsIFs0XV1dLCB0cnVlKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgNF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0dGVuKGFycmF5LCBpc0RlZXAsIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBpc0RlZXAsIGd1YXJkKSkge1xuICAgICAgICBpc0RlZXAgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgaXNEZWVwKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIGEgbmVzdGVkIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHJlY3Vyc2l2ZWx5IGZsYXR0ZW4uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZsYXR0ZW5EZWVwKFsxLCBbMiwgMywgWzRdXV0pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXR0ZW5EZWVwKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VGbGF0dGVuKGFycmF5LCB0cnVlKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGB2YWx1ZWAgaXMgZm91bmQgaW4gYGFycmF5YFxuICAgICAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0IGlzIHVzZWQgYXMgdGhlIG9mZnNldFxuICAgICAqIGZyb20gdGhlIGVuZCBvZiBgYXJyYXlgLiBJZiBgYXJyYXlgIGlzIHNvcnRlZCBwcm92aWRpbmcgYHRydWVgIGZvciBgZnJvbUluZGV4YFxuICAgICAqIHBlcmZvcm1zIGEgZmFzdGVyIGJpbmFyeSBzZWFyY2guXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtib29sZWFufG51bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20gb3IgYHRydWVgXG4gICAgICogIHRvIHBlcmZvcm0gYSBiaW5hcnkgc2VhcmNoIG9uIGEgc29ydGVkIGFycmF5LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5kZXhPZihbMSwgMiwgMSwgMl0sIDIpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGBmcm9tSW5kZXhgXG4gICAgICogXy5pbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogLy8gcGVyZm9ybWluZyBhIGJpbmFyeSBzZWFyY2hcbiAgICAgKiBfLmluZGV4T2YoWzEsIDEsIDIsIDJdLCAyLCB0cnVlKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZnJvbUluZGV4ID09ICdudW1iZXInKSB7XG4gICAgICAgIGZyb21JbmRleCA9IGZyb21JbmRleCA8IDAgPyBuYXRpdmVNYXgobGVuZ3RoICsgZnJvbUluZGV4LCAwKSA6IGZyb21JbmRleDtcbiAgICAgIH0gZWxzZSBpZiAoZnJvbUluZGV4KSB7XG4gICAgICAgIHZhciBpbmRleCA9IGJpbmFyeUluZGV4KGFycmF5LCB2YWx1ZSksXG4gICAgICAgICAgICBvdGhlciA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICBpZiAodmFsdWUgPT09IHZhbHVlID8gKHZhbHVlID09PSBvdGhlcikgOiAob3RoZXIgIT09IG90aGVyKSkge1xuICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXggfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgYnV0IHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5pdGlhbChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluaXRpYWwoYXJyYXkpIHtcbiAgICAgIHJldHVybiBkcm9wUmlnaHQoYXJyYXksIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdW5pcXVlIHZhbHVlcyBpbiBhbGwgcHJvdmlkZWQgYXJyYXlzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHNoYXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBfLmludGVyc2VjdGlvbihbMSwgMl0sIFs0LCAyXSwgWzIsIDFdKTtcbiAgICAgKiAvLyA9PiBbMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnRlcnNlY3Rpb24oKSB7XG4gICAgICB2YXIgYXJncyA9IFtdLFxuICAgICAgICAgIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgIGNhY2hlcyA9IFtdLFxuICAgICAgICAgIGluZGV4T2YgPSBnZXRJbmRleE9mKCksXG4gICAgICAgICAgaXNDb21tb24gPSBpbmRleE9mID09IGJhc2VJbmRleE9mLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICB3aGlsZSAoKythcmdzSW5kZXggPCBhcmdzTGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFyZ3VtZW50c1thcmdzSW5kZXhdO1xuICAgICAgICBpZiAoaXNBcnJheUxpa2UodmFsdWUpKSB7XG4gICAgICAgICAgYXJncy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICBjYWNoZXMucHVzaCgoaXNDb21tb24gJiYgdmFsdWUubGVuZ3RoID49IDEyMCkgPyBjcmVhdGVDYWNoZShhcmdzSW5kZXggJiYgdmFsdWUpIDogbnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFyZ3NMZW5ndGggPSBhcmdzLmxlbmd0aDtcbiAgICAgIGlmIChhcmdzTGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGFycmF5ID0gYXJnc1swXSxcbiAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMCxcbiAgICAgICAgICBzZWVuID0gY2FjaGVzWzBdO1xuXG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAoKHNlZW4gPyBjYWNoZUluZGV4T2Yoc2VlbiwgdmFsdWUpIDogaW5kZXhPZihyZXN1bHQsIHZhbHVlLCAwKSkgPCAwKSB7XG4gICAgICAgICAgYXJnc0luZGV4ID0gYXJnc0xlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoLS1hcmdzSW5kZXgpIHtcbiAgICAgICAgICAgIHZhciBjYWNoZSA9IGNhY2hlc1thcmdzSW5kZXhdO1xuICAgICAgICAgICAgaWYgKChjYWNoZSA/IGNhY2hlSW5kZXhPZihjYWNoZSwgdmFsdWUpIDogaW5kZXhPZihhcmdzW2FyZ3NJbmRleF0sIHZhbHVlLCAwKSkgPCAwKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2Vlbikge1xuICAgICAgICAgICAgc2Vlbi5wdXNoKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sYXN0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhc3QoYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbmRleE9mYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXG4gICAgICogYGFycmF5YCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtib29sZWFufG51bWJlcn0gW2Zyb21JbmRleD1hcnJheS5sZW5ndGgtMV0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tXG4gICAgICogIG9yIGB0cnVlYCB0byBwZXJmb3JtIGEgYmluYXJ5IHNlYXJjaCBvbiBhIHNvcnRlZCBhcnJheS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmxhc3RJbmRleE9mKFsxLCAyLCAxLCAyXSwgMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgYGZyb21JbmRleGBcbiAgICAgKiBfLmxhc3RJbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XG4gICAgICogLy8gPT4gMVxuICAgICAqXG4gICAgICogLy8gcGVyZm9ybWluZyBhIGJpbmFyeSBzZWFyY2hcbiAgICAgKiBfLmxhc3RJbmRleE9mKFsxLCAxLCAyLCAyXSwgMiwgdHJ1ZSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgaWYgKHR5cGVvZiBmcm9tSW5kZXggPT0gJ251bWJlcicpIHtcbiAgICAgICAgaW5kZXggPSAoZnJvbUluZGV4IDwgMCA/IG5hdGl2ZU1heChsZW5ndGggKyBmcm9tSW5kZXgsIDApIDogbmF0aXZlTWluKGZyb21JbmRleCB8fCAwLCBsZW5ndGggLSAxKSkgKyAxO1xuICAgICAgfSBlbHNlIGlmIChmcm9tSW5kZXgpIHtcbiAgICAgICAgaW5kZXggPSBiaW5hcnlJbmRleChhcnJheSwgdmFsdWUsIHRydWUpIC0gMTtcbiAgICAgICAgdmFyIG90aGVyID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAodmFsdWUgPT09IHZhbHVlID8gKHZhbHVlID09PSBvdGhlcikgOiAob3RoZXIgIT09IG90aGVyKSkge1xuICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpbmRleE9mTmFOKGFycmF5LCBpbmRleCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICBpZiAoYXJyYXlbaW5kZXhdID09PSB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIHByb3ZpZGVkIHZhbHVlcyBmcm9tIGBhcnJheWAgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLndpdGhvdXRgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzLCAxLCAyLCAzXTtcbiAgICAgKlxuICAgICAqIF8ucHVsbChhcnJheSwgMiwgMyk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHB1bGwoKSB7XG4gICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICBhcnJheSA9IGFyZ3NbMF07XG5cbiAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gMCxcbiAgICAgICAgICBpbmRleE9mID0gZ2V0SW5kZXhPZigpLFxuICAgICAgICAgIGxlbmd0aCA9IGFyZ3MubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgZnJvbUluZGV4ID0gMCxcbiAgICAgICAgICAgIHZhbHVlID0gYXJnc1tpbmRleF07XG5cbiAgICAgICAgd2hpbGUgKChmcm9tSW5kZXggPSBpbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSkgPiAtMSkge1xuICAgICAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBmcm9tSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBlbGVtZW50cyBmcm9tIGBhcnJheWAgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gaW5kZXhlcyBhbmQgcmV0dXJuc1xuICAgICAqIGFuIGFycmF5IG9mIHRoZSByZW1vdmVkIGVsZW1lbnRzLiBJbmRleGVzIG1heSBiZSBzcGVjaWZpZWQgYXMgYW4gYXJyYXkgb2ZcbiAgICAgKiBpbmRleGVzIG9yIGFzIGluZGl2aWR1YWwgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5hdGAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gW2luZGV4ZXNdIFRoZSBpbmRleGVzIG9mIGVsZW1lbnRzIHRvIHJlbW92ZSxcbiAgICAgKiAgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgaW5kZXhlcyBvciBhcnJheXMgb2YgaW5kZXhlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbNSwgMTAsIDE1LCAyMF07XG4gICAgICogdmFyIGV2ZW5zID0gXy5wdWxsQXQoYXJyYXksIDEsIDMpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFs1LCAxNV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGV2ZW5zKTtcbiAgICAgKiAvLyA9PiBbMTAsIDIwXVxuICAgICAqL1xuICAgIHZhciBwdWxsQXQgPSByZXN0UGFyYW0oZnVuY3Rpb24oYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIGluZGV4ZXMgPSBiYXNlRmxhdHRlbihpbmRleGVzKTtcblxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VBdChhcnJheSwgaW5kZXhlcyk7XG4gICAgICBiYXNlUHVsbEF0KGFycmF5LCBpbmRleGVzLnNvcnQoYmFzZUNvbXBhcmVBc2NlbmRpbmcpKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBlbGVtZW50cyBmcm9tIGBhcnJheWAgdGhhdCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3JcbiAgICAgKiBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcmVtb3ZlZCBlbGVtZW50cy4gVGhlIHByZWRpY2F0ZSBpcyBib3VuZCB0b1xuICAgICAqIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmZpbHRlcmAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzLCA0XTtcbiAgICAgKiB2YXIgZXZlbnMgPSBfLnJlbW92ZShhcnJheSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDA7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWzEsIDNdXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhldmVucyk7XG4gICAgICogLy8gPT4gWzIsIDRdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVtb3ZlKGFycmF5LCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGluZGV4ZXMgPSBbXSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHByZWRpY2F0ZSA9IGdldENhbGxiYWNrKHByZWRpY2F0ZSwgdGhpc0FyZywgMyk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgaW5kZXhlcy5wdXNoKGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYmFzZVB1bGxBdChhcnJheSwgaW5kZXhlcyk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGJ1dCB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIHRhaWxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlc3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXN0KGFycmF5KSB7XG4gICAgICByZXR1cm4gZHJvcChhcnJheSwgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgZnJvbSBgc3RhcnRgIHVwIHRvLCBidXQgbm90IGluY2x1ZGluZywgYGVuZGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgdXNlZCBpbnN0ZWFkIG9mIGBBcnJheSNzbGljZWAgdG8gc3VwcG9ydCBub2RlXG4gICAgICogbGlzdHMgaW4gSUUgPCA5IGFuZCB0byBlbnN1cmUgZGVuc2UgYXJyYXlzIGFyZSByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzbGljZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGVuZCAmJiB0eXBlb2YgZW5kICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBzdGFydCwgZW5kKSkge1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIGVuZCA9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZXMgYSBiaW5hcnkgc2VhcmNoIHRvIGRldGVybWluZSB0aGUgbG93ZXN0IGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkXG4gICAgICogYmUgaW5zZXJ0ZWQgaW50byBgYXJyYXlgIGluIG9yZGVyIHRvIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLiBJZiBhbiBpdGVyYXRlZVxuICAgICAqIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGl0IGlzIGludm9rZWQgZm9yIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgXG4gICAgICogdG8gY29tcHV0ZSB0aGVpciBzb3J0IHJhbmtpbmcuIFRoZSBpdGVyYXRlZSBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kXG4gICAgICogaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0ZWRJbmRleChbMzAsIDUwXSwgNDApO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIF8uc29ydGVkSW5kZXgoWzQsIDQsIDUsIDVdLCA1KTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiB2YXIgZGljdCA9IHsgJ2RhdGEnOiB7ICd0aGlydHknOiAzMCwgJ2ZvcnR5JzogNDAsICdmaWZ0eSc6IDUwIH0gfTtcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGFuIGl0ZXJhdGVlIGZ1bmN0aW9uXG4gICAgICogXy5zb3J0ZWRJbmRleChbJ3RoaXJ0eScsICdmaWZ0eSddLCAnZm9ydHknLCBmdW5jdGlvbih3b3JkKSB7XG4gICAgICogICByZXR1cm4gdGhpcy5kYXRhW3dvcmRdO1xuICAgICAqIH0sIGRpY3QpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5zb3J0ZWRJbmRleChbeyAneCc6IDMwIH0sIHsgJ3gnOiA1MCB9XSwgeyAneCc6IDQwIH0sICd4Jyk7XG4gICAgICogLy8gPT4gMVxuICAgICAqL1xuICAgIHZhciBzb3J0ZWRJbmRleCA9IGNyZWF0ZVNvcnRlZEluZGV4KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRlZEluZGV4YCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBoaWdoZXN0XG4gICAgICogaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBgYXJyYXlgIGluIG9yZGVyIHRvXG4gICAgICogbWFpbnRhaW4gaXRzIHNvcnQgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4KFs0LCA0LCA1LCA1XSwgNSk7XG4gICAgICogLy8gPT4gNFxuICAgICAqL1xuICAgIHZhciBzb3J0ZWRMYXN0SW5kZXggPSBjcmVhdGVTb3J0ZWRJbmRleCh0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggYG5gIGVsZW1lbnRzIHRha2VuIGZyb20gdGhlIGJlZ2lubmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byB0YWtlLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICpcbiAgICAgKiBfLnRha2UoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBuLCBndWFyZCkgOiBuID09IG51bGwpIHtcbiAgICAgICAgbiA9IDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCAwLCBuIDwgMCA/IDAgOiBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBlbmQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gdGFrZS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzNdXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqXG4gICAgICogXy50YWtlUmlnaHQoWzEsIDIsIDNdLCA1KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlUmlnaHQoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoYXJyYXksIG4sIGd1YXJkKSA6IG4gPT0gbnVsbCkge1xuICAgICAgICBuID0gMTtcbiAgICAgIH1cbiAgICAgIG4gPSBsZW5ndGggLSAoK24gfHwgMCk7XG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCBuIDwgMCA/IDAgOiBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGVsZW1lbnRzIHRha2VuIGZyb20gdGhlIGVuZC4gRWxlbWVudHMgYXJlXG4gICAgICogdGFrZW4gdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXMgYm91bmQgdG8gYHRoaXNBcmdgXG4gICAgICogYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUoWzEsIDIsIDNdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiA+IDE7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzIsIDNdXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLnRha2VSaWdodFdoaWxlKHVzZXJzLCB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy50YWtlUmlnaHRXaGlsZSh1c2VycywgJ2FjdGl2ZScsIGZhbHNlKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy50YWtlUmlnaHRXaGlsZSh1c2VycywgJ2FjdGl2ZScpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZVJpZ2h0V2hpbGUoYXJyYXksIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZVdoaWxlKGFycmF5LCBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpLCBmYWxzZSwgdHJ1ZSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGVsZW1lbnRzIHRha2VuIGZyb20gdGhlIGJlZ2lubmluZy4gRWxlbWVudHNcbiAgICAgKiBhcmUgdGFrZW4gdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXMgYm91bmQgdG9cbiAgICAgKiBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZVdoaWxlKFsxLCAyLCAzXSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gPCAzO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2V9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLnRha2VXaGlsZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLnRha2VXaGlsZSh1c2VycywgJ2FjdGl2ZScsIGZhbHNlKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLnRha2VXaGlsZSh1c2VycywgJ2FjdGl2ZScpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0Q2FsbGJhY2socHJlZGljYXRlLCB0aGlzQXJnLCAzKSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMsIGluIG9yZGVyLCBvZiB0aGUgcHJvdmlkZWQgYXJyYXlzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbWJpbmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51bmlvbihbMSwgMl0sIFs0LCAyXSwgWzIsIDFdKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgNF1cbiAgICAgKi9cbiAgICB2YXIgdW5pb24gPSByZXN0UGFyYW0oZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4oYXJyYXlzLCBmYWxzZSwgdHJ1ZSkpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGR1cGxpY2F0ZS1mcmVlIHZlcnNpb24gb2YgYW4gYXJyYXksIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLCBpbiB3aGljaCBvbmx5IHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgZWFjaCBlbGVtZW50XG4gICAgICogaXMga2VwdC4gUHJvdmlkaW5nIGB0cnVlYCBmb3IgYGlzU29ydGVkYCBwZXJmb3JtcyBhIGZhc3RlciBzZWFyY2ggYWxnb3JpdGhtXG4gICAgICogZm9yIHNvcnRlZCBhcnJheXMuIElmIGFuIGl0ZXJhdGVlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGl0IGlzIGludm9rZWQgZm9yXG4gICAgICogZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoIHVuaXF1ZW5lc3NcbiAgICAgKiBpcyBjb21wdXRlZC4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWVcbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyB1bmlxdWVcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1NvcnRlZF0gU3BlY2lmeSB0aGUgYXJyYXkgaXMgc29ydGVkLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlXSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZS12YWx1ZS1mcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXEoWzIsIDEsIDJdKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGBpc1NvcnRlZGBcbiAgICAgKiBfLnVuaXEoWzEsIDEsIDJdLCB0cnVlKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGFuIGl0ZXJhdGVlIGZ1bmN0aW9uXG4gICAgICogXy51bmlxKFsxLCAyLjUsIDEuNSwgMl0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiB0aGlzLmZsb29yKG4pO1xuICAgICAqIH0sIE1hdGgpO1xuICAgICAqIC8vID0+IFsxLCAyLjVdXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8udW5pcShbeyAneCc6IDEgfSwgeyAneCc6IDIgfSwgeyAneCc6IDEgfV0sICd4Jyk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxIH0sIHsgJ3gnOiAyIH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW5pcShhcnJheSwgaXNTb3J0ZWQsIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGlzU29ydGVkICE9IG51bGwgJiYgdHlwZW9mIGlzU29ydGVkICE9ICdib29sZWFuJykge1xuICAgICAgICB0aGlzQXJnID0gaXRlcmF0ZWU7XG4gICAgICAgIGl0ZXJhdGVlID0gaXNJdGVyYXRlZUNhbGwoYXJyYXksIGlzU29ydGVkLCB0aGlzQXJnKSA/IG51bGwgOiBpc1NvcnRlZDtcbiAgICAgICAgaXNTb3J0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBmdW5jID0gZ2V0Q2FsbGJhY2soKTtcbiAgICAgIGlmICghKGZ1bmMgPT09IGJhc2VDYWxsYmFjayAmJiBpdGVyYXRlZSA9PSBudWxsKSkge1xuICAgICAgICBpdGVyYXRlZSA9IGZ1bmMoaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChpc1NvcnRlZCAmJiBnZXRJbmRleE9mKCkgPT0gYmFzZUluZGV4T2YpXG4gICAgICAgID8gc29ydGVkVW5pcShhcnJheSwgaXRlcmF0ZWUpXG4gICAgICAgIDogYmFzZVVuaXEoYXJyYXksIGl0ZXJhdGVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnppcGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhbiBhcnJheSBvZiBncm91cGVkXG4gICAgICogZWxlbWVudHMgYW5kIGNyZWF0ZXMgYW4gYXJyYXkgcmVncm91cGluZyB0aGUgZWxlbWVudHMgdG8gdGhlaXIgcHJlLXppcFxuICAgICAqIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cyB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHJlZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHppcHBlZCA9IF8uemlwKFsnZnJlZCcsICdiYXJuZXknXSwgWzMwLCA0MF0sIFt0cnVlLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IFtbJ2ZyZWQnLCAzMCwgdHJ1ZV0sIFsnYmFybmV5JywgNDAsIGZhbHNlXV1cbiAgICAgKlxuICAgICAqIF8udW56aXAoemlwcGVkKTtcbiAgICAgKiAvLyA9PiBbWydmcmVkJywgJ2Jhcm5leSddLCBbMzAsIDQwXSwgW3RydWUsIGZhbHNlXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnppcChhcnJheSkge1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSAwO1xuXG4gICAgICBhcnJheSA9IGFycmF5RmlsdGVyKGFycmF5LCBmdW5jdGlvbihncm91cCkge1xuICAgICAgICBpZiAoaXNBcnJheUxpa2UoZ3JvdXApKSB7XG4gICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGdyb3VwLmxlbmd0aCwgbGVuZ3RoKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBhcnJheU1hcChhcnJheSwgYmFzZVByb3BlcnR5KGluZGV4KSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW56aXBgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYW4gaXRlcmF0ZWUgdG8gc3BlY2lmeVxuICAgICAqIGhvdyByZWdyb3VwZWQgdmFsdWVzIHNob3VsZCBiZSBjb21iaW5lZC4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgXG4gICAgICogYW5kIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czogKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGdyb3VwKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzIHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgZnVuY3Rpb24gdG8gY29tYmluZSByZWdyb3VwZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHJlZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHppcHBlZCA9IF8uemlwKFsxLCAyXSwgWzEwLCAyMF0sIFsxMDAsIDIwMF0pO1xuICAgICAqIC8vID0+IFtbMSwgMTAsIDEwMF0sIFsyLCAyMCwgMjAwXV1cbiAgICAgKlxuICAgICAqIF8udW56aXBXaXRoKHppcHBlZCwgXy5hZGQpO1xuICAgICAqIC8vID0+IFszLCAzMCwgMzAwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuemlwV2l0aChhcnJheSwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gdW56aXAoYXJyYXkpO1xuICAgICAgaWYgKGl0ZXJhdGVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGl0ZXJhdGVlID0gYmluZENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCA0KTtcbiAgICAgIHJldHVybiBhcnJheU1hcChyZXN1bHQsIGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgICAgIHJldHVybiBhcnJheVJlZHVjZShncm91cCwgaXRlcmF0ZWUsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGV4Y2x1ZGluZyBhbGwgcHJvdmlkZWQgdmFsdWVzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZpbHRlci5cbiAgICAgKiBAcGFyYW0gey4uLip9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ud2l0aG91dChbMSwgMiwgMSwgM10sIDEsIDIpO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqL1xuICAgIHZhciB3aXRob3V0ID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZShhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSB0aGF0IGlzIHRoZSBbc3ltbWV0cmljIGRpZmZlcmVuY2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N5bW1ldHJpY19kaWZmZXJlbmNlKVxuICAgICAqIG9mIHRoZSBwcm92aWRlZCBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnhvcihbMSwgMl0sIFs0LCAyXSk7XG4gICAgICogLy8gPT4gWzEsIDRdXG4gICAgICovXG4gICAgZnVuY3Rpb24geG9yKCkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGFycmF5ID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgaWYgKGlzQXJyYXlMaWtlKGFycmF5KSkge1xuICAgICAgICAgIHZhciByZXN1bHQgPSByZXN1bHRcbiAgICAgICAgICAgID8gYmFzZURpZmZlcmVuY2UocmVzdWx0LCBhcnJheSkuY29uY2F0KGJhc2VEaWZmZXJlbmNlKGFycmF5LCByZXN1bHQpKVxuICAgICAgICAgICAgOiBhcnJheTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdCA/IGJhc2VVbmlxKHJlc3VsdCkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMsIHRoZSBmaXJzdCBvZiB3aGljaCBjb250YWlucyB0aGUgZmlyc3RcbiAgICAgKiBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gYXJyYXlzLCB0aGUgc2Vjb25kIG9mIHdoaWNoIGNvbnRhaW5zIHRoZSBzZWNvbmQgZWxlbWVudHNcbiAgICAgKiBvZiB0aGUgZ2l2ZW4gYXJyYXlzLCBhbmQgc28gb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXAoWydmcmVkJywgJ2Jhcm5leSddLCBbMzAsIDQwXSwgW3RydWUsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gW1snZnJlZCcsIDMwLCB0cnVlXSwgWydiYXJuZXknLCA0MCwgZmFsc2VdXVxuICAgICAqL1xuICAgIHZhciB6aXAgPSByZXN0UGFyYW0odW56aXApO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGludmVyc2Ugb2YgYF8ucGFpcnNgOyB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIG9iamVjdCBjb21wb3NlZCBmcm9tIGFycmF5c1xuICAgICAqIG9mIHByb3BlcnR5IG5hbWVzIGFuZCB2YWx1ZXMuIFByb3ZpZGUgZWl0aGVyIGEgc2luZ2xlIHR3byBkaW1lbnNpb25hbCBhcnJheSxcbiAgICAgKiBlLmcuIGBbW2tleTEsIHZhbHVlMV0sIFtrZXkyLCB2YWx1ZTJdXWAgb3IgdHdvIGFycmF5cywgb25lIG9mIHByb3BlcnR5IG5hbWVzXG4gICAgICogYW5kIG9uZSBvZiBjb3JyZXNwb25kaW5nIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBvYmplY3RcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlcz1bXV0gVGhlIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcE9iamVjdChbWydmcmVkJywgMzBdLCBbJ2Jhcm5leScsIDQwXV0pO1xuICAgICAqIC8vID0+IHsgJ2ZyZWQnOiAzMCwgJ2Jhcm5leSc6IDQwIH1cbiAgICAgKlxuICAgICAqIF8uemlwT2JqZWN0KFsnZnJlZCcsICdiYXJuZXknXSwgWzMwLCA0MF0pO1xuICAgICAqIC8vID0+IHsgJ2ZyZWQnOiAzMCwgJ2Jhcm5leSc6IDQwIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB6aXBPYmplY3QocHJvcHMsIHZhbHVlcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMgPyBwcm9wcy5sZW5ndGggOiAwLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICBpZiAobGVuZ3RoICYmICF2YWx1ZXMgJiYgIWlzQXJyYXkocHJvcHNbMF0pKSB7XG4gICAgICAgIHZhbHVlcyA9IFtdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWVzW2luZGV4XTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkpIHtcbiAgICAgICAgICByZXN1bHRba2V5WzBdXSA9IGtleVsxXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnppcGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhbiBpdGVyYXRlZSB0byBzcGVjaWZ5XG4gICAgICogaG93IGdyb3VwZWQgdmFsdWVzIHNob3VsZCBiZSBjb21iaW5lZC4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgXG4gICAgICogYW5kIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czogKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGdyb3VwKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBmdW5jdGlvbiB0byBjb21iaW5lIGdyb3VwZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uemlwV2l0aChbMSwgMl0sIFsxMCwgMjBdLCBbMTAwLCAyMDBdLCBfLmFkZCk7XG4gICAgICogLy8gPT4gWzExMSwgMjIyXVxuICAgICAqL1xuICAgIHZhciB6aXBXaXRoID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5cy5sZW5ndGgsXG4gICAgICAgICAgaXRlcmF0ZWUgPSBhcnJheXNbbGVuZ3RoIC0gMl0sXG4gICAgICAgICAgdGhpc0FyZyA9IGFycmF5c1tsZW5ndGggLSAxXTtcblxuICAgICAgaWYgKGxlbmd0aCA+IDIgJiYgdHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgbGVuZ3RoIC09IDI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVyYXRlZSA9IChsZW5ndGggPiAxICYmIHR5cGVvZiB0aGlzQXJnID09ICdmdW5jdGlvbicpID8gKC0tbGVuZ3RoLCB0aGlzQXJnKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpc0FyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGFycmF5cy5sZW5ndGggPSBsZW5ndGg7XG4gICAgICByZXR1cm4gdW56aXBXaXRoKGFycmF5cywgaXRlcmF0ZWUsIHRoaXNBcmcpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBsb2Rhc2hgIG9iamVjdCB0aGF0IHdyYXBzIGB2YWx1ZWAgd2l0aCBleHBsaWNpdCBtZXRob2RcbiAgICAgKiBjaGFpbmluZyBlbmFibGVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENoYWluXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhZ2UnOiAxIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogdmFyIHlvdW5nZXN0ID0gXy5jaGFpbih1c2VycylcbiAgICAgKiAgIC5zb3J0QnkoJ2FnZScpXG4gICAgICogICAubWFwKGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgICByZXR1cm4gY2hyLnVzZXIgKyAnIGlzICcgKyBjaHIuYWdlO1xuICAgICAqICAgfSlcbiAgICAgKiAgIC5maXJzdCgpXG4gICAgICogICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiAncGViYmxlcyBpcyAxJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNoYWluKHZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoKHZhbHVlKTtcbiAgICAgIHJlc3VsdC5fX2NoYWluX18gPSB0cnVlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpbnZva2VzIGBpbnRlcmNlcHRvcmAgYW5kIHJldHVybnMgYHZhbHVlYC4gVGhlIGludGVyY2VwdG9yIGlzXG4gICAgICogYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLiBUaGUgcHVycG9zZSBvZlxuICAgICAqIHRoaXMgbWV0aG9kIGlzIHRvIFwidGFwIGludG9cIiBhIG1ldGhvZCBjaGFpbiBpbiBvcmRlciB0byBwZXJmb3JtIG9wZXJhdGlvbnNcbiAgICAgKiBvbiBpbnRlcm1lZGlhdGUgcmVzdWx0cyB3aXRoaW4gdGhlIGNoYWluLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENoYWluXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvdmlkZSB0byBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGludGVyY2VwdG9yIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXyhbMSwgMiwgM10pXG4gICAgICogIC50YXAoZnVuY3Rpb24oYXJyYXkpIHtcbiAgICAgKiAgICBhcnJheS5wb3AoKTtcbiAgICAgKiAgfSlcbiAgICAgKiAgLnJldmVyc2UoKVxuICAgICAqICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YXAodmFsdWUsIGludGVyY2VwdG9yLCB0aGlzQXJnKSB7XG4gICAgICBpbnRlcmNlcHRvci5jYWxsKHRoaXNBcmcsIHZhbHVlKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnRhcGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ2hhaW5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm92aWRlIHRvIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaW50ZXJjZXB0b3IgVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGludGVyY2VwdG9yYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oJyAgYWJjICAnKVxuICAgICAqICAuY2hhaW4oKVxuICAgICAqICAudHJpbSgpXG4gICAgICogIC50aHJ1KGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICAgcmV0dXJuIFt2YWx1ZV07XG4gICAgICogIH0pXG4gICAgICogIC52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsnYWJjJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0aHJ1KHZhbHVlLCBpbnRlcmNlcHRvciwgdGhpc0FyZykge1xuICAgICAgcmV0dXJuIGludGVyY2VwdG9yLmNhbGwodGhpc0FyZywgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgZXhwbGljaXQgbWV0aG9kIGNoYWluaW5nIG9uIHRoZSB3cmFwcGVyIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNoYWluXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ2hhaW5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gd2l0aG91dCBleHBsaWNpdCBjaGFpbmluZ1xuICAgICAqIF8odXNlcnMpLmZpcnN0KCk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfVxuICAgICAqXG4gICAgICogLy8gd2l0aCBleHBsaWNpdCBjaGFpbmluZ1xuICAgICAqIF8odXNlcnMpLmNoYWluKClcbiAgICAgKiAgIC5maXJzdCgpXG4gICAgICogICAucGljaygndXNlcicpXG4gICAgICogICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2Jhcm5leScgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJDaGFpbigpIHtcbiAgICAgIHJldHVybiBjaGFpbih0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyB0aGUgY2hhaW5lZCBzZXF1ZW5jZSBhbmQgcmV0dXJucyB0aGUgd3JhcHBlZCByZXN1bHQuXG4gICAgICpcbiAgICAgKiBAbmFtZSBjb21taXRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMl07XG4gICAgICogdmFyIHdyYXBwZXIgPSBfKGFycmF5KS5wdXNoKDMpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogd3JhcHBlciA9IHdyYXBwZXIuY29tbWl0KCk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogd3JhcHBlci5sYXN0KCk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJDb21taXQoKSB7XG4gICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodGhpcy52YWx1ZSgpLCB0aGlzLl9fY2hhaW5fXyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBjaGFpbmVkIHNlcXVlbmNlIHBsYW50aW5nIGB2YWx1ZWAgYXMgdGhlIHdyYXBwZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBwbGFudFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENoYWluXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyXTtcbiAgICAgKiB2YXIgd3JhcHBlciA9IF8oYXJyYXkpLm1hcChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgcmV0dXJuIE1hdGgucG93KHZhbHVlLCAyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHZhciBvdGhlciA9IFszLCA0XTtcbiAgICAgKiB2YXIgb3RoZXJXcmFwcGVyID0gd3JhcHBlci5wbGFudChvdGhlcik7XG4gICAgICpcbiAgICAgKiBvdGhlcldyYXBwZXIudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbOSwgMTZdXG4gICAgICpcbiAgICAgKiB3cmFwcGVyLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzEsIDRdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclBsYW50KHZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0LFxuICAgICAgICAgIHBhcmVudCA9IHRoaXM7XG5cbiAgICAgIHdoaWxlIChwYXJlbnQgaW5zdGFuY2VvZiBiYXNlTG9kYXNoKSB7XG4gICAgICAgIHZhciBjbG9uZSA9IHdyYXBwZXJDbG9uZShwYXJlbnQpO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgcHJldmlvdXMuX193cmFwcGVkX18gPSBjbG9uZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBjbG9uZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJldmlvdXMgPSBjbG9uZTtcbiAgICAgICAgcGFyZW50ID0gcGFyZW50Ll9fd3JhcHBlZF9fO1xuICAgICAgfVxuICAgICAgcHJldmlvdXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV2ZXJzZXMgdGhlIHdyYXBwZWQgYXJyYXkgc28gdGhlIGZpcnN0IGVsZW1lbnQgYmVjb21lcyB0aGUgbGFzdCwgdGhlXG4gICAgICogc2Vjb25kIGVsZW1lbnQgYmVjb21lcyB0aGUgc2Vjb25kIHRvIGxhc3QsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIHRoZSB3cmFwcGVkIGFycmF5LlxuICAgICAqXG4gICAgICogQG5hbWUgcmV2ZXJzZVxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENoYWluXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IHJldmVyc2VkIGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzXTtcbiAgICAgKlxuICAgICAqIF8oYXJyYXkpLnJldmVyc2UoKS52YWx1ZSgpXG4gICAgICogLy8gPT4gWzMsIDIsIDFdXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWzMsIDIsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclJldmVyc2UoKSB7XG4gICAgICB2YXIgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoKSB7XG4gICAgICAgICAgdmFsdWUgPSBuZXcgTGF6eVdyYXBwZXIodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlLnJldmVyc2UoKSwgdGhpcy5fX2NoYWluX18pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudGhydShmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUucmV2ZXJzZSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgdGhlIHJlc3VsdCBvZiBjb2VyY2luZyB0aGUgdW53cmFwcGVkIHZhbHVlIHRvIGEgc3RyaW5nLlxuICAgICAqXG4gICAgICogQG5hbWUgdG9TdHJpbmdcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvZXJjZWQgc3RyaW5nIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKFsxLCAyLCAzXSkudG9TdHJpbmcoKTtcbiAgICAgKiAvLyA9PiAnMSwyLDMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclRvU3RyaW5nKCkge1xuICAgICAgcmV0dXJuICh0aGlzLnZhbHVlKCkgKyAnJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgdGhlIGNoYWluZWQgc2VxdWVuY2UgdG8gZXh0cmFjdCB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG5hbWUgdmFsdWVcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBydW4sIHRvSlNPTiwgdmFsdWVPZlxuICAgICAqIEBjYXRlZ29yeSBDaGFpblxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB1bndyYXBwZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oWzEsIDIsIDNdKS52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJWYWx1ZSgpIHtcbiAgICAgIHJldHVybiBiYXNlV3JhcHBlclZhbHVlKHRoaXMuX193cmFwcGVkX18sIHRoaXMuX19hY3Rpb25zX18pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4ga2V5cywgb3IgaW5kZXhlcyxcbiAgICAgKiBvZiBgY29sbGVjdGlvbmAuIEtleXMgbWF5IGJlIHNwZWNpZmllZCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50cyBvciBhcyBhcnJheXNcbiAgICAgKiBvZiBrZXlzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7Li4uKG51bWJlcnxudW1iZXJbXXxzdHJpbmd8c3RyaW5nW10pfSBbcHJvcHNdIFRoZSBwcm9wZXJ0eSBuYW1lc1xuICAgICAqICBvciBpbmRleGVzIG9mIGVsZW1lbnRzIHRvIHBpY2ssIHNwZWNpZmllZCBpbmRpdmlkdWFsbHkgb3IgaW4gYXJyYXlzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHBpY2tlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5hdChbJ2EnLCAnYicsICdjJ10sIFswLCAyXSk7XG4gICAgICogLy8gPT4gWydhJywgJ2MnXVxuICAgICAqXG4gICAgICogXy5hdChbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXSwgMCwgMik7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAncGViYmxlcyddXG4gICAgICovXG4gICAgdmFyIGF0ID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByb3BzKSB7XG4gICAgICBpZiAoaXNBcnJheUxpa2UoY29sbGVjdGlvbikpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHRvSXRlcmFibGUoY29sbGVjdGlvbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUF0KGNvbGxlY3Rpb24sIGJhc2VGbGF0dGVuKHByb3BzKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiBrZXlzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIHRocm91Z2ggYGl0ZXJhdGVlYC4gVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVcbiAgICAgKiBvZiBlYWNoIGtleSBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBrZXkgd2FzIHJldHVybmVkIGJ5IGBpdGVyYXRlZWAuXG4gICAgICogVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbXBvc2VkIGFnZ3JlZ2F0ZSBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY291bnRCeShbNC4zLCA2LjEsIDYuNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBNYXRoLmZsb29yKG4pO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJzQnOiAxLCAnNic6IDIgfVxuICAgICAqXG4gICAgICogXy5jb3VudEJ5KFs0LjMsIDYuMSwgNi40XSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIHRoaXMuZmxvb3Iobik7XG4gICAgICogfSwgTWF0aCk7XG4gICAgICogLy8gPT4geyAnNCc6IDEsICc2JzogMiB9XG4gICAgICpcbiAgICAgKiBfLmNvdW50QnkoWydvbmUnLCAndHdvJywgJ3RocmVlJ10sICdsZW5ndGgnKTtcbiAgICAgKiAvLyA9PiB7ICczJzogMiwgJzUnOiAxIH1cbiAgICAgKi9cbiAgICB2YXIgY291bnRCeSA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwga2V5KSA/ICsrcmVzdWx0W2tleV0gOiAocmVzdWx0W2tleV0gPSAxKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbGwqKiBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAuXG4gICAgICogVGhlIHByZWRpY2F0ZSBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gICAgICogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgYWxsXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmV2ZXJ5KFt0cnVlLCAxLCBudWxsLCAneWVzJ10sIEJvb2xlYW4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5ldmVyeSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZXZlcnkodXNlcnMsICdhY3RpdmUnLCBmYWxzZSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmV2ZXJ5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBldmVyeShjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RXZlcnkgOiBiYXNlRXZlcnk7XG4gICAgICBpZiAodGhpc0FyZyAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIHRoaXNBcmcpKSB7XG4gICAgICAgIHByZWRpY2F0ZSA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPSAnZnVuY3Rpb24nIHx8IHRoaXNBcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgcHJlZGljYXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCwgcmV0dXJuaW5nIGFuIGFycmF5IG9mIGFsbCBlbGVtZW50c1xuICAgICAqIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgc2VsZWN0XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5maWx0ZXIoWzQsIDUsIDZdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbNCwgNl1cbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8uZmlsdGVyKHVzZXJzLCB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLmZpbHRlcih1c2VycywgJ2FjdGl2ZScsIGZhbHNlKSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8uZmlsdGVyKHVzZXJzLCAnYWN0aXZlJyksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIHRoaXNBcmcpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RmlsdGVyIDogYmFzZUZpbHRlcjtcbiAgICAgIHByZWRpY2F0ZSA9IGdldENhbGxiYWNrKHByZWRpY2F0ZSwgdGhpc0FyZywgMyk7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBwcmVkaWNhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgdGhlIGZpcnN0IGVsZW1lbnRcbiAgICAgKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZFxuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGRldGVjdFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hdGNoZWQgZWxlbWVudCwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhZ2UnOiAxLCAgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsIGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgcmV0dXJuIGNoci5hZ2UgPCA0MDtcbiAgICAgKiB9KSwgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucmVzdWx0KF8uZmluZCh1c2VycywgeyAnYWdlJzogMSwgJ2FjdGl2ZSc6IHRydWUgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gJ3BlYmJsZXMnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucmVzdWx0KF8uZmluZCh1c2VycywgJ2FjdGl2ZScpLCAndXNlcicpO1xuICAgICAqIC8vID0+ICdiYXJuZXknXG4gICAgICovXG4gICAgdmFyIGZpbmQgPSBjcmVhdGVGaW5kKGJhc2VFYWNoKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzZWFyY2guXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmluZExhc3QoWzEsIDIsIDMsIDRdLCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgdmFyIGZpbmRMYXN0ID0gY3JlYXRlRmluZChiYXNlRWFjaFJpZ2h0LCB0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCBhbmQgdGhlXG4gICAgICogc291cmNlIG9iamVjdCwgcmV0dXJuaW5nIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgaGFzIGVxdWl2YWxlbnQgcHJvcGVydHlcbiAgICAgKiB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2Qgc3VwcG9ydHMgY29tcGFyaW5nIGFycmF5cywgYm9vbGVhbnMsIGBEYXRlYCBvYmplY3RzLFxuICAgICAqIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsIGFuZCBzdHJpbmdzLiBPYmplY3RzIGFyZSBjb21wYXJlZCBieVxuICAgICAqIHRoZWlyIG93biwgbm90IGluaGVyaXRlZCwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLiBGb3IgY29tcGFyaW5nIGEgc2luZ2xlXG4gICAgICogb3duIG9yIGluaGVyaXRlZCBwcm9wZXJ0eSB2YWx1ZSBzZWUgYF8ubWF0Y2hlc1Byb3BlcnR5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KF8uZmluZFdoZXJlKHVzZXJzLCB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KF8uZmluZFdoZXJlKHVzZXJzLCB7ICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+ICdmcmVkJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbmRXaGVyZShjb2xsZWN0aW9uLCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBmaW5kKGNvbGxlY3Rpb24sIGJhc2VNYXRjaGVzKHNvdXJjZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gIGludm9raW5nIGBpdGVyYXRlZWAgZm9yIGVhY2ggZWxlbWVudC5cbiAgICAgKiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gICAgICogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5XG4gICAgICogYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBBcyB3aXRoIG90aGVyIFwiQ29sbGVjdGlvbnNcIiBtZXRob2RzLCBvYmplY3RzIHdpdGggYSBcImxlbmd0aFwiIHByb3BlcnR5XG4gICAgICogYXJlIGl0ZXJhdGVkIGxpa2UgYXJyYXlzLiBUbyBhdm9pZCB0aGlzIGJlaGF2aW9yIGBfLmZvckluYCBvciBgXy5mb3JPd25gXG4gICAgICogbWF5IGJlIHVzZWQgZm9yIG9iamVjdCBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgZWFjaFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fHN0cmluZ30gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oWzEsIDJdKS5mb3JFYWNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKG4pO1xuICAgICAqIH0pLnZhbHVlKCk7XG4gICAgICogLy8gPT4gbG9ncyBlYWNoIHZhbHVlIGZyb20gbGVmdCB0byByaWdodCBhbmQgcmV0dXJucyB0aGUgYXJyYXlcbiAgICAgKlxuICAgICAqIF8uZm9yRWFjaCh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKG4sIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2cobiwga2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBsb2dzIGVhY2ggdmFsdWUta2V5IHBhaXIgYW5kIHJldHVybnMgdGhlIG9iamVjdCAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciBmb3JFYWNoID0gY3JlYXRlRm9yRWFjaChhcnJheUVhY2gsIGJhc2VFYWNoKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9yRWFjaGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgZWFjaFJpZ2h0XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R8c3RyaW5nfSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXyhbMSwgMl0pLmZvckVhY2hSaWdodChmdW5jdGlvbihuKSB7XG4gICAgICogICBjb25zb2xlLmxvZyhuKTtcbiAgICAgKiB9KS52YWx1ZSgpO1xuICAgICAqIC8vID0+IGxvZ3MgZWFjaCB2YWx1ZSBmcm9tIHJpZ2h0IHRvIGxlZnQgYW5kIHJldHVybnMgdGhlIGFycmF5XG4gICAgICovXG4gICAgdmFyIGZvckVhY2hSaWdodCA9IGNyZWF0ZUZvckVhY2goYXJyYXlFYWNoUmlnaHQsIGJhc2VFYWNoUmlnaHQpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJvdWdoIGBpdGVyYXRlZWAuIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlXG4gICAgICogb2YgZWFjaCBrZXkgaXMgYW4gYXJyYXkgb2YgdGhlIGVsZW1lbnRzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHRoZSBrZXkuXG4gICAgICogVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbXBvc2VkIGFnZ3JlZ2F0ZSBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZ3JvdXBCeShbNC4yLCA2LjEsIDYuNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBNYXRoLmZsb29yKG4pO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJzQnOiBbNC4yXSwgJzYnOiBbNi4xLCA2LjRdIH1cbiAgICAgKlxuICAgICAqIF8uZ3JvdXBCeShbNC4yLCA2LjEsIDYuNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiB0aGlzLmZsb29yKG4pO1xuICAgICAqIH0sIE1hdGgpO1xuICAgICAqIC8vID0+IHsgJzQnOiBbNC4yXSwgJzYnOiBbNi4xLCA2LjRdIH1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5ncm91cEJ5KFsnb25lJywgJ3R3bycsICd0aHJlZSddLCAnbGVuZ3RoJyk7XG4gICAgICogLy8gPT4geyAnMyc6IFsnb25lJywgJ3R3byddLCAnNSc6IFsndGhyZWUnXSB9XG4gICAgICovXG4gICAgdmFyIGdyb3VwQnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0LCBrZXkpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBbdmFsdWVdO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gYGNvbGxlY3Rpb25gIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQgaXMgdXNlZCBhcyB0aGUgb2Zmc2V0XG4gICAgICogZnJvbSB0aGUgZW5kIG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBjb250YWlucywgaW5jbHVkZVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNlYXJjaC5cbiAgICAgKiBAcGFyYW0geyp9IHRhcmdldCBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLnJlZHVjZWAuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGEgbWF0Y2hpbmcgZWxlbWVudCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKFsxLCAyLCAzXSwgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pbmNsdWRlcyhbMSwgMiwgM10sIDEsIDIpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKHsgJ3VzZXInOiAnZnJlZCcsICdhZ2UnOiA0MCB9LCAnZnJlZCcpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5jbHVkZXMoJ3BlYmJsZXMnLCAnZWInKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5jbHVkZXMoY29sbGVjdGlvbiwgdGFyZ2V0LCBmcm9tSW5kZXgsIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbiA/IGdldExlbmd0aChjb2xsZWN0aW9uKSA6IDA7XG4gICAgICBpZiAoIWlzTGVuZ3RoKGxlbmd0aCkpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHZhbHVlcyhjb2xsZWN0aW9uKTtcbiAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICB9XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGZyb21JbmRleCAhPSAnbnVtYmVyJyB8fCAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwodGFyZ2V0LCBmcm9tSW5kZXgsIGd1YXJkKSkpIHtcbiAgICAgICAgZnJvbUluZGV4ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZyb21JbmRleCA9IGZyb21JbmRleCA8IDAgPyBuYXRpdmVNYXgobGVuZ3RoICsgZnJvbUluZGV4LCAwKSA6IChmcm9tSW5kZXggfHwgMCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKHR5cGVvZiBjb2xsZWN0aW9uID09ICdzdHJpbmcnIHx8ICFpc0FycmF5KGNvbGxlY3Rpb24pICYmIGlzU3RyaW5nKGNvbGxlY3Rpb24pKVxuICAgICAgICA/IChmcm9tSW5kZXggPCBsZW5ndGggJiYgY29sbGVjdGlvbi5pbmRleE9mKHRhcmdldCwgZnJvbUluZGV4KSA+IC0xKVxuICAgICAgICA6IChnZXRJbmRleE9mKGNvbGxlY3Rpb24sIHRhcmdldCwgZnJvbUluZGV4KSA+IC0xKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiBrZXlzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIHRocm91Z2ggYGl0ZXJhdGVlYC4gVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVcbiAgICAgKiBvZiBlYWNoIGtleSBpcyB0aGUgbGFzdCBlbGVtZW50IHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHRoZSBrZXkuIFRoZVxuICAgICAqIGl0ZXJhdGVlIGZ1bmN0aW9uIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIga2V5RGF0YSA9IFtcbiAgICAgKiAgIHsgJ2Rpcic6ICdsZWZ0JywgJ2NvZGUnOiA5NyB9LFxuICAgICAqICAgeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmluZGV4Qnkoa2V5RGF0YSwgJ2RpcicpO1xuICAgICAqIC8vID0+IHsgJ2xlZnQnOiB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSwgJ3JpZ2h0JzogeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfSB9XG4gICAgICpcbiAgICAgKiBfLmluZGV4Qnkoa2V5RGF0YSwgZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICogICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShvYmplY3QuY29kZSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYSc6IHsgJ2Rpcic6ICdsZWZ0JywgJ2NvZGUnOiA5NyB9LCAnZCc6IHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH0gfVxuICAgICAqXG4gICAgICogXy5pbmRleEJ5KGtleURhdGEsIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAqICAgcmV0dXJuIHRoaXMuZnJvbUNoYXJDb2RlKG9iamVjdC5jb2RlKTtcbiAgICAgKiB9LCBTdHJpbmcpO1xuICAgICAqIC8vID0+IHsgJ2EnOiB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSwgJ2QnOiB7ICdkaXInOiAncmlnaHQnLCAnY29kZSc6IDEwMCB9IH1cbiAgICAgKi9cbiAgICB2YXIgaW5kZXhCeSA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgbWV0aG9kIGF0IGBwYXRoYCBvbiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gLCByZXR1cm5pbmdcbiAgICAgKiBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZiBlYWNoIGludm9rZWQgbWV0aG9kLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBhcmUgcHJvdmlkZWQgdG8gZWFjaCBpbnZva2VkIG1ldGhvZC4gSWYgYG1ldGhvZE5hbWVgIGlzIGEgZnVuY3Rpb24gaXQgaXNcbiAgICAgKiBpbnZva2VkIGZvciwgYW5kIGB0aGlzYCBib3VuZCB0bywgZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FycmF5fEZ1bmN0aW9ufHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZSBvclxuICAgICAqICB0aGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW52b2tlKFtbNSwgMSwgN10sIFszLCAyLCAxXV0sICdzb3J0Jyk7XG4gICAgICogLy8gPT4gW1sxLCA1LCA3XSwgWzEsIDIsIDNdXVxuICAgICAqXG4gICAgICogXy5pbnZva2UoWzEyMywgNDU2XSwgU3RyaW5nLnByb3RvdHlwZS5zcGxpdCwgJycpO1xuICAgICAqIC8vID0+IFtbJzEnLCAnMicsICczJ10sIFsnNCcsICc1JywgJzYnXV1cbiAgICAgKi9cbiAgICB2YXIgaW52b2tlID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHBhdGgsIGFyZ3MpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGlzRnVuYyA9IHR5cGVvZiBwYXRoID09ICdmdW5jdGlvbicsXG4gICAgICAgICAgaXNQcm9wID0gaXNLZXkocGF0aCksXG4gICAgICAgICAgcmVzdWx0ID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBBcnJheShjb2xsZWN0aW9uLmxlbmd0aCkgOiBbXTtcblxuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBpc0Z1bmMgPyBwYXRoIDogKGlzUHJvcCAmJiB2YWx1ZSAhPSBudWxsICYmIHZhbHVlW3BhdGhdKTtcbiAgICAgICAgcmVzdWx0WysraW5kZXhdID0gZnVuYyA/IGZ1bmMuYXBwbHkodmFsdWUsIGFyZ3MpIDogaW52b2tlUGF0aCh2YWx1ZSwgcGF0aCwgYXJncyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhyb3VnaFxuICAgICAqIGBpdGVyYXRlZWAuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzYCBzdHlsZVxuICAgICAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gICAgICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaW50ZXJhdGVlcyBmb3IgbWV0aG9kcyBsaWtlXG4gICAgICogYF8uZXZlcnlgLCBgXy5maWx0ZXJgLCBgXy5tYXBgLCBgXy5tYXBWYWx1ZXNgLCBgXy5yZWplY3RgLCBhbmQgYF8uc29tZWAuXG4gICAgICpcbiAgICAgKiBUaGUgZ3VhcmRlZCBtZXRob2RzIGFyZTpcbiAgICAgKiBgYXJ5YCwgYGNhbGxiYWNrYCwgYGNodW5rYCwgYGNsb25lYCwgYGNyZWF0ZWAsIGBjdXJyeWAsIGBjdXJyeVJpZ2h0YCxcbiAgICAgKiBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZXZlcnlgLCBgZmlsbGAsIGBmbGF0dGVuYCwgYGludmVydGAsIGBtYXhgLCBgbWluYCxcbiAgICAgKiBgcGFyc2VJbnRgLCBgc2xpY2VgLCBgc29ydEJ5YCwgYHRha2VgLCBgdGFrZVJpZ2h0YCwgYHRlbXBsYXRlYCwgYHRyaW1gLFxuICAgICAqIGB0cmltTGVmdGAsIGB0cmltUmlnaHRgLCBgdHJ1bmNgLCBgcmFuZG9tYCwgYHJhbmdlYCwgYHNhbXBsZWAsIGBzb21lYCxcbiAgICAgKiBgc3VtYCwgYHVuaXFgLCBhbmQgYHdvcmRzYFxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGNvbGxlY3RcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHRpbWVzVGhyZWUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiAzO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8ubWFwKFsxLCAyXSwgdGltZXNUaHJlZSk7XG4gICAgICogLy8gPT4gWzMsIDZdXG4gICAgICpcbiAgICAgKiBfLm1hcCh7ICdhJzogMSwgJ2InOiAyIH0sIHRpbWVzVGhyZWUpO1xuICAgICAqIC8vID0+IFszLCA2XSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLm1hcCh1c2VycywgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcbiAgICAgIGl0ZXJhdGVlID0gZ2V0Q2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgc3BsaXQgaW50byB0d28gZ3JvdXBzLCB0aGUgZmlyc3Qgb2Ygd2hpY2hcbiAgICAgKiBjb250YWlucyBlbGVtZW50cyBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IsIHdoaWxlIHRoZSBzZWNvbmQgb2Ygd2hpY2hcbiAgICAgKiBjb250YWlucyBlbGVtZW50cyBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgYm91bmRcbiAgICAgKiB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFydGl0aW9uKFsxLCAyLCAzXSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IFtbMSwgM10sIFsyXV1cbiAgICAgKlxuICAgICAqIF8ucGFydGl0aW9uKFsxLjIsIDIuMywgMy40XSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIHRoaXMuZmxvb3IobikgJSAyO1xuICAgICAqIH0sIE1hdGgpO1xuICAgICAqIC8vID0+IFtbMS4yLCAzLjRdLCBbMi4zXV1cbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIHZhciBtYXBwZXIgPSBmdW5jdGlvbihhcnJheSkge1xuICAgICAqICAgcmV0dXJuIF8ucGx1Y2soYXJyYXksICd1c2VyJyk7XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLm1hcChfLnBhcnRpdGlvbih1c2VycywgeyAnYWdlJzogMSwgJ2FjdGl2ZSc6IGZhbHNlIH0pLCBtYXBwZXIpO1xuICAgICAqIC8vID0+IFtbJ3BlYmJsZXMnXSwgWydiYXJuZXknLCAnZnJlZCddXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5tYXAoXy5wYXJ0aXRpb24odXNlcnMsICdhY3RpdmUnLCBmYWxzZSksIG1hcHBlcik7XG4gICAgICogLy8gPT4gW1snYmFybmV5JywgJ3BlYmJsZXMnXSwgWydmcmVkJ11dXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ubWFwKF8ucGFydGl0aW9uKHVzZXJzLCAnYWN0aXZlJyksIG1hcHBlcik7XG4gICAgICogLy8gPT4gW1snZnJlZCddLCBbJ2Jhcm5leScsICdwZWJibGVzJ11dXG4gICAgICovXG4gICAgdmFyIHBhcnRpdGlvbiA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHRba2V5ID8gMCA6IDFdLnB1c2godmFsdWUpO1xuICAgIH0sIGZ1bmN0aW9uKCkgeyByZXR1cm4gW1tdLCBbXV07IH0pO1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgYHBhdGhgIGZyb20gYWxsIGVsZW1lbnRzIGluIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gcGx1Y2suXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ucGx1Y2sodXNlcnMsICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAnZnJlZCddXG4gICAgICpcbiAgICAgKiB2YXIgdXNlckluZGV4ID0gXy5pbmRleEJ5KHVzZXJzLCAndXNlcicpO1xuICAgICAqIF8ucGx1Y2sodXNlckluZGV4LCAnYWdlJyk7XG4gICAgICogLy8gPT4gWzM2LCA0MF0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwbHVjayhjb2xsZWN0aW9uLCBwYXRoKSB7XG4gICAgICByZXR1cm4gbWFwKGNvbGxlY3Rpb24sIHByb3BlcnR5KHBhdGgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWR1Y2VzIGBjb2xsZWN0aW9uYCB0byBhIHZhbHVlIHdoaWNoIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQgb2YgcnVubmluZ1xuICAgICAqIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhyb3VnaCBgaXRlcmF0ZWVgLCB3aGVyZSBlYWNoIHN1Y2Nlc3NpdmVcbiAgICAgKiBpbnZvY2F0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLiBJZiBgYWNjdW11bGF0b3JgXG4gICAgICogaXMgbm90IHByb3ZpZGVkIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsXG4gICAgICogdmFsdWUuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIGZvdXIgYXJndW1lbnRzOlxuICAgICAqIChhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaW50ZXJhdGVlcyBmb3IgbWV0aG9kcyBsaWtlXG4gICAgICogYF8ucmVkdWNlYCwgYF8ucmVkdWNlUmlnaHRgLCBhbmQgYF8udHJhbnNmb3JtYC5cbiAgICAgKlxuICAgICAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICAgICAqIGBhc3NpZ25gLCBgZGVmYXVsdHNgLCBgaW5jbHVkZXNgLCBgbWVyZ2VgLCBgc29ydEJ5QWxsYCwgYW5kIGBzb3J0QnlPcmRlcmBcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBmb2xkbCwgaW5qZWN0XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlKFsxLCAyXSwgZnVuY3Rpb24odG90YWwsIG4pIHtcbiAgICAgKiAgIHJldHVybiB0b3RhbCArIG47XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy5yZWR1Y2UoeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbihyZXN1bHQsIG4sIGtleSkge1xuICAgICAqICAgcmVzdWx0W2tleV0gPSBuICogMztcbiAgICAgKiAgIHJldHVybiByZXN1bHQ7XG4gICAgICogfSwge30pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAzLCAnYic6IDYgfSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciByZWR1Y2UgPSBjcmVhdGVSZWR1Y2UoYXJyYXlSZWR1Y2UsIGJhc2VFYWNoKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucmVkdWNlYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXG4gICAgICogYGNvbGxlY3Rpb25gIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBmb2xkclxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbWzAsIDFdLCBbMiwgM10sIFs0LCA1XV07XG4gICAgICpcbiAgICAgKiBfLnJlZHVjZVJpZ2h0KGFycmF5LCBmdW5jdGlvbihmbGF0dGVuZWQsIG90aGVyKSB7XG4gICAgICogICByZXR1cm4gZmxhdHRlbmVkLmNvbmNhdChvdGhlcik7XG4gICAgICogfSwgW10pO1xuICAgICAqIC8vID0+IFs0LCA1LCAyLCAzLCAwLCAxXVxuICAgICAqL1xuICAgIHZhciByZWR1Y2VSaWdodCA9IGNyZWF0ZVJlZHVjZShhcnJheVJlZHVjZVJpZ2h0LCBiYXNlRWFjaFJpZ2h0KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5maWx0ZXJgOyB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmBcbiAgICAgKiB0aGF0IGBwcmVkaWNhdGVgIGRvZXMgKipub3QqKiByZXR1cm4gdHJ1dGh5IGZvci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmVqZWN0KFsxLCAyLCAzLCA0XSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDA7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzEsIDNdXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLnJlamVjdCh1c2VycywgeyAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH0pLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8ucGx1Y2soXy5yZWplY3QodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5wbHVjayhfLnJlamVjdCh1c2VycywgJ2FjdGl2ZScpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5J11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZWplY3QoY29sbGVjdGlvbiwgcHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiAhcHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgcmFuZG9tIGVsZW1lbnQgb3IgYG5gIHJhbmRvbSBlbGVtZW50cyBmcm9tIGEgY29sbGVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW25dIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gc2FtcGxlLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByYW5kb20gc2FtcGxlKHMpLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNhbXBsZShbMSwgMiwgMywgNF0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIF8uc2FtcGxlKFsxLCAyLCAzLCA0XSwgMik7XG4gICAgICogLy8gPT4gWzMsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2FtcGxlKGNvbGxlY3Rpb24sIG4sIGd1YXJkKSB7XG4gICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBuLCBndWFyZCkgOiBuID09IG51bGwpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHRvSXRlcmFibGUoY29sbGVjdGlvbik7XG4gICAgICAgIHZhciBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGxlbmd0aCA+IDAgPyBjb2xsZWN0aW9uW2Jhc2VSYW5kb20oMCwgbGVuZ3RoIC0gMSldIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IHNodWZmbGUoY29sbGVjdGlvbik7XG4gICAgICByZXN1bHQubGVuZ3RoID0gbmF0aXZlTWluKG4gPCAwID8gMCA6ICgrbiB8fCAwKSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc2h1ZmZsZWQgdmFsdWVzLCB1c2luZyBhIHZlcnNpb24gb2YgdGhlXG4gICAgICogW0Zpc2hlci1ZYXRlcyBzaHVmZmxlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GaXNoZXItWWF0ZXNfc2h1ZmZsZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzaHVmZmxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNodWZmbGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNodWZmbGUoWzEsIDIsIDMsIDRdKTtcbiAgICAgKiAvLyA9PiBbNCwgMSwgMywgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzaHVmZmxlKGNvbGxlY3Rpb24pIHtcbiAgICAgIGNvbGxlY3Rpb24gPSB0b0l0ZXJhYmxlKGNvbGxlY3Rpb24pO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgcmFuZCA9IGJhc2VSYW5kb20oMCwgaW5kZXgpO1xuICAgICAgICBpZiAoaW5kZXggIT0gcmFuZCkge1xuICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSByZXN1bHRbcmFuZF07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0W3JhbmRdID0gY29sbGVjdGlvbltpbmRleF07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHNpemUgb2YgYGNvbGxlY3Rpb25gIGJ5IHJldHVybmluZyBpdHMgbGVuZ3RoIGZvciBhcnJheS1saWtlXG4gICAgICogdmFsdWVzIG9yIHRoZSBudW1iZXIgb2Ygb3duIGVudW1lcmFibGUgcHJvcGVydGllcyBmb3Igb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc2l6ZSBvZiBgY29sbGVjdGlvbmAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc2l6ZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8uc2l6ZSh7ICdhJzogMSwgJ2InOiAyIH0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIF8uc2l6ZSgncGViYmxlcycpO1xuICAgICAqIC8vID0+IDdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzaXplKGNvbGxlY3Rpb24pIHtcbiAgICAgIHZhciBsZW5ndGggPSBjb2xsZWN0aW9uID8gZ2V0TGVuZ3RoKGNvbGxlY3Rpb24pIDogMDtcbiAgICAgIHJldHVybiBpc0xlbmd0aChsZW5ndGgpID8gbGVuZ3RoIDoga2V5cyhjb2xsZWN0aW9uKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciAqKmFueSoqIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gLlxuICAgICAqIFRoZSBmdW5jdGlvbiByZXR1cm5zIGFzIHNvb24gYXMgaXQgZmluZHMgYSBwYXNzaW5nIHZhbHVlIGFuZCBkb2VzIG5vdCBpdGVyYXRlXG4gICAgICogb3ZlciB0aGUgZW50aXJlIGNvbGxlY3Rpb24uIFRoZSBwcmVkaWNhdGUgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhIHZhbHVlIGlzIGFsc28gcHJvdmlkZWQgZm9yIGB0aGlzQXJnYCB0aGUgY3JlYXRlZCBgXy5tYXRjaGVzUHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG1hdGNoaW5nIHByb3BlcnR5XG4gICAgICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYHByZWRpY2F0ZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGFueVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYHByZWRpY2F0ZWAuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29tZShbbnVsbCwgMCwgJ3llcycsIGZhbHNlXSwgQm9vbGVhbik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5zb21lKHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5zb21lKHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5zb21lKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvbWUoY29sbGVjdGlvbiwgcHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVNvbWUgOiBiYXNlU29tZTtcbiAgICAgIGlmICh0aGlzQXJnICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgdGhpc0FyZykpIHtcbiAgICAgICAgcHJlZGljYXRlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcHJlZGljYXRlICE9ICdmdW5jdGlvbicgfHwgdGhpc0FyZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByZWRpY2F0ZSA9IGdldENhbGxiYWNrKHByZWRpY2F0ZSwgdGhpc0FyZywgMyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBwcmVkaWNhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMsIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgdGhlIHJlc3VsdHMgb2ZcbiAgICAgKiBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBhIGNvbGxlY3Rpb24gdGhyb3VnaCBgaXRlcmF0ZWVgLiBUaGlzIG1ldGhvZCBwZXJmb3Jtc1xuICAgICAqIGEgc3RhYmxlIHNvcnQsIHRoYXQgaXMsIGl0IHByZXNlcnZlcyB0aGUgb3JpZ2luYWwgc29ydCBvcmRlciBvZiBlcXVhbCBlbGVtZW50cy5cbiAgICAgKiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gICAgICogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRCeShbMSwgMiwgM10sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBNYXRoLnNpbihuKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbMywgMSwgMl1cbiAgICAgKlxuICAgICAqIF8uc29ydEJ5KFsxLCAyLCAzXSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIHRoaXMuc2luKG4pO1xuICAgICAqIH0sIE1hdGgpO1xuICAgICAqIC8vID0+IFszLCAxLCAyXVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdmcmVkJyB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJyB9LFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnBsdWNrKF8uc29ydEJ5KHVzZXJzLCAndXNlcicpLCAndXNlcicpO1xuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydEJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzQXJnICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSkge1xuICAgICAgICBpdGVyYXRlZSA9IG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMTtcbiAgICAgIGl0ZXJhdGVlID0gZ2V0Q2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZU1hcChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiB7ICdjcml0ZXJpYSc6IGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pLCAnaW5kZXgnOiArK2luZGV4LCAndmFsdWUnOiB2YWx1ZSB9O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYmFzZVNvcnRCeShyZXN1bHQsIGNvbXBhcmVBc2NlbmRpbmcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydEJ5YCBleGNlcHQgdGhhdCBpdCBjYW4gc29ydCBieSBtdWx0aXBsZSBpdGVyYXRlZXNcbiAgICAgKiBvciBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYW4gaXRlcmF0ZWUgdGhlIGNyZWF0ZWQgYF8ucHJvcGVydHlgXG4gICAgICogc3R5bGUgY2FsbGJhY2sgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGFuIGl0ZXJhdGVlIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdfE9iamVjdHxPYmplY3RbXXxzdHJpbmd8c3RyaW5nW10pfSBpdGVyYXRlZXNcbiAgICAgKiAgVGhlIGl0ZXJhdGVlcyB0byBzb3J0IGJ5LCBzcGVjaWZpZWQgYXMgaW5kaXZpZHVhbCB2YWx1ZXMgb3IgYXJyYXlzIG9mIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQ4IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDIgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM0IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5tYXAoXy5zb3J0QnlBbGwodXNlcnMsIFsndXNlcicsICdhZ2UnXSksIF8udmFsdWVzKTtcbiAgICAgKiAvLyA9PiBbWydiYXJuZXknLCAzNF0sIFsnYmFybmV5JywgMzZdLCBbJ2ZyZWQnLCA0Ml0sIFsnZnJlZCcsIDQ4XV1cbiAgICAgKlxuICAgICAqIF8ubWFwKF8uc29ydEJ5QWxsKHVzZXJzLCAndXNlcicsIGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgcmV0dXJuIE1hdGguZmxvb3IoY2hyLmFnZSAvIDEwKTtcbiAgICAgKiB9KSwgXy52YWx1ZXMpO1xuICAgICAqIC8vID0+IFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgNDJdXVxuICAgICAqL1xuICAgIHZhciBzb3J0QnlBbGwgPSByZXN0UGFyYW0oZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWVzKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBndWFyZCA9IGl0ZXJhdGVlc1syXTtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSwgZ3VhcmQpKSB7XG4gICAgICAgIGl0ZXJhdGVlcy5sZW5ndGggPSAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VTb3J0QnlPcmRlcihjb2xsZWN0aW9uLCBiYXNlRmxhdHRlbihpdGVyYXRlZXMpLCBbXSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRCeUFsbGAgZXhjZXB0IHRoYXQgaXQgYWxsb3dzIHNwZWNpZnlpbmcgdGhlXG4gICAgICogc29ydCBvcmRlcnMgb2YgdGhlIGl0ZXJhdGVlcyB0byBzb3J0IGJ5LiBBIHRydXRoeSB2YWx1ZSBpbiBgb3JkZXJzYCB3aWxsXG4gICAgICogc29ydCB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBuYW1lIGluIGFzY2VuZGluZyBvcmRlciB3aGlsZSBhIGZhbHNleVxuICAgICAqIHZhbHVlIHdpbGwgc29ydCBpdCBpbiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBhbiBpdGVyYXRlZSB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGFuIG9iamVjdCBpcyBwcm92aWRlZCBmb3IgYW4gaXRlcmF0ZWUgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb25bXXxPYmplY3RbXXxzdHJpbmdbXX0gaXRlcmF0ZWVzIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW5bXX0gb3JkZXJzIFRoZSBzb3J0IG9yZGVycyBvZiBgaXRlcmF0ZWVzYC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ucmVkdWNlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQ4IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNCB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDIgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gc29ydCBieSBgdXNlcmAgaW4gYXNjZW5kaW5nIG9yZGVyIGFuZCBieSBgYWdlYCBpbiBkZXNjZW5kaW5nIG9yZGVyXG4gICAgICogXy5tYXAoXy5zb3J0QnlPcmRlcih1c2VycywgWyd1c2VyJywgJ2FnZSddLCBbdHJ1ZSwgZmFsc2VdKSwgXy52YWx1ZXMpO1xuICAgICAqIC8vID0+IFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgNDJdXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRCeU9yZGVyKGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzLCBndWFyZCkge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoaXRlcmF0ZWVzLCBvcmRlcnMsIGd1YXJkKSkge1xuICAgICAgICBvcmRlcnMgPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKCFpc0FycmF5KGl0ZXJhdGVlcykpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gaXRlcmF0ZWVzID09IG51bGwgPyBbXSA6IFtpdGVyYXRlZXNdO1xuICAgICAgfVxuICAgICAgaWYgKCFpc0FycmF5KG9yZGVycykpIHtcbiAgICAgICAgb3JkZXJzID0gb3JkZXJzID09IG51bGwgPyBbXSA6IFtvcmRlcnNdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VTb3J0QnlPcmRlcihjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIGFuZCB0aGVcbiAgICAgKiBzb3VyY2Ugb2JqZWN0LCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBlcXVpdmFsZW50XG4gICAgICogcHJvcGVydHkgdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGNvbXBhcmluZyBhcnJheXMsIGJvb2xlYW5zLCBgRGF0ZWAgb2JqZWN0cyxcbiAgICAgKiBudW1iZXJzLCBgT2JqZWN0YCBvYmplY3RzLCByZWdleGVzLCBhbmQgc3RyaW5ncy4gT2JqZWN0cyBhcmUgY29tcGFyZWQgYnlcbiAgICAgKiB0aGVpciBvd24sIG5vdCBpbmhlcml0ZWQsIGVudW1lcmFibGUgcHJvcGVydGllcy4gRm9yIGNvbXBhcmluZyBhIHNpbmdsZVxuICAgICAqIG93biBvciBpbmhlcml0ZWQgcHJvcGVydHkgdmFsdWUgc2VlIGBfLm1hdGNoZXNQcm9wZXJ0eWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzZWFyY2guXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiBmYWxzZSwgJ3BldHMnOiBbJ2hvcHB5J10gfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSwgJ3BldHMnOiBbJ2JhYnkgcHVzcycsICdkaW5vJ10gfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnBsdWNrKF8ud2hlcmUodXNlcnMsIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UgfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknXVxuICAgICAqXG4gICAgICogXy5wbHVjayhfLndoZXJlKHVzZXJzLCB7ICdwZXRzJzogWydkaW5vJ10gfSksICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydmcmVkJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3aGVyZShjb2xsZWN0aW9uLCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBmaWx0ZXIoY29sbGVjdGlvbiwgYmFzZU1hdGNoZXMoc291cmNlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgVW5peCBlcG9jaFxuICAgICAqICgxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IERhdGVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICAgICAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAgICAgKiB9LCBfLm5vdygpKTtcbiAgICAgKiAvLyA9PiBsb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBmdW5jdGlvbiB0byBiZSBpbnZva2VkXG4gICAgICovXG4gICAgdmFyIG5vdyA9IG5hdGl2ZU5vdyB8fCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLmJlZm9yZWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXNcbiAgICAgKiBgZnVuY2Agb25jZSBpdCBpcyBjYWxsZWQgYG5gIG9yIG1vcmUgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGNhbGxzIGJlZm9yZSBgZnVuY2AgaXMgaW52b2tlZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F2ZXMgPSBbJ3Byb2ZpbGUnLCAnc2V0dGluZ3MnXTtcbiAgICAgKlxuICAgICAqIHZhciBkb25lID0gXy5hZnRlcihzYXZlcy5sZW5ndGgsIGZ1bmN0aW9uKCkge1xuICAgICAqICAgY29uc29sZS5sb2coJ2RvbmUgc2F2aW5nIScpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogXy5mb3JFYWNoKHNhdmVzLCBmdW5jdGlvbih0eXBlKSB7XG4gICAgICogICBhc3luY1NhdmUoeyAndHlwZSc6IHR5cGUsICdjb21wbGV0ZSc6IGRvbmUgfSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gbG9ncyAnZG9uZSBzYXZpbmchJyBhZnRlciB0aGUgdHdvIGFzeW5jIHNhdmVzIGhhdmUgY29tcGxldGVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gYWZ0ZXIobiwgZnVuYykge1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgdGVtcCA9IG47XG4gICAgICAgICAgbiA9IGZ1bmM7XG4gICAgICAgICAgZnVuYyA9IHRlbXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBuID0gbmF0aXZlSXNGaW5pdGUobiA9ICtuKSA/IG4gOiAwO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoLS1uIDwgMSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBgbmAgYXJndW1lbnRzIGlnbm9yaW5nIGFueVxuICAgICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPWZ1bmMubGVuZ3RoXSBUaGUgYXJpdHkgY2FwLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1hcChbJzYnLCAnOCcsICcxMCddLCBfLmFyeShwYXJzZUludCwgMSkpO1xuICAgICAqIC8vID0+IFs2LCA4LCAxMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnkoZnVuYywgbiwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChmdW5jLCBuLCBndWFyZCkpIHtcbiAgICAgICAgbiA9IG51bGw7XG4gICAgICB9XG4gICAgICBuID0gKGZ1bmMgJiYgbiA9PSBudWxsKSA/IGZ1bmMubGVuZ3RoIDogbmF0aXZlTWF4KCtuIHx8IDAsIDApO1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIoZnVuYywgQVJZX0ZMQUcsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgLCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzXG4gICAgICogb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24sIHdoaWxlIGl0IGlzIGNhbGxlZCBsZXNzIHRoYW4gYG5gIHRpbWVzLiBTdWJzZXF1ZW50XG4gICAgICogY2FsbHMgdG8gdGhlIGNyZWF0ZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGNhbGxzIGF0IHdoaWNoIGBmdW5jYCBpcyBubyBsb25nZXIgaW52b2tlZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBqUXVlcnkoJyNhZGQnKS5vbignY2xpY2snLCBfLmJlZm9yZSg1LCBhZGRDb250YWN0VG9MaXN0KSk7XG4gICAgICogLy8gPT4gYWxsb3dzIGFkZGluZyB1cCB0byA0IGNvbnRhY3RzIHRvIHRoZSBsaXN0XG4gICAgICovXG4gICAgZnVuY3Rpb24gYmVmb3JlKG4sIGZ1bmMpIHtcbiAgICAgIHZhciByZXN1bHQ7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAodHlwZW9mIG4gPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHZhciB0ZW1wID0gbjtcbiAgICAgICAgICBuID0gZnVuYztcbiAgICAgICAgICBmdW5jID0gdGVtcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKC0tbiA+IDApIHtcbiAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4gPD0gMSkge1xuICAgICAgICAgIGZ1bmMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGB0aGlzQXJnYFxuICAgICAqIGFuZCBwcmVwZW5kcyBhbnkgYWRkaXRpb25hbCBgXy5iaW5kYCBhcmd1bWVudHMgdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlXG4gICAgICogYm91bmQgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBUaGUgYF8uYmluZC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljIGJ1aWxkcyxcbiAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIG5hdGl2ZSBgRnVuY3Rpb24jYmluZGAgdGhpcyBtZXRob2QgZG9lcyBub3Qgc2V0IHRoZSBcImxlbmd0aFwiXG4gICAgICogcHJvcGVydHkgb2YgYm91bmQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYmluZC5cbiAgICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBib3VuZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGdyZWV0ID0gZnVuY3Rpb24oZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZChncmVldCwgb2JqZWN0LCAnaGknKTtcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHBsYWNlaG9sZGVyc1xuICAgICAqIHZhciBib3VuZCA9IF8uYmluZChncmVldCwgb2JqZWN0LCBfLCAnIScpO1xuICAgICAqIGJvdW5kKCdoaScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKi9cbiAgICB2YXIgYmluZCA9IHJlc3RQYXJhbShmdW5jdGlvbihmdW5jLCB0aGlzQXJnLCBwYXJ0aWFscykge1xuICAgICAgdmFyIGJpdG1hc2sgPSBCSU5EX0ZMQUc7XG4gICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGJpbmQucGxhY2Vob2xkZXIpO1xuICAgICAgICBiaXRtYXNrIHw9IFBBUlRJQUxfRkxBRztcbiAgICAgIH1cbiAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEJpbmRzIG1ldGhvZHMgb2YgYW4gb2JqZWN0IHRvIHRoZSBvYmplY3QgaXRzZWxmLCBvdmVyd3JpdGluZyB0aGUgZXhpc3RpbmdcbiAgICAgKiBtZXRob2QuIE1ldGhvZCBuYW1lcyBtYXkgYmUgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgYXJndW1lbnRzIG9yIGFzIGFycmF5c1xuICAgICAqIG9mIG1ldGhvZCBuYW1lcy4gSWYgbm8gbWV0aG9kIG5hbWVzIGFyZSBwcm92aWRlZCBhbGwgZW51bWVyYWJsZSBmdW5jdGlvblxuICAgICAqIHByb3BlcnRpZXMsIG93biBhbmQgaW5oZXJpdGVkLCBvZiBgb2JqZWN0YCBhcmUgYm91bmQuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lcyBub3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBiaW5kIGFuZCBhc3NpZ24gdGhlIGJvdW5kIG1ldGhvZHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW21ldGhvZE5hbWVzXSBUaGUgb2JqZWN0IG1ldGhvZCBuYW1lcyB0byBiaW5kLFxuICAgICAqICBzcGVjaWZpZWQgYXMgaW5kaXZpZHVhbCBtZXRob2QgbmFtZXMgb3IgYXJyYXlzIG9mIG1ldGhvZCBuYW1lcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdmlldyA9IHtcbiAgICAgKiAgICdsYWJlbCc6ICdkb2NzJyxcbiAgICAgKiAgICdvbkNsaWNrJzogZnVuY3Rpb24oKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdjbGlja2VkICcgKyB0aGlzLmxhYmVsKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5iaW5kQWxsKHZpZXcpO1xuICAgICAqIGpRdWVyeSgnI2RvY3MnKS5vbignY2xpY2snLCB2aWV3Lm9uQ2xpY2spO1xuICAgICAqIC8vID0+IGxvZ3MgJ2NsaWNrZWQgZG9jcycgd2hlbiB0aGUgZWxlbWVudCBpcyBjbGlja2VkXG4gICAgICovXG4gICAgdmFyIGJpbmRBbGwgPSByZXN0UGFyYW0oZnVuY3Rpb24ob2JqZWN0LCBtZXRob2ROYW1lcykge1xuICAgICAgbWV0aG9kTmFtZXMgPSBtZXRob2ROYW1lcy5sZW5ndGggPyBiYXNlRmxhdHRlbihtZXRob2ROYW1lcykgOiBmdW5jdGlvbnMob2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gbWV0aG9kTmFtZXMubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gbWV0aG9kTmFtZXNbaW5kZXhdO1xuICAgICAgICBvYmplY3Rba2V5XSA9IGNyZWF0ZVdyYXBwZXIob2JqZWN0W2tleV0sIEJJTkRfRkxBRywgb2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBtZXRob2QgYXQgYG9iamVjdFtrZXldYCBhbmQgcHJlcGVuZHNcbiAgICAgKiBhbnkgYWRkaXRpb25hbCBgXy5iaW5kS2V5YCBhcmd1bWVudHMgdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIGJvdW5kIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgZGlmZmVycyBmcm9tIGBfLmJpbmRgIGJ5IGFsbG93aW5nIGJvdW5kIGZ1bmN0aW9ucyB0byByZWZlcmVuY2VcbiAgICAgKiBtZXRob2RzIHRoYXQgbWF5IGJlIHJlZGVmaW5lZCBvciBkb24ndCB5ZXQgZXhpc3QuXG4gICAgICogU2VlIFtQZXRlciBNaWNoYXV4J3MgYXJ0aWNsZV0oaHR0cDovL3BldGVyLm1pY2hhdXguY2EvYXJ0aWNsZXMvbGF6eS1mdW5jdGlvbi1kZWZpbml0aW9uLXBhdHRlcm4pXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5iaW5kS2V5LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0aGUgbWV0aG9kIGJlbG9uZ3MgdG8uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7XG4gICAgICogICAndXNlcic6ICdmcmVkJyxcbiAgICAgKiAgICdncmVldCc6IGZ1bmN0aW9uKGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICAgICAqICAgICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAgICAgKiAgIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kS2V5KG9iamVjdCwgJ2dyZWV0JywgJ2hpJyk7XG4gICAgICogYm91bmQoJyEnKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCEnXG4gICAgICpcbiAgICAgKiBvYmplY3QuZ3JlZXQgPSBmdW5jdGlvbihncmVldGluZywgcHVuY3R1YXRpb24pIHtcbiAgICAgKiAgIHJldHVybiBncmVldGluZyArICd5YSAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIGJvdW5kKCchJyk7XG4gICAgICogLy8gPT4gJ2hpeWEgZnJlZCEnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBwbGFjZWhvbGRlcnNcbiAgICAgKiB2YXIgYm91bmQgPSBfLmJpbmRLZXkob2JqZWN0LCAnZ3JlZXQnLCBfLCAnIScpO1xuICAgICAqIGJvdW5kKCdoaScpO1xuICAgICAqIC8vID0+ICdoaXlhIGZyZWQhJ1xuICAgICAqL1xuICAgIHZhciBiaW5kS2V5ID0gcmVzdFBhcmFtKGZ1bmN0aW9uKG9iamVjdCwga2V5LCBwYXJ0aWFscykge1xuICAgICAgdmFyIGJpdG1hc2sgPSBCSU5EX0ZMQUcgfCBCSU5EX0tFWV9GTEFHO1xuICAgICAgaWYgKHBhcnRpYWxzLmxlbmd0aCkge1xuICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBiaW5kS2V5LnBsYWNlaG9sZGVyKTtcbiAgICAgICAgYml0bWFzayB8PSBQQVJUSUFMX0ZMQUc7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihrZXksIGJpdG1hc2ssIG9iamVjdCwgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBvbmUgb3IgbW9yZSBhcmd1bWVudHMgb2YgYGZ1bmNgIHRoYXQgd2hlblxuICAgICAqIGNhbGxlZCBlaXRoZXIgaW52b2tlcyBgZnVuY2AgcmV0dXJuaW5nIGl0cyByZXN1bHQsIGlmIGFsbCBgZnVuY2AgYXJndW1lbnRzXG4gICAgICogaGF2ZSBiZWVuIHByb3ZpZGVkLCBvciByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIG9uZSBvciBtb3JlIG9mIHRoZVxuICAgICAqIHJlbWFpbmluZyBgZnVuY2AgYXJndW1lbnRzLCBhbmQgc28gb24uIFRoZSBhcml0eSBvZiBgZnVuY2AgbWF5IGJlIHNwZWNpZmllZFxuICAgICAqIGlmIGBmdW5jLmxlbmd0aGAgaXMgbm90IHN1ZmZpY2llbnQuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uY3VycnkucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gICAgICogbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXMgbm90IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBjdXJyaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGN1cnJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHk9ZnVuYy5sZW5ndGhdIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFiYyA9IGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBjdXJyaWVkID0gXy5jdXJyeShhYmMpO1xuICAgICAqXG4gICAgICogY3VycmllZCgxKSgyKSgzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSwgMikoMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDEsIDIsIDMpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgcGxhY2Vob2xkZXJzXG4gICAgICogY3VycmllZCgxKShfLCAzKSgyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICB2YXIgY3VycnkgPSBjcmVhdGVDdXJyeShDVVJSWV9GTEFHKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY3VycnlgIGV4Y2VwdCB0aGF0IGFyZ3VtZW50cyBhcmUgYXBwbGllZCB0byBgZnVuY2BcbiAgICAgKiBpbiB0aGUgbWFubmVyIG9mIGBfLnBhcnRpYWxSaWdodGAgaW5zdGVhZCBvZiBgXy5wYXJ0aWFsYC5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5jdXJyeVJpZ2h0LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5PWZ1bmMubGVuZ3RoXSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGN1cnJpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhYmMgPSBmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiB2YXIgY3VycmllZCA9IF8uY3VycnlSaWdodChhYmMpO1xuICAgICAqXG4gICAgICogY3VycmllZCgzKSgyKSgxKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMiwgMykoMSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDEsIDIsIDMpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgcGxhY2Vob2xkZXJzXG4gICAgICogY3VycmllZCgzKSgxLCBfKSgyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICB2YXIgY3VycnlSaWdodCA9IGNyZWF0ZUN1cnJ5KENVUlJZX1JJR0hUX0ZMQUcpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZGVsYXlzIGludm9raW5nIGBmdW5jYCB1bnRpbCBhZnRlciBgd2FpdGAgbWlsbGlzZWNvbmRzXG4gICAgICogaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgaXQgd2FzIGludm9rZWQuIFRoZSBjcmVhdGVkIGZ1bmN0aW9uIGNvbWVzXG4gICAgICogd2l0aCBhIGBjYW5jZWxgIG1ldGhvZCB0byBjYW5jZWwgZGVsYXllZCBpbnZvY2F0aW9ucy4gUHJvdmlkZSBhbiBvcHRpb25zXG4gICAgICogb2JqZWN0IHRvIGluZGljYXRlIHRoYXQgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZSBsZWFkaW5nIGFuZC9vclxuICAgICAqIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBTdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSBkZWJvdW5jZWRcbiAgICAgKiBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2AgaW52b2NhdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXMgaW52b2tlZFxuICAgICAqIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gaXNcbiAgICAgKiBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gICAgICpcbiAgICAgKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cDovL2RydXBhbG1vdGlvbi5jb20vYXJ0aWNsZS9kZWJvdW5jZS1hbmQtdGhyb3R0bGUtdmlzdWFsLWV4cGxhbmF0aW9uKVxuICAgICAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXSBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nXG4gICAgICogIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFdhaXRdIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmVcbiAgICAgKiAgZGVsYXllZCBiZWZvcmUgaXQgaXMgaW52b2tlZC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nXG4gICAgICogIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZGVib3VuY2VkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBhdm9pZCBjb3N0bHkgY2FsY3VsYXRpb25zIHdoaWxlIHRoZSB3aW5kb3cgc2l6ZSBpcyBpbiBmbHV4XG4gICAgICogalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsIF8uZGVib3VuY2UoY2FsY3VsYXRlTGF5b3V0LCAxNTApKTtcbiAgICAgKlxuICAgICAqIC8vIGludm9rZSBgc2VuZE1haWxgIHdoZW4gdGhlIGNsaWNrIGV2ZW50IGlzIGZpcmVkLCBkZWJvdW5jaW5nIHN1YnNlcXVlbnQgY2FsbHNcbiAgICAgKiBqUXVlcnkoJyNwb3N0Ym94Jykub24oJ2NsaWNrJywgXy5kZWJvdW5jZShzZW5kTWFpbCwgMzAwLCB7XG4gICAgICogICAnbGVhZGluZyc6IHRydWUsXG4gICAgICogICAndHJhaWxpbmcnOiBmYWxzZVxuICAgICAqIH0pKTtcbiAgICAgKlxuICAgICAqIC8vIGVuc3VyZSBgYmF0Y2hMb2dgIGlzIGludm9rZWQgb25jZSBhZnRlciAxIHNlY29uZCBvZiBkZWJvdW5jZWQgY2FsbHNcbiAgICAgKiB2YXIgc291cmNlID0gbmV3IEV2ZW50U291cmNlKCcvc3RyZWFtJyk7XG4gICAgICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHtcbiAgICAgKiAgICdtYXhXYWl0JzogMTAwMFxuICAgICAqIH0pKTtcbiAgICAgKlxuICAgICAqIC8vIGNhbmNlbCBhIGRlYm91bmNlZCBjYWxsXG4gICAgICogdmFyIHRvZG9DaGFuZ2VzID0gXy5kZWJvdW5jZShiYXRjaExvZywgMTAwMCk7XG4gICAgICogT2JqZWN0Lm9ic2VydmUobW9kZWxzLnRvZG8sIHRvZG9DaGFuZ2VzKTtcbiAgICAgKlxuICAgICAqIE9iamVjdC5vYnNlcnZlKG1vZGVscywgZnVuY3Rpb24oY2hhbmdlcykge1xuICAgICAqICAgaWYgKF8uZmluZChjaGFuZ2VzLCB7ICd1c2VyJzogJ3RvZG8nLCAndHlwZSc6ICdkZWxldGUnfSkpIHtcbiAgICAgKiAgICAgdG9kb0NoYW5nZXMuY2FuY2VsKCk7XG4gICAgICogICB9XG4gICAgICogfSwgWydkZWxldGUnXSk7XG4gICAgICpcbiAgICAgKiAvLyAuLi5hdCBzb21lIHBvaW50IGBtb2RlbHMudG9kb2AgaXMgY2hhbmdlZFxuICAgICAqIG1vZGVscy50b2RvLmNvbXBsZXRlZCA9IHRydWU7XG4gICAgICpcbiAgICAgKiAvLyAuLi5iZWZvcmUgMSBzZWNvbmQgaGFzIHBhc3NlZCBgbW9kZWxzLnRvZG9gIGlzIGRlbGV0ZWRcbiAgICAgKiAvLyB3aGljaCBjYW5jZWxzIHRoZSBkZWJvdW5jZWQgYHRvZG9DaGFuZ2VzYCBjYWxsXG4gICAgICogZGVsZXRlIG1vZGVscy50b2RvO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBhcmdzLFxuICAgICAgICAgIG1heFRpbWVvdXRJZCxcbiAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgc3RhbXAsXG4gICAgICAgICAgdGhpc0FyZyxcbiAgICAgICAgICB0aW1lb3V0SWQsXG4gICAgICAgICAgdHJhaWxpbmdDYWxsLFxuICAgICAgICAgIGxhc3RDYWxsZWQgPSAwLFxuICAgICAgICAgIG1heFdhaXQgPSBmYWxzZSxcbiAgICAgICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHdhaXQgPSB3YWl0IDwgMCA/IDAgOiAoK3dhaXQgfHwgMCk7XG4gICAgICBpZiAob3B0aW9ucyA9PT0gdHJ1ZSkge1xuICAgICAgICB2YXIgbGVhZGluZyA9IHRydWU7XG4gICAgICAgIHRyYWlsaW5nID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIGxlYWRpbmcgPSBvcHRpb25zLmxlYWRpbmc7XG4gICAgICAgIG1heFdhaXQgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucyAmJiBuYXRpdmVNYXgoK29wdGlvbnMubWF4V2FpdCB8fCAwLCB3YWl0KTtcbiAgICAgICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyBvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGNhbmNlbCgpIHtcbiAgICAgICAgaWYgKHRpbWVvdXRJZCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXhUaW1lb3V0SWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQobWF4VGltZW91dElkKTtcbiAgICAgICAgfVxuICAgICAgICBtYXhUaW1lb3V0SWQgPSB0aW1lb3V0SWQgPSB0cmFpbGluZ0NhbGwgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGF5ZWQoKSB7XG4gICAgICAgIHZhciByZW1haW5pbmcgPSB3YWl0IC0gKG5vdygpIC0gc3RhbXApO1xuICAgICAgICBpZiAocmVtYWluaW5nIDw9IDAgfHwgcmVtYWluaW5nID4gd2FpdCkge1xuICAgICAgICAgIGlmIChtYXhUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChtYXhUaW1lb3V0SWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaXNDYWxsZWQgPSB0cmFpbGluZ0NhbGw7XG4gICAgICAgICAgbWF4VGltZW91dElkID0gdGltZW91dElkID0gdHJhaWxpbmdDYWxsID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChpc0NhbGxlZCkge1xuICAgICAgICAgICAgbGFzdENhbGxlZCA9IG5vdygpO1xuICAgICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICAgICAgICAgIGlmICghdGltZW91dElkICYmICFtYXhUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgICAgYXJncyA9IHRoaXNBcmcgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGRlbGF5ZWQsIHJlbWFpbmluZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gbWF4RGVsYXllZCgpIHtcbiAgICAgICAgaWYgKHRpbWVvdXRJZCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgICAgIG1heFRpbWVvdXRJZCA9IHRpbWVvdXRJZCA9IHRyYWlsaW5nQ2FsbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRyYWlsaW5nIHx8IChtYXhXYWl0ICE9PSB3YWl0KSkge1xuICAgICAgICAgIGxhc3RDYWxsZWQgPSBub3coKTtcbiAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgICAgIGlmICghdGltZW91dElkICYmICFtYXhUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGFyZ3MgPSB0aGlzQXJnID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZGVib3VuY2VkKCkge1xuICAgICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBzdGFtcCA9IG5vdygpO1xuICAgICAgICB0aGlzQXJnID0gdGhpcztcbiAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJhaWxpbmcgJiYgKHRpbWVvdXRJZCB8fCAhbGVhZGluZyk7XG5cbiAgICAgICAgaWYgKG1heFdhaXQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgdmFyIGxlYWRpbmdDYWxsID0gbGVhZGluZyAmJiAhdGltZW91dElkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghbWF4VGltZW91dElkICYmICFsZWFkaW5nKSB7XG4gICAgICAgICAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciByZW1haW5pbmcgPSBtYXhXYWl0IC0gKHN0YW1wIC0gbGFzdENhbGxlZCksXG4gICAgICAgICAgICAgIGlzQ2FsbGVkID0gcmVtYWluaW5nIDw9IDAgfHwgcmVtYWluaW5nID4gbWF4V2FpdDtcblxuICAgICAgICAgIGlmIChpc0NhbGxlZCkge1xuICAgICAgICAgICAgaWYgKG1heFRpbWVvdXRJZCkge1xuICAgICAgICAgICAgICBtYXhUaW1lb3V0SWQgPSBjbGVhclRpbWVvdXQobWF4VGltZW91dElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhc3RDYWxsZWQgPSBzdGFtcDtcbiAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKCFtYXhUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIG1heFRpbWVvdXRJZCA9IHNldFRpbWVvdXQobWF4RGVsYXllZCwgcmVtYWluaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ2FsbGVkICYmIHRpbWVvdXRJZCkge1xuICAgICAgICAgIHRpbWVvdXRJZCA9IGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aW1lb3V0SWQgJiYgd2FpdCAhPT0gbWF4V2FpdCkge1xuICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZGVsYXllZCwgd2FpdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XG4gICAgICAgICAgaXNDYWxsZWQgPSB0cnVlO1xuICAgICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ2FsbGVkICYmICF0aW1lb3V0SWQgJiYgIW1heFRpbWVvdXRJZCkge1xuICAgICAgICAgIGFyZ3MgPSB0aGlzQXJnID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZGVib3VuY2VkLmNhbmNlbCA9IGNhbmNlbDtcbiAgICAgIHJldHVybiBkZWJvdW5jZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmZXJzIGludm9raW5nIHRoZSBgZnVuY2AgdW50aWwgdGhlIGN1cnJlbnQgY2FsbCBzdGFjayBoYXMgY2xlYXJlZC4gQW55XG4gICAgICogYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0IGlzIGludm9rZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWZlci5cbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0aW1lciBpZC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZlcihmdW5jdGlvbih0ZXh0KSB7XG4gICAgICogICBjb25zb2xlLmxvZyh0ZXh0KTtcbiAgICAgKiB9LCAnZGVmZXJyZWQnKTtcbiAgICAgKiAvLyBsb2dzICdkZWZlcnJlZCcgYWZ0ZXIgb25lIG9yIG1vcmUgbWlsbGlzZWNvbmRzXG4gICAgICovXG4gICAgdmFyIGRlZmVyID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGZ1bmMsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBiYXNlRGVsYXkoZnVuYywgMSwgYXJncyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBJbnZva2VzIGBmdW5jYCBhZnRlciBgd2FpdGAgbWlsbGlzZWNvbmRzLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlXG4gICAgICogcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQgaXMgaW52b2tlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlbGF5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXIgaWQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVsYXkoZnVuY3Rpb24odGV4dCkge1xuICAgICAqICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICogfSwgMTAwMCwgJ2xhdGVyJyk7XG4gICAgICogLy8gPT4gbG9ncyAnbGF0ZXInIGFmdGVyIG9uZSBzZWNvbmRcbiAgICAgKi9cbiAgICB2YXIgZGVsYXkgPSByZXN0UGFyYW0oZnVuY3Rpb24oZnVuYywgd2FpdCwgYXJncykge1xuICAgICAgcmV0dXJuIGJhc2VEZWxheShmdW5jLCB3YWl0LCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgcHJvdmlkZWRcbiAgICAgKiBmdW5jdGlvbnMgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24sIHdoZXJlIGVhY2hcbiAgICAgKiBzdWNjZXNzaXZlIGludm9jYXRpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0gey4uLkZ1bmN0aW9ufSBbZnVuY3NdIEZ1bmN0aW9ucyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFkZFNxdWFyZSA9IF8uZmxvdyhfLmFkZCwgc3F1YXJlKTtcbiAgICAgKiBhZGRTcXVhcmUoMSwgMik7XG4gICAgICogLy8gPT4gOVxuICAgICAqL1xuICAgIHZhciBmbG93ID0gY3JlYXRlRmxvdygpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mbG93YCBleGNlcHQgdGhhdCBpdCBjcmVhdGVzIGEgZnVuY3Rpb24gdGhhdFxuICAgICAqIGludm9rZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9ucyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgYmFja2Zsb3csIGNvbXBvc2VcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0gey4uLkZ1bmN0aW9ufSBbZnVuY3NdIEZ1bmN0aW9ucyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFkZFNxdWFyZSA9IF8uZmxvd1JpZ2h0KHNxdWFyZSwgXy5hZGQpO1xuICAgICAqIGFkZFNxdWFyZSgxLCAyKTtcbiAgICAgKiAvLyA9PiA5XG4gICAgICovXG4gICAgdmFyIGZsb3dSaWdodCA9IGNyZWF0ZUZsb3codHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBtZW1vaXplcyB0aGUgcmVzdWx0IG9mIGBmdW5jYC4gSWYgYHJlc29sdmVyYCBpc1xuICAgICAqIHByb3ZpZGVkIGl0IGRldGVybWluZXMgdGhlIGNhY2hlIGtleSBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IGJhc2VkIG9uIHRoZVxuICAgICAqIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uIEJ5IGRlZmF1bHQsIHRoZSBmaXJzdCBhcmd1bWVudFxuICAgICAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyBjb2VyY2VkIHRvIGEgc3RyaW5nIGFuZCB1c2VkIGFzIHRoZVxuICAgICAqIGNhY2hlIGtleS4gVGhlIGBmdW5jYCBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZFxuICAgICAqIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoZSBjYWNoZSBpcyBleHBvc2VkIGFzIHRoZSBgY2FjaGVgIHByb3BlcnR5IG9uIHRoZSBtZW1vaXplZFxuICAgICAqIGZ1bmN0aW9uLiBJdHMgY3JlYXRpb24gbWF5IGJlIGN1c3RvbWl6ZWQgYnkgcmVwbGFjaW5nIHRoZSBgXy5tZW1vaXplLkNhY2hlYFxuICAgICAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlIFtgTWFwYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICAgICAqIG1ldGhvZCBpbnRlcmZhY2Ugb2YgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3Jlc29sdmVyXSBUaGUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0aGUgY2FjaGUga2V5LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemluZyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVwcGVyQ2FzZSA9IF8ubWVtb2l6ZShmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgKiAgIHJldHVybiBzdHJpbmcudG9VcHBlckNhc2UoKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHVwcGVyQ2FzZSgnZnJlZCcpO1xuICAgICAqIC8vID0+ICdGUkVEJ1xuICAgICAqXG4gICAgICogLy8gbW9kaWZ5aW5nIHRoZSByZXN1bHQgY2FjaGVcbiAgICAgKiB1cHBlckNhc2UuY2FjaGUuc2V0KCdmcmVkJywgJ0JBUk5FWScpO1xuICAgICAqIHVwcGVyQ2FzZSgnZnJlZCcpO1xuICAgICAqIC8vID0+ICdCQVJORVknXG4gICAgICpcbiAgICAgKiAvLyByZXBsYWNpbmcgYF8ubWVtb2l6ZS5DYWNoZWBcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJyB9O1xuICAgICAqIHZhciBvdGhlciA9IHsgJ3VzZXInOiAnYmFybmV5JyB9O1xuICAgICAqIHZhciBpZGVudGl0eSA9IF8ubWVtb2l6ZShfLmlkZW50aXR5KTtcbiAgICAgKlxuICAgICAqIGlkZW50aXR5KG9iamVjdCk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdmcmVkJyB9XG4gICAgICogaWRlbnRpdHkob3RoZXIpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqXG4gICAgICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAgICAgKiB2YXIgaWRlbnRpdHkgPSBfLm1lbW9pemUoXy5pZGVudGl0eSk7XG4gICAgICpcbiAgICAgKiBpZGVudGl0eShvYmplY3QpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqIGlkZW50aXR5KG90aGVyKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2Jhcm5leScgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lbW9pemUoZnVuYywgcmVzb2x2ZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nIHx8IChyZXNvbHZlciAmJiB0eXBlb2YgcmVzb2x2ZXIgIT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICAgICAgY2FjaGUgPSBtZW1vaXplZC5jYWNoZSxcbiAgICAgICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdO1xuXG4gICAgICAgIGlmIChjYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICAgIHJldHVybiBjYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgY2FjaGUuc2V0KGtleSwgcmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgICBtZW1vaXplZC5jYWNoZSA9IG5ldyBtZW1vaXplLkNhY2hlO1xuICAgICAgcmV0dXJuIG1lbW9pemVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG5lZ2F0ZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJlZGljYXRlIGBmdW5jYC4gVGhlXG4gICAgICogYGZ1bmNgIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlXG4gICAgICogY3JlYXRlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgcHJlZGljYXRlIHRvIG5lZ2F0ZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gaXNFdmVuKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8uZmlsdGVyKFsxLCAyLCAzLCA0LCA1LCA2XSwgXy5uZWdhdGUoaXNFdmVuKSk7XG4gICAgICogLy8gPT4gWzEsIDMsIDVdXG4gICAgICovXG4gICAgZnVuY3Rpb24gbmVnYXRlKHByZWRpY2F0ZSkge1xuICAgICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAhcHJlZGljYXRlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGlzIHJlc3RyaWN0ZWQgdG8gaW52b2tpbmcgYGZ1bmNgIG9uY2UuIFJlcGVhdCBjYWxsc1xuICAgICAqIHRvIHRoZSBmdW5jdGlvbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBjYWxsLiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGluaXRpYWxpemUgPSBfLm9uY2UoY3JlYXRlQXBwbGljYXRpb24pO1xuICAgICAqIGluaXRpYWxpemUoKTtcbiAgICAgKiBpbml0aWFsaXplKCk7XG4gICAgICogLy8gYGluaXRpYWxpemVgIGludm9rZXMgYGNyZWF0ZUFwcGxpY2F0aW9uYCBvbmNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gb25jZShmdW5jKSB7XG4gICAgICByZXR1cm4gYmVmb3JlKDIsIGZ1bmMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYHBhcnRpYWxgIGFyZ3VtZW50cyBwcmVwZW5kZWRcbiAgICAgKiB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmJpbmRgIGV4Y2VwdFxuICAgICAqIGl0IGRvZXMgKipub3QqKiBhbHRlciB0aGUgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBUaGUgYF8ucGFydGlhbC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lcyBub3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIHBhcnRpYWxseVxuICAgICAqIGFwcGxpZWQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcGFydGlhbGx5IGFwcGx5IGFyZ3VtZW50cyB0by5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYXJ0aWFsbHkgYXBwbGllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGdyZWV0ID0gZnVuY3Rpb24oZ3JlZXRpbmcsIG5hbWUpIHtcbiAgICAgKiAgIHJldHVybiBncmVldGluZyArICcgJyArIG5hbWU7XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBzYXlIZWxsb1RvID0gXy5wYXJ0aWFsKGdyZWV0LCAnaGVsbG8nKTtcbiAgICAgKiBzYXlIZWxsb1RvKCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBwbGFjZWhvbGRlcnNcbiAgICAgKiB2YXIgZ3JlZXRGcmVkID0gXy5wYXJ0aWFsKGdyZWV0LCBfLCAnZnJlZCcpO1xuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCdcbiAgICAgKi9cbiAgICB2YXIgcGFydGlhbCA9IGNyZWF0ZVBhcnRpYWwoUEFSVElBTF9GTEFHKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucGFydGlhbGAgZXhjZXB0IHRoYXQgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzXG4gICAgICogYXJlIGFwcGVuZGVkIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBUaGUgYF8ucGFydGlhbFJpZ2h0LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgcGFydGlhbGx5XG4gICAgICogYXBwbGllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBwYXJ0aWFsbHkgYXBwbHkgYXJndW1lbnRzIHRvLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHBhcnRpYWxseSBhcHBsaWVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZ3JlZXQgPSBmdW5jdGlvbihncmVldGluZywgbmFtZSkge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgbmFtZTtcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIGdyZWV0RnJlZCA9IF8ucGFydGlhbFJpZ2h0KGdyZWV0LCAnZnJlZCcpO1xuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHBsYWNlaG9sZGVyc1xuICAgICAqIHZhciBzYXlIZWxsb1RvID0gXy5wYXJ0aWFsUmlnaHQoZ3JlZXQsICdoZWxsbycsIF8pO1xuICAgICAqIHNheUhlbGxvVG8oJ2ZyZWQnKTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCdcbiAgICAgKi9cbiAgICB2YXIgcGFydGlhbFJpZ2h0ID0gY3JlYXRlUGFydGlhbChQQVJUSUFMX1JJR0hUX0ZMQUcpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBhcmd1bWVudHMgYXJyYW5nZWQgYWNjb3JkaW5nXG4gICAgICogdG8gdGhlIHNwZWNpZmllZCBpbmRleGVzIHdoZXJlIHRoZSBhcmd1bWVudCB2YWx1ZSBhdCB0aGUgZmlyc3QgaW5kZXggaXNcbiAgICAgKiBwcm92aWRlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQsIHRoZSBhcmd1bWVudCB2YWx1ZSBhdCB0aGUgc2Vjb25kIGluZGV4IGlzXG4gICAgICogcHJvdmlkZWQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCwgYW5kIHNvIG9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVhcnJhbmdlIGFyZ3VtZW50cyBmb3IuXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJndW1lbnQgaW5kZXhlcyxcbiAgICAgKiAgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgaW5kZXhlcyBvciBhcnJheXMgb2YgaW5kZXhlcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHJlYXJnZWQgPSBfLnJlYXJnKGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfSwgMiwgMCwgMSk7XG4gICAgICpcbiAgICAgKiByZWFyZ2VkKCdiJywgJ2MnLCAnYScpXG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXG4gICAgICpcbiAgICAgKiB2YXIgbWFwID0gXy5yZWFyZyhfLm1hcCwgWzEsIDBdKTtcbiAgICAgKiBtYXAoZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gKiAzO1xuICAgICAqIH0sIFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzMsIDYsIDldXG4gICAgICovXG4gICAgdmFyIHJlYXJnID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGZ1bmMsIGluZGV4ZXMpIHtcbiAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGZ1bmMsIFJFQVJHX0ZMQUcsIG51bGwsIG51bGwsIG51bGwsIGJhc2VGbGF0dGVuKGluZGV4ZXMpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZVxuICAgICAqIGNyZWF0ZWQgZnVuY3Rpb24gYW5kIGFyZ3VtZW50cyBmcm9tIGBzdGFydGAgYW5kIGJleW9uZCBwcm92aWRlZCBhcyBhbiBhcnJheS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvbiB0aGUgW3Jlc3QgcGFyYW1ldGVyXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9GdW5jdGlvbnMvcmVzdF9wYXJhbWV0ZXJzKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F5ID0gXy5yZXN0UGFyYW0oZnVuY3Rpb24od2hhdCwgbmFtZXMpIHtcbiAgICAgKiAgIHJldHVybiB3aGF0ICsgJyAnICsgXy5pbml0aWFsKG5hbWVzKS5qb2luKCcsICcpICtcbiAgICAgKiAgICAgKF8uc2l6ZShuYW1lcykgPiAxID8gJywgJiAnIDogJycpICsgXy5sYXN0KG5hbWVzKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHNheSgnaGVsbG8nLCAnZnJlZCcsICdiYXJuZXknLCAncGViYmxlcycpO1xuICAgICAqIC8vID0+ICdoZWxsbyBmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXN0UGFyYW0oZnVuYywgc3RhcnQpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQgPyAoZnVuYy5sZW5ndGggLSAxKSA6ICgrc3RhcnQgfHwgMCksIDApO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICAgIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBzdGFydCwgMCksXG4gICAgICAgICAgICByZXN0ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIHJlc3RbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHN0YXJ0KSB7XG4gICAgICAgICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXMsIHJlc3QpO1xuICAgICAgICAgIGNhc2UgMTogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzLCBhcmdzWzBdLCByZXN0KTtcbiAgICAgICAgICBjYXNlIDI6IHJldHVybiBmdW5jLmNhbGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSwgcmVzdCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG90aGVyQXJncyA9IEFycmF5KHN0YXJ0ICsgMSk7XG4gICAgICAgIGluZGV4ID0gLTE7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgc3RhcnQpIHtcbiAgICAgICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgb3RoZXJBcmdzW3N0YXJ0XSA9IHJlc3Q7XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIG90aGVyQXJncyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBjcmVhdGVkXG4gICAgICogZnVuY3Rpb24gYW5kIGFuIGFycmF5IG9mIGFyZ3VtZW50cyBtdWNoIGxpa2UgW2BGdW5jdGlvbiNhcHBseWBdKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjMuNC4zKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvbiB0aGUgW3NwcmVhZCBvcGVyYXRvcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL1NwcmVhZF9vcGVyYXRvcikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBzcHJlYWQgYXJndW1lbnRzIG92ZXIuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBzYXkgPSBfLnNwcmVhZChmdW5jdGlvbih3aG8sIHdoYXQpIHtcbiAgICAgKiAgIHJldHVybiB3aG8gKyAnIHNheXMgJyArIHdoYXQ7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzYXkoWydmcmVkJywgJ2hlbGxvJ10pO1xuICAgICAqIC8vID0+ICdmcmVkIHNheXMgaGVsbG8nXG4gICAgICpcbiAgICAgKiAvLyB3aXRoIGEgUHJvbWlzZVxuICAgICAqIHZhciBudW1iZXJzID0gUHJvbWlzZS5hbGwoW1xuICAgICAqICAgUHJvbWlzZS5yZXNvbHZlKDQwKSxcbiAgICAgKiAgIFByb21pc2UucmVzb2x2ZSgzNilcbiAgICAgKiBdKTtcbiAgICAgKlxuICAgICAqIG51bWJlcnMudGhlbihfLnNwcmVhZChmdW5jdGlvbih4LCB5KSB7XG4gICAgICogICByZXR1cm4geCArIHk7XG4gICAgICogfSkpO1xuICAgICAqIC8vID0+IGEgUHJvbWlzZSBvZiA3NlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNwcmVhZChmdW5jKSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24oYXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpcywgYXJyYXkpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBvbmx5IGludm9rZXMgYGZ1bmNgIGF0IG1vc3Qgb25jZSBwZXIgZXZlcnkgYHdhaXRgXG4gICAgICogbWlsbGlzZWNvbmRzLiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxuICAgICAqIGRlbGF5ZWQgaW52b2NhdGlvbnMuIFByb3ZpZGUgYW4gb3B0aW9ucyBvYmplY3QgdG8gaW5kaWNhdGUgdGhhdCBgZnVuY2BcbiAgICAgKiBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGUgbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gICAgICogU3Vic2VxdWVudCBjYWxscyB0byB0aGUgdGhyb3R0bGVkIGZ1bmN0aW9uIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0XG4gICAgICogYGZ1bmNgIGNhbGwuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzIGludm9rZWRcbiAgICAgKiBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSB0aGUgdGhyb3R0bGVkIGZ1bmN0aW9uIGlzXG4gICAgICogaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICAgICAqXG4gICAgICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHA6Ly9kcnVwYWxtb3Rpb24uY29tL2FydGljbGUvZGVib3VuY2UtYW5kLXRocm90dGxlLXZpc3VhbC1leHBsYW5hdGlvbilcbiAgICAgKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLnRocm90dGxlYCBhbmQgYF8uZGVib3VuY2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gdGhyb3R0bGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRocm90dGxlIGludm9jYXRpb25zIHRvLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz10cnVlXSBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nXG4gICAgICogIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXSBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZ1xuICAgICAqICBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHRocm90dGxlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gYXZvaWQgZXhjZXNzaXZlbHkgdXBkYXRpbmcgdGhlIHBvc2l0aW9uIHdoaWxlIHNjcm9sbGluZ1xuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdzY3JvbGwnLCBfLnRocm90dGxlKHVwZGF0ZVBvc2l0aW9uLCAxMDApKTtcbiAgICAgKlxuICAgICAqIC8vIGludm9rZSBgcmVuZXdUb2tlbmAgd2hlbiB0aGUgY2xpY2sgZXZlbnQgaXMgZmlyZWQsIGJ1dCBub3QgbW9yZSB0aGFuIG9uY2UgZXZlcnkgNSBtaW51dGVzXG4gICAgICogalF1ZXJ5KCcuaW50ZXJhY3RpdmUnKS5vbignY2xpY2snLCBfLnRocm90dGxlKHJlbmV3VG9rZW4sIDMwMDAwMCwge1xuICAgICAqICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAgICAgKiB9KSk7XG4gICAgICpcbiAgICAgKiAvLyBjYW5jZWwgYSB0cmFpbGluZyB0aHJvdHRsZWQgY2FsbFxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIHRocm90dGxlZC5jYW5jZWwpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBsZWFkaW5nID0gdHJ1ZSxcbiAgICAgICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zID09PSBmYWxzZSkge1xuICAgICAgICBsZWFkaW5nID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIGxlYWRpbmcgPSAnbGVhZGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcbiAgICAgICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgICAgIH1cbiAgICAgIGRlYm91bmNlT3B0aW9ucy5sZWFkaW5nID0gbGVhZGluZztcbiAgICAgIGRlYm91bmNlT3B0aW9ucy5tYXhXYWl0ID0gK3dhaXQ7XG4gICAgICBkZWJvdW5jZU9wdGlvbnMudHJhaWxpbmcgPSB0cmFpbGluZztcbiAgICAgIHJldHVybiBkZWJvdW5jZShmdW5jLCB3YWl0LCBkZWJvdW5jZU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIGB2YWx1ZWAgdG8gdGhlIHdyYXBwZXIgZnVuY3Rpb24gYXMgaXRzXG4gICAgICogZmlyc3QgYXJndW1lbnQuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZnVuY3Rpb24gYXJlXG4gICAgICogYXBwZW5kZWQgdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIHdyYXBwZXIgZnVuY3Rpb24uIFRoZSB3cmFwcGVyIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gd3JhcHBlciBUaGUgd3JhcHBlciBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHAgPSBfLndyYXAoXy5lc2NhcGUsIGZ1bmN0aW9uKGZ1bmMsIHRleHQpIHtcbiAgICAgKiAgIHJldHVybiAnPHA+JyArIGZ1bmModGV4dCkgKyAnPC9wPic7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBwKCdmcmVkLCBiYXJuZXksICYgcGViYmxlcycpO1xuICAgICAqIC8vID0+ICc8cD5mcmVkLCBiYXJuZXksICZhbXA7IHBlYmJsZXM8L3A+J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXAodmFsdWUsIHdyYXBwZXIpIHtcbiAgICAgIHdyYXBwZXIgPSB3cmFwcGVyID09IG51bGwgPyBpZGVudGl0eSA6IHdyYXBwZXI7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcih3cmFwcGVyLCBQQVJUSUFMX0ZMQUcsIG51bGwsIFt2YWx1ZV0sIFtdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHZhbHVlYC4gSWYgYGlzRGVlcGAgaXMgYHRydWVgIG5lc3RlZCBvYmplY3RzIGFyZSBjbG9uZWQsXG4gICAgICogb3RoZXJ3aXNlIHRoZXkgYXJlIGFzc2lnbmVkIGJ5IHJlZmVyZW5jZS4gSWYgYGN1c3RvbWl6ZXJgIGlzIHByb3ZpZGVkIGl0IGlzXG4gICAgICogaW52b2tlZCB0byBwcm9kdWNlIHRoZSBjbG9uZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYFxuICAgICAqIGNsb25pbmcgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgYm91bmQgdG9cbiAgICAgKiBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnQ7ICh2YWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdF0pLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlXG4gICAgICogW3N0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGhtXShodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9pbmZyYXN0cnVjdHVyZS5odG1sI2ludGVybmFsLXN0cnVjdHVyZWQtY2xvbmluZy1hbGdvcml0aG0pLlxuICAgICAqIFRoZSBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBhbmQgb2JqZWN0cyBjcmVhdGVkIGJ5XG4gICAgICogY29uc3RydWN0b3JzIG90aGVyIHRoYW4gYE9iamVjdGAgYXJlIGNsb25lZCB0byBwbGFpbiBgT2JqZWN0YCBvYmplY3RzLiBBblxuICAgICAqIGVtcHR5IG9iamVjdCBpcyByZXR1cm5lZCBmb3IgdW5jbG9uZWFibGUgdmFsdWVzIHN1Y2ggYXMgZnVuY3Rpb25zLCBET00gbm9kZXMsXG4gICAgICogTWFwcywgU2V0cywgYW5kIFdlYWtNYXBzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgY3VzdG9taXplcmAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGNsb25lZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogdmFyIHNoYWxsb3cgPSBfLmNsb25lKHVzZXJzKTtcbiAgICAgKiBzaGFsbG93WzBdID09PSB1c2Vyc1swXTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiB2YXIgZGVlcCA9IF8uY2xvbmUodXNlcnMsIHRydWUpO1xuICAgICAqIGRlZXBbMF0gPT09IHVzZXJzWzBdO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBhIGN1c3RvbWl6ZXIgY2FsbGJhY2tcbiAgICAgKiB2YXIgZWwgPSBfLmNsb25lKGRvY3VtZW50LmJvZHksIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICBpZiAoXy5pc0VsZW1lbnQodmFsdWUpKSB7XG4gICAgICogICAgIHJldHVybiB2YWx1ZS5jbG9uZU5vZGUoZmFsc2UpO1xuICAgICAqICAgfVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogZWwgPT09IGRvY3VtZW50LmJvZHlcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqIGVsLm5vZGVOYW1lXG4gICAgICogLy8gPT4gQk9EWVxuICAgICAqIGVsLmNoaWxkTm9kZXMubGVuZ3RoO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZSh2YWx1ZSwgaXNEZWVwLCBjdXN0b21pemVyLCB0aGlzQXJnKSB7XG4gICAgICBpZiAoaXNEZWVwICYmIHR5cGVvZiBpc0RlZXAgIT0gJ2Jvb2xlYW4nICYmIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpc0RlZXAsIGN1c3RvbWl6ZXIpKSB7XG4gICAgICAgIGlzRGVlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodHlwZW9mIGlzRGVlcCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXNBcmcgPSBjdXN0b21pemVyO1xuICAgICAgICBjdXN0b21pemVyID0gaXNEZWVwO1xuICAgICAgICBpc0RlZXAgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nICYmIGJpbmRDYWxsYmFjayhjdXN0b21pemVyLCB0aGlzQXJnLCAxKTtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIGlzRGVlcCwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGRlZXAgY2xvbmUgb2YgYHZhbHVlYC4gSWYgYGN1c3RvbWl6ZXJgIGlzIHByb3ZpZGVkIGl0IGlzIGludm9rZWRcbiAgICAgKiB0byBwcm9kdWNlIHRoZSBjbG9uZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCBjbG9uaW5nXG4gICAgICogaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgYm91bmQgdG8gYHRoaXNBcmdgXG4gICAgICogYW5kIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnQ7ICh2YWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdF0pLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlXG4gICAgICogW3N0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGhtXShodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9pbmZyYXN0cnVjdHVyZS5odG1sI2ludGVybmFsLXN0cnVjdHVyZWQtY2xvbmluZy1hbGdvcml0aG0pLlxuICAgICAqIFRoZSBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBhbmQgb2JqZWN0cyBjcmVhdGVkIGJ5XG4gICAgICogY29uc3RydWN0b3JzIG90aGVyIHRoYW4gYE9iamVjdGAgYXJlIGNsb25lZCB0byBwbGFpbiBgT2JqZWN0YCBvYmplY3RzLiBBblxuICAgICAqIGVtcHR5IG9iamVjdCBpcyByZXR1cm5lZCBmb3IgdW5jbG9uZWFibGUgdmFsdWVzIHN1Y2ggYXMgZnVuY3Rpb25zLCBET00gbm9kZXMsXG4gICAgICogTWFwcywgU2V0cywgYW5kIFdlYWtNYXBzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBkZWVwIGNsb25lLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgY3VzdG9taXplcmAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiB2YXIgZGVlcCA9IF8uY2xvbmVEZWVwKHVzZXJzKTtcbiAgICAgKiBkZWVwWzBdID09PSB1c2Vyc1swXTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgYSBjdXN0b21pemVyIGNhbGxiYWNrXG4gICAgICogdmFyIGVsID0gXy5jbG9uZURlZXAoZG9jdW1lbnQuYm9keSwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgKiAgIGlmIChfLmlzRWxlbWVudCh2YWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHZhbHVlLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGVsID09PSBkb2N1bWVudC5ib2R5XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKiBlbC5ub2RlTmFtZVxuICAgICAqIC8vID0+IEJPRFlcbiAgICAgKiBlbC5jaGlsZE5vZGVzLmxlbmd0aDtcbiAgICAgKiAvLyA9PiAyMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lRGVlcCh2YWx1ZSwgY3VzdG9taXplciwgdGhpc0FyZykge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgJiYgYmluZENhbGxiYWNrKGN1c3RvbWl6ZXIsIHRoaXNBcmcsIDEpO1xuICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgdHJ1ZSwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgYXJndW1lbnRzYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNBcmd1bWVudHModmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBhcmdzVGFnO1xuICAgIH1cbiAgICAvLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGhvdXQgYSBgdG9TdHJpbmdUYWdgIGZvciBgYXJndW1lbnRzYCBvYmplY3RzLlxuICAgIGlmICghc3VwcG9ydC5hcmdzVGFnKSB7XG4gICAgICBpc0FyZ3VtZW50cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKSAmJlxuICAgICAgICAgIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJiAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNBcnJheSA9IG5hdGl2ZUlzQXJyYXkgfHwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gYXJyYXlUYWc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBib29sZWFuIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNCb29sZWFuKGZhbHNlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQm9vbGVhbihudWxsKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBib29sVGFnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYERhdGVgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0RhdGUobmV3IERhdGUpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNEYXRlKCdNb24gQXByaWwgMjMgMjAxMicpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNEYXRlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBkYXRlVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgRE9NIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgRE9NIGVsZW1lbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0VsZW1lbnQoZG9jdW1lbnQuYm9keSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0VsZW1lbnQoJzxib2R5PicpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFbGVtZW50KHZhbHVlKSB7XG4gICAgICByZXR1cm4gISF2YWx1ZSAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMSAmJiBpc09iamVjdExpa2UodmFsdWUpICYmXG4gICAgICAgIChsb2Rhc2guc3VwcG9ydC5ub2RlVGFnID8gKG9ialRvU3RyaW5nLmNhbGwodmFsdWUpLmluZGV4T2YoJ0VsZW1lbnQnKSA+IC0xKSA6IGlzSG9zdE9iamVjdCh2YWx1ZSkpO1xuICAgIH1cbiAgICAvLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGhvdXQgRE9NIHN1cHBvcnQuXG4gICAgaWYgKCFzdXBwb3J0LmRvbSkge1xuICAgICAgaXNFbGVtZW50ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgdmFsdWUubm9kZVR5cGUgPT09IDEgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGVtcHR5LiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgZW1wdHkgdW5sZXNzIGl0IGlzIGFuXG4gICAgICogYGFyZ3VtZW50c2Agb2JqZWN0LCBhcnJheSwgc3RyaW5nLCBvciBqUXVlcnktbGlrZSBjb2xsZWN0aW9uIHdpdGggYSBsZW5ndGhcbiAgICAgKiBncmVhdGVyIHRoYW4gYDBgIG9yIGFuIG9iamVjdCB3aXRoIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSh0cnVlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkoMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXlMaWtlKHZhbHVlKSAmJiAoaXNBcnJheSh2YWx1ZSkgfHwgaXNTdHJpbmcodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSB8fFxuICAgICAgICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGlzRnVuY3Rpb24odmFsdWUuc3BsaWNlKSkpKSB7XG4gICAgICAgIHJldHVybiAhdmFsdWUubGVuZ3RoO1xuICAgICAgfVxuICAgICAgcmV0dXJuICFrZXlzKHZhbHVlKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZVxuICAgICAqIGVxdWl2YWxlbnQuIElmIGBjdXN0b21pemVyYCBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkIHRvIGNvbXBhcmUgdmFsdWVzLlxuICAgICAqIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgIGNvbXBhcmlzb25zIGFyZSBoYW5kbGVkIGJ5IHRoZSBtZXRob2RcbiAgICAgKiBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIG90aGVyIFssIGluZGV4fGtleV0pLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGNvbXBhcmluZyBhcnJheXMsIGJvb2xlYW5zLCBgRGF0ZWAgb2JqZWN0cyxcbiAgICAgKiBudW1iZXJzLCBgT2JqZWN0YCBvYmplY3RzLCByZWdleGVzLCBhbmQgc3RyaW5ncy4gT2JqZWN0cyBhcmUgY29tcGFyZWQgYnlcbiAgICAgKiB0aGVpciBvd24sIG5vdCBpbmhlcml0ZWQsIGVudW1lcmFibGUgcHJvcGVydGllcy4gRnVuY3Rpb25zIGFuZCBET00gbm9kZXNcbiAgICAgKiBhcmUgKipub3QqKiBzdXBwb3J0ZWQuIFByb3ZpZGUgYSBjdXN0b21pemVyIGZ1bmN0aW9uIHRvIGV4dGVuZCBzdXBwb3J0XG4gICAgICogZm9yIGNvbXBhcmluZyBvdGhlciB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGN1c3RvbWl6ZXJgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnIH07XG4gICAgICogdmFyIG90aGVyID0geyAndXNlcic6ICdmcmVkJyB9O1xuICAgICAqXG4gICAgICogb2JqZWN0ID09IG90aGVyO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzRXF1YWwob2JqZWN0LCBvdGhlcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgYSBjdXN0b21pemVyIGNhbGxiYWNrXG4gICAgICogdmFyIGFycmF5ID0gWydoZWxsbycsICdnb29kYnllJ107XG4gICAgICogdmFyIG90aGVyID0gWydoaScsICdnb29kYnllJ107XG4gICAgICpcbiAgICAgKiBfLmlzRXF1YWwoYXJyYXksIG90aGVyLCBmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgKiAgIGlmIChfLmV2ZXJ5KFt2YWx1ZSwgb3RoZXJdLCBSZWdFeHAucHJvdG90eXBlLnRlc3QsIC9eaCg/Oml8ZWxsbykkLykpIHtcbiAgICAgKiAgICAgcmV0dXJuIHRydWU7XG4gICAgICogICB9XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRXF1YWwodmFsdWUsIG90aGVyLCBjdXN0b21pemVyLCB0aGlzQXJnKSB7XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyAmJiBiaW5kQ2FsbGJhY2soY3VzdG9taXplciwgdGhpc0FyZywgMyk7XG4gICAgICBpZiAoIWN1c3RvbWl6ZXIgJiYgaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSAmJiBpc1N0cmljdENvbXBhcmFibGUob3RoZXIpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gb3RoZXI7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIodmFsdWUsIG90aGVyKSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgY3VzdG9taXplcikgOiAhIXJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBgRXJyb3JgLCBgRXZhbEVycm9yYCwgYFJhbmdlRXJyb3JgLCBgUmVmZXJlbmNlRXJyb3JgLFxuICAgICAqIGBTeW50YXhFcnJvcmAsIGBUeXBlRXJyb3JgLCBvciBgVVJJRXJyb3JgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gZXJyb3Igb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNFcnJvcihuZXcgRXJyb3IpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFcnJvcihFcnJvcik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Vycm9yKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiB0eXBlb2YgdmFsdWUubWVzc2FnZSA9PSAnc3RyaW5nJyAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBlcnJvclRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGZpbml0ZSBwcmltaXRpdmUgbnVtYmVyLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uIFtgTnVtYmVyLmlzRmluaXRlYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW51bWJlci5pc2Zpbml0ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZmluaXRlIG51bWJlciwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKDEwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKCcxMCcpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKHRydWUpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKE9iamVjdCgxMCkpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0Zpbml0ZSA9IG5hdGl2ZU51bUlzRmluaXRlIHx8IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIG5hdGl2ZUlzRmluaXRlKHZhbHVlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRnVuY3Rpb24oXyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0Z1bmN0aW9uID0gIShiYXNlSXNGdW5jdGlvbigveC8pIHx8IChVaW50OEFycmF5ICYmICFiYXNlSXNGdW5jdGlvbihVaW50OEFycmF5KSkpID8gYmFzZUlzRnVuY3Rpb24gOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgLy8gVGhlIHVzZSBvZiBgT2JqZWN0I3RvU3RyaW5nYCBhdm9pZHMgaXNzdWVzIHdpdGggdGhlIGB0eXBlb2ZgIG9wZXJhdG9yXG4gICAgICAvLyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaSB3aGljaCByZXR1cm4gJ2Z1bmN0aW9uJyBmb3IgcmVnZXhlc1xuICAgICAgLy8gYW5kIFNhZmFyaSA4IGVxdWl2YWxlbnRzIHdoaWNoIHJldHVybiAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXkgY29uc3RydWN0b3JzLlxuICAgICAgcmV0dXJuIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IGZ1bmNUYWc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZSBbbGFuZ3VhZ2UgdHlwZV0oaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyN4OCkgb2YgYE9iamVjdGAuXG4gICAgICogKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KHt9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdCgxKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gICAgICAvLyBBdm9pZCBhIFY4IEpJVCBidWcgaW4gQ2hyb21lIDE5LTIwLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMjkxIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICAgIHJldHVybiB0eXBlID09ICdmdW5jdGlvbicgfHwgKCEhdmFsdWUgJiYgdHlwZSA9PSAnb2JqZWN0Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiBgb2JqZWN0YCBhbmQgYHNvdXJjZWAgdG8gZGV0ZXJtaW5lIGlmXG4gICAgICogYG9iamVjdGAgY29udGFpbnMgZXF1aXZhbGVudCBwcm9wZXJ0eSB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCBpcyBwcm92aWRlZFxuICAgICAqIGl0IGlzIGludm9rZWQgdG8gY29tcGFyZSB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgXG4gICAgICogY29tcGFyaXNvbnMgYXJlIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGJvdW5kXG4gICAgICogdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIG90aGVyLCBpbmRleHxrZXkpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGNvbXBhcmluZyBwcm9wZXJ0aWVzIG9mIGFycmF5cywgYm9vbGVhbnMsXG4gICAgICogYERhdGVgIG9iamVjdHMsIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsIGFuZCBzdHJpbmdzLiBGdW5jdGlvbnNcbiAgICAgKiBhbmQgRE9NIG5vZGVzIGFyZSAqKm5vdCoqIHN1cHBvcnRlZC4gUHJvdmlkZSBhIGN1c3RvbWl6ZXIgZnVuY3Rpb24gdG8gZXh0ZW5kXG4gICAgICogc3VwcG9ydCBmb3IgY29tcGFyaW5nIG90aGVyIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGN1c3RvbWl6ZXJgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfTtcbiAgICAgKlxuICAgICAqIF8uaXNNYXRjaChvYmplY3QsIHsgJ2FnZSc6IDQwIH0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNNYXRjaChvYmplY3QsIHsgJ2FnZSc6IDM2IH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBhIGN1c3RvbWl6ZXIgY2FsbGJhY2tcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnZ3JlZXRpbmcnOiAnaGVsbG8nIH07XG4gICAgICogdmFyIHNvdXJjZSA9IHsgJ2dyZWV0aW5nJzogJ2hpJyB9O1xuICAgICAqXG4gICAgICogXy5pc01hdGNoKG9iamVjdCwgc291cmNlLCBmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgKiAgIHJldHVybiBfLmV2ZXJ5KFt2YWx1ZSwgb3RoZXJdLCBSZWdFeHAucHJvdG90eXBlLnRlc3QsIC9eaCg/Oml8ZWxsbykkLykgfHwgdW5kZWZpbmVkO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc01hdGNoKG9iamVjdCwgc291cmNlLCBjdXN0b21pemVyLCB0aGlzQXJnKSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSksXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyAmJiBiaW5kQ2FsbGJhY2soY3VzdG9taXplciwgdGhpc0FyZywgMyk7XG4gICAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuICAgICAgaWYgKCFjdXN0b21pemVyICYmIGxlbmd0aCA9PSAxKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1swXSxcbiAgICAgICAgICAgIHZhbHVlID0gc291cmNlW2tleV07XG5cbiAgICAgICAgaWYgKGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IG9iamVjdFtrZXldICYmICh2YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gb2JqZWN0KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciB2YWx1ZXMgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgIHN0cmljdENvbXBhcmVGbGFncyA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlc1tsZW5ndGhdID0gc291cmNlW3Byb3BzW2xlbmd0aF1dO1xuICAgICAgICBzdHJpY3RDb21wYXJlRmxhZ3NbbGVuZ3RoXSA9IGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUlzTWF0Y2gob2JqZWN0LCBwcm9wcywgdmFsdWVzLCBzdHJpY3RDb21wYXJlRmxhZ3MsIGN1c3RvbWl6ZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGBOYU5gLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIG5vdCB0aGUgc2FtZSBhcyBbYGlzTmFOYF0oaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyN4MTUuMS4yLjQpXG4gICAgICogd2hpY2ggcmV0dXJucyBgdHJ1ZWAgZm9yIGB1bmRlZmluZWRgIGFuZCBvdGhlciBub24tbnVtZXJpYyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOYU4oTmFOKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmFOKG5ldyBOdW1iZXIoTmFOKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogaXNOYU4odW5kZWZpbmVkKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmFOKHVuZGVmaW5lZCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc05hTih2YWx1ZSkge1xuICAgICAgLy8gQW4gYE5hTmAgcHJpbWl0aXZlIGlzIHRoZSBvbmx5IHZhbHVlIHRoYXQgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi5cbiAgICAgIC8vIFBlcmZvcm0gdGhlIGB0b1N0cmluZ1RhZ2AgY2hlY2sgZmlyc3QgdG8gYXZvaWQgZXJyb3JzIHdpdGggc29tZSBob3N0IG9iamVjdHMgaW4gSUUuXG4gICAgICByZXR1cm4gaXNOdW1iZXIodmFsdWUpICYmIHZhbHVlICE9ICt2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc05hdGl2ZShBcnJheS5wcm90b3R5cGUucHVzaCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05hdGl2ZShfKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTmF0aXZlKHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAob2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gZnVuY1RhZykge1xuICAgICAgICByZXR1cm4gcmVJc05hdGl2ZS50ZXN0KGZuVG9TdHJpbmcuY2FsbCh2YWx1ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgKGlzSG9zdE9iamVjdCh2YWx1ZSkgPyByZUlzTmF0aXZlIDogcmVJc0hvc3RDdG9yKS50ZXN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgbnVsbGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBudWxsYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTnVsbChudWxsKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVsbCh2b2lkIDApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOdWxsKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBOdW1iZXJgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVG8gZXhjbHVkZSBgSW5maW5pdHlgLCBgLUluZmluaXR5YCwgYW5kIGBOYU5gLCB3aGljaCBhcmUgY2xhc3NpZmllZFxuICAgICAqIGFzIG51bWJlcnMsIHVzZSB0aGUgYF8uaXNGaW5pdGVgIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc051bWJlcig4LjQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoTmFOKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKCc4LjQnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInIHx8IChpc09iamVjdExpa2UodmFsdWUpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IG51bWJlclRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICAgICAqIGBPYmplY3RgIGNvbnN0cnVjdG9yIG9yIG9uZSB3aXRoIGEgYFtbUHJvdG90eXBlXV1gIG9mIGBudWxsYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBhc3N1bWVzIG9iamVjdHMgY3JlYXRlZCBieSB0aGUgYE9iamVjdGAgY29uc3RydWN0b3JcbiAgICAgKiBoYXZlIG5vIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KG5ldyBGb28pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KHsgJ3gnOiAwLCAneSc6IDAgfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KE9iamVjdC5jcmVhdGUobnVsbCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICB2YXIgaXNQbGFpbk9iamVjdCA9ICFnZXRQcm90b3R5cGVPZiA/IHNoaW1Jc1BsYWluT2JqZWN0IDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIGlmICghKHZhbHVlICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IG9iamVjdFRhZykgfHwgKCFsb2Rhc2guc3VwcG9ydC5hcmdzVGFnICYmIGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHZhbHVlT2YgPSB2YWx1ZS52YWx1ZU9mLFxuICAgICAgICAgIG9ialByb3RvID0gaXNOYXRpdmUodmFsdWVPZikgJiYgKG9ialByb3RvID0gZ2V0UHJvdG90eXBlT2YodmFsdWVPZikpICYmIGdldFByb3RvdHlwZU9mKG9ialByb3RvKTtcblxuICAgICAgcmV0dXJuIG9ialByb3RvXG4gICAgICAgID8gKHZhbHVlID09IG9ialByb3RvIHx8IGdldFByb3RvdHlwZU9mKHZhbHVlKSA9PSBvYmpQcm90bylcbiAgICAgICAgOiBzaGltSXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgUmVnRXhwYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNSZWdFeHAoL2FiYy8pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNSZWdFeHAoJy9hYmMvJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1JlZ0V4cCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0KHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSByZWdleHBUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTdHJpbmdgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNTdHJpbmcoJ2FiYycpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNTdHJpbmcoMSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzdHJpbmdUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW29ialRvU3RyaW5nLmNhbGwodmFsdWUpXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1VuZGVmaW5lZCh2b2lkIDApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNVbmRlZmluZWQobnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhbiBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogKGZ1bmN0aW9uKCkge1xuICAgICAqICAgcmV0dXJuIF8udG9BcnJheShhcmd1bWVudHMpLnNsaWNlKDEpO1xuICAgICAqIH0oMSwgMiwgMykpO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvQXJyYXkodmFsdWUpIHtcbiAgICAgIHZhciBsZW5ndGggPSB2YWx1ZSA/IGdldExlbmd0aCh2YWx1ZSkgOiAwO1xuICAgICAgaWYgKCFpc0xlbmd0aChsZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXModmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChsb2Rhc2guc3VwcG9ydC51bmluZGV4ZWRDaGFycyAmJiBpc1N0cmluZyh2YWx1ZSkpXG4gICAgICAgID8gdmFsdWUuc3BsaXQoJycpXG4gICAgICAgIDogYXJyYXlDb3B5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgcGxhaW4gb2JqZWN0IGZsYXR0ZW5pbmcgaW5oZXJpdGVkIGVudW1lcmFibGVcbiAgICAgKiBwcm9wZXJ0aWVzIG9mIGB2YWx1ZWAgdG8gb3duIHByb3BlcnRpZXMgb2YgdGhlIHBsYWluIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgcGxhaW4gb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbih7ICdhJzogMSB9LCBuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKlxuICAgICAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIF8udG9QbGFpbk9iamVjdChuZXcgRm9vKSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gYmFzZUNvcHkodmFsdWUsIGtleXNJbih2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgb3duIGVudW1lcmFibGUgcHJvcGVydGllcyBvZiBzb3VyY2Ugb2JqZWN0KHMpIHRvIHRoZSBkZXN0aW5hdGlvblxuICAgICAqIG9iamVjdC4gU3Vic2VxdWVudCBzb3VyY2VzIG92ZXJ3cml0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyBzb3VyY2VzLlxuICAgICAqIElmIGBjdXN0b21pemVyYCBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIGZpdmUgYXJndW1lbnRzOlxuICAgICAqIChvYmplY3RWYWx1ZSwgc291cmNlVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAgYW5kIGlzIGJhc2VkIG9uXG4gICAgICogW2BPYmplY3QuYXNzaWduYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5hc3NpZ24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGFsaWFzIGV4dGVuZFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgY3VzdG9taXplcmAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5hc3NpZ24oeyAndXNlcic6ICdiYXJuZXknIH0sIHsgJ2FnZSc6IDQwIH0sIHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH1cbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGEgY3VzdG9taXplciBjYWxsYmFja1xuICAgICAqIHZhciBkZWZhdWx0cyA9IF8ucGFydGlhbFJpZ2h0KF8uYXNzaWduLCBmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgKiAgIHJldHVybiBfLmlzVW5kZWZpbmVkKHZhbHVlKSA/IG90aGVyIDogdmFsdWU7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBkZWZhdWx0cyh7ICd1c2VyJzogJ2Jhcm5leScgfSwgeyAnYWdlJzogMzYgfSwgeyAndXNlcic6ICdmcmVkJyB9KTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbiA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBjdXN0b21pemVyKSB7XG4gICAgICByZXR1cm4gY3VzdG9taXplclxuICAgICAgICA/IGFzc2lnbldpdGgob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIpXG4gICAgICAgIDogYmFzZUFzc2lnbihvYmplY3QsIHNvdXJjZSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCB0aGF0IGluaGVyaXRzIGZyb20gdGhlIGdpdmVuIGBwcm90b3R5cGVgIG9iamVjdC4gSWYgYVxuICAgICAqIGBwcm9wZXJ0aWVzYCBvYmplY3QgaXMgcHJvdmlkZWQgaXRzIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgYXJlIGFzc2lnbmVkXG4gICAgICogdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm90b3R5cGUgVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtwcm9wZXJ0aWVzXSBUaGUgcHJvcGVydGllcyB0byBhc3NpZ24gdG8gdGhlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBTaGFwZSgpIHtcbiAgICAgKiAgIHRoaXMueCA9IDA7XG4gICAgICogICB0aGlzLnkgPSAwO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIENpcmNsZSgpIHtcbiAgICAgKiAgIFNoYXBlLmNhbGwodGhpcyk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogQ2lyY2xlLnByb3RvdHlwZSA9IF8uY3JlYXRlKFNoYXBlLnByb3RvdHlwZSwge1xuICAgICAqICAgJ2NvbnN0cnVjdG9yJzogQ2lyY2xlXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiB2YXIgY2lyY2xlID0gbmV3IENpcmNsZTtcbiAgICAgKiBjaXJjbGUgaW5zdGFuY2VvZiBDaXJjbGU7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogY2lyY2xlIGluc3RhbmNlb2YgU2hhcGU7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZShwcm90b3R5cGUsIHByb3BlcnRpZXMsIGd1YXJkKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZUNyZWF0ZShwcm90b3R5cGUpO1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHByb3RvdHlwZSwgcHJvcGVydGllcywgZ3VhcmQpKSB7XG4gICAgICAgIHByb3BlcnRpZXMgPSBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb3BlcnRpZXMgPyBiYXNlQXNzaWduKHJlc3VsdCwgcHJvcGVydGllcykgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXNzaWducyBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIHNvdXJjZSBvYmplY3QocykgdG8gdGhlIGRlc3RpbmF0aW9uXG4gICAgICogb2JqZWN0IGZvciBhbGwgZGVzdGluYXRpb24gcHJvcGVydGllcyB0aGF0IHJlc29sdmUgdG8gYHVuZGVmaW5lZGAuIE9uY2UgYVxuICAgICAqIHByb3BlcnR5IGlzIHNldCwgYWRkaXRpb25hbCB2YWx1ZXMgb2YgdGhlIHNhbWUgcHJvcGVydHkgYXJlIGlnbm9yZWQuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZhdWx0cyh7ICd1c2VyJzogJ2Jhcm5leScgfSwgeyAnYWdlJzogMzYgfSwgeyAndXNlcic6ICdmcmVkJyB9KTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9XG4gICAgICovXG4gICAgdmFyIGRlZmF1bHRzID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIHZhciBvYmplY3QgPSBhcmdzWzBdO1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICB9XG4gICAgICBhcmdzLnB1c2goYXNzaWduRGVmYXVsdHMpO1xuICAgICAgcmV0dXJuIGFzc2lnbi5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGZpcnN0XG4gICAgICogZWxlbWVudCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgaW5zdGVhZCBvZiB0aGUgZWxlbWVudCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdiYXJuZXknOiAgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgICdwZWJibGVzJzogeyAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCBmdW5jdGlvbihjaHIpIHtcbiAgICAgKiAgIHJldHVybiBjaHIuYWdlIDwgNDA7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gJ2Jhcm5leScgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+ICdwZWJibGVzJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCAnYWN0aXZlJywgZmFsc2UpO1xuICAgICAqIC8vID0+ICdmcmVkJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xuICAgICAqL1xuICAgIHZhciBmaW5kS2V5ID0gY3JlYXRlRmluZEtleShiYXNlRm9yT3duKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZEtleWAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGEgY29sbGVjdGlvbiBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBJZiBhIHByb3BlcnR5IG5hbWUgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICAgICAqICBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdiYXJuZXknOiAgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgICdwZWJibGVzJzogeyAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5maW5kTGFzdEtleSh1c2VycywgZnVuY3Rpb24oY2hyKSB7XG4gICAgICogICByZXR1cm4gY2hyLmFnZSA8IDQwO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHJldHVybnMgYHBlYmJsZXNgIGFzc3VtaW5nIGBfLmZpbmRLZXlgIHJldHVybnMgYGJhcm5leWBcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzYCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsICdhY3RpdmUnLCBmYWxzZSk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAncGViYmxlcydcbiAgICAgKi9cbiAgICB2YXIgZmluZExhc3RLZXkgPSBjcmVhdGVGaW5kS2V5KGJhc2VGb3JPd25SaWdodCk7XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcyBvZiBhbiBvYmplY3QgaW52b2tpbmdcbiAgICAgKiBgaXRlcmF0ZWVgIGZvciBlYWNoIHByb3BlcnR5LiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBrZXksIG9iamVjdCkuIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdFxuICAgICAqIGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9ySW4obmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBsb2dzICdhJywgJ2InLCBhbmQgJ2MnIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgdmFyIGZvckluID0gY3JlYXRlRm9ySW4oYmFzZUZvcik7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZvckluYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXMgb2ZcbiAgICAgKiBgb2JqZWN0YCBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5mb3JJblJpZ2h0KG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gbG9ncyAnYycsICdiJywgYW5kICdhJyBhc3N1bWluZyBgXy5mb3JJbiBgIGxvZ3MgJ2EnLCAnYicsIGFuZCAnYydcbiAgICAgKi9cbiAgICB2YXIgZm9ySW5SaWdodCA9IGNyZWF0ZUZvckluKGJhc2VGb3JSaWdodCk7XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0IGludm9raW5nIGBpdGVyYXRlZWBcbiAgICAgKiBmb3IgZWFjaCBwcm9wZXJ0eS4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGhcbiAgICAgKiB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uXG4gICAgICogZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvck93bihuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IGxvZ3MgJ2EnIGFuZCAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICB2YXIgZm9yT3duID0gY3JlYXRlRm9yT3duKGJhc2VGb3JPd24pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mb3JPd25gIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgcHJvcGVydGllcyBvZlxuICAgICAqIGBvYmplY3RgIGluIHRoZSBvcHBvc2l0ZSBvcmRlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvck93blJpZ2h0KG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gbG9ncyAnYicgYW5kICdhJyBhc3N1bWluZyBgXy5mb3JPd25gIGxvZ3MgJ2EnIGFuZCAnYidcbiAgICAgKi9cbiAgICB2YXIgZm9yT3duUmlnaHQgPSBjcmVhdGVGb3JPd24oYmFzZUZvck93blJpZ2h0KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZnVuY3Rpb24gcHJvcGVydHkgbmFtZXMgZnJvbSBhbGwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLFxuICAgICAqIG93biBhbmQgaW5oZXJpdGVkLCBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBhbGlhcyBtZXRob2RzXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZ1bmN0aW9ucyhfKTtcbiAgICAgKiAvLyA9PiBbJ2FmdGVyJywgJ2FyeScsICdhc3NpZ24nLCAuLi5dXG4gICAgICovXG4gICAgZnVuY3Rpb24gZnVuY3Rpb25zKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGJhc2VGdW5jdGlvbnMob2JqZWN0LCBrZXlzSW4ob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgYHBhdGhgIG9uIGBvYmplY3RgLiBJZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXNcbiAgICAgKiBgdW5kZWZpbmVkYCB0aGUgYGRlZmF1bHRWYWx1ZWAgaXMgdXNlZCBpbiBpdHMgcGxhY2UuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSBbZGVmYXVsdFZhbHVlXSBUaGUgdmFsdWUgcmV0dXJuZWQgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGB1bmRlZmluZWRgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8uZ2V0KG9iamVjdCwgJ2FbMF0uYi5jJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy5nZXQob2JqZWN0LCBbJ2EnLCAnMCcsICdiJywgJ2MnXSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy5nZXQob2JqZWN0LCAnYS5iLmMnLCAnZGVmYXVsdCcpO1xuICAgICAqIC8vID0+ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogYmFzZUdldChvYmplY3QsIHRvUGF0aChwYXRoKSwgcGF0aCArICcnKTtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IHByb3BlcnR5LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogeyAnYic6IHsgJ2MnOiAzIH0gfSB9O1xuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCAnYScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzKG9iamVjdCwgJ2EuYi5jJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCBbJ2EnLCAnYicsICdjJ10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXMob2JqZWN0LCBwYXRoKSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwYXRoKTtcbiAgICAgIGlmICghcmVzdWx0ICYmICFpc0tleShwYXRoKSkge1xuICAgICAgICBwYXRoID0gdG9QYXRoKHBhdGgpO1xuICAgICAgICBvYmplY3QgPSBwYXRoLmxlbmd0aCA9PSAxID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xuICAgICAgICBwYXRoID0gbGFzdChwYXRoKTtcbiAgICAgICAgcmVzdWx0ID0gb2JqZWN0ICE9IG51bGwgJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHBhdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdCB8fCAobG9kYXNoLnN1cHBvcnQubm9uRW51bVN0cmluZ3MgJiYgaXNTdHJpbmcob2JqZWN0KSAmJiBpc0luZGV4KHBhdGgsIG9iamVjdC5sZW5ndGgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgaW52ZXJ0ZWQga2V5cyBhbmQgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqIElmIGBvYmplY3RgIGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMsIHN1YnNlcXVlbnQgdmFsdWVzIG92ZXJ3cml0ZSBwcm9wZXJ0eVxuICAgICAqIGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHZhbHVlcyB1bmxlc3MgYG11bHRpVmFsdWVgIGlzIGB0cnVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW52ZXJ0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW211bHRpVmFsdWVdIEFsbG93IG11bHRpcGxlIHZhbHVlcyBwZXIga2V5LlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlZCBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uaW52ZXJ0KG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnMSc6ICdjJywgJzInOiAnYicgfVxuICAgICAqXG4gICAgICogLy8gd2l0aCBgbXVsdGlWYWx1ZWBcbiAgICAgKiBfLmludmVydChvYmplY3QsIHRydWUpO1xuICAgICAqIC8vID0+IHsgJzEnOiBbJ2EnLCAnYyddLCAnMic6IFsnYiddIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnZlcnQob2JqZWN0LCBtdWx0aVZhbHVlLCBndWFyZCkge1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKG9iamVjdCwgbXVsdGlWYWx1ZSwgZ3VhcmQpKSB7XG4gICAgICAgIG11bHRpVmFsdWUgPSBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgcHJvcHMgPSBrZXlzKG9iamVjdCksXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdLFxuICAgICAgICAgICAgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgICAgICBpZiAobXVsdGlWYWx1ZSkge1xuICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwgdmFsdWUpKSB7XG4gICAgICAgICAgICByZXN1bHRbdmFsdWVdLnB1c2goa2V5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W3ZhbHVlXSA9IFtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXN1bHRbdmFsdWVdID0ga2V5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuIFNlZSB0aGVcbiAgICAgKiBbRVMgc3BlY10oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5rZXlzKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmtleXMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogXy5rZXlzKCdoaScpO1xuICAgICAqIC8vID0+IFsnMCcsICcxJ11cbiAgICAgKi9cbiAgICB2YXIga2V5cyA9ICFuYXRpdmVLZXlzID8gc2hpbUtleXMgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHZhciBDdG9yID0gb2JqZWN0ICE9IG51bGwgJiYgb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgICAgaWYgKCh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlID09PSBvYmplY3QpIHx8XG4gICAgICAgICAgKHR5cGVvZiBvYmplY3QgPT0gJ2Z1bmN0aW9uJyA/IGxvZGFzaC5zdXBwb3J0LmVudW1Qcm90b3R5cGVzIDogaXNBcnJheUxpa2Uob2JqZWN0KSkpIHtcbiAgICAgICAgcmV0dXJuIHNoaW1LZXlzKG9iamVjdCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNPYmplY3Qob2JqZWN0KSA/IG5hdGl2ZUtleXMob2JqZWN0KSA6IFtdO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmtleXNJbihuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgICAgfVxuICAgICAgdmFyIGxlbmd0aCA9IG9iamVjdC5sZW5ndGgsXG4gICAgICAgICAgc3VwcG9ydCA9IGxvZGFzaC5zdXBwb3J0O1xuXG4gICAgICBsZW5ndGggPSAobGVuZ3RoICYmIGlzTGVuZ3RoKGxlbmd0aCkgJiZcbiAgICAgICAgKGlzQXJyYXkob2JqZWN0KSB8fCAoc3VwcG9ydC5ub25FbnVtU3RyaW5ncyAmJiBpc1N0cmluZyhvYmplY3QpKSB8fFxuICAgICAgICAgIChzdXBwb3J0Lm5vbkVudW1BcmdzICYmIGlzQXJndW1lbnRzKG9iamVjdCkpKSAmJiBsZW5ndGgpIHx8IDA7XG5cbiAgICAgIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yLFxuICAgICAgICAgIGluZGV4ID0gLTEsXG4gICAgICAgICAgcHJvdG8gPSAoaXNGdW5jdGlvbihDdG9yKSAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG8sXG4gICAgICAgICAgaXNQcm90byA9IHByb3RvID09PSBvYmplY3QsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICBza2lwSW5kZXhlcyA9IGxlbmd0aCA+IDAsXG4gICAgICAgICAgc2tpcEVycm9yUHJvcHMgPSBzdXBwb3J0LmVudW1FcnJvclByb3BzICYmIChvYmplY3QgPT09IGVycm9yUHJvdG8gfHwgb2JqZWN0IGluc3RhbmNlb2YgRXJyb3IpLFxuICAgICAgICAgIHNraXBQcm90byA9IHN1cHBvcnQuZW51bVByb3RvdHlwZXMgJiYgaXNGdW5jdGlvbihvYmplY3QpO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gKGluZGV4ICsgJycpO1xuICAgICAgfVxuICAgICAgLy8gbG9kYXNoIHNraXBzIHRoZSBgY29uc3RydWN0b3JgIHByb3BlcnR5IHdoZW4gaXQgaW5mZXJzIGl0IGlzIGl0ZXJhdGluZ1xuICAgICAgLy8gb3ZlciBhIGBwcm90b3R5cGVgIG9iamVjdCBiZWNhdXNlIElFIDwgOSBjYW4ndCBzZXQgdGhlIGBbW0VudW1lcmFibGVdXWBcbiAgICAgIC8vIGF0dHJpYnV0ZSBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eSBhbmQgdGhlIGBjb25zdHJ1Y3RvcmAgcHJvcGVydHkgb2YgYVxuICAgICAgLy8gcHJvdG90eXBlIGRlZmF1bHRzIHRvIG5vbi1lbnVtZXJhYmxlLlxuICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAgICBpZiAoIShza2lwUHJvdG8gJiYga2V5ID09ICdwcm90b3R5cGUnKSAmJlxuICAgICAgICAgICAgIShza2lwRXJyb3JQcm9wcyAmJiAoa2V5ID09ICdtZXNzYWdlJyB8fCBrZXkgPT0gJ25hbWUnKSkgJiZcbiAgICAgICAgICAgICEoc2tpcEluZGV4ZXMgJiYgaXNJbmRleChrZXksIGxlbmd0aCkpICYmXG4gICAgICAgICAgICAhKGtleSA9PSAnY29uc3RydWN0b3InICYmIChpc1Byb3RvIHx8ICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN1cHBvcnQubm9uRW51bVNoYWRvd3MgJiYgb2JqZWN0ICE9PSBvYmplY3RQcm90bykge1xuICAgICAgICB2YXIgdGFnID0gb2JqZWN0ID09PSBzdHJpbmdQcm90byA/IHN0cmluZ1RhZyA6IChvYmplY3QgPT09IGVycm9yUHJvdG8gPyBlcnJvclRhZyA6IG9ialRvU3RyaW5nLmNhbGwob2JqZWN0KSksXG4gICAgICAgICAgICBub25FbnVtcyA9IG5vbkVudW1Qcm9wc1t0YWddIHx8IG5vbkVudW1Qcm9wc1tvYmplY3RUYWddO1xuXG4gICAgICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnKSB7XG4gICAgICAgICAgcHJvdG8gPSBvYmplY3RQcm90bztcbiAgICAgICAgfVxuICAgICAgICBsZW5ndGggPSBzaGFkb3dQcm9wcy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgIGtleSA9IHNoYWRvd1Byb3BzW2xlbmd0aF07XG4gICAgICAgICAgdmFyIG5vbkVudW0gPSBub25FbnVtc1trZXldO1xuICAgICAgICAgIGlmICghKGlzUHJvdG8gJiYgbm9uRW51bSkgJiZcbiAgICAgICAgICAgICAgKG5vbkVudW0gPyBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSA6IG9iamVjdFtrZXldICE9PSBwcm90b1trZXldKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLm1hcFZhbHVlc2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IHdpdGggdGhlXG4gICAgICogc2FtZSB2YWx1ZXMgYXMgYG9iamVjdGAgYW5kIGtleXMgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgZWFjaCBvd24gZW51bWVyYWJsZVxuICAgICAqIHByb3BlcnR5IG9mIGBvYmplY3RgIHRocm91Z2ggYGl0ZXJhdGVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gICAgICogIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubWFwS2V5cyh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIHJldHVybiBrZXkgKyB2YWx1ZTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICdhMSc6IDEsICdiMic6IDIgfVxuICAgICAqL1xuICAgIHZhciBtYXBLZXlzID0gY3JlYXRlT2JqZWN0TWFwcGVyKHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSBrZXlzIGFzIGBvYmplY3RgIGFuZCB2YWx1ZXMgZ2VuZXJhdGVkIGJ5XG4gICAgICogcnVubmluZyBlYWNoIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG9mIGBvYmplY3RgIHRocm91Z2ggYGl0ZXJhdGVlYC4gVGhlXG4gICAgICogaXRlcmF0ZWUgZnVuY3Rpb24gaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwga2V5LCBvYmplY3QpLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWRcbiAgICAgKiAgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXBWYWx1ZXMoeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiAqIDM7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDMsICdiJzogNiB9XG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSB7XG4gICAgICogICAnZnJlZCc6ICAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCB9LFxuICAgICAqICAgJ3BlYmJsZXMnOiB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgXy5wcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gICAgICogXy5tYXBWYWx1ZXModXNlcnMsICdhZ2UnKTtcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgdmFyIG1hcFZhbHVlcyA9IGNyZWF0ZU9iamVjdE1hcHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgbWVyZ2VzIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgdGhlIHNvdXJjZSBvYmplY3QocyksIHRoYXRcbiAgICAgKiBkb24ndCByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGludG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdC4gU3Vic2VxdWVudCBzb3VyY2VzXG4gICAgICogb3ZlcndyaXRlIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHNvdXJjZXMuIElmIGBjdXN0b21pemVyYCBpc1xuICAgICAqIHByb3ZpZGVkIGl0IGlzIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgbWVyZ2VkIHZhbHVlcyBvZiB0aGUgZGVzdGluYXRpb24gYW5kXG4gICAgICogc291cmNlIHByb3BlcnRpZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgIG1lcmdpbmcgaXMgaGFuZGxlZFxuICAgICAqIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWRcbiAgICAgKiB3aXRoIGZpdmUgYXJndW1lbnRzOiAob2JqZWN0VmFsdWUsIHNvdXJjZVZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgY3VzdG9taXplcmAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0ge1xuICAgICAqICAgJ2RhdGEnOiBbeyAndXNlcic6ICdiYXJuZXknIH0sIHsgJ3VzZXInOiAnZnJlZCcgfV1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIGFnZXMgPSB7XG4gICAgICogICAnZGF0YSc6IFt7ICdhZ2UnOiAzNiB9LCB7ICdhZ2UnOiA0MCB9XVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBfLm1lcmdlKHVzZXJzLCBhZ2VzKTtcbiAgICAgKiAvLyA9PiB7ICdkYXRhJzogW3sgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sIHsgJ3VzZXInOiAnZnJlZCcsICdhZ2UnOiA0MCB9XSB9XG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBhIGN1c3RvbWl6ZXIgY2FsbGJhY2tcbiAgICAgKiB2YXIgb2JqZWN0ID0ge1xuICAgICAqICAgJ2ZydWl0cyc6IFsnYXBwbGUnXSxcbiAgICAgKiAgICd2ZWdldGFibGVzJzogWydiZWV0J11cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIG90aGVyID0ge1xuICAgICAqICAgJ2ZydWl0cyc6IFsnYmFuYW5hJ10sXG4gICAgICogICAndmVnZXRhYmxlcyc6IFsnY2Fycm90J11cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5tZXJnZShvYmplY3QsIG90aGVyLCBmdW5jdGlvbihhLCBiKSB7XG4gICAgICogICBpZiAoXy5pc0FycmF5KGEpKSB7XG4gICAgICogICAgIHJldHVybiBhLmNvbmNhdChiKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICdmcnVpdHMnOiBbJ2FwcGxlJywgJ2JhbmFuYSddLCAndmVnZXRhYmxlcyc6IFsnYmVldCcsICdjYXJyb3QnXSB9XG4gICAgICovXG4gICAgdmFyIG1lcmdlID0gY3JlYXRlQXNzaWduZXIoYmFzZU1lcmdlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5waWNrYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2YgdGhlXG4gICAgICogb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBvYmplY3RgIHRoYXQgYXJlIG5vdCBvbWl0dGVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnwuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3ByZWRpY2F0ZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyXG4gICAgICogIGl0ZXJhdGlvbiBvciBwcm9wZXJ0eSBuYW1lcyB0byBvbWl0LCBzcGVjaWZpZWQgYXMgaW5kaXZpZHVhbCBwcm9wZXJ0eVxuICAgICAqICBuYW1lcyBvciBhcnJheXMgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfTtcbiAgICAgKlxuICAgICAqIF8ub21pdChvYmplY3QsICdhZ2UnKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKlxuICAgICAqIF8ub21pdChvYmplY3QsIF8uaXNOdW1iZXIpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqL1xuICAgIHZhciBvbWl0ID0gcmVzdFBhcmFtKGZ1bmN0aW9uKG9iamVjdCwgcHJvcHMpIHtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHByb3BzWzBdICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdmFyIHByb3BzID0gYXJyYXlNYXAoYmFzZUZsYXR0ZW4ocHJvcHMpLCBTdHJpbmcpO1xuICAgICAgICByZXR1cm4gcGlja0J5QXJyYXkob2JqZWN0LCBiYXNlRGlmZmVyZW5jZShrZXlzSW4ob2JqZWN0KSwgcHJvcHMpKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcmVkaWNhdGUgPSBiaW5kQ2FsbGJhY2socHJvcHNbMF0sIHByb3BzWzFdLCAzKTtcbiAgICAgIHJldHVybiBwaWNrQnlDYWxsYmFjayhvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICByZXR1cm4gIXByZWRpY2F0ZSh2YWx1ZSwga2V5LCBvYmplY3QpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgdHdvIGRpbWVuc2lvbmFsIGFycmF5IG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIGBvYmplY3RgLFxuICAgICAqIGUuZy4gYFtba2V5MSwgdmFsdWUxXSwgW2tleTIsIHZhbHVlMl1dYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhaXJzKHsgJ2Jhcm5leSc6IDM2LCAnZnJlZCc6IDQwIH0pO1xuICAgICAqIC8vID0+IFtbJ2Jhcm5leScsIDM2XSwgWydmcmVkJywgNDBdXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBhaXJzKG9iamVjdCkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgcHJvcHMgPSBrZXlzKG9iamVjdCksXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBba2V5LCBvYmplY3Rba2V5XV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBwaWNrZWQgYG9iamVjdGAgcHJvcGVydGllcy4gUHJvcGVydHlcbiAgICAgKiBuYW1lcyBtYXkgYmUgc3BlY2lmaWVkIGFzIGluZGl2aWR1YWwgYXJndW1lbnRzIG9yIGFzIGFycmF5cyBvZiBwcm9wZXJ0eVxuICAgICAqIG5hbWVzLiBJZiBgcHJlZGljYXRlYCBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkIGZvciBlYWNoIHByb3BlcnR5IG9mIGBvYmplY3RgXG4gICAgICogcGlja2luZyB0aGUgcHJvcGVydGllcyBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXNcbiAgICAgKiBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnwuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3ByZWRpY2F0ZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyXG4gICAgICogIGl0ZXJhdGlvbiBvciBwcm9wZXJ0eSBuYW1lcyB0byBwaWNrLCBzcGVjaWZpZWQgYXMgaW5kaXZpZHVhbCBwcm9wZXJ0eVxuICAgICAqICBuYW1lcyBvciBhcnJheXMgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBwcmVkaWNhdGVgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfTtcbiAgICAgKlxuICAgICAqIF8ucGljayhvYmplY3QsICd1c2VyJyk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdmcmVkJyB9XG4gICAgICpcbiAgICAgKiBfLnBpY2sob2JqZWN0LCBfLmlzU3RyaW5nKTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKi9cbiAgICB2YXIgcGljayA9IHJlc3RQYXJhbShmdW5jdGlvbihvYmplY3QsIHByb3BzKSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHR5cGVvZiBwcm9wc1swXSA9PSAnZnVuY3Rpb24nXG4gICAgICAgID8gcGlja0J5Q2FsbGJhY2sob2JqZWN0LCBiaW5kQ2FsbGJhY2socHJvcHNbMF0sIHByb3BzWzFdLCAzKSlcbiAgICAgICAgOiBwaWNrQnlBcnJheShvYmplY3QsIGJhc2VGbGF0dGVuKHByb3BzKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmdldGAgZXhjZXB0IHRoYXQgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGEgZnVuY3Rpb25cbiAgICAgKiBpdCBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGl0cyBwYXJlbnQgb2JqZWN0IGFuZCBpdHMgcmVzdWx0XG4gICAgICogaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byByZXNvbHZlLlxuICAgICAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGlmIHRoZSByZXNvbHZlZCB2YWx1ZSBpcyBgdW5kZWZpbmVkYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjMSc6IDMsICdjMic6IF8uY29uc3RhbnQoNCkgfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYVswXS5iLmMxJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYVswXS5iLmMyJyk7XG4gICAgICogLy8gPT4gNFxuICAgICAqXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYS5iLmMnLCAnZGVmYXVsdCcpO1xuICAgICAqIC8vID0+ICdkZWZhdWx0J1xuICAgICAqXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYS5iLmMnLCBfLmNvbnN0YW50KCdkZWZhdWx0JykpO1xuICAgICAqIC8vID0+ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlc3VsdChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogdG9PYmplY3Qob2JqZWN0KVtwYXRoXTtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAob2JqZWN0ICE9IG51bGwgJiYgIWlzS2V5KHBhdGgsIG9iamVjdCkpIHtcbiAgICAgICAgICBwYXRoID0gdG9QYXRoKHBhdGgpO1xuICAgICAgICAgIG9iamVjdCA9IHBhdGgubGVuZ3RoID09IDEgPyBvYmplY3QgOiBiYXNlR2V0KG9iamVjdCwgYmFzZVNsaWNlKHBhdGgsIDAsIC0xKSk7XG4gICAgICAgICAgcmVzdWx0ID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiB0b09iamVjdChvYmplY3QpW2xhc3QocGF0aCldO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ocmVzdWx0KSA/IHJlc3VsdC5jYWxsKG9iamVjdCkgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgYHBhdGhgIG9uIGBvYmplY3RgLiBJZiBhIHBvcnRpb24gb2YgYHBhdGhgXG4gICAgICogZG9lcyBub3QgZXhpc3QgaXQgaXMgY3JlYXRlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gYXVnbWVudC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5zZXQob2JqZWN0LCAnYVswXS5iLmMnLCA0KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8uc2V0KG9iamVjdCwgJ3hbMF0ueS56JywgNSk7XG4gICAgICogY29uc29sZS5sb2cob2JqZWN0LnhbMF0ueS56KTtcbiAgICAgKiAvLyA9PiA1XG4gICAgICovXG4gICAgZnVuY3Rpb24gc2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpIHtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgICAgdmFyIHBhdGhLZXkgPSAocGF0aCArICcnKTtcbiAgICAgIHBhdGggPSAob2JqZWN0W3BhdGhLZXldICE9IG51bGwgfHwgaXNLZXkocGF0aCwgb2JqZWN0KSkgPyBbcGF0aEtleV0gOiB0b1BhdGgocGF0aCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgICAgIGVuZEluZGV4ID0gbGVuZ3RoIC0gMSxcbiAgICAgICAgICBuZXN0ZWQgPSBvYmplY3Q7XG5cbiAgICAgIHdoaWxlIChuZXN0ZWQgIT0gbnVsbCAmJiArK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBwYXRoW2luZGV4XTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KG5lc3RlZCkpIHtcbiAgICAgICAgICBpZiAoaW5kZXggPT0gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIG5lc3RlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChuZXN0ZWRba2V5XSA9PSBudWxsKSB7XG4gICAgICAgICAgICBuZXN0ZWRba2V5XSA9IGlzSW5kZXgocGF0aFtpbmRleCArIDFdKSA/IFtdIDoge307XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBhbHRlcm5hdGl2ZSB0byBgXy5yZWR1Y2VgOyB0aGlzIG1ldGhvZCB0cmFuc2Zvcm1zIGBvYmplY3RgIHRvIGEgbmV3XG4gICAgICogYGFjY3VtdWxhdG9yYCBvYmplY3Qgd2hpY2ggaXMgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGVhY2ggb2YgaXRzIG93biBlbnVtZXJhYmxlXG4gICAgICogcHJvcGVydGllcyB0aHJvdWdoIGBpdGVyYXRlZWAsIHdpdGggZWFjaCBpbnZvY2F0aW9uIHBvdGVudGlhbGx5IG11dGF0aW5nXG4gICAgICogdGhlIGBhY2N1bXVsYXRvcmAgb2JqZWN0LiBUaGUgYGl0ZXJhdGVlYCBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kIGludm9rZWRcbiAgICAgKiB3aXRoIGZvdXIgYXJndW1lbnRzOiAoYWNjdW11bGF0b3IsIHZhbHVlLCBrZXksIG9iamVjdCkuIEl0ZXJhdGVlIGZ1bmN0aW9uc1xuICAgICAqIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBjdXN0b20gYWNjdW11bGF0b3IgdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBpdGVyYXRlZWAuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyYW5zZm9ybShbMiwgMywgNF0sIGZ1bmN0aW9uKHJlc3VsdCwgbikge1xuICAgICAqICAgcmVzdWx0LnB1c2gobiAqPSBuKTtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IFs0LCA5XVxuICAgICAqXG4gICAgICogXy50cmFuc2Zvcm0oeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbihyZXN1bHQsIG4sIGtleSkge1xuICAgICAqICAgcmVzdWx0W2tleV0gPSBuICogMztcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMywgJ2InOiA2IH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm0ob2JqZWN0LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIHRoaXNBcmcpIHtcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkob2JqZWN0KSB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KTtcbiAgICAgIGl0ZXJhdGVlID0gZ2V0Q2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDQpO1xuXG4gICAgICBpZiAoYWNjdW11bGF0b3IgPT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNBcnIgfHwgaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICAgIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgICAgICAgIGlmIChpc0Fycikge1xuICAgICAgICAgICAgYWNjdW11bGF0b3IgPSBpc0FycmF5KG9iamVjdCkgPyBuZXcgQ3RvciA6IFtdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY2N1bXVsYXRvciA9IGJhc2VDcmVhdGUoaXNGdW5jdGlvbihDdG9yKSAmJiBDdG9yLnByb3RvdHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjY3VtdWxhdG9yID0ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIChpc0FyciA/IGFycmF5RWFjaCA6IGJhc2VGb3JPd24pKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIG9iamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnZhbHVlcyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbMSwgMl0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKlxuICAgICAqIF8udmFsdWVzKCdoaScpO1xuICAgICAqIC8vID0+IFsnaCcsICdpJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB2YWx1ZXMob2JqZWN0KSB7XG4gICAgICByZXR1cm4gYmFzZVZhbHVlcyhvYmplY3QsIGtleXMob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSB2YWx1ZXNcbiAgICAgKiBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8udmFsdWVzSW4obmV3IEZvbyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gdmFsdWVzSW4ob2JqZWN0KSB7XG4gICAgICByZXR1cm4gYmFzZVZhbHVlcyhvYmplY3QsIGtleXNJbihvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYG5gIGlzIGJldHdlZW4gYHN0YXJ0YCBhbmQgdXAgdG8gYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLiBJZlxuICAgICAqIGBlbmRgIGlzIG5vdCBzcGVjaWZpZWQgaXQgaXMgc2V0IHRvIGBzdGFydGAgd2l0aCBgc3RhcnRgIHRoZW4gc2V0IHRvIGAwYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgbmAgaXMgaW4gdGhlIHJhbmdlLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgzLCAyLCA0KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoNCwgOCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDQsIDIpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoMiwgMik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgxLjIsIDIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSg1LjIsIDQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5SYW5nZSh2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgc3RhcnQgPSArc3RhcnQgfHwgMDtcbiAgICAgIGlmICh0eXBlb2YgZW5kID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kID0gK2VuZCB8fCAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlID49IG5hdGl2ZU1pbihzdGFydCwgZW5kKSAmJiB2YWx1ZSA8IG5hdGl2ZU1heChzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiBgbWluYCBhbmQgYG1heGAgKGluY2x1c2l2ZSkuIElmIG9ubHkgb25lXG4gICAgICogYXJndW1lbnQgaXMgcHJvdmlkZWQgYSBudW1iZXIgYmV0d2VlbiBgMGAgYW5kIHRoZSBnaXZlbiBudW1iZXIgaXMgcmV0dXJuZWQuXG4gICAgICogSWYgYGZsb2F0aW5nYCBpcyBgdHJ1ZWAsIG9yIGVpdGhlciBgbWluYCBvciBgbWF4YCBhcmUgZmxvYXRzLCBhIGZsb2F0aW5nLXBvaW50XG4gICAgICogbnVtYmVyIGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gaW50ZWdlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW21pbj0wXSBUaGUgbWluaW11bSBwb3NzaWJsZSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW21heD0xXSBUaGUgbWF4aW11bSBwb3NzaWJsZSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmbG9hdGluZ10gU3BlY2lmeSByZXR1cm5pbmcgYSBmbG9hdGluZy1wb2ludCBudW1iZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcmFuZG9tIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yYW5kb20oMCwgNSk7XG4gICAgICogLy8gPT4gYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDUpO1xuICAgICAqIC8vID0+IGFsc28gYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDUsIHRydWUpO1xuICAgICAqIC8vID0+IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGJldHdlZW4gMCBhbmQgNVxuICAgICAqXG4gICAgICogXy5yYW5kb20oMS4yLCA1LjIpO1xuICAgICAqIC8vID0+IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGJldHdlZW4gMS4yIGFuZCA1LjJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByYW5kb20obWluLCBtYXgsIGZsb2F0aW5nKSB7XG4gICAgICBpZiAoZmxvYXRpbmcgJiYgaXNJdGVyYXRlZUNhbGwobWluLCBtYXgsIGZsb2F0aW5nKSkge1xuICAgICAgICBtYXggPSBmbG9hdGluZyA9IG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgbm9NaW4gPSBtaW4gPT0gbnVsbCxcbiAgICAgICAgICBub01heCA9IG1heCA9PSBudWxsO1xuXG4gICAgICBpZiAoZmxvYXRpbmcgPT0gbnVsbCkge1xuICAgICAgICBpZiAobm9NYXggJiYgdHlwZW9mIG1pbiA9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICBmbG9hdGluZyA9IG1pbjtcbiAgICAgICAgICBtaW4gPSAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBtYXggPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgZmxvYXRpbmcgPSBtYXg7XG4gICAgICAgICAgbm9NYXggPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobm9NaW4gJiYgbm9NYXgpIHtcbiAgICAgICAgbWF4ID0gMTtcbiAgICAgICAgbm9NYXggPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIG1pbiA9ICttaW4gfHwgMDtcbiAgICAgIGlmIChub01heCkge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICAgIG1pbiA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYXggPSArbWF4IHx8IDA7XG4gICAgICB9XG4gICAgICBpZiAoZmxvYXRpbmcgfHwgbWluICUgMSB8fCBtYXggJSAxKSB7XG4gICAgICAgIHZhciByYW5kID0gbmF0aXZlUmFuZG9tKCk7XG4gICAgICAgIHJldHVybiBuYXRpdmVNaW4obWluICsgKHJhbmQgKiAobWF4IC0gbWluICsgcGFyc2VGbG9hdCgnMWUtJyArICgocmFuZCArICcnKS5sZW5ndGggLSAxKSkpKSwgbWF4KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlUmFuZG9tKG1pbiwgbWF4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBbY2FtZWwgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2FtZWxDYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNhbWVsIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jYW1lbENhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xuICAgICAqXG4gICAgICogXy5jYW1lbENhc2UoJy0tZm9vLWJhcicpO1xuICAgICAqIC8vID0+ICdmb29CYXInXG4gICAgICpcbiAgICAgKiBfLmNhbWVsQ2FzZSgnX19mb29fYmFyX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xuICAgICAqL1xuICAgIHZhciBjYW1lbENhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHdvcmQgPSB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gKHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKSA6IHdvcmQpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjYXBpdGFsaXplLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNhcGl0YWxpemVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jYXBpdGFsaXplKCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ0ZyZWQnXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIHN0cmluZyAmJiAoc3RyaW5nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyaW5nLnNsaWNlKDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWJ1cnJzIGBzdHJpbmdgIGJ5IGNvbnZlcnRpbmcgW2xhdGluLTEgc3VwcGxlbWVudGFyeSBsZXR0ZXJzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MYXRpbi0xX1N1cHBsZW1lbnRfKFVuaWNvZGVfYmxvY2spI0NoYXJhY3Rlcl90YWJsZSlcbiAgICAgKiB0byBiYXNpYyBsYXRpbiBsZXR0ZXJzIGFuZCByZW1vdmluZyBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGRlYnVyci5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBkZWJ1cnJlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVidXJyKCdkw6lqw6AgdnUnKTtcbiAgICAgKiAvLyA9PiAnZGVqYSB2dSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkZWJ1cnIoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLnJlcGxhY2UocmVMYXRpbjEsIGRlYnVyckxldHRlcikucmVwbGFjZShyZUNvbWJvTWFyaywgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBlbmRzIHdpdGggdGhlIGdpdmVuIHRhcmdldCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3NpdGlvbj1zdHJpbmcubGVuZ3RoXSBUaGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBzdHJpbmdgIGVuZHMgd2l0aCBgdGFyZ2V0YCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmVuZHNXaXRoKCdhYmMnLCAnYycpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uZW5kc1dpdGgoJ2FiYycsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uZW5kc1dpdGgoJ2FiYycsICdiJywgMik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVuZHNXaXRoKHN0cmluZywgdGFyZ2V0LCBwb3NpdGlvbikge1xuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICB0YXJnZXQgPSAodGFyZ2V0ICsgJycpO1xuXG4gICAgICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gPT09IHVuZGVmaW5lZFxuICAgICAgICA/IGxlbmd0aFxuICAgICAgICA6IG5hdGl2ZU1pbihwb3NpdGlvbiA8IDAgPyAwIDogKCtwb3NpdGlvbiB8fCAwKSwgbGVuZ3RoKTtcblxuICAgICAgcG9zaXRpb24gLT0gdGFyZ2V0Lmxlbmd0aDtcbiAgICAgIHJldHVybiBwb3NpdGlvbiA+PSAwICYmIHN0cmluZy5pbmRleE9mKHRhcmdldCwgcG9zaXRpb24pID09IHBvc2l0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXJzIFwiJlwiLCBcIjxcIiwgXCI+XCIsICdcIicsIFwiJ1wiLCBhbmQgXCJcXGBcIiwgaW4gYHN0cmluZ2AgdG9cbiAgICAgKiB0aGVpciBjb3JyZXNwb25kaW5nIEhUTUwgZW50aXRpZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm8gb3RoZXIgY2hhcmFjdGVycyBhcmUgZXNjYXBlZC4gVG8gZXNjYXBlIGFkZGl0aW9uYWwgY2hhcmFjdGVyc1xuICAgICAqIHVzZSBhIHRoaXJkLXBhcnR5IGxpYnJhcnkgbGlrZSBbX2hlX10oaHR0cHM6Ly9tdGhzLmJlL2hlKS5cbiAgICAgKlxuICAgICAqIFRob3VnaCB0aGUgXCI+XCIgY2hhcmFjdGVyIGlzIGVzY2FwZWQgZm9yIHN5bW1ldHJ5LCBjaGFyYWN0ZXJzIGxpa2VcbiAgICAgKiBcIj5cIiBhbmQgXCIvXCIgZG9uJ3QgcmVxdWlyZSBlc2NhcGluZyBpbiBIVE1MIGFuZCBoYXZlIG5vIHNwZWNpYWwgbWVhbmluZ1xuICAgICAqIHVubGVzcyB0aGV5J3JlIHBhcnQgb2YgYSB0YWcgb3IgdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqIFNlZSBbTWF0aGlhcyBCeW5lbnMncyBhcnRpY2xlXShodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvYW1iaWd1b3VzLWFtcGVyc2FuZHMpXG4gICAgICogKHVuZGVyIFwic2VtaS1yZWxhdGVkIGZ1biBmYWN0XCIpIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBCYWNrdGlja3MgYXJlIGVzY2FwZWQgYmVjYXVzZSBpbiBJbnRlcm5ldCBFeHBsb3JlciA8IDksIHRoZXkgY2FuIGJyZWFrIG91dFxuICAgICAqIG9mIGF0dHJpYnV0ZSB2YWx1ZXMgb3IgSFRNTCBjb21tZW50cy4gU2VlIFsjNTldKGh0dHBzOi8vaHRtbDVzZWMub3JnLyM1OSksXG4gICAgICogWyMxMDJdKGh0dHBzOi8vaHRtbDVzZWMub3JnLyMxMDIpLCBbIzEwOF0oaHR0cHM6Ly9odG1sNXNlYy5vcmcvIzEwOCksIGFuZFxuICAgICAqIFsjMTMzXShodHRwczovL2h0bWw1c2VjLm9yZy8jMTMzKSBvZiB0aGUgW0hUTUw1IFNlY3VyaXR5IENoZWF0c2hlZXRdKGh0dHBzOi8vaHRtbDVzZWMub3JnLylcbiAgICAgKiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqXG4gICAgICogV2hlbiB3b3JraW5nIHdpdGggSFRNTCB5b3Ugc2hvdWxkIGFsd2F5cyBbcXVvdGUgYXR0cmlidXRlIHZhbHVlc10oaHR0cDovL3dvbmtvLmNvbS9wb3N0L2h0bWwtZXNjYXBpbmcpXG4gICAgICogdG8gcmVkdWNlIFhTUyB2ZWN0b3JzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gICAgICAvLyBSZXNldCBgbGFzdEluZGV4YCBiZWNhdXNlIGluIElFIDwgOSBgU3RyaW5nI3JlcGxhY2VgIGRvZXMgbm90LlxuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gKHN0cmluZyAmJiByZUhhc1VuZXNjYXBlZEh0bWwudGVzdChzdHJpbmcpKVxuICAgICAgICA/IHN0cmluZy5yZXBsYWNlKHJlVW5lc2NhcGVkSHRtbCwgZXNjYXBlSHRtbENoYXIpXG4gICAgICAgIDogc3RyaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVzY2FwZXMgdGhlIGBSZWdFeHBgIHNwZWNpYWwgY2hhcmFjdGVycyBcIlxcXCIsIFwiL1wiLCBcIl5cIiwgXCIkXCIsIFwiLlwiLCBcInxcIiwgXCI/XCIsXG4gICAgICogXCIqXCIsIFwiK1wiLCBcIihcIiwgXCIpXCIsIFwiW1wiLCBcIl1cIiwgXCJ7XCIgYW5kIFwifVwiIGluIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5lc2NhcGVSZWdFeHAoJ1tsb2Rhc2hdKGh0dHBzOi8vbG9kYXNoLmNvbS8pJyk7XG4gICAgICogLy8gPT4gJ1xcW2xvZGFzaFxcXVxcKGh0dHBzOlxcL1xcL2xvZGFzaFxcLmNvbVxcL1xcKSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiAoc3RyaW5nICYmIHJlSGFzUmVnRXhwQ2hhcnMudGVzdChzdHJpbmcpKVxuICAgICAgICA/IHN0cmluZy5yZXBsYWNlKHJlUmVnRXhwQ2hhcnMsICdcXFxcJCYnKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBba2ViYWIgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3BlY2lhbF9jYXNlX3N0eWxlcykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBrZWJhYiBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ua2ViYWJDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnX19mb29fYmFyX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vLWJhcidcbiAgICAgKi9cbiAgICB2YXIga2ViYWJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJy0nIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogUGFkcyBgc3RyaW5nYCBvbiB0aGUgbGVmdCBhbmQgcmlnaHQgc2lkZXMgaWYgaXQgaXMgc2hvcnRlciB0aGFuIGBsZW5ndGhgLlxuICAgICAqIFBhZGRpbmcgY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgY2FuJ3QgYmUgZXZlbmx5IGRpdmlkZWQgYnkgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWQoJ2FiYycsIDgpO1xuICAgICAqIC8vID0+ICcgIGFiYyAgICdcbiAgICAgKlxuICAgICAqIF8ucGFkKCdhYmMnLCA4LCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnXy1hYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGxlbmd0aCA9ICtsZW5ndGg7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgaWYgKHN0ckxlbmd0aCA+PSBsZW5ndGggfHwgIW5hdGl2ZUlzRmluaXRlKGxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBtaWQgPSAobGVuZ3RoIC0gc3RyTGVuZ3RoKSAvIDIsXG4gICAgICAgICAgbGVmdExlbmd0aCA9IGZsb29yKG1pZCksXG4gICAgICAgICAgcmlnaHRMZW5ndGggPSBjZWlsKG1pZCk7XG5cbiAgICAgIGNoYXJzID0gY3JlYXRlUGFkZGluZygnJywgcmlnaHRMZW5ndGgsIGNoYXJzKTtcbiAgICAgIHJldHVybiBjaGFycy5zbGljZSgwLCBsZWZ0TGVuZ3RoKSArIHN0cmluZyArIGNoYXJzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIGxlZnQgc2lkZSBpZiBpdCBpcyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuIFBhZGRpbmdcbiAgICAgKiBjaGFyYWN0ZXJzIGFyZSB0cnVuY2F0ZWQgaWYgdGhleSBleGNlZWQgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWRMZWZ0KCdhYmMnLCA2KTtcbiAgICAgKiAvLyA9PiAnICAgYWJjJ1xuICAgICAqXG4gICAgICogXy5wYWRMZWZ0KCdhYmMnLCA2LCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnXy1fYWJjJ1xuICAgICAqXG4gICAgICogXy5wYWRMZWZ0KCdhYmMnLCAzKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqL1xuICAgIHZhciBwYWRMZWZ0ID0gY3JlYXRlUGFkRGlyKCk7XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSByaWdodCBzaWRlIGlmIGl0IGlzIHNob3J0ZXIgdGhhbiBgbGVuZ3RoYC4gUGFkZGluZ1xuICAgICAqIGNoYXJhY3RlcnMgYXJlIHRydW5jYXRlZCBpZiB0aGV5IGV4Y2VlZCBgbGVuZ3RoYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBwYWQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9MF0gVGhlIHBhZGRpbmcgbGVuZ3RoLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9JyAnXSBUaGUgc3RyaW5nIHVzZWQgYXMgcGFkZGluZy5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBwYWRkZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhZFJpZ2h0KCdhYmMnLCA2KTtcbiAgICAgKiAvLyA9PiAnYWJjICAgJ1xuICAgICAqXG4gICAgICogXy5wYWRSaWdodCgnYWJjJywgNiwgJ18tJyk7XG4gICAgICogLy8gPT4gJ2FiY18tXydcbiAgICAgKlxuICAgICAqIF8ucGFkUmlnaHQoJ2FiYycsIDMpO1xuICAgICAqIC8vID0+ICdhYmMnXG4gICAgICovXG4gICAgdmFyIHBhZFJpZ2h0ID0gY3JlYXRlUGFkRGlyKHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gYW4gaW50ZWdlciBvZiB0aGUgc3BlY2lmaWVkIHJhZGl4LiBJZiBgcmFkaXhgIGlzXG4gICAgICogYHVuZGVmaW5lZGAgb3IgYDBgLCBhIGByYWRpeGAgb2YgYDEwYCBpcyB1c2VkIHVubGVzcyBgdmFsdWVgIGlzIGEgaGV4YWRlY2ltYWwsXG4gICAgICogaW4gd2hpY2ggY2FzZSBhIGByYWRpeGAgb2YgYDE2YCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGFsaWducyB3aXRoIHRoZSBbRVM1IGltcGxlbWVudGF0aW9uXShodHRwczovL2VzNS5naXRodWIuaW8vI0UpXG4gICAgICogb2YgYHBhcnNlSW50YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3JhZGl4XSBUaGUgcmFkaXggdG8gaW50ZXJwcmV0IGB2YWx1ZWAgYnkuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFyc2VJbnQoJzA4Jyk7XG4gICAgICogLy8gPT4gOFxuICAgICAqXG4gICAgICogXy5tYXAoWyc2JywgJzA4JywgJzEwJ10sIF8ucGFyc2VJbnQpO1xuICAgICAqIC8vID0+IFs2LCA4LCAxMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYXJzZUludChzdHJpbmcsIHJhZGl4LCBndWFyZCkge1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgcmFkaXgsIGd1YXJkKSkge1xuICAgICAgICByYWRpeCA9IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmF0aXZlUGFyc2VJbnQoc3RyaW5nLCByYWRpeCk7XG4gICAgfVxuICAgIC8vIEZhbGxiYWNrIGZvciBlbnZpcm9ubWVudHMgd2l0aCBwcmUtRVM1IGltcGxlbWVudGF0aW9ucy5cbiAgICBpZiAobmF0aXZlUGFyc2VJbnQod2hpdGVzcGFjZSArICcwOCcpICE9IDgpIHtcbiAgICAgIHBhcnNlSW50ID0gZnVuY3Rpb24oc3RyaW5nLCByYWRpeCwgZ3VhcmQpIHtcbiAgICAgICAgLy8gRmlyZWZveCA8IDIxIGFuZCBPcGVyYSA8IDE1IGZvbGxvdyBFUzMgZm9yIGBwYXJzZUludGAuXG4gICAgICAgIC8vIENocm9tZSBmYWlscyB0byB0cmltIGxlYWRpbmcgPEJPTT4gd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMxMDkgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCByYWRpeCwgZ3VhcmQpIDogcmFkaXggPT0gbnVsbCkge1xuICAgICAgICAgIHJhZGl4ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChyYWRpeCkge1xuICAgICAgICAgIHJhZGl4ID0gK3JhZGl4O1xuICAgICAgICB9XG4gICAgICAgIHN0cmluZyA9IHRyaW0oc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZVBhcnNlSW50KHN0cmluZywgcmFkaXggfHwgKHJlSGFzSGV4UHJlZml4LnRlc3Qoc3RyaW5nKSA/IDE2IDogMTApKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwZWF0cyB0aGUgZ2l2ZW4gc3RyaW5nIGBuYCB0aW1lcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byByZXBlYXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTBdIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gcmVwZWF0IHRoZSBzdHJpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmVwZWF0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnKicsIDMpO1xuICAgICAqIC8vID0+ICcqKionXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnYWJjJywgMik7XG4gICAgICogLy8gPT4gJ2FiY2FiYydcbiAgICAgKlxuICAgICAqIF8ucmVwZWF0KCdhYmMnLCAwKTtcbiAgICAgKiAvLyA9PiAnJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIG4pIHtcbiAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgbiA9ICtuO1xuICAgICAgaWYgKG4gPCAxIHx8ICFzdHJpbmcgfHwgIW5hdGl2ZUlzRmluaXRlKG4pKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICAvLyBMZXZlcmFnZSB0aGUgZXhwb25lbnRpYXRpb24gYnkgc3F1YXJpbmcgYWxnb3JpdGhtIGZvciBhIGZhc3RlciByZXBlYXQuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXhwb25lbnRpYXRpb25fYnlfc3F1YXJpbmcgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKG4gJSAyKSB7XG4gICAgICAgICAgcmVzdWx0ICs9IHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBuID0gZmxvb3IobiAvIDIpO1xuICAgICAgICBzdHJpbmcgKz0gc3RyaW5nO1xuICAgICAgfSB3aGlsZSAobik7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gW3NuYWtlIGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NuYWtlX2Nhc2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc25ha2UgY2FzZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNuYWtlQ2FzZSgnRm9vIEJhcicpO1xuICAgICAqIC8vID0+ICdmb29fYmFyJ1xuICAgICAqXG4gICAgICogXy5zbmFrZUNhc2UoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdmb29fYmFyJ1xuICAgICAqXG4gICAgICogXy5zbmFrZUNhc2UoJy0tZm9vLWJhcicpO1xuICAgICAqIC8vID0+ICdmb29fYmFyJ1xuICAgICAqL1xuICAgIHZhciBzbmFrZUNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyAnXycgOiAnJykgKyB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBbc3RhcnQgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3R5bGlzdGljX29yX3NwZWNpYWxpc2VkX3VzYWdlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0YXJ0IGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdGFydENhc2UoJy0tZm9vLWJhcicpO1xuICAgICAqIC8vID0+ICdGb28gQmFyJ1xuICAgICAqXG4gICAgICogXy5zdGFydENhc2UoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdGb28gQmFyJ1xuICAgICAqXG4gICAgICogXy5zdGFydENhc2UoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICovXG4gICAgdmFyIHN0YXJ0Q2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0LCB3b3JkLCBpbmRleCkge1xuICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/ICcgJyA6ICcnKSArICh3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHN0cmluZ2Agc3RhcnRzIHdpdGggdGhlIGdpdmVuIHRhcmdldCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gc2VhcmNoLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3NpdGlvbj0wXSBUaGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBzdHJpbmdgIHN0YXJ0cyB3aXRoIGB0YXJnZXRgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2InLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA9PSBudWxsXG4gICAgICAgID8gMFxuICAgICAgICA6IG5hdGl2ZU1pbihwb3NpdGlvbiA8IDAgPyAwIDogKCtwb3NpdGlvbiB8fCAwKSwgc3RyaW5nLmxlbmd0aCk7XG5cbiAgICAgIHJldHVybiBzdHJpbmcubGFzdEluZGV4T2YodGFyZ2V0LCBwb3NpdGlvbikgPT0gcG9zaXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNvbXBpbGVkIHRlbXBsYXRlIGZ1bmN0aW9uIHRoYXQgY2FuIGludGVycG9sYXRlIGRhdGEgcHJvcGVydGllc1xuICAgICAqIGluIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXJzLCBIVE1MLWVzY2FwZSBpbnRlcnBvbGF0ZWQgZGF0YSBwcm9wZXJ0aWVzIGluXG4gICAgICogXCJlc2NhcGVcIiBkZWxpbWl0ZXJzLCBhbmQgZXhlY3V0ZSBKYXZhU2NyaXB0IGluIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXJzLiBEYXRhXG4gICAgICogcHJvcGVydGllcyBtYXkgYmUgYWNjZXNzZWQgYXMgZnJlZSB2YXJpYWJsZXMgaW4gdGhlIHRlbXBsYXRlLiBJZiBhIHNldHRpbmdcbiAgICAgKiBvYmplY3QgaXMgcHJvdmlkZWQgaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBfLnRlbXBsYXRlU2V0dGluZ3NgIHZhbHVlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJbiB0aGUgZGV2ZWxvcG1lbnQgYnVpbGQgYF8udGVtcGxhdGVgIHV0aWxpemVzXG4gICAgICogW3NvdXJjZVVSTHNdKGh0dHA6Ly93d3cuaHRtbDVyb2Nrcy5jb20vZW4vdHV0b3JpYWxzL2RldmVsb3BlcnRvb2xzL3NvdXJjZW1hcHMvI3RvYy1zb3VyY2V1cmwpXG4gICAgICogZm9yIGVhc2llciBkZWJ1Z2dpbmcuXG4gICAgICpcbiAgICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBwcmVjb21waWxpbmcgdGVtcGxhdGVzIHNlZVxuICAgICAqIFtsb2Rhc2gncyBjdXN0b20gYnVpbGRzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbG9kYXNoLmNvbS9jdXN0b20tYnVpbGRzKS5cbiAgICAgKlxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIENocm9tZSBleHRlbnNpb24gc2FuZGJveGVzIHNlZVxuICAgICAqIFtDaHJvbWUncyBleHRlbnNpb25zIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vZXh0ZW5zaW9ucy9zYW5kYm94aW5nRXZhbCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSB0ZW1wbGF0ZSBzdHJpbmcuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmVzY2FwZV0gVGhlIEhUTUwgXCJlc2NhcGVcIiBkZWxpbWl0ZXIuXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmV2YWx1YXRlXSBUaGUgXCJldmFsdWF0ZVwiIGRlbGltaXRlci5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnMuaW1wb3J0c10gQW4gb2JqZWN0IHRvIGltcG9ydCBpbnRvIHRoZSB0ZW1wbGF0ZSBhcyBmcmVlIHZhcmlhYmxlcy5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuaW50ZXJwb2xhdGVdIFRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zb3VyY2VVUkxdIFRoZSBzb3VyY2VVUkwgb2YgdGhlIHRlbXBsYXRlJ3MgY29tcGlsZWQgc291cmNlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy52YXJpYWJsZV0gVGhlIGRhdGEgb2JqZWN0IHZhcmlhYmxlIG5hbWUuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbb3RoZXJPcHRpb25zXSBFbmFibGVzIHRoZSBsZWdhY3kgYG9wdGlvbnNgIHBhcmFtIHNpZ25hdHVyZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNvbXBpbGVkIHRlbXBsYXRlIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlciB0byBjcmVhdGUgYSBjb21waWxlZCB0ZW1wbGF0ZVxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIEhUTUwgXCJlc2NhcGVcIiBkZWxpbWl0ZXIgdG8gZXNjYXBlIGRhdGEgcHJvcGVydHkgdmFsdWVzXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPGI+PCUtIHZhbHVlICU+PC9iPicpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3ZhbHVlJzogJzxzY3JpcHQ+JyB9KTtcbiAgICAgKiAvLyA9PiAnPGI+Jmx0O3NjcmlwdCZndDs8L2I+J1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IGFuZCBnZW5lcmF0ZSBIVE1MXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgXy5mb3JFYWNoKHVzZXJzLCBmdW5jdGlvbih1c2VyKSB7ICU+PGxpPjwlLSB1c2VyICU+PC9saT48JSB9KTsgJT4nKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAgICAgKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBpbnRlcm5hbCBgcHJpbnRgIGZ1bmN0aW9uIGluIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXJzXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgcHJpbnQoXCJoZWxsbyBcIiArIHVzZXIpOyAlPiEnKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ2Jhcm5leScgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGJhcm5leSEnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgRVMgZGVsaW1pdGVyIGFzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBkZWZhdWx0IFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXJcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyAkeyB1c2VyIH0hJyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcic6ICdwZWJibGVzJyB9KTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gcGViYmxlcyEnXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyBjdXN0b20gdGVtcGxhdGUgZGVsaW1pdGVyc1xuICAgICAqIF8udGVtcGxhdGVTZXR0aW5ncy5pbnRlcnBvbGF0ZSA9IC97eyhbXFxzXFxTXSs/KX19L2c7XG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8ge3sgdXNlciB9fSEnKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ211c3RhY2hlJyB9KTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gbXVzdGFjaGUhJ1xuICAgICAqXG4gICAgICogLy8gdXNpbmcgYmFja3NsYXNoZXMgdG8gdHJlYXQgZGVsaW1pdGVycyBhcyBwbGFpbiB0ZXh0XG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCU9IFwiXFxcXDwlLSB2YWx1ZSAlXFxcXD5cIiAlPicpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3ZhbHVlJzogJ2lnbm9yZWQnIH0pO1xuICAgICAqIC8vID0+ICc8JS0gdmFsdWUgJT4nXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYGltcG9ydHNgIG9wdGlvbiB0byBpbXBvcnQgYGpRdWVyeWAgYXMgYGpxYFxuICAgICAqIHZhciB0ZXh0ID0gJzwlIGpxLmVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPic7XG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSh0ZXh0LCB7ICdpbXBvcnRzJzogeyAnanEnOiBqUXVlcnkgfSB9KTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAgICAgKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIHRoZSBgc291cmNlVVJMYCBvcHRpb24gdG8gc3BlY2lmeSBhIGN1c3RvbSBzb3VyY2VVUkwgZm9yIHRoZSB0ZW1wbGF0ZVxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScsIHsgJ3NvdXJjZVVSTCc6ICcvYmFzaWMvZ3JlZXRpbmcuanN0JyB9KTtcbiAgICAgKiBjb21waWxlZChkYXRhKTtcbiAgICAgKiAvLyA9PiBmaW5kIHRoZSBzb3VyY2Ugb2YgXCJncmVldGluZy5qc3RcIiB1bmRlciB0aGUgU291cmNlcyB0YWIgb3IgUmVzb3VyY2VzIHBhbmVsIG9mIHRoZSB3ZWIgaW5zcGVjdG9yXG4gICAgICpcbiAgICAgKiAvLyB1c2luZyB0aGUgYHZhcmlhYmxlYCBvcHRpb24gdG8gZW5zdXJlIGEgd2l0aC1zdGF0ZW1lbnQgaXNuJ3QgdXNlZCBpbiB0aGUgY29tcGlsZWQgdGVtcGxhdGVcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoaSA8JT0gZGF0YS51c2VyICU+IScsIHsgJ3ZhcmlhYmxlJzogJ2RhdGEnIH0pO1xuICAgICAqIGNvbXBpbGVkLnNvdXJjZTtcbiAgICAgKiAvLyA9PiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICogLy8gICB2YXIgX190LCBfX3AgPSAnJztcbiAgICAgKiAvLyAgIF9fcCArPSAnaGkgJyArICgoX190ID0gKCBkYXRhLnVzZXIgKSkgPT0gbnVsbCA/ICcnIDogX190KSArICchJztcbiAgICAgKiAvLyAgIHJldHVybiBfX3A7XG4gICAgICogLy8gfVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBzb3VyY2VgIHByb3BlcnR5IHRvIGlubGluZSBjb21waWxlZCB0ZW1wbGF0ZXMgZm9yIG1lYW5pbmdmdWxcbiAgICAgKiAvLyBsaW5lIG51bWJlcnMgaW4gZXJyb3IgbWVzc2FnZXMgYW5kIGEgc3RhY2sgdHJhY2VcbiAgICAgKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihjd2QsICdqc3QuanMnKSwgJ1xcXG4gICAgICogICB2YXIgSlNUID0ge1xcXG4gICAgICogICAgIFwibWFpblwiOiAnICsgXy50ZW1wbGF0ZShtYWluVGV4dCkuc291cmNlICsgJ1xcXG4gICAgICogICB9O1xcXG4gICAgICogJyk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gdGVtcGxhdGUoc3RyaW5nLCBvcHRpb25zLCBvdGhlck9wdGlvbnMpIHtcbiAgICAgIC8vIEJhc2VkIG9uIEpvaG4gUmVzaWcncyBgdG1wbGAgaW1wbGVtZW50YXRpb24gKGh0dHA6Ly9lam9obi5vcmcvYmxvZy9qYXZhc2NyaXB0LW1pY3JvLXRlbXBsYXRpbmcvKVxuICAgICAgLy8gYW5kIExhdXJhIERva3Rvcm92YSdzIGRvVC5qcyAoaHR0cHM6Ly9naXRodWIuY29tL29sYWRvL2RvVCkuXG4gICAgICB2YXIgc2V0dGluZ3MgPSBsb2Rhc2gudGVtcGxhdGVTZXR0aW5ncztcblxuICAgICAgaWYgKG90aGVyT3B0aW9ucyAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIG90aGVyT3B0aW9ucykpIHtcbiAgICAgICAgb3B0aW9ucyA9IG90aGVyT3B0aW9ucyA9IG51bGw7XG4gICAgICB9XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIG9wdGlvbnMgPSBhc3NpZ25XaXRoKGJhc2VBc3NpZ24oe30sIG90aGVyT3B0aW9ucyB8fCBvcHRpb25zKSwgc2V0dGluZ3MsIGFzc2lnbk93bkRlZmF1bHRzKTtcblxuICAgICAgdmFyIGltcG9ydHMgPSBhc3NpZ25XaXRoKGJhc2VBc3NpZ24oe30sIG9wdGlvbnMuaW1wb3J0cyksIHNldHRpbmdzLmltcG9ydHMsIGFzc2lnbk93bkRlZmF1bHRzKSxcbiAgICAgICAgICBpbXBvcnRzS2V5cyA9IGtleXMoaW1wb3J0cyksXG4gICAgICAgICAgaW1wb3J0c1ZhbHVlcyA9IGJhc2VWYWx1ZXMoaW1wb3J0cywgaW1wb3J0c0tleXMpO1xuXG4gICAgICB2YXIgaXNFc2NhcGluZyxcbiAgICAgICAgICBpc0V2YWx1YXRpbmcsXG4gICAgICAgICAgaW5kZXggPSAwLFxuICAgICAgICAgIGludGVycG9sYXRlID0gb3B0aW9ucy5pbnRlcnBvbGF0ZSB8fCByZU5vTWF0Y2gsXG4gICAgICAgICAgc291cmNlID0gXCJfX3AgKz0gJ1wiO1xuXG4gICAgICAvLyBDb21waWxlIHRoZSByZWdleHAgdG8gbWF0Y2ggZWFjaCBkZWxpbWl0ZXIuXG4gICAgICB2YXIgcmVEZWxpbWl0ZXJzID0gUmVnRXhwKFxuICAgICAgICAob3B0aW9ucy5lc2NhcGUgfHwgcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgICAgICBpbnRlcnBvbGF0ZS5zb3VyY2UgKyAnfCcgK1xuICAgICAgICAoaW50ZXJwb2xhdGUgPT09IHJlSW50ZXJwb2xhdGUgPyByZUVzVGVtcGxhdGUgOiByZU5vTWF0Y2gpLnNvdXJjZSArICd8JyArXG4gICAgICAgIChvcHRpb25zLmV2YWx1YXRlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wkJ1xuICAgICAgLCAnZycpO1xuXG4gICAgICAvLyBVc2UgYSBzb3VyY2VVUkwgZm9yIGVhc2llciBkZWJ1Z2dpbmcuXG4gICAgICB2YXIgc291cmNlVVJMID0gJy8vIyBzb3VyY2VVUkw9JyArXG4gICAgICAgICgnc291cmNlVVJMJyBpbiBvcHRpb25zXG4gICAgICAgICAgPyBvcHRpb25zLnNvdXJjZVVSTFxuICAgICAgICAgIDogKCdsb2Rhc2gudGVtcGxhdGVTb3VyY2VzWycgKyAoKyt0ZW1wbGF0ZUNvdW50ZXIpICsgJ10nKVxuICAgICAgICApICsgJ1xcbic7XG5cbiAgICAgIHN0cmluZy5yZXBsYWNlKHJlRGVsaW1pdGVycywgZnVuY3Rpb24obWF0Y2gsIGVzY2FwZVZhbHVlLCBpbnRlcnBvbGF0ZVZhbHVlLCBlc1RlbXBsYXRlVmFsdWUsIGV2YWx1YXRlVmFsdWUsIG9mZnNldCkge1xuICAgICAgICBpbnRlcnBvbGF0ZVZhbHVlIHx8IChpbnRlcnBvbGF0ZVZhbHVlID0gZXNUZW1wbGF0ZVZhbHVlKTtcblxuICAgICAgICAvLyBFc2NhcGUgY2hhcmFjdGVycyB0aGF0IGNhbid0IGJlIGluY2x1ZGVkIGluIHN0cmluZyBsaXRlcmFscy5cbiAgICAgICAgc291cmNlICs9IHN0cmluZy5zbGljZShpbmRleCwgb2Zmc2V0KS5yZXBsYWNlKHJlVW5lc2NhcGVkU3RyaW5nLCBlc2NhcGVTdHJpbmdDaGFyKTtcblxuICAgICAgICAvLyBSZXBsYWNlIGRlbGltaXRlcnMgd2l0aCBzbmlwcGV0cy5cbiAgICAgICAgaWYgKGVzY2FwZVZhbHVlKSB7XG4gICAgICAgICAgaXNFc2NhcGluZyA9IHRydWU7XG4gICAgICAgICAgc291cmNlICs9IFwiJyArXFxuX19lKFwiICsgZXNjYXBlVmFsdWUgKyBcIikgK1xcbidcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZhbHVhdGVWYWx1ZSkge1xuICAgICAgICAgIGlzRXZhbHVhdGluZyA9IHRydWU7XG4gICAgICAgICAgc291cmNlICs9IFwiJztcXG5cIiArIGV2YWx1YXRlVmFsdWUgKyBcIjtcXG5fX3AgKz0gJ1wiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnRlcnBvbGF0ZVZhbHVlKSB7XG4gICAgICAgICAgc291cmNlICs9IFwiJyArXFxuKChfX3QgPSAoXCIgKyBpbnRlcnBvbGF0ZVZhbHVlICsgXCIpKSA9PSBudWxsID8gJycgOiBfX3QpICtcXG4nXCI7XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSBvZmZzZXQgKyBtYXRjaC5sZW5ndGg7XG5cbiAgICAgICAgLy8gVGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBwcm9kdWN0cyByZXF1aXJlcyByZXR1cm5pbmcgdGhlIGBtYXRjaGBcbiAgICAgICAgLy8gc3RyaW5nIGluIG9yZGVyIHRvIHByb2R1Y2UgdGhlIGNvcnJlY3QgYG9mZnNldGAgdmFsdWUuXG4gICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgIH0pO1xuXG4gICAgICBzb3VyY2UgKz0gXCInO1xcblwiO1xuXG4gICAgICAvLyBJZiBgdmFyaWFibGVgIGlzIG5vdCBzcGVjaWZpZWQgd3JhcCBhIHdpdGgtc3RhdGVtZW50IGFyb3VuZCB0aGUgZ2VuZXJhdGVkXG4gICAgICAvLyBjb2RlIHRvIGFkZCB0aGUgZGF0YSBvYmplY3QgdG8gdGhlIHRvcCBvZiB0aGUgc2NvcGUgY2hhaW4uXG4gICAgICB2YXIgdmFyaWFibGUgPSBvcHRpb25zLnZhcmlhYmxlO1xuICAgICAgaWYgKCF2YXJpYWJsZSkge1xuICAgICAgICBzb3VyY2UgPSAnd2l0aCAob2JqKSB7XFxuJyArIHNvdXJjZSArICdcXG59XFxuJztcbiAgICAgIH1cbiAgICAgIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cbiAgICAgIHNvdXJjZSA9IChpc0V2YWx1YXRpbmcgPyBzb3VyY2UucmVwbGFjZShyZUVtcHR5U3RyaW5nTGVhZGluZywgJycpIDogc291cmNlKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCAnJDEnKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcblxuICAgICAgLy8gRnJhbWUgY29kZSBhcyB0aGUgZnVuY3Rpb24gYm9keS5cbiAgICAgIHNvdXJjZSA9ICdmdW5jdGlvbignICsgKHZhcmlhYmxlIHx8ICdvYmonKSArICcpIHtcXG4nICtcbiAgICAgICAgKHZhcmlhYmxlXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogJ29iaiB8fCAob2JqID0ge30pO1xcbidcbiAgICAgICAgKSArXG4gICAgICAgIFwidmFyIF9fdCwgX19wID0gJydcIiArXG4gICAgICAgIChpc0VzY2FwaW5nXG4gICAgICAgICAgID8gJywgX19lID0gXy5lc2NhcGUnXG4gICAgICAgICAgIDogJydcbiAgICAgICAgKSArXG4gICAgICAgIChpc0V2YWx1YXRpbmdcbiAgICAgICAgICA/ICcsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xcbicgK1xuICAgICAgICAgICAgXCJmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIlxuICAgICAgICAgIDogJztcXG4nXG4gICAgICAgICkgK1xuICAgICAgICBzb3VyY2UgK1xuICAgICAgICAncmV0dXJuIF9fcFxcbn0nO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYXR0ZW1wdChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyAncmV0dXJuICcgKyBzb3VyY2UpLmFwcGx5KHVuZGVmaW5lZCwgaW1wb3J0c1ZhbHVlcyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJvdmlkZSB0aGUgY29tcGlsZWQgZnVuY3Rpb24ncyBzb3VyY2UgYnkgaXRzIGB0b1N0cmluZ2AgbWV0aG9kIG9yXG4gICAgICAvLyB0aGUgYHNvdXJjZWAgcHJvcGVydHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW5saW5pbmcgY29tcGlsZWQgdGVtcGxhdGVzLlxuICAgICAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgIGlmIChpc0Vycm9yKHJlc3VsdCkpIHtcbiAgICAgICAgdGhyb3cgcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB0cmltbWVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50cmltKCcgIGFiYyAgJyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKlxuICAgICAqIF8udHJpbSgnLV8tYWJjLV8tJywgJ18tJyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnICBmb28gICcsICcgIGJhciAgJ10sIF8udHJpbSk7XG4gICAgICogLy8gPT4gWydmb28nLCAnYmFyJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cmltKHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICB2YXIgdmFsdWUgPSBzdHJpbmc7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmICghc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgY2hhcnMsIGd1YXJkKSA6IGNoYXJzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSh0cmltbWVkTGVmdEluZGV4KHN0cmluZyksIHRyaW1tZWRSaWdodEluZGV4KHN0cmluZykgKyAxKTtcbiAgICAgIH1cbiAgICAgIGNoYXJzID0gKGNoYXJzICsgJycpO1xuICAgICAgcmV0dXJuIHN0cmluZy5zbGljZShjaGFyc0xlZnRJbmRleChzdHJpbmcsIGNoYXJzKSwgY2hhcnNSaWdodEluZGV4KHN0cmluZywgY2hhcnMpICsgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBsZWFkaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB0cmltbWVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50cmltTGVmdCgnICBhYmMgICcpO1xuICAgICAqIC8vID0+ICdhYmMgICdcbiAgICAgKlxuICAgICAqIF8udHJpbUxlZnQoJy1fLWFiYy1fLScsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmMtXy0nXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJpbUxlZnQoc3RyaW5nLCBjaGFycywgZ3VhcmQpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHN0cmluZztcbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgaWYgKCFzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBjaGFycywgZ3VhcmQpIDogY2hhcnMgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gc3RyaW5nLnNsaWNlKHRyaW1tZWRMZWZ0SW5kZXgoc3RyaW5nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyaW5nLnNsaWNlKGNoYXJzTGVmdEluZGV4KHN0cmluZywgKGNoYXJzICsgJycpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0cmFpbGluZyB3aGl0ZXNwYWNlIG9yIHNwZWNpZmllZCBjaGFyYWN0ZXJzIGZyb20gYHN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPXdoaXRlc3BhY2VdIFRoZSBjaGFyYWN0ZXJzIHRvIHRyaW0uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJpbVJpZ2h0KCcgIGFiYyAgJyk7XG4gICAgICogLy8gPT4gJyAgYWJjJ1xuICAgICAqXG4gICAgICogXy50cmltUmlnaHQoJy1fLWFiYy1fLScsICdfLScpO1xuICAgICAqIC8vID0+ICctXy1hYmMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJpbVJpZ2h0KHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICB2YXIgdmFsdWUgPSBzdHJpbmc7XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmICghc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgY2hhcnMsIGd1YXJkKSA6IGNoYXJzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSgwLCB0cmltbWVkUmlnaHRJbmRleChzdHJpbmcpICsgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyaW5nLnNsaWNlKDAsIGNoYXJzUmlnaHRJbmRleChzdHJpbmcsIChjaGFycyArICcnKSkgKyAxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcnVuY2F0ZXMgYHN0cmluZ2AgaWYgaXQgaXMgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIG1heGltdW0gc3RyaW5nIGxlbmd0aC5cbiAgICAgKiBUaGUgbGFzdCBjaGFyYWN0ZXJzIG9mIHRoZSB0cnVuY2F0ZWQgc3RyaW5nIGFyZSByZXBsYWNlZCB3aXRoIHRoZSBvbWlzc2lvblxuICAgICAqIHN0cmluZyB3aGljaCBkZWZhdWx0cyB0byBcIi4uLlwiLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRydW5jYXRlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fG51bWJlcn0gW29wdGlvbnNdIFRoZSBvcHRpb25zIG9iamVjdCBvciBtYXhpbXVtIHN0cmluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLmxlbmd0aD0zMF0gVGhlIG1heGltdW0gc3RyaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMub21pc3Npb249Jy4uLiddIFRoZSBzdHJpbmcgdG8gaW5kaWNhdGUgdGV4dCBpcyBvbWl0dGVkLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfHN0cmluZ30gW29wdGlvbnMuc2VwYXJhdG9yXSBUaGUgc2VwYXJhdG9yIHBhdHRlcm4gdG8gdHJ1bmNhdGUgdG8uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGEgY2FsbGJhY2sgZm9yIGZ1bmN0aW9ucyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJ1bmNhdGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50cnVuYygnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycpO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm8uLi4nXG4gICAgICpcbiAgICAgKiBfLnRydW5jKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJywgMjQpO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUsIG4uLi4nXG4gICAgICpcbiAgICAgKiBfLnRydW5jKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJywge1xuICAgICAqICAgJ2xlbmd0aCc6IDI0LFxuICAgICAqICAgJ3NlcGFyYXRvcic6ICcgJ1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUsLi4uJ1xuICAgICAqXG4gICAgICogXy50cnVuYygnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIHtcbiAgICAgKiAgICdsZW5ndGgnOiAyNCxcbiAgICAgKiAgICdzZXBhcmF0b3InOiAvLD8gKy9cbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLi4uJ1xuICAgICAqXG4gICAgICogXy50cnVuYygnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIHtcbiAgICAgKiAgICdvbWlzc2lvbic6ICcgWy4uLl0nXG4gICAgICogfSk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZyBbLi4uXSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cnVuYyhzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSB7XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBvcHRpb25zLCBndWFyZCkpIHtcbiAgICAgICAgb3B0aW9ucyA9IG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gREVGQVVMVF9UUlVOQ19MRU5HVEgsXG4gICAgICAgICAgb21pc3Npb24gPSBERUZBVUxUX1RSVU5DX09NSVNTSU9OO1xuXG4gICAgICBpZiAob3B0aW9ucyAhPSBudWxsKSB7XG4gICAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgICAgIHZhciBzZXBhcmF0b3IgPSAnc2VwYXJhdG9yJyBpbiBvcHRpb25zID8gb3B0aW9ucy5zZXBhcmF0b3IgOiBzZXBhcmF0b3I7XG4gICAgICAgICAgbGVuZ3RoID0gJ2xlbmd0aCcgaW4gb3B0aW9ucyA/ICgrb3B0aW9ucy5sZW5ndGggfHwgMCkgOiBsZW5ndGg7XG4gICAgICAgICAgb21pc3Npb24gPSAnb21pc3Npb24nIGluIG9wdGlvbnMgPyBiYXNlVG9TdHJpbmcob3B0aW9ucy5vbWlzc2lvbikgOiBvbWlzc2lvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZW5ndGggPSArb3B0aW9ucyB8fCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdHJpbmcgPSBiYXNlVG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChsZW5ndGggPj0gc3RyaW5nLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIGVuZCA9IGxlbmd0aCAtIG9taXNzaW9uLmxlbmd0aDtcbiAgICAgIGlmIChlbmQgPCAxKSB7XG4gICAgICAgIHJldHVybiBvbWlzc2lvbjtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBzdHJpbmcuc2xpY2UoMCwgZW5kKTtcbiAgICAgIGlmIChzZXBhcmF0b3IgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0ICsgb21pc3Npb247XG4gICAgICB9XG4gICAgICBpZiAoaXNSZWdFeHAoc2VwYXJhdG9yKSkge1xuICAgICAgICBpZiAoc3RyaW5nLnNsaWNlKGVuZCkuc2VhcmNoKHNlcGFyYXRvcikpIHtcbiAgICAgICAgICB2YXIgbWF0Y2gsXG4gICAgICAgICAgICAgIG5ld0VuZCxcbiAgICAgICAgICAgICAgc3Vic3RyaW5nID0gc3RyaW5nLnNsaWNlKDAsIGVuZCk7XG5cbiAgICAgICAgICBpZiAoIXNlcGFyYXRvci5nbG9iYWwpIHtcbiAgICAgICAgICAgIHNlcGFyYXRvciA9IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCAocmVGbGFncy5leGVjKHNlcGFyYXRvcikgfHwgJycpICsgJ2cnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2VwYXJhdG9yLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgd2hpbGUgKChtYXRjaCA9IHNlcGFyYXRvci5leGVjKHN1YnN0cmluZykpKSB7XG4gICAgICAgICAgICBuZXdFbmQgPSBtYXRjaC5pbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIG5ld0VuZCA9PSBudWxsID8gZW5kIDogbmV3RW5kKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzdHJpbmcuaW5kZXhPZihzZXBhcmF0b3IsIGVuZCkgIT0gZW5kKSB7XG4gICAgICAgIHZhciBpbmRleCA9IHJlc3VsdC5sYXN0SW5kZXhPZihzZXBhcmF0b3IpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQgKyBvbWlzc2lvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW52ZXJzZSBvZiBgXy5lc2NhcGVgOyB0aGlzIG1ldGhvZCBjb252ZXJ0cyB0aGUgSFRNTCBlbnRpdGllc1xuICAgICAqIGAmYW1wO2AsIGAmbHQ7YCwgYCZndDtgLCBgJnF1b3Q7YCwgYCYjMzk7YCwgYW5kIGAmIzk2O2AgaW4gYHN0cmluZ2AgdG8gdGhlaXJcbiAgICAgKiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm8gb3RoZXIgSFRNTCBlbnRpdGllcyBhcmUgdW5lc2NhcGVkLiBUbyB1bmVzY2FwZSBhZGRpdGlvbmFsIEhUTUxcbiAgICAgKiBlbnRpdGllcyB1c2UgYSB0aGlyZC1wYXJ0eSBsaWJyYXJ5IGxpa2UgW19oZV9dKGh0dHBzOi8vbXRocy5iZS9oZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gdW5lc2NhcGUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdW5lc2NhcGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51bmVzY2FwZSgnZnJlZCwgYmFybmV5LCAmYW1wOyBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuZXNjYXBlKHN0cmluZykge1xuICAgICAgc3RyaW5nID0gYmFzZVRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gKHN0cmluZyAmJiByZUhhc0VzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZWRIdG1sLCB1bmVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IFtwYXR0ZXJuXSBUaGUgcGF0dGVybiB0byBtYXRjaCB3b3Jkcy5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHdvcmRzIG9mIGBzdHJpbmdgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLndvcmRzKCdmcmVkLCBiYXJuZXksICYgcGViYmxlcycpO1xuICAgICAqIC8vID0+IFsnZnJlZCcsICdiYXJuZXknLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiBfLndvcmRzKCdmcmVkLCBiYXJuZXksICYgcGViYmxlcycsIC9bXiwgXSsvZyk7XG4gICAgICogLy8gPT4gWydmcmVkJywgJ2Jhcm5leScsICcmJywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdvcmRzKHN0cmluZywgcGF0dGVybiwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIHBhdHRlcm4sIGd1YXJkKSkge1xuICAgICAgICBwYXR0ZXJuID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIHN0cmluZy5tYXRjaChwYXR0ZXJuIHx8IHJlV29yZHMpIHx8IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF0dGVtcHRzIHRvIGludm9rZSBgZnVuY2AsIHJldHVybmluZyBlaXRoZXIgdGhlIHJlc3VsdCBvciB0aGUgY2F1Z2h0IGVycm9yXG4gICAgICogb2JqZWN0LiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0IGlzIGludm9rZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGF0dGVtcHQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGBmdW5jYCByZXN1bHQgb3IgZXJyb3Igb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBhdm9pZCB0aHJvd2luZyBlcnJvcnMgZm9yIGludmFsaWQgc2VsZWN0b3JzXG4gICAgICogdmFyIGVsZW1lbnRzID0gXy5hdHRlbXB0KGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gICAgICogICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgICogfSwgJz5fPicpO1xuICAgICAqXG4gICAgICogaWYgKF8uaXNFcnJvcihlbGVtZW50cykpIHtcbiAgICAgKiAgIGVsZW1lbnRzID0gW107XG4gICAgICogfVxuICAgICAqL1xuICAgIHZhciBhdHRlbXB0ID0gcmVzdFBhcmFtKGZ1bmN0aW9uKGZ1bmMsIGFyZ3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJncyk7XG4gICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgcmV0dXJuIGlzRXJyb3IoZSkgPyBlIDogbmV3IEVycm9yKGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgXG4gICAgICogYW5kIGFyZ3VtZW50cyBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbi4gSWYgYGZ1bmNgIGlzIGEgcHJvcGVydHkgbmFtZSB0aGVcbiAgICAgKiBjcmVhdGVkIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIGZvciBhIGdpdmVuIGVsZW1lbnQuIElmIGBmdW5jYFxuICAgICAqIGlzIGFuIG9iamVjdCB0aGUgY3JlYXRlZCBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBjb250YWluXG4gICAgICogdGhlIGVxdWl2YWxlbnQgb2JqZWN0IHByb3BlcnRpZXMsIG90aGVyd2lzZSBpdCByZXR1cm5zIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAYWxpYXMgaXRlcmF0ZWVcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7Kn0gW2Z1bmM9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYSBjYWxsYmFjay5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhIGNhbGxiYWNrIGZvciBmdW5jdGlvbnMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2FsbGJhY2suXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIHdyYXAgdG8gY3JlYXRlIGN1c3RvbSBjYWxsYmFjayBzaG9ydGhhbmRzXG4gICAgICogXy5jYWxsYmFjayA9IF8ud3JhcChfLmNhbGxiYWNrLCBmdW5jdGlvbihjYWxsYmFjaywgZnVuYywgdGhpc0FyZykge1xuICAgICAqICAgdmFyIG1hdGNoID0gL14oLis/KV9fKFtnbF10KSguKykkLy5leGVjKGZ1bmMpO1xuICAgICAqICAgaWYgKCFtYXRjaCkge1xuICAgICAqICAgICByZXR1cm4gY2FsbGJhY2soZnVuYywgdGhpc0FyZyk7XG4gICAgICogICB9XG4gICAgICogICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICogICAgIHJldHVybiBtYXRjaFsyXSA9PSAnZ3QnXG4gICAgICogICAgICAgPyBvYmplY3RbbWF0Y2hbMV1dID4gbWF0Y2hbM11cbiAgICAgKiAgICAgICA6IG9iamVjdFttYXRjaFsxXV0gPCBtYXRjaFszXTtcbiAgICAgKiAgIH07XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcih1c2VycywgJ2FnZV9fZ3QzNicpO1xuICAgICAqIC8vID0+IFt7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYWxsYmFjayhmdW5jLCB0aGlzQXJnLCBndWFyZCkge1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGZ1bmMsIHRoaXNBcmcsIGd1YXJkKSkge1xuICAgICAgICB0aGlzQXJnID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc09iamVjdExpa2UoZnVuYylcbiAgICAgICAgPyBtYXRjaGVzKGZ1bmMpXG4gICAgICAgIDogYmFzZUNhbGxiYWNrKGZ1bmMsIHRoaXNBcmcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmV0dXJuIGZyb20gdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKiB2YXIgZ2V0dGVyID0gXy5jb25zdGFudChvYmplY3QpO1xuICAgICAqXG4gICAgICogZ2V0dGVyKCkgPT09IG9iamVjdDtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBwcm92aWRlZCB0byBpdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBBbnkgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKlxuICAgICAqIF8uaWRlbnRpdHkob2JqZWN0KSA9PT0gb2JqZWN0O1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCBwZXJmb3JtcyBhIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIGEgZ2l2ZW4gb2JqZWN0XG4gICAgICogYW5kIGBzb3VyY2VgLCByZXR1cm5pbmcgYHRydWVgIGlmIHRoZSBnaXZlbiBvYmplY3QgaGFzIGVxdWl2YWxlbnQgcHJvcGVydHlcbiAgICAgKiB2YWx1ZXMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBjb21wYXJpbmcgYXJyYXlzLCBib29sZWFucywgYERhdGVgIG9iamVjdHMsXG4gICAgICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgYW5kIHN0cmluZ3MuIE9iamVjdHMgYXJlIGNvbXBhcmVkIGJ5XG4gICAgICogdGhlaXIgb3duLCBub3QgaW5oZXJpdGVkLCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuIEZvciBjb21wYXJpbmcgYSBzaW5nbGVcbiAgICAgKiBvd24gb3IgaW5oZXJpdGVkIHByb3BlcnR5IHZhbHVlIHNlZSBgXy5tYXRjaGVzUHJvcGVydHlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcih1c2VycywgXy5tYXRjaGVzKHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSkpO1xuICAgICAqIC8vID0+IFt7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXMoc291cmNlKSB7XG4gICAgICByZXR1cm4gYmFzZU1hdGNoZXMoYmFzZUNsb25lKHNvdXJjZSwgdHJ1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCBjb21wYXJlcyB0aGUgcHJvcGVydHkgdmFsdWUgb2YgYHBhdGhgIG9uIGEgZ2l2ZW5cbiAgICAgKiBvYmplY3QgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBjb21wYXJpbmcgYXJyYXlzLCBib29sZWFucywgYERhdGVgIG9iamVjdHMsXG4gICAgICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgYW5kIHN0cmluZ3MuIE9iamVjdHMgYXJlIGNvbXBhcmVkIGJ5XG4gICAgICogdGhlaXIgb3duLCBub3QgaW5oZXJpdGVkLCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maW5kKHVzZXJzLCBfLm1hdGNoZXNQcm9wZXJ0eSgndXNlcicsICdmcmVkJykpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXNQcm9wZXJ0eShwYXRoLCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgYmFzZUNsb25lKHZhbHVlLCB0cnVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHdoaWNoIGludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb24gYSBnaXZlbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IF8uY29uc3RhbnQoMikgfSB9IH0sXG4gICAgICogICB7ICdhJzogeyAnYic6IHsgJ2MnOiBfLmNvbnN0YW50KDEpIH0gfSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWFwKG9iamVjdHMsIF8ubWV0aG9kKCdhLmIuYycpKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKlxuICAgICAqIF8uaW52b2tlKF8uc29ydEJ5KG9iamVjdHMsIF8ubWV0aG9kKFsnYScsICdiJywgJ2MnXSkpLCAnYS5iLmMnKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKi9cbiAgICB2YXIgbWV0aG9kID0gcmVzdFBhcmFtKGZ1bmN0aW9uKHBhdGgsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGludm9rZVBhdGgob2JqZWN0LCBwYXRoLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ubWV0aG9kYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHdoaWNoIGludm9rZXNcbiAgICAgKiB0aGUgbWV0aG9kIGF0IGEgZ2l2ZW4gcGF0aCBvbiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBfLnRpbWVzKDMsIF8uY29uc3RhbnQpLFxuICAgICAqICAgICBvYmplY3QgPSB7ICdhJzogYXJyYXksICdiJzogYXJyYXksICdjJzogYXJyYXkgfTtcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnYVsyXScsICdjWzBdJ10sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICpcbiAgICAgKiBfLm1hcChbWydhJywgJzInXSwgWydjJywgJzAnXV0sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICovXG4gICAgdmFyIG1ldGhvZE9mID0gcmVzdFBhcmFtKGZ1bmN0aW9uKG9iamVjdCwgYXJncykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIGludm9rZVBhdGgob2JqZWN0LCBwYXRoLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGFsbCBvd24gZW51bWVyYWJsZSBmdW5jdGlvbiBwcm9wZXJ0aWVzIG9mIGEgc291cmNlIG9iamVjdCB0byB0aGVcbiAgICAgKiBkZXN0aW5hdGlvbiBvYmplY3QuIElmIGBvYmplY3RgIGlzIGEgZnVuY3Rpb24gdGhlbiBtZXRob2RzIGFyZSBhZGRlZCB0b1xuICAgICAqIGl0cyBwcm90b3R5cGUgYXMgd2VsbC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVc2UgYF8ucnVuSW5Db250ZXh0YCB0byBjcmVhdGUgYSBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB0b1xuICAgICAqIGF2b2lkIGNvbmZsaWN0cyBjYXVzZWQgYnkgbW9kaWZ5aW5nIHRoZSBvcmlnaW5hbC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R9IFtvYmplY3Q9bG9kYXNoXSBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBmdW5jdGlvbnMgdG8gYWRkLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY2hhaW49dHJ1ZV0gU3BlY2lmeSB3aGV0aGVyIHRoZSBmdW5jdGlvbnMgYWRkZWRcbiAgICAgKiAgYXJlIGNoYWluYWJsZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb258T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiB2b3dlbHMoc3RyaW5nKSB7XG4gICAgICogICByZXR1cm4gXy5maWx0ZXIoc3RyaW5nLCBmdW5jdGlvbih2KSB7XG4gICAgICogICAgIHJldHVybiAvW2FlaW91XS9pLnRlc3Qodik7XG4gICAgICogICB9KTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiAvLyB1c2UgYF8ucnVuSW5Db250ZXh0YCB0byBhdm9pZCBjb25mbGljdHMgKGVzcC4gaW4gTm9kZS5qcylcbiAgICAgKiB2YXIgXyA9IHJlcXVpcmUoJ2xvZGFzaCcpLnJ1bkluQ29udGV4dCgpO1xuICAgICAqXG4gICAgICogXy5taXhpbih7ICd2b3dlbHMnOiB2b3dlbHMgfSk7XG4gICAgICogXy52b3dlbHMoJ2ZyZWQnKTtcbiAgICAgKiAvLyA9PiBbJ2UnXVxuICAgICAqXG4gICAgICogXygnZnJlZCcpLnZvd2VscygpLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWydlJ11cbiAgICAgKlxuICAgICAqIF8ubWl4aW4oeyAndm93ZWxzJzogdm93ZWxzIH0sIHsgJ2NoYWluJzogZmFsc2UgfSk7XG4gICAgICogXygnZnJlZCcpLnZvd2VscygpO1xuICAgICAqIC8vID0+IFsnZSddXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWl4aW4ob2JqZWN0LCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHtcbiAgICAgICAgdmFyIGlzT2JqID0gaXNPYmplY3Qoc291cmNlKSxcbiAgICAgICAgICAgIHByb3BzID0gaXNPYmogJiYga2V5cyhzb3VyY2UpLFxuICAgICAgICAgICAgbWV0aG9kTmFtZXMgPSBwcm9wcyAmJiBwcm9wcy5sZW5ndGggJiYgYmFzZUZ1bmN0aW9ucyhzb3VyY2UsIHByb3BzKTtcblxuICAgICAgICBpZiAoIShtZXRob2ROYW1lcyA/IG1ldGhvZE5hbWVzLmxlbmd0aCA6IGlzT2JqKSkge1xuICAgICAgICAgIG1ldGhvZE5hbWVzID0gZmFsc2U7XG4gICAgICAgICAgb3B0aW9ucyA9IHNvdXJjZTtcbiAgICAgICAgICBzb3VyY2UgPSBvYmplY3Q7XG4gICAgICAgICAgb2JqZWN0ID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFtZXRob2ROYW1lcykge1xuICAgICAgICBtZXRob2ROYW1lcyA9IGJhc2VGdW5jdGlvbnMoc291cmNlLCBrZXlzKHNvdXJjZSkpO1xuICAgICAgfVxuICAgICAgdmFyIGNoYWluID0gdHJ1ZSxcbiAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgIGlzRnVuYyA9IGlzRnVuY3Rpb24ob2JqZWN0KSxcbiAgICAgICAgICBsZW5ndGggPSBtZXRob2ROYW1lcy5sZW5ndGg7XG5cbiAgICAgIGlmIChvcHRpb25zID09PSBmYWxzZSkge1xuICAgICAgICBjaGFpbiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChpc09iamVjdChvcHRpb25zKSAmJiAnY2hhaW4nIGluIG9wdGlvbnMpIHtcbiAgICAgICAgY2hhaW4gPSBvcHRpb25zLmNoYWluO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIG1ldGhvZE5hbWUgPSBtZXRob2ROYW1lc1tpbmRleF0sXG4gICAgICAgICAgICBmdW5jID0gc291cmNlW21ldGhvZE5hbWVdO1xuXG4gICAgICAgIG9iamVjdFttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgIGlmIChpc0Z1bmMpIHtcbiAgICAgICAgICBvYmplY3QucHJvdG90eXBlW21ldGhvZE5hbWVdID0gKGZ1bmN0aW9uKGZ1bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgdmFyIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX187XG4gICAgICAgICAgICAgIGlmIChjaGFpbiB8fCBjaGFpbkFsbCkge1xuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvYmplY3QodGhpcy5fX3dyYXBwZWRfXyksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPSByZXN1bHQuX19hY3Rpb25zX18gPSBhcnJheUNvcHkodGhpcy5fX2FjdGlvbnNfXyk7XG5cbiAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goeyAnZnVuYyc6IGZ1bmMsICdhcmdzJzogYXJndW1lbnRzLCAndGhpc0FyZyc6IG9iamVjdCB9KTtcbiAgICAgICAgICAgICAgICByZXN1bHQuX19jaGFpbl9fID0gY2hhaW5BbGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgYXJncyA9IFt0aGlzLnZhbHVlKCldO1xuICAgICAgICAgICAgICBwdXNoLmFwcGx5KGFyZ3MsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KG9iamVjdCwgYXJncyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0oZnVuYykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVydHMgdGhlIGBfYCB2YXJpYWJsZSB0byBpdHMgcHJldmlvdXMgdmFsdWUgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG9cbiAgICAgKiB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBsb2Rhc2ggPSBfLm5vQ29uZmxpY3QoKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBub0NvbmZsaWN0KCkge1xuICAgICAgY29udGV4dC5fID0gb2xkRGFzaDtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgbm8tb3BlcmF0aW9uIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYHVuZGVmaW5lZGAgcmVnYXJkbGVzcyBvZiB0aGVcbiAgICAgKiBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJyB9O1xuICAgICAqXG4gICAgICogXy5ub29wKG9iamVjdCkgPT09IHVuZGVmaW5lZDtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9vcCgpIHtcbiAgICAgIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIGF0IGBwYXRoYCBvbiBhXG4gICAgICogZ2l2ZW4gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IDIgfSB9IH0sXG4gICAgICogICB7ICdhJzogeyAnYic6IHsgJ2MnOiAxIH0gfSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWFwKG9iamVjdHMsIF8ucHJvcGVydHkoJ2EuYi5jJykpO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqXG4gICAgICogXy5wbHVjayhfLnNvcnRCeShvYmplY3RzLCBfLnByb3BlcnR5KFsnYScsICdiJywgJ2MnXSkpLCAnYS5iLmMnKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwcm9wZXJ0eShwYXRoKSB7XG4gICAgICByZXR1cm4gaXNLZXkocGF0aCkgPyBiYXNlUHJvcGVydHkocGF0aCkgOiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5wcm9wZXJ0eWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zXG4gICAgICogdGhlIHByb3BlcnR5IHZhbHVlIGF0IGEgZ2l2ZW4gcGF0aCBvbiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMCwgMSwgMl0sXG4gICAgICogICAgIG9iamVjdCA9IHsgJ2EnOiBhcnJheSwgJ2InOiBhcnJheSwgJ2MnOiBhcnJheSB9O1xuICAgICAqXG4gICAgICogXy5tYXAoWydhWzJdJywgJ2NbMF0nXSwgXy5wcm9wZXJ0eU9mKG9iamVjdCkpO1xuICAgICAqIC8vID0+IFsyLCAwXVxuICAgICAqXG4gICAgICogXy5tYXAoW1snYScsICcyJ10sIFsnYycsICcwJ11dLCBfLnByb3BlcnR5T2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJvcGVydHlPZihvYmplY3QpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIHJldHVybiBiYXNlR2V0KG9iamVjdCwgdG9QYXRoKHBhdGgpLCBwYXRoICsgJycpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG51bWJlcnMgKHBvc2l0aXZlIGFuZC9vciBuZWdhdGl2ZSkgcHJvZ3Jlc3NpbmcgZnJvbVxuICAgICAqIGBzdGFydGAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gSWYgYGVuZGAgaXMgbm90IHNwZWNpZmllZCBpdCBpc1xuICAgICAqIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuIElmIGBlbmRgIGlzIGxlc3MgdGhhbiBgc3RhcnRgXG4gICAgICogYSB6ZXJvLWxlbmd0aCByYW5nZSBpcyBjcmVhdGVkIHVubGVzcyBhIG5lZ2F0aXZlIGBzdGVwYCBpcyBzcGVjaWZpZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0xXSBUaGUgdmFsdWUgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBieS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBudW1iZXJzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDQpO1xuICAgICAqIC8vID0+IFswLCAxLCAyLCAzXVxuICAgICAqXG4gICAgICogXy5yYW5nZSgxLCA1KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgNF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMCwgMjAsIDUpO1xuICAgICAqIC8vID0+IFswLCA1LCAxMCwgMTVdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDAsIC00LCAtMSk7XG4gICAgICogLy8gPT4gWzAsIC0xLCAtMiwgLTNdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDEsIDQsIDApO1xuICAgICAqIC8vID0+IFsxLCAxLCAxXVxuICAgICAqXG4gICAgICogXy5yYW5nZSgwKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJhbmdlKHN0YXJ0LCBlbmQsIHN0ZXApIHtcbiAgICAgIGlmIChzdGVwICYmIGlzSXRlcmF0ZWVDYWxsKHN0YXJ0LCBlbmQsIHN0ZXApKSB7XG4gICAgICAgIGVuZCA9IHN0ZXAgPSBudWxsO1xuICAgICAgfVxuICAgICAgc3RhcnQgPSArc3RhcnQgfHwgMDtcbiAgICAgIHN0ZXAgPSBzdGVwID09IG51bGwgPyAxIDogKCtzdGVwIHx8IDApO1xuXG4gICAgICBpZiAoZW5kID09IG51bGwpIHtcbiAgICAgICAgZW5kID0gc3RhcnQ7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVuZCA9ICtlbmQgfHwgMDtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBgQXJyYXkobGVuZ3RoKWAgc28gZW5naW5lcyBsaWtlIENoYWtyYSBhbmQgVjggYXZvaWQgc2xvd2VyIG1vZGVzLlxuICAgICAgLy8gU2VlIGh0dHBzOi8veW91dHUuYmUvWEFxSXBHVThaWmsjdD0xN20yNXMgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChjZWlsKChlbmQgLSBzdGFydCkgLyAoc3RlcCB8fCAxKSksIDApLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBzdGFydDtcbiAgICAgICAgc3RhcnQgKz0gc3RlcDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgaXRlcmF0ZWUgZnVuY3Rpb24gYG5gIHRpbWVzLCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHNcbiAgICAgKiBvZiBlYWNoIGludm9jYXRpb24uIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoXG4gICAgICogb25lIGFyZ3VtZW50OyAoaW5kZXgpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxpdHlcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGRpY2VSb2xscyA9IF8udGltZXMoMywgXy5wYXJ0aWFsKF8ucmFuZG9tLCAxLCA2LCBmYWxzZSkpO1xuICAgICAqIC8vID0+IFszLCA2LCA0XVxuICAgICAqXG4gICAgICogXy50aW1lcygzLCBmdW5jdGlvbihuKSB7XG4gICAgICogICBtYWdlLmNhc3RTcGVsbChuKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBpbnZva2VzIGBtYWdlLmNhc3RTcGVsbChuKWAgdGhyZWUgdGltZXMgd2l0aCBgbmAgb2YgYDBgLCBgMWAsIGFuZCBgMmBcbiAgICAgKlxuICAgICAqIF8udGltZXMoMywgZnVuY3Rpb24obikge1xuICAgICAqICAgdGhpcy5jYXN0KG4pO1xuICAgICAqIH0sIG1hZ2UpO1xuICAgICAqIC8vID0+IGFsc28gaW52b2tlcyBgbWFnZS5jYXN0U3BlbGwobilgIHRocmVlIHRpbWVzXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGltZXMobiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICAgIG4gPSBmbG9vcihuKTtcblxuICAgICAgLy8gRXhpdCBlYXJseSB0byBhdm9pZCBhIEpTQyBKSVQgYnVnIGluIFNhZmFyaSA4XG4gICAgICAvLyB3aGVyZSBgQXJyYXkoMClgIGlzIHRyZWF0ZWQgYXMgYEFycmF5KDEpYC5cbiAgICAgIGlmIChuIDwgMSB8fCAhbmF0aXZlSXNGaW5pdGUobikpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobmF0aXZlTWluKG4sIE1BWF9BUlJBWV9MRU5HVEgpKTtcblxuICAgICAgaXRlcmF0ZWUgPSBiaW5kQ2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDEpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgICAgIGlmIChpbmRleCA8IE1BWF9BUlJBWV9MRU5HVEgpIHtcbiAgICAgICAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZXJhdGVlKGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQuIElmIGBwcmVmaXhgIGlzIHByb3ZpZGVkIHRoZSBJRCBpcyBhcHBlbmRlZCB0byBpdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsaXR5XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtwcmVmaXhdIFRoZSB2YWx1ZSB0byBwcmVmaXggdGhlIElEIHdpdGguXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdW5pcXVlIElELlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXF1ZUlkKCdjb250YWN0XycpO1xuICAgICAqIC8vID0+ICdjb250YWN0XzEwNCdcbiAgICAgKlxuICAgICAqIF8udW5pcXVlSWQoKTtcbiAgICAgKiAvLyA9PiAnMTA1J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXF1ZUlkKHByZWZpeCkge1xuICAgICAgdmFyIGlkID0gKytpZENvdW50ZXI7XG4gICAgICByZXR1cm4gYmFzZVRvU3RyaW5nKHByZWZpeCkgKyBpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHR3byBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYXVnZW5kIFRoZSBmaXJzdCBudW1iZXIgdG8gYWRkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhZGRlbmQgVGhlIHNlY29uZCBudW1iZXIgdG8gYWRkLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5hZGQoNiwgNCk7XG4gICAgICogLy8gPT4gMTBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhZGQoYXVnZW5kLCBhZGRlbmQpIHtcbiAgICAgIHJldHVybiAoK2F1Z2VuZCB8fCAwKSArICgrYWRkZW5kIHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG1heGltdW0gdmFsdWUgb2YgYGNvbGxlY3Rpb25gLiBJZiBgY29sbGVjdGlvbmAgaXMgZW1wdHkgb3IgZmFsc2V5XG4gICAgICogYC1JbmZpbml0eWAgaXMgcmV0dXJuZWQuIElmIGFuIGl0ZXJhdGVlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGl0IGlzIGludm9rZWRcbiAgICAgKiBmb3IgZWFjaCB2YWx1ZSBpbiBgY29sbGVjdGlvbmAgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieSB3aGljaCB0aGUgdmFsdWVcbiAgICAgKiBpcyByYW5rZWQuIFRoZSBgaXRlcmF0ZWVgIGlzIGJvdW5kIHRvIGB0aGlzQXJnYCBhbmQgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAgICAgKiBzdHlsZSBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgcHJvcGVydHlcbiAgICAgKiB2YWx1ZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gICAgICogY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW5cbiAgICAgKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF4aW11bSB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXgoWzQsIDIsIDgsIDZdKTtcbiAgICAgKiAvLyA9PiA4XG4gICAgICpcbiAgICAgKiBfLm1heChbXSk7XG4gICAgICogLy8gPT4gLUluZmluaXR5XG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLm1heCh1c2VycywgZnVuY3Rpb24oY2hyKSB7XG4gICAgICogICByZXR1cm4gY2hyLmFnZTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLm1heCh1c2VycywgJ2FnZScpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnZnJlZCcsICdhZ2UnOiA0MCB9XG4gICAgICovXG4gICAgdmFyIG1heCA9IGNyZWF0ZUV4dHJlbXVtKGFycmF5TWF4KTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG1pbmltdW0gdmFsdWUgb2YgYGNvbGxlY3Rpb25gLiBJZiBgY29sbGVjdGlvbmAgaXMgZW1wdHkgb3IgZmFsc2V5XG4gICAgICogYEluZmluaXR5YCBpcyByZXR1cm5lZC4gSWYgYW4gaXRlcmF0ZWUgZnVuY3Rpb24gaXMgcHJvdmlkZWQgaXQgaXMgaW52b2tlZFxuICAgICAqIGZvciBlYWNoIHZhbHVlIGluIGBjb2xsZWN0aW9uYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoIHRoZSB2YWx1ZVxuICAgICAqIGlzIHJhbmtlZC4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWVcbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgaXRlcmF0ZWVgIHRoZSBjcmVhdGVkIGBfLnByb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgYSB2YWx1ZSBpcyBhbHNvIHByb3ZpZGVkIGZvciBgdGhpc0FyZ2AgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc1Byb3BlcnR5YFxuICAgICAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICAgICAqIHZhbHVlLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAgICAgKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICAgICAqIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlXSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1pbihbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIF8ubWluKFtdKTtcbiAgICAgKiAvLyA9PiBJbmZpbml0eVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5taW4odXNlcnMsIGZ1bmN0aW9uKGNocikge1xuICAgICAqICAgcmV0dXJuIGNoci5hZ2U7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfVxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLm1pbih1c2VycywgJ2FnZScpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKi9cbiAgICB2YXIgbWluID0gY3JlYXRlRXh0cmVtdW0oYXJyYXlNaW4sIHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc3VtIG9mIHRoZSB2YWx1ZXMgaW4gYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fHN0cmluZ30gW2l0ZXJhdGVlXSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdW0oWzQsIDZdKTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqXG4gICAgICogXy5zdW0oeyAnYSc6IDQsICdiJzogNiB9KTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICduJzogNCB9LFxuICAgICAqICAgeyAnbic6IDYgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnN1bShvYmplY3RzLCBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgKiAgIHJldHVybiBvYmplY3QubjtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqXG4gICAgICogLy8gdXNpbmcgdGhlIGBfLnByb3BlcnR5YCBjYWxsYmFjayBzaG9ydGhhbmRcbiAgICAgKiBfLnN1bShvYmplY3RzLCAnbicpO1xuICAgICAqIC8vID0+IDEwXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3VtKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICBpZiAodGhpc0FyZyAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBpdGVyYXRlZSwgdGhpc0FyZykpIHtcbiAgICAgICAgaXRlcmF0ZWUgPSBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIGZ1bmMgPSBnZXRDYWxsYmFjaygpLFxuICAgICAgICAgIG5vSXRlcmF0ZWUgPSBpdGVyYXRlZSA9PSBudWxsO1xuXG4gICAgICBpZiAoIShmdW5jID09PSBiYXNlQ2FsbGJhY2sgJiYgbm9JdGVyYXRlZSkpIHtcbiAgICAgICAgbm9JdGVyYXRlZSA9IGZhbHNlO1xuICAgICAgICBpdGVyYXRlZSA9IGZ1bmMoaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vSXRlcmF0ZWVcbiAgICAgICAgPyBhcnJheVN1bShpc0FycmF5KGNvbGxlY3Rpb24pID8gY29sbGVjdGlvbiA6IHRvSXRlcmFibGUoY29sbGVjdGlvbikpXG4gICAgICAgIDogYmFzZVN1bShjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHdyYXBwZXJzIGFyZSBpbnN0YW5jZXMgb2YgYGJhc2VMb2Rhc2hgLlxuICAgIGxvZGFzaC5wcm90b3R5cGUgPSBiYXNlTG9kYXNoLnByb3RvdHlwZTtcblxuICAgIExvZGFzaFdyYXBwZXIucHJvdG90eXBlID0gYmFzZUNyZWF0ZShiYXNlTG9kYXNoLnByb3RvdHlwZSk7XG4gICAgTG9kYXNoV3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBMb2Rhc2hXcmFwcGVyO1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlID0gYmFzZUNyZWF0ZShiYXNlTG9kYXNoLnByb3RvdHlwZSk7XG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTGF6eVdyYXBwZXI7XG5cbiAgICAvLyBBZGQgZnVuY3Rpb25zIHRvIHRoZSBgTWFwYCBjYWNoZS5cbiAgICBNYXBDYWNoZS5wcm90b3R5cGVbJ2RlbGV0ZSddID0gbWFwRGVsZXRlO1xuICAgIE1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBHZXQ7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcEhhcztcbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuc2V0ID0gbWFwU2V0O1xuXG4gICAgLy8gQWRkIGZ1bmN0aW9ucyB0byB0aGUgYFNldGAgY2FjaGUuXG4gICAgU2V0Q2FjaGUucHJvdG90eXBlLnB1c2ggPSBjYWNoZVB1c2g7XG5cbiAgICAvLyBBc3NpZ24gY2FjaGUgdG8gYF8ubWVtb2l6ZWAuXG4gICAgbWVtb2l6ZS5DYWNoZSA9IE1hcENhY2hlO1xuXG4gICAgLy8gQWRkIGZ1bmN0aW9ucyB0aGF0IHJldHVybiB3cmFwcGVkIHZhbHVlcyB3aGVuIGNoYWluaW5nLlxuICAgIGxvZGFzaC5hZnRlciA9IGFmdGVyO1xuICAgIGxvZGFzaC5hcnkgPSBhcnk7XG4gICAgbG9kYXNoLmFzc2lnbiA9IGFzc2lnbjtcbiAgICBsb2Rhc2guYXQgPSBhdDtcbiAgICBsb2Rhc2guYmVmb3JlID0gYmVmb3JlO1xuICAgIGxvZGFzaC5iaW5kID0gYmluZDtcbiAgICBsb2Rhc2guYmluZEFsbCA9IGJpbmRBbGw7XG4gICAgbG9kYXNoLmJpbmRLZXkgPSBiaW5kS2V5O1xuICAgIGxvZGFzaC5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIGxvZGFzaC5jaGFpbiA9IGNoYWluO1xuICAgIGxvZGFzaC5jaHVuayA9IGNodW5rO1xuICAgIGxvZGFzaC5jb21wYWN0ID0gY29tcGFjdDtcbiAgICBsb2Rhc2guY29uc3RhbnQgPSBjb25zdGFudDtcbiAgICBsb2Rhc2guY291bnRCeSA9IGNvdW50Qnk7XG4gICAgbG9kYXNoLmNyZWF0ZSA9IGNyZWF0ZTtcbiAgICBsb2Rhc2guY3VycnkgPSBjdXJyeTtcbiAgICBsb2Rhc2guY3VycnlSaWdodCA9IGN1cnJ5UmlnaHQ7XG4gICAgbG9kYXNoLmRlYm91bmNlID0gZGVib3VuY2U7XG4gICAgbG9kYXNoLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgbG9kYXNoLmRlZmVyID0gZGVmZXI7XG4gICAgbG9kYXNoLmRlbGF5ID0gZGVsYXk7XG4gICAgbG9kYXNoLmRpZmZlcmVuY2UgPSBkaWZmZXJlbmNlO1xuICAgIGxvZGFzaC5kcm9wID0gZHJvcDtcbiAgICBsb2Rhc2guZHJvcFJpZ2h0ID0gZHJvcFJpZ2h0O1xuICAgIGxvZGFzaC5kcm9wUmlnaHRXaGlsZSA9IGRyb3BSaWdodFdoaWxlO1xuICAgIGxvZGFzaC5kcm9wV2hpbGUgPSBkcm9wV2hpbGU7XG4gICAgbG9kYXNoLmZpbGwgPSBmaWxsO1xuICAgIGxvZGFzaC5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgbG9kYXNoLmZsYXR0ZW4gPSBmbGF0dGVuO1xuICAgIGxvZGFzaC5mbGF0dGVuRGVlcCA9IGZsYXR0ZW5EZWVwO1xuICAgIGxvZGFzaC5mbG93ID0gZmxvdztcbiAgICBsb2Rhc2guZmxvd1JpZ2h0ID0gZmxvd1JpZ2h0O1xuICAgIGxvZGFzaC5mb3JFYWNoID0gZm9yRWFjaDtcbiAgICBsb2Rhc2guZm9yRWFjaFJpZ2h0ID0gZm9yRWFjaFJpZ2h0O1xuICAgIGxvZGFzaC5mb3JJbiA9IGZvckluO1xuICAgIGxvZGFzaC5mb3JJblJpZ2h0ID0gZm9ySW5SaWdodDtcbiAgICBsb2Rhc2guZm9yT3duID0gZm9yT3duO1xuICAgIGxvZGFzaC5mb3JPd25SaWdodCA9IGZvck93blJpZ2h0O1xuICAgIGxvZGFzaC5mdW5jdGlvbnMgPSBmdW5jdGlvbnM7XG4gICAgbG9kYXNoLmdyb3VwQnkgPSBncm91cEJ5O1xuICAgIGxvZGFzaC5pbmRleEJ5ID0gaW5kZXhCeTtcbiAgICBsb2Rhc2guaW5pdGlhbCA9IGluaXRpYWw7XG4gICAgbG9kYXNoLmludGVyc2VjdGlvbiA9IGludGVyc2VjdGlvbjtcbiAgICBsb2Rhc2guaW52ZXJ0ID0gaW52ZXJ0O1xuICAgIGxvZGFzaC5pbnZva2UgPSBpbnZva2U7XG4gICAgbG9kYXNoLmtleXMgPSBrZXlzO1xuICAgIGxvZGFzaC5rZXlzSW4gPSBrZXlzSW47XG4gICAgbG9kYXNoLm1hcCA9IG1hcDtcbiAgICBsb2Rhc2gubWFwS2V5cyA9IG1hcEtleXM7XG4gICAgbG9kYXNoLm1hcFZhbHVlcyA9IG1hcFZhbHVlcztcbiAgICBsb2Rhc2gubWF0Y2hlcyA9IG1hdGNoZXM7XG4gICAgbG9kYXNoLm1hdGNoZXNQcm9wZXJ0eSA9IG1hdGNoZXNQcm9wZXJ0eTtcbiAgICBsb2Rhc2gubWVtb2l6ZSA9IG1lbW9pemU7XG4gICAgbG9kYXNoLm1lcmdlID0gbWVyZ2U7XG4gICAgbG9kYXNoLm1ldGhvZCA9IG1ldGhvZDtcbiAgICBsb2Rhc2gubWV0aG9kT2YgPSBtZXRob2RPZjtcbiAgICBsb2Rhc2gubWl4aW4gPSBtaXhpbjtcbiAgICBsb2Rhc2gubmVnYXRlID0gbmVnYXRlO1xuICAgIGxvZGFzaC5vbWl0ID0gb21pdDtcbiAgICBsb2Rhc2gub25jZSA9IG9uY2U7XG4gICAgbG9kYXNoLnBhaXJzID0gcGFpcnM7XG4gICAgbG9kYXNoLnBhcnRpYWwgPSBwYXJ0aWFsO1xuICAgIGxvZGFzaC5wYXJ0aWFsUmlnaHQgPSBwYXJ0aWFsUmlnaHQ7XG4gICAgbG9kYXNoLnBhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbiAgICBsb2Rhc2gucGljayA9IHBpY2s7XG4gICAgbG9kYXNoLnBsdWNrID0gcGx1Y2s7XG4gICAgbG9kYXNoLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgbG9kYXNoLnByb3BlcnR5T2YgPSBwcm9wZXJ0eU9mO1xuICAgIGxvZGFzaC5wdWxsID0gcHVsbDtcbiAgICBsb2Rhc2gucHVsbEF0ID0gcHVsbEF0O1xuICAgIGxvZGFzaC5yYW5nZSA9IHJhbmdlO1xuICAgIGxvZGFzaC5yZWFyZyA9IHJlYXJnO1xuICAgIGxvZGFzaC5yZWplY3QgPSByZWplY3Q7XG4gICAgbG9kYXNoLnJlbW92ZSA9IHJlbW92ZTtcbiAgICBsb2Rhc2gucmVzdCA9IHJlc3Q7XG4gICAgbG9kYXNoLnJlc3RQYXJhbSA9IHJlc3RQYXJhbTtcbiAgICBsb2Rhc2guc2V0ID0gc2V0O1xuICAgIGxvZGFzaC5zaHVmZmxlID0gc2h1ZmZsZTtcbiAgICBsb2Rhc2guc2xpY2UgPSBzbGljZTtcbiAgICBsb2Rhc2guc29ydEJ5ID0gc29ydEJ5O1xuICAgIGxvZGFzaC5zb3J0QnlBbGwgPSBzb3J0QnlBbGw7XG4gICAgbG9kYXNoLnNvcnRCeU9yZGVyID0gc29ydEJ5T3JkZXI7XG4gICAgbG9kYXNoLnNwcmVhZCA9IHNwcmVhZDtcbiAgICBsb2Rhc2gudGFrZSA9IHRha2U7XG4gICAgbG9kYXNoLnRha2VSaWdodCA9IHRha2VSaWdodDtcbiAgICBsb2Rhc2gudGFrZVJpZ2h0V2hpbGUgPSB0YWtlUmlnaHRXaGlsZTtcbiAgICBsb2Rhc2gudGFrZVdoaWxlID0gdGFrZVdoaWxlO1xuICAgIGxvZGFzaC50YXAgPSB0YXA7XG4gICAgbG9kYXNoLnRocm90dGxlID0gdGhyb3R0bGU7XG4gICAgbG9kYXNoLnRocnUgPSB0aHJ1O1xuICAgIGxvZGFzaC50aW1lcyA9IHRpbWVzO1xuICAgIGxvZGFzaC50b0FycmF5ID0gdG9BcnJheTtcbiAgICBsb2Rhc2gudG9QbGFpbk9iamVjdCA9IHRvUGxhaW5PYmplY3Q7XG4gICAgbG9kYXNoLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICBsb2Rhc2gudW5pb24gPSB1bmlvbjtcbiAgICBsb2Rhc2gudW5pcSA9IHVuaXE7XG4gICAgbG9kYXNoLnVuemlwID0gdW56aXA7XG4gICAgbG9kYXNoLnVuemlwV2l0aCA9IHVuemlwV2l0aDtcbiAgICBsb2Rhc2gudmFsdWVzID0gdmFsdWVzO1xuICAgIGxvZGFzaC52YWx1ZXNJbiA9IHZhbHVlc0luO1xuICAgIGxvZGFzaC53aGVyZSA9IHdoZXJlO1xuICAgIGxvZGFzaC53aXRob3V0ID0gd2l0aG91dDtcbiAgICBsb2Rhc2gud3JhcCA9IHdyYXA7XG4gICAgbG9kYXNoLnhvciA9IHhvcjtcbiAgICBsb2Rhc2guemlwID0gemlwO1xuICAgIGxvZGFzaC56aXBPYmplY3QgPSB6aXBPYmplY3Q7XG4gICAgbG9kYXNoLnppcFdpdGggPSB6aXBXaXRoO1xuXG4gICAgLy8gQWRkIGFsaWFzZXMuXG4gICAgbG9kYXNoLmJhY2tmbG93ID0gZmxvd1JpZ2h0O1xuICAgIGxvZGFzaC5jb2xsZWN0ID0gbWFwO1xuICAgIGxvZGFzaC5jb21wb3NlID0gZmxvd1JpZ2h0O1xuICAgIGxvZGFzaC5lYWNoID0gZm9yRWFjaDtcbiAgICBsb2Rhc2guZWFjaFJpZ2h0ID0gZm9yRWFjaFJpZ2h0O1xuICAgIGxvZGFzaC5leHRlbmQgPSBhc3NpZ247XG4gICAgbG9kYXNoLml0ZXJhdGVlID0gY2FsbGJhY2s7XG4gICAgbG9kYXNoLm1ldGhvZHMgPSBmdW5jdGlvbnM7XG4gICAgbG9kYXNoLm9iamVjdCA9IHppcE9iamVjdDtcbiAgICBsb2Rhc2guc2VsZWN0ID0gZmlsdGVyO1xuICAgIGxvZGFzaC50YWlsID0gcmVzdDtcbiAgICBsb2Rhc2gudW5pcXVlID0gdW5pcTtcblxuICAgIC8vIEFkZCBmdW5jdGlvbnMgdG8gYGxvZGFzaC5wcm90b3R5cGVgLlxuICAgIG1peGluKGxvZGFzaCwgbG9kYXNoKTtcblxuICAgIC8vIEFkZCBmdW5jdGlvbnMgdGhhdCByZXR1cm4gdW53cmFwcGVkIHZhbHVlcyB3aGVuIGNoYWluaW5nLlxuICAgIGxvZGFzaC5hZGQgPSBhZGQ7XG4gICAgbG9kYXNoLmF0dGVtcHQgPSBhdHRlbXB0O1xuICAgIGxvZGFzaC5jYW1lbENhc2UgPSBjYW1lbENhc2U7XG4gICAgbG9kYXNoLmNhcGl0YWxpemUgPSBjYXBpdGFsaXplO1xuICAgIGxvZGFzaC5jbG9uZSA9IGNsb25lO1xuICAgIGxvZGFzaC5jbG9uZURlZXAgPSBjbG9uZURlZXA7XG4gICAgbG9kYXNoLmRlYnVyciA9IGRlYnVycjtcbiAgICBsb2Rhc2guZW5kc1dpdGggPSBlbmRzV2l0aDtcbiAgICBsb2Rhc2guZXNjYXBlID0gZXNjYXBlO1xuICAgIGxvZGFzaC5lc2NhcGVSZWdFeHAgPSBlc2NhcGVSZWdFeHA7XG4gICAgbG9kYXNoLmV2ZXJ5ID0gZXZlcnk7XG4gICAgbG9kYXNoLmZpbmQgPSBmaW5kO1xuICAgIGxvZGFzaC5maW5kSW5kZXggPSBmaW5kSW5kZXg7XG4gICAgbG9kYXNoLmZpbmRLZXkgPSBmaW5kS2V5O1xuICAgIGxvZGFzaC5maW5kTGFzdCA9IGZpbmRMYXN0O1xuICAgIGxvZGFzaC5maW5kTGFzdEluZGV4ID0gZmluZExhc3RJbmRleDtcbiAgICBsb2Rhc2guZmluZExhc3RLZXkgPSBmaW5kTGFzdEtleTtcbiAgICBsb2Rhc2guZmluZFdoZXJlID0gZmluZFdoZXJlO1xuICAgIGxvZGFzaC5maXJzdCA9IGZpcnN0O1xuICAgIGxvZGFzaC5nZXQgPSBnZXQ7XG4gICAgbG9kYXNoLmhhcyA9IGhhcztcbiAgICBsb2Rhc2guaWRlbnRpdHkgPSBpZGVudGl0eTtcbiAgICBsb2Rhc2guaW5jbHVkZXMgPSBpbmNsdWRlcztcbiAgICBsb2Rhc2guaW5kZXhPZiA9IGluZGV4T2Y7XG4gICAgbG9kYXNoLmluUmFuZ2UgPSBpblJhbmdlO1xuICAgIGxvZGFzaC5pc0FyZ3VtZW50cyA9IGlzQXJndW1lbnRzO1xuICAgIGxvZGFzaC5pc0FycmF5ID0gaXNBcnJheTtcbiAgICBsb2Rhc2guaXNCb29sZWFuID0gaXNCb29sZWFuO1xuICAgIGxvZGFzaC5pc0RhdGUgPSBpc0RhdGU7XG4gICAgbG9kYXNoLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbiAgICBsb2Rhc2guaXNFbXB0eSA9IGlzRW1wdHk7XG4gICAgbG9kYXNoLmlzRXF1YWwgPSBpc0VxdWFsO1xuICAgIGxvZGFzaC5pc0Vycm9yID0gaXNFcnJvcjtcbiAgICBsb2Rhc2guaXNGaW5pdGUgPSBpc0Zpbml0ZTtcbiAgICBsb2Rhc2guaXNGdW5jdGlvbiA9IGlzRnVuY3Rpb247XG4gICAgbG9kYXNoLmlzTWF0Y2ggPSBpc01hdGNoO1xuICAgIGxvZGFzaC5pc05hTiA9IGlzTmFOO1xuICAgIGxvZGFzaC5pc05hdGl2ZSA9IGlzTmF0aXZlO1xuICAgIGxvZGFzaC5pc051bGwgPSBpc051bGw7XG4gICAgbG9kYXNoLmlzTnVtYmVyID0gaXNOdW1iZXI7XG4gICAgbG9kYXNoLmlzT2JqZWN0ID0gaXNPYmplY3Q7XG4gICAgbG9kYXNoLmlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0O1xuICAgIGxvZGFzaC5pc1JlZ0V4cCA9IGlzUmVnRXhwO1xuICAgIGxvZGFzaC5pc1N0cmluZyA9IGlzU3RyaW5nO1xuICAgIGxvZGFzaC5pc1R5cGVkQXJyYXkgPSBpc1R5cGVkQXJyYXk7XG4gICAgbG9kYXNoLmlzVW5kZWZpbmVkID0gaXNVbmRlZmluZWQ7XG4gICAgbG9kYXNoLmtlYmFiQ2FzZSA9IGtlYmFiQ2FzZTtcbiAgICBsb2Rhc2gubGFzdCA9IGxhc3Q7XG4gICAgbG9kYXNoLmxhc3RJbmRleE9mID0gbGFzdEluZGV4T2Y7XG4gICAgbG9kYXNoLm1heCA9IG1heDtcbiAgICBsb2Rhc2gubWluID0gbWluO1xuICAgIGxvZGFzaC5ub0NvbmZsaWN0ID0gbm9Db25mbGljdDtcbiAgICBsb2Rhc2gubm9vcCA9IG5vb3A7XG4gICAgbG9kYXNoLm5vdyA9IG5vdztcbiAgICBsb2Rhc2gucGFkID0gcGFkO1xuICAgIGxvZGFzaC5wYWRMZWZ0ID0gcGFkTGVmdDtcbiAgICBsb2Rhc2gucGFkUmlnaHQgPSBwYWRSaWdodDtcbiAgICBsb2Rhc2gucGFyc2VJbnQgPSBwYXJzZUludDtcbiAgICBsb2Rhc2gucmFuZG9tID0gcmFuZG9tO1xuICAgIGxvZGFzaC5yZWR1Y2UgPSByZWR1Y2U7XG4gICAgbG9kYXNoLnJlZHVjZVJpZ2h0ID0gcmVkdWNlUmlnaHQ7XG4gICAgbG9kYXNoLnJlcGVhdCA9IHJlcGVhdDtcbiAgICBsb2Rhc2gucmVzdWx0ID0gcmVzdWx0O1xuICAgIGxvZGFzaC5ydW5JbkNvbnRleHQgPSBydW5JbkNvbnRleHQ7XG4gICAgbG9kYXNoLnNpemUgPSBzaXplO1xuICAgIGxvZGFzaC5zbmFrZUNhc2UgPSBzbmFrZUNhc2U7XG4gICAgbG9kYXNoLnNvbWUgPSBzb21lO1xuICAgIGxvZGFzaC5zb3J0ZWRJbmRleCA9IHNvcnRlZEluZGV4O1xuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXggPSBzb3J0ZWRMYXN0SW5kZXg7XG4gICAgbG9kYXNoLnN0YXJ0Q2FzZSA9IHN0YXJ0Q2FzZTtcbiAgICBsb2Rhc2guc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4gICAgbG9kYXNoLnN1bSA9IHN1bTtcbiAgICBsb2Rhc2gudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICBsb2Rhc2gudHJpbSA9IHRyaW07XG4gICAgbG9kYXNoLnRyaW1MZWZ0ID0gdHJpbUxlZnQ7XG4gICAgbG9kYXNoLnRyaW1SaWdodCA9IHRyaW1SaWdodDtcbiAgICBsb2Rhc2gudHJ1bmMgPSB0cnVuYztcbiAgICBsb2Rhc2gudW5lc2NhcGUgPSB1bmVzY2FwZTtcbiAgICBsb2Rhc2gudW5pcXVlSWQgPSB1bmlxdWVJZDtcbiAgICBsb2Rhc2gud29yZHMgPSB3b3JkcztcblxuICAgIC8vIEFkZCBhbGlhc2VzLlxuICAgIGxvZGFzaC5hbGwgPSBldmVyeTtcbiAgICBsb2Rhc2guYW55ID0gc29tZTtcbiAgICBsb2Rhc2guY29udGFpbnMgPSBpbmNsdWRlcztcbiAgICBsb2Rhc2guZGV0ZWN0ID0gZmluZDtcbiAgICBsb2Rhc2guZm9sZGwgPSByZWR1Y2U7XG4gICAgbG9kYXNoLmZvbGRyID0gcmVkdWNlUmlnaHQ7XG4gICAgbG9kYXNoLmhlYWQgPSBmaXJzdDtcbiAgICBsb2Rhc2guaW5jbHVkZSA9IGluY2x1ZGVzO1xuICAgIGxvZGFzaC5pbmplY3QgPSByZWR1Y2U7XG5cbiAgICBtaXhpbihsb2Rhc2gsIChmdW5jdGlvbigpIHtcbiAgICAgIHZhciBzb3VyY2UgPSB7fTtcbiAgICAgIGJhc2VGb3JPd24obG9kYXNoLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICAgIGlmICghbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSkge1xuICAgICAgICAgIHNvdXJjZVttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICB9KCkpLCBmYWxzZSk7XG5cbiAgICAvLyBBZGQgZnVuY3Rpb25zIGNhcGFibGUgb2YgcmV0dXJuaW5nIHdyYXBwZWQgYW5kIHVud3JhcHBlZCB2YWx1ZXMgd2hlbiBjaGFpbmluZy5cbiAgICBsb2Rhc2guc2FtcGxlID0gc2FtcGxlO1xuXG4gICAgbG9kYXNoLnByb3RvdHlwZS5zYW1wbGUgPSBmdW5jdGlvbihuKSB7XG4gICAgICBpZiAoIXRoaXMuX19jaGFpbl9fICYmIG4gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gc2FtcGxlKHRoaXMudmFsdWUoKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy50aHJ1KGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBzYW1wbGUodmFsdWUsIG4pO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIGxvZGFzaC5WRVJTSU9OID0gVkVSU0lPTjtcblxuICAgIC8vIEFzc2lnbiBkZWZhdWx0IHBsYWNlaG9sZGVycy5cbiAgICBhcnJheUVhY2goWydiaW5kJywgJ2JpbmRLZXknLCAnY3VycnknLCAnY3VycnlSaWdodCcsICdwYXJ0aWFsJywgJ3BhcnRpYWxSaWdodCddLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICBsb2Rhc2hbbWV0aG9kTmFtZV0ucGxhY2Vob2xkZXIgPSBsb2Rhc2g7XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIHRoYXQgYWNjZXB0IGFuIGBpdGVyYXRlZWAgdmFsdWUuXG4gICAgYXJyYXlFYWNoKFsnZHJvcFdoaWxlJywgJ2ZpbHRlcicsICdtYXAnLCAndGFrZVdoaWxlJ10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIHR5cGUpIHtcbiAgICAgIHZhciBpc0ZpbHRlciA9IHR5cGUgIT0gTEFaWV9NQVBfRkxBRyxcbiAgICAgICAgICBpc0Ryb3BXaGlsZSA9IHR5cGUgPT0gTEFaWV9EUk9QX1dISUxFX0ZMQUc7XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gICAgICAgIHZhciBmaWx0ZXJlZCA9IHRoaXMuX19maWx0ZXJlZF9fLFxuICAgICAgICAgICAgcmVzdWx0ID0gKGZpbHRlcmVkICYmIGlzRHJvcFdoaWxlKSA/IG5ldyBMYXp5V3JhcHBlcih0aGlzKSA6IHRoaXMuY2xvbmUoKSxcbiAgICAgICAgICAgIGl0ZXJhdGVlcyA9IHJlc3VsdC5fX2l0ZXJhdGVlc19fIHx8IChyZXN1bHQuX19pdGVyYXRlZXNfXyA9IFtdKTtcblxuICAgICAgICBpdGVyYXRlZXMucHVzaCh7XG4gICAgICAgICAgJ2RvbmUnOiBmYWxzZSxcbiAgICAgICAgICAnY291bnQnOiAwLFxuICAgICAgICAgICdpbmRleCc6IDAsXG4gICAgICAgICAgJ2l0ZXJhdGVlJzogZ2V0Q2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDEpLFxuICAgICAgICAgICdsaW1pdCc6IC0xLFxuICAgICAgICAgICd0eXBlJzogdHlwZVxuICAgICAgICB9KTtcblxuICAgICAgICByZXN1bHQuX19maWx0ZXJlZF9fID0gZmlsdGVyZWQgfHwgaXNGaWx0ZXI7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uZHJvcGAgYW5kIGBfLnRha2VgIHZhcmlhbnRzLlxuICAgIGFycmF5RWFjaChbJ2Ryb3AnLCAndGFrZSddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgdmFyIHdoaWxlTmFtZSA9IG1ldGhvZE5hbWUgKyAnV2hpbGUnO1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbihuKSB7XG4gICAgICAgIHZhciBmaWx0ZXJlZCA9IHRoaXMuX19maWx0ZXJlZF9fLFxuICAgICAgICAgICAgcmVzdWx0ID0gKGZpbHRlcmVkICYmICFpbmRleCkgPyB0aGlzLmRyb3BXaGlsZSgpIDogdGhpcy5jbG9uZSgpO1xuXG4gICAgICAgIG4gPSBuID09IG51bGwgPyAxIDogbmF0aXZlTWF4KGZsb29yKG4pIHx8IDAsIDApO1xuICAgICAgICBpZiAoZmlsdGVyZWQpIHtcbiAgICAgICAgICBpZiAoaW5kZXgpIHtcbiAgICAgICAgICAgIHJlc3VsdC5fX3Rha2VDb3VudF9fID0gbmF0aXZlTWluKHJlc3VsdC5fX3Rha2VDb3VudF9fLCBuKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFzdChyZXN1bHQuX19pdGVyYXRlZXNfXykubGltaXQgPSBuO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgdmlld3MgPSByZXN1bHQuX192aWV3c19fIHx8IChyZXN1bHQuX192aWV3c19fID0gW10pO1xuICAgICAgICAgIHZpZXdzLnB1c2goeyAnc2l6ZSc6IG4sICd0eXBlJzogbWV0aG9kTmFtZSArIChyZXN1bHQuX19kaXJfXyA8IDAgPyAnUmlnaHQnIDogJycpIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZSArICdSaWdodCddID0gZnVuY3Rpb24obikge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKClbbWV0aG9kTmFtZV0obikucmV2ZXJzZSgpO1xuICAgICAgfTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWUgKyAnUmlnaHRXaGlsZSddID0gZnVuY3Rpb24ocHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKVt3aGlsZU5hbWVdKHByZWRpY2F0ZSwgdGhpc0FyZykucmV2ZXJzZSgpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmZpcnN0YCBhbmQgYF8ubGFzdGAuXG4gICAgYXJyYXlFYWNoKFsnZmlyc3QnLCAnbGFzdCddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgdmFyIHRha2VOYW1lID0gJ3Rha2UnICsgKGluZGV4ID8gJ1JpZ2h0JyA6ICcnKTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW3Rha2VOYW1lXSgxKS52YWx1ZSgpWzBdO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmluaXRpYWxgIGFuZCBgXy5yZXN0YC5cbiAgICBhcnJheUVhY2goWydpbml0aWFsJywgJ3Jlc3QnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBkcm9wTmFtZSA9ICdkcm9wJyArIChpbmRleCA/ICcnIDogJ1JpZ2h0Jyk7XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tkcm9wTmFtZV0oMSk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8ucGx1Y2tgIGFuZCBgXy53aGVyZWAuXG4gICAgYXJyYXlFYWNoKFsncGx1Y2snLCAnd2hlcmUnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBvcGVyYXRpb25OYW1lID0gaW5kZXggPyAnZmlsdGVyJyA6ICdtYXAnLFxuICAgICAgICAgIGNyZWF0ZUNhbGxiYWNrID0gaW5kZXggPyBiYXNlTWF0Y2hlcyA6IHByb3BlcnR5O1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpc1tvcGVyYXRpb25OYW1lXShjcmVhdGVDYWxsYmFjayh2YWx1ZSkpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jb21wYWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIoaWRlbnRpdHkpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUucmVqZWN0ID0gZnVuY3Rpb24ocHJlZGljYXRlLCB0aGlzQXJnKSB7XG4gICAgICBwcmVkaWNhdGUgPSBnZXRDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiAhcHJlZGljYXRlKHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7XG4gICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogKCtzdGFydCB8fCAwKTtcblxuICAgICAgdmFyIHJlc3VsdCA9IHRoaXM7XG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMudGFrZVJpZ2h0KC1zdGFydCk7XG4gICAgICB9IGVsc2UgaWYgKHN0YXJ0KSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZHJvcChzdGFydCk7XG4gICAgICB9XG4gICAgICBpZiAoZW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZW5kID0gKCtlbmQgfHwgMCk7XG4gICAgICAgIHJlc3VsdCA9IGVuZCA8IDAgPyByZXN1bHQuZHJvcFJpZ2h0KC1lbmQpIDogcmVzdWx0LnRha2UoZW5kIC0gc3RhcnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmRyb3AoMCk7XG4gICAgfTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgdG8gYGxvZGFzaC5wcm90b3R5cGVgLlxuICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgbG9kYXNoRnVuYyA9IGxvZGFzaFttZXRob2ROYW1lXTtcbiAgICAgIGlmICghbG9kYXNoRnVuYykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgY2hlY2tJdGVyYXRlZSA9IC9eKD86ZmlsdGVyfG1hcHxyZWplY3QpfFdoaWxlJC8udGVzdChtZXRob2ROYW1lKSxcbiAgICAgICAgICByZXRVbndyYXBwZWQgPSAvXig/OmZpcnN0fGxhc3QpJC8udGVzdChtZXRob2ROYW1lKTtcblxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICAgIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX18sXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX193cmFwcGVkX18sXG4gICAgICAgICAgICBpc0h5YnJpZCA9ICEhdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgsXG4gICAgICAgICAgICBpc0xhenkgPSB2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyLFxuICAgICAgICAgICAgaXRlcmF0ZWUgPSBhcmdzWzBdLFxuICAgICAgICAgICAgdXNlTGF6eSA9IGlzTGF6eSB8fCBpc0FycmF5KHZhbHVlKTtcblxuICAgICAgICBpZiAodXNlTGF6eSAmJiBjaGVja0l0ZXJhdGVlICYmIHR5cGVvZiBpdGVyYXRlZSA9PSAnZnVuY3Rpb24nICYmIGl0ZXJhdGVlLmxlbmd0aCAhPSAxKSB7XG4gICAgICAgICAgLy8gYXZvaWQgbGF6eSB1c2UgaWYgdGhlIGl0ZXJhdGVlIGhhcyBhIFwibGVuZ3RoXCIgdmFsdWUgb3RoZXIgdGhhbiBgMWBcbiAgICAgICAgICBpc0xhenkgPSB1c2VMYXp5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9ubHlMYXp5ID0gaXNMYXp5ICYmICFpc0h5YnJpZDtcbiAgICAgICAgaWYgKHJldFVud3JhcHBlZCAmJiAhY2hhaW5BbGwpIHtcbiAgICAgICAgICByZXR1cm4gb25seUxhenlcbiAgICAgICAgICAgID8gZnVuYy5jYWxsKHZhbHVlKVxuICAgICAgICAgICAgOiBsb2Rhc2hGdW5jLmNhbGwobG9kYXNoLCB0aGlzLnZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbnRlcmNlcHRvciA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIG90aGVyQXJncyA9IFt2YWx1ZV07XG4gICAgICAgICAgcHVzaC5hcHBseShvdGhlckFyZ3MsIGFyZ3MpO1xuICAgICAgICAgIHJldHVybiBsb2Rhc2hGdW5jLmFwcGx5KGxvZGFzaCwgb3RoZXJBcmdzKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHVzZUxhenkpIHtcbiAgICAgICAgICB2YXIgd3JhcHBlciA9IG9ubHlMYXp5ID8gdmFsdWUgOiBuZXcgTGF6eVdyYXBwZXIodGhpcyksXG4gICAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkod3JhcHBlciwgYXJncyk7XG5cbiAgICAgICAgICBpZiAoIXJldFVud3JhcHBlZCAmJiAoaXNIeWJyaWQgfHwgcmVzdWx0Ll9fYWN0aW9uc19fKSkge1xuICAgICAgICAgICAgdmFyIGFjdGlvbnMgPSByZXN1bHQuX19hY3Rpb25zX18gfHwgKHJlc3VsdC5fX2FjdGlvbnNfXyA9IFtdKTtcbiAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7ICdmdW5jJzogdGhydSwgJ2FyZ3MnOiBbaW50ZXJjZXB0b3JdLCAndGhpc0FyZyc6IGxvZGFzaCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHJlc3VsdCwgY2hhaW5BbGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRocnUoaW50ZXJjZXB0b3IpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgQXJyYXlgIGFuZCBgU3RyaW5nYCBtZXRob2RzIHRvIGBsb2Rhc2gucHJvdG90eXBlYC5cbiAgICBhcnJheUVhY2goWydjb25jYXQnLCAnam9pbicsICdwb3AnLCAncHVzaCcsICdyZXBsYWNlJywgJ3NoaWZ0JywgJ3NvcnQnLCAnc3BsaWNlJywgJ3NwbGl0JywgJ3Vuc2hpZnQnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xuICAgICAgdmFyIHByb3RvRnVuYyA9ICgvXig/OnJlcGxhY2V8c3BsaXQpJC8udGVzdChtZXRob2ROYW1lKSA/IHN0cmluZ1Byb3RvIDogYXJyYXlQcm90bylbbWV0aG9kTmFtZV0sXG4gICAgICAgICAgY2hhaW5OYW1lID0gL14oPzpwdXNofHNvcnR8dW5zaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpID8gJ3RhcCcgOiAndGhydScsXG4gICAgICAgICAgZml4T2JqZWN0cyA9ICFzdXBwb3J0LnNwbGljZU9iamVjdHMgJiYgL14oPzpwb3B8c2hpZnR8c3BsaWNlKSQvLnRlc3QobWV0aG9kTmFtZSksXG4gICAgICAgICAgcmV0VW53cmFwcGVkID0gL14oPzpqb2lufHBvcHxyZXBsYWNlfHNoaWZ0KSQvLnRlc3QobWV0aG9kTmFtZSk7XG5cbiAgICAgIC8vIEF2b2lkIGFycmF5LWxpa2Ugb2JqZWN0IGJ1Z3Mgd2l0aCBgQXJyYXkjc2hpZnRgIGFuZCBgQXJyYXkjc3BsaWNlYCBpblxuICAgICAgLy8gSUUgPCA5LCBGaXJlZm94IDwgMTAsIE5hcndoYWwsIGFuZCBSaW5nb0pTLlxuICAgICAgdmFyIGZ1bmMgPSAhZml4T2JqZWN0cyA/IHByb3RvRnVuYyA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcHJvdG9GdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzWzBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuXG4gICAgICBsb2Rhc2gucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBpZiAocmV0VW53cmFwcGVkICYmICF0aGlzLl9fY2hhaW5fXykge1xuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMudmFsdWUoKSwgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXNbY2hhaW5OYW1lXShmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHZhbHVlLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gTWFwIG1pbmlmaWVkIGZ1bmN0aW9uIG5hbWVzIHRvIHRoZWlyIHJlYWwgbmFtZXMuXG4gICAgYmFzZUZvck93bihMYXp5V3JhcHBlci5wcm90b3R5cGUsIGZ1bmN0aW9uKGZ1bmMsIG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBsb2Rhc2hGdW5jID0gbG9kYXNoW21ldGhvZE5hbWVdO1xuICAgICAgaWYgKGxvZGFzaEZ1bmMpIHtcbiAgICAgICAgdmFyIGtleSA9IGxvZGFzaEZ1bmMubmFtZSxcbiAgICAgICAgICAgIG5hbWVzID0gcmVhbE5hbWVzW2tleV0gfHwgKHJlYWxOYW1lc1trZXldID0gW10pO1xuXG4gICAgICAgIG5hbWVzLnB1c2goeyAnbmFtZSc6IG1ldGhvZE5hbWUsICdmdW5jJzogbG9kYXNoRnVuYyB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlYWxOYW1lc1tjcmVhdGVIeWJyaWRXcmFwcGVyKG51bGwsIEJJTkRfS0VZX0ZMQUcpLm5hbWVdID0gW3sgJ25hbWUnOiAnd3JhcHBlcicsICdmdW5jJzogbnVsbCB9XTtcblxuICAgIC8vIEFkZCBmdW5jdGlvbnMgdG8gdGhlIGxhenkgd3JhcHBlci5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY2xvbmUgPSBsYXp5Q2xvbmU7XG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnJldmVyc2UgPSBsYXp5UmV2ZXJzZTtcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudmFsdWUgPSBsYXp5VmFsdWU7XG5cbiAgICAvLyBBZGQgY2hhaW5pbmcgZnVuY3Rpb25zIHRvIHRoZSBgbG9kYXNoYCB3cmFwcGVyLlxuICAgIGxvZGFzaC5wcm90b3R5cGUuY2hhaW4gPSB3cmFwcGVyQ2hhaW47XG4gICAgbG9kYXNoLnByb3RvdHlwZS5jb21taXQgPSB3cmFwcGVyQ29tbWl0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUucGxhbnQgPSB3cmFwcGVyUGxhbnQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5yZXZlcnNlID0gd3JhcHBlclJldmVyc2U7XG4gICAgbG9kYXNoLnByb3RvdHlwZS50b1N0cmluZyA9IHdyYXBwZXJUb1N0cmluZztcbiAgICBsb2Rhc2gucHJvdG90eXBlLnJ1biA9IGxvZGFzaC5wcm90b3R5cGUudG9KU09OID0gbG9kYXNoLnByb3RvdHlwZS52YWx1ZU9mID0gbG9kYXNoLnByb3RvdHlwZS52YWx1ZSA9IHdyYXBwZXJWYWx1ZTtcblxuICAgIC8vIEFkZCBmdW5jdGlvbiBhbGlhc2VzIHRvIHRoZSBgbG9kYXNoYCB3cmFwcGVyLlxuICAgIGxvZGFzaC5wcm90b3R5cGUuY29sbGVjdCA9IGxvZGFzaC5wcm90b3R5cGUubWFwO1xuICAgIGxvZGFzaC5wcm90b3R5cGUuaGVhZCA9IGxvZGFzaC5wcm90b3R5cGUuZmlyc3Q7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5zZWxlY3QgPSBsb2Rhc2gucHJvdG90eXBlLmZpbHRlcjtcbiAgICBsb2Rhc2gucHJvdG90eXBlLnRhaWwgPSBsb2Rhc2gucHJvdG90eXBlLnJlc3Q7XG5cbiAgICByZXR1cm4gbG9kYXNoO1xuICB9XG5cbiAgLy8gRXhwb3J0IGxvZGFzaC5cbiAgdmFyIF8gPSBydW5JbkNvbnRleHQoKTtcblxuICAvLyBTb21lIEFNRCBidWlsZCBvcHRpbWl6ZXJzIGxpa2Ugci5qcyBjaGVjayBmb3IgY29uZGl0aW9uIHBhdHRlcm5zIGxpa2UgdGhlIGZvbGxvd2luZzpcbiAgaWYgKHR5cGVvZiBkZWZpbmUgPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PSAnb2JqZWN0JyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgLy8gRXhwb3NlIGxvZGFzaCB0byB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGFuIEFNRCBsb2FkZXIgaXMgcHJlc2VudCB0byBhdm9pZFxuICAgIC8vIGVycm9ycyBpbiBjYXNlcyB3aGVyZSBsb2Rhc2ggaXMgbG9hZGVkIGJ5IGEgc2NyaXB0IHRhZyBhbmQgbm90IGludGVuZGVkXG4gICAgLy8gYXMgYW4gQU1EIG1vZHVsZS4gU2VlIGh0dHA6Ly9yZXF1aXJlanMub3JnL2RvY3MvZXJyb3JzLmh0bWwjbWlzbWF0Y2ggZm9yXG4gICAgLy8gbW9yZSBkZXRhaWxzLlxuICAgIHJvb3QuXyA9IF87XG5cbiAgICAvLyBEZWZpbmUgYXMgYW4gYW5vbnltb3VzIG1vZHVsZSBzbywgdGhyb3VnaCBwYXRoIG1hcHBpbmcsIGl0IGNhbiBiZVxuICAgIC8vIHJlZmVyZW5jZWQgYXMgdGhlIFwidW5kZXJzY29yZVwiIG1vZHVsZS5cbiAgICBkZWZpbmUoZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXztcbiAgICB9KTtcbiAgfVxuICAvLyBDaGVjayBmb3IgYGV4cG9ydHNgIGFmdGVyIGBkZWZpbmVgIGluIGNhc2UgYSBidWlsZCBvcHRpbWl6ZXIgYWRkcyBhbiBgZXhwb3J0c2Agb2JqZWN0LlxuICBlbHNlIGlmIChmcmVlRXhwb3J0cyAmJiBmcmVlTW9kdWxlKSB7XG4gICAgLy8gRXhwb3J0IGZvciBOb2RlLmpzIG9yIFJpbmdvSlMuXG4gICAgaWYgKG1vZHVsZUV4cG9ydHMpIHtcbiAgICAgIChmcmVlTW9kdWxlLmV4cG9ydHMgPSBfKS5fID0gXztcbiAgICB9XG4gICAgLy8gRXhwb3J0IGZvciBOYXJ3aGFsIG9yIFJoaW5vIC1yZXF1aXJlLlxuICAgIGVsc2Uge1xuICAgICAgZnJlZUV4cG9ydHMuXyA9IF87XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIC8vIEV4cG9ydCBmb3IgYSBicm93c2VyIG9yIFJoaW5vLlxuICAgIHJvb3QuXyA9IF87XG4gIH1cbn0uY2FsbCh0aGlzKSk7XG4iLCIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5Q29weShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheUNvcHk7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5mb3JFYWNoYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBhcnJheUVhY2goYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSA9PT0gZmFsc2UpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlFYWNoO1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWFwYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheU1hcDtcbiIsInZhciBiYXNlQ29weSA9IHJlcXVpcmUoJy4vYmFzZUNvcHknKSxcbiAgICBnZXRTeW1ib2xzID0gcmVxdWlyZSgnLi9nZXRTeW1ib2xzJyksXG4gICAgaXNOYXRpdmUgPSByZXF1aXJlKCcuLi9sYW5nL2lzTmF0aXZlJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyk7XG5cbi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgcHJldmVudEV4dGVuc2lvbnMgPSBpc05hdGl2ZShwcmV2ZW50RXh0ZW5zaW9ucyA9IE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgcHJldmVudEV4dGVuc2lvbnM7XG5cbi8qKiBVc2VkIGFzIGBiYXNlQXNzaWduYC4gKi9cbnZhciBuYXRpdmVBc3NpZ24gPSAoZnVuY3Rpb24oKSB7XG4gIC8vIEF2b2lkIGBPYmplY3QuYXNzaWduYCBpbiBGaXJlZm94IDM0LTM3IHdoaWNoIGhhdmUgYW4gZWFybHkgaW1wbGVtZW50YXRpb25cbiAgLy8gd2l0aCBhIG5vdyBkZWZ1bmN0IHRyeS9jYXRjaCBiZWhhdmlvci4gU2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzNDRcbiAgLy8gZm9yIG1vcmUgZGV0YWlscy5cbiAgLy9cbiAgLy8gVXNlIGBPYmplY3QucHJldmVudEV4dGVuc2lvbnNgIG9uIGEgcGxhaW4gb2JqZWN0IGluc3RlYWQgb2Ygc2ltcGx5IHVzaW5nXG4gIC8vIGBPYmplY3QoJ3gnKWAgYmVjYXVzZSBDaHJvbWUgYW5kIElFIGZhaWwgdG8gdGhyb3cgYW4gZXJyb3Igd2hlbiBhdHRlbXB0aW5nXG4gIC8vIHRvIGFzc2lnbiB2YWx1ZXMgdG8gcmVhZG9ubHkgaW5kZXhlcyBvZiBzdHJpbmdzLlxuICB2YXIgZnVuYyA9IHByZXZlbnRFeHRlbnNpb25zICYmIGlzTmF0aXZlKGZ1bmMgPSBPYmplY3QuYXNzaWduKSAmJiBmdW5jO1xuICB0cnkge1xuICAgIGlmIChmdW5jKSB7XG4gICAgICB2YXIgb2JqZWN0ID0gcHJldmVudEV4dGVuc2lvbnMoeyAnMSc6IDAgfSk7XG4gICAgICBvYmplY3RbMF0gPSAxO1xuICAgIH1cbiAgfSBjYXRjaChlKSB7XG4gICAgLy8gT25seSBhdHRlbXB0IGluIHN0cmljdCBtb2RlLlxuICAgIHRyeSB7IGZ1bmMob2JqZWN0LCAneG8nKTsgfSBjYXRjaChlKSB7fVxuICAgIHJldHVybiAhb2JqZWN0WzFdICYmIGZ1bmM7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSgpKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmcsXG4gKiBtdWx0aXBsZSBzb3VyY2VzLCBhbmQgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbnZhciBiYXNlQXNzaWduID0gbmF0aXZlQXNzaWduIHx8IGZ1bmN0aW9uKG9iamVjdCwgc291cmNlKSB7XG4gIHJldHVybiBzb3VyY2UgPT0gbnVsbFxuICAgID8gb2JqZWN0XG4gICAgOiBiYXNlQ29weShzb3VyY2UsIGdldFN5bWJvbHMoc291cmNlKSwgYmFzZUNvcHkoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCkpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlQXNzaWduO1xuIiwidmFyIGJhc2VNYXRjaGVzID0gcmVxdWlyZSgnLi9iYXNlTWF0Y2hlcycpLFxuICAgIGJhc2VNYXRjaGVzUHJvcGVydHkgPSByZXF1aXJlKCcuL2Jhc2VNYXRjaGVzUHJvcGVydHknKSxcbiAgICBiaW5kQ2FsbGJhY2sgPSByZXF1aXJlKCcuL2JpbmRDYWxsYmFjaycpLFxuICAgIGlkZW50aXR5ID0gcmVxdWlyZSgnLi4vdXRpbGl0eS9pZGVudGl0eScpLFxuICAgIHByb3BlcnR5ID0gcmVxdWlyZSgnLi4vdXRpbGl0eS9wcm9wZXJ0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNhbGxiYWNrYCB3aGljaCBzdXBwb3J0cyBzcGVjaWZ5aW5nIHRoZVxuICogbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSBbZnVuYz1fLmlkZW50aXR5XSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBhIGNhbGxiYWNrLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJnQ291bnRdIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cbiAqL1xuZnVuY3Rpb24gYmFzZUNhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIGZ1bmM7XG4gIGlmICh0eXBlID09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdGhpc0FyZyA9PT0gdW5kZWZpbmVkXG4gICAgICA/IGZ1bmNcbiAgICAgIDogYmluZENhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KTtcbiAgfVxuICBpZiAoZnVuYyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGlkZW50aXR5O1xuICB9XG4gIGlmICh0eXBlID09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGJhc2VNYXRjaGVzKGZ1bmMpO1xuICB9XG4gIHJldHVybiB0aGlzQXJnID09PSB1bmRlZmluZWRcbiAgICA/IHByb3BlcnR5KGZ1bmMpXG4gICAgOiBiYXNlTWF0Y2hlc1Byb3BlcnR5KGZ1bmMsIHRoaXNBcmcpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDYWxsYmFjaztcbiIsInZhciBhcnJheUNvcHkgPSByZXF1aXJlKCcuL2FycmF5Q29weScpLFxuICAgIGFycmF5RWFjaCA9IHJlcXVpcmUoJy4vYXJyYXlFYWNoJyksXG4gICAgYmFzZUFzc2lnbiA9IHJlcXVpcmUoJy4vYmFzZUFzc2lnbicpLFxuICAgIGJhc2VGb3JPd24gPSByZXF1aXJlKCcuL2Jhc2VGb3JPd24nKSxcbiAgICBpbml0Q2xvbmVBcnJheSA9IHJlcXVpcmUoJy4vaW5pdENsb25lQXJyYXknKSxcbiAgICBpbml0Q2xvbmVCeVRhZyA9IHJlcXVpcmUoJy4vaW5pdENsb25lQnlUYWcnKSxcbiAgICBpbml0Q2xvbmVPYmplY3QgPSByZXF1aXJlKCcuL2luaXRDbG9uZU9iamVjdCcpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJyYXknKSxcbiAgICBpc0hvc3RPYmplY3QgPSByZXF1aXJlKCcuL2lzSG9zdE9iamVjdCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG52YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xuY2xvbmVhYmxlVGFnc1thcmdzVGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlUYWddID1cbmNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9XG5jbG9uZWFibGVUYWdzW2RhdGVUYWddID0gY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9XG5jbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID0gY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9XG5jbG9uZWFibGVUYWdzW2ludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MzJUYWddID1cbmNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3N0cmluZ1RhZ10gPVxuY2xvbmVhYmxlVGFnc1t1aW50OFRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPVxuY2xvbmVhYmxlVGFnc1t1aW50MTZUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbmNsb25lYWJsZVRhZ3NbZXJyb3JUYWddID0gY2xvbmVhYmxlVGFnc1tmdW5jVGFnXSA9XG5jbG9uZWFibGVUYWdzW21hcFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY2xvbmVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmdcbiAqIGFuZCBgdGhpc2AgYmluZGluZyBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nIHZhbHVlcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSBUaGUga2V5IG9mIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCBgdmFsdWVgIGJlbG9uZ3MgdG8uXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBPVtdXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSBvYmplY3RzLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQj1bXV0gQXNzb2NpYXRlcyBjbG9uZXMgd2l0aCBzb3VyY2UgY291bnRlcnBhcnRzLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGNsb25lZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYmFzZUNsb25lKHZhbHVlLCBpc0RlZXAsIGN1c3RvbWl6ZXIsIGtleSwgb2JqZWN0LCBzdGFja0EsIHN0YWNrQikge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoY3VzdG9taXplcikge1xuICAgIHJlc3VsdCA9IG9iamVjdCA/IGN1c3RvbWl6ZXIodmFsdWUsIGtleSwgb2JqZWN0KSA6IGN1c3RvbWl6ZXIodmFsdWUpO1xuICB9XG4gIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSk7XG4gIGlmIChpc0Fycikge1xuICAgIHJlc3VsdCA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcbiAgICBpZiAoIWlzRGVlcCkge1xuICAgICAgcmV0dXJuIGFycmF5Q29weSh2YWx1ZSwgcmVzdWx0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIHRhZyA9IG9ialRvU3RyaW5nLmNhbGwodmFsdWUpLFxuICAgICAgICBpc0Z1bmMgPSB0YWcgPT0gZnVuY1RhZztcblxuICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnIHx8IHRhZyA9PSBhcmdzVGFnIHx8IChpc0Z1bmMgJiYgIW9iamVjdCkpIHtcbiAgICAgIGlmIChpc0hvc3RPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBvYmplY3QgPyB2YWx1ZSA6IHt9O1xuICAgICAgfVxuICAgICAgcmVzdWx0ID0gaW5pdENsb25lT2JqZWN0KGlzRnVuYyA/IHt9IDogdmFsdWUpO1xuICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgcmV0dXJuIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjbG9uZWFibGVUYWdzW3RhZ11cbiAgICAgICAgPyBpbml0Q2xvbmVCeVRhZyh2YWx1ZSwgdGFnLCBpc0RlZXApXG4gICAgICAgIDogKG9iamVjdCA/IHZhbHVlIDoge30pO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcyBhbmQgcmV0dXJuIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gIHN0YWNrQSB8fCAoc3RhY2tBID0gW10pO1xuICBzdGFja0IgfHwgKHN0YWNrQiA9IFtdKTtcblxuICB2YXIgbGVuZ3RoID0gc3RhY2tBLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKHN0YWNrQVtsZW5ndGhdID09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gc3RhY2tCW2xlbmd0aF07XG4gICAgfVxuICB9XG4gIC8vIEFkZCB0aGUgc291cmNlIHZhbHVlIHRvIHRoZSBzdGFjayBvZiB0cmF2ZXJzZWQgb2JqZWN0cyBhbmQgYXNzb2NpYXRlIGl0IHdpdGggaXRzIGNsb25lLlxuICBzdGFja0EucHVzaCh2YWx1ZSk7XG4gIHN0YWNrQi5wdXNoKHJlc3VsdCk7XG5cbiAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgKGlzQXJyID8gYXJyYXlFYWNoIDogYmFzZUZvck93bikodmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXkpIHtcbiAgICByZXN1bHRba2V5XSA9IGJhc2VDbG9uZShzdWJWYWx1ZSwgaXNEZWVwLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFja0EsIHN0YWNrQik7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDbG9uZTtcbiIsIi8qKlxuICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBjb3B5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZUNvcHkoc291cmNlLCBwcm9wcywgb2JqZWN0KSB7XG4gIG9iamVjdCB8fCAob2JqZWN0ID0ge30pO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICBvYmplY3Rba2V5XSA9IHNvdXJjZVtrZXldO1xuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUNvcHk7XG4iLCJ2YXIgYmFzZUZvck93biA9IHJlcXVpcmUoJy4vYmFzZUZvck93bicpLFxuICAgIGNyZWF0ZUJhc2VFYWNoID0gcmVxdWlyZSgnLi9jcmVhdGVCYXNlRWFjaCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckVhY2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R8c3RyaW5nfSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAqL1xudmFyIGJhc2VFYWNoID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93bik7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUVhY2g7XG4iLCJ2YXIgY3JlYXRlQmFzZUZvciA9IHJlcXVpcmUoJy4vY3JlYXRlQmFzZUZvcicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBiYXNlRm9ySW5gIGFuZCBgYmFzZUZvck93bmAgd2hpY2ggaXRlcmF0ZXNcbiAqIG92ZXIgYG9iamVjdGAgcHJvcGVydGllcyByZXR1cm5lZCBieSBga2V5c0Z1bmNgIGludm9raW5nIGBpdGVyYXRlZWAgZm9yXG4gKiBlYWNoIHByb3BlcnR5LiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHlcbiAqIHJldHVybmluZyBgZmFsc2VgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG52YXIgYmFzZUZvciA9IGNyZWF0ZUJhc2VGb3IoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRm9yO1xuIiwidmFyIGJhc2VGb3IgPSByZXF1aXJlKCcuL2Jhc2VGb3InKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5c0luJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9ySW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VGb3JJbihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gIHJldHVybiBiYXNlRm9yKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNJbik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvckluO1xuIiwidmFyIGJhc2VGb3IgPSByZXF1aXJlKCcuL2Jhc2VGb3InKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi4vb2JqZWN0L2tleXMnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VGb3JPd24ob2JqZWN0LCBpdGVyYXRlZSkge1xuICByZXR1cm4gYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRm9yT3duO1xuIiwidmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRgIHdpdGhvdXQgc3VwcG9ydCBmb3Igc3RyaW5nIHBhdGhzXG4gKiBhbmQgZGVmYXVsdCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbcGF0aEtleV0gVGhlIGtleSByZXByZXNlbnRhdGlvbiBvZiBwYXRoLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCwgcGF0aEtleSkge1xuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgaWYgKHBhdGhLZXkgIT09IHVuZGVmaW5lZCAmJiBwYXRoS2V5IGluIG9iamVjdCkge1xuICAgIHBhdGggPSBbcGF0aEtleV07XG4gIH1cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdClbcGF0aFtpbmRleF1dO1xuICB9XG4gIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlR2V0O1xuIiwidmFyIGluZGV4T2ZOYU4gPSByZXF1aXJlKCcuL2luZGV4T2ZOYU4nKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbmRleE9mYCB3aXRob3V0IHN1cHBvcnQgZm9yIGJpbmFyeSBzZWFyY2hlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIGlmICh2YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICByZXR1cm4gaW5kZXhPZk5hTihhcnJheSwgZnJvbUluZGV4KTtcbiAgfVxuICB2YXIgaW5kZXggPSBmcm9tSW5kZXggLSAxLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJbmRleE9mO1xuIiwidmFyIGJhc2VJc0VxdWFsRGVlcCA9IHJlcXVpcmUoJy4vYmFzZUlzRXF1YWxEZWVwJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNFcXVhbGAgd2l0aG91dCBzdXBwb3J0IGZvciBgdGhpc2AgYmluZGluZ1xuICogYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgdmFsdWVzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICAvLyBFeGl0IGVhcmx5IGZvciBpZGVudGljYWwgdmFsdWVzLlxuICBpZiAodmFsdWUgPT09IG90aGVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgdmFyIHZhbFR5cGUgPSB0eXBlb2YgdmFsdWUsXG4gICAgICBvdGhUeXBlID0gdHlwZW9mIG90aGVyO1xuXG4gIC8vIEV4aXQgZWFybHkgZm9yIHVubGlrZSBwcmltaXRpdmUgdmFsdWVzLlxuICBpZiAoKHZhbFR5cGUgIT0gJ2Z1bmN0aW9uJyAmJiB2YWxUeXBlICE9ICdvYmplY3QnICYmIG90aFR5cGUgIT0gJ2Z1bmN0aW9uJyAmJiBvdGhUeXBlICE9ICdvYmplY3QnKSB8fFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fCBvdGhlciA9PSBudWxsKSB7XG4gICAgLy8gUmV0dXJuIGBmYWxzZWAgdW5sZXNzIGJvdGggdmFsdWVzIGFyZSBgTmFOYC5cbiAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcjtcbiAgfVxuICByZXR1cm4gYmFzZUlzRXF1YWxEZWVwKHZhbHVlLCBvdGhlciwgYmFzZUlzRXF1YWwsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNFcXVhbDtcbiIsInZhciBlcXVhbEFycmF5cyA9IHJlcXVpcmUoJy4vZXF1YWxBcnJheXMnKSxcbiAgICBlcXVhbEJ5VGFnID0gcmVxdWlyZSgnLi9lcXVhbEJ5VGFnJyksXG4gICAgZXF1YWxPYmplY3RzID0gcmVxdWlyZSgnLi9lcXVhbE9iamVjdHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNIb3N0T2JqZWN0ID0gcmVxdWlyZSgnLi9pc0hvc3RPYmplY3QnKSxcbiAgICBpc1R5cGVkQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzVHlwZWRBcnJheScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAqIGRlZXAgY29tcGFyaXNvbnMgYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBlbmFibGluZyBvYmplY3RzIHdpdGggY2lyY3VsYXJcbiAqIHJlZmVyZW5jZXMgdG8gYmUgY29tcGFyZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyBvYmplY3RzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBPVtdXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0I9W11dIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc0VxdWFsRGVlcChvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIHZhciBvYmpJc0FyciA9IGlzQXJyYXkob2JqZWN0KSxcbiAgICAgIG90aElzQXJyID0gaXNBcnJheShvdGhlciksXG4gICAgICBvYmpUYWcgPSBhcnJheVRhZyxcbiAgICAgIG90aFRhZyA9IGFycmF5VGFnO1xuXG4gIGlmICghb2JqSXNBcnIpIHtcbiAgICBvYmpUYWcgPSBvYmpUb1N0cmluZy5jYWxsKG9iamVjdCk7XG4gICAgaWYgKG9ialRhZyA9PSBhcmdzVGFnKSB7XG4gICAgICBvYmpUYWcgPSBvYmplY3RUYWc7XG4gICAgfSBlbHNlIGlmIChvYmpUYWcgIT0gb2JqZWN0VGFnKSB7XG4gICAgICBvYmpJc0FyciA9IGlzVHlwZWRBcnJheShvYmplY3QpO1xuICAgIH1cbiAgfVxuICBpZiAoIW90aElzQXJyKSB7XG4gICAgb3RoVGFnID0gb2JqVG9TdHJpbmcuY2FsbChvdGhlcik7XG4gICAgaWYgKG90aFRhZyA9PSBhcmdzVGFnKSB7XG4gICAgICBvdGhUYWcgPSBvYmplY3RUYWc7XG4gICAgfSBlbHNlIGlmIChvdGhUYWcgIT0gb2JqZWN0VGFnKSB7XG4gICAgICBvdGhJc0FyciA9IGlzVHlwZWRBcnJheShvdGhlcik7XG4gICAgfVxuICB9XG4gIHZhciBvYmpJc09iaiA9IG9ialRhZyA9PSBvYmplY3RUYWcgJiYgIWlzSG9zdE9iamVjdChvYmplY3QpLFxuICAgICAgb3RoSXNPYmogPSBvdGhUYWcgPT0gb2JqZWN0VGFnICYmICFpc0hvc3RPYmplY3Qob3RoZXIpLFxuICAgICAgaXNTYW1lVGFnID0gb2JqVGFnID09IG90aFRhZztcblxuICBpZiAoaXNTYW1lVGFnICYmICEob2JqSXNBcnIgfHwgb2JqSXNPYmopKSB7XG4gICAgcmV0dXJuIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgb2JqVGFnKTtcbiAgfVxuICBpZiAoIWlzTG9vc2UpIHtcbiAgICB2YXIgdmFsV3JhcHBlZCA9IG9iaklzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCAnX193cmFwcGVkX18nKSxcbiAgICAgICAgb3RoV3JhcHBlZCA9IG90aElzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsICdfX3dyYXBwZWRfXycpO1xuXG4gICAgaWYgKHZhbFdyYXBwZWQgfHwgb3RoV3JhcHBlZCkge1xuICAgICAgcmV0dXJuIGVxdWFsRnVuYyh2YWxXcmFwcGVkID8gb2JqZWN0LnZhbHVlKCkgOiBvYmplY3QsIG90aFdyYXBwZWQgPyBvdGhlci52YWx1ZSgpIDogb3RoZXIsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICB9XG4gIH1cbiAgaWYgKCFpc1NhbWVUYWcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gQXNzdW1lIGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBkZXRlY3RpbmcgY2lyY3VsYXIgcmVmZXJlbmNlcyBzZWUgaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyNKTy5cbiAgc3RhY2tBIHx8IChzdGFja0EgPSBbXSk7XG4gIHN0YWNrQiB8fCAoc3RhY2tCID0gW10pO1xuXG4gIHZhciBsZW5ndGggPSBzdGFja0EubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICBpZiAoc3RhY2tBW2xlbmd0aF0gPT0gb2JqZWN0KSB7XG4gICAgICByZXR1cm4gc3RhY2tCW2xlbmd0aF0gPT0gb3RoZXI7XG4gICAgfVxuICB9XG4gIC8vIEFkZCBgb2JqZWN0YCBhbmQgYG90aGVyYCB0byB0aGUgc3RhY2sgb2YgdHJhdmVyc2VkIG9iamVjdHMuXG4gIHN0YWNrQS5wdXNoKG9iamVjdCk7XG4gIHN0YWNrQi5wdXNoKG90aGVyKTtcblxuICB2YXIgcmVzdWx0ID0gKG9iaklzQXJyID8gZXF1YWxBcnJheXMgOiBlcXVhbE9iamVjdHMpKG9iamVjdCwgb3RoZXIsIGVxdWFsRnVuYywgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuXG4gIHN0YWNrQS5wb3AoKTtcbiAgc3RhY2tCLnBvcCgpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzRXF1YWxEZWVwO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0Z1bmN0aW9uYCB3aXRob3V0IHN1cHBvcnQgZm9yIGVudmlyb25tZW50c1xuICogd2l0aCBpbmNvcnJlY3QgYHR5cGVvZmAgcmVzdWx0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNGdW5jdGlvbih2YWx1ZSkge1xuICAvLyBBdm9pZCBhIENoYWtyYSBKSVQgYnVnIGluIGNvbXBhdGliaWxpdHkgbW9kZXMgb2YgSUUgMTEuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvaXNzdWVzLzE2MjEgZm9yIG1vcmUgZGV0YWlscy5cbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nIHx8IGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0Z1bmN0aW9uO1xuIiwidmFyIGJhc2VJc0VxdWFsID0gcmVxdWlyZSgnLi9iYXNlSXNFcXVhbCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWF0Y2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBzb3VyY2UgcHJvcGVydHkgbmFtZXMgdG8gbWF0Y2guXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHNvdXJjZSB2YWx1ZXMgdG8gbWF0Y2guXG4gKiBAcGFyYW0ge0FycmF5fSBzdHJpY3RDb21wYXJlRmxhZ3MgU3RyaWN0IGNvbXBhcmlzb24gZmxhZ3MgZm9yIHNvdXJjZSB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc01hdGNoKG9iamVjdCwgcHJvcHMsIHZhbHVlcywgc3RyaWN0Q29tcGFyZUZsYWdzLCBjdXN0b21pemVyKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgbm9DdXN0b21pemVyID0gIWN1c3RvbWl6ZXI7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAoKG5vQ3VzdG9taXplciAmJiBzdHJpY3RDb21wYXJlRmxhZ3NbaW5kZXhdKVxuICAgICAgICAgID8gdmFsdWVzW2luZGV4XSAhPT0gb2JqZWN0W3Byb3BzW2luZGV4XV1cbiAgICAgICAgICA6ICEocHJvcHNbaW5kZXhdIGluIG9iamVjdClcbiAgICAgICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIGluZGV4ID0gLTE7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XSxcbiAgICAgICAgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgc3JjVmFsdWUgPSB2YWx1ZXNbaW5kZXhdO1xuXG4gICAgaWYgKG5vQ3VzdG9taXplciAmJiBzdHJpY3RDb21wYXJlRmxhZ3NbaW5kZXhdKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gb2JqVmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIG9iamVjdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5KSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXN1bHQgPSBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIGN1c3RvbWl6ZXIsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNNYXRjaDtcbiIsInZhciBiYXNlRWFjaCA9IHJlcXVpcmUoJy4vYmFzZUVhY2gnKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXBgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2sgc2hvcnRoYW5kc1xuICogYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYmFzZU1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgIHJlc3VsdFsrK2luZGV4XSA9IGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWFwO1xuIiwidmFyIGJhc2VJc01hdGNoID0gcmVxdWlyZSgnLi9iYXNlSXNNYXRjaCcpLFxuICAgIGNvbnN0YW50ID0gcmVxdWlyZSgnLi4vdXRpbGl0eS9jb25zdGFudCcpLFxuICAgIGlzU3RyaWN0Q29tcGFyYWJsZSA9IHJlcXVpcmUoJy4vaXNTdHJpY3RDb21wYXJhYmxlJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyksXG4gICAgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc2Agd2hpY2ggZG9lcyBub3QgY2xvbmUgYHNvdXJjZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZU1hdGNoZXMoc291cmNlKSB7XG4gIHZhciBwcm9wcyA9IGtleXMoc291cmNlKSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICBpZiAoIWxlbmd0aCkge1xuICAgIHJldHVybiBjb25zdGFudCh0cnVlKTtcbiAgfVxuICBpZiAobGVuZ3RoID09IDEpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbMF0sXG4gICAgICAgIHZhbHVlID0gc291cmNlW2tleV07XG5cbiAgICBpZiAoaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldID09PSB2YWx1ZSAmJiAodmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIG9iamVjdCkpO1xuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgdmFyIHZhbHVlcyA9IEFycmF5KGxlbmd0aCksXG4gICAgICBzdHJpY3RDb21wYXJlRmxhZ3MgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHZhbHVlID0gc291cmNlW3Byb3BzW2xlbmd0aF1dO1xuICAgIHZhbHVlc1tsZW5ndGhdID0gdmFsdWU7XG4gICAgc3RyaWN0Q29tcGFyZUZsYWdzW2xlbmd0aF0gPSBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpO1xuICB9XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgYmFzZUlzTWF0Y2godG9PYmplY3Qob2JqZWN0KSwgcHJvcHMsIHZhbHVlcywgc3RyaWN0Q29tcGFyZUZsYWdzKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWF0Y2hlcztcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9iYXNlR2V0JyksXG4gICAgYmFzZUlzRXF1YWwgPSByZXF1aXJlKCcuL2Jhc2VJc0VxdWFsJyksXG4gICAgYmFzZVNsaWNlID0gcmVxdWlyZSgnLi9iYXNlU2xpY2UnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuL2lzS2V5JyksXG4gICAgaXNTdHJpY3RDb21wYXJhYmxlID0gcmVxdWlyZSgnLi9pc1N0cmljdENvbXBhcmFibGUnKSxcbiAgICBsYXN0ID0gcmVxdWlyZSgnLi4vYXJyYXkvbGFzdCcpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpLFxuICAgIHRvUGF0aCA9IHJlcXVpcmUoJy4vdG9QYXRoJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2VzIG5vdCB3aGljaCBkb2VzXG4gKiBub3QgY2xvbmUgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZU1hdGNoZXNQcm9wZXJ0eShwYXRoLCB2YWx1ZSkge1xuICB2YXIgaXNBcnIgPSBpc0FycmF5KHBhdGgpLFxuICAgICAgaXNDb21tb24gPSBpc0tleShwYXRoKSAmJiBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpLFxuICAgICAgcGF0aEtleSA9IChwYXRoICsgJycpO1xuXG4gIHBhdGggPSB0b1BhdGgocGF0aCk7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGtleSA9IHBhdGhLZXk7XG4gICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgICBpZiAoKGlzQXJyIHx8ICFpc0NvbW1vbikgJiYgIShrZXkgaW4gb2JqZWN0KSkge1xuICAgICAgb2JqZWN0ID0gcGF0aC5sZW5ndGggPT0gMSA/IG9iamVjdCA6IGJhc2VHZXQob2JqZWN0LCBiYXNlU2xpY2UocGF0aCwgMCwgLTEpKTtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBrZXkgPSBsYXN0KHBhdGgpO1xuICAgICAgb2JqZWN0ID0gdG9PYmplY3Qob2JqZWN0KTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdFtrZXldID09PSB2YWx1ZVxuICAgICAgPyAodmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIG9iamVjdCkpXG4gICAgICA6IGJhc2VJc0VxdWFsKHZhbHVlLCBvYmplY3Rba2V5XSwgbnVsbCwgdHJ1ZSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU1hdGNoZXNQcm9wZXJ0eTtcbiIsInZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wcm9wZXJ0eWAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUHJvcGVydHkoa2V5KSB7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiB0b09iamVjdChvYmplY3QpW2tleV07XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVByb3BlcnR5O1xuIiwidmFyIGJhc2VHZXQgPSByZXF1aXJlKCcuL2Jhc2VHZXQnKSxcbiAgICB0b1BhdGggPSByZXF1aXJlKCcuL3RvUGF0aCcpO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVByb3BlcnR5YCB3aGljaCBzdXBwb3J0cyBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VQcm9wZXJ0eURlZXAocGF0aCkge1xuICB2YXIgcGF0aEtleSA9IChwYXRoICsgJycpO1xuICBwYXRoID0gdG9QYXRoKHBhdGgpO1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIGJhc2VHZXQob2JqZWN0LCBwYXRoLCBwYXRoS2V5KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlUHJvcGVydHlEZWVwO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zbGljZWAgd2l0aG91dCBhbiBpdGVyYXRlZSBjYWxsIGd1YXJkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiAoK3N0YXJ0IHx8IDApO1xuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogKGxlbmd0aCArIHN0YXJ0KTtcbiAgfVxuICBlbmQgPSAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gbGVuZ3RoKSA/IGxlbmd0aCA6ICgrZW5kIHx8IDApO1xuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5ndGg7XG4gIH1cbiAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogKChlbmQgLSBzdGFydCkgPj4+IDApO1xuICBzdGFydCA+Pj49IDA7XG5cbiAgdmFyIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGFycmF5W2luZGV4ICsgc3RhcnRdO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVNsaWNlO1xuIiwiLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvbmUuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZFxuICogZm9yIGBudWxsYCBvciBgdW5kZWZpbmVkYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiAodmFsdWUgKyAnJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVRvU3RyaW5nO1xuIiwidmFyIGJpbmFyeUluZGV4QnkgPSByZXF1aXJlKCcuL2JpbmFyeUluZGV4QnknKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbnZhciBNQVhfQVJSQVlfTEVOR1RIID0gTWF0aC5wb3coMiwgMzIpIC0gMSxcbiAgICBIQUxGX01BWF9BUlJBWV9MRU5HVEggPSBNQVhfQVJSQVlfTEVOR1RIID4+PiAxO1xuXG4vKipcbiAqIFBlcmZvcm1zIGEgYmluYXJ5IHNlYXJjaCBvZiBgYXJyYXlgIHRvIGRldGVybWluZSB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxuICogc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0byBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICogIGludG8gYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmluYXJ5SW5kZXgoYXJyYXksIHZhbHVlLCByZXRIaWdoZXN0KSB7XG4gIHZhciBsb3cgPSAwLFxuICAgICAgaGlnaCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogbG93O1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgIHZhciBtaWQgPSAobG93ICsgaGlnaCkgPj4+IDEsXG4gICAgICAgICAgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xuXG4gICAgICBpZiAocmV0SGlnaGVzdCA/IChjb21wdXRlZCA8PSB2YWx1ZSkgOiAoY29tcHV0ZWQgPCB2YWx1ZSkpIHtcbiAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoaWdoO1xuICB9XG4gIHJldHVybiBiaW5hcnlJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaWRlbnRpdHksIHJldEhpZ2hlc3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJpbmFyeUluZGV4O1xuIiwiLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWluID0gTWF0aC5taW47XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHRoZSBtYXhpbXVtIGxlbmd0aCBhbmQgaW5kZXggb2YgYW4gYXJyYXkuICovXG52YXIgTUFYX0FSUkFZX0xFTkdUSCA9IE1hdGgucG93KDIsIDMyKSAtIDEsXG4gICAgTUFYX0FSUkFZX0lOREVYID0gTUFYX0FSUkFZX0xFTkdUSCAtIDE7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBiaW5hcnlJbmRleGAgZXhjZXB0IHRoYXQgaXQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvclxuICogYHZhbHVlYCBhbmQgZWFjaCBlbGVtZW50IG9mIGBhcnJheWAgdG8gY29tcHV0ZSB0aGVpciBzb3J0IHJhbmtpbmcuIFRoZVxuICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKHZhbHVlKS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbcmV0SGlnaGVzdF0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGhpZ2hlc3QgcXVhbGlmaWVkIGluZGV4LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAqICBpbnRvIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGJpbmFyeUluZGV4QnkoYXJyYXksIHZhbHVlLCBpdGVyYXRlZSwgcmV0SGlnaGVzdCkge1xuICB2YWx1ZSA9IGl0ZXJhdGVlKHZhbHVlKTtcblxuICB2YXIgbG93ID0gMCxcbiAgICAgIGhpZ2ggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDAsXG4gICAgICB2YWxJc05hTiA9IHZhbHVlICE9PSB2YWx1ZSxcbiAgICAgIHZhbElzVW5kZWYgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgdmFyIG1pZCA9IGZsb29yKChsb3cgKyBoaWdoKSAvIDIpLFxuICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlKGFycmF5W21pZF0pLFxuICAgICAgICBpc1JlZmxleGl2ZSA9IGNvbXB1dGVkID09PSBjb21wdXRlZDtcblxuICAgIGlmICh2YWxJc05hTikge1xuICAgICAgdmFyIHNldExvdyA9IGlzUmVmbGV4aXZlIHx8IHJldEhpZ2hlc3Q7XG4gICAgfSBlbHNlIGlmICh2YWxJc1VuZGVmKSB7XG4gICAgICBzZXRMb3cgPSBpc1JlZmxleGl2ZSAmJiAocmV0SGlnaGVzdCB8fCBjb21wdXRlZCAhPT0gdW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TG93ID0gcmV0SGlnaGVzdCA/IChjb21wdXRlZCA8PSB2YWx1ZSkgOiAoY29tcHV0ZWQgPCB2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChzZXRMb3cpIHtcbiAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBuYXRpdmVNaW4oaGlnaCwgTUFYX0FSUkFZX0lOREVYKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiaW5hcnlJbmRleEJ5O1xuIiwidmFyIGlkZW50aXR5ID0gcmVxdWlyZSgnLi4vdXRpbGl0eS9pZGVudGl0eScpO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUNhbGxiYWNrYCB3aGljaCBvbmx5IHN1cHBvcnRzIGB0aGlzYCBiaW5kaW5nXG4gKiBhbmQgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYmluZC5cbiAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcmdDb3VudF0gVGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNhbGxiYWNrLlxuICovXG5mdW5jdGlvbiBiaW5kQ2FsbGJhY2soZnVuYywgdGhpc0FyZywgYXJnQ291bnQpIHtcbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gaWRlbnRpdHk7XG4gIH1cbiAgaWYgKHRoaXNBcmcgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmdW5jO1xuICB9XG4gIHN3aXRjaCAoYXJnQ291bnQpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCB2YWx1ZSk7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgICB9O1xuICAgIGNhc2UgNDogcmV0dXJuIGZ1bmN0aW9uKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfTtcbiAgICBjYXNlIDU6IHJldHVybiBmdW5jdGlvbih2YWx1ZSwgb3RoZXIsIGtleSwgb2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUsIG90aGVyLCBrZXksIG9iamVjdCwgc291cmNlKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJpbmRDYWxsYmFjaztcbiIsInZhciBjb25zdGFudCA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvY29uc3RhbnQnKSxcbiAgICBpc05hdGl2ZSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNOYXRpdmUnKTtcblxuLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBBcnJheUJ1ZmZlciA9IGlzTmF0aXZlKEFycmF5QnVmZmVyID0gZ2xvYmFsLkFycmF5QnVmZmVyKSAmJiBBcnJheUJ1ZmZlcixcbiAgICBidWZmZXJTbGljZSA9IGlzTmF0aXZlKGJ1ZmZlclNsaWNlID0gQXJyYXlCdWZmZXIgJiYgbmV3IEFycmF5QnVmZmVyKDApLnNsaWNlKSAmJiBidWZmZXJTbGljZSxcbiAgICBmbG9vciA9IE1hdGguZmxvb3IsXG4gICAgVWludDhBcnJheSA9IGlzTmF0aXZlKFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheSkgJiYgVWludDhBcnJheTtcblxuLyoqIFVzZWQgdG8gY2xvbmUgYXJyYXkgYnVmZmVycy4gKi9cbnZhciBGbG9hdDY0QXJyYXkgPSAoZnVuY3Rpb24oKSB7XG4gIC8vIFNhZmFyaSA1IGVycm9ycyB3aGVuIHVzaW5nIGFuIGFycmF5IGJ1ZmZlciB0byBpbml0aWFsaXplIGEgdHlwZWQgYXJyYXlcbiAgLy8gd2hlcmUgdGhlIGFycmF5IGJ1ZmZlcidzIGBieXRlTGVuZ3RoYCBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgdHlwZWRcbiAgLy8gYXJyYXkncyBgQllURVNfUEVSX0VMRU1FTlRgLlxuICB0cnkge1xuICAgIHZhciBmdW5jID0gaXNOYXRpdmUoZnVuYyA9IGdsb2JhbC5GbG9hdDY0QXJyYXkpICYmIGZ1bmMsXG4gICAgICAgIHJlc3VsdCA9IG5ldyBmdW5jKG5ldyBBcnJheUJ1ZmZlcigxMCksIDAsIDEpICYmIGZ1bmM7XG4gIH0gY2F0Y2goZSkge31cbiAgcmV0dXJuIHJlc3VsdDtcbn0oKSk7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplLCBpbiBieXRlcywgb2YgZWFjaCBgRmxvYXQ2NEFycmF5YCBlbGVtZW50LiAqL1xudmFyIEZMT0FUNjRfQllURVNfUEVSX0VMRU1FTlQgPSBGbG9hdDY0QXJyYXkgPyBGbG9hdDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgOiAwO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgZ2l2ZW4gYXJyYXkgYnVmZmVyLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBidWZmZXIgVGhlIGFycmF5IGJ1ZmZlciB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cbiAqL1xuZnVuY3Rpb24gYnVmZmVyQ2xvbmUoYnVmZmVyKSB7XG4gIHJldHVybiBidWZmZXJTbGljZS5jYWxsKGJ1ZmZlciwgMCk7XG59XG5pZiAoIWJ1ZmZlclNsaWNlKSB7XG4gIC8vIFBoYW50b21KUyBoYXMgYEFycmF5QnVmZmVyYCBhbmQgYFVpbnQ4QXJyYXlgIGJ1dCBub3QgYEZsb2F0NjRBcnJheWAuXG4gIGJ1ZmZlckNsb25lID0gIShBcnJheUJ1ZmZlciAmJiBVaW50OEFycmF5KSA/IGNvbnN0YW50KG51bGwpIDogZnVuY3Rpb24oYnVmZmVyKSB7XG4gICAgdmFyIGJ5dGVMZW5ndGggPSBidWZmZXIuYnl0ZUxlbmd0aCxcbiAgICAgICAgZmxvYXRMZW5ndGggPSBGbG9hdDY0QXJyYXkgPyBmbG9vcihieXRlTGVuZ3RoIC8gRkxPQVQ2NF9CWVRFU19QRVJfRUxFTUVOVCkgOiAwLFxuICAgICAgICBvZmZzZXQgPSBmbG9hdExlbmd0aCAqIEZMT0FUNjRfQllURVNfUEVSX0VMRU1FTlQsXG4gICAgICAgIHJlc3VsdCA9IG5ldyBBcnJheUJ1ZmZlcihieXRlTGVuZ3RoKTtcblxuICAgIGlmIChmbG9hdExlbmd0aCkge1xuICAgICAgdmFyIHZpZXcgPSBuZXcgRmxvYXQ2NEFycmF5KHJlc3VsdCwgMCwgZmxvYXRMZW5ndGgpO1xuICAgICAgdmlldy5zZXQobmV3IEZsb2F0NjRBcnJheShidWZmZXIsIDAsIGZsb2F0TGVuZ3RoKSk7XG4gICAgfVxuICAgIGlmIChieXRlTGVuZ3RoICE9IG9mZnNldCkge1xuICAgICAgdmlldyA9IG5ldyBVaW50OEFycmF5KHJlc3VsdCwgb2Zmc2V0KTtcbiAgICAgIHZpZXcuc2V0KG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgb2Zmc2V0KSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYnVmZmVyQ2xvbmU7XG4iLCJ2YXIgZ2V0TGVuZ3RoID0gcmVxdWlyZSgnLi9nZXRMZW5ndGgnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYGJhc2VFYWNoYCBvciBgYmFzZUVhY2hSaWdodGAgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVCYXNlRWFjaChlYWNoRnVuYywgZnJvbVJpZ2h0KSB7XG4gIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgIHZhciBsZW5ndGggPSBjb2xsZWN0aW9uID8gZ2V0TGVuZ3RoKGNvbGxlY3Rpb24pIDogMDtcbiAgICBpZiAoIWlzTGVuZ3RoKGxlbmd0aCkpIHtcbiAgICAgIHJldHVybiBlYWNoRnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG4gICAgfVxuICAgIHZhciBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xLFxuICAgICAgICBpdGVyYWJsZSA9IHRvT2JqZWN0KGNvbGxlY3Rpb24pO1xuXG4gICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtpbmRleF0sIGluZGV4LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVCYXNlRWFjaDtcbiIsInZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYmFzZSBmdW5jdGlvbiBmb3IgYF8uZm9ySW5gIG9yIGBfLmZvckluUmlnaHRgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VGb3IoZnJvbVJpZ2h0KSB7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzRnVuYykge1xuICAgIHZhciBpdGVyYWJsZSA9IHRvT2JqZWN0KG9iamVjdCksXG4gICAgICAgIHByb3BzID0ga2V5c0Z1bmMob2JqZWN0KSxcbiAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xO1xuXG4gICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUJhc2VGb3I7XG4iLCJ2YXIgYmluZENhbGxiYWNrID0gcmVxdWlyZSgnLi9iaW5kQ2FsbGJhY2snKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGZvciBgXy5mb3JFYWNoYCBvciBgXy5mb3JFYWNoUmlnaHRgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBhcnJheUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbiBhcnJheS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYSBjb2xsZWN0aW9uLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZWFjaCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRm9yRWFjaChhcnJheUZ1bmMsIGVhY2hGdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSwgdGhpc0FyZykge1xuICAgIHJldHVybiAodHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgJiYgdGhpc0FyZyA9PT0gdW5kZWZpbmVkICYmIGlzQXJyYXkoY29sbGVjdGlvbikpXG4gICAgICA/IGFycmF5RnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSlcbiAgICAgIDogZWFjaEZ1bmMoY29sbGVjdGlvbiwgYmluZENhbGxiYWNrKGl0ZXJhdGVlLCB0aGlzQXJnLCAzKSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlRm9yRWFjaDtcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBhcnJheXMgd2l0aCBzdXBwb3J0IGZvclxuICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaW5nIGFycmF5cy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJyYXlzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsQXJyYXlzKGFycmF5LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IHRydWU7XG5cbiAgaWYgKGFyckxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIShpc0xvb3NlICYmIG90aExlbmd0aCA+IGFyckxlbmd0aCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gRGVlcCBjb21wYXJlIHRoZSBjb250ZW50cywgaWdub3Jpbmcgbm9uLW51bWVyaWMgcHJvcGVydGllcy5cbiAgd2hpbGUgKHJlc3VsdCAmJiArK2luZGV4IDwgYXJyTGVuZ3RoKSB7XG4gICAgdmFyIGFyclZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2luZGV4XTtcblxuICAgIHJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgcmVzdWx0ID0gaXNMb29zZVxuICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIGFyclZhbHVlLCBpbmRleClcbiAgICAgICAgOiBjdXN0b21pemVyKGFyclZhbHVlLCBvdGhWYWx1ZSwgaW5kZXgpO1xuICAgIH1cbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICBpZiAoaXNMb29zZSkge1xuICAgICAgICB2YXIgb3RoSW5kZXggPSBvdGhMZW5ndGg7XG4gICAgICAgIHdoaWxlIChvdGhJbmRleC0tKSB7XG4gICAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltvdGhJbmRleF07XG4gICAgICAgICAgcmVzdWx0ID0gKGFyclZhbHVlICYmIGFyclZhbHVlID09PSBvdGhWYWx1ZSkgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gKGFyclZhbHVlICYmIGFyclZhbHVlID09PSBvdGhWYWx1ZSkgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gISFyZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXF1YWxBcnJheXM7XG4iLCIvKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJztcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGNvbXBhcmluZyBvYmplY3RzIG9mXG4gKiB0aGUgc2FtZSBgdG9TdHJpbmdUYWdgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY29tcGFyaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIG9yIGBTdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsdWUgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdHMgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIHRhZykge1xuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgYm9vbFRhZzpcbiAgICBjYXNlIGRhdGVUYWc6XG4gICAgICAvLyBDb2VyY2UgZGF0ZXMgYW5kIGJvb2xlYW5zIHRvIG51bWJlcnMsIGRhdGVzIHRvIG1pbGxpc2Vjb25kcyBhbmQgYm9vbGVhbnNcbiAgICAgIC8vIHRvIGAxYCBvciBgMGAgdHJlYXRpbmcgaW52YWxpZCBkYXRlcyBjb2VyY2VkIHRvIGBOYU5gIGFzIG5vdCBlcXVhbC5cbiAgICAgIHJldHVybiArb2JqZWN0ID09ICtvdGhlcjtcblxuICAgIGNhc2UgZXJyb3JUYWc6XG4gICAgICByZXR1cm4gb2JqZWN0Lm5hbWUgPT0gb3RoZXIubmFtZSAmJiBvYmplY3QubWVzc2FnZSA9PSBvdGhlci5tZXNzYWdlO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAvLyBUcmVhdCBgTmFOYCB2cy4gYE5hTmAgYXMgZXF1YWwuXG4gICAgICByZXR1cm4gKG9iamVjdCAhPSArb2JqZWN0KVxuICAgICAgICA/IG90aGVyICE9ICtvdGhlclxuICAgICAgICA6IG9iamVjdCA9PSArb3RoZXI7XG5cbiAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICBjYXNlIHN0cmluZ1RhZzpcbiAgICAgIC8vIENvZXJjZSByZWdleGVzIHRvIHN0cmluZ3MgYW5kIHRyZWF0IHN0cmluZ3MgcHJpbWl0aXZlcyBhbmQgc3RyaW5nXG4gICAgICAvLyBvYmplY3RzIGFzIGVxdWFsLiBTZWUgaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyN4MTUuMTAuNi40IGZvciBtb3JlIGRldGFpbHMuXG4gICAgICByZXR1cm4gb2JqZWN0ID09IChvdGhlciArICcnKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXF1YWxCeVRhZztcbiIsInZhciBrZXlzID0gcmVxdWlyZSgnLi4vb2JqZWN0L2tleXMnKTtcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3JcbiAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaW5nIHZhbHVlcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbE9iamVjdHMob2JqZWN0LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICB2YXIgb2JqUHJvcHMgPSBrZXlzKG9iamVjdCksXG4gICAgICBvYmpMZW5ndGggPSBvYmpQcm9wcy5sZW5ndGgsXG4gICAgICBvdGhQcm9wcyA9IGtleXMob3RoZXIpLFxuICAgICAgb3RoTGVuZ3RoID0gb3RoUHJvcHMubGVuZ3RoO1xuXG4gIGlmIChvYmpMZW5ndGggIT0gb3RoTGVuZ3RoICYmICFpc0xvb3NlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBza2lwQ3RvciA9IGlzTG9vc2UsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IG9ialByb3BzW2luZGV4XSxcbiAgICAgICAgcmVzdWx0ID0gaXNMb29zZSA/IGtleSBpbiBvdGhlciA6IGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsIGtleSk7XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2tleV07XG5cbiAgICAgIHJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgIHJlc3VsdCA9IGlzTG9vc2VcbiAgICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIG9ialZhbHVlLCBrZXkpXG4gICAgICAgICAgOiBjdXN0b21pemVyKG9ialZhbHVlLCBvdGhWYWx1ZSwga2V5KTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgcmVzdWx0ID0gKG9ialZhbHVlICYmIG9ialZhbHVlID09PSBvdGhWYWx1ZSkgfHwgZXF1YWxGdW5jKG9ialZhbHVlLCBvdGhWYWx1ZSwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBza2lwQ3RvciB8fCAoc2tpcEN0b3IgPSBrZXkgPT0gJ2NvbnN0cnVjdG9yJyk7XG4gIH1cbiAgaWYgKCFza2lwQ3Rvcikge1xuICAgIHZhciBvYmpDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yLFxuICAgICAgICBvdGhDdG9yID0gb3RoZXIuY29uc3RydWN0b3I7XG5cbiAgICAvLyBOb24gYE9iamVjdGAgb2JqZWN0IGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudCBjb25zdHJ1Y3RvcnMgYXJlIG5vdCBlcXVhbC5cbiAgICBpZiAob2JqQ3RvciAhPSBvdGhDdG9yICYmXG4gICAgICAgICgnY29uc3RydWN0b3InIGluIG9iamVjdCAmJiAnY29uc3RydWN0b3InIGluIG90aGVyKSAmJlxuICAgICAgICAhKHR5cGVvZiBvYmpDdG9yID09ICdmdW5jdGlvbicgJiYgb2JqQ3RvciBpbnN0YW5jZW9mIG9iakN0b3IgJiZcbiAgICAgICAgICB0eXBlb2Ygb3RoQ3RvciA9PSAnZnVuY3Rpb24nICYmIG90aEN0b3IgaW5zdGFuY2VvZiBvdGhDdG9yKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcXVhbE9iamVjdHM7XG4iLCJ2YXIgYmFzZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9iYXNlUHJvcGVydHknKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IHZhbHVlIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gYXZvaWQgYSBbSklUIGJ1Z10oaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjc5MilcbiAqIHRoYXQgYWZmZWN0cyBTYWZhcmkgb24gYXQgbGVhc3QgaU9TIDguMS04LjMgQVJNNjQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBcImxlbmd0aFwiIHZhbHVlLlxuICovXG52YXIgZ2V0TGVuZ3RoID0gYmFzZVByb3BlcnR5KCdsZW5ndGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRMZW5ndGg7XG4iLCJ2YXIgY29uc3RhbnQgPSByZXF1aXJlKCcuLi91dGlsaXR5L2NvbnN0YW50JyksXG4gICAgaXNOYXRpdmUgPSByZXF1aXJlKCcuLi9sYW5nL2lzTmF0aXZlJyksXG4gICAgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gaXNOYXRpdmUoZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgJiYgZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHN5bWJvbHMuXG4gKi9cbnZhciBnZXRTeW1ib2xzID0gIWdldE93blByb3BlcnR5U3ltYm9scyA/IGNvbnN0YW50KFtdKSA6IGZ1bmN0aW9uKG9iamVjdCkge1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRvT2JqZWN0KG9iamVjdCkpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRTeW1ib2xzO1xuIiwiLyoqXG4gKiBHZXRzIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBgTmFOYCBpcyBmb3VuZCBpbiBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2VhcmNoLlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIGBOYU5gLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGluZGV4T2ZOYU4oYXJyYXksIGZyb21JbmRleCwgZnJvbVJpZ2h0KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICBpbmRleCA9IGZyb21JbmRleCArIChmcm9tUmlnaHQgPyAwIDogLTEpO1xuXG4gIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgdmFyIG90aGVyID0gYXJyYXlbaW5kZXhdO1xuICAgIGlmIChvdGhlciAhPT0gb3RoZXIpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluZGV4T2ZOYU47XG4iLCIvKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBhcnJheSBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNsb25lLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQXJyYXkoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IG5ldyBhcnJheS5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gIC8vIEFkZCBhcnJheSBwcm9wZXJ0aWVzIGFzc2lnbmVkIGJ5IGBSZWdFeHAjZXhlY2AuXG4gIGlmIChsZW5ndGggJiYgdHlwZW9mIGFycmF5WzBdID09ICdzdHJpbmcnICYmIGhhc093blByb3BlcnR5LmNhbGwoYXJyYXksICdpbmRleCcpKSB7XG4gICAgcmVzdWx0LmluZGV4ID0gYXJyYXkuaW5kZXg7XG4gICAgcmVzdWx0LmlucHV0ID0gYXJyYXkuaW5wdXQ7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbml0Q2xvbmVBcnJheTtcbiIsInZhciBidWZmZXJDbG9uZSA9IHJlcXVpcmUoJy4vYnVmZmVyQ2xvbmUnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgZmxhZ3MgZnJvbSB0aGVpciBjb2VyY2VkIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVGbGFncyA9IC9cXHcqJC87XG5cbi8qKiBVc2VkIHRvIGxvb2t1cCBhIHR5cGUgYXJyYXkgY29uc3RydWN0b3JzIGJ5IGB0b1N0cmluZ1RhZ2AuICovXG52YXIgY3RvckJ5VGFnID0ge307XG5jdG9yQnlUYWdbZmxvYXQzMlRhZ10gPSBnbG9iYWwuRmxvYXQzMkFycmF5O1xuY3RvckJ5VGFnW2Zsb2F0NjRUYWddID0gZ2xvYmFsLkZsb2F0NjRBcnJheTtcbmN0b3JCeVRhZ1tpbnQ4VGFnXSA9IGdsb2JhbC5JbnQ4QXJyYXk7XG5jdG9yQnlUYWdbaW50MTZUYWddID0gZ2xvYmFsLkludDE2QXJyYXk7XG5jdG9yQnlUYWdbaW50MzJUYWddID0gZ2xvYmFsLkludDMyQXJyYXk7XG5jdG9yQnlUYWdbdWludDhUYWddID0gZ2xvYmFsLlVpbnQ4QXJyYXk7XG5jdG9yQnlUYWdbdWludDhDbGFtcGVkVGFnXSA9IGdsb2JhbC5VaW50OENsYW1wZWRBcnJheTtcbmN0b3JCeVRhZ1t1aW50MTZUYWddID0gZ2xvYmFsLlVpbnQxNkFycmF5O1xuY3RvckJ5VGFnW3VpbnQzMlRhZ10gPSBnbG9iYWwuVWludDMyQXJyYXk7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lIGJhc2VkIG9uIGl0cyBgdG9TdHJpbmdUYWdgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY2xvbmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVCeVRhZyhvYmplY3QsIHRhZywgaXNEZWVwKSB7XG4gIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XG4gICAgICByZXR1cm4gYnVmZmVyQ2xvbmUob2JqZWN0KTtcblxuICAgIGNhc2UgYm9vbFRhZzpcbiAgICBjYXNlIGRhdGVUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICBjYXNlIGZsb2F0MzJUYWc6IGNhc2UgZmxvYXQ2NFRhZzpcbiAgICBjYXNlIGludDhUYWc6IGNhc2UgaW50MTZUYWc6IGNhc2UgaW50MzJUYWc6XG4gICAgY2FzZSB1aW50OFRhZzogY2FzZSB1aW50OENsYW1wZWRUYWc6IGNhc2UgdWludDE2VGFnOiBjYXNlIHVpbnQzMlRhZzpcbiAgICAgIC8vIFNhZmFyaSA1IG1vYmlsZSBpbmNvcnJlY3RseSBoYXMgYE9iamVjdGAgYXMgdGhlIGNvbnN0cnVjdG9yIG9mIHR5cGVkIGFycmF5cy5cbiAgICAgIGlmIChDdG9yIGluc3RhbmNlb2YgQ3Rvcikge1xuICAgICAgICBDdG9yID0gY3RvckJ5VGFnW3RhZ107XG4gICAgICB9XG4gICAgICB2YXIgYnVmZmVyID0gb2JqZWN0LmJ1ZmZlcjtcbiAgICAgIHJldHVybiBuZXcgQ3Rvcihpc0RlZXAgPyBidWZmZXJDbG9uZShidWZmZXIpIDogYnVmZmVyLCBvYmplY3QuYnl0ZU9mZnNldCwgb2JqZWN0Lmxlbmd0aCk7XG5cbiAgICBjYXNlIG51bWJlclRhZzpcbiAgICBjYXNlIHN0cmluZ1RhZzpcbiAgICAgIHJldHVybiBuZXcgQ3RvcihvYmplY3QpO1xuXG4gICAgY2FzZSByZWdleHBUYWc6XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IEN0b3Iob2JqZWN0LnNvdXJjZSwgcmVGbGFncy5leGVjKG9iamVjdCkpO1xuICAgICAgcmVzdWx0Lmxhc3RJbmRleCA9IG9iamVjdC5sYXN0SW5kZXg7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbml0Q2xvbmVCeVRhZztcbiIsIi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgaWYgKCEodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvcikpIHtcbiAgICBDdG9yID0gT2JqZWN0O1xuICB9XG4gIHJldHVybiBuZXcgQ3Rvcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbml0Q2xvbmVPYmplY3Q7XG4iLCJ2YXIgZ2V0TGVuZ3RoID0gcmVxdWlyZSgnLi9nZXRMZW5ndGgnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgoZ2V0TGVuZ3RoKHZhbHVlKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheUxpa2U7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgaG9zdCBvYmplY3QgaW4gSUUgPCA5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgaG9zdCBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqL1xudmFyIGlzSG9zdE9iamVjdCA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICBPYmplY3QoeyAndG9TdHJpbmcnOiAwIH0gKyAnJyk7XG4gIH0gY2F0Y2goZSkge1xuICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIC8vIElFIDwgOSBwcmVzZW50cyBtYW55IGhvc3Qgb2JqZWN0cyBhcyBgT2JqZWN0YCBvYmplY3RzIHRoYXQgY2FuIGNvZXJjZVxuICAgIC8vIHRvIHN0cmluZ3MgZGVzcGl0ZSBoYXZpbmcgaW1wcm9wZXJseSBkZWZpbmVkIGB0b1N0cmluZ2AgbWV0aG9kcy5cbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9ICdmdW5jdGlvbicgJiYgdHlwZW9mICh2YWx1ZSArICcnKSA9PSAnc3RyaW5nJztcbiAgfTtcbn0oKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNIb3N0T2JqZWN0O1xuIiwiLyoqXG4gKiBVc2VkIGFzIHRoZSBbbWF4aW11bSBsZW5ndGhdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1udW1iZXIubWF4X3NhZmVfaW50ZWdlcilcbiAqIG9mIGFuIGFycmF5LWxpa2UgdmFsdWUuXG4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gTWF0aC5wb3coMiwgNTMpIC0gMTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFsdWUgPSArdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcbiAgcmV0dXJuIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPCBsZW5ndGg7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNJbmRleDtcbiIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUlzRGVlcFByb3AgPSAvXFwufFxcWyg/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXG5cXFxcXXxcXFxcLikqP1xcMSlcXF0vLFxuICAgIHJlSXNQbGFpblByb3AgPSAvXlxcdyokLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUgYW5kIG5vdCBhIHByb3BlcnR5IHBhdGguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkga2V5cyBvbi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAoKHR5cGUgPT0gJ3N0cmluZycgJiYgcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSkgfHwgdHlwZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIHJlc3VsdCB8fCAob2JqZWN0ICE9IG51bGwgJiYgdmFsdWUgaW4gdG9PYmplY3Qob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNLZXk7XG4iLCIvKipcbiAqIFVzZWQgYXMgdGhlIFttYXhpbXVtIGxlbmd0aF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW51bWJlci5tYXhfc2FmZV9pbnRlZ2VyKVxuICogb2YgYW4gYXJyYXktbGlrZSB2YWx1ZS5cbiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSBNYXRoLnBvdygyLCA1MykgLSAxO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gaXMgYmFzZWQgb24gW2BUb0xlbmd0aGBdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy10b2xlbmd0aCkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJiB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNMZW5ndGg7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3RMaWtlO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaWYgc3VpdGFibGUgZm9yIHN0cmljdFxuICogIGVxdWFsaXR5IGNvbXBhcmlzb25zLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IHZhbHVlICYmICFpc09iamVjdCh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTdHJpY3RDb21wYXJhYmxlO1xuIiwidmFyIGJhc2VGb3JJbiA9IHJlcXVpcmUoJy4vYmFzZUZvckluJyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJndW1lbnRzJyksXG4gICAgaXNIb3N0T2JqZWN0ID0gcmVxdWlyZSgnLi9pc0hvc3RPYmplY3QnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIEEgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNQbGFpbk9iamVjdGAgd2hpY2ggY2hlY2tzIGlmIGB2YWx1ZWBcbiAqIGlzIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBoYXMgYSBgW1tQcm90b3R5cGVdXWBcbiAqIG9mIGBudWxsYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBzaGltSXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICB2YXIgQ3RvcjtcblxuICAvLyBFeGl0IGVhcmx5IGZvciBub24gYE9iamVjdGAgb2JqZWN0cy5cbiAgaWYgKCEoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBvYmplY3RUYWcgJiYgIWlzSG9zdE9iamVjdCh2YWx1ZSkpIHx8XG4gICAgICAoIWhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjb25zdHJ1Y3RvcicpICYmXG4gICAgICAgIChDdG9yID0gdmFsdWUuY29uc3RydWN0b3IsIHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgIShDdG9yIGluc3RhbmNlb2YgQ3RvcikpKSB8fFxuICAgICAgKCFzdXBwb3J0LmFyZ3NUYWcgJiYgaXNBcmd1bWVudHModmFsdWUpKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBJRSA8IDkgaXRlcmF0ZXMgaW5oZXJpdGVkIHByb3BlcnRpZXMgYmVmb3JlIG93biBwcm9wZXJ0aWVzLiBJZiB0aGUgZmlyc3RcbiAgLy8gaXRlcmF0ZWQgcHJvcGVydHkgaXMgYW4gb2JqZWN0J3Mgb3duIHByb3BlcnR5IHRoZW4gdGhlcmUgYXJlIG5vIGluaGVyaXRlZFxuICAvLyBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gIHZhciByZXN1bHQ7XG4gIGlmIChzdXBwb3J0Lm93bkxhc3QpIHtcbiAgICBiYXNlRm9ySW4odmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgcmVzdWx0ID0gaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdCAhPT0gZmFsc2U7XG4gIH1cbiAgLy8gSW4gbW9zdCBlbnZpcm9ubWVudHMgYW4gb2JqZWN0J3Mgb3duIHByb3BlcnRpZXMgYXJlIGl0ZXJhdGVkIGJlZm9yZVxuICAvLyBpdHMgaW5oZXJpdGVkIHByb3BlcnRpZXMuIElmIHRoZSBsYXN0IGl0ZXJhdGVkIHByb3BlcnR5IGlzIGFuIG9iamVjdCdzXG4gIC8vIG93biBwcm9wZXJ0eSB0aGVuIHRoZXJlIGFyZSBubyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICBiYXNlRm9ySW4odmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXkpIHtcbiAgICByZXN1bHQgPSBrZXk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgcmVzdWx0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaGltSXNQbGFpbk9iamVjdDtcbiIsInZhciBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vaXNJbmRleCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpLFxuICAgIGlzU3RyaW5nID0gcmVxdWlyZSgnLi4vbGFuZy9pc1N0cmluZycpLFxuICAgIGtleXNJbiA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzSW4nKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIG9mIGBPYmplY3Qua2V5c2Agd2hpY2ggY3JlYXRlcyBhbiBhcnJheSBvZiB0aGVcbiAqIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBzaGltS2V5cyhvYmplY3QpIHtcbiAgdmFyIHByb3BzID0ga2V5c0luKG9iamVjdCksXG4gICAgICBwcm9wc0xlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgIGxlbmd0aCA9IHByb3BzTGVuZ3RoICYmIG9iamVjdC5sZW5ndGg7XG5cbiAgdmFyIGFsbG93SW5kZXhlcyA9IGxlbmd0aCAmJiBpc0xlbmd0aChsZW5ndGgpICYmXG4gICAgKGlzQXJyYXkob2JqZWN0KSB8fCAoc3VwcG9ydC5ub25FbnVtU3RyaW5ncyAmJiBpc1N0cmluZyhvYmplY3QpKSB8fFxuICAgICAgKHN1cHBvcnQubm9uRW51bUFyZ3MgJiYgaXNBcmd1bWVudHMob2JqZWN0KSkpO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgd2hpbGUgKCsraW5kZXggPCBwcm9wc0xlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG4gICAgaWYgKChhbGxvd0luZGV4ZXMgJiYgaXNJbmRleChrZXksIGxlbmd0aCkpIHx8IGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNoaW1LZXlzO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpLFxuICAgIGlzU3RyaW5nID0gcmVxdWlyZSgnLi4vbGFuZy9pc1N0cmluZycpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhbiBvYmplY3QgaWYgaXQgaXMgbm90IG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gdG9PYmplY3QodmFsdWUpIHtcbiAgaWYgKHN1cHBvcnQudW5pbmRleGVkQ2hhcnMgJiYgaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgcmVzdWx0ID0gT2JqZWN0KHZhbHVlKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICByZXN1bHRbaW5kZXhdID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaXNPYmplY3QodmFsdWUpID8gdmFsdWUgOiBPYmplY3QodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvT2JqZWN0O1xuIiwidmFyIGJhc2VUb1N0cmluZyA9IHJlcXVpcmUoJy4vYmFzZVRvU3RyaW5nJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXG5cXFxcXXxcXFxcLikqPylcXDIpXFxdL2c7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlRXNjYXBlQ2hhciA9IC9cXFxcKFxcXFwpPy9nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gcHJvcGVydHkgcGF0aCBhcnJheSBpZiBpdCBpcyBub3Qgb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICovXG5mdW5jdGlvbiB0b1BhdGgodmFsdWUpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgYmFzZVRvU3RyaW5nKHZhbHVlKS5yZXBsYWNlKHJlUHJvcE5hbWUsIGZ1bmN0aW9uKG1hdGNoLCBudW1iZXIsIHF1b3RlLCBzdHJpbmcpIHtcbiAgICByZXN1bHQucHVzaChxdW90ZSA/IHN0cmluZy5yZXBsYWNlKHJlRXNjYXBlQ2hhciwgJyQxJykgOiAobnVtYmVyIHx8IG1hdGNoKSk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvUGF0aDtcbiIsInZhciBiYXNlQ2xvbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlQ2xvbmUnKSxcbiAgICBiaW5kQ2FsbGJhY2sgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iaW5kQ2FsbGJhY2snKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGVlcCBjbG9uZSBvZiBgdmFsdWVgLiBJZiBgY3VzdG9taXplcmAgaXMgcHJvdmlkZWQgaXQgaXMgaW52b2tlZFxuICogdG8gcHJvZHVjZSB0aGUgY2xvbmVkIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAgY2xvbmluZ1xuICogaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgYm91bmQgdG8gYHRoaXNBcmdgXG4gKiBhbmQgaW52b2tlZCB3aXRoIHR3byBhcmd1bWVudDsgKHZhbHVlIFssIGluZGV4fGtleSwgb2JqZWN0XSkuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlXG4gKiBbc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG1dKGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2luZnJhc3RydWN0dXJlLmh0bWwjaW50ZXJuYWwtc3RydWN0dXJlZC1jbG9uaW5nLWFsZ29yaXRobSkuXG4gKiBUaGUgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYW5kIG9iamVjdHMgY3JlYXRlZCBieVxuICogY29uc3RydWN0b3JzIG90aGVyIHRoYW4gYE9iamVjdGAgYXJlIGNsb25lZCB0byBwbGFpbiBgT2JqZWN0YCBvYmplY3RzLiBBblxuICogZW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGZvciB1bmNsb25lYWJsZSB2YWx1ZXMgc3VjaCBhcyBmdW5jdGlvbnMsIERPTSBub2RlcyxcbiAqIE1hcHMsIFNldHMsIGFuZCBXZWFrTWFwcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGRlZXAgY2xvbmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nIHZhbHVlcy5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgY3VzdG9taXplcmAuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZGVlcCBjbG9uZWQgdmFsdWUuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcgfVxuICogXTtcbiAqXG4gKiB2YXIgZGVlcCA9IF8uY2xvbmVEZWVwKHVzZXJzKTtcbiAqIGRlZXBbMF0gPT09IHVzZXJzWzBdO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiAvLyB1c2luZyBhIGN1c3RvbWl6ZXIgY2FsbGJhY2tcbiAqIHZhciBlbCA9IF8uY2xvbmVEZWVwKGRvY3VtZW50LmJvZHksIGZ1bmN0aW9uKHZhbHVlKSB7XG4gKiAgIGlmIChfLmlzRWxlbWVudCh2YWx1ZSkpIHtcbiAqICAgICByZXR1cm4gdmFsdWUuY2xvbmVOb2RlKHRydWUpO1xuICogICB9XG4gKiB9KTtcbiAqXG4gKiBlbCA9PT0gZG9jdW1lbnQuYm9keVxuICogLy8gPT4gZmFsc2VcbiAqIGVsLm5vZGVOYW1lXG4gKiAvLyA9PiBCT0RZXG4gKiBlbC5jaGlsZE5vZGVzLmxlbmd0aDtcbiAqIC8vID0+IDIwXG4gKi9cbmZ1bmN0aW9uIGNsb25lRGVlcCh2YWx1ZSwgY3VzdG9taXplciwgdGhpc0FyZykge1xuICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyAmJiBiaW5kQ2FsbGJhY2soY3VzdG9taXplciwgdGhpc0FyZywgMSk7XG4gIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIHRydWUsIGN1c3RvbWl6ZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb25lRGVlcDtcbiIsInZhciBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzQXJyYXlMaWtlJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyksXG4gICAgc3VwcG9ydCA9IHJlcXVpcmUoJy4uL3N1cHBvcnQnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgYXJndW1lbnRzYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IGFyZ3NUYWc7XG59XG4vLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGhvdXQgYSBgdG9TdHJpbmdUYWdgIGZvciBgYXJndW1lbnRzYCBvYmplY3RzLlxuaWYgKCFzdXBwb3J0LmFyZ3NUYWcpIHtcbiAgaXNBcmd1bWVudHMgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKSAmJlxuICAgICAgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCAnY2FsbGVlJyk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcmd1bWVudHM7XG4iLCJ2YXIgaXNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0xlbmd0aCcpLFxuICAgIGlzTmF0aXZlID0gcmVxdWlyZSgnLi9pc05hdGl2ZScpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNBcnJheSA9IGlzTmF0aXZlKG5hdGl2ZUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KSAmJiBuYXRpdmVJc0FycmF5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheShmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gbmF0aXZlSXNBcnJheSB8fCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IGFycmF5VGFnO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5O1xuIiwidmFyIGJhc2VJc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUlzRnVuY3Rpb24nKSxcbiAgICBpc05hdGl2ZSA9IHJlcXVpcmUoJy4vaXNOYXRpdmUnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgVWludDhBcnJheSA9IGlzTmF0aXZlKFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheSkgJiYgVWludDhBcnJheTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYEZ1bmN0aW9uYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzRnVuY3Rpb24gPSAhKGJhc2VJc0Z1bmN0aW9uKC94LykgfHwgKFVpbnQ4QXJyYXkgJiYgIWJhc2VJc0Z1bmN0aW9uKFVpbnQ4QXJyYXkpKSkgPyBiYXNlSXNGdW5jdGlvbiA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaSB3aGljaCByZXR1cm4gJ2Z1bmN0aW9uJyBmb3IgcmVnZXhlc1xuICAvLyBhbmQgU2FmYXJpIDggZXF1aXZhbGVudHMgd2hpY2ggcmV0dXJuICdvYmplY3QnIGZvciB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvcnMuXG4gIHJldHVybiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBmdW5jVGFnO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bmN0aW9uO1xuIiwidmFyIGVzY2FwZVJlZ0V4cCA9IHJlcXVpcmUoJy4uL3N0cmluZy9lc2NhcGVSZWdFeHAnKSxcbiAgICBpc0hvc3RPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0hvc3RPYmplY3QnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaG9zdCBjb25zdHJ1Y3RvcnMgKFNhZmFyaSA+IDUpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZm5Ub1N0cmluZyA9IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBpZiBhIG1ldGhvZCBpcyBuYXRpdmUuICovXG52YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cCgnXicgK1xuICBlc2NhcGVSZWdFeHAob2JqVG9TdHJpbmcpXG4gIC5yZXBsYWNlKC90b1N0cmluZ3woZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCAnJDEuKj8nKSArICckJ1xuKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc05hdGl2ZShBcnJheS5wcm90b3R5cGUucHVzaCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc05hdGl2ZShfKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTmF0aXZlKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBmdW5jVGFnKSB7XG4gICAgcmV0dXJuIHJlSXNOYXRpdmUudGVzdChmblRvU3RyaW5nLmNhbGwodmFsdWUpKTtcbiAgfVxuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAoaXNIb3N0T2JqZWN0KHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3IpLnRlc3QodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzTmF0aXZlO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGUgW2xhbmd1YWdlIHR5cGVdKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDgpIG9mIGBPYmplY3RgLlxuICogKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdCgxKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIC8vIEF2b2lkIGEgVjggSklUIGJ1ZyBpbiBDaHJvbWUgMTktMjAuXG4gIC8vIFNlZSBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MjI5MSBmb3IgbW9yZSBkZXRhaWxzLlxuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHR5cGUgPT0gJ2Z1bmN0aW9uJyB8fCAoISF2YWx1ZSAmJiB0eXBlID09ICdvYmplY3QnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdDtcbiIsInZhciBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vaXNBcmd1bWVudHMnKSxcbiAgICBpc05hdGl2ZSA9IHJlcXVpcmUoJy4vaXNOYXRpdmUnKSxcbiAgICBzaGltSXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL3NoaW1Jc1BsYWluT2JqZWN0JyksXG4gICAgc3VwcG9ydCA9IHJlcXVpcmUoJy4uL3N1cHBvcnQnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZ2V0UHJvdG90eXBlT2YgPSBpc05hdGl2ZShnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZikgJiYgZ2V0UHJvdG90eXBlT2Y7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBhc3N1bWVzIG9iamVjdHMgY3JlYXRlZCBieSB0aGUgYE9iamVjdGAgY29uc3RydWN0b3JcbiAqIGhhdmUgbm8gaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xudmFyIGlzUGxhaW5PYmplY3QgPSAhZ2V0UHJvdG90eXBlT2YgPyBzaGltSXNQbGFpbk9iamVjdCA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICghKHZhbHVlICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IG9iamVjdFRhZykgfHwgKCFzdXBwb3J0LmFyZ3NUYWcgJiYgaXNBcmd1bWVudHModmFsdWUpKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdmFsdWVPZiA9IHZhbHVlLnZhbHVlT2YsXG4gICAgICBvYmpQcm90byA9IGlzTmF0aXZlKHZhbHVlT2YpICYmIChvYmpQcm90byA9IGdldFByb3RvdHlwZU9mKHZhbHVlT2YpKSAmJiBnZXRQcm90b3R5cGVPZihvYmpQcm90byk7XG5cbiAgcmV0dXJuIG9ialByb3RvXG4gICAgPyAodmFsdWUgPT0gb2JqUHJvdG8gfHwgZ2V0UHJvdG90eXBlT2YodmFsdWUpID09IG9ialByb3RvKVxuICAgIDogc2hpbUlzUGxhaW5PYmplY3QodmFsdWUpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc1BsYWluT2JqZWN0O1xuIiwidmFyIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN0cmluZ2AgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N0cmluZygnYWJjJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1N0cmluZygxKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gc3RyaW5nVGFnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1N0cmluZztcbiIsInZhciBpc0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzTGVuZ3RoJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xudmFyIHR5cGVkQXJyYXlUYWdzID0ge307XG50eXBlZEFycmF5VGFnc1tmbG9hdDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Zsb2F0NjRUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQ4VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50OENsYW1wZWRUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbnR5cGVkQXJyYXlUYWdzW2FyZ3NUYWddID0gdHlwZWRBcnJheVRhZ3NbYXJyYXlUYWddID1cbnR5cGVkQXJyYXlUYWdzW2FycmF5QnVmZmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Jvb2xUYWddID1cbnR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID0gdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID1cbnR5cGVkQXJyYXlUYWdzW2Z1bmNUYWddID0gdHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9XG50eXBlZEFycmF5VGFnc1tudW1iZXJUYWddID0gdHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID0gdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tzdHJpbmdUYWddID0gdHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3Nbb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVHlwZWRBcnJheTtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNVbmRlZmluZWQ7XG4iLCJ2YXIgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0FycmF5TGlrZScpLFxuICAgIGlzTmF0aXZlID0gcmVxdWlyZSgnLi4vbGFuZy9pc05hdGl2ZScpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpLFxuICAgIHNoaW1LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvc2hpbUtleXMnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBpc05hdGl2ZShuYXRpdmVLZXlzID0gT2JqZWN0LmtleXMpICYmIG5hdGl2ZUtleXM7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuIFNlZSB0aGVcbiAqIFtFUyBzcGVjXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LmtleXMpXG4gKiBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG52YXIga2V5cyA9ICFuYXRpdmVLZXlzID8gc2hpbUtleXMgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QgIT0gbnVsbCAmJiBvYmplY3QuY29uc3RydWN0b3I7XG4gIGlmICgodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSA9PT0gb2JqZWN0KSB8fFxuICAgICAgKHR5cGVvZiBvYmplY3QgPT0gJ2Z1bmN0aW9uJyA/IHN1cHBvcnQuZW51bVByb3RvdHlwZXMgOiBpc0FycmF5TGlrZShvYmplY3QpKSkge1xuICAgIHJldHVybiBzaGltS2V5cyhvYmplY3QpO1xuICB9XG4gIHJldHVybiBpc09iamVjdChvYmplY3QpID8gbmF0aXZlS2V5cyhvYmplY3QpIDogW107XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGtleXM7XG4iLCJ2YXIgYXJyYXlFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYXJyYXlFYWNoJyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9sYW5nL2lzRnVuY3Rpb24nKSxcbiAgICBpc0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNJbmRleCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNMZW5ndGgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbi8qKiBVc2VkIHRvIGZpeCB0aGUgSlNjcmlwdCBgW1tEb250RW51bV1dYCBidWcuICovXG52YXIgc2hhZG93UHJvcHMgPSBbXG4gICdjb25zdHJ1Y3RvcicsICdoYXNPd25Qcm9wZXJ0eScsICdpc1Byb3RvdHlwZU9mJywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXG5dO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGVycm9yUHJvdG8gPSBFcnJvci5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlLFxuICAgIHN0cmluZ1Byb3RvID0gU3RyaW5nLnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGF2b2lkIGl0ZXJhdGluZyBvdmVyIG5vbi1lbnVtZXJhYmxlIHByb3BlcnRpZXMgaW4gSUUgPCA5LiAqL1xudmFyIG5vbkVudW1Qcm9wcyA9IHt9O1xubm9uRW51bVByb3BzW2FycmF5VGFnXSA9IG5vbkVudW1Qcm9wc1tkYXRlVGFnXSA9IG5vbkVudW1Qcm9wc1tudW1iZXJUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlLCAndG9Mb2NhbGVTdHJpbmcnOiB0cnVlLCAndG9TdHJpbmcnOiB0cnVlLCAndmFsdWVPZic6IHRydWUgfTtcbm5vbkVudW1Qcm9wc1tib29sVGFnXSA9IG5vbkVudW1Qcm9wc1tzdHJpbmdUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlLCAndG9TdHJpbmcnOiB0cnVlLCAndmFsdWVPZic6IHRydWUgfTtcbm5vbkVudW1Qcm9wc1tlcnJvclRhZ10gPSBub25FbnVtUHJvcHNbZnVuY1RhZ10gPSBub25FbnVtUHJvcHNbcmVnZXhwVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSB9O1xubm9uRW51bVByb3BzW29iamVjdFRhZ10gPSB7ICdjb25zdHJ1Y3Rvcic6IHRydWUgfTtcblxuYXJyYXlFYWNoKHNoYWRvd1Byb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgZm9yICh2YXIgdGFnIGluIG5vbkVudW1Qcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG5vbkVudW1Qcm9wcywgdGFnKSkge1xuICAgICAgdmFyIHByb3BzID0gbm9uRW51bVByb3BzW3RhZ107XG4gICAgICBwcm9wc1trZXldID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywga2V5KTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5c0luKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICB9XG4gIHZhciBsZW5ndGggPSBvYmplY3QubGVuZ3RoO1xuXG4gIGxlbmd0aCA9IChsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJlxuICAgIChpc0FycmF5KG9iamVjdCkgfHwgKHN1cHBvcnQubm9uRW51bVN0cmluZ3MgJiYgaXNTdHJpbmcob2JqZWN0KSkgfHxcbiAgICAgIChzdXBwb3J0Lm5vbkVudW1BcmdzICYmIGlzQXJndW1lbnRzKG9iamVjdCkpKSAmJiBsZW5ndGgpIHx8IDA7XG5cbiAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICBpbmRleCA9IC0xLFxuICAgICAgcHJvdG8gPSAoaXNGdW5jdGlvbihDdG9yKSAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG8sXG4gICAgICBpc1Byb3RvID0gcHJvdG8gPT09IG9iamVjdCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCksXG4gICAgICBza2lwSW5kZXhlcyA9IGxlbmd0aCA+IDAsXG4gICAgICBza2lwRXJyb3JQcm9wcyA9IHN1cHBvcnQuZW51bUVycm9yUHJvcHMgJiYgKG9iamVjdCA9PT0gZXJyb3JQcm90byB8fCBvYmplY3QgaW5zdGFuY2VvZiBFcnJvciksXG4gICAgICBza2lwUHJvdG8gPSBzdXBwb3J0LmVudW1Qcm90b3R5cGVzICYmIGlzRnVuY3Rpb24ob2JqZWN0KTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSAoaW5kZXggKyAnJyk7XG4gIH1cbiAgLy8gbG9kYXNoIHNraXBzIHRoZSBgY29uc3RydWN0b3JgIHByb3BlcnR5IHdoZW4gaXQgaW5mZXJzIGl0IGlzIGl0ZXJhdGluZ1xuICAvLyBvdmVyIGEgYHByb3RvdHlwZWAgb2JqZWN0IGJlY2F1c2UgSUUgPCA5IGNhbid0IHNldCB0aGUgYFtbRW51bWVyYWJsZV1dYFxuICAvLyBhdHRyaWJ1dGUgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkgYW5kIHRoZSBgY29uc3RydWN0b3JgIHByb3BlcnR5IG9mIGFcbiAgLy8gcHJvdG90eXBlIGRlZmF1bHRzIHRvIG5vbi1lbnVtZXJhYmxlLlxuICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKCEoc2tpcFByb3RvICYmIGtleSA9PSAncHJvdG90eXBlJykgJiZcbiAgICAgICAgIShza2lwRXJyb3JQcm9wcyAmJiAoa2V5ID09ICdtZXNzYWdlJyB8fCBrZXkgPT0gJ25hbWUnKSkgJiZcbiAgICAgICAgIShza2lwSW5kZXhlcyAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSkgJiZcbiAgICAgICAgIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgaWYgKHN1cHBvcnQubm9uRW51bVNoYWRvd3MgJiYgb2JqZWN0ICE9PSBvYmplY3RQcm90bykge1xuICAgIHZhciB0YWcgPSBvYmplY3QgPT09IHN0cmluZ1Byb3RvID8gc3RyaW5nVGFnIDogKG9iamVjdCA9PT0gZXJyb3JQcm90byA/IGVycm9yVGFnIDogb2JqVG9TdHJpbmcuY2FsbChvYmplY3QpKSxcbiAgICAgICAgbm9uRW51bXMgPSBub25FbnVtUHJvcHNbdGFnXSB8fCBub25FbnVtUHJvcHNbb2JqZWN0VGFnXTtcblxuICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnKSB7XG4gICAgICBwcm90byA9IG9iamVjdFByb3RvO1xuICAgIH1cbiAgICBsZW5ndGggPSBzaGFkb3dQcm9wcy5sZW5ndGg7XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBrZXkgPSBzaGFkb3dQcm9wc1tsZW5ndGhdO1xuICAgICAgdmFyIG5vbkVudW0gPSBub25FbnVtc1trZXldO1xuICAgICAgaWYgKCEoaXNQcm90byAmJiBub25FbnVtKSAmJlxuICAgICAgICAgIChub25FbnVtID8gaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgOiBvYmplY3Rba2V5XSAhPT0gcHJvdG9ba2V5XSkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBrZXlzSW47XG4iLCJ2YXIgYmFzZVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZVRvU3RyaW5nJyk7XG5cbi8qKlxuICogVXNlZCB0byBtYXRjaCBgUmVnRXhwYCBbc3BlY2lhbCBjaGFyYWN0ZXJzXShodHRwOi8vd3d3LnJlZ3VsYXItZXhwcmVzc2lvbnMuaW5mby9jaGFyYWN0ZXJzLmh0bWwjc3BlY2lhbCkuXG4gKiBJbiBhZGRpdGlvbiB0byBzcGVjaWFsIGNoYXJhY3RlcnMgdGhlIGZvcndhcmQgc2xhc2ggaXMgZXNjYXBlZCB0byBhbGxvdyBmb3JcbiAqIGVhc2llciBgZXZhbGAgdXNlIGFuZCBgRnVuY3Rpb25gIGNvbXBpbGF0aW9uLlxuICovXG52YXIgcmVSZWdFeHBDaGFycyA9IC9bLiorP14ke30oKXxbXFxdXFwvXFxcXF0vZyxcbiAgICByZUhhc1JlZ0V4cENoYXJzID0gUmVnRXhwKHJlUmVnRXhwQ2hhcnMuc291cmNlKTtcblxuLyoqXG4gKiBFc2NhcGVzIHRoZSBgUmVnRXhwYCBzcGVjaWFsIGNoYXJhY3RlcnMgXCJcXFwiLCBcIi9cIiwgXCJeXCIsIFwiJFwiLCBcIi5cIiwgXCJ8XCIsIFwiP1wiLFxuICogXCIqXCIsIFwiK1wiLCBcIihcIiwgXCIpXCIsIFwiW1wiLCBcIl1cIiwgXCJ7XCIgYW5kIFwifVwiIGluIGBzdHJpbmdgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgU3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5lc2NhcGVSZWdFeHAoJ1tsb2Rhc2hdKGh0dHBzOi8vbG9kYXNoLmNvbS8pJyk7XG4gKiAvLyA9PiAnXFxbbG9kYXNoXFxdXFwoaHR0cHM6XFwvXFwvbG9kYXNoXFwuY29tXFwvXFwpJ1xuICovXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyaW5nKSB7XG4gIHN0cmluZyA9IGJhc2VUb1N0cmluZyhzdHJpbmcpO1xuICByZXR1cm4gKHN0cmluZyAmJiByZUhhc1JlZ0V4cENoYXJzLnRlc3Qoc3RyaW5nKSlcbiAgICA/IHN0cmluZy5yZXBsYWNlKHJlUmVnRXhwQ2hhcnMsICdcXFxcJCYnKVxuICAgIDogc3RyaW5nO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVzY2FwZVJlZ0V4cDtcbiIsIi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZSxcbiAgICBlcnJvclByb3RvID0gRXJyb3IucHJvdG90eXBlLFxuICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IERPTSBzdXBwb3J0LiAqL1xudmFyIGRvY3VtZW50ID0gKGRvY3VtZW50ID0gZ2xvYmFsLndpbmRvdykgJiYgZG9jdW1lbnQuZG9jdW1lbnQ7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsXG4gICAgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogQW4gb2JqZWN0IGVudmlyb25tZW50IGZlYXR1cmUgZmxhZ3MuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEB0eXBlIE9iamVjdFxuICovXG52YXIgc3VwcG9ydCA9IHt9O1xuXG4oZnVuY3Rpb24oeCkge1xuICB2YXIgQ3RvciA9IGZ1bmN0aW9uKCkgeyB0aGlzLnggPSB4OyB9LFxuICAgICAgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgIG9iamVjdCA9IHsgJzAnOiB4LCAnbGVuZ3RoJzogeCB9LFxuICAgICAgcHJvcHMgPSBbXTtcblxuICBDdG9yLnByb3RvdHlwZSA9IHsgJ3ZhbHVlT2YnOiB4LCAneSc6IHggfTtcbiAgZm9yICh2YXIga2V5IGluIG5ldyBDdG9yKSB7IHByb3BzLnB1c2goa2V5KTsgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBpcyByZXNvbHZhYmxlXG4gICAqIChhbGwgYnV0IEZpcmVmb3ggPCA0LCBJRSA8IDkpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQuYXJnc1RhZyA9IG9ialRvU3RyaW5nLmNhbGwoYXJncykgPT0gYXJnc1RhZztcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIGBuYW1lYCBvciBgbWVzc2FnZWAgcHJvcGVydGllcyBvZiBgRXJyb3IucHJvdG90eXBlYCBhcmVcbiAgICogZW51bWVyYWJsZSBieSBkZWZhdWx0IChJRSA8IDksIFNhZmFyaSA8IDUuMSkuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5lbnVtRXJyb3JQcm9wcyA9IHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZXJyb3JQcm90bywgJ21lc3NhZ2UnKSB8fFxuICAgIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZXJyb3JQcm90bywgJ25hbWUnKTtcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIGBwcm90b3R5cGVgIHByb3BlcnRpZXMgYXJlIGVudW1lcmFibGUgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogRmlyZWZveCA8IDMuNiwgT3BlcmEgPiA5LjUwIC0gT3BlcmEgPCAxMS42MCwgYW5kIFNhZmFyaSA8IDUuMVxuICAgKiAoaWYgdGhlIHByb3RvdHlwZSBvciBhIHByb3BlcnR5IG9uIHRoZSBwcm90b3R5cGUgaGFzIGJlZW4gc2V0KVxuICAgKiBpbmNvcnJlY3RseSBzZXQgdGhlIGBbW0VudW1lcmFibGVdXWAgdmFsdWUgb2YgYSBmdW5jdGlvbidzIGBwcm90b3R5cGVgXG4gICAqIHByb3BlcnR5IHRvIGB0cnVlYC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0LmVudW1Qcm90b3R5cGVzID0gcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChDdG9yLCAncHJvdG90eXBlJyk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBmdW5jdGlvbnMgY2FuIGJlIGRlY29tcGlsZWQgYnkgYEZ1bmN0aW9uI3RvU3RyaW5nYFxuICAgKiAoYWxsIGJ1dCBGaXJlZm94IE9TIGNlcnRpZmllZCBhcHBzLCBvbGRlciBPcGVyYSBtb2JpbGUgYnJvd3NlcnMsIGFuZFxuICAgKiB0aGUgUGxheVN0YXRpb24gMzsgZm9yY2VkIGBmYWxzZWAgZm9yIFdpbmRvd3MgOCBhcHBzKS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0LmZ1bmNEZWNvbXAgPSAvXFxidGhpc1xcYi8udGVzdChmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgYEZ1bmN0aW9uI25hbWVgIGlzIHN1cHBvcnRlZCAoYWxsIGJ1dCBJRSkuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5mdW5jTmFtZXMgPSB0eXBlb2YgRnVuY3Rpb24ubmFtZSA9PSAnc3RyaW5nJztcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIHRoZSBgdG9TdHJpbmdUYWdgIG9mIERPTSBub2RlcyBpcyByZXNvbHZhYmxlIChhbGwgYnV0IElFIDwgOSkuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5ub2RlVGFnID0gb2JqVG9TdHJpbmcuY2FsbChkb2N1bWVudCkgIT0gb2JqZWN0VGFnO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgc3RyaW5nIGluZGV4ZXMgYXJlIG5vbi1lbnVtZXJhYmxlIChJRSA8IDksIFJpbmdvSlMsIFJoaW5vLCBOYXJ3aGFsKS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0Lm5vbkVudW1TdHJpbmdzID0gIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoJ3gnLCAwKTtcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIHByb3BlcnRpZXMgc2hhZG93aW5nIHRob3NlIG9uIGBPYmplY3QucHJvdG90eXBlYCBhcmUgbm9uLWVudW1lcmFibGUuXG4gICAqXG4gICAqIEluIElFIDwgOSBhbiBvYmplY3QncyBvd24gcHJvcGVydGllcywgc2hhZG93aW5nIG5vbi1lbnVtZXJhYmxlIG9uZXMsXG4gICAqIGFyZSBtYWRlIG5vbi1lbnVtZXJhYmxlIGFzIHdlbGwgKGEuay5hIHRoZSBKU2NyaXB0IGBbW0RvbnRFbnVtXV1gIGJ1ZykuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5ub25FbnVtU2hhZG93cyA9ICEvdmFsdWVPZi8udGVzdChwcm9wcyk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBvd24gcHJvcGVydGllcyBhcmUgaXRlcmF0ZWQgYWZ0ZXIgaW5oZXJpdGVkIHByb3BlcnRpZXMgKElFIDwgOSkuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5vd25MYXN0ID0gcHJvcHNbMF0gIT0gJ3gnO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgYEFycmF5I3NoaWZ0YCBhbmQgYEFycmF5I3NwbGljZWAgYXVnbWVudCBhcnJheS1saWtlIG9iamVjdHNcbiAgICogY29ycmVjdGx5LlxuICAgKlxuICAgKiBGaXJlZm94IDwgMTAsIGNvbXBhdGliaWxpdHkgbW9kZXMgb2YgSUUgOCwgYW5kIElFIDwgOSBoYXZlIGJ1Z2d5IEFycmF5XG4gICAqIGBzaGlmdCgpYCBhbmQgYHNwbGljZSgpYCBmdW5jdGlvbnMgdGhhdCBmYWlsIHRvIHJlbW92ZSB0aGUgbGFzdCBlbGVtZW50LFxuICAgKiBgdmFsdWVbMF1gLCBvZiBhcnJheS1saWtlIG9iamVjdHMgZXZlbiB0aG91Z2ggdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgaXNcbiAgICogc2V0IHRvIGAwYC4gVGhlIGBzaGlmdCgpYCBtZXRob2QgaXMgYnVnZ3kgaW4gY29tcGF0aWJpbGl0eSBtb2RlcyBvZiBJRSA4LFxuICAgKiB3aGlsZSBgc3BsaWNlKClgIGlzIGJ1Z2d5IHJlZ2FyZGxlc3Mgb2YgbW9kZSBpbiBJRSA8IDkuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5zcGxpY2VPYmplY3RzID0gKHNwbGljZS5jYWxsKG9iamVjdCwgMCwgMSksICFvYmplY3RbMF0pO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgbGFjayBvZiBzdXBwb3J0IGZvciBhY2Nlc3Npbmcgc3RyaW5nIGNoYXJhY3RlcnMgYnkgaW5kZXguXG4gICAqXG4gICAqIElFIDwgOCBjYW4ndCBhY2Nlc3MgY2hhcmFjdGVycyBieSBpbmRleC4gSUUgOCBjYW4gb25seSBhY2Nlc3MgY2hhcmFjdGVyc1xuICAgKiBieSBpbmRleCBvbiBzdHJpbmcgbGl0ZXJhbHMsIG5vdCBzdHJpbmcgb2JqZWN0cy5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0LnVuaW5kZXhlZENoYXJzID0gKCd4J1swXSArIE9iamVjdCgneCcpWzBdKSAhPSAneHgnO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgdGhlIERPTSBpcyBzdXBwb3J0ZWQuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgdHJ5IHtcbiAgICBzdXBwb3J0LmRvbSA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5ub2RlVHlwZSA9PT0gMTE7XG4gIH0gY2F0Y2goZSkge1xuICAgIHN1cHBvcnQuZG9tID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0IGlmIGBhcmd1bWVudHNgIG9iamVjdCBpbmRleGVzIGFyZSBub24tZW51bWVyYWJsZS5cbiAgICpcbiAgICogSW4gRmlyZWZveCA8IDQsIElFIDwgOSwgUGhhbnRvbUpTLCBhbmQgU2FmYXJpIDwgNS4xIGBhcmd1bWVudHNgIG9iamVjdFxuICAgKiBpbmRleGVzIGFyZSBub24tZW51bWVyYWJsZS4gQ2hyb21lIDwgMjUgYW5kIE5vZGUuanMgPCAwLjExLjAgdHJlYXRcbiAgICogYGFyZ3VtZW50c2Agb2JqZWN0IGluZGV4ZXMgYXMgbm9uLWVudW1lcmFibGUgYW5kIGZhaWwgYGhhc093blByb3BlcnR5YFxuICAgKiBjaGVja3MgZm9yIGluZGV4ZXMgdGhhdCBleGNlZWQgdGhlIG51bWJlciBvZiBmdW5jdGlvbiBwYXJhbWV0ZXJzIGFuZFxuICAgKiB3aG9zZSBhc3NvY2lhdGVkIGFyZ3VtZW50IHZhbHVlcyBhcmUgYDBgLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHRyeSB7XG4gICAgc3VwcG9ydC5ub25FbnVtQXJncyA9ICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGFyZ3MsIDEpO1xuICB9IGNhdGNoKGUpIHtcbiAgICBzdXBwb3J0Lm5vbkVudW1BcmdzID0gdHJ1ZTtcbiAgfVxufSgxLCAwKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3VwcG9ydDtcbiIsIi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBgdmFsdWVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmV0dXJuIGZyb20gdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJyB9O1xuICogdmFyIGdldHRlciA9IF8uY29uc3RhbnQob2JqZWN0KTtcbiAqXG4gKiBnZXR0ZXIoKSA9PT0gb2JqZWN0O1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBjb25zdGFudCh2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnN0YW50O1xuIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBwcm92aWRlZCB0byBpdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqXG4gKiBfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdDtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlkZW50aXR5O1xuIiwidmFyIGJhc2VQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VQcm9wZXJ0eScpLFxuICAgIGJhc2VQcm9wZXJ0eURlZXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlUHJvcGVydHlEZWVwJyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0tleScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBhdCBgcGF0aGAgb24gYVxuICogZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbGl0eVxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFtcbiAqICAgeyAnYSc6IHsgJ2InOiB7ICdjJzogMiB9IH0gfSxcbiAqICAgeyAnYSc6IHsgJ2InOiB7ICdjJzogMSB9IH0gfVxuICogXTtcbiAqXG4gKiBfLm1hcChvYmplY3RzLCBfLnByb3BlcnR5KCdhLmIuYycpKTtcbiAqIC8vID0+IFsyLCAxXVxuICpcbiAqIF8ucGx1Y2soXy5zb3J0Qnkob2JqZWN0cywgXy5wcm9wZXJ0eShbJ2EnLCAnYicsICdjJ10pKSwgJ2EuYi5jJyk7XG4gKiAvLyA9PiBbMSwgMl1cbiAqL1xuZnVuY3Rpb24gcHJvcGVydHkocGF0aCkge1xuICByZXR1cm4gaXNLZXkocGF0aCkgPyBiYXNlUHJvcGVydHkocGF0aCkgOiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHByb3BlcnR5O1xuIiwiLyohIE5hdGl2ZSBQcm9taXNlIE9ubHlcbiAgICB2MC43LjgtYSAoYykgS3lsZSBTaW1wc29uXG4gICAgTUlUIExpY2Vuc2U6IGh0dHA6Ly9nZXRpZnkubWl0LWxpY2Vuc2Uub3JnXG4qL1xuIWZ1bmN0aW9uKHQsbixlKXtuW3RdPW5bdF18fGUoKSxcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1uW3RdOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKGZ1bmN0aW9uKCl7cmV0dXJuIG5bdF19KX0oXCJQcm9taXNlXCIsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6dGhpcyxmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHQodCxuKXtsLmFkZCh0LG4pLGh8fChoPXkobC5kcmFpbikpfWZ1bmN0aW9uIG4odCl7dmFyIG4sZT10eXBlb2YgdDtyZXR1cm4gbnVsbD09dHx8XCJvYmplY3RcIiE9ZSYmXCJmdW5jdGlvblwiIT1lfHwobj10LnRoZW4pLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjohMX1mdW5jdGlvbiBlKCl7Zm9yKHZhciB0PTA7dDx0aGlzLmNoYWluLmxlbmd0aDt0Kyspbyh0aGlzLDE9PT10aGlzLnN0YXRlP3RoaXMuY2hhaW5bdF0uc3VjY2Vzczp0aGlzLmNoYWluW3RdLmZhaWx1cmUsdGhpcy5jaGFpblt0XSk7dGhpcy5jaGFpbi5sZW5ndGg9MH1mdW5jdGlvbiBvKHQsZSxvKXt2YXIgcixpO3RyeXtlPT09ITE/by5yZWplY3QodC5tc2cpOihyPWU9PT0hMD90Lm1zZzplLmNhbGwodm9pZCAwLHQubXNnKSxyPT09by5wcm9taXNlP28ucmVqZWN0KFR5cGVFcnJvcihcIlByb21pc2UtY2hhaW4gY3ljbGVcIikpOihpPW4ocikpP2kuY2FsbChyLG8ucmVzb2x2ZSxvLnJlamVjdCk6by5yZXNvbHZlKHIpKX1jYXRjaChjKXtvLnJlamVjdChjKX19ZnVuY3Rpb24gcihvKXt2YXIgYyx1LGE9dGhpcztpZighYS50cmlnZ2VyZWQpe2EudHJpZ2dlcmVkPSEwLGEuZGVmJiYoYT1hLmRlZik7dHJ5eyhjPW4obykpPyh1PW5ldyBmKGEpLGMuY2FsbChvLGZ1bmN0aW9uKCl7ci5hcHBseSh1LGFyZ3VtZW50cyl9LGZ1bmN0aW9uKCl7aS5hcHBseSh1LGFyZ3VtZW50cyl9KSk6KGEubXNnPW8sYS5zdGF0ZT0xLGEuY2hhaW4ubGVuZ3RoPjAmJnQoZSxhKSl9Y2F0Y2gocyl7aS5jYWxsKHV8fG5ldyBmKGEpLHMpfX19ZnVuY3Rpb24gaShuKXt2YXIgbz10aGlzO28udHJpZ2dlcmVkfHwoby50cmlnZ2VyZWQ9ITAsby5kZWYmJihvPW8uZGVmKSxvLm1zZz1uLG8uc3RhdGU9MixvLmNoYWluLmxlbmd0aD4wJiZ0KGUsbykpfWZ1bmN0aW9uIGModCxuLGUsbyl7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspIWZ1bmN0aW9uKHIpe3QucmVzb2x2ZShuW3JdKS50aGVuKGZ1bmN0aW9uKHQpe2Uocix0KX0sbyl9KHIpfWZ1bmN0aW9uIGYodCl7dGhpcy5kZWY9dCx0aGlzLnRyaWdnZXJlZD0hMX1mdW5jdGlvbiB1KHQpe3RoaXMucHJvbWlzZT10LHRoaXMuc3RhdGU9MCx0aGlzLnRyaWdnZXJlZD0hMSx0aGlzLmNoYWluPVtdLHRoaXMubXNnPXZvaWQgMH1mdW5jdGlvbiBhKG4pe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgZnVuY3Rpb25cIik7aWYoMCE9PXRoaXMuX19OUE9fXyl0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBwcm9taXNlXCIpO3RoaXMuX19OUE9fXz0xO3ZhciBvPW5ldyB1KHRoaXMpO3RoaXMudGhlbj1mdW5jdGlvbihuLHIpe3ZhciBpPXtzdWNjZXNzOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjohMCxmYWlsdXJlOlwiZnVuY3Rpb25cIj09dHlwZW9mIHI/cjohMX07cmV0dXJuIGkucHJvbWlzZT1uZXcgdGhpcy5jb25zdHJ1Y3RvcihmdW5jdGlvbih0LG4pe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHR8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgZnVuY3Rpb25cIik7aS5yZXNvbHZlPXQsaS5yZWplY3Q9bn0pLG8uY2hhaW4ucHVzaChpKSwwIT09by5zdGF0ZSYmdChlLG8pLGkucHJvbWlzZX0sdGhpc1tcImNhdGNoXCJdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLHQpfTt0cnl7bi5jYWxsKHZvaWQgMCxmdW5jdGlvbih0KXtyLmNhbGwobyx0KX0sZnVuY3Rpb24odCl7aS5jYWxsKG8sdCl9KX1jYXRjaChjKXtpLmNhbGwobyxjKX19dmFyIHMsaCxsLHA9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyx5PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/ZnVuY3Rpb24odCl7cmV0dXJuIHNldEltbWVkaWF0ZSh0KX06c2V0VGltZW91dDt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LFwieFwiLHt9KSxzPWZ1bmN0aW9uKHQsbixlLG8pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTpvIT09ITF9KX19Y2F0Y2goZCl7cz1mdW5jdGlvbih0LG4sZSl7cmV0dXJuIHRbbl09ZSx0fX1sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LG4pe3RoaXMuZm49dCx0aGlzLnNlbGY9bix0aGlzLm5leHQ9dm9pZCAwfXZhciBuLGUsbztyZXR1cm57YWRkOmZ1bmN0aW9uKHIsaSl7bz1uZXcgdChyLGkpLGU/ZS5uZXh0PW86bj1vLGU9byxvPXZvaWQgMH0sZHJhaW46ZnVuY3Rpb24oKXt2YXIgdD1uO2ZvcihuPWU9aD12b2lkIDA7dDspdC5mbi5jYWxsKHQuc2VsZiksdD10Lm5leHR9fX0oKTt2YXIgZz1zKHt9LFwiY29uc3RydWN0b3JcIixhLCExKTtyZXR1cm4gYS5wcm90b3R5cGU9ZyxzKGcsXCJfX05QT19fXCIsMCwhMSkscyhhLFwicmVzb2x2ZVwiLGZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIHQmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiYxPT09dC5fX05QT19fP3Q6bmV3IG4oZnVuY3Rpb24obixlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBufHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIGZ1bmN0aW9uXCIpO24odCl9KX0pLHMoYSxcInJlamVjdFwiLGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdGhpcyhmdW5jdGlvbihuLGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG58fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgZnVuY3Rpb25cIik7ZSh0KX0pfSkscyhhLFwiYWxsXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm5cIltvYmplY3QgQXJyYXldXCIhPXAuY2FsbCh0KT9uLnJlamVjdChUeXBlRXJyb3IoXCJOb3QgYW4gYXJyYXlcIikpOjA9PT10Lmxlbmd0aD9uLnJlc29sdmUoW10pOm5ldyBuKGZ1bmN0aW9uKGUsbyl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZXx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbyl0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTt2YXIgcj10Lmxlbmd0aCxpPUFycmF5KHIpLGY9MDtjKG4sdCxmdW5jdGlvbih0LG4pe2lbdF09biwrK2Y9PT1yJiZlKGkpfSxvKX0pfSkscyhhLFwicmFjZVwiLGZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiIT1wLmNhbGwodCk/bi5yZWplY3QoVHlwZUVycm9yKFwiTm90IGFuIGFycmF5XCIpKTpuZXcgbihmdW5jdGlvbihlLG8pe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIG8pdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgZnVuY3Rpb25cIik7YyhuLHQsZnVuY3Rpb24odCxuKXtlKG4pfSxvKX0pfSksYX0pO1xuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBKZXJlbXkgV2hpdGxvY2tcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHN1cHBvcnRlZExvYWRlcnMgPSB7XG4gIGZpbGU6IHJlcXVpcmUoJy4vbGliL2xvYWRlcnMvZmlsZScpLFxuICBodHRwOiByZXF1aXJlKCcuL2xpYi9sb2FkZXJzL2h0dHAnKSxcbiAgaHR0cHM6IHJlcXVpcmUoJy4vbGliL2xvYWRlcnMvaHR0cCcpXG59O1xudmFyIGRlZmF1bHRMb2FkZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IHN1cHBvcnRlZExvYWRlcnMuZmlsZSA6IHN1cHBvcnRlZExvYWRlcnMuaHR0cDtcblxuLy8gTG9hZCBwcm9taXNlcyBwb2x5ZmlsbCBpZiBuZWNlc3NhcnlcbmlmICh0eXBlb2YgUHJvbWlzZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgcmVxdWlyZSgnbmF0aXZlLXByb21pc2Utb25seScpO1xufVxuXG4vKipcbiAqIEVycm9yLWZpcnN0IGNhbGxiYWNrLlxuICpcbiAqIEBwYXJhbSB7ZXJyb3J9IFtlcnJdIC0gVGhlIGVycm9yIGlmIHRoZXJlIGlzIGEgcHJvYmxlbVxuICogQHBhcmFtIHtzdHJpbmd9IFtyZXN1bHRdIC0gVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb25cbiAqXG4gKiBAY2FsbGJhY2sgcmVzdWx0Q2FsbGJhY2tcbiAqL1xuXG4vKipcbiAqIENhbGxiYWNrIHVzZWQgdG8gcHJvdmlkZSBhY2Nlc3MgdG8gYWx0ZXJpbmcgYSByZW1vdGUgcmVxdWVzdCBwcmlvciB0byB0aGUgcmVxdWVzdCBiZWluZyBtYWRlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSByZXEgLSBUaGUgU3VwZXJhZ2VudCByZXF1ZXN0IG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IGxvY2F0aW9uIC0gVGhlIGxvY2F0aW9uIGJlaW5nIHJldHJpZXZlZFxuICpcbiAqIEBjYWxsYmFjayBwcmVwYXJlUmVxdWVzdENhbGxiYWNrXG4gKi9cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBsb2FkZXIgZm9yIHRoZSBnaXZlbiBsb2NhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gLSBUaGUgbG9jYXRpb24gdG8gbG9hZFxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSBsb2FkZXIgdG8gdXNlXG4gKi9cbmZ1bmN0aW9uIGdldExvYWRlciAobG9jYXRpb24pIHtcbiAgcmV0dXJuIHN1cHBvcnRlZExvYWRlcnNbbG9jYXRpb24uc3BsaXQoJzonKVswXV0gfHwgZGVmYXVsdExvYWRlcjtcbn1cblxuLyoqXG4gKiBMb2FkcyBhIGRvY3VtZW50IGF0IHRoZSBwcm92aWRlZCBsb2NhdGlvbiBhbmQgcmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHJlcHJlc2VudGF0aW9uLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBsb2NhdGlvbiAtIFRoZSBsb2NhdGlvbiB0byB0aGUgZG9jdW1lbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBUaGUgb3B0aW9uc1xuICogQHBhcmFtIHtyZXN1bHRDYWxsYmFja30gZG9uZSAtIFRoZSByZXN1bHQgY2FsbGJhY2tcbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZX0gQWx3YXlzIHJldHVybnMgYSBwcm9taXNlIGV2ZW4gaWYgdGhlcmUgaXMgYSBjYWxsYmFjayBwcm92aWRlZFxuICovXG5tb2R1bGUuZXhwb3J0cy5sb2FkID0gZnVuY3Rpb24gKGxvY2F0aW9uLCBvcHRpb25zLCBkb25lKSB7XG4gIHZhciBhbGxUYXNrcyA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZG9uZSA9IG9wdGlvbnM7XG4gICAgb3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGFyZ3VtZW50c1xuICBhbGxUYXNrcyA9IGFsbFRhc2tzLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIGlmICh0eXBlb2YgbG9jYXRpb24gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdsb2NhdGlvbiBpcyByZXF1aXJlZCcpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGxvY2F0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbG9jYXRpb24gbXVzdCBiZSBhIHN0cmluZycpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkb25lICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9uZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgfVxuICB9KTtcblxuICAvLyBMb2FkIHRoZSBkb2N1bWVudCBmcm9tIHRoZSBwcm92aWRlZCBsb2NhdGlvbiBhbmQgcHJvY2VzcyBpdFxuICBhbGxUYXNrcyA9IGFsbFRhc2tzLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgbG9hZGVyID0gZ2V0TG9hZGVyKGxvY2F0aW9uKTtcblxuICAgICAgbG9hZGVyLmxvYWQobG9jYXRpb24sIG9wdGlvbnMsIGZ1bmN0aW9uIChlcnIsIGRvY3VtZW50KSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKGRvY3VtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIFVzZSB0aGUgY2FsbGJhY2sgaWYgcHJvdmlkZWQgYW5kIGl0IGlzIGEgZnVuY3Rpb25cbiAgaWYgKHR5cGVvZiBkb25lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYWxsVGFza3MgPSBhbGxUYXNrc1xuICAgICAgLnRoZW4oZnVuY3Rpb24gKGRvY3VtZW50KSB7XG4gICAgICAgIGRvbmUodW5kZWZpbmVkLCBkb2N1bWVudCk7XG4gICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGRvbmUoZXJyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGFsbFRhc2tzO1xufTtcbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgSmVyZW15IFdoaXRsb2NrXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTG9hZHMgYSBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGxvY2F0aW9uIC0gVGhlIGZpbGVzeXN0ZW0gbG9jYXRpb24gKElmIHJlbGF0aXZlLCBsb2NhdGlvbiBpcyByZWxhdGl2ZSB0byBwcm9jZXNzLmN3ZCgpKS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gVGhlIGxvYWRlciBvcHRpb25zIChVbnVzZWQpXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIFRoZSBlcnJvci1maXJzdCBjYWxsYmFja1xuICovXG5tb2R1bGUuZXhwb3J0cy5sb2FkID0gZnVuY3Rpb24gKGxvY2F0aW9uLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICBjYWxsYmFjayhuZXcgVHlwZUVycm9yKCdUaGUgXFwnZmlsZVxcJyBzY2hlbWUgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3NlcicpKTtcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEplcmVteSBXaGl0bG9ja1xuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVxdWVzdCA9IHJlcXVpcmUoJ3N1cGVyYWdlbnQnKTtcblxudmFyIHN1cHBvcnRlZEh0dHBNZXRob2RzID0gWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnLCAncGF0Y2gnLCAncG9zdCcsICdwdXQnXTtcblxuLyoqXG4gKiBMb2FkcyBhIGZpbGUgZnJvbSBhbiBodHRwIG9yIGh0dHBzIFVSTC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gLSBUaGUgZG9jdW1lbnQgVVJMIChJZiByZWxhdGl2ZSwgbG9jYXRpb24gaXMgcmVsYXRpdmUgdG8gd2luZG93LmxvY2F0aW9uKS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gVGhlIGxvYWRlciBvcHRpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubWV0aG9kPWdldF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIGZvciB0aGUgcmVxdWVzdFxuICogQHBhcmFtIHtwcmVwYXJlUmVxdWVzdENhbGxiYWNrfSBbb3B0aW9ucy5wcmVwYXJlUmVxdWVzdF0gLSBUaGUgY2FsbGJhY2sgdXNlZCB0byBwcmVwYXJlIGEgcmVxdWVzdFxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBUaGUgZXJyb3ItZmlyc3QgY2FsbGJhY2tcbiAqL1xubW9kdWxlLmV4cG9ydHMubG9hZCA9IGZ1bmN0aW9uIChsb2NhdGlvbiwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIHJlYWxVcmwgPSBsb2NhdGlvbi5zcGxpdCgnIycpWzBdO1xuICB2YXIgcmVhbE1ldGhvZCA9IG9wdGlvbnMubWV0aG9kID8gb3B0aW9ucy5tZXRob2QudG9Mb3dlckNhc2UoKSA6ICdnZXQnO1xuICB2YXIgZXJyO1xuICB2YXIgcmVhbFJlcXVlc3Q7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnByZXBhcmVSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygb3B0aW9ucy5wcmVwYXJlUmVxdWVzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGVyciA9IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMucHJlcGFyZVJlcXVlc3QgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMubWV0aG9kICE9PSAndW5kZWZpbmVkJykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5tZXRob2QgIT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnIgPSBuZXcgVHlwZUVycm9yKCdvcHRpb25zLm1ldGhvZCBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgfSBlbHNlIGlmIChzdXBwb3J0ZWRIdHRwTWV0aG9kcy5pbmRleE9mKG9wdGlvbnMubWV0aG9kKSA9PT0gLTEpIHtcbiAgICAgIGVyciA9IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMubWV0aG9kIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6ICcgK1xuICAgICAgICBzdXBwb3J0ZWRIdHRwTWV0aG9kcy5zbGljZSgwLCBzdXBwb3J0ZWRIdHRwTWV0aG9kcy5sZW5ndGggLSAxKS5qb2luKCcsICcpICsgJyBvciAnICtcbiAgICAgICAgc3VwcG9ydGVkSHR0cE1ldGhvZHNbc3VwcG9ydGVkSHR0cE1ldGhvZHMubGVuZ3RoIC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZXJyKSB7XG4gICAgcmVhbFJlcXVlc3QgPSByZXF1ZXN0W3JlYWxNZXRob2QgPT09ICdkZWxldGUnID8gJ2RlbCcgOiByZWFsTWV0aG9kXShyZWFsVXJsKTtcblxuICAgIGlmIChvcHRpb25zLnByZXBhcmVSZXF1ZXN0KSB7XG4gICAgICBvcHRpb25zLnByZXBhcmVSZXF1ZXN0KHJlYWxSZXF1ZXN0KTtcbiAgICB9XG5cbiAgICAvLyBidWZmZXIoKSBpcyBvbmx5IGF2YWlsYWJsZSBpbiBOb2RlLmpzXG4gICAgaWYgKHR5cGVvZiByZWFsUmVxdWVzdC5idWZmZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlYWxSZXF1ZXN0LmJ1ZmZlcih0cnVlKTtcbiAgICB9XG5cbiAgICByZWFsUmVxdWVzdFxuICAgICAgLmVuZChmdW5jdGlvbiAoZXJyMiwgcmVzKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycjIsIHJlcyA/IHJlcy50ZXh0IDogcmVzKTtcbiAgICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKGVycik7XG4gIH1cbn07XG4iLCIvKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIEVtaXR0ZXIgPSByZXF1aXJlKCdlbWl0dGVyJyk7XG52YXIgcmVkdWNlID0gcmVxdWlyZSgncmVkdWNlJyk7XG5cbi8qKlxuICogUm9vdCByZWZlcmVuY2UgZm9yIGlmcmFtZXMuXG4gKi9cblxudmFyIHJvb3QgPSAndW5kZWZpbmVkJyA9PSB0eXBlb2Ygd2luZG93XG4gID8gKHRoaXMgfHwgc2VsZilcbiAgOiB3aW5kb3c7XG5cbi8qKlxuICogTm9vcC5cbiAqL1xuXG5mdW5jdGlvbiBub29wKCl7fTtcblxuLyoqXG4gKiBDaGVjayBpZiBgb2JqYCBpcyBhIGhvc3Qgb2JqZWN0LFxuICogd2UgZG9uJ3Qgd2FudCB0byBzZXJpYWxpemUgdGhlc2UgOilcbiAqXG4gKiBUT0RPOiBmdXR1cmUgcHJvb2YsIG1vdmUgdG8gY29tcG9lbnQgbGFuZFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc0hvc3Qob2JqKSB7XG4gIHZhciBzdHIgPSB7fS50b1N0cmluZy5jYWxsKG9iaik7XG5cbiAgc3dpdGNoIChzdHIpIHtcbiAgICBjYXNlICdbb2JqZWN0IEZpbGVdJzpcbiAgICBjYXNlICdbb2JqZWN0IEJsb2JdJzpcbiAgICBjYXNlICdbb2JqZWN0IEZvcm1EYXRhXSc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIFhIUi5cbiAqL1xuXG5yZXF1ZXN0LmdldFhIUiA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHJvb3QuWE1MSHR0cFJlcXVlc3RcbiAgICAgICYmICghcm9vdC5sb2NhdGlvbiB8fCAnZmlsZTonICE9IHJvb3QubG9jYXRpb24ucHJvdG9jb2xcbiAgICAgICAgICB8fCAhcm9vdC5BY3RpdmVYT2JqZWN0KSkge1xuICAgIHJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3Q7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNaWNyb3NvZnQuWE1MSFRUUCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUC42LjAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAuMy4wJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQJyk7IH0gY2F0Y2goZSkge31cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYWRkZWQgdG8gc3VwcG9ydCBJRS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxudmFyIHRyaW0gPSAnJy50cmltXG4gID8gZnVuY3Rpb24ocykgeyByZXR1cm4gcy50cmltKCk7IH1cbiAgOiBmdW5jdGlvbihzKSB7IHJldHVybiBzLnJlcGxhY2UoLyheXFxzKnxcXHMqJCkvZywgJycpOyB9O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNPYmplY3Qob2JqKSB7XG4gIHJldHVybiBvYmogPT09IE9iamVjdChvYmopO1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gYG9iamAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VyaWFsaXplKG9iaikge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHZhciBwYWlycyA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKG51bGwgIT0gb2JqW2tleV0pIHtcbiAgICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSlcbiAgICAgICAgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQob2JqW2tleV0pKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhaXJzLmpvaW4oJyYnKTtcbn1cblxuLyoqXG4gKiBFeHBvc2Ugc2VyaWFsaXphdGlvbiBtZXRob2QuXG4gKi9cblxuIHJlcXVlc3Quc2VyaWFsaXplT2JqZWN0ID0gc2VyaWFsaXplO1xuXG4gLyoqXG4gICogUGFyc2UgdGhlIGdpdmVuIHgtd3d3LWZvcm0tdXJsZW5jb2RlZCBgc3RyYC5cbiAgKlxuICAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICogQGFwaSBwcml2YXRlXG4gICovXG5cbmZ1bmN0aW9uIHBhcnNlU3RyaW5nKHN0cikge1xuICB2YXIgb2JqID0ge307XG4gIHZhciBwYWlycyA9IHN0ci5zcGxpdCgnJicpO1xuICB2YXIgcGFydHM7XG4gIHZhciBwYWlyO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBwYWlycy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIHBhaXIgPSBwYWlyc1tpXTtcbiAgICBwYXJ0cyA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzBdKV0gPSBkZWNvZGVVUklDb21wb25lbnQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBFeHBvc2UgcGFyc2VyLlxuICovXG5cbnJlcXVlc3QucGFyc2VTdHJpbmcgPSBwYXJzZVN0cmluZztcblxuLyoqXG4gKiBEZWZhdWx0IE1JTUUgdHlwZSBtYXAuXG4gKlxuICogICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICovXG5cbnJlcXVlc3QudHlwZXMgPSB7XG4gIGh0bWw6ICd0ZXh0L2h0bWwnLFxuICBqc29uOiAnYXBwbGljYXRpb24vanNvbicsXG4gIHhtbDogJ2FwcGxpY2F0aW9uL3htbCcsXG4gIHVybGVuY29kZWQ6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybS1kYXRhJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbi8qKlxuICogRGVmYXVsdCBzZXJpYWxpemF0aW9uIG1hcC5cbiAqXG4gKiAgICAgc3VwZXJhZ2VudC5zZXJpYWxpemVbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24ob2JqKXtcbiAqICAgICAgIHJldHVybiAnZ2VuZXJhdGVkIHhtbCBoZXJlJztcbiAqICAgICB9O1xuICpcbiAqL1xuXG4gcmVxdWVzdC5zZXJpYWxpemUgPSB7XG4gICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzogc2VyaWFsaXplLFxuICAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnN0cmluZ2lmeVxuIH07XG5cbiAvKipcbiAgKiBEZWZhdWx0IHBhcnNlcnMuXG4gICpcbiAgKiAgICAgc3VwZXJhZ2VudC5wYXJzZVsnYXBwbGljYXRpb24veG1sJ10gPSBmdW5jdGlvbihzdHIpe1xuICAqICAgICAgIHJldHVybiB7IG9iamVjdCBwYXJzZWQgZnJvbSBzdHIgfTtcbiAgKiAgICAgfTtcbiAgKlxuICAqL1xuXG5yZXF1ZXN0LnBhcnNlID0ge1xuICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzogcGFyc2VTdHJpbmcsXG4gICdhcHBsaWNhdGlvbi9qc29uJzogSlNPTi5wYXJzZVxufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gaGVhZGVyIGBzdHJgIGludG9cbiAqIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBtYXBwZWQgZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKHN0cikge1xuICB2YXIgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKTtcbiAgdmFyIGZpZWxkcyA9IHt9O1xuICB2YXIgaW5kZXg7XG4gIHZhciBsaW5lO1xuICB2YXIgZmllbGQ7XG4gIHZhciB2YWw7XG5cbiAgbGluZXMucG9wKCk7IC8vIHRyYWlsaW5nIENSTEZcblxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gbGluZXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICBsaW5lID0gbGluZXNbaV07XG4gICAgaW5kZXggPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICBmaWVsZCA9IGxpbmUuc2xpY2UoMCwgaW5kZXgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gdHJpbShsaW5lLnNsaWNlKGluZGV4ICsgMSkpO1xuICAgIGZpZWxkc1tmaWVsZF0gPSB2YWw7XG4gIH1cblxuICByZXR1cm4gZmllbGRzO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgbWltZSB0eXBlIGZvciB0aGUgZ2l2ZW4gYHN0cmAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gdHlwZShzdHIpe1xuICByZXR1cm4gc3RyLnNwbGl0KC8gKjsgKi8pLnNoaWZ0KCk7XG59O1xuXG4vKipcbiAqIFJldHVybiBoZWFkZXIgZmllbGQgcGFyYW1ldGVycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJhbXMoc3RyKXtcbiAgcmV0dXJuIHJlZHVjZShzdHIuc3BsaXQoLyAqOyAqLyksIGZ1bmN0aW9uKG9iaiwgc3RyKXtcbiAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoLyAqPSAqLylcbiAgICAgICwga2V5ID0gcGFydHMuc2hpZnQoKVxuICAgICAgLCB2YWwgPSBwYXJ0cy5zaGlmdCgpO1xuXG4gICAgaWYgKGtleSAmJiB2YWwpIG9ialtrZXldID0gdmFsO1xuICAgIHJldHVybiBvYmo7XG4gIH0sIHt9KTtcbn07XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVzcG9uc2VgIHdpdGggdGhlIGdpdmVuIGB4aHJgLlxuICpcbiAqICAtIHNldCBmbGFncyAoLm9rLCAuZXJyb3IsIGV0YylcbiAqICAtIHBhcnNlIGhlYWRlclxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICBBbGlhc2luZyBgc3VwZXJhZ2VudGAgYXMgYHJlcXVlc3RgIGlzIG5pY2U6XG4gKlxuICogICAgICByZXF1ZXN0ID0gc3VwZXJhZ2VudDtcbiAqXG4gKiAgV2UgY2FuIHVzZSB0aGUgcHJvbWlzZS1saWtlIEFQSSwgb3IgcGFzcyBjYWxsYmFja3M6XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnLycpLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICogICAgICByZXF1ZXN0LmdldCgnLycsIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIFNlbmRpbmcgZGF0YSBjYW4gYmUgY2hhaW5lZDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAuc2VuZCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5wb3N0KClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBPciBmdXJ0aGVyIHJlZHVjZWQgdG8gYSBzaW5nbGUgY2FsbCBmb3Igc2ltcGxlIGNhc2VzOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIEBwYXJhbSB7WE1MSFRUUFJlcXVlc3R9IHhoclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIFJlc3BvbnNlKHJlcSwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdGhpcy5yZXEgPSByZXE7XG4gIHRoaXMueGhyID0gdGhpcy5yZXEueGhyO1xuICAvLyByZXNwb25zZVRleHQgaXMgYWNjZXNzaWJsZSBvbmx5IGlmIHJlc3BvbnNlVHlwZSBpcyAnJyBvciAndGV4dCcgYW5kIG9uIG9sZGVyIGJyb3dzZXJzXG4gIHRoaXMudGV4dCA9ICgodGhpcy5yZXEubWV0aG9kICE9J0hFQUQnICYmICh0aGlzLnhoci5yZXNwb25zZVR5cGUgPT09ICcnIHx8IHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJ3RleHQnKSkgfHwgdHlwZW9mIHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgID8gdGhpcy54aHIucmVzcG9uc2VUZXh0XG4gICAgIDogbnVsbDtcbiAgdGhpcy5zdGF0dXNUZXh0ID0gdGhpcy5yZXEueGhyLnN0YXR1c1RleHQ7XG4gIHRoaXMuc2V0U3RhdHVzUHJvcGVydGllcyh0aGlzLnhoci5zdGF0dXMpO1xuICB0aGlzLmhlYWRlciA9IHRoaXMuaGVhZGVycyA9IHBhcnNlSGVhZGVyKHRoaXMueGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTtcbiAgLy8gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHNvbWV0aW1lcyBmYWxzZWx5IHJldHVybnMgXCJcIiBmb3IgQ09SUyByZXF1ZXN0cywgYnV0XG4gIC8vIGdldFJlc3BvbnNlSGVhZGVyIHN0aWxsIHdvcmtzLiBzbyB3ZSBnZXQgY29udGVudC10eXBlIGV2ZW4gaWYgZ2V0dGluZ1xuICAvLyBvdGhlciBoZWFkZXJzIGZhaWxzLlxuICB0aGlzLmhlYWRlclsnY29udGVudC10eXBlJ10gPSB0aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcignY29udGVudC10eXBlJyk7XG4gIHRoaXMuc2V0SGVhZGVyUHJvcGVydGllcyh0aGlzLmhlYWRlcik7XG4gIHRoaXMuYm9keSA9IHRoaXMucmVxLm1ldGhvZCAhPSAnSEVBRCdcbiAgICA/IHRoaXMucGFyc2VCb2R5KHRoaXMudGV4dCA/IHRoaXMudGV4dCA6IHRoaXMueGhyLnJlc3BvbnNlKVxuICAgIDogbnVsbDtcbn1cblxuLyoqXG4gKiBHZXQgY2FzZS1pbnNlbnNpdGl2ZSBgZmllbGRgIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oZmllbGQpe1xuICByZXR1cm4gdGhpcy5oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV07XG59O1xuXG4vKipcbiAqIFNldCBoZWFkZXIgcmVsYXRlZCBwcm9wZXJ0aWVzOlxuICpcbiAqICAgLSBgLnR5cGVgIHRoZSBjb250ZW50IHR5cGUgd2l0aG91dCBwYXJhbXNcbiAqXG4gKiBBIHJlc3BvbnNlIG9mIFwiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04XCJcbiAqIHdpbGwgcHJvdmlkZSB5b3Ugd2l0aCBhIGAudHlwZWAgb2YgXCJ0ZXh0L3BsYWluXCIuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGhlYWRlclxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnNldEhlYWRlclByb3BlcnRpZXMgPSBmdW5jdGlvbihoZWFkZXIpe1xuICAvLyBjb250ZW50LXR5cGVcbiAgdmFyIGN0ID0gdGhpcy5oZWFkZXJbJ2NvbnRlbnQtdHlwZSddIHx8ICcnO1xuICB0aGlzLnR5cGUgPSB0eXBlKGN0KTtcblxuICAvLyBwYXJhbXNcbiAgdmFyIG9iaiA9IHBhcmFtcyhjdCk7XG4gIGZvciAodmFyIGtleSBpbiBvYmopIHRoaXNba2V5XSA9IG9ialtrZXldO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gYm9keSBgc3RyYC5cbiAqXG4gKiBVc2VkIGZvciBhdXRvLXBhcnNpbmcgb2YgYm9kaWVzLiBQYXJzZXJzXG4gKiBhcmUgZGVmaW5lZCBvbiB0aGUgYHN1cGVyYWdlbnQucGFyc2VgIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtNaXhlZH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5wYXJzZUJvZHkgPSBmdW5jdGlvbihzdHIpe1xuICB2YXIgcGFyc2UgPSByZXF1ZXN0LnBhcnNlW3RoaXMudHlwZV07XG4gIHJldHVybiBwYXJzZSAmJiBzdHIgJiYgKHN0ci5sZW5ndGggfHwgc3RyIGluc3RhbmNlb2YgT2JqZWN0KVxuICAgID8gcGFyc2Uoc3RyKVxuICAgIDogbnVsbDtcbn07XG5cbi8qKlxuICogU2V0IGZsYWdzIHN1Y2ggYXMgYC5va2AgYmFzZWQgb24gYHN0YXR1c2AuXG4gKlxuICogRm9yIGV4YW1wbGUgYSAyeHggcmVzcG9uc2Ugd2lsbCBnaXZlIHlvdSBhIGAub2tgIG9mIF9fdHJ1ZV9fXG4gKiB3aGVyZWFzIDV4eCB3aWxsIGJlIF9fZmFsc2VfXyBhbmQgYC5lcnJvcmAgd2lsbCBiZSBfX3RydWVfXy4gVGhlXG4gKiBgLmNsaWVudEVycm9yYCBhbmQgYC5zZXJ2ZXJFcnJvcmAgYXJlIGFsc28gYXZhaWxhYmxlIHRvIGJlIG1vcmVcbiAqIHNwZWNpZmljLCBhbmQgYC5zdGF0dXNUeXBlYCBpcyB0aGUgY2xhc3Mgb2YgZXJyb3IgcmFuZ2luZyBmcm9tIDEuLjVcbiAqIHNvbWV0aW1lcyB1c2VmdWwgZm9yIG1hcHBpbmcgcmVzcG9uZCBjb2xvcnMgZXRjLlxuICpcbiAqIFwic3VnYXJcIiBwcm9wZXJ0aWVzIGFyZSBhbHNvIGRlZmluZWQgZm9yIGNvbW1vbiBjYXNlcy4gQ3VycmVudGx5IHByb3ZpZGluZzpcbiAqXG4gKiAgIC0gLm5vQ29udGVudFxuICogICAtIC5iYWRSZXF1ZXN0XG4gKiAgIC0gLnVuYXV0aG9yaXplZFxuICogICAtIC5ub3RBY2NlcHRhYmxlXG4gKiAgIC0gLm5vdEZvdW5kXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IHN0YXR1c1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnNldFN0YXR1c1Byb3BlcnRpZXMgPSBmdW5jdGlvbihzdGF0dXMpe1xuICAvLyBoYW5kbGUgSUU5IGJ1ZzogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDA0Njk3Mi9tc2llLXJldHVybnMtc3RhdHVzLWNvZGUtb2YtMTIyMy1mb3ItYWpheC1yZXF1ZXN0XG4gIGlmIChzdGF0dXMgPT09IDEyMjMpIHtcbiAgICBzdGF0dXMgPSAyMDQ7XG4gIH1cblxuICB2YXIgdHlwZSA9IHN0YXR1cyAvIDEwMCB8IDA7XG5cbiAgLy8gc3RhdHVzIC8gY2xhc3NcbiAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gIHRoaXMuc3RhdHVzVHlwZSA9IHR5cGU7XG5cbiAgLy8gYmFzaWNzXG4gIHRoaXMuaW5mbyA9IDEgPT0gdHlwZTtcbiAgdGhpcy5vayA9IDIgPT0gdHlwZTtcbiAgdGhpcy5jbGllbnRFcnJvciA9IDQgPT0gdHlwZTtcbiAgdGhpcy5zZXJ2ZXJFcnJvciA9IDUgPT0gdHlwZTtcbiAgdGhpcy5lcnJvciA9ICg0ID09IHR5cGUgfHwgNSA9PSB0eXBlKVxuICAgID8gdGhpcy50b0Vycm9yKClcbiAgICA6IGZhbHNlO1xuXG4gIC8vIHN1Z2FyXG4gIHRoaXMuYWNjZXB0ZWQgPSAyMDIgPT0gc3RhdHVzO1xuICB0aGlzLm5vQ29udGVudCA9IDIwNCA9PSBzdGF0dXM7XG4gIHRoaXMuYmFkUmVxdWVzdCA9IDQwMCA9PSBzdGF0dXM7XG4gIHRoaXMudW5hdXRob3JpemVkID0gNDAxID09IHN0YXR1cztcbiAgdGhpcy5ub3RBY2NlcHRhYmxlID0gNDA2ID09IHN0YXR1cztcbiAgdGhpcy5ub3RGb3VuZCA9IDQwNCA9PSBzdGF0dXM7XG4gIHRoaXMuZm9yYmlkZGVuID0gNDAzID09IHN0YXR1cztcbn07XG5cbi8qKlxuICogUmV0dXJuIGFuIGBFcnJvcmAgcmVwcmVzZW50YXRpdmUgb2YgdGhpcyByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJuIHtFcnJvcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnRvRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gIHZhciBtZXRob2QgPSByZXEubWV0aG9kO1xuICB2YXIgdXJsID0gcmVxLnVybDtcblxuICB2YXIgbXNnID0gJ2Nhbm5vdCAnICsgbWV0aG9kICsgJyAnICsgdXJsICsgJyAoJyArIHRoaXMuc3RhdHVzICsgJyknO1xuICB2YXIgZXJyID0gbmV3IEVycm9yKG1zZyk7XG4gIGVyci5zdGF0dXMgPSB0aGlzLnN0YXR1cztcbiAgZXJyLm1ldGhvZCA9IG1ldGhvZDtcbiAgZXJyLnVybCA9IHVybDtcblxuICByZXR1cm4gZXJyO1xufTtcblxuLyoqXG4gKiBFeHBvc2UgYFJlc3BvbnNlYC5cbiAqL1xuXG5yZXF1ZXN0LlJlc3BvbnNlID0gUmVzcG9uc2U7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVxdWVzdGAgd2l0aCB0aGUgZ2l2ZW4gYG1ldGhvZGAgYW5kIGB1cmxgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtZXRob2RcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gUmVxdWVzdChtZXRob2QsIHVybCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIEVtaXR0ZXIuY2FsbCh0aGlzKTtcbiAgdGhpcy5fcXVlcnkgPSB0aGlzLl9xdWVyeSB8fCBbXTtcbiAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gIHRoaXMudXJsID0gdXJsO1xuICB0aGlzLmhlYWRlciA9IHt9O1xuICB0aGlzLl9oZWFkZXIgPSB7fTtcbiAgdGhpcy5vbignZW5kJywgZnVuY3Rpb24oKXtcbiAgICB2YXIgZXJyID0gbnVsbDtcbiAgICB2YXIgcmVzID0gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICByZXMgPSBuZXcgUmVzcG9uc2Uoc2VsZik7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBlcnIgPSBuZXcgRXJyb3IoJ1BhcnNlciBpcyB1bmFibGUgdG8gcGFyc2UgdGhlIHJlc3BvbnNlJyk7XG4gICAgICBlcnIucGFyc2UgPSB0cnVlO1xuICAgICAgZXJyLm9yaWdpbmFsID0gZTtcbiAgICAgIHJldHVybiBzZWxmLmNhbGxiYWNrKGVycik7XG4gICAgfVxuXG4gICAgc2VsZi5lbWl0KCdyZXNwb25zZScsIHJlcyk7XG5cbiAgICBpZiAoZXJyKSB7XG4gICAgICByZXR1cm4gc2VsZi5jYWxsYmFjayhlcnIsIHJlcyk7XG4gICAgfVxuXG4gICAgaWYgKHJlcy5zdGF0dXMgPj0gMjAwICYmIHJlcy5zdGF0dXMgPCAzMDApIHtcbiAgICAgIHJldHVybiBzZWxmLmNhbGxiYWNrKGVyciwgcmVzKTtcbiAgICB9XG5cbiAgICB2YXIgbmV3X2VyciA9IG5ldyBFcnJvcihyZXMuc3RhdHVzVGV4dCB8fCAnVW5zdWNjZXNzZnVsIEhUVFAgcmVzcG9uc2UnKTtcbiAgICBuZXdfZXJyLm9yaWdpbmFsID0gZXJyO1xuICAgIG5ld19lcnIucmVzcG9uc2UgPSByZXM7XG4gICAgbmV3X2Vyci5zdGF0dXMgPSByZXMuc3RhdHVzO1xuXG4gICAgc2VsZi5jYWxsYmFjayhlcnIgfHwgbmV3X2VyciwgcmVzKTtcbiAgfSk7XG59XG5cbi8qKlxuICogTWl4aW4gYEVtaXR0ZXJgLlxuICovXG5cbkVtaXR0ZXIoUmVxdWVzdC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIEFsbG93IGZvciBleHRlbnNpb25cbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbihmbikge1xuICBmbih0aGlzKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogU2V0IHRpbWVvdXQgdG8gYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS50aW1lb3V0ID0gZnVuY3Rpb24obXMpe1xuICB0aGlzLl90aW1lb3V0ID0gbXM7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDbGVhciBwcmV2aW91cyB0aW1lb3V0LlxuICpcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jbGVhclRpbWVvdXQgPSBmdW5jdGlvbigpe1xuICB0aGlzLl90aW1lb3V0ID0gMDtcbiAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEFib3J0IHRoZSByZXF1ZXN0LCBhbmQgY2xlYXIgcG90ZW50aWFsIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYWJvcnQgPSBmdW5jdGlvbigpe1xuICBpZiAodGhpcy5hYm9ydGVkKSByZXR1cm47XG4gIHRoaXMuYWJvcnRlZCA9IHRydWU7XG4gIHRoaXMueGhyLmFib3J0KCk7XG4gIHRoaXMuY2xlYXJUaW1lb3V0KCk7XG4gIHRoaXMuZW1pdCgnYWJvcnQnKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBoZWFkZXIgYGZpZWxkYCB0byBgdmFsYCwgb3IgbXVsdGlwbGUgZmllbGRzIHdpdGggb25lIG9iamVjdC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC5zZXQoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJylcbiAqICAgICAgICAuc2V0KCdYLUFQSS1LZXknLCAnZm9vYmFyJylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC5zZXQoeyBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJywgJ1gtQVBJLUtleSc6ICdmb29iYXInIH0pXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBmaWVsZFxuICogQHBhcmFtIHtTdHJpbmd9IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKGZpZWxkLCB2YWwpe1xuICBpZiAoaXNPYmplY3QoZmllbGQpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGZpZWxkKSB7XG4gICAgICB0aGlzLnNldChrZXksIGZpZWxkW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV0gPSB2YWw7XG4gIHRoaXMuaGVhZGVyW2ZpZWxkXSA9IHZhbDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBoZWFkZXIgYGZpZWxkYC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnVuc2V0KCdVc2VyLUFnZW50JylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS51bnNldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgZGVsZXRlIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbiAgZGVsZXRlIHRoaXMuaGVhZGVyW2ZpZWxkXTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEdldCBjYXNlLWluc2Vuc2l0aXZlIGhlYWRlciBgZmllbGRgIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuZ2V0SGVhZGVyID0gZnVuY3Rpb24oZmllbGQpe1xuICByZXR1cm4gdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xufTtcblxuLyoqXG4gKiBTZXQgQ29udGVudC1UeXBlIHRvIGB0eXBlYCwgbWFwcGluZyB2YWx1ZXMgZnJvbSBgcmVxdWVzdC50eXBlc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqICAgICAgcmVxdWVzdC5wb3N0KCcvJylcbiAqICAgICAgICAudHlwZSgneG1sJylcbiAqICAgICAgICAuc2VuZCh4bWxzdHJpbmcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCdhcHBsaWNhdGlvbi94bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnR5cGUgPSBmdW5jdGlvbih0eXBlKXtcbiAgdGhpcy5zZXQoJ0NvbnRlbnQtVHlwZScsIHJlcXVlc3QudHlwZXNbdHlwZV0gfHwgdHlwZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgQWNjZXB0IHRvIGB0eXBlYCwgbWFwcGluZyB2YWx1ZXMgZnJvbSBgcmVxdWVzdC50eXBlc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICBzdXBlcmFnZW50LnR5cGVzLmpzb24gPSAnYXBwbGljYXRpb24vanNvbic7XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnL2FnZW50JylcbiAqICAgICAgICAuYWNjZXB0KCdqc29uJylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhY2NlcHRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hY2NlcHQgPSBmdW5jdGlvbih0eXBlKXtcbiAgdGhpcy5zZXQoJ0FjY2VwdCcsIHJlcXVlc3QudHlwZXNbdHlwZV0gfHwgdHlwZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgQXV0aG9yaXphdGlvbiBmaWVsZCB2YWx1ZSB3aXRoIGB1c2VyYCBhbmQgYHBhc3NgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFzc1xuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmF1dGggPSBmdW5jdGlvbih1c2VyLCBwYXNzKXtcbiAgdmFyIHN0ciA9IGJ0b2EodXNlciArICc6JyArIHBhc3MpO1xuICB0aGlzLnNldCgnQXV0aG9yaXphdGlvbicsICdCYXNpYyAnICsgc3RyKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiogQWRkIHF1ZXJ5LXN0cmluZyBgdmFsYC5cbipcbiogRXhhbXBsZXM6XG4qXG4qICAgcmVxdWVzdC5nZXQoJy9zaG9lcycpXG4qICAgICAucXVlcnkoJ3NpemU9MTAnKVxuKiAgICAgLnF1ZXJ5KHsgY29sb3I6ICdibHVlJyB9KVxuKlxuKiBAcGFyYW0ge09iamVjdHxTdHJpbmd9IHZhbFxuKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiogQGFwaSBwdWJsaWNcbiovXG5cblJlcXVlc3QucHJvdG90eXBlLnF1ZXJ5ID0gZnVuY3Rpb24odmFsKXtcbiAgaWYgKCdzdHJpbmcnICE9IHR5cGVvZiB2YWwpIHZhbCA9IHNlcmlhbGl6ZSh2YWwpO1xuICBpZiAodmFsKSB0aGlzLl9xdWVyeS5wdXNoKHZhbCk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBXcml0ZSB0aGUgZmllbGQgYG5hbWVgIGFuZCBgdmFsYCBmb3IgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCJcbiAqIHJlcXVlc3QgYm9kaWVzLlxuICpcbiAqIGBgYCBqc1xuICogcmVxdWVzdC5wb3N0KCcvdXBsb2FkJylcbiAqICAgLmZpZWxkKCdmb28nLCAnYmFyJylcbiAqICAgLmVuZChjYWxsYmFjayk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd8QmxvYnxGaWxlfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5maWVsZCA9IGZ1bmN0aW9uKG5hbWUsIHZhbCl7XG4gIGlmICghdGhpcy5fZm9ybURhdGEpIHRoaXMuX2Zvcm1EYXRhID0gbmV3IHJvb3QuRm9ybURhdGEoKTtcbiAgdGhpcy5fZm9ybURhdGEuYXBwZW5kKG5hbWUsIHZhbCk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBRdWV1ZSB0aGUgZ2l2ZW4gYGZpbGVgIGFzIGFuIGF0dGFjaG1lbnQgdG8gdGhlIHNwZWNpZmllZCBgZmllbGRgLFxuICogd2l0aCBvcHRpb25hbCBgZmlsZW5hbWVgLlxuICpcbiAqIGBgYCBqc1xuICogcmVxdWVzdC5wb3N0KCcvdXBsb2FkJylcbiAqICAgLmF0dGFjaChuZXcgQmxvYihbJzxhIGlkPVwiYVwiPjxiIGlkPVwiYlwiPmhleSE8L2I+PC9hPiddLCB7IHR5cGU6IFwidGV4dC9odG1sXCJ9KSlcbiAqICAgLmVuZChjYWxsYmFjayk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEBwYXJhbSB7QmxvYnxGaWxlfSBmaWxlXG4gKiBAcGFyYW0ge1N0cmluZ30gZmlsZW5hbWVcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hdHRhY2ggPSBmdW5jdGlvbihmaWVsZCwgZmlsZSwgZmlsZW5hbWUpe1xuICBpZiAoIXRoaXMuX2Zvcm1EYXRhKSB0aGlzLl9mb3JtRGF0YSA9IG5ldyByb290LkZvcm1EYXRhKCk7XG4gIHRoaXMuX2Zvcm1EYXRhLmFwcGVuZChmaWVsZCwgZmlsZSwgZmlsZW5hbWUpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2VuZCBgZGF0YWAsIGRlZmF1bHRpbmcgdGhlIGAudHlwZSgpYCB0byBcImpzb25cIiB3aGVuXG4gKiBhbiBvYmplY3QgaXMgZ2l2ZW4uXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICAgLy8gcXVlcnlzdHJpbmdcbiAqICAgICAgIHJlcXVlc3QuZ2V0KCcvc2VhcmNoJylcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBtdWx0aXBsZSBkYXRhIFwid3JpdGVzXCJcbiAqICAgICAgIHJlcXVlc3QuZ2V0KCcvc2VhcmNoJylcbiAqICAgICAgICAgLnNlbmQoeyBzZWFyY2g6ICdxdWVyeScgfSlcbiAqICAgICAgICAgLnNlbmQoeyByYW5nZTogJzEuLjUnIH0pXG4gKiAgICAgICAgIC5zZW5kKHsgb3JkZXI6ICdkZXNjJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG1hbnVhbCBqc29uXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2pzb24nKVxuICogICAgICAgICAuc2VuZCgne1wibmFtZVwiOlwidGpcIn0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gYXV0byBqc29uXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gbWFudWFsIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdmb3JtJylcbiAqICAgICAgICAgLnNlbmQoJ25hbWU9dGonKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGF1dG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2Zvcm0nKVxuICogICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBkZWZhdWx0cyB0byB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAgKiAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICAqICAgICAgICAuc2VuZCgnbmFtZT10b2JpJylcbiAgKiAgICAgICAgLnNlbmQoJ3NwZWNpZXM9ZmVycmV0JylcbiAgKiAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGRhdGFcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5zZW5kID0gZnVuY3Rpb24oZGF0YSl7XG4gIHZhciBvYmogPSBpc09iamVjdChkYXRhKTtcbiAgdmFyIHR5cGUgPSB0aGlzLmdldEhlYWRlcignQ29udGVudC1UeXBlJyk7XG5cbiAgLy8gbWVyZ2VcbiAgaWYgKG9iaiAmJiBpc09iamVjdCh0aGlzLl9kYXRhKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBkYXRhKSB7XG4gICAgICB0aGlzLl9kYXRhW2tleV0gPSBkYXRhW2tleV07XG4gICAgfVxuICB9IGVsc2UgaWYgKCdzdHJpbmcnID09IHR5cGVvZiBkYXRhKSB7XG4gICAgaWYgKCF0eXBlKSB0aGlzLnR5cGUoJ2Zvcm0nKTtcbiAgICB0eXBlID0gdGhpcy5nZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScpO1xuICAgIGlmICgnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyA9PSB0eXBlKSB7XG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5fZGF0YVxuICAgICAgICA/IHRoaXMuX2RhdGEgKyAnJicgKyBkYXRhXG4gICAgICAgIDogZGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGF0YSA9ICh0aGlzLl9kYXRhIHx8ICcnKSArIGRhdGE7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICB9XG5cbiAgaWYgKCFvYmogfHwgaXNIb3N0KGRhdGEpKSByZXR1cm4gdGhpcztcbiAgaWYgKCF0eXBlKSB0aGlzLnR5cGUoJ2pzb24nKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBgZXJyYCBhbmQgYHJlc2BcbiAqIGFuZCBoYW5kbGUgYXJpdHkgY2hlY2suXG4gKlxuICogQHBhcmFtIHtFcnJvcn0gZXJyXG4gKiBAcGFyYW0ge1Jlc3BvbnNlfSByZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNhbGxiYWNrID0gZnVuY3Rpb24oZXJyLCByZXMpe1xuICB2YXIgZm4gPSB0aGlzLl9jYWxsYmFjaztcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcbiAgZm4oZXJyLCByZXMpO1xufTtcblxuLyoqXG4gKiBJbnZva2UgY2FsbGJhY2sgd2l0aCB4LWRvbWFpbiBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jcm9zc0RvbWFpbkVycm9yID0gZnVuY3Rpb24oKXtcbiAgdmFyIGVyciA9IG5ldyBFcnJvcignT3JpZ2luIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicpO1xuICBlcnIuY3Jvc3NEb21haW4gPSB0cnVlO1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHRpbWVvdXQgZXJyb3IuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudGltZW91dEVycm9yID0gZnVuY3Rpb24oKXtcbiAgdmFyIHRpbWVvdXQgPSB0aGlzLl90aW1lb3V0O1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCd0aW1lb3V0IG9mICcgKyB0aW1lb3V0ICsgJ21zIGV4Y2VlZGVkJyk7XG4gIGVyci50aW1lb3V0ID0gdGltZW91dDtcbiAgdGhpcy5jYWxsYmFjayhlcnIpO1xufTtcblxuLyoqXG4gKiBFbmFibGUgdHJhbnNtaXNzaW9uIG9mIGNvb2tpZXMgd2l0aCB4LWRvbWFpbiByZXF1ZXN0cy5cbiAqXG4gKiBOb3RlIHRoYXQgZm9yIHRoaXMgdG8gd29yayB0aGUgb3JpZ2luIG11c3Qgbm90IGJlXG4gKiB1c2luZyBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiIHdpdGggYSB3aWxkY2FyZCxcbiAqIGFuZCBhbHNvIG11c3Qgc2V0IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHNcIlxuICogdG8gXCJ0cnVlXCIuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS53aXRoQ3JlZGVudGlhbHMgPSBmdW5jdGlvbigpe1xuICB0aGlzLl93aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogSW5pdGlhdGUgcmVxdWVzdCwgaW52b2tpbmcgY2FsbGJhY2sgYGZuKHJlcylgXG4gKiB3aXRoIGFuIGluc3RhbmNlb2YgYFJlc3BvbnNlYC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKGZuKXtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgeGhyID0gdGhpcy54aHIgPSByZXF1ZXN0LmdldFhIUigpO1xuICB2YXIgcXVlcnkgPSB0aGlzLl9xdWVyeS5qb2luKCcmJyk7XG4gIHZhciB0aW1lb3V0ID0gdGhpcy5fdGltZW91dDtcbiAgdmFyIGRhdGEgPSB0aGlzLl9mb3JtRGF0YSB8fCB0aGlzLl9kYXRhO1xuXG4gIC8vIHN0b3JlIGNhbGxiYWNrXG4gIHRoaXMuX2NhbGxiYWNrID0gZm4gfHwgbm9vcDtcblxuICAvLyBzdGF0ZSBjaGFuZ2VcbiAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCl7XG4gICAgaWYgKDQgIT0geGhyLnJlYWR5U3RhdGUpIHJldHVybjtcblxuICAgIC8vIEluIElFOSwgcmVhZHMgdG8gYW55IHByb3BlcnR5IChlLmcuIHN0YXR1cykgb2ZmIG9mIGFuIGFib3J0ZWQgWEhSIHdpbGxcbiAgICAvLyByZXN1bHQgaW4gdGhlIGVycm9yIFwiQ291bGQgbm90IGNvbXBsZXRlIHRoZSBvcGVyYXRpb24gZHVlIHRvIGVycm9yIGMwMGMwMjNmXCJcbiAgICB2YXIgc3RhdHVzO1xuICAgIHRyeSB7IHN0YXR1cyA9IHhoci5zdGF0dXMgfSBjYXRjaChlKSB7IHN0YXR1cyA9IDA7IH1cblxuICAgIGlmICgwID09IHN0YXR1cykge1xuICAgICAgaWYgKHNlbGYudGltZWRvdXQpIHJldHVybiBzZWxmLnRpbWVvdXRFcnJvcigpO1xuICAgICAgaWYgKHNlbGYuYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgcmV0dXJuIHNlbGYuY3Jvc3NEb21haW5FcnJvcigpO1xuICAgIH1cbiAgICBzZWxmLmVtaXQoJ2VuZCcpO1xuICB9O1xuXG4gIC8vIHByb2dyZXNzXG4gIHZhciBoYW5kbGVQcm9ncmVzcyA9IGZ1bmN0aW9uKGUpe1xuICAgIGlmIChlLnRvdGFsID4gMCkge1xuICAgICAgZS5wZXJjZW50ID0gZS5sb2FkZWQgLyBlLnRvdGFsICogMTAwO1xuICAgIH1cbiAgICBzZWxmLmVtaXQoJ3Byb2dyZXNzJywgZSk7XG4gIH07XG4gIGlmICh0aGlzLmhhc0xpc3RlbmVycygncHJvZ3Jlc3MnKSkge1xuICAgIHhoci5vbnByb2dyZXNzID0gaGFuZGxlUHJvZ3Jlc3M7XG4gIH1cbiAgdHJ5IHtcbiAgICBpZiAoeGhyLnVwbG9hZCAmJiB0aGlzLmhhc0xpc3RlbmVycygncHJvZ3Jlc3MnKSkge1xuICAgICAgeGhyLnVwbG9hZC5vbnByb2dyZXNzID0gaGFuZGxlUHJvZ3Jlc3M7XG4gICAgfVxuICB9IGNhdGNoKGUpIHtcbiAgICAvLyBBY2Nlc3NpbmcgeGhyLnVwbG9hZCBmYWlscyBpbiBJRSBmcm9tIGEgd2ViIHdvcmtlciwgc28ganVzdCBwcmV0ZW5kIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAgLy8gUmVwb3J0ZWQgaGVyZTpcbiAgICAvLyBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9JRS9mZWVkYmFjay9kZXRhaWxzLzgzNzI0NS94bWxodHRwcmVxdWVzdC11cGxvYWQtdGhyb3dzLWludmFsaWQtYXJndW1lbnQtd2hlbi11c2VkLWZyb20td2ViLXdvcmtlci1jb250ZXh0XG4gIH1cblxuICAvLyB0aW1lb3V0XG4gIGlmICh0aW1lb3V0ICYmICF0aGlzLl90aW1lcikge1xuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpe1xuICAgICAgc2VsZi50aW1lZG91dCA9IHRydWU7XG4gICAgICBzZWxmLmFib3J0KCk7XG4gICAgfSwgdGltZW91dCk7XG4gIH1cblxuICAvLyBxdWVyeXN0cmluZ1xuICBpZiAocXVlcnkpIHtcbiAgICBxdWVyeSA9IHJlcXVlc3Quc2VyaWFsaXplT2JqZWN0KHF1ZXJ5KTtcbiAgICB0aGlzLnVybCArPSB+dGhpcy51cmwuaW5kZXhPZignPycpXG4gICAgICA/ICcmJyArIHF1ZXJ5XG4gICAgICA6ICc/JyArIHF1ZXJ5O1xuICB9XG5cbiAgLy8gaW5pdGlhdGUgcmVxdWVzdFxuICB4aHIub3Blbih0aGlzLm1ldGhvZCwgdGhpcy51cmwsIHRydWUpO1xuXG4gIC8vIENPUlNcbiAgaWYgKHRoaXMuX3dpdGhDcmVkZW50aWFscykgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWU7XG5cbiAgLy8gYm9keVxuICBpZiAoJ0dFVCcgIT0gdGhpcy5tZXRob2QgJiYgJ0hFQUQnICE9IHRoaXMubWV0aG9kICYmICdzdHJpbmcnICE9IHR5cGVvZiBkYXRhICYmICFpc0hvc3QoZGF0YSkpIHtcbiAgICAvLyBzZXJpYWxpemUgc3R1ZmZcbiAgICB2YXIgc2VyaWFsaXplID0gcmVxdWVzdC5zZXJpYWxpemVbdGhpcy5nZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScpXTtcbiAgICBpZiAoc2VyaWFsaXplKSBkYXRhID0gc2VyaWFsaXplKGRhdGEpO1xuICB9XG5cbiAgLy8gc2V0IGhlYWRlciBmaWVsZHNcbiAgZm9yICh2YXIgZmllbGQgaW4gdGhpcy5oZWFkZXIpIHtcbiAgICBpZiAobnVsbCA9PSB0aGlzLmhlYWRlcltmaWVsZF0pIGNvbnRpbnVlO1xuICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGZpZWxkLCB0aGlzLmhlYWRlcltmaWVsZF0pO1xuICB9XG5cbiAgLy8gc2VuZCBzdHVmZlxuICB0aGlzLmVtaXQoJ3JlcXVlc3QnLCB0aGlzKTtcbiAgeGhyLnNlbmQoZGF0YSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBFeHBvc2UgYFJlcXVlc3RgLlxuICovXG5cbnJlcXVlc3QuUmVxdWVzdCA9IFJlcXVlc3Q7XG5cbi8qKlxuICogSXNzdWUgYSByZXF1ZXN0OlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgIHJlcXVlc3QoJ0dFVCcsICcvdXNlcnMnKS5lbmQoY2FsbGJhY2spXG4gKiAgICByZXF1ZXN0KCcvdXNlcnMnKS5lbmQoY2FsbGJhY2spXG4gKiAgICByZXF1ZXN0KCcvdXNlcnMnLCBjYWxsYmFjaylcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbWV0aG9kXG4gKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gdXJsIG9yIGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiByZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIC8vIGNhbGxiYWNrXG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiB1cmwpIHtcbiAgICByZXR1cm4gbmV3IFJlcXVlc3QoJ0dFVCcsIG1ldGhvZCkuZW5kKHVybCk7XG4gIH1cblxuICAvLyB1cmwgZmlyc3RcbiAgaWYgKDEgPT0gYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBuZXcgUmVxdWVzdCgnR0VUJywgbWV0aG9kKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVxdWVzdChtZXRob2QsIHVybCk7XG59XG5cbi8qKlxuICogR0VUIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IGRhdGEgb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LmdldCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnR0VUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEucXVlcnkoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIEhFQUQgYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gZGF0YSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuaGVhZCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnSEVBRCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIERFTEVURSBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5kZWwgPSBmdW5jdGlvbih1cmwsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0RFTEVURScsIHVybCk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBBVENIIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gZGF0YVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucGF0Y2ggPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ1BBVENIJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogUE9TVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR9IGRhdGFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBvc3QgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ1BPU1QnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQVVQgYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBkYXRhIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wdXQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKXtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ1BVVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgcmVxdWVzdGAuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSByZXF1ZXN0O1xuIiwiLyohXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2hyaXMgTydIYXJhIDxjb2hhcmE4N0BnbWFpbC5jb20+XG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nXG4gKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiAqIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbiAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZVxuICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCxcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkVcbiAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT05cbiAqIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4gKi9cblxuKGZ1bmN0aW9uIChuYW1lLCBkZWZpbml0aW9uKSB7XG4gICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IGRlZmluaXRpb24oKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGRlZmluZShkZWZpbml0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzW25hbWVdID0gZGVmaW5pdGlvbigpO1xuICAgIH1cbn0pKCd2YWxpZGF0b3InLCBmdW5jdGlvbiAodmFsaWRhdG9yKSB7XG5cbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YWxpZGF0b3IgPSB7IHZlcnNpb246ICczLjQwLjAnIH07XG5cbiAgICB2YXIgZW1haWxVc2VyID0gL14oKChbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XSkrKFxcLihbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XSkrKSopfCgoXFx4MjIpKCgoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oKFtcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDdmXXxcXHgyMXxbXFx4MjMtXFx4NWJdfFtcXHg1ZC1cXHg3ZV0pfChcXFxcW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXSkpKSooKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KFxceDIyKSkpJC9pO1xuXG4gICAgdmFyIGVtYWlsVXNlclV0ZjggPSAvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KFxcXFwoW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKSQvaTtcblxuICAgIHZhciBkaXNwbGF5TmFtZSA9IC9eKD86W2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9flxcLl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKyg/OlthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5cXC5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdfFxccykqPCguKyk+JC9pO1xuXG4gICAgdmFyIGNyZWRpdENhcmQgPSAvXig/OjRbMC05XXsxMn0oPzpbMC05XXszfSk/fDVbMS01XVswLTldezE0fXw2KD86MDExfDVbMC05XVswLTldKVswLTldezEyfXwzWzQ3XVswLTldezEzfXwzKD86MFswLTVdfFs2OF1bMC05XSlbMC05XXsxMX18KD86MjEzMXwxODAwfDM1XFxkezN9KVxcZHsxMX0pJC87XG5cbiAgICB2YXIgaXNpbiA9IC9eW0EtWl17Mn1bMC05QS1aXXs5fVswLTldJC87XG5cbiAgICB2YXIgaXNibjEwTWF5YmUgPSAvXig/OlswLTldezl9WHxbMC05XXsxMH0pJC9cbiAgICAgICwgaXNibjEzTWF5YmUgPSAvXig/OlswLTldezEzfSkkLztcblxuICAgIHZhciBpcHY0TWF5YmUgPSAvXihcXGQrKVxcLihcXGQrKVxcLihcXGQrKVxcLihcXGQrKSQvXG4gICAgICAsIGlwdjZCbG9jayA9IC9eWzAtOUEtRl17MSw0fSQvaTtcblxuICAgIHZhciB1dWlkID0ge1xuICAgICAgICAnMyc6IC9eWzAtOUEtRl17OH0tWzAtOUEtRl17NH0tM1swLTlBLUZdezN9LVswLTlBLUZdezR9LVswLTlBLUZdezEyfSQvaVxuICAgICAgLCAnNCc6IC9eWzAtOUEtRl17OH0tWzAtOUEtRl17NH0tNFswLTlBLUZdezN9LVs4OUFCXVswLTlBLUZdezN9LVswLTlBLUZdezEyfSQvaVxuICAgICAgLCAnNSc6IC9eWzAtOUEtRl17OH0tWzAtOUEtRl17NH0tNVswLTlBLUZdezN9LVs4OUFCXVswLTlBLUZdezN9LVswLTlBLUZdezEyfSQvaVxuICAgICAgLCBhbGw6IC9eWzAtOUEtRl17OH0tWzAtOUEtRl17NH0tWzAtOUEtRl17NH0tWzAtOUEtRl17NH0tWzAtOUEtRl17MTJ9JC9pXG4gICAgfTtcblxuICAgIHZhciBhbHBoYSA9IC9eW0EtWl0rJC9pXG4gICAgICAsIGFscGhhbnVtZXJpYyA9IC9eWzAtOUEtWl0rJC9pXG4gICAgICAsIG51bWVyaWMgPSAvXlstK10/WzAtOV0rJC9cbiAgICAgICwgaW50ID0gL14oPzpbLStdPyg/OjB8WzEtOV1bMC05XSopKSQvXG4gICAgICAsIGZsb2F0ID0gL14oPzpbLStdPyg/OlswLTldKykpPyg/OlxcLlswLTldKik/KD86W2VFXVtcXCtcXC1dPyg/OlswLTldKykpPyQvXG4gICAgICAsIGhleGFkZWNpbWFsID0gL15bMC05QS1GXSskL2lcbiAgICAgICwgaGV4Y29sb3IgPSAvXiM/KFswLTlBLUZdezN9fFswLTlBLUZdezZ9KSQvaTtcblxuICAgIHZhciBhc2NpaSA9IC9eW1xceDAwLVxceDdGXSskL1xuICAgICAgLCBtdWx0aWJ5dGUgPSAvW15cXHgwMC1cXHg3Rl0vXG4gICAgICAsIGZ1bGxXaWR0aCA9IC9bXlxcdTAwMjAtXFx1MDA3RVxcdUZGNjEtXFx1RkY5RlxcdUZGQTAtXFx1RkZEQ1xcdUZGRTgtXFx1RkZFRTAtOWEtekEtWl0vXG4gICAgICAsIGhhbGZXaWR0aCA9IC9bXFx1MDAyMC1cXHUwMDdFXFx1RkY2MS1cXHVGRjlGXFx1RkZBMC1cXHVGRkRDXFx1RkZFOC1cXHVGRkVFMC05YS16QS1aXS87XG5cbiAgICB2YXIgc3Vycm9nYXRlUGFpciA9IC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdLztcblxuICAgIHZhciBiYXNlNjQgPSAvXig/OltBLVowLTkrXFwvXXs0fSkqKD86W0EtWjAtOStcXC9dezJ9PT18W0EtWjAtOStcXC9dezN9PXxbQS1aMC05K1xcL117NH0pJC9pO1xuXG4gICAgdmFyIHBob25lcyA9IHtcbiAgICAgICd6aC1DTic6IC9eKFxcKz8wPzg2XFwtPyk/MVszNDU3ODldXFxkezl9JC8sXG4gICAgICAnZW4tWkEnOiAvXihcXCs/Mjd8MClcXGR7OX0kLyxcbiAgICAgICdlbi1BVSc6IC9eKFxcKz82MXwwKTRcXGR7OH0kLyxcbiAgICAgICdlbi1ISyc6IC9eKFxcKz84NTJcXC0/KT9bNTY5XVxcZHszfVxcLT9cXGR7NH0kLyxcbiAgICAgICdmci1GUic6IC9eKFxcKz8zM3wwKVs2N11cXGR7OH0kLyxcbiAgICAgICdwdC1QVCc6IC9eKFxcKzM1MSk/OVsxMjM2XVxcZHs3fSQvLFxuICAgICAgJ2VsLUdSJzogL14oXFwrMzApPygoMlxcZHs5fSl8KDY5XFxkezh9KSkkLyxcbiAgICAgICdlbi1HQic6IC9eKFxcKz80NHwwKTdcXGR7OX0kLyxcbiAgICAgICdlbi1VUyc6IC9eKFxcKz8xKT9bMi05XVxcZHsyfVsyLTldKD8hMTEpXFxkezZ9JC8sXG4gICAgICAnZW4tWk0nOiAvXihcXCsyNik/MDlbNTY3XVxcZHs3fSQvXG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5leHRlbmQgPSBmdW5jdGlvbiAobmFtZSwgZm4pIHtcbiAgICAgICAgdmFsaWRhdG9yW25hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgICAgYXJnc1swXSA9IHZhbGlkYXRvci50b1N0cmluZyhhcmdzWzBdKTtcbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh2YWxpZGF0b3IsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvL1JpZ2h0IGJlZm9yZSBleHBvcnRpbmcgdGhlIHZhbGlkYXRvciBvYmplY3QsIHBhc3MgZWFjaCBvZiB0aGUgYnVpbHRpbnNcbiAgICAvL3Rocm91Z2ggZXh0ZW5kKCkgc28gdGhhdCB0aGVpciBmaXJzdCBhcmd1bWVudCBpcyBjb2VyY2VkIHRvIGEgc3RyaW5nXG4gICAgdmFsaWRhdG9yLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAodmFyIG5hbWUgaW4gdmFsaWRhdG9yKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbGlkYXRvcltuYW1lXSAhPT0gJ2Z1bmN0aW9uJyB8fCBuYW1lID09PSAndG9TdHJpbmcnIHx8XG4gICAgICAgICAgICAgICAgICAgIG5hbWUgPT09ICd0b0RhdGUnIHx8IG5hbWUgPT09ICdleHRlbmQnIHx8IG5hbWUgPT09ICdpbml0Jykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsaWRhdG9yLmV4dGVuZChuYW1lLCB2YWxpZGF0b3JbbmFtZV0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50b1N0cmluZyA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiBpbnB1dCAhPT0gbnVsbCAmJiBpbnB1dC50b1N0cmluZykge1xuICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09PSBudWxsIHx8IHR5cGVvZiBpbnB1dCA9PT0gJ3VuZGVmaW5lZCcgfHwgKGlzTmFOKGlucHV0KSAmJiAhaW5wdXQubGVuZ3RoKSkge1xuICAgICAgICAgICAgaW5wdXQgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpbnB1dCArPSAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50b0RhdGUgPSBmdW5jdGlvbiAoZGF0ZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGRhdGUpID09PSAnW29iamVjdCBEYXRlXScpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlO1xuICAgICAgICB9XG4gICAgICAgIGRhdGUgPSBEYXRlLnBhcnNlKGRhdGUpO1xuICAgICAgICByZXR1cm4gIWlzTmFOKGRhdGUpID8gbmV3IERhdGUoZGF0ZSkgOiBudWxsO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IudG9GbG9hdCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRvSW50ID0gZnVuY3Rpb24gKHN0ciwgcmFkaXgpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHN0ciwgcmFkaXggfHwgMTApO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IudG9Cb29sZWFuID0gZnVuY3Rpb24gKHN0ciwgc3RyaWN0KSB7XG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHIgPT09ICcxJyB8fCBzdHIgPT09ICd0cnVlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RyICE9PSAnMCcgJiYgc3RyICE9PSAnZmFsc2UnICYmIHN0ciAhPT0gJyc7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5lcXVhbHMgPSBmdW5jdGlvbiAoc3RyLCBjb21wYXJpc29uKSB7XG4gICAgICAgIHJldHVybiBzdHIgPT09IHZhbGlkYXRvci50b1N0cmluZyhjb21wYXJpc29uKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmNvbnRhaW5zID0gZnVuY3Rpb24gKHN0ciwgZWxlbSkge1xuICAgICAgICByZXR1cm4gc3RyLmluZGV4T2YodmFsaWRhdG9yLnRvU3RyaW5nKGVsZW0pKSA+PSAwO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IubWF0Y2hlcyA9IGZ1bmN0aW9uIChzdHIsIHBhdHRlcm4sIG1vZGlmaWVycykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHBhdHRlcm4pICE9PSAnW29iamVjdCBSZWdFeHBdJykge1xuICAgICAgICAgICAgcGF0dGVybiA9IG5ldyBSZWdFeHAocGF0dGVybiwgbW9kaWZpZXJzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGF0dGVybi50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhciBkZWZhdWx0X2VtYWlsX29wdGlvbnMgPSB7XG4gICAgICAgIGFsbG93X2Rpc3BsYXlfbmFtZTogZmFsc2UsXG4gICAgICAgIGFsbG93X3V0ZjhfbG9jYWxfcGFydDogdHJ1ZSxcbiAgICAgICAgcmVxdWlyZV90bGQ6IHRydWVcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRW1haWwgPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBtZXJnZShvcHRpb25zLCBkZWZhdWx0X2VtYWlsX29wdGlvbnMpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmFsbG93X2Rpc3BsYXlfbmFtZSkge1xuICAgICAgICAgICAgdmFyIGRpc3BsYXlfZW1haWwgPSBzdHIubWF0Y2goZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgaWYgKGRpc3BsYXlfZW1haWwpIHtcbiAgICAgICAgICAgICAgICBzdHIgPSBkaXNwbGF5X2VtYWlsWzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKC9cXHMvLnRlc3Qoc3RyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KCdAJylcbiAgICAgICAgICAsIGRvbWFpbiA9IHBhcnRzLnBvcCgpXG4gICAgICAgICAgLCB1c2VyID0gcGFydHMuam9pbignQCcpO1xuXG4gICAgICAgIGlmICghdmFsaWRhdG9yLmlzRlFETihkb21haW4sIHtyZXF1aXJlX3RsZDogb3B0aW9ucy5yZXF1aXJlX3RsZH0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5hbGxvd191dGY4X2xvY2FsX3BhcnQgP1xuICAgICAgICAgICAgZW1haWxVc2VyVXRmOC50ZXN0KHVzZXIpIDpcbiAgICAgICAgICAgIGVtYWlsVXNlci50ZXN0KHVzZXIpO1xuICAgIH07XG5cbiAgICB2YXIgZGVmYXVsdF91cmxfb3B0aW9ucyA9IHtcbiAgICAgICAgcHJvdG9jb2xzOiBbICdodHRwJywgJ2h0dHBzJywgJ2Z0cCcgXVxuICAgICAgLCByZXF1aXJlX3RsZDogdHJ1ZVxuICAgICAgLCByZXF1aXJlX3Byb3RvY29sOiBmYWxzZVxuICAgICAgLCBhbGxvd191bmRlcnNjb3JlczogZmFsc2VcbiAgICAgICwgYWxsb3dfdHJhaWxpbmdfZG90OiBmYWxzZVxuICAgICAgLCBhbGxvd19wcm90b2NvbF9yZWxhdGl2ZV91cmxzOiBmYWxzZVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNVUkwgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gICAgICAgIGlmICghdXJsIHx8IHVybC5sZW5ndGggPj0gMjA4MyB8fCAvXFxzLy50ZXN0KHVybCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXJsLmluZGV4T2YoJ21haWx0bzonKSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMgPSBtZXJnZShvcHRpb25zLCBkZWZhdWx0X3VybF9vcHRpb25zKTtcbiAgICAgICAgdmFyIHByb3RvY29sLCBhdXRoLCBob3N0LCBob3N0bmFtZSwgcG9ydCxcbiAgICAgICAgICAgIHBvcnRfc3RyLCBzcGxpdDtcbiAgICAgICAgc3BsaXQgPSB1cmwuc3BsaXQoJzovLycpO1xuICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcHJvdG9jb2wgPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucHJvdG9jb2xzLmluZGV4T2YocHJvdG9jb2wpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnJlcXVpcmVfcHJvdG9jb2wpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSAgZWxzZSBpZiAob3B0aW9ucy5hbGxvd19wcm90b2NvbF9yZWxhdGl2ZV91cmxzICYmIHVybC5zdWJzdHIoMCwgMikgPT09ICcvLycpIHtcbiAgICAgICAgICAgIHNwbGl0WzBdID0gdXJsLnN1YnN0cigyKTtcbiAgICAgICAgfVxuICAgICAgICB1cmwgPSBzcGxpdC5qb2luKCc6Ly8nKTtcbiAgICAgICAgc3BsaXQgPSB1cmwuc3BsaXQoJyMnKTtcbiAgICAgICAgdXJsID0gc3BsaXQuc2hpZnQoKTtcblxuICAgICAgICBzcGxpdCA9IHVybC5zcGxpdCgnPycpO1xuICAgICAgICB1cmwgPSBzcGxpdC5zaGlmdCgpO1xuXG4gICAgICAgIHNwbGl0ID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAgIHVybCA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgIHNwbGl0ID0gdXJsLnNwbGl0KCdAJyk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBhdXRoID0gc3BsaXQuc2hpZnQoKTtcbiAgICAgICAgICAgIGlmIChhdXRoLmluZGV4T2YoJzonKSA+PSAwICYmIGF1dGguc3BsaXQoJzonKS5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGhvc3RuYW1lID0gc3BsaXQuam9pbignQCcpO1xuICAgICAgICBzcGxpdCA9IGhvc3RuYW1lLnNwbGl0KCc6Jyk7XG4gICAgICAgIGhvc3QgPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICBpZiAoc3BsaXQubGVuZ3RoKSB7XG4gICAgICAgICAgICBwb3J0X3N0ciA9IHNwbGl0LmpvaW4oJzonKTtcbiAgICAgICAgICAgIHBvcnQgPSBwYXJzZUludChwb3J0X3N0ciwgMTApO1xuICAgICAgICAgICAgaWYgKCEvXlswLTldKyQvLnRlc3QocG9ydF9zdHIpIHx8IHBvcnQgPD0gMCB8fCBwb3J0ID4gNjU1MzUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0b3IuaXNJUChob3N0KSAmJiAhdmFsaWRhdG9yLmlzRlFETihob3N0LCBvcHRpb25zKSAmJlxuICAgICAgICAgICAgICAgIGhvc3QgIT09ICdsb2NhbGhvc3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuaG9zdF93aGl0ZWxpc3QgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zLmhvc3Rfd2hpdGVsaXN0LmluZGV4T2YoaG9zdCkgPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuaG9zdF9ibGFja2xpc3QgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zLmhvc3RfYmxhY2tsaXN0LmluZGV4T2YoaG9zdCkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0lQID0gZnVuY3Rpb24gKHN0ciwgdmVyc2lvbikge1xuICAgICAgICB2ZXJzaW9uID0gdmFsaWRhdG9yLnRvU3RyaW5nKHZlcnNpb24pO1xuICAgICAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNJUChzdHIsIDQpIHx8IHZhbGlkYXRvci5pc0lQKHN0ciwgNik7XG4gICAgICAgIH0gZWxzZSBpZiAodmVyc2lvbiA9PT0gJzQnKSB7XG4gICAgICAgICAgICBpZiAoIWlwdjRNYXliZS50ZXN0KHN0cikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoJy4nKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcGFydHNbM10gPD0gMjU1O1xuICAgICAgICB9IGVsc2UgaWYgKHZlcnNpb24gPT09ICc2Jykge1xuICAgICAgICAgICAgdmFyIGJsb2NrcyA9IHN0ci5zcGxpdCgnOicpO1xuICAgICAgICAgICAgdmFyIGZvdW5kT21pc3Npb25CbG9jayA9IGZhbHNlOyAvLyBtYXJrZXIgdG8gaW5kaWNhdGUgOjpcblxuICAgICAgICAgICAgaWYgKGJsb2Nrcy5sZW5ndGggPiA4KVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgLy8gaW5pdGlhbCBvciBmaW5hbCA6OlxuICAgICAgICAgICAgaWYgKHN0ciA9PT0gJzo6Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHIuc3Vic3RyKDAsIDIpID09PSAnOjonKSB7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgZm91bmRPbWlzc2lvbkJsb2NrID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyLnN1YnN0cihzdHIubGVuZ3RoIC0gMikgPT09ICc6OicpIHtcbiAgICAgICAgICAgICAgICBibG9ja3MucG9wKCk7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGZvdW5kT21pc3Npb25CbG9jayA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmxvY2tzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgLy8gdGVzdCBmb3IgYSA6OiB3aGljaCBjYW4gbm90IGJlIGF0IHRoZSBzdHJpbmcgc3RhcnQvZW5kXG4gICAgICAgICAgICAgICAgLy8gc2luY2UgdGhvc2UgY2FzZXMgaGF2ZSBiZWVuIGhhbmRsZWQgYWJvdmVcbiAgICAgICAgICAgICAgICBpZiAoYmxvY2tzW2ldID09PSAnJyAmJiBpID4gMCAmJiBpIDwgYmxvY2tzLmxlbmd0aCAtMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm91bmRPbWlzc2lvbkJsb2NrKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBtdWx0aXBsZSA6OiBpbiBhZGRyZXNzXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kT21pc3Npb25CbG9jayA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXB2NkJsb2NrLnRlc3QoYmxvY2tzW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZm91bmRPbWlzc2lvbkJsb2NrKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2Nrcy5sZW5ndGggPj0gMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2Nrcy5sZW5ndGggPT09IDg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICB2YXIgZGVmYXVsdF9mcWRuX29wdGlvbnMgPSB7XG4gICAgICAgIHJlcXVpcmVfdGxkOiB0cnVlXG4gICAgICAsIGFsbG93X3VuZGVyc2NvcmVzOiBmYWxzZVxuICAgICAgLCBhbGxvd190cmFpbGluZ19kb3Q6IGZhbHNlXG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0ZRRE4gPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBtZXJnZShvcHRpb25zLCBkZWZhdWx0X2ZxZG5fb3B0aW9ucyk7XG5cbiAgICAgICAgLyogUmVtb3ZlIHRoZSBvcHRpb25hbCB0cmFpbGluZyBkb3QgYmVmb3JlIGNoZWNraW5nIHZhbGlkaXR5ICovXG4gICAgICAgIGlmIChvcHRpb25zLmFsbG93X3RyYWlsaW5nX2RvdCAmJiBzdHJbc3RyLmxlbmd0aCAtIDFdID09PSAnLicpIHtcbiAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgnLicpO1xuICAgICAgICBpZiAob3B0aW9ucy5yZXF1aXJlX3RsZCkge1xuICAgICAgICAgICAgdmFyIHRsZCA9IHBhcnRzLnBvcCgpO1xuICAgICAgICAgICAgaWYgKCFwYXJ0cy5sZW5ndGggfHwgIS9eKFthLXpcXHUwMGExLVxcdWZmZmZdezIsfXx4blthLXowLTktXXsyLH0pJC9pLnRlc3QodGxkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBwYXJ0LCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYXJ0ID0gcGFydHNbaV07XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hbGxvd191bmRlcnNjb3Jlcykge1xuICAgICAgICAgICAgICAgIGlmIChwYXJ0LmluZGV4T2YoJ19fJykgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcnQgPSBwYXJ0LnJlcGxhY2UoL18vZywgJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEvXlthLXpcXHUwMGExLVxcdWZmZmYwLTktXSskL2kudGVzdChwYXJ0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJ0WzBdID09PSAnLScgfHwgcGFydFtwYXJ0Lmxlbmd0aCAtIDFdID09PSAnLScgfHxcbiAgICAgICAgICAgICAgICAgICAgcGFydC5pbmRleE9mKCctLS0nKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNCb29sZWFuID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICAgIHJldHVybiAoWyd0cnVlJywgJ2ZhbHNlJywgJzEnLCAnMCddLmluZGV4T2Yoc3RyKSA+PSAwKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQWxwaGEgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBhbHBoYS50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0FscGhhbnVtZXJpYyA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGFscGhhbnVtZXJpYy50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc051bWVyaWMgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBudW1lcmljLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSGV4YWRlY2ltYWwgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBoZXhhZGVjaW1hbC50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0hleENvbG9yID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gaGV4Y29sb3IudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNMb3dlcmNhc2UgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIgPT09IHN0ci50b0xvd2VyQ2FzZSgpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNVcHBlcmNhc2UgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIgPT09IHN0ci50b1VwcGVyQ2FzZSgpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNJbnQgPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICByZXR1cm4gaW50LnRlc3Qoc3RyKSAmJiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ21pbicpIHx8IHN0ciA+PSBvcHRpb25zLm1pbikgJiYgKCFvcHRpb25zLmhhc093blByb3BlcnR5KCdtYXgnKSB8fCBzdHIgPD0gb3B0aW9ucy5tYXgpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNGbG9hdCA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIHJldHVybiBzdHIgIT09ICcnICYmIGZsb2F0LnRlc3Qoc3RyKSAmJiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ21pbicpIHx8IHN0ciA+PSBvcHRpb25zLm1pbikgJiYgKCFvcHRpb25zLmhhc093blByb3BlcnR5KCdtYXgnKSB8fCBzdHIgPD0gb3B0aW9ucy5tYXgpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNEaXZpc2libGVCeSA9IGZ1bmN0aW9uIChzdHIsIG51bSkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLnRvRmxvYXQoc3RyKSAlIHZhbGlkYXRvci50b0ludChudW0pID09PSAwO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNOdWxsID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gc3RyLmxlbmd0aCA9PT0gMDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTGVuZ3RoID0gZnVuY3Rpb24gKHN0ciwgbWluLCBtYXgpIHtcbiAgICAgICAgdmFyIHN1cnJvZ2F0ZVBhaXJzID0gc3RyLm1hdGNoKC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2cpIHx8IFtdO1xuICAgICAgICB2YXIgbGVuID0gc3RyLmxlbmd0aCAtIHN1cnJvZ2F0ZVBhaXJzLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGxlbiA+PSBtaW4gJiYgKHR5cGVvZiBtYXggPT09ICd1bmRlZmluZWQnIHx8IGxlbiA8PSBtYXgpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNCeXRlTGVuZ3RoID0gZnVuY3Rpb24gKHN0ciwgbWluLCBtYXgpIHtcbiAgICAgICAgcmV0dXJuIHN0ci5sZW5ndGggPj0gbWluICYmICh0eXBlb2YgbWF4ID09PSAndW5kZWZpbmVkJyB8fCBzdHIubGVuZ3RoIDw9IG1heCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc1VVSUQgPSBmdW5jdGlvbiAoc3RyLCB2ZXJzaW9uKSB7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gdXVpZFt2ZXJzaW9uID8gdmVyc2lvbiA6ICdhbGwnXTtcbiAgICAgICAgcmV0dXJuIHBhdHRlcm4gJiYgcGF0dGVybi50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0RhdGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiAhaXNOYU4oRGF0ZS5wYXJzZShzdHIpKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQWZ0ZXIgPSBmdW5jdGlvbiAoc3RyLCBkYXRlKSB7XG4gICAgICAgIHZhciBjb21wYXJpc29uID0gdmFsaWRhdG9yLnRvRGF0ZShkYXRlIHx8IG5ldyBEYXRlKCkpXG4gICAgICAgICAgLCBvcmlnaW5hbCA9IHZhbGlkYXRvci50b0RhdGUoc3RyKTtcbiAgICAgICAgcmV0dXJuICEhKG9yaWdpbmFsICYmIGNvbXBhcmlzb24gJiYgb3JpZ2luYWwgPiBjb21wYXJpc29uKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQmVmb3JlID0gZnVuY3Rpb24gKHN0ciwgZGF0ZSkge1xuICAgICAgICB2YXIgY29tcGFyaXNvbiA9IHZhbGlkYXRvci50b0RhdGUoZGF0ZSB8fCBuZXcgRGF0ZSgpKVxuICAgICAgICAgICwgb3JpZ2luYWwgPSB2YWxpZGF0b3IudG9EYXRlKHN0cik7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbCAmJiBjb21wYXJpc29uICYmIG9yaWdpbmFsIDwgY29tcGFyaXNvbjtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSW4gPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBpO1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9wdGlvbnMpID09PSAnW29iamVjdCBBcnJheV0nKSB7XG4gICAgICAgICAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSBpbiBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSB2YWxpZGF0b3IudG9TdHJpbmcob3B0aW9uc1tpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXJyYXkuaW5kZXhPZihzdHIpID49IDA7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShzdHIpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMuaW5kZXhPZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuaW5kZXhPZihzdHIpID49IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNDcmVkaXRDYXJkID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICB2YXIgc2FuaXRpemVkID0gc3RyLnJlcGxhY2UoL1teMC05XSsvZywgJycpO1xuICAgICAgICBpZiAoIWNyZWRpdENhcmQudGVzdChzYW5pdGl6ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN1bSA9IDAsIGRpZ2l0LCB0bXBOdW0sIHNob3VsZERvdWJsZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IHNhbml0aXplZC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgZGlnaXQgPSBzYW5pdGl6ZWQuc3Vic3RyaW5nKGksIChpICsgMSkpO1xuICAgICAgICAgICAgdG1wTnVtID0gcGFyc2VJbnQoZGlnaXQsIDEwKTtcbiAgICAgICAgICAgIGlmIChzaG91bGREb3VibGUpIHtcbiAgICAgICAgICAgICAgICB0bXBOdW0gKj0gMjtcbiAgICAgICAgICAgICAgICBpZiAodG1wTnVtID49IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSAoKHRtcE51bSAlIDEwKSArIDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdW0gKz0gdG1wTnVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hvdWxkRG91YmxlID0gIXNob3VsZERvdWJsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gISEoKHN1bSAlIDEwKSA9PT0gMCA/IHNhbml0aXplZCA6IGZhbHNlKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSVNJTiA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgaWYgKCFpc2luLnRlc3Qoc3RyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNoZWNrc3VtU3RyID0gc3RyLnJlcGxhY2UoL1tBLVpdL2csIGZ1bmN0aW9uKGNoYXJhY3Rlcikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGNoYXJhY3RlciwgMzYpO1xuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgc3VtID0gMCwgZGlnaXQsIHRtcE51bSwgc2hvdWxkRG91YmxlID0gdHJ1ZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IGNoZWNrc3VtU3RyLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBkaWdpdCA9IGNoZWNrc3VtU3RyLnN1YnN0cmluZyhpLCAoaSArIDEpKTtcbiAgICAgICAgICAgIHRtcE51bSA9IHBhcnNlSW50KGRpZ2l0LCAxMCk7XG4gICAgICAgICAgICBpZiAoc2hvdWxkRG91YmxlKSB7XG4gICAgICAgICAgICAgICAgdG1wTnVtICo9IDI7XG4gICAgICAgICAgICAgICAgaWYgKHRtcE51bSA+PSAxMCkge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gdG1wTnVtICsgMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gdG1wTnVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VtICs9IHRtcE51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNob3VsZERvdWJsZSA9ICFzaG91bGREb3VibGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyc2VJbnQoc3RyLnN1YnN0cihzdHIubGVuZ3RoIC0gMSksIDEwKSA9PT0gKDEwMDAwIC0gc3VtKSAlIDEwO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNJU0JOID0gZnVuY3Rpb24gKHN0ciwgdmVyc2lvbikge1xuICAgICAgICB2ZXJzaW9uID0gdmFsaWRhdG9yLnRvU3RyaW5nKHZlcnNpb24pO1xuICAgICAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNJU0JOKHN0ciwgMTApIHx8IHZhbGlkYXRvci5pc0lTQk4oc3RyLCAxMyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNhbml0aXplZCA9IHN0ci5yZXBsYWNlKC9bXFxzLV0rL2csICcnKVxuICAgICAgICAgICwgY2hlY2tzdW0gPSAwLCBpO1xuICAgICAgICBpZiAodmVyc2lvbiA9PT0gJzEwJykge1xuICAgICAgICAgICAgaWYgKCFpc2JuMTBNYXliZS50ZXN0KHNhbml0aXplZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gKGkgKyAxKSAqIHNhbml0aXplZC5jaGFyQXQoaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2FuaXRpemVkLmNoYXJBdCg5KSA9PT0gJ1gnKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gMTAgKiAxMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gMTAgKiBzYW5pdGl6ZWQuY2hhckF0KDkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKChjaGVja3N1bSAlIDExKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXNhbml0aXplZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlICBpZiAodmVyc2lvbiA9PT0gJzEzJykge1xuICAgICAgICAgICAgaWYgKCFpc2JuMTNNYXliZS50ZXN0KHNhbml0aXplZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZmFjdG9yID0gWyAxLCAzIF07XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9IGZhY3RvcltpICUgMl0gKiBzYW5pdGl6ZWQuY2hhckF0KGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNhbml0aXplZC5jaGFyQXQoMTIpIC0gKCgxMCAtIChjaGVja3N1bSAlIDEwKSkgJSAxMCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFzYW5pdGl6ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNNb2JpbGVQaG9uZSA9IGZ1bmN0aW9uKHN0ciwgbG9jYWxlKSB7XG4gICAgICAgIGlmIChsb2NhbGUgaW4gcGhvbmVzKSB7XG4gICAgICAgICAgICByZXR1cm4gcGhvbmVzW2xvY2FsZV0udGVzdChzdHIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRfY3VycmVuY3lfb3B0aW9ucyA9IHtcbiAgICAgICAgc3ltYm9sOiAnJCdcbiAgICAgICwgcmVxdWlyZV9zeW1ib2w6IGZhbHNlXG4gICAgICAsIGFsbG93X3NwYWNlX2FmdGVyX3N5bWJvbDogZmFsc2VcbiAgICAgICwgc3ltYm9sX2FmdGVyX2RpZ2l0czogZmFsc2VcbiAgICAgICwgYWxsb3dfbmVnYXRpdmVzOiB0cnVlXG4gICAgICAsIHBhcmVuc19mb3JfbmVnYXRpdmVzOiBmYWxzZVxuICAgICAgLCBuZWdhdGl2ZV9zaWduX2JlZm9yZV9kaWdpdHM6IGZhbHNlXG4gICAgICAsIG5lZ2F0aXZlX3NpZ25fYWZ0ZXJfZGlnaXRzOiBmYWxzZVxuICAgICAgLCBhbGxvd19uZWdhdGl2ZV9zaWduX3BsYWNlaG9sZGVyOiBmYWxzZVxuICAgICAgLCB0aG91c2FuZHNfc2VwYXJhdG9yOiAnLCdcbiAgICAgICwgZGVjaW1hbF9zZXBhcmF0b3I6ICcuJ1xuICAgICAgLCBhbGxvd19zcGFjZV9hZnRlcl9kaWdpdHM6IGZhbHNlXG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0N1cnJlbmN5ID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gbWVyZ2Uob3B0aW9ucywgZGVmYXVsdF9jdXJyZW5jeV9vcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gY3VycmVuY3lSZWdleChvcHRpb25zKS50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0pTT04gPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTXVsdGlieXRlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gbXVsdGlieXRlLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQXNjaWkgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBhc2NpaS50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0Z1bGxXaWR0aCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGZ1bGxXaWR0aC50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0hhbGZXaWR0aCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGhhbGZXaWR0aC50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc1ZhcmlhYmxlV2lkdGggPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBmdWxsV2lkdGgudGVzdChzdHIpICYmIGhhbGZXaWR0aC50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc1N1cnJvZ2F0ZVBhaXIgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdXJyb2dhdGVQYWlyLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQmFzZTY0ID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gYmFzZTY0LnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTW9uZ29JZCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0hleGFkZWNpbWFsKHN0cikgJiYgc3RyLmxlbmd0aCA9PT0gMjQ7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5sdHJpbSA9IGZ1bmN0aW9uIChzdHIsIGNoYXJzKSB7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gY2hhcnMgPyBuZXcgUmVnRXhwKCdeWycgKyBjaGFycyArICddKycsICdnJykgOiAvXlxccysvZztcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKHBhdHRlcm4sICcnKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnJ0cmltID0gZnVuY3Rpb24gKHN0ciwgY2hhcnMpIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSBjaGFycyA/IG5ldyBSZWdFeHAoJ1snICsgY2hhcnMgKyAnXSskJywgJ2cnKSA6IC9cXHMrJC9nO1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UocGF0dGVybiwgJycpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IudHJpbSA9IGZ1bmN0aW9uIChzdHIsIGNoYXJzKSB7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gY2hhcnMgPyBuZXcgUmVnRXhwKCdeWycgKyBjaGFycyArICddK3xbJyArIGNoYXJzICsgJ10rJCcsICdnJykgOiAvXlxccyt8XFxzKyQvZztcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKHBhdHRlcm4sICcnKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmVzY2FwZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIChzdHIucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgJyYjeDI3OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICcmI3gyRjsnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYC9nLCAnJiM5NjsnKSk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5zdHJpcExvdyA9IGZ1bmN0aW9uIChzdHIsIGtlZXBfbmV3X2xpbmVzKSB7XG4gICAgICAgIHZhciBjaGFycyA9IGtlZXBfbmV3X2xpbmVzID8gJ1xcXFx4MDAtXFxcXHgwOVxcXFx4MEJcXFxceDBDXFxcXHgwRS1cXFxceDFGXFxcXHg3RicgOiAnXFxcXHgwMC1cXFxceDFGXFxcXHg3Ric7XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IuYmxhY2tsaXN0KHN0ciwgY2hhcnMpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3Iud2hpdGVsaXN0ID0gZnVuY3Rpb24gKHN0ciwgY2hhcnMpIHtcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoJ1teJyArIGNoYXJzICsgJ10rJywgJ2cnKSwgJycpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuYmxhY2tsaXN0ID0gZnVuY3Rpb24gKHN0ciwgY2hhcnMpIHtcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoJ1snICsgY2hhcnMgKyAnXSsnLCAnZycpLCAnJyk7XG4gICAgfTtcblxuICAgIHZhciBkZWZhdWx0X25vcm1hbGl6ZV9lbWFpbF9vcHRpb25zID0ge1xuICAgICAgICBsb3dlcmNhc2U6IHRydWVcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLm5vcm1hbGl6ZUVtYWlsID0gZnVuY3Rpb24gKGVtYWlsLCBvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBtZXJnZShvcHRpb25zLCBkZWZhdWx0X25vcm1hbGl6ZV9lbWFpbF9vcHRpb25zKTtcbiAgICAgICAgaWYgKCF2YWxpZGF0b3IuaXNFbWFpbChlbWFpbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFydHMgPSBlbWFpbC5zcGxpdCgnQCcsIDIpO1xuICAgICAgICBwYXJ0c1sxXSA9IHBhcnRzWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChwYXJ0c1sxXSA9PT0gJ2dtYWlsLmNvbScgfHwgcGFydHNbMV0gPT09ICdnb29nbGVtYWlsLmNvbScpIHtcbiAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNbMF0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXC4vZywgJycpO1xuICAgICAgICAgICAgaWYgKHBhcnRzWzBdWzBdID09PSAnKycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnNwbGl0KCcrJylbMF07XG4gICAgICAgICAgICBwYXJ0c1sxXSA9ICdnbWFpbC5jb20nO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMubG93ZXJjYXNlKSB7XG4gICAgICAgICAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJ0AnKTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbWVyZ2Uob2JqLCBkZWZhdWx0cykge1xuICAgICAgICBvYmogPSBvYmogfHwge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBkZWZhdWx0cykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBvYmpba2V5XSA9IGRlZmF1bHRzW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjdXJyZW5jeVJlZ2V4KG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHN5bWJvbCA9ICcoXFxcXCcgKyBvcHRpb25zLnN5bWJvbC5yZXBsYWNlKC9cXC4vZywgJ1xcXFwuJykgKyAnKScgKyAob3B0aW9ucy5yZXF1aXJlX3N5bWJvbCA/ICcnIDogJz8nKVxuICAgICAgICAgICAgLCBuZWdhdGl2ZSA9ICctPydcbiAgICAgICAgICAgICwgd2hvbGVfZG9sbGFyX2Ftb3VudF93aXRob3V0X3NlcCA9ICdbMS05XVxcXFxkKidcbiAgICAgICAgICAgICwgd2hvbGVfZG9sbGFyX2Ftb3VudF93aXRoX3NlcCA9ICdbMS05XVxcXFxkezAsMn0oXFxcXCcgKyBvcHRpb25zLnRob3VzYW5kc19zZXBhcmF0b3IgKyAnXFxcXGR7M30pKidcbiAgICAgICAgICAgICwgdmFsaWRfd2hvbGVfZG9sbGFyX2Ftb3VudHMgPSBbJzAnLCB3aG9sZV9kb2xsYXJfYW1vdW50X3dpdGhvdXRfc2VwLCB3aG9sZV9kb2xsYXJfYW1vdW50X3dpdGhfc2VwXVxuICAgICAgICAgICAgLCB3aG9sZV9kb2xsYXJfYW1vdW50ID0gJygnICsgdmFsaWRfd2hvbGVfZG9sbGFyX2Ftb3VudHMuam9pbignfCcpICsgJyk/J1xuICAgICAgICAgICAgLCBkZWNpbWFsX2Ftb3VudCA9ICcoXFxcXCcgKyBvcHRpb25zLmRlY2ltYWxfc2VwYXJhdG9yICsgJ1xcXFxkezJ9KT8nO1xuICAgICAgICB2YXIgcGF0dGVybiA9IHdob2xlX2RvbGxhcl9hbW91bnQgKyBkZWNpbWFsX2Ftb3VudDtcbiAgICAgICAgLy8gZGVmYXVsdCBpcyBuZWdhdGl2ZSBzaWduIGJlZm9yZSBzeW1ib2wsIGJ1dCB0aGVyZSBhcmUgdHdvIG90aGVyIG9wdGlvbnMgKGJlc2lkZXMgcGFyZW5zKVxuICAgICAgICBpZiAob3B0aW9ucy5hbGxvd19uZWdhdGl2ZXMgJiYgIW9wdGlvbnMucGFyZW5zX2Zvcl9uZWdhdGl2ZXMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLm5lZ2F0aXZlX3NpZ25fYWZ0ZXJfZGlnaXRzKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiArPSBuZWdhdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbnMubmVnYXRpdmVfc2lnbl9iZWZvcmVfZGlnaXRzKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiA9IG5lZ2F0aXZlICsgcGF0dGVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBTb3V0aCBBZnJpY2FuIFJhbmQsIGZvciBleGFtcGxlLCB1c2VzIFIgMTIzIChzcGFjZSkgYW5kIFItMTIzIChubyBzcGFjZSlcbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfbmVnYXRpdmVfc2lnbl9wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgcGF0dGVybiA9ICcoICg/IVxcXFwtKSk/JyArIHBhdHRlcm47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5hbGxvd19zcGFjZV9hZnRlcl9zeW1ib2wpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gPSAnID8nICsgcGF0dGVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zLmFsbG93X3NwYWNlX2FmdGVyX2RpZ2l0cykge1xuICAgICAgICAgICAgcGF0dGVybiArPSAnKCAoPyEkKSk/JztcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5zeW1ib2xfYWZ0ZXJfZGlnaXRzKSB7XG4gICAgICAgICAgICBwYXR0ZXJuICs9IHN5bWJvbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhdHRlcm4gPSBzeW1ib2wgKyBwYXR0ZXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmFsbG93X25lZ2F0aXZlcykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFyZW5zX2Zvcl9uZWdhdGl2ZXMpIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuID0gJyhcXFxcKCcgKyBwYXR0ZXJuICsgJ1xcXFwpfCcgKyBwYXR0ZXJuICsgJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoIShvcHRpb25zLm5lZ2F0aXZlX3NpZ25fYmVmb3JlX2RpZ2l0cyB8fCBvcHRpb25zLm5lZ2F0aXZlX3NpZ25fYWZ0ZXJfZGlnaXRzKSkge1xuICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBuZWdhdGl2ZSArIHBhdHRlcm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXicgK1xuICAgICAgICAgICAgLy8gZW5zdXJlIHRoZXJlJ3MgYSBkb2xsYXIgYW5kL29yIGRlY2ltYWwgYW1vdW50LCBhbmQgdGhhdCBpdCBkb2Vzbid0IHN0YXJ0IHdpdGggYSBzcGFjZSBvciBhIG5lZ2F0aXZlIHNpZ24gZm9sbG93ZWQgYnkgYSBzcGFjZVxuICAgICAgICAgICAgJyg/IS0/ICkoPz0uKlxcXFxkKScgK1xuICAgICAgICAgICAgcGF0dGVybiArXG4gICAgICAgICAgICAnJCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0b3IuaW5pdCgpO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRvcjtcblxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG5cbiAgICBJTlZBTElEX1RZUEU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCB0eXBlIHswfSBidXQgZm91bmQgdHlwZSB7MX1cIixcbiAgICBJTlZBTElEX0ZPUk1BVDogICAgICAgICAgICAgICAgICAgICAgICAgXCJPYmplY3QgZGlkbid0IHBhc3MgdmFsaWRhdGlvbiBmb3IgZm9ybWF0IHswfTogezF9XCIsXG4gICAgRU5VTV9NSVNNQVRDSDogICAgICAgICAgICAgICAgICAgICAgICAgIFwiTm8gZW51bSBtYXRjaCBmb3I6IHswfVwiLFxuICAgIEFOWV9PRl9NSVNTSU5HOiAgICAgICAgICAgICAgICAgICAgICAgICBcIkRhdGEgZG9lcyBub3QgbWF0Y2ggYW55IHNjaGVtYXMgZnJvbSAnYW55T2YnXCIsXG4gICAgT05FX09GX01JU1NJTkc6ICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YSBkb2VzIG5vdCBtYXRjaCBhbnkgc2NoZW1hcyBmcm9tICdvbmVPZidcIixcbiAgICBPTkVfT0ZfTVVMVElQTEU6ICAgICAgICAgICAgICAgICAgICAgICAgXCJEYXRhIGlzIHZhbGlkIGFnYWluc3QgbW9yZSB0aGFuIG9uZSBzY2hlbWEgZnJvbSAnb25lT2YnXCIsXG4gICAgTk9UX1BBU1NFRDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YSBtYXRjaGVzIHNjaGVtYSBmcm9tICdub3QnXCIsXG5cbiAgICAvLyBBcnJheSBlcnJvcnNcbiAgICBBUlJBWV9MRU5HVEhfU0hPUlQ6ICAgICAgICAgICAgICAgICAgICAgXCJBcnJheSBpcyB0b28gc2hvcnQgKHswfSksIG1pbmltdW0gezF9XCIsXG4gICAgQVJSQVlfTEVOR1RIX0xPTkc6ICAgICAgICAgICAgICAgICAgICAgIFwiQXJyYXkgaXMgdG9vIGxvbmcgKHswfSksIG1heGltdW0gezF9XCIsXG4gICAgQVJSQVlfVU5JUVVFOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyYXkgaXRlbXMgYXJlIG5vdCB1bmlxdWUgKGluZGV4ZXMgezB9IGFuZCB7MX0pXCIsXG4gICAgQVJSQVlfQURESVRJT05BTF9JVEVNUzogICAgICAgICAgICAgICAgIFwiQWRkaXRpb25hbCBpdGVtcyBub3QgYWxsb3dlZFwiLFxuXG4gICAgLy8gTnVtZXJpYyBlcnJvcnNcbiAgICBNVUxUSVBMRV9PRjogICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZSB7MH0gaXMgbm90IGEgbXVsdGlwbGUgb2YgezF9XCIsXG4gICAgTUlOSU1VTTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWUgezB9IGlzIGxlc3MgdGhhbiBtaW5pbXVtIHsxfVwiLFxuICAgIE1JTklNVU1fRVhDTFVTSVZFOiAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlIHswfSBpcyBlcXVhbCBvciBsZXNzIHRoYW4gZXhjbHVzaXZlIG1pbmltdW0gezF9XCIsXG4gICAgTUFYSU1VTTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWUgezB9IGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHsxfVwiLFxuICAgIE1BWElNVU1fRVhDTFVTSVZFOiAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlIHswfSBpcyBlcXVhbCBvciBncmVhdGVyIHRoYW4gZXhjbHVzaXZlIG1heGltdW0gezF9XCIsXG5cbiAgICAvLyBPYmplY3QgZXJyb3JzXG4gICAgT0JKRUNUX1BST1BFUlRJRVNfTUlOSU1VTTogICAgICAgICAgICAgIFwiVG9vIGZldyBwcm9wZXJ0aWVzIGRlZmluZWQgKHswfSksIG1pbmltdW0gezF9XCIsXG4gICAgT0JKRUNUX1BST1BFUlRJRVNfTUFYSU1VTTogICAgICAgICAgICAgIFwiVG9vIG1hbnkgcHJvcGVydGllcyBkZWZpbmVkICh7MH0pLCBtYXhpbXVtIHsxfVwiLFxuICAgIE9CSkVDVF9NSVNTSU5HX1JFUVVJUkVEX1BST1BFUlRZOiAgICAgICBcIk1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHk6IHswfVwiLFxuICAgIE9CSkVDVF9BRERJVElPTkFMX1BST1BFUlRJRVM6ICAgICAgICAgICBcIkFkZGl0aW9uYWwgcHJvcGVydGllcyBub3QgYWxsb3dlZDogezB9XCIsXG4gICAgT0JKRUNUX0RFUEVOREVOQ1lfS0VZOiAgICAgICAgICAgICAgICAgIFwiRGVwZW5kZW5jeSBmYWlsZWQgLSBrZXkgbXVzdCBleGlzdDogezB9IChkdWUgdG8ga2V5OiB7MX0pXCIsXG5cbiAgICAvLyBTdHJpbmcgZXJyb3JzXG4gICAgTUlOX0xFTkdUSDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RyaW5nIGlzIHRvbyBzaG9ydCAoezB9IGNoYXJzKSwgbWluaW11bSB7MX1cIixcbiAgICBNQVhfTEVOR1RIOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgaXMgdG9vIGxvbmcgKHswfSBjaGFycyksIG1heGltdW0gezF9XCIsXG4gICAgUEFUVEVSTjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RyaW5nIGRvZXMgbm90IG1hdGNoIHBhdHRlcm4gezB9OiB7MX1cIixcblxuICAgIC8vIFNjaGVtYSB2YWxpZGF0aW9uIGVycm9yc1xuICAgIEtFWVdPUkRfVFlQRV9FWFBFQ1RFRDogICAgICAgICAgICAgICAgICBcIktleXdvcmQgJ3swfScgaXMgZXhwZWN0ZWQgdG8gYmUgb2YgdHlwZSAnezF9J1wiLFxuICAgIEtFWVdPUkRfVU5ERUZJTkVEX1NUUklDVDogICAgICAgICAgICAgICBcIktleXdvcmQgJ3swfScgbXVzdCBiZSBkZWZpbmVkIGluIHN0cmljdCBtb2RlXCIsXG4gICAgS0VZV09SRF9VTkVYUEVDVEVEOiAgICAgICAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyBpcyBub3QgZXhwZWN0ZWQgdG8gYXBwZWFyIGluIHRoZSBzY2hlbWFcIixcbiAgICBLRVlXT1JEX01VU1RfQkU6ICAgICAgICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIG11c3QgYmUgezF9XCIsXG4gICAgS0VZV09SRF9ERVBFTkRFTkNZOiAgICAgICAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyByZXF1aXJlcyBrZXl3b3JkICd7MX0nXCIsXG4gICAgS0VZV09SRF9QQVRURVJOOiAgICAgICAgICAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyBpcyBub3QgYSB2YWxpZCBSZWdFeHAgcGF0dGVybjogezF9XCIsXG4gICAgS0VZV09SRF9WQUxVRV9UWVBFOiAgICAgICAgICAgICAgICAgICAgIFwiRWFjaCBlbGVtZW50IG9mIGtleXdvcmQgJ3swfScgYXJyYXkgbXVzdCBiZSBhICd7MX0nXCIsXG4gICAgVU5LTk9XTl9GT1JNQVQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmUgaXMgbm8gdmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgZm9ybWF0ICd7MH0nXCIsXG4gICAgQ1VTVE9NX01PREVfRk9SQ0VfUFJPUEVSVElFUzogICAgICAgICAgIFwiezB9IG11c3QgZGVmaW5lIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSBpZiBwcmVzZW50XCIsXG5cbiAgICAvLyBSZW1vdGUgZXJyb3JzXG4gICAgUkVGX1VOUkVTT0xWRUQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVmZXJlbmNlIGhhcyBub3QgYmVlbiByZXNvbHZlZCBkdXJpbmcgY29tcGlsYXRpb246IHswfVwiLFxuICAgIFVOUkVTT0xWQUJMRV9SRUZFUkVOQ0U6ICAgICAgICAgICAgICAgICBcIlJlZmVyZW5jZSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6IHswfVwiLFxuICAgIFNDSEVNQV9OT1RfUkVBQ0hBQkxFOiAgICAgICAgICAgICAgICAgICBcIlZhbGlkYXRvciB3YXMgbm90IGFibGUgdG8gcmVhZCBzY2hlbWEgd2l0aCB1cmk6IHswfVwiLFxuICAgIFNDSEVNQV9UWVBFX0VYUEVDVEVEOiAgICAgICAgICAgICAgICAgICBcIlNjaGVtYSBpcyBleHBlY3RlZCB0byBiZSBvZiB0eXBlICdvYmplY3QnXCIsXG4gICAgU0NIRU1BX05PVF9BTl9PQkpFQ1Q6ICAgICAgICAgICAgICAgICAgIFwiU2NoZW1hIGlzIG5vdCBhbiBvYmplY3Q6IHswfVwiLFxuICAgIEFTWU5DX1RJTUVPVVQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBcInswfSBhc3luY2hyb25vdXMgdGFzayhzKSBoYXZlIHRpbWVkIG91dCBhZnRlciB7MX0gbXNcIixcbiAgICBQQVJFTlRfU0NIRU1BX1ZBTElEQVRJT05fRkFJTEVEOiAgICAgICAgXCJTY2hlbWEgZmFpbGVkIHRvIHZhbGlkYXRlIGFnYWluc3QgaXRzIHBhcmVudCBzY2hlbWEsIHNlZSBpbm5lciBlcnJvcnMgZm9yIGRldGFpbHMuXCIsXG4gICAgUkVNT1RFX05PVF9WQUxJRDogICAgICAgICAgICAgICAgICAgICAgIFwiUmVtb3RlIHJlZmVyZW5jZSBkaWRuJ3QgY29tcGlsZSBzdWNjZXNzZnVsbHk6IHswfVwiXG5cbn07XG4iLCIvKmpzaGludCBtYXhsZW46IGZhbHNlKi9cblxudmFyIHZhbGlkYXRvciA9IHJlcXVpcmUoXCJ2YWxpZGF0b3JcIik7XG5cbnZhciBGb3JtYXRWYWxpZGF0b3JzID0ge1xuICAgIFwiZGF0ZVwiOiBmdW5jdGlvbiAoZGF0ZSkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGZ1bGwtZGF0ZSBmcm9tIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjZcbiAgICAgICAgdmFyIG1hdGNoZXMgPSAvXihbMC05XXs0fSktKFswLTldezJ9KS0oWzAtOV17Mn0pJC8uZXhlYyhkYXRlKTtcbiAgICAgICAgaWYgKG1hdGNoZXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyB2YXIgeWVhciA9IG1hdGNoZXNbMV07XG4gICAgICAgIC8vIHZhciBtb250aCA9IG1hdGNoZXNbMl07XG4gICAgICAgIC8vIHZhciBkYXkgPSBtYXRjaGVzWzNdO1xuICAgICAgICBpZiAobWF0Y2hlc1syXSA8IFwiMDFcIiB8fCBtYXRjaGVzWzJdID4gXCIxMlwiIHx8IG1hdGNoZXNbM10gPCBcIjAxXCIgfHwgbWF0Y2hlc1szXSA+IFwiMzFcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gICAgXCJkYXRlLXRpbWVcIjogZnVuY3Rpb24gKGRhdGVUaW1lKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZVRpbWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGRhdGUtdGltZSBmcm9tIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjZcbiAgICAgICAgdmFyIHMgPSBkYXRlVGltZS50b0xvd2VyQ2FzZSgpLnNwbGl0KFwidFwiKTtcbiAgICAgICAgaWYgKCFGb3JtYXRWYWxpZGF0b3JzLmRhdGUoc1swXSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWF0Y2hlcyA9IC9eKFswLTldezJ9KTooWzAtOV17Mn0pOihbMC05XXsyfSkoLlswLTldKyk/KHp8KFsrLV1bMC05XXsyfTpbMC05XXsyfSkpJC8uZXhlYyhzWzFdKTtcbiAgICAgICAgaWYgKG1hdGNoZXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyB2YXIgaG91ciA9IG1hdGNoZXNbMV07XG4gICAgICAgIC8vIHZhciBtaW51dGUgPSBtYXRjaGVzWzJdO1xuICAgICAgICAvLyB2YXIgc2Vjb25kID0gbWF0Y2hlc1szXTtcbiAgICAgICAgLy8gdmFyIGZyYWN0aW9uID0gbWF0Y2hlc1s0XTtcbiAgICAgICAgLy8gdmFyIHRpbWV6b25lID0gbWF0Y2hlc1s1XTtcbiAgICAgICAgaWYgKG1hdGNoZXNbMV0gPiBcIjIzXCIgfHwgbWF0Y2hlc1syXSA+IFwiNTlcIiB8fCBtYXRjaGVzWzNdID4gXCI1OVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBcImVtYWlsXCI6IGZ1bmN0aW9uIChlbWFpbCkge1xuICAgICAgICBpZiAodHlwZW9mIGVtYWlsICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzRW1haWwoZW1haWwsIHsgXCJyZXF1aXJlX3RsZFwiOiB0cnVlIH0pO1xuICAgIH0sXG4gICAgXCJob3N0bmFtZVwiOiBmdW5jdGlvbiAoaG9zdG5hbWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBob3N0bmFtZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLypcbiAgICAgICAgICAgIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNhbmNob3IxMTRcbiAgICAgICAgICAgIEEgc3RyaW5nIGluc3RhbmNlIGlzIHZhbGlkIGFnYWluc3QgdGhpcyBhdHRyaWJ1dGUgaWYgaXQgaXMgYSB2YWxpZFxuICAgICAgICAgICAgcmVwcmVzZW50YXRpb24gZm9yIGFuIEludGVybmV0IGhvc3QgbmFtZSwgYXMgZGVmaW5lZCBieSBSRkMgMTAzNCwgc2VjdGlvbiAzLjEgW1JGQzEwMzRdLlxuXG4gICAgICAgICAgICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMDM0I3NlY3Rpb24tMy41XG5cbiAgICAgICAgICAgIDxkaWdpdD4gOjo9IGFueSBvbmUgb2YgdGhlIHRlbiBkaWdpdHMgMCB0aHJvdWdoIDlcbiAgICAgICAgICAgIHZhciBkaWdpdCA9IC9bMC05XS87XG5cbiAgICAgICAgICAgIDxsZXR0ZXI+IDo6PSBhbnkgb25lIG9mIHRoZSA1MiBhbHBoYWJldGljIGNoYXJhY3RlcnMgQSB0aHJvdWdoIFogaW4gdXBwZXIgY2FzZSBhbmQgYSB0aHJvdWdoIHogaW4gbG93ZXIgY2FzZVxuICAgICAgICAgICAgdmFyIGxldHRlciA9IC9bYS16QS1aXS87XG5cbiAgICAgICAgICAgIDxsZXQtZGlnPiA6Oj0gPGxldHRlcj4gfCA8ZGlnaXQ+XG4gICAgICAgICAgICB2YXIgbGV0RGlnID0gL1swLTlhLXpBLVpdLztcblxuICAgICAgICAgICAgPGxldC1kaWctaHlwPiA6Oj0gPGxldC1kaWc+IHwgXCItXCJcbiAgICAgICAgICAgIHZhciBsZXREaWdIeXAgPSAvWy0wLTlhLXpBLVpdLztcblxuICAgICAgICAgICAgPGxkaC1zdHI+IDo6PSA8bGV0LWRpZy1oeXA+IHwgPGxldC1kaWctaHlwPiA8bGRoLXN0cj5cbiAgICAgICAgICAgIHZhciBsZGhTdHIgPSAvWy0wLTlhLXpBLVpdKy87XG5cbiAgICAgICAgICAgIDxsYWJlbD4gOjo9IDxsZXR0ZXI+IFsgWyA8bGRoLXN0cj4gXSA8bGV0LWRpZz4gXVxuICAgICAgICAgICAgdmFyIGxhYmVsID0gL1thLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/LztcblxuICAgICAgICAgICAgPHN1YmRvbWFpbj4gOjo9IDxsYWJlbD4gfCA8c3ViZG9tYWluPiBcIi5cIiA8bGFiZWw+XG4gICAgICAgICAgICB2YXIgc3ViZG9tYWluID0gL15bYS16QS1aXSgoWy0wLTlhLXpBLVpdKyk/WzAtOWEtekEtWl0pPyhcXC5bYS16QS1aXSgoWy0wLTlhLXpBLVpdKyk/WzAtOWEtekEtWl0pPykqJC87XG5cbiAgICAgICAgICAgIDxkb21haW4+IDo6PSA8c3ViZG9tYWluPiB8IFwiIFwiXG4gICAgICAgICAgICB2YXIgZG9tYWluID0gbnVsbDtcbiAgICAgICAgKi9cbiAgICAgICAgdmFyIHZhbGlkID0gL15bYS16QS1aXSgoWy0wLTlhLXpBLVpdKyk/WzAtOWEtekEtWl0pPyhcXC5bYS16QS1aXSgoWy0wLTlhLXpBLVpdKyk/WzAtOWEtekEtWl0pPykqJC8udGVzdChob3N0bmFtZSk7XG4gICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgLy8gdGhlIHN1bSBvZiBhbGwgbGFiZWwgb2N0ZXRzIGFuZCBsYWJlbCBsZW5ndGhzIGlzIGxpbWl0ZWQgdG8gMjU1LlxuICAgICAgICAgICAgaWYgKGhvc3RuYW1lLmxlbmd0aCA+IDI1NSkgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAgICAgICAgIC8vIEVhY2ggbm9kZSBoYXMgYSBsYWJlbCwgd2hpY2ggaXMgemVybyB0byA2MyBvY3RldHMgaW4gbGVuZ3RoXG4gICAgICAgICAgICB2YXIgbGFiZWxzID0gaG9zdG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYWJlbHMubGVuZ3RoOyBpKyspIHsgaWYgKGxhYmVsc1tpXS5sZW5ndGggPiA2MykgeyByZXR1cm4gZmFsc2U7IH0gfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWxpZDtcbiAgICB9LFxuICAgIFwiaG9zdC1uYW1lXCI6IGZ1bmN0aW9uIChob3N0bmFtZSkge1xuICAgICAgICByZXR1cm4gRm9ybWF0VmFsaWRhdG9ycy5ob3N0bmFtZS5jYWxsKHRoaXMsIGhvc3RuYW1lKTtcbiAgICB9LFxuICAgIFwiaXB2NFwiOiBmdW5jdGlvbiAoaXB2NCkge1xuICAgICAgICBpZiAodHlwZW9mIGlwdjQgIT09IFwic3RyaW5nXCIpIHsgcmV0dXJuIHRydWU7IH1cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0lQKGlwdjQsIDQpO1xuICAgIH0sXG4gICAgXCJpcHY2XCI6IGZ1bmN0aW9uIChpcHY2KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXB2NiAhPT0gXCJzdHJpbmdcIikgeyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzSVAoaXB2NiwgNik7XG4gICAgfSxcbiAgICBcInJlZ2V4XCI6IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIFJlZ0V4cChzdHIpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJ1cmlcIjogZnVuY3Rpb24gKHVyaSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnN0cmljdFVyaXMpIHtcbiAgICAgICAgICAgIHJldHVybiBGb3JtYXRWYWxpZGF0b3JzW1wic3RyaWN0LXVyaVwiXS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96YWdnaW5vL3otc2NoZW1hL2lzc3Vlcy8xOFxuICAgICAgICAvLyBSZWdFeHAgZnJvbSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I2FwcGVuZGl4LUJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB1cmkgIT09IFwic3RyaW5nXCIgfHwgUmVnRXhwKFwiXigoW146Lz8jXSspOik/KC8vKFteLz8jXSopKT8oW14/I10qKShcXFxcPyhbXiNdKikpPygjKC4qKSk/XCIpLnRlc3QodXJpKTtcbiAgICB9LFxuICAgIFwic3RyaWN0LXVyaVwiOiBmdW5jdGlvbiAodXJpKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdXJpICE9PSBcInN0cmluZ1wiIHx8IHZhbGlkYXRvci5pc1VSTCh1cmkpO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRm9ybWF0VmFsaWRhdG9ycztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgRm9ybWF0VmFsaWRhdG9ycyAgPSByZXF1aXJlKFwiLi9Gb3JtYXRWYWxpZGF0b3JzXCIpLFxuICAgIFJlcG9ydCAgICAgICAgICAgID0gcmVxdWlyZShcIi4vUmVwb3J0XCIpLFxuICAgIFV0aWxzICAgICAgICAgICAgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5cbnZhciBKc29uVmFsaWRhdG9ycyA9IHtcbiAgICBtdWx0aXBsZU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4xLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uIC8gc2NoZW1hLm11bHRpcGxlT2YpICE9PSBcImludGVnZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTVVMVElQTEVfT0ZcIiwgW2pzb24sIHNjaGVtYS5tdWx0aXBsZU9mXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4aW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMi4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEuZXhjbHVzaXZlTWF4aW11bSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKGpzb24gPiBzY2hlbWEubWF4aW11bSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1BWElNVU1cIiwgW2pzb24sIHNjaGVtYS5tYXhpbXVtXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uID49IHNjaGVtYS5tYXhpbXVtKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUFYSU1VTV9FWENMVVNJVkVcIiwgW2pzb24sIHNjaGVtYS5tYXhpbXVtXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZXhjbHVzaXZlTWF4aW11bTogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBjb3ZlcmVkIGluIG1heGltdW1cbiAgICB9LFxuICAgIG1pbmltdW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjMuMlxuICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2NoZW1hLmV4Y2x1c2l2ZU1pbmltdW0gIT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChqc29uIDwgc2NoZW1hLm1pbmltdW0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNSU5JTVVNXCIsIFtqc29uLCBzY2hlbWEubWluaW11bV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbiA8PSBzY2hlbWEubWluaW11bSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1JTklNVU1fRVhDTFVTSVZFXCIsIFtqc29uLCBzY2hlbWEubWluaW11bV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGV4Y2x1c2l2ZU1pbmltdW06IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gY292ZXJlZCBpbiBtaW5pbXVtXG4gICAgfSxcbiAgICBtYXhMZW5ndGg6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4yLjEuMlxuICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoVXRpbHMudWNzMmRlY29kZShqc29uKS5sZW5ndGggPiBzY2hlbWEubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNQVhfTEVOR1RIXCIsIFtqc29uLmxlbmd0aCwgc2NoZW1hLm1heExlbmd0aF0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pbkxlbmd0aDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMi4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChVdGlscy51Y3MyZGVjb2RlKGpzb24pLmxlbmd0aCA8IHNjaGVtYS5taW5MZW5ndGgpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1JTl9MRU5HVEhcIiwgW2pzb24ubGVuZ3RoLCBzY2hlbWEubWluTGVuZ3RoXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGF0dGVybjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMy4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChSZWdFeHAoc2NoZW1hLnBhdHRlcm4pLnRlc3QoanNvbikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJQQVRURVJOXCIsIFtzY2hlbWEucGF0dGVybiwganNvbl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFkZGl0aW9uYWxJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMS4yXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBvZiBcImFkZGl0aW9uYWxJdGVtc1wiIGlzIGJvb2xlYW4gdmFsdWUgZmFsc2UgYW5kIHRoZSB2YWx1ZSBvZiBcIml0ZW1zXCIgaXMgYW4gYXJyYXksXG4gICAgICAgIC8vIHRoZSBqc29uIGlzIHZhbGlkIGlmIGl0cyBzaXplIGlzIGxlc3MgdGhhbiwgb3IgZXF1YWwgdG8sIHRoZSBzaXplIG9mIFwiaXRlbXNcIi5cbiAgICAgICAgaWYgKHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMgPT09IGZhbHNlICYmIEFycmF5LmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgICAgICAgaWYgKGpzb24ubGVuZ3RoID4gc2NoZW1hLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkFSUkFZX0FERElUSU9OQUxfSVRFTVNcIiwgbnVsbCwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXRlbXM6IGZ1bmN0aW9uICgpIHsgLypyZXBvcnQsIHNjaGVtYSwganNvbiovXG4gICAgICAgIC8vIGNvdmVyZWQgaW4gYWRkaXRpb25hbEl0ZW1zXG4gICAgfSxcbiAgICBtYXhJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMi4yXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChqc29uLmxlbmd0aCA+IHNjaGVtYS5tYXhJdGVtcykge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQVJSQVlfTEVOR1RIX0xPTkdcIiwgW2pzb24ubGVuZ3RoLCBzY2hlbWEubWF4SXRlbXNdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5JdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMy4yXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChqc29uLmxlbmd0aCA8IHNjaGVtYS5taW5JdGVtcykge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQVJSQVlfTEVOR1RIX1NIT1JUXCIsIFtqc29uLmxlbmd0aCwgc2NoZW1hLm1pbkl0ZW1zXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdW5pcXVlSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjQuMlxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoanNvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2NoZW1hLnVuaXF1ZUl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgICAgICB2YXIgbWF0Y2hlcyA9IFtdO1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzVW5pcXVlQXJyYXkoanNvbiwgbWF0Y2hlcykgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQVJSQVlfVU5JUVVFXCIsIG1hdGNoZXMsIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heFByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjEuMlxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24pICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleXNDb3VudCA9IE9iamVjdC5rZXlzKGpzb24pLmxlbmd0aDtcbiAgICAgICAgaWYgKGtleXNDb3VudCA+IHNjaGVtYS5tYXhQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPQkpFQ1RfUFJPUEVSVElFU19NQVhJTVVNXCIsIFtrZXlzQ291bnQsIHNjaGVtYS5tYXhQcm9wZXJ0aWVzXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuMi4yXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbikgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5c0NvdW50ID0gT2JqZWN0LmtleXMoanNvbikubGVuZ3RoO1xuICAgICAgICBpZiAoa2V5c0NvdW50IDwgc2NoZW1hLm1pblByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9CSkVDVF9QUk9QRVJUSUVTX01JTklNVU1cIiwgW2tleXNDb3VudCwgc2NoZW1hLm1pblByb3BlcnRpZXNdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICByZXF1aXJlZDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuMy4yXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbikgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLnJlcXVpcmVkLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIgcmVxdWlyZWRQcm9wZXJ0eU5hbWUgPSBzY2hlbWEucmVxdWlyZWRbaWR4XTtcbiAgICAgICAgICAgIGlmIChqc29uW3JlcXVpcmVkUHJvcGVydHlOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT0JKRUNUX01JU1NJTkdfUkVRVUlSRURfUFJPUEVSVFlcIiwgW3JlcXVpcmVkUHJvcGVydHlOYW1lXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBjb3ZlcmVkIGluIHByb3BlcnRpZXMgYW5kIHBhdHRlcm5Qcm9wZXJ0aWVzXG4gICAgICAgIGlmIChzY2hlbWEucHJvcGVydGllcyA9PT0gdW5kZWZpbmVkICYmIHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gSnNvblZhbGlkYXRvcnMucHJvcGVydGllcy5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGF0dGVyblByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBjb3ZlcmVkIGluIHByb3BlcnRpZXNcbiAgICAgICAgaWYgKHNjaGVtYS5wcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBKc29uVmFsaWRhdG9ycy5wcm9wZXJ0aWVzLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC40LjJcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcm9wZXJ0aWVzID0gc2NoZW1hLnByb3BlcnRpZXMgIT09IHVuZGVmaW5lZCA/IHNjaGVtYS5wcm9wZXJ0aWVzIDoge307XG4gICAgICAgIHZhciBwYXR0ZXJuUHJvcGVydGllcyA9IHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkID8gc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzIDoge307XG4gICAgICAgIGlmIChzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgc2V0IG9mIHRoZSBqc29uIHRvIHZhbGlkYXRlLlxuICAgICAgICAgICAgdmFyIHMgPSBPYmplY3Qua2V5cyhqc29uKTtcbiAgICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBzZXQgZnJvbSBcInByb3BlcnRpZXNcIi5cbiAgICAgICAgICAgIHZhciBwID0gT2JqZWN0LmtleXMocHJvcGVydGllcyk7XG4gICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgc2V0IGZyb20gXCJwYXR0ZXJuUHJvcGVydGllc1wiLlxuICAgICAgICAgICAgdmFyIHBwID0gT2JqZWN0LmtleXMocGF0dGVyblByb3BlcnRpZXMpO1xuICAgICAgICAgICAgLy8gcmVtb3ZlIGZyb20gXCJzXCIgYWxsIGVsZW1lbnRzIG9mIFwicFwiLCBpZiBhbnk7XG4gICAgICAgICAgICBzID0gVXRpbHMuZGlmZmVyZW5jZShzLCBwKTtcbiAgICAgICAgICAgIC8vIGZvciBlYWNoIHJlZ2V4IGluIFwicHBcIiwgcmVtb3ZlIGFsbCBlbGVtZW50cyBvZiBcInNcIiB3aGljaCB0aGlzIHJlZ2V4IG1hdGNoZXMuXG4gICAgICAgICAgICB2YXIgaWR4ID0gcHAubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZ0V4cCA9IFJlZ0V4cChwcFtpZHhdKSxcbiAgICAgICAgICAgICAgICAgICAgaWR4MiA9IHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZ0V4cC50ZXN0KHNbaWR4Ml0pID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzLnNwbGljZShpZHgyLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFZhbGlkYXRpb24gb2YgdGhlIGpzb24gc3VjY2VlZHMgaWYsIGFmdGVyIHRoZXNlIHR3byBzdGVwcywgc2V0IFwic1wiIGlzIGVtcHR5LlxuICAgICAgICAgICAgaWYgKHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9CSkVDVF9BRERJVElPTkFMX1BST1BFUlRJRVNcIiwgW3NdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBkZXBlbmRlbmNpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjUuMlxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24pICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAvLyBpdGVyYXRlIGFsbCBkZXBlbmRlbmNpZXNcbiAgICAgICAgICAgIHZhciBkZXBlbmRlbmN5TmFtZSA9IGtleXNbaWR4XTtcbiAgICAgICAgICAgIGlmIChqc29uW2RlcGVuZGVuY3lOYW1lXSkge1xuICAgICAgICAgICAgICAgIHZhciBkZXBlbmRlbmN5RGVmaW5pdGlvbiA9IHNjaGVtYS5kZXBlbmRlbmNpZXNbZGVwZW5kZW5jeU5hbWVdO1xuICAgICAgICAgICAgICAgIGlmIChVdGlscy53aGF0SXMoZGVwZW5kZW5jeURlZmluaXRpb24pID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlcGVuZGVuY3kgaXMgYSBzY2hlbWEsIHZhbGlkYXRlIGFnYWluc3QgdGhpcyBzY2hlbWFcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgZGVwZW5kZW5jeURlZmluaXRpb24sIGpzb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIEFycmF5XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlcGVuZGVuY3kgaXMgYW4gYXJyYXksIG9iamVjdCBuZWVkcyB0byBoYXZlIGFsbCBwcm9wZXJ0aWVzIGluIHRoaXMgYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlkeDIgPSBkZXBlbmRlbmN5RGVmaW5pdGlvbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXF1aXJlZFByb3BlcnR5TmFtZSA9IGRlcGVuZGVuY3lEZWZpbml0aW9uW2lkeDJdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25bcmVxdWlyZWRQcm9wZXJ0eU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPQkpFQ1RfREVQRU5ERU5DWV9LRVlcIiwgW3JlcXVpcmVkUHJvcGVydHlOYW1lLCBkZXBlbmRlbmN5TmFtZV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGVudW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjEuMlxuICAgICAgICB2YXIgbWF0Y2ggPSBmYWxzZSxcbiAgICAgICAgICAgIGlkeCA9IHNjaGVtYS5lbnVtLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuYXJlRXF1YWwoanNvbiwgc2NoZW1hLmVudW1baWR4XSkpIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiRU5VTV9NSVNNQVRDSFwiLCBbanNvbl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8qXG4gICAgdHlwZTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMi4yXG4gICAgICAgIC8vIHR5cGUgaXMgaGFuZGxlZCBiZWZvcmUgdGhpcyBpcyBjYWxsZWQgc28gaWdub3JlXG4gICAgfSxcbiAgICAqL1xuICAgIGFsbE9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4zLjJcbiAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5hbGxPZi5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgaWYgKGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5hbGxPZltpZHhdLCBqc29uKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgYW55T2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjQuMlxuICAgICAgICB2YXIgc3ViUmVwb3J0cyA9IFtdLFxuICAgICAgICAgICAgcGFzc2VkID0gZmFsc2UsXG4gICAgICAgICAgICBpZHggPSBzY2hlbWEuYW55T2YubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChpZHgtLSAmJiBwYXNzZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB2YXIgc3ViUmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQpO1xuICAgICAgICAgICAgc3ViUmVwb3J0cy5wdXNoKHN1YlJlcG9ydCk7XG4gICAgICAgICAgICBwYXNzZWQgPSBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgc3ViUmVwb3J0LCBzY2hlbWEuYW55T2ZbaWR4XSwganNvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFzc2VkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQU5ZX09GX01JU1NJTkdcIiwgdW5kZWZpbmVkLCBzdWJSZXBvcnRzLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBvbmVPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNS4yXG4gICAgICAgIHZhciBwYXNzZXMgPSAwLFxuICAgICAgICAgICAgc3ViUmVwb3J0cyA9IFtdLFxuICAgICAgICAgICAgaWR4ID0gc2NoZW1hLm9uZU9mLmxlbmd0aDtcblxuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBzdWJSZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCwgeyBtYXhFcnJvcnM6IDEgfSk7XG4gICAgICAgICAgICBzdWJSZXBvcnRzLnB1c2goc3ViUmVwb3J0KTtcbiAgICAgICAgICAgIGlmIChleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgc3ViUmVwb3J0LCBzY2hlbWEub25lT2ZbaWR4XSwganNvbikgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBwYXNzZXMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXNzZXMgPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9ORV9PRl9NSVNTSU5HXCIsIHVuZGVmaW5lZCwgc3ViUmVwb3J0cywgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChwYXNzZXMgPiAxKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPTkVfT0ZfTVVMVElQTEVcIiwgbnVsbCwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbm90OiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS42LjJcbiAgICAgICAgdmFyIHN1YlJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0KTtcbiAgICAgICAgaWYgKGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCBzdWJSZXBvcnQsIHNjaGVtYS5ub3QsIGpzb24pID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJOT1RfUEFTU0VEXCIsIG51bGwsIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGRlZmluaXRpb25zOiBmdW5jdGlvbiAoKSB7IC8qcmVwb3J0LCBzY2hlbWEsIGpzb24qL1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjcuMlxuICAgICAgICAvLyBub3RoaW5nIHRvIGRvIGhlcmVcbiAgICB9LFxuICAgIGZvcm1hdDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi43LjJcbiAgICAgICAgdmFyIGZvcm1hdFZhbGlkYXRvckZuID0gRm9ybWF0VmFsaWRhdG9yc1tzY2hlbWEuZm9ybWF0XTtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtYXRWYWxpZGF0b3JGbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0VmFsaWRhdG9yRm4ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAgLy8gYXN5bmNcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkQXN5bmNUYXNrKGZvcm1hdFZhbGlkYXRvckZuLCBbanNvbl0sIGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiSU5WQUxJRF9GT1JNQVRcIiwgW3NjaGVtYS5mb3JtYXQsIGpzb25dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHN5bmNcbiAgICAgICAgICAgICAgICBpZiAoZm9ybWF0VmFsaWRhdG9yRm4uY2FsbCh0aGlzLCBqc29uKSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJJTlZBTElEX0ZPUk1BVFwiLCBbc2NoZW1hLmZvcm1hdCwganNvbl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiVU5LTk9XTl9GT1JNQVRcIiwgW3NjaGVtYS5mb3JtYXRdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfVxufTtcblxudmFyIHJlY3Vyc2VBcnJheSA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi44LjJcblxuICAgIHZhciBpZHggPSBqc29uLmxlbmd0aDtcblxuICAgIC8vIElmIFwiaXRlbXNcIiBpcyBhbiBhcnJheSwgdGhpcyBzaXR1YXRpb24sIHRoZSBzY2hlbWEgZGVwZW5kcyBvbiB0aGUgaW5kZXg6XG4gICAgLy8gaWYgdGhlIGluZGV4IGlzIGxlc3MgdGhhbiwgb3IgZXF1YWwgdG8sIHRoZSBzaXplIG9mIFwiaXRlbXNcIixcbiAgICAvLyB0aGUgY2hpbGQgaW5zdGFuY2UgbXVzdCBiZSB2YWxpZCBhZ2FpbnN0IHRoZSBjb3JyZXNwb25kaW5nIHNjaGVtYSBpbiB0aGUgXCJpdGVtc1wiIGFycmF5O1xuICAgIC8vIG90aGVyd2lzZSwgaXQgbXVzdCBiZSB2YWxpZCBhZ2FpbnN0IHRoZSBzY2hlbWEgZGVmaW5lZCBieSBcImFkZGl0aW9uYWxJdGVtc1wiLlxuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5pdGVtcykpIHtcblxuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIC8vIGVxdWFsIHRvIGRvZXNudCBtYWtlIHNlbnNlIGhlcmVcbiAgICAgICAgICAgIGlmIChpZHggPCBzY2hlbWEuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLml0ZW1zW2lkeF0sIGpzb25baWR4XSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG1pZ2h0IGJlIGJvb2xlYW4sIHNvIGNoZWNrIHRoYXQgaXQncyBhbiBvYmplY3RcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMsIGpzb25baWR4XSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygc2NoZW1hLml0ZW1zID09PSBcIm9iamVjdFwiKSB7XG5cbiAgICAgICAgLy8gSWYgaXRlbXMgaXMgYSBzY2hlbWEsIHRoZW4gdGhlIGNoaWxkIGluc3RhbmNlIG11c3QgYmUgdmFsaWQgYWdhaW5zdCB0aGlzIHNjaGVtYSxcbiAgICAgICAgLy8gcmVnYXJkbGVzcyBvZiBpdHMgaW5kZXgsIGFuZCByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiBcImFkZGl0aW9uYWxJdGVtc1wiLlxuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLml0ZW1zLCBqc29uW2lkeF0pO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cblxuICAgIH1cbn07XG5cbnZhciByZWN1cnNlT2JqZWN0ID0gZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjguM1xuXG4gICAgLy8gSWYgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiIGlzIGFic2VudCwgaXQgaXMgY29uc2lkZXJlZCBwcmVzZW50IHdpdGggYW4gZW1wdHkgc2NoZW1hIGFzIGEgdmFsdWUuXG4gICAgLy8gSW4gYWRkaXRpb24sIGJvb2xlYW4gdmFsdWUgdHJ1ZSBpcyBjb25zaWRlcmVkIGVxdWl2YWxlbnQgdG8gYW4gZW1wdHkgc2NoZW1hLlxuICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllcyA9IHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcztcbiAgICBpZiAoYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IHRydWUgfHwgYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllcyA9IHt9O1xuICAgIH1cblxuICAgIC8vIHAgLSBUaGUgcHJvcGVydHkgc2V0IGZyb20gXCJwcm9wZXJ0aWVzXCIuXG4gICAgdmFyIHAgPSBzY2hlbWEucHJvcGVydGllcyA/IE9iamVjdC5rZXlzKHNjaGVtYS5wcm9wZXJ0aWVzKSA6IFtdO1xuXG4gICAgLy8gcHAgLSBUaGUgcHJvcGVydHkgc2V0IGZyb20gXCJwYXR0ZXJuUHJvcGVydGllc1wiLiBFbGVtZW50cyBvZiB0aGlzIHNldCB3aWxsIGJlIGNhbGxlZCByZWdleGVzIGZvciBjb252ZW5pZW5jZS5cbiAgICB2YXIgcHAgPSBzY2hlbWEucGF0dGVyblByb3BlcnRpZXMgPyBPYmplY3Qua2V5cyhzY2hlbWEucGF0dGVyblByb3BlcnRpZXMpIDogW107XG5cbiAgICAvLyBtIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIGNoaWxkLlxuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoanNvbiksXG4gICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciBtID0ga2V5c1tpZHhdLFxuICAgICAgICAgICAgcHJvcGVydHlWYWx1ZSA9IGpzb25bbV07XG5cbiAgICAgICAgLy8gcyAtIFRoZSBzZXQgb2Ygc2NoZW1hcyBmb3IgdGhlIGNoaWxkIGluc3RhbmNlLlxuICAgICAgICB2YXIgcyA9IFtdO1xuXG4gICAgICAgIC8vIDEuIElmIHNldCBcInBcIiBjb250YWlucyB2YWx1ZSBcIm1cIiwgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBzY2hlbWEgaW4gXCJwcm9wZXJ0aWVzXCIgaXMgYWRkZWQgdG8gXCJzXCIuXG4gICAgICAgIGlmIChwLmluZGV4T2YobSkgIT09IC0xKSB7XG4gICAgICAgICAgICBzLnB1c2goc2NoZW1hLnByb3BlcnRpZXNbbV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gRm9yIGVhY2ggcmVnZXggaW4gXCJwcFwiLCBpZiBpdCBtYXRjaGVzIFwibVwiIHN1Y2Nlc3NmdWxseSwgdGhlIGNvcnJlc3BvbmRpbmcgc2NoZW1hIGluIFwicGF0dGVyblByb3BlcnRpZXNcIiBpcyBhZGRlZCB0byBcInNcIi5cbiAgICAgICAgdmFyIGlkeDIgPSBwcC5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgIHZhciByZWdleFN0cmluZyA9IHBwW2lkeDJdO1xuICAgICAgICAgICAgaWYgKFJlZ0V4cChyZWdleFN0cmluZykudGVzdChtKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHMucHVzaChzY2hlbWEucGF0dGVyblByb3BlcnRpZXNbcmVnZXhTdHJpbmddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDMuIFRoZSBzY2hlbWEgZGVmaW5lZCBieSBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIgaXMgYWRkZWQgdG8gXCJzXCIgaWYgYW5kIG9ubHkgaWYsIGF0IHRoaXMgc3RhZ2UsIFwic1wiIGlzIGVtcHR5LlxuICAgICAgICBpZiAocy5sZW5ndGggPT09IDAgJiYgYWRkaXRpb25hbFByb3BlcnRpZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBzLnB1c2goYWRkaXRpb25hbFByb3BlcnRpZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2UgYXJlIHBhc3NpbmcgdGVzdHMgZXZlbiB3aXRob3V0IHRoaXMgYXNzZXJ0IGJlY2F1c2UgdGhpcyBpcyBjb3ZlcmVkIGJ5IHByb3BlcnRpZXMgY2hlY2tcbiAgICAgICAgLy8gaWYgcyBpcyBlbXB0eSBpbiB0aGlzIHN0YWdlLCBubyBhZGRpdGlvbmFsUHJvcGVydGllcyBhcmUgYWxsb3dlZFxuICAgICAgICAvLyByZXBvcnQuZXhwZWN0KHMubGVuZ3RoICE9PSAwLCAnRTAwMScsIG0pO1xuXG4gICAgICAgIC8vIEluc3RhbmNlIHByb3BlcnR5IHZhbHVlIG11c3QgcGFzcyBhbGwgc2NoZW1hcyBmcm9tIHNcbiAgICAgICAgaWR4MiA9IHMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4Mi0tKSB7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKG0pO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc1tpZHgyXSwgcHJvcGVydHlWYWx1ZSk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydHMudmFsaWRhdGUgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcblxuICAgIHJlcG9ydC5jb21tb25FcnJvck1lc3NhZ2UgPSBcIkpTT05fT0JKRUNUX1ZBTElEQVRJT05fRkFJTEVEXCI7XG5cbiAgICAvLyBjaGVjayBpZiBzY2hlbWEgaXMgYW4gb2JqZWN0XG4gICAgdmFyIHRvID0gVXRpbHMud2hhdElzKHNjaGVtYSk7XG4gICAgaWYgKHRvICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlNDSEVNQV9OT1RfQU5fT0JKRUNUXCIsIFt0b10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiBzY2hlbWEgaXMgZW1wdHksIGV2ZXJ5dGhpbmcgaXMgdmFsaWQgYWdhaW5zdCBlbXB0eSBzY2hlbWFcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYSk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgcmVjdXJzaXZlbHksIHNvIHdlIG5lZWQgdG8gcmVtZW1iZXIgb3VyIHJvb3RcbiAgICB2YXIgaXNSb290ID0gZmFsc2U7XG4gICAgaWYgKCFyZXBvcnQucm9vdFNjaGVtYSkge1xuICAgICAgICByZXBvcnQucm9vdFNjaGVtYSA9IHNjaGVtYTtcbiAgICAgICAgaXNSb290ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBmb2xsb3cgc2NoZW1hLiRyZWYga2V5c1xuICAgIGlmIChzY2hlbWEuJHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIGF2b2lkIGluZmluaXRlIGxvb3Agd2l0aCBtYXhSZWZzXG4gICAgICAgIHZhciBtYXhSZWZzID0gOTk7XG4gICAgICAgIHdoaWxlIChzY2hlbWEuJHJlZiAmJiBtYXhSZWZzID4gMCkge1xuICAgICAgICAgICAgaWYgKCFzY2hlbWEuX18kcmVmUmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJSRUZfVU5SRVNPTFZFRFwiLCBbc2NoZW1hLiRyZWZdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEuX18kcmVmUmVzb2x2ZWQgPT09IHNjaGVtYSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzY2hlbWEgPSBzY2hlbWEuX18kcmVmUmVzb2x2ZWQ7XG4gICAgICAgICAgICAgICAga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXhSZWZzLS07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1heFJlZnMgPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNpcmN1bGFyIGRlcGVuZGVuY3kgYnkgJHJlZiByZWZlcmVuY2VzIVwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHR5cGUgY2hlY2tpbmcgZmlyc3RcbiAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjIuMlxuICAgIHZhciBqc29uVHlwZSA9IFV0aWxzLndoYXRJcyhqc29uKTtcbiAgICBpZiAoc2NoZW1hLnR5cGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEudHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKGpzb25UeXBlICE9PSBzY2hlbWEudHlwZSAmJiAoanNvblR5cGUgIT09IFwiaW50ZWdlclwiIHx8IHNjaGVtYS50eXBlICE9PSBcIm51bWJlclwiKSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIklOVkFMSURfVFlQRVwiLCBbc2NoZW1hLnR5cGUsIGpzb25UeXBlXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJyZWFrT25GaXJzdEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUuaW5kZXhPZihqc29uVHlwZSkgPT09IC0xICYmIChqc29uVHlwZSAhPT0gXCJpbnRlZ2VyXCIgfHwgc2NoZW1hLnR5cGUuaW5kZXhPZihcIm51bWJlclwiKSA9PT0gLTEpKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiSU5WQUxJRF9UWVBFXCIsIFtzY2hlbWEudHlwZSwganNvblR5cGVdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYnJlYWtPbkZpcnN0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIG5vdyBpdGVyYXRlIGFsbCB0aGUga2V5cyBpbiBzY2hlbWEgYW5kIGV4ZWN1dGUgdmFsaWRhdGlvbiBtZXRob2RzXG4gICAgdmFyIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICBpZiAoSnNvblZhbGlkYXRvcnNba2V5c1tpZHhdXSkge1xuICAgICAgICAgICAgSnNvblZhbGlkYXRvcnNba2V5c1tpZHhdXS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICAgICAgICAgIGlmIChyZXBvcnQuZXJyb3JzLmxlbmd0aCAmJiB0aGlzLm9wdGlvbnMuYnJlYWtPbkZpcnN0RXJyb3IpIHsgYnJlYWs7IH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZXBvcnQuZXJyb3JzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLm9wdGlvbnMuYnJlYWtPbkZpcnN0RXJyb3IgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChqc29uVHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgICAgICAgICByZWN1cnNlQXJyYXkuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSwganNvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoanNvblR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlY3Vyc2VPYmplY3QuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSwganNvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3ZSBkb24ndCBuZWVkIHRoZSByb290IHBvaW50ZXIgYW55bW9yZVxuICAgIGlmIChpc1Jvb3QpIHtcbiAgICAgICAgcmVwb3J0LnJvb3RTY2hlbWEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJuIHZhbGlkIGp1c3QgdG8gYmUgYWJsZSB0byBicmVhayBhdCBzb21lIGNvZGUgcG9pbnRzXG4gICAgcmV0dXJuIHJlcG9ydC5lcnJvcnMubGVuZ3RoID09PSAwO1xuXG59O1xuIiwiLy8gTnVtYmVyLmlzRmluaXRlIHBvbHlmaWxsXG4vLyBodHRwOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1udW1iZXIuaXNmaW5pdGVcbmlmICh0eXBlb2YgTnVtYmVyLmlzRmluaXRlICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBOdW1iZXIuaXNGaW5pdGUgPSBmdW5jdGlvbiBpc0Zpbml0ZSh2YWx1ZSkge1xuICAgICAgICAvLyAxLiBJZiBUeXBlKG51bWJlcikgaXMgbm90IE51bWJlciwgcmV0dXJuIGZhbHNlLlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMi4gSWYgbnVtYmVyIGlzIE5hTiwgK+KIniwgb3Ig4oiS4oieLCByZXR1cm4gZmFsc2UuXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUgfHwgdmFsdWUgPT09IEluZmluaXR5IHx8IHZhbHVlID09PSAtSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLiBPdGhlcndpc2UsIHJldHVybiB0cnVlLlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBFcnJvcnMgPSByZXF1aXJlKFwiLi9FcnJvcnNcIik7XG52YXIgVXRpbHMgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5cbmZ1bmN0aW9uIFJlcG9ydChwYXJlbnRPck9wdGlvbnMsIHJlcG9ydE9wdGlvbnMpIHtcbiAgICB0aGlzLnBhcmVudFJlcG9ydCA9IHBhcmVudE9yT3B0aW9ucyBpbnN0YW5jZW9mIFJlcG9ydCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50T3JPcHRpb25zIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLm9wdGlvbnMgPSBwYXJlbnRPck9wdGlvbnMgaW5zdGFuY2VvZiBSZXBvcnQgP1xuICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRPck9wdGlvbnMub3B0aW9ucyA6XG4gICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE9yT3B0aW9ucyB8fCB7fTtcblxuICAgIHRoaXMucmVwb3J0T3B0aW9ucyA9IHJlcG9ydE9wdGlvbnMgfHwge307XG5cbiAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgIHRoaXMucGF0aCA9IFtdO1xuICAgIHRoaXMuYXN5bmNUYXNrcyA9IFtdO1xufVxuXG5SZXBvcnQucHJvdG90eXBlLmlzVmFsaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuYXN5bmNUYXNrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFzeW5jIHRhc2tzIHBlbmRpbmcsIGNhbid0IGFuc3dlciBpc1ZhbGlkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID09PSAwO1xufTtcblxuUmVwb3J0LnByb3RvdHlwZS5hZGRBc3luY1Rhc2sgPSBmdW5jdGlvbiAoZm4sIGFyZ3MsIGFzeW5jVGFza1Jlc3VsdFByb2Nlc3NGbikge1xuICAgIHRoaXMuYXN5bmNUYXNrcy5wdXNoKFtmbiwgYXJncywgYXN5bmNUYXNrUmVzdWx0UHJvY2Vzc0ZuXSk7XG59O1xuXG5SZXBvcnQucHJvdG90eXBlLnByb2Nlc3NBc3luY1Rhc2tzID0gZnVuY3Rpb24gKHRpbWVvdXQsIGNhbGxiYWNrKSB7XG5cbiAgICB2YXIgdmFsaWRhdGlvblRpbWVvdXQgPSB0aW1lb3V0IHx8IDIwMDAsXG4gICAgICAgIHRhc2tzQ291bnQgICAgICAgID0gdGhpcy5hc3luY1Rhc2tzLmxlbmd0aCxcbiAgICAgICAgaWR4ICAgICAgICAgICAgICAgPSB0YXNrc0NvdW50LFxuICAgICAgICB0aW1lZE91dCAgICAgICAgICA9IGZhbHNlLFxuICAgICAgICBzZWxmICAgICAgICAgICAgICA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBmaW5pc2goKSB7XG4gICAgICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHZhbGlkID0gc2VsZi5lcnJvcnMubGVuZ3RoID09PSAwLFxuICAgICAgICAgICAgICAgIGVyciAgID0gdmFsaWQgPyB1bmRlZmluZWQgOiBzZWxmLmVycm9ycztcbiAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgdmFsaWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNwb25kKGFzeW5jVGFza1Jlc3VsdFByb2Nlc3NGbikge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGFzeW5jVGFza1Jlc3VsdCkge1xuICAgICAgICAgICAgaWYgKHRpbWVkT3V0KSB7IHJldHVybjsgfVxuICAgICAgICAgICAgYXN5bmNUYXNrUmVzdWx0UHJvY2Vzc0ZuKGFzeW5jVGFza1Jlc3VsdCk7XG4gICAgICAgICAgICBpZiAoLS10YXNrc0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZmluaXNoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRhc2tzQ291bnQgPT09IDAgfHwgdGhpcy5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICB2YXIgdGFzayA9IHRoaXMuYXN5bmNUYXNrc1tpZHhdO1xuICAgICAgICB0YXNrWzBdLmFwcGx5KG51bGwsIHRhc2tbMV0uY29uY2F0KHJlc3BvbmQodGFza1syXSkpKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRhc2tzQ291bnQgPiAwKSB7XG4gICAgICAgICAgICB0aW1lZE91dCA9IHRydWU7XG4gICAgICAgICAgICBzZWxmLmFkZEVycm9yKFwiQVNZTkNfVElNRU9VVFwiLCBbdGFza3NDb3VudCwgdmFsaWRhdGlvblRpbWVvdXRdKTtcbiAgICAgICAgICAgIGNhbGxiYWNrKHNlbGYuZXJyb3JzLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9LCB2YWxpZGF0aW9uVGltZW91dCk7XG5cbn07XG5cblJlcG9ydC5wcm90b3R5cGUuZ2V0UGF0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcGF0aCA9IFtdO1xuICAgIGlmICh0aGlzLnBhcmVudFJlcG9ydCkge1xuICAgICAgICBwYXRoID0gcGF0aC5jb25jYXQodGhpcy5wYXJlbnRSZXBvcnQucGF0aCk7XG4gICAgfVxuICAgIHBhdGggPSBwYXRoLmNvbmNhdCh0aGlzLnBhdGgpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5yZXBvcnRQYXRoQXNBcnJheSAhPT0gdHJ1ZSkge1xuICAgICAgICAvLyBTYW5pdGl6ZSB0aGUgcGF0aCBzZWdtZW50cyAoaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjkwMSNzZWN0aW9uLTQpXG4gICAgICAgIHBhdGggPSBcIiMvXCIgKyBwYXRoLm1hcChmdW5jdGlvbiAoc2VnbWVudCkge1xuXG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNBYnNvbHV0ZVVyaShzZWdtZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInVyaShcIiArIHNlZ21lbnQgKyBcIilcIjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNlZ21lbnQucmVwbGFjZShcIn5cIiwgXCJ+MFwiKS5yZXBsYWNlKFwiL1wiLCBcIn4xXCIpO1xuICAgICAgICB9KS5qb2luKFwiL1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG59O1xuXG5SZXBvcnQucHJvdG90eXBlLmFkZEVycm9yID0gZnVuY3Rpb24gKGVycm9yQ29kZSwgcGFyYW1zLCBzdWJSZXBvcnRzLCBzY2hlbWFEZXNjcmlwdGlvbikge1xuICAgIGlmICh0aGlzLmVycm9ycy5sZW5ndGggPj0gdGhpcy5yZXBvcnRPcHRpb25zLm1heEVycm9ycykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFlcnJvckNvZGUpIHsgdGhyb3cgbmV3IEVycm9yKFwiTm8gZXJyb3JDb2RlIHBhc3NlZCBpbnRvIGFkZEVycm9yKClcIik7IH1cbiAgICBpZiAoIUVycm9yc1tlcnJvckNvZGVdKSB7IHRocm93IG5ldyBFcnJvcihcIk5vIGVycm9yTWVzc2FnZSBrbm93biBmb3IgY29kZSBcIiArIGVycm9yQ29kZSk7IH1cblxuICAgIHBhcmFtcyA9IHBhcmFtcyB8fCBbXTtcblxuICAgIHZhciBpZHggPSBwYXJhbXMubGVuZ3RoLFxuICAgICAgICBlcnJvck1lc3NhZ2UgPSBFcnJvcnNbZXJyb3JDb2RlXTtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIHdoYXRJcyA9IFV0aWxzLndoYXRJcyhwYXJhbXNbaWR4XSk7XG4gICAgICAgIHZhciBwYXJhbSA9ICh3aGF0SXMgPT09IFwib2JqZWN0XCIgfHwgd2hhdElzID09PSBcIm51bGxcIikgPyBKU09OLnN0cmluZ2lmeShwYXJhbXNbaWR4XSkgOiBwYXJhbXNbaWR4XTtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlLnJlcGxhY2UoXCJ7XCIgKyBpZHggKyBcIn1cIiwgcGFyYW0pO1xuICAgIH1cblxuICAgIHZhciBlcnIgPSB7XG4gICAgICAgIGNvZGU6IGVycm9yQ29kZSxcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoKClcbiAgICB9O1xuXG4gICAgaWYgKHNjaGVtYURlc2NyaXB0aW9uKSB7XG4gICAgICAgIGVyci5kZXNjcmlwdGlvbiA9IHNjaGVtYURlc2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGlmIChzdWJSZXBvcnRzICE9IG51bGwpIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHN1YlJlcG9ydHMpKSB7XG4gICAgICAgICAgICBzdWJSZXBvcnRzID0gW3N1YlJlcG9ydHNdO1xuICAgICAgICB9XG4gICAgICAgIGVyci5pbm5lciA9IFtdO1xuICAgICAgICBpZHggPSBzdWJSZXBvcnRzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIgc3ViUmVwb3J0ID0gc3ViUmVwb3J0c1tpZHhdLFxuICAgICAgICAgICAgICAgIGlkeDIgPSBzdWJSZXBvcnQuZXJyb3JzLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgICAgICBlcnIuaW5uZXIucHVzaChzdWJSZXBvcnQuZXJyb3JzW2lkeDJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyLmlubmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZXJyLmlubmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lcnJvcnMucHVzaChlcnIpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZXBvcnQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIFJlcG9ydCAgICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9SZXBvcnRcIik7XG52YXIgU2NoZW1hQ29tcGlsYXRpb24gICA9IHJlcXVpcmUoXCIuL1NjaGVtYUNvbXBpbGF0aW9uXCIpO1xudmFyIFNjaGVtYVZhbGlkYXRpb24gICAgPSByZXF1aXJlKFwiLi9TY2hlbWFWYWxpZGF0aW9uXCIpO1xudmFyIFV0aWxzICAgICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcblxuZnVuY3Rpb24gZGVjb2RlSlNPTlBvaW50ZXIoc3RyKSB7XG4gICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1hcHBzYXdnLWpzb24tcG9pbnRlci0wNyNzZWN0aW9uLTNcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvflswLTFdL2csIGZ1bmN0aW9uICh4KSB7XG4gICAgICAgIHJldHVybiB4ID09PSBcIn4xXCIgPyBcIi9cIiA6IFwiflwiO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRSZW1vdGVQYXRoKHVyaSkge1xuICAgIHZhciBpbyA9IHVyaS5pbmRleE9mKFwiI1wiKTtcbiAgICByZXR1cm4gaW8gPT09IC0xID8gdXJpIDogdXJpLnNsaWNlKDAsIGlvKTtcbn1cblxuZnVuY3Rpb24gZ2V0UXVlcnlQYXRoKHVyaSkge1xuICAgIHZhciBpbyA9IHVyaS5pbmRleE9mKFwiI1wiKTtcbiAgICB2YXIgcmVzID0gaW8gPT09IC0xID8gdW5kZWZpbmVkIDogdXJpLnNsaWNlKGlvICsgMSk7XG4gICAgLy8gV0FSTjogZG8gbm90IHNsaWNlIHNsYXNoLCAjLyBtZWFucyB0YWtlIHJvb3QgYW5kIGdvIGRvd24gZnJvbSBpdFxuICAgIC8vIGlmIChyZXMgJiYgcmVzWzBdID09PSBcIi9cIikgeyByZXMgPSByZXMuc2xpY2UoMSk7IH1cbiAgICByZXR1cm4gcmVzO1xufVxuXG5mdW5jdGlvbiBmaW5kSWQoc2NoZW1hLCBpZCkge1xuICAgIC8vIHByb2Nlc3Mgb25seSBhcnJheXMgYW5kIG9iamVjdHNcbiAgICBpZiAodHlwZW9mIHNjaGVtYSAhPT0gXCJvYmplY3RcIiB8fCBzY2hlbWEgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG5vIGlkIG1lYW5zIHJvb3Qgc28gcmV0dXJuIGl0c2VsZlxuICAgIGlmICghaWQpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBpZiAoc2NoZW1hLmlkKSB7XG4gICAgICAgIGlmIChzY2hlbWEuaWQgPT09IGlkIHx8IHNjaGVtYS5pZFswXSA9PT0gXCIjXCIgJiYgc2NoZW1hLmlkLnN1YnN0cmluZygxKSA9PT0gaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaWR4LCByZXN1bHQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hKSkge1xuICAgICAgICBpZHggPSBzY2hlbWEubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGZpbmRJZChzY2hlbWFbaWR4XSwgaWQpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkgeyByZXR1cm4gcmVzdWx0OyB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYSk7XG4gICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBrID0ga2V5c1tpZHhdO1xuICAgICAgICAgICAgaWYgKGsuaW5kZXhPZihcIl9fJFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0ID0gZmluZElkKHNjaGVtYVtrXSwgaWQpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkgeyByZXR1cm4gcmVzdWx0OyB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydHMuY2FjaGVTY2hlbWFCeVVyaSA9IGZ1bmN0aW9uICh1cmksIHNjaGVtYSkge1xuICAgIHZhciByZW1vdGVQYXRoID0gZ2V0UmVtb3RlUGF0aCh1cmkpO1xuICAgIGlmIChyZW1vdGVQYXRoKSB7XG4gICAgICAgIHRoaXMuY2FjaGVbcmVtb3RlUGF0aF0gPSBzY2hlbWE7XG4gICAgfVxufTtcblxuZXhwb3J0cy5yZW1vdmVGcm9tQ2FjaGVCeVVyaSA9IGZ1bmN0aW9uICh1cmkpIHtcbiAgICB2YXIgcmVtb3RlUGF0aCA9IGdldFJlbW90ZVBhdGgodXJpKTtcbiAgICBpZiAocmVtb3RlUGF0aCkge1xuICAgICAgICB0aGlzLmNhY2hlW3JlbW90ZVBhdGhdID0gdW5kZWZpbmVkO1xuICAgIH1cbn07XG5cbmV4cG9ydHMuY2hlY2tDYWNoZUZvclVyaSA9IGZ1bmN0aW9uICh1cmkpIHtcbiAgICB2YXIgcmVtb3RlUGF0aCA9IGdldFJlbW90ZVBhdGgodXJpKTtcbiAgICByZXR1cm4gcmVtb3RlUGF0aCA/IHRoaXMuY2FjaGVbcmVtb3RlUGF0aF0gIT0gbnVsbCA6IGZhbHNlO1xufTtcblxuZXhwb3J0cy5nZXRTY2hlbWEgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBzY2hlbWEgPSBleHBvcnRzLmdldFNjaGVtYUJ5UmVmZXJlbmNlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzY2hlbWEgPSBleHBvcnRzLmdldFNjaGVtYUJ5VXJpLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgIH1cbiAgICByZXR1cm4gc2NoZW1hO1xufTtcblxuZXhwb3J0cy5nZXRTY2hlbWFCeVJlZmVyZW5jZSA9IGZ1bmN0aW9uIChyZXBvcnQsIGtleSkge1xuICAgIHZhciBpID0gdGhpcy5yZWZlcmVuY2VDYWNoZS5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgICBpZiAodGhpcy5yZWZlcmVuY2VDYWNoZVtpXVswXSA9PT0ga2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VDYWNoZVtpXVsxXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBub3QgZm91bmRcbiAgICB2YXIgc2NoZW1hID0gVXRpbHMuY2xvbmVEZWVwKGtleSk7XG4gICAgdGhpcy5yZWZlcmVuY2VDYWNoZS5wdXNoKFtrZXksIHNjaGVtYV0pO1xuICAgIHJldHVybiBzY2hlbWE7XG59O1xuXG5leHBvcnRzLmdldFNjaGVtYUJ5VXJpID0gZnVuY3Rpb24gKHJlcG9ydCwgdXJpLCByb290KSB7XG4gICAgdmFyIHJlbW90ZVBhdGggPSBnZXRSZW1vdGVQYXRoKHVyaSksXG4gICAgICAgIHF1ZXJ5UGF0aCA9IGdldFF1ZXJ5UGF0aCh1cmkpLFxuICAgICAgICByZXN1bHQgPSByZW1vdGVQYXRoID8gdGhpcy5jYWNoZVtyZW1vdGVQYXRoXSA6IHJvb3Q7XG5cbiAgICBpZiAocmVzdWx0ICYmIHJlbW90ZVBhdGgpIHtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBhdm9pZCBjb21waWxpbmcgc2NoZW1hcyBpbiBhIHJlY3Vyc2l2ZSBsb29wXG4gICAgICAgIHZhciBjb21waWxlUmVtb3RlID0gcmVzdWx0ICE9PSByb290O1xuICAgICAgICAvLyBub3cgd2UgbmVlZCB0byBjb21waWxlIGFuZCB2YWxpZGF0ZSByZXNvbHZlZCBzY2hlbWEgKGluIGNhc2UgaXQncyBub3QgYWxyZWFkeSlcbiAgICAgICAgaWYgKGNvbXBpbGVSZW1vdGUpIHtcblxuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChyZW1vdGVQYXRoKTtcblxuICAgICAgICAgICAgdmFyIHJlbW90ZVJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0KTtcbiAgICAgICAgICAgIGlmIChTY2hlbWFDb21waWxhdGlvbi5jb21waWxlU2NoZW1hLmNhbGwodGhpcywgcmVtb3RlUmVwb3J0LCByZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgU2NoZW1hVmFsaWRhdGlvbi52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlbW90ZVJlcG9ydCwgcmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciByZW1vdGVSZXBvcnRJc1ZhbGlkID0gcmVtb3RlUmVwb3J0LmlzVmFsaWQoKTtcbiAgICAgICAgICAgIGlmICghcmVtb3RlUmVwb3J0SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlJFTU9URV9OT1RfVkFMSURcIiwgW3VyaV0sIHJlbW90ZVJlcG9ydCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuXG4gICAgICAgICAgICBpZiAoIXJlbW90ZVJlcG9ydElzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdCAmJiBxdWVyeVBhdGgpIHtcbiAgICAgICAgdmFyIHBhcnRzID0gcXVlcnlQYXRoLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgZm9yICh2YXIgaWR4ID0gMCwgbGltID0gcGFydHMubGVuZ3RoOyBpZHggPCBsaW07IGlkeCsrKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gZGVjb2RlSlNPTlBvaW50ZXIocGFydHNbaWR4XSk7XG4gICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7IC8vIGl0J3MgYW4gaWRcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBmaW5kSWQocmVzdWx0LCBrZXkpO1xuICAgICAgICAgICAgfSBlbHNlIHsgLy8gaXQncyBhIHBhdGggYmVoaW5kIGlkXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0cy5nZXRSZW1vdGVQYXRoID0gZ2V0UmVtb3RlUGF0aDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgUmVwb3J0ICAgICAgPSByZXF1aXJlKFwiLi9SZXBvcnRcIik7XG52YXIgU2NoZW1hQ2FjaGUgPSByZXF1aXJlKFwiLi9TY2hlbWFDYWNoZVwiKTtcbnZhciBVdGlscyAgICAgICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuXG5mdW5jdGlvbiBtZXJnZVJlZmVyZW5jZShzY29wZSwgcmVmKSB7XG4gICAgaWYgKFV0aWxzLmlzQWJzb2x1dGVVcmkocmVmKSkge1xuICAgICAgICByZXR1cm4gcmVmO1xuICAgIH1cblxuICAgIHZhciBqb2luZWRTY29wZSA9IHNjb3BlLmpvaW4oXCJcIiksXG4gICAgICAgIGlzU2NvcGVBYnNvbHV0ZSA9IFV0aWxzLmlzQWJzb2x1dGVVcmkoam9pbmVkU2NvcGUpLFxuICAgICAgICBpc1Njb3BlUmVsYXRpdmUgPSBVdGlscy5pc1JlbGF0aXZlVXJpKGpvaW5lZFNjb3BlKSxcbiAgICAgICAgaXNSZWZSZWxhdGl2ZSA9IFV0aWxzLmlzUmVsYXRpdmVVcmkocmVmKSxcbiAgICAgICAgdG9SZW1vdmU7XG5cbiAgICBpZiAoaXNTY29wZUFic29sdXRlICYmIGlzUmVmUmVsYXRpdmUpIHtcbiAgICAgICAgdG9SZW1vdmUgPSBqb2luZWRTY29wZS5tYXRjaCgvXFwvW15cXC9dKiQvKTtcbiAgICAgICAgaWYgKHRvUmVtb3ZlKSB7XG4gICAgICAgICAgICBqb2luZWRTY29wZSA9IGpvaW5lZFNjb3BlLnNsaWNlKDAsIHRvUmVtb3ZlLmluZGV4ICsgMSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU2NvcGVSZWxhdGl2ZSAmJiBpc1JlZlJlbGF0aXZlKSB7XG4gICAgICAgIGpvaW5lZFNjb3BlID0gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0b1JlbW92ZSA9IGpvaW5lZFNjb3BlLm1hdGNoKC9bXiMvXSskLyk7XG4gICAgICAgIGlmICh0b1JlbW92ZSkge1xuICAgICAgICAgICAgam9pbmVkU2NvcGUgPSBqb2luZWRTY29wZS5zbGljZSgwLCB0b1JlbW92ZS5pbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcmVzID0gam9pbmVkU2NvcGUgKyByZWY7XG4gICAgcmVzID0gcmVzLnJlcGxhY2UoLyMjLywgXCIjXCIpO1xuICAgIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RSZWZlcmVuY2VzKG9iaiwgcmVzdWx0cywgc2NvcGUsIHBhdGgpIHtcbiAgICByZXN1bHRzID0gcmVzdWx0cyB8fCBbXTtcbiAgICBzY29wZSA9IHNjb3BlIHx8IFtdO1xuICAgIHBhdGggPSBwYXRoIHx8IFtdO1xuXG4gICAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgb2JqID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb2JqLmlkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHNjb3BlLnB1c2gob2JqLmlkKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iai4kcmVmID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiBvYmouX18kcmVmUmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICAgIHJlZjogbWVyZ2VSZWZlcmVuY2Uoc2NvcGUsIG9iai4kcmVmKSxcbiAgICAgICAgICAgIGtleTogXCIkcmVmXCIsXG4gICAgICAgICAgICBvYmo6IG9iaixcbiAgICAgICAgICAgIHBhdGg6IHBhdGguc2xpY2UoMClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb2JqLiRzY2hlbWEgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIG9iai5fXyRzY2hlbWFSZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXN1bHRzLnB1c2goe1xuICAgICAgICAgICAgcmVmOiBtZXJnZVJlZmVyZW5jZShzY29wZSwgb2JqLiRzY2hlbWEpLFxuICAgICAgICAgICAga2V5OiBcIiRzY2hlbWFcIixcbiAgICAgICAgICAgIG9iajogb2JqLFxuICAgICAgICAgICAgcGF0aDogcGF0aC5zbGljZSgwKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB2YXIgaWR4O1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgaWR4ID0gb2JqLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICBwYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29sbGVjdFJlZmVyZW5jZXMob2JqW2lkeF0sIHJlc3VsdHMsIHNjb3BlLCBwYXRoKTtcbiAgICAgICAgICAgIHBhdGgucG9wKCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdCByZWN1cnNlIHRocm91Z2ggcmVzb2x2ZWQgcmVmZXJlbmNlcyBhbmQgb3RoZXIgei1zY2hlbWEgcHJvcHNcbiAgICAgICAgICAgIGlmIChrZXlzW2lkeF0uaW5kZXhPZihcIl9fJFwiKSA9PT0gMCkgeyBjb250aW51ZTsgfVxuICAgICAgICAgICAgcGF0aC5wdXNoKGtleXNbaWR4XSk7XG4gICAgICAgICAgICBjb2xsZWN0UmVmZXJlbmNlcyhvYmpba2V5c1tpZHhdXSwgcmVzdWx0cywgc2NvcGUsIHBhdGgpO1xuICAgICAgICAgICAgcGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb2JqLmlkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHNjb3BlLnBvcCgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRzO1xufVxuXG52YXIgY29tcGlsZUFycmF5T2ZTY2hlbWFzTG9vcCA9IGZ1bmN0aW9uIChtYWluUmVwb3J0LCBhcnIpIHtcbiAgICB2YXIgaWR4ID0gYXJyLmxlbmd0aCxcbiAgICAgICAgY29tcGlsZWRDb3VudCA9IDA7XG5cbiAgICB3aGlsZSAoaWR4LS0pIHtcblxuICAgICAgICAvLyB0cnkgdG8gY29tcGlsZSBlYWNoIHNjaGVtYSBzZXBhcmF0ZWx5XG4gICAgICAgIHZhciByZXBvcnQgPSBuZXcgUmVwb3J0KG1haW5SZXBvcnQpO1xuICAgICAgICB2YXIgaXNWYWxpZCA9IGV4cG9ydHMuY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgYXJyW2lkeF0pO1xuICAgICAgICBpZiAoaXNWYWxpZCkgeyBjb21waWxlZENvdW50Kys7IH1cblxuICAgICAgICAvLyBjb3B5IGVycm9ycyB0byByZXBvcnRcbiAgICAgICAgbWFpblJlcG9ydC5lcnJvcnMgPSBtYWluUmVwb3J0LmVycm9ycy5jb25jYXQocmVwb3J0LmVycm9ycyk7XG5cbiAgICB9XG5cbiAgICByZXR1cm4gY29tcGlsZWRDb3VudDtcbn07XG5cbmZ1bmN0aW9uIGZpbmRJZChhcnIsIGlkKSB7XG4gICAgdmFyIGlkeCA9IGFyci5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIGlmIChhcnJbaWR4XS5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnJbaWR4XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGNvbXBpbGVBcnJheU9mU2NoZW1hcyA9IGZ1bmN0aW9uIChyZXBvcnQsIGFycikge1xuXG4gICAgdmFyIGNvbXBpbGVkID0gMCxcbiAgICAgICAgbGFzdExvb3BDb21waWxlZDtcblxuICAgIGRvIHtcblxuICAgICAgICAvLyByZW1vdmUgYWxsIFVOUkVTT0xWQUJMRV9SRUZFUkVOQ0UgZXJyb3JzIGJlZm9yZSBjb21waWxpbmcgYXJyYXkgYWdhaW5cbiAgICAgICAgdmFyIGlkeCA9IHJlcG9ydC5lcnJvcnMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIGlmIChyZXBvcnQuZXJyb3JzW2lkeF0uY29kZSA9PT0gXCJVTlJFU09MVkFCTEVfUkVGRVJFTkNFXCIpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuZXJyb3JzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVtZW1iZXIgaG93IG1hbnkgd2VyZSBjb21waWxlZCBpbiB0aGUgbGFzdCBsb29wXG4gICAgICAgIGxhc3RMb29wQ29tcGlsZWQgPSBjb21waWxlZDtcblxuICAgICAgICAvLyBjb3VudCBob3cgbWFueSBhcmUgY29tcGlsZWQgbm93XG4gICAgICAgIGNvbXBpbGVkID0gY29tcGlsZUFycmF5T2ZTY2hlbWFzTG9vcC5jYWxsKHRoaXMsIHJlcG9ydCwgYXJyKTtcblxuICAgICAgICAvLyBmaXggX18kbWlzc2luZ1JlZmVyZW5jZXMgaWYgcG9zc2libGVcbiAgICAgICAgaWR4ID0gYXJyLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIgc2NoID0gYXJyW2lkeF07XG4gICAgICAgICAgICBpZiAoc2NoLl9fJG1pc3NpbmdSZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgdmFyIGlkeDIgPSBzY2guX18kbWlzc2luZ1JlZmVyZW5jZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlZk9iaiA9IHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlc1tpZHgyXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gZmluZElkKGFyciwgcmVmT2JqLnJlZik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBtaWdodCBjcmVhdGUgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmT2JqLm9ialtcIl9fXCIgKyByZWZPYmoua2V5ICsgXCJSZXNvbHZlZFwiXSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQncyByZXNvbHZlZCBub3cgc28gZGVsZXRlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICBzY2guX18kbWlzc2luZ1JlZmVyZW5jZXMuc3BsaWNlKGlkeDIsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzY2guX18kbWlzc2luZ1JlZmVyZW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzY2guX18kbWlzc2luZ1JlZmVyZW5jZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8ga2VlcCByZXBlYXRpbmcgaWYgbm90IGFsbCBjb21waWxlZCBhbmQgYXQgbGVhc3Qgb25lIG1vcmUgd2FzIGNvbXBpbGVkIGluIHRoZSBsYXN0IGxvb3BcbiAgICB9IHdoaWxlIChjb21waWxlZCAhPT0gYXJyLmxlbmd0aCAmJiBjb21waWxlZCAhPT0gbGFzdExvb3BDb21waWxlZCk7XG5cbiAgICByZXR1cm4gcmVwb3J0LmlzVmFsaWQoKTtcblxufTtcblxuZXhwb3J0cy5jb21waWxlU2NoZW1hID0gZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG5cbiAgICByZXBvcnQuY29tbW9uRXJyb3JNZXNzYWdlID0gXCJTQ0hFTUFfQ09NUElMQVRJT05fRkFJTEVEXCI7XG5cbiAgICAvLyBpZiBzY2hlbWEgaXMgYSBzdHJpbmcsIGFzc3VtZSBpdCdzIGEgdXJpXG4gICAgaWYgKHR5cGVvZiBzY2hlbWEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdmFyIGxvYWRlZFNjaGVtYSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYUJ5VXJpLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgICAgICBpZiAoIWxvYWRlZFNjaGVtYSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiU0NIRU1BX05PVF9SRUFDSEFCTEVcIiwgW3NjaGVtYV0pO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHNjaGVtYSA9IGxvYWRlZFNjaGVtYTtcbiAgICB9XG5cbiAgICAvLyBpZiBzY2hlbWEgaXMgYW4gYXJyYXksIGFzc3VtZSBpdCdzIGFuIGFycmF5IG9mIHNjaGVtYXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgICAgIHJldHVybiBjb21waWxlQXJyYXlPZlNjaGVtYXMuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgaGF2ZSBhbiBpZCB0aGFuIGl0IHNob3VsZCBiZSBjYWNoZWQgYWxyZWFkeSAoaWYgdGhpcyBpbnN0YW5jZSBoYXMgY29tcGlsZWQgaXQpXG4gICAgaWYgKHNjaGVtYS5fXyRjb21waWxlZCAmJiBzY2hlbWEuaWQgJiYgU2NoZW1hQ2FjaGUuY2hlY2tDYWNoZUZvclVyaS5jYWxsKHRoaXMsIHNjaGVtYS5pZCkgPT09IGZhbHNlKSB7XG4gICAgICAgIHNjaGVtYS5fXyRjb21waWxlZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBkbyBub3QgcmUtY29tcGlsZSBzY2hlbWFzXG4gICAgaWYgKHNjaGVtYS5fXyRjb21waWxlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoc2NoZW1hLmlkKSB7XG4gICAgICAgIC8vIGFkZCB0aGlzIHRvIG91ciBzY2hlbWFDYWNoZSAoYmVmb3JlIGNvbXBpbGF0aW9uIGluIGNhc2Ugd2UgaGF2ZSByZWZlcmVuY2VzIGluY2x1ZGluZyBpZClcbiAgICAgICAgU2NoZW1hQ2FjaGUuY2FjaGVTY2hlbWFCeVVyaS5jYWxsKHRoaXMsIHNjaGVtYS5pZCwgc2NoZW1hKTtcbiAgICB9XG5cbiAgICAvLyBkZWxldGUgYWxsIF9fJG1pc3NpbmdSZWZlcmVuY2VzIGZyb20gcHJldmlvdXMgY29tcGlsYXRpb24gYXR0ZW1wdHNcbiAgICB2YXIgaXNWYWxpZEV4Y2VwdFJlZmVyZW5jZXMgPSByZXBvcnQuaXNWYWxpZCgpO1xuICAgIGRlbGV0ZSBzY2hlbWEuX18kbWlzc2luZ1JlZmVyZW5jZXM7XG5cbiAgICAvLyBjb2xsZWN0IGFsbCByZWZlcmVuY2VzIHRoYXQgbmVlZCB0byBiZSByZXNvbHZlZCAtICRyZWYgYW5kICRzY2hlbWFcbiAgICB2YXIgcmVmcyA9IGNvbGxlY3RSZWZlcmVuY2VzLmNhbGwodGhpcywgc2NoZW1hKSxcbiAgICAgICAgaWR4ID0gcmVmcy5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIC8vIHJlc29sdmUgYWxsIHRoZSBjb2xsZWN0ZWQgcmVmZXJlbmNlcyBpbnRvIF9feHh4UmVzb2x2ZWQgcG9pbnRlclxuICAgICAgICB2YXIgcmVmT2JqID0gcmVmc1tpZHhdO1xuICAgICAgICB2YXIgcmVzcG9uc2UgPSBTY2hlbWFDYWNoZS5nZXRTY2hlbWFCeVVyaS5jYWxsKHRoaXMsIHJlcG9ydCwgcmVmT2JqLnJlZiwgc2NoZW1hKTtcblxuICAgICAgICAvLyB3ZSBjYW4gdHJ5IHRvIHVzZSBjdXN0b20gc2NoZW1hUmVhZGVyIGlmIGF2YWlsYWJsZVxuICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgICAgICB2YXIgc2NoZW1hUmVhZGVyID0gdGhpcy5nZXRTY2hlbWFSZWFkZXIoKTtcbiAgICAgICAgICAgIGlmIChzY2hlbWFSZWFkZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBpdCdzIHN1cHBvc2VkIHRvIHJldHVybiBhIHZhbGlkIHNjaGVtYVxuICAgICAgICAgICAgICAgIHZhciBzID0gc2NoZW1hUmVhZGVyKHJlZk9iai5yZWYpO1xuICAgICAgICAgICAgICAgIGlmIChzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGl0IG5lZWRzIHRvIGhhdmUgdGhlIGlkXG4gICAgICAgICAgICAgICAgICAgIHMuaWQgPSByZWZPYmoucmVmO1xuICAgICAgICAgICAgICAgICAgICAvLyB0cnkgdG8gY29tcGlsZSB0aGUgc2NoZW1hXG4gICAgICAgICAgICAgICAgICAgIHZhciBzdWJyZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZXhwb3J0cy5jb21waWxlU2NoZW1hLmNhbGwodGhpcywgc3VicmVwb3J0LCBzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29weSBlcnJvcnMgdG8gcmVwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZXJyb3JzID0gcmVwb3J0LmVycm9ycy5jb25jYXQoc3VicmVwb3J0LmVycm9ycyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYUJ5VXJpLmNhbGwodGhpcywgcmVwb3J0LCByZWZPYmoucmVmLCBzY2hlbWEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuXG4gICAgICAgICAgICB2YXIgaXNBYnNvbHV0ZSA9IFV0aWxzLmlzQWJzb2x1dGVVcmkocmVmT2JqLnJlZik7XG4gICAgICAgICAgICB2YXIgaXNEb3dubG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB2YXIgaWdub3JlVW5yZXNvbHZhYmxlUmVtb3RlcyA9IHRoaXMub3B0aW9ucy5pZ25vcmVVbnJlc29sdmFibGVSZWZlcmVuY2VzID09PSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoaXNBYnNvbHV0ZSkge1xuICAgICAgICAgICAgICAgIC8vIHdlIHNob3VsZG4ndCBhZGQgVU5SRVNPTFZBQkxFX1JFRkVSRU5DRSBmb3Igc2NoZW1hcyB3ZSBhbHJlYWR5IGhhdmUgZG93bmxvYWRlZFxuICAgICAgICAgICAgICAgIC8vIGFuZCBzZXQgdGhyb3VnaCBzZXRSZW1vdGVSZWZlcmVuY2UgbWV0aG9kXG4gICAgICAgICAgICAgICAgaXNEb3dubG9hZGVkID0gU2NoZW1hQ2FjaGUuY2hlY2tDYWNoZUZvclVyaS5jYWxsKHRoaXMsIHJlZk9iai5yZWYpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzQWJzb2x1dGUgfHwgIWlzRG93bmxvYWRlZCAmJiAhaWdub3JlVW5yZXNvbHZhYmxlUmVtb3Rlcykge1xuICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHJlcG9ydC5wYXRoLCByZWZPYmoucGF0aCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiVU5SRVNPTFZBQkxFX1JFRkVSRU5DRVwiLCBbcmVmT2JqLnJlZl0pO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnNsaWNlKDAsIC1yZWZPYmoucGF0aC5sZW5ndGgpO1xuXG4gICAgICAgICAgICAgICAgLy8gcHVzYmxpc2ggdW5yZXNvbHZlZCByZWZlcmVuY2VzIG91dFxuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRXhjZXB0UmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuX18kbWlzc2luZ1JlZmVyZW5jZXMgPSBzY2hlbWEuX18kbWlzc2luZ1JlZmVyZW5jZXMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5fXyRtaXNzaW5nUmVmZXJlbmNlcy5wdXNoKHJlZk9iaik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHRoaXMgbWlnaHQgY3JlYXRlIGNpcmN1bGFyIHJlZmVyZW5jZXNcbiAgICAgICAgcmVmT2JqLm9ialtcIl9fXCIgKyByZWZPYmoua2V5ICsgXCJSZXNvbHZlZFwiXSA9IHJlc3BvbnNlO1xuICAgIH1cblxuICAgIHZhciBpc1ZhbGlkID0gcmVwb3J0LmlzVmFsaWQoKTtcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICBzY2hlbWEuX18kY29tcGlsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzY2hlbWEuaWQpIHtcbiAgICAgICAgICAgIC8vIHJlbW92ZSB0aGlzIHNjaGVtYSBmcm9tIHNjaGVtYUNhY2hlIGJlY2F1c2UgaXQgZmFpbGVkIHRvIGNvbXBpbGVcbiAgICAgICAgICAgIFNjaGVtYUNhY2hlLnJlbW92ZUZyb21DYWNoZUJ5VXJpLmNhbGwodGhpcywgc2NoZW1hLmlkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZDtcblxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgRm9ybWF0VmFsaWRhdG9ycyA9IHJlcXVpcmUoXCIuL0Zvcm1hdFZhbGlkYXRvcnNcIiksXG4gICAgSnNvblZhbGlkYXRpb24gICA9IHJlcXVpcmUoXCIuL0pzb25WYWxpZGF0aW9uXCIpLFxuICAgIFJlcG9ydCAgICAgICAgICAgPSByZXF1aXJlKFwiLi9SZXBvcnRcIiksXG4gICAgVXRpbHMgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuXG52YXIgU2NoZW1hVmFsaWRhdG9ycyA9IHtcbiAgICAkcmVmOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1hcHBzYXdnLWpzb24tcG9pbnRlci0wN1xuICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1wYnJ5YW4tenlwLWpzb24tcmVmLTAzXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLiRyZWYgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCIkcmVmXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgJHNjaGVtYTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLWNvcmUuaHRtbCNyZmMuc2VjdGlvbi42XG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLiRzY2hlbWEgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCIkc2NoZW1hXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbXVsdGlwbGVPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMS4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLm11bHRpcGxlT2YgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtdWx0aXBsZU9mXCIsIFwibnVtYmVyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubXVsdGlwbGVPZiA8PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibXVsdGlwbGVPZlwiLCBcInN0cmljdGx5IGdyZWF0ZXIgdGhhbiAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4aW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMi4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLm1heGltdW0gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtYXhpbXVtXCIsIFwibnVtYmVyXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZXhjbHVzaXZlTWF4aW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMi4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmV4Y2x1c2l2ZU1heGltdW0gIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZXhjbHVzaXZlTWF4aW11bVwiLCBcImJvb2xlYW5cIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5tYXhpbXVtID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfREVQRU5ERU5DWVwiLCBbXCJleGNsdXNpdmVNYXhpbXVtXCIsIFwibWF4aW11bVwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pbmltdW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjMuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5taW5pbXVtICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWluaW11bVwiLCBcIm51bWJlclwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGV4Y2x1c2l2ZU1pbmltdW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjMuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5leGNsdXNpdmVNaW5pbXVtICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImV4Y2x1c2l2ZU1pbmltdW1cIiwgXCJib29sZWFuXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWluaW11bSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX0RFUEVOREVOQ1lcIiwgW1wiZXhjbHVzaXZlTWluaW11bVwiLCBcIm1pbmltdW1cIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhMZW5ndGg6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4yLjEuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5tYXhMZW5ndGgpICE9PSBcImludGVnZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1heExlbmd0aFwiLCBcImludGVnZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5tYXhMZW5ndGggPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWF4TGVuZ3RoXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluTGVuZ3RoOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4yLjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEubWluTGVuZ3RoKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtaW5MZW5ndGhcIiwgXCJpbnRlZ2VyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWluTGVuZ3RoIDwgMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm1pbkxlbmd0aFwiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBhdHRlcm46IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4yLjMuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5wYXR0ZXJuICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wicGF0dGVyblwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIFJlZ0V4cChzY2hlbWEucGF0dGVybik7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9QQVRURVJOXCIsIFtcInBhdHRlcm5cIiwgc2NoZW1hLnBhdHRlcm5dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRkaXRpb25hbEl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4xLjFcbiAgICAgICAgdmFyIHR5cGUgPSBVdGlscy53aGF0SXMoc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyk7XG4gICAgICAgIGlmICh0eXBlICE9PSBcImJvb2xlYW5cIiAmJiB0eXBlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiYWRkaXRpb25hbEl0ZW1zXCIsIFtcImJvb2xlYW5cIiwgXCJvYmplY3RcIl1dKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiYWRkaXRpb25hbEl0ZW1zXCIpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjEuMVxuICAgICAgICB2YXIgdHlwZSA9IFV0aWxzLndoYXRJcyhzY2hlbWEuaXRlbXMpO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiaXRlbXNcIik7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuaXRlbXMpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJpdGVtc1wiKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuaXRlbXNbaWR4XSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiaXRlbXNcIiwgW1wiYXJyYXlcIiwgXCJvYmplY3RcIl1dKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGN1c3RvbSAtIHN0cmljdCBtb2RlXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VBZGRpdGlvbmFsID09PSB0cnVlICYmIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMgPT09IHVuZGVmaW5lZCAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJhZGRpdGlvbmFsSXRlbXNcIl0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGN1c3RvbWUgLSBhc3N1bWUgZGVmaW5lZCBmYWxzZSBtb2RlXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXNzdW1lQWRkaXRpb25hbCA9PT0gdHJ1ZSAmJiBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zID09PSB1bmRlZmluZWQgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgICAgICBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heEl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4yLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEubWF4SXRlbXMgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtYXhJdGVtc1wiLCBcImludGVnZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5tYXhJdGVtcyA8IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtYXhJdGVtc1wiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pbkl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4zLjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEubWluSXRlbXMpICE9PSBcImludGVnZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1pbkl0ZW1zXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1pbkl0ZW1zIDwgMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm1pbkl0ZW1zXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdW5pcXVlSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjQuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS51bmlxdWVJdGVtcyAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJ1bmlxdWVJdGVtc1wiLCBcImJvb2xlYW5cIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhQcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4xLjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEubWF4UHJvcGVydGllcykgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWF4UHJvcGVydGllc1wiLCBcImludGVnZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5tYXhQcm9wZXJ0aWVzIDwgMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm1heFByb3BlcnRpZXNcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5Qcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4yLjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEubWluUHJvcGVydGllcykgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWluUHJvcGVydGllc1wiLCBcImludGVnZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5taW5Qcm9wZXJ0aWVzIDwgMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm1pblByb3BlcnRpZXNcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICByZXF1aXJlZDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuMy4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLnJlcXVpcmVkKSAhPT0gXCJhcnJheVwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wicmVxdWlyZWRcIiwgXCJhcnJheVwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLnJlcXVpcmVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcInJlcXVpcmVkXCIsIFwiYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLnJlcXVpcmVkLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLnJlcXVpcmVkW2lkeF0gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9WQUxVRV9UWVBFXCIsIFtcInJlcXVpcmVkXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNVbmlxdWVBcnJheShzY2hlbWEucmVxdWlyZWQpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJyZXF1aXJlZFwiLCBcImFuIGFycmF5IHdpdGggdW5pcXVlIGl0ZW1zXCJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjQuMVxuICAgICAgICB2YXIgdHlwZSA9IFV0aWxzLndoYXRJcyhzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMpO1xuICAgICAgICBpZiAodHlwZSAhPT0gXCJib29sZWFuXCIgJiYgdHlwZSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIsIFtcImJvb2xlYW5cIiwgXCJvYmplY3RcIl1dKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIik7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjQuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5wcm9wZXJ0aWVzKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInByb3BlcnRpZXNcIiwgXCJvYmplY3RcIl0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEucHJvcGVydGllcyksXG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdLFxuICAgICAgICAgICAgICAgIHZhbCA9IHNjaGVtYS5wcm9wZXJ0aWVzW2tleV07XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwicHJvcGVydGllc1wiKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goa2V5KTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHZhbCk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3VzdG9tIC0gc3RyaWN0IG1vZGVcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZUFkZGl0aW9uYWwgPT09IHRydWUgJiYgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiXSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VzdG9tZSAtIGFzc3VtZSBkZWZpbmVkIGZhbHNlIG1vZGVcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hc3N1bWVBZGRpdGlvbmFsID09PSB0cnVlICYmIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjdXN0b20gLSBmb3JjZVByb3BlcnRpZXNcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZVByb3BlcnRpZXMgPT09IHRydWUgJiYga2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIkNVU1RPTV9NT0RFX0ZPUkNFX1BST1BFUlRJRVNcIiwgW1wicHJvcGVydGllc1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC40LjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEucGF0dGVyblByb3BlcnRpZXMpICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wicGF0dGVyblByb3BlcnRpZXNcIiwgXCJvYmplY3RcIl0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEucGF0dGVyblByb3BlcnRpZXMpLFxuICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XSxcbiAgICAgICAgICAgICAgICB2YWwgPSBzY2hlbWEucGF0dGVyblByb3BlcnRpZXNba2V5XTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgUmVnRXhwKGtleSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9QQVRURVJOXCIsIFtcInBhdHRlcm5Qcm9wZXJ0aWVzXCIsIGtleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcInBhdHRlcm5Qcm9wZXJ0aWVzXCIpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChrZXkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCB2YWwpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGN1c3RvbSAtIGZvcmNlUHJvcGVydGllc1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlUHJvcGVydGllcyA9PT0gdHJ1ZSAmJiBrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQ1VTVE9NX01PREVfRk9SQ0VfUFJPUEVSVElFU1wiLCBbXCJwYXR0ZXJuUHJvcGVydGllc1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNS4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLmRlcGVuZGVuY2llcykgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJkZXBlbmRlbmNpZXNcIiwgXCJvYmplY3RcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEuZGVwZW5kZW5jaWVzKSxcbiAgICAgICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHZhciBzY2hlbWFLZXkgPSBrZXlzW2lkeF0sXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYURlcGVuZGVuY3kgPSBzY2hlbWEuZGVwZW5kZW5jaWVzW3NjaGVtYUtleV0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGUgPSBVdGlscy53aGF0SXMoc2NoZW1hRGVwZW5kZW5jeSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiZGVwZW5kZW5jaWVzXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKHNjaGVtYUtleSk7XG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYURlcGVuZGVuY3kpO1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlkeDIgPSBzY2hlbWFEZXBlbmRlbmN5Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlkeDIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJkZXBlbmRlbmNpZXNcIiwgXCJub3QgZW1wdHkgYXJyYXlcIl0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hRGVwZW5kZW5jeVtpZHgyXSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVkFMVUVfVFlQRVwiLCBbXCJkZXBlbmRlbnNpY2VzXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNVbmlxdWVBcnJheShzY2hlbWFEZXBlbmRlbmN5KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJkZXBlbmRlbmNpZXNcIiwgXCJhbiBhcnJheSB3aXRoIHVuaXF1ZSBpdGVtc1wiXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1ZBTFVFX1RZUEVcIiwgW1wiZGVwZW5kZW5jaWVzXCIsIFwib2JqZWN0IG9yIGFycmF5XCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGVudW06IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjEuMVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuZW51bSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZW51bVwiLCBcImFycmF5XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEuZW51bS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJlbnVtXCIsIFwiYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudFwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoVXRpbHMuaXNVbmlxdWVBcnJheShzY2hlbWEuZW51bSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wiZW51bVwiLCBcImFuIGFycmF5IHdpdGggdW5pcXVlIGVsZW1lbnRzXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdHlwZTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMi4xXG4gICAgICAgIHZhciBwcmltaXRpdmVUeXBlcyA9IFtcImFycmF5XCIsIFwiYm9vbGVhblwiLCBcImludGVnZXJcIiwgXCJudW1iZXJcIiwgXCJudWxsXCIsIFwib2JqZWN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgcHJpbWl0aXZlVHlwZVN0ciA9IHByaW1pdGl2ZVR5cGVzLmpvaW4oXCIsXCIpLFxuICAgICAgICAgICAgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoc2NoZW1hLnR5cGUpO1xuXG4gICAgICAgIGlmIChpc0FycmF5KSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLnR5cGUubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVR5cGVzLmluZGV4T2Yoc2NoZW1hLnR5cGVbaWR4XSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJ0eXBlXCIsIHByaW1pdGl2ZVR5cGVTdHJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNVbmlxdWVBcnJheShzY2hlbWEudHlwZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcInR5cGVcIiwgXCJhbiBvYmplY3Qgd2l0aCB1bmlxdWUgcHJvcGVydGllc1wiXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZiAocHJpbWl0aXZlVHlwZXMuaW5kZXhPZihzY2hlbWEudHlwZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInR5cGVcIiwgcHJpbWl0aXZlVHlwZVN0cl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInR5cGVcIiwgW1wic3RyaW5nXCIsIFwiYXJyYXlcIl1dKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubm9FbXB0eVN0cmluZ3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJzdHJpbmdcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5taW5MZW5ndGggPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZW51bSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5mb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5taW5MZW5ndGggPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLm5vRW1wdHlBcnJheXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJhcnJheVwiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcImFycmF5XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEubWluSXRlbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBzY2hlbWEubWluSXRlbXMgPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlUHJvcGVydGllcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcIm9iamVjdFwiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcIm9iamVjdFwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLnByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCAmJiBzY2hlbWEucGF0dGVyblByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wicHJvcGVydGllc1wiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VJdGVtcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcImFycmF5XCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwiYXJyYXlcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5pdGVtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJpdGVtc1wiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VNaW5JdGVtcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcImFycmF5XCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwiYXJyYXlcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5taW5JdGVtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJtaW5JdGVtc1wiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VNYXhJdGVtcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcImFycmF5XCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwiYXJyYXlcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5tYXhJdGVtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJtYXhJdGVtc1wiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VNaW5MZW5ndGggPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJzdHJpbmdcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5taW5MZW5ndGggPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZm9ybWF0ID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmVudW0gPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEucGF0dGVybiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJtaW5MZW5ndGhcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlTWF4TGVuZ3RoID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwic3RyaW5nXCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwic3RyaW5nXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEubWF4TGVuZ3RoID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmZvcm1hdCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5lbnVtID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLnBhdHRlcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VOREVGSU5FRF9TVFJJQ1RcIiwgW1wibWF4TGVuZ3RoXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFsbE9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4zLjFcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLmFsbE9mKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJhbGxPZlwiLCBcImFycmF5XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEuYWxsT2YubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wiYWxsT2ZcIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEuYWxsT2YubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcImFsbE9mXCIpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5hbGxPZltpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgYW55T2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjQuMVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuYW55T2YpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImFueU9mXCIsIFwiYXJyYXlcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5hbnlPZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJhbnlPZlwiLCBcImFuIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnRcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5hbnlPZi5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiYW55T2ZcIik7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFueU9mW2lkeF0pO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBvbmVPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNS4xXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5vbmVPZikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wib25lT2ZcIiwgXCJhcnJheVwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm9uZU9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm9uZU9mXCIsIFwiYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLm9uZU9mLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJvbmVPZlwiKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEub25lT2ZbaWR4XSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG5vdDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNi4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLm5vdCkgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJub3RcIiwgXCJvYmplY3RcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcIm5vdFwiKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5ub3QpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGRlZmluaXRpb25zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS43LjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEuZGVmaW5pdGlvbnMpICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZGVmaW5pdGlvbnNcIiwgXCJvYmplY3RcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEuZGVmaW5pdGlvbnMpLFxuICAgICAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XSxcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gc2NoZW1hLmRlZmluaXRpb25zW2tleV07XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcImRlZmluaXRpb25zXCIpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCB2YWwpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBmb3JtYXQ6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5mb3JtYXQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJmb3JtYXRcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKEZvcm1hdFZhbGlkYXRvcnNbc2NoZW1hLmZvcm1hdF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlVOS05PV05fRk9STUFUXCIsIFtzY2hlbWEuZm9ybWF0XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlkOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5zZWN0aW9uLjcuMlxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5pZCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImlkXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdGl0bGU6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNi4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLnRpdGxlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1widGl0bGVcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBkZXNjcmlwdGlvbjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi42LjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuZGVzY3JpcHRpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJkZXNjcmlwdGlvblwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiZGVmYXVsdFwiOiBmdW5jdGlvbiAoLyogcmVwb3J0LCBzY2hlbWEgKi8pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjYuMlxuICAgICAgICAvLyBUaGVyZSBhcmUgbm8gcmVzdHJpY3Rpb25zIHBsYWNlZCBvbiB0aGUgdmFsdWUgb2YgdGhpcyBrZXl3b3JkLlxuICAgIH1cbn07XG5cbnZhciB2YWxpZGF0ZUFycmF5T2ZTY2hlbWFzID0gZnVuY3Rpb24gKHJlcG9ydCwgYXJyKSB7XG4gICAgdmFyIGlkeCA9IGFyci5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIGFycltpZHhdKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcG9ydC5pc1ZhbGlkKCk7XG59O1xuXG5leHBvcnRzLnZhbGlkYXRlU2NoZW1hID0gZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG5cbiAgICByZXBvcnQuY29tbW9uRXJyb3JNZXNzYWdlID0gXCJTQ0hFTUFfVkFMSURBVElPTl9GQUlMRURcIjtcblxuICAgIC8vIGlmIHNjaGVtYSBpcyBhbiBhcnJheSwgYXNzdW1lIGl0J3MgYW4gYXJyYXkgb2Ygc2NoZW1hc1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlQXJyYXlPZlNjaGVtYXMuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuXG4gICAgLy8gZG8gbm90IHJldmFsaWRhdGUgc2NoZW1hIHRoYXQgaGFzIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgb25jZVxuICAgIGlmIChzY2hlbWEuX18kdmFsaWRhdGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGlmICRzY2hlbWEgaXMgcHJlc2VudCwgdGhpcyBzY2hlbWEgc2hvdWxkIHZhbGlkYXRlIGFnYWluc3QgdGhhdCAkc2NoZW1hXG4gICAgdmFyIGhhc1BhcmVudFNjaGVtYSA9IHNjaGVtYS4kc2NoZW1hICYmIHNjaGVtYS5pZCAhPT0gc2NoZW1hLiRzY2hlbWE7XG4gICAgaWYgKGhhc1BhcmVudFNjaGVtYSkge1xuICAgICAgICBpZiAoc2NoZW1hLl9fJHNjaGVtYVJlc29sdmVkICYmIHNjaGVtYS5fXyRzY2hlbWFSZXNvbHZlZCAhPT0gc2NoZW1hKSB7XG4gICAgICAgICAgICB2YXIgc3ViUmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQpO1xuICAgICAgICAgICAgdmFyIHZhbGlkID0gSnNvblZhbGlkYXRpb24udmFsaWRhdGUuY2FsbCh0aGlzLCBzdWJSZXBvcnQsIHNjaGVtYS5fXyRzY2hlbWFSZXNvbHZlZCwgc2NoZW1hKTtcbiAgICAgICAgICAgIGlmICh2YWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJQQVJFTlRfU0NIRU1BX1ZBTElEQVRJT05fRkFJTEVEXCIsIG51bGwsIHN1YlJlcG9ydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmlnbm9yZVVucmVzb2x2YWJsZVJlZmVyZW5jZXMgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJSRUZfVU5SRVNPTFZFRFwiLCBbc2NoZW1hLiRzY2hlbWFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMubm9UeXBlbGVzcyA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBpc3N1ZSAjMzYgLSBpbmhlcml0IHR5cGUgdG8gYW55T2YsIG9uZU9mLCBhbGxPZiBpZiBub1R5cGVsZXNzIGlzIGRlZmluZWRcbiAgICAgICAgaWYgKHNjaGVtYS50eXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhciBzY2hlbWFzID0gW107XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuYW55T2YpKSB7IHNjaGVtYXMgPSBzY2hlbWFzLmNvbmNhdChzY2hlbWEuYW55T2YpOyB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEub25lT2YpKSB7IHNjaGVtYXMgPSBzY2hlbWFzLmNvbmNhdChzY2hlbWEub25lT2YpOyB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuYWxsT2YpKSB7IHNjaGVtYXMgPSBzY2hlbWFzLmNvbmNhdChzY2hlbWEuYWxsT2YpOyB9XG4gICAgICAgICAgICBzY2hlbWFzLmZvckVhY2goZnVuY3Rpb24gKHNjaCkge1xuICAgICAgICAgICAgICAgIGlmICghc2NoLnR5cGUpIHsgc2NoLnR5cGUgPSBzY2hlbWEudHlwZTsgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZW5kIGlzc3VlICMzNlxuICAgICAgICBpZiAoc2NoZW1hLmVudW0gPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgc2NoZW1hLnR5cGUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgc2NoZW1hLmFueU9mID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHNjaGVtYS5vbmVPZiA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBzY2hlbWEubm90ID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHNjaGVtYS4kcmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJ0eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hKSxcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF07XG4gICAgICAgIGlmIChrZXkuaW5kZXhPZihcIl9fXCIpID09PSAwKSB7IGNvbnRpbnVlOyB9XG4gICAgICAgIGlmIChTY2hlbWFWYWxpZGF0b3JzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgU2NoZW1hVmFsaWRhdG9yc1trZXldLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgICAgICB9IGVsc2UgaWYgKCFoYXNQYXJlbnRTY2hlbWEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubm9FeHRyYUtleXdvcmRzID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkVYUEVDVEVEXCIsIFtrZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBpc1ZhbGlkID0gcmVwb3J0LmlzVmFsaWQoKTtcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICBzY2hlbWEuX18kdmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG5cbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5pc0Fic29sdXRlVXJpID0gZnVuY3Rpb24gKHVyaSkge1xuICAgIHJldHVybiAvXmh0dHBzPzpcXC9cXC8vLnRlc3QodXJpKTtcbn07XG5cbmV4cG9ydHMuaXNSZWxhdGl2ZVVyaSA9IGZ1bmN0aW9uICh1cmkpIHtcbiAgICAvLyByZWxhdGl2ZSBVUklzIHRoYXQgZW5kIHdpdGggYSBoYXNoIHNpZ24sIGlzc3VlICM1NlxuICAgIHJldHVybiAvLisjLy50ZXN0KHVyaSk7XG59O1xuXG5leHBvcnRzLndoYXRJcyA9IGZ1bmN0aW9uICh3aGF0KSB7XG5cbiAgICB2YXIgdG8gPSB0eXBlb2Ygd2hhdDtcblxuICAgIGlmICh0byA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAod2hhdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFwibnVsbFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHdoYXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJhcnJheVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcIm9iamVjdFwiOyAvLyB0eXBlb2Ygd2hhdCA9PT0gJ29iamVjdCcgJiYgd2hhdCA9PT0gT2JqZWN0KHdoYXQpICYmICFBcnJheS5pc0FycmF5KHdoYXQpO1xuICAgIH1cblxuICAgIGlmICh0byA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBpZiAoTnVtYmVyLmlzRmluaXRlKHdoYXQpKSB7XG4gICAgICAgICAgICBpZiAod2hhdCAlIDEgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJpbnRlZ2VyXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIm51bWJlclwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4od2hhdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vdC1hLW51bWJlclwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcInVua25vd24tbnVtYmVyXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvOyAvLyB1bmRlZmluZWQsIGJvb2xlYW4sIHN0cmluZywgZnVuY3Rpb25cblxufTtcblxuZXhwb3J0cy5hcmVFcXVhbCA9IGZ1bmN0aW9uIGFyZUVxdWFsKGpzb24xLCBqc29uMikge1xuICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLWNvcmUuaHRtbCNyZmMuc2VjdGlvbi4zLjZcblxuICAgIC8vIFR3byBKU09OIHZhbHVlcyBhcmUgc2FpZCB0byBiZSBlcXVhbCBpZiBhbmQgb25seSBpZjpcbiAgICAvLyBib3RoIGFyZSBudWxsczsgb3JcbiAgICAvLyBib3RoIGFyZSBib29sZWFucywgYW5kIGhhdmUgdGhlIHNhbWUgdmFsdWU7IG9yXG4gICAgLy8gYm90aCBhcmUgc3RyaW5ncywgYW5kIGhhdmUgdGhlIHNhbWUgdmFsdWU7IG9yXG4gICAgLy8gYm90aCBhcmUgbnVtYmVycywgYW5kIGhhdmUgdGhlIHNhbWUgbWF0aGVtYXRpY2FsIHZhbHVlOyBvclxuICAgIGlmIChqc29uMSA9PT0ganNvbjIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIGksIGxlbjtcblxuICAgIC8vIGJvdGggYXJlIGFycmF5cywgYW5kOlxuICAgIGlmIChBcnJheS5pc0FycmF5KGpzb24xKSAmJiBBcnJheS5pc0FycmF5KGpzb24yKSkge1xuICAgICAgICAvLyBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtczsgYW5kXG4gICAgICAgIGlmIChqc29uMS5sZW5ndGggIT09IGpzb24yLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGl0ZW1zIGF0IHRoZSBzYW1lIGluZGV4IGFyZSBlcXVhbCBhY2NvcmRpbmcgdG8gdGhpcyBkZWZpbml0aW9uOyBvclxuICAgICAgICBsZW4gPSBqc29uMS5sZW5ndGg7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKCFhcmVFcXVhbChqc29uMVtpXSwganNvbjJbaV0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGJvdGggYXJlIG9iamVjdHMsIGFuZDpcbiAgICBpZiAoZXhwb3J0cy53aGF0SXMoanNvbjEpID09PSBcIm9iamVjdFwiICYmIGV4cG9ydHMud2hhdElzKGpzb24yKSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAvLyBoYXZlIHRoZSBzYW1lIHNldCBvZiBwcm9wZXJ0eSBuYW1lczsgYW5kXG4gICAgICAgIHZhciBrZXlzMSA9IE9iamVjdC5rZXlzKGpzb24xKTtcbiAgICAgICAgdmFyIGtleXMyID0gT2JqZWN0LmtleXMoanNvbjIpO1xuICAgICAgICBpZiAoIWFyZUVxdWFsKGtleXMxLCBrZXlzMikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyB2YWx1ZXMgZm9yIGEgc2FtZSBwcm9wZXJ0eSBuYW1lIGFyZSBlcXVhbCBhY2NvcmRpbmcgdG8gdGhpcyBkZWZpbml0aW9uLlxuICAgICAgICBsZW4gPSBrZXlzMS5sZW5ndGg7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKCFhcmVFcXVhbChqc29uMVtrZXlzMVtpXV0sIGpzb24yW2tleXMxW2ldXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0cy5pc1VuaXF1ZUFycmF5ID0gZnVuY3Rpb24gKGFyciwgaW5kZXhlcykge1xuICAgIHZhciBpLCBqLCBsID0gYXJyLmxlbmd0aDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGZvciAoaiA9IGkgKyAxOyBqIDwgbDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoZXhwb3J0cy5hcmVFcXVhbChhcnJbaV0sIGFycltqXSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXhlcykgeyBpbmRleGVzLnB1c2goaSwgaik7IH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnRzLmRpZmZlcmVuY2UgPSBmdW5jdGlvbiAoYmlnU2V0LCBzdWJTZXQpIHtcbiAgICB2YXIgYXJyID0gW10sXG4gICAgICAgIGlkeCA9IGJpZ1NldC5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIGlmIChzdWJTZXQuaW5kZXhPZihiaWdTZXRbaWR4XSkgPT09IC0xKSB7XG4gICAgICAgICAgICBhcnIucHVzaChiaWdTZXRbaWR4XSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbn07XG5cbi8vIE5PVCBhIGRlZXAgdmVyc2lvbiBvZiBjbG9uZVxuZXhwb3J0cy5jbG9uZSA9IGZ1bmN0aW9uIChzcmMpIHtcbiAgICBpZiAodHlwZW9mIHNyYyAhPT0gXCJvYmplY3RcIiB8fCBzcmMgPT09IG51bGwpIHsgcmV0dXJuIHNyYzsgfVxuICAgIHZhciByZXMsIGlkeDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzcmMpKSB7XG4gICAgICAgIHJlcyA9IFtdO1xuICAgICAgICBpZHggPSBzcmMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHJlc1tpZHhdID0gc3JjW2lkeF07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXMgPSB7fTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzcmMpO1xuICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdO1xuICAgICAgICAgICAgcmVzW2tleV0gPSBzcmNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufTtcblxuZXhwb3J0cy5jbG9uZURlZXAgPSBmdW5jdGlvbiAoc3JjKSB7XG4gICAgdmFyIHZpc2l0ZWQgPSBbXSwgY2xvbmVkID0gW107XG4gICAgZnVuY3Rpb24gY2xvbmVEZWVwKHNyYykge1xuICAgICAgICBpZiAodHlwZW9mIHNyYyAhPT0gXCJvYmplY3RcIiB8fCBzcmMgPT09IG51bGwpIHsgcmV0dXJuIHNyYzsgfVxuICAgICAgICB2YXIgcmVzLCBpZHgsIGNpZHg7XG5cbiAgICAgICAgY2lkeCA9IHZpc2l0ZWQuaW5kZXhPZihzcmMpO1xuICAgICAgICBpZiAoY2lkeCAhPT0gLTEpIHsgcmV0dXJuIGNsb25lZFtjaWR4XTsgfVxuXG4gICAgICAgIHZpc2l0ZWQucHVzaChzcmMpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzcmMpKSB7XG4gICAgICAgICAgICByZXMgPSBbXTtcbiAgICAgICAgICAgIGNsb25lZC5wdXNoKHJlcyk7XG4gICAgICAgICAgICBpZHggPSBzcmMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgcmVzW2lkeF0gPSBjbG9uZURlZXAoc3JjW2lkeF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzID0ge307XG4gICAgICAgICAgICBjbG9uZWQucHVzaChyZXMpO1xuICAgICAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzcmMpO1xuICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdO1xuICAgICAgICAgICAgICAgIHJlc1trZXldID0gY2xvbmVEZWVwKHNyY1trZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICByZXR1cm4gY2xvbmVEZWVwKHNyYyk7XG59O1xuXG4vKlxuICBmb2xsb3dpbmcgZnVuY3Rpb24gY29tZXMgZnJvbSBwdW55Y29kZS5qcyBsaWJyYXJ5XG4gIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL3B1bnljb2RlLmpzXG4qL1xuLypqc2hpbnQgLVcwMTYqL1xuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIG51bWVyaWMgY29kZSBwb2ludHMgb2YgZWFjaCBVbmljb2RlXG4gKiBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZy4gV2hpbGUgSmF2YVNjcmlwdCB1c2VzIFVDUy0yIGludGVybmFsbHksXG4gKiB0aGlzIGZ1bmN0aW9uIHdpbGwgY29udmVydCBhIHBhaXIgb2Ygc3Vycm9nYXRlIGhhbHZlcyAoZWFjaCBvZiB3aGljaFxuICogVUNTLTIgZXhwb3NlcyBhcyBzZXBhcmF0ZSBjaGFyYWN0ZXJzKSBpbnRvIGEgc2luZ2xlIGNvZGUgcG9pbnQsXG4gKiBtYXRjaGluZyBVVEYtMTYuXG4gKiBAc2VlIGBwdW55Y29kZS51Y3MyLmVuY29kZWBcbiAqIEBzZWUgPGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nPlxuICogQG1lbWJlck9mIHB1bnljb2RlLnVjczJcbiAqIEBuYW1lIGRlY29kZVxuICogQHBhcmFtIHtTdHJpbmd9IHN0cmluZyBUaGUgVW5pY29kZSBpbnB1dCBzdHJpbmcgKFVDUy0yKS5cbiAqIEByZXR1cm5zIHtBcnJheX0gVGhlIG5ldyBhcnJheSBvZiBjb2RlIHBvaW50cy5cbiAqL1xuZXhwb3J0cy51Y3MyZGVjb2RlID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgIHZhciBvdXRwdXQgPSBbXSxcbiAgICAgICAgY291bnRlciA9IDAsXG4gICAgICAgIGxlbmd0aCA9IHN0cmluZy5sZW5ndGgsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBleHRyYTtcbiAgICB3aGlsZSAoY291bnRlciA8IGxlbmd0aCkge1xuICAgICAgICB2YWx1ZSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG4gICAgICAgIGlmICh2YWx1ZSA+PSAweEQ4MDAgJiYgdmFsdWUgPD0gMHhEQkZGICYmIGNvdW50ZXIgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGhpZ2ggc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgYSBuZXh0IGNoYXJhY3RlclxuICAgICAgICAgICAgZXh0cmEgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuICAgICAgICAgICAgaWYgKChleHRyYSAmIDB4RkMwMCkgPT0gMHhEQzAwKSB7IC8vIGxvdyBzdXJyb2dhdGVcbiAgICAgICAgICAgICAgICBvdXRwdXQucHVzaCgoKHZhbHVlICYgMHgzRkYpIDw8IDEwKSArIChleHRyYSAmIDB4M0ZGKSArIDB4MTAwMDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyB1bm1hdGNoZWQgc3Vycm9nYXRlOyBvbmx5IGFwcGVuZCB0aGlzIGNvZGUgdW5pdCwgaW4gY2FzZSB0aGUgbmV4dFxuICAgICAgICAgICAgICAgIC8vIGNvZGUgdW5pdCBpcyB0aGUgaGlnaCBzdXJyb2dhdGUgb2YgYSBzdXJyb2dhdGUgcGFpclxuICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb3VudGVyLS07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXRwdXQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbn07XG4vKmpzaGludCArVzAxNiovXG4iLCJcInVzZSBzdHJpY3RcIjtcblxucmVxdWlyZShcIi4vUG9seWZpbGxzXCIpO1xudmFyIFJlcG9ydCAgICAgICAgICAgID0gcmVxdWlyZShcIi4vUmVwb3J0XCIpO1xudmFyIEZvcm1hdFZhbGlkYXRvcnMgID0gcmVxdWlyZShcIi4vRm9ybWF0VmFsaWRhdG9yc1wiKTtcbnZhciBKc29uVmFsaWRhdGlvbiAgICA9IHJlcXVpcmUoXCIuL0pzb25WYWxpZGF0aW9uXCIpO1xudmFyIFNjaGVtYUNhY2hlICAgICAgID0gcmVxdWlyZShcIi4vU2NoZW1hQ2FjaGVcIik7XG52YXIgU2NoZW1hQ29tcGlsYXRpb24gPSByZXF1aXJlKFwiLi9TY2hlbWFDb21waWxhdGlvblwiKTtcbnZhciBTY2hlbWFWYWxpZGF0aW9uICA9IHJlcXVpcmUoXCIuL1NjaGVtYVZhbGlkYXRpb25cIik7XG52YXIgVXRpbHMgICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcbnZhciBEcmFmdDRTY2hlbWEgICAgICA9IHJlcXVpcmUoXCIuL3NjaGVtYXMvc2NoZW1hLmpzb25cIik7XG52YXIgRHJhZnQ0SHlwZXJTY2hlbWEgPSByZXF1aXJlKFwiLi9zY2hlbWFzL2h5cGVyLXNjaGVtYS5qc29uXCIpO1xuXG4vKlxuICAgIGRlZmF1bHQgb3B0aW9uc1xuKi9cbnZhciBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAvLyBkZWZhdWx0IHRpbWVvdXQgZm9yIGFsbCBhc3luYyB0YXNrc1xuICAgIGFzeW5jVGltZW91dDogMjAwMCxcbiAgICAvLyBmb3JjZSBhZGRpdGlvbmFsUHJvcGVydGllcyBhbmQgYWRkaXRpb25hbEl0ZW1zIHRvIGJlIGRlZmluZWQgb24gXCJvYmplY3RcIiBhbmQgXCJhcnJheVwiIHR5cGVzXG4gICAgZm9yY2VBZGRpdGlvbmFsOiBmYWxzZSxcbiAgICAvLyBhc3N1bWUgYWRkaXRpb25hbFByb3BlcnRpZXMgYW5kIGFkZGl0aW9uYWxJdGVtcyBhcmUgZGVmaW5lZCBhcyBcImZhbHNlXCIgd2hlcmUgYXBwcm9wcmlhdGVcbiAgICBhc3N1bWVBZGRpdGlvbmFsOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBpdGVtcyB0byBiZSBkZWZpbmVkIG9uIFwiYXJyYXlcIiB0eXBlc1xuICAgIGZvcmNlSXRlbXM6IGZhbHNlLFxuICAgIC8vIGZvcmNlIG1pbkl0ZW1zIHRvIGJlIGRlZmluZWQgb24gXCJhcnJheVwiIHR5cGVzXG4gICAgZm9yY2VNaW5JdGVtczogZmFsc2UsXG4gICAgLy8gZm9yY2UgbWF4SXRlbXMgdG8gYmUgZGVmaW5lZCBvbiBcImFycmF5XCIgdHlwZXNcbiAgICBmb3JjZU1heEl0ZW1zOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBtaW5MZW5ndGggdG8gYmUgZGVmaW5lZCBvbiBcInN0cmluZ1wiIHR5cGVzXG4gICAgZm9yY2VNaW5MZW5ndGg6IGZhbHNlLFxuICAgIC8vIGZvcmNlIG1heExlbmd0aCB0byBiZSBkZWZpbmVkIG9uIFwic3RyaW5nXCIgdHlwZXNcbiAgICBmb3JjZU1heExlbmd0aDogZmFsc2UsXG4gICAgLy8gZm9yY2UgcHJvcGVydGllcyBvciBwYXR0ZXJuUHJvcGVydGllcyB0byBiZSBkZWZpbmVkIG9uIFwib2JqZWN0XCIgdHlwZXNcbiAgICBmb3JjZVByb3BlcnRpZXM6IGZhbHNlLFxuICAgIC8vIGlnbm9yZSByZWZlcmVuY2VzIHRoYXQgY2Fubm90IGJlIHJlc29sdmVkIChyZW1vdGUgc2NoZW1hcykgLy8gVE9ETzogbWFrZSBzdXJlIHRoaXMgaXMgb25seSBmb3IgcmVtb3RlIHNjaGVtYXMsIG5vdCBsb2NhbCBvbmVzXG4gICAgaWdub3JlVW5yZXNvbHZhYmxlUmVmZXJlbmNlczogZmFsc2UsXG4gICAgLy8gZGlzYWxsb3cgdXNhZ2Ugb2Yga2V5d29yZHMgdGhhdCB0aGlzIHZhbGlkYXRvciBjYW4ndCBoYW5kbGVcbiAgICBub0V4dHJhS2V5d29yZHM6IGZhbHNlLFxuICAgIC8vIGRpc2FsbG93IHVzYWdlIG9mIHNjaGVtYSdzIHdpdGhvdXQgXCJ0eXBlXCIgZGVmaW5lZFxuICAgIG5vVHlwZWxlc3M6IGZhbHNlLFxuICAgIC8vIGRpc2FsbG93IHplcm8gbGVuZ3RoIHN0cmluZ3MgaW4gdmFsaWRhdGVkIG9iamVjdHNcbiAgICBub0VtcHR5U3RyaW5nczogZmFsc2UsXG4gICAgLy8gZGlzYWxsb3cgemVybyBsZW5ndGggYXJyYXlzIGluIHZhbGlkYXRlZCBvYmplY3RzXG4gICAgbm9FbXB0eUFycmF5czogZmFsc2UsXG4gICAgLy8gZm9yY2VzIFwidXJpXCIgZm9ybWF0IHRvIGJlIGluIGZ1bGx5IHJmYzM5ODYgY29tcGxpYW50XG4gICAgc3RyaWN0VXJpczogZmFsc2UsXG4gICAgLy8gdHVybiBvbiBzb21lIG9mIHRoZSBhYm92ZVxuICAgIHN0cmljdE1vZGU6IGZhbHNlLFxuICAgIC8vIHJlcG9ydCBlcnJvciBwYXRocyBhcyBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzIHRvIGdldCB0byB0aGUgb2ZmZW5kaW5nIG5vZGVcbiAgICByZXBvcnRQYXRoQXNBcnJheTogZmFsc2UsXG4gICAgLy8gc3RvcHMgdmFsaWRhdGlvbiBhcyBzb29uIGFzIGFuIGVycm9yIGlzIGZvdW5kLCB0cnVlIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSB0dXJuZWQgb2ZmXG4gICAgYnJlYWtPbkZpcnN0RXJyb3I6IHRydWVcbn07XG5cbi8qXG4gICAgY29uc3RydWN0b3JcbiovXG5mdW5jdGlvbiBaU2NoZW1hKG9wdGlvbnMpIHtcbiAgICB0aGlzLmNhY2hlID0ge307XG4gICAgdGhpcy5yZWZlcmVuY2VDYWNoZSA9IFtdO1xuXG4gICAgdGhpcy5zZXRSZW1vdGVSZWZlcmVuY2UoXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYVwiLCBEcmFmdDRTY2hlbWEpO1xuICAgIHRoaXMuc2V0UmVtb3RlUmVmZXJlbmNlKFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9oeXBlci1zY2hlbWFcIiwgRHJhZnQ0SHlwZXJTY2hlbWEpO1xuXG4gICAgLy8gb3B0aW9uc1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpLFxuICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XTtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0T3B0aW9uc1trZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmV4cGVjdGVkIG9wdGlvbiBwYXNzZWQgdG8gY29uc3RydWN0b3I6IFwiICsga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IFV0aWxzLmNsb25lKGRlZmF1bHRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnN0cmljdE1vZGUgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvcmNlQWRkaXRpb25hbCAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yY2VJdGVtcyAgICAgICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5mb3JjZU1heExlbmd0aCAgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvcmNlUHJvcGVydGllcyAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMubm9FeHRyYUtleXdvcmRzICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5ub1R5cGVsZXNzICAgICAgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5vRW1wdHlTdHJpbmdzICAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMubm9FbXB0eUFycmF5cyAgICA9IHRydWU7XG4gICAgfVxuXG59XG5cbi8qXG4gICAgaW5zdGFuY2UgbWV0aG9kc1xuKi9cblpTY2hlbWEucHJvdG90eXBlLmNvbXBpbGVTY2hlbWEgPSBmdW5jdGlvbiAoc2NoZW1hKSB7XG4gICAgdmFyIHJlcG9ydCA9IG5ldyBSZXBvcnQodGhpcy5vcHRpb25zKTtcblxuICAgIHNjaGVtYSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcblxuICAgIFNjaGVtYUNvbXBpbGF0aW9uLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG5cbiAgICB0aGlzLmxhc3RSZXBvcnQgPSByZXBvcnQ7XG4gICAgcmV0dXJuIHJlcG9ydC5pc1ZhbGlkKCk7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUudmFsaWRhdGVTY2hlbWEgPSBmdW5jdGlvbiAoc2NoZW1hKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hKSAmJiBzY2hlbWEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIi52YWxpZGF0ZVNjaGVtYSB3YXMgY2FsbGVkIHdpdGggYW4gZW1wdHkgYXJyYXlcIik7XG4gICAgfVxuXG4gICAgdmFyIHJlcG9ydCA9IG5ldyBSZXBvcnQodGhpcy5vcHRpb25zKTtcblxuICAgIHNjaGVtYSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcblxuICAgIHZhciBjb21waWxlZCA9IFNjaGVtYUNvbXBpbGF0aW9uLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgaWYgKGNvbXBpbGVkKSB7IFNjaGVtYVZhbGlkYXRpb24udmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7IH1cblxuICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICByZXR1cm4gcmVwb3J0LmlzVmFsaWQoKTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uIChqc29uLCBzY2hlbWEsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHdoYXRJcyA9IFV0aWxzLndoYXRJcyhzY2hlbWEpO1xuICAgIGlmICh3aGF0SXMgIT09IFwic3RyaW5nXCIgJiYgd2hhdElzICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKFwiSW52YWxpZCAudmFsaWRhdGUgY2FsbCAtIHNjaGVtYSBtdXN0IGJlIGFuIHN0cmluZyBvciBvYmplY3QgYnV0IFwiICsgd2hhdElzICsgXCIgd2FzIHBhc3NlZCFcIik7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSwgZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG5cbiAgICB2YXIgZm91bmRFcnJvciA9IGZhbHNlO1xuICAgIHZhciByZXBvcnQgPSBuZXcgUmVwb3J0KHRoaXMub3B0aW9ucyk7XG5cbiAgICBzY2hlbWEgPSBTY2hlbWFDYWNoZS5nZXRTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG5cbiAgICB2YXIgY29tcGlsZWQgPSBmYWxzZTtcbiAgICBpZiAoIWZvdW5kRXJyb3IpIHtcbiAgICAgICAgY29tcGlsZWQgPSBTY2hlbWFDb21waWxhdGlvbi5jb21waWxlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgIH1cbiAgICBpZiAoIWNvbXBpbGVkKSB7XG4gICAgICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICAgICAgZm91bmRFcnJvciA9IHRydWU7XG4gICAgfVxuXG4gICAgdmFyIHZhbGlkYXRlZCA9IGZhbHNlO1xuICAgIGlmICghZm91bmRFcnJvcikge1xuICAgICAgICB2YWxpZGF0ZWQgPSBTY2hlbWFWYWxpZGF0aW9uLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuICAgIH1cbiAgICBpZiAoIXZhbGlkYXRlZCkge1xuICAgICAgICB0aGlzLmxhc3RSZXBvcnQgPSByZXBvcnQ7XG4gICAgICAgIGZvdW5kRXJyb3IgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghZm91bmRFcnJvcikge1xuICAgICAgICBKc29uVmFsaWRhdGlvbi52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICB9XG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgcmVwb3J0LnByb2Nlc3NBc3luY1Rhc2tzKHRoaXMub3B0aW9ucy5hc3luY1RpbWVvdXQsIGNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAocmVwb3J0LmFzeW5jVGFza3MubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHZhbGlkYXRpb24gaGFzIGFzeW5jIHRhc2tzIGFuZCBjYW5ub3QgYmUgZG9uZSBpbiBzeW5jIG1vZGUsIHBsZWFzZSBwcm92aWRlIGNhbGxiYWNrIGFyZ3VtZW50LlwiKTtcbiAgICB9XG5cbiAgICAvLyBhc3NpZ24gbGFzdFJlcG9ydCBzbyBlcnJvcnMgYXJlIHJldHJpZXZhYmxlIGluIHN5bmMgbW9kZVxuICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICByZXR1cm4gcmVwb3J0LmlzVmFsaWQoKTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5nZXRMYXN0RXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMubGFzdFJlcG9ydC5lcnJvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgZSA9IG5ldyBFcnJvcigpO1xuICAgIGUubmFtZSA9IFwiei1zY2hlbWEgdmFsaWRhdGlvbiBlcnJvclwiO1xuICAgIGUubWVzc2FnZSA9IHRoaXMubGFzdFJlcG9ydC5jb21tb25FcnJvck1lc3NhZ2U7XG4gICAgZS5kZXRhaWxzID0gdGhpcy5sYXN0UmVwb3J0LmVycm9ycztcbiAgICByZXR1cm4gZTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5nZXRMYXN0RXJyb3JzID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmxhc3RSZXBvcnQuZXJyb3JzLmxlbmd0aCA+IDAgPyB0aGlzLmxhc3RSZXBvcnQuZXJyb3JzIDogdW5kZWZpbmVkO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldE1pc3NpbmdSZWZlcmVuY2VzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXMgPSBbXSxcbiAgICAgICAgaWR4ID0gdGhpcy5sYXN0UmVwb3J0LmVycm9ycy5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHRoaXMubGFzdFJlcG9ydC5lcnJvcnNbaWR4XTtcbiAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09IFwiVU5SRVNPTFZBQkxFX1JFRkVSRU5DRVwiKSB7XG4gICAgICAgICAgICB2YXIgcmVmZXJlbmNlID0gZXJyb3IucGFyYW1zWzBdO1xuICAgICAgICAgICAgaWYgKHJlcy5pbmRleE9mKHJlZmVyZW5jZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVzLnB1c2gocmVmZXJlbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldE1pc3NpbmdSZW1vdGVSZWZlcmVuY2VzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtaXNzaW5nUmVmZXJlbmNlcyA9IHRoaXMuZ2V0TWlzc2luZ1JlZmVyZW5jZXMoKSxcbiAgICAgICAgbWlzc2luZ1JlbW90ZVJlZmVyZW5jZXMgPSBbXSxcbiAgICAgICAgaWR4ID0gbWlzc2luZ1JlZmVyZW5jZXMubGVuZ3RoO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICB2YXIgcmVtb3RlUmVmZXJlbmNlID0gU2NoZW1hQ2FjaGUuZ2V0UmVtb3RlUGF0aChtaXNzaW5nUmVmZXJlbmNlc1tpZHhdKTtcbiAgICAgICAgaWYgKHJlbW90ZVJlZmVyZW5jZSAmJiBtaXNzaW5nUmVtb3RlUmVmZXJlbmNlcy5pbmRleE9mKHJlbW90ZVJlZmVyZW5jZSkgPT09IC0xKSB7XG4gICAgICAgICAgICBtaXNzaW5nUmVtb3RlUmVmZXJlbmNlcy5wdXNoKHJlbW90ZVJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pc3NpbmdSZW1vdGVSZWZlcmVuY2VzO1xufTtcblpTY2hlbWEucHJvdG90eXBlLnNldFJlbW90ZVJlZmVyZW5jZSA9IGZ1bmN0aW9uICh1cmksIHNjaGVtYSkge1xuICAgIGlmICh0eXBlb2Ygc2NoZW1hID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHNjaGVtYSA9IEpTT04ucGFyc2Uoc2NoZW1hKTtcbiAgICB9XG4gICAgU2NoZW1hQ2FjaGUuY2FjaGVTY2hlbWFCeVVyaS5jYWxsKHRoaXMsIHVyaSwgc2NoZW1hKTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5nZXRSZXNvbHZlZFNjaGVtYSA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgICB2YXIgcmVwb3J0ID0gbmV3IFJlcG9ydCh0aGlzLm9wdGlvbnMpO1xuICAgIHNjaGVtYSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcblxuICAgIC8vIGNsb25lIGJlZm9yZSBtYWtpbmcgYW55IG1vZGlmaWNhdGlvbnNcbiAgICBzY2hlbWEgPSBVdGlscy5jbG9uZURlZXAoc2NoZW1hKTtcblxuICAgIHZhciB2aXNpdGVkID0gW107XG5cbiAgICAvLyBjbGVhbi11cCB0aGUgc2NoZW1hIGFuZCByZXNvbHZlIHJlZmVyZW5jZXNcbiAgICB2YXIgY2xlYW51cCA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgICAgICAgdmFyIGtleSxcbiAgICAgICAgICAgIHR5cGVPZiA9IFV0aWxzLndoYXRJcyhzY2hlbWEpO1xuICAgICAgICBpZiAodHlwZU9mICE9PSBcIm9iamVjdFwiICYmIHR5cGVPZiAhPT0gXCJhcnJheVwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2NoZW1hLl9fXyR2aXNpdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuX19fJHZpc2l0ZWQgPSB0cnVlO1xuICAgICAgICB2aXNpdGVkLnB1c2goc2NoZW1hKTtcblxuICAgICAgICBpZiAoc2NoZW1hLiRyZWYgJiYgc2NoZW1hLl9fJHJlZlJlc29sdmVkKSB7XG4gICAgICAgICAgICB2YXIgZnJvbSA9IHNjaGVtYS5fXyRyZWZSZXNvbHZlZDtcbiAgICAgICAgICAgIHZhciB0byA9IHNjaGVtYTtcbiAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWEuJHJlZjtcbiAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWEuX18kcmVmUmVzb2x2ZWQ7XG4gICAgICAgICAgICBmb3IgKGtleSBpbiBmcm9tKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZyb20uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB0b1trZXldID0gZnJvbVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGtleSBpbiBzY2hlbWEpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlmIChrZXkuaW5kZXhPZihcIl9fJFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgc2NoZW1hW2tleV07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYW51cChzY2hlbWFba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNsZWFudXAoc2NoZW1hKTtcbiAgICB2aXNpdGVkLmZvckVhY2goZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgZGVsZXRlIHMuX19fJHZpc2l0ZWQ7XG4gICAgfSk7XG5cbiAgICB0aGlzLmxhc3RSZXBvcnQgPSByZXBvcnQ7XG4gICAgaWYgKHJlcG9ydC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyB0aGlzLmdldExhc3RFcnJvcigpO1xuICAgIH1cbn07XG5aU2NoZW1hLnByb3RvdHlwZS5zZXRTY2hlbWFSZWFkZXIgPSBmdW5jdGlvbiAoc2NoZW1hUmVhZGVyKSB7XG4gICAgcmV0dXJuIFpTY2hlbWEuc2V0U2NoZW1hUmVhZGVyKHNjaGVtYVJlYWRlcik7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0U2NoZW1hUmVhZGVyID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBaU2NoZW1hLnNjaGVtYVJlYWRlcjtcbn07XG5cbi8qXG4gICAgc3RhdGljIG1ldGhvZHNcbiovXG5aU2NoZW1hLnNldFNjaGVtYVJlYWRlciA9IGZ1bmN0aW9uIChzY2hlbWFSZWFkZXIpIHtcbiAgICBaU2NoZW1hLnNjaGVtYVJlYWRlciA9IHNjaGVtYVJlYWRlcjtcbn07XG5aU2NoZW1hLnJlZ2lzdGVyRm9ybWF0ID0gZnVuY3Rpb24gKGZvcm1hdE5hbWUsIHZhbGlkYXRvckZ1bmN0aW9uKSB7XG4gICAgRm9ybWF0VmFsaWRhdG9yc1tmb3JtYXROYW1lXSA9IHZhbGlkYXRvckZ1bmN0aW9uO1xufTtcblpTY2hlbWEuZ2V0RGVmYXVsdE9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFV0aWxzLmNsb25lRGVlcChkZWZhdWx0T3B0aW9ucyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFpTY2hlbWE7XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gICAgXCIkc2NoZW1hXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9oeXBlci1zY2hlbWEjXCIsXG4gICAgXCJpZFwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvaHlwZXItc2NoZW1hI1wiLFxuICAgIFwidGl0bGVcIjogXCJKU09OIEh5cGVyLVNjaGVtYVwiLFxuICAgIFwiYWxsT2ZcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSNcIlxuICAgICAgICB9XG4gICAgXSxcbiAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFkZGl0aW9uYWxJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxPZlwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbnlPZlwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvbmVPZlwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJub3RcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgIH0sXG5cbiAgICAgICAgXCJsaW5rc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9saW5rRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImZyYWdtZW50UmVzb2x1dGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1lZGlhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBtZWRpYSB0eXBlLCBhcyBkZXNjcmliZWQgaW4gUkZDIDIwNDZcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYmluYXJ5RW5jb2RpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBjb250ZW50IGVuY29kaW5nIHNjaGVtZSwgYXMgZGVzY3JpYmVkIGluIFJGQyAyMDQ1XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBhdGhTdGFydFwiOiB7XG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW5zdGFuY2VzJyBVUklzIG11c3Qgc3RhcnQgd2l0aCB0aGlzIHZhbHVlIGZvciB0aGlzIHNjaGVtYSB0byBhcHBseSB0byB0aGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICAgIFwic2NoZW1hQXJyYXlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImxpbmtEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInRpdGxlXCI6IFwiTGluayBEZXNjcmlwdGlvbiBPYmplY3RcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbIFwiaHJlZlwiLCBcInJlbFwiIF0sXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiaHJlZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIFVSSSB0ZW1wbGF0ZSwgYXMgZGVmaW5lZCBieSBSRkMgNjU3MCwgd2l0aCB0aGUgYWRkaXRpb24gb2YgdGhlICQsICggYW5kICkgY2hhcmFjdGVycyBmb3IgcHJlLXByb2Nlc3NpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmVsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlbGF0aW9uIHRvIHRoZSB0YXJnZXQgcmVzb3VyY2Ugb2YgdGhlIGxpbmtcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidGl0bGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSB0aXRsZSBmb3IgdGhlIGxpbmtcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkpTT04gU2NoZW1hIGRlc2NyaWJpbmcgdGhlIGxpbmsgdGFyZ2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJtZWRpYVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWVkaWEgdHlwZSAoYXMgZGVmaW5lZCBieSBSRkMgMjA0NikgZGVzY3JpYmluZyB0aGUgbGluayB0YXJnZXRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibWV0aG9kXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1ldGhvZCBmb3IgcmVxdWVzdGluZyB0aGUgdGFyZ2V0IG9mIHRoZSBsaW5rIChlLmcuIGZvciBIVFRQIHRoaXMgbWlnaHQgYmUgXFxcIkdFVFxcXCIgb3IgXFxcIkRFTEVURVxcXCIpXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImVuY1R5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG1lZGlhIHR5cGUgaW4gd2hpY2ggdG8gc3VibWl0IGRhdGEgYWxvbmcgd2l0aCB0aGUgcmVxdWVzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTY2hlbWEgZGVzY3JpYmluZyB0aGUgZGF0YSB0byBzdWJtaXQgYWxvbmcgd2l0aCB0aGUgcmVxdWVzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiJdfQ== diff --git a/browser/swagger-core-api.js b/browser/swagger-core-api.js index 27fcf9d..55bb515 100644 --- a/browser/swagger-core-api.js +++ b/browser/swagger-core-api.js @@ -141,7 +141,7 @@ module.exports.create = function (options, callback) { return allTasks; }; -},{"./lib/versions/2.0/":7,"native-promise-only":94}],2:[function(require,module,exports){ +},{"./lib/versions/2.0/":8,"native-promise-only":95}],2:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -264,7 +264,7 @@ module.exports.validateAgainstSchema = function (validator, schema, value) { return response; }; -},{"./json-schema-draft-04.json":3,"json-schema-faker":19,"z-schema":105}],3:[function(require,module,exports){ +},{"./json-schema-draft-04.json":3,"json-schema-faker":20,"z-schema":106}],3:[function(require,module,exports){ module.exports={ "id": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#", @@ -735,7 +735,7 @@ module.exports = { SwaggerApi: SwaggerApi }; -},{"debug":15}],5:[function(require,module,exports){ +},{"debug":16}],5:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -782,7 +782,7 @@ module.exports.password = function (gen, schema) { return stringMocker(schema); }; -},{"js-base64":18,"json-schema-faker/lib/types/string":26}],6:[function(require,module,exports){ +},{"js-base64":19,"json-schema-faker/lib/types/string":27}],6:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -880,12 +880,42 @@ module.exports.password = function (val) { 'use strict'; +module.exports.supportedHttpMethods = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch']; + +},{}],8:[function(require,module,exports){ +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 Apigee Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +'use strict'; + var _ = (window._); -var formatGenerators = require('./format-generators'); -var validators = require('./validators'); -var helpers = require('../../helpers'); var JsonRefs = (window.JsonRefs); +var formatGenerators = require('./format-generators'); +var helpers = require('../../helpers'); var types = require('../../types'); +var validators = require('./validators'); +var vHelpers = require('./helpers'); var docsUrl = 'https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md'; var mocker = helpers.createJSONSchemaMocker({ @@ -911,7 +941,6 @@ var parameterSchemaProperties = [ 'type', 'uniqueItems' ]; -var supportedHttpMethods = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch']; var version = '2.0'; function getParameterSchema (parameter) { @@ -937,7 +966,7 @@ function getParameterSchema (parameter) { module.exports.documentation = docsUrl; // The array of supported HTTP methods for each path -module.exports.supportedHttpMethods = supportedHttpMethods; +module.exports.supportedHttpMethods = vHelpers.supportedHttpMethods; // The version for this Swagger version module.exports.version = version; @@ -1010,7 +1039,7 @@ module.exports.getOperations = function (api) { _.forEach(pathDef, function (operation, method) { // Do not process non-operations - if (_.indexOf(supportedHttpMethods, method) === -1) { + if (_.indexOf(vHelpers.supportedHttpMethods, method) === -1) { return; } @@ -1089,7 +1118,7 @@ module.exports.getSemanticValidators = function () { return validators.semanticValidators; }; -},{"../../helpers":2,"../../types":4,"./format-generators":5,"./validators":9}],8:[function(require,module,exports){ +},{"../../helpers":2,"../../types":4,"./format-generators":5,"./helpers":7,"./validators":10}],9:[function(require,module,exports){ module.exports={ "title": "A JSON Schema for Swagger 2.0 API.", "id": "http://swagger.io/v2/schema.json#", @@ -2585,7 +2614,7 @@ module.exports={ } } } -},{}],9:[function(require,module,exports){ +},{}],10:[function(require,module,exports){ /* * The MIT License (MIT) * @@ -2612,9 +2641,60 @@ module.exports={ 'use strict'; +var _ = (window._); var customFormatValidators = require('./format-validators'); var helpers = require('../../helpers'); +var JsonRefs = (window.JsonRefs); var swaggerSchema = require('./schema.json'); +var vHelpers = require('./helpers'); + +function walkSchema (blacklist, schema, path, handler) { + var type = schema.type || 'object'; + + function shouldSkip (cPath) { + return _.indexOf(blacklist, JsonRefs.pathToPointer(cPath)) > -1; + } + + // Do not process items in the blacklist as they've been processed already + if (shouldSkip(path)) { + return; + } + + function walker (pSchema, pPath) { + // Do not process items in the blacklist as they've been processed already + if (shouldSkip(pPath)) { + return; + } + + _.forEach(pSchema, function (item, name) { + if (_.isNumber(name)) { + name = name.toString(); + } + + walkSchema(blacklist, item, pPath.concat(name), handler); + }); + + handler(pSchema, pPath); + } + + if (!_.isUndefined(schema.schema)) { + walkSchema(blacklist, schema.schema, path.concat('schema'), handler); + } else if (type === 'array' && !_.isUndefined(schema.items)) { + walker(schema.items, path.concat('items')); + } else if (type === 'object') { + if (!_.isUndefined(schema.additionalProperties)) { + walkSchema(blacklist, schema.additionalProperties, path.concat('additionalProperties'), handler); + } + + _.forEach(['allOf', 'properties'], function (propName) { + if (!_.isUndefined(schema[propName])) { + walker(schema[propName], path.concat(propName)); + } + }); + } + + handler(schema, path); +} /** * Validates the resolved Swagger document against the Swagger 2.0 JSON Schema. @@ -2629,14 +2709,111 @@ function validateStructure (api) { }), swaggerSchema, api.resolved); } +/** + * Validates that all arrays have their required items property. + * + * @see {@link https://github.com/swagger-api/swagger-spec/issues/174} + * + * @param {SwaggerApi} api - The SwaggerApi object + * + * @returns {object} Object containing the errors and warnings of the validation + */ +function validateArrayItems (api) { + // Build a blacklist to avoid cascading errors/warnings + var blacklist = _.reduce(api.references, function (list, metadata, ptr) { + var refPath = JsonRefs.pathFromPointer(ptr); + + // Remove the $ref part of the path + refPath.pop(); + + list.push(JsonRefs.pathToPointer(refPath)); + + return list; + }, []); + var response = { + errors: [], + warnings: [] + }; + + function validate (schema, path) { + if (schema.type === 'array' && _.isUndefined(schema.items)) { + response.errors.push({ + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: path + }); + } + } + + function validateParameters (parameters, path) { + _.forEach(parameters, function (parameterDef, name) { + if (_.isNumber(name)) { + name = name.toString(); + } + + walkSchema(blacklist, parameterDef, path.concat(name), validate); + }); + } + + function validateResponses (responses, path) { + _.forEach(responses, function (responseDef, name) { + var rPath = path.concat(name); + + _.forEach(responseDef.headers, function (header, hName) { + walkSchema(blacklist, header, rPath.concat(['headers', hName]), validate); + }); + + if (!_.isUndefined(responseDef.schema)) { + walkSchema(blacklist, responseDef.schema, rPath.concat('schema'), validate); + } + }); + } + + // Validate definitions + _.forEach(api.resolved.definitions, function (definitionDef, name) { + walkSchema(blacklist, definitionDef, ['definitions', name], validate); + }); + + // Validate global parameter definitions + validateParameters(api.resolved.parameters, ['parameters']); + + // Validate global response definitions + validateResponses(api.resolved.responses, ['responses']); + + // Validate paths and operations + _.forEach(api.resolved.paths, function (pathDef, path) { + var pPath = ['paths', path]; + + // Validate path-level parameter definitions + validateParameters(pathDef.parameters, pPath.concat('parameters')); + + _.forEach(pathDef, function (operationDef, method) { + var oPath = pPath.concat(method); + + // Do not process non-operations + if (_.indexOf(vHelpers.supportedHttpMethods, method) === -1) { + return; + } + + // Validate operation parameter definitions + validateParameters(operationDef.parameters, oPath.concat('parameters')); + + // Validate operation response definitions + validateResponses(operationDef.responses, oPath.concat('responses')); + }); + }); + + return response; +} + module.exports = { jsonSchemaValidator: validateStructure, semanticValidators: [ - + validateArrayItems ] }; -},{"../../helpers":2,"./format-validators":6,"./schema.json":8}],10:[function(require,module,exports){ +},{"../../helpers":2,"./format-validators":6,"./helpers":7,"./schema.json":9}],11:[function(require,module,exports){ /*! * The buffer module from node.js, for the browser. * @@ -4052,7 +4229,7 @@ function decodeUtf8Char (str) { } } -},{"base64-js":11,"ieee754":12,"is-array":13}],11:[function(require,module,exports){ +},{"base64-js":12,"ieee754":13,"is-array":14}],12:[function(require,module,exports){ var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; ;(function (exports) { @@ -4178,7 +4355,7 @@ var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; exports.fromByteArray = uint8ToBase64 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports)) -},{}],12:[function(require,module,exports){ +},{}],13:[function(require,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m, eLen = nBytes * 8 - mLen - 1, @@ -4264,7 +4441,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { buffer[offset + i - d] |= s * 128 } -},{}],13:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ /** * isArray @@ -4299,7 +4476,7 @@ module.exports = isArray || function (val) { return !! val && '[object Array]' == str.call(val); }; -},{}],14:[function(require,module,exports){ +},{}],15:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -4391,7 +4568,7 @@ process.chdir = function (dir) { }; process.umask = function() { return 0; }; -},{}],15:[function(require,module,exports){ +},{}],16:[function(require,module,exports){ /** * This is the web browser implementation of `debug()`. @@ -4561,7 +4738,7 @@ function localstorage(){ } catch (e) {} } -},{"./debug":16}],16:[function(require,module,exports){ +},{"./debug":17}],17:[function(require,module,exports){ /** * This is the common logic for both the Node.js and web browser @@ -4760,7 +4937,7 @@ function coerce(val) { return val; } -},{"ms":17}],17:[function(require,module,exports){ +},{"ms":18}],18:[function(require,module,exports){ /** * Helpers. */ @@ -4887,7 +5064,7 @@ function plural(ms, n, name) { return Math.ceil(ms / n) + ' ' + name + 's'; } -},{}],18:[function(require,module,exports){ +},{}],19:[function(require,module,exports){ /* * $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $ * @@ -5081,7 +5258,7 @@ function plural(ms, n, name) { } })(this); -},{"buffer":10}],19:[function(require,module,exports){ +},{"buffer":11}],20:[function(require,module,exports){ 'use strict'; var container = require('./util/container'), @@ -5115,7 +5292,7 @@ generate.extend = container.set; module.exports = generate; -},{"./util/container":28,"./util/formats":30,"./util/traverse":35,"deref":37}],20:[function(require,module,exports){ +},{"./util/container":29,"./util/formats":31,"./util/traverse":36,"deref":38}],21:[function(require,module,exports){ 'use strict'; var random = require('../util/random'), @@ -5184,14 +5361,14 @@ module.exports = function(value, path) { return items; }; -},{"../util/error":29,"../util/has-props":31,"../util/random":34,"../util/traverse":35}],21:[function(require,module,exports){ +},{"../util/error":30,"../util/has-props":32,"../util/random":35,"../util/traverse":36}],22:[function(require,module,exports){ 'use strict'; module.exports = function() { return Math.random() > 0.5; }; -},{}],22:[function(require,module,exports){ +},{}],23:[function(require,module,exports){ 'use strict'; var number = require('./number'); @@ -5202,14 +5379,14 @@ module.exports = function(value) { return Math.floor(number(value)); }; -},{"./number":24}],23:[function(require,module,exports){ +},{"./number":25}],24:[function(require,module,exports){ 'use strict'; module.exports = function() { return null; }; -},{}],24:[function(require,module,exports){ +},{}],25:[function(require,module,exports){ 'use strict'; var MIN_INTEGER = -100000000, @@ -5251,7 +5428,7 @@ module.exports = function(value) { return random(Math.random() > 0.5, min, max); }; -},{"../util/random":34,"./string":26}],25:[function(require,module,exports){ +},{"../util/random":35,"./string":27}],26:[function(require,module,exports){ 'use strict'; var container = require('../util/container'), @@ -5315,7 +5492,7 @@ module.exports = function(value, path) { return traverse(props, path.concat(['properties'])); }; -},{"../util/container":28,"../util/error":29,"../util/has-props":31,"../util/random":34,"../util/traverse":35}],26:[function(require,module,exports){ +},{"../util/container":29,"../util/error":30,"../util/has-props":32,"../util/random":35,"../util/traverse":36}],27:[function(require,module,exports){ 'use strict'; var container = require('../util/container'); @@ -5437,7 +5614,7 @@ module.exports = function(value) { return faker.lorem.words(random(1, 5)).join(' '); }; -},{"../util/container":28,"../util/formats":30,"../util/random":34}],27:[function(require,module,exports){ +},{"../util/container":29,"../util/formats":31,"../util/random":35}],28:[function(require,module,exports){ 'use strict'; function combine(target) { @@ -5454,7 +5631,7 @@ function combine(target) { module.exports = combine; -},{}],28:[function(require,module,exports){ +},{}],29:[function(require,module,exports){ 'use strict'; // static requires - handle both initial dependency load (deps will be available @@ -5478,7 +5655,7 @@ module.exports = { } }; -},{"chance":36,"faker":43,"randexp":87}],29:[function(require,module,exports){ +},{"chance":37,"faker":44,"randexp":88}],30:[function(require,module,exports){ 'use strict'; function ParseError(message, path) { @@ -5491,7 +5668,7 @@ ParseError.prototype = Error.prototype; module.exports = ParseError; -},{}],30:[function(require,module,exports){ +},{}],31:[function(require,module,exports){ 'use strict'; var registry = {}; @@ -5510,7 +5687,7 @@ module.exports = function(name, callback) { return registry; }; -},{}],31:[function(require,module,exports){ +},{}],32:[function(require,module,exports){ 'use strict'; module.exports = function(obj) { @@ -5519,7 +5696,7 @@ module.exports = function(obj) { }).length > 0; }; -},{}],32:[function(require,module,exports){ +},{}],33:[function(require,module,exports){ 'use strict'; var inferredProperties = { @@ -5569,7 +5746,7 @@ module.exports = function(obj) { } }; -},{}],33:[function(require,module,exports){ +},{}],34:[function(require,module,exports){ 'use strict'; module.exports = { @@ -5582,7 +5759,7 @@ module.exports = { string: require('../types/string') }; -},{"../types/array":20,"../types/boolean":21,"../types/integer":22,"../types/null":23,"../types/number":24,"../types/object":25,"../types/string":26}],34:[function(require,module,exports){ +},{"../types/array":21,"../types/boolean":22,"../types/integer":23,"../types/null":24,"../types/number":25,"../types/object":26,"../types/string":27}],35:[function(require,module,exports){ 'use strict'; var container = require('./container'); @@ -5640,7 +5817,7 @@ random.pick = function(obj) { random.MIN_NUMBER = -100; random.MAX_NUMBER = 100; -},{"./container":28}],35:[function(require,module,exports){ +},{"./container":29}],36:[function(require,module,exports){ 'use strict'; var random = require('./random'), @@ -5743,7 +5920,7 @@ function traverse(obj, path) { module.exports = traverse; -},{"./combine":27,"./error":29,"./inferred":32,"./primitives":33,"./random":34}],36:[function(require,module,exports){ +},{"./combine":28,"./error":30,"./inferred":33,"./primitives":34,"./random":35}],37:[function(require,module,exports){ (function (Buffer){ // Chance.js 0.7.5 // http://chancejs.com @@ -8260,7 +8437,7 @@ module.exports = traverse; }).call(this,require("buffer").Buffer) -},{"buffer":10}],37:[function(require,module,exports){ +},{"buffer":11}],38:[function(require,module,exports){ 'use strict'; var $ = require('./util/uri-helpers'); @@ -8319,7 +8496,7 @@ var instance = module.exports = function() { instance.util = $; -},{"./util/find-reference":39,"./util/normalize-schema":40,"./util/resolve-schema":41,"./util/uri-helpers":42}],38:[function(require,module,exports){ +},{"./util/find-reference":40,"./util/normalize-schema":41,"./util/resolve-schema":42,"./util/uri-helpers":43}],39:[function(require,module,exports){ 'use strict'; var clone = module.exports = function(obj) { @@ -8346,7 +8523,7 @@ var clone = module.exports = function(obj) { return target; }; -},{}],39:[function(require,module,exports){ +},{}],40:[function(require,module,exports){ 'use strict'; var $ = require('./uri-helpers'); @@ -8394,7 +8571,7 @@ var find = module.exports = function(id, refs) { return target; }; -},{"./uri-helpers":42}],40:[function(require,module,exports){ +},{"./uri-helpers":43}],41:[function(require,module,exports){ 'use strict'; var $ = require('./uri-helpers'); @@ -8460,7 +8637,7 @@ module.exports = function(fakeroot, schema, push) { return copy; }; -},{"./clone-obj":38,"./uri-helpers":42}],41:[function(require,module,exports){ +},{"./clone-obj":39,"./uri-helpers":43}],42:[function(require,module,exports){ 'use strict'; var $ = require('./uri-helpers'); @@ -8518,7 +8695,7 @@ module.exports = function(obj, refs, expand) { return clone(obj, refs, false, expand); }; -},{"./find-reference":39,"./uri-helpers":42}],42:[function(require,module,exports){ +},{"./find-reference":40,"./uri-helpers":43}],43:[function(require,module,exports){ 'use strict'; // https://gist.github.com/pjt33/efb2f1134bab986113fd @@ -8619,7 +8796,7 @@ module.exports = { getDocumentURI: getDocumentURI }; -},{}],43:[function(require,module,exports){ +},{}],44:[function(require,module,exports){ /* this index.js file is used for including the faker library as a CommonJS module, instead of a bundle @@ -8693,7 +8870,7 @@ Object.keys(_definitions).forEach(function(d){ }); }); }); -},{"./lib/address":44,"./lib/company":45,"./lib/date":46,"./lib/finance":47,"./lib/hacker":48,"./lib/helpers":49,"./lib/image":50,"./lib/internet":51,"./lib/locales":52,"./lib/lorem":80,"./lib/name":81,"./lib/phone_number":82,"./lib/random":83}],44:[function(require,module,exports){ +},{"./lib/address":45,"./lib/company":46,"./lib/date":47,"./lib/finance":48,"./lib/hacker":49,"./lib/helpers":50,"./lib/image":51,"./lib/internet":52,"./lib/locales":53,"./lib/lorem":81,"./lib/name":82,"./lib/phone_number":83,"./lib/random":84}],45:[function(require,module,exports){ var Helpers = require('./helpers'); var faker = require('../index'); @@ -8802,7 +8979,7 @@ var address = { module.exports = address; -},{"../index":43,"./helpers":49}],45:[function(require,module,exports){ +},{"../index":44,"./helpers":50}],46:[function(require,module,exports){ var faker = require('../index'); var company = { @@ -8866,7 +9043,7 @@ var company = { module.exports = company; -},{"../index":43}],46:[function(require,module,exports){ +},{"../index":44}],47:[function(require,module,exports){ var faker = require("../index"); var date = { @@ -8924,7 +9101,7 @@ var date = { }; module.exports = date; -},{"../index":43}],47:[function(require,module,exports){ +},{"../index":44}],48:[function(require,module,exports){ var Helpers = require('./helpers'), faker = require('../index'); @@ -9012,7 +9189,7 @@ var finance = { }; module.exports = finance; -},{"../index":43,"./helpers":49}],48:[function(require,module,exports){ +},{"../index":44,"./helpers":50}],49:[function(require,module,exports){ var faker = require('../index'); var hacker = { @@ -9066,7 +9243,7 @@ var hacker = { module.exports = hacker; -},{"../index":43}],49:[function(require,module,exports){ +},{"../index":44}],50:[function(require,module,exports){ var faker = require('../index'); // backword-compatibility @@ -9245,7 +9422,7 @@ String.prototype.capitalize = function () { //v1.0 */ -},{"../index":43}],50:[function(require,module,exports){ +},{"../index":44}],51:[function(require,module,exports){ var faker = require('../index'); var image = { @@ -9309,7 +9486,7 @@ var image = { module.exports = image; -},{"../index":43}],51:[function(require,module,exports){ +},{"../index":44}],52:[function(require,module,exports){ var faker = require('../index'), password_generator = require('../vendor/password-generator.js'), random_ua = require('../vendor/user-agent'); @@ -9403,7 +9580,7 @@ var internet = { module.exports = internet; -},{"../index":43,"../vendor/password-generator.js":85,"../vendor/user-agent":86}],52:[function(require,module,exports){ +},{"../index":44,"../vendor/password-generator.js":86,"../vendor/user-agent":87}],53:[function(require,module,exports){ var faker = require('../index'); exports['de'] = require('./locales/de.js'); exports['de_AT'] = require('./locales/de_AT.js'); @@ -9432,7 +9609,7 @@ exports['sk'] = require('./locales/sk.js'); exports['sv'] = require('./locales/sv.js'); exports['vi'] = require('./locales/vi.js'); exports['zh_CN'] = require('./locales/zh_CN.js'); -},{"../index":43,"./locales/de.js":53,"./locales/de_AT.js":54,"./locales/de_CH.js":55,"./locales/en.js":56,"./locales/en_AU.js":57,"./locales/en_BORK.js":58,"./locales/en_CA.js":59,"./locales/en_GB.js":60,"./locales/en_IND.js":61,"./locales/en_US.js":62,"./locales/en_au_ocker.js":63,"./locales/es.js":64,"./locales/fa.js":65,"./locales/fr.js":66,"./locales/it.js":67,"./locales/ja.js":68,"./locales/ko.js":69,"./locales/nb_NO.js":70,"./locales/nep.js":71,"./locales/nl.js":72,"./locales/pl.js":73,"./locales/pt_BR.js":74,"./locales/ru.js":75,"./locales/sk.js":76,"./locales/sv.js":77,"./locales/vi.js":78,"./locales/zh_CN.js":79}],53:[function(require,module,exports){ +},{"../index":44,"./locales/de.js":54,"./locales/de_AT.js":55,"./locales/de_CH.js":56,"./locales/en.js":57,"./locales/en_AU.js":58,"./locales/en_BORK.js":59,"./locales/en_CA.js":60,"./locales/en_GB.js":61,"./locales/en_IND.js":62,"./locales/en_US.js":63,"./locales/en_au_ocker.js":64,"./locales/es.js":65,"./locales/fa.js":66,"./locales/fr.js":67,"./locales/it.js":68,"./locales/ja.js":69,"./locales/ko.js":70,"./locales/nb_NO.js":71,"./locales/nep.js":72,"./locales/nl.js":73,"./locales/pl.js":74,"./locales/pt_BR.js":75,"./locales/ru.js":76,"./locales/sk.js":77,"./locales/sv.js":78,"./locales/vi.js":79,"./locales/zh_CN.js":80}],54:[function(require,module,exports){ var de = {}; module["exports"] = de; de.title = "German"; @@ -13973,7 +14150,7 @@ de.cell_phone = { ] }; -},{}],54:[function(require,module,exports){ +},{}],55:[function(require,module,exports){ var de_AT = {}; module["exports"] = de_AT; de_AT.title = "German (Austria)"; @@ -17519,7 +17696,7 @@ de_AT.cell_phone = { ] }; -},{}],55:[function(require,module,exports){ +},{}],56:[function(require,module,exports){ var de_CH = {}; module["exports"] = de_CH; de_CH.title = "German (Switzerland)"; @@ -17595,7 +17772,7 @@ de_CH.phone_number = { ] }; -},{}],56:[function(require,module,exports){ +},{}],57:[function(require,module,exports){ var en = {}; module["exports"] = en; en.title = "English"; @@ -26296,7 +26473,7 @@ en.finance.currency = { "symbol": "" } }; -},{}],57:[function(require,module,exports){ +},{}],58:[function(require,module,exports){ var en_AU = {}; module["exports"] = en_AU; en_AU.title = "Australia (English)"; @@ -26899,7 +27076,7 @@ en_AU.phone_number = { ] }; -},{}],58:[function(require,module,exports){ +},{}],59:[function(require,module,exports){ var en_BORK = {}; module["exports"] = en_BORK; en_BORK.title = "Bork (English)"; @@ -27011,7 +27188,7 @@ en_BORK.lorem = { ] }; -},{}],59:[function(require,module,exports){ +},{}],60:[function(require,module,exports){ var en_CA = {}; module["exports"] = en_CA; en_CA.title = "Canada (English)"; @@ -27091,7 +27268,7 @@ en_CA.phone_number = { ] }; -},{}],60:[function(require,module,exports){ +},{}],61:[function(require,module,exports){ var en_GB = {}; module["exports"] = en_GB; en_GB.title = "Great Britain (English)"; @@ -27221,7 +27398,7 @@ en_GB.cell_phone = { ] }; -},{}],61:[function(require,module,exports){ +},{}],62:[function(require,module,exports){ var en_IND = {}; module["exports"] = en_IND; en_IND.title = "India (English)"; @@ -28203,7 +28380,7 @@ en_IND.phone_number = { ] }; -},{}],62:[function(require,module,exports){ +},{}],63:[function(require,module,exports){ var en_US = {}; module["exports"] = en_US; en_US.title = "United States (English)"; @@ -28852,7 +29029,7 @@ en_US.phone_number = { ] }; -},{}],63:[function(require,module,exports){ +},{}],64:[function(require,module,exports){ var en_au_ocker = {}; module["exports"] = en_au_ocker; en_au_ocker.title = "Australia Ocker (English)"; @@ -29140,7 +29317,7 @@ en_au_ocker.phone_number = { ] }; -},{}],64:[function(require,module,exports){ +},{}],65:[function(require,module,exports){ var es = {}; module["exports"] = es; es.title = "Spanish"; @@ -31075,7 +31252,7 @@ es.cell_phone = { ] }; -},{}],65:[function(require,module,exports){ +},{}],66:[function(require,module,exports){ var fa = {}; module["exports"] = fa; fa.title = "Farsi"; @@ -31957,7 +32134,7 @@ fa.name = { ] }; -},{}],66:[function(require,module,exports){ +},{}],67:[function(require,module,exports){ var fr = {}; module["exports"] = fr; fr.title = "French"; @@ -34106,7 +34283,7 @@ fr.phone_number = { ] }; -},{}],67:[function(require,module,exports){ +},{}],68:[function(require,module,exports){ var it = {}; module["exports"] = it; it.title = "Italian"; @@ -35501,7 +35678,7 @@ it.phone_number = { ] }; -},{}],68:[function(require,module,exports){ +},{}],69:[function(require,module,exports){ var ja = {}; module["exports"] = ja; ja.title = "Japanese"; @@ -35699,7 +35876,7 @@ ja.name = { ] }; -},{}],69:[function(require,module,exports){ +},{}],70:[function(require,module,exports){ var ko = {}; module["exports"] = ko; ko.title = "Korean"; @@ -36048,7 +36225,7 @@ ko.name = { ] }; -},{}],70:[function(require,module,exports){ +},{}],71:[function(require,module,exports){ var nb_NO = {}; module["exports"] = nb_NO; nb_NO.title = "Norwegian"; @@ -36598,7 +36775,7 @@ nb_NO.phone_number = { ] }; -},{}],71:[function(require,module,exports){ +},{}],72:[function(require,module,exports){ var nep = {}; module["exports"] = nep; nep.title = "Nepalese"; @@ -36814,7 +36991,7 @@ nep.phone_number = { ] }; -},{}],72:[function(require,module,exports){ +},{}],73:[function(require,module,exports){ var nl = {}; module["exports"] = nl; nl.title = "Dutch"; @@ -38437,7 +38614,7 @@ nl.phone_number = { ] }; -},{}],73:[function(require,module,exports){ +},{}],74:[function(require,module,exports){ var pl = {}; module["exports"] = pl; pl.title = "Polish"; @@ -42519,7 +42696,7 @@ pl.cell_phone = { ] }; -},{}],74:[function(require,module,exports){ +},{}],75:[function(require,module,exports){ var pt_BR = {}; module["exports"] = pt_BR; pt_BR.title = "Portuguese (Brazil)"; @@ -43283,7 +43460,7 @@ pt_BR.phone_number = { ] }; -},{}],75:[function(require,module,exports){ +},{}],76:[function(require,module,exports){ var ru = {}; module["exports"] = ru; ru.title = "Russian"; @@ -44650,7 +44827,7 @@ ru.company = { ] }; -},{}],76:[function(require,module,exports){ +},{}],77:[function(require,module,exports){ var sk = {}; module["exports"] = sk; sk.title = "Slovakian"; @@ -49125,7 +49302,7 @@ sk.phone_number = { ] }; -},{}],77:[function(require,module,exports){ +},{}],78:[function(require,module,exports){ var sv = {}; module["exports"] = sv; sv.title = "Swedish"; @@ -49768,7 +49945,7 @@ sv.team = { ] }; -},{}],78:[function(require,module,exports){ +},{}],79:[function(require,module,exports){ var vi = {}; module["exports"] = vi; vi.title = "Vietnamese"; @@ -50188,7 +50365,7 @@ vi.lorem = { ] }; -},{}],79:[function(require,module,exports){ +},{}],80:[function(require,module,exports){ var zh_CN = {}; module["exports"] = zh_CN; zh_CN.title = "Chinese"; @@ -50593,7 +50770,7 @@ zh_CN.phone_number = { ] }; -},{}],80:[function(require,module,exports){ +},{}],81:[function(require,module,exports){ var faker = require('../index'); var Helpers = require('./helpers'); @@ -50639,7 +50816,7 @@ var lorem = { module.exports = lorem; -},{"../index":43,"./helpers":49}],81:[function(require,module,exports){ +},{"../index":44,"./helpers":50}],82:[function(require,module,exports){ var faker = require('../index'); var _name = { @@ -50698,7 +50875,7 @@ var _name = { module.exports = _name; -},{"../index":43}],82:[function(require,module,exports){ +},{"../index":44}],83:[function(require,module,exports){ var faker = require('../index'); var phone = { @@ -50721,7 +50898,7 @@ var phone = { module.exports = phone; -},{"../index":43}],83:[function(require,module,exports){ +},{"../index":44}],84:[function(require,module,exports){ var mersenne = require('../vendor/mersenne'); var faker = require('../index'); @@ -50790,7 +50967,7 @@ var random = { module.exports = random; -},{"../index":43,"../vendor/mersenne":84}],84:[function(require,module,exports){ +},{"../index":44,"../vendor/mersenne":85}],85:[function(require,module,exports){ // this program is a JavaScript version of Mersenne Twister, with concealment and encapsulation in class, // an almost straight conversion from the original program, mt19937ar.c, // translated by y. okada on July 17, 2006. @@ -51079,7 +51256,7 @@ exports.seed_array = function(A) { } -},{}],85:[function(require,module,exports){ +},{}],86:[function(require,module,exports){ /* * password-generator * Copyright(c) 2011-2013 Bermi Ferrer @@ -51145,7 +51322,7 @@ exports.seed_array = function(A) { // Establish the root object, `window` in the browser, or `global` on the server. }(this)); -},{}],86:[function(require,module,exports){ +},{}],87:[function(require,module,exports){ /* Copyright (c) 2012-2014 Jeffrey Mealo @@ -51356,7 +51533,7 @@ exports.generate = function generate() { return browser[random[0]](random[1]); }; -},{}],87:[function(require,module,exports){ +},{}],88:[function(require,module,exports){ var ret = require('ret'); var DRange = require('discontinuous-range'); var types = ret.types; @@ -51603,7 +51780,7 @@ function gen(token, groups) { -},{"discontinuous-range":88,"ret":89}],88:[function(require,module,exports){ +},{"discontinuous-range":89,"ret":90}],89:[function(require,module,exports){ //protected helper class function _SubRange(low, high) { this.low = low; @@ -51749,7 +51926,7 @@ DiscontinuousRange.prototype.clone = function () { module.exports = DiscontinuousRange; -},{}],89:[function(require,module,exports){ +},{}],90:[function(require,module,exports){ var util = require('./util'); var types = require('./types'); var sets = require('./sets'); @@ -52029,7 +52206,7 @@ module.exports = function(regexpStr) { module.exports.types = types; -},{"./positions":90,"./sets":91,"./types":92,"./util":93}],90:[function(require,module,exports){ +},{"./positions":91,"./sets":92,"./types":93,"./util":94}],91:[function(require,module,exports){ var types = require('./types'); exports.wordBoundary = function() { @@ -52048,7 +52225,7 @@ exports.end = function() { return { type: types.POSITION, value: '$' }; }; -},{"./types":92}],91:[function(require,module,exports){ +},{"./types":93}],92:[function(require,module,exports){ var types = require('./types'); var INTS = function() { @@ -52132,7 +52309,7 @@ exports.anyChar = function() { return { type: types.SET, set: NOTANYCHAR(), not: true }; }; -},{"./types":92}],92:[function(require,module,exports){ +},{"./types":93}],93:[function(require,module,exports){ module.exports = { ROOT : 0 , GROUP : 1 @@ -52144,7 +52321,7 @@ module.exports = { , CHAR : 7 }; -},{}],93:[function(require,module,exports){ +},{}],94:[function(require,module,exports){ var types = require('./types'); var sets = require('./sets'); @@ -52252,7 +52429,7 @@ exports.error = function(regexp, msg) { throw new SyntaxError('Invalid regular expression: /' + regexp + '/: ' + msg); }; -},{"./sets":91,"./types":92}],94:[function(require,module,exports){ +},{"./sets":92,"./types":93}],95:[function(require,module,exports){ (function (global){ /*! Native Promise Only v0.7.8-a (c) Kyle Simpson @@ -52262,7 +52439,7 @@ exports.error = function(regexp, msg) { }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],95:[function(require,module,exports){ +},{}],96:[function(require,module,exports){ /*! * Copyright (c) 2015 Chris O'Hara * @@ -53000,7 +53177,7 @@ exports.error = function(regexp, msg) { }); -},{}],96:[function(require,module,exports){ +},{}],97:[function(require,module,exports){ "use strict"; module.exports = { @@ -53061,7 +53238,7 @@ module.exports = { }; -},{}],97:[function(require,module,exports){ +},{}],98:[function(require,module,exports){ /*jshint maxlen: false*/ var validator = require("validator"); @@ -53192,7 +53369,7 @@ var FormatValidators = { module.exports = FormatValidators; -},{"validator":95}],98:[function(require,module,exports){ +},{"validator":96}],99:[function(require,module,exports){ "use strict"; var FormatValidators = require("./FormatValidators"), @@ -53718,7 +53895,7 @@ exports.validate = function (report, schema, json) { }; -},{"./FormatValidators":97,"./Report":100,"./Utils":104}],99:[function(require,module,exports){ +},{"./FormatValidators":98,"./Report":101,"./Utils":105}],100:[function(require,module,exports){ // Number.isFinite polyfill // http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite if (typeof Number.isFinite !== "function") { @@ -53736,7 +53913,7 @@ if (typeof Number.isFinite !== "function") { }; } -},{}],100:[function(require,module,exports){ +},{}],101:[function(require,module,exports){ (function (process){ "use strict"; @@ -53891,7 +54068,7 @@ module.exports = Report; }).call(this,require('_process')) -},{"./Errors":96,"./Utils":104,"_process":14}],101:[function(require,module,exports){ +},{"./Errors":97,"./Utils":105,"_process":15}],102:[function(require,module,exports){ "use strict"; var Report = require("./Report"); @@ -54046,7 +54223,7 @@ exports.getSchemaByUri = function (report, uri, root) { exports.getRemotePath = getRemotePath; -},{"./Report":100,"./SchemaCompilation":102,"./SchemaValidation":103,"./Utils":104}],102:[function(require,module,exports){ +},{"./Report":101,"./SchemaCompilation":103,"./SchemaValidation":104,"./Utils":105}],103:[function(require,module,exports){ "use strict"; var Report = require("./Report"); @@ -54327,7 +54504,7 @@ exports.compileSchema = function (report, schema) { }; -},{"./Report":100,"./SchemaCache":101,"./Utils":104}],103:[function(require,module,exports){ +},{"./Report":101,"./SchemaCache":102,"./Utils":105}],104:[function(require,module,exports){ "use strict"; var FormatValidators = require("./FormatValidators"), @@ -54913,7 +55090,7 @@ exports.validateSchema = function (report, schema) { }; -},{"./FormatValidators":97,"./JsonValidation":98,"./Report":100,"./Utils":104}],104:[function(require,module,exports){ +},{"./FormatValidators":98,"./JsonValidation":99,"./Report":101,"./Utils":105}],105:[function(require,module,exports){ "use strict"; exports.isAbsoluteUri = function (uri) { @@ -55131,7 +55308,7 @@ exports.ucs2decode = function (string) { }; /*jshint +W016*/ -},{}],105:[function(require,module,exports){ +},{}],106:[function(require,module,exports){ (function (process){ "use strict"; @@ -55432,7 +55609,7 @@ module.exports = ZSchema; }).call(this,require('_process')) -},{"./FormatValidators":97,"./JsonValidation":98,"./Polyfills":99,"./Report":100,"./SchemaCache":101,"./SchemaCompilation":102,"./SchemaValidation":103,"./Utils":104,"./schemas/hyper-schema.json":106,"./schemas/schema.json":107,"_process":14}],106:[function(require,module,exports){ +},{"./FormatValidators":98,"./JsonValidation":99,"./Polyfills":100,"./Report":101,"./SchemaCache":102,"./SchemaCompilation":103,"./SchemaValidation":104,"./Utils":105,"./schemas/hyper-schema.json":107,"./schemas/schema.json":108,"_process":15}],107:[function(require,module,exports){ module.exports={ "$schema": "http://json-schema.org/draft-04/hyper-schema#", "id": "http://json-schema.org/draft-04/hyper-schema#", @@ -55592,8 +55769,8 @@ module.exports={ } -},{}],107:[function(require,module,exports){ +},{}],108:[function(require,module,exports){ arguments[4][3][0].apply(exports,arguments) },{"dup":3}]},{},[1])(1) }); -//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJpbmRleC5qcyIsImxpYi9oZWxwZXJzLmpzIiwibGliL2pzb24tc2NoZW1hLWRyYWZ0LTA0Lmpzb24iLCJsaWIvdHlwZXMuanMiLCJsaWIvdmVyc2lvbnMvMi4wL2Zvcm1hdC1nZW5lcmF0b3JzLmpzIiwibGliL3ZlcnNpb25zLzIuMC9mb3JtYXQtdmFsaWRhdG9ycy5qcyIsImxpYi92ZXJzaW9ucy8yLjAvaW5kZXguanMiLCJsaWIvdmVyc2lvbnMvMi4wL3NjaGVtYS5qc29uIiwibGliL3ZlcnNpb25zLzIuMC92YWxpZGF0b3JzLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9saWIvYjY0LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2lzLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9kZWJ1Zy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2RlYnVnL2RlYnVnLmpzIiwibm9kZV9tb2R1bGVzL2RlYnVnL25vZGVfbW9kdWxlcy9tcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qcy1iYXNlNjQvYmFzZTY0LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvYXJyYXkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2Jvb2xlYW4uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2ludGVnZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bGwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bWJlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvb2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi90eXBlcy9zdHJpbmcuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvY29tYmluZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9jb250YWluZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZXJyb3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZm9ybWF0cy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9oYXMtcHJvcHMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvaW5mZXJyZWQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvcHJpbWl0aXZlcy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9yYW5kb20uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvdHJhdmVyc2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2NoYW5jZS9jaGFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvY2xvbmUtb2JqLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9kZXJlZi9saWIvdXRpbC9maW5kLXJlZmVyZW5jZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvbm9ybWFsaXplLXNjaGVtYS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvcmVzb2x2ZS1zY2hlbWEuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi91dGlsL3VyaS1oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2FkZHJlc3MuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9jb21wYW55LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvZGF0ZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2ZpbmFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oYWNrZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvaW1hZ2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9pbnRlcm5ldC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2RlLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9kZV9BVC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZGVfQ0guanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9BVS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQk9SSy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQ0EuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX0dCLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9JTkQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX1VTLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9hdV9vY2tlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2ZhLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9mci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvaXQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2phLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9rby5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmJfTk8uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL25lcC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3BsLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9wdF9CUi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvcnUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3NrLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9zdi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvdmkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3poX0NOLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9yZW0uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9uYW1lLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcGhvbmVfbnVtYmVyLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcmFuZG9tLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci92ZW5kb3IvbWVyc2VubmUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci9wYXNzd29yZC1nZW5lcmF0b3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci91c2VyLWFnZW50LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL2xpYi9yYW5kZXhwLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9kaXNjb250aW51b3VzLXJhbmdlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3Bvc2l0aW9ucy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvcmFuZGV4cC9ub2RlX21vZHVsZXMvcmV0L2xpYi9zZXRzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3R5cGVzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvbmF0aXZlLXByb21pc2Utb25seS9ucG8uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvbm9kZV9tb2R1bGVzL3ZhbGlkYXRvci92YWxpZGF0b3IuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL0Vycm9ycy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvRm9ybWF0VmFsaWRhdG9ycy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvSnNvblZhbGlkYXRpb24uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1BvbHlmaWxscy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvUmVwb3J0LmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9TY2hlbWFDYWNoZS5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvU2NoZW1hQ29tcGlsYXRpb24uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1NjaGVtYVZhbGlkYXRpb24uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9aU2NoZW1hLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9zY2hlbWFzL2h5cGVyLXNjaGVtYS5qc29uIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3Q5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0NENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDck1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaE1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3JHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDaDlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMzdJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3g5R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMy9RQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3psQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcDlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdm9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzc0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNubUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDajNDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwaUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcmxEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcjFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6M0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDblpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDMUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaHVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN0SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeGtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDeE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3hTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSAod2luZG93Ll8pO1xudmFyIHBhdGhMb2FkZXIgPSAod2luZG93LlBhdGhMb2FkZXIpO1xudmFyIFlBTUwgPSAod2luZG93LmpzeWFtbCk7XG5cbi8vIExvYWQgcHJvbWlzZXMgcG9seWZpbGwgaWYgbmVjZXNzYXJ5XG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmICh0eXBlb2YgUHJvbWlzZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgcmVxdWlyZSgnbmF0aXZlLXByb21pc2Utb25seScpO1xufVxuXG52YXIgc3VwcG9ydGVkVmVyc2lvbnMgPSB7XG4gICcyLjAnOiByZXF1aXJlKCcuL2xpYi92ZXJzaW9ucy8yLjAvJylcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIFN3YWdnZXJBcGkgb2JqZWN0IGZyb20gaXRzIFN3YWdnZXIgZGVmaW5pdGlvbihzKS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBsb2FkaW5nIHRoZSBkZWZpbml0aW9uKHMpXG4gKiBAcGFyYW0ge29iamVjdHxzdHJpbmd9IG9wdGlvbnMuZGVmaW5pdGlvbiAtIFRoZSBTd2FnZ2VyIGRlZmluaXRpb24gbG9jYXRpb24gb3Igc3RydWN0dXJlXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMubG9hZGVyT3B0aW9uc10gLSBUaGUgb3B0aW9ucyB0byBwYXNzIHRvIHBhdGgtbG9hZGVyXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrW119IFtvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnNdIC0gVGhlIGN1c3RvbSB2YWxpZGF0b3JzXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gTm9kZS5qcyBlcnJvci1maXJzdCBjYWxsYmFja1xuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgaXMgYWx3YXlzIHJldHVybmVkIGV2ZW4gaWYgeW91IHByb3ZpZGUgYSBjYWxsYmFjayBidXQgaXQgaXMgbm90IHJlcXVpcmVkIHRvIGJlIHVzZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBwcm9taXNlc1xuICogU3dhZ2dlckFwaS5jcmVhdGUoe2RlZmluaXRpb246ICdodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLnlhbWwnfSlcbiAqICAgLnRoZW4oZnVuY3Rpb24gKGFwaSkge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBjYWxsYmFja3NcbiAqIFN3YWdnZXJBcGkuY3JlYXRlKHtkZWZpbml0aW9uOiAnaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci55YW1sJ30sIGZ1bmN0aW9uIChlcnIsIGFwaSkge1xuICogICBpZiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9IGVsc2Uge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9KTtcbiAqL1xubW9kdWxlLmV4cG9ydHMuY3JlYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciBhbGxUYXNrcyA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8vIFZhbGlkYXRlIGFyZ3VtZW50c1xuICBhbGxUYXNrcyA9IGFsbFRhc2tzLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMuZGVmaW5pdGlvbiBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMuZGVmaW5pdGlvbikgJiYgIV8uaXNTdHJpbmcob3B0aW9ucy5kZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmRlZmluaXRpb24gbXVzdCBiZSBlaXRoZXIgYW4gb2JqZWN0IG9yIGEgc3RyaW5nJyk7XG4gICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnMubG9hZGVyT3B0aW9ucykgJiYgIV8uaXNQbGFpbk9iamVjdChvcHRpb25zLmxvYWRlck9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMubG9hZGVyT3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMpICYmICFfLmlzQXJyYXkob3B0aW9ucy5jdXN0b21WYWxpZGF0b3JzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChjYWxsYmFjaykgJiYgIV8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIF8uZm9yRWFjaChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMsIGZ1bmN0aW9uICh2YWxpZGF0b3IsIGluZGV4KSB7XG4gICAgICAgIGlmICghXy5pc0Z1bmN0aW9uKHZhbGlkYXRvcikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgYXQgaW5kZXggJyArIGluZGV4ICsgJyBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGlucHV0IG9wdGlvbnMgc28gYXMgbm90IHRvIGFsdGVyIHRoZW1cbiAgb3B0aW9ucyA9IF8uY2xvbmVEZWVwKG9wdGlvbnMpO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBkZWZpbml0aW9uIGlmIGl0IGlzIGEgcGF0aC9VUkxcbiAgYWxsVGFza3MgPSBhbGxUYXNrc1xuICAgIC8vIExvYWQgdGhlIHJlbW90ZSBkZWZpbml0aW9uIG9yIHJldHVybiBvcHRpb25zLmRlZmluaXRpb25cbiAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoXy5pc1N0cmluZyhvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBwYXRoTG9hZGVyLmxvYWQob3B0aW9ucy5kZWZpbml0aW9uLCBvcHRpb25zLmxvYWRlck9wdGlvbnMgfHwge30pLnRoZW4oWUFNTC5zYWZlTG9hZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5kZWZpbml0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIFByb2Nlc3MgdGhlIFN3YWdnZXIgZGVmaW5pdGlvbiAoaWYgcG9zc2libGUpXG4gIGFsbFRhc2tzID0gYWxsVGFza3NcbiAgICAudGhlbihmdW5jdGlvbiAoYXBpRGVmaW5pdGlvbikge1xuICAgICAgdmFyIGRlZmluaXRpb24gPSBfLmZpbmQoc3VwcG9ydGVkVmVyc2lvbnMsIGZ1bmN0aW9uIChwRGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gcERlZmluaXRpb24uY2FuUHJvY2VzcyhhcGlEZWZpbml0aW9uKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChkZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmFibGUgdG8gaWRlbnRpZnkgdGhlIFN3YWdnZXIgdmVyc2lvbiBvciB0aGUgU3dhZ2dlciB2ZXJzaW9uIGlzIHVuc3VwcG9ydGVkJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uLmNyZWF0ZVN3YWdnZXJBcGkoYXBpRGVmaW5pdGlvbiwgb3B0aW9ucyk7XG4gICAgfSk7XG5cbiAgLy8gVXNlIHRoZSBjYWxsYmFjayBpZiBwcm92aWRlZCBhbmQgaXQgaXMgYSBmdW5jdGlvblxuICBpZiAoIV8uaXNVbmRlZmluZWQoY2FsbGJhY2spICYmIF8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICBhbGxUYXNrcyA9IGFsbFRhc2tzXG4gICAgICAudGhlbihmdW5jdGlvbiAoc3dhZ2dlckFwaSkge1xuICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIHN3YWdnZXJBcGkpO1xuICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4gYWxsVGFza3M7XG59O1xuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSAod2luZG93Ll8pO1xudmFyIG1vY2tlciA9IHJlcXVpcmUoJ2pzb24tc2NoZW1hLWZha2VyJyk7XG52YXIgWlNjaGVtYSA9IHJlcXVpcmUoJ3otc2NoZW1hJyk7XG5cbnZhciBkcmFmdDA0SnNvbiA9IHJlcXVpcmUoJy4vanNvbi1zY2hlbWEtZHJhZnQtMDQuanNvbicpO1xudmFyIGRyYWZ0MDRVcmwgPSAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEnO1xuXG5mdW5jdGlvbiByZW1vdmVWYWxpZGF0aW9uRXJyb3JQYXJhbXMgKG9iaikge1xuICBkZWxldGUgb2JqLnBhcmFtcztcblxuICBpZiAob2JqLmlubmVyKSB7XG4gICAgXy5lYWNoKG9iai5pbm5lciwgZnVuY3Rpb24gKG5PYmopIHtcbiAgICAgIHJlbW92ZVZhbGlkYXRpb25FcnJvclBhcmFtcyhuT2JqKTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGEgSlNPTiBTY2hlbWEgTW9ja2VyLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBUaGUgbW9ja2VyIG9wdGlvbnNcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5mb3JtYXRHZW5lcmF0b3JzXSAtIFRoZSBjdXN0b20gZm9ybWF0IGdlbmVyYXRvcnMgdG8gdXNlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hIG1vY2tlclxuICovXG5tb2R1bGUuZXhwb3J0cy5jcmVhdGVKU09OU2NoZW1hTW9ja2VyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjdXN0b20gZm9ybWF0IGdlbmVyYXRvcnNcbiAgXy5lYWNoKG9wdGlvbnMuZm9ybWF0R2VuZXJhdG9ycywgZnVuY3Rpb24gKGhhbmRsZXIsIG5hbWUpIHtcbiAgICBtb2NrZXIuZm9ybWF0cyhuYW1lLCBoYW5kbGVyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1vY2tlcjtcbn07XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSBKU09OIFZhbGlkYXRvci5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gVGhlIHZhbGlkYXRvciBvcHRpb25zXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuZm9ybWF0VmFsaWRhdG9yc10gLSBUaGUgY3VzdG9tIGZvcm1hdCB2YWxpZGF0b3JzIHRvIHVzZVxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSBKU09OIFNjaGVtYSB2YWxpZGF0b3JcbiAqL1xubW9kdWxlLmV4cG9ydHMuY3JlYXRlSlNPTlZhbGlkYXRvciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIHZhciB2YWxpZGF0b3IgPSBuZXcgWlNjaGVtYSh7XG4gICAgcmVwb3J0UGF0aEFzQXJyYXk6IHRydWVcbiAgfSk7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgLy8gQWRkIHRoZSBkcmFmdC0wNCBzcGVjXG4gIHZhbGlkYXRvci5zZXRSZW1vdGVSZWZlcmVuY2UoZHJhZnQwNFVybCwgZHJhZnQwNEpzb24pO1xuXG4gIC8vIEFkZCB0aGUgY3VzdG9tIHZhbGlkYXRvcnNcbiAgXy5lYWNoKG9wdGlvbnMuZm9ybWF0VmFsaWRhdG9ycywgZnVuY3Rpb24gKGhhbmRsZXIsIG5hbWUpIHtcbiAgICBaU2NoZW1hLnJlZ2lzdGVyRm9ybWF0KG5hbWUsIGhhbmRsZXIpO1xuICB9KTtcblxuICByZXR1cm4gdmFsaWRhdG9yO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHByb3ZpZGVkIHZhbHVlIGFnYWluc3QgdGhlIEpTT04gU2NoZW1hIGJ5IG5hbWUgb3IgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHZhbGlkYXRvciAtIFRoZSBKU09OIFNjaGVtYSB2YWxpZGF0b3IgY3JlYXRlZCB2aWEge0BsaW5rICNjcmVhdGVKU09OVmFsaWRhdG9yfVxuICogQHBhcmFtIHtvYmplY3R9IHNjaGVtYSAtIFRoZSBKU09OIFNjaGVtYVxuICogQHBhcmFtIHsqfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIG9mIHRoZSB2YWxpZGF0aW9uXG4gKi9cbm1vZHVsZS5leHBvcnRzLnZhbGlkYXRlQWdhaW5zdFNjaGVtYSA9IGZ1bmN0aW9uICh2YWxpZGF0b3IsIHNjaGVtYSwgdmFsdWUpIHtcbiAgc2NoZW1hID0gXy5jbG9uZURlZXAoc2NoZW1hKTsgLy8gQ2xvbmUgdGhlIHNjaGVtYSBhcyB6LXNjaGVtYSBhbHRlcnMgdGhlIHByb3ZpZGVkIGRvY3VtZW50XG5cbiAgdmFyIHJlc3BvbnNlID0ge1xuICAgIGVycm9yczogW10sXG4gICAgd2FybmluZ3M6IFtdXG4gIH07XG5cbiAgaWYgKCF2YWxpZGF0b3IudmFsaWRhdGUodmFsdWUsIHNjaGVtYSkpIHtcbiAgICByZXNwb25zZS5lcnJvcnMgPSBfLm1hcCh2YWxpZGF0b3IuZ2V0TGFzdEVycm9ycygpLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICByZW1vdmVWYWxpZGF0aW9uRXJyb3JQYXJhbXMoZXJyKTtcblxuICAgICAgcmV0dXJuIGVycjtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gICAgXCJpZFwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiLFxuICAgIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJDb3JlIHNjaGVtYSBtZXRhLXNjaGVtYVwiLFxuICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICBcInNjaGVtYUFycmF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3NpdGl2ZUludGVnZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJtaW5pbXVtXCI6IDBcbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiOiB7XG4gICAgICAgICAgICBcImFsbE9mXCI6IFsgeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sIHsgXCJkZWZhdWx0XCI6IDAgfSBdXG4gICAgICAgIH0sXG4gICAgICAgIFwic2ltcGxlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJlbnVtXCI6IFsgXCJhcnJheVwiLCBcImJvb2xlYW5cIiwgXCJpbnRlZ2VyXCIsIFwibnVsbFwiLCBcIm51bWJlclwiLCBcIm9iamVjdFwiLCBcInN0cmluZ1wiIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzdHJpbmdBcnJheVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7IFwidHlwZVwiOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCIkc2NoZW1hXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHt9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcIm1pbmltdW1cIjogMCxcbiAgICAgICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIiB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInJlZ2V4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcInR5cGVcIjogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCIgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIiB9LFxuICAgICAgICBcIm1pblByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCIgfSxcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXlcIiB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHsgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjXCIgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheVwiIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXNcIiB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxPZlwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9LFxuICAgICAgICBcImFueU9mXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH0sXG4gICAgICAgIFwib25lT2ZcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCIgfSxcbiAgICAgICAgXCJub3RcIjogeyBcIiRyZWZcIjogXCIjXCIgfVxuICAgIH0sXG4gICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjogWyBcIm1heGltdW1cIiBdLFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjogWyBcIm1pbmltdW1cIiBdXG4gICAgfSxcbiAgICBcImRlZmF1bHRcIjoge31cbn1cbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gKHdpbmRvdy5fKTtcbnZhciBkZWJ1ZyA9IHJlcXVpcmUoJ2RlYnVnJykoJ3N3YWdnZXItY29yZS1hcGknKTtcblxuLyoqXG4gKiBUaGUgU3dhZ2dlciBPcGVyYXRpb24gb2JqZWN0LlxuICpcbiAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRG8gbm90IHVzZSBkaXJlY3RseS5cbiAqXG4gKiBAcGFyYW0ge1N3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyIEFQSSBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gVGhlIG9wZXJhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gVGhlIG9wZXJhdGlvbiBtZXRob2RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwdHIgLSBUaGUgSlNPTiBQb2ludGVyIHRvIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIG9wZXJhdGlvbiBkZWZpbml0aW9uXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIE9wZXJhdGlvbiAoYXBpLCBwYXRoLCBtZXRob2QsIHB0ciwgZGVmaW5pdGlvbikge1xuICB0aGlzLmFwaSA9IGFwaTtcbiAgdGhpcy5wYXRoID0gcGF0aDtcbiAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gIHRoaXMucHRyID0gcHRyO1xuICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuXG4gIC8vIEFzc2lnbiBTd2FnZ2VyIGRlZmluaXRpb24gcHJvcGVydGllcyB0byB0aGUgb3BlcmF0aW9uIGZvciBlYXN5IGFjY2Vzc1xuICBfLmFzc2lnbih0aGlzLCBkZWZpbml0aW9uKTtcblxuICBkZWJ1ZygnRm91bmQgb3BlcmF0aW9uIGF0ICVzJywgcHRyKTtcblxuICB0aGlzLnBhcmFtZXRlck9iamVjdHMgPSBhcGkucGx1Z2luLmdldE9wZXJhdGlvblBhcmFtZXRlcnModGhpcyk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbGwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi5cbiAqXG4gKiBAcmV0dXJucyB7UGFyYW1ldGVyW119IEFsbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLlxuICovXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnBhcmFtZXRlck9iamVjdHM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIEpTT04gU2NoZW1hIGZvciB0aGUgcmVxdWVzdGVkIGNvZGUgb3IgdGhlIGRlZmF1bHQgcmVzcG9uc2UgaWYgbm8gY29kZSBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IFtjb2RlPWRlZmF1bHRdIC0gVGhlIHJlc3BvbnNlIGNvZGVcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgSlNPTiBTY2hlbWEgZm9yIHRoZSByZXNwb25zZSwgd2hpY2ggY2FuIGJlIHVuZGVmaW5lZCBpZiB0aGUgcmVzcG9uc2Ugc2NoZW1hIGlzIG5vdCBwcm92aWRlZFxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBUaHJvd24gd2hlbmV2ZXIgdGhlIHJlcXVlc3RlZCBjb2RlIGRvZXMgbm90IGV4aXN0IChUaHJvd2luZyBhbiBlcnJvciBpbnN0ZWFkIG9mIHJldHVybmluZyB1bmRlZmluZWRcbiAqICAgICAgICAgICAgICAgICBpcyByZXF1aXJlZCBkdWUgdG8gdW5kZWZpbmVkIGJlaW5nIGEgdmFsaWQgcmVzcG9uc2Ugc2NoZW1hIGluZGljYXRpbmcgYSB2b2lkIHJlc3BvbnNlKVxuICovXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFJlc3BvbnNlU2NoZW1hID0gZnVuY3Rpb24gKGNvZGUpIHtcbiAgdmFyIHJlc3BvbnNlO1xuXG4gIGlmIChfLmlzVW5kZWZpbmVkKGNvZGUpKSB7XG4gICAgY29kZSA9ICdkZWZhdWx0JztcbiAgfSBlbHNlIGlmIChfLmlzTnVtYmVyKGNvZGUpKSB7XG4gICAgY29kZSA9IChNYXRoLmZsb29yKDEwMCAqIGNvZGUpIC8gMTAwKS50b0ZpeGVkKCk7IC8vIE92ZXJseSBjYXV0aW91cyBidXQgb2ggd2VsbC4uLlxuICB9XG5cbiAgcmVzcG9uc2UgPSB0aGlzLmRlZmluaXRpb24ucmVzcG9uc2VzW2NvZGVdO1xuXG4gIGlmIChfLmlzVW5kZWZpbmVkKHJlc3BvbnNlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBvcGVyYXRpb24gZG9lcyBub3QgaGF2ZSBhIGRlZmluZWQgXFwnJyArIGNvZGUgKyAnXFwnIHJlc3BvbnNlIGNvZGUnKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmVzcG9uc2Uuc2NoZW1hO1xuICB9XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSBzYW1wbGUgdmFsdWUgYmFzZWQgb24gdGhlIHJlcXVlc3RlZCBjb2RlIG9yIHRoZSBkZWZhdWx0IHJlc3BvbnNlIGlmIG5vIGNvZGUgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBbY29kZT1kZWZhdWx0XSAtIFRoZSByZXNwb25zZSBjb2RlXG4gKlxuICogQHJldHVybnMgeyp9IFRoZSBzYW1wbGUgdmFsdWUgZm9yIHRoZSByZXNwb25zZSwgd2hpY2ggY2FuIGJlIHVuZGVmaW5lZCBpZiB0aGUgcmVzcG9uc2Ugc2NoZW1hIGlzIG5vdCBwcm92aWRlZFxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBUaHJvd24gd2hlbmV2ZXIgdGhlIHJlcXVlc3RlZCBjb2RlIGRvZXMgbm90IGV4aXN0IChUaHJvd2luZyBhbiBlcnJvciBpbnN0ZWFkIG9mIHJldHVybmluZyB1bmRlZmluZWRcbiAqICAgICAgICAgICAgICAgICBpcyByZXF1aXJlZCBkdWUgdG8gdW5kZWZpbmVkIGJlaW5nIGEgdmFsaWQgcmVzcG9uc2Ugc2NoZW1hIGluZGljYXRpbmcgYSB2b2lkIHJlc3BvbnNlKVxuICovXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFJlc3BvbnNlU2FtcGxlID0gZnVuY3Rpb24gKGNvZGUpIHtcbiAgdmFyIHNjaGVtYSA9IHRoaXMuZ2V0UmVzcG9uc2VTY2hlbWEoY29kZSk7XG4gIHZhciBzYW1wbGU7XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKHNjaGVtYSkpIHtcbiAgICBzYW1wbGUgPSB0aGlzLmFwaS5wbHVnaW4uZ2V0U2FtcGxlKHNjaGVtYSk7XG4gIH1cblxuICByZXR1cm4gc2FtcGxlO1xufTtcblxuLyoqXG4gKiBUaGUgU3dhZ2dlciBQYXJhbWV0ZXIgb2JqZWN0LlxuICpcbiAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRG8gbm90IHVzZSBkaXJlY3RseS5cbiAqXG4gKiBAcGFyYW0ge09wZXJhdGlvbn0gb3BlcmF0aW9uIC0gVGhlIFN3YWdnZXIgT3BlcmF0aW9uIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IHB0ciAtIFRoZSBKU09OIFBvaW50ZXIgdG8gdGhlIHBhcmFtZXRlclxuICogQHBhcmFtIHtvYmplY3R9IGRlZmluaXRpb24gLSBUaGUgcGFyYW1ldGVyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBzY2hlbWEgLSBUaGUgSlNPTiBTY2hlbWEgZm9yIHRoZSBwYXJhbWV0ZXJcbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gUGFyYW1ldGVyIChvcGVyYXRpb24sIHB0ciwgZGVmaW5pdGlvbiwgc2NoZW1hKSB7XG4gIHRoaXMub3BlcmF0aW9uID0gb3BlcmF0aW9uO1xuICB0aGlzLnB0ciA9IHB0cjtcbiAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgdGhpcy5jb21wdXRlZFNjaGVtYSA9IHNjaGVtYTtcblxuICAvLyBBc3NpZ24gU3dhZ2dlciBkZWZpbml0aW9uIHByb3BlcnRpZXMgdG8gdGhlIHBhcmFtZXRlciBmb3IgZWFzeSBhY2Nlc3NcbiAgXy5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG5cbiAgZGVidWcoJ0ZvdW5kIG9wZXJhdGlvbiBwYXJhbWV0ZXIgKCVzICVzKSBhdCAlcycsIG9wZXJhdGlvbi5tZXRob2QudG9VcHBlckNhc2UoKSwgb3BlcmF0aW9uLnBhdGgsIHB0cik7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY29tcHV0ZWQgSlNPTiBTY2hlbWEgZm9yIHRoaXMgcGFyYW1ldGVyIG9iamVjdC5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgSlNPTiBTY2hlbWFcbiAqL1xuUGFyYW1ldGVyLnByb3RvdHlwZS5nZXRTY2hlbWEgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmNvbXB1dGVkU2NoZW1hO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgc2FtcGxlIHZhbHVlIGZvciB0aGUgcGFyYW1ldGVyIGJhc2VkIG9uIGl0cyBzY2hlbWE7XG4gKlxuICogQHJldHVybnMgeyp9IFRoZSBzYW1wbGUgdmFsdWVcbiAqL1xuUGFyYW1ldGVyLnByb3RvdHlwZS5nZXRTYW1wbGUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzYW1wbGU7XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuY29tcHV0ZWRTY2hlbWEpKSB7XG4gICAgc2FtcGxlID0gdGhpcy5vcGVyYXRpb24uYXBpLnBsdWdpbi5nZXRTYW1wbGUodGhpcy5jb21wdXRlZFNjaGVtYSk7XG4gIH1cblxuICByZXR1cm4gc2FtcGxlO1xufTtcblxuLyoqXG4gKiBDYWxsYmFjayB1c2VkIGZvciB2YWxpZGF0aW9uLlxuICpcbiAqIEBwYXJhbSB7U3dhZ2dlckFwaX0gYXBpIC0gVGhlIFN3YWdnZXIgQVBJIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIG9mIHRoZSB2YWxpZGF0aW9uXG4gKlxuICogQGNhbGxiYWNrIHZhbGlkYXRvckNhbGxiYWNrXG4gKi9cblxuLyoqXG4gKiBUaGUgU3dhZ2dlciBBUEkgb2JqZWN0LlxuICpcbiAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRG8gbm90IHVzZSBkaXJlY3RseS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gcGx1Z2luIC0gVGhlIFN3YWdnZXIgdmVyc2lvbiBwbHVnaW5cbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIFN3YWdnZXIgZGVmaW5pdGlvblxuICogQHBhcmFtIHtvYmplY3R9IHJlc29sdmVkIC0gVGhlIGZ1bGx5IHJlc29sdmVkIFN3YWdnZXIgZGVmaW5pdGlvblxuICogQHBhcmFtIHtvYmplY3R9IHJlZmVyZW5jZXMgLSBUaGUgbG9jYXRpb24gYW5kIHJlc29sdXRpb24gb2YgdGhlIHJlc29sdmVkIHJlZmVyZW5jZXMgaW4gdGhlIFN3YWdnZXIgZGVmaW5pdGlvblxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBwYXNzZWQgdG8gc3dhZ2dlckFwaS5jcmVhdGVcbiAqIEBwYXJhbSB7dmFsaWRhdG9yQ2FsbGJhY2tbXX0gW29wdGlvbnMuY3VzdG9tVmFsaWRhdG9yc10gLSBUaGUgY3VzdG9tIHZhbGlkYXRvcnNcbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gU3dhZ2dlckFwaSAocGx1Z2luLCBkZWZpbml0aW9uLCByZXNvbHZlZCwgcmVmZXJlbmNlcywgb3B0aW9ucykge1xuICB0aGlzLmN1c3RvbVZhbGlkYXRvcnMgPSBbXTtcbiAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgdGhpcy5kb2N1bWVudGF0aW9uID0gcGx1Z2luLmRvY3VtZW50YXRpb247XG4gIHRoaXMuZXJyb3JzID0gdW5kZWZpbmVkO1xuICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcbiAgdGhpcy5yZWZlcmVuY2VzID0gcmVmZXJlbmNlcztcbiAgdGhpcy5yZXNvbHZlZCA9IHJlc29sdmVkO1xuICB0aGlzLnZlcnNpb24gPSBwbHVnaW4udmVyc2lvbjtcbiAgdGhpcy53YXJuaW5ncyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAvLyBBc3NpZ24gU3dhZ2dlciBkZWZpbml0aW9uIHByb3BlcnRpZXMgdG8gdGhlIGFwaSBmb3IgZWFzeSBhY2Nlc3NcbiAgXy5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG5cbiAgZGVidWcoJ05ldyBTd2FnZ2VyIEFQSSAoJXMpJywgXy5pc1N0cmluZyhvcHRpb25zLmRlZmluaXRpb24pID8gb3B0aW9ucy5kZWZpbml0aW9uIDogJ0phdmFTY3JpcHQgT2JqZWN0Jyk7XG5cbiAgdGhpcy5vcGVyYXRpb25PYmplY3RzID0gcGx1Z2luLmdldE9wZXJhdGlvbnModGhpcyk7XG5cbiAgLy8gUmVnaXN0ZXIgY3VzdG9tIHZhbGlkYXRvcnNcbiAgXy5mb3JFYWNoKG9wdGlvbnMudmFsaWRhdG9ycywgdGhpcy5yZWdpc3RlclZhbGlkYXRvcik7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZXJyb3JzIGZyb20gdGhlIGxhc3QgdmFsaWRhdGUgY2FsbC5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0W119IFRoZSBlcnJvcnMgZnJvbSB0aGUgcHJldmlvdXMgY2FsbCB0byB2YWxpZGF0ZSBvciB1bmRlZmluZWQgaWYgdmFsaWRhdGUgd2FzIG5ldmVyIGNhbGxlZFxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRMYXN0RXJyb3JzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5lcnJvcnM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHdhcm5pbmdzIGZyb20gdGhlIGxhc3QgdmFsaWRhdGUgY2FsbC5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0W119IFRoZSB3YXJuaW5ncyBmcm9tIHRoZSBwcmV2aW91cyBjYWxsIHRvIHZhbGlkYXRlIG9yIHVuZGVmaW5lZCBpZiB2YWxpZGF0ZSB3YXMgbmV2ZXIgY2FsbGVkXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLmdldExhc3RXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMud2FybmluZ3M7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9wZXJhdGlvbiBmb3IgdGhlIHByb3ZpZGVkIHBhdGggYW5kIG1ldGhvZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSBTd2FnZ2VyIHBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2QgLSBUaGUgU3dhZ2dlciBvcGVyYXRpb24gbWV0aG9kXG4gKlxuICogQHJldHVybnMge09wZXJhdGlvbn0gVGhlIG9wZXJhdGlvbiBmb3IgdGhlIHByb3ZpZGVkIHBhdGggYW5kIG1ldGhvZCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gb3BlcmF0aW9uIGZvciB0aGF0XG4gKiAgICAgICAgICAgICAgICAgICAgICBwYXRoIGFuZCBtZXRob2QgY29tYmluYXRpb24uXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLmdldE9wZXJhdGlvbiA9IGZ1bmN0aW9uIChwYXRoLCBtZXRob2QpIHtcbiAgcmV0dXJuIF8uZmluZCh0aGlzLm9wZXJhdGlvbk9iamVjdHMsIGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICByZXR1cm4gb3BlcmF0aW9uLnBhdGggPT09IHBhdGggJiYgb3BlcmF0aW9uLm1ldGhvZCA9PT0gbWV0aG9kLnRvTG93ZXJDYXNlKCk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBvcGVyYXRpb25zIGZvciB0aGUgcHJvdmlkZWQgcGF0aCBvciBhbGwgb3BlcmF0aW9ucyBpbiB0aGUgQVBJLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcGF0aF0gLSBUaGUgU3dhZ2dlciBwYXRoXG4gKlxuICogQHJldHVybnMge09wZXJhdGlvbltdfSBBbGwgb3BlcmF0aW9ucyBmb3IgdGhlIHByb3ZpZGVkIHBhdGggb3IgYWxsIEFQSSBvcGVyYXRpb25zLlxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRPcGVyYXRpb25zID0gZnVuY3Rpb24gKHBhdGgpIHtcbiAgcmV0dXJuIF8uZmlsdGVyKHRoaXMub3BlcmF0aW9uT2JqZWN0cywgZnVuY3Rpb24gKG9wZXJhdGlvbikge1xuICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKHBhdGgpID8gdHJ1ZSA6IG9wZXJhdGlvbi5wYXRoID09PSBwYXRoO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmVnaXN0ZXJzIGEgdmFsaWRhdG9yLlxuICpcbiAqIEBwYXJhbSB7dmFsaWRhdG9yQ2FsbGJhY2t9IHZhbGlkYXRvciAtIFRoZSB2YWxpZGF0b3JcbiAqXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IElmIHRoZSB2YWxpZGF0b3IgaXMgbm90IGEgZnVuY3Rpb25cbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUucmVnaXN0ZXJWYWxpZGF0b3IgPSBmdW5jdGlvbiAodmFsaWRhdG9yKSB7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHZhbGlkYXRvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWxpZGF0b3IgaXMgcmVxdWlyZWQnKTtcbiAgfSBlbHNlIGlmICghXy5pc0Z1bmN0aW9uKHZhbGlkYXRvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWxpZGF0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICB0aGlzLmN1c3RvbVZhbGlkYXRvcnMucHVzaCh2YWxpZGF0b3IpO1xufTtcblxuLyoqXG4gKiBQZXJmb3JtcyB2YWxpZGF0aW9uIG9mIHRoZSBTd2FnZ2VyIEFQSSBkb2N1bWVudChzKS5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBhbGwgdmFsaWRhdG9ycyBwcm9kdWNlIHplcm8gZXJyb3JzIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBSZXNldCB0aGUgZXJyb3JzIGFuZCB3YXJuaW5nc1xuICB0aGlzLmVycm9ycyA9IFtdO1xuICB0aGlzLndhcm5pbmdzID0gW107XG5cbiAgZnVuY3Rpb24gZG9WYWxpZGF0aW9uICh2YWxpZGF0b3IpIHtcbiAgICB2YXIgcmVzdWx0cyA9IHZhbGlkYXRvcihzZWxmKTtcblxuICAgIGlmIChyZXN1bHRzLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxmLmVycm9ycyA9IHNlbGYuZXJyb3JzLmNvbmNhdChyZXN1bHRzLmVycm9ycyk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMud2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZi53YXJuaW5ncyA9IHNlbGYud2FybmluZ3MuY29uY2F0KHJlc3VsdHMud2FybmluZ3MpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmFsbHlcbiAgZG9WYWxpZGF0aW9uKHRoaXMucGx1Z2luLmdldEpTT05TY2hlbWFWYWxpZGF0b3IoKSk7XG5cbiAgLy8gUGVyZm9ybSByZW1haW5pbmcgdmFsaWRhdGlvbiBvbmx5IGlmIHRoZSBkb2N1bWVudCBpcyBzdHJ1Y3R1cmFsbHkgdmFsaWRcbiAgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIFJ1biBwbHVnaW4gdmFsaWRhdG9yc1xuICAgIF8uZm9yRWFjaCh0aGlzLnBsdWdpbi5nZXRTZW1hbnRpY1ZhbGlkYXRvcnMoKSwgZG9WYWxpZGF0aW9uKTtcblxuICAgIC8vIFJ1biBjdXN0b20gdmFsaWRhdG9yc1xuICAgIF8uZm9yRWFjaCh0aGlzLmN1c3RvbVZhbGlkYXRvcnMsIGRvVmFsaWRhdGlvbik7XG4gIH1cblxuICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID09PSAwO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIE9wZXJhdGlvbjogT3BlcmF0aW9uLFxuICBQYXJhbWV0ZXI6IFBhcmFtZXRlcixcbiAgU3dhZ2dlckFwaTogU3dhZ2dlckFwaVxufTtcbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gKHdpbmRvdy5fKTtcbnZhciBCYXNlNjQgPSByZXF1aXJlKCdqcy1iYXNlNjQnKS5CYXNlNjQ7XG52YXIgc3RyaW5nTW9ja2VyID0gcmVxdWlyZSgnanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL3N0cmluZycpO1xuXG4vLyBCdWlsZCB0aGUgbGlzdCBvZiBjdXN0b20gSlNPTiBTY2hlbWEgZ2VuZXJhdG9yIGZvcm1hdHNcbm1vZHVsZS5leHBvcnRzLmJ5dGUgPSBmdW5jdGlvbiAoZ2VuLCBzY2hlbWEpIHtcbiAgdmFyIGNTY2hlbWEgPSBfLmNsb25lRGVlcChzY2hlbWEpO1xuICB2YXIgc2FtcGxlO1xuXG4gIGRlbGV0ZSBjU2NoZW1hLmZvcm1hdDtcblxuICBzYW1wbGUgPSBzdHJpbmdNb2NrZXIoY1NjaGVtYSk7XG5cbiAgcmV0dXJuIEJhc2U2NC5lbmNvZGUoc2FtcGxlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLnBhc3N3b3JkID0gZnVuY3Rpb24gKGdlbiwgc2NoZW1hKSB7XG4gIHJldHVybiBzdHJpbmdNb2NrZXIoc2NoZW1hKTtcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9ICh3aW5kb3cuXyk7XG5cbm1vZHVsZS5leHBvcnRzLmludDMyID0gbW9kdWxlLmV4cG9ydHMuaW50NjQgPSBmdW5jdGlvbiAodmFsKSB7XG4gIHZhciB2YWxpZCA9IHRydWU7XG4gIHZhciBjVmFsO1xuXG4gIGlmICghXy5pc051bWJlcih2YWwpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNWYWwgPSBwYXJzZUludCh2YWwsIDEwKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKF8uaXNOdW1iZXIoY1ZhbCkpIHtcbiAgICB2YWxpZCA9IGNWYWwgJSAxID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkO1xufTtcblxubW9kdWxlLmV4cG9ydHMuZG91YmxlID0gbW9kdWxlLmV4cG9ydHMuZmxvYXQgPSBmdW5jdGlvbiAodmFsKSB7XG4gIHZhciB2YWxpZCA9IHRydWU7XG5cbiAgaWYgKCFfLmlzTnVtYmVyKHZhbCkpIHtcbiAgICB0cnkge1xuICAgICAgcGFyc2VGbG9hdCh2YWwpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ieXRlID0gZnVuY3Rpb24gKHZhbCkge1xuICAvLyBUT0RPOiBXZSBjb3VsZCBkbyBtb3JlIGhlcmUgc2luY2UgdGVjaG5pY2FsbHkgJ2J5dGUnIG1lYW5zIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nXG4gIHJldHVybiBfLmlzU3RyaW5nKHZhbCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5wYXNzd29yZCA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgcmV0dXJuIF8uaXNTdHJpbmcodmFsKTtcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9ICh3aW5kb3cuXyk7XG52YXIgZm9ybWF0R2VuZXJhdG9ycyA9IHJlcXVpcmUoJy4vZm9ybWF0LWdlbmVyYXRvcnMnKTtcbnZhciB2YWxpZGF0b3JzID0gcmVxdWlyZSgnLi92YWxpZGF0b3JzJyk7XG52YXIgaGVscGVycyA9IHJlcXVpcmUoJy4uLy4uL2hlbHBlcnMnKTtcbnZhciBKc29uUmVmcyA9ICh3aW5kb3cuSnNvblJlZnMpO1xudmFyIHR5cGVzID0gcmVxdWlyZSgnLi4vLi4vdHlwZXMnKTtcblxudmFyIGRvY3NVcmwgPSAnaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItc3BlYy9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQnO1xudmFyIG1vY2tlciA9IGhlbHBlcnMuY3JlYXRlSlNPTlNjaGVtYU1vY2tlcih7XG4gIGZvcm1hdEdlbmVyYXRvcnM6IGZvcm1hdEdlbmVyYXRvcnNcbn0pO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItc3BlYy9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQjcGFyYW1ldGVyLW9iamVjdFxudmFyIHBhcmFtZXRlclNjaGVtYVByb3BlcnRpZXMgPSBbXG4gICdkZWZhdWx0JyxcbiAgJ2Rlc2NyaXB0aW9uJyxcbiAgJ2VudW0nLFxuICAnZXhjbHVzaXZlTWF4aW11bScsXG4gICdleGNsdXNpdmVNaW5pbXVtJyxcbiAgJ2Zvcm1hdCcsXG4gICdpdGVtcycsXG4gICdtYXhJdGVtcycsXG4gICdtYXhMZW5ndGgnLFxuICAnbWF4aW11bScsXG4gICdtaW5JdGVtcycsXG4gICdtaW5MZW5ndGgnLFxuICAnbWluaW11bScsXG4gICdtdWx0aXBsZU9mJyxcbiAgJ3BhdHRlcm4nLFxuICAndHlwZScsXG4gICd1bmlxdWVJdGVtcydcbl07XG52YXIgc3VwcG9ydGVkSHR0cE1ldGhvZHMgPSBbJ2dldCcsICdwdXQnLCAncG9zdCcsICdkZWxldGUnLCAnb3B0aW9ucycsICdoZWFkJywgJ3BhdGNoJ107XG52YXIgdmVyc2lvbiA9ICcyLjAnO1xuXG5mdW5jdGlvbiBnZXRQYXJhbWV0ZXJTY2hlbWEgKHBhcmFtZXRlcikge1xuICB2YXIgc2NoZW1hO1xuXG4gIGlmIChfLmlzVW5kZWZpbmVkKHBhcmFtZXRlci5zY2hlbWEpKSB7XG4gICAgc2NoZW1hID0ge307XG5cbiAgICAvLyBCdWlsZCB0aGUgc2NoZW1hIGZyb20gdGhlIHNjaGVtYS1saWtlIHBhcmFtZXRlciBzdHJ1Y3R1cmVcbiAgICBfLmVhY2gocGFyYW1ldGVyU2NoZW1hUHJvcGVydGllcywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZChwYXJhbWV0ZXJbbmFtZV0pKSB7XG4gICAgICAgIHNjaGVtYVtuYW1lXSA9IHBhcmFtZXRlcltuYW1lXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBzY2hlbWEgPSBwYXJhbWV0ZXIuc2NoZW1hO1xuICB9XG5cbiAgcmV0dXJuIHNjaGVtYTtcbn1cblxuLy8gVGhlIFVSTCB0byB0aGUgU3dhZ2dlciAyLjAgZG9jdW1lbnRhdGlvblxubW9kdWxlLmV4cG9ydHMuZG9jdW1lbnRhdGlvbiA9IGRvY3NVcmw7XG5cbi8vIFRoZSBhcnJheSBvZiBzdXBwb3J0ZWQgSFRUUCBtZXRob2RzIGZvciBlYWNoIHBhdGhcbm1vZHVsZS5leHBvcnRzLnN1cHBvcnRlZEh0dHBNZXRob2RzID0gc3VwcG9ydGVkSHR0cE1ldGhvZHM7XG5cbi8vIFRoZSB2ZXJzaW9uIGZvciB0aGlzIFN3YWdnZXIgdmVyc2lvblxubW9kdWxlLmV4cG9ydHMudmVyc2lvbiA9IHZlcnNpb247XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcHJvdmlkZWQgZGVmaW5pdGlvbiBjYW4gYmUgcHJvY2Vzc2VkLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIHBvdGVudGlhbCBTd2FnZ2VyIGRlZmluaXRpb24gdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIHRydWUgb25seSBpZiB0aGUgZGVmaW5pdGlvbiByZXByZXNlbnRzIGEgU3dhZ2dlciAyLjAgZGVmaW5pdGlvblxuICovXG5tb2R1bGUuZXhwb3J0cy5jYW5Qcm9jZXNzID0gZnVuY3Rpb24gKGRlZmluaXRpb24pIHtcbiAgcmV0dXJuIGRlZmluaXRpb24uc3dhZ2dlciA9PT0gdmVyc2lvbjtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIFN3YWdnZXJBcGkgb2JqZWN0IGZyb20gdGhlIHByb3ZpZGVkIFN3YWdnZXIgZGVmaW5pdGlvbi5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmaW5pdGlvbiAtIFRoZSBTd2FnZ2VyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgcGFzc2VkIHRvIHN3YWdnZXJBcGkuY3JlYXRlXG4gKlxuICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRoZSBTd2FnZ2VyQXBpIGFmdGVyIHByb2Nlc3NpbmdcbiAqL1xubW9kdWxlLmV4cG9ydHMuY3JlYXRlU3dhZ2dlckFwaSA9IGZ1bmN0aW9uIChkZWZpbml0aW9uLCBvcHRpb25zKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgSnNvblJlZnMucmVzb2x2ZVJlZnMoZGVmaW5pdGlvbiwgb3B0aW9ucy5sb2FkZXJPcHRpb25zIHx8IHt9LCBmdW5jdGlvbiAoZXJyLCByZXNvbHZlZCwgbWV0YWRhdGEpIHtcbiAgICAgIHZhciBhcGk7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFwaSA9IG5ldyB0eXBlcy5Td2FnZ2VyQXBpKG1vZHVsZS5leHBvcnRzLCBkZWZpbml0aW9uLCByZXNvbHZlZCwgbWV0YWRhdGEsIG9wdGlvbnMpO1xuXG4gICAgICAgIHJlc29sdmUoYXBpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB1c2VkIHRvIHZhbGlkYXRlIFN3YWdnZXIgMi4wIGRvY3VtZW50cyBhZ2FpbnN0IGl0cyBKU09OIFNjaGVtYS5cbiAqXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259IFRoZSB2YWxpZGF0b3IgdG8gdXNlXG4gKi9cbm1vZHVsZS5leHBvcnRzLmdldEpTT05TY2hlbWFWYWxpZGF0b3IgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB2YWxpZGF0b3JzLmpzb25TY2hlbWFWYWxpZGF0b3I7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgT3BlcmF0aW9uIG9iamVjdHMgZm9yIGVhY2ggb3BlcmF0aW9uIGRlZmluZWQgaW4gdGhlIFN3YWdnZXIgZG9jdW1lbnRcbiAqXG4gKiBAcGFyYW0ge3R5cGVzLlN3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyIEFQSSBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7dHlwZXMuT3BlcmF0aW9uW119IFRoZSBPcGVyYXRpb24gb2JqZWN0IGFycmF5XG4gKi9cbm1vZHVsZS5leHBvcnRzLmdldE9wZXJhdGlvbnMgPSBmdW5jdGlvbiAoYXBpKSB7XG4gIHZhciBvcGVyYXRpb25zID0gW107XG5cbiAgXy5mb3JFYWNoKGFwaS5yZXNvbHZlZC5wYXRocywgZnVuY3Rpb24gKHBhdGhEZWYsIHBhdGgpIHtcbiAgICB2YXIgcFBhdGggPSBbJ3BhdGhzJywgcGF0aF07XG4gICAgdmFyIHBQYXJhbXMgPSBfLnJlZHVjZShwYXRoRGVmLnBhcmFtZXRlcnMgfHwge30sIGZ1bmN0aW9uIChwYXJhbWV0ZXJzLCBwYXJhbURlZiwgaW5kZXgpIHtcbiAgICAgIHBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZSArICc6JyArIHBhcmFtRGVmLmluXSA9IHtcbiAgICAgICAgcGF0aDogcFBhdGguY29uY2F0KFsncGFyYW1ldGVycycsIGluZGV4LnRvU3RyaW5nKCldKSxcbiAgICAgICAgZGVmaW5pdGlvbjogcGFyYW1EZWZcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICAgIH0sIHt9KTtcblxuICAgIF8uZm9yRWFjaChwYXRoRGVmLCBmdW5jdGlvbiAob3BlcmF0aW9uLCBtZXRob2QpIHtcbiAgICAgIC8vIERvIG5vdCBwcm9jZXNzIG5vbi1vcGVyYXRpb25zXG4gICAgICBpZiAoXy5pbmRleE9mKHN1cHBvcnRlZEh0dHBNZXRob2RzLCBtZXRob2QpID09PSAtMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBjT3BlcmF0aW9uID0gXy5jbG9uZURlZXAob3BlcmF0aW9uKTsgLy8gQ2xvbmUgc28gd2UgZG8gbm90IGFsdGVyIHRoZSBpbnB1dFxuICAgICAgdmFyIG9QYXJhbXMgPSB7fTsgLy8gVXNlZCB0byBrZWVwIHRyYWNrIG9mIHVuaXF1ZSBwYXJhbWV0ZXJzXG4gICAgICB2YXIgb1BhdGggPSBwUGF0aC5jb25jYXQobWV0aG9kKTtcblxuICAgICAgLy8gQWRkIHBhdGggcGFyYW1ldGVyc1xuICAgICAgXy5mb3JFYWNoKHBQYXJhbXMsIGZ1bmN0aW9uIChwUGFyYW0sIGtleSkge1xuICAgICAgICBvUGFyYW1zW2tleV0gPSBwUGFyYW07XG4gICAgICB9KTtcblxuICAgICAgLy8gQWRkIG9wZXJhdGlvbiBwYXJhbWV0ZXJzIChPdmVycmlkZXMgcGF0aC1sZXZlbCBwYXJhbWV0ZXJzIG9mIHNhbWUgbmFtZStpbiBjb21iaW5hdGlvbilcbiAgICAgIF8uZm9yRWFjaChvcGVyYXRpb24ucGFyYW1ldGVycywgZnVuY3Rpb24gKHBhcmFtRGVmLCBpbmRleCkge1xuICAgICAgICBvUGFyYW1zW3BhcmFtRGVmLm5hbWUgKyAnOicgKyBwYXJhbURlZi5pbl0gPSB7XG4gICAgICAgICAgcGF0aDogb1BhdGguY29uY2F0KFsncGFyYW1ldGVycycsIGluZGV4LnRvU3RyaW5nKCldKSxcbiAgICAgICAgICBkZWZpbml0aW9uOiBwYXJhbURlZlxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEF0dGFjaCBvdXIgY29tcHV0ZWQgcGFyYW1ldGVycy9zZWN1cml0eSB0byB0aGUgb3BlcmF0aW9uXG4gICAgICBjT3BlcmF0aW9uLnBhcmFtZXRlcnMgPSBfLm1hcChfLnZhbHVlcyhvUGFyYW1zKSwgZnVuY3Rpb24gKHBhcmFtZXRlcikge1xuICAgICAgICAvLyBVc2VkIGxhdGVyIGJ5IGdldE9wZXJhdGlvblBhcmFtZXRlcnMgdG8gY2lyY3VtdmVudCB0aGUgY2hpY2tlbi9lZ2cgc2l0dWF0aW9uIChSZW1vdmVkIHRoZXJlIGFzIHdlbGwpXG4gICAgICAgIHBhcmFtZXRlci5kZWZpbml0aW9uLiQkJHB0ciQkJCA9IEpzb25SZWZzLnBhdGhUb1BvaW50ZXIocGFyYW1ldGVyLnBhdGgpO1xuXG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXIuZGVmaW5pdGlvbjtcbiAgICAgIH0pO1xuXG5cbiAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGNPcGVyYXRpb24uc2VjdXJpdHkpKSB7XG4gICAgICAgIGNPcGVyYXRpb24uc2VjdXJpdHkgPSBhcGkucmVzb2x2ZWQuc2VjdXJpdHk7XG4gICAgICB9XG5cbiAgICAgIG9wZXJhdGlvbnMucHVzaChuZXcgdHlwZXMuT3BlcmF0aW9uKGFwaSwgcGF0aCwgbWV0aG9kLCBKc29uUmVmcy5wYXRoVG9Qb2ludGVyKG9QYXRoKSwgY09wZXJhdGlvbikpO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gb3BlcmF0aW9ucztcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBQYXJhbWV0ZXIgb2JqZWN0cyBmb3IgdGhlIHByb3ZpY2VkIE9wZXJhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge3R5cGVzLk9wZXJhdGlvbn0gb3BlcmF0aW9uIC0gVGhlIE9wZXJhdGlvbiBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7dHlwZXMuUGFyYW1ldGVyW119IFRoZSBQYXJhbWV0ZXIgb2JqZWN0IGFycmF5XG4gKi9cbm1vZHVsZS5leHBvcnRzLmdldE9wZXJhdGlvblBhcmFtZXRlcnMgPSBmdW5jdGlvbiAob3BlcmF0aW9uKSB7XG4gIHJldHVybiBfLm1hcChvcGVyYXRpb24ucGFyYW1ldGVycywgZnVuY3Rpb24gKHBhcmFtRGVmKSB7XG4gICAgdmFyIHB0ciA9IHBhcmFtRGVmLiQkJHB0ciQkJDtcblxuICAgIC8vIFJlbW92ZSBzbyB3ZSBkbyBub3QgaGF2ZSB0aGVzZSBwcm9wZXJ0aWVzIGxpdGVyZWQgdGhyb3VnaG91dCB0aGUgZG9jdW1lbnRcbiAgICBkZWxldGUgcGFyYW1EZWYuJCQkcHRyJCQkO1xuXG4gICAgcmV0dXJuIG5ldyB0eXBlcy5QYXJhbWV0ZXIob3BlcmF0aW9uLCBwdHIsIHBhcmFtRGVmLCBnZXRQYXJhbWV0ZXJTY2hlbWEocGFyYW1EZWYpKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzYW1wbGUgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCBKU09OIFNjaGVtYS5cbiAqXG4gKiBAcGFyYW0geyp9IHNjaGVtYSAtIFRoZSBKU09OIFNjaGVtYVxuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgc2FtcGxlIHZhbHVlXG4gKi9cbm1vZHVsZS5leHBvcnRzLmdldFNhbXBsZSA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgcmV0dXJuIG1vY2tlcihzY2hlbWEpO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIGZ1bmN0aW9ucyB1c2VkIHRvIHZhbGlkYXRlIFN3YWdnZXIgMi4wIGRvY3VtZW50cyBzZW1hbnRpY2FsbHkuXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9uW119IFRoZSB2YWxpZGF0b3JzIHRvIHVzZVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRTZW1hbnRpY1ZhbGlkYXRvcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB2YWxpZGF0b3JzLnNlbWFudGljVmFsaWRhdG9ycztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidGl0bGVcIjogXCJBIEpTT04gU2NoZW1hIGZvciBTd2FnZ2VyIDIuMCBBUEkuXCIsXG4gIFwiaWRcIjogXCJodHRwOi8vc3dhZ2dlci5pby92Mi9zY2hlbWEuanNvbiNcIixcbiAgXCIkc2NoZW1hXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjXCIsXG4gIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICBcInJlcXVpcmVkXCI6IFtcbiAgICBcInN3YWdnZXJcIixcbiAgICBcImluZm9cIixcbiAgICBcInBhdGhzXCJcbiAgXSxcbiAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgXCJeeC1cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgIH1cbiAgfSxcbiAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICBcInN3YWdnZXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcImVudW1cIjogW1xuICAgICAgICBcIjIuMFwiXG4gICAgICBdLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBTd2FnZ2VyIHZlcnNpb24gb2YgdGhpcyBkb2N1bWVudC5cIlxuICAgIH0sXG4gICAgXCJpbmZvXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaW5mb1wiXG4gICAgfSxcbiAgICBcImhvc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcImZvcm1hdFwiOiBcInVyaVwiLFxuICAgICAgXCJwYXR0ZXJuXCI6IFwiXltee30vIDpcXFxcXFxcXF0rKD86OlxcXFxkKyk/JFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBmdWxseSBxdWFsaWZpZWQgVVJJIHRvIHRoZSBob3N0IG9mIHRoZSBBUEkuXCJcbiAgICB9LFxuICAgIFwiYmFzZVBhdGhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInBhdHRlcm5cIjogXCJeL1wiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBiYXNlIHBhdGggdG8gdGhlIEFQSS4gRXhhbXBsZTogJy9hcGknLlwiXG4gICAgfSxcbiAgICBcInNjaGVtZXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWVzTGlzdFwiXG4gICAgfSxcbiAgICBcImNvbnN1bWVzXCI6IHtcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgTUlNRSB0eXBlcyBhY2NlcHRlZCBieSB0aGUgQVBJLlwiLFxuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tZWRpYVR5cGVMaXN0XCJcbiAgICB9LFxuICAgIFwicHJvZHVjZXNcIjoge1xuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgbGlzdCBvZiBNSU1FIHR5cGVzIHRoZSBBUEkgY2FuIHByb2R1Y2UuXCIsXG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21lZGlhVHlwZUxpc3RcIlxuICAgIH0sXG4gICAgXCJwYXRoc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdGhzXCJcbiAgICB9LFxuICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZpbml0aW9uc1wiXG4gICAgfSxcbiAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbWV0ZXJEZWZpbml0aW9uc1wiXG4gICAgfSxcbiAgICBcInJlc3BvbnNlc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Jlc3BvbnNlRGVmaW5pdGlvbnNcIlxuICAgIH0sXG4gICAgXCJzZWN1cml0eVwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NlY3VyaXR5XCJcbiAgICB9LFxuICAgIFwic2VjdXJpdHlEZWZpbml0aW9uc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NlY3VyaXR5RGVmaW5pdGlvbnNcIlxuICAgIH0sXG4gICAgXCJ0YWdzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy90YWdcIlxuICAgICAgfSxcbiAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJleHRlcm5hbERvY3NcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leHRlcm5hbERvY3NcIlxuICAgIH1cbiAgfSxcbiAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgXCJpbmZvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFQSS5cIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInZlcnNpb25cIixcbiAgICAgICAgXCJ0aXRsZVwiXG4gICAgICBdLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0aXRsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgdW5pcXVlIGFuZCBwcmVjaXNlIHRpdGxlIG9mIHRoZSBBUEkuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlciBvZiB0aGUgQVBJLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxvbmdlciBkZXNjcmlwdGlvbiBvZiB0aGUgQVBJLiBTaG91bGQgYmUgZGlmZmVyZW50IGZyb20gdGhlIHRpdGxlLiAgR2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXJtc09mU2VydmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB0ZXJtcyBvZiBzZXJ2aWNlIGZvciB0aGUgQVBJLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29udGFjdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb250YWN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsaWNlbnNlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2xpY2Vuc2VcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcImNvbnRhY3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQ29udGFjdCBpbmZvcm1hdGlvbiBmb3IgdGhlIG93bmVycyBvZiB0aGUgQVBJLlwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBpZGVudGlmeWluZyBuYW1lIG9mIHRoZSBjb250YWN0IHBlcnNvbi9vcmdhbml6YXRpb24uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgVVJMIHBvaW50aW5nIHRvIHRoZSBjb250YWN0IGluZm9ybWF0aW9uLlwiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbWFpbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjb250YWN0IHBlcnNvbi9vcmdhbml6YXRpb24uXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJlbWFpbFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwibGljZW5zZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgbGljZW5zZSB0eXBlLiBJdCdzIGVuY291cmFnZWQgdG8gdXNlIGFuIE9TSSBjb21wYXRpYmxlIGxpY2Vuc2UuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgVVJMIHBvaW50aW5nIHRvIHRoZSBsaWNlbnNlLlwiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJwYXRoc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZWxhdGl2ZSBwYXRocyB0byB0aGUgaW5kaXZpZHVhbCBlbmRwb2ludHMuIFRoZXkgbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgJ2Jhc2VQYXRoJy5cIixcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIl4vXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdGhJdGVtXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2VcbiAgICB9LFxuICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgfSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJPbmUgb3IgbW9yZSBKU09OIG9iamVjdHMgZGVzY3JpYmluZyB0aGUgc2NoZW1hcyBiZWluZyBjb25zdW1lZCBhbmQgcHJvZHVjZWQgYnkgdGhlIEFQSS5cIlxuICAgIH0sXG4gICAgXCJwYXJhbWV0ZXJEZWZpbml0aW9uc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFtZXRlclwiXG4gICAgICB9LFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk9uZSBvciBtb3JlIEpTT04gcmVwcmVzZW50YXRpb25zIGZvciBwYXJhbWV0ZXJzXCJcbiAgICB9LFxuICAgIFwicmVzcG9uc2VEZWZpbml0aW9uc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Jlc3BvbnNlXCJcbiAgICAgIH0sXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiT25lIG9yIG1vcmUgSlNPTiByZXByZXNlbnRhdGlvbnMgZm9yIHBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJleHRlcm5hbERvY3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImluZm9ybWF0aW9uIGFib3V0IGV4dGVybmFsIGRvY3VtZW50YXRpb25cIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInVybFwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJleGFtcGxlc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl5bYS16MC05LV0rL1thLXowLTlcXFxcLStdKyRcIjoge31cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gICAgfSxcbiAgICBcIm1pbWVUeXBlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBNSU1FIHR5cGUgb2YgdGhlIEhUVFAgbWVzc2FnZS5cIlxuICAgIH0sXG4gICAgXCJvcGVyYXRpb25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJyZXNwb25zZXNcIlxuICAgICAgXSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdW1tYXJ5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBicmllZiBzdW1tYXJ5IG9mIHRoZSBvcGVyYXRpb24uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgbG9uZ2VyIGRlc2NyaXB0aW9uIG9mIHRoZSBvcGVyYXRpb24sIGdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXh0ZXJuYWxEb2NzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4dGVybmFsRG9jc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwib3BlcmF0aW9uSWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGZyaWVuZGx5IG5hbWUgb2YgdGhlIG9wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvZHVjZXNcIjoge1xuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgTUlNRSB0eXBlcyB0aGUgQVBJIGNhbiBwcm9kdWNlLlwiLFxuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWVkaWFUeXBlTGlzdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29uc3VtZXNcIjoge1xuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgTUlNRSB0eXBlcyB0aGUgQVBJIGNhbiBjb25zdW1lLlwiLFxuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWVkaWFUeXBlTGlzdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbWV0ZXJzTGlzdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVzcG9uc2VzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Jlc3BvbnNlc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NoZW1lc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWVzTGlzdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwcmVjYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcInNlY3VyaXR5XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NlY3VyaXR5XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJwYXRoSXRlbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJnZXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwdXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3N0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVsZXRlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwib3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcImhlYWRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXRjaFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyc0xpc3RcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInJlc3BvbnNlc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXNwb25zZSBvYmplY3RzIG5hbWVzIGNhbiBlaXRoZXIgYmUgYW55IHZhbGlkIEhUVFAgc3RhdHVzIGNvZGUgb3IgJ2RlZmF1bHQnLlwiLFxuICAgICAgXCJtaW5Qcm9wZXJ0aWVzXCI6IDEsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXihbMC05XXszfSkkfF4oZGVmYXVsdCkkXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Jlc3BvbnNlVmFsdWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJub3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJyZXNwb25zZVZhbHVlXCI6IHtcbiAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2pzb25SZWZlcmVuY2VcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcInJlc3BvbnNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NoZW1hXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaGVhZGVyc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9oZWFkZXJzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGFtcGxlc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGFtcGxlc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gICAgfSxcbiAgICBcImhlYWRlcnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9oZWFkZXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJoZWFkZXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJhcnJheVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInZlbmRvckV4dGVuc2lvblwiOiB7XG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQW55IHByb3BlcnR5IHN0YXJ0aW5nIHdpdGggeC0gaXMgdmFsaWQuXCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImFkZGl0aW9uYWxJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcImJvZHlQYXJhbWV0ZXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwiaW5cIixcbiAgICAgICAgXCJzY2hlbWFcIlxuICAgICAgXSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYm9keVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NoZW1hXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gICAgfSxcbiAgICBcImhlYWRlclBhcmFtZXRlclN1YlNjaGVtYVwiOiB7XG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGFyYW1ldGVyLlwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImhlYWRlclwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVyLiBUaGlzIGNvdWxkIGNvbnRhaW4gZXhhbXBsZXMgb2YgdXNlLiAgR2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImFycmF5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ByaW1pdGl2ZXNJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb2xsZWN0aW9uRm9ybWF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heExlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkxlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicXVlcnlQYXJhbWV0ZXJTdWJTY2hlbWFcIjoge1xuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcImluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB0aGUgbG9jYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJxdWVyeVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVyLiBUaGlzIGNvdWxkIGNvbnRhaW4gZXhhbXBsZXMgb2YgdXNlLiAgR2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cIlxuICAgICAgICB9LFxuICAgICAgICBcImFsbG93RW1wdHlWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsb3dzIHNlbmRpbmcgYSBwYXJhbWV0ZXIgYnkgbmFtZSBvbmx5IG9yIHdpdGggYW4gZW1wdHkgdmFsdWUuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJhcnJheVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFdpdGhNdWx0aVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcImZvcm1EYXRhUGFyYW1ldGVyU3ViU2NoZW1hXCI6IHtcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBvciBvcHRpb25hbC5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiZm9ybURhdGFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxvd0VtcHR5VmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2UsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbG93cyBzZW5kaW5nIGEgcGFyYW1ldGVyIGJ5IG5hbWUgb25seSBvciB3aXRoIGFuIGVtcHR5IHZhbHVlLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZmlsZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFdpdGhNdWx0aVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInBhdGhQYXJhbWV0ZXJTdWJTY2hlbWFcIjoge1xuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBvciBvcHRpb25hbC5cIlxuICAgICAgICB9LFxuICAgICAgICBcImluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB0aGUgbG9jYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJwYXRoXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZiB1c2UuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYXJyYXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJub25Cb2R5UGFyYW1ldGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiLFxuICAgICAgICBcImluXCIsXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2hlYWRlclBhcmFtZXRlclN1YlNjaGVtYVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2Zvcm1EYXRhUGFyYW1ldGVyU3ViU2NoZW1hXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcXVlcnlQYXJhbWV0ZXJTdWJTY2hlbWFcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXRoUGFyYW1ldGVyU3ViU2NoZW1hXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJwYXJhbWV0ZXJcIjoge1xuICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2JvZHlQYXJhbWV0ZXJcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ub25Cb2R5UGFyYW1ldGVyXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJzY2hlbWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBkZXRlcm1pbmlzdGljIHZlcnNpb24gb2YgYSBKU09OIFNjaGVtYSBvYmplY3QuXCIsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGl0bGVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3RpdGxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZGVzY3JpcHRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL211bHRpcGxlT2ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2FkZGl0aW9uYWxQcm9wZXJ0aWVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy90eXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxPZlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGlzY3JpbWluYXRvclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcInhtbFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy94bWxcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4dGVybmFsRG9jc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leHRlcm5hbERvY3NcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4YW1wbGVcIjoge31cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gICAgfSxcbiAgICBcInByaW1pdGl2ZXNJdGVtc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImFycmF5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ByaW1pdGl2ZXNJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb2xsZWN0aW9uRm9ybWF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heExlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkxlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwic2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NlY3VyaXR5UmVxdWlyZW1lbnRcIlxuICAgICAgfSxcbiAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJzZWN1cml0eVJlcXVpcmVtZW50XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJ4bWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwcmVmaXhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXR0cmlidXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwid3JhcHBlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInRhZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJuYW1lXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXh0ZXJuYWxEb2NzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4dGVybmFsRG9jc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJzZWN1cml0eURlZmluaXRpb25zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmFzaWNBdXRoZW50aWNhdGlvblNlY3VyaXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYXBpS2V5U2VjdXJpdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJJbXBsaWNpdFNlY3VyaXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyUGFzc3dvcmRTZWN1cml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMkFwcGxpY2F0aW9uU2VjdXJpdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJBY2Nlc3NDb2RlU2VjdXJpdHlcIlxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJiYXNpY0F1dGhlbnRpY2F0aW9uU2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJiYXNpY1wiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiYXBpS2V5U2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgXCJpblwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJhcGlLZXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwicXVlcnlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm9hdXRoMkltcGxpY2l0U2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcImZsb3dcIixcbiAgICAgICAgXCJhdXRob3JpemF0aW9uVXJsXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcIm9hdXRoMlwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZsb3dcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImltcGxpY2l0XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMlNjb3Blc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV0aG9yaXphdGlvblVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwib2F1dGgyUGFzc3dvcmRTZWN1cml0eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgIFwiZmxvd1wiLFxuICAgICAgICBcInRva2VuVXJsXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcIm9hdXRoMlwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZsb3dcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInBhc3N3b3JkXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMlNjb3Blc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidG9rZW5VcmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm9hdXRoMkFwcGxpY2F0aW9uU2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcImZsb3dcIixcbiAgICAgICAgXCJ0b2tlblVybFwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJvYXV0aDJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmbG93XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJhcHBsaWNhdGlvblwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJTY29wZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInRva2VuVXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJvYXV0aDJBY2Nlc3NDb2RlU2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcImZsb3dcIixcbiAgICAgICAgXCJhdXRob3JpemF0aW9uVXJsXCIsXG4gICAgICAgIFwidG9rZW5VcmxcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwib2F1dGgyXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmxvd1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYWNjZXNzQ29kZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJTY29wZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhvcml6YXRpb25VcmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0b2tlblVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwib2F1dGgyU2NvcGVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIm1lZGlhVHlwZUxpc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbWVUeXBlXCJcbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwicGFyYW1ldGVyc0xpc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgcGFyYW1ldGVycyBuZWVkZWQgdG8gc2VuZCBhIHZhbGlkIEFQSSBjYWxsLlwiLFxuICAgICAgXCJhZGRpdGlvbmFsSXRlbXNcIjogZmFsc2UsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbWV0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qc29uUmVmZXJlbmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwic2NoZW1lc0xpc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgdHJhbnNmZXIgcHJvdG9jb2wgb2YgdGhlIEFQSS5cIixcbiAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICBcImh0dHBcIixcbiAgICAgICAgICBcImh0dHBzXCIsXG4gICAgICAgICAgXCJ3c1wiLFxuICAgICAgICAgIFwid3NzXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgXCJjc3ZcIixcbiAgICAgICAgXCJzc3ZcIixcbiAgICAgICAgXCJ0c3ZcIixcbiAgICAgICAgXCJwaXBlc1wiXG4gICAgICBdLFxuICAgICAgXCJkZWZhdWx0XCI6IFwiY3N2XCJcbiAgICB9LFxuICAgIFwiY29sbGVjdGlvbkZvcm1hdFdpdGhNdWx0aVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgIFwiY3N2XCIsXG4gICAgICAgIFwic3N2XCIsXG4gICAgICAgIFwidHN2XCIsXG4gICAgICAgIFwicGlwZXNcIixcbiAgICAgICAgXCJtdWx0aVwiXG4gICAgICBdLFxuICAgICAgXCJkZWZhdWx0XCI6IFwiY3N2XCJcbiAgICB9LFxuICAgIFwidGl0bGVcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvdGl0bGVcIlxuICAgIH0sXG4gICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9kZXNjcmlwdGlvblwiXG4gICAgfSxcbiAgICBcImRlZmF1bHRcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZGVmYXVsdFwiXG4gICAgfSxcbiAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvbXVsdGlwbGVPZlwiXG4gICAgfSxcbiAgICBcIm1heGltdW1cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvbWF4aW11bVwiXG4gICAgfSxcbiAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgfSxcbiAgICBcIm1pbmltdW1cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvbWluaW11bVwiXG4gICAgfSxcbiAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgfSxcbiAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCJcbiAgICB9LFxuICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiXG4gICAgfSxcbiAgICBcInBhdHRlcm5cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvcGF0dGVyblwiXG4gICAgfSxcbiAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIlxuICAgIH0sXG4gICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIlxuICAgIH0sXG4gICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy91bmlxdWVJdGVtc1wiXG4gICAgfSxcbiAgICBcImVudW1cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZW51bVwiXG4gICAgfSxcbiAgICBcImpzb25SZWZlcmVuY2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGN1c3RvbUZvcm1hdFZhbGlkYXRvcnMgPSByZXF1aXJlKCcuL2Zvcm1hdC12YWxpZGF0b3JzJyk7XG52YXIgaGVscGVycyA9IHJlcXVpcmUoJy4uLy4uL2hlbHBlcnMnKTtcbnZhciBzd2FnZ2VyU2NoZW1hID0gcmVxdWlyZSgnLi9zY2hlbWEuanNvbicpO1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgcmVzb2x2ZWQgU3dhZ2dlciBkb2N1bWVudCBhZ2FpbnN0IHRoZSBTd2FnZ2VyIDIuMCBKU09OIFNjaGVtYS5cbiAqXG4gKiBAcGFyYW0ge1N3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyQXBpIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIG9mIHRoZSB2YWxpZGF0aW9uXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlU3RydWN0dXJlIChhcGkpIHtcbiAgcmV0dXJuIGhlbHBlcnMudmFsaWRhdGVBZ2FpbnN0U2NoZW1hKGhlbHBlcnMuY3JlYXRlSlNPTlZhbGlkYXRvcih7XG4gICAgZm9ybWF0VmFsaWRhdG9yczogY3VzdG9tRm9ybWF0VmFsaWRhdG9yc1xuICB9KSwgc3dhZ2dlclNjaGVtYSwgYXBpLnJlc29sdmVkKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGpzb25TY2hlbWFWYWxpZGF0b3I6IHZhbGlkYXRlU3RydWN0dXJlLFxuICBzZW1hbnRpY1ZhbGlkYXRvcnM6IFtcblxuICBdXG59O1xuIiwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzLWFycmF5JylcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbnZhciBrTWF4TGVuZ3RoID0gMHgzZmZmZmZmZlxudmFyIHJvb3RQYXJlbnQgPSB7fVxuXG4vKipcbiAqIElmIGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGA6XG4gKiAgID09PSB0cnVlICAgIFVzZSBVaW50OEFycmF5IGltcGxlbWVudGF0aW9uIChmYXN0ZXN0KVxuICogICA9PT0gZmFsc2UgICBVc2UgT2JqZWN0IGltcGxlbWVudGF0aW9uIChtb3N0IGNvbXBhdGlibGUsIGV2ZW4gSUU2KVxuICpcbiAqIEJyb3dzZXJzIHRoYXQgc3VwcG9ydCB0eXBlZCBhcnJheXMgYXJlIElFIDEwKywgRmlyZWZveCA0KywgQ2hyb21lIDcrLCBTYWZhcmkgNS4xKyxcbiAqIE9wZXJhIDExLjYrLCBpT1MgNC4yKy5cbiAqXG4gKiBOb3RlOlxuICpcbiAqIC0gSW1wbGVtZW50YXRpb24gbXVzdCBzdXBwb3J0IGFkZGluZyBuZXcgcHJvcGVydGllcyB0byBgVWludDhBcnJheWAgaW5zdGFuY2VzLlxuICogICBGaXJlZm94IDQtMjkgbGFja2VkIHN1cHBvcnQsIGZpeGVkIGluIEZpcmVmb3ggMzArLlxuICogICBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQzOC5cbiAqXG4gKiAgLSBDaHJvbWUgOS0xMCBpcyBtaXNzaW5nIHRoZSBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uLlxuICpcbiAqICAtIElFMTAgaGFzIGEgYnJva2VuIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhcnJheXMgb2ZcbiAqICAgIGluY29ycmVjdCBsZW5ndGggaW4gc29tZSBzaXR1YXRpb25zLlxuICpcbiAqIFdlIGRldGVjdCB0aGVzZSBidWdneSBicm93c2VycyBhbmQgc2V0IGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGAgdG8gYGZhbHNlYCBzbyB0aGV5IHdpbGxcbiAqIGdldCB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyBzbG93ZXIgYnV0IHdpbGwgd29yayBjb3JyZWN0bHkuXG4gKi9cbkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gKGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgYnVmID0gbmV3IEFycmF5QnVmZmVyKDApXG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KGJ1ZilcbiAgICBhcnIuZm9vID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNDIgfVxuICAgIHJldHVybiBhcnIuZm9vKCkgPT09IDQyICYmIC8vIHR5cGVkIGFycmF5IGluc3RhbmNlcyBjYW4gYmUgYXVnbWVudGVkXG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgJiYgLy8gY2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gICAgICAgIG5ldyBVaW50OEFycmF5KDEpLnN1YmFycmF5KDEsIDEpLmJ5dGVMZW5ndGggPT09IDAgLy8gaWUxMCBoYXMgYnJva2VuIGBzdWJhcnJheWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59KSgpXG5cbi8qKlxuICogQ2xhc3M6IEJ1ZmZlclxuICogPT09PT09PT09PT09PVxuICpcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgYXJlIGF1Z21lbnRlZFxuICogd2l0aCBmdW5jdGlvbiBwcm9wZXJ0aWVzIGZvciBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgQVBJIGZ1bmN0aW9ucy4gV2UgdXNlXG4gKiBgVWludDhBcnJheWAgc28gdGhhdCBzcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdCByZXR1cm5zXG4gKiBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBCeSBhdWdtZW50aW5nIHRoZSBpbnN0YW5jZXMsIHdlIGNhbiBhdm9pZCBtb2RpZnlpbmcgdGhlIGBVaW50OEFycmF5YFxuICogcHJvdG90eXBlLlxuICovXG5mdW5jdGlvbiBCdWZmZXIgKGFyZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQnVmZmVyKSkge1xuICAgIC8vIEF2b2lkIGdvaW5nIHRocm91Z2ggYW4gQXJndW1lbnRzQWRhcHRvclRyYW1wb2xpbmUgaW4gdGhlIGNvbW1vbiBjYXNlLlxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBhcmd1bWVudHNbMV0pXG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnKVxuICB9XG5cbiAgdGhpcy5sZW5ndGggPSAwXG4gIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkXG5cbiAgLy8gQ29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBmcm9tTnVtYmVyKHRoaXMsIGFyZylcbiAgfVxuXG4gIC8vIFNsaWdodGx5IGxlc3MgY29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoaXMsIGFyZywgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiAndXRmOCcpXG4gIH1cblxuICAvLyBVbnVzdWFsLlxuICByZXR1cm4gZnJvbU9iamVjdCh0aGlzLCBhcmcpXG59XG5cbmZ1bmN0aW9uIGZyb21OdW1iZXIgKHRoYXQsIGxlbmd0aCkge1xuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoIDwgMCA/IDAgOiBjaGVja2VkKGxlbmd0aCkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgdGhhdFtpXSA9IDBcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgLy8gQXNzdW1wdGlvbjogYnl0ZUxlbmd0aCgpIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBrTWF4TGVuZ3RoLlxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcblxuICB0aGF0LndyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHJldHVybiBmcm9tQnVmZmVyKHRoYXQsIG9iamVjdClcblxuICBpZiAoaXNBcnJheShvYmplY3QpKSByZXR1cm4gZnJvbUFycmF5KHRoYXQsIG9iamVjdClcblxuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHN0YXJ0IHdpdGggbnVtYmVyLCBidWZmZXIsIGFycmF5IG9yIHN0cmluZycpXG4gIH1cblxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBvYmplY3QuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbVR5cGVkQXJyYXkodGhhdCwgb2JqZWN0KVxuICB9XG5cbiAgaWYgKG9iamVjdC5sZW5ndGgpIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iamVjdClcblxuICByZXR1cm4gZnJvbUpzb25PYmplY3QodGhhdCwgb2JqZWN0KVxufVxuXG5mdW5jdGlvbiBmcm9tQnVmZmVyICh0aGF0LCBidWZmZXIpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYnVmZmVyLmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGJ1ZmZlci5jb3B5KHRoYXQsIDAsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5ICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLy8gRHVwbGljYXRlIG9mIGZyb21BcnJheSgpIHRvIGtlZXAgZnJvbUFycmF5KCkgbW9ub21vcnBoaWMuXG5mdW5jdGlvbiBmcm9tVHlwZWRBcnJheSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgLy8gVHJ1bmNhdGluZyB0aGUgZWxlbWVudHMgaXMgcHJvYmFibHkgbm90IHdoYXQgcGVvcGxlIGV4cGVjdCBmcm9tIHR5cGVkXG4gIC8vIGFycmF5cyB3aXRoIEJZVEVTX1BFUl9FTEVNRU5UID4gMSBidXQgaXQncyBjb21wYXRpYmxlIHdpdGggdGhlIGJlaGF2aW9yXG4gIC8vIG9mIHRoZSBvbGQgQnVmZmVyIGNvbnN0cnVjdG9yLlxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5TGlrZSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8vIERlc2VyaWFsaXplIHsgdHlwZTogJ0J1ZmZlcicsIGRhdGE6IFsxLDIsMywuLi5dIH0gaW50byBhIEJ1ZmZlciBvYmplY3QuXG4vLyBSZXR1cm5zIGEgemVyby1sZW5ndGggYnVmZmVyIGZvciBpbnB1dHMgdGhhdCBkb24ndCBjb25mb3JtIHRvIHRoZSBzcGVjLlxuZnVuY3Rpb24gZnJvbUpzb25PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICB2YXIgYXJyYXlcbiAgdmFyIGxlbmd0aCA9IDBcblxuICBpZiAob2JqZWN0LnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqZWN0LmRhdGEpKSB7XG4gICAgYXJyYXkgPSBvYmplY3QuZGF0YVxuICAgIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgfVxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBhbGxvY2F0ZSAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBCdWZmZXIuX2F1Z21lbnQobmV3IFVpbnQ4QXJyYXkobGVuZ3RoKSlcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGF0Ll9pc0J1ZmZlciA9IHRydWVcbiAgfVxuXG4gIHZhciBmcm9tUG9vbCA9IGxlbmd0aCAhPT0gMCAmJiBsZW5ndGggPD0gQnVmZmVyLnBvb2xTaXplID4+PiAxXG4gIGlmIChmcm9tUG9vbCkgdGhhdC5wYXJlbnQgPSByb290UGFyZW50XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGhgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICdzaXplOiAweCcgKyBrTWF4TGVuZ3RoLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKVxuICB9XG4gIHJldHVybiBsZW5ndGggfCAwXG59XG5cbmZ1bmN0aW9uIFNsb3dCdWZmZXIgKHN1YmplY3QsIGVuY29kaW5nKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTbG93QnVmZmVyKSkgcmV0dXJuIG5ldyBTbG93QnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuICBkZWxldGUgYnVmLnBhcmVudFxuICByZXR1cm4gYnVmXG59XG5cbkJ1ZmZlci5pc0J1ZmZlciA9IGZ1bmN0aW9uIGlzQnVmZmVyIChiKSB7XG4gIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpXG59XG5cbkJ1ZmZlci5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYSwgYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihhKSB8fCAhQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIG11c3QgYmUgQnVmZmVycycpXG4gIH1cblxuICBpZiAoYSA9PT0gYikgcmV0dXJuIDBcblxuICB2YXIgeCA9IGEubGVuZ3RoXG4gIHZhciB5ID0gYi5sZW5ndGhcblxuICB2YXIgaSA9IDBcbiAgdmFyIGxlbiA9IE1hdGgubWluKHgsIHkpXG4gIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgaWYgKGFbaV0gIT09IGJbaV0pIGJyZWFrXG5cbiAgICArK2lcbiAgfVxuXG4gIGlmIChpICE9PSBsZW4pIHtcbiAgICB4ID0gYVtpXVxuICAgIHkgPSBiW2ldXG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbkJ1ZmZlci5pc0VuY29kaW5nID0gZnVuY3Rpb24gaXNFbmNvZGluZyAoZW5jb2RpbmcpIHtcbiAgc3dpdGNoIChTdHJpbmcoZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlICdoZXgnOlxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3V0Zi04JzpcbiAgICBjYXNlICdhc2NpaSc6XG4gICAgY2FzZSAnYmluYXJ5JzpcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgIGNhc2UgJ3Jhdyc6XG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldHVybiB0cnVlXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbkJ1ZmZlci5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQgKGxpc3QsIGxlbmd0aCkge1xuICBpZiAoIWlzQXJyYXkobGlzdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2xpc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzLicpXG5cbiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoMClcbiAgfSBlbHNlIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBsaXN0WzBdXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKGxlbmd0aClcbiAgdmFyIHBvcyA9IDBcbiAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV1cbiAgICBpdGVtLmNvcHkoYnVmLCBwb3MpXG4gICAgcG9zICs9IGl0ZW0ubGVuZ3RoXG4gIH1cbiAgcmV0dXJuIGJ1ZlxufVxuXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykgc3RyaW5nID0gU3RyaW5nKHN0cmluZylcblxuICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDBcblxuICBzd2l0Y2ggKGVuY29kaW5nIHx8ICd1dGY4Jykge1xuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdiaW5hcnknOlxuICAgIGNhc2UgJ3Jhdyc6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aCAqIDJcbiAgICBjYXNlICdoZXgnOlxuICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGggPj4+IDFcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgcmV0dXJuIGJhc2U2NFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGhcbiAgfVxufVxuQnVmZmVyLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoXG5cbi8vIHByZS1zZXQgZm9yIHZhbHVlcyB0aGF0IG1heSBleGlzdCBpbiB0aGUgZnV0dXJlXG5CdWZmZXIucHJvdG90eXBlLmxlbmd0aCA9IHVuZGVmaW5lZFxuQnVmZmVyLnByb3RvdHlwZS5wYXJlbnQgPSB1bmRlZmluZWRcblxuLy8gdG9TdHJpbmcoZW5jb2RpbmcsIHN0YXJ0PTAsIGVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nIChlbmNvZGluZywgc3RhcnQsIGVuZCkge1xuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuXG4gIHN0YXJ0ID0gc3RhcnQgfCAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA9PT0gSW5maW5pdHkgPyB0aGlzLmxlbmd0aCA6IGVuZCB8IDBcblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAoZW5kIDw9IHN0YXJ0KSByZXR1cm4gJydcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBiaW5hcnlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbWF4KSBzdHIgKz0gJyAuLi4gJ1xuICB9XG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIDBcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIGluZGV4T2YgKHZhbCwgYnl0ZU9mZnNldCkge1xuICBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIGJ5dGVPZmZzZXQgPSAweDdmZmZmZmZmXG4gIGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAtMHg4MDAwMDAwMCkgYnl0ZU9mZnNldCA9IC0weDgwMDAwMDAwXG4gIGJ5dGVPZmZzZXQgPj49IDBcblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiAtMVxuICBpZiAoYnl0ZU9mZnNldCA+PSB0aGlzLmxlbmd0aCkgcmV0dXJuIC0xXG5cbiAgLy8gTmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBNYXRoLm1heCh0aGlzLmxlbmd0aCArIGJ5dGVPZmZzZXQsIDApXG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHJldHVybiAtMSAvLyBzcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZyBhbHdheXMgZmFpbHNcbiAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgIHJldHVybiBhcnJheUluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZih0aGlzLCBbIHZhbCBdLCBieXRlT2Zmc2V0KVxuICB9XG5cbiAgZnVuY3Rpb24gYXJyYXlJbmRleE9mIChhcnIsIHZhbCwgYnl0ZU9mZnNldCkge1xuICAgIHZhciBmb3VuZEluZGV4ID0gLTFcbiAgICBmb3IgKHZhciBpID0gMDsgYnl0ZU9mZnNldCArIGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJbYnl0ZU9mZnNldCArIGldID09PSB2YWxbZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXhdKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsLmxlbmd0aCkgcmV0dXJuIGJ5dGVPZmZzZXQgKyBmb3VuZEluZGV4XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3VuZEluZGV4ID0gLTFcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG4vLyBgZ2V0YCB3aWxsIGJlIHJlbW92ZWQgaW4gTm9kZSAwLjEzK1xuQnVmZmVyLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiBnZXQgKG9mZnNldCkge1xuICBjb25zb2xlLmxvZygnLmdldCgpIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB1c2luZyBhcnJheSBpbmRleGVzIGluc3RlYWQuJylcbiAgcmV0dXJuIHRoaXMucmVhZFVJbnQ4KG9mZnNldClcbn1cblxuLy8gYHNldGAgd2lsbCBiZSByZW1vdmVkIGluIE5vZGUgMC4xMytcbkJ1ZmZlci5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gc2V0ICh2LCBvZmZzZXQpIHtcbiAgY29uc29sZS5sb2coJy5zZXQoKSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdXNpbmcgYXJyYXkgaW5kZXhlcyBpbnN0ZWFkLicpXG4gIHJldHVybiB0aGlzLndyaXRlVUludDgodiwgb2Zmc2V0KVxufVxuXG5mdW5jdGlvbiBoZXhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDBcbiAgdmFyIHJlbWFpbmluZyA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSBOdW1iZXIobGVuZ3RoKVxuICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHtcbiAgICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICAgIH1cbiAgfVxuXG4gIC8vIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YgZGlnaXRzXG4gIHZhciBzdHJMZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChzdHJMZW4gJSAyICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpXG5cbiAgaWYgKGxlbmd0aCA+IHN0ckxlbiAvIDIpIHtcbiAgICBsZW5ndGggPSBzdHJMZW4gLyAyXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJzZWQgPSBwYXJzZUludChzdHJpbmcuc3Vic3RyKGkgKiAyLCAyKSwgMTYpXG4gICAgaWYgKGlzTmFOKHBhcnNlZCkpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSBwYXJzZWRcbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBhc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGJpbmFyeVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgICBpZiAoaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoIHwgMFxuICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kaW5nID0gbGVuZ3RoXG4gICAgICBsZW5ndGggPSB1bmRlZmluZWRcbiAgICB9XG4gIC8vIGxlZ2FjeSB3cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXQsIGxlbmd0aCkgLSByZW1vdmUgaW4gdjAuMTNcbiAgfSBlbHNlIHtcbiAgICB2YXIgc3dhcCA9IGVuY29kaW5nXG4gICAgZW5jb2RpbmcgPSBvZmZzZXRcbiAgICBvZmZzZXQgPSBsZW5ndGggfCAwXG4gICAgbGVuZ3RoID0gc3dhcFxuICB9XG5cbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBsZW5ndGggPiByZW1haW5pbmcpIGxlbmd0aCA9IHJlbWFpbmluZ1xuXG4gIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2F0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzJylcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBiaW5hcnlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICAvLyBXYXJuaW5nOiBtYXhMZW5ndGggbm90IHRha2VuIGludG8gYWNjb3VudCBpbiBiYXNlNjRXcml0ZVxuICAgICAgICByZXR1cm4gYmFzZTY0V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHVjczJXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiB0b0pTT04gKCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCdWZmZXInLFxuICAgIGRhdGE6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2FyciB8fCB0aGlzLCAwKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKHN0YXJ0ID09PSAwICYmIGVuZCA9PT0gYnVmLmxlbmd0aCkge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1Zi5zbGljZShzdGFydCwgZW5kKSlcbiAgfVxufVxuXG5mdW5jdGlvbiB1dGY4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmVzID0gJydcbiAgdmFyIHRtcCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIGlmIChidWZbaV0gPD0gMHg3Rikge1xuICAgICAgcmVzICs9IGRlY29kZVV0ZjhDaGFyKHRtcCkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSlcbiAgICAgIHRtcCA9ICcnXG4gICAgfSBlbHNlIHtcbiAgICAgIHRtcCArPSAnJScgKyBidWZbaV0udG9TdHJpbmcoMTYpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcyArIGRlY29kZVV0ZjhDaGFyKHRtcClcbn1cblxuZnVuY3Rpb24gYXNjaWlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0gJiAweDdGKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gYmluYXJ5U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gaGV4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuXG4gIGlmICghc3RhcnQgfHwgc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgfHwgZW5kIDwgMCB8fCBlbmQgPiBsZW4pIGVuZCA9IGxlblxuXG4gIHZhciBvdXQgPSAnJ1xuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIG91dCArPSB0b0hleChidWZbaV0pXG4gIH1cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiB1dGYxNmxlU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgYnl0ZXMgPSBidWYuc2xpY2Uoc3RhcnQsIGVuZClcbiAgdmFyIHJlcyA9ICcnXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSArIGJ5dGVzW2kgKyAxXSAqIDI1NilcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiBzbGljZSAoc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgc3RhcnQgPSB+fnN0YXJ0XG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogfn5lbmRcblxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgKz0gbGVuXG4gICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIH0gZWxzZSBpZiAoc3RhcnQgPiBsZW4pIHtcbiAgICBzdGFydCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuXG4gICAgaWYgKGVuZCA8IDApIGVuZCA9IDBcbiAgfSBlbHNlIGlmIChlbmQgPiBsZW4pIHtcbiAgICBlbmQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICB2YXIgbmV3QnVmXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIG5ld0J1ZiA9IEJ1ZmZlci5fYXVnbWVudCh0aGlzLnN1YmFycmF5KHN0YXJ0LCBlbmQpKVxuICB9IGVsc2Uge1xuICAgIHZhciBzbGljZUxlbiA9IGVuZCAtIHN0YXJ0XG4gICAgbmV3QnVmID0gbmV3IEJ1ZmZlcihzbGljZUxlbiwgdW5kZWZpbmVkKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VMZW47IGkrKykge1xuICAgICAgbmV3QnVmW2ldID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9XG5cbiAgaWYgKG5ld0J1Zi5sZW5ndGgpIG5ld0J1Zi5wYXJlbnQgPSB0aGlzLnBhcmVudCB8fCB0aGlzXG5cbiAgcmV0dXJuIG5ld0J1ZlxufVxuXG4vKlxuICogTmVlZCB0byBtYWtlIHN1cmUgdGhhdCBidWZmZXIgaXNuJ3QgdHJ5aW5nIHRvIHdyaXRlIG91dCBvZiBib3VuZHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrT2Zmc2V0IChvZmZzZXQsIGV4dCwgbGVuZ3RoKSB7XG4gIGlmICgob2Zmc2V0ICUgMSkgIT09IDAgfHwgb2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBpcyBub3QgdWludCcpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBsZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFID0gZnVuY3Rpb24gcmVhZFVJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFID0gZnVuY3Rpb24gcmVhZFVJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcbiAgfVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF1cbiAgdmFyIG11bCA9IDFcbiAgd2hpbGUgKGJ5dGVMZW5ndGggPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OCA9IGZ1bmN0aW9uIHJlYWRVSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkxFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCA4KSB8IHRoaXNbb2Zmc2V0ICsgMV1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyTEUgPSBmdW5jdGlvbiByZWFkVUludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKCh0aGlzW29mZnNldF0pIHxcbiAgICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSkgK1xuICAgICAgKHRoaXNbb2Zmc2V0ICsgM10gKiAweDEwMDAwMDApXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkJFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gKiAweDEwMDAwMDApICtcbiAgICAoKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgdGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEUgPSBmdW5jdGlvbiByZWFkSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50QkUgPSBmdW5jdGlvbiByZWFkSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgaSA9IGJ5dGVMZW5ndGhcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1pXVxuICB3aGlsZSAoaSA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OCA9IGZ1bmN0aW9uIHJlYWRJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIGlmICghKHRoaXNbb2Zmc2V0XSAmIDB4ODApKSByZXR1cm4gKHRoaXNbb2Zmc2V0XSlcbiAgcmV0dXJuICgoMHhmZiAtIHRoaXNbb2Zmc2V0XSArIDEpICogLTEpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2TEUgPSBmdW5jdGlvbiByZWFkSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkJFID0gZnVuY3Rpb24gcmVhZEludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgMV0gfCAodGhpc1tvZmZzZXRdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0pIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSA8PCAyNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgMjQpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdExFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdEJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFID0gZnVuY3Rpb24gcmVhZERvdWJsZUxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCA1MiwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlQkUgPSBmdW5jdGlvbiByZWFkRG91YmxlQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCA1MiwgOClcbn1cblxuZnVuY3Rpb24gY2hlY2tJbnQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdidWZmZXIgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpXG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3ZhbHVlIGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50OCA9IGZ1bmN0aW9uIHdyaXRlVUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHhmZiwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQxNiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCAyKTsgaSA8IGo7IGkrKykge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSAmICgweGZmIDw8ICg4ICogKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkpKSkgPj4+XG4gICAgICAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSAqIDhcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgNCk7IGkgPCBqOyBpKyspIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgPj4+IChsaXR0bGVFbmRpYW4gPyBpIDogMyAtIGkpICogOCkgJiAweGZmXG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEUgPSBmdW5jdGlvbiB3cml0ZUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gMFxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gdmFsdWUgPCAwID8gMSA6IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFID0gZnVuY3Rpb24gd3JpdGVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSB2YWx1ZSA8IDAgPyAxIDogMFxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4N2YsIC0weDgwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMVxuICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5mdW5jdGlvbiBjaGVja0lFRUU3NTQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCd2YWx1ZSBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxuICBpZiAob2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvYXQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgNCwgMy40MDI4MjM0NjYzODUyODg2ZSszOCwgLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpXG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFID0gZnVuY3Rpb24gd3JpdGVGbG9hdExFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgOCwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCA1MiwgOClcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG4vLyBjb3B5KHRhcmdldEJ1ZmZlciwgdGFyZ2V0U3RhcnQ9MCwgc291cmNlU3RhcnQ9MCwgc291cmNlRW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5ICh0YXJnZXQsIHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXRTdGFydCA+PSB0YXJnZXQubGVuZ3RoKSB0YXJnZXRTdGFydCA9IHRhcmdldC5sZW5ndGhcbiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwXG4gIGlmIChlbmQgPiAwICYmIGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuIDBcbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgdGhpcy5sZW5ndGggPT09IDApIHJldHVybiAwXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBpZiAodGFyZ2V0U3RhcnQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICB9XG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgLy8gQXJlIHdlIG9vYj9cbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0IDwgZW5kIC0gc3RhcnQpIHtcbiAgICBlbmQgPSB0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgKyBzdGFydFxuICB9XG5cbiAgdmFyIGxlbiA9IGVuZCAtIHN0YXJ0XG5cbiAgaWYgKGxlbiA8IDEwMDAgfHwgIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0Ll9zZXQodGhpcy5zdWJhcnJheShzdGFydCwgc3RhcnQgKyBsZW4pLCB0YXJnZXRTdGFydClcbiAgfVxuXG4gIHJldHVybiBsZW5cbn1cblxuLy8gZmlsbCh2YWx1ZSwgc3RhcnQ9MCwgZW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiBmaWxsICh2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXZhbHVlKSB2YWx1ZSA9IDBcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kKSBlbmQgPSB0aGlzLmxlbmd0aFxuXG4gIGlmIChlbmQgPCBzdGFydCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2VuZCA8IHN0YXJ0JylcblxuICAvLyBGaWxsIDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVyblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVyblxuXG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDAgfHwgZW5kID4gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdlbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgdmFyIGlcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICB0aGlzW2ldID0gdmFsdWVcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ5dGVzID0gdXRmOFRvQnl0ZXModmFsdWUudG9TdHJpbmcoKSlcbiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdGhpc1tpXSA9IGJ5dGVzW2kgJSBsZW5dXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBBcnJheUJ1ZmZlcmAgd2l0aCB0aGUgKmNvcGllZCogbWVtb3J5IG9mIHRoZSBidWZmZXIgaW5zdGFuY2UuXG4gKiBBZGRlZCBpbiBOb2RlIDAuMTIuIE9ubHkgYXZhaWxhYmxlIGluIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBBcnJheUJ1ZmZlci5cbiAqL1xuQnVmZmVyLnByb3RvdHlwZS50b0FycmF5QnVmZmVyID0gZnVuY3Rpb24gdG9BcnJheUJ1ZmZlciAoKSB7XG4gIGlmICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAgIHJldHVybiAobmV3IEJ1ZmZlcih0aGlzKSkuYnVmZmVyXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh0aGlzLmxlbmd0aClcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBidWYubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgYnVmW2ldID0gdGhpc1tpXVxuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1Zi5idWZmZXJcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQnVmZmVyLnRvQXJyYXlCdWZmZXIgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXInKVxuICB9XG59XG5cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT1cblxudmFyIEJQID0gQnVmZmVyLnByb3RvdHlwZVxuXG4vKipcbiAqIEF1Z21lbnQgYSBVaW50OEFycmF5ICppbnN0YW5jZSogKG5vdCB0aGUgVWludDhBcnJheSBjbGFzcyEpIHdpdGggQnVmZmVyIG1ldGhvZHNcbiAqL1xuQnVmZmVyLl9hdWdtZW50ID0gZnVuY3Rpb24gX2F1Z21lbnQgKGFycikge1xuICBhcnIuY29uc3RydWN0b3IgPSBCdWZmZXJcbiAgYXJyLl9pc0J1ZmZlciA9IHRydWVcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byBvcmlnaW5hbCBVaW50OEFycmF5IHNldCBtZXRob2QgYmVmb3JlIG92ZXJ3cml0aW5nXG4gIGFyci5fc2V0ID0gYXJyLnNldFxuXG4gIC8vIGRlcHJlY2F0ZWQsIHdpbGwgYmUgcmVtb3ZlZCBpbiBub2RlIDAuMTMrXG4gIGFyci5nZXQgPSBCUC5nZXRcbiAgYXJyLnNldCA9IEJQLnNldFxuXG4gIGFyci53cml0ZSA9IEJQLndyaXRlXG4gIGFyci50b1N0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0xvY2FsZVN0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0pTT04gPSBCUC50b0pTT05cbiAgYXJyLmVxdWFscyA9IEJQLmVxdWFsc1xuICBhcnIuY29tcGFyZSA9IEJQLmNvbXBhcmVcbiAgYXJyLmluZGV4T2YgPSBCUC5pbmRleE9mXG4gIGFyci5jb3B5ID0gQlAuY29weVxuICBhcnIuc2xpY2UgPSBCUC5zbGljZVxuICBhcnIucmVhZFVJbnRMRSA9IEJQLnJlYWRVSW50TEVcbiAgYXJyLnJlYWRVSW50QkUgPSBCUC5yZWFkVUludEJFXG4gIGFyci5yZWFkVUludDggPSBCUC5yZWFkVUludDhcbiAgYXJyLnJlYWRVSW50MTZMRSA9IEJQLnJlYWRVSW50MTZMRVxuICBhcnIucmVhZFVJbnQxNkJFID0gQlAucmVhZFVJbnQxNkJFXG4gIGFyci5yZWFkVUludDMyTEUgPSBCUC5yZWFkVUludDMyTEVcbiAgYXJyLnJlYWRVSW50MzJCRSA9IEJQLnJlYWRVSW50MzJCRVxuICBhcnIucmVhZEludExFID0gQlAucmVhZEludExFXG4gIGFyci5yZWFkSW50QkUgPSBCUC5yZWFkSW50QkVcbiAgYXJyLnJlYWRJbnQ4ID0gQlAucmVhZEludDhcbiAgYXJyLnJlYWRJbnQxNkxFID0gQlAucmVhZEludDE2TEVcbiAgYXJyLnJlYWRJbnQxNkJFID0gQlAucmVhZEludDE2QkVcbiAgYXJyLnJlYWRJbnQzMkxFID0gQlAucmVhZEludDMyTEVcbiAgYXJyLnJlYWRJbnQzMkJFID0gQlAucmVhZEludDMyQkVcbiAgYXJyLnJlYWRGbG9hdExFID0gQlAucmVhZEZsb2F0TEVcbiAgYXJyLnJlYWRGbG9hdEJFID0gQlAucmVhZEZsb2F0QkVcbiAgYXJyLnJlYWREb3VibGVMRSA9IEJQLnJlYWREb3VibGVMRVxuICBhcnIucmVhZERvdWJsZUJFID0gQlAucmVhZERvdWJsZUJFXG4gIGFyci53cml0ZVVJbnQ4ID0gQlAud3JpdGVVSW50OFxuICBhcnIud3JpdGVVSW50TEUgPSBCUC53cml0ZVVJbnRMRVxuICBhcnIud3JpdGVVSW50QkUgPSBCUC53cml0ZVVJbnRCRVxuICBhcnIud3JpdGVVSW50MTZMRSA9IEJQLndyaXRlVUludDE2TEVcbiAgYXJyLndyaXRlVUludDE2QkUgPSBCUC53cml0ZVVJbnQxNkJFXG4gIGFyci53cml0ZVVJbnQzMkxFID0gQlAud3JpdGVVSW50MzJMRVxuICBhcnIud3JpdGVVSW50MzJCRSA9IEJQLndyaXRlVUludDMyQkVcbiAgYXJyLndyaXRlSW50TEUgPSBCUC53cml0ZUludExFXG4gIGFyci53cml0ZUludEJFID0gQlAud3JpdGVJbnRCRVxuICBhcnIud3JpdGVJbnQ4ID0gQlAud3JpdGVJbnQ4XG4gIGFyci53cml0ZUludDE2TEUgPSBCUC53cml0ZUludDE2TEVcbiAgYXJyLndyaXRlSW50MTZCRSA9IEJQLndyaXRlSW50MTZCRVxuICBhcnIud3JpdGVJbnQzMkxFID0gQlAud3JpdGVJbnQzMkxFXG4gIGFyci53cml0ZUludDMyQkUgPSBCUC53cml0ZUludDMyQkVcbiAgYXJyLndyaXRlRmxvYXRMRSA9IEJQLndyaXRlRmxvYXRMRVxuICBhcnIud3JpdGVGbG9hdEJFID0gQlAud3JpdGVGbG9hdEJFXG4gIGFyci53cml0ZURvdWJsZUxFID0gQlAud3JpdGVEb3VibGVMRVxuICBhcnIud3JpdGVEb3VibGVCRSA9IEJQLndyaXRlRG91YmxlQkVcbiAgYXJyLmZpbGwgPSBCUC5maWxsXG4gIGFyci5pbnNwZWN0ID0gQlAuaW5zcGVjdFxuICBhcnIudG9BcnJheUJ1ZmZlciA9IEJQLnRvQXJyYXlCdWZmZXJcblxuICByZXR1cm4gYXJyXG59XG5cbnZhciBJTlZBTElEX0JBU0U2NF9SRSA9IC9bXitcXC8wLTlBLXpcXC1dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHN0cmlwcyBvdXQgaW52YWxpZCBjaGFyYWN0ZXJzIGxpa2UgXFxuIGFuZCBcXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgc3RyID0gc3RyaW5ndHJpbShzdHIpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbmZ1bmN0aW9uIHRvSGV4IChuKSB7XG4gIGlmIChuIDwgMTYpIHJldHVybiAnMCcgKyBuLnRvU3RyaW5nKDE2KVxuICByZXR1cm4gbi50b1N0cmluZygxNilcbn1cblxuZnVuY3Rpb24gdXRmOFRvQnl0ZXMgKHN0cmluZywgdW5pdHMpIHtcbiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eVxuICB2YXIgY29kZVBvaW50XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICB2YXIgYnl0ZXMgPSBbXVxuICB2YXIgaSA9IDBcblxuICBmb3IgKDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgY29kZVBvaW50ID0gc3RyaW5nLmNoYXJDb2RlQXQoaSlcblxuICAgIC8vIGlzIHN1cnJvZ2F0ZSBjb21wb25lbnRcbiAgICBpZiAoY29kZVBvaW50ID4gMHhEN0ZGICYmIGNvZGVQb2ludCA8IDB4RTAwMCkge1xuICAgICAgLy8gbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAgIC8vIDIgbGVhZHMgaW4gYSByb3dcbiAgICAgICAgaWYgKGNvZGVQb2ludCA8IDB4REMwMCkge1xuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgICAgY29kZVBvaW50ID0gbGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCA8PCAxMCB8IGNvZGVQb2ludCAtIDB4REMwMCB8IDB4MTAwMDBcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBubyBsZWFkIHlldFxuXG4gICAgICAgIGlmIChjb2RlUG9pbnQgPiAweERCRkYpIHtcbiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdW5wYWlyZWQgbGVhZFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdmFsaWQgbGVhZFxuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAvLyB2YWxpZCBibXAgY2hhciwgYnV0IGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gICAgfVxuXG4gICAgLy8gZW5jb2RlIHV0ZjhcbiAgICBpZiAoY29kZVBvaW50IDwgMHg4MCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKGNvZGVQb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4ODAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgfCAweEMwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDIHwgMHhFMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgyMDAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gNCkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyLCB1bml0cykge1xuICB2YXIgYywgaGksIGxvXG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoKGkgKyBvZmZzZXQgPj0gZHN0Lmxlbmd0aCkgfHwgKGkgPj0gc3JjLmxlbmd0aCkpIGJyZWFrXG4gICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gZGVjb2RlVXRmOENoYXIgKHN0cikge1xuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgweEZGRkQpIC8vIFVURiA4IGludmFsaWQgY2hhclxuICB9XG59XG4iLCJ2YXIgbG9va3VwID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuXG47KGZ1bmN0aW9uIChleHBvcnRzKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuICB2YXIgQXJyID0gKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJylcbiAgICA/IFVpbnQ4QXJyYXlcbiAgICA6IEFycmF5XG5cblx0dmFyIFBMVVMgICA9ICcrJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSCAgPSAnLycuY2hhckNvZGVBdCgwKVxuXHR2YXIgTlVNQkVSID0gJzAnLmNoYXJDb2RlQXQoMClcblx0dmFyIExPV0VSICA9ICdhJy5jaGFyQ29kZUF0KDApXG5cdHZhciBVUFBFUiAgPSAnQScuY2hhckNvZGVBdCgwKVxuXHR2YXIgUExVU19VUkxfU0FGRSA9ICctJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSF9VUkxfU0FGRSA9ICdfJy5jaGFyQ29kZUF0KDApXG5cblx0ZnVuY3Rpb24gZGVjb2RlIChlbHQpIHtcblx0XHR2YXIgY29kZSA9IGVsdC5jaGFyQ29kZUF0KDApXG5cdFx0aWYgKGNvZGUgPT09IFBMVVMgfHxcblx0XHQgICAgY29kZSA9PT0gUExVU19VUkxfU0FGRSlcblx0XHRcdHJldHVybiA2MiAvLyAnKydcblx0XHRpZiAoY29kZSA9PT0gU0xBU0ggfHxcblx0XHQgICAgY29kZSA9PT0gU0xBU0hfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjMgLy8gJy8nXG5cdFx0aWYgKGNvZGUgPCBOVU1CRVIpXG5cdFx0XHRyZXR1cm4gLTEgLy9ubyBtYXRjaFxuXHRcdGlmIChjb2RlIDwgTlVNQkVSICsgMTApXG5cdFx0XHRyZXR1cm4gY29kZSAtIE5VTUJFUiArIDI2ICsgMjZcblx0XHRpZiAoY29kZSA8IFVQUEVSICsgMjYpXG5cdFx0XHRyZXR1cm4gY29kZSAtIFVQUEVSXG5cdFx0aWYgKGNvZGUgPCBMT1dFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBMT1dFUiArIDI2XG5cdH1cblxuXHRmdW5jdGlvbiBiNjRUb0J5dGVBcnJheSAoYjY0KSB7XG5cdFx0dmFyIGksIGosIGwsIHRtcCwgcGxhY2VIb2xkZXJzLCBhcnJcblxuXHRcdGlmIChiNjQubGVuZ3RoICUgNCA+IDApIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCcpXG5cdFx0fVxuXG5cdFx0Ly8gdGhlIG51bWJlciBvZiBlcXVhbCBzaWducyAocGxhY2UgaG9sZGVycylcblx0XHQvLyBpZiB0aGVyZSBhcmUgdHdvIHBsYWNlaG9sZGVycywgdGhhbiB0aGUgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIGl0XG5cdFx0Ly8gcmVwcmVzZW50IG9uZSBieXRlXG5cdFx0Ly8gaWYgdGhlcmUgaXMgb25seSBvbmUsIHRoZW4gdGhlIHRocmVlIGNoYXJhY3RlcnMgYmVmb3JlIGl0IHJlcHJlc2VudCAyIGJ5dGVzXG5cdFx0Ly8gdGhpcyBpcyBqdXN0IGEgY2hlYXAgaGFjayB0byBub3QgZG8gaW5kZXhPZiB0d2ljZVxuXHRcdHZhciBsZW4gPSBiNjQubGVuZ3RoXG5cdFx0cGxhY2VIb2xkZXJzID0gJz0nID09PSBiNjQuY2hhckF0KGxlbiAtIDIpID8gMiA6ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAxKSA/IDEgOiAwXG5cblx0XHQvLyBiYXNlNjQgaXMgNC8zICsgdXAgdG8gdHdvIGNoYXJhY3RlcnMgb2YgdGhlIG9yaWdpbmFsIGRhdGFcblx0XHRhcnIgPSBuZXcgQXJyKGI2NC5sZW5ndGggKiAzIC8gNCAtIHBsYWNlSG9sZGVycylcblxuXHRcdC8vIGlmIHRoZXJlIGFyZSBwbGFjZWhvbGRlcnMsIG9ubHkgZ2V0IHVwIHRvIHRoZSBsYXN0IGNvbXBsZXRlIDQgY2hhcnNcblx0XHRsID0gcGxhY2VIb2xkZXJzID4gMCA/IGI2NC5sZW5ndGggLSA0IDogYjY0Lmxlbmd0aFxuXG5cdFx0dmFyIEwgPSAwXG5cblx0XHRmdW5jdGlvbiBwdXNoICh2KSB7XG5cdFx0XHRhcnJbTCsrXSA9IHZcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGw7IGkgKz0gNCwgaiArPSAzKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDE4KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDEyKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpIDw8IDYpIHwgZGVjb2RlKGI2NC5jaGFyQXQoaSArIDMpKVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwMDApID4+IDE2KVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwKSA+PiA4KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdGlmIChwbGFjZUhvbGRlcnMgPT09IDIpIHtcblx0XHRcdHRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA+PiA0KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH0gZWxzZSBpZiAocGxhY2VIb2xkZXJzID09PSAxKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDEwKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDQpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAyKSkgPj4gMilcblx0XHRcdHB1c2goKHRtcCA+PiA4KSAmIDB4RkYpXG5cdFx0XHRwdXNoKHRtcCAmIDB4RkYpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFyclxuXHR9XG5cblx0ZnVuY3Rpb24gdWludDhUb0Jhc2U2NCAodWludDgpIHtcblx0XHR2YXIgaSxcblx0XHRcdGV4dHJhQnl0ZXMgPSB1aW50OC5sZW5ndGggJSAzLCAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlc1xuXHRcdFx0b3V0cHV0ID0gXCJcIixcblx0XHRcdHRlbXAsIGxlbmd0aFxuXG5cdFx0ZnVuY3Rpb24gZW5jb2RlIChudW0pIHtcblx0XHRcdHJldHVybiBsb29rdXAuY2hhckF0KG51bSlcblx0XHR9XG5cblx0XHRmdW5jdGlvbiB0cmlwbGV0VG9CYXNlNjQgKG51bSkge1xuXHRcdFx0cmV0dXJuIGVuY29kZShudW0gPj4gMTggJiAweDNGKSArIGVuY29kZShudW0gPj4gMTIgJiAweDNGKSArIGVuY29kZShudW0gPj4gNiAmIDB4M0YpICsgZW5jb2RlKG51bSAmIDB4M0YpXG5cdFx0fVxuXG5cdFx0Ly8gZ28gdGhyb3VnaCB0aGUgYXJyYXkgZXZlcnkgdGhyZWUgYnl0ZXMsIHdlJ2xsIGRlYWwgd2l0aCB0cmFpbGluZyBzdHVmZiBsYXRlclxuXHRcdGZvciAoaSA9IDAsIGxlbmd0aCA9IHVpbnQ4Lmxlbmd0aCAtIGV4dHJhQnl0ZXM7IGkgPCBsZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0dGVtcCA9ICh1aW50OFtpXSA8PCAxNikgKyAodWludDhbaSArIDFdIDw8IDgpICsgKHVpbnQ4W2kgKyAyXSlcblx0XHRcdG91dHB1dCArPSB0cmlwbGV0VG9CYXNlNjQodGVtcClcblx0XHR9XG5cblx0XHQvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG5cdFx0c3dpdGNoIChleHRyYUJ5dGVzKSB7XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRcdHRlbXAgPSB1aW50OFt1aW50OC5sZW5ndGggLSAxXVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMilcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA8PCA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSAnPT0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlIDI6XG5cdFx0XHRcdHRlbXAgPSAodWludDhbdWludDgubGVuZ3RoIC0gMl0gPDwgOCkgKyAodWludDhbdWludDgubGVuZ3RoIC0gMV0pXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUodGVtcCA+PiAxMClcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA+PiA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgMikgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0fVxuXG5cdFx0cmV0dXJuIG91dHB1dFxuXHR9XG5cblx0ZXhwb3J0cy50b0J5dGVBcnJheSA9IGI2NFRvQnl0ZUFycmF5XG5cdGV4cG9ydHMuZnJvbUJ5dGVBcnJheSA9IHVpbnQ4VG9CYXNlNjRcbn0odHlwZW9mIGV4cG9ydHMgPT09ICd1bmRlZmluZWQnID8gKHRoaXMuYmFzZTY0anMgPSB7fSkgOiBleHBvcnRzKSlcbiIsImV4cG9ydHMucmVhZCA9IGZ1bmN0aW9uIChidWZmZXIsIG9mZnNldCwgaXNMRSwgbUxlbiwgbkJ5dGVzKSB7XG4gIHZhciBlLCBtLFxuICAgICAgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMSxcbiAgICAgIGVNYXggPSAoMSA8PCBlTGVuKSAtIDEsXG4gICAgICBlQmlhcyA9IGVNYXggPj4gMSxcbiAgICAgIG5CaXRzID0gLTcsXG4gICAgICBpID0gaXNMRSA/IChuQnl0ZXMgLSAxKSA6IDAsXG4gICAgICBkID0gaXNMRSA/IC0xIDogMSxcbiAgICAgIHMgPSBidWZmZXJbb2Zmc2V0ICsgaV1cblxuICBpICs9IGRcblxuICBlID0gcyAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBzID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBlTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IGUgPSBlICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgbSA9IGUgJiAoKDEgPDwgKC1uQml0cykpIC0gMSlcbiAgZSA+Pj0gKC1uQml0cylcbiAgbkJpdHMgKz0gbUxlblxuICBmb3IgKDsgbkJpdHMgPiAwOyBtID0gbSAqIDI1NiArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGMsXG4gICAgICBlTGVuID0gbkJ5dGVzICogOCAtIG1MZW4gLSAxLFxuICAgICAgZU1heCA9ICgxIDw8IGVMZW4pIC0gMSxcbiAgICAgIGVCaWFzID0gZU1heCA+PiAxLFxuICAgICAgcnQgPSAobUxlbiA9PT0gMjMgPyBNYXRoLnBvdygyLCAtMjQpIC0gTWF0aC5wb3coMiwgLTc3KSA6IDApLFxuICAgICAgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpLFxuICAgICAgZCA9IGlzTEUgPyAxIDogLTEsXG4gICAgICBzID0gdmFsdWUgPCAwIHx8ICh2YWx1ZSA9PT0gMCAmJiAxIC8gdmFsdWUgPCAwKSA/IDEgOiAwXG5cbiAgdmFsdWUgPSBNYXRoLmFicyh2YWx1ZSlcblxuICBpZiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBJbmZpbml0eSkge1xuICAgIG0gPSBpc05hTih2YWx1ZSkgPyAxIDogMFxuICAgIGUgPSBlTWF4XG4gIH0gZWxzZSB7XG4gICAgZSA9IE1hdGguZmxvb3IoTWF0aC5sb2codmFsdWUpIC8gTWF0aC5MTjIpXG4gICAgaWYgKHZhbHVlICogKGMgPSBNYXRoLnBvdygyLCAtZSkpIDwgMSkge1xuICAgICAgZS0tXG4gICAgICBjICo9IDJcbiAgICB9XG4gICAgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICB2YWx1ZSArPSBydCAvIGNcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgKz0gcnQgKiBNYXRoLnBvdygyLCAxIC0gZUJpYXMpXG4gICAgfVxuICAgIGlmICh2YWx1ZSAqIGMgPj0gMikge1xuICAgICAgZSsrXG4gICAgICBjIC89IDJcbiAgICB9XG5cbiAgICBpZiAoZSArIGVCaWFzID49IGVNYXgpIHtcbiAgICAgIG0gPSAwXG4gICAgICBlID0gZU1heFxuICAgIH0gZWxzZSBpZiAoZSArIGVCaWFzID49IDEpIHtcbiAgICAgIG0gPSAodmFsdWUgKiBjIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IGUgKyBlQmlhc1xuICAgIH0gZWxzZSB7XG4gICAgICBtID0gdmFsdWUgKiBNYXRoLnBvdygyLCBlQmlhcyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSAwXG4gICAgfVxuICB9XG5cbiAgZm9yICg7IG1MZW4gPj0gODsgYnVmZmVyW29mZnNldCArIGldID0gbSAmIDB4ZmYsIGkgKz0gZCwgbSAvPSAyNTYsIG1MZW4gLT0gOCkge31cblxuICBlID0gKGUgPDwgbUxlbikgfCBtXG4gIGVMZW4gKz0gbUxlblxuICBmb3IgKDsgZUxlbiA+IDA7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGUgJiAweGZmLCBpICs9IGQsIGUgLz0gMjU2LCBlTGVuIC09IDgpIHt9XG5cbiAgYnVmZmVyW29mZnNldCArIGkgLSBkXSB8PSBzICogMTI4XG59XG4iLCJcbi8qKlxuICogaXNBcnJheVxuICovXG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuLyoqXG4gKiB0b1N0cmluZ1xuICovXG5cbnZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBgdmFsYFxuICogaXMgYW4gYXJyYXkuXG4gKlxuICogZXhhbXBsZTpcbiAqXG4gKiAgICAgICAgaXNBcnJheShbXSk7XG4gKiAgICAgICAgLy8gPiB0cnVlXG4gKiAgICAgICAgaXNBcnJheShhcmd1bWVudHMpO1xuICogICAgICAgIC8vID4gZmFsc2VcbiAqICAgICAgICBpc0FycmF5KCcnKTtcbiAqICAgICAgICAvLyA+IGZhbHNlXG4gKlxuICogQHBhcmFtIHttaXhlZH0gdmFsXG4gKiBAcmV0dXJuIHtib29sfVxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheSB8fCBmdW5jdGlvbiAodmFsKSB7XG4gIHJldHVybiAhISB2YWwgJiYgJ1tvYmplY3QgQXJyYXldJyA9PSBzdHIuY2FsbCh2YWwpO1xufTtcbiIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxuXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmICghZHJhaW5pbmcpIHtcbiAgICAgICAgc2V0VGltZW91dChkcmFpblF1ZXVlLCAwKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbi8vIFRPRE8oc2h0eWxtYW4pXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgd2ViIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gb2YgYGRlYnVnKClgLlxuICpcbiAqIEV4cG9zZSBgZGVidWcoKWAgYXMgdGhlIG1vZHVsZS5cbiAqL1xuXG5leHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2RlYnVnJyk7XG5leHBvcnRzLmxvZyA9IGxvZztcbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5zdG9yYWdlID0gJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZVxuICAgICAgICAgICAgICAgJiYgJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZS5zdG9yYWdlXG4gICAgICAgICAgICAgICAgICA/IGNocm9tZS5zdG9yYWdlLmxvY2FsXG4gICAgICAgICAgICAgICAgICA6IGxvY2Fsc3RvcmFnZSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcbiAgJ2xpZ2h0c2VhZ3JlZW4nLFxuICAnZm9yZXN0Z3JlZW4nLFxuICAnZ29sZGVucm9kJyxcbiAgJ2RvZGdlcmJsdWUnLFxuICAnZGFya29yY2hpZCcsXG4gICdjcmltc29uJ1xuXTtcblxuLyoqXG4gKiBDdXJyZW50bHkgb25seSBXZWJLaXQtYmFzZWQgV2ViIEluc3BlY3RvcnMsIEZpcmVmb3ggPj0gdjMxLFxuICogYW5kIHRoZSBGaXJlYnVnIGV4dGVuc2lvbiAoYW55IEZpcmVmb3ggdmVyc2lvbikgYXJlIGtub3duXG4gKiB0byBzdXBwb3J0IFwiJWNcIiBDU1MgY3VzdG9taXphdGlvbnMuXG4gKlxuICogVE9ETzogYWRkIGEgYGxvY2FsU3RvcmFnZWAgdmFyaWFibGUgdG8gZXhwbGljaXRseSBlbmFibGUvZGlzYWJsZSBjb2xvcnNcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG4gIC8vIGlzIHdlYmtpdD8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTY0NTk2MDYvMzc2NzczXG4gIHJldHVybiAoJ1dlYmtpdEFwcGVhcmFuY2UnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkgfHxcbiAgICAvLyBpcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG4gICAgKHdpbmRvdy5jb25zb2xlICYmIChjb25zb2xlLmZpcmVidWcgfHwgKGNvbnNvbGUuZXhjZXB0aW9uICYmIGNvbnNvbGUudGFibGUpKSkgfHxcbiAgICAvLyBpcyBmaXJlZm94ID49IHYzMT9cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcbiAgICAobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLykgJiYgcGFyc2VJbnQoUmVnRXhwLiQxLCAxMCkgPj0gMzEpO1xufVxuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdHRlcnMuaiA9IGZ1bmN0aW9uKHYpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHYpO1xufTtcblxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoKSB7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICB2YXIgdXNlQ29sb3JzID0gdGhpcy51c2VDb2xvcnM7XG5cbiAgYXJnc1swXSA9ICh1c2VDb2xvcnMgPyAnJWMnIDogJycpXG4gICAgKyB0aGlzLm5hbWVzcGFjZVxuICAgICsgKHVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKVxuICAgICsgYXJnc1swXVxuICAgICsgKHVzZUNvbG9ycyA/ICclYyAnIDogJyAnKVxuICAgICsgJysnICsgZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG4gIGlmICghdXNlQ29sb3JzKSByZXR1cm4gYXJncztcblxuICB2YXIgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG4gIGFyZ3MgPSBbYXJnc1swXSwgYywgJ2NvbG9yOiBpbmhlcml0J10uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MsIDEpKTtcblxuICAvLyB0aGUgZmluYWwgXCIlY1wiIGlzIHNvbWV3aGF0IHRyaWNreSwgYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBvdGhlclxuICAvLyBhcmd1bWVudHMgcGFzc2VkIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlICVjLCBzbyB3ZSBuZWVkIHRvXG4gIC8vIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3QgaW5kZXggdG8gaW5zZXJ0IHRoZSBDU1MgaW50b1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgbGFzdEMgPSAwO1xuICBhcmdzWzBdLnJlcGxhY2UoLyVbYS16JV0vZywgZnVuY3Rpb24obWF0Y2gpIHtcbiAgICBpZiAoJyUlJyA9PT0gbWF0Y2gpIHJldHVybjtcbiAgICBpbmRleCsrO1xuICAgIGlmICgnJWMnID09PSBtYXRjaCkge1xuICAgICAgLy8gd2Ugb25seSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgKmxhc3QqICVjXG4gICAgICAvLyAodGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgdGhlaXIgb3duKVxuICAgICAgbGFzdEMgPSBpbmRleDtcbiAgICB9XG4gIH0pO1xuXG4gIGFyZ3Muc3BsaWNlKGxhc3RDLCAwLCBjKTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5sb2coKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmxvZ2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gbG9nKCkge1xuICAvLyB0aGlzIGhhY2tlcnkgaXMgcmVxdWlyZWQgZm9yIElFOC85LCB3aGVyZVxuICAvLyB0aGUgYGNvbnNvbGUubG9nYCBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgJ2FwcGx5J1xuICByZXR1cm4gJ29iamVjdCcgPT09IHR5cGVvZiBjb25zb2xlXG4gICAgJiYgY29uc29sZS5sb2dcbiAgICAmJiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZywgY29uc29sZSwgYXJndW1lbnRzKTtcbn1cblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG4gIHRyeSB7XG4gICAgaWYgKG51bGwgPT0gbmFtZXNwYWNlcykge1xuICAgICAgZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZyA9IG5hbWVzcGFjZXM7XG4gICAgfVxuICB9IGNhdGNoKGUpIHt9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9hZCgpIHtcbiAgdmFyIHI7XG4gIHRyeSB7XG4gICAgciA9IGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZztcbiAgfSBjYXRjaChlKSB7fVxuICByZXR1cm4gcjtcbn1cblxuLyoqXG4gKiBFbmFibGUgbmFtZXNwYWNlcyBsaXN0ZWQgaW4gYGxvY2FsU3RvcmFnZS5kZWJ1Z2AgaW5pdGlhbGx5LlxuICovXG5cbmV4cG9ydHMuZW5hYmxlKGxvYWQoKSk7XG5cbi8qKlxuICogTG9jYWxzdG9yYWdlIGF0dGVtcHRzIHRvIHJldHVybiB0aGUgbG9jYWxzdG9yYWdlLlxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2FmYXJpIHRocm93c1xuICogd2hlbiBhIHVzZXIgZGlzYWJsZXMgY29va2llcy9sb2NhbHN0b3JhZ2VcbiAqIGFuZCB5b3UgYXR0ZW1wdCB0byBhY2Nlc3MgaXQuXG4gKlxuICogQHJldHVybiB7TG9jYWxTdG9yYWdlfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9jYWxzdG9yYWdlKCl7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gIH0gY2F0Y2ggKGUpIHt9XG59XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqXG4gKiBFeHBvc2UgYGRlYnVnKClgIGFzIHRoZSBtb2R1bGUuXG4gKi9cblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZGVidWc7XG5leHBvcnRzLmNvZXJjZSA9IGNvZXJjZTtcbmV4cG9ydHMuZGlzYWJsZSA9IGRpc2FibGU7XG5leHBvcnRzLmVuYWJsZSA9IGVuYWJsZTtcbmV4cG9ydHMuZW5hYmxlZCA9IGVuYWJsZWQ7XG5leHBvcnRzLmh1bWFuaXplID0gcmVxdWlyZSgnbXMnKTtcblxuLyoqXG4gKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBkZWJ1ZyBtb2RlIG5hbWVzLCBhbmQgbmFtZXMgdG8gc2tpcC5cbiAqL1xuXG5leHBvcnRzLm5hbWVzID0gW107XG5leHBvcnRzLnNraXBzID0gW107XG5cbi8qKlxuICogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuICpcbiAqIFZhbGlkIGtleSBuYW1lcyBhcmUgYSBzaW5nbGUsIGxvd2VyY2FzZWQgbGV0dGVyLCBpLmUuIFwiblwiLlxuICovXG5cbmV4cG9ydHMuZm9ybWF0dGVycyA9IHt9O1xuXG4vKipcbiAqIFByZXZpb3VzbHkgYXNzaWduZWQgY29sb3IuXG4gKi9cblxudmFyIHByZXZDb2xvciA9IDA7XG5cbi8qKlxuICogUHJldmlvdXMgbG9nIHRpbWVzdGFtcC5cbiAqL1xuXG52YXIgcHJldlRpbWU7XG5cbi8qKlxuICogU2VsZWN0IGEgY29sb3IuXG4gKlxuICogQHJldHVybiB7TnVtYmVyfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VsZWN0Q29sb3IoKSB7XG4gIHJldHVybiBleHBvcnRzLmNvbG9yc1twcmV2Q29sb3IrKyAlIGV4cG9ydHMuY29sb3JzLmxlbmd0aF07XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZVxuICogQHJldHVybiB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGRlYnVnKG5hbWVzcGFjZSkge1xuXG4gIC8vIGRlZmluZSB0aGUgYGRpc2FibGVkYCB2ZXJzaW9uXG4gIGZ1bmN0aW9uIGRpc2FibGVkKCkge1xuICB9XG4gIGRpc2FibGVkLmVuYWJsZWQgPSBmYWxzZTtcblxuICAvLyBkZWZpbmUgdGhlIGBlbmFibGVkYCB2ZXJzaW9uXG4gIGZ1bmN0aW9uIGVuYWJsZWQoKSB7XG5cbiAgICB2YXIgc2VsZiA9IGVuYWJsZWQ7XG5cbiAgICAvLyBzZXQgYGRpZmZgIHRpbWVzdGFtcFxuICAgIHZhciBjdXJyID0gK25ldyBEYXRlKCk7XG4gICAgdmFyIG1zID0gY3VyciAtIChwcmV2VGltZSB8fCBjdXJyKTtcbiAgICBzZWxmLmRpZmYgPSBtcztcbiAgICBzZWxmLnByZXYgPSBwcmV2VGltZTtcbiAgICBzZWxmLmN1cnIgPSBjdXJyO1xuICAgIHByZXZUaW1lID0gY3VycjtcblxuICAgIC8vIGFkZCB0aGUgYGNvbG9yYCBpZiBub3Qgc2V0XG4gICAgaWYgKG51bGwgPT0gc2VsZi51c2VDb2xvcnMpIHNlbGYudXNlQ29sb3JzID0gZXhwb3J0cy51c2VDb2xvcnMoKTtcbiAgICBpZiAobnVsbCA9PSBzZWxmLmNvbG9yICYmIHNlbGYudXNlQ29sb3JzKSBzZWxmLmNvbG9yID0gc2VsZWN0Q29sb3IoKTtcblxuICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblxuICAgIGFyZ3NbMF0gPSBleHBvcnRzLmNvZXJjZShhcmdzWzBdKTtcblxuICAgIGlmICgnc3RyaW5nJyAhPT0gdHlwZW9mIGFyZ3NbMF0pIHtcbiAgICAgIC8vIGFueXRoaW5nIGVsc2UgbGV0J3MgaW5zcGVjdCB3aXRoICVvXG4gICAgICBhcmdzID0gWyclbyddLmNvbmNhdChhcmdzKTtcbiAgICB9XG5cbiAgICAvLyBhcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgYXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16JV0pL2csIGZ1bmN0aW9uKG1hdGNoLCBmb3JtYXQpIHtcbiAgICAgIC8vIGlmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcbiAgICAgIGlmIChtYXRjaCA9PT0gJyUlJykgcmV0dXJuIG1hdGNoO1xuICAgICAgaW5kZXgrKztcbiAgICAgIHZhciBmb3JtYXR0ZXIgPSBleHBvcnRzLmZvcm1hdHRlcnNbZm9ybWF0XTtcbiAgICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgZm9ybWF0dGVyKSB7XG4gICAgICAgIHZhciB2YWwgPSBhcmdzW2luZGV4XTtcbiAgICAgICAgbWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG4gICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcbiAgICAgICAgYXJncy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBpbmRleC0tO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1hdGNoO1xuICAgIH0pO1xuXG4gICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBleHBvcnRzLmZvcm1hdEFyZ3MpIHtcbiAgICAgIGFyZ3MgPSBleHBvcnRzLmZvcm1hdEFyZ3MuYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuICAgIHZhciBsb2dGbiA9IGVuYWJsZWQubG9nIHx8IGV4cG9ydHMubG9nIHx8IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7XG4gICAgbG9nRm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gIH1cbiAgZW5hYmxlZC5lbmFibGVkID0gdHJ1ZTtcblxuICB2YXIgZm4gPSBleHBvcnRzLmVuYWJsZWQobmFtZXNwYWNlKSA/IGVuYWJsZWQgOiBkaXNhYmxlZDtcblxuICBmbi5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cbiAgcmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcbiAqIHNlcGFyYXRlZCBieSBhIGNvbG9uIGFuZCB3aWxkY2FyZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcbiAgZXhwb3J0cy5zYXZlKG5hbWVzcGFjZXMpO1xuXG4gIHZhciBzcGxpdCA9IChuYW1lc3BhY2VzIHx8ICcnKS5zcGxpdCgvW1xccyxdKy8pO1xuICB2YXIgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoIXNwbGl0W2ldKSBjb250aW51ZTsgLy8gaWdub3JlIGVtcHR5IHN0cmluZ3NcbiAgICBuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcbiAgICBpZiAobmFtZXNwYWNlc1swXSA9PT0gJy0nKSB7XG4gICAgICBleHBvcnRzLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzLnN1YnN0cigxKSArICckJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHBvcnRzLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkaXNhYmxlKCkge1xuICBleHBvcnRzLmVuYWJsZSgnJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBlbmFibGVkKG5hbWUpIHtcbiAgdmFyIGksIGxlbjtcbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5za2lwcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLnNraXBzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ29lcmNlIGB2YWxgLlxuICpcbiAqIEBwYXJhbSB7TWl4ZWR9IHZhbFxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb2VyY2UodmFsKSB7XG4gIGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikgcmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcbiAgcmV0dXJuIHZhbDtcbn1cbiIsIi8qKlxuICogSGVscGVycy5cbiAqL1xuXG52YXIgcyA9IDEwMDA7XG52YXIgbSA9IHMgKiA2MDtcbnZhciBoID0gbSAqIDYwO1xudmFyIGQgPSBoICogMjQ7XG52YXIgeSA9IGQgKiAzNjUuMjU7XG5cbi8qKlxuICogUGFyc2Ugb3IgZm9ybWF0IHRoZSBnaXZlbiBgdmFsYC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAtIGBsb25nYCB2ZXJib3NlIGZvcm1hdHRpbmcgW2ZhbHNlXVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0gdmFsXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWwsIG9wdGlvbnMpe1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgaWYgKCdzdHJpbmcnID09IHR5cGVvZiB2YWwpIHJldHVybiBwYXJzZSh2YWwpO1xuICByZXR1cm4gb3B0aW9ucy5sb25nXG4gICAgPyBsb25nKHZhbClcbiAgICA6IHNob3J0KHZhbCk7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBgc3RyYCBhbmQgcmV0dXJuIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgc3RyID0gJycgKyBzdHI7XG4gIGlmIChzdHIubGVuZ3RoID4gMTAwMDApIHJldHVybjtcbiAgdmFyIG1hdGNoID0gL14oKD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhzdHIpO1xuICBpZiAoIW1hdGNoKSByZXR1cm47XG4gIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gIHZhciB0eXBlID0gKG1hdGNoWzJdIHx8ICdtcycpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3llYXJzJzpcbiAgICBjYXNlICd5ZWFyJzpcbiAgICBjYXNlICd5cnMnOlxuICAgIGNhc2UgJ3lyJzpcbiAgICBjYXNlICd5JzpcbiAgICAgIHJldHVybiBuICogeTtcbiAgICBjYXNlICdkYXlzJzpcbiAgICBjYXNlICdkYXknOlxuICAgIGNhc2UgJ2QnOlxuICAgICAgcmV0dXJuIG4gKiBkO1xuICAgIGNhc2UgJ2hvdXJzJzpcbiAgICBjYXNlICdob3VyJzpcbiAgICBjYXNlICdocnMnOlxuICAgIGNhc2UgJ2hyJzpcbiAgICBjYXNlICdoJzpcbiAgICAgIHJldHVybiBuICogaDtcbiAgICBjYXNlICdtaW51dGVzJzpcbiAgICBjYXNlICdtaW51dGUnOlxuICAgIGNhc2UgJ21pbnMnOlxuICAgIGNhc2UgJ21pbic6XG4gICAgY2FzZSAnbSc6XG4gICAgICByZXR1cm4gbiAqIG07XG4gICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgY2FzZSAnc2Vjb25kJzpcbiAgICBjYXNlICdzZWNzJzpcbiAgICBjYXNlICdzZWMnOlxuICAgIGNhc2UgJ3MnOlxuICAgICAgcmV0dXJuIG4gKiBzO1xuICAgIGNhc2UgJ21pbGxpc2Vjb25kcyc6XG4gICAgY2FzZSAnbWlsbGlzZWNvbmQnOlxuICAgIGNhc2UgJ21zZWNzJzpcbiAgICBjYXNlICdtc2VjJzpcbiAgICBjYXNlICdtcyc6XG4gICAgICByZXR1cm4gbjtcbiAgfVxufVxuXG4vKipcbiAqIFNob3J0IGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNob3J0KG1zKSB7XG4gIGlmIChtcyA+PSBkKSByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGQpICsgJ2QnO1xuICBpZiAobXMgPj0gaCkgcmV0dXJuIE1hdGgucm91bmQobXMgLyBoKSArICdoJztcbiAgaWYgKG1zID49IG0pIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gbSkgKyAnbSc7XG4gIGlmIChtcyA+PSBzKSByZXR1cm4gTWF0aC5yb3VuZChtcyAvIHMpICsgJ3MnO1xuICByZXR1cm4gbXMgKyAnbXMnO1xufVxuXG4vKipcbiAqIExvbmcgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9uZyhtcykge1xuICByZXR1cm4gcGx1cmFsKG1zLCBkLCAnZGF5JylcbiAgICB8fCBwbHVyYWwobXMsIGgsICdob3VyJylcbiAgICB8fCBwbHVyYWwobXMsIG0sICdtaW51dGUnKVxuICAgIHx8IHBsdXJhbChtcywgcywgJ3NlY29uZCcpXG4gICAgfHwgbXMgKyAnIG1zJztcbn1cblxuLyoqXG4gKiBQbHVyYWxpemF0aW9uIGhlbHBlci5cbiAqL1xuXG5mdW5jdGlvbiBwbHVyYWwobXMsIG4sIG5hbWUpIHtcbiAgaWYgKG1zIDwgbikgcmV0dXJuO1xuICBpZiAobXMgPCBuICogMS41KSByZXR1cm4gTWF0aC5mbG9vcihtcyAvIG4pICsgJyAnICsgbmFtZTtcbiAgcmV0dXJuIE1hdGguY2VpbChtcyAvIG4pICsgJyAnICsgbmFtZSArICdzJztcbn1cbiIsIi8qXG4gKiAkSWQ6IGJhc2U2NC5qcyx2IDIuMTUgMjAxNC8wNC8wNSAxMjo1ODo1NyBkYW5rb2dhaSBFeHAgZGFua29nYWkgJFxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqXG4gKiAgUmVmZXJlbmNlczpcbiAqICAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFzZTY0XG4gKi9cblxuKGZ1bmN0aW9uKGdsb2JhbCkge1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICAvLyBleGlzdGluZyB2ZXJzaW9uIGZvciBub0NvbmZsaWN0KClcbiAgICB2YXIgX0Jhc2U2NCA9IGdsb2JhbC5CYXNlNjQ7XG4gICAgdmFyIHZlcnNpb24gPSBcIjIuMS44XCI7XG4gICAgLy8gaWYgbm9kZS5qcywgd2UgdXNlIEJ1ZmZlclxuICAgIHZhciBidWZmZXI7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgIGJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcbiAgICB9XG4gICAgLy8gY29uc3RhbnRzXG4gICAgdmFyIGI2NGNoYXJzXG4gICAgICAgID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuICAgIHZhciBiNjR0YWIgPSBmdW5jdGlvbihiaW4pIHtcbiAgICAgICAgdmFyIHQgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBiaW4ubGVuZ3RoOyBpIDwgbDsgaSsrKSB0W2Jpbi5jaGFyQXQoaSldID0gaTtcbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfShiNjRjaGFycyk7XG4gICAgdmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG4gICAgLy8gZW5jb2RlciBzdHVmZlxuICAgIHZhciBjYl91dG9iID0gZnVuY3Rpb24oYykge1xuICAgICAgICBpZiAoYy5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICB2YXIgY2MgPSBjLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgICByZXR1cm4gY2MgPCAweDgwID8gY1xuICAgICAgICAgICAgICAgIDogY2MgPCAweDgwMCA/IChmcm9tQ2hhckNvZGUoMHhjMCB8IChjYyA+Pj4gNikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoY2MgJiAweDNmKSkpXG4gICAgICAgICAgICAgICAgOiAoZnJvbUNoYXJDb2RlKDB4ZTAgfCAoKGNjID4+PiAxMikgJiAweDBmKSlcbiAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKChjYyA+Pj4gIDYpICYgMHgzZikpXG4gICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8ICggY2MgICAgICAgICAmIDB4M2YpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgY2MgPSAweDEwMDAwXG4gICAgICAgICAgICAgICAgKyAoYy5jaGFyQ29kZUF0KDApIC0gMHhEODAwKSAqIDB4NDAwXG4gICAgICAgICAgICAgICAgKyAoYy5jaGFyQ29kZUF0KDEpIC0gMHhEQzAwKTtcbiAgICAgICAgICAgIHJldHVybiAoZnJvbUNoYXJDb2RlKDB4ZjAgfCAoKGNjID4+PiAxOCkgJiAweDA3KSlcbiAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8ICgoY2MgPj4+IDEyKSAmIDB4M2YpKVxuICAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKChjYyA+Pj4gIDYpICYgMHgzZikpXG4gICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoIGNjICAgICAgICAgJiAweDNmKSkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB2YXIgcmVfdXRvYiA9IC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZGXXxbXlxceDAwLVxceDdGXS9nO1xuICAgIHZhciB1dG9iID0gZnVuY3Rpb24odSkge1xuICAgICAgICByZXR1cm4gdS5yZXBsYWNlKHJlX3V0b2IsIGNiX3V0b2IpO1xuICAgIH07XG4gICAgdmFyIGNiX2VuY29kZSA9IGZ1bmN0aW9uKGNjYykge1xuICAgICAgICB2YXIgcGFkbGVuID0gWzAsIDIsIDFdW2NjYy5sZW5ndGggJSAzXSxcbiAgICAgICAgb3JkID0gY2NjLmNoYXJDb2RlQXQoMCkgPDwgMTZcbiAgICAgICAgICAgIHwgKChjY2MubGVuZ3RoID4gMSA/IGNjYy5jaGFyQ29kZUF0KDEpIDogMCkgPDwgOClcbiAgICAgICAgICAgIHwgKChjY2MubGVuZ3RoID4gMiA/IGNjYy5jaGFyQ29kZUF0KDIpIDogMCkpLFxuICAgICAgICBjaGFycyA9IFtcbiAgICAgICAgICAgIGI2NGNoYXJzLmNoYXJBdCggb3JkID4+PiAxOCksXG4gICAgICAgICAgICBiNjRjaGFycy5jaGFyQXQoKG9yZCA+Pj4gMTIpICYgNjMpLFxuICAgICAgICAgICAgcGFkbGVuID49IDIgPyAnPScgOiBiNjRjaGFycy5jaGFyQXQoKG9yZCA+Pj4gNikgJiA2MyksXG4gICAgICAgICAgICBwYWRsZW4gPj0gMSA/ICc9JyA6IGI2NGNoYXJzLmNoYXJBdChvcmQgJiA2MylcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICAgIH07XG4gICAgdmFyIGJ0b2EgPSBnbG9iYWwuYnRvYSA/IGZ1bmN0aW9uKGIpIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbC5idG9hKGIpO1xuICAgIH0gOiBmdW5jdGlvbihiKSB7XG4gICAgICAgIHJldHVybiBiLnJlcGxhY2UoL1tcXHNcXFNdezEsM30vZywgY2JfZW5jb2RlKTtcbiAgICB9O1xuICAgIHZhciBfZW5jb2RlID0gYnVmZmVyID8gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgcmV0dXJuICh1LmNvbnN0cnVjdG9yID09PSBidWZmZXIuY29uc3RydWN0b3IgPyB1IDogbmV3IGJ1ZmZlcih1KSlcbiAgICAgICAgLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgIH1cbiAgICA6IGZ1bmN0aW9uICh1KSB7IHJldHVybiBidG9hKHV0b2IodSkpIH1cbiAgICA7XG4gICAgdmFyIGVuY29kZSA9IGZ1bmN0aW9uKHUsIHVyaXNhZmUpIHtcbiAgICAgICAgcmV0dXJuICF1cmlzYWZlXG4gICAgICAgICAgICA/IF9lbmNvZGUoU3RyaW5nKHUpKVxuICAgICAgICAgICAgOiBfZW5jb2RlKFN0cmluZyh1KSkucmVwbGFjZSgvWytcXC9dL2csIGZ1bmN0aW9uKG0wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG0wID09ICcrJyA/ICctJyA6ICdfJztcbiAgICAgICAgICAgIH0pLnJlcGxhY2UoLz0vZywgJycpO1xuICAgIH07XG4gICAgdmFyIGVuY29kZVVSSSA9IGZ1bmN0aW9uKHUpIHsgcmV0dXJuIGVuY29kZSh1LCB0cnVlKSB9O1xuICAgIC8vIGRlY29kZXIgc3R1ZmZcbiAgICB2YXIgcmVfYnRvdSA9IG5ldyBSZWdFeHAoW1xuICAgICAgICAnW1xceEMwLVxceERGXVtcXHg4MC1cXHhCRl0nLFxuICAgICAgICAnW1xceEUwLVxceEVGXVtcXHg4MC1cXHhCRl17Mn0nLFxuICAgICAgICAnW1xceEYwLVxceEY3XVtcXHg4MC1cXHhCRl17M30nXG4gICAgXS5qb2luKCd8JyksICdnJyk7XG4gICAgdmFyIGNiX2J0b3UgPSBmdW5jdGlvbihjY2NjKSB7XG4gICAgICAgIHN3aXRjaChjY2NjLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICB2YXIgY3AgPSAoKDB4MDcgJiBjY2NjLmNoYXJDb2RlQXQoMCkpIDw8IDE4KVxuICAgICAgICAgICAgICAgIHwgICAgKCgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKSA8PCAxMilcbiAgICAgICAgICAgICAgICB8ICAgICgoMHgzZiAmIGNjY2MuY2hhckNvZGVBdCgyKSkgPDwgIDYpXG4gICAgICAgICAgICAgICAgfCAgICAgKDB4M2YgJiBjY2NjLmNoYXJDb2RlQXQoMykpLFxuICAgICAgICAgICAgb2Zmc2V0ID0gY3AgLSAweDEwMDAwO1xuICAgICAgICAgICAgcmV0dXJuIChmcm9tQ2hhckNvZGUoKG9mZnNldCAgPj4+IDEwKSArIDB4RDgwMClcbiAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoKG9mZnNldCAmIDB4M0ZGKSArIDB4REMwMCkpO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gZnJvbUNoYXJDb2RlKFxuICAgICAgICAgICAgICAgICgoMHgwZiAmIGNjY2MuY2hhckNvZGVBdCgwKSkgPDwgMTIpXG4gICAgICAgICAgICAgICAgICAgIHwgKCgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKSA8PCA2KVxuICAgICAgICAgICAgICAgICAgICB8ICAoMHgzZiAmIGNjY2MuY2hhckNvZGVBdCgyKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gIGZyb21DaGFyQ29kZShcbiAgICAgICAgICAgICAgICAoKDB4MWYgJiBjY2NjLmNoYXJDb2RlQXQoMCkpIDw8IDYpXG4gICAgICAgICAgICAgICAgICAgIHwgICgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdmFyIGJ0b3UgPSBmdW5jdGlvbihiKSB7XG4gICAgICAgIHJldHVybiBiLnJlcGxhY2UocmVfYnRvdSwgY2JfYnRvdSk7XG4gICAgfTtcbiAgICB2YXIgY2JfZGVjb2RlID0gZnVuY3Rpb24oY2NjYykge1xuICAgICAgICB2YXIgbGVuID0gY2NjYy5sZW5ndGgsXG4gICAgICAgIHBhZGxlbiA9IGxlbiAlIDQsXG4gICAgICAgIG4gPSAobGVuID4gMCA/IGI2NHRhYltjY2NjLmNoYXJBdCgwKV0gPDwgMTggOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMSA/IGI2NHRhYltjY2NjLmNoYXJBdCgxKV0gPDwgMTIgOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMiA/IGI2NHRhYltjY2NjLmNoYXJBdCgyKV0gPDwgIDYgOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMyA/IGI2NHRhYltjY2NjLmNoYXJBdCgzKV0gICAgICAgOiAwKSxcbiAgICAgICAgY2hhcnMgPSBbXG4gICAgICAgICAgICBmcm9tQ2hhckNvZGUoIG4gPj4+IDE2KSxcbiAgICAgICAgICAgIGZyb21DaGFyQ29kZSgobiA+Pj4gIDgpICYgMHhmZiksXG4gICAgICAgICAgICBmcm9tQ2hhckNvZGUoIG4gICAgICAgICAmIDB4ZmYpXG4gICAgICAgIF07XG4gICAgICAgIGNoYXJzLmxlbmd0aCAtPSBbMCwgMCwgMiwgMV1bcGFkbGVuXTtcbiAgICAgICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICAgIH07XG4gICAgdmFyIGF0b2IgPSBnbG9iYWwuYXRvYiA/IGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbC5hdG9iKGEpO1xuICAgIH0gOiBmdW5jdGlvbihhKXtcbiAgICAgICAgcmV0dXJuIGEucmVwbGFjZSgvW1xcc1xcU117MSw0fS9nLCBjYl9kZWNvZGUpO1xuICAgIH07XG4gICAgdmFyIF9kZWNvZGUgPSBidWZmZXIgPyBmdW5jdGlvbihhKSB7XG4gICAgICAgIHJldHVybiAoYS5jb25zdHJ1Y3RvciA9PT0gYnVmZmVyLmNvbnN0cnVjdG9yXG4gICAgICAgICAgICAgICAgPyBhIDogbmV3IGJ1ZmZlcihhLCAnYmFzZTY0JykpLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIDogZnVuY3Rpb24oYSkgeyByZXR1cm4gYnRvdShhdG9iKGEpKSB9O1xuICAgIHZhciBkZWNvZGUgPSBmdW5jdGlvbihhKXtcbiAgICAgICAgcmV0dXJuIF9kZWNvZGUoXG4gICAgICAgICAgICBTdHJpbmcoYSkucmVwbGFjZSgvWy1fXS9nLCBmdW5jdGlvbihtMCkgeyByZXR1cm4gbTAgPT0gJy0nID8gJysnIDogJy8nIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1teQS1aYS16MC05XFwrXFwvXS9nLCAnJylcbiAgICAgICAgKTtcbiAgICB9O1xuICAgIHZhciBub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBCYXNlNjQgPSBnbG9iYWwuQmFzZTY0O1xuICAgICAgICBnbG9iYWwuQmFzZTY0ID0gX0Jhc2U2NDtcbiAgICAgICAgcmV0dXJuIEJhc2U2NDtcbiAgICB9O1xuICAgIC8vIGV4cG9ydCBCYXNlNjRcbiAgICBnbG9iYWwuQmFzZTY0ID0ge1xuICAgICAgICBWRVJTSU9OOiB2ZXJzaW9uLFxuICAgICAgICBhdG9iOiBhdG9iLFxuICAgICAgICBidG9hOiBidG9hLFxuICAgICAgICBmcm9tQmFzZTY0OiBkZWNvZGUsXG4gICAgICAgIHRvQmFzZTY0OiBlbmNvZGUsXG4gICAgICAgIHV0b2I6IHV0b2IsXG4gICAgICAgIGVuY29kZTogZW5jb2RlLFxuICAgICAgICBlbmNvZGVVUkk6IGVuY29kZVVSSSxcbiAgICAgICAgYnRvdTogYnRvdSxcbiAgICAgICAgZGVjb2RlOiBkZWNvZGUsXG4gICAgICAgIG5vQ29uZmxpY3Q6IG5vQ29uZmxpY3RcbiAgICB9O1xuICAgIC8vIGlmIEVTNSBpcyBhdmFpbGFibGUsIG1ha2UgQmFzZTY0LmV4dGVuZFN0cmluZygpIGF2YWlsYWJsZVxuICAgIGlmICh0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBub0VudW0gPSBmdW5jdGlvbih2KXtcbiAgICAgICAgICAgIHJldHVybiB7dmFsdWU6dixlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9O1xuICAgICAgICB9O1xuICAgICAgICBnbG9iYWwuQmFzZTY0LmV4dGVuZFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLCAnZnJvbUJhc2U2NCcsIG5vRW51bShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGUodGhpcylcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZSwgJ3RvQmFzZTY0Jywgbm9FbnVtKGZ1bmN0aW9uICh1cmlzYWZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGUodGhpcywgdXJpc2FmZSlcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZSwgJ3RvQmFzZTY0VVJJJywgbm9FbnVtKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZSh0aGlzLCB0cnVlKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gdGhhdCdzIGl0IVxuICAgIGlmIChnbG9iYWxbJ01ldGVvciddKSB7XG4gICAgICAgQmFzZTY0ID0gZ2xvYmFsLkJhc2U2NDsgLy8gZm9yIG5vcm1hbCBleHBvcnQgaW4gTWV0ZW9yLmpzXG4gICAgfVxufSkodGhpcyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuL3V0aWwvY29udGFpbmVyJyksXG4gICAgdHJhdmVyc2UgPSByZXF1aXJlKCcuL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBmb3JtYXRzID0gcmVxdWlyZSgnLi91dGlsL2Zvcm1hdHMnKTtcblxudmFyIGRlcmVmID0gcmVxdWlyZSgnZGVyZWYnKTtcblxuZnVuY3Rpb24gZ2VuZXJhdGUoc2NoZW1hLCByZWZzKSB7XG4gIHZhciAkID0gZGVyZWYoKTtcblxuICB0cnkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlZnMpKSB7XG4gICAgICByZXR1cm4gdHJhdmVyc2UoJChzY2hlbWEsIHJlZnMsIHRydWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJC5yZWZzID0gcmVmcyB8fCB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhdmVyc2UoJChzY2hlbWEsIHRydWUpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlLnBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlLm1lc3NhZ2UgKyAnIGluICcgKyAnLycgKyBlLnBhdGguam9pbignLycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cblxuZ2VuZXJhdGUuZm9ybWF0cyA9IGZvcm1hdHM7XG5nZW5lcmF0ZS5leHRlbmQgPSBjb250YWluZXIuc2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdlbmVyYXRlO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKSxcbiAgICB0cmF2ZXJzZSA9IHJlcXVpcmUoJy4uL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBoYXNQcm9wcyA9IHJlcXVpcmUoJy4uL3V0aWwvaGFzLXByb3BzJyk7XG5cbnZhciBQYXJzZUVycm9yID0gcmVxdWlyZSgnLi4vdXRpbC9lcnJvcicpO1xuXG5mdW5jdGlvbiB1bmlxdWUocGF0aCwgaXRlbXMsIHZhbHVlLCBzYW1wbGUpIHtcbiAgdmFyIHRtcCA9IFtdLFxuICAgICAgc2VlbiA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsob2JqKSB7XG4gICAgdmFyIGpzb24gPSBKU09OLnN0cmluZ2lmeShvYmopO1xuXG4gICAgaWYgKHNlZW4uaW5kZXhPZihqc29uKSA9PT0gLTEpIHtcbiAgICAgIHNlZW4ucHVzaChqc29uKTtcbiAgICAgIHRtcC5wdXNoKG9iaik7XG4gICAgfVxuICB9XG5cbiAgaXRlbXMuZm9yRWFjaCh3YWxrKTtcblxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICB2YXIgbGltaXQgPSAxMDA7XG5cbiAgd2hpbGUgKHRtcC5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aCkge1xuICAgIHdhbGsodHJhdmVyc2UodmFsdWUuaXRlbXMgfHwgc2FtcGxlLCBwYXRoKSk7XG5cbiAgICBpZiAoIWxpbWl0LS0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0bXA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgdmFyIGl0ZW1zID0gW107XG5cbiAgaWYgKCEodmFsdWUuaXRlbXMgfHwgdmFsdWUuYWRkaXRpb25hbEl0ZW1zKSkge1xuICAgIGlmIChoYXNQcm9wcyh2YWx1ZSwgJ21pbkl0ZW1zJywgJ21heEl0ZW1zJywgJ3VuaXF1ZUl0ZW1zJykpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKCdtaXNzaW5nIGl0ZW1zIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUpLCBwYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZS5pdGVtcykpIHtcbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShpdGVtcywgdmFsdWUuaXRlbXMubWFwKGZ1bmN0aW9uKGl0ZW0sIGtleSkge1xuICAgICAgcmV0dXJuIHRyYXZlcnNlKGl0ZW0sIHBhdGguY29uY2F0KFsnaXRlbXMnLCBrZXldKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgdmFyIGxlbmd0aCA9IHJhbmRvbSh2YWx1ZS5taW5JdGVtcywgdmFsdWUubWF4SXRlbXMsIDEsIDUpLFxuICAgICAgc2FtcGxlID0gdHlwZW9mIHZhbHVlLmFkZGl0aW9uYWxJdGVtcyA9PT0gJ29iamVjdCcgPyB2YWx1ZS5hZGRpdGlvbmFsSXRlbXMgOiB7fTtcblxuICBmb3IgKHZhciBjdXJyZW50ID0gaXRlbXMubGVuZ3RoOyBjdXJyZW50IDwgbGVuZ3RoOyBjdXJyZW50ICs9IDEpIHtcbiAgICBpdGVtcy5wdXNoKHRyYXZlcnNlKHZhbHVlLml0ZW1zIHx8IHNhbXBsZSwgcGF0aC5jb25jYXQoWydpdGVtcycsIGN1cnJlbnRdKSkpO1xuICB9XG5cbiAgaWYgKHZhbHVlLnVuaXF1ZUl0ZW1zKSB7XG4gICAgcmV0dXJuIHVuaXF1ZShwYXRoLmNvbmNhdChbJ2l0ZW1zJ10pLCBpdGVtcywgdmFsdWUsIHNhbXBsZSk7XG4gIH1cblxuICByZXR1cm4gaXRlbXM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKSA+IDAuNTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBudW1iZXIgPSByZXF1aXJlKCcuL251bWJlcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHZhbHVlLmhhc1ByZWNpc2lvbiA9IGZhbHNlO1xuXG4gIHJldHVybiBNYXRoLmZsb29yKG51bWJlcih2YWx1ZSkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG51bGw7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgTUlOX0lOVEVHRVIgPSAtMTAwMDAwMDAwLFxuICAgIE1BWF9JTlRFR0VSID0gMTAwMDAwMDAwO1xuXG52YXIgc3RyaW5nID0gcmVxdWlyZSgnLi9zdHJpbmcnKSxcbiAgICByYW5kb20gPSByZXF1aXJlKCcuLi91dGlsL3JhbmRvbScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICh2YWx1ZS5mYWtlciB8fCB2YWx1ZS5jaGFuY2UpIHtcbiAgICByZXR1cm4gc3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHZhciBtaW4gPSB0eXBlb2YgdmFsdWUubWluaW11bSA9PT0gJ3VuZGVmaW5lZCcgPyBNSU5fSU5URUdFUiA6IHZhbHVlLm1pbmltdW0sXG4gICAgICBtYXggPSB0eXBlb2YgdmFsdWUubWF4aW11bSA9PT0gJ3VuZGVmaW5lZCcgPyBNQVhfSU5URUdFUiA6IHZhbHVlLm1heGltdW07XG5cbiAgaWYgKHZhbHVlLmV4Y2x1c2l2ZU1pbmltdW0gJiYgdmFsdWUubWluaW11bSkge1xuICAgIG1pbiArPSAxO1xuICB9XG5cbiAgaWYgKHZhbHVlLmV4Y2x1c2l2ZU1heGltdW0gJiYgdmFsdWUubWF4aW11bSkge1xuICAgIG1heCAtPSAxO1xuICB9XG5cbiAgaWYgKHZhbHVlLm11bHRpcGxlT2YpIHtcbiAgICB2YXIgYmFzZSA9IHJhbmRvbShNYXRoLmZsb29yKG1pbiAvIHZhbHVlLm11bHRpcGxlT2YpLCBNYXRoLmZsb29yKG1heCAvIHZhbHVlLm11bHRpcGxlT2YpKSAqIHZhbHVlLm11bHRpcGxlT2Y7XG5cbiAgICB3aGlsZSAoYmFzZSA8IG1pbikge1xuICAgICAgYmFzZSArPSB2YWx1ZS5tdWx0aXBsZU9mO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgaWYgKHZhbHVlLmhhc1ByZWNpc2lvbikge1xuICAgIHJldHVybiByYW5kb20oZmFsc2UsIG1pbiwgbWF4KTtcbiAgfVxuXG4gIHJldHVybiByYW5kb20oTWF0aC5yYW5kb20oKSA+IDAuNSwgbWluLCBtYXgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbnRhaW5lciA9IHJlcXVpcmUoJy4uL3V0aWwvY29udGFpbmVyJyksXG4gICAgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKSxcbiAgICB0cmF2ZXJzZSA9IHJlcXVpcmUoJy4uL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBoYXNQcm9wcyA9IHJlcXVpcmUoJy4uL3V0aWwvaGFzLXByb3BzJyk7XG5cbnZhciBmYWtlciA9IGNvbnRhaW5lci5nZXQoJ2Zha2VyJyksXG4gICAgUmFuZEV4cCA9IGNvbnRhaW5lci5nZXQoJ3JhbmRleHAnKSxcbiAgICByYW5kZXhwID0gUmFuZEV4cC5yYW5kZXhwO1xuXG52YXIgUGFyc2VFcnJvciA9IHJlcXVpcmUoJy4uL3V0aWwvZXJyb3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xuICB2YXIgcHJvcHMgPSB7fTtcblxuICBpZiAoISh2YWx1ZS5wcm9wZXJ0aWVzIHx8IHZhbHVlLnBhdHRlcm5Qcm9wZXJ0aWVzIHx8IHZhbHVlLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKSkge1xuICAgIGlmIChoYXNQcm9wcyh2YWx1ZSwgJ21pblByb3BlcnRpZXMnLCAnbWF4UHJvcGVydGllcycsICdkZXBlbmRlbmNpZXMnLCAncmVxdWlyZWQnKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoJ21pc3NpbmcgcHJvcGVydGllcyBmb3IgJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlKSwgcGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgdmFyIHJlcVByb3BzID0gdmFsdWUucmVxdWlyZWQgfHwgW10sXG4gICAgICBhbGxQcm9wcyA9IHZhbHVlLnByb3BlcnRpZXMgPyBPYmplY3Qua2V5cyh2YWx1ZS5wcm9wZXJ0aWVzKSA6IFtdO1xuXG4gIHJlcVByb3BzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKHZhbHVlLnByb3BlcnRpZXMgJiYgdmFsdWUucHJvcGVydGllc1trZXldKSB7XG4gICAgICBwcm9wc1trZXldID0gdmFsdWUucHJvcGVydGllc1trZXldO1xuICAgIH1cbiAgfSk7XG5cbiAgdmFyIG9wdFByb3BzID0gYWxsUHJvcHMuZmlsdGVyKGZ1bmN0aW9uKHByb3ApIHtcbiAgICByZXR1cm4gcmVxUHJvcHMuaW5kZXhPZihwcm9wKSA9PT0gLTE7XG4gIH0pO1xuXG4gIGlmICh2YWx1ZS5wYXR0ZXJuUHJvcGVydGllcykge1xuICAgIG9wdFByb3BzID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShvcHRQcm9wcywgT2JqZWN0LmtleXModmFsdWUucGF0dGVyblByb3BlcnRpZXMpKTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSByYW5kb20odmFsdWUubWluUHJvcGVydGllcywgdmFsdWUubWF4UHJvcGVydGllcywgMCwgb3B0UHJvcHMubGVuZ3RoKTtcblxuICByYW5kb20uc2h1ZmZsZShvcHRQcm9wcykuc2xpY2UoMCwgbGVuZ3RoKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIGlmICh2YWx1ZS5wcm9wZXJ0aWVzICYmIHZhbHVlLnByb3BlcnRpZXNba2V5XSkge1xuICAgICAgcHJvcHNba2V5XSA9IHZhbHVlLnByb3BlcnRpZXNba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvcHNbcmFuZGV4cChrZXkpXSA9IHZhbHVlLnBhdHRlcm5Qcm9wZXJ0aWVzW2tleV07XG4gICAgfVxuICB9KTtcblxuICB2YXIgY3VycmVudCA9IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgsXG4gICAgICBzYW1wbGUgPSB0eXBlb2YgdmFsdWUuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09ICdvYmplY3QnID8gdmFsdWUuYWRkaXRpb25hbFByb3BlcnRpZXMgOiB7fTtcblxuICBpZiAoY3VycmVudCA8IGxlbmd0aCkge1xuICAgIGZha2VyLmxvcmVtLndvcmRzKGxlbmd0aCAtIGN1cnJlbnQpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICBwcm9wc1trZXkgKyByYW5kZXhwKCdcXFxcd3sxLDEwfScpXSA9IHNhbXBsZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0cmF2ZXJzZShwcm9wcywgcGF0aC5jb25jYXQoWydwcm9wZXJ0aWVzJ10pKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuLi91dGlsL2NvbnRhaW5lcicpO1xuXG52YXIgZmFrZXIgPSBjb250YWluZXIuZ2V0KCdmYWtlcicpLFxuICAgIENoYW5jZSA9IGNvbnRhaW5lci5nZXQoJ2NoYW5jZScpLFxuICAgIFJhbmRFeHAgPSBjb250YWluZXIuZ2V0KCdyYW5kZXhwJyksXG4gICAgY2hhbmNlID0gbmV3IENoYW5jZSgpLFxuICAgIHJhbmRleHAgPSBSYW5kRXhwLnJhbmRleHA7XG5cbnZhciByYW5kb20gPSByZXF1aXJlKCcuLi91dGlsL3JhbmRvbScpLFxuICAgIGZvcm1hdHMgPSByZXF1aXJlKCcuLi91dGlsL2Zvcm1hdHMnKTtcblxudmFyIHJlZ2V4cHMgPSB7XG4gIGVtYWlsOiAnW2EtekEtWlxcXFxkXVthLXpBLVpcXFxcZC1dezEsMTN9W2EtekEtWlxcXFxkXUB7aG9zdG5hbWV9JyxcbiAgaG9zdG5hbWU6ICdbYS16QS1aXXsxLDMzfVxcXFwuW2Etel17Miw0fScsXG4gIGlwdjY6ICdbYWJjZGVmXFxcXGRdezR9KDpbYWJjZGVmXFxcXGRdezR9KXs3fScsXG4gIHVyaTogJ1thLXpBLVpcXFxcZF9dW1xcXFx3XFxcXFxcL1xcXFxkXy1dezEsNDB9J1xufTtcblxuZnVuY3Rpb24gZ2V0KG9iaiwga2V5KSB7XG4gIHZhciBwYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuXG4gIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHtcbiAgICB2YXIgcHJvcCA9IHBhcnRzLnNoaWZ0KCk7XG5cbiAgICBpZiAoIW9ialtwcm9wXSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgb2JqID0gb2JqW3Byb3BdO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGUodmFsdWUpIHtcbiAgaWYgKHZhbHVlLnVzZSkge1xuICAgIHZhciBhcmdzID0gW10sXG4gICAgICAgIHBhdGggPSB2YWx1ZS5rZXk7XG5cbiAgICBpZiAodHlwZW9mIHBhdGggPT09ICdvYmplY3QnKSB7XG4gICAgICBwYXRoID0gT2JqZWN0LmtleXMocGF0aClbMF07XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlLmtleVtwYXRoXSkpIHtcbiAgICAgICAgYXJncyA9IHZhbHVlLmtleVtwYXRoXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyZ3MucHVzaCh2YWx1ZS5rZXlbcGF0aF0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBnZW4gPSBnZXQodmFsdWUuZ2VuLCBwYXRoKTtcblxuICAgIGlmICh0eXBlb2YgZ2VuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gJyArIHZhbHVlLnVzZSArICctZ2VuZXJhdG9yIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUua2V5KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdlbi5hcHBseSh2YWx1ZS5nZW4sIGFyZ3MpO1xuICB9XG5cbiAgc3dpdGNoICh2YWx1ZS5mb3JtYXQpIHtcbiAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHJhbmRvbSgwLCAxMDAwMDAwMDAwMDAwMDApKS50b0lTT1N0cmluZygpO1xuXG4gICAgY2FzZSAnZW1haWwnOlxuICAgIGNhc2UgJ2hvc3RuYW1lJzpcbiAgICBjYXNlICdpcHY2JzpcbiAgICBjYXNlICd1cmknOlxuICAgICAgcmV0dXJuIHJhbmRleHAocmVnZXhwc1t2YWx1ZS5mb3JtYXRdKS5yZXBsYWNlKC9cXHsoXFx3KylcXH0vLCBmdW5jdGlvbihtYXRjaGVzLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHJhbmRleHAocmVnZXhwc1trZXldKTtcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnaXB2NCc6XG4gICAgICByZXR1cm4gWzAsIDAsIDAsIDBdLm1hcChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJhbmRvbSgwLCAyNTUpO1xuICAgICAgfSkuam9pbignLicpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHZhciBjYWxsYmFjayA9IGZvcm1hdHModmFsdWUuZm9ybWF0KTtcblxuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gZ2VuZXJhdG9yIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUuZm9ybWF0KSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBnZW5lcmF0b3JzID0ge1xuICAgICAgICBmYWtlcjogZmFrZXIsXG4gICAgICAgIGNoYW5jZTogY2hhbmNlLFxuICAgICAgICByYW5kZXhwOiByYW5kZXhwXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gY2FsbGJhY2soZ2VuZXJhdG9ycywgdmFsdWUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgaWYgKHZhbHVlLmZha2VyIHx8IHZhbHVlLmNoYW5jZSkge1xuICAgIHJldHVybiBnZW5lcmF0ZSh7XG4gICAgICB1c2U6IHZhbHVlLmZha2VyID8gJ2Zha2VyJyA6ICdjaGFuY2UnLFxuICAgICAgZ2VuOiB2YWx1ZS5mYWtlciA/IGZha2VyIDogY2hhbmNlLFxuICAgICAga2V5OiB2YWx1ZS5mYWtlciB8fCB2YWx1ZS5jaGFuY2VcbiAgICB9KTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5mb3JtYXQpIHtcbiAgICByZXR1cm4gZ2VuZXJhdGUodmFsdWUpO1xuICB9XG5cbiAgaWYgKHZhbHVlLnBhdHRlcm4pIHtcbiAgICByZXR1cm4gcmFuZGV4cCh2YWx1ZS5wYXR0ZXJuKTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5taW5MZW5ndGggfHwgdmFsdWUubWF4TGVuZ3RoKSB7XG4gICAgdmFyIG1pbiA9IE1hdGgubWF4KDAsIHZhbHVlLm1pbkxlbmd0aCB8fCAwKSxcbiAgICAgICAgbWF4ID0gcmFuZG9tKG1pbiwgdmFsdWUubWF4TGVuZ3RoKTtcblxuICAgIHJldHVybiByYW5kZXhwKCcueycgKyBtaW4gKyAnLCcgKyBtYXggKyAnfScpO1xuICB9XG5cbiAgcmV0dXJuIGZha2VyLmxvcmVtLndvcmRzKHJhbmRvbSgxLCA1KSkuam9pbignICcpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY29tYmluZSh0YXJnZXQpIHtcbiAgdmFyIHByb3BzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcblxuICBwcm9wcy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikge1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gb2JqW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb21iaW5lO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vLyBzdGF0aWMgcmVxdWlyZXMgLSBoYW5kbGUgYm90aCBpbml0aWFsIGRlcGVuZGVuY3kgbG9hZCAoZGVwcyB3aWxsIGJlIGF2YWlsYWJsZVxuLy8gYW1vbmcgb3RoZXIgbW9kdWxlcykgYXMgd2VsbCBhcyB0aGV5IHdpbGwgYmUgaW5jbHVkZWQgYnkgYnJvd3NlcmlmeSBBU1RcbnZhciBjb250YWluZXIgPSB7XG4gIGZha2VyOiByZXF1aXJlKCdmYWtlcicpLFxuICBjaGFuY2U6IHJlcXVpcmUoJ2NoYW5jZScpLFxuICByYW5kZXhwOiByZXF1aXJlKCdyYW5kZXhwJylcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IGZ1bmN0aW9uKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjb250YWluZXJbbmFtZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ1wiJyArIG5hbWUgKyAnXCIgZGVwZW5kZW5jeSBkb2VzblxcJ3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgY29udGFpbmVyW25hbWVdID0gY2FsbGJhY2soY29udGFpbmVyW25hbWVdKTtcbiAgfSxcbiAgZ2V0OiBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lcltuYW1lXTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gUGFyc2VFcnJvcihtZXNzYWdlLCBwYXRoKSB7XG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMucGF0aCA9IHBhdGg7XG4gIHRoaXMubmFtZSA9ICdQYXJzZUVycm9yJztcbn1cblxuUGFyc2VFcnJvci5wcm90b3R5cGUgPSBFcnJvci5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gUGFyc2VFcnJvcjtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJlZ2lzdHJ5ID0ge307XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obmFtZSwgY2FsbGJhY2spIHtcbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgcmVnaXN0cnlbbmFtZV0gPSBjYWxsYmFjaztcbiAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKHZhciBtZXRob2QgaW4gbmFtZSkge1xuICAgICAgcmVnaXN0cnlbbWV0aG9kXSA9IG5hbWVbbWV0aG9kXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobmFtZSkge1xuICAgIHJldHVybiByZWdpc3RyeVtuYW1lXTtcbiAgfVxuXG4gIHJldHVybiByZWdpc3RyeTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLmZpbHRlcihmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9ialtrZXldICE9PSAndW5kZWZpbmVkJztcbiAgfSkubGVuZ3RoID4gMDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpbmZlcnJlZFByb3BlcnRpZXMgPSB7XG4gIGFycmF5OiBbXG4gICAgJ2FkZGl0aW9uYWxJdGVtcycsXG4gICAgJ2l0ZW1zJyxcbiAgICAnbWF4SXRlbXMnLFxuICAgICdtaW5JdGVtcycsXG4gICAgJ3VuaXF1ZUl0ZW1zJ1xuICBdLFxuICBpbnRlZ2VyOiBbXG4gICAgJ2V4Y2x1c2l2ZU1heGltdW0nLFxuICAgICdleGNsdXNpdmVNaW5pbXVtJyxcbiAgICAnbWF4aW11bScsXG4gICAgJ21pbmltdW0nLFxuICAgICdtdWx0aXBsZU9mJ1xuICBdLFxuICBvYmplY3Q6IFtcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnLFxuICAgICdkZXBlbmRlbmNpZXMnLFxuICAgICdtYXhQcm9wZXJ0aWVzJyxcbiAgICAnbWluUHJvcGVydGllcycsXG4gICAgJ3BhdHRlcm5Qcm9wZXJ0aWVzJyxcbiAgICAncHJvcGVydGllcycsXG4gICAgJ3JlcXVpcmVkJ1xuICBdLFxuICBzdHJpbmc6IFtcbiAgICAnbWF4TGVuZ3RoJyxcbiAgICAnbWVubGVuZ3RoJyxcbiAgICAncGF0dGVybidcbiAgXVxufTtcblxuaW5mZXJyZWRQcm9wZXJ0aWVzLm51bWJlciA9IGluZmVycmVkUHJvcGVydGllcy5pbnRlZ2VyO1xuXG5mdW5jdGlvbiBtYXlIYXZlVHlwZShvYmosIHByb3BzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmZpbHRlcihmdW5jdGlvbihwcm9wKSB7XG4gICAgcmV0dXJuIHByb3BzLmluZGV4T2YocHJvcCkgPiAtMTtcbiAgfSkubGVuZ3RoID4gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvYmopIHtcbiAgZm9yICh2YXIgdHlwZSBpbiBpbmZlcnJlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAobWF5SGF2ZVR5cGUob2JqLCBpbmZlcnJlZFByb3BlcnRpZXNbdHlwZV0pKSB7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhcnJheTogcmVxdWlyZSgnLi4vdHlwZXMvYXJyYXknKSxcbiAgYm9vbGVhbjogcmVxdWlyZSgnLi4vdHlwZXMvYm9vbGVhbicpLFxuICBpbnRlZ2VyOiByZXF1aXJlKCcuLi90eXBlcy9pbnRlZ2VyJyksXG4gIG51bWJlcjogcmVxdWlyZSgnLi4vdHlwZXMvbnVtYmVyJyksXG4gIG51bGw6IHJlcXVpcmUoJy4uL3R5cGVzL251bGwnKSxcbiAgb2JqZWN0OiByZXF1aXJlKCcuLi90eXBlcy9vYmplY3QnKSxcbiAgc3RyaW5nOiByZXF1aXJlKCcuLi90eXBlcy9zdHJpbmcnKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbnRhaW5lciA9IHJlcXVpcmUoJy4vY29udGFpbmVyJyk7XG5cbnZhciBmYWtlciA9IGNvbnRhaW5lci5nZXQoJ2Zha2VyJyk7XG5cbnZhciByYW5kb20gPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1pbiwgbWF4LCBkZWZNaW4sIGRlZk1heCkge1xuICB2YXIgaXNJbnRlZ2VyID0gdHJ1ZTtcblxuICBpZiAodHlwZW9mIG1pbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gbm9uLWludGVnZXIgdmFsdWVzXG4gICAgaXNJbnRlZ2VyID0gbWluO1xuICAgIG1pbiA9IGFyZ3VtZW50c1sxXTtcbiAgICBtYXggPSBhcmd1bWVudHNbMl07XG4gICAgZGVmTWluID0gYXJndW1lbnRzWzNdO1xuICAgIGRlZk1heCA9IGFyZ3VtZW50c1s0XTtcbiAgfVxuXG4gIGRlZk1pbiA9IHR5cGVvZiBkZWZNaW4gPT09ICd1bmRlZmluZWQnID8gcmFuZG9tLk1JTl9OVU1CRVIgOiBkZWZNaW47XG4gIGRlZk1heCA9IHR5cGVvZiBkZWZNYXggPT09ICd1bmRlZmluZWQnID8gcmFuZG9tLk1BWF9OVU1CRVIgOiBkZWZNYXg7XG5cbiAgbWluID0gdHlwZW9mIG1pbiA9PT0gJ3VuZGVmaW5lZCcgPyBkZWZNaW4gOiBtaW47XG4gIG1heCA9IHR5cGVvZiBtYXggPT09ICd1bmRlZmluZWQnID8gZGVmTWF4IDogbWF4O1xuXG4gIGlmIChtYXggPCBtaW4pIHtcbiAgICBtYXggKz0gbWluO1xuICB9XG5cbiAgcmV0dXJuIGZha2VyLnJhbmRvbS5udW1iZXIoe1xuICAgIG1pbjogbWluLFxuICAgIG1heDogTWF0aC5tYXgobWF4LCBtaW4gKyAxKSxcbiAgICBwcmVjaXNpb246IGlzSW50ZWdlciA/IDEgOiBNYXRoLnJhbmRvbSgpXG4gIH0pO1xufTtcblxucmFuZG9tLnNodWZmbGUgPSBmdW5jdGlvbihvYmopIHtcbiAgdmFyIGNvcHkgPSBvYmouc2xpY2UoKSxcbiAgICAgIGxlbmd0aCA9IG9iai5sZW5ndGg7XG5cbiAgZm9yICg7IGxlbmd0aCA+IDA7KSB7XG4gICAgdmFyIGtleSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbmd0aCksXG4gICAgICAgIHRtcCA9IGNvcHlbLS1sZW5ndGhdO1xuXG4gICAgY29weVtsZW5ndGhdID0gY29weVtrZXldO1xuICAgIGNvcHlba2V5XSA9IHRtcDtcbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufTtcblxucmFuZG9tLnBpY2sgPSBmdW5jdGlvbihvYmopIHtcbiAgcmV0dXJuIG9ialtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBvYmoubGVuZ3RoKV07XG59O1xuXG5yYW5kb20uTUlOX05VTUJFUiA9IC0xMDA7XG5yYW5kb20uTUFYX05VTUJFUiA9IDEwMDtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJhbmRvbSA9IHJlcXVpcmUoJy4vcmFuZG9tJyksXG4gICAgY29tYmluZSA9IHJlcXVpcmUoJy4vY29tYmluZScpO1xuXG52YXIgUGFyc2VFcnJvciA9IHJlcXVpcmUoJy4vZXJyb3InKTtcblxudmFyIGluZmVycmVkVHlwZSA9IHJlcXVpcmUoJy4vaW5mZXJyZWQnKTtcblxuZnVuY3Rpb24gcmVkdWNlKG9iaikge1xuICB2YXIgbWl4ID0gb2JqLmFsbE9mIHx8IG9iai5hbnlPZiB8fCBvYmoub25lT2Y7XG5cbiAgaWYgKCEobWl4ICYmIG1peC5sZW5ndGgpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICEoa2V5ID09PSAnZW51bScgfHwga2V5ID09PSAncmVxdWlyZWQnKSkge1xuICAgICAgICByZWR1Y2UodmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICgob2JqLm9uZU9mIHx8IG9iai5hbnlPZikgJiYgbWl4Lmxlbmd0aCkge1xuICAgIG1peCA9IFtyYW5kb20ucGljayhtaXgpXTtcbiAgfVxuXG4gIGRlbGV0ZSBvYmouYWxsT2Y7XG4gIGRlbGV0ZSBvYmouYW55T2Y7XG4gIGRlbGV0ZSBvYmoub25lT2Y7XG5cbiAgdmFyIGZpeGVkID0ge307XG5cbiAgbWl4LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICBjb21iaW5lKGZpeGVkLCB2YWx1ZSk7XG4gIH0pO1xuXG4gIGNvbWJpbmUob2JqLCBmaXhlZCk7XG5cbiAgd2hpbGUgKG9iai5hbGxPZiB8fCBvYmouYW55T2YgfHwgb2JqLm9uZU9mKSB7XG4gICAgcmVkdWNlKG9iaik7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhdmVyc2Uob2JqLCBwYXRoKSB7XG4gIHZhciBwcmltaXRpdmVzID0gcmVxdWlyZSgnLi9wcmltaXRpdmVzJyk7XG5cbiAgdmFyIGNvcHkgPSB7fTtcblxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgY29weSA9IFtdO1xuICB9XG5cbiAgcGF0aCA9IHBhdGggfHwgW107XG5cbiAgcmVkdWNlKG9iaik7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqLmVudW0pKSB7XG4gICAgcmV0dXJuIHJhbmRvbS5waWNrKG9iai5lbnVtKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gb2JqLnR5cGU7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICB0eXBlID0gcmFuZG9tLnBpY2sodHlwZSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gQXR0ZW1wdCB0byBpbmZlciB0aGUgdHlwZVxuICAgIHR5cGUgPSBpbmZlcnJlZFR5cGUob2JqKSB8fCB0eXBlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIGlmICghcHJpbWl0aXZlc1t0eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoJ3Vua25vd24gcHJpbWl0aXZlICcgKyBKU09OLnN0cmluZ2lmeSh0eXBlKSwgcGF0aC5jb25jYXQoWyd0eXBlJ10pKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHByaW1pdGl2ZXNbdHlwZV0ob2JqLCBwYXRoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAodHlwZW9mIGUucGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoZS5tZXNzYWdlLCBwYXRoKVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb3B5W2tleV0gPSB0cmF2ZXJzZSh2YWx1ZSwgcGF0aC5jb25jYXQoW2tleV0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29weVtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvcHk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdHJhdmVyc2U7XG4iLCIvLyAgQ2hhbmNlLmpzIDAuNy41XG4vLyAgaHR0cDovL2NoYW5jZWpzLmNvbVxuLy8gIChjKSAyMDEzIFZpY3RvciBRdWlublxuLy8gIENoYW5jZSBtYXkgYmUgZnJlZWx5IGRpc3RyaWJ1dGVkIG9yIG1vZGlmaWVkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cblxuKGZ1bmN0aW9uICgpIHtcblxuICAgIC8vIENvbnN0YW50c1xuICAgIHZhciBNQVhfSU5UID0gOTAwNzE5OTI1NDc0MDk5MjtcbiAgICB2YXIgTUlOX0lOVCA9IC1NQVhfSU5UO1xuICAgIHZhciBOVU1CRVJTID0gJzAxMjM0NTY3ODknO1xuICAgIHZhciBDSEFSU19MT1dFUiA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgdmFyIENIQVJTX1VQUEVSID0gQ0hBUlNfTE9XRVIudG9VcHBlckNhc2UoKTtcbiAgICB2YXIgSEVYX1BPT0wgID0gTlVNQkVSUyArIFwiYWJjZGVmXCI7XG5cbiAgICAvLyBDYWNoZWQgYXJyYXkgaGVscGVyc1xuICAgIHZhciBzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcblxuICAgIC8vIENvbnN0cnVjdG9yXG4gICAgZnVuY3Rpb24gQ2hhbmNlIChzZWVkKSB7XG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBDaGFuY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VlZCA9PSBudWxsID8gbmV3IENoYW5jZSgpIDogbmV3IENoYW5jZShzZWVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHVzZXIgaGFzIHByb3ZpZGVkIGEgZnVuY3Rpb24sIHVzZSB0aGF0IGFzIHRoZSBnZW5lcmF0b3JcbiAgICAgICAgaWYgKHR5cGVvZiBzZWVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmRvbSA9IHNlZWQ7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWVkbGluZztcblxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gc2V0IGEgc3RhcnRpbmcgdmFsdWUgb2YgemVybyBzbyB3ZSBjYW4gYWRkIHRvIGl0XG4gICAgICAgICAgICB0aGlzLnNlZWQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSwgbGVhdmUgdGhpcy5zZWVkIGJsYW5rIHNvIHRoYXQgTVQgd2lsbCByZWNpZXZlIGEgYmxhbmtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc2VlZGxpbmcgPSAwO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcmd1bWVudHNbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc2VlZGxpbmcgKz0gKGFyZ3VtZW50c1tpXS5sZW5ndGggLSBqKSAqIGFyZ3VtZW50c1tpXS5jaGFyQ29kZUF0KGopO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VlZGxpbmcgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlZWQgKz0gKGFyZ3VtZW50cy5sZW5ndGggLSBpKSAqIHNlZWRsaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgbm8gZ2VuZXJhdG9yIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCwgdXNlIG91ciBNVFxuICAgICAgICB0aGlzLm10ID0gdGhpcy5tZXJzZW5uZV90d2lzdGVyKHRoaXMuc2VlZCk7XG4gICAgICAgIHRoaXMuYmltZDUgPSB0aGlzLmJsdWVpbXBfbWQ1KCk7XG4gICAgICAgIHRoaXMucmFuZG9tID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubXQucmFuZG9tKHRoaXMuc2VlZCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5WRVJTSU9OID0gXCIwLjcuNVwiO1xuXG4gICAgLy8gUmFuZG9tIGhlbHBlciBmdW5jdGlvbnNcbiAgICBmdW5jdGlvbiBpbml0T3B0aW9ucyhvcHRpb25zLCBkZWZhdWx0cykge1xuICAgICAgICBvcHRpb25zIHx8IChvcHRpb25zID0ge30pO1xuXG4gICAgICAgIGlmIChkZWZhdWx0cykge1xuICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBkZWZhdWx0cykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1tpXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1tpXSA9IGRlZmF1bHRzW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRlc3RSYW5nZSh0ZXN0LCBlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHRlc3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmNvZGUgdGhlIGlucHV0IHN0cmluZyB3aXRoIEJhc2U2NC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZTY0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gQmFzZTY0IGVuY29kZXIgYXZhaWxhYmxlLicpO1xuICAgIH07XG5cbiAgICAvLyBTZWxlY3QgcHJvcGVyIEJhc2U2NCBlbmNvZGVyLlxuICAgIChmdW5jdGlvbiBkZXRlcm1pbmVCYXNlNjRFbmNvZGVyKCkge1xuICAgICAgICBpZiAodHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGJhc2U2NCA9IGJ0b2E7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgYmFzZTY0ID0gZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJ1ZmZlcihpbnB1dCkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pKCk7XG5cbiAgICAvLyAtLSBCYXNpY3MgLS1cblxuICAgIC8qKlxuICAgICAqICBSZXR1cm4gYSByYW5kb20gYm9vbCwgZWl0aGVyIHRydWUgb3IgZmFsc2VcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9eyBsaWtlbGlob29kOiA1MCB9XSBhbHRlciB0aGUgbGlrZWxpaG9vZCBvZlxuICAgICAqICAgIHJlY2VpdmluZyBhIHRydWUgb3IgZmFsc2UgdmFsdWUgYmFjay5cbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gaWYgdGhlIGxpa2VsaWhvb2QgaXMgb3V0IG9mIGJvdW5kc1xuICAgICAqICBAcmV0dXJucyB7Qm9vbH0gZWl0aGVyIHRydWUgb3IgZmFsc2VcbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmJvb2wgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyBsaWtlbGlob29kIG9mIHN1Y2Nlc3MgKHRydWUpXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bGlrZWxpaG9vZCA6IDUwfSk7XG5cbiAgICAgICAgLy8gTm90ZSwgd2UgY291bGQgZ2V0IHNvbWUgbWlub3IgcGVyZiBvcHRpbWl6YXRpb25zIGJ5IGNoZWNraW5nIHJhbmdlXG4gICAgICAgIC8vIHByaW9yIHRvIGluaXRpYWxpemluZyBkZWZhdWx0cywgYnV0IHRoYXQgbWFrZXMgY29kZSBhIGJpdCBtZXNzaWVyXG4gICAgICAgIC8vIGFuZCB0aGUgY2hlY2sgbW9yZSBjb21wbGljYXRlZCBhcyB3ZSBoYXZlIHRvIGNoZWNrIGV4aXN0ZW5jZSBvZlxuICAgICAgICAvLyB0aGUgb2JqZWN0IHRoZW4gZXhpc3RlbmNlIG9mIHRoZSBrZXkgYmVmb3JlIGNoZWNraW5nIGNvbnN0cmFpbnRzLlxuICAgICAgICAvLyBTaW5jZSB0aGUgb3B0aW9ucyBpbml0aWFsaXphdGlvbiBzaG91bGQgYmUgbWlub3IgY29tcHV0YXRpb25hbGx5LFxuICAgICAgICAvLyBkZWNpc2lvbiBtYWRlIGZvciBjb2RlIGNsZWFubGluZXNzIGludGVudGlvbmFsbHkuIFRoaXMgaXMgbWVudGlvbmVkXG4gICAgICAgIC8vIGhlcmUgYXMgaXQncyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSwgd2lsbCBub3QgYmUgbWVudGlvbmVkIGFnYWluLlxuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLmxpa2VsaWhvb2QgPCAwIHx8IG9wdGlvbnMubGlrZWxpaG9vZCA+IDEwMCxcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBMaWtlbGlob29kIGFjY2VwdHMgdmFsdWVzIGZyb20gMCB0byAxMDAuXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yYW5kb20oKSAqIDEwMCA8IG9wdGlvbnMubGlrZWxpaG9vZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBjaGFyYWN0ZXIuXG4gICAgICpcbiAgICAgKiAgQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBjYW4gc3BlY2lmeSBhIGNoYXJhY3RlciBwb29sLCBvbmx5IGFscGhhLFxuICAgICAqICAgIG9ubHkgc3ltYm9scywgYW5kIGNhc2luZyAobG93ZXIgb3IgdXBwZXIpXG4gICAgICogIEByZXR1cm5zIHtTdHJpbmd9IGEgc2luZ2xlIHJhbmRvbSBjaGFyYWN0ZXJcbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gQ2FuIG9ubHkgc3BlY2lmeSBhbHBoYSBvciBzeW1ib2xzLCBub3QgYm90aFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuY2hhcmFjdGVyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLmFscGhhICYmIG9wdGlvbnMuc3ltYm9scyxcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBDYW5ub3Qgc3BlY2lmeSBib3RoIGFscGhhIGFuZCBzeW1ib2xzLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIHN5bWJvbHMgPSBcIiFAIyQlXiYqKClbXVwiLFxuICAgICAgICAgICAgbGV0dGVycywgcG9vbDtcblxuICAgICAgICBpZiAob3B0aW9ucy5jYXNpbmcgPT09ICdsb3dlcicpIHtcbiAgICAgICAgICAgIGxldHRlcnMgPSBDSEFSU19MT1dFUjtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJykge1xuICAgICAgICAgICAgbGV0dGVycyA9IENIQVJTX1VQUEVSO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0dGVycyA9IENIQVJTX0xPV0VSICsgQ0hBUlNfVVBQRVI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5wb29sKSB7XG4gICAgICAgICAgICBwb29sID0gb3B0aW9ucy5wb29sO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuYWxwaGEpIHtcbiAgICAgICAgICAgIHBvb2wgPSBsZXR0ZXJzO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuc3ltYm9scykge1xuICAgICAgICAgICAgcG9vbCA9IHN5bWJvbHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb29sID0gbGV0dGVycyArIE5VTUJFUlMgKyBzeW1ib2xzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBvb2wuY2hhckF0KHRoaXMubmF0dXJhbCh7bWF4OiAocG9vbC5sZW5ndGggLSAxKX0pKTtcbiAgICB9O1xuXG4gICAgLy8gTm90ZSwgd2FudGVkIHRvIHVzZSBcImZsb2F0XCIgb3IgXCJkb3VibGVcIiBidXQgdGhvc2UgYXJlIGJvdGggSlMgcmVzZXJ2ZWQgd29yZHMuXG5cbiAgICAvLyBOb3RlLCBmaXhlZCBtZWFucyBOIE9SIExFU1MgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsLiBUaGlzIGJlY2F1c2VcbiAgICAvLyBJdCBjb3VsZCBiZSAxNC45MDAwIGJ1dCBpbiBKYXZhU2NyaXB0LCB3aGVuIHRoaXMgaXMgY2FzdCBhcyBhIG51bWJlcixcbiAgICAvLyB0aGUgdHJhaWxpbmcgemVyb2VzIGFyZSBkcm9wcGVkLiBMZWZ0IHRvIHRoZSBjb25zdW1lciBpZiB0cmFpbGluZyB6ZXJvZXMgYXJlXG4gICAgLy8gbmVlZGVkXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBmbG9hdGluZyBwb2ludCBudW1iZXJcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgZml4ZWQgcHJlY2lzaW9uLCBtaW4sIG1heFxuICAgICAqICBAcmV0dXJucyB7TnVtYmVyfSBhIHNpbmdsZSBmbG9hdGluZyBwb2ludCBudW1iZXJcbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gQ2FuIG9ubHkgc3BlY2lmeSBmaXhlZCBvciBwcmVjaXNpb24sIG5vdCBib3RoLiBBbHNvXG4gICAgICogICAgbWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4XG4gICAgICovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5mbG9hdGluZyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQgOiA0fSk7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAgICAgICBcIkNoYW5jZTogQ2Fubm90IHNwZWNpZnkgYm90aCBmaXhlZCBhbmQgcHJlY2lzaW9uLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIG51bTtcbiAgICAgICAgdmFyIGZpeGVkID0gTWF0aC5wb3coMTAsIG9wdGlvbnMuZml4ZWQpO1xuXG4gICAgICAgIHZhciBtYXggPSBNQVhfSU5UIC8gZml4ZWQ7XG4gICAgICAgIHZhciBtaW4gPSAtbWF4O1xuXG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMubWluICYmIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5taW4gPCBtaW4sXG4gICAgICAgICAgICBcIkNoYW5jZTogTWluIHNwZWNpZmllZCBpcyBvdXQgb2YgcmFuZ2Ugd2l0aCBmaXhlZC4gTWluIHNob3VsZCBiZSwgYXQgbGVhc3QsIFwiICsgbWluXG4gICAgICAgICk7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMubWF4ICYmIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5tYXggPiBtYXgsXG4gICAgICAgICAgICBcIkNoYW5jZTogTWF4IHNwZWNpZmllZCBpcyBvdXQgb2YgcmFuZ2Ugd2l0aCBmaXhlZC4gTWF4IHNob3VsZCBiZSwgYXQgbW9zdCwgXCIgKyBtYXhcbiAgICAgICAgKTtcblxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBtaW4gOiBtaW4sIG1heCA6IG1heCB9KTtcblxuICAgICAgICAvLyBUb2RvIC0gTWFrZSB0aGlzIHdvcmshXG4gICAgICAgIC8vIG9wdGlvbnMucHJlY2lzaW9uID0gKHR5cGVvZiBvcHRpb25zLnByZWNpc2lvbiAhPT0gXCJ1bmRlZmluZWRcIikgPyBvcHRpb25zLnByZWNpc2lvbiA6IGZhbHNlO1xuXG4gICAgICAgIG51bSA9IHRoaXMuaW50ZWdlcih7bWluOiBvcHRpb25zLm1pbiAqIGZpeGVkLCBtYXg6IG9wdGlvbnMubWF4ICogZml4ZWR9KTtcbiAgICAgICAgdmFyIG51bV9maXhlZCA9IChudW0gLyBmaXhlZCkudG9GaXhlZChvcHRpb25zLmZpeGVkKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW1fZml4ZWQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIGludGVnZXJcbiAgICAgKlxuICAgICAqICBOT1RFIHRoZSBtYXggYW5kIG1pbiBhcmUgSU5DTFVERUQgaW4gdGhlIHJhbmdlLiBTbzpcbiAgICAgKiAgY2hhbmNlLmludGVnZXIoe21pbjogMSwgbWF4OiAzfSk7XG4gICAgICogIHdvdWxkIHJldHVybiBlaXRoZXIgMSwgMiwgb3IgMy5cbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgbWluIGFuZC9vciBtYXhcbiAgICAgKiAgQHJldHVybnMge051bWJlcn0gYSBzaW5nbGUgcmFuZG9tIGludGVnZXIgbnVtYmVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IG1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuaW50ZWdlciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIC8vIDkwMDcxOTkyNTQ3NDA5OTIgKDJeNTMpIGlzIHRoZSBtYXggaW50ZWdlciBudW1iZXIgaW4gSmF2YVNjcmlwdFxuICAgICAgICAvLyBTZWU6IGh0dHA6Ly92cS5pby8xMzJzYTJqXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWluOiBNSU5fSU5ULCBtYXg6IE1BWF9JTlR9KTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWluID4gb3B0aW9ucy5tYXgsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBNYXguXCIpO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMucmFuZG9tKCkgKiAob3B0aW9ucy5tYXggLSBvcHRpb25zLm1pbiArIDEpICsgb3B0aW9ucy5taW4pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIG5hdHVyYWxcbiAgICAgKlxuICAgICAqICBOT1RFIHRoZSBtYXggYW5kIG1pbiBhcmUgSU5DTFVERUQgaW4gdGhlIHJhbmdlLiBTbzpcbiAgICAgKiAgY2hhbmNlLm5hdHVyYWwoe21pbjogMSwgbWF4OiAzfSk7XG4gICAgICogIHdvdWxkIHJldHVybiBlaXRoZXIgMSwgMiwgb3IgMy5cbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgbWluIGFuZC9vciBtYXhcbiAgICAgKiAgQHJldHVybnMge051bWJlcn0gYSBzaW5nbGUgcmFuZG9tIGludGVnZXIgbnVtYmVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IG1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUubmF0dXJhbCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWluOiAwLCBtYXg6IE1BWF9JTlR9KTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWluIDwgMCwgXCJDaGFuY2U6IE1pbiBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlZ2VyKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIHN0cmluZ1xuICAgICAqXG4gICAgICogIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gY2FuIHNwZWNpZnkgYSBsZW5ndGhcbiAgICAgKiAgQHJldHVybnMge1N0cmluZ30gYSBzdHJpbmcgb2YgcmFuZG9tIGxlbmd0aFxuICAgICAqICBAdGhyb3dzIHtSYW5nZUVycm9yfSBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvXG4gICAgICovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdHJpbmcgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBsZW5ndGg6IHRoaXMubmF0dXJhbCh7bWluOiA1LCBtYXg6IDIwfSkgfSk7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLmxlbmd0aCA8IDAsIFwiQ2hhbmNlOiBMZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvLlwiKTtcbiAgICAgICAgdmFyIGxlbmd0aCA9IG9wdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgdGV4dCA9IHRoaXMubih0aGlzLmNoYXJhY3RlciwgbGVuZ3RoLCBvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gdGV4dC5qb2luKFwiXCIpO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgQmFzaWNzIC0tXG5cbiAgICAvLyAtLSBIZWxwZXJzIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNhcGl0YWxpemUgPSBmdW5jdGlvbiAod29yZCkge1xuICAgICAgICByZXR1cm4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc3Vic3RyKDEpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1peGluID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgICBmb3IgKHZhciBmdW5jX25hbWUgaW4gb2JqKSB7XG4gICAgICAgICAgICBDaGFuY2UucHJvdG90eXBlW2Z1bmNfbmFtZV0gPSBvYmpbZnVuY19uYW1lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIEdpdmVuIGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgc29tZXRoaW5nIHJhbmRvbSBhbmQgYSBudW1iZXIgb2YgaXRlbXMgdG8gZ2VuZXJhdGUsXG4gICAgICogICAgcmV0dXJuIGFuIGFycmF5IG9mIGl0ZW1zIHdoZXJlIG5vbmUgcmVwZWF0LlxuICAgICAqXG4gICAgICogIEBwYXJhbSB7RnVuY3Rpb259IGZuIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBzb21ldGhpbmcgcmFuZG9tXG4gICAgICogIEBwYXJhbSB7TnVtYmVyfSBudW0gbnVtYmVyIG9mIHRlcm1zIHRvIGdlbmVyYXRlXG4gICAgICogIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIGFueSBvcHRpb25zIHRvIHBhc3Mgb24gdG8gdGhlIGdlbmVyYXRvciBmdW5jdGlvblxuICAgICAqICBAcmV0dXJucyB7QXJyYXl9IGFuIGFycmF5IG9mIGxlbmd0aCBgbnVtYCB3aXRoIGV2ZXJ5IGl0ZW0gZ2VuZXJhdGVkIGJ5IGBmbmAgYW5kIHVuaXF1ZVxuICAgICAqXG4gICAgICogIFRoZXJlIGNhbiBiZSBtb3JlIHBhcmFtZXRlcnMgYWZ0ZXIgdGhlc2UuIEFsbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkIHRvIHRoZSBnaXZlbiBmdW5jdGlvblxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUudW5pcXVlID0gZnVuY3Rpb24oZm4sIG51bSwgb3B0aW9ucykge1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICB0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIixcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIC8vIERlZmF1bHQgY29tcGFyYXRvciB0byBjaGVjayB0aGF0IHZhbCBpcyBub3QgYWxyZWFkeSBpbiBhcnIuXG4gICAgICAgICAgICAvLyBTaG91bGQgcmV0dXJuIGBmYWxzZWAgaWYgaXRlbSBub3QgaW4gYXJyYXksIGB0cnVlYCBvdGhlcndpc2VcbiAgICAgICAgICAgIGNvbXBhcmF0b3I6IGZ1bmN0aW9uKGFyciwgdmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKHZhbCkgIT09IC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgYXJyID0gW10sIGNvdW50ID0gMCwgcmVzdWx0LCBNQVhfRFVQTElDQVRFUyA9IG51bSAqIDUwLCBwYXJhbXMgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG5cbiAgICAgICAgd2hpbGUgKGFyci5sZW5ndGggPCBudW0pIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGZuLmFwcGx5KHRoaXMsIHBhcmFtcyk7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMuY29tcGFyYXRvcihhcnIsIHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICBhcnIucHVzaChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIC8vIHJlc2V0IGNvdW50IHdoZW4gdW5pcXVlIGZvdW5kXG4gICAgICAgICAgICAgICAgY291bnQgPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoKytjb3VudCA+IE1BWF9EVVBMSUNBVEVTKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDaGFuY2U6IG51bSBpcyBsaWtlbHkgdG9vIGxhcmdlIGZvciBzYW1wbGUgc2V0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqICBHaXZlcyBhbiBhcnJheSBvZiBuIHJhbmRvbSB0ZXJtc1xuICAgICAqXG4gICAgICogIEBwYXJhbSB7RnVuY3Rpb259IGZuIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBzb21ldGhpbmcgcmFuZG9tXG4gICAgICogIEBwYXJhbSB7TnVtYmVyfSBuIG51bWJlciBvZiB0ZXJtcyB0byBnZW5lcmF0ZVxuICAgICAqICBAcmV0dXJucyB7QXJyYXl9IGFuIGFycmF5IG9mIGxlbmd0aCBgbmAgd2l0aCBpdGVtcyBnZW5lcmF0ZWQgYnkgYGZuYFxuICAgICAqXG4gICAgICogIFRoZXJlIGNhbiBiZSBtb3JlIHBhcmFtZXRlcnMgYWZ0ZXIgdGhlc2UuIEFsbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkIHRvIHRoZSBnaXZlbiBmdW5jdGlvblxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUubiA9IGZ1bmN0aW9uKGZuLCBuKSB7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiLFxuICAgICAgICAgICAgXCJDaGFuY2U6IFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24uXCJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodHlwZW9mIG4gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBuID0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaSA9IG4sIGFyciA9IFtdLCBwYXJhbXMgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG5cbiAgICAgICAgLy8gUHJvdmlkaW5nIGEgbmVnYXRpdmUgY291bnQgc2hvdWxkIHJlc3VsdCBpbiBhIG5vb3AuXG4gICAgICAgIGkgPSBNYXRoLm1heCggMCwgaSApO1xuXG4gICAgICAgIGZvciAobnVsbDsgaS0tOyBudWxsKSB7XG4gICAgICAgICAgICBhcnIucHVzaChmbi5hcHBseSh0aGlzLCBwYXJhbXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcblxuICAgIC8vIEgvVCB0byBTTyBmb3IgdGhpcyBvbmU6IGh0dHA6Ly92cS5pby9PdFVyWjVcbiAgICBDaGFuY2UucHJvdG90eXBlLnBhZCA9IGZ1bmN0aW9uIChudW1iZXIsIHdpZHRoLCBwYWQpIHtcbiAgICAgICAgLy8gRGVmYXVsdCBwYWQgdG8gMCBpZiBub25lIHByb3ZpZGVkXG4gICAgICAgIHBhZCA9IHBhZCB8fCAnMCc7XG4gICAgICAgIC8vIENvbnZlcnQgbnVtYmVyIHRvIGEgc3RyaW5nXG4gICAgICAgIG51bWJlciA9IG51bWJlciArICcnO1xuICAgICAgICByZXR1cm4gbnVtYmVyLmxlbmd0aCA+PSB3aWR0aCA/IG51bWJlciA6IG5ldyBBcnJheSh3aWR0aCAtIG51bWJlci5sZW5ndGggKyAxKS5qb2luKHBhZCkgKyBudW1iZXI7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucGljayA9IGZ1bmN0aW9uIChhcnIsIGNvdW50KSB7XG4gICAgICAgIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNoYW5jZTogQ2Fubm90IHBpY2soKSBmcm9tIGFuIGVtcHR5IGFycmF5XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY291bnQgfHwgY291bnQgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnJbdGhpcy5uYXR1cmFsKHttYXg6IGFyci5sZW5ndGggLSAxfSldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2h1ZmZsZShhcnIpLnNsaWNlKDAsIGNvdW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbiAoYXJyKSB7XG4gICAgICAgIHZhciBvbGRfYXJyYXkgPSBhcnIuc2xpY2UoMCksXG4gICAgICAgICAgICBuZXdfYXJyYXkgPSBbXSxcbiAgICAgICAgICAgIGogPSAwLFxuICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyKG9sZF9hcnJheS5sZW5ndGgpO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIC8vIFBpY2sgYSByYW5kb20gaW5kZXggZnJvbSB0aGUgYXJyYXlcbiAgICAgICAgICAgIGogPSB0aGlzLm5hdHVyYWwoe21heDogb2xkX2FycmF5Lmxlbmd0aCAtIDF9KTtcbiAgICAgICAgICAgIC8vIEFkZCBpdCB0byB0aGUgbmV3IGFycmF5XG4gICAgICAgICAgICBuZXdfYXJyYXlbaV0gPSBvbGRfYXJyYXlbal07XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhhdCBlbGVtZW50IGZyb20gdGhlIG9yaWdpbmFsIGFycmF5XG4gICAgICAgICAgICBvbGRfYXJyYXkuc3BsaWNlKGosIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ld19hcnJheTtcbiAgICB9O1xuXG4gICAgLy8gUmV0dXJucyBhIHNpbmdsZSBpdGVtIGZyb20gYW4gYXJyYXkgd2l0aCByZWxhdGl2ZSB3ZWlnaHRpbmcgb2Ygb2Rkc1xuICAgIENoYW5jZS5wcm90b3R5cGUud2VpZ2h0ZWQgPSBmdW5jdGlvbihhcnIsIHdlaWdodHMpIHtcbiAgICAgICAgaWYgKGFyci5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNoYW5jZTogbGVuZ3RoIG9mIGFycmF5IGFuZCB3ZWlnaHRzIG11c3QgbWF0Y2hcIik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGUgd2VpZ2h0cyB0aGF0IGFyZSBsZXNzIG9yIGVxdWFsIHRvIHplcm8uXG4gICAgICAgIGZvciAodmFyIHdlaWdodEluZGV4ID0gd2VpZ2h0cy5sZW5ndGggLSAxOyB3ZWlnaHRJbmRleCA+PSAwOyAtLXdlaWdodEluZGV4KSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgd2VpZ2h0IGlzIGxlc3Mgb3IgZXF1YWwgdG8gemVybywgcmVtb3ZlIGl0IGFuZCB0aGUgdmFsdWUuXG4gICAgICAgICAgICBpZiAod2VpZ2h0c1t3ZWlnaHRJbmRleF0gPD0gMCkge1xuICAgICAgICAgICAgICAgIGFyci5zcGxpY2Uod2VpZ2h0SW5kZXgsMSk7XG4gICAgICAgICAgICAgICAgd2VpZ2h0cy5zcGxpY2Uod2VpZ2h0SW5kZXgsMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBhbnkgb2YgdGhlIHdlaWdodHMgYXJlIGxlc3MgdGhhbiAxLCB3ZSB3YW50IHRvIHNjYWxlIHRoZW0gdXAgdG8gd2hvbGVcbiAgICAgICAgLy8gICBudW1iZXJzIGZvciB0aGUgcmVzdCBvZiB0aGlzIGxvZ2ljIHRvIHdvcmtcbiAgICAgICAgaWYgKHdlaWdodHMuc29tZShmdW5jdGlvbih3ZWlnaHQpIHsgcmV0dXJuIHdlaWdodCA8IDE7IH0pKSB7XG4gICAgICAgICAgICB2YXIgbWluID0gd2VpZ2h0cy5yZWR1Y2UoZnVuY3Rpb24obWluLCB3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHdlaWdodCA8IG1pbikgPyB3ZWlnaHQgOiBtaW47XG4gICAgICAgICAgICB9LCB3ZWlnaHRzWzBdKTtcblxuICAgICAgICAgICAgdmFyIHNjYWxpbmdfZmFjdG9yID0gMSAvIG1pbjtcblxuICAgICAgICAgICAgd2VpZ2h0cyA9IHdlaWdodHMubWFwKGZ1bmN0aW9uKHdlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3ZWlnaHQgKiBzY2FsaW5nX2ZhY3RvcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN1bSA9IHdlaWdodHMucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCB3ZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0b3RhbCArIHdlaWdodDtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgLy8gZ2V0IGFuIGluZGV4XG4gICAgICAgIHZhciBzZWxlY3RlZCA9IHRoaXMubmF0dXJhbCh7IG1pbjogMSwgbWF4OiBzdW0gfSk7XG5cbiAgICAgICAgdmFyIHRvdGFsID0gMDtcbiAgICAgICAgdmFyIGNob3NlbjtcbiAgICAgICAgLy8gVXNpbmcgc29tZSgpIGhlcmUgc28gd2UgY2FuIGJhaWwgYXMgc29vbiBhcyB3ZSBnZXQgb3VyIG1hdGNoXG4gICAgICAgIHdlaWdodHMuc29tZShmdW5jdGlvbih3ZWlnaHQsIGluZGV4KSB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQgPD0gdG90YWwgKyB3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBjaG9zZW4gPSBhcnJbaW5kZXhdO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG90YWwgKz0gd2VpZ2h0O1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY2hvc2VuO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgSGVscGVycyAtLVxuXG4gICAgLy8gLS0gVGV4dCAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wYXJhZ3JhcGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHNlbnRlbmNlcyA9IG9wdGlvbnMuc2VudGVuY2VzIHx8IHRoaXMubmF0dXJhbCh7bWluOiAzLCBtYXg6IDd9KSxcbiAgICAgICAgICAgIHNlbnRlbmNlX2FycmF5ID0gdGhpcy5uKHRoaXMuc2VudGVuY2UsIHNlbnRlbmNlcyk7XG5cbiAgICAgICAgcmV0dXJuIHNlbnRlbmNlX2FycmF5LmpvaW4oJyAnKTtcbiAgICB9O1xuXG4gICAgLy8gQ291bGQgZ2V0IHNtYXJ0ZXIgYWJvdXQgdGhpcyB0aGFuIGdlbmVyYXRpbmcgcmFuZG9tIHdvcmRzIGFuZFxuICAgIC8vIGNoYWluaW5nIHRoZW0gdG9nZXRoZXIuIFN1Y2ggYXM6IGh0dHA6Ly92cS5pby8xYTVjZU9oXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zZW50ZW5jZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB2YXIgd29yZHMgPSBvcHRpb25zLndvcmRzIHx8IHRoaXMubmF0dXJhbCh7bWluOiAxMiwgbWF4OiAxOH0pLFxuICAgICAgICAgICAgdGV4dCwgd29yZF9hcnJheSA9IHRoaXMubih0aGlzLndvcmQsIHdvcmRzKTtcblxuICAgICAgICB0ZXh0ID0gd29yZF9hcnJheS5qb2luKCcgJyk7XG5cbiAgICAgICAgLy8gQ2FwaXRhbGl6ZSBmaXJzdCBsZXR0ZXIgb2Ygc2VudGVuY2UsIGFkZCBwZXJpb2QgYXQgZW5kXG4gICAgICAgIHRleHQgPSB0aGlzLmNhcGl0YWxpemUodGV4dCkgKyAnLic7XG5cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3lsbGFibGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IG9wdGlvbnMubGVuZ3RoIHx8IHRoaXMubmF0dXJhbCh7bWluOiAyLCBtYXg6IDN9KSxcbiAgICAgICAgICAgIGNvbnNvbmFudHMgPSAnYmNkZmdoamtsbW5wcnN0dnd6JywgLy8gY29uc29uYW50cyBleGNlcHQgaGFyZCB0byBzcGVhayBvbmVzXG4gICAgICAgICAgICB2b3dlbHMgPSAnYWVpb3UnLCAvLyB2b3dlbHNcbiAgICAgICAgICAgIGFsbCA9IGNvbnNvbmFudHMgKyB2b3dlbHMsIC8vIGFsbFxuICAgICAgICAgICAgdGV4dCA9ICcnLFxuICAgICAgICAgICAgY2hyO1xuXG4gICAgICAgIC8vIEknbSBzdXJlIHRoZXJlJ3MgYSBtb3JlIGVsZWdhbnQgd2F5IHRvIGRvIHRoaXMsIGJ1dCB0aGlzIHdvcmtzXG4gICAgICAgIC8vIGRlY2VudGx5IHdlbGwuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgLy8gRmlyc3QgY2hhcmFjdGVyIGNhbiBiZSBhbnl0aGluZ1xuICAgICAgICAgICAgICAgIGNociA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiBhbGx9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uc29uYW50cy5pbmRleE9mKGNocikgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gTGFzdCBjaGFyYWN0ZXIgd2FzIGEgdm93ZWwsIG5vdyB3ZSB3YW50IGEgY29uc29uYW50XG4gICAgICAgICAgICAgICAgY2hyID0gdGhpcy5jaGFyYWN0ZXIoe3Bvb2w6IGNvbnNvbmFudHN9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTGFzdCBjaGFyYWN0ZXIgd2FzIGEgY29uc29uYW50LCBub3cgd2Ugd2FudCBhIHZvd2VsXG4gICAgICAgICAgICAgICAgY2hyID0gdGhpcy5jaGFyYWN0ZXIoe3Bvb2w6IHZvd2Vsc30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZXh0ICs9IGNocjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLndvcmQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdGVzdFJhbmdlKFxuICAgICAgICAgICAgb3B0aW9ucy5zeWxsYWJsZXMgJiYgb3B0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICBcIkNoYW5jZTogQ2Fubm90IHNwZWNpZnkgYm90aCBzeWxsYWJsZXMgQU5EIGxlbmd0aC5cIlxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBzeWxsYWJsZXMgPSBvcHRpb25zLnN5bGxhYmxlcyB8fCB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiAzfSksXG4gICAgICAgICAgICB0ZXh0ID0gJyc7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBFaXRoZXIgYm91bmQgd29yZCBieSBsZW5ndGhcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHRoaXMuc3lsbGFibGUoKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKHRleHQubGVuZ3RoIDwgb3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIG9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE9yIGJ5IG51bWJlciBvZiBzeWxsYWJsZXNcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3lsbGFibGVzOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHRoaXMuc3lsbGFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIFRleHQgLS1cblxuICAgIC8vIC0tIFBlcnNvbiAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hZ2UgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBhZ2VSYW5nZTtcblxuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY2hpbGQnOlxuICAgICAgICAgICAgICAgIGFnZVJhbmdlID0ge21pbjogMSwgbWF4OiAxMn07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZWVuJzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDEzLCBtYXg6IDE5fTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FkdWx0JzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDE4LCBtYXg6IDY1fTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Nlbmlvcic6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiA2NSwgbWF4OiAxMDB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWxsJzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDEsIG1heDogMTAwfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiAxOCwgbWF4OiA2NX07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKGFnZVJhbmdlKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5iaXJ0aGRheSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICB5ZWFyOiAobmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gdGhpcy5hZ2Uob3B0aW9ucykpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUob3B0aW9ucyk7XG4gICAgfTtcblxuICAgIC8vIENQRjsgSUQgdG8gaWRlbnRpZnkgdGF4cGF5ZXJzIGluIEJyYXppbFxuICAgIENoYW5jZS5wcm90b3R5cGUuY3BmID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMubih0aGlzLm5hdHVyYWwsIDksIHsgbWF4OiA5IH0pO1xuICAgICAgICB2YXIgZDEgPSBuWzhdKjIrbls3XSozK25bNl0qNCtuWzVdKjUrbls0XSo2K25bM10qNytuWzJdKjgrblsxXSo5K25bMF0qMTA7XG4gICAgICAgIGQxID0gMTEgLSAoZDEgJSAxMSk7XG4gICAgICAgIGlmIChkMT49MTApIHtcbiAgICAgICAgICAgIGQxID0gMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZDIgPSBkMSoyK25bOF0qMytuWzddKjQrbls2XSo1K25bNV0qNituWzRdKjcrblszXSo4K25bMl0qOStuWzFdKjEwK25bMF0qMTE7XG4gICAgICAgIGQyID0gMTEgLSAoZDIgJSAxMSk7XG4gICAgICAgIGlmIChkMj49MTApIHtcbiAgICAgICAgICAgIGQyID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJycrblswXStuWzFdK25bMl0rJy4nK25bM10rbls0XStuWzVdKycuJytuWzZdK25bN10rbls4XSsnLScrZDErZDI7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZmlyc3QgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2dlbmRlcjogdGhpcy5nZW5kZXIoKX0pO1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKHRoaXMuZ2V0KFwiZmlyc3ROYW1lc1wiKVtvcHRpb25zLmdlbmRlci50b0xvd2VyQ2FzZSgpXSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZ2VuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKFsnTWFsZScsICdGZW1hbGUnXSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubGFzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayh0aGlzLmdldChcImxhc3ROYW1lc1wiKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubXJ6ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGNoZWNrRGlnaXQgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHZhciBhbHBoYSA9IFwiPEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlYWlwiLnNwbGl0KCcnKSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsaWVycyA9IFsgNywgMywgMSBdLFxuICAgICAgICAgICAgICAgIHJ1bm5pbmdUb3RhbCA9IDA7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dC5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbihjaGFyYWN0ZXIsIGlkeCkge1xuICAgICAgICAgICAgICAgIHZhciBwb3MgPSBhbHBoYS5pbmRleE9mKGNoYXJhY3Rlcik7XG5cbiAgICAgICAgICAgICAgICBpZihwb3MgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciA9IHBvcyA9PT0gMCA/IDAgOiBwb3MgKyA5O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciA9IHBhcnNlSW50KGNoYXJhY3RlciwgMTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgKj0gbXVsdGlwbGllcnNbaWR4ICUgbXVsdGlwbGllcnMubGVuZ3RoXTtcbiAgICAgICAgICAgICAgICBydW5uaW5nVG90YWwgKz0gY2hhcmFjdGVyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcnVubmluZ1RvdGFsICUgMTA7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBnZW5lcmF0ZSA9IGZ1bmN0aW9uIChvcHRzKSB7XG4gICAgICAgICAgICB2YXIgcGFkID0gZnVuY3Rpb24gKGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXkobGVuZ3RoICsgMSkuam9pbignPCcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBudW1iZXIgPSBbICdQPCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmlzc3VlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubGFzdC50b1VwcGVyQ2FzZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgJzw8JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZmlyc3QudG9VcHBlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZCgzOSAtIChvcHRzLmxhc3QubGVuZ3RoICsgb3B0cy5maXJzdC5sZW5ndGggKyAyKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLnBhc3Nwb3J0TnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tEaWdpdChvcHRzLnBhc3Nwb3J0TnVtYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubmF0aW9uYWxpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmRvYixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQob3B0cy5kb2IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5nZW5kZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmV4cGlyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQob3B0cy5leHBpcnkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkKDE0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQocGFkKDE0KSkgXS5qb2luKCcnKTtcblxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArXG4gICAgICAgICAgICAgICAgKGNoZWNrRGlnaXQobnVtYmVyLnN1YnN0cig0NCwgMTApICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIuc3Vic3RyKDU3LCA3KSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyLnN1YnN0cig2NSwgNykpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0KCksXG4gICAgICAgICAgICBsYXN0OiB0aGlzLmxhc3QoKSxcbiAgICAgICAgICAgIHBhc3Nwb3J0TnVtYmVyOiB0aGlzLmludGVnZXIoe21pbjogMTAwMDAwMDAwLCBtYXg6IDk5OTk5OTk5OX0pLFxuICAgICAgICAgICAgZG9iOiAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRlID0gdGhhdC5iaXJ0aGRheSh7dHlwZTogJ2FkdWx0J30pO1xuICAgICAgICAgICAgICAgIHJldHVybiBbZGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkuc3Vic3RyKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5wYWQoZGF0ZS5nZXRNb250aCgpICsgMSwgMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnBhZChkYXRlLmdldERhdGUoKSwgMildLmpvaW4oJycpO1xuICAgICAgICAgICAgfSgpKSxcbiAgICAgICAgICAgIGV4cGlyeTogKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsoZGF0ZS5nZXRGdWxsWWVhcigpICsgNSkudG9TdHJpbmcoKS5zdWJzdHIoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnBhZChkYXRlLmdldE1vbnRoKCkgKyAxLCAyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucGFkKGRhdGUuZ2V0RGF0ZSgpLCAyKV0uam9pbignJyk7XG4gICAgICAgICAgICB9KCkpLFxuICAgICAgICAgICAgZ2VuZGVyOiB0aGlzLmdlbmRlcigpID09PSAnRmVtYWxlJyA/ICdGJzogJ00nLFxuICAgICAgICAgICAgaXNzdWVyOiAnR0JSJyxcbiAgICAgICAgICAgIG5hdGlvbmFsaXR5OiAnR0JSJ1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlIChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5uYW1lID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBmaXJzdCA9IHRoaXMuZmlyc3Qob3B0aW9ucyksXG4gICAgICAgICAgICBsYXN0ID0gdGhpcy5sYXN0KCksXG4gICAgICAgICAgICBuYW1lO1xuXG4gICAgICAgIGlmIChvcHRpb25zLm1pZGRsZSkge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgdGhpcy5maXJzdChvcHRpb25zKSArICcgJyArIGxhc3Q7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5taWRkbGVfaW5pdGlhbCkge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgdGhpcy5jaGFyYWN0ZXIoe2FscGhhOiB0cnVlLCBjYXNpbmc6ICd1cHBlcid9KSArICcuICcgKyBsYXN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgbGFzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnByZWZpeCkge1xuICAgICAgICAgICAgbmFtZSA9IHRoaXMucHJlZml4KG9wdGlvbnMpICsgJyAnICsgbmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnN1ZmZpeCkge1xuICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyAnICcgKyB0aGlzLnN1ZmZpeChvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuYW1lO1xuICAgIH07XG5cbiAgICAvLyBSZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG5hbWUgcHJlZml4ZXMgYmFzZWQgb24gc3VwcGxpZWQgZ2VuZGVyLlxuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZV9wcmVmaXhlcyA9IGZ1bmN0aW9uIChnZW5kZXIpIHtcbiAgICAgICAgZ2VuZGVyID0gZ2VuZGVyIHx8IFwiYWxsXCI7XG4gICAgICAgIGdlbmRlciA9IGdlbmRlci50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIHZhciBwcmVmaXhlcyA9IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3RvcicsIGFiYnJldmlhdGlvbjogJ0RyLicgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChnZW5kZXIgPT09IFwibWFsZVwiIHx8IGdlbmRlciA9PT0gXCJhbGxcIikge1xuICAgICAgICAgICAgcHJlZml4ZXMucHVzaCh7IG5hbWU6ICdNaXN0ZXInLCBhYmJyZXZpYXRpb246ICdNci4nIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdlbmRlciA9PT0gXCJmZW1hbGVcIiB8fCBnZW5kZXIgPT09IFwiYWxsXCIpIHtcbiAgICAgICAgICAgIHByZWZpeGVzLnB1c2goeyBuYW1lOiAnTWlzcycsIGFiYnJldmlhdGlvbjogJ01pc3MnIH0pO1xuICAgICAgICAgICAgcHJlZml4ZXMucHVzaCh7IG5hbWU6ICdNaXNzZXMnLCBhYmJyZXZpYXRpb246ICdNcnMuJyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcmVmaXhlcztcbiAgICB9O1xuXG4gICAgLy8gQWxpYXMgZm9yIG5hbWVfcHJlZml4XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wcmVmaXggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lX3ByZWZpeChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5uYW1lX3ByZWZpeCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IGdlbmRlcjogXCJhbGxcIiB9KTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZnVsbCA/XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3ByZWZpeGVzKG9wdGlvbnMuZ2VuZGVyKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3ByZWZpeGVzKG9wdGlvbnMuZ2VuZGVyKSkuYWJicmV2aWF0aW9uO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnNzbiA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7c3NuRm91cjogZmFsc2UsIGRhc2hlczogdHJ1ZX0pO1xuICAgICAgICB2YXIgc3NuX3Bvb2wgPSBcIjEyMzQ1Njc4OTBcIixcbiAgICAgICAgICAgIHNzbixcbiAgICAgICAgICAgIGRhc2ggPSBvcHRpb25zLmRhc2hlcyA/ICctJyA6ICcnO1xuXG4gICAgICAgIGlmKCFvcHRpb25zLnNzbkZvdXIpIHtcbiAgICAgICAgICAgIHNzbiA9IHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiAzfSkgKyBkYXNoICtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiAyfSkgKyBkYXNoICtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiA0fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzc24gPSB0aGlzLnN0cmluZyh7cG9vbDogc3NuX3Bvb2wsIGxlbmd0aDogNH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzc247XG4gICAgfTtcblxuICAgIC8vIFJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbmFtZSBzdWZmaXhlc1xuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZV9zdWZmaXhlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHN1ZmZpeGVzID0gW1xuICAgICAgICAgICAgeyBuYW1lOiAnRG9jdG9yIG9mIE9zdGVvcGF0aGljIE1lZGljaW5lJywgYWJicmV2aWF0aW9uOiAnRC5PLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3RvciBvZiBQaGlsb3NvcGh5JywgYWJicmV2aWF0aW9uOiAnUGguRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdFc3F1aXJlJywgYWJicmV2aWF0aW9uOiAnRXNxLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0p1bmlvcicsIGFiYnJldmlhdGlvbjogJ0pyLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0p1cmlzIERvY3RvcicsIGFiYnJldmlhdGlvbjogJ0ouRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgQXJ0cycsIGFiYnJldmlhdGlvbjogJ00uQS4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgQnVzaW5lc3MgQWRtaW5pc3RyYXRpb24nLCBhYmJyZXZpYXRpb246ICdNLkIuQS4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgU2NpZW5jZScsIGFiYnJldmlhdGlvbjogJ00uUy4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNZWRpY2FsIERvY3RvcicsIGFiYnJldmlhdGlvbjogJ00uRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdTZW5pb3InLCBhYmJyZXZpYXRpb246ICdTci4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdUaGUgVGhpcmQnLCBhYmJyZXZpYXRpb246ICdJSUknIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdUaGUgRm91cnRoJywgYWJicmV2aWF0aW9uOiAnSVYnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdCYWNoZWxvciBvZiBFbmdpbmVlcmluZycsIGFiYnJldmlhdGlvbjogJ0IuRScgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0JhY2hlbG9yIG9mIFRlY2hub2xvZ3knLCBhYmJyZXZpYXRpb246ICdCLlRFQ0gnIH1cbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIHN1ZmZpeGVzO1xuICAgIH07XG5cbiAgICAvLyBBbGlhcyBmb3IgbmFtZV9zdWZmaXhcbiAgICBDaGFuY2UucHJvdG90eXBlLnN1ZmZpeCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWVfc3VmZml4KG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm5hbWVfc3VmZml4ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5mdWxsID9cbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLm5hbWVfc3VmZml4ZXMoKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3N1ZmZpeGVzKCkpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIFBlcnNvbiAtLVxuXG4gICAgLy8gLS0gTW9iaWxlIC0tXG4gICAgLy8gQW5kcm9pZCBHQ00gUmVnaXN0cmF0aW9uIElEXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbmRyb2lkX2lkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gXCJBUEE5MVwiICsgdGhpcy5zdHJpbmcoeyBwb29sOiBcIjAxMjM0NTY3ODlhYmNlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotX1wiLCBsZW5ndGg6IDE3OCB9KTtcbiAgICB9O1xuXG4gICAgLy8gQXBwbGUgUHVzaCBUb2tlblxuICAgIENoYW5jZS5wcm90b3R5cGUuYXBwbGVfdG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZyh7IHBvb2w6IFwiYWJjZGVmMTIzNDU2Nzg5MFwiLCBsZW5ndGg6IDY0IH0pO1xuICAgIH07XG5cbiAgICAvLyBXaW5kb3dzIFBob25lIDggQU5JRDJcbiAgICBDaGFuY2UucHJvdG90eXBlLndwOF9hbmlkMiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGJhc2U2NCggdGhpcy5oYXNoKCB7IGxlbmd0aCA6IDMyIH0gKSApO1xuICAgIH07XG5cbiAgICAvLyBXaW5kb3dzIFBob25lIDcgQU5JRFxuICAgIENoYW5jZS5wcm90b3R5cGUud3A3X2FuaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnQT0nICsgdGhpcy5ndWlkKCkucmVwbGFjZSgvLS9nLCAnJykudG9VcHBlckNhc2UoKSArICcmRT0nICsgdGhpcy5oYXNoKHsgbGVuZ3RoOjMgfSkgKyAnJlc9JyArIHRoaXMuaW50ZWdlcih7IG1pbjowLCBtYXg6OSB9KTtcbiAgICB9O1xuXG4gICAgLy8gQmxhY2tCZXJyeSBEZXZpY2UgUElOXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5iYl9waW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc2goeyBsZW5ndGg6IDggfSk7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBNb2JpbGUgLS1cblxuICAgIC8vIC0tIFdlYiAtLVxuICAgIENoYW5jZS5wcm90b3R5cGUuYXZhdGFyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHVybCA9IG51bGw7XG4gICAgICAgIHZhciBVUkxfQkFTRSA9ICcvL3d3dy5ncmF2YXRhci5jb20vYXZhdGFyLyc7XG4gICAgICAgIHZhciBQUk9UT0NPTFMgPSB7XG4gICAgICAgICAgICBodHRwOiAnaHR0cCcsXG4gICAgICAgICAgICBodHRwczogJ2h0dHBzJ1xuICAgICAgICB9O1xuICAgICAgICB2YXIgRklMRV9UWVBFUyA9IHtcbiAgICAgICAgICAgIGJtcDogJ2JtcCcsXG4gICAgICAgICAgICBnaWY6ICdnaWYnLFxuICAgICAgICAgICAganBnOiAnanBnJyxcbiAgICAgICAgICAgIHBuZzogJ3BuZydcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIEZBTExCQUNLUyA9IHtcbiAgICAgICAgICAgICc0MDQnOiAnNDA0JywgLy8gUmV0dXJuIDQwNCBpZiBub3QgZm91bmRcbiAgICAgICAgICAgIG1tOiAnbW0nLCAvLyBNeXN0ZXJ5IG1hblxuICAgICAgICAgICAgaWRlbnRpY29uOiAnaWRlbnRpY29uJywgLy8gR2VvbWV0cmljIHBhdHRlcm4gYmFzZWQgb24gaGFzaFxuICAgICAgICAgICAgbW9uc3RlcmlkOiAnbW9uc3RlcmlkJywgLy8gQSBnZW5lcmF0ZWQgbW9uc3RlciBpY29uXG4gICAgICAgICAgICB3YXZhdGFyOiAnd2F2YXRhcicsIC8vIEEgZ2VuZXJhdGVkIGZhY2VcbiAgICAgICAgICAgIHJldHJvOiAncmV0cm8nLCAvLyA4LWJpdCBpY29uXG4gICAgICAgICAgICBibGFuazogJ2JsYW5rJyAvLyBBIHRyYW5zcGFyZW50IHBuZ1xuICAgICAgICB9O1xuICAgICAgICB2YXIgUkFUSU5HUyA9IHtcbiAgICAgICAgICAgIGc6ICdnJyxcbiAgICAgICAgICAgIHBnOiAncGcnLFxuICAgICAgICAgICAgcjogJ3InLFxuICAgICAgICAgICAgeDogJ3gnXG4gICAgICAgIH07XG4gICAgICAgIHZhciBvcHRzID0ge1xuICAgICAgICAgICAgcHJvdG9jb2w6IG51bGwsXG4gICAgICAgICAgICBlbWFpbDogbnVsbCxcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb246IG51bGwsXG4gICAgICAgICAgICBzaXplOiBudWxsLFxuICAgICAgICAgICAgZmFsbGJhY2s6IG51bGwsXG4gICAgICAgICAgICByYXRpbmc6IG51bGxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIFNldCB0byBhIHJhbmRvbSBlbWFpbFxuICAgICAgICAgICAgb3B0cy5lbWFpbCA9IHRoaXMuZW1haWwoKTtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIG9wdHMuZW1haWwgPSBvcHRpb25zO1xuICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5jb25zdHJ1Y3RvciA9PT0gJ0FycmF5Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRzID0gaW5pdE9wdGlvbnMob3B0aW9ucywgb3B0cyk7XG5cbiAgICAgICAgaWYgKCFvcHRzLmVtYWlsKSB7XG4gICAgICAgICAgICAvLyBTZXQgdG8gYSByYW5kb20gZW1haWxcbiAgICAgICAgICAgIG9wdHMuZW1haWwgPSB0aGlzLmVtYWlsKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTYWZlIGNoZWNraW5nIGZvciBwYXJhbXNcbiAgICAgICAgb3B0cy5wcm90b2NvbCA9IFBST1RPQ09MU1tvcHRzLnByb3RvY29sXSA/IG9wdHMucHJvdG9jb2wgKyAnOicgOiAnJztcbiAgICAgICAgb3B0cy5zaXplID0gcGFyc2VJbnQob3B0cy5zaXplLCAwKSA/IG9wdHMuc2l6ZSA6ICcnO1xuICAgICAgICBvcHRzLnJhdGluZyA9IFJBVElOR1Nbb3B0cy5yYXRpbmddID8gb3B0cy5yYXRpbmcgOiAnJztcbiAgICAgICAgb3B0cy5mYWxsYmFjayA9IEZBTExCQUNLU1tvcHRzLmZhbGxiYWNrXSA/IG9wdHMuZmFsbGJhY2sgOiAnJztcbiAgICAgICAgb3B0cy5maWxlRXh0ZW5zaW9uID0gRklMRV9UWVBFU1tvcHRzLmZpbGVFeHRlbnNpb25dID8gb3B0cy5maWxlRXh0ZW5zaW9uIDogJyc7XG5cbiAgICAgICAgdXJsID1cbiAgICAgICAgICAgIG9wdHMucHJvdG9jb2wgK1xuICAgICAgICAgICAgVVJMX0JBU0UgK1xuICAgICAgICAgICAgdGhpcy5iaW1kNS5tZDUob3B0cy5lbWFpbCkgK1xuICAgICAgICAgICAgKG9wdHMuZmlsZUV4dGVuc2lvbiA/ICcuJyArIG9wdHMuZmlsZUV4dGVuc2lvbiA6ICcnKSArXG4gICAgICAgICAgICAob3B0cy5zaXplIHx8IG9wdHMucmF0aW5nIHx8IG9wdHMuZmFsbGJhY2sgPyAnPycgOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMuc2l6ZSA/ICcmcz0nICsgb3B0cy5zaXplLnRvU3RyaW5nKCkgOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMucmF0aW5nID8gJyZyPScgKyBvcHRzLnJhdGluZyA6ICcnKSArXG4gICAgICAgICAgICAob3B0cy5mYWxsYmFjayA/ICcmZD0nICsgb3B0cy5mYWxsYmFjayA6ICcnKVxuICAgICAgICAgICAgO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY29sb3IgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBmdW5jdGlvbiBncmF5KHZhbHVlLCBkZWxpbWl0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIHZhbHVlLCB2YWx1ZV0uam9pbihkZWxpbWl0ZXIgfHwgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5waWNrKFsnaGV4JywgJ3Nob3J0aGV4JywgJ3JnYicsICdyZ2JhJywgJzB4J10pLFxuICAgICAgICAgICAgZ3JheXNjYWxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNhc2luZzogJ2xvd2VyJ1xuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgaXNHcmF5c2NhbGUgPSBvcHRpb25zLmdyYXlzY2FsZTtcbiAgICAgICAgdmFyIGNvbG9yVmFsdWU7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnaGV4Jykge1xuICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICcjJyArIChpc0dyYXlzY2FsZSA/IGdyYXkodGhpcy5oYXNoKHtsZW5ndGg6IDJ9KSkgOiB0aGlzLmhhc2goe2xlbmd0aDogNn0pKTtcblxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnc2hvcnRoZXgnKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlID0gJyMnICsgKGlzR3JheXNjYWxlID8gZ3JheSh0aGlzLmhhc2goe2xlbmd0aDogMX0pKSA6IHRoaXMuaGFzaCh7bGVuZ3RoOiAzfSkpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyZ2InKSB7XG4gICAgICAgICAgICBpZiAoaXNHcmF5c2NhbGUpIHtcbiAgICAgICAgICAgICAgICBjb2xvclZhbHVlID0gJ3JnYignICsgZ3JheSh0aGlzLm5hdHVyYWwoe21heDogMjU1fSksICcsJykgKyAnKSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yVmFsdWUgPSAncmdiKCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyZ2JhJykge1xuICAgICAgICAgICAgaWYgKGlzR3JheXNjYWxlKSB7XG4gICAgICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICdyZ2JhKCcgKyBncmF5KHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSwgJywnKSArICcsJyArIHRoaXMuZmxvYXRpbmcoe21pbjowLCBtYXg6MX0pICsgJyknO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvclZhbHVlID0gJ3JnYmEoJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMuZmxvYXRpbmcoe21pbjowLCBtYXg6MX0pICsgJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnMHgnKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlID0gJzB4JyArIChpc0dyYXlzY2FsZSA/IGdyYXkodGhpcy5oYXNoKHtsZW5ndGg6IDJ9KSkgOiB0aGlzLmhhc2goe2xlbmd0aDogNn0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIGZvcm1hdCBwcm92aWRlZC4gUGxlYXNlIHByb3ZpZGUgb25lIG9mIFwiaGV4XCIsIFwic2hvcnRoZXhcIiwgXCJyZ2JcIiwgXCJyZ2JhXCIsIG9yIFwiMHhcIi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJyApIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUgPSBjb2xvclZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29sb3JWYWx1ZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kb21haW4gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLndvcmQoKSArICcuJyArIChvcHRpb25zLnRsZCB8fCB0aGlzLnRsZCgpKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5lbWFpbCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud29yZCh7bGVuZ3RoOiBvcHRpb25zLmxlbmd0aH0pICsgJ0AnICsgKG9wdGlvbnMuZG9tYWluIHx8IHRoaXMuZG9tYWluKCkpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmZiaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCgnMTAwMDAnICsgdGhpcy5uYXR1cmFsKHttYXg6IDEwMDAwMDAwMDAwMH0pLCAxMCk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZ29vZ2xlX2FuYWx5dGljcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGFjY291bnQgPSB0aGlzLnBhZCh0aGlzLm5hdHVyYWwoe21heDogOTk5OTk5fSksIDYpO1xuICAgICAgICB2YXIgcHJvcGVydHkgPSB0aGlzLnBhZCh0aGlzLm5hdHVyYWwoe21heDogOTl9KSwgMik7XG5cbiAgICAgICAgcmV0dXJuICdVQS0nICsgYWNjb3VudCArICctJyArIHByb3BlcnR5O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmhhc2h0YWcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLndvcmQoKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5pcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gVG9kbzogVGhpcyBjb3VsZCByZXR1cm4gc29tZSByZXNlcnZlZCBJUHMuIFNlZSBodHRwOi8vdnEuaW8vMTM3ZGdZeVxuICAgICAgICAvLyB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSB1cGRhdGVkIHRvIGFjY291bnQgZm9yIHRoYXQgcmFyZSBhcyBpdCBtYXkgYmVcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcuJyArXG4gICAgICAgICAgICAgICB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLicgK1xuICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pICsgJy4nICtcbiAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5pcHY2ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaXBfYWRkciA9IHRoaXMubih0aGlzLmhhc2gsIDgsIHtsZW5ndGg6IDR9KTtcblxuICAgICAgICByZXR1cm4gaXBfYWRkci5qb2luKFwiOlwiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5rbG91dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWluOiAxLCBtYXg6IDk5fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudGxkcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFsnY29tJywgJ29yZycsICdlZHUnLCAnZ292JywgJ2NvLnVrJywgJ25ldCcsICdpbyddO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnRsZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayh0aGlzLnRsZHMoKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudHdpdHRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICdAJyArIHRoaXMud29yZCgpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnVybCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IHByb3RvY29sOiBcImh0dHBcIiwgZG9tYWluOiB0aGlzLmRvbWFpbihvcHRpb25zKSwgZG9tYWluX3ByZWZpeDogXCJcIiwgcGF0aDogdGhpcy53b3JkKCksIGV4dGVuc2lvbnM6IFtdfSk7XG5cbiAgICAgICAgdmFyIGV4dGVuc2lvbiA9IG9wdGlvbnMuZXh0ZW5zaW9ucy5sZW5ndGggPiAwID8gXCIuXCIgKyB0aGlzLnBpY2sob3B0aW9ucy5leHRlbnNpb25zKSA6IFwiXCI7XG4gICAgICAgIHZhciBkb21haW4gPSBvcHRpb25zLmRvbWFpbl9wcmVmaXggPyBvcHRpb25zLmRvbWFpbl9wcmVmaXggKyBcIi5cIiArIG9wdGlvbnMuZG9tYWluIDogb3B0aW9ucy5kb21haW47XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucHJvdG9jb2wgKyBcIjovL1wiICsgZG9tYWluICsgXCIvXCIgKyBvcHRpb25zLnBhdGggKyBleHRlbnNpb247XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBXZWIgLS1cblxuICAgIC8vIC0tIExvY2F0aW9uIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmFkZHJlc3MgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21pbjogNSwgbWF4OiAyMDAwfSkgKyAnICcgKyB0aGlzLnN0cmVldChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbHRpdHVkZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQ6IDUsIG1pbjogMCwgbWF4OiA4ODQ4fSk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb2F0aW5nKHtcbiAgICAgICAgICAgIG1pbjogb3B0aW9ucy5taW4sXG4gICAgICAgICAgICBtYXg6IG9wdGlvbnMubWF4LFxuICAgICAgICAgICAgZml4ZWQ6IG9wdGlvbnMuZml4ZWRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuYXJlYWNvZGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge3BhcmVucyA6IHRydWV9KTtcbiAgICAgICAgLy8gRG9uJ3Qgd2FudCBhcmVhIGNvZGVzIHRvIHN0YXJ0IHdpdGggMSwgb3IgaGF2ZSBhIDkgYXMgdGhlIHNlY29uZCBkaWdpdFxuICAgICAgICB2YXIgYXJlYWNvZGUgPSB0aGlzLm5hdHVyYWwoe21pbjogMiwgbWF4OiA5fSkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHttaW46IDAsIG1heDogOH0pLnRvU3RyaW5nKCkgK1xuICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWluOiAwLCBtYXg6IDl9KS50b1N0cmluZygpO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnBhcmVucyA/ICcoJyArIGFyZWFjb2RlICsgJyknIDogYXJlYWNvZGU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY2l0eSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwaXRhbGl6ZSh0aGlzLndvcmQoe3N5bGxhYmxlczogM30pKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jb29yZGluYXRlcyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhdGl0dWRlKG9wdGlvbnMpICsgJywgJyArIHRoaXMubG9uZ2l0dWRlKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNvdW50cmllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwiY291bnRyaWVzXCIpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNvdW50cnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBjb3VudHJ5ID0gdGhpcy5waWNrKHRoaXMuY291bnRyaWVzKCkpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5mdWxsID8gY291bnRyeS5uYW1lIDogY291bnRyeS5hYmJyZXZpYXRpb247XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZGVwdGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2ZpeGVkOiA1LCBtaW46IC0yNTUwLCBtYXg6IDB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXRpbmcoe1xuICAgICAgICAgICAgbWluOiBvcHRpb25zLm1pbixcbiAgICAgICAgICAgIG1heDogb3B0aW9ucy5tYXgsXG4gICAgICAgICAgICBmaXhlZDogb3B0aW9ucy5maXhlZFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5nZW9oYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgbGVuZ3RoOiA3IH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmcoeyBsZW5ndGg6IG9wdGlvbnMubGVuZ3RoLCBwb29sOiAnMDEyMzQ1Njc4OWJjZGVmZ2hqa21ucHFyc3R1dnd4eXonIH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmdlb2pzb24gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXRpdHVkZShvcHRpb25zKSArICcsICcgKyB0aGlzLmxvbmdpdHVkZShvcHRpb25zKSArICcsICcgKyB0aGlzLmFsdGl0dWRlKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmxhdGl0dWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtmaXhlZDogNSwgbWluOiAtOTAsIG1heDogOTB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXRpbmcoe21pbjogb3B0aW9ucy5taW4sIG1heDogb3B0aW9ucy5tYXgsIGZpeGVkOiBvcHRpb25zLmZpeGVkfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubG9uZ2l0dWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtmaXhlZDogNSwgbWluOiAtMTgwLCBtYXg6IDE4MH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5mbG9hdGluZyh7bWluOiBvcHRpb25zLm1pbiwgbWF4OiBvcHRpb25zLm1heCwgZml4ZWQ6IG9wdGlvbnMuZml4ZWR9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5waG9uZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgICAgIG51bVBpY2ssXG4gICAgICAgICAgICB1a051bSA9IGZ1bmN0aW9uIChwYXJ0cykge1xuICAgICAgICAgICAgICAgIHZhciBzZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgLy9maWxscyB0aGUgc2VjdGlvbiBwYXJ0IG9mIHRoZSBwaG9uZSBudW1iZXIgd2l0aCByYW5kb20gbnVtYmVycy5cbiAgICAgICAgICAgICAgICBwYXJ0cy5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi5wdXNoKHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IG59KSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnRzLmFyZWEgKyBzZWN0aW9uLmpvaW4oJyAnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICBmb3JtYXR0ZWQ6IHRydWUsXG4gICAgICAgICAgICBjb3VudHJ5OiAndXMnLFxuICAgICAgICAgICAgbW9iaWxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFvcHRpb25zLmZvcm1hdHRlZCkge1xuICAgICAgICAgICAgb3B0aW9ucy5wYXJlbnMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGhvbmU7XG4gICAgICAgIHN3aXRjaCAob3B0aW9ucy5jb3VudHJ5KSB7XG4gICAgICAgICAgICBjYXNlICdmcic6XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLm1vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICBudW1QaWNrID0gdGhpcy5waWNrKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIHpvbmUgYW5kIGTDqXBhcnRlbWVudCBjb2Rlcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICcwMScgKyB0aGlzLnBpY2soWyczMCcsICczNCcsICczOScsICc0MCcsICc0MScsICc0MicsICc0MycsICc0NCcsICc0NScsICc0NicsICc0NycsICc0OCcsICc0OScsICc1MycsICc1NScsICc1NicsICc1OCcsICc2MCcsICc2NCcsICc2OScsICc3MCcsICc3MicsICc3MycsICc3NCcsICc3NScsICc3NicsICc3NycsICc3OCcsICc3OScsICc4MCcsICc4MScsICc4MicsICc4MyddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwMicgKyB0aGlzLnBpY2soWycxNCcsICcxOCcsICcyMicsICcyMycsICcyOCcsICcyOScsICczMCcsICczMScsICczMicsICczMycsICczNCcsICczNScsICczNicsICczNycsICczOCcsICc0MCcsICc0MScsICc0MycsICc0NCcsICc0NScsICc0NicsICc0NycsICc0OCcsICc0OScsICc1MCcsICc1MScsICc1MicsICc1MycsICc1NCcsICc1NicsICc1NycsICc2MScsICc2MicsICc2OScsICc3MicsICc3NicsICc3NycsICc3OCcsICc4NScsICc5MCcsICc5NicsICc5NycsICc5OCcsICc5OSddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwMycgKyB0aGlzLnBpY2soWycxMCcsICcyMCcsICcyMScsICcyMicsICcyMycsICcyNCcsICcyNScsICcyNicsICcyNycsICcyOCcsICcyOScsICczOScsICc0NCcsICc0NScsICc1MScsICc1MicsICc1NCcsICc1NScsICc1NycsICc1OCcsICc1OScsICc2MCcsICc2MScsICc2MicsICc2MycsICc2NCcsICc2NScsICc2NicsICc2NycsICc2OCcsICc2OScsICc3MCcsICc3MScsICc3MicsICc3MycsICc4MCcsICc4MScsICc4MicsICc4MycsICc4NCcsICc4NScsICc4NicsICc4NycsICc4OCcsICc4OScsICc5MCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwNCcgKyB0aGlzLnBpY2soWycxMScsICcxMycsICcxNScsICcyMCcsICcyMicsICcyNicsICcyNycsICczMCcsICczMicsICczNCcsICczNycsICc0MicsICc0MycsICc0NCcsICc1MCcsICc1NicsICc1NycsICc2MycsICc2NicsICc2NycsICc2OCcsICc2OScsICc3MCcsICc3MScsICc3MicsICc3MycsICc3NCcsICc3NScsICc3NicsICc3NycsICc3OCcsICc3OScsICc4MCcsICc4MScsICc4MicsICc4MycsICc4NCcsICc4NScsICc4NicsICc4OCcsICc4OScsICc5MCcsICc5MScsICc5MicsICc5MycsICc5NCcsICc5NScsICc5NycsICc5OCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwNScgKyB0aGlzLnBpY2soWycwOCcsICcxNicsICcxNycsICcxOScsICcyNCcsICczMScsICczMicsICczMycsICczNCcsICczNScsICc0MCcsICc0NScsICc0NicsICc0NycsICc0OScsICc1MycsICc1NScsICc1NicsICc1NycsICc1OCcsICc1OScsICc2MScsICc2MicsICc2MycsICc2NCcsICc2NScsICc2NycsICc3OScsICc4MScsICc4MicsICc4NicsICc4NycsICc5MCcsICc5NCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwOScgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA4fSksXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gbnVtUGljay5tYXRjaCgvLi4vZykuam9pbignICcpIDogbnVtUGljaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBudW1QaWNrID0gdGhpcy5waWNrKFsnMDYnLCAnMDcnXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA4fSk7XG4gICAgICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyBudW1QaWNrLm1hdGNoKC8uLi9nKS5qb2luKCcgJykgOiBudW1QaWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VrJzpcbiAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMubW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIG51bVBpY2sgPSB0aGlzLnBpY2soW1xuICAgICAgICAgICAgICAgICAgICAgICAgLy92YWxpZCBhcmVhIGNvZGVzIG9mIG1ham9yIGNpdGllcy9jb3VudGllcyBmb2xsb3dlZCBieSByYW5kb20gbnVtYmVycyBpbiByZXF1aXJlZCBmb3JtYXQuXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMScgKyB0aGlzLmNoYXJhY3Rlcih7IHBvb2w6ICcyMzQ1NjknIH0pICsgJzEgJywgc2VjdGlvbnM6IFszLDRdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMjAgJyArIHRoaXMuY2hhcmFjdGVyKHsgcG9vbDogJzM3OCcgfSksIHNlY3Rpb25zOiBbMyw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDIzICcgKyB0aGlzLmNoYXJhY3Rlcih7IHBvb2w6ICc4OScgfSksIHNlY3Rpb25zOiBbMyw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDI0IDcnLCBzZWN0aW9uczogWzMsNF0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAyOCAnICsgdGhpcy5waWNrKFsnMjUnLCcyOCcsJzM3JywnNzEnLCc4MicsJzkwJywnOTInLCc5NSddKSwgc2VjdGlvbnM6IFsyLDRdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTInICsgdGhpcy5waWNrKFsnMDQnLCcwOCcsJzU0JywnNzYnLCc5NycsJzk4J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTMnICsgdGhpcy5waWNrKFsnNjMnLCc2NCcsJzg0JywnODYnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNCcgKyB0aGlzLnBpY2soWycwNCcsJzIwJywnNjAnLCc2MScsJzgwJywnODgnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNScgKyB0aGlzLnBpY2soWycyNCcsJzI3JywnNjInLCc2NiddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDE2JyArIHRoaXMucGljayhbJzA2JywnMjknLCczNScsJzQ3JywnNTknLCc5NSddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDE3JyArIHRoaXMucGljayhbJzI2JywnNDQnLCc1MCcsJzY4J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTgnICsgdGhpcy5waWNrKFsnMjcnLCczNycsJzg0JywnOTcnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxOScgKyB0aGlzLnBpY2soWycwMCcsJzA1JywnMzUnLCc0NicsJzQ5JywnNjMnLCc5NSddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9XG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gdWtOdW0obnVtUGljaykgOiB1a051bShudW1QaWNrKS5yZXBsYWNlKCcgJywgJycsICdnJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtUGljayA9IHRoaXMucGljayhbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwNycgKyB0aGlzLnBpY2soWyc0JywnNScsJzcnLCc4JywnOSddKSwgc2VjdGlvbnM6IFsyLDZdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwNzYyNCAnLCBzZWN0aW9uczogWzZdIH1cbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyB1a051bShudW1QaWNrKSA6IHVrTnVtKG51bVBpY2spLnJlcGxhY2UoJyAnLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXMnOlxuICAgICAgICAgICAgICAgIHZhciBhcmVhY29kZSA9IHRoaXMuYXJlYWNvZGUob3B0aW9ucykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB2YXIgZXhjaGFuZ2UgPSB0aGlzLm5hdHVyYWwoeyBtaW46IDIsIG1heDogOSB9KS50b1N0cmluZygpICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHsgbWluOiAwLCBtYXg6IDkgfSkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7IG1pbjogMCwgbWF4OiA5IH0pLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgdmFyIHN1YnNjcmliZXIgPSB0aGlzLm5hdHVyYWwoeyBtaW46IDEwMDAsIG1heDogOTk5OSB9KS50b1N0cmluZygpOyAvLyB0aGlzIGNvdWxkIGJlIHJhbmRvbSBbMC05XXs0fVxuICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyBhcmVhY29kZSArICcgJyArIGV4Y2hhbmdlICsgJy0nICsgc3Vic2NyaWJlciA6IGFyZWFjb2RlICsgZXhjaGFuZ2UgKyBzdWJzY3JpYmVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwaG9uZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wb3N0YWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIFBvc3RhbCBEaXN0cmljdFxuICAgICAgICB2YXIgcGQgPSB0aGlzLmNoYXJhY3Rlcih7cG9vbDogXCJYVlRTUlBOS0xNSEpHRUNCQVwifSk7XG4gICAgICAgIC8vIEZvcndhcmQgU29ydGF0aW9uIEFyZWEgKEZTQSlcbiAgICAgICAgdmFyIGZzYSA9IHBkICsgdGhpcy5uYXR1cmFsKHttYXg6IDl9KSArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KTtcbiAgICAgICAgLy8gTG9jYWwgRGVsaXZlcnkgVW51dCAoTERVKVxuICAgICAgICB2YXIgbGR1ID0gdGhpcy5uYXR1cmFsKHttYXg6IDl9KSArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KSArIHRoaXMubmF0dXJhbCh7bWF4OiA5fSk7XG5cbiAgICAgICAgcmV0dXJuIGZzYSArIFwiIFwiICsgbGR1O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnByb3ZpbmNlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwicHJvdmluY2VzXCIpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnByb3ZpbmNlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIChvcHRpb25zICYmIG9wdGlvbnMuZnVsbCkgP1xuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMucHJvdmluY2VzKCkpLm5hbWUgOlxuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMucHJvdmluY2VzKCkpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdGF0ZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiAob3B0aW9ucyAmJiBvcHRpb25zLmZ1bGwpID9cbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLnN0YXRlcyhvcHRpb25zKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5zdGF0ZXMob3B0aW9ucykpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdGF0ZXMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHN0YXRlcyxcbiAgICAgICAgICAgIHVzX3N0YXRlc19hbmRfZGMgPSB0aGlzLmdldChcInVzX3N0YXRlc19hbmRfZGNcIiksXG4gICAgICAgICAgICB0ZXJyaXRvcmllcyA9IHRoaXMuZ2V0KFwidGVycml0b3JpZXNcIiksXG4gICAgICAgICAgICBhcm1lZF9mb3JjZXMgPSB0aGlzLmdldChcImFybWVkX2ZvcmNlc1wiKTtcblxuICAgICAgICBzdGF0ZXMgPSB1c19zdGF0ZXNfYW5kX2RjO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnRlcnJpdG9yaWVzKSB7XG4gICAgICAgICAgICBzdGF0ZXMgPSBzdGF0ZXMuY29uY2F0KHRlcnJpdG9yaWVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hcm1lZF9mb3JjZXMpIHtcbiAgICAgICAgICAgIHN0YXRlcyA9IHN0YXRlcy5jb25jYXQoYXJtZWRfZm9yY2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZXM7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RyZWV0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBzdHJlZXQgPSB0aGlzLndvcmQoe3N5bGxhYmxlczogMn0pO1xuICAgICAgICBzdHJlZXQgPSB0aGlzLmNhcGl0YWxpemUoc3RyZWV0KTtcbiAgICAgICAgc3RyZWV0ICs9ICcgJztcbiAgICAgICAgc3RyZWV0ICs9IG9wdGlvbnMuc2hvcnRfc3VmZml4ID9cbiAgICAgICAgICAgIHRoaXMuc3RyZWV0X3N1ZmZpeCgpLmFiYnJldmlhdGlvbiA6XG4gICAgICAgICAgICB0aGlzLnN0cmVldF9zdWZmaXgoKS5uYW1lO1xuICAgICAgICByZXR1cm4gc3RyZWV0O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnN0cmVldF9zdWZmaXggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy5zdHJlZXRfc3VmZml4ZXMoKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RyZWV0X3N1ZmZpeGVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIG1vc3QgY29tbW9uIHN1ZmZpeGVzLlxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoXCJzdHJlZXRfc3VmZml4ZXNcIik7XG4gICAgfTtcblxuICAgIC8vIE5vdGU6IG9ubHkgcmV0dXJuaW5nIFVTIHppcCBjb2RlcywgaW50ZXJuYXRpb25hbGl6YXRpb24gd2lsbCBiZSBhIHdob2xlXG4gICAgLy8gb3RoZXIgYmVhc3QgdG8gdGFja2xlIGF0IHNvbWUgcG9pbnQuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS56aXAgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgemlwID0gdGhpcy5uKHRoaXMubmF0dXJhbCwgNSwge21heDogOX0pO1xuXG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucGx1c2ZvdXIgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHppcC5wdXNoKCctJyk7XG4gICAgICAgICAgICB6aXAgPSB6aXAuY29uY2F0KHRoaXMubih0aGlzLm5hdHVyYWwsIDQsIHttYXg6IDl9KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gemlwLmpvaW4oXCJcIik7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBMb2NhdGlvbiAtLVxuXG4gICAgLy8gLS0gVGltZVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbXBtID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ib29sKCkgPyAnYW0nIDogJ3BtJztcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGRhdGVfc3RyaW5nLCBkYXRlO1xuXG4gICAgICAgIC8vIElmIGludGVydmFsIGlzIHNwZWNpZmllZCB3ZSBpZ25vcmUgcHJlc2V0XG4gICAgICAgIGlmKG9wdGlvbnMgJiYgKG9wdGlvbnMubWluIHx8IG9wdGlvbnMubWF4KSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBhbWVyaWNhbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdHJpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBtaW4gPSB0eXBlb2Ygb3B0aW9ucy5taW4gIT09IFwidW5kZWZpbmVkXCIgPyBvcHRpb25zLm1pbi5nZXRUaW1lKCkgOiAxO1xuICAgICAgICAgICAgLy8gMTAwLDAwMCwwMDAgZGF5cyBtZWFzdXJlZCByZWxhdGl2ZSB0byBtaWRuaWdodCBhdCB0aGUgYmVnaW5uaW5nIG9mIDAxIEphbnVhcnksIDE5NzAgVVRDLiBodHRwOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjkuMS4xXG4gICAgICAgICAgICB2YXIgbWF4ID0gdHlwZW9mIG9wdGlvbnMubWF4ICE9PSBcInVuZGVmaW5lZFwiID8gb3B0aW9ucy5tYXguZ2V0VGltZSgpIDogODY0MDAwMDAwMDAwMDAwMDtcblxuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKHRoaXMubmF0dXJhbCh7bWluOiBtaW4sIG1heDogbWF4fSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIG0gPSB0aGlzLm1vbnRoKHtyYXc6IHRydWV9KTtcbiAgICAgICAgICAgIHZhciBkYXlzSW5Nb250aCA9IG0uZGF5cztcblxuICAgICAgICAgICAgaWYob3B0aW9ucyAmJiBvcHRpb25zLm1vbnRoKSB7XG4gICAgICAgICAgICAgICAgLy8gTW9kIDEyIHRvIGFsbG93IG1vbnRocyBvdXRzaWRlIHJhbmdlIG9mIDAtMTEgKG5vdCBlbmNvdXJhZ2VkLCBidXQgYWxzbyBub3QgcHJldmVudGVkKS5cbiAgICAgICAgICAgICAgICBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0KCdtb250aHMnKVsoKG9wdGlvbnMubW9udGggJSAxMikgKyAxMikgJSAxMl0uZGF5cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICB5ZWFyOiBwYXJzZUludCh0aGlzLnllYXIoKSwgMTApLFxuICAgICAgICAgICAgICAgIC8vIE5lY2Vzc2FyeSB0byBzdWJ0cmFjdCAxIGJlY2F1c2UgRGF0ZSgpIDAtaW5kZXhlcyBtb250aCBidXQgbm90IGRheSBvciB5ZWFyXG4gICAgICAgICAgICAgICAgLy8gZm9yIHNvbWUgcmVhc29uLlxuICAgICAgICAgICAgICAgIG1vbnRoOiBtLm51bWVyaWMgLSAxLFxuICAgICAgICAgICAgICAgIGRheTogdGhpcy5uYXR1cmFsKHttaW46IDEsIG1heDogZGF5c0luTW9udGh9KSxcbiAgICAgICAgICAgICAgICBob3VyOiB0aGlzLmhvdXIoKSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMubWludXRlKCksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiB0aGlzLnNlY29uZCgpLFxuICAgICAgICAgICAgICAgIG1pbGxpc2Vjb25kOiB0aGlzLm1pbGxpc2Vjb25kKCksXG4gICAgICAgICAgICAgICAgYW1lcmljYW46IHRydWUsXG4gICAgICAgICAgICAgICAgc3RyaW5nOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShvcHRpb25zLnllYXIsIG9wdGlvbnMubW9udGgsIG9wdGlvbnMuZGF5LCBvcHRpb25zLmhvdXIsIG9wdGlvbnMubWludXRlLCBvcHRpb25zLnNlY29uZCwgb3B0aW9ucy5taWxsaXNlY29uZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5hbWVyaWNhbikge1xuICAgICAgICAgICAgLy8gQWRkaW5nIDEgdG8gdGhlIG1vbnRoIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIERhdGUoKSAwLWluZGV4ZXNcbiAgICAgICAgICAgIC8vIG1vbnRocyBidXQgbm90IGRheSBmb3Igc29tZSBvZGQgcmVhc29uLlxuICAgICAgICAgICAgZGF0ZV9zdHJpbmcgPSAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLycgKyBkYXRlLmdldERhdGUoKSArICcvJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGVfc3RyaW5nID0gZGF0ZS5nZXREYXRlKCkgKyAnLycgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLycgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5zdHJpbmcgPyBkYXRlX3N0cmluZyA6IGRhdGU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuaGFtbWVydGltZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUob3B0aW9ucykuZ2V0VGltZSgpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmhvdXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMSwgbWF4OiBvcHRpb25zICYmIG9wdGlvbnMudHdlbnR5Zm91ciA/IDI0IDogMTJ9KTtcblxuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPCAxLCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBsZXNzIHRoYW4gMS5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLnR3ZW50eWZvdXIgJiYgb3B0aW9ucy5tYXggPiAyNCwgXCJDaGFuY2U6IE1heCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDI0IGZvciB0d2VudHlmb3VyIG9wdGlvbi5cIik7XG4gICAgICAgIHRlc3RSYW5nZSghb3B0aW9ucy50d2VudHlmb3VyICYmIG9wdGlvbnMubWF4ID4gMTIsIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMi5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubWlsbGlzZWNvbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21heDogOTk5fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubWludXRlID0gQ2hhbmNlLnByb3RvdHlwZS5zZWNvbmQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMCwgbWF4OiA1OX0pO1xuXG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA8IDAsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGxlc3MgdGhhbiAwLlwiKTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWF4ID4gNTksIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiA1OS5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubW9udGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMSwgbWF4OiAxMn0pO1xuXG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA8IDEsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGxlc3MgdGhhbiAxLlwiKTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWF4ID4gMTIsIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMi5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICB2YXIgbW9udGggPSB0aGlzLnBpY2sodGhpcy5tb250aHMoKS5zbGljZShvcHRpb25zLm1pbiAtIDEsIG9wdGlvbnMubWF4KSk7XG4gICAgICAgIHJldHVybiBvcHRpb25zLnJhdyA/IG1vbnRoIDogbW9udGgubmFtZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5tb250aHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcIm1vbnRoc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zZWNvbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21heDogNTl9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS50aW1lc3RhbXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiBwYXJzZUludChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAsIDEwKX0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnllYXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgeWVhciBhcyBtaW4gaWYgbm9uZSBzcGVjaWZpZWRcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttaW46IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0pO1xuXG4gICAgICAgIC8vIERlZmF1bHQgdG8gb25lIGNlbnR1cnkgYWZ0ZXIgY3VycmVudCB5ZWFyIGFzIG1heCBpZiBub25lIHNwZWNpZmllZFxuICAgICAgICBvcHRpb25zLm1heCA9ICh0eXBlb2Ygb3B0aW9ucy5tYXggIT09IFwidW5kZWZpbmVkXCIpID8gb3B0aW9ucy5tYXggOiBvcHRpb25zLm1pbiArIDEwMDtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKG9wdGlvbnMpLnRvU3RyaW5nKCk7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBUaW1lXG5cbiAgICAvLyAtLSBGaW5hbmNlIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNjID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciB0eXBlLCBudW1iZXIsIHRvX2dlbmVyYXRlO1xuXG4gICAgICAgIHR5cGUgPSAob3B0aW9ucy50eXBlKSA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2NfdHlwZSh7IG5hbWU6IG9wdGlvbnMudHlwZSwgcmF3OiB0cnVlIH0pIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jY190eXBlKHsgcmF3OiB0cnVlIH0pO1xuXG4gICAgICAgIG51bWJlciA9IHR5cGUucHJlZml4LnNwbGl0KFwiXCIpO1xuICAgICAgICB0b19nZW5lcmF0ZSA9IHR5cGUubGVuZ3RoIC0gdHlwZS5wcmVmaXgubGVuZ3RoIC0gMTtcblxuICAgICAgICAvLyBHZW5lcmF0ZXMgbiAtIDEgZGlnaXRzXG4gICAgICAgIG51bWJlciA9IG51bWJlci5jb25jYXQodGhpcy5uKHRoaXMuaW50ZWdlciwgdG9fZ2VuZXJhdGUsIHttaW46IDAsIG1heDogOX0pKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZXMgdGhlIGxhc3QgZGlnaXQgYWNjb3JkaW5nIHRvIEx1aG4gYWxnb3JpdGhtXG4gICAgICAgIG51bWJlci5wdXNoKHRoaXMubHVobl9jYWxjdWxhdGUobnVtYmVyLmpvaW4oXCJcIikpKTtcblxuICAgICAgICByZXR1cm4gbnVtYmVyLmpvaW4oXCJcIik7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY2NfdHlwZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFua19jYXJkX251bWJlciNJc3N1ZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyXy4yOElJTi4yOVxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoXCJjY190eXBlc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jY190eXBlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgdHlwZXMgPSB0aGlzLmNjX3R5cGVzKCksXG4gICAgICAgICAgICB0eXBlID0gbnVsbDtcblxuICAgICAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgLy8gQWNjZXB0IGVpdGhlciBuYW1lIG9yIHNob3J0X25hbWUgdG8gc3BlY2lmeSBjYXJkIHR5cGVcbiAgICAgICAgICAgICAgICBpZiAodHlwZXNbaV0ubmFtZSA9PT0gb3B0aW9ucy5uYW1lIHx8IHR5cGVzW2ldLnNob3J0X25hbWUgPT09IG9wdGlvbnMubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0eXBlID0gdHlwZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDcmVkaXQgY2FyZCB0eXBlICdcIiArIG9wdGlvbnMubmFtZSArIFwiJycgaXMgbm90IHN1cHBvcnRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHR5cGUgPSB0aGlzLnBpY2sodHlwZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucmF3ID8gdHlwZSA6IHR5cGUubmFtZTtcbiAgICB9O1xuXG4gICAgLy9yZXR1cm4gYWxsIHdvcmxkIGN1cnJlbmN5IGJ5IElTTyA0MjE3XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jdXJyZW5jeV90eXBlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwiY3VycmVuY3lfdHlwZXNcIik7XG4gICAgfTtcblxuICAgIC8vcmV0dXJuIHJhbmRvbSB3b3JsZCBjdXJyZW5jeSBieSBJU08gNDIxN1xuICAgIENoYW5jZS5wcm90b3R5cGUuY3VycmVuY3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy5jdXJyZW5jeV90eXBlcygpKTtcbiAgICB9O1xuXG4gICAgLy9SZXR1cm4gcmFuZG9tIGNvcnJlY3QgY3VycmVuY3kgZXhjaGFuZ2UgcGFpciAoZS5nLiBFVVIvVVNEKSBvciBhcnJheSBvZiBjdXJyZW5jeSBjb2RlXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jdXJyZW5jeV9wYWlyID0gZnVuY3Rpb24gKHJldHVybkFzU3RyaW5nKSB7XG4gICAgICAgIHZhciBjdXJyZW5jaWVzID0gdGhpcy51bmlxdWUodGhpcy5jdXJyZW5jeSwgMiwge1xuICAgICAgICAgICAgY29tcGFyYXRvcjogZnVuY3Rpb24oYXJyLCB2YWwpIHtcblxuICAgICAgICAgICAgICAgIHJldHVybiBhcnIucmVkdWNlKGZ1bmN0aW9uKGFjYywgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiBhIG1hdGNoIGhhcyBiZWVuIGZvdW5kLCBzaG9ydCBjaXJjdWl0IGNoZWNrIGFuZCBqdXN0IHJldHVyblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjIHx8IChpdGVtLmNvZGUgPT09IHZhbC5jb2RlKTtcbiAgICAgICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXR1cm5Bc1N0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbmNpZXNbMF0uY29kZSArICcvJyArIGN1cnJlbmNpZXNbMV0uY29kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW5jaWVzO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZG9sbGFyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgLy8gQnkgZGVmYXVsdCwgYSBzb21ld2hhdCBtb3JlIHNhbmUgbWF4IGZvciBkb2xsYXIgdGhhbiBhbGwgYXZhaWxhYmxlIG51bWJlcnNcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttYXggOiAxMDAwMCwgbWluIDogMH0pO1xuXG4gICAgICAgIHZhciBkb2xsYXIgPSB0aGlzLmZsb2F0aW5nKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4LCBmaXhlZDogMn0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBjZW50cyA9IGRvbGxhci5zcGxpdCgnLicpWzFdO1xuXG4gICAgICAgIGlmIChjZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2xsYXIgKz0gJy4wMCc7XG4gICAgICAgIH0gZWxzZSBpZiAoY2VudHMubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgZG9sbGFyID0gZG9sbGFyICsgJzAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRvbGxhciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnLSQnICsgZG9sbGFyLnJlcGxhY2UoJy0nLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyQnICsgZG9sbGFyO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZXhwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgZXhwID0ge307XG5cbiAgICAgICAgZXhwLnllYXIgPSB0aGlzLmV4cF95ZWFyKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIHllYXIgaXMgdGhpcyB5ZWFyLCBuZWVkIHRvIGVuc3VyZSBtb250aCBpcyBncmVhdGVyIHRoYW4gdGhlXG4gICAgICAgIC8vIGN1cnJlbnQgbW9udGggb3IgdGhpcyBleHBpcmF0aW9uIHdpbGwgbm90IGJlIHZhbGlkXG4gICAgICAgIGlmIChleHAueWVhciA9PT0gKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgIGV4cC5tb250aCA9IHRoaXMuZXhwX21vbnRoKHtmdXR1cmU6IHRydWV9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cC5tb250aCA9IHRoaXMuZXhwX21vbnRoKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5yYXcgPyBleHAgOiBleHAubW9udGggKyAnLycgKyBleHAueWVhcjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5leHBfbW9udGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBtb250aCwgbW9udGhfaW50LFxuICAgICAgICAgICAgY3VyTW9udGggPSBuZXcgRGF0ZSgpLmdldE1vbnRoKCk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZnV0dXJlKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgbW9udGggPSB0aGlzLm1vbnRoKHtyYXc6IHRydWV9KS5udW1lcmljO1xuICAgICAgICAgICAgICAgIG1vbnRoX2ludCA9IHBhcnNlSW50KG1vbnRoLCAxMCk7XG4gICAgICAgICAgICB9IHdoaWxlIChtb250aF9pbnQgPCBjdXJNb250aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtb250aCA9IHRoaXMubW9udGgoe3JhdzogdHJ1ZX0pLm51bWVyaWM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9udGg7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZXhwX3llYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIoe21heDogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICsgMTB9KTtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIEZpbmFuY2VcblxuICAgIC8vIC0tIE1pc2NlbGxhbmVvdXMgLS1cblxuICAgIC8vIERpY2UgLSBGb3IgYWxsIHRoZSBib2FyZCBnYW1lIGdlZWtzIG91dCB0aGVyZSwgbXlzZWxmIGluY2x1ZGVkIDspXG4gICAgZnVuY3Rpb24gZGljZUZuIChyYW5nZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbChyYW5nZSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIENoYW5jZS5wcm90b3R5cGUuZDQgPSBkaWNlRm4oe21pbjogMSwgbWF4OiA0fSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kNiA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDZ9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQ4ID0gZGljZUZuKHttaW46IDEsIG1heDogOH0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDEwID0gZGljZUZuKHttaW46IDEsIG1heDogMTB9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQxMiA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDEyfSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kMjAgPSBkaWNlRm4oe21pbjogMSwgbWF4OiAyMH0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDMwID0gZGljZUZuKHttaW46IDEsIG1heDogMzB9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQxMDAgPSBkaWNlRm4oe21pbjogMSwgbWF4OiAxMDB9KTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucnBnID0gZnVuY3Rpb24gKHRocm93biwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIGlmICghdGhyb3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkEgdHlwZSBvZiBkaWUgcm9sbCBtdXN0IGJlIGluY2x1ZGVkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGJpdHMgPSB0aHJvd24udG9Mb3dlckNhc2UoKS5zcGxpdChcImRcIiksXG4gICAgICAgICAgICAgICAgcm9sbHMgPSBbXTtcblxuICAgICAgICAgICAgaWYgKGJpdHMubGVuZ3RoICE9PSAyIHx8ICFwYXJzZUludChiaXRzWzBdLCAxMCkgfHwgIXBhcnNlSW50KGJpdHNbMV0sIDEwKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZm9ybWF0IHByb3ZpZGVkLiBQbGVhc2UgcHJvdmlkZSAjZCMgd2hlcmUgdGhlIGZpcnN0ICMgaXMgdGhlIG51bWJlciBvZiBkaWNlIHRvIHJvbGwsIHRoZSBzZWNvbmQgIyBpcyB0aGUgbWF4IG9mIGVhY2ggZGllXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGJpdHNbMF07IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICByb2xsc1tpIC0gMV0gPSB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiBiaXRzWzFdfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHR5cGVvZiBvcHRpb25zLnN1bSAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucy5zdW0pID8gcm9sbHMucmVkdWNlKGZ1bmN0aW9uIChwLCBjKSB7IHJldHVybiBwICsgYzsgfSkgOiByb2xscztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBHdWlkXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5ndWlkID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgdmVyc2lvbjogNSB9KTtcblxuICAgICAgICB2YXIgZ3VpZF9wb29sID0gXCJhYmNkZWYxMjM0NTY3ODkwXCIsXG4gICAgICAgICAgICB2YXJpYW50X3Bvb2wgPSBcImFiODlcIixcbiAgICAgICAgICAgIGd1aWQgPSB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiA4IH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiA0IH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICAvLyBUaGUgVmVyc2lvblxuICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudmVyc2lvbiArXG4gICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoeyBwb29sOiBndWlkX3Bvb2wsIGxlbmd0aDogMyB9KSArICctJyArXG4gICAgICAgICAgICAgICAgICAgLy8gVGhlIFZhcmlhbnRcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IHZhcmlhbnRfcG9vbCwgbGVuZ3RoOiAxIH0pICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiAzIH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiAxMiB9KTtcbiAgICAgICAgcmV0dXJuIGd1aWQ7XG4gICAgfTtcblxuICAgIC8vIEhhc2hcbiAgICBDaGFuY2UucHJvdG90eXBlLmhhc2ggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2xlbmd0aCA6IDQwLCBjYXNpbmc6ICdsb3dlcid9KTtcbiAgICAgICAgdmFyIHBvb2wgPSBvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJyA/IEhFWF9QT09MLnRvVXBwZXJDYXNlKCkgOiBIRVhfUE9PTDtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nKHtwb29sOiBwb29sLCBsZW5ndGg6IG9wdGlvbnMubGVuZ3RofSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubHVobl9jaGVjayA9IGZ1bmN0aW9uIChudW0pIHtcbiAgICAgICAgdmFyIHN0ciA9IG51bS50b1N0cmluZygpO1xuICAgICAgICB2YXIgY2hlY2tEaWdpdCA9ICtzdHIuc3Vic3RyaW5nKHN0ci5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrRGlnaXQgPT09IHRoaXMubHVobl9jYWxjdWxhdGUoK3N0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aCAtIDEpKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5sdWhuX2NhbGN1bGF0ZSA9IGZ1bmN0aW9uIChudW0pIHtcbiAgICAgICAgdmFyIGRpZ2l0cyA9IG51bS50b1N0cmluZygpLnNwbGl0KFwiXCIpLnJldmVyc2UoKTtcbiAgICAgICAgdmFyIHN1bSA9IDA7XG4gICAgICAgIHZhciBkaWdpdDtcblxuICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGRpZ2l0cy5sZW5ndGg7IGwgPiBpOyArK2kpIHtcbiAgICAgICAgICAgIGRpZ2l0ID0gK2RpZ2l0c1tpXTtcbiAgICAgICAgICAgIGlmIChpICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGRpZ2l0ICo9IDI7XG4gICAgICAgICAgICAgICAgaWYgKGRpZ2l0ID4gOSkge1xuICAgICAgICAgICAgICAgICAgICBkaWdpdCAtPSA5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1bSArPSBkaWdpdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHN1bSAqIDkpICUgMTA7XG4gICAgfTtcblxuICAgIC8vIE1ENSBIYXNoXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5tZDUgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBvcHRzID0geyBzdHI6ICcnLCBrZXk6IG51bGwsIHJhdzogZmFsc2UgfTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIG9wdHMuc3RyID0gdGhpcy5zdHJpbmcoKTtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIG9wdHMuc3RyID0gb3B0aW9ucztcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYob3B0aW9ucy5jb25zdHJ1Y3RvciA9PT0gJ0FycmF5Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRzID0gaW5pdE9wdGlvbnMob3B0aW9ucywgb3B0cyk7XG5cbiAgICAgICAgaWYoIW9wdHMuc3RyKXtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gcmV0dXJuIGFuIG1kNSBoYXNoLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYmltZDUubWQ1KG9wdHMuc3RyLCBvcHRzLmtleSwgb3B0cy5yYXcpO1xuICAgIH07XG5cbiAgICB2YXIgZGF0YSA9IHtcblxuICAgICAgICBmaXJzdE5hbWVzOiB7XG4gICAgICAgICAgICBcIm1hbGVcIjogW1wiSmFtZXNcIiwgXCJKb2huXCIsIFwiUm9iZXJ0XCIsIFwiTWljaGFlbFwiLCBcIldpbGxpYW1cIiwgXCJEYXZpZFwiLCBcIlJpY2hhcmRcIiwgXCJKb3NlcGhcIiwgXCJDaGFybGVzXCIsIFwiVGhvbWFzXCIsIFwiQ2hyaXN0b3BoZXJcIiwgXCJEYW5pZWxcIiwgXCJNYXR0aGV3XCIsIFwiR2VvcmdlXCIsIFwiRG9uYWxkXCIsIFwiQW50aG9ueVwiLCBcIlBhdWxcIiwgXCJNYXJrXCIsIFwiRWR3YXJkXCIsIFwiU3RldmVuXCIsIFwiS2VubmV0aFwiLCBcIkFuZHJld1wiLCBcIkJyaWFuXCIsIFwiSm9zaHVhXCIsIFwiS2V2aW5cIiwgXCJSb25hbGRcIiwgXCJUaW1vdGh5XCIsIFwiSmFzb25cIiwgXCJKZWZmcmV5XCIsIFwiRnJhbmtcIiwgXCJHYXJ5XCIsIFwiUnlhblwiLCBcIk5pY2hvbGFzXCIsIFwiRXJpY1wiLCBcIlN0ZXBoZW5cIiwgXCJKYWNvYlwiLCBcIkxhcnJ5XCIsIFwiSm9uYXRoYW5cIiwgXCJTY290dFwiLCBcIlJheW1vbmRcIiwgXCJKdXN0aW5cIiwgXCJCcmFuZG9uXCIsIFwiR3JlZ29yeVwiLCBcIlNhbXVlbFwiLCBcIkJlbmphbWluXCIsIFwiUGF0cmlja1wiLCBcIkphY2tcIiwgXCJIZW5yeVwiLCBcIldhbHRlclwiLCBcIkRlbm5pc1wiLCBcIkplcnJ5XCIsIFwiQWxleGFuZGVyXCIsIFwiUGV0ZXJcIiwgXCJUeWxlclwiLCBcIkRvdWdsYXNcIiwgXCJIYXJvbGRcIiwgXCJBYXJvblwiLCBcIkpvc2VcIiwgXCJBZGFtXCIsIFwiQXJ0aHVyXCIsIFwiWmFjaGFyeVwiLCBcIkNhcmxcIiwgXCJOYXRoYW5cIiwgXCJBbGJlcnRcIiwgXCJLeWxlXCIsIFwiTGF3cmVuY2VcIiwgXCJKb2VcIiwgXCJXaWxsaWVcIiwgXCJHZXJhbGRcIiwgXCJSb2dlclwiLCBcIktlaXRoXCIsIFwiSmVyZW15XCIsIFwiVGVycnlcIiwgXCJIYXJyeVwiLCBcIlJhbHBoXCIsIFwiU2VhblwiLCBcIkplc3NlXCIsIFwiUm95XCIsIFwiTG91aXNcIiwgXCJCaWxseVwiLCBcIkF1c3RpblwiLCBcIkJydWNlXCIsIFwiRXVnZW5lXCIsIFwiQ2hyaXN0aWFuXCIsIFwiQnJ5YW5cIiwgXCJXYXluZVwiLCBcIlJ1c3NlbGxcIiwgXCJIb3dhcmRcIiwgXCJGcmVkXCIsIFwiRXRoYW5cIiwgXCJKb3JkYW5cIiwgXCJQaGlsaXBcIiwgXCJBbGFuXCIsIFwiSnVhblwiLCBcIlJhbmR5XCIsIFwiVmluY2VudFwiLCBcIkJvYmJ5XCIsIFwiRHlsYW5cIiwgXCJKb2hubnlcIiwgXCJQaGlsbGlwXCIsIFwiVmljdG9yXCIsIFwiQ2xhcmVuY2VcIiwgXCJFcm5lc3RcIiwgXCJNYXJ0aW5cIiwgXCJDcmFpZ1wiLCBcIlN0YW5sZXlcIiwgXCJTaGF3blwiLCBcIlRyYXZpc1wiLCBcIkJyYWRsZXlcIiwgXCJMZW9uYXJkXCIsIFwiRWFybFwiLCBcIkdhYnJpZWxcIiwgXCJKaW1teVwiLCBcIkZyYW5jaXNcIiwgXCJUb2RkXCIsIFwiTm9haFwiLCBcIkRhbm55XCIsIFwiRGFsZVwiLCBcIkNvZHlcIiwgXCJDYXJsb3NcIiwgXCJBbGxlblwiLCBcIkZyZWRlcmlja1wiLCBcIkxvZ2FuXCIsIFwiQ3VydGlzXCIsIFwiQWxleFwiLCBcIkpvZWxcIiwgXCJMdWlzXCIsIFwiTm9ybWFuXCIsIFwiTWFydmluXCIsIFwiR2xlbm5cIiwgXCJUb255XCIsIFwiTmF0aGFuaWVsXCIsIFwiUm9kbmV5XCIsIFwiTWVsdmluXCIsIFwiQWxmcmVkXCIsIFwiU3RldmVcIiwgXCJDYW1lcm9uXCIsIFwiQ2hhZFwiLCBcIkVkd2luXCIsIFwiQ2FsZWJcIiwgXCJFdmFuXCIsIFwiQW50b25pb1wiLCBcIkxlZVwiLCBcIkhlcmJlcnRcIiwgXCJKZWZmZXJ5XCIsIFwiSXNhYWNcIiwgXCJEZXJla1wiLCBcIlJpY2t5XCIsIFwiTWFyY3VzXCIsIFwiVGhlb2RvcmVcIiwgXCJFbGlqYWhcIiwgXCJMdWtlXCIsIFwiSmVzdXNcIiwgXCJFZGRpZVwiLCBcIlRyb3lcIiwgXCJNaWtlXCIsIFwiRHVzdGluXCIsIFwiUmF5XCIsIFwiQWRyaWFuXCIsIFwiQmVybmFyZFwiLCBcIkxlcm95XCIsIFwiQW5nZWxcIiwgXCJSYW5kYWxsXCIsIFwiV2VzbGV5XCIsIFwiSWFuXCIsIFwiSmFyZWRcIiwgXCJNYXNvblwiLCBcIkh1bnRlclwiLCBcIkNhbHZpblwiLCBcIk9zY2FyXCIsIFwiQ2xpZmZvcmRcIiwgXCJKYXlcIiwgXCJTaGFuZVwiLCBcIlJvbm5pZVwiLCBcIkJhcnJ5XCIsIFwiTHVjYXNcIiwgXCJDb3JleVwiLCBcIk1hbnVlbFwiLCBcIkxlb1wiLCBcIlRvbW15XCIsIFwiV2FycmVuXCIsIFwiSmFja3NvblwiLCBcIklzYWlhaFwiLCBcIkNvbm5vclwiLCBcIkRvblwiLCBcIkRlYW5cIiwgXCJKb25cIiwgXCJKdWxpYW5cIiwgXCJNaWd1ZWxcIiwgXCJCaWxsXCIsIFwiTGxveWRcIiwgXCJDaGFybGllXCIsIFwiTWl0Y2hlbGxcIiwgXCJMZW9uXCIsIFwiSmVyb21lXCIsIFwiRGFycmVsbFwiLCBcIkplcmVtaWFoXCIsIFwiQWx2aW5cIiwgXCJCcmV0dFwiLCBcIlNldGhcIiwgXCJGbG95ZFwiLCBcIkppbVwiLCBcIkJsYWtlXCIsIFwiTWljaGVhbFwiLCBcIkdvcmRvblwiLCBcIlRyZXZvclwiLCBcIkxld2lzXCIsIFwiRXJpa1wiLCBcIkVkZ2FyXCIsIFwiVmVybm9uXCIsIFwiRGV2aW5cIiwgXCJHYXZpblwiLCBcIkpheWRlblwiLCBcIkNocmlzXCIsIFwiQ2x5ZGVcIiwgXCJUb21cIiwgXCJEZXJyaWNrXCIsIFwiTWFyaW9cIiwgXCJCcmVudFwiLCBcIk1hcmNcIiwgXCJIZXJtYW5cIiwgXCJDaGFzZVwiLCBcIkRvbWluaWNcIiwgXCJSaWNhcmRvXCIsIFwiRnJhbmtsaW5cIiwgXCJNYXVyaWNlXCIsIFwiTWF4XCIsIFwiQWlkZW5cIiwgXCJPd2VuXCIsIFwiTGVzdGVyXCIsIFwiR2lsYmVydFwiLCBcIkVsbWVyXCIsIFwiR2VuZVwiLCBcIkZyYW5jaXNjb1wiLCBcIkdsZW5cIiwgXCJDb3J5XCIsIFwiR2FycmV0dFwiLCBcIkNsYXl0b25cIiwgXCJTYW1cIiwgXCJKb3JnZVwiLCBcIkNoZXN0ZXJcIiwgXCJBbGVqYW5kcm9cIiwgXCJKZWZmXCIsIFwiSGFydmV5XCIsIFwiTWlsdG9uXCIsIFwiQ29sZVwiLCBcIkl2YW5cIiwgXCJBbmRyZVwiLCBcIkR1YW5lXCIsIFwiTGFuZG9uXCJdLFxuICAgICAgICAgICAgXCJmZW1hbGVcIjogW1wiTWFyeVwiLCBcIkVtbWFcIiwgXCJFbGl6YWJldGhcIiwgXCJNaW5uaWVcIiwgXCJNYXJnYXJldFwiLCBcIklkYVwiLCBcIkFsaWNlXCIsIFwiQmVydGhhXCIsIFwiU2FyYWhcIiwgXCJBbm5pZVwiLCBcIkNsYXJhXCIsIFwiRWxsYVwiLCBcIkZsb3JlbmNlXCIsIFwiQ29yYVwiLCBcIk1hcnRoYVwiLCBcIkxhdXJhXCIsIFwiTmVsbGllXCIsIFwiR3JhY2VcIiwgXCJDYXJyaWVcIiwgXCJNYXVkZVwiLCBcIk1hYmVsXCIsIFwiQmVzc2llXCIsIFwiSmVubmllXCIsIFwiR2VydHJ1ZGVcIiwgXCJKdWxpYVwiLCBcIkhhdHRpZVwiLCBcIkVkaXRoXCIsIFwiTWF0dGllXCIsIFwiUm9zZVwiLCBcIkNhdGhlcmluZVwiLCBcIkxpbGxpYW5cIiwgXCJBZGFcIiwgXCJMaWxsaWVcIiwgXCJIZWxlblwiLCBcIkplc3NpZVwiLCBcIkxvdWlzZVwiLCBcIkV0aGVsXCIsIFwiTHVsYVwiLCBcIk15cnRsZVwiLCBcIkV2YVwiLCBcIkZyYW5jZXNcIiwgXCJMZW5hXCIsIFwiTHVjeVwiLCBcIkVkbmFcIiwgXCJNYWdnaWVcIiwgXCJQZWFybFwiLCBcIkRhaXN5XCIsIFwiRmFubmllXCIsIFwiSm9zZXBoaW5lXCIsIFwiRG9yYVwiLCBcIlJvc2FcIiwgXCJLYXRoZXJpbmVcIiwgXCJBZ25lc1wiLCBcIk1hcmllXCIsIFwiTm9yYVwiLCBcIk1heVwiLCBcIk1hbWllXCIsIFwiQmxhbmNoZVwiLCBcIlN0ZWxsYVwiLCBcIkVsbGVuXCIsIFwiTmFuY3lcIiwgXCJFZmZpZVwiLCBcIlNhbGxpZVwiLCBcIk5ldHRpZVwiLCBcIkRlbGxhXCIsIFwiTGl6emllXCIsIFwiRmxvcmFcIiwgXCJTdXNpZVwiLCBcIk1hdWRcIiwgXCJNYWVcIiwgXCJFdHRhXCIsIFwiSGFycmlldFwiLCBcIlNhZGllXCIsIFwiQ2Fyb2xpbmVcIiwgXCJLYXRpZVwiLCBcIkx5ZGlhXCIsIFwiRWxzaWVcIiwgXCJLYXRlXCIsIFwiU3VzYW5cIiwgXCJNb2xsaWVcIiwgXCJBbG1hXCIsIFwiQWRkaWVcIiwgXCJHZW9yZ2lhXCIsIFwiRWxpemFcIiwgXCJMdWx1XCIsIFwiTmFubmllXCIsIFwiTG90dGllXCIsIFwiQW1hbmRhXCIsIFwiQmVsbGVcIiwgXCJDaGFybG90dGVcIiwgXCJSZWJlY2NhXCIsIFwiUnV0aFwiLCBcIlZpb2xhXCIsIFwiT2xpdmVcIiwgXCJBbWVsaWFcIiwgXCJIYW5uYWhcIiwgXCJKYW5lXCIsIFwiVmlyZ2luaWFcIiwgXCJFbWlseVwiLCBcIk1hdGlsZGFcIiwgXCJJcmVuZVwiLCBcIkthdGhyeW5cIiwgXCJFc3RoZXJcIiwgXCJXaWxsaWVcIiwgXCJIZW5yaWV0dGFcIiwgXCJPbGxpZVwiLCBcIkFteVwiLCBcIlJhY2hlbFwiLCBcIlNhcmFcIiwgXCJFc3RlbGxhXCIsIFwiVGhlcmVzYVwiLCBcIkF1Z3VzdGFcIiwgXCJPcmFcIiwgXCJQYXVsaW5lXCIsIFwiSm9zaWVcIiwgXCJMb2xhXCIsIFwiU29waGlhXCIsIFwiTGVvbmFcIiwgXCJBbm5lXCIsIFwiTWlsZHJlZFwiLCBcIkFublwiLCBcIkJldWxhaFwiLCBcIkNhbGxpZVwiLCBcIkxvdVwiLCBcIkRlbGlhXCIsIFwiRWxlYW5vclwiLCBcIkJhcmJhcmFcIiwgXCJJdmFcIiwgXCJMb3Vpc2FcIiwgXCJNYXJpYVwiLCBcIk1heW1lXCIsIFwiRXZlbHluXCIsIFwiRXN0ZWxsZVwiLCBcIk5pbmFcIiwgXCJCZXR0eVwiLCBcIk1hcmlvblwiLCBcIkJldHRpZVwiLCBcIkRvcm90aHlcIiwgXCJMdWVsbGFcIiwgXCJJbmV6XCIsIFwiTGVsYVwiLCBcIlJvc2llXCIsIFwiQWxsaWVcIiwgXCJNaWxsaWVcIiwgXCJKYW5pZVwiLCBcIkNvcm5lbGlhXCIsIFwiVmljdG9yaWFcIiwgXCJSdWJ5XCIsIFwiV2luaWZyZWRcIiwgXCJBbHRhXCIsIFwiQ2VsaWFcIiwgXCJDaHJpc3RpbmVcIiwgXCJCZWF0cmljZVwiLCBcIkJpcmRpZVwiLCBcIkhhcnJpZXR0XCIsIFwiTWFibGVcIiwgXCJNeXJhXCIsIFwiU29waGllXCIsIFwiVGlsbGllXCIsIFwiSXNhYmVsXCIsIFwiU3lsdmlhXCIsIFwiQ2Fyb2x5blwiLCBcIklzYWJlbGxlXCIsIFwiTGVpbGFcIiwgXCJTYWxseVwiLCBcIkluYVwiLCBcIkVzc2llXCIsIFwiQmVydGllXCIsIFwiTmVsbFwiLCBcIkFsYmVydGFcIiwgXCJLYXRoYXJpbmVcIiwgXCJMb3JhXCIsIFwiUmVuYVwiLCBcIk1pbmFcIiwgXCJSaG9kYVwiLCBcIk1hdGhpbGRhXCIsIFwiQWJiaWVcIiwgXCJFdWxhXCIsIFwiRG9sbGllXCIsIFwiSGV0dGllXCIsIFwiRXVuaWNlXCIsIFwiRmFubnlcIiwgXCJPbGFcIiwgXCJMZW5vcmFcIiwgXCJBZGVsYWlkZVwiLCBcIkNocmlzdGluYVwiLCBcIkxlbGlhXCIsIFwiTmVsbGVcIiwgXCJTdWVcIiwgXCJKb2hhbm5hXCIsIFwiTGlsbHlcIiwgXCJMdWNpbmRhXCIsIFwiTWluZXJ2YVwiLCBcIkxldHRpZVwiLCBcIlJveGllXCIsIFwiQ3ludGhpYVwiLCBcIkhlbGVuYVwiLCBcIkhpbGRhXCIsIFwiSHVsZGFcIiwgXCJCZXJuaWNlXCIsIFwiR2VuZXZpZXZlXCIsIFwiSmVhblwiLCBcIkNvcmRlbGlhXCIsIFwiTWFyaWFuXCIsIFwiRnJhbmNpc1wiLCBcIkplYW5ldHRlXCIsIFwiQWRlbGluZVwiLCBcIkd1c3NpZVwiLCBcIkxlYWhcIiwgXCJMb2lzXCIsIFwiTHVyYVwiLCBcIk1pdHRpZVwiLCBcIkhhbGxpZVwiLCBcIklzYWJlbGxhXCIsIFwiT2xnYVwiLCBcIlBob2ViZVwiLCBcIlRlcmVzYVwiLCBcIkhlc3RlclwiLCBcIkxpZGFcIiwgXCJMaW5hXCIsIFwiV2lubmllXCIsIFwiQ2xhdWRpYVwiLCBcIk1hcmd1ZXJpdGVcIiwgXCJWZXJhXCIsIFwiQ2VjZWxpYVwiLCBcIkJlc3NcIiwgXCJFbWlsaWVcIiwgXCJKb2huXCIsIFwiUm9zZXR0YVwiLCBcIlZlcm5hXCIsIFwiTXlydGllXCIsIFwiQ2VjaWxpYVwiLCBcIkVsdmFcIiwgXCJPbGl2aWFcIiwgXCJPcGhlbGlhXCIsIFwiR2VvcmdpZVwiLCBcIkVsbm9yYVwiLCBcIlZpb2xldFwiLCBcIkFkZWxlXCIsIFwiTGlseVwiLCBcIkxpbm5pZVwiLCBcIkxvcmV0dGFcIiwgXCJNYWRnZVwiLCBcIlBvbGx5XCIsIFwiVmlyZ2llXCIsIFwiRXVnZW5pYVwiLCBcIkx1Y2lsZVwiLCBcIkx1Y2lsbGVcIiwgXCJNYWJlbGxlXCIsIFwiUm9zYWxpZVwiXVxuICAgICAgICB9LFxuXG4gICAgICAgIGxhc3ROYW1lczogWydTbWl0aCcsICdKb2huc29uJywgJ1dpbGxpYW1zJywgJ0pvbmVzJywgJ0Jyb3duJywgJ0RhdmlzJywgJ01pbGxlcicsICdXaWxzb24nLCAnTW9vcmUnLCAnVGF5bG9yJywgJ0FuZGVyc29uJywgJ1Rob21hcycsICdKYWNrc29uJywgJ1doaXRlJywgJ0hhcnJpcycsICdNYXJ0aW4nLCAnVGhvbXBzb24nLCAnR2FyY2lhJywgJ01hcnRpbmV6JywgJ1JvYmluc29uJywgJ0NsYXJrJywgJ1JvZHJpZ3VleicsICdMZXdpcycsICdMZWUnLCAnV2Fsa2VyJywgJ0hhbGwnLCAnQWxsZW4nLCAnWW91bmcnLCAnSGVybmFuZGV6JywgJ0tpbmcnLCAnV3JpZ2h0JywgJ0xvcGV6JywgJ0hpbGwnLCAnU2NvdHQnLCAnR3JlZW4nLCAnQWRhbXMnLCAnQmFrZXInLCAnR29uemFsZXonLCAnTmVsc29uJywgJ0NhcnRlcicsICdNaXRjaGVsbCcsICdQZXJleicsICdSb2JlcnRzJywgJ1R1cm5lcicsICdQaGlsbGlwcycsICdDYW1wYmVsbCcsICdQYXJrZXInLCAnRXZhbnMnLCAnRWR3YXJkcycsICdDb2xsaW5zJywgJ1N0ZXdhcnQnLCAnU2FuY2hleicsICdNb3JyaXMnLCAnUm9nZXJzJywgJ1JlZWQnLCAnQ29vaycsICdNb3JnYW4nLCAnQmVsbCcsICdNdXJwaHknLCAnQmFpbGV5JywgJ1JpdmVyYScsICdDb29wZXInLCAnUmljaGFyZHNvbicsICdDb3gnLCAnSG93YXJkJywgJ1dhcmQnLCAnVG9ycmVzJywgJ1BldGVyc29uJywgJ0dyYXknLCAnUmFtaXJleicsICdKYW1lcycsICdXYXRzb24nLCAnQnJvb2tzJywgJ0tlbGx5JywgJ1NhbmRlcnMnLCAnUHJpY2UnLCAnQmVubmV0dCcsICdXb29kJywgJ0Jhcm5lcycsICdSb3NzJywgJ0hlbmRlcnNvbicsICdDb2xlbWFuJywgJ0plbmtpbnMnLCAnUGVycnknLCAnUG93ZWxsJywgJ0xvbmcnLCAnUGF0dGVyc29uJywgJ0h1Z2hlcycsICdGbG9yZXMnLCAnV2FzaGluZ3RvbicsICdCdXRsZXInLCAnU2ltbW9ucycsICdGb3N0ZXInLCAnR29uemFsZXMnLCAnQnJ5YW50JywgJ0FsZXhhbmRlcicsICdSdXNzZWxsJywgJ0dyaWZmaW4nLCAnRGlheicsICdIYXllcycsICdNeWVycycsICdGb3JkJywgJ0hhbWlsdG9uJywgJ0dyYWhhbScsICdTdWxsaXZhbicsICdXYWxsYWNlJywgJ1dvb2RzJywgJ0NvbGUnLCAnV2VzdCcsICdKb3JkYW4nLCAnT3dlbnMnLCAnUmV5bm9sZHMnLCAnRmlzaGVyJywgJ0VsbGlzJywgJ0hhcnJpc29uJywgJ0dpYnNvbicsICdNY0RvbmFsZCcsICdDcnV6JywgJ01hcnNoYWxsJywgJ09ydGl6JywgJ0dvbWV6JywgJ011cnJheScsICdGcmVlbWFuJywgJ1dlbGxzJywgJ1dlYmInLCAnU2ltcHNvbicsICdTdGV2ZW5zJywgJ1R1Y2tlcicsICdQb3J0ZXInLCAnSHVudGVyJywgJ0hpY2tzJywgJ0NyYXdmb3JkJywgJ0hlbnJ5JywgJ0JveWQnLCAnTWFzb24nLCAnTW9yYWxlcycsICdLZW5uZWR5JywgJ1dhcnJlbicsICdEaXhvbicsICdSYW1vcycsICdSZXllcycsICdCdXJucycsICdHb3Jkb24nLCAnU2hhdycsICdIb2xtZXMnLCAnUmljZScsICdSb2JlcnRzb24nLCAnSHVudCcsICdCbGFjaycsICdEYW5pZWxzJywgJ1BhbG1lcicsICdNaWxscycsICdOaWNob2xzJywgJ0dyYW50JywgJ0tuaWdodCcsICdGZXJndXNvbicsICdSb3NlJywgJ1N0b25lJywgJ0hhd2tpbnMnLCAnRHVubicsICdQZXJraW5zJywgJ0h1ZHNvbicsICdTcGVuY2VyJywgJ0dhcmRuZXInLCAnU3RlcGhlbnMnLCAnUGF5bmUnLCAnUGllcmNlJywgJ0JlcnJ5JywgJ01hdHRoZXdzJywgJ0Fybm9sZCcsICdXYWduZXInLCAnV2lsbGlzJywgJ1JheScsICdXYXRraW5zJywgJ09sc29uJywgJ0NhcnJvbGwnLCAnRHVuY2FuJywgJ1NueWRlcicsICdIYXJ0JywgJ0N1bm5pbmdoYW0nLCAnQnJhZGxleScsICdMYW5lJywgJ0FuZHJld3MnLCAnUnVpeicsICdIYXJwZXInLCAnRm94JywgJ1JpbGV5JywgJ0FybXN0cm9uZycsICdDYXJwZW50ZXInLCAnV2VhdmVyJywgJ0dyZWVuZScsICdMYXdyZW5jZScsICdFbGxpb3R0JywgJ0NoYXZleicsICdTaW1zJywgJ0F1c3RpbicsICdQZXRlcnMnLCAnS2VsbGV5JywgJ0ZyYW5rbGluJywgJ0xhd3NvbicsICdGaWVsZHMnLCAnR3V0aWVycmV6JywgJ1J5YW4nLCAnU2NobWlkdCcsICdDYXJyJywgJ1Zhc3F1ZXonLCAnQ2FzdGlsbG8nLCAnV2hlZWxlcicsICdDaGFwbWFuJywgJ09saXZlcicsICdNb250Z29tZXJ5JywgJ1JpY2hhcmRzJywgJ1dpbGxpYW1zb24nLCAnSm9obnN0b24nLCAnQmFua3MnLCAnTWV5ZXInLCAnQmlzaG9wJywgJ01jQ295JywgJ0hvd2VsbCcsICdBbHZhcmV6JywgJ01vcnJpc29uJywgJ0hhbnNlbicsICdGZXJuYW5kZXonLCAnR2FyemEnLCAnSGFydmV5JywgJ0xpdHRsZScsICdCdXJ0b24nLCAnU3RhbmxleScsICdOZ3V5ZW4nLCAnR2VvcmdlJywgJ0phY29icycsICdSZWlkJywgJ0tpbScsICdGdWxsZXInLCAnTHluY2gnLCAnRGVhbicsICdHaWxiZXJ0JywgJ0dhcnJldHQnLCAnUm9tZXJvJywgJ1dlbGNoJywgJ0xhcnNvbicsICdGcmF6aWVyJywgJ0J1cmtlJywgJ0hhbnNvbicsICdEYXknLCAnTWVuZG96YScsICdNb3Jlbm8nLCAnQm93bWFuJywgJ01lZGluYScsICdGb3dsZXInLCAnQnJld2VyJywgJ0hvZmZtYW4nLCAnQ2FybHNvbicsICdTaWx2YScsICdQZWFyc29uJywgJ0hvbGxhbmQnLCAnRG91Z2xhcycsICdGbGVtaW5nJywgJ0plbnNlbicsICdWYXJnYXMnLCAnQnlyZCcsICdEYXZpZHNvbicsICdIb3BraW5zJywgJ01heScsICdUZXJyeScsICdIZXJyZXJhJywgJ1dhZGUnLCAnU290bycsICdXYWx0ZXJzJywgJ0N1cnRpcycsICdOZWFsJywgJ0NhbGR3ZWxsJywgJ0xvd2UnLCAnSmVubmluZ3MnLCAnQmFybmV0dCcsICdHcmF2ZXMnLCAnSmltZW5leicsICdIb3J0b24nLCAnU2hlbHRvbicsICdCYXJyZXR0JywgJ09icmllbicsICdDYXN0cm8nLCAnU3V0dG9uJywgJ0dyZWdvcnknLCAnTWNLaW5uZXknLCAnTHVjYXMnLCAnTWlsZXMnLCAnQ3JhaWcnLCAnUm9kcmlxdWV6JywgJ0NoYW1iZXJzJywgJ0hvbHQnLCAnTGFtYmVydCcsICdGbGV0Y2hlcicsICdXYXR0cycsICdCYXRlcycsICdIYWxlJywgJ1Job2RlcycsICdQZW5hJywgJ0JlY2snLCAnTmV3bWFuJywgJ0hheW5lcycsICdNY0RhbmllbCcsICdNZW5kZXonLCAnQnVzaCcsICdWYXVnaG4nLCAnUGFya3MnLCAnRGF3c29uJywgJ1NhbnRpYWdvJywgJ05vcnJpcycsICdIYXJkeScsICdMb3ZlJywgJ1N0ZWVsZScsICdDdXJyeScsICdQb3dlcnMnLCAnU2NodWx0eicsICdCYXJrZXInLCAnR3V6bWFuJywgJ1BhZ2UnLCAnTXVub3onLCAnQmFsbCcsICdLZWxsZXInLCAnQ2hhbmRsZXInLCAnV2ViZXInLCAnTGVvbmFyZCcsICdXYWxzaCcsICdMeW9ucycsICdSYW1zZXknLCAnV29sZmUnLCAnU2NobmVpZGVyJywgJ011bGxpbnMnLCAnQmVuc29uJywgJ1NoYXJwJywgJ0Jvd2VuJywgJ0RhbmllbCcsICdCYXJiZXInLCAnQ3VtbWluZ3MnLCAnSGluZXMnLCAnQmFsZHdpbicsICdHcmlmZml0aCcsICdWYWxkZXonLCAnSHViYmFyZCcsICdTYWxhemFyJywgJ1JlZXZlcycsICdXYXJuZXInLCAnU3RldmVuc29uJywgJ0J1cmdlc3MnLCAnU2FudG9zJywgJ1RhdGUnLCAnQ3Jvc3MnLCAnR2FybmVyJywgJ01hbm4nLCAnTWFjaycsICdNb3NzJywgJ1Rob3JudG9uJywgJ0Rlbm5pcycsICdNY0dlZScsICdGYXJtZXInLCAnRGVsZ2FkbycsICdBZ3VpbGFyJywgJ1ZlZ2EnLCAnR2xvdmVyJywgJ01hbm5pbmcnLCAnQ29oZW4nLCAnSGFybW9uJywgJ1JvZGdlcnMnLCAnUm9iYmlucycsICdOZXd0b24nLCAnVG9kZCcsICdCbGFpcicsICdIaWdnaW5zJywgJ0luZ3JhbScsICdSZWVzZScsICdDYW5ub24nLCAnU3RyaWNrbGFuZCcsICdUb3duc2VuZCcsICdQb3R0ZXInLCAnR29vZHdpbicsICdXYWx0b24nLCAnUm93ZScsICdIYW1wdG9uJywgJ09ydGVnYScsICdQYXR0b24nLCAnU3dhbnNvbicsICdKb3NlcGgnLCAnRnJhbmNpcycsICdHb29kbWFuJywgJ01hbGRvbmFkbycsICdZYXRlcycsICdCZWNrZXInLCAnRXJpY2tzb24nLCAnSG9kZ2VzJywgJ1Jpb3MnLCAnQ29ubmVyJywgJ0Fka2lucycsICdXZWJzdGVyJywgJ05vcm1hbicsICdNYWxvbmUnLCAnSGFtbW9uZCcsICdGbG93ZXJzJywgJ0NvYmInLCAnTW9vZHknLCAnUXVpbm4nLCAnQmxha2UnLCAnTWF4d2VsbCcsICdQb3BlJywgJ0Zsb3lkJywgJ09zYm9ybmUnLCAnUGF1bCcsICdNY0NhcnRoeScsICdHdWVycmVybycsICdMaW5kc2V5JywgJ0VzdHJhZGEnLCAnU2FuZG92YWwnLCAnR2liYnMnLCAnVHlsZXInLCAnR3Jvc3MnLCAnRml0emdlcmFsZCcsICdTdG9rZXMnLCAnRG95bGUnLCAnU2hlcm1hbicsICdTYXVuZGVycycsICdXaXNlJywgJ0NvbG9uJywgJ0dpbGwnLCAnQWx2YXJhZG8nLCAnR3JlZXInLCAnUGFkaWxsYScsICdTaW1vbicsICdXYXRlcnMnLCAnTnVuZXonLCAnQmFsbGFyZCcsICdTY2h3YXJ0eicsICdNY0JyaWRlJywgJ0hvdXN0b24nLCAnQ2hyaXN0ZW5zZW4nLCAnS2xlaW4nLCAnUHJhdHQnLCAnQnJpZ2dzJywgJ1BhcnNvbnMnLCAnTWNMYXVnaGxpbicsICdaaW1tZXJtYW4nLCAnRnJlbmNoJywgJ0J1Y2hhbmFuJywgJ01vcmFuJywgJ0NvcGVsYW5kJywgJ1JveScsICdQaXR0bWFuJywgJ0JyYWR5JywgJ01jQ29ybWljaycsICdIb2xsb3dheScsICdCcm9jaycsICdQb29sZScsICdGcmFuaycsICdMb2dhbicsICdPd2VuJywgJ0Jhc3MnLCAnTWFyc2gnLCAnRHJha2UnLCAnV29uZycsICdKZWZmZXJzb24nLCAnUGFyaycsICdNb3J0b24nLCAnQWJib3R0JywgJ1NwYXJrcycsICdQYXRyaWNrJywgJ05vcnRvbicsICdIdWZmJywgJ0NsYXl0b24nLCAnTWFzc2V5JywgJ0xsb3lkJywgJ0ZpZ3Vlcm9hJywgJ0NhcnNvbicsICdCb3dlcnMnLCAnUm9iZXJzb24nLCAnQmFydG9uJywgJ1RyYW4nLCAnTGFtYicsICdIYXJyaW5ndG9uJywgJ0Nhc2V5JywgJ0Jvb25lJywgJ0NvcnRleicsICdDbGFya2UnLCAnTWF0aGlzJywgJ1NpbmdsZXRvbicsICdXaWxraW5zJywgJ0NhaW4nLCAnQnJ5YW4nLCAnVW5kZXJ3b29kJywgJ0hvZ2FuJywgJ01jS2VuemllJywgJ0NvbGxpZXInLCAnTHVuYScsICdQaGVscHMnLCAnTWNHdWlyZScsICdBbGxpc29uJywgJ0JyaWRnZXMnLCAnV2lsa2Vyc29uJywgJ05hc2gnLCAnU3VtbWVycycsICdBdGtpbnMnXSxcblxuICAgICAgICAvLyBEYXRhIHRha2VuIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VtcGlyc2t5L2NvdW50cnktbGlzdC9ibG9iL21hc3Rlci9jb3VudHJ5L2NsZHIvZW5fVVMvY291bnRyeS5qc29uXG4gICAgICAgIGNvdW50cmllczogW3tcIm5hbWVcIjpcIkFmZ2hhbmlzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFGXCJ9LHtcIm5hbWVcIjpcIkFsYmFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiQUxcIn0se1wibmFtZVwiOlwiQWxnZXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJEWlwifSx7XCJuYW1lXCI6XCJBbWVyaWNhbiBTYW1vYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBU1wifSx7XCJuYW1lXCI6XCJBbmRvcnJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFEXCJ9LHtcIm5hbWVcIjpcIkFuZ29sYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBT1wifSx7XCJuYW1lXCI6XCJBbmd1aWxsYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBSVwifSx7XCJuYW1lXCI6XCJBbnRhcmN0aWNhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFRXCJ9LHtcIm5hbWVcIjpcIkFudGlndWEgYW5kIEJhcmJ1ZGFcIixcImFiYnJldmlhdGlvblwiOlwiQUdcIn0se1wibmFtZVwiOlwiQXJnZW50aW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFSXCJ9LHtcIm5hbWVcIjpcIkFybWVuaWFcIixcImFiYnJldmlhdGlvblwiOlwiQU1cIn0se1wibmFtZVwiOlwiQXJ1YmFcIixcImFiYnJldmlhdGlvblwiOlwiQVdcIn0se1wibmFtZVwiOlwiQXVzdHJhbGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFVXCJ9LHtcIm5hbWVcIjpcIkF1c3RyaWFcIixcImFiYnJldmlhdGlvblwiOlwiQVRcIn0se1wibmFtZVwiOlwiQXplcmJhaWphblwiLFwiYWJicmV2aWF0aW9uXCI6XCJBWlwifSx7XCJuYW1lXCI6XCJCYWhhbWFzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJTXCJ9LHtcIm5hbWVcIjpcIkJhaHJhaW5cIixcImFiYnJldmlhdGlvblwiOlwiQkhcIn0se1wibmFtZVwiOlwiQmFuZ2xhZGVzaFwiLFwiYWJicmV2aWF0aW9uXCI6XCJCRFwifSx7XCJuYW1lXCI6XCJCYXJiYWRvc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCQlwifSx7XCJuYW1lXCI6XCJCZWxhcnVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJZXCJ9LHtcIm5hbWVcIjpcIkJlbGdpdW1cIixcImFiYnJldmlhdGlvblwiOlwiQkVcIn0se1wibmFtZVwiOlwiQmVsaXplXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJaXCJ9LHtcIm5hbWVcIjpcIkJlbmluXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJKXCJ9LHtcIm5hbWVcIjpcIkJlcm11ZGFcIixcImFiYnJldmlhdGlvblwiOlwiQk1cIn0se1wibmFtZVwiOlwiQmh1dGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJUXCJ9LHtcIm5hbWVcIjpcIkJvbGl2aWFcIixcImFiYnJldmlhdGlvblwiOlwiQk9cIn0se1wibmFtZVwiOlwiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCQVwifSx7XCJuYW1lXCI6XCJCb3Rzd2FuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCV1wifSx7XCJuYW1lXCI6XCJCb3V2ZXQgSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJWXCJ9LHtcIm5hbWVcIjpcIkJyYXppbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJCUlwifSx7XCJuYW1lXCI6XCJCcml0aXNoIEFudGFyY3RpYyBUZXJyaXRvcnlcIixcImFiYnJldmlhdGlvblwiOlwiQlFcIn0se1wibmFtZVwiOlwiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5XCIsXCJhYmJyZXZpYXRpb25cIjpcIklPXCJ9LHtcIm5hbWVcIjpcIkJyaXRpc2ggVmlyZ2luIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiVkdcIn0se1wibmFtZVwiOlwiQnJ1bmVpXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJOXCJ9LHtcIm5hbWVcIjpcIkJ1bGdhcmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJHXCJ9LHtcIm5hbWVcIjpcIkJ1cmtpbmEgRmFzb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCRlwifSx7XCJuYW1lXCI6XCJCdXJ1bmRpXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJJXCJ9LHtcIm5hbWVcIjpcIkNhbWJvZGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIktIXCJ9LHtcIm5hbWVcIjpcIkNhbWVyb29uXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNNXCJ9LHtcIm5hbWVcIjpcIkNhbmFkYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDQVwifSx7XCJuYW1lXCI6XCJDYW50b24gYW5kIEVuZGVyYnVyeSBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNUXCJ9LHtcIm5hbWVcIjpcIkNhcGUgVmVyZGVcIixcImFiYnJldmlhdGlvblwiOlwiQ1ZcIn0se1wibmFtZVwiOlwiQ2F5bWFuIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiS1lcIn0se1wibmFtZVwiOlwiQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNGXCJ9LHtcIm5hbWVcIjpcIkNoYWRcIixcImFiYnJldmlhdGlvblwiOlwiVERcIn0se1wibmFtZVwiOlwiQ2hpbGVcIixcImFiYnJldmlhdGlvblwiOlwiQ0xcIn0se1wibmFtZVwiOlwiQ2hpbmFcIixcImFiYnJldmlhdGlvblwiOlwiQ05cIn0se1wibmFtZVwiOlwiQ2hyaXN0bWFzIElzbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJDWFwifSx7XCJuYW1lXCI6XCJDb2NvcyBbS2VlbGluZ10gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDQ1wifSx7XCJuYW1lXCI6XCJDb2xvbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDT1wifSx7XCJuYW1lXCI6XCJDb21vcm9zXCIsXCJhYmJyZXZpYXRpb25cIjpcIktNXCJ9LHtcIm5hbWVcIjpcIkNvbmdvIC0gQnJhenphdmlsbGVcIixcImFiYnJldmlhdGlvblwiOlwiQ0dcIn0se1wibmFtZVwiOlwiQ29uZ28gLSBLaW5zaGFzYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDRFwifSx7XCJuYW1lXCI6XCJDb29rIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiQ0tcIn0se1wibmFtZVwiOlwiQ29zdGEgUmljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDUlwifSx7XCJuYW1lXCI6XCJDcm9hdGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkhSXCJ9LHtcIm5hbWVcIjpcIkN1YmFcIixcImFiYnJldmlhdGlvblwiOlwiQ1VcIn0se1wibmFtZVwiOlwiQ3lwcnVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNZXCJ9LHtcIm5hbWVcIjpcIkN6ZWNoIFJlcHVibGljXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNaXCJ9LHtcIm5hbWVcIjpcIkPDtHRlIGTigJlJdm9pcmVcIixcImFiYnJldmlhdGlvblwiOlwiQ0lcIn0se1wibmFtZVwiOlwiRGVubWFya1wiLFwiYWJicmV2aWF0aW9uXCI6XCJES1wifSx7XCJuYW1lXCI6XCJEamlib3V0aVwiLFwiYWJicmV2aWF0aW9uXCI6XCJESlwifSx7XCJuYW1lXCI6XCJEb21pbmljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJETVwifSx7XCJuYW1lXCI6XCJEb21pbmljYW4gUmVwdWJsaWNcIixcImFiYnJldmlhdGlvblwiOlwiRE9cIn0se1wibmFtZVwiOlwiRHJvbm5pbmcgTWF1ZCBMYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5RXCJ9LHtcIm5hbWVcIjpcIkVhc3QgR2VybWFueVwiLFwiYWJicmV2aWF0aW9uXCI6XCJERFwifSx7XCJuYW1lXCI6XCJFY3VhZG9yXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVDXCJ9LHtcIm5hbWVcIjpcIkVneXB0XCIsXCJhYmJyZXZpYXRpb25cIjpcIkVHXCJ9LHtcIm5hbWVcIjpcIkVsIFNhbHZhZG9yXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNWXCJ9LHtcIm5hbWVcIjpcIkVxdWF0b3JpYWwgR3VpbmVhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdRXCJ9LHtcIm5hbWVcIjpcIkVyaXRyZWFcIixcImFiYnJldmlhdGlvblwiOlwiRVJcIn0se1wibmFtZVwiOlwiRXN0b25pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJFRVwifSx7XCJuYW1lXCI6XCJFdGhpb3BpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJFVFwifSx7XCJuYW1lXCI6XCJGYWxrbGFuZCBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZLXCJ9LHtcIm5hbWVcIjpcIkZhcm9lIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiRk9cIn0se1wibmFtZVwiOlwiRmlqaVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGSlwifSx7XCJuYW1lXCI6XCJGaW5sYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZJXCJ9LHtcIm5hbWVcIjpcIkZyYW5jZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGUlwifSx7XCJuYW1lXCI6XCJGcmVuY2ggR3VpYW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdGXCJ9LHtcIm5hbWVcIjpcIkZyZW5jaCBQb2x5bmVzaWFcIixcImFiYnJldmlhdGlvblwiOlwiUEZcIn0se1wibmFtZVwiOlwiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRGXCJ9LHtcIm5hbWVcIjpcIkZyZW5jaCBTb3V0aGVybiBhbmQgQW50YXJjdGljIFRlcnJpdG9yaWVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZRXCJ9LHtcIm5hbWVcIjpcIkdhYm9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdBXCJ9LHtcIm5hbWVcIjpcIkdhbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHTVwifSx7XCJuYW1lXCI6XCJHZW9yZ2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdFXCJ9LHtcIm5hbWVcIjpcIkdlcm1hbnlcIixcImFiYnJldmlhdGlvblwiOlwiREVcIn0se1wibmFtZVwiOlwiR2hhbmFcIixcImFiYnJldmlhdGlvblwiOlwiR0hcIn0se1wibmFtZVwiOlwiR2licmFsdGFyXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdJXCJ9LHtcIm5hbWVcIjpcIkdyZWVjZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHUlwifSx7XCJuYW1lXCI6XCJHcmVlbmxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiR0xcIn0se1wibmFtZVwiOlwiR3JlbmFkYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHRFwifSx7XCJuYW1lXCI6XCJHdWFkZWxvdXBlXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdQXCJ9LHtcIm5hbWVcIjpcIkd1YW1cIixcImFiYnJldmlhdGlvblwiOlwiR1VcIn0se1wibmFtZVwiOlwiR3VhdGVtYWxhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdUXCJ9LHtcIm5hbWVcIjpcIkd1ZXJuc2V5XCIsXCJhYmJyZXZpYXRpb25cIjpcIkdHXCJ9LHtcIm5hbWVcIjpcIkd1aW5lYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHTlwifSx7XCJuYW1lXCI6XCJHdWluZWEtQmlzc2F1XCIsXCJhYmJyZXZpYXRpb25cIjpcIkdXXCJ9LHtcIm5hbWVcIjpcIkd1eWFuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHWVwifSx7XCJuYW1lXCI6XCJIYWl0aVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIVFwifSx7XCJuYW1lXCI6XCJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiSE1cIn0se1wibmFtZVwiOlwiSG9uZHVyYXNcIixcImFiYnJldmlhdGlvblwiOlwiSE5cIn0se1wibmFtZVwiOlwiSG9uZyBLb25nIFNBUiBDaGluYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIS1wifSx7XCJuYW1lXCI6XCJIdW5nYXJ5XCIsXCJhYmJyZXZpYXRpb25cIjpcIkhVXCJ9LHtcIm5hbWVcIjpcIkljZWxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiSVNcIn0se1wibmFtZVwiOlwiSW5kaWFcIixcImFiYnJldmlhdGlvblwiOlwiSU5cIn0se1wibmFtZVwiOlwiSW5kb25lc2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIklEXCJ9LHtcIm5hbWVcIjpcIklyYW5cIixcImFiYnJldmlhdGlvblwiOlwiSVJcIn0se1wibmFtZVwiOlwiSXJhcVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJUVwifSx7XCJuYW1lXCI6XCJJcmVsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIklFXCJ9LHtcIm5hbWVcIjpcIklzbGUgb2YgTWFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIklNXCJ9LHtcIm5hbWVcIjpcIklzcmFlbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJJTFwifSx7XCJuYW1lXCI6XCJJdGFseVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJVFwifSx7XCJuYW1lXCI6XCJKYW1haWNhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpNXCJ9LHtcIm5hbWVcIjpcIkphcGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpQXCJ9LHtcIm5hbWVcIjpcIkplcnNleVwiLFwiYWJicmV2aWF0aW9uXCI6XCJKRVwifSx7XCJuYW1lXCI6XCJKb2huc3RvbiBJc2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiSlRcIn0se1wibmFtZVwiOlwiSm9yZGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpPXCJ9LHtcIm5hbWVcIjpcIkthemFraHN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiS1pcIn0se1wibmFtZVwiOlwiS2VueWFcIixcImFiYnJldmlhdGlvblwiOlwiS0VcIn0se1wibmFtZVwiOlwiS2lyaWJhdGlcIixcImFiYnJldmlhdGlvblwiOlwiS0lcIn0se1wibmFtZVwiOlwiS3V3YWl0XCIsXCJhYmJyZXZpYXRpb25cIjpcIktXXCJ9LHtcIm5hbWVcIjpcIkt5cmd5enN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiS0dcIn0se1wibmFtZVwiOlwiTGFvc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJMQVwifSx7XCJuYW1lXCI6XCJMYXR2aWFcIixcImFiYnJldmlhdGlvblwiOlwiTFZcIn0se1wibmFtZVwiOlwiTGViYW5vblwiLFwiYWJicmV2aWF0aW9uXCI6XCJMQlwifSx7XCJuYW1lXCI6XCJMZXNvdGhvXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxTXCJ9LHtcIm5hbWVcIjpcIkxpYmVyaWFcIixcImFiYnJldmlhdGlvblwiOlwiTFJcIn0se1wibmFtZVwiOlwiTGlieWFcIixcImFiYnJldmlhdGlvblwiOlwiTFlcIn0se1wibmFtZVwiOlwiTGllY2h0ZW5zdGVpblwiLFwiYWJicmV2aWF0aW9uXCI6XCJMSVwifSx7XCJuYW1lXCI6XCJMaXRodWFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiTFRcIn0se1wibmFtZVwiOlwiTHV4ZW1ib3VyZ1wiLFwiYWJicmV2aWF0aW9uXCI6XCJMVVwifSx7XCJuYW1lXCI6XCJNYWNhdSBTQVIgQ2hpbmFcIixcImFiYnJldmlhdGlvblwiOlwiTU9cIn0se1wibmFtZVwiOlwiTWFjZWRvbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1LXCJ9LHtcIm5hbWVcIjpcIk1hZGFnYXNjYXJcIixcImFiYnJldmlhdGlvblwiOlwiTUdcIn0se1wibmFtZVwiOlwiTWFsYXdpXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1XXCJ9LHtcIm5hbWVcIjpcIk1hbGF5c2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1ZXCJ9LHtcIm5hbWVcIjpcIk1hbGRpdmVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1WXCJ9LHtcIm5hbWVcIjpcIk1hbGlcIixcImFiYnJldmlhdGlvblwiOlwiTUxcIn0se1wibmFtZVwiOlwiTWFsdGFcIixcImFiYnJldmlhdGlvblwiOlwiTVRcIn0se1wibmFtZVwiOlwiTWFyc2hhbGwgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNSFwifSx7XCJuYW1lXCI6XCJNYXJ0aW5pcXVlXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1RXCJ9LHtcIm5hbWVcIjpcIk1hdXJpdGFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiTVJcIn0se1wibmFtZVwiOlwiTWF1cml0aXVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1VXCJ9LHtcIm5hbWVcIjpcIk1heW90dGVcIixcImFiYnJldmlhdGlvblwiOlwiWVRcIn0se1wibmFtZVwiOlwiTWV0cm9wb2xpdGFuIEZyYW5jZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGWFwifSx7XCJuYW1lXCI6XCJNZXhpY29cIixcImFiYnJldmlhdGlvblwiOlwiTVhcIn0se1wibmFtZVwiOlwiTWljcm9uZXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGTVwifSx7XCJuYW1lXCI6XCJNaWR3YXkgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNSVwifSx7XCJuYW1lXCI6XCJNb2xkb3ZhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1EXCJ9LHtcIm5hbWVcIjpcIk1vbmFjb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNQ1wifSx7XCJuYW1lXCI6XCJNb25nb2xpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNTlwifSx7XCJuYW1lXCI6XCJNb250ZW5lZ3JvXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1FXCJ9LHtcIm5hbWVcIjpcIk1vbnRzZXJyYXRcIixcImFiYnJldmlhdGlvblwiOlwiTVNcIn0se1wibmFtZVwiOlwiTW9yb2Njb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNQVwifSx7XCJuYW1lXCI6XCJNb3phbWJpcXVlXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1aXCJ9LHtcIm5hbWVcIjpcIk15YW5tYXIgW0J1cm1hXVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNTVwifSx7XCJuYW1lXCI6XCJOYW1pYmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5BXCJ9LHtcIm5hbWVcIjpcIk5hdXJ1XCIsXCJhYmJyZXZpYXRpb25cIjpcIk5SXCJ9LHtcIm5hbWVcIjpcIk5lcGFsXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5QXCJ9LHtcIm5hbWVcIjpcIk5ldGhlcmxhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5MXCJ9LHtcIm5hbWVcIjpcIk5ldGhlcmxhbmRzIEFudGlsbGVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFOXCJ9LHtcIm5hbWVcIjpcIk5ldXRyYWwgWm9uZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOVFwifSx7XCJuYW1lXCI6XCJOZXcgQ2FsZWRvbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5DXCJ9LHtcIm5hbWVcIjpcIk5ldyBaZWFsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5aXCJ9LHtcIm5hbWVcIjpcIk5pY2FyYWd1YVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOSVwifSx7XCJuYW1lXCI6XCJOaWdlclwiLFwiYWJicmV2aWF0aW9uXCI6XCJORVwifSx7XCJuYW1lXCI6XCJOaWdlcmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5HXCJ9LHtcIm5hbWVcIjpcIk5pdWVcIixcImFiYnJldmlhdGlvblwiOlwiTlVcIn0se1wibmFtZVwiOlwiTm9yZm9sayBJc2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiTkZcIn0se1wibmFtZVwiOlwiTm9ydGggS29yZWFcIixcImFiYnJldmlhdGlvblwiOlwiS1BcIn0se1wibmFtZVwiOlwiTm9ydGggVmlldG5hbVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWRFwifSx7XCJuYW1lXCI6XCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiTVBcIn0se1wibmFtZVwiOlwiTm9yd2F5XCIsXCJhYmJyZXZpYXRpb25cIjpcIk5PXCJ9LHtcIm5hbWVcIjpcIk9tYW5cIixcImFiYnJldmlhdGlvblwiOlwiT01cIn0se1wibmFtZVwiOlwiUGFjaWZpYyBJc2xhbmRzIFRydXN0IFRlcnJpdG9yeVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQQ1wifSx7XCJuYW1lXCI6XCJQYWtpc3RhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJQS1wifSx7XCJuYW1lXCI6XCJQYWxhdVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQV1wifSx7XCJuYW1lXCI6XCJQYWxlc3RpbmlhbiBUZXJyaXRvcmllc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJQU1wifSx7XCJuYW1lXCI6XCJQYW5hbWFcIixcImFiYnJldmlhdGlvblwiOlwiUEFcIn0se1wibmFtZVwiOlwiUGFuYW1hIENhbmFsIFpvbmVcIixcImFiYnJldmlhdGlvblwiOlwiUFpcIn0se1wibmFtZVwiOlwiUGFwdWEgTmV3IEd1aW5lYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQR1wifSx7XCJuYW1lXCI6XCJQYXJhZ3VheVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQWVwifSx7XCJuYW1lXCI6XCJQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljIG9mIFllbWVuXCIsXCJhYmJyZXZpYXRpb25cIjpcIllEXCJ9LHtcIm5hbWVcIjpcIlBlcnVcIixcImFiYnJldmlhdGlvblwiOlwiUEVcIn0se1wibmFtZVwiOlwiUGhpbGlwcGluZXNcIixcImFiYnJldmlhdGlvblwiOlwiUEhcIn0se1wibmFtZVwiOlwiUGl0Y2Fpcm4gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJQTlwifSx7XCJuYW1lXCI6XCJQb2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiUExcIn0se1wibmFtZVwiOlwiUG9ydHVnYWxcIixcImFiYnJldmlhdGlvblwiOlwiUFRcIn0se1wibmFtZVwiOlwiUHVlcnRvIFJpY29cIixcImFiYnJldmlhdGlvblwiOlwiUFJcIn0se1wibmFtZVwiOlwiUWF0YXJcIixcImFiYnJldmlhdGlvblwiOlwiUUFcIn0se1wibmFtZVwiOlwiUm9tYW5pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJST1wifSx7XCJuYW1lXCI6XCJSdXNzaWFcIixcImFiYnJldmlhdGlvblwiOlwiUlVcIn0se1wibmFtZVwiOlwiUndhbmRhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJXXCJ9LHtcIm5hbWVcIjpcIlLDqXVuaW9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJFXCJ9LHtcIm5hbWVcIjpcIlNhaW50IEJhcnRow6lsZW15XCIsXCJhYmJyZXZpYXRpb25cIjpcIkJMXCJ9LHtcIm5hbWVcIjpcIlNhaW50IEhlbGVuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTSFwifSx7XCJuYW1lXCI6XCJTYWludCBLaXR0cyBhbmQgTmV2aXNcIixcImFiYnJldmlhdGlvblwiOlwiS05cIn0se1wibmFtZVwiOlwiU2FpbnQgTHVjaWFcIixcImFiYnJldmlhdGlvblwiOlwiTENcIn0se1wibmFtZVwiOlwiU2FpbnQgTWFydGluXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1GXCJ9LHtcIm5hbWVcIjpcIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb25cIixcImFiYnJldmlhdGlvblwiOlwiUE1cIn0se1wibmFtZVwiOlwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcImFiYnJldmlhdGlvblwiOlwiVkNcIn0se1wibmFtZVwiOlwiU2Ftb2FcIixcImFiYnJldmlhdGlvblwiOlwiV1NcIn0se1wibmFtZVwiOlwiU2FuIE1hcmlub1wiLFwiYWJicmV2aWF0aW9uXCI6XCJTTVwifSx7XCJuYW1lXCI6XCJTYXVkaSBBcmFiaWFcIixcImFiYnJldmlhdGlvblwiOlwiU0FcIn0se1wibmFtZVwiOlwiU2VuZWdhbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJTTlwifSx7XCJuYW1lXCI6XCJTZXJiaWFcIixcImFiYnJldmlhdGlvblwiOlwiUlNcIn0se1wibmFtZVwiOlwiU2VyYmlhIGFuZCBNb250ZW5lZ3JvXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNTXCJ9LHtcIm5hbWVcIjpcIlNleWNoZWxsZXNcIixcImFiYnJldmlhdGlvblwiOlwiU0NcIn0se1wibmFtZVwiOlwiU2llcnJhIExlb25lXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNMXCJ9LHtcIm5hbWVcIjpcIlNpbmdhcG9yZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTR1wifSx7XCJuYW1lXCI6XCJTbG92YWtpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTS1wifSx7XCJuYW1lXCI6XCJTbG92ZW5pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTSVwifSx7XCJuYW1lXCI6XCJTb2xvbW9uIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiU0JcIn0se1wibmFtZVwiOlwiU29tYWxpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTT1wifSx7XCJuYW1lXCI6XCJTb3V0aCBBZnJpY2FcIixcImFiYnJldmlhdGlvblwiOlwiWkFcIn0se1wibmFtZVwiOlwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiR1NcIn0se1wibmFtZVwiOlwiU291dGggS29yZWFcIixcImFiYnJldmlhdGlvblwiOlwiS1JcIn0se1wibmFtZVwiOlwiU3BhaW5cIixcImFiYnJldmlhdGlvblwiOlwiRVNcIn0se1wibmFtZVwiOlwiU3JpIExhbmthXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxLXCJ9LHtcIm5hbWVcIjpcIlN1ZGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNEXCJ9LHtcIm5hbWVcIjpcIlN1cmluYW1lXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNSXCJ9LHtcIm5hbWVcIjpcIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW5cIixcImFiYnJldmlhdGlvblwiOlwiU0pcIn0se1wibmFtZVwiOlwiU3dhemlsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNaXCJ9LHtcIm5hbWVcIjpcIlN3ZWRlblwiLFwiYWJicmV2aWF0aW9uXCI6XCJTRVwifSx7XCJuYW1lXCI6XCJTd2l0emVybGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJDSFwifSx7XCJuYW1lXCI6XCJTeXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTWVwifSx7XCJuYW1lXCI6XCJTw6NvIFRvbcOpIGFuZCBQcsOtbmNpcGVcIixcImFiYnJldmlhdGlvblwiOlwiU1RcIn0se1wibmFtZVwiOlwiVGFpd2FuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRXXCJ9LHtcIm5hbWVcIjpcIlRhamlraXN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiVEpcIn0se1wibmFtZVwiOlwiVGFuemFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiVFpcIn0se1wibmFtZVwiOlwiVGhhaWxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiVEhcIn0se1wibmFtZVwiOlwiVGltb3ItTGVzdGVcIixcImFiYnJldmlhdGlvblwiOlwiVExcIn0se1wibmFtZVwiOlwiVG9nb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJUR1wifSx7XCJuYW1lXCI6XCJUb2tlbGF1XCIsXCJhYmJyZXZpYXRpb25cIjpcIlRLXCJ9LHtcIm5hbWVcIjpcIlRvbmdhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRPXCJ9LHtcIm5hbWVcIjpcIlRyaW5pZGFkIGFuZCBUb2JhZ29cIixcImFiYnJldmlhdGlvblwiOlwiVFRcIn0se1wibmFtZVwiOlwiVHVuaXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJUTlwifSx7XCJuYW1lXCI6XCJUdXJrZXlcIixcImFiYnJldmlhdGlvblwiOlwiVFJcIn0se1wibmFtZVwiOlwiVHVya21lbmlzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRNXCJ9LHtcIm5hbWVcIjpcIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJUQ1wifSx7XCJuYW1lXCI6XCJUdXZhbHVcIixcImFiYnJldmlhdGlvblwiOlwiVFZcIn0se1wibmFtZVwiOlwiVS5TLiBNaW5vciBPdXRseWluZyBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVNXCJ9LHtcIm5hbWVcIjpcIlUuUy4gTWlzY2VsbGFuZW91cyBQYWNpZmljIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiUFVcIn0se1wibmFtZVwiOlwiVS5TLiBWaXJnaW4gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJWSVwifSx7XCJuYW1lXCI6XCJVZ2FuZGFcIixcImFiYnJldmlhdGlvblwiOlwiVUdcIn0se1wibmFtZVwiOlwiVWtyYWluZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJVQVwifSx7XCJuYW1lXCI6XCJVbmlvbiBvZiBTb3ZpZXQgU29jaWFsaXN0IFJlcHVibGljc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJTVVwifSx7XCJuYW1lXCI6XCJVbml0ZWQgQXJhYiBFbWlyYXRlc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJBRVwifSx7XCJuYW1lXCI6XCJVbml0ZWQgS2luZ2RvbVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHQlwifSx7XCJuYW1lXCI6XCJVbml0ZWQgU3RhdGVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVTXCJ9LHtcIm5hbWVcIjpcIlVua25vd24gb3IgSW52YWxpZCBSZWdpb25cIixcImFiYnJldmlhdGlvblwiOlwiWlpcIn0se1wibmFtZVwiOlwiVXJ1Z3VheVwiLFwiYWJicmV2aWF0aW9uXCI6XCJVWVwifSx7XCJuYW1lXCI6XCJVemJla2lzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVaXCJ9LHtcIm5hbWVcIjpcIlZhbnVhdHVcIixcImFiYnJldmlhdGlvblwiOlwiVlVcIn0se1wibmFtZVwiOlwiVmF0aWNhbiBDaXR5XCIsXCJhYmJyZXZpYXRpb25cIjpcIlZBXCJ9LHtcIm5hbWVcIjpcIlZlbmV6dWVsYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWRVwifSx7XCJuYW1lXCI6XCJWaWV0bmFtXCIsXCJhYmJyZXZpYXRpb25cIjpcIlZOXCJ9LHtcIm5hbWVcIjpcIldha2UgSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIldLXCJ9LHtcIm5hbWVcIjpcIldhbGxpcyBhbmQgRnV0dW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIldGXCJ9LHtcIm5hbWVcIjpcIldlc3Rlcm4gU2FoYXJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVIXCJ9LHtcIm5hbWVcIjpcIlllbWVuXCIsXCJhYmJyZXZpYXRpb25cIjpcIllFXCJ9LHtcIm5hbWVcIjpcIlphbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJaTVwifSx7XCJuYW1lXCI6XCJaaW1iYWJ3ZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJaV1wifSx7XCJuYW1lXCI6XCLDhWxhbmQgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJBWFwifV0sXG5cbiAgICAgICAgcHJvdmluY2VzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FsYmVydGEnLCBhYmJyZXZpYXRpb246ICdBQid9LFxuICAgICAgICAgICAge25hbWU6ICdCcml0aXNoIENvbHVtYmlhJywgYWJicmV2aWF0aW9uOiAnQkMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFuaXRvYmEnLCBhYmJyZXZpYXRpb246ICdNQid9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgQnJ1bnN3aWNrJywgYWJicmV2aWF0aW9uOiAnTkInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3Zm91bmRsYW5kIGFuZCBMYWJyYWRvcicsIGFiYnJldmlhdGlvbjogJ05MJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vdmEgU2NvdGlhJywgYWJicmV2aWF0aW9uOiAnTlMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT250YXJpbycsIGFiYnJldmlhdGlvbjogJ09OJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1ByaW5jZSBFZHdhcmQgSXNsYW5kJywgYWJicmV2aWF0aW9uOiAnUEUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUXVlYmVjJywgYWJicmV2aWF0aW9uOiAnUUMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU2Fza2F0Y2hld2FuJywgYWJicmV2aWF0aW9uOiAnU0snfSxcblxuICAgICAgICAgICAgLy8gVGhlIGNhc2UgY291bGQgYmUgbWFkZSB0aGF0IHRoZSBmb2xsb3dpbmcgYXJlIG5vdCBhY3R1YWxseSBwcm92aW5jZXNcbiAgICAgICAgICAgIC8vIHNpbmNlIHRoZXkgYXJlIHRlY2huaWNhbGx5IGNvbnNpZGVyZWQgXCJ0ZXJyaXRvcmllc1wiIGhvd2V2ZXIgdGhleSBhbGxcbiAgICAgICAgICAgIC8vIGxvb2sgdGhlIHNhbWUgb24gYW4gZW52ZWxvcGUhXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRod2VzdCBUZXJyaXRvcmllcycsIGFiYnJldmlhdGlvbjogJ05UJ30sXG4gICAgICAgICAgICB7bmFtZTogJ051bmF2dXQnLCBhYmJyZXZpYXRpb246ICdOVSd9LFxuICAgICAgICAgICAge25hbWU6ICdZdWtvbicsIGFiYnJldmlhdGlvbjogJ1lUJ31cbiAgICAgICAgXSxcblxuICAgICAgICB1c19zdGF0ZXNfYW5kX2RjOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FsYWJhbWEnLCBhYmJyZXZpYXRpb246ICdBTCd9LFxuICAgICAgICAgICAge25hbWU6ICdBbGFza2EnLCBhYmJyZXZpYXRpb246ICdBSyd9LFxuICAgICAgICAgICAge25hbWU6ICdBcml6b25hJywgYWJicmV2aWF0aW9uOiAnQVonfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXJrYW5zYXMnLCBhYmJyZXZpYXRpb246ICdBUid9LFxuICAgICAgICAgICAge25hbWU6ICdDYWxpZm9ybmlhJywgYWJicmV2aWF0aW9uOiAnQ0EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ29sb3JhZG8nLCBhYmJyZXZpYXRpb246ICdDTyd9LFxuICAgICAgICAgICAge25hbWU6ICdDb25uZWN0aWN1dCcsIGFiYnJldmlhdGlvbjogJ0NUJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0RlbGF3YXJlJywgYWJicmV2aWF0aW9uOiAnREUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRGlzdHJpY3Qgb2YgQ29sdW1iaWEnLCBhYmJyZXZpYXRpb246ICdEQyd9LFxuICAgICAgICAgICAge25hbWU6ICdGbG9yaWRhJywgYWJicmV2aWF0aW9uOiAnRkwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnR2VvcmdpYScsIGFiYnJldmlhdGlvbjogJ0dBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0hhd2FpaScsIGFiYnJldmlhdGlvbjogJ0hJJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0lkYWhvJywgYWJicmV2aWF0aW9uOiAnSUQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSWxsaW5vaXMnLCBhYmJyZXZpYXRpb246ICdJTCd9LFxuICAgICAgICAgICAge25hbWU6ICdJbmRpYW5hJywgYWJicmV2aWF0aW9uOiAnSU4nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSW93YScsIGFiYnJldmlhdGlvbjogJ0lBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0thbnNhcycsIGFiYnJldmlhdGlvbjogJ0tTJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0tlbnR1Y2t5JywgYWJicmV2aWF0aW9uOiAnS1knfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTG91aXNpYW5hJywgYWJicmV2aWF0aW9uOiAnTEEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFpbmUnLCBhYmJyZXZpYXRpb246ICdNRSd9LFxuICAgICAgICAgICAge25hbWU6ICdNYXJ5bGFuZCcsIGFiYnJldmlhdGlvbjogJ01EJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hc3NhY2h1c2V0dHMnLCBhYmJyZXZpYXRpb246ICdNQSd9LFxuICAgICAgICAgICAge25hbWU6ICdNaWNoaWdhbicsIGFiYnJldmlhdGlvbjogJ01JJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pbm5lc290YScsIGFiYnJldmlhdGlvbjogJ01OJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pc3Npc3NpcHBpJywgYWJicmV2aWF0aW9uOiAnTVMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWlzc291cmknLCBhYmJyZXZpYXRpb246ICdNTyd9LFxuICAgICAgICAgICAge25hbWU6ICdNb250YW5hJywgYWJicmV2aWF0aW9uOiAnTVQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmVicmFza2EnLCBhYmJyZXZpYXRpb246ICdORSd9LFxuICAgICAgICAgICAge25hbWU6ICdOZXZhZGEnLCBhYmJyZXZpYXRpb246ICdOVid9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgSGFtcHNoaXJlJywgYWJicmV2aWF0aW9uOiAnTkgnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3IEplcnNleScsIGFiYnJldmlhdGlvbjogJ05KJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05ldyBNZXhpY28nLCBhYmJyZXZpYXRpb246ICdOTSd9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgWW9yaycsIGFiYnJldmlhdGlvbjogJ05ZJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRoIENhcm9saW5hJywgYWJicmV2aWF0aW9uOiAnTkMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTm9ydGggRGFrb3RhJywgYWJicmV2aWF0aW9uOiAnTkQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT2hpbycsIGFiYnJldmlhdGlvbjogJ09IJ30sXG4gICAgICAgICAgICB7bmFtZTogJ09rbGFob21hJywgYWJicmV2aWF0aW9uOiAnT0snfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT3JlZ29uJywgYWJicmV2aWF0aW9uOiAnT1InfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUGVubnN5bHZhbmlhJywgYWJicmV2aWF0aW9uOiAnUEEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUmhvZGUgSXNsYW5kJywgYWJicmV2aWF0aW9uOiAnUkknfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU291dGggQ2Fyb2xpbmEnLCBhYmJyZXZpYXRpb246ICdTQyd9LFxuICAgICAgICAgICAge25hbWU6ICdTb3V0aCBEYWtvdGEnLCBhYmJyZXZpYXRpb246ICdTRCd9LFxuICAgICAgICAgICAge25hbWU6ICdUZW5uZXNzZWUnLCBhYmJyZXZpYXRpb246ICdUTid9LFxuICAgICAgICAgICAge25hbWU6ICdUZXhhcycsIGFiYnJldmlhdGlvbjogJ1RYJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1V0YWgnLCBhYmJyZXZpYXRpb246ICdVVCd9LFxuICAgICAgICAgICAge25hbWU6ICdWZXJtb250JywgYWJicmV2aWF0aW9uOiAnVlQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlyZ2luaWEnLCBhYmJyZXZpYXRpb246ICdWQSd9LFxuICAgICAgICAgICAge25hbWU6ICdXYXNoaW5ndG9uJywgYWJicmV2aWF0aW9uOiAnV0EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnV2VzdCBWaXJnaW5pYScsIGFiYnJldmlhdGlvbjogJ1dWJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1dpc2NvbnNpbicsIGFiYnJldmlhdGlvbjogJ1dJJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1d5b21pbmcnLCBhYmJyZXZpYXRpb246ICdXWSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgdGVycml0b3JpZXM6IFtcbiAgICAgICAgICAgIHtuYW1lOiAnQW1lcmljYW4gU2Ftb2EnLCBhYmJyZXZpYXRpb246ICdBUyd9LFxuICAgICAgICAgICAge25hbWU6ICdGZWRlcmF0ZWQgU3RhdGVzIG9mIE1pY3JvbmVzaWEnLCBhYmJyZXZpYXRpb246ICdGTSd9LFxuICAgICAgICAgICAge25hbWU6ICdHdWFtJywgYWJicmV2aWF0aW9uOiAnR1UnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFyc2hhbGwgSXNsYW5kcycsIGFiYnJldmlhdGlvbjogJ01IJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsIGFiYnJldmlhdGlvbjogJ01QJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1B1ZXJ0byBSaWNvJywgYWJicmV2aWF0aW9uOiAnUFInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlyZ2luIElzbGFuZHMsIFUuUy4nLCBhYmJyZXZpYXRpb246ICdWSSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgYXJtZWRfZm9yY2VzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FybWVkIEZvcmNlcyBFdXJvcGUnLCBhYmJyZXZpYXRpb246ICdBRSd9LFxuICAgICAgICAgICAge25hbWU6ICdBcm1lZCBGb3JjZXMgUGFjaWZpYycsIGFiYnJldmlhdGlvbjogJ0FQJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0FybWVkIEZvcmNlcyB0aGUgQW1lcmljYXMnLCBhYmJyZXZpYXRpb246ICdBQSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgc3RyZWV0X3N1ZmZpeGVzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0F2ZW51ZScsIGFiYnJldmlhdGlvbjogJ0F2ZSd9LFxuICAgICAgICAgICAge25hbWU6ICdCb3VsZXZhcmQnLCBhYmJyZXZpYXRpb246ICdCbHZkJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0NlbnRlcicsIGFiYnJldmlhdGlvbjogJ0N0cid9LFxuICAgICAgICAgICAge25hbWU6ICdDaXJjbGUnLCBhYmJyZXZpYXRpb246ICdDaXInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ291cnQnLCBhYmJyZXZpYXRpb246ICdDdCd9LFxuICAgICAgICAgICAge25hbWU6ICdEcml2ZScsIGFiYnJldmlhdGlvbjogJ0RyJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0V4dGVuc2lvbicsIGFiYnJldmlhdGlvbjogJ0V4dCd9LFxuICAgICAgICAgICAge25hbWU6ICdHbGVuJywgYWJicmV2aWF0aW9uOiAnR2xuJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0dyb3ZlJywgYWJicmV2aWF0aW9uOiAnR3J2J30sXG4gICAgICAgICAgICB7bmFtZTogJ0hlaWdodHMnLCBhYmJyZXZpYXRpb246ICdIdHMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSGlnaHdheScsIGFiYnJldmlhdGlvbjogJ0h3eSd9LFxuICAgICAgICAgICAge25hbWU6ICdKdW5jdGlvbicsIGFiYnJldmlhdGlvbjogJ0pjdCd9LFxuICAgICAgICAgICAge25hbWU6ICdLZXknLCBhYmJyZXZpYXRpb246ICdLZXknfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTGFuZScsIGFiYnJldmlhdGlvbjogJ0xuJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0xvb3AnLCBhYmJyZXZpYXRpb246ICdMb29wJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hbm9yJywgYWJicmV2aWF0aW9uOiAnTW5yJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pbGwnLCBhYmJyZXZpYXRpb246ICdNaWxsJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BhcmsnLCBhYmJyZXZpYXRpb246ICdQYXJrJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bhcmt3YXknLCBhYmJyZXZpYXRpb246ICdQa3d5J30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bhc3MnLCBhYmJyZXZpYXRpb246ICdQYXNzJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BhdGgnLCBhYmJyZXZpYXRpb246ICdQYXRoJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bpa2UnLCBhYmJyZXZpYXRpb246ICdQaWtlJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BsYWNlJywgYWJicmV2aWF0aW9uOiAnUGwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUGxhemEnLCBhYmJyZXZpYXRpb246ICdQbHonfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUG9pbnQnLCBhYmJyZXZpYXRpb246ICdQdCd9LFxuICAgICAgICAgICAge25hbWU6ICdSaWRnZScsIGFiYnJldmlhdGlvbjogJ1JkZyd9LFxuICAgICAgICAgICAge25hbWU6ICdSaXZlcicsIGFiYnJldmlhdGlvbjogJ1Jpdid9LFxuICAgICAgICAgICAge25hbWU6ICdSb2FkJywgYWJicmV2aWF0aW9uOiAnUmQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU3F1YXJlJywgYWJicmV2aWF0aW9uOiAnU3EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU3RyZWV0JywgYWJicmV2aWF0aW9uOiAnU3QnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVGVycmFjZScsIGFiYnJldmlhdGlvbjogJ1Rlcid9LFxuICAgICAgICAgICAge25hbWU6ICdUcmFpbCcsIGFiYnJldmlhdGlvbjogJ1RybCd9LFxuICAgICAgICAgICAge25hbWU6ICdUdXJucGlrZScsIGFiYnJldmlhdGlvbjogJ1Rwa2UnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlldycsIGFiYnJldmlhdGlvbjogJ1Z3J30sXG4gICAgICAgICAgICB7bmFtZTogJ1dheScsIGFiYnJldmlhdGlvbjogJ1dheSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgbW9udGhzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0phbnVhcnknLCBzaG9ydF9uYW1lOiAnSmFuJywgbnVtZXJpYzogJzAxJywgZGF5czogMzF9LFxuICAgICAgICAgICAgLy8gTm90IG1lc3Npbmcgd2l0aCBsZWFwIHllYXJzLi4uXG4gICAgICAgICAgICB7bmFtZTogJ0ZlYnJ1YXJ5Jywgc2hvcnRfbmFtZTogJ0ZlYicsIG51bWVyaWM6ICcwMicsIGRheXM6IDI4fSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFyY2gnLCBzaG9ydF9uYW1lOiAnTWFyJywgbnVtZXJpYzogJzAzJywgZGF5czogMzF9LFxuICAgICAgICAgICAge25hbWU6ICdBcHJpbCcsIHNob3J0X25hbWU6ICdBcHInLCBudW1lcmljOiAnMDQnLCBkYXlzOiAzMH0sXG4gICAgICAgICAgICB7bmFtZTogJ01heScsIHNob3J0X25hbWU6ICdNYXknLCBudW1lcmljOiAnMDUnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ0p1bmUnLCBzaG9ydF9uYW1lOiAnSnVuJywgbnVtZXJpYzogJzA2JywgZGF5czogMzB9LFxuICAgICAgICAgICAge25hbWU6ICdKdWx5Jywgc2hvcnRfbmFtZTogJ0p1bCcsIG51bWVyaWM6ICcwNycsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXVndXN0Jywgc2hvcnRfbmFtZTogJ0F1ZycsIG51bWVyaWM6ICcwOCcsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU2VwdGVtYmVyJywgc2hvcnRfbmFtZTogJ1NlcCcsIG51bWVyaWM6ICcwOScsIGRheXM6IDMwfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT2N0b2JlcicsIHNob3J0X25hbWU6ICdPY3QnLCBudW1lcmljOiAnMTAnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ05vdmVtYmVyJywgc2hvcnRfbmFtZTogJ05vdicsIG51bWVyaWM6ICcxMScsIGRheXM6IDMwfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRGVjZW1iZXInLCBzaG9ydF9uYW1lOiAnRGVjJywgbnVtZXJpYzogJzEyJywgZGF5czogMzF9XG4gICAgICAgIF0sXG5cbiAgICAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYW5rX2NhcmRfbnVtYmVyI0lzc3Vlcl9pZGVudGlmaWNhdGlvbl9udW1iZXJfLjI4SUlOLjI5XG4gICAgICAgIGNjX3R5cGVzOiBbXG4gICAgICAgICAgICB7bmFtZTogXCJBbWVyaWNhbiBFeHByZXNzXCIsIHNob3J0X25hbWU6ICdhbWV4JywgcHJlZml4OiAnMzQnLCBsZW5ndGg6IDE1fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkJhbmtjYXJkXCIsIHNob3J0X25hbWU6ICdiYW5rY2FyZCcsIHByZWZpeDogJzU2MTAnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkNoaW5hIFVuaW9uUGF5XCIsIHNob3J0X25hbWU6ICdjaGluYXVuaW9uJywgcHJlZml4OiAnNjInLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIENhcnRlIEJsYW5jaGVcIiwgc2hvcnRfbmFtZTogJ2RjY2FydGUnLCBwcmVmaXg6ICczMDAnLCBsZW5ndGg6IDE0fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIGVuUm91dGVcIiwgc2hvcnRfbmFtZTogJ2RjZW5yb3V0ZScsIHByZWZpeDogJzIwMTQnLCBsZW5ndGg6IDE1fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIEludGVybmF0aW9uYWxcIiwgc2hvcnRfbmFtZTogJ2RjaW50bCcsIHByZWZpeDogJzM2JywgbGVuZ3RoOiAxNH0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaW5lcnMgQ2x1YiBVbml0ZWQgU3RhdGVzICYgQ2FuYWRhXCIsIHNob3J0X25hbWU6ICdkY3VzYycsIHByZWZpeDogJzU0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaXNjb3ZlciBDYXJkXCIsIHNob3J0X25hbWU6ICdkaXNjb3ZlcicsIHByZWZpeDogJzYwMTEnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkluc3RhUGF5bWVudFwiLCBzaG9ydF9uYW1lOiAnaW5zdGFwYXknLCBwcmVmaXg6ICc2MzcnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkpDQlwiLCBzaG9ydF9uYW1lOiAnamNiJywgcHJlZml4OiAnMzUyOCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiTGFzZXJcIiwgc2hvcnRfbmFtZTogJ2xhc2VyJywgcHJlZml4OiAnNjMwNCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiTWFlc3Ryb1wiLCBzaG9ydF9uYW1lOiAnbWFlc3RybycsIHByZWZpeDogJzUwMTgnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIk1hc3RlcmNhcmRcIiwgc2hvcnRfbmFtZTogJ21jJywgcHJlZml4OiAnNTEnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIlNvbG9cIiwgc2hvcnRfbmFtZTogJ3NvbG8nLCBwcmVmaXg6ICc2MzM0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJTd2l0Y2hcIiwgc2hvcnRfbmFtZTogJ3N3aXRjaCcsIHByZWZpeDogJzQ5MDMnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIlZpc2FcIiwgc2hvcnRfbmFtZTogJ3Zpc2EnLCBwcmVmaXg6ICc0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJWaXNhIEVsZWN0cm9uXCIsIHNob3J0X25hbWU6ICdlbGVjdHJvbicsIHByZWZpeDogJzQwMjYnLCBsZW5ndGg6IDE2fVxuICAgICAgICBdLFxuXG4gICAgICAgIC8vcmV0dXJuIGFsbCB3b3JsZCBjdXJyZW5jeSBieSBJU08gNDIxN1xuICAgICAgICBjdXJyZW5jeV90eXBlczogW1xuICAgICAgICAgICAgeydjb2RlJyA6ICdBRUQnLCAnbmFtZScgOiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMgRGlyaGFtJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FGTicsICduYW1lJyA6ICdBZmdoYW5pc3RhbiBBZmdoYW5pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FMTCcsICduYW1lJyA6ICdBbGJhbmlhIExlayd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBTUQnLCAnbmFtZScgOiAnQXJtZW5pYSBEcmFtJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FORycsICduYW1lJyA6ICdOZXRoZXJsYW5kcyBBbnRpbGxlcyBHdWlsZGVyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FPQScsICduYW1lJyA6ICdBbmdvbGEgS3dhbnphJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FSUycsICduYW1lJyA6ICdBcmdlbnRpbmEgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBVUQnLCAnbmFtZScgOiAnQXVzdHJhbGlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBV0cnLCAnbmFtZScgOiAnQXJ1YmEgR3VpbGRlcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBWk4nLCAnbmFtZScgOiAnQXplcmJhaWphbiBOZXcgTWFuYXQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkFNJywgJ25hbWUnIDogJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEgQ29udmVydGlibGUgTWFya2EnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkJEJywgJ25hbWUnIDogJ0JhcmJhZG9zIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCRFQnLCAnbmFtZScgOiAnQmFuZ2xhZGVzaCBUYWthJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JHTicsICduYW1lJyA6ICdCdWxnYXJpYSBMZXYnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkhEJywgJ25hbWUnIDogJ0JhaHJhaW4gRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQklGJywgJ25hbWUnIDogJ0J1cnVuZGkgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQk1EJywgJ25hbWUnIDogJ0Jlcm11ZGEgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JORCcsICduYW1lJyA6ICdCcnVuZWkgRGFydXNzYWxhbSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQk9CJywgJ25hbWUnIDogJ0JvbGl2aWEgQm9saXZpYW5vJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JSTCcsICduYW1lJyA6ICdCcmF6aWwgUmVhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCU0QnLCAnbmFtZScgOiAnQmFoYW1hcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQlROJywgJ25hbWUnIDogJ0JodXRhbiBOZ3VsdHJ1bSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCV1AnLCAnbmFtZScgOiAnQm90c3dhbmEgUHVsYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCWVInLCAnbmFtZScgOiAnQmVsYXJ1cyBSdWJsZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCWkQnLCAnbmFtZScgOiAnQmVsaXplIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDQUQnLCAnbmFtZScgOiAnQ2FuYWRhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDREYnLCAnbmFtZScgOiAnQ29uZ28vS2luc2hhc2EgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ0hGJywgJ25hbWUnIDogJ1N3aXR6ZXJsYW5kIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NMUCcsICduYW1lJyA6ICdDaGlsZSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NOWScsICduYW1lJyA6ICdDaGluYSBZdWFuIFJlbm1pbmJpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NPUCcsICduYW1lJyA6ICdDb2xvbWJpYSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NSQycsICduYW1lJyA6ICdDb3N0YSBSaWNhIENvbG9uJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NVQycsICduYW1lJyA6ICdDdWJhIENvbnZlcnRpYmxlIFBlc28nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ1VQJywgJ25hbWUnIDogJ0N1YmEgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDVkUnLCAnbmFtZScgOiAnQ2FwZSBWZXJkZSBFc2N1ZG8nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ1pLJywgJ25hbWUnIDogJ0N6ZWNoIFJlcHVibGljIEtvcnVuYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdESkYnLCAnbmFtZScgOiAnRGppYm91dGkgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnREtLJywgJ25hbWUnIDogJ0Rlbm1hcmsgS3JvbmUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnRE9QJywgJ25hbWUnIDogJ0RvbWluaWNhbiBSZXB1YmxpYyBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0RaRCcsICduYW1lJyA6ICdBbGdlcmlhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0VHUCcsICduYW1lJyA6ICdFZ3lwdCBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFUk4nLCAnbmFtZScgOiAnRXJpdHJlYSBOYWtmYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFVEInLCAnbmFtZScgOiAnRXRoaW9waWEgQmlycid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFVVInLCAnbmFtZScgOiAnRXVybyBNZW1iZXIgQ291bnRyaWVzJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0ZKRCcsICduYW1lJyA6ICdGaWppIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdGS1AnLCAnbmFtZScgOiAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dCUCcsICduYW1lJyA6ICdVbml0ZWQgS2luZ2RvbSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHRUwnLCAnbmFtZScgOiAnR2VvcmdpYSBMYXJpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dHUCcsICduYW1lJyA6ICdHdWVybnNleSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHSFMnLCAnbmFtZScgOiAnR2hhbmEgQ2VkaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHSVAnLCAnbmFtZScgOiAnR2licmFsdGFyIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dNRCcsICduYW1lJyA6ICdHYW1iaWEgRGFsYXNpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dORicsICduYW1lJyA6ICdHdWluZWEgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnR1RRJywgJ25hbWUnIDogJ0d1YXRlbWFsYSBRdWV0emFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dZRCcsICduYW1lJyA6ICdHdXlhbmEgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hLRCcsICduYW1lJyA6ICdIb25nIEtvbmcgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hOTCcsICduYW1lJyA6ICdIb25kdXJhcyBMZW1waXJhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hSSycsICduYW1lJyA6ICdDcm9hdGlhIEt1bmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSFRHJywgJ25hbWUnIDogJ0hhaXRpIEdvdXJkZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdIVUYnLCAnbmFtZScgOiAnSHVuZ2FyeSBGb3JpbnQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSURSJywgJ25hbWUnIDogJ0luZG9uZXNpYSBSdXBpYWgnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSUxTJywgJ25hbWUnIDogJ0lzcmFlbCBTaGVrZWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSU1QJywgJ25hbWUnIDogJ0lzbGUgb2YgTWFuIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lOUicsICduYW1lJyA6ICdJbmRpYSBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJUUQnLCAnbmFtZScgOiAnSXJhcSBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJUlInLCAnbmFtZScgOiAnSXJhbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lTSycsICduYW1lJyA6ICdJY2VsYW5kIEtyb25hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pFUCcsICduYW1lJyA6ICdKZXJzZXkgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSk1EJywgJ25hbWUnIDogJ0phbWFpY2EgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pPRCcsICduYW1lJyA6ICdKb3JkYW4gRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSlBZJywgJ25hbWUnIDogJ0phcGFuIFllbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLRVMnLCAnbmFtZScgOiAnS2VueWEgU2hpbGxpbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS0dTJywgJ25hbWUnIDogJ0t5cmd5enN0YW4gU29tJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tIUicsICduYW1lJyA6ICdDYW1ib2RpYSBSaWVsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tNRicsICduYW1lJyA6ICdDb21vcm9zIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tQVycsICduYW1lJyA6ICdLb3JlYSAoTm9ydGgpIFdvbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLUlcnLCAnbmFtZScgOiAnS29yZWEgKFNvdXRoKSBXb24nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS1dEJywgJ25hbWUnIDogJ0t1d2FpdCBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLWUQnLCAnbmFtZScgOiAnQ2F5bWFuIElzbGFuZHMgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0taVCcsICduYW1lJyA6ICdLYXpha2hzdGFuIFRlbmdlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xBSycsICduYW1lJyA6ICdMYW9zIEtpcCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMQlAnLCAnbmFtZScgOiAnTGViYW5vbiBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMS1InLCAnbmFtZScgOiAnU3JpIExhbmthIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xSRCcsICduYW1lJyA6ICdMaWJlcmlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMU0wnLCAnbmFtZScgOiAnTGVzb3RobyBMb3RpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xUTCcsICduYW1lJyA6ICdMaXRodWFuaWEgTGl0YXMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTFlEJywgJ25hbWUnIDogJ0xpYnlhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01BRCcsICduYW1lJyA6ICdNb3JvY2NvIERpcmhhbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNREwnLCAnbmFtZScgOiAnTW9sZG92YSBMZXUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTUdBJywgJ25hbWUnIDogJ01hZGFnYXNjYXIgQXJpYXJ5J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01LRCcsICduYW1lJyA6ICdNYWNlZG9uaWEgRGVuYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTU1LJywgJ25hbWUnIDogJ015YW5tYXIgKEJ1cm1hKSBLeWF0J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01OVCcsICduYW1lJyA6ICdNb25nb2xpYSBUdWdocmlrJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01PUCcsICduYW1lJyA6ICdNYWNhdSBQYXRhY2EnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTVJPJywgJ25hbWUnIDogJ01hdXJpdGFuaWEgT3VndWl5YSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNVVInLCAnbmFtZScgOiAnTWF1cml0aXVzIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01WUicsICduYW1lJyA6ICdNYWxkaXZlcyAoTWFsZGl2ZSBJc2xhbmRzKSBSdWZpeWFhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01XSycsICduYW1lJyA6ICdNYWxhd2kgS3dhY2hhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01YTicsICduYW1lJyA6ICdNZXhpY28gUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNWVInLCAnbmFtZScgOiAnTWFsYXlzaWEgUmluZ2dpdCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNWk4nLCAnbmFtZScgOiAnTW96YW1iaXF1ZSBNZXRpY2FsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ05BRCcsICduYW1lJyA6ICdOYW1pYmlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOR04nLCAnbmFtZScgOiAnTmlnZXJpYSBOYWlyYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOSU8nLCAnbmFtZScgOiAnTmljYXJhZ3VhIENvcmRvYmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTk9LJywgJ25hbWUnIDogJ05vcndheSBLcm9uZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOUFInLCAnbmFtZScgOiAnTmVwYWwgUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTlpEJywgJ25hbWUnIDogJ05ldyBaZWFsYW5kIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdPTVInLCAnbmFtZScgOiAnT21hbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BBQicsICduYW1lJyA6ICdQYW5hbWEgQmFsYm9hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BFTicsICduYW1lJyA6ICdQZXJ1IE51ZXZvIFNvbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQR0snLCAnbmFtZScgOiAnUGFwdWEgTmV3IEd1aW5lYSBLaW5hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BIUCcsICduYW1lJyA6ICdQaGlsaXBwaW5lcyBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BLUicsICduYW1lJyA6ICdQYWtpc3RhbiBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQTE4nLCAnbmFtZScgOiAnUG9sYW5kIFpsb3R5J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BZRycsICduYW1lJyA6ICdQYXJhZ3VheSBHdWFyYW5pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1FBUicsICduYW1lJyA6ICdRYXRhciBSaXlhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdST04nLCAnbmFtZScgOiAnUm9tYW5pYSBOZXcgTGV1J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1JTRCcsICduYW1lJyA6ICdTZXJiaWEgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnUlVCJywgJ25hbWUnIDogJ1J1c3NpYSBSdWJsZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdSV0YnLCAnbmFtZScgOiAnUndhbmRhIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NBUicsICduYW1lJyA6ICdTYXVkaSBBcmFiaWEgUml5YWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0JEJywgJ25hbWUnIDogJ1NvbG9tb24gSXNsYW5kcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0NSJywgJ25hbWUnIDogJ1NleWNoZWxsZXMgUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0RHJywgJ25hbWUnIDogJ1N1ZGFuIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NFSycsICduYW1lJyA6ICdTd2VkZW4gS3JvbmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0dEJywgJ25hbWUnIDogJ1NpbmdhcG9yZSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0hQJywgJ25hbWUnIDogJ1NhaW50IEhlbGVuYSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTTEwnLCAnbmFtZScgOiAnU2llcnJhIExlb25lIExlb25lJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NPUycsICduYW1lJyA6ICdTb21hbGlhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NQTCcsICduYW1lJyA6ICdTZWJvcmdhIEx1aWdpbm8nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1JEJywgJ25hbWUnIDogJ1N1cmluYW1lIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTVEQnLCAnbmFtZScgOiAnU8OjbyBUb23DqSBhbmQgUHLDrW5jaXBlIERvYnJhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NWQycsICduYW1lJyA6ICdFbCBTYWx2YWRvciBDb2xvbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTWVAnLCAnbmFtZScgOiAnU3lyaWEgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1pMJywgJ25hbWUnIDogJ1N3YXppbGFuZCBMaWxhbmdlbmknfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVEhCJywgJ25hbWUnIDogJ1RoYWlsYW5kIEJhaHQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVEpTJywgJ25hbWUnIDogJ1RhamlraXN0YW4gU29tb25pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RNVCcsICduYW1lJyA6ICdUdXJrbWVuaXN0YW4gTWFuYXQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVE5EJywgJ25hbWUnIDogJ1R1bmlzaWEgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVE9QJywgJ25hbWUnIDogJ1RvbmdhIFBhXFwnYW5nYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUUlknLCAnbmFtZScgOiAnVHVya2V5IExpcmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVFREJywgJ25hbWUnIDogJ1RyaW5pZGFkIGFuZCBUb2JhZ28gRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RWRCcsICduYW1lJyA6ICdUdXZhbHUgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RXRCcsICduYW1lJyA6ICdUYWl3YW4gTmV3IERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUWlMnLCAnbmFtZScgOiAnVGFuemFuaWEgU2hpbGxpbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVUFIJywgJ25hbWUnIDogJ1VrcmFpbmUgSHJ5dm5pYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVR1gnLCAnbmFtZScgOiAnVWdhbmRhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1VTRCcsICduYW1lJyA6ICdVbml0ZWQgU3RhdGVzIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVWVUnLCAnbmFtZScgOiAnVXJ1Z3VheSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1VaUycsICduYW1lJyA6ICdVemJla2lzdGFuIFNvbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdWRUYnLCAnbmFtZScgOiAnVmVuZXp1ZWxhIEJvbGl2YXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVk5EJywgJ25hbWUnIDogJ1ZpZXQgTmFtIERvbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVlVWJywgJ25hbWUnIDogJ1ZhbnVhdHUgVmF0dSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdXU1QnLCAnbmFtZScgOiAnU2Ftb2EgVGFsYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYQUYnLCAnbmFtZScgOiAnQ29tbXVuYXV0w6kgRmluYW5jacOocmUgQWZyaWNhaW5lIChCRUFDKSBDRkEgRnJhbmMgQkVBQyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYQ0QnLCAnbmFtZScgOiAnRWFzdCBDYXJpYmJlYW4gRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1hEUicsICduYW1lJyA6ICdJbnRlcm5hdGlvbmFsIE1vbmV0YXJ5IEZ1bmQgKElNRikgU3BlY2lhbCBEcmF3aW5nIFJpZ2h0cyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYT0YnLCAnbmFtZScgOiAnQ29tbXVuYXV0w6kgRmluYW5jacOocmUgQWZyaWNhaW5lIChCQ0VBTykgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWFBGJywgJ25hbWUnIDogJ0NvbXB0b2lycyBGcmFuw6dhaXMgZHUgUGFjaWZpcXVlIChDRlApIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1lFUicsICduYW1lJyA6ICdZZW1lbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1pBUicsICduYW1lJyA6ICdTb3V0aCBBZnJpY2EgUmFuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdaTVcnLCAnbmFtZScgOiAnWmFtYmlhIEt3YWNoYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdaV0QnLCAnbmFtZScgOiAnWmltYmFid2UgRG9sbGFyJ31cbiAgICAgICAgXVxuICAgIH07XG5cbiAgICB2YXIgb19oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIG9fa2V5cyA9IChPYmplY3Qua2V5cyB8fCBmdW5jdGlvbihvYmopIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKG9faGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBfY29weU9iamVjdChzb3VyY2UsIHRhcmdldCkge1xuICAgICAgdmFyIGtleXMgPSBvX2tleXMoc291cmNlKTtcbiAgICAgIHZhciBrZXk7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XSB8fCB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBfY29weUFycmF5KHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHNvdXJjZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdGFyZ2V0W2ldID0gc291cmNlW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBfdGFyZ2V0KSB7XG4gICAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuICAgICAgICB2YXIgdGFyZ2V0ID0gX3RhcmdldCB8fCAoaXNBcnJheSA/IG5ldyBBcnJheShzb3VyY2UubGVuZ3RoKSA6IHt9KTtcblxuICAgICAgICBpZiAoaXNBcnJheSkge1xuICAgICAgICAgIF9jb3B5QXJyYXkoc291cmNlLCB0YXJnZXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9jb3B5T2JqZWN0KHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgZGF0YSBiYXNlZCBvbiBrZXkqKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIHJldHVybiBjb3B5T2JqZWN0KGRhdGFbbmFtZV0pO1xuICAgIH07XG5cbiAgICAvLyBNYWMgQWRkcmVzc1xuICAgIENoYW5jZS5wcm90b3R5cGUubWFjX2FkZHJlc3MgPSBmdW5jdGlvbihvcHRpb25zKXtcbiAgICAgICAgLy8gdHlwaWNhbGx5IG1hYyBhZGRyZXNzZXMgYXJlIHNlcGFyYXRlZCBieSBcIjpcIlxuICAgICAgICAvLyBob3dldmVyIHRoZXkgY2FuIGFsc28gYmUgc2VwYXJhdGVkIGJ5IFwiLVwiXG4gICAgICAgIC8vIHRoZSBuZXR3b3JrIHZhcmlhbnQgdXNlcyBhIGRvdCBldmVyeSBmb3VydGggYnl0ZVxuXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgaWYoIW9wdGlvbnMuc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zLnNlcGFyYXRvciA9ICBvcHRpb25zLm5ldHdvcmtWZXJzaW9uID8gXCIuXCIgOiBcIjpcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBtYWNfcG9vbD1cIkFCQ0RFRjEyMzQ1Njc4OTBcIixcbiAgICAgICAgICAgIG1hYyA9IFwiXCI7XG4gICAgICAgIGlmKCFvcHRpb25zLm5ldHdvcmtWZXJzaW9uKSB7XG4gICAgICAgICAgICBtYWMgPSB0aGlzLm4odGhpcy5zdHJpbmcsIDYsIHsgcG9vbDogbWFjX3Bvb2wsIGxlbmd0aDoyIH0pLmpvaW4ob3B0aW9ucy5zZXBhcmF0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFjID0gdGhpcy5uKHRoaXMuc3RyaW5nLCAzLCB7IHBvb2w6IG1hY19wb29sLCBsZW5ndGg6NCB9KS5qb2luKG9wdGlvbnMuc2VwYXJhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYWM7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubm9ybWFsID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttZWFuIDogMCwgZGV2IDogMX0pO1xuXG4gICAgICAgIC8vIFRoZSBNYXJzYWdsaWEgUG9sYXIgbWV0aG9kXG4gICAgICAgIHZhciBzLCB1LCB2LCBub3JtLFxuICAgICAgICAgICAgbWVhbiA9IG9wdGlvbnMubWVhbixcbiAgICAgICAgICAgIGRldiA9IG9wdGlvbnMuZGV2O1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIC8vIFUgYW5kIFYgYXJlIGZyb20gdGhlIHVuaWZvcm0gZGlzdHJpYnV0aW9uIG9uICgtMSwgMSlcbiAgICAgICAgICAgIHUgPSB0aGlzLnJhbmRvbSgpICogMiAtIDE7XG4gICAgICAgICAgICB2ID0gdGhpcy5yYW5kb20oKSAqIDIgLSAxO1xuXG4gICAgICAgICAgICBzID0gdSAqIHUgKyB2ICogdjtcbiAgICAgICAgfSB3aGlsZSAocyA+PSAxKTtcblxuICAgICAgICAvLyBDb21wdXRlIHRoZSBzdGFuZGFyZCBub3JtYWwgdmFyaWF0ZVxuICAgICAgICBub3JtID0gdSAqIE1hdGguc3FydCgtMiAqIE1hdGgubG9nKHMpIC8gcyk7XG5cbiAgICAgICAgLy8gU2hhcGUgYW5kIHNjYWxlXG4gICAgICAgIHJldHVybiBkZXYgKiBub3JtICsgbWVhbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5yYWRpbyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIC8vIEluaXRpYWwgTGV0dGVyIChUeXBpY2FsbHkgRGVzaWduYXRlZCBieSBTaWRlIG9mIE1pc3Npc3NpcHBpIFJpdmVyKVxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge3NpZGUgOiBcIj9cIn0pO1xuICAgICAgICB2YXIgZmwgPSBcIlwiO1xuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuc2lkZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgXCJlYXN0XCI6XG4gICAgICAgIGNhc2UgXCJlXCI6XG4gICAgICAgICAgICBmbCA9IFwiV1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ3ZXN0XCI6XG4gICAgICAgIGNhc2UgXCJ3XCI6XG4gICAgICAgICAgICBmbCA9IFwiS1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBmbCA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiBcIktXXCJ9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZsICsgdGhpcy5jaGFyYWN0ZXIoe2FscGhhOiB0cnVlLCBjYXNpbmc6IFwidXBwZXJcIn0pICtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3Rlcih7YWxwaGE6IHRydWUsIGNhc2luZzogXCJ1cHBlclwifSkgK1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KTtcbiAgICB9O1xuXG4gICAgLy8gU2V0IHRoZSBkYXRhIGFzIGtleSBhbmQgZGF0YSBvciB0aGUgZGF0YSBtYXBcbiAgICBDaGFuY2UucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBkYXRhW25hbWVdID0gdmFsdWVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YSA9IGNvcHlPYmplY3QobmFtZSwgZGF0YSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS50diA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhZGlvKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICAvLyBJRCBudW1iZXIgZm9yIEJyYXppbCBjb21wYW5pZXNcbiAgICBDaGFuY2UucHJvdG90eXBlLmNucGogPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5uKHRoaXMubmF0dXJhbCwgOCwgeyBtYXg6IDkgfSk7XG4gICAgICAgIHZhciBkMSA9IDIrbls3XSo2K25bNl0qNytuWzVdKjgrbls0XSo5K25bM10qMituWzJdKjMrblsxXSo0K25bMF0qNTtcbiAgICAgICAgZDEgPSAxMSAtIChkMSAlIDExKTtcbiAgICAgICAgaWYgKGQxPj0xMCl7XG4gICAgICAgICAgICBkMSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGQyID0gZDEqMiszK25bN10qNytuWzZdKjgrbls1XSo5K25bNF0qMituWzNdKjMrblsyXSo0K25bMV0qNStuWzBdKjY7XG4gICAgICAgIGQyID0gMTEgLSAoZDIgJSAxMSk7XG4gICAgICAgIGlmIChkMj49MTApe1xuICAgICAgICAgICAgZDIgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJytuWzBdK25bMV0rJy4nK25bMl0rblszXStuWzRdKycuJytuWzVdK25bNl0rbls3XSsnLzAwMDEtJytkMStkMjtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIE1pc2NlbGxhbmVvdXMgLS1cblxuICAgIENoYW5jZS5wcm90b3R5cGUubWVyc2VubmVfdHdpc3RlciA9IGZ1bmN0aW9uIChzZWVkKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWVyc2VubmVUd2lzdGVyKHNlZWQpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmJsdWVpbXBfbWQ1ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IEJsdWVJbXBNRDUoKTtcbiAgICB9O1xuXG4gICAgLy8gTWVyc2VubmUgVHdpc3RlciBmcm9tIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2JhbmtzZWFuLzMwMDQ5NFxuICAgIHZhciBNZXJzZW5uZVR3aXN0ZXIgPSBmdW5jdGlvbiAoc2VlZCkge1xuICAgICAgICBpZiAoc2VlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBrZXB0IHJhbmRvbSBudW1iZXIgc2FtZSBzaXplIGFzIHRpbWUgdXNlZCBwcmV2aW91c2x5IHRvIGVuc3VyZSBubyB1bmV4cGVjdGVkIHJlc3VsdHMgZG93bnN0cmVhbVxuICAgICAgICAgICAgc2VlZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpNYXRoLnBvdygxMCwxMykpO1xuICAgICAgICB9XG4gICAgICAgIC8qIFBlcmlvZCBwYXJhbWV0ZXJzICovXG4gICAgICAgIHRoaXMuTiA9IDYyNDtcbiAgICAgICAgdGhpcy5NID0gMzk3O1xuICAgICAgICB0aGlzLk1BVFJJWF9BID0gMHg5OTA4YjBkZjsgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuICAgICAgICB0aGlzLlVQUEVSX01BU0sgPSAweDgwMDAwMDAwOyAvKiBtb3N0IHNpZ25pZmljYW50IHctciBiaXRzICovXG4gICAgICAgIHRoaXMuTE9XRVJfTUFTSyA9IDB4N2ZmZmZmZmY7IC8qIGxlYXN0IHNpZ25pZmljYW50IHIgYml0cyAqL1xuXG4gICAgICAgIHRoaXMubXQgPSBuZXcgQXJyYXkodGhpcy5OKTsgLyogdGhlIGFycmF5IGZvciB0aGUgc3RhdGUgdmVjdG9yICovXG4gICAgICAgIHRoaXMubXRpID0gdGhpcy5OICsgMTsgLyogbXRpPT1OICsgMSBtZWFucyBtdFtOXSBpcyBub3QgaW5pdGlhbGl6ZWQgKi9cblxuICAgICAgICB0aGlzLmluaXRfZ2VucmFuZChzZWVkKTtcbiAgICB9O1xuXG4gICAgLyogaW5pdGlhbGl6ZXMgbXRbTl0gd2l0aCBhIHNlZWQgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLmluaXRfZ2VucmFuZCA9IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgIHRoaXMubXRbMF0gPSBzID4+PiAwO1xuICAgICAgICBmb3IgKHRoaXMubXRpID0gMTsgdGhpcy5tdGkgPCB0aGlzLk47IHRoaXMubXRpKyspIHtcbiAgICAgICAgICAgIHMgPSB0aGlzLm10W3RoaXMubXRpIC0gMV0gXiAodGhpcy5tdFt0aGlzLm10aSAtIDFdID4+PiAzMCk7XG4gICAgICAgICAgICB0aGlzLm10W3RoaXMubXRpXSA9ICgoKCgocyAmIDB4ZmZmZjAwMDApID4+PiAxNikgKiAxODEyNDMzMjUzKSA8PCAxNikgKyAocyAmIDB4MDAwMGZmZmYpICogMTgxMjQzMzI1MykgKyB0aGlzLm10aTtcbiAgICAgICAgICAgIC8qIFNlZSBLbnV0aCBUQU9DUCBWb2wyLiAzcmQgRWQuIFAuMTA2IGZvciBtdWx0aXBsaWVyLiAqL1xuICAgICAgICAgICAgLyogSW4gdGhlIHByZXZpb3VzIHZlcnNpb25zLCBNU0JzIG9mIHRoZSBzZWVkIGFmZmVjdCAgICovXG4gICAgICAgICAgICAvKiBvbmx5IE1TQnMgb2YgdGhlIGFycmF5IG10W10uICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC8qIDIwMDIvMDEvMDkgbW9kaWZpZWQgYnkgTWFrb3RvIE1hdHN1bW90byAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5tdFt0aGlzLm10aV0gPj4+PSAwO1xuICAgICAgICAgICAgLyogZm9yID4zMiBiaXQgbWFjaGluZXMgKi9cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBpbml0aWFsaXplIGJ5IGFuIGFycmF5IHdpdGggYXJyYXktbGVuZ3RoICovXG4gICAgLyogaW5pdF9rZXkgaXMgdGhlIGFycmF5IGZvciBpbml0aWFsaXppbmcga2V5cyAqL1xuICAgIC8qIGtleV9sZW5ndGggaXMgaXRzIGxlbmd0aCAqL1xuICAgIC8qIHNsaWdodCBjaGFuZ2UgZm9yIEMrKywgMjAwNC8yLzI2ICovXG4gICAgTWVyc2VubmVUd2lzdGVyLnByb3RvdHlwZS5pbml0X2J5X2FycmF5ID0gZnVuY3Rpb24gKGluaXRfa2V5LCBrZXlfbGVuZ3RoKSB7XG4gICAgICAgIHZhciBpID0gMSwgaiA9IDAsIGssIHM7XG4gICAgICAgIHRoaXMuaW5pdF9nZW5yYW5kKDE5NjUwMjE4KTtcbiAgICAgICAgayA9ICh0aGlzLk4gPiBrZXlfbGVuZ3RoID8gdGhpcy5OIDoga2V5X2xlbmd0aCk7XG4gICAgICAgIGZvciAoOyBrOyBrLS0pIHtcbiAgICAgICAgICAgIHMgPSB0aGlzLm10W2kgLSAxXSBeICh0aGlzLm10W2kgLSAxXSA+Pj4gMzApO1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA9ICh0aGlzLm10W2ldIF4gKCgoKChzICYgMHhmZmZmMDAwMCkgPj4+IDE2KSAqIDE2NjQ1MjUpIDw8IDE2KSArICgocyAmIDB4MDAwMGZmZmYpICogMTY2NDUyNSkpKSArIGluaXRfa2V5W2pdICsgajsgLyogbm9uIGxpbmVhciAqL1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA+Pj49IDA7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBqKys7XG4gICAgICAgICAgICBpZiAoaSA+PSB0aGlzLk4pIHsgdGhpcy5tdFswXSA9IHRoaXMubXRbdGhpcy5OIC0gMV07IGkgPSAxOyB9XG4gICAgICAgICAgICBpZiAoaiA+PSBrZXlfbGVuZ3RoKSB7IGogPSAwOyB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChrID0gdGhpcy5OIC0gMTsgazsgay0tKSB7XG4gICAgICAgICAgICBzID0gdGhpcy5tdFtpIC0gMV0gXiAodGhpcy5tdFtpIC0gMV0gPj4+IDMwKTtcbiAgICAgICAgICAgIHRoaXMubXRbaV0gPSAodGhpcy5tdFtpXSBeICgoKCgocyAmIDB4ZmZmZjAwMDApID4+PiAxNikgKiAxNTY2MDgzOTQxKSA8PCAxNikgKyAocyAmIDB4MDAwMGZmZmYpICogMTU2NjA4Mzk0MSkpIC0gaTsgLyogbm9uIGxpbmVhciAqL1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA+Pj49IDA7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBpZiAoaSA+PSB0aGlzLk4pIHsgdGhpcy5tdFswXSA9IHRoaXMubXRbdGhpcy5OIC0gMV07IGkgPSAxOyB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm10WzBdID0gMHg4MDAwMDAwMDsgLyogTVNCIGlzIDE7IGFzc3VyaW5nIG5vbi16ZXJvIGluaXRpYWwgYXJyYXkgKi9cbiAgICB9O1xuXG4gICAgLyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweGZmZmZmZmZmXS1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9pbnQzMiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHk7XG4gICAgICAgIHZhciBtYWcwMSA9IG5ldyBBcnJheSgweDAsIHRoaXMuTUFUUklYX0EpO1xuICAgICAgICAvKiBtYWcwMVt4XSA9IHggKiBNQVRSSVhfQSAgZm9yIHg9MCwxICovXG5cbiAgICAgICAgaWYgKHRoaXMubXRpID49IHRoaXMuTikgeyAvKiBnZW5lcmF0ZSBOIHdvcmRzIGF0IG9uZSB0aW1lICovXG4gICAgICAgICAgICB2YXIga2s7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm10aSA9PT0gdGhpcy5OICsgMSkgeyAgIC8qIGlmIGluaXRfZ2VucmFuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQsICovXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0X2dlbnJhbmQoNTQ4OSk7IC8qIGEgZGVmYXVsdCBpbml0aWFsIHNlZWQgaXMgdXNlZCAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChrayA9IDA7IGtrIDwgdGhpcy5OIC0gdGhpcy5NOyBraysrKSB7XG4gICAgICAgICAgICAgICAgeSA9ICh0aGlzLm10W2trXSZ0aGlzLlVQUEVSX01BU0spfCh0aGlzLm10W2trICsgMV0mdGhpcy5MT1dFUl9NQVNLKTtcbiAgICAgICAgICAgICAgICB0aGlzLm10W2trXSA9IHRoaXMubXRba2sgKyB0aGlzLk1dIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKDtrayA8IHRoaXMuTiAtIDE7IGtrKyspIHtcbiAgICAgICAgICAgICAgICB5ID0gKHRoaXMubXRba2tdJnRoaXMuVVBQRVJfTUFTSyl8KHRoaXMubXRba2sgKyAxXSZ0aGlzLkxPV0VSX01BU0spO1xuICAgICAgICAgICAgICAgIHRoaXMubXRba2tdID0gdGhpcy5tdFtrayArICh0aGlzLk0gLSB0aGlzLk4pXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeSA9ICh0aGlzLm10W3RoaXMuTiAtIDFdJnRoaXMuVVBQRVJfTUFTSyl8KHRoaXMubXRbMF0mdGhpcy5MT1dFUl9NQVNLKTtcbiAgICAgICAgICAgIHRoaXMubXRbdGhpcy5OIC0gMV0gPSB0aGlzLm10W3RoaXMuTSAtIDFdIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG5cbiAgICAgICAgICAgIHRoaXMubXRpID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHkgPSB0aGlzLm10W3RoaXMubXRpKytdO1xuXG4gICAgICAgIC8qIFRlbXBlcmluZyAqL1xuICAgICAgICB5IF49ICh5ID4+PiAxMSk7XG4gICAgICAgIHkgXj0gKHkgPDwgNykgJiAweDlkMmM1NjgwO1xuICAgICAgICB5IF49ICh5IDw8IDE1KSAmIDB4ZWZjNjAwMDA7XG4gICAgICAgIHkgXj0gKHkgPj4+IDE4KTtcblxuICAgICAgICByZXR1cm4geSA+Pj4gMDtcbiAgICB9O1xuXG4gICAgLyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweDdmZmZmZmZmXS1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9pbnQzMSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKSA+Pj4gMSk7XG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMV0tcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9yZWFsMSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpICogKDEuMCAvIDQyOTQ5NjcyOTUuMCk7XG4gICAgICAgIC8qIGRpdmlkZWQgYnkgMl4zMi0xICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSktcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUucmFuZG9tID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZW5yYW5kX2ludDMyKCkgKiAoMS4wIC8gNDI5NDk2NzI5Ni4wKTtcbiAgICAgICAgLyogZGl2aWRlZCBieSAyXjMyICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gKDAsMSktcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9yZWFsMyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKSArIDAuNSkgKiAoMS4wIC8gNDI5NDk2NzI5Ni4wKTtcbiAgICAgICAgLyogZGl2aWRlZCBieSAyXjMyICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSkgd2l0aCA1My1iaXQgcmVzb2x1dGlvbiovXG4gICAgTWVyc2VubmVUd2lzdGVyLnByb3RvdHlwZS5nZW5yYW5kX3JlczUzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgYSA9IHRoaXMuZ2VucmFuZF9pbnQzMigpPj4+NSwgYiA9IHRoaXMuZ2VucmFuZF9pbnQzMigpPj4+NjtcbiAgICAgICAgcmV0dXJuIChhICogNjcxMDg4NjQuMCArIGIpICogKDEuMCAvIDkwMDcxOTkyNTQ3NDA5OTIuMCk7XG4gICAgfTtcblxuICAgIC8vIEJsdWVJbXAgTUQ1IGhhc2hpbmcgYWxnb3JpdGhtIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2JsdWVpbXAvSmF2YVNjcmlwdC1NRDVcbiAgICB2YXIgQmx1ZUltcE1ENSA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuVkVSU0lPTiA9ICcxLjAuMSc7XG5cbiAgICAvKlxuICAgICogQWRkIGludGVnZXJzLCB3cmFwcGluZyBhdCAyXjMyLiBUaGlzIHVzZXMgMTYtYml0IG9wZXJhdGlvbnMgaW50ZXJuYWxseVxuICAgICogdG8gd29yayBhcm91bmQgYnVncyBpbiBzb21lIEpTIGludGVycHJldGVycy5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnNhZmVfYWRkID0gZnVuY3Rpb24gc2FmZV9hZGQoeCwgeSkge1xuICAgICAgICB2YXIgbHN3ID0gKHggJiAweEZGRkYpICsgKHkgJiAweEZGRkYpLFxuICAgICAgICAgICAgbXN3ID0gKHggPj4gMTYpICsgKHkgPj4gMTYpICsgKGxzdyA+PiAxNik7XG4gICAgICAgIHJldHVybiAobXN3IDw8IDE2KSB8IChsc3cgJiAweEZGRkYpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogQml0d2lzZSByb3RhdGUgYSAzMi1iaXQgbnVtYmVyIHRvIHRoZSBsZWZ0LlxuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuYml0X3JvbGwgPSBmdW5jdGlvbiAobnVtLCBjbnQpIHtcbiAgICAgICAgcmV0dXJuIChudW0gPDwgY250KSB8IChudW0gPj4+ICgzMiAtIGNudCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogVGhlc2UgZnVuY3Rpb25zIGltcGxlbWVudCB0aGUgZml2ZSBiYXNpYyBvcGVyYXRpb25zIHRoZSBhbGdvcml0aG0gdXNlcy5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNV9jbW4gPSBmdW5jdGlvbiAocSwgYSwgYiwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlX2FkZCh0aGlzLmJpdF9yb2xsKHRoaXMuc2FmZV9hZGQodGhpcy5zYWZlX2FkZChhLCBxKSwgdGhpcy5zYWZlX2FkZCh4LCB0KSksIHMpLCBiKTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNV9mZiA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1kNV9jbW4oKGIgJiBjKSB8ICgofmIpICYgZCksIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUubWQ1X2dnID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWQ1X2NtbigoYiAmIGQpIHwgKGMgJiAofmQpKSwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfaGggPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZDVfY21uKGIgXiBjIF4gZCwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfaWkgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZDVfY21uKGMgXiAoYiB8ICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENhbGN1bGF0ZSB0aGUgTUQ1IG9mIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHMsIGFuZCBhIGJpdCBsZW5ndGguXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5iaW5sX21kNSA9IGZ1bmN0aW9uICh4LCBsZW4pIHtcbiAgICAgICAgLyogYXBwZW5kIHBhZGRpbmcgKi9cbiAgICAgICAgeFtsZW4gPj4gNV0gfD0gMHg4MCA8PCAobGVuICUgMzIpO1xuICAgICAgICB4WygoKGxlbiArIDY0KSA+Pj4gOSkgPDwgNCkgKyAxNF0gPSBsZW47XG5cbiAgICAgICAgdmFyIGksIG9sZGEsIG9sZGIsIG9sZGMsIG9sZGQsXG4gICAgICAgICAgICBhID0gIDE3MzI1ODQxOTMsXG4gICAgICAgICAgICBiID0gLTI3MTczMzg3OSxcbiAgICAgICAgICAgIGMgPSAtMTczMjU4NDE5NCxcbiAgICAgICAgICAgIGQgPSAgMjcxNzMzODc4O1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSArPSAxNikge1xuICAgICAgICAgICAgb2xkYSA9IGE7XG4gICAgICAgICAgICBvbGRiID0gYjtcbiAgICAgICAgICAgIG9sZGMgPSBjO1xuICAgICAgICAgICAgb2xkZCA9IGQ7XG5cbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9mZihhLCBiLCBjLCBkLCB4W2ldLCAgICAgICA3LCAtNjgwODc2OTM2KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAgMV0sIDEyLCAtMzg5NTY0NTg2KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9mZihjLCBkLCBhLCBiLCB4W2kgKyAgMl0sIDE3LCAgNjA2MTA1ODE5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAgM10sIDIyLCAtMTA0NDUyNTMzMCk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgIDRdLCAgNywgLTE3NjQxODg5Nyk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgIDVdLCAxMiwgIDEyMDAwODA0MjYpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArICA2XSwgMTcsIC0xNDczMjMxMzQxKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAgN10sIDIyLCAtNDU3MDU5ODMpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArICA4XSwgIDcsICAxNzcwMDM1NDE2KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAgOV0sIDEyLCAtMTk1ODQxNDQxNyk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMTBdLCAxNywgLTQyMDYzKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAxMV0sIDIyLCAtMTk5MDQwNDE2Mik7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgMTJdLCAgNywgIDE4MDQ2MDM2ODIpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2ZmKGQsIGEsIGIsIGMsIHhbaSArIDEzXSwgMTIsIC00MDM0MTEwMSk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMTRdLCAxNywgLTE1MDIwMDIyOTApO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2ZmKGIsIGMsIGQsIGEsIHhbaSArIDE1XSwgMjIsICAxMjM2NTM1MzI5KTtcblxuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArICAxXSwgIDUsIC0xNjU3OTY1MTApO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArICA2XSwgIDksIC0xMDY5NTAxNjMyKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE0LCAgNjQzNzE3NzEzKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2ldLCAgICAgIDIwLCAtMzczODk3MzAyKTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyAgNV0sICA1LCAtNzAxNTU4NjkxKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyAxMF0sICA5LCAgMzgwMTYwODMpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTQsIC02NjA0NzgzMzUpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArICA0XSwgMjAsIC00MDU1Mzc4NDgpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArICA5XSwgIDUsICA1Njg0NDY0MzgpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArIDE0XSwgIDksIC0xMDE5ODAzNjkwKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAgM10sIDE0LCAtMTg3MzYzOTYxKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyAgOF0sIDIwLCAgMTE2MzUzMTUwMSk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZ2coYSwgYiwgYywgZCwgeFtpICsgMTNdLCAgNSwgLTE0NDQ2ODE0NjcpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArICAyXSwgIDksIC01MTQwMzc4NCk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZ2coYywgZCwgYSwgYiwgeFtpICsgIDddLCAxNCwgIDE3MzUzMjg0NzMpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArIDEyXSwgMjAsIC0xOTI2NjA3NzM0KTtcblxuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArICA1XSwgIDQsIC0zNzg1NTgpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArICA4XSwgMTEsIC0yMDIyNTc0NDYzKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE2LCAgMTgzOTAzMDU2Mik7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaGgoYiwgYywgZCwgYSwgeFtpICsgMTRdLCAyMywgLTM1MzA5NTU2KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAgMV0sICA0LCAtMTUzMDk5MjA2MCk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpICsgIDRdLCAxMSwgIDEyNzI4OTMzNTMpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArICA3XSwgMTYsIC0xNTU0OTc2MzIpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArIDEwXSwgMjMsIC0xMDk0NzMwNjQwKTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAxM10sICA0LCAgNjgxMjc5MTc0KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9oaChkLCBhLCBiLCBjLCB4W2ldLCAgICAgIDExLCAtMzU4NTM3MjIyKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAgM10sIDE2LCAtNzIyNTIxOTc5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAgNl0sIDIzLCAgNzYwMjkxODkpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArICA5XSwgIDQsIC02NDAzNjQ0ODcpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArIDEyXSwgMTEsIC00MjE4MTU4MzUpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTYsICA1MzA3NDI1MjApO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArICAyXSwgMjMsIC05OTUzMzg2NTEpO1xuXG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfaWkoYSwgYiwgYywgZCwgeFtpXSwgICAgICAgNiwgLTE5ODYzMDg0NCk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgIDddLCAxMCwgIDExMjY4OTE0MTUpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2lpKGMsIGQsIGEsIGIsIHhbaSArIDE0XSwgMTUsIC0xNDE2MzU0OTA1KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAgNV0sIDIxLCAtNTc0MzQwNTUpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArIDEyXSwgIDYsICAxNzAwNDg1NTcxKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9paShkLCBhLCBiLCBjLCB4W2kgKyAgM10sIDEwLCAtMTg5NDk4NjYwNik7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgMTBdLCAxNSwgLTEwNTE1MjMpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2lpKGIsIGMsIGQsIGEsIHhbaSArICAxXSwgMjEsIC0yMDU0OTIyNzk5KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9paShhLCBiLCBjLCBkLCB4W2kgKyAgOF0sICA2LCAgMTg3MzMxMzM1OSk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgMTVdLCAxMCwgLTMwNjExNzQ0KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAgNl0sIDE1LCAtMTU2MDE5ODM4MCk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaWkoYiwgYywgZCwgYSwgeFtpICsgMTNdLCAyMSwgIDEzMDkxNTE2NDkpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArICA0XSwgIDYsIC0xNDU1MjMwNzApO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArIDExXSwgMTAsIC0xMTIwMjEwMzc5KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAgMl0sIDE1LCAgNzE4Nzg3MjU5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAgOV0sIDIxLCAtMzQzNDg1NTUxKTtcblxuICAgICAgICAgICAgYSA9IHRoaXMuc2FmZV9hZGQoYSwgb2xkYSk7XG4gICAgICAgICAgICBiID0gdGhpcy5zYWZlX2FkZChiLCBvbGRiKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLnNhZmVfYWRkKGMsIG9sZGMpO1xuICAgICAgICAgICAgZCA9IHRoaXMuc2FmZV9hZGQoZCwgb2xkZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFthLCBiLCBjLCBkXTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENvbnZlcnQgYW4gYXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcyB0byBhIHN0cmluZ1xuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuYmlubDJyc3RyID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0cHV0ID0gJyc7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGggKiAzMjsgaSArPSA4KSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoaW5wdXRbaSA+PiA1XSA+Pj4gKGkgJSAzMikpICYgMHhGRik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENvbnZlcnQgYSByYXcgc3RyaW5nIHRvIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHNcbiAgICAqIENoYXJhY3RlcnMgPjI1NSBoYXZlIHRoZWlyIGhpZ2gtYnl0ZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucnN0cjJiaW5sID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0cHV0ID0gW107XG4gICAgICAgIG91dHB1dFsoaW5wdXQubGVuZ3RoID4+IDIpIC0gMV0gPSB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBvdXRwdXQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIG91dHB1dFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGlucHV0Lmxlbmd0aCAqIDg7IGkgKz0gOCkge1xuICAgICAgICAgICAgb3V0cHV0W2kgPj4gNV0gfD0gKGlucHV0LmNoYXJDb2RlQXQoaSAvIDgpICYgMHhGRikgPDwgKGkgJSAzMik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENhbGN1bGF0ZSB0aGUgTUQ1IG9mIGEgcmF3IHN0cmluZ1xuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucnN0cl9tZDUgPSBmdW5jdGlvbiAocykge1xuICAgICAgICByZXR1cm4gdGhpcy5iaW5sMnJzdHIodGhpcy5iaW5sX21kNSh0aGlzLnJzdHIyYmlubChzKSwgcy5sZW5ndGggKiA4KSk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDYWxjdWxhdGUgdGhlIEhNQUMtTUQ1LCBvZiBhIGtleSBhbmQgc29tZSBkYXRhIChyYXcgc3RyaW5ncylcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHJfaG1hY19tZDUgPSBmdW5jdGlvbiAoa2V5LCBkYXRhKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgYmtleSA9IHRoaXMucnN0cjJiaW5sKGtleSksXG4gICAgICAgICAgICBpcGFkID0gW10sXG4gICAgICAgICAgICBvcGFkID0gW10sXG4gICAgICAgICAgICBoYXNoO1xuICAgICAgICBpcGFkWzE1XSA9IG9wYWRbMTVdID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYmtleS5sZW5ndGggPiAxNikge1xuICAgICAgICAgICAgYmtleSA9IHRoaXMuYmlubF9tZDUoYmtleSwga2V5Lmxlbmd0aCAqIDgpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSArPSAxKSB7XG4gICAgICAgICAgICBpcGFkW2ldID0gYmtleVtpXSBeIDB4MzYzNjM2MzY7XG4gICAgICAgICAgICBvcGFkW2ldID0gYmtleVtpXSBeIDB4NUM1QzVDNUM7XG4gICAgICAgIH1cbiAgICAgICAgaGFzaCA9IHRoaXMuYmlubF9tZDUoaXBhZC5jb25jYXQodGhpcy5yc3RyMmJpbmwoZGF0YSkpLCA1MTIgKyBkYXRhLmxlbmd0aCAqIDgpO1xuICAgICAgICByZXR1cm4gdGhpcy5iaW5sMnJzdHIodGhpcy5iaW5sX21kNShvcGFkLmNvbmNhdChoYXNoKSwgNTEyICsgMTI4KSk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDb252ZXJ0IGEgcmF3IHN0cmluZyB0byBhIGhleCBzdHJpbmdcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHIyaGV4ID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBoZXhfdGFiID0gJzAxMjM0NTY3ODlhYmNkZWYnLFxuICAgICAgICAgICAgb3V0cHV0ID0gJycsXG4gICAgICAgICAgICB4LFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICB4ID0gaW5wdXQuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIG91dHB1dCArPSBoZXhfdGFiLmNoYXJBdCgoeCA+Pj4gNCkgJiAweDBGKSArXG4gICAgICAgICAgICAgICAgaGV4X3RhYi5jaGFyQXQoeCAmIDB4MEYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBFbmNvZGUgYSBzdHJpbmcgYXMgdXRmLThcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnN0cjJyc3RyX3V0ZjggPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogVGFrZSBzdHJpbmcgYXJndW1lbnRzIGFuZCByZXR1cm4gZWl0aGVyIHJhdyBvciBoZXggZW5jb2RlZCBzdHJpbmdzXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5yYXdfbWQ1ID0gZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cl9tZDUodGhpcy5zdHIycnN0cl91dGY4KHMpKTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLmhleF9tZDUgPSBmdW5jdGlvbiAocykge1xuICAgICAgICByZXR1cm4gdGhpcy5yc3RyMmhleCh0aGlzLnJhd19tZDUocykpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucmF3X2htYWNfbWQ1ID0gZnVuY3Rpb24gKGssIGQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cl9obWFjX21kNSh0aGlzLnN0cjJyc3RyX3V0ZjgoayksIHRoaXMuc3RyMnJzdHJfdXRmOChkKSk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5oZXhfaG1hY19tZDUgPSBmdW5jdGlvbiAoaywgZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yc3RyMmhleCh0aGlzLnJhd19obWFjX21kNShrLCBkKSk7XG4gICAgfTtcblxuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNSA9IGZ1bmN0aW9uIChzdHJpbmcsIGtleSwgcmF3KSB7XG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICBpZiAoIXJhdykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhleF9tZDUoc3RyaW5nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmF3X21kNShzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhleF9obWFjX21kNShrZXksIHN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5yYXdfaG1hY19tZDUoa2V5LCBzdHJpbmcpO1xuICAgIH07XG5cbiAgICAvLyBDb21tb25KUyBtb2R1bGVcbiAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gQ2hhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydHMuQ2hhbmNlID0gQ2hhbmNlO1xuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBBTUQgbW9kdWxlXG4gICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoW10sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBDaGFuY2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZXJlIGlzIGEgaW1wb3J0c1NjcmlwcyBvYmplY3QgZGVmaW5lIGNoYW5jZSBmb3Igd29ya2VyXG4gICAgaWYgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjaGFuY2UgPSBuZXcgQ2hhbmNlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgYSB3aW5kb3cgb2JqZWN0LCB0aGF0IGF0IGxlYXN0IGhhcyBhIGRvY3VtZW50IHByb3BlcnR5LFxuICAgIC8vIGluc3RhbnRpYXRlIGFuZCBkZWZpbmUgY2hhbmNlIG9uIHRoZSB3aW5kb3dcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygd2luZG93LmRvY3VtZW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHdpbmRvdy5DaGFuY2UgPSBDaGFuY2U7XG4gICAgICAgIHdpbmRvdy5jaGFuY2UgPSBuZXcgQ2hhbmNlKCk7XG4gICAgfVxufSkoKTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyICQgPSByZXF1aXJlKCcuL3V0aWwvdXJpLWhlbHBlcnMnKTtcblxuJC5maW5kQnlSZWYgPSByZXF1aXJlKCcuL3V0aWwvZmluZC1yZWZlcmVuY2UnKTtcbiQucmVzb2x2ZVNjaGVtYSA9IHJlcXVpcmUoJy4vdXRpbC9yZXNvbHZlLXNjaGVtYScpO1xuJC5ub3JtYWxpemVTY2hlbWEgPSByZXF1aXJlKCcuL3V0aWwvbm9ybWFsaXplLXNjaGVtYScpO1xuXG52YXIgaW5zdGFuY2UgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiAkcmVmKGZha2Vyb290LCBzY2hlbWEsIHJlZnMsIGV4KSB7XG4gICAgaWYgKHR5cGVvZiBmYWtlcm9vdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGV4ID0gcmVmcztcbiAgICAgIHJlZnMgPSBzY2hlbWE7XG4gICAgICBzY2hlbWEgPSBmYWtlcm9vdDtcbiAgICAgIGZha2Vyb290ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgZXggPSAhIXJlZnM7XG4gICAgICByZWZzID0gW107XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHVzaChyZWYpIHtcbiAgICAgIGlmICh0eXBlb2YgcmVmLmlkID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YXIgaWQgPSAkLnJlc29sdmVVUkwoZmFrZXJvb3QsIHJlZi5pZCkucmVwbGFjZSgvXFwvIz8kLywgJycpO1xuXG4gICAgICAgIGlmIChpZC5pbmRleE9mKCcjJykgPiAtMSkge1xuICAgICAgICAgIHZhciBwYXJ0cyA9IGlkLnNwbGl0KCcjJyk7XG5cbiAgICAgICAgICBpZiAocGFydHNbMV0uY2hhckF0KCkgPT09ICcvJykge1xuICAgICAgICAgICAgaWQgPSBwYXJ0c1swXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWQgPSBwYXJ0c1sxXSB8fCBwYXJ0c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISRyZWYucmVmc1tpZF0pIHtcbiAgICAgICAgICAkcmVmLnJlZnNbaWRdID0gcmVmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVmcy5jb25jYXQoW3NjaGVtYV0pLmZvckVhY2goZnVuY3Rpb24ocmVmKSB7XG4gICAgICBzY2hlbWEgPSAkLm5vcm1hbGl6ZVNjaGVtYShmYWtlcm9vdCwgcmVmLCBwdXNoKTtcbiAgICAgIHB1c2goc2NoZW1hKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAkLnJlc29sdmVTY2hlbWEoc2NoZW1hLCAkcmVmLnJlZnMsIGV4KTtcbiAgfVxuXG4gICRyZWYucmVmcyA9IHt9O1xuICAkcmVmLnV0aWwgPSAkO1xuXG4gIHJldHVybiAkcmVmO1xufTtcblxuaW5zdGFuY2UudXRpbCA9ICQ7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjbG9uZSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqKSB7XG4gIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHZhciB0YXJnZXQgPSBBcnJheS5pc0FycmF5KG9iaikgPyBbXSA6IHt9O1xuXG4gIGZ1bmN0aW9uIGNvcHkoa2V5LCB2YWx1ZSkge1xuICAgIHRhcmdldFtrZXldID0gY2xvbmUodmFsdWUpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgIG9iai5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgIGNvcHkoa2V5LCB2YWx1ZSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgY29weShrZXksIG9ialtrZXldKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgJCA9IHJlcXVpcmUoJy4vdXJpLWhlbHBlcnMnKTtcblxuZnVuY3Rpb24gZ2V0KG9iaiwgcGF0aCkge1xuICB2YXIgaGFzaCA9IHBhdGguc3BsaXQoJyMnKVsxXTtcblxuICB2YXIgcGFydHMgPSBoYXNoLnNwbGl0KCcvJykuc2xpY2UoMSk7XG5cbiAgd2hpbGUgKHBhcnRzLmxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQocGFydHMuc2hpZnQoKSkucmVwbGFjZSgvfjEvZywgJy8nKS5yZXBsYWNlKC9+MC9nLCAnficpO1xuXG4gICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVmZXJlbmNlIG5vdCBmb3VuZDogJyArIHBhdGgpO1xuICAgIH1cblxuICAgIG9iaiA9IG9ialtrZXldO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxudmFyIGZpbmQgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlkLCByZWZzKSB7XG4gIHZhciB0YXJnZXQgPSByZWZzW2lkXSB8fCByZWZzW2lkLnNwbGl0KCcjJylbMV1dIHx8IHJlZnNbJC5nZXREb2N1bWVudFVSSShpZCldO1xuXG4gIGlmICh0YXJnZXQpIHtcbiAgICB0YXJnZXQgPSBpZC5pbmRleE9mKCcjLycpID4gLTEgPyBnZXQodGFyZ2V0LCBpZCkgOiB0YXJnZXQ7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIga2V5IGluIHJlZnMpIHtcbiAgICAgIGlmICgkLnJlc29sdmVVUkwocmVmc1trZXldLmlkLCBpZCkgPT09IHJlZnNba2V5XS5pZCkge1xuICAgICAgICB0YXJnZXQgPSByZWZzW2tleV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZWZlcmVuY2Ugbm90IGZvdW5kOiAnICsgaWQpO1xuICB9XG5cbiAgd2hpbGUgKHRhcmdldC4kcmVmKSB7XG4gICAgdGFyZ2V0ID0gZmluZCh0YXJnZXQuJHJlZiwgcmVmcyk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyICQgPSByZXF1aXJlKCcuL3VyaS1oZWxwZXJzJyk7XG5cbnZhciBjbG9uZU9iaiA9IHJlcXVpcmUoJy4vY2xvbmUtb2JqJyk7XG5cbnZhciBTQ0hFTUFfVVJJID0gW1xuICAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWEjJyxcbiAgJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIydcbl07XG5cbmZ1bmN0aW9uIGV4cGFuZChvYmosIHBhcmVudCwgY2FsbGJhY2spIHtcbiAgaWYgKG9iaikge1xuICAgIHZhciBpZCA9IHR5cGVvZiBvYmouaWQgPT09ICdzdHJpbmcnID8gb2JqLmlkIDogJyMnO1xuXG4gICAgaWYgKCEkLmlzVVJMKGlkKSkge1xuICAgICAgaWQgPSAkLnJlc29sdmVVUkwocGFyZW50ID09PSBpZCA/IG51bGwgOiBwYXJlbnQsIGlkKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iai4kcmVmID09PSAnc3RyaW5nJyAmJiAhJC5pc1VSTChvYmouJHJlZikpIHtcbiAgICAgIG9iai4kcmVmID0gJC5yZXNvbHZlVVJMKGlkLCBvYmouJHJlZik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvYmouaWQgPSBwYXJlbnQgPSBpZDtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhKGtleSA9PT0gJ2VudW0nIHx8IGtleSA9PT0gJ3JlcXVpcmVkJykpIHtcbiAgICAgIGV4cGFuZCh2YWx1ZSwgcGFyZW50LCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNhbGxiYWNrKG9iaik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihmYWtlcm9vdCwgc2NoZW1hLCBwdXNoKSB7XG4gIGlmICh0eXBlb2YgZmFrZXJvb3QgPT09ICdvYmplY3QnKSB7XG4gICAgcHVzaCA9IHNjaGVtYTtcbiAgICBzY2hlbWEgPSBmYWtlcm9vdDtcbiAgICBmYWtlcm9vdCA9IG51bGw7XG4gIH1cblxuICB2YXIgYmFzZSA9IGZha2Vyb290IHx8ICcnLFxuICAgICAgY29weSA9IGNsb25lT2JqKHNjaGVtYSk7XG5cbiAgaWYgKGNvcHkuJHNjaGVtYSAmJiBTQ0hFTUFfVVJJLmluZGV4T2YoY29weS4kc2NoZW1hKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHNjaGVtYSB2ZXJzaW9uICh2NCBvbmx5KScpO1xuICB9XG5cbiAgYmFzZSA9ICQucmVzb2x2ZVVSTChjb3B5LiRzY2hlbWEgfHwgU0NIRU1BX1VSSVswXSwgYmFzZSk7XG5cbiAgZXhwYW5kKGNvcHksICQucmVzb2x2ZVVSTChjb3B5LmlkLCBiYXNlKSwgcHVzaCk7XG5cbiAgLy8gVE9ETzogcmVxdWlyZWQgZm9yIGpzb24tcG9pbnRlciB0byBpdHNlbGY/XG4gIGNvcHkuaWQgPSBjb3B5LmlkIHx8ICcjJztcblxuICByZXR1cm4gY29weTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciAkID0gcmVxdWlyZSgnLi91cmktaGVscGVycycpO1xuXG52YXIgZmluZCA9IHJlcXVpcmUoJy4vZmluZC1yZWZlcmVuY2UnKTtcblxuZnVuY3Rpb24gY2xvbmUob2JqLCByZWZzLCBjaGlsZCwgZXhwYW5kKSB7XG4gIHZhciBjb3B5ID0ge307XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGNvcHkgPSBbXTtcbiAgfVxuXG4gIGlmICgkLmlzVVJMKG9iai4kcmVmKSkge1xuICAgIHZhciBmaXhlZCA9IGZpbmQob2JqLiRyZWYsIHJlZnMpO1xuXG4gICAgaWYgKGZpeGVkICYmIGV4cGFuZCkge1xuICAgICAgdmFyIGlkID0gdHlwZW9mIGZpeGVkLmlkID09PSAnc3RyaW5nJyA/IGZpeGVkLmlkIDogJyMnO1xuXG4gICAgICBvYmogPSBmaXhlZDtcblxuICAgICAgaWYgKG9iai4kcmVmICE9PSBpZCkge1xuICAgICAgICByZXR1cm4gY2xvbmUoZml4ZWQsIHJlZnMsIHRydWUsIGV4cGFuZCk7XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSBvYmouJHJlZjtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhKGtleSA9PT0gJ2VudW0nIHx8IGtleSA9PT0gJ3JlcXVpcmVkJykpIHtcbiAgICAgIGNvcHlba2V5XSA9IGNsb25lKHZhbHVlLCByZWZzLCB0cnVlLCBleHBhbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3B5W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiBzZXJpb3VzbHkgYXJlIHJlcXVpcmVkIG9yIG5vdD9cbiAgaWYgKGNoaWxkKSB7XG4gICAgaWYgKHR5cGVvZiBjb3B5LiRzY2hlbWEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZWxldGUgY29weS4kc2NoZW1hO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29weS5pZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRlbGV0ZSBjb3B5LmlkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iaiwgcmVmcywgZXhwYW5kKSB7XG4gIHJldHVybiBjbG9uZShvYmosIHJlZnMsIGZhbHNlLCBleHBhbmQpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGp0MzMvZWZiMmYxMTM0YmFiOTg2MTEzZmRcblxuZnVuY3Rpb24gVVJMVXRpbHModXJsLCBiYXNlVVJMKSB7XG4gIHZhciBtID0gU3RyaW5nKHVybCkucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpLm1hdGNoKC9eKFteOlxcLz8jXSs6KT8oPzpcXC9cXC8oPzooW146QF0qKSg/OjooW146QF0qKSk/QCk/KChbXjpcXC8/I10qKSg/OjooXFxkKikpPykpPyhbXj8jXSopKFxcP1teI10qKT8oI1tcXHNcXFNdKik/Lyk7XG4gIGlmICghbSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCk7XG4gIH1cbiAgdmFyIGhyZWYgPSBtWzBdIHx8ICcnO1xuICB2YXIgcHJvdG9jb2wgPSBtWzFdIHx8ICcnO1xuICB2YXIgdXNlcm5hbWUgPSBtWzJdIHx8ICcnO1xuICB2YXIgcGFzc3dvcmQgPSBtWzNdIHx8ICcnO1xuICB2YXIgaG9zdCA9IG1bNF0gfHwgJyc7XG4gIHZhciBob3N0bmFtZSA9IG1bNV0gfHwgJyc7XG4gIHZhciBwb3J0ID0gbVs2XSB8fCAnJztcbiAgdmFyIHBhdGhuYW1lID0gbVs3XSB8fCAnJztcbiAgdmFyIHNlYXJjaCA9IG1bOF0gfHwgJyc7XG4gIHZhciBoYXNoID0gbVs5XSB8fCAnJztcbiAgaWYgKGJhc2VVUkwgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBiYXNlID0gbmV3IFVSTFV0aWxzKGJhc2VVUkwpO1xuICAgIHZhciBmbGFnID0gcHJvdG9jb2wgPT09ICcnICYmIGhvc3QgPT09ICcnICYmIHVzZXJuYW1lID09PSAnJztcbiAgICBpZiAoZmxhZyAmJiBwYXRobmFtZSA9PT0gJycgJiYgc2VhcmNoID09PSAnJykge1xuICAgICAgc2VhcmNoID0gYmFzZS5zZWFyY2g7XG4gICAgfVxuICAgIGlmIChmbGFnICYmIHBhdGhuYW1lLmNoYXJBdCgwKSAhPT0gJy8nKSB7XG4gICAgICBwYXRobmFtZSA9IChwYXRobmFtZSAhPT0gJycgPyAoYmFzZS5wYXRobmFtZS5zbGljZSgwLCBiYXNlLnBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKSArIHBhdGhuYW1lKSA6IGJhc2UucGF0aG5hbWUpO1xuICAgIH1cbiAgICAvLyBkb3Qgc2VnbWVudHMgcmVtb3ZhbFxuICAgIHZhciBvdXRwdXQgPSBbXTtcblxuICAgIHBhdGhuYW1lLnJlcGxhY2UoL1xcLz9bXlxcL10rL2csIGZ1bmN0aW9uKHApIHtcbiAgICAgIGlmIChwID09PSAnLy4uJykge1xuICAgICAgICBvdXRwdXQucG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXQucHVzaChwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHBhdGhuYW1lID0gb3V0cHV0LmpvaW4oJycpIHx8ICcvJztcblxuICAgIGlmIChmbGFnKSB7XG4gICAgICBwb3J0ID0gYmFzZS5wb3J0O1xuICAgICAgaG9zdG5hbWUgPSBiYXNlLmhvc3RuYW1lO1xuICAgICAgaG9zdCA9IGJhc2UuaG9zdDtcbiAgICAgIHBhc3N3b3JkID0gYmFzZS5wYXNzd29yZDtcbiAgICAgIHVzZXJuYW1lID0gYmFzZS51c2VybmFtZTtcbiAgICB9XG4gICAgaWYgKHByb3RvY29sID09PSAnJykge1xuICAgICAgcHJvdG9jb2wgPSBiYXNlLnByb3RvY29sO1xuICAgIH1cbiAgICBocmVmID0gcHJvdG9jb2wgKyAoaG9zdCAhPT0gJycgPyAnLy8nIDogJycpICsgKHVzZXJuYW1lICE9PSAnJyA/IHVzZXJuYW1lICsgKHBhc3N3b3JkICE9PSAnJyA/ICc6JyArIHBhc3N3b3JkIDogJycpICsgJ0AnIDogJycpICsgaG9zdCArIHBhdGhuYW1lICsgc2VhcmNoICsgaGFzaDtcbiAgfVxuICB0aGlzLmhyZWYgPSBocmVmO1xuICB0aGlzLm9yaWdpbiA9IHByb3RvY29sICsgKGhvc3QgIT09ICcnID8gJy8vJyArIGhvc3QgOiAnJyk7XG4gIHRoaXMucHJvdG9jb2wgPSBwcm90b2NvbDtcbiAgdGhpcy51c2VybmFtZSA9IHVzZXJuYW1lO1xuICB0aGlzLnBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gIHRoaXMuaG9zdCA9IGhvc3Q7XG4gIHRoaXMuaG9zdG5hbWUgPSBob3N0bmFtZTtcbiAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgdGhpcy5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgdGhpcy5oYXNoID0gaGFzaDtcbn1cblxuZnVuY3Rpb24gaXNVUkwocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnICYmIC9eXFx3KzpcXC9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVVSSShocmVmLCBiYXNlKSB7XG4gIHJldHVybiBuZXcgVVJMVXRpbHMoaHJlZiwgYmFzZSk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVVUkwoYmFzZSwgaHJlZikge1xuICBiYXNlID0gYmFzZSB8fCAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWEjJztcblxuICBocmVmID0gcGFyc2VVUkkoaHJlZiwgYmFzZSk7XG4gIGJhc2UgPSBwYXJzZVVSSShiYXNlKTtcblxuICBpZiAoYmFzZS5oYXNoICYmICFocmVmLmhhc2gpIHtcbiAgICByZXR1cm4gaHJlZi5ocmVmICsgYmFzZS5oYXNoO1xuICB9XG5cbiAgcmV0dXJuIGhyZWYuaHJlZjtcbn1cblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRVUkkodXJpKSB7XG4gIHJldHVybiB0eXBlb2YgdXJpID09PSAnc3RyaW5nJyAmJiB1cmkuc3BsaXQoJyMnKVswXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGlzVVJMOiBpc1VSTCxcbiAgcGFyc2VVUkk6IHBhcnNlVVJJLFxuICByZXNvbHZlVVJMOiByZXNvbHZlVVJMLFxuICBnZXREb2N1bWVudFVSSTogZ2V0RG9jdW1lbnRVUklcbn07XG4iLCIvKlxuXG4gICB0aGlzIGluZGV4LmpzIGZpbGUgaXMgdXNlZCBmb3IgaW5jbHVkaW5nIHRoZSBmYWtlciBsaWJyYXJ5IGFzIGEgQ29tbW9uSlMgbW9kdWxlLCBpbnN0ZWFkIG9mIGEgYnVuZGxlXG5cbiAgIHlvdSBjYW4gaW5jbHVkZSB0aGUgZmFrZXIgbGlicmFyeSBpbnRvIHlvdXIgZXhpc3Rpbmcgbm9kZS5qcyBhcHBsaWNhdGlvbiBieSByZXF1aXJpbmcgdGhlIGVudGlyZSAvZmFrZXIgZGlyZWN0b3J5XG5cbiAgICB2YXIgZmFrZXIgPSByZXF1aXJlKC4vZmFrZXIpO1xuICAgIHZhciByYW5kb21OYW1lID0gZmFrZXIubmFtZS5maW5kTmFtZSgpO1xuXG4gICB5b3UgY2FuIGFsc28gc2ltcGx5IGluY2x1ZGUgdGhlIFwiZmFrZXIuanNcIiBmaWxlIHdoaWNoIGlzIHRoZSBhdXRvLWdlbmVyYXRlZCBidW5kbGVkIHZlcnNpb24gb2YgdGhlIGZha2VyIGxpYnJhcnlcblxuICAgIHZhciBmYWtlciA9IHJlcXVpcmUoLi9jdXN0b21BcHBQYXRoL2Zha2VyKTtcbiAgICB2YXIgcmFuZG9tTmFtZSA9IGZha2VyLm5hbWUuZmluZE5hbWUoKTtcblxuXG4gIGlmIHlvdSBwbGFuIG9uIG1vZGlmeWluZyB0aGUgZmFrZXIgbGlicmFyeSB5b3Ugc2hvdWxkIGJlIHBlcmZvcm1pbmcgeW91ciBjaGFuZ2VzIGluIHRoZSAvbGliLyBkaXJlY3RvcnlcblxuKi9cblxuZXhwb3J0cy5uYW1lID0gcmVxdWlyZSgnLi9saWIvbmFtZScpO1xuZXhwb3J0cy5hZGRyZXNzID0gcmVxdWlyZSgnLi9saWIvYWRkcmVzcycpO1xuZXhwb3J0cy5waG9uZSA9IHJlcXVpcmUoJy4vbGliL3Bob25lX251bWJlcicpO1xuZXhwb3J0cy5pbnRlcm5ldCA9IHJlcXVpcmUoJy4vbGliL2ludGVybmV0Jyk7XG5leHBvcnRzLmNvbXBhbnkgPSByZXF1aXJlKCcuL2xpYi9jb21wYW55Jyk7XG5leHBvcnRzLmltYWdlID0gcmVxdWlyZSgnLi9saWIvaW1hZ2UnKTtcbmV4cG9ydHMubG9yZW0gPSByZXF1aXJlKCcuL2xpYi9sb3JlbScpO1xuZXhwb3J0cy5oZWxwZXJzID0gIHJlcXVpcmUoJy4vbGliL2hlbHBlcnMnKTtcbmV4cG9ydHMuZGF0ZSA9IHJlcXVpcmUoJy4vbGliL2RhdGUnKTtcbmV4cG9ydHMucmFuZG9tID0gcmVxdWlyZSgnLi9saWIvcmFuZG9tJyk7XG5leHBvcnRzLmZpbmFuY2UgPSByZXF1aXJlKCcuL2xpYi9maW5hbmNlJyk7XG5leHBvcnRzLmhhY2tlciA9IHJlcXVpcmUoJy4vbGliL2hhY2tlcicpO1xuXG52YXIgbG9jYWxlcyA9IGV4cG9ydHMubG9jYWxlcyA9IHJlcXVpcmUoJy4vbGliL2xvY2FsZXMnKTtcblxuLy8gZGVmYXVsdCBsb2NhbGVcbmV4cG9ydHMubG9jYWxlID0gXCJlblwiO1xuXG4vLyBpbiBjYXNlIGEgbG9jYWxlIGlzIG1pc3NpbmcgYSBkZWZpbml0aW9uLCBmYWxsYmFjayB0byB0aGlzIGxvY2FsZVxuZXhwb3J0cy5sb2NhbGVGYWxsYmFjayA9IFwiZW5cIjtcblxuZXhwb3J0cy5kZWZpbml0aW9ucyA9IHt9O1xuXG52YXIgX2RlZmluaXRpb25zID0ge1xuICBcIm5hbWVcIjogW1wiZmlyc3RfbmFtZVwiLCBcImxhc3RfbmFtZVwiLCBcInByZWZpeFwiLCBcInN1ZmZpeFwiXSxcbiAgXCJhZGRyZXNzXCI6IFtcImNpdHlfcHJlZml4XCIsIFwiY2l0eV9zdWZmaXhcIiwgXCJzdHJlZXRfc3VmZml4XCIsIFwiY291bnR5XCIsIFwiY291bnRyeVwiLCBcInN0YXRlXCIsIFwic3RhdGVfYWJiclwiXSxcbiAgXCJjb21wYW55XCI6IFtcImFkamVjdGl2ZVwiLCBcIm5vdW5cIiwgXCJkZXNjcmlwdG9yXCIsIFwiYnNfYWRqZWN0aXZlXCIsIFwiYnNfbm91blwiLCBcImJzX3ZlcmJcIl0sXG4gIFwibG9yZW1cIjogW1wid29yZHNcIl0sXG4gIFwiaGFja2VyXCI6IFtcImFiYnJldmlhdGlvblwiLCBcImFkamVjdGl2ZVwiLCBcIm5vdW5cIiwgXCJ2ZXJiXCIsIFwiaW5ndmVyYlwiXSxcbiAgXCJwaG9uZV9udW1iZXJcIjogW1wiZm9ybWF0c1wiXSxcbiAgXCJmaW5hbmNlXCI6IFtcImFjY291bnRfdHlwZVwiLCBcInRyYW5zYWN0aW9uX3R5cGVcIiwgXCJjdXJyZW5jeVwiXSxcbiAgXCJpbnRlcm5ldFwiOiBbXCJhdmF0YXJfdXJpXCIsIFwiZG9tYWluX3N1ZmZpeFwiLCBcImZyZWVfZW1haWxcIiwgXCJwYXNzd29yZFwiXVxufTtcblxuLy8gQ3JlYXRlIGEgR2V0dGVyIGZvciBhbGwgZGVmaW5pdGlvbnMuZm9vLmJhciBwcm9wZXRyaWVzXG5PYmplY3Qua2V5cyhfZGVmaW5pdGlvbnMpLmZvckVhY2goZnVuY3Rpb24oZCl7XG4gIGlmICh0eXBlb2YgZXhwb3J0cy5kZWZpbml0aW9uc1tkXSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGV4cG9ydHMuZGVmaW5pdGlvbnNbZF0gPSB7fTtcbiAgfVxuICBfZGVmaW5pdGlvbnNbZF0uZm9yRWFjaChmdW5jdGlvbihwKXtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZpbml0aW9uc1tkXSwgcCwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbG9jYWxlc1tleHBvcnRzLmxvY2FsZV1bZF0gPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mIGxvY2FsZXNbZXhwb3J0cy5sb2NhbGVdW2RdW3BdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgLy8gY2VydGFpbiBsb2NhbGl6YXRpb24gc2V0cyBjb250YWluIGxlc3MgZGF0YSB0aGVuIG90aGVycy5cbiAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBvZiBhIG1pc3NpbmcgZGVmaW50aW9uLCB1c2UgdGhlIGRlZmF1bHQgbG9jYWxlRmFsbGJhY2sgdG8gc3Vic3RpdHV0ZSB0aGUgbWlzc2luZyBzZXQgZGF0YVxuICAgICAgICAgIHJldHVybiBsb2NhbGVzW2V4cG9ydHMubG9jYWxlRmFsbGJhY2tdW2RdW3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHJldHVybiBsb2NhbGl6ZWQgZGF0YVxuICAgICAgICAgIHJldHVybiBsb2NhbGVzW2V4cG9ydHMubG9jYWxlXVtkXVtwXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pOyIsInZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG52YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgYWRkcmVzcyA9IHtcbiAgICB6aXBDb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KFtcIiMjIyMjXCIsICcjIyMjIy0jIyMjJ10pKTtcbiAgICB9LFxuXG4gICAgY2l0eTogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMykpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIuYWRkcmVzcy5jaXR5UHJlZml4KCkgKyBcIiBcIiArIGZha2VyLm5hbWUuZmlyc3ROYW1lKCkgKyBmYWtlci5hZGRyZXNzLmNpdHlTdWZmaXgoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXN1bHQgPSBmYWtlci5hZGRyZXNzLmNpdHlQcmVmaXgoKSArIFwiIFwiICsgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXN1bHQgPSBmYWtlci5uYW1lLmZpcnN0TmFtZSgpICsgZmFrZXIuYWRkcmVzcy5jaXR5U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgZmFrZXIuYWRkcmVzcy5jaXR5U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICBjaXR5UHJlZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5jaXR5X3ByZWZpeCk7XG4gICAgfSxcblxuICAgIGNpdHlTdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNpdHlfc3VmZml4KTtcbiAgICB9LFxuXG4gICAgc3RyZWV0TmFtZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMSkpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCIgXCIgKyBmYWtlci5hZGRyZXNzLnN0cmVldFN1ZmZpeCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJlc3VsdCA9IGZha2VyLm5hbWUuZmlyc3ROYW1lKCkgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICAvL1xuICAgIC8vIFRPRE86IGNoYW5nZSBhbGwgdGhlc2UgbWV0aG9kcyB0aGF0IGFjY2VwdCBhIGJvb2xlYW4gdG8gaW5zdGVhZCBhY2NlcHQgYW4gb3B0aW9ucyBoYXNoLlxuICAgIC8vXG4gICAgc3RyZWV0QWRkcmVzczogZnVuY3Rpb24gKHVzZUZ1bGxBZGRyZXNzKSB7XG4gICAgICAgIGlmICh1c2VGdWxsQWRkcmVzcyA9PT0gdW5kZWZpbmVkKSB7IHVzZUZ1bGxBZGRyZXNzID0gZmFsc2U7IH1cbiAgICAgICAgdmFyIGFkZHJlc3MgPSBcIlwiO1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMikpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyMjI1wiKSArIFwiIFwiICsgZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyMjXCIpICsgIFwiIFwiICsgZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyNcIikgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0TmFtZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZUZ1bGxBZGRyZXNzID8gKGFkZHJlc3MgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpKSA6IGFkZHJlc3M7XG4gICAgfSxcblxuICAgIHN0cmVldFN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5zdHJlZXRfc3VmZml4KTtcbiAgICB9LFxuXG4gICAgc2Vjb25kYXJ5QWRkcmVzczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gSGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnQXB0LiAjIyMnLFxuICAgICAgICAgICAgICAgICdTdWl0ZSAjIyMnXG4gICAgICAgICAgICBdXG4gICAgICAgICkpO1xuICAgIH0sXG5cbiAgICBjb3VudHk6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNvdW50eSk7XG4gICAgfSxcblxuICAgIGNvdW50cnk6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNvdW50cnkpO1xuICAgIH0sXG5cbiAgICBzdGF0ZTogZnVuY3Rpb24gKHVzZUFiYnIpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3Muc3RhdGUpO1xuICAgIH0sXG5cbiAgICBzdGF0ZUFiYnI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3Muc3RhdGVfYWJicik7XG4gICAgfSxcblxuICAgIGxhdGl0dWRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoZmFrZXIucmFuZG9tLm51bWJlcigxODAgKiAxMDAwMCkgLyAxMDAwMC4wIC0gOTAuMCkudG9GaXhlZCg0KTtcbiAgICB9LFxuXG4gICAgbG9uZ2l0dWRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoZmFrZXIucmFuZG9tLm51bWJlcigzNjAgKiAxMDAwMCkgLyAxMDAwMC4wIC0gMTgwLjApLnRvRml4ZWQoNCk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBhZGRyZXNzO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGNvbXBhbnkgPSB7XG5cbiAgICBzdWZmaXhlczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gW1wiSW5jXCIsIFwiYW5kIFNvbnNcIiwgXCJMTENcIiwgXCJHcm91cFwiLCBcImFuZCBEYXVnaHRlcnNcIl07XG4gICAgfSxcblxuICAgIGNvbXBhbnlOYW1lOiBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHN3aXRjaCAoKGZvcm1hdCA/IGZvcm1hdCA6IGZha2VyLnJhbmRvbS5udW1iZXIoMikpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHJldHVybiBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiBcIiArIGZha2VyLmNvbXBhbnkuY29tcGFueVN1ZmZpeCgpO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCItXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiwgXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiBhbmQgXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcGFueVN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuY29tcGFueS5zdWZmaXhlcygpKTtcbiAgICB9LFxuXG4gICAgY2F0Y2hQaHJhc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2VBZGplY3RpdmUoKSArIFwiIFwiICtcbiAgICAgICAgICAgIGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2VEZXNjcmlwdG9yKCkgKyBcIiBcIiArXG4gICAgICAgICAgICBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlTm91bigpO1xuICAgIH0sXG5cbiAgICBiczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIuY29tcGFueS5ic0FkamVjdGl2ZSgpICsgXCIgXCIgK1xuICAgICAgICAgICAgZmFrZXIuY29tcGFueS5ic0J1enooKSArIFwiIFwiICtcbiAgICAgICAgICAgIGZha2VyLmNvbXBhbnkuYnNOb3VuKCk7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlQWRqZWN0aXZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5jb21wYW55LmFkamVjdGl2ZSk7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlRGVzY3JpcHRvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5kZXNjcmlwdG9yKTtcbiAgICB9LFxuXG4gICAgY2F0Y2hQaHJhc2VOb3VuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5jb21wYW55Lm5vdW4pO1xuICAgIH0sXG5cbiAgICBic0FkamVjdGl2ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5ic19hZGplY3RpdmUpO1xuICAgIH0sXG5cbiAgICBic0J1eno6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmNvbXBhbnkuYnNfdmVyYik7XG4gICAgfSxcblxuICAgIGJzTm91bjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5ic19ub3VuKTtcbiAgICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcGFueTtcbiIsInZhciBmYWtlciA9IHJlcXVpcmUoXCIuLi9pbmRleFwiKTtcblxudmFyIGRhdGUgPSB7XG5cbiAgICBwYXN0OiBmdW5jdGlvbiAoeWVhcnMsIHJlZkRhdGUpIHtcbiAgICAgICAgdmFyIGRhdGUgPSAocmVmRGF0ZSkgPyBuZXcgRGF0ZShEYXRlLnBhcnNlKHJlZkRhdGUpKSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIHZhciByYW5nZSA9IHtcbiAgICAgICAgICBtaW46IDEwMDAsXG4gICAgICAgICAgbWF4OiAoeWVhcnMgfHwgMSkgKiAzNjUgKiAyNCAqIDM2MDAgKiAxMDAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHBhc3QgPSBkYXRlLmdldFRpbWUoKTtcbiAgICAgICAgcGFzdCAtPSBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKTsgLy8gc29tZSB0aW1lIGZyb20gbm93IHRvIE4geWVhcnMgYWdvLCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgZGF0ZS5zZXRUaW1lKHBhc3QpO1xuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH0sXG5cbiAgICBmdXR1cmU6IGZ1bmN0aW9uICh5ZWFycywgcmVmRGF0ZSkge1xuICAgICAgICB2YXIgZGF0ZSA9IChyZWZEYXRlKSA/IG5ldyBEYXRlKERhdGUucGFyc2UocmVmRGF0ZSkpIDogbmV3IERhdGUoKTtcbiAgICAgICAgdmFyIHJhbmdlID0ge1xuICAgICAgICAgIG1pbjogMTAwMCxcbiAgICAgICAgICBtYXg6ICh5ZWFycyB8fCAxKSAqIDM2NSAqIDI0ICogMzYwMCAqIDEwMDBcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZnV0dXJlID0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGZ1dHVyZSArPSBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKTsgLy8gc29tZSB0aW1lIGZyb20gbm93IHRvIE4geWVhcnMgbGF0ZXIsIGluIG1pbGxpc2Vjb25kc1xuICAgICAgICBkYXRlLnNldFRpbWUoZnV0dXJlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9LFxuXG4gICAgYmV0d2VlbjogZnVuY3Rpb24gKGZyb20sIHRvKSB7XG4gICAgICAgIHZhciBmcm9tTWlsbGkgPSBEYXRlLnBhcnNlKGZyb20pO1xuICAgICAgICB2YXIgZGF0ZU9mZnNldCA9IGZha2VyLnJhbmRvbS5udW1iZXIoRGF0ZS5wYXJzZSh0bykgLSBmcm9tTWlsbGkpO1xuXG4gICAgICAgIHZhciBuZXdEYXRlID0gbmV3IERhdGUoZnJvbU1pbGxpICsgZGF0ZU9mZnNldCk7XG5cbiAgICAgICAgcmV0dXJuIG5ld0RhdGU7XG4gICAgfSxcblxuICAgIHJlY2VudDogZnVuY3Rpb24gKGRheXMpIHtcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB2YXIgcmFuZ2UgPSB7XG4gICAgICAgICAgbWluOiAxMDAwLFxuICAgICAgICAgIG1heDogKGRheXMgfHwgMSkgKiAyNCAqIDM2MDAgKiAxMDAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZ1dHVyZSA9IGRhdGUuZ2V0VGltZSgpO1xuICAgICAgICBmdXR1cmUgLT0gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7IC8vIHNvbWUgdGltZSBmcm9tIG5vdyB0byBOIGRheXMgYWdvLCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgZGF0ZS5zZXRUaW1lKGZ1dHVyZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxufTtcbm1vZHVsZS5leHBvcnRzID0gZGF0ZTtcbiIsInZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyksXG4gICAgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgZmluYW5jZSA9IHtcblxuICAgIGFjY291bnQ6IGZ1bmN0aW9uIChsZW5ndGgpIHtcblxuICAgICAgICBsZW5ndGggPSBsZW5ndGggfHwgODtcblxuICAgICAgICB2YXIgdGVtcGxhdGUgPSAnJztcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IHRlbXBsYXRlICsgJyMnO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aCA9IG51bGw7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKHRlbXBsYXRlKTtcbiAgICB9LFxuXG4gICAgYWNjb3VudE5hbWU6IGZ1bmN0aW9uICgpIHtcblxuICAgICAgICByZXR1cm4gW0hlbHBlcnMucmFuZG9taXplKGZha2VyLmRlZmluaXRpb25zLmZpbmFuY2UuYWNjb3VudF90eXBlKSwgJ0FjY291bnQnXS5qb2luKCcgJyk7XG4gICAgfSxcblxuICAgIG1hc2s6IGZ1bmN0aW9uIChsZW5ndGgsIHBhcmVucywgZWxpcHNpcykge1xuXG5cbiAgICAgICAgLy9zZXQgZGVmYXVsdHNcbiAgICAgICAgbGVuZ3RoID0gKGxlbmd0aCA9PSAwIHx8ICFsZW5ndGggfHwgdHlwZW9mIGxlbmd0aCA9PSAndW5kZWZpbmVkJykgPyA0IDogbGVuZ3RoO1xuICAgICAgICBwYXJlbnMgPSAocGFyZW5zID09PSBudWxsKSA/IHRydWUgOiBwYXJlbnM7XG4gICAgICAgIGVsaXBzaXMgPSAoZWxpcHNpcyA9PT0gbnVsbCkgPyB0cnVlIDogZWxpcHNpcztcblxuICAgICAgICAvL2NyZWF0ZSBhIHRlbXBsYXRlIGZvciBsZW5ndGhcbiAgICAgICAgdmFyIHRlbXBsYXRlID0gJyc7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZSArICcjJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vcHJlZml4IHdpdGggZWxpcHNpc1xuICAgICAgICB0ZW1wbGF0ZSA9IChlbGlwc2lzKSA/IFsnLi4uJywgdGVtcGxhdGVdLmpvaW4oJycpIDogdGVtcGxhdGU7XG5cbiAgICAgICAgdGVtcGxhdGUgPSAocGFyZW5zKSA/IFsnKCcsIHRlbXBsYXRlLCAnKSddLmpvaW4oJycpIDogdGVtcGxhdGU7XG5cbiAgICAgICAgLy9nZW5lcmF0ZSByYW5kb20gbnVtYmVyc1xuICAgICAgICB0ZW1wbGF0ZSA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIodGVtcGxhdGUpO1xuXG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZTtcblxuICAgIH0sXG5cbiAgICAvL21pbiBhbmQgbWF4IHRha2UgaW4gbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnRzLCBkZWMgaXMgdGhlIGRlY2ltYWwgcGxhY2UgeW91IHdhbnQgcm91bmRlZCB0bywgc3ltYm9sIGlzICQsIOKCrCwgwqMsIGV0Y1xuICAgIC8vTk9URTogdGhpcyByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSwgaWYgeW91IHdhbnQgYSBudW1iZXIgdXNlIHBhcnNlRmxvYXQgYW5kIG5vIHN5bWJvbFxuXG4gICAgYW1vdW50OiBmdW5jdGlvbiAobWluLCBtYXgsIGRlYywgc3ltYm9sKSB7XG5cbiAgICAgICAgbWluID0gbWluIHx8IDA7XG4gICAgICAgIG1heCA9IG1heCB8fCAxMDAwO1xuICAgICAgICBkZWMgPSBkZWMgfHwgMjtcbiAgICAgICAgc3ltYm9sID0gc3ltYm9sIHx8ICcnO1xuXG4gICAgICAgIHJldHVybiBzeW1ib2wgKyAoTWF0aC5yb3VuZCgoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluKSAqIE1hdGgucG93KDEwLCBkZWMpKSAvIE1hdGgucG93KDEwLCBkZWMpKS50b0ZpeGVkKGRlYyk7XG5cbiAgICB9LFxuXG4gICAgdHJhbnNhY3Rpb25UeXBlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJhbmRvbWl6ZShmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUpO1xuICAgIH0sXG5cbiAgICBjdXJyZW5jeUNvZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5KVsnY29kZSddO1xuICAgIH0sXG5cbiAgICBjdXJyZW5jeU5hbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5LCAna2V5Jyk7XG4gICAgfSxcblxuICAgIGN1cnJlbmN5U3ltYm9sOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzeW1ib2w7XG5cbiAgICAgICAgd2hpbGUgKCFzeW1ib2wpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5KVsnc3ltYm9sJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN5bWJvbDtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbmFuY2U7IiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGhhY2tlciA9IHtcblxuICBhYmJyZXZpYXRpb24gOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci5hYmJyZXZpYXRpb24pO1xuICB9LFxuXG4gIGFkamVjdGl2ZSA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaGFja2VyLmFkamVjdGl2ZSk7XG4gIH0sXG5cbiAgbm91biA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaGFja2VyLm5vdW4pO1xuICB9LFxuXG4gIHZlcmIgOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci52ZXJiKTtcbiAgfSxcblxuICBpbmd2ZXJiIDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5oYWNrZXIuaW5ndmVyYik7XG4gIH0sXG5cbiAgcGhyYXNlIDogZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGRhdGEgPSB7XG4gICAgICBhYmJyZXZpYXRpb246IGhhY2tlci5hYmJyZXZpYXRpb24oKSxcbiAgICAgIGFkamVjdGl2ZTogaGFja2VyLmFkamVjdGl2ZSgpLFxuICAgICAgaW5ndmVyYjogaGFja2VyLmluZ3ZlcmIoKSxcbiAgICAgIG5vdW46IGhhY2tlci5ub3VuKCksXG4gICAgICB2ZXJiOiBoYWNrZXIudmVyYigpXG4gICAgfTtcblxuICAgIHZhciBwaHJhc2UgPSBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbIFwiSWYgd2Uge3t2ZXJifX0gdGhlIHt7bm91bn19LCB3ZSBjYW4gZ2V0IHRvIHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IHRocm91Z2ggdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSFcIixcbiAgICAgIFwiV2UgbmVlZCB0byB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJUcnkgdG8ge3t2ZXJifX0gdGhlIHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0sIG1heWJlIGl0IHdpbGwge3t2ZXJifX0gdGhlIHt7YWRqZWN0aXZlfX0ge3tub3VufX0hXCIsXG4gICAgICBcIllvdSBjYW4ndCB7e3ZlcmJ9fSB0aGUge3tub3VufX0gd2l0aG91dCB7e2luZ3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJVc2UgdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSwgdGhlbiB5b3UgY2FuIHt7dmVyYn19IHRoZSB7e2FkamVjdGl2ZX19IHt7bm91bn19IVwiLFxuICAgICAgXCJUaGUge3thYmJyZXZpYXRpb259fSB7e25vdW59fSBpcyBkb3duLCB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e25vdW59fSBzbyB3ZSBjYW4ge3t2ZXJifX0gdGhlIHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0hXCIsXG4gICAgICBcInt7aW5ndmVyYn19IHRoZSB7e25vdW59fSB3b24ndCBkbyBhbnl0aGluZywgd2UgbmVlZCB0byB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJJJ2xsIHt7dmVyYn19IHRoZSB7e2FkamVjdGl2ZX19IHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0sIHRoYXQgc2hvdWxkIHt7bm91bn19IHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiXG4gICBdKTtcblxuICAgcmV0dXJuIGZha2VyLmhlbHBlcnMubXVzdGFjaGUocGhyYXNlLCBkYXRhKTtcblxuICB9LFxuXG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaGFja2VyO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxuLy8gYmFja3dvcmQtY29tcGF0aWJpbGl0eVxuZXhwb3J0cy5yYW5kb21OdW1iZXIgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7XG59O1xuXG4vLyBiYWNrd29yZC1jb21wYXRpYmlsaXR5XG5leHBvcnRzLnJhbmRvbWl6ZSA9IGZ1bmN0aW9uIChhcnJheSkge1xuICAgIGFycmF5ID0gYXJyYXkgfHwgW1wiYVwiLCBcImJcIiwgXCJjXCJdO1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChhcnJheSk7XG59O1xuXG4vLyBzbHVnaWZpZXMgc3RyaW5nXG5leHBvcnRzLnNsdWdpZnkgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgc3RyaW5nID0gc3RyaW5nIHx8IFwiXCI7XG4gICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8gL2csICctJykucmVwbGFjZSgvW15cXHdcXC5cXC1dKy9nLCAnJyk7XG59O1xuXG4vLyBwYXJzZXMgc3RyaW5nIGZvciBhIHN5bWJvbCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcmFuZG9tIG51bWJlciBmcm9tIDEtMTBcbmV4cG9ydHMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIgPSBmdW5jdGlvbiAoc3RyaW5nLCBzeW1ib2wpIHtcbiAgICBzdHJpbmcgPSBzdHJpbmcgfHwgXCJcIjtcbiAgICAvLyBkZWZhdWx0IHN5bWJvbCBpcyAnIydcbiAgICBpZiAoc3ltYm9sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3ltYm9sID0gJyMnO1xuICAgIH1cblxuICAgIHZhciBzdHIgPSAnJztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc3RyaW5nLmNoYXJBdChpKSA9PSBzeW1ib2wpIHtcbiAgICAgICAgICAgIHN0ciArPSBmYWtlci5yYW5kb20ubnVtYmVyKDkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RyICs9IHN0cmluZy5jaGFyQXQoaSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbn07XG5cbi8vIHRha2VzIGFuIGFycmF5IGFuZCByZXR1cm5zIGl0IHJhbmRvbWl6ZWRcbmV4cG9ydHMuc2h1ZmZsZSA9IGZ1bmN0aW9uIChvKSB7XG4gICAgbyA9IG8gfHwgW1wiYVwiLCBcImJcIiwgXCJjXCJdO1xuICAgIGZvciAodmFyIGosIHgsIGkgPSBvLmxlbmd0aC0xOyBpOyBqID0gZmFrZXIucmFuZG9tLm51bWJlcihpKSwgeCA9IG9bLS1pXSwgb1tpXSA9IG9bal0sIG9bal0gPSB4KTtcbiAgICByZXR1cm4gbztcbn07XG5cbmV4cG9ydHMubXVzdGFjaGUgPSBmdW5jdGlvbiAoc3RyLCBkYXRhKSB7XG4gIGZvcih2YXIgcCBpbiBkYXRhKSB7XG4gICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgne3snICsgcCArICd9fScsICdnJylcbiAgICBzdHIgPSBzdHIucmVwbGFjZShyZSwgZGF0YVtwXSk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn07XG5cbmV4cG9ydHMuY3JlYXRlQ2FyZCA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBcIm5hbWVcIjogZmFrZXIubmFtZS5maW5kTmFtZSgpLFxuICAgICAgICBcInVzZXJuYW1lXCI6IGZha2VyLmludGVybmV0LnVzZXJOYW1lKCksXG4gICAgICAgIFwiZW1haWxcIjogZmFrZXIuaW50ZXJuZXQuZW1haWwoKSxcbiAgICAgICAgXCJhZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwic3RyZWV0QVwiOiBmYWtlci5hZGRyZXNzLnN0cmVldE5hbWUoKSxcbiAgICAgICAgICAgIFwic3RyZWV0QlwiOiBmYWtlci5hZGRyZXNzLnN0cmVldEFkZHJlc3MoKSxcbiAgICAgICAgICAgIFwic3RyZWV0Q1wiOiBmYWtlci5hZGRyZXNzLnN0cmVldEFkZHJlc3ModHJ1ZSksXG4gICAgICAgICAgICBcInN0cmVldERcIjogZmFrZXIuYWRkcmVzcy5zZWNvbmRhcnlBZGRyZXNzKCksXG4gICAgICAgICAgICBcImNpdHlcIjogZmFrZXIuYWRkcmVzcy5jaXR5KCksXG4gICAgICAgICAgICBcInN0YXRlXCI6IGZha2VyLmFkZHJlc3Muc3RhdGUoKSxcbiAgICAgICAgICAgIFwiY291bnRyeVwiOiBmYWtlci5hZGRyZXNzLmNvdW50cnkoKSxcbiAgICAgICAgICAgIFwiemlwY29kZVwiOiBmYWtlci5hZGRyZXNzLnppcENvZGUoKSxcbiAgICAgICAgICAgIFwiZ2VvXCI6IHtcbiAgICAgICAgICAgICAgICBcImxhdFwiOiBmYWtlci5hZGRyZXNzLmxhdGl0dWRlKCksXG4gICAgICAgICAgICAgICAgXCJsbmdcIjogZmFrZXIuYWRkcmVzcy5sb25naXR1ZGUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBob25lXCI6IGZha2VyLnBob25lLnBob25lTnVtYmVyKCksXG4gICAgICAgIFwid2Vic2l0ZVwiOiBmYWtlci5pbnRlcm5ldC5kb21haW5OYW1lKCksXG4gICAgICAgIFwiY29tcGFueVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgICAgICAgICAgXCJjYXRjaFBocmFzZVwiOiBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlKCksXG4gICAgICAgICAgICBcImJzXCI6IGZha2VyLmNvbXBhbnkuYnMoKVxuICAgICAgICB9LFxuICAgICAgICBcInBvc3RzXCI6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIndvcmRzXCI6IGZha2VyLmxvcmVtLndvcmRzKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZVwiOiBmYWtlci5sb3JlbS5zZW50ZW5jZSgpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VzXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlcygpLFxuICAgICAgICAgICAgICAgIFwicGFyYWdyYXBoXCI6IGZha2VyLmxvcmVtLnBhcmFncmFwaCgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwid29yZHNcIjogZmFrZXIubG9yZW0ud29yZHMoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZXNcIjogZmFrZXIubG9yZW0uc2VudGVuY2VzKCksXG4gICAgICAgICAgICAgICAgXCJwYXJhZ3JhcGhcIjogZmFrZXIubG9yZW0ucGFyYWdyYXBoKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJ3b3Jkc1wiOiBmYWtlci5sb3JlbS53b3JkcygpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VcIjogZmFrZXIubG9yZW0uc2VudGVuY2UoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlc1wiOiBmYWtlci5sb3JlbS5zZW50ZW5jZXMoKSxcbiAgICAgICAgICAgICAgICBcInBhcmFncmFwaFwiOiBmYWtlci5sb3JlbS5wYXJhZ3JhcGgoKVxuICAgICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBcImFjY291bnRIaXN0b3J5XCI6IFtmYWtlci5oZWxwZXJzLmNyZWF0ZVRyYW5zYWN0aW9uKCksIGZha2VyLmhlbHBlcnMuY3JlYXRlVHJhbnNhY3Rpb24oKSwgZmFrZXIuaGVscGVycy5jcmVhdGVUcmFuc2FjdGlvbigpXVxuICAgIH07XG59O1xuXG5leHBvcnRzLmNvbnRleHR1YWxDYXJkID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbmFtZSA9IGZha2VyLm5hbWUuZmlyc3ROYW1lKCksXG4gICAgICB1c2VyTmFtZSA9IGZha2VyLmludGVybmV0LnVzZXJOYW1lKG5hbWUpO1xuICByZXR1cm4ge1xuICAgICAgXCJuYW1lXCI6IG5hbWUsXG4gICAgICBcInVzZXJuYW1lXCI6IHVzZXJOYW1lLFxuICAgICAgXCJhdmF0YXJcIjogZmFrZXIuaW50ZXJuZXQuYXZhdGFyKCksXG4gICAgICBcImVtYWlsXCI6IGZha2VyLmludGVybmV0LmVtYWlsKHVzZXJOYW1lKSxcbiAgICAgIFwiZG9iXCI6IGZha2VyLmRhdGUucGFzdCg1MCwgbmV3IERhdGUoXCJTYXQgU2VwIDIwIDE5OTIgMjE6MzU6MDIgR01UKzAyMDAgKENFU1QpXCIpKSxcbiAgICAgIFwicGhvbmVcIjogZmFrZXIucGhvbmUucGhvbmVOdW1iZXIoKSxcbiAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgXCJzdHJlZXRcIjogZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKHRydWUpLFxuICAgICAgICAgIFwic3VpdGVcIjogZmFrZXIuYWRkcmVzcy5zZWNvbmRhcnlBZGRyZXNzKCksXG4gICAgICAgICAgXCJjaXR5XCI6IGZha2VyLmFkZHJlc3MuY2l0eSgpLFxuICAgICAgICAgIFwiemlwY29kZVwiOiBmYWtlci5hZGRyZXNzLnppcENvZGUoKSxcbiAgICAgICAgICBcImdlb1wiOiB7XG4gICAgICAgICAgICAgIFwibGF0XCI6IGZha2VyLmFkZHJlc3MubGF0aXR1ZGUoKSxcbiAgICAgICAgICAgICAgXCJsbmdcIjogZmFrZXIuYWRkcmVzcy5sb25naXR1ZGUoKVxuICAgICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndlYnNpdGVcIjogZmFrZXIuaW50ZXJuZXQuZG9tYWluTmFtZSgpLFxuICAgICAgXCJjb21wYW55XCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgICAgICAgIFwiY2F0Y2hQaHJhc2VcIjogZmFrZXIuY29tcGFueS5jYXRjaFBocmFzZSgpLFxuICAgICAgICAgIFwiYnNcIjogZmFrZXIuY29tcGFueS5icygpXG4gICAgICB9XG4gIH07XG59O1xuXG5cbmV4cG9ydHMudXNlckNhcmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgXCJuYW1lXCI6IGZha2VyLm5hbWUuZmluZE5hbWUoKSxcbiAgICAgICAgXCJ1c2VybmFtZVwiOiBmYWtlci5pbnRlcm5ldC51c2VyTmFtZSgpLFxuICAgICAgICBcImVtYWlsXCI6IGZha2VyLmludGVybmV0LmVtYWlsKCksXG4gICAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcInN0cmVldFwiOiBmYWtlci5hZGRyZXNzLnN0cmVldE5hbWUodHJ1ZSksXG4gICAgICAgICAgICBcInN1aXRlXCI6IGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpLFxuICAgICAgICAgICAgXCJjaXR5XCI6IGZha2VyLmFkZHJlc3MuY2l0eSgpLFxuICAgICAgICAgICAgXCJ6aXBjb2RlXCI6IGZha2VyLmFkZHJlc3MuemlwQ29kZSgpLFxuICAgICAgICAgICAgXCJnZW9cIjoge1xuICAgICAgICAgICAgICAgIFwibGF0XCI6IGZha2VyLmFkZHJlc3MubGF0aXR1ZGUoKSxcbiAgICAgICAgICAgICAgICBcImxuZ1wiOiBmYWtlci5hZGRyZXNzLmxvbmdpdHVkZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGhvbmVcIjogZmFrZXIucGhvbmUucGhvbmVOdW1iZXIoKSxcbiAgICAgICAgXCJ3ZWJzaXRlXCI6IGZha2VyLmludGVybmV0LmRvbWFpbk5hbWUoKSxcbiAgICAgICAgXCJjb21wYW55XCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBmYWtlci5jb21wYW55LmNvbXBhbnlOYW1lKCksXG4gICAgICAgICAgICBcImNhdGNoUGhyYXNlXCI6IGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2UoKSxcbiAgICAgICAgICAgIFwiYnNcIjogZmFrZXIuY29tcGFueS5icygpXG4gICAgICAgIH1cbiAgICB9O1xufTtcblxuZXhwb3J0cy5jcmVhdGVUcmFuc2FjdGlvbiA9IGZ1bmN0aW9uKCl7XG4gIHJldHVybiB7XG4gICAgXCJhbW91bnRcIiA6IGZha2VyLmZpbmFuY2UuYW1vdW50KCksXG4gICAgXCJkYXRlXCIgOiBuZXcgRGF0ZSgyMDEyLCAxLCAyKSwgIC8vVE9ETzogYWRkIGEgcmFuZ2VkIGRhdGUgbWV0aG9kXG4gICAgXCJidXNpbmVzc1wiOiBmYWtlci5jb21wYW55LmNvbXBhbnlOYW1lKCksXG4gICAgXCJuYW1lXCI6IFtmYWtlci5maW5hbmNlLmFjY291bnROYW1lKCksIGZha2VyLmZpbmFuY2UubWFzaygpXS5qb2luKCcgJyksXG4gICAgXCJ0eXBlXCIgOiBleHBvcnRzLnJhbmRvbWl6ZShmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUpLFxuICAgIFwiYWNjb3VudFwiIDogZmFrZXIuZmluYW5jZS5hY2NvdW50KClcbiAgfTtcbn07XG5cbi8qXG5TdHJpbmcucHJvdG90eXBlLmNhcGl0YWxpemUgPSBmdW5jdGlvbiAoKSB7IC8vdjEuMFxuICAgIHJldHVybiB0aGlzLnJlcGxhY2UoL1xcdysvZywgZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIGEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBhLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xufTtcbiovXG5cbiIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbnZhciBpbWFnZSA9IHtcbiAgaW1hZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY2F0ZWdvcmllcyA9IFtcImFic3RyYWN0XCIsIFwiYW5pbWFsc1wiLCBcImJ1c2luZXNzXCIsIFwiY2F0c1wiLCBcImNpdHlcIiwgXCJmb29kXCIsIFwibmlnaHRsaWZlXCIsIFwiZmFzaGlvblwiLCBcInBlb3BsZVwiLCBcIm5hdHVyZVwiLCBcInNwb3J0c1wiLCBcInRlY2huaWNzXCIsIFwidHJhbnNwb3J0XCJdO1xuICAgIHJldHVybiBpbWFnZVtmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChjYXRlZ29yaWVzKV0oKTtcbiAgfSxcbiAgYXZhdGFyOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLmludGVybmV0LmF2YXRhcigpO1xuICB9LFxuICBpbWFnZVVybDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIGNhdGVnb3J5KSB7XG4gICAgICB2YXIgd2lkdGggPSB3aWR0aCB8fCA2NDA7XG4gICAgICB2YXIgaGVpZ2h0ID0gaGVpZ2h0IHx8IDQ4MDtcblxuICAgICAgdmFyIHVybCA9J2h0dHA6Ly9sb3JlbXBpeGVsLmNvbS8nICsgd2lkdGggKyAnLycgKyBoZWlnaHQ7XG4gICAgICBpZiAodHlwZW9mIGNhdGVnb3J5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB1cmwgKz0gJy8nICsgY2F0ZWdvcnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXJsO1xuICB9LFxuICBhYnN0cmFjdDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2Fic3RyYWN0Jyk7XG4gIH0sXG4gIGFuaW1hbHM6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdhbmltYWxzJyk7XG4gIH0sXG4gIGJ1c2luZXNzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnYnVzaW5lc3MnKTtcbiAgfSxcbiAgY2F0czogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2NhdHMnKTtcbiAgfSxcbiAgY2l0eTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2NpdHknKTtcbiAgfSxcbiAgZm9vZDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2Zvb2QnKTtcbiAgfSxcbiAgbmlnaHRsaWZlOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnbmlnaHRsaWZlJyk7XG4gIH0sXG4gIGZhc2hpb246IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdmYXNoaW9uJyk7XG4gIH0sXG4gIHBlb3BsZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ3Blb3BsZScpO1xuICB9LFxuICBuYXR1cmU6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICduYXR1cmUnKTtcbiAgfSxcbiAgc3BvcnRzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnc3BvcnRzJyk7XG4gIH0sXG4gIHRlY2huaWNzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAndGVjaG5pY3MnKTtcbiAgfSxcbiAgdHJhbnNwb3J0OiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAndHJhbnNwb3J0Jyk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW1hZ2U7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpLFxuICAgIHBhc3N3b3JkX2dlbmVyYXRvciA9IHJlcXVpcmUoJy4uL3ZlbmRvci9wYXNzd29yZC1nZW5lcmF0b3IuanMnKSxcbiAgICByYW5kb21fdWEgPSByZXF1aXJlKCcuLi92ZW5kb3IvdXNlci1hZ2VudCcpO1xuXG52YXIgaW50ZXJuZXQgPSB7XG5cbiAgICBhdmF0YXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmludGVybmV0LmF2YXRhcl91cmkpO1xuICAgIH0sXG5cbiAgICBlbWFpbDogZnVuY3Rpb24gKGZpcnN0TmFtZSwgbGFzdE5hbWUsIHByb3ZpZGVyKSB7XG4gICAgICAgIHByb3ZpZGVyID0gcHJvdmlkZXIgfHwgZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaW50ZXJuZXQuZnJlZV9lbWFpbCk7XG4gICAgICAgIHJldHVybiAgZmFrZXIuaGVscGVycy5zbHVnaWZ5KGZha2VyLmludGVybmV0LnVzZXJOYW1lKGZpcnN0TmFtZSwgbGFzdE5hbWUpKSArIFwiQFwiICsgcHJvdmlkZXI7XG4gICAgfSxcblxuICAgIHVzZXJOYW1lOiBmdW5jdGlvbiAoZmlyc3ROYW1lLCBsYXN0TmFtZSkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgfHwgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSB8fCBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIHN3aXRjaCAoZmFrZXIucmFuZG9tLm51bWJlcigyKSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20ubnVtYmVyKDk5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbXCIuXCIsIFwiX1wiXSkgKyBsYXN0TmFtZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbXCIuXCIsIFwiX1wiXSkgKyBsYXN0TmFtZSArIGZha2VyLnJhbmRvbS5udW1iZXIoOTkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLycvZywgXCJcIik7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC8gL2csIFwiXCIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICBkb21haW5OYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5pbnRlcm5ldC5kb21haW5Xb3JkKCkgKyBcIi5cIiArIGZha2VyLmludGVybmV0LmRvbWFpblN1ZmZpeCgpO1xuICAgIH0sXG5cbiAgICBkb21haW5TdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmludGVybmV0LmRvbWFpbl9zdWZmaXgpO1xuICAgIH0sXG5cbiAgICBkb21haW5Xb3JkOiAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5maXJzdE5hbWUoKS5yZXBsYWNlKC8oW15BLVowLTkuXyUrLV0pL2lnLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICB9LFxuXG4gICAgaXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJhbmROdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gKGZha2VyLnJhbmRvbS5udW1iZXIoMjU1KSkudG9GaXhlZCgwKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRbaV0gPSByYW5kTnVtKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0LmpvaW4oXCIuXCIpO1xuICAgIH0sXG5cbiAgICB1c2VyQWdlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByYW5kb21fdWEuZ2VuZXJhdGUoKTtcbiAgICB9LFxuXG4gICAgY29sb3I6IGZ1bmN0aW9uIChiYXNlUmVkMjU1LCBiYXNlR3JlZW4yNTUsIGJhc2VCbHVlMjU1KSB7XG4gICAgICAgIGJhc2VSZWQyNTUgPSBiYXNlUmVkMjU1IHx8IDA7XG4gICAgICAgIGJhc2VHcmVlbjI1NSA9IGJhc2VHcmVlbjI1NSB8fCAwO1xuICAgICAgICBiYXNlQmx1ZTI1NSA9IGJhc2VCbHVlMjU1IHx8IDA7XG4gICAgICAgIC8vIGJhc2VkIG9uIGF3ZXNvbWUgcmVzcG9uc2UgOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzMDQ0L2FsZ29yaXRobS10by1yYW5kb21seS1nZW5lcmF0ZS1hbi1hZXN0aGV0aWNhbGx5LXBsZWFzaW5nLWNvbG9yLXBhbGV0dGVcbiAgICAgICAgdmFyIHJlZCA9IE1hdGguZmxvb3IoKGZha2VyLnJhbmRvbS5udW1iZXIoMjU2KSArIGJhc2VSZWQyNTUpIC8gMik7XG4gICAgICAgIHZhciBncmVlbiA9IE1hdGguZmxvb3IoKGZha2VyLnJhbmRvbS5udW1iZXIoMjU2KSArIGJhc2VHcmVlbjI1NSkgLyAyKTtcbiAgICAgICAgdmFyIGJsdWUgPSBNYXRoLmZsb29yKChmYWtlci5yYW5kb20ubnVtYmVyKDI1NikgKyBiYXNlQmx1ZTI1NSkgLyAyKTtcbiAgICAgICAgdmFyIHJlZFN0ciA9IHJlZC50b1N0cmluZygxNik7XG4gICAgICAgIHZhciBncmVlblN0ciA9IGdyZWVuLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgdmFyIGJsdWVTdHIgPSBibHVlLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgcmV0dXJuICcjJyArXG4gICAgICAgICAgKHJlZFN0ci5sZW5ndGggPT09IDEgPyAnMCcgOiAnJykgKyByZWRTdHIgK1xuICAgICAgICAgIChncmVlblN0ci5sZW5ndGggPT09IDEgPyAnMCcgOiAnJykgKyBncmVlblN0ciArXG4gICAgICAgICAgKGJsdWVTdHIubGVuZ3RoID09PSAxID8gJzAnOiAnJykgKyBibHVlU3RyO1xuXG4gICAgfSxcblxuICAgIHBhc3N3b3JkOiBmdW5jdGlvbiAobGVuLCBtZW1vcmFibGUsIHBhdHRlcm4sIHByZWZpeCkge1xuICAgICAgbGVuID0gbGVuIHx8IDE1O1xuICAgICAgaWYgKHR5cGVvZiBtZW1vcmFibGUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbWVtb3JhYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFzc3dvcmRfZ2VuZXJhdG9yKGxlbiwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJuZXQ7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuZXhwb3J0c1snZGUnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZS5qcycpO1xuZXhwb3J0c1snZGVfQVQnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZV9BVC5qcycpO1xuZXhwb3J0c1snZGVfQ0gnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZV9DSC5qcycpO1xuZXhwb3J0c1snZW4nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbi5qcycpO1xuZXhwb3J0c1snZW5fQVUnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9BVS5qcycpO1xuZXhwb3J0c1snZW5fQk9SSyddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0JPUksuanMnKTtcbmV4cG9ydHNbJ2VuX0NBJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fQ0EuanMnKTtcbmV4cG9ydHNbJ2VuX0dCJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fR0IuanMnKTtcbmV4cG9ydHNbJ2VuX0lORCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0lORC5qcycpO1xuZXhwb3J0c1snZW5fVVMnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9VUy5qcycpO1xuZXhwb3J0c1snZW5fYXVfb2NrZXInXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9hdV9vY2tlci5qcycpO1xuZXhwb3J0c1snZXMnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lcy5qcycpO1xuZXhwb3J0c1snZmEnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9mYS5qcycpO1xuZXhwb3J0c1snZnInXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9mci5qcycpO1xuZXhwb3J0c1snaXQnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9pdC5qcycpO1xuZXhwb3J0c1snamEnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9qYS5qcycpO1xuZXhwb3J0c1sna28nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9rby5qcycpO1xuZXhwb3J0c1snbmJfTk8nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9uYl9OTy5qcycpO1xuZXhwb3J0c1snbmVwJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvbmVwLmpzJyk7XG5leHBvcnRzWydubCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL25sLmpzJyk7XG5leHBvcnRzWydwbCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3BsLmpzJyk7XG5leHBvcnRzWydwdF9CUiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3B0X0JSLmpzJyk7XG5leHBvcnRzWydydSddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3J1LmpzJyk7XG5leHBvcnRzWydzayddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3NrLmpzJyk7XG5leHBvcnRzWydzdiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3N2LmpzJyk7XG5leHBvcnRzWyd2aSddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3ZpLmpzJyk7XG5leHBvcnRzWyd6aF9DTiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3poX0NOLmpzJyk7IiwidmFyIGRlID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZGU7XG5kZS50aXRsZSA9IFwiR2VybWFuXCI7XG5kZS5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vcmRcIixcbiAgICBcIk9zdFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiU8O8ZFwiLFxuICAgIFwiTmV1XCIsXG4gICAgXCJBbHRcIixcbiAgICBcIkJhZFwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwic3RhZHRcIixcbiAgICBcImRvcmZcIixcbiAgICBcImxhbmRcIixcbiAgICBcInNjaGVpZFwiLFxuICAgIFwiYnVyZ1wiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCLDhGd5cHRlblwiLFxuICAgIFwiw4RxdWF0b3JpYWxndWluZWFcIixcbiAgICBcIsOEdGhpb3BpZW5cIixcbiAgICBcIsOWc3RlcnJlaWNoXCIsXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pZW5cIixcbiAgICBcIkFsZ2VyaWVuXCIsXG4gICAgXCJBbWVyaWthbmlzY2gtU2Ftb2FcIixcbiAgICBcIkFtZXJpa2FuaXNjaGUgSnVuZ2Zlcm5pbnNlbG5cIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGFya3Rpc1wiLFxuICAgIFwiQW50aWd1YSB1bmQgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5pZW5cIixcbiAgICBcIkFybWVuaWVuXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXNlcmJhaWRzY2hhblwiLFxuICAgIFwiQXVzdHJhbGllblwiLFxuICAgIFwiQmFoYW1hc1wiLFxuICAgIFwiQmFocmFpblwiLFxuICAgIFwiQmFuZ2xhZGVzY2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxhcnVzXCIsXG4gICAgXCJCZWxnaWVuXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJkaWUgQmVybXVkYXNcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpZW5cIixcbiAgICBcIkJvc25pZW4gdW5kIEhlcnplZ293aW5hXCIsXG4gICAgXCJCb3RzdWFuYVwiLFxuICAgIFwiQm91dmV0aW5zZWxcIixcbiAgICBcIkJyYXNpbGllblwiLFxuICAgIFwiQnJpdGlzY2hlIEp1bmdmZXJuaW5zZWxuXCIsXG4gICAgXCJCcml0aXNjaGVzIFRlcnJpdG9yaXVtIGltIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiQnJ1bmVpIERhcnVzc2FsYW1cIixcbiAgICBcIkJ1bGdhcmllblwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIkNvb2tpbnNlbG5cIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkTDpG5lbWFya1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBSZXB1YmxpayBLb25nb1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBWb2xrc3JlcHVibGlrIEtvcmVhXCIsXG4gICAgXCJEZXV0c2NobGFuZFwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIkRvbWluaWthbmlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJEc2NoaWJ1dGlcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJFc3RsYW5kXCIsXG4gICAgXCJGw6Ryw7ZlclwiLFxuICAgIFwiRmFsa2xhbmRpbnNlbG5cIixcbiAgICBcIkZpZHNjaGlcIixcbiAgICBcIkZpbm5sYW5kXCIsXG4gICAgXCJGcmFua3JlaWNoXCIsXG4gICAgXCJGcmFuesO2c2lzY2gtR3VheWFuYVwiLFxuICAgIFwiRnJhbnrDtnNpc2NoLVBvbHluZXNpZW5cIixcbiAgICBcIkZyYW56w7ZzaXNjaGUgR2ViaWV0ZSBpbSBzw7xkbGljaGVuIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiR2FidW5cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2VvcmdpZW5cIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3JpZWNoZW5sYW5kXCIsXG4gICAgXCJHdWFkZWxvdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgdW5kIE1jRG9uYWxkaW5zZWxuXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZ2tvbmdcIixcbiAgICBcIkluZGllblwiLFxuICAgIFwiSW5kb25lc2llblwiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXJsYW5kXCIsXG4gICAgXCJJc2xhbmRcIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiSXRhbGllblwiLFxuICAgIFwiSmFtYWlrYVwiLFxuICAgIFwiSmFwYW5cIixcbiAgICBcIkplbWVuXCIsXG4gICAgXCJKb3JkYW5pZW5cIixcbiAgICBcIkp1Z29zbGF3aWVuXCIsXG4gICAgXCJLYWltYW5pbnNlbG5cIixcbiAgICBcIkthbWJvZHNjaGFcIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbmFkYVwiLFxuICAgIFwiS2FwIFZlcmRlXCIsXG4gICAgXCJLYXNhY2hzdGFuXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpc2lzdGFuXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS2xlaW5lcmUgYW1lcmlrYW5pc2NoZSDDnGJlcnNlZWluc2VsblwiLFxuICAgIFwiS29rb3NpbnNlbG5cIixcbiAgICBcIktvbHVtYmllblwiLFxuICAgIFwiS29tb3JlblwiLFxuICAgIFwiS29uZ29cIixcbiAgICBcIktyb2F0aWVuXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdXdhaXRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxldHRsYW5kXCIsXG4gICAgXCJMaWJhbm9uXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJ5ZW5cIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdGF1ZW5cIixcbiAgICBcIkx1eGVtYnVyZ1wiLFxuICAgIFwiTWFjYXVcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIk1hbGVkaXZlblwiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcImVoZW1hbGlnZSBqdWdvc2xhd2lzY2hlIFJlcHVibGlrIE1hemVkb25pZW5cIixcbiAgICBcIk1hcm9ra29cIixcbiAgICBcIk1hcnNoYWxsaW5zZWxuXCIsXG4gICAgXCJNYXJ0aW5pcXVlXCIsXG4gICAgXCJNYXVyZXRhbmllblwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIk1pa3JvbmVzaWVuXCIsXG4gICAgXCJNb25hY29cIixcbiAgICBcIk1vbmdvbGVpXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3NhbWJpa1wiLFxuICAgIFwiTXlhbm1hclwiLFxuICAgIFwiTsO2cmRsaWNoZSBNYXJpYW5lblwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJOZXVrYWxlZG9uaWVuXCIsXG4gICAgXCJOZXVzZWVsYW5kXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZWRlcmzDpG5kaXNjaGUgQW50aWxsZW5cIixcbiAgICBcIk5pZWRlcmxhbmRlXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9yZm9sa2luc2VsXCIsXG4gICAgXCJOb3J3ZWdlblwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiT3N0dGltb3JcIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YS1OZXVndWluZWFcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQaGlsaXBwaW5lblwiLFxuICAgIFwiUGl0Y2Fpcm5pbnNlbG5cIixcbiAgICBcIlBvbGVuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlLDqXVuaW9uXCIsXG4gICAgXCJSZXB1YmxpayBLb3JlYVwiLFxuICAgIFwiUmVwdWJsaWsgTW9sZGF1XCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlJ1bcOkbmllblwiLFxuICAgIFwiUnVzc2lzY2hlIEbDtmRlcmF0aW9uXCIsXG4gICAgXCJTw6NvIFRvbcOpIHVuZCBQcsOtbmNpcGVcIixcbiAgICBcIlPDvGRhZnJpa2FcIixcbiAgICBcIlPDvGRnZW9yZ2llbiB1bmQgU8O8ZGxpY2hlIFNhbmR3aWNoaW5zZWxuXCIsXG4gICAgXCJTYWxvbW9uZW5cIixcbiAgICBcIlNhbWJpYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNhdWRpLUFyYWJpZW5cIixcbiAgICBcIlNjaHdlZGVuXCIsXG4gICAgXCJTY2h3ZWl6XCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXljaGVsbGVuXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbWJhYndlXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU2xvd2FrZWlcIixcbiAgICBcIlNsb3dlbmllblwiLFxuICAgIFwiU29tYWxpZW5cIixcbiAgICBcIlNwYW5pZW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3QuIEhlbGVuYVwiLFxuICAgIFwiU3QuIEtpdHRzIHVuZCBOZXZpc1wiLFxuICAgIFwiU3QuIEx1Y2lhXCIsXG4gICAgXCJTdC4gUGllcnJlIHVuZCBNaXF1ZWxvblwiLFxuICAgIFwiU3QuIFZpbmNlbnQgdW5kIGRpZSBHcmVuYWRpbmVuXCIsXG4gICAgXCJTdWRhblwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3ZhbGJhcmQgdW5kIEphbiBNYXllblwiLFxuICAgIFwiU3dhc2lsYW5kXCIsXG4gICAgXCJTeXJpZW5cIixcbiAgICBcIlTDvHJrZWlcIixcbiAgICBcIlRhZHNjaGlraXN0YW5cIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiVGFuc2FuaWFcIixcbiAgICBcIlRoYWlsYW5kXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb2tlbGF1XCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJpbmlkYWQgdW5kIFRvYmFnb1wiLFxuICAgIFwiVHNjaGFkXCIsXG4gICAgXCJUc2NoZWNoaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIlR1bmVzaWVuXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1cmtzLSB1bmQgQ2FpY29zaW5zZWxuXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluZVwiLFxuICAgIFwiVW5nYXJuXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVc2Jla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWYXRpa2Fuc3RhZHRcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVyZWluaWd0ZSBBcmFiaXNjaGUgRW1pcmF0ZVwiLFxuICAgIFwiVmVyZWluaWd0ZSBTdGFhdGVuXCIsXG4gICAgXCJWZXJlaW5pZ3RlcyBLw7ZuaWdyZWljaFwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiV2FsbGlzIHVuZCBGdXR1bmFcIixcbiAgICBcIldlaWhuYWNodHNpbnNlbFwiLFxuICAgIFwiV2VzdHNhaGFyYVwiLFxuICAgIFwiWmVudHJhbGFmcmlrYW5pc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiWnlwZXJuXCJcbiAgXSxcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJBY2tlcndlZ1wiLFxuICAgIFwiQWRhbGJlcnQtU3RpZnRlci1TdHIuXCIsXG4gICAgXCJBZGFsYmVydHN0ci5cIixcbiAgICBcIkFkb2xmLUJhZXllci1TdHIuXCIsXG4gICAgXCJBZG9sZi1LYXNjaG55LVN0ci5cIixcbiAgICBcIkFkb2xmLVJlaWNod2Vpbi1TdHIuXCIsXG4gICAgXCJBZG9sZnNzdHIuXCIsXG4gICAgXCJBaG9ybndlZ1wiLFxuICAgIFwiQWhyc3RyLlwiLFxuICAgIFwiQWthemllbndlZ1wiLFxuICAgIFwiQWxiZXJ0LUVpbnN0ZWluLVN0ci5cIixcbiAgICBcIkFsYmVydC1TY2h3ZWl0emVyLVN0ci5cIixcbiAgICBcIkFsYmVydHVzLU1hZ251cy1TdHIuXCIsXG4gICAgXCJBbGJlcnQtWmFydGhlLVdlZ1wiLFxuICAgIFwiQWxiaW4tRWRlbG1hbm4tU3RyLlwiLFxuICAgIFwiQWxicmVjaHQtSGF1c2hvZmVyLVN0ci5cIixcbiAgICBcIkFsZGVndW5kaXNzdHIuXCIsXG4gICAgXCJBbGV4YW5kZXJzdHIuXCIsXG4gICAgXCJBbGZyZWQtRGVscC1TdHIuXCIsXG4gICAgXCJBbGZyZWQtS3ViaW4tU3RyLlwiLFxuICAgIFwiQWxmcmVkLVN0b2NrLVN0ci5cIixcbiAgICBcIkFsa2VucmF0aGVyIFN0ci5cIixcbiAgICBcIkFsbGVuc3RlaW5lciBTdHIuXCIsXG4gICAgXCJBbHNlbnN0ci5cIixcbiAgICBcIkFsdCBTdGVpbmLDvGNoZWxlciBXZWdcIixcbiAgICBcIkFsdGUgR2FydGVuXCIsXG4gICAgXCJBbHRlIEhlaWRlXCIsXG4gICAgXCJBbHRlIExhbmRzdHIuXCIsXG4gICAgXCJBbHRlIFppZWdlbGVpXCIsXG4gICAgXCJBbHRlbmJlcmdlciBTdHIuXCIsXG4gICAgXCJBbHRlbmhvZlwiLFxuICAgIFwiQWx0ZXIgR3Jlbnp3ZWdcIixcbiAgICBcIkFsdHN0YWR0c3RyLlwiLFxuICAgIFwiQW0gQWx0ZW4gR2Fzd2Vya1wiLFxuICAgIFwiQW0gQWx0ZW4gU2NoYWZzdGFsbFwiLFxuICAgIFwiQW0gQXJlbnpiZXJnXCIsXG4gICAgXCJBbSBCZW50aGFsXCIsXG4gICAgXCJBbSBCaXJrZW5iZXJnXCIsXG4gICAgXCJBbSBCbGF1ZW4gQmVyZ1wiLFxuICAgIFwiQW0gQm9yc2JlcmdcIixcbiAgICBcIkFtIEJydW5nZW5cIixcbiAgICBcIkFtIELDvGNoZWx0ZXIgSG9mXCIsXG4gICAgXCJBbSBCdXR0ZXJtYXJrdFwiLFxuICAgIFwiQW0gRWhyZW5mcmllZGhvZlwiLFxuICAgIFwiQW0gRXNlbHNkYW1tXCIsXG4gICAgXCJBbSBGYWxrZW5iZXJnXCIsXG4gICAgXCJBbSBGcmFua2VuYmVyZ1wiLFxuICAgIFwiQW0gR2VzdW5kaGVpdHNwYXJrXCIsXG4gICAgXCJBbSBHaWVybGljaHNob2ZcIixcbiAgICBcIkFtIEdyYWJlblwiLFxuICAgIFwiQW0gSGFnZWxrcmV1elwiLFxuICAgIFwiQW0gSGFuZ1wiLFxuICAgIFwiQW0gSGVpZGthbXBcIixcbiAgICBcIkFtIEhlbW1lbHJhdGhlciBIb2ZcIixcbiAgICBcIkFtIEhvZmFja2VyXCIsXG4gICAgXCJBbSBIb2hlbiBVZmVyXCIsXG4gICAgXCJBbSBIw7ZsbGVycyBFY2tcIixcbiAgICBcIkFtIEjDvGhuZXJiZXJnXCIsXG4gICAgXCJBbSBKw6RnZXJob2ZcIixcbiAgICBcIkFtIEp1bmtlcm5rYW1wXCIsXG4gICAgXCJBbSBLZW1wZXJzdGllZ2VsXCIsXG4gICAgXCJBbSBLZXR0bmVyc2J1c2NoXCIsXG4gICAgXCJBbSBLaWVzYmVyZ1wiLFxuICAgIFwiQW0gS2zDtnN0ZXJjaGVuXCIsXG4gICAgXCJBbSBLbmVjaHRzZ3JhYmVuXCIsXG4gICAgXCJBbSBLw7ZsbGVyd2VnXCIsXG4gICAgXCJBbSBLw7Z0dGVyc2JhY2hcIixcbiAgICBcIkFtIEtyZWlzcGFya1wiLFxuICAgIFwiQW0gS3JvbmVmZWxkXCIsXG4gICAgXCJBbSBLw7xjaGVuaG9mXCIsXG4gICAgXCJBbSBLw7xobnNidXNjaFwiLFxuICAgIFwiQW0gTGluZGVuZmVsZFwiLFxuICAgIFwiQW0gTcOkcmNoZW5cIixcbiAgICBcIkFtIE1pdHRlbGJlcmdcIixcbiAgICBcIkFtIE3Dtm5jaHNob2ZcIixcbiAgICBcIkFtIE3DvGhsZW5iYWNoXCIsXG4gICAgXCJBbSBOZXVlbmhvZlwiLFxuICAgIFwiQW0gTm9ubmVuYnJ1Y2hcIixcbiAgICBcIkFtIFBsYXR0ZW5idXNjaFwiLFxuICAgIFwiQW0gUXVldHRpbmdlciBGZWxkXCIsXG4gICAgXCJBbSBSb3NlbmjDvGdlbFwiLFxuICAgIFwiQW0gU2FuZGJlcmdcIixcbiAgICBcIkFtIFNjaGVyZmVuYnJhbmRcIixcbiAgICBcIkFtIFNjaG9ra2VyXCIsXG4gICAgXCJBbSBTaWxiZXJzZWVcIixcbiAgICBcIkFtIFNvbm5lbmhhbmdcIixcbiAgICBcIkFtIFNwb3J0cGxhdHpcIixcbiAgICBcIkFtIFN0YWR0cGFya1wiLFxuICAgIFwiQW0gU3RlaW5iZXJnXCIsXG4gICAgXCJBbSBUZWxlZ3JhZlwiLFxuICAgIFwiQW0gVGhlbGVuaG9mXCIsXG4gICAgXCJBbSBWb2dlbGtyZXV6XCIsXG4gICAgXCJBbSBWb2dlbHNhbmdcIixcbiAgICBcIkFtIFZvZ2Vsc2ZlbGRjaGVuXCIsXG4gICAgXCJBbSBXYW1iYWNoZXIgSG9mXCIsXG4gICAgXCJBbSBXYXNzZXJ0dXJtXCIsXG4gICAgXCJBbSBXZWlkZW5idXNjaFwiLFxuICAgIFwiQW0gV2VpaGVyXCIsXG4gICAgXCJBbSBXZWluZ2FydGVuXCIsXG4gICAgXCJBbSBXZXJ0aFwiLFxuICAgIFwiQW1zZWx3ZWdcIixcbiAgICBcIkFuIGRlbiBJcmxlblwiLFxuICAgIFwiQW4gZGVuIFJoZWluYXVlblwiLFxuICAgIFwiQW4gZGVyIEJlcmdlcndlaWRlXCIsXG4gICAgXCJBbiBkZXIgRGluZ2JhbmtcIixcbiAgICBcIkFuIGRlciBFdmFuZ2VsaXNjaGVuIEtpcmNoZVwiLFxuICAgIFwiQW4gZGVyIEV2Z2wuIEtpcmNoZVwiLFxuICAgIFwiQW4gZGVyIEZlbGRnYXNzZVwiLFxuICAgIFwiQW4gZGVyIEZldHRlaGVubmVcIixcbiAgICBcIkFuIGRlciBLYW50ZVwiLFxuICAgIFwiQW4gZGVyIExhYWNoXCIsXG4gICAgXCJBbiBkZXIgTGVobWt1aGxlXCIsXG4gICAgXCJBbiBkZXIgTGljaHRlbmJ1cmdcIixcbiAgICBcIkFuIGRlciBMdWlzZW5idXJnXCIsXG4gICAgXCJBbiBkZXIgUm9iZXJ0c2J1cmdcIixcbiAgICBcIkFuIGRlciBTY2htaXR0ZW5cIixcbiAgICBcIkFuIGRlciBTY2h1c3Rlcmluc2VsXCIsXG4gICAgXCJBbiBkZXIgU3RlaW5yw7x0c2NoXCIsXG4gICAgXCJBbiBTdC4gQW5kcmVhc1wiLFxuICAgIFwiQW4gU3QuIFJlbWlnaXVzXCIsXG4gICAgXCJBbmRyZWFzc3RyLlwiLFxuICAgIFwiQW5rZXJ3ZWdcIixcbiAgICBcIkFubmV0dGUtS29sYi1TdHIuXCIsXG4gICAgXCJBcGVucmFkZXIgU3RyLlwiLFxuICAgIFwiQXJub2xkLU9obGV0ei1TdHIuXCIsXG4gICAgXCJBdHpsZW5iYWNoZXIgU3RyLlwiLFxuICAgIFwiQXVlcndlZ1wiLFxuICAgIFwiQXVlc3RyLlwiLFxuICAgIFwiQXVmIGRlbSBBY2tlclwiLFxuICAgIFwiQXVmIGRlbSBCbGFobmVuaG9mXCIsXG4gICAgXCJBdWYgZGVtIEJvaG5iw7xjaGVsXCIsXG4gICAgXCJBdWYgZGVtIEJydWNoXCIsXG4gICAgXCJBdWYgZGVtIEVuZFwiLFxuICAgIFwiQXVmIGRlbSBGb3JzdFwiLFxuICAgIFwiQXVmIGRlbSBIZXJiZXJnXCIsXG4gICAgXCJBdWYgZGVtIExlaG5cIixcbiAgICBcIkF1ZiBkZW0gU3RlaW5cIixcbiAgICBcIkF1ZiBkZW0gV2VpZXJiZXJnXCIsXG4gICAgXCJBdWYgZGVtIFdlaWhlcmhhaG5cIixcbiAgICBcIkF1ZiBkZW4gUmVpZW5cIixcbiAgICBcIkF1ZiBkZXIgRG9ubmVuXCIsXG4gICAgXCJBdWYgZGVyIEdyaWXDn2VcIixcbiAgICBcIkF1ZiBkZXIgT2htZXJcIixcbiAgICBcIkF1ZiBkZXIgV2VpZGVcIixcbiAgICBcIkF1ZidtIEJlcmdcIixcbiAgICBcIkF1ZidtIEthbXBcIixcbiAgICBcIkF1Z3VzdGFzdHIuXCIsXG4gICAgXCJBdWd1c3QtS2VrdWzDqS1TdHIuXCIsXG4gICAgXCJBLi1XLi12Li1Ib2ZtYW5uLVN0ci5cIixcbiAgICBcIkJhaG5hbGxlZVwiLFxuICAgIFwiQmFobmhvZnN0ci5cIixcbiAgICBcIkJhbHRydW1zdHIuXCIsXG4gICAgXCJCYW1iZXJnZXIgU3RyLlwiLFxuICAgIFwiQmF1bWJlcmdlciBTdHIuXCIsXG4gICAgXCJCZWJlbHN0ci5cIixcbiAgICBcIkJlY2tlcnMgS8OkbXBjaGVuXCIsXG4gICAgXCJCZWVyZW5zdHIuXCIsXG4gICAgXCJCZWV0aG92ZW5zdHIuXCIsXG4gICAgXCJCZWhyaW5nc3RyLlwiLFxuICAgIFwiQmVuZGVud2VnXCIsXG4gICAgXCJCZW5zYmVyZ2VyIFN0ci5cIixcbiAgICBcIkJlbnpzdHIuXCIsXG4gICAgXCJCZXJnaXNjaGUgTGFuZHN0ci5cIixcbiAgICBcIkJlcmdzdHIuXCIsXG4gICAgXCJCZXJsaW5lciBQbGF0elwiLFxuICAgIFwiQmVybGluZXIgU3RyLlwiLFxuICAgIFwiQmVybmhhcmQtTGV0dGVyaGF1cy1TdHIuXCIsXG4gICAgXCJCZXJuaGFyZC1MaWNodGVuYmVyZy1TdHIuXCIsXG4gICAgXCJCZXJuaGFyZC1SaWRkZXItU3RyLlwiLFxuICAgIFwiQmVybnN0ZWluc3RyLlwiLFxuICAgIFwiQmVydGhhLU1pZGRlbGhhdXZlLVN0ci5cIixcbiAgICBcIkJlcnRoYS12b24tU3V0dG5lci1TdHIuXCIsXG4gICAgXCJCZXJ0b2x0LUJyZWNodC1TdHIuXCIsXG4gICAgXCJCZXJ6ZWxpdXNzdHIuXCIsXG4gICAgXCJCaWVsZXJ0c3RyLlwiLFxuICAgIFwiQmllc2VuYmFjaFwiLFxuICAgIFwiQmlsbHJvdGhzdHIuXCIsXG4gICAgXCJCaXJrZW5iZXJnc3RyLlwiLFxuICAgIFwiQmlya2VuZ2FydGVuc3RyLlwiLFxuICAgIFwiQmlya2Vud2VnXCIsXG4gICAgXCJCaXNtYXJja3N0ci5cIixcbiAgICBcIkJpdHRlcmZlbGRlciBTdHIuXCIsXG4gICAgXCJCbGFua2VuYnVyZ1wiLFxuICAgIFwiQmxhdWtlaGxjaGVud2VnXCIsXG4gICAgXCJCbMO8dGVuc3RyLlwiLFxuICAgIFwiQm9iZXJzdHIuXCIsXG4gICAgXCJCw7Zja2xlcnN0ci5cIixcbiAgICBcIkJvZGVsc2Nod2luZ2hzdHIuXCIsXG4gICAgXCJCb2Rlc3RyLlwiLFxuICAgIFwiQm9nZW5zdHIuXCIsXG4gICAgXCJCb2huZW5rYW1wc3dlZ1wiLFxuICAgIFwiQm9ob2Zzd2VnXCIsXG4gICAgXCJCb25pZmF0aXVzc3RyLlwiLFxuICAgIFwiQm9ubmVyIFN0ci5cIixcbiAgICBcIkJvcmt1bXN0ci5cIixcbiAgICBcIkJvcm5oZWltZXIgU3RyLlwiLFxuICAgIFwiQm9yc2lnc3RyLlwiLFxuICAgIFwiQm9ydXNzaWFzdHIuXCIsXG4gICAgXCJCcmFja25lbGxzdHIuXCIsXG4gICAgXCJCcmFobXN3ZWdcIixcbiAgICBcIkJyYW5kZW5idXJnZXIgU3RyLlwiLFxuICAgIFwiQnJlaWRlbmJhY2hzdHIuXCIsXG4gICAgXCJCcmVzbGF1ZXIgU3RyLlwiLFxuICAgIFwiQnJ1Y2hoYXVzZXIgU3RyLlwiLFxuICAgIFwiQnLDvGNrZW5zdHIuXCIsXG4gICAgXCJCcnVja25lcnN0ci5cIixcbiAgICBcIkJyw7xkZXItQm9uaG9lZmZlci1TdHIuXCIsXG4gICAgXCJCdWNoZW53ZWdcIixcbiAgICBcIkLDvHJnZXJidXNjaHdlZ1wiLFxuICAgIFwiQnVyZ2xvY2hcIixcbiAgICBcIkJ1cmdwbGF0elwiLFxuICAgIFwiQnVyZ3N0ci5cIixcbiAgICBcIkJ1cmd3ZWdcIixcbiAgICBcIkLDvHJyaWdlciBXZWdcIixcbiAgICBcIkJ1cnNjaGVpZGVyIFN0ci5cIixcbiAgICBcIkJ1c2Noa8OkbXBjaGVuXCIsXG4gICAgXCJCdXR0ZXJoZWlkZXIgU3RyLlwiLFxuICAgIFwiQ2FybC1EdWlzYmVyZy1QbGF0elwiLFxuICAgIFwiQ2FybC1EdWlzYmVyZy1TdHIuXCIsXG4gICAgXCJDYXJsLUxldmVya3VzLVN0ci5cIixcbiAgICBcIkNhcmwtTWFyaWEtdm9uLVdlYmVyLVBsYXR6XCIsXG4gICAgXCJDYXJsLU1hcmlhLXZvbi1XZWJlci1TdHIuXCIsXG4gICAgXCJDYXJsby1NaWVyZW5kb3JmZi1TdHIuXCIsXG4gICAgXCJDYXJsLVJ1bXBmZi1TdHIuXCIsXG4gICAgXCJDYXJsLXZvbi1Pc3NpZXR6a3ktU3RyLlwiLFxuICAgIFwiQ2hhcmxvdHRlbmJ1cmdlciBTdHIuXCIsXG4gICAgXCJDaHJpc3RpYW4tSGXDny1TdHIuXCIsXG4gICAgXCJDbGFhc2JydWNoXCIsXG4gICAgXCJDbGVtZW5zLVdpbmtsZXItU3RyLlwiLFxuICAgIFwiQ29uY29yZGlhc3RyLlwiLFxuICAgIFwiQ3JhbmFjaHN0ci5cIixcbiAgICBcIkRhaGxlbWVyIFN0ci5cIixcbiAgICBcIkRhaW1sZXJzdHIuXCIsXG4gICAgXCJEYW1hc2Noa2VzdHIuXCIsXG4gICAgXCJEYW56aWdlciBTdHIuXCIsXG4gICAgXCJEZWJlbmdhc3NlXCIsXG4gICAgXCJEZWNoYW50LUZlaW4tU3RyLlwiLFxuICAgIFwiRGVjaGFudC1LcmV5LVN0ci5cIixcbiAgICBcIkRlaWNodG9yc3RyLlwiLFxuICAgIFwiRGjDvG5uYmVyZ1wiLFxuICAgIFwiRGjDvG5uc3RyLlwiLFxuICAgIFwiRGlhbmFzdHIuXCIsXG4gICAgXCJEaWVkZW5ob2ZlbmVyIFN0ci5cIixcbiAgICBcIkRpZXBlbnRhbFwiLFxuICAgIFwiRGllcGVudGhhbGVyIFN0ci5cIixcbiAgICBcIkRpZXNlbHN0ci5cIixcbiAgICBcIkRpbGxpbmdlciBTdHIuXCIsXG4gICAgXCJEaXN0ZWxrYW1wXCIsXG4gICAgXCJEb2hyZ2Fzc2VcIixcbiAgICBcIkRvbWJsaWNrXCIsXG4gICAgXCJEw7ZuaG9mZnN0ci5cIixcbiAgICBcIkRvcm5pZXJzdHIuXCIsXG4gICAgXCJEcmFjaGVuZmVsc3N0ci5cIixcbiAgICBcIkRyLi1BdWd1c3QtQmxhbmstU3RyLlwiLFxuICAgIFwiRHJlc2RlbmVyIFN0ci5cIixcbiAgICBcIkRyaWVzY2hlciBIZWNrZVwiLFxuICAgIFwiRHJvc3NlbHdlZ1wiLFxuICAgIFwiRHVkd2VpbGVyc3RyLlwiLFxuICAgIFwiRMO8bmVud2VnXCIsXG4gICAgXCJEw7xuZmVsZGVyIFN0ci5cIixcbiAgICBcIkTDvG5ud2FsZGVyIEdyZW56d2VnXCIsXG4gICAgXCJEw7xwcGVsZXIgU3RyLlwiLFxuICAgIFwiRMO8cmVyc3RyLlwiLFxuICAgIFwiRMO8cnNjaGVpZGVyIFdlZ1wiLFxuICAgIFwiRMO8c3NlbGRvcmZlciBTdHIuXCIsXG4gICAgXCJFZGVscmF0aGVyIFdlZ1wiLFxuICAgIFwiRWRtdW5kLUh1c3NlcmwtU3RyLlwiLFxuICAgIFwiRWR1YXJkLVNwcmFuZ2VyLVN0ci5cIixcbiAgICBcIkVocmxpY2hzdHIuXCIsXG4gICAgXCJFaWNoZW5rYW1wXCIsXG4gICAgXCJFaWNoZW53ZWdcIixcbiAgICBcIkVpZGVjaHNlbndlZ1wiLFxuICAgIFwiRWlmZWxzdHIuXCIsXG4gICAgXCJFaWZnZW5zdHIuXCIsXG4gICAgXCJFaW50cmFjaHRzdHIuXCIsXG4gICAgXCJFbGJlc3RyLlwiLFxuICAgIFwiRWxpc2FiZXRoLUxhbmdnw6Rzc2VyLVN0ci5cIixcbiAgICBcIkVsaXNhYmV0aHN0ci5cIixcbiAgICBcIkVsaXNhYmV0aC12b24tVGhhZGRlbi1TdHIuXCIsXG4gICAgXCJFbGlzZW5zdHIuXCIsXG4gICAgXCJFbHNhLUJyw6RuZHN0csO2bS1TdHIuXCIsXG4gICAgXCJFbHNiYWNoc3RyLlwiLFxuICAgIFwiRWxzZS1MYXNrZXItU2Now7xsZXItU3RyLlwiLFxuICAgIFwiRWxzdGVyc3RyLlwiLFxuICAgIFwiRW1pbC1GaXNjaGVyLVN0ci5cIixcbiAgICBcIkVtaWwtTm9sZGUtU3RyLlwiLFxuICAgIFwiRW5nZWxiZXJ0c3RyLlwiLFxuICAgIFwiRW5nc3RlbmJlcmdlciBXZWdcIixcbiAgICBcIkVudGVucGZ1aGxcIixcbiAgICBcIkVyYmVsZWdhc3NlXCIsXG4gICAgXCJFcmZ0c3RyLlwiLFxuICAgIFwiRXJmdXJ0ZXIgU3RyLlwiLFxuICAgIFwiRXJpY2gtSGVja2VsLVN0ci5cIixcbiAgICBcIkVyaWNoLUtsYXVzZW5lci1TdHIuXCIsXG4gICAgXCJFcmljaC1PbGxlbmhhdWVyLVN0ci5cIixcbiAgICBcIkVybGVud2VnXCIsXG4gICAgXCJFcm5zdC1CbG9jaC1TdHIuXCIsXG4gICAgXCJFcm5zdC1MdWR3aWctS2lyY2huZXItU3RyLlwiLFxuICAgIFwiRXJ6YmVyZ2Vyc3RyLlwiLFxuICAgIFwiRXNjaGVuYWxsZWVcIixcbiAgICBcIkVzY2hlbndlZ1wiLFxuICAgIFwiRXNtYXJjaHN0ci5cIixcbiAgICBcIkVzcGVud2VnXCIsXG4gICAgXCJFdWNrZW5zdHIuXCIsXG4gICAgXCJFdWxlbmdhc3NlXCIsXG4gICAgXCJFdWxlbmthbXBcIixcbiAgICBcIkV3YWxkLUZsYW1tZS1TdHIuXCIsXG4gICAgXCJFd2FsZC1Sw7ZsbC1TdHIuXCIsXG4gICAgXCJGw6RocnN0ci5cIixcbiAgICBcIkZhcm53ZWdcIixcbiAgICBcIkZhc2FuZW53ZWdcIixcbiAgICBcIkZhw59iYWNoZXIgSG9mXCIsXG4gICAgXCJGZWxkZXJzdHIuXCIsXG4gICAgXCJGZWxka2FtcHN0ci5cIixcbiAgICBcIkZlbGRzaWVmZXIgV2VnXCIsXG4gICAgXCJGZWxkc2llZmVyIFdpZXNlblwiLFxuICAgIFwiRmVsZHN0ci5cIixcbiAgICBcIkZlbGR0b3JzdHIuXCIsXG4gICAgXCJGZWxpeC12b24tUm9sbC1TdHIuXCIsXG4gICAgXCJGZXJkaW5hbmQtTGFzc2FsbGUtU3RyLlwiLFxuICAgIFwiRmVzdGVyIFdlZ1wiLFxuICAgIFwiRmV1ZXJiYWNoc3RyLlwiLFxuICAgIFwiRmV1ZXJkb3Jud2VnXCIsXG4gICAgXCJGaWNodGVud2VnXCIsXG4gICAgXCJGaWNodGVzdHIuXCIsXG4gICAgXCJGaW5rZWxzdGVpbnN0ci5cIixcbiAgICBcIkZpbmtlbndlZ1wiLFxuICAgIFwiRml4aGVpZGVyIFN0ci5cIixcbiAgICBcIkZsYWJiZW5ow6R1c2NoZW5cIixcbiAgICBcIkZsZW5zYnVyZ2VyIFN0ci5cIixcbiAgICBcIkZsaWVkZXJ3ZWdcIixcbiAgICBcIkZsb3Jhc3RyLlwiLFxuICAgIFwiRmxvcmlhbndlZ1wiLFxuICAgIFwiRmxvdG93c3RyLlwiLFxuICAgIFwiRmx1cnN0ci5cIixcbiAgICBcIkbDtmhyZW53ZWdcIixcbiAgICBcIkZvbnRhbmVzdHIuXCIsXG4gICAgXCJGb3JlbGxlbnRhbFwiLFxuICAgIFwiRm9ydHVuYXN0ci5cIixcbiAgICBcIkZyYW56LUVzc2VyLVN0ci5cIixcbiAgICBcIkZyYW56LUhpdHplLVN0ci5cIixcbiAgICBcIkZyYW56LUthaWwtU3RyLlwiLFxuICAgIFwiRnJhbnotTWFyYy1TdHIuXCIsXG4gICAgXCJGcmVpYnVyZ2VyIFN0ci5cIixcbiAgICBcIkZyZWloZWl0c3RyLlwiLFxuICAgIFwiRnJlaWhlcnItdm9tLVN0ZWluLVN0ci5cIixcbiAgICBcIkZyZXVkZW50aGFsXCIsXG4gICAgXCJGcmV1ZGVudGhhbGVyIFdlZ1wiLFxuICAgIFwiRnJpZHRqb2YtTmFuc2VuLVN0ci5cIixcbiAgICBcIkZyaWVkZW5iZXJnZXIgU3RyLlwiLFxuICAgIFwiRnJpZWRlbnNzdHIuXCIsXG4gICAgXCJGcmllZGhvZnN0ci5cIixcbiAgICBcIkZyaWVkbGFuZHN0ci5cIixcbiAgICBcIkZyaWVkbGllYi1GZXJkaW5hbmQtUnVuZ2UtU3RyLlwiLFxuICAgIFwiRnJpZWRyaWNoLUJheWVyLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1CZXJnaXVzLVBsYXR6XCIsXG4gICAgXCJGcmllZHJpY2gtRWJlcnQtUGxhdHpcIixcbiAgICBcIkZyaWVkcmljaC1FYmVydC1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtRW5nZWxzLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1MaXN0LVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1OYXVtYW5uLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1TZXJ0w7xybmVyLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaHN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1XZXNrb3R0LVN0ci5cIixcbiAgICBcIkZyaWVzZW53ZWdcIixcbiAgICBcIkZyaXNjaGVuYmVyZ1wiLFxuICAgIFwiRnJpdHotRXJsZXItU3RyLlwiLFxuICAgIFwiRnJpdHotSGVuc2VsZXItU3RyLlwiLFxuICAgIFwiRnLDtmJlbHN0ci5cIixcbiAgICBcIkbDvHJzdGVuYmVyZ3BsYXR6XCIsXG4gICAgXCJGw7xyc3RlbmJlcmdzdHIuXCIsXG4gICAgXCJHYWJyaWVsZS1Nw7xudGVyLVN0ci5cIixcbiAgICBcIkdhcnRlbnN0ci5cIixcbiAgICBcIkdlYmhhcmRzdHIuXCIsXG4gICAgXCJHZWliZWxzdHIuXCIsXG4gICAgXCJHZWxsZXJ0c3RyLlwiLFxuICAgIFwiR2Vvcmctdm9uLVZvbGxtYXItU3RyLlwiLFxuICAgIFwiR2VyaGFyZC1Eb21hZ2stU3RyLlwiLFxuICAgIFwiR2VyaGFydC1IYXVwdG1hbm4tU3RyLlwiLFxuICAgIFwiR2VyaWNodHNzdHIuXCIsXG4gICAgXCJHZXNjaHdpc3Rlci1TY2hvbGwtU3RyLlwiLFxuICAgIFwiR2V6ZWxpbmFsbGVlXCIsXG4gICAgXCJHaWVyZW5lciBXZWdcIixcbiAgICBcIkdpbnN0ZXJ3ZWdcIixcbiAgICBcIkdpc2JlcnQtQ3JlbWVyLVN0ci5cIixcbiAgICBcIkdsw7xja3NidXJnZXIgU3RyLlwiLFxuICAgIFwiR2x1Y2tzdHIuXCIsXG4gICAgXCJHbmVpc2VuYXVzdHIuXCIsXG4gICAgXCJHb2V0aGVwbGF0elwiLFxuICAgIFwiR29ldGhlc3RyLlwiLFxuICAgIFwiR29sby1NYW5uLVN0ci5cIixcbiAgICBcIkfDtnJsaXR6ZXIgU3RyLlwiLFxuICAgIFwiR8O2cnJlc3N0ci5cIixcbiAgICBcIkdyYWViZXN0ci5cIixcbiAgICBcIkdyYWYtR2FsZW4tUGxhdHpcIixcbiAgICBcIkdyZWdvci1NZW5kZWwtU3RyLlwiLFxuICAgIFwiR3JlaWZzd2FsZGVyIFN0ci5cIixcbiAgICBcIkdyaWxsZW53ZWdcIixcbiAgICBcIkdyb25lbmJvcm5lciBXZWdcIixcbiAgICBcIkdyb8OfZSBLaXJjaHN0ci5cIixcbiAgICBcIkdydW5kZXIgV2llc2VuXCIsXG4gICAgXCJHcnVuZGVybcO8aGxlXCIsXG4gICAgXCJHcnVuZGVybcO8aGxlbmhvZlwiLFxuICAgIFwiR3J1bmRlcm3DvGhsZW53ZWdcIixcbiAgICBcIkdyw7xuZXIgV2VnXCIsXG4gICAgXCJHcnVuZXdhbGRzdHIuXCIsXG4gICAgXCJHcsO8bnN0ci5cIixcbiAgICBcIkfDvG50aGVyLVdlaXNlbmJvcm4tU3RyLlwiLFxuICAgIFwiR3VzdGF2LUZyZXl0YWctU3RyLlwiLFxuICAgIFwiR3VzdGF2LUhlaW5lbWFubi1TdHIuXCIsXG4gICAgXCJHdXN0YXYtUmFkYnJ1Y2gtU3RyLlwiLFxuICAgIFwiR3V0IFJldXNjaGVuYmVyZ1wiLFxuICAgIFwiR3V0ZW5iZXJnc3RyLlwiLFxuICAgIFwiSGFiZXJzdHIuXCIsXG4gICAgXCJIYWJpY2h0Z2Fzc2VcIixcbiAgICBcIkhhZmVuc3RyLlwiLFxuICAgIFwiSGFnZW5hdWVyIFN0ci5cIixcbiAgICBcIkhhaG5lbmJsZWNoZXJcIixcbiAgICBcIkhhbGVuc2Vlc3RyLlwiLFxuICAgIFwiSGFsZmVubGVpbWJhY2hcIixcbiAgICBcIkhhbGxlc2NoZSBTdHIuXCIsXG4gICAgXCJIYWxsaWdzdHIuXCIsXG4gICAgXCJIYW1iZXJnZXIgU3RyLlwiLFxuICAgIFwiSGFtbWVyd2VnXCIsXG4gICAgXCJIw6RuZGVsc3RyLlwiLFxuICAgIFwiSGFubmFoLUjDtmNoLVN0ci5cIixcbiAgICBcIkhhbnMtQXJwLVN0ci5cIixcbiAgICBcIkhhbnMtR2VyaGFyZC1TdHIuXCIsXG4gICAgXCJIYW5zLVNhY2hzLVN0ci5cIixcbiAgICBcIkhhbnMtU2NobGVoYWhuLVN0ci5cIixcbiAgICBcIkhhbnMtdm9uLURvaG5hbnlpLVN0ci5cIixcbiAgICBcIkhhcmRlbmJlcmdzdHIuXCIsXG4gICAgXCJIYXNlbHdlZ1wiLFxuICAgIFwiSGF1cHRzdHIuXCIsXG4gICAgXCJIYXVzLVZvcnN0ZXItU3RyLlwiLFxuICAgIFwiSGF1d2VnXCIsXG4gICAgXCJIYXZlbHN0ci5cIixcbiAgICBcIkhhdmVuc3RlaW5zdHIuXCIsXG4gICAgXCJIYXlkbnN0ci5cIixcbiAgICBcIkhlYmJlbHN0ci5cIixcbiAgICBcIkhlY2tlbndlZ1wiLFxuICAgIFwiSGVlcndlZ1wiLFxuICAgIFwiSGVnZWxzdHIuXCIsXG4gICAgXCJIZWlkYmVyZ1wiLFxuICAgIFwiSGVpZGVow7ZoZVwiLFxuICAgIFwiSGVpZGVzdHIuXCIsXG4gICAgXCJIZWltc3TDpHR0ZW53ZWdcIixcbiAgICBcIkhlaW5yaWNoLULDtmxsLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUJyw7xuaW5nLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUNsYWVzLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUhlaW5lLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUjDtnJsZWluLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUzDvGJrZS1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1Mw7x0emVua2lyY2hlbi1XZWdcIixcbiAgICBcIkhlaW5yaWNoc3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtU3RyZXJhdGgtU3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtdm9uLUtsZWlzdC1TdHIuXCIsXG4gICAgXCJIZWlucmljaC12b24tU3RlcGhhbi1TdHIuXCIsXG4gICAgXCJIZWlzdGVyYmFjaHN0ci5cIixcbiAgICBcIkhlbGVuZW5zdHIuXCIsXG4gICAgXCJIZWxtZXN0ci5cIixcbiAgICBcIkhlbW1lbHJhdGhlciBXZWdcIixcbiAgICBcIkhlbnJ5LVQuLXYuLULDtnR0aW5nZXItU3RyLlwiLFxuICAgIFwiSGVyZGVyc3RyLlwiLFxuICAgIFwiSGVyaWJlcnRzdHIuXCIsXG4gICAgXCJIZXJtYW5uLUVobGVycy1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLUhlc3NlLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tS8O2bmlnLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tTMO2bnMtU3RyLlwiLFxuICAgIFwiSGVybWFubi1NaWxkZS1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLU7DtnJyZW5iZXJnLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tdm9uLUhlbG1ob2x0ei1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLVdhaWJlbC1TdHIuXCIsXG4gICAgXCJIZXJ6b2dzdHIuXCIsXG4gICAgXCJIZXltYW5uc3RyLlwiLFxuICAgIFwiSGluZGVuYnVyZ3N0ci5cIixcbiAgICBcIkhpcnplbmJlcmdcIixcbiAgICBcIkhpdGRvcmZlciBLaXJjaHdlZ1wiLFxuICAgIFwiSGl0ZG9yZmVyIFN0ci5cIixcbiAgICBcIkjDtmZlciBNw7xobGVcIixcbiAgICBcIkjDtmZlciBXZWdcIixcbiAgICBcIkhvaGUgU3RyLlwiLFxuICAgIFwiSMO2aGVuc3RyLlwiLFxuICAgIFwiSMO2bHRnZXN0YWxcIixcbiAgICBcIkhvbHVuZGVyd2VnXCIsXG4gICAgXCJIb2x6ZXIgV2VnXCIsXG4gICAgXCJIb2x6ZXIgV2llc2VuXCIsXG4gICAgXCJIb3JucG90dHdlZ1wiLFxuICAgIFwiSHViZXJ0dXN3ZWdcIixcbiAgICBcIkh1ZmVsYW5kc3RyLlwiLFxuICAgIFwiSHVmZXIgV2VnXCIsXG4gICAgXCJIdW1ib2xkdHN0ci5cIixcbiAgICBcIkh1bW1lbHNoZWltXCIsXG4gICAgXCJIdW1tZWx3ZWdcIixcbiAgICBcIkh1bXBlcmRpbmNrc3RyLlwiLFxuICAgIFwiSMO8c2NoZWlkZXIgR8OkcnRlblwiLFxuICAgIFwiSMO8c2NoZWlkZXIgU3RyLlwiLFxuICAgIFwiSMO8dHRlXCIsXG4gICAgXCJJbG1zdHIuXCIsXG4gICAgXCJJbSBCZXJnaXNjaGVuIEhlaW1cIixcbiAgICBcIkltIEJydWNoXCIsXG4gICAgXCJJbSBCdWNoZW5oYWluXCIsXG4gICAgXCJJbSBCw7xobFwiLFxuICAgIFwiSW0gQnVyZ2ZlbGRcIixcbiAgICBcIkltIERvcmZcIixcbiAgICBcIkltIEVpc2hvbHpcIixcbiAgICBcIkltIEZyaWVkZW5zdGFsXCIsXG4gICAgXCJJbSBGcm9oZW50YWxcIixcbiAgICBcIkltIEdydW5kZVwiLFxuICAgIFwiSW0gSGVkZXJpY2hzZmVsZFwiLFxuICAgIFwiSW0gSsO8Y2hlcmZlbGRcIixcbiAgICBcIkltIEthbGtmZWxkXCIsXG4gICAgXCJJbSBLaXJiZXJnXCIsXG4gICAgXCJJbSBLaXJjaGZlbGRcIixcbiAgICBcIkltIEtyZXV6YnJ1Y2hcIixcbiAgICBcIkltIE3DvGhsZW5mZWxkXCIsXG4gICAgXCJJbSBOZXNzZWxyYWRlciBLYW1wXCIsXG4gICAgXCJJbSBPYmVyZG9yZlwiLFxuICAgIFwiSW0gT2JlcmZlbGRcIixcbiAgICBcIkltIFJvc2VuZ2FydGVuXCIsXG4gICAgXCJJbSBSb3R0bGFuZFwiLFxuICAgIFwiSW0gU2NoZWZmZW5nYXJ0ZW5cIixcbiAgICBcIkltIFN0YWRlcmZlbGRcIixcbiAgICBcIkltIFN0ZWluZmVsZFwiLFxuICAgIFwiSW0gV2VpZGVuYmxlY2hcIixcbiAgICBcIkltIFdpbmtlbFwiLFxuICAgIFwiSW0gWmllZ2VsZmVsZFwiLFxuICAgIFwiSW1iYWNoXCIsXG4gICAgXCJJbWJhY2hlciBXZWdcIixcbiAgICBcIkltbWVud2VnXCIsXG4gICAgXCJJbiBkZW4gQmxlY2hlbmjDtmZlblwiLFxuICAgIFwiSW4gZGVuIERlaGxlblwiLFxuICAgIFwiSW4gZGVyIEJpcmtlbmF1XCIsXG4gICAgXCJJbiBkZXIgRGFzbGFkZW5cIixcbiAgICBcIkluIGRlciBGZWxkZXJow7x0dGVuXCIsXG4gICAgXCJJbiBkZXIgSGFydG1hbm5zd2llc2VcIixcbiAgICBcIkluIGRlciBIw7ZobGVcIixcbiAgICBcIkluIGRlciBTY2hhYWZzZGVsbGVuXCIsXG4gICAgXCJJbiBkZXIgV2Fzc2Vya3VobFwiLFxuICAgIFwiSW4gZGVyIFfDvHN0ZVwiLFxuICAgIFwiSW4gSG9semhhdXNlblwiLFxuICAgIFwiSW5zdGVyc3RyLlwiLFxuICAgIFwiSmFjb2ItRnLDtmhsZW4tU3RyLlwiLFxuICAgIFwiSsOkZ2Vyc3RyLlwiLFxuICAgIFwiSmFobnN0ci5cIixcbiAgICBcIkpha29iLUV1bGVuYmVyZy1XZWdcIixcbiAgICBcIkpha29iaXN0ci5cIixcbiAgICBcIkpha29iLUthaXNlci1TdHIuXCIsXG4gICAgXCJKZW5hZXIgU3RyLlwiLFxuICAgIFwiSm9oYW5uZXMtQmFwdGlzdC1TdHIuXCIsXG4gICAgXCJKb2hhbm5lcy1Eb3R0LVN0ci5cIixcbiAgICBcIkpvaGFubmVzLVBvcGl0ei1TdHIuXCIsXG4gICAgXCJKb2hhbm5lcy1XaXNsaWNlbnVzLVN0ci5cIixcbiAgICBcIkpvaGFubmlzYnVyZ2VyIFN0ci5cIixcbiAgICBcIkpvaGFubi1KYW5zc2VuLVN0ci5cIixcbiAgICBcIkpvaGFubi1XaXJ0ei1XZWdcIixcbiAgICBcIkpvc2Vmc3RyLlwiLFxuICAgIFwiSsO8Y2hcIixcbiAgICBcIkp1bGl1cy1Eb21zLVN0ci5cIixcbiAgICBcIkp1bGl1cy1MZWJlci1TdHIuXCIsXG4gICAgXCJLYWlzZXJwbGF0elwiLFxuICAgIFwiS2Fpc2Vyc3RyLlwiLFxuICAgIFwiS2Fpc2VyLVdpbGhlbG0tQWxsZWVcIixcbiAgICBcIkthbGtzdHIuXCIsXG4gICAgXCJLw6RtcGNoZW5zdHIuXCIsXG4gICAgXCJLw6RtcGVud2llc2VcIixcbiAgICBcIkvDpG1wZXIgV2VnXCIsXG4gICAgXCJLYW1wdGFsd2VnXCIsXG4gICAgXCJLYW5hbHN0ci5cIixcbiAgICBcIkthbmRpbnNreXN0ci5cIixcbiAgICBcIkthbnRzdHIuXCIsXG4gICAgXCJLYXBlbGxlbnN0ci5cIixcbiAgICBcIkthcmwtQXJub2xkLVN0ci5cIixcbiAgICBcIkthcmwtQm9zY2gtU3RyLlwiLFxuICAgIFwiS2FybC1Cw7xja2FydC1TdHIuXCIsXG4gICAgXCJLYXJsLUNhcnN0ZW5zLVJpbmdcIixcbiAgICBcIkthcmwtRnJpZWRyaWNoLUdvZXJkZWxlci1TdHIuXCIsXG4gICAgXCJLYXJsLUphc3BlcnMtU3RyLlwiLFxuICAgIFwiS2FybC1Lw7ZuaWctU3RyLlwiLFxuICAgIFwiS2FybC1LcmVrZWxlci1TdHIuXCIsXG4gICAgXCJLYXJsLU1hcngtU3RyLlwiLFxuICAgIFwiS2FybHN0ci5cIixcbiAgICBcIkthcmwtVWxpdHprYS1TdHIuXCIsXG4gICAgXCJLYXJsLVdpY2htYW5uLVN0ci5cIixcbiAgICBcIkthcmwtV2luZ2NoZW4tU3RyLlwiLFxuICAgIFwiS8Okc2VuYnJvZFwiLFxuICAgIFwiS8OkdGhlLUtvbGx3aXR6LVN0ci5cIixcbiAgICBcIkthdHpiYWNoc3RyLlwiLFxuICAgIFwiS2Vyc2NoZW5zdGVpbmVyc3RyLlwiLFxuICAgIFwiS2llZmVybndlZ1wiLFxuICAgIFwiS2llbGVyIFN0ci5cIixcbiAgICBcIktpZXNlbHN0ci5cIixcbiAgICBcIktpZXN3ZWdcIixcbiAgICBcIktpbmRlcmhhdXNlblwiLFxuICAgIFwiS2xlaWJlcndlZ1wiLFxuICAgIFwiS2xlaW5lIEtpcmNoc3RyLlwiLFxuICAgIFwiS2xlaW5nYW5zd2VnXCIsXG4gICAgXCJLbGVpbmhlaWRlciBXZWdcIixcbiAgICBcIktsaWVmXCIsXG4gICAgXCJLbmVpcHBzdHIuXCIsXG4gICAgXCJLbm9jaGVuYmVyZ3N3ZWdcIixcbiAgICBcIktvY2hlcmdhcnRlblwiLFxuICAgIFwiS29jaGVyc3RyLlwiLFxuICAgIFwiS29ja2Vsc2JlcmdcIixcbiAgICBcIktvbGJlcmdlciBTdHIuXCIsXG4gICAgXCJLb2xtYXJlciBTdHIuXCIsXG4gICAgXCJLw7ZsbmVyIEdhc3NlXCIsXG4gICAgXCJLw7ZsbmVyIFN0ci5cIixcbiAgICBcIktvbHBpbmdzdHIuXCIsXG4gICAgXCJLw7ZuaWdzYmVyZ2VyIFBsYXR6XCIsXG4gICAgXCJLb25yYWQtQWRlbmF1ZXItUGxhdHpcIixcbiAgICBcIkvDtnBlbmlja2VyIFN0ci5cIixcbiAgICBcIktvcGVybmlrdXNzdHIuXCIsXG4gICAgXCJLw7ZybmVyc3RyLlwiLFxuICAgIFwiS8O2c2NoZW5iZXJnXCIsXG4gICAgXCJLw7Z0dGVyc2hvZlwiLFxuICAgIFwiS3JldXpicm9pY2hlciBTdHIuXCIsXG4gICAgXCJLcmV1emthbXBcIixcbiAgICBcIktydW1tZXIgV2VnXCIsXG4gICAgXCJLcnVwcHN0ci5cIixcbiAgICBcIkt1aGxtYW5ud2VnXCIsXG4gICAgXCJLdW1wXCIsXG4gICAgXCJLdW1wZXIgV2VnXCIsXG4gICAgXCJLdW5zdGZlbGRzdHIuXCIsXG4gICAgXCJLw7xwcGVyc3RlZ2VyIFN0ci5cIixcbiAgICBcIkt1cnNpZWZlblwiLFxuICAgIFwiS3Vyc2llZmVyIFdlZ1wiLFxuICAgIFwiS3VydGVrb3R0ZW53ZWdcIixcbiAgICBcIkt1cnQtU2NodW1hY2hlci1SaW5nXCIsXG4gICAgXCJLeWxsc3RyLlwiLFxuICAgIFwiTGFuZ2VuZmVsZGVyIFN0ci5cIixcbiAgICBcIkzDpG5nc2xlaW1iYWNoXCIsXG4gICAgXCJMw6RyY2hlbndlZ1wiLFxuICAgIFwiTGVnaWVuc3RyLlwiLFxuICAgIFwiTGVobmVyIE3DvGhsZVwiLFxuICAgIFwiTGVpY2hsaW5nZXIgU3RyLlwiLFxuICAgIFwiTGVpbWJhY2hlciBIb2ZcIixcbiAgICBcIkxlaW5lc3RyLlwiLFxuICAgIFwiTGVpbmV3ZWJlcnN0ci5cIixcbiAgICBcIkxlaXB6aWdlciBTdHIuXCIsXG4gICAgXCJMZXJjaGVuZ2Fzc2VcIixcbiAgICBcIkxlc3NpbmdzdHIuXCIsXG4gICAgXCJMaWJlbGxlbndlZ1wiLFxuICAgIFwiTGljaHN0ci5cIixcbiAgICBcIkxpZWJpZ3N0ci5cIixcbiAgICBcIkxpbmRlbnN0ci5cIixcbiAgICBcIkxpbmdlbmZlbGRcIixcbiAgICBcIkxpbmllbnN0ci5cIixcbiAgICBcIkxpcHBlXCIsXG4gICAgXCJMw7ZjaGVyZ3JhYmVuXCIsXG4gICAgXCJMw7ZmZmxlcnN0ci5cIixcbiAgICBcIkxvaGV3ZWdcIixcbiAgICBcIkxvaHJiZXJnc3RyLlwiLFxuICAgIFwiTG9ocnN0ci5cIixcbiAgICBcIkzDtmhzdHIuXCIsXG4gICAgXCJMb3J0emluZ3N0ci5cIixcbiAgICBcIkzDtnR6ZW5lciBTdHIuXCIsXG4gICAgXCJMw7Z3ZW5idXJnc3RyLlwiLFxuICAgIFwiTHVjYXNzdHIuXCIsXG4gICAgXCJMdWR3aWctRXJoYXJkLVBsYXR6XCIsXG4gICAgXCJMdWR3aWctR2lydGxlci1TdHIuXCIsXG4gICAgXCJMdWR3aWctS25vcnItU3RyLlwiLFxuICAgIFwiTHVpc2Vuc3RyLlwiLFxuICAgIFwiTHVwaW5lbndlZ1wiLFxuICAgIFwiTHVyY2hlbndlZ1wiLFxuICAgIFwiTMO8dHplbmtpcmNoZW5lciBTdHIuXCIsXG4gICAgXCJMeWNrZXIgU3RyLlwiLFxuICAgIFwiTWFhc2hvZnN0ci5cIixcbiAgICBcIk1hbmZvcnRlciBTdHIuXCIsXG4gICAgXCJNYXJjLUNoYWdhbGwtU3RyLlwiLFxuICAgIFwiTWFyaWEtRHJlc2VuLVN0ci5cIixcbiAgICBcIk1hcmlhLVRlcndpZWwtU3RyLlwiLFxuICAgIFwiTWFyaWUtQ3VyaWUtU3RyLlwiLFxuICAgIFwiTWFyaWVuYnVyZ2VyIFN0ci5cIixcbiAgICBcIk1hcmllbmRvcmZlciBTdHIuXCIsXG4gICAgXCJNYXJpZW53ZXJkZXJzdHIuXCIsXG4gICAgXCJNYXJpZS1TY2hsZWktU3RyLlwiLFxuICAgIFwiTWFya3RwbGF0elwiLFxuICAgIFwiTWFya3Vzd2VnXCIsXG4gICAgXCJNYXJ0aW4tQnViZXItU3RyLlwiLFxuICAgIFwiTWFydGluLUhlaWRlZ2dlci1TdHIuXCIsXG4gICAgXCJNYXJ0aW4tTHV0aGVyLVN0ci5cIixcbiAgICBcIk1hc3VyZW5zdHIuXCIsXG4gICAgXCJNYXRoaWxkZW53ZWdcIixcbiAgICBcIk1hdXJpbnVzc3RyLlwiLFxuICAgIFwiTWF1c3BmYWRcIixcbiAgICBcIk1heC1CZWNrbWFubi1TdHIuXCIsXG4gICAgXCJNYXgtRGVsYnLDvGNrLVN0ci5cIixcbiAgICBcIk1heC1Fcm5zdC1TdHIuXCIsXG4gICAgXCJNYXgtSG9sdGhhdXNlbi1QbGF0elwiLFxuICAgIFwiTWF4LUhvcmtoZWltZXItU3RyLlwiLFxuICAgIFwiTWF4LUxpZWJlcm1hbm4tU3RyLlwiLFxuICAgIFwiTWF4LVBlY2hzdGVpbi1TdHIuXCIsXG4gICAgXCJNYXgtUGxhbmNrLVN0ci5cIixcbiAgICBcIk1heC1TY2hlbGVyLVN0ci5cIixcbiAgICBcIk1heC1TY2jDtm5lbmJlcmctU3RyLlwiLFxuICAgIFwiTWF5YmFjaHN0ci5cIixcbiAgICBcIk1lY2tob2ZlciBGZWxkXCIsXG4gICAgXCJNZWlzZW53ZWdcIixcbiAgICBcIk1lbWVsc3RyLlwiLFxuICAgIFwiTWVuY2hlbmRhaGxlciBTdHIuXCIsXG4gICAgXCJNZW5kZWxzc29obnN0ci5cIixcbiAgICBcIk1lcnppZ2VyIFN0ci5cIixcbiAgICBcIk1ldHRsYWNoZXIgU3RyLlwiLFxuICAgIFwiTWV0emVyIFN0ci5cIixcbiAgICBcIk1pY2hhZWxzd2VnXCIsXG4gICAgXCJNaXNlbG9oZXN0ci5cIixcbiAgICBcIk1pdHRlbHN0ci5cIixcbiAgICBcIk1vaGxlbnN0ci5cIixcbiAgICBcIk1vbHRrZXN0ci5cIixcbiAgICBcIk1vbmhlaW1lciBTdHIuXCIsXG4gICAgXCJNb250YW51c3N0ci5cIixcbiAgICBcIk1vbnRlc3Nvcml3ZWdcIixcbiAgICBcIk1vb3N3ZWdcIixcbiAgICBcIk1vcnNicm9pY2hlciBTdHIuXCIsXG4gICAgXCJNb3NlbHN0ci5cIixcbiAgICBcIk1vc2thdWVyIFN0ci5cIixcbiAgICBcIk1vemFydHN0ci5cIixcbiAgICBcIk3DvGhsZW53ZWdcIixcbiAgICBcIk11aHJnYXNzZVwiLFxuICAgIFwiTXVsZGVzdHIuXCIsXG4gICAgXCJNw7xsaGF1c2VuZXIgU3RyLlwiLFxuICAgIFwiTcO8bGhlaW1lciBTdHIuXCIsXG4gICAgXCJNw7xuc3RlcnMgR8Okw59jaGVuXCIsXG4gICAgXCJNw7xuenN0ci5cIixcbiAgICBcIk3DvHJpdHpzdHIuXCIsXG4gICAgXCJNeWxpdXNzdHIuXCIsXG4gICAgXCJOYWNodGlnYWxsZW53ZWdcIixcbiAgICBcIk5hdWVuZXIgU3RyLlwiLFxuICAgIFwiTmVpw59lc3RyLlwiLFxuICAgIFwiTmVsbHktU2FjaHMtU3RyLlwiLFxuICAgIFwiTmV0emVzdHIuXCIsXG4gICAgXCJOZXVlbmRyaWVzY2hcIixcbiAgICBcIk5ldWVuaGF1c2dhc3NlXCIsXG4gICAgXCJOZXVlbmthbXBcIixcbiAgICBcIk5ldWp1ZGVuaG9mXCIsXG4gICAgXCJOZXVrcm9uZW5iZXJnZXIgU3RyLlwiLFxuICAgIFwiTmV1c3RhZHRzdHIuXCIsXG4gICAgXCJOaWNvbGFpLUhhcnRtYW5uLVN0ci5cIixcbiAgICBcIk5pZWRlcmJsZWNoZXJcIixcbiAgICBcIk5pZWRlcmZlbGRzdHIuXCIsXG4gICAgXCJOaWV0enNjaGVzdHIuXCIsXG4gICAgXCJOaWtvbGF1cy1Hcm/Dny1TdHIuXCIsXG4gICAgXCJOb2JlbHN0ci5cIixcbiAgICBcIk5vcmRlcm5leXN0ci5cIixcbiAgICBcIk5vcmRzdHIuXCIsXG4gICAgXCJPYmVyIGRlbSBIb2ZcIixcbiAgICBcIk9iZXJlIExpbmRlbnN0ci5cIixcbiAgICBcIk9iZXJlIFN0ci5cIixcbiAgICBcIk9iZXLDtmxiYWNoXCIsXG4gICAgXCJPZGVudGhhbGVyIFN0ci5cIixcbiAgICBcIk9kZXJzdHIuXCIsXG4gICAgXCJPa2Vyc3RyLlwiLFxuICAgIFwiT2xvZi1QYWxtZS1TdHIuXCIsXG4gICAgXCJPcGhvdmVuZXIgU3RyLlwiLFxuICAgIFwiT3BsYWRlbmVyIFBsYXR6XCIsXG4gICAgXCJPcGxhZGVuZXIgU3RyLlwiLFxuICAgIFwiT3J0ZWxzYnVyZ2VyIFN0ci5cIixcbiAgICBcIk9za2FyLU1vbGwtU3RyLlwiLFxuICAgIFwiT3NrYXItU2NobGVtbWVyLVN0ci5cIixcbiAgICBcIk9zdHN0ci5cIixcbiAgICBcIk9zd2FsZC1TcGVuZ2xlci1TdHIuXCIsXG4gICAgXCJPdHRvLURpeC1TdHIuXCIsXG4gICAgXCJPdHRvLUdyaW1tLVN0ci5cIixcbiAgICBcIk90dG8tSGFobi1TdHIuXCIsXG4gICAgXCJPdHRvLU3DvGxsZXItU3RyLlwiLFxuICAgIFwiT3R0by1TdGFuZ2UtU3RyLlwiLFxuICAgIFwiT3R0b3N0ci5cIixcbiAgICBcIk90dG8tVmFybmhhZ2VuLVN0ci5cIixcbiAgICBcIk90dG8tV2Vscy1TdHIuXCIsXG4gICAgXCJPdHR3ZWlsZXJzdHIuXCIsXG4gICAgXCJPdWx1c3RyLlwiLFxuICAgIFwiT3ZlcmZlbGR3ZWdcIixcbiAgICBcIlBhcHBlbHdlZ1wiLFxuICAgIFwiUGFyYWNlbHN1c3N0ci5cIixcbiAgICBcIlBhcmtzdHIuXCIsXG4gICAgXCJQYXN0b3ItTG91aXMtU3RyLlwiLFxuICAgIFwiUGFzdG9yLVNjaGVpYmxlci1TdHIuXCIsXG4gICAgXCJQYXN0b3Jza2FtcFwiLFxuICAgIFwiUGF1bC1LbGVlLVN0ci5cIixcbiAgICBcIlBhdWwtTMO2YmUtU3RyLlwiLFxuICAgIFwiUGF1bHN0ci5cIixcbiAgICBcIlBlZW5lc3RyLlwiLFxuICAgIFwiUGVzY2hlciBCdXNjaFwiLFxuICAgIFwiUGVzY2hzdHIuXCIsXG4gICAgXCJQZXN0YWxvenppc3RyLlwiLFxuICAgIFwiUGV0ZXItR3JpZcOfLVN0ci5cIixcbiAgICBcIlBldGVyLUpvc2VwaC1MZW5uw6ktU3RyLlwiLFxuICAgIFwiUGV0ZXItTmV1ZW5oZXVzZXItU3RyLlwiLFxuICAgIFwiUGV0ZXJzYmVyZ3N0ci5cIixcbiAgICBcIlBldGVyc3RyLlwiLFxuICAgIFwiUGZhcnJlci1KZWtlbC1TdHIuXCIsXG4gICAgXCJQZmFycmVyLUtsZWluLVN0ci5cIixcbiAgICBcIlBmYXJyZXItUsO2aHItU3RyLlwiLFxuICAgIFwiUGZlaWxzaG9mc3RyLlwiLFxuICAgIFwiUGhpbGlwcC1PdHQtU3RyLlwiLFxuICAgIFwiUGlldC1Nb25kcmlhbi1TdHIuXCIsXG4gICAgXCJQbGF0YW5lbndlZ1wiLFxuICAgIFwiUG9tbWVybnN0ci5cIixcbiAgICBcIlBvcnNjaGVzdHIuXCIsXG4gICAgXCJQb3N0c3RyLlwiLFxuICAgIFwiUG90c2RhbWVyIFN0ci5cIixcbiAgICBcIlByZWdlbHN0ci5cIixcbiAgICBcIlByaWXDn25pdHpzdHIuXCIsXG4gICAgXCJQw7x0emRlbGxlXCIsXG4gICAgXCJRdWFyenN0ci5cIixcbiAgICBcIlF1ZXR0aW5nZXIgU3RyLlwiLFxuICAgIFwiUmF0LURleWNrcy1TdHIuXCIsXG4gICAgXCJSYXRoZW5hdXN0ci5cIixcbiAgICBcIlJhdGhlcmvDpG1wXCIsXG4gICAgXCJSYXRpYm9yZXIgU3RyLlwiLFxuICAgIFwiUmF1c2hvZnN0ci5cIixcbiAgICBcIlJlZ2Vuc2J1cmdlciBTdHIuXCIsXG4gICAgXCJSZWluaWNrZW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiUmVua2dhc3NlXCIsXG4gICAgXCJSZW5uYmF1bXBsYXR6XCIsXG4gICAgXCJSZW5uYmF1bXN0ci5cIixcbiAgICBcIlJldXNjaGVuYmVyZ2VyIFN0ci5cIixcbiAgICBcIlJldXNyYXRoZXIgU3RyLlwiLFxuICAgIFwiUmV1dGVyc3RyLlwiLFxuICAgIFwiUmhlaW5hbGxlZVwiLFxuICAgIFwiUmhlaW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiUmhlaW5zdHIuXCIsXG4gICAgXCJSaGVpbi1XdXBwZXItUGxhdHpcIixcbiAgICBcIlJpY2hhcmQtV2FnbmVyLVN0ci5cIixcbiAgICBcIlJpbGtlc3RyLlwiLFxuICAgIFwiUmluZ3N0ci5cIixcbiAgICBcIlJvYmVydC1CbHVtLVN0ci5cIixcbiAgICBcIlJvYmVydC1Lb2NoLVN0ci5cIixcbiAgICBcIlJvYmVydC1NZWRlbndhbGQtU3RyLlwiLFxuICAgIFwiUm9sYW5kc3RyLlwiLFxuICAgIFwiUm9tYmVyZ1wiLFxuICAgIFwiUsO2bnRnZW5zdHIuXCIsXG4gICAgXCJSb29uc3RyLlwiLFxuICAgIFwiUm9wZW5zdGFsbFwiLFxuICAgIFwiUm9wZW5zdGFsbGVyIFdlZ1wiLFxuICAgIFwiUm9zZW50aGFsXCIsXG4gICAgXCJSb3N0b2NrZXIgU3RyLlwiLFxuICAgIFwiUm90ZG9ybndlZ1wiLFxuICAgIFwiUsO2dHRnZXJ3ZWdcIixcbiAgICBcIlLDvGNrZXJ0c3RyLlwiLFxuICAgIFwiUnVkb2xmLUJyZWl0c2NoZWlkLVN0ci5cIixcbiAgICBcIlJ1ZG9sZi1NYW5uLVBsYXR6XCIsXG4gICAgXCJSdWRvbGYtU3RyYWNrZS1TdHIuXCIsXG4gICAgXCJSdWhsYWNocGxhdHpcIixcbiAgICBcIlJ1aGxhY2hzdHIuXCIsXG4gICAgXCJSw7x0dGVyc3dlZ1wiLFxuICAgIFwiU2FhbGVzdHIuXCIsXG4gICAgXCJTYWFyYnLDvGNrZXIgU3RyLlwiLFxuICAgIFwiU2FhcmxhdXRlcm5lciBTdHIuXCIsXG4gICAgXCJTYWFyc3RyLlwiLFxuICAgIFwiU2FsYW1hbmRlcndlZ1wiLFxuICAgIFwiU2FtbGFuZHN0ci5cIixcbiAgICBcIlNhbmRkb3Juc3RyLlwiLFxuICAgIFwiU2FuZHN0ci5cIixcbiAgICBcIlNhdWVyYnJ1Y2hzdHIuXCIsXG4gICAgXCJTY2jDpGZlcnNow7x0dGVcIixcbiAgICBcIlNjaGFybmhvcnN0c3RyLlwiLFxuICAgIFwiU2NoZWZmZXJzaG9mXCIsXG4gICAgXCJTY2hlaWRlbWFubnN0ci5cIixcbiAgICBcIlNjaGVsbGluZ3N0ci5cIixcbiAgICBcIlNjaGVua2VuZG9yZnN0ci5cIixcbiAgICBcIlNjaGllw59iZXJnc3RyLlwiLFxuICAgIFwiU2NoaWxsZXJzdHIuXCIsXG4gICAgXCJTY2hsYW5nZW5oZWNrZVwiLFxuICAgIFwiU2NobGVidXNjaGVyIEhlaWRlXCIsXG4gICAgXCJTY2hsZWJ1c2NoZXIgU3RyLlwiLFxuICAgIFwiU2NobGVidXNjaHJhdGhcIixcbiAgICBcIlNjaGxlaGRvcm5zdHIuXCIsXG4gICAgXCJTY2hsZWllcm1hY2hlcnN0ci5cIixcbiAgICBcIlNjaGxvw59zdHIuXCIsXG4gICAgXCJTY2htYWxlbmJydWNoXCIsXG4gICAgXCJTY2huZXBmZW5mbHVjaHRcIixcbiAgICBcIlNjaMO2ZmZlbndlZ1wiLFxuICAgIFwiU2Now7ZsbGVyc3RyLlwiLFxuICAgIFwiU2Now7ZuZSBBdXNzaWNodFwiLFxuICAgIFwiU2Now7ZuZWJlcmdlciBTdHIuXCIsXG4gICAgXCJTY2hvcGVuaGF1ZXJzdHIuXCIsXG4gICAgXCJTY2h1YmVydHBsYXR6XCIsXG4gICAgXCJTY2h1YmVydHN0ci5cIixcbiAgICBcIlNjaHVsYmVyZ1wiLFxuICAgIFwiU2NodWxzdHIuXCIsXG4gICAgXCJTY2h1bWFubnN0ci5cIixcbiAgICBcIlNjaHdhbGJlbndlZ1wiLFxuICAgIFwiU2Nod2FyemFzdHIuXCIsXG4gICAgXCJTZWJhc3RpYW51c3dlZ1wiLFxuICAgIFwiU2VtbWVsd2Vpc3N0ci5cIixcbiAgICBcIlNpZWJlbHBsYXR6XCIsXG4gICAgXCJTaWVtZW5zc3RyLlwiLFxuICAgIFwiU29saW5nZXIgU3RyLlwiLFxuICAgIFwiU29uZGVyYnVyZ2VyIFN0ci5cIixcbiAgICBcIlNwYW5kYXVlciBTdHIuXCIsXG4gICAgXCJTcGVlc3RyLlwiLFxuICAgIFwiU3BlcmJlcndlZ1wiLFxuICAgIFwiU3Blcmxpbmdzd2VnXCIsXG4gICAgXCJTcGl0endlZ3N0ci5cIixcbiAgICBcIlNwb3JyZW5iZXJnZXIgTcO8aGxlXCIsXG4gICAgXCJTcHJlZXN0ci5cIixcbiAgICBcIlN0LiBJbmdiZXJ0ZXIgU3RyLlwiLFxuICAgIFwiU3RhcmVud2VnXCIsXG4gICAgXCJTdGF1ZmZlbmJlcmdzdHIuXCIsXG4gICAgXCJTdGVmYW4tWndlaWctU3RyLlwiLFxuICAgIFwiU3RlZ2Vyd2FsZHN0ci5cIixcbiAgICBcIlN0ZWdsaXR6ZXIgU3RyLlwiLFxuICAgIFwiU3RlaW5iw7xjaGVsZXIgRmVsZFwiLFxuICAgIFwiU3RlaW5iw7xjaGVsZXIgU3RyLlwiLFxuICAgIFwiU3RlaW5zdHIuXCIsXG4gICAgXCJTdGVpbndlZ1wiLFxuICAgIFwiU3RlcGhhbi1Mb2NobmVyLVN0ci5cIixcbiAgICBcIlN0ZXBoYW51c3N0ci5cIixcbiAgICBcIlN0ZXR0aW5lciBTdHIuXCIsXG4gICAgXCJTdGl4Y2hlc3N0ci5cIixcbiAgICBcIlN0w7Zja2Vuc3RyLlwiLFxuICAgIFwiU3RyYWxzdW5kZXIgU3RyLlwiLFxuICAgIFwiU3RyYcOfYnVyZ2VyIFN0ci5cIixcbiAgICBcIlN0cmVzZW1hbm5wbGF0elwiLFxuICAgIFwiU3Ryb21iZXJnc3RyLlwiLFxuICAgIFwiU3Ryb21zdHIuXCIsXG4gICAgXCJTdMO8dHRla29mZW5lciBTdHIuXCIsXG4gICAgXCJTdWRlc3RyLlwiLFxuICAgIFwiU8O8cmRlcnN0ci5cIixcbiAgICBcIlN5bHRzdHIuXCIsXG4gICAgXCJUYWxzdHIuXCIsXG4gICAgXCJUYW5uZW5iZXJnc3RyLlwiLFxuICAgIFwiVGFubmVud2VnXCIsXG4gICAgXCJUYXViZW53ZWdcIixcbiAgICBcIlRlaXRzY2hlaWRlciBXZWdcIixcbiAgICBcIlRlbGVncmFmZW5zdHIuXCIsXG4gICAgXCJUZWx0b3dlciBTdHIuXCIsXG4gICAgXCJUZW1wZWxob2ZlciBTdHIuXCIsXG4gICAgXCJUaGVvZG9yLUFkb3Juby1TdHIuXCIsXG4gICAgXCJUaGVvZG9yLUZsaWVkbmVyLVN0ci5cIixcbiAgICBcIlRoZW9kb3ItR2llcmF0aC1TdHIuXCIsXG4gICAgXCJUaGVvZG9yLUhhdWJhY2gtU3RyLlwiLFxuICAgIFwiVGhlb2Rvci1IZXVzcy1SaW5nXCIsXG4gICAgXCJUaGVvZG9yLVN0b3JtLVN0ci5cIixcbiAgICBcIlRoZW9kb3JzdHIuXCIsXG4gICAgXCJUaG9tYXMtRGVobGVyLVN0ci5cIixcbiAgICBcIlRob21hcy1Nb3J1cy1TdHIuXCIsXG4gICAgXCJUaG9tYXMtdm9uLUFxdWluLVN0ci5cIixcbiAgICBcIlTDtm5nZXMgRmVsZFwiLFxuICAgIFwiVG9yc3RyLlwiLFxuICAgIFwiVHJlcHRvd2VyIFN0ci5cIixcbiAgICBcIlRyZXVidXJnZXIgU3RyLlwiLFxuICAgIFwiVWhsYW5kc3RyLlwiLFxuICAgIFwiVWxtZW53ZWdcIixcbiAgICBcIlVsbWVyIFN0ci5cIixcbiAgICBcIlVscmljaHN0ci5cIixcbiAgICBcIlVscmljaC12b24tSGFzc2VsbC1TdHIuXCIsXG4gICAgXCJVbWxhZ1wiLFxuICAgIFwiVW5zdHJ1dHN0ci5cIixcbiAgICBcIlVudGVyIGRlbSBTY2hpbGRjaGVuXCIsXG4gICAgXCJVbnRlcsO2bGJhY2hcIixcbiAgICBcIlVudGVyc3RyLlwiLFxuICAgIFwiVXBwZXJzYmVyZ1wiLFxuICAgIFwiVmFuXFxcXCd0LUhvZmYtU3RyLlwiLFxuICAgIFwiVmVpdC1TdG/Dny1TdHIuXCIsXG4gICAgXCJWZXJlaW5zc3RyLlwiLFxuICAgIFwiVmlrdG9yLU1leWVyLVN0ci5cIixcbiAgICBcIlZpbmNlbnQtdmFuLUdvZ2gtU3RyLlwiLFxuICAgIFwiVmlyY2hvd3N0ci5cIixcbiAgICBcIlZvaWd0c2xhY2hcIixcbiAgICBcIlZvbGhhcmRzdHIuXCIsXG4gICAgXCJWw7Zsa2xpbmdlciBTdHIuXCIsXG4gICAgXCJWb24tQnJlbnRhbm8tU3RyLlwiLFxuICAgIFwiVm9uLURpZXJnYXJkdC1TdHIuXCIsXG4gICAgXCJWb24tRWljaGVuZG9yZmYtU3RyLlwiLFxuICAgIFwiVm9uLUtldHRlbGVyLVN0ci5cIixcbiAgICBcIlZvbi1Lbm9lcmluZ2VuLVN0ci5cIixcbiAgICBcIlZvbi1QZXR0ZW5rb2Zlci1TdHIuXCIsXG4gICAgXCJWb24tU2llYm9sZC1TdHIuXCIsXG4gICAgXCJXYWNob2xkZXJ3ZWdcIixcbiAgICBcIldhbGRzdHIuXCIsXG4gICAgXCJXYWx0ZXItRmxleC1TdHIuXCIsXG4gICAgXCJXYWx0ZXItSGVtcGVsLVN0ci5cIixcbiAgICBcIldhbHRlci1Ib2NoYXBmZWwtU3RyLlwiLFxuICAgIFwiV2FsdGVyLU5lcm5zdC1TdHIuXCIsXG4gICAgXCJXYW5uc2Vlc3RyLlwiLFxuICAgIFwiV2Fybm93c3RyLlwiLFxuICAgIFwiV2FydGhlc3RyLlwiLFxuICAgIFwiV2VkZGlnZW5zdHIuXCIsXG4gICAgXCJXZWljaHNlbHN0ci5cIixcbiAgICBcIldlaWRlbnN0ci5cIixcbiAgICBcIldlaWRmZWxkc3RyLlwiLFxuICAgIFwiV2VpaGVyZmVsZFwiLFxuICAgIFwiV2VpaGVyc3RyLlwiLFxuICAgIFwiV2VpbmjDpHVzZXIgU3RyLlwiLFxuICAgIFwiV2Vpw59kb3Jud2VnXCIsXG4gICAgXCJXZWnDn2Vuc2Vlc3RyLlwiLFxuICAgIFwiV2VpemthbXBcIixcbiAgICBcIldlcmZ0c3RyLlwiLFxuICAgIFwiV2Vya3N0w6R0dGVuc3RyLlwiLFxuICAgIFwiV2VybmVyLUhlaXNlbmJlcmctU3RyLlwiLFxuICAgIFwiV2VycmFzdHIuXCIsXG4gICAgXCJXZXllcndlZ1wiLFxuICAgIFwiV2lkZGF1ZW5lciBTdHIuXCIsXG4gICAgXCJXaWViZXJ0c2hvZlwiLFxuICAgIFwiV2llaGJhY2h0YWxcIixcbiAgICBcIldpZW1iYWNoYWxsZWVcIixcbiAgICBcIldpZXNkb3JmZXIgUGxhdHpcIixcbiAgICBcIldpZXNlbnN0ci5cIixcbiAgICBcIldpbGhlbG0tQnVzY2gtU3RyLlwiLFxuICAgIFwiV2lsaGVsbS1IYXN0cmljaC1TdHIuXCIsXG4gICAgXCJXaWxoZWxtLUxldXNjaG5lci1TdHIuXCIsXG4gICAgXCJXaWxoZWxtLUxpZWJrbmVjaHQtU3RyLlwiLFxuICAgIFwiV2lsaGVsbXNnYXNzZVwiLFxuICAgIFwiV2lsaGVsbXN0ci5cIixcbiAgICBcIldpbGxpLUJhdW1laXN0ZXItU3RyLlwiLFxuICAgIFwiV2lsbHktQnJhbmR0LVJpbmdcIixcbiAgICBcIldpbmFuZC1Sb3NzaS1TdHIuXCIsXG4gICAgXCJXaW5kdGhvcnN0c3RyLlwiLFxuICAgIFwiV2lua2Vsd2VnXCIsXG4gICAgXCJXaW50ZXJiZXJnXCIsXG4gICAgXCJXaXR0ZW5iZXJnc3RyLlwiLFxuICAgIFwiV29sZi1Wb3N0ZWxsLVN0ci5cIixcbiAgICBcIldvbGtlbmJ1cmdzdHIuXCIsXG4gICAgXCJXdXBwZXJzdHIuXCIsXG4gICAgXCJXdXBwZXJ0YWxzdHIuXCIsXG4gICAgXCJXw7xzdGVuaG9mXCIsXG4gICAgXCJZaXR6aGFrLVJhYmluLVN0ci5cIixcbiAgICBcIlphdWJlcmt1aGxlXCIsXG4gICAgXCJaZWRlcm53ZWdcIixcbiAgICBcIlplaGxlbmRvcmZlciBTdHIuXCIsXG4gICAgXCJaZWhudGVud2VnXCIsXG4gICAgXCJaZWlzaWd3ZWdcIixcbiAgICBcIlplcHBlbGluc3RyLlwiLFxuICAgIFwiWnNjaG9wYXVzdHIuXCIsXG4gICAgXCJadW0gQ2xhYXNow6R1c2NoZW5cIixcbiAgICBcIlrDvG5kaMO8dGNoZW53ZWdcIixcbiAgICBcIlp1ciBBbHRlbiBCcmF1ZXJlaVwiLFxuICAgIFwiWnVyIGFsdGVuIEZhYnJpa1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIixcbiAgICBcIiMjYVwiLFxuICAgIFwiIyNiXCIsXG4gICAgXCIjI2NcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJaaW1tZXIgIyMjXCIsXG4gICAgXCIjIE9HXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkJhZGVuLVfDvHJ0dGVtYmVyZ1wiLFxuICAgIFwiQmF5ZXJuXCIsXG4gICAgXCJCZXJsaW5cIixcbiAgICBcIkJyYW5kZW5idXJnXCIsXG4gICAgXCJCcmVtZW5cIixcbiAgICBcIkhhbWJ1cmdcIixcbiAgICBcIkhlc3NlblwiLFxuICAgIFwiTWVja2xlbmJ1cmctVm9ycG9tbWVyblwiLFxuICAgIFwiTmllZGVyc2FjaHNlblwiLFxuICAgIFwiTm9yZHJoZWluLVdlc3RmYWxlblwiLFxuICAgIFwiUmhlaW5sYW5kLVBmYWx6XCIsXG4gICAgXCJTYWFybGFuZFwiLFxuICAgIFwiU2FjaHNlblwiLFxuICAgIFwiU2FjaHNlbi1BbmhhbHRcIixcbiAgICBcIlNjaGxlc3dpZy1Ib2xzdGVpblwiLFxuICAgIFwiVGjDvHJpbmdlblwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJCV1wiLFxuICAgIFwiQllcIixcbiAgICBcIkJFXCIsXG4gICAgXCJCQlwiLFxuICAgIFwiSEJcIixcbiAgICBcIkhIXCIsXG4gICAgXCJIRVwiLFxuICAgIFwiTVZcIixcbiAgICBcIk5JXCIsXG4gICAgXCJOV1wiLFxuICAgIFwiUlBcIixcbiAgICBcIlNMXCIsXG4gICAgXCJTTlwiLFxuICAgIFwiU1RcIixcbiAgICBcIlNIXCIsXG4gICAgXCJUSFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcm9vdH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkRldXRzY2hsYW5kXCJcbiAgXVxufTtcbmRlLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkdtYkhcIixcbiAgICBcIkFHXCIsXG4gICAgXCJHcnVwcGVcIixcbiAgICBcIktHXCIsXG4gICAgXCJHbWJIICYgQ28uIEtHXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiT0hHXCJcbiAgXSxcbiAgXCJsZWdhbF9mb3JtXCI6IFtcbiAgICBcIkdtYkhcIixcbiAgICBcIkFHXCIsXG4gICAgXCJHcnVwcGVcIixcbiAgICBcIktHXCIsXG4gICAgXCJHbWJIICYgQ28uIEtHXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiT0hHXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSB1bmQgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xuZGUuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiLFxuICAgIFwiZGVcIixcbiAgICBcImNoXCJcbiAgXVxufTtcbmRlLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF1cbn07XG5kZS5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFiZHVsXCIsXG4gICAgXCJBYmR1bGxhaFwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJBZHJpYW5vXCIsXG4gICAgXCJBaG1hZFwiLFxuICAgIFwiQWhtZWRcIixcbiAgICBcIkFobWV0XCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsZXNzYW5kcm9cIixcbiAgICBcIkFsZXNzaW9cIixcbiAgICBcIkFsZXhcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQWxmcmVkXCIsXG4gICAgXCJBbGlcIixcbiAgICBcIkFtYXJcIixcbiAgICBcIkFtaXJcIixcbiAgICBcIkFtb25cIixcbiAgICBcIkFuZHJlXCIsXG4gICAgXCJBbmRyZWFzXCIsXG4gICAgXCJBbmRyZXdcIixcbiAgICBcIkFuZ2Vsb1wiLFxuICAgIFwiQW5zZ2FyXCIsXG4gICAgXCJBbnRob255XCIsXG4gICAgXCJBbnRvblwiLFxuICAgIFwiQW50b25pb1wiLFxuICAgIFwiQXJkYVwiLFxuICAgIFwiQXJpYW5cIixcbiAgICBcIkFybWluXCIsXG4gICAgXCJBcm5lXCIsXG4gICAgXCJBcm5vXCIsXG4gICAgXCJBcnRodXJcIixcbiAgICBcIkFydHVyXCIsXG4gICAgXCJBcnZlZFwiLFxuICAgIFwiQXJ2aWRcIixcbiAgICBcIkF5bWFuXCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyaXNcIixcbiAgICBcIkJhc3RpYW5cIixcbiAgICBcIkJhdHVoYW5cIixcbiAgICBcIkJlbGFcIixcbiAgICBcIkJlblwiLFxuICAgIFwiQmVuZWRpa3RcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJCZW5uZXRcIixcbiAgICBcIkJlbm5ldHRcIixcbiAgICBcIkJlbm5vXCIsXG4gICAgXCJCZW50XCIsXG4gICAgXCJCZXJhdFwiLFxuICAgIFwiQmVya2F5XCIsXG4gICAgXCJCZXJuZFwiLFxuICAgIFwiQmlsYWxcIixcbiAgICBcIkJqYXJuZVwiLFxuICAgIFwiQmrDtnJuXCIsXG4gICAgXCJCb1wiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkJyYW5kb25cIixcbiAgICBcIkJyaWFuXCIsXG4gICAgXCJCcnVub1wiLFxuICAgIFwiQnJ5YW5cIixcbiAgICBcIkJ1cmFrXCIsXG4gICAgXCJDYWx2aW5cIixcbiAgICBcIkNhblwiLFxuICAgIFwiQ2FybFwiLFxuICAgIFwiQ2FybG9cIixcbiAgICBcIkNhcmxvc1wiLFxuICAgIFwiQ2FzcGFyXCIsXG4gICAgXCJDZWRyaWNcIixcbiAgICBcIkNlZHJpa1wiLFxuICAgIFwiQ2VtXCIsXG4gICAgXCJDaGFybGllXCIsXG4gICAgXCJDaHJpc1wiLFxuICAgIFwiQ2hyaXN0aWFuXCIsXG4gICAgXCJDaHJpc3RpYW5vXCIsXG4gICAgXCJDaHJpc3RvcGhcIixcbiAgICBcIkNocmlzdG9waGVyXCIsXG4gICAgXCJDbGFhc1wiLFxuICAgIFwiQ2xlbWVuc1wiLFxuICAgIFwiQ29saW5cIixcbiAgICBcIkNvbGxpblwiLFxuICAgIFwiQ29ubmVyXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIkNvbnN0YW50aW5cIixcbiAgICBcIkNvcnZpblwiLFxuICAgIFwiQ3VydFwiLFxuICAgIFwiRGFtaWFuXCIsXG4gICAgXCJEYW1pZW5cIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFuaWxvXCIsXG4gICAgXCJEYW5ueVwiLFxuICAgIFwiRGFyaWFuXCIsXG4gICAgXCJEYXJpb1wiLFxuICAgIFwiRGFyaXVzXCIsXG4gICAgXCJEYXJyZW5cIixcbiAgICBcIkRhdmlkXCIsXG4gICAgXCJEYXZpZGVcIixcbiAgICBcIkRhdmluXCIsXG4gICAgXCJEZWFuXCIsXG4gICAgXCJEZW5pelwiLFxuICAgIFwiRGVubmlzXCIsXG4gICAgXCJEZW5ueVwiLFxuICAgIFwiRGV2aW5cIixcbiAgICBcIkRpZWdvXCIsXG4gICAgXCJEaW9uXCIsXG4gICAgXCJEb21lbmljXCIsXG4gICAgXCJEb21lbmlrXCIsXG4gICAgXCJEb21pbmljXCIsXG4gICAgXCJEb21pbmlrXCIsXG4gICAgXCJEb3JpYW5cIixcbiAgICBcIkR1c3RpblwiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIkVjcmluXCIsXG4gICAgXCJFZGRpXCIsXG4gICAgXCJFZGR5XCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWR3aW5cIixcbiAgICBcIkVmZVwiLFxuICAgIFwiRWdlXCIsXG4gICAgXCJFbGlhXCIsXG4gICAgXCJFbGlhaFwiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkVsaWphaFwiLFxuICAgIFwiRW1hbnVlbFwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiRW1pbGlhblwiLFxuICAgIFwiRW1pbGlvXCIsXG4gICAgXCJFbWlyXCIsXG4gICAgXCJFbWlyaGFuXCIsXG4gICAgXCJFbXJlXCIsXG4gICAgXCJFbmVzXCIsXG4gICAgXCJFbm5vXCIsXG4gICAgXCJFbnJpY29cIixcbiAgICBcIkVyZW5cIixcbiAgICBcIkVyaWNcIixcbiAgICBcIkVyaWtcIixcbiAgICBcIkV0aWVubmVcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmFiaWVuXCIsXG4gICAgXCJGYWJpb1wiLFxuICAgIFwiRmFicmljZVwiLFxuICAgIFwiRmFsa1wiLFxuICAgIFwiRmVsaXhcIixcbiAgICBcIkZlcmRpbmFuZFwiLFxuICAgIFwiRmlldGVcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJGaW5sYXlcIixcbiAgICBcIkZpbmxleVwiLFxuICAgIFwiRmlublwiLFxuICAgIFwiRmlubmxleVwiLFxuICAgIFwiRmxvcmlhblwiLFxuICAgIFwiRnJhbmNlc2NvXCIsXG4gICAgXCJGcmFuelwiLFxuICAgIFwiRnJlZGVyaWNcIixcbiAgICBcIkZyZWRlcmlja1wiLFxuICAgIFwiRnJlZGVyaWtcIixcbiAgICBcIkZyaWVkcmljaFwiLFxuICAgIFwiRnJpdHpcIixcbiAgICBcIkZ1cmthblwiLFxuICAgIFwiRnlublwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2VvcmdcIixcbiAgICBcIkdlcnJpdFwiLFxuICAgIFwiR2lhblwiLFxuICAgIFwiR2lhbmx1Y2FcIixcbiAgICBcIkdpbm9cIixcbiAgICBcIkdpdWxpYW5vXCIsXG4gICAgXCJHaXVzZXBwZVwiLFxuICAgIFwiR3JlZ29yXCIsXG4gICAgXCJHdXN0YXZcIixcbiAgICBcIkhhZ2VuXCIsXG4gICAgXCJIYW16YVwiLFxuICAgIFwiSGFubmVzXCIsXG4gICAgXCJIYW5ub1wiLFxuICAgIFwiSGFuc1wiLFxuICAgIFwiSGFzYW5cIixcbiAgICBcIkhhc3NhblwiLFxuICAgIFwiSGF1a2VcIixcbiAgICBcIkhlbmRyaWtcIixcbiAgICBcIkhlbm5lc1wiLFxuICAgIFwiSGVubmluZ1wiLFxuICAgIFwiSGVucmlcIixcbiAgICBcIkhlbnJpY2tcIixcbiAgICBcIkhlbnJpa1wiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkh1Z29cIixcbiAgICBcIkh1c3NlaW5cIixcbiAgICBcIklhblwiLFxuICAgIFwiSWJyYWhpbVwiLFxuICAgIFwiSWxpYXNcIixcbiAgICBcIklsamFcIixcbiAgICBcIklseWFzXCIsXG4gICAgXCJJbW1hbnVlbFwiLFxuICAgIFwiSXNtYWVsXCIsXG4gICAgXCJJc21haWxcIixcbiAgICBcIkl2YW5cIixcbiAgICBcIkl2ZW5cIixcbiAgICBcIkphY2tcIixcbiAgICBcIkphY29iXCIsXG4gICAgXCJKYWRlblwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIkphbWFsXCIsXG4gICAgXCJKYW1lc1wiLFxuICAgIFwiSmFtaWVcIixcbiAgICBcIkphblwiLFxuICAgIFwiSmFuZWtcIixcbiAgICBcIkphbmlzXCIsXG4gICAgXCJKYW5uZVwiLFxuICAgIFwiSmFubmVrXCIsXG4gICAgXCJKYW5uZXNcIixcbiAgICBcIkphbm5pa1wiLFxuICAgIFwiSmFubmlzXCIsXG4gICAgXCJKYW5vXCIsXG4gICAgXCJKYW5vc2NoXCIsXG4gICAgXCJKYXJlZFwiLFxuICAgIFwiSmFyaVwiLFxuICAgIFwiSmFybmVcIixcbiAgICBcIkphcm5vXCIsXG4gICAgXCJKYXJvblwiLFxuICAgIFwiSmFzb25cIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSmF5XCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIkpheXNvblwiLFxuICAgIFwiSmVhblwiLFxuICAgIFwiSmVuc1wiLFxuICAgIFwiSmVyZW1pYXNcIixcbiAgICBcIkplcmVtaWVcIixcbiAgICBcIkplcmVteVwiLFxuICAgIFwiSmVybWFpbmVcIixcbiAgICBcIkplcm9tZVwiLFxuICAgIFwiSmVzcGVyXCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiSmltXCIsXG4gICAgXCJKaW1teVwiLFxuICAgIFwiSm9lXCIsXG4gICAgXCJKb2VsXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb2hhbm5cIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJKb2huXCIsXG4gICAgXCJKb2hubnlcIixcbiAgICBcIkpvblwiLFxuICAgIFwiSm9uYVwiLFxuICAgIFwiSm9uYWhcIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiSm9udGVcIixcbiAgICBcIkpvb3N0XCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIkpvcmlzXCIsXG4gICAgXCJKb3NjaGFcIixcbiAgICBcIkpvc2NodWFcIixcbiAgICBcIkpvc2VmXCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkpvc2hcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiSm9zdWFcIixcbiAgICBcIkp1YW5cIixcbiAgICBcIkp1bGlhblwiLFxuICAgIFwiSnVsaWVuXCIsXG4gICAgXCJKdWxpdXNcIixcbiAgICBcIkp1cmlcIixcbiAgICBcIkp1c3RpblwiLFxuICAgIFwiSnVzdHVzXCIsXG4gICAgXCJLYWFuXCIsXG4gICAgXCJLYWlcIixcbiAgICBcIkthbGxlXCIsXG4gICAgXCJLYXJpbVwiLFxuICAgIFwiS2FybFwiLFxuICAgIFwiS2FybG9cIixcbiAgICBcIktheVwiLFxuICAgIFwiS2VhbnVcIixcbiAgICBcIktlbmFuXCIsXG4gICAgXCJLZW5ueVwiLFxuICAgIFwiS2Vub1wiLFxuICAgIFwiS2VyZW1cIixcbiAgICBcIktlcmltXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiS2lhblwiLFxuICAgIFwiS2lsaWFuXCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWlcIixcbiAgICBcIktqZWxsXCIsXG4gICAgXCJLbGFhc1wiLFxuICAgIFwiS2xlbWVuc1wiLFxuICAgIFwiS29ucmFkXCIsXG4gICAgXCJLb25zdGFudGluXCIsXG4gICAgXCJLb3JheVwiLFxuICAgIFwiS29yYmluaWFuXCIsXG4gICAgXCJLdXJ0XCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJMYXNzZVwiLFxuICAgIFwiTGF1cmVuY2VcIixcbiAgICBcIkxhdXJlbnNcIixcbiAgICBcIkxhdXJlbnpcIixcbiAgICBcIkxhdXJpblwiLFxuICAgIFwiTGVhblwiLFxuICAgIFwiTGVhbmRlclwiLFxuICAgIFwiTGVhbmRyb1wiLFxuICAgIFwiTGVpZlwiLFxuICAgIFwiTGVuXCIsXG4gICAgXCJMZW5uXCIsXG4gICAgXCJMZW5uYXJkXCIsXG4gICAgXCJMZW5uYXJ0XCIsXG4gICAgXCJMZW5uZXJ0XCIsXG4gICAgXCJMZW5uaWVcIixcbiAgICBcIkxlbm5veFwiLFxuICAgIFwiTGVubnlcIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVvblwiLFxuICAgIFwiTGVvbmFyZFwiLFxuICAgIFwiTGVvbmFyZG9cIixcbiAgICBcIkxlb25oYXJkXCIsXG4gICAgXCJMZW9uaWRhc1wiLFxuICAgIFwiTGVvcG9sZFwiLFxuICAgIFwiTGVyb3lcIixcbiAgICBcIkxldmVudFwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTGV2aW5cIixcbiAgICBcIkxld2luXCIsXG4gICAgXCJMZXdpc1wiLFxuICAgIFwiTGlhbVwiLFxuICAgIFwiTGlhblwiLFxuICAgIFwiTGlhc1wiLFxuICAgIFwiTGlub1wiLFxuICAgIFwiTGludXNcIixcbiAgICBcIkxpb1wiLFxuICAgIFwiTGlvblwiLFxuICAgIFwiTGlvbmVsXCIsXG4gICAgXCJMb2dhblwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3JlbnpvXCIsXG4gICAgXCJMb3Jpc1wiLFxuICAgIFwiTG91aXNcIixcbiAgICBcIkx1YW5cIixcbiAgICBcIkx1Y1wiLFxuICAgIFwiTHVjYVwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkx1Y2lhblwiLFxuICAgIFwiTHVjaWVuXCIsXG4gICAgXCJMdWR3aWdcIixcbiAgICBcIkx1aXNcIixcbiAgICBcIkx1aXpcIixcbiAgICBcIkx1a1wiLFxuICAgIFwiTHVrYVwiLFxuICAgIFwiTHVrYXNcIixcbiAgICBcIkx1a2VcIixcbiAgICBcIkx1dHpcIixcbiAgICBcIk1hZGRveFwiLFxuICAgIFwiTWFkc1wiLFxuICAgIFwiTWFnbnVzXCIsXG4gICAgXCJNYWlrXCIsXG4gICAgXCJNYWtzaW1cIixcbiAgICBcIk1hbGlrXCIsXG4gICAgXCJNYWx0ZVwiLFxuICAgIFwiTWFudWVsXCIsXG4gICAgXCJNYXJjXCIsXG4gICAgXCJNYXJjZWxcIixcbiAgICBcIk1hcmNvXCIsXG4gICAgXCJNYXJjdXNcIixcbiAgICBcIk1hcmVrXCIsXG4gICAgXCJNYXJpYW5cIixcbiAgICBcIk1hcmlvXCIsXG4gICAgXCJNYXJpdXNcIixcbiAgICBcIk1hcmtcIixcbiAgICBcIk1hcmtvXCIsXG4gICAgXCJNYXJrdXNcIixcbiAgICBcIk1hcmxvXCIsXG4gICAgXCJNYXJsb25cIixcbiAgICBcIk1hcnRlblwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1hcndpblwiLFxuICAgIFwiTWF0ZW9cIixcbiAgICBcIk1hdGhpc1wiLFxuICAgIFwiTWF0aXNcIixcbiAgICBcIk1hdHNcIixcbiAgICBcIk1hdHRlb1wiLFxuICAgIFwiTWF0dGVzXCIsXG4gICAgXCJNYXR0aGlhc1wiLFxuICAgIFwiTWF0dGhpc1wiLFxuICAgIFwiTWF0dGlcIixcbiAgICBcIk1hdHRpc1wiLFxuICAgIFwiTWF1cmljZVwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNYXhpbVwiLFxuICAgIFwiTWF4aW1pbGlhblwiLFxuICAgIFwiTWVobWV0XCIsXG4gICAgXCJNZWlrXCIsXG4gICAgXCJNZWx2aW5cIixcbiAgICBcIk1lcmxpblwiLFxuICAgIFwiTWVydFwiLFxuICAgIFwiTWljaGFlbFwiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWNrXCIsXG4gICAgXCJNaWd1ZWxcIixcbiAgICBcIk1pa2FcIixcbiAgICBcIk1pa2FpbFwiLFxuICAgIFwiTWlrZVwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIk1pbG9cIixcbiAgICBcIk1pb1wiLFxuICAgIFwiTWlyYWNcIixcbiAgICBcIk1pcmNvXCIsXG4gICAgXCJNaXJrb1wiLFxuICAgIFwiTW9oYW1lZFwiLFxuICAgIFwiTW9oYW1tYWRcIixcbiAgICBcIk1vaGFtbWVkXCIsXG4gICAgXCJNb3JpdHpcIixcbiAgICBcIk1vcnRlblwiLFxuICAgIFwiTXVoYW1tZWRcIixcbiAgICBcIk11cmF0XCIsXG4gICAgXCJNdXN0YWZhXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIk5hdGhhbmFlbFwiLFxuICAgIFwiTmVsc29uXCIsXG4gICAgXCJOZW9cIixcbiAgICBcIk5ldmlvXCIsXG4gICAgXCJOaWNrXCIsXG4gICAgXCJOaWNsYXNcIixcbiAgICBcIk5pY29cIixcbiAgICBcIk5pY29sYWlcIixcbiAgICBcIk5pY29sYXNcIixcbiAgICBcIk5pZWxzXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pa2xhc1wiLFxuICAgIFwiTmlrb1wiLFxuICAgIFwiTmlrb2xhaVwiLFxuICAgIFwiTmlrb2xhc1wiLFxuICAgIFwiTmlsc1wiLFxuICAgIFwiTmlub1wiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiTm9ybWFuXCIsXG4gICAgXCJPZGluXCIsXG4gICAgXCJPa2VcIixcbiAgICBcIk9sZVwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJPbWFyXCIsXG4gICAgXCJPbnVyXCIsXG4gICAgXCJPc2NhclwiLFxuICAgIFwiT3NrYXJcIixcbiAgICBcIlBhc2NhbFwiLFxuICAgIFwiUGF0cmljZVwiLFxuICAgIFwiUGF0cmlja1wiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiUGVlclwiLFxuICAgIFwiUGVwZVwiLFxuICAgIFwiUGV0ZXJcIixcbiAgICBcIlBoaWxcIixcbiAgICBcIlBoaWxpcFwiLFxuICAgIFwiUGhpbGlwcFwiLFxuICAgIFwiUGllcnJlXCIsXG4gICAgXCJQaWV0XCIsXG4gICAgXCJQaXRcIixcbiAgICBcIlBpdXNcIixcbiAgICBcIlF1ZW50aW5cIixcbiAgICBcIlF1aXJpblwiLFxuICAgIFwiUmFmYWVsXCIsXG4gICAgXCJSYWlrXCIsXG4gICAgXCJSYW1vblwiLFxuICAgIFwiUmFwaGFlbFwiLFxuICAgIFwiUmFzbXVzXCIsXG4gICAgXCJSYXVsXCIsXG4gICAgXCJSYXlhblwiLFxuICAgIFwiUmVuw6lcIixcbiAgICBcIlJpY2FyZG9cIixcbiAgICBcIlJpY2NhcmRvXCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJSaWNrXCIsXG4gICAgXCJSaWNvXCIsXG4gICAgXCJSb2JlcnRcIixcbiAgICBcIlJvYmluXCIsXG4gICAgXCJSb2Njb1wiLFxuICAgIFwiUm9tYW5cIixcbiAgICBcIlJvbWVvXCIsXG4gICAgXCJSb25cIixcbiAgICBcIlJ1YmVuXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJTYWlkXCIsXG4gICAgXCJTYWxpaFwiLFxuICAgIFwiU2FtXCIsXG4gICAgXCJTYW1pXCIsXG4gICAgXCJTYW1teVwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYW5kcm9cIixcbiAgICBcIlNhbnRpbm9cIixcbiAgICBcIlNhc2NoYVwiLFxuICAgIFwiU2VhblwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZWxpbVwiLFxuICAgIFwiU2VtaWhcIixcbiAgICBcIlNoYXduXCIsXG4gICAgXCJTaWxhc1wiLFxuICAgIFwiU2ltZW9uXCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiU2luYW5cIixcbiAgICBcIlNreVwiLFxuICAgIFwiU3RlZmFuXCIsXG4gICAgXCJTdGVmZmVuXCIsXG4gICAgXCJTdGVwaGFuXCIsXG4gICAgXCJTdGV2ZVwiLFxuICAgIFwiU3RldmVuXCIsXG4gICAgXCJTdmVuXCIsXG4gICAgXCJTw7Zua2VcIixcbiAgICBcIlPDtnJlblwiLFxuICAgIFwiVGFoYVwiLFxuICAgIFwiVGFtaW5vXCIsXG4gICAgXCJUYW1tb1wiLFxuICAgIFwiVGFyaWtcIixcbiAgICBcIlRheWxlclwiLFxuICAgIFwiVGF5bG9yXCIsXG4gICAgXCJUZW9cIixcbiAgICBcIlRoZW9cIixcbiAgICBcIlRoZW9kb3JcIixcbiAgICBcIlRoaWVzXCIsXG4gICAgXCJUaGlsb1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJUaG9yYmVuXCIsXG4gICAgXCJUaG9yZVwiLFxuICAgIFwiVGhvcmdlXCIsXG4gICAgXCJUaWFnb1wiLFxuICAgIFwiVGlsXCIsXG4gICAgXCJUaWxsXCIsXG4gICAgXCJUaWxsbWFublwiLFxuICAgIFwiVGltXCIsXG4gICAgXCJUaW1tXCIsXG4gICAgXCJUaW1vXCIsXG4gICAgXCJUaW1vblwiLFxuICAgIFwiVGltb3RoeVwiLFxuICAgIFwiVGlub1wiLFxuICAgIFwiVGl0dXNcIixcbiAgICBcIlRpemlhblwiLFxuICAgIFwiVGphcmtcIixcbiAgICBcIlRvYmlhc1wiLFxuICAgIFwiVG9tXCIsXG4gICAgXCJUb21teVwiLFxuICAgIFwiVG9uaVwiLFxuICAgIFwiVG9ueVwiLFxuICAgIFwiVG9yYmVuXCIsXG4gICAgXCJUb3JlXCIsXG4gICAgXCJUcmlzdGFuXCIsXG4gICAgXCJUeWxlclwiLFxuICAgIFwiVHlyb25cIixcbiAgICBcIlVtdXRcIixcbiAgICBcIlZhbGVudGluXCIsXG4gICAgXCJWYWxlbnRpbm9cIixcbiAgICBcIlZlaXRcIixcbiAgICBcIlZpY3RvclwiLFxuICAgIFwiVmlrdG9yXCIsXG4gICAgXCJWaW5cIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIlZpdG9cIixcbiAgICBcIlZpdHVzXCIsXG4gICAgXCJXaWxoZWxtXCIsXG4gICAgXCJXaWxsaVwiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiV2lsbHlcIixcbiAgICBcIlhhdmVyXCIsXG4gICAgXCJZYW5uaWNcIixcbiAgICBcIllhbm5pY2tcIixcbiAgICBcIllhbm5pa1wiLFxuICAgIFwiWWFubmlzXCIsXG4gICAgXCJZYXNpblwiLFxuICAgIFwiWW91c3NlZlwiLFxuICAgIFwiWXVudXNcIixcbiAgICBcIll1c3VmXCIsXG4gICAgXCJZdmVuXCIsXG4gICAgXCJZdmVzXCIsXG4gICAgXCLDlm1lclwiLFxuICAgIFwiQWFsaXlhaFwiLFxuICAgIFwiQWJieVwiLFxuICAgIFwiQWJpZ2FpbFwiLFxuICAgIFwiQWRhXCIsXG4gICAgXCJBZGVsaW5hXCIsXG4gICAgXCJBZHJpYW5hXCIsXG4gICAgXCJBaWxlZW5cIixcbiAgICBcIkFpbWVlXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiQWxlYVwiLFxuICAgIFwiQWxlbmFcIixcbiAgICBcIkFsZXNzYVwiLFxuICAgIFwiQWxlc3NpYVwiLFxuICAgIFwiQWxleGFcIixcbiAgICBcIkFsZXhhbmRyYVwiLFxuICAgIFwiQWxleGlhXCIsXG4gICAgXCJBbGV4aXNcIixcbiAgICBcIkFsZXluYVwiLFxuICAgIFwiQWxpYVwiLFxuICAgIFwiQWxpY2FcIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIkFsaW5hXCIsXG4gICAgXCJBbGlzYVwiLFxuICAgIFwiQWxpc2hhXCIsXG4gICAgXCJBbGlzc2FcIixcbiAgICBcIkFsaXlhXCIsXG4gICAgXCJBbGl5YWhcIixcbiAgICBcIkFsbGVncmFcIixcbiAgICBcIkFsbWFcIixcbiAgICBcIkFseXNzYVwiLFxuICAgIFwiQW1hbGlhXCIsXG4gICAgXCJBbWFuZGFcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiQW1lbGllXCIsXG4gICAgXCJBbWluYVwiLFxuICAgIFwiQW1pcmFcIixcbiAgICBcIkFteVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmFiZWxcIixcbiAgICBcIkFuYXN0YXNpYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJBbmdlbGFcIixcbiAgICBcIkFuZ2VsaW5hXCIsXG4gICAgXCJBbmdlbGlxdWVcIixcbiAgICBcIkFuamFcIixcbiAgICBcIkFublwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiQW5uYWJlbFwiLFxuICAgIFwiQW5uYWJlbGxcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiQW5uYWxlbmFcIixcbiAgICBcIkFubmVcIixcbiAgICBcIkFubmVrZVwiLFxuICAgIFwiQW5uZWxpZVwiLFxuICAgIFwiQW5uZW1hcmllXCIsXG4gICAgXCJBbm5pXCIsXG4gICAgXCJBbm5pZVwiLFxuICAgIFwiQW5uaWthXCIsXG4gICAgXCJBbm55XCIsXG4gICAgXCJBbm91a1wiLFxuICAgIFwiQW50b25pYVwiLFxuICAgIFwiQXJkYVwiLFxuICAgIFwiQXJpYW5hXCIsXG4gICAgXCJBcmlhbmVcIixcbiAgICBcIkFyd2VuXCIsXG4gICAgXCJBc2hsZXlcIixcbiAgICBcIkFzeWFcIixcbiAgICBcIkF1cmVsaWFcIixcbiAgICBcIkF1cm9yYVwiLFxuICAgIFwiQXZhXCIsXG4gICAgXCJBeWxlZW5cIixcbiAgICBcIkF5bGluXCIsXG4gICAgXCJBeXNlXCIsXG4gICAgXCJBenJhXCIsXG4gICAgXCJCZXR0eVwiLFxuICAgIFwiQmlhbmNhXCIsXG4gICAgXCJCaWFua2FcIixcbiAgICBcIkNhaXRsaW5cIixcbiAgICBcIkNhcmFcIixcbiAgICBcIkNhcmluYVwiLFxuICAgIFwiQ2FybGFcIixcbiAgICBcIkNhcmxvdHRhXCIsXG4gICAgXCJDYXJtZW5cIixcbiAgICBcIkNhcm9saW5cIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXJvbGluZVwiLFxuICAgIFwiQ2Fzc2FuZHJhXCIsXG4gICAgXCJDYXRoYXJpbmFcIixcbiAgICBcIkNhdHJpblwiLFxuICAgIFwiQ2VjaWxlXCIsXG4gICAgXCJDZWNpbGlhXCIsXG4gICAgXCJDZWxpYVwiLFxuICAgIFwiQ2VsaW5hXCIsXG4gICAgXCJDZWxpbmVcIixcbiAgICBcIkNleWRhXCIsXG4gICAgXCJDZXlsaW5cIixcbiAgICBcIkNoYW50YWxcIixcbiAgICBcIkNoYXJsZWVuXCIsXG4gICAgXCJDaGFybG90dGFcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQ2hheWVubmVcIixcbiAgICBcIkNoZXllbm5lXCIsXG4gICAgXCJDaGlhcmFcIixcbiAgICBcIkNocmlzdGluXCIsXG4gICAgXCJDaHJpc3RpbmFcIixcbiAgICBcIkNpbmR5XCIsXG4gICAgXCJDbGFpcmVcIixcbiAgICBcIkNsYXJhXCIsXG4gICAgXCJDbGFyaXNzYVwiLFxuICAgIFwiQ29sbGVlblwiLFxuICAgIFwiQ29sbGllblwiLFxuICAgIFwiQ29yYVwiLFxuICAgIFwiQ29yaW5uYVwiLFxuICAgIFwiQ29zaW1hXCIsXG4gICAgXCJEYW5hXCIsXG4gICAgXCJEYW5pZWxhXCIsXG4gICAgXCJEYXJpYVwiLFxuICAgIFwiRGFybGVlblwiLFxuICAgIFwiRGVmbmVcIixcbiAgICBcIkRlbGlhXCIsXG4gICAgXCJEZW5pc2VcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEaWxhcmFcIixcbiAgICBcIkRpbmFcIixcbiAgICBcIkRvcm90aGVhXCIsXG4gICAgXCJFY3JpblwiLFxuICAgIFwiRWRhXCIsXG4gICAgXCJFaWxlZW5cIixcbiAgICBcIkVsYVwiLFxuICAgIFwiRWxhaW5lXCIsXG4gICAgXCJFbGFudXJcIixcbiAgICBcIkVsZWFcIixcbiAgICBcIkVsZW5hXCIsXG4gICAgXCJFbGVuaVwiLFxuICAgIFwiRWxlb25vcmFcIixcbiAgICBcIkVsaWFuYVwiLFxuICAgIFwiRWxpZlwiLFxuICAgIFwiRWxpbmFcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkVsbGFcIixcbiAgICBcIkVsbGVuXCIsXG4gICAgXCJFbGxpXCIsXG4gICAgXCJFbGx5XCIsXG4gICAgXCJFbHNhXCIsXG4gICAgXCJFbWVsaWVcIixcbiAgICBcIkVtZWx5XCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVtaWxpZVwiLFxuICAgIFwiRW1pbHlcIixcbiAgICBcIkVtbWFcIixcbiAgICBcIkVtbWVseVwiLFxuICAgIFwiRW1taVwiLFxuICAgIFwiRW1teVwiLFxuICAgIFwiRW5pZVwiLFxuICAgIFwiRW5uYVwiLFxuICAgIFwiRW55YVwiLFxuICAgIFwiRXNtYVwiLFxuICAgIFwiRXN0ZWxsZVwiLFxuICAgIFwiRXN0aGVyXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIkV2ZWxpblwiLFxuICAgIFwiRXZlbGluYVwiLFxuICAgIFwiRXZlbGluZVwiLFxuICAgIFwiRXZlbHluXCIsXG4gICAgXCJGYWJpZW5uZVwiLFxuICAgIFwiRmF0aW1hXCIsXG4gICAgXCJGYXRtYVwiLFxuICAgIFwiRmVsaWNpYVwiLFxuICAgIFwiRmVsaWNpdGFzXCIsXG4gICAgXCJGZWxpbmFcIixcbiAgICBcIkZlbWtlXCIsXG4gICAgXCJGZW5qYVwiLFxuICAgIFwiRmluZVwiLFxuICAgIFwiRmluaWFcIixcbiAgICBcIkZpbmphXCIsXG4gICAgXCJGaW5uamFcIixcbiAgICBcIkZpb25hXCIsXG4gICAgXCJGbG9yYVwiLFxuICAgIFwiRmxvcmVudGluZVwiLFxuICAgIFwiRnJhbmNlc2NhXCIsXG4gICAgXCJGcmFua2FcIixcbiAgICBcIkZyYW56aXNrYVwiLFxuICAgIFwiRnJlZGVyaWtlXCIsXG4gICAgXCJGcmV5YVwiLFxuICAgIFwiRnJpZGFcIixcbiAgICBcIkZyaWVkYVwiLFxuICAgIFwiRnJpZWRlcmlrZVwiLFxuICAgIFwiR2lhZGFcIixcbiAgICBcIkdpbmFcIixcbiAgICBcIkdpdWxpYVwiLFxuICAgIFwiR2l1bGlhbmFcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJIYWlsZXlcIixcbiAgICBcIkhhbmFcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIkhlaWRpXCIsXG4gICAgXCJIZWxlblwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJIZWxlbmVcIixcbiAgICBcIkhlbGluXCIsXG4gICAgXCJIZW5yaWV0dGVcIixcbiAgICBcIkhlbnJpa2VcIixcbiAgICBcIkhlcm1pbmVcIixcbiAgICBcIklkYVwiLFxuICAgIFwiSWxheWRhXCIsXG4gICAgXCJJbWtlXCIsXG4gICAgXCJJbmFcIixcbiAgICBcIkluZXNcIixcbiAgICBcIkluZ2FcIixcbiAgICBcIklua2FcIixcbiAgICBcIklyZW1cIixcbiAgICBcIklzYVwiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxsXCIsXG4gICAgXCJJc2FiZWxsYVwiLFxuICAgIFwiSXNhYmVsbGVcIixcbiAgICBcIkl2b25uZVwiLFxuICAgIFwiSmFjcXVlbGluZVwiLFxuICAgIFwiSmFtaWVcIixcbiAgICBcIkphbWlsYVwiLFxuICAgIFwiSmFuYVwiLFxuICAgIFwiSmFuZVwiLFxuICAgIFwiSmFuaW5cIixcbiAgICBcIkphbmluYVwiLFxuICAgIFwiSmFuaW5lXCIsXG4gICAgXCJKYW5uYVwiLFxuICAgIFwiSmFubmVcIixcbiAgICBcIkphcmFcIixcbiAgICBcIkphc21pblwiLFxuICAgIFwiSmFzbWluYVwiLFxuICAgIFwiSmFzbWluZVwiLFxuICAgIFwiSmVsbGFcIixcbiAgICBcIkplbm5hXCIsXG4gICAgXCJKZW5uaWZlclwiLFxuICAgIFwiSmVubnlcIixcbiAgICBcIkplc3NpY2FcIixcbiAgICBcIkplc3N5XCIsXG4gICAgXCJKZXR0ZVwiLFxuICAgIFwiSmlsXCIsXG4gICAgXCJKaWxsXCIsXG4gICAgXCJKb2FuYVwiLFxuICAgIFwiSm9hbm5hXCIsXG4gICAgXCJKb2VsaW5hXCIsXG4gICAgXCJKb2VsaW5lXCIsXG4gICAgXCJKb2VsbGVcIixcbiAgICBcIkpvaGFubmFcIixcbiAgICBcIkpvbGVlblwiLFxuICAgIFwiSm9saWVcIixcbiAgICBcIkpvbGllblwiLFxuICAgIFwiSm9saW5cIixcbiAgICBcIkpvbGluYVwiLFxuICAgIFwiSm9saW5lXCIsXG4gICAgXCJKb25hXCIsXG4gICAgXCJKb25haFwiLFxuICAgIFwiSm9ubmFcIixcbiAgICBcIkpvc2VmaW5cIixcbiAgICBcIkpvc2VmaW5lXCIsXG4gICAgXCJKb3NlcGhpblwiLFxuICAgIFwiSm9zZXBoaW5lXCIsXG4gICAgXCJKb3NpZVwiLFxuICAgIFwiSm9zeVwiLFxuICAgIFwiSm95XCIsXG4gICAgXCJKb3ljZVwiLFxuICAgIFwiSnVkaXRoXCIsXG4gICAgXCJKdWR5XCIsXG4gICAgXCJKdWxlXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuYVwiLFxuICAgIFwiSnVsaWFuZVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIkp1bGllbm5lXCIsXG4gICAgXCJKdWxpa2FcIixcbiAgICBcIkp1bGluYVwiLFxuICAgIFwiSnVuYVwiLFxuICAgIFwiSnVzdGluZVwiLFxuICAgIFwiS2FqYVwiLFxuICAgIFwiS2FyaW5hXCIsXG4gICAgXCJLYXJsYVwiLFxuICAgIFwiS2FybG90dGFcIixcbiAgICBcIkthcm9saW5hXCIsXG4gICAgXCJLYXJvbGluZVwiLFxuICAgIFwiS2Fzc2FuZHJhXCIsXG4gICAgXCJLYXRhcmluYVwiLFxuICAgIFwiS2F0aGFyaW5hXCIsXG4gICAgXCJLYXRocmluXCIsXG4gICAgXCJLYXRqYVwiLFxuICAgIFwiS2F0cmluXCIsXG4gICAgXCJLYXlhXCIsXG4gICAgXCJLYXlyYVwiLFxuICAgIFwiS2lhbmFcIixcbiAgICBcIktpYXJhXCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWJlcmxleVwiLFxuICAgIFwiS2ltYmVybHlcIixcbiAgICBcIktpcmFcIixcbiAgICBcIktsYXJhXCIsXG4gICAgXCJLb3Jpbm5hXCIsXG4gICAgXCJLcmlzdGluXCIsXG4gICAgXCJLeXJhXCIsXG4gICAgXCJMYWlsYVwiLFxuICAgIFwiTGFuYVwiLFxuICAgIFwiTGFyYVwiLFxuICAgIFwiTGFyaXNzYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkxhdXJlZW5cIixcbiAgICBcIkxhdmluaWFcIixcbiAgICBcIkxlYVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiTGVhbmFcIixcbiAgICBcIkxlYW5kcmFcIixcbiAgICBcIkxlYW5uXCIsXG4gICAgXCJMZWVcIixcbiAgICBcIkxlaWxhXCIsXG4gICAgXCJMZW5hXCIsXG4gICAgXCJMZW5lXCIsXG4gICAgXCJMZW5pXCIsXG4gICAgXCJMZW5pYVwiLFxuICAgIFwiTGVuamFcIixcbiAgICBcIkxlbnlhXCIsXG4gICAgXCJMZW9uYVwiLFxuICAgIFwiTGVvbmlcIixcbiAgICBcIkxlb25pZVwiLFxuICAgIFwiTGVvbm9yYVwiLFxuICAgIFwiTGV0aWNpYVwiLFxuICAgIFwiTGV0aXppYVwiLFxuICAgIFwiTGV2a2VcIixcbiAgICBcIkxleWxhXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpYWhcIixcbiAgICBcIkxpYW5hXCIsXG4gICAgXCJMaWxpXCIsXG4gICAgXCJMaWxpYVwiLFxuICAgIFwiTGlsaWFuXCIsXG4gICAgXCJMaWxpYW5hXCIsXG4gICAgXCJMaWxpdGhcIixcbiAgICBcIkxpbGxpXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJMaWxseVwiLFxuICAgIFwiTGlseVwiLFxuICAgIFwiTGluYVwiLFxuICAgIFwiTGluZGFcIixcbiAgICBcIkxpbmRzYXlcIixcbiAgICBcIkxpbmVcIixcbiAgICBcIkxpbm5cIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiTGlzYW5uXCIsXG4gICAgXCJMaXNhbm5lXCIsXG4gICAgXCJMaXZcIixcbiAgICBcIkxpdmlhXCIsXG4gICAgXCJMaXpcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkxvcmVlblwiLFxuICAgIFwiTG9yZW5hXCIsXG4gICAgXCJMb3R0YVwiLFxuICAgIFwiTG90dGVcIixcbiAgICBcIkxvdWlzYVwiLFxuICAgIFwiTG91aXNlXCIsXG4gICAgXCJMdWFuYVwiLFxuICAgIFwiTHVjYVwiLFxuICAgIFwiTHVjaWFcIixcbiAgICBcIkx1Y2llXCIsXG4gICAgXCJMdWNpZW5uZVwiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiTHVpc2FcIixcbiAgICBcIkx1aXNlXCIsXG4gICAgXCJMdWthXCIsXG4gICAgXCJMdW5hXCIsXG4gICAgXCJMdXppZVwiLFxuICAgIFwiTHlhXCIsXG4gICAgXCJMeWRpYVwiLFxuICAgIFwiTHluXCIsXG4gICAgXCJMeW5uXCIsXG4gICAgXCJNYWRlbGVpbmVcIixcbiAgICBcIk1hZGl0YVwiLFxuICAgIFwiTWFkbGVlblwiLFxuICAgIFwiTWFkbGVuXCIsXG4gICAgXCJNYWdkYWxlbmFcIixcbiAgICBcIk1haWtlXCIsXG4gICAgXCJNYWlsaW5cIixcbiAgICBcIk1haXJhXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJNYWxlbmFcIixcbiAgICBcIk1hbGlhXCIsXG4gICAgXCJNYWxpblwiLFxuICAgIFwiTWFsaW5hXCIsXG4gICAgXCJNYW5keVwiLFxuICAgIFwiTWFyYVwiLFxuICAgIFwiTWFyYWhcIixcbiAgICBcIk1hcmVpa2VcIixcbiAgICBcIk1hcmVuXCIsXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiTWFyaWFtXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiTWFyaWVrZVwiLFxuICAgIFwiTWFyaWVsbGFcIixcbiAgICBcIk1hcmlrYVwiLFxuICAgIFwiTWFyaW5hXCIsXG4gICAgXCJNYXJpc2FcIixcbiAgICBcIk1hcmlzc2FcIixcbiAgICBcIk1hcml0XCIsXG4gICAgXCJNYXJsYVwiLFxuICAgIFwiTWFybGVlblwiLFxuICAgIFwiTWFybGVuXCIsXG4gICAgXCJNYXJsZW5hXCIsXG4gICAgXCJNYXJsZW5lXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydGhhXCIsXG4gICAgXCJNYXJ5XCIsXG4gICAgXCJNYXJ5YW1cIixcbiAgICBcIk1hdGhpbGRhXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWF0aWxkYVwiLFxuICAgIFwiTWF4aVwiLFxuICAgIFwiTWF4aW1hXCIsXG4gICAgXCJNYXhpbmVcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heXJhXCIsXG4gICAgXCJNZWRpbmFcIixcbiAgICBcIk1lZGluZVwiLFxuICAgIFwiTWVpa2VcIixcbiAgICBcIk1lbGFuaWVcIixcbiAgICBcIk1lbGVrXCIsXG4gICAgXCJNZWxpa2VcIixcbiAgICBcIk1lbGluYVwiLFxuICAgIFwiTWVsaW5kYVwiLFxuICAgIFwiTWVsaXNcIixcbiAgICBcIk1lbGlzYVwiLFxuICAgIFwiTWVsaXNzYVwiLFxuICAgIFwiTWVybGVcIixcbiAgICBcIk1lcnZlXCIsXG4gICAgXCJNZXJ5ZW1cIixcbiAgICBcIk1ldHRlXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIk1pY2hhZWxhXCIsXG4gICAgXCJNaWNoZWxsZVwiLFxuICAgIFwiTWlla2VcIixcbiAgICBcIk1pbGFcIixcbiAgICBcIk1pbGFuYVwiLFxuICAgIFwiTWlsZW5hXCIsXG4gICAgXCJNaWxsYVwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiTWlyYVwiLFxuICAgIFwiTWlyYXlcIixcbiAgICBcIk1pcmlhbVwiLFxuICAgIFwiTWlyamFcIixcbiAgICBcIk1vbmFcIixcbiAgICBcIk1vbmlxdWVcIixcbiAgICBcIk5hZGluZVwiLFxuICAgIFwiTmFkamFcIixcbiAgICBcIk5hZW1pXCIsXG4gICAgXCJOYW5jeVwiLFxuICAgIFwiTmFvbWlcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5hdGFsaWVcIixcbiAgICBcIk5hdGhhbGllXCIsXG4gICAgXCJOZWVsZVwiLFxuICAgIFwiTmVsYVwiLFxuICAgIFwiTmVsZVwiLFxuICAgIFwiTmVsbGlcIixcbiAgICBcIk5lbGx5XCIsXG4gICAgXCJOaWFcIixcbiAgICBcIk5pY29sZVwiLFxuICAgIFwiTmlrYVwiLFxuICAgIFwiTmlrZVwiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWxhXCIsXG4gICAgXCJOaW5hXCIsXG4gICAgXCJOaXNhXCIsXG4gICAgXCJOb2VtaVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJQYXRyaWNpYVwiLFxuICAgIFwiUGF0cml6aWFcIixcbiAgICBcIlBhdWxhXCIsXG4gICAgXCJQYXVsaW5hXCIsXG4gICAgXCJQYXVsaW5lXCIsXG4gICAgXCJQZW5lbG9wZVwiLFxuICAgIFwiUGhpbGluZVwiLFxuICAgIFwiUGhvZWJlXCIsXG4gICAgXCJQaWFcIixcbiAgICBcIlJhaGVsXCIsXG4gICAgXCJSYW5pYVwiLFxuICAgIFwiUmViZWNjYVwiLFxuICAgIFwiUmViZWtrYVwiLFxuICAgIFwiUmlhbmFcIixcbiAgICBcIlJpZWtlXCIsXG4gICAgXCJSaWtlXCIsXG4gICAgXCJSb21pbmFcIixcbiAgICBcIlJvbXlcIixcbiAgICBcIlJvbmphXCIsXG4gICAgXCJSb3NhXCIsXG4gICAgXCJSb3NhbGllXCIsXG4gICAgXCJSdWJ5XCIsXG4gICAgXCJTYWJyaW5hXCIsXG4gICAgXCJTYWhyYVwiLFxuICAgIFwiU2FsbHlcIixcbiAgICBcIlNhbG9tZVwiLFxuICAgIFwiU2FtYW50aGFcIixcbiAgICBcIlNhbWlhXCIsXG4gICAgXCJTYW1pcmFcIixcbiAgICBcIlNhbmRyYVwiLFxuICAgIFwiU2FuZHlcIixcbiAgICBcIlNhbmphXCIsXG4gICAgXCJTYXBoaXJhXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiU2Fza2lhXCIsXG4gICAgXCJTZWxpblwiLFxuICAgIFwiU2VsaW5hXCIsXG4gICAgXCJTZWxtYVwiLFxuICAgIFwiU2VuYVwiLFxuICAgIFwiU2lkbmV5XCIsXG4gICAgXCJTaWVubmFcIixcbiAgICBcIlNpbGphXCIsXG4gICAgXCJTaW5hXCIsXG4gICAgXCJTaW5qYVwiLFxuICAgIFwiU21pbGxhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiU29maWVcIixcbiAgICBcIlNvbmphXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiU29yYXlhXCIsXG4gICAgXCJTdGVmYW5pZVwiLFxuICAgIFwiU3RlbGxhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIlN0aW5hXCIsXG4gICAgXCJTdWRlXCIsXG4gICAgXCJTdW1tZXJcIixcbiAgICBcIlN1c2FubmVcIixcbiAgICBcIlN2ZWFcIixcbiAgICBcIlN2ZW5qYVwiLFxuICAgIFwiU3lkbmV5XCIsXG4gICAgXCJUYWJlYVwiLFxuICAgIFwiVGFsZWFcIixcbiAgICBcIlRhbGlhXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIlRhbWlhXCIsXG4gICAgXCJUYW1pbmFcIixcbiAgICBcIlRhbmphXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUYXJqYVwiLFxuICAgIFwiVGVyZXNhXCIsXG4gICAgXCJUZXNzYVwiLFxuICAgIFwiVGhhbGVhXCIsXG4gICAgXCJUaGFsaWFcIixcbiAgICBcIlRoZWFcIixcbiAgICBcIlRoZXJlc2FcIixcbiAgICBcIlRpYVwiLFxuICAgIFwiVGluYVwiLFxuICAgIFwiVG9ta2VcIixcbiAgICBcIlR1YW5hXCIsXG4gICAgXCJWYWxlbnRpbmFcIixcbiAgICBcIlZhbGVyaWFcIixcbiAgICBcIlZhbGVyaWVcIixcbiAgICBcIlZhbmVzc2FcIixcbiAgICBcIlZlcmFcIixcbiAgICBcIlZlcm9uaWthXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiVmlrdG9yaWFcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJWaXZpYW5cIixcbiAgICBcIlZpdmllblwiLFxuICAgIFwiVml2aWVubmVcIixcbiAgICBcIldpYmtlXCIsXG4gICAgXCJXaWVia2VcIixcbiAgICBcIlhlbmlhXCIsXG4gICAgXCJZYXJhXCIsXG4gICAgXCJZYXJlblwiLFxuICAgIFwiWWFzbWluXCIsXG4gICAgXCJZbHZpXCIsXG4gICAgXCJZbHZpZVwiLFxuICAgIFwiWXZvbm5lXCIsXG4gICAgXCJaYXJhXCIsXG4gICAgXCJaZWhyYVwiLFxuICAgIFwiWmV5bmVwXCIsXG4gICAgXCJab2VcIixcbiAgICBcIlpvZXlcIixcbiAgICBcIlpvw6lcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBYmVsXCIsXG4gICAgXCJBYmljaHRcIixcbiAgICBcIkFicmFoYW1cIixcbiAgICBcIkFicmFtb3ZpY1wiLFxuICAgIFwiQWJ0XCIsXG4gICAgXCJBY2hpbGxlc1wiLFxuICAgIFwiQWNoa2luYWR6ZVwiLFxuICAgIFwiQWNrZXJtYW5uXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCJBZGFtc1wiLFxuICAgIFwiQWRlXCIsXG4gICAgXCJBZ29zdGluaVwiLFxuICAgIFwiQWhsa2VcIixcbiAgICBcIkFocmVuYmVyZ1wiLFxuICAgIFwiQWhyZW5zXCIsXG4gICAgXCJBaWduZXJcIixcbiAgICBcIkFsYmVydFwiLFxuICAgIFwiQWxicmVjaHRcIixcbiAgICBcIkFsZXhhXCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkFsaXphZGVoXCIsXG4gICAgXCJBbGxnZXllclwiLFxuICAgIFwiQW1hbm5cIixcbiAgICBcIkFtYmVyZ1wiLFxuICAgIFwiQW5kaW5nXCIsXG4gICAgXCJBbmdncmVueVwiLFxuICAgIFwiQXBpdHpcIixcbiAgICBcIkFyZW5kdFwiLFxuICAgIFwiQXJlbnNcIixcbiAgICBcIkFybmR0XCIsXG4gICAgXCJBcnllZVwiLFxuICAgIFwiQXNjaGVuYnJvaWNoXCIsXG4gICAgXCJBc3NtdXNcIixcbiAgICBcIkFzdGFmZWlcIixcbiAgICBcIkF1ZXJcIixcbiAgICBcIkF4bWFublwiLFxuICAgIFwiQmFhcmNrXCIsXG4gICAgXCJCYWNobWFublwiLFxuICAgIFwiQmFkYW5lXCIsXG4gICAgXCJCYWRlclwiLFxuICAgIFwiQmFnYW56XCIsXG4gICAgXCJCYWhsXCIsXG4gICAgXCJCYWtcIixcbiAgICBcIkJhbGNlclwiLFxuICAgIFwiQmFsY2tcIixcbiAgICBcIkJhbGtvd1wiLFxuICAgIFwiQmFsbnV3ZWl0XCIsXG4gICAgXCJCYWx6ZXJcIixcbiAgICBcIkJhbnNlXCIsXG4gICAgXCJCYXJyXCIsXG4gICAgXCJCYXJ0ZWxzXCIsXG4gICAgXCJCYXJ0aFwiLFxuICAgIFwiQmFyeWxsYVwiLFxuICAgIFwiQmFzZWRhXCIsXG4gICAgXCJCYXR0a2VcIixcbiAgICBcIkJhdWVyXCIsXG4gICAgXCJCYXVlcm1laXN0ZXJcIixcbiAgICBcIkJhdW1hbm5cIixcbiAgICBcIkJhdW1laXN0ZXJcIixcbiAgICBcIkJhdXNjaGluZ2VyXCIsXG4gICAgXCJCYXVzY2hrZVwiLFxuICAgIFwiQmF5ZXJcIixcbiAgICBcIkJlYXZvZ3VpXCIsXG4gICAgXCJCZWNrXCIsXG4gICAgXCJCZWNrZWxcIixcbiAgICBcIkJlY2tlclwiLFxuICAgIFwiQmVja21hbm5cIixcbiAgICBcIkJlZGV3aXR6XCIsXG4gICAgXCJCZWVsZVwiLFxuICAgIFwiQmVlclwiLFxuICAgIFwiQmVnZ2Vyb3dcIixcbiAgICBcIkJlaFwiLFxuICAgIFwiQmVoclwiLFxuICAgIFwiQmVocmVuYnJ1Y2hcIixcbiAgICBcIkJlbHpcIixcbiAgICBcIkJlbmRlclwiLFxuICAgIFwiQmVuZWNrZVwiLFxuICAgIFwiQmVubmVyXCIsXG4gICAgXCJCZW5uaW5nZXJcIixcbiAgICBcIkJlbnppbmdcIixcbiAgICBcIkJlcmVuZHNcIixcbiAgICBcIkJlcmdlclwiLFxuICAgIFwiQmVybmVyXCIsXG4gICAgXCJCZXJuaW5nXCIsXG4gICAgXCJCZXJ0ZW5icmVpdGVyXCIsXG4gICAgXCJCZXN0XCIsXG4gICAgXCJCZXRoa2VcIixcbiAgICBcIkJldHpcIixcbiAgICBcIkJldXNoYXVzZW5cIixcbiAgICBcIkJldXRlbHNwYWNoZXJcIixcbiAgICBcIkJleWVyXCIsXG4gICAgXCJCaWJhXCIsXG4gICAgXCJCaWNobGVyXCIsXG4gICAgXCJCaWNrZWxcIixcbiAgICBcIkJpZWRlcm1hbm5cIixcbiAgICBcIkJpZWxlclwiLFxuICAgIFwiQmllbGVydFwiLFxuICAgIFwiQmllbmFzY2hcIixcbiAgICBcIkJpZW5pYXNcIixcbiAgICBcIkJpZXNlbmJhY2hcIixcbiAgICBcIkJpZ2RlbGlcIixcbiAgICBcIkJpcmtlbWV5ZXJcIixcbiAgICBcIkJpdHRuZXJcIixcbiAgICBcIkJsYW5rXCIsXG4gICAgXCJCbGFzY2hla1wiLFxuICAgIFwiQmxhc3NuZWNrXCIsXG4gICAgXCJCbG9jaFwiLFxuICAgIFwiQmxvY2h3aXR6XCIsXG4gICAgXCJCbG9ja2hhdXNcIixcbiAgICBcIkJsdW1cIixcbiAgICBcIkJsdW1lXCIsXG4gICAgXCJCb2NrXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2dkYXNoaW5cIixcbiAgICBcIkJvZ2VucmllZGVyXCIsXG4gICAgXCJCb2hnZVwiLFxuICAgIFwiQm9sbVwiLFxuICAgIFwiQm9yZ3NjaHVsemVcIixcbiAgICBcIkJvcmtcIixcbiAgICBcIkJvcm1hbm5cIixcbiAgICBcIkJvcm5zY2hldWVyXCIsXG4gICAgXCJCb3JybWFublwiLFxuICAgIFwiQm9yc2NoXCIsXG4gICAgXCJCb3J1c2NoZXdza2lcIixcbiAgICBcIkJvc1wiLFxuICAgIFwiQm9zbGVyXCIsXG4gICAgXCJCb3Vycm91YWdcIixcbiAgICBcIkJvdXNjaGVuXCIsXG4gICAgXCJCb3hoYW1tZXJcIixcbiAgICBcIkJveWRlXCIsXG4gICAgXCJCb3pzaWtcIixcbiAgICBcIkJyYW5kXCIsXG4gICAgXCJCcmFuZGVuYnVyZ1wiLFxuICAgIFwiQnJhbmRpc1wiLFxuICAgIFwiQnJhbmR0XCIsXG4gICAgXCJCcmF1ZXJcIixcbiAgICBcIkJyYXVuXCIsXG4gICAgXCJCcmVobWVyXCIsXG4gICAgXCJCcmVpdGVuc3RlaW5cIixcbiAgICBcIkJyZW1lclwiLFxuICAgIFwiQnJlbXNlclwiLFxuICAgIFwiQnJlbm5lclwiLFxuICAgIFwiQnJldHRzY2huZWlkZXJcIixcbiAgICBcIkJyZXVcIixcbiAgICBcIkJyZXVlclwiLFxuICAgIFwiQnJpZXNlbmlja1wiLFxuICAgIFwiQnJpbmdtYW5uXCIsXG4gICAgXCJCcmlua21hbm5cIixcbiAgICBcIkJyaXhcIixcbiAgICBcIkJyb2VuaW5nXCIsXG4gICAgXCJCcm9zY2hcIixcbiAgICBcIkJydWNrbWFublwiLFxuICAgIFwiQnJ1ZGVyXCIsXG4gICAgXCJCcnVobnNcIixcbiAgICBcIkJydW5uZXJcIixcbiAgICBcIkJydW5zXCIsXG4gICAgXCJCcsOkdXRpZ2FtXCIsXG4gICAgXCJCcsO2bW1lXCIsXG4gICAgXCJCcsO8Z2dtYW5uXCIsXG4gICAgXCJCdWNoaG9selwiLFxuICAgIFwiQnVjaHJ1Y2tlclwiLFxuICAgIFwiQnVkZXJcIixcbiAgICBcIkJ1bHRtYW5uXCIsXG4gICAgXCJCdW5qZXNcIixcbiAgICBcIkJ1cmdlclwiLFxuICAgIFwiQnVyZ2hhZ2VuXCIsXG4gICAgXCJCdXJraGFyZFwiLFxuICAgIFwiQnVya2hhcmR0XCIsXG4gICAgXCJCdXJtZWlzdGVyXCIsXG4gICAgXCJCdXNjaFwiLFxuICAgIFwiQnVzY2hiYXVtXCIsXG4gICAgXCJCdXNlbWFublwiLFxuICAgIFwiQnVzc1wiLFxuICAgIFwiQnVzc2VcIixcbiAgICBcIkJ1c3NtYW5uXCIsXG4gICAgXCJCeXJkXCIsXG4gICAgXCJCw6Rja2VyXCIsXG4gICAgXCJCw7ZobVwiLFxuICAgIFwiQsO2bmlzY2hcIixcbiAgICBcIkLDtnJnZWxpbmdcIixcbiAgICBcIkLDtnJuZXJcIixcbiAgICBcIkLDtnR0bmVyXCIsXG4gICAgXCJCw7xjaGVsZVwiLFxuICAgIFwiQsO8aGxlclwiLFxuICAgIFwiQsO8a2VyXCIsXG4gICAgXCJCw7xuZ2VuZXJcIixcbiAgICBcIkLDvHJnZXJcIixcbiAgICBcIkLDvHJrbGVpblwiLFxuICAgIFwiQsO8c2NoZXJcIixcbiAgICBcIkLDvHR0bmVyXCIsXG4gICAgXCJDYW1hcmFcIixcbiAgICBcIkNhcmxvd2l0elwiLFxuICAgIFwiQ2FybHNvaG5cIixcbiAgICBcIkNhc3BhcmlcIixcbiAgICBcIkNhc3BlcnNcIixcbiAgICBcIkNoYXByb25cIixcbiAgICBcIkNocmlzdFwiLFxuICAgIFwiQ2llcnBpbnNraVwiLFxuICAgIFwiQ2xhcml1c1wiLFxuICAgIFwiQ2xlZW1cIixcbiAgICBcIkNsZXZlXCIsXG4gICAgXCJDb1wiLFxuICAgIFwiQ29ucmFkXCIsXG4gICAgXCJDb3JkZXNcIixcbiAgICBcIkNvcm5lbHNlblwiLFxuICAgIFwiQ29yc1wiLFxuICAgIFwiQ290dGhhcmR0XCIsXG4gICAgXCJDcmV3c1wiLFxuICAgIFwiQ3JvbmrDpGdlclwiLFxuICAgIFwiQ3Jvc3Nrb2ZwXCIsXG4gICAgXCJEYVwiLFxuICAgIFwiRGFobVwiLFxuICAgIFwiRGFobWVuXCIsXG4gICAgXCJEYWltZXJcIixcbiAgICBcIkRhbWFza2VcIixcbiAgICBcIkRhbm5lYmVyZ1wiLFxuICAgIFwiRGFubmVyXCIsXG4gICAgXCJEYXViXCIsXG4gICAgXCJEYXVibmVyXCIsXG4gICAgXCJEYXVkcmljaFwiLFxuICAgIFwiRGF1ZXJcIixcbiAgICBcIkRhdW1cIixcbiAgICBcIkRhdXRoXCIsXG4gICAgXCJEYXV0emVuYmVyZ1wiLFxuICAgIFwiRGVcIixcbiAgICBcIkRlY2tlclwiLFxuICAgIFwiRGVja2VydFwiLFxuICAgIFwiRGVlcmJlcmdcIixcbiAgICBcIkRlaG1lbFwiLFxuICAgIFwiRGVqYVwiLFxuICAgIFwiRGVsb25nZVwiLFxuICAgIFwiRGVtdXRcIixcbiAgICBcIkRlbmdsZXJcIixcbiAgICBcIkRlbm5lclwiLFxuICAgIFwiRGVuemluZ2VyXCIsXG4gICAgXCJEZXJyXCIsXG4gICAgXCJEZXJ0bWFublwiLFxuICAgIFwiRGV0aGxvZmZcIixcbiAgICBcIkRldXNjaGxlXCIsXG4gICAgXCJEaWVja21hbm5cIixcbiAgICBcIkRpZWRyaWNoXCIsXG4gICAgXCJEaWVrbWFublwiLFxuICAgIFwiRGllbmVsXCIsXG4gICAgXCJEaWVzXCIsXG4gICAgXCJEaWV0cmljaFwiLFxuICAgIFwiRGlldHpcIixcbiAgICBcIkRpZXR6c2NoXCIsXG4gICAgXCJEaWV6ZWxcIixcbiAgICBcIkRpbGxhXCIsXG4gICAgXCJEaW5nZWxzdGVkdFwiLFxuICAgIFwiRGlwcGxcIixcbiAgICBcIkRpdHRtYW5uXCIsXG4gICAgXCJEaXR0bWFyXCIsXG4gICAgXCJEaXR0bWVyXCIsXG4gICAgXCJEaXhcIixcbiAgICBcIkRvYmJydW56XCIsXG4gICAgXCJEb2JsZXJcIixcbiAgICBcIkRvaHJpbmdcIixcbiAgICBcIkRvbGNoXCIsXG4gICAgXCJEb2xkXCIsXG4gICAgXCJEb21icm93c2tpXCIsXG4gICAgXCJEb25pZVwiLFxuICAgIFwiRG9za29jenluc2tpXCIsXG4gICAgXCJEcmFndVwiLFxuICAgIFwiRHJlY2hzbGVyXCIsXG4gICAgXCJEcmVlc1wiLFxuICAgIFwiRHJlaGVyXCIsXG4gICAgXCJEcmVpZXJcIixcbiAgICBcIkRyZWlzc2lnYWNrZXJcIixcbiAgICBcIkRyZXNzbGVyXCIsXG4gICAgXCJEcmV3c1wiLFxuICAgIFwiRHVtYVwiLFxuICAgIFwiRHV0a2lld2ljelwiLFxuICAgIFwiRHlldHRcIixcbiAgICBcIkR5bHVzXCIsXG4gICAgXCJEw6RjaGVydFwiLFxuICAgIFwiRMO2YmVsXCIsXG4gICAgXCJEw7ZyaW5nXCIsXG4gICAgXCJEw7ZybmVyXCIsXG4gICAgXCJEw7ZycmVcIixcbiAgICBcIkTDvGNrXCIsXG4gICAgXCJFYmVyaGFyZFwiLFxuICAgIFwiRWJlcmhhcmR0XCIsXG4gICAgXCJFY2tlclwiLFxuICAgIFwiRWNraGFyZHRcIixcbiAgICBcIkVkb3JoXCIsXG4gICAgXCJFZmZsZXJcIixcbiAgICBcIkVnZ2VubXVlbGxlclwiLFxuICAgIFwiRWhtXCIsXG4gICAgXCJFaG1hbm5cIixcbiAgICBcIkVocmlnXCIsXG4gICAgXCJFaWNoXCIsXG4gICAgXCJFaWNobWFublwiLFxuICAgIFwiRWlmZXJ0XCIsXG4gICAgXCJFaW5lcnRcIixcbiAgICBcIkVpc2VubGF1ZXJcIixcbiAgICBcIkVrcG9cIixcbiAgICBcIkVsYmVcIixcbiAgICBcIkVsZXl0aFwiLFxuICAgIFwiRWxzc1wiLFxuICAgIFwiRW1lcnRcIixcbiAgICBcIkVtbWVsbWFublwiLFxuICAgIFwiRW5kZXJcIixcbiAgICBcIkVuZ2VsXCIsXG4gICAgXCJFbmdlbGVuXCIsXG4gICAgXCJFbmdlbG1hbm5cIixcbiAgICBcIkVwbGluaXVzXCIsXG4gICAgXCJFcmRtYW5uXCIsXG4gICAgXCJFcmhhcmR0XCIsXG4gICAgXCJFcmxlaVwiLFxuICAgIFwiRXJtXCIsXG4gICAgXCJFcm5zdFwiLFxuICAgIFwiRXJ0bFwiLFxuICAgIFwiRXJ3ZXNcIixcbiAgICBcIkVzZW53ZWluXCIsXG4gICAgXCJFc3NlclwiLFxuICAgIFwiRXZlcnNcIixcbiAgICBcIkV2ZXJ0c1wiLFxuICAgIFwiRXdhbGRcIixcbiAgICBcIkZhaG5lclwiLFxuICAgIFwiRmFsbGVyXCIsXG4gICAgXCJGYWx0ZXJcIixcbiAgICBcIkZhcmJlclwiLFxuICAgIFwiRmFzc2JlbmRlclwiLFxuICAgIFwiRmF1bGhhYmVyXCIsXG4gICAgXCJGZWhyaWdcIixcbiAgICBcIkZlbGRcIixcbiAgICBcIkZlbGtlXCIsXG4gICAgXCJGZWxsZXJcIixcbiAgICBcIkZlbm5lclwiLFxuICAgIFwiRmVuc2tlXCIsXG4gICAgXCJGZXVlcmJhY2hcIixcbiAgICBcIkZpZXR6XCIsXG4gICAgXCJGaWdsXCIsXG4gICAgXCJGaWd1cmFcIixcbiAgICBcIkZpbGlwb3dza2lcIixcbiAgICBcIkZpbHNpbmdlclwiLFxuICAgIFwiRmluY2tlXCIsXG4gICAgXCJGaW5rXCIsXG4gICAgXCJGaW5rZVwiLFxuICAgIFwiRmlzY2hlclwiLFxuICAgIFwiRml0c2NoZW5cIixcbiAgICBcIkZsZWlzY2hlclwiLFxuICAgIFwiRmxlaXNjaG1hbm5cIixcbiAgICBcIkZsb2RlclwiLFxuICAgIFwiRmxvcmN6YWtcIixcbiAgICBcIkZsb3JlXCIsXG4gICAgXCJGbG90dG1hbm5cIixcbiAgICBcIkZvcmtlbFwiLFxuICAgIFwiRm9yc3RcIixcbiAgICBcIkZyYWhtZWtlXCIsXG4gICAgXCJGcmFua1wiLFxuICAgIFwiRnJhbmtlXCIsXG4gICAgXCJGcmFudGFcIixcbiAgICBcIkZyYW50elwiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyYW56aXNcIixcbiAgICBcIkZyYW56bWFublwiLFxuICAgIFwiRnJhdWVuXCIsXG4gICAgXCJGcmF1ZW5kb3JmXCIsXG4gICAgXCJGcmVpZ2FuZ1wiLFxuICAgIFwiRnJlaW1hbm5cIixcbiAgICBcIkZyZWltdXRoXCIsXG4gICAgXCJGcmVpc2VuXCIsXG4gICAgXCJGcmVuemVsXCIsXG4gICAgXCJGcmV5XCIsXG4gICAgXCJGcmlja2VcIixcbiAgICBcIkZyaWVkXCIsXG4gICAgXCJGcmllZGVrXCIsXG4gICAgXCJGcmllZGVuYmVyZ1wiLFxuICAgIFwiRnJpZWRtYW5uXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaWVzc1wiLFxuICAgIFwiRnJpc2NoXCIsXG4gICAgXCJGcm9oblwiLFxuICAgIFwiRnJvc2NoXCIsXG4gICAgXCJGdWNoc1wiLFxuICAgIFwiRnVobGJyw7xnZ2VcIixcbiAgICBcIkZ1c2VuaWdcIixcbiAgICBcIkZ1c3RcIixcbiAgICBcIkbDtnJzdGVyXCIsXG4gICAgXCJHYWJhXCIsXG4gICAgXCJHYWJpdXNcIixcbiAgICBcIkdhYmxlclwiLFxuICAgIFwiR2Fkc2NoaWV3XCIsXG4gICAgXCJHYWtzdMOkZHRlclwiLFxuICAgIFwiR2FsYW5kZXJcIixcbiAgICBcIkdhbWxpblwiLFxuICAgIFwiR2FtcGVyXCIsXG4gICAgXCJHYW5nbnVzXCIsXG4gICAgXCJHYW56bWFublwiLFxuICAgIFwiR2FyYXR2YVwiLFxuICAgIFwiR2FzdFwiLFxuICAgIFwiR2FzdGVsXCIsXG4gICAgXCJHYXR6a2FcIixcbiAgICBcIkdhdWRlclwiLFxuICAgIFwiR2ViaGFyZHRcIixcbiAgICBcIkdlZXNlXCIsXG4gICAgXCJHZWhyZVwiLFxuICAgIFwiR2VocmlnXCIsXG4gICAgXCJHZWhyaW5nXCIsXG4gICAgXCJHZWhya2VcIixcbiAgICBcIkdlaWdlclwiLFxuICAgIFwiR2Vpc2xlclwiLFxuICAgIFwiR2Vpc3NsZXJcIixcbiAgICBcIkdlbGxpbmdcIixcbiAgICBcIkdlbnNcIixcbiAgICBcIkdlcmJlbm5vd1wiLFxuICAgIFwiR2VyZGVsXCIsXG4gICAgXCJHZXJoYXJkdFwiLFxuICAgIFwiR2Vyc2NobGVyXCIsXG4gICAgXCJHZXJzb25cIixcbiAgICBcIkdlc2VsbFwiLFxuICAgIFwiR2V5ZXJcIixcbiAgICBcIkdoaXJtYWlcIixcbiAgICBcIkdob3NoXCIsXG4gICAgXCJHaWVobFwiLFxuICAgIFwiR2llcmlzY2hcIixcbiAgICBcIkdpZXNhXCIsXG4gICAgXCJHaWVzY2hlXCIsXG4gICAgXCJHaWxkZVwiLFxuICAgIFwiR2xhdHRpbmdcIixcbiAgICBcIkdvZWJlbFwiLFxuICAgIFwiR29lZGlja2VcIixcbiAgICBcIkdvbGRiZWNrXCIsXG4gICAgXCJHb2xkZnVzc1wiLFxuICAgIFwiR29sZGthbXBcIixcbiAgICBcIkdvbGRrw7xobGVcIixcbiAgICBcIkdvbGxlclwiLFxuICAgIFwiR29sbGluZ1wiLFxuICAgIFwiR29sbG5vd1wiLFxuICAgIFwiR29sb21za2lcIixcbiAgICBcIkdvbWJlcnRcIixcbiAgICBcIkdvdHRoYXJkdFwiLFxuICAgIFwiR290dHNjaGFsa1wiLFxuICAgIFwiR290elwiLFxuICAgIFwiR295XCIsXG4gICAgXCJHcmFkemtpXCIsXG4gICAgXCJHcmFmXCIsXG4gICAgXCJHcmFtc1wiLFxuICAgIFwiR3Jhc3NlXCIsXG4gICAgXCJHcmF0emt5XCIsXG4gICAgXCJHcmF1XCIsXG4gICAgXCJHcmViXCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZ2VyXCIsXG4gICAgXCJHcmVpdGhhbm5lclwiLFxuICAgIFwiR3Jlc2NobmVyXCIsXG4gICAgXCJHcmllbVwiLFxuICAgIFwiR3JpZXNlXCIsXG4gICAgXCJHcmltbVwiLFxuICAgIFwiR3JvbWlzY2hcIixcbiAgICBcIkdyb3NzXCIsXG4gICAgXCJHcm9zc2VyXCIsXG4gICAgXCJHcm9zc2hlaW1cIixcbiAgICBcIkdyb3Nza29wZlwiLFxuICAgIFwiR3JvdGhhdXNcIixcbiAgICBcIkdyb3Roa29wcFwiLFxuICAgIFwiR3JvdGtlXCIsXG4gICAgXCJHcnViZVwiLFxuICAgIFwiR3J1YmVyXCIsXG4gICAgXCJHcnVuZG1hbm5cIixcbiAgICBcIkdydW5pbmdcIixcbiAgICBcIkdydXN6ZWNraVwiLFxuICAgIFwiR3LDtnNzXCIsXG4gICAgXCJHcsO2dHppbmdlclwiLFxuICAgIFwiR3LDvG5cIixcbiAgICBcIkdyw7xuZXJcIixcbiAgICBcIkd1bW1lbHRcIixcbiAgICBcIkd1bmtlbFwiLFxuICAgIFwiR3VudGhlclwiLFxuICAgIFwiR3V0amFoclwiLFxuICAgIFwiR3V0b3dpY3pcIixcbiAgICBcIkd1dHNjaGFua1wiLFxuICAgIFwiR8O2YmVsXCIsXG4gICAgXCJHw7Zja2VyaXR6XCIsXG4gICAgXCJHw7ZobGVyXCIsXG4gICAgXCJHw7ZybGljaFwiLFxuICAgIFwiR8O2cm1lclwiLFxuICAgIFwiR8O2dHpcIixcbiAgICBcIkfDtnR6ZWxtYW5uXCIsXG4gICAgXCJHw7xsZGVtZWlzdGVyXCIsXG4gICAgXCJHw7xudGhlclwiLFxuICAgIFwiR8O8bnpcIixcbiAgICBcIkfDvHJiaWdcIixcbiAgICBcIkhhYWNrXCIsXG4gICAgXCJIYWFmXCIsXG4gICAgXCJIYWJlbFwiLFxuICAgIFwiSGFjaGVcIixcbiAgICBcIkhhY2tidXNjaFwiLFxuICAgIFwiSGFja2VsYnVzY2hcIixcbiAgICBcIkhhZGZpZWxkXCIsXG4gICAgXCJIYWR3aWNoXCIsXG4gICAgXCJIYWZlcmthbXBcIixcbiAgICBcIkhhaG5cIixcbiAgICBcIkhhamVrXCIsXG4gICAgXCJIYWxsbWFublwiLFxuICAgIFwiSGFtYW5uXCIsXG4gICAgXCJIYW5lbmJlcmdlclwiLFxuICAgIFwiSGFubmVja2VyXCIsXG4gICAgXCJIYW5uaXNrZVwiLFxuICAgIFwiSGFuc2VuXCIsXG4gICAgXCJIYXJkeVwiLFxuICAgIFwiSGFyZ2Fzc2VyXCIsXG4gICAgXCJIYXJtc1wiLFxuICAgIFwiSGFybmFwcFwiLFxuICAgIFwiSGFydGVyXCIsXG4gICAgXCJIYXJ0aW5nXCIsXG4gICAgXCJIYXJ0bGllYlwiLFxuICAgIFwiSGFydG1hbm5cIixcbiAgICBcIkhhcnR3aWdcIixcbiAgICBcIkhhcnR6XCIsXG4gICAgXCJIYXNjaGtlXCIsXG4gICAgXCJIYXNsZXJcIixcbiAgICBcIkhhc3NlXCIsXG4gICAgXCJIYXNzZmVsZFwiLFxuICAgIFwiSGF1Z1wiLFxuICAgIFwiSGF1a2VcIixcbiAgICBcIkhhdXB0XCIsXG4gICAgXCJIYXZlcm5leVwiLFxuICAgIFwiSGViZXJzdHJlaXRcIixcbiAgICBcIkhlY2hsZXJcIixcbiAgICBcIkhlY2h0XCIsXG4gICAgXCJIZWNrXCIsXG4gICAgXCJIZWRlcm1hbm5cIixcbiAgICBcIkhlaGxcIixcbiAgICBcIkhlaWRlbG1hbm5cIixcbiAgICBcIkhlaWRsZXJcIixcbiAgICBcIkhlaW5lbWFublwiLFxuICAgIFwiSGVpbmlnXCIsXG4gICAgXCJIZWlua2VcIixcbiAgICBcIkhlaW5yaWNoXCIsXG4gICAgXCJIZWluemVcIixcbiAgICBcIkhlaXNlclwiLFxuICAgIFwiSGVpc3RcIixcbiAgICBcIkhlbGxtYW5uXCIsXG4gICAgXCJIZWxtXCIsXG4gICAgXCJIZWxta2VcIixcbiAgICBcIkhlbHBsaW5nXCIsXG4gICAgXCJIZW5nbWl0aFwiLFxuICAgIFwiSGVua2VsXCIsXG4gICAgXCJIZW5uZXNcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIZW5zZVwiLFxuICAgIFwiSGVuc2VsXCIsXG4gICAgXCJIZW50ZWxcIixcbiAgICBcIkhlbnRzY2hlbFwiLFxuICAgIFwiSGVudHNjaGtlXCIsXG4gICAgXCJIZXBwZXJsZVwiLFxuICAgIFwiSGVyYmVyZ2VyXCIsXG4gICAgXCJIZXJicmFuZFwiLFxuICAgIFwiSGVyaW5nXCIsXG4gICAgXCJIZXJtYW5uXCIsXG4gICAgXCJIZXJtZWNrZVwiLFxuICAgIFwiSGVybXNcIixcbiAgICBcIkhlcm9sZFwiLFxuICAgIFwiSGVycm1hbm5cIixcbiAgICBcIkhlcnNjaG1hbm5cIixcbiAgICBcIkhlcnRlbFwiLFxuICAgIFwiSGVyd2VnXCIsXG4gICAgXCJIZXJ3aWdcIixcbiAgICBcIkhlcnplbmJlcmdcIixcbiAgICBcIkhlc3NcIixcbiAgICBcIkhlc3NlXCIsXG4gICAgXCJIZXNzZWtcIixcbiAgICBcIkhlc3NsZXJcIixcbiAgICBcIkhldHpsZXJcIixcbiAgICBcIkhldWNrXCIsXG4gICAgXCJIZXlkZW3DvGxsZXJcIixcbiAgICBcIkhpZWJsXCIsXG4gICAgXCJIaWxkZWJyYW5kXCIsXG4gICAgXCJIaWxkZW5icmFuZFwiLFxuICAgIFwiSGlsZ2VuZG9yZlwiLFxuICAgIFwiSGlsbGFyZFwiLFxuICAgIFwiSGlsbGVyXCIsXG4gICAgXCJIaW5nc2VuXCIsXG4gICAgXCJIaW5nc3RcIixcbiAgICBcIkhpbnJpY2hzXCIsXG4gICAgXCJIaXJzY2hcIixcbiAgICBcIkhpcnNjaGJlcmdcIixcbiAgICBcIkhpcnRcIixcbiAgICBcIkhvZGVhXCIsXG4gICAgXCJIb2ZmbWFuXCIsXG4gICAgXCJIb2ZmbWFublwiLFxuICAgIFwiSG9mbWFublwiLFxuICAgIFwiSG9oZW5iZXJnZXJcIixcbiAgICBcIkhvaGxcIixcbiAgICBcIkhvaG5cIixcbiAgICBcIkhvaG5oZWlzZXJcIixcbiAgICBcIkhvbGRcIixcbiAgICBcIkhvbGR0XCIsXG4gICAgXCJIb2xpbnNraVwiLFxuICAgIFwiSG9sbFwiLFxuICAgIFwiSG9sdGZyZXRlclwiLFxuICAgIFwiSG9selwiLFxuICAgIFwiSG9semRlcHBlXCIsXG4gICAgXCJIb2x6bmVyXCIsXG4gICAgXCJIb21tZWxcIixcbiAgICBcIkhvbnpcIixcbiAgICBcIkhvb3NzXCIsXG4gICAgXCJIb3BwZVwiLFxuICAgIFwiSG9yYWtcIixcbiAgICBcIkhvcm5cIixcbiAgICBcIkhvcm5hXCIsXG4gICAgXCJIb3JudW5nXCIsXG4gICAgXCJIb3J0XCIsXG4gICAgXCJIb3dhcmRcIixcbiAgICBcIkh1YmVyXCIsXG4gICAgXCJIdWNrZXN0ZWluXCIsXG4gICAgXCJIdWRha1wiLFxuICAgIFwiSHVlYmVsXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJIdWhuXCIsXG4gICAgXCJIdWpvXCIsXG4gICAgXCJIdWtlXCIsXG4gICAgXCJIdWxzXCIsXG4gICAgXCJIdW1iZXJ0XCIsXG4gICAgXCJIdW5la2VcIixcbiAgICBcIkh1dGhcIixcbiAgICBcIkjDpGJlclwiLFxuICAgIFwiSMOkZm5lclwiLFxuICAgIFwiSMO2Y2tlXCIsXG4gICAgXCJIw7ZmdFwiLFxuICAgIFwiSMO2aG5lXCIsXG4gICAgXCJIw7ZuaWdcIixcbiAgICBcIkjDtnJkdFwiLFxuICAgIFwiSMO8YmVuYmVja2VyXCIsXG4gICAgXCJIw7xibFwiLFxuICAgIFwiSMO8Ym5lclwiLFxuICAgIFwiSMO8Z2VsXCIsXG4gICAgXCJIw7x0dGNoZXJcIixcbiAgICBcIkjDvHR0ZXJcIixcbiAgICBcIkliZVwiLFxuICAgIFwiSWhseVwiLFxuICAgIFwiSWxsaW5nXCIsXG4gICAgXCJJc2FrXCIsXG4gICAgXCJJc2VrZW5tZWllclwiLFxuICAgIFwiSXR0XCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYWd1c2NoXCIsXG4gICAgXCJKYWhuXCIsXG4gICAgXCJKYWhua2VcIixcbiAgICBcIkpha29ic1wiLFxuICAgIFwiSmFrdWJjenlrXCIsXG4gICAgXCJKYW1ib3JcIixcbiAgICBcIkphbXJvenlcIixcbiAgICBcIkphbmRlclwiLFxuICAgIFwiSmFuaWNoXCIsXG4gICAgXCJKYW5rZVwiLFxuICAgIFwiSmFuc2VuXCIsXG4gICAgXCJKYXJldHNcIixcbiAgICBcIkphcm9zXCIsXG4gICAgXCJKYXNpbnNraVwiLFxuICAgIFwiSmFzcGVyXCIsXG4gICAgXCJKZWdvcm92XCIsXG4gICAgXCJKZWxsaW5naGF1c1wiLFxuICAgIFwiSmVvcmdhXCIsXG4gICAgXCJKZXJzY2hhYmVrXCIsXG4gICAgXCJKZXNzXCIsXG4gICAgXCJKb2huXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9zc2FcIixcbiAgICBcIkp1Y2tlblwiLFxuICAgIFwiSnVuZ1wiLFxuICAgIFwiSnVuZ2JsdXRoXCIsXG4gICAgXCJKdW5ndG9uXCIsXG4gICAgXCJKdXN0XCIsXG4gICAgXCJKw7xyZ2Vuc1wiLFxuICAgIFwiS2Fjem1hcmVrXCIsXG4gICAgXCJLYWVzbWFjaGVyXCIsXG4gICAgXCJLYWhsXCIsXG4gICAgXCJLYWhsZXJ0XCIsXG4gICAgXCJLYWhsZXNcIixcbiAgICBcIkthaGxtZXllclwiLFxuICAgIFwiS2Fpc2VyXCIsXG4gICAgXCJLYWxpbm93c2tpXCIsXG4gICAgXCJLYWxsYWJpc1wiLFxuICAgIFwiS2FsbGVuc2VlXCIsXG4gICAgXCJLYW1wZlwiLFxuICAgIFwiS2FtcHNjaHVsdGVcIixcbiAgICBcIkthcHBlXCIsXG4gICAgXCJLYXBwbGVyXCIsXG4gICAgXCJLYXJob2ZmXCIsXG4gICAgXCJLYXJyYXNzXCIsXG4gICAgXCJLYXJzdFwiLFxuICAgIFwiS2Fyc3RlblwiLFxuICAgIFwiS2FydXNcIixcbiAgICBcIkthc3NcIixcbiAgICBcIkthc3RlblwiLFxuICAgIFwiS2FzdG5lclwiLFxuICAgIFwiS2F0emluc2tpXCIsXG4gICAgXCJLYXVmbWFublwiLFxuICAgIFwiS2F1bFwiLFxuICAgIFwiS2F1c2VtYW5uXCIsXG4gICAgXCJLYXdvaGxcIixcbiAgICBcIkthem1hcmVrXCIsXG4gICAgXCJLZWR6aWVyc2tpXCIsXG4gICAgXCJLZWlsXCIsXG4gICAgXCJLZWluZXJcIixcbiAgICBcIktlbGxlclwiLFxuICAgIFwiS2VsbVwiLFxuICAgIFwiS2VtcGVcIixcbiAgICBcIktlbXBlclwiLFxuICAgIFwiS2VtcHRlclwiLFxuICAgIFwiS2VybFwiLFxuICAgIFwiS2VyblwiLFxuICAgIFwiS2Vzc2VscmluZ1wiLFxuICAgIFwiS2Vzc2Vsc2NobMOkZ2VyXCIsXG4gICAgXCJLZXR0ZVwiLFxuICAgIFwiS2V0dGVuaXNcIixcbiAgICBcIktldXRlbFwiLFxuICAgIFwiS2lja1wiLFxuICAgIFwiS2llc3NsaW5nXCIsXG4gICAgXCJLaW5hZGV0ZXJcIixcbiAgICBcIktpbnplbFwiLFxuICAgIFwiS2luenlcIixcbiAgICBcIktpcmNoXCIsXG4gICAgXCJLaXJzdFwiLFxuICAgIFwiS2lzYWJha2FcIixcbiAgICBcIktsYWFzXCIsXG4gICAgXCJLbGFidWhuXCIsXG4gICAgXCJLbGFwcGVyXCIsXG4gICAgXCJLbGF1ZGVyXCIsXG4gICAgXCJLbGF1c1wiLFxuICAgIFwiS2xlZWJlcmdcIixcbiAgICBcIktsZWliZXJcIixcbiAgICBcIktsZWluXCIsXG4gICAgXCJLbGVpbmVydFwiLFxuICAgIFwiS2xlaW5pbmdlclwiLFxuICAgIFwiS2xlaW5tYW5uXCIsXG4gICAgXCJLbGVpbnN0ZXViZXJcIixcbiAgICBcIktsZWlzc1wiLFxuICAgIFwiS2xlbW1lXCIsXG4gICAgXCJLbGltY3pha1wiLFxuICAgIFwiS2xpbmdlclwiLFxuICAgIFwiS2xpbmtcIixcbiAgICBcIktsb3BzY2hcIixcbiAgICBcIktsb3NlXCIsXG4gICAgXCJLbG9zc1wiLFxuICAgIFwiS2x1Z2VcIixcbiAgICBcIktsdXdlXCIsXG4gICAgXCJLbmFiZVwiLFxuICAgIFwiS25laWZlbFwiLFxuICAgIFwiS25ldHNjaFwiLFxuICAgIFwiS25pZXNcIixcbiAgICBcIktuaXBwZWxcIixcbiAgICBcIktub2JlbFwiLFxuICAgIFwiS25vYmxpY2hcIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJLbm9yclwiLFxuICAgIFwiS25vcnNjaGVpZHRcIixcbiAgICBcIktudXRcIixcbiAgICBcIktvYnNcIixcbiAgICBcIktvY2hcIixcbiAgICBcIktvY2hhblwiLFxuICAgIFwiS29ja1wiLFxuICAgIFwiS29jenVsbGFcIixcbiAgICBcIktvZGVyaXNjaFwiLFxuICAgIFwiS29laGxcIixcbiAgICBcIktvZWhsZXJcIixcbiAgICBcIktvZW5pZ1wiLFxuICAgIFwiS29lc3RlclwiLFxuICAgIFwiS29mZmVyc2NobGFnZXJcIixcbiAgICBcIktvaGFcIixcbiAgICBcIktvaGxlXCIsXG4gICAgXCJLb2hsbWFublwiLFxuICAgIFwiS29obmxlXCIsXG4gICAgXCJLb2hydFwiLFxuICAgIFwiS29qXCIsXG4gICAgXCJLb2xiXCIsXG4gICAgXCJLb2xlaXNraVwiLFxuICAgIFwiS29sb2thc1wiLFxuICAgIFwiS29tb2xsXCIsXG4gICAgXCJLb25pZWN6bnlcIixcbiAgICBcIktvbmlnXCIsXG4gICAgXCJLb25vd1wiLFxuICAgIFwiS29ueWFcIixcbiAgICBcIktvb2JcIixcbiAgICBcIktvcGZcIixcbiAgICBcIktvc2Vua293XCIsXG4gICAgXCJLb3N0ZXJcIixcbiAgICBcIktvc3pld3NraVwiLFxuICAgIFwiS291YmFhXCIsXG4gICAgXCJLb3ZhY3NcIixcbiAgICBcIktvd2FsaWNrXCIsXG4gICAgXCJLb3dhbGluc2tpXCIsXG4gICAgXCJLb3pha2lld2ljelwiLFxuICAgIFwiS3JhYmJlXCIsXG4gICAgXCJLcmFmdFwiLFxuICAgIFwiS3JhbFwiLFxuICAgIFwiS3JhbWVyXCIsXG4gICAgXCJLcmF1ZWxcIixcbiAgICBcIktyYXVzXCIsXG4gICAgXCJLcmF1c2VcIixcbiAgICBcIktyYXVzcGVcIixcbiAgICBcIktyZWJcIixcbiAgICBcIktyZWJzXCIsXG4gICAgXCJLcmVpc3NpZ1wiLFxuICAgIFwiS3Jlc3NlXCIsXG4gICAgXCJLcmV1dHpcIixcbiAgICBcIktyaWVnZXJcIixcbiAgICBcIktyaXBwbmVyXCIsXG4gICAgXCJLcm9kaW5nZXJcIixcbiAgICBcIktyb2huXCIsXG4gICAgXCJLcm9sXCIsXG4gICAgXCJLcm9uXCIsXG4gICAgXCJLcnVlZ2VyXCIsXG4gICAgXCJLcnVnXCIsXG4gICAgXCJLcnVnZXJcIixcbiAgICBcIktydWxsXCIsXG4gICAgXCJLcnVzY2hpbnNraVwiLFxuICAgIFwiS3LDpG1lclwiLFxuICAgIFwiS3LDtmNrZXJ0XCIsXG4gICAgXCJLcsO2Z2VyXCIsXG4gICAgXCJLcsO8Z2VyXCIsXG4gICAgXCJLdWJlcmFcIixcbiAgICBcIkt1ZmFobFwiLFxuICAgIFwiS3VobGVlXCIsXG4gICAgXCJLdWhuZW5cIixcbiAgICBcIkt1bGltYW5uXCIsXG4gICAgXCJLdWxtYVwiLFxuICAgIFwiS3VtYmVybnVzc1wiLFxuICAgIFwiS3VtbWxlXCIsXG4gICAgXCJLdW56XCIsXG4gICAgXCJLdXBmZXJcIixcbiAgICBcIkt1cHByaW9uXCIsXG4gICAgXCJLdXByaW9uXCIsXG4gICAgXCJLdXJuaWNraVwiLFxuICAgIFwiS3VycmF0XCIsXG4gICAgXCJLdXJzY2hpbGdlblwiLFxuICAgIFwiS3VzY2hld2l0elwiLFxuICAgIFwiS3VzY2htYW5uXCIsXG4gICAgXCJLdXNrZVwiLFxuICAgIFwiS3VzdGVybWFublwiLFxuICAgIFwiS3V0c2NoZXJhdWVyXCIsXG4gICAgXCJLdXR6bmVyXCIsXG4gICAgXCJLd2Fkd29cIixcbiAgICBcIkvDpGhsZXJcIixcbiAgICBcIkvDpHRoZXJcIixcbiAgICBcIkvDtmhsZXJcIixcbiAgICBcIkvDtmhyYnLDvGNrXCIsXG4gICAgXCJLw7ZocmVcIixcbiAgICBcIkvDtmxvdHplaVwiLFxuICAgIFwiS8O2bmlnXCIsXG4gICAgXCJLw7ZwZXJuaWNrXCIsXG4gICAgXCJLw7ZzZW9nbHVcIixcbiAgICBcIkvDumhuXCIsXG4gICAgXCJLw7pobmVydFwiLFxuICAgIFwiS8O8aG5cIixcbiAgICBcIkvDvGhuZWxcIixcbiAgICBcIkvDvGhuZW11bmRcIixcbiAgICBcIkvDvGhuZXJ0XCIsXG4gICAgXCJLw7xobmtlXCIsXG4gICAgXCJLw7xzdGVyc1wiLFxuICAgIFwiS8O8dGVyXCIsXG4gICAgXCJMYWFja1wiLFxuICAgIFwiTGFja1wiLFxuICAgIFwiTGFkZXdpZ1wiLFxuICAgIFwiTGFrb215XCIsXG4gICAgXCJMYW1tZXJ0XCIsXG4gICAgXCJMYW1vc1wiLFxuICAgIFwiTGFuZG1hbm5cIixcbiAgICBcIkxhbmdcIixcbiAgICBcIkxhbmdlXCIsXG4gICAgXCJMYW5nZmVsZFwiLFxuICAgIFwiTGFuZ2hpcnRcIixcbiAgICBcIkxhbmlnXCIsXG4gICAgXCJMYXVja25lclwiLFxuICAgIFwiTGF1aW5nZXJcIixcbiAgICBcIkxhdXLDqW5cIixcbiAgICBcIkxhdXNlY2tlclwiLFxuICAgIFwiTGF1eFwiLFxuICAgIFwiTGF3c1wiLFxuICAgIFwiTGF4XCIsXG4gICAgXCJMZWJlcmVyXCIsXG4gICAgXCJMZWhtYW5uXCIsXG4gICAgXCJMZWhuZXJcIixcbiAgICBcIkxlaWJvbGRcIixcbiAgICBcIkxlaWRlXCIsXG4gICAgXCJMZWltYmFjaFwiLFxuICAgIFwiTGVpcG9sZFwiLFxuICAgIFwiTGVpc3RcIixcbiAgICBcIkxlaXRlclwiLFxuICAgIFwiTGVpdGVyaXR6XCIsXG4gICAgXCJMZWl0aGVpbVwiLFxuICAgIFwiTGVpd2VzbWVpZXJcIixcbiAgICBcIkxlbmZlcnNcIixcbiAgICBcIkxlbmtcIixcbiAgICBcIkxlbnpcIixcbiAgICBcIkxlbnplblwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJMZXB0aGluXCIsXG4gICAgXCJMZXNjaFwiLFxuICAgIFwiTGVzY2huaWtcIixcbiAgICBcIkxldHplbHRlclwiLFxuICAgIFwiTGV3aW5cIixcbiAgICBcIkxld2tlXCIsXG4gICAgXCJMZXlja2VzXCIsXG4gICAgXCJMZ1wiLFxuICAgIFwiTGljaHRlbmZlbGRcIixcbiAgICBcIkxpY2h0ZW5oYWdlblwiLFxuICAgIFwiTGljaHRsXCIsXG4gICAgXCJMaWViYWNoXCIsXG4gICAgXCJMaWViZVwiLFxuICAgIFwiTGllYmljaFwiLFxuICAgIFwiTGllYm9sZFwiLFxuICAgIFwiTGllZGVyXCIsXG4gICAgXCJMaWVuc2jDtmZ0XCIsXG4gICAgXCJMaW5kZW5cIixcbiAgICBcIkxpbmRlbmJlcmdcIixcbiAgICBcIkxpbmRlbm1heWVyXCIsXG4gICAgXCJMaW5kbmVyXCIsXG4gICAgXCJMaW5rZVwiLFxuICAgIFwiTGlubmVuYmF1bVwiLFxuICAgIFwiTGlwcGVcIixcbiAgICBcIkxpcHNrZVwiLFxuICAgIFwiTGlwdXNcIixcbiAgICBcIkxpc2Noa2FcIixcbiAgICBcIkxvYmluZ2VyXCIsXG4gICAgXCJMb2dzY2hcIixcbiAgICBcIkxvaG1hbm5cIixcbiAgICBcIkxvaHJlXCIsXG4gICAgXCJMb2hzZVwiLFxuICAgIFwiTG9rYXJcIixcbiAgICBcIkxvb2dlblwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3NjaFwiLFxuICAgIFwiTG9za2FcIixcbiAgICBcIkxvdHRcIixcbiAgICBcIkxveVwiLFxuICAgIFwiTHViaW5hXCIsXG4gICAgXCJMdWRvbGZcIixcbiAgICBcIkx1ZmZ0XCIsXG4gICAgXCJMdWtvc2NoZWtcIixcbiAgICBcIkx1dGplXCIsXG4gICAgXCJMdXR6XCIsXG4gICAgXCJMw7ZzZXJcIixcbiAgICBcIkzDtndhXCIsXG4gICAgXCJMw7xia2VcIixcbiAgICBcIk1hYWtcIixcbiAgICBcIk1hY3pleVwiLFxuICAgIFwiTWFkZXR6a3lcIixcbiAgICBcIk1hZHVidWtvXCIsXG4gICAgXCJNYWlcIixcbiAgICBcIk1haWVyXCIsXG4gICAgXCJNYWlzY2hcIixcbiAgICBcIk1hbGVrXCIsXG4gICAgXCJNYWxrdXNcIixcbiAgICBcIk1hbGxtYW5uXCIsXG4gICAgXCJNYWx1Y2hhXCIsXG4gICAgXCJNYW5uc1wiLFxuICAgIFwiTWFuelwiLFxuICAgIFwiTWFyYWhyZW5zXCIsXG4gICAgXCJNYXJjaGV3c2tpXCIsXG4gICAgXCJNYXJnaXNcIixcbiAgICBcIk1hcmtvd3NraVwiLFxuICAgIFwiTWFybFwiLFxuICAgIFwiTWFybmVyXCIsXG4gICAgXCJNYXJxdWFydFwiLFxuICAgIFwiTWFyc2NoZWtcIixcbiAgICBcIk1hcnRlbFwiLFxuICAgIFwiTWFydGVuXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIk1hcnhcIixcbiAgICBcIk1hcnhlblwiLFxuICAgIFwiTWF0aGVzXCIsXG4gICAgXCJNYXRoaWVzXCIsXG4gICAgXCJNYXRoaXN6aWtcIixcbiAgICBcIk1hdHNjaGtlXCIsXG4gICAgXCJNYXR0ZXJuXCIsXG4gICAgXCJNYXR0aGVzXCIsXG4gICAgXCJNYXR1bGFcIixcbiAgICBcIk1hdVwiLFxuICAgIFwiTWF1cmVyXCIsXG4gICAgXCJNYXVyb2ZmXCIsXG4gICAgXCJNYXlcIixcbiAgICBcIk1heWJhY2hcIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNZWJvbGRcIixcbiAgICBcIk1laGxcIixcbiAgICBcIk1laGxob3JuXCIsXG4gICAgXCJNZWhsb3JuXCIsXG4gICAgXCJNZWllclwiLFxuICAgIFwiTWVpc2NoXCIsXG4gICAgXCJNZWlzc25lclwiLFxuICAgIFwiTWVsb25pXCIsXG4gICAgXCJNZWx6ZXJcIixcbiAgICBcIk1lbmdhXCIsXG4gICAgXCJNZW5uZVwiLFxuICAgIFwiTWVuc2FoXCIsXG4gICAgXCJNZW5zaW5nXCIsXG4gICAgXCJNZXJrZWxcIixcbiAgICBcIk1lcnNlYnVyZ1wiLFxuICAgIFwiTWVydGVuc1wiLFxuICAgIFwiTWVzbG9oXCIsXG4gICAgXCJNZXR6Z2VyXCIsXG4gICAgXCJNZXR6bmVyXCIsXG4gICAgXCJNZXdlc1wiLFxuICAgIFwiTWV5ZXJcIixcbiAgICBcIk1pY2hhbGxla1wiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWVsa2VcIixcbiAgICBcIk1pa2l0ZW5rb1wiLFxuICAgIFwiTWlsZGVcIixcbiAgICBcIk1pbmFoXCIsXG4gICAgXCJNaW50emxhZmZcIixcbiAgICBcIk1vY2tlbmhhdXB0XCIsXG4gICAgXCJNb2VkZVwiLFxuICAgIFwiTW9lZGxcIixcbiAgICBcIk1vZWxsZXJcIixcbiAgICBcIk1vZ3VlbmFyYVwiLFxuICAgIFwiTW9oclwiLFxuICAgIFwiTW9ocmhhcmRcIixcbiAgICBcIk1vbGl0b3JcIixcbiAgICBcIk1vbGxcIixcbiAgICBcIk1vbGxlclwiLFxuICAgIFwiTW9semFuXCIsXG4gICAgXCJNb250YWdcIixcbiAgICBcIk1vb3JtYW5uXCIsXG4gICAgXCJNb3JkaG9yc3RcIixcbiAgICBcIk1vcmdlbnN0ZXJuXCIsXG4gICAgXCJNb3JoZWxmZXJcIixcbiAgICBcIk1vcml0elwiLFxuICAgIFwiTW9zZXJcIixcbiAgICBcIk1vdGNoZWJvblwiLFxuICAgIFwiTW90emVuYmLDpGNrZXJcIixcbiAgICBcIk1ydWdhbGxhXCIsXG4gICAgXCJNdWNrZW50aGFsZXJcIixcbiAgICBcIk11ZXNcIixcbiAgICBcIk11bGxlclwiLFxuICAgIFwiTXVscmFpblwiLFxuICAgIFwiTcOkY2h0aWdcIixcbiAgICBcIk3DpGRlclwiLFxuICAgIFwiTcO2Y2tzXCIsXG4gICAgXCJNw7ZnZW5idXJnXCIsXG4gICAgXCJNw7Zoc25lclwiLFxuICAgIFwiTcO2bGRuZXJcIixcbiAgICBcIk3DtmxsZW5iZWNrXCIsXG4gICAgXCJNw7ZsbGVyXCIsXG4gICAgXCJNw7ZsbGluZ2VyXCIsXG4gICAgXCJNw7Zyc2NoXCIsXG4gICAgXCJNw7xobGVpc1wiLFxuICAgIFwiTcO8bGxlclwiLFxuICAgIFwiTcO8bmNoXCIsXG4gICAgXCJOYWJlaW5cIixcbiAgICBcIk5hYm93XCIsXG4gICAgXCJOYWdlbFwiLFxuICAgIFwiTmFubmVuXCIsXG4gICAgXCJOYXN0dm9nZWxcIixcbiAgICBcIk5hdVwiLFxuICAgIFwiTmF1YmVydFwiLFxuICAgIFwiTmF1bWFublwiLFxuICAgIFwiTmVcIixcbiAgICBcIk5laW1rZVwiLFxuICAgIFwiTmVyaXVzXCIsXG4gICAgXCJOZXViYXVlclwiLFxuICAgIFwiTmV1YmVydFwiLFxuICAgIFwiTmV1ZW5kb3JmXCIsXG4gICAgXCJOZXVtYWlyXCIsXG4gICAgXCJOZXVtYW5uXCIsXG4gICAgXCJOZXVwZXJ0XCIsXG4gICAgXCJOZXVyb2hyXCIsXG4gICAgXCJOZXVzY2h3YW5kZXJcIixcbiAgICBcIk5ld3RvblwiLFxuICAgIFwiTmV5XCIsXG4gICAgXCJOaWNvbGF5XCIsXG4gICAgXCJOaWVkZXJtZWllclwiLFxuICAgIFwiTmlla2xhdXNvblwiLFxuICAgIFwiTmlrbGF1c1wiLFxuICAgIFwiTml0enNjaGVcIixcbiAgICBcIk5vYWNrXCIsXG4gICAgXCJOb2RsZXJcIixcbiAgICBcIk5vbHRlXCIsXG4gICAgXCJOb3JtYW5uXCIsXG4gICAgXCJOb3JyaXNcIixcbiAgICBcIk5vcnRob2ZmXCIsXG4gICAgXCJOb3dha1wiLFxuICAgIFwiTnVzc2JlY2tcIixcbiAgICBcIk53YWNodWt3dVwiLFxuICAgIFwiTnl0cmFcIixcbiAgICBcIk7DtmhcIixcbiAgICBcIk9iZXJlbVwiLFxuICAgIFwiT2Jlcmdmw7ZsbFwiLFxuICAgIFwiT2Jlcm1haWVyXCIsXG4gICAgXCJPY2hzXCIsXG4gICAgXCJPZXNlclwiLFxuICAgIFwiT2xicmljaFwiLFxuICAgIFwiT25uZW5cIixcbiAgICBcIk9waGV5XCIsXG4gICAgXCJPcHBvbmdcIixcbiAgICBcIk9ydGhcIixcbiAgICBcIk9ydGhtYW5uXCIsXG4gICAgXCJPc2Noa2VuYXRcIixcbiAgICBcIk9zZWlcIixcbiAgICBcIk9zZW5iZXJnXCIsXG4gICAgXCJPc3RlbmRhcnBcIixcbiAgICBcIk9zdHdhbGRcIixcbiAgICBcIk90dGVcIixcbiAgICBcIk90dG9cIixcbiAgICBcIlBhZXNsZXJcIixcbiAgICBcIlBham9ua1wiLFxuICAgIFwiUGFsbGVudGluXCIsXG4gICAgXCJQYW56aWdcIixcbiAgICBcIlBhc2Noa2VcIixcbiAgICBcIlBhdHp3YWhsXCIsXG4gICAgXCJQYXVrbmVyXCIsXG4gICAgXCJQZXNlbG1hblwiLFxuICAgIFwiUGV0ZXJcIixcbiAgICBcIlBldGVyc1wiLFxuICAgIFwiUGV0em9sZFwiLFxuICAgIFwiUGZlaWZmZXJcIixcbiAgICBcIlBmZW5uaWdcIixcbiAgICBcIlBmZXJzaWNoXCIsXG4gICAgXCJQZmluZ3N0ZW5cIixcbiAgICBcIlBmbGllZ2VyXCIsXG4gICAgXCJQZmzDvGduZXJcIixcbiAgICBcIlBoaWxpcHBcIixcbiAgICBcIlBpY2hsbWFpZXJcIixcbiAgICBcIlBpZXNrZXJcIixcbiAgICBcIlBpZXRzY2hcIixcbiAgICBcIlBpbmdwYW5rXCIsXG4gICAgXCJQaW5ub2NrXCIsXG4gICAgXCJQaXBwaWdcIixcbiAgICBcIlBpdHNjaHVnaW5cIixcbiAgICBcIlBsYW5rXCIsXG4gICAgXCJQbGFzc1wiLFxuICAgIFwiUGxhdHplclwiLFxuICAgIFwiUGxhdWtcIixcbiAgICBcIlBsYXV0elwiLFxuICAgIFwiUGxldHNjaFwiLFxuICAgIFwiUGxvdHppdHprYVwiLFxuICAgIFwiUG9laG5cIixcbiAgICBcIlBvZXNjaGxcIixcbiAgICBcIlBvZ29yemVsc2tpXCIsXG4gICAgXCJQb2hsXCIsXG4gICAgXCJQb2hsYW5kXCIsXG4gICAgXCJQb2hsZVwiLFxuICAgIFwiUG9saWZrYVwiLFxuICAgIFwiUG9saXp6aVwiLFxuICAgIFwiUG9sbG3DpGNoZXJcIixcbiAgICBcIlBvbXBcIixcbiAgICBcIlBvbml0enNjaFwiLFxuICAgIFwiUG9yc2NoZVwiLFxuICAgIFwiUG9ydGhcIixcbiAgICBcIlBvc2NobWFublwiLFxuICAgIFwiUG9zZXJcIixcbiAgICBcIlBvdHRlbFwiLFxuICAgIFwiUHJhaFwiLFxuICAgIFwiUHJhbmdlXCIsXG4gICAgXCJQcmVkaWdlclwiLFxuICAgIFwiUHJlc3NsZXJcIixcbiAgICBcIlByZXVrXCIsXG4gICAgXCJQcmV1c3NcIixcbiAgICBcIlByZXlcIixcbiAgICBcIlByaWVtZXJcIixcbiAgICBcIlByb3NrZVwiLFxuICAgIFwiUHVzY2hcIixcbiAgICBcIlDDtmNoZVwiLFxuICAgIFwiUMO2Z2VcIixcbiAgICBcIlJhYWJlXCIsXG4gICAgXCJSYWJlbnN0ZWluXCIsXG4gICAgXCJSYWNoXCIsXG4gICAgXCJSYWR0a2VcIixcbiAgICBcIlJhaG5cIixcbiAgICBcIlJhbmZ0bFwiLFxuICAgIFwiUmFuZ2VuXCIsXG4gICAgXCJSYW56XCIsXG4gICAgXCJSYXBwXCIsXG4gICAgXCJSYXRoXCIsXG4gICAgXCJSYXVcIixcbiAgICBcIlJhdWJ1Y2hcIixcbiAgICBcIlJhdWt1Y1wiLFxuICAgIFwiUmF1dGVua3JhbnpcIixcbiAgICBcIlJlaHdhZ2VuXCIsXG4gICAgXCJSZWliZXJcIixcbiAgICBcIlJlaWNoYXJkdFwiLFxuICAgIFwiUmVpY2hlbFwiLFxuICAgIFwiUmVpY2hsaW5nXCIsXG4gICAgXCJSZWlmXCIsXG4gICAgXCJSZWlmZW5yYXRoXCIsXG4gICAgXCJSZWltYW5uXCIsXG4gICAgXCJSZWluYmVyZ1wiLFxuICAgIFwiUmVpbmVsdFwiLFxuICAgIFwiUmVpbmhhcmR0XCIsXG4gICAgXCJSZWlua2VcIixcbiAgICBcIlJlaXR6ZVwiLFxuICAgIFwiUmVua1wiLFxuICAgIFwiUmVudHpcIixcbiAgICBcIlJlbnpcIixcbiAgICBcIlJlcHBpblwiLFxuICAgIFwiUmVzdGxlXCIsXG4gICAgXCJSZXN0b3JmZlwiLFxuICAgIFwiUmV0emtlXCIsXG4gICAgXCJSZXViZXJcIixcbiAgICBcIlJldW1hbm5cIixcbiAgICBcIlJldXNcIixcbiAgICBcIlJldXNzXCIsXG4gICAgXCJSZXVzc2VcIixcbiAgICBcIlJoZWRlclwiLFxuICAgIFwiUmhvZGVuXCIsXG4gICAgXCJSaWNoYXJkc1wiLFxuICAgIFwiUmljaHRlclwiLFxuICAgIFwiUmllZGVsXCIsXG4gICAgXCJSaWVkaWdlclwiLFxuICAgIFwiUmllZ2VyXCIsXG4gICAgXCJSaWVrbWFublwiLFxuICAgIFwiUmllcGxcIixcbiAgICBcIlJpZXJtZWllclwiLFxuICAgIFwiUmllc3RlclwiLFxuICAgIFwiUmlldGhtw7xsbGVyXCIsXG4gICAgXCJSaWV0bcO8bGxlclwiLFxuICAgIFwiUmlldHNjaGVyXCIsXG4gICAgXCJSaW5nZWxcIixcbiAgICBcIlJpbmdlclwiLFxuICAgIFwiUmlua1wiLFxuICAgIFwiUmlwa2VuXCIsXG4gICAgXCJSaXRvc2VrXCIsXG4gICAgXCJSaXRzY2hlbFwiLFxuICAgIFwiUml0dGVyXCIsXG4gICAgXCJSaXR0d2VnXCIsXG4gICAgXCJSaXR6XCIsXG4gICAgXCJSb2JhXCIsXG4gICAgXCJSb2NrbWVpZXJcIixcbiAgICBcIlJvZGVoYXVcIixcbiAgICBcIlJvZG93c2tpXCIsXG4gICAgXCJSb2Vja2VyXCIsXG4gICAgXCJSb2dnYXR6XCIsXG4gICAgXCJSb2hsw6RuZGVyXCIsXG4gICAgXCJSb2hyZXJcIixcbiAgICBcIlJva29zc2FcIixcbiAgICBcIlJvbGVkZXJcIixcbiAgICBcIlJvbG9mZlwiLFxuICAgIFwiUm9vc1wiLFxuICAgIFwiUm9zYmFjaFwiLFxuICAgIFwiUm9zY2hpbnNreVwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiUm9zZW5hdWVyXCIsXG4gICAgXCJSb3NlbmJhdWVyXCIsXG4gICAgXCJSb3NlbnRoYWxcIixcbiAgICBcIlJvc2tzY2hcIixcbiAgICBcIlJvc3NiZXJnXCIsXG4gICAgXCJSb3NzbGVyXCIsXG4gICAgXCJSb3RoXCIsXG4gICAgXCJSb3RoZXJcIixcbiAgICBcIlJ1Y2hcIixcbiAgICBcIlJ1Y2tkZXNjaGVsXCIsXG4gICAgXCJSdW1wZlwiLFxuICAgIFwiUnVwcHJlY2h0XCIsXG4gICAgXCJSdXRoXCIsXG4gICAgXCJSeWppa2hcIixcbiAgICBcIlJ5emloXCIsXG4gICAgXCJSw6RkbGVyXCIsXG4gICAgXCJSw6RudHNjaFwiLFxuICAgIFwiUsO2ZGlnZXJcIixcbiAgICBcIlLDtnNlXCIsXG4gICAgXCJSw7Z0dGdlclwiLFxuICAgIFwiUsO8Y2tlclwiLFxuICAgIFwiUsO8ZGlnZXJcIixcbiAgICBcIlLDvHRlclwiLFxuICAgIFwiU2FjaHNlXCIsXG4gICAgXCJTYWNrXCIsXG4gICAgXCJTYWZsYW5pc1wiLFxuICAgIFwiU2FnYWZlXCIsXG4gICAgXCJTYWdvbmFzXCIsXG4gICAgXCJTYWhuZXJcIixcbiAgICBcIlNhaWxlXCIsXG4gICAgXCJTYWlsZXJcIixcbiAgICBcIlNhbG93XCIsXG4gICAgXCJTYWx6ZXJcIixcbiAgICBcIlNhbHptYW5uXCIsXG4gICAgXCJTYW1tZXJ0XCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIlNhcnZhcmlcIixcbiAgICBcIlNhdHRlbG1haWVyXCIsXG4gICAgXCJTYXVlclwiLFxuICAgIFwiU2F1ZXJsYW5kXCIsXG4gICAgXCJTYXVtd2ViZXJcIixcbiAgICBcIlNhdm9pYVwiLFxuICAgIFwiU2NjXCIsXG4gICAgXCJTY2hhY2h0XCIsXG4gICAgXCJTY2hhZWZlclwiLFxuICAgIFwiU2NoYWZmYXJ6aWtcIixcbiAgICBcIlNjaGFoYmFzaWFuXCIsXG4gICAgXCJTY2hhcmZcIixcbiAgICBcIlNjaGVkbGVyXCIsXG4gICAgXCJTY2hlZXJcIixcbiAgICBcIlNjaGVsa1wiLFxuICAgIFwiU2NoZWxsZW5iZWNrXCIsXG4gICAgXCJTY2hlbWJlcmFcIixcbiAgICBcIlNjaGVua1wiLFxuICAgIFwiU2NoZXJiYXJ0aFwiLFxuICAgIFwiU2NoZXJlclwiLFxuICAgIFwiU2NoZXJzaW5nXCIsXG4gICAgXCJTY2hlcnpcIixcbiAgICBcIlNjaGV1cmVyXCIsXG4gICAgXCJTY2hldXJpbmdcIixcbiAgICBcIlNjaGV5dHRcIixcbiAgICBcIlNjaGllbGtlXCIsXG4gICAgXCJTY2hpZXNrb3dcIixcbiAgICBcIlNjaGlsZGhhdWVyXCIsXG4gICAgXCJTY2hpbGxpbmdcIixcbiAgICBcIlNjaGltYVwiLFxuICAgIFwiU2NoaW1tZXJcIixcbiAgICBcIlNjaGluZHppZWxvcnpcIixcbiAgICBcIlNjaGlybWVyXCIsXG4gICAgXCJTY2hpcnJtZWlzdGVyXCIsXG4gICAgXCJTY2hsYWNodGVyXCIsXG4gICAgXCJTY2hsYW5nZW5cIixcbiAgICBcIlNjaGxhd2l0elwiLFxuICAgIFwiU2NobGVjaHR3ZWdcIixcbiAgICBcIlNjaGxleVwiLFxuICAgIFwiU2NobGljaHRcIixcbiAgICBcIlNjaGxpdHplclwiLFxuICAgIFwiU2NobWFsemxlXCIsXG4gICAgXCJTY2htaWRcIixcbiAgICBcIlNjaG1pZHRcIixcbiAgICBcIlNjaG1pZHRjaGVuXCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJTY2htaXR6XCIsXG4gICAgXCJTY2htdWhsXCIsXG4gICAgXCJTY2huZWlkZXJcIixcbiAgICBcIlNjaG5lbHRpbmdcIixcbiAgICBcIlNjaG5pZWRlclwiLFxuICAgIFwiU2NobmllZGVybWVpZXJcIixcbiAgICBcIlNjaG7DvHJlclwiLFxuICAgIFwiU2Nob2JlcmdcIixcbiAgICBcIlNjaG9selwiLFxuICAgIFwiU2Nob25iZXJnXCIsXG4gICAgXCJTY2hvbmRlbG1haWVyXCIsXG4gICAgXCJTY2hvcnJcIixcbiAgICBcIlNjaG90dFwiLFxuICAgIFwiU2Nob3R0bWFublwiLFxuICAgIFwiU2Nob3VyZW5cIixcbiAgICBcIlNjaHJhZGVyXCIsXG4gICAgXCJTY2hyYW1tXCIsXG4gICAgXCJTY2hyZWNrXCIsXG4gICAgXCJTY2hyZWliZXJcIixcbiAgICBcIlNjaHJlaW5lclwiLFxuICAgIFwiU2NocmVpdGVyXCIsXG4gICAgXCJTY2hyb2RlclwiLFxuICAgIFwiU2NocsO2ZGVyXCIsXG4gICAgXCJTY2h1ZXJtYW5uXCIsXG4gICAgXCJTY2h1ZmZcIixcbiAgICBcIlNjaHVoYWpcIixcbiAgICBcIlNjaHVsZHRcIixcbiAgICBcIlNjaHVsdFwiLFxuICAgIFwiU2NodWx0ZVwiLFxuICAgIFwiU2NodWx0elwiLFxuICAgIFwiU2NodWx0emVcIixcbiAgICBcIlNjaHVselwiLFxuICAgIFwiU2NodWx6ZVwiLFxuICAgIFwiU2NodW1hY2hlclwiLFxuICAgIFwiU2NodW1hbm5cIixcbiAgICBcIlNjaHVwcFwiLFxuICAgIFwiU2NodXJpXCIsXG4gICAgXCJTY2h1c3RlclwiLFxuICAgIFwiU2Nod2FiXCIsXG4gICAgXCJTY2h3YWxtXCIsXG4gICAgXCJTY2h3YW5iZWNrXCIsXG4gICAgXCJTY2h3YW5ka2VcIixcbiAgICBcIlNjaHdhbml0elwiLFxuICAgIFwiU2Nod2FydGhvZmZcIixcbiAgICBcIlNjaHdhcnR6XCIsXG4gICAgXCJTY2h3YXJ6XCIsXG4gICAgXCJTY2h3YXJ6ZXJcIixcbiAgICBcIlNjaHdhcnprb3BmXCIsXG4gICAgXCJTY2h3YXJ6bWVpZXJcIixcbiAgICBcIlNjaHdhdGxvXCIsXG4gICAgXCJTY2h3ZWlzZnVydGhcIixcbiAgICBcIlNjaHdlbm5lblwiLFxuICAgIFwiU2Nod2VyZHRuZXJcIixcbiAgICBcIlNjaHdpZGRlXCIsXG4gICAgXCJTY2h3aXJrc2NobGllc1wiLFxuICAgIFwiU2Nod3VjaG93XCIsXG4gICAgXCJTY2jDpGZlclwiLFxuICAgIFwiU2Now6RmZmVsXCIsXG4gICAgXCJTY2jDpGZmZXJcIixcbiAgICBcIlNjaMOkbmluZ1wiLFxuICAgIFwiU2Now7Zja2VsXCIsXG4gICAgXCJTY2jDtm5iYWxsXCIsXG4gICAgXCJTY2jDtm5iZWNrXCIsXG4gICAgXCJTY2jDtm5iZXJnXCIsXG4gICAgXCJTY2jDtm5lYmVja1wiLFxuICAgIFwiU2Now7ZuZW5iZXJnZXJcIixcbiAgICBcIlNjaMO2bmZlbGRcIixcbiAgICBcIlNjaMO2bmhlcnJcIixcbiAgICBcIlNjaMO2bmxlYmVcIixcbiAgICBcIlNjaMO2dHpcIixcbiAgICBcIlNjaMO8bGVyXCIsXG4gICAgXCJTY2jDvHBwZWxcIixcbiAgICBcIlNjaMO8dHpcIixcbiAgICBcIlNjaMO8dHplXCIsXG4gICAgXCJTZWVnZXJcIixcbiAgICBcIlNlZWxpZ1wiLFxuICAgIFwiU2VobHNcIixcbiAgICBcIlNlaWJvbGRcIixcbiAgICBcIlNlaWRlbFwiLFxuICAgIFwiU2VpZGVyc1wiLFxuICAgIFwiU2VpZ2VsXCIsXG4gICAgXCJTZWlsZXJcIixcbiAgICBcIlNlaXR6XCIsXG4gICAgXCJTZW1pc2NoXCIsXG4gICAgXCJTZW5rZWxcIixcbiAgICBcIlNld2FsZFwiLFxuICAgIFwiU2llYmVsXCIsXG4gICAgXCJTaWViZXJ0XCIsXG4gICAgXCJTaWVnbGluZ1wiLFxuICAgIFwiU2llbGVtYW5uXCIsXG4gICAgXCJTaWVtb25cIixcbiAgICBcIlNpZW5lclwiLFxuICAgIFwiU2lldmVyc1wiLFxuICAgIFwiU2lld2VydFwiLFxuICAgIFwiU2lobGVyXCIsXG4gICAgXCJTaWxsYWhcIixcbiAgICBcIlNpbW9uXCIsXG4gICAgXCJTaW5uaHViZXJcIixcbiAgICBcIlNpc2Noa2FcIixcbiAgICBcIlNraWJpY2tpXCIsXG4gICAgXCJTbGFkZWtcIixcbiAgICBcIlNsb3R0YVwiLFxuICAgIFwiU21pZWphXCIsXG4gICAgXCJTb2JvbGxcIixcbiAgICBcIlNva29sb3dza2lcIixcbiAgICBcIlNvbGxlclwiLFxuICAgIFwiU29sbG5lclwiLFxuICAgIFwiU29tbWVyXCIsXG4gICAgXCJTb21zc2ljaFwiLFxuICAgIFwiU29ublwiLFxuICAgIFwiU29ubmFiZW5kXCIsXG4gICAgXCJTcGFoblwiLFxuICAgIFwiU3BhbmtcIixcbiAgICBcIlNwZWxtZXllclwiLFxuICAgIFwiU3BpZWdlbGJ1cmdcIixcbiAgICBcIlNwaWVsdm9nZWxcIixcbiAgICBcIlNwaW5uZXJcIixcbiAgICBcIlNwaXR6bcO8bGxlclwiLFxuICAgIFwiU3BsaW50ZXJcIixcbiAgICBcIlNwb3JyZXJcIixcbiAgICBcIlNwcmVuZ2VyXCIsXG4gICAgXCJTcMO2dHRlbFwiLFxuICAgIFwiU3RhaGxcIixcbiAgICBcIlN0YW5nXCIsXG4gICAgXCJTdGFuZ2VyXCIsXG4gICAgXCJTdGF1c3NcIixcbiAgICBcIlN0ZWRpbmdcIixcbiAgICBcIlN0ZWZmZW5cIixcbiAgICBcIlN0ZWZmbnlcIixcbiAgICBcIlN0ZWlkbFwiLFxuICAgIFwiU3RlaWdhdWZcIixcbiAgICBcIlN0ZWluXCIsXG4gICAgXCJTdGVpbmVja2VcIixcbiAgICBcIlN0ZWluZXJ0XCIsXG4gICAgXCJTdGVpbmthbXBcIixcbiAgICBcIlN0ZWlubWV0elwiLFxuICAgIFwiU3RlbGtlbnNcIixcbiAgICBcIlN0ZW5nZWxcIixcbiAgICBcIlN0ZW5nbFwiLFxuICAgIFwiU3RlbnplbFwiLFxuICAgIFwiU3RlcGFub3ZcIixcbiAgICBcIlN0ZXBoYW5cIixcbiAgICBcIlN0ZXJuXCIsXG4gICAgXCJTdGV1a1wiLFxuICAgIFwiU3RpZWZcIixcbiAgICBcIlN0aWZlbFwiLFxuICAgIFwiU3RvbGxcIixcbiAgICBcIlN0b2xsZVwiLFxuICAgIFwiU3RvbHpcIixcbiAgICBcIlN0b3JsXCIsXG4gICAgXCJTdG9ycFwiLFxuICAgIFwiU3RvdXRqZXNkaWprXCIsXG4gICAgXCJTdHJhdG1hbm5cIixcbiAgICBcIlN0cmF1YlwiLFxuICAgIFwiU3RyYXVzYVwiLFxuICAgIFwiU3RyZWNrXCIsXG4gICAgXCJTdHJlZXNlXCIsXG4gICAgXCJTdHJlZ2VcIixcbiAgICBcIlN0cmVpdFwiLFxuICAgIFwiU3RyZWxsZXJcIixcbiAgICBcIlN0cmllZGVyXCIsXG4gICAgXCJTdHJpZXplbFwiLFxuICAgIFwiU3Ryb2dpZXNcIixcbiAgICBcIlN0cm9oc2NoYW5rXCIsXG4gICAgXCJTdHJ1bnpcIixcbiAgICBcIlN0cnV0elwiLFxuICAgIFwiU3R1YmVcIixcbiAgICBcIlN0w7Zja2VydFwiLFxuICAgIFwiU3TDtnBwbGVyXCIsXG4gICAgXCJTdMO2d2VyXCIsXG4gICAgXCJTdMO8cm1lclwiLFxuICAgIFwiU3VmZmFcIixcbiAgICBcIlN1amV3XCIsXG4gICAgXCJTdXNzbWFublwiLFxuICAgIFwiU3V0aGVcIixcbiAgICBcIlN1dHNjaGV0XCIsXG4gICAgXCJTd2lsbGltc1wiLFxuICAgIFwiU3plbmRyZWlcIixcbiAgICBcIlPDtnJlblwiLFxuICAgIFwiU8O8cnRoXCIsXG4gICAgXCJUYWZlbG1laWVyXCIsXG4gICAgXCJUYW5nXCIsXG4gICAgXCJUYXNjaGVcIixcbiAgICBcIlRhdWZyYXRzaG9mZXJcIixcbiAgICBcIlRlZ2V0aG9mXCIsXG4gICAgXCJUZWljaG1hbm5cIixcbiAgICBcIlRlcHBlclwiLFxuICAgIFwiVGVyaGVpZGVuXCIsXG4gICAgXCJUZXJsZWNraVwiLFxuICAgIFwiVGV1ZmVsXCIsXG4gICAgXCJUaGVlbGVcIixcbiAgICBcIlRoaWVrZVwiLFxuICAgIFwiVGhpbW1cIixcbiAgICBcIlRoaW9tYXNcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiVGhyaWVuZVwiLFxuICAgIFwiVGhyw6RuaGFyZHRcIixcbiAgICBcIlRodXN0XCIsXG4gICAgXCJUaHlzc2VuXCIsXG4gICAgXCJUaMO2bmVcIixcbiAgICBcIlRpZG93XCIsXG4gICAgXCJUaWVkdGtlXCIsXG4gICAgXCJUaWV0emVcIixcbiAgICBcIlRpbGduZXJcIixcbiAgICBcIlRpbGxhY2tcIixcbiAgICBcIlRpbW1lcm1hbm5cIixcbiAgICBcIlRpc2NobGVyXCIsXG4gICAgXCJUaXNjaG1hbm5cIixcbiAgICBcIlRpdHRtYW5cIixcbiAgICBcIlRpdm9udHNjaGlrXCIsXG4gICAgXCJUb25hdFwiLFxuICAgIFwiVG9ublwiLFxuICAgIFwiVHJhbXBlbGlcIixcbiAgICBcIlRyYXV0aFwiLFxuICAgIFwiVHJhdXRtYW5uXCIsXG4gICAgXCJUcmF2YW5cIixcbiAgICBcIlRyZWZmXCIsXG4gICAgXCJUcmVtbWVsXCIsXG4gICAgXCJUcmVzc1wiLFxuICAgIFwiVHNhbW9uaWtpYW5cIixcbiAgICBcIlRzY2hpZXJzXCIsXG4gICAgXCJUc2NoaXJjaFwiLFxuICAgIFwiVHVjaFwiLFxuICAgIFwiVHVjaG9sa2VcIixcbiAgICBcIlR1ZG93XCIsXG4gICAgXCJUdXNjaG1vXCIsXG4gICAgXCJUw6RjaGxcIixcbiAgICBcIlTDtmJiZW5cIixcbiAgICBcIlTDtnBmZXJcIixcbiAgICBcIlVobGVtYW5uXCIsXG4gICAgXCJVaGxpZ1wiLFxuICAgIFwiVWhyaWdcIixcbiAgICBcIlVpYmVsXCIsXG4gICAgXCJVbGljemthXCIsXG4gICAgXCJVbGxtYW5uXCIsXG4gICAgXCJVbGxyaWNoXCIsXG4gICAgXCJVbWJhY2hcIixcbiAgICBcIlVtbGF1ZnRcIixcbiAgICBcIlVtbWluZ2VyXCIsXG4gICAgXCJVbmdlclwiLFxuICAgIFwiVW50ZXJwYWludG5lclwiLFxuICAgIFwiVXJiYW5cIixcbiAgICBcIlVyYmFuaWFrXCIsXG4gICAgXCJVcmJhbnNreVwiLFxuICAgIFwiVXJoaWdcIixcbiAgICBcIlZhaGxlbnNpZWNrXCIsXG4gICAgXCJWYW5cIixcbiAgICBcIlZhbmdlcm1haW5cIixcbiAgICBcIlZhdGVyXCIsXG4gICAgXCJWZW5naGF1c1wiLFxuICAgIFwiVmVybmllc3RcIixcbiAgICBcIlZlcnppXCIsXG4gICAgXCJWZXlcIixcbiAgICBcIlZpZWxsZWhuZXJcIixcbiAgICBcIlZpZXdlZ1wiLFxuICAgIFwiVm9lbGtlbFwiLFxuICAgIFwiVm9nZWxcIixcbiAgICBcIlZvZ2VsZ3NhbmdcIixcbiAgICBcIlZvZ3RcIixcbiAgICBcIlZvaWd0XCIsXG4gICAgXCJWb2t1aGxcIixcbiAgICBcIlZvbGtcIixcbiAgICBcIlZvbGtlclwiLFxuICAgIFwiVm9sa21hbm5cIixcbiAgICBcIlZvblwiLFxuICAgIFwiVm9uYVwiLFxuICAgIFwiVm9udGVpblwiLFxuICAgIFwiV2FjaGVuYnJ1bm5lclwiLFxuICAgIFwiV2FjaHRlbFwiLFxuICAgIFwiV2FnbmVyXCIsXG4gICAgXCJXYWliZWxcIixcbiAgICBcIldha2FuXCIsXG4gICAgXCJXYWxkbWFublwiLFxuICAgIFwiV2FsbG5lclwiLFxuICAgIFwiV2FsbHN0YWJcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FsdGhlclwiLFxuICAgIFwiV2FsdG9uXCIsXG4gICAgXCJXYWx6XCIsXG4gICAgXCJXYW5uZXJcIixcbiAgICBcIldhcnRlbmJlcmdcIixcbiAgICBcIldhc2NoYsO8c2NoXCIsXG4gICAgXCJXYXNzaWxld1wiLFxuICAgIFwiV2Fzc2lsdWtcIixcbiAgICBcIldlYmVyXCIsXG4gICAgXCJXZWhyc2VuXCIsXG4gICAgXCJXZWlkbGljaFwiLFxuICAgIFwiV2VpZG5lclwiLFxuICAgIFwiV2VpZ2VsXCIsXG4gICAgXCJXZWlnaHRcIixcbiAgICBcIldlaWxlclwiLFxuICAgIFwiV2VpbWVyXCIsXG4gICAgXCJXZWlzXCIsXG4gICAgXCJXZWlzc1wiLFxuICAgIFwiV2VsbGVyXCIsXG4gICAgXCJXZWxzY2hcIixcbiAgICBcIldlbHpcIixcbiAgICBcIldlbHplbFwiLFxuICAgIFwiV2VuaWdlclwiLFxuICAgIFwiV2Vua1wiLFxuICAgIFwiV2VybGVcIixcbiAgICBcIldlcm5lclwiLFxuICAgIFwiV2Vycm1hbm5cIixcbiAgICBcIldlc3NlbFwiLFxuICAgIFwiV2Vzc2luZ2hhZ2VcIixcbiAgICBcIldleWVsXCIsXG4gICAgXCJXZXplbFwiLFxuICAgIFwiV2ljaG1hbm5cIixcbiAgICBcIldpY2tlcnRcIixcbiAgICBcIldpZWJlXCIsXG4gICAgXCJXaWVjaG1hbm5cIixcbiAgICBcIldpZWdlbG1hbm5cIixcbiAgICBcIldpZXJpZ1wiLFxuICAgIFwiV2llc2VcIixcbiAgICBcIldpZXNlclwiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsa3lcIixcbiAgICBcIldpbGxcIixcbiAgICBcIldpbGx3YWNoZXJcIixcbiAgICBcIldpbHRzXCIsXG4gICAgXCJXaW1tZXJcIixcbiAgICBcIldpbmtlbG1hbm5cIixcbiAgICBcIldpbmtsZXJcIixcbiAgICBcIldpbnRlclwiLFxuICAgIFwiV2lzY2hla1wiLFxuICAgIFwiV2lzY2hlclwiLFxuICAgIFwiV2lzc2luZ1wiLFxuICAgIFwiV2l0dGljaFwiLFxuICAgIFwiV2l0dGxcIixcbiAgICBcIldvbGZcIixcbiAgICBcIldvbGZhcnRoXCIsXG4gICAgXCJXb2xmZlwiLFxuICAgIFwiV29sbGVuYmVyZ1wiLFxuICAgIFwiV29sbG1hbm5cIixcbiAgICBcIldveXRrb3dza2FcIixcbiAgICBcIld1amFrXCIsXG4gICAgXCJXdXJtXCIsXG4gICAgXCJXeWx1ZGRhXCIsXG4gICAgXCJXw7ZscGVydFwiLFxuICAgIFwiV8O2c2NobGVyXCIsXG4gICAgXCJXw7xoblwiLFxuICAgIFwiV8O8bnNjaGVcIixcbiAgICBcIlphY2hcIixcbiAgICBcIlphY3praWV3aWN6XCIsXG4gICAgXCJaYWhuXCIsXG4gICAgXCJaYWl0dWNcIixcbiAgICBcIlphbmR0XCIsXG4gICAgXCJaYW5uZXJcIixcbiAgICBcIlphcGxldGFsXCIsXG4gICAgXCJaYXViZXJcIixcbiAgICBcIlplaWRsZXJcIixcbiAgICBcIlpla2xcIixcbiAgICBcIlplbmRlclwiLFxuICAgIFwiWmV1Y2hcIixcbiAgICBcIlpleWVuXCIsXG4gICAgXCJaZXlobGVcIixcbiAgICBcIlppZWdsZXJcIixcbiAgICBcIlppbWFueWlcIixcbiAgICBcIlppbW1lclwiLFxuICAgIFwiWmltbWVybWFublwiLFxuICAgIFwiWmluc2VyXCIsXG4gICAgXCJaaW50bFwiLFxuICAgIFwiWmlwcFwiLFxuICAgIFwiWmlwc2VcIixcbiAgICBcIlpzY2h1bmtlXCIsXG4gICAgXCJadWJlclwiLFxuICAgIFwiWndpZW5lclwiLFxuICAgIFwiWsO8bXNhbmRlXCIsXG4gICAgXCLDlnN0cmluZ2VyXCIsXG4gICAgXCLDnGJlcmFja2VyXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiSHIuXCIsXG4gICAgXCJGci5cIixcbiAgICBcIkRyLlwiLFxuICAgIFwiUHJvZi4gRHIuXCJcbiAgXSxcbiAgXCJub2JpbGl0eV90aXRsZV9wcmVmaXhcIjogW1xuICAgIFwienVcIixcbiAgICBcInZvblwiLFxuICAgIFwidm9tXCIsXG4gICAgXCJ2b24gZGVyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje25vYmlsaXR5X3RpdGxlX3ByZWZpeH0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIoMCMjIykgIyMjIyMjIyMjXCIsXG4gICAgXCIoMCMjIyMpICMjIyMjIyNcIixcbiAgICBcIis0OS0jIyMtIyMjIyMjI1wiLFxuICAgIFwiKzQ5LSMjIyMtIyMjIyMjIyNcIlxuICBdXG59O1xuZGUuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIis0OS0xIyMtIyMjIyMjI1wiLFxuICAgIFwiKzQ5LTEjIyMtIyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGRlX0FUID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZGVfQVQ7XG5kZV9BVC50aXRsZSA9IFwiR2VybWFuIChBdXN0cmlhKVwiO1xuZGVfQVQuYWRkcmVzcyA9IHtcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIsOEZ3lwdGVuXCIsXG4gICAgXCLDhHF1YXRvcmlhbGd1aW5lYVwiLFxuICAgIFwiw4R0aGlvcGllblwiLFxuICAgIFwiw5ZzdGVycmVpY2hcIixcbiAgICBcIkFmZ2hhbmlzdGFuXCIsXG4gICAgXCJBbGJhbmllblwiLFxuICAgIFwiQWxnZXJpZW5cIixcbiAgICBcIkFtZXJpa2FuaXNjaC1TYW1vYVwiLFxuICAgIFwiQW1lcmlrYW5pc2NoZSBKdW5nZmVybmluc2VsblwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmd1aWxsYVwiLFxuICAgIFwiQW50YXJrdGlzXCIsXG4gICAgXCJBbnRpZ3VhIHVuZCBCYXJidWRhXCIsXG4gICAgXCJBcmdlbnRpbmllblwiLFxuICAgIFwiQXJtZW5pZW5cIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBc2VyYmFpZHNjaGFuXCIsXG4gICAgXCJBdXN0cmFsaWVuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJCYW5nbGFkZXNjaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJlbGFydXNcIixcbiAgICBcIkJlbGdpZW5cIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcImRpZSBCZXJtdWRhc1wiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2xpdmllblwiLFxuICAgIFwiQm9zbmllbiB1bmQgSGVyemVnb3dpbmFcIixcbiAgICBcIkJvdHN1YW5hXCIsXG4gICAgXCJCb3V2ZXRpbnNlbFwiLFxuICAgIFwiQnJhc2lsaWVuXCIsXG4gICAgXCJCcml0aXNjaGUgSnVuZ2Zlcm5pbnNlbG5cIixcbiAgICBcIkJyaXRpc2NoZXMgVGVycml0b3JpdW0gaW0gSW5kaXNjaGVuIE96ZWFuXCIsXG4gICAgXCJCcnVuZWkgRGFydXNzYWxhbVwiLFxuICAgIFwiQnVsZ2FyaWVuXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNoaWxlXCIsXG4gICAgXCJDaGluYVwiLFxuICAgIFwiQ29va2luc2VsblwiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiRMOkbmVtYXJrXCIsXG4gICAgXCJEZW1va3JhdGlzY2hlIFJlcHVibGlrIEtvbmdvXCIsXG4gICAgXCJEZW1va3JhdGlzY2hlIFZvbGtzcmVwdWJsaWsgS29yZWFcIixcbiAgICBcIkRldXRzY2hsYW5kXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiRG9taW5pa2FuaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIkRzY2hpYnV0aVwiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdGxhbmRcIixcbiAgICBcIkbDpHLDtmVyXCIsXG4gICAgXCJGYWxrbGFuZGluc2VsblwiLFxuICAgIFwiRmlkc2NoaVwiLFxuICAgIFwiRmlubmxhbmRcIixcbiAgICBcIkZyYW5rcmVpY2hcIixcbiAgICBcIkZyYW56w7ZzaXNjaC1HdWF5YW5hXCIsXG4gICAgXCJGcmFuesO2c2lzY2gtUG9seW5lc2llblwiLFxuICAgIFwiRnJhbnrDtnNpc2NoZSBHZWJpZXRlIGltIHPDvGRsaWNoZW4gSW5kaXNjaGVuIE96ZWFuXCIsXG4gICAgXCJHYWJ1blwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHZW9yZ2llblwiLFxuICAgIFwiR2hhbmFcIixcbiAgICBcIkdpYnJhbHRhclwiLFxuICAgIFwiR3LDtm5sYW5kXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcmllY2hlbmxhbmRcIixcbiAgICBcIkd1YWRlbG91cGVcIixcbiAgICBcIkd1YW1cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWEtQmlzc2F1XCIsXG4gICAgXCJHdXlhbmFcIixcbiAgICBcIkhhaXRpXCIsXG4gICAgXCJIZWFyZCB1bmQgTWNEb25hbGRpbnNlbG5cIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25na29uZ1wiLFxuICAgIFwiSW5kaWVuXCIsXG4gICAgXCJJbmRvbmVzaWVuXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJcmxhbmRcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNyYWVsXCIsXG4gICAgXCJJdGFsaWVuXCIsXG4gICAgXCJKYW1haWthXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkpvcmRhbmllblwiLFxuICAgIFwiSnVnb3NsYXdpZW5cIixcbiAgICBcIkthaW1hbmluc2VsblwiLFxuICAgIFwiS2FtYm9kc2NoYVwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYXAgVmVyZGVcIixcbiAgICBcIkthc2FjaHN0YW5cIixcbiAgICBcIkthdGFyXCIsXG4gICAgXCJLZW5pYVwiLFxuICAgIFwiS2lyZ2lzaXN0YW5cIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLbGVpbmVyZSBhbWVyaWthbmlzY2hlIMOcYmVyc2VlaW5zZWxuXCIsXG4gICAgXCJLb2tvc2luc2VsblwiLFxuICAgIFwiS29sdW1iaWVuXCIsXG4gICAgXCJLb21vcmVuXCIsXG4gICAgXCJLb25nb1wiLFxuICAgIFwiS3JvYXRpZW5cIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiTGFvc1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGV0dGxhbmRcIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkxpYmVyaWFcIixcbiAgICBcIkxpYnllblwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0YXVlblwiLFxuICAgIFwiTHV4ZW1idXJnXCIsXG4gICAgXCJNYWNhdVwiLFxuICAgIFwiTWFkYWdhc2thclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxheXNpYVwiLFxuICAgIFwiTWFsZWRpdmVuXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiZWhlbWFsaWdlIGp1Z29zbGF3aXNjaGUgUmVwdWJsaWsgTWF6ZWRvbmllblwiLFxuICAgIFwiTWFyb2trb1wiLFxuICAgIFwiTWFyc2hhbGxpbnNlbG5cIixcbiAgICBcIk1hcnRpbmlxdWVcIixcbiAgICBcIk1hdXJldGFuaWVuXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk1leGlrb1wiLFxuICAgIFwiTWlrcm9uZXNpZW5cIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29sZWlcIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1vc2FtYmlrXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOw7ZyZGxpY2hlIE1hcmlhbmVuXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIk5ldWthbGVkb25pZW5cIixcbiAgICBcIk5ldXNlZWxhbmRcIixcbiAgICBcIk5pY2FyYWd1YVwiLFxuICAgIFwiTmllZGVybMOkbmRpc2NoZSBBbnRpbGxlblwiLFxuICAgIFwiTmllZGVybGFuZGVcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJOb3Jmb2xraW5zZWxcIixcbiAgICBcIk5vcndlZ2VuXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJPc3R0aW1vclwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlBhcHVhLU5ldWd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlBoaWxpcHBpbmVuXCIsXG4gICAgXCJQaXRjYWlybmluc2VsblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUsOpdW5pb25cIixcbiAgICBcIlJlcHVibGlrIEtvcmVhXCIsXG4gICAgXCJSZXB1YmxpayBNb2xkYXVcIixcbiAgICBcIlJ1YW5kYVwiLFxuICAgIFwiUnVtw6RuaWVuXCIsXG4gICAgXCJSdXNzaXNjaGUgRsO2ZGVyYXRpb25cIixcbiAgICBcIlPDo28gVG9tw6kgdW5kIFByw61uY2lwZVwiLFxuICAgIFwiU8O8ZGFmcmlrYVwiLFxuICAgIFwiU8O8ZGdlb3JnaWVuIHVuZCBTw7xkbGljaGUgU2FuZHdpY2hpbnNlbG5cIixcbiAgICBcIlNhbG9tb25lblwiLFxuICAgIFwiU2FtYmlhXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2F1ZGktQXJhYmllblwiLFxuICAgIFwiU2Nod2VkZW5cIixcbiAgICBcIlNjaHdlaXpcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNleWNoZWxsZW5cIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2ltYmFid2VcIixcbiAgICBcIlNpbmdhcHVyXCIsXG4gICAgXCJTbG93YWtlaVwiLFxuICAgIFwiU2xvd2VuaWVuXCIsXG4gICAgXCJTb21hbGllblwiLFxuICAgIFwiU3BhbmllblwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdC4gSGVsZW5hXCIsXG4gICAgXCJTdC4gS2l0dHMgdW5kIE5ldmlzXCIsXG4gICAgXCJTdC4gTHVjaWFcIixcbiAgICBcIlN0LiBQaWVycmUgdW5kIE1pcXVlbG9uXCIsXG4gICAgXCJTdC4gVmluY2VudCB1bmQgZGllIEdyZW5hZGluZW5cIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJTdmFsYmFyZCB1bmQgSmFuIE1heWVuXCIsXG4gICAgXCJTd2FzaWxhbmRcIixcbiAgICBcIlN5cmllblwiLFxuICAgIFwiVMO8cmtlaVwiLFxuICAgIFwiVGFkc2NoaWtpc3RhblwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYW5zYW5pYVwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCB1bmQgVG9iYWdvXCIsXG4gICAgXCJUc2NoYWRcIixcbiAgICBcIlRzY2hlY2hpc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiVHVuZXNpZW5cIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiVHVya3MtIHVuZCBDYWljb3NpbnNlbG5cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVa3JhaW5lXCIsXG4gICAgXCJVbmdhcm5cIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlVzYmVraXN0YW5cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZhdGlrYW5zdGFkdFwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWZXJlaW5pZ3RlIEFyYWJpc2NoZSBFbWlyYXRlXCIsXG4gICAgXCJWZXJlaW5pZ3RlIFN0YWF0ZW5cIixcbiAgICBcIlZlcmVpbmlndGVzIEvDtm5pZ3JlaWNoXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJXYWxsaXMgdW5kIEZ1dHVuYVwiLFxuICAgIFwiV2VpaG5hY2h0c2luc2VsXCIsXG4gICAgXCJXZXN0c2FoYXJhXCIsXG4gICAgXCJaZW50cmFsYWZyaWthbmlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJaeXBlcm5cIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkFob3JuXCIsXG4gICAgXCJBaG9ybmdhc3NlIChTdC4gQW5kcsOkKVwiLFxuICAgIFwiQWxsZWVzdHJhw59lIChQb3lzYnJ1bm4pXCIsXG4gICAgXCJBbHBlbmxhbmRzdHJhw59lXCIsXG4gICAgXCJBbHRlIFBvc3RzdHJhw59lXCIsXG4gICAgXCJBbHRlIFVmZXJnYXNzZVwiLFxuICAgIFwiQW0gS3JvbmF3ZXR0IChIYWdlbmJydW5uKVwiLFxuICAgIFwiQW0gTcO8aGx3YXNzZXJcIixcbiAgICBcIkFtIFJlYmVuaGFuZ1wiLFxuICAgIFwiQW0gU3Rlcm53ZWdcIixcbiAgICBcIkFudG9uIFdpbGRnYW5zLVN0cmHDn2VcIixcbiAgICBcIkF1ZXItdm9uLVdlbHNiYWNoLVdlZ1wiLFxuICAgIFwiQXVmIGRlciBTdGlmdFwiLFxuICAgIFwiQXVmZWxkZ2Fzc2VcIixcbiAgICBcIkJhaG5nYXNzZVwiLFxuICAgIFwiQmFobmhvZnN0cmHDn2VcIixcbiAgICBcIkJhaG5zdHJhw59lIChHZXJoYXVzKVwiLFxuICAgIFwiQmFzdGVpZ2Fzc2VcIixcbiAgICBcIkJlcmdnYXNzZVwiLFxuICAgIFwiQmVyZ3N0cmHDn2VcIixcbiAgICBcIkJpcmtlbndlZ1wiLFxuICAgIFwiQmxhc2l1c3N0ZWlnXCIsXG4gICAgXCJCbGF0dHVyXCIsXG4gICAgXCJCcnVkZXJob2ZnYXNzZVwiLFxuICAgIFwiQnJ1bm5lbGxpZ2Fzc2VcIixcbiAgICBcIkLDvGhlbHdlZ1wiLFxuICAgIFwiRGFybmF1dGdhc3NlXCIsXG4gICAgXCJEb25hdWdhc3NlXCIsXG4gICAgXCJEb3JmcGxhdHogKEhhc2VsYmFjaClcIixcbiAgICBcIkRyLi1PYmVycmVpdGVyLVN0cmHDn2VcIixcbiAgICBcIkRyLkthcmwgSG9sb3ViZWstU3RyLlwiLFxuICAgIFwiRHJhdXRhbCBCdW5kZXNzdHJhw59lXCIsXG4gICAgXCJEw7xybnJvaHJlciBTdHJhw59lXCIsXG4gICAgXCJFYmVudGhhbGVyc3RyYcOfZVwiLFxuICAgIFwiRWNrZ3JhYmVud2VnXCIsXG4gICAgXCJFcmxlbnN0cmHDn2VcIixcbiAgICBcIkVybGVud2VnXCIsXG4gICAgXCJFc2NoZW53ZWdcIixcbiAgICBcIkV0cmljaGdhc3NlXCIsXG4gICAgXCJGYXNzZXJnYXNzZVwiLFxuICAgIFwiRmVpY2h0ZWdnZXJ3aWVzZVwiLFxuICAgIFwiRmVsZC1XZWdcIixcbiAgICBcIkZlbGRnYXNzZVwiLFxuICAgIFwiRmVsZHN0YXBmZVwiLFxuICAgIFwiRmlzY2hwb2ludHdlZ1wiLFxuICAgIFwiRmxhY2hiZXJnc3RyYcOfZVwiLFxuICAgIFwiRmx1cndlZ1wiLFxuICAgIFwiRnJhbnogU2NodWJlcnQtR2Fzc2VcIixcbiAgICBcIkZyYW56LVNjaG5lZXdlacOfLVdlZ1wiLFxuICAgIFwiRnJhbnotdm9uLUFzc2lzaS1TdHJhw59lXCIsXG4gICAgXCJGcml0ei1QcmVnbC1TdHJhw59lXCIsXG4gICAgXCJGdWNoc2dydWJlbndlZ1wiLFxuICAgIFwiRsO2ZGxlcndlZ1wiLFxuICAgIFwiRsO2aHJlbndlZ1wiLFxuICAgIFwiRsO8bmZoYXVzIChQYWFzZG9yZilcIixcbiAgICBcIkdhYmVsc2JlcmdlcnN0cmHDn2VcIixcbiAgICBcIkdhcnRlbnN0cmHDn2VcIixcbiAgICBcIkdlaWdlblwiLFxuICAgIFwiR2VpZ2VyZ2Fzc2VcIixcbiAgICBcIkdlbWVpbmRlYXVnYXNzZVwiLFxuICAgIFwiR2VtZWluZGVwbGF0elwiLFxuICAgIFwiR2VvcmctQWljaGluZ2VyLVN0cmHDn2VcIixcbiAgICBcIkdsYW5mZWxkYmFjaHdlZ1wiLFxuICAgIFwiR3JhYmVuIChCdXJnYXViZXJnKVwiLFxuICAgIFwiR3J1YlwiLFxuICAgIFwiR3LDtnJldGdhc3NlXCIsXG4gICAgXCJHcsO8bmJhY2hcIixcbiAgICBcIkfDtnN0aW5nXCIsXG4gICAgXCJIYWluc2Nod2FuZ1wiLFxuICAgIFwiSGFucy1NYXVyYWNoZXItU3RyYcOfZVwiLFxuICAgIFwiSGFydFwiLFxuICAgIFwiVGVpY2hzdHJhw59lXCIsXG4gICAgXCJIYXVwdHBsYXR6XCIsXG4gICAgXCJIYXVwdHN0cmHDn2VcIixcbiAgICBcIkhlaWRld2VnXCIsXG4gICAgXCJIZWlucmljaCBMYW5kYXVlciBHYXNzZVwiLFxuICAgIFwiSGVsZW5lbmdhc3NlXCIsXG4gICAgXCJIZXJtYW5uIHZvbiBHaWxtd2VnXCIsXG4gICAgXCJIZXJtYW5uLUzDtm5zLUdhc3NlXCIsXG4gICAgXCJIZXJtaW5lbmdhc3NlXCIsXG4gICAgXCJIZXJuc3RvcmZlcnN0cmHDn2VcIixcbiAgICBcIkhpcnNkb3JmXCIsXG4gICAgXCJIb2NoZmVpc3RyaXR6XCIsXG4gICAgXCJIb2NoaGF1cyBOZXVlIERvbmF1XCIsXG4gICAgXCJIb2ZcIixcbiAgICBcIkh1c3Nvdml0cyBHYXNzZVwiLFxuICAgIFwiSMO2Z2dlblwiLFxuICAgIFwiSMO8dHRlblwiLFxuICAgIFwiSmFuemdhc3NlXCIsXG4gICAgXCJKb2NocmllbWd1dHN0cmHDn2VcIixcbiAgICBcIkpvaGFubi1TdHJhdcOfLUdhc3NlXCIsXG4gICAgXCJKdWxpdXMtUmFhYi1TdHJhw59lXCIsXG4gICAgXCJLYWhsZW5iZXJnZXIgU3RyYcOfZVwiLFxuICAgIFwiS2FybCBLcmFmdC1TdHJhw59lXCIsXG4gICAgXCJLZWdlbHByaWVsc3RyYcOfZVwiLFxuICAgIFwiS2VsdGVuYmVyZy1FcG9uYXdlZ1wiLFxuICAgIFwiS2VubmVkeWJyw7xja2VcIixcbiAgICBcIktlcnBlbHlzdHJhw59lXCIsXG4gICAgXCJLaW5kZXJnYXJ0ZW5zdHJhw59lXCIsXG4gICAgXCJLaW5kZXJoZWltZ2Fzc2VcIixcbiAgICBcIktpcmNoZW5wbGF0elwiLFxuICAgIFwiS2lyY2h3ZWdcIixcbiAgICBcIktsYWdlbmZ1cnRlciBTdHJhw59lXCIsXG4gICAgXCJLbGFtbVwiLFxuICAgIFwiS2xlaW5iYXVtZ2FydGVuXCIsXG4gICAgXCJLbGluZ2VyZ2Fzc2VcIixcbiAgICBcIktvbG9uaWVzdHJhw59lXCIsXG4gICAgXCJLb25yYWQtRHVkZW4tR2Fzc2VcIixcbiAgICBcIktyYW5rZW5oYXVzc3RyYcOfZVwiLFxuICAgIFwiS3ViaW5zdHJhw59lXCIsXG4gICAgXCJLw7ZobGRvcmZlcmdhc3NlXCIsXG4gICAgXCJMYWNrZW53ZWdcIixcbiAgICBcIkxhbmdlIE1la290dGVcIixcbiAgICBcIkxlaWZsaW5nXCIsXG4gICAgXCJMZW9wb2xkIEZyYW5rLVN0cmHDn2UgKFBlbGxlbmRvcmYpXCIsXG4gICAgXCJMZXJjaGVuZ2Fzc2UgKFBpcmthKVwiLFxuICAgIFwiTGljaHRlbnN0ZXJuc2llZGx1bmcgVlwiLFxuICAgIFwiTGluZGVuaG9mc3RyYcOfZVwiLFxuICAgIFwiTGluZGVud2VnXCIsXG4gICAgXCJMdWVnc3RyYcOfZVwiLFxuICAgIFwiTWFpZXJob2ZcIixcbiAgICBcIk1hbGVyd2VnXCIsXG4gICAgXCJNaXR0ZXJ3ZWdcIixcbiAgICBcIk1pdHRsZXJlIEhhdXB0c3RyYcOfZVwiLFxuICAgIFwiTW9vc2JhY2hnYXNzZVwiLFxuICAgIFwiTW9yZXR0aWdhc3NlXCIsXG4gICAgXCJNdXNpa3BhdmlsbG9uIFJpZXpsZXJuXCIsXG4gICAgXCJNw7xobGJvZGVuXCIsXG4gICAgXCJNw7xobGVcIixcbiAgICBcIk3DvGhsZW53ZWdcIixcbiAgICBcIk5ldXN0aWZ0Z2Fzc2VcIixcbiAgICBcIk5pZWRlcmVnZ1wiLFxuICAgIFwiTmllZGVyZ2Ftc1wiLFxuICAgIFwiTm9yZHdlc3RiYWhuYnLDvGNrZVwiLFxuICAgIFwiT2JlcmLDtmRlbmFsbVwiLFxuICAgIFwiT2JlcmUgQmVyZ2dhc3NlXCIsXG4gICAgXCJPZWR0XCIsXG4gICAgXCJBbSBGw6RyYmVyYmVyZ1wiLFxuICAgIFwiT3R0b2dhc3NlXCIsXG4gICAgXCJQYXVsIFBldGVycy1HYXNzZVwiLFxuICAgIFwiUGVyc3Bla3RpdnN0cmHDn2VcIixcbiAgICBcIlBvcHBpY2hsXCIsXG4gICAgXCJQcml2YXR3ZWdcIixcbiAgICBcIlByaXhnYXNzZVwiLFxuICAgIFwiUHlocmFcIixcbiAgICBcIlJhZGV0emt5c3RyYcOfZVwiLFxuICAgIFwiUmFpZGVuXCIsXG4gICAgXCJSZWljaGVuc3RlaW5zdHJhw59lXCIsXG4gICAgXCJSZWl0YmF1ZXJuc3RyYcOfZVwiLFxuICAgIFwiUmVpdGVyd2VnXCIsXG4gICAgXCJSZWl0c2NodWxnYXNzZVwiLFxuICAgIFwiUmluZ3dlZ1wiLFxuICAgIFwiUnVwZXJ0aXN0cmHDn2VcIixcbiAgICBcIlLDtm1lcnN0cmHDn2VcIixcbiAgICBcIlLDtm1lcndlZ1wiLFxuICAgIFwiU2Fja2dhc3NlXCIsXG4gICAgXCJTY2hhdW5iZXJnZXJzdHJhw59lXCIsXG4gICAgXCJTY2hsb8Ofd2VnXCIsXG4gICAgXCJTY2h1bGdhc3NlIChMYW5nZWNrKVwiLFxuICAgIFwiU2Now7ZuaG9sZHNpZWRsdW5nXCIsXG4gICAgXCJTZWVibGlja1wiLFxuICAgIFwiU2Vlc3RyYcOfZVwiLFxuICAgIFwiU2VtcmlhY2hlcnN0cmHDn2VcIixcbiAgICBcIlNpbWxpbmdcIixcbiAgICBcIlNpcGJhY2h6ZWxsZXIgU3RyYcOfZVwiLFxuICAgIFwiU29ubmVud2VnXCIsXG4gICAgXCJTcGFyZ2VsZmVsZGdhc3NlXCIsXG4gICAgXCJTcGllc21heXJ3ZWdcIixcbiAgICBcIlNwb3J0cGxhdHpzdHJhw59lXCIsXG4gICAgXCJTdC5VbHJpY2hcIixcbiAgICBcIlN0ZWlsbWFubnN0cmHDn2VcIixcbiAgICBcIlN0ZWluZ3LDvG5lcmVkdFwiLFxuICAgIFwiU3RyYXNzZmVsZFwiLFxuICAgIFwiU3RyYcOfZXJhdVwiLFxuICAgIFwiU3TDtnBmbHdlZ1wiLFxuICAgIFwiU3TDvHJhXCIsXG4gICAgXCJUYWZlcm5nYXNzZVwiLFxuICAgIFwiVGVubndlZ1wiLFxuICAgIFwiVGhvbWFzIEtvc2NoYXQtR2Fzc2VcIixcbiAgICBcIlRpcm9sZXIgU3RyYcOfZVwiLFxuICAgIFwiVG9ycm9nYXNzZVwiLFxuICAgIFwiVWZlcnN0cmHDn2UgKFNjaHdhcnphdSBhbSBTdGVpbmZlbGQpXCIsXG4gICAgXCJVbnRlcmTDtnJmbFwiLFxuICAgIFwiVW50ZXJlciBTb25ucmFpbndlZ1wiLFxuICAgIFwiVmVyd2FsdGVyc2llZGx1bmdcIixcbiAgICBcIldhbGRoYW5nXCIsXG4gICAgXCJXYXNlblwiLFxuICAgIFwiV2VpZGVuc3RyYcOfZVwiLFxuICAgIFwiV2VpaGVyd2VnXCIsXG4gICAgXCJXZXR0c3RlaW5nYXNzZVwiLFxuICAgIFwiV2llbmVyIFN0cmHDn2VcIixcbiAgICBcIldpbmRpc2NoXCIsXG4gICAgXCJaZWJyYWdhc3NlXCIsXG4gICAgXCJaZWxsZXJzdHJhw59lXCIsXG4gICAgXCJaaWVocmVyc3RyYcOfZVwiLFxuICAgIFwiWnVsZWNobmVyd2VnXCIsXG4gICAgXCJad2VyZ2pvY2hcIixcbiAgICBcIsOWdHpicnVja1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIixcbiAgICBcIiMjYVwiLFxuICAgIFwiIyNiXCIsXG4gICAgXCIjI2NcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJaaW1tZXIgIyMjXCIsXG4gICAgXCIjIE9HXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCdXJnZW5sYW5kXCIsXG4gICAgXCJLw6RybnRlblwiLFxuICAgIFwiTmllZGVyw7ZzdGVycmVpY2hcIixcbiAgICBcIk9iZXLDtnN0ZXJyZWljaFwiLFxuICAgIFwiU2FsemJ1cmdcIixcbiAgICBcIlN0ZWllcm1hcmtcIixcbiAgICBcIlRpcm9sXCIsXG4gICAgXCJWb3JhcmxiZXJnXCIsXG4gICAgXCJXaWVuXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkJnbGQuXCIsXG4gICAgXCJLdG4uXCIsXG4gICAgXCJOw5ZcIixcbiAgICBcIk/DllwiLFxuICAgIFwiU2JnLlwiLFxuICAgIFwiU3Rtay5cIixcbiAgICBcIlRcIixcbiAgICBcIlZiZy5cIixcbiAgICBcIldcIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCJBaWdlbiBpbSBNw7xobGtyZWlzXCIsXG4gICAgXCJBbGxlcmhlaWxpZ2VuIGJlaSBXaWxkb25cIixcbiAgICBcIkFsdGVuZmVsZGVuXCIsXG4gICAgXCJBcnJpYWNoXCIsXG4gICAgXCJBeGFtc1wiLFxuICAgIFwiQmF1bWdhcnRlbmJlcmdcIixcbiAgICBcIkJlcmdlcm4gaW0gRHVua2Vsc3RlaW5lcndhbGRcIixcbiAgICBcIkJlcm5kb3JmIGJlaSBTYWx6YnVyZ1wiLFxuICAgIFwiQnJlZ2VuelwiLFxuICAgIFwiQnJlaXRlbmJhY2ggYW0gSW5uXCIsXG4gICAgXCJEZXV0c2NoLVdhZ3JhbVwiLFxuICAgIFwiRGllbnRlbiBhbSBIb2Noa8O2bmlnXCIsXG4gICAgXCJEaWV0YWNoXCIsXG4gICAgXCJEb3JuYmlyblwiLFxuICAgIFwiRMO8cm5rcnV0XCIsXG4gICAgXCJFYmVuIGltIFBvbmdhdVwiLFxuICAgIFwiRWJlbnRoYWwgaW4gS8Okcm50ZW5cIixcbiAgICBcIkVpY2hncmFiZW5cIixcbiAgICBcIkVpc2Vuc3RhZHRcIixcbiAgICBcIkVsbG1hdVwiLFxuICAgIFwiRmVpc3RyaXR6IGFtIFdlY2hzZWxcIixcbiAgICBcIkZpbmtlbmJlcmdcIixcbiAgICBcIkZpc3NcIixcbiAgICBcIkZyYW50c2NoYWNoLVN0LiBHZXJ0cmF1ZFwiLFxuICAgIFwiRnJpdHplbnNcIixcbiAgICBcIkdhbXMgYmVpIEhpZWZsYXVcIixcbiAgICBcIkdlaWVyc2JlcmdcIixcbiAgICBcIkdyYXpcIixcbiAgICBcIkdyb8OfaMO2ZmxlaW5cIixcbiAgICBcIkfDtsOfbml0elwiLFxuICAgIFwiSGFydGxcIixcbiAgICBcIkhhdXNsZWl0ZW5cIixcbiAgICBcIkhlcnpvZ2VuYnVyZ1wiLFxuICAgIFwiSGludGVyaG9ybmJhY2hcIixcbiAgICBcIkhvY2h3b2xrZXJzZG9yZlwiLFxuICAgIFwiSWx6XCIsXG4gICAgXCJJbHp0YWxcIixcbiAgICBcIklubmVyYnJhelwiLFxuICAgIFwiSW5uc2JydWNrXCIsXG4gICAgXCJJdHRlclwiLFxuICAgIFwiSmFnZXJiZXJnXCIsXG4gICAgXCJKZWdpbmdcIixcbiAgICBcIkpvaG5zYmFjaFwiLFxuICAgIFwiSm9obnNkb3JmLUJydW5uXCIsXG4gICAgXCJKdW5naG9selwiLFxuICAgIFwiS2lyY2hkb3JmIGFtIElublwiLFxuICAgIFwiS2xhZ2VuZnVydFwiLFxuICAgIFwiS290dGVzLVB1cmtcIixcbiAgICBcIktydW1hdSBhbSBLYW1wXCIsXG4gICAgXCJLcnVtYmFjaFwiLFxuICAgIFwiTGF2YW3DvG5kXCIsXG4gICAgXCJMZWNoXCIsXG4gICAgXCJMaW56XCIsXG4gICAgXCJMdWRlc2NoXCIsXG4gICAgXCJMw7ZkZXJzZG9yZlwiLFxuICAgIFwiTWFyYmFjaCBhbiBkZXIgRG9uYXVcIixcbiAgICBcIk1hdHRzZWVcIixcbiAgICBcIk1hdXRlcm4gYW4gZGVyIERvbmF1XCIsXG4gICAgXCJNYXV0ZXJuZG9yZlwiLFxuICAgIFwiTWl0dGVyYmFjaCBhbSBFcmxhdWZzZWVcIixcbiAgICBcIk5ldWRvcmYgYmVpIFBhc3NhaWxcIixcbiAgICBcIk5ldWRvcmYgYmVpIFN0YWF0elwiLFxuICAgIFwiTmV1a2lyY2hlbiBhbiBkZXIgRW5rbmFjaFwiLFxuICAgIFwiTmV1c3RpZnQgYW4gZGVyIExhZm5pdHpcIixcbiAgICBcIk5pZWRlcmxlaXNcIixcbiAgICBcIk9iZXJuZG9yZiBpbiBUaXJvbFwiLFxuICAgIFwiT2JlcnN0b3JjaGFcIixcbiAgICBcIk9iZXJ3YWx0ZXJzZG9yZlwiLFxuICAgIFwiT2VkLU9laGxpbmdcIixcbiAgICBcIk9ydCBpbSBJbm5rcmVpc1wiLFxuICAgIFwiUGlsZ2Vyc2RvcmZcIixcbiAgICBcIlBpdHNjaGdhdVwiLFxuICAgIFwiUG9sbGhhbVwiLFxuICAgIFwiUHJlaXRlbmVnZ1wiLFxuICAgIFwiUHVyYmFjaCBhbSBOZXVzaWVkbGVyIFNlZVwiLFxuICAgIFwiUmFiZW53YWxkXCIsXG4gICAgXCJSYWlkaW5nXCIsXG4gICAgXCJSYXN0ZW5mZWxkXCIsXG4gICAgXCJSYXR0ZW5cIixcbiAgICBcIlJldHRlbmVnZ1wiLFxuICAgIFwiU2FsemJ1cmdcIixcbiAgICBcIlNhbmt0IEpvaGFubiBpbSBTYWdnYXV0YWxcIixcbiAgICBcIlN0LiBQZXRlciBhbSBLYW1tZXJzYmVyZ1wiLFxuICAgIFwiU3QuIFDDtmx0ZW5cIixcbiAgICBcIlN0LiBWZWl0IGFuIGRlciBHbGFuXCIsXG4gICAgXCJUYXhlbmJhY2hcIixcbiAgICBcIlRyYWd3ZWluXCIsXG4gICAgXCJUcmViZXNpbmdcIixcbiAgICBcIlRyaWViZW5cIixcbiAgICBcIlR1cm5hdVwiLFxuICAgIFwiVW5nZXJkb3JmXCIsXG4gICAgXCJVbnRlcmF1ZXJzYmFjaFwiLFxuICAgIFwiVW50ZXJzdGlua2VuYnJ1bm5cIixcbiAgICBcIlVudGVydGlsbGlhY2hcIixcbiAgICBcIlV0dGVuZG9yZlwiLFxuICAgIFwiVmFsc1wiLFxuICAgIFwiVmVsZGVuIGFtIFfDtnJ0aGVyIFNlZVwiLFxuICAgIFwiVmllaGhvZmVuXCIsXG4gICAgXCJWaWxsYWNoXCIsXG4gICAgXCJWaXRpc1wiLFxuICAgIFwiV2FpZGhvZmVuIGFuIGRlciBUaGF5YVwiLFxuICAgIFwiV2FsZGtpcmNoZW4gYW0gV2VzZW5cIixcbiAgICBcIldlacOfa2lyY2hlbiBhbiBkZXIgVHJhdW5cIixcbiAgICBcIldpZW5cIixcbiAgICBcIldpbXBhc3NpbmcgaW0gU2Nod2FyemF0YWxlXCIsXG4gICAgXCJZYmJzIGFuIGRlciBEb25hdVwiLFxuICAgIFwiWWJic2l0elwiLFxuICAgIFwiWXNwZXJ0YWxcIixcbiAgICBcIlplaWxsZXJuXCIsXG4gICAgXCJaZWxsIGFtIFBldHRlbmZpcnN0XCIsXG4gICAgXCJaZWxsIGFuIGRlciBQcmFtXCIsXG4gICAgXCJaZXJsYWNoXCIsXG4gICAgXCJad8O2bGZheGluZ1wiLFxuICAgIFwiw5ZibGFyblwiLFxuICAgIFwiw5xiZWxiYWNoXCIsXG4gICAgXCLDnGJlcmFja2VyblwiLFxuICAgIFwiw5xiZXJzYXhlblwiLFxuICAgIFwiw5xiZXJzYmFjaFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCLDlnN0ZXJyZWljaFwiXG4gIF1cbn07XG5kZV9BVC5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibGVnYWxfZm9ybVwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gdW5kICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmRlX0FULmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIixcbiAgICBcImRlXCIsXG4gICAgXCJjaFwiLFxuICAgIFwiYXRcIlxuICBdXG59O1xuZGVfQVQubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJBYmR1bFwiLFxuICAgIFwiQWJkdWxsYWhcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQWRyaWFub1wiLFxuICAgIFwiQWhtYWRcIixcbiAgICBcIkFobWVkXCIsXG4gICAgXCJBaG1ldFwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGVzc2FuZHJvXCIsXG4gICAgXCJBbGVzc2lvXCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkFsZnJlZFwiLFxuICAgIFwiQWxpXCIsXG4gICAgXCJBbWFyXCIsXG4gICAgXCJBbWlyXCIsXG4gICAgXCJBbW9uXCIsXG4gICAgXCJBbmRyZVwiLFxuICAgIFwiQW5kcmVhc1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbmdlbG9cIixcbiAgICBcIkFuc2dhclwiLFxuICAgIFwiQW50aG9ueVwiLFxuICAgIFwiQW50b25cIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuXCIsXG4gICAgXCJBcm1pblwiLFxuICAgIFwiQXJuZVwiLFxuICAgIFwiQXJub1wiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJBcnR1clwiLFxuICAgIFwiQXJ2ZWRcIixcbiAgICBcIkFydmlkXCIsXG4gICAgXCJBeW1hblwiLFxuICAgIFwiQmFyYW5cIixcbiAgICBcIkJhcmlzXCIsXG4gICAgXCJCYXN0aWFuXCIsXG4gICAgXCJCYXR1aGFuXCIsXG4gICAgXCJCZWxhXCIsXG4gICAgXCJCZW5cIixcbiAgICBcIkJlbmVkaWt0XCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQmVubmV0XCIsXG4gICAgXCJCZW5uZXR0XCIsXG4gICAgXCJCZW5ub1wiLFxuICAgIFwiQmVudFwiLFxuICAgIFwiQmVyYXRcIixcbiAgICBcIkJlcmtheVwiLFxuICAgIFwiQmVybmRcIixcbiAgICBcIkJpbGFsXCIsXG4gICAgXCJCamFybmVcIixcbiAgICBcIkJqw7ZyblwiLFxuICAgIFwiQm9cIixcbiAgICBcIkJvcmlzXCIsXG4gICAgXCJCcmFuZG9uXCIsXG4gICAgXCJCcmlhblwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkJyeWFuXCIsXG4gICAgXCJCdXJha1wiLFxuICAgIFwiQ2FsdmluXCIsXG4gICAgXCJDYW5cIixcbiAgICBcIkNhcmxcIixcbiAgICBcIkNhcmxvXCIsXG4gICAgXCJDYXJsb3NcIixcbiAgICBcIkNhc3BhclwiLFxuICAgIFwiQ2VkcmljXCIsXG4gICAgXCJDZWRyaWtcIixcbiAgICBcIkNlbVwiLFxuICAgIFwiQ2hhcmxpZVwiLFxuICAgIFwiQ2hyaXNcIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiQ2hyaXN0aWFub1wiLFxuICAgIFwiQ2hyaXN0b3BoXCIsXG4gICAgXCJDaHJpc3RvcGhlclwiLFxuICAgIFwiQ2xhYXNcIixcbiAgICBcIkNsZW1lbnNcIixcbiAgICBcIkNvbGluXCIsXG4gICAgXCJDb2xsaW5cIixcbiAgICBcIkNvbm5lclwiLFxuICAgIFwiQ29ubm9yXCIsXG4gICAgXCJDb25zdGFudGluXCIsXG4gICAgXCJDb3J2aW5cIixcbiAgICBcIkN1cnRcIixcbiAgICBcIkRhbWlhblwiLFxuICAgIFwiRGFtaWVuXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIkRhbmlsb1wiLFxuICAgIFwiRGFubnlcIixcbiAgICBcIkRhcmlhblwiLFxuICAgIFwiRGFyaW9cIixcbiAgICBcIkRhcml1c1wiLFxuICAgIFwiRGFycmVuXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiRGF2aWRlXCIsXG4gICAgXCJEYXZpblwiLFxuICAgIFwiRGVhblwiLFxuICAgIFwiRGVuaXpcIixcbiAgICBcIkRlbm5pc1wiLFxuICAgIFwiRGVubnlcIixcbiAgICBcIkRldmluXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRGlvblwiLFxuICAgIFwiRG9tZW5pY1wiLFxuICAgIFwiRG9tZW5pa1wiLFxuICAgIFwiRG9taW5pY1wiLFxuICAgIFwiRG9taW5pa1wiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJEdXN0aW5cIixcbiAgICBcIkR5bGFuXCIsXG4gICAgXCJFY3JpblwiLFxuICAgIFwiRWRkaVwiLFxuICAgIFwiRWRkeVwiLFxuICAgIFwiRWRnYXJcIixcbiAgICBcIkVkd2luXCIsXG4gICAgXCJFZmVcIixcbiAgICBcIkVnZVwiLFxuICAgIFwiRWxpYVwiLFxuICAgIFwiRWxpYWhcIixcbiAgICBcIkVsaWFzXCIsXG4gICAgXCJFbGlqYWhcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtaWxpYW5cIixcbiAgICBcIkVtaWxpb1wiLFxuICAgIFwiRW1pclwiLFxuICAgIFwiRW1pcmhhblwiLFxuICAgIFwiRW1yZVwiLFxuICAgIFwiRW5lc1wiLFxuICAgIFwiRW5ub1wiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFcmVuXCIsXG4gICAgXCJFcmljXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJFdGllbm5lXCIsXG4gICAgXCJGYWJpYW5cIixcbiAgICBcIkZhYmllblwiLFxuICAgIFwiRmFiaW9cIixcbiAgICBcIkZhYnJpY2VcIixcbiAgICBcIkZhbGtcIixcbiAgICBcIkZlbGl4XCIsXG4gICAgXCJGZXJkaW5hbmRcIixcbiAgICBcIkZpZXRlXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiRmlubGF5XCIsXG4gICAgXCJGaW5sZXlcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZpbm5sZXlcIixcbiAgICBcIkZsb3JpYW5cIixcbiAgICBcIkZyYW5jZXNjb1wiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyZWRlcmljXCIsXG4gICAgXCJGcmVkZXJpY2tcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaXR6XCIsXG4gICAgXCJGdXJrYW5cIixcbiAgICBcIkZ5bm5cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlb3JnXCIsXG4gICAgXCJHZXJyaXRcIixcbiAgICBcIkdpYW5cIixcbiAgICBcIkdpYW5sdWNhXCIsXG4gICAgXCJHaW5vXCIsXG4gICAgXCJHaXVsaWFub1wiLFxuICAgIFwiR2l1c2VwcGVcIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiR3VzdGF2XCIsXG4gICAgXCJIYWdlblwiLFxuICAgIFwiSGFtemFcIixcbiAgICBcIkhhbm5lc1wiLFxuICAgIFwiSGFubm9cIixcbiAgICBcIkhhbnNcIixcbiAgICBcIkhhc2FuXCIsXG4gICAgXCJIYXNzYW5cIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIZW5kcmlrXCIsXG4gICAgXCJIZW5uZXNcIixcbiAgICBcIkhlbm5pbmdcIixcbiAgICBcIkhlbnJpXCIsXG4gICAgXCJIZW5yaWNrXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJIdXNzZWluXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklicmFoaW1cIixcbiAgICBcIklsaWFzXCIsXG4gICAgXCJJbGphXCIsXG4gICAgXCJJbHlhc1wiLFxuICAgIFwiSW1tYW51ZWxcIixcbiAgICBcIklzbWFlbFwiLFxuICAgIFwiSXNtYWlsXCIsXG4gICAgXCJJdmFuXCIsXG4gICAgXCJJdmVuXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSmFkZW5cIixcbiAgICBcIkpha29iXCIsXG4gICAgXCJKYW1hbFwiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW5cIixcbiAgICBcIkphbmVrXCIsXG4gICAgXCJKYW5pc1wiLFxuICAgIFwiSmFubmVcIixcbiAgICBcIkphbm5la1wiLFxuICAgIFwiSmFubmVzXCIsXG4gICAgXCJKYW5uaWtcIixcbiAgICBcIkphbm5pc1wiLFxuICAgIFwiSmFub1wiLFxuICAgIFwiSmFub3NjaFwiLFxuICAgIFwiSmFyZWRcIixcbiAgICBcIkphcmlcIixcbiAgICBcIkphcm5lXCIsXG4gICAgXCJKYXJub1wiLFxuICAgIFwiSmFyb25cIixcbiAgICBcIkphc29uXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJKYXlzb25cIixcbiAgICBcIkplYW5cIixcbiAgICBcIkplbnNcIixcbiAgICBcIkplcmVtaWFzXCIsXG4gICAgXCJKZXJlbWllXCIsXG4gICAgXCJKZXJlbXlcIixcbiAgICBcIkplcm1haW5lXCIsXG4gICAgXCJKZXJvbWVcIixcbiAgICBcIkplc3BlclwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkppbVwiLFxuICAgIFwiSmltbXlcIixcbiAgICBcIkpvZVwiLFxuICAgIFwiSm9lbFwiLFxuICAgIFwiSm9leVwiLFxuICAgIFwiSm9oYW5uXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9obm55XCIsXG4gICAgXCJKb25cIixcbiAgICBcIkpvbmFcIixcbiAgICBcIkpvbmFoXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkpvbnRlXCIsXG4gICAgXCJKb29zdFwiLFxuICAgIFwiSm9yZGFuXCIsXG4gICAgXCJKb3Jpc1wiLFxuICAgIFwiSm9zY2hhXCIsXG4gICAgXCJKb3NjaHVhXCIsXG4gICAgXCJKb3NlZlwiLFxuICAgIFwiSm9zZXBoXCIsXG4gICAgXCJKb3NoXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIkpvc3VhXCIsXG4gICAgXCJKdWFuXCIsXG4gICAgXCJKdWxpYW5cIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiSnVsaXVzXCIsXG4gICAgXCJKdXJpXCIsXG4gICAgXCJKdXN0aW5cIixcbiAgICBcIkp1c3R1c1wiLFxuICAgIFwiS2FhblwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJLYWxsZVwiLFxuICAgIFwiS2FyaW1cIixcbiAgICBcIkthcmxcIixcbiAgICBcIkthcmxvXCIsXG4gICAgXCJLYXlcIixcbiAgICBcIktlYW51XCIsXG4gICAgXCJLZW5hblwiLFxuICAgIFwiS2VubnlcIixcbiAgICBcIktlbm9cIixcbiAgICBcIktlcmVtXCIsXG4gICAgXCJLZXJpbVwiLFxuICAgIFwiS2V2aW5cIixcbiAgICBcIktpYW5cIixcbiAgICBcIktpbGlhblwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1pXCIsXG4gICAgXCJLamVsbFwiLFxuICAgIFwiS2xhYXNcIixcbiAgICBcIktsZW1lbnNcIixcbiAgICBcIktvbnJhZFwiLFxuICAgIFwiS29uc3RhbnRpblwiLFxuICAgIFwiS29yYXlcIixcbiAgICBcIktvcmJpbmlhblwiLFxuICAgIFwiS3VydFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiTGFzc2VcIixcbiAgICBcIkxhdXJlbmNlXCIsXG4gICAgXCJMYXVyZW5zXCIsXG4gICAgXCJMYXVyZW56XCIsXG4gICAgXCJMYXVyaW5cIixcbiAgICBcIkxlYW5cIixcbiAgICBcIkxlYW5kZXJcIixcbiAgICBcIkxlYW5kcm9cIixcbiAgICBcIkxlaWZcIixcbiAgICBcIkxlblwiLFxuICAgIFwiTGVublwiLFxuICAgIFwiTGVubmFyZFwiLFxuICAgIFwiTGVubmFydFwiLFxuICAgIFwiTGVubmVydFwiLFxuICAgIFwiTGVubmllXCIsXG4gICAgXCJMZW5ub3hcIixcbiAgICBcIkxlbm55XCIsXG4gICAgXCJMZW9cIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25hcmRvXCIsXG4gICAgXCJMZW9uaGFyZFwiLFxuICAgIFwiTGVvbmlkYXNcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkxlcm95XCIsXG4gICAgXCJMZXZlbnRcIixcbiAgICBcIkxldmlcIixcbiAgICBcIkxldmluXCIsXG4gICAgXCJMZXdpblwiLFxuICAgIFwiTGV3aXNcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkxpYW5cIixcbiAgICBcIkxpYXNcIixcbiAgICBcIkxpbm9cIixcbiAgICBcIkxpbnVzXCIsXG4gICAgXCJMaW9cIixcbiAgICBcIkxpb25cIixcbiAgICBcIkxpb25lbFwiLFxuICAgIFwiTG9nYW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTG9yaXNcIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJMdWFuXCIsXG4gICAgXCJMdWNcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWNpYW5cIixcbiAgICBcIkx1Y2llblwiLFxuICAgIFwiTHVkd2lnXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWl6XCIsXG4gICAgXCJMdWtcIixcbiAgICBcIkx1a2FcIixcbiAgICBcIkx1a2FzXCIsXG4gICAgXCJMdWtlXCIsXG4gICAgXCJMdXR6XCIsXG4gICAgXCJNYWRkb3hcIixcbiAgICBcIk1hZHNcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFpa1wiLFxuICAgIFwiTWFrc2ltXCIsXG4gICAgXCJNYWxpa1wiLFxuICAgIFwiTWFsdGVcIixcbiAgICBcIk1hbnVlbFwiLFxuICAgIFwiTWFyY1wiLFxuICAgIFwiTWFyY2VsXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyY3VzXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFyaWFuXCIsXG4gICAgXCJNYXJpb1wiLFxuICAgIFwiTWFyaXVzXCIsXG4gICAgXCJNYXJrXCIsXG4gICAgXCJNYXJrb1wiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXJsb1wiLFxuICAgIFwiTWFybG9uXCIsXG4gICAgXCJNYXJ0ZW5cIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXJ3aW5cIixcbiAgICBcIk1hdGVvXCIsXG4gICAgXCJNYXRoaXNcIixcbiAgICBcIk1hdGlzXCIsXG4gICAgXCJNYXRzXCIsXG4gICAgXCJNYXR0ZW9cIixcbiAgICBcIk1hdHRlc1wiLFxuICAgIFwiTWF0dGhpYXNcIixcbiAgICBcIk1hdHRoaXNcIixcbiAgICBcIk1hdHRpXCIsXG4gICAgXCJNYXR0aXNcIixcbiAgICBcIk1hdXJpY2VcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWF4aW1cIixcbiAgICBcIk1heGltaWxpYW5cIixcbiAgICBcIk1laG1ldFwiLFxuICAgIFwiTWVpa1wiLFxuICAgIFwiTWVsdmluXCIsXG4gICAgXCJNZXJsaW5cIixcbiAgICBcIk1lcnRcIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWlja1wiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWthXCIsXG4gICAgXCJNaWthaWxcIixcbiAgICBcIk1pa2VcIixcbiAgICBcIk1pbGFuXCIsXG4gICAgXCJNaWxvXCIsXG4gICAgXCJNaW9cIixcbiAgICBcIk1pcmFjXCIsXG4gICAgXCJNaXJjb1wiLFxuICAgIFwiTWlya29cIixcbiAgICBcIk1vaGFtZWRcIixcbiAgICBcIk1vaGFtbWFkXCIsXG4gICAgXCJNb2hhbW1lZFwiLFxuICAgIFwiTW9yaXR6XCIsXG4gICAgXCJNb3J0ZW5cIixcbiAgICBcIk11aGFtbWVkXCIsXG4gICAgXCJNdXJhdFwiLFxuICAgIFwiTXVzdGFmYVwiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJOYXRoYW5hZWxcIixcbiAgICBcIk5lbHNvblwiLFxuICAgIFwiTmVvXCIsXG4gICAgXCJOZXZpb1wiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmljbGFzXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOaWNvbGFpXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOaWVsc1wiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWtsYXNcIixcbiAgICBcIk5pa29cIixcbiAgICBcIk5pa29sYWlcIixcbiAgICBcIk5pa29sYXNcIixcbiAgICBcIk5pbHNcIixcbiAgICBcIk5pbm9cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIk5vZWxcIixcbiAgICBcIk5vcm1hblwiLFxuICAgIFwiT2RpblwiLFxuICAgIFwiT2tlXCIsXG4gICAgXCJPbGVcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiT21hclwiLFxuICAgIFwiT251clwiLFxuICAgIFwiT3NjYXJcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJQYXNjYWxcIixcbiAgICBcIlBhdHJpY2VcIixcbiAgICBcIlBhdHJpY2tcIixcbiAgICBcIlBhdWxcIixcbiAgICBcIlBlZXJcIixcbiAgICBcIlBlcGVcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQaGlsXCIsXG4gICAgXCJQaGlsaXBcIixcbiAgICBcIlBoaWxpcHBcIixcbiAgICBcIlBpZXJyZVwiLFxuICAgIFwiUGlldFwiLFxuICAgIFwiUGl0XCIsXG4gICAgXCJQaXVzXCIsXG4gICAgXCJRdWVudGluXCIsXG4gICAgXCJRdWlyaW5cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFpa1wiLFxuICAgIFwiUmFtb25cIixcbiAgICBcIlJhcGhhZWxcIixcbiAgICBcIlJhc211c1wiLFxuICAgIFwiUmF1bFwiLFxuICAgIFwiUmF5YW5cIixcbiAgICBcIlJlbsOpXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSaWNjYXJkb1wiLFxuICAgIFwiUmljaGFyZFwiLFxuICAgIFwiUmlja1wiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2JpblwiLFxuICAgIFwiUm9jY29cIixcbiAgICBcIlJvbWFuXCIsXG4gICAgXCJSb21lb1wiLFxuICAgIFwiUm9uXCIsXG4gICAgXCJSdWJlblwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiU2FpZFwiLFxuICAgIFwiU2FsaWhcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiU2FtaVwiLFxuICAgIFwiU2FtbXlcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiU2FuZHJvXCIsXG4gICAgXCJTYW50aW5vXCIsXG4gICAgXCJTYXNjaGFcIixcbiAgICBcIlNlYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiU2VsaW1cIixcbiAgICBcIlNlbWloXCIsXG4gICAgXCJTaGF3blwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlNpbWVvblwiLFxuICAgIFwiU2ltb25cIixcbiAgICBcIlNpbmFuXCIsXG4gICAgXCJTa3lcIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiU3RlZmZlblwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3RldmVcIixcbiAgICBcIlN0ZXZlblwiLFxuICAgIFwiU3ZlblwiLFxuICAgIFwiU8O2bmtlXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlRhaGFcIixcbiAgICBcIlRhbWlub1wiLFxuICAgIFwiVGFtbW9cIixcbiAgICBcIlRhcmlrXCIsXG4gICAgXCJUYXlsZXJcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiVGVvXCIsXG4gICAgXCJUaGVvXCIsXG4gICAgXCJUaGVvZG9yXCIsXG4gICAgXCJUaGllc1wiLFxuICAgIFwiVGhpbG9cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiVGhvcmJlblwiLFxuICAgIFwiVGhvcmVcIixcbiAgICBcIlRob3JnZVwiLFxuICAgIFwiVGlhZ29cIixcbiAgICBcIlRpbFwiLFxuICAgIFwiVGlsbFwiLFxuICAgIFwiVGlsbG1hbm5cIixcbiAgICBcIlRpbVwiLFxuICAgIFwiVGltbVwiLFxuICAgIFwiVGltb1wiLFxuICAgIFwiVGltb25cIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRpbm9cIixcbiAgICBcIlRpdHVzXCIsXG4gICAgXCJUaXppYW5cIixcbiAgICBcIlRqYXJrXCIsXG4gICAgXCJUb2JpYXNcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiVG9tbXlcIixcbiAgICBcIlRvbmlcIixcbiAgICBcIlRvbnlcIixcbiAgICBcIlRvcmJlblwiLFxuICAgIFwiVG9yZVwiLFxuICAgIFwiVHJpc3RhblwiLFxuICAgIFwiVHlsZXJcIixcbiAgICBcIlR5cm9uXCIsXG4gICAgXCJVbXV0XCIsXG4gICAgXCJWYWxlbnRpblwiLFxuICAgIFwiVmFsZW50aW5vXCIsXG4gICAgXCJWZWl0XCIsXG4gICAgXCJWaWN0b3JcIixcbiAgICBcIlZpa3RvclwiLFxuICAgIFwiVmluXCIsXG4gICAgXCJWaW5jZW50XCIsXG4gICAgXCJWaXRvXCIsXG4gICAgXCJWaXR1c1wiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsbGlcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIldpbGx5XCIsXG4gICAgXCJYYXZlclwiLFxuICAgIFwiWWFubmljXCIsXG4gICAgXCJZYW5uaWNrXCIsXG4gICAgXCJZYW5uaWtcIixcbiAgICBcIllhbm5pc1wiLFxuICAgIFwiWWFzaW5cIixcbiAgICBcIllvdXNzZWZcIixcbiAgICBcIll1bnVzXCIsXG4gICAgXCJZdXN1ZlwiLFxuICAgIFwiWXZlblwiLFxuICAgIFwiWXZlc1wiLFxuICAgIFwiw5ZtZXJcIixcbiAgICBcIkFhbGl5YWhcIixcbiAgICBcIkFiYnlcIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIkFkYVwiLFxuICAgIFwiQWRlbGluYVwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWlsZWVuXCIsXG4gICAgXCJBaW1lZVwiLFxuICAgIFwiQWxhbmFcIixcbiAgICBcIkFsZWFcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJBbGVzc2FcIixcbiAgICBcIkFsZXNzaWFcIixcbiAgICBcIkFsZXhhXCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkFsZXhpYVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJBbGV5bmFcIixcbiAgICBcIkFsaWFcIixcbiAgICBcIkFsaWNhXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiQWxpY2lhXCIsXG4gICAgXCJBbGluYVwiLFxuICAgIFwiQWxpc2FcIixcbiAgICBcIkFsaXNoYVwiLFxuICAgIFwiQWxpc3NhXCIsXG4gICAgXCJBbGl5YVwiLFxuICAgIFwiQWxpeWFoXCIsXG4gICAgXCJBbGxlZ3JhXCIsXG4gICAgXCJBbG1hXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbWVsaWFcIixcbiAgICBcIkFtZWxpZVwiLFxuICAgIFwiQW1pbmFcIixcbiAgICBcIkFtaXJhXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFuYVwiLFxuICAgIFwiQW5hYmVsXCIsXG4gICAgXCJBbmFzdGFzaWFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJBbmdlbGluYVwiLFxuICAgIFwiQW5nZWxpcXVlXCIsXG4gICAgXCJBbmphXCIsXG4gICAgXCJBbm5cIixcbiAgICBcIkFubmFcIixcbiAgICBcIkFubmFiZWxcIixcbiAgICBcIkFubmFiZWxsXCIsXG4gICAgXCJBbm5hYmVsbGVcIixcbiAgICBcIkFubmFsZW5hXCIsXG4gICAgXCJBbm5lXCIsXG4gICAgXCJBbm5la2VcIixcbiAgICBcIkFubmVsaWVcIixcbiAgICBcIkFubmVtYXJpZVwiLFxuICAgIFwiQW5uaVwiLFxuICAgIFwiQW5uaWVcIixcbiAgICBcIkFubmlrYVwiLFxuICAgIFwiQW5ueVwiLFxuICAgIFwiQW5vdWtcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuYVwiLFxuICAgIFwiQXJpYW5lXCIsXG4gICAgXCJBcndlblwiLFxuICAgIFwiQXNobGV5XCIsXG4gICAgXCJBc3lhXCIsXG4gICAgXCJBdXJlbGlhXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkF2YVwiLFxuICAgIFwiQXlsZWVuXCIsXG4gICAgXCJBeWxpblwiLFxuICAgIFwiQXlzZVwiLFxuICAgIFwiQXpyYVwiLFxuICAgIFwiQmV0dHlcIixcbiAgICBcIkJpYW5jYVwiLFxuICAgIFwiQmlhbmthXCIsXG4gICAgXCJDYWl0bGluXCIsXG4gICAgXCJDYXJhXCIsXG4gICAgXCJDYXJpbmFcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJDYXJsb3R0YVwiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJvbGluXCIsXG4gICAgXCJDYXJvbGluYVwiLFxuICAgIFwiQ2Fyb2xpbmVcIixcbiAgICBcIkNhc3NhbmRyYVwiLFxuICAgIFwiQ2F0aGFyaW5hXCIsXG4gICAgXCJDYXRyaW5cIixcbiAgICBcIkNlY2lsZVwiLFxuICAgIFwiQ2VjaWxpYVwiLFxuICAgIFwiQ2VsaWFcIixcbiAgICBcIkNlbGluYVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJDZXlkYVwiLFxuICAgIFwiQ2V5bGluXCIsXG4gICAgXCJDaGFudGFsXCIsXG4gICAgXCJDaGFybGVlblwiLFxuICAgIFwiQ2hhcmxvdHRhXCIsXG4gICAgXCJDaGFybG90dGVcIixcbiAgICBcIkNoYXllbm5lXCIsXG4gICAgXCJDaGV5ZW5uZVwiLFxuICAgIFwiQ2hpYXJhXCIsXG4gICAgXCJDaHJpc3RpblwiLFxuICAgIFwiQ2hyaXN0aW5hXCIsXG4gICAgXCJDaW5keVwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiQ2xhcmlzc2FcIixcbiAgICBcIkNvbGxlZW5cIixcbiAgICBcIkNvbGxpZW5cIixcbiAgICBcIkNvcmFcIixcbiAgICBcIkNvcmlubmFcIixcbiAgICBcIkNvc2ltYVwiLFxuICAgIFwiRGFuYVwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiRGFyaWFcIixcbiAgICBcIkRhcmxlZW5cIixcbiAgICBcIkRlZm5lXCIsXG4gICAgXCJEZWxpYVwiLFxuICAgIFwiRGVuaXNlXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGlsYXJhXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEb3JvdGhlYVwiLFxuICAgIFwiRWNyaW5cIixcbiAgICBcIkVkYVwiLFxuICAgIFwiRWlsZWVuXCIsXG4gICAgXCJFbGFcIixcbiAgICBcIkVsYWluZVwiLFxuICAgIFwiRWxhbnVyXCIsXG4gICAgXCJFbGVhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxlbmlcIixcbiAgICBcIkVsZW9ub3JhXCIsXG4gICAgXCJFbGlhbmFcIixcbiAgICBcIkVsaWZcIixcbiAgICBcIkVsaW5hXCIsXG4gICAgXCJFbGlzYVwiLFxuICAgIFwiRWxpc2FiZXRoXCIsXG4gICAgXCJFbGxhXCIsXG4gICAgXCJFbGxlblwiLFxuICAgIFwiRWxsaVwiLFxuICAgIFwiRWxseVwiLFxuICAgIFwiRWxzYVwiLFxuICAgIFwiRW1lbGllXCIsXG4gICAgXCJFbWVseVwiLFxuICAgIFwiRW1pbGlhXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkVtaWx5XCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJFbW1lbHlcIixcbiAgICBcIkVtbWlcIixcbiAgICBcIkVtbXlcIixcbiAgICBcIkVuaWVcIixcbiAgICBcIkVubmFcIixcbiAgICBcIkVueWFcIixcbiAgICBcIkVzbWFcIixcbiAgICBcIkVzdGVsbGVcIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJFdmVsaW5cIixcbiAgICBcIkV2ZWxpbmFcIixcbiAgICBcIkV2ZWxpbmVcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiRmFiaWVubmVcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmF0bWFcIixcbiAgICBcIkZlbGljaWFcIixcbiAgICBcIkZlbGljaXRhc1wiLFxuICAgIFwiRmVsaW5hXCIsXG4gICAgXCJGZW1rZVwiLFxuICAgIFwiRmVuamFcIixcbiAgICBcIkZpbmVcIixcbiAgICBcIkZpbmlhXCIsXG4gICAgXCJGaW5qYVwiLFxuICAgIFwiRmlubmphXCIsXG4gICAgXCJGaW9uYVwiLFxuICAgIFwiRmxvcmFcIixcbiAgICBcIkZsb3JlbnRpbmVcIixcbiAgICBcIkZyYW5jZXNjYVwiLFxuICAgIFwiRnJhbmthXCIsXG4gICAgXCJGcmFuemlza2FcIixcbiAgICBcIkZyZWRlcmlrZVwiLFxuICAgIFwiRnJleWFcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJGcmllZGFcIixcbiAgICBcIkZyaWVkZXJpa2VcIixcbiAgICBcIkdpYWRhXCIsXG4gICAgXCJHaW5hXCIsXG4gICAgXCJHaXVsaWFcIixcbiAgICBcIkdpdWxpYW5hXCIsXG4gICAgXCJHcmV0YVwiLFxuICAgIFwiSGFpbGV5XCIsXG4gICAgXCJIYW5hXCIsXG4gICAgXCJIYW5uYVwiLFxuICAgIFwiSGFubmFoXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiSGVsZW5cIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJIZWxpblwiLFxuICAgIFwiSGVucmlldHRlXCIsXG4gICAgXCJIZW5yaWtlXCIsXG4gICAgXCJIZXJtaW5lXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIklsYXlkYVwiLFxuICAgIFwiSW1rZVwiLFxuICAgIFwiSW5hXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJJbmdhXCIsXG4gICAgXCJJbmthXCIsXG4gICAgXCJJcmVtXCIsXG4gICAgXCJJc2FcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNhYmVsbFwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIklzYWJlbGxlXCIsXG4gICAgXCJJdm9ubmVcIixcbiAgICBcIkphY3F1ZWxpbmVcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW1pbGFcIixcbiAgICBcIkphbmFcIixcbiAgICBcIkphbmVcIixcbiAgICBcIkphbmluXCIsXG4gICAgXCJKYW5pbmFcIixcbiAgICBcIkphbmluZVwiLFxuICAgIFwiSmFubmFcIixcbiAgICBcIkphbm5lXCIsXG4gICAgXCJKYXJhXCIsXG4gICAgXCJKYXNtaW5cIixcbiAgICBcIkphc21pbmFcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkplbGxhXCIsXG4gICAgXCJKZW5uYVwiLFxuICAgIFwiSmVubmlmZXJcIixcbiAgICBcIkplbm55XCIsXG4gICAgXCJKZXNzaWNhXCIsXG4gICAgXCJKZXNzeVwiLFxuICAgIFwiSmV0dGVcIixcbiAgICBcIkppbFwiLFxuICAgIFwiSmlsbFwiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkpvYW5uYVwiLFxuICAgIFwiSm9lbGluYVwiLFxuICAgIFwiSm9lbGluZVwiLFxuICAgIFwiSm9lbGxlXCIsXG4gICAgXCJKb2hhbm5hXCIsXG4gICAgXCJKb2xlZW5cIixcbiAgICBcIkpvbGllXCIsXG4gICAgXCJKb2xpZW5cIixcbiAgICBcIkpvbGluXCIsXG4gICAgXCJKb2xpbmFcIixcbiAgICBcIkpvbGluZVwiLFxuICAgIFwiSm9uYVwiLFxuICAgIFwiSm9uYWhcIixcbiAgICBcIkpvbm5hXCIsXG4gICAgXCJKb3NlZmluXCIsXG4gICAgXCJKb3NlZmluZVwiLFxuICAgIFwiSm9zZXBoaW5cIixcbiAgICBcIkpvc2VwaGluZVwiLFxuICAgIFwiSm9zaWVcIixcbiAgICBcIkpvc3lcIixcbiAgICBcIkpveVwiLFxuICAgIFwiSm95Y2VcIixcbiAgICBcIkp1ZGl0aFwiLFxuICAgIFwiSnVkeVwiLFxuICAgIFwiSnVsZVwiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhbmFcIixcbiAgICBcIkp1bGlhbmVcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJKdWxpZW5uZVwiLFxuICAgIFwiSnVsaWthXCIsXG4gICAgXCJKdWxpbmFcIixcbiAgICBcIkp1bmFcIixcbiAgICBcIkp1c3RpbmVcIixcbiAgICBcIkthamFcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiS2FybGFcIixcbiAgICBcIkthcmxvdHRhXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiS2Fyb2xpbmVcIixcbiAgICBcIkthc3NhbmRyYVwiLFxuICAgIFwiS2F0YXJpbmFcIixcbiAgICBcIkthdGhhcmluYVwiLFxuICAgIFwiS2F0aHJpblwiLFxuICAgIFwiS2F0amFcIixcbiAgICBcIkthdHJpblwiLFxuICAgIFwiS2F5YVwiLFxuICAgIFwiS2F5cmFcIixcbiAgICBcIktpYW5hXCIsXG4gICAgXCJLaWFyYVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1iZXJsZXlcIixcbiAgICBcIktpbWJlcmx5XCIsXG4gICAgXCJLaXJhXCIsXG4gICAgXCJLbGFyYVwiLFxuICAgIFwiS29yaW5uYVwiLFxuICAgIFwiS3Jpc3RpblwiLFxuICAgIFwiS3lyYVwiLFxuICAgIFwiTGFpbGFcIixcbiAgICBcIkxhbmFcIixcbiAgICBcIkxhcmFcIixcbiAgICBcIkxhcmlzc2FcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMYXVyZWVuXCIsXG4gICAgXCJMYXZpbmlhXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlYWhcIixcbiAgICBcIkxlYW5hXCIsXG4gICAgXCJMZWFuZHJhXCIsXG4gICAgXCJMZWFublwiLFxuICAgIFwiTGVlXCIsXG4gICAgXCJMZWlsYVwiLFxuICAgIFwiTGVuYVwiLFxuICAgIFwiTGVuZVwiLFxuICAgIFwiTGVuaVwiLFxuICAgIFwiTGVuaWFcIixcbiAgICBcIkxlbmphXCIsXG4gICAgXCJMZW55YVwiLFxuICAgIFwiTGVvbmFcIixcbiAgICBcIkxlb25pXCIsXG4gICAgXCJMZW9uaWVcIixcbiAgICBcIkxlb25vcmFcIixcbiAgICBcIkxldGljaWFcIixcbiAgICBcIkxldGl6aWFcIixcbiAgICBcIkxldmtlXCIsXG4gICAgXCJMZXlsYVwiLFxuICAgIFwiTGlhXCIsXG4gICAgXCJMaWFoXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTGlsaVwiLFxuICAgIFwiTGlsaWFcIixcbiAgICBcIkxpbGlhblwiLFxuICAgIFwiTGlsaWFuYVwiLFxuICAgIFwiTGlsaXRoXCIsXG4gICAgXCJMaWxsaVwiLFxuICAgIFwiTGlsbGlhblwiLFxuICAgIFwiTGlsbHlcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIkxpbmFcIixcbiAgICBcIkxpbmRhXCIsXG4gICAgXCJMaW5kc2F5XCIsXG4gICAgXCJMaW5lXCIsXG4gICAgXCJMaW5uXCIsXG4gICAgXCJMaW5uZWFcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxpc2FublwiLFxuICAgIFwiTGlzYW5uZVwiLFxuICAgIFwiTGl2XCIsXG4gICAgXCJMaXZpYVwiLFxuICAgIFwiTGl6XCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJMb3JlZW5cIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG90dGFcIixcbiAgICBcIkxvdHRlXCIsXG4gICAgXCJMb3Vpc2FcIixcbiAgICBcIkxvdWlzZVwiLFxuICAgIFwiTHVhbmFcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiTHVjaWVubmVcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkx1aXNhXCIsXG4gICAgXCJMdWlzZVwiLFxuICAgIFwiTHVrYVwiLFxuICAgIFwiTHVuYVwiLFxuICAgIFwiTHV6aWVcIixcbiAgICBcIkx5YVwiLFxuICAgIFwiTHlkaWFcIixcbiAgICBcIkx5blwiLFxuICAgIFwiTHlublwiLFxuICAgIFwiTWFkZWxlaW5lXCIsXG4gICAgXCJNYWRpdGFcIixcbiAgICBcIk1hZGxlZW5cIixcbiAgICBcIk1hZGxlblwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYWlrZVwiLFxuICAgIFwiTWFpbGluXCIsXG4gICAgXCJNYWlyYVwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiTWFsZW5hXCIsXG4gICAgXCJNYWxpYVwiLFxuICAgIFwiTWFsaW5cIixcbiAgICBcIk1hbGluYVwiLFxuICAgIFwiTWFuZHlcIixcbiAgICBcIk1hcmFcIixcbiAgICBcIk1hcmFoXCIsXG4gICAgXCJNYXJlaWtlXCIsXG4gICAgXCJNYXJlblwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhbVwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIk1hcmlla2VcIixcbiAgICBcIk1hcmllbGxhXCIsXG4gICAgXCJNYXJpa2FcIixcbiAgICBcIk1hcmluYVwiLFxuICAgIFwiTWFyaXNhXCIsXG4gICAgXCJNYXJpc3NhXCIsXG4gICAgXCJNYXJpdFwiLFxuICAgIFwiTWFybGFcIixcbiAgICBcIk1hcmxlZW5cIixcbiAgICBcIk1hcmxlblwiLFxuICAgIFwiTWFybGVuYVwiLFxuICAgIFwiTWFybGVuZVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIk1hcnRoYVwiLFxuICAgIFwiTWFyeVwiLFxuICAgIFwiTWFyeWFtXCIsXG4gICAgXCJNYXRoaWxkYVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIk1heGlcIixcbiAgICBcIk1heGltYVwiLFxuICAgIFwiTWF4aW5lXCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJNYXlyYVwiLFxuICAgIFwiTWVkaW5hXCIsXG4gICAgXCJNZWRpbmVcIixcbiAgICBcIk1laWtlXCIsXG4gICAgXCJNZWxhbmllXCIsXG4gICAgXCJNZWxla1wiLFxuICAgIFwiTWVsaWtlXCIsXG4gICAgXCJNZWxpbmFcIixcbiAgICBcIk1lbGluZGFcIixcbiAgICBcIk1lbGlzXCIsXG4gICAgXCJNZWxpc2FcIixcbiAgICBcIk1lbGlzc2FcIixcbiAgICBcIk1lcmxlXCIsXG4gICAgXCJNZXJ2ZVwiLFxuICAgIFwiTWVyeWVtXCIsXG4gICAgXCJNZXR0ZVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiTWljaGVsbGVcIixcbiAgICBcIk1pZWtlXCIsXG4gICAgXCJNaWxhXCIsXG4gICAgXCJNaWxhbmFcIixcbiAgICBcIk1pbGVuYVwiLFxuICAgIFwiTWlsbGFcIixcbiAgICBcIk1pbmFcIixcbiAgICBcIk1pcmFcIixcbiAgICBcIk1pcmF5XCIsXG4gICAgXCJNaXJpYW1cIixcbiAgICBcIk1pcmphXCIsXG4gICAgXCJNb25hXCIsXG4gICAgXCJNb25pcXVlXCIsXG4gICAgXCJOYWRpbmVcIixcbiAgICBcIk5hZGphXCIsXG4gICAgXCJOYWVtaVwiLFxuICAgIFwiTmFuY3lcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJOYXRoYWxpZVwiLFxuICAgIFwiTmVlbGVcIixcbiAgICBcIk5lbGFcIixcbiAgICBcIk5lbGVcIixcbiAgICBcIk5lbGxpXCIsXG4gICAgXCJOZWxseVwiLFxuICAgIFwiTmlhXCIsXG4gICAgXCJOaWNvbGVcIixcbiAgICBcIk5pa2FcIixcbiAgICBcIk5pa2VcIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlsYVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTmlzYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIk9saXZpYVwiLFxuICAgIFwiUGF0cmljaWFcIixcbiAgICBcIlBhdHJpemlhXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGF1bGluYVwiLFxuICAgIFwiUGF1bGluZVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBoaWxpbmVcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiUGlhXCIsXG4gICAgXCJSYWhlbFwiLFxuICAgIFwiUmFuaWFcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJlYmVra2FcIixcbiAgICBcIlJpYW5hXCIsXG4gICAgXCJSaWVrZVwiLFxuICAgIFwiUmlrZVwiLFxuICAgIFwiUm9taW5hXCIsXG4gICAgXCJSb215XCIsXG4gICAgXCJSb25qYVwiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zYWxpZVwiLFxuICAgIFwiUnVieVwiLFxuICAgIFwiU2FicmluYVwiLFxuICAgIFwiU2FocmFcIixcbiAgICBcIlNhbGx5XCIsXG4gICAgXCJTYWxvbWVcIixcbiAgICBcIlNhbWFudGhhXCIsXG4gICAgXCJTYW1pYVwiLFxuICAgIFwiU2FtaXJhXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIlNhbmR5XCIsXG4gICAgXCJTYW5qYVwiLFxuICAgIFwiU2FwaGlyYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIlNhc2tpYVwiLFxuICAgIFwiU2VsaW5cIixcbiAgICBcIlNlbGluYVwiLFxuICAgIFwiU2VsbWFcIixcbiAgICBcIlNlbmFcIixcbiAgICBcIlNpZG5leVwiLFxuICAgIFwiU2llbm5hXCIsXG4gICAgXCJTaWxqYVwiLFxuICAgIFwiU2luYVwiLFxuICAgIFwiU2luamFcIixcbiAgICBcIlNtaWxsYVwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIlNvZmllXCIsXG4gICAgXCJTb25qYVwiLFxuICAgIFwiU29waGlhXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIlNvcmF5YVwiLFxuICAgIFwiU3RlZmFuaWVcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlcGhhbmllXCIsXG4gICAgXCJTdGluYVwiLFxuICAgIFwiU3VkZVwiLFxuICAgIFwiU3VtbWVyXCIsXG4gICAgXCJTdXNhbm5lXCIsXG4gICAgXCJTdmVhXCIsXG4gICAgXCJTdmVuamFcIixcbiAgICBcIlN5ZG5leVwiLFxuICAgIFwiVGFiZWFcIixcbiAgICBcIlRhbGVhXCIsXG4gICAgXCJUYWxpYVwiLFxuICAgIFwiVGFtYXJhXCIsXG4gICAgXCJUYW1pYVwiLFxuICAgIFwiVGFtaW5hXCIsXG4gICAgXCJUYW5qYVwiLFxuICAgIFwiVGFyYVwiLFxuICAgIFwiVGFyamFcIixcbiAgICBcIlRlcmVzYVwiLFxuICAgIFwiVGVzc2FcIixcbiAgICBcIlRoYWxlYVwiLFxuICAgIFwiVGhhbGlhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUaGVyZXNhXCIsXG4gICAgXCJUaWFcIixcbiAgICBcIlRpbmFcIixcbiAgICBcIlRvbWtlXCIsXG4gICAgXCJUdWFuYVwiLFxuICAgIFwiVmFsZW50aW5hXCIsXG4gICAgXCJWYWxlcmlhXCIsXG4gICAgXCJWYWxlcmllXCIsXG4gICAgXCJWYW5lc3NhXCIsXG4gICAgXCJWZXJhXCIsXG4gICAgXCJWZXJvbmlrYVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpa3RvcmlhXCIsXG4gICAgXCJWaW9sYVwiLFxuICAgIFwiVml2aWFuXCIsXG4gICAgXCJWaXZpZW5cIixcbiAgICBcIlZpdmllbm5lXCIsXG4gICAgXCJXaWJrZVwiLFxuICAgIFwiV2llYmtlXCIsXG4gICAgXCJYZW5pYVwiLFxuICAgIFwiWWFyYVwiLFxuICAgIFwiWWFyZW5cIixcbiAgICBcIllhc21pblwiLFxuICAgIFwiWWx2aVwiLFxuICAgIFwiWWx2aWVcIixcbiAgICBcIll2b25uZVwiLFxuICAgIFwiWmFyYVwiLFxuICAgIFwiWmVocmFcIixcbiAgICBcIlpleW5lcFwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJab2V5XCIsXG4gICAgXCJab8OpXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJlbFwiLFxuICAgIFwiQWJpY2h0XCIsXG4gICAgXCJBYnJhaGFtXCIsXG4gICAgXCJBYnJhbW92aWNcIixcbiAgICBcIkFidFwiLFxuICAgIFwiQWNoaWxsZXNcIixcbiAgICBcIkFjaGtpbmFkemVcIixcbiAgICBcIkFja2VybWFublwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiQWRhbXNcIixcbiAgICBcIkFkZVwiLFxuICAgIFwiQWdvc3RpbmlcIixcbiAgICBcIkFobGtlXCIsXG4gICAgXCJBaHJlbmJlcmdcIixcbiAgICBcIkFocmVuc1wiLFxuICAgIFwiQWlnbmVyXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsYnJlY2h0XCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGl6YWRlaFwiLFxuICAgIFwiQWxsZ2V5ZXJcIixcbiAgICBcIkFtYW5uXCIsXG4gICAgXCJBbWJlcmdcIixcbiAgICBcIkFuZGluZ1wiLFxuICAgIFwiQW5nZ3JlbnlcIixcbiAgICBcIkFwaXR6XCIsXG4gICAgXCJBcmVuZHRcIixcbiAgICBcIkFyZW5zXCIsXG4gICAgXCJBcm5kdFwiLFxuICAgIFwiQXJ5ZWVcIixcbiAgICBcIkFzY2hlbmJyb2ljaFwiLFxuICAgIFwiQXNzbXVzXCIsXG4gICAgXCJBc3RhZmVpXCIsXG4gICAgXCJBdWVyXCIsXG4gICAgXCJBeG1hbm5cIixcbiAgICBcIkJhYXJja1wiLFxuICAgIFwiQmFjaG1hbm5cIixcbiAgICBcIkJhZGFuZVwiLFxuICAgIFwiQmFkZXJcIixcbiAgICBcIkJhZ2FuelwiLFxuICAgIFwiQmFobFwiLFxuICAgIFwiQmFrXCIsXG4gICAgXCJCYWxjZXJcIixcbiAgICBcIkJhbGNrXCIsXG4gICAgXCJCYWxrb3dcIixcbiAgICBcIkJhbG51d2VpdFwiLFxuICAgIFwiQmFsemVyXCIsXG4gICAgXCJCYW5zZVwiLFxuICAgIFwiQmFyclwiLFxuICAgIFwiQmFydGVsc1wiLFxuICAgIFwiQmFydGhcIixcbiAgICBcIkJhcnlsbGFcIixcbiAgICBcIkJhc2VkYVwiLFxuICAgIFwiQmF0dGtlXCIsXG4gICAgXCJCYXVlclwiLFxuICAgIFwiQmF1ZXJtZWlzdGVyXCIsXG4gICAgXCJCYXVtYW5uXCIsXG4gICAgXCJCYXVtZWlzdGVyXCIsXG4gICAgXCJCYXVzY2hpbmdlclwiLFxuICAgIFwiQmF1c2Noa2VcIixcbiAgICBcIkJheWVyXCIsXG4gICAgXCJCZWF2b2d1aVwiLFxuICAgIFwiQmVja1wiLFxuICAgIFwiQmVja2VsXCIsXG4gICAgXCJCZWNrZXJcIixcbiAgICBcIkJlY2ttYW5uXCIsXG4gICAgXCJCZWRld2l0elwiLFxuICAgIFwiQmVlbGVcIixcbiAgICBcIkJlZXJcIixcbiAgICBcIkJlZ2dlcm93XCIsXG4gICAgXCJCZWhcIixcbiAgICBcIkJlaHJcIixcbiAgICBcIkJlaHJlbmJydWNoXCIsXG4gICAgXCJCZWx6XCIsXG4gICAgXCJCZW5kZXJcIixcbiAgICBcIkJlbmVja2VcIixcbiAgICBcIkJlbm5lclwiLFxuICAgIFwiQmVubmluZ2VyXCIsXG4gICAgXCJCZW56aW5nXCIsXG4gICAgXCJCZXJlbmRzXCIsXG4gICAgXCJCZXJnZXJcIixcbiAgICBcIkJlcm5lclwiLFxuICAgIFwiQmVybmluZ1wiLFxuICAgIFwiQmVydGVuYnJlaXRlclwiLFxuICAgIFwiQmVzdFwiLFxuICAgIFwiQmV0aGtlXCIsXG4gICAgXCJCZXR6XCIsXG4gICAgXCJCZXVzaGF1c2VuXCIsXG4gICAgXCJCZXV0ZWxzcGFjaGVyXCIsXG4gICAgXCJCZXllclwiLFxuICAgIFwiQmliYVwiLFxuICAgIFwiQmljaGxlclwiLFxuICAgIFwiQmlja2VsXCIsXG4gICAgXCJCaWVkZXJtYW5uXCIsXG4gICAgXCJCaWVsZXJcIixcbiAgICBcIkJpZWxlcnRcIixcbiAgICBcIkJpZW5hc2NoXCIsXG4gICAgXCJCaWVuaWFzXCIsXG4gICAgXCJCaWVzZW5iYWNoXCIsXG4gICAgXCJCaWdkZWxpXCIsXG4gICAgXCJCaXJrZW1leWVyXCIsXG4gICAgXCJCaXR0bmVyXCIsXG4gICAgXCJCbGFua1wiLFxuICAgIFwiQmxhc2NoZWtcIixcbiAgICBcIkJsYXNzbmVja1wiLFxuICAgIFwiQmxvY2hcIixcbiAgICBcIkJsb2Nod2l0elwiLFxuICAgIFwiQmxvY2toYXVzXCIsXG4gICAgXCJCbHVtXCIsXG4gICAgXCJCbHVtZVwiLFxuICAgIFwiQm9ja1wiLFxuICAgIFwiQm9kZVwiLFxuICAgIFwiQm9nZGFzaGluXCIsXG4gICAgXCJCb2dlbnJpZWRlclwiLFxuICAgIFwiQm9oZ2VcIixcbiAgICBcIkJvbG1cIixcbiAgICBcIkJvcmdzY2h1bHplXCIsXG4gICAgXCJCb3JrXCIsXG4gICAgXCJCb3JtYW5uXCIsXG4gICAgXCJCb3Juc2NoZXVlclwiLFxuICAgIFwiQm9ycm1hbm5cIixcbiAgICBcIkJvcnNjaFwiLFxuICAgIFwiQm9ydXNjaGV3c2tpXCIsXG4gICAgXCJCb3NcIixcbiAgICBcIkJvc2xlclwiLFxuICAgIFwiQm91cnJvdWFnXCIsXG4gICAgXCJCb3VzY2hlblwiLFxuICAgIFwiQm94aGFtbWVyXCIsXG4gICAgXCJCb3lkZVwiLFxuICAgIFwiQm96c2lrXCIsXG4gICAgXCJCcmFuZFwiLFxuICAgIFwiQnJhbmRlbmJ1cmdcIixcbiAgICBcIkJyYW5kaXNcIixcbiAgICBcIkJyYW5kdFwiLFxuICAgIFwiQnJhdWVyXCIsXG4gICAgXCJCcmF1blwiLFxuICAgIFwiQnJlaG1lclwiLFxuICAgIFwiQnJlaXRlbnN0ZWluXCIsXG4gICAgXCJCcmVtZXJcIixcbiAgICBcIkJyZW1zZXJcIixcbiAgICBcIkJyZW5uZXJcIixcbiAgICBcIkJyZXR0c2NobmVpZGVyXCIsXG4gICAgXCJCcmV1XCIsXG4gICAgXCJCcmV1ZXJcIixcbiAgICBcIkJyaWVzZW5pY2tcIixcbiAgICBcIkJyaW5nbWFublwiLFxuICAgIFwiQnJpbmttYW5uXCIsXG4gICAgXCJCcml4XCIsXG4gICAgXCJCcm9lbmluZ1wiLFxuICAgIFwiQnJvc2NoXCIsXG4gICAgXCJCcnVja21hbm5cIixcbiAgICBcIkJydWRlclwiLFxuICAgIFwiQnJ1aG5zXCIsXG4gICAgXCJCcnVubmVyXCIsXG4gICAgXCJCcnVuc1wiLFxuICAgIFwiQnLDpHV0aWdhbVwiLFxuICAgIFwiQnLDtm1tZVwiLFxuICAgIFwiQnLDvGdnbWFublwiLFxuICAgIFwiQnVjaGhvbHpcIixcbiAgICBcIkJ1Y2hydWNrZXJcIixcbiAgICBcIkJ1ZGVyXCIsXG4gICAgXCJCdWx0bWFublwiLFxuICAgIFwiQnVuamVzXCIsXG4gICAgXCJCdXJnZXJcIixcbiAgICBcIkJ1cmdoYWdlblwiLFxuICAgIFwiQnVya2hhcmRcIixcbiAgICBcIkJ1cmtoYXJkdFwiLFxuICAgIFwiQnVybWVpc3RlclwiLFxuICAgIFwiQnVzY2hcIixcbiAgICBcIkJ1c2NoYmF1bVwiLFxuICAgIFwiQnVzZW1hbm5cIixcbiAgICBcIkJ1c3NcIixcbiAgICBcIkJ1c3NlXCIsXG4gICAgXCJCdXNzbWFublwiLFxuICAgIFwiQnlyZFwiLFxuICAgIFwiQsOkY2tlclwiLFxuICAgIFwiQsO2aG1cIixcbiAgICBcIkLDtm5pc2NoXCIsXG4gICAgXCJCw7ZyZ2VsaW5nXCIsXG4gICAgXCJCw7ZybmVyXCIsXG4gICAgXCJCw7Z0dG5lclwiLFxuICAgIFwiQsO8Y2hlbGVcIixcbiAgICBcIkLDvGhsZXJcIixcbiAgICBcIkLDvGtlclwiLFxuICAgIFwiQsO8bmdlbmVyXCIsXG4gICAgXCJCw7xyZ2VyXCIsXG4gICAgXCJCw7xya2xlaW5cIixcbiAgICBcIkLDvHNjaGVyXCIsXG4gICAgXCJCw7x0dG5lclwiLFxuICAgIFwiQ2FtYXJhXCIsXG4gICAgXCJDYXJsb3dpdHpcIixcbiAgICBcIkNhcmxzb2huXCIsXG4gICAgXCJDYXNwYXJpXCIsXG4gICAgXCJDYXNwZXJzXCIsXG4gICAgXCJDaGFwcm9uXCIsXG4gICAgXCJDaHJpc3RcIixcbiAgICBcIkNpZXJwaW5za2lcIixcbiAgICBcIkNsYXJpdXNcIixcbiAgICBcIkNsZWVtXCIsXG4gICAgXCJDbGV2ZVwiLFxuICAgIFwiQ29cIixcbiAgICBcIkNvbnJhZFwiLFxuICAgIFwiQ29yZGVzXCIsXG4gICAgXCJDb3JuZWxzZW5cIixcbiAgICBcIkNvcnNcIixcbiAgICBcIkNvdHRoYXJkdFwiLFxuICAgIFwiQ3Jld3NcIixcbiAgICBcIkNyb25qw6RnZXJcIixcbiAgICBcIkNyb3Nza29mcFwiLFxuICAgIFwiRGFcIixcbiAgICBcIkRhaG1cIixcbiAgICBcIkRhaG1lblwiLFxuICAgIFwiRGFpbWVyXCIsXG4gICAgXCJEYW1hc2tlXCIsXG4gICAgXCJEYW5uZWJlcmdcIixcbiAgICBcIkRhbm5lclwiLFxuICAgIFwiRGF1YlwiLFxuICAgIFwiRGF1Ym5lclwiLFxuICAgIFwiRGF1ZHJpY2hcIixcbiAgICBcIkRhdWVyXCIsXG4gICAgXCJEYXVtXCIsXG4gICAgXCJEYXV0aFwiLFxuICAgIFwiRGF1dHplbmJlcmdcIixcbiAgICBcIkRlXCIsXG4gICAgXCJEZWNrZXJcIixcbiAgICBcIkRlY2tlcnRcIixcbiAgICBcIkRlZXJiZXJnXCIsXG4gICAgXCJEZWhtZWxcIixcbiAgICBcIkRlamFcIixcbiAgICBcIkRlbG9uZ2VcIixcbiAgICBcIkRlbXV0XCIsXG4gICAgXCJEZW5nbGVyXCIsXG4gICAgXCJEZW5uZXJcIixcbiAgICBcIkRlbnppbmdlclwiLFxuICAgIFwiRGVyclwiLFxuICAgIFwiRGVydG1hbm5cIixcbiAgICBcIkRldGhsb2ZmXCIsXG4gICAgXCJEZXVzY2hsZVwiLFxuICAgIFwiRGllY2ttYW5uXCIsXG4gICAgXCJEaWVkcmljaFwiLFxuICAgIFwiRGlla21hbm5cIixcbiAgICBcIkRpZW5lbFwiLFxuICAgIFwiRGllc1wiLFxuICAgIFwiRGlldHJpY2hcIixcbiAgICBcIkRpZXR6XCIsXG4gICAgXCJEaWV0enNjaFwiLFxuICAgIFwiRGllemVsXCIsXG4gICAgXCJEaWxsYVwiLFxuICAgIFwiRGluZ2Vsc3RlZHRcIixcbiAgICBcIkRpcHBsXCIsXG4gICAgXCJEaXR0bWFublwiLFxuICAgIFwiRGl0dG1hclwiLFxuICAgIFwiRGl0dG1lclwiLFxuICAgIFwiRGl4XCIsXG4gICAgXCJEb2JicnVuelwiLFxuICAgIFwiRG9ibGVyXCIsXG4gICAgXCJEb2hyaW5nXCIsXG4gICAgXCJEb2xjaFwiLFxuICAgIFwiRG9sZFwiLFxuICAgIFwiRG9tYnJvd3NraVwiLFxuICAgIFwiRG9uaWVcIixcbiAgICBcIkRvc2tvY3p5bnNraVwiLFxuICAgIFwiRHJhZ3VcIixcbiAgICBcIkRyZWNoc2xlclwiLFxuICAgIFwiRHJlZXNcIixcbiAgICBcIkRyZWhlclwiLFxuICAgIFwiRHJlaWVyXCIsXG4gICAgXCJEcmVpc3NpZ2Fja2VyXCIsXG4gICAgXCJEcmVzc2xlclwiLFxuICAgIFwiRHJld3NcIixcbiAgICBcIkR1bWFcIixcbiAgICBcIkR1dGtpZXdpY3pcIixcbiAgICBcIkR5ZXR0XCIsXG4gICAgXCJEeWx1c1wiLFxuICAgIFwiRMOkY2hlcnRcIixcbiAgICBcIkTDtmJlbFwiLFxuICAgIFwiRMO2cmluZ1wiLFxuICAgIFwiRMO2cm5lclwiLFxuICAgIFwiRMO2cnJlXCIsXG4gICAgXCJEw7xja1wiLFxuICAgIFwiRWJlcmhhcmRcIixcbiAgICBcIkViZXJoYXJkdFwiLFxuICAgIFwiRWNrZXJcIixcbiAgICBcIkVja2hhcmR0XCIsXG4gICAgXCJFZG9yaFwiLFxuICAgIFwiRWZmbGVyXCIsXG4gICAgXCJFZ2dlbm11ZWxsZXJcIixcbiAgICBcIkVobVwiLFxuICAgIFwiRWhtYW5uXCIsXG4gICAgXCJFaHJpZ1wiLFxuICAgIFwiRWljaFwiLFxuICAgIFwiRWljaG1hbm5cIixcbiAgICBcIkVpZmVydFwiLFxuICAgIFwiRWluZXJ0XCIsXG4gICAgXCJFaXNlbmxhdWVyXCIsXG4gICAgXCJFa3BvXCIsXG4gICAgXCJFbGJlXCIsXG4gICAgXCJFbGV5dGhcIixcbiAgICBcIkVsc3NcIixcbiAgICBcIkVtZXJ0XCIsXG4gICAgXCJFbW1lbG1hbm5cIixcbiAgICBcIkVuZGVyXCIsXG4gICAgXCJFbmdlbFwiLFxuICAgIFwiRW5nZWxlblwiLFxuICAgIFwiRW5nZWxtYW5uXCIsXG4gICAgXCJFcGxpbml1c1wiLFxuICAgIFwiRXJkbWFublwiLFxuICAgIFwiRXJoYXJkdFwiLFxuICAgIFwiRXJsZWlcIixcbiAgICBcIkVybVwiLFxuICAgIFwiRXJuc3RcIixcbiAgICBcIkVydGxcIixcbiAgICBcIkVyd2VzXCIsXG4gICAgXCJFc2Vud2VpblwiLFxuICAgIFwiRXNzZXJcIixcbiAgICBcIkV2ZXJzXCIsXG4gICAgXCJFdmVydHNcIixcbiAgICBcIkV3YWxkXCIsXG4gICAgXCJGYWhuZXJcIixcbiAgICBcIkZhbGxlclwiLFxuICAgIFwiRmFsdGVyXCIsXG4gICAgXCJGYXJiZXJcIixcbiAgICBcIkZhc3NiZW5kZXJcIixcbiAgICBcIkZhdWxoYWJlclwiLFxuICAgIFwiRmVocmlnXCIsXG4gICAgXCJGZWxkXCIsXG4gICAgXCJGZWxrZVwiLFxuICAgIFwiRmVsbGVyXCIsXG4gICAgXCJGZW5uZXJcIixcbiAgICBcIkZlbnNrZVwiLFxuICAgIFwiRmV1ZXJiYWNoXCIsXG4gICAgXCJGaWV0elwiLFxuICAgIFwiRmlnbFwiLFxuICAgIFwiRmlndXJhXCIsXG4gICAgXCJGaWxpcG93c2tpXCIsXG4gICAgXCJGaWxzaW5nZXJcIixcbiAgICBcIkZpbmNrZVwiLFxuICAgIFwiRmlua1wiLFxuICAgIFwiRmlua2VcIixcbiAgICBcIkZpc2NoZXJcIixcbiAgICBcIkZpdHNjaGVuXCIsXG4gICAgXCJGbGVpc2NoZXJcIixcbiAgICBcIkZsZWlzY2htYW5uXCIsXG4gICAgXCJGbG9kZXJcIixcbiAgICBcIkZsb3JjemFrXCIsXG4gICAgXCJGbG9yZVwiLFxuICAgIFwiRmxvdHRtYW5uXCIsXG4gICAgXCJGb3JrZWxcIixcbiAgICBcIkZvcnN0XCIsXG4gICAgXCJGcmFobWVrZVwiLFxuICAgIFwiRnJhbmtcIixcbiAgICBcIkZyYW5rZVwiLFxuICAgIFwiRnJhbnRhXCIsXG4gICAgXCJGcmFudHpcIixcbiAgICBcIkZyYW56XCIsXG4gICAgXCJGcmFuemlzXCIsXG4gICAgXCJGcmFuem1hbm5cIixcbiAgICBcIkZyYXVlblwiLFxuICAgIFwiRnJhdWVuZG9yZlwiLFxuICAgIFwiRnJlaWdhbmdcIixcbiAgICBcIkZyZWltYW5uXCIsXG4gICAgXCJGcmVpbXV0aFwiLFxuICAgIFwiRnJlaXNlblwiLFxuICAgIFwiRnJlbnplbFwiLFxuICAgIFwiRnJleVwiLFxuICAgIFwiRnJpY2tlXCIsXG4gICAgXCJGcmllZFwiLFxuICAgIFwiRnJpZWRla1wiLFxuICAgIFwiRnJpZWRlbmJlcmdcIixcbiAgICBcIkZyaWVkbWFublwiLFxuICAgIFwiRnJpZWRyaWNoXCIsXG4gICAgXCJGcmllc3NcIixcbiAgICBcIkZyaXNjaFwiLFxuICAgIFwiRnJvaG5cIixcbiAgICBcIkZyb3NjaFwiLFxuICAgIFwiRnVjaHNcIixcbiAgICBcIkZ1aGxicsO8Z2dlXCIsXG4gICAgXCJGdXNlbmlnXCIsXG4gICAgXCJGdXN0XCIsXG4gICAgXCJGw7Zyc3RlclwiLFxuICAgIFwiR2FiYVwiLFxuICAgIFwiR2FiaXVzXCIsXG4gICAgXCJHYWJsZXJcIixcbiAgICBcIkdhZHNjaGlld1wiLFxuICAgIFwiR2Frc3TDpGR0ZXJcIixcbiAgICBcIkdhbGFuZGVyXCIsXG4gICAgXCJHYW1saW5cIixcbiAgICBcIkdhbXBlclwiLFxuICAgIFwiR2FuZ251c1wiLFxuICAgIFwiR2Fuem1hbm5cIixcbiAgICBcIkdhcmF0dmFcIixcbiAgICBcIkdhc3RcIixcbiAgICBcIkdhc3RlbFwiLFxuICAgIFwiR2F0emthXCIsXG4gICAgXCJHYXVkZXJcIixcbiAgICBcIkdlYmhhcmR0XCIsXG4gICAgXCJHZWVzZVwiLFxuICAgIFwiR2VocmVcIixcbiAgICBcIkdlaHJpZ1wiLFxuICAgIFwiR2VocmluZ1wiLFxuICAgIFwiR2VocmtlXCIsXG4gICAgXCJHZWlnZXJcIixcbiAgICBcIkdlaXNsZXJcIixcbiAgICBcIkdlaXNzbGVyXCIsXG4gICAgXCJHZWxsaW5nXCIsXG4gICAgXCJHZW5zXCIsXG4gICAgXCJHZXJiZW5ub3dcIixcbiAgICBcIkdlcmRlbFwiLFxuICAgIFwiR2VyaGFyZHRcIixcbiAgICBcIkdlcnNjaGxlclwiLFxuICAgIFwiR2Vyc29uXCIsXG4gICAgXCJHZXNlbGxcIixcbiAgICBcIkdleWVyXCIsXG4gICAgXCJHaGlybWFpXCIsXG4gICAgXCJHaG9zaFwiLFxuICAgIFwiR2llaGxcIixcbiAgICBcIkdpZXJpc2NoXCIsXG4gICAgXCJHaWVzYVwiLFxuICAgIFwiR2llc2NoZVwiLFxuICAgIFwiR2lsZGVcIixcbiAgICBcIkdsYXR0aW5nXCIsXG4gICAgXCJHb2ViZWxcIixcbiAgICBcIkdvZWRpY2tlXCIsXG4gICAgXCJHb2xkYmVja1wiLFxuICAgIFwiR29sZGZ1c3NcIixcbiAgICBcIkdvbGRrYW1wXCIsXG4gICAgXCJHb2xka8O8aGxlXCIsXG4gICAgXCJHb2xsZXJcIixcbiAgICBcIkdvbGxpbmdcIixcbiAgICBcIkdvbGxub3dcIixcbiAgICBcIkdvbG9tc2tpXCIsXG4gICAgXCJHb21iZXJ0XCIsXG4gICAgXCJHb3R0aGFyZHRcIixcbiAgICBcIkdvdHRzY2hhbGtcIixcbiAgICBcIkdvdHpcIixcbiAgICBcIkdveVwiLFxuICAgIFwiR3JhZHpraVwiLFxuICAgIFwiR3JhZlwiLFxuICAgIFwiR3JhbXNcIixcbiAgICBcIkdyYXNzZVwiLFxuICAgIFwiR3JhdHpreVwiLFxuICAgIFwiR3JhdVwiLFxuICAgIFwiR3JlYlwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWdlclwiLFxuICAgIFwiR3JlaXRoYW5uZXJcIixcbiAgICBcIkdyZXNjaG5lclwiLFxuICAgIFwiR3JpZW1cIixcbiAgICBcIkdyaWVzZVwiLFxuICAgIFwiR3JpbW1cIixcbiAgICBcIkdyb21pc2NoXCIsXG4gICAgXCJHcm9zc1wiLFxuICAgIFwiR3Jvc3NlclwiLFxuICAgIFwiR3Jvc3NoZWltXCIsXG4gICAgXCJHcm9zc2tvcGZcIixcbiAgICBcIkdyb3RoYXVzXCIsXG4gICAgXCJHcm90aGtvcHBcIixcbiAgICBcIkdyb3RrZVwiLFxuICAgIFwiR3J1YmVcIixcbiAgICBcIkdydWJlclwiLFxuICAgIFwiR3J1bmRtYW5uXCIsXG4gICAgXCJHcnVuaW5nXCIsXG4gICAgXCJHcnVzemVja2lcIixcbiAgICBcIkdyw7Zzc1wiLFxuICAgIFwiR3LDtnR6aW5nZXJcIixcbiAgICBcIkdyw7xuXCIsXG4gICAgXCJHcsO8bmVyXCIsXG4gICAgXCJHdW1tZWx0XCIsXG4gICAgXCJHdW5rZWxcIixcbiAgICBcIkd1bnRoZXJcIixcbiAgICBcIkd1dGphaHJcIixcbiAgICBcIkd1dG93aWN6XCIsXG4gICAgXCJHdXRzY2hhbmtcIixcbiAgICBcIkfDtmJlbFwiLFxuICAgIFwiR8O2Y2tlcml0elwiLFxuICAgIFwiR8O2aGxlclwiLFxuICAgIFwiR8O2cmxpY2hcIixcbiAgICBcIkfDtnJtZXJcIixcbiAgICBcIkfDtnR6XCIsXG4gICAgXCJHw7Z0emVsbWFublwiLFxuICAgIFwiR8O8bGRlbWVpc3RlclwiLFxuICAgIFwiR8O8bnRoZXJcIixcbiAgICBcIkfDvG56XCIsXG4gICAgXCJHw7xyYmlnXCIsXG4gICAgXCJIYWFja1wiLFxuICAgIFwiSGFhZlwiLFxuICAgIFwiSGFiZWxcIixcbiAgICBcIkhhY2hlXCIsXG4gICAgXCJIYWNrYnVzY2hcIixcbiAgICBcIkhhY2tlbGJ1c2NoXCIsXG4gICAgXCJIYWRmaWVsZFwiLFxuICAgIFwiSGFkd2ljaFwiLFxuICAgIFwiSGFmZXJrYW1wXCIsXG4gICAgXCJIYWhuXCIsXG4gICAgXCJIYWpla1wiLFxuICAgIFwiSGFsbG1hbm5cIixcbiAgICBcIkhhbWFublwiLFxuICAgIFwiSGFuZW5iZXJnZXJcIixcbiAgICBcIkhhbm5lY2tlclwiLFxuICAgIFwiSGFubmlza2VcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyZHlcIixcbiAgICBcIkhhcmdhc3NlclwiLFxuICAgIFwiSGFybXNcIixcbiAgICBcIkhhcm5hcHBcIixcbiAgICBcIkhhcnRlclwiLFxuICAgIFwiSGFydGluZ1wiLFxuICAgIFwiSGFydGxpZWJcIixcbiAgICBcIkhhcnRtYW5uXCIsXG4gICAgXCJIYXJ0d2lnXCIsXG4gICAgXCJIYXJ0elwiLFxuICAgIFwiSGFzY2hrZVwiLFxuICAgIFwiSGFzbGVyXCIsXG4gICAgXCJIYXNzZVwiLFxuICAgIFwiSGFzc2ZlbGRcIixcbiAgICBcIkhhdWdcIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIYXVwdFwiLFxuICAgIFwiSGF2ZXJuZXlcIixcbiAgICBcIkhlYmVyc3RyZWl0XCIsXG4gICAgXCJIZWNobGVyXCIsXG4gICAgXCJIZWNodFwiLFxuICAgIFwiSGVja1wiLFxuICAgIFwiSGVkZXJtYW5uXCIsXG4gICAgXCJIZWhsXCIsXG4gICAgXCJIZWlkZWxtYW5uXCIsXG4gICAgXCJIZWlkbGVyXCIsXG4gICAgXCJIZWluZW1hbm5cIixcbiAgICBcIkhlaW5pZ1wiLFxuICAgIFwiSGVpbmtlXCIsXG4gICAgXCJIZWlucmljaFwiLFxuICAgIFwiSGVpbnplXCIsXG4gICAgXCJIZWlzZXJcIixcbiAgICBcIkhlaXN0XCIsXG4gICAgXCJIZWxsbWFublwiLFxuICAgIFwiSGVsbVwiLFxuICAgIFwiSGVsbWtlXCIsXG4gICAgXCJIZWxwbGluZ1wiLFxuICAgIFwiSGVuZ21pdGhcIixcbiAgICBcIkhlbmtlbFwiLFxuICAgIFwiSGVubmVzXCIsXG4gICAgXCJIZW5yeVwiLFxuICAgIFwiSGVuc2VcIixcbiAgICBcIkhlbnNlbFwiLFxuICAgIFwiSGVudGVsXCIsXG4gICAgXCJIZW50c2NoZWxcIixcbiAgICBcIkhlbnRzY2hrZVwiLFxuICAgIFwiSGVwcGVybGVcIixcbiAgICBcIkhlcmJlcmdlclwiLFxuICAgIFwiSGVyYnJhbmRcIixcbiAgICBcIkhlcmluZ1wiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWVja2VcIixcbiAgICBcIkhlcm1zXCIsXG4gICAgXCJIZXJvbGRcIixcbiAgICBcIkhlcnJtYW5uXCIsXG4gICAgXCJIZXJzY2htYW5uXCIsXG4gICAgXCJIZXJ0ZWxcIixcbiAgICBcIkhlcndlZ1wiLFxuICAgIFwiSGVyd2lnXCIsXG4gICAgXCJIZXJ6ZW5iZXJnXCIsXG4gICAgXCJIZXNzXCIsXG4gICAgXCJIZXNzZVwiLFxuICAgIFwiSGVzc2VrXCIsXG4gICAgXCJIZXNzbGVyXCIsXG4gICAgXCJIZXR6bGVyXCIsXG4gICAgXCJIZXVja1wiLFxuICAgIFwiSGV5ZGVtw7xsbGVyXCIsXG4gICAgXCJIaWVibFwiLFxuICAgIFwiSGlsZGVicmFuZFwiLFxuICAgIFwiSGlsZGVuYnJhbmRcIixcbiAgICBcIkhpbGdlbmRvcmZcIixcbiAgICBcIkhpbGxhcmRcIixcbiAgICBcIkhpbGxlclwiLFxuICAgIFwiSGluZ3NlblwiLFxuICAgIFwiSGluZ3N0XCIsXG4gICAgXCJIaW5yaWNoc1wiLFxuICAgIFwiSGlyc2NoXCIsXG4gICAgXCJIaXJzY2hiZXJnXCIsXG4gICAgXCJIaXJ0XCIsXG4gICAgXCJIb2RlYVwiLFxuICAgIFwiSG9mZm1hblwiLFxuICAgIFwiSG9mZm1hbm5cIixcbiAgICBcIkhvZm1hbm5cIixcbiAgICBcIkhvaGVuYmVyZ2VyXCIsXG4gICAgXCJIb2hsXCIsXG4gICAgXCJIb2huXCIsXG4gICAgXCJIb2huaGVpc2VyXCIsXG4gICAgXCJIb2xkXCIsXG4gICAgXCJIb2xkdFwiLFxuICAgIFwiSG9saW5za2lcIixcbiAgICBcIkhvbGxcIixcbiAgICBcIkhvbHRmcmV0ZXJcIixcbiAgICBcIkhvbHpcIixcbiAgICBcIkhvbHpkZXBwZVwiLFxuICAgIFwiSG9sem5lclwiLFxuICAgIFwiSG9tbWVsXCIsXG4gICAgXCJIb256XCIsXG4gICAgXCJIb29zc1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvcmFrXCIsXG4gICAgXCJIb3JuXCIsXG4gICAgXCJIb3JuYVwiLFxuICAgIFwiSG9ybnVuZ1wiLFxuICAgIFwiSG9ydFwiLFxuICAgIFwiSG93YXJkXCIsXG4gICAgXCJIdWJlclwiLFxuICAgIFwiSHVja2VzdGVpblwiLFxuICAgIFwiSHVkYWtcIixcbiAgICBcIkh1ZWJlbFwiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiSHVoblwiLFxuICAgIFwiSHVqb1wiLFxuICAgIFwiSHVrZVwiLFxuICAgIFwiSHVsc1wiLFxuICAgIFwiSHVtYmVydFwiLFxuICAgIFwiSHVuZWtlXCIsXG4gICAgXCJIdXRoXCIsXG4gICAgXCJIw6RiZXJcIixcbiAgICBcIkjDpGZuZXJcIixcbiAgICBcIkjDtmNrZVwiLFxuICAgIFwiSMO2ZnRcIixcbiAgICBcIkjDtmhuZVwiLFxuICAgIFwiSMO2bmlnXCIsXG4gICAgXCJIw7ZyZHRcIixcbiAgICBcIkjDvGJlbmJlY2tlclwiLFxuICAgIFwiSMO8YmxcIixcbiAgICBcIkjDvGJuZXJcIixcbiAgICBcIkjDvGdlbFwiLFxuICAgIFwiSMO8dHRjaGVyXCIsXG4gICAgXCJIw7x0dGVyXCIsXG4gICAgXCJJYmVcIixcbiAgICBcIklobHlcIixcbiAgICBcIklsbGluZ1wiLFxuICAgIFwiSXNha1wiLFxuICAgIFwiSXNla2VubWVpZXJcIixcbiAgICBcIkl0dFwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkphY29ic1wiLFxuICAgIFwiSmFndXNjaFwiLFxuICAgIFwiSmFoblwiLFxuICAgIFwiSmFobmtlXCIsXG4gICAgXCJKYWtvYnNcIixcbiAgICBcIkpha3ViY3p5a1wiLFxuICAgIFwiSmFtYm9yXCIsXG4gICAgXCJKYW1yb3p5XCIsXG4gICAgXCJKYW5kZXJcIixcbiAgICBcIkphbmljaFwiLFxuICAgIFwiSmFua2VcIixcbiAgICBcIkphbnNlblwiLFxuICAgIFwiSmFyZXRzXCIsXG4gICAgXCJKYXJvc1wiLFxuICAgIFwiSmFzaW5za2lcIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSmVnb3JvdlwiLFxuICAgIFwiSmVsbGluZ2hhdXNcIixcbiAgICBcIkplb3JnYVwiLFxuICAgIFwiSmVyc2NoYWJla1wiLFxuICAgIFwiSmVzc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkpvc3NhXCIsXG4gICAgXCJKdWNrZW5cIixcbiAgICBcIkp1bmdcIixcbiAgICBcIkp1bmdibHV0aFwiLFxuICAgIFwiSnVuZ3RvblwiLFxuICAgIFwiSnVzdFwiLFxuICAgIFwiSsO8cmdlbnNcIixcbiAgICBcIkthY3ptYXJla1wiLFxuICAgIFwiS2Flc21hY2hlclwiLFxuICAgIFwiS2FobFwiLFxuICAgIFwiS2FobGVydFwiLFxuICAgIFwiS2FobGVzXCIsXG4gICAgXCJLYWhsbWV5ZXJcIixcbiAgICBcIkthaXNlclwiLFxuICAgIFwiS2FsaW5vd3NraVwiLFxuICAgIFwiS2FsbGFiaXNcIixcbiAgICBcIkthbGxlbnNlZVwiLFxuICAgIFwiS2FtcGZcIixcbiAgICBcIkthbXBzY2h1bHRlXCIsXG4gICAgXCJLYXBwZVwiLFxuICAgIFwiS2FwcGxlclwiLFxuICAgIFwiS2FyaG9mZlwiLFxuICAgIFwiS2FycmFzc1wiLFxuICAgIFwiS2Fyc3RcIixcbiAgICBcIkthcnN0ZW5cIixcbiAgICBcIkthcnVzXCIsXG4gICAgXCJLYXNzXCIsXG4gICAgXCJLYXN0ZW5cIixcbiAgICBcIkthc3RuZXJcIixcbiAgICBcIkthdHppbnNraVwiLFxuICAgIFwiS2F1Zm1hbm5cIixcbiAgICBcIkthdWxcIixcbiAgICBcIkthdXNlbWFublwiLFxuICAgIFwiS2F3b2hsXCIsXG4gICAgXCJLYXptYXJla1wiLFxuICAgIFwiS2VkemllcnNraVwiLFxuICAgIFwiS2VpbFwiLFxuICAgIFwiS2VpbmVyXCIsXG4gICAgXCJLZWxsZXJcIixcbiAgICBcIktlbG1cIixcbiAgICBcIktlbXBlXCIsXG4gICAgXCJLZW1wZXJcIixcbiAgICBcIktlbXB0ZXJcIixcbiAgICBcIktlcmxcIixcbiAgICBcIktlcm5cIixcbiAgICBcIktlc3NlbHJpbmdcIixcbiAgICBcIktlc3NlbHNjaGzDpGdlclwiLFxuICAgIFwiS2V0dGVcIixcbiAgICBcIktldHRlbmlzXCIsXG4gICAgXCJLZXV0ZWxcIixcbiAgICBcIktpY2tcIixcbiAgICBcIktpZXNzbGluZ1wiLFxuICAgIFwiS2luYWRldGVyXCIsXG4gICAgXCJLaW56ZWxcIixcbiAgICBcIktpbnp5XCIsXG4gICAgXCJLaXJjaFwiLFxuICAgIFwiS2lyc3RcIixcbiAgICBcIktpc2FiYWthXCIsXG4gICAgXCJLbGFhc1wiLFxuICAgIFwiS2xhYnVoblwiLFxuICAgIFwiS2xhcHBlclwiLFxuICAgIFwiS2xhdWRlclwiLFxuICAgIFwiS2xhdXNcIixcbiAgICBcIktsZWViZXJnXCIsXG4gICAgXCJLbGVpYmVyXCIsXG4gICAgXCJLbGVpblwiLFxuICAgIFwiS2xlaW5lcnRcIixcbiAgICBcIktsZWluaW5nZXJcIixcbiAgICBcIktsZWlubWFublwiLFxuICAgIFwiS2xlaW5zdGV1YmVyXCIsXG4gICAgXCJLbGVpc3NcIixcbiAgICBcIktsZW1tZVwiLFxuICAgIFwiS2xpbWN6YWtcIixcbiAgICBcIktsaW5nZXJcIixcbiAgICBcIktsaW5rXCIsXG4gICAgXCJLbG9wc2NoXCIsXG4gICAgXCJLbG9zZVwiLFxuICAgIFwiS2xvc3NcIixcbiAgICBcIktsdWdlXCIsXG4gICAgXCJLbHV3ZVwiLFxuICAgIFwiS25hYmVcIixcbiAgICBcIktuZWlmZWxcIixcbiAgICBcIktuZXRzY2hcIixcbiAgICBcIktuaWVzXCIsXG4gICAgXCJLbmlwcGVsXCIsXG4gICAgXCJLbm9iZWxcIixcbiAgICBcIktub2JsaWNoXCIsXG4gICAgXCJLbm9sbFwiLFxuICAgIFwiS25vcnJcIixcbiAgICBcIktub3JzY2hlaWR0XCIsXG4gICAgXCJLbnV0XCIsXG4gICAgXCJLb2JzXCIsXG4gICAgXCJLb2NoXCIsXG4gICAgXCJLb2NoYW5cIixcbiAgICBcIktvY2tcIixcbiAgICBcIktvY3p1bGxhXCIsXG4gICAgXCJLb2RlcmlzY2hcIixcbiAgICBcIktvZWhsXCIsXG4gICAgXCJLb2VobGVyXCIsXG4gICAgXCJLb2VuaWdcIixcbiAgICBcIktvZXN0ZXJcIixcbiAgICBcIktvZmZlcnNjaGxhZ2VyXCIsXG4gICAgXCJLb2hhXCIsXG4gICAgXCJLb2hsZVwiLFxuICAgIFwiS29obG1hbm5cIixcbiAgICBcIktvaG5sZVwiLFxuICAgIFwiS29ocnRcIixcbiAgICBcIktvalwiLFxuICAgIFwiS29sYlwiLFxuICAgIFwiS29sZWlza2lcIixcbiAgICBcIktvbG9rYXNcIixcbiAgICBcIktvbW9sbFwiLFxuICAgIFwiS29uaWVjem55XCIsXG4gICAgXCJLb25pZ1wiLFxuICAgIFwiS29ub3dcIixcbiAgICBcIktvbnlhXCIsXG4gICAgXCJLb29iXCIsXG4gICAgXCJLb3BmXCIsXG4gICAgXCJLb3Nlbmtvd1wiLFxuICAgIFwiS29zdGVyXCIsXG4gICAgXCJLb3N6ZXdza2lcIixcbiAgICBcIktvdWJhYVwiLFxuICAgIFwiS292YWNzXCIsXG4gICAgXCJLb3dhbGlja1wiLFxuICAgIFwiS293YWxpbnNraVwiLFxuICAgIFwiS296YWtpZXdpY3pcIixcbiAgICBcIktyYWJiZVwiLFxuICAgIFwiS3JhZnRcIixcbiAgICBcIktyYWxcIixcbiAgICBcIktyYW1lclwiLFxuICAgIFwiS3JhdWVsXCIsXG4gICAgXCJLcmF1c1wiLFxuICAgIFwiS3JhdXNlXCIsXG4gICAgXCJLcmF1c3BlXCIsXG4gICAgXCJLcmViXCIsXG4gICAgXCJLcmVic1wiLFxuICAgIFwiS3JlaXNzaWdcIixcbiAgICBcIktyZXNzZVwiLFxuICAgIFwiS3JldXR6XCIsXG4gICAgXCJLcmllZ2VyXCIsXG4gICAgXCJLcmlwcG5lclwiLFxuICAgIFwiS3JvZGluZ2VyXCIsXG4gICAgXCJLcm9oblwiLFxuICAgIFwiS3JvbFwiLFxuICAgIFwiS3JvblwiLFxuICAgIFwiS3J1ZWdlclwiLFxuICAgIFwiS3J1Z1wiLFxuICAgIFwiS3J1Z2VyXCIsXG4gICAgXCJLcnVsbFwiLFxuICAgIFwiS3J1c2NoaW5za2lcIixcbiAgICBcIktyw6RtZXJcIixcbiAgICBcIktyw7Zja2VydFwiLFxuICAgIFwiS3LDtmdlclwiLFxuICAgIFwiS3LDvGdlclwiLFxuICAgIFwiS3ViZXJhXCIsXG4gICAgXCJLdWZhaGxcIixcbiAgICBcIkt1aGxlZVwiLFxuICAgIFwiS3VobmVuXCIsXG4gICAgXCJLdWxpbWFublwiLFxuICAgIFwiS3VsbWFcIixcbiAgICBcIkt1bWJlcm51c3NcIixcbiAgICBcIkt1bW1sZVwiLFxuICAgIFwiS3VuelwiLFxuICAgIFwiS3VwZmVyXCIsXG4gICAgXCJLdXBwcmlvblwiLFxuICAgIFwiS3VwcmlvblwiLFxuICAgIFwiS3Vybmlja2lcIixcbiAgICBcIkt1cnJhdFwiLFxuICAgIFwiS3Vyc2NoaWxnZW5cIixcbiAgICBcIkt1c2NoZXdpdHpcIixcbiAgICBcIkt1c2NobWFublwiLFxuICAgIFwiS3Vza2VcIixcbiAgICBcIkt1c3Rlcm1hbm5cIixcbiAgICBcIkt1dHNjaGVyYXVlclwiLFxuICAgIFwiS3V0em5lclwiLFxuICAgIFwiS3dhZHdvXCIsXG4gICAgXCJLw6RobGVyXCIsXG4gICAgXCJLw6R0aGVyXCIsXG4gICAgXCJLw7ZobGVyXCIsXG4gICAgXCJLw7ZocmJyw7xja1wiLFxuICAgIFwiS8O2aHJlXCIsXG4gICAgXCJLw7Zsb3R6ZWlcIixcbiAgICBcIkvDtm5pZ1wiLFxuICAgIFwiS8O2cGVybmlja1wiLFxuICAgIFwiS8O2c2VvZ2x1XCIsXG4gICAgXCJLw7poblwiLFxuICAgIFwiS8O6aG5lcnRcIixcbiAgICBcIkvDvGhuXCIsXG4gICAgXCJLw7xobmVsXCIsXG4gICAgXCJLw7xobmVtdW5kXCIsXG4gICAgXCJLw7xobmVydFwiLFxuICAgIFwiS8O8aG5rZVwiLFxuICAgIFwiS8O8c3RlcnNcIixcbiAgICBcIkvDvHRlclwiLFxuICAgIFwiTGFhY2tcIixcbiAgICBcIkxhY2tcIixcbiAgICBcIkxhZGV3aWdcIixcbiAgICBcIkxha29teVwiLFxuICAgIFwiTGFtbWVydFwiLFxuICAgIFwiTGFtb3NcIixcbiAgICBcIkxhbmRtYW5uXCIsXG4gICAgXCJMYW5nXCIsXG4gICAgXCJMYW5nZVwiLFxuICAgIFwiTGFuZ2ZlbGRcIixcbiAgICBcIkxhbmdoaXJ0XCIsXG4gICAgXCJMYW5pZ1wiLFxuICAgIFwiTGF1Y2tuZXJcIixcbiAgICBcIkxhdWluZ2VyXCIsXG4gICAgXCJMYXVyw6luXCIsXG4gICAgXCJMYXVzZWNrZXJcIixcbiAgICBcIkxhdXhcIixcbiAgICBcIkxhd3NcIixcbiAgICBcIkxheFwiLFxuICAgIFwiTGViZXJlclwiLFxuICAgIFwiTGVobWFublwiLFxuICAgIFwiTGVobmVyXCIsXG4gICAgXCJMZWlib2xkXCIsXG4gICAgXCJMZWlkZVwiLFxuICAgIFwiTGVpbWJhY2hcIixcbiAgICBcIkxlaXBvbGRcIixcbiAgICBcIkxlaXN0XCIsXG4gICAgXCJMZWl0ZXJcIixcbiAgICBcIkxlaXRlcml0elwiLFxuICAgIFwiTGVpdGhlaW1cIixcbiAgICBcIkxlaXdlc21laWVyXCIsXG4gICAgXCJMZW5mZXJzXCIsXG4gICAgXCJMZW5rXCIsXG4gICAgXCJMZW56XCIsXG4gICAgXCJMZW56ZW5cIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVwdGhpblwiLFxuICAgIFwiTGVzY2hcIixcbiAgICBcIkxlc2NobmlrXCIsXG4gICAgXCJMZXR6ZWx0ZXJcIixcbiAgICBcIkxld2luXCIsXG4gICAgXCJMZXdrZVwiLFxuICAgIFwiTGV5Y2tlc1wiLFxuICAgIFwiTGdcIixcbiAgICBcIkxpY2h0ZW5mZWxkXCIsXG4gICAgXCJMaWNodGVuaGFnZW5cIixcbiAgICBcIkxpY2h0bFwiLFxuICAgIFwiTGllYmFjaFwiLFxuICAgIFwiTGllYmVcIixcbiAgICBcIkxpZWJpY2hcIixcbiAgICBcIkxpZWJvbGRcIixcbiAgICBcIkxpZWRlclwiLFxuICAgIFwiTGllbnNow7ZmdFwiLFxuICAgIFwiTGluZGVuXCIsXG4gICAgXCJMaW5kZW5iZXJnXCIsXG4gICAgXCJMaW5kZW5tYXllclwiLFxuICAgIFwiTGluZG5lclwiLFxuICAgIFwiTGlua2VcIixcbiAgICBcIkxpbm5lbmJhdW1cIixcbiAgICBcIkxpcHBlXCIsXG4gICAgXCJMaXBza2VcIixcbiAgICBcIkxpcHVzXCIsXG4gICAgXCJMaXNjaGthXCIsXG4gICAgXCJMb2JpbmdlclwiLFxuICAgIFwiTG9nc2NoXCIsXG4gICAgXCJMb2htYW5uXCIsXG4gICAgXCJMb2hyZVwiLFxuICAgIFwiTG9oc2VcIixcbiAgICBcIkxva2FyXCIsXG4gICAgXCJMb29nZW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9zY2hcIixcbiAgICBcIkxvc2thXCIsXG4gICAgXCJMb3R0XCIsXG4gICAgXCJMb3lcIixcbiAgICBcIkx1YmluYVwiLFxuICAgIFwiTHVkb2xmXCIsXG4gICAgXCJMdWZmdFwiLFxuICAgIFwiTHVrb3NjaGVrXCIsXG4gICAgXCJMdXRqZVwiLFxuICAgIFwiTHV0elwiLFxuICAgIFwiTMO2c2VyXCIsXG4gICAgXCJMw7Z3YVwiLFxuICAgIFwiTMO8YmtlXCIsXG4gICAgXCJNYWFrXCIsXG4gICAgXCJNYWN6ZXlcIixcbiAgICBcIk1hZGV0emt5XCIsXG4gICAgXCJNYWR1YnVrb1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJNYWllclwiLFxuICAgIFwiTWFpc2NoXCIsXG4gICAgXCJNYWxla1wiLFxuICAgIFwiTWFsa3VzXCIsXG4gICAgXCJNYWxsbWFublwiLFxuICAgIFwiTWFsdWNoYVwiLFxuICAgIFwiTWFubnNcIixcbiAgICBcIk1hbnpcIixcbiAgICBcIk1hcmFocmVuc1wiLFxuICAgIFwiTWFyY2hld3NraVwiLFxuICAgIFwiTWFyZ2lzXCIsXG4gICAgXCJNYXJrb3dza2lcIixcbiAgICBcIk1hcmxcIixcbiAgICBcIk1hcm5lclwiLFxuICAgIFwiTWFycXVhcnRcIixcbiAgICBcIk1hcnNjaGVrXCIsXG4gICAgXCJNYXJ0ZWxcIixcbiAgICBcIk1hcnRlblwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ4XCIsXG4gICAgXCJNYXJ4ZW5cIixcbiAgICBcIk1hdGhlc1wiLFxuICAgIFwiTWF0aGllc1wiLFxuICAgIFwiTWF0aGlzemlrXCIsXG4gICAgXCJNYXRzY2hrZVwiLFxuICAgIFwiTWF0dGVyblwiLFxuICAgIFwiTWF0dGhlc1wiLFxuICAgIFwiTWF0dWxhXCIsXG4gICAgXCJNYXVcIixcbiAgICBcIk1hdXJlclwiLFxuICAgIFwiTWF1cm9mZlwiLFxuICAgIFwiTWF5XCIsXG4gICAgXCJNYXliYWNoXCIsXG4gICAgXCJNYXllclwiLFxuICAgIFwiTWVib2xkXCIsXG4gICAgXCJNZWhsXCIsXG4gICAgXCJNZWhsaG9yblwiLFxuICAgIFwiTWVobG9yblwiLFxuICAgIFwiTWVpZXJcIixcbiAgICBcIk1laXNjaFwiLFxuICAgIFwiTWVpc3NuZXJcIixcbiAgICBcIk1lbG9uaVwiLFxuICAgIFwiTWVsemVyXCIsXG4gICAgXCJNZW5nYVwiLFxuICAgIFwiTWVubmVcIixcbiAgICBcIk1lbnNhaFwiLFxuICAgIFwiTWVuc2luZ1wiLFxuICAgIFwiTWVya2VsXCIsXG4gICAgXCJNZXJzZWJ1cmdcIixcbiAgICBcIk1lcnRlbnNcIixcbiAgICBcIk1lc2xvaFwiLFxuICAgIFwiTWV0emdlclwiLFxuICAgIFwiTWV0em5lclwiLFxuICAgIFwiTWV3ZXNcIixcbiAgICBcIk1leWVyXCIsXG4gICAgXCJNaWNoYWxsZWtcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWllbGtlXCIsXG4gICAgXCJNaWtpdGVua29cIixcbiAgICBcIk1pbGRlXCIsXG4gICAgXCJNaW5haFwiLFxuICAgIFwiTWludHpsYWZmXCIsXG4gICAgXCJNb2NrZW5oYXVwdFwiLFxuICAgIFwiTW9lZGVcIixcbiAgICBcIk1vZWRsXCIsXG4gICAgXCJNb2VsbGVyXCIsXG4gICAgXCJNb2d1ZW5hcmFcIixcbiAgICBcIk1vaHJcIixcbiAgICBcIk1vaHJoYXJkXCIsXG4gICAgXCJNb2xpdG9yXCIsXG4gICAgXCJNb2xsXCIsXG4gICAgXCJNb2xsZXJcIixcbiAgICBcIk1vbHphblwiLFxuICAgIFwiTW9udGFnXCIsXG4gICAgXCJNb29ybWFublwiLFxuICAgIFwiTW9yZGhvcnN0XCIsXG4gICAgXCJNb3JnZW5zdGVyblwiLFxuICAgIFwiTW9yaGVsZmVyXCIsXG4gICAgXCJNb3JpdHpcIixcbiAgICBcIk1vc2VyXCIsXG4gICAgXCJNb3RjaGVib25cIixcbiAgICBcIk1vdHplbmJiw6Rja2VyXCIsXG4gICAgXCJNcnVnYWxsYVwiLFxuICAgIFwiTXVja2VudGhhbGVyXCIsXG4gICAgXCJNdWVzXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk11bHJhaW5cIixcbiAgICBcIk3DpGNodGlnXCIsXG4gICAgXCJNw6RkZXJcIixcbiAgICBcIk3DtmNrc1wiLFxuICAgIFwiTcO2Z2VuYnVyZ1wiLFxuICAgIFwiTcO2aHNuZXJcIixcbiAgICBcIk3DtmxkbmVyXCIsXG4gICAgXCJNw7ZsbGVuYmVja1wiLFxuICAgIFwiTcO2bGxlclwiLFxuICAgIFwiTcO2bGxpbmdlclwiLFxuICAgIFwiTcO2cnNjaFwiLFxuICAgIFwiTcO8aGxlaXNcIixcbiAgICBcIk3DvGxsZXJcIixcbiAgICBcIk3DvG5jaFwiLFxuICAgIFwiTmFiZWluXCIsXG4gICAgXCJOYWJvd1wiLFxuICAgIFwiTmFnZWxcIixcbiAgICBcIk5hbm5lblwiLFxuICAgIFwiTmFzdHZvZ2VsXCIsXG4gICAgXCJOYXVcIixcbiAgICBcIk5hdWJlcnRcIixcbiAgICBcIk5hdW1hbm5cIixcbiAgICBcIk5lXCIsXG4gICAgXCJOZWlta2VcIixcbiAgICBcIk5lcml1c1wiLFxuICAgIFwiTmV1YmF1ZXJcIixcbiAgICBcIk5ldWJlcnRcIixcbiAgICBcIk5ldWVuZG9yZlwiLFxuICAgIFwiTmV1bWFpclwiLFxuICAgIFwiTmV1bWFublwiLFxuICAgIFwiTmV1cGVydFwiLFxuICAgIFwiTmV1cm9oclwiLFxuICAgIFwiTmV1c2Nod2FuZGVyXCIsXG4gICAgXCJOZXd0b25cIixcbiAgICBcIk5leVwiLFxuICAgIFwiTmljb2xheVwiLFxuICAgIFwiTmllZGVybWVpZXJcIixcbiAgICBcIk5pZWtsYXVzb25cIixcbiAgICBcIk5pa2xhdXNcIixcbiAgICBcIk5pdHpzY2hlXCIsXG4gICAgXCJOb2Fja1wiLFxuICAgIFwiTm9kbGVyXCIsXG4gICAgXCJOb2x0ZVwiLFxuICAgIFwiTm9ybWFublwiLFxuICAgIFwiTm9ycmlzXCIsXG4gICAgXCJOb3J0aG9mZlwiLFxuICAgIFwiTm93YWtcIixcbiAgICBcIk51c3NiZWNrXCIsXG4gICAgXCJOd2FjaHVrd3VcIixcbiAgICBcIk55dHJhXCIsXG4gICAgXCJOw7ZoXCIsXG4gICAgXCJPYmVyZW1cIixcbiAgICBcIk9iZXJnZsO2bGxcIixcbiAgICBcIk9iZXJtYWllclwiLFxuICAgIFwiT2Noc1wiLFxuICAgIFwiT2VzZXJcIixcbiAgICBcIk9sYnJpY2hcIixcbiAgICBcIk9ubmVuXCIsXG4gICAgXCJPcGhleVwiLFxuICAgIFwiT3Bwb25nXCIsXG4gICAgXCJPcnRoXCIsXG4gICAgXCJPcnRobWFublwiLFxuICAgIFwiT3NjaGtlbmF0XCIsXG4gICAgXCJPc2VpXCIsXG4gICAgXCJPc2VuYmVyZ1wiLFxuICAgIFwiT3N0ZW5kYXJwXCIsXG4gICAgXCJPc3R3YWxkXCIsXG4gICAgXCJPdHRlXCIsXG4gICAgXCJPdHRvXCIsXG4gICAgXCJQYWVzbGVyXCIsXG4gICAgXCJQYWpvbmtcIixcbiAgICBcIlBhbGxlbnRpblwiLFxuICAgIFwiUGFuemlnXCIsXG4gICAgXCJQYXNjaGtlXCIsXG4gICAgXCJQYXR6d2FobFwiLFxuICAgIFwiUGF1a25lclwiLFxuICAgIFwiUGVzZWxtYW5cIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQZXRlcnNcIixcbiAgICBcIlBldHpvbGRcIixcbiAgICBcIlBmZWlmZmVyXCIsXG4gICAgXCJQZmVubmlnXCIsXG4gICAgXCJQZmVyc2ljaFwiLFxuICAgIFwiUGZpbmdzdGVuXCIsXG4gICAgXCJQZmxpZWdlclwiLFxuICAgIFwiUGZsw7xnbmVyXCIsXG4gICAgXCJQaGlsaXBwXCIsXG4gICAgXCJQaWNobG1haWVyXCIsXG4gICAgXCJQaWVza2VyXCIsXG4gICAgXCJQaWV0c2NoXCIsXG4gICAgXCJQaW5ncGFua1wiLFxuICAgIFwiUGlubm9ja1wiLFxuICAgIFwiUGlwcGlnXCIsXG4gICAgXCJQaXRzY2h1Z2luXCIsXG4gICAgXCJQbGFua1wiLFxuICAgIFwiUGxhc3NcIixcbiAgICBcIlBsYXR6ZXJcIixcbiAgICBcIlBsYXVrXCIsXG4gICAgXCJQbGF1dHpcIixcbiAgICBcIlBsZXRzY2hcIixcbiAgICBcIlBsb3R6aXR6a2FcIixcbiAgICBcIlBvZWhuXCIsXG4gICAgXCJQb2VzY2hsXCIsXG4gICAgXCJQb2dvcnplbHNraVwiLFxuICAgIFwiUG9obFwiLFxuICAgIFwiUG9obGFuZFwiLFxuICAgIFwiUG9obGVcIixcbiAgICBcIlBvbGlma2FcIixcbiAgICBcIlBvbGl6emlcIixcbiAgICBcIlBvbGxtw6RjaGVyXCIsXG4gICAgXCJQb21wXCIsXG4gICAgXCJQb25pdHpzY2hcIixcbiAgICBcIlBvcnNjaGVcIixcbiAgICBcIlBvcnRoXCIsXG4gICAgXCJQb3NjaG1hbm5cIixcbiAgICBcIlBvc2VyXCIsXG4gICAgXCJQb3R0ZWxcIixcbiAgICBcIlByYWhcIixcbiAgICBcIlByYW5nZVwiLFxuICAgIFwiUHJlZGlnZXJcIixcbiAgICBcIlByZXNzbGVyXCIsXG4gICAgXCJQcmV1a1wiLFxuICAgIFwiUHJldXNzXCIsXG4gICAgXCJQcmV5XCIsXG4gICAgXCJQcmllbWVyXCIsXG4gICAgXCJQcm9za2VcIixcbiAgICBcIlB1c2NoXCIsXG4gICAgXCJQw7ZjaGVcIixcbiAgICBcIlDDtmdlXCIsXG4gICAgXCJSYWFiZVwiLFxuICAgIFwiUmFiZW5zdGVpblwiLFxuICAgIFwiUmFjaFwiLFxuICAgIFwiUmFkdGtlXCIsXG4gICAgXCJSYWhuXCIsXG4gICAgXCJSYW5mdGxcIixcbiAgICBcIlJhbmdlblwiLFxuICAgIFwiUmFuelwiLFxuICAgIFwiUmFwcFwiLFxuICAgIFwiUmF0aFwiLFxuICAgIFwiUmF1XCIsXG4gICAgXCJSYXVidWNoXCIsXG4gICAgXCJSYXVrdWNcIixcbiAgICBcIlJhdXRlbmtyYW56XCIsXG4gICAgXCJSZWh3YWdlblwiLFxuICAgIFwiUmVpYmVyXCIsXG4gICAgXCJSZWljaGFyZHRcIixcbiAgICBcIlJlaWNoZWxcIixcbiAgICBcIlJlaWNobGluZ1wiLFxuICAgIFwiUmVpZlwiLFxuICAgIFwiUmVpZmVucmF0aFwiLFxuICAgIFwiUmVpbWFublwiLFxuICAgIFwiUmVpbmJlcmdcIixcbiAgICBcIlJlaW5lbHRcIixcbiAgICBcIlJlaW5oYXJkdFwiLFxuICAgIFwiUmVpbmtlXCIsXG4gICAgXCJSZWl0emVcIixcbiAgICBcIlJlbmtcIixcbiAgICBcIlJlbnR6XCIsXG4gICAgXCJSZW56XCIsXG4gICAgXCJSZXBwaW5cIixcbiAgICBcIlJlc3RsZVwiLFxuICAgIFwiUmVzdG9yZmZcIixcbiAgICBcIlJldHprZVwiLFxuICAgIFwiUmV1YmVyXCIsXG4gICAgXCJSZXVtYW5uXCIsXG4gICAgXCJSZXVzXCIsXG4gICAgXCJSZXVzc1wiLFxuICAgIFwiUmV1c3NlXCIsXG4gICAgXCJSaGVkZXJcIixcbiAgICBcIlJob2RlblwiLFxuICAgIFwiUmljaGFyZHNcIixcbiAgICBcIlJpY2h0ZXJcIixcbiAgICBcIlJpZWRlbFwiLFxuICAgIFwiUmllZGlnZXJcIixcbiAgICBcIlJpZWdlclwiLFxuICAgIFwiUmlla21hbm5cIixcbiAgICBcIlJpZXBsXCIsXG4gICAgXCJSaWVybWVpZXJcIixcbiAgICBcIlJpZXN0ZXJcIixcbiAgICBcIlJpZXRobcO8bGxlclwiLFxuICAgIFwiUmlldG3DvGxsZXJcIixcbiAgICBcIlJpZXRzY2hlclwiLFxuICAgIFwiUmluZ2VsXCIsXG4gICAgXCJSaW5nZXJcIixcbiAgICBcIlJpbmtcIixcbiAgICBcIlJpcGtlblwiLFxuICAgIFwiUml0b3Nla1wiLFxuICAgIFwiUml0c2NoZWxcIixcbiAgICBcIlJpdHRlclwiLFxuICAgIFwiUml0dHdlZ1wiLFxuICAgIFwiUml0elwiLFxuICAgIFwiUm9iYVwiLFxuICAgIFwiUm9ja21laWVyXCIsXG4gICAgXCJSb2RlaGF1XCIsXG4gICAgXCJSb2Rvd3NraVwiLFxuICAgIFwiUm9lY2tlclwiLFxuICAgIFwiUm9nZ2F0elwiLFxuICAgIFwiUm9obMOkbmRlclwiLFxuICAgIFwiUm9ocmVyXCIsXG4gICAgXCJSb2tvc3NhXCIsXG4gICAgXCJSb2xlZGVyXCIsXG4gICAgXCJSb2xvZmZcIixcbiAgICBcIlJvb3NcIixcbiAgICBcIlJvc2JhY2hcIixcbiAgICBcIlJvc2NoaW5za3lcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIlJvc2VuYXVlclwiLFxuICAgIFwiUm9zZW5iYXVlclwiLFxuICAgIFwiUm9zZW50aGFsXCIsXG4gICAgXCJSb3Nrc2NoXCIsXG4gICAgXCJSb3NzYmVyZ1wiLFxuICAgIFwiUm9zc2xlclwiLFxuICAgIFwiUm90aFwiLFxuICAgIFwiUm90aGVyXCIsXG4gICAgXCJSdWNoXCIsXG4gICAgXCJSdWNrZGVzY2hlbFwiLFxuICAgIFwiUnVtcGZcIixcbiAgICBcIlJ1cHByZWNodFwiLFxuICAgIFwiUnV0aFwiLFxuICAgIFwiUnlqaWtoXCIsXG4gICAgXCJSeXppaFwiLFxuICAgIFwiUsOkZGxlclwiLFxuICAgIFwiUsOkbnRzY2hcIixcbiAgICBcIlLDtmRpZ2VyXCIsXG4gICAgXCJSw7ZzZVwiLFxuICAgIFwiUsO2dHRnZXJcIixcbiAgICBcIlLDvGNrZXJcIixcbiAgICBcIlLDvGRpZ2VyXCIsXG4gICAgXCJSw7x0ZXJcIixcbiAgICBcIlNhY2hzZVwiLFxuICAgIFwiU2Fja1wiLFxuICAgIFwiU2FmbGFuaXNcIixcbiAgICBcIlNhZ2FmZVwiLFxuICAgIFwiU2Fnb25hc1wiLFxuICAgIFwiU2FobmVyXCIsXG4gICAgXCJTYWlsZVwiLFxuICAgIFwiU2FpbGVyXCIsXG4gICAgXCJTYWxvd1wiLFxuICAgIFwiU2FsemVyXCIsXG4gICAgXCJTYWx6bWFublwiLFxuICAgIFwiU2FtbWVydFwiLFxuICAgIFwiU2FuZGVyXCIsXG4gICAgXCJTYXJ2YXJpXCIsXG4gICAgXCJTYXR0ZWxtYWllclwiLFxuICAgIFwiU2F1ZXJcIixcbiAgICBcIlNhdWVybGFuZFwiLFxuICAgIFwiU2F1bXdlYmVyXCIsXG4gICAgXCJTYXZvaWFcIixcbiAgICBcIlNjY1wiLFxuICAgIFwiU2NoYWNodFwiLFxuICAgIFwiU2NoYWVmZXJcIixcbiAgICBcIlNjaGFmZmFyemlrXCIsXG4gICAgXCJTY2hhaGJhc2lhblwiLFxuICAgIFwiU2NoYXJmXCIsXG4gICAgXCJTY2hlZGxlclwiLFxuICAgIFwiU2NoZWVyXCIsXG4gICAgXCJTY2hlbGtcIixcbiAgICBcIlNjaGVsbGVuYmVja1wiLFxuICAgIFwiU2NoZW1iZXJhXCIsXG4gICAgXCJTY2hlbmtcIixcbiAgICBcIlNjaGVyYmFydGhcIixcbiAgICBcIlNjaGVyZXJcIixcbiAgICBcIlNjaGVyc2luZ1wiLFxuICAgIFwiU2NoZXJ6XCIsXG4gICAgXCJTY2hldXJlclwiLFxuICAgIFwiU2NoZXVyaW5nXCIsXG4gICAgXCJTY2hleXR0XCIsXG4gICAgXCJTY2hpZWxrZVwiLFxuICAgIFwiU2NoaWVza293XCIsXG4gICAgXCJTY2hpbGRoYXVlclwiLFxuICAgIFwiU2NoaWxsaW5nXCIsXG4gICAgXCJTY2hpbWFcIixcbiAgICBcIlNjaGltbWVyXCIsXG4gICAgXCJTY2hpbmR6aWVsb3J6XCIsXG4gICAgXCJTY2hpcm1lclwiLFxuICAgIFwiU2NoaXJybWVpc3RlclwiLFxuICAgIFwiU2NobGFjaHRlclwiLFxuICAgIFwiU2NobGFuZ2VuXCIsXG4gICAgXCJTY2hsYXdpdHpcIixcbiAgICBcIlNjaGxlY2h0d2VnXCIsXG4gICAgXCJTY2hsZXlcIixcbiAgICBcIlNjaGxpY2h0XCIsXG4gICAgXCJTY2hsaXR6ZXJcIixcbiAgICBcIlNjaG1hbHpsZVwiLFxuICAgIFwiU2NobWlkXCIsXG4gICAgXCJTY2htaWR0XCIsXG4gICAgXCJTY2htaWR0Y2hlblwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobWl0elwiLFxuICAgIFwiU2NobXVobFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2huZWx0aW5nXCIsXG4gICAgXCJTY2huaWVkZXJcIixcbiAgICBcIlNjaG5pZWRlcm1laWVyXCIsXG4gICAgXCJTY2huw7xyZXJcIixcbiAgICBcIlNjaG9iZXJnXCIsXG4gICAgXCJTY2hvbHpcIixcbiAgICBcIlNjaG9uYmVyZ1wiLFxuICAgIFwiU2Nob25kZWxtYWllclwiLFxuICAgIFwiU2Nob3JyXCIsXG4gICAgXCJTY2hvdHRcIixcbiAgICBcIlNjaG90dG1hbm5cIixcbiAgICBcIlNjaG91cmVuXCIsXG4gICAgXCJTY2hyYWRlclwiLFxuICAgIFwiU2NocmFtbVwiLFxuICAgIFwiU2NocmVja1wiLFxuICAgIFwiU2NocmVpYmVyXCIsXG4gICAgXCJTY2hyZWluZXJcIixcbiAgICBcIlNjaHJlaXRlclwiLFxuICAgIFwiU2Nocm9kZXJcIixcbiAgICBcIlNjaHLDtmRlclwiLFxuICAgIFwiU2NodWVybWFublwiLFxuICAgIFwiU2NodWZmXCIsXG4gICAgXCJTY2h1aGFqXCIsXG4gICAgXCJTY2h1bGR0XCIsXG4gICAgXCJTY2h1bHRcIixcbiAgICBcIlNjaHVsdGVcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNjaHVsdHplXCIsXG4gICAgXCJTY2h1bHpcIixcbiAgICBcIlNjaHVsemVcIixcbiAgICBcIlNjaHVtYWNoZXJcIixcbiAgICBcIlNjaHVtYW5uXCIsXG4gICAgXCJTY2h1cHBcIixcbiAgICBcIlNjaHVyaVwiLFxuICAgIFwiU2NodXN0ZXJcIixcbiAgICBcIlNjaHdhYlwiLFxuICAgIFwiU2Nod2FsbVwiLFxuICAgIFwiU2Nod2FuYmVja1wiLFxuICAgIFwiU2Nod2FuZGtlXCIsXG4gICAgXCJTY2h3YW5pdHpcIixcbiAgICBcIlNjaHdhcnRob2ZmXCIsXG4gICAgXCJTY2h3YXJ0elwiLFxuICAgIFwiU2Nod2FyelwiLFxuICAgIFwiU2Nod2FyemVyXCIsXG4gICAgXCJTY2h3YXJ6a29wZlwiLFxuICAgIFwiU2Nod2Fyem1laWVyXCIsXG4gICAgXCJTY2h3YXRsb1wiLFxuICAgIFwiU2Nod2Vpc2Z1cnRoXCIsXG4gICAgXCJTY2h3ZW5uZW5cIixcbiAgICBcIlNjaHdlcmR0bmVyXCIsXG4gICAgXCJTY2h3aWRkZVwiLFxuICAgIFwiU2Nod2lya3NjaGxpZXNcIixcbiAgICBcIlNjaHd1Y2hvd1wiLFxuICAgIFwiU2Now6RmZXJcIixcbiAgICBcIlNjaMOkZmZlbFwiLFxuICAgIFwiU2Now6RmZmVyXCIsXG4gICAgXCJTY2jDpG5pbmdcIixcbiAgICBcIlNjaMO2Y2tlbFwiLFxuICAgIFwiU2Now7ZuYmFsbFwiLFxuICAgIFwiU2Now7ZuYmVja1wiLFxuICAgIFwiU2Now7ZuYmVyZ1wiLFxuICAgIFwiU2Now7ZuZWJlY2tcIixcbiAgICBcIlNjaMO2bmVuYmVyZ2VyXCIsXG4gICAgXCJTY2jDtm5mZWxkXCIsXG4gICAgXCJTY2jDtm5oZXJyXCIsXG4gICAgXCJTY2jDtm5sZWJlXCIsXG4gICAgXCJTY2jDtnR6XCIsXG4gICAgXCJTY2jDvGxlclwiLFxuICAgIFwiU2Now7xwcGVsXCIsXG4gICAgXCJTY2jDvHR6XCIsXG4gICAgXCJTY2jDvHR6ZVwiLFxuICAgIFwiU2VlZ2VyXCIsXG4gICAgXCJTZWVsaWdcIixcbiAgICBcIlNlaGxzXCIsXG4gICAgXCJTZWlib2xkXCIsXG4gICAgXCJTZWlkZWxcIixcbiAgICBcIlNlaWRlcnNcIixcbiAgICBcIlNlaWdlbFwiLFxuICAgIFwiU2VpbGVyXCIsXG4gICAgXCJTZWl0elwiLFxuICAgIFwiU2VtaXNjaFwiLFxuICAgIFwiU2Vua2VsXCIsXG4gICAgXCJTZXdhbGRcIixcbiAgICBcIlNpZWJlbFwiLFxuICAgIFwiU2llYmVydFwiLFxuICAgIFwiU2llZ2xpbmdcIixcbiAgICBcIlNpZWxlbWFublwiLFxuICAgIFwiU2llbW9uXCIsXG4gICAgXCJTaWVuZXJcIixcbiAgICBcIlNpZXZlcnNcIixcbiAgICBcIlNpZXdlcnRcIixcbiAgICBcIlNpaGxlclwiLFxuICAgIFwiU2lsbGFoXCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiU2lubmh1YmVyXCIsXG4gICAgXCJTaXNjaGthXCIsXG4gICAgXCJTa2liaWNraVwiLFxuICAgIFwiU2xhZGVrXCIsXG4gICAgXCJTbG90dGFcIixcbiAgICBcIlNtaWVqYVwiLFxuICAgIFwiU29ib2xsXCIsXG4gICAgXCJTb2tvbG93c2tpXCIsXG4gICAgXCJTb2xsZXJcIixcbiAgICBcIlNvbGxuZXJcIixcbiAgICBcIlNvbW1lclwiLFxuICAgIFwiU29tc3NpY2hcIixcbiAgICBcIlNvbm5cIixcbiAgICBcIlNvbm5hYmVuZFwiLFxuICAgIFwiU3BhaG5cIixcbiAgICBcIlNwYW5rXCIsXG4gICAgXCJTcGVsbWV5ZXJcIixcbiAgICBcIlNwaWVnZWxidXJnXCIsXG4gICAgXCJTcGllbHZvZ2VsXCIsXG4gICAgXCJTcGlubmVyXCIsXG4gICAgXCJTcGl0em3DvGxsZXJcIixcbiAgICBcIlNwbGludGVyXCIsXG4gICAgXCJTcG9ycmVyXCIsXG4gICAgXCJTcHJlbmdlclwiLFxuICAgIFwiU3DDtnR0ZWxcIixcbiAgICBcIlN0YWhsXCIsXG4gICAgXCJTdGFuZ1wiLFxuICAgIFwiU3RhbmdlclwiLFxuICAgIFwiU3RhdXNzXCIsXG4gICAgXCJTdGVkaW5nXCIsXG4gICAgXCJTdGVmZmVuXCIsXG4gICAgXCJTdGVmZm55XCIsXG4gICAgXCJTdGVpZGxcIixcbiAgICBcIlN0ZWlnYXVmXCIsXG4gICAgXCJTdGVpblwiLFxuICAgIFwiU3RlaW5lY2tlXCIsXG4gICAgXCJTdGVpbmVydFwiLFxuICAgIFwiU3RlaW5rYW1wXCIsXG4gICAgXCJTdGVpbm1ldHpcIixcbiAgICBcIlN0ZWxrZW5zXCIsXG4gICAgXCJTdGVuZ2VsXCIsXG4gICAgXCJTdGVuZ2xcIixcbiAgICBcIlN0ZW56ZWxcIixcbiAgICBcIlN0ZXBhbm92XCIsXG4gICAgXCJTdGVwaGFuXCIsXG4gICAgXCJTdGVyblwiLFxuICAgIFwiU3RldWtcIixcbiAgICBcIlN0aWVmXCIsXG4gICAgXCJTdGlmZWxcIixcbiAgICBcIlN0b2xsXCIsXG4gICAgXCJTdG9sbGVcIixcbiAgICBcIlN0b2x6XCIsXG4gICAgXCJTdG9ybFwiLFxuICAgIFwiU3RvcnBcIixcbiAgICBcIlN0b3V0amVzZGlqa1wiLFxuICAgIFwiU3RyYXRtYW5uXCIsXG4gICAgXCJTdHJhdWJcIixcbiAgICBcIlN0cmF1c2FcIixcbiAgICBcIlN0cmVja1wiLFxuICAgIFwiU3RyZWVzZVwiLFxuICAgIFwiU3RyZWdlXCIsXG4gICAgXCJTdHJlaXRcIixcbiAgICBcIlN0cmVsbGVyXCIsXG4gICAgXCJTdHJpZWRlclwiLFxuICAgIFwiU3RyaWV6ZWxcIixcbiAgICBcIlN0cm9naWVzXCIsXG4gICAgXCJTdHJvaHNjaGFua1wiLFxuICAgIFwiU3RydW56XCIsXG4gICAgXCJTdHJ1dHpcIixcbiAgICBcIlN0dWJlXCIsXG4gICAgXCJTdMO2Y2tlcnRcIixcbiAgICBcIlN0w7ZwcGxlclwiLFxuICAgIFwiU3TDtndlclwiLFxuICAgIFwiU3TDvHJtZXJcIixcbiAgICBcIlN1ZmZhXCIsXG4gICAgXCJTdWpld1wiLFxuICAgIFwiU3Vzc21hbm5cIixcbiAgICBcIlN1dGhlXCIsXG4gICAgXCJTdXRzY2hldFwiLFxuICAgIFwiU3dpbGxpbXNcIixcbiAgICBcIlN6ZW5kcmVpXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlPDvHJ0aFwiLFxuICAgIFwiVGFmZWxtZWllclwiLFxuICAgIFwiVGFuZ1wiLFxuICAgIFwiVGFzY2hlXCIsXG4gICAgXCJUYXVmcmF0c2hvZmVyXCIsXG4gICAgXCJUZWdldGhvZlwiLFxuICAgIFwiVGVpY2htYW5uXCIsXG4gICAgXCJUZXBwZXJcIixcbiAgICBcIlRlcmhlaWRlblwiLFxuICAgIFwiVGVybGVja2lcIixcbiAgICBcIlRldWZlbFwiLFxuICAgIFwiVGhlZWxlXCIsXG4gICAgXCJUaGlla2VcIixcbiAgICBcIlRoaW1tXCIsXG4gICAgXCJUaGlvbWFzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRocmllbmVcIixcbiAgICBcIlRocsOkbmhhcmR0XCIsXG4gICAgXCJUaHVzdFwiLFxuICAgIFwiVGh5c3NlblwiLFxuICAgIFwiVGjDtm5lXCIsXG4gICAgXCJUaWRvd1wiLFxuICAgIFwiVGllZHRrZVwiLFxuICAgIFwiVGlldHplXCIsXG4gICAgXCJUaWxnbmVyXCIsXG4gICAgXCJUaWxsYWNrXCIsXG4gICAgXCJUaW1tZXJtYW5uXCIsXG4gICAgXCJUaXNjaGxlclwiLFxuICAgIFwiVGlzY2htYW5uXCIsXG4gICAgXCJUaXR0bWFuXCIsXG4gICAgXCJUaXZvbnRzY2hpa1wiLFxuICAgIFwiVG9uYXRcIixcbiAgICBcIlRvbm5cIixcbiAgICBcIlRyYW1wZWxpXCIsXG4gICAgXCJUcmF1dGhcIixcbiAgICBcIlRyYXV0bWFublwiLFxuICAgIFwiVHJhdmFuXCIsXG4gICAgXCJUcmVmZlwiLFxuICAgIFwiVHJlbW1lbFwiLFxuICAgIFwiVHJlc3NcIixcbiAgICBcIlRzYW1vbmlraWFuXCIsXG4gICAgXCJUc2NoaWVyc1wiLFxuICAgIFwiVHNjaGlyY2hcIixcbiAgICBcIlR1Y2hcIixcbiAgICBcIlR1Y2hvbGtlXCIsXG4gICAgXCJUdWRvd1wiLFxuICAgIFwiVHVzY2htb1wiLFxuICAgIFwiVMOkY2hsXCIsXG4gICAgXCJUw7ZiYmVuXCIsXG4gICAgXCJUw7ZwZmVyXCIsXG4gICAgXCJVaGxlbWFublwiLFxuICAgIFwiVWhsaWdcIixcbiAgICBcIlVocmlnXCIsXG4gICAgXCJVaWJlbFwiLFxuICAgIFwiVWxpY3prYVwiLFxuICAgIFwiVWxsbWFublwiLFxuICAgIFwiVWxscmljaFwiLFxuICAgIFwiVW1iYWNoXCIsXG4gICAgXCJVbWxhdWZ0XCIsXG4gICAgXCJVbW1pbmdlclwiLFxuICAgIFwiVW5nZXJcIixcbiAgICBcIlVudGVycGFpbnRuZXJcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJVcmJhbmlha1wiLFxuICAgIFwiVXJiYW5za3lcIixcbiAgICBcIlVyaGlnXCIsXG4gICAgXCJWYWhsZW5zaWVja1wiLFxuICAgIFwiVmFuXCIsXG4gICAgXCJWYW5nZXJtYWluXCIsXG4gICAgXCJWYXRlclwiLFxuICAgIFwiVmVuZ2hhdXNcIixcbiAgICBcIlZlcm5pZXN0XCIsXG4gICAgXCJWZXJ6aVwiLFxuICAgIFwiVmV5XCIsXG4gICAgXCJWaWVsbGVobmVyXCIsXG4gICAgXCJWaWV3ZWdcIixcbiAgICBcIlZvZWxrZWxcIixcbiAgICBcIlZvZ2VsXCIsXG4gICAgXCJWb2dlbGdzYW5nXCIsXG4gICAgXCJWb2d0XCIsXG4gICAgXCJWb2lndFwiLFxuICAgIFwiVm9rdWhsXCIsXG4gICAgXCJWb2xrXCIsXG4gICAgXCJWb2xrZXJcIixcbiAgICBcIlZvbGttYW5uXCIsXG4gICAgXCJWb25cIixcbiAgICBcIlZvbmFcIixcbiAgICBcIlZvbnRlaW5cIixcbiAgICBcIldhY2hlbmJydW5uZXJcIixcbiAgICBcIldhY2h0ZWxcIixcbiAgICBcIldhZ25lclwiLFxuICAgIFwiV2FpYmVsXCIsXG4gICAgXCJXYWthblwiLFxuICAgIFwiV2FsZG1hbm5cIixcbiAgICBcIldhbGxuZXJcIixcbiAgICBcIldhbGxzdGFiXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbHRoZXJcIixcbiAgICBcIldhbHRvblwiLFxuICAgIFwiV2FselwiLFxuICAgIFwiV2FubmVyXCIsXG4gICAgXCJXYXJ0ZW5iZXJnXCIsXG4gICAgXCJXYXNjaGLDvHNjaFwiLFxuICAgIFwiV2Fzc2lsZXdcIixcbiAgICBcIldhc3NpbHVrXCIsXG4gICAgXCJXZWJlclwiLFxuICAgIFwiV2VocnNlblwiLFxuICAgIFwiV2VpZGxpY2hcIixcbiAgICBcIldlaWRuZXJcIixcbiAgICBcIldlaWdlbFwiLFxuICAgIFwiV2VpZ2h0XCIsXG4gICAgXCJXZWlsZXJcIixcbiAgICBcIldlaW1lclwiLFxuICAgIFwiV2Vpc1wiLFxuICAgIFwiV2Vpc3NcIixcbiAgICBcIldlbGxlclwiLFxuICAgIFwiV2Vsc2NoXCIsXG4gICAgXCJXZWx6XCIsXG4gICAgXCJXZWx6ZWxcIixcbiAgICBcIldlbmlnZXJcIixcbiAgICBcIldlbmtcIixcbiAgICBcIldlcmxlXCIsXG4gICAgXCJXZXJuZXJcIixcbiAgICBcIldlcnJtYW5uXCIsXG4gICAgXCJXZXNzZWxcIixcbiAgICBcIldlc3NpbmdoYWdlXCIsXG4gICAgXCJXZXllbFwiLFxuICAgIFwiV2V6ZWxcIixcbiAgICBcIldpY2htYW5uXCIsXG4gICAgXCJXaWNrZXJ0XCIsXG4gICAgXCJXaWViZVwiLFxuICAgIFwiV2llY2htYW5uXCIsXG4gICAgXCJXaWVnZWxtYW5uXCIsXG4gICAgXCJXaWVyaWdcIixcbiAgICBcIldpZXNlXCIsXG4gICAgXCJXaWVzZXJcIixcbiAgICBcIldpbGhlbG1cIixcbiAgICBcIldpbGt5XCIsXG4gICAgXCJXaWxsXCIsXG4gICAgXCJXaWxsd2FjaGVyXCIsXG4gICAgXCJXaWx0c1wiLFxuICAgIFwiV2ltbWVyXCIsXG4gICAgXCJXaW5rZWxtYW5uXCIsXG4gICAgXCJXaW5rbGVyXCIsXG4gICAgXCJXaW50ZXJcIixcbiAgICBcIldpc2NoZWtcIixcbiAgICBcIldpc2NoZXJcIixcbiAgICBcIldpc3NpbmdcIixcbiAgICBcIldpdHRpY2hcIixcbiAgICBcIldpdHRsXCIsXG4gICAgXCJXb2xmXCIsXG4gICAgXCJXb2xmYXJ0aFwiLFxuICAgIFwiV29sZmZcIixcbiAgICBcIldvbGxlbmJlcmdcIixcbiAgICBcIldvbGxtYW5uXCIsXG4gICAgXCJXb3l0a293c2thXCIsXG4gICAgXCJXdWpha1wiLFxuICAgIFwiV3VybVwiLFxuICAgIFwiV3lsdWRkYVwiLFxuICAgIFwiV8O2bHBlcnRcIixcbiAgICBcIlfDtnNjaGxlclwiLFxuICAgIFwiV8O8aG5cIixcbiAgICBcIlfDvG5zY2hlXCIsXG4gICAgXCJaYWNoXCIsXG4gICAgXCJaYWN6a2lld2ljelwiLFxuICAgIFwiWmFoblwiLFxuICAgIFwiWmFpdHVjXCIsXG4gICAgXCJaYW5kdFwiLFxuICAgIFwiWmFubmVyXCIsXG4gICAgXCJaYXBsZXRhbFwiLFxuICAgIFwiWmF1YmVyXCIsXG4gICAgXCJaZWlkbGVyXCIsXG4gICAgXCJaZWtsXCIsXG4gICAgXCJaZW5kZXJcIixcbiAgICBcIlpldWNoXCIsXG4gICAgXCJaZXllblwiLFxuICAgIFwiWmV5aGxlXCIsXG4gICAgXCJaaWVnbGVyXCIsXG4gICAgXCJaaW1hbnlpXCIsXG4gICAgXCJaaW1tZXJcIixcbiAgICBcIlppbW1lcm1hbm5cIixcbiAgICBcIlppbnNlclwiLFxuICAgIFwiWmludGxcIixcbiAgICBcIlppcHBcIixcbiAgICBcIlppcHNlXCIsXG4gICAgXCJac2NodW5rZVwiLFxuICAgIFwiWnViZXJcIixcbiAgICBcIlp3aWVuZXJcIixcbiAgICBcIlrDvG1zYW5kZVwiLFxuICAgIFwiw5ZzdHJpbmdlclwiLFxuICAgIFwiw5xiZXJhY2tlclwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkRyLlwiLFxuICAgIFwiUHJvZi4gRHIuXCJcbiAgXSxcbiAgXCJub2JpbGl0eV90aXRsZV9wcmVmaXhcIjogW1xuICAgIFwienVcIixcbiAgICBcInZvblwiLFxuICAgIFwidm9tXCIsXG4gICAgXCJ2b24gZGVyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje25vYmlsaXR5X3RpdGxlX3ByZWZpeH0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZV9BVC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwMSAjIyMjIyMjXCIsXG4gICAgXCIwMSMjIyMjIyNcIixcbiAgICBcIis0My0xLSMjIyMjIyNcIixcbiAgICBcIis0MzEjIyMjIyMjXCIsXG4gICAgXCIwIyMjIyAjIyMjXCIsXG4gICAgXCIwIyMjIyMjIyMjXCIsXG4gICAgXCIrNDMtIyMjIy0jIyMjXCIsXG4gICAgXCIrNDMgIyMjIyMjIyNcIlxuICBdXG59O1xuZGVfQVQuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIis0My02IyMtIyMjIyMjI1wiLFxuICAgIFwiMDYjIy0jIyMjIyMjI1wiLFxuICAgIFwiKzQzNiMjIyMjIyMjI1wiLFxuICAgIFwiMDYjIyMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBkZV9DSCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGRlX0NIO1xuZGVfQ0gudGl0bGUgPSBcIkdlcm1hbiAoU3dpdHplcmxhbmQpXCI7XG5kZV9DSC5hZGRyZXNzID0ge1xuICBcImNvdW50cnlfY29kZVwiOiBbXG4gICAgXCJDSFwiLFxuICAgIFwiQ0hcIixcbiAgICBcIkNIXCIsXG4gICAgXCJERVwiLFxuICAgIFwiQVRcIixcbiAgICBcIlVTXCIsXG4gICAgXCJMSVwiLFxuICAgIFwiVVNcIixcbiAgICBcIkhLXCIsXG4gICAgXCJWTlwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiMSMjI1wiLFxuICAgIFwiMiMjI1wiLFxuICAgIFwiMyMjI1wiLFxuICAgIFwiNCMjI1wiLFxuICAgIFwiNSMjI1wiLFxuICAgIFwiNiMjI1wiLFxuICAgIFwiNyMjI1wiLFxuICAgIFwiOCMjI1wiLFxuICAgIFwiOSMjI1wiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIlNjaHdlaXpcIlxuICBdXG59O1xuZGVfQ0guY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiQUdcIixcbiAgICBcIkdtYkhcIixcbiAgICBcInVuZCBTw7ZobmVcIixcbiAgICBcInVuZCBQYXJ0bmVyXCIsXG4gICAgXCImIENvLlwiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJMTENcIixcbiAgICBcIkluYy5cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IHVuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZV9DSC5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJiaXpcIixcbiAgICBcImNoXCIsXG4gICAgXCJkZVwiLFxuICAgIFwibGlcIixcbiAgICBcImF0XCIsXG4gICAgXCJjaFwiLFxuICAgIFwiY2hcIlxuICBdXG59O1xuZGVfQ0gucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDgwMCAjIyMgIyMjXCIsXG4gICAgXCIwODAwICMjICMjICMjXCIsXG4gICAgXCIwIyMgIyMjICMjICMjXCIsXG4gICAgXCIwIyMgIyMjICMjICMjXCIsXG4gICAgXCIrNDEgIyMgIyMjICMjICMjXCIsXG4gICAgXCIwOTAwICMjIyAjIyNcIixcbiAgICBcIjA3NiAjIyMgIyMgIyNcIixcbiAgICBcIis0MTc4ICMjIyAjIyAjI1wiLFxuICAgIFwiMDA0MSA3OSAjIyMgIyMgIyNcIlxuICBdXG59O1xuIiwidmFyIGVuID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW47XG5lbi50aXRsZSA9IFwiRW5nbGlzaFwiO1xuZW4uc2VwYXJhdG9yID0gXCIgJiBcIjtcbmVuLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiTm9ydGhcIixcbiAgICBcIkVhc3RcIixcbiAgICBcIldlc3RcIixcbiAgICBcIlNvdXRoXCIsXG4gICAgXCJOZXdcIixcbiAgICBcIkxha2VcIixcbiAgICBcIlBvcnRcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcInRvd25cIixcbiAgICBcInRvblwiLFxuICAgIFwibGFuZFwiLFxuICAgIFwidmlsbGVcIixcbiAgICBcImJlcmdcIixcbiAgICBcImJ1cmdoXCIsXG4gICAgXCJib3JvdWdoXCIsXG4gICAgXCJidXJ5XCIsXG4gICAgXCJ2aWV3XCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJtb3V0aFwiLFxuICAgIFwic3RhZFwiLFxuICAgIFwiZnVydFwiLFxuICAgIFwiY2hlc3RlclwiLFxuICAgIFwibW91dGhcIixcbiAgICBcImZvcnRcIixcbiAgICBcImhhdmVuXCIsXG4gICAgXCJzaWRlXCIsXG4gICAgXCJzaGlyZVwiXG4gIF0sXG4gIC8vIFRPRE86IGdldCBjb21tb24gQ291bnR5IG5hbWVzIGluIEFtZXJpY2EgYW5kIHBvcHVsYXRlIGhlcmVcbiAgXCJjb3VudHlcIjogW1xuICAgIFwiQXZvblwiLFxuICAgIFwiQmVkZm9yZHNoaXJlXCIsXG4gICAgXCJCZXJrc2hpcmVcIixcbiAgICBcIkJvcmRlcnNcIixcbiAgICBcIkJ1Y2tpbmdoYW1zaGlyZVwiLFxuICAgIFwiQ2FtYnJpZGdlc2hpcmVcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnaGFuaXN0YW5cIixcbiAgICBcIkFsYmFuaWFcIixcbiAgICBcIkFsZ2VyaWFcIixcbiAgICBcIkFtZXJpY2FuIFNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcmN0aWNhICh0aGUgdGVycml0b3J5IFNvdXRoIG9mIDYwIGRlZyBTKVwiLFxuICAgIFwiQW50aWd1YSBhbmQgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5hXCIsXG4gICAgXCJBcm1lbmlhXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXVzdHJhbGlhXCIsXG4gICAgXCJBdXN0cmlhXCIsXG4gICAgXCJBemVyYmFpamFuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJCYW5nbGFkZXNoXCIsXG4gICAgXCJCYXJiYWRvc1wiLFxuICAgIFwiQmVsYXJ1c1wiLFxuICAgIFwiQmVsZ2l1bVwiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZW5pblwiLFxuICAgIFwiQmVybXVkYVwiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2xpdmlhXCIsXG4gICAgXCJCb3NuaWEgYW5kIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm91dmV0IElzbGFuZCAoQm91dmV0b3lhKVwiLFxuICAgIFwiQnJhemlsXCIsXG4gICAgXCJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkgKENoYWdvcyBBcmNoaXBlbGFnbylcIixcbiAgICBcIkJydW5laSBEYXJ1c3NhbGFtXCIsXG4gICAgXCJCdWxnYXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1ib2RpYVwiLFxuICAgIFwiQ2FtZXJvb25cIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2FwZSBWZXJkZVwiLFxuICAgIFwiQ2F5bWFuIElzbGFuZHNcIixcbiAgICBcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY1wiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJDaHJpc3RtYXMgSXNsYW5kXCIsXG4gICAgXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9yb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJDb25nb1wiLFxuICAgIFwiQ29vayBJc2xhbmRzXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3RlIGQnSXZvaXJlXCIsXG4gICAgXCJDcm9hdGlhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDeXBydXNcIixcbiAgICBcIkN6ZWNoIFJlcHVibGljXCIsXG4gICAgXCJEZW5tYXJrXCIsXG4gICAgXCJEamlib3V0aVwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIkRvbWluaWNhbiBSZXB1YmxpY1wiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiRWd5cHRcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcXVhdG9yaWFsIEd1aW5lYVwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRoaW9waWFcIixcbiAgICBcIkZhcm9lIElzbGFuZHNcIixcbiAgICBcIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKVwiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiRmlubGFuZFwiLFxuICAgIFwiRnJhbmNlXCIsXG4gICAgXCJGcmVuY2ggR3VpYW5hXCIsXG4gICAgXCJGcmVuY2ggUG9seW5lc2lhXCIsXG4gICAgXCJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXNcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkdlcm1hbnlcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyZWVjZVwiLFxuICAgIFwiR3JlZW5sYW5kXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHdWFkZWxvdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kc1wiLFxuICAgIFwiSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSlcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nIEtvbmdcIixcbiAgICBcIkh1bmdhcnlcIixcbiAgICBcIkljZWxhbmRcIixcbiAgICBcIkluZGlhXCIsXG4gICAgXCJJbmRvbmVzaWFcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklyYXFcIixcbiAgICBcIklyZWxhbmRcIixcbiAgICBcIklzbGUgb2YgTWFuXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkl0YWx5XCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIkthemFraHN0YW5cIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiRGVtb2NyYXRpYyBQZW9wbGUncyBSZXB1YmxpYyBvZiBLb3JlYVwiLFxuICAgIFwiUmVwdWJsaWMgb2YgS29yZWFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiS3lyZ3l6IFJlcHVibGljXCIsXG4gICAgXCJMYW8gUGVvcGxlJ3MgRGVtb2NyYXRpYyBSZXB1YmxpY1wiLFxuICAgIFwiTGF0dmlhXCIsXG4gICAgXCJMZWJhbm9uXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXRodWFuaWFcIixcbiAgICBcIkx1eGVtYm91cmdcIixcbiAgICBcIk1hY2FvXCIsXG4gICAgXCJNYWNlZG9uaWFcIixcbiAgICBcIk1hZGFnYXNjYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIk1hbGRpdmVzXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyc2hhbGwgSXNsYW5kc1wiLFxuICAgIFwiTWFydGluaXF1ZVwiLFxuICAgIFwiTWF1cml0YW5pYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXhpY29cIixcbiAgICBcIk1pY3JvbmVzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29saWFcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1vcm9jY29cIixcbiAgICBcIk1vemFtYmlxdWVcIixcbiAgICBcIk15YW5tYXJcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmV0aGVybGFuZHMgQW50aWxsZXNcIixcbiAgICBcIk5ldGhlcmxhbmRzXCIsXG4gICAgXCJOZXcgQ2FsZWRvbmlhXCIsXG4gICAgXCJOZXcgWmVhbGFuZFwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICBcIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kc1wiLFxuICAgIFwiTm9yd2F5XCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbGVzdGluaWFuIFRlcnJpdG9yeVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YSBOZXcgR3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiUGhpbGlwcGluZXNcIixcbiAgICBcIlBpdGNhaXJuIElzbGFuZHNcIixcbiAgICBcIlBvbGFuZFwiLFxuICAgIFwiUG9ydHVnYWxcIixcbiAgICBcIlB1ZXJ0byBSaWNvXCIsXG4gICAgXCJRYXRhclwiLFxuICAgIFwiUmV1bmlvblwiLFxuICAgIFwiUm9tYW5pYVwiLFxuICAgIFwiUnVzc2lhbiBGZWRlcmF0aW9uXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIlNhaW50IEJhcnRoZWxlbXlcIixcbiAgICBcIlNhaW50IEhlbGVuYVwiLFxuICAgIFwiU2FpbnQgS2l0dHMgYW5kIE5ldmlzXCIsXG4gICAgXCJTYWludCBMdWNpYVwiLFxuICAgIFwiU2FpbnQgTWFydGluXCIsXG4gICAgXCJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uXCIsXG4gICAgXCJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lc1wiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNhbyBUb21lIGFuZCBQcmluY2lwZVwiLFxuICAgIFwiU2F1ZGkgQXJhYmlhXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTbG92YWtpYSAoU2xvdmFrIFJlcHVibGljKVwiLFxuICAgIFwiU2xvdmVuaWFcIixcbiAgICBcIlNvbG9tb24gSXNsYW5kc1wiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU291dGggQWZyaWNhXCIsXG4gICAgXCJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgIFwiU3BhaW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3VkYW5cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdmFsYmFyZCAmIEphbiBNYXllbiBJc2xhbmRzXCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlN3ZWRlblwiLFxuICAgIFwiU3dpdHplcmxhbmRcIixcbiAgICBcIlN5cmlhbiBBcmFiIFJlcHVibGljXCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIlRhamlraXN0YW5cIixcbiAgICBcIlRhbnphbmlhXCIsXG4gICAgXCJUaGFpbGFuZFwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCBhbmQgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2lhXCIsXG4gICAgXCJUdXJrZXlcIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluZVwiLFxuICAgIFwiVW5pdGVkIEFyYWIgRW1pcmF0ZXNcIixcbiAgICBcIlVuaXRlZCBLaW5nZG9tXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2FcIixcbiAgICBcIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kc1wiLFxuICAgIFwiVXJ1Z3VheVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaFwiLFxuICAgIFwiVmlyZ2luIElzbGFuZHMsIFUuUy5cIixcbiAgICBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgXCJXZXN0ZXJuIFNhaGFyYVwiLFxuICAgIFwiWWVtZW5cIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiWmltYmFid2VcIlxuICBdLFxuICBcImNvdW50cnlfY29kZVwiOiBbXG4gICAgXCJBRFwiLFxuICAgIFwiQUVcIixcbiAgICBcIkFGXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiQUlcIixcbiAgICBcIkFMXCIsXG4gICAgXCJBTVwiLFxuICAgIFwiQU9cIixcbiAgICBcIkFRXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQVNcIixcbiAgICBcIkFUXCIsXG4gICAgXCJBVVwiLFxuICAgIFwiQVdcIixcbiAgICBcIkFYXCIsXG4gICAgXCJBWlwiLFxuICAgIFwiQkFcIixcbiAgICBcIkJCXCIsXG4gICAgXCJCRFwiLFxuICAgIFwiQkVcIixcbiAgICBcIkJGXCIsXG4gICAgXCJCR1wiLFxuICAgIFwiQkhcIixcbiAgICBcIkJJXCIsXG4gICAgXCJCSlwiLFxuICAgIFwiQkxcIixcbiAgICBcIkJNXCIsXG4gICAgXCJCTlwiLFxuICAgIFwiQk9cIixcbiAgICBcIkJRXCIsXG4gICAgXCJCUVwiLFxuICAgIFwiQlJcIixcbiAgICBcIkJTXCIsXG4gICAgXCJCVFwiLFxuICAgIFwiQlZcIixcbiAgICBcIkJXXCIsXG4gICAgXCJCWVwiLFxuICAgIFwiQlpcIixcbiAgICBcIkNBXCIsXG4gICAgXCJDQ1wiLFxuICAgIFwiQ0RcIixcbiAgICBcIkNGXCIsXG4gICAgXCJDR1wiLFxuICAgIFwiQ0hcIixcbiAgICBcIkNJXCIsXG4gICAgXCJDS1wiLFxuICAgIFwiQ0xcIixcbiAgICBcIkNNXCIsXG4gICAgXCJDTlwiLFxuICAgIFwiQ09cIixcbiAgICBcIkNSXCIsXG4gICAgXCJDVVwiLFxuICAgIFwiQ1ZcIixcbiAgICBcIkNXXCIsXG4gICAgXCJDWFwiLFxuICAgIFwiQ1lcIixcbiAgICBcIkNaXCIsXG4gICAgXCJERVwiLFxuICAgIFwiREpcIixcbiAgICBcIkRLXCIsXG4gICAgXCJETVwiLFxuICAgIFwiRE9cIixcbiAgICBcIkRaXCIsXG4gICAgXCJFQ1wiLFxuICAgIFwiRUVcIixcbiAgICBcIkVHXCIsXG4gICAgXCJFSFwiLFxuICAgIFwiRVJcIixcbiAgICBcIkVTXCIsXG4gICAgXCJFVFwiLFxuICAgIFwiRklcIixcbiAgICBcIkZKXCIsXG4gICAgXCJGS1wiLFxuICAgIFwiRk1cIixcbiAgICBcIkZPXCIsXG4gICAgXCJGUlwiLFxuICAgIFwiR0FcIixcbiAgICBcIkdCXCIsXG4gICAgXCJHRFwiLFxuICAgIFwiR0VcIixcbiAgICBcIkdGXCIsXG4gICAgXCJHR1wiLFxuICAgIFwiR0hcIixcbiAgICBcIkdJXCIsXG4gICAgXCJHTFwiLFxuICAgIFwiR01cIixcbiAgICBcIkdOXCIsXG4gICAgXCJHUFwiLFxuICAgIFwiR1FcIixcbiAgICBcIkdSXCIsXG4gICAgXCJHU1wiLFxuICAgIFwiR1RcIixcbiAgICBcIkdVXCIsXG4gICAgXCJHV1wiLFxuICAgIFwiR1lcIixcbiAgICBcIkhLXCIsXG4gICAgXCJITVwiLFxuICAgIFwiSE5cIixcbiAgICBcIkhSXCIsXG4gICAgXCJIVFwiLFxuICAgIFwiSFVcIixcbiAgICBcIklEXCIsXG4gICAgXCJJRVwiLFxuICAgIFwiSUxcIixcbiAgICBcIklNXCIsXG4gICAgXCJJTlwiLFxuICAgIFwiSU9cIixcbiAgICBcIklRXCIsXG4gICAgXCJJUlwiLFxuICAgIFwiSVNcIixcbiAgICBcIklUXCIsXG4gICAgXCJKRVwiLFxuICAgIFwiSk1cIixcbiAgICBcIkpPXCIsXG4gICAgXCJKUFwiLFxuICAgIFwiS0VcIixcbiAgICBcIktHXCIsXG4gICAgXCJLSFwiLFxuICAgIFwiS0lcIixcbiAgICBcIktNXCIsXG4gICAgXCJLTlwiLFxuICAgIFwiS1BcIixcbiAgICBcIktSXCIsXG4gICAgXCJLV1wiLFxuICAgIFwiS1lcIixcbiAgICBcIktaXCIsXG4gICAgXCJMQVwiLFxuICAgIFwiTEJcIixcbiAgICBcIkxDXCIsXG4gICAgXCJMSVwiLFxuICAgIFwiTEtcIixcbiAgICBcIkxSXCIsXG4gICAgXCJMU1wiLFxuICAgIFwiTFRcIixcbiAgICBcIkxVXCIsXG4gICAgXCJMVlwiLFxuICAgIFwiTFlcIixcbiAgICBcIk1BXCIsXG4gICAgXCJNQ1wiLFxuICAgIFwiTURcIixcbiAgICBcIk1FXCIsXG4gICAgXCJNRlwiLFxuICAgIFwiTUdcIixcbiAgICBcIk1IXCIsXG4gICAgXCJNS1wiLFxuICAgIFwiTUxcIixcbiAgICBcIk1NXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiTU9cIixcbiAgICBcIk1QXCIsXG4gICAgXCJNUVwiLFxuICAgIFwiTVJcIixcbiAgICBcIk1TXCIsXG4gICAgXCJNVFwiLFxuICAgIFwiTVVcIixcbiAgICBcIk1WXCIsXG4gICAgXCJNV1wiLFxuICAgIFwiTVhcIixcbiAgICBcIk1ZXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiTkFcIixcbiAgICBcIk5DXCIsXG4gICAgXCJORVwiLFxuICAgIFwiTkZcIixcbiAgICBcIk5HXCIsXG4gICAgXCJOSVwiLFxuICAgIFwiTkxcIixcbiAgICBcIk5PXCIsXG4gICAgXCJOUFwiLFxuICAgIFwiTlJcIixcbiAgICBcIk5VXCIsXG4gICAgXCJOWlwiLFxuICAgIFwiT01cIixcbiAgICBcIlBBXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUEZcIixcbiAgICBcIlBHXCIsXG4gICAgXCJQSFwiLFxuICAgIFwiUEtcIixcbiAgICBcIlBMXCIsXG4gICAgXCJQTVwiLFxuICAgIFwiUE5cIixcbiAgICBcIlBSXCIsXG4gICAgXCJQU1wiLFxuICAgIFwiUFRcIixcbiAgICBcIlBXXCIsXG4gICAgXCJQWVwiLFxuICAgIFwiUUFcIixcbiAgICBcIlJFXCIsXG4gICAgXCJST1wiLFxuICAgIFwiUlNcIixcbiAgICBcIlJVXCIsXG4gICAgXCJSV1wiLFxuICAgIFwiU0FcIixcbiAgICBcIlNCXCIsXG4gICAgXCJTQ1wiLFxuICAgIFwiU0RcIixcbiAgICBcIlNFXCIsXG4gICAgXCJTR1wiLFxuICAgIFwiU0hcIixcbiAgICBcIlNJXCIsXG4gICAgXCJTSlwiLFxuICAgIFwiU0tcIixcbiAgICBcIlNMXCIsXG4gICAgXCJTTVwiLFxuICAgIFwiU05cIixcbiAgICBcIlNPXCIsXG4gICAgXCJTUlwiLFxuICAgIFwiU1NcIixcbiAgICBcIlNUXCIsXG4gICAgXCJTVlwiLFxuICAgIFwiU1hcIixcbiAgICBcIlNZXCIsXG4gICAgXCJTWlwiLFxuICAgIFwiVENcIixcbiAgICBcIlREXCIsXG4gICAgXCJURlwiLFxuICAgIFwiVEdcIixcbiAgICBcIlRIXCIsXG4gICAgXCJUSlwiLFxuICAgIFwiVEtcIixcbiAgICBcIlRMXCIsXG4gICAgXCJUTVwiLFxuICAgIFwiVE5cIixcbiAgICBcIlRPXCIsXG4gICAgXCJUUlwiLFxuICAgIFwiVFRcIixcbiAgICBcIlRWXCIsXG4gICAgXCJUV1wiLFxuICAgIFwiVFpcIixcbiAgICBcIlVBXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiVU1cIixcbiAgICBcIlVTXCIsXG4gICAgXCJVWVwiLFxuICAgIFwiVVpcIixcbiAgICBcIlZBXCIsXG4gICAgXCJWQ1wiLFxuICAgIFwiVkVcIixcbiAgICBcIlZHXCIsXG4gICAgXCJWSVwiLFxuICAgIFwiVk5cIixcbiAgICBcIlZVXCIsXG4gICAgXCJXRlwiLFxuICAgIFwiV1NcIixcbiAgICBcIllFXCIsXG4gICAgXCJZVFwiLFxuICAgIFwiWkFcIixcbiAgICBcIlpNXCIsXG4gICAgXCJaV1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQWxsZXlcIixcbiAgICBcIkF2ZW51ZVwiLFxuICAgIFwiQnJhbmNoXCIsXG4gICAgXCJCcmlkZ2VcIixcbiAgICBcIkJyb29rXCIsXG4gICAgXCJCcm9va3NcIixcbiAgICBcIkJ1cmdcIixcbiAgICBcIkJ1cmdzXCIsXG4gICAgXCJCeXBhc3NcIixcbiAgICBcIkNhbXBcIixcbiAgICBcIkNhbnlvblwiLFxuICAgIFwiQ2FwZVwiLFxuICAgIFwiQ2F1c2V3YXlcIixcbiAgICBcIkNlbnRlclwiLFxuICAgIFwiQ2VudGVyc1wiLFxuICAgIFwiQ2lyY2xlXCIsXG4gICAgXCJDaXJjbGVzXCIsXG4gICAgXCJDbGlmZlwiLFxuICAgIFwiQ2xpZmZzXCIsXG4gICAgXCJDbHViXCIsXG4gICAgXCJDb21tb25cIixcbiAgICBcIkNvcm5lclwiLFxuICAgIFwiQ29ybmVyc1wiLFxuICAgIFwiQ291cnNlXCIsXG4gICAgXCJDb3VydFwiLFxuICAgIFwiQ291cnRzXCIsXG4gICAgXCJDb3ZlXCIsXG4gICAgXCJDb3Zlc1wiLFxuICAgIFwiQ3JlZWtcIixcbiAgICBcIkNyZXNjZW50XCIsXG4gICAgXCJDcmVzdFwiLFxuICAgIFwiQ3Jvc3NpbmdcIixcbiAgICBcIkNyb3Nzcm9hZFwiLFxuICAgIFwiQ3VydmVcIixcbiAgICBcIkRhbGVcIixcbiAgICBcIkRhbVwiLFxuICAgIFwiRGl2aWRlXCIsXG4gICAgXCJEcml2ZVwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkRyaXZlc1wiLFxuICAgIFwiRXN0YXRlXCIsXG4gICAgXCJFc3RhdGVzXCIsXG4gICAgXCJFeHByZXNzd2F5XCIsXG4gICAgXCJFeHRlbnNpb25cIixcbiAgICBcIkV4dGVuc2lvbnNcIixcbiAgICBcIkZhbGxcIixcbiAgICBcIkZhbGxzXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmllbGRcIixcbiAgICBcIkZpZWxkc1wiLFxuICAgIFwiRmxhdFwiLFxuICAgIFwiRmxhdHNcIixcbiAgICBcIkZvcmRcIixcbiAgICBcIkZvcmRzXCIsXG4gICAgXCJGb3Jlc3RcIixcbiAgICBcIkZvcmdlXCIsXG4gICAgXCJGb3JnZXNcIixcbiAgICBcIkZvcmtcIixcbiAgICBcIkZvcmtzXCIsXG4gICAgXCJGb3J0XCIsXG4gICAgXCJGcmVld2F5XCIsXG4gICAgXCJHYXJkZW5cIixcbiAgICBcIkdhcmRlbnNcIixcbiAgICBcIkdhdGV3YXlcIixcbiAgICBcIkdsZW5cIixcbiAgICBcIkdsZW5zXCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZW5zXCIsXG4gICAgXCJHcm92ZVwiLFxuICAgIFwiR3JvdmVzXCIsXG4gICAgXCJIYXJib3JcIixcbiAgICBcIkhhcmJvcnNcIixcbiAgICBcIkhhdmVuXCIsXG4gICAgXCJIZWlnaHRzXCIsXG4gICAgXCJIaWdod2F5XCIsXG4gICAgXCJIaWxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSG9sbG93XCIsXG4gICAgXCJJbmxldFwiLFxuICAgIFwiSW5sZXRcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJJc2xhbmRzXCIsXG4gICAgXCJJc2xhbmRzXCIsXG4gICAgXCJJc2xlXCIsXG4gICAgXCJJc2xlXCIsXG4gICAgXCJKdW5jdGlvblwiLFxuICAgIFwiSnVuY3Rpb25zXCIsXG4gICAgXCJLZXlcIixcbiAgICBcIktleXNcIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJLbm9sbHNcIixcbiAgICBcIkxha2VcIixcbiAgICBcIkxha2VzXCIsXG4gICAgXCJMYW5kXCIsXG4gICAgXCJMYW5kaW5nXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMaWdodFwiLFxuICAgIFwiTGlnaHRzXCIsXG4gICAgXCJMb2FmXCIsXG4gICAgXCJMb2NrXCIsXG4gICAgXCJMb2Nrc1wiLFxuICAgIFwiTG9ja3NcIixcbiAgICBcIkxvZGdlXCIsXG4gICAgXCJMb2RnZVwiLFxuICAgIFwiTG9vcFwiLFxuICAgIFwiTWFsbFwiLFxuICAgIFwiTWFub3JcIixcbiAgICBcIk1hbm9yc1wiLFxuICAgIFwiTWVhZG93XCIsXG4gICAgXCJNZWFkb3dzXCIsXG4gICAgXCJNZXdzXCIsXG4gICAgXCJNaWxsXCIsXG4gICAgXCJNaWxsc1wiLFxuICAgIFwiTWlzc2lvblwiLFxuICAgIFwiTWlzc2lvblwiLFxuICAgIFwiTW90b3J3YXlcIixcbiAgICBcIk1vdW50XCIsXG4gICAgXCJNb3VudGFpblwiLFxuICAgIFwiTW91bnRhaW5cIixcbiAgICBcIk1vdW50YWluc1wiLFxuICAgIFwiTW91bnRhaW5zXCIsXG4gICAgXCJOZWNrXCIsXG4gICAgXCJPcmNoYXJkXCIsXG4gICAgXCJPdmFsXCIsXG4gICAgXCJPdmVycGFzc1wiLFxuICAgIFwiUGFya1wiLFxuICAgIFwiUGFya3NcIixcbiAgICBcIlBhcmt3YXlcIixcbiAgICBcIlBhcmt3YXlzXCIsXG4gICAgXCJQYXNzXCIsXG4gICAgXCJQYXNzYWdlXCIsXG4gICAgXCJQYXRoXCIsXG4gICAgXCJQaWtlXCIsXG4gICAgXCJQaW5lXCIsXG4gICAgXCJQaW5lc1wiLFxuICAgIFwiUGxhY2VcIixcbiAgICBcIlBsYWluXCIsXG4gICAgXCJQbGFpbnNcIixcbiAgICBcIlBsYWluc1wiLFxuICAgIFwiUGxhemFcIixcbiAgICBcIlBsYXphXCIsXG4gICAgXCJQb2ludFwiLFxuICAgIFwiUG9pbnRzXCIsXG4gICAgXCJQb3J0XCIsXG4gICAgXCJQb3J0XCIsXG4gICAgXCJQb3J0c1wiLFxuICAgIFwiUG9ydHNcIixcbiAgICBcIlByYWlyaWVcIixcbiAgICBcIlByYWlyaWVcIixcbiAgICBcIlJhZGlhbFwiLFxuICAgIFwiUmFtcFwiLFxuICAgIFwiUmFuY2hcIixcbiAgICBcIlJhcGlkXCIsXG4gICAgXCJSYXBpZHNcIixcbiAgICBcIlJlc3RcIixcbiAgICBcIlJpZGdlXCIsXG4gICAgXCJSaWRnZXNcIixcbiAgICBcIlJpdmVyXCIsXG4gICAgXCJSb2FkXCIsXG4gICAgXCJSb2FkXCIsXG4gICAgXCJSb2Fkc1wiLFxuICAgIFwiUm9hZHNcIixcbiAgICBcIlJvdXRlXCIsXG4gICAgXCJSb3dcIixcbiAgICBcIlJ1ZVwiLFxuICAgIFwiUnVuXCIsXG4gICAgXCJTaG9hbFwiLFxuICAgIFwiU2hvYWxzXCIsXG4gICAgXCJTaG9yZVwiLFxuICAgIFwiU2hvcmVzXCIsXG4gICAgXCJTa3l3YXlcIixcbiAgICBcIlNwcmluZ1wiLFxuICAgIFwiU3ByaW5nc1wiLFxuICAgIFwiU3ByaW5nc1wiLFxuICAgIFwiU3B1clwiLFxuICAgIFwiU3B1cnNcIixcbiAgICBcIlNxdWFyZVwiLFxuICAgIFwiU3F1YXJlXCIsXG4gICAgXCJTcXVhcmVzXCIsXG4gICAgXCJTcXVhcmVzXCIsXG4gICAgXCJTdGF0aW9uXCIsXG4gICAgXCJTdGF0aW9uXCIsXG4gICAgXCJTdHJhdmVudWVcIixcbiAgICBcIlN0cmF2ZW51ZVwiLFxuICAgIFwiU3RyZWFtXCIsXG4gICAgXCJTdHJlYW1cIixcbiAgICBcIlN0cmVldFwiLFxuICAgIFwiU3RyZWV0XCIsXG4gICAgXCJTdHJlZXRzXCIsXG4gICAgXCJTdW1taXRcIixcbiAgICBcIlN1bW1pdFwiLFxuICAgIFwiVGVycmFjZVwiLFxuICAgIFwiVGhyb3VnaHdheVwiLFxuICAgIFwiVHJhY2VcIixcbiAgICBcIlRyYWNrXCIsXG4gICAgXCJUcmFmZmljd2F5XCIsXG4gICAgXCJUcmFpbFwiLFxuICAgIFwiVHJhaWxcIixcbiAgICBcIlR1bm5lbFwiLFxuICAgIFwiVHVubmVsXCIsXG4gICAgXCJUdXJucGlrZVwiLFxuICAgIFwiVHVybnBpa2VcIixcbiAgICBcIlVuZGVycGFzc1wiLFxuICAgIFwiVW5pb25cIixcbiAgICBcIlVuaW9uc1wiLFxuICAgIFwiVmFsbGV5XCIsXG4gICAgXCJWYWxsZXlzXCIsXG4gICAgXCJWaWFcIixcbiAgICBcIlZpYWR1Y3RcIixcbiAgICBcIlZpZXdcIixcbiAgICBcIlZpZXdzXCIsXG4gICAgXCJWaWxsYWdlXCIsXG4gICAgXCJWaWxsYWdlXCIsXG4gICAgXCJWaWxsYWdlc1wiLFxuICAgIFwiVmlsbGVcIixcbiAgICBcIlZpc3RhXCIsXG4gICAgXCJWaXN0YVwiLFxuICAgIFwiV2Fsa1wiLFxuICAgIFwiV2Fsa3NcIixcbiAgICBcIldhbGxcIixcbiAgICBcIldheVwiLFxuICAgIFwiV2F5c1wiLFxuICAgIFwiV2VsbFwiLFxuICAgIFwiV2VsbHNcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJTdWl0ZSAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjIy0jIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZV9ieV9zdGF0ZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyMtIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxhYmFtYVwiLFxuICAgIFwiQWxhc2thXCIsXG4gICAgXCJBcml6b25hXCIsXG4gICAgXCJBcmthbnNhc1wiLFxuICAgIFwiQ2FsaWZvcm5pYVwiLFxuICAgIFwiQ29sb3JhZG9cIixcbiAgICBcIkNvbm5lY3RpY3V0XCIsXG4gICAgXCJEZWxhd2FyZVwiLFxuICAgIFwiRmxvcmlkYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiSGF3YWlpXCIsXG4gICAgXCJJZGFob1wiLFxuICAgIFwiSWxsaW5vaXNcIixcbiAgICBcIkluZGlhbmFcIixcbiAgICBcIklvd2FcIixcbiAgICBcIkthbnNhc1wiLFxuICAgIFwiS2VudHVja3lcIixcbiAgICBcIkxvdWlzaWFuYVwiLFxuICAgIFwiTWFpbmVcIixcbiAgICBcIk1hcnlsYW5kXCIsXG4gICAgXCJNYXNzYWNodXNldHRzXCIsXG4gICAgXCJNaWNoaWdhblwiLFxuICAgIFwiTWlubmVzb3RhXCIsXG4gICAgXCJNaXNzaXNzaXBwaVwiLFxuICAgIFwiTWlzc291cmlcIixcbiAgICBcIk1vbnRhbmFcIixcbiAgICBcIk5lYnJhc2thXCIsXG4gICAgXCJOZXZhZGFcIixcbiAgICBcIk5ldyBIYW1wc2hpcmVcIixcbiAgICBcIk5ldyBKZXJzZXlcIixcbiAgICBcIk5ldyBNZXhpY29cIixcbiAgICBcIk5ldyBZb3JrXCIsXG4gICAgXCJOb3J0aCBDYXJvbGluYVwiLFxuICAgIFwiTm9ydGggRGFrb3RhXCIsXG4gICAgXCJPaGlvXCIsXG4gICAgXCJPa2xhaG9tYVwiLFxuICAgIFwiT3JlZ29uXCIsXG4gICAgXCJQZW5uc3lsdmFuaWFcIixcbiAgICBcIlJob2RlIElzbGFuZFwiLFxuICAgIFwiU291dGggQ2Fyb2xpbmFcIixcbiAgICBcIlNvdXRoIERha290YVwiLFxuICAgIFwiVGVubmVzc2VlXCIsXG4gICAgXCJUZXhhc1wiLFxuICAgIFwiVXRhaFwiLFxuICAgIFwiVmVybW9udFwiLFxuICAgIFwiVmlyZ2luaWFcIixcbiAgICBcIldhc2hpbmd0b25cIixcbiAgICBcIldlc3QgVmlyZ2luaWFcIixcbiAgICBcIldpc2NvbnNpblwiLFxuICAgIFwiV3lvbWluZ1wiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBTFwiLFxuICAgIFwiQUtcIixcbiAgICBcIkFaXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQ0FcIixcbiAgICBcIkNPXCIsXG4gICAgXCJDVFwiLFxuICAgIFwiREVcIixcbiAgICBcIkZMXCIsXG4gICAgXCJHQVwiLFxuICAgIFwiSElcIixcbiAgICBcIklEXCIsXG4gICAgXCJJTFwiLFxuICAgIFwiSU5cIixcbiAgICBcIklBXCIsXG4gICAgXCJLU1wiLFxuICAgIFwiS1lcIixcbiAgICBcIkxBXCIsXG4gICAgXCJNRVwiLFxuICAgIFwiTURcIixcbiAgICBcIk1BXCIsXG4gICAgXCJNSVwiLFxuICAgIFwiTU5cIixcbiAgICBcIk1TXCIsXG4gICAgXCJNT1wiLFxuICAgIFwiTVRcIixcbiAgICBcIk5FXCIsXG4gICAgXCJOVlwiLFxuICAgIFwiTkhcIixcbiAgICBcIk5KXCIsXG4gICAgXCJOTVwiLFxuICAgIFwiTllcIixcbiAgICBcIk5DXCIsXG4gICAgXCJORFwiLFxuICAgIFwiT0hcIixcbiAgICBcIk9LXCIsXG4gICAgXCJPUlwiLFxuICAgIFwiUEFcIixcbiAgICBcIlJJXCIsXG4gICAgXCJTQ1wiLFxuICAgIFwiU0RcIixcbiAgICBcIlROXCIsXG4gICAgXCJUWFwiLFxuICAgIFwiVVRcIixcbiAgICBcIlZUXCIsXG4gICAgXCJWQVwiLFxuICAgIFwiV0FcIixcbiAgICBcIldWXCIsXG4gICAgXCJXSVwiLFxuICAgIFwiV1lcIlxuICBdLFxuICBcInRpbWVfem9uZVwiOiBbXG4gICAgXCJQYWNpZmljL01pZHdheVwiLFxuICAgIFwiUGFjaWZpYy9QYWdvX1BhZ29cIixcbiAgICBcIlBhY2lmaWMvSG9ub2x1bHVcIixcbiAgICBcIkFtZXJpY2EvSnVuZWF1XCIsXG4gICAgXCJBbWVyaWNhL0xvc19BbmdlbGVzXCIsXG4gICAgXCJBbWVyaWNhL1RpanVhbmFcIixcbiAgICBcIkFtZXJpY2EvRGVudmVyXCIsXG4gICAgXCJBbWVyaWNhL1Bob2VuaXhcIixcbiAgICBcIkFtZXJpY2EvQ2hpaHVhaHVhXCIsXG4gICAgXCJBbWVyaWNhL01hemF0bGFuXCIsXG4gICAgXCJBbWVyaWNhL0NoaWNhZ29cIixcbiAgICBcIkFtZXJpY2EvUmVnaW5hXCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01vbnRlcnJleVwiLFxuICAgIFwiQW1lcmljYS9HdWF0ZW1hbGFcIixcbiAgICBcIkFtZXJpY2EvTmV3X1lvcmtcIixcbiAgICBcIkFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXNcIixcbiAgICBcIkFtZXJpY2EvQm9nb3RhXCIsXG4gICAgXCJBbWVyaWNhL0xpbWFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9IYWxpZmF4XCIsXG4gICAgXCJBbWVyaWNhL0NhcmFjYXNcIixcbiAgICBcIkFtZXJpY2EvTGFfUGF6XCIsXG4gICAgXCJBbWVyaWNhL1NhbnRpYWdvXCIsXG4gICAgXCJBbWVyaWNhL1N0X0pvaG5zXCIsXG4gICAgXCJBbWVyaWNhL1Nhb19QYXVsb1wiLFxuICAgIFwiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzXCIsXG4gICAgXCJBbWVyaWNhL0d1eWFuYVwiLFxuICAgIFwiQW1lcmljYS9Hb2R0aGFiXCIsXG4gICAgXCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhXCIsXG4gICAgXCJBdGxhbnRpYy9Bem9yZXNcIixcbiAgICBcIkF0bGFudGljL0NhcGVfVmVyZGVcIixcbiAgICBcIkV1cm9wZS9EdWJsaW5cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkV1cm9wZS9MaXNib25cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkFmcmljYS9DYXNhYmxhbmNhXCIsXG4gICAgXCJBZnJpY2EvTW9ucm92aWFcIixcbiAgICBcIkV0Yy9VVENcIixcbiAgICBcIkV1cm9wZS9CZWxncmFkZVwiLFxuICAgIFwiRXVyb3BlL0JyYXRpc2xhdmFcIixcbiAgICBcIkV1cm9wZS9CdWRhcGVzdFwiLFxuICAgIFwiRXVyb3BlL0xqdWJsamFuYVwiLFxuICAgIFwiRXVyb3BlL1ByYWd1ZVwiLFxuICAgIFwiRXVyb3BlL1NhcmFqZXZvXCIsXG4gICAgXCJFdXJvcGUvU2tvcGplXCIsXG4gICAgXCJFdXJvcGUvV2Fyc2F3XCIsXG4gICAgXCJFdXJvcGUvWmFncmViXCIsXG4gICAgXCJFdXJvcGUvQnJ1c3NlbHNcIixcbiAgICBcIkV1cm9wZS9Db3BlbmhhZ2VuXCIsXG4gICAgXCJFdXJvcGUvTWFkcmlkXCIsXG4gICAgXCJFdXJvcGUvUGFyaXNcIixcbiAgICBcIkV1cm9wZS9BbXN0ZXJkYW1cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9Sb21lXCIsXG4gICAgXCJFdXJvcGUvU3RvY2tob2xtXCIsXG4gICAgXCJFdXJvcGUvVmllbm5hXCIsXG4gICAgXCJBZnJpY2EvQWxnaWVyc1wiLFxuICAgIFwiRXVyb3BlL0J1Y2hhcmVzdFwiLFxuICAgIFwiQWZyaWNhL0NhaXJvXCIsXG4gICAgXCJFdXJvcGUvSGVsc2lua2lcIixcbiAgICBcIkV1cm9wZS9LaWV2XCIsXG4gICAgXCJFdXJvcGUvUmlnYVwiLFxuICAgIFwiRXVyb3BlL1NvZmlhXCIsXG4gICAgXCJFdXJvcGUvVGFsbGlublwiLFxuICAgIFwiRXVyb3BlL1ZpbG5pdXNcIixcbiAgICBcIkV1cm9wZS9BdGhlbnNcIixcbiAgICBcIkV1cm9wZS9Jc3RhbmJ1bFwiLFxuICAgIFwiRXVyb3BlL01pbnNrXCIsXG4gICAgXCJBc2lhL0plcnVzYWxlbVwiLFxuICAgIFwiQWZyaWNhL0hhcmFyZVwiLFxuICAgIFwiQWZyaWNhL0pvaGFubmVzYnVyZ1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiQXNpYS9LdXdhaXRcIixcbiAgICBcIkFzaWEvUml5YWRoXCIsXG4gICAgXCJBZnJpY2EvTmFpcm9iaVwiLFxuICAgIFwiQXNpYS9CYWdoZGFkXCIsXG4gICAgXCJBc2lhL1RlaHJhblwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvTXVzY2F0XCIsXG4gICAgXCJBc2lhL0Jha3VcIixcbiAgICBcIkFzaWEvVGJpbGlzaVwiLFxuICAgIFwiQXNpYS9ZZXJldmFuXCIsXG4gICAgXCJBc2lhL0thYnVsXCIsXG4gICAgXCJBc2lhL1lla2F0ZXJpbmJ1cmdcIixcbiAgICBcIkFzaWEvS2FyYWNoaVwiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL1Rhc2hrZW50XCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS2F0aG1hbmR1XCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0NvbG9tYm9cIixcbiAgICBcIkFzaWEvQWxtYXR5XCIsXG4gICAgXCJBc2lhL05vdm9zaWJpcnNrXCIsXG4gICAgXCJBc2lhL1Jhbmdvb25cIixcbiAgICBcIkFzaWEvQmFuZ2tva1wiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0pha2FydGFcIixcbiAgICBcIkFzaWEvS3Jhc25veWFyc2tcIixcbiAgICBcIkFzaWEvU2hhbmdoYWlcIixcbiAgICBcIkFzaWEvQ2hvbmdxaW5nXCIsXG4gICAgXCJBc2lhL0hvbmdfS29uZ1wiLFxuICAgIFwiQXNpYS9VcnVtcWlcIixcbiAgICBcIkFzaWEvS3VhbGFfTHVtcHVyXCIsXG4gICAgXCJBc2lhL1NpbmdhcG9yZVwiLFxuICAgIFwiQXNpYS9UYWlwZWlcIixcbiAgICBcIkF1c3RyYWxpYS9QZXJ0aFwiLFxuICAgIFwiQXNpYS9Jcmt1dHNrXCIsXG4gICAgXCJBc2lhL1VsYWFuYmFhdGFyXCIsXG4gICAgXCJBc2lhL1Nlb3VsXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1lha3V0c2tcIixcbiAgICBcIkF1c3RyYWxpYS9EYXJ3aW5cIixcbiAgICBcIkF1c3RyYWxpYS9BZGVsYWlkZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL1N5ZG5leVwiLFxuICAgIFwiQXVzdHJhbGlhL0JyaXNiYW5lXCIsXG4gICAgXCJBdXN0cmFsaWEvSG9iYXJ0XCIsXG4gICAgXCJBc2lhL1ZsYWRpdm9zdG9rXCIsXG4gICAgXCJQYWNpZmljL0d1YW1cIixcbiAgICBcIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5XCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiUGFjaWZpYy9Ob3VtZWFcIixcbiAgICBcIlBhY2lmaWMvRmlqaVwiLFxuICAgIFwiQXNpYS9LYW1jaGF0a2FcIixcbiAgICBcIlBhY2lmaWMvTWFqdXJvXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL1RvbmdhdGFwdVwiLFxuICAgIFwiUGFjaWZpYy9GYWthb2ZvXCIsXG4gICAgXCJQYWNpZmljL0FwaWFcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSAje3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje2J1aWxkaW5nX251bWJlcn0gI3tzdHJlZXRfbmFtZX1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2FcIlxuICBdXG59O1xuZW4uY3JlZGl0X2NhcmQgPSB7XG4gIFwidmlzYVwiOiBbXG4gICAgXCIvNCMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi80IyMjLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwibWFzdGVyY2FyZFwiOiBbXG4gICAgXCIvNVsxLTVdIyMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjc3MS04OSMjLSMjIyMtIyMjTC9cIlxuICBdLFxuICBcImRpc2NvdmVyXCI6IFtcbiAgICBcIi82MDExLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY1IyMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjRbNC05XSMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjAxMS02MiMjLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY1IyMtNjIjIy0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi82NFs0LTldIy02MiMjLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwiYW1lcmljYW5fZXhwcmVzc1wiOiBbXG4gICAgXCIvMzQjIy0jIyMjIyMtIyMjI0wvXCIsXG4gICAgXCIvMzcjIy0jIyMjIyMtIyMjI0wvXCJcbiAgXSxcbiAgXCJkaW5lcnNfY2x1YlwiOiBbXG4gICAgXCIvMzBbMC01XSMtIyMjIyMjLSMjI0wvXCIsXG4gICAgXCIvMzY4Iy0jIyMjIyMtIyMjTC9cIlxuICBdLFxuICBcImpjYlwiOiBbXG4gICAgXCIvMzUyOC0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi8zNTI5LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzM1WzMtOF0jLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwic3dpdGNoXCI6IFtcbiAgICBcIi82NzU5LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY3NTktIyMjIy0jIyMjLSMjIyMtI0wvXCIsXG4gICAgXCIvNjc1OS0jIyMjLSMjIyMtIyMjIy0jI0wvXCJcbiAgXSxcbiAgXCJzb2xvXCI6IFtcbiAgICBcIi82NzY3LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY3NjctIyMjIy0jIyMjLSMjIyMtI0wvXCIsXG4gICAgXCIvNjc2Ny0jIyMjLSMjIyMtIyMjIy0jI0wvXCJcbiAgXSxcbiAgXCJkYW5rb3J0XCI6IFwiLzUwMTktIyMjIy0jIyMjLSMjI0wvXCIsXG4gIFwibWFlc3Ryb1wiOiBbXG4gICAgXCIvNTAjezksMTZ9TC9cIixcbiAgICBcIi81WzYtOF0jezksMTZ9TC9cIixcbiAgICBcIi81NiMjezksMTZ9TC9cIlxuICBdLFxuICBcImZvcmJydWdzZm9yZW5pbmdlblwiOiBcIi82MDA3LTIyIyMtIyMjIy0jIyNML1wiLFxuICBcImxhc2VyXCI6IFtcbiAgICBcIi82MzA0IyMjIyMjIyMjIyNML1wiLFxuICAgIFwiLzY3MDYjIyMjIyMjIyMjI0wvXCIsXG4gICAgXCIvNjc3MSMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi82NzA5IyMjIyMjIyMjIyNML1wiLFxuICAgIFwiLzYzMDQjIyMjIyMjIyN7NSw2fUwvXCIsXG4gICAgXCIvNjcwNiMjIyMjIyMjI3s1LDZ9TC9cIixcbiAgICBcIi82NzcxIyMjIyMjIyMjezUsNn1ML1wiLFxuICAgIFwiLzY3MDkjIyMjIyMjIyN7NSw2fUwvXCJcbiAgXVxufTtcbmVuLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkluY1wiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkxMQ1wiLFxuICAgIFwiR3JvdXBcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgXSxcbiAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjogW1xuICAgICAgXCJhYmlsaXR5XCIsXG4gICAgICBcImFjY2Vzc1wiLFxuICAgICAgXCJhZGFwdGVyXCIsXG4gICAgICBcImFsZ29yaXRobVwiLFxuICAgICAgXCJhbGxpYW5jZVwiLFxuICAgICAgXCJhbmFseXplclwiLFxuICAgICAgXCJhcHBsaWNhdGlvblwiLFxuICAgICAgXCJhcHByb2FjaFwiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVcIixcbiAgICAgIFwiYXJjaGl2ZVwiLFxuICAgICAgXCJhcnRpZmljaWFsIGludGVsbGlnZW5jZVwiLFxuICAgICAgXCJhcnJheVwiLFxuICAgICAgXCJhdHRpdHVkZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiYnVkZ2V0YXJ5IG1hbmFnZW1lbnRcIixcbiAgICAgIFwiY2FwYWJpbGl0eVwiLFxuICAgICAgXCJjYXBhY2l0eVwiLFxuICAgICAgXCJjaGFsbGVuZ2VcIixcbiAgICAgIFwiY2lyY3VpdFwiLFxuICAgICAgXCJjb2xsYWJvcmF0aW9uXCIsXG4gICAgICBcImNvbXBsZXhpdHlcIixcbiAgICAgIFwiY29uY2VwdFwiLFxuICAgICAgXCJjb25nbG9tZXJhdGlvblwiLFxuICAgICAgXCJjb250aW5nZW5jeVwiLFxuICAgICAgXCJjb3JlXCIsXG4gICAgICBcImN1c3RvbWVyIGxveWFsdHlcIixcbiAgICAgIFwiZGF0YWJhc2VcIixcbiAgICAgIFwiZGF0YS13YXJlaG91c2VcIixcbiAgICAgIFwiZGVmaW5pdGlvblwiLFxuICAgICAgXCJlbXVsYXRpb25cIixcbiAgICAgIFwiZW5jb2RpbmdcIixcbiAgICAgIFwiZW5jcnlwdGlvblwiLFxuICAgICAgXCJleHRyYW5ldFwiLFxuICAgICAgXCJmaXJtd2FyZVwiLFxuICAgICAgXCJmbGV4aWJpbGl0eVwiLFxuICAgICAgXCJmb2N1cyBncm91cFwiLFxuICAgICAgXCJmb3JlY2FzdFwiLFxuICAgICAgXCJmcmFtZVwiLFxuICAgICAgXCJmcmFtZXdvcmtcIixcbiAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcIkdyYXBoaWMgSW50ZXJmYWNlXCIsXG4gICAgICBcImdyb3Vwd2FyZVwiLFxuICAgICAgXCJHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VcIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiaGVscC1kZXNrXCIsXG4gICAgICBcImhpZXJhcmNoeVwiLFxuICAgICAgXCJodWJcIixcbiAgICAgIFwiaW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiaW5mby1tZWRpYXJpZXNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiaW5pdGlhdGl2ZVwiLFxuICAgICAgXCJpbnN0YWxsYXRpb25cIixcbiAgICAgIFwiaW5zdHJ1Y3Rpb24gc2V0XCIsXG4gICAgICBcImludGVyZmFjZVwiLFxuICAgICAgXCJpbnRlcm5ldCBzb2x1dGlvblwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJrbm93bGVkZ2UgdXNlclwiLFxuICAgICAgXCJrbm93bGVkZ2UgYmFzZVwiLFxuICAgICAgXCJsb2NhbCBhcmVhIG5ldHdvcmtcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwibWF0cmljZXNcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcIm1ldGhvZG9sb2d5XCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmF0aW9uXCIsXG4gICAgICBcIm1vZGVsXCIsXG4gICAgICBcIm1vZGVyYXRvclwiLFxuICAgICAgXCJtb25pdG9yaW5nXCIsXG4gICAgICBcIm1vcmF0b3JpdW1cIixcbiAgICAgIFwibmV1cmFsLW5ldFwiLFxuICAgICAgXCJvcGVuIGFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJvcGVuIHN5c3RlbVwiLFxuICAgICAgXCJvcmNoZXN0cmF0aW9uXCIsXG4gICAgICBcInBhcmFkaWdtXCIsXG4gICAgICBcInBhcmFsbGVsaXNtXCIsXG4gICAgICBcInBvbGljeVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwicHJpY2luZyBzdHJ1Y3R1cmVcIixcbiAgICAgIFwicHJvY2VzcyBpbXByb3ZlbWVudFwiLFxuICAgICAgXCJwcm9kdWN0XCIsXG4gICAgICBcInByb2R1Y3Rpdml0eVwiLFxuICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICBcInByb2plY3Rpb25cIixcbiAgICAgIFwicHJvdG9jb2xcIixcbiAgICAgIFwic2VjdXJlZCBsaW5lXCIsXG4gICAgICBcInNlcnZpY2UtZGVza1wiLFxuICAgICAgXCJzb2Z0d2FyZVwiLFxuICAgICAgXCJzb2x1dGlvblwiLFxuICAgICAgXCJzdGFuZGFyZGl6YXRpb25cIixcbiAgICAgIFwic3RyYXRlZ3lcIixcbiAgICAgIFwic3RydWN0dXJlXCIsXG4gICAgICBcInN1Y2Nlc3NcIixcbiAgICAgIFwic3VwZXJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VwcG9ydFwiLFxuICAgICAgXCJzeW5lcmd5XCIsXG4gICAgICBcInN5c3RlbSBlbmdpbmVcIixcbiAgICAgIFwidGFzay1mb3JjZVwiLFxuICAgICAgXCJ0aHJvdWdocHV0XCIsXG4gICAgICBcInRpbWUtZnJhbWVcIixcbiAgICAgIFwidG9vbHNldFwiLFxuICAgICAgXCJ1dGlsaXNhdGlvblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcIndvcmtmb3JjZVwiXG4gICBdLFxuICBcImJzX3ZlcmJcIjogW1xuICAgICAgXCJpbXBsZW1lbnRcIixcbiAgICAgIFwidXRpbGl6ZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVcIixcbiAgICAgIFwic3RyZWFtbGluZVwiLFxuICAgICAgXCJvcHRpbWl6ZVwiLFxuICAgICAgXCJldm9sdmVcIixcbiAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICBcImVtYnJhY2VcIixcbiAgICAgIFwiZW5hYmxlXCIsXG4gICAgICBcIm9yY2hlc3RyYXRlXCIsXG4gICAgICBcImxldmVyYWdlXCIsXG4gICAgICBcInJlaW52ZW50XCIsXG4gICAgICBcImFnZ3JlZ2F0ZVwiLFxuICAgICAgXCJhcmNoaXRlY3RcIixcbiAgICAgIFwiZW5oYW5jZVwiLFxuICAgICAgXCJpbmNlbnRpdml6ZVwiLFxuICAgICAgXCJtb3JwaFwiLFxuICAgICAgXCJlbXBvd2VyXCIsXG4gICAgICBcImVudmlzaW9uZWVyXCIsXG4gICAgICBcIm1vbmV0aXplXCIsXG4gICAgICBcImhhcm5lc3NcIixcbiAgICAgIFwiZmFjaWxpdGF0ZVwiLFxuICAgICAgXCJzZWl6ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwic3luZXJnaXplXCIsXG4gICAgICBcInN0cmF0ZWdpemVcIixcbiAgICAgIFwiZGVwbG95XCIsXG4gICAgICBcImJyYW5kXCIsXG4gICAgICBcImdyb3dcIixcbiAgICAgIFwidGFyZ2V0XCIsXG4gICAgICBcInN5bmRpY2F0ZVwiLFxuICAgICAgXCJzeW50aGVzaXplXCIsXG4gICAgICBcImRlbGl2ZXJcIixcbiAgICAgIFwibWVzaFwiLFxuICAgICAgXCJpbmN1YmF0ZVwiLFxuICAgICAgXCJlbmdhZ2VcIixcbiAgICAgIFwibWF4aW1pemVcIixcbiAgICAgIFwiYmVuY2htYXJrXCIsXG4gICAgICBcImV4cGVkaXRlXCIsXG4gICAgICBcInJlaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcIndoaXRlYm9hcmRcIixcbiAgICAgIFwidmlzdWFsaXplXCIsXG4gICAgICBcInJlcHVycG9zZVwiLFxuICAgICAgXCJpbm5vdmF0ZVwiLFxuICAgICAgXCJzY2FsZVwiLFxuICAgICAgXCJ1bmxlYXNoXCIsXG4gICAgICBcImRyaXZlXCIsXG4gICAgICBcImV4dGVuZFwiLFxuICAgICAgXCJlbmdpbmVlclwiLFxuICAgICAgXCJyZXZvbHV0aW9uaXplXCIsXG4gICAgICBcImdlbmVyYXRlXCIsXG4gICAgICBcImV4cGxvaXRcIixcbiAgICAgIFwidHJhbnNpdGlvblwiLFxuICAgICAgXCJlLWVuYWJsZVwiLFxuICAgICAgXCJpdGVyYXRlXCIsXG4gICAgICBcImN1bHRpdmF0ZVwiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwicHJvZHVjdGl6ZVwiLFxuICAgICAgXCJyZWRlZmluZVwiLFxuICAgICAgXCJyZWNvbnRleHR1YWxpemVcIlxuICAgIF0sXG4gICAgXCJic19hZGplY3RpdmVcIjogW1xuICAgICAgXCJjbGlja3MtYW5kLW1vcnRhclwiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ2ZXJ0aWNhbFwiLFxuICAgICAgXCJwcm9hY3RpdmVcIixcbiAgICAgIFwicm9idXN0XCIsXG4gICAgICBcInJldm9sdXRpb25hcnlcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwibGVhZGluZy1lZGdlXCIsXG4gICAgICBcImlubm92YXRpdmVcIixcbiAgICAgIFwiaW50dWl0aXZlXCIsXG4gICAgICBcInN0cmF0ZWdpY1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwic3RpY2t5XCIsXG4gICAgICBcIm9uZS10by1vbmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJlbmQtdG8tZW5kXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyXCIsXG4gICAgICBcImZyaWN0aW9ubGVzc1wiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZpcmFsXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiMjQvMzY1XCIsXG4gICAgICBcImJlc3Qtb2YtYnJlZWRcIixcbiAgICAgIFwia2lsbGVyXCIsXG4gICAgICBcIm1hZ25ldGljXCIsXG4gICAgICBcImJsZWVkaW5nLWVkZ2VcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiZG90LWNvbVwiLFxuICAgICAgXCJzZXh5XCIsXG4gICAgICBcImJhY2stZW5kXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJlZmZpY2llbnRcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGVkXCIsXG4gICAgICBcInNlYW1sZXNzXCIsXG4gICAgICBcImV4dGVuc2libGVcIixcbiAgICAgIFwidHVybi1rZXlcIixcbiAgICAgIFwid29ybGQtY2xhc3NcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiY3Jvc3MtbWVkaWFcIixcbiAgICAgIFwic3luZXJnaXN0aWNcIixcbiAgICAgIFwiYnJpY2tzLWFuZC1jbGlja3NcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInVzZXItY2VudHJpY1wiLFxuICAgICAgXCJ2aXNpb25hcnlcIixcbiAgICAgIFwiY3VzdG9taXplZFwiLFxuICAgICAgXCJ1YmlxdWl0b3VzXCIsXG4gICAgICBcInBsdWctYW5kLXBsYXlcIixcbiAgICAgIFwiY29sbGFib3JhdGl2ZVwiLFxuICAgICAgXCJjb21wZWxsaW5nXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcInJpY2hcIlxuICAgIF0sXG4gICAgXCJic19ub3VuXCI6IFtcbiAgICAgIFwic3luZXJnaWVzXCIsXG4gICAgICBcIndlYi1yZWFkaW5lc3NcIixcbiAgICAgIFwicGFyYWRpZ21zXCIsXG4gICAgICBcIm1hcmtldHNcIixcbiAgICAgIFwicGFydG5lcnNoaXBzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlc1wiLFxuICAgICAgXCJwbGF0Zm9ybXNcIixcbiAgICAgIFwiaW5pdGlhdGl2ZXNcIixcbiAgICAgIFwiY2hhbm5lbHNcIixcbiAgICAgIFwiZXllYmFsbHNcIixcbiAgICAgIFwiY29tbXVuaXRpZXNcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV0aW9uc1wiLFxuICAgICAgXCJlLXRhaWxlcnNcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJhY3Rpb24taXRlbXNcIixcbiAgICAgIFwicG9ydGFsc1wiLFxuICAgICAgXCJuaWNoZXNcIixcbiAgICAgIFwidGVjaG5vbG9naWVzXCIsXG4gICAgICBcImNvbnRlbnRcIixcbiAgICAgIFwidm9ydGFsc1wiLFxuICAgICAgXCJzdXBwbHktY2hhaW5zXCIsXG4gICAgICBcImNvbnZlcmdlbmNlXCIsXG4gICAgICBcInJlbGF0aW9uc2hpcHNcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlc1wiLFxuICAgICAgXCJpbnRlcmZhY2VzXCIsXG4gICAgICBcImUtbWFya2V0c1wiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInN5c3RlbXNcIixcbiAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICBcImluZm9tZWRpYXJpZXNcIixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm1pbmRzaGFyZVwiLFxuICAgICAgXCJkZWxpdmVyYWJsZXNcIixcbiAgICAgIFwidXNlcnNcIixcbiAgICAgIFwic2NoZW1hc1wiLFxuICAgICAgXCJuZXR3b3Jrc1wiLFxuICAgICAgXCJhcHBsaWNhdGlvbnNcIixcbiAgICAgIFwibWV0cmljc1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJleHBlcmllbmNlc1wiLFxuICAgICAgXCJ3ZWIgc2VydmljZXNcIixcbiAgICAgIFwibWV0aG9kb2xvZ2llc1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gYW5kICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmVuLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5cbi8vQWxsIHRoaXMgYXZhdGFyIGhhdmUgYmVlbiBhdXRob3JpemVkIGJ5IGl0cyBhd2Vzb21lIHVzZXJzIHRvIGJlIHVzZSBvbiBsaXZlIHdlYnNpdGVzIChub3QganVzdCBtb2NrdXBzKVxuLy9Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0OiBodHRwOi8vdWlmYWNlcy5jb20vYXV0aG9yaXplZFxudmFyIGF2YXRhclVyaSA9IFtcImphcmphbi8xMjguanBnXCIsXG4gICAgXCJtYWhkaWYvMTI4LmpwZ1wiLFxuICAgIFwic3ByYXlhZ2EvMTI4LmpwZ1wiLFxuICAgIFwicnV6aW5hdi8xMjguanBnXCIsXG4gICAgXCJTa3loYXJ0bWFuLzEyOC5qcGdcIixcbiAgICBcIm1vc2Nvei8xMjguanBnXCIsXG4gICAgXCJrdXJhZmlyZS8xMjguanBnXCIsXG4gICAgXCI5MWJpbGFsLzEyOC5qcGdcIixcbiAgICBcImlnb3JnYXJ5YmFsZGkvMTI4LmpwZ1wiLFxuICAgIFwiY2FsZWJvZ2Rlbi8xMjguanBnXCIsXG4gICAgXCJtYWx5a2hpbnYvMTI4LmpwZ1wiLFxuICAgIFwiam9lbGhlbGluLzEyOC5qcGdcIixcbiAgICBcImt1c2hzb2xpdGFyeS8xMjguanBnXCIsXG4gICAgXCJjb3JleXdlYi8xMjguanBnXCIsXG4gICAgXCJzbm93c2hhZGUvMTI4LmpwZ1wiLFxuICAgIFwiYXJldXMvMTI4LmpwZ1wiLFxuICAgIFwiaG9sZGVud2ViLzEyOC5qcGdcIixcbiAgICBcImhleWltanVhbmkvMTI4LmpwZ1wiLFxuICAgIFwiZW52ZXgvMTI4LmpwZ1wiLFxuICAgIFwidW50ZXJkcmVodC8xMjguanBnXCIsXG4gICAgXCJjb2xsZWdlbWFuLzEyOC5qcGdcIixcbiAgICBcInBlZWpmYW5jaGVyLzEyOC5qcGdcIixcbiAgICBcImFuZHlpc29ubGluZS8xMjguanBnXCIsXG4gICAgXCJ1bHRyYWdleC8xMjguanBnXCIsXG4gICAgXCJmdWNrX3lvdV90d28vMTI4LmpwZ1wiLFxuICAgIFwiYWRlbGxlY2hhcmxlcy8xMjguanBnXCIsXG4gICAgXCJhdGVuZXVwb3B1bGFyLzEyOC5qcGdcIixcbiAgICBcImFobWV0YWxwYmFsa2FuLzEyOC5qcGdcIixcbiAgICBcIlN0aWV2aXVzLzEyOC5qcGdcIixcbiAgICBcImtlcmVtLzEyOC5qcGdcIixcbiAgICBcIm9zdmFsZGFzLzEyOC5qcGdcIixcbiAgICBcImFuZ2VsY2ViYWxsb3MvMTI4LmpwZ1wiLFxuICAgIFwidGhpZXJyeWtvYmxlbnR6LzEyOC5qcGdcIixcbiAgICBcInBldGVybGFuZHQvMTI4LmpwZ1wiLFxuICAgIFwiY2F0YXJpbm8vMTI4LmpwZ1wiLFxuICAgIFwid3IvMTI4LmpwZ1wiLFxuICAgIFwid2VnbG92LzEyOC5qcGdcIixcbiAgICBcImJyYW5kY2xheS8xMjguanBnXCIsXG4gICAgXCJmbGFtZV9rYWl6YXIvMTI4LmpwZ1wiLFxuICAgIFwiYWhtZXRzdWxlay8xMjguanBnXCIsXG4gICAgXCJuaWNvbGFzZm9sbGlvdC8xMjguanBnXCIsXG4gICAgXCJqYXlyb2JpbnNvbi8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3Jlcml4b24vMTI4LmpwZ1wiLFxuICAgIFwia29sYWdlLzEyOC5qcGdcIixcbiAgICBcIm1pY2h6ZW4vMTI4LmpwZ1wiLFxuICAgIFwibWFya2plbmtpbnMvMTI4LmpwZ1wiLFxuICAgIFwibmljb2xhaV9sYXJzZW4vMTI4LmpwZ1wiLFxuICAgIFwiZ3QvMTI4LmpwZ1wiLFxuICAgIFwibm94ZHppbmUvMTI4LmpwZ1wiLFxuICAgIFwiYWxhZ29vbi8xMjguanBnXCIsXG4gICAgXCJpZGlvdC8xMjguanBnXCIsXG4gICAgXCJtaXprby8xMjguanBnXCIsXG4gICAgXCJjaGFkZW5nbGUvMTI4LmpwZ1wiLFxuICAgIFwibXV0bHU4Mi8xMjguanBnXCIsXG4gICAgXCJzaW1vYmVuc28vMTI4LmpwZ1wiLFxuICAgIFwidm9jaW5vLzEyOC5qcGdcIixcbiAgICBcImd1aWlpcG9udGVzLzEyOC5qcGdcIixcbiAgICBcInNveWphdmkvMTI4LmpwZ1wiLFxuICAgIFwiam9zaGF1c3Rpbi8xMjguanBnXCIsXG4gICAgXCJ0b21hc2xhdS8xMjguanBnXCIsXG4gICAgXCJWaW5UaG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwiTWFuaWtSYXRoZWUvMTI4LmpwZ1wiLFxuICAgIFwibGFuZ2F0ZS8xMjguanBnXCIsXG4gICAgXCJjZW1zaGlkLzEyOC5qcGdcIixcbiAgICBcImxlZW11bnJvZS8xMjguanBnXCIsXG4gICAgXCJfc2hhaGVkay8xMjguanBnXCIsXG4gICAgXCJlbmRhLzEyOC5qcGdcIixcbiAgICBcIkJpbGxTS2VubmV5LzEyOC5qcGdcIixcbiAgICBcImRpdnlhLzEyOC5qcGdcIixcbiAgICBcImpvc2hoZW1zbGV5LzEyOC5qcGdcIixcbiAgICBcInNpbmRyZXNvcmh1cy8xMjguanBnXCIsXG4gICAgXCJzb2ZmZXMvMTI4LmpwZ1wiLFxuICAgIFwiOWxlc3NvbnMvMTI4LmpwZ1wiLFxuICAgIFwibGludXgyOS8xMjguanBnXCIsXG4gICAgXCJDaGFraW50b3NoLzEyOC5qcGdcIixcbiAgICBcImFuYWFtaS8xMjguanBnXCIsXG4gICAgXCJqb3JlaXJhLzEyOC5qcGdcIixcbiAgICBcInNoYWRlZWQ5LzEyOC5qcGdcIixcbiAgICBcInNjb3R0a2NsYXJrLzEyOC5qcGdcIixcbiAgICBcImplZGJyaWRnZXMvMTI4LmpwZ1wiLFxuICAgIFwic2FsbGVlZGVzaWduLzEyOC5qcGdcIixcbiAgICBcIm1hcmFrYXNpbmEvMTI4LmpwZ1wiLFxuICAgIFwiYXJpaWwvMTI4LmpwZ1wiLFxuICAgIFwiQnJpYW5QdXJraXNzLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxtYXJ0aW5oby8xMjguanBnXCIsXG4gICAgXCJidWJsaWVua28vMTI4LmpwZ1wiLFxuICAgIFwiZGV2YW5rb3NoYWwvMTI4LmpwZ1wiLFxuICAgIFwiWmFjaGFyeVpvcmJhcy8xMjguanBnXCIsXG4gICAgXCJ0aW1taWxsd29vZC8xMjguanBnXCIsXG4gICAgXCJqb3NodWFzb3J0aW5vLzEyOC5qcGdcIixcbiAgICBcImRhbWVubGVldHVya3MvMTI4LmpwZ1wiLFxuICAgIFwidG9tYXNfamFub3VzZWsvMTI4LmpwZ1wiLFxuICAgIFwiaGVycmhhYXNlLzEyOC5qcGdcIixcbiAgICBcIlJ1c3NlbGxCaXNob3AvMTI4LmpwZ1wiLFxuICAgIFwiYnJhamVzaHdhci8xMjguanBnXCIsXG4gICAgXCJuYWNodG1laXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwiY2JyYWNjby8xMjguanBnXCIsXG4gICAgXCJiZXJtb25wYWludGVyLzEyOC5qcGdcIixcbiAgICBcImFiZHVsbGluZGVuaXMvMTI4LmpwZ1wiLFxuICAgIFwiaXNhY29zdGEvMTI4LmpwZ1wiLFxuICAgIFwic3VwcmIvMTI4LmpwZ1wiLFxuICAgIFwieWFsb3poa2luLzEyOC5qcGdcIixcbiAgICBcImNoYW5kbGVydmR3LzEyOC5qcGdcIixcbiAgICBcImlhbWdhcnRoLzEyOC5qcGdcIixcbiAgICBcIl92aWN0YS8xMjguanBnXCIsXG4gICAgXCJjb21tYWRlbGltaXRlZC8xMjguanBnXCIsXG4gICAgXCJyb3liYXJiZXJ1ay8xMjguanBnXCIsXG4gICAgXCJheGVsLzEyOC5qcGdcIixcbiAgICBcInZsYWRhcmJhdG92LzEyOC5qcGdcIixcbiAgICBcImZmYmVsLzEyOC5qcGdcIixcbiAgICBcInN5cm9waWFuLzEyOC5qcGdcIixcbiAgICBcImFua2l0aW5kLzEyOC5qcGdcIixcbiAgICBcInRyYW5lYmxvdy8xMjguanBnXCIsXG4gICAgXCJmbGFzaG11cnBoeS8xMjguanBnXCIsXG4gICAgXCJDaHJpc0ZhcmluYTc4LzEyOC5qcGdcIixcbiAgICBcImJhbGlvbWVnYS8xMjguanBnXCIsXG4gICAgXCJzYXNjaGFtdC8xMjguanBnXCIsXG4gICAgXCJqbV9kZW5pcy8xMjguanBnXCIsXG4gICAgXCJhbm9mZi8xMjguanBnXCIsXG4gICAgXCJrZW5ueWFkci8xMjguanBnXCIsXG4gICAgXCJjaGF0eXJrby8xMjguanBnXCIsXG4gICAgXCJkaW5neWkvMTI4LmpwZ1wiLFxuICAgIFwibWRzLzEyOC5qcGdcIixcbiAgICBcInRlcnJ5eGxpZmUvMTI4LmpwZ1wiLFxuICAgIFwiYWFyb25pLzEyOC5qcGdcIixcbiAgICBcImtpbmRheS8xMjguanBnXCIsXG4gICAgXCJwcnJzdG4vMTI4LmpwZ1wiLFxuICAgIFwiZWR1YXJkb3N0dWFydC8xMjguanBnXCIsXG4gICAgXCJkaGlsaXBzaXZhLzEyOC5qcGdcIixcbiAgICBcIkdhdmljb0luZC8xMjguanBnXCIsXG4gICAgXCJiYWlyZXMvMTI4LmpwZ1wiLFxuICAgIFwicm9oaXh4LzEyOC5qcGdcIixcbiAgICBcImJpZ21hbmNoby8xMjguanBnXCIsXG4gICAgXCJibGFrZXNpbWtpbnMvMTI4LmpwZ1wiLFxuICAgIFwibGVlaWlvLzEyOC5qcGdcIixcbiAgICBcInRqcnVzLzEyOC5qcGdcIixcbiAgICBcInViZXJzY2hpem8vMTI4LmpwZ1wiLFxuICAgIFwia3lsZWZvdW5kcnkvMTI4LmpwZ1wiLFxuICAgIFwiY2xhdWRpb2d1Z2xpZXJpLzEyOC5qcGdcIixcbiAgICBcInJpcHBsZW1kay8xMjguanBnXCIsXG4gICAgXCJleGVudHJpY2gvMTI4LmpwZ1wiLFxuICAgIFwiamFrZW1vb3JlLzEyOC5qcGdcIixcbiAgICBcImpvYW9lZHVtZWRlaXJvcy8xMjguanBnXCIsXG4gICAgXCJwb29ybWluaS8xMjguanBnXCIsXG4gICAgXCJ0ZXJlc2hlbmtvdi8xMjguanBnXCIsXG4gICAgXCJrZXJ5aWxtYXovMTI4LmpwZ1wiLFxuICAgIFwiaGF5ZG5fd29vZHMvMTI4LmpwZ1wiLFxuICAgIFwicnVkZS8xMjguanBnXCIsXG4gICAgXCJsbHVuLzEyOC5qcGdcIixcbiAgICBcInNnYXVyYXZfYmFnaGVsLzEyOC5qcGdcIixcbiAgICBcImphbWllYnJpdHRhaW4vMTI4LmpwZ1wiLFxuICAgIFwiYmFkbGl0dGxlZHVjay8xMjguanBnXCIsXG4gICAgXCJwaWZhZ29yLzEyOC5qcGdcIixcbiAgICBcImFncm9tb3YvMTI4LmpwZ1wiLFxuICAgIFwiYmVuZWZyaXR6LzEyOC5qcGdcIixcbiAgICBcImVyd2FuaGVzcnkvMTI4LmpwZ1wiLFxuICAgIFwiZGllc2VsbGF3cy8xMjguanBnXCIsXG4gICAgXCJqZXJlbWlhaGEvMTI4LmpwZ1wiLFxuICAgIFwia29yaWRoYW5keS8xMjguanBnXCIsXG4gICAgXCJjaGFlbnNlbC8xMjguanBnXCIsXG4gICAgXCJhbmRyZXdjb2hlbi8xMjguanBnXCIsXG4gICAgXCJzbWFjem55LzEyOC5qcGdcIixcbiAgICBcImdvbnphbG9yb2JhaW5hLzEyOC5qcGdcIixcbiAgICBcIm5hbmRpbmlfbS8xMjguanBnXCIsXG4gICAgXCJzeWRsYXdyZW5jZS8xMjguanBnXCIsXG4gICAgXCJjZGhhcnJpc29uLzEyOC5qcGdcIixcbiAgICBcInRnZXJrZW4vMTI4LmpwZ1wiLFxuICAgIFwibGV3aXNhaW5zbGllLzEyOC5qcGdcIixcbiAgICBcImNoYXJsaWVjd2FpdGUvMTI4LmpwZ1wiLFxuICAgIFwicm9iYnNjaGlsbGVyLzEyOC5qcGdcIixcbiAgICBcImZsZXhycy8xMjguanBnXCIsXG4gICAgXCJtYXR0ZGV0YWlscy8xMjguanBnXCIsXG4gICAgXCJyYXF1ZWx3aWxzb24vMTI4LmpwZ1wiLFxuICAgIFwia2Fyc2gvMTI4LmpwZ1wiLFxuICAgIFwibXJtYXJ0aW5lYXUvMTI4LmpwZ1wiLFxuICAgIFwib3Buc3JjZS8xMjguanBnXCIsXG4gICAgXCJoZ2hhcnJ5Z28vMTI4LmpwZ1wiLFxuICAgIFwibWF4aW1zZXNodWsvMTI4LmpwZ1wiLFxuICAgIFwidXhhbGV4LzEyOC5qcGdcIixcbiAgICBcInNhbWloYWgvMTI4LmpwZ1wiLFxuICAgIFwiY2hhbnBvcnkvMTI4LmpwZ1wiLFxuICAgIFwic2hhcnZpbi8xMjguanBnXCIsXG4gICAgXCJqb3NlbWFycXVlcy8xMjguanBnXCIsXG4gICAgXCJqZWZmZmlzLzEyOC5qcGdcIixcbiAgICBcImtyeXN0YWxmaXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwibG9rZXNoX2NvZGVyLzEyOC5qcGdcIixcbiAgICBcInRoZWRhbWlhbmhkZXovMTI4LmpwZ1wiLFxuICAgIFwiZHBtYWNoYWRvLzEyOC5qcGdcIixcbiAgICBcImZ1bndhdGVyY2F0LzEyOC5qcGdcIixcbiAgICBcInRpbW90aHljZC8xMjguanBnXCIsXG4gICAgXCJpdmFuZmlsaXBvdmJnLzEyOC5qcGdcIixcbiAgICBcInBpY2FyZDEwMi8xMjguanBnXCIsXG4gICAgXCJtYXJjb2JhcmJvc2EvMTI4LmpwZ1wiLFxuICAgIFwia3Jhc25vdWtob3YvMTI4LmpwZ1wiLFxuICAgIFwiZzNkLzEyOC5qcGdcIixcbiAgICBcImFkZW1pbHRlci8xMjguanBnXCIsXG4gICAgXCJyaWNrZHQvMTI4LmpwZ1wiLFxuICAgIFwib3BlcmF0aW5vLzEyOC5qcGdcIixcbiAgICBcImJ1bmdpd2FuLzEyOC5qcGdcIixcbiAgICBcImh1Z29tYW5vLzEyOC5qcGdcIixcbiAgICBcImxvZ29yYWRvLzEyOC5qcGdcIixcbiAgICBcImRjX3VzZXIvMTI4LmpwZ1wiLFxuICAgIFwiaG9yYWNpb2JlbGxhLzEyOC5qcGdcIixcbiAgICBcIlNsYWFwTWUvMTI4LmpwZ1wiLFxuICAgIFwidGVlcmFnaXQvMTI4LmpwZ1wiLFxuICAgIFwiaXFvbmljZC8xMjguanBnXCIsXG4gICAgXCJpbHlhX3Blc3Rvdi8xMjguanBnXCIsXG4gICAgXCJhbmRyZXdhcnJvdy8xMjguanBnXCIsXG4gICAgXCJzc2lza2luZC8xMjguanBnXCIsXG4gICAgXCJzdGFuLzEyOC5qcGdcIixcbiAgICBcIkhlbnJ5SG9mZm1hbi8xMjguanBnXCIsXG4gICAgXCJyZHNhdW5kZXJzLzEyOC5qcGdcIixcbiAgICBcImFkYW1zeHUvMTI4LmpwZ1wiLFxuICAgIFwiY3VyaW91c29mZmljZS8xMjguanBnXCIsXG4gICAgXCJ0aGVtYWRyYXkvMTI4LmpwZ1wiLFxuICAgIFwibWljaGlnYW5ncmFoYW0vMTI4LmpwZ1wiLFxuICAgIFwia29oZXR0ZS8xMjguanBnXCIsXG4gICAgXCJuaWNrZnJhdHRlci8xMjguanBnXCIsXG4gICAgXCJydW5uaW5nc2t1bGwvMTI4LmpwZ1wiLFxuICAgIFwibWFkeXNvbmRlc2lnbnMvMTI4LmpwZ1wiLFxuICAgIFwiYnJlbnRvbl9jbGFya2UvMTI4LmpwZ1wiLFxuICAgIFwiamVubnlzaGVuLzEyOC5qcGdcIixcbiAgICBcImJyYWRlbmhhbW0vMTI4LmpwZ1wiLFxuICAgIFwia3VydGluYy8xMjguanBnXCIsXG4gICAgXCJhbWFucnV6YWluaS8xMjguanBnXCIsXG4gICAgXCJjb3JleWhhZ2dhcmQvMTI4LmpwZ1wiLFxuICAgIFwiS2FyaW1tb3ZlLzEyOC5qcGdcIixcbiAgICBcImFhcm9uYWxmcmVkLzEyOC5qcGdcIixcbiAgICBcInd0cnNsZC8xMjguanBnXCIsXG4gICAgXCJqaXRhY2hpLzEyOC5qcGdcIixcbiAgICBcInRoZXJlYWxtYXJ2aW4vMTI4LmpwZ1wiLFxuICAgIFwicG1laXNzbmVyLzEyOC5qcGdcIixcbiAgICBcIm9vb216LzEyOC5qcGdcIixcbiAgICBcImNoYWNreTE0LzEyOC5qcGdcIixcbiAgICBcImplc3NlZGR5LzEyOC5qcGdcIixcbiAgICBcInRoaW5tYXR0LzEyOC5qcGdcIixcbiAgICBcInNoYW5laHVkc29uLzEyOC5qcGdcIixcbiAgICBcImFrbXVyLzEyOC5qcGdcIixcbiAgICBcIklzYXJ5QW1haXJhbmkvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0aHVyaG9sY29tYmUxLzEyOC5qcGdcIixcbiAgICBcImFuZHljaGlwc3Rlci8xMjguanBnXCIsXG4gICAgXCJib3htb2RlbC8xMjguanBnXCIsXG4gICAgXCJlaHNhbmRpYXJ5LzEyOC5qcGdcIixcbiAgICBcIkx1Y2FzUGVyZGlkYW8vMTI4LmpwZ1wiLFxuICAgIFwic2hhbHQwbmkvMTI4LmpwZ1wiLFxuICAgIFwic3dhcGxvcmQvMTI4LmpwZ1wiLFxuICAgIFwia2FlbGlmYS8xMjguanBnXCIsXG4gICAgXCJwbGJhYmluLzEyOC5qcGdcIixcbiAgICBcImd1aWxsZW1ib3RpLzEyOC5qcGdcIixcbiAgICBcImFyaW5kYW1fLzEyOC5qcGdcIixcbiAgICBcInJlbmJ5cmQvMTI4LmpwZ1wiLFxuICAgIFwidGhpYWdvdmVybmV0dGkvMTI4LmpwZ1wiLFxuICAgIFwiam1pbGxzcGF5c2JpbGxzLzEyOC5qcGdcIixcbiAgICBcIm1pa2VtYWkyYXdlc29tZS8xMjguanBnXCIsXG4gICAgXCJqZXJ2by8xMjguanBnXCIsXG4gICAgXCJtZWthbC8xMjguanBnXCIsXG4gICAgXCJzdGExZXgvMTI4LmpwZ1wiLFxuICAgIFwicm9iZXJnZC8xMjguanBnXCIsXG4gICAgXCJmZWxpcGVjc2wvMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmVhMjExMDg3LzEyOC5qcGdcIixcbiAgICBcImdhcmFuZC8xMjguanBnXCIsXG4gICAgXCJkaG9veWVuZ2EvMTI4LmpwZ1wiLFxuICAgIFwiYWJvdmVmdW5jdGlvbi8xMjguanBnXCIsXG4gICAgXCJwY3JpZGVzYWdhaW4vMTI4LmpwZ1wiLFxuICAgIFwicmFuZG9tbGllcy8xMjguanBnXCIsXG4gICAgXCJCcnlhbkhvcnNleS8xMjguanBnXCIsXG4gICAgXCJoZXlrZW5uZXRoLzEyOC5qcGdcIixcbiAgICBcImRhaHBhcnJhLzEyOC5qcGdcIixcbiAgICBcImFsbHRoaW5nc3NtaXR0eS8xMjguanBnXCIsXG4gICAgXCJkYW52ZXJub24vMTI4LmpwZ1wiLFxuICAgIFwiYmV3ZWlucmVpY2gvMTI4LmpwZ1wiLFxuICAgIFwiaW5jcmVhc2UvMTI4LmpwZ1wiLFxuICAgIFwiZmFsdmFyYWQvMTI4LmpwZ1wiLFxuICAgIFwiYWx4bmRydXN0aW5vdi8xMjguanBnXCIsXG4gICAgXCJzb3V1Zi8xMjguanBnXCIsXG4gICAgXCJvcmt1bmNheWxhci8xMjguanBnXCIsXG4gICAgXCJBTV9LbjIvMTI4LmpwZ1wiLFxuICAgIFwiZ2VhcnBpeGVscy8xMjguanBnXCIsXG4gICAgXCJiYXNzYW1vbG9neS8xMjguanBnXCIsXG4gICAgXCJ2aW1hcmV0aG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwia29zbWFyLzEyOC5qcGdcIixcbiAgICBcIlNVTGlpay8xMjguanBnXCIsXG4gICAgXCJtcmphbWVzbm9ibGUvMTI4LmpwZ1wiLFxuICAgIFwic2lsdmFubXVobGVtYW5uLzEyOC5qcGdcIixcbiAgICBcInNoYW5lSXhELzEyOC5qcGdcIixcbiAgICBcIm5hY2hvLzEyOC5qcGdcIixcbiAgICBcInlpZ2l0cGluYXJiYXNpLzEyOC5qcGdcIixcbiAgICBcImJ1enp1c2Jvcm5lLzEyOC5qcGdcIixcbiAgICBcImFhcm9ua3doaXRlLzEyOC5qcGdcIixcbiAgICBcInJtbGV3aXN1ay8xMjguanBnXCIsXG4gICAgXCJnaWFuY2FybG9uLzEyOC5qcGdcIixcbiAgICBcIm5iaXJja2VsLzEyOC5qcGdcIixcbiAgICBcImRfbm55X21fY2hlci8xMjguanBnXCIsXG4gICAgXCJzZGlkb25hdG8vMTI4LmpwZ1wiLFxuICAgIFwiYXRhcmlib3kvMTI4LmpwZ1wiLFxuICAgIFwiYWJvdGFwLzEyOC5qcGdcIixcbiAgICBcImthcmFsZWsvMTI4LmpwZ1wiLFxuICAgIFwicHNkZXNpZ251ay8xMjguanBnXCIsXG4gICAgXCJsdWR3aWN6YWtwYXdlbC8xMjguanBnXCIsXG4gICAgXCJuZW1hbmphaXZhbm92aWMvMTI4LmpwZ1wiLFxuICAgIFwiYmFsdWxpLzEyOC5qcGdcIixcbiAgICBcImFobWFkYWptaS8xMjguanBnXCIsXG4gICAgXCJ2b3ZrYXNvbG92ZXYvMTI4LmpwZ1wiLFxuICAgIFwic2FtZ3JvdmVyLzEyOC5qcGdcIixcbiAgICBcImRlcmllbnpvNzc3LzEyOC5qcGdcIixcbiAgICBcImpvbmF0aGFuc2ltbW9ucy8xMjguanBnXCIsXG4gICAgXCJuZWxzb25qb3ljZS8xMjguanBnXCIsXG4gICAgXCJTMHVmaTRuMy8xMjguanBnXCIsXG4gICAgXCJ4dG9waGVycGF1bC8xMjguanBnXCIsXG4gICAgXCJvYWt0cmVlbWVkaWEvMTI4LmpwZ1wiLFxuICAgIFwibmF0ZXNjaHVsdGUvMTI4LmpwZ1wiLFxuICAgIFwiZmluZGluZ2plbm55LzEyOC5qcGdcIixcbiAgICBcIm5hbWFua3JlYXRpdmUvMTI4LmpwZ1wiLFxuICAgIFwiYW50b255em90b3YvMTI4LmpwZ1wiLFxuICAgIFwid2Vfc29jaWFsLzEyOC5qcGdcIixcbiAgICBcImxlZWhhbWJsZXkvMTI4LmpwZ1wiLFxuICAgIFwic29saWRfY29sb3IvMTI4LmpwZ1wiLFxuICAgIFwiYWJlbGNhYmFucy8xMjguanBnXCIsXG4gICAgXCJtYmlsZGVyYmFjaC8xMjguanBnXCIsXG4gICAgXCJra3VzYWEvMTI4LmpwZ1wiLFxuICAgIFwiam9yZHl2ZGJvb20vMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zZ2F2aW5hLzEyOC5qcGdcIixcbiAgICBcInBlY2hraW5hdG9yLzEyOC5qcGdcIixcbiAgICBcInZjMjcvMTI4LmpwZ1wiLFxuICAgIFwicmRiYW5ub24vMTI4LmpwZ1wiLFxuICAgIFwiY3JvYWt4LzEyOC5qcGdcIixcbiAgICBcInN1cmliYmxlcy8xMjguanBnXCIsXG4gICAgXCJrZXJpaGVuYXJlLzEyOC5qcGdcIixcbiAgICBcImNhdGFkZWxlb24vMTI4LmpwZ1wiLFxuICAgIFwiZ2Ntb3JsZXkvMTI4LmpwZ1wiLFxuICAgIFwiZHVpdnZ2LzEyOC5qcGdcIixcbiAgICBcInNhc2NoYWRyb3N0ZS8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JEdWJ1Z3Jhcy8xMjguanBnXCIsXG4gICAgXCJ3aW50b3BpYS8xMjguanBnXCIsXG4gICAgXCJtYXR0Ymlsb3R0aS8xMjguanBnXCIsXG4gICAgXCJ0YXlsb3JsaW5nLzEyOC5qcGdcIixcbiAgICBcIm1lZ2RyYXdzLzEyOC5qcGdcIixcbiAgICBcIm1lbG4xa3MvMTI4LmpwZ1wiLFxuICAgIFwibWFobW91ZG1ldHdhbGx5LzEyOC5qcGdcIixcbiAgICBcIlNpbHZlcmVkZ2U5LzEyOC5qcGdcIixcbiAgICBcImRlcmVrZWJyYWRsZXkvMTI4LmpwZ1wiLFxuICAgIFwiaGFwcHlwZXRlcjE5ODMvMTI4LmpwZ1wiLFxuICAgIFwidHJhdmlzX2Fybm9sZC8xMjguanBnXCIsXG4gICAgXCJhcnRlbV9rb3N0ZW5rby8xMjguanBnXCIsXG4gICAgXCJhZG9iaS8xMjguanBnXCIsXG4gICAgXCJkYXlraWluZS8xMjguanBnXCIsXG4gICAgXCJhbGVrX2RqdXJpYy8xMjguanBnXCIsXG4gICAgXCJzY2lwcy8xMjguanBnXCIsXG4gICAgXCJtaWd1ZWxtZW5kZXMvMTI4LmpwZ1wiLFxuICAgIFwianVzdGlucmhlZS8xMjguanBnXCIsXG4gICAgXCJhbHNvYnJvb2tzLzEyOC5qcGdcIixcbiAgICBcImZyb254LzEyOC5qcGdcIixcbiAgICBcIm1jZmx5ZGVzaWduLzEyOC5qcGdcIixcbiAgICBcInNhbnRpX3Vyc28vMTI4LmpwZ1wiLFxuICAgIFwiYWxsZm9yZGVzaWduLzEyOC5qcGdcIixcbiAgICBcInN0YXl1YmVyLzEyOC5qcGdcIixcbiAgICBcImJlcnRib2VybGFuZC8xMjguanBnXCIsXG4gICAgXCJtYXJvc2hvbGx5LzEyOC5qcGdcIixcbiAgICBcImFkYW1uYWMvMTI4LmpwZ1wiLFxuICAgIFwiY3ludGhpYXNhdmFyZC8xMjguanBnXCIsXG4gICAgXCJtdXJpbmdhLzEyOC5qcGdcIixcbiAgICBcImRhbnJvLzEyOC5qcGdcIixcbiAgICBcImhpZW1pbC8xMjguanBnXCIsXG4gICAgXCJqYWNraWVzYWlrLzEyOC5qcGdcIixcbiAgICBcInphY3NuaWRlci8xMjguanBnXCIsXG4gICAgXCJpZHV1Y2svMTI4LmpwZ1wiLFxuICAgIFwiYW50amFudXMvMTI4LmpwZ1wiLFxuICAgIFwiYXJvb25fc2hhcm1hLzEyOC5qcGdcIixcbiAgICBcImRzaHN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwidGhlaGFja2VyLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxicm9va3Nqci8xMjguanBnXCIsXG4gICAgXCJyeWFubWNsYXVnaGxpbi8xMjguanBnXCIsXG4gICAgXCJjbHViYjNycnkvMTI4LmpwZ1wiLFxuICAgIFwidGF5YmVubG9yLzEyOC5qcGdcIixcbiAgICBcInhyaXB1bm92LzEyOC5qcGdcIixcbiAgICBcIm15YXN0cm8vMTI4LmpwZ1wiLFxuICAgIFwiYWRpdHlhc3V0b21vLzEyOC5qcGdcIixcbiAgICBcImRpZ2l0YWxtYXZlcmljay8xMjguanBnXCIsXG4gICAgXCJoamFydHN0cm9ybi8xMjguanBnXCIsXG4gICAgXCJpdG9sbWFjaC8xMjguanBnXCIsXG4gICAgXCJ2YXVnaGFubW9mZml0dC8xMjguanBnXCIsXG4gICAgXCJhYmRvdHMvMTI4LmpwZ1wiLFxuICAgIFwiaXNuaWZlci8xMjguanBnXCIsXG4gICAgXCJzZXJnZXlzYWZvbm92LzEyOC5qcGdcIixcbiAgICBcIm1hei8xMjguanBnXCIsXG4gICAgXCJzY3JhcGRuYi8xMjguanBnXCIsXG4gICAgXCJjaHJpc21qODMvMTI4LmpwZ1wiLFxuICAgIFwidml0b3JsZWFsLzEyOC5qcGdcIixcbiAgICBcInNva2FuaXdhYWwvMTI4LmpwZ1wiLFxuICAgIFwiemFraTNkLzEyOC5qcGdcIixcbiAgICBcImlsbHl6b3Jlbi8xMjguanBnXCIsXG4gICAgXCJtb2NhYnl0ZS8xMjguanBnXCIsXG4gICAgXCJvc21hbmluY2UvMTI4LmpwZ1wiLFxuICAgIFwiZGpzaGVybWFuLzEyOC5qcGdcIixcbiAgICBcImRhdmlkaGVtcGhpbGwvMTI4LmpwZ1wiLFxuICAgIFwid2FnaG5lci8xMjguanBnXCIsXG4gICAgXCJuZWNvZHltaWNvbmVyLzEyOC5qcGdcIixcbiAgICBcInByYXZlZW5fdmlqYXlhLzEyOC5qcGdcIixcbiAgICBcImZhYmJydWNjaS8xMjguanBnXCIsXG4gICAgXCJjbGlmZnNlYWwvMTI4LmpwZ1wiLFxuICAgIFwidHJhdmlzaGluZXMvMTI4LmpwZ1wiLFxuICAgIFwia3VsZGFya2FsdmlrLzEyOC5qcGdcIixcbiAgICBcIkVsdF9uLzEyOC5qcGdcIixcbiAgICBcInBoaWxsYXBpZXIvMTI4LmpwZ1wiLFxuICAgIFwib2tzZWFuamF5LzEyOC5qcGdcIixcbiAgICBcImlkODM1NTU5LzEyOC5qcGdcIixcbiAgICBcImt1ZHJldGtlc2tpbi8xMjguanBnXCIsXG4gICAgXCJhbmpoZXJvLzEyOC5qcGdcIixcbiAgICBcImR1Y2s0ZnVjay8xMjguanBnXCIsXG4gICAgXCJzY290dF9yaWxleS8xMjguanBnXCIsXG4gICAgXCJub3VmYWxpYnJhaGltLzEyOC5qcGdcIixcbiAgICBcImgxYnJkLzEyOC5qcGdcIixcbiAgICBcImJvcmdlc19tYXJjb3MvMTI4LmpwZ1wiLFxuICAgIFwiZGV2aW5oYWxsYWRheS8xMjguanBnXCIsXG4gICAgXCJjaWFyYW5yLzEyOC5qcGdcIixcbiAgICBcInN0ZWZvb28vMTI4LmpwZ1wiLFxuICAgIFwibWlrZWJlZWNoYW0vMTI4LmpwZ1wiLFxuICAgIFwidG9ueW1pbGxpb24vMTI4LmpwZ1wiLFxuICAgIFwiam9zaHVhcmFpY2h1ci8xMjguanBnXCIsXG4gICAgXCJpcmFlLzEyOC5qcGdcIixcbiAgICBcInBldHJhbmdyLzEyOC5qcGdcIixcbiAgICBcImRtaXRyaXljaHV0YS8xMjguanBnXCIsXG4gICAgXCJjaGFybGllZ2Fubi8xMjguanBnXCIsXG4gICAgXCJhcmFzaG1hbnRlZ2hpLzEyOC5qcGdcIixcbiAgICBcImFkaGFtZGFubmF3YXkvMTI4LmpwZ1wiLFxuICAgIFwiYWluc2xleXdhZ29uLzEyOC5qcGdcIixcbiAgICBcInN2ZW5sZW4vMTI4LmpwZ1wiLFxuICAgIFwiZmFpc2FsYWJpZC8xMjguanBnXCIsXG4gICAgXCJiZXNodXIvMTI4LmpwZ1wiLFxuICAgIFwiY2FybHlzb24vMTI4LmpwZ1wiLFxuICAgIFwiZHV0Y2huYWRpYS8xMjguanBnXCIsXG4gICAgXCJ0ZWRkeXpldHRlcmx1bmQvMTI4LmpwZ1wiLFxuICAgIFwic2FtdWVsa3JhZnQvMTI4LmpwZ1wiLFxuICAgIFwiYW9pbWVkaWEvMTI4LmpwZ1wiLFxuICAgIFwidG9kZHJldy8xMjguanBnXCIsXG4gICAgXCJjb2RlcG9ldF9ydS8xMjguanBnXCIsXG4gICAgXCJhcnR2YXZzLzEyOC5qcGdcIixcbiAgICBcImJlbm9pdGJvdWNhcnQvMTI4LmpwZ1wiLFxuICAgIFwiam9tYXJtZW4vMTI4LmpwZ1wiLFxuICAgIFwia29sbWFybG9wZXovMTI4LmpwZ1wiLFxuICAgIFwiY3JlYXJ0aW5jLzEyOC5qcGdcIixcbiAgICBcImhvbWthLzEyOC5qcGdcIixcbiAgICBcImdhYm9yZW50b24vMTI4LmpwZ1wiLFxuICAgIFwicm9iaW5jbGVkaWVyZS8xMjguanBnXCIsXG4gICAgXCJtYXhpbXNvcm9raW4vMTI4LmpwZ1wiLFxuICAgIFwicGxhc3RpY2luZS8xMjguanBnXCIsXG4gICAgXCJqMmRlbWUvMTI4LmpwZ1wiLFxuICAgIFwicGVhY2hhbmFuci8xMjguanBnXCIsXG4gICAgXCJrYXBhbHVjY2lvLzEyOC5qcGdcIixcbiAgICBcImRlX2FzY2FuaW8vMTI4LmpwZ1wiLFxuICAgIFwicmlrYXMvMTI4LmpwZ1wiLFxuICAgIFwiZGF3aWR3dS8xMjguanBnXCIsXG4gICAgXCJtYXJjb3JhbWlyZXMvMTI4LmpwZ1wiLFxuICAgIFwiYW5nZWxjcmVhdGl2ZS8xMjguanBnXCIsXG4gICAgXCJycGF0ZXkvMTI4LmpwZ1wiLFxuICAgIFwicG9wZXkvMTI4LmpwZ1wiLFxuICAgIFwicmVoYXRrYXRodXJpYS8xMjguanBnXCIsXG4gICAgXCJ0aGVfcHVycGxlYnVubnkvMTI4LmpwZ1wiLFxuICAgIFwiMW1hcmtpei8xMjguanBnXCIsXG4gICAgXCJhamF4eV9ydS8xMjguanBnXCIsXG4gICAgXCJicmVubXVycmVsbC8xMjguanBnXCIsXG4gICAgXCJkdWRlc3RlaW4vMTI4LmpwZ1wiLFxuICAgIFwib3NrYXJsZXZpbnNvbi8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JzdHViZXIvMTI4LmpwZ1wiLFxuICAgIFwibmVoZnkvMTI4LmpwZ1wiLFxuICAgIFwidmljaXZhZGVsaW5lLzEyOC5qcGdcIixcbiAgICBcImxlYW5kcm92YXJhbmRhLzEyOC5qcGdcIixcbiAgICBcInNjb3R0Z2FsbGFudC8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JfaGF5ZGluLzEyOC5qcGdcIixcbiAgICBcInNhd3JiLzEyOC5qcGdcIixcbiAgICBcInJ5aGFuaGFzc2FuLzEyOC5qcGdcIixcbiAgICBcImFtYXl2cy8xMjguanBnXCIsXG4gICAgXCJhX2JyaXhlbi8xMjguanBnXCIsXG4gICAgXCJrYXJvbGtyYWtvd2lha18vMTI4LmpwZ1wiLFxuICAgIFwiaGVya3VsYW5vLzEyOC5qcGdcIixcbiAgICBcImdlcmFuNy8xMjguanBnXCIsXG4gICAgXCJjZ2dhdXJhdi8xMjguanBnXCIsXG4gICAgXCJjaHJpc193aXRrby8xMjguanBnXCIsXG4gICAgXCJsb3Nvc2luYS8xMjguanBnXCIsXG4gICAgXCJwb2xhcml0eS8xMjguanBnXCIsXG4gICAgXCJtYXR0bGF0LzEyOC5qcGdcIixcbiAgICBcImJyYW5kb25idXJrZS8xMjguanBnXCIsXG4gICAgXCJjb25zdGFudHgvMTI4LmpwZ1wiLFxuICAgIFwidGV5bG9yZmVsaXovMTI4LmpwZ1wiLFxuICAgIFwiY3JhaWdlbGltZWxpYWgvMTI4LmpwZ1wiLFxuICAgIFwicmFjaGVscmV2ZWxleS8xMjguanBnXCIsXG4gICAgXCJyZWFibzEwMS8xMjguanBnXCIsXG4gICAgXCJyYWhtZWVuLzEyOC5qcGdcIixcbiAgICBcImt5LzEyOC5qcGdcIixcbiAgICBcInJpY2t5eWVhbi8xMjguanBnXCIsXG4gICAgXCJqMDRudG9oLzEyOC5qcGdcIixcbiAgICBcInNwYnJvbWEvMTI4LmpwZ1wiLFxuICAgIFwic2ViYXNodG9uLzEyOC5qcGdcIixcbiAgICBcImpwZW5pY28vMTI4LmpwZ1wiLFxuICAgIFwiZnJhbmNpc192ZWdhLzEyOC5qcGdcIixcbiAgICBcIm9rdGF5ZWxpcGVrLzEyOC5qcGdcIixcbiAgICBcImtpa2lsbG8vMTI4LmpwZ1wiLFxuICAgIFwiZmFiYmlhbnovMTI4LmpwZ1wiLFxuICAgIFwibGFycnlnZXJhcmQvMTI4LmpwZ1wiLFxuICAgIFwiQnJvdW1pWW91c3NlZi8xMjguanBnXCIsXG4gICAgXCIwdGhlcnBsYW5ldC8xMjguanBnXCIsXG4gICAgXCJtYmlsYWxzaWRkaXF1ZTEvMTI4LmpwZ1wiLFxuICAgIFwiaW9udXNzLzEyOC5qcGdcIixcbiAgICBcImdycnJfbmwvMTI4LmpwZ1wiLFxuICAgIFwibGltaW5oYS8xMjguanBnXCIsXG4gICAgXCJyYXdkaWdnaWUvMTI4LmpwZ1wiLFxuICAgIFwicnlhbmRvd25pZS8xMjguanBnXCIsXG4gICAgXCJzZXRobG91ZXkvMTI4LmpwZ1wiLFxuICAgIFwicGl4YWdlLzEyOC5qcGdcIixcbiAgICBcImFycGl0bmovMTI4LmpwZ1wiLFxuICAgIFwic3dpdG1lcjc3Ny8xMjguanBnXCIsXG4gICAgXCJqb3Nldm5jbGNoLzEyOC5qcGdcIixcbiAgICBcImthbmlja2FpcmFqLzEyOC5qcGdcIixcbiAgICBcInB1emlrLzEyOC5qcGdcIixcbiAgICBcInRiYWtkZXNpZ25zLzEyOC5qcGdcIixcbiAgICBcImJlc2J1anVwaS8xMjguanBnXCIsXG4gICAgXCJzdXBqb2V5LzEyOC5qcGdcIixcbiAgICBcImxvd2llLzEyOC5qcGdcIixcbiAgICBcImxpbmtpYm9sLzEyOC5qcGdcIixcbiAgICBcImJhbGludG9yb3N6LzEyOC5qcGdcIixcbiAgICBcImltY29kaW5nLzEyOC5qcGdcIixcbiAgICBcImFndXN0aW5jcnVpei8xMjguanBnXCIsXG4gICAgXCJndXNvdG8vMTI4LmpwZ1wiLFxuICAgIFwidGhvbWFzc2NocmlqZXIvMTI4LmpwZ1wiLFxuICAgIFwic3VwZXJvdXRtYW4vMTI4LmpwZ1wiLFxuICAgIFwia2FsbWVycmF1dGFtLzEyOC5qcGdcIixcbiAgICBcImdhYnJpZWxpemFsby8xMjguanBnXCIsXG4gICAgXCJnb2plYW55bi8xMjguanBnXCIsXG4gICAgXCJkYXZpZGJhbGRpZS8xMjguanBnXCIsXG4gICAgXCJfdm9qdG8vMTI4LmpwZ1wiLFxuICAgIFwibGF1cmVuZ3JheS8xMjguanBnXCIsXG4gICAgXCJqeWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJteW15Ym95LzEyOC5qcGdcIixcbiAgICBcIm5lbGxsZW8vMTI4LmpwZ1wiLFxuICAgIFwibWFyY2lvdG9sZWRvLzEyOC5qcGdcIixcbiAgICBcIm5pbmphZDNtMC8xMjguanBnXCIsXG4gICAgXCJ0b19zb2hhbS8xMjguanBnXCIsXG4gICAgXCJoYXNzbHVuc2ZvcmQvMTI4LmpwZ1wiLFxuICAgIFwibXVyaWRyYWhoYWwvMTI4LmpwZ1wiLFxuICAgIFwibGV2aXNhbi8xMjguanBnXCIsXG4gICAgXCJncmFoYW1rZW5uZXJ5LzEyOC5qcGdcIixcbiAgICBcImxlcGV0aXRvZ3JlLzEyOC5qcGdcIixcbiAgICBcImFudG9uZ2Vua2luLzEyOC5qcGdcIixcbiAgICBcIm5lc3NvaWxhLzEyOC5qcGdcIixcbiAgICBcImFtYW5kYWJ1emFyZC8xMjguanBnXCIsXG4gICAgXCJzYWZyYW5rb3YvMTI4LmpwZ1wiLFxuICAgIFwiY29jb2xlcm8vMTI4LmpwZ1wiLFxuICAgIFwiZHNzNDkvMTI4LmpwZ1wiLFxuICAgIFwibWF0dDMyMjQvMTI4LmpwZ1wiLFxuICAgIFwiYmx1ZXNpeC8xMjguanBnXCIsXG4gICAgXCJxdWFpbGFuZHF1YXNhci8xMjguanBnXCIsXG4gICAgXCJBbGJlcnRvQ29jb2NpLzEyOC5qcGdcIixcbiAgICBcImxlcGluc2tpLzEyOC5qcGdcIixcbiAgICBcInNlbWVudGl5LzEyOC5qcGdcIixcbiAgICBcIm1odWRvYml2bmlrLzEyOC5qcGdcIixcbiAgICBcInRoaWJhdXRfcmUvMTI4LmpwZ1wiLFxuICAgIFwib2xnYXJ5LzEyOC5qcGdcIixcbiAgICBcInNob2piZXJnLzEyOC5qcGdcIixcbiAgICBcIm10b2xva29ubmlrb3YvMTI4LmpwZ1wiLFxuICAgIFwiYmVyZXRvLzEyOC5qcGdcIixcbiAgICBcIm5hdXBpbnRvcy8xMjguanBnXCIsXG4gICAgXCJ3ZWdvdHZpY2VzLzEyOC5qcGdcIixcbiAgICBcInhhZGhpeC8xMjguanBnXCIsXG4gICAgXCJtYWN4aW0vMTI4LmpwZ1wiLFxuICAgIFwicm9kbnlsb2Jvcy8xMjguanBnXCIsXG4gICAgXCJtYWRjYW1wb3MvMTI4LmpwZ1wiLFxuICAgIFwibWFkZWJ5dmFkaW0vMTI4LmpwZ1wiLFxuICAgIFwiYmFydG9zemRhd3lkemlrLzEyOC5qcGdcIixcbiAgICBcInN1cGVydm92YS8xMjguanBnXCIsXG4gICAgXCJtYXJrcmV0emxvZmYvMTI4LmpwZ1wiLFxuICAgIFwidm9uYWNob28vMTI4LmpwZ1wiLFxuICAgIFwiZGFyeWx3cy8xMjguanBnXCIsXG4gICAgXCJzdGV2ZWRlc2lnbmVyLzEyOC5qcGdcIixcbiAgICBcIm15bGVzYi8xMjguanBnXCIsXG4gICAgXCJoZXJiaWd0LzEyOC5qcGdcIixcbiAgICBcImRlcGF1bGF3YWduZXIvMTI4LmpwZ1wiLFxuICAgIFwiZ2VzaGFuLzEyOC5qcGdcIixcbiAgICBcImdpem1lZWRldmlsMTk5MS8xMjguanBnXCIsXG4gICAgXCJfc2NvdHRidXJnZXNzLzEyOC5qcGdcIixcbiAgICBcImxpc292c2t5LzEyOC5qcGdcIixcbiAgICBcImRhdmlkc2FzZGEvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0ZF9zaWduLzEyOC5qcGdcIixcbiAgICBcIllvdW5nQ3V0bGFzcy8xMjguanBnXCIsXG4gICAgXCJtZ29udG8vMTI4LmpwZ1wiLFxuICAgIFwiaXRzdG90YWxseWFteS8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JxdWlubi8xMjguanBnXCIsXG4gICAgXCJvc21vbmQvMTI4LmpwZ1wiLFxuICAgIFwib2tzYW5hZnJld2VyLzEyOC5qcGdcIixcbiAgICBcInphdWVya3JhdXQvMTI4LmpwZ1wiLFxuICAgIFwiaWFta2VpdGhtYXNvbi8xMjguanBnXCIsXG4gICAgXCJuaXRpbmhheWFyYW4vMTI4LmpwZ1wiLFxuICAgIFwibG1qYWJyZXUvMTI4LmpwZ1wiLFxuICAgIFwibWFuZGFsYXJlb3BlbnMvMTI4LmpwZ1wiLFxuICAgIFwidGhpbmtsZWZ0LzEyOC5qcGdcIixcbiAgICBcInBvbmNob21lbmRpdmlsLzEyOC5qcGdcIixcbiAgICBcImp1YW1wZXJyby8xMjguanBnXCIsXG4gICAgXCJicnVub2Rlc2lnbjEyMDYvMTI4LmpwZ1wiLFxuICAgIFwiY2FzZXljYXZhbmFnaC8xMjguanBnXCIsXG4gICAgXCJsdXhlLzEyOC5qcGdcIixcbiAgICBcImRvdGdyaWRsaW5lLzEyOC5qcGdcIixcbiAgICBcInNwZWR3aWcvMTI4LmpwZ1wiLFxuICAgIFwibWFkZXd1bGYvMTI4LmpwZ1wiLFxuICAgIFwibWF0dHNhcGlpLzEyOC5qcGdcIixcbiAgICBcImhlbGRlcmxlYWwvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXNzdHVtcGgvMTI4LmpwZ1wiLFxuICAgIFwiamF5cGhlbi8xMjguanBnXCIsXG4gICAgXCJuc2Ftb3lsb3YvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXN2YW5kZXJrb29pLzEyOC5qcGdcIixcbiAgICBcImp1c3RtZV90aW1vdGh5Zy8xMjguanBnXCIsXG4gICAgXCJvdG96ay8xMjguanBnXCIsXG4gICAgXCJwcmluemFkaS8xMjguanBnXCIsXG4gICAgXCJndTV0YWYvMTI4LmpwZ1wiLFxuICAgIFwiY3lyaWxfZ2FpbGxhcmQvMTI4LmpwZ1wiLFxuICAgIFwiZF9rb2JlbHlhdHNreS8xMjguanBnXCIsXG4gICAgXCJkYW5pbG9jLzEyOC5qcGdcIixcbiAgICBcIm53ZHNoYS8xMjguanBnXCIsXG4gICAgXCJyb21hbmJ1bGFoLzEyOC5qcGdcIixcbiAgICBcInNra2lyaWxvdi8xMjguanBnXCIsXG4gICAgXCJkdmR3aW5kZW4vMTI4LmpwZ1wiLFxuICAgIFwiZGFubm9sLzEyOC5qcGdcIixcbiAgICBcInRoZWtldmluam9uZXMvMTI4LmpwZ1wiLFxuICAgIFwiandhbHRlcjE0LzEyOC5qcGdcIixcbiAgICBcInRpbWd0aG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwiYnVkZGhhc291cmNlLzEyOC5qcGdcIixcbiAgICBcInV4cGlwZXIvMTI4LmpwZ1wiLFxuICAgIFwidGhhdG9uZXRvbW15LzEyOC5qcGdcIixcbiAgICBcImRpYW5zaWdpdHAvMTI4LmpwZ1wiLFxuICAgIFwiYWRyaWVudGhzLzEyOC5qcGdcIixcbiAgICBcImtsaW1ta2EvMTI4LmpwZ1wiLFxuICAgIFwiZ2thYW0vMTI4LmpwZ1wiLFxuICAgIFwiZGVyZWtjcmFtZXIvMTI4LmpwZ1wiLFxuICAgIFwiamVubnl5by8xMjguanBnXCIsXG4gICAgXCJuZXJyc29mdC8xMjguanBnXCIsXG4gICAgXCJ4YWxpb25tYWxpay8xMjguanBnXCIsXG4gICAgXCJlZGhlbmRlcnNvbi8xMjguanBnXCIsXG4gICAgXCJrZXl1cmk4NS8xMjguanBnXCIsXG4gICAgXCJyb3hhbmVqYW1tZXQvMTI4LmpwZ1wiLFxuICAgIFwia2ltY29vbC8xMjguanBnXCIsXG4gICAgXCJlZGtmLzEyOC5qcGdcIixcbiAgICBcIm1hdGtpbnMvMTI4LmpwZ1wiLFxuICAgIFwiYWxlc3NhbmRyb3JpYmUvMTI4LmpwZ1wiLFxuICAgIFwiamFja3NvbmxhdGthLzEyOC5qcGdcIixcbiAgICBcImxlYnJvbmplbm5hbi8xMjguanBnXCIsXG4gICAgXCJrb3N0YXNwdC8xMjguanBnXCIsXG4gICAgXCJrYXJsa2FuYWxsLzEyOC5qcGdcIixcbiAgICBcIm1veW5paGFuLzEyOC5qcGdcIixcbiAgICBcImRhbnBsaWVnby8xMjguanBnXCIsXG4gICAgXCJzYXVsaWhpcnZpLzEyOC5qcGdcIixcbiAgICBcIndlc2xleXRyYW5raW4vMTI4LmpwZ1wiLFxuICAgIFwiZmphZ3Vlcm8vMTI4LmpwZ1wiLFxuICAgIFwiYm93YnJpY2svMTI4LmpwZ1wiLFxuICAgIFwibWFzaGFhYWFhbC8xMjguanBnXCIsXG4gICAgXCJ5YXNzaXJ5YWh5YS8xMjguanBnXCIsXG4gICAgXCJkcGFycmVsbGkvMTI4LmpwZ1wiLFxuICAgIFwiZm90b21hZ2luLzEyOC5qcGdcIixcbiAgICBcImFrYV9qYW1lcy8xMjguanBnXCIsXG4gICAgXCJkZW5pc2VwaXJlcy8xMjguanBnXCIsXG4gICAgXCJpcWJhbHBlcmthc2EvMTI4LmpwZ1wiLFxuICAgIFwibWFydGluYW5zdHkvMTI4LmpwZ1wiLFxuICAgIFwiamFyc2VuLzEyOC5qcGdcIixcbiAgICBcInJfb3kvMTI4LmpwZ1wiLFxuICAgIFwianVzdGlucm9iLzEyOC5qcGdcIixcbiAgICBcImdhYnJpZWxyb3NzZXIvMTI4LmpwZ1wiLFxuICAgIFwibWFsZ29yZG9uLzEyOC5qcGdcIixcbiAgICBcImNhcmxmYWlyY2xvdWdoLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxhYmVoc2VyYS8xMjguanBnXCIsXG4gICAgXCJwaWVycmVzdG9mZmUvMTI4LmpwZ1wiLFxuICAgIFwiZW5qb3l0aGV0YXUvMTI4LmpwZ1wiLFxuICAgIFwibG9nYW5qbGFtYmVydC8xMjguanBnXCIsXG4gICAgXCJycGVlenkvMTI4LmpwZ1wiLFxuICAgIFwiY29yZXlnaW5uaXZhbi8xMjguanBnXCIsXG4gICAgXCJtaWNoYWxocm9uLzEyOC5qcGdcIixcbiAgICBcIm1zdmVldC8xMjguanBnXCIsXG4gICAgXCJsaW5nZXN3YXJhbi8xMjguanBnXCIsXG4gICAgXCJrb2xzdmVpbi8xMjguanBnXCIsXG4gICAgXCJwZXRlcjU3Ni8xMjguanBnXCIsXG4gICAgXCJyZWlkZWlyZWRhbGUvMTI4LmpwZ1wiLFxuICAgIFwiam9leW11cmRhaC8xMjguanBnXCIsXG4gICAgXCJyYXBoYWVsbmlrc29uLzEyOC5qcGdcIixcbiAgICBcIm12ZGhldXZlbC8xMjguanBnXCIsXG4gICAgXCJtYXhsaW5kZXJtYW4vMTI4LmpwZ1wiLFxuICAgIFwiamltbXVpcmhlYWQvMTI4LmpwZ1wiLFxuICAgIFwiYmVncmVhdGl2ZS8xMjguanBnXCIsXG4gICAgXCJmcmFua2llZnJlZXNiaWUvMTI4LmpwZ1wiLFxuICAgIFwicm9idHVybGluY2t4LzEyOC5qcGdcIixcbiAgICBcIlRhbGJpX0NvblNlcHQvMTI4LmpwZ1wiLFxuICAgIFwibG9uZ2xpdmVteXdvcmQvMTI4LmpwZ1wiLFxuICAgIFwidmFuY2hlc3ovMTI4LmpwZ1wiLFxuICAgIFwibWFpa2xhbS8xMjguanBnXCIsXG4gICAgXCJoZXJtYW5vYnJvdGhlci8xMjguanBnXCIsXG4gICAgXCJyZXpfX19hLzEyOC5qcGdcIixcbiAgICBcImdyZWdzcXVlZWIvMTI4LmpwZ1wiLFxuICAgIFwiZ3JlZW5iZXMvMTI4LmpwZ1wiLFxuICAgIFwiX3JhZ3pvci8xMjguanBnXCIsXG4gICAgXCJhbnRob255c3Vrb3cvMTI4LmpwZ1wiLFxuICAgIFwiZmx1aWRicnVzaC8xMjguanBnXCIsXG4gICAgXCJkYWN0cnRyLzEyOC5qcGdcIixcbiAgICBcImplaG5nbHlubi8xMjguanBnXCIsXG4gICAgXCJiZXJnbWFydGluLzEyOC5qcGdcIixcbiAgICBcImh1Z29jb3JuZWpvLzEyOC5qcGdcIixcbiAgICBcIl9ra2dhLzEyOC5qcGdcIixcbiAgICBcImR6YW50aWV2bS8xMjguanBnXCIsXG4gICAgXCJzYXdhbGF6YXIvMTI4LmpwZ1wiLFxuICAgIFwic292ZXNvdmUvMTI4LmpwZ1wiLFxuICAgIFwiam9uc2dvdHdvb2QvMTI4LmpwZ1wiLFxuICAgIFwiYnlyeWFuLzEyOC5qcGdcIixcbiAgICBcInZ5dGF1dGFzX2EvMTI4LmpwZ1wiLFxuICAgIFwibWl6aGdhbi8xMjguanBnXCIsXG4gICAgXCJjaWNlcm9ici8xMjguanBnXCIsXG4gICAgXCJuaWxzaGVsbWVyc3Nvbi8xMjguanBnXCIsXG4gICAgXCJkMzNwdGhvdWdodC8xMjguanBnXCIsXG4gICAgXCJkYXZlY3JhaWdlLzEyOC5qcGdcIixcbiAgICBcIm5ja2pydnMvMTI4LmpwZ1wiLFxuICAgIFwiYWxleGFuZGVybWF5ZXMvMTI4LmpwZ1wiLFxuICAgIFwiamN1YmljLzEyOC5qcGdcIixcbiAgICBcImNyYWlncmNvbGVzLzEyOC5qcGdcIixcbiAgICBcImJhZ2F3YXJtYW4vMTI4LmpwZ1wiLFxuICAgIFwicm9iX3Rob21hczEwLzEyOC5qcGdcIixcbiAgICBcImNvZmxhLzEyOC5qcGdcIixcbiAgICBcIm1haWtlbGsvMTI4LmpwZ1wiLFxuICAgIFwicnRnaWJib25zLzEyOC5qcGdcIixcbiAgICBcInJ1c3NlbGxfYmF5bGlzLzEyOC5qcGdcIixcbiAgICBcIm1oZXNzbG93LzEyOC5qcGdcIixcbiAgICBcImNvZHlzYW5maWxpcHBvLzEyOC5qcGdcIixcbiAgICBcIndlYnRhbnlhLzEyOC5qcGdcIixcbiAgICBcIm1hZGVieWJyZW50b24vMTI4LmpwZ1wiLFxuICAgIFwiZGNhbG9uYWNpLzEyOC5qcGdcIixcbiAgICBcInBlcmZlY3RmbG93LzEyOC5qcGdcIixcbiAgICBcImpqc2lpaS8xMjguanBnXCIsXG4gICAgXCJzYWFyYWJwcmVldC8xMjguanBnXCIsXG4gICAgXCJrdW1hcnJhamFuMTIxMjMvMTI4LmpwZ1wiLFxuICAgIFwiaWFtc3RlZmZlbi8xMjguanBnXCIsXG4gICAgXCJ0aGVtaWtlbmFnbGUvMTI4LmpwZ1wiLFxuICAgIFwiY2Vla2F5dHdlZXQvMTI4LmpwZ1wiLFxuICAgIFwibGFycnlib2x0LzEyOC5qcGdcIixcbiAgICBcImNvbnNwaXJhdG9yLzEyOC5qcGdcIixcbiAgICBcImRhbGxhc2JwZXRlcnMvMTI4LmpwZ1wiLFxuICAgIFwibjNkbWF4LzEyOC5qcGdcIixcbiAgICBcInRlcnBpbW9zdC8xMjguanBnXCIsXG4gICAgXCJraXJpbGx6LzEyOC5qcGdcIixcbiAgICBcImJ5cm5lY29yZS8xMjguanBnXCIsXG4gICAgXCJqX2RyYWtlXy8xMjguanBnXCIsXG4gICAgXCJjYWxlYmpveWNlLzEyOC5qcGdcIixcbiAgICBcInJ1c3NvZWR1LzEyOC5qcGdcIixcbiAgICBcImhvYW5nbG9pLzEyOC5qcGdcIixcbiAgICBcInRvYnlzYXhvbi8xMjguanBnXCIsXG4gICAgXCJnb2ZyYXNkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwiZGltYXBvc255eS8xMjguanBnXCIsXG4gICAgXCJ0amlzb3VzYS8xMjguanBnXCIsXG4gICAgXCJva2FuZHVuZ2VsLzEyOC5qcGdcIixcbiAgICBcImJpbGx5cm9zaGFuLzEyOC5qcGdcIixcbiAgICBcIm9za2FtYXlhLzEyOC5qcGdcIixcbiAgICBcIm1vdGlvbnRoaW5rcy8xMjguanBnXCIsXG4gICAgXCJrbmlsb2IvMTI4LmpwZ1wiLFxuICAgIFwiYXNob2NrYTE4LzEyOC5qcGdcIixcbiAgICBcIm1hcnJpbW8vMTI4LmpwZ1wiLFxuICAgIFwiYmFydGpvLzEyOC5qcGdcIixcbiAgICBcIm9tbml6eWEvMTI4LmpwZ1wiLFxuICAgIFwiZXJuZXN0c2VtZXJkYS8xMjguanBnXCIsXG4gICAgXCJhbmRyZWFzX3ByLzEyOC5qcGdcIixcbiAgICBcImVkZ2FyY2hyaXM5OS8xMjguanBnXCIsXG4gICAgXCJ0aG9tYXNnZWlzZW4vMTI4LmpwZ1wiLFxuICAgIFwiZ3NlZ3Vpbi8xMjguanBnXCIsXG4gICAgXCJqb2FubmVmb3Vybmllci8xMjguanBnXCIsXG4gICAgXCJkZW1lcnNkZXNpZ25zLzEyOC5qcGdcIixcbiAgICBcImFkYW1tYXJzYmFyLzEyOC5qcGdcIixcbiAgICBcIm5hc2lyd2QvMTI4LmpwZ1wiLFxuICAgIFwibl90YXNzb25lLzEyOC5qcGdcIixcbiAgICBcImphdm9yc3preS8xMjguanBnXCIsXG4gICAgXCJ0aGVtcmRhdmUvMTI4LmpwZ1wiLFxuICAgIFwieWVjaWRzbS8xMjguanBnXCIsXG4gICAgXCJuaWNvbGxlcmljaC8xMjguanBnXCIsXG4gICAgXCJjYW5hcHVkLzEyOC5qcGdcIixcbiAgICBcIm5pY29sZWdseW5uLzEyOC5qcGdcIixcbiAgICBcImp1ZHpoaW5fbWlsZXMvMTI4LmpwZ1wiLFxuICAgIFwiZGVzaWduZXJ2em0vMTI4LmpwZ1wiLFxuICAgIFwia2lhbm9zaHAvMTI4LmpwZ1wiLFxuICAgIFwiZXZhbmRyaXgvMTI4LmpwZ1wiLFxuICAgIFwiYWx0ZXJjaHVjYS8xMjguanBnXCIsXG4gICAgXCJkaHJ1Ym8vMTI4LmpwZ1wiLFxuICAgIFwibWFfdGlheC8xMjguanBnXCIsXG4gICAgXCJzc2JiX21lLzEyOC5qcGdcIixcbiAgICBcImRvcnBoZXJuLzEyOC5qcGdcIixcbiAgICBcIm1hdXJpb2xnLzEyOC5qcGdcIixcbiAgICBcImJydW5vX21hcnQvMTI4LmpwZ1wiLFxuICAgIFwibWFjdG9wdXMvMTI4LmpwZ1wiLFxuICAgIFwidGhlX3dpbnNsZXQvMTI4LmpwZ1wiLFxuICAgIFwiam9lbWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJTaHJpaWlpaW1wLzEyOC5qcGdcIixcbiAgICBcImphY29iYmVubmV0dC8xMjguanBnXCIsXG4gICAgXCJuZmVkb3JvZmYvMTI4LmpwZ1wiLFxuICAgIFwiaWFtZ2xpbXkvMTI4LmpwZ1wiLFxuICAgIFwiYWxsYWdyaW5nYXVzLzEyOC5qcGdcIixcbiAgICBcImFpaWFpaWFpaS8xMjguanBnXCIsXG4gICAgXCJvbGFvbHVzb2dhLzEyOC5qcGdcIixcbiAgICBcImJ1cnlha25pY2svMTI4LmpwZ1wiLFxuICAgIFwid2ltMWsvMTI4LmpwZ1wiLFxuICAgIFwibmlja2xhY2tlLzEyOC5qcGdcIixcbiAgICBcImExY2hhcG9uZS8xMjguanBnXCIsXG4gICAgXCJzdGV5bnZpbGpvZW4vMTI4LmpwZ1wiLFxuICAgIFwic3RyaWtld2FuLzEyOC5qcGdcIixcbiAgICBcInJ5YW5raXJrbWFuLzEyOC5qcGdcIixcbiAgICBcImFuZHJld2Fib2dhZG8vMTI4LmpwZ1wiLFxuICAgIFwiZG9vb29uLzEyOC5qcGdcIixcbiAgICBcImphZ2FuMTIzLzEyOC5qcGdcIixcbiAgICBcImFyaWZmc2V0aWF3YW4vMTI4LmpwZ1wiLFxuICAgIFwiZWxlbmFkaXNzaS8xMjguanBnXCIsXG4gICAgXCJtd2Fya2VudGluLzEyOC5qcGdcIixcbiAgICBcInRoaWVycnltZWllcl8vMTI4LmpwZ1wiLFxuICAgIFwicl9nYXJjaWEvMTI4LmpwZ1wiLFxuICAgIFwiZG1hY2tlcm1hbi8xMjguanBnXCIsXG4gICAgXCJib3JhbnR1bGEvMTI4LmpwZ1wiLFxuICAgIFwia29udXMvMTI4LmpwZ1wiLFxuICAgIFwic3BhY2V3b29kXy8xMjguanBnXCIsXG4gICAgXCJyeXVjaGkzMTEvMTI4LmpwZ1wiLFxuICAgIFwiZXZhbnNoYWplZC8xMjguanBnXCIsXG4gICAgXCJ0cmlzdGFubGVncm9zLzEyOC5qcGdcIixcbiAgICBcInNob2FpYjI1My8xMjguanBnXCIsXG4gICAgXCJhaXNsaW5ua2VsbHkvMTI4LmpwZ1wiLFxuICAgIFwib2tjb2tlci8xMjguanBnXCIsXG4gICAgXCJ0aW1wZXRyaWNvbGEvMTI4LmpwZ1wiLFxuICAgIFwic3Vuc2hpbmVkZ2lybC8xMjguanBnXCIsXG4gICAgXCJjaGFkYW1pLzEyOC5qcGdcIixcbiAgICBcImFsZWNsYXJzb25pdi8xMjguanBnXCIsXG4gICAgXCJub21pZGVzaWducy8xMjguanBnXCIsXG4gICAgXCJwZXRlYmVybmFyZG8vMTI4LmpwZ1wiLFxuICAgIFwic2NvdHRpZWR1ZGUvMTI4LmpwZ1wiLFxuICAgIFwibWlsbGluZXQvMTI4LmpwZ1wiLFxuICAgIFwiaW1zb3Blci8xMjguanBnXCIsXG4gICAgXCJpbWFtbXVodC8xMjguanBnXCIsXG4gICAgXCJiZW5qYW1pbl9rbmlnaHQvMTI4LmpwZ1wiLFxuICAgIFwibmVwZHVkLzEyOC5qcGdcIixcbiAgICBcImpva2k0LzEyOC5qcGdcIixcbiAgICBcImxhbmNlZ3V5YXR0LzEyOC5qcGdcIixcbiAgICBcImJib3kxODk1LzEyOC5qcGdcIixcbiAgICBcImFteXdlYmJiLzEyOC5qcGdcIixcbiAgICBcInJ3ZXZlLzEyOC5qcGdcIixcbiAgICBcImhhcnVpbnRlc2V0dGRlbi8xMjguanBnXCIsXG4gICAgXCJyaWNidXJ0b24vMTI4LmpwZ1wiLFxuICAgIFwibmVsc2hkLzEyOC5qcGdcIixcbiAgICBcImJhdHNpcmFpLzEyOC5qcGdcIixcbiAgICBcInByaW1vemNpZ2xlci8xMjguanBnXCIsXG4gICAgXCJqZmZncmRuci8xMjguanBnXCIsXG4gICAgXCI4ZDNrLzEyOC5qcGdcIixcbiAgICBcImdlbmVzZWxlem5ldi8xMjguanBnXCIsXG4gICAgXCJhbF9saS8xMjguanBnXCIsXG4gICAgXCJzb3VwZXJwaGx5LzEyOC5qcGdcIixcbiAgICBcIm1zbGFya2luYS8xMjguanBnXCIsXG4gICAgXCIyZm9ja3VzLzEyOC5qcGdcIixcbiAgICBcImNkYXZpczU2NS8xMjguanBnXCIsXG4gICAgXCJ4aWVsLzEyOC5qcGdcIixcbiAgICBcInR1cmt1dHV1bGkvMTI4LmpwZ1wiLFxuICAgIFwidXh3YXJkLzEyOC5qcGdcIixcbiAgICBcImxlYmlub2NsYXJkLzEyOC5qcGdcIixcbiAgICBcImdhdXJhdmphc3NhbC8xMjguanBnXCIsXG4gICAgXCJkYXZpZG1lcnJpcXVlLzEyOC5qcGdcIixcbiAgICBcIm1kc2lzdG8vMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmV3b2ZmaWNlci8xMjguanBnXCIsXG4gICAgXCJrb2pvdXJpbi8xMjguanBnXCIsXG4gICAgXCJkbmlybWFsLzEyOC5qcGdcIixcbiAgICBcImtldmthLzEyOC5qcGdcIixcbiAgICBcIm1yX3NoaXpuaXQvMTI4LmpwZ1wiLFxuICAgIFwiYWx1aXNpb19hemV2ZWRvLzEyOC5qcGdcIixcbiAgICBcImNsb3Vkc3R1ZGlvLzEyOC5qcGdcIixcbiAgICBcImRhbnZpZXJpY2gvMTI4LmpwZ1wiLFxuICAgIFwiYWxleGl2YW5pY2hraW4vMTI4LmpwZ1wiLFxuICAgIFwiZnJhbl9tY2hhbXkvMTI4LmpwZ1wiLFxuICAgIFwicGVycmV0bWFnYWxpLzEyOC5qcGdcIixcbiAgICBcImJldHJheWRhbi8xMjguanBnXCIsXG4gICAgXCJjYWRpa2thcmEvMTI4LmpwZ1wiLFxuICAgIFwibWF0YmVlZG90Y29tLzEyOC5qcGdcIixcbiAgICBcImplcmVteXdvcmJveXMvMTI4LmpwZ1wiLFxuICAgIFwiYnBhcnRyaWRnZS8xMjguanBnXCIsXG4gICAgXCJtaWNoYWVsa29wZXIvMTI4LmpwZ1wiLFxuICAgIFwic2lsdjNyZ3ZuLzEyOC5qcGdcIixcbiAgICBcImFsZXZpemlvLzEyOC5qcGdcIixcbiAgICBcImpvaG5zbWl0aGFnZW5jeS8xMjguanBnXCIsXG4gICAgXCJsYXdsYndveS8xMjguanBnXCIsXG4gICAgXCJ2aXRvcjM3Ni8xMjguanBnXCIsXG4gICAgXCJkZXNhc3Ryb3pvLzEyOC5qcGdcIixcbiAgICBcInRoaW1vX2N6LzEyOC5qcGdcIixcbiAgICBcImphc29ubWFya2pvbmVzLzEyOC5qcGdcIixcbiAgICBcImxoYXVzZXJtYW5uLzEyOC5qcGdcIixcbiAgICBcInhyYXZpbC8xMjguanBnXCIsXG4gICAgXCJndWlzY2htaXR0LzEyOC5qcGdcIixcbiAgICBcInZpZ29icm9ueC8xMjguanBnXCIsXG4gICAgXCJwYW5naGFsMC8xMjguanBnXCIsXG4gICAgXCJtaWd1ZWxrb29yZW1hbi8xMjguanBnXCIsXG4gICAgXCJzdXJnZW9uaXN0LzEyOC5qcGdcIixcbiAgICBcImNocmlzdGlhbm9saWZmLzEyOC5qcGdcIixcbiAgICBcImNhc3BlcmdybC8xMjguanBnXCIsXG4gICAgXCJpYW1rYXJuYS8xMjguanBnXCIsXG4gICAgXCJpcGF2ZWxlay8xMjguanBnXCIsXG4gICAgXCJwaWVycmVfbmVsLzEyOC5qcGdcIixcbiAgICBcInkyZ3JhcGhpYy8xMjguanBnXCIsXG4gICAgXCJzdGVybGluZ3J1bGVzLzEyOC5qcGdcIixcbiAgICBcImVsYnVzY2FpbmZvLzEyOC5qcGdcIixcbiAgICBcImJlbm55amllbi8xMjguanBnXCIsXG4gICAgXCJzdHVzaG9uYS8xMjguanBnXCIsXG4gICAgXCJlc3RlYmFudXJpYmUvMTI4LmpwZ1wiLFxuICAgIFwiZW1icmNlY3JlYXRpb25zLzEyOC5qcGdcIixcbiAgICBcImRhbmlsbG9zLzEyOC5qcGdcIixcbiAgICBcImVsbGlvdGxld2lzLzEyOC5qcGdcIixcbiAgICBcImNoYXJsZXNycHJhdHQvMTI4LmpwZ1wiLFxuICAgIFwidmxhZHluLzEyOC5qcGdcIixcbiAgICBcImVtbWVmZmVzcy8xMjguanBnXCIsXG4gICAgXCJjYXJsb3NibGFuY29fZXUvMTI4LmpwZ1wiLFxuICAgIFwibGVvbmZlZG90b3YvMTI4LmpwZ1wiLFxuICAgIFwicmFuZ2FmYW5ncy8xMjguanBnXCIsXG4gICAgXCJjaHJpc19mcmVlcy8xMjguanBnXCIsXG4gICAgXCJ0Z29ybXR4LzEyOC5qcGdcIixcbiAgICBcImJyeWFuX3RvcGhhbS8xMjguanBnXCIsXG4gICAgXCJqcHNjcmliYmxlcy8xMjguanBnXCIsXG4gICAgXCJtaWdodHk1NS8xMjguanBnXCIsXG4gICAgXCJjYXJib250d2VsdmUvMTI4LmpwZ1wiLFxuICAgIFwiaXNhYWNmaWZ0aC8xMjguanBnXCIsXG4gICAgXCJpYW1qZGVsZW9uLzEyOC5qcGdcIixcbiAgICBcInNub3d3cml0ZS8xMjguanBnXCIsXG4gICAgXCJiYXJwdXRyby8xMjguanBnXCIsXG4gICAgXCJkcmV3YnlyZWVzZS8xMjguanBnXCIsXG4gICAgXCJzYWNoYWNvcmF6emkvMTI4LmpwZ1wiLFxuICAgIFwiYmlzdHJpYW5pb3NpcC8xMjguanBnXCIsXG4gICAgXCJtYWdvbzA0LzEyOC5qcGdcIixcbiAgICBcInBlaGFtb25kZWxsby8xMjguanBnXCIsXG4gICAgXCJ5YXl0ZWVqYXkvMTI4LmpwZ1wiLFxuICAgIFwiYV9oYXJyaXM4OC8xMjguanBnXCIsXG4gICAgXCJhbGd1bnNhbmFicmlhLzEyOC5qcGdcIixcbiAgICBcInpmb3JyZXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwib3ZhbGwvMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zamdzb3VzYS8xMjguanBnXCIsXG4gICAgXCJnZW9iaWthcy8xMjguanBnXCIsXG4gICAgXCJhaF9saWNlLzEyOC5qcGdcIixcbiAgICBcImxvb25leWRvb2RsZS8xMjguanBnXCIsXG4gICAgXCJuZXJkZ3I4LzEyOC5qcGdcIixcbiAgICBcImRkZ2djY2FhLzEyOC5qcGdcIixcbiAgICBcInphY2tlZWxlci8xMjguanBnXCIsXG4gICAgXCJub3JtYW5ib3gvMTI4LmpwZ1wiLFxuICAgIFwiZWxfZnVlcnRpc2ltby8xMjguanBnXCIsXG4gICAgXCJpc21haWxfYmlsdGFnaS8xMjguanBnXCIsXG4gICAgXCJqdWFuZ29tZXp3LzEyOC5qcGdcIixcbiAgICBcImpubW5yZC8xMjguanBnXCIsXG4gICAgXCJwYXRyaWNrY29vbWJlLzEyOC5qcGdcIixcbiAgICBcInJ5YW5qb2huc29uX21lLzEyOC5qcGdcIixcbiAgICBcIm1hcmtvbHNjaGVza3kvMTI4LmpwZ1wiLFxuICAgIFwiamVmZmdvbGVuc2tpLzEyOC5qcGdcIixcbiAgICBcImt2YXNuaWMvMTI4LmpwZ1wiLFxuICAgIFwibGluZHNleXppbGxhLzEyOC5qcGdcIixcbiAgICBcImdhdWNob21hdHQvMTI4LmpwZ1wiLFxuICAgIFwiYWZ1c2luYXR0by8xMjguanBnXCIsXG4gICAgXCJrZXZpbm9oLzEyOC5qcGdcIixcbiAgICBcIm9rYW5zdXJyZWVsLzEyOC5qcGdcIixcbiAgICBcImFkYW1hd2Vzb21lZmFjZS8xMjguanBnXCIsXG4gICAgXCJlbWlsZWJvdWRlbGluZy8xMjguanBnXCIsXG4gICAgXCJhcmlzaGlfLzEyOC5qcGdcIixcbiAgICBcImp1YW5tYW1hcnRpbmV6LzEyOC5qcGdcIixcbiAgICBcIndpa2l6aW5lci8xMjguanBnXCIsXG4gICAgXCJkYW50aG1zLzEyOC5qcGdcIixcbiAgICBcIm1rZ2luZm8vMTI4LmpwZ1wiLFxuICAgIFwidGVycm9ycGl4ZWwvMTI4LmpwZ1wiLFxuICAgIFwiY3VyaW91c29uYXV0LzEyOC5qcGdcIixcbiAgICBcInByaGVlbW8vMTI4LmpwZ1wiLFxuICAgIFwibWljaGFlbGNvbGVuc28vMTI4LmpwZ1wiLFxuICAgIFwiZm9jenppLzEyOC5qcGdcIixcbiAgICBcIm1hcnRpcDA3LzEyOC5qcGdcIixcbiAgICBcInRoYW9kYW5nMTcvMTI4LmpwZ1wiLFxuICAgIFwiam9obmNhZmF6emEvMTI4LmpwZ1wiLFxuICAgIFwicm9iaW5sYXlmaWVsZC8xMjguanBnXCIsXG4gICAgXCJmcmFuY2lzY29hbWsvMTI4LmpwZ1wiLFxuICAgIFwiYWJkdWxoeWV1ay8xMjguanBnXCIsXG4gICAgXCJtYXJrbGFtYi8xMjguanBnXCIsXG4gICAgXCJlZG9iZW5lLzEyOC5qcGdcIixcbiAgICBcImFuZHJlc2VuZnJlZHJpay8xMjguanBnXCIsXG4gICAgXCJtaWthZWxqb3JodWx0LzEyOC5qcGdcIixcbiAgICBcImNocmlzc2xvd2lrLzEyOC5qcGdcIixcbiAgICBcInZpbmNpYXJ0cy8xMjguanBnXCIsXG4gICAgXCJtZWVsZm9yZC8xMjguanBnXCIsXG4gICAgXCJlbGxpb3Rub2x0ZW4vMTI4LmpwZ1wiLFxuICAgIFwieWVodWRhYi8xMjguanBnXCIsXG4gICAgXCJ2aWpheWthcnRoaWsvMTI4LmpwZ1wiLFxuICAgIFwiYmZyb2hzLzEyOC5qcGdcIixcbiAgICBcImpvc2VwX21hcnRpbnMvMTI4LmpwZ1wiLFxuICAgIFwiYXR0YWNrcy8xMjguanBnXCIsXG4gICAgXCJzdXI0ZHllLzEyOC5qcGdcIixcbiAgICBcInR1bXNraS8xMjguanBnXCIsXG4gICAgXCJpbnN0YWxveC8xMjguanBnXCIsXG4gICAgXCJtYW5nb3NhbmdvLzEyOC5qcGdcIixcbiAgICBcInBhdWxmYXJpbm8vMTI4LmpwZ1wiLFxuICAgIFwia2F6YWt5OTk5LzEyOC5qcGdcIixcbiAgICBcImtpd2l1cG92ZXIvMTI4LmpwZ1wiLFxuICAgIFwibnZrem5lbW8vMTI4LmpwZ1wiLFxuICAgIFwidG9tX2V2ZW4vMTI4LmpwZ1wiLFxuICAgIFwicmF0YnVzLzEyOC5qcGdcIixcbiAgICBcIndvb2RzbWFuMDAxLzEyOC5qcGdcIixcbiAgICBcImpvc2htZWRlc2tpLzEyOC5qcGdcIixcbiAgICBcInRoZXdpbGxiZWFyZC8xMjguanBnXCIsXG4gICAgXCJwc2Fpa2FsaS8xMjguanBnXCIsXG4gICAgXCJqb2VfYmxhY2svMTI4LmpwZ1wiLFxuICAgIFwiYWxlaW5hZHNheXMvMTI4LmpwZ1wiLFxuICAgIFwibWFyY3VzZ29yaWxsaXVzLzEyOC5qcGdcIixcbiAgICBcImhvdGFfdi8xMjguanBnXCIsXG4gICAgXCJqZ2h5bGxlYmVydC8xMjguanBnXCIsXG4gICAgXCJzaGluemUvMTI4LmpwZ1wiLFxuICAgIFwiamFucGFsb3VuZWsvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW1pZXNwb2tlbi8xMjguanBnXCIsXG4gICAgXCJoZXJfcnV1LzEyOC5qcGdcIixcbiAgICBcImRhbnNvd3Rlci8xMjguanBnXCIsXG4gICAgXCJmZWxpcGVhcGlyZXNzLzEyOC5qcGdcIixcbiAgICBcIm1hZ3VnemJyYW5kMmQvMTI4LmpwZ1wiLFxuICAgIFwicG9zdGVyam9iLzEyOC5qcGdcIixcbiAgICBcIm5hdGhhbGllX2ZzLzEyOC5qcGdcIixcbiAgICBcImJvYmJ5dHdvc2hvZXMvMTI4LmpwZ1wiLFxuICAgIFwiZHJlaXpsZS8xMjguanBnXCIsXG4gICAgXCJqZXJlbXltb3V0b24vMTI4LmpwZ1wiLFxuICAgIFwiZWxpc2FiZXRoa2phZXIvMTI4LmpwZ1wiLFxuICAgIFwibm90YmFkYXJ0LzEyOC5qcGdcIixcbiAgICBcIm1vaGFucm9oaXRoLzEyOC5qcGdcIixcbiAgICBcImpsc29sZXJkZWx0b3JvLzEyOC5qcGdcIixcbiAgICBcIml0c2thd3Nhci8xMjguanBnXCIsXG4gICAgXCJzbG93c3BvY2svMTI4LmpwZ1wiLFxuICAgIFwienZjaGtlbGx5LzEyOC5qcGdcIixcbiAgICBcIndpbGphbnNsb2ZzdHJhLzEyOC5qcGdcIixcbiAgICBcImNyYWlnaGVubmViZXJyeS8xMjguanBnXCIsXG4gICAgXCJ0cnViZWF0dG8vMTI4LmpwZ1wiLFxuICAgIFwianVhdW1sb2wvMTI4LmpwZ1wiLFxuICAgIFwic2Ftc2NvdXRvLzEyOC5qcGdcIixcbiAgICBcIkJlbm91YXJyYWRlTS8xMjguanBnXCIsXG4gICAgXCJnaXBzeV9yYWYvMTI4LmpwZ1wiLFxuICAgIFwibmV0b25ldF9pbC8xMjguanBnXCIsXG4gICAgXCJhcmtva29sZXkvMTI4LmpwZ1wiLFxuICAgIFwiaXRzYWppbWl0aGluZy8xMjguanBnXCIsXG4gICAgXCJzbWFsb25zby8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JkZWFuZGEvMTI4LmpwZ1wiLFxuICAgIFwiX2R3aXRlXy8xMjguanBnXCIsXG4gICAgXCJyaWNoYXJkZ2FycmV0dHMvMTI4LmpwZ1wiLFxuICAgIFwiZ3JlZ3J3aWxraW5zb24vMTI4LmpwZ1wiLFxuICAgIFwiYW5hdG9saW5pY29sYWUvMTI4LmpwZ1wiLFxuICAgIFwibHU0c2gxaS8xMjguanBnXCIsXG4gICAgXCJzdGVmYW5vdGlybG9uaS8xMjguanBnXCIsXG4gICAgXCJvc3RpcmJ1LzEyOC5qcGdcIixcbiAgICBcImRhcmN5c3RvbmdlLzEyOC5qcGdcIixcbiAgICBcIm5haXRhbmFtb3Jlbm8vMTI4LmpwZ1wiLFxuICAgIFwibWljaGFlbGNvbWlza2V5LzEyOC5qcGdcIixcbiAgICBcImFkaGlhcmRhbmEvMTI4LmpwZ1wiLFxuICAgIFwibWFyY29tYW5vXy8xMjguanBnXCIsXG4gICAgXCJkYXZpZGNhemFsaXMvMTI4LmpwZ1wiLFxuICAgIFwiZmFsY29uZXJpZS8xMjguanBnXCIsXG4gICAgXCJncmVna2lsaWFuLzEyOC5qcGdcIixcbiAgICBcImJjcmFkLzEyOC5qcGdcIixcbiAgICBcImJvbHphbm1hcmNvLzEyOC5qcGdcIixcbiAgICBcImxvd19yZXMvMTI4LmpwZ1wiLFxuICAgIFwidmxhamtpLzEyOC5qcGdcIixcbiAgICBcInBldGFyX3Byb2cvMTI4LmpwZ1wiLFxuICAgIFwiam9ua3Nwci8xMjguanBnXCIsXG4gICAgXCJha21hbGZpa3JpLzEyOC5qcGdcIixcbiAgICBcIm1mYWNjaGluZWxsby8xMjguanBnXCIsXG4gICAgXCJhdGFuaXNtLzEyOC5qcGdcIixcbiAgICBcImhhcnJ5X3Npc3RhbGFtLzEyOC5qcGdcIixcbiAgICBcIm11cnJheXN3aWZ0LzEyOC5qcGdcIixcbiAgICBcImJvYndhc3Nlcm1hbm4vMTI4LmpwZ1wiLFxuICAgIFwiZ2F2cjFsMC8xMjguanBnXCIsXG4gICAgXCJtYWRzaGVuc2VsLzEyOC5qcGdcIixcbiAgICBcIm1yX3N1YnRsZS8xMjguanBnXCIsXG4gICAgXCJkZXZpbGpob18vMTI4LmpwZ1wiLFxuICAgIFwic2FsaW1pYW5vZmYvMTI4LmpwZ1wiLFxuICAgIFwiam9ldHJ1ZXNkZWxsLzEyOC5qcGdcIixcbiAgICBcInR3aXR0eXBvcmsvMTI4LmpwZ1wiLFxuICAgIFwiYWlyc2t5bGFyLzEyOC5qcGdcIixcbiAgICBcImRuZXprdW1hci8xMjguanBnXCIsXG4gICAgXCJkZ2FqamFyLzEyOC5qcGdcIixcbiAgICBcImNoZXJpZl9iLzEyOC5qcGdcIixcbiAgICBcInNhbHZhZmMvMTI4LmpwZ1wiLFxuICAgIFwibG91aXNfY3VycmllLzEyOC5qcGdcIixcbiAgICBcImRlZWVucmlnaHQvMTI4LmpwZ1wiLFxuICAgIFwiY3liaW5kLzEyOC5qcGdcIixcbiAgICBcImV5cm9ubi8xMjguanBnXCIsXG4gICAgXCJ2aWNreXNoaXRzLzEyOC5qcGdcIixcbiAgICBcInN3ZWV0ZGVsaXNhLzEyOC5qcGdcIixcbiAgICBcImNib2xsZXIxLzEyOC5qcGdcIixcbiAgICBcImFuZHJlc2RqYXNzby8xMjguanBnXCIsXG4gICAgXCJtZWx2aW5kaWRpdC8xMjguanBnXCIsXG4gICAgXCJhbmR5c29sb21vbi8xMjguanBnXCIsXG4gICAgXCJ0aGFpc3NlbGVuYXRvcl8vMTI4LmpwZ1wiLFxuICAgIFwibHZvdmVub2svMTI4LmpwZ1wiLFxuICAgIFwiZ2l1bGl1c2EvMTI4LmpwZ1wiLFxuICAgIFwiYmVseWFldl9ycy8xMjguanBnXCIsXG4gICAgXCJvdmVyY2xvYWNrZWQvMTI4LmpwZ1wiLFxuICAgIFwia2FtYWxfY2hhbmVtYW4vMTI4LmpwZ1wiLFxuICAgIFwiaW5jdWJvODIvMTI4LmpwZ1wiLFxuICAgIFwiaGVsbG9mZXZlcnJyci8xMjguanBnXCIsXG4gICAgXCJtaGFsaWdvd3NraS8xMjguanBnXCIsXG4gICAgXCJzdW5sYW5kaWN0d2luLzEyOC5qcGdcIixcbiAgICBcImJ1NzkyMS8xMjguanBnXCIsXG4gICAgXCJhbmR5dGxhdy8xMjguanBnXCIsXG4gICAgXCJqZXJlbWVyeS8xMjguanBnXCIsXG4gICAgXCJmaW5jaGprZS8xMjguanBnXCIsXG4gICAgXCJtYW5pZ20vMTI4LmpwZ1wiLFxuICAgIFwidW11cmdkay8xMjguanBnXCIsXG4gICAgXCJzY290dGZlbHRoYW0vMTI4LmpwZ1wiLFxuICAgIFwiZ2Fuc2VyZW5lLzEyOC5qcGdcIixcbiAgICBcIm11dHVfa3Jpc2gvMTI4LmpwZ1wiLFxuICAgIFwiam9keXRhZ2dhcnQvMTI4LmpwZ1wiLFxuICAgIFwibnRmYmxvZy8xMjguanBnXCIsXG4gICAgXCJ0YW52ZWVycmFvLzEyOC5qcGdcIixcbiAgICBcImhmYWx1Y2FzLzEyOC5qcGdcIixcbiAgICBcImFseGxlcm95ZGV2YWwvMTI4LmpwZ1wiLFxuICAgIFwia3VjaW5nYmVsYW5nNC8xMjguanBnXCIsXG4gICAgXCJiYXJnYW9yb2JhbG8vMTI4LmpwZ1wiLFxuICAgIFwiY29sZ3J1di8xMjguanBnXCIsXG4gICAgXCJzdGFsZXdpbmUvMTI4LmpwZ1wiLFxuICAgIFwia3lsZWZyb3N0LzEyOC5qcGdcIixcbiAgICBcImJhdW1hbm56b25lLzEyOC5qcGdcIixcbiAgICBcImFuZ2VsY29sYmVyZy8xMjguanBnXCIsXG4gICAgXCJzYWNoaW5nYXdhcy8xMjguanBnXCIsXG4gICAgXCJqanNoYXcxNC8xMjguanBnXCIsXG4gICAgXCJyYW1hbmF0aGFuX3BkeS8xMjguanBnXCIsXG4gICAgXCJqb2huZGV6ZW1iZXIvMTI4LmpwZ1wiLFxuICAgIFwibmlsc2hvZW5zb24vMTI4LmpwZ1wiLFxuICAgIFwiYnJhbmRvbm1vcnJlYWxlLzEyOC5qcGdcIixcbiAgICBcIm51dHp1bWkvMTI4LmpwZ1wiLFxuICAgIFwiYnJhbmRvbmZsYXRzb2RhLzEyOC5qcGdcIixcbiAgICBcInNlcmdleWFsbW9uZS8xMjguanBnXCIsXG4gICAgXCJrbGVmdWUvMTI4LmpwZ1wiLFxuICAgIFwia2lyYW5nb3BhbC8xMjguanBnXCIsXG4gICAgXCJiYXVtYW5uX2FsZXgvMTI4LmpwZ1wiLFxuICAgIFwibWF0dGhld2theV8vMTI4LmpwZ1wiLFxuICAgIFwiamF5X3dpbGJ1cm4vMTI4LmpwZ1wiLFxuICAgIFwic2hlc2dhcmVkLzEyOC5qcGdcIixcbiAgICBcImFwcmllbmRlYXUvMTI4LmpwZ1wiLFxuICAgIFwiam9obnJpb3JkYW4vMTI4LmpwZ1wiLFxuICAgIFwid2FrZV9ncy8xMjguanBnXCIsXG4gICAgXCJhbGVrc2l0YXBwdXJhLzEyOC5qcGdcIixcbiAgICBcImVtc2d1bGFtLzEyOC5qcGdcIixcbiAgICBcInhpbGFudHJhLzEyOC5qcGdcIixcbiAgICBcImltb21lbnVpLzEyOC5qcGdcIixcbiAgICBcInNpcmNhbGViZ3JvdmUvMTI4LmpwZ1wiLFxuICAgIFwibmV3YnJ1c2hlcy8xMjguanBnXCIsXG4gICAgXCJoc2lueW8yMy8xMjguanBnXCIsXG4gICAgXCJtNHJpby8xMjguanBnXCIsXG4gICAgXCJrYXRpZW1kYWx5LzEyOC5qcGdcIixcbiAgICBcInM0ZjEvMTI4LmpwZ1wiLFxuICAgIFwiZWNvbW1lcmNlaWwvMTI4LmpwZ1wiLFxuICAgIFwibWFybGluamF5YWtvZHkvMTI4LmpwZ1wiLFxuICAgIFwic3dvb3NoeWN1ZWIvMTI4LmpwZ1wiLFxuICAgIFwic2FuZ2R0aC8xMjguanBnXCIsXG4gICAgXCJjb2RlcmRpYXovMTI4LmpwZ1wiLFxuICAgIFwiYmx1ZWZ4Xy8xMjguanBnXCIsXG4gICAgXCJ2aXZla3BydnIvMTI4LmpwZ1wiLFxuICAgIFwic2FzaGFfc2hlc3Rha292LzEyOC5qcGdcIixcbiAgICBcImV1Z2VuZWV3ZWIvMTI4LmpwZ1wiLFxuICAgIFwiZGdjbGVnZy8xMjguanBnXCIsXG4gICAgXCJuMWdodF9jb2Rlci8xMjguanBnXCIsXG4gICAgXCJkaXhjaGVuLzEyOC5qcGdcIixcbiAgICBcImJsYWtlaGF3a3N3b3J0aC8xMjguanBnXCIsXG4gICAgXCJ0cnVlYmxvb2RfMzMvMTI4LmpwZ1wiLFxuICAgIFwiaGFpX25pbmhfbmd1eWVuLzEyOC5qcGdcIixcbiAgICBcIm1hcmNsZ29uemFsZXMvMTI4LmpwZ1wiLFxuICAgIFwieWVzbWVjay8xMjguanBnXCIsXG4gICAgXCJzdGVwaGNvdWUvMTI4LmpwZ1wiLFxuICAgIFwiZG9yb25tYWxraS8xMjguanBnXCIsXG4gICAgXCJydWVobGRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJhbmFzbmFrYXdhLzEyOC5qcGdcIixcbiAgICBcImtpamFubWFoYXJqYW4vMTI4LmpwZ1wiLFxuICAgIFwid2VhcmVzYXZhcy8xMjguanBnXCIsXG4gICAgXCJzdGVmdmRoYW0vMTI4LmpwZ1wiLFxuICAgIFwidHdlZXR1YmhhaS8xMjguanBnXCIsXG4gICAgXCJhbGVjYXJwZW50aWVyLzEyOC5qcGdcIixcbiAgICBcImZpdGVyaWsvMTI4LmpwZ1wiLFxuICAgIFwiYW50b255cnluZHlhLzEyOC5qcGdcIixcbiAgICBcImQwMG1hei8xMjguanBnXCIsXG4gICAgXCJ0aGVvbmx5emVrZS8xMjguanBnXCIsXG4gICAgXCJtaXNzYWFhbXkvMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zbS8xMjguanBnXCIsXG4gICAgXCJtYW5la2VudGhlLzEyOC5qcGdcIixcbiAgICBcInJlZXRhamF5ZW5kcmEvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW15c2hpbWtvLzEyOC5qcGdcIixcbiAgICBcImp1c3RpbnJncmFoYW0vMTI4LmpwZ1wiLFxuICAgIFwic3RlZmFub3pvZmZvbGkvMTI4LmpwZ1wiLFxuICAgIFwib3ZlcnJhLzEyOC5qcGdcIixcbiAgICBcIm1yZWJheTAwNy8xMjguanBnXCIsXG4gICAgXCJzaHZlbG85Ni8xMjguanBnXCIsXG4gICAgXCJweXJvbml0ZS8xMjguanBnXCIsXG4gICAgXCJ0aGVkanBldGVyc2VuLzEyOC5qcGdcIixcbiAgICBcInJ0eXVrbWFldi8xMjguanBnXCIsXG4gICAgXCJfd2lsbGlhbWd1ZXJyYS8xMjguanBnXCIsXG4gICAgXCJhbGJlcnRhdWd1c3Rpbi8xMjguanBnXCIsXG4gICAgXCJ2aWthc2hwYXRoYWsxOC8xMjguanBnXCIsXG4gICAgXCJrZXZpbmpvaG5kYXl5LzEyOC5qcGdcIixcbiAgICBcInZqX2RlbWllbi8xMjguanBnXCIsXG4gICAgXCJjb2xpcnBpeG9pbC8xMjguanBnXCIsXG4gICAgXCJnb2RkYXJkbGV3aXMvMTI4LmpwZ1wiLFxuICAgIFwibGFhc2xpLzEyOC5qcGdcIixcbiAgICBcImpxaXVzcy8xMjguanBnXCIsXG4gICAgXCJoZXljYW10YXlsb3IvMTI4LmpwZ1wiLFxuICAgIFwibmFzdHlhX21hbmUvMTI4LmpwZ1wiLFxuICAgIFwibWFzdGVybWluZGVzaWduLzEyOC5qcGdcIixcbiAgICBcImNjaW5vamFzc28xLzEyOC5qcGdcIixcbiAgICBcIm55YW5jZWNvbS8xMjguanBnXCIsXG4gICAgXCJzYW5keXdvb2RydWZmLzEyOC5qcGdcIixcbiAgICBcImJpZ2hhbmRkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwic2J0cmFuc3BhcmVudC8xMjguanBnXCIsXG4gICAgXCJhdmlkZGF5ZW50b25iYXkvMTI4LmpwZ1wiLFxuICAgIFwicmljaHdpbGQvMTI4LmpwZ1wiLFxuICAgIFwia2F5c2l4X2Rpenp5LzEyOC5qcGdcIixcbiAgICBcInR1cjhsZS8xMjguanBnXCIsXG4gICAgXCJzZXllZGhvc3NlaW4xLzEyOC5qcGdcIixcbiAgICBcInByaXZldHdhZ25lci8xMjguanBnXCIsXG4gICAgXCJlbW1hbmRlbm4vMTI4LmpwZ1wiLFxuICAgIFwiZGV2X2Vzc2VudGlhbHMvMTI4LmpwZ1wiLFxuICAgIFwiam1mc29jaWFsLzEyOC5qcGdcIixcbiAgICBcIl95YXJkZW5vb24vMTI4LmpwZ1wiLFxuICAgIFwibWF0ZWFvZHZpdGV6YS8xMjguanBnXCIsXG4gICAgXCJ3ZWF2ZXJtZWRpYS8xMjguanBnXCIsXG4gICAgXCJtdWZhZGRhbF9tdy8xMjguanBnXCIsXG4gICAgXCJoYWZlZXNraGFuLzEyOC5qcGdcIixcbiAgICBcImFzaGVybmF0YWxpLzEyOC5qcGdcIixcbiAgICBcInN1bGFxby8xMjguanBnXCIsXG4gICAgXCJlZGRpZWNoZW4vMTI4LmpwZ1wiLFxuICAgIFwiam9zZWNhcmxvc3BzaC8xMjguanBnXCIsXG4gICAgXCJ2bV9mLzEyOC5qcGdcIixcbiAgICBcImVucmljb2NpY2NvbmkvMTI4LmpwZ1wiLFxuICAgIFwiZGFubWFydGluNzAvMTI4LmpwZ1wiLFxuICAgIFwiZ21vdXJpZXIvMTI4LmpwZ1wiLFxuICAgIFwiZG9uamFpbi8xMjguanBnXCIsXG4gICAgXCJtcnhsb2thLzEyOC5qcGdcIixcbiAgICBcIl9wZWRyb3BpbmhvLzEyOC5qcGdcIixcbiAgICBcImVpdGFyYWZhLzEyOC5qcGdcIixcbiAgICBcIm9zY2Fyb3d1c3UvMTI4LmpwZ1wiLFxuICAgIFwicmFscGhfbGFtLzEyOC5qcGdcIixcbiAgICBcInBhbmNoYWphbnlhZy8xMjguanBnXCIsXG4gICAgXCJ3b29keWRvdG14LzEyOC5qcGdcIixcbiAgICBcImplcnJ5YmFpMTkwNy8xMjguanBnXCIsXG4gICAgXCJtYXJzaGFsbGNoZW5fLzEyOC5qcGdcIixcbiAgICBcInhhbW9yZXAvMTI4LmpwZ1wiLFxuICAgIFwiYWlvX19fLzEyOC5qcGdcIixcbiAgICBcImNoYWFiYW5lX3dhaWwvMTI4LmpwZ1wiLFxuICAgIFwidHhjeC8xMjguanBnXCIsXG4gICAgXCJha2FzaHNoYXJtYTM5LzEyOC5qcGdcIixcbiAgICBcImZhbGxpbmdfc291bC8xMjguanBnXCIsXG4gICAgXCJzYWlucmFqYS8xMjguanBnXCIsXG4gICAgXCJtdWd1a2FtaWwvMTI4LmpwZ1wiLFxuICAgIFwiam9oYW5uZXNuZXUvMTI4LmpwZ1wiLFxuICAgIFwibWFya3dpZW5hbmRzLzEyOC5qcGdcIixcbiAgICBcImthcnRoaXBhbnJhai8xMjguanBnXCIsXG4gICAgXCJiYWxha2F5dXJpeS8xMjguanBnXCIsXG4gICAgXCJhbGFuX3poYW5nXy8xMjguanBnXCIsXG4gICAgXCJsYXllcnNzc3MvMTI4LmpwZ1wiLFxuICAgIFwia2FzcGVybm9yZGt2aXN0LzEyOC5qcGdcIixcbiAgICBcIm1pcmZhbnF1cmVzaGkvMTI4LmpwZ1wiLFxuICAgIFwiaGFubmFfc21pLzEyOC5qcGdcIixcbiAgICBcIlZNaWxlc2N1LzEyOC5qcGdcIixcbiAgICBcImFlb241Ni8xMjguanBnXCIsXG4gICAgXCJtX2thbGlicnkvMTI4LmpwZ1wiLFxuICAgIFwic3JlZWppdGhleHAvMTI4LmpwZ1wiLFxuICAgIFwiZGljZXNhbGVzLzEyOC5qcGdcIixcbiAgICBcImRob290X2FtaXQvMTI4LmpwZ1wiLFxuICAgIFwic21lbm92LzEyOC5qcGdcIixcbiAgICBcImxvbmVzb21lbGVtb24vMTI4LmpwZ1wiLFxuICAgIFwidmxhZGltaXJkZXZpYy8xMjguanBnXCIsXG4gICAgXCJqb2VsY2lwcmlhbm8vMTI4LmpwZ1wiLFxuICAgIFwiaGFsaWdhbGloYXJ1bi8xMjguanBnXCIsXG4gICAgXCJidWxlc3dhcG5pbC8xMjguanBnXCIsXG4gICAgXCJzZXJlZmthLzEyOC5qcGdcIixcbiAgICBcImlmYXJhZm9ub3cvMTI4LmpwZ1wiLFxuICAgIFwidmlrYXN2aW5mb3RlY2gvMTI4LmpwZ1wiLFxuICAgIFwidXJydXRpbWVvbGkvMTI4LmpwZ1wiLFxuICAgIFwiYXJlYW5kYWNvbS8xMjguanBnXCJcbl07XG5cbmVuLmludGVybmV0LmF2YXRhcl91cmkgPSBbXTtcblxuZm9yICh2YXIgaSA9IDA7IGkgPCBhdmF0YXJVcmkubGVuZ3RoOyBpKyspIHtcbiAgZW4uaW50ZXJuZXQuYXZhdGFyX3VyaS5wdXNoKFwiaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3VpZmFjZXMvZmFjZXMvdHdpdHRlci9cIiArIGF2YXRhclVyaVtpXSk7XG59O1xuXG5lbi5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdLFxuICBcInN1cHBsZW1lbnRhbFwiOiBbXG4gICAgXCJhYmJhc1wiLFxuICAgIFwiYWJkdWNvXCIsXG4gICAgXCJhYmVvXCIsXG4gICAgXCJhYnNjaWRvXCIsXG4gICAgXCJhYnNjb25kaXR1c1wiLFxuICAgIFwiYWJzZW5zXCIsXG4gICAgXCJhYnNvcmJlb1wiLFxuICAgIFwiYWJzcXVlXCIsXG4gICAgXCJhYnN0ZXJnb1wiLFxuICAgIFwiYWJzdW1cIixcbiAgICBcImFidW5kYW5zXCIsXG4gICAgXCJhYnV0b3JcIixcbiAgICBcImFjY2Vkb1wiLFxuICAgIFwiYWNjZW5kb1wiLFxuICAgIFwiYWNjZXB0dXNcIixcbiAgICBcImFjY2lwaW9cIixcbiAgICBcImFjY29tbW9kb1wiLFxuICAgIFwiYWNjdXNhdG9yXCIsXG4gICAgXCJhY2VyXCIsXG4gICAgXCJhY2VyYml0YXNcIixcbiAgICBcImFjZXJ2dXNcIixcbiAgICBcImFjaWR1c1wiLFxuICAgIFwiYWNpZXNcIixcbiAgICBcImFjcXVpcm9cIixcbiAgICBcImFjc2lcIixcbiAgICBcImFkYW1vXCIsXG4gICAgXCJhZGF1Z2VvXCIsXG4gICAgXCJhZGRvXCIsXG4gICAgXCJhZGR1Y29cIixcbiAgICBcImFkZW1wdGlvXCIsXG4gICAgXCJhZGVvXCIsXG4gICAgXCJhZGVwdGlvXCIsXG4gICAgXCJhZGZlY3R1c1wiLFxuICAgIFwiYWRmZXJvXCIsXG4gICAgXCJhZGZpY2lvXCIsXG4gICAgXCJhZGZsaWN0b1wiLFxuICAgIFwiYWRoYWVyb1wiLFxuICAgIFwiYWRodWNcIixcbiAgICBcImFkaWNpb1wiLFxuICAgIFwiYWRpbXBsZW9cIixcbiAgICBcImFkaW52ZW50aXRpYXNcIixcbiAgICBcImFkaXBpc2NvclwiLFxuICAgIFwiYWRpdXZvXCIsXG4gICAgXCJhZG1pbmlzdHJhdGlvXCIsXG4gICAgXCJhZG1pcmF0aW9cIixcbiAgICBcImFkbWl0dG9cIixcbiAgICBcImFkbW9uZW9cIixcbiAgICBcImFkbW92ZW9cIixcbiAgICBcImFkbnVvXCIsXG4gICAgXCJhZG9wdG9cIixcbiAgICBcImFkc2lkdWVcIixcbiAgICBcImFkc3RyaW5nb1wiLFxuICAgIFwiYWRzdWVzY29cIixcbiAgICBcImFkc3VtXCIsXG4gICAgXCJhZHVsYXRpb1wiLFxuICAgIFwiYWR1bGVzY2Vuc1wiLFxuICAgIFwiYWR1bHR1c1wiLFxuICAgIFwiYWR1cm9cIixcbiAgICBcImFkdmVuaW9cIixcbiAgICBcImFkdmVyc3VzXCIsXG4gICAgXCJhZHZvY29cIixcbiAgICBcImFlZGlmaWNpdW1cIixcbiAgICBcImFlZ2VyXCIsXG4gICAgXCJhZWdyZVwiLFxuICAgIFwiYWVncm90YXRpb1wiLFxuICAgIFwiYWVncnVzXCIsXG4gICAgXCJhZW5ldXNcIixcbiAgICBcImFlcXVpdGFzXCIsXG4gICAgXCJhZXF1dXNcIixcbiAgICBcImFlclwiLFxuICAgIFwiYWVzdGFzXCIsXG4gICAgXCJhZXN0aXZ1c1wiLFxuICAgIFwiYWVzdHVzXCIsXG4gICAgXCJhZXRhc1wiLFxuICAgIFwiYWV0ZXJudXNcIixcbiAgICBcImFnZXJcIixcbiAgICBcImFnZ2Vyb1wiLFxuICAgIFwiYWdncmVkaW9yXCIsXG4gICAgXCJhZ25pdGlvXCIsXG4gICAgXCJhZ25vc2NvXCIsXG4gICAgXCJhZ29cIixcbiAgICBcImFpdFwiLFxuICAgIFwiYWl1bnRcIixcbiAgICBcImFsaWVudXNcIixcbiAgICBcImFsaWlcIixcbiAgICBcImFsaW9xdWlcIixcbiAgICBcImFsaXF1YVwiLFxuICAgIFwiYWxpdXNcIixcbiAgICBcImFsbGF0dXNcIixcbiAgICBcImFsb1wiLFxuICAgIFwiYWx0ZXJcIixcbiAgICBcImFsdHVzXCIsXG4gICAgXCJhbHZldXNcIixcbiAgICBcImFtYXJpdHVkb1wiLFxuICAgIFwiYW1iaXR1c1wiLFxuICAgIFwiYW1idWxvXCIsXG4gICAgXCJhbWljaXRpYVwiLFxuICAgIFwiYW1pY3VsdW1cIixcbiAgICBcImFtaXNzaW9cIixcbiAgICBcImFtaXRhXCIsXG4gICAgXCJhbWl0dG9cIixcbiAgICBcImFtb1wiLFxuICAgIFwiYW1vclwiLFxuICAgIFwiYW1vdmVvXCIsXG4gICAgXCJhbXBsZXh1c1wiLFxuICAgIFwiYW1wbGl0dWRvXCIsXG4gICAgXCJhbXBsdXNcIixcbiAgICBcImFuY2lsbGFcIixcbiAgICBcImFuZ2VsdXNcIixcbiAgICBcImFuZ3VsdXNcIixcbiAgICBcImFuZ3VzdHVzXCIsXG4gICAgXCJhbmltYWR2ZXJ0b1wiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImFuaW11c1wiLFxuICAgIFwiYW5udXNcIixcbiAgICBcImFuc2VyXCIsXG4gICAgXCJhbnRlXCIsXG4gICAgXCJhbnRlYVwiLFxuICAgIFwiYW50ZXBvbm9cIixcbiAgICBcImFudGlxdXVzXCIsXG4gICAgXCJhcGVyaW9cIixcbiAgICBcImFwZXJ0ZVwiLFxuICAgIFwiYXBvc3RvbHVzXCIsXG4gICAgXCJhcHBhcmF0dXNcIixcbiAgICBcImFwcGVsbG9cIixcbiAgICBcImFwcG9ub1wiLFxuICAgIFwiYXBwb3NpdHVzXCIsXG4gICAgXCJhcHByb2JvXCIsXG4gICAgXCJhcHRvXCIsXG4gICAgXCJhcHR1c1wiLFxuICAgIFwiYXB1ZFwiLFxuICAgIFwiYXF1YVwiLFxuICAgIFwiYXJhXCIsXG4gICAgXCJhcmFuZWFcIixcbiAgICBcImFyYml0cm9cIixcbiAgICBcImFyYm9yXCIsXG4gICAgXCJhcmJ1c3R1bVwiLFxuICAgIFwiYXJjYVwiLFxuICAgIFwiYXJjZW9cIixcbiAgICBcImFyY2Vzc29cIixcbiAgICBcImFyY3VzXCIsXG4gICAgXCJhcmdlbnR1bVwiLFxuICAgIFwiYXJndW1lbnR1bVwiLFxuICAgIFwiYXJndW9cIixcbiAgICBcImFybWFcIixcbiAgICBcImFybWFyaXVtXCIsXG4gICAgXCJhcm1vXCIsXG4gICAgXCJhcm9cIixcbiAgICBcImFyc1wiLFxuICAgIFwiYXJ0aWN1bHVzXCIsXG4gICAgXCJhcnRpZmljaW9zZVwiLFxuICAgIFwiYXJ0b1wiLFxuICAgIFwiYXJ4XCIsXG4gICAgXCJhc2Npc2NvXCIsXG4gICAgXCJhc2NpdFwiLFxuICAgIFwiYXNwZXJcIixcbiAgICBcImFzcGljaW9cIixcbiAgICBcImFzcG9ydG9cIixcbiAgICBcImFzc2VudGF0b3JcIixcbiAgICBcImFzdHJ1bVwiLFxuICAgIFwiYXRhdnVzXCIsXG4gICAgXCJhdGVyXCIsXG4gICAgXCJhdHF1aVwiLFxuICAgIFwiYXRyb2NpdGFzXCIsXG4gICAgXCJhdHJveFwiLFxuICAgIFwiYXR0ZXJvXCIsXG4gICAgXCJhdHRvbGxvXCIsXG4gICAgXCJhdHRvbmJpdHVzXCIsXG4gICAgXCJhdWN0b3JcIixcbiAgICBcImF1Y3R1c1wiLFxuICAgIFwiYXVkYWNpYVwiLFxuICAgIFwiYXVkYXhcIixcbiAgICBcImF1ZGVudGlhXCIsXG4gICAgXCJhdWRlb1wiLFxuICAgIFwiYXVkaW9cIixcbiAgICBcImF1ZGl0b3JcIixcbiAgICBcImF1ZmVyb1wiLFxuICAgIFwiYXVyZXVzXCIsXG4gICAgXCJhdXJpc1wiLFxuICAgIFwiYXVydW1cIixcbiAgICBcImF1dFwiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcImF1dHVzXCIsXG4gICAgXCJhdXhpbGl1bVwiLFxuICAgIFwiYXZhcml0aWFcIixcbiAgICBcImF2YXJ1c1wiLFxuICAgIFwiYXZlaG9cIixcbiAgICBcImF2ZXJ0b1wiLFxuICAgIFwiYXZvY29cIixcbiAgICBcImJhaXVsdXNcIixcbiAgICBcImJhbGJ1c1wiLFxuICAgIFwiYmFyYmFcIixcbiAgICBcImJhcmR1c1wiLFxuICAgIFwiYmFzaXVtXCIsXG4gICAgXCJiZWF0dXNcIixcbiAgICBcImJlbGxpY3VzXCIsXG4gICAgXCJiZWxsdW1cIixcbiAgICBcImJlbmVcIixcbiAgICBcImJlbmVmaWNpdW1cIixcbiAgICBcImJlbmV2b2xlbnRpYVwiLFxuICAgIFwiYmVuaWduZVwiLFxuICAgIFwiYmVzdGlhXCIsXG4gICAgXCJiaWJvXCIsXG4gICAgXCJiaXNcIixcbiAgICBcImJsYW5kaW9yXCIsXG4gICAgXCJib251c1wiLFxuICAgIFwiYm9zXCIsXG4gICAgXCJicmV2aXNcIixcbiAgICBcImNhZG9cIixcbiAgICBcImNhZWN1c1wiLFxuICAgIFwiY2FlbGVzdGlzXCIsXG4gICAgXCJjYWVsdW1cIixcbiAgICBcImNhbGFtaXRhc1wiLFxuICAgIFwiY2FsY2FyXCIsXG4gICAgXCJjYWxjb1wiLFxuICAgIFwiY2FsY3VsdXNcIixcbiAgICBcImNhbGxpZGVcIixcbiAgICBcImNhbXBhbmFcIixcbiAgICBcImNhbmRpZHVzXCIsXG4gICAgXCJjYW5pc1wiLFxuICAgIFwiY2Fub25pY3VzXCIsXG4gICAgXCJjYW50b1wiLFxuICAgIFwiY2FwaWxsdXNcIixcbiAgICBcImNhcGlvXCIsXG4gICAgXCJjYXBpdHVsdXNcIixcbiAgICBcImNhcHRvXCIsXG4gICAgXCJjYXB1dFwiLFxuICAgIFwiY2FyYm9cIixcbiAgICBcImNhcmNlclwiLFxuICAgIFwiY2FyZW9cIixcbiAgICBcImNhcmllc1wiLFxuICAgIFwiY2FyaW9zdXNcIixcbiAgICBcImNhcml0YXNcIixcbiAgICBcImNhcm1lblwiLFxuICAgIFwiY2FycG9cIixcbiAgICBcImNhcnVzXCIsXG4gICAgXCJjYXNzb1wiLFxuICAgIFwiY2FzdGVcIixcbiAgICBcImNhc3VzXCIsXG4gICAgXCJjYXRlbmFcIixcbiAgICBcImNhdGVydmFcIixcbiAgICBcImNhdHR1c1wiLFxuICAgIFwiY2F1ZGFcIixcbiAgICBcImNhdXNhXCIsXG4gICAgXCJjYXV0ZVwiLFxuICAgIFwiY2F2ZW9cIixcbiAgICBcImNhdnVzXCIsXG4gICAgXCJjZWRvXCIsXG4gICAgXCJjZWxlYnJlclwiLFxuICAgIFwiY2VsZXJcIixcbiAgICBcImNlbG9cIixcbiAgICBcImNlbmFcIixcbiAgICBcImNlbmFjdWx1bVwiLFxuICAgIFwiY2Vub1wiLFxuICAgIFwiY2Vuc3VyYVwiLFxuICAgIFwiY2VudHVtXCIsXG4gICAgXCJjZXJub1wiLFxuICAgIFwiY2VybnV1c1wiLFxuICAgIFwiY2VydGVcIixcbiAgICBcImNlcnRvXCIsXG4gICAgXCJjZXJ0dXNcIixcbiAgICBcImNlcnZ1c1wiLFxuICAgIFwiY2V0ZXJhXCIsXG4gICAgXCJjaGFyaXNtYVwiLFxuICAgIFwiY2hpcm9ncmFwaHVtXCIsXG4gICAgXCJjaWJvXCIsXG4gICAgXCJjaWJ1c1wiLFxuICAgIFwiY2ljdXRhXCIsXG4gICAgXCJjaWxpY2l1bVwiLFxuICAgIFwiY2ltZW50YXJpdXNcIixcbiAgICBcImNpbWluYXRpb1wiLFxuICAgIFwiY2luaXNcIixcbiAgICBcImNpcmN1bXZlbmlvXCIsXG4gICAgXCJjaXRvXCIsXG4gICAgXCJjaXZpc1wiLFxuICAgIFwiY2l2aXRhc1wiLFxuICAgIFwiY2xhbVwiLFxuICAgIFwiY2xhbW9cIixcbiAgICBcImNsYXJvXCIsXG4gICAgXCJjbGFydXNcIixcbiAgICBcImNsYXVkZW9cIixcbiAgICBcImNsYXVzdHJ1bVwiLFxuICAgIFwiY2xlbWVudGlhXCIsXG4gICAgXCJjbGliYW51c1wiLFxuICAgIFwiY29hZHVuYXRpb1wiLFxuICAgIFwiY29hZWdyZXNjb1wiLFxuICAgIFwiY29lcGlcIixcbiAgICBcImNvZXJjZW9cIixcbiAgICBcImNvZ2l0b1wiLFxuICAgIFwiY29nbmF0dXNcIixcbiAgICBcImNvZ25vbWVuXCIsXG4gICAgXCJjb2dvXCIsXG4gICAgXCJjb2hhZXJvXCIsXG4gICAgXCJjb2hpYmVvXCIsXG4gICAgXCJjb2hvcnNcIixcbiAgICBcImNvbGxpZ29cIixcbiAgICBcImNvbGxvY29cIixcbiAgICBcImNvbGx1bVwiLFxuICAgIFwiY29sb1wiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbWFcIixcbiAgICBcImNvbWJpYm9cIixcbiAgICBcImNvbWJ1cm9cIixcbiAgICBcImNvbWVkb1wiLFxuICAgIFwiY29tZXNcIixcbiAgICBcImNvbWV0ZXNcIixcbiAgICBcImNvbWlzXCIsXG4gICAgXCJjb21pdGF0dXNcIixcbiAgICBcImNvbW1lbW9yb1wiLFxuICAgIFwiY29tbWlub3JcIixcbiAgICBcImNvbW1vZG9cIixcbiAgICBcImNvbW11bmlzXCIsXG4gICAgXCJjb21wYXJvXCIsXG4gICAgXCJjb21wZWxsb1wiLFxuICAgIFwiY29tcGxlY3R1c1wiLFxuICAgIFwiY29tcG9ub1wiLFxuICAgIFwiY29tcHJlaGVuZG9cIixcbiAgICBcImNvbXB0dXNcIixcbiAgICBcImNvbmF0dXNcIixcbiAgICBcImNvbmNlZG9cIixcbiAgICBcImNvbmNpZG9cIixcbiAgICBcImNvbmN1bGNvXCIsXG4gICAgXCJjb25kaWNvXCIsXG4gICAgXCJjb25kdWNvXCIsXG4gICAgXCJjb25mZXJvXCIsXG4gICAgXCJjb25maWRvXCIsXG4gICAgXCJjb25mb3J0b1wiLFxuICAgIFwiY29uZnVnb1wiLFxuICAgIFwiY29uZ3JlZ2F0aW9cIixcbiAgICBcImNvbmljaW9cIixcbiAgICBcImNvbmllY3RvXCIsXG4gICAgXCJjb25pdG9yXCIsXG4gICAgXCJjb25pdXJhdGlvXCIsXG4gICAgXCJjb25vclwiLFxuICAgIFwiY29ucXVlcm9yXCIsXG4gICAgXCJjb25zY2VuZG9cIixcbiAgICBcImNvbnNlcnZvXCIsXG4gICAgXCJjb25zaWRlcm9cIixcbiAgICBcImNvbnNwZXJnb1wiLFxuICAgIFwiY29uc3RhbnNcIixcbiAgICBcImNvbnN1YXNvclwiLFxuICAgIFwiY29udGFiZXNjb1wiLFxuICAgIFwiY29udGVnb1wiLFxuICAgIFwiY29udGlnb1wiLFxuICAgIFwiY29udHJhXCIsXG4gICAgXCJjb250dXJib1wiLFxuICAgIFwiY29udmVudHVzXCIsXG4gICAgXCJjb252b2NvXCIsXG4gICAgXCJjb3BpYVwiLFxuICAgIFwiY29waW9zZVwiLFxuICAgIFwiY29ybnVcIixcbiAgICBcImNvcm9uYVwiLFxuICAgIFwiY29ycHVzXCIsXG4gICAgXCJjb3JyZXB0aXVzXCIsXG4gICAgXCJjb3JyaWdvXCIsXG4gICAgXCJjb3Jyb2Jvcm9cIixcbiAgICBcImNvcnJ1bXBvXCIsXG4gICAgXCJjb3J1c2N1c1wiLFxuICAgIFwiY290aWRpZVwiLFxuICAgIFwiY3JhcHVsYVwiLFxuICAgIFwiY3Jhc1wiLFxuICAgIFwiY3Jhc3RpbnVzXCIsXG4gICAgXCJjcmVhdG9yXCIsXG4gICAgXCJjcmViZXJcIixcbiAgICBcImNyZWJyb1wiLFxuICAgIFwiY3JlZG9cIixcbiAgICBcImNyZW9cIixcbiAgICBcImNyZXB0aW9cIixcbiAgICBcImNyZXB1c2N1bHVtXCIsXG4gICAgXCJjcmVzY29cIixcbiAgICBcImNyZXRhXCIsXG4gICAgXCJjcmlicm9cIixcbiAgICBcImNyaW5pc1wiLFxuICAgIFwiY3J1Y2lhbWVudHVtXCIsXG4gICAgXCJjcnVkZWxpc1wiLFxuICAgIFwiY3J1ZW50dXNcIixcbiAgICBcImNydXJcIixcbiAgICBcImNydXN0dWx1bVwiLFxuICAgIFwiY3J1eFwiLFxuICAgIFwiY3ViaWN1bGFyaXNcIixcbiAgICBcImN1Yml0dW1cIixcbiAgICBcImN1Ym9cIixcbiAgICBcImN1aVwiLFxuICAgIFwiY3VpdXNcIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJjdWxwb1wiLFxuICAgIFwiY3VsdGVsbHVzXCIsXG4gICAgXCJjdWx0dXJhXCIsXG4gICAgXCJjdW1cIixcbiAgICBcImN1bmFidWxhXCIsXG4gICAgXCJjdW5hZVwiLFxuICAgIFwiY3VuY3RhdGlvXCIsXG4gICAgXCJjdXBpZGl0YXNcIixcbiAgICBcImN1cGlvXCIsXG4gICAgXCJjdXBwZWRpYVwiLFxuICAgIFwiY3VwcmVzc3VzXCIsXG4gICAgXCJjdXJcIixcbiAgICBcImN1cmFcIixcbiAgICBcImN1cmF0aW9cIixcbiAgICBcImN1cmlhXCIsXG4gICAgXCJjdXJpb3NpdGFzXCIsXG4gICAgXCJjdXJpc1wiLFxuICAgIFwiY3Vyb1wiLFxuICAgIFwiY3VycmljdWx1bVwiLFxuICAgIFwiY3VycnVzXCIsXG4gICAgXCJjdXJzaW1cIixcbiAgICBcImN1cnNvXCIsXG4gICAgXCJjdXJzdXNcIixcbiAgICBcImN1cnRvXCIsXG4gICAgXCJjdXJ0dXNcIixcbiAgICBcImN1cnZvXCIsXG4gICAgXCJjdXJ2dXNcIixcbiAgICBcImN1c3RvZGlhXCIsXG4gICAgXCJkYW1uYXRpb1wiLFxuICAgIFwiZGFtbm9cIixcbiAgICBcImRhcGlmZXJcIixcbiAgICBcImRlYmVvXCIsXG4gICAgXCJkZWJpbGl0b1wiLFxuICAgIFwiZGVjZW5zXCIsXG4gICAgXCJkZWNlcm5vXCIsXG4gICAgXCJkZWNldFwiLFxuICAgIFwiZGVjaW11c1wiLFxuICAgIFwiZGVjaXBpb1wiLFxuICAgIFwiZGVjb3JcIixcbiAgICBcImRlY3JldHVtXCIsXG4gICAgXCJkZWN1bWJvXCIsXG4gICAgXCJkZWRlY29yXCIsXG4gICAgXCJkZWRpY29cIixcbiAgICBcImRlZHVjb1wiLFxuICAgIFwiZGVmYWVjb1wiLFxuICAgIFwiZGVmZW5kb1wiLFxuICAgIFwiZGVmZXJvXCIsXG4gICAgXCJkZWZlc3N1c1wiLFxuICAgIFwiZGVmZXRpc2NvclwiLFxuICAgIFwiZGVmaWNpb1wiLFxuICAgIFwiZGVmaWdvXCIsXG4gICAgXCJkZWZsZW9cIixcbiAgICBcImRlZmx1b1wiLFxuICAgIFwiZGVmdW5nb1wiLFxuICAgIFwiZGVnZW5lcm9cIixcbiAgICBcImRlZ2Vyb1wiLFxuICAgIFwiZGVndXN0b1wiLFxuICAgIFwiZGVpbmRlXCIsXG4gICAgXCJkZWxlY3RhdGlvXCIsXG4gICAgXCJkZWxlZ29cIixcbiAgICBcImRlbGVvXCIsXG4gICAgXCJkZWxpYmVyb1wiLFxuICAgIFwiZGVsaWNhdGVcIixcbiAgICBcImRlbGlucXVvXCIsXG4gICAgXCJkZWx1ZG9cIixcbiAgICBcImRlbWVuc1wiLFxuICAgIFwiZGVtZXJnb1wiLFxuICAgIFwiZGVtaXR0b1wiLFxuICAgIFwiZGVtb1wiLFxuICAgIFwiZGVtb25zdHJvXCIsXG4gICAgXCJkZW1vcm9yXCIsXG4gICAgXCJkZW11bGNlb1wiLFxuICAgIFwiZGVtdW1cIixcbiAgICBcImRlbmVnb1wiLFxuICAgIFwiZGVuaXF1ZVwiLFxuICAgIFwiZGVuc1wiLFxuICAgIFwiZGVudW5jaW9cIixcbiAgICBcImRlbnVvXCIsXG4gICAgXCJkZW9yc3VtXCIsXG4gICAgXCJkZXBlcmVvXCIsXG4gICAgXCJkZXBvbm9cIixcbiAgICBcImRlcG9wdWxvXCIsXG4gICAgXCJkZXBvcnRvXCIsXG4gICAgXCJkZXByYWVkb3JcIixcbiAgICBcImRlcHJlY2F0b3JcIixcbiAgICBcImRlcHJpbW9cIixcbiAgICBcImRlcHJvbW9cIixcbiAgICBcImRlcHVsc29cIixcbiAgICBcImRlcHV0b1wiLFxuICAgIFwiZGVyZWxpbnF1b1wiLFxuICAgIFwiZGVyaWRlb1wiLFxuICAgIFwiZGVyaXBpb1wiLFxuICAgIFwiZGVzaWRlcm9cIixcbiAgICBcImRlc2lub1wiLFxuICAgIFwiZGVzaXBpb1wiLFxuICAgIFwiZGVzb2xvXCIsXG4gICAgXCJkZXNwYXJhdHVzXCIsXG4gICAgXCJkZXNwZWN0b1wiLFxuICAgIFwiZGVzcGlybWF0aW9cIixcbiAgICBcImluZml0XCIsXG4gICAgXCJpbmZsYW1tYXRpb1wiLFxuICAgIFwicGFlbnNcIixcbiAgICBcInBhdGlvclwiLFxuICAgIFwicGF0cmlhXCIsXG4gICAgXCJwYXRyb2Npbm9yXCIsXG4gICAgXCJwYXRydXVzXCIsXG4gICAgXCJwYXVjaVwiLFxuICAgIFwicGF1bGF0aW1cIixcbiAgICBcInBhdXBlclwiLFxuICAgIFwicGF4XCIsXG4gICAgXCJwZWNjYXR1c1wiLFxuICAgIFwicGVjY29cIixcbiAgICBcInBlY3RvXCIsXG4gICAgXCJwZWN0dXNcIixcbiAgICBcInBlY3VuaWFcIixcbiAgICBcInBlY3VzXCIsXG4gICAgXCJwZWlvclwiLFxuICAgIFwicGVsXCIsXG4gICAgXCJvY2VyXCIsXG4gICAgXCJzb2NpdXNcIixcbiAgICBcInNvZGFsaXRhc1wiLFxuICAgIFwic29sXCIsXG4gICAgXCJzb2xlb1wiLFxuICAgIFwic29saW9cIixcbiAgICBcInNvbGl0dWRvXCIsXG4gICAgXCJzb2xpdW1cIixcbiAgICBcInNvbGxlcnNcIixcbiAgICBcInNvbGxpY2l0b1wiLFxuICAgIFwic29sdW1cIixcbiAgICBcInNvbHVzXCIsXG4gICAgXCJzb2x1dGlvXCIsXG4gICAgXCJzb2x2b1wiLFxuICAgIFwic29tbmljdWxvc3VzXCIsXG4gICAgXCJzb21udXNcIixcbiAgICBcInNvbml0dXNcIixcbiAgICBcInNvbm9cIixcbiAgICBcInNvcGhpc21hdGFcIixcbiAgICBcInNvcG9yXCIsXG4gICAgXCJzb3JkZW9cIixcbiAgICBcInNvcnRpdHVzXCIsXG4gICAgXCJzcGFyZ29cIixcbiAgICBcInNwZWNpb3N1c1wiLFxuICAgIFwic3BlY3RhY3VsdW1cIixcbiAgICBcInNwZWN1bHVtXCIsXG4gICAgXCJzcGVybm9cIixcbiAgICBcInNwZXJvXCIsXG4gICAgXCJzcGVzXCIsXG4gICAgXCJzcGljdWx1bVwiLFxuICAgIFwic3Bpcml0dXNcIixcbiAgICBcInNwb2xpYXRpb1wiLFxuICAgIFwic3BvbnRlXCIsXG4gICAgXCJzdGFiaWxpc1wiLFxuICAgIFwic3RhdGltXCIsXG4gICAgXCJzdGF0dWFcIixcbiAgICBcInN0ZWxsYVwiLFxuICAgIFwic3RpbGxpY2lkaXVtXCIsXG4gICAgXCJzdGlwZXNcIixcbiAgICBcInN0aXBzXCIsXG4gICAgXCJzdG9cIixcbiAgICBcInN0cmVudXVzXCIsXG4gICAgXCJzdHJ1ZXNcIixcbiAgICBcInN0dWRpb1wiLFxuICAgIFwic3R1bHR1c1wiLFxuICAgIFwic3VhZGVvXCIsXG4gICAgXCJzdWFzb3JpYVwiLFxuICAgIFwic3ViXCIsXG4gICAgXCJzdWJpdG9cIixcbiAgICBcInN1Yml1bmdvXCIsXG4gICAgXCJzdWJsaW1lXCIsXG4gICAgXCJzdWJuZWN0b1wiLFxuICAgIFwic3Vic2Vjb1wiLFxuICAgIFwic3Vic3RhbnRpYVwiLFxuICAgIFwic3VidmVuaW9cIixcbiAgICBcInN1Y2NlZG9cIixcbiAgICBcInN1Y2N1cnJvXCIsXG4gICAgXCJzdWZmaWNpb1wiLFxuICAgIFwic3VmZm9jb1wiLFxuICAgIFwic3VmZnJhZ2l1bVwiLFxuICAgIFwic3VnZ2Vyb1wiLFxuICAgIFwic3VpXCIsXG4gICAgXCJzdWx1bVwiLFxuICAgIFwic3VtXCIsXG4gICAgXCJzdW1tYVwiLFxuICAgIFwic3VtbWlzc2VcIixcbiAgICBcInN1bW1vcGVyZVwiLFxuICAgIFwic3Vtb1wiLFxuICAgIFwic3VtcHR1c1wiLFxuICAgIFwic3VwZWxsZXhcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzdXBwZWxsZXhcIixcbiAgICBcInN1cHBsYW50b1wiLFxuICAgIFwic3VwcG9ub1wiLFxuICAgIFwic3VwcmFcIixcbiAgICBcInN1cmN1bHVzXCIsXG4gICAgXCJzdXJnb1wiLFxuICAgIFwic3Vyc3VtXCIsXG4gICAgXCJzdXNjaXBpb1wiLFxuICAgIFwic3VzcGVuZG9cIixcbiAgICBcInN1c3RpbmVvXCIsXG4gICAgXCJzdXVzXCIsXG4gICAgXCJzeW5hZ29nYVwiLFxuICAgIFwidGFiZWxsYVwiLFxuICAgIFwidGFiZXJudXNcIixcbiAgICBcInRhYmVzY29cIixcbiAgICBcInRhYmdvXCIsXG4gICAgXCJ0YWJ1bGFcIixcbiAgICBcInRhY2VvXCIsXG4gICAgXCJ0YWN0dXNcIixcbiAgICBcInRhZWRpdW1cIixcbiAgICBcInRhbGlvXCIsXG4gICAgXCJ0YWxpc1wiLFxuICAgIFwidGFsdXNcIixcbiAgICBcInRhbVwiLFxuICAgIFwidGFtZGl1XCIsXG4gICAgXCJ0YW1lblwiLFxuICAgIFwidGFtZXRzaVwiLFxuICAgIFwidGFtaXNpdW1cIixcbiAgICBcInRhbXF1YW1cIixcbiAgICBcInRhbmRlbVwiLFxuICAgIFwidGFudGlsbHVzXCIsXG4gICAgXCJ0YW50dW1cIixcbiAgICBcInRhcmR1c1wiLFxuICAgIFwidGVnb1wiLFxuICAgIFwidGVtZXJpdGFzXCIsXG4gICAgXCJ0ZW1wZXJhbnRpYVwiLFxuICAgIFwidGVtcGx1bVwiLFxuICAgIFwidGVtcHRhdGlvXCIsXG4gICAgXCJ0ZW1wdXNcIixcbiAgICBcInRlbmF4XCIsXG4gICAgXCJ0ZW5kb1wiLFxuICAgIFwidGVuZW9cIixcbiAgICBcInRlbmVyXCIsXG4gICAgXCJ0ZW51aXNcIixcbiAgICBcInRlbnVzXCIsXG4gICAgXCJ0ZXBlc2NvXCIsXG4gICAgXCJ0ZXBpZHVzXCIsXG4gICAgXCJ0ZXJcIixcbiAgICBcInRlcmVicm9cIixcbiAgICBcInRlcmVzXCIsXG4gICAgXCJ0ZXJnYVwiLFxuICAgIFwidGVyZ2VvXCIsXG4gICAgXCJ0ZXJnaXZlcnNhdGlvXCIsXG4gICAgXCJ0ZXJnb1wiLFxuICAgIFwidGVyZ3VtXCIsXG4gICAgXCJ0ZXJtZXNcIixcbiAgICBcInRlcm1pbmF0aW9cIixcbiAgICBcInRlcm9cIixcbiAgICBcInRlcnJhXCIsXG4gICAgXCJ0ZXJyZW9cIixcbiAgICBcInRlcnJpdG9cIixcbiAgICBcInRlcnJvclwiLFxuICAgIFwidGVyc3VzXCIsXG4gICAgXCJ0ZXJ0aXVzXCIsXG4gICAgXCJ0ZXN0aW1vbml1bVwiLFxuICAgIFwidGV4b1wiLFxuICAgIFwidGV4dGlsaXNcIixcbiAgICBcInRleHRvclwiLFxuICAgIFwidGV4dHVzXCIsXG4gICAgXCJ0aGFsYXNzaW51c1wiLFxuICAgIFwidGhlYXRydW1cIixcbiAgICBcInRoZWNhXCIsXG4gICAgXCJ0aGVtYVwiLFxuICAgIFwidGhlb2xvZ3VzXCIsXG4gICAgXCJ0aGVybWFlXCIsXG4gICAgXCJ0aGVzYXVydXNcIixcbiAgICBcInRoZXNpc1wiLFxuICAgIFwidGhvcmF4XCIsXG4gICAgXCJ0aHltYnJhXCIsXG4gICAgXCJ0aHltdW1cIixcbiAgICBcInRpYmlcIixcbiAgICBcInRpbWlkdXNcIixcbiAgICBcInRpbW9yXCIsXG4gICAgXCJ0aXR1bHVzXCIsXG4gICAgXCJ0b2xlcm9cIixcbiAgICBcInRvbGxvXCIsXG4gICAgXCJ0b25kZW9cIixcbiAgICBcInRvbnNvclwiLFxuICAgIFwidG9ycXVlb1wiLFxuICAgIFwidG9ycmVuc1wiLFxuICAgIFwidG90XCIsXG4gICAgXCJ0b3RpZGVtXCIsXG4gICAgXCJ0b3RpZXNcIixcbiAgICBcInRvdHVzXCIsXG4gICAgXCJ0cmFjdG9cIixcbiAgICBcInRyYWRvXCIsXG4gICAgXCJ0cmFob1wiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyZWRlY2ltXCIsXG4gICAgXCJ0cmVtb1wiLFxuICAgIFwidHJlcGlkZVwiLFxuICAgIFwidHJlc1wiLFxuICAgIFwidHJpYnVvXCIsXG4gICAgXCJ0cmljZXNpbXVzXCIsXG4gICAgXCJ0cmlkdWFuYVwiLFxuICAgIFwidHJpZ2ludGFcIixcbiAgICBcInRyaXB1ZGlvXCIsXG4gICAgXCJ0cmlzdGlzXCIsXG4gICAgXCJ0cml1bXBodXNcIixcbiAgICBcInRydWNpZG9cIixcbiAgICBcInRydWN1bGVudGVyXCIsXG4gICAgXCJ0dWJpbmV1c1wiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0dW1cIixcbiAgICBcInR1bXVsdHVzXCIsXG4gICAgXCJ0dW5jXCIsXG4gICAgXCJ0dXJiYVwiLFxuICAgIFwidHVyYm9cIixcbiAgICBcInR1cnBlXCIsXG4gICAgXCJ0dXJwaXNcIixcbiAgICBcInR1dGFtZW5cIixcbiAgICBcInR1dGlzXCIsXG4gICAgXCJ0eXJhbm51c1wiLFxuICAgIFwidWJlcnJpbWVcIixcbiAgICBcInViaVwiLFxuICAgIFwidWxjaXNjb3JcIixcbiAgICBcInVsbHVzXCIsXG4gICAgXCJ1bHRlcml1c1wiLFxuICAgIFwidWx0aW9cIixcbiAgICBcInVsdHJhXCIsXG4gICAgXCJ1bWJyYVwiLFxuICAgIFwidW1lcnVzXCIsXG4gICAgXCJ1bXF1YW1cIixcbiAgICBcInVuYVwiLFxuICAgIFwidW5kZVwiLFxuICAgIFwidW5kaXF1ZVwiLFxuICAgIFwidW5pdmVyc2VcIixcbiAgICBcInVudXNcIixcbiAgICBcInVyYmFudXNcIixcbiAgICBcInVyYnNcIixcbiAgICBcInVyZWRvXCIsXG4gICAgXCJ1c2l0YXNcIixcbiAgICBcInVzcXVlXCIsXG4gICAgXCJ1c3RpbG9cIixcbiAgICBcInVzdHVsb1wiLFxuICAgIFwidXN1c1wiLFxuICAgIFwidXRlclwiLFxuICAgIFwidXRlcnF1ZVwiLFxuICAgIFwidXRpbGlzXCIsXG4gICAgXCJ1dGlxdWVcIixcbiAgICBcInV0b3JcIixcbiAgICBcInV0cG90ZVwiLFxuICAgIFwidXRyaW1xdWVcIixcbiAgICBcInV0cm9xdWVcIixcbiAgICBcInV0cnVtXCIsXG4gICAgXCJ1eG9yXCIsXG4gICAgXCJ2YWNvXCIsXG4gICAgXCJ2YWN1dXNcIixcbiAgICBcInZhZG9cIixcbiAgICBcInZhZVwiLFxuICAgIFwidmFsZGVcIixcbiAgICBcInZhbGVuc1wiLFxuICAgIFwidmFsZW9cIixcbiAgICBcInZhbGV0dWRvXCIsXG4gICAgXCJ2YWxpZHVzXCIsXG4gICAgXCJ2YWxsdW1cIixcbiAgICBcInZhcHVsdXNcIixcbiAgICBcInZhcmlldGFzXCIsXG4gICAgXCJ2YXJpdXNcIixcbiAgICBcInZlaGVtZW5zXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcInZlbG9jaXRlclwiLFxuICAgIFwidmVsdW1cIixcbiAgICBcInZlbHV0XCIsXG4gICAgXCJ2ZW5pYVwiLFxuICAgIFwidmVuaW9cIixcbiAgICBcInZlbnRpdG9cIixcbiAgICBcInZlbnRvc3VzXCIsXG4gICAgXCJ2ZW50dXNcIixcbiAgICBcInZlbnVzdGFzXCIsXG4gICAgXCJ2ZXJcIixcbiAgICBcInZlcmJlcmFcIixcbiAgICBcInZlcmJ1bVwiLFxuICAgIFwidmVyZVwiLFxuICAgIFwidmVyZWN1bmRpYVwiLFxuICAgIFwidmVyZW9yXCIsXG4gICAgXCJ2ZXJnb1wiLFxuICAgIFwidmVyaXRhc1wiLFxuICAgIFwidmVyb1wiLFxuICAgIFwidmVyc3VzXCIsXG4gICAgXCJ2ZXJ0b1wiLFxuICAgIFwidmVydW10YW1lblwiLFxuICAgIFwidmVydXNcIixcbiAgICBcInZlc2NvXCIsXG4gICAgXCJ2ZXNpY2FcIixcbiAgICBcInZlc3BlclwiLFxuICAgIFwidmVzcGlsbG9cIixcbiAgICBcInZlc3RlclwiLFxuICAgIFwidmVzdGlnaXVtXCIsXG4gICAgXCJ2ZXN0cnVtXCIsXG4gICAgXCJ2ZXR1c1wiLFxuICAgIFwidmlhXCIsXG4gICAgXCJ2aWNpbnVzXCIsXG4gICAgXCJ2aWNpc3NpdHVkb1wiLFxuICAgIFwidmljdG9yaWFcIixcbiAgICBcInZpY3R1c1wiLFxuICAgIFwidmlkZWxpY2V0XCIsXG4gICAgXCJ2aWRlb1wiLFxuICAgIFwidmlkdWF0YVwiLFxuICAgIFwidmlkdW9cIixcbiAgICBcInZpZ2lsb1wiLFxuICAgIFwidmlnb3JcIixcbiAgICBcInZpbGljdXNcIixcbiAgICBcInZpbGlzXCIsXG4gICAgXCJ2aWxpdGFzXCIsXG4gICAgXCJ2aWxsYVwiLFxuICAgIFwidmluY29cIixcbiAgICBcInZpbmN1bHVtXCIsXG4gICAgXCJ2aW5kaWNvXCIsXG4gICAgXCJ2aW5pdG9yXCIsXG4gICAgXCJ2aW51bVwiLFxuICAgIFwidmlyXCIsXG4gICAgXCJ2aXJnYVwiLFxuICAgIFwidmlyZ29cIixcbiAgICBcInZpcmlkaXNcIixcbiAgICBcInZpcmlsaXRlclwiLFxuICAgIFwidmlydHVzXCIsXG4gICAgXCJ2aXNcIixcbiAgICBcInZpc2N1c1wiLFxuICAgIFwidml0YVwiLFxuICAgIFwidml0aW9zdXNcIixcbiAgICBcInZpdGl1bVwiLFxuICAgIFwidml0b1wiLFxuICAgIFwidml2b1wiLFxuICAgIFwidml4XCIsXG4gICAgXCJ2b2Jpc1wiLFxuICAgIFwidm9jaWZlcm9yXCIsXG4gICAgXCJ2b2NvXCIsXG4gICAgXCJ2b2xhdGljdXNcIixcbiAgICBcInZvbG9cIixcbiAgICBcInZvbHViaWxpc1wiLFxuICAgIFwidm9sdW50YXJpdXNcIixcbiAgICBcInZvbHVwXCIsXG4gICAgXCJ2b2x1dGFicnVtXCIsXG4gICAgXCJ2b2x2YVwiLFxuICAgIFwidm9tZXJcIixcbiAgICBcInZvbWljYVwiLFxuICAgIFwidm9taXRvXCIsXG4gICAgXCJ2b3JhZ29cIixcbiAgICBcInZvcmF4XCIsXG4gICAgXCJ2b3JvXCIsXG4gICAgXCJ2b3NcIixcbiAgICBcInZvdHVtXCIsXG4gICAgXCJ2b3Zlb1wiLFxuICAgIFwidm94XCIsXG4gICAgXCJ2dWxhcml0ZXJcIixcbiAgICBcInZ1bGdhcmlzXCIsXG4gICAgXCJ2dWxnaXZhZ3VzXCIsXG4gICAgXCJ2dWxnb1wiLFxuICAgIFwidnVsZ3VzXCIsXG4gICAgXCJ2dWxuZXJvXCIsXG4gICAgXCJ2dWxudXNcIixcbiAgICBcInZ1bHBlc1wiLFxuICAgIFwidnVsdGljdWx1c1wiLFxuICAgIFwidnVsdHVvc3VzXCIsXG4gICAgXCJ4aXBoaWFzXCJcbiAgXVxufTtcbmVuLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBYWxpeWFoXCIsXG4gICAgXCJBYXJvblwiLFxuICAgIFwiQWJhZ2FpbFwiLFxuICAgIFwiQWJiZXlcIixcbiAgICBcIkFiYmllXCIsXG4gICAgXCJBYmJpZ2FpbFwiLFxuICAgIFwiQWJieVwiLFxuICAgIFwiQWJkaWVsXCIsXG4gICAgXCJBYmR1bFwiLFxuICAgIFwiQWJkdWxsYWhcIixcbiAgICBcIkFiZVwiLFxuICAgIFwiQWJlbFwiLFxuICAgIFwiQWJlbGFyZG9cIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIkFiaWdhbGVcIixcbiAgICBcIkFiaWdheWxlXCIsXG4gICAgXCJBYm5lclwiLFxuICAgIFwiQWJyYWhhbVwiLFxuICAgIFwiQWRhXCIsXG4gICAgXCJBZGFoXCIsXG4gICAgXCJBZGFsYmVydG9cIixcbiAgICBcIkFkYWxpbmVcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkYW5cIixcbiAgICBcIkFkZGllXCIsXG4gICAgXCJBZGRpc29uXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiQWRlbGJlcnRcIixcbiAgICBcIkFkZWxlXCIsXG4gICAgXCJBZGVsaWFcIixcbiAgICBcIkFkZWxpbmVcIixcbiAgICBcIkFkZWxsXCIsXG4gICAgXCJBZGVsbGFcIixcbiAgICBcIkFkZWxsZVwiLFxuICAgIFwiQWRpdHlhXCIsXG4gICAgXCJBZG9sZlwiLFxuICAgIFwiQWRvbGZvXCIsXG4gICAgXCJBZG9scGhcIixcbiAgICBcIkFkb2xwaHVzXCIsXG4gICAgXCJBZG9uaXNcIixcbiAgICBcIkFkcmFpblwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJBZHJpYW5hXCIsXG4gICAgXCJBZHJpYW5uYVwiLFxuICAgIFwiQWRyaWVsXCIsXG4gICAgXCJBZHJpZW5cIixcbiAgICBcIkFkcmllbm5lXCIsXG4gICAgXCJBZnRvblwiLFxuICAgIFwiQWdsYWVcIixcbiAgICBcIkFnbmVzXCIsXG4gICAgXCJBZ3VzdGluXCIsXG4gICAgXCJBZ3VzdGluYVwiLFxuICAgIFwiQWhtYWRcIixcbiAgICBcIkFobWVkXCIsXG4gICAgXCJBaWRhXCIsXG4gICAgXCJBaWRhblwiLFxuICAgIFwiQWlkZW5cIixcbiAgICBcIkFpbGVlblwiLFxuICAgIFwiQWltZWVcIixcbiAgICBcIkFpc2hhXCIsXG4gICAgXCJBaXlhbmFcIixcbiAgICBcIkFrZWVtXCIsXG4gICAgXCJBbFwiLFxuICAgIFwiQWxhaW5hXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiQWxhbmlzXCIsXG4gICAgXCJBbGFubmFcIixcbiAgICBcIkFsYXluYVwiLFxuICAgIFwiQWxiYVwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGJlcnRhXCIsXG4gICAgXCJBbGJlcnRoYVwiLFxuICAgIFwiQWxiZXJ0b1wiLFxuICAgIFwiQWxiaW5cIixcbiAgICBcIkFsYmluYVwiLFxuICAgIFwiQWxkYVwiLFxuICAgIFwiQWxkZW5cIixcbiAgICBcIkFsZWNcIixcbiAgICBcIkFsZWVuXCIsXG4gICAgXCJBbGVqYW5kcmFcIixcbiAgICBcIkFsZWphbmRyaW5cIixcbiAgICBcIkFsZWtcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJBbGVuZVwiLFxuICAgIFwiQWxlc3NhbmRyYVwiLFxuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxlc3NpYVwiLFxuICAgIFwiQWxldGhhXCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkFsZXhhbmRyZVwiLFxuICAgIFwiQWxleGFuZHJlYVwiLFxuICAgIFwiQWxleGFuZHJpYVwiLFxuICAgIFwiQWxleGFuZHJpbmVcIixcbiAgICBcIkFsZXhhbmRyb1wiLFxuICAgIFwiQWxleGFuZVwiLFxuICAgIFwiQWxleGFubmVcIixcbiAgICBcIkFsZXhpZVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJBbGV4eXNcIixcbiAgICBcIkFsZXh6YW5kZXJcIixcbiAgICBcIkFsZlwiLFxuICAgIFwiQWxmb25zb1wiLFxuICAgIFwiQWxmb256b1wiLFxuICAgIFwiQWxmb3JkXCIsXG4gICAgXCJBbGZyZWRcIixcbiAgICBcIkFsZnJlZGFcIixcbiAgICBcIkFsZnJlZG9cIixcbiAgICBcIkFsaVwiLFxuICAgIFwiQWxpYVwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIkFsaWNpYVwiLFxuICAgIFwiQWxpc2FcIixcbiAgICBcIkFsaXNoYVwiLFxuICAgIFwiQWxpc29uXCIsXG4gICAgXCJBbGl2aWFcIixcbiAgICBcIkFsaXlhXCIsXG4gICAgXCJBbGl5YWhcIixcbiAgICBcIkFsaXphXCIsXG4gICAgXCJBbGl6ZVwiLFxuICAgIFwiQWxsYW5cIixcbiAgICBcIkFsbGVuXCIsXG4gICAgXCJBbGxlbmVcIixcbiAgICBcIkFsbGllXCIsXG4gICAgXCJBbGxpc29uXCIsXG4gICAgXCJBbGx5XCIsXG4gICAgXCJBbHBob25zb1wiLFxuICAgIFwiQWx0YVwiLFxuICAgIFwiQWx0aGVhXCIsXG4gICAgXCJBbHZhXCIsXG4gICAgXCJBbHZhaFwiLFxuICAgIFwiQWx2ZW5hXCIsXG4gICAgXCJBbHZlcmFcIixcbiAgICBcIkFsdmVydGFcIixcbiAgICBcIkFsdmluYVwiLFxuICAgIFwiQWx2aXNcIixcbiAgICBcIkFseWNlXCIsXG4gICAgXCJBbHljaWFcIixcbiAgICBcIkFseXNhXCIsXG4gICAgXCJBbHlzaGFcIixcbiAgICBcIkFseXNvblwiLFxuICAgIFwiQWx5c3NvblwiLFxuICAgIFwiQW1hbGlhXCIsXG4gICAgXCJBbWFuZGFcIixcbiAgICBcIkFtYW5pXCIsXG4gICAgXCJBbWFyYVwiLFxuICAgIFwiQW1hcmlcIixcbiAgICBcIkFtYXlhXCIsXG4gICAgXCJBbWJlclwiLFxuICAgIFwiQW1icm9zZVwiLFxuICAgIFwiQW1lbGlhXCIsXG4gICAgXCJBbWVsaWVcIixcbiAgICBcIkFtZWx5XCIsXG4gICAgXCJBbWVyaWNhXCIsXG4gICAgXCJBbWVyaWNvXCIsXG4gICAgXCJBbWllXCIsXG4gICAgXCJBbWluYVwiLFxuICAgIFwiQW1pclwiLFxuICAgIFwiQW1pcmFcIixcbiAgICBcIkFtaXlhXCIsXG4gICAgXCJBbW9zXCIsXG4gICAgXCJBbXBhcm9cIixcbiAgICBcIkFteVwiLFxuICAgIFwiQW15YVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmFiZWxcIixcbiAgICBcIkFuYWJlbGxlXCIsXG4gICAgXCJBbmFoaVwiLFxuICAgIFwiQW5haXNcIixcbiAgICBcIkFuYXN0YWNpb1wiLFxuICAgIFwiQW5hc3Rhc2lhXCIsXG4gICAgXCJBbmRlcnNvblwiLFxuICAgIFwiQW5kcmVcIixcbiAgICBcIkFuZHJlYW5lXCIsXG4gICAgXCJBbmRyZWFubmVcIixcbiAgICBcIkFuZHJlc1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbmR5XCIsXG4gICAgXCJBbmdlbFwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJBbmdlbGljYVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIkFuZ2VsaW5lXCIsXG4gICAgXCJBbmdlbGl0YVwiLFxuICAgIFwiQW5nZWxvXCIsXG4gICAgXCJBbmdpZVwiLFxuICAgIFwiQW5ndXNcIixcbiAgICBcIkFuaWJhbFwiLFxuICAgIFwiQW5pa2FcIixcbiAgICBcIkFuaXNzYVwiLFxuICAgIFwiQW5pdGFcIixcbiAgICBcIkFuaXlhXCIsXG4gICAgXCJBbml5YWhcIixcbiAgICBcIkFuamFsaVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiQW5uYWJlbFwiLFxuICAgIFwiQW5uYWJlbGxcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiQW5uYWxpc2VcIixcbiAgICBcIkFubmFtYWVcIixcbiAgICBcIkFubmFtYXJpZVwiLFxuICAgIFwiQW5uZVwiLFxuICAgIFwiQW5uZXR0YVwiLFxuICAgIFwiQW5uZXR0ZVwiLFxuICAgIFwiQW5uaWVcIixcbiAgICBcIkFuc2VsXCIsXG4gICAgXCJBbnNsZXlcIixcbiAgICBcIkFudGhvbnlcIixcbiAgICBcIkFudG9pbmV0dGVcIixcbiAgICBcIkFudG9uZVwiLFxuICAgIFwiQW50b25ldHRhXCIsXG4gICAgXCJBbnRvbmV0dGVcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFudG9uaWV0dGFcIixcbiAgICBcIkFudG9uaW5hXCIsXG4gICAgXCJBbnRvbmlvXCIsXG4gICAgXCJBbnR3YW5cIixcbiAgICBcIkFudHdvblwiLFxuICAgIFwiQW55YVwiLFxuICAgIFwiQXByaWxcIixcbiAgICBcIkFyYVwiLFxuICAgIFwiQXJhY2VsaVwiLFxuICAgIFwiQXJhY2VseVwiLFxuICAgIFwiQXJjaFwiLFxuICAgIFwiQXJjaGliYWxkXCIsXG4gICAgXCJBcmRlbGxhXCIsXG4gICAgXCJBcmRlblwiLFxuICAgIFwiQXJkaXRoXCIsXG4gICAgXCJBcmVseVwiLFxuICAgIFwiQXJpXCIsXG4gICAgXCJBcmlhbmVcIixcbiAgICBcIkFyaWFubmFcIixcbiAgICBcIkFyaWNcIixcbiAgICBcIkFyaWVsXCIsXG4gICAgXCJBcmllbGxlXCIsXG4gICAgXCJBcmp1blwiLFxuICAgIFwiQXJsZW5lXCIsXG4gICAgXCJBcmxpZVwiLFxuICAgIFwiQXJsb1wiLFxuICAgIFwiQXJtYW5kXCIsXG4gICAgXCJBcm1hbmRvXCIsXG4gICAgXCJBcm1hbmlcIixcbiAgICBcIkFybmFsZG9cIixcbiAgICBcIkFybmVcIixcbiAgICBcIkFybm9cIixcbiAgICBcIkFybm9sZFwiLFxuICAgIFwiQXJub2xkb1wiLFxuICAgIFwiQXJudWxmb1wiLFxuICAgIFwiQXJvblwiLFxuICAgIFwiQXJ0XCIsXG4gICAgXCJBcnRodXJcIixcbiAgICBcIkFydHVyb1wiLFxuICAgIFwiQXJ2ZWxcIixcbiAgICBcIkFydmlkXCIsXG4gICAgXCJBcnZpbGxhXCIsXG4gICAgXCJBcnlhbm5hXCIsXG4gICAgXCJBc2FcIixcbiAgICBcIkFzaGFcIixcbiAgICBcIkFzaGxlZVwiLFxuICAgIFwiQXNobGVpZ2hcIixcbiAgICBcIkFzaGxleVwiLFxuICAgIFwiQXNobHlcIixcbiAgICBcIkFzaGx5bm5cIixcbiAgICBcIkFzaHRvblwiLFxuICAgIFwiQXNodHluXCIsXG4gICAgXCJBc2lhXCIsXG4gICAgXCJBc3N1bnRhXCIsXG4gICAgXCJBc3RyaWRcIixcbiAgICBcIkF0aGVuYVwiLFxuICAgIFwiQXVicmVlXCIsXG4gICAgXCJBdWJyZXlcIixcbiAgICBcIkF1ZGllXCIsXG4gICAgXCJBdWRyYVwiLFxuICAgIFwiQXVkcmVhbm5lXCIsXG4gICAgXCJBdWRyZXlcIixcbiAgICBcIkF1Z3VzdFwiLFxuICAgIFwiQXVndXN0YVwiLFxuICAgIFwiQXVndXN0aW5lXCIsXG4gICAgXCJBdWd1c3R1c1wiLFxuICAgIFwiQXVyZWxpYVwiLFxuICAgIFwiQXVyZWxpZVwiLFxuICAgIFwiQXVyZWxpb1wiLFxuICAgIFwiQXVyb3JlXCIsXG4gICAgXCJBdXN0ZW5cIixcbiAgICBcIkF1c3RpblwiLFxuICAgIFwiQXVzdHluXCIsXG4gICAgXCJBdXR1bW5cIixcbiAgICBcIkF2YVwiLFxuICAgIFwiQXZlcnlcIixcbiAgICBcIkF2aXNcIixcbiAgICBcIkF4ZWxcIixcbiAgICBcIkF5YW5hXCIsXG4gICAgXCJBeWRlblwiLFxuICAgIFwiQXlsYVwiLFxuICAgIFwiQXlsaW5cIixcbiAgICBcIkJhYnlcIixcbiAgICBcIkJhaWxlZVwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYXJiYXJhXCIsXG4gICAgXCJCYXJuZXlcIixcbiAgICBcIkJhcm9uXCIsXG4gICAgXCJCYXJyZXR0XCIsXG4gICAgXCJCYXJyeVwiLFxuICAgIFwiQmFydFwiLFxuICAgIFwiQmFydGhvbG9tZVwiLFxuICAgIFwiQmFydG9uXCIsXG4gICAgXCJCYXlsZWVcIixcbiAgICBcIkJlYXRyaWNlXCIsXG4gICAgXCJCZWF1XCIsXG4gICAgXCJCZWF1bGFoXCIsXG4gICAgXCJCZWxsXCIsXG4gICAgXCJCZWxsYVwiLFxuICAgIFwiQmVsbGVcIixcbiAgICBcIkJlblwiLFxuICAgIFwiQmVuZWRpY3RcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJCZW5uZXR0XCIsXG4gICAgXCJCZW5uaWVcIixcbiAgICBcIkJlbm55XCIsXG4gICAgXCJCZW50b25cIixcbiAgICBcIkJlcmVuaWNlXCIsXG4gICAgXCJCZXJuYWRldHRlXCIsXG4gICAgXCJCZXJuYWRpbmVcIixcbiAgICBcIkJlcm5hcmRcIixcbiAgICBcIkJlcm5hcmRvXCIsXG4gICAgXCJCZXJuZWljZVwiLFxuICAgIFwiQmVybmhhcmRcIixcbiAgICBcIkJlcm5pY2VcIixcbiAgICBcIkJlcm5pZVwiLFxuICAgIFwiQmVybmllY2VcIixcbiAgICBcIkJlcm5pdGFcIixcbiAgICBcIkJlcnJ5XCIsXG4gICAgXCJCZXJ0XCIsXG4gICAgXCJCZXJ0YVwiLFxuICAgIFwiQmVydGhhXCIsXG4gICAgXCJCZXJ0cmFtXCIsXG4gICAgXCJCZXJ0cmFuZFwiLFxuICAgIFwiQmVyeWxcIixcbiAgICBcIkJlc3NpZVwiLFxuICAgIFwiQmV0aFwiLFxuICAgIFwiQmV0aGFueVwiLFxuICAgIFwiQmV0aGVsXCIsXG4gICAgXCJCZXRzeVwiLFxuICAgIFwiQmV0dGVcIixcbiAgICBcIkJldHRpZVwiLFxuICAgIFwiQmV0dHlcIixcbiAgICBcIkJldHR5ZVwiLFxuICAgIFwiQmV1bGFoXCIsXG4gICAgXCJCZXZlcmx5XCIsXG4gICAgXCJCaWFua2FcIixcbiAgICBcIkJpbGxcIixcbiAgICBcIkJpbGxpZVwiLFxuICAgIFwiQmlsbHlcIixcbiAgICBcIkJpcmRpZVwiLFxuICAgIFwiQmxhaXJcIixcbiAgICBcIkJsYWlzZVwiLFxuICAgIFwiQmxha2VcIixcbiAgICBcIkJsYW5jYVwiLFxuICAgIFwiQmxhbmNoZVwiLFxuICAgIFwiQmxhemVcIixcbiAgICBcIkJvXCIsXG4gICAgXCJCb2JiaWVcIixcbiAgICBcIkJvYmJ5XCIsXG4gICAgXCJCb25pdGFcIixcbiAgICBcIkJvbm5pZVwiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkJveWRcIixcbiAgICBcIkJyYWRcIixcbiAgICBcIkJyYWRlblwiLFxuICAgIFwiQnJhZGZvcmRcIixcbiAgICBcIkJyYWRsZXlcIixcbiAgICBcIkJyYWRseVwiLFxuICAgIFwiQnJhZHlcIixcbiAgICBcIkJyYWVkZW5cIixcbiAgICBcIkJyYWluXCIsXG4gICAgXCJCcmFuZGlcIixcbiAgICBcIkJyYW5kb1wiLFxuICAgIFwiQnJhbmRvblwiLFxuICAgIFwiQnJhbmR0XCIsXG4gICAgXCJCcmFuZHlcIixcbiAgICBcIkJyYW5keW5cIixcbiAgICBcIkJyYW5ub25cIixcbiAgICBcIkJyYW5zb25cIixcbiAgICBcIkJyYW50XCIsXG4gICAgXCJCcmF1bGlvXCIsXG4gICAgXCJCcmF4dG9uXCIsXG4gICAgXCJCcmF5YW5cIixcbiAgICBcIkJyZWFuYVwiLFxuICAgIFwiQnJlYW5uYVwiLFxuICAgIFwiQnJlYW5uZVwiLFxuICAgIFwiQnJlbmRhXCIsXG4gICAgXCJCcmVuZGFuXCIsXG4gICAgXCJCcmVuZGVuXCIsXG4gICAgXCJCcmVuZG9uXCIsXG4gICAgXCJCcmVubmFcIixcbiAgICBcIkJyZW5uYW5cIixcbiAgICBcIkJyZW5ub25cIixcbiAgICBcIkJyZW50XCIsXG4gICAgXCJCcmV0XCIsXG4gICAgXCJCcmV0dFwiLFxuICAgIFwiQnJpYVwiLFxuICAgIFwiQnJpYW5cIixcbiAgICBcIkJyaWFuYVwiLFxuICAgIFwiQnJpYW5uZVwiLFxuICAgIFwiQnJpY2VcIixcbiAgICBcIkJyaWRnZXRcIixcbiAgICBcIkJyaWRnZXR0ZVwiLFxuICAgIFwiQnJpZGllXCIsXG4gICAgXCJCcmllbGxlXCIsXG4gICAgXCJCcmlnaXR0ZVwiLFxuICAgIFwiQnJpb25uYVwiLFxuICAgIFwiQnJpc2FcIixcbiAgICBcIkJyaXRuZXlcIixcbiAgICBcIkJyaXR0YW55XCIsXG4gICAgXCJCcm9ja1wiLFxuICAgIFwiQnJvZGVyaWNrXCIsXG4gICAgXCJCcm9keVwiLFxuICAgIFwiQnJvb2tcIixcbiAgICBcIkJyb29rZVwiLFxuICAgIFwiQnJvb2tseW5cIixcbiAgICBcIkJyb29rc1wiLFxuICAgIFwiQnJvd25cIixcbiAgICBcIkJydWNlXCIsXG4gICAgXCJCcnlhbmFcIixcbiAgICBcIkJyeWNlXCIsXG4gICAgXCJCcnljZW5cIixcbiAgICBcIkJyeW9uXCIsXG4gICAgXCJCdWNrXCIsXG4gICAgXCJCdWRcIixcbiAgICBcIkJ1ZGR5XCIsXG4gICAgXCJCdWZvcmRcIixcbiAgICBcIkJ1bGFoXCIsXG4gICAgXCJCdXJkZXR0ZVwiLFxuICAgIFwiQnVybGV5XCIsXG4gICAgXCJCdXJuaWNlXCIsXG4gICAgXCJCdXN0ZXJcIixcbiAgICBcIkNhZGVcIixcbiAgICBcIkNhZGVuXCIsXG4gICAgXCJDYWVzYXJcIixcbiAgICBcIkNhaXRseW5cIixcbiAgICBcIkNhbGVcIixcbiAgICBcIkNhbGViXCIsXG4gICAgXCJDYWxlaWdoXCIsXG4gICAgXCJDYWxpXCIsXG4gICAgXCJDYWxpc3RhXCIsXG4gICAgXCJDYWxsaWVcIixcbiAgICBcIkNhbWRlblwiLFxuICAgIFwiQ2FtZXJvblwiLFxuICAgIFwiQ2FtaWxhXCIsXG4gICAgXCJDYW1pbGxhXCIsXG4gICAgXCJDYW1pbGxlXCIsXG4gICAgXCJDYW1yZW5cIixcbiAgICBcIkNhbXJvblwiLFxuICAgIFwiQ2FtcnluXCIsXG4gICAgXCJDYW15bGxlXCIsXG4gICAgXCJDYW5kYWNlXCIsXG4gICAgXCJDYW5kZWxhcmlvXCIsXG4gICAgXCJDYW5kaWNlXCIsXG4gICAgXCJDYW5kaWRhXCIsXG4gICAgXCJDYW5kaWRvXCIsXG4gICAgXCJDYXJhXCIsXG4gICAgXCJDYXJleVwiLFxuICAgIFwiQ2FyaXNzYVwiLFxuICAgIFwiQ2FybGVlXCIsXG4gICAgXCJDYXJsZXRvblwiLFxuICAgIFwiQ2FybGV5XCIsXG4gICAgXCJDYXJsaVwiLFxuICAgIFwiQ2FybGllXCIsXG4gICAgXCJDYXJsb1wiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDYXJsb3R0YVwiLFxuICAgIFwiQ2FybWVsXCIsXG4gICAgXCJDYXJtZWxhXCIsXG4gICAgXCJDYXJtZWxsYVwiLFxuICAgIFwiQ2FybWVsb1wiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJtaW5lXCIsXG4gICAgXCJDYXJvbFwiLFxuICAgIFwiQ2Fyb2xhbm5lXCIsXG4gICAgXCJDYXJvbGVcIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXJvbGluZVwiLFxuICAgIFwiQ2Fyb2x5blwiLFxuICAgIFwiQ2Fyb2x5bmVcIixcbiAgICBcIkNhcnJpZVwiLFxuICAgIFwiQ2Fycm9sbFwiLFxuICAgIFwiQ2Fyc29uXCIsXG4gICAgXCJDYXJ0ZXJcIixcbiAgICBcIkNhcnlcIixcbiAgICBcIkNhc2FuZHJhXCIsXG4gICAgXCJDYXNleVwiLFxuICAgIFwiQ2FzaW1lclwiLFxuICAgIFwiQ2FzaW1pclwiLFxuICAgIFwiQ2FzcGVyXCIsXG4gICAgXCJDYXNzYW5kcmFcIixcbiAgICBcIkNhc3NhbmRyZVwiLFxuICAgIFwiQ2Fzc2lkeVwiLFxuICAgIFwiQ2Fzc2llXCIsXG4gICAgXCJDYXRhbGluYVwiLFxuICAgIFwiQ2F0ZXJpbmFcIixcbiAgICBcIkNhdGhhcmluZVwiLFxuICAgIFwiQ2F0aGVyaW5lXCIsXG4gICAgXCJDYXRocmluZVwiLFxuICAgIFwiQ2F0aHJ5blwiLFxuICAgIFwiQ2F0aHlcIixcbiAgICBcIkNheWxhXCIsXG4gICAgXCJDZWFzYXJcIixcbiAgICBcIkNlY2VsaWFcIixcbiAgICBcIkNlY2lsXCIsXG4gICAgXCJDZWNpbGVcIixcbiAgICBcIkNlY2lsaWFcIixcbiAgICBcIkNlZHJpY2tcIixcbiAgICBcIkNlbGVzdGluZVwiLFxuICAgIFwiQ2VsZXN0aW5vXCIsXG4gICAgXCJDZWxpYVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJDZXNhclwiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hhZGRcIixcbiAgICBcIkNoYWRyaWNrXCIsXG4gICAgXCJDaGFpbVwiLFxuICAgIFwiQ2hhbmNlXCIsXG4gICAgXCJDaGFuZGxlclwiLFxuICAgIFwiQ2hhbmVsXCIsXG4gICAgXCJDaGFuZWxsZVwiLFxuICAgIFwiQ2hhcml0eVwiLFxuICAgIFwiQ2hhcmxlbmVcIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkNoYXJsZXlcIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQ2hhc2VcIixcbiAgICBcIkNoYXNpdHlcIixcbiAgICBcIkNoYXVuY2V5XCIsXG4gICAgXCJDaGF5YVwiLFxuICAgIFwiQ2hhelwiLFxuICAgIFwiQ2hlbHNlYVwiLFxuICAgIFwiQ2hlbHNleVwiLFxuICAgIFwiQ2hlbHNpZVwiLFxuICAgIFwiQ2hlc2xleVwiLFxuICAgIFwiQ2hlc3RlclwiLFxuICAgIFwiQ2hldFwiLFxuICAgIFwiQ2hleWFubmVcIixcbiAgICBcIkNoZXllbm5lXCIsXG4gICAgXCJDaGxvZVwiLFxuICAgIFwiQ2hyaXNcIixcbiAgICBcIkNocmlzdFwiLFxuICAgIFwiQ2hyaXN0YVwiLFxuICAgIFwiQ2hyaXN0ZWxsZVwiLFxuICAgIFwiQ2hyaXN0aWFuXCIsXG4gICAgXCJDaHJpc3RpYW5hXCIsXG4gICAgXCJDaHJpc3RpbmFcIixcbiAgICBcIkNocmlzdGluZVwiLFxuICAgIFwiQ2hyaXN0b3BcIixcbiAgICBcIkNocmlzdG9waGVcIixcbiAgICBcIkNocmlzdG9waGVyXCIsXG4gICAgXCJDaHJpc3R5XCIsXG4gICAgXCJDaHluYVwiLFxuICAgIFwiQ2lhcmFcIixcbiAgICBcIkNpY2Vyb1wiLFxuICAgIFwiQ2llbG9cIixcbiAgICBcIkNpZXJyYVwiLFxuICAgIFwiQ2luZHlcIixcbiAgICBcIkNpdGxhbGxpXCIsXG4gICAgXCJDbGFpclwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiQ2xhcmFiZWxsZVwiLFxuICAgIFwiQ2xhcmVcIixcbiAgICBcIkNsYXJpc3NhXCIsXG4gICAgXCJDbGFya1wiLFxuICAgIFwiQ2xhdWRcIixcbiAgICBcIkNsYXVkZVwiLFxuICAgIFwiQ2xhdWRpYVwiLFxuICAgIFwiQ2xhdWRpZVwiLFxuICAgIFwiQ2xhdWRpbmVcIixcbiAgICBcIkNsYXlcIixcbiAgICBcIkNsZW1lbnNcIixcbiAgICBcIkNsZW1lbnRcIixcbiAgICBcIkNsZW1lbnRpbmFcIixcbiAgICBcIkNsZW1lbnRpbmVcIixcbiAgICBcIkNsZW1taWVcIixcbiAgICBcIkNsZW9cIixcbiAgICBcIkNsZW9yYVwiLFxuICAgIFwiQ2xldGFcIixcbiAgICBcIkNsZXR1c1wiLFxuICAgIFwiQ2xldmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2xpZmZvcmRcIixcbiAgICBcIkNsaWZ0b25cIixcbiAgICBcIkNsaW50XCIsXG4gICAgXCJDbGludG9uXCIsXG4gICAgXCJDbG90aWxkZVwiLFxuICAgIFwiQ2xvdmlzXCIsXG4gICAgXCJDbG95ZFwiLFxuICAgIFwiQ2x5ZGVcIixcbiAgICBcIkNvYnlcIixcbiAgICBcIkNvZHlcIixcbiAgICBcIkNvbGJ5XCIsXG4gICAgXCJDb2xlXCIsXG4gICAgXCJDb2xlbWFuXCIsXG4gICAgXCJDb2xpblwiLFxuICAgIFwiQ29sbGVlblwiLFxuICAgIFwiQ29sbGluXCIsXG4gICAgXCJDb2x0XCIsXG4gICAgXCJDb2x0ZW5cIixcbiAgICBcIkNvbHRvblwiLFxuICAgIFwiQ29sdW1idXNcIixcbiAgICBcIkNvbmNlcGNpb25cIixcbiAgICBcIkNvbm5lclwiLFxuICAgIFwiQ29ubmllXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIkNvbm9yXCIsXG4gICAgXCJDb25yYWRcIixcbiAgICBcIkNvbnN0YW5jZVwiLFxuICAgIFwiQ29uc3RhbnRpblwiLFxuICAgIFwiQ29uc3VlbG9cIixcbiAgICBcIkNvb3BlclwiLFxuICAgIFwiQ29yYVwiLFxuICAgIFwiQ29yYWxpZVwiLFxuICAgIFwiQ29yYmluXCIsXG4gICAgXCJDb3JkZWxpYVwiLFxuICAgIFwiQ29yZGVsbFwiLFxuICAgIFwiQ29yZGlhXCIsXG4gICAgXCJDb3JkaWVcIixcbiAgICBcIkNvcmVuZVwiLFxuICAgIFwiQ29yaW5lXCIsXG4gICAgXCJDb3JuZWxpdXNcIixcbiAgICBcIkNvcm5lbGxcIixcbiAgICBcIkNvcnJpbmVcIixcbiAgICBcIkNvcnRlelwiLFxuICAgIFwiQ29ydG5leVwiLFxuICAgIFwiQ29yeVwiLFxuICAgIFwiQ290eVwiLFxuICAgIFwiQ291cnRuZXlcIixcbiAgICBcIkNveVwiLFxuICAgIFwiQ3JhaWdcIixcbiAgICBcIkNyYXdmb3JkXCIsXG4gICAgXCJDcmVvbGFcIixcbiAgICBcIkNyaXN0YWxcIixcbiAgICBcIkNyaXN0aWFuXCIsXG4gICAgXCJDcmlzdGluYVwiLFxuICAgIFwiQ3Jpc3RvYmFsXCIsXG4gICAgXCJDcmlzdG9waGVyXCIsXG4gICAgXCJDcnV6XCIsXG4gICAgXCJDcnlzdGFsXCIsXG4gICAgXCJDcnlzdGVsXCIsXG4gICAgXCJDdWxsZW5cIixcbiAgICBcIkN1cnRcIixcbiAgICBcIkN1cnRpc1wiLFxuICAgIFwiQ3lkbmV5XCIsXG4gICAgXCJDeW50aGlhXCIsXG4gICAgXCJDeXJpbFwiLFxuICAgIFwiQ3lydXNcIixcbiAgICBcIkRhZ21hclwiLFxuICAgIFwiRGFobGlhXCIsXG4gICAgXCJEYWlqYVwiLFxuICAgIFwiRGFpc2hhXCIsXG4gICAgXCJEYWlzeVwiLFxuICAgIFwiRGFrb3RhXCIsXG4gICAgXCJEYWxlXCIsXG4gICAgXCJEYWxsYXNcIixcbiAgICBcIkRhbGxpblwiLFxuICAgIFwiRGFsdG9uXCIsXG4gICAgXCJEYW1hcmlzXCIsXG4gICAgXCJEYW1lb25cIixcbiAgICBcIkRhbWlhblwiLFxuICAgIFwiRGFtaWVuXCIsXG4gICAgXCJEYW1pb25cIixcbiAgICBcIkRhbW9uXCIsXG4gICAgXCJEYW5cIixcbiAgICBcIkRhbmFcIixcbiAgICBcIkRhbmRyZVwiLFxuICAgIFwiRGFuZVwiLFxuICAgIFwiRCdhbmdlbG9cIixcbiAgICBcIkRhbmdlbG9cIixcbiAgICBcIkRhbmlhbFwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiRGFuaWVsbGFcIixcbiAgICBcIkRhbmllbGxlXCIsXG4gICAgXCJEYW5pa2FcIixcbiAgICBcIkRhbm5pZVwiLFxuICAgIFwiRGFubnlcIixcbiAgICBcIkRhbnRlXCIsXG4gICAgXCJEYW55a2FcIixcbiAgICBcIkRhcGhuZVwiLFxuICAgIFwiRGFwaG5lZVwiLFxuICAgIFwiRGFwaG5leVwiLFxuICAgIFwiRGFyYnlcIixcbiAgICBcIkRhcmVuXCIsXG4gICAgXCJEYXJpYW5cIixcbiAgICBcIkRhcmlhbmFcIixcbiAgICBcIkRhcmllblwiLFxuICAgIFwiRGFyaW9cIixcbiAgICBcIkRhcmlvblwiLFxuICAgIFwiRGFyaXVzXCIsXG4gICAgXCJEYXJsZW5lXCIsXG4gICAgXCJEYXJvblwiLFxuICAgIFwiRGFycmVsXCIsXG4gICAgXCJEYXJyZWxsXCIsXG4gICAgXCJEYXJyZW5cIixcbiAgICBcIkRhcnJpY2tcIixcbiAgICBcIkRhcnJpblwiLFxuICAgIFwiRGFycmlvblwiLFxuICAgIFwiRGFycm9uXCIsXG4gICAgXCJEYXJyeWxcIixcbiAgICBcIkRhcndpblwiLFxuICAgIFwiRGFyeWxcIixcbiAgICBcIkRhc2hhd25cIixcbiAgICBcIkRhc2lhXCIsXG4gICAgXCJEYXZlXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiRGF2aW5cIixcbiAgICBcIkRhdmlvblwiLFxuICAgIFwiRGF2b25cIixcbiAgICBcIkRhdm9udGVcIixcbiAgICBcIkRhd25cIixcbiAgICBcIkRhd3NvblwiLFxuICAgIFwiRGF4XCIsXG4gICAgXCJEYXlhbmFcIixcbiAgICBcIkRheW5hXCIsXG4gICAgXCJEYXluZVwiLFxuICAgIFwiRGF5dG9uXCIsXG4gICAgXCJEZWFuXCIsXG4gICAgXCJEZWFuZ2Vsb1wiLFxuICAgIFwiRGVhbm5hXCIsXG4gICAgXCJEZWJvcmFoXCIsXG4gICAgXCJEZWNsYW5cIixcbiAgICBcIkRlZHJpY1wiLFxuICAgIFwiRGVkcmlja1wiLFxuICAgIFwiRGVlXCIsXG4gICAgXCJEZWlvblwiLFxuICAgIFwiRGVqYVwiLFxuICAgIFwiRGVqYWhcIixcbiAgICBcIkRlam9uXCIsXG4gICAgXCJEZWp1YW5cIixcbiAgICBcIkRlbGFuZXlcIixcbiAgICBcIkRlbGJlcnRcIixcbiAgICBcIkRlbGZpbmFcIixcbiAgICBcIkRlbGlhXCIsXG4gICAgXCJEZWxpbGFoXCIsXG4gICAgXCJEZWxsXCIsXG4gICAgXCJEZWxsYVwiLFxuICAgIFwiRGVsbWVyXCIsXG4gICAgXCJEZWxvcmVzXCIsXG4gICAgXCJEZWxwaGFcIixcbiAgICBcIkRlbHBoaWFcIixcbiAgICBcIkRlbHBoaW5lXCIsXG4gICAgXCJEZWx0YVwiLFxuICAgIFwiRGVtYXJjb1wiLFxuICAgIFwiRGVtYXJjdXNcIixcbiAgICBcIkRlbWFyaW9cIixcbiAgICBcIkRlbWV0cmlzXCIsXG4gICAgXCJEZW1ldHJpdXNcIixcbiAgICBcIkRlbW9uZFwiLFxuICAgIFwiRGVuYVwiLFxuICAgIFwiRGVuaXNcIixcbiAgICBcIkRlbm5pc1wiLFxuICAgIFwiRGVvblwiLFxuICAgIFwiRGVvbmRyZVwiLFxuICAgIFwiRGVvbnRhZVwiLFxuICAgIFwiRGVvbnRlXCIsXG4gICAgXCJEZXJlY2tcIixcbiAgICBcIkRlcmVrXCIsXG4gICAgXCJEZXJpY2tcIixcbiAgICBcIkRlcm9uXCIsXG4gICAgXCJEZXJyaWNrXCIsXG4gICAgXCJEZXNoYXVuXCIsXG4gICAgXCJEZXNoYXduXCIsXG4gICAgXCJEZXNpcmVlXCIsXG4gICAgXCJEZXNtb25kXCIsXG4gICAgXCJEZXNzaWVcIixcbiAgICBcIkRlc3RhbnlcIixcbiAgICBcIkRlc3RpblwiLFxuICAgIFwiRGVzdGluZWVcIixcbiAgICBcIkRlc3RpbmV5XCIsXG4gICAgXCJEZXN0aW5pXCIsXG4gICAgXCJEZXN0aW55XCIsXG4gICAgXCJEZXZhblwiLFxuICAgIFwiRGV2YW50ZVwiLFxuICAgIFwiRGV2ZW5cIixcbiAgICBcIkRldmluXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRGV2b250ZVwiLFxuICAgIFwiRGV2eW5cIixcbiAgICBcIkRld2F5bmVcIixcbiAgICBcIkRld2l0dFwiLFxuICAgIFwiRGV4dGVyXCIsXG4gICAgXCJEaWFtb25kXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGlhbm5hXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRGlsbGFuXCIsXG4gICAgXCJEaWxsb25cIixcbiAgICBcIkRpbWl0cmlcIixcbiAgICBcIkRpbmFcIixcbiAgICBcIkRpbm9cIixcbiAgICBcIkRpb25cIixcbiAgICBcIkRpeGllXCIsXG4gICAgXCJEb2NrXCIsXG4gICAgXCJEb2xseVwiLFxuICAgIFwiRG9sb3Jlc1wiLFxuICAgIFwiRG9tZW5pY1wiLFxuICAgIFwiRG9tZW5pY2FcIixcbiAgICBcIkRvbWVuaWNrXCIsXG4gICAgXCJEb21lbmljb1wiLFxuICAgIFwiRG9taW5nb1wiLFxuICAgIFwiRG9taW5pY1wiLFxuICAgIFwiRG9taW5pcXVlXCIsXG4gICAgXCJEb25cIixcbiAgICBcIkRvbmFsZFwiLFxuICAgIFwiRG9uYXRvXCIsXG4gICAgXCJEb25hdm9uXCIsXG4gICAgXCJEb25uYVwiLFxuICAgIFwiRG9ubmVsbFwiLFxuICAgIFwiRG9ubmllXCIsXG4gICAgXCJEb25ueVwiLFxuICAgIFwiRG9yYVwiLFxuICAgIFwiRG9yY2FzXCIsXG4gICAgXCJEb3JpYW5cIixcbiAgICBcIkRvcmlzXCIsXG4gICAgXCJEb3JvdGhlYVwiLFxuICAgIFwiRG9yb3RoeVwiLFxuICAgIFwiRG9ycmlzXCIsXG4gICAgXCJEb3J0aGFcIixcbiAgICBcIkRvcnRoeVwiLFxuICAgIFwiRG91Z1wiLFxuICAgIFwiRG91Z2xhc1wiLFxuICAgIFwiRG92aWVcIixcbiAgICBcIkRveWxlXCIsXG4gICAgXCJEcmFrZVwiLFxuICAgIFwiRHJld1wiLFxuICAgIFwiRHVhbmVcIixcbiAgICBcIkR1ZGxleVwiLFxuICAgIFwiRHVsY2VcIixcbiAgICBcIkR1bmNhblwiLFxuICAgIFwiRHVyd2FyZFwiLFxuICAgIFwiRHVzdGluXCIsXG4gICAgXCJEdXN0eVwiLFxuICAgIFwiRHdpZ2h0XCIsXG4gICAgXCJEeWxhblwiLFxuICAgIFwiRWFybFwiLFxuICAgIFwiRWFybGVuZVwiLFxuICAgIFwiRWFybGluZVwiLFxuICAgIFwiRWFybmVzdFwiLFxuICAgIFwiRWFybmVzdGluZVwiLFxuICAgIFwiRWFzdGVyXCIsXG4gICAgXCJFYXN0b25cIixcbiAgICBcIkViYmFcIixcbiAgICBcIkVib255XCIsXG4gICAgXCJFZFwiLFxuICAgIFwiRWRhXCIsXG4gICAgXCJFZGRcIixcbiAgICBcIkVkZGllXCIsXG4gICAgXCJFZGVuXCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWRnYXJkb1wiLFxuICAgIFwiRWRpc29uXCIsXG4gICAgXCJFZG1vbmRcIixcbiAgICBcIkVkbXVuZFwiLFxuICAgIFwiRWRuYVwiLFxuICAgIFwiRWR1YXJkb1wiLFxuICAgIFwiRWR3YXJkXCIsXG4gICAgXCJFZHdhcmRvXCIsXG4gICAgXCJFZHdpblwiLFxuICAgIFwiRWR3aW5hXCIsXG4gICAgXCJFZHl0aFwiLFxuICAgIFwiRWR5dGhlXCIsXG4gICAgXCJFZmZpZVwiLFxuICAgIFwiRWZyYWluXCIsXG4gICAgXCJFZnJlblwiLFxuICAgIFwiRWlsZWVuXCIsXG4gICAgXCJFaW5hclwiLFxuICAgIFwiRWlub1wiLFxuICAgIFwiRWxhZGlvXCIsXG4gICAgXCJFbGFpbmFcIixcbiAgICBcIkVsYmVydFwiLFxuICAgIFwiRWxkYVwiLFxuICAgIFwiRWxkb25cIixcbiAgICBcIkVsZG9yYVwiLFxuICAgIFwiRWxkcmVkXCIsXG4gICAgXCJFbGRyaWRnZVwiLFxuICAgIFwiRWxlYW5vcmFcIixcbiAgICBcIkVsZWFub3JlXCIsXG4gICAgXCJFbGVhemFyXCIsXG4gICAgXCJFbGVjdGFcIixcbiAgICBcIkVsZW5hXCIsXG4gICAgXCJFbGVub3JcIixcbiAgICBcIkVsZW5vcmFcIixcbiAgICBcIkVsZW9ub3JlXCIsXG4gICAgXCJFbGZyaWVkYVwiLFxuICAgIFwiRWxpXCIsXG4gICAgXCJFbGlhblwiLFxuICAgIFwiRWxpYW5lXCIsXG4gICAgXCJFbGlhc1wiLFxuICAgIFwiRWxpZXplclwiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJFbGlub3JcIixcbiAgICBcIkVsaW5vcmVcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkVsaXNlXCIsXG4gICAgXCJFbGlzZW9cIixcbiAgICBcIkVsaXNoYVwiLFxuICAgIFwiRWxpc3NhXCIsXG4gICAgXCJFbGl6YVwiLFxuICAgIFwiRWxpemFiZXRoXCIsXG4gICAgXCJFbGxhXCIsXG4gICAgXCJFbGxlblwiLFxuICAgIFwiRWxsaWVcIixcbiAgICBcIkVsbGlvdFwiLFxuICAgIFwiRWxsaW90dFwiLFxuICAgIFwiRWxsaXNcIixcbiAgICBcIkVsbHN3b3J0aFwiLFxuICAgIFwiRWxtZXJcIixcbiAgICBcIkVsbWlyYVwiLFxuICAgIFwiRWxtb1wiLFxuICAgIFwiRWxtb3JlXCIsXG4gICAgXCJFbG5hXCIsXG4gICAgXCJFbG5vcmFcIixcbiAgICBcIkVsb2R5XCIsXG4gICAgXCJFbG9pc2FcIixcbiAgICBcIkVsb2lzZVwiLFxuICAgIFwiRWxvdWlzZVwiLFxuICAgIFwiRWxveVwiLFxuICAgIFwiRWxyb3lcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVsc2VcIixcbiAgICBcIkVsc2llXCIsXG4gICAgXCJFbHRhXCIsXG4gICAgXCJFbHRvblwiLFxuICAgIFwiRWx2YVwiLFxuICAgIFwiRWx2ZXJhXCIsXG4gICAgXCJFbHZpZVwiLFxuICAgIFwiRWx2aXNcIixcbiAgICBcIkVsd2luXCIsXG4gICAgXCJFbHd5blwiLFxuICAgIFwiRWx5c2VcIixcbiAgICBcIkVseXNzYVwiLFxuICAgIFwiRWx6YVwiLFxuICAgIFwiRW1hbnVlbFwiLFxuICAgIFwiRW1lbGlhXCIsXG4gICAgXCJFbWVsaWVcIixcbiAgICBcIkVtZWx5XCIsXG4gICAgXCJFbWVyYWxkXCIsXG4gICAgXCJFbWVyc29uXCIsXG4gICAgXCJFbWVyeVwiLFxuICAgIFwiRW1pZVwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiRW1pbGVcIixcbiAgICBcIkVtaWxpYVwiLFxuICAgIFwiRW1pbGlhbm9cIixcbiAgICBcIkVtaWxpZVwiLFxuICAgIFwiRW1pbGlvXCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiRW1tYWxlZVwiLFxuICAgIFwiRW1tYW51ZWxcIixcbiAgICBcIkVtbWFudWVsbGVcIixcbiAgICBcIkVtbWV0XCIsXG4gICAgXCJFbW1ldHRcIixcbiAgICBcIkVtbWllXCIsXG4gICAgXCJFbW1pdHRcIixcbiAgICBcIkVtbXlcIixcbiAgICBcIkVtb3J5XCIsXG4gICAgXCJFbmFcIixcbiAgICBcIkVuaWRcIixcbiAgICBcIkVub2NoXCIsXG4gICAgXCJFbm9sYVwiLFxuICAgIFwiRW5vc1wiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFbnJpcXVlXCIsXG4gICAgXCJFcGhyYWltXCIsXG4gICAgXCJFcmFcIixcbiAgICBcIkVyaWJlcnRvXCIsXG4gICAgXCJFcmljXCIsXG4gICAgXCJFcmljYVwiLFxuICAgIFwiRXJpY2hcIixcbiAgICBcIkVyaWNrXCIsXG4gICAgXCJFcmlja2FcIixcbiAgICBcIkVyaWtcIixcbiAgICBcIkVyaWthXCIsXG4gICAgXCJFcmluXCIsXG4gICAgXCJFcmxpbmdcIixcbiAgICBcIkVybmFcIixcbiAgICBcIkVybmVzdFwiLFxuICAgIFwiRXJuZXN0aW5hXCIsXG4gICAgXCJFcm5lc3RpbmVcIixcbiAgICBcIkVybmVzdG9cIixcbiAgICBcIkVybmllXCIsXG4gICAgXCJFcnZpblwiLFxuICAgIFwiRXJ3aW5cIixcbiAgICBcIkVyeW5cIixcbiAgICBcIkVzbWVyYWxkYVwiLFxuICAgIFwiRXNwZXJhbnphXCIsXG4gICAgXCJFc3RhXCIsXG4gICAgXCJFc3RlYmFuXCIsXG4gICAgXCJFc3RlZmFuaWFcIixcbiAgICBcIkVzdGVsXCIsXG4gICAgXCJFc3RlbGxcIixcbiAgICBcIkVzdGVsbGFcIixcbiAgICBcIkVzdGVsbGVcIixcbiAgICBcIkVzdGV2YW5cIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRXN0cmVsbGFcIixcbiAgICBcIkV0aGFcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJFdGhlbFwiLFxuICAgIFwiRXRoZWx5blwiLFxuICAgIFwiRXRoeWxcIixcbiAgICBcIkV0dGllXCIsXG4gICAgXCJFdWRvcmFcIixcbiAgICBcIkV1Z2VuZVwiLFxuICAgIFwiRXVnZW5pYVwiLFxuICAgIFwiRXVsYVwiLFxuICAgIFwiRXVsYWhcIixcbiAgICBcIkV1bGFsaWFcIixcbiAgICBcIkV1bmFcIixcbiAgICBcIkV1bmljZVwiLFxuICAgIFwiRXVzZWJpb1wiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJFdmFseW5cIixcbiAgICBcIkV2YW5cIixcbiAgICBcIkV2YW5nZWxpbmVcIixcbiAgICBcIkV2YW5zXCIsXG4gICAgXCJFdmVcIixcbiAgICBcIkV2ZWxpbmVcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiRXZlcmFyZG9cIixcbiAgICBcIkV2ZXJldHRcIixcbiAgICBcIkV2ZXJldHRlXCIsXG4gICAgXCJFdmVydFwiLFxuICAgIFwiRXZpZVwiLFxuICAgIFwiRXdhbGRcIixcbiAgICBcIkV3ZWxsXCIsXG4gICAgXCJFemVraWVsXCIsXG4gICAgXCJFemVxdWllbFwiLFxuICAgIFwiRXpyYVwiLFxuICAgIFwiRmFiaWFuXCIsXG4gICAgXCJGYWJpb2xhXCIsXG4gICAgXCJGYWVcIixcbiAgICBcIkZhbm5pZVwiLFxuICAgIFwiRmFubnlcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmF1c3Rpbm9cIixcbiAgICBcIkZhdXN0b1wiLFxuICAgIFwiRmF2aWFuXCIsXG4gICAgXCJGYXlcIixcbiAgICBcIkZheWVcIixcbiAgICBcIkZlZGVyaWNvXCIsXG4gICAgXCJGZWxpY2lhXCIsXG4gICAgXCJGZWxpY2l0YVwiLFxuICAgIFwiRmVsaWNpdHlcIixcbiAgICBcIkZlbGlwYVwiLFxuICAgIFwiRmVsaXBlXCIsXG4gICAgXCJGZWxpeFwiLFxuICAgIFwiRmVsdG9uXCIsXG4gICAgXCJGZXJtaW5cIixcbiAgICBcIkZlcm5cIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGZXJuZVwiLFxuICAgIFwiRmlkZWxcIixcbiAgICBcIkZpbGliZXJ0b1wiLFxuICAgIFwiRmlsb21lbmFcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZpb25hXCIsXG4gICAgXCJGbGF2aWVcIixcbiAgICBcIkZsYXZpb1wiLFxuICAgIFwiRmxldGFcIixcbiAgICBcIkZsZXRjaGVyXCIsXG4gICAgXCJGbG9cIixcbiAgICBcIkZsb3JlbmNlXCIsXG4gICAgXCJGbG9yZW5jaW9cIixcbiAgICBcIkZsb3JpYW5cIixcbiAgICBcIkZsb3JpZGFcIixcbiAgICBcIkZsb3JpbmVcIixcbiAgICBcIkZsb3NzaWVcIixcbiAgICBcIkZsb3lcIixcbiAgICBcIkZsb3lkXCIsXG4gICAgXCJGb3JkXCIsXG4gICAgXCJGb3Jlc3RcIixcbiAgICBcIkZvcnJlc3RcIixcbiAgICBcIkZvc3RlclwiLFxuICAgIFwiRnJhbmNlc1wiLFxuICAgIFwiRnJhbmNlc2NhXCIsXG4gICAgXCJGcmFuY2VzY29cIixcbiAgICBcIkZyYW5jaXNcIixcbiAgICBcIkZyYW5jaXNjYVwiLFxuICAgIFwiRnJhbmNpc2NvXCIsXG4gICAgXCJGcmFuY29cIixcbiAgICBcIkZyYW5rXCIsXG4gICAgXCJGcmFua2llXCIsXG4gICAgXCJGcmFuelwiLFxuICAgIFwiRnJlZFwiLFxuICAgIFwiRnJlZGFcIixcbiAgICBcIkZyZWRkaWVcIixcbiAgICBcIkZyZWRkeVwiLFxuICAgIFwiRnJlZGVyaWNcIixcbiAgICBcIkZyZWRlcmlja1wiLFxuICAgIFwiRnJlZGVyaWtcIixcbiAgICBcIkZyZWRlcmlxdWVcIixcbiAgICBcIkZyZWRyaWNrXCIsXG4gICAgXCJGcmVkeVwiLFxuICAgIFwiRnJlZWRhXCIsXG4gICAgXCJGcmVlbWFuXCIsXG4gICAgXCJGcmVpZGFcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJGcmllZGFcIixcbiAgICBcIkZyaWVkcmljaFwiLFxuICAgIFwiRnJpdHpcIixcbiAgICBcIkZ1cm1hblwiLFxuICAgIFwiR2FiZVwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2FicmllbGxhXCIsXG4gICAgXCJHYWJyaWVsbGVcIixcbiAgICBcIkdhZXRhbm9cIixcbiAgICBcIkdhZ2VcIixcbiAgICBcIkdhaWxcIixcbiAgICBcIkdhcmRuZXJcIixcbiAgICBcIkdhcmV0dFwiLFxuICAgIFwiR2FyZmllbGRcIixcbiAgICBcIkdhcmxhbmRcIixcbiAgICBcIkdhcm5ldFwiLFxuICAgIFwiR2FybmV0dFwiLFxuICAgIFwiR2FycmV0XCIsXG4gICAgXCJHYXJyZXR0XCIsXG4gICAgXCJHYXJyaWNrXCIsXG4gICAgXCJHYXJyaXNvblwiLFxuICAgIFwiR2FycnlcIixcbiAgICBcIkdhcnRoXCIsXG4gICAgXCJHYXN0b25cIixcbiAgICBcIkdhdmluXCIsXG4gICAgXCJHYXlcIixcbiAgICBcIkdheWxlXCIsXG4gICAgXCJHYXlsb3JkXCIsXG4gICAgXCJHZW5lXCIsXG4gICAgXCJHZW5lcmFsXCIsXG4gICAgXCJHZW5lc2lzXCIsXG4gICAgXCJHZW5ldmlldmVcIixcbiAgICBcIkdlbm5hcm9cIixcbiAgICBcIkdlbm92ZXZhXCIsXG4gICAgXCJHZW9cIixcbiAgICBcIkdlb2ZmcmV5XCIsXG4gICAgXCJHZW9yZ2VcIixcbiAgICBcIkdlb3JnZXR0ZVwiLFxuICAgIFwiR2VvcmdpYW5hXCIsXG4gICAgXCJHZW9yZ2lhbm5hXCIsXG4gICAgXCJHZW92YW5uaVwiLFxuICAgIFwiR2VvdmFubnlcIixcbiAgICBcIkdlb3ZhbnlcIixcbiAgICBcIkdlcmFsZFwiLFxuICAgIFwiR2VyYWxkaW5lXCIsXG4gICAgXCJHZXJhcmRcIixcbiAgICBcIkdlcmFyZG9cIixcbiAgICBcIkdlcmRhXCIsXG4gICAgXCJHZXJoYXJkXCIsXG4gICAgXCJHZXJtYWluZVwiLFxuICAgIFwiR2VybWFuXCIsXG4gICAgXCJHZXJyeVwiLFxuICAgIFwiR2Vyc29uXCIsXG4gICAgXCJHZXJ0cnVkZVwiLFxuICAgIFwiR2lhXCIsXG4gICAgXCJHaWFubmlcIixcbiAgICBcIkdpZGVvblwiLFxuICAgIFwiR2lsYmVydFwiLFxuICAgIFwiR2lsYmVydG9cIixcbiAgICBcIkdpbGRhXCIsXG4gICAgXCJHaWxlc1wiLFxuICAgIFwiR2lsbGlhblwiLFxuICAgIFwiR2luYVwiLFxuICAgIFwiR2lub1wiLFxuICAgIFwiR2lvdmFuaVwiLFxuICAgIFwiR2lvdmFubmFcIixcbiAgICBcIkdpb3Zhbm5pXCIsXG4gICAgXCJHaW92YW5ueVwiLFxuICAgIFwiR2lzc2VsbGVcIixcbiAgICBcIkdpdXNlcHBlXCIsXG4gICAgXCJHbGFkeWNlXCIsXG4gICAgXCJHbGFkeXNcIixcbiAgICBcIkdsZW5cIixcbiAgICBcIkdsZW5kYVwiLFxuICAgIFwiR2xlbm5hXCIsXG4gICAgXCJHbGVubmllXCIsXG4gICAgXCJHbG9yaWFcIixcbiAgICBcIkdvZGZyZXlcIixcbiAgICBcIkdvbGRhXCIsXG4gICAgXCJHb2xkZW5cIixcbiAgICBcIkdvbnphbG9cIixcbiAgICBcIkdvcmRvblwiLFxuICAgIFwiR3JhY2VcIixcbiAgICBcIkdyYWNpZVwiLFxuICAgIFwiR3JhY2llbGFcIixcbiAgICBcIkdyYWR5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmFudmlsbGVcIixcbiAgICBcIkdyYXljZVwiLFxuICAgIFwiR3JheXNvblwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWdcIixcbiAgICBcIkdyZWdnXCIsXG4gICAgXCJHcmVnb3JpYVwiLFxuICAgIFwiR3JlZ29yaW9cIixcbiAgICBcIkdyZWdvcnlcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJHcmV0Y2hlblwiLFxuICAgIFwiR3JleXNvblwiLFxuICAgIFwiR3JpZmZpblwiLFxuICAgIFwiR3JvdmVyXCIsXG4gICAgXCJHdWFkYWx1cGVcIixcbiAgICBcIkd1ZHJ1blwiLFxuICAgIFwiR3VpZG9cIixcbiAgICBcIkd1aWxsZXJtb1wiLFxuICAgIFwiR3Vpc2VwcGVcIixcbiAgICBcIkd1bm5hclwiLFxuICAgIFwiR3VubmVyXCIsXG4gICAgXCJHdXNcIixcbiAgICBcIkd1c3NpZVwiLFxuICAgIFwiR3VzdFwiLFxuICAgIFwiR3VzdGF2ZVwiLFxuICAgIFwiR3V5XCIsXG4gICAgXCJHd2VuXCIsXG4gICAgXCJHd2VuZG9seW5cIixcbiAgICBcIkhhZGxleVwiLFxuICAgIFwiSGFpbGVlXCIsXG4gICAgXCJIYWlsZXlcIixcbiAgICBcIkhhaWxpZVwiLFxuICAgIFwiSGFsXCIsXG4gICAgXCJIYWxlaWdoXCIsXG4gICAgXCJIYWxleVwiLFxuICAgIFwiSGFsaWVcIixcbiAgICBcIkhhbGxlXCIsXG4gICAgXCJIYWxsaWVcIixcbiAgICBcIkhhbmtcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIkhhbnNcIixcbiAgICBcIkhhcmR5XCIsXG4gICAgXCJIYXJsZXlcIixcbiAgICBcIkhhcm1vblwiLFxuICAgIFwiSGFybW9ueVwiLFxuICAgIFwiSGFyb2xkXCIsXG4gICAgXCJIYXJyaXNvblwiLFxuICAgIFwiSGFycnlcIixcbiAgICBcIkhhcnZleVwiLFxuICAgIFwiSGFza2VsbFwiLFxuICAgIFwiSGFzc2FuXCIsXG4gICAgXCJIYXNzaWVcIixcbiAgICBcIkhhdHRpZVwiLFxuICAgIFwiSGF2ZW5cIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiSGF5bGVlXCIsXG4gICAgXCJIYXlsZXlcIixcbiAgICBcIkhheWxpZVwiLFxuICAgIFwiSGF6ZWxcIixcbiAgICBcIkhhemxlXCIsXG4gICAgXCJIZWF0aFwiLFxuICAgIFwiSGVhdGhlclwiLFxuICAgIFwiSGVhdmVuXCIsXG4gICAgXCJIZWJlclwiLFxuICAgIFwiSGVjdG9yXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiSGVsZW5cIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJIZWxnYVwiLFxuICAgIFwiSGVsbGVuXCIsXG4gICAgXCJIZWxtZXJcIixcbiAgICBcIkhlbG9pc2VcIixcbiAgICBcIkhlbmRlcnNvblwiLFxuICAgIFwiSGVucmlcIixcbiAgICBcIkhlbnJpZXR0ZVwiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkhlcmJlcnRcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWluYVwiLFxuICAgIFwiSGVybWluaWFcIixcbiAgICBcIkhlcm1pbmlvXCIsXG4gICAgXCJIZXJzaGVsXCIsXG4gICAgXCJIZXJ0YVwiLFxuICAgIFwiSGVydGhhXCIsXG4gICAgXCJIZXN0ZXJcIixcbiAgICBcIkhldHRpZVwiLFxuICAgIFwiSGlsYXJpb1wiLFxuICAgIFwiSGlsYmVydFwiLFxuICAgIFwiSGlsZGFcIixcbiAgICBcIkhpbGRlZ2FyZFwiLFxuICAgIFwiSGlsbGFyZFwiLFxuICAgIFwiSGlsbGFyeVwiLFxuICAgIFwiSGlsbWFcIixcbiAgICBcIkhpbHRvblwiLFxuICAgIFwiSGlwb2xpdG9cIixcbiAgICBcIkhpcmFtXCIsXG4gICAgXCJIb2JhcnRcIixcbiAgICBcIkhvbGRlblwiLFxuICAgIFwiSG9sbGllXCIsXG4gICAgXCJIb2xsaXNcIixcbiAgICBcIkhvbGx5XCIsXG4gICAgXCJIb3BlXCIsXG4gICAgXCJIb3JhY2VcIixcbiAgICBcIkhvcmFjaW9cIixcbiAgICBcIkhvcnRlbnNlXCIsXG4gICAgXCJIb3NlYVwiLFxuICAgIFwiSG91c3RvblwiLFxuICAgIFwiSG93YXJkXCIsXG4gICAgXCJIb3dlbGxcIixcbiAgICBcIkhveXRcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWdoXCIsXG4gICAgXCJIdWxkYVwiLFxuICAgIFwiSHVtYmVydG9cIixcbiAgICBcIkh1bnRlclwiLFxuICAgIFwiSHltYW5cIixcbiAgICBcIklhblwiLFxuICAgIFwiSWJyYWhpbVwiLFxuICAgIFwiSWNpZVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJJZGVsbFwiLFxuICAgIFwiSWRlbGxhXCIsXG4gICAgXCJJZ25hY2lvXCIsXG4gICAgXCJJZ25hdGl1c1wiLFxuICAgIFwiSWtlXCIsXG4gICAgXCJJbGFcIixcbiAgICBcIklsZW5lXCIsXG4gICAgXCJJbGlhbmFcIixcbiAgICBcIkltYVwiLFxuICAgIFwiSW1hbmlcIixcbiAgICBcIkltZWxkYVwiLFxuICAgIFwiSW1tYW51ZWxcIixcbiAgICBcIkltb2dlbmVcIixcbiAgICBcIkluZXNcIixcbiAgICBcIklybWFcIixcbiAgICBcIklydmluZ1wiLFxuICAgIFwiSXJ3aW5cIixcbiAgICBcIklzYWFjXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzYWJlbGxcIixcbiAgICBcIklzYWJlbGxhXCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiSXNhY1wiLFxuICAgIFwiSXNhZG9yZVwiLFxuICAgIFwiSXNhaVwiLFxuICAgIFwiSXNhaWFoXCIsXG4gICAgXCJJc2FpYXNcIixcbiAgICBcIklzaWRyb1wiLFxuICAgIFwiSXNtYWVsXCIsXG4gICAgXCJJc29iZWxcIixcbiAgICBcIklzb21cIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiSXNzYWNcIixcbiAgICBcIkl0emVsXCIsXG4gICAgXCJJdmFcIixcbiAgICBcIkl2YWhcIixcbiAgICBcIkl2b3J5XCIsXG4gICAgXCJJdnlcIixcbiAgICBcIkl6YWJlbGxhXCIsXG4gICAgXCJJemFpYWhcIixcbiAgICBcIkphYmFyaVwiLFxuICAgIFwiSmFjZVwiLFxuICAgIFwiSmFjZXlcIixcbiAgICBcIkphY2ludGhlXCIsXG4gICAgXCJKYWNpbnRvXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYWNrZWxpbmVcIixcbiAgICBcIkphY2tpZVwiLFxuICAgIFwiSmFja2x5blwiLFxuICAgIFwiSmFja3NvblwiLFxuICAgIFwiSmFja3lcIixcbiAgICBcIkphY2x5blwiLFxuICAgIFwiSmFjcXVlbHluXCIsXG4gICAgXCJKYWNxdWVzXCIsXG4gICAgXCJKYWN5bnRoZVwiLFxuICAgIFwiSmFkYVwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiSmFkZW5cIixcbiAgICBcIkphZG9uXCIsXG4gICAgXCJKYWR5blwiLFxuICAgIFwiSmFlZGVuXCIsXG4gICAgXCJKYWlkYVwiLFxuICAgIFwiSmFpZGVuXCIsXG4gICAgXCJKYWlseW5cIixcbiAgICBcIkphaW1lXCIsXG4gICAgXCJKYWlyb1wiLFxuICAgIFwiSmFrYXlsYVwiLFxuICAgIFwiSmFrZVwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIkphbGVlbFwiLFxuICAgIFwiSmFsZW5cIixcbiAgICBcIkphbG9uXCIsXG4gICAgXCJKYWx5blwiLFxuICAgIFwiSmFtYWFsXCIsXG4gICAgXCJKYW1hbFwiLFxuICAgIFwiSmFtYXJcIixcbiAgICBcIkphbWFyY3VzXCIsXG4gICAgXCJKYW1lbFwiLFxuICAgIFwiSmFtZXNvblwiLFxuICAgIFwiSmFtZXlcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW1pbFwiLFxuICAgIFwiSmFtaXJcIixcbiAgICBcIkphbWlzb25cIixcbiAgICBcIkphbW1pZVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYW5hXCIsXG4gICAgXCJKYW5hZVwiLFxuICAgIFwiSmFuZVwiLFxuICAgIFwiSmFuZWxsZVwiLFxuICAgIFwiSmFuZXNzYVwiLFxuICAgIFwiSmFuZXRcIixcbiAgICBcIkphbmljZVwiLFxuICAgIFwiSmFuaWNrXCIsXG4gICAgXCJKYW5pZVwiLFxuICAgIFwiSmFuaXNcIixcbiAgICBcIkphbml5YVwiLFxuICAgIFwiSmFubmllXCIsXG4gICAgXCJKYW55XCIsXG4gICAgXCJKYXF1YW5cIixcbiAgICBcIkphcXVlbGluXCIsXG4gICAgXCJKYXF1ZWxpbmVcIixcbiAgICBcIkphcmVkXCIsXG4gICAgXCJKYXJlblwiLFxuICAgIFwiSmFyb2RcIixcbiAgICBcIkphcm9uXCIsXG4gICAgXCJKYXJyZWRcIixcbiAgICBcIkphcnJlbGxcIixcbiAgICBcIkphcnJldFwiLFxuICAgIFwiSmFycmV0dFwiLFxuICAgIFwiSmFycm9kXCIsXG4gICAgXCJKYXJ2aXNcIixcbiAgICBcIkphc2VuXCIsXG4gICAgXCJKYXNtaW5cIixcbiAgICBcIkphc29uXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkphdW5pdGFcIixcbiAgICBcIkphdmllclwiLFxuICAgIFwiSmF2b25cIixcbiAgICBcIkphdm9udGVcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSmF5Y2VcIixcbiAgICBcIkpheWNlZVwiLFxuICAgIFwiSmF5ZGFcIixcbiAgICBcIkpheWRlXCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIkpheWRvblwiLFxuICAgIFwiSmF5bGFuXCIsXG4gICAgXCJKYXlsZW5cIixcbiAgICBcIkpheWxpblwiLFxuICAgIFwiSmF5bG9uXCIsXG4gICAgXCJKYXltZVwiLFxuICAgIFwiSmF5bmVcIixcbiAgICBcIkpheXNvblwiLFxuICAgIFwiSmF6bHluXCIsXG4gICAgXCJKYXptaW5cIixcbiAgICBcIkphem15blwiLFxuICAgIFwiSmF6bXluZVwiLFxuICAgIFwiSmVhblwiLFxuICAgIFwiSmVhbmV0dGVcIixcbiAgICBcIkplYW5pZVwiLFxuICAgIFwiSmVhbm5lXCIsXG4gICAgXCJKZWRcIixcbiAgICBcIkplZGVkaWFoXCIsXG4gICAgXCJKZWRpZGlhaFwiLFxuICAgIFwiSmVmZlwiLFxuICAgIFwiSmVmZmVyZXlcIixcbiAgICBcIkplZmZlcnlcIixcbiAgICBcIkplZmZyZXlcIixcbiAgICBcIkplZmZyeVwiLFxuICAgIFwiSmVuYVwiLFxuICAgIFwiSmVuaWZlclwiLFxuICAgIFwiSmVubmllXCIsXG4gICAgXCJKZW5uaWZlclwiLFxuICAgIFwiSmVubmluZ3NcIixcbiAgICBcIkplbm55ZmVyXCIsXG4gICAgXCJKZW5zZW5cIixcbiAgICBcIkplcmFkXCIsXG4gICAgXCJKZXJhbGRcIixcbiAgICBcIkplcmFtaWVcIixcbiAgICBcIkplcmFteVwiLFxuICAgIFwiSmVyZWxcIixcbiAgICBcIkplcmVtaWVcIixcbiAgICBcIkplcmVteVwiLFxuICAgIFwiSmVybWFpblwiLFxuICAgIFwiSmVybWFpbmVcIixcbiAgICBcIkplcm1leVwiLFxuICAgIFwiSmVyb2RcIixcbiAgICBcIkplcm9tZVwiLFxuICAgIFwiSmVyb215XCIsXG4gICAgXCJKZXJyZWxsXCIsXG4gICAgXCJKZXJyb2RcIixcbiAgICBcIkplcnJvbGRcIixcbiAgICBcIkplcnJ5XCIsXG4gICAgXCJKZXNzXCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiSmVzc2ljYVwiLFxuICAgIFwiSmVzc2llXCIsXG4gICAgXCJKZXNzaWthXCIsXG4gICAgXCJKZXNzeVwiLFxuICAgIFwiSmVzc3ljYVwiLFxuICAgIFwiSmVzdXNcIixcbiAgICBcIkpldHRcIixcbiAgICBcIkpldHRpZVwiLFxuICAgIFwiSmV2b25cIixcbiAgICBcIkpld2VsXCIsXG4gICAgXCJKZXdlbGxcIixcbiAgICBcIkppbGxpYW5cIixcbiAgICBcIkppbW1pZVwiLFxuICAgIFwiSmltbXlcIixcbiAgICBcIkpvXCIsXG4gICAgXCJKb2FuXCIsXG4gICAgXCJKb2FuYVwiLFxuICAgIFwiSm9hbmllXCIsXG4gICAgXCJKb2FubmVcIixcbiAgICBcIkpvYW5uaWVcIixcbiAgICBcIkpvYW5ueVwiLFxuICAgIFwiSm9hbnlcIixcbiAgICBcIkpvYXF1aW5cIixcbiAgICBcIkpvY2VseW5cIixcbiAgICBcIkpvZGllXCIsXG4gICAgXCJKb2R5XCIsXG4gICAgXCJKb2VcIixcbiAgICBcIkpvZWxcIixcbiAgICBcIkpvZWxsZVwiLFxuICAgIFwiSm9lc3BoXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb2hhblwiLFxuICAgIFwiSm9oYW5uXCIsXG4gICAgXCJKb2hhbm5hXCIsXG4gICAgXCJKb2hhdGhhblwiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9obmF0aGFuXCIsXG4gICAgXCJKb2huYXRob25cIixcbiAgICBcIkpvaG5uaWVcIixcbiAgICBcIkpvaG5ueVwiLFxuICAgIFwiSm9obnBhdWxcIixcbiAgICBcIkpvaG5zb25cIixcbiAgICBcIkpvbGllXCIsXG4gICAgXCJKb25cIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJKb25hdGFuXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiSm9uYXRob25cIixcbiAgICBcIkpvcmRhblwiLFxuICAgIFwiSm9yZGFuZVwiLFxuICAgIFwiSm9yZGlcIixcbiAgICBcIkpvcmRvblwiLFxuICAgIFwiSm9yZHlcIixcbiAgICBcIkpvcmR5blwiLFxuICAgIFwiSm9yZ2VcIixcbiAgICBcIkpvc2VcIixcbiAgICBcIkpvc2VmYVwiLFxuICAgIFwiSm9zZWZpbmFcIixcbiAgICBcIkpvc2VwaFwiLFxuICAgIFwiSm9zZXBoaW5lXCIsXG4gICAgXCJKb3NoXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIkpvc2h1YWhcIixcbiAgICBcIkpvc2lhaFwiLFxuICAgIFwiSm9zaWFuZVwiLFxuICAgIFwiSm9zaWFubmVcIixcbiAgICBcIkpvc2llXCIsXG4gICAgXCJKb3N1ZVwiLFxuICAgIFwiSm92YW5cIixcbiAgICBcIkpvdmFuaVwiLFxuICAgIFwiSm92YW5ueVwiLFxuICAgIFwiSm92YW55XCIsXG4gICAgXCJKb3lcIixcbiAgICBcIkpveWNlXCIsXG4gICAgXCJKdWFuYVwiLFxuICAgIFwiSnVhbml0YVwiLFxuICAgIFwiSnVkYWhcIixcbiAgICBcIkp1ZGRcIixcbiAgICBcIkp1ZGVcIixcbiAgICBcIkp1ZGdlXCIsXG4gICAgXCJKdWRzb25cIixcbiAgICBcIkp1ZHlcIixcbiAgICBcIkp1bGVzXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJKdWxpYW5hXCIsXG4gICAgXCJKdWxpYW5uZVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiSnVsaWV0XCIsXG4gICAgXCJKdWxpb1wiLFxuICAgIFwiSnVsaXVzXCIsXG4gICAgXCJKdW5lXCIsXG4gICAgXCJKdW5pb3JcIixcbiAgICBcIkp1bml1c1wiLFxuICAgIFwiSnVzdGVuXCIsXG4gICAgXCJKdXN0aWNlXCIsXG4gICAgXCJKdXN0aW5hXCIsXG4gICAgXCJKdXN0aW5lXCIsXG4gICAgXCJKdXN0b25cIixcbiAgICBcIkp1c3R1c1wiLFxuICAgIFwiSnVzdHluXCIsXG4gICAgXCJKdXZlbmFsXCIsXG4gICAgXCJKdXdhblwiLFxuICAgIFwiS2FjZXlcIixcbiAgICBcIkthY2lcIixcbiAgICBcIkthY2llXCIsXG4gICAgXCJLYWRlXCIsXG4gICAgXCJLYWRlblwiLFxuICAgIFwiS2FkaW5cIixcbiAgICBcIkthZWxhXCIsXG4gICAgXCJLYWVseW5cIixcbiAgICBcIkthaWFcIixcbiAgICBcIkthaWxlZVwiLFxuICAgIFwiS2FpbGV5XCIsXG4gICAgXCJLYWlseW5cIixcbiAgICBcIkthaXRsaW5cIixcbiAgICBcIkthaXRseW5cIixcbiAgICBcIkthbGVcIixcbiAgICBcIkthbGViXCIsXG4gICAgXCJLYWxlaWdoXCIsXG4gICAgXCJLYWxleVwiLFxuICAgIFwiS2FsaVwiLFxuICAgIFwiS2FsbGllXCIsXG4gICAgXCJLYW1lcm9uXCIsXG4gICAgXCJLYW1pbGxlXCIsXG4gICAgXCJLYW1yZW5cIixcbiAgICBcIkthbXJvblwiLFxuICAgIFwiS2FtcnluXCIsXG4gICAgXCJLYW5lXCIsXG4gICAgXCJLYXJhXCIsXG4gICAgXCJLYXJlZW1cIixcbiAgICBcIkthcmVsbGVcIixcbiAgICBcIkthcmVuXCIsXG4gICAgXCJLYXJpXCIsXG4gICAgXCJLYXJpYW5lXCIsXG4gICAgXCJLYXJpYW5uZVwiLFxuICAgIFwiS2FyaW5hXCIsXG4gICAgXCJLYXJpbmVcIixcbiAgICBcIkthcmxcIixcbiAgICBcIkthcmxlZVwiLFxuICAgIFwiS2FybGV5XCIsXG4gICAgXCJLYXJsaVwiLFxuICAgIFwiS2FybGllXCIsXG4gICAgXCJLYXJvbGFublwiLFxuICAgIFwiS2Fyc29uXCIsXG4gICAgXCJLYXNhbmRyYVwiLFxuICAgIFwiS2FzZXlcIixcbiAgICBcIkthc3NhbmRyYVwiLFxuICAgIFwiS2F0YXJpbmFcIixcbiAgICBcIkthdGVsaW5cIixcbiAgICBcIkthdGVseW5cIixcbiAgICBcIkthdGVseW5uXCIsXG4gICAgXCJLYXRoYXJpbmFcIixcbiAgICBcIkthdGhlcmluZVwiLFxuICAgIFwiS2F0aGVyeW5cIixcbiAgICBcIkthdGhsZWVuXCIsXG4gICAgXCJLYXRobHluXCIsXG4gICAgXCJLYXRocnluXCIsXG4gICAgXCJLYXRocnluZVwiLFxuICAgIFwiS2F0bHluXCIsXG4gICAgXCJLYXRseW5uXCIsXG4gICAgXCJLYXRyaW5hXCIsXG4gICAgXCJLYXRyaW5lXCIsXG4gICAgXCJLYXR0aWVcIixcbiAgICBcIkthdm9uXCIsXG4gICAgXCJLYXlcIixcbiAgICBcIktheWFcIixcbiAgICBcIktheWNlZVwiLFxuICAgIFwiS2F5ZGVuXCIsXG4gICAgXCJLYXlsYVwiLFxuICAgIFwiS2F5bGFoXCIsXG4gICAgXCJLYXlsZWVcIixcbiAgICBcIktheWxlaWdoXCIsXG4gICAgXCJLYXlsZXlcIixcbiAgICBcIktheWxpXCIsXG4gICAgXCJLYXlsaWVcIixcbiAgICBcIktheWxpblwiLFxuICAgIFwiS2VhZ2FuXCIsXG4gICAgXCJLZWFudVwiLFxuICAgIFwiS2VhcmFcIixcbiAgICBcIktlYXRvblwiLFxuICAgIFwiS2VlZ2FuXCIsXG4gICAgXCJLZWVsZXlcIixcbiAgICBcIktlZWx5XCIsXG4gICAgXCJLZWVuYW5cIixcbiAgICBcIktlaXJhXCIsXG4gICAgXCJLZWl0aFwiLFxuICAgIFwiS2VsbGVuXCIsXG4gICAgXCJLZWxsZXlcIixcbiAgICBcIktlbGxpXCIsXG4gICAgXCJLZWxsaWVcIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLZWxzaVwiLFxuICAgIFwiS2Vsc2llXCIsXG4gICAgXCJLZWx0b25cIixcbiAgICBcIktlbHZpblwiLFxuICAgIFwiS2VuXCIsXG4gICAgXCJLZW5kYWxsXCIsXG4gICAgXCJLZW5kcmFcIixcbiAgICBcIktlbmRyaWNrXCIsXG4gICAgXCJLZW5uYVwiLFxuICAgIFwiS2VubmVkaVwiLFxuICAgIFwiS2VubmVkeVwiLFxuICAgIFwiS2VubmV0aFwiLFxuICAgIFwiS2Vubml0aFwiLFxuICAgIFwiS2VubnlcIixcbiAgICBcIktlbnRvblwiLFxuICAgIFwiS2VueWFcIixcbiAgICBcIktlbnlhdHRhXCIsXG4gICAgXCJLZW55b25cIixcbiAgICBcIktlb25cIixcbiAgICBcIktlc2hhdW5cIixcbiAgICBcIktlc2hhd25cIixcbiAgICBcIktldmVuXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiS2V2b25cIixcbiAgICBcIktleW9uXCIsXG4gICAgXCJLZXlzaGF3blwiLFxuICAgIFwiS2hhbGlkXCIsXG4gICAgXCJLaGFsaWxcIixcbiAgICBcIktpYW5cIixcbiAgICBcIktpYW5hXCIsXG4gICAgXCJLaWFubmFcIixcbiAgICBcIktpYXJhXCIsXG4gICAgXCJLaWFycmFcIixcbiAgICBcIktpZWxcIixcbiAgICBcIktpZXJhXCIsXG4gICAgXCJLaWVyYW5cIixcbiAgICBcIktpbGV5XCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWJlcmx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJLaXBcIixcbiAgICBcIktpcmFcIixcbiAgICBcIktpcmtcIixcbiAgICBcIktpcnN0ZW5cIixcbiAgICBcIktpcnN0aW5cIixcbiAgICBcIktpdHR5XCIsXG4gICAgXCJLb2JlXCIsXG4gICAgXCJLb2J5XCIsXG4gICAgXCJLb2R5XCIsXG4gICAgXCJLb2xieVwiLFxuICAgIFwiS29sZVwiLFxuICAgIFwiS29yYmluXCIsXG4gICAgXCJLb3JleVwiLFxuICAgIFwiS29yeVwiLFxuICAgIFwiS3JhaWdcIixcbiAgICBcIktyaXNcIixcbiAgICBcIktyaXN0YVwiLFxuICAgIFwiS3Jpc3RpYW5cIixcbiAgICBcIktyaXN0aW5cIixcbiAgICBcIktyaXN0aW5hXCIsXG4gICAgXCJLcmlzdG9mZXJcIixcbiAgICBcIktyaXN0b2ZmZXJcIixcbiAgICBcIktyaXN0b3BoZXJcIixcbiAgICBcIktyaXN0eVwiLFxuICAgIFwiS3J5c3RhbFwiLFxuICAgIFwiS3J5c3RlbFwiLFxuICAgIFwiS3J5c3RpbmFcIixcbiAgICBcIkt1cnRcIixcbiAgICBcIkt1cnRpc1wiLFxuICAgIFwiS3lsYVwiLFxuICAgIFwiS3lsZVwiLFxuICAgIFwiS3lsZWVcIixcbiAgICBcIkt5bGVpZ2hcIixcbiAgICBcIkt5bGVyXCIsXG4gICAgXCJLeWxpZVwiLFxuICAgIFwiS3lyYVwiLFxuICAgIFwiTGFjZXlcIixcbiAgICBcIkxhY3lcIixcbiAgICBcIkxhZGFyaXVzXCIsXG4gICAgXCJMYWZheWV0dGVcIixcbiAgICBcIkxhaWxhXCIsXG4gICAgXCJMYWlzaGFcIixcbiAgICBcIkxhbWFyXCIsXG4gICAgXCJMYW1iZXJ0XCIsXG4gICAgXCJMYW1vbnRcIixcbiAgICBcIkxhbmNlXCIsXG4gICAgXCJMYW5kZW5cIixcbiAgICBcIkxhbmVcIixcbiAgICBcIkxhbmV5XCIsXG4gICAgXCJMYXJpc3NhXCIsXG4gICAgXCJMYXJvblwiLFxuICAgIFwiTGFycnlcIixcbiAgICBcIkxhcnVlXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGF1cmVsXCIsXG4gICAgXCJMYXVyZW5cIixcbiAgICBcIkxhdXJlbmNlXCIsXG4gICAgXCJMYXVyZXR0YVwiLFxuICAgIFwiTGF1cmlhbmVcIixcbiAgICBcIkxhdXJpYW5uZVwiLFxuICAgIFwiTGF1cmllXCIsXG4gICAgXCJMYXVyaW5lXCIsXG4gICAgXCJMYXVyeVwiLFxuICAgIFwiTGF1cnluXCIsXG4gICAgXCJMYXZhZGFcIixcbiAgICBcIkxhdmVyblwiLFxuICAgIFwiTGF2ZXJuYVwiLFxuICAgIFwiTGF2ZXJuZVwiLFxuICAgIFwiTGF2aW5hXCIsXG4gICAgXCJMYXZpbmlhXCIsXG4gICAgXCJMYXZvblwiLFxuICAgIFwiTGF2b25uZVwiLFxuICAgIFwiTGF3cmVuY2VcIixcbiAgICBcIkxhd3NvblwiLFxuICAgIFwiTGF5bGFcIixcbiAgICBcIkxheW5lXCIsXG4gICAgXCJMYXphcm9cIixcbiAgICBcIkxlYVwiLFxuICAgIFwiTGVhbm5cIixcbiAgICBcIkxlYW5uYVwiLFxuICAgIFwiTGVhbm5lXCIsXG4gICAgXCJMZWF0aGFcIixcbiAgICBcIkxlZGFcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiTGVpZlwiLFxuICAgIFwiTGVpbGFcIixcbiAgICBcIkxlaWxhbmlcIixcbiAgICBcIkxlbGFcIixcbiAgICBcIkxlbGFoXCIsXG4gICAgXCJMZWxhbmRcIixcbiAgICBcIkxlbGlhXCIsXG4gICAgXCJMZW1waVwiLFxuICAgIFwiTGVtdWVsXCIsXG4gICAgXCJMZW5uYVwiLFxuICAgIFwiTGVubmllXCIsXG4gICAgXCJMZW5ueVwiLFxuICAgIFwiTGVub3JhXCIsXG4gICAgXCJMZW5vcmVcIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVvbGFcIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25hcmRvXCIsXG4gICAgXCJMZW9uZVwiLFxuICAgIFwiTGVvbmVsXCIsXG4gICAgXCJMZW9uaWVcIixcbiAgICBcIkxlb25vclwiLFxuICAgIFwiTGVvbm9yYVwiLFxuICAgIFwiTGVvcG9sZFwiLFxuICAgIFwiTGVvcG9sZG9cIixcbiAgICBcIkxlb3JhXCIsXG4gICAgXCJMZXJhXCIsXG4gICAgXCJMZXNsZXlcIixcbiAgICBcIkxlc2xpZVwiLFxuICAgIFwiTGVzbHlcIixcbiAgICBcIkxlc3NpZVwiLFxuICAgIFwiTGVzdGVyXCIsXG4gICAgXCJMZXRhXCIsXG4gICAgXCJMZXRoYVwiLFxuICAgIFwiTGV0aXRpYVwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTGV3XCIsXG4gICAgXCJMZXdpc1wiLFxuICAgIFwiTGV4aVwiLFxuICAgIFwiTGV4aWVcIixcbiAgICBcIkxleHVzXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkxpYW5hXCIsXG4gICAgXCJMaWJiaWVcIixcbiAgICBcIkxpYmJ5XCIsXG4gICAgXCJMaWxhXCIsXG4gICAgXCJMaWxpYW5cIixcbiAgICBcIkxpbGlhbmFcIixcbiAgICBcIkxpbGlhbmVcIixcbiAgICBcIkxpbGxhXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJMaWxsaWFuYVwiLFxuICAgIFwiTGlsbGllXCIsXG4gICAgXCJMaWxseVwiLFxuICAgIFwiTGlseVwiLFxuICAgIFwiTGlseWFuXCIsXG4gICAgXCJMaW5hXCIsXG4gICAgXCJMaW5jb2xuXCIsXG4gICAgXCJMaW5kYVwiLFxuICAgIFwiTGluZHNheVwiLFxuICAgIFwiTGluZHNleVwiLFxuICAgIFwiTGlubmVhXCIsXG4gICAgXCJMaW5uaWVcIixcbiAgICBcIkxpbndvb2RcIixcbiAgICBcIkxpb25lbFwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiTGlzYW5kcm9cIixcbiAgICBcIkxpc2V0dGVcIixcbiAgICBcIkxpdHp5XCIsXG4gICAgXCJMaXphXCIsXG4gICAgXCJMaXpldGhcIixcbiAgICBcIkxpenppZVwiLFxuICAgIFwiTGxld2VsbHluXCIsXG4gICAgXCJMbG95ZFwiLFxuICAgIFwiTG9nYW5cIixcbiAgICBcIkxvaXNcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkxvbGl0YVwiLFxuICAgIFwiTG9tYVwiLFxuICAgIFwiTG9uXCIsXG4gICAgXCJMb25kb25cIixcbiAgICBcIkxvbmllXCIsXG4gICAgXCJMb25uaWVcIixcbiAgICBcIkxvbm55XCIsXG4gICAgXCJMb256b1wiLFxuICAgIFwiTG9yYVwiLFxuICAgIFwiTG9yYWluZVwiLFxuICAgIFwiTG9yZW5cIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3JlbnphXCIsXG4gICAgXCJMb3JlbnpvXCIsXG4gICAgXCJMb3JpXCIsXG4gICAgXCJMb3JpbmVcIixcbiAgICBcIkxvcm5hXCIsXG4gICAgXCJMb3R0aWVcIixcbiAgICBcIkxvdVwiLFxuICAgIFwiTG91aWVcIixcbiAgICBcIkxvdWlzYVwiLFxuICAgIFwiTG91cmRlc1wiLFxuICAgIFwiTG91dmVuaWFcIixcbiAgICBcIkxvd2VsbFwiLFxuICAgIFwiTG95XCIsXG4gICAgXCJMb3lhbFwiLFxuICAgIFwiTG95Y2VcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWNpYW5vXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiTHVjaWVubmVcIixcbiAgICBcIkx1Y2lsZVwiLFxuICAgIFwiTHVjaW5kYVwiLFxuICAgIFwiTHVjaW9cIixcbiAgICBcIkx1Y2lvdXNcIixcbiAgICBcIkx1Y2l1c1wiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiTHVkaWVcIixcbiAgICBcIkx1ZHdpZ1wiLFxuICAgIFwiTHVlXCIsXG4gICAgXCJMdWVsbGFcIixcbiAgICBcIkx1aWdpXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWlzYVwiLFxuICAgIFwiTHVrYXNcIixcbiAgICBcIkx1bGFcIixcbiAgICBcIkx1bHVcIixcbiAgICBcIkx1bmFcIixcbiAgICBcIkx1cGVcIixcbiAgICBcIkx1cmFcIixcbiAgICBcIkx1cmxpbmVcIixcbiAgICBcIkx1dGhlclwiLFxuICAgIFwiTHV6XCIsXG4gICAgXCJMeWRhXCIsXG4gICAgXCJMeWRpYVwiLFxuICAgIFwiTHlsYVwiLFxuICAgIFwiTHlublwiLFxuICAgIFwiTHlyaWNcIixcbiAgICBcIkx5c2FubmVcIixcbiAgICBcIk1hYmVsXCIsXG4gICAgXCJNYWJlbGxlXCIsXG4gICAgXCJNYWJsZVwiLFxuICAgIFwiTWFjXCIsXG4gICAgXCJNYWNleVwiLFxuICAgIFwiTWFjaVwiLFxuICAgIFwiTWFjaWVcIixcbiAgICBcIk1hY2tcIixcbiAgICBcIk1hY2tlbnppZVwiLFxuICAgIFwiTWFjeVwiLFxuICAgIFwiTWFkYWxpbmVcIixcbiAgICBcIk1hZGFseW5cIixcbiAgICBcIk1hZGRpc29uXCIsXG4gICAgXCJNYWRlbGluZVwiLFxuICAgIFwiTWFkZWx5blwiLFxuICAgIFwiTWFkZWx5bm5cIixcbiAgICBcIk1hZGdlXCIsXG4gICAgXCJNYWRpZVwiLFxuICAgIFwiTWFkaWx5blwiLFxuICAgIFwiTWFkaXNlblwiLFxuICAgIFwiTWFkaXNvblwiLFxuICAgIFwiTWFkaXN5blwiLFxuICAgIFwiTWFkb25uYVwiLFxuICAgIFwiTWFkeXNvblwiLFxuICAgIFwiTWFlXCIsXG4gICAgXCJNYWVnYW5cIixcbiAgICBcIk1hZXZlXCIsXG4gICAgXCJNYWZhbGRhXCIsXG4gICAgXCJNYWdhbGlcIixcbiAgICBcIk1hZ2RhbGVuXCIsXG4gICAgXCJNYWdkYWxlbmFcIixcbiAgICBcIk1hZ2dpZVwiLFxuICAgIFwiTWFnbm9saWFcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFpYVwiLFxuICAgIFwiTWFpZGFcIixcbiAgICBcIk1haXlhXCIsXG4gICAgXCJNYWpvclwiLFxuICAgIFwiTWFrYXlsYVwiLFxuICAgIFwiTWFrZW5uYVwiLFxuICAgIFwiTWFrZW56aWVcIixcbiAgICBcIk1hbGFjaGlcIixcbiAgICBcIk1hbGNvbG1cIixcbiAgICBcIk1hbGlrYVwiLFxuICAgIFwiTWFsaW5kYVwiLFxuICAgIFwiTWFsbGllXCIsXG4gICAgXCJNYWxsb3J5XCIsXG4gICAgXCJNYWx2aW5hXCIsXG4gICAgXCJNYW5keVwiLFxuICAgIFwiTWFubGV5XCIsXG4gICAgXCJNYW51ZWxcIixcbiAgICBcIk1hbnVlbGFcIixcbiAgICBcIk1hcmFcIixcbiAgICBcIk1hcmNcIixcbiAgICBcIk1hcmNlbFwiLFxuICAgIFwiTWFyY2VsaW5hXCIsXG4gICAgXCJNYXJjZWxpbm9cIixcbiAgICBcIk1hcmNlbGxhXCIsXG4gICAgXCJNYXJjZWxsZVwiLFxuICAgIFwiTWFyY2VsbHVzXCIsXG4gICAgXCJNYXJjZWxvXCIsXG4gICAgXCJNYXJjaWFcIixcbiAgICBcIk1hcmNvXCIsXG4gICAgXCJNYXJjb3NcIixcbiAgICBcIk1hcmN1c1wiLFxuICAgIFwiTWFyZ2FyZXRcIixcbiAgICBcIk1hcmdhcmV0ZVwiLFxuICAgIFwiTWFyZ2FyZXR0XCIsXG4gICAgXCJNYXJnYXJldHRhXCIsXG4gICAgXCJNYXJnYXJldHRlXCIsXG4gICAgXCJNYXJnYXJpdGFcIixcbiAgICBcIk1hcmdlXCIsXG4gICAgXCJNYXJnaWVcIixcbiAgICBcIk1hcmdvdFwiLFxuICAgIFwiTWFyZ3JldFwiLFxuICAgIFwiTWFyZ3Vlcml0ZVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhaFwiLFxuICAgIFwiTWFyaWFtXCIsXG4gICAgXCJNYXJpYW5cIixcbiAgICBcIk1hcmlhbmFcIixcbiAgICBcIk1hcmlhbmVcIixcbiAgICBcIk1hcmlhbm5hXCIsXG4gICAgXCJNYXJpYW5uZVwiLFxuICAgIFwiTWFyaWFub1wiLFxuICAgIFwiTWFyaWJlbFwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIk1hcmllbGFcIixcbiAgICBcIk1hcmllbGxlXCIsXG4gICAgXCJNYXJpZXR0YVwiLFxuICAgIFwiTWFyaWxpZVwiLFxuICAgIFwiTWFyaWxvdVwiLFxuICAgIFwiTWFyaWx5bmVcIixcbiAgICBcIk1hcmluYVwiLFxuICAgIFwiTWFyaW9cIixcbiAgICBcIk1hcmlvblwiLFxuICAgIFwiTWFyaXNhXCIsXG4gICAgXCJNYXJpc29sXCIsXG4gICAgXCJNYXJpdHphXCIsXG4gICAgXCJNYXJqb2xhaW5lXCIsXG4gICAgXCJNYXJqb3JpZVwiLFxuICAgIFwiTWFyam9yeVwiLFxuICAgIFwiTWFya1wiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXJsZWVcIixcbiAgICBcIk1hcmxlblwiLFxuICAgIFwiTWFybGVuZVwiLFxuICAgIFwiTWFybGV5XCIsXG4gICAgXCJNYXJsaW5cIixcbiAgICBcIk1hcmxvblwiLFxuICAgIFwiTWFycXVlc1wiLFxuICAgIFwiTWFycXVpc1wiLFxuICAgIFwiTWFycXVpc2VcIixcbiAgICBcIk1hcnNoYWxsXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ0aW5hXCIsXG4gICAgXCJNYXJ0aW5lXCIsXG4gICAgXCJNYXJ0eVwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXJ5XCIsXG4gICAgXCJNYXJ5YW1cIixcbiAgICBcIk1hcnlqYW5lXCIsXG4gICAgXCJNYXJ5c2VcIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWF0aGV3XCIsXG4gICAgXCJNYXRoaWFzXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWF0aWxkYVwiLFxuICAgIFwiTWF0aWxkZVwiLFxuICAgIFwiTWF0dFwiLFxuICAgIFwiTWF0dGVvXCIsXG4gICAgXCJNYXR0aWVcIixcbiAgICBcIk1hdWRcIixcbiAgICBcIk1hdWRlXCIsXG4gICAgXCJNYXVkaWVcIixcbiAgICBcIk1hdXJlZW5cIixcbiAgICBcIk1hdXJpY2VcIixcbiAgICBcIk1hdXJpY2lvXCIsXG4gICAgXCJNYXVyaW5lXCIsXG4gICAgXCJNYXZlcmlja1wiLFxuICAgIFwiTWF2aXNcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWF4aWVcIixcbiAgICBcIk1heGltZVwiLFxuICAgIFwiTWF4aW1pbGlhblwiLFxuICAgIFwiTWF4aW1pbGxpYVwiLFxuICAgIFwiTWF4aW1pbGxpYW5cIixcbiAgICBcIk1heGltb1wiLFxuICAgIFwiTWF4aW11c1wiLFxuICAgIFwiTWF4aW5lXCIsXG4gICAgXCJNYXh3ZWxsXCIsXG4gICAgXCJNYXlcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heWJlbGxcIixcbiAgICBcIk1heWJlbGxlXCIsXG4gICAgXCJNYXllXCIsXG4gICAgXCJNYXltaWVcIixcbiAgICBcIk1heW5hcmRcIixcbiAgICBcIk1heXJhXCIsXG4gICAgXCJNYXppZVwiLFxuICAgIFwiTWNrYXlsYVwiLFxuICAgIFwiTWNrZW5uYVwiLFxuICAgIFwiTWNrZW56aWVcIixcbiAgICBcIk1lYWdhblwiLFxuICAgIFwiTWVhZ2hhblwiLFxuICAgIFwiTWVkYVwiLFxuICAgIFwiTWVnYW5lXCIsXG4gICAgXCJNZWdnaWVcIixcbiAgICBcIk1lZ2hhblwiLFxuICAgIFwiTWVraGlcIixcbiAgICBcIk1lbGFueVwiLFxuICAgIFwiTWVsYmFcIixcbiAgICBcIk1lbGlzYVwiLFxuICAgIFwiTWVsaXNzYVwiLFxuICAgIFwiTWVsbGllXCIsXG4gICAgXCJNZWxvZHlcIixcbiAgICBcIk1lbHZpblwiLFxuICAgIFwiTWVsdmluYVwiLFxuICAgIFwiTWVseW5hXCIsXG4gICAgXCJNZWx5c3NhXCIsXG4gICAgXCJNZXJjZWRlc1wiLFxuICAgIFwiTWVyZWRpdGhcIixcbiAgICBcIk1lcmxcIixcbiAgICBcIk1lcmxlXCIsXG4gICAgXCJNZXJsaW5cIixcbiAgICBcIk1lcnJpdHRcIixcbiAgICBcIk1lcnRpZVwiLFxuICAgIFwiTWVydmluXCIsXG4gICAgXCJNZXRhXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIk1pY2FlbGFcIixcbiAgICBcIk1pY2FoXCIsXG4gICAgXCJNaWNoYWVsXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiTWljaGFsZVwiLFxuICAgIFwiTWljaGVhbFwiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWNoZWxlXCIsXG4gICAgXCJNaWNoZWxsZVwiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWtheWxhXCIsXG4gICAgXCJNaWtlXCIsXG4gICAgXCJNaWtlbFwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIk1pbGVzXCIsXG4gICAgXCJNaWxmb3JkXCIsXG4gICAgXCJNaWxsZXJcIixcbiAgICBcIk1pbGxpZVwiLFxuICAgIFwiTWlsb1wiLFxuICAgIFwiTWlsdG9uXCIsXG4gICAgXCJNaW5hXCIsXG4gICAgXCJNaW5lcnZhXCIsXG4gICAgXCJNaW5uaWVcIixcbiAgICBcIk1pcmFjbGVcIixcbiAgICBcIk1pcmVpbGxlXCIsXG4gICAgXCJNaXJleWFcIixcbiAgICBcIk1pc2FlbFwiLFxuICAgIFwiTWlzc291cmlcIixcbiAgICBcIk1pc3R5XCIsXG4gICAgXCJNaXRjaGVsXCIsXG4gICAgXCJNaXRjaGVsbFwiLFxuICAgIFwiTWl0dGllXCIsXG4gICAgXCJNb2Rlc3RhXCIsXG4gICAgXCJNb2Rlc3RvXCIsXG4gICAgXCJNb2hhbWVkXCIsXG4gICAgXCJNb2hhbW1hZFwiLFxuICAgIFwiTW9oYW1tZWRcIixcbiAgICBcIk1vaXNlc1wiLFxuICAgIFwiTW9sbGllXCIsXG4gICAgXCJNb2xseVwiLFxuICAgIFwiTW9uYVwiLFxuICAgIFwiTW9uaWNhXCIsXG4gICAgXCJNb25pcXVlXCIsXG4gICAgXCJNb25yb2VcIixcbiAgICBcIk1vbnNlcnJhdFwiLFxuICAgIFwiTW9uc2VycmF0ZVwiLFxuICAgIFwiTW9udGFuYVwiLFxuICAgIFwiTW9udGVcIixcbiAgICBcIk1vbnR5XCIsXG4gICAgXCJNb3JnYW5cIixcbiAgICBcIk1vcmlhaFwiLFxuICAgIFwiTW9ycmlzXCIsXG4gICAgXCJNb3J0aW1lclwiLFxuICAgIFwiTW9ydG9uXCIsXG4gICAgXCJNb3NlXCIsXG4gICAgXCJNb3Nlc1wiLFxuICAgIFwiTW9zaGVcIixcbiAgICBcIk1vc3NpZVwiLFxuICAgIFwiTW96ZWxsXCIsXG4gICAgXCJNb3plbGxlXCIsXG4gICAgXCJNdWhhbW1hZFwiLFxuICAgIFwiTXVyaWVsXCIsXG4gICAgXCJNdXJsXCIsXG4gICAgXCJNdXJwaHlcIixcbiAgICBcIk11cnJheVwiLFxuICAgIFwiTXVzdGFmYVwiLFxuICAgIFwiTXlhXCIsXG4gICAgXCJNeWFoXCIsXG4gICAgXCJNeWxlbmVcIixcbiAgICBcIk15bGVzXCIsXG4gICAgXCJNeXJhXCIsXG4gICAgXCJNeXJpYW1cIixcbiAgICBcIk15cmxcIixcbiAgICBcIk15cm5hXCIsXG4gICAgXCJNeXJvblwiLFxuICAgIFwiTXlydGljZVwiLFxuICAgIFwiTXlydGllXCIsXG4gICAgXCJNeXJ0aXNcIixcbiAgICBcIk15cnRsZVwiLFxuICAgIFwiTmFkaWFcIixcbiAgICBcIk5ha2lhXCIsXG4gICAgXCJOYW1lXCIsXG4gICAgXCJOYW5uaWVcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYW9taWVcIixcbiAgICBcIk5hcG9sZW9uXCIsXG4gICAgXCJOYXJjaXNvXCIsXG4gICAgXCJOYXNoXCIsXG4gICAgXCJOYXNpclwiLFxuICAgIFwiTmF0XCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJOYXRhc2hhXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIk5hdGhhbmFlbFwiLFxuICAgIFwiTmF0aGFuaWFsXCIsXG4gICAgXCJOYXRoYW5pZWxcIixcbiAgICBcIk5hdGhlblwiLFxuICAgIFwiTmF5ZWxpXCIsXG4gICAgXCJOZWFsXCIsXG4gICAgXCJOZWRcIixcbiAgICBcIk5lZHJhXCIsXG4gICAgXCJOZWhhXCIsXG4gICAgXCJOZWlsXCIsXG4gICAgXCJOZWxkYVwiLFxuICAgIFwiTmVsbGFcIixcbiAgICBcIk5lbGxlXCIsXG4gICAgXCJOZWxsaWVcIixcbiAgICBcIk5lbHNcIixcbiAgICBcIk5lbHNvblwiLFxuICAgIFwiTmVvbWFcIixcbiAgICBcIk5lc3RvclwiLFxuICAgIFwiTmV0dGllXCIsXG4gICAgXCJOZXZhXCIsXG4gICAgXCJOZXdlbGxcIixcbiAgICBcIk5ld3RvblwiLFxuICAgIFwiTmlhXCIsXG4gICAgXCJOaWNob2xhc1wiLFxuICAgIFwiTmljaG9sYXVzXCIsXG4gICAgXCJOaWNob2xlXCIsXG4gICAgXCJOaWNrXCIsXG4gICAgXCJOaWNrbGF1c1wiLFxuICAgIFwiTmlja29sYXNcIixcbiAgICBcIk5pY29cIixcbiAgICBcIk5pY29sYVwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiTmljb2xlXCIsXG4gICAgXCJOaWNvbGV0dGVcIixcbiAgICBcIk5pZ2VsXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pa2tpXCIsXG4gICAgXCJOaWtrb1wiLFxuICAgIFwiTmlrb1wiLFxuICAgIFwiTmlrb2xhc1wiLFxuICAgIFwiTmlsc1wiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTm9ibGVcIixcbiAgICBcIk5vZVwiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiTm9lbGlhXCIsXG4gICAgXCJOb2VtaVwiLFxuICAgIFwiTm9lbWllXCIsXG4gICAgXCJOb2VteVwiLFxuICAgIFwiTm9sYVwiLFxuICAgIFwiTm9sYW5cIixcbiAgICBcIk5vbmFcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIk5vcmJlcnRcIixcbiAgICBcIk5vcmJlcnRvXCIsXG4gICAgXCJOb3JlbmVcIixcbiAgICBcIk5vcm1hXCIsXG4gICAgXCJOb3JyaXNcIixcbiAgICBcIk5vcnZhbFwiLFxuICAgIFwiTm9yd29vZFwiLFxuICAgIFwiTm92YVwiLFxuICAgIFwiTm92ZWxsYVwiLFxuICAgIFwiTnlhXCIsXG4gICAgXCJOeWFoXCIsXG4gICAgXCJOeWFzaWFcIixcbiAgICBcIk9iaWVcIixcbiAgICBcIk9jZWFuZVwiLFxuICAgIFwiT2NpZVwiLFxuICAgIFwiT2N0YXZpYVwiLFxuICAgIFwiT2RhXCIsXG4gICAgXCJPZGVsbFwiLFxuICAgIFwiT2Rlc3NhXCIsXG4gICAgXCJPZGllXCIsXG4gICAgXCJPZmVsaWFcIixcbiAgICBcIk9rZXlcIixcbiAgICBcIk9sYVwiLFxuICAgIFwiT2xhZlwiLFxuICAgIFwiT2xlXCIsXG4gICAgXCJPbGVuXCIsXG4gICAgXCJPbGV0YVwiLFxuICAgIFwiT2xnYVwiLFxuICAgIFwiT2xpblwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJPbGxpZVwiLFxuICAgIFwiT21hXCIsXG4gICAgXCJPbWFyaVwiLFxuICAgIFwiT21lclwiLFxuICAgIFwiT25hXCIsXG4gICAgXCJPbmllXCIsXG4gICAgXCJPcGFsXCIsXG4gICAgXCJPcGhlbGlhXCIsXG4gICAgXCJPcmFcIixcbiAgICBcIk9yYWxcIixcbiAgICBcIk9yYW5cIixcbiAgICBcIk9yZW5cIixcbiAgICBcIk9yaWVcIixcbiAgICBcIk9yaW5cIixcbiAgICBcIk9yaW9uXCIsXG4gICAgXCJPcmxhbmRcIixcbiAgICBcIk9ybGFuZG9cIixcbiAgICBcIk9ybG9cIixcbiAgICBcIk9ycGhhXCIsXG4gICAgXCJPcnJpblwiLFxuICAgIFwiT3J2YWxcIixcbiAgICBcIk9ydmlsbGVcIixcbiAgICBcIk9zYmFsZG9cIixcbiAgICBcIk9zYm9ybmVcIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJPc3ZhbGRvXCIsXG4gICAgXCJPc3dhbGRcIixcbiAgICBcIk9zd2FsZG9cIixcbiAgICBcIk90aGFcIixcbiAgICBcIk90aG9cIixcbiAgICBcIk90aWxpYVwiLFxuICAgIFwiT3Rpc1wiLFxuICAgIFwiT3R0aWxpZVwiLFxuICAgIFwiT3R0aXNcIixcbiAgICBcIk90dG9cIixcbiAgICBcIk92YVwiLFxuICAgIFwiT3dlblwiLFxuICAgIFwiT3plbGxhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGFpZ2VcIixcbiAgICBcIlBhbG1hXCIsXG4gICAgXCJQYW1lbGFcIixcbiAgICBcIlBhbnN5XCIsXG4gICAgXCJQYW9sb1wiLFxuICAgIFwiUGFyaXNcIixcbiAgICBcIlBhcmtlclwiLFxuICAgIFwiUGFzY2FsZVwiLFxuICAgIFwiUGFzcXVhbGVcIixcbiAgICBcIlBhdFwiLFxuICAgIFwiUGF0aWVuY2VcIixcbiAgICBcIlBhdHJpY2lhXCIsXG4gICAgXCJQYXRyaWNrXCIsXG4gICAgXCJQYXRzeVwiLFxuICAgIFwiUGF0dGllXCIsXG4gICAgXCJQYXVsXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGF1bGluZVwiLFxuICAgIFwiUGF4dG9uXCIsXG4gICAgXCJQYXl0b25cIixcbiAgICBcIlBlYXJsXCIsXG4gICAgXCJQZWFybGllXCIsXG4gICAgXCJQZWFybGluZVwiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlBlZ2dpZVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBlcmNpdmFsXCIsXG4gICAgXCJQZXJjeVwiLFxuICAgIFwiUGVycnlcIixcbiAgICBcIlBldGVcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQZXRyYVwiLFxuICAgIFwiUGV5dG9uXCIsXG4gICAgXCJQaGlsaXBcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiUGh5bGxpc1wiLFxuICAgIFwiUGllcmNlXCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlBpZXRyb1wiLFxuICAgIFwiUGlua1wiLFxuICAgIFwiUGlua2llXCIsXG4gICAgXCJQaXBlclwiLFxuICAgIFwiUG9sbHlcIixcbiAgICBcIlBvcnRlclwiLFxuICAgIFwiUHJlY2lvdXNcIixcbiAgICBcIlByZXNsZXlcIixcbiAgICBcIlByZXN0b25cIixcbiAgICBcIlByaWNlXCIsXG4gICAgXCJQcmluY2VcIixcbiAgICBcIlByaW5jZXNzXCIsXG4gICAgXCJQcmlzY2lsbGFcIixcbiAgICBcIlByb3ZpZGVuY2lcIixcbiAgICBcIlBydWRlbmNlXCIsXG4gICAgXCJRdWVlblwiLFxuICAgIFwiUXVlZW5pZVwiLFxuICAgIFwiUXVlbnRpblwiLFxuICAgIFwiUXVpbmN5XCIsXG4gICAgXCJRdWlublwiLFxuICAgIFwiUXVpbnRlblwiLFxuICAgIFwiUXVpbnRvblwiLFxuICAgIFwiUmFjaGFlbFwiLFxuICAgIFwiUmFjaGVsXCIsXG4gICAgXCJSYWNoZWxsZVwiLFxuICAgIFwiUmFlXCIsXG4gICAgXCJSYWVnYW5cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFmYWVsYVwiLFxuICAgIFwiUmFoZWVtXCIsXG4gICAgXCJSYWhzYWFuXCIsXG4gICAgXCJSYWh1bFwiLFxuICAgIFwiUmFpbmFcIixcbiAgICBcIlJhbGVpZ2hcIixcbiAgICBcIlJhbHBoXCIsXG4gICAgXCJSYW1pcm9cIixcbiAgICBcIlJhbW9uXCIsXG4gICAgXCJSYW1vbmFcIixcbiAgICBcIlJhbmRhbFwiLFxuICAgIFwiUmFuZGFsbFwiLFxuICAgIFwiUmFuZGlcIixcbiAgICBcIlJhbmR5XCIsXG4gICAgXCJSYW5zb21cIixcbiAgICBcIlJhb3VsXCIsXG4gICAgXCJSYXBoYWVsXCIsXG4gICAgXCJSYXBoYWVsbGVcIixcbiAgICBcIlJhcXVlbFwiLFxuICAgIFwiUmFzaGFkXCIsXG4gICAgXCJSYXNoYXduXCIsXG4gICAgXCJSYXNoZWVkXCIsXG4gICAgXCJSYXVsXCIsXG4gICAgXCJSYXZlblwiLFxuICAgIFwiUmF5XCIsXG4gICAgXCJSYXltb25kXCIsXG4gICAgXCJSYXltdW5kb1wiLFxuICAgIFwiUmVhZ2FuXCIsXG4gICAgXCJSZWFubmFcIixcbiAgICBcIlJlYmFcIixcbiAgICBcIlJlYmVjYVwiLFxuICAgIFwiUmViZWNjYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSZWJla2FoXCIsXG4gICAgXCJSZWVjZVwiLFxuICAgIFwiUmVlZFwiLFxuICAgIFwiUmVlc2VcIixcbiAgICBcIlJlZ2FuXCIsXG4gICAgXCJSZWdnaWVcIixcbiAgICBcIlJlZ2luYWxkXCIsXG4gICAgXCJSZWlkXCIsXG4gICAgXCJSZWlsbHlcIixcbiAgICBcIlJlaW5hXCIsXG4gICAgXCJSZWluaG9sZFwiLFxuICAgIFwiUmVtaW5ndG9uXCIsXG4gICAgXCJSZW5lXCIsXG4gICAgXCJSZW5lZVwiLFxuICAgIFwiUmVzc2llXCIsXG4gICAgXCJSZXRhXCIsXG4gICAgXCJSZXRoYVwiLFxuICAgIFwiUmV0dGFcIixcbiAgICBcIlJldWJlblwiLFxuICAgIFwiUmV2YVwiLFxuICAgIFwiUmV4XCIsXG4gICAgXCJSZXlcIixcbiAgICBcIlJleWVzXCIsXG4gICAgXCJSZXltdW5kb1wiLFxuICAgIFwiUmV5bmFcIixcbiAgICBcIlJleW5vbGRcIixcbiAgICBcIlJoZWFcIixcbiAgICBcIlJoZXR0XCIsXG4gICAgXCJSaGlhbm5hXCIsXG4gICAgXCJSaGlhbm5vblwiLFxuICAgIFwiUmhvZGFcIixcbiAgICBcIlJpY2FyZG9cIixcbiAgICBcIlJpY2hhcmRcIixcbiAgICBcIlJpY2hpZVwiLFxuICAgIFwiUmljaG1vbmRcIixcbiAgICBcIlJpY2tcIixcbiAgICBcIlJpY2tleVwiLFxuICAgIFwiUmlja2llXCIsXG4gICAgXCJSaWNreVwiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUmlnb2JlcnRvXCIsXG4gICAgXCJSaWxleVwiLFxuICAgIFwiUml0YVwiLFxuICAgIFwiUml2ZXJcIixcbiAgICBcIlJvYmJcIixcbiAgICBcIlJvYmJpZVwiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2JlcnRhXCIsXG4gICAgXCJSb2JlcnRvXCIsXG4gICAgXCJSb2JpblwiLFxuICAgIFwiUm9ieW5cIixcbiAgICBcIlJvY2lvXCIsXG4gICAgXCJSb2NreVwiLFxuICAgIFwiUm9kXCIsXG4gICAgXCJSb2Rlcmlja1wiLFxuICAgIFwiUm9kZ2VyXCIsXG4gICAgXCJSb2RvbGZvXCIsXG4gICAgXCJSb2RyaWNrXCIsXG4gICAgXCJSb2RyaWdvXCIsXG4gICAgXCJSb2VsXCIsXG4gICAgXCJSb2dlbGlvXCIsXG4gICAgXCJSb2dlclwiLFxuICAgIFwiUm9nZXJzXCIsXG4gICAgXCJSb2xhbmRvXCIsXG4gICAgXCJSb2xsaW5cIixcbiAgICBcIlJvbWFcIixcbiAgICBcIlJvbWFpbmVcIixcbiAgICBcIlJvbWFuXCIsXG4gICAgXCJSb25cIixcbiAgICBcIlJvbmFsZG9cIixcbiAgICBcIlJvbm55XCIsXG4gICAgXCJSb29zZXZlbHRcIixcbiAgICBcIlJvcnlcIixcbiAgICBcIlJvc2FcIixcbiAgICBcIlJvc2FsZWVcIixcbiAgICBcIlJvc2FsaWFcIixcbiAgICBcIlJvc2FsaW5kXCIsXG4gICAgXCJSb3NhbGluZGFcIixcbiAgICBcIlJvc2FseW5cIixcbiAgICBcIlJvc2Ftb25kXCIsXG4gICAgXCJSb3Nhbm5hXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJSb3Njb2VcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIlJvc2VsbGFcIixcbiAgICBcIlJvc2VseW5cIixcbiAgICBcIlJvc2VtYXJpZVwiLFxuICAgIFwiUm9zZW1hcnlcIixcbiAgICBcIlJvc2VuZG9cIixcbiAgICBcIlJvc2V0dGFcIixcbiAgICBcIlJvc2llXCIsXG4gICAgXCJSb3NpbmFcIixcbiAgICBcIlJvc2x5blwiLFxuICAgIFwiUm9zc1wiLFxuICAgIFwiUm9zc2llXCIsXG4gICAgXCJSb3dhblwiLFxuICAgIFwiUm93ZW5hXCIsXG4gICAgXCJSb3dsYW5kXCIsXG4gICAgXCJSb3hhbmVcIixcbiAgICBcIlJveGFubmVcIixcbiAgICBcIlJveVwiLFxuICAgIFwiUm95YWxcIixcbiAgICBcIlJveWNlXCIsXG4gICAgXCJSb3plbGxhXCIsXG4gICAgXCJSdWJlblwiLFxuICAgIFwiUnViaWVcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIlJ1YnllXCIsXG4gICAgXCJSdWRvbHBoXCIsXG4gICAgXCJSdWR5XCIsXG4gICAgXCJSdXBlcnRcIixcbiAgICBcIlJ1c3NcIixcbiAgICBcIlJ1c3NlbFwiLFxuICAgIFwiUnVzc2VsbFwiLFxuICAgIFwiUnVzdHlcIixcbiAgICBcIlJ1dGhcIixcbiAgICBcIlJ1dGhlXCIsXG4gICAgXCJSdXRoaWVcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJ5YW5uXCIsXG4gICAgXCJSeWRlclwiLFxuICAgIFwiUnlsYW5cIixcbiAgICBcIlJ5bGVlXCIsXG4gICAgXCJSeWxlaWdoXCIsXG4gICAgXCJSeWxleVwiLFxuICAgIFwiU2FiaW5hXCIsXG4gICAgXCJTYWJyaW5hXCIsXG4gICAgXCJTYWJyeW5hXCIsXG4gICAgXCJTYWRpZVwiLFxuICAgIFwiU2FkeWVcIixcbiAgICBcIlNhZ2VcIixcbiAgICBcIlNhaWdlXCIsXG4gICAgXCJTYWxsaWVcIixcbiAgICBcIlNhbGx5XCIsXG4gICAgXCJTYWxtYVwiLFxuICAgIFwiU2FsdmFkb3JcIixcbiAgICBcIlNhbHZhdG9yZVwiLFxuICAgIFwiU2FtXCIsXG4gICAgXCJTYW1hbnRhXCIsXG4gICAgXCJTYW1hbnRoYVwiLFxuICAgIFwiU2FtYXJhXCIsXG4gICAgXCJTYW1pclwiLFxuICAgIFwiU2FtbWllXCIsXG4gICAgXCJTYW1teVwiLFxuICAgIFwiU2Ftc29uXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIlNhbmRyaW5lXCIsXG4gICAgXCJTYW5keVwiLFxuICAgIFwiU2FuZm9yZFwiLFxuICAgIFwiU2FudGFcIixcbiAgICBcIlNhbnRpYWdvXCIsXG4gICAgXCJTYW50aW5hXCIsXG4gICAgXCJTYW50aW5vXCIsXG4gICAgXCJTYW50b3NcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJTYXJhaVwiLFxuICAgIFwiU2FyaW5hXCIsXG4gICAgXCJTYXNoYVwiLFxuICAgIFwiU2F1bFwiLFxuICAgIFwiU2F2YW5haFwiLFxuICAgIFwiU2F2YW5uYVwiLFxuICAgIFwiU2F2YW5uYWhcIixcbiAgICBcIlNhdmlvblwiLFxuICAgIFwiU2NhcmxldHRcIixcbiAgICBcIlNjaHV5bGVyXCIsXG4gICAgXCJTY290XCIsXG4gICAgXCJTY290dGllXCIsXG4gICAgXCJTY290dHlcIixcbiAgICBcIlNlYW11c1wiLFxuICAgIFwiU2VhblwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZWRyaWNrXCIsXG4gICAgXCJTZWxlbmFcIixcbiAgICBcIlNlbGluYVwiLFxuICAgIFwiU2VsbWVyXCIsXG4gICAgXCJTZXJlbmFcIixcbiAgICBcIlNlcmVuaXR5XCIsXG4gICAgXCJTZXRoXCIsXG4gICAgXCJTaGFkXCIsXG4gICAgXCJTaGFpbmFcIixcbiAgICBcIlNoYWtpcmFcIixcbiAgICBcIlNoYW5hXCIsXG4gICAgXCJTaGFuZVwiLFxuICAgIFwiU2hhbmVsXCIsXG4gICAgXCJTaGFuZWxsZVwiLFxuICAgIFwiU2hhbmlhXCIsXG4gICAgXCJTaGFuaWVcIixcbiAgICBcIlNoYW5peWFcIixcbiAgICBcIlNoYW5uYVwiLFxuICAgIFwiU2hhbm5vblwiLFxuICAgIFwiU2hhbm55XCIsXG4gICAgXCJTaGFub25cIixcbiAgICBcIlNoYW55XCIsXG4gICAgXCJTaGFyb25cIixcbiAgICBcIlNoYXVuXCIsXG4gICAgXCJTaGF3blwiLFxuICAgIFwiU2hhd25hXCIsXG4gICAgXCJTaGF5bGVlXCIsXG4gICAgXCJTaGF5bmFcIixcbiAgICBcIlNoYXluZVwiLFxuICAgIFwiU2hlYVwiLFxuICAgIFwiU2hlaWxhXCIsXG4gICAgXCJTaGVsZG9uXCIsXG4gICAgXCJTaGVtYXJcIixcbiAgICBcIlNoZXJpZGFuXCIsXG4gICAgXCJTaGVybWFuXCIsXG4gICAgXCJTaGVyd29vZFwiLFxuICAgIFwiU2hpcmxleVwiLFxuICAgIFwiU2h5YW5uXCIsXG4gICAgXCJTaHlhbm5lXCIsXG4gICAgXCJTaWJ5bFwiLFxuICAgIFwiU2lkXCIsXG4gICAgXCJTaWRuZXlcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiU2llcnJhXCIsXG4gICAgXCJTaWdtdW5kXCIsXG4gICAgXCJTaWdyaWRcIixcbiAgICBcIlNpZ3VyZFwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlNpbVwiLFxuICAgIFwiU2ltZW9uXCIsXG4gICAgXCJTaW1vbmVcIixcbiAgICBcIlNpbmNlcmVcIixcbiAgICBcIlNpc3RlclwiLFxuICAgIFwiU2t5ZVwiLFxuICAgIFwiU2t5bGFcIixcbiAgICBcIlNreWxhclwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIlNvbGVkYWRcIixcbiAgICBcIlNvbG9uXCIsXG4gICAgXCJTb25pYVwiLFxuICAgIFwiU29ubnlcIixcbiAgICBcIlNvbnlhXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiU3BlbmNlclwiLFxuICAgIFwiU3RhY2V5XCIsXG4gICAgXCJTdGFjeVwiLFxuICAgIFwiU3RhblwiLFxuICAgIFwiU3RhbmZvcmRcIixcbiAgICBcIlN0YW5sZXlcIixcbiAgICBcIlN0YW50b25cIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiU3RlZmFuaWVcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3RlcGhhbmlhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIlN0ZXBoYW55XCIsXG4gICAgXCJTdGVwaGVuXCIsXG4gICAgXCJTdGVwaG9uXCIsXG4gICAgXCJTdGVybGluZ1wiLFxuICAgIFwiU3RldmVcIixcbiAgICBcIlN0ZXZpZVwiLFxuICAgIFwiU3Rld2FydFwiLFxuICAgIFwiU3RvbmVcIixcbiAgICBcIlN0dWFydFwiLFxuICAgIFwiU3VtbWVyXCIsXG4gICAgXCJTdW5ueVwiLFxuICAgIFwiU3VzYW5cIixcbiAgICBcIlN1c2FuYVwiLFxuICAgIFwiU3VzYW5uYVwiLFxuICAgIFwiU3VzaWVcIixcbiAgICBcIlN1emFubmVcIixcbiAgICBcIlN2ZW5cIixcbiAgICBcIlN5YmxlXCIsXG4gICAgXCJTeWRuZWVcIixcbiAgICBcIlN5ZG5leVwiLFxuICAgIFwiU3lkbmlcIixcbiAgICBcIlN5ZG5pZVwiLFxuICAgIFwiU3lsdmFuXCIsXG4gICAgXCJTeWx2ZXN0ZXJcIixcbiAgICBcIlN5bHZpYVwiLFxuICAgIFwiVGFiaXRoYVwiLFxuICAgIFwiVGFkXCIsXG4gICAgXCJUYWxpYVwiLFxuICAgIFwiVGFsb25cIixcbiAgICBcIlRhbWFyYVwiLFxuICAgIFwiVGFtaWFcIixcbiAgICBcIlRhbmlhXCIsXG4gICAgXCJUYW5uZXJcIixcbiAgICBcIlRhbnlhXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUYXJ5blwiLFxuICAgIFwiVGF0ZVwiLFxuICAgIFwiVGF0dW1cIixcbiAgICBcIlRhdHlhbmFcIixcbiAgICBcIlRhdXJlYW5cIixcbiAgICBcIlRhdmFyZXNcIixcbiAgICBcIlRheWFcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiVGVhZ2FuXCIsXG4gICAgXCJUZWRcIixcbiAgICBcIlRlbGx5XCIsXG4gICAgXCJUZXJlbmNlXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIlRlcnJhbmNlXCIsXG4gICAgXCJUZXJyZWxsXCIsXG4gICAgXCJUZXJyZW5jZVwiLFxuICAgIFwiVGVycmlsbFwiLFxuICAgIFwiVGVycnlcIixcbiAgICBcIlRlc3NcIixcbiAgICBcIlRlc3NpZVwiLFxuICAgIFwiVGV2aW5cIixcbiAgICBcIlRoYWRcIixcbiAgICBcIlRoYWRkZXVzXCIsXG4gICAgXCJUaGFsaWFcIixcbiAgICBcIlRoZWFcIixcbiAgICBcIlRoZWxtYVwiLFxuICAgIFwiVGhlb1wiLFxuICAgIFwiVGhlb2RvcmFcIixcbiAgICBcIlRoZW9kb3JlXCIsXG4gICAgXCJUaGVyZXNhXCIsXG4gICAgXCJUaGVyZXNlXCIsXG4gICAgXCJUaGVyZXNpYVwiLFxuICAgIFwiVGhlcm9uXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRob3JhXCIsXG4gICAgXCJUaHVybWFuXCIsXG4gICAgXCJUaWFcIixcbiAgICBcIlRpYW5hXCIsXG4gICAgXCJUaWFubmFcIixcbiAgICBcIlRpYXJhXCIsXG4gICAgXCJUaWVycmFcIixcbiAgICBcIlRpZmZhbnlcIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRpbW1vdGh5XCIsXG4gICAgXCJUaW1teVwiLFxuICAgIFwiVGltb3RoeVwiLFxuICAgIFwiVGluYVwiLFxuICAgIFwiVGl0b1wiLFxuICAgIFwiVGl0dXNcIixcbiAgICBcIlRvYmluXCIsXG4gICAgXCJUb2J5XCIsXG4gICAgXCJUb2RcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiVG9tYXNcIixcbiAgICBcIlRvbWFzYVwiLFxuICAgIFwiVG9tbWllXCIsXG4gICAgXCJUb25leVwiLFxuICAgIFwiVG9uaVwiLFxuICAgIFwiVG9ueVwiLFxuICAgIFwiVG9yZXlcIixcbiAgICBcIlRvcnJhbmNlXCIsXG4gICAgXCJUb3JyZXlcIixcbiAgICBcIlRveVwiLFxuICAgIFwiVHJhY2VcIixcbiAgICBcIlRyYWNleVwiLFxuICAgIFwiVHJhY3lcIixcbiAgICBcIlRyYXZpc1wiLFxuICAgIFwiVHJhdm9uXCIsXG4gICAgXCJUcmVcIixcbiAgICBcIlRyZW1haW5lXCIsXG4gICAgXCJUcmVtYXluZVwiLFxuICAgIFwiVHJlbnRcIixcbiAgICBcIlRyZW50b25cIixcbiAgICBcIlRyZXNzYVwiLFxuICAgIFwiVHJlc3NpZVwiLFxuICAgIFwiVHJldmFcIixcbiAgICBcIlRyZXZlclwiLFxuICAgIFwiVHJldmlvblwiLFxuICAgIFwiVHJldm9yXCIsXG4gICAgXCJUcmV5XCIsXG4gICAgXCJUcmluaXR5XCIsXG4gICAgXCJUcmlzaGFcIixcbiAgICBcIlRyaXN0aWFuXCIsXG4gICAgXCJUcmlzdGluXCIsXG4gICAgXCJUcmlzdG9uXCIsXG4gICAgXCJUcm95XCIsXG4gICAgXCJUcnVkaWVcIixcbiAgICBcIlRyeWNpYVwiLFxuICAgIFwiVHJ5c3RhblwiLFxuICAgIFwiVHVybmVyXCIsXG4gICAgXCJUd2lsYVwiLFxuICAgIFwiVHlsZXJcIixcbiAgICBcIlR5cmFcIixcbiAgICBcIlR5cmVlXCIsXG4gICAgXCJUeXJlZWtcIixcbiAgICBcIlR5cmVsXCIsXG4gICAgXCJUeXJlbGxcIixcbiAgICBcIlR5cmVzZVwiLFxuICAgIFwiVHlyaXF1ZVwiLFxuICAgIFwiVHlzaGF3blwiLFxuICAgIFwiVHlzb25cIixcbiAgICBcIlViYWxkb1wiLFxuICAgIFwiVWxpY2VzXCIsXG4gICAgXCJVbGlzZXNcIixcbiAgICBcIlVuYVwiLFxuICAgIFwiVW5pcXVlXCIsXG4gICAgXCJVcmJhblwiLFxuICAgIFwiVXJpYWhcIixcbiAgICBcIlVyaWVsXCIsXG4gICAgXCJVcnN1bGFcIixcbiAgICBcIlZhZGFcIixcbiAgICBcIlZhbGVudGluXCIsXG4gICAgXCJWYWxlbnRpbmFcIixcbiAgICBcIlZhbGVudGluZVwiLFxuICAgIFwiVmFsZXJpZVwiLFxuICAgIFwiVmFsbGllXCIsXG4gICAgXCJWYW5cIixcbiAgICBcIlZhbmNlXCIsXG4gICAgXCJWYW5lc3NhXCIsXG4gICAgXCJWYXVnaG5cIixcbiAgICBcIlZlZGFcIixcbiAgICBcIlZlbGRhXCIsXG4gICAgXCJWZWxsYVwiLFxuICAgIFwiVmVsbWFcIixcbiAgICBcIlZlbHZhXCIsXG4gICAgXCJWZW5hXCIsXG4gICAgXCJWZXJkYVwiLFxuICAgIFwiVmVyZGllXCIsXG4gICAgXCJWZXJnaWVcIixcbiAgICBcIlZlcmxhXCIsXG4gICAgXCJWZXJsaWVcIixcbiAgICBcIlZlcm5cIixcbiAgICBcIlZlcm5hXCIsXG4gICAgXCJWZXJuZXJcIixcbiAgICBcIlZlcm5pY2VcIixcbiAgICBcIlZlcm5pZVwiLFxuICAgIFwiVmVybm9uXCIsXG4gICAgXCJWZXJvbmFcIixcbiAgICBcIlZlcm9uaWNhXCIsXG4gICAgXCJWZXN0YVwiLFxuICAgIFwiVmljZW50YVwiLFxuICAgIFwiVmljZW50ZVwiLFxuICAgIFwiVmlja2llXCIsXG4gICAgXCJWaWNreVwiLFxuICAgIFwiVmljdG9yXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiVmlkYVwiLFxuICAgIFwiVmlkYWxcIixcbiAgICBcIlZpbG1hXCIsXG4gICAgXCJWaW5jZVwiLFxuICAgIFwiVmluY2VudFwiLFxuICAgIFwiVmluY2VuemFcIixcbiAgICBcIlZpbmNlbnpvXCIsXG4gICAgXCJWaW5uaWVcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJWaW9sZXRcIixcbiAgICBcIlZpb2xldHRlXCIsXG4gICAgXCJWaXJnaWVcIixcbiAgICBcIlZpcmdpbFwiLFxuICAgIFwiVmlyZ2luaWFcIixcbiAgICBcIlZpcmdpbmllXCIsXG4gICAgXCJWaXRhXCIsXG4gICAgXCJWaXRvXCIsXG4gICAgXCJWaXZhXCIsXG4gICAgXCJWaXZpYW5cIixcbiAgICBcIlZpdmlhbmVcIixcbiAgICBcIlZpdmlhbm5lXCIsXG4gICAgXCJWaXZpZW5cIixcbiAgICBcIlZpdmllbm5lXCIsXG4gICAgXCJWbGFkaW1pclwiLFxuICAgIFwiV2FkZVwiLFxuICAgIFwiV2Fpbm9cIixcbiAgICBcIldhbGRvXCIsXG4gICAgXCJXYWxrZXJcIixcbiAgICBcIldhbGxhY2VcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FsdG9uXCIsXG4gICAgXCJXYW5kYVwiLFxuICAgIFwiV2FyZFwiLFxuICAgIFwiV2FycmVuXCIsXG4gICAgXCJXYXRzb25cIixcbiAgICBcIldhdmFcIixcbiAgICBcIldheWxvblwiLFxuICAgIFwiV2F5bmVcIixcbiAgICBcIldlYnN0ZXJcIixcbiAgICBcIldlbGRvblwiLFxuICAgIFwiV2VsbGluZ3RvblwiLFxuICAgIFwiV2VuZGVsbFwiLFxuICAgIFwiV2VuZHlcIixcbiAgICBcIldlcm5lclwiLFxuICAgIFwiV2VzdGxleVwiLFxuICAgIFwiV2VzdG9uXCIsXG4gICAgXCJXaGl0bmV5XCIsXG4gICAgXCJXaWxiZXJcIixcbiAgICBcIldpbGJlcnRcIixcbiAgICBcIldpbGJ1cm5cIixcbiAgICBcIldpbGV5XCIsXG4gICAgXCJXaWxmb3JkXCIsXG4gICAgXCJXaWxmcmVkXCIsXG4gICAgXCJXaWxmcmVkb1wiLFxuICAgIFwiV2lsZnJpZFwiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsaGVsbWluZVwiLFxuICAgIFwiV2lsbFwiLFxuICAgIFwiV2lsbGFcIixcbiAgICBcIldpbGxhcmRcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIldpbGxpZVwiLFxuICAgIFwiV2lsbGlzXCIsXG4gICAgXCJXaWxsb3dcIixcbiAgICBcIldpbGx5XCIsXG4gICAgXCJXaWxtYVwiLFxuICAgIFwiV2lsbWVyXCIsXG4gICAgXCJXaWxzb25cIixcbiAgICBcIldpbHRvblwiLFxuICAgIFwiV2luZmllbGRcIixcbiAgICBcIldpbmlmcmVkXCIsXG4gICAgXCJXaW5uaWZyZWRcIixcbiAgICBcIldpbm9uYVwiLFxuICAgIFwiV2luc3RvblwiLFxuICAgIFwiV29vZHJvd1wiLFxuICAgIFwiV3lhdHRcIixcbiAgICBcIld5bWFuXCIsXG4gICAgXCJYYW5kZXJcIixcbiAgICBcIlhhdmllclwiLFxuICAgIFwiWHphdmllclwiLFxuICAgIFwiWWFkaXJhXCIsXG4gICAgXCJZYXNtZWVuXCIsXG4gICAgXCJZYXNtaW5cIixcbiAgICBcIllhc21pbmVcIixcbiAgICBcIllhem1pblwiLFxuICAgIFwiWWVzZW5pYVwiLFxuICAgIFwiWWVzc2VuaWFcIixcbiAgICBcIllvbGFuZGFcIixcbiAgICBcIllvc2hpa29cIixcbiAgICBcIll2ZXR0ZVwiLFxuICAgIFwiWXZvbm5lXCIsXG4gICAgXCJaYWNoYXJpYWhcIixcbiAgICBcIlphY2hhcnlcIixcbiAgICBcIlphY2hlcnlcIixcbiAgICBcIlphY2tcIixcbiAgICBcIlphY2thcnlcIixcbiAgICBcIlphY2tlcnlcIixcbiAgICBcIlpha2FyeVwiLFxuICAgIFwiWmFuZGVyXCIsXG4gICAgXCJaYW5lXCIsXG4gICAgXCJaYXJpYVwiLFxuICAgIFwiWmVjaGFyaWFoXCIsXG4gICAgXCJaZWxkYVwiLFxuICAgIFwiWmVsbGFcIixcbiAgICBcIlplbG1hXCIsXG4gICAgXCJaZW5hXCIsXG4gICAgXCJaZXR0YVwiLFxuICAgIFwiWmlvblwiLFxuICAgIFwiWml0YVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJab2V5XCIsXG4gICAgXCJab2llXCIsXG4gICAgXCJab2lsYVwiLFxuICAgIFwiWm9sYVwiLFxuICAgIFwiWm9yYVwiLFxuICAgIFwiWnVsYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkFiYm90dFwiLFxuICAgIFwiQWJlcm5hdGh5XCIsXG4gICAgXCJBYnNoaXJlXCIsXG4gICAgXCJBZGFtc1wiLFxuICAgIFwiQWx0ZW53ZXJ0aFwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIkFua3VuZGluZ1wiLFxuICAgIFwiQXJtc3Ryb25nXCIsXG4gICAgXCJBdWVyXCIsXG4gICAgXCJBdWZkZXJoYXJcIixcbiAgICBcIkJhaHJpbmdlclwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYWxpc3RyZXJpXCIsXG4gICAgXCJCYXJyb3dzXCIsXG4gICAgXCJCYXJ0ZWxsXCIsXG4gICAgXCJCYXJ0b2xldHRpXCIsXG4gICAgXCJCYXJ0b25cIixcbiAgICBcIkJhc2hpcmlhblwiLFxuICAgIFwiQmF0elwiLFxuICAgIFwiQmF1Y2hcIixcbiAgICBcIkJhdW1iYWNoXCIsXG4gICAgXCJCYXllclwiLFxuICAgIFwiQmVhaGFuXCIsXG4gICAgXCJCZWF0dHlcIixcbiAgICBcIkJlY2h0ZWxhclwiLFxuICAgIFwiQmVja2VyXCIsXG4gICAgXCJCZWRuYXJcIixcbiAgICBcIkJlZXJcIixcbiAgICBcIkJlaWVyXCIsXG4gICAgXCJCZXJnZVwiLFxuICAgIFwiQmVyZ25hdW1cIixcbiAgICBcIkJlcmdzdHJvbVwiLFxuICAgIFwiQmVybmhhcmRcIixcbiAgICBcIkJlcm5pZXJcIixcbiAgICBcIkJpbnNcIixcbiAgICBcIkJsYW5kYVwiLFxuICAgIFwiQmxpY2tcIixcbiAgICBcIkJsb2NrXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2VobVwiLFxuICAgIFwiQm9nYW5cIixcbiAgICBcIkJvZ2lzaWNoXCIsXG4gICAgXCJCb3JlclwiLFxuICAgIFwiQm9zY29cIixcbiAgICBcIkJvdHNmb3JkXCIsXG4gICAgXCJCb3llclwiLFxuICAgIFwiQm95bGVcIixcbiAgICBcIkJyYWR0a2VcIixcbiAgICBcIkJyYWt1c1wiLFxuICAgIFwiQnJhdW5cIixcbiAgICBcIkJyZWl0ZW5iZXJnXCIsXG4gICAgXCJCcmVra2VcIixcbiAgICBcIkJyb3duXCIsXG4gICAgXCJCcnVlblwiLFxuICAgIFwiQnVja3JpZGdlXCIsXG4gICAgXCJDYXJyb2xsXCIsXG4gICAgXCJDYXJ0ZXJcIixcbiAgICBcIkNhcnR3cmlnaHRcIixcbiAgICBcIkNhc3BlclwiLFxuICAgIFwiQ2Fzc2luXCIsXG4gICAgXCJDaGFtcGxpblwiLFxuICAgIFwiQ2hyaXN0aWFuc2VuXCIsXG4gICAgXCJDb2xlXCIsXG4gICAgXCJDb2xsaWVyXCIsXG4gICAgXCJDb2xsaW5zXCIsXG4gICAgXCJDb25uXCIsXG4gICAgXCJDb25uZWxseVwiLFxuICAgIFwiQ29ucm95XCIsXG4gICAgXCJDb25zaWRpbmVcIixcbiAgICBcIkNvcmtlcnlcIixcbiAgICBcIkNvcm1pZXJcIixcbiAgICBcIkNvcndpblwiLFxuICAgIFwiQ3JlbWluXCIsXG4gICAgXCJDcmlzdFwiLFxuICAgIFwiQ3JvbmFcIixcbiAgICBcIkNyb25pblwiLFxuICAgIFwiQ3Jvb2tzXCIsXG4gICAgXCJDcnVpY2tzaGFua1wiLFxuICAgIFwiQ3VtbWVyYXRhXCIsXG4gICAgXCJDdW1taW5nc1wiLFxuICAgIFwiRGFjaFwiLFxuICAgIFwiRCdBbW9yZVwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJEYXJlXCIsXG4gICAgXCJEYXVnaGVydHlcIixcbiAgICBcIkRhdmlzXCIsXG4gICAgXCJEZWNrb3dcIixcbiAgICBcIkRlbmVzaWtcIixcbiAgICBcIkRpYmJlcnRcIixcbiAgICBcIkRpY2tlbnNcIixcbiAgICBcIkRpY2tpXCIsXG4gICAgXCJEaWNraW5zb25cIixcbiAgICBcIkRpZXRyaWNoXCIsXG4gICAgXCJEb25uZWxseVwiLFxuICAgIFwiRG9vbGV5XCIsXG4gICAgXCJEb3VnbGFzXCIsXG4gICAgXCJEb3lsZVwiLFxuICAgIFwiRHVCdXF1ZVwiLFxuICAgIFwiRHVyZ2FuXCIsXG4gICAgXCJFYmVydFwiLFxuICAgIFwiRWZmZXJ0elwiLFxuICAgIFwiRWljaG1hbm5cIixcbiAgICBcIkVtYXJkXCIsXG4gICAgXCJFbW1lcmljaFwiLFxuICAgIFwiRXJkbWFuXCIsXG4gICAgXCJFcm5zZXJcIixcbiAgICBcIkZhZGVsXCIsXG4gICAgXCJGYWhleVwiLFxuICAgIFwiRmFycmVsbFwiLFxuICAgIFwiRmF5XCIsXG4gICAgXCJGZWVuZXlcIixcbiAgICBcIkZlZXN0XCIsXG4gICAgXCJGZWlsXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmlzaGVyXCIsXG4gICAgXCJGbGF0bGV5XCIsXG4gICAgXCJGcmFtaVwiLFxuICAgIFwiRnJhbmVja2lcIixcbiAgICBcIkZyaWVzZW5cIixcbiAgICBcIkZyaXRzY2hcIixcbiAgICBcIkZ1bmtcIixcbiAgICBcIkdheWxvcmRcIixcbiAgICBcIkdlcmhvbGRcIixcbiAgICBcIkdlcmxhY2hcIixcbiAgICBcIkdpYnNvblwiLFxuICAgIFwiR2lzbGFzb25cIixcbiAgICBcIkdsZWFzb25cIixcbiAgICBcIkdsZWljaG5lclwiLFxuICAgIFwiR2xvdmVyXCIsXG4gICAgXCJHb2xkbmVyXCIsXG4gICAgXCJHb29kd2luXCIsXG4gICAgXCJHb3JjemFueVwiLFxuICAgIFwiR290dGxpZWJcIixcbiAgICBcIkdveWV0dGVcIixcbiAgICBcIkdyYWR5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZW5mZWxkZXJcIixcbiAgICBcIkdyZWVuaG9sdFwiLFxuICAgIFwiR3JpbWVzXCIsXG4gICAgXCJHdWxnb3dza2lcIixcbiAgICBcIkd1c2lrb3dza2lcIixcbiAgICBcIkd1dGtvd3NraVwiLFxuICAgIFwiR3V0bWFublwiLFxuICAgIFwiSGFhZ1wiLFxuICAgIFwiSGFja2V0dFwiLFxuICAgIFwiSGFnZW5lc1wiLFxuICAgIFwiSGFoblwiLFxuICAgIFwiSGFsZXlcIixcbiAgICBcIkhhbHZvcnNvblwiLFxuICAgIFwiSGFtaWxsXCIsXG4gICAgXCJIYW1tZXNcIixcbiAgICBcIkhhbmRcIixcbiAgICBcIkhhbmVcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyYmVyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkhhcnRtYW5uXCIsXG4gICAgXCJIYXJ2ZXlcIixcbiAgICBcIkhhdWNrXCIsXG4gICAgXCJIYXllc1wiLFxuICAgIFwiSGVhbmV5XCIsXG4gICAgXCJIZWF0aGNvdGVcIixcbiAgICBcIkhlZ21hbm5cIixcbiAgICBcIkhlaWRlbnJlaWNoXCIsXG4gICAgXCJIZWxsZXJcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWlzdG9uXCIsXG4gICAgXCJIZXJ6b2dcIixcbiAgICBcIkhlc3NlbFwiLFxuICAgIFwiSGV0dGluZ2VyXCIsXG4gICAgXCJIaWNrbGVcIixcbiAgICBcIkhpbGxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSGlscGVydFwiLFxuICAgIFwiSGludHpcIixcbiAgICBcIkhpcnRoZVwiLFxuICAgIFwiSG9ka2lld2ljelwiLFxuICAgIFwiSG9lZ2VyXCIsXG4gICAgXCJIb21lbmlja1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvd2VcIixcbiAgICBcIkhvd2VsbFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWVsXCIsXG4gICAgXCJIdWVsc1wiLFxuICAgIFwiSHlhdHRcIixcbiAgICBcIkphY29iaVwiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYWNvYnNvblwiLFxuICAgIFwiSmFrdWJvd3NraVwiLFxuICAgIFwiSmFza29sc2tpXCIsXG4gICAgXCJKYXN0XCIsXG4gICAgXCJKZW5raW5zXCIsXG4gICAgXCJKZXJkZVwiLFxuICAgIFwiSm9obnNcIixcbiAgICBcIkpvaG5zb25cIixcbiAgICBcIkpvaG5zdG9uXCIsXG4gICAgXCJKb25lc1wiLFxuICAgIFwiS2Fzc3Vsa2VcIixcbiAgICBcIkthdXR6ZXJcIixcbiAgICBcIktlZWJsZXJcIixcbiAgICBcIktlZWxpbmdcIixcbiAgICBcIktlbW1lclwiLFxuICAgIFwiS2VybHVrZVwiLFxuICAgIFwiS2VydHptYW5uXCIsXG4gICAgXCJLZXNzbGVyXCIsXG4gICAgXCJLaWVoblwiLFxuICAgIFwiS2loblwiLFxuICAgIFwiS2lsYmFja1wiLFxuICAgIFwiS2luZ1wiLFxuICAgIFwiS2lybGluXCIsXG4gICAgXCJLbGVpblwiLFxuICAgIFwiS2xpbmdcIixcbiAgICBcIktsb2Nrb1wiLFxuICAgIFwiS29jaFwiLFxuICAgIFwiS29lbHBpblwiLFxuICAgIFwiS29lcHBcIixcbiAgICBcIktvaGxlclwiLFxuICAgIFwiS29ub3BlbHNraVwiLFxuICAgIFwiS29zc1wiLFxuICAgIFwiS292YWNla1wiLFxuICAgIFwiS296ZXlcIixcbiAgICBcIktyYWpjaWtcIixcbiAgICBcIktyZWlnZXJcIixcbiAgICBcIktyaXNcIixcbiAgICBcIktzaGxlcmluXCIsXG4gICAgXCJLdWJcIixcbiAgICBcIkt1aGljXCIsXG4gICAgXCJLdWhsbWFuXCIsXG4gICAgXCJLdWhuXCIsXG4gICAgXCJLdWxhc1wiLFxuICAgIFwiS3VuZGVcIixcbiAgICBcIkt1bnplXCIsXG4gICAgXCJLdXBoYWxcIixcbiAgICBcIkt1dGNoXCIsXG4gICAgXCJLdXZhbGlzXCIsXG4gICAgXCJMYWJhZGllXCIsXG4gICAgXCJMYWtpblwiLFxuICAgIFwiTGFuZ1wiLFxuICAgIFwiTGFuZ29zaFwiLFxuICAgIFwiTGFuZ3dvcnRoXCIsXG4gICAgXCJMYXJraW5cIixcbiAgICBcIkxhcnNvblwiLFxuICAgIFwiTGVhbm5vblwiLFxuICAgIFwiTGVic2Fja1wiLFxuICAgIFwiTGVkbmVyXCIsXG4gICAgXCJMZWZmbGVyXCIsXG4gICAgXCJMZWdyb3NcIixcbiAgICBcIkxlaG5lclwiLFxuICAgIFwiTGVta2VcIixcbiAgICBcIkxlc2NoXCIsXG4gICAgXCJMZXVzY2hrZVwiLFxuICAgIFwiTGluZFwiLFxuICAgIFwiTGluZGdyZW5cIixcbiAgICBcIkxpdHRlbFwiLFxuICAgIFwiTGl0dGxlXCIsXG4gICAgXCJMb2NrbWFuXCIsXG4gICAgXCJMb3dlXCIsXG4gICAgXCJMdWJvd2l0elwiLFxuICAgIFwiTHVlaWx3aXR6XCIsXG4gICAgXCJMdWV0dGdlblwiLFxuICAgIFwiTHluY2hcIixcbiAgICBcIk1hY2Vqa292aWNcIixcbiAgICBcIk1hY0d5dmVyXCIsXG4gICAgXCJNYWdnaW9cIixcbiAgICBcIk1hbm5cIixcbiAgICBcIk1hbnRlXCIsXG4gICAgXCJNYXJrc1wiLFxuICAgIFwiTWFycXVhcmR0XCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNYXllcnRcIixcbiAgICBcIk1jQ2x1cmVcIixcbiAgICBcIk1jQ3VsbG91Z2hcIixcbiAgICBcIk1jRGVybW90dFwiLFxuICAgIFwiTWNHbHlublwiLFxuICAgIFwiTWNLZW56aWVcIixcbiAgICBcIk1jTGF1Z2hsaW5cIixcbiAgICBcIk1lZGh1cnN0XCIsXG4gICAgXCJNZXJ0elwiLFxuICAgIFwiTWV0elwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaWxsc1wiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIk1vZW5cIixcbiAgICBcIk1vaHJcIixcbiAgICBcIk1vbmFoYW5cIixcbiAgICBcIk1vb3JlXCIsXG4gICAgXCJNb3JhclwiLFxuICAgIFwiTW9yaXNzZXR0ZVwiLFxuICAgIFwiTW9zY2lza2lcIixcbiAgICBcIk1yYXpcIixcbiAgICBcIk11ZWxsZXJcIixcbiAgICBcIk11bGxlclwiLFxuICAgIFwiTXVyYXppa1wiLFxuICAgIFwiTXVycGh5XCIsXG4gICAgXCJNdXJyYXlcIixcbiAgICBcIk5hZGVyXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOaWVub3dcIixcbiAgICBcIk5pa29sYXVzXCIsXG4gICAgXCJOaXR6c2NoZVwiLFxuICAgIFwiTm9sYW5cIixcbiAgICBcIk9iZXJicnVubmVyXCIsXG4gICAgXCJPJ0Nvbm5lbGxcIixcbiAgICBcIk8nQ29ubmVyXCIsXG4gICAgXCJPJ0hhcmFcIixcbiAgICBcIk8nS2VlZmVcIixcbiAgICBcIk8nS29uXCIsXG4gICAgXCJPa3VuZXZhXCIsXG4gICAgXCJPbHNvblwiLFxuICAgIFwiT25kcmlja2FcIixcbiAgICBcIk8nUmVpbGx5XCIsXG4gICAgXCJPcm5cIixcbiAgICBcIk9ydGl6XCIsXG4gICAgXCJPc2luc2tpXCIsXG4gICAgXCJQYWNvY2hhXCIsXG4gICAgXCJQYWRiZXJnXCIsXG4gICAgXCJQYWdhY1wiLFxuICAgIFwiUGFyaXNpYW5cIixcbiAgICBcIlBhcmtlclwiLFxuICAgIFwiUGF1Y2VrXCIsXG4gICAgXCJQZmFubmVyc3RpbGxcIixcbiAgICBcIlBmZWZmZXJcIixcbiAgICBcIlBvbGxpY2hcIixcbiAgICBcIlBvdXJvc1wiLFxuICAgIFwiUG93bG93c2tpXCIsXG4gICAgXCJQcmVkb3ZpY1wiLFxuICAgIFwiUHJpY2VcIixcbiAgICBcIlByb2hhc2thXCIsXG4gICAgXCJQcm9zYWNjb1wiLFxuICAgIFwiUHVyZHlcIixcbiAgICBcIlF1aWdsZXlcIixcbiAgICBcIlF1aXR6b25cIixcbiAgICBcIlJhdGhcIixcbiAgICBcIlJhdGtlXCIsXG4gICAgXCJSYXVcIixcbiAgICBcIlJheW5vclwiLFxuICAgIFwiUmVpY2hlbFwiLFxuICAgIFwiUmVpY2hlcnRcIixcbiAgICBcIlJlaWxseVwiLFxuICAgIFwiUmVpbmdlclwiLFxuICAgIFwiUmVtcGVsXCIsXG4gICAgXCJSZW5uZXJcIixcbiAgICBcIlJleW5vbGRzXCIsXG4gICAgXCJSaWNlXCIsXG4gICAgXCJSaXBwaW5cIixcbiAgICBcIlJpdGNoaWVcIixcbiAgICBcIlJvYmVsXCIsXG4gICAgXCJSb2JlcnRzXCIsXG4gICAgXCJSb2RyaWd1ZXpcIixcbiAgICBcIlJvZ2FoblwiLFxuICAgIFwiUm9oYW5cIixcbiAgICBcIlJvbGZzb25cIixcbiAgICBcIlJvbWFndWVyYVwiLFxuICAgIFwiUm9vYlwiLFxuICAgIFwiUm9zZW5iYXVtXCIsXG4gICAgXCJSb3dlXCIsXG4gICAgXCJSdWVja2VyXCIsXG4gICAgXCJSdW5vbGZzZG90dGlyXCIsXG4gICAgXCJSdW5vbGZzc29uXCIsXG4gICAgXCJSdW50ZVwiLFxuICAgIFwiUnVzc2VsXCIsXG4gICAgXCJSdXRoZXJmb3JkXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJTYW5mb3JkXCIsXG4gICAgXCJTYXR0ZXJmaWVsZFwiLFxuICAgIFwiU2F1ZXJcIixcbiAgICBcIlNhd2F5blwiLFxuICAgIFwiU2NoYWRlblwiLFxuICAgIFwiU2NoYWVmZXJcIixcbiAgICBcIlNjaGFtYmVyZ2VyXCIsXG4gICAgXCJTY2hpbGxlclwiLFxuICAgIFwiU2NoaW1tZWxcIixcbiAgICBcIlNjaGlubmVyXCIsXG4gICAgXCJTY2htZWxlclwiLFxuICAgIFwiU2NobWlkdFwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2hvZW5cIixcbiAgICBcIlNjaG93YWx0ZXJcIixcbiAgICBcIlNjaHJvZWRlclwiLFxuICAgIFwiU2NodWxpc3RcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNjaHVtbVwiLFxuICAgIFwiU2NodXBwZVwiLFxuICAgIFwiU2NodXN0ZXJcIixcbiAgICBcIlNlbmdlclwiLFxuICAgIFwiU2hhbmFoYW5cIixcbiAgICBcIlNoaWVsZHNcIixcbiAgICBcIlNpbW9uaXNcIixcbiAgICBcIlNpcGVzXCIsXG4gICAgXCJTa2lsZXNcIixcbiAgICBcIlNtaXRoXCIsXG4gICAgXCJTbWl0aGFtXCIsXG4gICAgXCJTcGVuY2VyXCIsXG4gICAgXCJTcGlua2FcIixcbiAgICBcIlNwb3JlclwiLFxuICAgIFwiU3RhbW1cIixcbiAgICBcIlN0YW50b25cIixcbiAgICBcIlN0YXJrXCIsXG4gICAgXCJTdGVoclwiLFxuICAgIFwiU3RldWJlclwiLFxuICAgIFwiU3RpZWRlbWFublwiLFxuICAgIFwiU3Rva2VzXCIsXG4gICAgXCJTdG9sdGVuYmVyZ1wiLFxuICAgIFwiU3RyYWNrZVwiLFxuICAgIFwiU3RyZWljaFwiLFxuICAgIFwiU3Ryb21hblwiLFxuICAgIFwiU3Ryb3NpblwiLFxuICAgIFwiU3dhbmlhd3NraVwiLFxuICAgIFwiU3dpZnRcIixcbiAgICBcIlRlcnJ5XCIsXG4gICAgXCJUaGllbFwiLFxuICAgIFwiVGhvbXBzb25cIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRvcnBcIixcbiAgICBcIlRvcnBoeVwiLFxuICAgIFwiVG93bmVcIixcbiAgICBcIlRveVwiLFxuICAgIFwiVHJhbnRvd1wiLFxuICAgIFwiVHJlbWJsYXlcIixcbiAgICBcIlRyZXV0ZWxcIixcbiAgICBcIlRyb21wXCIsXG4gICAgXCJUdXJjb3R0ZVwiLFxuICAgIFwiVHVybmVyXCIsXG4gICAgXCJVbGxyaWNoXCIsXG4gICAgXCJVcHRvblwiLFxuICAgIFwiVmFuZGVydm9ydFwiLFxuICAgIFwiVmV1bVwiLFxuICAgIFwiVm9sa21hblwiLFxuICAgIFwiVm9uXCIsXG4gICAgXCJWb25SdWVkZW5cIixcbiAgICBcIldhZWxjaGlcIixcbiAgICBcIldhbGtlclwiLFxuICAgIFwiV2Fsc2hcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FyZFwiLFxuICAgIFwiV2F0ZXJzXCIsXG4gICAgXCJXYXRzaWNhXCIsXG4gICAgXCJXZWJlclwiLFxuICAgIFwiV2VobmVyXCIsXG4gICAgXCJXZWltYW5uXCIsXG4gICAgXCJXZWlzc25hdFwiLFxuICAgIFwiV2VsY2hcIixcbiAgICBcIldlc3RcIixcbiAgICBcIldoaXRlXCIsXG4gICAgXCJXaWVnYW5kXCIsXG4gICAgXCJXaWxkZXJtYW5cIixcbiAgICBcIldpbGtpbnNvblwiLFxuICAgIFwiV2lsbFwiLFxuICAgIFwiV2lsbGlhbXNvblwiLFxuICAgIFwiV2lsbG1zXCIsXG4gICAgXCJXaW5kbGVyXCIsXG4gICAgXCJXaW50aGVpc2VyXCIsXG4gICAgXCJXaXNva3lcIixcbiAgICBcIldpc296a1wiLFxuICAgIFwiV2l0dGluZ1wiLFxuICAgIFwiV2l6YVwiLFxuICAgIFwiV29sZlwiLFxuICAgIFwiV29sZmZcIixcbiAgICBcIld1Y2tlcnRcIixcbiAgICBcIld1bnNjaFwiLFxuICAgIFwiV3ltYW5cIixcbiAgICBcIllvc3RcIixcbiAgICBcIll1bmR0XCIsXG4gICAgXCJaYm9uY2FrXCIsXG4gICAgXCJaZW1sYWtcIixcbiAgICBcIlppZW1hbm5cIixcbiAgICBcIlppZW1lXCIsXG4gICAgXCJadWxhdWZcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJNci5cIixcbiAgICBcIk1ycy5cIixcbiAgICBcIk1zLlwiLFxuICAgIFwiTWlzc1wiLFxuICAgIFwiRHIuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiSnIuXCIsXG4gICAgXCJTci5cIixcbiAgICBcIklcIixcbiAgICBcIklJXCIsXG4gICAgXCJJSUlcIixcbiAgICBcIklWXCIsXG4gICAgXCJWXCIsXG4gICAgXCJNRFwiLFxuICAgIFwiRERTXCIsXG4gICAgXCJQaERcIixcbiAgICBcIkRWTVwiXG4gIF0sXG4gIFwidGl0bGVcIjoge1xuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIkxlYWRcIixcbiAgICAgIFwiU2VuaW9yXCIsXG4gICAgICBcIkRpcmVjdFwiLFxuICAgICAgXCJDb3Jwb3JhdGVcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJGdXR1cmVcIixcbiAgICAgIFwiUHJvZHVjdFwiLFxuICAgICAgXCJOYXRpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cmljdFwiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDdXN0b21lclwiLFxuICAgICAgXCJJbnZlc3RvclwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiTGVnYWN5XCIsXG4gICAgICBcIkZvcndhcmRcIixcbiAgICAgIFwiSW50ZXJuYWxcIixcbiAgICAgIFwiSHVtYW5cIixcbiAgICAgIFwiQ2hpZWZcIixcbiAgICAgIFwiUHJpbmNpcGFsXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1dGlvbnNcIixcbiAgICAgIFwiUHJvZ3JhbVwiLFxuICAgICAgXCJCcmFuZFwiLFxuICAgICAgXCJTZWN1cml0eVwiLFxuICAgICAgXCJSZXNlYXJjaFwiLFxuICAgICAgXCJNYXJrZXRpbmdcIixcbiAgICAgIFwiRGlyZWN0aXZlc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJJbnRlZ3JhdGlvblwiLFxuICAgICAgXCJGdW5jdGlvbmFsaXR5XCIsXG4gICAgICBcIlJlc3BvbnNlXCIsXG4gICAgICBcIlBhcmFkaWdtXCIsXG4gICAgICBcIlRhY3RpY3NcIixcbiAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgIFwiTWFya2V0c1wiLFxuICAgICAgXCJHcm91cFwiLFxuICAgICAgXCJEaXZpc2lvblwiLFxuICAgICAgXCJBcHBsaWNhdGlvbnNcIixcbiAgICAgIFwiT3B0aW1pemF0aW9uXCIsXG4gICAgICBcIk9wZXJhdGlvbnNcIixcbiAgICAgIFwiSW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tbXVuaWNhdGlvbnNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkJyYW5kaW5nXCIsXG4gICAgICBcIlF1YWxpdHlcIixcbiAgICAgIFwiQXNzdXJhbmNlXCIsXG4gICAgICBcIk1vYmlsaXR5XCIsXG4gICAgICBcIkFjY291bnRzXCIsXG4gICAgICBcIkRhdGFcIixcbiAgICAgIFwiQ3JlYXRpdmVcIixcbiAgICAgIFwiQ29uZmlndXJhdGlvblwiLFxuICAgICAgXCJBY2NvdW50YWJpbGl0eVwiLFxuICAgICAgXCJJbnRlcmFjdGlvbnNcIixcbiAgICAgIFwiRmFjdG9yc1wiLFxuICAgICAgXCJVc2FiaWxpdHlcIixcbiAgICAgIFwiTWV0cmljc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNzb2NpYXRlXCIsXG4gICAgICBcIkV4ZWN1dGl2ZVwiLFxuICAgICAgXCJMaWFzb25cIixcbiAgICAgIFwiT2ZmaWNlclwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkVuZ2luZWVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmF0b3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRvclwiLFxuICAgICAgXCJBcmNoaXRlY3RcIixcbiAgICAgIFwiQW5hbHlzdFwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJQbGFubmVyXCIsXG4gICAgICBcIk9yY2hlc3RyYXRvclwiLFxuICAgICAgXCJUZWNobmljaWFuXCIsXG4gICAgICBcIkRldmVsb3BlclwiLFxuICAgICAgXCJQcm9kdWNlclwiLFxuICAgICAgXCJDb25zdWx0YW50XCIsXG4gICAgICBcIkFzc2lzdGFudFwiLFxuICAgICAgXCJGYWNpbGl0YXRvclwiLFxuICAgICAgXCJBZ2VudFwiLFxuICAgICAgXCJSZXByZXNlbnRhdGl2ZVwiLFxuICAgICAgXCJTdHJhdGVnaXN0XCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZW4ucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIigjIyMpICMjIy0jIyMjIHgjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjXCIsXG4gICAgXCIjIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIigjIyMpICMjIy0jIyMjIHgjIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjXCIsXG4gICAgXCIjIyMtIyMjLSMjIyMgeCMjIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjI1wiXG4gIF1cbn07XG5lbi5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiXG4gIF1cbn07XG5lbi5idXNpbmVzcyA9IHtcbiAgXCJjcmVkaXRfY2FyZF9udW1iZXJzXCI6IFtcbiAgICBcIjEyMzQtMjEyMS0xMjIxLTEyMTFcIixcbiAgICBcIjEyMTItMTIyMS0xMTIxLTEyMzRcIixcbiAgICBcIjEyMTEtMTIyMS0xMjM0LTIyMDFcIixcbiAgICBcIjEyMjgtMTIyMS0xMjIxLTE0MzFcIlxuICBdLFxuICBcImNyZWRpdF9jYXJkX2V4cGlyeV9kYXRlc1wiOiBbXG4gICAgXCIyMDExLTEwLTEyXCIsXG4gICAgXCIyMDEyLTExLTEyXCIsXG4gICAgXCIyMDE1LTExLTExXCIsXG4gICAgXCIyMDEzLTktMTJcIlxuICBdLFxuICBcImNyZWRpdF9jYXJkX3R5cGVzXCI6IFtcbiAgICBcInZpc2FcIixcbiAgICBcIm1hc3RlcmNhcmRcIixcbiAgICBcImFtZXJpY2FuZXhwcmVzc1wiLFxuICAgIFwiZGlzY292ZXJcIlxuICBdXG59O1xuZW4uY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwicmVkXCIsXG4gICAgXCJncmVlblwiLFxuICAgIFwiYmx1ZVwiLFxuICAgIFwieWVsbG93XCIsXG4gICAgXCJwdXJwbGVcIixcbiAgICBcIm1pbnQgZ3JlZW5cIixcbiAgICBcInRlYWxcIixcbiAgICBcIndoaXRlXCIsXG4gICAgXCJibGFja1wiLFxuICAgIFwib3JhbmdlXCIsXG4gICAgXCJwaW5rXCIsXG4gICAgXCJncmV5XCIsXG4gICAgXCJtYXJvb25cIixcbiAgICBcInZpb2xldFwiLFxuICAgIFwidHVycXVvaXNlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInNreSBibHVlXCIsXG4gICAgXCJzYWxtb25cIixcbiAgICBcInBsdW1cIixcbiAgICBcIm9yY2hpZFwiLFxuICAgIFwib2xpdmVcIixcbiAgICBcIm1hZ2VudGFcIixcbiAgICBcImxpbWVcIixcbiAgICBcIml2b3J5XCIsXG4gICAgXCJpbmRpZ29cIixcbiAgICBcImdvbGRcIixcbiAgICBcImZ1Y2hzaWFcIixcbiAgICBcImN5YW5cIixcbiAgICBcImF6dXJlXCIsXG4gICAgXCJsYXZlbmRlclwiLFxuICAgIFwic2lsdmVyXCJcbiAgXSxcbiAgXCJkZXBhcnRtZW50XCI6IFtcbiAgICBcIkJvb2tzXCIsXG4gICAgXCJNb3ZpZXNcIixcbiAgICBcIk11c2ljXCIsXG4gICAgXCJHYW1lc1wiLFxuICAgIFwiRWxlY3Ryb25pY3NcIixcbiAgICBcIkNvbXB1dGVyc1wiLFxuICAgIFwiSG9tZVwiLFxuICAgIFwiR2FyZGVuXCIsXG4gICAgXCJUb29sc1wiLFxuICAgIFwiR3JvY2VyeVwiLFxuICAgIFwiSGVhbHRoXCIsXG4gICAgXCJCZWF1dHlcIixcbiAgICBcIlRveXNcIixcbiAgICBcIktpZHNcIixcbiAgICBcIkJhYnlcIixcbiAgICBcIkNsb3RoaW5nXCIsXG4gICAgXCJTaG9lc1wiLFxuICAgIFwiSmV3ZWxlcnlcIixcbiAgICBcIlNwb3J0c1wiLFxuICAgIFwiT3V0ZG9vcnNcIixcbiAgICBcIkF1dG9tb3RpdmVcIixcbiAgICBcIkluZHVzdHJpYWxcIlxuICBdLFxuICBcInByb2R1Y3RfbmFtZVwiOiB7XG4gICAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJTbWFsbFwiLFxuICAgICAgXCJFcmdvbm9taWNcIixcbiAgICAgIFwiUnVzdGljXCIsXG4gICAgICBcIkludGVsbGlnZW50XCIsXG4gICAgICBcIkdvcmdlb3VzXCIsXG4gICAgICBcIkluY3JlZGlibGVcIixcbiAgICAgIFwiRmFudGFzdGljXCIsXG4gICAgICBcIlByYWN0aWNhbFwiLFxuICAgICAgXCJTbGVla1wiLFxuICAgICAgXCJBd2Vzb21lXCJcbiAgICBdLFxuICAgIFwibWF0ZXJpYWxcIjogW1xuICAgICAgXCJTdGVlbFwiLFxuICAgICAgXCJXb29kZW5cIixcbiAgICAgIFwiQ29uY3JldGVcIixcbiAgICAgIFwiUGxhc3RpY1wiLFxuICAgICAgXCJDb3R0b25cIixcbiAgICAgIFwiR3Jhbml0ZVwiLFxuICAgICAgXCJSdWJiZXJcIlxuICAgIF0sXG4gICAgXCJwcm9kdWN0XCI6IFtcbiAgICAgIFwiQ2hhaXJcIixcbiAgICAgIFwiQ2FyXCIsXG4gICAgICBcIkNvbXB1dGVyXCIsXG4gICAgICBcIkdsb3Zlc1wiLFxuICAgICAgXCJQYW50c1wiLFxuICAgICAgXCJTaGlydFwiLFxuICAgICAgXCJUYWJsZVwiLFxuICAgICAgXCJTaG9lc1wiLFxuICAgICAgXCJIYXRcIlxuICAgIF1cbiAgfVxufTtcbmVuLnRlYW0gPSB7XG4gIFwiY3JlYXR1cmVcIjogW1xuICAgIFwiYW50c1wiLFxuICAgIFwiYmF0c1wiLFxuICAgIFwiYmVhcnNcIixcbiAgICBcImJlZXNcIixcbiAgICBcImJpcmRzXCIsXG4gICAgXCJidWZmYWxvXCIsXG4gICAgXCJjYXRzXCIsXG4gICAgXCJjaGlja2Vuc1wiLFxuICAgIFwiY2F0dGxlXCIsXG4gICAgXCJkb2dzXCIsXG4gICAgXCJkb2xwaGluc1wiLFxuICAgIFwiZHVja3NcIixcbiAgICBcImVsZXBoYW50c1wiLFxuICAgIFwiZmlzaGVzXCIsXG4gICAgXCJmb3hlc1wiLFxuICAgIFwiZnJvZ3NcIixcbiAgICBcImdlZXNlXCIsXG4gICAgXCJnb2F0c1wiLFxuICAgIFwiaG9yc2VzXCIsXG4gICAgXCJrYW5nYXJvb3NcIixcbiAgICBcImxpb25zXCIsXG4gICAgXCJtb25rZXlzXCIsXG4gICAgXCJvd2xzXCIsXG4gICAgXCJveGVuXCIsXG4gICAgXCJwZW5ndWluc1wiLFxuICAgIFwicGVvcGxlXCIsXG4gICAgXCJwaWdzXCIsXG4gICAgXCJyYWJiaXRzXCIsXG4gICAgXCJzaGVlcFwiLFxuICAgIFwidGlnZXJzXCIsXG4gICAgXCJ3aGFsZXNcIixcbiAgICBcIndvbHZlc1wiLFxuICAgIFwiemVicmFzXCIsXG4gICAgXCJiYW5zaGVlc1wiLFxuICAgIFwiY3Jvd3NcIixcbiAgICBcImJsYWNrIGNhdHNcIixcbiAgICBcImNoaW1lcmFzXCIsXG4gICAgXCJnaG9zdHNcIixcbiAgICBcImNvbnNwaXJhdG9yc1wiLFxuICAgIFwiZHJhZ29uc1wiLFxuICAgIFwiZHdhcnZlc1wiLFxuICAgIFwiZWx2ZXNcIixcbiAgICBcImVuY2hhbnRlcnNcIixcbiAgICBcImV4b3JjaXN0c1wiLFxuICAgIFwic29uc1wiLFxuICAgIFwiZm9lc1wiLFxuICAgIFwiZ2lhbnRzXCIsXG4gICAgXCJnbm9tZXNcIixcbiAgICBcImdvYmxpbnNcIixcbiAgICBcImdvb3Nlc1wiLFxuICAgIFwiZ3JpZmZpbnNcIixcbiAgICBcImx5Y2FudGhyb3Blc1wiLFxuICAgIFwibmVtZXNpc1wiLFxuICAgIFwib2dyZXNcIixcbiAgICBcIm9yYWNsZXNcIixcbiAgICBcInByb3BoZXRzXCIsXG4gICAgXCJzb3JjZXJvcnNcIixcbiAgICBcInNwaWRlcnNcIixcbiAgICBcInNwaXJpdHNcIixcbiAgICBcInZhbXBpcmVzXCIsXG4gICAgXCJ3YXJsb2Nrc1wiLFxuICAgIFwidml4ZW5zXCIsXG4gICAgXCJ3ZXJld29sdmVzXCIsXG4gICAgXCJ3aXRjaGVzXCIsXG4gICAgXCJ3b3JzaGlwZXJzXCIsXG4gICAgXCJ6b21iaWVzXCIsXG4gICAgXCJkcnVpZHNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tBZGRyZXNzLnN0YXRlfSAje2NyZWF0dXJlfVwiXG4gIF1cbn07XG5lbi5oYWNrZXIgPSB7XG4gIFwiYWJicmV2aWF0aW9uXCI6IFtcbiAgICBcIlRDUFwiLFxuICAgIFwiSFRUUFwiLFxuICAgIFwiU0REXCIsXG4gICAgXCJSQU1cIixcbiAgICBcIkdCXCIsXG4gICAgXCJDU1NcIixcbiAgICBcIlNTTFwiLFxuICAgIFwiQUdQXCIsXG4gICAgXCJTUUxcIixcbiAgICBcIkZUUFwiLFxuICAgIFwiUENJXCIsXG4gICAgXCJBSVwiLFxuICAgIFwiQURQXCIsXG4gICAgXCJSU1NcIixcbiAgICBcIlhNTFwiLFxuICAgIFwiRVhFXCIsXG4gICAgXCJDT01cIixcbiAgICBcIkhERFwiLFxuICAgIFwiVEhYXCIsXG4gICAgXCJTTVRQXCIsXG4gICAgXCJTTVNcIixcbiAgICBcIlVTQlwiLFxuICAgIFwiUE5HXCIsXG4gICAgXCJTQVNcIixcbiAgICBcIklCXCIsXG4gICAgXCJTQ1NJXCIsXG4gICAgXCJKU09OXCIsXG4gICAgXCJYU1NcIixcbiAgICBcIkpCT0RcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgXCJhdXhpbGlhcnlcIixcbiAgICBcInByaW1hcnlcIixcbiAgICBcImJhY2stZW5kXCIsXG4gICAgXCJkaWdpdGFsXCIsXG4gICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgIFwidmlydHVhbFwiLFxuICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICBcInJlZHVuZGFudFwiLFxuICAgIFwib25saW5lXCIsXG4gICAgXCJoYXB0aWNcIixcbiAgICBcIm11bHRpLWJ5dGVcIixcbiAgICBcImJsdWV0b290aFwiLFxuICAgIFwid2lyZWxlc3NcIixcbiAgICBcIjEwODBwXCIsXG4gICAgXCJuZXVyYWxcIixcbiAgICBcIm9wdGljYWxcIixcbiAgICBcInNvbGlkIHN0YXRlXCIsXG4gICAgXCJtb2JpbGVcIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgIFwiZHJpdmVyXCIsXG4gICAgXCJwcm90b2NvbFwiLFxuICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgXCJwYW5lbFwiLFxuICAgIFwibWljcm9jaGlwXCIsXG4gICAgXCJwcm9ncmFtXCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJjYXJkXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcInNlbnNvclwiLFxuICAgIFwiZmlyZXdhbGxcIixcbiAgICBcImhhcmQgZHJpdmVcIixcbiAgICBcInBpeGVsXCIsXG4gICAgXCJhbGFybVwiLFxuICAgIFwiZmVlZFwiLFxuICAgIFwibW9uaXRvclwiLFxuICAgIFwiYXBwbGljYXRpb25cIixcbiAgICBcInRyYW5zbWl0dGVyXCIsXG4gICAgXCJidXNcIixcbiAgICBcImNpcmN1aXRcIixcbiAgICBcImNhcGFjaXRvclwiLFxuICAgIFwibWF0cml4XCJcbiAgXSxcbiAgXCJ2ZXJiXCI6IFtcbiAgICBcImJhY2sgdXBcIixcbiAgICBcImJ5cGFzc1wiLFxuICAgIFwiaGFja1wiLFxuICAgIFwib3ZlcnJpZGVcIixcbiAgICBcImNvbXByZXNzXCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJuYXZpZ2F0ZVwiLFxuICAgIFwiaW5kZXhcIixcbiAgICBcImNvbm5lY3RcIixcbiAgICBcImdlbmVyYXRlXCIsXG4gICAgXCJxdWFudGlmeVwiLFxuICAgIFwiY2FsY3VsYXRlXCIsXG4gICAgXCJzeW50aGVzaXplXCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwidHJhbnNtaXRcIixcbiAgICBcInByb2dyYW1cIixcbiAgICBcInJlYm9vdFwiLFxuICAgIFwicGFyc2VcIlxuICBdLFxuICBcImluZ3ZlcmJcIjogW1xuICAgIFwiYmFja2luZyB1cFwiLFxuICAgIFwiYnlwYXNzaW5nXCIsXG4gICAgXCJoYWNraW5nXCIsXG4gICAgXCJvdmVycmlkaW5nXCIsXG4gICAgXCJjb21wcmVzc2luZ1wiLFxuICAgIFwiY29weWluZ1wiLFxuICAgIFwibmF2aWdhdGluZ1wiLFxuICAgIFwiaW5kZXhpbmdcIixcbiAgICBcImNvbm5lY3RpbmdcIixcbiAgICBcImdlbmVyYXRpbmdcIixcbiAgICBcInF1YW50aWZ5aW5nXCIsXG4gICAgXCJjYWxjdWxhdGluZ1wiLFxuICAgIFwic3ludGhlc2l6aW5nXCIsXG4gICAgXCJ0cmFuc21pdHRpbmdcIixcbiAgICBcInByb2dyYW1taW5nXCIsXG4gICAgXCJwYXJzaW5nXCJcbiAgXVxufTtcbmVuLmFwcCA9IHtcbiAgXCJuYW1lXCI6IFtcbiAgICBcIlJlZGhvbGRcIixcbiAgICBcIlRyZWVmbGV4XCIsXG4gICAgXCJUcmlwcGxlZGV4XCIsXG4gICAgXCJLYW5sYW1cIixcbiAgICBcIkJpZ3RheFwiLFxuICAgIFwiRGFsdGZyZXNoXCIsXG4gICAgXCJUb3VnaGpveWZheFwiLFxuICAgIFwiTWF0IExhbSBUYW1cIixcbiAgICBcIk90Y29tXCIsXG4gICAgXCJUcmVzLVphcFwiLFxuICAgIFwiWS1Tb2xvd2FybVwiLFxuICAgIFwiVHJlc29tXCIsXG4gICAgXCJWb2x0c2lsbGFtXCIsXG4gICAgXCJCaW9kZXhcIixcbiAgICBcIkdyZWVubGFtXCIsXG4gICAgXCJWaXZhXCIsXG4gICAgXCJNYXRzb2Z0XCIsXG4gICAgXCJUZW1wXCIsXG4gICAgXCJab29sYWJcIixcbiAgICBcIlN1YmluXCIsXG4gICAgXCJSYW5rXCIsXG4gICAgXCJKb2JcIixcbiAgICBcIlN0cmluZ3RvdWdoXCIsXG4gICAgXCJUaW5cIixcbiAgICBcIkl0XCIsXG4gICAgXCJIb21lIEluZ1wiLFxuICAgIFwiWmFtaXRcIixcbiAgICBcIlNvbnNpbmdcIixcbiAgICBcIktvbmtsYWJcIixcbiAgICBcIkFscGhhXCIsXG4gICAgXCJMYXRsdXhcIixcbiAgICBcIlZveWF0b3VjaFwiLFxuICAgIFwiQWxwaGF6YXBcIixcbiAgICBcIkhvbGRsYW1pc1wiLFxuICAgIFwiWmFhbS1Eb3hcIixcbiAgICBcIlN1Yi1FeFwiLFxuICAgIFwiUXVvIEx1eFwiLFxuICAgIFwiQmFtaXR5XCIsXG4gICAgXCJWZW50b3NhbnphcFwiLFxuICAgIFwiTG90c3RyaW5nXCIsXG4gICAgXCJIYXRpdHlcIixcbiAgICBcIlRlbXBzb2Z0XCIsXG4gICAgXCJPdmVyaG9sZFwiLFxuICAgIFwiRml4ZmxleFwiLFxuICAgIFwiS29ua2x1eFwiLFxuICAgIFwiWm9udHJheFwiLFxuICAgIFwiVGFtcGZsZXhcIixcbiAgICBcIlNwYW5cIixcbiAgICBcIk5hbWZpeFwiLFxuICAgIFwiVHJhbnNjb2ZcIixcbiAgICBcIlN0aW1cIixcbiAgICBcIkZpeCBTYW5cIixcbiAgICBcIlNvbmFpclwiLFxuICAgIFwiU3Ryb25naG9sZFwiLFxuICAgIFwiRmludG9uZVwiLFxuICAgIFwiWS1maW5kXCIsXG4gICAgXCJPcGVsYVwiLFxuICAgIFwiTG90bHV4XCIsXG4gICAgXCJSb25zdHJpbmdcIixcbiAgICBcIlphdGhpblwiLFxuICAgIFwiRHVvYmFtXCIsXG4gICAgXCJLZXlsZXhcIlxuICBdLFxuICBcInZlcnNpb25cIjogW1xuICAgIFwiMC4jLiNcIixcbiAgICBcIjAuIyNcIixcbiAgICBcIiMuIyNcIixcbiAgICBcIiMuI1wiLFxuICAgIFwiIy4jLiNcIlxuICBdLFxuICBcImF1dGhvclwiOiBbXG4gICAgXCIje05hbWUubmFtZX1cIixcbiAgICBcIiN7Q29tcGFueS5uYW1lfVwiXG4gIF1cbn07XG5cbmVuLmZpbmFuY2UgPSB7fTtcbmVuLmZpbmFuY2UuYWNjb3VudF90eXBlID0gW1wiQ2hlY2tpbmdcIixcIlNhdmluZ3NcIixcIk1vbmV5IE1hcmtldFwiLCBcIkludmVzdG1lbnRcIiwgXCJIb21lIExvYW5cIiwgXCJDcmVkaXQgQ2FyZFwiLCBcIkF1dG8gTG9hblwiLCBcIlBlcnNvbmFsIExvYW5cIl07XG5lbi5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUgPSBbXCJkZXBvc2l0XCIsIFwid2l0aGRyYXdhbFwiLCBcInBheW1lbnRcIiwgXCJpbnZvaWNlXCJdO1xuXG5lbi5maW5hbmNlLmN1cnJlbmN5ID0ge1xuICBcIlVBRSBEaXJoYW1cIjoge1xuICAgIFwiY29kZVwiOiBcIkFFRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJBZmdoYW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJBRk5cIixcbiAgICBcInN5bWJvbFwiOiBcItiLXCJcbiAgfSxcbiAgXCJMZWtcIjoge1xuICAgIFwiY29kZVwiOiBcIkFMTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTGVrXCJcbiAgfSxcbiAgXCJBcm1lbmlhbiBEcmFtXCI6IHtcbiAgICBcImNvZGVcIjogXCJBTURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTmV0aGVybGFuZHMgQW50aWxsaWFuIEd1aWxkZXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkFOR1wiLFxuICAgIFwic3ltYm9sXCI6IFwixpJcIlxuICB9LFxuICBcIkt3YW56YVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQU9BXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkFyZ2VudGluZSBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJBUlNcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkF1c3RyYWxpYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJBVURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkFydWJhbiBHdWlsZGVyXCI6IHtcbiAgICBcImNvZGVcIjogXCJBV0dcIixcbiAgICBcInN5bWJvbFwiOiBcIsaSXCJcbiAgfSxcbiAgXCJBemVyYmFpamFuaWFuIE1hbmF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJBWk5cIixcbiAgICBcInN5bWJvbFwiOiBcItC80LDQvVwiXG4gIH0sXG4gIFwiQ29udmVydGlibGUgTWFya3NcIjoge1xuICAgIFwiY29kZVwiOiBcIkJBTVwiLFxuICAgIFwic3ltYm9sXCI6IFwiS01cIlxuICB9LFxuICBcIkJhcmJhZG9zIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkJEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJUYWthXCI6IHtcbiAgICBcImNvZGVcIjogXCJCRFRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQnVsZ2FyaWFuIExldlwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkdOXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJCYWhyYWluaSBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkhEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkJ1cnVuZGkgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkJJRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJCZXJtdWRpYW4gRG9sbGFyIChjdXN0b21hcmlseSBrbm93biBhcyBCZXJtdWRhIERvbGxhcilcIjoge1xuICAgIFwiY29kZVwiOiBcIkJNRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiQnJ1bmVpIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQk5EXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJCb2xpdmlhbm8gTXZkb2xcIjoge1xuICAgIFwiY29kZVwiOiBcIkJPQiBCT1ZcIixcbiAgICBcInN5bWJvbFwiOiBcIiRiXCJcbiAgfSxcbiAgXCJCcmF6aWxpYW4gUmVhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQlJMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSJFwiXG4gIH0sXG4gIFwiQmFoYW1pYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJCU0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlB1bGFcIjoge1xuICAgIFwiY29kZVwiOiBcIkJXUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiUFwiXG4gIH0sXG4gIFwiQmVsYXJ1c3NpYW4gUnVibGVcIjoge1xuICAgIFwiY29kZVwiOiBcIkJZUlwiLFxuICAgIFwic3ltYm9sXCI6IFwicC5cIlxuICB9LFxuICBcIkJlbGl6ZSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkJaRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiQlokXCJcbiAgfSxcbiAgXCJDYW5hZGlhbiBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkNBRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiQ29uZ29sZXNlIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJDREZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU3dpc3MgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkNIRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiQ0hGXCJcbiAgfSxcbiAgXCJDaGlsZWFuIFBlc28gVW5pZGFkZXMgZGUgZm9tZW50b1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ0xQIENMRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiWXVhbiBSZW5taW5iaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ05ZXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCpVwiXG4gIH0sXG4gIFwiQ29sb21iaWFuIFBlc28gVW5pZGFkIGRlIFZhbG9yIFJlYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIkNPUCBDT1VcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkNvc3RhIFJpY2FuIENvbG9uXCI6IHtcbiAgICBcImNvZGVcIjogXCJDUkNcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCoVwiXG4gIH0sXG4gIFwiQ3ViYW4gUGVzbyBQZXNvIENvbnZlcnRpYmxlXCI6IHtcbiAgICBcImNvZGVcIjogXCJDVVAgQ1VDXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigrFcIlxuICB9LFxuICBcIkNhcGUgVmVyZGUgRXNjdWRvXCI6IHtcbiAgICBcImNvZGVcIjogXCJDVkVcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ3plY2ggS29ydW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJDWktcIixcbiAgICBcInN5bWJvbFwiOiBcIkvEjVwiXG4gIH0sXG4gIFwiRGppYm91dGkgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkRKRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJEYW5pc2ggS3JvbmVcIjoge1xuICAgIFwiY29kZVwiOiBcIkRLS1wiLFxuICAgIFwic3ltYm9sXCI6IFwia3JcIlxuICB9LFxuICBcIkRvbWluaWNhbiBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJET1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlJEJFwiXG4gIH0sXG4gIFwiQWxnZXJpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkRaRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJLcm9vblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRUVLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkVneXB0aWFuIFBvdW5kXCI6IHtcbiAgICBcImNvZGVcIjogXCJFR1BcIixcbiAgICBcInN5bWJvbFwiOiBcIsKjXCJcbiAgfSxcbiAgXCJOYWtmYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRVJOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkV0aGlvcGlhbiBCaXJyXCI6IHtcbiAgICBcImNvZGVcIjogXCJFVEJcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRXVyb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiRVVSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqxcIlxuICB9LFxuICBcIkZpamkgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJGSkRcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkZhbGtsYW5kIElzbGFuZHMgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIkZLUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqNcIlxuICB9LFxuICBcIlBvdW5kIFN0ZXJsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJHQlBcIixcbiAgICBcInN5bWJvbFwiOiBcIsKjXCJcbiAgfSxcbiAgXCJMYXJpXCI6IHtcbiAgICBcImNvZGVcIjogXCJHRUxcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ2VkaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0hTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkdpYnJhbHRhciBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0lQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiRGFsYXNpXCI6IHtcbiAgICBcImNvZGVcIjogXCJHTURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiR3VpbmVhIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJHTkZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUXVldHphbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR1RRXCIsXG4gICAgXCJzeW1ib2xcIjogXCJRXCJcbiAgfSxcbiAgXCJHdXlhbmEgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJHWURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkhvbmcgS29uZyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkhLRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiTGVtcGlyYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSE5MXCIsXG4gICAgXCJzeW1ib2xcIjogXCJMXCJcbiAgfSxcbiAgXCJDcm9hdGlhbiBLdW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJIUktcIixcbiAgICBcInN5bWJvbFwiOiBcImtuXCJcbiAgfSxcbiAgXCJHb3VyZGUgVVMgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJIVEcgVVNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkZvcmludFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSFVGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJGdFwiXG4gIH0sXG4gIFwiUnVwaWFoXCI6IHtcbiAgICBcImNvZGVcIjogXCJJRFJcIixcbiAgICBcInN5bWJvbFwiOiBcIlJwXCJcbiAgfSxcbiAgXCJOZXcgSXNyYWVsaSBTaGVxZWxcIjoge1xuICAgIFwiY29kZVwiOiBcIklMU1wiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKqXCJcbiAgfSxcbiAgXCJJbmRpYW4gUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIklOUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJJbmRpYW4gUnVwZWUgTmd1bHRydW1cIjoge1xuICAgIFwiY29kZVwiOiBcIklOUiBCVE5cIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSXJhcWkgRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIklRRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJJcmFuaWFuIFJpYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIklSUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi77e8XCJcbiAgfSxcbiAgXCJJY2VsYW5kIEtyb25hXCI6IHtcbiAgICBcImNvZGVcIjogXCJJU0tcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJKYW1haWNhbiBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkpNRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiSiRcIlxuICB9LFxuICBcIkpvcmRhbmlhbiBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSk9EXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlllblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSlBZXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCpVwiXG4gIH0sXG4gIFwiS2VueWFuIFNoaWxsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJLRVNcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU29tXCI6IHtcbiAgICBcImNvZGVcIjogXCJLR1NcIixcbiAgICBcInN5bWJvbFwiOiBcItC70LJcIlxuICB9LFxuICBcIlJpZWxcIjoge1xuICAgIFwiY29kZVwiOiBcIktIUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4Z+bXCJcbiAgfSxcbiAgXCJDb21vcm8gRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIktNRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJOb3J0aCBLb3JlYW4gV29uXCI6IHtcbiAgICBcImNvZGVcIjogXCJLUFdcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqVwiXG4gIH0sXG4gIFwiV29uXCI6IHtcbiAgICBcImNvZGVcIjogXCJLUldcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqVwiXG4gIH0sXG4gIFwiS3V3YWl0aSBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1dEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNheW1hbiBJc2xhbmRzIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1lEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJUZW5nZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1pUXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJLaXBcIjoge1xuICAgIFwiY29kZVwiOiBcIkxBS1wiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKtXCJcbiAgfSxcbiAgXCJMZWJhbmVzZSBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTEJQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiU3JpIExhbmthIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJMS1JcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqFwiXG4gIH0sXG4gIFwiTGliZXJpYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJMUkRcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkxpdGh1YW5pYW4gTGl0YXNcIjoge1xuICAgIFwiY29kZVwiOiBcIkxUTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTHRcIlxuICB9LFxuICBcIkxhdHZpYW4gTGF0c1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiTFZMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJMc1wiXG4gIH0sXG4gIFwiTGlieWFuIERpbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJMWURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTW9yb2NjYW4gRGlyaGFtXCI6IHtcbiAgICBcImNvZGVcIjogXCJNQURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTW9sZG92YW4gTGV1XCI6IHtcbiAgICBcImNvZGVcIjogXCJNRExcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTWFsYWdhc3kgQXJpYXJ5XCI6IHtcbiAgICBcImNvZGVcIjogXCJNR0FcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRGVuYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIk1LRFwiLFxuICAgIFwic3ltYm9sXCI6IFwi0LTQtdC9XCJcbiAgfSxcbiAgXCJLeWF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJNTUtcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVncmlrXCI6IHtcbiAgICBcImNvZGVcIjogXCJNTlRcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCrlwiXG4gIH0sXG4gIFwiUGF0YWNhXCI6IHtcbiAgICBcImNvZGVcIjogXCJNT1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiT3VndWl5YVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVJPXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1hdXJpdGl1cyBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVVSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIlJ1Zml5YWFcIjoge1xuICAgIFwiY29kZVwiOiBcIk1WUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJLd2FjaGFcIjoge1xuICAgIFwiY29kZVwiOiBcIk1XS1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJNZXhpY2FuIFBlc28gTWV4aWNhbiBVbmlkYWQgZGUgSW52ZXJzaW9uIChVREkpXCI6IHtcbiAgICBcImNvZGVcIjogXCJNWE4gTVhWXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJNYWxheXNpYW4gUmluZ2dpdFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVlSXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSTVwiXG4gIH0sXG4gIFwiTWV0aWNhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVpOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJNVFwiXG4gIH0sXG4gIFwiTmFpcmFcIjoge1xuICAgIFwiY29kZVwiOiBcIk5HTlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKmXCJcbiAgfSxcbiAgXCJDb3Jkb2JhIE9yb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiTklPXCIsXG4gICAgXCJzeW1ib2xcIjogXCJDJFwiXG4gIH0sXG4gIFwiTm9yd2VnaWFuIEtyb25lXCI6IHtcbiAgICBcImNvZGVcIjogXCJOT0tcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJOZXBhbGVzZSBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTlBSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIk5ldyBaZWFsYW5kIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTlpEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJSaWFsIE9tYW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJPTVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiQmFsYm9hIFVTIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUEFCIFVTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiQi8uXCJcbiAgfSxcbiAgXCJOdWV2byBTb2xcIjoge1xuICAgIFwiY29kZVwiOiBcIlBFTlwiLFxuICAgIFwic3ltYm9sXCI6IFwiUy8uXCJcbiAgfSxcbiAgXCJLaW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJQR0tcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUGhpbGlwcGluZSBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJQSFBcIixcbiAgICBcInN5bWJvbFwiOiBcIlBocFwiXG4gIH0sXG4gIFwiUGFraXN0YW4gUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIlBLUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKoXCJcbiAgfSxcbiAgXCJabG90eVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUExOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJ6xYJcIlxuICB9LFxuICBcIkd1YXJhbmlcIjoge1xuICAgIFwiY29kZVwiOiBcIlBZR1wiLFxuICAgIFwic3ltYm9sXCI6IFwiR3NcIlxuICB9LFxuICBcIlFhdGFyaSBSaWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJRQVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiTmV3IExldVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUk9OXCIsXG4gICAgXCJzeW1ib2xcIjogXCJsZWlcIlxuICB9LFxuICBcIlNlcmJpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlJTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwi0JTQuNC9LlwiXG4gIH0sXG4gIFwiUnVzc2lhbiBSdWJsZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUlVCXCIsXG4gICAgXCJzeW1ib2xcIjogXCLRgNGD0LFcIlxuICB9LFxuICBcIlJ3YW5kYSBGcmFuY1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiUldGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlNhdWRpIFJpeWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJTQVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiU29sb21vbiBJc2xhbmRzIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0JEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTZXljaGVsbGVzIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJTQ1JcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqFwiXG4gIH0sXG4gIFwiU3VkYW5lc2UgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIlNER1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTd2VkaXNoIEtyb25hXCI6IHtcbiAgICBcImNvZGVcIjogXCJTRUtcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJTaW5nYXBvcmUgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJTR0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlNhaW50IEhlbGVuYSBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0hQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTGVvbmVcIjoge1xuICAgIFwiY29kZVwiOiBcIlNMTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTb21hbGkgU2hpbGxpbmdcIjoge1xuICAgIFwiY29kZVwiOiBcIlNPU1wiLFxuICAgIFwic3ltYm9sXCI6IFwiU1wiXG4gIH0sXG4gIFwiU3VyaW5hbSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlNSRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiRG9icmFcIjoge1xuICAgIFwiY29kZVwiOiBcIlNURFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFbCBTYWx2YWRvciBDb2xvbiBVUyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlNWQyBVU0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlN5cmlhbiBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU1lQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTGlsYW5nZW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJTWkxcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQmFodFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVEhCXCIsXG4gICAgXCJzeW1ib2xcIjogXCLguL9cIlxuICB9LFxuICBcIlNvbW9uaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVEpTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1hbmF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJUTVRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVuaXNpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlRORFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQYSdhbmdhXCI6IHtcbiAgICBcImNvZGVcIjogXCJUT1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVya2lzaCBMaXJhXCI6IHtcbiAgICBcImNvZGVcIjogXCJUUllcIixcbiAgICBcInN5bWJvbFwiOiBcIlRMXCJcbiAgfSxcbiAgXCJUcmluaWRhZCBhbmQgVG9iYWdvIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVFREXCIsXG4gICAgXCJzeW1ib2xcIjogXCJUVCRcIlxuICB9LFxuICBcIk5ldyBUYWl3YW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJUV0RcIixcbiAgICBcInN5bWJvbFwiOiBcIk5UJFwiXG4gIH0sXG4gIFwiVGFuemFuaWFuIFNoaWxsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJUWlNcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSHJ5dm5pYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVUFIXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigrRcIlxuICB9LFxuICBcIlVnYW5kYSBTaGlsbGluZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiVUdYXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlVTIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVVNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJQZXNvIFVydWd1YXlvIFVydWd1YXkgUGVzbyBlbiBVbmlkYWRlcyBJbmRleGFkYXNcIjoge1xuICAgIFwiY29kZVwiOiBcIlVZVSBVWUlcIixcbiAgICBcInN5bWJvbFwiOiBcIiRVXCJcbiAgfSxcbiAgXCJVemJla2lzdGFuIFN1bVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVVpTXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJCb2xpdmFyIEZ1ZXJ0ZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVkVGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJCc1wiXG4gIH0sXG4gIFwiRG9uZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiVk5EXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqtcIlxuICB9LFxuICBcIlZhdHVcIjoge1xuICAgIFwiY29kZVwiOiBcIlZVVlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJUYWxhXCI6IHtcbiAgICBcImNvZGVcIjogXCJXU1RcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ0ZBIEZyYW5jIEJFQUNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhBRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTaWx2ZXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlhBR1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJHb2xkXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQVVcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQm9uZCBNYXJrZXRzIFVuaXRzIEV1cm9wZWFuIENvbXBvc2l0ZSBVbml0IChFVVJDTylcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQVwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBNb25ldGFyeSBVbml0IChFLk0uVS4tNilcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBVbml0IG9mIEFjY291bnQgOShFLlUuQS4tOSlcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQ1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBVbml0IG9mIEFjY291bnQgMTcoRS5VLkEuLTE3KVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWEJEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkVhc3QgQ2FyaWJiZWFuIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWENEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTRFJcIjoge1xuICAgIFwiY29kZVwiOiBcIlhEUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJVSUMtRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhGVVwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDRkEgRnJhbmMgQkNFQU9cIjoge1xuICAgIFwiY29kZVwiOiBcIlhPRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQYWxsYWRpdW1cIjoge1xuICAgIFwiY29kZVwiOiBcIlhQRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDRlAgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhQRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQbGF0aW51bVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWFBUXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNvZGVzIHNwZWNpZmljYWxseSByZXNlcnZlZCBmb3IgdGVzdGluZyBwdXJwb3Nlc1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiWFRTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlllbWVuaSBSaWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJZRVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiUmFuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWkFSXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSXCJcbiAgfSxcbiAgXCJSYW5kIExvdGlcIjoge1xuICAgIFwiY29kZVwiOiBcIlpBUiBMU0xcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUmFuZCBOYW1pYmlhIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWkFSIE5BRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJaYW1iaWFuIEt3YWNoYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWk1LXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlppbWJhYndlIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWldMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9XG59OyIsInZhciBlbl9BVSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVuX0FVO1xuZW5fQVUudGl0bGUgPSBcIkF1c3RyYWxpYSAoRW5nbGlzaClcIjtcbmVuX0FVLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJPbGl2ZXJcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJMYWNobGFuXCIsXG4gICAgXCJDb29wZXJcIixcbiAgICBcIk5vYWhcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIk1heFwiLFxuICAgIFwiSXNhYWNcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiUmlsZXlcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJKYWtlXCIsXG4gICAgXCJNYXR0aGV3XCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIkhhcnJ5XCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIk5pY2hvbGFzXCIsXG4gICAgXCJIYXJyaXNvblwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTHVrZVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkFpZGVuXCIsXG4gICAgXCJEeWxhblwiLFxuICAgIFwiT3NjYXJcIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIkxvZ2FuXCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkJsYWtlXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIkNvbm5vclwiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJOYXRlXCIsXG4gICAgXCJBcmNoaWVcIixcbiAgICBcIkJhaWxleVwiLFxuICAgIFwiTWFyY3VzXCIsXG4gICAgXCJDYW1lcm9uXCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIlphY2hhcnlcIixcbiAgICBcIkNhbGViXCIsXG4gICAgXCJIdW50ZXJcIixcbiAgICBcIkFzaHRvblwiLFxuICAgIFwiVG9ieVwiLFxuICAgIFwiQWlkYW5cIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiTWFzb25cIixcbiAgICBcIkhhbWlzaFwiLFxuICAgIFwiRWR3YXJkXCIsXG4gICAgXCJBbmd1c1wiLFxuICAgIFwiRWxpXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiUGF0cmlja1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbnRob255XCIsXG4gICAgXCJMdWNhXCIsXG4gICAgXCJLYWlcIixcbiAgICBcIkJlYXVcIixcbiAgICBcIkFsZXhcIixcbiAgICBcIkdlb3JnZVwiLFxuICAgIFwiQ2FsbHVtXCIsXG4gICAgXCJGaW5uXCIsXG4gICAgXCJaYWNcIixcbiAgICBcIk1pdGNoZWxsXCIsXG4gICAgXCJKZXR0XCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJEZWNsYW5cIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiQ2hyaXN0b3BoZXJcIixcbiAgICBcIkNoYXNlXCIsXG4gICAgXCJPd2VuXCIsXG4gICAgXCJKdXN0aW5cIixcbiAgICBcIkFsaVwiLFxuICAgIFwiRGFyY3lcIixcbiAgICBcIkxpbmNvbG5cIixcbiAgICBcIkNvZHlcIixcbiAgICBcIlBob2VuaXhcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9lbFwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIkNobG9lXCIsXG4gICAgXCJPbGl2aWFcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJMaWx5XCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiU2llbm5hXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiR3JhY2VcIixcbiAgICBcIkF2YVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIkhhbm5haFwiLFxuICAgIFwiSmVzc2ljYVwiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIlphcmFcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiU2NhcmxldHRcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkNoZWxzZWFcIixcbiAgICBcIkxpbGx5XCIsXG4gICAgXCJJdnlcIixcbiAgICBcIklzbGFcIixcbiAgICBcIkV2aWVcIixcbiAgICBcIklzYWJlbGxlXCIsXG4gICAgXCJNYWRkaXNvblwiLFxuICAgIFwiTGF5bGFcIixcbiAgICBcIlN1bW1lclwiLFxuICAgIFwiQW5uYWJlbGxlXCIsXG4gICAgXCJBbGV4aXNcIixcbiAgICBcIkVsaXphYmV0aFwiLFxuICAgIFwiQmVsbGFcIixcbiAgICBcIkhvbGx5XCIsXG4gICAgXCJMYXJhXCIsXG4gICAgXCJNYWRpc29uXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIk1heWFcIixcbiAgICBcIlRhaGxpYVwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJIYXlsZXlcIixcbiAgICBcIkltb2dlblwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiRWxsaWVcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJBZGRpc29uXCIsXG4gICAgXCJNb2xseVwiLFxuICAgIFwiUGhvZWJlXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiU2F2YW5uYWhcIixcbiAgICBcIkdhYnJpZWxsYVwiLFxuICAgIFwiS2F5bGFcIixcbiAgICBcIk1pa2F5bGFcIixcbiAgICBcIkFiYmV5XCIsXG4gICAgXCJFbGl6YVwiLFxuICAgIFwiV2lsbG93XCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIlBvcHB5XCIsXG4gICAgXCJTYW1hbnRoYVwiLFxuICAgIFwiU3RlbGxhXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFtZWxpZVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiUGlwZXJcIixcbiAgICBcIkdlbW1hXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIkNhaXRsaW5cIixcbiAgICBcIkhlaWRpXCIsXG4gICAgXCJQYWlnZVwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiQW1iZXJcIixcbiAgICBcIkF1ZHJleVwiLFxuICAgIFwiQ2xhdWRpYVwiLFxuICAgIFwiVGF5bG9yXCIsXG4gICAgXCJNYWRlbGluZVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIk5hdGFsaWVcIixcbiAgICBcIkNoYXJsaVwiLFxuICAgIFwiTGF1cmVuXCIsXG4gICAgXCJBc2hsZXlcIixcbiAgICBcIlZpb2xldFwiLFxuICAgIFwiTWFja2VuemllXCIsXG4gICAgXCJBYmJ5XCIsXG4gICAgXCJTa3llXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiRXZlXCIsXG4gICAgXCJLaWFyYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIlNtaXRoXCIsXG4gICAgXCJKb25lc1wiLFxuICAgIFwiV2lsbGlhbXNcIixcbiAgICBcIkJyb3duXCIsXG4gICAgXCJXaWxzb25cIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiSm9obnNvblwiLFxuICAgIFwiV2hpdGVcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIlRob21wc29uXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiV2Fsa2VyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiUm9iaW5zb25cIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJEYXZpc1wiLFxuICAgIFwiV3JpZ2h0XCIsXG4gICAgXCJFdmFuc1wiLFxuICAgIFwiUm9iZXJ0c1wiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkhhbGxcIixcbiAgICBcIldvb2RcIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIkNsYXJrZVwiLFxuICAgIFwiUGF0ZWxcIixcbiAgICBcIktoYW5cIixcbiAgICBcIkxld2lzXCIsXG4gICAgXCJKYW1lc1wiLFxuICAgIFwiUGhpbGxpcHNcIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJNaXRjaGVsbFwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiRGF2aWVzXCIsXG4gICAgXCJSb2RyaWd1ZXpcIixcbiAgICBcIkNveFwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJHYXJkZW5cIixcbiAgICBcIkNhbXBiZWxsXCIsXG4gICAgXCJKb2huc3RvblwiLFxuICAgIFwiTW9vcmVcIixcbiAgICBcIlNteXRoXCIsXG4gICAgXCJPJ25laWxsXCIsXG4gICAgXCJEb2hlcnR5XCIsXG4gICAgXCJTdGV3YXJ0XCIsXG4gICAgXCJRdWlublwiLFxuICAgIFwiTXVycGh5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIk1jbGF1Z2hsaW5cIixcbiAgICBcIkhhbWlsdG9uXCIsXG4gICAgXCJNdXJyYXlcIixcbiAgICBcIkh1Z2hlc1wiLFxuICAgIFwiUm9iZXJ0c29uXCIsXG4gICAgXCJUaG9tc29uXCIsXG4gICAgXCJTY290dFwiLFxuICAgIFwiTWFjZG9uYWxkXCIsXG4gICAgXCJSZWlkXCIsXG4gICAgXCJDbGFya1wiLFxuICAgIFwiUm9zc1wiLFxuICAgIFwiWW91bmdcIixcbiAgICBcIldhdHNvblwiLFxuICAgIFwiUGF0ZXJzb25cIixcbiAgICBcIk1vcnJpc29uXCIsXG4gICAgXCJNb3JnYW5cIixcbiAgICBcIkdyaWZmaXRoc1wiLFxuICAgIFwiRWR3YXJkc1wiLFxuICAgIFwiUmVlc1wiLFxuICAgIFwiSmVua2luc1wiLFxuICAgIFwiT3dlblwiLFxuICAgIFwiUHJpY2VcIixcbiAgICBcIk1vc3NcIixcbiAgICBcIlJpY2hhcmRzXCIsXG4gICAgXCJBYmJvdHRcIixcbiAgICBcIkFkYW1zXCIsXG4gICAgXCJBcm1zdHJvbmdcIixcbiAgICBcIkJhaHJpbmdlclwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYXJyb3dzXCIsXG4gICAgXCJCYXJ0ZWxsXCIsXG4gICAgXCJCYXJ0b2xldHRpXCIsXG4gICAgXCJCYXJ0b25cIixcbiAgICBcIkJhdWNoXCIsXG4gICAgXCJCYXVtYmFjaFwiLFxuICAgIFwiQmF5ZXJcIixcbiAgICBcIkJlYWhhblwiLFxuICAgIFwiQmVhdHR5XCIsXG4gICAgXCJCZWNrZXJcIixcbiAgICBcIkJlaWVyXCIsXG4gICAgXCJCZXJnZVwiLFxuICAgIFwiQmVyZ3N0cm9tXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2dhblwiLFxuICAgIFwiQm9yZXJcIixcbiAgICBcIkJvc2NvXCIsXG4gICAgXCJCb3RzZm9yZFwiLFxuICAgIFwiQm95ZXJcIixcbiAgICBcIkJveWxlXCIsXG4gICAgXCJCcmF1blwiLFxuICAgIFwiQnJ1ZW5cIixcbiAgICBcIkNhcnJvbGxcIixcbiAgICBcIkNhcnRlclwiLFxuICAgIFwiQ2FydHdyaWdodFwiLFxuICAgIFwiQ2FzcGVyXCIsXG4gICAgXCJDYXNzaW5cIixcbiAgICBcIkNoYW1wbGluXCIsXG4gICAgXCJDaHJpc3RpYW5zZW5cIixcbiAgICBcIkNvbGVcIixcbiAgICBcIkNvbGxpZXJcIixcbiAgICBcIkNvbGxpbnNcIixcbiAgICBcIkNvbm5lbGx5XCIsXG4gICAgXCJDb25yb3lcIixcbiAgICBcIkNvcmtlcnlcIixcbiAgICBcIkNvcm1pZXJcIixcbiAgICBcIkNvcndpblwiLFxuICAgIFwiQ3JvbmluXCIsXG4gICAgXCJDcm9va3NcIixcbiAgICBcIkNydWlja3NoYW5rXCIsXG4gICAgXCJDdW1taW5nc1wiLFxuICAgIFwiRCdhbW9yZVwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJEYXJlXCIsXG4gICAgXCJEYXVnaGVydHlcIixcbiAgICBcIkRpY2tlbnNcIixcbiAgICBcIkRpY2tpbnNvblwiLFxuICAgIFwiRGlldHJpY2hcIixcbiAgICBcIkRvbm5lbGx5XCIsXG4gICAgXCJEb29sZXlcIixcbiAgICBcIkRvdWdsYXNcIixcbiAgICBcIkRveWxlXCIsXG4gICAgXCJEdXJnYW5cIixcbiAgICBcIkViZXJ0XCIsXG4gICAgXCJFbWFyZFwiLFxuICAgIFwiRW1tZXJpY2hcIixcbiAgICBcIkVyZG1hblwiLFxuICAgIFwiRXJuc2VyXCIsXG4gICAgXCJGYWRlbFwiLFxuICAgIFwiRmFoZXlcIixcbiAgICBcIkZhcnJlbGxcIixcbiAgICBcIkZheVwiLFxuICAgIFwiRmVlbmV5XCIsXG4gICAgXCJGZWlsXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmlzaGVyXCIsXG4gICAgXCJGbGF0bGV5XCIsXG4gICAgXCJHaWJzb25cIixcbiAgICBcIkdsZWFzb25cIixcbiAgICBcIkdsb3ZlclwiLFxuICAgIFwiR29sZG5lclwiLFxuICAgIFwiR29vZHdpblwiLFxuICAgIFwiR3JhZHlcIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmVlbmZlbGRlclwiLFxuICAgIFwiR3JlZW5ob2x0XCIsXG4gICAgXCJHcmltZXNcIixcbiAgICBcIkd1dG1hbm5cIixcbiAgICBcIkhhY2tldHRcIixcbiAgICBcIkhhaG5cIixcbiAgICBcIkhhbGV5XCIsXG4gICAgXCJIYW1tZXNcIixcbiAgICBcIkhhbmRcIixcbiAgICBcIkhhbmVcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyYmVyXCIsXG4gICAgXCJIYXJ0bWFublwiLFxuICAgIFwiSGFydmV5XCIsXG4gICAgXCJIYXllc1wiLFxuICAgIFwiSGVhbmV5XCIsXG4gICAgXCJIZWF0aGNvdGVcIixcbiAgICBcIkhlbGxlclwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWlzdG9uXCIsXG4gICAgXCJIZXNzZWxcIixcbiAgICBcIkhldHRpbmdlclwiLFxuICAgIFwiSGlja2xlXCIsXG4gICAgXCJIaWxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvd2VcIixcbiAgICBcIkhvd2VsbFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWVsXCIsXG4gICAgXCJIeWF0dFwiLFxuICAgIFwiSmFjb2JpXCIsXG4gICAgXCJKYWNvYnNcIixcbiAgICBcIkphY29ic29uXCIsXG4gICAgXCJKZXJkZVwiLFxuICAgIFwiSm9obnNcIixcbiAgICBcIktlZWxpbmdcIixcbiAgICBcIktlbW1lclwiLFxuICAgIFwiS2Vzc2xlclwiLFxuICAgIFwiS2llaG5cIixcbiAgICBcIktpcmxpblwiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktvY2hcIixcbiAgICBcIktvZWxwaW5cIixcbiAgICBcIktvaGxlclwiLFxuICAgIFwiS29zc1wiLFxuICAgIFwiS292YWNla1wiLFxuICAgIFwiS3JlaWdlclwiLFxuICAgIFwiS3Jpc1wiLFxuICAgIFwiS3VobG1hblwiLFxuICAgIFwiS3VoblwiLFxuICAgIFwiS3VsYXNcIixcbiAgICBcIkt1bmRlXCIsXG4gICAgXCJLdXRjaFwiLFxuICAgIFwiTGFraW5cIixcbiAgICBcIkxhbmdcIixcbiAgICBcIkxhbmd3b3J0aFwiLFxuICAgIFwiTGFya2luXCIsXG4gICAgXCJMYXJzb25cIixcbiAgICBcIkxlYW5ub25cIixcbiAgICBcIkxlZmZsZXJcIixcbiAgICBcIkxpdHRsZVwiLFxuICAgIFwiTG9ja21hblwiLFxuICAgIFwiTG93ZVwiLFxuICAgIFwiTHluY2hcIixcbiAgICBcIk1hbm5cIixcbiAgICBcIk1hcmtzXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNY2N1bGxvdWdoXCIsXG4gICAgXCJNY2Rlcm1vdHRcIixcbiAgICBcIk1ja2VuemllXCIsXG4gICAgXCJNaWxsZXJcIixcbiAgICBcIk1pbGxzXCIsXG4gICAgXCJNb25haGFuXCIsXG4gICAgXCJNb3Jpc3NldHRlXCIsXG4gICAgXCJNdWVsbGVyXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk5hZGVyXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOb2xhblwiLFxuICAgIFwiTydjb25uZWxsXCIsXG4gICAgXCJPJ2Nvbm5lclwiLFxuICAgIFwiTydoYXJhXCIsXG4gICAgXCJPJ2tlZWZlXCIsXG4gICAgXCJPbHNvblwiLFxuICAgIFwiTydyZWlsbHlcIixcbiAgICBcIlBhcmlzaWFuXCIsXG4gICAgXCJQYXJrZXJcIixcbiAgICBcIlF1aWdsZXlcIixcbiAgICBcIlJlaWxseVwiLFxuICAgIFwiUmV5bm9sZHNcIixcbiAgICBcIlJpY2VcIixcbiAgICBcIlJpdGNoaWVcIixcbiAgICBcIlJvaGFuXCIsXG4gICAgXCJSb2xmc29uXCIsXG4gICAgXCJSb3dlXCIsXG4gICAgXCJSdXNzZWxcIixcbiAgICBcIlJ1dGhlcmZvcmRcIixcbiAgICBcIlNhbmZvcmRcIixcbiAgICBcIlNhdWVyXCIsXG4gICAgXCJTY2htaWR0XCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJTY2huZWlkZXJcIixcbiAgICBcIlNjaHJvZWRlclwiLFxuICAgIFwiU2NodWx0elwiLFxuICAgIFwiU2hpZWxkc1wiLFxuICAgIFwiU21pdGhhbVwiLFxuICAgIFwiU3BlbmNlclwiLFxuICAgIFwiU3RhbnRvblwiLFxuICAgIFwiU3RhcmtcIixcbiAgICBcIlN0b2tlc1wiLFxuICAgIFwiU3dpZnRcIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRvd25lXCIsXG4gICAgXCJUcmVtYmxheVwiLFxuICAgIFwiVHJvbXBcIixcbiAgICBcIlR1cmNvdHRlXCIsXG4gICAgXCJUdXJuZXJcIixcbiAgICBcIldhbHNoXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhcmRcIixcbiAgICBcIldhdGVyc1wiLFxuICAgIFwiV2ViZXJcIixcbiAgICBcIldlbGNoXCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJXaWxkZXJtYW5cIixcbiAgICBcIldpbGtpbnNvblwiLFxuICAgIFwiV2lsbGlhbXNvblwiLFxuICAgIFwiV2luZGxlclwiLFxuICAgIFwiV29sZlwiXG4gIF1cbn07XG5lbl9BVS5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJQdHkgTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCIsXG4gICAgXCJQYXJ0bmVyc1wiXG4gIF1cbn07XG5lbl9BVS5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbS5hdVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXQuYXVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnLmF1XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZW5fQVUuYWRkcmVzcyA9IHtcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIk5TV1wiLFxuICAgIFwiUUxEXCIsXG4gICAgXCJOVFwiLFxuICAgIFwiU0FcIixcbiAgICBcIldBXCIsXG4gICAgXCJUQVNcIixcbiAgICBcIkFDVFwiLFxuICAgIFwiVklDXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJOZXcgU291dGggV2FsZXNcIixcbiAgICBcIlF1ZWVuc2xhbmRcIixcbiAgICBcIk5vcnRoZXJuIFRlcnJpdG9yeVwiLFxuICAgIFwiU291dGggQXVzdHJhbGlhXCIsXG4gICAgXCJXZXN0ZXJuIEF1c3RyYWxpYVwiLFxuICAgIFwiVGFzbWFuaWFcIixcbiAgICBcIkF1c3RyYWxpYW4gQ2FwaXRhbCBUZXJyaXRvcnlcIixcbiAgICBcIlZpY3RvcmlhXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIwIyMjXCIsXG4gICAgXCIyIyMjXCIsXG4gICAgXCIzIyMjXCIsXG4gICAgXCI0IyMjXCIsXG4gICAgXCI1IyMjXCIsXG4gICAgXCI2IyMjXCIsXG4gICAgXCI3IyMjXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjXCIsXG4gICAgXCIjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJBdmVudWVcIixcbiAgICBcIkJvdWxldmFyZFwiLFxuICAgIFwiQ2lyY2xlXCIsXG4gICAgXCJDaXJjdWl0XCIsXG4gICAgXCJDb3VydFwiLFxuICAgIFwiQ3Jlc2NlbnRcIixcbiAgICBcIkNyZXN0XCIsXG4gICAgXCJEcml2ZVwiLFxuICAgIFwiRXN0YXRlIERyXCIsXG4gICAgXCJHcm92ZVwiLFxuICAgIFwiSGlsbFwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJKdW5jdGlvblwiLFxuICAgIFwiS25vbGxcIixcbiAgICBcIkxhbmVcIixcbiAgICBcIkxvb3BcIixcbiAgICBcIk1hbGxcIixcbiAgICBcIk1hbm9yXCIsXG4gICAgXCJNZWFkb3dcIixcbiAgICBcIk1ld3NcIixcbiAgICBcIlBhcmFkZVwiLFxuICAgIFwiUGFya3dheVwiLFxuICAgIFwiUGFzc1wiLFxuICAgIFwiUGxhY2VcIixcbiAgICBcIlBsYXphXCIsXG4gICAgXCJSaWRnZVwiLFxuICAgIFwiUm9hZFwiLFxuICAgIFwiUnVuXCIsXG4gICAgXCJTcXVhcmVcIixcbiAgICBcIlN0YXRpb24gU3RcIixcbiAgICBcIlN0cmVldFwiLFxuICAgIFwiU3VtbWl0XCIsXG4gICAgXCJUZXJyYWNlXCIsXG4gICAgXCJUcmFja1wiLFxuICAgIFwiVHJhaWxcIixcbiAgICBcIlZpZXcgUmRcIixcbiAgICBcIldheVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkF1c3RyYWxpYVwiXG4gIF1cbn07XG5lbl9BVS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwIyAjIyMjICMjIyNcIixcbiAgICBcIis2MSAjICMjIyMgIyMjI1wiLFxuICAgIFwiMDQjIyAjIyMgIyMjXCIsXG4gICAgXCIrNjEgNCMjICMjIyAjIyNcIlxuICBdXG59O1xuIiwidmFyIGVuX0JPUksgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9CT1JLO1xuZW5fQk9SSy50aXRsZSA9IFwiQm9yayAoRW5nbGlzaClcIjtcbmVuX0JPUksubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwiQm9vdFwiLFxuICAgIFwiSVwiLFxuICAgIFwiTnVcIixcbiAgICBcIk51clwiLFxuICAgIFwiVHVcIixcbiAgICBcIlVtXCIsXG4gICAgXCJhXCIsXG4gICAgXCJiZWNvb3NlLWFcIixcbiAgICBcImJvb3RcIixcbiAgICBcImJvcmtcIixcbiAgICBcImJ1cm5cIixcbiAgICBcImNodXVzZXNcIixcbiAgICBcImN1bXBsZXRlLWFcIixcbiAgICBcImN1blwiLFxuICAgIFwiY3Vuc2Vxb29lbmNlc1wiLFxuICAgIFwiY3VyY29vbXN0dW5jZXNcIixcbiAgICBcImRlZVwiLFxuICAgIFwiZGVlc2xpa2VzXCIsXG4gICAgXCJkZW51b29uY2VlbmdcIixcbiAgICBcImRlc3VyZXNcIixcbiAgICBcImR1XCIsXG4gICAgXCJlY2N1b29udFwiLFxuICAgIFwiZWN0b29lbFwiLFxuICAgIFwiZWRmdW50ZWdlLWFcIixcbiAgICBcImVmdWVlZHNcIixcbiAgICBcImVnZWVlblwiLFxuICAgIFwiZWxsXCIsXG4gICAgXCJlcmUtYVwiLFxuICAgIFwiZmVlbmRcIixcbiAgICBcImZvb2x0XCIsXG4gICAgXCJmcnVtXCIsXG4gICAgXCJnZWVmZS1hXCIsXG4gICAgXCJnZXNoXCIsXG4gICAgXCJncmVldFwiLFxuICAgIFwiaGVlbVwiLFxuICAgIFwiaGVwcGVlbmVzc1wiLFxuICAgIFwiaGVzXCIsXG4gICAgXCJob29cIixcbiAgICBcImhvb211blwiLFxuICAgIFwiaWRlYVwiLFxuICAgIFwiaWZlclwiLFxuICAgIFwiaW5cIixcbiAgICBcImluY3Vvb250ZXJcIixcbiAgICBcImluanV5XCIsXG4gICAgXCJpdHNlbGZmXCIsXG4gICAgXCJpeGNlcHRcIixcbiAgICBcIml4ZW1wbGUtYVwiLFxuICAgIFwiaXhlcmNlZXNlLWFcIixcbiAgICBcIml4cGxlZWVuXCIsXG4gICAgXCJpeHBsdXJlclwiLFxuICAgIFwiaXhwdW9vbmRcIixcbiAgICBcIml4dHJlbWVseVwiLFxuICAgIFwia25vb1wiLFxuICAgIFwibGVidXJlZXVvb3NcIixcbiAgICBcImx1ZmVzXCIsXG4gICAgXCJtZWVzdGVrZWVcIixcbiAgICBcIm1lc3Rlci1ib29lZWxkZXJcIixcbiAgICBcIm1vb3N0XCIsXG4gICAgXCJtdW5cIixcbiAgICBcIm51XCIsXG4gICAgXCJudXRcIixcbiAgICBcIm9vYnRlZWVuXCIsXG4gICAgXCJvb2NjZXNlZXVuZWxseVwiLFxuICAgIFwib29jY29vclwiLFxuICAgIFwib29mZlwiLFxuICAgIFwib29uZS1hXCIsXG4gICAgXCJvb3JcIixcbiAgICBcInBlZWVuXCIsXG4gICAgXCJwZWVlbmZmb29sXCIsXG4gICAgXCJwaHlzZWVjZWxcIixcbiAgICBcInBsZWVzb29yZS1hXCIsXG4gICAgXCJwb29yc29vZS1hXCIsXG4gICAgXCJwb29yc29vZXNcIixcbiAgICBcInByZWVlc2luZ1wiLFxuICAgIFwicHJ1Y29vcmUtYVwiLFxuICAgIFwicHJ1ZG9vY2VzXCIsXG4gICAgXCJyZWVnaHRcIixcbiAgICBcInJlc2h1bmVsbHlcIixcbiAgICBcInJlc29vbHR1bnRcIixcbiAgICBcInN1bWUtYVwiLFxuICAgIFwidGVlY2hlZW5nc1wiLFxuICAgIFwidGVrZS1hXCIsXG4gICAgXCJ0aGVlc1wiLFxuICAgIFwidGhldFwiLFxuICAgIFwidGh1c2UtYVwiLFxuICAgIFwidHJlZWZpZWxcIixcbiAgICBcInRyb290XCIsXG4gICAgXCJ0dVwiLFxuICAgIFwidHVlZWxcIixcbiAgICBcInVuZFwiLFxuICAgIFwidW5kZXJ0ZWtlc1wiLFxuICAgIFwidW5udXllZW5nXCIsXG4gICAgXCJ1bnlcIixcbiAgICBcInVueXVuZS1hXCIsXG4gICAgXCJ1c1wiLFxuICAgIFwidmVlbGxcIixcbiAgICBcInZlZXRcIixcbiAgICBcInZlc1wiLFxuICAgIFwidmhlZWNoXCIsXG4gICAgXCJ2aHVcIixcbiAgICBcInl1b29cIixcbiAgICBcInplZVwiLFxuICAgIFwiemVlcmUtYVwiXG4gIF1cbn07XG4iLCJ2YXIgZW5fQ0EgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9DQTtcbmVuX0NBLnRpdGxlID0gXCJDYW5hZGEgKEVuZ2xpc2gpXCI7XG5lbl9DQS5hZGRyZXNzID0ge1xuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIj8jPyAjPyNcIixcbiAgICBcIj8jPyM/I1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxiZXJ0YVwiLFxuICAgIFwiQnJpdGlzaCBDb2x1bWJpYVwiLFxuICAgIFwiTWFuaXRvYmFcIixcbiAgICBcIk5ldyBCcnVuc3dpY2tcIixcbiAgICBcIk5ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3JcIixcbiAgICBcIk5vdmEgU2NvdGlhXCIsXG4gICAgXCJOb3J0aHdlc3QgVGVycml0b3JpZXNcIixcbiAgICBcIk51bmF2dXRcIixcbiAgICBcIk9udGFyaW9cIixcbiAgICBcIlByaW5jZSBFZHdhcmQgSXNsYW5kXCIsXG4gICAgXCJRdWViZWNcIixcbiAgICBcIlNhc2thdGNoZXdhblwiLFxuICAgIFwiWXVrb25cIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQUJcIixcbiAgICBcIkJDXCIsXG4gICAgXCJNQlwiLFxuICAgIFwiTkJcIixcbiAgICBcIk5MXCIsXG4gICAgXCJOU1wiLFxuICAgIFwiTlVcIixcbiAgICBcIk5UXCIsXG4gICAgXCJPTlwiLFxuICAgIFwiUEVcIixcbiAgICBcIlFDXCIsXG4gICAgXCJTS1wiLFxuICAgIFwiWUtcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJDYW5hZGFcIlxuICBdXG59O1xuZW5fQ0EuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNhXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjYVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX0NBLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMtIyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIigjIyMpIyMjLSMjIyMgeCMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyMgeCMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyNcIixcbiAgICBcIiMjIy0jIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fR0IgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9HQjtcbmVuX0dCLnRpdGxlID0gXCJHcmVhdCBCcml0YWluIChFbmdsaXNoKVwiO1xuZW5fR0IuYWRkcmVzcyA9IHtcbiAgXCJwb3N0Y29kZVwiOiBcIi9bQS1QUi1VV1laXVtBLUhLLVldP1swLTldW0FCRUhNTlBSVldYWTAtOV0/IFswLTldW0FCRC1ISkxOLVVXLVpdezJ9L1wiLFxuICBcImNvdW50eVwiOiBbXG4gICAgXCJBdm9uXCIsXG4gICAgXCJCZWRmb3Jkc2hpcmVcIixcbiAgICBcIkJlcmtzaGlyZVwiLFxuICAgIFwiQm9yZGVyc1wiLFxuICAgIFwiQnVja2luZ2hhbXNoaXJlXCIsXG4gICAgXCJDYW1icmlkZ2VzaGlyZVwiLFxuICAgIFwiQ2VudHJhbFwiLFxuICAgIFwiQ2hlc2hpcmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2x3eWRcIixcbiAgICBcIkNvcm53YWxsXCIsXG4gICAgXCJDb3VudHkgQW50cmltXCIsXG4gICAgXCJDb3VudHkgQXJtYWdoXCIsXG4gICAgXCJDb3VudHkgRG93blwiLFxuICAgIFwiQ291bnR5IEZlcm1hbmFnaFwiLFxuICAgIFwiQ291bnR5IExvbmRvbmRlcnJ5XCIsXG4gICAgXCJDb3VudHkgVHlyb25lXCIsXG4gICAgXCJDdW1icmlhXCIsXG4gICAgXCJEZXJieXNoaXJlXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRG9yc2V0XCIsXG4gICAgXCJEdW1mcmllcyBhbmQgR2FsbG93YXlcIixcbiAgICBcIkR1cmhhbVwiLFxuICAgIFwiRHlmZWRcIixcbiAgICBcIkVhc3QgU3Vzc2V4XCIsXG4gICAgXCJFc3NleFwiLFxuICAgIFwiRmlmZVwiLFxuICAgIFwiR2xvdWNlc3RlcnNoaXJlXCIsXG4gICAgXCJHcmFtcGlhblwiLFxuICAgIFwiR3JlYXRlciBNYW5jaGVzdGVyXCIsXG4gICAgXCJHd2VudFwiLFxuICAgIFwiR3d5bmVkZCBDb3VudHlcIixcbiAgICBcIkhhbXBzaGlyZVwiLFxuICAgIFwiSGVyZWZvcmRzaGlyZVwiLFxuICAgIFwiSGVydGZvcmRzaGlyZVwiLFxuICAgIFwiSGlnaGxhbmRzIGFuZCBJc2xhbmRzXCIsXG4gICAgXCJIdW1iZXJzaWRlXCIsXG4gICAgXCJJc2xlIG9mIFdpZ2h0XCIsXG4gICAgXCJLZW50XCIsXG4gICAgXCJMYW5jYXNoaXJlXCIsXG4gICAgXCJMZWljZXN0ZXJzaGlyZVwiLFxuICAgIFwiTGluY29sbnNoaXJlXCIsXG4gICAgXCJMb3RoaWFuXCIsXG4gICAgXCJNZXJzZXlzaWRlXCIsXG4gICAgXCJNaWQgR2xhbW9yZ2FuXCIsXG4gICAgXCJOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aCBZb3Jrc2hpcmVcIixcbiAgICBcIk5vcnRoYW1wdG9uc2hpcmVcIixcbiAgICBcIk5vcnRodW1iZXJsYW5kXCIsXG4gICAgXCJOb3R0aW5naGFtc2hpcmVcIixcbiAgICBcIk94Zm9yZHNoaXJlXCIsXG4gICAgXCJQb3d5c1wiLFxuICAgIFwiUnV0bGFuZFwiLFxuICAgIFwiU2hyb3BzaGlyZVwiLFxuICAgIFwiU29tZXJzZXRcIixcbiAgICBcIlNvdXRoIEdsYW1vcmdhblwiLFxuICAgIFwiU291dGggWW9ya3NoaXJlXCIsXG4gICAgXCJTdGFmZm9yZHNoaXJlXCIsXG4gICAgXCJTdHJhdGhjbHlkZVwiLFxuICAgIFwiU3VmZm9sa1wiLFxuICAgIFwiU3VycmV5XCIsXG4gICAgXCJUYXlzaWRlXCIsXG4gICAgXCJUeW5lIGFuZCBXZWFyXCIsXG4gICAgXCJXYXJ3aWNrc2hpcmVcIixcbiAgICBcIldlc3QgR2xhbW9yZ2FuXCIsXG4gICAgXCJXZXN0IE1pZGxhbmRzXCIsXG4gICAgXCJXZXN0IFN1c3NleFwiLFxuICAgIFwiV2VzdCBZb3Jrc2hpcmVcIixcbiAgICBcIldpbHRzaGlyZVwiLFxuICAgIFwiV29yY2VzdGVyc2hpcmVcIlxuICBdLFxuICBcInVrX2NvdW50cnlcIjogW1xuICAgIFwiRW5nbGFuZFwiLFxuICAgIFwiU2NvdGxhbmRcIixcbiAgICBcIldhbGVzXCIsXG4gICAgXCJOb3J0aGVybiBJcmVsYW5kXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiRW5nbGFuZFwiLFxuICAgIFwiU2NvdGxhbmRcIixcbiAgICBcIldhbGVzXCIsXG4gICAgXCJOb3J0aGVybiBJcmVsYW5kXCJcbiAgXVxufTtcbmVuX0dCLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY28udWtcIixcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCJcbiAgXVxufTtcbmVuX0dCLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAxIyMjIyAjIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyMjXCIsXG4gICAgXCIwMSMxICMjIyAjIyMjXCIsXG4gICAgXCIwMTEjICMjIyAjIyMjXCIsXG4gICAgXCIwMiMgIyMjIyAjIyMjXCIsXG4gICAgXCIwMyMjICMjIyAjIyMjXCIsXG4gICAgXCIwNTUgIyMjIyAjIyMjXCIsXG4gICAgXCIwNTYgIyMjIyAjIyMjXCIsXG4gICAgXCIwODAwICMjIyAjIyMjXCIsXG4gICAgXCIwOCMjICMjIyAjIyMjXCIsXG4gICAgXCIwOSMjICMjIyAjIyMjXCIsXG4gICAgXCIwMTY5NzcgIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyNcIixcbiAgICBcIjA1MDAgIyMjIyMjXCIsXG4gICAgXCIwODAwICMjIyMjI1wiXG4gIF1cbn07XG5lbl9HQi5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDc0IyMgIyMjIyMjXCIsXG4gICAgXCIwNzUjIyAjIyMjIyNcIixcbiAgICBcIjA3NiMjICMjIyMjI1wiLFxuICAgIFwiMDc3IyMgIyMjIyMjXCIsXG4gICAgXCIwNzgjIyAjIyMjIyNcIixcbiAgICBcIjA3OSMjICMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fSU5EID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fSU5EO1xuZW5fSU5ELnRpdGxlID0gXCJJbmRpYSAoRW5nbGlzaClcIjtcbmVuX0lORC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFkcmlrYVwiLFxuICAgIFwiQWFuYW5kaW5paVwiLFxuICAgIFwiQWFyYXRyaWthXCIsXG4gICAgXCJBYXJ5YVwiLFxuICAgIFwiQXJ5YVwiLFxuICAgIFwiQWFzaHJpdGhhXCIsXG4gICAgXCJBYXRtYWphXCIsXG4gICAgXCJBdG1hamFcIixcbiAgICBcIkFiaGF5YVwiLFxuICAgIFwiQWR3aXRpeWFcIixcbiAgICBcIkFncmF0YVwiLFxuICAgIFwiQWhpbHlhXCIsXG4gICAgXCJBaGFseWFcIixcbiAgICBcIkFpc2hhbmlcIixcbiAgICBcIkFrc2hhaW5pZVwiLFxuICAgIFwiQWtzaGF0YVwiLFxuICAgIFwiQWtzaGl0YVwiLFxuICAgIFwiQWt1bGFcIixcbiAgICBcIkFtYmFyXCIsXG4gICAgXCJBbW9kaW5pXCIsXG4gICAgXCJBbXJpdGFcIixcbiAgICBcIkFtcml0YW1idVwiLFxuICAgIFwiQW5hbGFcIixcbiAgICBcIkFuYW1pa2FcIixcbiAgICBcIkFuYW5kYVwiLFxuICAgIFwiQW5hbmRhbWF5aVwiLFxuICAgIFwiQW5hbnRhXCIsXG4gICAgXCJBbmlsYVwiLFxuICAgIFwiQW5qYWxpXCIsXG4gICAgXCJBbmp1c2hyaVwiLFxuICAgIFwiQW5qdXNocmVlXCIsXG4gICAgXCJBbm5hcHVybmFcIixcbiAgICBcIkFuc2h1bGFcIixcbiAgICBcIkFudWphXCIsXG4gICAgXCJBbnVzdXlhXCIsXG4gICAgXCJBbmFzdXlhXCIsXG4gICAgXCJBbmFzb295YVwiLFxuICAgIFwiQW53ZXNoYVwiLFxuICAgIFwiQXBzYXJhXCIsXG4gICAgXCJBcnVuYVwiLFxuICAgIFwiQXNoYVwiLFxuICAgIFwiQWFzYVwiLFxuICAgIFwiQWFzaGFcIixcbiAgICBcIkFzbGVzaGFcIixcbiAgICBcIkF0cmV5aVwiLFxuICAgIFwiQXRyZXllZVwiLFxuICAgIFwiQXZhbmlcIixcbiAgICBcIkFiYW5pXCIsXG4gICAgXCJBdmFudGlrYVwiLFxuICAgIFwiQXl1c2htYXRpXCIsXG4gICAgXCJCYWlkZWhpXCIsXG4gICAgXCJWYWlkZWhpXCIsXG4gICAgXCJCYWxhXCIsXG4gICAgXCJCYWFsYVwiLFxuICAgIFwiQmFsYW1hbmlcIixcbiAgICBcIkJhc2FudGlcIixcbiAgICBcIlZhc2FudGlcIixcbiAgICBcIkJlbGFcIixcbiAgICBcIkJoYWRyYVwiLFxuICAgIFwiQmhhZ2lyYXRoaVwiLFxuICAgIFwiQmhhZ3dhbnRpXCIsXG4gICAgXCJCaGFnd2F0aVwiLFxuICAgIFwiQmhhbWluaVwiLFxuICAgIFwiQmhhbnVtYXRpXCIsXG4gICAgXCJCaGFhbnVtYXRpXCIsXG4gICAgXCJCaGFyZ2F2aVwiLFxuICAgIFwiQmhhdmFuaVwiLFxuICAgIFwiQmhpbGFuZ2FuYVwiLFxuICAgIFwiQmlsd2FcIixcbiAgICBcIkJpbHZhXCIsXG4gICAgXCJCdWRkaGFuYVwiLFxuICAgIFwiQ2hha3Jpa2FcIixcbiAgICBcIkNoYW5kYVwiLFxuICAgIFwiQ2hhbmRpXCIsXG4gICAgXCJDaGFuZG5pXCIsXG4gICAgXCJDaGFuZGluaVwiLFxuICAgIFwiQ2hhbmRhbmlcIixcbiAgICBcIkNoYW5kcmFcIixcbiAgICBcIkNoYW5kaXJhXCIsXG4gICAgXCJDaGFuZHJhYmhhZ2FcIixcbiAgICBcIkNoYW5kcmFrYWxhXCIsXG4gICAgXCJDaGFuZHJha2luXCIsXG4gICAgXCJDaGFuZHJhbWFuaVwiLFxuICAgIFwiQ2hhbmRyYW5pXCIsXG4gICAgXCJDaGFuZHJhcHJhYmhhXCIsXG4gICAgXCJDaGFuZHJhc3dhcm9vcGFcIixcbiAgICBcIkNoYW5kcmF2YXRpXCIsXG4gICAgXCJDaGFwYWxhXCIsXG4gICAgXCJDaGFydW1hdGlcIixcbiAgICBcIkNoYXJ2aVwiLFxuICAgIFwiQ2hhdHVyYVwiLFxuICAgIFwiQ2hpdHJhbGlcIixcbiAgICBcIkNoaXRyYW1hbGFcIixcbiAgICBcIkNoaXRyYW5nYWRhXCIsXG4gICAgXCJEYWtzaGFcIixcbiAgICBcIkRha3NoYXlhbmlcIixcbiAgICBcIkRhbWF5YW50aVwiLFxuICAgIFwiRGFyc2h3YW5hXCIsXG4gICAgXCJEZWVwYWxpXCIsXG4gICAgXCJEaXBhbGlcIixcbiAgICBcIkRlZXB0aW1veWVlXCIsXG4gICAgXCJEZWVwdGltYXllZVwiLFxuICAgIFwiRGV2YW5nYW5hXCIsXG4gICAgXCJEZXZhbmlcIixcbiAgICBcIkRldmFzcmVlXCIsXG4gICAgXCJEZXZpXCIsXG4gICAgXCJEYWV2aVwiLFxuICAgIFwiRGV2aWthXCIsXG4gICAgXCJEYWV2aWthXCIsXG4gICAgXCJEaGFhbnlhbGFrc2htaVwiLFxuICAgIFwiRGhhbmFsYWtzaG1pXCIsXG4gICAgXCJEaGFuYVwiLFxuICAgIFwiRGhhbmFkZWVwYVwiLFxuICAgIFwiRGhhcmFcIixcbiAgICBcIkRoYXJhbmlcIixcbiAgICBcIkRoYXJpdHJpXCIsXG4gICAgXCJEaGF0cmlcIixcbiAgICBcIkRpa3NoYVwiLFxuICAgIFwiRGVla3NoYVwiLFxuICAgIFwiRGl2eWFcIixcbiAgICBcIkRyYXVwYWRpXCIsXG4gICAgXCJEdWxhcmlcIixcbiAgICBcIkR1cmdhXCIsXG4gICAgXCJEdXJnZXNod2FyaVwiLFxuICAgIFwiRWthcGFybmlrYVwiLFxuICAgIFwiRWxha3NoaVwiLFxuICAgIFwiRW5ha3NoaVwiLFxuICAgIFwiRXNoYVwiLFxuICAgIFwiRXNoYW5hXCIsXG4gICAgXCJFc2hpdGFcIixcbiAgICBcIkdhdXRhbWlcIixcbiAgICBcIkdheWF0cmlcIixcbiAgICBcIkdlZXRhXCIsXG4gICAgXCJHZWV0YW5qYWxpXCIsXG4gICAgXCJHaXRhbmphbGlcIixcbiAgICBcIkdlbWluZVwiLFxuICAgIFwiR2VtaW5pXCIsXG4gICAgXCJHaXJqYVwiLFxuICAgIFwiR2lyaWphXCIsXG4gICAgXCJHaXRhXCIsXG4gICAgXCJIYW1zaW5pXCIsXG4gICAgXCJIYXJpbmFrc2hpXCIsXG4gICAgXCJIYXJpdGFcIixcbiAgICBcIkhlZW1hXCIsXG4gICAgXCJIaW1hZHJpXCIsXG4gICAgXCJIaW1hbmlcIixcbiAgICBcIkhpcmFueWFcIixcbiAgICBcIkluZGlyYVwiLFxuICAgIFwiSmFpbWluaVwiLFxuICAgIFwiSmF5YVwiLFxuICAgIFwiSnlvdGlcIixcbiAgICBcIkp5b3RzYW5hXCIsXG4gICAgXCJLYWxpXCIsXG4gICAgXCJLYWxpbmRhXCIsXG4gICAgXCJLYWxwYW5hXCIsXG4gICAgXCJLYWx5YW5pXCIsXG4gICAgXCJLYW1hXCIsXG4gICAgXCJLYW1hbGFcIixcbiAgICBcIkthbWxhXCIsXG4gICAgXCJLYW5jaGFuXCIsXG4gICAgXCJLYW5pc2hrYVwiLFxuICAgIFwiS2FudGlcIixcbiAgICBcIkthc2h5YXBpXCIsXG4gICAgXCJLdW1hcmlcIixcbiAgICBcIkt1bXVkYVwiLFxuICAgIFwiTGFrc2htaVwiLFxuICAgIFwiTGF4bWlcIixcbiAgICBcIkxhbGl0YVwiLFxuICAgIFwiTGF2YW55YVwiLFxuICAgIFwiTGVlbGFcIixcbiAgICBcIkxpbGFcIixcbiAgICBcIkxlZWxhXCIsXG4gICAgXCJNYWRodXJpXCIsXG4gICAgXCJNYWx0aVwiLFxuICAgIFwiTWFsYXRpXCIsXG4gICAgXCJNYW5kYWtpbmlcIixcbiAgICBcIk1hbmRhYWtpblwiLFxuICAgIFwiTWFuZ2FsYVwiLFxuICAgIFwiTWFuZ2FseWFcIixcbiAgICBcIk1hbmlcIixcbiAgICBcIk1hbmlzaGFcIixcbiAgICBcIk1hbmp1c2hhXCIsXG4gICAgXCJNZWVuYVwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiTWVlbmFrc2hpXCIsXG4gICAgXCJNaW5ha3NoaVwiLFxuICAgIFwiTWVua2FcIixcbiAgICBcIk1lbmFrYVwiLFxuICAgIFwiTW9oYW5hXCIsXG4gICAgXCJNb2hpbmlcIixcbiAgICBcIk5hbGluaVwiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJPamFzd2luaVwiLFxuICAgIFwiT21hbmFcIixcbiAgICBcIk9vcm1pbGFcIixcbiAgICBcIlVybWlsYVwiLFxuICAgIFwiT3BhbGluYVwiLFxuICAgIFwiT3BhbGluZVwiLFxuICAgIFwiUGFkbWFcIixcbiAgICBcIlBhcnZhdGlcIixcbiAgICBcIlBvb3JuaW1hXCIsXG4gICAgXCJQdXJuaW1hXCIsXG4gICAgXCJQcmFtaWxhXCIsXG4gICAgXCJQcmFzYW5uYVwiLFxuICAgIFwiUHJlaXR5XCIsXG4gICAgXCJQcmVtYVwiLFxuICAgIFwiUHJpeWFcIixcbiAgICBcIlByaXlhbGFcIixcbiAgICBcIlB1c2h0aVwiLFxuICAgIFwiUmFkaGFcIixcbiAgICBcIlJhZ2Vzd2FyaVwiLFxuICAgIFwiUmFnZXNod2FyaVwiLFxuICAgIFwiUmFqaW5kZXJcIixcbiAgICBcIlJhbWFhXCIsXG4gICAgXCJSYXRpXCIsXG4gICAgXCJSaXRhXCIsXG4gICAgXCJSb2hhbmFcIixcbiAgICBcIlJ1a2htYW5pXCIsXG4gICAgXCJSdWttaW5cIixcbiAgICBcIlJ1cGluZGVyXCIsXG4gICAgXCJTYW55YVwiLFxuICAgIFwiU2FyYWRhXCIsXG4gICAgXCJTaGFyZGFcIixcbiAgICBcIlNhcmFsYVwiLFxuICAgIFwiU2FybGFcIixcbiAgICBcIlNhcmFzd2F0aVwiLFxuICAgIFwiU2FyaXNoYVwiLFxuICAgIFwiU2Fyb2phXCIsXG4gICAgXCJTaGFrdGlcIixcbiAgICBcIlNoYWt1bnRhbGFcIixcbiAgICBcIlNoYW50aVwiLFxuICAgIFwiU2hhcm1pbGFcIixcbiAgICBcIlNoYXNoaVwiLFxuICAgIFwiU2hhc2hpa2FsYVwiLFxuICAgIFwiU2hlZWxhXCIsXG4gICAgXCJTaGl2YWthcmlcIixcbiAgICBcIlNob2JoYW5hXCIsXG4gICAgXCJTaHJlc3RoXCIsXG4gICAgXCJTaHJlc3RoaVwiLFxuICAgIFwiU2hyZXlhXCIsXG4gICAgXCJTaHJleWFzaGlcIixcbiAgICBcIlNocmlkZXZpXCIsXG4gICAgXCJTaHJpc2h0aVwiLFxuICAgIFwiU2h1YmhhXCIsXG4gICAgXCJTaHViaGFwcmFkYVwiLFxuICAgIFwiU2lkZGhpXCIsXG4gICAgXCJTaXRhcmFcIixcbiAgICBcIlNsb2thXCIsXG4gICAgXCJTbWl0YVwiLFxuICAgIFwiU21yaXRpXCIsXG4gICAgXCJTb21hXCIsXG4gICAgXCJTdWJoYXNoaW5pXCIsXG4gICAgXCJTdWJoYXNpbmlcIixcbiAgICBcIlN1Y2hldGFcIixcbiAgICBcIlN1ZGV2YVwiLFxuICAgIFwiU3VqYXRhXCIsXG4gICAgXCJTdWthbnlhXCIsXG4gICAgXCJTdW1hXCIsXG4gICAgXCJTdW1hXCIsXG4gICAgXCJTdW1pdHJhXCIsXG4gICAgXCJTdW5pdGFcIixcbiAgICBcIlN1cnlha2FudGFtXCIsXG4gICAgXCJTdXNobWFcIixcbiAgICBcIlN3YXJhXCIsXG4gICAgXCJTd2FybmFsYXRhXCIsXG4gICAgXCJTd2V0YVwiLFxuICAgIFwiU2h3ZXRcIixcbiAgICBcIlRhbmlyaWthXCIsXG4gICAgXCJUYW51c2hyZWVcIixcbiAgICBcIlRhbnVzaHJpXCIsXG4gICAgXCJUYW51c2hyaVwiLFxuICAgIFwiVGFueWFcIixcbiAgICBcIlRhcmFcIixcbiAgICBcIlRyaXNoYVwiLFxuICAgIFwiVW1hXCIsXG4gICAgXCJVc2hhXCIsXG4gICAgXCJWYWlqYXlhbnRpXCIsXG4gICAgXCJWYWlqYXlhbnRoaVwiLFxuICAgIFwiQmFpamF5YW50aVwiLFxuICAgIFwiVmFpc2h2aVwiLFxuICAgIFwiVmFpc2huYXZpXCIsXG4gICAgXCJWYWlzaG5vXCIsXG4gICAgXCJWYXJhbGFrc2htaVwiLFxuICAgIFwiVmFzdWRoYVwiLFxuICAgIFwiVmFzdW5kaGFyYVwiLFxuICAgIFwiVmVkYVwiLFxuICAgIFwiVmVkYW5zaGlcIixcbiAgICBcIlZpZHlhXCIsXG4gICAgXCJWaW1hbGFcIixcbiAgICBcIlZyaW5kYVwiLFxuICAgIFwiVnJ1bmRcIixcbiAgICBcIkFhZGlcIixcbiAgICBcIkFhZGlkZXZcIixcbiAgICBcIkFhZGluYXRoXCIsXG4gICAgXCJBYWRpdHlhXCIsXG4gICAgXCJBYWdhbVwiLFxuICAgIFwiQWFnbmV5XCIsXG4gICAgXCJBYW1vZFwiLFxuICAgIFwiQWFuYW5kYXN3YXJ1cFwiLFxuICAgIFwiQW5hbmQgU3dhcnVwXCIsXG4gICAgXCJBYW5qYW5leWFcIixcbiAgICBcIkFuamFuZXlhXCIsXG4gICAgXCJBYXJ5YW5cIixcbiAgICBcIkFyeWFuXCIsXG4gICAgXCJBYXRtYWpcIixcbiAgICBcIkFhdHJleWFcIixcbiAgICBcIkFheXVzaG1hYW5cIixcbiAgICBcIkFheXVzaG1hblwiLFxuICAgIFwiQWJoYWlkZXZcIixcbiAgICBcIkFiaGF5YVwiLFxuICAgIFwiQWJoaXJhdGhcIixcbiAgICBcIkFiaGlzeWFudGFcIixcbiAgICBcIkFjYXJ5YXRhbmF5YVwiLFxuICAgIFwiQWNoYWxlc3ZhcmFcIixcbiAgICBcIkFjaGFyeWFuYW5kYW5hXCIsXG4gICAgXCJBY2hhcnlhc3V0YVwiLFxuICAgIFwiQWNoaW50eWFcIixcbiAgICBcIkFjaHl1dFwiLFxuICAgIFwiQWRoZWVzaFwiLFxuICAgIFwiQWRoaXJhalwiLFxuICAgIFwiQWRocml0XCIsXG4gICAgXCJBZGlrYXZpXCIsXG4gICAgXCJBZGluYXRoXCIsXG4gICAgXCJBZGl0ZXlhXCIsXG4gICAgXCJBZGl0eWFcIixcbiAgICBcIkFkaXR5YW5hbmRhblwiLFxuICAgIFwiQWRpdHlhbmFuZGFuYVwiLFxuICAgIFwiQWRyaXBhdGhpXCIsXG4gICAgXCJBZHZheWFcIixcbiAgICBcIkFnYXN0aVwiLFxuICAgIFwiQWdhc3R5YVwiLFxuICAgIFwiQWduZXlhXCIsXG4gICAgXCJBYWduZXlhXCIsXG4gICAgXCJBZ25pbWl0cmFcIixcbiAgICBcIkFnbmlwcmF2YVwiLFxuICAgIFwiQWduaXZlc2hcIixcbiAgICBcIkFncmF0YVwiLFxuICAgIFwiQWppdFwiLFxuICAgIFwiQWplZXRcIixcbiAgICBcIkFrcm9vclwiLFxuICAgIFwiQWtzaGFqXCIsXG4gICAgXCJBa3NoYXRcIixcbiAgICBcIkFrc2hheWFrZWVydGlcIixcbiAgICBcIkFsb2tcIixcbiAgICBcIkFhbG9rXCIsXG4gICAgXCJBbWFyYW5hYXRoXCIsXG4gICAgXCJBbWFybmF0aFwiLFxuICAgIFwiQW1hcmVzaFwiLFxuICAgIFwiQW1iYXJcIixcbiAgICBcIkFtZXlhdG1hXCIsXG4gICAgXCJBbWlzaFwiLFxuICAgIFwiQW1vZ2hcIixcbiAgICBcIkFtcml0XCIsXG4gICAgXCJBbmFhZGlcIixcbiAgICBcIkFuYWdoXCIsXG4gICAgXCJBbmFsXCIsXG4gICAgXCJBbmFuZFwiLFxuICAgIFwiQWFuYW5kXCIsXG4gICAgXCJBbmFuZ1wiLFxuICAgIFwiQW5pbFwiLFxuICAgIFwiQW5pbGFhYmhcIixcbiAgICBcIkFuaWxhYmhcIixcbiAgICBcIkFuaXNoXCIsXG4gICAgXCJBbmthbFwiLFxuICAgIFwiQW51bmF5XCIsXG4gICAgXCJBbnVyYWdcIixcbiAgICBcIkFudXJhYWdcIixcbiAgICBcIkFyY2hhblwiLFxuICAgIFwiQXJpbmRhbVwiLFxuICAgIFwiQXJqdW5cIixcbiAgICBcIkFybmVzaFwiLFxuICAgIFwiQXJ1blwiLFxuICAgIFwiQXNobGVzaFwiLFxuICAgIFwiQXNob2tcIixcbiAgICBcIkF0bWFuYW5kXCIsXG4gICAgXCJBdG1hbmFuZGFcIixcbiAgICBcIkF2YWRoZXNoXCIsXG4gICAgXCJCYWFsYWFkaXR5YVwiLFxuICAgIFwiQmFsYWRpdHlhXCIsXG4gICAgXCJCYWFsYWdvcGFhbFwiLFxuICAgIFwiQmFsZ29wYWxcIixcbiAgICBcIkJhbGFnb3BhbFwiLFxuICAgIFwiQmFodWxhXCIsXG4gICAgXCJCYWt1bGFcIixcbiAgICBcIkJhbGFcIixcbiAgICBcIkJhbGFhZGl0eWFcIixcbiAgICBcIkJhbGFjaGFuZHJhXCIsXG4gICAgXCJCYWxhZ292aW5kXCIsXG4gICAgXCJCYW5kaHVcIixcbiAgICBcIkJhbmRodWxcIixcbiAgICBcIkJhbmtpbVwiLFxuICAgIFwiQmFua2ltY2hhbmRyYVwiLFxuICAgIFwiQmhhZHJha1wiLFxuICAgIFwiQmhhZHJha3NoXCIsXG4gICAgXCJCaGFkcmFuXCIsXG4gICAgXCJCaGFnYXZhYW5cIixcbiAgICBcIkJoYWd2YW5cIixcbiAgICBcIkJoYXJhZHdhalwiLFxuICAgIFwiQmhhcmR3YWpcIixcbiAgICBcIkJoYXJhdFwiLFxuICAgIFwiQmhhcmdhdmFcIixcbiAgICBcIkJoYXN2YW5cIixcbiAgICBcIkJoYWFzdmFuXCIsXG4gICAgXCJCaGFzd2FyXCIsXG4gICAgXCJCaGFhc3dhclwiLFxuICAgIFwiQmhhdW1pa1wiLFxuICAgIFwiQmhhdmVzXCIsXG4gICAgXCJCaGVlc2htYVwiLFxuICAgIFwiQmhpc2hhbVwiLFxuICAgIFwiQmhpc2htYVwiLFxuICAgIFwiQmhpbWFcIixcbiAgICBcIkJob2pcIixcbiAgICBcIkJocmFtYXJcIixcbiAgICBcIkJodWRldlwiLFxuICAgIFwiQmh1ZGV2YVwiLFxuICAgIFwiQmh1cGF0aVwiLFxuICAgIFwiQmhvb3BhdGlcIixcbiAgICBcIkJob29wYXRcIixcbiAgICBcIkJodXBlblwiLFxuICAgIFwiQmh1c2hhblwiLFxuICAgIFwiQmhvb3NoYW5cIixcbiAgICBcIkJodXNoaXRcIixcbiAgICBcIkJob29zaGl0XCIsXG4gICAgXCJCaHV2YW5lc2hcIixcbiAgICBcIkJodXZhbmVzaHdhclwiLFxuICAgIFwiQmlsdmFcIixcbiAgICBcIkJvZGhhblwiLFxuICAgIFwiQnJhaG1hXCIsXG4gICAgXCJCcmFobWFicmF0YVwiLFxuICAgIFwiQnJhaG1hbmFuZGFtXCIsXG4gICAgXCJCcmFobWFhbmFuZFwiLFxuICAgIFwiQnJhaG1kZXZcIixcbiAgICBcIkJyYWplbmRyYVwiLFxuICAgIFwiQnJhamVzaFwiLFxuICAgIFwiQnJpamVzaFwiLFxuICAgIFwiQmlyamVzaFwiLFxuICAgIFwiQnVkaGlsXCIsXG4gICAgXCJDaGFrb3JcIixcbiAgICBcIkNoYWtyYWRoYXJcIixcbiAgICBcIkNoYWtyYXZhcnRlZVwiLFxuICAgIFwiQ2hha3JhdmFydGlcIixcbiAgICBcIkNoYW5ha3lhXCIsXG4gICAgXCJDaGFhbmFreWFcIixcbiAgICBcIkNoYW5kYWtcIixcbiAgICBcIkNoYW5kYW5cIixcbiAgICBcIkNoYW5kcmFcIixcbiAgICBcIkNoYW5kcmFheWFuXCIsXG4gICAgXCJDaGFuZHJhYmhhblwiLFxuICAgIFwiQ2hhbmRyYWRldlwiLFxuICAgIFwiQ2hhbmRyYWtldHVcIixcbiAgICBcIkNoYW5kcmFtYXVsaVwiLFxuICAgIFwiQ2hhbmRyYW1vaGFuXCIsXG4gICAgXCJDaGFuZHJhblwiLFxuICAgIFwiQ2hhbmRyYW5hdGhcIixcbiAgICBcIkNoYXBhbFwiLFxuICAgIFwiQ2hhcmFrXCIsXG4gICAgXCJDaGFydWNoYW5kcmFcIixcbiAgICBcIkNoYWFydWNoYW5kcmFcIixcbiAgICBcIkNoYXJ1dnJhdFwiLFxuICAgIFwiQ2hhdHVyXCIsXG4gICAgXCJDaGF0dXJhYW5hblwiLFxuICAgIFwiQ2hhdHVyYmh1alwiLFxuICAgIFwiQ2hldGFuXCIsXG4gICAgXCJDaGF0ZW5cIixcbiAgICBcIkNoYWl0YW5cIixcbiAgICBcIkNoZXRhbmFhbmFuZFwiLFxuICAgIFwiQ2hpZGFha2Fhc2hcIixcbiAgICBcIkNoaWRhYXRtYVwiLFxuICAgIFwiQ2hpZGFtYmFyXCIsXG4gICAgXCJDaGlkYW1iYXJhbVwiLFxuICAgIFwiQ2hpZGFuYW5kYVwiLFxuICAgIFwiQ2hpbm1heWFuYW5kXCIsXG4gICAgXCJDaGlubWF5YW5hbmRhXCIsXG4gICAgXCJDaGlyYW5qZWV2XCIsXG4gICAgXCJDaGlyYW5qZWV2ZVwiLFxuICAgIFwiQ2hpdHJha3NoXCIsXG4gICAgXCJEYWl3aWtcIixcbiAgICBcIkRha3NoYVwiLFxuICAgIFwiRGFtb2RhcmFcIixcbiAgICBcIkRhbmRha1wiLFxuICAgIFwiRGFuZGFwYWFuaVwiLFxuICAgIFwiRGFyc2hhblwiLFxuICAgIFwiRGF0dGFcIixcbiAgICBcIkRheWFhbWF5XCIsXG4gICAgXCJEYXlhbWF5ZWVcIixcbiAgICBcIkRheWFhbmFuZGFcIixcbiAgICBcIkRheWFhbmlkaGlcIixcbiAgICBcIktpblwiLFxuICAgIFwiRGVlbmFiYW5kaHVcIixcbiAgICBcIkRlZXBhblwiLFxuICAgIFwiRGVlcGFua2FyXCIsXG4gICAgXCJEaXBhbmthclwiLFxuICAgIFwiRGVlcGVuZHJhXCIsXG4gICAgXCJEaXBlbmRyYVwiLFxuICAgIFwiRGVlcGVzaFwiLFxuICAgIFwiRGlwZXNoXCIsXG4gICAgXCJEZWVwdGFuc2h1XCIsXG4gICAgXCJEZWVwdGVuZHVcIixcbiAgICBcIkRpcHRlbmR1XCIsXG4gICAgXCJEZWVwdGltYW5cIixcbiAgICBcIkRlZXB0aW1veVwiLFxuICAgIFwiRGVlcHRpbWF5XCIsXG4gICAgXCJEZXZcIixcbiAgICBcIkRlYlwiLFxuICAgIFwiRGV2YWRhdHRcIixcbiAgICBcIkRldmFneWFcIixcbiAgICBcIkRldmFqeW90aVwiLFxuICAgIFwiRGV2YWtcIixcbiAgICBcIkRldmRhblwiLFxuICAgIFwiRGV2ZW5cIixcbiAgICBcIkRldmVzaFwiLFxuICAgIFwiRGV2ZXNod2FyXCIsXG4gICAgXCJEZXZpXCIsXG4gICAgXCJEZXZ2cmF0XCIsXG4gICAgXCJEaGFuYW5qYXlcIixcbiAgICBcIkRoYW5hcGF0aVwiLFxuICAgIFwiRGhhbnBhdGlcIixcbiAgICBcIkRoYW5lc2hcIixcbiAgICBcIkRoYW51XCIsXG4gICAgXCJEaGFudmluXCIsXG4gICAgXCJEaGFybWFrZXR1XCIsXG4gICAgXCJEaHJ1dlwiLFxuICAgIFwiRGh5YW5lc2hcIixcbiAgICBcIkRoeWFuZXNod2FyXCIsXG4gICAgXCJEaWdhbWJhclwiLFxuICAgIFwiRGlnYW1iYXJhXCIsXG4gICAgXCJEaW5ha2FyXCIsXG4gICAgXCJEaW5rYXJcIixcbiAgICBcIkRpbmVzaFwiLFxuICAgIFwiRGl2YWFrYXJcIixcbiAgICBcIkRpdmFrYXJcIixcbiAgICBcIkRlZXZha2FyXCIsXG4gICAgXCJEaXZqb3RcIixcbiAgICBcIkRyb25cIixcbiAgICBcIkRyb25hXCIsXG4gICAgXCJEd2FpcGF5YW5cIixcbiAgICBcIkR3YWlwYXlhbmFcIixcbiAgICBcIkVla2FsYWJ5YVwiLFxuICAgIFwiRWthbGF2eWFcIixcbiAgICBcIkVrYWtzaFwiLFxuICAgIFwiRWthYWtzaFwiLFxuICAgIFwiRWthbGluZ1wiLFxuICAgIFwiRWtkYW50XCIsXG4gICAgXCJFa2FkYW50XCIsXG4gICAgXCJHYWphYWRoYXJcIixcbiAgICBcIkdhamFkaGFyXCIsXG4gICAgXCJHYWpiYWFodVwiLFxuICAgIFwiR2FqYWJhaHVcIixcbiAgICBcIkdhbmFrXCIsXG4gICAgXCJHYW5ha2FcIixcbiAgICBcIkdhbmFwYXRpXCIsXG4gICAgXCJHYW5kaGFydlwiLFxuICAgIFwiR2FuZGhhcnZhXCIsXG4gICAgXCJHYW5lc2hcIixcbiAgICBcIkdhbmdlc2hcIixcbiAgICBcIkdhcnVkXCIsXG4gICAgXCJHYXJ1ZGFcIixcbiAgICBcIkdhdGlcIixcbiAgICBcIkdhdGlrXCIsXG4gICAgXCJHYXVyYW5nXCIsXG4gICAgXCJHYXVyYWFuZ1wiLFxuICAgIFwiR2F1cmFuZ2FcIixcbiAgICBcIkdvdXJhbmdhXCIsXG4gICAgXCJHYXV0YW1cIixcbiAgICBcIkdhdXRhbWFcIixcbiAgICBcIkdvdXRhbVwiLFxuICAgIFwiR2hhbmFhbmFuZFwiLFxuICAgIFwiR2hhbnNoeWFtXCIsXG4gICAgXCJHaGFuYXNoeWFtXCIsXG4gICAgXCJHaXJpXCIsXG4gICAgXCJHaXJpa1wiLFxuICAgIFwiR2lyaWthXCIsXG4gICAgXCJHaXJpbmRyYVwiLFxuICAgIFwiR2lyaXJhYWpcIixcbiAgICBcIkdpcmlyYWpcIixcbiAgICBcIkdpcmlzaFwiLFxuICAgIFwiR29wYWxcIixcbiAgICBcIkdvcGFhbFwiLFxuICAgIFwiR29waVwiLFxuICAgIFwiR29wZWVcIixcbiAgICBcIkdvcmFraG5hdGhcIixcbiAgICBcIkdvcmFraGFuYXRoYVwiLFxuICAgIFwiR29zd2FtZWVcIixcbiAgICBcIkdvc3dhbWlcIixcbiAgICBcIkdvdHVtXCIsXG4gICAgXCJHYXV0YW1cIixcbiAgICBcIkdvdmluZGFcIixcbiAgICBcIkdvYmluZGFcIixcbiAgICBcIkd1ZGFrZXNoYVwiLFxuICAgIFwiR3VkYWtlc2FcIixcbiAgICBcIkd1cmRldlwiLFxuICAgIFwiR3VydVwiLFxuICAgIFwiSGFyaVwiLFxuICAgIFwiSGFyaW5hcmF5YW5cIixcbiAgICBcIkhhcml0XCIsXG4gICAgXCJIaW1hZHJpXCIsXG4gICAgXCJIaXJhbm1heVwiLFxuICAgIFwiSGlyYW5tYXlhXCIsXG4gICAgXCJIaXJhbnlhXCIsXG4gICAgXCJJbmRlclwiLFxuICAgIFwiSW5kcmFcIixcbiAgICBcIkluZHJhXCIsXG4gICAgXCJKYWdhZGlzaFwiLFxuICAgIFwiSmFnYWRpc2hhXCIsXG4gICAgXCJKYWdhdGhpXCIsXG4gICAgXCJKYWdkZWVwXCIsXG4gICAgXCJKYWdkaXNoXCIsXG4gICAgXCJKYWdtZWV0XCIsXG4gICAgXCJKYWhudVwiLFxuICAgIFwiSmFpXCIsXG4gICAgXCJKYXZhc1wiLFxuICAgIFwiSmF5XCIsXG4gICAgXCJKaXRlbmRyYVwiLFxuICAgIFwiSml0ZW5kZXJcIixcbiAgICBcIkp5b3Rpc1wiLFxuICAgIFwiS2FpbGFzaFwiLFxuICAgIFwiS2FtYVwiLFxuICAgIFwiS2FtYWxlc2hcIixcbiAgICBcIkthbWxlc2hcIixcbiAgICBcIkthbmFrXCIsXG4gICAgXCJLYW5ha2FcIixcbiAgICBcIkthbm5hblwiLFxuICAgIFwiS2FubmVuXCIsXG4gICAgXCJLYXJhblwiLFxuICAgIFwiS2FydGhpa1wiLFxuICAgIFwiS2FydGlrXCIsXG4gICAgXCJLYXJ1bmFuaWRoaVwiLFxuICAgIFwiS2FzaHlhcFwiLFxuICAgIFwiS2lyYW5cIixcbiAgICBcIktpcnRpXCIsXG4gICAgXCJLZWVydGlcIixcbiAgICBcIktyaXNobmFcIixcbiAgICBcIktyaXNobmFkYXNcIixcbiAgICBcIktyaXNobmFkYXNhXCIsXG4gICAgXCJLdW1hclwiLFxuICAgIFwiTGFpXCIsXG4gICAgXCJMYWtzaG1hblwiLFxuICAgIFwiTGF4bWFuXCIsXG4gICAgXCJMYWtzaG1pZGhhclwiLFxuICAgIFwiTGFrc2htaW5hdGhcIixcbiAgICBcIkxhbFwiLFxuICAgIFwiTGFhbFwiLFxuICAgIFwiTWFoZW5kcmFcIixcbiAgICBcIk1vaGluZGVyXCIsXG4gICAgXCJNYWhlc2hcIixcbiAgICBcIk1haGVzd2FyXCIsXG4gICAgXCJNYW5pXCIsXG4gICAgXCJNYW5pa1wiLFxuICAgIFwiTWFuaWt5YVwiLFxuICAgIFwiTWFub2pcIixcbiAgICBcIk1hcnV0XCIsXG4gICAgXCJNYXlvb3JcIixcbiAgICBcIk1lZ2huYWRcIixcbiAgICBcIk1lZ2huYXRoXCIsXG4gICAgXCJNb2hhblwiLFxuICAgIFwiTXVrZXNoXCIsXG4gICAgXCJNdWt1bFwiLFxuICAgIFwiTmFnYWJodXNoYW5hbVwiLFxuICAgIFwiTmFuZGFcIixcbiAgICBcIk5hcmF5YW5cIixcbiAgICBcIk5hcmVuZHJhXCIsXG4gICAgXCJOYXJpbmRlclwiLFxuICAgIFwiTmF2ZWVuXCIsXG4gICAgXCJOYXZpblwiLFxuICAgIFwiTmF3YWxcIixcbiAgICBcIk5hdmFsXCIsXG4gICAgXCJOaW1pdFwiLFxuICAgIFwiTmlyYW5qYW5cIixcbiAgICBcIk5pcmJoYXlcIixcbiAgICBcIk5pcm9cIixcbiAgICBcIlBhcmFtXCIsXG4gICAgXCJQYXJhbWFydGhhXCIsXG4gICAgXCJQcmFuXCIsXG4gICAgXCJQcmFuYXlcIixcbiAgICBcIlByYXNhZFwiLFxuICAgIFwiUHJhdGhhbWVzaFwiLFxuICAgIFwiUHJheWFnXCIsXG4gICAgXCJQcmVtXCIsXG4gICAgXCJQdW5lZXRcIixcbiAgICBcIlB1cnVzaG90dGFtXCIsXG4gICAgXCJSYWh1bFwiLFxuICAgIFwiUmFqXCIsXG4gICAgXCJSYWphblwiLFxuICAgIFwiUmFqZW5kcmFcIixcbiAgICBcIlJhamluZGVyXCIsXG4gICAgXCJSYWppdlwiLFxuICAgIFwiUmFrZXNoXCIsXG4gICAgXCJSYW1lc2hcIixcbiAgICBcIlJhbWVzaHdhclwiLFxuICAgIFwiUmFuaml0XCIsXG4gICAgXCJSYW5qZWV0XCIsXG4gICAgXCJSYXZpXCIsXG4gICAgXCJSaXRlc2hcIixcbiAgICBcIlJvaGFuXCIsXG4gICAgXCJSb2hpdFwiLFxuICAgIFwiUnVkcmFcIixcbiAgICBcIlNhY2hpblwiLFxuICAgIFwiU2FtZWVyXCIsXG4gICAgXCJTYW1pclwiLFxuICAgIFwiU2FuamF5XCIsXG4gICAgXCJTYW5rYVwiLFxuICAgIFwiU2FydmluXCIsXG4gICAgXCJTYXRpc2hcIixcbiAgICBcIlNhdHllblwiLFxuICAgIFwiU2hhbmthclwiLFxuICAgIFwiU2hhbnRhbnVcIixcbiAgICBcIlNoYXNoaVwiLFxuICAgIFwiU2hlclwiLFxuICAgIFwiU2hpdlwiLFxuICAgIFwiU2lkZGFydGhcIixcbiAgICBcIlNpZGRocmFuXCIsXG4gICAgXCJTb21cIixcbiAgICBcIlNvbXVcIixcbiAgICBcIlNvbW5hdGhcIixcbiAgICBcIlN1Ymhhc2hcIixcbiAgICBcIlN1Ym9kaFwiLFxuICAgIFwiU3VtYW5cIixcbiAgICBcIlN1cmVzaFwiLFxuICAgIFwiU3VyeWFcIixcbiAgICBcIlN1cnlha2FudFwiLFxuICAgIFwiU3VyeWFrYW50YVwiLFxuICAgIFwiU3VzaGlsXCIsXG4gICAgXCJTdXNoZWVsXCIsXG4gICAgXCJTd2FtaVwiLFxuICAgIFwiU3dhcG5pbFwiLFxuICAgIFwiVGFwYW5cIixcbiAgICBcIlRhcmFcIixcbiAgICBcIlRhcnVuXCIsXG4gICAgXCJUZWpcIixcbiAgICBcIlRlamFzXCIsXG4gICAgXCJUcmlsb2NoYW5cIixcbiAgICBcIlRyaWxvY2hhbmFcIixcbiAgICBcIlRyaWxva1wiLFxuICAgIFwiVHJpbG9rZXNoXCIsXG4gICAgXCJUcmlsb2tpXCIsXG4gICAgXCJUcmlsb2tpIE5hdGhcIixcbiAgICBcIlRyaWxva2FuYXRoXCIsXG4gICAgXCJUdXNoYXJcIixcbiAgICBcIlVkYWlcIixcbiAgICBcIlVkaXRcIixcbiAgICBcIlVqamF3YWxcIixcbiAgICBcIlVqandhbFwiLFxuICAgIFwiVW1hbmdcIixcbiAgICBcIlVwZW5kcmFcIixcbiAgICBcIlV0dGFtXCIsXG4gICAgXCJWYXN1ZGV2XCIsXG4gICAgXCJWYXN1ZGV2YVwiLFxuICAgIFwiVmVkYW5nXCIsXG4gICAgXCJWZWRhbmdhXCIsXG4gICAgXCJWaWRoeWFcIixcbiAgICBcIlZpZHVyXCIsXG4gICAgXCJWaWRodXJcIixcbiAgICBcIlZpamF5XCIsXG4gICAgXCJWaW1hbFwiLFxuICAgIFwiVmluYXlcIixcbiAgICBcIlZpc2hudVwiLFxuICAgIFwiQmlzaG51XCIsXG4gICAgXCJWaXNod2FtaXRyYVwiLFxuICAgIFwiVnlhc1wiLFxuICAgIFwiWW9nZW5kcmFcIixcbiAgICBcIllvZ2luZGVyXCIsXG4gICAgXCJZb2dlc2hcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBYmJvdHRcIixcbiAgICBcIkFjaGFyaVwiLFxuICAgIFwiQWNoYXJ5YVwiLFxuICAgIFwiQWRpZ2FcIixcbiAgICBcIkFnYXJ3YWxcIixcbiAgICBcIkFobHV3YWxpYVwiLFxuICAgIFwiQWh1amFcIixcbiAgICBcIkFyb3JhXCIsXG4gICAgXCJBc2FuXCIsXG4gICAgXCJCYW5kb3BhZGh5YXlcIixcbiAgICBcIkJhbmVyamVlXCIsXG4gICAgXCJCaGFyYWR3YWpcIixcbiAgICBcIkJoYXRcIixcbiAgICBcIkJ1dHRcIixcbiAgICBcIkJoYXR0YWNoYXJ5YVwiLFxuICAgIFwiQmhhdHRhdGhpcmlcIixcbiAgICBcIkNoYXR1cnZlZGlcIixcbiAgICBcIkNoYXR0b3BhZGh5YXlcIixcbiAgICBcIkNob3ByYVwiLFxuICAgIFwiRGVzYWlcIixcbiAgICBcIkRlc2hwYW5kZVwiLFxuICAgIFwiRGV2YXJcIixcbiAgICBcIkRoYXdhblwiLFxuICAgIFwiRHViYXNoaVwiLFxuICAgIFwiRHV0dGFcIixcbiAgICBcIkR3aXZlZGlcIixcbiAgICBcIkVtYnJhbnRoaXJpXCIsXG4gICAgXCJHYW5ha2FcIixcbiAgICBcIkdhbmRoaVwiLFxuICAgIFwiR2lsbFwiLFxuICAgIFwiR293ZGFcIixcbiAgICBcIkd1aGFcIixcbiAgICBcIkd1bmV0YVwiLFxuICAgIFwiR3VwdGFcIixcbiAgICBcIkl5ZXJcIixcbiAgICBcIkl5ZW5nYXJcIixcbiAgICBcIkphaW5cIixcbiAgICBcIkpoYVwiLFxuICAgIFwiSm9oYXJcIixcbiAgICBcIkpvc2hpXCIsXG4gICAgXCJLYWtrYXJcIixcbiAgICBcIkthbml5YXJcIixcbiAgICBcIkthcG9vclwiLFxuICAgIFwiS2F1bFwiLFxuICAgIFwiS2F1clwiLFxuICAgIFwiS2hhblwiLFxuICAgIFwiS2hhbm5hXCIsXG4gICAgXCJLaGF0cmlcIixcbiAgICBcIktvY2NoYXJcIixcbiAgICBcIk1haGFqYW5cIixcbiAgICBcIk1hbGlrXCIsXG4gICAgXCJNYXJhclwiLFxuICAgIFwiTWVub25cIixcbiAgICBcIk1laHJhXCIsXG4gICAgXCJNZWhyb3RyYVwiLFxuICAgIFwiTWlzaHJhXCIsXG4gICAgXCJNdWtob3BhZGh5YXlcIixcbiAgICBcIk5heWFyXCIsXG4gICAgXCJOYWlrXCIsXG4gICAgXCJOYWlyXCIsXG4gICAgXCJOYW1iZWVzYW5cIixcbiAgICBcIk5hbWJvb3RoaXJpXCIsXG4gICAgXCJOZWhydVwiLFxuICAgIFwiUGFuZGV5XCIsXG4gICAgXCJQYW5pY2tlclwiLFxuICAgIFwiUGF0ZWxcIixcbiAgICBcIlBhdGlsXCIsXG4gICAgXCJQaWxsYVwiLFxuICAgIFwiUGlsbGFpXCIsXG4gICAgXCJQb3RodXZhYWxcIixcbiAgICBcIlByYWphcGF0XCIsXG4gICAgXCJSYW5hXCIsXG4gICAgXCJSZWRkeVwiLFxuICAgIFwiU2FpbmlcIixcbiAgICBcIlNldGhpXCIsXG4gICAgXCJTaGFoXCIsXG4gICAgXCJTaGFybWFcIixcbiAgICBcIlNodWtsYVwiLFxuICAgIFwiU2luZ2hcIixcbiAgICBcIlNpbmhhXCIsXG4gICAgXCJTb21heWFqaVwiLFxuICAgIFwiVGFnb3JlXCIsXG4gICAgXCJUYWx3YXJcIixcbiAgICBcIlRhbmRvblwiLFxuICAgIFwiVHJpdmVkaVwiLFxuICAgIFwiVmFycmllclwiLFxuICAgIFwiVmFybWFcIixcbiAgICBcIlZhcm1hblwiLFxuICAgIFwiVmVybWFcIlxuICBdXG59O1xuZW5fSU5ELmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiPyM/ICM/I1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQW5kcmEgUHJhZGVzaFwiLFxuICAgIFwiQXJ1bmFjaGFsIFByYWRlc2hcIixcbiAgICBcIkFzc2FtXCIsXG4gICAgXCJCaWhhclwiLFxuICAgIFwiQ2hoYXR0aXNnYXJoXCIsXG4gICAgXCJHb2FcIixcbiAgICBcIkd1amFyYXRcIixcbiAgICBcIkhhcnlhbmFcIixcbiAgICBcIkhpbWFjaGFsIFByYWRlc2hcIixcbiAgICBcIkphbW11IGFuZCBLYXNobWlyXCIsXG4gICAgXCJKaGFya2hhbmRcIixcbiAgICBcIkthcm5hdGFrYVwiLFxuICAgIFwiS2VyYWxhXCIsXG4gICAgXCJNYWR5YSBQcmFkZXNoXCIsXG4gICAgXCJNYWhhcmFzaHRyYVwiLFxuICAgIFwiTWFuaXB1clwiLFxuICAgIFwiTWVnaGFsYXlhXCIsXG4gICAgXCJNaXpvcmFtXCIsXG4gICAgXCJOYWdhbGFuZFwiLFxuICAgIFwiT3Jpc3NhXCIsXG4gICAgXCJQdW5qYWJcIixcbiAgICBcIlJhamFzdGhhblwiLFxuICAgIFwiU2lra2ltXCIsXG4gICAgXCJUYW1pbCBOYWR1XCIsXG4gICAgXCJUcmlwdXJhXCIsXG4gICAgXCJVdHRhcmFuY2hhbFwiLFxuICAgIFwiVXR0YXIgUHJhZGVzaFwiLFxuICAgIFwiV2VzdCBCZW5nYWxcIixcbiAgICBcIkFuZGFtYW4gYW5kIE5pY29iYXIgSXNsYW5kc1wiLFxuICAgIFwiQ2hhbmRpZ2FyaFwiLFxuICAgIFwiRGFkYXIgYW5kIE5hZ2FyIEhhdmVsaVwiLFxuICAgIFwiRGFtYW4gYW5kIERpdVwiLFxuICAgIFwiRGVsaGlcIixcbiAgICBcIkxha3NoYWR3ZWVwXCIsXG4gICAgXCJQb25kaWNoZXJyeVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBUFwiLFxuICAgIFwiQVJcIixcbiAgICBcIkFTXCIsXG4gICAgXCJCUlwiLFxuICAgIFwiQ0dcIixcbiAgICBcIkRMXCIsXG4gICAgXCJHQVwiLFxuICAgIFwiR0pcIixcbiAgICBcIkhSXCIsXG4gICAgXCJIUFwiLFxuICAgIFwiSktcIixcbiAgICBcIkpTXCIsXG4gICAgXCJLQVwiLFxuICAgIFwiS0xcIixcbiAgICBcIk1QXCIsXG4gICAgXCJNSFwiLFxuICAgIFwiTU5cIixcbiAgICBcIk1MXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiTkxcIixcbiAgICBcIk9SXCIsXG4gICAgXCJQQlwiLFxuICAgIFwiUkpcIixcbiAgICBcIlNLXCIsXG4gICAgXCJUTlwiLFxuICAgIFwiVFJcIixcbiAgICBcIlVLXCIsXG4gICAgXCJVUFwiLFxuICAgIFwiV0JcIixcbiAgICBcIkFOXCIsXG4gICAgXCJDSFwiLFxuICAgIFwiRE5cIixcbiAgICBcIkREXCIsXG4gICAgXCJMRFwiLFxuICAgIFwiUFlcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWFuIFJlcHVibGljXCIsXG4gICAgXCJCaGFyYXRcIixcbiAgICBcIkhpbmR1c3RhblwiXG4gIF1cbn07XG5lbl9JTkQuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvLmluXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJpblwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCIsXG4gICAgXCJjby5pblwiXG4gIF1cbn07XG5lbl9JTkQuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHZ0IEx0ZFwiLFxuICAgIFwiTGltaXRlZFwiLFxuICAgIFwiTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCJcbiAgXVxufTtcbmVuX0lORC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIrOTEjIyMtIyMjLSMjIyNcIixcbiAgICBcIis5MSMjIyMjIyMjIyNcIixcbiAgICBcIis5MS0jIyMtIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fVVMgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9VUztcbmVuX1VTLnRpdGxlID0gXCJVbml0ZWQgU3RhdGVzIChFbmdsaXNoKVwiO1xuZW5fVVMuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcInVzXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX1VTLmFkZHJlc3MgPSB7XG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIlVuaXRlZCBTdGF0ZXNcIixcbiAgICBcIlVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYVwiLFxuICAgIFwiVVNBXCJcbiAgXSxcbiAgXCJwb3N0Y29kZV9ieV9zdGF0ZVwiOiB7XG4gICAgXCJBTFwiOiBcIjM1MCMjXCIsXG4gICAgXCJBS1wiOiBcIjk5NSMjXCIsXG4gICAgXCJBU1wiOiBcIjk2NyMjXCIsXG4gICAgXCJBWlwiOiBcIjg1MCMjXCIsXG4gICAgXCJBUlwiOiBcIjcxNyMjXCIsXG4gICAgXCJDQVwiOiBcIjkwMCMjXCIsXG4gICAgXCJDT1wiOiBcIjgwMCMjXCIsXG4gICAgXCJDVFwiOiBcIjA2MSMjXCIsXG4gICAgXCJEQ1wiOiBcIjIwNCMjXCIsXG4gICAgXCJERVwiOiBcIjE5OCMjXCIsXG4gICAgXCJGTFwiOiBcIjMyMiMjXCIsXG4gICAgXCJHQVwiOiBcIjMwMSMjXCIsXG4gICAgXCJISVwiOiBcIjk2NyMjXCIsXG4gICAgXCJJRFwiOiBcIjgzMiMjXCIsXG4gICAgXCJJTFwiOiBcIjYwMCMjXCIsXG4gICAgXCJJTlwiOiBcIjQ2MyMjXCIsXG4gICAgXCJJQVwiOiBcIjUxMCMjXCIsXG4gICAgXCJLU1wiOiBcIjY2NiMjXCIsXG4gICAgXCJLWVwiOiBcIjQwNCMjXCIsXG4gICAgXCJMQVwiOiBcIjcwMSMjXCIsXG4gICAgXCJNRVwiOiBcIjA0MiMjXCIsXG4gICAgXCJNRFwiOiBcIjIxMCMjXCIsXG4gICAgXCJNQVwiOiBcIjAyNiMjXCIsXG4gICAgXCJNSVwiOiBcIjQ4MCMjXCIsXG4gICAgXCJNTlwiOiBcIjU1NSMjXCIsXG4gICAgXCJNU1wiOiBcIjM4NyMjXCIsXG4gICAgXCJNT1wiOiBcIjY1MCMjXCIsXG4gICAgXCJNVFwiOiBcIjU5MCMjXCIsXG4gICAgXCJORVwiOiBcIjY4OCMjXCIsXG4gICAgXCJOVlwiOiBcIjg5OCMjXCIsXG4gICAgXCJOSFwiOiBcIjAzNiMjXCIsXG4gICAgXCJOSlwiOiBcIjA3NiMjXCIsXG4gICAgXCJOTVwiOiBcIjg4MCMjXCIsXG4gICAgXCJOWVwiOiBcIjEyMiMjXCIsXG4gICAgXCJOQ1wiOiBcIjI4OCMjXCIsXG4gICAgXCJORFwiOiBcIjU4NiMjXCIsXG4gICAgXCJPSFwiOiBcIjQ0NCMjXCIsXG4gICAgXCJPS1wiOiBcIjczMCMjXCIsXG4gICAgXCJPUlwiOiBcIjk3OSMjXCIsXG4gICAgXCJQQVwiOiBcIjE4NiMjXCIsXG4gICAgXCJSSVwiOiBcIjAyOSMjXCIsXG4gICAgXCJTQ1wiOiBcIjI5OSMjXCIsXG4gICAgXCJTRFwiOiBcIjU3NyMjXCIsXG4gICAgXCJUTlwiOiBcIjM4MyMjXCIsXG4gICAgXCJUWFwiOiBcIjc5OCMjXCIsXG4gICAgXCJVVFwiOiBcIjg0NyMjXCIsXG4gICAgXCJWVFwiOiBcIjA1MCMjXCIsXG4gICAgXCJWQVwiOiBcIjIyMiMjXCIsXG4gICAgXCJXQVwiOiBcIjk5MCMjXCIsXG4gICAgXCJXVlwiOiBcIjI0NyMjXCIsXG4gICAgXCJXSVwiOiBcIjU0OSMjXCIsXG4gICAgXCJXWVwiOiBcIjgzMSMjXCJcbiAgfVxufTtcbmVuX1VTLnBob25lX251bWJlciA9IHtcbiAgXCJhcmVhX2NvZGVcIjogW1xuICAgIFwiMjAxXCIsXG4gICAgXCIyMDJcIixcbiAgICBcIjIwM1wiLFxuICAgIFwiMjA1XCIsXG4gICAgXCIyMDZcIixcbiAgICBcIjIwN1wiLFxuICAgIFwiMjA4XCIsXG4gICAgXCIyMDlcIixcbiAgICBcIjIxMFwiLFxuICAgIFwiMjEyXCIsXG4gICAgXCIyMTNcIixcbiAgICBcIjIxNFwiLFxuICAgIFwiMjE1XCIsXG4gICAgXCIyMTZcIixcbiAgICBcIjIxN1wiLFxuICAgIFwiMjE4XCIsXG4gICAgXCIyMTlcIixcbiAgICBcIjIyNFwiLFxuICAgIFwiMjI1XCIsXG4gICAgXCIyMjdcIixcbiAgICBcIjIyOFwiLFxuICAgIFwiMjI5XCIsXG4gICAgXCIyMzFcIixcbiAgICBcIjIzNFwiLFxuICAgIFwiMjM5XCIsXG4gICAgXCIyNDBcIixcbiAgICBcIjI0OFwiLFxuICAgIFwiMjUxXCIsXG4gICAgXCIyNTJcIixcbiAgICBcIjI1M1wiLFxuICAgIFwiMjU0XCIsXG4gICAgXCIyNTZcIixcbiAgICBcIjI2MFwiLFxuICAgIFwiMjYyXCIsXG4gICAgXCIyNjdcIixcbiAgICBcIjI2OVwiLFxuICAgIFwiMjcwXCIsXG4gICAgXCIyNzZcIixcbiAgICBcIjI4MVwiLFxuICAgIFwiMjgzXCIsXG4gICAgXCIzMDFcIixcbiAgICBcIjMwMlwiLFxuICAgIFwiMzAzXCIsXG4gICAgXCIzMDRcIixcbiAgICBcIjMwNVwiLFxuICAgIFwiMzA3XCIsXG4gICAgXCIzMDhcIixcbiAgICBcIjMwOVwiLFxuICAgIFwiMzEwXCIsXG4gICAgXCIzMTJcIixcbiAgICBcIjMxM1wiLFxuICAgIFwiMzE0XCIsXG4gICAgXCIzMTVcIixcbiAgICBcIjMxNlwiLFxuICAgIFwiMzE3XCIsXG4gICAgXCIzMThcIixcbiAgICBcIjMxOVwiLFxuICAgIFwiMzIwXCIsXG4gICAgXCIzMjFcIixcbiAgICBcIjMyM1wiLFxuICAgIFwiMzMwXCIsXG4gICAgXCIzMzFcIixcbiAgICBcIjMzNFwiLFxuICAgIFwiMzM2XCIsXG4gICAgXCIzMzdcIixcbiAgICBcIjMzOVwiLFxuICAgIFwiMzQ3XCIsXG4gICAgXCIzNTFcIixcbiAgICBcIjM1MlwiLFxuICAgIFwiMzYwXCIsXG4gICAgXCIzNjFcIixcbiAgICBcIjM4NlwiLFxuICAgIFwiNDAxXCIsXG4gICAgXCI0MDJcIixcbiAgICBcIjQwNFwiLFxuICAgIFwiNDA1XCIsXG4gICAgXCI0MDZcIixcbiAgICBcIjQwN1wiLFxuICAgIFwiNDA4XCIsXG4gICAgXCI0MDlcIixcbiAgICBcIjQxMFwiLFxuICAgIFwiNDEyXCIsXG4gICAgXCI0MTNcIixcbiAgICBcIjQxNFwiLFxuICAgIFwiNDE1XCIsXG4gICAgXCI0MTdcIixcbiAgICBcIjQxOVwiLFxuICAgIFwiNDIzXCIsXG4gICAgXCI0MjRcIixcbiAgICBcIjQyNVwiLFxuICAgIFwiNDM0XCIsXG4gICAgXCI0MzVcIixcbiAgICBcIjQ0MFwiLFxuICAgIFwiNDQzXCIsXG4gICAgXCI0NDVcIixcbiAgICBcIjQ2NFwiLFxuICAgIFwiNDY5XCIsXG4gICAgXCI0NzBcIixcbiAgICBcIjQ3NVwiLFxuICAgIFwiNDc4XCIsXG4gICAgXCI0NzlcIixcbiAgICBcIjQ4MFwiLFxuICAgIFwiNDg0XCIsXG4gICAgXCI1MDFcIixcbiAgICBcIjUwMlwiLFxuICAgIFwiNTAzXCIsXG4gICAgXCI1MDRcIixcbiAgICBcIjUwNVwiLFxuICAgIFwiNTA3XCIsXG4gICAgXCI1MDhcIixcbiAgICBcIjUwOVwiLFxuICAgIFwiNTEwXCIsXG4gICAgXCI1MTJcIixcbiAgICBcIjUxM1wiLFxuICAgIFwiNTE1XCIsXG4gICAgXCI1MTZcIixcbiAgICBcIjUxN1wiLFxuICAgIFwiNTE4XCIsXG4gICAgXCI1MjBcIixcbiAgICBcIjUzMFwiLFxuICAgIFwiNTQwXCIsXG4gICAgXCI1NDFcIixcbiAgICBcIjU1MVwiLFxuICAgIFwiNTU3XCIsXG4gICAgXCI1NTlcIixcbiAgICBcIjU2MVwiLFxuICAgIFwiNTYyXCIsXG4gICAgXCI1NjNcIixcbiAgICBcIjU2NFwiLFxuICAgIFwiNTY3XCIsXG4gICAgXCI1NzBcIixcbiAgICBcIjU3MVwiLFxuICAgIFwiNTczXCIsXG4gICAgXCI1NzRcIixcbiAgICBcIjU4MFwiLFxuICAgIFwiNTg1XCIsXG4gICAgXCI1ODZcIixcbiAgICBcIjYwMVwiLFxuICAgIFwiNjAyXCIsXG4gICAgXCI2MDNcIixcbiAgICBcIjYwNVwiLFxuICAgIFwiNjA2XCIsXG4gICAgXCI2MDdcIixcbiAgICBcIjYwOFwiLFxuICAgIFwiNjA5XCIsXG4gICAgXCI2MTBcIixcbiAgICBcIjYxMlwiLFxuICAgIFwiNjE0XCIsXG4gICAgXCI2MTVcIixcbiAgICBcIjYxNlwiLFxuICAgIFwiNjE3XCIsXG4gICAgXCI2MThcIixcbiAgICBcIjYxOVwiLFxuICAgIFwiNjIwXCIsXG4gICAgXCI2MjNcIixcbiAgICBcIjYyNlwiLFxuICAgIFwiNjMwXCIsXG4gICAgXCI2MzFcIixcbiAgICBcIjYzNlwiLFxuICAgIFwiNjQxXCIsXG4gICAgXCI2NDZcIixcbiAgICBcIjY1MFwiLFxuICAgIFwiNjUxXCIsXG4gICAgXCI2NjBcIixcbiAgICBcIjY2MVwiLFxuICAgIFwiNjYyXCIsXG4gICAgXCI2NjdcIixcbiAgICBcIjY3OFwiLFxuICAgIFwiNjgyXCIsXG4gICAgXCI3MDFcIixcbiAgICBcIjcwMlwiLFxuICAgIFwiNzAzXCIsXG4gICAgXCI3MDRcIixcbiAgICBcIjcwNlwiLFxuICAgIFwiNzA3XCIsXG4gICAgXCI3MDhcIixcbiAgICBcIjcxMlwiLFxuICAgIFwiNzEzXCIsXG4gICAgXCI3MTRcIixcbiAgICBcIjcxNVwiLFxuICAgIFwiNzE2XCIsXG4gICAgXCI3MTdcIixcbiAgICBcIjcxOFwiLFxuICAgIFwiNzE5XCIsXG4gICAgXCI3MjBcIixcbiAgICBcIjcyNFwiLFxuICAgIFwiNzI3XCIsXG4gICAgXCI3MzFcIixcbiAgICBcIjczMlwiLFxuICAgIFwiNzM0XCIsXG4gICAgXCI3MzdcIixcbiAgICBcIjc0MFwiLFxuICAgIFwiNzU0XCIsXG4gICAgXCI3NTdcIixcbiAgICBcIjc2MFwiLFxuICAgIFwiNzYzXCIsXG4gICAgXCI3NjVcIixcbiAgICBcIjc3MFwiLFxuICAgIFwiNzcyXCIsXG4gICAgXCI3NzNcIixcbiAgICBcIjc3NFwiLFxuICAgIFwiNzc1XCIsXG4gICAgXCI3ODFcIixcbiAgICBcIjc4NVwiLFxuICAgIFwiNzg2XCIsXG4gICAgXCI4MDFcIixcbiAgICBcIjgwMlwiLFxuICAgIFwiODAzXCIsXG4gICAgXCI4MDRcIixcbiAgICBcIjgwNVwiLFxuICAgIFwiODA2XCIsXG4gICAgXCI4MDhcIixcbiAgICBcIjgxMFwiLFxuICAgIFwiODEyXCIsXG4gICAgXCI4MTNcIixcbiAgICBcIjgxNFwiLFxuICAgIFwiODE1XCIsXG4gICAgXCI4MTZcIixcbiAgICBcIjgxN1wiLFxuICAgIFwiODE4XCIsXG4gICAgXCI4MjhcIixcbiAgICBcIjgzMFwiLFxuICAgIFwiODMxXCIsXG4gICAgXCI4MzJcIixcbiAgICBcIjgzNVwiLFxuICAgIFwiODQzXCIsXG4gICAgXCI4NDVcIixcbiAgICBcIjg0N1wiLFxuICAgIFwiODQ4XCIsXG4gICAgXCI4NTBcIixcbiAgICBcIjg1NlwiLFxuICAgIFwiODU3XCIsXG4gICAgXCI4NThcIixcbiAgICBcIjg1OVwiLFxuICAgIFwiODYwXCIsXG4gICAgXCI4NjJcIixcbiAgICBcIjg2M1wiLFxuICAgIFwiODY0XCIsXG4gICAgXCI4NjVcIixcbiAgICBcIjg3MFwiLFxuICAgIFwiODcyXCIsXG4gICAgXCI4NzhcIixcbiAgICBcIjkwMVwiLFxuICAgIFwiOTAzXCIsXG4gICAgXCI5MDRcIixcbiAgICBcIjkwNlwiLFxuICAgIFwiOTA3XCIsXG4gICAgXCI5MDhcIixcbiAgICBcIjkwOVwiLFxuICAgIFwiOTEwXCIsXG4gICAgXCI5MTJcIixcbiAgICBcIjkxM1wiLFxuICAgIFwiOTE0XCIsXG4gICAgXCI5MTVcIixcbiAgICBcIjkxNlwiLFxuICAgIFwiOTE3XCIsXG4gICAgXCI5MThcIixcbiAgICBcIjkxOVwiLFxuICAgIFwiOTIwXCIsXG4gICAgXCI5MjVcIixcbiAgICBcIjkyOFwiLFxuICAgIFwiOTMxXCIsXG4gICAgXCI5MzZcIixcbiAgICBcIjkzN1wiLFxuICAgIFwiOTQwXCIsXG4gICAgXCI5NDFcIixcbiAgICBcIjk0N1wiLFxuICAgIFwiOTQ5XCIsXG4gICAgXCI5NTJcIixcbiAgICBcIjk1NFwiLFxuICAgIFwiOTU2XCIsXG4gICAgXCI5NTlcIixcbiAgICBcIjk3MFwiLFxuICAgIFwiOTcxXCIsXG4gICAgXCI5NzJcIixcbiAgICBcIjk3M1wiLFxuICAgIFwiOTc1XCIsXG4gICAgXCI5NzhcIixcbiAgICBcIjk3OVwiLFxuICAgIFwiOTgwXCIsXG4gICAgXCI5ODRcIixcbiAgICBcIjk4NVwiLFxuICAgIFwiOTg5XCJcbiAgXSxcbiAgXCJleGNoYW5nZV9jb2RlXCI6IFtcbiAgICBcIjIwMVwiLFxuICAgIFwiMjAyXCIsXG4gICAgXCIyMDNcIixcbiAgICBcIjIwNVwiLFxuICAgIFwiMjA2XCIsXG4gICAgXCIyMDdcIixcbiAgICBcIjIwOFwiLFxuICAgIFwiMjA5XCIsXG4gICAgXCIyMTBcIixcbiAgICBcIjIxMlwiLFxuICAgIFwiMjEzXCIsXG4gICAgXCIyMTRcIixcbiAgICBcIjIxNVwiLFxuICAgIFwiMjE2XCIsXG4gICAgXCIyMTdcIixcbiAgICBcIjIxOFwiLFxuICAgIFwiMjE5XCIsXG4gICAgXCIyMjRcIixcbiAgICBcIjIyNVwiLFxuICAgIFwiMjI3XCIsXG4gICAgXCIyMjhcIixcbiAgICBcIjIyOVwiLFxuICAgIFwiMjMxXCIsXG4gICAgXCIyMzRcIixcbiAgICBcIjIzOVwiLFxuICAgIFwiMjQwXCIsXG4gICAgXCIyNDhcIixcbiAgICBcIjI1MVwiLFxuICAgIFwiMjUyXCIsXG4gICAgXCIyNTNcIixcbiAgICBcIjI1NFwiLFxuICAgIFwiMjU2XCIsXG4gICAgXCIyNjBcIixcbiAgICBcIjI2MlwiLFxuICAgIFwiMjY3XCIsXG4gICAgXCIyNjlcIixcbiAgICBcIjI3MFwiLFxuICAgIFwiMjc2XCIsXG4gICAgXCIyODFcIixcbiAgICBcIjI4M1wiLFxuICAgIFwiMzAxXCIsXG4gICAgXCIzMDJcIixcbiAgICBcIjMwM1wiLFxuICAgIFwiMzA0XCIsXG4gICAgXCIzMDVcIixcbiAgICBcIjMwN1wiLFxuICAgIFwiMzA4XCIsXG4gICAgXCIzMDlcIixcbiAgICBcIjMxMFwiLFxuICAgIFwiMzEyXCIsXG4gICAgXCIzMTNcIixcbiAgICBcIjMxNFwiLFxuICAgIFwiMzE1XCIsXG4gICAgXCIzMTZcIixcbiAgICBcIjMxN1wiLFxuICAgIFwiMzE4XCIsXG4gICAgXCIzMTlcIixcbiAgICBcIjMyMFwiLFxuICAgIFwiMzIxXCIsXG4gICAgXCIzMjNcIixcbiAgICBcIjMzMFwiLFxuICAgIFwiMzMxXCIsXG4gICAgXCIzMzRcIixcbiAgICBcIjMzNlwiLFxuICAgIFwiMzM3XCIsXG4gICAgXCIzMzlcIixcbiAgICBcIjM0N1wiLFxuICAgIFwiMzUxXCIsXG4gICAgXCIzNTJcIixcbiAgICBcIjM2MFwiLFxuICAgIFwiMzYxXCIsXG4gICAgXCIzODZcIixcbiAgICBcIjQwMVwiLFxuICAgIFwiNDAyXCIsXG4gICAgXCI0MDRcIixcbiAgICBcIjQwNVwiLFxuICAgIFwiNDA2XCIsXG4gICAgXCI0MDdcIixcbiAgICBcIjQwOFwiLFxuICAgIFwiNDA5XCIsXG4gICAgXCI0MTBcIixcbiAgICBcIjQxMlwiLFxuICAgIFwiNDEzXCIsXG4gICAgXCI0MTRcIixcbiAgICBcIjQxNVwiLFxuICAgIFwiNDE3XCIsXG4gICAgXCI0MTlcIixcbiAgICBcIjQyM1wiLFxuICAgIFwiNDI0XCIsXG4gICAgXCI0MjVcIixcbiAgICBcIjQzNFwiLFxuICAgIFwiNDM1XCIsXG4gICAgXCI0NDBcIixcbiAgICBcIjQ0M1wiLFxuICAgIFwiNDQ1XCIsXG4gICAgXCI0NjRcIixcbiAgICBcIjQ2OVwiLFxuICAgIFwiNDcwXCIsXG4gICAgXCI0NzVcIixcbiAgICBcIjQ3OFwiLFxuICAgIFwiNDc5XCIsXG4gICAgXCI0ODBcIixcbiAgICBcIjQ4NFwiLFxuICAgIFwiNTAxXCIsXG4gICAgXCI1MDJcIixcbiAgICBcIjUwM1wiLFxuICAgIFwiNTA0XCIsXG4gICAgXCI1MDVcIixcbiAgICBcIjUwN1wiLFxuICAgIFwiNTA4XCIsXG4gICAgXCI1MDlcIixcbiAgICBcIjUxMFwiLFxuICAgIFwiNTEyXCIsXG4gICAgXCI1MTNcIixcbiAgICBcIjUxNVwiLFxuICAgIFwiNTE2XCIsXG4gICAgXCI1MTdcIixcbiAgICBcIjUxOFwiLFxuICAgIFwiNTIwXCIsXG4gICAgXCI1MzBcIixcbiAgICBcIjU0MFwiLFxuICAgIFwiNTQxXCIsXG4gICAgXCI1NTFcIixcbiAgICBcIjU1N1wiLFxuICAgIFwiNTU5XCIsXG4gICAgXCI1NjFcIixcbiAgICBcIjU2MlwiLFxuICAgIFwiNTYzXCIsXG4gICAgXCI1NjRcIixcbiAgICBcIjU2N1wiLFxuICAgIFwiNTcwXCIsXG4gICAgXCI1NzFcIixcbiAgICBcIjU3M1wiLFxuICAgIFwiNTc0XCIsXG4gICAgXCI1ODBcIixcbiAgICBcIjU4NVwiLFxuICAgIFwiNTg2XCIsXG4gICAgXCI2MDFcIixcbiAgICBcIjYwMlwiLFxuICAgIFwiNjAzXCIsXG4gICAgXCI2MDVcIixcbiAgICBcIjYwNlwiLFxuICAgIFwiNjA3XCIsXG4gICAgXCI2MDhcIixcbiAgICBcIjYwOVwiLFxuICAgIFwiNjEwXCIsXG4gICAgXCI2MTJcIixcbiAgICBcIjYxNFwiLFxuICAgIFwiNjE1XCIsXG4gICAgXCI2MTZcIixcbiAgICBcIjYxN1wiLFxuICAgIFwiNjE4XCIsXG4gICAgXCI2MTlcIixcbiAgICBcIjYyMFwiLFxuICAgIFwiNjIzXCIsXG4gICAgXCI2MjZcIixcbiAgICBcIjYzMFwiLFxuICAgIFwiNjMxXCIsXG4gICAgXCI2MzZcIixcbiAgICBcIjY0MVwiLFxuICAgIFwiNjQ2XCIsXG4gICAgXCI2NTBcIixcbiAgICBcIjY1MVwiLFxuICAgIFwiNjYwXCIsXG4gICAgXCI2NjFcIixcbiAgICBcIjY2MlwiLFxuICAgIFwiNjY3XCIsXG4gICAgXCI2NzhcIixcbiAgICBcIjY4MlwiLFxuICAgIFwiNzAxXCIsXG4gICAgXCI3MDJcIixcbiAgICBcIjcwM1wiLFxuICAgIFwiNzA0XCIsXG4gICAgXCI3MDZcIixcbiAgICBcIjcwN1wiLFxuICAgIFwiNzA4XCIsXG4gICAgXCI3MTJcIixcbiAgICBcIjcxM1wiLFxuICAgIFwiNzE0XCIsXG4gICAgXCI3MTVcIixcbiAgICBcIjcxNlwiLFxuICAgIFwiNzE3XCIsXG4gICAgXCI3MThcIixcbiAgICBcIjcxOVwiLFxuICAgIFwiNzIwXCIsXG4gICAgXCI3MjRcIixcbiAgICBcIjcyN1wiLFxuICAgIFwiNzMxXCIsXG4gICAgXCI3MzJcIixcbiAgICBcIjczNFwiLFxuICAgIFwiNzM3XCIsXG4gICAgXCI3NDBcIixcbiAgICBcIjc1NFwiLFxuICAgIFwiNzU3XCIsXG4gICAgXCI3NjBcIixcbiAgICBcIjc2M1wiLFxuICAgIFwiNzY1XCIsXG4gICAgXCI3NzBcIixcbiAgICBcIjc3MlwiLFxuICAgIFwiNzczXCIsXG4gICAgXCI3NzRcIixcbiAgICBcIjc3NVwiLFxuICAgIFwiNzgxXCIsXG4gICAgXCI3ODVcIixcbiAgICBcIjc4NlwiLFxuICAgIFwiODAxXCIsXG4gICAgXCI4MDJcIixcbiAgICBcIjgwM1wiLFxuICAgIFwiODA0XCIsXG4gICAgXCI4MDVcIixcbiAgICBcIjgwNlwiLFxuICAgIFwiODA4XCIsXG4gICAgXCI4MTBcIixcbiAgICBcIjgxMlwiLFxuICAgIFwiODEzXCIsXG4gICAgXCI4MTRcIixcbiAgICBcIjgxNVwiLFxuICAgIFwiODE2XCIsXG4gICAgXCI4MTdcIixcbiAgICBcIjgxOFwiLFxuICAgIFwiODI4XCIsXG4gICAgXCI4MzBcIixcbiAgICBcIjgzMVwiLFxuICAgIFwiODMyXCIsXG4gICAgXCI4MzVcIixcbiAgICBcIjg0M1wiLFxuICAgIFwiODQ1XCIsXG4gICAgXCI4NDdcIixcbiAgICBcIjg0OFwiLFxuICAgIFwiODUwXCIsXG4gICAgXCI4NTZcIixcbiAgICBcIjg1N1wiLFxuICAgIFwiODU4XCIsXG4gICAgXCI4NTlcIixcbiAgICBcIjg2MFwiLFxuICAgIFwiODYyXCIsXG4gICAgXCI4NjNcIixcbiAgICBcIjg2NFwiLFxuICAgIFwiODY1XCIsXG4gICAgXCI4NzBcIixcbiAgICBcIjg3MlwiLFxuICAgIFwiODc4XCIsXG4gICAgXCI5MDFcIixcbiAgICBcIjkwM1wiLFxuICAgIFwiOTA0XCIsXG4gICAgXCI5MDZcIixcbiAgICBcIjkwN1wiLFxuICAgIFwiOTA4XCIsXG4gICAgXCI5MDlcIixcbiAgICBcIjkxMFwiLFxuICAgIFwiOTEyXCIsXG4gICAgXCI5MTNcIixcbiAgICBcIjkxNFwiLFxuICAgIFwiOTE1XCIsXG4gICAgXCI5MTZcIixcbiAgICBcIjkxN1wiLFxuICAgIFwiOTE4XCIsXG4gICAgXCI5MTlcIixcbiAgICBcIjkyMFwiLFxuICAgIFwiOTI1XCIsXG4gICAgXCI5MjhcIixcbiAgICBcIjkzMVwiLFxuICAgIFwiOTM2XCIsXG4gICAgXCI5MzdcIixcbiAgICBcIjk0MFwiLFxuICAgIFwiOTQxXCIsXG4gICAgXCI5NDdcIixcbiAgICBcIjk0OVwiLFxuICAgIFwiOTUyXCIsXG4gICAgXCI5NTRcIixcbiAgICBcIjk1NlwiLFxuICAgIFwiOTU5XCIsXG4gICAgXCI5NzBcIixcbiAgICBcIjk3MVwiLFxuICAgIFwiOTcyXCIsXG4gICAgXCI5NzNcIixcbiAgICBcIjk3NVwiLFxuICAgIFwiOTc4XCIsXG4gICAgXCI5NzlcIixcbiAgICBcIjk4MFwiLFxuICAgIFwiOTg0XCIsXG4gICAgXCI5ODVcIixcbiAgICBcIjk4OVwiXG4gIF1cbn07XG4iLCJ2YXIgZW5fYXVfb2NrZXIgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9hdV9vY2tlcjtcbmVuX2F1X29ja2VyLnRpdGxlID0gXCJBdXN0cmFsaWEgT2NrZXIgKEVuZ2xpc2gpXCI7XG5lbl9hdV9vY2tlci5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQ2hhcmxvdHRlXCIsXG4gICAgXCJBdmFcIixcbiAgICBcIkNobG9lXCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJab2VcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiQW1lbGlhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiTWlhKzNcIixcbiAgICBcIkdyYWNlXCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJJdnlcIixcbiAgICBcIkxheWxhXCIsXG4gICAgXCJBYmlnYWlsXCIsXG4gICAgXCJJc2xhXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIlphcmFcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkV2aWVcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiTWFkaXNvblwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1hZGVsaW5lXCIsXG4gICAgXCJBdWRyZXlcIixcbiAgICBcIlNjYXJsZXR0XCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiQ2hlbHNlYVwiLFxuICAgIFwiTWlsYVwiLFxuICAgIFwiSG9sbHlcIixcbiAgICBcIkluZGlhbmFcIixcbiAgICBcIlBvcHB5XCIsXG4gICAgXCJIYXJwZXJcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkltb2dlblwiLFxuICAgIFwiSGF5bGV5XCIsXG4gICAgXCJQaGVvYmVcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRXZlbHluXCIsXG4gICAgXCJNYWNrZW56aWVcIixcbiAgICBcIkF5bGFcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiSmFja1wiLFxuICAgIFwiSmFja3NvblwiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiRXRoYW5cIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJDb29wZXJcIixcbiAgICBcIkxhY2hsYW5cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJJc2FhY1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQWlkZW5cIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIkphbWVzXCIsXG4gICAgXCJMZXZpXCIsXG4gICAgXCJSaWxleVwiLFxuICAgIFwiSGFycmlzb25cIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJMZW9cIixcbiAgICBcIlphY2hcIixcbiAgICBcIkhhcnJ5XCIsXG4gICAgXCJIdW50ZXJcIixcbiAgICBcIkZseW5uXCIsXG4gICAgXCJBcmNoaWVcIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJFbGlqYWhcIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJCbGFrZVwiLFxuICAgIFwiQXJjaGVyXCIsXG4gICAgXCJBc2h0b25cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiWmFjaGVyeVwiLFxuICAgIFwiTGluY29sblwiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiTmlnZWxcIixcbiAgICBcIk1hdHRcIixcbiAgICBcIlNlYW5cIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJTbWl0aFwiLFxuICAgIFwiSm9uZXNcIixcbiAgICBcIldpbGxpYW1zXCIsXG4gICAgXCJCcm93blwiLFxuICAgIFwiV2lsc29uXCIsXG4gICAgXCJUYXlsb3JcIixcbiAgICBcIk1vcnRvblwiLFxuICAgIFwiV2hpdGVcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIlRob21wc29uXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiV2Fsa2VyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiUm9iaW5zb25cIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJSYXVzY2hcIixcbiAgICBcIlJpZGdlXCIsXG4gICAgXCJDb25ub2xseVwiLFxuICAgIFwiTGVRdWVzbmVcIlxuICBdLFxuICBcIm9ja2VyX2ZpcnN0X25hbWVcIjogW1xuICAgIFwiQmF6emFcIixcbiAgICBcIkJsdWV5XCIsXG4gICAgXCJEYXZvXCIsXG4gICAgXCJKb2hub1wiLFxuICAgIFwiU2hhbm9cIixcbiAgICBcIlNoYXp6YVwiXG4gIF1cbn07XG5lbl9hdV9vY2tlci5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJQdHkgTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCIsXG4gICAgXCJQYXJ0bmVyc1wiXG4gIF1cbn07XG5lbl9hdV9vY2tlci5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbS5hdVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXQuYXVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnLmF1XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIuYWRkcmVzcyA9IHtcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJSYW1zYXkgU3RyZWV0XCIsXG4gICAgXCJCb25uaWUgRG9vblwiLFxuICAgIFwiQ2F2aWxsIEF2ZW51ZVwiLFxuICAgIFwiUXVlZW4gU3RyZWV0XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fVwiXG4gIF0sXG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiQm9uZGlcIixcbiAgICBcIkJ1cmxlaWdoIEhlYWRzXCIsXG4gICAgXCJDYXJsdG9uXCIsXG4gICAgXCJGaXR6cm95XCIsXG4gICAgXCJGcmVtYW50bGVcIixcbiAgICBcIkdsZW5lbGdcIixcbiAgICBcIk1hbmx5XCIsXG4gICAgXCJOb29zYVwiLFxuICAgIFwiU3RvbmVzIENvcm5lclwiLFxuICAgIFwiU3QgS2lsZGFcIixcbiAgICBcIlN1cnJ5IEhpbGxzXCIsXG4gICAgXCJZYXJyYSBWYWxsZXlcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH1cIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiTlNXXCIsXG4gICAgXCJRTERcIixcbiAgICBcIk5UXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiV0FcIixcbiAgICBcIlRBU1wiLFxuICAgIFwiQUNUXCIsXG4gICAgXCJWSUNcIlxuICBdLFxuICBcInJlZ2lvblwiOiBbXG4gICAgXCJTb3V0aCBFYXN0IFF1ZWVuc2xhbmRcIixcbiAgICBcIldpZGUgQmF5IEJ1cm5ldHRcIixcbiAgICBcIk1hcmdhcmV0IFJpdmVyXCIsXG4gICAgXCJQb3J0IFBpcmllXCIsXG4gICAgXCJHaXBwc2xhbmRcIixcbiAgICBcIkVsaXphYmV0aFwiLFxuICAgIFwiQmFyb3NzYVwiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiTmV3IFNvdXRoIFdhbGVzXCIsXG4gICAgXCJRdWVlbnNsYW5kXCIsXG4gICAgXCJOb3J0aGVybiBUZXJyaXRvcnlcIixcbiAgICBcIlNvdXRoIEF1c3RyYWxpYVwiLFxuICAgIFwiV2VzdGVybiBBdXN0cmFsaWFcIixcbiAgICBcIlRhc21hbmlhXCIsXG4gICAgXCJBdXN0cmFsaWFuIENhcGl0YWwgVGVycml0b3J5XCIsXG4gICAgXCJWaWN0b3JpYVwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiMCMjI1wiLFxuICAgIFwiMiMjI1wiLFxuICAgIFwiMyMjI1wiLFxuICAgIFwiNCMjI1wiLFxuICAgIFwiNSMjI1wiLFxuICAgIFwiNiMjI1wiLFxuICAgIFwiNyMjI1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQXZlbnVlXCIsXG4gICAgXCJCb3VsZXZhcmRcIixcbiAgICBcIkNpcmNsZVwiLFxuICAgIFwiQ2lyY3VpdFwiLFxuICAgIFwiQ291cnRcIixcbiAgICBcIkNyZXNjZW50XCIsXG4gICAgXCJDcmVzdFwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkVzdGF0ZSBEclwiLFxuICAgIFwiR3JvdmVcIixcbiAgICBcIkhpbGxcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSnVuY3Rpb25cIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMb29wXCIsXG4gICAgXCJNYWxsXCIsXG4gICAgXCJNYW5vclwiLFxuICAgIFwiTWVhZG93XCIsXG4gICAgXCJNZXdzXCIsXG4gICAgXCJQYXJhZGVcIixcbiAgICBcIlBhcmt3YXlcIixcbiAgICBcIlBhc3NcIixcbiAgICBcIlBsYWNlXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUmlkZ2VcIixcbiAgICBcIlJvYWRcIixcbiAgICBcIlJ1blwiLFxuICAgIFwiU3F1YXJlXCIsXG4gICAgXCJTdGF0aW9uIFN0XCIsXG4gICAgXCJTdHJlZXRcIixcbiAgICBcIlN1bW1pdFwiLFxuICAgIFwiVGVycmFjZVwiLFxuICAgIFwiVHJhY2tcIixcbiAgICBcIlRyYWlsXCIsXG4gICAgXCJWaWV3IFJkXCIsXG4gICAgXCJXYXlcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJBdXN0cmFsaWFcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMCMgIyMjIyAjIyMjXCIsXG4gICAgXCIrNjEgIyAjIyMjICMjIyNcIixcbiAgICBcIjA0IyMgIyMjICMjI1wiLFxuICAgIFwiKzYxIDQjIyAjIyMgIyMjXCJcbiAgXVxufTtcbiIsInZhciBlcyA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVzO1xuZXMudGl0bGUgPSBcIlNwYW5pc2hcIjtcbmVzLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiUGFybGFcIixcbiAgICBcIlRlbGRlXCIsXG4gICAgXCJCYXJhY2FsZG9cIixcbiAgICBcIlNhbiBGZXJuYW5kb1wiLFxuICAgIFwiVG9ycmV2aWVqYVwiLFxuICAgIFwiTHVnb1wiLFxuICAgIFwiU2FudGlhZ28gZGUgQ29tcG9zdGVsYVwiLFxuICAgIFwiR2Vyb25hXCIsXG4gICAgXCJDw6FjZXJlc1wiLFxuICAgIFwiTG9yY2FcIixcbiAgICBcIkNvc2xhZGFcIixcbiAgICBcIlRhbGF2ZXJhIGRlIGxhIFJlaW5hXCIsXG4gICAgXCJFbCBQdWVydG8gZGUgU2FudGEgTWFyw61hXCIsXG4gICAgXCJDb3JuZWxsw6EgZGUgTGxvYnJlZ2F0XCIsXG4gICAgXCJBdmlsw6lzXCIsXG4gICAgXCJQYWxlbmNpYVwiLFxuICAgIFwiR2VjaG9cIixcbiAgICBcIk9yaWh1ZWxhXCIsXG4gICAgXCJQb250ZXZlZHJhXCIsXG4gICAgXCJQb3p1ZWxvIGRlIEFsYXJjw7NuXCIsXG4gICAgXCJUb2xlZG9cIixcbiAgICBcIkVsIEVqaWRvXCIsXG4gICAgXCJHdWFkYWxhamFyYVwiLFxuICAgIFwiR2FuZMOtYVwiLFxuICAgIFwiQ2V1dGFcIixcbiAgICBcIkZlcnJvbFwiLFxuICAgIFwiQ2hpY2xhbmEgZGUgbGEgRnJvbnRlcmFcIixcbiAgICBcIk1hbnJlc2FcIixcbiAgICBcIlJvcXVldGFzIGRlIE1hclwiLFxuICAgIFwiQ2l1ZGFkIFJlYWxcIixcbiAgICBcIlJ1YsOtXCIsXG4gICAgXCJCZW5pZG9ybVwiLFxuICAgIFwiU2FuIFNlYmFzdMOtYW4gZGUgbG9zIFJleWVzXCIsXG4gICAgXCJQb25mZXJyYWRhXCIsXG4gICAgXCJaYW1vcmFcIixcbiAgICBcIkFsY2Fsw6EgZGUgR3VhZGFpcmFcIixcbiAgICBcIkZ1ZW5naXJvbGFcIixcbiAgICBcIk1pamFzXCIsXG4gICAgXCJTYW5sw7pjYXIgZGUgQmFycmFtZWRhXCIsXG4gICAgXCJMYSBMw61uZWEgZGUgbGEgQ29uY2VwY2nDs25cIixcbiAgICBcIk1hamFkYWhvbmRhXCIsXG4gICAgXCJTYWd1bnRvXCIsXG4gICAgXCJFbCBQcmF0IGRlIExMb2JyZWdhdFwiLFxuICAgIFwiVmlsYWRlY2Fuc1wiLFxuICAgIFwiTGluYXJlc1wiLFxuICAgIFwiQWxjb3lcIixcbiAgICBcIklyw7puXCIsXG4gICAgXCJFc3RlcG9uYVwiLFxuICAgIFwiVG9ycmVtb2xpbm9zXCIsXG4gICAgXCJSaXZhcy1WYWNpYW1hZHJpZFwiLFxuICAgIFwiTW9saW5hIGRlIFNlZ3VyYVwiLFxuICAgIFwiUGF0ZXJuYVwiLFxuICAgIFwiR3Jhbm9sbGVyc1wiLFxuICAgIFwiU2FudGEgTHVjw61hIGRlIFRpcmFqYW5hXCIsXG4gICAgXCJNb3RyaWxcIixcbiAgICBcIkNlcmRhw7FvbGEgZGVsIFZhbGzDqXNcIixcbiAgICBcIkFycmVjaWZlXCIsXG4gICAgXCJTZWdvdmlhXCIsXG4gICAgXCJUb3JyZWxhdmVnYVwiLFxuICAgIFwiRWxkYVwiLFxuICAgIFwiTcOpcmlkYVwiLFxuICAgIFwiw4F2aWxhXCIsXG4gICAgXCJWYWxkZW1vcm9cIixcbiAgICBcIkN1ZW50YVwiLFxuICAgIFwiQ29sbGFkbyBWaWxsYWxiYVwiLFxuICAgIFwiQmVuYWxtw6FkZW5hXCIsXG4gICAgXCJNb2xsZXQgZGVsIFZhbGzDqXNcIixcbiAgICBcIlB1ZXJ0b2xsYW5vXCIsXG4gICAgXCJNYWRyaWRcIixcbiAgICBcIkJhcmNlbG9uYVwiLFxuICAgIFwiVmFsZW5jaWFcIixcbiAgICBcIlNldmlsbGFcIixcbiAgICBcIlphcmFnb3phXCIsXG4gICAgXCJNw6FsYWdhXCIsXG4gICAgXCJNdXJjaWFcIixcbiAgICBcIlBhbG1hIGRlIE1hbGxvcmNhXCIsXG4gICAgXCJMYXMgUGFsbWFzIGRlIEdyYW4gQ2FuYXJpYVwiLFxuICAgIFwiQmlsYmFvXCIsXG4gICAgXCJDw7NyZG9iYVwiLFxuICAgIFwiQWxpY2FudGVcIixcbiAgICBcIlZhbGxhZG9saWRcIixcbiAgICBcIlZpZ29cIixcbiAgICBcIkdpasOzblwiLFxuICAgIFwiSG9zcGl0YWxldCBkZSBMTG9icmVnYXRcIixcbiAgICBcIkxhIENvcnXDsWFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIlZpdG9yaWFcIixcbiAgICBcIkVsY2hlXCIsXG4gICAgXCJTYW50YSBDcnV6IGRlIFRlbmVyaWZlXCIsXG4gICAgXCJPdmllZG9cIixcbiAgICBcIkJhZGFsb25hXCIsXG4gICAgXCJDYXJ0YWdlbmFcIixcbiAgICBcIk3Ds3N0b2xlc1wiLFxuICAgIFwiSmVyZXogZGUgbGEgRnJvbnRlcmFcIixcbiAgICBcIlRhcnJhc2FcIixcbiAgICBcIlNhYmFkZWxsXCIsXG4gICAgXCJBbGNhbMOhIGRlIEhlbmFyZXNcIixcbiAgICBcIlBhbXBsb25hXCIsXG4gICAgXCJGdWVubGFicmFkYVwiLFxuICAgIFwiQWxtZXLDrWFcIixcbiAgICBcIlNhbiBTZWJhc3Rpw6FuXCIsXG4gICAgXCJMZWdhbsOpc1wiLFxuICAgIFwiU2FudGFuZGVyXCIsXG4gICAgXCJCdXJnb3NcIixcbiAgICBcIkNhc3RlbGzDs24gZGUgbGEgUGxhbmFcIixcbiAgICBcIkFsY29yY8OzblwiLFxuICAgIFwiQWxiYWNldGVcIixcbiAgICBcIkdldGFmZVwiLFxuICAgIFwiU2FsYW1hbmNhXCIsXG4gICAgXCJIdWVsdmFcIixcbiAgICBcIkxvZ3Jvw7FvXCIsXG4gICAgXCJCYWRham96XCIsXG4gICAgXCJTYW4gQ3Jpc3Ryw7NiYWwgZGUgbGEgTGFndW5hXCIsXG4gICAgXCJMZcOzblwiLFxuICAgIFwiVGFycmFnb25hXCIsXG4gICAgXCJDw6FkaXpcIixcbiAgICBcIkzDqXJpZGFcIixcbiAgICBcIk1hcmJlbGxhXCIsXG4gICAgXCJNYXRhcsOzXCIsXG4gICAgXCJEb3MgSGVybWFuYXNcIixcbiAgICBcIlNhbnRhIENvbG9tYSBkZSBHcmFtYW5ldFwiLFxuICAgIFwiSmHDqW5cIixcbiAgICBcIkFsZ2VjaXJhc1wiLFxuICAgIFwiVG9ycmVqw7NuIGRlIEFyZG96XCIsXG4gICAgXCJPcmVuc2VcIixcbiAgICBcIkFsY29iZW5kYXNcIixcbiAgICBcIlJldXNcIixcbiAgICBcIkNhbGFob3JyYVwiLFxuICAgIFwiSW5jYVwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdhbmlzdMOhblwiLFxuICAgIFwiQWxiYW5pYVwiLFxuICAgIFwiQXJnZWxpYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0cmFsaWFcIixcbiAgICBcIkF1c3RyaWFcIixcbiAgICBcIkF6ZXJiYXnDoW5cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhcmVpblwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJpZWxvcnVzaWFcIixcbiAgICBcIkLDqWxnaWNhXCIsXG4gICAgXCJCZWxpY2VcIixcbiAgICBcIkJlcm11ZGFcIixcbiAgICBcIkJ1dMOhblwiLFxuICAgIFwiQm9saXZpYVwiLFxuICAgIFwiQm9zbmlhIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQnJhc2lsXCIsXG4gICAgXCJCdWxnYXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1ib3lhXCIsXG4gICAgXCJDYW1lcsO6blwiLFxuICAgIFwiQ2FuYWRhXCIsXG4gICAgXCJDYWJvIFZlcmRlXCIsXG4gICAgXCJJc2xhcyBDYWltw6FuXCIsXG4gICAgXCJDaGFkXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIklzbGEgZGUgTmF2aWRhZFwiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9kb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3N0YSBkZSBNYXJmaWxcIixcbiAgICBcIkNyb2FjaWFcIixcbiAgICBcIkN1YmFcIixcbiAgICBcIkNoaXByZVwiLFxuICAgIFwiUmVww7pibGljYSBDaGVjYVwiLFxuICAgIFwiRGluYW1hcmNhXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiUmVww7pibGljYSBEb21pbmljYW5hXCIsXG4gICAgXCJFY3VhZG9yXCIsXG4gICAgXCJFZ2lwdG9cIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJHdWluZWEgRWN1YXRvcmlhbFwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRpb3DDrWFcIixcbiAgICBcIklzbGFzIEZhcm9cIixcbiAgICBcIkZpamlcIixcbiAgICBcIkZpbmxhbmRpYVwiLFxuICAgIFwiRnJhbmNpYVwiLFxuICAgIFwiR2Fiw7NuXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkFsZW1hbmlhXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR3JlY2lhXCIsXG4gICAgXCJHcm9lbmxhbmRpYVwiLFxuICAgIFwiR3JhbmFkYVwiLFxuICAgIFwiR3VhZGFsdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc2F1XCIsXG4gICAgXCJHdWF5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmcgS29uZ1wiLFxuICAgIFwiSHVuZ3JpYVwiLFxuICAgIFwiSXNsYW5kaWFcIixcbiAgICBcIkluZGlhXCIsXG4gICAgXCJJbmRvbmVzaWFcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklyYWtcIixcbiAgICBcIklybGFuZGFcIixcbiAgICBcIkl0YWxpYVwiLFxuICAgIFwiSmFtYWljYVwiLFxuICAgIFwiSmFww7NuXCIsXG4gICAgXCJKb3JkYW5pYVwiLFxuICAgIFwiS2F6YWppc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJDb3JlYVwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJMZXRvbmlhXCIsXG4gICAgXCJMw61iYW5vXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXR1YW5pYVwiLFxuICAgIFwiTHV4ZW1idXJnb1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkb25pYVwiLFxuICAgIFwiTWFkYWdhc2NhclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxhc2lhXCIsXG4gICAgXCJNYWxkaXZhc1wiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hcnRpbmljYVwiLFxuICAgIFwiTWF1cml0YW5pYVwiLFxuICAgIFwiTcOpamljb1wiLFxuICAgIFwiTWljcm9uZXNpYVwiLFxuICAgIFwiTW9sZGF2aWFcIixcbiAgICBcIk3Ds25hY29cIixcbiAgICBcIk1vbmdvbGlhXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNYXJydWVjb3NcIixcbiAgICBcIk1vemFtYmlxdWVcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiSG9sYW5kYVwiLFxuICAgIFwiTnVldmEgWmVsYW5kYVwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTm9ydWVnYVwiLFxuICAgIFwiT23DoW5cIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYW5hbcOhXCIsXG4gICAgXCJQYXDDumEgTnVldmEgR3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVyw7pcIixcbiAgICBcIkZpbGlwaW5hc1wiLFxuICAgIFwiUG9sYW5kXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlJ1c2lhXCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW50byBUb23DqSB5IFByaW5jaXBlXCIsXG4gICAgXCJBcmFiaWEgU2F1ZMOtXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uYVwiLFxuICAgIFwiU2luZ2FwdXJcIixcbiAgICBcIkVzbG92YXF1aWFcIixcbiAgICBcIkVzbG92ZW5pYVwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiRXNwYcOxYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdWTDoW5cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdWVjaWFcIixcbiAgICBcIlN1aXphXCIsXG4gICAgXCJTaXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppa2lzdGFuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGFpbGFuZGlhXCIsXG4gICAgXCJUaW1vci1MZXN0ZVwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIlRyaW5pZGFkIHkgVG9iYWdvXCIsXG4gICAgXCJUdW5lelwiLFxuICAgIFwiVHVycXVpYVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3JhbmlhXCIsXG4gICAgXCJFbWlyYXRvcyDDgXJhYmVzIFVuaWRvc1wiLFxuICAgIFwiUmVpbm8gVW5pZG9cIixcbiAgICBcIkVzdGFkb3MgVW5pZG9zIGRlIEFtw6lyaWNhXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIlllbWVuXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIHMvbi5cIixcbiAgICBcIiwgI1wiLFxuICAgIFwiLCAjI1wiLFxuICAgIFwiICNcIixcbiAgICBcIiAjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJBbGRlYVwiLFxuICAgIFwiQXBhcnRhbWVudG9cIixcbiAgICBcIkFycmFiYWxcIixcbiAgICBcIkFycm95b1wiLFxuICAgIFwiQXZlbmlkYVwiLFxuICAgIFwiQmFqYWRhXCIsXG4gICAgXCJCYXJyYW5jb1wiLFxuICAgIFwiQmFycmlvXCIsXG4gICAgXCJCbG9xdWVcIixcbiAgICBcIkNhbGxlXCIsXG4gICAgXCJDYWxsZWphXCIsXG4gICAgXCJDYW1pbm9cIixcbiAgICBcIkNhcnJldGVyYVwiLFxuICAgIFwiQ2FzZXJpb1wiLFxuICAgIFwiQ29sZWdpb1wiLFxuICAgIFwiQ29sb25pYVwiLFxuICAgIFwiQ29uanVudG9cIixcbiAgICBcIkN1ZXN0YVwiLFxuICAgIFwiQ2hhbGV0XCIsXG4gICAgXCJFZGlmaWNpb1wiLFxuICAgIFwiRW50cmFkYVwiLFxuICAgIFwiRXNjYWxpbmF0YVwiLFxuICAgIFwiRXhwbGFuYWRhXCIsXG4gICAgXCJFeHRyYW11cm9zXCIsXG4gICAgXCJFeHRyYXJyYWRpb1wiLFxuICAgIFwiRmVycm9jYXJyaWxcIixcbiAgICBcIkdsb3JpZXRhXCIsXG4gICAgXCJHcmFuIFN1YmlkYVwiLFxuICAgIFwiR3J1cG9cIixcbiAgICBcIkh1ZXJ0YVwiLFxuICAgIFwiSmFyZGluZXNcIixcbiAgICBcIkxhZG9cIixcbiAgICBcIkx1Z2FyXCIsXG4gICAgXCJNYW56YW5hXCIsXG4gICAgXCJNYXPDrWFcIixcbiAgICBcIk1lcmNhZG9cIixcbiAgICBcIk1vbnRlXCIsXG4gICAgXCJNdWVsbGVcIixcbiAgICBcIk11bmljaXBpb1wiLFxuICAgIFwiUGFyY2VsYVwiLFxuICAgIFwiUGFycXVlXCIsXG4gICAgXCJQYXJ0aWRhXCIsXG4gICAgXCJQYXNhamVcIixcbiAgICBcIlBhc2VvXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUG9ibGFkb1wiLFxuICAgIFwiUG9sw61nb25vXCIsXG4gICAgXCJQcm9sb25nYWNpw7NuXCIsXG4gICAgXCJQdWVudGVcIixcbiAgICBcIlB1ZXJ0YVwiLFxuICAgIFwiUXVpbnRhXCIsXG4gICAgXCJSYW1hbFwiLFxuICAgIFwiUmFtYmxhXCIsXG4gICAgXCJSYW1wYVwiLFxuICAgIFwiUmllcmFcIixcbiAgICBcIlJpbmPDs25cIixcbiAgICBcIlJvbmRhXCIsXG4gICAgXCJSdWFcIixcbiAgICBcIlNhbGlkYVwiLFxuICAgIFwiU2VjdG9yXCIsXG4gICAgXCJTZWNjacOzblwiLFxuICAgIFwiU2VuZGFcIixcbiAgICBcIlNvbGFyXCIsXG4gICAgXCJTdWJpZGFcIixcbiAgICBcIlRlcnJlbm9zXCIsXG4gICAgXCJUb3JyZW50ZVwiLFxuICAgIFwiVHJhdmVzw61hXCIsXG4gICAgXCJVcmJhbml6YWNpw7NuXCIsXG4gICAgXCJWw61hXCIsXG4gICAgXCJWw61hIFDDumJsaWNhXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJFc2MuICMjI1wiLFxuICAgIFwiUHVlcnRhICMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInByb3ZpbmNlXCI6IFtcbiAgICBcIsOBbGF2YVwiLFxuICAgIFwiQWxiYWNldGVcIixcbiAgICBcIkFsaWNhbnRlXCIsXG4gICAgXCJBbG1lcsOtYVwiLFxuICAgIFwiQXN0dXJpYXNcIixcbiAgICBcIsOBdmlsYVwiLFxuICAgIFwiQmFkYWpvelwiLFxuICAgIFwiQmFyY2Vsb25hXCIsXG4gICAgXCJCdXJnb3NcIixcbiAgICBcIkNhbnRhYnJpYVwiLFxuICAgIFwiQ2FzdGVsbMOzblwiLFxuICAgIFwiQ2l1ZGFkIFJlYWxcIixcbiAgICBcIkN1ZW5jYVwiLFxuICAgIFwiQ8OhY2VyZXNcIixcbiAgICBcIkPDoWRpelwiLFxuICAgIFwiQ8OzcmRvYmFcIixcbiAgICBcIkdlcm9uYVwiLFxuICAgIFwiR3JhbmFkYVwiLFxuICAgIFwiR3VhZGFsYWphcmFcIixcbiAgICBcIkd1aXDDunpjb2FcIixcbiAgICBcIkh1ZWx2YVwiLFxuICAgIFwiSHVlc2NhXCIsXG4gICAgXCJJc2xhcyBCYWxlYXJlc1wiLFxuICAgIFwiSmHDqW5cIixcbiAgICBcIkxhIENvcnXDsWFcIixcbiAgICBcIkxhIFJpb2phXCIsXG4gICAgXCJMYXMgUGFsbWFzXCIsXG4gICAgXCJMZcOzblwiLFxuICAgIFwiTHVnb1wiLFxuICAgIFwibMOpcmlkYVwiLFxuICAgIFwiTWFkcmlkXCIsXG4gICAgXCJNdXJjaWFcIixcbiAgICBcIk3DoWxhZ2FcIixcbiAgICBcIk5hdmFycmFcIixcbiAgICBcIk9yZW5zZVwiLFxuICAgIFwiUGFsZW5jaWFcIixcbiAgICBcIlBvbnRldmVkcmFcIixcbiAgICBcIlNhbGFtYW5jYVwiLFxuICAgIFwiU2FudGEgQ3J1eiBkZSBUZW5lcmlmZVwiLFxuICAgIFwiU2Vnb3ZpYVwiLFxuICAgIFwiU2V2aWxsYVwiLFxuICAgIFwiU29yaWFcIixcbiAgICBcIlRhcnJhZ29uYVwiLFxuICAgIFwiVGVydWVsXCIsXG4gICAgXCJUb2xlZG9cIixcbiAgICBcIlZhbGVuY2lhXCIsXG4gICAgXCJWYWxsYWRvbGlkXCIsXG4gICAgXCJWaXpjYXlhXCIsXG4gICAgXCJaYW1vcmFcIixcbiAgICBcIlphcmFnb3phXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJBbmRhbHVjw61hXCIsXG4gICAgXCJBcmFnw7NuXCIsXG4gICAgXCJQcmluY2lwYWRvIGRlIEFzdHVyaWFzXCIsXG4gICAgXCJCYWxlYXJlc1wiLFxuICAgIFwiQ2FuYXJpYXNcIixcbiAgICBcIkNhbnRhYnJpYVwiLFxuICAgIFwiQ2FzdGlsbGEtTGEgTWFuY2hhXCIsXG4gICAgXCJDYXN0aWxsYSB5IExlw7NuXCIsXG4gICAgXCJDYXRhbHXDsWFcIixcbiAgICBcIkNvbXVuaWRhZCBWYWxlbmNpYW5hXCIsXG4gICAgXCJFeHRyZW1hZHVyYVwiLFxuICAgIFwiR2FsaWNpYVwiLFxuICAgIFwiTGEgUmlvamFcIixcbiAgICBcIkNvbXVuaWRhZCBkZSBNYWRyaWRcIixcbiAgICBcIk5hdmFycmFcIixcbiAgICBcIlBhw61zIFZhc2NvXCIsXG4gICAgXCJSZWdpw7NuIGRlIE11cmNpYVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBbmRcIixcbiAgICBcIkFyYVwiLFxuICAgIFwiQXN0XCIsXG4gICAgXCJCYWxcIixcbiAgICBcIkNhblwiLFxuICAgIFwiQ2JyXCIsXG4gICAgXCJNYW5cIixcbiAgICBcIkxlb1wiLFxuICAgIFwiQ2F0XCIsXG4gICAgXCJDb21cIixcbiAgICBcIkV4dFwiLFxuICAgIFwiR2FsXCIsXG4gICAgXCJSaW9cIixcbiAgICBcIk1hZFwiLFxuICAgIFwiTmF2XCIsXG4gICAgXCJWYXNcIixcbiAgICBcIk11clwiXG4gIF0sXG4gIFwidGltZV96b25lXCI6IFtcbiAgICBcIlBhY8OtZmljby9NaWR3YXlcIixcbiAgICBcIlBhY8OtZmljby9QYWdvX1BhZ29cIixcbiAgICBcIlBhY8OtZmljby9Ib25vbHVsdVwiLFxuICAgIFwiQW1lcmljYS9KdW5lYXVcIixcbiAgICBcIkFtZXJpY2EvTG9zX0FuZ2VsZXNcIixcbiAgICBcIkFtZXJpY2EvVGlqdWFuYVwiLFxuICAgIFwiQW1lcmljYS9EZW52ZXJcIixcbiAgICBcIkFtZXJpY2EvUGhvZW5peFwiLFxuICAgIFwiQW1lcmljYS9DaGlodWFodWFcIixcbiAgICBcIkFtZXJpY2EvTWF6YXRsYW5cIixcbiAgICBcIkFtZXJpY2EvQ2hpY2Fnb1wiLFxuICAgIFwiQW1lcmljYS9SZWdpbmFcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTW9udGVycmV5XCIsXG4gICAgXCJBbWVyaWNhL0d1YXRlbWFsYVwiLFxuICAgIFwiQW1lcmljYS9OZXdfWW9ya1wiLFxuICAgIFwiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpc1wiLFxuICAgIFwiQW1lcmljYS9Cb2dvdGFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9MaW1hXCIsXG4gICAgXCJBbWVyaWNhL0hhbGlmYXhcIixcbiAgICBcIkFtZXJpY2EvQ2FyYWNhc1wiLFxuICAgIFwiQW1lcmljYS9MYV9QYXpcIixcbiAgICBcIkFtZXJpY2EvU2FudGlhZ29cIixcbiAgICBcIkFtZXJpY2EvU3RfSm9obnNcIixcbiAgICBcIkFtZXJpY2EvU2FvX1BhdWxvXCIsXG4gICAgXCJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXNcIixcbiAgICBcIkFtZXJpY2EvR3V5YW5hXCIsXG4gICAgXCJBbWVyaWNhL0dvZHRoYWJcIixcbiAgICBcIkF0bGFudGljL1NvdXRoX0dlb3JnaWFcIixcbiAgICBcIkF0bGFudGljL0F6b3Jlc1wiLFxuICAgIFwiQXRsYW50aWMvQ2FwZV9WZXJkZVwiLFxuICAgIFwiRXVyb3BhL0R1YmxpblwiLFxuICAgIFwiRXVyb3BhL0xvbmRvblwiLFxuICAgIFwiRXVyb3BhL0xpc2JvblwiLFxuICAgIFwiRXVyb3BhL0xvbmRvblwiLFxuICAgIFwiQWZyaWNhL0Nhc2FibGFuY2FcIixcbiAgICBcIkFmcmljYS9Nb25yb3ZpYVwiLFxuICAgIFwiRXRjL1VUQ1wiLFxuICAgIFwiRXVyb3BhL0JlbGdyYWRlXCIsXG4gICAgXCJFdXJvcGEvQnJhdGlzbGF2YVwiLFxuICAgIFwiRXVyb3BhL0J1ZGFwZXN0XCIsXG4gICAgXCJFdXJvcGEvTGp1YmxqYW5hXCIsXG4gICAgXCJFdXJvcGEvUHJhZ3VlXCIsXG4gICAgXCJFdXJvcGEvU2FyYWpldm9cIixcbiAgICBcIkV1cm9wYS9Ta29wamVcIixcbiAgICBcIkV1cm9wYS9XYXJzYXdcIixcbiAgICBcIkV1cm9wYS9aYWdyZWJcIixcbiAgICBcIkV1cm9wYS9CcnVzc2Vsc1wiLFxuICAgIFwiRXVyb3BhL0NvcGVuaGFnZW5cIixcbiAgICBcIkV1cm9wYS9NYWRyaWRcIixcbiAgICBcIkV1cm9wYS9QYXJpc1wiLFxuICAgIFwiRXVyb3BhL0Ftc3RlcmRhbVwiLFxuICAgIFwiRXVyb3BhL0JlcmxpblwiLFxuICAgIFwiRXVyb3BhL0JlcmxpblwiLFxuICAgIFwiRXVyb3BhL1JvbWVcIixcbiAgICBcIkV1cm9wYS9TdG9ja2hvbG1cIixcbiAgICBcIkV1cm9wYS9WaWVubmFcIixcbiAgICBcIkFmcmljYS9BbGdpZXJzXCIsXG4gICAgXCJFdXJvcGEvQnVjaGFyZXN0XCIsXG4gICAgXCJBZnJpY2EvQ2Fpcm9cIixcbiAgICBcIkV1cm9wYS9IZWxzaW5raVwiLFxuICAgIFwiRXVyb3BhL0tpZXZcIixcbiAgICBcIkV1cm9wYS9SaWdhXCIsXG4gICAgXCJFdXJvcGEvU29maWFcIixcbiAgICBcIkV1cm9wYS9UYWxsaW5uXCIsXG4gICAgXCJFdXJvcGEvVmlsbml1c1wiLFxuICAgIFwiRXVyb3BhL0F0aGVuc1wiLFxuICAgIFwiRXVyb3BhL0lzdGFuYnVsXCIsXG4gICAgXCJFdXJvcGEvTWluc2tcIixcbiAgICBcIkFzaWEvSmVydXNhbGVuXCIsXG4gICAgXCJBZnJpY2EvSGFyYXJlXCIsXG4gICAgXCJBZnJpY2EvSm9oYW5uZXNidXJnXCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJBc2lhL0t1d2FpdFwiLFxuICAgIFwiQXNpYS9SaXlhZGhcIixcbiAgICBcIkFmcmljYS9OYWlyb2JpXCIsXG4gICAgXCJBc2lhL0JhZ2hkYWRcIixcbiAgICBcIkFzaWEvVGVocmFuXCIsXG4gICAgXCJBc2lhL011c2NhdFwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvQmFrdVwiLFxuICAgIFwiQXNpYS9UYmlsaXNpXCIsXG4gICAgXCJBc2lhL1llcmV2YW5cIixcbiAgICBcIkFzaWEvS2FidWxcIixcbiAgICBcIkFzaWEvWWVrYXRlcmluYnVyZ1wiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL0thcmFjaGlcIixcbiAgICBcIkFzaWEvVGFzaGtlbnRcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9LYXRobWFuZHVcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvQ29sb21ib1wiLFxuICAgIFwiQXNpYS9BbG1hdHlcIixcbiAgICBcIkFzaWEvTm92b3NpYmlyc2tcIixcbiAgICBcIkFzaWEvUmFuZ29vblwiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0Jhbmdrb2tcIixcbiAgICBcIkFzaWEvSmFrYXJ0YVwiLFxuICAgIFwiQXNpYS9LcmFzbm95YXJza1wiLFxuICAgIFwiQXNpYS9TaGFuZ2hhaVwiLFxuICAgIFwiQXNpYS9DaG9uZ3FpbmdcIixcbiAgICBcIkFzaWEvSG9uZ19Lb25nXCIsXG4gICAgXCJBc2lhL1VydW1xaVwiLFxuICAgIFwiQXNpYS9LdWFsYV9MdW1wdXJcIixcbiAgICBcIkFzaWEvU2luZ2Fwb3JlXCIsXG4gICAgXCJBc2lhL1RhaXBlaVwiLFxuICAgIFwiQXVzdHJhbGlhL1BlcnRoXCIsXG4gICAgXCJBc2lhL0lya3V0c2tcIixcbiAgICBcIkFzaWEvVWxhYW5iYWF0YXJcIixcbiAgICBcIkFzaWEvU2VvdWxcIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvWWFrdXRza1wiLFxuICAgIFwiQXVzdHJhbGlhL0RhcndpblwiLFxuICAgIFwiQXVzdHJhbGlhL0FkZWxhaWRlXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvU3lkbmV5XCIsXG4gICAgXCJBdXN0cmFsaWEvQnJpc2JhbmVcIixcbiAgICBcIkF1c3RyYWxpYS9Ib2JhcnRcIixcbiAgICBcIkFzaWEvVmxhZGl2b3N0b2tcIixcbiAgICBcIlBhY8OtZmljby9HdWFtXCIsXG4gICAgXCJQYWPDrWZpY28vUG9ydF9Nb3Jlc2J5XCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiUGFjw61maWNvL05vdW1lYVwiLFxuICAgIFwiUGFjw61maWNvL0ZpamlcIixcbiAgICBcIkFzaWEvS2FtY2hhdGthXCIsXG4gICAgXCJQYWPDrWZpY28vTWFqdXJvXCIsXG4gICAgXCJQYWPDrWZpY28vQXVja2xhbmRcIixcbiAgICBcIlBhY8OtZmljby9BdWNrbGFuZFwiLFxuICAgIFwiUGFjw61maWNvL1RvbmdhdGFwdVwiLFxuICAgIFwiUGFjw61maWNvL0Zha2FvZm9cIixcbiAgICBcIlBhY8OtZmljby9BcGlhXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9zdWZmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tzdHJlZXRfc3VmZml4fSAje05hbWUuZmlyc3RfbmFtZX0gI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9I3tidWlsZGluZ19udW1iZXJ9XCIsXG4gICAgXCIje3N0cmVldF9uYW1lfSN7YnVpbGRpbmdfbnVtYmVyfSAje3NlY29uZGFyeV9hZGRyZXNzfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkVzcGHDsWFcIlxuICBdXG59O1xuZXMuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUy5MLlwiLFxuICAgIFwiZSBIaWpvc1wiLFxuICAgIFwiUy5BLlwiLFxuICAgIFwiSGVybWFub3NcIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgICAgXCJoYWJpbGlkYWRcIixcbiAgICAgIFwiYWNjZXNvXCIsXG4gICAgICBcImFkYXB0YWRvclwiLFxuICAgICAgXCJhbGdvcml0bW9cIixcbiAgICAgIFwiYWxpYW56YVwiLFxuICAgICAgXCJhbmFsaXN0YVwiLFxuICAgICAgXCJhcGxpY2FjacOzblwiLFxuICAgICAgXCJlbmZvcXVlXCIsXG4gICAgICBcImFycXVpdGVjdHVyYVwiLFxuICAgICAgXCJhcmNoaXZvXCIsXG4gICAgICBcImludGVsaWdlbmNpYSBhcnRpZmljaWFsXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImFjdGl0dWRcIixcbiAgICAgIFwibWVkaWNpw7NuXCIsXG4gICAgICBcImdlc3Rpw7NuIHByZXN1cHVlc3RhcmlhXCIsXG4gICAgICBcImNhcGFjaWRhZFwiLFxuICAgICAgXCJkZXNhZsOtb1wiLFxuICAgICAgXCJjaXJjdWl0b1wiLFxuICAgICAgXCJjb2xhYm9yYWNpw7NuXCIsXG4gICAgICBcImNvbXBsZWppZGFkXCIsXG4gICAgICBcImNvbmNlcHRvXCIsXG4gICAgICBcImNvbmdsb21lcmFjacOzblwiLFxuICAgICAgXCJjb250aW5nZW5jaWFcIixcbiAgICAgIFwibsO6Y2xlb1wiLFxuICAgICAgXCJmaWRlbGlkYWRcIixcbiAgICAgIFwiYmFzZSBkZSBkYXRvc1wiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbmljacOzblwiLFxuICAgICAgXCJlbXVsYWNpw7NuXCIsXG4gICAgICBcImNvZGlmaWNhclwiLFxuICAgICAgXCJlbmNyaXB0YXJcIixcbiAgICAgIFwiZXh0cmFuZXRcIixcbiAgICAgIFwiZmlybXdhcmVcIixcbiAgICAgIFwiZmxleGliaWxpZGFkXCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcInByZXZpc2nDs25cIixcbiAgICAgIFwiYmFzZSBkZSB0cmFiYWpvXCIsXG4gICAgICBcImZ1bmNpw7NuXCIsXG4gICAgICBcImZ1bmNpb25hbGlkYWRcIixcbiAgICAgIFwiSW50ZXJmYXogR3LDoWZpY2FcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkludGVyZmF6IGdyw6FmaWNvIGRlIHVzdWFyaW9cIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiU29wb3J0ZVwiLFxuICAgICAgXCJqZXJhcnF1w61hXCIsXG4gICAgICBcImNvbmp1bnRvXCIsXG4gICAgICBcImltcGxlbWVudGFjacOzblwiLFxuICAgICAgXCJpbmZyYWVzdHJ1Y3R1cmFcIixcbiAgICAgIFwiaW5pY2lhdGl2YVwiLFxuICAgICAgXCJpbnN0YWxhY2nDs25cIixcbiAgICAgIFwiY29uanVudG8gZGUgaW5zdHJ1Y2Npb25lc1wiLFxuICAgICAgXCJpbnRlcmZhelwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJiYXNlIGRlbCBjb25vY2ltaWVudG9cIixcbiAgICAgIFwicmVkIGRlIGFyZWEgbG9jYWxcIixcbiAgICAgIFwiYXByb3ZlY2hhclwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtZXRvZG9sb2fDrWFzXCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmFjacOzblwiLFxuICAgICAgXCJtb2RlbG9cIixcbiAgICAgIFwibW9kZXJhZG9yXCIsXG4gICAgICBcIm1vbml0b3JpemFyXCIsXG4gICAgICBcImFycXVpdGVjdHVyYSBhYmllcnRhXCIsXG4gICAgICBcInNpc3RlbWEgYWJpZXJ0b1wiLFxuICAgICAgXCJvcnF1ZXN0YXJcIixcbiAgICAgIFwicGFyYWRpZ21hXCIsXG4gICAgICBcInBhcmFsZWxpc21vXCIsXG4gICAgICBcInBvbMOtdGljYVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwiZXN0cnVjdHVyYSBkZSBwcmVjaW9zXCIsXG4gICAgICBcInByb2Nlc28gZGUgbWVqb3JhXCIsXG4gICAgICBcInByb2R1Y3RvXCIsXG4gICAgICBcInByb2R1Y3RpdmlkYWRcIixcbiAgICAgIFwicHJveWVjdG9cIixcbiAgICAgIFwicHJveWVjY2nDs25cIixcbiAgICAgIFwicHJvdG9jb2xvXCIsXG4gICAgICBcImzDrW5lYSBzZWd1cmFcIixcbiAgICAgIFwic29mdHdhcmVcIixcbiAgICAgIFwic29sdWNpw7NuXCIsXG4gICAgICBcImVzdGFuZGFyZGl6YWNpw7NuXCIsXG4gICAgICBcImVzdHJhdGVnaWFcIixcbiAgICAgIFwiZXN0cnVjdHVyYVwiLFxuICAgICAgXCLDqXhpdG9cIixcbiAgICAgIFwic3VwZXJlc3RydWN0dXJhXCIsXG4gICAgICBcInNvcG9ydGVcIixcbiAgICAgIFwic2luZXJnaWFcIixcbiAgICAgIFwibWVkaWFudGVcIixcbiAgICAgIFwibWFyY28gZGUgdGllbXBvXCIsXG4gICAgICBcImNhamEgZGUgaGVycmFtaWVudGFzXCIsXG4gICAgICBcInV0aWxpemFjacOzblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcImZ1ZXJ6YSBkZSB0cmFiYWpvXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIjI0IGhvcmFzXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiM3JkIGdlbmVyYWNpw7NuXCIsXG4gICAgICBcIjR0aCBnZW5lcmFjacOzblwiLFxuICAgICAgXCI1dGggZ2VuZXJhY2nDs25cIixcbiAgICAgIFwiNnRoIGdlbmVyYWNpw7NuXCIsXG4gICAgICBcImFuYWxpemFkYVwiLFxuICAgICAgXCJhc2ltw6l0cmljYVwiLFxuICAgICAgXCJhc8OtbmNyb25hXCIsXG4gICAgICBcIm1vbml0b3JpemFkYSBwb3IgcmVkXCIsXG4gICAgICBcImJpZGlyZWNjaW9uYWxcIixcbiAgICAgIFwiYmlmdXJjYWRhXCIsXG4gICAgICBcImdlbmVyYWRhIHBvciBlbCBjbGllbnRlXCIsXG4gICAgICBcImNsaWVudGUgc2Vydmlkb3JcIixcbiAgICAgIFwiY29oZXJlbnRlXCIsXG4gICAgICBcImNvaGVzaXZhXCIsXG4gICAgICBcImNvbXB1ZXN0b1wiLFxuICAgICAgXCJzZW5zaWJsZSBhbCBjb250ZXh0b1wiLFxuICAgICAgXCJiYXNhZG8gZW4gZWwgY29udGV4dG9cIixcbiAgICAgIFwiYmFzYWRvIGVuIGNvbnRlbmlkb1wiLFxuICAgICAgXCJkZWRpY2FkYVwiLFxuICAgICAgXCJnZW5lcmFkbyBwb3IgbGEgZGVtYW5kYVwiLFxuICAgICAgXCJkaWRhY3RpY2FcIixcbiAgICAgIFwiZGlyZWNjaW9uYWxcIixcbiAgICAgIFwiZGlzY3JldGFcIixcbiAgICAgIFwiZGluw6FtaWNhXCIsXG4gICAgICBcInBvdGVuY2lhZGFcIixcbiAgICAgIFwiYWNvbXBhc2FkYVwiLFxuICAgICAgXCJlamVjdXRpdmFcIixcbiAgICAgIFwiZXhwbMOtY2l0YVwiLFxuICAgICAgXCJ0b2xlcmFudGUgYSBmYWxsb3NcIixcbiAgICAgIFwiaW5ub3ZhZG9yYVwiLFxuICAgICAgXCJhbXBsaW8gw6FiYW5pY29cIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImhldXLDrXN0aWNhXCIsXG4gICAgICBcImFsdG8gbml2ZWxcIixcbiAgICAgIFwiaG9sw61zdGljYVwiLFxuICAgICAgXCJob21vZ8OpbmVhXCIsXG4gICAgICBcImhpYnJpZGFcIixcbiAgICAgIFwiaW5jcmVtZW50YWxcIixcbiAgICAgIFwiaW50YW5naWJsZVwiLFxuICAgICAgXCJpbnRlcmFjdGl2YVwiLFxuICAgICAgXCJpbnRlcm1lZGlhXCIsXG4gICAgICBcImxvY2FsXCIsXG4gICAgICBcImxvZ8Otc3RpY2FcIixcbiAgICAgIFwibWF4aW1pemFkYVwiLFxuICAgICAgXCJtZXTDs2RpY2FcIixcbiAgICAgIFwibWlzacOzbiBjcsOtdGljYVwiLFxuICAgICAgXCJtw7NiaWxcIixcbiAgICAgIFwibW9kdWxhclwiLFxuICAgICAgXCJtb3RpdmFkb3JhXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGllc3RhZG9cIixcbiAgICAgIFwibXVsdGl0YXJlYVwiLFxuICAgICAgXCJuYWNpb25hbFwiLFxuICAgICAgXCJiYXNhZG8gZW4gbmVjZXNpZGFkZXNcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJudWV2YSBnZW5lcmFjacOzblwiLFxuICAgICAgXCJuby12b2zDoXRpbFwiLFxuICAgICAgXCJvcmllbnRhZG8gYSBvYmpldG9zXCIsXG4gICAgICBcIsOzcHRpbWFcIixcbiAgICAgIFwib3B0aW1pemFkYVwiLFxuICAgICAgXCJyYWRpY2FsXCIsXG4gICAgICBcInRpZW1wbyByZWFsXCIsXG4gICAgICBcInJlY8OtcHJvY2FcIixcbiAgICAgIFwicmVnaW9uYWxcIixcbiAgICAgIFwiZXNjYWxhYmxlXCIsXG4gICAgICBcInNlY3VuZGFyaWFcIixcbiAgICAgIFwib3JpZW50YWRhIGEgc29sdWNpb25lc1wiLFxuICAgICAgXCJlc3RhYmxlXCIsXG4gICAgICBcImVzdGF0aWNhXCIsXG4gICAgICBcInNpc3RlbcOhdGljYVwiLFxuICAgICAgXCJzaXN0w6ltaWNhXCIsXG4gICAgICBcInRhbmdpYmxlXCIsXG4gICAgICBcInRlcmNpYXJpYVwiLFxuICAgICAgXCJ0cmFuc2ljaW9uYWxcIixcbiAgICAgIFwidW5pZm9ybWVcIixcbiAgICAgIFwidmFsb3IgYcOxYWRpZG9cIixcbiAgICAgIFwidsOtYSB3ZWJcIixcbiAgICAgIFwiZGVmZWN0b3MgY2Vyb1wiLFxuICAgICAgXCJ0b2xlcmFuY2lhIGNlcm9cIlxuICAgIF0sXG4gICAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJBZGFwdGF0aXZvXCIsXG4gICAgICBcIkF2YW56YWRvXCIsXG4gICAgICBcIkFzaW1pbGFkb1wiLFxuICAgICAgXCJBdXRvbWF0aXphZG9cIixcbiAgICAgIFwiRXF1aWxpYnJhZG9cIixcbiAgICAgIFwiQ2VudHJhZG8gZW4gZWwgbmVnb2Npb1wiLFxuICAgICAgXCJDZW50cmFsaXphZG9cIixcbiAgICAgIFwiQ2xvbmFkb1wiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJNdWx0aSBncnVwb1wiLFxuICAgICAgXCJNdWx0aSBwbGF0YWZvcm1hXCIsXG4gICAgICBcIkNlbnRyYWRvIGVuIGVsIHVzdWFyaW9cIixcbiAgICAgIFwiQ29uZmlndXJhYmxlXCIsXG4gICAgICBcIkRlc2NlbnRyYWxpemFkb1wiLFxuICAgICAgXCJEaWdpdGFsaXphZG9cIixcbiAgICAgIFwiRGlzdHJpYnVpZG9cIixcbiAgICAgIFwiRGl2ZXJzb1wiLFxuICAgICAgXCJSZWR1Y2lkb1wiLFxuICAgICAgXCJNZWpvcmFkb1wiLFxuICAgICAgXCJQYXJhIHRvZGEgbGEgZW1wcmVzYVwiLFxuICAgICAgXCJFcmdvbm9taWNvXCIsXG4gICAgICBcIkV4Y2x1c2l2b1wiLFxuICAgICAgXCJFeHBhbmRpZG9cIixcbiAgICAgIFwiRXh0ZW5kaWRvXCIsXG4gICAgICBcIkNhcmEgYSBjYXJhXCIsXG4gICAgICBcIkVuZm9jYWRvXCIsXG4gICAgICBcIlRvdGFsbWVudGUgY29uZmlndXJhYmxlXCIsXG4gICAgICBcIkZ1bmRhbWVudGFsXCIsXG4gICAgICBcIk9yw61nZW5lc1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGFkb1wiLFxuICAgICAgXCJJbm5vdmFkb3JcIixcbiAgICAgIFwiSW50ZWdyYWRvXCIsXG4gICAgICBcIkludHVpdGl2b1wiLFxuICAgICAgXCJJbnZlcnNvXCIsXG4gICAgICBcIkdlc3Rpb25hZG9cIixcbiAgICAgIFwiT2JsaWdhdG9yaW9cIixcbiAgICAgIFwiTW9uaXRvcml6YWRvXCIsXG4gICAgICBcIk11bHRpIGNhbmFsXCIsXG4gICAgICBcIk11bHRpIGxhdGVyYWxcIixcbiAgICAgIFwiTXVsdGkgY2FwYVwiLFxuICAgICAgXCJFbiByZWRcIixcbiAgICAgIFwiT3JpZW50YWRvIGEgb2JqZXRvc1wiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdm9cIixcbiAgICAgIFwiT3B0aW1pemFkb1wiLFxuICAgICAgXCJPcGNpb25hbFwiLFxuICAgICAgXCJPcmdhbmljb1wiLFxuICAgICAgXCJPcmdhbml6YWRvXCIsXG4gICAgICBcIlBlcnNldmVyYW5kb1wiLFxuICAgICAgXCJQZXJzaXN0ZW50ZVwiLFxuICAgICAgXCJlbiBmYXNlc1wiLFxuICAgICAgXCJQb2xhcml6YWRvXCIsXG4gICAgICBcIlByZS1lbXB0aXZvXCIsXG4gICAgICBcIlByb2FjdGl2b1wiLFxuICAgICAgXCJFbmZvY2FkbyBhIGJlbmZpY2lvc1wiLFxuICAgICAgXCJQcm9mdW5kb1wiLFxuICAgICAgXCJQcm9ncmFtYWJsZVwiLFxuICAgICAgXCJQcm9ncmVzaXZvXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiRW5mb2NhZG8gZW4gbGEgY2FsaWRhZFwiLFxuICAgICAgXCJSZWFjdGl2b1wiLFxuICAgICAgXCJSZWFsaW5lYWRvXCIsXG4gICAgICBcIlJlLWNvbnRleHR1YWxpemFkb1wiLFxuICAgICAgXCJSZS1pbXBsZW1lbnRhZG9cIixcbiAgICAgIFwiUmVkdWNpZG9cIixcbiAgICAgIFwiSW5nZW5pZXJpYSBpbnZlcnNhXCIsXG4gICAgICBcIlJvYnVzdG9cIixcbiAgICAgIFwiRsOhY2lsXCIsXG4gICAgICBcIlNlZ3Vyb1wiLFxuICAgICAgXCJBdXRvIHByb3BvcmNpb25hXCIsXG4gICAgICBcIkNvbXBhcnRpYmxlXCIsXG4gICAgICBcIkludGVyY2FtYmlhYmxlXCIsXG4gICAgICBcIlNpbmNyb25pemFkb1wiLFxuICAgICAgXCJPcmllbnRhZG8gYSBlcXVpcG9zXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlVuaXZlcnNhbFwiLFxuICAgICAgXCJNZWpvcmFkb1wiLFxuICAgICAgXCJBY3R1YWxpemFibGVcIixcbiAgICAgIFwiQ2VudHJhZG8gZW4gZWwgdXN1YXJpb1wiLFxuICAgICAgXCJBbWlnYWJsZVwiLFxuICAgICAgXCJWZXJzYXRpbFwiLFxuICAgICAgXCJWaXJ0dWFsXCIsXG4gICAgICBcIlZpc2lvbmFyaW9cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSB5ICN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSB5ICN7TmFtZS5sYXN0X25hbWV9IEFzb2NpYWRvc1wiXG4gIF1cbn07XG5lcy5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImVzXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJjb20uZXNcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5lcy5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWTDoW5cIixcbiAgICBcIkFndXN0w61uXCIsXG4gICAgXCJBbGJlcnRvXCIsXG4gICAgXCJBbGVqYW5kcm9cIixcbiAgICBcIkFsZm9uc29cIixcbiAgICBcIkFsZnJlZG9cIixcbiAgICBcIkFuZHLDqXNcIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFybWFuZG9cIixcbiAgICBcIkFydHVyb1wiLFxuICAgIFwiQmVuaXRvXCIsXG4gICAgXCJCZW5qYW3DrW5cIixcbiAgICBcIkJlcm5hcmRvXCIsXG4gICAgXCJDYXJsb3NcIixcbiAgICBcIkPDqXNhclwiLFxuICAgIFwiQ2xhdWRpb1wiLFxuICAgIFwiQ2xlbWVudGVcIixcbiAgICBcIkNyaXN0aWFuXCIsXG4gICAgXCJDcmlzdG9iYWxcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGF2aWRcIixcbiAgICBcIkRpZWdvXCIsXG4gICAgXCJFZHVhcmRvXCIsXG4gICAgXCJFbWlsaW9cIixcbiAgICBcIkVucmlxdWVcIixcbiAgICBcIkVybmVzdG9cIixcbiAgICBcIkVzdGViYW5cIixcbiAgICBcIkZlZGVyaWNvXCIsXG4gICAgXCJGZWxpcGVcIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGcmFuY2lzY29cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlcmFyZG9cIixcbiAgICBcIkdlcm3DoW5cIixcbiAgICBcIkdpbGJlcnRvXCIsXG4gICAgXCJHb256YWxvXCIsXG4gICAgXCJHcmVnb3Jpb1wiLFxuICAgIFwiR3VpbGxlcm1vXCIsXG4gICAgXCJHdXN0YXZvXCIsXG4gICAgXCJIZXJuw6FuXCIsXG4gICAgXCJIb21lcm9cIixcbiAgICBcIkhvcmFjaW9cIixcbiAgICBcIkh1Z29cIixcbiAgICBcIklnbmFjaW9cIixcbiAgICBcIkphY29ib1wiLFxuICAgIFwiSmFpbWVcIixcbiAgICBcIkphdmllclwiLFxuICAgIFwiSmVyw7NuaW1vXCIsXG4gICAgXCJKZXPDunNcIixcbiAgICBcIkpvYXF1w61uXCIsXG4gICAgXCJKb3JnZVwiLFxuICAgIFwiSm9yZ2UgTHVpc1wiLFxuICAgIFwiSm9zw6lcIixcbiAgICBcIkpvc8OpIEVkdWFyZG9cIixcbiAgICBcIkpvc8OpIEVtaWxpb1wiLFxuICAgIFwiSm9zw6kgTHVpc1wiLFxuICAgIFwiSm9zw6kgTWFyw61hXCIsXG4gICAgXCJKdWFuXCIsXG4gICAgXCJKdWFuIENhcmxvc1wiLFxuICAgIFwiSnVsaW9cIixcbiAgICBcIkp1bGlvIEPDqXNhclwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkx1aXNcIixcbiAgICBcIkx1aXMgTWlndWVsXCIsXG4gICAgXCJNYW51ZWxcIixcbiAgICBcIk1hcmNvIEFudG9uaW9cIixcbiAgICBcIk1hcmNvc1wiLFxuICAgIFwiTWFyaWFub1wiLFxuICAgIFwiTWFyaW9cIixcbiAgICBcIk1hcnTDrW5cIixcbiAgICBcIk1hdGVvXCIsXG4gICAgXCJNaWd1ZWxcIixcbiAgICBcIk1pZ3VlbCDDgW5nZWxcIixcbiAgICBcIk5pY29sw6FzXCIsXG4gICAgXCJPY3RhdmlvXCIsXG4gICAgXCLDk3NjYXJcIixcbiAgICBcIlBhYmxvXCIsXG4gICAgXCJQYXRyaWNpb1wiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFtaXJvXCIsXG4gICAgXCJSYW3Ds25cIixcbiAgICBcIlJhw7psXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSb2JlcnRvXCIsXG4gICAgXCJSb2RyaWdvXCIsXG4gICAgXCJSdWLDqW5cIixcbiAgICBcIlNhbHZhZG9yXCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIlNhbmNob1wiLFxuICAgIFwiU2FudGlhZ29cIixcbiAgICBcIlNlcmdpb1wiLFxuICAgIFwiVGVvZG9yb1wiLFxuICAgIFwiVGltb3Rlb1wiLFxuICAgIFwiVG9tw6FzXCIsXG4gICAgXCJWaWNlbnRlXCIsXG4gICAgXCJWw61jdG9yXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWxlamFuZHJhXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmEgTHVpc2FcIixcbiAgICBcIkFuYSBNYXLDrWFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW5pdGFcIixcbiAgICBcIsOBbmdlbGFcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFyaWFkbmFcIixcbiAgICBcIkJhcmJhcmFcIixcbiAgICBcIkJlYXRyaXpcIixcbiAgICBcIkJlcnRhXCIsXG4gICAgXCJCbGFuY2FcIixcbiAgICBcIkNhcmlkYWRcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJDYXJsb3RhXCIsXG4gICAgXCJDYXJtZW5cIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXRhbGluYVwiLFxuICAgIFwiQ2VjaWxpYVwiLFxuICAgIFwiQ2xhcmFcIixcbiAgICBcIkNsYXVkaWFcIixcbiAgICBcIkNvbmNlcGNpw7NuXCIsXG4gICAgXCJDb25jaGl0YVwiLFxuICAgIFwiQ3Jpc3RpbmFcIixcbiAgICBcIkRhbmllbGFcIixcbiAgICBcIkTDqWJvcmFcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEb2xvcmVzXCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJEb3JvdGVhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxpc2FcIixcbiAgICBcIkVsb2lzYVwiLFxuICAgIFwiRWxzYVwiLFxuICAgIFwiRWx2aXJhXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVzcGVyYW56YVwiLFxuICAgIFwiRXN0ZWxhXCIsXG4gICAgXCJFc3RlclwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJGbG9yZW5jaWFcIixcbiAgICBcIkZyYW5jaXNjYVwiLFxuICAgIFwiR2FicmllbGFcIixcbiAgICBcIkdsb3JpYVwiLFxuICAgIFwiR3JhY2llbGFcIixcbiAgICBcIkd1YWRhbHVwZVwiLFxuICAgIFwiR3VpbGxlcm1pbmFcIixcbiAgICBcIkluw6lzXCIsXG4gICAgXCJJcmVuZVwiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxhXCIsXG4gICAgXCJKb3NlZmluYVwiLFxuICAgIFwiSnVhbmFcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGVvbm9yXCIsXG4gICAgXCJMZXRpY2lhXCIsXG4gICAgXCJMaWxpYVwiLFxuICAgIFwiTG9yZW5hXCIsXG4gICAgXCJMb3VyZGVzXCIsXG4gICAgXCJMdWNpYVwiLFxuICAgIFwiTHVpc2FcIixcbiAgICBcIkx1elwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYW51ZWxhXCIsXG4gICAgXCJNYXJjZWxhXCIsXG4gICAgXCJNYXJnYXJpdGFcIixcbiAgICBcIk1hcsOtYVwiLFxuICAgIFwiTWFyw61hIGRlbCBDYXJtZW5cIixcbiAgICBcIk1hcsOtYSBDcmlzdGluYVwiLFxuICAgIFwiTWFyw61hIEVsZW5hXCIsXG4gICAgXCJNYXLDrWEgRXVnZW5pYVwiLFxuICAgIFwiTWFyw61hIEpvc8OpXCIsXG4gICAgXCJNYXLDrWEgTHVpc2FcIixcbiAgICBcIk1hcsOtYSBTb2xlZGFkXCIsXG4gICAgXCJNYXLDrWEgVGVyZXNhXCIsXG4gICAgXCJNYXJpYW5hXCIsXG4gICAgXCJNYXJpY2FybWVuXCIsXG4gICAgXCJNYXJpbHVcIixcbiAgICBcIk1hcmlzb2xcIixcbiAgICBcIk1hcnRhXCIsXG4gICAgXCJNYXl0ZVwiLFxuICAgIFwiTWVyY2VkZXNcIixcbiAgICBcIk1pY2FlbGFcIixcbiAgICBcIk3Ds25pY2FcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5vcm1hXCIsXG4gICAgXCJPbGl2aWFcIixcbiAgICBcIlBhdHJpY2lhXCIsXG4gICAgXCJQaWxhclwiLFxuICAgIFwiUmFtb25hXCIsXG4gICAgXCJSYXF1ZWxcIixcbiAgICBcIlJlYmVjYVwiLFxuICAgIFwiUmVpbmFcIixcbiAgICBcIlJvY2lvXCIsXG4gICAgXCJSb3NhXCIsXG4gICAgXCJSb3NhbGlhXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJTaWx2aWFcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJTb2xlZGFkXCIsXG4gICAgXCJTb25pYVwiLFxuICAgIFwiU3VzYW5hXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIlZlcsOzbmljYVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpcmdpbmlhXCIsXG4gICAgXCJZb2xhbmRhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJleXRhXCIsXG4gICAgXCJBYnJlZ29cIixcbiAgICBcIkFicmV1XCIsXG4gICAgXCJBY2V2ZWRvXCIsXG4gICAgXCJBY29zdGFcIixcbiAgICBcIkFjdcOxYVwiLFxuICAgIFwiQWRhbWVcIixcbiAgICBcIkFkb3Jub1wiLFxuICAgIFwiQWdvc3RvXCIsXG4gICAgXCJBZ3VheW9cIixcbiAgICBcIsOBZ3VpbGFyXCIsXG4gICAgXCJBZ3VpbGVyYVwiLFxuICAgIFwiQWd1aXJyZVwiLFxuICAgIFwiQWxhbmlzXCIsXG4gICAgXCJBbGFuaXpcIixcbiAgICBcIkFsYXJjw7NuXCIsXG4gICAgXCJBbGJhXCIsXG4gICAgXCJBbGNhbGFcIixcbiAgICBcIkFsY8OhbnRhclwiLFxuICAgIFwiQWxjYXJhelwiLFxuICAgIFwiQWxlamFuZHJvXCIsXG4gICAgXCJBbGVtw6FuXCIsXG4gICAgXCJBbGZhcm9cIixcbiAgICBcIkFsaWNlYVwiLFxuICAgIFwiQWxtYW56YVwiLFxuICAgIFwiQWxtYXJhelwiLFxuICAgIFwiQWxtb250ZVwiLFxuICAgIFwiQWxvbnNvXCIsXG4gICAgXCJBbG9uem9cIixcbiAgICBcIkFsdGFtaXJhbm9cIixcbiAgICBcIkFsdmFcIixcbiAgICBcIkFsdmFyYWRvXCIsXG4gICAgXCJBbHZhcmV6XCIsXG4gICAgXCJBbWFkb3JcIixcbiAgICBcIkFtYXlhXCIsXG4gICAgXCJBbmF5YVwiLFxuICAgIFwiQW5ndWlhbm9cIixcbiAgICBcIkFuZ3Vsb1wiLFxuICAgIFwiQXBhcmljaW9cIixcbiAgICBcIkFwb2RhY2FcIixcbiAgICBcIkFwb250ZVwiLFxuICAgIFwiQXJhZ8OzblwiLFxuICAgIFwiQXJhw7FhXCIsXG4gICAgXCJBcmFuZGFcIixcbiAgICBcIkFyY2VcIixcbiAgICBcIkFyY2h1bGV0YVwiLFxuICAgIFwiQXJlbGxhbm9cIixcbiAgICBcIkFyZW5hc1wiLFxuICAgIFwiQXJldmFsb1wiLFxuICAgIFwiQXJndWVsbG9cIixcbiAgICBcIkFyaWFzXCIsXG4gICAgXCJBcm1hc1wiLFxuICAgIFwiQXJtZW5kw6FyaXpcIixcbiAgICBcIkFybWVudGFcIixcbiAgICBcIkFybWlqb1wiLFxuICAgIFwiQXJyZWRvbmRvXCIsXG4gICAgXCJBcnJlb2xhXCIsXG4gICAgXCJBcnJpYWdhXCIsXG4gICAgXCJBcnJveW9cIixcbiAgICBcIkFydGVhZ2FcIixcbiAgICBcIkF0ZW5jaW9cIixcbiAgICBcIsOBdmFsb3NcIixcbiAgICBcIsOBdmlsYVwiLFxuICAgIFwiQXZpbMOpc1wiLFxuICAgIFwiQXlhbGFcIixcbiAgICBcIkJhY2FcIixcbiAgICBcIkJhZGlsbG9cIixcbiAgICBcIkLDoWV6XCIsXG4gICAgXCJCYWV6YVwiLFxuICAgIFwiQmFoZW5hXCIsXG4gICAgXCJCYWxkZXJhc1wiLFxuICAgIFwiQmFsbGVzdGVyb3NcIixcbiAgICBcIkJhbmRhXCIsXG4gICAgXCJCYcOxdWVsb3NcIixcbiAgICBcIkJhcmFqYXNcIixcbiAgICBcIkJhcmVsYVwiLFxuICAgIFwiQmFycmFnw6FuXCIsXG4gICAgXCJCYXJyYXphXCIsXG4gICAgXCJCYXJyZXJhXCIsXG4gICAgXCJCYXJyZXRvXCIsXG4gICAgXCJCYXJyaWVudG9zXCIsXG4gICAgXCJCYXJyaW9zXCIsXG4gICAgXCJCYXRpc3RhXCIsXG4gICAgXCJCZWNlcnJhXCIsXG4gICAgXCJCZWx0csOhblwiLFxuICAgIFwiQmVuYXZpZGVzXCIsXG4gICAgXCJCZW5hdsOtZGV6XCIsXG4gICAgXCJCZW7DrXRlelwiLFxuICAgIFwiQmVybcO6ZGV6XCIsXG4gICAgXCJCZXJuYWxcIixcbiAgICBcIkJlcnLDrW9zXCIsXG4gICAgXCJCw6l0YW5jb3VydFwiLFxuICAgIFwiQmxhbmNvXCIsXG4gICAgXCJCb25pbGxhXCIsXG4gICAgXCJCb3JyZWdvXCIsXG4gICAgXCJCb3RlbGxvXCIsXG4gICAgXCJCcmF2b1wiLFxuICAgIFwiQnJpb25lc1wiLFxuICAgIFwiQnJpc2XDsW9cIixcbiAgICBcIkJyaXRvXCIsXG4gICAgXCJCdWVub1wiLFxuICAgIFwiQnVyZ29zXCIsXG4gICAgXCJCdXN0YW1hbnRlXCIsXG4gICAgXCJCdXN0b3NcIixcbiAgICBcIkNhYmFsbGVyb1wiLFxuICAgIFwiQ2Fiw6FuXCIsXG4gICAgXCJDYWJyZXJhXCIsXG4gICAgXCJDYWRlbmFcIixcbiAgICBcIkNhbGRlcmFcIixcbiAgICBcIkNhbGRlcsOzblwiLFxuICAgIFwiQ2FsdmlsbG9cIixcbiAgICBcIkNhbWFjaG9cIixcbiAgICBcIkNhbWFyaWxsb1wiLFxuICAgIFwiQ2FtcG9zXCIsXG4gICAgXCJDYW5hbGVzXCIsXG4gICAgXCJDYW5kZWxhcmlhXCIsXG4gICAgXCJDYW5vXCIsXG4gICAgXCJDYW50w7pcIixcbiAgICBcIkNhcmFiYWxsb1wiLFxuICAgIFwiQ2FyYmFqYWxcIixcbiAgICBcIkNhcmRlbmFzXCIsXG4gICAgXCJDYXJkb25hXCIsXG4gICAgXCJDYXJtb25hXCIsXG4gICAgXCJDYXJyYW56YVwiLFxuICAgIFwiQ2FycmFzY29cIixcbiAgICBcIkNhcnJhc3F1aWxsb1wiLFxuICAgIFwiQ2FycmXDs25cIixcbiAgICBcIkNhcnJlcmFcIixcbiAgICBcIkNhcnJlcm9cIixcbiAgICBcIkNhcnJpbGxvXCIsXG4gICAgXCJDYXJyaW9uXCIsXG4gICAgXCJDYXJ2YWphbFwiLFxuICAgIFwiQ2FzYW5vdmFcIixcbiAgICBcIkNhc2FyZXNcIixcbiAgICBcIkNhc8OhcmV6XCIsXG4gICAgXCJDYXNhc1wiLFxuICAgIFwiQ2FzaWxsYXNcIixcbiAgICBcIkNhc3Rhw7FlZGFcIixcbiAgICBcIkNhc3RlbGxhbm9zXCIsXG4gICAgXCJDYXN0aWxsb1wiLFxuICAgIFwiQ2FzdHJvXCIsXG4gICAgXCJDYXZhem9zXCIsXG4gICAgXCJDYXphcmVzXCIsXG4gICAgXCJDZWJhbGxvc1wiLFxuICAgIFwiQ2VkaWxsb1wiLFxuICAgIFwiQ2VqYVwiLFxuICAgIFwiQ2VudGVub1wiLFxuICAgIFwiQ2VwZWRhXCIsXG4gICAgXCJDZXJkYVwiLFxuICAgIFwiQ2VydmFudGVzXCIsXG4gICAgXCJDZXJ2w6FudGV6XCIsXG4gICAgXCJDaGFjw7NuXCIsXG4gICAgXCJDaGFwYVwiLFxuICAgIFwiQ2hhdmFycsOtYVwiLFxuICAgIFwiQ2jDoXZlelwiLFxuICAgIFwiQ2ludHLDs25cIixcbiAgICBcIkNpc25lcm9zXCIsXG4gICAgXCJDb2xsYWRvXCIsXG4gICAgXCJDb2xsYXpvXCIsXG4gICAgXCJDb2zDs25cIixcbiAgICBcIkNvbHVuZ2FcIixcbiAgICBcIkNvbmNlcGNpw7NuXCIsXG4gICAgXCJDb250cmVyYXNcIixcbiAgICBcIkNvcmRlcm9cIixcbiAgICBcIkPDs3Jkb3ZhXCIsXG4gICAgXCJDb3JuZWpvXCIsXG4gICAgXCJDb3JvbmFcIixcbiAgICBcIkNvcm9uYWRvXCIsXG4gICAgXCJDb3JyYWxcIixcbiAgICBcIkNvcnJhbGVzXCIsXG4gICAgXCJDb3JyZWFcIixcbiAgICBcIkNvcnTDqXNcIixcbiAgICBcIkNvcnRlelwiLFxuICAgIFwiQ290dG9cIixcbiAgICBcIkNvdmFycnViaWFzXCIsXG4gICAgXCJDcmVzcG9cIixcbiAgICBcIkNydXpcIixcbiAgICBcIkN1ZWxsYXJcIixcbiAgICBcIkN1cmllbFwiLFxuICAgIFwiRMOhdmlsYVwiLFxuICAgIFwiZGUgQW5kYVwiLFxuICAgIFwiZGUgSmVzw7pzXCIsXG4gICAgXCJEZWxhY3LDunpcIixcbiAgICBcIkRlbGFmdWVudGVcIixcbiAgICBcIkRlbGFnYXJ6YVwiLFxuICAgIFwiRGVsYW9cIixcbiAgICBcIkRlbGFwYXpcIixcbiAgICBcIkRlbGFyb3NhXCIsXG4gICAgXCJEZWxhdG9ycmVcIixcbiAgICBcIkRlbGXDs25cIixcbiAgICBcIkRlbGdhZGlsbG9cIixcbiAgICBcIkRlbGdhZG9cIixcbiAgICBcIkRlbHLDrW9cIixcbiAgICBcIkRlbHZhbGxlXCIsXG4gICAgXCJEw61helwiLFxuICAgIFwiRG9tw61uZ3VlelwiLFxuICAgIFwiRG9tw61ucXVlelwiLFxuICAgIFwiRHVhcnRlXCIsXG4gICAgXCJEdWXDsWFzXCIsXG4gICAgXCJEdXJhblwiLFxuICAgIFwiRWNoZXZhcnLDrWFcIixcbiAgICBcIkVsaXpvbmRvXCIsXG4gICAgXCJFbnLDrXF1ZXpcIixcbiAgICBcIkVzY2FsYW50ZVwiLFxuICAgIFwiRXNjYW1pbGxhXCIsXG4gICAgXCJFc2NvYmFyXCIsXG4gICAgXCJFc2NvYmVkb1wiLFxuICAgIFwiRXNwYXJ6YVwiLFxuICAgIFwiRXNwaW5hbFwiLFxuICAgIFwiRXNwaW5vXCIsXG4gICAgXCJFc3Bpbm9zYVwiLFxuICAgIFwiRXNwaW5vemFcIixcbiAgICBcIkVzcXVpYmVsXCIsXG4gICAgXCJFc3F1aXZlbFwiLFxuICAgIFwiRXN0w6l2ZXpcIixcbiAgICBcIkVzdHJhZGFcIixcbiAgICBcIkZhamFyZG9cIixcbiAgICBcIkZhcsOtYXNcIixcbiAgICBcIkZlbGljaWFub1wiLFxuICAgIFwiRmVybsOhbmRlelwiLFxuICAgIFwiRmVycmVyXCIsXG4gICAgXCJGaWVycm9cIixcbiAgICBcIkZpZ3Vlcm9hXCIsXG4gICAgXCJGbG9yZXNcIixcbiAgICBcIkZsw7NyZXpcIixcbiAgICBcIkZvbnNlY2FcIixcbiAgICBcIkZyYW5jb1wiLFxuICAgIFwiRnLDrWFzXCIsXG4gICAgXCJGdWVudGVzXCIsXG4gICAgXCJHYWl0w6FuXCIsXG4gICAgXCJHYWxhcnphXCIsXG4gICAgXCJHYWxpbmRvXCIsXG4gICAgXCJHYWxsYXJkb1wiLFxuICAgIFwiR2FsbGVnb3NcIixcbiAgICBcIkdhbHbDoW5cIixcbiAgICBcIkfDoWx2ZXpcIixcbiAgICBcIkdhbWJvYVwiLFxuICAgIFwiR2FtZXpcIixcbiAgICBcIkdhb25hXCIsXG4gICAgXCJHYXJheVwiLFxuICAgIFwiR2FyY8OtYVwiLFxuICAgIFwiR2FyaWJheVwiLFxuICAgIFwiR2FyaWNhXCIsXG4gICAgXCJHYXJyaWRvXCIsXG4gICAgXCJHYXJ6YVwiLFxuICAgIFwiR2FzdMOpbHVtXCIsXG4gICAgXCJHYXl0w6FuXCIsXG4gICAgXCJHaWxcIixcbiAgICBcIkdpcsOzblwiLFxuICAgIFwiR29kw61uZXpcIixcbiAgICBcIkdvZG95XCIsXG4gICAgXCJHw7NtZXpcIixcbiAgICBcIkdvbnphbGVzXCIsXG4gICAgXCJHb256w6FsZXpcIixcbiAgICBcIkdvbGx1bVwiLFxuICAgIFwiR3JhY2lhXCIsXG4gICAgXCJHcmFuYWRvXCIsXG4gICAgXCJHcmFuYWRvc1wiLFxuICAgIFwiR3JpZWdvXCIsXG4gICAgXCJHcmlqYWx2YVwiLFxuICAgIFwiR3VhamFyZG9cIixcbiAgICBcIkd1YXJkYWRvXCIsXG4gICAgXCJHdWVycmFcIixcbiAgICBcIkd1ZXJyZXJvXCIsXG4gICAgXCJHdWV2YXJhXCIsXG4gICAgXCJHdWlsbGVuXCIsXG4gICAgXCJHdXJ1bGVcIixcbiAgICBcIkd1dGnDqXJyZXpcIixcbiAgICBcIkd1em3DoW5cIixcbiAgICBcIkhhcm9cIixcbiAgICBcIkhlbnLDrXF1ZXpcIixcbiAgICBcIkhlcmVkaWFcIixcbiAgICBcIkhlcm7DoWRlelwiLFxuICAgIFwiSGVybmFuZGVzXCIsXG4gICAgXCJIZXJuw6FuZGV6XCIsXG4gICAgXCJIZXJyZXJhXCIsXG4gICAgXCJIaWRhbGdvXCIsXG4gICAgXCJIaW5vam9zYVwiLFxuICAgIFwiSG9sZ3XDrW5cIixcbiAgICBcIkh1ZXJ0YVwiLFxuICAgIFwiSHVydGFkb1wiLFxuICAgIFwiSWJhcnJhXCIsXG4gICAgXCJJZ2xlc2lhc1wiLFxuICAgIFwiSXJpemFycnlcIixcbiAgICBcIkphaW1lXCIsXG4gICAgXCJKYWltZXNcIixcbiAgICBcIkrDoXF1ZXpcIixcbiAgICBcIkphcmFtaWxsb1wiLFxuICAgIFwiSmFzc29cIixcbiAgICBcIkppbcOpbmV6XCIsXG4gICAgXCJKaW3DrW5lelwiLFxuICAgIFwiSnXDoXJlelwiLFxuICAgIFwiSnVyYWRvXCIsXG4gICAgXCJMYWJveVwiLFxuICAgIFwiTGFyYVwiLFxuICAgIFwiTGF1cmVhbm9cIixcbiAgICBcIkxlYWxcIixcbiAgICBcIkxlYnLDs25cIixcbiAgICBcIkxlZGVzbWFcIixcbiAgICBcIkxlaXZhXCIsXG4gICAgXCJMZW11c1wiLFxuICAgIFwiTGXDs25cIixcbiAgICBcIkxlcm1hXCIsXG4gICAgXCJMZXl2YVwiLFxuICAgIFwiTGltw7NuXCIsXG4gICAgXCJMaW5hcmVzXCIsXG4gICAgXCJMaXJhXCIsXG4gICAgXCJMbGFtYXNcIixcbiAgICBcIkxvZXJhXCIsXG4gICAgXCJMb21lbGlcIixcbiAgICBcIkxvbmdvcmlhXCIsXG4gICAgXCJMw7NwZXpcIixcbiAgICBcIkxvdmF0b1wiLFxuICAgIFwiTG95YVwiLFxuICAgIFwiTG96YWRhXCIsXG4gICAgXCJMb3phbm9cIixcbiAgICBcIkx1Y2Vyb1wiLFxuICAgIFwiTHVjaW9cIixcbiAgICBcIkx1ZXZhbm9cIixcbiAgICBcIkx1Z29cIixcbiAgICBcIkx1bmFcIixcbiAgICBcIk1hY8OtYXNcIixcbiAgICBcIk1hZGVyYVwiLFxuICAgIFwiTWFkcmlkXCIsXG4gICAgXCJNYWRyaWdhbFwiLFxuICAgIFwiTWFlc3Rhc1wiLFxuICAgIFwiTWFnYcOxYVwiLFxuICAgIFwiTWFsYXZlXCIsXG4gICAgXCJNYWxkb25hZG9cIixcbiAgICBcIk1hbnphbmFyZXNcIixcbiAgICBcIk1hcmVzXCIsXG4gICAgXCJNYXLDrW5cIixcbiAgICBcIk3DoXJxdWV6XCIsXG4gICAgXCJNYXJyZXJvXCIsXG4gICAgXCJNYXJyb3F1w61uXCIsXG4gICAgXCJNYXJ0w61uZXpcIixcbiAgICBcIk1hc2NhcmXDsWFzXCIsXG4gICAgXCJNYXRhXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWF0w61hc1wiLFxuICAgIFwiTWF0b3NcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heW9yZ2FcIixcbiAgICBcIk1lZGluYVwiLFxuICAgIFwiTWVkcmFub1wiLFxuICAgIFwiTWVqw61hXCIsXG4gICAgXCJNZWzDqW5kZXpcIixcbiAgICBcIk1lbGdhclwiLFxuICAgIFwiTWVuYVwiLFxuICAgIFwiTWVuY2hhY2FcIixcbiAgICBcIk3DqW5kZXpcIixcbiAgICBcIk1lbmRvemFcIixcbiAgICBcIk1lbsOpbmRlelwiLFxuICAgIFwiTWVyYXpcIixcbiAgICBcIk1lcmNhZG9cIixcbiAgICBcIk1lcmlub1wiLFxuICAgIFwiTWVzYVwiLFxuICAgIFwiTWV6YVwiLFxuICAgIFwiTWlyYW1vbnRlc1wiLFxuICAgIFwiTWlyYW5kYVwiLFxuICAgIFwiTWlyZWxlc1wiLFxuICAgIFwiTW9qaWNhXCIsXG4gICAgXCJNb2xpbmFcIixcbiAgICBcIk1vbmRyYWfDs25cIixcbiAgICBcIk1vbnJveVwiLFxuICAgIFwiTW9udGFsdm9cIixcbiAgICBcIk1vbnRhw7FlelwiLFxuICAgIFwiTW9udGHDsW9cIixcbiAgICBcIk1vbnRlbWF5b3JcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRlcm9cIixcbiAgICBcIk1vbnRlc1wiLFxuICAgIFwiTW9udGV6XCIsXG4gICAgXCJNb250b3lhXCIsXG4gICAgXCJNb3JhXCIsXG4gICAgXCJNb3JhbGVzXCIsXG4gICAgXCJNb3Jlbm9cIixcbiAgICBcIk1vdGFcIixcbiAgICBcIk1veWFcIixcbiAgICBcIk11bmd1w61hXCIsXG4gICAgXCJNdcOxaXpcIixcbiAgICBcIk11w7FvelwiLFxuICAgIFwiTXVyaWxsb1wiLFxuICAgIFwiTXVyb1wiLFxuICAgIFwiTsOhamVyYVwiLFxuICAgIFwiTmFyYW5qb1wiLFxuICAgIFwiTmFydsOhZXpcIixcbiAgICBcIk5hdmFcIixcbiAgICBcIk5hdmFycmV0ZVwiLFxuICAgIFwiTmF2YXJyb1wiLFxuICAgIFwiTmF6YXJpb1wiLFxuICAgIFwiTmVncmV0ZVwiLFxuICAgIFwiTmVncsOzblwiLFxuICAgIFwiTmV2w6FyZXpcIixcbiAgICBcIk5pZXRvXCIsXG4gICAgXCJOaWV2ZXNcIixcbiAgICBcIk5pw7FvXCIsXG4gICAgXCJOb3JpZWdhXCIsXG4gICAgXCJOw7rDsWV6XCIsXG4gICAgXCJPY2FtcG9cIixcbiAgICBcIk9jYXNpb1wiLFxuICAgIFwiT2Nob2FcIixcbiAgICBcIk9qZWRhXCIsXG4gICAgXCJPbGl2YXJlc1wiLFxuICAgIFwiT2xpdsOhcmV6XCIsXG4gICAgXCJPbGl2YXNcIixcbiAgICBcIk9saXZlcmFcIixcbiAgICBcIk9saXZvXCIsXG4gICAgXCJPbG1vc1wiLFxuICAgIFwiT2x2ZXJhXCIsXG4gICAgXCJPbnRpdmVyb3NcIixcbiAgICBcIk9xdWVuZG9cIixcbiAgICBcIk9yZMOzw7FlelwiLFxuICAgIFwiT3JlbGxhbmFcIixcbiAgICBcIk9ybmVsYXNcIixcbiAgICBcIk9yb3Njb1wiLFxuICAgIFwiT3JvemNvXCIsXG4gICAgXCJPcnRhXCIsXG4gICAgXCJPcnRlZ2FcIixcbiAgICBcIk9ydGl6XCIsXG4gICAgXCJPc29yaW9cIixcbiAgICBcIk90ZXJvXCIsXG4gICAgXCJPenVuYVwiLFxuICAgIFwiUGFiw7NuXCIsXG4gICAgXCJQYWNoZWNvXCIsXG4gICAgXCJQYWRpbGxhXCIsXG4gICAgXCJQYWRyw7NuXCIsXG4gICAgXCJQw6FlelwiLFxuICAgIFwiUGFnYW5cIixcbiAgICBcIlBhbGFjaW9zXCIsXG4gICAgXCJQYWxvbWlub1wiLFxuICAgIFwiUGFsb21vXCIsXG4gICAgXCJQYW50b2phXCIsXG4gICAgXCJQYXJlZGVzXCIsXG4gICAgXCJQYXJyYVwiLFxuICAgIFwiUGFydGlkYVwiLFxuICAgIFwiUGF0acOxb1wiLFxuICAgIFwiUGF6XCIsXG4gICAgXCJQZWRyYXphXCIsXG4gICAgXCJQZWRyb3phXCIsXG4gICAgXCJQZWxheW9cIixcbiAgICBcIlBlw7FhXCIsXG4gICAgXCJQZXJhbGVzXCIsXG4gICAgXCJQZXJhbHRhXCIsXG4gICAgXCJQZXJlYVwiLFxuICAgIFwiUGVyZXNcIixcbiAgICBcIlDDqXJlelwiLFxuICAgIFwiUGljaGFyZG9cIixcbiAgICBcIlBpw7FhXCIsXG4gICAgXCJQaW5lZGFcIixcbiAgICBcIlBpemFycm9cIixcbiAgICBcIlBvbGFuY29cIixcbiAgICBcIlBvbmNlXCIsXG4gICAgXCJQb3JyYXNcIixcbiAgICBcIlBvcnRpbGxvXCIsXG4gICAgXCJQb3NhZGFcIixcbiAgICBcIlByYWRvXCIsXG4gICAgXCJQcmVjaWFkb1wiLFxuICAgIFwiUHJpZXRvXCIsXG4gICAgXCJQdWVudGVcIixcbiAgICBcIlB1Z2FcIixcbiAgICBcIlB1bGlkb1wiLFxuICAgIFwiUXVlc2FkYVwiLFxuICAgIFwiUXVlemFkYVwiLFxuICAgIFwiUXVpw7FvbmVzXCIsXG4gICAgXCJRdWnDscOzbmV6XCIsXG4gICAgXCJRdWludGFuYVwiLFxuICAgIFwiUXVpbnRhbmlsbGFcIixcbiAgICBcIlF1aW50ZXJvXCIsXG4gICAgXCJRdWlyb3pcIixcbiAgICBcIlJhZWxcIixcbiAgICBcIlJhbcOtcmV6XCIsXG4gICAgXCJSYW3Ds25cIixcbiAgICBcIlJhbW9zXCIsXG4gICAgXCJSYW5nZWxcIixcbiAgICBcIlJhc2PDs25cIixcbiAgICBcIlJheWFcIixcbiAgICBcIlJhem9cIixcbiAgICBcIlJlZ2FsYWRvXCIsXG4gICAgXCJSZW5kw7NuXCIsXG4gICAgXCJSZW50ZXLDrWFcIixcbiAgICBcIlJlc8OpbmRlelwiLFxuICAgIFwiUmV5ZXNcIixcbiAgICBcIlJleW5hXCIsXG4gICAgXCJSZXlub3NvXCIsXG4gICAgXCJSaWNvXCIsXG4gICAgXCJSaW5jw7NuXCIsXG4gICAgXCJSaW9qYXNcIixcbiAgICBcIlLDrW9zXCIsXG4gICAgXCJSaXZhc1wiLFxuICAgIFwiUml2ZXJhXCIsXG4gICAgXCJSaXZlcm9cIixcbiAgICBcIlJvYmxlZG9cIixcbiAgICBcIlJvYmxlc1wiLFxuICAgIFwiUm9jaGFcIixcbiAgICBcIlJvZGFydGVcIixcbiAgICBcIlJvZHLDrWdlelwiLFxuICAgIFwiUm9kcsOtZ3VlelwiLFxuICAgIFwiUm9kcsOtcXVlelwiLFxuICAgIFwiUm9qYXNcIixcbiAgICBcIlJvam9cIixcbiAgICBcIlJvbGTDoW5cIixcbiAgICBcIlJvbMOzblwiLFxuICAgIFwiUm9tZXJvXCIsXG4gICAgXCJSb21vXCIsXG4gICAgXCJSb3F1ZVwiLFxuICAgIFwiUm9zYWRvXCIsXG4gICAgXCJSb3NhbGVzXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJSb3Nhc1wiLFxuICAgIFwiUm95YmFsXCIsXG4gICAgXCJSdWJpb1wiLFxuICAgIFwiUnVlbGFzXCIsXG4gICAgXCJSdWl6XCIsXG4gICAgXCJTYWF2ZWRyYVwiLFxuICAgIFwiU8OhZW56XCIsXG4gICAgXCJTYWl6XCIsXG4gICAgXCJTYWxhc1wiLFxuICAgIFwiU2FsYXphclwiLFxuICAgIFwiU2FsY2Vkb1wiLFxuICAgIFwiU2FsY2lkb1wiLFxuICAgIFwiU2FsZGHDsWFcIixcbiAgICBcIlNhbGRpdmFyXCIsXG4gICAgXCJTYWxnYWRvXCIsXG4gICAgXCJTYWxpbmFzXCIsXG4gICAgXCJTYW1hbmllZ29cIixcbiAgICBcIlNhbmFicmlhXCIsXG4gICAgXCJTYW5jaGVzXCIsXG4gICAgXCJTw6FuY2hlelwiLFxuICAgIFwiU2FuZG92YWxcIixcbiAgICBcIlNhbnRhY3J1elwiLFxuICAgIFwiU2FudGFuYVwiLFxuICAgIFwiU2FudGlhZ29cIixcbiAgICBcIlNhbnRpbGzDoW5cIixcbiAgICBcIlNhcmFiaWFcIixcbiAgICBcIlNhdWNlZGFcIixcbiAgICBcIlNhdWNlZG9cIixcbiAgICBcIlNlZGlsbG9cIixcbiAgICBcIlNlZ292aWFcIixcbiAgICBcIlNlZ3VyYVwiLFxuICAgIFwiU2Vww7psdmVkYVwiLFxuICAgIFwiU2VybmFcIixcbiAgICBcIlNlcnJhbm9cIixcbiAgICBcIlNlcnJhdG9cIixcbiAgICBcIlNldmlsbGFcIixcbiAgICBcIlNpZXJyYVwiLFxuICAgIFwiU2lzbmVyb3NcIixcbiAgICBcIlNvbGFub1wiLFxuICAgIFwiU29sw61zXCIsXG4gICAgXCJTb2xpelwiLFxuICAgIFwiU29sb3Jpb1wiLFxuICAgIFwiU29sb3J6YW5vXCIsXG4gICAgXCJTb3JpYVwiLFxuICAgIFwiU29zYVwiLFxuICAgIFwiU290ZWxvXCIsXG4gICAgXCJTb3RvXCIsXG4gICAgXCJTdcOhcmV6XCIsXG4gICAgXCJUYWZveWFcIixcbiAgICBcIlRhbWF5b1wiLFxuICAgIFwiVGFtZXpcIixcbiAgICBcIlRhcGlhXCIsXG4gICAgXCJUZWphZGFcIixcbiAgICBcIlRlamVkYVwiLFxuICAgIFwiVMOpbGxlelwiLFxuICAgIFwiVGVsbG9cIixcbiAgICBcIlRlcsOhblwiLFxuICAgIFwiVGVycmF6YXNcIixcbiAgICBcIlRpamVyaW5hXCIsXG4gICAgXCJUaXJhZG9cIixcbiAgICBcIlRvbGVkb1wiLFxuICAgIFwiVG9yb1wiLFxuICAgIFwiVG9ycmVzXCIsXG4gICAgXCJUw7NycmV6XCIsXG4gICAgXCJUb3ZhclwiLFxuICAgIFwiVHJlam9cIixcbiAgICBcIlRyZXZpw7FvXCIsXG4gICAgXCJUcnVqaWxsb1wiLFxuICAgIFwiVWxpYmFycmlcIixcbiAgICBcIlVsbG9hXCIsXG4gICAgXCJVcmJpbmFcIixcbiAgICBcIlVyZcOxYVwiLFxuICAgIFwiVXLDrWFzXCIsXG4gICAgXCJVcmliZVwiLFxuICAgIFwiVXJydXRpYVwiLFxuICAgIFwiVmFjYVwiLFxuICAgIFwiVmFsYWRlelwiLFxuICAgIFwiVmFsZMOpc1wiLFxuICAgIFwiVmFsZGV6XCIsXG4gICAgXCJWYWxkaXZpYVwiLFxuICAgIFwiVmFsZW5jaWFcIixcbiAgICBcIlZhbGVudMOtblwiLFxuICAgIFwiVmFsZW56dWVsYVwiLFxuICAgIFwiVmFsbGFkYXJlc1wiLFxuICAgIFwiVmFsbGVcIixcbiAgICBcIlZhbGxlam9cIixcbiAgICBcIlZhbGxlc1wiLFxuICAgIFwiVmFsdmVyZGVcIixcbiAgICBcIlZhbmVnYXNcIixcbiAgICBcIlZhcmVsYVwiLFxuICAgIFwiVmFyZ2FzXCIsXG4gICAgXCJWw6FzcXVlelwiLFxuICAgIFwiVsOhenF1ZXpcIixcbiAgICBcIlZlZ2FcIixcbiAgICBcIlZlbGFcIixcbiAgICBcIlZlbGFzY29cIixcbiAgICBcIlZlbMOhc3F1ZXpcIixcbiAgICBcIlZlbMOhenF1ZXpcIixcbiAgICBcIlbDqWxlelwiLFxuICAgIFwiVsOpbGl6XCIsXG4gICAgXCJWZW5lZ2FzXCIsXG4gICAgXCJWZXJhXCIsXG4gICAgXCJWZXJkdWdvXCIsXG4gICAgXCJWZXJkdXpjb1wiLFxuICAgIFwiVmVyZ2FyYVwiLFxuICAgIFwiVmllcmFcIixcbiAgICBcIlZpZ2lsXCIsXG4gICAgXCJWaWxsYVwiLFxuICAgIFwiVmlsbGFnw7NtZXpcIixcbiAgICBcIlZpbGxhbG9ib3NcIixcbiAgICBcIlZpbGxhbHBhbmRvXCIsXG4gICAgXCJWaWxsYW51ZXZhXCIsXG4gICAgXCJWaWxsYXJlYWxcIixcbiAgICBcIlZpbGxhcnJlYWxcIixcbiAgICBcIlZpbGxhc2XDsW9yXCIsXG4gICAgXCJWaWxsZWdhc1wiLFxuICAgIFwiWcOhw7FlelwiLFxuICAgIFwiWWJhcnJhXCIsXG4gICAgXCJaYW1icmFub1wiLFxuICAgIFwiWmFtb3JhXCIsXG4gICAgXCJaYW11ZGlvXCIsXG4gICAgXCJaYXBhdGFcIixcbiAgICBcIlphcmFnb3phXCIsXG4gICAgXCJaYXJhdGVcIixcbiAgICBcIlphdmFsYVwiLFxuICAgIFwiWmF5YXNcIixcbiAgICBcIlplbGF5YVwiLFxuICAgIFwiWmVwZWRhXCIsXG4gICAgXCJaw7rDsWlnYVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNyLlwiLFxuICAgIFwiU3JhLlwiLFxuICAgIFwiU3RhLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiU3IuXCIsXG4gICAgXCJJXCIsXG4gICAgXCJJSVwiLFxuICAgIFwiSUlJXCIsXG4gICAgXCJJVlwiLFxuICAgIFwiVlwiLFxuICAgIFwiTURcIixcbiAgICBcIkREU1wiLFxuICAgIFwiUGhEXCIsXG4gICAgXCJEVk1cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJKZWZlXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RvXCIsXG4gICAgICBcIkNvcnBvcmF0aXZvXCIsXG4gICAgICBcIkRpbsOhbm1pY29cIixcbiAgICAgIFwiRnV0dXJvXCIsXG4gICAgICBcIlByb2R1Y3RvXCIsXG4gICAgICBcIk5hY2lvbmFsXCIsXG4gICAgICBcIlJlZ2lvbmFsXCIsXG4gICAgICBcIkRpc3RyaXRvXCIsXG4gICAgICBcIkNlbnRyYWxcIixcbiAgICAgIFwiR2xvYmFsXCIsXG4gICAgICBcIkNsaWVudGVcIixcbiAgICAgIFwiSW52ZXJzb3JcIixcbiAgICAgIFwiSW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJIZXJlZGFkb1wiLFxuICAgICAgXCJBZGVsYW50ZVwiLFxuICAgICAgXCJJbnRlcm5vXCIsXG4gICAgICBcIkh1bWFub1wiLFxuICAgICAgXCJHZXJlbnRlXCIsXG4gICAgICBcIkRpcmVjdG9yXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1Y2lvbmVzXCIsXG4gICAgICBcIlByb2dyYW1hXCIsXG4gICAgICBcIk1hcmNhXCIsXG4gICAgICBcIlNlZ3VyaWRhZGFcIixcbiAgICAgIFwiSW52ZXN0aWdhY2nDs25cIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIk5vcm1hc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhY2nDs25cIixcbiAgICAgIFwiSW50ZWdyYWNpw7NuXCIsXG4gICAgICBcIkZ1bmNpb25hbGlkYWRcIixcbiAgICAgIFwiUmVzcHVlc3RhXCIsXG4gICAgICBcIlBhcmFkaWdtYVwiLFxuICAgICAgXCJUw6FjdGljYXNcIixcbiAgICAgIFwiSWRlbnRpZGFkXCIsXG4gICAgICBcIk1lcmNhZG9zXCIsXG4gICAgICBcIkdydXBvXCIsXG4gICAgICBcIkRpdmlzacOzblwiLFxuICAgICAgXCJBcGxpY2FjaW9uZXNcIixcbiAgICAgIFwiT3B0aW1pemFjacOzblwiLFxuICAgICAgXCJPcGVyYWNpb25lc1wiLFxuICAgICAgXCJJbmZyYWVzdHJ1Y3R1cmFcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tdW5pY2FjaW9uZXNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkNhbGlkYWRcIixcbiAgICAgIFwiU2VndXJvXCIsXG4gICAgICBcIk1vYmlsaWRhZFwiLFxuICAgICAgXCJDdWVudGFzXCIsXG4gICAgICBcIkRhdG9zXCIsXG4gICAgICBcIkNyZWF0aXZvXCIsXG4gICAgICBcIkNvbmZpZ3VyYWNpw7NuXCIsXG4gICAgICBcIkNvbnRhYmlsaWRhZFwiLFxuICAgICAgXCJJbnRlcmFjY2lvbmVzXCIsXG4gICAgICBcIkZhY3RvcmVzXCIsXG4gICAgICBcIlVzYWJpbGlkYWRcIixcbiAgICAgIFwiTcOpdHJpY2FzXCJcbiAgICBdLFxuICAgIFwiam9iXCI6IFtcbiAgICAgIFwiU3VwZXJ2aXNvclwiLFxuICAgICAgXCJBc29jaWFkb1wiLFxuICAgICAgXCJFamVjdXRpdm9cIixcbiAgICAgIFwiUmVsYWNjaW9uZXNcIixcbiAgICAgIFwiT2ZpY2lhbFwiLFxuICAgICAgXCJHZXJlbnRlXCIsXG4gICAgICBcIkluZ2VuaWVyb1wiLFxuICAgICAgXCJFc3BlY2lhbGlzdGFcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmFkb3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYWRvclwiLFxuICAgICAgXCJBcnF1aXRlY3RvXCIsXG4gICAgICBcIkFuYWxpc3RhXCIsXG4gICAgICBcIkRpc2XDsWFkb3JcIixcbiAgICAgIFwiUGxhbmlmaWNhZG9yXCIsXG4gICAgICBcIlTDqWNuaWNvXCIsXG4gICAgICBcIkZ1bmNpb25hcmlvXCIsXG4gICAgICBcIkRlc2Fycm9sbGFkb3JcIixcbiAgICAgIFwiUHJvZHVjdG9yXCIsXG4gICAgICBcIkNvbnN1bHRvclwiLFxuICAgICAgXCJBc2lzdGVudGVcIixcbiAgICAgIFwiRmFjaWxpdGFkb3JcIixcbiAgICAgIFwiQWdlbnRlXCIsXG4gICAgICBcIlJlcHJlc2VudGFudGVcIixcbiAgICAgIFwiRXN0cmF0ZWdhXCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZXMucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiOSMjLSMjIy0jIyNcIixcbiAgICBcIjkjIy4jIyMuIyMjXCIsXG4gICAgXCI5IyMgIyMjICMjI1wiLFxuICAgIFwiOSMjIyMjIyMjXCJcbiAgXVxufTtcbmVzLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCI2IyMtIyMjLSMjI1wiLFxuICAgIFwiNiMjLiMjIy4jIyNcIixcbiAgICBcIjYjIyAjIyMgIyMjXCIsXG4gICAgXCI2IyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGZhID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZmE7XG5mYS50aXRsZSA9IFwiRmFyc2lcIjtcbmZhLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLYotio2KfZhiDYr9iu2KpcIixcbiAgICBcItii2KjYqtuM2YZcIixcbiAgICBcItii2KrZiNiz2KdcIixcbiAgICBcItii2YHYsVwiLFxuICAgIFwi2KLZgdix2Ycg2K/YrtiqXCIsXG4gICAgXCLYotiw2LHZhtmI2LTigIxcIixcbiAgICBcItii2LDbjNmGXCIsXG4gICAgXCLYotix2KfZh1wiLFxuICAgIFwi2KLYsdiy2YhcIixcbiAgICBcItii2LHYtFwiLFxuICAgIFwi2KLYsdiq24zZhlwiLFxuICAgIFwi2KLYsdiq2KfZhVwiLFxuICAgIFwi2KLYsdiq2YXZhlwiLFxuICAgIFwi2KLYsdi02KfZhVwiLFxuICAgIFwi2KLYsdmF2KfZhlwiLFxuICAgIFwi2KLYsdmF24zZhlwiLFxuICAgIFwi2KLYsdmF24zYqtinXCIsXG4gICAgXCLYotix24zYpyDZgdixXCIsXG4gICAgXCLYotix24zYp1wiLFxuICAgIFwi2KLYsduM2Kcg2YXZh9ixXCIsXG4gICAgXCLYotix24zZhlwiLFxuICAgIFwi2KLYstin2K/Zh1wiLFxuICAgIFwi2KLYstix2YVcIixcbiAgICBcItii2LLYsdmF2K/YrtiqXCIsXG4gICAgXCLYotiy24zYqtinXCIsXG4gICAgXCLYotmG2KfZh9uM2KrYp1wiLFxuICAgIFwi2KLZiNmG2q9cIixcbiAgICBcItii2YfZiFwiLFxuICAgIFwi2KLbjNiv2KdcIixcbiAgICBcItin2KrYs9iyXCIsXG4gICAgXCLYp9iu2KrYsVwiLFxuICAgIFwi2KfYsdivXCIsXG4gICAgXCLYp9ix2K8g2LTbjNixXCIsXG4gICAgXCLYp9ix2K/ZiNin2YZcIixcbiAgICBcItin2LHamNmGXCIsXG4gICAgXCLYp9ix2pjZhtqvXCIsXG4gICAgXCLYp9ix2LPZhNin2YZcIixcbiAgICBcItin2LHYutmI2KfZhlwiLFxuICAgIFwi2KfYsdmF2LrYp9mGXCIsXG4gICAgXCLYp9ix2YbZiNin2LJcIixcbiAgICBcItin2LHZiNin2YbZh1wiLFxuICAgIFwi2KfYs9iq2LFcIixcbiAgICBcItin2LPZgdmG2K/bjNin2LFcIixcbiAgICBcItin2LTaqdin2YZcIixcbiAgICBcItin2LTaqdio2YjYs1wiLFxuICAgIFwi2KfZgdiz2KfZhtmHXCIsXG4gICAgXCLYp9mB2LPZiNmGXCIsXG4gICAgXCLYp9mB2LTbjNmGXCIsXG4gICAgXCLYp9mF24zYr1wiLFxuICAgIFwi2KfZhtmI2LQgKOKAjCDYotmG2YjYtNinIClcIixcbiAgICBcItin2YbZiNi02LHZiNin2YZcIixcbiAgICBcItin2YjYsdmG2q9cIixcbiAgICBcItin2YjamNmGXCIsXG4gICAgXCLYp9mI2LPYqtinXCIsXG4gICAgXCLYp9mH2YjYsdinXCIsXG4gICAgXCLYp9uM2KfYslwiLFxuICAgIFwi2KfbjNix2KfZhlwiLFxuICAgIFwi2KfbjNix2KfZhtiv2K7YqlwiLFxuICAgIFwi2KfbjNix2KxcIixcbiAgICBcItin24zYstiv24zYp9ixXCIsXG4gICAgXCLYqNin2KjaqVwiLFxuICAgIFwi2KjYp9m+2YjaqVwiLFxuICAgIFwi2KjYp9ix2KjYr1wiLFxuICAgIFwi2KjYp9ix2YXYp9mGXCIsXG4gICAgXCLYqNin2YXYr9in2K9cIixcbiAgICBcItio2KfZhdi02KfYr1wiLFxuICAgIFwi2KjYp9mG2YhcIixcbiAgICBcItio2K7YqtuM2KfYsVwiLFxuICAgIFwi2KjYsdin2YbZiNi0XCIsXG4gICAgXCLYqNix2K/bjNinXCIsXG4gICAgXCLYqNix2LLZiFwiLFxuICAgIFwi2KjYsdiy2YjbjNmHXCIsXG4gICAgXCLYqNix2LLbjNmGXCIsXG4gICAgXCLYqNix2YXaqVwiLFxuICAgIFwi2KjYstix2q/ZhdmH2LFcIixcbiAgICBcItio2YbZgdi02YdcIixcbiAgICBcItio2YjamNin2YZcIixcbiAgICBcItio2YjbjNin2YZcIixcbiAgICBcItio2YfYp9ixXCIsXG4gICAgXCLYqNmH2KfYsdqpXCIsXG4gICAgXCLYqNmH2KfYsdmHXCIsXG4gICAgXCLYqNmH2KrYp9i0XCIsXG4gICAgXCLYqNmH2K/Yp9ivXCIsXG4gICAgXCLYqNmH2LHYp9mFXCIsXG4gICAgXCLYqNmH2K/bjNizXCIsXG4gICAgXCLYqNmH2LHYrlwiLFxuICAgIFwi2KjZh9ix2Ybar1wiLFxuICAgIFwi2KjZh9ix2YjYslwiLFxuICAgIFwi2KjZh9iy2KfYr1wiLFxuICAgIFwi2KjZh9i02KfYr1wiLFxuICAgIFwi2KjZh9mF2YZcIixcbiAgICBcItio2YfZhtin2LJcIixcbiAgICBcItio2YfZhtin2YVcIixcbiAgICBcItio2YfZhtmI2K9cIixcbiAgICBcItio2YfZhtmI2LRcIixcbiAgICBcItio24zYqtinXCIsXG4gICAgXCLYqNuM2pjZhlwiLFxuICAgIFwi2b7Yp9ix2LPYp1wiLFxuICAgIFwi2b7Yp9qp2KfZhlwiLFxuICAgIFwi2b7Yp9qp2KrZhlwiLFxuICAgIFwi2b7Yp9qp2K/YrtiqXCIsXG4gICAgXCLZvtin2YbYqtmHINiiXCIsXG4gICAgXCLZvtiv2LHYp9mFXCIsXG4gICAgXCLZvtix2KrZiFwiLFxuICAgIFwi2b7Ysdi02Ybar1wiLFxuICAgIFwi2b7Ysdiq2YhcIixcbiAgICBcItm+2LHYs9iq2YhcIixcbiAgICBcItm+2LHZiNuM2LJcIixcbiAgICBcItm+2LHYr9uM2LNcIixcbiAgICBcItm+2LHZh9in2YVcIixcbiAgICBcItm+2pjZhdin2YZcIixcbiAgICBcItm+2pjZiNinXCIsXG4gICAgXCLZvtix2YbbjNinXCIsXG4gICAgXCLZvti02Ybar1wiLFxuICAgIFwi2b7YsdmI2KfZhtmHXCIsXG4gICAgXCLZvtix2YjbjNmGXCIsXG4gICAgXCLZvtix24xcIixcbiAgICBcItm+2LHbjNqG2YfYsVwiLFxuICAgIFwi2b7YsduM2K/YrtiqXCIsXG4gICAgXCLZvtix24zYs9inXCIsXG4gICAgXCLZvtix2YbYp9iyXCIsXG4gICAgXCLZvtix24zZiNi0XCIsXG4gICAgXCLZvtix24zYp1wiLFxuICAgIFwi2b7ZiNm+2qlcIixcbiAgICBcItm+2YjYsdin2YZcIixcbiAgICBcItm+2YjYsdin2YbYr9iu2KpcIixcbiAgICBcItm+2YjYsduM2KdcIixcbiAgICBcItm+2YjZhNin2K9cIixcbiAgICBcItm+2YjbjNinXCIsXG4gICAgXCLZvtmI2YbZh1wiLFxuICAgIFwi2b7bjNin2YVcIixcbiAgICBcItm+24zYsdmI2LJcIixcbiAgICBcItm+24zZhdin2YZcIixcbiAgICBcItiq2KfYqNin2YZcIixcbiAgICBcItiq2KfYqNin2YbYr9iu2KpcIixcbiAgICBcItiq2KfYrNuMXCIsXG4gICAgXCLYqtin2LHYp1wiLFxuICAgIFwi2KrYp9mI24zYp9ixXCIsXG4gICAgXCLYqtix2KfZhtmHXCIsXG4gICAgXCLYqtmG2KfYslwiLFxuICAgIFwi2KrZiNix2KfZhlwiLFxuICAgIFwi2KrZiNix2KfZhtiv2K7YqlwiLFxuICAgIFwi2KrZiNix2KxcIixcbiAgICBcItiq2YjYsdiq2qlcIixcbiAgICBcItiq2YjZgdin2YZcIixcbiAgICBcItiq2YjamNin2YRcIixcbiAgICBcItiq24zYsSDYr9in2K9cIixcbiAgICBcItiq24zZhtinXCIsXG4gICAgXCLYqtuM2YbZiFwiLFxuICAgIFwi2KzYp9io2KfZhlwiLFxuICAgIFwi2KzYp9mF24zZhlwiLFxuICAgIFwi2KzYp9mI24zYr1wiLFxuICAgIFwi2KzYsduM2LHZh1wiLFxuICAgIFwi2KzZhdi024zYr1wiLFxuICAgIFwi2KzZiNin2YZcIixcbiAgICBcItis2YjbjNinXCIsXG4gICAgXCLYrNmH2KfZhlwiLFxuICAgIFwi2KzZh9in2YbYqNiu2KpcIixcbiAgICBcItis2YfYp9mG2KjYrti0XCIsXG4gICAgXCLYrNmH2KfZhtiv2KfYsVwiLFxuICAgIFwi2KzZh9in2Ybar9uM2LFcIixcbiAgICBcItis2YfYp9mGINio2KfZhtmIXCIsXG4gICAgXCLYrNmH2KfZhtiv2K7YqlwiLFxuICAgIFwi2KzZh9in2YYg2YbYp9iyXCIsXG4gICAgXCLYrNuM2LHYp9mGXCIsXG4gICAgXCLahtin2KjaqVwiLFxuICAgIFwi2obYp9mE2KfaqVwiLFxuICAgIFwi2obYp9mI2LRcIixcbiAgICBcItqG2KrYsdinXCIsXG4gICAgXCLahtmI2KjbjNmGXCIsXG4gICAgXCLahtmH2LHYstin2K9cIixcbiAgICBcItiu2KfZiNix2K/YrtiqXCIsXG4gICAgXCLYrtiv2KfYr9in2K9cIixcbiAgICBcItiu2K/Yp9uM2KfYsVwiLFxuICAgIFwi2K7YsdmFXCIsXG4gICAgXCLYrtix2YXYr9iu2KpcIixcbiAgICBcItiu2LPYsdmIXCIsXG4gICAgXCLYrti02KfbjNin2LFcIixcbiAgICBcItiu2YjYsdi024zYr1wiLFxuICAgIFwi2K/Yp9iv2YXZh9ixXCIsXG4gICAgXCLYr9in2LHYp1wiLFxuICAgIFwi2K/Yp9ix2KfYqFwiLFxuICAgIFwi2K/Yp9ix24zYp1wiLFxuICAgIFwi2K/Yp9ix24zZiNi0XCIsXG4gICAgXCLYr9in2YbZiNi0XCIsXG4gICAgXCLYr9in2YjYseKAjFwiLFxuICAgIFwi2K/Yp9uM2KfZhlwiLFxuICAgIFwi2K/YsduM2KdcIixcbiAgICBcItiv2YQg2KLYsdinXCIsXG4gICAgXCLYr9mEINii2YjbjNiyXCIsXG4gICAgXCLYr9mE2KfYsdin2YVcIixcbiAgICBcItiv2YQg2KfZhtqv24zYslwiLFxuICAgIFwi2K/ZhNio2LFcIixcbiAgICBcItiv2YTYqNmG2K9cIixcbiAgICBcItiv2YTYsdio2KdcIixcbiAgICBcItiv2YTYtNin2K9cIixcbiAgICBcItiv2YTaqdi0XCIsXG4gICAgXCLYr9mE2YbYp9iyXCIsXG4gICAgXCLYr9mE2YbZiNin2LJcIixcbiAgICBcItiv2YjYsdi02KfYs9ioXCIsXG4gICAgXCLYr9mG24zYp1wiLFxuICAgIFwi2K/bjNin2KfaqdmIXCIsXG4gICAgXCLYr9uM2KfZhtmI2LRcIixcbiAgICBcItiv24zYqNinXCIsXG4gICAgXCLYr9uM2KjYpyDYr9iu2KpcIixcbiAgICBcItix2KfYqNmIXCIsXG4gICAgXCLYsdin2KjbjNmGXCIsXG4gICAgXCLYsdin2K/YqNin2YbZiFwiLFxuICAgIFwi2LHYp9iv2YXYp9mGXCIsXG4gICAgXCLYsdin2LLYqNin2YZcIixcbiAgICBcItix2KfamNin2YbZh1wiLFxuICAgIFwi2LHYp9iz2KdcIixcbiAgICBcItix2KfZhdiq24zZhlwiLFxuICAgIFwi2LHYp9mF2LRcIixcbiAgICBcItix2KfZhdi02q/YsVwiLFxuICAgIFwi2LHYp9mF2YjZhtinXCIsXG4gICAgXCLYsdin2YXbjNin2LFcIixcbiAgICBcItix2KfZhduM2YTYp1wiLFxuICAgIFwi2LHYp9mF24zZhlwiLFxuICAgIFwi2LHYp9mI24zYp9ixXCIsXG4gICAgXCLYsdqY24zZhtinXCIsXG4gICAgXCLYsdiu2b7Yp9qpXCIsXG4gICAgXCLYsdiu2LPYp9ixXCIsXG4gICAgXCLYsdiu2LTYp9mG2YdcIixcbiAgICBcItix2K7YtNmG2K/Zh1wiLFxuICAgIFwi2LHYstmF24zYp9ixXCIsXG4gICAgXCLYsdiz2KrZhVwiLFxuICAgIFwi2LHaqdiz2KfZhtinXCIsXG4gICAgXCLYsdmI2KjbjNmG2KdcIixcbiAgICBcItix2YjYr9in2KjZh1wiLFxuICAgIFwi2LHZiNiy2KjZh1wiLFxuICAgIFwi2LHZiNi02YbaqVwiLFxuICAgIFwi2LHZiNmG2KfaqVwiLFxuICAgIFwi2LHZh9in2YVcIixcbiAgICBcItix2YfbjFwiLFxuICAgIFwi2LHbjNio2KfYsVwiLFxuICAgIFwi2LHYp9iz2b7bjNmG2KdcIixcbiAgICBcItiy2KfYr9io2K7YqlwiLFxuICAgIFwi2LLYp9ivINio2YdcIixcbiAgICBcItiy2KfYryDahtmH2LFcIixcbiAgICBcItiy2KfYryDZgdixXCIsXG4gICAgXCLYstin2YRcIixcbiAgICBcItiy2KfYr9mF2KfYs9ioXCIsXG4gICAgXCLYstin2YjYp1wiLFxuICAgIFwi2LLYsdiv2LTYqlwiLFxuICAgIFwi2LLYsdmG2q/Yp9ixXCIsXG4gICAgXCLYstix24xcIixcbiAgICBcItiy2LHbjNmGXCIsXG4gICAgXCLYstix24zZhtmHXCIsXG4gICAgXCLYstmF2KfZhtmHXCIsXG4gICAgXCLYstmI2YbYp1wiLFxuICAgIFwi2LLbjNio2KdcIixcbiAgICBcItiy24zYqNin2LFcIixcbiAgICBcItiy24zZhdinXCIsXG4gICAgXCLYstuM2YbZiFwiLFxuICAgIFwi2pjYp9mE2YdcIixcbiAgICBcItqY2KfZhNin2YZcIixcbiAgICBcItqY24zYp9ixXCIsXG4gICAgXCLamNuM2YbYp1wiLFxuICAgIFwi2pjbjNmI2KfYsVwiLFxuICAgIFwi2LPYp9ix2KdcIixcbiAgICBcItiz2KfYsdqpXCIsXG4gICAgXCLYs9in2LHZhtqvXCIsXG4gICAgXCLYs9in2LHZh1wiLFxuICAgIFwi2LPYp9iz2KfZhlwiLFxuICAgIFwi2LPYp9i62LFcIixcbiAgICBcItiz2KfZhVwiLFxuICAgIFwi2LPYp9mF2KfZhlwiLFxuICAgIFwi2LPYp9mG2KdcIixcbiAgICBcItiz2KfZhtin2LJcIixcbiAgICBcItiz2KfZhtuM2KfYsVwiLFxuICAgIFwi2LPYp9mI24zYslwiLFxuICAgIFwi2LPYp9mH24xcIixcbiAgICBcItiz2KfbjNmG2KdcIixcbiAgICBcItiz2KfbjNmHXCIsXG4gICAgXCLYs9m+2YbYqtinXCIsXG4gICAgXCLYs9m+2YbYr1wiLFxuICAgIFwi2LPZvtmH2LFcIixcbiAgICBcItiz2b7Zh9ix2K/Yp9ivXCIsXG4gICAgXCLYs9m+24zYr9in2LFcIixcbiAgICBcItiz2b7bjNivINio2KfZhtmIXCIsXG4gICAgXCLYs9m+24zYr9mHXCIsXG4gICAgXCLYs9iq2KfYsdmHXCIsXG4gICAgXCLYs9iq24xcIixcbiAgICBcItiz2LHYp9mB2LHYp9iyXCIsXG4gICAgXCLYs9ix2YjYsVwiLFxuICAgIFwi2LPYsdmI2LRcIixcbiAgICBcItiz2LHZiNixXCIsXG4gICAgXCLYs9mI2KjYp1wiLFxuICAgIFwi2LPZiNio2KfYsVwiLFxuICAgIFwi2LPZhtio2YTZh1wiLFxuICAgIFwi2LPZiNiv2KfYqNmHXCIsXG4gICAgXCLYs9mI2LHbjFwiLFxuICAgIFwi2LPZiNix2YZcIixcbiAgICBcItiz2YjYsdmG2KdcIixcbiAgICBcItiz2YjYstin2YZcIixcbiAgICBcItiz2YjYstmHXCIsXG4gICAgXCLYs9mI2LPZhlwiLFxuICAgIFwi2LPZiNmF2KfYsVwiLFxuICAgIFwi2LPZiNmE2KfZhlwiLFxuICAgIFwi2LPZiNmE2YXYp9iyXCIsXG4gICAgXCLYs9mI2q/ZhtivXCIsXG4gICAgXCLYs9mH2LHYp9ioXCIsXG4gICAgXCLYs9mH2LHZh1wiLFxuICAgIFwi2LPZh9mG2K9cIixcbiAgICBcItiz24zYp9mF2qlcIixcbiAgICBcItiz24zYp9mI2LRcIixcbiAgICBcItiz24zYqNmI2KjZhyDigIxcIixcbiAgICBcItiz24zZhdinXCIsXG4gICAgXCLYs9uM2YXYr9iu2KpcIixcbiAgICBcItiz24zZhtinXCIsXG4gICAgXCLYs9uM2YXbjNmGXCIsXG4gICAgXCLYs9uM2YXbjNmGINiv2K7YqlwiLFxuICAgIFwi2LTYp9m+2LHaqVwiLFxuICAgIFwi2LTYp9iv24xcIixcbiAgICBcIti02KfYr9mF2YfYsVwiLFxuICAgIFwi2LTYp9ix2KfZhlwiLFxuICAgIFwi2LTYp9mH2b7ZiNixXCIsXG4gICAgXCLYtNin2YfYr9iu2KpcIixcbiAgICBcIti02KfZh9ix2K5cIixcbiAgICBcIti02KfZh9uM2YZcIixcbiAgICBcIti02KfZh9uM2YbYr9iu2KpcIixcbiAgICBcIti02KfbjNiz2KrZh1wiLFxuICAgIFwi2LTYqNin2YfZhtqvXCIsXG4gICAgXCLYtNioINio2YhcIixcbiAgICBcIti02KjYr9uM2LJcIixcbiAgICBcIti02KjZhtmFXCIsXG4gICAgXCLYtNix2KfYsdmHXCIsXG4gICAgXCLYtNix2YXbjNmGXCIsXG4gICAgXCLYtNix2YjbjNmGXCIsXG4gICAgXCLYtNqp2YjZgdmHXCIsXG4gICAgXCLYtNqp2YHYqtmHXCIsXG4gICAgXCLYtNmF2LTYp9ivXCIsXG4gICAgXCLYtNmF24zZhlwiLFxuICAgIFwi2LTZiNin2YZcIixcbiAgICBcIti02YXbjNmE2KdcIixcbiAgICBcIti02YjYsdin2Ybar9uM2LJcIixcbiAgICBcIti02YjYsduMXCIsXG4gICAgXCLYtNmH2KfYqFwiLFxuICAgIFwi2LTZh9io2KfYsVwiLFxuICAgIFwi2LTZh9io2KfYslwiLFxuICAgIFwi2LTZh9io2KfZhFwiLFxuICAgIFwi2LTZh9m+2LFcIixcbiAgICBcIti02YfYr9in2K9cIixcbiAgICBcIti02YfYsdii2LHYp1wiLFxuICAgIFwi2LTZh9ix2KfZhVwiLFxuICAgIFwi2LTZh9ix2KjYp9mG2YhcIixcbiAgICBcIti02YfYsdiy2KfYr1wiLFxuICAgIFwi2LTZh9ix2YbYp9iyXCIsXG4gICAgXCLYtNmH2LHZhtmI2LRcIixcbiAgICBcIti02YfYsdmHXCIsXG4gICAgXCLYtNmH2LHbjNin2LFcIixcbiAgICBcIti02YfYsdiy2KfYr1wiLFxuICAgIFwi2LTZh9mE2KdcIixcbiAgICBcIti02YfZhtmI2KfYslwiLFxuICAgIFwi2LTZh9uM2YZcIixcbiAgICBcIti024zYqNinXCIsXG4gICAgXCLYtNuM2K/Yp1wiLFxuICAgIFwi2LTbjNiv2YdcIixcbiAgICBcIti024zYsdiv2YRcIixcbiAgICBcIti024zYsdiy2KfYr1wiLFxuICAgIFwi2LTbjNix2Ybar1wiLFxuICAgIFwi2LTbjNix2YhcIixcbiAgICBcIti024zYsduM2YYg2K/YrtiqXCIsXG4gICAgXCLYtNuM2YXYp1wiLFxuICAgIFwi2LTbjNmG2KdcIixcbiAgICBcIti024zYsduM2YZcIixcbiAgICBcIti024zZiNinXCIsXG4gICAgXCLYt9mI2LNcIixcbiAgICBcIti32YjYt9uMXCIsXG4gICAgXCLYt9mH2YXYp9iz2KhcIixcbiAgICBcIti32YfZhdmI2LHYq1wiLFxuICAgIFwi2LrZiNi62KdcIixcbiAgICBcIti62YbahtmHXCIsXG4gICAgXCLZgdiq2KfZhtmHXCIsXG4gICAgXCLZgdiv2KdcIixcbiAgICBcItmB2LHYp9iyXCIsXG4gICAgXCLZgdix2KfZhdix2LJcIixcbiAgICBcItmB2LHYp9mG2qlcIixcbiAgICBcItmB2LHYp9mH2KfZhlwiLFxuICAgIFwi2YHYsdio2K9cIixcbiAgICBcItmB2LHYqNi6XCIsXG4gICAgXCLZgdix2KzYp9ivXCIsXG4gICAgXCLZgdix2K5cIixcbiAgICBcItmB2LHYriDZvtuMXCIsXG4gICAgXCLZgdix2K4g2K/Yp9ivXCIsXG4gICAgXCLZgdix2K4g2LHZiFwiLFxuICAgIFwi2YHYsdiuINiy2KfYr1wiLFxuICAgIFwi2YHYsdiuINmE2YLYp1wiLFxuICAgIFwi2YHYsdiuINmF2YfYsVwiLFxuICAgIFwi2YHYsdiv2KfYr1wiLFxuICAgIFwi2YHYsdiv24zYs1wiLFxuICAgIFwi2YHYsduM2YZcIixcbiAgICBcItmB2LHYstin2K9cIixcbiAgICBcItmB2LHYstin2YVcIixcbiAgICBcItmB2LHYstin2YZcIixcbiAgICBcItmB2LHYstin2YbZh1wiLFxuICAgIFwi2YHYsdiy24zZhlwiLFxuICAgIFwi2YHYsdi02KfYr1wiLFxuICAgIFwi2YHYsdi02KrZh1wiLFxuICAgIFwi2YHYsdi024zYr1wiLFxuICAgIFwi2YHYsdmF2KfZhlwiLFxuICAgIFwi2YHYsdmG2KfYslwiLFxuICAgIFwi2YHYsdmG2q/bjNizXCIsXG4gICAgXCLZgdix2YbZiNivXCIsXG4gICAgXCLZgdix2YbZiNi0XCIsXG4gICAgXCLZgdix2YbbjNinXCIsXG4gICAgXCLZgdix2YjYqtmGXCIsXG4gICAgXCLZgdix2YjYr1wiLFxuICAgIFwi2YHYsdmI2LJcIixcbiAgICBcItmB2LHZiNiy2KfZhlwiLFxuICAgIFwi2YHYsdmI2LLYtFwiLFxuICAgIFwi2YHYsdmI2LLZhtiv2YdcIixcbiAgICBcItmB2LHZiNi6XCIsXG4gICAgXCLZgdix2YfYp9ivXCIsXG4gICAgXCLZgdix2YfZhtqvXCIsXG4gICAgXCLZgdix2YfZiNivXCIsXG4gICAgXCLZgdix2KjYp9ixXCIsXG4gICAgXCLZgdix24zYqNinXCIsXG4gICAgXCLZgdix24zYr1wiLFxuICAgIFwi2YHYsduM2K/YrtiqXCIsXG4gICAgXCLZgdix24zYr9mI2YZcIixcbiAgICBcItmB2LHbjNmF2KfZhlwiLFxuICAgIFwi2YHYsduM2YbYp9iyXCIsXG4gICAgXCLZgdix24zZhtmI2LRcIixcbiAgICBcItmB2LHbjNmI2LRcIixcbiAgICBcItmB24zYsdmI2LJcIixcbiAgICBcItmB24zYsdmI2LLZh1wiLFxuICAgIFwi2YLYp9io2YjYs1wiLFxuICAgIFwi2YLYqNin2K9cIixcbiAgICBcItmC2K/Ys9uMXCIsXG4gICAgXCLaqdin2KjYp9mGXCIsXG4gICAgXCLaqdin2KjZiNqpXCIsXG4gICAgXCLaqdin2LHYp1wiLFxuICAgIFwi2qnYp9ix2YhcIixcbiAgICBcItqp2KfYsdin2qnZiFwiLFxuICAgIFwi2qnYp9mF2KjYrtiqXCIsXG4gICAgXCLaqdin2YXYqNiu2LRcIixcbiAgICBcItqp2KfZhdio24zYslwiLFxuICAgIFwi2qnYp9mF2KzZiFwiLFxuICAgIFwi2qnYp9mF2K/bjNmGXCIsXG4gICAgXCLaqdin2YXYsdin2YZcIixcbiAgICBcItqp2KfZhdix2KfZiNinXCIsXG4gICAgXCLaqdin2YXaqVwiLFxuICAgIFwi2qnYp9mF2YbZiNi0XCIsXG4gICAgXCLaqdin2YXbjNin2LFcIixcbiAgICBcItqp2KfZhtuM2KfYsVwiLFxuICAgIFwi2qnYp9mI2YjYs1wiLFxuICAgIFwi2qnYp9mI2YdcIixcbiAgICBcItqp2KrYp9uM2YjZhlwiLFxuICAgIFwi2qnYsdi02YXZh1wiLFxuICAgIFwi2qnYs9ix24xcIixcbiAgICBcItqp2YTYp9mE2YdcIixcbiAgICBcItqp2YXYqNmI2KzbjNmHXCIsXG4gICAgXCLaqdmI2LTYp1wiLFxuICAgIFwi2qnZh9io2K9cIixcbiAgICBcItqp2YfYsdin2YVcIixcbiAgICBcItqp2YfYstin2K9cIixcbiAgICBcItqp24zYp9ix2LRcIixcbiAgICBcItqp24zYp9mGXCIsXG4gICAgXCLaqduM2KfZhtinXCIsXG4gICAgXCLaqduM2KfZhtqG2YfYsVwiLFxuICAgIFwi2qnbjNin2YbYr9iu2KpcIixcbiAgICBcItqp24zYp9mG2YjYtFwiLFxuICAgIFwi2qnbjNin2YjYtFwiLFxuICAgIFwi2qnbjNiu2LPYsdmIXCIsXG4gICAgXCLaqduM2YLYqNin2K9cIixcbiAgICBcItqp24zaqdin2YjZiNizXCIsXG4gICAgXCLaqduM2YjYp9mGXCIsXG4gICAgXCLaqduM2YjYp9mGINiv2K7YqlwiLFxuICAgIFwi2qnbjNmI2YXYsdirXCIsXG4gICAgXCLaqduM2YfYp9mGXCIsXG4gICAgXCLaqduM2KfZhtiv2K7YqlwiLFxuICAgIFwi2qnbjNmH2KfZhtmHXCIsXG4gICAgXCLar9ix2K8g2KLZgdix24zYr1wiLFxuICAgIFwi2q/Ysdiv2KfZhlwiLFxuICAgIFwi2q/Ysdi02KdcIixcbiAgICBcItqv2LHYtNin2LPYqFwiLFxuICAgIFwi2q/Ysdi024zZhlwiLFxuICAgIFwi2q/Ysdqv24zZhlwiLFxuICAgIFwi2q/YstmEXCIsXG4gICAgXCLar9i02KrYp9iz2KhcIixcbiAgICBcItqv2LTYs9ioXCIsXG4gICAgXCLar9i02LPYqCDYqNin2YbZiFwiLFxuICAgIFwi2q/ZhFwiLFxuICAgIFwi2q/ZhCDYotiw24zZhlwiLFxuICAgIFwi2q/ZhCDYotix2KfigIxcIixcbiAgICBcItqv2YTYp9ix2YdcIixcbiAgICBcItqv2YQg2KfZgdix2YjYslwiLFxuICAgIFwi2q/ZhNin2YTZh1wiLFxuICAgIFwi2q/ZhCDYp9mG2K/Yp9mFXCIsXG4gICAgXCLar9mE2KfZiNuM2LJcIixcbiAgICBcItqv2YTYqNin2K9cIixcbiAgICBcItqv2YTYqNin2LFcIixcbiAgICBcItqv2YTYqNin2YVcIixcbiAgICBcItqv2YTYqNin2YZcIixcbiAgICBcItqv2YTYqNin2YbZiFwiLFxuICAgIFwi2q/ZhNio2LHar1wiLFxuICAgIFwi2q/ZhNio2YhcIixcbiAgICBcItqv2YTYqNmH2KfYsVwiLFxuICAgIFwi2q/ZhNio24zYslwiLFxuICAgIFwi2q/ZhNm+2KfYsdmHXCIsXG4gICAgXCLar9mE2b7YsVwiLFxuICAgIFwi2q/ZhNm+2LHbjFwiLFxuICAgIFwi2q/ZhNm+2YjYtFwiLFxuICAgIFwi2q/ZhCDZvtmI2YbZh1wiLFxuICAgIFwi2q/ZhNqG24zZhlwiLFxuICAgIFwi2q/ZhNiv2K7YqlwiLFxuICAgIFwi2q/ZhNiv24zYs1wiLFxuICAgIFwi2q/ZhNix2KjYp1wiLFxuICAgIFwi2q/ZhNix2K5cIixcbiAgICBcItqv2YTYsdmG2q9cIixcbiAgICBcItqv2YTYsdmIXCIsXG4gICAgXCLar9mE2LTZhlwiLFxuICAgIFwi2q/ZhNix24zYslwiLFxuICAgIFwi2q/ZhNiy2KfYr1wiLFxuICAgIFwi2q/ZhNiy2KfYsVwiLFxuICAgIFwi2q/ZhNiz2KdcIixcbiAgICBcItqv2YTYtNuM2K9cIixcbiAgICBcItqv2YTZhtin2LFcIixcbiAgICBcItqv2YTZhtin2LJcIixcbiAgICBcItqv2YTZhtiz2KdcIixcbiAgICBcItqv2YTZhtmI2KfYslwiLFxuICAgIFwi2q/ZhNmG2YjYtFwiLFxuICAgIFwi2q/ZhNuMXCIsXG4gICAgXCLar9mI2K/YsdiyXCIsXG4gICAgXCLar9mI2YXYp9iq2YhcIixcbiAgICBcItqv2YfYsSDahtmH2LFcIixcbiAgICBcItqv2YjZh9ixINmG2KfYslwiLFxuICAgIFwi2q/bjNiq24xcIixcbiAgICBcItqv24zYs9mIXCIsXG4gICAgXCLar9uM2YTYr9inXCIsXG4gICAgXCLar9uM2YhcIixcbiAgICBcItmE2KfYr9mGXCIsXG4gICAgXCLZhNin2YTZh1wiLFxuICAgIFwi2YTYp9mE2Ycg2LHYrlwiLFxuICAgIFwi2YTYp9mE2Ycg2K/YrtiqXCIsXG4gICAgXCLZhNio2K7ZhtivXCIsXG4gICAgXCLZhNmC2KfYoVwiLFxuICAgIFwi2YTZiNmF2KfZhtinXCIsXG4gICAgXCLZhNmH2LHYp9iz2KhcIixcbiAgICBcItmF2KfYsdin2YRcIixcbiAgICBcItmF2KfYsduMXCIsXG4gICAgXCLZhdin2LLbjNin2LFcIixcbiAgICBcItmF2Kfaqdin2YZcIixcbiAgICBcItmF2KfZhdqpXCIsXG4gICAgXCLZhdin2YbYp1wiLFxuICAgIFwi2YXYp9mG2K/Yp9mG2KdcIixcbiAgICBcItmF2KfZhtmI2LRcIixcbiAgICBcItmF2KfZhtuMXCIsXG4gICAgXCLZhdin2YbbjNinXCIsXG4gICAgXCLZhdin2YfYp9mGXCIsXG4gICAgXCLZhdin2YfYp9mG2K/YrtiqXCIsXG4gICAgXCLZhdin2Ycg2KjYsdiy24zZhlwiLFxuICAgIFwi2YXYp9mHINis2YfYp9mGXCIsXG4gICAgXCLZhdin2YfahtmH2LFcIixcbiAgICBcItmF2KfZh9iv2K7YqlwiLFxuICAgIFwi2YXYp9mH2YjYsVwiLFxuICAgIFwi2YXYp9mH2LHYrlwiLFxuICAgIFwi2YXYp9mH2LLYp9ivXCIsXG4gICAgXCLZhdix2K/YotmI24zYslwiLFxuICAgIFwi2YXYsdiv2KfYs1wiLFxuICAgIFwi2YXYsdiy2KjYp9mGXCIsXG4gICAgXCLZhdix2YXYsVwiLFxuICAgIFwi2YXYstiv2qlcIixcbiAgICBcItmF2pjYr9mHXCIsXG4gICAgXCLZhdqY2q/Yp9mGXCIsXG4gICAgXCLZhdiz2KrYp9mGXCIsXG4gICAgXCLZhdiz2KrYp9mG2YdcIixcbiAgICBcItmF2LTaqdin2YbYr9iu2KpcIixcbiAgICBcItmF2LTaqdmG2KfYslwiLFxuICAgIFwi2YXYtNqp24zZhiDYr9iu2KpcIixcbiAgICBcItmF2YbbjNqY2YdcIixcbiAgICBcItmF2YbZiNqG2YfYsVwiLFxuICAgIFwi2YXZh9io2KfZhtmIXCIsXG4gICAgXCLZhdmH2KjYr1wiLFxuICAgIFwi2YXZhyDYr9in2K9cIixcbiAgICBcItmF2YfYqtin2KhcIixcbiAgICBcItmF2YfYr9uM2LNcIixcbiAgICBcItmF2Ycg2KzYqNuM2YZcIixcbiAgICBcItmF2Ycg2K/YrtiqXCIsXG4gICAgXCLZhdmH2LEg2KLYsNixXCIsXG4gICAgXCLZhdmH2LEg2KLYsdinXCIsXG4gICAgXCLZhdmH2LEg2KLYs9inXCIsXG4gICAgXCLZhdmH2LEg2KLZgdin2YJcIixcbiAgICBcItmF2YfYsSDYp9mB2LHbjNmGXCIsXG4gICAgXCLZhdmH2LHYotioXCIsXG4gICAgXCLZhdmH2LHYr9in2K9cIixcbiAgICBcItmF2YfYsSDYp9mB2LLZiNmGXCIsXG4gICAgXCLZhdmH2LHYp9mFXCIsXG4gICAgXCLZhdmH2LHYp9mGXCIsXG4gICAgXCLZhdmH2LHYp9mG2K/YrtiqXCIsXG4gICAgXCLZhdmH2LHYp9mG2K/bjNi0XCIsXG4gICAgXCLZhdmH2LHYp9mG2YHYsVwiLFxuICAgIFwi2YXZh9ix2KfZhtqv24zYslwiLFxuICAgIFwi2YXZh9ix2K/Yp9ivXCIsXG4gICAgXCLZhdmH2LEg2K/YrtiqXCIsXG4gICAgXCLZhdmH2LHYstin2K/ZhyDigIxcIixcbiAgICBcItmF2YfYsdmG2KfYslwiLFxuICAgIFwi2YXZh9ix2YbZiNi0XCIsXG4gICAgXCLZhdmH2LHZhtqp2KfYsVwiLFxuICAgIFwi2YXZh9ix2YbbjNinXCIsXG4gICAgXCLZhdmH2LHZiNiyXCIsXG4gICAgXCLZhdmH2LHbjFwiLFxuICAgIFwi2YXZh9ix24zYp9ixXCIsXG4gICAgXCLZhdmH2LPYp1wiLFxuICAgIFwi2YXZh9iz2KrbjFwiLFxuICAgIFwi2YXZhyDYs9uM2YXYp1wiLFxuICAgIFwi2YXZh9i02KfYr1wiLFxuICAgIFwi2YXZh9i024zYr1wiLFxuICAgIFwi2YXZh9mG2KfZhVwiLFxuICAgIFwi2YXZh9mG2KfYslwiLFxuICAgIFwi2YXZh9mG2YjYtFwiLFxuICAgIFwi2YXZh9mI2LRcIixcbiAgICBcItmF2YfbjNin2LFcIixcbiAgICBcItmF2YfbjNmGXCIsXG4gICAgXCLZhdmH24zZhiDYr9iu2KpcIixcbiAgICBcItmF24zYqtix2KdcIixcbiAgICBcItmF24zYrtqpXCIsXG4gICAgXCLZhduM2YbYp1wiLFxuICAgIFwi2YXbjNmG2Kcg2K/YrtiqXCIsXG4gICAgXCLZhduM2YbZiFwiLFxuICAgIFwi2YXbjNmG2YjYr9iu2KpcIixcbiAgICBcItmF24zZhtmIINmB2LFcIixcbiAgICBcItmG2KfYr9ixXCIsXG4gICAgXCLZhtin2LIg2KLZgdix24zZhlwiLFxuICAgIFwi2YbYp9iy2KjYp9mG2YhcIixcbiAgICBcItmG2KfYstm+2LHZiNixXCIsXG4gICAgXCLZhtin2LLahtmH2LFcIixcbiAgICBcItmG2KfYstmB2LFcIixcbiAgICBcItmG2KfYstmE24xcIixcbiAgICBcItmG2KfYstuMXCIsXG4gICAgXCLZhtin2LLbjNiv2K7YqlwiLFxuICAgIFwi2YbYp9mF2YjYsVwiLFxuICAgIFwi2YbYp9mH24zYr1wiLFxuICAgIFwi2YbYr9inXCIsXG4gICAgXCLZhtix2LPbjFwiLFxuICAgIFwi2YbYsdqv2LNcIixcbiAgICBcItmG2LHZhdqpXCIsXG4gICAgXCLZhtix2YXbjNmGXCIsXG4gICAgXCLZhtix24zZhdin2YZcIixcbiAgICBcItmG2LPYqtix2YZcIixcbiAgICBcItmG2LPYsduM2YZcIixcbiAgICBcItmG2LPYsduM2YYg2K/YrtiqXCIsXG4gICAgXCLZhtiz2LHbjNmGINmG2YjYtFwiLFxuICAgIFwi2YbaqduM2LPYp1wiLFxuICAgIFwi2Ybar9in2LFcIixcbiAgICBcItmG2q/Yp9ix2YdcIixcbiAgICBcItmG2q/Yp9ix24zZhlwiLFxuICAgIFwi2Ybar9uM2YZcIixcbiAgICBcItmG2YjYp1wiLFxuICAgIFwi2YbZiNi0XCIsXG4gICAgXCLZhtmI2LQg2KLYsNixXCIsXG4gICAgXCLZhtmI2LQg2KLZiNixXCIsXG4gICAgXCLZhtmI2LTYp1wiLFxuICAgIFwi2YbZiNi0INii2YHYsduM2YZcIixcbiAgICBcItmG2YjYtNiv2K7YqlwiLFxuICAgIFwi2YbZiNi02LHZiNin2YZcIixcbiAgICBcItmG2YjYtNmB2LFcIixcbiAgICBcItmG2YjYtNmG2KfYslwiLFxuICAgIFwi2YbZiNi024zZhlwiLFxuICAgIFwi2YbZiNuM2K9cIixcbiAgICBcItmG2YjbjNmGXCIsXG4gICAgXCLZhtmI24zZhiDYr9iu2KpcIixcbiAgICBcItmG24zYtCDYp1wiLFxuICAgIFwi2YbbjNqpINio24zZhlwiLFxuICAgIFwi2YbbjNqpINm+24xcIixcbiAgICBcItmG24zaqSDahtmH2LFcIixcbiAgICBcItmG24zaqSDYrtmI2KfZh1wiLFxuICAgIFwi2YbbjNqp2K/Yp9ivXCIsXG4gICAgXCLZhtuM2qnYr9iu2KpcIixcbiAgICBcItmG24zaqdiv2YRcIixcbiAgICBcItmG24zaqdiy2KfYr1wiLFxuICAgIFwi2YbbjNmE2YjZgdixXCIsXG4gICAgXCLZhtuM2YXYp1wiLFxuICAgIFwi2YjYp9mF2YJcIixcbiAgICBcItmI2LHYrNin2YjZhtivXCIsXG4gICAgXCLZiNix24zYp1wiLFxuICAgIFwi2YjYtNmF2q/bjNixXCIsXG4gICAgXCLZiNmH2LHYslwiLFxuICAgIFwi2YjZh9iz2YjYr9in2YZcIixcbiAgICBcItmI24zYr9inXCIsXG4gICAgXCLZiNuM2LNcIixcbiAgICBcItmI24zYtNiq2KfYs9ioXCIsXG4gICAgXCLZiNuM2q/ZhlwiLFxuICAgIFwi2YfamNuM2LFcIixcbiAgICBcItmH2K7Yp9mF2YbYtFwiLFxuICAgIFwi2YfYsdio2K8oINmH24zYsdio2K8gKVwiLFxuICAgIFwi2YfYsdmF2LJcIixcbiAgICBcItmH2YXYp9uM2YjZhlwiLFxuICAgIFwi2YfZhdinXCIsXG4gICAgXCLZh9mF2KfYr9iu2KpcIixcbiAgICBcItmH2YXYr9mFXCIsXG4gICAgXCLZh9mF2LHYp9iyXCIsXG4gICAgXCLZh9mF2LHYp9mHXCIsXG4gICAgXCLZh9mG2q/Yp9mF2YdcIixcbiAgICBcItmH2YjYqtmGXCIsXG4gICAgXCLZh9mI2LFcIixcbiAgICBcItmH2YjYsdiq2KfYtFwiLFxuICAgIFwi2YfZiNix2obZh9ixXCIsXG4gICAgXCLZh9mI2LHYr9in2K9cIixcbiAgICBcItmH2YjYsdiv2K7YqlwiLFxuICAgIFwi2YfZiNix2LLYp9ivXCIsXG4gICAgXCLZh9mI2LHZhdmG2K9cIixcbiAgICBcItmH2YjYsdmI2LRcIixcbiAgICBcItmH2YjYtNmG2q9cIixcbiAgICBcItmH2YjYtNuM2KfYsVwiLFxuICAgIFwi2YfZiNmF2KfZhlwiLFxuICAgIFwi2YfZiNmF2YZcIixcbiAgICBcItmH2YjZhtin2YVcIixcbiAgICBcItmH2YjbjNiv2KdcIixcbiAgICBcItmH24zYqtin2LPYqFwiLFxuICAgIFwi2YfbjNix2YXZhtivXCIsXG4gICAgXCLZh9uM2YXYp1wiLFxuICAgIFwi2YfbjNmI2KdcIixcbiAgICBcItuM2KfYr9qv2KfYsVwiLFxuICAgIFwi24zYp9iz2YXZhiAoINuM2KfYs9mF24zZhiApXCIsXG4gICAgXCLbjNin2LTYp9ixXCIsXG4gICAgXCLbjNin2YjYsVwiLFxuICAgIFwi24zYstiv2KfZhlwiLFxuICAgIFwi24zar9in2YbZh1wiLFxuICAgIFwi24zZiNi024zYqtinXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi2LnYp9ix2YFcIixcbiAgICBcIti52KfYtNmI2LHbjFwiLFxuICAgIFwi2LnYp9mE24xcIixcbiAgICBcIti52KjYp9iv24xcIixcbiAgICBcIti52KjYr9in2YTaqdix24zZhduMXCIsXG4gICAgXCLYudio2K/Yp9mE2YXZhNqp24xcIixcbiAgICBcIti52LHYp9mC24xcIixcbiAgICBcIti52LLbjNiy24xcIixcbiAgICBcIti52LXYp9ixXCIsXG4gICAgXCLYudmC24zZhNuMXCIsXG4gICAgXCLYudmE2YVcIixcbiAgICBcIti52YTZheKAjNin2YTZh9iv24xcIixcbiAgICBcIti52YTbjCDYudiz2q/YsduMXCIsXG4gICAgXCLYudmE24zigIzYotio2KfYr9uMXCIsXG4gICAgXCLYudmE24zYp1wiLFxuICAgIFwi2LnZhNuM4oCM2b7ZiNixXCIsXG4gICAgXCLYudmE24zigIzYstmF2KfZhtuMXCIsXG4gICAgXCLYudmG2KfbjNiqXCIsXG4gICAgXCLYuti22YbZgdix24xcIixcbiAgICBcIti62YbbjFwiLFxuICAgIFwi2YHYp9ix2LPbjFwiLFxuICAgIFwi2YHYp9i32YXbjFwiLFxuICAgIFwi2YHYp9mG24xcIixcbiAgICBcItmB2KrYp9it24xcIixcbiAgICBcItmB2LHYp9mF2LHYstuMXCIsXG4gICAgXCLZgdix2KxcIixcbiAgICBcItmB2LHYtNuM2K/ZiNix2K9cIixcbiAgICBcItmB2LHZhdin2YbZgdix2YXYp9im24zYp9mGXCIsXG4gICAgXCLZgdix2YjYqtmGXCIsXG4gICAgXCLZgdix2YfZhtqvXCIsXG4gICAgXCLZgdix24zYp9ivXCIsXG4gICAgXCLZgdmG2KfbjNuMXCIsXG4gICAgXCLZgdmG24zigIzYstin2K/Zh1wiLFxuICAgIFwi2YHZiNmE2KfYr9mI2YbYr1wiLFxuICAgIFwi2YHZh9mF24zYr9mHXCIsXG4gICAgXCLZgtin2LbbjFwiLFxuICAgIFwi2YLYp9mG2LnbjFwiLFxuICAgIFwi2YLYp9mG2YjZhtuMXCIsXG4gICAgXCLZgtmF24zYtNuMXCIsXG4gICAgXCLZgtmG2KjYsduMXCIsXG4gICAgXCLZgtmH2LHZhdin2YZcIixcbiAgICBcItmC2YfYsdmF2KfZhtuMXCIsXG4gICAgXCLZgtmH2LHZhdin2YbbjNin2YZcIixcbiAgICBcItmC2YfYs9iq2KfZhtuMXCIsXG4gICAgXCLaqdin2LTbjFwiLFxuICAgIFwi2qnYp9qp2KfZiNmG2K9cIixcbiAgICBcItqp2KfZhdqp2KfYsVwiLFxuICAgIFwi2qnYp9mF2YTbjFwiLFxuICAgIFwi2qnYp9mI24zYp9mG24xcIixcbiAgICBcItqp2K/bjNmI2LFcIixcbiAgICBcItqp2LHYr9io2obZh1wiLFxuICAgIFwi2qnYsdmF2KfZhtuMXCIsXG4gICAgXCLaqdix24zZhduMXCIsXG4gICAgXCLaqdmE2KjYp9iz24xcIixcbiAgICBcItqp2YXYp9mE24xcIixcbiAgICBcItqp2YjYtNqp24xcIixcbiAgICBcItqp2YfZhtmF2YjbjNuMXCIsXG4gICAgXCLaqduM2KfZhlwiLFxuICAgIFwi2qnbjNin2YbbjCAo2YbYp9mFINiu2KfZhtmI2KfYr9qv24wpXCIsXG4gICAgXCLaqduM2YXbjNin24zbjFwiLFxuICAgIFwi2q/ZhCDZhdit2YXYr9uMXCIsXG4gICAgXCLar9mE2b7Yp9uM2q/Yp9mG24xcIixcbiAgICBcItqv2YbYrNuMXCIsXG4gICAgXCLZhNin2KzZiNix2K/bjFwiLFxuICAgIFwi2YTYp9qG24zZhtuMXCIsXG4gICAgXCLZhNin2YfZiNiq24xcIixcbiAgICBcItmE2Ybaqdix2KfZhtuMXCIsXG4gICAgXCLZhNmI2qnYs1wiLFxuICAgIFwi2YXYrNin2YfYr1wiLFxuICAgIFwi2YXYrNiq2KjYp9uM24xcIixcbiAgICBcItmF2KzYqtio2YjbjFwiLFxuICAgIFwi2YXYrNiq2YfYryDYtNio2LPYqtix24xcIixcbiAgICBcItmF2KzYqtmH2K/bjFwiLFxuICAgIFwi2YXYrNix2K9cIixcbiAgICBcItmF2K3YrNmI2KhcIixcbiAgICBcItmF2K3YrNmI2KjbjFwiLFxuICAgIFwi2YXYrdiv2KvbjFwiLFxuICAgIFwi2YXYrdmF2K/Ysdi22KfbjNuMXCIsXG4gICAgXCLZhdit2YXYr9uMXCIsXG4gICAgXCLZhdiv2K/bjFwiLFxuICAgIFwi2YXYsdin2K/Yrtin2YbbjFwiLFxuICAgIFwi2YXYsdiq2LbZiNuMXCIsXG4gICAgXCLZhdiz2KrZiNmB24xcIixcbiAgICBcItmF2LTYp1wiLFxuICAgIFwi2YXYtdin2K3YqFwiLFxuICAgIFwi2YXYtdio2KfYrVwiLFxuICAgIFwi2YXYtdio2KfYreKAjNiy2KfYr9mHXCIsXG4gICAgXCLZhdi32YfYsduMXCIsXG4gICAgXCLZhdi42YHYsVwiLFxuICAgIFwi2YXYudin2LHZgVwiLFxuICAgIFwi2YXYudix2YjZgVwiLFxuICAgIFwi2YXYuduM2YZcIixcbiAgICBcItmF2YHYqtin2K1cIixcbiAgICBcItmF2YHYqtitXCIsXG4gICAgXCLZhdmC2K/ZhVwiLFxuICAgIFwi2YXZhNin24zYsduMXCIsXG4gICAgXCLZhdmE2qlcIixcbiAgICBcItmF2YTaqduM2KfZhlwiLFxuICAgIFwi2YXZhtmI2obZh9ix24xcIixcbiAgICBcItmF2YjYrdivXCIsXG4gICAgXCLZhdmI2LPZiNuMXCIsXG4gICAgXCLZhdmI2LPZiNuM2KfZhlwiLFxuICAgIFwi2YXZh9in2KzYsdin2YbbjFwiLFxuICAgIFwi2YXZh9iv24zigIzZvtmI2LFcIixcbiAgICBcItmF24zYsdio2KfZgtix24xcIixcbiAgICBcItmF24zYsdiv2KfZhdin2K/bjFwiLFxuICAgIFwi2YXbjNix2LLYp9iv2YdcIixcbiAgICBcItmF24zYsdiz2b7Yp9iz24xcIixcbiAgICBcItmF24zYstio2KfZhtuMXCIsXG4gICAgXCLZhtin2LjYsduMXCIsXG4gICAgXCLZhtin2YXZiNixXCIsXG4gICAgXCLZhtis2YHbjFwiLFxuICAgIFwi2YbYr9mI2LTZhlwiLFxuICAgIFwi2YbYsdin2YLbjFwiLFxuICAgIFwi2YbYudmF2KrigIzYstin2K/Zh1wiLFxuICAgIFwi2YbZgtiv24xcIixcbiAgICBcItmG2YLbjNio4oCM2LLYp9iv2YdcIixcbiAgICBcItmG2YjYp9ioXCIsXG4gICAgXCLZhtmI2KjYrtiqXCIsXG4gICAgXCLZhtmI2KjYrtiq24xcIixcbiAgICBcItmG2YfYp9mI2YbYr9uMXCIsXG4gICAgXCLZhtuM2LTYp9io2YjYsduMXCIsXG4gICAgXCLZhtuM2YTZiNmB2LHbjFwiLFxuICAgIFwi2YjYp9ir2YLbjFwiLFxuICAgIFwi2YjYp9i52LhcIixcbiAgICBcItmI2KfYudi44oCM2LLYp9iv2YdcIixcbiAgICBcItmI2KfYudi424xcIixcbiAgICBcItmI2qnbjNmE24xcIixcbiAgICBcItmH2KfYtNmF24xcIixcbiAgICBcItmH2KfYtNmF24wg2LHZgdiz2YbYrNin2YbbjFwiLFxuICAgIFwi2YfYp9i02YXbjNin2YZcIixcbiAgICBcItmH2KfZhdmI2YZcIixcbiAgICBcItmH2K/Yp9uM2KpcIixcbiAgICBcItmH2LHYp9iq24xcIixcbiAgICBcItmH2LHZiNuMXCIsXG4gICAgXCLZh9mF2KfbjNmI2YZcIixcbiAgICBcItmH2YXYqlwiLFxuICAgIFwi2YfZhdiv2KfZhtuMXCIsXG4gICAgXCLZh9mI2LTbjNin2LFcIixcbiAgICBcItmH2YjZhdmGXCIsXG4gICAgXCLbjNin2K3ZgtuMXCIsXG4gICAgXCLbjNin2K/ar9in2LFcIixcbiAgICBcItuM2KvYsdio24xcIixcbiAgICBcItuM2YTYr9inXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwi2KLZgtin24xcIixcbiAgICBcItiu2KfZhtmFXCIsXG4gICAgXCLYr9qp2KrYsVwiXG4gIF1cbn07XG4iLCJ2YXIgZnIgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBmcjtcbmZyLnRpdGxlID0gXCJGcmVuY2hcIjtcbmZyLmFkZHJlc3MgPSB7XG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiQWxsw6llLCBWb2llXCIsXG4gICAgXCJSdWVcIixcbiAgICBcIkF2ZW51ZVwiLFxuICAgIFwiQm91bGV2YXJkXCIsXG4gICAgXCJRdWFpXCIsXG4gICAgXCJQYXNzYWdlXCIsXG4gICAgXCJJbXBhc3NlXCIsXG4gICAgXCJQbGFjZVwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0LiAjIyNcIixcbiAgICBcIiMgw6l0YWdlXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxzYWNlXCIsXG4gICAgXCJBcXVpdGFpbmVcIixcbiAgICBcIkF1dmVyZ25lXCIsXG4gICAgXCJCYXNzZS1Ob3JtYW5kaWVcIixcbiAgICBcIkJvdXJnb2duZVwiLFxuICAgIFwiQnJldGFnbmVcIixcbiAgICBcIkNlbnRyZVwiLFxuICAgIFwiQ2hhbXBhZ25lLUFyZGVubmVcIixcbiAgICBcIkNvcnNlXCIsXG4gICAgXCJGcmFuY2hlLUNvbXTDqVwiLFxuICAgIFwiSGF1dGUtTm9ybWFuZGllXCIsXG4gICAgXCLDjmxlLWRlLUZyYW5jZVwiLFxuICAgIFwiTGFuZ3VlZG9jLVJvdXNzaWxsb25cIixcbiAgICBcIkxpbW91c2luXCIsXG4gICAgXCJMb3JyYWluZVwiLFxuICAgIFwiTWlkaS1QeXLDqW7DqWVzXCIsXG4gICAgXCJOb3JkLVBhcy1kZS1DYWxhaXNcIixcbiAgICBcIlBheXMgZGUgbGEgTG9pcmVcIixcbiAgICBcIlBpY2FyZGllXCIsXG4gICAgXCJQb2l0b3UtQ2hhcmVudGVzXCIsXG4gICAgXCJQcm92ZW5jZS1BbHBlcy1Dw7R0ZSBkJ0F6dXJcIixcbiAgICBcIlJow7RuZS1BbHBlc1wiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIlBhcmlzXCIsXG4gICAgXCJNYXJzZWlsbGVcIixcbiAgICBcIkx5b25cIixcbiAgICBcIlRvdWxvdXNlXCIsXG4gICAgXCJOaWNlXCIsXG4gICAgXCJOYW50ZXNcIixcbiAgICBcIlN0cmFzYm91cmdcIixcbiAgICBcIk1vbnRwZWxsaWVyXCIsXG4gICAgXCJCb3JkZWF1eFwiLFxuICAgIFwiTGlsbGUxM1wiLFxuICAgIFwiUmVubmVzXCIsXG4gICAgXCJSZWltc1wiLFxuICAgIFwiTGUgSGF2cmVcIixcbiAgICBcIlNhaW50LcOJdGllbm5lXCIsXG4gICAgXCJUb3Vsb25cIixcbiAgICBcIkdyZW5vYmxlXCIsXG4gICAgXCJEaWpvblwiLFxuICAgIFwiQW5nZXJzXCIsXG4gICAgXCJTYWludC1EZW5pc1wiLFxuICAgIFwiVmlsbGV1cmJhbm5lXCIsXG4gICAgXCJMZSBNYW5zXCIsXG4gICAgXCJBaXgtZW4tUHJvdmVuY2VcIixcbiAgICBcIkJyZXN0XCIsXG4gICAgXCJOw65tZXNcIixcbiAgICBcIkxpbW9nZXNcIixcbiAgICBcIkNsZXJtb250LUZlcnJhbmRcIixcbiAgICBcIlRvdXJzXCIsXG4gICAgXCJBbWllbnNcIixcbiAgICBcIk1ldHpcIixcbiAgICBcIlBlcnBpZ25hblwiLFxuICAgIFwiQmVzYW7Dp29uXCIsXG4gICAgXCJPcmzDqWFuc1wiLFxuICAgIFwiQm91bG9nbmUtQmlsbGFuY291cnRcIixcbiAgICBcIk11bGhvdXNlXCIsXG4gICAgXCJSb3VlblwiLFxuICAgIFwiQ2FlblwiLFxuICAgIFwiTmFuY3lcIixcbiAgICBcIlNhaW50LURlbmlzXCIsXG4gICAgXCJTYWludC1QYXVsXCIsXG4gICAgXCJNb250cmV1aWxcIixcbiAgICBcIkFyZ2VudGV1aWxcIixcbiAgICBcIlJvdWJhaXhcIixcbiAgICBcIkR1bmtlcnF1ZTE0XCIsXG4gICAgXCJUb3VyY29pbmdcIixcbiAgICBcIk5hbnRlcnJlXCIsXG4gICAgXCJBdmlnbm9uXCIsXG4gICAgXCJDcsOpdGVpbFwiLFxuICAgIFwiUG9pdGllcnNcIixcbiAgICBcIkZvcnQtZGUtRnJhbmNlXCIsXG4gICAgXCJDb3VyYmV2b2llXCIsXG4gICAgXCJWZXJzYWlsbGVzXCIsXG4gICAgXCJWaXRyeS1zdXItU2VpbmVcIixcbiAgICBcIkNvbG9tYmVzXCIsXG4gICAgXCJQYXVcIixcbiAgICBcIkF1bG5heS1zb3VzLUJvaXNcIixcbiAgICBcIkFzbmnDqHJlcy1zdXItU2VpbmVcIixcbiAgICBcIlJ1ZWlsLU1hbG1haXNvblwiLFxuICAgIFwiU2FpbnQtUGllcnJlXCIsXG4gICAgXCJBbnRpYmVzXCIsXG4gICAgXCJTYWludC1NYXVyLWRlcy1Gb3Nzw6lzXCIsXG4gICAgXCJDaGFtcGlnbnktc3VyLU1hcm5lXCIsXG4gICAgXCJMYSBSb2NoZWxsZVwiLFxuICAgIFwiQXViZXJ2aWxsaWVyc1wiLFxuICAgIFwiQ2FsYWlzXCIsXG4gICAgXCJDYW5uZXNcIixcbiAgICBcIkxlIFRhbXBvblwiLFxuICAgIFwiQsOpemllcnNcIixcbiAgICBcIkNvbG1hclwiLFxuICAgIFwiQm91cmdlc1wiLFxuICAgIFwiRHJhbmN5XCIsXG4gICAgXCJNw6lyaWduYWNcIixcbiAgICBcIlNhaW50LU5hemFpcmVcIixcbiAgICBcIlZhbGVuY2VcIixcbiAgICBcIkFqYWNjaW9cIixcbiAgICBcIklzc3ktbGVzLU1vdWxpbmVhdXhcIixcbiAgICBcIlZpbGxlbmV1dmUtZCdBc2NxXCIsXG4gICAgXCJMZXZhbGxvaXMtUGVycmV0XCIsXG4gICAgXCJOb2lzeS1sZS1HcmFuZFwiLFxuICAgIFwiUXVpbXBlclwiLFxuICAgIFwiTGEgU2V5bmUtc3VyLU1lclwiLFxuICAgIFwiQW50b255XCIsXG4gICAgXCJUcm95ZXNcIixcbiAgICBcIk5ldWlsbHktc3VyLVNlaW5lXCIsXG4gICAgXCJTYXJjZWxsZXNcIixcbiAgICBcIkxlcyBBYnltZXNcIixcbiAgICBcIlbDqW5pc3NpZXV4XCIsXG4gICAgXCJDbGljaHlcIixcbiAgICBcIkxvcmllbnRcIixcbiAgICBcIlBlc3NhY1wiLFxuICAgIFwiSXZyeS1zdXItU2VpbmVcIixcbiAgICBcIkNlcmd5XCIsXG4gICAgXCJDYXllbm5lXCIsXG4gICAgXCJOaW9ydFwiLFxuICAgIFwiQ2hhbWLDqXJ5XCIsXG4gICAgXCJNb250YXViYW5cIixcbiAgICBcIlNhaW50LVF1ZW50aW5cIixcbiAgICBcIlZpbGxlanVpZlwiLFxuICAgIFwiSHnDqHJlc1wiLFxuICAgIFwiQmVhdXZhaXNcIixcbiAgICBcIkNob2xldFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiZGUgbCdBYmJheWVcIixcbiAgICBcIkFkb2xwaGUgTWlsbGVcIixcbiAgICBcImQnQWzDqXNpYVwiLFxuICAgIFwiZCdBcmdlbnRldWlsXCIsXG4gICAgXCJkJ0Fzc2FzXCIsXG4gICAgXCJkdSBCYWNcIixcbiAgICBcImRlIFBhcmlzXCIsXG4gICAgXCJMYSBCb8OpdGllXCIsXG4gICAgXCJCb25hcGFydGVcIixcbiAgICBcImRlIGxhIELDu2NoZXJpZVwiLFxuICAgIFwiZGUgQ2F1bWFydGluXCIsXG4gICAgXCJDaGFybGVtYWduZVwiLFxuICAgIFwiZHUgQ2hhdC1xdWktUMOqY2hlXCIsXG4gICAgXCJkZSBsYSBDaGF1c3PDqWUtZCdBbnRpblwiLFxuICAgIFwiZHUgRGFob21leVwiLFxuICAgIFwiRGF1cGhpbmVcIixcbiAgICBcIkRlbGVzc2V1eFwiLFxuICAgIFwiZHUgRmF1Ym91cmcgU2FpbnQtSG9ub3LDqVwiLFxuICAgIFwiZHUgRmF1Ym91cmctU2FpbnQtRGVuaXNcIixcbiAgICBcImRlIGxhIEZlcnJvbm5lcmllXCIsXG4gICAgXCJkZXMgRnJhbmNzLUJvdXJnZW9pc1wiLFxuICAgIFwiZGVzIEdyYW5kcyBBdWd1c3RpbnNcIixcbiAgICBcImRlIGxhIEhhcnBlXCIsXG4gICAgXCJkdSBIYXZyZVwiLFxuICAgIFwiZGUgbGEgSHVjaGV0dGVcIixcbiAgICBcIkpvdWJlcnRcIixcbiAgICBcIkxhZmZpdHRlXCIsXG4gICAgXCJMZXBpY1wiLFxuICAgIFwiZGVzIExvbWJhcmRzXCIsXG4gICAgXCJNYXJjYWRldFwiLFxuICAgIFwiTW9sacOocmVcIixcbiAgICBcIk1vbnNpZXVyLWxlLVByaW5jZVwiLFxuICAgIFwiZGUgTW9udG1vcmVuY3lcIixcbiAgICBcIk1vbnRvcmd1ZWlsXCIsXG4gICAgXCJNb3VmZmV0YXJkXCIsXG4gICAgXCJkZSBOZXNsZVwiLFxuICAgIFwiT2JlcmthbXBmXCIsXG4gICAgXCJkZSBsJ09kw6lvblwiLFxuICAgIFwiZCdPcnNlbFwiLFxuICAgIFwiZGUgbGEgUGFpeFwiLFxuICAgIFwiZGVzIFBhbm9yYW1hc1wiLFxuICAgIFwiUGFzdG91cmVsbGVcIixcbiAgICBcIlBpZXJyZSBDaGFycm9uXCIsXG4gICAgXCJkZSBsYSBQb21wZVwiLFxuICAgIFwiZGUgUHJlc2JvdXJnXCIsXG4gICAgXCJkZSBQcm92ZW5jZVwiLFxuICAgIFwiZGUgUmljaGVsaWV1XCIsXG4gICAgXCJkZSBSaXZvbGlcIixcbiAgICBcImRlcyBSb3NpZXJzXCIsXG4gICAgXCJSb3lhbGVcIixcbiAgICBcImQnQWJiZXZpbGxlXCIsXG4gICAgXCJTYWludC1Ib25vcsOpXCIsXG4gICAgXCJTYWludC1CZXJuYXJkXCIsXG4gICAgXCJTYWludC1EZW5pc1wiLFxuICAgIFwiU2FpbnQtRG9taW5pcXVlXCIsXG4gICAgXCJTYWludC1KYWNxdWVzXCIsXG4gICAgXCJTYWludC1Tw6l2ZXJpblwiLFxuICAgIFwiZGVzIFNhdXNzYWllc1wiLFxuICAgIFwiZGUgU2VpbmVcIixcbiAgICBcImRlIFNvbGbDqXJpbm9cIixcbiAgICBcIkR1IFNvbW1lcmFyZFwiLFxuICAgIFwiZGUgVGlsc2l0dFwiLFxuICAgIFwiVmFuZWF1XCIsXG4gICAgXCJkZSBWYXVnaXJhcmRcIixcbiAgICBcImRlIGxhIFZpY3RvaXJlXCIsXG4gICAgXCJaYWRraW5lXCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9wcmVmaXh9ICN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7YnVpbGRpbmdfbnVtYmVyfSAje3N0cmVldF9uYW1lfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkZyYW5jZVwiXG4gIF1cbn07XG5mci5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJTQVJMXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiRVVSTFwiLFxuICAgIFwiU0FTXCIsXG4gICAgXCJTRU1cIixcbiAgICBcIlNDT1BcIixcbiAgICBcIkdJRVwiLFxuICAgIFwiRUlcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOlxuICAgIFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjpcbiAgICBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6XG4gICAgW1xuICAgICAgXCJjbGlja3MtYW5kLW1vcnRhclwiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ2ZXJ0aWNhbFwiLFxuICAgICAgXCJwcm9hY3RpdmVcIixcbiAgICAgIFwicm9idXN0XCIsXG4gICAgICBcInJldm9sdXRpb25hcnlcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwibGVhZGluZy1lZGdlXCIsXG4gICAgICBcImlubm92YXRpdmVcIixcbiAgICAgIFwiaW50dWl0aXZlXCIsXG4gICAgICBcInN0cmF0ZWdpY1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwic3RpY2t5XCIsXG4gICAgICBcIm9uZS10by1vbmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJlbmQtdG8tZW5kXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyXCIsXG4gICAgICBcImZyaWN0aW9ubGVzc1wiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZpcmFsXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiMjQvMzY1XCIsXG4gICAgICBcImJlc3Qtb2YtYnJlZWRcIixcbiAgICAgIFwia2lsbGVyXCIsXG4gICAgICBcIm1hZ25ldGljXCIsXG4gICAgICBcImJsZWVkaW5nLWVkZ2VcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiZG90LWNvbVwiLFxuICAgICAgXCJzZXh5XCIsXG4gICAgICBcImJhY2stZW5kXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJlZmZpY2llbnRcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGVkXCIsXG4gICAgICBcInNlYW1sZXNzXCIsXG4gICAgICBcImV4dGVuc2libGVcIixcbiAgICAgIFwidHVybi1rZXlcIixcbiAgICAgIFwid29ybGQtY2xhc3NcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiY3Jvc3MtbWVkaWFcIixcbiAgICAgIFwic3luZXJnaXN0aWNcIixcbiAgICAgIFwiYnJpY2tzLWFuZC1jbGlja3NcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInVzZXItY2VudHJpY1wiLFxuICAgICAgXCJ2aXNpb25hcnlcIixcbiAgICAgIFwiY3VzdG9taXplZFwiLFxuICAgICAgXCJ1YmlxdWl0b3VzXCIsXG4gICAgICBcInBsdWctYW5kLXBsYXlcIixcbiAgICAgIFwiY29sbGFib3JhdGl2ZVwiLFxuICAgICAgXCJjb21wZWxsaW5nXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcInJpY2hcIlxuICAgIF0sXG4gICAgXCJic19ub3VuXCI6IFtcbiAgICAgIFwic3luZXJnaWVzXCIsXG4gICAgICBcIndlYi1yZWFkaW5lc3NcIixcbiAgICAgIFwicGFyYWRpZ21zXCIsXG4gICAgICBcIm1hcmtldHNcIixcbiAgICAgIFwicGFydG5lcnNoaXBzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlc1wiLFxuICAgICAgXCJwbGF0Zm9ybXNcIixcbiAgICAgIFwiaW5pdGlhdGl2ZXNcIixcbiAgICAgIFwiY2hhbm5lbHNcIixcbiAgICAgIFwiZXllYmFsbHNcIixcbiAgICAgIFwiY29tbXVuaXRpZXNcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV0aW9uc1wiLFxuICAgICAgXCJlLXRhaWxlcnNcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJhY3Rpb24taXRlbXNcIixcbiAgICAgIFwicG9ydGFsc1wiLFxuICAgICAgXCJuaWNoZXNcIixcbiAgICAgIFwidGVjaG5vbG9naWVzXCIsXG4gICAgICBcImNvbnRlbnRcIixcbiAgICAgIFwidm9ydGFsc1wiLFxuICAgICAgXCJzdXBwbHktY2hhaW5zXCIsXG4gICAgICBcImNvbnZlcmdlbmNlXCIsXG4gICAgICBcInJlbGF0aW9uc2hpcHNcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlc1wiLFxuICAgICAgXCJpbnRlcmZhY2VzXCIsXG4gICAgICBcImUtbWFya2V0c1wiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInN5c3RlbXNcIixcbiAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICBcImluZm9tZWRpYXJpZXNcIixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm1pbmRzaGFyZVwiLFxuICAgICAgXCJkZWxpdmVyYWJsZXNcIixcbiAgICAgIFwidXNlcnNcIixcbiAgICAgIFwic2NoZW1hc1wiLFxuICAgICAgXCJuZXR3b3Jrc1wiLFxuICAgICAgXCJhcHBsaWNhdGlvbnNcIixcbiAgICAgIFwibWV0cmljc1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJleHBlcmllbmNlc1wiLFxuICAgICAgXCJ3ZWIgc2VydmljZXNcIixcbiAgICAgIFwibWV0aG9kb2xvZ2llc1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9IGV0ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmZyLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5mclwiLFxuICAgIFwiaG90bWFpbC5mclwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImZyXCIsXG4gICAgXCJldVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZnIubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwiYWxpYXNcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInBlcmZlcmVuZGlzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcImFjY3VzYW50aXVtXCIsXG4gICAgXCJkb2xvcmVtcXVlXCIsXG4gICAgXCJhcGVyaWFtXCIsXG4gICAgXCJlYXF1ZVwiLFxuICAgIFwiaXBzYVwiLFxuICAgIFwicXVhZVwiLFxuICAgIFwiYWJcIixcbiAgICBcImlsbG9cIixcbiAgICBcImludmVudG9yZVwiLFxuICAgIFwidmVyaXRhdGlzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc2lcIixcbiAgICBcImFyY2hpdGVjdG9cIixcbiAgICBcImJlYXRhZVwiLFxuICAgIFwidml0YWVcIixcbiAgICBcImRpY3RhXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJleHBsaWNhYm9cIixcbiAgICBcImFzcGVybmF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwib2RpdFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJmdWdpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJjb25zZXF1dW50dXJcIixcbiAgICBcIm1hZ25pXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJlb3NcIixcbiAgICBcInF1aVwiLFxuICAgIFwicmF0aW9uZVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwic2VxdWlcIixcbiAgICBcIm5lc2NpdW50XCIsXG4gICAgXCJuZXF1ZVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiaXBzdW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJzaXRcIixcbiAgICBcImFtZXRcIixcbiAgICBcImNvbnNlY3RldHVyXCIsXG4gICAgXCJhZGlwaXNjaVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJudW1xdWFtXCIsXG4gICAgXCJlaXVzXCIsXG4gICAgXCJtb2RpXCIsXG4gICAgXCJ0ZW1wb3JhXCIsXG4gICAgXCJpbmNpZHVudFwiLFxuICAgIFwidXRcIixcbiAgICBcImxhYm9yZVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9yZVwiLFxuICAgIFwibWFnbmFtXCIsXG4gICAgXCJhbGlxdWFtXCIsXG4gICAgXCJxdWFlcmF0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiYWRcIixcbiAgICBcIm1pbmltYVwiLFxuICAgIFwidmVuaWFtXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJub3N0cnVtXCIsXG4gICAgXCJleGVyY2l0YXRpb25lbVwiLFxuICAgIFwidWxsYW1cIixcbiAgICBcImNvcnBvcmlzXCIsXG4gICAgXCJuZW1vXCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJpcHNhbVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwic3VzY2lwaXRcIixcbiAgICBcImxhYm9yaW9zYW1cIixcbiAgICBcIm5pc2lcIixcbiAgICBcInV0XCIsXG4gICAgXCJhbGlxdWlkXCIsXG4gICAgXCJleFwiLFxuICAgIFwiZWFcIixcbiAgICBcImNvbW1vZGlcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJldW1cIixcbiAgICBcIml1cmVcIixcbiAgICBcInJlcHJlaGVuZGVyaXRcIixcbiAgICBcInF1aVwiLFxuICAgIFwiaW5cIixcbiAgICBcImVhXCIsXG4gICAgXCJ2b2x1cHRhdGVcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJlc3NlXCIsXG4gICAgXCJxdWFtXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaXVzdG9cIixcbiAgICBcIm9kaW9cIixcbiAgICBcImRpZ25pc3NpbW9zXCIsXG4gICAgXCJkdWNpbXVzXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImJsYW5kaXRpaXNcIixcbiAgICBcInByYWVzZW50aXVtXCIsXG4gICAgXCJsYXVkYW50aXVtXCIsXG4gICAgXCJ0b3RhbVwiLFxuICAgIFwicmVtXCIsXG4gICAgXCJ2b2x1cHRhdHVtXCIsXG4gICAgXCJkZWxlbml0aVwiLFxuICAgIFwiYXRxdWVcIixcbiAgICBcImNvcnJ1cHRpXCIsXG4gICAgXCJxdW9zXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc1wiLFxuICAgIFwibW9sZXN0aWFzXCIsXG4gICAgXCJleGNlcHR1cmlcIixcbiAgICBcInNpbnRcIixcbiAgICBcIm9jY2FlY2F0aVwiLFxuICAgIFwiY3VwaWRpdGF0ZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJwcm92aWRlbnRcIixcbiAgICBcInNlZFwiLFxuICAgIFwidXRcIixcbiAgICBcInBlcnNwaWNpYXRpc1wiLFxuICAgIFwidW5kZVwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImlzdGVcIixcbiAgICBcIm5hdHVzXCIsXG4gICAgXCJlcnJvclwiLFxuICAgIFwic2ltaWxpcXVlXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJpblwiLFxuICAgIFwiY3VscGFcIixcbiAgICBcInF1aVwiLFxuICAgIFwib2ZmaWNpYVwiLFxuICAgIFwiZGVzZXJ1bnRcIixcbiAgICBcIm1vbGxpdGlhXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiaWRcIixcbiAgICBcImVzdFwiLFxuICAgIFwibGFib3J1bVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9ydW1cIixcbiAgICBcImZ1Z2FcIixcbiAgICBcImV0XCIsXG4gICAgXCJoYXJ1bVwiLFxuICAgIFwicXVpZGVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiZmFjaWxpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJldFwiLFxuICAgIFwiZXhwZWRpdGFcIixcbiAgICBcImRpc3RpbmN0aW9cIixcbiAgICBcIm5hbVwiLFxuICAgIFwibGliZXJvXCIsXG4gICAgXCJ0ZW1wb3JlXCIsXG4gICAgXCJjdW1cIixcbiAgICBcInNvbHV0YVwiLFxuICAgIFwibm9iaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZWxpZ2VuZGlcIixcbiAgICBcIm9wdGlvXCIsXG4gICAgXCJjdW1xdWVcIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJpbXBlZGl0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInBvcnJvXCIsXG4gICAgXCJxdWlzcXVhbVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm1pbnVzXCIsXG4gICAgXCJpZFwiLFxuICAgIFwicXVvZFwiLFxuICAgIFwibWF4aW1lXCIsXG4gICAgXCJwbGFjZWF0XCIsXG4gICAgXCJmYWNlcmVcIixcbiAgICBcInBvc3NpbXVzXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcImFzc3VtZW5kYVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInJlcGVsbGVuZHVzXCIsXG4gICAgXCJ0ZW1wb3JpYnVzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwicXVpYnVzZGFtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJpbGx1bVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJldW1cIixcbiAgICBcImZ1Z2lhdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwibnVsbGFcIixcbiAgICBcInBhcmlhdHVyXCIsXG4gICAgXCJhdFwiLFxuICAgIFwidmVyb1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYWNjdXNhbXVzXCIsXG4gICAgXCJvZmZpY2lpc1wiLFxuICAgIFwiZGViaXRpc1wiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwibmVjZXNzaXRhdGlidXNcIixcbiAgICBcInNhZXBlXCIsXG4gICAgXCJldmVuaWV0XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZXRcIixcbiAgICBcInZvbHVwdGF0ZXNcIixcbiAgICBcInJlcHVkaWFuZGFlXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJldFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJub25cIixcbiAgICBcInJlY3VzYW5kYWVcIixcbiAgICBcIml0YXF1ZVwiLFxuICAgIFwiZWFydW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJoaWNcIixcbiAgICBcInRlbmV0dXJcIixcbiAgICBcImFcIixcbiAgICBcInNhcGllbnRlXCIsXG4gICAgXCJkZWxlY3R1c1wiLFxuICAgIFwidXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVpY2llbmRpc1wiLFxuICAgIFwidm9sdXB0YXRpYnVzXCIsXG4gICAgXCJtYWlvcmVzXCIsXG4gICAgXCJkb2xvcmlidXNcIixcbiAgICBcImFzcGVyaW9yZXNcIixcbiAgICBcInJlcGVsbGF0XCJcbiAgXSxcbiAgXCJzdXBwbGVtZW50YWxcIjogW1xuICAgIFwiYWJiYXNcIixcbiAgICBcImFiZHVjb1wiLFxuICAgIFwiYWJlb1wiLFxuICAgIFwiYWJzY2lkb1wiLFxuICAgIFwiYWJzY29uZGl0dXNcIixcbiAgICBcImFic2Vuc1wiLFxuICAgIFwiYWJzb3JiZW9cIixcbiAgICBcImFic3F1ZVwiLFxuICAgIFwiYWJzdGVyZ29cIixcbiAgICBcImFic3VtXCIsXG4gICAgXCJhYnVuZGFuc1wiLFxuICAgIFwiYWJ1dG9yXCIsXG4gICAgXCJhY2NlZG9cIixcbiAgICBcImFjY2VuZG9cIixcbiAgICBcImFjY2VwdHVzXCIsXG4gICAgXCJhY2NpcGlvXCIsXG4gICAgXCJhY2NvbW1vZG9cIixcbiAgICBcImFjY3VzYXRvclwiLFxuICAgIFwiYWNlclwiLFxuICAgIFwiYWNlcmJpdGFzXCIsXG4gICAgXCJhY2VydnVzXCIsXG4gICAgXCJhY2lkdXNcIixcbiAgICBcImFjaWVzXCIsXG4gICAgXCJhY3F1aXJvXCIsXG4gICAgXCJhY3NpXCIsXG4gICAgXCJhZGFtb1wiLFxuICAgIFwiYWRhdWdlb1wiLFxuICAgIFwiYWRkb1wiLFxuICAgIFwiYWRkdWNvXCIsXG4gICAgXCJhZGVtcHRpb1wiLFxuICAgIFwiYWRlb1wiLFxuICAgIFwiYWRlcHRpb1wiLFxuICAgIFwiYWRmZWN0dXNcIixcbiAgICBcImFkZmVyb1wiLFxuICAgIFwiYWRmaWNpb1wiLFxuICAgIFwiYWRmbGljdG9cIixcbiAgICBcImFkaGFlcm9cIixcbiAgICBcImFkaHVjXCIsXG4gICAgXCJhZGljaW9cIixcbiAgICBcImFkaW1wbGVvXCIsXG4gICAgXCJhZGludmVudGl0aWFzXCIsXG4gICAgXCJhZGlwaXNjb3JcIixcbiAgICBcImFkaXV2b1wiLFxuICAgIFwiYWRtaW5pc3RyYXRpb1wiLFxuICAgIFwiYWRtaXJhdGlvXCIsXG4gICAgXCJhZG1pdHRvXCIsXG4gICAgXCJhZG1vbmVvXCIsXG4gICAgXCJhZG1vdmVvXCIsXG4gICAgXCJhZG51b1wiLFxuICAgIFwiYWRvcHRvXCIsXG4gICAgXCJhZHNpZHVlXCIsXG4gICAgXCJhZHN0cmluZ29cIixcbiAgICBcImFkc3Vlc2NvXCIsXG4gICAgXCJhZHN1bVwiLFxuICAgIFwiYWR1bGF0aW9cIixcbiAgICBcImFkdWxlc2NlbnNcIixcbiAgICBcImFkdWx0dXNcIixcbiAgICBcImFkdXJvXCIsXG4gICAgXCJhZHZlbmlvXCIsXG4gICAgXCJhZHZlcnN1c1wiLFxuICAgIFwiYWR2b2NvXCIsXG4gICAgXCJhZWRpZmljaXVtXCIsXG4gICAgXCJhZWdlclwiLFxuICAgIFwiYWVncmVcIixcbiAgICBcImFlZ3JvdGF0aW9cIixcbiAgICBcImFlZ3J1c1wiLFxuICAgIFwiYWVuZXVzXCIsXG4gICAgXCJhZXF1aXRhc1wiLFxuICAgIFwiYWVxdXVzXCIsXG4gICAgXCJhZXJcIixcbiAgICBcImFlc3Rhc1wiLFxuICAgIFwiYWVzdGl2dXNcIixcbiAgICBcImFlc3R1c1wiLFxuICAgIFwiYWV0YXNcIixcbiAgICBcImFldGVybnVzXCIsXG4gICAgXCJhZ2VyXCIsXG4gICAgXCJhZ2dlcm9cIixcbiAgICBcImFnZ3JlZGlvclwiLFxuICAgIFwiYWduaXRpb1wiLFxuICAgIFwiYWdub3Njb1wiLFxuICAgIFwiYWdvXCIsXG4gICAgXCJhaXRcIixcbiAgICBcImFpdW50XCIsXG4gICAgXCJhbGllbnVzXCIsXG4gICAgXCJhbGlpXCIsXG4gICAgXCJhbGlvcXVpXCIsXG4gICAgXCJhbGlxdWFcIixcbiAgICBcImFsaXVzXCIsXG4gICAgXCJhbGxhdHVzXCIsXG4gICAgXCJhbG9cIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhbHR1c1wiLFxuICAgIFwiYWx2ZXVzXCIsXG4gICAgXCJhbWFyaXR1ZG9cIixcbiAgICBcImFtYml0dXNcIixcbiAgICBcImFtYnVsb1wiLFxuICAgIFwiYW1pY2l0aWFcIixcbiAgICBcImFtaWN1bHVtXCIsXG4gICAgXCJhbWlzc2lvXCIsXG4gICAgXCJhbWl0YVwiLFxuICAgIFwiYW1pdHRvXCIsXG4gICAgXCJhbW9cIixcbiAgICBcImFtb3JcIixcbiAgICBcImFtb3Zlb1wiLFxuICAgIFwiYW1wbGV4dXNcIixcbiAgICBcImFtcGxpdHVkb1wiLFxuICAgIFwiYW1wbHVzXCIsXG4gICAgXCJhbmNpbGxhXCIsXG4gICAgXCJhbmdlbHVzXCIsXG4gICAgXCJhbmd1bHVzXCIsXG4gICAgXCJhbmd1c3R1c1wiLFxuICAgIFwiYW5pbWFkdmVydG9cIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJhbmltdXNcIixcbiAgICBcImFubnVzXCIsXG4gICAgXCJhbnNlclwiLFxuICAgIFwiYW50ZVwiLFxuICAgIFwiYW50ZWFcIixcbiAgICBcImFudGVwb25vXCIsXG4gICAgXCJhbnRpcXV1c1wiLFxuICAgIFwiYXBlcmlvXCIsXG4gICAgXCJhcGVydGVcIixcbiAgICBcImFwb3N0b2x1c1wiLFxuICAgIFwiYXBwYXJhdHVzXCIsXG4gICAgXCJhcHBlbGxvXCIsXG4gICAgXCJhcHBvbm9cIixcbiAgICBcImFwcG9zaXR1c1wiLFxuICAgIFwiYXBwcm9ib1wiLFxuICAgIFwiYXB0b1wiLFxuICAgIFwiYXB0dXNcIixcbiAgICBcImFwdWRcIixcbiAgICBcImFxdWFcIixcbiAgICBcImFyYVwiLFxuICAgIFwiYXJhbmVhXCIsXG4gICAgXCJhcmJpdHJvXCIsXG4gICAgXCJhcmJvclwiLFxuICAgIFwiYXJidXN0dW1cIixcbiAgICBcImFyY2FcIixcbiAgICBcImFyY2VvXCIsXG4gICAgXCJhcmNlc3NvXCIsXG4gICAgXCJhcmN1c1wiLFxuICAgIFwiYXJnZW50dW1cIixcbiAgICBcImFyZ3VtZW50dW1cIixcbiAgICBcImFyZ3VvXCIsXG4gICAgXCJhcm1hXCIsXG4gICAgXCJhcm1hcml1bVwiLFxuICAgIFwiYXJtb1wiLFxuICAgIFwiYXJvXCIsXG4gICAgXCJhcnNcIixcbiAgICBcImFydGljdWx1c1wiLFxuICAgIFwiYXJ0aWZpY2lvc2VcIixcbiAgICBcImFydG9cIixcbiAgICBcImFyeFwiLFxuICAgIFwiYXNjaXNjb1wiLFxuICAgIFwiYXNjaXRcIixcbiAgICBcImFzcGVyXCIsXG4gICAgXCJhc3BpY2lvXCIsXG4gICAgXCJhc3BvcnRvXCIsXG4gICAgXCJhc3NlbnRhdG9yXCIsXG4gICAgXCJhc3RydW1cIixcbiAgICBcImF0YXZ1c1wiLFxuICAgIFwiYXRlclwiLFxuICAgIFwiYXRxdWlcIixcbiAgICBcImF0cm9jaXRhc1wiLFxuICAgIFwiYXRyb3hcIixcbiAgICBcImF0dGVyb1wiLFxuICAgIFwiYXR0b2xsb1wiLFxuICAgIFwiYXR0b25iaXR1c1wiLFxuICAgIFwiYXVjdG9yXCIsXG4gICAgXCJhdWN0dXNcIixcbiAgICBcImF1ZGFjaWFcIixcbiAgICBcImF1ZGF4XCIsXG4gICAgXCJhdWRlbnRpYVwiLFxuICAgIFwiYXVkZW9cIixcbiAgICBcImF1ZGlvXCIsXG4gICAgXCJhdWRpdG9yXCIsXG4gICAgXCJhdWZlcm9cIixcbiAgICBcImF1cmV1c1wiLFxuICAgIFwiYXVyaXNcIixcbiAgICBcImF1cnVtXCIsXG4gICAgXCJhdXRcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJhdXR1c1wiLFxuICAgIFwiYXV4aWxpdW1cIixcbiAgICBcImF2YXJpdGlhXCIsXG4gICAgXCJhdmFydXNcIixcbiAgICBcImF2ZWhvXCIsXG4gICAgXCJhdmVydG9cIixcbiAgICBcImF2b2NvXCIsXG4gICAgXCJiYWl1bHVzXCIsXG4gICAgXCJiYWxidXNcIixcbiAgICBcImJhcmJhXCIsXG4gICAgXCJiYXJkdXNcIixcbiAgICBcImJhc2l1bVwiLFxuICAgIFwiYmVhdHVzXCIsXG4gICAgXCJiZWxsaWN1c1wiLFxuICAgIFwiYmVsbHVtXCIsXG4gICAgXCJiZW5lXCIsXG4gICAgXCJiZW5lZmljaXVtXCIsXG4gICAgXCJiZW5ldm9sZW50aWFcIixcbiAgICBcImJlbmlnbmVcIixcbiAgICBcImJlc3RpYVwiLFxuICAgIFwiYmlib1wiLFxuICAgIFwiYmlzXCIsXG4gICAgXCJibGFuZGlvclwiLFxuICAgIFwiYm9udXNcIixcbiAgICBcImJvc1wiLFxuICAgIFwiYnJldmlzXCIsXG4gICAgXCJjYWRvXCIsXG4gICAgXCJjYWVjdXNcIixcbiAgICBcImNhZWxlc3Rpc1wiLFxuICAgIFwiY2FlbHVtXCIsXG4gICAgXCJjYWxhbWl0YXNcIixcbiAgICBcImNhbGNhclwiLFxuICAgIFwiY2FsY29cIixcbiAgICBcImNhbGN1bHVzXCIsXG4gICAgXCJjYWxsaWRlXCIsXG4gICAgXCJjYW1wYW5hXCIsXG4gICAgXCJjYW5kaWR1c1wiLFxuICAgIFwiY2FuaXNcIixcbiAgICBcImNhbm9uaWN1c1wiLFxuICAgIFwiY2FudG9cIixcbiAgICBcImNhcGlsbHVzXCIsXG4gICAgXCJjYXBpb1wiLFxuICAgIFwiY2FwaXR1bHVzXCIsXG4gICAgXCJjYXB0b1wiLFxuICAgIFwiY2FwdXRcIixcbiAgICBcImNhcmJvXCIsXG4gICAgXCJjYXJjZXJcIixcbiAgICBcImNhcmVvXCIsXG4gICAgXCJjYXJpZXNcIixcbiAgICBcImNhcmlvc3VzXCIsXG4gICAgXCJjYXJpdGFzXCIsXG4gICAgXCJjYXJtZW5cIixcbiAgICBcImNhcnBvXCIsXG4gICAgXCJjYXJ1c1wiLFxuICAgIFwiY2Fzc29cIixcbiAgICBcImNhc3RlXCIsXG4gICAgXCJjYXN1c1wiLFxuICAgIFwiY2F0ZW5hXCIsXG4gICAgXCJjYXRlcnZhXCIsXG4gICAgXCJjYXR0dXNcIixcbiAgICBcImNhdWRhXCIsXG4gICAgXCJjYXVzYVwiLFxuICAgIFwiY2F1dGVcIixcbiAgICBcImNhdmVvXCIsXG4gICAgXCJjYXZ1c1wiLFxuICAgIFwiY2Vkb1wiLFxuICAgIFwiY2VsZWJyZXJcIixcbiAgICBcImNlbGVyXCIsXG4gICAgXCJjZWxvXCIsXG4gICAgXCJjZW5hXCIsXG4gICAgXCJjZW5hY3VsdW1cIixcbiAgICBcImNlbm9cIixcbiAgICBcImNlbnN1cmFcIixcbiAgICBcImNlbnR1bVwiLFxuICAgIFwiY2Vybm9cIixcbiAgICBcImNlcm51dXNcIixcbiAgICBcImNlcnRlXCIsXG4gICAgXCJjZXJ0b1wiLFxuICAgIFwiY2VydHVzXCIsXG4gICAgXCJjZXJ2dXNcIixcbiAgICBcImNldGVyYVwiLFxuICAgIFwiY2hhcmlzbWFcIixcbiAgICBcImNoaXJvZ3JhcGh1bVwiLFxuICAgIFwiY2lib1wiLFxuICAgIFwiY2lidXNcIixcbiAgICBcImNpY3V0YVwiLFxuICAgIFwiY2lsaWNpdW1cIixcbiAgICBcImNpbWVudGFyaXVzXCIsXG4gICAgXCJjaW1pbmF0aW9cIixcbiAgICBcImNpbmlzXCIsXG4gICAgXCJjaXJjdW12ZW5pb1wiLFxuICAgIFwiY2l0b1wiLFxuICAgIFwiY2l2aXNcIixcbiAgICBcImNpdml0YXNcIixcbiAgICBcImNsYW1cIixcbiAgICBcImNsYW1vXCIsXG4gICAgXCJjbGFyb1wiLFxuICAgIFwiY2xhcnVzXCIsXG4gICAgXCJjbGF1ZGVvXCIsXG4gICAgXCJjbGF1c3RydW1cIixcbiAgICBcImNsZW1lbnRpYVwiLFxuICAgIFwiY2xpYmFudXNcIixcbiAgICBcImNvYWR1bmF0aW9cIixcbiAgICBcImNvYWVncmVzY29cIixcbiAgICBcImNvZXBpXCIsXG4gICAgXCJjb2VyY2VvXCIsXG4gICAgXCJjb2dpdG9cIixcbiAgICBcImNvZ25hdHVzXCIsXG4gICAgXCJjb2dub21lblwiLFxuICAgIFwiY29nb1wiLFxuICAgIFwiY29oYWVyb1wiLFxuICAgIFwiY29oaWJlb1wiLFxuICAgIFwiY29ob3JzXCIsXG4gICAgXCJjb2xsaWdvXCIsXG4gICAgXCJjb2xsb2NvXCIsXG4gICAgXCJjb2xsdW1cIixcbiAgICBcImNvbG9cIixcbiAgICBcImNvbG9yXCIsXG4gICAgXCJjb21hXCIsXG4gICAgXCJjb21iaWJvXCIsXG4gICAgXCJjb21idXJvXCIsXG4gICAgXCJjb21lZG9cIixcbiAgICBcImNvbWVzXCIsXG4gICAgXCJjb21ldGVzXCIsXG4gICAgXCJjb21pc1wiLFxuICAgIFwiY29taXRhdHVzXCIsXG4gICAgXCJjb21tZW1vcm9cIixcbiAgICBcImNvbW1pbm9yXCIsXG4gICAgXCJjb21tb2RvXCIsXG4gICAgXCJjb21tdW5pc1wiLFxuICAgIFwiY29tcGFyb1wiLFxuICAgIFwiY29tcGVsbG9cIixcbiAgICBcImNvbXBsZWN0dXNcIixcbiAgICBcImNvbXBvbm9cIixcbiAgICBcImNvbXByZWhlbmRvXCIsXG4gICAgXCJjb21wdHVzXCIsXG4gICAgXCJjb25hdHVzXCIsXG4gICAgXCJjb25jZWRvXCIsXG4gICAgXCJjb25jaWRvXCIsXG4gICAgXCJjb25jdWxjb1wiLFxuICAgIFwiY29uZGljb1wiLFxuICAgIFwiY29uZHVjb1wiLFxuICAgIFwiY29uZmVyb1wiLFxuICAgIFwiY29uZmlkb1wiLFxuICAgIFwiY29uZm9ydG9cIixcbiAgICBcImNvbmZ1Z29cIixcbiAgICBcImNvbmdyZWdhdGlvXCIsXG4gICAgXCJjb25pY2lvXCIsXG4gICAgXCJjb25pZWN0b1wiLFxuICAgIFwiY29uaXRvclwiLFxuICAgIFwiY29uaXVyYXRpb1wiLFxuICAgIFwiY29ub3JcIixcbiAgICBcImNvbnF1ZXJvclwiLFxuICAgIFwiY29uc2NlbmRvXCIsXG4gICAgXCJjb25zZXJ2b1wiLFxuICAgIFwiY29uc2lkZXJvXCIsXG4gICAgXCJjb25zcGVyZ29cIixcbiAgICBcImNvbnN0YW5zXCIsXG4gICAgXCJjb25zdWFzb3JcIixcbiAgICBcImNvbnRhYmVzY29cIixcbiAgICBcImNvbnRlZ29cIixcbiAgICBcImNvbnRpZ29cIixcbiAgICBcImNvbnRyYVwiLFxuICAgIFwiY29udHVyYm9cIixcbiAgICBcImNvbnZlbnR1c1wiLFxuICAgIFwiY29udm9jb1wiLFxuICAgIFwiY29waWFcIixcbiAgICBcImNvcGlvc2VcIixcbiAgICBcImNvcm51XCIsXG4gICAgXCJjb3JvbmFcIixcbiAgICBcImNvcnB1c1wiLFxuICAgIFwiY29ycmVwdGl1c1wiLFxuICAgIFwiY29ycmlnb1wiLFxuICAgIFwiY29ycm9ib3JvXCIsXG4gICAgXCJjb3JydW1wb1wiLFxuICAgIFwiY29ydXNjdXNcIixcbiAgICBcImNvdGlkaWVcIixcbiAgICBcImNyYXB1bGFcIixcbiAgICBcImNyYXNcIixcbiAgICBcImNyYXN0aW51c1wiLFxuICAgIFwiY3JlYXRvclwiLFxuICAgIFwiY3JlYmVyXCIsXG4gICAgXCJjcmVicm9cIixcbiAgICBcImNyZWRvXCIsXG4gICAgXCJjcmVvXCIsXG4gICAgXCJjcmVwdGlvXCIsXG4gICAgXCJjcmVwdXNjdWx1bVwiLFxuICAgIFwiY3Jlc2NvXCIsXG4gICAgXCJjcmV0YVwiLFxuICAgIFwiY3JpYnJvXCIsXG4gICAgXCJjcmluaXNcIixcbiAgICBcImNydWNpYW1lbnR1bVwiLFxuICAgIFwiY3J1ZGVsaXNcIixcbiAgICBcImNydWVudHVzXCIsXG4gICAgXCJjcnVyXCIsXG4gICAgXCJjcnVzdHVsdW1cIixcbiAgICBcImNydXhcIixcbiAgICBcImN1YmljdWxhcmlzXCIsXG4gICAgXCJjdWJpdHVtXCIsXG4gICAgXCJjdWJvXCIsXG4gICAgXCJjdWlcIixcbiAgICBcImN1aXVzXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwiY3VscG9cIixcbiAgICBcImN1bHRlbGx1c1wiLFxuICAgIFwiY3VsdHVyYVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJjdW5hYnVsYVwiLFxuICAgIFwiY3VuYWVcIixcbiAgICBcImN1bmN0YXRpb1wiLFxuICAgIFwiY3VwaWRpdGFzXCIsXG4gICAgXCJjdXBpb1wiLFxuICAgIFwiY3VwcGVkaWFcIixcbiAgICBcImN1cHJlc3N1c1wiLFxuICAgIFwiY3VyXCIsXG4gICAgXCJjdXJhXCIsXG4gICAgXCJjdXJhdGlvXCIsXG4gICAgXCJjdXJpYVwiLFxuICAgIFwiY3VyaW9zaXRhc1wiLFxuICAgIFwiY3VyaXNcIixcbiAgICBcImN1cm9cIixcbiAgICBcImN1cnJpY3VsdW1cIixcbiAgICBcImN1cnJ1c1wiLFxuICAgIFwiY3Vyc2ltXCIsXG4gICAgXCJjdXJzb1wiLFxuICAgIFwiY3Vyc3VzXCIsXG4gICAgXCJjdXJ0b1wiLFxuICAgIFwiY3VydHVzXCIsXG4gICAgXCJjdXJ2b1wiLFxuICAgIFwiY3VydnVzXCIsXG4gICAgXCJjdXN0b2RpYVwiLFxuICAgIFwiZGFtbmF0aW9cIixcbiAgICBcImRhbW5vXCIsXG4gICAgXCJkYXBpZmVyXCIsXG4gICAgXCJkZWJlb1wiLFxuICAgIFwiZGViaWxpdG9cIixcbiAgICBcImRlY2Vuc1wiLFxuICAgIFwiZGVjZXJub1wiLFxuICAgIFwiZGVjZXRcIixcbiAgICBcImRlY2ltdXNcIixcbiAgICBcImRlY2lwaW9cIixcbiAgICBcImRlY29yXCIsXG4gICAgXCJkZWNyZXR1bVwiLFxuICAgIFwiZGVjdW1ib1wiLFxuICAgIFwiZGVkZWNvclwiLFxuICAgIFwiZGVkaWNvXCIsXG4gICAgXCJkZWR1Y29cIixcbiAgICBcImRlZmFlY29cIixcbiAgICBcImRlZmVuZG9cIixcbiAgICBcImRlZmVyb1wiLFxuICAgIFwiZGVmZXNzdXNcIixcbiAgICBcImRlZmV0aXNjb3JcIixcbiAgICBcImRlZmljaW9cIixcbiAgICBcImRlZmlnb1wiLFxuICAgIFwiZGVmbGVvXCIsXG4gICAgXCJkZWZsdW9cIixcbiAgICBcImRlZnVuZ29cIixcbiAgICBcImRlZ2VuZXJvXCIsXG4gICAgXCJkZWdlcm9cIixcbiAgICBcImRlZ3VzdG9cIixcbiAgICBcImRlaW5kZVwiLFxuICAgIFwiZGVsZWN0YXRpb1wiLFxuICAgIFwiZGVsZWdvXCIsXG4gICAgXCJkZWxlb1wiLFxuICAgIFwiZGVsaWJlcm9cIixcbiAgICBcImRlbGljYXRlXCIsXG4gICAgXCJkZWxpbnF1b1wiLFxuICAgIFwiZGVsdWRvXCIsXG4gICAgXCJkZW1lbnNcIixcbiAgICBcImRlbWVyZ29cIixcbiAgICBcImRlbWl0dG9cIixcbiAgICBcImRlbW9cIixcbiAgICBcImRlbW9uc3Ryb1wiLFxuICAgIFwiZGVtb3JvclwiLFxuICAgIFwiZGVtdWxjZW9cIixcbiAgICBcImRlbXVtXCIsXG4gICAgXCJkZW5lZ29cIixcbiAgICBcImRlbmlxdWVcIixcbiAgICBcImRlbnNcIixcbiAgICBcImRlbnVuY2lvXCIsXG4gICAgXCJkZW51b1wiLFxuICAgIFwiZGVvcnN1bVwiLFxuICAgIFwiZGVwZXJlb1wiLFxuICAgIFwiZGVwb25vXCIsXG4gICAgXCJkZXBvcHVsb1wiLFxuICAgIFwiZGVwb3J0b1wiLFxuICAgIFwiZGVwcmFlZG9yXCIsXG4gICAgXCJkZXByZWNhdG9yXCIsXG4gICAgXCJkZXByaW1vXCIsXG4gICAgXCJkZXByb21vXCIsXG4gICAgXCJkZXB1bHNvXCIsXG4gICAgXCJkZXB1dG9cIixcbiAgICBcImRlcmVsaW5xdW9cIixcbiAgICBcImRlcmlkZW9cIixcbiAgICBcImRlcmlwaW9cIixcbiAgICBcImRlc2lkZXJvXCIsXG4gICAgXCJkZXNpbm9cIixcbiAgICBcImRlc2lwaW9cIixcbiAgICBcImRlc29sb1wiLFxuICAgIFwiZGVzcGFyYXR1c1wiLFxuICAgIFwiZGVzcGVjdG9cIixcbiAgICBcImRlc3Bpcm1hdGlvXCIsXG4gICAgXCJpbmZpdFwiLFxuICAgIFwiaW5mbGFtbWF0aW9cIixcbiAgICBcInBhZW5zXCIsXG4gICAgXCJwYXRpb3JcIixcbiAgICBcInBhdHJpYVwiLFxuICAgIFwicGF0cm9jaW5vclwiLFxuICAgIFwicGF0cnV1c1wiLFxuICAgIFwicGF1Y2lcIixcbiAgICBcInBhdWxhdGltXCIsXG4gICAgXCJwYXVwZXJcIixcbiAgICBcInBheFwiLFxuICAgIFwicGVjY2F0dXNcIixcbiAgICBcInBlY2NvXCIsXG4gICAgXCJwZWN0b1wiLFxuICAgIFwicGVjdHVzXCIsXG4gICAgXCJwZWN1bmlhXCIsXG4gICAgXCJwZWN1c1wiLFxuICAgIFwicGVpb3JcIixcbiAgICBcInBlbFwiLFxuICAgIFwib2NlclwiLFxuICAgIFwic29jaXVzXCIsXG4gICAgXCJzb2RhbGl0YXNcIixcbiAgICBcInNvbFwiLFxuICAgIFwic29sZW9cIixcbiAgICBcInNvbGlvXCIsXG4gICAgXCJzb2xpdHVkb1wiLFxuICAgIFwic29saXVtXCIsXG4gICAgXCJzb2xsZXJzXCIsXG4gICAgXCJzb2xsaWNpdG9cIixcbiAgICBcInNvbHVtXCIsXG4gICAgXCJzb2x1c1wiLFxuICAgIFwic29sdXRpb1wiLFxuICAgIFwic29sdm9cIixcbiAgICBcInNvbW5pY3Vsb3N1c1wiLFxuICAgIFwic29tbnVzXCIsXG4gICAgXCJzb25pdHVzXCIsXG4gICAgXCJzb25vXCIsXG4gICAgXCJzb3BoaXNtYXRhXCIsXG4gICAgXCJzb3BvclwiLFxuICAgIFwic29yZGVvXCIsXG4gICAgXCJzb3J0aXR1c1wiLFxuICAgIFwic3BhcmdvXCIsXG4gICAgXCJzcGVjaW9zdXNcIixcbiAgICBcInNwZWN0YWN1bHVtXCIsXG4gICAgXCJzcGVjdWx1bVwiLFxuICAgIFwic3Blcm5vXCIsXG4gICAgXCJzcGVyb1wiLFxuICAgIFwic3Blc1wiLFxuICAgIFwic3BpY3VsdW1cIixcbiAgICBcInNwaXJpdHVzXCIsXG4gICAgXCJzcG9saWF0aW9cIixcbiAgICBcInNwb250ZVwiLFxuICAgIFwic3RhYmlsaXNcIixcbiAgICBcInN0YXRpbVwiLFxuICAgIFwic3RhdHVhXCIsXG4gICAgXCJzdGVsbGFcIixcbiAgICBcInN0aWxsaWNpZGl1bVwiLFxuICAgIFwic3RpcGVzXCIsXG4gICAgXCJzdGlwc1wiLFxuICAgIFwic3RvXCIsXG4gICAgXCJzdHJlbnV1c1wiLFxuICAgIFwic3RydWVzXCIsXG4gICAgXCJzdHVkaW9cIixcbiAgICBcInN0dWx0dXNcIixcbiAgICBcInN1YWRlb1wiLFxuICAgIFwic3Vhc29yaWFcIixcbiAgICBcInN1YlwiLFxuICAgIFwic3ViaXRvXCIsXG4gICAgXCJzdWJpdW5nb1wiLFxuICAgIFwic3VibGltZVwiLFxuICAgIFwic3VibmVjdG9cIixcbiAgICBcInN1YnNlY29cIixcbiAgICBcInN1YnN0YW50aWFcIixcbiAgICBcInN1YnZlbmlvXCIsXG4gICAgXCJzdWNjZWRvXCIsXG4gICAgXCJzdWNjdXJyb1wiLFxuICAgIFwic3VmZmljaW9cIixcbiAgICBcInN1ZmZvY29cIixcbiAgICBcInN1ZmZyYWdpdW1cIixcbiAgICBcInN1Z2dlcm9cIixcbiAgICBcInN1aVwiLFxuICAgIFwic3VsdW1cIixcbiAgICBcInN1bVwiLFxuICAgIFwic3VtbWFcIixcbiAgICBcInN1bW1pc3NlXCIsXG4gICAgXCJzdW1tb3BlcmVcIixcbiAgICBcInN1bW9cIixcbiAgICBcInN1bXB0dXNcIixcbiAgICBcInN1cGVsbGV4XCIsXG4gICAgXCJzdXBlclwiLFxuICAgIFwic3VwcGVsbGV4XCIsXG4gICAgXCJzdXBwbGFudG9cIixcbiAgICBcInN1cHBvbm9cIixcbiAgICBcInN1cHJhXCIsXG4gICAgXCJzdXJjdWx1c1wiLFxuICAgIFwic3VyZ29cIixcbiAgICBcInN1cnN1bVwiLFxuICAgIFwic3VzY2lwaW9cIixcbiAgICBcInN1c3BlbmRvXCIsXG4gICAgXCJzdXN0aW5lb1wiLFxuICAgIFwic3V1c1wiLFxuICAgIFwic3luYWdvZ2FcIixcbiAgICBcInRhYmVsbGFcIixcbiAgICBcInRhYmVybnVzXCIsXG4gICAgXCJ0YWJlc2NvXCIsXG4gICAgXCJ0YWJnb1wiLFxuICAgIFwidGFidWxhXCIsXG4gICAgXCJ0YWNlb1wiLFxuICAgIFwidGFjdHVzXCIsXG4gICAgXCJ0YWVkaXVtXCIsXG4gICAgXCJ0YWxpb1wiLFxuICAgIFwidGFsaXNcIixcbiAgICBcInRhbHVzXCIsXG4gICAgXCJ0YW1cIixcbiAgICBcInRhbWRpdVwiLFxuICAgIFwidGFtZW5cIixcbiAgICBcInRhbWV0c2lcIixcbiAgICBcInRhbWlzaXVtXCIsXG4gICAgXCJ0YW1xdWFtXCIsXG4gICAgXCJ0YW5kZW1cIixcbiAgICBcInRhbnRpbGx1c1wiLFxuICAgIFwidGFudHVtXCIsXG4gICAgXCJ0YXJkdXNcIixcbiAgICBcInRlZ29cIixcbiAgICBcInRlbWVyaXRhc1wiLFxuICAgIFwidGVtcGVyYW50aWFcIixcbiAgICBcInRlbXBsdW1cIixcbiAgICBcInRlbXB0YXRpb1wiLFxuICAgIFwidGVtcHVzXCIsXG4gICAgXCJ0ZW5heFwiLFxuICAgIFwidGVuZG9cIixcbiAgICBcInRlbmVvXCIsXG4gICAgXCJ0ZW5lclwiLFxuICAgIFwidGVudWlzXCIsXG4gICAgXCJ0ZW51c1wiLFxuICAgIFwidGVwZXNjb1wiLFxuICAgIFwidGVwaWR1c1wiLFxuICAgIFwidGVyXCIsXG4gICAgXCJ0ZXJlYnJvXCIsXG4gICAgXCJ0ZXJlc1wiLFxuICAgIFwidGVyZ2FcIixcbiAgICBcInRlcmdlb1wiLFxuICAgIFwidGVyZ2l2ZXJzYXRpb1wiLFxuICAgIFwidGVyZ29cIixcbiAgICBcInRlcmd1bVwiLFxuICAgIFwidGVybWVzXCIsXG4gICAgXCJ0ZXJtaW5hdGlvXCIsXG4gICAgXCJ0ZXJvXCIsXG4gICAgXCJ0ZXJyYVwiLFxuICAgIFwidGVycmVvXCIsXG4gICAgXCJ0ZXJyaXRvXCIsXG4gICAgXCJ0ZXJyb3JcIixcbiAgICBcInRlcnN1c1wiLFxuICAgIFwidGVydGl1c1wiLFxuICAgIFwidGVzdGltb25pdW1cIixcbiAgICBcInRleG9cIixcbiAgICBcInRleHRpbGlzXCIsXG4gICAgXCJ0ZXh0b3JcIixcbiAgICBcInRleHR1c1wiLFxuICAgIFwidGhhbGFzc2ludXNcIixcbiAgICBcInRoZWF0cnVtXCIsXG4gICAgXCJ0aGVjYVwiLFxuICAgIFwidGhlbWFcIixcbiAgICBcInRoZW9sb2d1c1wiLFxuICAgIFwidGhlcm1hZVwiLFxuICAgIFwidGhlc2F1cnVzXCIsXG4gICAgXCJ0aGVzaXNcIixcbiAgICBcInRob3JheFwiLFxuICAgIFwidGh5bWJyYVwiLFxuICAgIFwidGh5bXVtXCIsXG4gICAgXCJ0aWJpXCIsXG4gICAgXCJ0aW1pZHVzXCIsXG4gICAgXCJ0aW1vclwiLFxuICAgIFwidGl0dWx1c1wiLFxuICAgIFwidG9sZXJvXCIsXG4gICAgXCJ0b2xsb1wiLFxuICAgIFwidG9uZGVvXCIsXG4gICAgXCJ0b25zb3JcIixcbiAgICBcInRvcnF1ZW9cIixcbiAgICBcInRvcnJlbnNcIixcbiAgICBcInRvdFwiLFxuICAgIFwidG90aWRlbVwiLFxuICAgIFwidG90aWVzXCIsXG4gICAgXCJ0b3R1c1wiLFxuICAgIFwidHJhY3RvXCIsXG4gICAgXCJ0cmFkb1wiLFxuICAgIFwidHJhaG9cIixcbiAgICBcInRyYW5zXCIsXG4gICAgXCJ0cmVkZWNpbVwiLFxuICAgIFwidHJlbW9cIixcbiAgICBcInRyZXBpZGVcIixcbiAgICBcInRyZXNcIixcbiAgICBcInRyaWJ1b1wiLFxuICAgIFwidHJpY2VzaW11c1wiLFxuICAgIFwidHJpZHVhbmFcIixcbiAgICBcInRyaWdpbnRhXCIsXG4gICAgXCJ0cmlwdWRpb1wiLFxuICAgIFwidHJpc3Rpc1wiLFxuICAgIFwidHJpdW1waHVzXCIsXG4gICAgXCJ0cnVjaWRvXCIsXG4gICAgXCJ0cnVjdWxlbnRlclwiLFxuICAgIFwidHViaW5ldXNcIixcbiAgICBcInR1aVwiLFxuICAgIFwidHVtXCIsXG4gICAgXCJ0dW11bHR1c1wiLFxuICAgIFwidHVuY1wiLFxuICAgIFwidHVyYmFcIixcbiAgICBcInR1cmJvXCIsXG4gICAgXCJ0dXJwZVwiLFxuICAgIFwidHVycGlzXCIsXG4gICAgXCJ0dXRhbWVuXCIsXG4gICAgXCJ0dXRpc1wiLFxuICAgIFwidHlyYW5udXNcIixcbiAgICBcInViZXJyaW1lXCIsXG4gICAgXCJ1YmlcIixcbiAgICBcInVsY2lzY29yXCIsXG4gICAgXCJ1bGx1c1wiLFxuICAgIFwidWx0ZXJpdXNcIixcbiAgICBcInVsdGlvXCIsXG4gICAgXCJ1bHRyYVwiLFxuICAgIFwidW1icmFcIixcbiAgICBcInVtZXJ1c1wiLFxuICAgIFwidW1xdWFtXCIsXG4gICAgXCJ1bmFcIixcbiAgICBcInVuZGVcIixcbiAgICBcInVuZGlxdWVcIixcbiAgICBcInVuaXZlcnNlXCIsXG4gICAgXCJ1bnVzXCIsXG4gICAgXCJ1cmJhbnVzXCIsXG4gICAgXCJ1cmJzXCIsXG4gICAgXCJ1cmVkb1wiLFxuICAgIFwidXNpdGFzXCIsXG4gICAgXCJ1c3F1ZVwiLFxuICAgIFwidXN0aWxvXCIsXG4gICAgXCJ1c3R1bG9cIixcbiAgICBcInVzdXNcIixcbiAgICBcInV0ZXJcIixcbiAgICBcInV0ZXJxdWVcIixcbiAgICBcInV0aWxpc1wiLFxuICAgIFwidXRpcXVlXCIsXG4gICAgXCJ1dG9yXCIsXG4gICAgXCJ1dHBvdGVcIixcbiAgICBcInV0cmltcXVlXCIsXG4gICAgXCJ1dHJvcXVlXCIsXG4gICAgXCJ1dHJ1bVwiLFxuICAgIFwidXhvclwiLFxuICAgIFwidmFjb1wiLFxuICAgIFwidmFjdXVzXCIsXG4gICAgXCJ2YWRvXCIsXG4gICAgXCJ2YWVcIixcbiAgICBcInZhbGRlXCIsXG4gICAgXCJ2YWxlbnNcIixcbiAgICBcInZhbGVvXCIsXG4gICAgXCJ2YWxldHVkb1wiLFxuICAgIFwidmFsaWR1c1wiLFxuICAgIFwidmFsbHVtXCIsXG4gICAgXCJ2YXB1bHVzXCIsXG4gICAgXCJ2YXJpZXRhc1wiLFxuICAgIFwidmFyaXVzXCIsXG4gICAgXCJ2ZWhlbWVuc1wiLFxuICAgIFwidmVsXCIsXG4gICAgXCJ2ZWxvY2l0ZXJcIixcbiAgICBcInZlbHVtXCIsXG4gICAgXCJ2ZWx1dFwiLFxuICAgIFwidmVuaWFcIixcbiAgICBcInZlbmlvXCIsXG4gICAgXCJ2ZW50aXRvXCIsXG4gICAgXCJ2ZW50b3N1c1wiLFxuICAgIFwidmVudHVzXCIsXG4gICAgXCJ2ZW51c3Rhc1wiLFxuICAgIFwidmVyXCIsXG4gICAgXCJ2ZXJiZXJhXCIsXG4gICAgXCJ2ZXJidW1cIixcbiAgICBcInZlcmVcIixcbiAgICBcInZlcmVjdW5kaWFcIixcbiAgICBcInZlcmVvclwiLFxuICAgIFwidmVyZ29cIixcbiAgICBcInZlcml0YXNcIixcbiAgICBcInZlcm9cIixcbiAgICBcInZlcnN1c1wiLFxuICAgIFwidmVydG9cIixcbiAgICBcInZlcnVtdGFtZW5cIixcbiAgICBcInZlcnVzXCIsXG4gICAgXCJ2ZXNjb1wiLFxuICAgIFwidmVzaWNhXCIsXG4gICAgXCJ2ZXNwZXJcIixcbiAgICBcInZlc3BpbGxvXCIsXG4gICAgXCJ2ZXN0ZXJcIixcbiAgICBcInZlc3RpZ2l1bVwiLFxuICAgIFwidmVzdHJ1bVwiLFxuICAgIFwidmV0dXNcIixcbiAgICBcInZpYVwiLFxuICAgIFwidmljaW51c1wiLFxuICAgIFwidmljaXNzaXR1ZG9cIixcbiAgICBcInZpY3RvcmlhXCIsXG4gICAgXCJ2aWN0dXNcIixcbiAgICBcInZpZGVsaWNldFwiLFxuICAgIFwidmlkZW9cIixcbiAgICBcInZpZHVhdGFcIixcbiAgICBcInZpZHVvXCIsXG4gICAgXCJ2aWdpbG9cIixcbiAgICBcInZpZ29yXCIsXG4gICAgXCJ2aWxpY3VzXCIsXG4gICAgXCJ2aWxpc1wiLFxuICAgIFwidmlsaXRhc1wiLFxuICAgIFwidmlsbGFcIixcbiAgICBcInZpbmNvXCIsXG4gICAgXCJ2aW5jdWx1bVwiLFxuICAgIFwidmluZGljb1wiLFxuICAgIFwidmluaXRvclwiLFxuICAgIFwidmludW1cIixcbiAgICBcInZpclwiLFxuICAgIFwidmlyZ2FcIixcbiAgICBcInZpcmdvXCIsXG4gICAgXCJ2aXJpZGlzXCIsXG4gICAgXCJ2aXJpbGl0ZXJcIixcbiAgICBcInZpcnR1c1wiLFxuICAgIFwidmlzXCIsXG4gICAgXCJ2aXNjdXNcIixcbiAgICBcInZpdGFcIixcbiAgICBcInZpdGlvc3VzXCIsXG4gICAgXCJ2aXRpdW1cIixcbiAgICBcInZpdG9cIixcbiAgICBcInZpdm9cIixcbiAgICBcInZpeFwiLFxuICAgIFwidm9iaXNcIixcbiAgICBcInZvY2lmZXJvclwiLFxuICAgIFwidm9jb1wiLFxuICAgIFwidm9sYXRpY3VzXCIsXG4gICAgXCJ2b2xvXCIsXG4gICAgXCJ2b2x1YmlsaXNcIixcbiAgICBcInZvbHVudGFyaXVzXCIsXG4gICAgXCJ2b2x1cFwiLFxuICAgIFwidm9sdXRhYnJ1bVwiLFxuICAgIFwidm9sdmFcIixcbiAgICBcInZvbWVyXCIsXG4gICAgXCJ2b21pY2FcIixcbiAgICBcInZvbWl0b1wiLFxuICAgIFwidm9yYWdvXCIsXG4gICAgXCJ2b3JheFwiLFxuICAgIFwidm9yb1wiLFxuICAgIFwidm9zXCIsXG4gICAgXCJ2b3R1bVwiLFxuICAgIFwidm92ZW9cIixcbiAgICBcInZveFwiLFxuICAgIFwidnVsYXJpdGVyXCIsXG4gICAgXCJ2dWxnYXJpc1wiLFxuICAgIFwidnVsZ2l2YWd1c1wiLFxuICAgIFwidnVsZ29cIixcbiAgICBcInZ1bGd1c1wiLFxuICAgIFwidnVsbmVyb1wiLFxuICAgIFwidnVsbnVzXCIsXG4gICAgXCJ2dWxwZXNcIixcbiAgICBcInZ1bHRpY3VsdXNcIixcbiAgICBcInZ1bHR1b3N1c1wiLFxuICAgIFwieGlwaGlhc1wiXG4gIF1cbn07XG5mci5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiRW56b1wiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk1hdGhpc1wiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIkh1Z29cIixcbiAgICBcIlRow6lvXCIsXG4gICAgXCJUb21cIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJSYXBoYcOrbFwiLFxuICAgIFwiQ2zDqW1lbnRcIixcbiAgICBcIkzDqW9cIixcbiAgICBcIk1hdGjDqW9cIixcbiAgICBcIk1heGltZVwiLFxuICAgIFwiQWxleGFuZHJlXCIsXG4gICAgXCJBbnRvaW5lXCIsXG4gICAgXCJZYW5pc1wiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiQmFwdGlzdGVcIixcbiAgICBcIkFsZXhpc1wiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJKdWxlc1wiLFxuICAgIFwiRXRoYW5cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIlF1ZW50aW5cIixcbiAgICBcIkF4ZWxcIixcbiAgICBcIkV2YW5cIixcbiAgICBcIk1hdHTDqW9cIixcbiAgICBcIlJvbWFpblwiLFxuICAgIFwiVmFsZW50aW5cIixcbiAgICBcIk1heGVuY2VcIixcbiAgICBcIk5vYVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiSnVsaWVuXCIsXG4gICAgXCJNYWVsXCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlJheWFuXCIsXG4gICAgXCJWaWN0b3JcIixcbiAgICBcIk1vaGFtZWRcIixcbiAgICBcIkFkcmllblwiLFxuICAgIFwiS3lsaWFuXCIsXG4gICAgXCJTYWNoYVwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIkzDqWFcIixcbiAgICBcIkNsYXJhXCIsXG4gICAgXCJNYW5vblwiLFxuICAgIFwiQ2hsb8OpXCIsXG4gICAgXCJDYW1pbGxlXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiQW5hw69zXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiT2PDqWFuZVwiLFxuICAgIFwiTGlsb3VcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIlJvbWFuZVwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIkxvdWlzZVwiLFxuICAgIFwiSnVsaWV0dGVcIixcbiAgICBcIkNsw6ltZW5jZVwiLFxuICAgIFwiQ8OpbGlhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGVuYVwiLFxuICAgIFwiTWHDq2x5c1wiLFxuICAgIFwiQ2hhcmxvdHRlXCIsXG4gICAgXCJBbWJyZVwiLFxuICAgIFwiTWFldmFcIixcbiAgICBcIlBhdWxpbmVcIixcbiAgICBcIkxpbmFcIixcbiAgICBcIkplYW5uZVwiLFxuICAgIFwiTG91XCIsXG4gICAgXCJOb8OpbWllXCIsXG4gICAgXCJKdXN0aW5lXCIsXG4gICAgXCJMb3VuYVwiLFxuICAgIFwiRWxpc2FcIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJNYcOrbGxlXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIk3DqWxpc3NhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiTWFydGluXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJEdWJvaXNcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJQZXRpdFwiLFxuICAgIFwiRHVyYW5kXCIsXG4gICAgXCJMZXJveVwiLFxuICAgIFwiTW9yZWF1XCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiTGF1cmVudFwiLFxuICAgIFwiTGVmZWJ2cmVcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiR2FyY2lhXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiQmVydHJhbmRcIixcbiAgICBcIlJvdXhcIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIkZvdXJuaWVyXCIsXG4gICAgXCJNb3JlbFwiLFxuICAgIFwiR2lyYXJkXCIsXG4gICAgXCJBbmRyZVwiLFxuICAgIFwiTGVmZXZyZVwiLFxuICAgIFwiTWVyY2llclwiLFxuICAgIFwiRHVwb250XCIsXG4gICAgXCJMYW1iZXJ0XCIsXG4gICAgXCJCb25uZXRcIixcbiAgICBcIkZyYW5jb2lzXCIsXG4gICAgXCJNYXJ0aW5lelwiLFxuICAgIFwiTGVncmFuZFwiLFxuICAgIFwiR2FybmllclwiLFxuICAgIFwiRmF1cmVcIixcbiAgICBcIlJvdXNzZWF1XCIsXG4gICAgXCJCbGFuY1wiLFxuICAgIFwiR3VlcmluXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJSb3Vzc2VsXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJQZXJyaW5cIixcbiAgICBcIk1vcmluXCIsXG4gICAgXCJNYXRoaWV1XCIsXG4gICAgXCJDbGVtZW50XCIsXG4gICAgXCJHYXV0aGllclwiLFxuICAgIFwiRHVtb250XCIsXG4gICAgXCJMb3BlelwiLFxuICAgIFwiRm9udGFpbmVcIixcbiAgICBcIkNoZXZhbGllclwiLFxuICAgIFwiUm9iaW5cIixcbiAgICBcIk1hc3NvblwiLFxuICAgIFwiU2FuY2hlelwiLFxuICAgIFwiR2VyYXJkXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIkJveWVyXCIsXG4gICAgXCJEZW5pc1wiLFxuICAgIFwiTGVtYWlyZVwiLFxuICAgIFwiRHV2YWxcIixcbiAgICBcIkpvbHlcIixcbiAgICBcIkdhdXRpZXJcIixcbiAgICBcIlJvZ2VyXCIsXG4gICAgXCJSb2NoZVwiLFxuICAgIFwiUm95XCIsXG4gICAgXCJOb2VsXCIsXG4gICAgXCJNZXllclwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk1ldW5pZXJcIixcbiAgICBcIkplYW5cIixcbiAgICBcIlBlcmV6XCIsXG4gICAgXCJNYXJjaGFuZFwiLFxuICAgIFwiRHVmb3VyXCIsXG4gICAgXCJCbGFuY2hhcmRcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJCYXJiaWVyXCIsXG4gICAgXCJCcnVuXCIsXG4gICAgXCJEdW1hc1wiLFxuICAgIFwiQnJ1bmV0XCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJMZXJvdXhcIixcbiAgICBcIkNvbGluXCIsXG4gICAgXCJGZXJuYW5kZXpcIixcbiAgICBcIlBpZXJyZVwiLFxuICAgIFwiUmVuYXJkXCIsXG4gICAgXCJBcm5hdWRcIixcbiAgICBcIlJvbGxhbmRcIixcbiAgICBcIkNhcm9uXCIsXG4gICAgXCJBdWJlcnRcIixcbiAgICBcIkdpcmF1ZFwiLFxuICAgIFwiTGVjbGVyY1wiLFxuICAgIFwiVmlkYWxcIixcbiAgICBcIkJvdXJnZW9pc1wiLFxuICAgIFwiUmVuYXVkXCIsXG4gICAgXCJMZW1vaW5lXCIsXG4gICAgXCJQaWNhcmRcIixcbiAgICBcIkdhaWxsYXJkXCIsXG4gICAgXCJQaGlsaXBwZVwiLFxuICAgIFwiTGVjbGVyY3FcIixcbiAgICBcIkxhY3JvaXhcIixcbiAgICBcIkZhYnJlXCIsXG4gICAgXCJEdXB1aXNcIixcbiAgICBcIk9saXZpZXJcIixcbiAgICBcIlJvZHJpZ3VlelwiLFxuICAgIFwiRGEgc2lsdmFcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiTG91aXNcIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkd1aWxsb3RcIixcbiAgICBcIlJpdmllcmVcIixcbiAgICBcIkxlIGdhbGxcIixcbiAgICBcIkd1aWxsYXVtZVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiUmV5XCIsXG4gICAgXCJNb3VsaW5cIixcbiAgICBcIkdvbnphbGV6XCIsXG4gICAgXCJCZXJnZXJcIixcbiAgICBcIkxlY29tdGVcIixcbiAgICBcIk1lbmFyZFwiLFxuICAgIFwiRmxldXJ5XCIsXG4gICAgXCJEZXNjaGFtcHNcIixcbiAgICBcIkNhcnBlbnRpZXJcIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiQmVub2l0XCIsXG4gICAgXCJQYXJpc1wiLFxuICAgIFwiTWFpbGxhcmRcIixcbiAgICBcIk1hcmNoYWxcIixcbiAgICBcIkF1YnJ5XCIsXG4gICAgXCJWYXNzZXVyXCIsXG4gICAgXCJMZSByb3V4XCIsXG4gICAgXCJSZW5hdWx0XCIsXG4gICAgXCJKYWNxdWV0XCIsXG4gICAgXCJDb2xsZXRcIixcbiAgICBcIlByZXZvc3RcIixcbiAgICBcIlBvaXJpZXJcIixcbiAgICBcIkNoYXJwZW50aWVyXCIsXG4gICAgXCJSb3llclwiLFxuICAgIFwiSHVldFwiLFxuICAgIFwiQmFyb25cIixcbiAgICBcIkR1cHV5XCIsXG4gICAgXCJQb25zXCIsXG4gICAgXCJQYXVsXCIsXG4gICAgXCJMYWluZVwiLFxuICAgIFwiQ2FycmVcIixcbiAgICBcIkJyZXRvblwiLFxuICAgIFwiUmVteVwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJQZXJyb3RcIixcbiAgICBcIkd1eW90XCIsXG4gICAgXCJCYXJyZVwiLFxuICAgIFwiTWFydHlcIixcbiAgICBcIkNvdXNpblwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIk1cIixcbiAgICBcIk1tZVwiLFxuICAgIFwiTWxsZVwiLFxuICAgIFwiRHJcIixcbiAgICBcIlByb2ZcIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzZXVyXCIsXG4gICAgICBcIkV4ZWN1dGlmXCIsXG4gICAgICBcIk1hbmFnZXJcIixcbiAgICAgIFwiSW5nZW5pZXVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RlXCIsXG4gICAgICBcIkRpcmVjdGV1clwiLFxuICAgICAgXCJDb29yZGluYXRldXJcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRldXJcIixcbiAgICAgIFwiQXJjaGl0ZWN0ZVwiLFxuICAgICAgXCJBbmFseXN0ZVwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJUZWNobmljaWVuXCIsXG4gICAgICBcIkRldmVsb3BwZXVyXCIsXG4gICAgICBcIlByb2R1Y3RldXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiU3RhZ2lhaXJlXCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2xhc3RfbmFtZX0gI3tmaXJzdF9uYW1lfVwiXG4gIF1cbn07XG5mci5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwMSMjIyMjIyMjXCIsXG4gICAgXCIwMiMjIyMjIyMjXCIsXG4gICAgXCIwMyMjIyMjIyMjXCIsXG4gICAgXCIwNCMjIyMjIyMjXCIsXG4gICAgXCIwNSMjIyMjIyMjXCIsXG4gICAgXCIwNiMjIyMjIyMjXCIsXG4gICAgXCIwNyMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMSMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMiMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMyMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNCMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNSMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNiMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNyMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBpdCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGl0O1xuaXQudGl0bGUgPSBcIkl0YWxpYW5cIjtcbml0LmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiU2FuXCIsXG4gICAgXCJCb3Jnb1wiLFxuICAgIFwiU2VzdG9cIixcbiAgICBcIlF1YXJ0b1wiLFxuICAgIFwiU2V0dGltb1wiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiYSBtYXJlXCIsXG4gICAgXCJsaWRvXCIsXG4gICAgXCJsaWd1cmVcIixcbiAgICBcImRlbCBmcml1bGlcIixcbiAgICBcInNhbGVudGlub1wiLFxuICAgIFwiY2FsYWJyb1wiLFxuICAgIFwidmVuZXRvXCIsXG4gICAgXCJuZWxsJ2VtaWxpYVwiLFxuICAgIFwidW1icm9cIixcbiAgICBcImxhemlhbGVcIixcbiAgICBcInRlcm1lXCIsXG4gICAgXCJzYXJkb1wiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pYVwiLFxuICAgIFwiQWxnZXJpYVwiLFxuICAgIFwiQW1lcmljYW4gU2Ftb2FcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGFydGlkZSAodGVycml0b3JpIGEgc3VkIGRlbCA2MMKwIHBhcmFsbGVsbylcIixcbiAgICBcIkFudGlndWEgZSBCYXJidWRhXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0cmFsaWFcIixcbiAgICBcIkF1c3RyaWFcIixcbiAgICBcIkF6ZXJiYWlqYW5cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhaHJhaW5cIixcbiAgICBcIkJhbmdsYWRlc2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCaWVsb3J1c3NpYVwiLFxuICAgIFwiQmVsZ2lvXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbGl2aWFcIixcbiAgICBcIkJvc25pYSBlIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm91dmV0IElzbGFuZCAoQm91dmV0b3lhKVwiLFxuICAgIFwiQnJhc2lsZVwiLFxuICAgIFwiVGVycml0b3JpbyBkZWxsJ2FyY2lwZWxhZ28gaW5kaWFub1wiLFxuICAgIFwiSXNvbGUgVmVyZ2luaSBCcml0YW5uaWNoZVwiLFxuICAgIFwiQnJ1bmVpIERhcnVzc2FsYW1cIixcbiAgICBcIkJ1bGdhcmlhXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNhbWJvZ2lhXCIsXG4gICAgXCJDYW1lcm9vblwiLFxuICAgIFwiQ2FuYWRhXCIsXG4gICAgXCJDYXBvIFZlcmRlXCIsXG4gICAgXCJJc29sZSBDYXltYW5cIixcbiAgICBcIlJlcHViYmxpY2EgQ2VudHJhbGUgQWZyaWNhbmFcIixcbiAgICBcIkNoYWRcIixcbiAgICBcIkNpbGVcIixcbiAgICBcIkNpbmFcIixcbiAgICBcIklzb2xhIGRpIFBhc3F1YVwiLFxuICAgIFwiSXNvbGEgZGkgQ29jb3MgKEtlZWxpbmcpXCIsXG4gICAgXCJDb2xvbWJpYVwiLFxuICAgIFwiQ29tb3Jvc1wiLFxuICAgIFwiQ29uZ29cIixcbiAgICBcIklzb2xlIENvb2tcIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkNvc3RhIGQnQXZvcmlvXCIsXG4gICAgXCJDcm9hemlhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDaXByb1wiLFxuICAgIFwiUmVwdWJibGljYSBDZWNhXCIsXG4gICAgXCJEYW5pbWFyY2FcIixcbiAgICBcIkdpYnV0aVwiLFxuICAgIFwiUmVwdWJibGljYSBEb21pbmljYW5hXCIsXG4gICAgXCJFcXVhZG9yXCIsXG4gICAgXCJFZ2l0dG9cIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJHdWluZWEgRXF1YXRvcmlhbGVcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdG9uaWFcIixcbiAgICBcIkV0aW9waWFcIixcbiAgICBcIklzb2xlIEZhcm9lXCIsXG4gICAgXCJJc29sZSBGYWxrbGFuZCAoTWFsdmluYXMpXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaW5sYW5kaWFcIixcbiAgICBcIkZyYW5jaWFcIixcbiAgICBcIkd1eWFuYSBGcmFuY2VzZVwiLFxuICAgIFwiUG9saW5lc2lhIEZyYW5jZXNlXCIsXG4gICAgXCJUZXJyaXRvcmkgRnJhbmNlc2kgZGVsIHN1ZFwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiR2VybWFuaWFcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJpbHRlcnJhXCIsXG4gICAgXCJHcmVjaWFcIixcbiAgICBcIkdyb2VubGFuZGlhXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHdWFkYWx1cGFcIixcbiAgICBcIkd1YW1cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3Vlcm5zZXlcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXG4gICAgXCJDaXR0w6AgZGVsIFZhdGljYW5vXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZyBLb25nXCIsXG4gICAgXCJVbmdoZXJpYVwiLFxuICAgIFwiSXNsYW5kYVwiLFxuICAgIFwiSW5kaWFcIixcbiAgICBcIkluZG9uZXNpYVwiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXJhcVwiLFxuICAgIFwiSXJsYW5kYVwiLFxuICAgIFwiSXNvbGEgZGkgTWFuXCIsXG4gICAgXCJJc3JhZWxlXCIsXG4gICAgXCJJdGFsaWFcIixcbiAgICBcIkdpYW1haWNhXCIsXG4gICAgXCJHaWFwcG9uZVwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJHaW9yZGFuaWFcIixcbiAgICBcIkthemFraHN0YW5cIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS29yZWFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiUmVwdWJsaWNjYSBLaXJnaXphXCIsXG4gICAgXCJSZXB1YmJsaWNhIGRlbCBMYW9zXCIsXG4gICAgXCJMYXR2aWFcIixcbiAgICBcIkxpYmFub1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGlieWFuIEFyYWIgSmFtYWhpcml5YVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0dWFuaWFcIixcbiAgICBcIkx1c3NlbWJ1cmdvXCIsXG4gICAgXCJNYWNhb1wiLFxuICAgIFwiTWFjZWRvbmlhXCIsXG4gICAgXCJNYWRhZ2FzY2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGVzaWFcIixcbiAgICBcIk1hbGRpdmVcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJJc29sZSBNYXJzaGFsbFwiLFxuICAgIFwiTWFydGluaWNhXCIsXG4gICAgXCJNYXVyaXRhbmlhXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk1lc3NpY29cIixcbiAgICBcIk1pY3JvbmVzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIlByaW5jaXBhdG8gZGkgTW9uYWNvXCIsXG4gICAgXCJNb25nb2xpYVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTWFyb2Njb1wiLFxuICAgIFwiTW96YW1iaWNvXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkFudGlsbGUgT2xhbmRlc2lcIixcbiAgICBcIk9sYW5kYVwiLFxuICAgIFwiTnVvdmEgQ2FsZWRvbmlhXCIsXG4gICAgXCJOdW92YSBaZWxhbmRhXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJJc29sZSBOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcbiAgICBcIk5vcnZlZ2lhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbGVzdGluYVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YSBOdW92YSBHdWluZWFcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJGaWxpcHBpbmVcIixcbiAgICBcIlBpdGNhaXJuIElzbGFuZHNcIixcbiAgICBcIlBvbG9uaWFcIixcbiAgICBcIlBvcnRvZ2FsbG9cIixcbiAgICBcIlBvcnRvIFJpY29cIixcbiAgICBcIlFhdGFyXCIsXG4gICAgXCJSZXVuaW9uXCIsXG4gICAgXCJSb21hbmlhXCIsXG4gICAgXCJSdXNzaWFcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiU2FuIEJhcnRvbG9tZW9cIixcbiAgICBcIlNhbnQnRWxlbmFcIixcbiAgICBcIlNhaW50IEtpdHRzIGFuZCBOZXZpc1wiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIlNhaW50IE1hcnRpblwiLFxuICAgIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW8gVG9tZSBhbmQgUHJpbmNpcGVcIixcbiAgICBcIkFyYWJpYSBTYXVkaXRhXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTbG92ZW5pYVwiLFxuICAgIFwiSXNvbGUgU29sb21vblwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU3VkIEFmcmljYVwiLFxuICAgIFwiR2VvcmdpYSBkZWwgc3VkIGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgIFwiU3BhZ25hXCIsXG4gICAgXCJTcmkgTGFua2FcIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kc1wiLFxuICAgIFwiU3dhemlsYW5kXCIsXG4gICAgXCJTdmV6aWFcIixcbiAgICBcIlN2aXp6ZXJhXCIsXG4gICAgXCJTaXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppa2lzdGFuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGFpbGFuZGlhXCIsXG4gICAgXCJUaW1vci1MZXN0ZVwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG9rZWxhdVwiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIlRyaW5pZGFkIGUgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2lhXCIsXG4gICAgXCJUdXJjaGlhXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIklzb2xlIGRpIFR1cmtzIGFuZCBDYWljb3NcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3JhaW5hXCIsXG4gICAgXCJFbWlyYXRpIEFyYWJpIFVuaXRpXCIsXG4gICAgXCJSZWdubyBVbml0b1wiLFxuICAgIFwiU3RhdGkgVW5pdGkgZCdBbWVyaWNhXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHNcIixcbiAgICBcIklzb2xlIFZlcmdpbmkgU3RhdHVuaXRlbnNpXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgXCJXZXN0ZXJuIFNhaGFyYVwiLFxuICAgIFwiWWVtZW5cIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiWmltYmFid2VcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIlBpYXp6YVwiLFxuICAgIFwiU3RyYWRhXCIsXG4gICAgXCJWaWFcIixcbiAgICBcIkJvcmdvXCIsXG4gICAgXCJDb250cmFkYVwiLFxuICAgIFwiUm90b25kYVwiLFxuICAgIFwiSW5jcm9jaW9cIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwcGFydGFtZW50byAjI1wiLFxuICAgIFwiUGlhbm8gI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkFncmlnZW50b1wiLFxuICAgIFwiQWxlc3NhbmRyaWFcIixcbiAgICBcIkFuY29uYVwiLFxuICAgIFwiQW9zdGFcIixcbiAgICBcIkFyZXp6b1wiLFxuICAgIFwiQXNjb2xpIFBpY2Vub1wiLFxuICAgIFwiQXN0aVwiLFxuICAgIFwiQXZlbGxpbm9cIixcbiAgICBcIkJhcmlcIixcbiAgICBcIkJhcmxldHRhLUFuZHJpYS1UcmFuaVwiLFxuICAgIFwiQmVsbHVub1wiLFxuICAgIFwiQmVuZXZlbnRvXCIsXG4gICAgXCJCZXJnYW1vXCIsXG4gICAgXCJCaWVsbGFcIixcbiAgICBcIkJvbG9nbmFcIixcbiAgICBcIkJvbHphbm9cIixcbiAgICBcIkJyZXNjaWFcIixcbiAgICBcIkJyaW5kaXNpXCIsXG4gICAgXCJDYWdsaWFyaVwiLFxuICAgIFwiQ2FsdGFuaXNzZXR0YVwiLFxuICAgIFwiQ2FtcG9iYXNzb1wiLFxuICAgIFwiQ2FyYm9uaWEtSWdsZXNpYXNcIixcbiAgICBcIkNhc2VydGFcIixcbiAgICBcIkNhdGFuaWFcIixcbiAgICBcIkNhdGFuemFyb1wiLFxuICAgIFwiQ2hpZXRpXCIsXG4gICAgXCJDb21vXCIsXG4gICAgXCJDb3NlbnphXCIsXG4gICAgXCJDcmVtb25hXCIsXG4gICAgXCJDcm90b25lXCIsXG4gICAgXCJDdW5lb1wiLFxuICAgIFwiRW5uYVwiLFxuICAgIFwiRmVybW9cIixcbiAgICBcIkZlcnJhcmFcIixcbiAgICBcIkZpcmVuemVcIixcbiAgICBcIkZvZ2dpYVwiLFxuICAgIFwiRm9ybMOsLUNlc2VuYVwiLFxuICAgIFwiRnJvc2lub25lXCIsXG4gICAgXCJHZW5vdmFcIixcbiAgICBcIkdvcml6aWFcIixcbiAgICBcIkdyb3NzZXRvXCIsXG4gICAgXCJJbXBlcmlhXCIsXG4gICAgXCJJc2VybmlhXCIsXG4gICAgXCJMYSBTcGV6aWFcIixcbiAgICBcIkwnQXF1aWxhXCIsXG4gICAgXCJMYXRpbmFcIixcbiAgICBcIkxlY2NlXCIsXG4gICAgXCJMZWNjb1wiLFxuICAgIFwiTGl2b3Jub1wiLFxuICAgIFwiTG9kaVwiLFxuICAgIFwiTHVjY2FcIixcbiAgICBcIk1hY2VyYXRhXCIsXG4gICAgXCJNYW50b3ZhXCIsXG4gICAgXCJNYXNzYS1DYXJyYXJhXCIsXG4gICAgXCJNYXRlcmFcIixcbiAgICBcIk1lc3NpbmFcIixcbiAgICBcIk1pbGFub1wiLFxuICAgIFwiTW9kZW5hXCIsXG4gICAgXCJNb256YSBlIGRlbGxhIEJyaWFuemFcIixcbiAgICBcIk5hcG9saVwiLFxuICAgIFwiTm92YXJhXCIsXG4gICAgXCJOdW9yb1wiLFxuICAgIFwiT2xiaWEtVGVtcGlvXCIsXG4gICAgXCJPcmlzdGFub1wiLFxuICAgIFwiUGFkb3ZhXCIsXG4gICAgXCJQYWxlcm1vXCIsXG4gICAgXCJQYXJtYVwiLFxuICAgIFwiUGF2aWFcIixcbiAgICBcIlBlcnVnaWFcIixcbiAgICBcIlBlc2FybyBlIFVyYmlub1wiLFxuICAgIFwiUGVzY2FyYVwiLFxuICAgIFwiUGlhY2VuemFcIixcbiAgICBcIlBpc2FcIixcbiAgICBcIlBpc3RvaWFcIixcbiAgICBcIlBvcmRlbm9uZVwiLFxuICAgIFwiUG90ZW56YVwiLFxuICAgIFwiUHJhdG9cIixcbiAgICBcIlJhZ3VzYVwiLFxuICAgIFwiUmF2ZW5uYVwiLFxuICAgIFwiUmVnZ2lvIENhbGFicmlhXCIsXG4gICAgXCJSZWdnaW8gRW1pbGlhXCIsXG4gICAgXCJSaWV0aVwiLFxuICAgIFwiUmltaW5pXCIsXG4gICAgXCJSb21hXCIsXG4gICAgXCJSb3ZpZ29cIixcbiAgICBcIlNhbGVybm9cIixcbiAgICBcIk1lZGlvIENhbXBpZGFub1wiLFxuICAgIFwiU2Fzc2FyaVwiLFxuICAgIFwiU2F2b25hXCIsXG4gICAgXCJTaWVuYVwiLFxuICAgIFwiU2lyYWN1c2FcIixcbiAgICBcIlNvbmRyaW9cIixcbiAgICBcIlRhcmFudG9cIixcbiAgICBcIlRlcmFtb1wiLFxuICAgIFwiVGVybmlcIixcbiAgICBcIlRvcmlub1wiLFxuICAgIFwiT2dsaWFzdHJhXCIsXG4gICAgXCJUcmFwYW5pXCIsXG4gICAgXCJUcmVudG9cIixcbiAgICBcIlRyZXZpc29cIixcbiAgICBcIlRyaWVzdGVcIixcbiAgICBcIlVkaW5lXCIsXG4gICAgXCJWYXJlc2VcIixcbiAgICBcIlZlbmV6aWFcIixcbiAgICBcIlZlcmJhbm8tQ3VzaW8tT3Nzb2xhXCIsXG4gICAgXCJWZXJjZWxsaVwiLFxuICAgIFwiVmVyb25hXCIsXG4gICAgXCJWaWJvIFZhbGVudGlhXCIsXG4gICAgXCJWaWNlbnphXCIsXG4gICAgXCJWaXRlcmJvXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkFHXCIsXG4gICAgXCJBTFwiLFxuICAgIFwiQU5cIixcbiAgICBcIkFPXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQVBcIixcbiAgICBcIkFUXCIsXG4gICAgXCJBVlwiLFxuICAgIFwiQkFcIixcbiAgICBcIkJUXCIsXG4gICAgXCJCTFwiLFxuICAgIFwiQk5cIixcbiAgICBcIkJHXCIsXG4gICAgXCJCSVwiLFxuICAgIFwiQk9cIixcbiAgICBcIkJaXCIsXG4gICAgXCJCU1wiLFxuICAgIFwiQlJcIixcbiAgICBcIkNBXCIsXG4gICAgXCJDTFwiLFxuICAgIFwiQ0JcIixcbiAgICBcIkNJXCIsXG4gICAgXCJDRVwiLFxuICAgIFwiQ1RcIixcbiAgICBcIkNaXCIsXG4gICAgXCJDSFwiLFxuICAgIFwiQ09cIixcbiAgICBcIkNTXCIsXG4gICAgXCJDUlwiLFxuICAgIFwiS1JcIixcbiAgICBcIkNOXCIsXG4gICAgXCJFTlwiLFxuICAgIFwiRk1cIixcbiAgICBcIkZFXCIsXG4gICAgXCJGSVwiLFxuICAgIFwiRkdcIixcbiAgICBcIkZDXCIsXG4gICAgXCJGUlwiLFxuICAgIFwiR0VcIixcbiAgICBcIkdPXCIsXG4gICAgXCJHUlwiLFxuICAgIFwiSU1cIixcbiAgICBcIklTXCIsXG4gICAgXCJTUFwiLFxuICAgIFwiQVFcIixcbiAgICBcIkxUXCIsXG4gICAgXCJMRVwiLFxuICAgIFwiTENcIixcbiAgICBcIkxJXCIsXG4gICAgXCJMT1wiLFxuICAgIFwiTFVcIixcbiAgICBcIk1DXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiTVNcIixcbiAgICBcIk1UXCIsXG4gICAgXCJNRVwiLFxuICAgIFwiTUlcIixcbiAgICBcIk1PXCIsXG4gICAgXCJNQlwiLFxuICAgIFwiTkFcIixcbiAgICBcIk5PXCIsXG4gICAgXCJOVVwiLFxuICAgIFwiT1RcIixcbiAgICBcIk9SXCIsXG4gICAgXCJQRFwiLFxuICAgIFwiUEFcIixcbiAgICBcIlBSXCIsXG4gICAgXCJQVlwiLFxuICAgIFwiUEdcIixcbiAgICBcIlBVXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUENcIixcbiAgICBcIlBJXCIsXG4gICAgXCJQVFwiLFxuICAgIFwiUE5cIixcbiAgICBcIlBaXCIsXG4gICAgXCJQT1wiLFxuICAgIFwiUkdcIixcbiAgICBcIlJBXCIsXG4gICAgXCJSQ1wiLFxuICAgIFwiUkVcIixcbiAgICBcIlJJXCIsXG4gICAgXCJSTlwiLFxuICAgIFwiUk1cIixcbiAgICBcIlJPXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiVlNcIixcbiAgICBcIlNTXCIsXG4gICAgXCJTVlwiLFxuICAgIFwiU0lcIixcbiAgICBcIlNSXCIsXG4gICAgXCJTT1wiLFxuICAgIFwiVEFcIixcbiAgICBcIlRFXCIsXG4gICAgXCJUUlwiLFxuICAgIFwiVE9cIixcbiAgICBcIk9HXCIsXG4gICAgXCJUUFwiLFxuICAgIFwiVE5cIixcbiAgICBcIlRWXCIsXG4gICAgXCJUU1wiLFxuICAgIFwiVURcIixcbiAgICBcIlZBXCIsXG4gICAgXCJWRVwiLFxuICAgIFwiVkJcIixcbiAgICBcIlZDXCIsXG4gICAgXCJWUlwiLFxuICAgIFwiVlZcIixcbiAgICBcIlZJXCIsXG4gICAgXCJWVFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0gI3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9ICN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfc3VmZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiLFxuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9LCAje3NlY29uZGFyeV9hZGRyZXNzfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkl0YWxpYVwiXG4gIF1cbn07XG5pdC5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJTUEFcIixcbiAgICBcImUgZmlnbGlcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJzLnIubC5cIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgICAgXCJBYmlsaXTDoFwiLFxuICAgICAgXCJBY2Nlc3NcIixcbiAgICAgIFwiQWRhdHRhdG9yZVwiLFxuICAgICAgXCJBbGdvcml0bW9cIixcbiAgICAgIFwiQWxsZWFuemFcIixcbiAgICAgIFwiQW5hbGl6emF0b3JlXCIsXG4gICAgICBcIkFwcGxpY2F6aW9uZVwiLFxuICAgICAgXCJBcHByb2NjaW9cIixcbiAgICAgIFwiQXJjaGl0ZXR0dXJhXCIsXG4gICAgICBcIkFyY2hpdmlvXCIsXG4gICAgICBcIkludGVsbGlnZW56YSBhcnRpZmljaWFsZVwiLFxuICAgICAgXCJBcnJheVwiLFxuICAgICAgXCJBdHRpdHVkaW5lXCIsXG4gICAgICBcIkJlbmNobWFya1wiLFxuICAgICAgXCJDYXBhY2l0w6BcIixcbiAgICAgIFwiU2ZpZGFcIixcbiAgICAgIFwiQ2lyY3VpdG9cIixcbiAgICAgIFwiQ29sbGFib3JhemlvbmVcIixcbiAgICAgIFwiQ29tcGxlc3NpdMOgXCIsXG4gICAgICBcIkNvbmNldHRvXCIsXG4gICAgICBcIkNvbmdsb21lcmF0b1wiLFxuICAgICAgXCJDb250aW5nZW56YVwiLFxuICAgICAgXCJDb3JlXCIsXG4gICAgICBcIkRhdGFiYXNlXCIsXG4gICAgICBcIkRhdGEtd2FyZWhvdXNlXCIsXG4gICAgICBcIkRlZmluaXppb25lXCIsXG4gICAgICBcIkVtdWxhemlvbmVcIixcbiAgICAgIFwiQ29kaWZpY2FcIixcbiAgICAgIFwiQ3JpcHRhemlvbmVcIixcbiAgICAgIFwiRmlybXdhcmVcIixcbiAgICAgIFwiRmxlc3NpYmlsaXTDoFwiLFxuICAgICAgXCJQcmV2aXNpb25lXCIsXG4gICAgICBcIkZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJGdW56aW9uZVwiLFxuICAgICAgXCJGdW56aW9uYWxpdMOgXCIsXG4gICAgICBcIkludGVyZmFjY2lhIGdyYWZpY2FcIixcbiAgICAgIFwiSGFyZHdhcmVcIixcbiAgICAgIFwiSGVscC1kZXNrXCIsXG4gICAgICBcIkdlcmFyY2hpYVwiLFxuICAgICAgXCJIdWJcIixcbiAgICAgIFwiSW1wbGVtZW50YXppb25lXCIsXG4gICAgICBcIkluZnJhc3RydXR0dXJhXCIsXG4gICAgICBcIkluaXppYXRpdmFcIixcbiAgICAgIFwiSW5zdGFsbGF6aW9uZVwiLFxuICAgICAgXCJTZXQgZGkgaXN0cnV6aW9uaVwiLFxuICAgICAgXCJJbnRlcmZhY2NpYVwiLFxuICAgICAgXCJTb2x1emlvbmUgaW50ZXJuZXRcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29ub3NjZW56YSBiYXNlXCIsXG4gICAgICBcIk1hdHJpY2lcIixcbiAgICAgIFwiTWF0cmljZVwiLFxuICAgICAgXCJNZXRvZG9sb2dpYVwiLFxuICAgICAgXCJNaWRkbGV3YXJlXCIsXG4gICAgICBcIk1pZ3JhemlvbmVcIixcbiAgICAgIFwiTW9kZWxsb1wiLFxuICAgICAgXCJNb2RlcmF6aW9uZVwiLFxuICAgICAgXCJNb25pdG9yYWdnaW9cIixcbiAgICAgIFwiTW9yYXRvcmlhXCIsXG4gICAgICBcIlJldGVcIixcbiAgICAgIFwiQXJjaGl0ZXR0dXJhIGFwZXJ0YVwiLFxuICAgICAgXCJTaXN0ZW1hIGFwZXJ0b1wiLFxuICAgICAgXCJPcmNoZXN0cmF6aW9uZVwiLFxuICAgICAgXCJQYXJhZGlnbWFcIixcbiAgICAgIFwiUGFyYWxsZWxpc21vXCIsXG4gICAgICBcIlBvbGljeVwiLFxuICAgICAgXCJQb3J0YWxlXCIsXG4gICAgICBcIlN0cnV0dHVyYSBkaSBwcmV6em9cIixcbiAgICAgIFwiUHJvZG90dG9cIixcbiAgICAgIFwiUHJvZHV0dGl2aXTDoFwiLFxuICAgICAgXCJQcm9nZXR0b1wiLFxuICAgICAgXCJQcm9pZXppb25lXCIsXG4gICAgICBcIlByb3RvY29sbG9cIixcbiAgICAgIFwiU2Vydml6aW8gY2xpZW50aVwiLFxuICAgICAgXCJTb2Z0d2FyZVwiLFxuICAgICAgXCJTb2x1emlvbmVcIixcbiAgICAgIFwiU3RhbmRhcmRpenphemlvbmVcIixcbiAgICAgIFwiU3RyYXRlZ2lhXCIsXG4gICAgICBcIlN0cnV0dHVyYVwiLFxuICAgICAgXCJTdWNjZXNzb1wiLFxuICAgICAgXCJTb3ZyYXN0cnV0dHVyYVwiLFxuICAgICAgXCJTdXBwb3J0b1wiLFxuICAgICAgXCJTaW5lcmdpYVwiLFxuICAgICAgXCJUYXNrLWZvcmNlXCIsXG4gICAgICBcIkZpbmVzdHJhIHRlbXBvcmFsZVwiLFxuICAgICAgXCJTdHJ1bWVudGlcIixcbiAgICAgIFwiVXRpbGl6emF6aW9uZVwiLFxuICAgICAgXCJTaXRvIHdlYlwiLFxuICAgICAgXCJGb3J6YSBsYXZvcm9cIlxuICAgIF0sXG4gICAgXCJkZXNjcmlwdG9yXCI6W1xuICAgICAgXCJhZGF0dGl2YVwiLFxuICAgICAgXCJhdmFuemF0YVwiLFxuICAgICAgXCJtaWdsaW9yYXRhXCIsXG4gICAgICBcImFzc2ltaWxhdGFcIixcbiAgICAgIFwiYXV0b21hdGl6emF0YVwiLFxuICAgICAgXCJiaWxhbmNpYXRhXCIsXG4gICAgICBcImNlbnRyYWxpenphdGFcIixcbiAgICAgIFwiY29tcGF0aWJpbGVcIixcbiAgICAgIFwiY29uZmlndXJhYmlsZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJkZWNlbnRyYWxpenphdGFcIixcbiAgICAgIFwiZGlnaXRhbGl6emF0YVwiLFxuICAgICAgXCJkaXN0cmlidWl0YVwiLFxuICAgICAgXCJwaWNjb2xhXCIsXG4gICAgICBcImVyZ29ub21pY2FcIixcbiAgICAgIFwiZXNjbHVzaXZhXCIsXG4gICAgICBcImVzcGFuc2FcIixcbiAgICAgIFwiZXN0ZXNhXCIsXG4gICAgICBcImNvbmZpZ3VyYWJpbGVcIixcbiAgICAgIFwiZm9uZGFtZW50YWxlXCIsXG4gICAgICBcIm9yaXp6b250YWxlXCIsXG4gICAgICBcImltcGxlbWVudGF0YVwiLFxuICAgICAgXCJpbm5vdmF0aXZhXCIsXG4gICAgICBcImludGVncmF0YVwiLFxuICAgICAgXCJpbnR1aXRpdmFcIixcbiAgICAgIFwiaW52ZXJzYVwiLFxuICAgICAgXCJnZXN0aXRhXCIsXG4gICAgICBcIm9iYmxpZ2F0b3JpYVwiLFxuICAgICAgXCJtb25pdG9yYXRhXCIsXG4gICAgICBcIm11bHRpLWNhbmFsZVwiLFxuICAgICAgXCJtdWx0aS1sYXRlcmFsZVwiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJvcGVyYXRpdmFcIixcbiAgICAgIFwib3R0aW1penphdGFcIixcbiAgICAgIFwib3JnYW5pY2FcIixcbiAgICAgIFwicGVyc2lzdGVudGVcIixcbiAgICAgIFwicG9sYXJpenphdGFcIixcbiAgICAgIFwicHJvYXR0aXZhXCIsXG4gICAgICBcInByb2dyYW1tYWJpbGVcIixcbiAgICAgIFwicHJvZ3Jlc3NpdmFcIixcbiAgICAgIFwicmVhdHRpdmFcIixcbiAgICAgIFwicmlhbGxpbmVhdGFcIixcbiAgICAgIFwicmljb250ZXN0dWFsaXp6YXRhXCIsXG4gICAgICBcInJpZG90dGFcIixcbiAgICAgIFwicm9idXN0YVwiLFxuICAgICAgXCJzaWN1cmFcIixcbiAgICAgIFwiY29uZGl2aXNpYmlsZVwiLFxuICAgICAgXCJzdGFuZC1hbG9uZVwiLFxuICAgICAgXCJzd2l0Y2hhYmlsZVwiLFxuICAgICAgXCJzaW5jcm9uaXp6YXRhXCIsXG4gICAgICBcInNpbmVyZ2ljYVwiLFxuICAgICAgXCJ0b3RhbGVcIixcbiAgICAgIFwidW5pdmVyc2FsZVwiLFxuICAgICAgXCJ1c2VyLWZyaWVuZGx5XCIsXG4gICAgICBcInZlcnNhdGlsZVwiLFxuICAgICAgXCJ2aXJ0dWFsZVwiLFxuICAgICAgXCJ2aXNpb25hcmlhXCJcbiAgICBdLFxuICAgIFwiYWRqZWN0aXZlXCI6XG4gICAgW1xuICAgICAgXCIyNCBvcmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJ0ZXJ6YSBnZW5lcmF6aW9uZVwiLFxuICAgICAgXCJxdWFydGEgZ2VuZXJhemlvbmVcIixcbiAgICAgIFwicXVpbnRhIGdlbmVyYXppb25lXCIsXG4gICAgICBcInNlc3RhIGdlbmVyYXppb25lXCIsXG4gICAgICBcImFzaW1tZXRyaWNhXCIsXG4gICAgICBcImFzaW5jcm9uYVwiLFxuICAgICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgICBcImJpLWRpcmV6aW9uYWxlXCIsXG4gICAgICBcImJpZm9yY2F0YVwiLFxuICAgICAgXCJib3R0b20tbGluZVwiLFxuICAgICAgXCJjb2VyZW50ZVwiLFxuICAgICAgXCJjb2VzaXZhXCIsXG4gICAgICBcImNvbXBvc2l0YVwiLFxuICAgICAgXCJzZW5zaWJpbGUgYWwgY29udGVzdG9cIixcbiAgICAgIFwiYmFzdGEgc3VsIGNvbnRlc3RvXCIsXG4gICAgICBcImJhc2F0YSBzdWwgY29udGVudXRvXCIsXG4gICAgICBcImRlZGljYXRhXCIsXG4gICAgICBcImRpZGF0dGljYVwiLFxuICAgICAgXCJkaXJlemlvbmFsZVwiLFxuICAgICAgXCJkaXNjcmV0YVwiLFxuICAgICAgXCJkaW5hbWljYVwiLFxuICAgICAgXCJlY28tY2VudHJpY2FcIixcbiAgICAgIFwiZXNlY3V0aXZhXCIsXG4gICAgICBcImVzcGxpY2l0YVwiLFxuICAgICAgXCJmdWxsLXJhbmdlXCIsXG4gICAgICBcImdsb2JhbGVcIixcbiAgICAgIFwiZXVyaXN0aWNhXCIsXG4gICAgICBcImFsdG8gbGl2ZWxsb1wiLFxuICAgICAgXCJvbGlzdGljYVwiLFxuICAgICAgXCJvbW9nZW5lYVwiLFxuICAgICAgXCJpYnJpZGFcIixcbiAgICAgIFwiaW1wYXR0YW50ZVwiLFxuICAgICAgXCJpbmNyZW1lbnRhbGVcIixcbiAgICAgIFwiaW50YW5naWJpbGVcIixcbiAgICAgIFwiaW50ZXJhdHRpdmFcIixcbiAgICAgIFwiaW50ZXJtZWRpYXJpYVwiLFxuICAgICAgXCJsb2NhbGVcIixcbiAgICAgIFwibG9naXN0aWNhXCIsXG4gICAgICBcIm1hc3NpbWl6emF0YVwiLFxuICAgICAgXCJtZXRvZGljYVwiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcIm1vYmlsZVwiLFxuICAgICAgXCJtb2R1bGFyZVwiLFxuICAgICAgXCJtb3RpdmF6aW9uYWxlXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGktdGFza2luZ1wiLFxuICAgICAgXCJuYXppb25hbGVcIixcbiAgICAgIFwibmV1dHJhbGVcIixcbiAgICAgIFwibmV4dGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvdHRpbWFcIixcbiAgICAgIFwib3R0aW1penphbnRlXCIsXG4gICAgICBcInJhZGljYWxlXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJyZWNpcHJvY2FcIixcbiAgICAgIFwicmVnaW9uYWxlXCIsXG4gICAgICBcInJlc3BvbnNpdmFcIixcbiAgICAgIFwic2NhbGFiaWxlXCIsXG4gICAgICBcInNlY29uZGFyaWFcIixcbiAgICAgIFwic3RhYmlsZVwiLFxuICAgICAgXCJzdGF0aWNhXCIsXG4gICAgICBcInNpc3RlbWF0aWNhXCIsXG4gICAgICBcInNpc3RlbWljYVwiLFxuICAgICAgXCJ0YW5naWJpbGVcIixcbiAgICAgIFwidGVyemlhcmlhXCIsXG4gICAgICBcInVuaWZvcm1lXCIsXG4gICAgICBcInZhbG9yZSBhZ2dpdW50b1wiXG4gIF0sXG4gIFwiYnNfbm91blwiOiBbXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJjb211bml0w6BcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV6aW9uaVwiLFxuICAgICAgXCJlLXNlcnZpY2VzXCIsXG4gICAgICBcIm5pY2NoaWVcIixcbiAgICAgIFwidGVjbm9sb2dpZVwiLFxuICAgICAgXCJjb250ZW51dGlcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW56ZVwiLFxuICAgICAgXCJyZWxhemlvbmlcIixcbiAgICAgIFwiYXJjaGl0ZXR0dXJlXCIsXG4gICAgICBcImludGVyZmFjY2VcIixcbiAgICAgIFwibWVyY2F0aVwiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInNpc3RlbWlcIixcbiAgICAgIFwibW9kZWxsaVwiLFxuICAgICAgXCJzY2hlbWlcIixcbiAgICAgIFwicmV0aVwiLFxuICAgICAgXCJhcHBsaWNhemlvbmlcIixcbiAgICAgIFwibWV0cmljaGVcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW56aW9uYWxpdMOgXCIsXG4gICAgICBcImVzcGVyaWVuemVcIixcbiAgICAgIFwid2Vic2VydmljZXNcIixcbiAgICAgIFwibWV0b2RvbG9naWVcIlxuICAgIF0sXG4gICAgXCJic192ZXJiXCI6XG4gICAgW1xuICAgICAgXCJpbXBsZW1lbnRhdGVcIixcbiAgICAgIFwidXRpbGl6em9cIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcIm90dGltYWxpXCIsXG4gICAgICBcImV2b2x1dGl2ZVwiLFxuICAgICAgXCJhYmlsaXRhdGVcIixcbiAgICAgIFwicmVpbnZlbnRhdGVcIixcbiAgICAgIFwiYWdncmVnYXRlXCIsXG4gICAgICBcIm1pZ2xpb3JhdGVcIixcbiAgICAgIFwiaW5jZW50aXZhdGVcIixcbiAgICAgIFwibW9uZXRpenphdGVcIixcbiAgICAgIFwic2luZXJnaXp6YXRlXCIsXG4gICAgICBcInN0cmF0ZWdpY2hlXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJtYXJjaGlcIixcbiAgICAgIFwiYWNjcmVzY2l0aXZlXCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzaW50ZXRpenphdGVcIixcbiAgICAgIFwic3BlZGl6aW9uaVwiLFxuICAgICAgXCJtYXNzaW1penphdGVcIixcbiAgICAgIFwiaW5ub3ZhemlvbmVcIixcbiAgICAgIFwiZ3VpZGFcIixcbiAgICAgIFwiZXN0ZW5zaW9uaVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXppb25hbGlcIixcbiAgICAgIFwibWF0cmljaVwiLFxuICAgICAgXCJyaWNvbnRlc3R1YWxpenphdGVcIlxuICAgIF0sXG4gICAgXCJic19hZGplY3RpdmVcIjpcbiAgICBbXG4gICAgICBcInZhbG9yZSBhZ2dpdW50b1wiLFxuICAgICAgXCJ2ZXJ0aWNhbGl6emF0ZVwiLFxuICAgICAgXCJwcm9hdHRpdmVcIixcbiAgICAgIFwiZm9ydGlcIixcbiAgICAgIFwicml2b2x1emlvbmFyaVwiLFxuICAgICAgXCJzY2FsYWJpbGlcIixcbiAgICAgIFwiaW5ub3ZhdGl2aVwiLFxuICAgICAgXCJpbnR1aXRpdmlcIixcbiAgICAgIFwic3RyYXRlZ2ljaVwiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJnbG9iYWxpXCIsXG4gICAgICBcIkIyQlwiLFxuICAgICAgXCJCMkNcIixcbiAgICAgIFwiZ3JhbnVsYXJpXCIsXG4gICAgICBcInZpcnR1YWxpXCIsXG4gICAgICBcInZpcmFsaVwiLFxuICAgICAgXCJkaW5hbWljaGVcIixcbiAgICAgIFwibWFnbmV0aWNoZVwiLFxuICAgICAgXCJ3ZWJcIixcbiAgICAgIFwiaW50ZXJhdHRpdmVcIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50aVwiLFxuICAgICAgXCJmcm9udC1lbmRcIixcbiAgICAgIFwiZGlzdHJpYnV0aXZpXCIsXG4gICAgICBcImVzdGVuc2liaWxpXCIsXG4gICAgICBcIm1vbmRpYWxpXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcInNpbmVyZ2ljaGVcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVcIixcbiAgICAgIFwiZGkgaW1wYXR0b1wiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFzcGFyZW50aVwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInZpc2lvbmFyaVwiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwib2xpc3RpY2hlXCIsXG4gICAgICBcInJpY2NoZVwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IGUgI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbml0LmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCIsXG4gICAgXCJlbWFpbC5pdFwiLFxuICAgIFwibGliZXJvLml0XCIsXG4gICAgXCJ5YWhvby5pdFwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImNvbVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiLFxuICAgIFwiaXRcIixcbiAgICBcIml0XCIsXG4gICAgXCJpdFwiXG4gIF1cbn07XG5pdC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFraXJhXCIsXG4gICAgXCJBbGJlcnRvXCIsXG4gICAgXCJBbGVzc2FuZHJvXCIsXG4gICAgXCJBbGlnaGllcmlcIixcbiAgICBcIkFtZWRlb1wiLFxuICAgIFwiQW1vc1wiLFxuICAgIFwiQW5zZWxtb1wiLFxuICAgIFwiQW50b25pbm9cIixcbiAgICBcIkFyY2liYWxkb1wiLFxuICAgIFwiQXJtYW5kb1wiLFxuICAgIFwiQXJ0ZXNcIixcbiAgICBcIkF1ZGVuaWNvXCIsXG4gICAgXCJBdXNvbmlvXCIsXG4gICAgXCJCYWNjaGlzaW9cIixcbiAgICBcIkJhdHRpc3RhXCIsXG4gICAgXCJCZXJuYXJkb1wiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkNhaW9cIixcbiAgICBcIkNhcmxvXCIsXG4gICAgXCJDZWNjb1wiLFxuICAgIFwiQ2lyaW5vXCIsXG4gICAgXCJDbGVyb3NcIixcbiAgICBcIkNvc3RhbnRpbm9cIixcbiAgICBcIkRhbWlhbm9cIixcbiAgICBcIkRhbm55XCIsXG4gICAgXCJEYXZpZGVcIixcbiAgICBcIkRlbWlhblwiLFxuICAgIFwiRGltaXRyaVwiLFxuICAgIFwiRG9taW5nb1wiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIkVkaWxpb1wiLFxuICAgIFwiRWdpZGlvXCIsXG4gICAgXCJFbGlvXCIsXG4gICAgXCJFbWFudWVsXCIsXG4gICAgXCJFbnJpY29cIixcbiAgICBcIkVyY29sZVwiLFxuICAgIFwiRXJtZXNcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJFdXNlYmlvXCIsXG4gICAgXCJFdmFuZ2VsaXN0YVwiLFxuICAgIFwiRmFiaWFub1wiLFxuICAgIFwiRmVyZGluYW5kb1wiLFxuICAgIFwiRmlvcmVudGlub1wiLFxuICAgIFwiRmxhdmlvXCIsXG4gICAgXCJGdWx2aW9cIixcbiAgICBcIkdhYnJpZWxlXCIsXG4gICAgXCJHYXN0b25lXCIsXG4gICAgXCJHZXJtYW5vXCIsXG4gICAgXCJHaWFjaW50b1wiLFxuICAgIFwiR2lhbmFudG9uaW9cIixcbiAgICBcIkdpYW5sZW9uYXJkb1wiLFxuICAgIFwiR2lhbm1hcmNvXCIsXG4gICAgXCJHaWFucmljY2FyZG9cIixcbiAgICBcIkdpb2FjY2hpbm9cIixcbiAgICBcIkdpb3JkYW5vXCIsXG4gICAgXCJHaXVsaWFub1wiLFxuICAgIFwiR3Jhemlhbm9cIixcbiAgICBcIkd1aWRvXCIsXG4gICAgXCJIYXJyeVwiLFxuICAgIFwiSWFjb3BvXCIsXG4gICAgXCJJbGFyaW9cIixcbiAgICBcIklvbmVcIixcbiAgICBcIkl0YWxvXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYXJpXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkthaVwiLFxuICAgIFwiS29jaXNzXCIsXG4gICAgXCJMYWVydGVcIixcbiAgICBcIkxhdXJvXCIsXG4gICAgXCJMZW9uYXJkb1wiLFxuICAgIFwiTGlib3Jpb1wiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTHVkb3ZpY29cIixcbiAgICBcIk1hZ2dpb3JlXCIsXG4gICAgXCJNYW51ZWxlXCIsXG4gICAgXCJNYXJpYW5vXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1hdHRlb1wiLFxuICAgIFwiTWF1cm9cIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIk1pcmNvXCIsXG4gICAgXCJNb2Rlc3RvXCIsXG4gICAgXCJNdXppb1wiLFxuICAgIFwiTmFiaWxcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiT2Rpbm9cIixcbiAgICBcIk9sb1wiLFxuICAgIFwiT3Jlc3RlXCIsXG4gICAgXCJPc2VhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGF0cml6aW9cIixcbiAgICBcIlBpZXJlcm1pbmlvXCIsXG4gICAgXCJQaWVyZnJhbmNlc2NvXCIsXG4gICAgXCJQaWVyc2lsdmlvXCIsXG4gICAgXCJQcmlhbW9cIixcbiAgICBcIlF1YXJ0b1wiLFxuICAgIFwiUXVpcmlub1wiLFxuICAgIFwiUmFkYW1lc1wiLFxuICAgIFwiUmFuaWVyb1wiLFxuICAgIFwiUmVuYXRvXCIsXG4gICAgXCJSb2Njb1wiLFxuICAgIFwiUm9tZW9cIixcbiAgICBcIlJvc2FsaW5vXCIsXG4gICAgXCJSdWR5XCIsXG4gICAgXCJTYWJhdGlub1wiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYW50b1wiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZXJzZVwiLFxuICAgIFwiU2lsdmFub1wiLFxuICAgIFwiU2lyaW9cIixcbiAgICBcIlRhbmNyZWRpXCIsXG4gICAgXCJUZXJ6b1wiLFxuICAgIFwiVGltb3Rlb1wiLFxuICAgIFwiVG9sb21lb1wiLFxuICAgIFwiVHJldmlzXCIsXG4gICAgXCJVYmFsZG9cIixcbiAgICBcIlVscmljb1wiLFxuICAgIFwiVmFsZG9cIixcbiAgICBcIk5lcmlcIixcbiAgICBcIlZpbmljaW9cIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiWGF2aWVyXCIsXG4gICAgXCJZYWdvXCIsXG4gICAgXCJaYWNjYXJpYVwiLFxuICAgIFwiQWJyYW1vXCIsXG4gICAgXCJBZHJpYW5vXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJpbm9cIixcbiAgICBcIkFsZXNzaW9cIixcbiAgICBcIkFsaWdoaWVyb1wiLFxuICAgIFwiQW1lcmlnb1wiLFxuICAgIFwiQW5hc3Rhc2lvXCIsXG4gICAgXCJBbnRpbW9cIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFyZHVpbm9cIixcbiAgICBcIkFyb2xkb1wiLFxuICAgIFwiQXJ0dXJvXCIsXG4gICAgXCJBdWd1c3RvXCIsXG4gICAgXCJBdmlkZVwiLFxuICAgIFwiQmFsZGFzc2FycmVcIixcbiAgICBcIkJldHRpbm9cIixcbiAgICBcIkJvcnRvbG9cIixcbiAgICBcIkNhbGlnb2xhXCIsXG4gICAgXCJDYXJtZWxvXCIsXG4gICAgXCJDZWxlc3RlXCIsXG4gICAgXCJDaXJvXCIsXG4gICAgXCJDb3N0YW56b1wiLFxuICAgIFwiRGFudGVcIixcbiAgICBcIkRhbnRob25cIixcbiAgICBcIkRhdmlzXCIsXG4gICAgXCJEZW1pc1wiLFxuICAgIFwiRGluZG9cIixcbiAgICBcIkRvbWl6aWFub1wiLFxuICAgIFwiRWRpcG9cIixcbiAgICBcIkVnaXN0b1wiLFxuICAgIFwiRWxpemlhcmlvXCIsXG4gICAgXCJFbWlkaW9cIixcbiAgICBcIkVuem9cIixcbiAgICBcIkVyaWJlcnRvXCIsXG4gICAgXCJFcm1pbmlvXCIsXG4gICAgXCJFdHRvcmVcIixcbiAgICBcIkV1c3RhY2hpb1wiLFxuICAgIFwiRmFiaW9cIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGaW9yZW56b1wiLFxuICAgIFwiRm9sY29cIixcbiAgICBcIkZ1cmlvXCIsXG4gICAgXCJHYWV0YW5vXCIsXG4gICAgXCJHYXZpbm9cIixcbiAgICBcIkdlcmxhbmRvXCIsXG4gICAgXCJHaWFjb2JiZVwiLFxuICAgIFwiR2lhbmNhcmxvXCIsXG4gICAgXCJHaWFubWFyaWFcIixcbiAgICBcIkdpb2JiZVwiLFxuICAgIFwiR2lvcmdpb1wiLFxuICAgIFwiR2l1bGlvXCIsXG4gICAgXCJHcmVnb3Jpb1wiLFxuICAgIFwiSGVjdG9yXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklwcG9saXRvXCIsXG4gICAgXCJJdmFub1wiLFxuICAgIFwiSmFjb3BvXCIsXG4gICAgXCJKYXJub1wiLFxuICAgIFwiSm9hbm5lc1wiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJLYXJpbVwiLFxuICAgIFwiS3Jpc1wiLFxuICAgIFwiTGFtYmVydG9cIixcbiAgICBcIkxhenphcm9cIixcbiAgICBcIkxlb25lXCIsXG4gICAgXCJMaW5vXCIsXG4gICAgXCJMb3Jpc1wiLFxuICAgIFwiTHVpZ2lcIixcbiAgICBcIk1hbmZyZWRpXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyaW5vXCIsXG4gICAgXCJNYXJ6aW9cIixcbiAgICBcIk1hdHRpYVwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNaWNoZWxlXCIsXG4gICAgXCJNaXJrb1wiLFxuICAgIFwiTW9yZW5vXCIsXG4gICAgXCJOYWRpclwiLFxuICAgIFwiTmF6emFyZW5vXCIsXG4gICAgXCJOZXN0b3JlXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOb2VsXCIsXG4gICAgXCJPZG9uZVwiLFxuICAgIFwiT21hclwiLFxuICAgIFwiT3JmZW9cIixcbiAgICBcIk9zdmFsZG9cIixcbiAgICBcIlBhY2lmaWNvXCIsXG4gICAgXCJQZXJpY2xlXCIsXG4gICAgXCJQaWV0cm9cIixcbiAgICBcIlByaW1vXCIsXG4gICAgXCJRdWFzaW1vZG9cIixcbiAgICBcIlJhZGlvXCIsXG4gICAgXCJSYW91bFwiLFxuICAgIFwiUmVuem9cIixcbiAgICBcIlJvZG9sZm9cIixcbiAgICBcIlJvbW9sb1wiLFxuICAgIFwiUm9zb2xpbm9cIixcbiAgICBcIlJ1Zm9cIixcbiAgICBcIlNhYmlub1wiLFxuICAgIFwiU2FuZHJvXCIsXG4gICAgXCJTYXNoYVwiLFxuICAgIFwiU2Vjb25kb1wiLFxuICAgIFwiU2VzdG9cIixcbiAgICBcIlNpbHZlcmlvXCIsXG4gICAgXCJTaXJvXCIsXG4gICAgXCJUYXppb1wiLFxuICAgIFwiVGVzZW9cIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRvbW1hc29cIixcbiAgICBcIlRyaXN0YW5vXCIsXG4gICAgXCJVbWJlcnRvXCIsXG4gICAgXCJBcmllbFwiLFxuICAgIFwiQXJ0ZW1pZGVcIixcbiAgICBcIkFzc2lhXCIsXG4gICAgXCJBenVlXCIsXG4gICAgXCJCZW5lZGV0dGFcIixcbiAgICBcIkJpYmlhbmFcIixcbiAgICBcIkJyaWdpdHRhXCIsXG4gICAgXCJDYXJtZWxhXCIsXG4gICAgXCJDYXNzaW9wZWFcIixcbiAgICBcIkNlc2lkaWFcIixcbiAgICBcIkNpcmFcIixcbiAgICBcIkNsZWFcIixcbiAgICBcIkNsZW9wYXRyYVwiLFxuICAgIFwiQ2xvZG92ZWFcIixcbiAgICBcIkNvbmNldHRhXCIsXG4gICAgXCJDb3NldHRhXCIsXG4gICAgXCJDcmlzdHluXCIsXG4gICAgXCJEYW1pYW5hXCIsXG4gICAgXCJEYW51dGFcIixcbiAgICBcIkRlYm9yYWhcIixcbiAgICBcIkRlbWlcIixcbiAgICBcIkRpYW1hbnRlXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRG9uYXRlbGxhXCIsXG4gICAgXCJEb3JpYW5hXCIsXG4gICAgXCJFZHZpZ2VcIixcbiAgICBcIkVsZGFcIixcbiAgICBcIkVsZ2FcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVtaWxpYVwiLFxuICAgIFwiRW5yaWNhXCIsXG4gICAgXCJFcm1pbmlhXCIsXG4gICAgXCJFdWZlbWlhXCIsXG4gICAgXCJFdml0YVwiLFxuICAgIFwiRmF0aW1hXCIsXG4gICAgXCJGZWxpY2lhXCIsXG4gICAgXCJGaWxvbWVuYVwiLFxuICAgIFwiRmxhdmlhbmFcIixcbiAgICBcIkZvcnR1bmF0YVwiLFxuICAgIFwiR2Vsc29taW5hXCIsXG4gICAgXCJHZW56aWFuYVwiLFxuICAgIFwiR2lhY2ludGFcIixcbiAgICBcIkdpbGRhXCIsXG4gICAgXCJHaW92YW5uYVwiLFxuICAgIFwiR2l1bGlldHRhXCIsXG4gICAgXCJHcmF6aWFcIixcbiAgICBcIkd1ZW5kYWxpbmFcIixcbiAgICBcIkhlbGdhXCIsXG4gICAgXCJJbGVhbmFcIixcbiAgICBcIkluZ3JpZFwiLFxuICAgIFwiSXJlbmVcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNpcmFcIixcbiAgICBcIkl2b25uZVwiLFxuICAgIFwiSmVsZW5hXCIsXG4gICAgXCJKb2xlXCIsXG4gICAgXCJDbGF1ZGlhXCIsXG4gICAgXCJLYXlsYVwiLFxuICAgIFwiS3Jpc3RlbFwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpZGlhXCIsXG4gICAgXCJMaXNhXCIsXG4gICAgXCJMb3JlZGFuYVwiLFxuICAgIFwiTG9yZXR0YVwiLFxuICAgIFwiTHVjZVwiLFxuICAgIFwiTHVjcmV6aWFcIixcbiAgICBcIkx1bmFcIixcbiAgICBcIk1haWthXCIsXG4gICAgXCJNYXJjZWxsYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhZ2l1bGlhXCIsXG4gICAgXCJNYXJpYW5pdGFcIixcbiAgICBcIk1hcmlhcGlhXCIsXG4gICAgXCJNYXJpZXZhXCIsXG4gICAgXCJNYXJpbmFcIixcbiAgICBcIk1hcmlzdGVsbGFcIixcbiAgICBcIk1hcnVza2FcIixcbiAgICBcIk1hdGlsZGVcIixcbiAgICBcIk1lY3JlblwiLFxuICAgIFwiTWVyY2VkZXNcIixcbiAgICBcIk1pZXR0YVwiLFxuICAgIFwiTWlyaWFuYVwiLFxuICAgIFwiTWlyaWFtXCIsXG4gICAgXCJNb25pYVwiLFxuICAgIFwiTW9yZ2FuYVwiLFxuICAgIFwiTmFvbWlcIixcbiAgICBcIk5heWFkZVwiLFxuICAgIFwiTmljb2xldHRhXCIsXG4gICAgXCJOaW5mYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk51bnppYVwiLFxuICAgIFwiT2xpbXBpYVwiLFxuICAgIFwiT3JldHRhXCIsXG4gICAgXCJPcnRlbnNpYVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBpY2NhcmRhXCIsXG4gICAgXCJQcmlzY2FcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJpdGFcIixcbiAgICBcIlJvc2FsYmFcIixcbiAgICBcIlJvc2FyaWFcIixcbiAgICBcIlJvc2l0YVwiLFxuICAgIFwiUnV0aFwiLFxuICAgIFwiU2FtaXJhXCIsXG4gICAgXCJTYXJpdGFcIixcbiAgICBcIlNlbHZhZ2dpYVwiLFxuICAgIFwiU2hhaXJhXCIsXG4gICAgXCJTaWJpbGxhXCIsXG4gICAgXCJTb3JpYW5hXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUb3NjYVwiLFxuICAgIFwiVXJzdWxhXCIsXG4gICAgXCJWYW5pYVwiLFxuICAgIFwiVmVyYVwiLFxuICAgIFwiVmllbm5hXCIsXG4gICAgXCJWaW9sYW50ZVwiLFxuICAgIFwiVml0YWxiYVwiLFxuICAgIFwiWmVsaWRhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQW1hdG9cIixcbiAgICBcIkJhcmJpZXJpXCIsXG4gICAgXCJCYXJvbmVcIixcbiAgICBcIkJhc2lsZVwiLFxuICAgIFwiQmF0dGFnbGlhXCIsXG4gICAgXCJCZWxsaW5pXCIsXG4gICAgXCJCZW5lZGV0dGlcIixcbiAgICBcIkJlcm5hcmRpXCIsXG4gICAgXCJCaWFuY1wiLFxuICAgIFwiQmlhbmNoaVwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkNhcHV0b1wiLFxuICAgIFwiQ2FyYm9uXCIsXG4gICAgXCJDYXJ1c29cIixcbiAgICBcIkNhdHRhbmVvXCIsXG4gICAgXCJDb2xvbWJvXCIsXG4gICAgXCJDb250XCIsXG4gICAgXCJDb250ZVwiLFxuICAgIFwiQ29wcG9sYVwiLFxuICAgIFwiQ29zdGFcIixcbiAgICBcIkNvc3RhbnRpblwiLFxuICAgIFwiRCdhbWljb1wiLFxuICAgIFwiRCdhbmdlbG9cIixcbiAgICBcIkRhbWljb1wiLFxuICAgIFwiRGUgQW5nZWxpc1wiLFxuICAgIFwiRGUgbHVjYVwiLFxuICAgIFwiRGUgcm9zYVwiLFxuICAgIFwiRGUgU2FudGlzXCIsXG4gICAgXCJEb25hdGlcIixcbiAgICBcIkVzcG9zaXRvXCIsXG4gICAgXCJGYWJicmlcIixcbiAgICBcIkZhcmluXCIsXG4gICAgXCJGZXJyYXJhXCIsXG4gICAgXCJGZXJyYXJpXCIsXG4gICAgXCJGZXJyYXJvXCIsXG4gICAgXCJGZXJyZXR0aVwiLFxuICAgIFwiRmVycmlcIixcbiAgICBcIkZpb3JcIixcbiAgICBcIkZvbnRhbmFcIixcbiAgICBcIkdhbGxpXCIsXG4gICAgXCJHYWxsb1wiLFxuICAgIFwiR2F0dGlcIixcbiAgICBcIkdlbnRpbGVcIixcbiAgICBcIkdpb3JkYW5vXCIsXG4gICAgXCJHaXVsaWFuaVwiLFxuICAgIFwiR3Jhc3NpXCIsXG4gICAgXCJHcmFzc29cIixcbiAgICBcIkdyZWNvXCIsXG4gICAgXCJHdWVycmFcIixcbiAgICBcIkxlb25lXCIsXG4gICAgXCJMb21iYXJkaVwiLFxuICAgIFwiTG9tYmFyZG9cIixcbiAgICBcIkxvbmdvXCIsXG4gICAgXCJNYW5jaW5pXCIsXG4gICAgXCJNYXJjaGV0dGlcIixcbiAgICBcIk1hcmlhblwiLFxuICAgIFwiTWFyaW5pXCIsXG4gICAgXCJNYXJpbm9cIixcbiAgICBcIk1hcnRpbmVsbGlcIixcbiAgICBcIk1hcnRpbmlcIixcbiAgICBcIk1hcnRpbm9cIixcbiAgICBcIk1henphXCIsXG4gICAgXCJNZXNzaW5hXCIsXG4gICAgXCJNaWxhbmlcIixcbiAgICBcIk1vbnRhbmFyaVwiLFxuICAgIFwiTW9udGlcIixcbiAgICBcIk1vcmVsbGlcIixcbiAgICBcIk1vcmV0dGlcIixcbiAgICBcIk5lZ3JpXCIsXG4gICAgXCJOZXJpXCIsXG4gICAgXCJPcmxhbmRvXCIsXG4gICAgXCJQYWdhbm9cIixcbiAgICBcIlBhbG1pZXJpXCIsXG4gICAgXCJQYWx1bWJvXCIsXG4gICAgXCJQYXJpc2lcIixcbiAgICBcIlBlbGxlZ3JpbmlcIixcbiAgICBcIlBlbGxlZ3Jpbm9cIixcbiAgICBcIlBpcmFzXCIsXG4gICAgXCJSaWNjaVwiLFxuICAgIFwiUmluYWxkaVwiLFxuICAgIFwiUml2YVwiLFxuICAgIFwiUml6emlcIixcbiAgICBcIlJpenpvXCIsXG4gICAgXCJSb21hbm9cIixcbiAgICBcIlJvc3NcIixcbiAgICBcIlJvc3NldHRpXCIsXG4gICAgXCJSdWdnaWVyb1wiLFxuICAgIFwiUnVzc29cIixcbiAgICBcIlNhbGFcIixcbiAgICBcIlNhbm5hXCIsXG4gICAgXCJTYW50b3JvXCIsXG4gICAgXCJTYXJ0b3JpXCIsXG4gICAgXCJTZXJyXCIsXG4gICAgXCJTaWx2ZXN0cmlcIixcbiAgICBcIlNvcnJlbnRpbm9cIixcbiAgICBcIlRlc3RhXCIsXG4gICAgXCJWYWxlbnRpbmlcIixcbiAgICBcIlZpbGxhXCIsXG4gICAgXCJWaXRhbGVcIixcbiAgICBcIlZpdGFsaVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNpZy5cIixcbiAgICBcIkRvdHQuXCIsXG4gICAgXCJEci5cIixcbiAgICBcIkluZy5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbml0LnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIisjIyAjIyMgIyMgIyMgIyMjI1wiLFxuICAgIFwiKyMjICMjICMjIyMjIyNcIixcbiAgICBcIisjIyAjIyAjIyMjIyMjI1wiLFxuICAgIFwiKyMjICMjIyAjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjICMjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjIyAjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjIyAjIyMjIyMjI1wiLFxuICAgIFwiMCMjICMjIyAjIyMjXCIsXG4gICAgXCIrMzkgMCMjICMjIyAjIyNcIixcbiAgICBcIjMjIyAjIyMgIyMjXCIsXG4gICAgXCIrMzkgMyMjICMjIyAjIyNcIlxuICBdXG59O1xuIiwidmFyIGphID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gamE7XG5qYS50aXRsZSA9IFwiSmFwYW5lc2VcIjtcbmphLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjLSMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIuWMl+a1t+mBk1wiLFxuICAgIFwi6Z2S5qOu55yMXCIsXG4gICAgXCLlsqnmiYvnnIxcIixcbiAgICBcIuWuruWfjuecjFwiLFxuICAgIFwi56eL55Sw55yMXCIsXG4gICAgXCLlsbHlvaLnnIxcIixcbiAgICBcIuemj+WztuecjFwiLFxuICAgIFwi6Iyo5Z+O55yMXCIsXG4gICAgXCLmoIPmnKjnnIxcIixcbiAgICBcIue+pOmmrOecjFwiLFxuICAgIFwi5Z+8546J55yMXCIsXG4gICAgXCLljYPokYnnnIxcIixcbiAgICBcIuadseS6rOmDvVwiLFxuICAgIFwi56We5aWI5bed55yMXCIsXG4gICAgXCLmlrDmvZ/nnIxcIixcbiAgICBcIuWvjOWxseecjFwiLFxuICAgIFwi55+z5bed55yMXCIsXG4gICAgXCLnpo/kupXnnIxcIixcbiAgICBcIuWxseaiqOecjFwiLFxuICAgIFwi6ZW36YeO55yMXCIsXG4gICAgXCLlspDpmJznnIxcIixcbiAgICBcIumdmeWyoeecjFwiLFxuICAgIFwi5oSb55+l55yMXCIsXG4gICAgXCLkuInph43nnIxcIixcbiAgICBcIua7i+izgOecjFwiLFxuICAgIFwi5Lqs6YO95bqcXCIsXG4gICAgXCLlpKfpmKrlupxcIixcbiAgICBcIuWFteW6q+ecjFwiLFxuICAgIFwi5aWI6Imv55yMXCIsXG4gICAgXCLlkozmrYzlsbHnnIxcIixcbiAgICBcIumzpeWPluecjFwiLFxuICAgIFwi5bO25qC555yMXCIsXG4gICAgXCLlsqHlsbHnnIxcIixcbiAgICBcIuW6g+WztuecjFwiLFxuICAgIFwi5bGx5Y+j55yMXCIsXG4gICAgXCLlvrPls7bnnIxcIixcbiAgICBcIummmeW3neecjFwiLFxuICAgIFwi5oSb5aqb55yMXCIsXG4gICAgXCLpq5jnn6XnnIxcIixcbiAgICBcIuemj+WyoeecjFwiLFxuICAgIFwi5L2Q6LOA55yMXCIsXG4gICAgXCLplbfltI7nnIxcIixcbiAgICBcIueGiuacrOecjFwiLFxuICAgIFwi5aSn5YiG55yMXCIsXG4gICAgXCLlrq7ltI7nnIxcIixcbiAgICBcIum5v+WFkOWztuecjFwiLFxuICAgIFwi5rKW57iE55yMXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIjFcIixcbiAgICBcIjJcIixcbiAgICBcIjNcIixcbiAgICBcIjRcIixcbiAgICBcIjVcIixcbiAgICBcIjZcIixcbiAgICBcIjdcIixcbiAgICBcIjhcIixcbiAgICBcIjlcIixcbiAgICBcIjEwXCIsXG4gICAgXCIxMVwiLFxuICAgIFwiMTJcIixcbiAgICBcIjEzXCIsXG4gICAgXCIxNFwiLFxuICAgIFwiMTVcIixcbiAgICBcIjE2XCIsXG4gICAgXCIxN1wiLFxuICAgIFwiMThcIixcbiAgICBcIjE5XCIsXG4gICAgXCIyMFwiLFxuICAgIFwiMjFcIixcbiAgICBcIjIyXCIsXG4gICAgXCIyM1wiLFxuICAgIFwiMjRcIixcbiAgICBcIjI1XCIsXG4gICAgXCIyNlwiLFxuICAgIFwiMjdcIixcbiAgICBcIjI4XCIsXG4gICAgXCIyOVwiLFxuICAgIFwiMzBcIixcbiAgICBcIjMxXCIsXG4gICAgXCIzMlwiLFxuICAgIFwiMzNcIixcbiAgICBcIjM0XCIsXG4gICAgXCIzNVwiLFxuICAgIFwiMzZcIixcbiAgICBcIjM3XCIsXG4gICAgXCIzOFwiLFxuICAgIFwiMzlcIixcbiAgICBcIjQwXCIsXG4gICAgXCI0MVwiLFxuICAgIFwiNDJcIixcbiAgICBcIjQzXCIsXG4gICAgXCI0NFwiLFxuICAgIFwiNDVcIixcbiAgICBcIjQ2XCIsXG4gICAgXCI0N1wiXG4gIF0sXG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwi5YyXXCIsXG4gICAgXCLmnbFcIixcbiAgICBcIuilv1wiLFxuICAgIFwi5Y2XXCIsXG4gICAgXCLmlrBcIixcbiAgICBcIua5llwiLFxuICAgIFwi5rivXCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCLluIJcIixcbiAgICBcIuWMulwiLFxuICAgIFwi55S6XCIsXG4gICAgXCLmnZFcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0je05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9I3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je3N0cmVldF9zdWZmaXh9XCJcbiAgXVxufTtcbmphLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAjIyMjLSMtIyMjI1wiLFxuICAgIFwiMCMjIy0jIy0jIyMjXCIsXG4gICAgXCIwIyMtIyMjLSMjIyNcIixcbiAgICBcIjAjLSMjIyMtIyMjI1wiXG4gIF1cbn07XG5qYS5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDkwLSMjIyMtIyMjI1wiLFxuICAgIFwiMDgwLSMjIyMtIyMjI1wiLFxuICAgIFwiMDcwLSMjIyMtIyMjI1wiXG4gIF1cbn07XG5qYS5uYW1lID0ge1xuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCLkvZDol6RcIixcbiAgICBcIumItOacqFwiLFxuICAgIFwi6auY5qmLXCIsXG4gICAgXCLnlLDkuK1cIixcbiAgICBcIua4oei+ulwiLFxuICAgIFwi5LyK6JekXCIsXG4gICAgXCLlsbHmnKxcIixcbiAgICBcIuS4readkVwiLFxuICAgIFwi5bCP5p6XXCIsXG4gICAgXCLliqDol6RcIixcbiAgICBcIuWQieeUsFwiLFxuICAgIFwi5bGx55SwXCIsXG4gICAgXCLkvZDjgIXmnKhcIixcbiAgICBcIuWxseWPo1wiLFxuICAgIFwi5paO6JekXCIsXG4gICAgXCLmnb7mnKxcIixcbiAgICBcIuS6leS4ilwiLFxuICAgIFwi5pyo5p2RXCIsXG4gICAgXCLmnpdcIixcbiAgICBcIua4heawtFwiXG4gIF0sXG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLlpKfnv5RcIixcbiAgICBcIuiTrlwiLFxuICAgIFwi6aKv5aSqXCIsXG4gICAgXCLmqLlcIixcbiAgICBcIuWkp+WSjFwiLFxuICAgIFwi6Zm957+UXCIsXG4gICAgXCLpmbjmlpdcIixcbiAgICBcIuWkquS4gFwiLFxuICAgIFwi5rW357+UXCIsXG4gICAgXCLokrznqbpcIixcbiAgICBcIue/vFwiLFxuICAgIFwi6Zm96I+cXCIsXG4gICAgXCLntZDmhJtcIixcbiAgICBcIue1kOiho1wiLFxuICAgIFwi5p2PXCIsXG4gICAgXCLojonlrZBcIixcbiAgICBcIue+jue+vVwiLFxuICAgIFwi57WQ6I+cXCIsXG4gICAgXCLlv4PmhJtcIixcbiAgICBcIuaEm+iPnFwiLFxuICAgIFwi576O5ZKyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7bGFzdF9uYW1lfSAje2ZpcnN0X25hbWV9XCJcbiAgXVxufTtcbiIsInZhciBrbyA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGtvO1xua28udGl0bGUgPSBcIktvcmVhblwiO1xua28uYWRkcmVzcyA9IHtcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCLqsJXsm5BcIixcbiAgICBcIuqyveq4sFwiLFxuICAgIFwi6rK964KoXCIsXG4gICAgXCLqsr3rtoFcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi64yA6rWsXCIsXG4gICAgXCLrjIDsoIRcIixcbiAgICBcIuu2gOyCsFwiLFxuICAgIFwi7ISc7Jq4XCIsXG4gICAgXCLsmrjsgrBcIixcbiAgICBcIuyduOyynFwiLFxuICAgIFwi7KCE64KoXCIsXG4gICAgXCLsoITrtoFcIixcbiAgICBcIuygnOyjvFwiLFxuICAgIFwi7Lap64KoXCIsXG4gICAgXCLstqnrtoFcIixcbiAgICBcIuyEuOyihVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCLqsJXsm5BcIixcbiAgICBcIuqyveq4sFwiLFxuICAgIFwi6rK964KoXCIsXG4gICAgXCLqsr3rtoFcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi64yA6rWsXCIsXG4gICAgXCLrjIDsoIRcIixcbiAgICBcIuu2gOyCsFwiLFxuICAgIFwi7ISc7Jq4XCIsXG4gICAgXCLsmrjsgrBcIixcbiAgICBcIuyduOyynFwiLFxuICAgIFwi7KCE64KoXCIsXG4gICAgXCLsoITrtoFcIixcbiAgICBcIuygnOyjvFwiLFxuICAgIFwi7Lap64KoXCIsXG4gICAgXCLstqnrtoFcIixcbiAgICBcIuyEuOyihVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwi6rWsXCIsXG4gICAgXCLsi5xcIixcbiAgICBcIuq1sFwiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIuqwleumiVwiLFxuICAgIFwi7JaR7JaRXCIsXG4gICAgXCLsnbjsoJxcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi6rWs66asXCIsXG4gICAgXCLrtoDsspxcIixcbiAgICBcIuuwgOyWkVwiLFxuICAgIFwi7Ya17JiBXCIsXG4gICAgXCLssL3sm5BcIixcbiAgICBcIuqxsOywvVwiLFxuICAgIFwi6rOg7ISxXCIsXG4gICAgXCLslpHsgrBcIixcbiAgICBcIuq5gOyynFwiLFxuICAgIFwi6rWs66+4XCIsXG4gICAgXCLsmIHso7xcIixcbiAgICBcIuq0keyCsFwiLFxuICAgIFwi64KoXCIsXG4gICAgXCLrtoFcIixcbiAgICBcIuqzoOywvVwiLFxuICAgIFwi6rWw7IKwXCIsXG4gICAgXCLrgqjsm5BcIixcbiAgICBcIuuPmeyekVwiLFxuICAgIFwi66eI7Y+sXCIsXG4gICAgXCLshqHtjIxcIixcbiAgICBcIuyaqeyCsFwiLFxuICAgIFwi67aA7Y+JXCIsXG4gICAgXCLqsJXtmZRcIixcbiAgICBcIuyImOyEsVwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X3Jvb3RcIjogW1xuICAgIFwi7IOB6rOEXCIsXG4gICAgXCLtmZTqs6FcIixcbiAgICBcIuyLoOyglVwiLFxuICAgIFwi66qpXCIsXG4gICAgXCLsnqDsi6RcIixcbiAgICBcIuuptOuqqVwiLFxuICAgIFwi7KO87JWIXCIsXG4gICAgXCLslYjslpFcIixcbiAgICBcIuykkVwiLFxuICAgIFwi7KCV7JmVXCIsXG4gICAgXCLqtazroZxcIixcbiAgICBcIuyLoOyblFwiLFxuICAgIFwi7Jew7IKwXCIsXG4gICAgXCLrtoDtj4lcIixcbiAgICBcIuywvVwiLFxuICAgIFwi66eM7IiYXCIsXG4gICAgXCLspJHqs4RcIixcbiAgICBcIuqygOuLqFwiLFxuICAgIFwi7Iuc7Z2lXCIsXG4gICAgXCLsg4Hrj4RcIixcbiAgICBcIuuwqeuwsFwiLFxuICAgIFwi7J6l7JygXCIsXG4gICAgXCLsg4FcIixcbiAgICBcIuq0keuqhVwiLFxuICAgIFwi7Iug6ri4XCIsXG4gICAgXCLtlonsi6BcIixcbiAgICBcIuuMgOuqhVwiLFxuICAgIFwi64+Z7YOEXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIuydjVwiLFxuICAgIFwi66m0XCIsXG4gICAgXCLrj5lcIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9I3tzdHJlZXRfc3VmZml4fVwiXG4gIF1cbn07XG5rby5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwIy0jIyMjIy0jIyMjXCIsXG4gICAgXCIwIyMtIyMjLSMjIyNcIixcbiAgICBcIjAjIy0jIyMjLSMjIyNcIlxuICBdXG59O1xua28uY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwi7Jew6rWs7IaMXCIsXG4gICAgXCLqsozsnoTspohcIixcbiAgICBcIuq3uOujuVwiLFxuICAgIFwi7KCE7J6QXCIsXG4gICAgXCLrrLzsgrBcIixcbiAgICBcIuy9lOumrOyVhFwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIuyjvOyLne2ajOyCrFwiLFxuICAgIFwi7ZWc6rWtXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSAje3N1ZmZpeH1cIlxuICBdXG59O1xua28uaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvLmtyXCIsXG4gICAgXCJoYW5tYWlsLm5ldFwiLFxuICAgIFwibmF2ZXIuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvLmtyXCIsXG4gICAgXCJjb21cIixcbiAgICBcImJpelwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmUua3JcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3Iua3JcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5rby5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuuyleuloOydtFwiLFxuICAgIFwi7KCV7ZWY64qUXCIsXG4gICAgXCLrsJTsl5BcIixcbiAgICBcIuydmO2VmOyXrFwiLFxuICAgIFwi7J6s7Jm46rWt66+87J2EXCIsXG4gICAgXCLrs7TtmLjtlaBcIixcbiAgICBcIuydmOustOulvFwiLFxuICAgIFwi7KeE64ukLlwiLFxuICAgIFwi66qo65OgXCIsXG4gICAgXCLqta3rr7zsnYBcIixcbiAgICBcIuyLoOyytOydmFwiLFxuICAgIFwi7J6Q7Jyg66W8XCIsXG4gICAgXCLqsIDsp4Tri6QuXCIsXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuyghO2GteusuO2ZlOydmFwiLFxuICAgIFwi6rOE7Iq5wrfrsJzsoITqs7xcIixcbiAgICBcIuuvvOyhseusuO2ZlOydmFwiLFxuICAgIFwi7LC964us7JeQXCIsXG4gICAgXCLrhbjroKXtlZjsl6zslbxcIixcbiAgICBcIu2VnOuLpC5cIixcbiAgICBcIu2GteyLoMK367Cp7Iah7J2YXCIsXG4gICAgXCLsi5zshKTquLDspIDqs7xcIixcbiAgICBcIuyLoOusuOydmFwiLFxuICAgIFwi6riw64ql7J2EXCIsXG4gICAgXCLrs7TsnqXtlZjquLBcIixcbiAgICBcIuychO2VmOyXrFwiLFxuICAgIFwi7ZWE7JqU7ZWcXCIsXG4gICAgXCLsgqztla3snYBcIixcbiAgICBcIuuyleuloOuhnFwiLFxuICAgIFwi7KCV7ZWc64ukLlwiLFxuICAgIFwi7ZeM67KV7JeQXCIsXG4gICAgXCLsnZjtlZjsl6xcIixcbiAgICBcIuyytOqysMK36rO17Y+s65CcXCIsXG4gICAgXCLsobDslb3qs7xcIixcbiAgICBcIuydvOuwmOyggeycvOuhnFwiLFxuICAgIFwi7Iq57J2465CcXCIsXG4gICAgXCLqta3soJzrspXqt5zripRcIixcbiAgICBcIuq1reuCtOuyleqzvFwiLFxuICAgIFwi6rCZ7J2AXCIsXG4gICAgXCLtmqjroKXsnYRcIixcbiAgICBcIuqwgOynhOuLpC5cIixcbiAgICBcIuuLpOunjCxcIixcbiAgICBcIu2YhO2WieuylOyduOyduFwiLFxuICAgIFwi6rK97Jqw7JmAXCIsXG4gICAgXCLsnqXquLBcIixcbiAgICBcIjPrhYRcIixcbiAgICBcIuydtOyDgeydmFwiLFxuICAgIFwi7ZiV7JeQXCIsXG4gICAgXCLtlbTri7ntlZjripRcIixcbiAgICBcIuyjhOulvFwiLFxuICAgIFwi67KU7ZWY6rOgXCIsXG4gICAgXCLrj4TtlLxcIixcbiAgICBcIuuYkOuKlFwiLFxuICAgIFwi7Kad6rGw7J2466m47J2YXCIsXG4gICAgXCLsl7zroKTqsIBcIixcbiAgICBcIuyeiOydhFwiLFxuICAgIFwi65WM7JeQ64qUXCIsXG4gICAgXCLsgqztm4Tsl5BcIixcbiAgICBcIuyYgeyepeydhFwiLFxuICAgIFwi7LKt6rWs7ZWgXCIsXG4gICAgXCLsiJhcIixcbiAgICBcIuyeiOuLpC5cIixcbiAgICBcIuyggOyekeyekMK367Cc66qF6rCAwrfqs7ztlZnquLDsiKDsnpDsmYBcIixcbiAgICBcIuyYiOyIoOqwgOydmFwiLFxuICAgIFwi6raM66as64qUXCIsXG4gICAgXCLrspXrpaDroZzsjahcIixcbiAgICBcIuuztO2YuO2VnOuLpC5cIixcbiAgICBcIu2YleyCrO2UvOqzoOyduOydgFwiLFxuICAgIFwi7Jyg7KOE7J2YXCIsXG4gICAgXCLtjJDqsrDsnbRcIixcbiAgICBcIu2ZleygleuQoFwiLFxuICAgIFwi65WM6rmM7KeA64qUXCIsXG4gICAgXCLrrLTso4TroZxcIixcbiAgICBcIuy2lOygleuQnOuLpC5cIixcbiAgICBcIuuqqOuToFwiLFxuICAgIFwi6rWt66+87J2AXCIsXG4gICAgXCLtlonsnITsi5zsnZhcIixcbiAgICBcIuuyleuloOyXkFwiLFxuICAgIFwi7J2Y7ZWY7JesXCIsXG4gICAgXCLrspTso4TrpbxcIixcbiAgICBcIuq1rOyEse2VmOyngFwiLFxuICAgIFwi7JWE64uI7ZWY64qUXCIsXG4gICAgXCLtlonsnITroZxcIixcbiAgICBcIuyGjOy2lOuQmOyngFwiLFxuICAgIFwi7JWE64uI7ZWY66mwLFwiLFxuICAgIFwi64+Z7J287ZWcXCIsXG4gICAgXCLrspTso4Tsl5BcIixcbiAgICBcIuuMgO2VmOyXrFwiLFxuICAgIFwi6rGw65OtXCIsXG4gICAgXCLsspjrsozrsJvsp4BcIixcbiAgICBcIuyVhOuLiO2VnOuLpC5cIixcbiAgICBcIuq1reqwgOuKlFwiLFxuICAgIFwi7Y+J7IOd6rWQ7Jyh7J2EXCIsXG4gICAgXCLsp4TtnaXtlZjsl6zslbxcIixcbiAgICBcIu2VnOuLpC5cIixcbiAgICBcIuuqqOuToFwiLFxuICAgIFwi6rWt66+87J2AXCIsXG4gICAgXCLsgqzsg53tmZzsnZhcIixcbiAgICBcIuu5hOuwgOqzvFwiLFxuICAgIFwi7J6Q7Jyg66W8XCIsXG4gICAgXCLsuajtlbTrsJvsp4BcIixcbiAgICBcIuyVhOuLiO2VnOuLpC5cIixcbiAgICBcIuydmOustOq1kOycoeydgFwiLFxuICAgIFwi66y07IOB7Jy866GcXCIsXG4gICAgXCLtlZzri6QuXCIsXG4gICAgXCLsoIDsnpHsnpDCt+uwnOuqheqwgMK36rO87ZWZ6riw7Iig7J6Q7JmAXCIsXG4gICAgXCLsmIjsiKDqsIDsnZhcIixcbiAgICBcIuq2jOumrOuKlFwiLFxuICAgIFwi67KV66Wg66Gc7I2oXCIsXG4gICAgXCLrs7TtmLjtlZzri6QuXCIsXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuuqqOyEseydmFwiLFxuICAgIFwi67O07Zi466W8XCIsXG4gICAgXCLsnITtlZjsl6xcIixcbiAgICBcIuuFuOugpe2VmOyXrOyVvFwiLFxuICAgIFwi7ZWc64ukLlwiLFxuICAgIFwi7ZeM67KV7JeQXCIsXG4gICAgXCLsnZjtlZjsl6xcIixcbiAgICBcIuyytOqysMK36rO17Y+s65CcXCIsXG4gICAgXCLsobDslb3qs7xcIixcbiAgICBcIuydvOuwmOyggeycvOuhnFwiLFxuICAgIFwi7Iq57J2465CcXCIsXG4gICAgXCLqta3soJzrspXqt5zripRcIixcbiAgICBcIuq1reuCtOuyleqzvFwiLFxuICAgIFwi6rCZ7J2AXCIsXG4gICAgXCLtmqjroKXsnYRcIixcbiAgICBcIuqwgOynhOuLpC5cIlxuICBdXG59O1xua28ubmFtZSA9IHtcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi6rmAXCIsXG4gICAgXCLsnbRcIixcbiAgICBcIuuwlVwiLFxuICAgIFwi7LWcXCIsXG4gICAgXCLsoJVcIixcbiAgICBcIuqwlVwiLFxuICAgIFwi7KGwXCIsXG4gICAgXCLsnKRcIixcbiAgICBcIuyepVwiLFxuICAgIFwi7J6EXCIsXG4gICAgXCLsmKRcIixcbiAgICBcIu2VnFwiLFxuICAgIFwi7IugXCIsXG4gICAgXCLshJxcIixcbiAgICBcIuq2jFwiLFxuICAgIFwi7ZmpXCIsXG4gICAgXCLslYhcIixcbiAgICBcIuyGoVwiLFxuICAgIFwi66WYXCIsXG4gICAgXCLtmY1cIlxuICBdLFxuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwi7ISc7JewXCIsXG4gICAgXCLrr7zshJxcIixcbiAgICBcIuyEnO2YhFwiLFxuICAgIFwi7KeA7JqwXCIsXG4gICAgXCLshJzsnKRcIixcbiAgICBcIuyngOuvvFwiLFxuICAgIFwi7IiY67mIXCIsXG4gICAgXCLtlZjsnYBcIixcbiAgICBcIuyYiOydgFwiLFxuICAgIFwi7Jyk7IScXCIsXG4gICAgXCLrr7zspIBcIixcbiAgICBcIuyngO2bhFwiLFxuICAgIFwi7KeA7ZuIXCIsXG4gICAgXCLspIDshJxcIixcbiAgICBcIu2YhOyasFwiLFxuICAgIFwi7JiI7KSAXCIsXG4gICAgXCLqsbTsmrBcIixcbiAgICBcIu2YhOykgFwiLFxuICAgIFwi66+87J6sXCIsXG4gICAgXCLsmrDsp4RcIixcbiAgICBcIuydgOyjvFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2xhc3RfbmFtZX0gI3tmaXJzdF9uYW1lfVwiXG4gIF1cbn07XG4iLCJ2YXIgbmJfTk8gPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBuYl9OTztcbm5iX05PLnRpdGxlID0gXCJOb3J3ZWdpYW5cIjtcbm5iX05PLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9yb290XCI6IFtcbiAgICBcIkZldFwiLFxuICAgIFwiR2plc1wiLFxuICAgIFwiSMO4eVwiLFxuICAgIFwiSW5uXCIsXG4gICAgXCJGYWdlclwiLFxuICAgIFwiTGlsbGVcIixcbiAgICBcIkxvXCIsXG4gICAgXCJNYWxcIixcbiAgICBcIk5vcmRcIixcbiAgICBcIk7DpnJcIixcbiAgICBcIlNhbmRcIixcbiAgICBcIlNtZVwiLFxuICAgIFwiU3RhdlwiLFxuICAgIFwiU3RvclwiLFxuICAgIFwiVGFuZFwiLFxuICAgIFwiVXRcIixcbiAgICBcIlZlc3RcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcImJlcmdcIixcbiAgICBcImJvcmdcIixcbiAgICBcImJ5XCIsXG4gICAgXCJiw7hcIixcbiAgICBcImRhbFwiLFxuICAgIFwiZWlkXCIsXG4gICAgXCJmamVsbFwiLFxuICAgIFwiZmpvcmRcIixcbiAgICBcImZvc3NcIixcbiAgICBcImdydW5uXCIsXG4gICAgXCJoYW1uXCIsXG4gICAgXCJoYXZuXCIsXG4gICAgXCJoZWxsZVwiLFxuICAgIFwibWFya1wiLFxuICAgIFwibmVzXCIsXG4gICAgXCJvZGRlblwiLFxuICAgIFwic2FuZFwiLFxuICAgIFwic2rDuGVuXCIsXG4gICAgXCJzdGFkXCIsXG4gICAgXCJzdHJhbmRcIixcbiAgICBcInN0csO4bVwiLFxuICAgIFwic3VuZFwiLFxuICAgIFwidmlrXCIsXG4gICAgXCJ2w6ZyXCIsXG4gICAgXCJ2w6VnXCIsXG4gICAgXCLDuFwiLFxuICAgIFwiw7h5XCIsXG4gICAgXCLDpXNcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiw5h2cmVcIixcbiAgICBcIk5lZHJlXCIsXG4gICAgXCJTw7huZHJlXCIsXG4gICAgXCJHYW1sZVwiLFxuICAgIFwiw5hzdHJlXCIsXG4gICAgXCJWZXN0cmVcIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkVpa2VcIixcbiAgICBcIkJqw7hya2VcIixcbiAgICBcIkdyYW5cIixcbiAgICBcIlZhc3NcIixcbiAgICBcIkZ1cnVcIixcbiAgICBcIkxpdGpcIixcbiAgICBcIkxpbGxlXCIsXG4gICAgXCJIw7h5XCIsXG4gICAgXCJGb3NzZVwiLFxuICAgIFwiRWx2ZVwiLFxuICAgIFwiS3VcIixcbiAgICBcIktvbnZhbGxcIixcbiAgICBcIlNvbGR1Z2dcIixcbiAgICBcIkhlc3RlbXlyXCIsXG4gICAgXCJHcmFuaXR0XCIsXG4gICAgXCJIZWdnZVwiLFxuICAgIFwiUm9nbmVcIixcbiAgICBcIkZpb2xcIixcbiAgICBcIlNvbFwiLFxuICAgIFwiVGluZ1wiLFxuICAgIFwiTWFsbVwiLFxuICAgIFwiS2xva2tlclwiLFxuICAgIFwiUHJlc3RlXCIsXG4gICAgXCJEYW1cIixcbiAgICBcIkdlaXRlcnlnZ1wiLFxuICAgIFwiQmVra2VcIixcbiAgICBcIkJlcmdcIixcbiAgICBcIktpcmtlXCIsXG4gICAgXCJLb3JzXCIsXG4gICAgXCJCcnVcIixcbiAgICBcIkJsw6V2ZWlzXCIsXG4gICAgXCJUb3JnXCIsXG4gICAgXCJTasO4XCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcImFsbMOpZW5cIixcbiAgICBcImJha2tlblwiLFxuICAgIFwiYmVyZ2V0XCIsXG4gICAgXCJicsOldGVuXCIsXG4gICAgXCJlZ2dlblwiLFxuICAgIFwiZW5nZW5cIixcbiAgICBcImVrcmFcIixcbiAgICBcImZhcmV0XCIsXG4gICAgXCJmbGF0YVwiLFxuICAgIFwiZ2F0YVwiLFxuICAgIFwiZ2plcmRldFwiLFxuICAgIFwiZ3JlbmRhXCIsXG4gICAgXCJncm9wYVwiLFxuICAgIFwiaGFnZW5cIixcbiAgICBcImhhdWdlblwiLFxuICAgIFwiaGF2bmFcIixcbiAgICBcImhvbHRldFwiLFxuICAgIFwiaMO4Z2RhXCIsXG4gICAgXCJqb3JkZXRcIixcbiAgICBcImtvbGxlblwiLFxuICAgIFwia3Jva2VuXCIsXG4gICAgXCJsaWFcIixcbiAgICBcImx1bmRlblwiLFxuICAgIFwibHluZ2VuXCIsXG4gICAgXCJsw7hra2FcIixcbiAgICBcIm1hcmthXCIsXG4gICAgXCJtb2VuXCIsXG4gICAgXCJteXJhXCIsXG4gICAgXCJwbGFzc2VuXCIsXG4gICAgXCJyaW5nZW5cIixcbiAgICBcInJvYVwiLFxuICAgIFwicsO4YVwiLFxuICAgIFwic2tvZ2VuXCIsXG4gICAgXCJza3JlbnRlblwiLFxuICAgIFwic3ByYW5nZXRcIixcbiAgICBcInN0aWVuXCIsXG4gICAgXCJzdHJhbmRhXCIsXG4gICAgXCJzdHViYmVuXCIsXG4gICAgXCJzdHlra2V0XCIsXG4gICAgXCJzdmluZ2VuXCIsXG4gICAgXCJ0amVybmV0XCIsXG4gICAgXCJ0b3BwZW5cIixcbiAgICBcInR1bmV0XCIsXG4gICAgXCJ2b2xsZW5cIixcbiAgICBcInZpa2FcIixcbiAgICBcIsOlc2VuXCJcbiAgXSxcbiAgXCJjb21tb25fc3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJzZ2F0ZVwiLFxuICAgIFwic3ZlaVwiLFxuICAgIFwicyBHYXRlXCIsXG4gICAgXCJzIFZlaVwiLFxuICAgIFwiZ2F0YVwiLFxuICAgIFwidmVpZW5cIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiTGVpbC4gIyMjXCIsXG4gICAgXCJPcHBnYW5nIEFcIixcbiAgICBcIk9wcGdhbmcgQlwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjI1wiLFxuICAgIFwiMCMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9yb290fSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7c3RyZWV0X3ByZWZpeH0gI3tzdHJlZXRfcm9vdH0je3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiTm9yZ2VcIlxuICBdXG59O1xubmJfTk8uY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiR3J1cHBlblwiLFxuICAgIFwiQVNcIixcbiAgICBcIkFTQVwiLFxuICAgIFwiQkFcIixcbiAgICBcIlJGSFwiLFxuICAgIFwib2cgU8O4bm5lclwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gb2cgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xubmJfTk8uaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJub1wiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5uYl9OTy5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiRW1tYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiVGhlYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiRW1pbGllXCIsXG4gICAgXCJJbmdyaWRcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiU29maWVcIixcbiAgICBcIkFubmFcIixcbiAgICBcIk1hbGluXCIsXG4gICAgXCJBbWFsaWVcIixcbiAgICBcIlZpbGRlXCIsXG4gICAgXCJGcmlkYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJUdXZhXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJLYXJvbGluZVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hcnRpbmVcIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTWFydGVcIixcbiAgICBcIkhlZGRhXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJTaWxqZVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiRWxpc2VcIixcbiAgICBcIk9kYVwiLFxuICAgIFwiS3Jpc3RpbmVcIixcbiAgICBcIkF1cm9yYVwiLFxuICAgIFwiS2FqYVwiLFxuICAgIFwiQ2FtaWxsYVwiLFxuICAgIFwiTWFyaVwiLFxuICAgIFwiTWFyZW5cIixcbiAgICBcIk1pbmFcIixcbiAgICBcIlNlbG1hXCIsXG4gICAgXCJKZW5ueVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJFbGluZVwiLFxuICAgIFwiU3Vubml2YVwiLFxuICAgIFwiTmF0YWxpZVwiLFxuICAgIFwiVGlyaWxcIixcbiAgICBcIlN5bm5lXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIk1hZGVsZWluZVwiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXRoaWFzXCIsXG4gICAgXCJLcmlzdGlhblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkFuZHJlYXNcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiTWFnbnVzXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIlRvYmlhc1wiLFxuICAgIFwiS3Jpc3RvZmZlclwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIk1hcml1c1wiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkZyZWRyaWtcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiU29uZHJlXCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJOaWtvbGFpXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiTWF0c1wiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiRXJpa1wiLFxuICAgIFwiU2ltZW5cIixcbiAgICBcIk9sZVwiLFxuICAgIFwiRWlyaWtcIixcbiAgICBcIklzYWtcIixcbiAgICBcIkthc3BlclwiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiSm9ha2ltXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSMOla29uXCIsXG4gICAgXCJTaW5kcmVcIixcbiAgICBcIkrDuHJnZW5cIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiQW5kZXJzXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiRXZlblwiLFxuICAgIFwiVGhlb2RvclwiLFxuICAgIFwiTWlra2VsXCIsXG4gICAgXCJBa3NlbFwiXG4gIF0sXG4gIFwiZmVtaW5pbmVfbmFtZVwiOiBbXG4gICAgXCJFbW1hXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkluZ3JpZFwiLFxuICAgIFwiSGFubmFcIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJTb2ZpZVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiTWFsaW5cIixcbiAgICBcIkFtYWxpZVwiLFxuICAgIFwiVmlsZGVcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJBbmRyZWFcIixcbiAgICBcIlR1dmFcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIkthcm9saW5lXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWFydGluZVwiLFxuICAgIFwiTGlubmVhXCIsXG4gICAgXCJNYXJ0ZVwiLFxuICAgIFwiSGVkZGFcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJIZWxlbmVcIixcbiAgICBcIlNpbGplXCIsXG4gICAgXCJMZWFoXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJFbGlzZVwiLFxuICAgIFwiT2RhXCIsXG4gICAgXCJLcmlzdGluZVwiLFxuICAgIFwiQXVyb3JhXCIsXG4gICAgXCJLYWphXCIsXG4gICAgXCJDYW1pbGxhXCIsXG4gICAgXCJNYXJpXCIsXG4gICAgXCJNYXJlblwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiU2VsbWFcIixcbiAgICBcIkplbm55XCIsXG4gICAgXCJDZWxpbmVcIixcbiAgICBcIkVsaW5lXCIsXG4gICAgXCJTdW5uaXZhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJUaXJpbFwiLFxuICAgIFwiU3lubmVcIixcbiAgICBcIlNhbmRyYVwiLFxuICAgIFwiTWFkZWxlaW5lXCJcbiAgXSxcbiAgXCJtYXNjdWxpbmVfbmFtZVwiOiBbXG4gICAgXCJNYXJrdXNcIixcbiAgICBcIk1hdGhpYXNcIixcbiAgICBcIktyaXN0aWFuXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiQW5kcmVhc1wiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIlNhbmRlclwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJNYWdudXNcIixcbiAgICBcIkhlbnJpa1wiLFxuICAgIFwiVG9iaWFzXCIsXG4gICAgXCJLcmlzdG9mZmVyXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJBZHJpYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiTWFyaXVzXCIsXG4gICAgXCJFbGlhc1wiLFxuICAgIFwiRnJlZHJpa1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJTb25kcmVcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJKYWtvYlwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiT3NrYXJcIixcbiAgICBcIk5pa29sYWlcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJNYXRzXCIsXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJTaW1lblwiLFxuICAgIFwiT2xlXCIsXG4gICAgXCJFaXJpa1wiLFxuICAgIFwiSXNha1wiLFxuICAgIFwiS2FzcGVyXCIsXG4gICAgXCJOb2FoXCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJKb2FraW1cIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJIw6Vrb25cIixcbiAgICBcIlNpbmRyZVwiLFxuICAgIFwiSsO4cmdlblwiLFxuICAgIFwiSGVybWFuXCIsXG4gICAgXCJBbmRlcnNcIixcbiAgICBcIkpvbmF0aGFuXCIsXG4gICAgXCJFdmVuXCIsXG4gICAgXCJUaGVvZG9yXCIsXG4gICAgXCJNaWtrZWxcIixcbiAgICBcIkFrc2VsXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiSm9oYW5zZW5cIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiQW5kZXJzZW5cIixcbiAgICBcIktyaXN0aWFuc2VuXCIsXG4gICAgXCJMYXJzZW5cIixcbiAgICBcIk9sc2VuXCIsXG4gICAgXCJTb2xiZXJnXCIsXG4gICAgXCJBbmRyZXNlblwiLFxuICAgIFwiUGVkZXJzZW5cIixcbiAgICBcIk5pbHNlblwiLFxuICAgIFwiQmVyZ1wiLFxuICAgIFwiSGFsdm9yc2VuXCIsXG4gICAgXCJLYXJsc2VuXCIsXG4gICAgXCJTdmVuZHNlblwiLFxuICAgIFwiSmVuc2VuXCIsXG4gICAgXCJIYXVnZW5cIixcbiAgICBcIk1hcnRpbnNlblwiLFxuICAgIFwiRXJpa3NlblwiLFxuICAgIFwiU8O4cmVuc2VuXCIsXG4gICAgXCJKb2huc2VuXCIsXG4gICAgXCJNeWhyZXJcIixcbiAgICBcIkpvaGFubmVzc2VuXCIsXG4gICAgXCJOaWVsc2VuXCIsXG4gICAgXCJIYWdlblwiLFxuICAgIFwiUGV0dGVyc2VuXCIsXG4gICAgXCJCYWtrZVwiLFxuICAgIFwiU2t1dGVydWRcIixcbiAgICBcIkzDuGtlblwiLFxuICAgIFwiR3VuZGVyc2VuXCIsXG4gICAgXCJTdHJhbmRcIixcbiAgICBcIkrDuHJnZW5zZW5cIixcbiAgICBcIkt2YXJtZVwiLFxuICAgIFwiUsO4ZWRcIixcbiAgICBcIlPDpnRoZXJcIixcbiAgICBcIlN0ZW5zcnVkXCIsXG4gICAgXCJNb2VcIixcbiAgICBcIktyaXN0b2ZmZXJzZW5cIixcbiAgICBcIkpha29ic2VuXCIsXG4gICAgXCJIb2xtXCIsXG4gICAgXCJBYXNcIixcbiAgICBcIkxpZVwiLFxuICAgIFwiTW9lblwiLFxuICAgIFwiQW5kcmVhc3NlblwiLFxuICAgIFwiVmVkdmlrXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIkphY29ic2VuXCIsXG4gICAgXCJUb3JnZXJzZW5cIixcbiAgICBcIlJ1dWRcIixcbiAgICBcIktyb2doXCIsXG4gICAgXCJDaHJpc3RpYW5zZW5cIixcbiAgICBcIkJqZXJrZVwiLFxuICAgIFwiQWFsZXJ1ZFwiLFxuICAgIFwiQm9yZ2VcIixcbiAgICBcIlPDuHJsaWVcIixcbiAgICBcIkJlcmdlXCIsXG4gICAgXCLDmHN0bGlcIixcbiAgICBcIsOYZGVnw6VyZFwiLFxuICAgIFwiVG9ycFwiLFxuICAgIFwiSGVucmlrc2VuXCIsXG4gICAgXCJIYXVrZWxpZHPDpnRlclwiLFxuICAgIFwiRmplbGRcIixcbiAgICBcIkRhbmllbHNlblwiLFxuICAgIFwiQWFzZW5cIixcbiAgICBcIkZyZWRyaWtzZW5cIixcbiAgICBcIkRhaGxcIixcbiAgICBcIkJlcm50c2VuXCIsXG4gICAgXCJBcm5lc2VuXCIsXG4gICAgXCJXb2xkXCIsXG4gICAgXCJUaG9yZXNlblwiLFxuICAgIFwiU29saGVpbVwiLFxuICAgIFwiU2tvZ2x1bmRcIixcbiAgICBcIkJha2tlblwiLFxuICAgIFwiQW11bmRzZW5cIixcbiAgICBcIlNvbGxpXCIsXG4gICAgXCJTbW9nZWxpXCIsXG4gICAgXCJLcmlzdGVuc2VuXCIsXG4gICAgXCJHbG9zbGlcIixcbiAgICBcIkZvc3N1bVwiLFxuICAgIFwiRXZlbnNlblwiLFxuICAgIFwiRWlkZVwiLFxuICAgIFwiQ2FybHNlblwiLFxuICAgIFwiw5hzdGJ5XCIsXG4gICAgXCJWZWdnZVwiLFxuICAgIFwiVGFuZ2VuXCIsXG4gICAgXCJTbWVkc3J1ZFwiLFxuICAgIFwiT2xzdGFkXCIsXG4gICAgXCJMdW5kZVwiLFxuICAgIFwiS2xldmVuXCIsXG4gICAgXCJIdXNlYnlcIixcbiAgICBcIkJqw7hybnN0YWRcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJhc211c3NlblwiLFxuICAgIFwiTnlnw6VyZFwiLFxuICAgIFwiTm9yZHNrYXVnXCIsXG4gICAgXCJOb3JkYnlcIixcbiAgICBcIk1hdGhpc2VuXCIsXG4gICAgXCJIb3BsYW5kXCIsXG4gICAgXCJHcmFuXCIsXG4gICAgXCJGaW5zdGFkXCIsXG4gICAgXCJFZHZhcmRzZW5cIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJEci5cIixcbiAgICBcIlByb2YuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiSnIuXCIsXG4gICAgXCJTci5cIixcbiAgICBcIklcIixcbiAgICBcIklJXCIsXG4gICAgXCJJSUlcIixcbiAgICBcIklWXCIsXG4gICAgXCJWXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje2ZlbWluaW5lX25hbWV9ICN7ZmVtaW5pbmVfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje21hc2N1bGluZV9uYW1lfSAje21hc2N1bGluZV9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xubmJfTk8ucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjIyMjIyNcIixcbiAgICBcIiMjICMjICMjICMjXCIsXG4gICAgXCIjIyMgIyMgIyMjXCIsXG4gICAgXCIrNDcgIyMgIyMgIyMgIyNcIlxuICBdXG59O1xuIiwidmFyIG5lcCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IG5lcDtcbm5lcC50aXRsZSA9IFwiTmVwYWxlc2VcIjtcbm5lcC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyYXZcIixcbiAgICBcIkFqaXRhXCIsXG4gICAgXCJBbWl0XCIsXG4gICAgXCJBbWl0YVwiLFxuICAgIFwiQW1yaXRcIixcbiAgICBcIkFyaWppdFwiLFxuICAgIFwiQXNobWlcIixcbiAgICBcIkFzbWl0YVwiLFxuICAgIFwiQmliZWtcIixcbiAgICBcIkJpamF5XCIsXG4gICAgXCJCaWthc2hcIixcbiAgICBcIkJpbmFcIixcbiAgICBcIkJpc2hhbFwiLFxuICAgIFwiQmlzaG51XCIsXG4gICAgXCJCdWRkaGFcIixcbiAgICBcIkRlZXBpa2FcIixcbiAgICBcIkRpcGVuZHJhXCIsXG4gICAgXCJHYWdhblwiLFxuICAgIFwiR2FuZXNoXCIsXG4gICAgXCJLaGVtXCIsXG4gICAgXCJLcmlzaG5hXCIsXG4gICAgXCJMYXhtaVwiLFxuICAgIFwiTWFuaXNoYVwiLFxuICAgIFwiTmFiaW5cIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlyYWpcIixcbiAgICBcIk5pc2NoYWxcIixcbiAgICBcIlBhZGFtXCIsXG4gICAgXCJQb29qYVwiLFxuICAgIFwiUHJhYmluXCIsXG4gICAgXCJQcmFrYXNoXCIsXG4gICAgXCJQcmFzaGFudFwiLFxuICAgIFwiUHJlbVwiLFxuICAgIFwiUHVybmFcIixcbiAgICBcIlJhamVuZHJhXCIsXG4gICAgXCJSYWppbmFcIixcbiAgICBcIlJhanVcIixcbiAgICBcIlJha2VzaFwiLFxuICAgIFwiUmFuamFuXCIsXG4gICAgXCJSYXRuYVwiLFxuICAgIFwiU2FnYXJcIixcbiAgICBcIlNhbmRlZXBcIixcbiAgICBcIlNhbmpheVwiLFxuICAgIFwiU2FudG9zaFwiLFxuICAgIFwiU2FyaXRhXCIsXG4gICAgXCJTaGlscGFcIixcbiAgICBcIlNoaXJpc2hhXCIsXG4gICAgXCJTaHJpc3RpXCIsXG4gICAgXCJTaWRkaGFydGhhXCIsXG4gICAgXCJTdWJhc2hcIixcbiAgICBcIlN1bWVldFwiLFxuICAgIFwiU3VuaXRhXCIsXG4gICAgXCJTdXJhalwiLFxuICAgIFwiU3VzYW5cIixcbiAgICBcIlN1c2hhbnRcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBZGhpa2FyaVwiLFxuICAgIFwiQXJ5YWxcIixcbiAgICBcIkJhcmFsXCIsXG4gICAgXCJCYXNuZXRcIixcbiAgICBcIkJhc3RvbGFcIixcbiAgICBcIkJhc3luYXRcIixcbiAgICBcIkJoYW5kYXJpXCIsXG4gICAgXCJCaGF0dGFyYWlcIixcbiAgICBcIkNoZXR0cmlcIixcbiAgICBcIkRldmtvdGFcIixcbiAgICBcIkRoYWthbFwiLFxuICAgIFwiRG9uZ29sXCIsXG4gICAgXCJHaGFsZVwiLFxuICAgIFwiR3VydW5nXCIsXG4gICAgXCJHeWF3YWxpXCIsXG4gICAgXCJIYW1hbFwiLFxuICAgIFwiSnVuZ1wiLFxuICAgIFwiS0NcIixcbiAgICBcIkthZmxlXCIsXG4gICAgXCJLYXJraVwiLFxuICAgIFwiS2hhZGthXCIsXG4gICAgXCJLb2lyYWxhXCIsXG4gICAgXCJMYW1hXCIsXG4gICAgXCJMaW1idVwiLFxuICAgIFwiTWFnYXJcIixcbiAgICBcIk1haGFyamFuXCIsXG4gICAgXCJOaXJvdWxhXCIsXG4gICAgXCJQYW5kZXlcIixcbiAgICBcIlByYWRoYW5cIixcbiAgICBcIlJhbmFcIixcbiAgICBcIlJhdXRcIixcbiAgICBcIlNhaVwiLFxuICAgIFwiU2hhaVwiLFxuICAgIFwiU2hha3lhXCIsXG4gICAgXCJTaGVycGFcIixcbiAgICBcIlNocmVzdGhhXCIsXG4gICAgXCJTdWJlZGlcIixcbiAgICBcIlRhbWFuZ1wiLFxuICAgIFwiVGhhcGFcIlxuICBdXG59O1xubmVwLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIDBcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCYWdsdW5nXCIsXG4gICAgXCJCYW5rZVwiLFxuICAgIFwiQmFyYVwiLFxuICAgIFwiQmFyZGl5YVwiLFxuICAgIFwiQmhha3RhcHVyXCIsXG4gICAgXCJCaG9qdXB1XCIsXG4gICAgXCJDaGl0d2FuXCIsXG4gICAgXCJEYWlsZWtoXCIsXG4gICAgXCJEYW5nXCIsXG4gICAgXCJEaGFkaW5nXCIsXG4gICAgXCJEaGFua3V0YVwiLFxuICAgIFwiRGhhbnVzYVwiLFxuICAgIFwiRG9sYWtoYVwiLFxuICAgIFwiRG9scGhhXCIsXG4gICAgXCJHb3JraGFcIixcbiAgICBcIkd1bG1pXCIsXG4gICAgXCJIdW1sYVwiLFxuICAgIFwiSWxhbVwiLFxuICAgIFwiSmFqYXJrb3RcIixcbiAgICBcIkpoYXBhXCIsXG4gICAgXCJKdW1sYVwiLFxuICAgIFwiS2FiaHJlcGFsYW5jaG9rXCIsXG4gICAgXCJLYWxpa290XCIsXG4gICAgXCJLYXBpbHZhc3R1XCIsXG4gICAgXCJLYXNraVwiLFxuICAgIFwiS2F0aG1hbmR1XCIsXG4gICAgXCJMYWxpdHB1clwiLFxuICAgIFwiTGFtanVuZ1wiLFxuICAgIFwiTWFuYW5nXCIsXG4gICAgXCJNb2hvdHRhcmlcIixcbiAgICBcIk1vcmFuZ1wiLFxuICAgIFwiTXVndVwiLFxuICAgIFwiTXVzdGFuZ1wiLFxuICAgIFwiTXlhZ2RpXCIsXG4gICAgXCJOYXdhbHBhcmFzaVwiLFxuICAgIFwiTnV3YWtvdFwiLFxuICAgIFwiUGFscGFcIixcbiAgICBcIlBhcmJhdFwiLFxuICAgIFwiUGFyc2FcIixcbiAgICBcIlJhbWVjaGhhcFwiLFxuICAgIFwiUmF1c3dhXCIsXG4gICAgXCJSYXV0YWhhdFwiLFxuICAgIFwiUm9scGFcIixcbiAgICBcIlJ1cGFuZGVoaVwiLFxuICAgIFwiU2Fua2h1d2FzYWJoYVwiLFxuICAgIFwiU2FybGFoaVwiLFxuICAgIFwiU2luZGh1bGlcIixcbiAgICBcIlNpbmRodXBhbGNob2tcIixcbiAgICBcIlN1bnNhcmlcIixcbiAgICBcIlN1cmtldFwiLFxuICAgIFwiU3lhbmdqYVwiLFxuICAgIFwiVGFuYWh1XCIsXG4gICAgXCJUZXJoYXRodW1cIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiQmhha3RhcHVyXCIsXG4gICAgXCJCaXJhdG5hZ2FyXCIsXG4gICAgXCJCaXJlbmRyYW5hZ2FyXCIsXG4gICAgXCJCaXJndW5qXCIsXG4gICAgXCJCdXR3YWxcIixcbiAgICBcIkRhbWFrXCIsXG4gICAgXCJEaGFyYW5cIixcbiAgICBcIkdhdXJcIixcbiAgICBcIkdvcmtoYVwiLFxuICAgIFwiSGV0YXVkYVwiLFxuICAgIFwiSXRhaGFyaVwiLFxuICAgIFwiSmFuYWtwdXJcIixcbiAgICBcIkthdGhtYW5kdVwiLFxuICAgIFwiTGFoYW5cIixcbiAgICBcIk5lcGFsZ3VualwiLFxuICAgIFwiUG9raGFyYVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIk5lcGFsXCJcbiAgXVxufTtcbm5lcC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcIndvcmxkbGluay5jb20ubnBcIixcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJucFwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5uZXAuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHZ0IEx0ZFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkx0ZFwiLFxuICAgIFwiTGltaXRlZFwiXG4gIF1cbn07XG5uZXAucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMtIyMjIyMjI1wiLFxuICAgIFwiKzk3Ny0jLSMjIyMjIyNcIixcbiAgICBcIis5NzcjIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgbmwgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBubDtcbm5sLnRpdGxlID0gXCJEdXRjaFwiO1xubmwuYWRkcmVzcyA9IHtcbiAgXCJjaXR5X3ByZWZpeFwiOiBbXG4gICAgXCJOb29yZFwiLFxuICAgIFwiT29zdFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiWnVpZFwiLFxuICAgIFwiTmlldXdcIixcbiAgICBcIk91ZFwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiZGFtXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCIgYWFuIGRlIFJpam5cIixcbiAgICBcIiBhYW4gZGUgSUpzc2VsXCIsXG4gICAgXCJzd2FlcmRcIixcbiAgICBcImVuZHJlY2h0XCIsXG4gICAgXCJyZWNodFwiLFxuICAgIFwiYW1iYWNodFwiLFxuICAgIFwiZW5tYWVzXCIsXG4gICAgXCJ3aWprXCIsXG4gICAgXCJzbGFuZFwiLFxuICAgIFwic3Ryb29tXCIsXG4gICAgXCJzbHV1c1wiLFxuICAgIFwiZGlqa1wiLFxuICAgIFwiZG9ycFwiLFxuICAgIFwiYnVyZ1wiLFxuICAgIFwidmVsZFwiLFxuICAgIFwic2x1aXNcIixcbiAgICBcImtvb3BcIixcbiAgICBcImxla1wiLFxuICAgIFwiaG91dFwiLFxuICAgIFwiZ2Vlc3RcIixcbiAgICBcImtlcmtcIixcbiAgICBcIndvdWRlXCIsXG4gICAgXCJob3ZlblwiLFxuICAgIFwiaG90ZW5cIixcbiAgICBcImluZ2VuXCIsXG4gICAgXCJwbGFzXCIsXG4gICAgXCJtZWVyXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWtyb3RpcmlcIixcbiAgICBcIkFsYmFuacOrXCIsXG4gICAgXCJBbGdlcmlqZVwiLFxuICAgIFwiQW1lcmlrYWFuc2UgTWFhZ2RlbmVpbGFuZGVuXCIsXG4gICAgXCJBbWVyaWthYW5zLVNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcmN0aWNhXCIsXG4gICAgXCJBbnRpZ3VhIGVuIEJhcmJ1ZGFcIixcbiAgICBcIkFyY3RpYyBPY2VhblwiLFxuICAgIFwiQXJnZW50aW5pw6tcIixcbiAgICBcIkFybWVuacOrXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXNobW9yZSBhbmQgQ2FydGllciBJc2xhbmRzXCIsXG4gICAgXCJBdGxhbnRpYyBPY2VhblwiLFxuICAgIFwiQXVzdHJhbGnDq1wiLFxuICAgIFwiQXplcmJlaWR6amFuXCIsXG4gICAgXCJCYWhhbWEnc1wiLFxuICAgIFwiQmFocmVpblwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJlbGFydXNcIixcbiAgICBcIkJlbGdpw6tcIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkJlcm11ZGFcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpw6tcIixcbiAgICBcIkJvc25pw6stSGVyemVnb3ZpbmFcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCb3V2ZXQgSXNsYW5kXCIsXG4gICAgXCJCcmF6aWxpw6tcIixcbiAgICBcIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeVwiLFxuICAgIFwiQnJpdHNlIE1hYWdkZW5laWxhbmRlblwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJCdWxnYXJpamVcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2FtYm9kamFcIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2F5bWFuZWlsYW5kZW5cIixcbiAgICBcIkNlbnRyYWFsLUFmcmlrYWFuc2UgUmVwdWJsaWVrXCIsXG4gICAgXCJDaGlsaVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIkNocmlzdG1hcyBJc2xhbmRcIixcbiAgICBcIkNsaXBwZXJ0b24gSXNsYW5kXCIsXG4gICAgXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9yZW4gKFVuaWUpXCIsXG4gICAgXCJDb25nbyAoRGVtb2NyYXRpc2NoZSBSZXB1YmxpZWspXCIsXG4gICAgXCJDb25nbyAoVm9sa3NyZXB1YmxpZWspXCIsXG4gICAgXCJDb29rXCIsXG4gICAgXCJDb3JhbCBTZWEgSXNsYW5kc1wiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiQ3ViYVwiLFxuICAgIFwiQ3lwcnVzXCIsXG4gICAgXCJEZW5lbWFya2VuXCIsXG4gICAgXCJEaGVrZWxpYVwiLFxuICAgIFwiRGppYm91dGlcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJEb21pbmljYWFuc2UgUmVwdWJsaWVrXCIsXG4gICAgXCJEdWl0c2xhbmRcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVneXB0ZVwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIkVxdWF0b3JpYWFsLUd1aW5lYVwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0bGFuZFwiLFxuICAgIFwiRXRoaW9wacOrXCIsXG4gICAgXCJFdXJvcGVhbiBVbmlvblwiLFxuICAgIFwiRmFsa2xhbmRcIixcbiAgICBcIkZhcm9lIElzbGFuZHNcIixcbiAgICBcIkZpamlcIixcbiAgICBcIkZpbGlwaWpuZW5cIixcbiAgICBcIkZpbmxhbmRcIixcbiAgICBcIkZyYW5rcmlqa1wiLFxuICAgIFwiRnJhbnMtUG9seW5lc2nDq1wiLFxuICAgIFwiRnJlbmNoIFNvdXRoZXJuIGFuZCBBbnRhcmN0aWMgTGFuZHNcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdhemEgU3RyaXBcIixcbiAgICBcIkdlb3JnacOrXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR2licmFsdGFyXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcmlla2VubGFuZFwiLFxuICAgIFwiR3JvZW5sYW5kXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lZS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGHDr3RpXCIsXG4gICAgXCJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHNcIixcbiAgICBcIkhlaWxpZ2UgU3RvZWxcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nYXJpamVcIixcbiAgICBcIkhvbmdrb25nXCIsXG4gICAgXCJJZXJsYW5kXCIsXG4gICAgXCJJSnNsYW5kXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWFuIE9jZWFuXCIsXG4gICAgXCJJbmRvbmVzacOrXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJc2xlIG9mIE1hblwiLFxuICAgIFwiSXNyYcOrbFwiLFxuICAgIFwiSXRhbGnDq1wiLFxuICAgIFwiSXZvb3JrdXN0XCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJKYW4gTWF5ZW5cIixcbiAgICBcIkphcGFuXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3JkYW5pw6tcIixcbiAgICBcIkthYXB2ZXJkacOrXCIsXG4gICAgXCJLYW1lcm9lblwiLFxuICAgIFwiS2F6YWNoc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpenN0YW5cIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLb2V3ZWl0XCIsXG4gICAgXCJLcm9hdGnDq1wiLFxuICAgIFwiTGFvc1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGV0bGFuZFwiLFxuICAgIFwiTGliYW5vblwiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGliacOrXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXRvdXdlblwiLFxuICAgIFwiTHV4ZW1idXJnXCIsXG4gICAgXCJNYWNhb1wiLFxuICAgIFwiTWFjZWRvbmnDq1wiLFxuICAgIFwiTWFkYWdhc2thclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxkaXZlblwiLFxuICAgIFwiTWFsZWlzacOrXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2trb1wiLFxuICAgIFwiTWFyc2hhbGwgSXNsYW5kc1wiLFxuICAgIFwiTWF1cml0YW5pw6tcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTWV4aWNvXCIsXG4gICAgXCJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mXCIsXG4gICAgXCJNb2xkYXZpw6tcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29sacOrXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3phbWJpcXVlXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmnDq1wiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5hdmFzc2EgSXNsYW5kXCIsXG4gICAgXCJOZWRlcmxhbmRcIixcbiAgICBcIk5lZGVybGFuZHNlIEFudGlsbGVuXCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmd3YW5lXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZXV3LUNhbGVkb25pw6tcIixcbiAgICBcIk5pZXV3LVplZWxhbmRcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJOb29yZGVsaWprZSBNYXJpYW5lblwiLFxuICAgIFwiTm9vcmQtS29yZWFcIixcbiAgICBcIk5vb3J3ZWdlblwiLFxuICAgIFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICBcIk9la3Jhw69uZVwiLFxuICAgIFwiT2V6YmVraXN0YW5cIixcbiAgICBcIk9tYW5cIixcbiAgICBcIk9vc3RlbnJpamtcIixcbiAgICBcIlBhY2lmaWMgT2NlYW5cIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXBvZWEtTmlldXctR3VpbmVhXCIsXG4gICAgXCJQYXJhY2VsIElzbGFuZHNcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQaXRjYWlyblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIlJvZW1lbmnDq1wiLFxuICAgIFwiUnVzbGFuZFwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJTYWludCBIZWxlbmFcIixcbiAgICBcIlNhaW50IEx1Y2lhXCIsXG4gICAgXCJTYWludCBWaW5jZW50IGVuIGRlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhaW50LVBpZXJyZSBlbiBNaXF1ZWxvblwiLFxuICAgIFwiU2Fsb21vblwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlPDo28gVG9tw6kgZW4gUHJpbmNpcGVcIixcbiAgICBcIlNhdWRpLUFyYWJpw6tcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNlcnZpw6tcIixcbiAgICBcIlNleWNoZWxsZW5cIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTaW50LUtpdHRzIGVuIE5ldmlzXCIsXG4gICAgXCJTbG92ZW5pw6tcIixcbiAgICBcIlNsb3dha2lqZVwiLFxuICAgIFwiU29lZGFuXCIsXG4gICAgXCJTb21hbGnDq1wiLFxuICAgIFwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNvdXRoZXJuIE9jZWFuXCIsXG4gICAgXCJTcGFuamVcIixcbiAgICBcIlNwcmF0bHkgSXNsYW5kc1wiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmRcIixcbiAgICBcIlN5cmnDq1wiLFxuICAgIFwiVGFkemppa2lzdGFuXCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIlRhbnphbmlhXCIsXG4gICAgXCJUaGFpbGFuZFwiLFxuICAgIFwiVGltb3IgTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCBlbiBUb2JhZ29cIixcbiAgICBcIlRzamFhZFwiLFxuICAgIFwiVHNqZWNoacOrXCIsXG4gICAgXCJUdW5lc2nDq1wiLFxuICAgIFwiVHVya2lqZVwiLFxuICAgIFwiVHVya21lbmlzdGFuXCIsXG4gICAgXCJUdXJrcy1lbiBDYWljb3NlaWxhbmRlblwiLFxuICAgIFwiVHV2YWx1XCIsXG4gICAgXCJVZ2FuZGFcIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVyZW5pZ2QgS29uaW5rcmlqa1wiLFxuICAgIFwiVmVyZW5pZ2RlIEFyYWJpc2NoZSBFbWlyYXRlblwiLFxuICAgIFwiVmVyZW5pZ2RlIFN0YXRlbiB2YW4gQW1lcmlrYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiV2FrZSBJc2xhbmRcIixcbiAgICBcIldhbGxpcyBlbiBGdXR1bmFcIixcbiAgICBcIldlcmVsZFwiLFxuICAgIFwiV2VzdCBCYW5rXCIsXG4gICAgXCJXZXN0ZWxpamtlIFNhaGFyYVwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiWnVpZC1BZnJpa2FcIixcbiAgICBcIlp1aWQtS29yZWFcIixcbiAgICBcIlp3ZWRlblwiLFxuICAgIFwiWndpdHNlcmxhbmRcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiLFxuICAgIFwiIyMjXCIsXG4gICAgXCIjIyNhXCIsXG4gICAgXCIjIyNiXCIsXG4gICAgXCIjIyNjXCIsXG4gICAgXCIjIyMgSVwiLFxuICAgIFwiIyMjIElJXCIsXG4gICAgXCIjIyMgSUlJXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcInN0cmFhdFwiLFxuICAgIFwibGFhblwiLFxuICAgIFwid2VnXCIsXG4gICAgXCJwbGFudHNvZW5cIixcbiAgICBcInBhcmtcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIjEgaG9vZ1wiLFxuICAgIFwiMiBob29nXCIsXG4gICAgXCIzIGhvb2dcIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tzdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjID8/XCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJOb29yZC1Ib2xsYW5kXCIsXG4gICAgXCJadWlkLUhvbGxhbmRcIixcbiAgICBcIlV0cmVjaHRcIixcbiAgICBcIlplZWxhbmRcIixcbiAgICBcIk92ZXJpanNzZWxcIixcbiAgICBcIkdlbGRlcmxhbmRcIixcbiAgICBcIkRyZW50aGVcIixcbiAgICBcIkZyaWVzbGFuZFwiLFxuICAgIFwiR3JvbmluZ2VuXCIsXG4gICAgXCJOb29yZC1CcmFiYW50XCIsXG4gICAgXCJMaW1idXJnXCIsXG4gICAgXCJGbGV2b2xhbmRcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJOZWRlcmxhbmRcIlxuICBdXG59O1xubmwuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiQlZcIixcbiAgICBcIlYuTy5GLlwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcImVuIFpvbmVuXCJcbiAgXVxufTtcbm5sLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcIm5sXCIsXG4gICAgXCJjb21cIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbm5sLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xubmwubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFtYmVyXCIsXG4gICAgXCJBbm5hXCIsXG4gICAgXCJBbm5lXCIsXG4gICAgXCJBbm91a1wiLFxuICAgIFwiQmFzXCIsXG4gICAgXCJCcmFtXCIsXG4gICAgXCJCcml0dFwiLFxuICAgIFwiRGFhblwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJGZW1rZVwiLFxuICAgIFwiRmlublwiLFxuICAgIFwiRmxldXJcIixcbiAgICBcIklyaXNcIixcbiAgICBcIklzYVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpheWRlblwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiTGlla2VcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxvdHRlXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiTHV1a1wiLFxuICAgIFwiTWF1ZFwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNaWtlXCIsXG4gICAgXCJNaWxhblwiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmllbHNcIixcbiAgICBcIk5vYVwiLFxuICAgIFwiUmlja1wiLFxuICAgIFwiUm9vc1wiLFxuICAgIFwiUnViZW5cIixcbiAgICBcIlNhbmRlclwiLFxuICAgIFwiU2FubmVcIixcbiAgICBcIlNlbVwiLFxuICAgIFwiU29waGllXCIsXG4gICAgXCJTdGlqblwiLFxuICAgIFwiU3ZlblwiLFxuICAgIFwiVGhpanNcIixcbiAgICBcIlRoaWpzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRpbVwiLFxuICAgIFwiVG9tXCJcbiAgXSxcbiAgXCJ0dXNzZW52b2Vnc2VsXCI6IFtcbiAgICBcInZhblwiLFxuICAgIFwidmFuIGRlXCIsXG4gICAgXCJ2YW4gZGVuXCIsXG4gICAgXCJ2YW4gJ3RcIixcbiAgICBcInZhbiBoZXRcIixcbiAgICBcImRlXCIsXG4gICAgXCJkZW5cIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJCYWtrZXJcIixcbiAgICBcIkJlZWtcIixcbiAgICBcIkJlcmdcIixcbiAgICBcIkJvZXJcIixcbiAgICBcIkJvc1wiLFxuICAgIFwiQm9zY2hcIixcbiAgICBcIkJyaW5rXCIsXG4gICAgXCJCcm9la1wiLFxuICAgIFwiQnJvdXdlclwiLFxuICAgIFwiQnJ1aW5cIixcbiAgICBcIkRhbVwiLFxuICAgIFwiRGVra2VyXCIsXG4gICAgXCJEaWprXCIsXG4gICAgXCJEaWprc3RyYVwiLFxuICAgIFwiR3JhYWZcIixcbiAgICBcIkdyb290XCIsXG4gICAgXCJIYWFuXCIsXG4gICAgXCJIZW5kcmlrc1wiLFxuICAgIFwiSGV1dmVsXCIsXG4gICAgXCJIb2VrXCIsXG4gICAgXCJKYWNvYnNcIixcbiAgICBcIkphbnNlblwiLFxuICAgIFwiSmFuc3NlblwiLFxuICAgIFwiSm9uZ1wiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktva1wiLFxuICAgIFwiS29uaW5nXCIsXG4gICAgXCJLb3N0ZXJcIixcbiAgICBcIkxlZXV3ZW5cIixcbiAgICBcIkxpbmRlblwiLFxuICAgIFwiTWFhc1wiLFxuICAgIFwiTWVlclwiLFxuICAgIFwiTWVpamVyXCIsXG4gICAgXCJNdWxkZXJcIixcbiAgICBcIlBldGVyc1wiLFxuICAgIFwiUnVpdGVyXCIsXG4gICAgXCJTY2hvdXRlblwiLFxuICAgIFwiU21pdFwiLFxuICAgIFwiU21pdHNcIixcbiAgICBcIlN0aWNodGluZ1wiLFxuICAgIFwiVmVlblwiLFxuICAgIFwiVmVuXCIsXG4gICAgXCJWZXJtZXVsZW5cIixcbiAgICBcIlZpc3NlclwiLFxuICAgIFwiVmxpZXRcIixcbiAgICBcIlZvc1wiLFxuICAgIFwiVnJpZXNcIixcbiAgICBcIldhbFwiLFxuICAgIFwiV2lsbGVtc1wiLFxuICAgIFwiV2l0XCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiRGhyLlwiLFxuICAgIFwiTWV2ci4gRHIuXCIsXG4gICAgXCJCc2NcIixcbiAgICBcIk1zY1wiLFxuICAgIFwiUHJvZi5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJKci5cIixcbiAgICBcIlNyLlwiLFxuICAgIFwiSVwiLFxuICAgIFwiSUlcIixcbiAgICBcIklJSVwiLFxuICAgIFwiSVZcIixcbiAgICBcIlZcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje3R1c3NlbnZvZWdzZWx9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje3R1c3NlbnZvZWdzZWx9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5ubC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIoIyMjIykgIyMjIyMjXCIsXG4gICAgXCIjIyMjIyMjIyMjXCIsXG4gICAgXCIwNiMjIyMjIyMjXCIsXG4gICAgXCIwNiAjIyMjICMjIyNcIlxuICBdXG59O1xuIiwidmFyIHBsID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gcGw7XG5wbC50aXRsZSA9IFwiUG9saXNoXCI7XG5wbC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFicmFoYW1cIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQXRhbmF6eVwiLFxuICAgIFwiQWdhdG9uXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsZWtzYW5kZXJcIixcbiAgICBcIkFsZWtzeVwiLFxuICAgIFwiQWxmcmVkXCIsXG4gICAgXCJBbHdhclwiLFxuICAgIFwiQW1icm/FvHlcIixcbiAgICBcIkFuYXRvbFwiLFxuICAgIFwiQW5kcnplalwiLFxuICAgIFwiQW50b25pXCIsXG4gICAgXCJBcG9sbGluYXJ5XCIsXG4gICAgXCJBcG9sbG9cIixcbiAgICBcIkFya2FkeVwiLFxuICAgIFwiQXJrYWRpdXN6XCIsXG4gICAgXCJBcmNoaWJhbGRcIixcbiAgICBcIkFyeXN0YXJjaFwiLFxuICAgIFwiQXJub2xkXCIsXG4gICAgXCJBcnNlbml1c3pcIixcbiAgICBcIkFydHVyXCIsXG4gICAgXCJBdWd1c3RcIixcbiAgICBcIkJhbGR3aW5cIixcbiAgICBcIkJhenlsaVwiLFxuICAgIFwiQmVuZWR5a3RcIixcbiAgICBcIkJlbmlhbWluXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJCZXJ0cmFuZFwiLFxuICAgIFwiQmVydHJhbVwiLFxuICAgIFwiQm9yeXNcIixcbiAgICBcIkJyYWphblwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkNlemFyeVwiLFxuICAgIFwiQ2VjeWxpdXN6XCIsXG4gICAgXCJLYXJvbFwiLFxuICAgIFwiS3J5c3RpYW5cIixcbiAgICBcIktyenlzenRvZlwiLFxuICAgIFwiS2xhcmVuY2p1c3pcIixcbiAgICBcIktsYXVkaXVzelwiLFxuICAgIFwiS2xlbWVuc1wiLFxuICAgIFwiS29ucmFkXCIsXG4gICAgXCJLb25zdGFudHlcIixcbiAgICBcIktvbnN0YW50eW5cIixcbiAgICBcIktvcm5lbFwiLFxuICAgIFwiS29ybmVsaXVzelwiLFxuICAgIFwiS29ybmVsaVwiLFxuICAgIFwiQ3lyeWxcIixcbiAgICBcIkN5cnVzXCIsXG4gICAgXCJEYW1pYW5cIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFyaXVzelwiLFxuICAgIFwiRGF3aWRcIixcbiAgICBcIkRpb25penlcIixcbiAgICBcIkRlbWV0cml1c3pcIixcbiAgICBcIkRvbWluaWtcIixcbiAgICBcIkRvbmFsZFwiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWRtdW5kXCIsXG4gICAgXCJFZHdhcmRcIixcbiAgICBcIkVkd2luXCIsXG4gICAgXCJFZnJlbVwiLFxuICAgIFwiRWZyYWltXCIsXG4gICAgXCJFbGlhc3pcIixcbiAgICBcIkVsZWF6YXJcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVyYXN0XCIsXG4gICAgXCJFcm5lc3RcIixcbiAgICBcIkV1Z2VuaXVzelwiLFxuICAgIFwiRXVzdHJhY2p1c3pcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmVsaWtzXCIsXG4gICAgXCJGbG9yaWFuXCIsXG4gICAgXCJGcmFuY2lzemVrXCIsXG4gICAgXCJGcnlkZXJ5a1wiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2VkZW9uXCIsXG4gICAgXCJHYWxmcnlkXCIsXG4gICAgXCJKZXJ6eVwiLFxuICAgIFwiR2VyYWxkXCIsXG4gICAgXCJHZXJhenltXCIsXG4gICAgXCJHaWxiZXJ0XCIsXG4gICAgXCJHb25zYWx3eVwiLFxuICAgIFwiR3J6ZWdvcnpcIixcbiAgICBcIkd3aWRvXCIsXG4gICAgXCJIYXJhbGRcIixcbiAgICBcIkhlbnJ5a1wiLFxuICAgIFwiSGVyYmVydFwiLFxuICAgIFwiSGVybWFuXCIsXG4gICAgXCJIaWxhcnlcIixcbiAgICBcIkhvcmFjeVwiLFxuICAgIFwiSHViZXJ0XCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJJZ25hY3lcIixcbiAgICBcIklnb3JcIixcbiAgICBcIkhpbGFyaW9uXCIsXG4gICAgXCJJbm5vY2VudHlcIixcbiAgICBcIkhpcG9saXRcIixcbiAgICBcIklyZW5ldXN6XCIsXG4gICAgXCJFcndpblwiLFxuICAgIFwiSXphYWtcIixcbiAgICBcIkl6YWphc3pcIixcbiAgICBcIkl6eWRvclwiLFxuICAgIFwiSmFrdWJcIixcbiAgICBcIkplcmVtaVwiLFxuICAgIFwiSmVyZW1pYXN6XCIsXG4gICAgXCJIaWVyb25pbVwiLFxuICAgIFwiR2VyYWxkXCIsXG4gICAgXCJKb2FjaGltXCIsXG4gICAgXCJKYW5cIixcbiAgICBcIkphbnVzelwiLFxuICAgIFwiSm9uYXRhblwiLFxuICAgIFwiSsOzemVmXCIsXG4gICAgXCJKb3p1ZVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJKdWxpdXN6XCIsXG4gICAgXCJKdXN0eW5cIixcbiAgICBcIkthbGlzdHJhdFwiLFxuICAgIFwiS2F6aW1pZXJ6XCIsXG4gICAgXCJXYXdyenluaWVjXCIsXG4gICAgXCJMYXVyZW50eVwiLFxuICAgIFwiTGF1cmVuY2p1c3pcIixcbiAgICBcIsWBYXphcnpcIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25pZFwiLFxuICAgIFwiTGVvblwiLFxuICAgIFwiTHVkd2lrXCIsXG4gICAgXCLFgXVrYXN6XCIsXG4gICAgXCJMdWNqYW5cIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFrYXJ5XCIsXG4gICAgXCJNYXJjZWxpXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFyY2luXCIsXG4gICAgXCJNYXRldXN6XCIsXG4gICAgXCJNYXVyeWN5XCIsXG4gICAgXCJNYWtzeW1cIixcbiAgICBcIk1ha3N5bWlsaWFuXCIsXG4gICAgXCJNaWNoYcWCXCIsXG4gICAgXCJNaXJvblwiLFxuICAgIFwiTW9kZXN0XCIsXG4gICAgXCJNb2rFvGVzelwiLFxuICAgIFwiTmF0YW5cIixcbiAgICBcIk5hdGFuYWVsXCIsXG4gICAgXCJOYXphcml1c3pcIixcbiAgICBcIk5hemFyeVwiLFxuICAgIFwiTmVzdG9yXCIsXG4gICAgXCJNaWtvxYJhalwiLFxuICAgIFwiTmlrb2RlbVwiLFxuICAgIFwiT2xhZlwiLFxuICAgIFwiT2xlZ1wiLFxuICAgIFwiT2xpd2llclwiLFxuICAgIFwiT251ZnJ5XCIsXG4gICAgXCJPcmVzdGVzXCIsXG4gICAgXCJPc2thclwiLFxuICAgIFwiQW5zZ2FyeVwiLFxuICAgIFwiT3NtdW5kXCIsXG4gICAgXCJQYW5rcmFjeVwiLFxuICAgIFwiUGFudGFsZW9uXCIsXG4gICAgXCJQYXRyeWtcIixcbiAgICBcIlBhdHJ5Y2p1c3pcIixcbiAgICBcIlBhdHJ5Y3lcIixcbiAgICBcIlBhd2XFglwiLFxuICAgIFwiUGlvdHJcIixcbiAgICBcIkZpbGVtb25cIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJQbGF0b25cIixcbiAgICBcIlBvbGlrYXJwXCIsXG4gICAgXCJQb3JmaXJ5XCIsXG4gICAgXCJQb3JmaXJpdXN6XCIsXG4gICAgXCJQcm9rbGVzXCIsXG4gICAgXCJQcm9rdWxcIixcbiAgICBcIlByb2tvcFwiLFxuICAgIFwiS3dpbnR5blwiLFxuICAgIFwiUmFuZG9sZlwiLFxuICAgIFwiUmFmYcWCXCIsXG4gICAgXCJSYWptdW5kXCIsXG4gICAgXCJSZWdpbmFsZFwiLFxuICAgIFwiUmFqbm9sZFwiLFxuICAgIFwiUnlzemFyZFwiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2RlcnlrXCIsXG4gICAgXCJSb2dlclwiLFxuICAgIFwiUm9sYW5kXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiUm9tZW9cIixcbiAgICBcIlJlZ2luYWxkXCIsXG4gICAgXCJSdWRvbGZcIixcbiAgICBcIlNhbXNvblwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYWx3YXRvclwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZXJhZmluXCIsXG4gICAgXCJTZXJnaXVzelwiLFxuICAgIFwiU2V3ZXJ5blwiLFxuICAgIFwiWnlnbXVudFwiLFxuICAgIFwiU3lsd2VzdGVyXCIsXG4gICAgXCJTenltb25cIixcbiAgICBcIlNhbG9tb25cIixcbiAgICBcIlNwaXJ5ZGlvblwiLFxuICAgIFwiU3RhbmlzxYJhd1wiLFxuICAgIFwiU3pjemVwYW5cIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiVGVyZW5janVzelwiLFxuICAgIFwiVGVvZG9yXCIsXG4gICAgXCJUb21hc3pcIixcbiAgICBcIlR5bW90ZXVzelwiLFxuICAgIFwiVG9iaWFzelwiLFxuICAgIFwiV2FsZW50eVwiLFxuICAgIFwiV2FsZW50eW5cIixcbiAgICBcIldhbGVyaWFuXCIsXG4gICAgXCJXYWxlcnlcIixcbiAgICBcIldpa3RvclwiLFxuICAgIFwiV2luY2VudHlcIixcbiAgICBcIldpdGFsaXNcIixcbiAgICBcIlfFgm9kemltaWVyelwiLFxuICAgIFwiV8WCYWR5c8WCYXdcIixcbiAgICBcIkLFgmHFvGVqXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbGdpZXJ6XCIsXG4gICAgXCJXYWPFgmF3XCIsXG4gICAgXCJXaWxmcnlkXCIsXG4gICAgXCJXaWxoZWxtXCIsXG4gICAgXCJLc2F3ZXJ5XCIsXG4gICAgXCJLc2Vub2ZvbnRcIixcbiAgICBcIkplcnp5XCIsXG4gICAgXCJaYWNoYXJpYXN6XCIsXG4gICAgXCJaYWNoYXJ5XCIsXG4gICAgXCJBZGFcIixcbiAgICBcIkFkZWxhamRhXCIsXG4gICAgXCJBZ2F0YVwiLFxuICAgIFwiQWduaWVzemthXCIsXG4gICAgXCJBZ3J5cGluYVwiLFxuICAgIFwiQWlkYVwiLFxuICAgIFwiQWxla3NhbmRyYVwiLFxuICAgIFwiQWxpY2phXCIsXG4gICAgXCJBbGluYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbmFzdGF6amFcIixcbiAgICBcIkFuZ2VsYVwiLFxuICAgIFwiQW5kxbxlbGlrYVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIkFubmFcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCLigJRcIixcbiAgICBcIkFudG9uaW5hXCIsXG4gICAgXCJBcmlhZG5hXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkJhcmJhcmFcIixcbiAgICBcIkJlYXRyeWN6ZVwiLFxuICAgIFwiQmVydGFcIixcbiAgICBcIkJyeWdpZGFcIixcbiAgICBcIkthbWlsYVwiLFxuICAgIFwiS2Fyb2xpbmFcIixcbiAgICBcIkthcm9saW5hXCIsXG4gICAgXCJLb3JuZWxpYVwiLFxuICAgIFwiS2F0YXJ6eW5hXCIsXG4gICAgXCJDZWN5bGlhXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiQ2hsb2VcIixcbiAgICBcIktyeXN0eW5hXCIsXG4gICAgXCJLbGFyYVwiLFxuICAgIFwiS2xhdWRpYVwiLFxuICAgIFwiS2xlbWVudHluYVwiLFxuICAgIFwiS29uc3RhbmNqYVwiLFxuICAgIFwiS29yYWxpYVwiLFxuICAgIFwiRGFyaWFcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEb3JvdGFcIixcbiAgICBcIkVkeXRhXCIsXG4gICAgXCJFbGVvbm9yYVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIkVsxbxiaWV0YVwiLFxuICAgIFwiSXphYmVsYVwiLFxuICAgIFwiRWx3aXJhXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVzdGVyYVwiLFxuICAgIFwiRXVkb2tzamFcIixcbiAgICBcIkV1ZG9raWFcIixcbiAgICBcIkV1Z2VuaWFcIixcbiAgICBcIkV3YVwiLFxuICAgIFwiRXdlbGluYVwiLFxuICAgIFwiRmVyZHluYW5kYVwiLFxuICAgIFwiRmxvcmVuY2phXCIsXG4gICAgXCJGcmFuY2lzemthXCIsXG4gICAgXCJHYWJyaWVsYVwiLFxuICAgIFwiR2VydHJ1ZGFcIixcbiAgICBcIkdsb3JpYVwiLFxuICAgIFwiR3JhY2phXCIsXG4gICAgXCJKYWR3aWdhXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIkhlbnJ5a2FcIixcbiAgICBcIk5hZHppZWphXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIklsb25hXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIklyZW5hXCIsXG4gICAgXCJJcm1hXCIsXG4gICAgXCJJemFiZWxhXCIsXG4gICAgXCJJem9sZGFcIixcbiAgICBcIkpha3ViaW5hXCIsXG4gICAgXCJKb2FubmFcIixcbiAgICBcIkphbmluYVwiLFxuICAgIFwixbthbmV0YVwiLFxuICAgIFwiSm9hbm5hXCIsXG4gICAgXCJHaW5ld3JhXCIsXG4gICAgXCJKw7N6ZWZpbmFcIixcbiAgICBcIkp1ZHl0YVwiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJKdWxpdGFcIixcbiAgICBcIkp1c3R5bmFcIixcbiAgICBcIktpcmFcIixcbiAgICBcIkN5cmFcIixcbiAgICBcIktsZW9wYXRyYVwiLFxuICAgIFwiTGFyeXNhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGF1cmVuY2phXCIsXG4gICAgXCJMYXVyZW50eW5hXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlaWxhXCIsXG4gICAgXCJFbGVvbm9yYVwiLFxuICAgIFwiTGlsaWFuYVwiLFxuICAgIFwiTGlsaWFubmFcIixcbiAgICBcIkxpbGlhXCIsXG4gICAgXCJMaWxsYVwiLFxuICAgIFwiTGl6YVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMdWR3aWthXCIsXG4gICAgXCJMdWl6YVwiLFxuICAgIFwixYF1Y2phXCIsXG4gICAgXCJMdWNqYVwiLFxuICAgIFwiTGlkaWFcIixcbiAgICBcIkFtYWJlbGFcIixcbiAgICBcIk1hZ2RhbGVuYVwiLFxuICAgIFwiTWFsd2luYVwiLFxuICAgIFwiTWHFgmdvcnphdGFcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJNYXJpYW5uYVwiLFxuICAgIFwiTWFyeW5hXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydHluYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hdHlsZGFcIixcbiAgICBcIk1hamFcIixcbiAgICBcIk1hamFcIixcbiAgICBcIk1lbGFuaWFcIixcbiAgICBcIk1pY2hhbGluYVwiLFxuICAgIFwiTW9uaWthXCIsXG4gICAgXCJOYWR6aWVqYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5pa29sYVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiT2xnYVwiLFxuICAgIFwiT2xpbXBpYVwiLFxuICAgIFwiT2xpd2lhXCIsXG4gICAgXCJPZmVsaWFcIixcbiAgICBcIlBhdHJ5Y2phXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGVsYWdpYVwiLFxuICAgIFwiUGVuZWxvcGFcIixcbiAgICBcIkZpbGlwYVwiLFxuICAgIFwiUGF1bGluYVwiLFxuICAgIFwiUmFjaGVsYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSZWdpbmFcIixcbiAgICBcIlJlbmF0YVwiLFxuICAgIFwiUm96YWxpYVwiLFxuICAgIFwiUsOzxbxhXCIsXG4gICAgXCJSb2tzYW5hXCIsXG4gICAgXCJSdWZpbmFcIixcbiAgICBcIlJ1dGFcIixcbiAgICBcIlNhYmluYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2VyYWZpbmFcIixcbiAgICBcIlN5YmlsbGFcIixcbiAgICBcIlN5bHdpYVwiLFxuICAgIFwiWm9maWFcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlZmFuaWFcIixcbiAgICBcIlp1emFubmFcIixcbiAgICBcIlRhbWFyYVwiLFxuICAgIFwiVGFjamFuYVwiLFxuICAgIFwiVGVrbGFcIixcbiAgICBcIlRlb2RvcmFcIixcbiAgICBcIlRlcmVzYVwiLFxuICAgIFwiV2FsZW50eW5hXCIsXG4gICAgXCJXYWxlcmlhXCIsXG4gICAgXCJXYW5lc2FcIixcbiAgICBcIldpYXJhXCIsXG4gICAgXCJXZXJvbmlrYVwiLFxuICAgIFwiV2lrdG9yaWFcIixcbiAgICBcIldpcmdpbmlhXCIsXG4gICAgXCJCaWJpYW5hXCIsXG4gICAgXCJCaWJpYW5uYVwiLFxuICAgIFwiV2FuZGFcIixcbiAgICBcIldpbGhlbG1pbmFcIixcbiAgICBcIktzYXdlcmFcIixcbiAgICBcIktzZW5pYVwiLFxuICAgIFwiWm9lXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWRhbWN6YWtcIixcbiAgICBcIkFkYW1jenlrXCIsXG4gICAgXCJBZGFtZWtcIixcbiAgICBcIkFkYW1pYWtcIixcbiAgICBcIkFkYW1pZWNcIixcbiAgICBcIkFkYW1vd2ljelwiLFxuICAgIFwiQWRhbXNraVwiLFxuICAgIFwiQWRhbXVzXCIsXG4gICAgXCJBbGVrc2FuZHJvd2ljelwiLFxuICAgIFwiQW5kcnplamN6YWtcIixcbiAgICBcIkFuZHJ6ZWpld3NraVwiLFxuICAgIFwiQW50Y3pha1wiLFxuICAgIFwiQXVndXN0eW5cIixcbiAgICBcIkF1Z3VzdHluaWFrXCIsXG4gICAgXCJCYWdpxYRza2lcIixcbiAgICBcIkJhbGNlcnpha1wiLFxuICAgIFwiQmFuYWNoXCIsXG4gICAgXCJCYW5hc2lha1wiLFxuICAgIFwiQmFuYXNpa1wiLFxuICAgIFwiQmFuYcWbXCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyYW5vd3NraVwiLFxuICAgIFwiQmFyYcWEc2tpXCIsXG4gICAgXCJCYXJ0Y3pha1wiLFxuICAgIFwiQmFydGtvd2lha1wiLFxuICAgIFwiQmFydG5pa1wiLFxuICAgIFwiQmFydG9zaWtcIixcbiAgICBcIkJlZG5hcmN6eWtcIixcbiAgICBcIkJlZG5hcmVrXCIsXG4gICAgXCJCZWRuYXJza2lcIixcbiAgICBcIkJlZG5hcnpcIixcbiAgICBcIkJpYcWCYXNcIixcbiAgICBcIkJpYcWCZWtcIixcbiAgICBcIkJpYcWCa293c2tpXCIsXG4gICAgXCJCaWVsYWtcIixcbiAgICBcIkJpZWxhd3NraVwiLFxuICAgIFwiQmllbGVja2lcIixcbiAgICBcIkJpZWxza2lcIixcbiAgICBcIkJpZW5pZWtcIixcbiAgICBcIkJpZXJuYWNraVwiLFxuICAgIFwiQmllcm5hdFwiLFxuICAgIFwiQmllxYRrb3dza2lcIixcbiAgICBcIkJpbHNraVwiLFxuICAgIFwiQm9iZXJcIixcbiAgICBcIkJvY2hlbmVrXCIsXG4gICAgXCJCb2d1Y2tpXCIsXG4gICAgXCJCb2d1c3pcIixcbiAgICBcIkJvcmVrXCIsXG4gICAgXCJCb3Jrb3dza2lcIixcbiAgICBcIkJvcm93aWVjXCIsXG4gICAgXCJCb3Jvd3NraVwiLFxuICAgIFwiQm/FvGVrXCIsXG4gICAgXCJCcm9kYVwiLFxuICAgIFwiQnJ6ZXppxYRza2lcIixcbiAgICBcIkJyem96b3dza2lcIixcbiAgICBcIkJ1Y3pla1wiLFxuICAgIFwiQnVjemtvd3NraVwiLFxuICAgIFwiQnVjennFhHNraVwiLFxuICAgIFwiQnVkemnFhHNraVwiLFxuICAgIFwiQnVkennFhHNraVwiLFxuICAgIFwiQnVqYWtcIixcbiAgICBcIkJ1a293c2tpXCIsXG4gICAgXCJCdXJ6ecWEc2tpXCIsXG4gICAgXCJCxIVrXCIsXG4gICAgXCJCxIVrb3dza2lcIixcbiAgICBcIkLFgmFzemN6YWtcIixcbiAgICBcIkLFgmFzemN6eWtcIixcbiAgICBcIkNlYnVsYVwiLFxuICAgIFwiQ2htaWVsXCIsXG4gICAgXCJDaG1pZWxld3NraVwiLFxuICAgIFwiQ2htdXJhXCIsXG4gICAgXCJDaG9qbmFja2lcIixcbiAgICBcIkNob2pub3dza2lcIixcbiAgICBcIkNob2xld2FcIixcbiAgICBcIkNocnphbm93c2tpXCIsXG4gICAgXCJDaHVkemlrXCIsXG4gICAgXCJDaWNob2NraVwiLFxuICAgIFwiQ2ljaG/FhFwiLFxuICAgIFwiQ2ljaHlcIixcbiAgICBcIkNpZXNpZWxza2lcIixcbiAgICBcIkNpZcWbbGFcIixcbiAgICBcIkNpZcWbbGFrXCIsXG4gICAgXCJDaWXFm2xpa1wiLFxuICAgIFwiQ2lzemV3c2tpXCIsXG4gICAgXCJDeWJ1bHNraVwiLFxuICAgIFwiQ3lnYW5cIixcbiAgICBcIkN6YWphXCIsXG4gICAgXCJDemFqa2FcIixcbiAgICBcIkN6YWprb3dza2lcIixcbiAgICBcIkN6YXBsYVwiLFxuICAgIFwiQ3phcm5lY2tpXCIsXG4gICAgXCJDemVjaFwiLFxuICAgIFwiQ3plY2hvd3NraVwiLFxuICAgIFwiQ3pla2FqXCIsXG4gICAgXCJDemVybmlha1wiLFxuICAgIFwiQ3plcndpxYRza2lcIixcbiAgICBcIkN6ecW8XCIsXG4gICAgXCJDennFvGV3c2tpXCIsXG4gICAgXCJEZWNcIixcbiAgICBcIkRvYm9zelwiLFxuICAgIFwiRG9icm93b2xza2lcIixcbiAgICBcIkRvYnJ6ecWEc2tpXCIsXG4gICAgXCJEb21hZ2HFgmFcIixcbiAgICBcIkRvbWHFhHNraVwiLFxuICAgIFwiRG9taW5pYWtcIixcbiAgICBcIkRyYWJpa1wiLFxuICAgIFwiRHJvemRcIixcbiAgICBcIkRyb3pkb3dza2lcIixcbiAgICBcIkRyemV3aWVja2lcIixcbiAgICBcIkRyw7PFvGTFvFwiLFxuICAgIFwiRHViaWVsXCIsXG4gICAgXCJEdWRhXCIsXG4gICAgXCJEdWRla1wiLFxuICAgIFwiRHVkemlha1wiLFxuICAgIFwiRHVkemlrXCIsXG4gICAgXCJEdWR6acWEc2tpXCIsXG4gICAgXCJEdXN6ecWEc2tpXCIsXG4gICAgXCJEemllZHppY1wiLFxuICAgIFwiRHppdWJhXCIsXG4gICAgXCJExIViZWtcIixcbiAgICBcIkTEhWJrb3dza2lcIixcbiAgICBcIkTEhWJyb3dza2lcIixcbiAgICBcIkTEmWJvd3NraVwiLFxuICAgIFwiRMSZYnNraVwiLFxuICAgIFwiRMWCdWdvc3pcIixcbiAgICBcIkZhbGtvd3NraVwiLFxuICAgIFwiRmlqYcWCa293c2tpXCIsXG4gICAgXCJGaWxpcGVrXCIsXG4gICAgXCJGaWxpcGlha1wiLFxuICAgIFwiRmlsaXBvd2ljelwiLFxuICAgIFwiRmxha1wiLFxuICAgIFwiRmxpc1wiLFxuICAgIFwiRmxvcmN6YWtcIixcbiAgICBcIkZsb3Jla1wiLFxuICAgIFwiRnJhbmtvd3NraVwiLFxuICAgIFwiRnLEhWNrb3dpYWtcIixcbiAgICBcIkZyxIVjemVrXCIsXG4gICAgXCJGcsSFdGN6YWtcIixcbiAgICBcIkZ1cm1hblwiLFxuICAgIFwiR2Fkb21za2lcIixcbiAgICBcIkdhamRhXCIsXG4gICAgXCJHYWpld3NraVwiLFxuICAgIFwiR2F3ZcWCXCIsXG4gICAgXCJHYXdsaWtcIixcbiAgICBcIkdhd3JvblwiLFxuICAgIFwiR2F3cm/FhHNraVwiLFxuICAgIFwiR2HFgmthXCIsXG4gICAgXCJHYcWCxIV6a2FcIixcbiAgICBcIkdpbFwiLFxuICAgIFwiR29kbGV3c2tpXCIsXG4gICAgXCJHb2xlY1wiLFxuICAgIFwiR2/FgsSFYlwiLFxuICAgIFwiR2/FgsSZYmlld3NraVwiLFxuICAgIFwiR2/FgsSZYmlvd3NraVwiLFxuICAgIFwiR3JhYm93c2tpXCIsXG4gICAgXCJHcmFjenlrXCIsXG4gICAgXCJHcm9jaG93c2tpXCIsXG4gICAgXCJHcnVkemllxYRcIixcbiAgICBcIkdydXN6Y3p5xYRza2lcIixcbiAgICBcIkdydXN6a2FcIixcbiAgICBcIkdyemVnb3JjenlrXCIsXG4gICAgXCJHcnplbGFrXCIsXG4gICAgXCJHcnplc2lha1wiLFxuICAgIFwiR3J6ZXNpa1wiLFxuICAgIFwiR3J6ZcWba293aWFrXCIsXG4gICAgXCJHcnp5YlwiLFxuICAgIFwiR3J6eWJvd3NraVwiLFxuICAgIFwiR3J6eXdhY3pcIixcbiAgICBcIkd1dG93c2tpXCIsXG4gICAgXCJHdXppa1wiLFxuICAgIFwiR3fDs8W6ZMW6XCIsXG4gICAgXCJHw7NyYVwiLFxuICAgIFwiR8OzcmFsXCIsXG4gICAgXCJHw7NyZWNraVwiLFxuICAgIFwiR8OzcmthXCIsXG4gICAgXCJHw7Nybmlha1wiLFxuICAgIFwiR8Ozcm55XCIsXG4gICAgXCJHw7Nyc2tpXCIsXG4gICAgXCJHxIVzaW9yXCIsXG4gICAgXCJHxIVzaW9yb3dza2lcIixcbiAgICBcIkfFgm9nb3dza2lcIixcbiAgICBcIkfFgm93YWNraVwiLFxuICAgIFwiR8WCxIViXCIsXG4gICAgXCJIYWpkdWtcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSXdhxYRza2lcIixcbiAgICBcIkl6ZGVic2tpXCIsXG4gICAgXCJKYWLFgm/FhHNraVwiLFxuICAgIFwiSmFja293c2tpXCIsXG4gICAgXCJKYWdpZWxza2lcIixcbiAgICBcIkphZ2llxYLFgm9cIixcbiAgICBcIkphZ29kemnFhHNraVwiLFxuICAgIFwiSmFrdWJpYWtcIixcbiAgICBcIkpha3Vib3dza2lcIixcbiAgICBcIkphbmFzXCIsXG4gICAgXCJKYW5pYWtcIixcbiAgICBcIkphbmlja2lcIixcbiAgICBcIkphbmlrXCIsXG4gICAgXCJKYW5pc3pld3NraVwiLFxuICAgIFwiSmFua293aWFrXCIsXG4gICAgXCJKYW5rb3dza2lcIixcbiAgICBcIkphbm93c2tpXCIsXG4gICAgXCJKYW51c1wiLFxuICAgIFwiSmFudXN6XCIsXG4gICAgXCJKYW51c3pld3NraVwiLFxuICAgIFwiSmFyb3NcIixcbiAgICBcIkphcm9zelwiLFxuICAgIFwiSmFyesSFYmVrXCIsXG4gICAgXCJKYXNpxYRza2lcIixcbiAgICBcIkphc3RyesSZYnNraVwiLFxuICAgIFwiSmF3b3Jza2lcIixcbiAgICBcIkphxZtraWV3aWN6XCIsXG4gICAgXCJKZXppZXJza2lcIixcbiAgICBcIkp1cmVrXCIsXG4gICAgXCJKdXJraWV3aWN6XCIsXG4gICAgXCJKdXJrb3dza2lcIixcbiAgICBcIkp1c3pjemFrXCIsXG4gICAgXCJKw7PFundpYWtcIixcbiAgICBcIkrDs8W6d2lrXCIsXG4gICAgXCJKxJlkcnplamN6YWtcIixcbiAgICBcIkrEmWRyemVqY3p5a1wiLFxuICAgIFwiSsSZZHJ6ZWpld3NraVwiLFxuICAgIFwiS2FjcHJ6YWtcIixcbiAgICBcIkthY3ptYXJjenlrXCIsXG4gICAgXCJLYWN6bWFyZWtcIixcbiAgICBcIkthY3ptYXJza2lcIixcbiAgICBcIkthY3pvclwiLFxuICAgIFwiS2Fjem9yb3dza2lcIixcbiAgICBcIkthY3p5xYRza2lcIixcbiAgICBcIkthbGV0YVwiLFxuICAgIFwiS2FsaW5vd3NraVwiLFxuICAgIFwiS2FsaXN6XCIsXG4gICAgXCJLYW1pxYRza2lcIixcbiAgICBcIkthbmlhXCIsXG4gICAgXCJLYW5pZXdza2lcIixcbiAgICBcIkthcHVzdGFcIixcbiAgICBcIkthcmHFm1wiLFxuICAgIFwiS2FyY3pld3NraVwiLFxuICAgIFwiS2FycGnFhHNraVwiLFxuICAgIFwiS2Fyd293c2tpXCIsXG4gICAgXCJLYXNwZXJla1wiLFxuICAgIFwiS2FzcHJ6YWtcIixcbiAgICBcIkthc3ByenlrXCIsXG4gICAgXCJLYXN6dWJhXCIsXG4gICAgXCJLYXdhXCIsXG4gICAgXCJLYXdlY2tpXCIsXG4gICAgXCJLYcWCdcW8YVwiLFxuICAgIFwiS2HFum1pZXJjemFrXCIsXG4gICAgXCJLaWXFgmJhc2FcIixcbiAgICBcIktpc2llbFwiLFxuICAgIFwiS2l0YVwiLFxuICAgIFwiS2xpbWN6YWtcIixcbiAgICBcIktsaW1la1wiLFxuICAgIFwiS21pZWNpa1wiLFxuICAgIFwiS21pZcSHXCIsXG4gICAgXCJLbmFwaWtcIixcbiAgICBcIktvYnVzXCIsXG4gICAgXCJLb2d1dFwiLFxuICAgIFwiS29sYXNhXCIsXG4gICAgXCJLb21vcm93c2tpXCIsXG4gICAgXCJLb25pZWN6bmFcIixcbiAgICBcIktvbmllY3pueVwiLFxuICAgIFwiS29ub3BrYVwiLFxuICAgIFwiS29wY3p5xYRza2lcIixcbiAgICBcIktvcGVyXCIsXG4gICAgXCJLb3BlxIdcIixcbiAgICBcIktvcnplbmlvd3NraVwiLFxuICAgIFwiS29zXCIsXG4gICAgXCJLb3NpxYRza2lcIixcbiAgICBcIktvc293c2tpXCIsXG4gICAgXCJLb3N0ZWNraVwiLFxuICAgIFwiS29zdHJ6ZXdhXCIsXG4gICAgXCJLb3RcIixcbiAgICBcIktvdG93c2tpXCIsXG4gICAgXCJLb3dhbFwiLFxuICAgIFwiS293YWxjenVrXCIsXG4gICAgXCJLb3dhbGN6eWtcIixcbiAgICBcIktvd2FsZXdza2lcIixcbiAgICBcIktvd2FsaWtcIixcbiAgICBcIktvd2Fsc2tpXCIsXG4gICAgXCJLb3phXCIsXG4gICAgXCJLb3pha1wiLFxuICAgIFwiS296aWXFglwiLFxuICAgIFwiS296aW/FglwiLFxuICAgIFwiS296xYJvd3NraVwiLFxuICAgIFwiS2/FgmFrb3dza2lcIixcbiAgICBcIktvxYJvZHppZWpcIixcbiAgICBcIktvxYJvZHppZWpjenlrXCIsXG4gICAgXCJLb8WCb2R6aWVqc2tpXCIsXG4gICAgXCJLcmFqZXdza2lcIixcbiAgICBcIktyYWtvd2lha1wiLFxuICAgIFwiS3Jhd2N6eWtcIixcbiAgICBcIktyYXdpZWNcIixcbiAgICBcIktydWtcIixcbiAgICBcIktydWtvd3NraVwiLFxuICAgIFwiS3J1cGFcIixcbiAgICBcIktydXBpxYRza2lcIixcbiAgICBcIktydXN6ZXdza2lcIixcbiAgICBcIktyeXNpYWtcIixcbiAgICBcIktyemVtacWEc2tpXCIsXG4gICAgXCJLcnp5xbxhbm93c2tpXCIsXG4gICAgXCJLcsOzbFwiLFxuICAgIFwiS3LDs2xpa293c2tpXCIsXG4gICAgXCJLc2nEhcW8ZWtcIixcbiAgICBcIkt1YmFja2lcIixcbiAgICBcIkt1Ymlha1wiLFxuICAgIFwiS3ViaWNhXCIsXG4gICAgXCJLdWJpY2tpXCIsXG4gICAgXCJLdWJpa1wiLFxuICAgIFwiS3VjXCIsXG4gICAgXCJLdWNoYXJjenlrXCIsXG4gICAgXCJLdWNoYXJza2lcIixcbiAgICBcIkt1Y2h0YVwiLFxuICAgIFwiS3VjacWEc2tpXCIsXG4gICAgXCJLdWN6ecWEc2tpXCIsXG4gICAgXCJLdWphd2FcIixcbiAgICBcIkt1amF3c2tpXCIsXG4gICAgXCJLdWxhXCIsXG4gICAgXCJLdWxlc3phXCIsXG4gICAgXCJLdWxpZ1wiLFxuICAgIFwiS3VsaWtcIixcbiAgICBcIkt1bGnFhHNraVwiLFxuICAgIFwiS3VyZWtcIixcbiAgICBcIkt1cm93c2tpXCIsXG4gICAgXCJLdcWbXCIsXG4gICAgXCJLd2HFm25pZXdza2lcIixcbiAgICBcIkt3aWF0a293c2tpXCIsXG4gICAgXCJLd2llY2llxYRcIixcbiAgICBcIkt3aWVjacWEc2tpXCIsXG4gICAgXCJLxJlkemllcnNraVwiLFxuICAgIFwiS8SZZHppb3JhXCIsXG4gICAgXCJLxJlwYVwiLFxuICAgIFwiS8WCb3NcIixcbiAgICBcIkvFgm9zb3dza2lcIixcbiAgICBcIkxhY2hcIixcbiAgICBcIkxhc2tvd3NraVwiLFxuICAgIFwiTGFzb3RhXCIsXG4gICAgXCJMZWNoXCIsXG4gICAgXCJMZW5hcnRcIixcbiAgICBcIkxlc2lha1wiLFxuICAgIFwiTGVzemN6ecWEc2tpXCIsXG4gICAgXCJMZXdhbmRvd3NraVwiLFxuICAgIFwiTGV3aWNraVwiLFxuICAgIFwiTGXFm25pYWtcIixcbiAgICBcIkxlxZtuaWV3c2tpXCIsXG4gICAgXCJMaXBpxYRza2lcIixcbiAgICBcIkxpcGthXCIsXG4gICAgXCJMaXBza2lcIixcbiAgICBcIkxpc1wiLFxuICAgIFwiTGlzaWVja2lcIixcbiAgICBcIkxpc293c2tpXCIsXG4gICAgXCJNYWNpZWpld3NraVwiLFxuICAgIFwiTWFjacSFZ1wiLFxuICAgIFwiTWFja2lld2ljelwiLFxuICAgIFwiTWFkZWpcIixcbiAgICBcIk1halwiLFxuICAgIFwiTWFqY2hlclwiLFxuICAgIFwiTWFqY2hyemFrXCIsXG4gICAgXCJNYWpld3NraVwiLFxuICAgIFwiTWFqa2FcIixcbiAgICBcIk1ha293c2tpXCIsXG4gICAgXCJNYWxlY1wiLFxuICAgIFwiTWFsaWNraVwiLFxuICAgIFwiTWFsaW5vd3NraVwiLFxuICAgIFwiTWFsaXN6ZXdza2lcIixcbiAgICBcIk1hcmNoZXdrYVwiLFxuICAgIFwiTWFyY2luaWFrXCIsXG4gICAgXCJNYXJjaW5rb3dza2lcIixcbiAgICBcIk1hcmN6YWtcIixcbiAgICBcIk1hcmVrXCIsXG4gICAgXCJNYXJraWV3aWN6XCIsXG4gICAgXCJNYXJrb3dza2lcIixcbiAgICBcIk1hcnN6YcWCZWtcIixcbiAgICBcIk1hcnplY1wiLFxuICAgIFwiTWFzxYJvd3NraVwiLFxuICAgIFwiTWF0dXNpYWtcIixcbiAgICBcIk1hdHVzemFrXCIsXG4gICAgXCJNYXR1c3pld3NraVwiLFxuICAgIFwiTWF0eXNpYWtcIixcbiAgICBcIk1henVyXCIsXG4gICAgXCJNYXp1cmVrXCIsXG4gICAgXCJNYXp1cmtpZXdpY3pcIixcbiAgICBcIk1hxIdrb3dpYWtcIixcbiAgICBcIk1hxYJlY2tpXCIsXG4gICAgXCJNYcWCZWtcIixcbiAgICBcIk1hxZtsYW5rYVwiLFxuICAgIFwiTWljaGFsYWtcIixcbiAgICBcIk1pY2hhbGN6eWtcIixcbiAgICBcIk1pY2hhbGlrXCIsXG4gICAgXCJNaWNoYWxza2lcIixcbiAgICBcIk1pY2hhxYJla1wiLFxuICAgIFwiTWljaGHFgm93c2tpXCIsXG4gICAgXCJNaWVsY3phcmVrXCIsXG4gICAgXCJNaWVyemVqZXdza2lcIixcbiAgICBcIk1pa2FcIixcbiAgICBcIk1pa2/FgmFqY3pha1wiLFxuICAgIFwiTWlrb8WCYWpjenlrXCIsXG4gICAgXCJNaWt1bHNraVwiLFxuICAgIFwiTWlsY3phcmVrXCIsXG4gICAgXCJNaWxld3NraVwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaXNpYWtcIixcbiAgICBcIk1pc3p0YWxcIixcbiAgICBcIk1pxZtraWV3aWN6XCIsXG4gICAgXCJNb2R6ZWxld3NraVwiLFxuICAgIFwiTW9sZW5kYVwiLFxuICAgIFwiTW9yYXdza2lcIixcbiAgICBcIk1vdHlrYVwiLFxuICAgIFwiTXJvY3pla1wiLFxuICAgIFwiTXJvY3prb3dza2lcIixcbiAgICBcIk1yb3pla1wiLFxuICAgIFwiTXLDs3pcIixcbiAgICBcIk11Y2hhXCIsXG4gICAgXCJNdXJhd3NraVwiLFxuICAgIFwiTXVzaWHFglwiLFxuICAgIFwiTXVzennFhHNraVwiLFxuICAgIFwiTcWCeW5hcmN6eWtcIixcbiAgICBcIk5hcGllcmHFgmFcIixcbiAgICBcIk5hd3JvY2tpXCIsXG4gICAgXCJOYXdyb3RcIixcbiAgICBcIk5pZWR6aWVsYVwiLFxuICAgIFwiTmllZHppZWxza2lcIixcbiAgICBcIk5pZWTFundpZWNraVwiLFxuICAgIFwiTmllbWN6eWtcIixcbiAgICBcIk5pZW1pZWNcIixcbiAgICBcIk5pZXdpYWRvbXNraVwiLFxuICAgIFwiTm9nYVwiLFxuICAgIFwiTm93YWNraVwiLFxuICAgIFwiTm93YWN6eWtcIixcbiAgICBcIk5vd2FrXCIsXG4gICAgXCJOb3dha293c2tpXCIsXG4gICAgXCJOb3dpY2tpXCIsXG4gICAgXCJOb3dpxYRza2lcIixcbiAgICBcIk9sY3pha1wiLFxuICAgIFwiT2xlam5pY3pha1wiLFxuICAgIFwiT2xlam5pa1wiLFxuICAgIFwiT2xzemV3c2tpXCIsXG4gICAgXCJPcnplY2hvd3NraVwiLFxuICAgIFwiT3LFgm93c2tpXCIsXG4gICAgXCJPc2nFhHNraVwiLFxuICAgIFwiT3Nzb3dza2lcIixcbiAgICBcIk9zdHJvd3NraVwiLFxuICAgIFwiT3djemFyZWtcIixcbiAgICBcIlBhY3prb3dza2lcIixcbiAgICBcIlBhasSFa1wiLFxuICAgIFwiUGFrdcWCYVwiLFxuICAgIFwiUGFsdWNoXCIsXG4gICAgXCJQYW5la1wiLFxuICAgIFwiUGFydHlrYVwiLFxuICAgIFwiUGFzdGVybmFrXCIsXG4gICAgXCJQYXN6a293c2tpXCIsXG4gICAgXCJQYXdlbGVjXCIsXG4gICAgXCJQYXdsYWtcIixcbiAgICBcIlBhd2xpY2tpXCIsXG4gICAgXCJQYXdsaWtcIixcbiAgICBcIlBhd2xpa293c2tpXCIsXG4gICAgXCJQYXfFgm93c2tpXCIsXG4gICAgXCJQYcWCa2FcIixcbiAgICBcIlBpYXNlY2tpXCIsXG4gICAgXCJQaWVjaG90YVwiLFxuICAgIFwiUGlla2Fyc2tpXCIsXG4gICAgXCJQaWV0cmFzXCIsXG4gICAgXCJQaWV0cnVzemthXCIsXG4gICAgXCJQaWV0cnpha1wiLFxuICAgIFwiUGlldHJ6eWtcIixcbiAgICBcIlBpbGFyc2tpXCIsXG4gICAgXCJQaWxjaFwiLFxuICAgIFwiUGlvdHJvd2ljelwiLFxuICAgIFwiUGlvdHJvd3NraVwiLFxuICAgIFwiUGl3b3dhcmN6eWtcIixcbiAgICBcIlBpw7Nya293c2tpXCIsXG4gICAgXCJQacSFdGVrXCIsXG4gICAgXCJQacSFdGtvd3NraVwiLFxuICAgIFwiUGnFgmF0XCIsXG4gICAgXCJQbHV0YVwiLFxuICAgIFwiUG9kZ8OzcnNraVwiLFxuICAgIFwiUG9sYWtcIixcbiAgICBcIlBvcMWCYXdza2lcIixcbiAgICBcIlBvcsSZYnNraVwiLFxuICAgIFwiUHJva29wXCIsXG4gICAgXCJQcnVzXCIsXG4gICAgXCJQcnp5Ynlsc2tpXCIsXG4gICAgXCJQcnp5YnlzelwiLFxuICAgIFwiUHJ6eWJ5xYJcIixcbiAgICBcIlByenliecWCYVwiLFxuICAgIFwiUHRha1wiLFxuICAgIFwiUHVjaGFsc2tpXCIsXG4gICAgXCJQeXRlbFwiLFxuICAgIFwiUMWCb25rYVwiLFxuICAgIFwiUmFjennFhHNraVwiLFxuICAgIFwiUmFkZWNraVwiLFxuICAgIFwiUmFkb21za2lcIixcbiAgICBcIlJha1wiLFxuICAgIFwiUmFrb3dza2lcIixcbiAgICBcIlJhdGFqY3pha1wiLFxuICAgIFwiUm9iYWtcIixcbiAgICBcIlJvZ2FsYVwiLFxuICAgIFwiUm9nYWxza2lcIixcbiAgICBcIlJvZ293c2tpXCIsXG4gICAgXCJSb2pla1wiLFxuICAgIFwiUm9tYW5vd3NraVwiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zaWFrXCIsXG4gICAgXCJSb3NpxYRza2lcIixcbiAgICBcIlJ1Y2nFhHNraVwiLFxuICAgIFwiUnVkbmlja2lcIixcbiAgICBcIlJ1ZHppxYRza2lcIixcbiAgICBcIlJ1ZHpraVwiLFxuICAgIFwiUnVzaW5cIixcbiAgICBcIlJ1dGtvd3NraVwiLFxuICAgIFwiUnliYWtcIixcbiAgICBcIlJ5YmFyY3p5a1wiLFxuICAgIFwiUnliaWNraVwiLFxuICAgIFwiUnplcGthXCIsXG4gICAgXCJSw7PFvGHFhHNraVwiLFxuICAgIFwiUsOzxbx5Y2tpXCIsXG4gICAgXCJTYWRvd3NraVwiLFxuICAgIFwiU2F3aWNraVwiLFxuICAgIFwiU2VyYWZpblwiLFxuICAgIFwiU2llZGxlY2tpXCIsXG4gICAgXCJTaWVua2lld2ljelwiLFxuICAgIFwiU2llcmFkemtpXCIsXG4gICAgXCJTaWtvcmFcIixcbiAgICBcIlNpa29yc2tpXCIsXG4gICAgXCJTaXRla1wiLFxuICAgIFwiU2l3ZWtcIixcbiAgICBcIlNrYWxza2lcIixcbiAgICBcIlNraWJhXCIsXG4gICAgXCJTa2liacWEc2tpXCIsXG4gICAgXCJTa29jenlsYXNcIixcbiAgICBcIlNrb3dyb25cIixcbiAgICBcIlNrb3dyb25la1wiLFxuICAgIFwiU2tvd3JvxYRza2lcIixcbiAgICBcIlNrcnp5cGN6YWtcIixcbiAgICBcIlNrcnp5cGVrXCIsXG4gICAgXCJTa8OzcmFcIixcbiAgICBcIlNtb2xpxYRza2lcIixcbiAgICBcIlNvYmN6YWtcIixcbiAgICBcIlNvYmN6eWtcIixcbiAgICBcIlNvYmllcmFqXCIsXG4gICAgXCJTb2JvbGV3c2tpXCIsXG4gICAgXCJTb2NoYVwiLFxuICAgIFwiU29jaGFja2lcIixcbiAgICBcIlNva2/Fgm93c2tpXCIsXG4gICAgXCJTb2vDs8WCXCIsXG4gICAgXCJTb3Nub3dza2lcIixcbiAgICBcIlNvd2FcIixcbiAgICBcIlNvd2nFhHNraVwiLFxuICAgIFwiU2/FgnR5c1wiLFxuICAgIFwiU2/FgnR5c2lha1wiLFxuICAgIFwiU3Jva2FcIixcbiAgICBcIlN0YWNob3dpYWtcIixcbiAgICBcIlN0YWNob3dpY3pcIixcbiAgICBcIlN0YWNodXJhXCIsXG4gICAgXCJTdGFjaHVyc2tpXCIsXG4gICAgXCJTdGFuZWtcIixcbiAgICBcIlN0YW5pc3pld3NraVwiLFxuICAgIFwiU3RhbmlzxYJhd3NraVwiLFxuICAgIFwiU3RhbmtpZXdpY3pcIixcbiAgICBcIlN0YXNpYWtcIixcbiAgICBcIlN0YXN6ZXdza2lcIixcbiAgICBcIlN0YXdpY2tpXCIsXG4gICAgXCJTdGVjXCIsXG4gICAgXCJTdGVmYW5pYWtcIixcbiAgICBcIlN0ZWZhxYRza2lcIixcbiAgICBcIlN0ZWxtYWNoXCIsXG4gICAgXCJTdG9sYXJjenlrXCIsXG4gICAgXCJTdG9sYXJza2lcIixcbiAgICBcIlN0cnplbGN6eWtcIixcbiAgICBcIlN0cnplbGVja2lcIixcbiAgICBcIlN0xJlwaWXFhFwiLFxuICAgIFwiU3TEmXBuaWFrXCIsXG4gICAgXCJTdXJtYVwiLFxuICAgIFwiU3Vza2lcIixcbiAgICBcIlN6YWZyYcWEc2tpXCIsXG4gICAgXCJTemF0a293c2tpXCIsXG4gICAgXCJTemN6ZXBhbmlha1wiLFxuICAgIFwiU3pjemVwYW5pa1wiLFxuICAgIFwiU3pjemVwYcWEc2tpXCIsXG4gICAgXCJTemN6ZXJiYVwiLFxuICAgIFwiU3pjemXFm25pYWtcIixcbiAgICBcIlN6Y3p5Z2llxYJcIixcbiAgICBcIlN6Y3rEmXNuYVwiLFxuICAgIFwiU3pjesSZc255XCIsXG4gICAgXCJTemVsxIVnXCIsXG4gICAgXCJTemV3Y3p5a1wiLFxuICAgIFwiU3pvc3Rha1wiLFxuICAgIFwiU3p1bGNcIixcbiAgICBcIlN6d2FyY1wiLFxuICAgIFwiU3p3ZWRcIixcbiAgICBcIlN6eWTFgm93c2tpXCIsXG4gICAgXCJTenltYcWEc2tpXCIsXG4gICAgXCJTenltY3pha1wiLFxuICAgIFwiU3p5bWN6eWtcIixcbiAgICBcIlN6eW1rb3dpYWtcIixcbiAgICBcIlN6eXN6a2FcIixcbiAgICBcIlPFgmF3acWEc2tpXCIsXG4gICAgXCJTxYJvd2lrXCIsXG4gICAgXCJTxYJvd2nFhHNraVwiLFxuICAgIFwiVGFybm93c2tpXCIsXG4gICAgXCJUa2FjenlrXCIsXG4gICAgXCJUb2thcnNraVwiLFxuICAgIFwiVG9tYWxhXCIsXG4gICAgXCJUb21hc3pld3NraVwiLFxuICAgIFwiVG9tY3pha1wiLFxuICAgIFwiVG9tY3p5a1wiLFxuICAgIFwiVHJhY3pcIixcbiAgICBcIlRyb2phbm93c2tpXCIsXG4gICAgXCJUcnpjacWEc2tpXCIsXG4gICAgXCJUcnplY2lha1wiLFxuICAgIFwiVHVyZWtcIixcbiAgICBcIlR3YXJkb3dza2lcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJVcmJhbmVrXCIsXG4gICAgXCJVcmJhbmlha1wiLFxuICAgIFwiVXJiYW5vd2ljelwiLFxuICAgIFwiVXJiYcWEY3p5a1wiLFxuICAgIFwiVXJiYcWEc2tpXCIsXG4gICAgXCJXYWxjemFrXCIsXG4gICAgXCJXYWxrb3dpYWtcIixcbiAgICBcIldhcmNob8WCXCIsXG4gICAgXCJXYXNpYWtcIixcbiAgICBcIldhc2lsZXdza2lcIixcbiAgICBcIldhd3J6eW5pYWtcIixcbiAgICBcIldlc2/Fgm93c2tpXCIsXG4gICAgXCJXaWVjem9yZWtcIixcbiAgICBcIldpZXJ6Ymlja2lcIixcbiAgICBcIldpbGN6ZWtcIixcbiAgICBcIldpbGN6ecWEc2tpXCIsXG4gICAgXCJXaWxrXCIsXG4gICAgXCJXaW5pYXJza2lcIixcbiAgICBcIldpdGN6YWtcIixcbiAgICBcIldpdGVrXCIsXG4gICAgXCJXaXRrb3dza2lcIixcbiAgICBcIldpxIVjZWtcIixcbiAgICBcIldpxJljZWtcIixcbiAgICBcIldpxJlja293c2tpXCIsXG4gICAgXCJXacWbbmlld3NraVwiLFxuICAgIFwiV251a1wiLFxuICAgIFwiV29qY2llY2hvd3NraVwiLFxuICAgIFwiV29qdGFzXCIsXG4gICAgXCJXb2p0YXNpa1wiLFxuICAgIFwiV29qdGN6YWtcIixcbiAgICBcIldvanRrb3dpYWtcIixcbiAgICBcIldvbGFrXCIsXG4gICAgXCJXb2xpxYRza2lcIixcbiAgICBcIldvbG55XCIsXG4gICAgXCJXb2xza2lcIixcbiAgICBcIldvxZtcIixcbiAgICBcIldvxbpuaWFrXCIsXG4gICAgXCJXcm9uYVwiLFxuICAgIFwiV3JvxYRza2lcIixcbiAgICBcIldyw7NiZWxcIixcbiAgICBcIldyw7NibGV3c2tpXCIsXG4gICAgXCJXeXB5Y2hcIixcbiAgICBcIld5c29ja2lcIixcbiAgICBcIld5c3p5xYRza2lcIixcbiAgICBcIlfDs2pjaWNraVwiLFxuICAgIFwiV8OzamNpa1wiLFxuICAgIFwiV8OzanRvd2ljelwiLFxuICAgIFwiV8SFc2lrXCIsXG4gICAgXCJXxJlncnp5blwiLFxuICAgIFwiV8WCb2RhcmN6eWtcIixcbiAgICBcIlfFgm9kYXJza2lcIixcbiAgICBcIlphYm9yb3dza2lcIixcbiAgICBcIlphYsWCb2NraVwiLFxuICAgIFwiWmFnw7Nyc2tpXCIsXG4gICAgXCJaYWrEhWNcIixcbiAgICBcIlphasSFY3prb3dza2lcIixcbiAgICBcIlpha3J6ZXdza2lcIixcbiAgICBcIlphbGV3c2tpXCIsXG4gICAgXCJaYXJlbWJhXCIsXG4gICAgXCJaYXJ6eWNraVwiLFxuICAgIFwiWmFyxJliYVwiLFxuICAgIFwiWmF3YWRhXCIsXG4gICAgXCJaYXdhZHpraVwiLFxuICAgIFwiWmR1bmVrXCIsXG4gICAgXCJaaWVsacWEc2tpXCIsXG4gICAgXCJaaWVsb25rYVwiLFxuICAgIFwiWmnDs8WCa293c2tpXCIsXG4gICAgXCJaacSZYmFcIixcbiAgICBcIlppxJl0ZWtcIixcbiAgICBcIlp3b2xpxYRza2lcIixcbiAgICBcIlp5Y2hcIixcbiAgICBcIlp5Z211bnRcIixcbiAgICBcIsWBYXBpxYRza2lcIixcbiAgICBcIsWBdWN6YWtcIixcbiAgICBcIsWBdWthc2lld2ljelwiLFxuICAgIFwixYF1a2FzaWtcIixcbiAgICBcIsWBdWthc3pld3NraVwiLFxuICAgIFwixZpsaXdhXCIsXG4gICAgXCLFmmxpd2nFhHNraVwiLFxuICAgIFwixZpsdXNhcmN6eWtcIixcbiAgICBcIsWad2lkZXJza2lcIixcbiAgICBcIsWad2llcmN6ecWEc2tpXCIsXG4gICAgXCLFmndpxIV0ZWtcIixcbiAgICBcIsW7YWtcIixcbiAgICBcIsW7ZWJyb3dza2lcIixcbiAgICBcIsW7bXVkYVwiLFxuICAgIFwixbt1a1wiLFxuICAgIFwixbt1a293c2tpXCIsXG4gICAgXCLFu3VyYXdza2lcIixcbiAgICBcIsW7dXJla1wiLFxuICAgIFwixbt5xYJhXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiUGFuXCIsXG4gICAgXCJQYW5pXCJcbiAgXSxcbiAgXCJ0aXRsZVwiOiB7XG4gICAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiTGVhZFwiLFxuICAgICAgXCJTZW5pb3JcIixcbiAgICAgIFwiRGlyZWN0XCIsXG4gICAgICBcIkNvcnBvcmF0ZVwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkZ1dHVyZVwiLFxuICAgICAgXCJQcm9kdWN0XCIsXG4gICAgICBcIk5hdGlvbmFsXCIsXG4gICAgICBcIlJlZ2lvbmFsXCIsXG4gICAgICBcIkRpc3RyaWN0XCIsXG4gICAgICBcIkNlbnRyYWxcIixcbiAgICAgIFwiR2xvYmFsXCIsXG4gICAgICBcIkN1c3RvbWVyXCIsXG4gICAgICBcIkludmVzdG9yXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiSW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJMZWdhY3lcIixcbiAgICAgIFwiRm9yd2FyZFwiLFxuICAgICAgXCJJbnRlcm5hbFwiLFxuICAgICAgXCJIdW1hblwiLFxuICAgICAgXCJDaGllZlwiLFxuICAgICAgXCJQcmluY2lwYWxcIlxuICAgIF0sXG4gICAgXCJsZXZlbFwiOiBbXG4gICAgICBcIlNvbHV0aW9uc1wiLFxuICAgICAgXCJQcm9ncmFtXCIsXG4gICAgICBcIkJyYW5kXCIsXG4gICAgICBcIlNlY3VyaXR5XCIsXG4gICAgICBcIlJlc2VhcmNoXCIsXG4gICAgICBcIk1hcmtldGluZ1wiLFxuICAgICAgXCJEaXJlY3RpdmVzXCIsXG4gICAgICBcIkltcGxlbWVudGF0aW9uXCIsXG4gICAgICBcIkludGVncmF0aW9uXCIsXG4gICAgICBcIkZ1bmN0aW9uYWxpdHlcIixcbiAgICAgIFwiUmVzcG9uc2VcIixcbiAgICAgIFwiUGFyYWRpZ21cIixcbiAgICAgIFwiVGFjdGljc1wiLFxuICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgXCJNYXJrZXRzXCIsXG4gICAgICBcIkdyb3VwXCIsXG4gICAgICBcIkRpdmlzaW9uXCIsXG4gICAgICBcIkFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJPcHRpbWl6YXRpb25cIixcbiAgICAgIFwiT3BlcmF0aW9uc1wiLFxuICAgICAgXCJJbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJJbnRyYW5ldFwiLFxuICAgICAgXCJDb21tdW5pY2F0aW9uc1wiLFxuICAgICAgXCJXZWJcIixcbiAgICAgIFwiQnJhbmRpbmdcIixcbiAgICAgIFwiUXVhbGl0eVwiLFxuICAgICAgXCJBc3N1cmFuY2VcIixcbiAgICAgIFwiTW9iaWxpdHlcIixcbiAgICAgIFwiQWNjb3VudHNcIixcbiAgICAgIFwiRGF0YVwiLFxuICAgICAgXCJDcmVhdGl2ZVwiLFxuICAgICAgXCJDb25maWd1cmF0aW9uXCIsXG4gICAgICBcIkFjY291bnRhYmlsaXR5XCIsXG4gICAgICBcIkludGVyYWN0aW9uc1wiLFxuICAgICAgXCJGYWN0b3JzXCIsXG4gICAgICBcIlVzYWJpbGl0eVwiLFxuICAgICAgXCJNZXRyaWNzXCJcbiAgICBdLFxuICAgIFwiam9iXCI6IFtcbiAgICAgIFwiU3VwZXJ2aXNvclwiLFxuICAgICAgXCJBc3NvY2lhdGVcIixcbiAgICAgIFwiRXhlY3V0aXZlXCIsXG4gICAgICBcIkxpYXNvblwiLFxuICAgICAgXCJPZmZpY2VyXCIsXG4gICAgICBcIk1hbmFnZXJcIixcbiAgICAgIFwiRW5naW5lZXJcIixcbiAgICAgIFwiU3BlY2lhbGlzdFwiLFxuICAgICAgXCJEaXJlY3RvclwiLFxuICAgICAgXCJDb29yZGluYXRvclwiLFxuICAgICAgXCJBZG1pbmlzdHJhdG9yXCIsXG4gICAgICBcIkFyY2hpdGVjdFwiLFxuICAgICAgXCJBbmFseXN0XCIsXG4gICAgICBcIkRlc2lnbmVyXCIsXG4gICAgICBcIlBsYW5uZXJcIixcbiAgICAgIFwiT3JjaGVzdHJhdG9yXCIsXG4gICAgICBcIlRlY2huaWNpYW5cIixcbiAgICAgIFwiRGV2ZWxvcGVyXCIsXG4gICAgICBcIlByb2R1Y2VyXCIsXG4gICAgICBcIkNvbnN1bHRhbnRcIixcbiAgICAgIFwiQXNzaXN0YW50XCIsXG4gICAgICBcIkZhY2lsaXRhdG9yXCIsXG4gICAgICBcIkFnZW50XCIsXG4gICAgICBcIlJlcHJlc2VudGF0aXZlXCIsXG4gICAgICBcIlN0cmF0ZWdpc3RcIlxuICAgIF1cbiAgfSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbnBsLmFkZHJlc3MgPSB7XG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdhbmlzdGFuXCIsXG4gICAgXCJBbGJhbmlhXCIsXG4gICAgXCJBbGdpZXJpYVwiLFxuICAgIFwiQW5kb3JhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFudGlndWEgaSBCYXJidWRhXCIsXG4gICAgXCJBcmFiaWEgU2F1ZHlqc2thXCIsXG4gICAgXCJBcmdlbnR5bmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkF1c3RyYWxpYVwiLFxuICAgIFwiQXVzdHJpYVwiLFxuICAgIFwiQXplcmJlamTFvGFuXCIsXG4gICAgXCJCYWhhbXlcIixcbiAgICBcIkJhaHJham5cIixcbiAgICBcIkJhbmdsYWRlc3pcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxnaWFcIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQmlhxYJvcnXFm1wiLFxuICAgIFwiQmlybWFcIixcbiAgICBcIkJvbGl3aWFcIixcbiAgICBcIlN1Y3JlXCIsXG4gICAgXCJCb8WbbmlhIGkgSGVyY2Vnb3dpbmFcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCcmF6eWxpYVwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJCdcWCZ2FyaWFcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW55XCIsXG4gICAgXCJDaG9yd2FjamFcIixcbiAgICBcIkN5cHJcIixcbiAgICBcIkN6YWRcIixcbiAgICBcIkN6YXJub2fDs3JhXCIsXG4gICAgXCJDemVjaHlcIixcbiAgICBcIkRhbmlhXCIsXG4gICAgXCJEZW1va3JhdHljem5hIFJlcHVibGlrYSBLb25nYVwiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIkRvbWluaWthbmFcIixcbiAgICBcIkTFvGlidXRpXCIsXG4gICAgXCJFZ2lwdFwiLFxuICAgIFwiRWt3YWRvclwiLFxuICAgIFwiRXJ5dHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRpb3BpYVwiLFxuICAgIFwiRmlkxbxpXCIsXG4gICAgXCJGaWxpcGlueVwiLFxuICAgIFwiRmlubGFuZGlhXCIsXG4gICAgXCJGcmFuY2phXCIsXG4gICAgXCJHYWJvblwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR3JlY2phXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcnV6amFcIixcbiAgICBcIkd1amFuYVwiLFxuICAgIFwiR3dhdGVtYWxhXCIsXG4gICAgXCJHd2luZWFcIixcbiAgICBcIkd3aW5lYSBCaXNzYXVcIixcbiAgICBcIkd3aW5lYSBSw7N3bmlrb3dhXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGlzenBhbmlhXCIsXG4gICAgXCJIb2xhbmRpYVwiLFxuICAgIFwiSGFnYVwiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkluZGllXCIsXG4gICAgXCJJbmRvbmV6amFcIixcbiAgICBcIklyYWtcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklybGFuZGlhXCIsXG4gICAgXCJJc2xhbmRpYVwiLFxuICAgIFwiSXpyYWVsXCIsXG4gICAgXCJKYW1hamthXCIsXG4gICAgXCJKYXBvbmlhXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiSm9yZGFuaWFcIixcbiAgICBcIkthbWJvZMW8YVwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwiS2F6YWNoc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpc3RhblwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIktvbHVtYmlhXCIsXG4gICAgXCJLb21vcnlcIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJLb3JlYSBQb8WCdWRuaW93YVwiLFxuICAgIFwiS29yZWEgUMOzxYJub2NuYVwiLFxuICAgIFwiS29zdGFyeWthXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdXdlanRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxpYmFuXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJpYVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0d2FcIixcbiAgICBcIkx1a3NlbWJ1cmdcIixcbiAgICBcIsWBb3R3YVwiLFxuICAgIFwiTWFjZWRvbmlhXCIsXG4gICAgXCJNYWRhZ2Fza2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGVkaXd5XCIsXG4gICAgXCJNYWxlemphXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2tvXCIsXG4gICAgXCJNYXVyZXRhbmlhXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1la3N5a1wiLFxuICAgIFwiTWlrcm9uZXpqYVwiLFxuICAgIFwiTW/FgmRhd2lhXCIsXG4gICAgXCJNb25ha29cIixcbiAgICBcIk1vbmdvbGlhXCIsXG4gICAgXCJNb3phbWJpa1wiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJOaWVtY3lcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaWthcmFndWFcIixcbiAgICBcIk5vcndlZ2lhXCIsXG4gICAgXCJOb3dhIFplbGFuZGlhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbmFtYVwiLFxuICAgIFwiUGFwdWEtTm93YSBHd2luZWFcIixcbiAgICBcIlBhcmFnd2FqXCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQb2xza2FcIixcbiAgICBcIjMyMiA1NzVcIixcbiAgICBcIlBvcnR1Z2FsaWFcIixcbiAgICBcIlJlcHVibGlrYSBQb8WCdWRuaW93ZWogQWZyeWtpXCIsXG4gICAgXCJSZXB1Ymxpa2EgxZpyb2Rrb3dvYWZyeWthxYRza2FcIixcbiAgICBcIlJlcHVibGlrYSBaaWVsb25lZ28gUHJ6eWzEhWRrYVwiLFxuICAgIFwiUm9zamFcIixcbiAgICBcIlJ1bXVuaWFcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiU2FpbnQgS2l0dHMgaSBOZXZpc1wiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIlNhaW50IFZpbmNlbnQgaSBHcmVuYWR5bnlcIixcbiAgICBcIlNhbHdhZG9yXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU2VyYmlhXCIsXG4gICAgXCJTZXN6ZWxlXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbmdhcHVyXCIsXG4gICAgXCJTxYJvd2FjamFcIixcbiAgICBcIlPFgm93ZW5pYVwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdGFueSBaamVkbm9jem9uZVwiLFxuICAgIFwiU3VhemlcIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdWRhbiBQb8WCdWRuaW93eVwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3lyaWFcIixcbiAgICBcIlN6d2FqY2FyaWFcIixcbiAgICBcIlN6d2VjamFcIixcbiAgICBcIlRhZMW8eWtpc3RhblwiLFxuICAgIFwiVGFqbGFuZGlhXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGltb3IgV3NjaG9kbmlcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcnluaWRhZCBpIFRvYmFnb1wiLFxuICAgIFwiVHVuZXpqYVwiLFxuICAgIFwiVHVyY2phXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiRnVuYWZ1dGlcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluYVwiLFxuICAgIFwiVXJ1Z3dhalwiLFxuICAgIDIwMDgsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJXYXR5a2FuXCIsXG4gICAgXCJXZW5lenVlbGFcIixcbiAgICBcIlfEmWdyeVwiLFxuICAgIFwiV2llbGthIEJyeXRhbmlhXCIsXG4gICAgXCJXaWV0bmFtXCIsXG4gICAgXCJXxYJvY2h5XCIsXG4gICAgXCJXeWJyemXFvGUgS2/Fm2NpIFPFgm9uaW93ZWpcIixcbiAgICBcIld5c3B5IE1hcnNoYWxsYVwiLFxuICAgIFwiV3lzcHkgU2Fsb21vbmFcIixcbiAgICBcIld5c3B5IMWad2nEmXRlZ28gVG9tYXN6YSBpIEtzacSFxbzEmWNhXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCIsXG4gICAgXCJaamVkbm9jem9uZSBFbWlyYXR5IEFyYWJza2llXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3ByZWZpeFwiOiBbXG4gICAgXCJ1bC5cIixcbiAgICBcImFsLlwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0LiAjIyNcIixcbiAgICBcIlN1aXRlICMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJEb2xub8WbbMSFc2tpZVwiLFxuICAgIFwiS3VqYXdza28tcG9tb3Jza2llXCIsXG4gICAgXCJMdWJlbHNraWVcIixcbiAgICBcIkx1YnVza2llXCIsXG4gICAgXCLFgcOzZHpraWVcIixcbiAgICBcIk1hxYJvcG9sc2tpZVwiLFxuICAgIFwiTWF6b3dpZWNraWVcIixcbiAgICBcIk9wb2xza2llXCIsXG4gICAgXCJQb2RrYXJwYWNraWVcIixcbiAgICBcIlBvZGxhc2tpZVwiLFxuICAgIFwiUG9tb3Jza2llXCIsXG4gICAgXCLFmmzEhXNraWVcIixcbiAgICBcIsWad2nEmXRva3J6eXNraWVcIixcbiAgICBcIldhcm1pxYRza28tbWF6dXJza2llXCIsXG4gICAgXCJXaWVsa29wb2xza2llXCIsXG4gICAgXCJaYWNob2RuaW9wb21vcnNraWVcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiRMWaXCIsXG4gICAgXCJLUFwiLFxuICAgIFwiTEJcIixcbiAgICBcIkxTXCIsXG4gICAgXCLFgURcIixcbiAgICBcIk1QXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiT1BcIixcbiAgICBcIlBLXCIsXG4gICAgXCJQTFwiLFxuICAgIFwiUE1cIixcbiAgICBcIsWaTFwiLFxuICAgIFwixZpLXCIsXG4gICAgXCJXTVwiLFxuICAgIFwiV1BcIixcbiAgICBcIlpQXCJcbiAgXSxcbiAgXCJjaXR5X25hbWVcIjogW1xuICAgIFwiQWxla3NhbmRyw7N3IEt1amF3c2tpXCIsXG4gICAgXCJBbGVrc2FuZHLDs3cgxYHDs2R6a2lcIixcbiAgICBcIkFsd2VybmlhXCIsXG4gICAgXCJBbmRyeWNow7N3XCIsXG4gICAgXCJBbm5vcG9sXCIsXG4gICAgXCJBdWd1c3TDs3dcIixcbiAgICBcIkJhYmltb3N0XCIsXG4gICAgXCJCYWJvcsOzd1wiLFxuICAgIFwiQmFyYW7Ds3cgU2FuZG9taWVyc2tpXCIsXG4gICAgXCJCYXJjaW5cIixcbiAgICBcIkJhcmN6ZXdvXCIsXG4gICAgXCJCYXJkb1wiLFxuICAgIFwiQmFybGluZWtcIixcbiAgICBcIkJhcnRvc3p5Y2VcIixcbiAgICBcIkJhcndpY2VcIixcbiAgICBcIkJlxYJjaGF0w7N3XCIsXG4gICAgXCJCZcWCxbx5Y2VcIixcbiAgICBcIkLEmWR6aW5cIixcbiAgICBcIkJpYcWCYVwiLFxuICAgIFwiQmlhxYJhIFBpc2thXCIsXG4gICAgXCJCaWHFgmEgUG9kbGFza2FcIixcbiAgICBcIkJpYcWCYSBSYXdza2FcIixcbiAgICBcIkJpYcWCb2JyemVnaVwiLFxuICAgIFwiQmlhxYJvZ2FyZFwiLFxuICAgIFwiQmlhxYJ5IELDs3JcIixcbiAgICBcIkJpYcWCeXN0b2tcIixcbiAgICBcIkJpZWN6XCIsXG4gICAgXCJCaWVsYXdhXCIsXG4gICAgXCJCaWVsc2sgUG9kbGFza2lcIixcbiAgICBcIkJpZWxza28tQmlhxYJhXCIsXG4gICAgXCJCaWVydcWEXCIsXG4gICAgXCJCaWVydXTDs3dcIixcbiAgICBcIkJpZcW8dcWEXCIsXG4gICAgXCJCacWCZ29yYWpcIixcbiAgICBcIkJpc2t1cGllY1wiLFxuICAgIFwiQmlzenR5bmVrXCIsXG4gICAgXCJCbGFjaG93bmlhXCIsXG4gICAgXCJCxYJhc3praVwiLFxuICAgIFwiQsWCYcW8b3dhXCIsXG4gICAgXCJCxYJvbmllXCIsXG4gICAgXCJCb2JvbGljZVwiLFxuICAgIFwiQm9ib3dhXCIsXG4gICAgXCJCb2NobmlhXCIsXG4gICAgXCJCb2R6ZW50eW5cIixcbiAgICBcIkJvZ2F0eW5pYVwiLFxuICAgIFwiQm9ndWNod2HFgmFcIixcbiAgICBcIkJvZ3VzesOzdy1Hb3JjZVwiLFxuICAgIFwiQm9qYW5vd29cIixcbiAgICBcIkJvbGVzxYJhd2llY1wiLFxuICAgIFwiQm9sa8Ozd1wiLFxuICAgIFwiQm9yZWsgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJCb3JuZSBTdWxpbm93b1wiLFxuICAgIFwiQnJhbmlld29cIixcbiAgICBcIkJyYcWEc2tcIixcbiAgICBcIkJyb2RuaWNhXCIsXG4gICAgXCJCcm9rXCIsXG4gICAgXCJCcnVzeVwiLFxuICAgIFwiQnJ3aW7Ds3dcIixcbiAgICBcIkJyemVnXCIsXG4gICAgXCJCcnplZyBEb2xueVwiLFxuICAgIFwiQnJ6ZXNrb1wiLFxuICAgIFwiQnJ6ZXN6Y3plXCIsXG4gICAgXCJCcnplxZvEhyBLdWphd3NraVwiLFxuICAgIFwiQnJ6ZXppbnlcIixcbiAgICBcIkJyem9zdGVrXCIsXG4gICAgXCJCcnpvesOzd1wiLFxuICAgIFwiQnVrXCIsXG4gICAgXCJCdWtvd25vXCIsXG4gICAgXCJCdXNrby1aZHLDs2pcIixcbiAgICBcIkJ5Y2hhd2FcIixcbiAgICBcIkJ5Y3p5bmFcIixcbiAgICBcIkJ5ZGdvc3pjelwiLFxuICAgIFwiQnlzdHJ6eWNhIEvFgm9kemthXCIsXG4gICAgXCJCeXRvbVwiLFxuICAgIFwiQnl0b20gT2RyemHFhHNraVwiLFxuICAgIFwiQnl0w7N3XCIsXG4gICAgXCJDZWR5bmlhXCIsXG4gICAgXCJDaGXFgm1cIixcbiAgICBcIkNoZcWCbWVrXCIsXG4gICAgXCJDaGXFgm1ub1wiLFxuICAgIFwiQ2hlxYJtxbxhXCIsXG4gICAgXCJDaMSZY2lueVwiLFxuICAgIFwiQ2htaWVsbmlrXCIsXG4gICAgXCJDaG9jaWFuw7N3XCIsXG4gICAgXCJDaG9jaXdlbFwiLFxuICAgIFwiQ2hvZGVjelwiLFxuICAgIFwiQ2hvZHppZcW8XCIsXG4gICAgXCJDaG9qbmFcIixcbiAgICBcIkNob2puaWNlXCIsXG4gICAgXCJDaG9qbsOzd1wiLFxuICAgIFwiQ2hvcm9zemN6XCIsXG4gICAgXCJDaG9yemVsZVwiLFxuICAgIFwiQ2hvcnrDs3dcIixcbiAgICBcIkNob3N6Y3pub1wiLFxuICAgIFwiQ2hyemFuw7N3XCIsXG4gICAgXCJDaWVjaGFub3dpZWNcIixcbiAgICBcIkNpZWNoYW7Ds3dcIixcbiAgICBcIkNpZWNob2NpbmVrXCIsXG4gICAgXCJDaWVzemFuw7N3XCIsXG4gICAgXCJDaWVzenluXCIsXG4gICAgXCJDacSZxbxrb3dpY2VcIixcbiAgICBcIkN5Ymlua2FcIixcbiAgICBcIkN6YXBsaW5la1wiLFxuICAgIFwiQ3phcm5hIEJpYcWCb3N0b2NrYVwiLFxuICAgIFwiQ3phcm5hIFdvZGFcIixcbiAgICBcIkN6YXJuZVwiLFxuICAgIFwiQ3phcm5rw7N3XCIsXG4gICAgXCJDemNow7N3XCIsXG4gICAgXCJDemVjaG93aWNlLUR6aWVkemljZVwiLFxuICAgIFwiQ3plbGFkxbpcIixcbiAgICBcIkN6ZW1wacWEXCIsXG4gICAgXCJDemVybmllamV3b1wiLFxuICAgIFwiQ3plcnNrXCIsXG4gICAgXCJDemVyd2llxYRza1wiLFxuICAgIFwiQ3plcndpb25rYS1MZXN6Y3p5bnlcIixcbiAgICBcIkN6xJlzdG9jaG93YVwiLFxuICAgIFwiQ3rFgm9wYVwiLFxuICAgIFwiQ3rFgnVjaMOzd1wiLFxuICAgIFwiQ3p5xbxld1wiLFxuICAgIFwixIZtaWVsw7N3XCIsXG4gICAgXCJEYWxlc3p5Y2VcIixcbiAgICBcIkRhcsWCb3dvXCIsXG4gICAgXCJExIViaWVcIixcbiAgICBcIkTEhWJyb3dhIEJpYcWCb3N0b2NrYVwiLFxuICAgIFwiRMSFYnJvd2EgR8Ozcm5pY3phXCIsXG4gICAgXCJExIVicm93YSBUYXJub3dza2FcIixcbiAgICBcIkRlYnJ6bm9cIixcbiAgICBcIkTEmWJpY2FcIixcbiAgICBcIkTEmWJsaW5cIixcbiAgICBcIkTEmWJub1wiLFxuICAgIFwiRG9iY3p5Y2VcIixcbiAgICBcIkRvYmllZ25pZXdcIixcbiAgICBcIkRvYnJhIChwb3dpYXQgxYJvYmVza2kpXCIsXG4gICAgXCJEb2JyYSAocG93aWF0IHR1cmVja2kpXCIsXG4gICAgXCJEb2JyZSBNaWFzdG9cIixcbiAgICBcIkRvYnJvZHppZcWEXCIsXG4gICAgXCJEb2JyemFueVwiLFxuICAgIFwiRG9icnp5xYQgbmFkIFdpc8WCxIVcIixcbiAgICBcIkRvbHNrXCIsXG4gICAgXCJEcmF3bm9cIixcbiAgICBcIkRyYXdza28gUG9tb3Jza2llXCIsXG4gICAgXCJEcmV6ZGVua29cIixcbiAgICBcIkRyb2JpblwiLFxuICAgIFwiRHJvaGljenluXCIsXG4gICAgXCJEcnpld2ljYVwiLFxuICAgIFwiRHVrbGFcIixcbiAgICBcIkR1c3puaWtpLVpkcsOzalwiLFxuICAgIFwiRHluw7N3XCIsXG4gICAgXCJEemlhxYJkb3dvXCIsXG4gICAgXCJEemlhxYJvc3p5Y2VcIixcbiAgICBcIkR6aWHFgm9zenluXCIsXG4gICAgXCJEemllcnpnb8WEXCIsXG4gICAgXCJEemllcsW8b25pw7N3XCIsXG4gICAgXCJEeml3bsOzd1wiLFxuICAgIFwiRWxibMSFZ1wiLFxuICAgIFwiRcWCa1wiLFxuICAgIFwiRnJhbXBvbFwiLFxuICAgIFwiRnJvbWJvcmtcIixcbiAgICBcIkdhcndvbGluXCIsXG4gICAgXCJHxIViaW5cIixcbiAgICBcIkdkYcWEc2tcIixcbiAgICBcIkdkeW5pYVwiLFxuICAgIFwiR2nFvHlja29cIixcbiAgICBcIkdsaW5vamVja1wiLFxuICAgIFwiR2xpd2ljZVwiLFxuICAgIFwiR8WCb2fDs3dcIixcbiAgICBcIkfFgm9nw7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJHxYJvZ8Ozd2VrXCIsXG4gICAgXCJHxYJvd25vXCIsXG4gICAgXCJHxYJ1YmN6eWNlXCIsXG4gICAgXCJHxYJ1Y2hvxYJhenlcIixcbiAgICBcIkfFgnVzenljYVwiLFxuICAgIFwiR25pZXdcIixcbiAgICBcIkduaWV3a293b1wiLFxuICAgIFwiR25pZXpub1wiLFxuICAgIFwiR29nb2xpblwiLFxuICAgIFwiR29sY3pld29cIixcbiAgICBcIkdvbGVuacOzd1wiLFxuICAgIFwiR29saW5hXCIsXG4gICAgXCJHb2x1Yi1Eb2JyennFhFwiLFxuICAgIFwiR2/FgmHFhGN6XCIsXG4gICAgXCJHb8WCZGFwXCIsXG4gICAgXCJHb25pxIVkelwiLFxuICAgIFwiR29ybGljZVwiLFxuICAgIFwiR29yesOzdyDFmmzEhXNraVwiLFxuICAgIFwiR29yesOzdyBXaWVsa29wb2xza2lcIixcbiAgICBcIkdvc3R5bmluXCIsXG4gICAgXCJHb3N0ecWEXCIsXG4gICAgXCJHb8WbY2lub1wiLFxuICAgIFwiR296ZG5pY2FcIixcbiAgICBcIkfDs3JhXCIsXG4gICAgXCJHw7NyYSBLYWx3YXJpYVwiLFxuICAgIFwiR8Ozcm93byBJxYJhd2Vja2llXCIsXG4gICAgXCJHw7Nyem5vXCIsXG4gICAgXCJHcmFiw7N3IG5hZCBQcm9zbsSFXCIsXG4gICAgXCJHcmFqZXdvXCIsXG4gICAgXCJHcm9ka8Ozd1wiLFxuICAgIFwiR3JvZHppc2sgTWF6b3dpZWNraVwiLFxuICAgIFwiR3JvZHppc2sgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJHcsOzamVjXCIsXG4gICAgXCJHcnVkemnEhWR6XCIsXG4gICAgXCJHcnliw7N3XCIsXG4gICAgXCJHcnlmaWNlXCIsXG4gICAgXCJHcnlmaW5vXCIsXG4gICAgXCJHcnlmw7N3IMWabMSFc2tpXCIsXG4gICAgXCJHdWJpblwiLFxuICAgIFwiSGFqbsOzd2thXCIsXG4gICAgXCJIYWxpbsOzd1wiLFxuICAgIFwiSGVsXCIsXG4gICAgXCJIcnViaWVzesOzd1wiLFxuICAgIFwiScWCYXdhXCIsXG4gICAgXCJJxYJvd2FcIixcbiAgICBcIknFgsW8YVwiLFxuICAgIFwiSW1pZWxpblwiLFxuICAgIFwiSW5vd3JvY8WCYXdcIixcbiAgICBcIknFhHNrb1wiLFxuICAgIFwiSXdvbmljei1aZHLDs2pcIixcbiAgICBcIkl6YmljYSBLdWphd3NrYVwiLFxuICAgIFwiSmFixYJvbm93byBQb21vcnNraWVcIixcbiAgICBcIkphbmlrb3dvXCIsXG4gICAgXCJKYW5vd2llYyBXaWVsa29wb2xza2lcIixcbiAgICBcIkphbsOzdyBMdWJlbHNraVwiLFxuICAgIFwiSmFyb2NpblwiLFxuICAgIFwiSmFyb3PFgmF3XCIsXG4gICAgXCJKYXNpZcWEXCIsXG4gICAgXCJKYXPFgm9cIixcbiAgICBcIkphc3Rhcm5pYVwiLFxuICAgIFwiSmFzdHJvd2llXCIsXG4gICAgXCJKYXN0cnrEmWJpZS1aZHLDs2pcIixcbiAgICBcIkphd29yXCIsXG4gICAgXCJKYXdvcnpub1wiLFxuICAgIFwiSmF3b3J6eW5hIMWabMSFc2thXCIsXG4gICAgXCJKZWRsaWN6ZVwiLFxuICAgIFwiSmVkbGluYS1aZHLDs2pcIixcbiAgICBcIkplZHdhYm5lXCIsXG4gICAgXCJKZWxjei1MYXNrb3dpY2VcIixcbiAgICBcIkplbGVuaWEgR8OzcmFcIixcbiAgICBcIkplemlvcmFueVwiLFxuICAgIFwiSsSZZHJ6ZWrDs3dcIixcbiAgICBcIkpvcmRhbsOzd1wiLFxuICAgIFwiSsOzemVmw7N3IChwb3dpYXQgYmnFgmdvcmFqc2tpKVwiLFxuICAgIFwiSsOzemVmw7N3IChwb3dpYXQgb3R3b2NraSlcIixcbiAgICBcIkp1dHJvc2luXCIsXG4gICAgXCJLYWxldHlcIixcbiAgICBcIkthbGlzelwiLFxuICAgIFwiS2FsaXN6IFBvbW9yc2tpXCIsXG4gICAgXCJLYWx3YXJpYSBaZWJyenlkb3dza2FcIixcbiAgICBcIkthxYJ1c3p5blwiLFxuICAgIFwiS2FtaWVubmEgR8OzcmFcIixcbiAgICBcIkthbWllxYQgS3JhamXFhHNraVwiLFxuICAgIFwiS2FtaWXFhCBQb21vcnNraVwiLFxuICAgIFwiS2FtaWXFhHNrXCIsXG4gICAgXCJLYcWEY3p1Z2FcIixcbiAgICBcIkthcmN6ZXdcIixcbiAgICBcIkthcmdvd2FcIixcbiAgICBcIkthcmxpbm9cIixcbiAgICBcIkthcnBhY3pcIixcbiAgICBcIkthcnR1enlcIixcbiAgICBcIkthdG93aWNlXCIsXG4gICAgXCJLYXppbWllcnogRG9sbnlcIixcbiAgICBcIkthemltaWVyemEgV2llbGthXCIsXG4gICAgXCJLxIV0eSBXcm9jxYJhd3NraWVcIixcbiAgICBcIktjeW5pYVwiLFxuICAgIFwiS8SZZHppZXJ6eW4tS2/FumxlXCIsXG4gICAgXCJLxJlwaWNlXCIsXG4gICAgXCJLxJlwbm9cIixcbiAgICBcIkvEmXRyenluXCIsXG4gICAgXCJLxJl0eVwiLFxuICAgIFwiS2llbGNlXCIsXG4gICAgXCJLaWV0cnpcIixcbiAgICBcIktpc2llbGljZVwiLFxuICAgIFwiS2xlY3pld1wiLFxuICAgIFwiS2xlc3pjemVsZVwiLFxuICAgIFwiS2x1Y3pib3JrXCIsXG4gICAgXCJLxYJlY2tvXCIsXG4gICAgXCJLxYJvYnVja1wiLFxuICAgIFwiS8WCb2Rhd2FcIixcbiAgICBcIkvFgm9kemtvXCIsXG4gICAgXCJLbnVyw7N3XCIsXG4gICAgXCJLbnlzenluXCIsXG4gICAgXCJLb2J5bGluXCIsXG4gICAgXCJLb2J5xYJrYVwiLFxuICAgIFwiS29ja1wiLFxuICAgIFwiS29sYnVzem93YVwiLFxuICAgIFwiS29sbm9cIixcbiAgICBcIktvbG9ub3dza2llXCIsXG4gICAgXCJLb2x1c3praVwiLFxuICAgIFwiS2/FgmFjenljZVwiLFxuICAgIFwiS2/Fgm9cIixcbiAgICBcIktvxYJvYnJ6ZWdcIixcbiAgICBcIktvbmllY3BvbFwiLFxuICAgIFwiS29uaW5cIixcbiAgICBcIktvbnN0YW5jaW4tSmV6aW9ybmFcIixcbiAgICBcIktvbnN0YW50eW7Ds3cgxYHDs2R6a2lcIixcbiAgICBcIktvxYRza2llXCIsXG4gICAgXCJLb3Byenl3bmljYVwiLFxuICAgIFwiS29yZmFudMOzd1wiLFxuICAgIFwiS29yb25vd29cIixcbiAgICBcIktvcnN6ZVwiLFxuICAgIFwiS29zw7N3IExhY2tpXCIsXG4gICAgXCJLb3N0cnp5blwiLFxuICAgIFwiS29zdHJ6eW4gbmFkIE9kcsSFXCIsXG4gICAgXCJLb3N6YWxpblwiLFxuICAgIFwiS2/Fm2NpYW5cIixcbiAgICBcIktvxZtjaWVyenluYVwiLFxuICAgIFwiS293YWxcIixcbiAgICBcIktvd2FsZXdvIFBvbW9yc2tpZVwiLFxuICAgIFwiS293YXJ5XCIsXG4gICAgXCJLb3ppZWfFgm93eVwiLFxuICAgIFwiS296aWVuaWNlXCIsXG4gICAgXCJLb8W6bWluIFdpZWxrb3BvbHNraVwiLFxuICAgIFwiS2/FvHVjaMOzd1wiLFxuICAgIFwiS8Ozcm5pa1wiLFxuICAgIFwiS3JhamVua2FcIixcbiAgICBcIktyYWvDs3dcIixcbiAgICBcIktyYXBrb3dpY2VcIixcbiAgICBcIktyYXNub2Jyw7NkXCIsXG4gICAgXCJLcmFzbnlzdGF3XCIsXG4gICAgXCJLcmHFm25pa1wiLFxuICAgIFwiS3JvYmlhXCIsXG4gICAgXCJLcm9zbm9cIixcbiAgICBcIktyb3NubyBPZHJ6YcWEc2tpZVwiLFxuICAgIFwiS3JvxZtuaWV3aWNlXCIsXG4gICAgXCJLcm90b3N6eW5cIixcbiAgICBcIktydXN6d2ljYVwiLFxuICAgIFwiS3J5bmljYSBNb3Jza2FcIixcbiAgICBcIktyeW5pY2EtWmRyw7NqXCIsXG4gICAgXCJLcnlua2lcIixcbiAgICBcIktyemFub3dpY2VcIixcbiAgICBcIktyemVwaWNlXCIsXG4gICAgXCJLcnplc3pvd2ljZVwiLFxuICAgIFwiS3J6eXdpxYRcIixcbiAgICBcIktyennFvCBXaWVsa29wb2xza2lcIixcbiAgICBcIktzacSFxbwgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJLdWRvd2EtWmRyw7NqXCIsXG4gICAgXCJLdW7Ds3dcIixcbiAgICBcIkt1dG5vXCIsXG4gICAgXCJLdcW6bmlhIFJhY2lib3Jza2FcIixcbiAgICBcIkt3aWR6eW5cIixcbiAgICBcIkzEhWRlay1aZHLDs2pcIixcbiAgICBcIkxlZ2lvbm93b1wiLFxuICAgIFwiTGVnbmljYVwiLFxuICAgIFwiTGVza29cIixcbiAgICBcIkxlc3pub1wiLFxuICAgIFwiTGXFm25hXCIsXG4gICAgXCJMZcWbbmljYVwiLFxuICAgIFwiTGV3aW4gQnJ6ZXNraVwiLFxuICAgIFwiTGXFvGFqc2tcIixcbiAgICBcIkzEmWJvcmtcIixcbiAgICBcIkzEmWR6aW55XCIsXG4gICAgXCJMaWJpxIXFvFwiLFxuICAgIFwiTGlkemJhcmtcIixcbiAgICBcIkxpZHpiYXJrIFdhcm1pxYRza2lcIixcbiAgICBcIkxpbWFub3dhXCIsXG4gICAgXCJMaXBpYW55XCIsXG4gICAgXCJMaXBub1wiLFxuICAgIFwiTGlwc2tcIixcbiAgICBcIkxpcHNrb1wiLFxuICAgIFwiTHViYWN6w7N3XCIsXG4gICAgXCJMdWJhxYRcIixcbiAgICBcIkx1YmFydMOzd1wiLFxuICAgIFwiTHViYXdhXCIsXG4gICAgXCJMdWJhd2thXCIsXG4gICAgXCJMdWJpZcWEIEt1amF3c2tpXCIsXG4gICAgXCJMdWJpblwiLFxuICAgIFwiTHVibGluXCIsXG4gICAgXCJMdWJsaW5pZWNcIixcbiAgICBcIkx1Ym5pZXdpY2VcIixcbiAgICBcIkx1Ym9taWVyelwiLFxuICAgIFwiTHVib8WEXCIsXG4gICAgXCJMdWJyYW5pZWNcIixcbiAgICBcIkx1YnNrb1wiLFxuICAgIFwiTHfDs3dla1wiLFxuICAgIFwiTHfDs3dlayDFmmzEhXNraVwiLFxuICAgIFwixYFhYmlzenluXCIsXG4gICAgXCLFgWHFhGN1dFwiLFxuICAgIFwixYFhcHlcIixcbiAgICBcIsWBYXNpblwiLFxuICAgIFwixYFhc2tcIixcbiAgICBcIsWBYXNrYXJ6ZXdcIixcbiAgICBcIsWBYXN6Y3rDs3dcIixcbiAgICBcIsWBYXppc2thIEfDs3JuZVwiLFxuICAgIFwixYFhenlcIixcbiAgICBcIsWBZWJhXCIsXG4gICAgXCLFgcSZY3puYVwiLFxuICAgIFwixYHEmWN6eWNhXCIsXG4gICAgXCLFgcSZa25pY2FcIixcbiAgICBcIsWBb2JlelwiLFxuICAgIFwixYFvYsW8ZW5pY2FcIixcbiAgICBcIsWBb2Now7N3XCIsXG4gICAgXCLFgW9taWFua2lcIixcbiAgICBcIsWBb23FvGFcIixcbiAgICBcIsWBb3NpY2VcIixcbiAgICBcIsWBb3dpY3pcIixcbiAgICBcIsWBw7NkxbpcIixcbiAgICBcIsWBdWvDs3dcIixcbiAgICBcIk1ha8OzdyBNYXpvd2llY2tpXCIsXG4gICAgXCJNYWvDs3cgUG9kaGFsYcWEc2tpXCIsXG4gICAgXCJNYWxib3JrXCIsXG4gICAgXCJNYcWCb2dvc3pjelwiLFxuICAgIFwiTWHFgm9taWNlXCIsXG4gICAgXCJNYXJnb25pblwiLFxuICAgIFwiTWFya2lcIixcbiAgICBcIk1hc3pld29cIixcbiAgICBcIk1pYXN0ZWN6a28gxZpsxIVza2llXCIsXG4gICAgXCJNaWFzdGtvXCIsXG4gICAgXCJNaWNoYcWCb3dvXCIsXG4gICAgXCJNaWVjaMOzd1wiLFxuICAgIFwiTWllanNrYSBHw7Nya2FcIixcbiAgICBcIk1pZWxlY1wiLFxuICAgIFwiTWllcm9zesOzd1wiLFxuICAgIFwiTWllc3prb3dpY2VcIixcbiAgICBcIk1pxJlkenliw7NyelwiLFxuICAgIFwiTWnEmWR6eWNow7NkXCIsXG4gICAgXCJNacSZZHp5bGVzaWVcIixcbiAgICBcIk1pxJlkenlyemVjIFBvZGxhc2tpXCIsXG4gICAgXCJNacSZZHp5cnplY3pcIixcbiAgICBcIk1pxJlkenl6ZHJvamVcIixcbiAgICBcIk1pa2/FgmFqa2lcIixcbiAgICBcIk1pa2/FgsOzd1wiLFxuICAgIFwiTWlrc3RhdFwiLFxuICAgIFwiTWlsYW7Ds3dla1wiLFxuICAgIFwiTWlsaWN6XCIsXG4gICAgXCJNacWCYWtvd29cIixcbiAgICBcIk1pxYJvbcWCeW5cIixcbiAgICBcIk1pxYJvc8WCYXdcIixcbiAgICBcIk1pxYRzayBNYXpvd2llY2tpXCIsXG4gICAgXCJNaXJvc8WCYXdpZWNcIixcbiAgICBcIk1pcnNrXCIsXG4gICAgXCJNxYJhd2FcIixcbiAgICBcIk3FgnluYXJ5XCIsXG4gICAgXCJNb2dpZWxuaWNhXCIsXG4gICAgXCJNb2dpbG5vXCIsXG4gICAgXCJNb8WEa2lcIixcbiAgICBcIk1vcsSFZ1wiLFxuICAgIFwiTW9yZHlcIixcbiAgICBcIk1vcnnFhFwiLFxuICAgIFwiTW9zaW5hXCIsXG4gICAgXCJNcsSFZ293b1wiLFxuICAgIFwiTXJvY3phXCIsXG4gICAgXCJNc3phbmEgRG9sbmFcIixcbiAgICBcIk1zemN6b27Ds3dcIixcbiAgICBcIk11cm93YW5hIEdvxZtsaW5hXCIsXG4gICAgXCJNdXN6eW5hXCIsXG4gICAgXCJNeXPFgm93aWNlXCIsXG4gICAgXCJNeXN6a8Ozd1wiLFxuICAgIFwiTXlzenluaWVjXCIsXG4gICAgXCJNecWbbGVuaWNlXCIsXG4gICAgXCJNecWbbGliw7NyelwiLFxuICAgIFwiTmFrxYJvIG5hZCBOb3RlY2nEhVwiLFxuICAgIFwiTmHFgsSZY3rDs3dcIixcbiAgICBcIk5hbXlzxYLDs3dcIixcbiAgICBcIk5hcm9sXCIsXG4gICAgXCJOYXNpZWxza1wiLFxuICAgIFwiTmVrbGFcIixcbiAgICBcIk5pZHppY2FcIixcbiAgICBcIk5pZW1jemFcIixcbiAgICBcIk5pZW1vZGxpblwiLFxuICAgIFwiTmllcG/Fgm9taWNlXCIsXG4gICAgXCJOaWVzemF3YVwiLFxuICAgIFwiTmlza29cIixcbiAgICBcIk5vd2EgRMSZYmFcIixcbiAgICBcIk5vd2EgUnVkYVwiLFxuICAgIFwiTm93YSBTYXJ6eW5hXCIsXG4gICAgXCJOb3dhIFPDs2xcIixcbiAgICBcIk5vd2VcIixcbiAgICBcIk5vd2UgQnJ6ZXNrb1wiLFxuICAgIFwiTm93ZSBNaWFzdGVjemtvXCIsXG4gICAgXCJOb3dlIE1pYXN0byBMdWJhd3NraWVcIixcbiAgICBcIk5vd2UgTWlhc3RvIG5hZCBQaWxpY8SFXCIsXG4gICAgXCJOb3dlIFNrYWxtaWVyenljZVwiLFxuICAgIFwiTm93ZSBXYXJwbm9cIixcbiAgICBcIk5vd29nYXJkXCIsXG4gICAgXCJOb3dvZ3JvZHppZWNcIixcbiAgICBcIk5vd29ncsOzZFwiLFxuICAgIFwiTm93b2dyw7NkIEJvYnJ6YcWEc2tpXCIsXG4gICAgXCJOb3d5IER3w7NyIEdkYcWEc2tpXCIsXG4gICAgXCJOb3d5IER3w7NyIE1hem93aWVja2lcIixcbiAgICBcIk5vd3kgU8SFY3pcIixcbiAgICBcIk5vd3kgU3Rhd1wiLFxuICAgIFwiTm93eSBUYXJnXCIsXG4gICAgXCJOb3d5IFRvbXnFm2xcIixcbiAgICBcIk5vd3kgV2nFm25pY3pcIixcbiAgICBcIk55c2FcIixcbiAgICBcIk9ib3JuaWtpXCIsXG4gICAgXCJPYm9ybmlraSDFmmzEhXNraWVcIixcbiAgICBcIk9icnp5Y2tvXCIsXG4gICAgXCJPZG9sYW7Ds3dcIixcbiAgICBcIk9ncm9kemllbmllY1wiLFxuICAgIFwiT2tvbmVrXCIsXG4gICAgXCJPbGVja29cIixcbiAgICBcIk9sZXNub1wiLFxuICAgIFwiT2xlc3p5Y2VcIixcbiAgICBcIk9sZcWbbmljYVwiLFxuICAgIFwiT2xrdXN6XCIsXG4gICAgXCJPbHN6dHluXCIsXG4gICAgXCJPbHN6dHluZWtcIixcbiAgICBcIk9sc3p5bmFcIixcbiAgICBcIk/FgmF3YVwiLFxuICAgIFwiT3BhbGVuaWNhXCIsXG4gICAgXCJPcGF0w7N3XCIsXG4gICAgXCJPcG9jem5vXCIsXG4gICAgXCJPcG9sZVwiLFxuICAgIFwiT3BvbGUgTHViZWxza2llXCIsXG4gICAgXCJPcm5ldGFcIixcbiAgICBcIk9yemVzemVcIixcbiAgICBcIk9yenlzelwiLFxuICAgIFwiT3NpZWN6bmFcIixcbiAgICBcIk9zaWVrXCIsXG4gICAgXCJPc3Ryb8WCxJlrYVwiLFxuICAgIFwiT3N0cm9yw7NnXCIsXG4gICAgXCJPc3Ryb3dpZWMgxZp3acSZdG9rcnp5c2tpXCIsXG4gICAgXCJPc3Ryw7NkYVwiLFxuICAgIFwiT3N0csOzdyBMdWJlbHNraVwiLFxuICAgIFwiT3N0csOzdyBNYXpvd2llY2thXCIsXG4gICAgXCJPc3Ryw7N3IFdpZWxrb3BvbHNraVwiLFxuICAgIFwiT3N0cnplc3rDs3dcIixcbiAgICBcIk/Fm25vIEx1YnVza2llXCIsXG4gICAgXCJPxZt3acSZY2ltXCIsXG4gICAgXCJPdG11Y2jDs3dcIixcbiAgICBcIk90d29ja1wiLFxuICAgIFwiT3ppbWVrXCIsXG4gICAgXCJPem9ya8Ozd1wiLFxuICAgIFwiT8W8YXLDs3dcIixcbiAgICBcIk/FvGFyw7N3IE1hem93aWVja2lcIixcbiAgICBcIlBhYmlhbmljZVwiLFxuICAgIFwiUGFjemvDs3dcIixcbiAgICBcIlBhasSZY3pub1wiLFxuICAgIFwiUGFrb8WbxIdcIixcbiAgICBcIlBhcmN6ZXdcIixcbiAgICBcIlBhc8WCxJlrXCIsXG4gICAgXCJQYXN5bVwiLFxuICAgIFwiUGVscGxpblwiLFxuICAgIFwiUGXFgmN6eWNlXCIsXG4gICAgXCJQaWFzZWN6bm9cIixcbiAgICBcIlBpYXNraVwiLFxuICAgIFwiUGlhc3TDs3dcIixcbiAgICBcIlBpZWNob3dpY2VcIixcbiAgICBcIlBpZWthcnkgxZpsxIVza2llXCIsXG4gICAgXCJQaWVuacSZxbxub1wiLFxuICAgIFwiUGllxYRza1wiLFxuICAgIFwiUGllc3p5Y2VcIixcbiAgICBcIlBpbGF3YVwiLFxuICAgIFwiUGlsaWNhXCIsXG4gICAgXCJQaWx6bm9cIixcbiAgICBcIlBpxYJhXCIsXG4gICAgXCJQacWCYXdhIEfDs3JuYVwiLFxuICAgIFwiUGnFhGN6w7N3XCIsXG4gICAgXCJQaW9ua2lcIixcbiAgICBcIlBpb3Rya8OzdyBLdWphd3NraVwiLFxuICAgIFwiUGlvdHJrw7N3IFRyeWJ1bmFsc2tpXCIsXG4gICAgXCJQaXN6XCIsXG4gICAgXCJQaXduaWN6bmEtWmRyw7NqXCIsXG4gICAgXCJQbGVzemV3XCIsXG4gICAgXCJQxYJvY2tcIixcbiAgICBcIlDFgm/FhHNrXCIsXG4gICAgXCJQxYJvdHlcIixcbiAgICBcIlBuaWV3eVwiLFxuICAgIFwiUG9iaWVkemlza2FcIixcbiAgICBcIlBvZGTEmWJpY2VcIixcbiAgICBcIlBvZGtvd2EgTGXFm25hXCIsXG4gICAgXCJQb2dvcnplbGFcIixcbiAgICBcIlBvbGFuaWNhLVpkcsOzalwiLFxuICAgIFwiUG9sYW7Ds3dcIixcbiAgICBcIlBvbGljZVwiLFxuICAgIFwiUG9sa293aWNlXCIsXG4gICAgXCJQb8WCYW5pZWNcIixcbiAgICBcIlBvxYJjenluLVpkcsOzalwiLFxuICAgIFwiUG9uaWF0b3dhXCIsXG4gICAgXCJQb25pZWNcIixcbiAgICBcIlBvcsSZYmFcIixcbiAgICBcIlBvem5hxYRcIixcbiAgICBcIlByYWJ1dHlcIixcbiAgICBcIlByYXN6a2FcIixcbiAgICBcIlByb2Nob3dpY2VcIixcbiAgICBcIlByb3N6b3dpY2VcIixcbiAgICBcIlByw7NzemvDs3dcIixcbiAgICBcIlBydWNobmlrXCIsXG4gICAgXCJQcnVkbmlrXCIsXG4gICAgXCJQcnVzaWNlXCIsXG4gICAgXCJQcnVzemN6IEdkYcWEc2tpXCIsXG4gICAgXCJQcnVzemvDs3dcIixcbiAgICBcIlByemFzbnlzelwiLFxuICAgIFwiUHJ6ZWPFgmF3XCIsXG4gICAgXCJQcnplZGLDs3J6XCIsXG4gICAgXCJQcnplZGVjelwiLFxuICAgIFwiUHJ6ZW1rw7N3XCIsXG4gICAgXCJQcnplbXnFm2xcIixcbiAgICBcIlByemV3b3Jza1wiLFxuICAgIFwiUHJ6eXN1Y2hhXCIsXG4gICAgXCJQc3pjenluYVwiLFxuICAgIFwiUHN6w7N3XCIsXG4gICAgXCJQdWNrXCIsXG4gICAgXCJQdcWCYXd5XCIsXG4gICAgXCJQdcWCdHVza1wiLFxuICAgIFwiUHVzemN6eWtvd29cIixcbiAgICBcIlB5cnp5Y2VcIixcbiAgICBcIlB5c2tvd2ljZVwiLFxuICAgIFwiUHl6ZHJ5XCIsXG4gICAgXCJSYWJrYS1aZHLDs2pcIixcbiAgICBcIlJhY2nEhcW8XCIsXG4gICAgXCJSYWNpYsOzcnpcIixcbiAgICBcIlJhZGvDs3dcIixcbiAgICBcIlJhZGxpblwiLFxuICAgIFwiUmFkxYLDs3dcIixcbiAgICBcIlJhZG9tXCIsXG4gICAgXCJSYWRvbXNrb1wiLFxuICAgIFwiUmFkb215xZtsIFdpZWxraVwiLFxuICAgIFwiUmFkeW1ub1wiLFxuICAgIFwiUmFkemllasOzd1wiLFxuICAgIFwiUmFkemlvbmvDs3dcIixcbiAgICBcIlJhZHp5bWluXCIsXG4gICAgXCJSYWR6ecWEIENoZcWCbWnFhHNraVwiLFxuICAgIFwiUmFkennFhCBQb2RsYXNraVwiLFxuICAgIFwiUmFqZ3LDs2RcIixcbiAgICBcIlJha29uaWV3aWNlXCIsXG4gICAgXCJSYXN6a8Ozd1wiLFxuICAgIFwiUmF3YSBNYXpvd2llY2thXCIsXG4gICAgXCJSYXdpY3pcIixcbiAgICBcIlJlY3pcIixcbiAgICBcIlJlZGFcIixcbiAgICBcIlJlam93aWVjIEZhYnJ5Y3pueVwiLFxuICAgIFwiUmVza29cIixcbiAgICBcIlJlc3plbFwiLFxuICAgIFwiUm9nb8W6bm9cIixcbiAgICBcIlJvcGN6eWNlXCIsXG4gICAgXCJSw7PFvGFuXCIsXG4gICAgXCJSdWNpYW5lLU5pZGFcIixcbiAgICBcIlJ1ZGEgxZpsxIVza2FcIixcbiAgICBcIlJ1ZG5payBuYWQgU2FuZW1cIixcbiAgICBcIlJ1bWlhXCIsXG4gICAgXCJSeWJuaWtcIixcbiAgICBcIlJ5Y2h3YcWCXCIsXG4gICAgXCJSeWR1xYJ0b3d5XCIsXG4gICAgXCJSeWR6eW5hXCIsXG4gICAgXCJSeWdsaWNlXCIsXG4gICAgXCJSeWtpXCIsXG4gICAgXCJSeW1hbsOzd1wiLFxuICAgIFwiUnluXCIsXG4gICAgXCJSeXBpblwiLFxuICAgIFwiUnplcGluXCIsXG4gICAgXCJSemVzesOzd1wiLFxuICAgIFwiUnpnw7N3XCIsXG4gICAgXCJTYW5kb21pZXJ6XCIsXG4gICAgXCJTYW5va1wiLFxuICAgIFwiU2VqbnlcIixcbiAgICBcIlNlcm9ja1wiLFxuICAgIFwiU8SZZHppc3rDs3dcIixcbiAgICBcIlPEmWR6aXN6w7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJTxJlwb3BvbFwiLFxuICAgIFwiU8SZcMOzbG5vIEtyYWplxYRza2llXCIsXG4gICAgXCJTaWFuw7N3XCIsXG4gICAgXCJTaWVjaG5pY2VcIixcbiAgICBcIlNpZWRsY2VcIixcbiAgICBcIlNpZW1pYW5vd2ljZSDFmmzEhXNraWVcIixcbiAgICBcIlNpZW1pYXR5Y3plXCIsXG4gICAgXCJTaWVuaWF3YVwiLFxuICAgIFwiU2llcmFkelwiLFxuICAgIFwiU2llcmFrw7N3XCIsXG4gICAgXCJTaWVycGNcIixcbiAgICBcIlNpZXdpZXJ6XCIsXG4gICAgXCJTa2FsYm1pZXJ6XCIsXG4gICAgXCJTa2HFgmFcIixcbiAgICBcIlNrYXJzemV3eVwiLFxuICAgIFwiU2thcnlzemV3XCIsXG4gICAgXCJTa2Fyxbx5c2tvLUthbWllbm5hXCIsXG4gICAgXCJTa2F3aW5hXCIsXG4gICAgXCJTa8SZcGVcIixcbiAgICBcIlNraWVybmlld2ljZVwiLFxuICAgIFwiU2tvY3rDs3dcIixcbiAgICBcIlNrb2tpXCIsXG4gICAgXCJTa8OzcmN6XCIsXG4gICAgXCJTa3dpZXJ6eW5hXCIsXG4gICAgXCJTxYJhd2FcIixcbiAgICBcIlPFgmF3a8Ozd1wiLFxuICAgIFwiU8WCYXdub1wiLFxuICAgIFwiU8WCb21uaWtpXCIsXG4gICAgXCJTxYJ1YmljZVwiLFxuICAgIFwiU8WCdXBjYVwiLFxuICAgIFwiU8WCdXBza1wiLFxuICAgIFwiU29iw7N0a2FcIixcbiAgICBcIlNvY2hhY3pld1wiLFxuICAgIFwiU29rb8WCw7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJTb2tvxYLDs3cgUG9kbGFza2lcIixcbiAgICBcIlNva8OzxYJrYVwiLFxuICAgIFwiU29sZWMgS3VqYXdza2lcIixcbiAgICBcIlNvbXBvbG5vXCIsXG4gICAgXCJTb3BvdFwiLFxuICAgIFwiU29zbm93aWVjXCIsXG4gICAgXCJTb8Wbbmljb3dpY2VcIixcbiAgICBcIlN0YWxvd2EgV29sYVwiLFxuICAgIFwiU3RhcmFjaG93aWNlXCIsXG4gICAgXCJTdGFyZ2FyZCBTemN6ZWNpxYRza2lcIixcbiAgICBcIlN0YXJvZ2FyZCBHZGHFhHNraVwiLFxuICAgIFwiU3RhcnkgU8SFY3pcIixcbiAgICBcIlN0YXN6w7N3XCIsXG4gICAgXCJTdGF3aXNraVwiLFxuICAgIFwiU3Rhd2lzenluXCIsXG4gICAgXCJTdMSFcG9ya8Ozd1wiLFxuICAgIFwiU3TEmXN6ZXdcIixcbiAgICBcIlN0b2N6ZWsgxYF1a293c2tpXCIsXG4gICAgXCJTdHJvbmllIMWabMSFc2tpZVwiLFxuICAgIFwiU3RydW1pZcWEXCIsXG4gICAgXCJTdHJ5a8Ozd1wiLFxuICAgIFwiU3RyemVnb21cIixcbiAgICBcIlN0cnplbGNlIEtyYWplxYRza2llXCIsXG4gICAgXCJTdHJ6ZWxjZSBPcG9sc2tpZVwiLFxuICAgIFwiU3RyemVsaW5cIixcbiAgICBcIlN0cnplbG5vXCIsXG4gICAgXCJTdHJ6ecW8w7N3XCIsXG4gICAgXCJTdWNoYSBCZXNraWR6a2FcIixcbiAgICBcIlN1Y2hhxYRcIixcbiAgICBcIlN1Y2hlZG5pw7N3XCIsXG4gICAgXCJTdWNob3dvbGFcIixcbiAgICBcIlN1bGVjaMOzd1wiLFxuICAgIFwiU3VsZWrDs3dcIixcbiAgICBcIlN1bGVqw7N3ZWtcIixcbiAgICBcIlN1bMSZY2luXCIsXG4gICAgXCJTdWxtaWVyenljZVwiLFxuICAgIFwiU3XFgmtvd2ljZVwiLFxuICAgIFwiU3VwcmHFm2xcIixcbiAgICBcIlN1cmHFvFwiLFxuICAgIFwiU3VzelwiLFxuICAgIFwiU3V3YcWCa2lcIixcbiAgICBcIlN3YXJ6xJlkelwiLFxuICAgIFwiU3ljw7N3XCIsXG4gICAgXCJTemFkZWtcIixcbiAgICBcIlN6YW1vY2luXCIsXG4gICAgXCJTemFtb3R1xYJ5XCIsXG4gICAgXCJTemN6YXduaWNhXCIsXG4gICAgXCJTemN6YXduby1aZHLDs2pcIixcbiAgICBcIlN6Y3plYnJ6ZXN6eW5cIixcbiAgICBcIlN6Y3plY2luXCIsXG4gICAgXCJTemN6ZWNpbmVrXCIsXG4gICAgXCJTemN6ZWtvY2lueVwiLFxuICAgIFwiU3pjenVjaW5cIixcbiAgICBcIlN6Y3p1Y3p5blwiLFxuICAgIFwiU3pjenlya1wiLFxuICAgIFwiU3pjenl0bmFcIixcbiAgICBcIlN6Y3p5dG5vXCIsXG4gICAgXCJTemVwaWV0b3dvXCIsXG4gICAgXCJTemtsYXJza2EgUG9yxJliYVwiLFxuICAgIFwiU3psaWNodHluZ293YVwiLFxuICAgIFwiU3pwcm90YXdhXCIsXG4gICAgXCJTenR1bVwiLFxuICAgIFwiU3p1YmluXCIsXG4gICAgXCJTenlkxYJvd2llY1wiLFxuICAgIFwixZpjaW5hd2FcIixcbiAgICBcIsWabGVzaW5cIixcbiAgICBcIsWabWlnaWVsXCIsXG4gICAgXCLFmnJlbVwiLFxuICAgIFwixZpyb2RhIMWabMSFc2thXCIsXG4gICAgXCLFmnJvZGEgV2llbGtvcG9sc2thXCIsXG4gICAgXCLFmndpxIV0bmlraSBHw7NybmVcIixcbiAgICBcIsWad2lkbmljYVwiLFxuICAgIFwixZp3aWRuaWtcIixcbiAgICBcIsWad2lkd2luXCIsXG4gICAgXCLFmndpZWJvZHppY2VcIixcbiAgICBcIsWad2llYm9kemluXCIsXG4gICAgXCLFmndpZWNpZVwiLFxuICAgIFwixZp3aWVyYWTDs3ctWmRyw7NqXCIsXG4gICAgXCLFmndpZXJ6YXdhXCIsXG4gICAgXCLFmndpxJl0b2NoxYJvd2ljZVwiLFxuICAgIFwixZp3aW5vdWrFm2NpZVwiLFxuICAgIFwiVGFyY3p5blwiLFxuICAgIFwiVGFybm9icnplZ1wiLFxuICAgIFwiVGFybm9ncsOzZFwiLFxuICAgIFwiVGFybm93c2tpZSBHw7NyeVwiLFxuICAgIFwiVGFybsOzd1wiLFxuICAgIFwiVGN6ZXdcIixcbiAgICBcIlRlcmVzcG9sXCIsXG4gICAgXCJUxYJ1c3pjelwiLFxuICAgIFwiVG9sa21pY2tvXCIsXG4gICAgXCJUb21hc3rDs3cgTHViZWxza2lcIixcbiAgICBcIlRvbWFzesOzdyBNYXpvd2llY2tpXCIsXG4gICAgXCJUb3J1xYRcIixcbiAgICBcIlRvcnp5bVwiLFxuICAgIFwiVG9zemVrXCIsXG4gICAgXCJUcnpjaWFua2FcIixcbiAgICBcIlRyemNpZWxcIixcbiAgICBcIlRyemNpxYRza28tWmRyw7NqXCIsXG4gICAgXCJUcnplYmlhdMOzd1wiLFxuICAgIFwiVHJ6ZWJpbmlhXCIsXG4gICAgXCJUcnplYm5pY2FcIixcbiAgICBcIlRyemVtZXN6bm9cIixcbiAgICBcIlR1Y2hvbGFcIixcbiAgICBcIlR1Y2jDs3dcIixcbiAgICBcIlR1Y3pub1wiLFxuICAgIFwiVHVsaXN6a8Ozd1wiLFxuICAgIFwiVHVyZWtcIixcbiAgICBcIlR1c3p5blwiLFxuICAgIFwiVHdhcmRvZ8OzcmFcIixcbiAgICBcIlR5Y2hvd29cIixcbiAgICBcIlR5Y2h5XCIsXG4gICAgXCJUeWN6eW5cIixcbiAgICBcIlR5a29jaW5cIixcbiAgICBcIlR5c3pvd2NlXCIsXG4gICAgXCJVamF6ZFwiLFxuICAgIFwiVWrFm2NpZVwiLFxuICAgIFwiVWxhbsOzd1wiLFxuICAgIFwiVW5pZWrDs3dcIixcbiAgICBcIlVzdGthXCIsXG4gICAgXCJVc3Ryb8WEXCIsXG4gICAgXCJVc3RyenlraSBEb2xuZVwiLFxuICAgIFwiV2Fkb3dpY2VcIixcbiAgICBcIldhxYJicnp5Y2hcIixcbiAgICBcIldhxYJjelwiLFxuICAgIFwiV2Fya2FcIixcbiAgICBcIldhcnN6YXdhXCIsXG4gICAgXCJXYXJ0YVwiLFxuICAgIFwiV2FzaWxrw7N3XCIsXG4gICAgXCJXxIVicnplxbpub1wiLFxuICAgIFwiV8SFY2hvY2tcIixcbiAgICBcIlfEhWdyb3dpZWNcIixcbiAgICBcIlfEhXNvc3pcIixcbiAgICBcIldlamhlcm93b1wiLFxuICAgIFwiV8SZZ2xpbmllY1wiLFxuICAgIFwiV8SZZ29yemV3b1wiLFxuICAgIFwiV8SZZ29yenlub1wiLFxuICAgIFwiV8SZZ3LDs3dcIixcbiAgICBcIldpxIV6w7N3XCIsXG4gICAgXCJXaWVsZcWEXCIsXG4gICAgXCJXaWVsaWNob3dvXCIsXG4gICAgXCJXaWVsaWN6a2FcIixcbiAgICBcIldpZWx1xYRcIixcbiAgICBcIldpZXJ1c3rDs3dcIixcbiAgICBcIldpxJljYm9ya1wiLFxuICAgIFwiV2lsYW1vd2ljZVwiLFxuICAgIFwiV2lzxYJhXCIsXG4gICAgXCJXaXRrb3dvXCIsXG4gICAgXCJXaXRuaWNhXCIsXG4gICAgXCJXbGXFhFwiLFxuICAgIFwiV8WCYWR5c8WCYXdvd29cIixcbiAgICBcIlfFgm9jxYJhd2VrXCIsXG4gICAgXCJXxYJvZGF3YVwiLFxuICAgIFwiV8WCb3N6Y3pvd2FcIixcbiAgICBcIldvZHppc8WCYXcgxZpsxIVza2lcIixcbiAgICBcIldvamNpZXN6w7N3XCIsXG4gICAgXCJXb2prb3dpY2VcIixcbiAgICBcIldvam5pY3pcIixcbiAgICBcIldvbGLDs3J6XCIsXG4gICAgXCJXb2xicm9tXCIsXG4gICAgXCJXb2xpblwiLFxuICAgIFwiV29sc3p0eW5cIixcbiAgICBcIldvxYJjenluXCIsXG4gICAgXCJXb8WCb21pblwiLFxuICAgIFwiV2/FgsOzd1wiLFxuICAgIFwiV2/Fum5pa2lcIixcbiAgICBcIldyb2PFgmF3XCIsXG4gICAgXCJXcm9ua2lcIixcbiAgICBcIldyemXFm25pYVwiLFxuICAgIFwiV3NjaG93YVwiLFxuICAgIFwiV3lyenlza1wiLFxuICAgIFwiV3lzb2thXCIsXG4gICAgXCJXeXNva2llIE1hem93aWVja2llXCIsXG4gICAgXCJXeXN6a8Ozd1wiLFxuICAgIFwiV3lzem9ncsOzZFwiLFxuICAgIFwiV3nFm21pZXJ6eWNlXCIsXG4gICAgXCJaYWLFgnVkw7N3XCIsXG4gICAgXCJaYWJyemVcIixcbiAgICBcIlphZ8OzcsOzd1wiLFxuICAgIFwiWmFnw7NyelwiLFxuICAgIFwiWmFrbGljenluXCIsXG4gICAgXCJaYWtvcGFuZVwiLFxuICAgIFwiWmFrcm9jenltXCIsXG4gICAgXCJaYWxld29cIixcbiAgICBcIlphbWJyw7N3XCIsXG4gICAgXCJaYW1vxZvEh1wiLFxuICAgIFwiWmF0b3JcIixcbiAgICBcIlphd2FkemtpZVwiLFxuICAgIFwiWmF3aWNob3N0XCIsXG4gICAgXCJaYXdpZMOzd1wiLFxuICAgIFwiWmF3aWVyY2llXCIsXG4gICAgXCJaxIVia2lcIixcbiAgICBcIlrEhWJrb3dpY2UgxZpsxIVza2llXCIsXG4gICAgXCJaYsSFc3p5bmVrXCIsXG4gICAgXCJaYsSFc3p5xYRcIixcbiAgICBcIlpkdW55XCIsXG4gICAgXCJaZHXFhHNrYSBXb2xhXCIsXG4gICAgXCJaZHppZXN6b3dpY2VcIixcbiAgICBcIlplbMOzd1wiLFxuICAgIFwiWmdpZXJ6XCIsXG4gICAgXCJaZ29yemVsZWNcIixcbiAgICBcIlppZWxvbmEgR8OzcmFcIixcbiAgICBcIlppZWxvbmthXCIsXG4gICAgXCJaacSZYmljZVwiLFxuICAgIFwiWsWCb2NpZW5pZWNcIixcbiAgICBcIlrFgm9jemV3XCIsXG4gICAgXCJaxYJvdG9yeWphXCIsXG4gICAgXCJaxYJvdMOzd1wiLFxuICAgIFwiWsWCb3R5IFN0b2tcIixcbiAgICBcIlp3aWVyenluaWVjXCIsXG4gICAgXCJad29sZcWEXCIsXG4gICAgXCLFu2Fibm9cIixcbiAgICBcIsW7YWdhxYRcIixcbiAgICBcIsW7YXJraVwiLFxuICAgIFwixbthcsOzd1wiLFxuICAgIFwixbthcnlcIixcbiAgICBcIsW7ZWxlY2jDs3dcIixcbiAgICBcIsW7ZXJrw7N3XCIsXG4gICAgXCLFu21pZ3LDs2RcIixcbiAgICBcIsW7bmluXCIsXG4gICAgXCLFu29yeVwiLFxuICAgIFwixbt1a293b1wiLFxuICAgIFwixbt1cm9taW5cIixcbiAgICBcIsW7eWNobGluXCIsXG4gICAgXCLFu3lyYXJkw7N3XCIsXG4gICAgXCLFu3l3aWVjXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9uYW1lfVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcHJlZml4fSAje05hbWUubGFzdF9uYW1lfVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiUG9sc2thXCJcbiAgXVxufTtcbnBsLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkluY1wiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkxMQ1wiLFxuICAgIFwiR3JvdXBcIlxuICBdLFxuICBcImFkamV0aXZlXCI6IFtcbiAgICAgIFwiQWRhcHRpdmVcIixcbiAgICAgIFwiQWR2YW5jZWRcIixcbiAgICAgIFwiQW1lbGlvcmF0ZWRcIixcbiAgICAgIFwiQXNzaW1pbGF0ZWRcIixcbiAgICAgIFwiQXV0b21hdGVkXCIsXG4gICAgICBcIkJhbGFuY2VkXCIsXG4gICAgICBcIkJ1c2luZXNzLWZvY3VzZWRcIixcbiAgICAgIFwiQ2VudHJhbGl6ZWRcIixcbiAgICAgIFwiQ2xvbmVkXCIsXG4gICAgICBcIkNvbXBhdGlibGVcIixcbiAgICAgIFwiQ29uZmlndXJhYmxlXCIsXG4gICAgICBcIkNyb3NzLWdyb3VwXCIsXG4gICAgICBcIkNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcIkN1c3RvbWVyLWZvY3VzZWRcIixcbiAgICAgIFwiQ3VzdG9taXphYmxlXCIsXG4gICAgICBcIkRlY2VudHJhbGl6ZWRcIixcbiAgICAgIFwiRGUtZW5naW5lZXJlZFwiLFxuICAgICAgXCJEZXZvbHZlZFwiLFxuICAgICAgXCJEaWdpdGl6ZWRcIixcbiAgICAgIFwiRGlzdHJpYnV0ZWRcIixcbiAgICAgIFwiRGl2ZXJzZVwiLFxuICAgICAgXCJEb3duLXNpemVkXCIsXG4gICAgICBcIkVuaGFuY2VkXCIsXG4gICAgICBcIkVudGVycHJpc2Utd2lkZVwiLFxuICAgICAgXCJFcmdvbm9taWNcIixcbiAgICAgIFwiRXhjbHVzaXZlXCIsXG4gICAgICBcIkV4cGFuZGVkXCIsXG4gICAgICBcIkV4dGVuZGVkXCIsXG4gICAgICBcIkZhY2UgdG8gZmFjZVwiLFxuICAgICAgXCJGb2N1c2VkXCIsXG4gICAgICBcIkZyb250LWxpbmVcIixcbiAgICAgIFwiRnVsbHktY29uZmlndXJhYmxlXCIsXG4gICAgICBcIkZ1bmN0aW9uLWJhc2VkXCIsXG4gICAgICBcIkZ1bmRhbWVudGFsXCIsXG4gICAgICBcIkZ1dHVyZS1wcm9vZmVkXCIsXG4gICAgICBcIkdyYXNzLXJvb3RzXCIsXG4gICAgICBcIkhvcml6b250YWxcIixcbiAgICAgIFwiSW1wbGVtZW50ZWRcIixcbiAgICAgIFwiSW5ub3ZhdGl2ZVwiLFxuICAgICAgXCJJbnRlZ3JhdGVkXCIsXG4gICAgICBcIkludHVpdGl2ZVwiLFxuICAgICAgXCJJbnZlcnNlXCIsXG4gICAgICBcIk1hbmFnZWRcIixcbiAgICAgIFwiTWFuZGF0b3J5XCIsXG4gICAgICBcIk1vbml0b3JlZFwiLFxuICAgICAgXCJNdWx0aS1jaGFubmVsbGVkXCIsXG4gICAgICBcIk11bHRpLWxhdGVyYWxcIixcbiAgICAgIFwiTXVsdGktbGF5ZXJlZFwiLFxuICAgICAgXCJNdWx0aS10aWVyZWRcIixcbiAgICAgIFwiTmV0d29ya2VkXCIsXG4gICAgICBcIk9iamVjdC1iYXNlZFwiLFxuICAgICAgXCJPcGVuLWFyY2hpdGVjdGVkXCIsXG4gICAgICBcIk9wZW4tc291cmNlXCIsXG4gICAgICBcIk9wZXJhdGl2ZVwiLFxuICAgICAgXCJPcHRpbWl6ZWRcIixcbiAgICAgIFwiT3B0aW9uYWxcIixcbiAgICAgIFwiT3JnYW5pY1wiLFxuICAgICAgXCJPcmdhbml6ZWRcIixcbiAgICAgIFwiUGVyc2V2ZXJpbmdcIixcbiAgICAgIFwiUGVyc2lzdGVudFwiLFxuICAgICAgXCJQaGFzZWRcIixcbiAgICAgIFwiUG9sYXJpc2VkXCIsXG4gICAgICBcIlByZS1lbXB0aXZlXCIsXG4gICAgICBcIlByb2FjdGl2ZVwiLFxuICAgICAgXCJQcm9maXQtZm9jdXNlZFwiLFxuICAgICAgXCJQcm9mb3VuZFwiLFxuICAgICAgXCJQcm9ncmFtbWFibGVcIixcbiAgICAgIFwiUHJvZ3Jlc3NpdmVcIixcbiAgICAgIFwiUHVibGljLWtleVwiLFxuICAgICAgXCJRdWFsaXR5LWZvY3VzZWRcIixcbiAgICAgIFwiUmVhY3RpdmVcIixcbiAgICAgIFwiUmVhbGlnbmVkXCIsXG4gICAgICBcIlJlLWNvbnRleHR1YWxpemVkXCIsXG4gICAgICBcIlJlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiUmVkdWNlZFwiLFxuICAgICAgXCJSZXZlcnNlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiUmlnaHQtc2l6ZWRcIixcbiAgICAgIFwiUm9idXN0XCIsXG4gICAgICBcIlNlYW1sZXNzXCIsXG4gICAgICBcIlNlY3VyZWRcIixcbiAgICAgIFwiU2VsZi1lbmFibGluZ1wiLFxuICAgICAgXCJTaGFyYWJsZVwiLFxuICAgICAgXCJTdGFuZC1hbG9uZVwiLFxuICAgICAgXCJTdHJlYW1saW5lZFwiLFxuICAgICAgXCJTd2l0Y2hhYmxlXCIsXG4gICAgICBcIlN5bmNocm9uaXNlZFwiLFxuICAgICAgXCJTeW5lcmdpc3RpY1wiLFxuICAgICAgXCJTeW5lcmdpemVkXCIsXG4gICAgICBcIlRlYW0tb3JpZW50ZWRcIixcbiAgICAgIFwiVG90YWxcIixcbiAgICAgIFwiVHJpcGxlLWJ1ZmZlcmVkXCIsXG4gICAgICBcIlVuaXZlcnNhbFwiLFxuICAgICAgXCJVcC1zaXplZFwiLFxuICAgICAgXCJVcGdyYWRhYmxlXCIsXG4gICAgICBcIlVzZXItY2VudHJpY1wiLFxuICAgICAgXCJVc2VyLWZyaWVuZGx5XCIsXG4gICAgICBcIlZlcnNhdGlsZVwiLFxuICAgICAgXCJWaXJ0dWFsXCIsXG4gICAgICBcIlZpc2lvbmFyeVwiLFxuICAgICAgXCJWaXNpb24tb3JpZW50ZWRcIlxuICAgIF0sXG4gICAgXCJkZXNjcmlwdG9yXCI6W1xuICAgICAgXCIyNCBob3VyXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiM3JkIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNHRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNXRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNnRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiYWN0dWF0aW5nXCIsXG4gICAgICBcImFuYWx5emluZ1wiLFxuICAgICAgXCJhc3ltbWV0cmljXCIsXG4gICAgICBcImFzeW5jaHJvbm91c1wiLFxuICAgICAgXCJhdHRpdHVkZS1vcmllbnRlZFwiLFxuICAgICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgICBcImJhbmR3aWR0aC1tb25pdG9yZWRcIixcbiAgICAgIFwiYmktZGlyZWN0aW9uYWxcIixcbiAgICAgIFwiYmlmdXJjYXRlZFwiLFxuICAgICAgXCJib3R0b20tbGluZVwiLFxuICAgICAgXCJjbGVhci10aGlua2luZ1wiLFxuICAgICAgXCJjbGllbnQtZHJpdmVuXCIsXG4gICAgICBcImNsaWVudC1zZXJ2ZXJcIixcbiAgICAgIFwiY29oZXJlbnRcIixcbiAgICAgIFwiY29oZXNpdmVcIixcbiAgICAgIFwiY29tcG9zaXRlXCIsXG4gICAgICBcImNvbnRleHQtc2Vuc2l0aXZlXCIsXG4gICAgICBcImNvbnRleHR1YWxseS1iYXNlZFwiLFxuICAgICAgXCJjb250ZW50LWJhc2VkXCIsXG4gICAgICBcImRlZGljYXRlZFwiLFxuICAgICAgXCJkZW1hbmQtZHJpdmVuXCIsXG4gICAgICBcImRpZGFjdGljXCIsXG4gICAgICBcImRpcmVjdGlvbmFsXCIsXG4gICAgICBcImRpc2NyZXRlXCIsXG4gICAgICBcImRpc2ludGVybWVkaWF0ZVwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcImVjby1jZW50cmljXCIsXG4gICAgICBcImVtcG93ZXJpbmdcIixcbiAgICAgIFwiZW5jb21wYXNzaW5nXCIsXG4gICAgICBcImV2ZW4ta2VlbGVkXCIsXG4gICAgICBcImV4ZWN1dGl2ZVwiLFxuICAgICAgXCJleHBsaWNpdFwiLFxuICAgICAgXCJleHVkaW5nXCIsXG4gICAgICBcImZhdWx0LXRvbGVyYW50XCIsXG4gICAgICBcImZvcmVncm91bmRcIixcbiAgICAgIFwiZnJlc2gtdGhpbmtpbmdcIixcbiAgICAgIFwiZnVsbC1yYW5nZVwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiZ3JpZC1lbmFibGVkXCIsXG4gICAgICBcImhldXJpc3RpY1wiLFxuICAgICAgXCJoaWdoLWxldmVsXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcImhvbW9nZW5lb3VzXCIsXG4gICAgICBcImh1bWFuLXJlc291cmNlXCIsXG4gICAgICBcImh5YnJpZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwiaW5jcmVtZW50YWxcIixcbiAgICAgIFwiaW50YW5naWJsZVwiLFxuICAgICAgXCJpbnRlcmFjdGl2ZVwiLFxuICAgICAgXCJpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwibGVhZGluZyBlZGdlXCIsXG4gICAgICBcImxvY2FsXCIsXG4gICAgICBcImxvZ2lzdGljYWxcIixcbiAgICAgIFwibWF4aW1pemVkXCIsXG4gICAgICBcIm1ldGhvZGljYWxcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJtb2JpbGVcIixcbiAgICAgIFwibW9kdWxhclwiLFxuICAgICAgXCJtb3RpdmF0aW5nXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGktc3RhdGVcIixcbiAgICAgIFwibXVsdGktdGFza2luZ1wiLFxuICAgICAgXCJuYXRpb25hbFwiLFxuICAgICAgXCJuZWVkcy1iYXNlZFwiLFxuICAgICAgXCJuZXV0cmFsXCIsXG4gICAgICBcIm5leHQgZ2VuZXJhdGlvblwiLFxuICAgICAgXCJub24tdm9sYXRpbGVcIixcbiAgICAgIFwib2JqZWN0LW9yaWVudGVkXCIsXG4gICAgICBcIm9wdGltYWxcIixcbiAgICAgIFwib3B0aW1pemluZ1wiLFxuICAgICAgXCJyYWRpY2FsXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJyZWNpcHJvY2FsXCIsXG4gICAgICBcInJlZ2lvbmFsXCIsXG4gICAgICBcInJlc3BvbnNpdmVcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwic2Vjb25kYXJ5XCIsXG4gICAgICBcInNvbHV0aW9uLW9yaWVudGVkXCIsXG4gICAgICBcInN0YWJsZVwiLFxuICAgICAgXCJzdGF0aWNcIixcbiAgICAgIFwic3lzdGVtYXRpY1wiLFxuICAgICAgXCJzeXN0ZW1pY1wiLFxuICAgICAgXCJzeXN0ZW0td29ydGh5XCIsXG4gICAgICBcInRhbmdpYmxlXCIsXG4gICAgICBcInRlcnRpYXJ5XCIsXG4gICAgICBcInRyYW5zaXRpb25hbFwiLFxuICAgICAgXCJ1bmlmb3JtXCIsXG4gICAgICBcInVwd2FyZC10cmVuZGluZ1wiLFxuICAgICAgXCJ1c2VyLWZhY2luZ1wiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ3ZWItZW5hYmxlZFwiLFxuICAgICAgXCJ3ZWxsLW1vZHVsYXRlZFwiLFxuICAgICAgXCJ6ZXJvIGFkbWluaXN0cmF0aW9uXCIsXG4gICAgICBcInplcm8gZGVmZWN0XCIsXG4gICAgICBcInplcm8gdG9sZXJhbmNlXCJcbiAgICBdLFxuICAgIFwibm91blwiOiBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiY2xpY2tzLWFuZC1tb3J0YXJcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwidmVydGljYWxcIixcbiAgICAgIFwicHJvYWN0aXZlXCIsXG4gICAgICBcInJvYnVzdFwiLFxuICAgICAgXCJyZXZvbHV0aW9uYXJ5XCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcImxlYWRpbmctZWRnZVwiLFxuICAgICAgXCJpbm5vdmF0aXZlXCIsXG4gICAgICBcImludHVpdGl2ZVwiLFxuICAgICAgXCJzdHJhdGVnaWNcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcInN0aWNreVwiLFxuICAgICAgXCJvbmUtdG8tb25lXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiZW5kLXRvLWVuZFwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiQjJCXCIsXG4gICAgICBcIkIyQ1wiLFxuICAgICAgXCJncmFudWxhclwiLFxuICAgICAgXCJmcmljdGlvbmxlc3NcIixcbiAgICAgIFwidmlydHVhbFwiLFxuICAgICAgXCJ2aXJhbFwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcIjI0LzM2NVwiLFxuICAgICAgXCJiZXN0LW9mLWJyZWVkXCIsXG4gICAgICBcImtpbGxlclwiLFxuICAgICAgXCJtYWduZXRpY1wiLFxuICAgICAgXCJibGVlZGluZy1lZGdlXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImRvdC1jb21cIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50XCIsXG4gICAgICBcImZyb250LWVuZFwiLFxuICAgICAgXCJkaXN0cmlidXRlZFwiLFxuICAgICAgXCJzZWFtbGVzc1wiLFxuICAgICAgXCJleHRlbnNpYmxlXCIsXG4gICAgICBcInR1cm4ta2V5XCIsXG4gICAgICBcIndvcmxkLWNsYXNzXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcImNyb3NzLW1lZGlhXCIsXG4gICAgICBcInN5bmVyZ2lzdGljXCIsXG4gICAgICBcImJyaWNrcy1hbmQtY2xpY2tzXCIsXG4gICAgICBcIm91dC1vZi10aGUtYm94XCIsXG4gICAgICBcImVudGVycHJpc2VcIixcbiAgICAgIFwiaW50ZWdyYXRlZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwid2lyZWxlc3NcIixcbiAgICAgIFwidHJhbnNwYXJlbnRcIixcbiAgICAgIFwibmV4dC1nZW5lcmF0aW9uXCIsXG4gICAgICBcImN1dHRpbmctZWRnZVwiLFxuICAgICAgXCJ1c2VyLWNlbnRyaWNcIixcbiAgICAgIFwidmlzaW9uYXJ5XCIsXG4gICAgICBcImN1c3RvbWl6ZWRcIixcbiAgICAgIFwidWJpcXVpdG91c1wiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwiY29tcGVsbGluZ1wiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJyaWNoXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcInN5bmVyZ2llc1wiLFxuICAgICAgXCJ3ZWItcmVhZGluZXNzXCIsXG4gICAgICBcInBhcmFkaWdtc1wiLFxuICAgICAgXCJtYXJrZXRzXCIsXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZXNcIixcbiAgICAgIFwicGxhdGZvcm1zXCIsXG4gICAgICBcImluaXRpYXRpdmVzXCIsXG4gICAgICBcImNoYW5uZWxzXCIsXG4gICAgICBcImV5ZWJhbGxzXCIsXG4gICAgICBcImNvbW11bml0aWVzXCIsXG4gICAgICBcIlJPSVwiLFxuICAgICAgXCJzb2x1dGlvbnNcIixcbiAgICAgIFwiZS10YWlsZXJzXCIsXG4gICAgICBcImUtc2VydmljZXNcIixcbiAgICAgIFwiYWN0aW9uLWl0ZW1zXCIsXG4gICAgICBcInBvcnRhbHNcIixcbiAgICAgIFwibmljaGVzXCIsXG4gICAgICBcInRlY2hub2xvZ2llc1wiLFxuICAgICAgXCJjb250ZW50XCIsXG4gICAgICBcInZvcnRhbHNcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW5jZVwiLFxuICAgICAgXCJyZWxhdGlvbnNoaXBzXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZXNcIixcbiAgICAgIFwiaW50ZXJmYWNlc1wiLFxuICAgICAgXCJlLW1hcmtldHNcIixcbiAgICAgIFwiZS1jb21tZXJjZVwiLFxuICAgICAgXCJzeXN0ZW1zXCIsXG4gICAgICBcImJhbmR3aWR0aFwiLFxuICAgICAgXCJpbmZvbWVkaWFyaWVzXCIsXG4gICAgICBcIm1vZGVsc1wiLFxuICAgICAgXCJtaW5kc2hhcmVcIixcbiAgICAgIFwiZGVsaXZlcmFibGVzXCIsXG4gICAgICBcInVzZXJzXCIsXG4gICAgICBcInNjaGVtYXNcIixcbiAgICAgIFwibmV0d29ya3NcIixcbiAgICAgIFwiYXBwbGljYXRpb25zXCIsXG4gICAgICBcIm1ldHJpY3NcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiZXhwZXJpZW5jZXNcIixcbiAgICAgIFwid2ViIHNlcnZpY2VzXCIsXG4gICAgICBcIm1ldGhvZG9sb2dpZXNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IGFuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5wbC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcInBsXCIsXG4gICAgXCJjb20ucGxcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnBsLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xucGwucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMTItIyMjLSMjLSMjXCIsXG4gICAgXCIxMy0jIyMtIyMtIyNcIixcbiAgICBcIjE0LSMjIy0jIy0jI1wiLFxuICAgIFwiMTUtIyMjLSMjLSMjXCIsXG4gICAgXCIxNi0jIyMtIyMtIyNcIixcbiAgICBcIjE3LSMjIy0jIy0jI1wiLFxuICAgIFwiMTgtIyMjLSMjLSMjXCIsXG4gICAgXCIyMi0jIyMtIyMtIyNcIixcbiAgICBcIjIzLSMjIy0jIy0jI1wiLFxuICAgIFwiMjQtIyMjLSMjLSMjXCIsXG4gICAgXCIyNS0jIyMtIyMtIyNcIixcbiAgICBcIjI5LSMjIy0jIy0jI1wiLFxuICAgIFwiMzItIyMjLSMjLSMjXCIsXG4gICAgXCIzMy0jIyMtIyMtIyNcIixcbiAgICBcIjM0LSMjIy0jIy0jI1wiLFxuICAgIFwiNDEtIyMjLSMjLSMjXCIsXG4gICAgXCI0Mi0jIyMtIyMtIyNcIixcbiAgICBcIjQzLSMjIy0jIy0jI1wiLFxuICAgIFwiNDQtIyMjLSMjLSMjXCIsXG4gICAgXCI0Ni0jIyMtIyMtIyNcIixcbiAgICBcIjQ4LSMjIy0jIy0jI1wiLFxuICAgIFwiNTItIyMjLSMjLSMjXCIsXG4gICAgXCI1NC0jIyMtIyMtIyNcIixcbiAgICBcIjU1LSMjIy0jIy0jI1wiLFxuICAgIFwiNTYtIyMjLSMjLSMjXCIsXG4gICAgXCI1OC0jIyMtIyMtIyNcIixcbiAgICBcIjU5LSMjIy0jIy0jI1wiLFxuICAgIFwiNjEtIyMjLSMjLSMjXCIsXG4gICAgXCI2Mi0jIyMtIyMtIyNcIixcbiAgICBcIjYzLSMjIy0jIy0jI1wiLFxuICAgIFwiNjUtIyMjLSMjLSMjXCIsXG4gICAgXCI2Ny0jIyMtIyMtIyNcIixcbiAgICBcIjY4LSMjIy0jIy0jI1wiLFxuICAgIFwiNzEtIyMjLSMjLSMjXCIsXG4gICAgXCI3NC0jIyMtIyMtIyNcIixcbiAgICBcIjc1LSMjIy0jIy0jI1wiLFxuICAgIFwiNzYtIyMjLSMjLSMjXCIsXG4gICAgXCI3Ny0jIyMtIyMtIyNcIixcbiAgICBcIjgxLSMjIy0jIy0jI1wiLFxuICAgIFwiODItIyMjLSMjLSMjXCIsXG4gICAgXCI4My0jIyMtIyMtIyNcIixcbiAgICBcIjg0LSMjIy0jIy0jI1wiLFxuICAgIFwiODUtIyMjLSMjLSMjXCIsXG4gICAgXCI4Ni0jIyMtIyMtIyNcIixcbiAgICBcIjg3LSMjIy0jIy0jI1wiLFxuICAgIFwiODktIyMjLSMjLSMjXCIsXG4gICAgXCI5MS0jIyMtIyMtIyNcIixcbiAgICBcIjk0LSMjIy0jIy0jI1wiLFxuICAgIFwiOTUtIyMjLSMjLSMjXCJcbiAgXVxufTtcbnBsLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCI1MC0jIyMtIyMtIyNcIixcbiAgICBcIjUxLSMjIy0jIy0jI1wiLFxuICAgIFwiNTMtIyMjLSMjLSMjXCIsXG4gICAgXCI1Ny0jIyMtIyMtIyNcIixcbiAgICBcIjYwLSMjIy0jIy0jI1wiLFxuICAgIFwiNjYtIyMjLSMjLSMjXCIsXG4gICAgXCI2OS0jIyMtIyMtIyNcIixcbiAgICBcIjcyLSMjIy0jIy0jI1wiLFxuICAgIFwiNzMtIyMjLSMjLSMjXCIsXG4gICAgXCI3OC0jIyMtIyMtIyNcIixcbiAgICBcIjc5LSMjIy0jIy0jI1wiLFxuICAgIFwiODgtIyMjLSMjLSMjXCJcbiAgXVxufTtcbiIsInZhciBwdF9CUiA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHB0X0JSO1xucHRfQlIudGl0bGUgPSBcIlBvcnR1Z3Vlc2UgKEJyYXppbClcIjtcbnB0X0JSLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiTm92YVwiLFxuICAgIFwiVmVsaGFcIixcbiAgICBcIkdyYW5kZVwiLFxuICAgIFwiVmlsYVwiLFxuICAgIFwiTXVuaWPDrXBpbyBkZVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiZG8gRGVzY29iZXJ0b1wiLFxuICAgIFwiZGUgTm9zc2EgU2VuaG9yYVwiLFxuICAgIFwiZG8gTm9ydGVcIixcbiAgICBcImRvIFN1bFwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmVnYW5pc3TDo29cIixcbiAgICBcIkFsYsOibmlhXCIsXG4gICAgXCJBbGfDqXJpYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGlndWEgYW5kIEJhcmJhZGFcIixcbiAgICBcIkFyZ2VudGluYVwiLFxuICAgIFwiQXJtw6puaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0csOhbGlhXCIsXG4gICAgXCLDgXVzdHJpYVwiLFxuICAgIFwiQWx6ZXJiYWrDo29cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhcsOpbVwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb1wiLFxuICAgIFwiQmVsZ3JhZG9cIixcbiAgICBcIkLDqWxnaWNhXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbMOtdmlhXCIsXG4gICAgXCJCw7RzbmlhXCIsXG4gICAgXCJCb3R1YXN1bmFcIixcbiAgICBcIkJvdXZldG9pYVwiLFxuICAgIFwiQnJhc2lsXCIsXG4gICAgXCJBcnF1aXDDqWxhZ28gZGUgQ2hhZ29zXCIsXG4gICAgXCJJbGhhcyBWaXJnZW5zXCIsXG4gICAgXCJCcnVuZWlcIixcbiAgICBcIkJ1bGfDoXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1iw7NqaWFcIixcbiAgICBcIkNhbWFyw7Vlc1wiLFxuICAgIFwiQ2FuYWTDoVwiLFxuICAgIFwiQ2FibyBWZXJkZVwiLFxuICAgIFwiSWxoYXMgQ2FpbWFuXCIsXG4gICAgXCJSZXDDumJsaWNhIGRhIMOBZnJpY2EgQ2VudHJhbFwiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJJbGhhcyBOYXRhbFwiLFxuICAgIFwiSWxoYXMgQ29jb3NcIixcbiAgICBcIkNvbMO0bWJpYVwiLFxuICAgIFwiQ29tb3Jvc1wiLFxuICAgIFwiQ29uZ29cIixcbiAgICBcIklsaGFzIENvb2tcIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkNvc3RhIGRvIE1hcmZpbVwiLFxuICAgIFwiQ3Jvw6FjaWFcIixcbiAgICBcIkN1YmFcIixcbiAgICBcIkN5cHJ1c1wiLFxuICAgIFwiUmVww7pibGljYSBUY2hlY2FcIixcbiAgICBcIkRpbmFtYXJjYVwiLFxuICAgIFwiRGppYm91dGlcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJSZXDDumJsaWNhIERvbWluaWNhbmFcIixcbiAgICBcIkVxdWFkb3JcIixcbiAgICBcIkVnaXRvXCIsXG4gICAgXCJFbCBTYWx2YWRvclwiLFxuICAgIFwiR3VpbsOpIEVxdWF0b3JpYWxcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdMO0bmlhXCIsXG4gICAgXCJFdGnDs3BpYVwiLFxuICAgIFwiSWxoYXMgRmFyb2VcIixcbiAgICBcIk1hbHZpbmFzXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaW5sw6JuZGlhXCIsXG4gICAgXCJGcmFuw6dhXCIsXG4gICAgXCJHdWluw6kgRnJhbmNlc2FcIixcbiAgICBcIlBvbGluw6lzaWEgRnJhbmNlc2FcIixcbiAgICBcIkdhYsOjb1wiLFxuICAgIFwiR8OibWJpYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiQWxlbWFuaGFcIixcbiAgICBcIkdhbmFcIixcbiAgICBcIkdpYnJhbHRhclwiLFxuICAgIFwiR3LDqWNpYVwiLFxuICAgIFwiR3JvZWzDom5kaWFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIkd1YWRhbHVwZVwiLFxuICAgIFwiR3Vhbm9cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3Vlcm5zZXlcIixcbiAgICBcIkd1aW7DqVwiLFxuICAgIFwiR3VpbsOpLUJpc3NhdVwiLFxuICAgIFwiR3VpYW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXG4gICAgXCJWYXRpY2Fub1wiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmcgS29uZ1wiLFxuICAgIFwiSHVuZ3JpYVwiLFxuICAgIFwiSWNlbGFuZFwiLFxuICAgIFwiw41uZGlhXCIsXG4gICAgXCJJbmRvbsOpc2lhXCIsXG4gICAgXCJJcsOjXCIsXG4gICAgXCJJcmFxdWVcIixcbiAgICBcIklybGFuZGFcIixcbiAgICBcIklsaGEgZGUgTWFuXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkl0w6FsaWFcIixcbiAgICBcIkphbWFpY2FcIixcbiAgICBcIkphcMOjb1wiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3Jkw6JuaWFcIixcbiAgICBcIkNhemFxdWlzdMOjb1wiLFxuICAgIFwiUXXDqm5pYVwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIkNvcmVpYSBkbyBOb3J0ZVwiLFxuICAgIFwiQ29yZWlhIGRvIFN1bFwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJLeXJneXogUmVwdWJsaWNcIixcbiAgICBcIlJlcMO6YmxpY2EgRGVtb2Nyw6F0aWNhIGRlIExhbyBQZW9wbGVcIixcbiAgICBcIkxhdHZpYVwiLFxuICAgIFwiTMOtYmFub1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGliw6lyaWFcIixcbiAgICBcIkxpYnlhbiBBcmFiIEphbWFoaXJpeWFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdHXDom5pYVwiLFxuICAgIFwiTHV4ZW1idXJnb1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkw7RuaWFcIixcbiAgICBcIk1hZGFnYXNjYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsw6FzaWFcIixcbiAgICBcIk1hbGRpdmVzXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiSWxoYXMgTWFyc2hhbGxcIixcbiAgICBcIk1hcnRpbmljYVwiLFxuICAgIFwiTWF1cml0w6JuaWFcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTcOpeGljb1wiLFxuICAgIFwiTWljcm9uw6lzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIk3DtG5hY29cIixcbiAgICBcIk1vbmfDs2xpYVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTWFycm9jb3NcIixcbiAgICBcIk1vw6dhbWJpcXVlXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkFudGlsaGFzIEhvbGFuZGVzYXNcIixcbiAgICBcIkhvbGFuZGFcIixcbiAgICBcIk5vdmEgQ2FsZWRvbmlhXCIsXG4gICAgXCJOb3ZhIFplbMOibmRpYVwiLFxuICAgIFwiTmljYXLDoWd1YVwiLFxuICAgIFwiTmlnw6lyaWFcIixcbiAgICBcIk5pdWVcIixcbiAgICBcIklsaGEgTm9yZm9sa1wiLFxuICAgIFwiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzXCIsXG4gICAgXCJOb3J1ZWdhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYXF1aXN0w6NvXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiVGVycml0w7NyaW8gZGEgUGFsZXN0aW5hXCIsXG4gICAgXCJQYW5hbcOhXCIsXG4gICAgXCJOb3ZhIEd1aW7DqSBQYXB1YVwiLFxuICAgIFwiUGFyYWd1YWlcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIkZpbGlwaW5hc1wiLFxuICAgIFwiUG9sw7RuaWFcIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIlJvbcOqbmlhXCIsXG4gICAgXCJSw7pzc2lhXCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlPDo28gQmFydG9sb21ldVwiLFxuICAgIFwiU2FudGEgSGVsZW5hXCIsXG4gICAgXCJTYW50YSBMw7pjaWFcIixcbiAgICBcIlNhaW50IE1hcnRpblwiLFxuICAgIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW8gVG9tw6kgZSBQcsOtbmNpcGVcIixcbiAgICBcIkFyw6FiaWEgU2F1ZGl0YVwiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU8OpcnZpYVwiLFxuICAgIFwiU2V5Y2hlbGxlc1wiLFxuICAgIFwiU2VycmEgTGVvYVwiLFxuICAgIFwiU2luZ2FwdXJhXCIsXG4gICAgXCJFc2xvdsOhcXVpYVwiLFxuICAgIFwiRXNsb3bDqm5pYVwiLFxuICAgIFwiSWxoYXMgU2Fsb23Do29cIixcbiAgICBcIlNvbcOhbGlhXCIsXG4gICAgXCLDgWZyaWNhIGRvIFN1bFwiLFxuICAgIFwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNwYW5oYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdWTDo29cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdmFsYmFyZCAmIEphbiBNYXllbiBJc2xhbmRzXCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlN1w6ljaWFcIixcbiAgICBcIlN1w63Dp2FcIixcbiAgICBcIlPDrXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppcXVpc3TDo29cIixcbiAgICBcIlRhbnrDom5pYVwiLFxuICAgIFwiVGFpbMOibmRpYVwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWTDoSBlIFRvYmFnb1wiLFxuICAgIFwiVHVuw61zaWFcIixcbiAgICBcIlR1cnF1aWFcIixcbiAgICBcIlR1cmNvbWVuaXN0w6NvXCIsXG4gICAgXCJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHNcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3LDom5pYVwiLFxuICAgIFwiRW1pcmFkb3Mgw4FyYWJlcyBVbmlkb3NcIixcbiAgICBcIlJlaW5vIFVuaWRvXCIsXG4gICAgXCJFc3RhZG9zIFVuaWRvcyBkYSBBbcOpcmljYVwiLFxuICAgIFwiRXN0YWRvcyBVbmlkb3MgZGFzIElsaGFzIFZpcmdlbnNcIixcbiAgICBcIlVydWd1YWlcIixcbiAgICBcIlV6YmVxdWlzdMOjb1wiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bsOjXCIsXG4gICAgXCJXYWxsaXMgYW5kIEZ1dHVuYVwiLFxuICAgIFwiU2FoYXJhXCIsXG4gICAgXCJZZW1lblwiLFxuICAgIFwiWsOibWJpYVwiLFxuICAgIFwiWmltYsOhYnVlXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJSdWFcIixcbiAgICBcIkF2ZW5pZGFcIixcbiAgICBcIlRyYXZlc3NhXCIsXG4gICAgXCJQb250ZVwiLFxuICAgIFwiQWxhbWVkYVwiLFxuICAgIFwiTWFyZ2luYWxcIixcbiAgICBcIlZpZWxhXCIsXG4gICAgXCJSb2RvdmlhXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHRvLiAjIyNcIixcbiAgICBcIlNvYnJhZG8gIyNcIixcbiAgICBcIkNhc2EgI1wiLFxuICAgIFwiTG90ZSAjI1wiLFxuICAgIFwiUXVhZHJhICMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJBY3JlXCIsXG4gICAgXCJBbGFnb2FzXCIsXG4gICAgXCJBbWFww6FcIixcbiAgICBcIkFtYXpvbmFzXCIsXG4gICAgXCJCYWhpYVwiLFxuICAgIFwiQ2VhcsOhXCIsXG4gICAgXCJEaXN0cml0byBGZWRlcmFsXCIsXG4gICAgXCJFc3DDrXJpdG8gU2FudG9cIixcbiAgICBcIkdvacOhc1wiLFxuICAgIFwiTWFyYW5ow6NvXCIsXG4gICAgXCJNYXRvIEdyb3Nzb1wiLFxuICAgIFwiTWF0byBHcm9zc28gZG8gU3VsXCIsXG4gICAgXCJNaW5hcyBHZXJhaXNcIixcbiAgICBcIlBhcsOhXCIsXG4gICAgXCJQYXJhw61iYVwiLFxuICAgIFwiUGFyYW7DoVwiLFxuICAgIFwiUGVybmFtYnVjb1wiLFxuICAgIFwiUGlhdcOtXCIsXG4gICAgXCJSaW8gZGUgSmFuZWlyb1wiLFxuICAgIFwiUmlvIEdyYW5kZSBkbyBOb3J0ZVwiLFxuICAgIFwiUmlvIEdyYW5kZSBkbyBTdWxcIixcbiAgICBcIlJvbmTDtG5pYVwiLFxuICAgIFwiUm9yYWltYVwiLFxuICAgIFwiU2FudGEgQ2F0YXJpbmFcIixcbiAgICBcIlPDo28gUGF1bG9cIixcbiAgICBcIlNlcmdpcGVcIixcbiAgICBcIlRvY2FudGluc1wiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBQ1wiLFxuICAgIFwiQUxcIixcbiAgICBcIkFQXCIsXG4gICAgXCJBTVwiLFxuICAgIFwiQkFcIixcbiAgICBcIkNFXCIsXG4gICAgXCJERlwiLFxuICAgIFwiRVNcIixcbiAgICBcIkdPXCIsXG4gICAgXCJNQVwiLFxuICAgIFwiTVRcIixcbiAgICBcIk1TXCIsXG4gICAgXCJQQVwiLFxuICAgIFwiUEJcIixcbiAgICBcIlBSXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUElcIixcbiAgICBcIlJKXCIsXG4gICAgXCJSTlwiLFxuICAgIFwiUlNcIixcbiAgICBcIlJPXCIsXG4gICAgXCJSUlwiLFxuICAgIFwiU0NcIixcbiAgICBcIlNQXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiQnJhc2lsXCJcbiAgXVxufTtcbnB0X0JSLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlMuQS5cIixcbiAgICBcIkxUREFcIixcbiAgICBcImUgQXNzb2NpYWRvc1wiLFxuICAgIFwiQ29tw6lyY2lvXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSBlICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbnB0X0JSLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCIsXG4gICAgXCJsaXZlLmNvbVwiLFxuICAgIFwiYm9sLmNvbS5iclwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJiclwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnB0X0JSLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF1cbn07XG5wdF9CUi5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxlc3NhbmRyYVwiLFxuICAgIFwiQWxleGFuZHJlXCIsXG4gICAgXCJBbGluZVwiLFxuICAgIFwiQW50w7RuaW9cIixcbiAgICBcIkJyZW5vXCIsXG4gICAgXCJCcnVuYVwiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDYXJsYVwiLFxuICAgIFwiQ8OpbGlhXCIsXG4gICAgXCJDZWPDrWxpYVwiLFxuICAgIFwiQ8Opc2FyXCIsXG4gICAgXCJEYW5pbG9cIixcbiAgICBcIkRhbGlsYVwiLFxuICAgIFwiRGVuZXZhbFwiLFxuICAgIFwiRWR1YXJkb1wiLFxuICAgIFwiRWR1YXJkYVwiLFxuICAgIFwiRXN0aGVyXCIsXG4gICAgXCJFbMOtc2lvXCIsXG4gICAgXCJGw6FiaW9cIixcbiAgICBcIkZhYnLDrWNpb1wiLFxuICAgIFwiRmFicsOtY2lhXCIsXG4gICAgXCJGw6lsaXhcIixcbiAgICBcIkZlbMOtY2lhXCIsXG4gICAgXCJGZWxpY2lhbm9cIixcbiAgICBcIkZyZWRlcmljb1wiLFxuICAgIFwiRmFiaWFub1wiLFxuICAgIFwiR3VzdGF2b1wiLFxuICAgIFwiR3VpbGhlcm1lXCIsXG4gICAgXCJHw7piaW9cIixcbiAgICBcIkhlaXRvclwiLFxuICAgIFwiSMOpbGlvXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzYWJlbGFcIixcbiAgICBcIsONZ29yXCIsXG4gICAgXCJKb8Ojb1wiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkrDumxpbyBDw6lzYXJcIixcbiAgICBcIkrDumxpb1wiLFxuICAgIFwiSsO6bGlhXCIsXG4gICAgXCJKYW5hw61uYVwiLFxuICAgIFwiS2FybGFcIixcbiAgICBcIktsw6liZXJcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMb3JlbmFcIixcbiAgICBcIkxvcnJhaW5lXCIsXG4gICAgXCJMYXJpc3NhXCIsXG4gICAgXCJMYWRpc2xhdVwiLFxuICAgIFwiTWFyY29zXCIsXG4gICAgXCJNZWlyZVwiLFxuICAgIFwiTWFyY2Vsb1wiLFxuICAgIFwiTWFyY2VsYVwiLFxuICAgIFwiTWFyZ2FyaWRhXCIsXG4gICAgXCJNw6lyY2lhXCIsXG4gICAgXCJNw6FyY2lhXCIsXG4gICAgXCJNYXJsaVwiLFxuICAgIFwiTW9yZ2FuYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk5vcmJlcnRvXCIsXG4gICAgXCJOYXTDoWxpYVwiLFxuICAgIFwiTmF0YW5pZWxcIixcbiAgICBcIk7DumJpYVwiLFxuICAgIFwiT2bDqWxpYVwiLFxuICAgIFwiUGF1bG9cIixcbiAgICBcIlBhdWxhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlJhdWxcIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFmYWVsYVwiLFxuICAgIFwiUmljYXJkb1wiLFxuICAgIFwiUm9iZXJ0b1wiLFxuICAgIFwiUm9iZXJ0YVwiLFxuICAgIFwiU8OtbHZpYVwiLFxuICAgIFwiU8OtbHZpYVwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlN1w6lsZW5cIixcbiAgICBcIlNhcmFcIixcbiAgICBcIlNhbHZhZG9yXCIsXG4gICAgXCJTaXJpbmV1XCIsXG4gICAgXCJUYWxpdGFcIixcbiAgICBcIlRlcnR1bGlhbm9cIixcbiAgICBcIlZpY2VudGVcIixcbiAgICBcIlbDrWN0b3JcIixcbiAgICBcIlZpdMOzcmlhXCIsXG4gICAgXCJZYW5nb1wiLFxuICAgIFwiWWFnb1wiLFxuICAgIFwiWXVyaVwiLFxuICAgIFwiV2FzaGluZ3RvblwiLFxuICAgIFwiV2FybGV5XCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiU2lsdmFcIixcbiAgICBcIlNvdXphXCIsXG4gICAgXCJDYXJ2YWxob1wiLFxuICAgIFwiU2FudG9zXCIsXG4gICAgXCJSZWlzXCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIkZyYW5jb1wiLFxuICAgIFwiQnJhZ2FcIixcbiAgICBcIk1hY2Vkb1wiLFxuICAgIFwiQmF0aXN0YVwiLFxuICAgIFwiQmFycm9zXCIsXG4gICAgXCJNb3JhZXNcIixcbiAgICBcIkNvc3RhXCIsXG4gICAgXCJQZXJlaXJhXCIsXG4gICAgXCJDYXJ2YWxob1wiLFxuICAgIFwiTWVsb1wiLFxuICAgIFwiU2FyYWl2YVwiLFxuICAgIFwiTm9ndWVpcmFcIixcbiAgICBcIk9saXZlaXJhXCIsXG4gICAgXCJNYXJ0aW5zXCIsXG4gICAgXCJNb3JlaXJhXCIsXG4gICAgXCJBbGJ1cXVlcnF1ZVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNyLlwiLFxuICAgIFwiU3JhLlwiLFxuICAgIFwiU3J0YS5cIixcbiAgICBcIkRyLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiTmV0b1wiLFxuICAgIFwiRmlsaG9cIlxuICBdXG59O1xucHRfQlIucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKCMjKSAjIyMjLSMjIyNcIixcbiAgICBcIis1NSAoIyMpICMjIyMtIyMjI1wiLFxuICAgIFwiKCMjKSAjIyMjIy0jIyMjXCJcbiAgXVxufTtcbiIsInZhciBydSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHJ1O1xucnUudGl0bGUgPSBcIlJ1c3NpYW5cIjtcbnJ1LnNlcGFyYXRvciA9IFwiINC4IFwiO1xucnUuYWRkcmVzcyA9IHtcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcItCQ0LLRgdGC0YDQsNC70LjRj1wiLFxuICAgIFwi0JDQstGB0YLRgNC40Y9cIixcbiAgICBcItCQ0LfQtdGA0LHQsNC50LTQttCw0L1cIixcbiAgICBcItCQ0LvQsdCw0L3QuNGPXCIsXG4gICAgXCLQkNC70LbQuNGAXCIsXG4gICAgXCLQkNC80LXRgNC40LrQsNC90YHQutC+0LUg0KHQsNC80L7QsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JDQvdCz0LjQu9GM0Y9cIixcbiAgICBcItCQ0L3Qs9C+0LvQsFwiLFxuICAgIFwi0JDQvdC00L7RgNGA0LBcIixcbiAgICBcItCQ0L3RgtCw0YDQutGC0LjQutCwICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQkNC90YLQuNCz0YPQsCDQuCDQkdCw0YDQsdGD0LTQsFwiLFxuICAgIFwi0JDQvdGC0LjQu9GM0YHQutC40LUg0J7RgdGC0YDQvtCy0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCQ0L7QvNGL0L3RjCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JDRgNCz0LXQvdGC0LjQvdCwXCIsXG4gICAgXCLQkNGA0LzQtdC90LjRj1wiLFxuICAgIFwi0JDRhNCz0LDQvdC40YHRgtCw0L1cIixcbiAgICBcItCR0LDQs9Cw0LzRgdC60LjQtSDQntGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JHQsNC90LPQu9Cw0LTQtdGIXCIsXG4gICAgXCLQkdCw0YDQsdCw0LTQvtGBXCIsXG4gICAgXCLQkdCw0YXRgNC10LnQvVwiLFxuICAgIFwi0JHQtdC70LDRgNGD0YHRjFwiLFxuICAgIFwi0JHQtdC70LjQt1wiLFxuICAgIFwi0JHQtdC70YzQs9C40Y9cIixcbiAgICBcItCR0LXQvdC40L1cIixcbiAgICBcItCR0L7Qu9Cz0LDRgNC40Y9cIixcbiAgICBcItCR0L7Qu9C40LLQuNGPXCIsXG4gICAgXCLQkdC+0YHQvdC40Y8g0Lgg0JPQtdGA0YbQtdCz0L7QstC40L3QsFwiLFxuICAgIFwi0JHQvtGC0YHQstCw0L3QsFwiLFxuICAgIFwi0JHRgNCw0LfQuNC70LjRj1wiLFxuICAgIFwi0JHRgNGD0L3QtdC5XCIsXG4gICAgXCLQkdGD0YDQutC40L3QsC3QpNCw0YHQvlwiLFxuICAgIFwi0JHRg9GA0YPQvdC00LhcIixcbiAgICBcItCR0YPRgtCw0L1cIixcbiAgICBcItCS0LDQvdGD0LDRgtGDXCIsXG4gICAgXCLQktCw0YLQuNC60LDQvVwiLFxuICAgIFwi0JLQtdC70LjQutC+0LHRgNC40YLQsNC90LjRj1wiLFxuICAgIFwi0JLQtdC90LPRgNC40Y9cIixcbiAgICBcItCS0LXQvdC10YHRg9GN0LvQsFwiLFxuICAgIFwi0JLQvtGB0YLQvtGH0L3Ri9C5INCi0LjQvNC+0YBcIixcbiAgICBcItCS0YzQtdGC0L3QsNC8XCIsXG4gICAgXCLQk9Cw0LHQvtC9XCIsXG4gICAgXCLQk9Cw0LjRgtC4XCIsXG4gICAgXCLQk9Cw0LnQsNC90LBcIixcbiAgICBcItCT0LDQvNCx0LjRj1wiLFxuICAgIFwi0JPQsNC90LBcIixcbiAgICBcItCT0LLQsNC00LXQu9GD0L/QsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JPQstCw0YLQtdC80LDQu9CwXCIsXG4gICAgXCLQk9Cy0LjQsNC90LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCT0LLQuNC90LXRj1wiLFxuICAgIFwi0JPQstC40L3QtdGPLdCR0LjRgdCw0YNcIixcbiAgICBcItCT0LXRgNC80LDQvdC40Y9cIixcbiAgICBcItCT0L7QvdC00YPRgNCw0YFcIixcbiAgICBcItCT0YDQtdC90LDQtNCwXCIsXG4gICAgXCLQk9GA0LXRhtC40Y9cIixcbiAgICBcItCT0YDRg9C30LjRj1wiLFxuICAgIFwi0JTQsNC90LjRj1wiLFxuICAgIFwi0JTQttC40LHRg9GC0LhcIixcbiAgICBcItCU0L7QvNC40L3QuNC60LBcIixcbiAgICBcItCU0L7QvNC40L3QuNC60LDQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQldCz0LjQv9C10YJcIixcbiAgICBcItCX0LDQvNCx0LjRj1wiLFxuICAgIFwi0JfQuNC80LHQsNCx0LLQtVwiLFxuICAgIFwi0JjQt9GA0LDQuNC70YxcIixcbiAgICBcItCY0L3QtNC40Y9cIixcbiAgICBcItCY0L3QtNC+0L3QtdC30LjRj1wiLFxuICAgIFwi0JjQvtGA0LTQsNC90LjRj1wiLFxuICAgIFwi0JjRgNCw0LpcIixcbiAgICBcItCY0YDQsNC9XCIsXG4gICAgXCLQmNGA0LvQsNC90LTQuNGPXCIsXG4gICAgXCLQmNGB0LvQsNC90LTQuNGPXCIsXG4gICAgXCLQmNGB0L/QsNC90LjRj1wiLFxuICAgIFwi0JjRgtCw0LvQuNGPXCIsXG4gICAgXCLQmdC10LzQtdC9XCIsXG4gICAgXCLQmtCw0LHQvi3QktC10YDQtNC1XCIsXG4gICAgXCLQmtCw0LfQsNGF0YHRgtCw0L1cIixcbiAgICBcItCa0LDQvNCx0L7QtNC20LBcIixcbiAgICBcItCa0LDQvNC10YDRg9C9XCIsXG4gICAgXCLQmtCw0L3QsNC00LBcIixcbiAgICBcItCa0LDRgtCw0YBcIixcbiAgICBcItCa0LXQvdC40Y9cIixcbiAgICBcItCa0LjQv9GAXCIsXG4gICAgXCLQmtC40YDQuNCx0LDRgtC4XCIsXG4gICAgXCLQmtC40YLQsNC5XCIsXG4gICAgXCLQmtC+0LvRg9C80LHQuNGPXCIsXG4gICAgXCLQmtC+0LzQvtGA0YHQutC40LUg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCa0L7QvdCz0L5cIixcbiAgICBcItCU0LXQvNC+0LrRgNCw0YLQuNGH0LXRgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsFwiLFxuICAgIFwi0JrQvtGA0LXRjyAo0KHQtdCy0LXRgNC90LDRjylcIixcbiAgICBcItCa0L7RgNC10Y8gKNCu0LbQvdCw0Y8pXCIsXG4gICAgXCLQmtC+0YHQvtCy0L5cIixcbiAgICBcItCa0L7RgdGC0LAt0KDQuNC60LBcIixcbiAgICBcItCa0L7Rgi3QtCfQmNCy0YPQsNGAXCIsXG4gICAgXCLQmtGD0LHQsFwiLFxuICAgIFwi0JrRg9Cy0LXQudGCXCIsXG4gICAgXCLQmtGD0LrQsCDQvtGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JrRi9GA0LPRi9C30YHRgtCw0L1cIixcbiAgICBcItCb0LDQvtGBXCIsXG4gICAgXCLQm9Cw0YLQstC40Y9cIixcbiAgICBcItCb0LXRgdC+0YLQvlwiLFxuICAgIFwi0JvQuNCx0LXRgNC40Y9cIixcbiAgICBcItCb0LjQstCw0L1cIixcbiAgICBcItCb0LjQstC40Y9cIixcbiAgICBcItCb0LjRgtCy0LBcIixcbiAgICBcItCb0LjRhdGC0LXQvdGI0YLQtdC50L1cIixcbiAgICBcItCb0Y7QutGB0LXQvNCx0YPRgNCzXCIsXG4gICAgXCLQnNCw0LLRgNC40LrQuNC5XCIsXG4gICAgXCLQnNCw0LLRgNC40YLQsNC90LjRj1wiLFxuICAgIFwi0JzQsNC00LDQs9Cw0YHQutCw0YBcIixcbiAgICBcItCc0LDQutC10LTQvtC90LjRj1wiLFxuICAgIFwi0JzQsNC70LDQstC4XCIsXG4gICAgXCLQnNCw0LvQsNC50LfQuNGPXCIsXG4gICAgXCLQnNCw0LvQuFwiLFxuICAgIFwi0JzQsNC70YzQtNC40LLRi1wiLFxuICAgIFwi0JzQsNC70YzRgtCwXCIsXG4gICAgXCLQnNCw0YDRiNCw0LvQu9C+0LLRiyDQntGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JzQtdC60YHQuNC60LBcIixcbiAgICBcItCc0LjQutGA0L7QvdC10LfQuNGPXCIsXG4gICAgXCLQnNC+0LfQsNC80LHQuNC6XCIsXG4gICAgXCLQnNC+0LvQtNC+0LLQsFwiLFxuICAgIFwi0JzQvtC90LDQutC+XCIsXG4gICAgXCLQnNC+0L3Qs9C+0LvQuNGPXCIsXG4gICAgXCLQnNCw0YDQvtC60LrQvlwiLFxuICAgIFwi0JzRjNGP0L3QvNCwXCIsXG4gICAgXCLQndCw0LzQuNCx0LjRj1wiLFxuICAgIFwi0J3QsNGD0YDRg1wiLFxuICAgIFwi0J3QtdC/0LDQu1wiLFxuICAgIFwi0J3QuNCz0LXRgFwiLFxuICAgIFwi0J3QuNCz0LXRgNC40Y9cIixcbiAgICBcItCd0LjQtNC10YDQu9Cw0L3QtNGLXCIsXG4gICAgXCLQndC40LrQsNGA0LDQs9GD0LBcIixcbiAgICBcItCd0L7QstCw0Y8g0JfQtdC70LDQvdC00LjRj1wiLFxuICAgIFwi0J3QvtGA0LLQtdCz0LjRj1wiLFxuICAgIFwi0J7QsdGK0LXQtNC40L3QtdC90L3Ri9C1INCQ0YDQsNCx0YHQutC40LUg0K3QvNC40YDQsNGC0YtcIixcbiAgICBcItCe0LzQsNC9XCIsXG4gICAgXCLQn9Cw0LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQn9Cw0LvQsNGDXCIsXG4gICAgXCLQn9Cw0L3QsNC80LBcIixcbiAgICBcItCf0LDQv9GD0LAg4oCUINCd0L7QstCw0Y8g0JPQstC40L3QtdGPXCIsXG4gICAgXCLQn9Cw0YDQsNCz0LLQsNC5XCIsXG4gICAgXCLQn9C10YDRg1wiLFxuICAgIFwi0J/QvtC70YzRiNCwXCIsXG4gICAgXCLQn9C+0YDRgtGD0LPQsNC70LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQvtC90LPQvlwiLFxuICAgIFwi0KDQvtGB0YHQuNGPXCIsXG4gICAgXCLQoNGD0LDQvdC00LBcIixcbiAgICBcItCg0YPQvNGL0L3QuNGPXCIsXG4gICAgXCLQodCw0LvRjNCy0LDQtNC+0YBcIixcbiAgICBcItCh0LDQvNC+0LBcIixcbiAgICBcItCh0LDQvS3QnNCw0YDQuNC90L5cIixcbiAgICBcItCh0LDQvS3QotC+0LzQtSDQuCDQn9GA0LjQvdGB0LjQv9C4XCIsXG4gICAgXCLQodCw0YPQtNC+0LLRgdC60LDRjyDQkNGA0LDQstC40Y9cIixcbiAgICBcItCh0LLQsNC30LjQu9C10L3QtFwiLFxuICAgIFwi0KHQtdC50YjQtdC70YzRgdC60LjQtSDQvtGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0KHQtdC90LXQs9Cw0LtcIixcbiAgICBcItCh0LXQvdGCLdCS0LjQvdGB0LXQvdGCINC4INCT0YDQtdC90LDQtNC40L3Ri1wiLFxuICAgIFwi0KHQtdC90YIt0JrQuNGC0YLRgSDQuCDQndC10LLQuNGBXCIsXG4gICAgXCLQodC10L3Rgi3Qm9GO0YHQuNGPXCIsXG4gICAgXCLQodC10YDQsdC40Y9cIixcbiAgICBcItCh0LjQvdCz0LDQv9GD0YBcIixcbiAgICBcItCh0LjRgNC40Y9cIixcbiAgICBcItCh0LvQvtCy0LDQutC40Y9cIixcbiAgICBcItCh0LvQvtCy0LXQvdC40Y9cIixcbiAgICBcItCh0L7QtdC00LjQvdC10L3QvdGL0LUg0KjRgtCw0YLRiyDQkNC80LXRgNC40LrQuFwiLFxuICAgIFwi0KHQvtC70L7QvNC+0L3QvtCy0Ysg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCh0L7QvNCw0LvQuFwiLFxuICAgIFwi0KHRg9C00LDQvVwiLFxuICAgIFwi0KHRg9GA0LjQvdCw0LxcIixcbiAgICBcItCh0YzQtdGA0YDQsC3Qm9C10L7QvdC1XCIsXG4gICAgXCLQotCw0LTQttC40LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQotCw0LjQu9Cw0L3QtFwiLFxuICAgIFwi0KLQsNC50LLQsNC90YwgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0LDQvNC40Lst0JjQu9Cw0LwgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0LDQvdC30LDQvdC40Y9cIixcbiAgICBcItCi0ZHRgNC60YEg0Lgg0JrQsNC50LrQvtGBICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQotC+0LPQvlwiLFxuICAgIFwi0KLQvtC60LXQu9Cw0YMgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0L7QvdCz0LBcIixcbiAgICBcItCi0YDQuNC90LjQtNCw0LQg0Lgg0KLQvtCx0LDQs9C+XCIsXG4gICAgXCLQotGD0LLQsNC70YNcIixcbiAgICBcItCi0YPQvdC40YFcIixcbiAgICBcItCi0YPRgNC10YbQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KHQtdCy0LXRgNC90L7Qs9C+INCa0LjQv9GA0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0YPRgNC60LzQtdC90LjRgdGC0LDQvVwiLFxuICAgIFwi0KLRg9GA0YbQuNGPXCIsXG4gICAgXCLQo9Cz0LDQvdC00LBcIixcbiAgICBcItCj0LfQsdC10LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQo9C60YDQsNC40L3QsFwiLFxuICAgIFwi0KPRgNGD0LPQstCw0LlcIixcbiAgICBcItCk0LDRgNC10YDRgdC60LjQtSDQntGB0YLRgNC+0LLQsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0KTQuNC00LbQuFwiLFxuICAgIFwi0KTQuNC70LjQv9C/0LjQvdGLXCIsXG4gICAgXCLQpNC40L3Qu9GP0L3QtNC40Y9cIixcbiAgICBcItCk0YDQsNC90YbQuNGPXCIsXG4gICAgXCLQpNGA0LDQvdGG0YPQt9GB0LrQsNGPINCf0L7Qu9C40L3QtdC30LjRjyAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0KXQvtGA0LLQsNGC0LjRj1wiLFxuICAgIFwi0KbQtdC90YLRgNCw0LvRjNC90L7QsNGE0YDQuNC60LDQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQp9Cw0LRcIixcbiAgICBcItCn0LXRgNC90L7Qs9C+0YDQuNGPXCIsXG4gICAgXCLQp9C10YXQuNGPXCIsXG4gICAgXCLQp9C40LvQuFwiLFxuICAgIFwi0KjQstC10LnRhtCw0YDQuNGPXCIsXG4gICAgXCLQqNCy0LXRhtC40Y9cIixcbiAgICBcItCo0YDQuC3Qm9Cw0L3QutCwXCIsXG4gICAgXCLQrdC60LLQsNC00L7RgFwiLFxuICAgIFwi0K3QutCy0LDRgtC+0YDQuNCw0LvRjNC90LDRjyDQk9Cy0LjQvdC10Y9cIixcbiAgICBcItCt0YDQuNGC0YDQtdGPXCIsXG4gICAgXCLQrdGB0YLQvtC90LjRj1wiLFxuICAgIFwi0K3RhNC40L7Qv9C40Y9cIixcbiAgICBcItCu0LbQvdC+LdCQ0YTRgNC40LrQsNC90YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCv0LzQsNC50LrQsFwiLFxuICAgIFwi0K/Qv9C+0L3QuNGPXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcItGD0LsuXCIsXG4gICAgXCLRg9C70LjRhtCwXCIsXG4gICAgXCLQv9GA0L7RgdC/0LXQutGCXCIsXG4gICAgXCLQv9GALlwiLFxuICAgIFwi0L/Qu9C+0YnQsNC00YxcIixcbiAgICBcItC/0LsuXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCLQutCyLiAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JDQtNGL0LPQtdGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQkdCw0YjQutC+0YDRgtC+0YHRgtCw0L1cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCR0YPRgNGP0YLQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQkNC70YLQsNC5INCg0LXRgdC/0YPQsdC70LjQutCwINCU0LDQs9C10YHRgtCw0L1cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCY0L3Qs9GD0YjQtdGC0LjRj1wiLFxuICAgIFwi0JrQsNCx0LDRgNC00LjQvdC+LdCR0LDQu9C60LDRgNGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0LvQvNGL0LrQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0YDQsNGH0LDQtdCy0L4t0KfQtdGA0LrQtdGB0YHQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0YDQtdC70LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQvtC80LhcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCc0LDRgNC40Lkg0K3Qu1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JzQvtGA0LTQvtCy0LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KHQsNGF0LAgKNCv0LrRg9GC0LjRjylcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCh0LXQstC10YDQvdCw0Y8g0J7RgdC10YLQuNGPLdCQ0LvQsNC90LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KLQsNGC0LDRgNGB0YLQsNC9XCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQotGL0LLQsFwiLFxuICAgIFwi0KPQtNC80YPRgNGC0YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCl0LDQutCw0YHQuNGPXCIsXG4gICAgXCLQp9GD0LLQsNGI0YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCQ0LvRgtCw0LnRgdC60LjQuSDQutGA0LDQuVwiLFxuICAgIFwi0JrRgNCw0YHQvdC+0LTQsNGA0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCa0YDQsNGB0L3QvtGP0YDRgdC60LjQuSDQutGA0LDQuVwiLFxuICAgIFwi0J/RgNC40LzQvtGA0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCh0YLQsNCy0YDQvtC/0L7Qu9GM0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCl0LDQsdCw0YDQvtCy0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCQ0LzRg9GA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCQ0YDRhdCw0L3Qs9C10LvRjNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQkNGB0YLRgNCw0YXQsNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCR0LXQu9Cz0L7RgNC+0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JHRgNGP0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQu9Cw0LTQuNC80LjRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQktC+0LvQs9C+0LPRgNCw0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQvtC70L7Qs9C+0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQvtGA0L7QvdC10LbRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JjQstCw0L3QvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCY0YDQutGD0YLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQsNC70LjQvdC40LPRgNCw0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQsNC70YPQttGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtCw0LzRh9Cw0YLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQtdC80LXRgNC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQuNGA0L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtC+0YHRgtGA0L7QvNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtGD0YDQs9Cw0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrRg9GA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCb0LXQvdC40L3Qs9GA0LDQtNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQm9C40L/QtdGG0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQnNCw0LPQsNC00LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQnNC+0YHQutC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JzRg9GA0LzQsNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCd0LjQttC10LPQvtGA0L7QtNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQndC+0LLQs9C+0YDQvtC00YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCd0L7QstC+0YHQuNCx0LjRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQntC80YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCe0YDQtdC90LHRg9GA0LPRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J7RgNC70L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQn9C10L3Qt9C10L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J/QtdGA0LzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J/RgdC60L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQoNC+0YHRgtC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KDRj9C30LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQodCw0LzQsNGA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LDRgNCw0YLQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LDRhdCw0LvQuNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LLQtdGA0LTQu9C+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KHQvNC+0LvQtdC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCi0LDQvNCx0L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQotCy0LXRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQotC+0LzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLRg9C70YzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLRjtC80LXQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQo9C70YzRj9C90L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQp9C10LvRj9Cx0LjQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQp9C40YLQuNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCv0YDQvtGB0LvQsNCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCV0LLRgNC10LnRgdC60LDRjyDQsNCy0YLQvtC90L7QvNC90LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JDQs9C40L3RgdC60LjQuSDQkdGD0YDRj9GC0YHQutC40Lkg0LDQstGCLiDQvtC60YDRg9CzXCIsXG4gICAgXCLQmtC+0LzQuC3Qn9C10YDQvNGP0YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0JrQvtGA0Y/QutGB0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCd0LXQvdC10YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KLQsNC50LzRi9GA0YHQutC40LkgKNCU0L7Qu9Cz0LDQvdC+LdCd0LXQvdC10YbQutC40LkpINCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCj0YHRgtGMLdCe0YDQtNGL0L3RgdC60LjQuSDQkdGD0YDRj9GC0YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KXQsNC90YLRiy3QnNCw0L3RgdC40LnRgdC60LjQuSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQp9GD0LrQvtGC0YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0K3QstC10L3QutC40LnRgdC60LjQuSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQr9C80LDQu9C+LdCd0LXQvdC10YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KfQtdGH0LXQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCJcbiAgXSxcbiAgXCJzdHJlZXRfdGl0bGVcIjogW1xuICAgIFwi0KHQvtCy0LXRgtGB0LrQsNGPXCIsXG4gICAgXCLQnNC+0LvQvtC00LXQttC90LDRj1wiLFxuICAgIFwi0KbQtdC90YLRgNCw0LvRjNC90LDRj1wiLFxuICAgIFwi0KjQutC+0LvRjNC90LDRj1wiLFxuICAgIFwi0J3QvtCy0LDRj1wiLFxuICAgIFwi0KHQsNC00L7QstCw0Y9cIixcbiAgICBcItCb0LXRgdC90LDRj1wiLFxuICAgIFwi0J3QsNCx0LXRgNC10LbQvdCw0Y9cIixcbiAgICBcItCb0LXQvdC40L3QsFwiLFxuICAgIFwi0JzQuNGA0LBcIixcbiAgICBcItCe0LrRgtGP0LHRgNGM0YHQutCw0Y9cIixcbiAgICBcItCX0LXQu9C10L3QsNGPXCIsXG4gICAgXCLQmtC+0LzRgdC+0LzQvtC70YzRgdC60LDRj1wiLFxuICAgIFwi0JfQsNGA0LXRh9C90LDRj1wiLFxuICAgIFwi0J/QtdGA0LLQvtC80LDQudGB0LrQsNGPXCIsXG4gICAgXCLQk9Cw0LPQsNGA0LjQvdCwXCIsXG4gICAgXCLQn9C+0LvQtdCy0LDRj1wiLFxuICAgIFwi0JvRg9Cz0L7QstCw0Y9cIixcbiAgICBcItCf0LjQvtC90LXRgNGB0LrQsNGPXCIsXG4gICAgXCLQmtC40YDQvtCy0LBcIixcbiAgICBcItCu0LHQuNC70LXQudC90LDRj1wiLFxuICAgIFwi0KHQtdCy0LXRgNC90LDRj1wiLFxuICAgIFwi0J/RgNC+0LvQtdGC0LDRgNGB0LrQsNGPXCIsXG4gICAgXCLQodGC0LXQv9C90LDRj1wiLFxuICAgIFwi0J/Rg9GI0LrQuNC90LBcIixcbiAgICBcItCa0LDQu9C40L3QuNC90LBcIixcbiAgICBcItCu0LbQvdCw0Y9cIixcbiAgICBcItCa0L7Qu9GF0L7Qt9C90LDRj1wiLFxuICAgIFwi0KDQsNCx0L7Rh9Cw0Y9cIixcbiAgICBcItCh0L7Qu9C90LXRh9C90LDRj1wiLFxuICAgIFwi0JbQtdC70LXQt9C90L7QtNC+0YDQvtC20L3QsNGPXCIsXG4gICAgXCLQktC+0YHRgtC+0YfQvdCw0Y9cIixcbiAgICBcItCX0LDQstC+0LTRgdC60LDRj1wiLFxuICAgIFwi0KfQsNC/0LDQtdCy0LBcIixcbiAgICBcItCd0LDQs9C+0YDQvdCw0Y9cIixcbiAgICBcItCh0YLRgNC+0LjRgtC10LvQtdC5XCIsXG4gICAgXCLQkdC10YDQtdCz0L7QstCw0Y9cIixcbiAgICBcItCf0L7QsdC10LTRi1wiLFxuICAgIFwi0JPQvtGA0YzQutC+0LPQvlwiLFxuICAgIFwi0JrQvtC+0L/QtdGA0LDRgtC40LLQvdCw0Y9cIixcbiAgICBcItCa0YDQsNGB0L3QvtCw0YDQvNC10LnRgdC60LDRj1wiLFxuICAgIFwi0KHQvtCy0YXQvtC30L3QsNGPXCIsXG4gICAgXCLQoNC10YfQvdCw0Y9cIixcbiAgICBcItCo0LrQvtC70YzQvdGL0LlcIixcbiAgICBcItCh0L/QvtGA0YLQuNCy0L3QsNGPXCIsXG4gICAgXCLQntC30LXRgNC90LDRj1wiLFxuICAgIFwi0KHRgtGA0L7QuNGC0LXQu9GM0L3QsNGPXCIsXG4gICAgXCLQn9Cw0YDQutC+0LLQsNGPXCIsXG4gICAgXCLQp9C60LDQu9C+0LLQsFwiLFxuICAgIFwi0JzQuNGH0YPRgNC40L3QsFwiLFxuICAgIFwi0YDQtdGH0LXQvdGMINGD0LvQuNGGXCIsXG4gICAgXCLQn9C+0LTQs9C+0YDQvdCw0Y9cIixcbiAgICBcItCU0YDRg9C20LHRi1wiLFxuICAgIFwi0J/QvtGH0YLQvtCy0LDRj1wiLFxuICAgIFwi0J/QsNGA0YLQuNC30LDQvdGB0LrQsNGPXCIsXG4gICAgXCLQktC+0LrQt9Cw0LvRjNC90LDRj1wiLFxuICAgIFwi0JvQtdGA0LzQvtC90YLQvtCy0LBcIixcbiAgICBcItCh0LLQvtCx0L7QtNGLXCIsXG4gICAgXCLQlNC+0YDQvtC20L3QsNGPXCIsXG4gICAgXCLQlNCw0YfQvdCw0Y9cIixcbiAgICBcItCc0LDRj9C60L7QstGB0LrQvtCz0L5cIixcbiAgICBcItCX0LDQv9Cw0LTQvdCw0Y9cIixcbiAgICBcItCk0YDRg9C90LfQtVwiLFxuICAgIFwi0JTQt9C10YDQttC40L3RgdC60L7Qs9C+XCIsXG4gICAgXCLQnNC+0YHQutC+0LLRgdC60LDRj1wiLFxuICAgIFwi0KHQstC10YDQtNC70L7QstCwXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCy0LBcIixcbiAgICBcItCT0L7Qs9C+0LvRj1wiLFxuICAgIFwi0JrRgNCw0YHQvdCw0Y9cIixcbiAgICBcItCi0YDRg9C00L7QstCw0Y9cIixcbiAgICBcItCo0L7RgdGB0LXQudC90LDRj1wiLFxuICAgIFwi0KfQtdGF0L7QstCwXCIsXG4gICAgXCLQmtC+0LzQvNGD0L3QuNGB0YLQuNGH0LXRgdC60LDRj1wiLFxuICAgIFwi0KLRgNGD0LTQsFwiLFxuICAgIFwi0JrQvtC80LDRgNC+0LLQsFwiLFxuICAgIFwi0JzQsNGC0YDQvtGB0L7QstCwXCIsXG4gICAgXCLQntGB0YLRgNC+0LLRgdC60L7Qs9C+XCIsXG4gICAgXCLQodC+0YHQvdC+0LLQsNGPXCIsXG4gICAgXCLQmtC70YPQsdC90LDRj1wiLFxuICAgIFwi0JrRg9C50LHRi9GI0LXQstCwXCIsXG4gICAgXCLQmtGA0YPQv9GB0LrQvtC5XCIsXG4gICAgXCLQkdC10YDQtdC30L7QstCw0Y9cIixcbiAgICBcItCa0LDRgNC70LAg0JzQsNGA0LrRgdCwXCIsXG4gICAgXCI4INCc0LDRgNGC0LBcIixcbiAgICBcItCR0L7Qu9GM0L3QuNGH0L3QsNGPXCIsXG4gICAgXCLQodCw0LTQvtCy0YvQuVwiLFxuICAgIFwi0JjQvdGC0LXRgNC90LDRhtC40L7QvdCw0LvRjNC90LDRj1wiLFxuICAgIFwi0KHRg9Cy0L7RgNC+0LLQsFwiLFxuICAgIFwi0KbQstC10YLQvtGH0L3QsNGPXCIsXG4gICAgXCLQotGA0LDQutGC0L7QstCw0Y9cIixcbiAgICBcItCb0L7QvNC+0L3QvtGB0L7QstCwXCIsXG4gICAgXCLQk9C+0YDQvdCw0Y9cIixcbiAgICBcItCa0L7RgdC80L7QvdCw0LLRgtC+0LJcIixcbiAgICBcItCt0L3QtdGA0LPQtdGC0LjQutC+0LJcIixcbiAgICBcItCo0LXQstGH0LXQvdC60L5cIixcbiAgICBcItCS0LXRgdC10L3QvdGP0Y9cIixcbiAgICBcItCc0LXRhdCw0L3QuNC30LDRgtC+0YDQvtCyXCIsXG4gICAgXCLQmtC+0LzQvNGD0L3QsNC70YzQvdCw0Y9cIixcbiAgICBcItCb0LXRgdC90L7QuVwiLFxuICAgIFwiNDAg0LvQtdGCINCf0L7QsdC10LTRi1wiLFxuICAgIFwi0JzQsNC50YHQutCw0Y9cIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCLQnNC+0YHQutCy0LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YBcIixcbiAgICBcItCh0LDQvdC60YIt0J/QtdGC0LXRgNCx0YPRgNCzXCIsXG4gICAgXCLQndC+0LLQvtGB0LjQsdC40YDRgdC6XCIsXG4gICAgXCLQldC60LDRgtC10YDQuNC90LHRg9GA0LNcIixcbiAgICBcItCd0LjQttC90LjQuSDQndC+0LLQs9C+0YDQvtC0XCIsXG4gICAgXCLQodCw0LzQsNGA0LBcIixcbiAgICBcItCa0LDQt9Cw0L3RjFwiLFxuICAgIFwi0J7QvNGB0LpcIixcbiAgICBcItCn0LXQu9GP0LHQuNC90YHQulwiLFxuICAgIFwi0KDQvtGB0YLQvtCyLdC90LAt0JTQvtC90YNcIixcbiAgICBcItCj0YTQsFwiLFxuICAgIFwi0JLQvtC70LPQvtCz0YDQsNC0XCIsXG4gICAgXCLQn9C10YDQvNGMXCIsXG4gICAgXCLQmtGA0LDRgdC90L7Rj9GA0YHQulwiLFxuICAgIFwi0JLQvtGA0L7QvdC10LZcIixcbiAgICBcItCh0LDRgNCw0YLQvtCyXCIsXG4gICAgXCLQmtGA0LDRgdC90L7QtNCw0YBcIixcbiAgICBcItCi0L7Qu9GM0Y/RgtGC0LhcIixcbiAgICBcItCY0LbQtdCy0YHQulwiLFxuICAgIFwi0JHQsNGA0L3QsNGD0LtcIixcbiAgICBcItCj0LvRjNGP0L3QvtCy0YHQulwiLFxuICAgIFwi0KLRjtC80LXQvdGMXCIsXG4gICAgXCLQmNGA0LrRg9GC0YHQulwiLFxuICAgIFwi0JLQu9Cw0LTQuNCy0L7RgdGC0L7QulwiLFxuICAgIFwi0K/RgNC+0YHQu9Cw0LLQu9GMXCIsXG4gICAgXCLQpdCw0LHQsNGA0L7QstGB0LpcIixcbiAgICBcItCc0LDRhdCw0YfQutCw0LvQsFwiLFxuICAgIFwi0J7RgNC10L3QsdGD0YDQs1wiLFxuICAgIFwi0J3QvtCy0L7QutGD0LfQvdC10YbQulwiLFxuICAgIFwi0KLQvtC80YHQulwiLFxuICAgIFwi0JrQtdC80LXRgNC+0LLQvlwiLFxuICAgIFwi0KDRj9C30LDQvdGMXCIsXG4gICAgXCLQkNGB0YLRgNCw0YXQsNC90YxcIixcbiAgICBcItCf0LXQvdC30LBcIixcbiAgICBcItCb0LjQv9C10YbQulwiLFxuICAgIFwi0KLRg9C70LBcIixcbiAgICBcItCa0LjRgNC+0LJcIixcbiAgICBcItCn0LXQsdC+0LrRgdCw0YDRi1wiLFxuICAgIFwi0JrRg9GA0YHQulwiLFxuICAgIFwi0JHRgNGP0L3RgdC6bSDQnNCw0LPQvdC40YLQvtCz0L7RgNGB0LpcIixcbiAgICBcItCY0LLQsNC90L7QstC+XCIsXG4gICAgXCLQotCy0LXRgNGMXCIsXG4gICAgXCLQodGC0LDQstGA0L7Qv9C+0LvRjFwiLFxuICAgIFwi0JHQtdC70LPQvtGA0L7QtFwiLFxuICAgIFwi0KHQvtGH0LhcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tBZGRyZXNzLmNpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tBZGRyZXNzLnN0cmVldF90aXRsZX1cIixcbiAgICBcIiN7QWRkcmVzcy5zdHJlZXRfdGl0bGV9ICN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9LCAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCLQoNC+0YHRgdC40Y9cIlxuICBdXG59O1xucnUuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJ5YW5kZXgucnVcIixcbiAgICBcInlhLnJ1XCIsXG4gICAgXCJtYWlsLnJ1XCIsXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJydVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwi0YDRhFwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xucnUubmFtZSA9IHtcbiAgXCJtYWxlX2ZpcnN0X25hbWVcIjogW1xuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGAXCIsXG4gICAgXCLQkNC70LXQutGB0LXQuVwiLFxuICAgIFwi0JDQu9GM0LHQtdGA0YJcIixcbiAgICBcItCQ0L3QsNGC0L7Qu9C40LlcIixcbiAgICBcItCQ0L3QtNGA0LXQuVwiLFxuICAgIFwi0JDQvdGC0L7QvVwiLFxuICAgIFwi0JDRgNC60LDQtNC40LlcIixcbiAgICBcItCQ0YDRgdC10L3QuNC5XCIsXG4gICAgXCLQkNGA0YLRkdC8XCIsXG4gICAgXCLQkdC+0YDQuNGBXCIsXG4gICAgXCLQktCw0LTQuNC8XCIsXG4gICAgXCLQktCw0LvQtdC90YLQuNC9XCIsXG4gICAgXCLQktCw0LvQtdGA0LjQuVwiLFxuICAgIFwi0JLQsNGB0LjQu9C40LlcIixcbiAgICBcItCS0LjQutGC0L7RgFwiLFxuICAgIFwi0JLQuNGC0LDQu9C40LlcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YBcIixcbiAgICBcItCS0LvQsNC00LjRgdC70LDQslwiLFxuICAgIFwi0JLRj9GH0LXRgdC70LDQslwiLFxuICAgIFwi0JPQtdC90L3QsNC00LjQuVwiLFxuICAgIFwi0JPQtdC+0YDQs9C40LlcIixcbiAgICBcItCT0LXRgNC80LDQvVwiLFxuICAgIFwi0JPRgNC40LPQvtGA0LjQuVwiLFxuICAgIFwi0JTQsNC90LjQuNC7XCIsXG4gICAgXCLQlNC10L3QuNGBXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQuVwiLFxuICAgIFwi0JXQstCz0LXQvdC40LlcIixcbiAgICBcItCV0LPQvtGAXCIsXG4gICAgXCLQmNCy0LDQvVwiLFxuICAgIFwi0JjQs9C90LDRgtC40LlcIixcbiAgICBcItCY0LPQvtGA0YxcIixcbiAgICBcItCY0LvRjNGPXCIsXG4gICAgXCLQmtC+0L3RgdGC0LDQvdGC0LjQvVwiLFxuICAgIFwi0JvQsNCy0YDQtdC90YLQuNC5XCIsXG4gICAgXCLQm9C10L7QvdC40LRcIixcbiAgICBcItCb0YPQutCwXCIsXG4gICAgXCLQnNCw0LrQsNGAXCIsXG4gICAgXCLQnNCw0LrRgdC40LxcIixcbiAgICBcItCc0LDRgtCy0LXQuVwiLFxuICAgIFwi0JzQuNGF0LDQuNC7XCIsXG4gICAgXCLQndC40LrQuNGC0LBcIixcbiAgICBcItCd0LjQutC+0LvQsNC5XCIsXG4gICAgXCLQntC70LXQs1wiLFxuICAgIFwi0KDQvtC80LDQvVwiLFxuICAgIFwi0KHQtdC80ZHQvVwiLFxuICAgIFwi0KHQtdGA0LPQtdC5XCIsXG4gICAgXCLQodGC0LDQvdC40YHQu9Cw0LJcIixcbiAgICBcItCh0YLQtdC/0LDQvVwiLFxuICAgIFwi0KTRkdC00L7RgFwiLFxuICAgIFwi0K3QtNGD0LDRgNC0XCIsXG4gICAgXCLQrtGA0LjQuVwiLFxuICAgIFwi0K/RgNC+0YHQu9Cw0LJcIlxuICBdLFxuICBcIm1hbGVfbWlkZGxlX25hbWVcIjogW1xuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YdcIixcbiAgICBcItCQ0LvQtdC60YHQtdC10LLQuNGHXCIsXG4gICAgXCLQkNC70YzQsdC10YDRgtC+0LLQuNGHXCIsXG4gICAgXCLQkNC90LDRgtC+0LvRjNC10LLQuNGHXCIsXG4gICAgXCLQkNC90LTRgNC10LXQstC40YdcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCy0LjRh1wiLFxuICAgIFwi0JDRgNC60LDQtNGM0LXQstC40YdcIixcbiAgICBcItCQ0YDRgdC10L3RjNC10LLQuNGHXCIsXG4gICAgXCLQkNGA0YLRkdC80L7QstC40YdcIixcbiAgICBcItCR0L7RgNC40YHQvtCy0LjRh1wiLFxuICAgIFwi0JLQsNC00LjQvNC+0LLQuNGHXCIsXG4gICAgXCLQktCw0LvQtdC90YLQuNC90L7QstC40YdcIixcbiAgICBcItCS0LDQu9C10YDRjNC10LLQuNGHXCIsXG4gICAgXCLQktCw0YHQuNC70YzQtdCy0LjRh1wiLFxuICAgIFwi0JLQuNC60YLQvtGA0L7QstC40YdcIixcbiAgICBcItCS0LjRgtCw0LvRjNC10LLQuNGHXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QstC40YdcIixcbiAgICBcItCS0LvQsNC00LjRgdC70LDQstC+0LLQuNGHXCIsXG4gICAgXCLQktGP0YfQtdGB0LvQsNCy0L7QstC40YdcIixcbiAgICBcItCT0LXQvdC90LDQtNGM0LXQstC40YdcIixcbiAgICBcItCT0LXQvtGA0LPQuNC10LLQuNGHXCIsXG4gICAgXCLQk9C10YDQvNCw0L3QvtCy0LjRh1wiLFxuICAgIFwi0JPRgNC40LPQvtGA0YzQtdCy0LjRh1wiLFxuICAgIFwi0JTQsNC90LjQuNC70L7QstC40YdcIixcbiAgICBcItCU0LXQvdC40YHQvtCy0LjRh1wiLFxuICAgIFwi0JTQvNC40YLRgNC40LXQstC40YdcIixcbiAgICBcItCV0LLQs9C10L3RjNC10LLQuNGHXCIsXG4gICAgXCLQldCz0L7RgNC+0LLQuNGHXCIsXG4gICAgXCLQmNCy0LDQvdC+0LLQuNGHXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCy0LjRh1wiLFxuICAgIFwi0JjQs9C+0YDQtdCy0LjRh1wiLFxuICAgIFwi0JjQu9GM0LjRh1wiLFxuICAgIFwi0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRh1wiLFxuICAgIFwi0JvQsNCy0YDQtdC90YLRjNC10LLQuNGHXCIsXG4gICAgXCLQm9C10L7QvdC40LTQvtCy0LjRh1wiLFxuICAgIFwi0JvRg9C60LjRh1wiLFxuICAgIFwi0JzQsNC60LDRgNC+0LLQuNGHXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCy0LjRh1wiLFxuICAgIFwi0JzQsNGC0LLQtdC10LLQuNGHXCIsXG4gICAgXCLQnNC40YXQsNC50LvQvtCy0LjRh1wiLFxuICAgIFwi0J3QuNC60LjRgtC40YdcIixcbiAgICBcItCd0LjQutC+0LvQsNC10LLQuNGHXCIsXG4gICAgXCLQntC70LXQs9C+0LLQuNGHXCIsXG4gICAgXCLQoNC+0LzQsNC90L7QstC40YdcIixcbiAgICBcItCh0LXQvNGR0L3QvtCy0LjRh1wiLFxuICAgIFwi0KHQtdGA0LPQtdC10LLQuNGHXCIsXG4gICAgXCLQodGC0LDQvdC40YHQu9Cw0LLQvtCy0LjRh1wiLFxuICAgIFwi0KHRgtC10L/QsNC90L7QstC40YdcIixcbiAgICBcItCk0ZHQtNC+0YDQvtCy0LjRh1wiLFxuICAgIFwi0K3QtNGD0LDRgNC00L7QstC40YdcIixcbiAgICBcItCu0YDRjNC10LLQuNGHXCIsXG4gICAgXCLQr9GA0L7RgdC70LDQstC+0LLQuNGHXCJcbiAgXSxcbiAgXCJtYWxlX2xhc3RfbmFtZVwiOiBbXG4gICAgXCLQodC80LjRgNC90L7QslwiLFxuICAgIFwi0JjQstCw0L3QvtCyXCIsXG4gICAgXCLQmtGD0LfQvdC10YbQvtCyXCIsXG4gICAgXCLQn9C+0L/QvtCyXCIsXG4gICAgXCLQodC+0LrQvtC70L7QslwiLFxuICAgIFwi0JvQtdCx0LXQtNC10LJcIixcbiAgICBcItCa0L7Qt9C70L7QslwiLFxuICAgIFwi0J3QvtCy0LjQutC+0LJcIixcbiAgICBcItCc0L7RgNC+0LfQvtCyXCIsXG4gICAgXCLQn9C10YLRgNC+0LJcIixcbiAgICBcItCS0L7Qu9C60L7QslwiLFxuICAgIFwi0KHQvtC70L7QstGM0LXQslwiLFxuICAgIFwi0JLQsNGB0LjQu9GM0LXQslwiLFxuICAgIFwi0JfQsNC50YbQtdCyXCIsXG4gICAgXCLQn9Cw0LLQu9C+0LJcIixcbiAgICBcItCh0LXQvNC10L3QvtCyXCIsXG4gICAgXCLQk9C+0LvRg9Cx0LXQslwiLFxuICAgIFwi0JLQuNC90L7Qs9GA0LDQtNC+0LJcIixcbiAgICBcItCR0L7Qs9C00LDQvdC+0LJcIixcbiAgICBcItCS0L7RgNC+0LHRjNC10LJcIixcbiAgICBcItCk0LXQtNC+0YDQvtCyXCIsXG4gICAgXCLQnNC40YXQsNC50LvQvtCyXCIsXG4gICAgXCLQkdC10LvRj9C10LJcIixcbiAgICBcItCi0LDRgNCw0YHQvtCyXCIsXG4gICAgXCLQkdC10LvQvtCyXCIsXG4gICAgXCLQmtC+0LzQsNGA0L7QslwiLFxuICAgIFwi0J7RgNC70L7QslwiLFxuICAgIFwi0JrQuNGB0LXQu9C10LJcIixcbiAgICBcItCc0LDQutCw0YDQvtCyXCIsXG4gICAgXCLQkNC90LTRgNC10LXQslwiLFxuICAgIFwi0JrQvtCy0LDQu9C10LJcIixcbiAgICBcItCY0LvRjNC40L1cIixcbiAgICBcItCT0YPRgdC10LJcIixcbiAgICBcItCi0LjRgtC+0LJcIixcbiAgICBcItCa0YPQt9GM0LzQuNC9XCIsXG4gICAgXCLQmtGD0LTRgNGP0LLRhtC10LJcIixcbiAgICBcItCR0LDRgNCw0L3QvtCyXCIsXG4gICAgXCLQmtGD0LvQuNC60L7QslwiLFxuICAgIFwi0JDQu9C10LrRgdC10LXQslwiLFxuICAgIFwi0KHRgtC10L/QsNC90L7QslwiLFxuICAgIFwi0K/QutC+0LLQu9C10LJcIixcbiAgICBcItCh0L7RgNC+0LrQuNC9XCIsXG4gICAgXCLQodC10YDQs9C10LXQslwiLFxuICAgIFwi0KDQvtC80LDQvdC+0LJcIixcbiAgICBcItCX0LDRhdCw0YDQvtCyXCIsXG4gICAgXCLQkdC+0YDQuNGB0L7QslwiLFxuICAgIFwi0JrQvtGA0L7Qu9C10LJcIixcbiAgICBcItCT0LXRgNCw0YHQuNC80L7QslwiLFxuICAgIFwi0J/QvtC90L7QvNCw0YDQtdCyXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LJcIixcbiAgICBcItCb0LDQt9Cw0YDQtdCyXCIsXG4gICAgXCLQnNC10LTQstC10LTQtdCyXCIsXG4gICAgXCLQldGA0YjQvtCyXCIsXG4gICAgXCLQndC40LrQuNGC0LjQvVwiLFxuICAgIFwi0KHQvtCx0L7Qu9C10LJcIixcbiAgICBcItCg0Y/QsdC+0LJcIixcbiAgICBcItCf0L7Qu9GP0LrQvtCyXCIsXG4gICAgXCLQptCy0LXRgtC60L7QslwiLFxuICAgIFwi0JTQsNC90LjQu9C+0LJcIixcbiAgICBcItCW0YPQutC+0LJcIixcbiAgICBcItCk0YDQvtC70L7QslwiLFxuICAgIFwi0JbRg9GA0LDQstC70LXQslwiLFxuICAgIFwi0J3QuNC60L7Qu9Cw0LXQslwiLFxuICAgIFwi0JrRgNGL0LvQvtCyXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCyXCIsXG4gICAgXCLQodC40LTQvtGA0L7QslwiLFxuICAgIFwi0J7RgdC40L/QvtCyXCIsXG4gICAgXCLQkdC10LvQvtGD0YHQvtCyXCIsXG4gICAgXCLQpNC10LTQvtGC0L7QslwiLFxuICAgIFwi0JTQvtGA0L7RhNC10LXQslwiLFxuICAgIFwi0JXQs9C+0YDQvtCyXCIsXG4gICAgXCLQnNCw0YLQstC10LXQslwiLFxuICAgIFwi0JHQvtCx0YDQvtCyXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCyXCIsXG4gICAgXCLQmtCw0LvQuNC90LjQvVwiLFxuICAgIFwi0JDQvdC40YHQuNC80L7QslwiLFxuICAgIFwi0J/QtdGC0YPRhdC+0LJcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCyXCIsXG4gICAgXCLQotC40LzQvtGE0LXQtdCyXCIsXG4gICAgXCLQndC40LrQuNGE0L7RgNC+0LJcIixcbiAgICBcItCS0LXRgdC10LvQvtCyXCIsXG4gICAgXCLQpNC40LvQuNC/0L/QvtCyXCIsXG4gICAgXCLQnNCw0YDQutC+0LJcIixcbiAgICBcItCR0L7Qu9GM0YjQsNC60L7QslwiLFxuICAgIFwi0KHRg9GF0LDQvdC+0LJcIixcbiAgICBcItCc0LjRgNC+0L3QvtCyXCIsXG4gICAgXCLQqNC40YDRj9C10LJcIixcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgNC+0LJcIixcbiAgICBcItCa0L7QvdC+0LLQsNC70L7QslwiLFxuICAgIFwi0KjQtdGB0YLQsNC60L7QslwiLFxuICAgIFwi0JrQsNC30LDQutC+0LJcIixcbiAgICBcItCV0YTQuNC80L7QslwiLFxuICAgIFwi0JTQtdC90LjRgdC+0LJcIixcbiAgICBcItCT0YDQvtC80L7QslwiLFxuICAgIFwi0KTQvtC80LjQvVwiLFxuICAgIFwi0JTQsNCy0YvQtNC+0LJcIixcbiAgICBcItCc0LXQu9GM0L3QuNC60L7QslwiLFxuICAgIFwi0KnQtdGA0LHQsNC60L7QslwiLFxuICAgIFwi0JHQu9C40L3QvtCyXCIsXG4gICAgXCLQmtC+0LvQtdGB0L3QuNC60L7QslwiLFxuICAgIFwi0JrQsNGA0L/QvtCyXCIsXG4gICAgXCLQkNGE0LDQvdCw0YHRjNC10LJcIixcbiAgICBcItCS0LvQsNGB0L7QslwiLFxuICAgIFwi0JzQsNGB0LvQvtCyXCIsXG4gICAgXCLQmNGB0LDQutC+0LJcIixcbiAgICBcItCi0LjRhdC+0L3QvtCyXCIsXG4gICAgXCLQkNC60YHQtdC90L7QslwiLFxuICAgIFwi0JPQsNCy0YDQuNC70L7QslwiLFxuICAgIFwi0KDQvtC00LjQvtC90L7QslwiLFxuICAgIFwi0JrQvtGC0L7QslwiLFxuICAgIFwi0JPQvtGA0LHRg9C90L7QslwiLFxuICAgIFwi0JrRg9C00YDRj9GI0L7QslwiLFxuICAgIFwi0JHRi9C60L7QslwiLFxuICAgIFwi0JfRg9C10LJcIixcbiAgICBcItCi0YDQtdGC0YzRj9C60L7QslwiLFxuICAgIFwi0KHQsNCy0LXQu9GM0LXQslwiLFxuICAgIFwi0J/QsNC90L7QslwiLFxuICAgIFwi0KDRi9Cx0LDQutC+0LJcIixcbiAgICBcItCh0YPQstC+0YDQvtCyXCIsXG4gICAgXCLQkNCx0YDQsNC80L7QslwiLFxuICAgIFwi0JLQvtGA0L7QvdC+0LJcIixcbiAgICBcItCc0YPRhdC40L1cIixcbiAgICBcItCQ0YDRhdC40L/QvtCyXCIsXG4gICAgXCLQotGA0L7RhNC40LzQvtCyXCIsXG4gICAgXCLQnNCw0YDRgtGL0L3QvtCyXCIsXG4gICAgXCLQldC80LXQu9GM0Y/QvdC+0LJcIixcbiAgICBcItCT0L7RgNGI0LrQvtCyXCIsXG4gICAgXCLQp9C10YDQvdC+0LJcIixcbiAgICBcItCe0LLRh9C40L3QvdC40LrQvtCyXCIsXG4gICAgXCLQodC10LvQtdC30L3QtdCyXCIsXG4gICAgXCLQn9Cw0L3RhNC40LvQvtCyXCIsXG4gICAgXCLQmtC+0L/Ri9C70L7QslwiLFxuICAgIFwi0JzQuNGF0LXQtdCyXCIsXG4gICAgXCLQk9Cw0LvQutC40L1cIixcbiAgICBcItCd0LDQt9Cw0YDQvtCyXCIsXG4gICAgXCLQm9C+0LHQsNC90L7QslwiLFxuICAgIFwi0JvRg9C60LjQvVwiLFxuICAgIFwi0JHQtdC70Y/QutC+0LJcIixcbiAgICBcItCf0L7RgtCw0L/QvtCyXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCyXCIsXG4gICAgXCLQpdC+0YXQu9C+0LJcIixcbiAgICBcItCW0LTQsNC90L7QslwiLFxuICAgIFwi0J3QsNGD0LzQvtCyXCIsXG4gICAgXCLQqNC40LvQvtCyXCIsXG4gICAgXCLQktC+0YDQvtC90YbQvtCyXCIsXG4gICAgXCLQldGA0LzQsNC60L7QslwiLFxuICAgIFwi0JTRgNC+0LfQtNC+0LJcIixcbiAgICBcItCY0LPQvdCw0YLRjNC10LJcIixcbiAgICBcItCh0LDQstC40L1cIixcbiAgICBcItCb0L7Qs9C40L3QvtCyXCIsXG4gICAgXCLQodCw0YTQvtC90L7QslwiLFxuICAgIFwi0JrQsNC/0YPRgdGC0LjQvVwiLFxuICAgIFwi0JrQuNGA0LjQu9C70L7QslwiLFxuICAgIFwi0JzQvtC40YHQtdC10LJcIixcbiAgICBcItCV0LvQuNGB0LXQtdCyXCIsXG4gICAgXCLQmtC+0YjQtdC70LXQslwiLFxuICAgIFwi0JrQvtGB0YLQuNC9XCIsXG4gICAgXCLQk9C+0YDQsdCw0YfQtdCyXCIsXG4gICAgXCLQntGA0LXRhdC+0LJcIixcbiAgICBcItCV0YTRgNC10LzQvtCyXCIsXG4gICAgXCLQmNGB0LDQtdCyXCIsXG4gICAgXCLQldCy0LTQvtC60LjQvNC+0LJcIixcbiAgICBcItCa0LDQu9Cw0YjQvdC40LrQvtCyXCIsXG4gICAgXCLQmtCw0LHQsNC90L7QslwiLFxuICAgIFwi0J3QvtGB0LrQvtCyXCIsXG4gICAgXCLQrtC00LjQvVwiLFxuICAgIFwi0JrRg9C70LDQs9C40L1cIixcbiAgICBcItCb0LDQv9C40L1cIixcbiAgICBcItCf0YDQvtGF0L7RgNC+0LJcIixcbiAgICBcItCd0LXRgdGC0LXRgNC+0LJcIixcbiAgICBcItCl0LDRgNC40YLQvtC90L7QslwiLFxuICAgIFwi0JDQs9Cw0YTQvtC90L7QslwiLFxuICAgIFwi0JzRg9GA0LDQstGM0LXQslwiLFxuICAgIFwi0JvQsNGA0LjQvtC90L7QslwiLFxuICAgIFwi0KTQtdC00L7RgdC10LXQslwiLFxuICAgIFwi0JfQuNC80LjQvVwiLFxuICAgIFwi0J/QsNGF0L7QvNC+0LJcIixcbiAgICBcItCo0YPQsdC40L1cIixcbiAgICBcItCY0LPQvdCw0YLQvtCyXCIsXG4gICAgXCLQpNC40LvQsNGC0L7QslwiLFxuICAgIFwi0JrRgNGO0LrQvtCyXCIsXG4gICAgXCLQoNC+0LPQvtCyXCIsXG4gICAgXCLQmtGD0LvQsNC60L7QslwiLFxuICAgIFwi0KLQtdGA0LXQvdGC0YzQtdCyXCIsXG4gICAgXCLQnNC+0LvRh9Cw0L3QvtCyXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QslwiLFxuICAgIFwi0JDRgNGC0LXQvNGM0LXQslwiLFxuICAgIFwi0JPRg9GA0YzQtdCyXCIsXG4gICAgXCLQl9C40L3QvtCy0YzQtdCyXCIsXG4gICAgXCLQk9GA0LjRiNC40L1cIixcbiAgICBcItCa0L7QvdC+0L3QvtCyXCIsXG4gICAgXCLQlNC10LzQtdC90YLRjNC10LJcIixcbiAgICBcItCh0LjRgtC90LjQutC+0LJcIixcbiAgICBcItCh0LjQvNC+0L3QvtCyXCIsXG4gICAgXCLQnNC40YjQuNC9XCIsXG4gICAgXCLQpNCw0LTQtdC10LJcIixcbiAgICBcItCa0L7QvNC40YHRgdCw0YDQvtCyXCIsXG4gICAgXCLQnNCw0LzQvtC90YLQvtCyXCIsXG4gICAgXCLQndC+0YHQvtCyXCIsXG4gICAgXCLQk9GD0LvRj9C10LJcIixcbiAgICBcItCo0LDRgNC+0LJcIixcbiAgICBcItCj0YHRgtC40L3QvtCyXCIsXG4gICAgXCLQktC40YjQvdGP0LrQvtCyXCIsXG4gICAgXCLQldCy0YHQtdC10LJcIixcbiAgICBcItCb0LDQstGA0LXQvdGC0YzQtdCyXCIsXG4gICAgXCLQkdGA0LDQs9C40L1cIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QslwiLFxuICAgIFwi0JrQvtGA0L3QuNC70L7QslwiLFxuICAgIFwi0JDQstC00LXQtdCyXCIsXG4gICAgXCLQl9GL0LrQvtCyXCIsXG4gICAgXCLQkdC40YDRjtC60L7QslwiLFxuICAgIFwi0KjQsNGA0LDQv9C+0LJcIixcbiAgICBcItCd0LjQutC+0L3QvtCyXCIsXG4gICAgXCLQqdGD0LrQuNC9XCIsXG4gICAgXCLQlNGM0Y/Rh9C60L7QslwiLFxuICAgIFwi0J7QtNC40L3RhtC+0LJcIixcbiAgICBcItCh0LDQt9C+0L3QvtCyXCIsXG4gICAgXCLQr9C60YPRiNC10LJcIixcbiAgICBcItCa0YDQsNGB0LjQu9GM0L3QuNC60L7QslwiLFxuICAgIFwi0JPQvtGA0LTQtdC10LJcIixcbiAgICBcItCh0LDQvNC+0LnQu9C+0LJcIixcbiAgICBcItCa0L3Rj9C30LXQslwiLFxuICAgIFwi0JHQtdGB0L/QsNC70L7QslwiLFxuICAgIFwi0KPQstCw0YDQvtCyXCIsXG4gICAgXCLQqNCw0YjQutC+0LJcIixcbiAgICBcItCR0L7QsdGL0LvQtdCyXCIsXG4gICAgXCLQlNC+0YDQvtC90LjQvVwiLFxuICAgIFwi0JHQtdC70L7Qt9C10YDQvtCyXCIsXG4gICAgXCLQoNC+0LbQutC+0LJcIixcbiAgICBcItCh0LDQvNGB0L7QvdC+0LJcIixcbiAgICBcItCc0Y/RgdC90LjQutC+0LJcIixcbiAgICBcItCb0LjRhdCw0YfQtdCyXCIsXG4gICAgXCLQkdGD0YDQvtCyXCIsXG4gICAgXCLQodGL0YHQvtC10LJcIixcbiAgICBcItCk0L7QvNC40YfQtdCyXCIsXG4gICAgXCLQoNGD0YHQsNC60L7QslwiLFxuICAgIFwi0KHRgtGA0LXQu9C60L7QslwiLFxuICAgIFwi0JPRg9GJ0LjQvVwiLFxuICAgIFwi0KLQtdGC0LXRgNC40L1cIixcbiAgICBcItCa0L7Qu9C+0LHQvtCyXCIsXG4gICAgXCLQodGD0LHQsdC+0YLQuNC9XCIsXG4gICAgXCLQpNC+0LrQuNC9XCIsXG4gICAgXCLQkdC70L7RhdC40L1cIixcbiAgICBcItCh0LXQu9C40LLQtdGA0YHRgtC+0LJcIixcbiAgICBcItCf0LXRgdGC0L7QslwiLFxuICAgIFwi0JrQvtC90LTRgNCw0YLRjNC10LJcIixcbiAgICBcItCh0LjQu9C40L1cIixcbiAgICBcItCc0LXRgNC60YPRiNC10LJcIixcbiAgICBcItCb0YvRgtC60LjQvVwiLFxuICAgIFwi0KLRg9GA0L7QslwiXG4gIF0sXG4gIFwiZmVtYWxlX2ZpcnN0X25hbWVcIjogW1xuICAgIFwi0JDQvdC90LBcIixcbiAgICBcItCQ0LvRkdC90LBcIixcbiAgICBcItCQ0LvQtdCy0YLQuNC90LBcIixcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgNCwXCIsXG4gICAgXCLQkNC70LjQvdCwXCIsXG4gICAgXCLQkNC70LvQsFwiLFxuICAgIFwi0JDQvdCw0YHRgtCw0YHQuNGPXCIsXG4gICAgXCLQkNC90LPQtdC70LjQvdCwXCIsXG4gICAgXCLQkNC90LbQtdC70LBcIixcbiAgICBcItCQ0L3QttC10LvQuNC60LBcIixcbiAgICBcItCQ0L3RgtC+0L3QuNC00LBcIixcbiAgICBcItCQ0L3RgtC+0L3QuNC90LBcIixcbiAgICBcItCQ0L3RhNC40YHQsFwiLFxuICAgIFwi0JDRgNC40L3QsFwiLFxuICAgIFwi0JLQsNC70LXQvdGC0LjQvdCwXCIsXG4gICAgXCLQktCw0LvQtdGA0LjRj1wiLFxuICAgIFwi0JLQsNGA0LLQsNGA0LBcIixcbiAgICBcItCS0LDRgdC40LvQuNGB0LBcIixcbiAgICBcItCS0LXRgNCwXCIsXG4gICAgXCLQktC10YDQvtC90LjQutCwXCIsXG4gICAgXCLQktC40LrRgtC+0YDQuNGPXCIsXG4gICAgXCLQk9Cw0LvQuNC90LBcIixcbiAgICBcItCU0LDRgNGM0Y9cIixcbiAgICBcItCV0LLQs9C10L3QuNGPXCIsXG4gICAgXCLQldC60LDRgtC10YDQuNC90LBcIixcbiAgICBcItCV0LvQtdC90LBcIixcbiAgICBcItCV0LvQuNC30LDQstC10YLQsFwiLFxuICAgIFwi0JbQsNC90L3QsFwiLFxuICAgIFwi0JfQuNC90LDQuNC00LBcIixcbiAgICBcItCX0L7Rj1wiLFxuICAgIFwi0JjRgNC40L3QsFwiLFxuICAgIFwi0JrQuNGA0LBcIixcbiAgICBcItCa0LvQsNCy0LTQuNGPXCIsXG4gICAgXCLQmtGB0LXQvdC40Y9cIixcbiAgICBcItCb0LDRgNC40YHQsFwiLFxuICAgIFwi0JvQuNC00LjRj1wiLFxuICAgIFwi0JvRjtCx0L7QstGMXCIsXG4gICAgXCLQm9GO0LTQvNC40LvQsFwiLFxuICAgIFwi0JzQsNGA0LPQsNGA0LjRgtCwXCIsXG4gICAgXCLQnNCw0YDQuNC90LBcIixcbiAgICBcItCc0LDRgNC40Y9cIixcbiAgICBcItCd0LDQtNC10LbQtNCwXCIsXG4gICAgXCLQndCw0YLQsNC70YzRj1wiLFxuICAgIFwi0J3QuNC90LBcIixcbiAgICBcItCe0LrRgdCw0L3QsFwiLFxuICAgIFwi0J7Qu9GM0LPQsFwiLFxuICAgIFwi0KDQsNC40YHQsFwiLFxuICAgIFwi0KDQtdCz0LjQvdCwXCIsXG4gICAgXCLQoNC40LzQvNCwXCIsXG4gICAgXCLQodCy0LXRgtC70LDQvdCwXCIsXG4gICAgXCLQodC+0YTQuNGPXCIsXG4gICAgXCLQotCw0LjRgdC40Y9cIixcbiAgICBcItCi0LDQvNCw0YDQsFwiLFxuICAgIFwi0KLQsNGC0YzRj9C90LBcIixcbiAgICBcItCj0LvRjNGP0L3QsFwiLFxuICAgIFwi0K7Qu9C40Y9cIlxuICBdLFxuICBcImZlbWFsZV9taWRkbGVfbmFtZVwiOiBbXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsFwiLFxuICAgIFwi0JDQu9C10LrRgdC10LXQstC90LBcIixcbiAgICBcItCQ0LvRjNCx0LXRgNGC0L7QstC90LBcIixcbiAgICBcItCQ0L3QsNGC0L7Qu9GM0LXQstC90LBcIixcbiAgICBcItCQ0L3QtNGA0LXQtdCy0L3QsFwiLFxuICAgIFwi0JDQvdGC0L7QvdC+0LLQvdCwXCIsXG4gICAgXCLQkNGA0LrQsNC00YzQtdCy0L3QsFwiLFxuICAgIFwi0JDRgNGB0LXQvdGM0LXQstC90LBcIixcbiAgICBcItCQ0YDRgtGR0LzQvtCy0L3QsFwiLFxuICAgIFwi0JHQvtGA0LjRgdC+0LLQvdCwXCIsXG4gICAgXCLQktCw0LTQuNC80L7QstC90LBcIixcbiAgICBcItCS0LDQu9C10L3RgtC40L3QvtCy0L3QsFwiLFxuICAgIFwi0JLQsNC70LXRgNGM0LXQstC90LBcIixcbiAgICBcItCS0LDRgdC40LvRjNC10LLQvdCwXCIsXG4gICAgXCLQktC40LrRgtC+0YDQvtCy0L3QsFwiLFxuICAgIFwi0JLQuNGC0LDQu9GM0LXQstC90LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YDQvtCy0L3QsFwiLFxuICAgIFwi0JLQu9Cw0LTQuNGB0LvQsNCy0L7QstC90LBcIixcbiAgICBcItCS0Y/Rh9C10YHQu9Cw0LLQvtCy0L3QsFwiLFxuICAgIFwi0JPQtdC90L3QsNC00YzQtdCy0L3QsFwiLFxuICAgIFwi0JPQtdC+0YDQs9C40LXQstC90LBcIixcbiAgICBcItCT0LXRgNC80LDQvdC+0LLQvdCwXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LLQvdCwXCIsXG4gICAgXCLQlNCw0L3QuNC40LvQvtCy0L3QsFwiLFxuICAgIFwi0JTQtdC90LjRgdC+0LLQvdCwXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCy0L3QsFwiLFxuICAgIFwi0JXQstCz0LXQvdGM0LXQstC90LBcIixcbiAgICBcItCV0LPQvtGA0L7QstC90LBcIixcbiAgICBcItCY0LLQsNC90L7QstC90LBcIixcbiAgICBcItCY0LPQvdCw0YLRjNC10LLQvdCwXCIsXG4gICAgXCLQmNCz0L7RgNC10LLQvdCwXCIsXG4gICAgXCLQmNC70YzQuNC90LjRh9C90LBcIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC90LBcIixcbiAgICBcItCb0LDQstGA0LXQvdGC0YzQtdCy0L3QsFwiLFxuICAgIFwi0JvQtdC+0L3QuNC00L7QstC90LBcIixcbiAgICBcItCc0LDQutCw0YDQvtCy0L3QsFwiLFxuICAgIFwi0JzQsNC60YHQuNC80L7QstC90LBcIixcbiAgICBcItCc0LDRgtCy0LXQtdCy0L3QsFwiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QstC90LBcIixcbiAgICBcItCd0LjQutC40YLQuNGH0L3QsFwiLFxuICAgIFwi0J3QuNC60L7Qu9Cw0LXQstC90LBcIixcbiAgICBcItCe0LvQtdCz0L7QstC90LBcIixcbiAgICBcItCg0L7QvNCw0L3QvtCy0L3QsFwiLFxuICAgIFwi0KHQtdC80ZHQvdC+0LLQvdCwXCIsXG4gICAgXCLQodC10YDQs9C10LXQstC90LBcIixcbiAgICBcItCh0YLQsNC90LjRgdC70LDQstC+0LLQvdCwXCIsXG4gICAgXCLQodGC0LXQv9Cw0L3QvtCy0L3QsFwiLFxuICAgIFwi0KTRkdC00L7RgNC+0LLQvdCwXCIsXG4gICAgXCLQrdC00YPQsNGA0LTQvtCy0L3QsFwiLFxuICAgIFwi0K7RgNGM0LXQstC90LBcIixcbiAgICBcItCv0YDQvtGB0LvQsNCy0L7QstC90LBcIlxuICBdLFxuICBcImZlbWFsZV9sYXN0X25hbWVcIjogW1xuICAgIFwi0KHQvNC40YDQvdC+0LLQsFwiLFxuICAgIFwi0JjQstCw0L3QvtCy0LBcIixcbiAgICBcItCa0YPQt9C90LXRhtC+0LLQsFwiLFxuICAgIFwi0J/QvtC/0L7QstCwXCIsXG4gICAgXCLQodC+0LrQvtC70L7QstCwXCIsXG4gICAgXCLQm9C10LHQtdC00LXQstCwXCIsXG4gICAgXCLQmtC+0LfQu9C+0LLQsFwiLFxuICAgIFwi0J3QvtCy0LjQutC+0LLQsFwiLFxuICAgIFwi0JzQvtGA0L7Qt9C+0LLQsFwiLFxuICAgIFwi0J/QtdGC0YDQvtCy0LBcIixcbiAgICBcItCS0L7Qu9C60L7QstCwXCIsXG4gICAgXCLQodC+0LvQvtCy0YzQtdCy0LBcIixcbiAgICBcItCS0LDRgdC40LvRjNC10LLQsFwiLFxuICAgIFwi0JfQsNC50YbQtdCy0LBcIixcbiAgICBcItCf0LDQstC70L7QstCwXCIsXG4gICAgXCLQodC10LzQtdC90L7QstCwXCIsXG4gICAgXCLQk9C+0LvRg9Cx0LXQstCwXCIsXG4gICAgXCLQktC40L3QvtCz0YDQsNC00L7QstCwXCIsXG4gICAgXCLQkdC+0LPQtNCw0L3QvtCy0LBcIixcbiAgICBcItCS0L7RgNC+0LHRjNC10LLQsFwiLFxuICAgIFwi0KTQtdC00L7RgNC+0LLQsFwiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QstCwXCIsXG4gICAgXCLQkdC10LvRj9C10LLQsFwiLFxuICAgIFwi0KLQsNGA0LDRgdC+0LLQsFwiLFxuICAgIFwi0JHQtdC70L7QstCwXCIsXG4gICAgXCLQmtC+0LzQsNGA0L7QstCwXCIsXG4gICAgXCLQntGA0LvQvtCy0LBcIixcbiAgICBcItCa0LjRgdC10LvQtdCy0LBcIixcbiAgICBcItCc0LDQutCw0YDQvtCy0LBcIixcbiAgICBcItCQ0L3QtNGA0LXQtdCy0LBcIixcbiAgICBcItCa0L7QstCw0LvQtdCy0LBcIixcbiAgICBcItCY0LvRjNC40L3QsFwiLFxuICAgIFwi0JPRg9GB0LXQstCwXCIsXG4gICAgXCLQotC40YLQvtCy0LBcIixcbiAgICBcItCa0YPQt9GM0LzQuNC90LBcIixcbiAgICBcItCa0YPQtNGA0Y/QstGG0LXQstCwXCIsXG4gICAgXCLQkdCw0YDQsNC90L7QstCwXCIsXG4gICAgXCLQmtGD0LvQuNC60L7QstCwXCIsXG4gICAgXCLQkNC70LXQutGB0LXQtdCy0LBcIixcbiAgICBcItCh0YLQtdC/0LDQvdC+0LLQsFwiLFxuICAgIFwi0K/QutC+0LLQu9C10LLQsFwiLFxuICAgIFwi0KHQvtGA0L7QutC40L3QsFwiLFxuICAgIFwi0KHQtdGA0LPQtdC10LLQsFwiLFxuICAgIFwi0KDQvtC80LDQvdC+0LLQsFwiLFxuICAgIFwi0JfQsNGF0LDRgNC+0LLQsFwiLFxuICAgIFwi0JHQvtGA0LjRgdC+0LLQsFwiLFxuICAgIFwi0JrQvtGA0L7Qu9C10LLQsFwiLFxuICAgIFwi0JPQtdGA0LDRgdC40LzQvtCy0LBcIixcbiAgICBcItCf0L7QvdC+0LzQsNGA0LXQstCwXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LLQsFwiLFxuICAgIFwi0JvQsNC30LDRgNC10LLQsFwiLFxuICAgIFwi0JzQtdC00LLQtdC00LXQstCwXCIsXG4gICAgXCLQldGA0YjQvtCy0LBcIixcbiAgICBcItCd0LjQutC40YLQuNC90LBcIixcbiAgICBcItCh0L7QsdC+0LvQtdCy0LBcIixcbiAgICBcItCg0Y/QsdC+0LLQsFwiLFxuICAgIFwi0J/QvtC70Y/QutC+0LLQsFwiLFxuICAgIFwi0KbQstC10YLQutC+0LLQsFwiLFxuICAgIFwi0JTQsNC90LjQu9C+0LLQsFwiLFxuICAgIFwi0JbRg9C60L7QstCwXCIsXG4gICAgXCLQpNGA0L7Qu9C+0LLQsFwiLFxuICAgIFwi0JbRg9GA0LDQstC70LXQstCwXCIsXG4gICAgXCLQndC40LrQvtC70LDQtdCy0LBcIixcbiAgICBcItCa0YDRi9C70L7QstCwXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCy0LBcIixcbiAgICBcItCh0LjQtNC+0YDQvtCy0LBcIixcbiAgICBcItCe0YHQuNC/0L7QstCwXCIsXG4gICAgXCLQkdC10LvQvtGD0YHQvtCy0LBcIixcbiAgICBcItCk0LXQtNC+0YLQvtCy0LBcIixcbiAgICBcItCU0L7RgNC+0YTQtdC10LLQsFwiLFxuICAgIFwi0JXQs9C+0YDQvtCy0LBcIixcbiAgICBcItCc0LDRgtCy0LXQtdCy0LBcIixcbiAgICBcItCR0L7QsdGA0L7QstCwXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCy0LBcIixcbiAgICBcItCa0LDQu9C40L3QuNC90LBcIixcbiAgICBcItCQ0L3QuNGB0LjQvNC+0LLQsFwiLFxuICAgIFwi0J/QtdGC0YPRhdC+0LLQsFwiLFxuICAgIFwi0JDQvdGC0L7QvdC+0LLQsFwiLFxuICAgIFwi0KLQuNC80L7RhNC10LXQstCwXCIsXG4gICAgXCLQndC40LrQuNGE0L7RgNC+0LLQsFwiLFxuICAgIFwi0JLQtdGB0LXQu9C+0LLQsFwiLFxuICAgIFwi0KTQuNC70LjQv9C/0L7QstCwXCIsXG4gICAgXCLQnNCw0YDQutC+0LLQsFwiLFxuICAgIFwi0JHQvtC70YzRiNCw0LrQvtCy0LBcIixcbiAgICBcItCh0YPRhdCw0L3QvtCy0LBcIixcbiAgICBcItCc0LjRgNC+0L3QvtCy0LBcIixcbiAgICBcItCo0LjRgNGP0LXQstCwXCIsXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQvtCy0LBcIixcbiAgICBcItCa0L7QvdC+0LLQsNC70L7QstCwXCIsXG4gICAgXCLQqNC10YHRgtCw0LrQvtCy0LBcIixcbiAgICBcItCa0LDQt9Cw0LrQvtCy0LBcIixcbiAgICBcItCV0YTQuNC80L7QstCwXCIsXG4gICAgXCLQlNC10L3QuNGB0L7QstCwXCIsXG4gICAgXCLQk9GA0L7QvNC+0LLQsFwiLFxuICAgIFwi0KTQvtC80LjQvdCwXCIsXG4gICAgXCLQlNCw0LLRi9C00L7QstCwXCIsXG4gICAgXCLQnNC10LvRjNC90LjQutC+0LLQsFwiLFxuICAgIFwi0KnQtdGA0LHQsNC60L7QstCwXCIsXG4gICAgXCLQkdC70LjQvdC+0LLQsFwiLFxuICAgIFwi0JrQvtC70LXRgdC90LjQutC+0LLQsFwiLFxuICAgIFwi0JrQsNGA0L/QvtCy0LBcIixcbiAgICBcItCQ0YTQsNC90LDRgdGM0LXQstCwXCIsXG4gICAgXCLQktC70LDRgdC+0LLQsFwiLFxuICAgIFwi0JzQsNGB0LvQvtCy0LBcIixcbiAgICBcItCY0YHQsNC60L7QstCwXCIsXG4gICAgXCLQotC40YXQvtC90L7QstCwXCIsXG4gICAgXCLQkNC60YHQtdC90L7QstCwXCIsXG4gICAgXCLQk9Cw0LLRgNC40LvQvtCy0LBcIixcbiAgICBcItCg0L7QtNC40L7QvdC+0LLQsFwiLFxuICAgIFwi0JrQvtGC0L7QstCwXCIsXG4gICAgXCLQk9C+0YDQsdGD0L3QvtCy0LBcIixcbiAgICBcItCa0YPQtNGA0Y/RiNC+0LLQsFwiLFxuICAgIFwi0JHRi9C60L7QstCwXCIsXG4gICAgXCLQl9GD0LXQstCwXCIsXG4gICAgXCLQotGA0LXRgtGM0Y/QutC+0LLQsFwiLFxuICAgIFwi0KHQsNCy0LXQu9GM0LXQstCwXCIsXG4gICAgXCLQn9Cw0L3QvtCy0LBcIixcbiAgICBcItCg0YvQsdCw0LrQvtCy0LBcIixcbiAgICBcItCh0YPQstC+0YDQvtCy0LBcIixcbiAgICBcItCQ0LHRgNCw0LzQvtCy0LBcIixcbiAgICBcItCS0L7RgNC+0L3QvtCy0LBcIixcbiAgICBcItCc0YPRhdC40L3QsFwiLFxuICAgIFwi0JDRgNGF0LjQv9C+0LLQsFwiLFxuICAgIFwi0KLRgNC+0YTQuNC80L7QstCwXCIsXG4gICAgXCLQnNCw0YDRgtGL0L3QvtCy0LBcIixcbiAgICBcItCV0LzQtdC70YzRj9C90L7QstCwXCIsXG4gICAgXCLQk9C+0YDRiNC60L7QstCwXCIsXG4gICAgXCLQp9C10YDQvdC+0LLQsFwiLFxuICAgIFwi0J7QstGH0LjQvdC90LjQutC+0LLQsFwiLFxuICAgIFwi0KHQtdC70LXQt9C90LXQstCwXCIsXG4gICAgXCLQn9Cw0L3RhNC40LvQvtCy0LBcIixcbiAgICBcItCa0L7Qv9GL0LvQvtCy0LBcIixcbiAgICBcItCc0LjRhdC10LXQstCwXCIsXG4gICAgXCLQk9Cw0LvQutC40L3QsFwiLFxuICAgIFwi0J3QsNC30LDRgNC+0LLQsFwiLFxuICAgIFwi0JvQvtCx0LDQvdC+0LLQsFwiLFxuICAgIFwi0JvRg9C60LjQvdCwXCIsXG4gICAgXCLQkdC10LvRj9C60L7QstCwXCIsXG4gICAgXCLQn9C+0YLQsNC/0L7QstCwXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCy0LBcIixcbiAgICBcItCl0L7RhdC70L7QstCwXCIsXG4gICAgXCLQltC00LDQvdC+0LLQsFwiLFxuICAgIFwi0J3QsNGD0LzQvtCy0LBcIixcbiAgICBcItCo0LjQu9C+0LLQsFwiLFxuICAgIFwi0JLQvtGA0L7QvdGG0L7QstCwXCIsXG4gICAgXCLQldGA0LzQsNC60L7QstCwXCIsXG4gICAgXCLQlNGA0L7Qt9C00L7QstCwXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCy0LBcIixcbiAgICBcItCh0LDQstC40L3QsFwiLFxuICAgIFwi0JvQvtCz0LjQvdC+0LLQsFwiLFxuICAgIFwi0KHQsNGE0L7QvdC+0LLQsFwiLFxuICAgIFwi0JrQsNC/0YPRgdGC0LjQvdCwXCIsXG4gICAgXCLQmtC40YDQuNC70LvQvtCy0LBcIixcbiAgICBcItCc0L7QuNGB0LXQtdCy0LBcIixcbiAgICBcItCV0LvQuNGB0LXQtdCy0LBcIixcbiAgICBcItCa0L7RiNC10LvQtdCy0LBcIixcbiAgICBcItCa0L7RgdGC0LjQvdCwXCIsXG4gICAgXCLQk9C+0YDQsdCw0YfQtdCy0LBcIixcbiAgICBcItCe0YDQtdGF0L7QstCwXCIsXG4gICAgXCLQldGE0YDQtdC80L7QstCwXCIsXG4gICAgXCLQmNGB0LDQtdCy0LBcIixcbiAgICBcItCV0LLQtNC+0LrQuNC80L7QstCwXCIsXG4gICAgXCLQmtCw0LvQsNGI0L3QuNC60L7QstCwXCIsXG4gICAgXCLQmtCw0LHQsNC90L7QstCwXCIsXG4gICAgXCLQndC+0YHQutC+0LLQsFwiLFxuICAgIFwi0K7QtNC40L3QsFwiLFxuICAgIFwi0JrRg9C70LDQs9C40L3QsFwiLFxuICAgIFwi0JvQsNC/0LjQvdCwXCIsXG4gICAgXCLQn9GA0L7RhdC+0YDQvtCy0LBcIixcbiAgICBcItCd0LXRgdGC0LXRgNC+0LLQsFwiLFxuICAgIFwi0KXQsNGA0LjRgtC+0L3QvtCy0LBcIixcbiAgICBcItCQ0LPQsNGE0L7QvdC+0LLQsFwiLFxuICAgIFwi0JzRg9GA0LDQstGM0LXQstCwXCIsXG4gICAgXCLQm9Cw0YDQuNC+0L3QvtCy0LBcIixcbiAgICBcItCk0LXQtNC+0YHQtdC10LLQsFwiLFxuICAgIFwi0JfQuNC80LjQvdCwXCIsXG4gICAgXCLQn9Cw0YXQvtC80L7QstCwXCIsXG4gICAgXCLQqNGD0LHQuNC90LBcIixcbiAgICBcItCY0LPQvdCw0YLQvtCy0LBcIixcbiAgICBcItCk0LjQu9Cw0YLQvtCy0LBcIixcbiAgICBcItCa0YDRjtC60L7QstCwXCIsXG4gICAgXCLQoNC+0LPQvtCy0LBcIixcbiAgICBcItCa0YPQu9Cw0LrQvtCy0LBcIixcbiAgICBcItCi0LXRgNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQnNC+0LvRh9Cw0L3QvtCy0LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YDQvtCy0LBcIixcbiAgICBcItCQ0YDRgtC10LzRjNC10LLQsFwiLFxuICAgIFwi0JPRg9GA0YzQtdCy0LBcIixcbiAgICBcItCX0LjQvdC+0LLRjNC10LLQsFwiLFxuICAgIFwi0JPRgNC40YjQuNC90LBcIixcbiAgICBcItCa0L7QvdC+0L3QvtCy0LBcIixcbiAgICBcItCU0LXQvNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQodC40YLQvdC40LrQvtCy0LBcIixcbiAgICBcItCh0LjQvNC+0L3QvtCy0LBcIixcbiAgICBcItCc0LjRiNC40L3QsFwiLFxuICAgIFwi0KTQsNC00LXQtdCy0LBcIixcbiAgICBcItCa0L7QvNC40YHRgdCw0YDQvtCy0LBcIixcbiAgICBcItCc0LDQvNC+0L3RgtC+0LLQsFwiLFxuICAgIFwi0J3QvtGB0L7QstCwXCIsXG4gICAgXCLQk9GD0LvRj9C10LLQsFwiLFxuICAgIFwi0KjQsNGA0L7QstCwXCIsXG4gICAgXCLQo9GB0YLQuNC90L7QstCwXCIsXG4gICAgXCLQktC40YjQvdGP0LrQvtCy0LBcIixcbiAgICBcItCV0LLRgdC10LXQstCwXCIsXG4gICAgXCLQm9Cw0LLRgNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQkdGA0LDQs9C40L3QsFwiLFxuICAgIFwi0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LBcIixcbiAgICBcItCa0L7RgNC90LjQu9C+0LLQsFwiLFxuICAgIFwi0JDQstC00LXQtdCy0LBcIixcbiAgICBcItCX0YvQutC+0LLQsFwiLFxuICAgIFwi0JHQuNGA0Y7QutC+0LLQsFwiLFxuICAgIFwi0KjQsNGA0LDQv9C+0LLQsFwiLFxuICAgIFwi0J3QuNC60L7QvdC+0LLQsFwiLFxuICAgIFwi0KnRg9C60LjQvdCwXCIsXG4gICAgXCLQlNGM0Y/Rh9C60L7QstCwXCIsXG4gICAgXCLQntC00LjQvdGG0L7QstCwXCIsXG4gICAgXCLQodCw0LfQvtC90L7QstCwXCIsXG4gICAgXCLQr9C60YPRiNC10LLQsFwiLFxuICAgIFwi0JrRgNCw0YHQuNC70YzQvdC40LrQvtCy0LBcIixcbiAgICBcItCT0L7RgNC00LXQtdCy0LBcIixcbiAgICBcItCh0LDQvNC+0LnQu9C+0LLQsFwiLFxuICAgIFwi0JrQvdGP0LfQtdCy0LBcIixcbiAgICBcItCR0LXRgdC/0LDQu9C+0LLQsFwiLFxuICAgIFwi0KPQstCw0YDQvtCy0LBcIixcbiAgICBcItCo0LDRiNC60L7QstCwXCIsXG4gICAgXCLQkdC+0LHRi9C70LXQstCwXCIsXG4gICAgXCLQlNC+0YDQvtC90LjQvdCwXCIsXG4gICAgXCLQkdC10LvQvtC30LXRgNC+0LLQsFwiLFxuICAgIFwi0KDQvtC20LrQvtCy0LBcIixcbiAgICBcItCh0LDQvNGB0L7QvdC+0LLQsFwiLFxuICAgIFwi0JzRj9GB0L3QuNC60L7QstCwXCIsXG4gICAgXCLQm9C40YXQsNGH0LXQstCwXCIsXG4gICAgXCLQkdGD0YDQvtCy0LBcIixcbiAgICBcItCh0YvRgdC+0LXQstCwXCIsXG4gICAgXCLQpNC+0LzQuNGH0LXQstCwXCIsXG4gICAgXCLQoNGD0YHQsNC60L7QstCwXCIsXG4gICAgXCLQodGC0YDQtdC70LrQvtCy0LBcIixcbiAgICBcItCT0YPRidC40L3QsFwiLFxuICAgIFwi0KLQtdGC0LXRgNC40L3QsFwiLFxuICAgIFwi0JrQvtC70L7QsdC+0LLQsFwiLFxuICAgIFwi0KHRg9Cx0LHQvtGC0LjQvdCwXCIsXG4gICAgXCLQpNC+0LrQuNC90LBcIixcbiAgICBcItCR0LvQvtGF0LjQvdCwXCIsXG4gICAgXCLQodC10LvQuNCy0LXRgNGB0YLQvtCy0LBcIixcbiAgICBcItCf0LXRgdGC0L7QstCwXCIsXG4gICAgXCLQmtC+0L3QtNGA0LDRgtGM0LXQstCwXCIsXG4gICAgXCLQodC40LvQuNC90LBcIixcbiAgICBcItCc0LXRgNC60YPRiNC10LLQsFwiLFxuICAgIFwi0JvRi9GC0LrQuNC90LBcIixcbiAgICBcItCi0YPRgNC+0LLQsFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje21hbGVfZmlyc3RfbmFtZX0gI3ttYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFsZV9sYXN0X25hbWV9ICN7bWFsZV9maXJzdF9uYW1lfVwiLFxuICAgIFwiI3ttYWxlX2ZpcnN0X25hbWV9ICN7bWFsZV9taWRkbGVfbmFtZX0gI3ttYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFsZV9sYXN0X25hbWV9ICN7bWFsZV9maXJzdF9uYW1lfSAje21hbGVfbWlkZGxlX25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9sYXN0X25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9sYXN0X25hbWV9ICN7ZmVtYWxlX2ZpcnN0X25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9taWRkbGVfbmFtZX0gI3tmZW1hbGVfbGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmZW1hbGVfbGFzdF9uYW1lfSAje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9taWRkbGVfbmFtZX1cIlxuICBdXG59O1xucnUucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKDkjIykjIyMtIyMtIyNcIlxuICBdXG59O1xucnUuY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwi0LrRgNCw0YHQvdGL0LlcIixcbiAgICBcItC30LXQu9C10L3Ri9C5XCIsXG4gICAgXCLRgdC40L3QuNC5XCIsXG4gICAgXCLQttC10LvRgtGL0LlcIixcbiAgICBcItCx0LDQs9GA0L7QstGL0LlcIixcbiAgICBcItC80Y/RgtC90YvQuVwiLFxuICAgIFwi0LfQtdC70LXQvdC+0LLQsNGC0L4t0LPQvtC70YPQsdC+0LlcIixcbiAgICBcItCx0LXQu9GL0LlcIixcbiAgICBcItGH0LXRgNC90YvQuVwiLFxuICAgIFwi0L7RgNCw0L3QttC10LLRi9C5XCIsXG4gICAgXCLRgNC+0LfQvtCy0YvQuVwiLFxuICAgIFwi0YHQtdGA0YvQuVwiLFxuICAgIFwi0LrRgNCw0YHQvdC+LdC60L7RgNC40YfQvdC10LLRi9C5XCIsXG4gICAgXCLRhNC40L7Qu9C10YLQvtCy0YvQuVwiLFxuICAgIFwi0LHQuNGA0Y7Qt9C+0LLRi9C5XCIsXG4gICAgXCLQttC10LvRgtC+LdC60L7RgNC40YfQvdC10LLRi9C5XCIsXG4gICAgXCLQvdC10LHQtdGB0L3QviDQs9C+0LvRg9Cx0L7QuVwiLFxuICAgIFwi0L7RgNCw0L3QttC10LLQvi3RgNC+0LfQvtCy0YvQuVwiLFxuICAgIFwi0YLQtdC80L3Qvi3RhNC40L7Qu9C10YLQvtCy0YvQuVwiLFxuICAgIFwi0L7RgNGF0LjQtNC90YvQuVwiLFxuICAgIFwi0L7Qu9C40LLQutC+0LLRi9C5XCIsXG4gICAgXCLQv9GD0YDQv9GD0YDQvdGL0LlcIixcbiAgICBcItC70LjQvNC+0L3QvdGL0LlcIixcbiAgICBcItC60YDQtdC80L7QstGL0LlcIixcbiAgICBcItGB0LjQvdC1LdGE0LjQvtC70LXRgtC+0LLRi9C5XCIsXG4gICAgXCLQt9C+0LvQvtGC0L7QuVwiLFxuICAgIFwi0LrRgNCw0YHQvdC+LdC/0YPRgNC/0YPRgNC90YvQuVwiLFxuICAgIFwi0LPQvtC70YPQsdC+0LlcIixcbiAgICBcItC70LDQt9GD0YDQvdGL0LlcIixcbiAgICBcItC70LjQu9C+0LLRi9C5XCIsXG4gICAgXCLRgdC10YDQtdCx0YDRj9C90YvQuVwiXG4gIF0sXG4gIFwiZGVwYXJ0bWVudFwiOiBbXG4gICAgXCLQmtC90LjQs9C4XCIsXG4gICAgXCLQpNC40LvRjNC80YtcIixcbiAgICBcItC80YPQt9GL0LrQsFwiLFxuICAgIFwi0LjQs9GA0YtcIixcbiAgICBcItCt0LvQtdC60YLRgNC+0L3QuNC60LBcIixcbiAgICBcItC60L7QvNC/0YzRjtGC0LXRgNGLXCIsXG4gICAgXCLQlNC+0LxcIixcbiAgICBcItGB0LDQtNC40L3RgdGC0YDRg9C80LXQvdGCXCIsXG4gICAgXCLQkdCw0LrQsNC70LXRj1wiLFxuICAgIFwi0LfQtNC+0YDQvtCy0YzQtVwiLFxuICAgIFwi0LrRgNCw0YHQvtGC0LBcIixcbiAgICBcItCY0LPRgNGD0YjQutC4XCIsXG4gICAgXCLQtNC10YLRgdC60L7QtVwiLFxuICAgIFwi0LTQu9GPINC80LDQu9GL0YjQtdC5XCIsXG4gICAgXCLQntC00LXQttC00LBcIixcbiAgICBcItC+0LHRg9Cy0YxcIixcbiAgICBcItGD0LrRgNCw0YjQtdC90LjRj1wiLFxuICAgIFwi0KHQv9C+0YDRglwiLFxuICAgIFwi0YLRg9GA0LjQt9C8XCIsXG4gICAgXCLQkNCy0YLQvtC80L7QsdC40LvRjNC90L7QtVwiLFxuICAgIFwi0L/RgNC+0LzRi9GI0LvQtdC90L3QvtC1XCJcbiAgXSxcbiAgXCJwcm9kdWN0X25hbWVcIjoge1xuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwi0JzQsNC70LXQvdGM0LrQuNC5XCIsXG4gICAgICBcItCt0YDQs9C+0L3QvtC80LjRh9C90YvQuVwiLFxuICAgICAgXCLQk9GA0YPQsdGL0LlcIixcbiAgICAgIFwi0JjQvdGC0LXQu9C70LXQutGC0YPQsNC70YzQvdGL0LlcIixcbiAgICAgIFwi0JLQtdC70LjQutC+0LvQtdC/0L3Ri9C5XCIsXG4gICAgICBcItCd0LXQstC10YDQvtGP0YLQvdGL0LlcIixcbiAgICAgIFwi0KTQsNC90YLQsNGB0YLQuNGH0LXRgdC60LjQuVwiLFxuICAgICAgXCLQn9GA0LDQutGC0YfQuNC90YvQuVwiLFxuICAgICAgXCLQm9C+0YHQvdGP0YnQuNC50YHRj1wiLFxuICAgICAgXCLQn9C+0YLRgNGP0YHQsNGO0YnQuNC5XCJcbiAgICBdLFxuICAgIFwibWF0ZXJpYWxcIjogW1xuICAgICAgXCLQodGC0LDQu9GM0L3QvtC5XCIsXG4gICAgICBcItCU0LXRgNC10LLRj9C90L3Ri9C5XCIsXG4gICAgICBcItCR0LXRgtC+0L3QvdGL0LlcIixcbiAgICAgIFwi0J/Qu9Cw0YHRgtC40LrQvtCy0YvQuVwiLFxuICAgICAgXCLQpdC70L7Qv9C60L7QstGL0LlcIixcbiAgICAgIFwi0JPRgNCw0L3QuNGC0L3Ri9C5XCIsXG4gICAgICBcItCg0LXQt9C40L3QvtCy0YvQuVwiXG4gICAgXSxcbiAgICBcInByb2R1Y3RcIjogW1xuICAgICAgXCLQodGC0YPQu1wiLFxuICAgICAgXCLQkNCy0YLQvtC80L7QsdC40LvRjFwiLFxuICAgICAgXCLQmtC+0LzQv9GM0Y7RgtC10YBcIixcbiAgICAgIFwi0JHQtdGA0LXRglwiLFxuICAgICAgXCLQmtGD0LvQvtC9XCIsXG4gICAgICBcItCh0YLQvtC7XCIsXG4gICAgICBcItCh0LLQuNGC0LXRgFwiLFxuICAgICAgXCLQoNC10LzQtdC90YxcIixcbiAgICAgIFwi0JHQvtGC0LjQvdC+0LpcIlxuICAgIF1cbiAgfVxufTtcbnJ1LmNvbXBhbnkgPSB7XG4gIFwicHJlZml4XCI6IFtcbiAgICBcItCY0J9cIixcbiAgICBcItCe0J7QnlwiLFxuICAgIFwi0JfQkNCeXCIsXG4gICAgXCLQntCQ0J5cIixcbiAgICBcItCd0JrQnlwiLFxuICAgIFwi0KLQodCWXCIsXG4gICAgXCLQntCfXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwi0KHQvdCw0LFcIixcbiAgICBcItCi0L7RgNCzXCIsXG4gICAgXCLQn9GA0L7QvFwiLFxuICAgIFwi0KLRgNC10LnQtFwiLFxuICAgIFwi0KHQsdGL0YJcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5mZW1hbGVfZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje05hbWUubWFsZV9maXJzdF9uYW1lfVwiLFxuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5tYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje3N1ZmZpeH0je3N1ZmZpeH1cIixcbiAgICBcIiN7cHJlZml4fSAje3N1ZmZpeH0je3N1ZmZpeH0je3N1ZmZpeH1cIixcbiAgICBcIiN7cHJlZml4fSAje0FkZHJlc3MuY2l0eV9uYW1lfSN7c3VmZml4fVwiLFxuICAgIFwiI3twcmVmaXh9ICN7QWRkcmVzcy5jaXR5X25hbWV9I3tzdWZmaXh9I3tzdWZmaXh9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tBZGRyZXNzLmNpdHlfbmFtZX0je3N1ZmZpeH0je3N1ZmZpeH0je3N1ZmZpeH1cIlxuICBdXG59O1xuIiwidmFyIHNrID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gc2s7XG5zay50aXRsZSA9IFwiU2xvdmFraWFuXCI7XG5zay5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vcnRoXCIsXG4gICAgXCJFYXN0XCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJTb3V0aFwiLFxuICAgIFwiTmV3XCIsXG4gICAgXCJMYWtlXCIsXG4gICAgXCJQb3J0XCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCJ0b3duXCIsXG4gICAgXCJ0b25cIixcbiAgICBcImxhbmRcIixcbiAgICBcInZpbGxlXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCJidXJnaFwiLFxuICAgIFwiYm9yb3VnaFwiLFxuICAgIFwiYnVyeVwiLFxuICAgIFwidmlld1wiLFxuICAgIFwicG9ydFwiLFxuICAgIFwibW91dGhcIixcbiAgICBcInN0YWRcIixcbiAgICBcImZ1cnRcIixcbiAgICBcImNoZXN0ZXJcIixcbiAgICBcIm1vdXRoXCIsXG4gICAgXCJmb3J0XCIsXG4gICAgXCJoYXZlblwiLFxuICAgIFwic2lkZVwiLFxuICAgIFwic2hpcmVcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnYW5pc3RhblwiLFxuICAgIFwiQWZnw6Fuc2t5IGlzbGFtc2vDvSDFoXTDoXRcIixcbiAgICBcIkFsYsOhbnNrb1wiLFxuICAgIFwiQWxiw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiQWzFvsOtcnNrb1wiLFxuICAgIFwiQWzFvsOtcnNrYSBkZW1va3JhdGlja8OhIMS+dWRvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5kb3Jyc2vDqSBrbmllxb5hdHN2b1wiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmdvbHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJBbnRpZ3VhIGEgQmFyYnVkYVwiLFxuICAgIFwiQW50aWd1YSBhIEJhcmJ1ZGFcIixcbiAgICBcIkFyZ2VudMOtbmFcIixcbiAgICBcIkFyZ2VudMOtbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkFybcOpbnNrb1wiLFxuICAgIFwiQXJtw6luc2thIHJlcHVibGlrYVwiLFxuICAgIFwiQXVzdHLDoWxpYVwiLFxuICAgIFwiQXVzdHLDoWxza3kgenbDpHpcIixcbiAgICBcIkF6ZXJiYWpkxb5hblwiLFxuICAgIFwiQXplcmJhamTFvmFuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJhaGFteVwiLFxuICAgIFwiQmFoYW1za8OpIHNwb2xvxI1lbnN0dm9cIixcbiAgICBcIkJhaHJham5cIixcbiAgICBcIkJhaHJham5za8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmFuZ2xhZMOpxaFcIixcbiAgICBcIkJhbmdsYWTDqcWhc2thIMS+dWRvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxnaWNrb1wiLFxuICAgIFwiQmVsZ2lja8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZW5pbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCaHV0w6FuXCIsXG4gICAgXCJCaHV0w6Fuc2tlIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmllbG9ydXNrb1wiLFxuICAgIFwiQmllbG9ydXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCb2zDrXZpYVwiLFxuICAgIFwiQm9sw612aWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQm9zbmEgYSBIZXJjZWdvdmluYVwiLFxuICAgIFwiUmVwdWJsaWthIEJvc255IGEgSGVyY2Vnb3ZpbnlcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCb3Rzd2Fuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJyYXrDrWxpYVwiLFxuICAgIFwiQnJhesOtbHNrYSBmZWRlcmF0w612bmEgcmVwdWJsaWthXCIsXG4gICAgXCJCcnVuZWpcIixcbiAgICBcIkJydW5lanNrw70gc3VsdGFuw6F0XCIsXG4gICAgXCJCdWxoYXJza29cIixcbiAgICBcIkJ1bGhhcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQnVydW5kc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkN5cHJ1c1wiLFxuICAgIFwiQ3lwZXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwixIxhZFwiLFxuICAgIFwiUmVwdWJsaWthIMSMYWRcIixcbiAgICBcIsSMZXNrb1wiLFxuICAgIFwixIxlc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIsSMw61uYVwiLFxuICAgIFwixIzDrW5za2EgxL51ZG92w6EgcmVwdWJsaWthXCIsXG4gICAgXCJEw6Fuc2tvXCIsXG4gICAgXCJEw6Fuc2tvIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIlNwb2xvxI1lbnN0dm8gRG9taW5pa2FcIixcbiAgICBcIkRvbWluaWvDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJEb21pbmlrw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRMW+aWJ1dHNrb1wiLFxuICAgIFwiRMW+aWJ1dHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJFZ3lwdFwiLFxuICAgIFwiRWd5cHRza8OhIGFyYWJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiRWt2w6Fkb3JcIixcbiAgICBcIkVrdsOhZG9yc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVyaXRyZWpza8O9IMWhdMOhdFwiLFxuICAgIFwiRXN0w7Nuc2tvXCIsXG4gICAgXCJFc3TDs25za2EgcmVwdWJsaWthXCIsXG4gICAgXCJFdGnDs3BpYVwiLFxuICAgIFwiRXRpw7Nwc2thIGZlZGVyYXTDrXZuYSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiRmlkxb5pXCIsXG4gICAgXCJSZXB1Ymxpa2Egb3N0cm92eSBGaWTFvmlcIixcbiAgICBcIkZpbGlww61ueVwiLFxuICAgIFwiRmlsaXDDrW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJGw61uc2tvXCIsXG4gICAgXCJGw61uc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRnJhbmPDunpza29cIixcbiAgICBcIkZyYW5jw7p6c2thIHJlcHVibGlrYVwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkdhYm9uc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2FtYmlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaGFuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdyw6lja29cIixcbiAgICBcIkhlbMOpbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIkdydXrDrW5za29cIixcbiAgICBcIkdydXrDrW5za29cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3VhdGVtYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiUmVwdWJsaWthIEd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1YXlhbmFcIixcbiAgICBcIkd1YXlhbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiUmVwdWJsaWthIEhhaXRpXCIsXG4gICAgXCJIb2xhbmRza29cIixcbiAgICBcIkhvbGFuZHNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZHVyYXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwixIzDrWxza2EgcmVwdWJsaWthXCIsXG4gICAgXCJDaG9ydsOhdHNrb1wiLFxuICAgIFwiQ2hvcnbDoXRza2EgcmVwdWJsaWthXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJJbmRvbsOpemlhXCIsXG4gICAgXCJJbmRvbsOpenNrYSByZXB1Ymxpa2FcIixcbiAgICBcIklyYWtcIixcbiAgICBcIklyYWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJJcsOhblwiLFxuICAgIFwiSXLDoW5za2EgaXNsYW1za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJJc2xhbmRza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSXpyYWVsXCIsXG4gICAgXCLFoHTDoXQgSXpyYWVsXCIsXG4gICAgXCLDjXJza29cIixcbiAgICBcIsONcnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkphbWFqa2FcIixcbiAgICBcIkphbWFqa2FcIixcbiAgICBcIkphcG9uc2tvXCIsXG4gICAgXCJKYXBvbnNrb1wiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkplbWVuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkpvcmTDoW5za29cIixcbiAgICBcIkpvcmTDoW5za2UgaMOhxaFpbW92c2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkp1xb5uw6EgQWZyaWthXCIsXG4gICAgXCJKdWhvYWZyaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLYW1ib2TFvmFcIixcbiAgICBcIkthbWJvZMW+c2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbWVydW5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYW5hZGFcIixcbiAgICBcIkthcHZlcmR5XCIsXG4gICAgXCJLYXB2ZXJkc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkthdGFyXCIsXG4gICAgXCLFoHTDoXQgS2F0YXJcIixcbiAgICBcIkthemFjaHN0YW5cIixcbiAgICBcIkthemHFoXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLZcWIYVwiLFxuICAgIFwiS2Vuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktpcmdpenNrb1wiLFxuICAgIFwiS2lyZ2l6c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLaXJpYmF0c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktvbHVtYmlhXCIsXG4gICAgXCJLb2x1bWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLb21vcnlcIixcbiAgICBcIktvbW9yc2vDoSDDum5pYVwiLFxuICAgIFwiS29uZ29cIixcbiAgICBcIktvbsW+c2vDoSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS29uZ28gKFxcXCJCcmF6emF2aWxsZVxcXCIpXCIsXG4gICAgXCJLb27FvnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLw7NyZWEgKFxcXCJKdcW+bsOhXFxcIilcIixcbiAgICBcIkvDs3JlanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLw7NyZWEgKFxcXCJTZXZlcm7DoVxcXCIpXCIsXG4gICAgXCJLw7NyZWpza8OhIMS+dWRvdm9kZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS29zdGFyaWthXCIsXG4gICAgXCJLb3N0YXJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkt1YsOhbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkt1dmFqdFwiLFxuICAgIFwiS3V2YWp0c2vDvSDFoXTDoXRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxhb3Nrw6EgxL51ZG92b2RlbW9rcmF0aWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMZXNvdGhza8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiTGliYW5vblwiLFxuICAgIFwiTGliYW5vbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMaWLDqXJpYVwiLFxuICAgIFwiTGliw6lyaWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTMOtYnlhXCIsXG4gICAgXCJMw61ieWpza8OhIGFyYWJza8OhIMS+dWRvdsOhIHNvY2lhbGlzdGlja8OhIGTFvmFtw6Fow61yaWphXCIsXG4gICAgXCJMaWNodGVuxaF0YWpuc2tvXCIsXG4gICAgXCJMaWNodGVuxaF0YWpuc2vDqSBrbmllxb5hdHN0dm9cIixcbiAgICBcIkxpdHZhXCIsXG4gICAgXCJMaXRvdnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMb3R5xaFza29cIixcbiAgICBcIkxvdHnFoXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMdXhlbWJ1cnNrb1wiLFxuICAgIFwiTHV4ZW1idXJza8OpIHZlxL5rb3ZvanZvZHN0dm9cIixcbiAgICBcIk1hY2Vkw7Nuc2tvXCIsXG4gICAgXCJNYWNlZMOzbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hZGFnYXNrYXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWHEj2Fyc2tvXCIsXG4gICAgXCJNYcSPYXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWFsYWp6aWFcIixcbiAgICBcIk1hbGFqemlhXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGF3aWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWFsZGl2eVwiLFxuICAgIFwiTWFsZGl2c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbGlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2tvXCIsXG4gICAgXCJNYXJvY2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIk1hcnNoYWxsb3ZlIG9zdHJvdnlcIixcbiAgICBcIlJlcHVibGlrYSBNYXJzaGFsbG92w71jaCBvc3Ryb3Z5XCIsXG4gICAgXCJNYXVyaXTDoW5pYVwiLFxuICAgIFwiTWF1cml0w6Fuc2thIGlzbGFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hdXLDrWNpdXNcIixcbiAgICBcIk1hdXLDrWNpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIlNwb2plbsOpIMWhdMOhdHkgbWV4aWNrw6lcIixcbiAgICBcIk1pa3JvbsOpemlhXCIsXG4gICAgXCJNaWtyb27DqXpza2UgZmVkZXJhdMOtdm5lIMWhdMOhdHlcIixcbiAgICBcIk1qYW5tYXJza29cIixcbiAgICBcIk1qYW5tYXJza8O9IHp2w6R6XCIsXG4gICAgXCJNb2xkYXZza29cIixcbiAgICBcIk1vbGRhdnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNb25ha29cIixcbiAgICBcIk1vbmFja8OpIGtuaWXFvmF0c3R2b1wiLFxuICAgIFwiTW9uZ29sc2tvXCIsXG4gICAgXCJNb25nb2xza29cIixcbiAgICBcIk1vemFtYmlrXCIsXG4gICAgXCJNb3phbWJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk5hbcOtYmlhXCIsXG4gICAgXCJOYW3DrWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmF1cnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOZW1lY2tvXCIsXG4gICAgXCJOZW1lY2vDoSBzcG9sa292w6EgcmVwdWJsaWthXCIsXG4gICAgXCJOZXDDoWxcIixcbiAgICBcIk5lcMOhbHNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOaWfDqXJpYVwiLFxuICAgIFwiTmlnw6lyaWpza8OhIGZlZGVyYXTDrXZuYSByZXB1Ymxpa2FcIixcbiAgICBcIk5pa2FyYWd1YVwiLFxuICAgIFwiTmlrYXJhZ3Vqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk5vdsO9IFrDqWxhbmRcIixcbiAgICBcIk5vdsO9IFrDqWxhbmRcIixcbiAgICBcIk7Ds3Jza29cIixcbiAgICBcIk7Ds3Jza2Uga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJPbcOhblwiLFxuICAgIFwiT23DoW5za3kgc3VsdGFuw6F0XCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFraXN0YW5za8OhIGlzbGFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYWxhdXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlBhbmFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBhcHVhLU5vdsOhIEd1aW5lYVwiLFxuICAgIFwiTmV6w6F2aXNsw70gxaF0w6F0IFBhcHVhLU5vdsOhIEd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YWpcIixcbiAgICBcIlBhcmFndWFqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlBlcnXDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJQb2JyZcW+aWUgU2xvbm92aW55XCIsXG4gICAgXCJSZXB1Ymxpa2EgUG9icmXFvmllIFNsb25vdmlueVwiLFxuICAgIFwiUG/EvnNrb1wiLFxuICAgIFwiUG/EvnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQb3J0dWdhbHNrb1wiLFxuICAgIFwiUG9ydHVnYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiUmFrw7pza29cIixcbiAgICBcIlJha8O6c2thIHJlcHVibGlrYVwiLFxuICAgIFwiUm92bsOta292w6EgR3VpbmVhXCIsXG4gICAgXCJSZXB1Ymxpa2EgUm92bsOta292w6EgR3VpbmVhXCIsXG4gICAgXCJSdW11bnNrb1wiLFxuICAgIFwiUnVtdW5za29cIixcbiAgICBcIlJ1c2tvXCIsXG4gICAgXCJSdXNrw6EgZmVkZXLDoWNpYVwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJSd2FuZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTYWx2w6Fkb3JcIixcbiAgICBcIlNhbHbDoWRvcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiTmV6w6F2aXNsw70gxaF0w6F0IFNhbW9hXCIsXG4gICAgXCJTYW4gTWFyw61ub1wiLFxuICAgIFwiU2FubWFyw61uc2thIHJlcHVibGlrYVwiLFxuICAgIFwiU2F1ZHNrw6EgQXLDoWJpYVwiLFxuICAgIFwiS3LDocS+b3ZzdHZvIFNhdWRza2VqIEFyw6FiaWVcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNlbmVnYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2V5Y2hlbHlcIixcbiAgICBcIlNleWNoZWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2llcnJhIExlb25lXCIsXG4gICAgXCJSZXB1Ymxpa2EgU2llcnJhIExlb25lXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU2luZ2FwdXJza2EgcmVwdWJsaWthXCIsXG4gICAgXCJTbG92ZW5za29cIixcbiAgICBcIlNsb3ZlbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTbG92aW5za29cIixcbiAgICBcIlNsb3ZpbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTb23DoWxza29cIixcbiAgICBcIlNvbcOhbHNrYSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU3BvamVuw6kgYXJhYnNrw6kgZW1pcsOhdHlcIixcbiAgICBcIlNwb2plbsOpIGFyYWJza8OpIGVtaXLDoXR5XCIsXG4gICAgXCJTcG9qZW7DqSDFoXTDoXR5IGFtZXJpY2vDqVwiLFxuICAgIFwiU3BvamVuw6kgxaF0w6F0eSBhbWVyaWNrw6lcIixcbiAgICBcIlNyYnNrbyBhIMSMaWVybmEgSG9yYVwiLFxuICAgIFwiU3Jic2tvIGEgxIxpZXJuYSBIb3JhXCIsXG4gICAgXCJTcsOtIExhbmthXCIsXG4gICAgXCJEZW1va3JhdGlja8OhIHNvY2lhbGlzdGlja8OhIHJlcHVibGlrYSBTcsOtIExhbmthXCIsXG4gICAgXCJTdHJlZG9hZnJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlN0cmVkb2Fmcmlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU3Vkw6FuXCIsXG4gICAgXCJTdWTDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJTdXJpbmFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlN2YXppanNrb1wiLFxuICAgIFwiU3Zhemlqc2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIlN2w6R0w6EgTHVjaWFcIixcbiAgICBcIlN2w6R0w6EgTHVjaWFcIixcbiAgICBcIlN2w6R0w70gS3JpxaF0b2YgYSBOZXZpc1wiLFxuICAgIFwiRmVkZXLDoWNpYSBTdsOkdMO9IEtyacWhdG9mIGEgTmV2aXNcIixcbiAgICBcIlN2LiBUb23DocWhIGEgUHJpbmNvdiBPc3Ryb3ZcIixcbiAgICBcIkRlbW9rcmF0aWNrw6EgcmVwdWJsaWthIFN2w6R0w70gVG9tw6HFoSBhIFByaW5jb3YgT3N0cm92XCIsXG4gICAgXCJTdi4gVmluY2VudCBhIEdyZW5hZMOtbnlcIixcbiAgICBcIlN2w6R0w70gVmluY2VudCBhIEdyZW5hZMOtbnlcIixcbiAgICBcIlPDvXJpYVwiLFxuICAgIFwiU8O9cnNrYSBhcmFic2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIsWgYWxhbcO6bm92ZSBvc3Ryb3Z5XCIsXG4gICAgXCLFoGFsYW3Dum5vdmUgb3N0cm92eVwiLFxuICAgIFwixaBwYW5pZWxza29cIixcbiAgICBcIsWgcGFuaWVsc2tlIGtyw6HEvm92c3R2b1wiLFxuICAgIFwixaB2YWrEjWlhcnNrb1wiLFxuICAgIFwixaB2YWrEjWlhcnNrYSBrb25mZWRlcsOhY2lhXCIsXG4gICAgXCLFoHbDqWRza29cIixcbiAgICBcIsWgdsOpZHNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIlRhZMW+aWtpc3RhblwiLFxuICAgIFwiVGFkxb5pY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlRhbGlhbnNrb1wiLFxuICAgIFwiVGFsaWFuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiVGFuesOhbmlhXCIsXG4gICAgXCJUYW56w6FuaWpza8OhIHpqZWRub3RlbsOhIHJlcHVibGlrYVwiLFxuICAgIFwiVGhhanNrb1wiLFxuICAgIFwiVGhhanNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb8W+c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUb27FvnNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJUcmluaWRhZCBhIFRvYmFnb1wiLFxuICAgIFwiUmVwdWJsaWthIFRyaW5pZGFkIGEgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2tvXCIsXG4gICAgXCJUdW5pc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlR1cmVja29cIixcbiAgICBcIlR1cmVja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVHVya23DqW5za29cIixcbiAgICBcIlR1cmttw6luc2tvXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVZ2FuZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJVa3JhamluYVwiLFxuICAgIFwiVXJ1Z3VhalwiLFxuICAgIFwiVXJ1Z3VhanNrw6EgdsO9Y2hvZG7DoSByZXB1Ymxpa2FcIixcbiAgICBcIlV6YmVraXN0YW5cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZhbnVhdHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJWYXRpa8OhblwiLFxuICAgIFwiU3bDpHTDoSBTdG9saWNhXCIsXG4gICAgXCJWZcS+a8OhIEJyaXTDoW5pYVwiLFxuICAgIFwiU3BvamVuw6kga3LDocS+b3ZzdHZvIFZlxL5rZWogQnJpdMOhbmllIGEgU2V2ZXJuw6lobyDDjXJza2FcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVuZXp1ZWxza8OhIGJvbMOtdmFyb3Zza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiVmlldG5hbXNrw6Egc29jaWFsaXN0aWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJWw71jaG9kbsO9IFRpbW9yXCIsXG4gICAgXCJEZW1va3JhdGlja8OhIHJlcHVibGlrYSBWw71jaG9kbsO9IFRpbW9yXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlphbWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiWmltYmFid2lhbnNrYSByZXB1Ymxpa2FcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiLFxuICAgIFwiIyMjXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHQuICMjI1wiLFxuICAgIFwiU3VpdGUgIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjICMjXCIsXG4gICAgXCIjIyAjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtdLFxuICBcInN0YXRlX2FiYnJcIjogW10sXG4gIFwidGltZV96b25lXCI6IFtcbiAgICBcIlBhY2lmaWMvTWlkd2F5XCIsXG4gICAgXCJQYWNpZmljL1BhZ29fUGFnb1wiLFxuICAgIFwiUGFjaWZpYy9Ib25vbHVsdVwiLFxuICAgIFwiQW1lcmljYS9KdW5lYXVcIixcbiAgICBcIkFtZXJpY2EvTG9zX0FuZ2VsZXNcIixcbiAgICBcIkFtZXJpY2EvVGlqdWFuYVwiLFxuICAgIFwiQW1lcmljYS9EZW52ZXJcIixcbiAgICBcIkFtZXJpY2EvUGhvZW5peFwiLFxuICAgIFwiQW1lcmljYS9DaGlodWFodWFcIixcbiAgICBcIkFtZXJpY2EvTWF6YXRsYW5cIixcbiAgICBcIkFtZXJpY2EvQ2hpY2Fnb1wiLFxuICAgIFwiQW1lcmljYS9SZWdpbmFcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTW9udGVycmV5XCIsXG4gICAgXCJBbWVyaWNhL0d1YXRlbWFsYVwiLFxuICAgIFwiQW1lcmljYS9OZXdfWW9ya1wiLFxuICAgIFwiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpc1wiLFxuICAgIFwiQW1lcmljYS9Cb2dvdGFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9MaW1hXCIsXG4gICAgXCJBbWVyaWNhL0hhbGlmYXhcIixcbiAgICBcIkFtZXJpY2EvQ2FyYWNhc1wiLFxuICAgIFwiQW1lcmljYS9MYV9QYXpcIixcbiAgICBcIkFtZXJpY2EvU2FudGlhZ29cIixcbiAgICBcIkFtZXJpY2EvU3RfSm9obnNcIixcbiAgICBcIkFtZXJpY2EvU2FvX1BhdWxvXCIsXG4gICAgXCJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXNcIixcbiAgICBcIkFtZXJpY2EvR3V5YW5hXCIsXG4gICAgXCJBbWVyaWNhL0dvZHRoYWJcIixcbiAgICBcIkF0bGFudGljL1NvdXRoX0dlb3JnaWFcIixcbiAgICBcIkF0bGFudGljL0F6b3Jlc1wiLFxuICAgIFwiQXRsYW50aWMvQ2FwZV9WZXJkZVwiLFxuICAgIFwiRXVyb3BlL0R1YmxpblwiLFxuICAgIFwiRXVyb3BlL0xvbmRvblwiLFxuICAgIFwiRXVyb3BlL0xpc2JvblwiLFxuICAgIFwiRXVyb3BlL0xvbmRvblwiLFxuICAgIFwiQWZyaWNhL0Nhc2FibGFuY2FcIixcbiAgICBcIkFmcmljYS9Nb25yb3ZpYVwiLFxuICAgIFwiRXRjL1VUQ1wiLFxuICAgIFwiRXVyb3BlL0JlbGdyYWRlXCIsXG4gICAgXCJFdXJvcGUvQnJhdGlzbGF2YVwiLFxuICAgIFwiRXVyb3BlL0J1ZGFwZXN0XCIsXG4gICAgXCJFdXJvcGUvTGp1YmxqYW5hXCIsXG4gICAgXCJFdXJvcGUvUHJhZ3VlXCIsXG4gICAgXCJFdXJvcGUvU2FyYWpldm9cIixcbiAgICBcIkV1cm9wZS9Ta29wamVcIixcbiAgICBcIkV1cm9wZS9XYXJzYXdcIixcbiAgICBcIkV1cm9wZS9aYWdyZWJcIixcbiAgICBcIkV1cm9wZS9CcnVzc2Vsc1wiLFxuICAgIFwiRXVyb3BlL0NvcGVuaGFnZW5cIixcbiAgICBcIkV1cm9wZS9NYWRyaWRcIixcbiAgICBcIkV1cm9wZS9QYXJpc1wiLFxuICAgIFwiRXVyb3BlL0Ftc3RlcmRhbVwiLFxuICAgIFwiRXVyb3BlL0JlcmxpblwiLFxuICAgIFwiRXVyb3BlL0JlcmxpblwiLFxuICAgIFwiRXVyb3BlL1JvbWVcIixcbiAgICBcIkV1cm9wZS9TdG9ja2hvbG1cIixcbiAgICBcIkV1cm9wZS9WaWVubmFcIixcbiAgICBcIkFmcmljYS9BbGdpZXJzXCIsXG4gICAgXCJFdXJvcGUvQnVjaGFyZXN0XCIsXG4gICAgXCJBZnJpY2EvQ2Fpcm9cIixcbiAgICBcIkV1cm9wZS9IZWxzaW5raVwiLFxuICAgIFwiRXVyb3BlL0tpZXZcIixcbiAgICBcIkV1cm9wZS9SaWdhXCIsXG4gICAgXCJFdXJvcGUvU29maWFcIixcbiAgICBcIkV1cm9wZS9UYWxsaW5uXCIsXG4gICAgXCJFdXJvcGUvVmlsbml1c1wiLFxuICAgIFwiRXVyb3BlL0F0aGVuc1wiLFxuICAgIFwiRXVyb3BlL0lzdGFuYnVsXCIsXG4gICAgXCJFdXJvcGUvTWluc2tcIixcbiAgICBcIkFzaWEvSmVydXNhbGVtXCIsXG4gICAgXCJBZnJpY2EvSGFyYXJlXCIsXG4gICAgXCJBZnJpY2EvSm9oYW5uZXNidXJnXCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJBc2lhL0t1d2FpdFwiLFxuICAgIFwiQXNpYS9SaXlhZGhcIixcbiAgICBcIkFmcmljYS9OYWlyb2JpXCIsXG4gICAgXCJBc2lhL0JhZ2hkYWRcIixcbiAgICBcIkFzaWEvVGVocmFuXCIsXG4gICAgXCJBc2lhL011c2NhdFwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvQmFrdVwiLFxuICAgIFwiQXNpYS9UYmlsaXNpXCIsXG4gICAgXCJBc2lhL1llcmV2YW5cIixcbiAgICBcIkFzaWEvS2FidWxcIixcbiAgICBcIkFzaWEvWWVrYXRlcmluYnVyZ1wiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL0thcmFjaGlcIixcbiAgICBcIkFzaWEvVGFzaGtlbnRcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9LYXRobWFuZHVcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvQ29sb21ib1wiLFxuICAgIFwiQXNpYS9BbG1hdHlcIixcbiAgICBcIkFzaWEvTm92b3NpYmlyc2tcIixcbiAgICBcIkFzaWEvUmFuZ29vblwiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0Jhbmdrb2tcIixcbiAgICBcIkFzaWEvSmFrYXJ0YVwiLFxuICAgIFwiQXNpYS9LcmFzbm95YXJza1wiLFxuICAgIFwiQXNpYS9TaGFuZ2hhaVwiLFxuICAgIFwiQXNpYS9DaG9uZ3FpbmdcIixcbiAgICBcIkFzaWEvSG9uZ19Lb25nXCIsXG4gICAgXCJBc2lhL1VydW1xaVwiLFxuICAgIFwiQXNpYS9LdWFsYV9MdW1wdXJcIixcbiAgICBcIkFzaWEvU2luZ2Fwb3JlXCIsXG4gICAgXCJBc2lhL1RhaXBlaVwiLFxuICAgIFwiQXVzdHJhbGlhL1BlcnRoXCIsXG4gICAgXCJBc2lhL0lya3V0c2tcIixcbiAgICBcIkFzaWEvVWxhYW5iYWF0YXJcIixcbiAgICBcIkFzaWEvU2VvdWxcIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvWWFrdXRza1wiLFxuICAgIFwiQXVzdHJhbGlhL0RhcndpblwiLFxuICAgIFwiQXVzdHJhbGlhL0FkZWxhaWRlXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvU3lkbmV5XCIsXG4gICAgXCJBdXN0cmFsaWEvQnJpc2JhbmVcIixcbiAgICBcIkF1c3RyYWxpYS9Ib2JhcnRcIixcbiAgICBcIkFzaWEvVmxhZGl2b3N0b2tcIixcbiAgICBcIlBhY2lmaWMvR3VhbVwiLFxuICAgIFwiUGFjaWZpYy9Qb3J0X01vcmVzYnlcIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiQXNpYS9NYWdhZGFuXCIsXG4gICAgXCJQYWNpZmljL05vdW1lYVwiLFxuICAgIFwiUGFjaWZpYy9GaWppXCIsXG4gICAgXCJBc2lhL0thbWNoYXRrYVwiLFxuICAgIFwiUGFjaWZpYy9NYWp1cm9cIixcbiAgICBcIlBhY2lmaWMvQXVja2xhbmRcIixcbiAgICBcIlBhY2lmaWMvQXVja2xhbmRcIixcbiAgICBcIlBhY2lmaWMvVG9uZ2F0YXB1XCIsXG4gICAgXCJQYWNpZmljL0Zha2FvZm9cIixcbiAgICBcIlBhY2lmaWMvQXBpYVwiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIkLDoW5vdmNlIG5hZCBCZWJyYXZvdVwiLFxuICAgIFwiQmFuc2vDoSBCeXN0cmljYVwiLFxuICAgIFwiQmFuc2vDoSDFoHRpYXZuaWNhXCIsXG4gICAgXCJCYXJkZWpvdlwiLFxuICAgIFwiQnJhdGlzbGF2YSBJXCIsXG4gICAgXCJCcmF0aXNsYXZhIElJXCIsXG4gICAgXCJCcmF0aXNsYXZhIElJSVwiLFxuICAgIFwiQnJhdGlzbGF2YSBJVlwiLFxuICAgIFwiQnJhdGlzbGF2YSBWXCIsXG4gICAgXCJCcmV6bm9cIixcbiAgICBcIkJ5dMSNYVwiLFxuICAgIFwixIxhZGNhXCIsXG4gICAgXCJEZXR2YVwiLFxuICAgIFwiRG9sbsO9IEt1YsOtblwiLFxuICAgIFwiRHVuYWpza8OhIFN0cmVkYVwiLFxuICAgIFwiR2FsYW50YVwiLFxuICAgIFwiR2VsbmljYVwiLFxuICAgIFwiSGxvaG92ZWNcIixcbiAgICBcIkh1bWVubsOpXCIsXG4gICAgXCJJbGF2YVwiLFxuICAgIFwiS2XFvm1hcm9rXCIsXG4gICAgXCJLb23DoXJub1wiLFxuICAgIFwiS2/FoWljZSBJXCIsXG4gICAgXCJLb8WhaWNlIElJXCIsXG4gICAgXCJLb8WhaWNlIElJSVwiLFxuICAgIFwiS2/FoWljZSBJVlwiLFxuICAgIFwiS2/FoWljZS1va29saWVcIixcbiAgICBcIktydXBpbmFcIixcbiAgICBcIkt5c3Vja8OpIE5vdsOpIE1lc3RvXCIsXG4gICAgXCJMZXZpY2VcIixcbiAgICBcIkxldm/EjWFcIixcbiAgICBcIkxpcHRvdnNrw70gTWlrdWzDocWhXCIsXG4gICAgXCJMdcSNZW5lY1wiLFxuICAgIFwiTWFsYWNreVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNZWR6aWxhYm9yY2VcIixcbiAgICBcIk1pY2hhbG92Y2VcIixcbiAgICBcIk15amF2YVwiLFxuICAgIFwiTsOhbWVzdG92b1wiLFxuICAgIFwiTml0cmFcIixcbiAgICBcIk5vdsOpIE1lc3RvIG4uVsOhaG9tXCIsXG4gICAgXCJOb3bDqSBaw6Fta3lcIixcbiAgICBcIlBhcnRpesOhbnNrZVwiLFxuICAgIFwiUGV6aW5va1wiLFxuICAgIFwiUGllxaHFpWFueVwiLFxuICAgIFwiUG9sdMOhclwiLFxuICAgIFwiUG9wcmFkXCIsXG4gICAgXCJQb3Zhxb5za8OhIEJ5c3RyaWNhXCIsXG4gICAgXCJQcmXFoW92XCIsXG4gICAgXCJQcmlldmlkemFcIixcbiAgICBcIlDDumNob3ZcIixcbiAgICBcIlJldsO6Y2FcIixcbiAgICBcIlJpbWF2c2vDoSBTb2JvdGFcIixcbiAgICBcIlJvxb7FiGF2YVwiLFxuICAgIFwiUnXFvm9tYmVyb2tcIixcbiAgICBcIlNhYmlub3ZcIixcbiAgICBcIsWgYcS+YVwiLFxuICAgIFwiU2VuZWNcIixcbiAgICBcIlNlbmljYVwiLFxuICAgIFwiU2thbGljYVwiLFxuICAgIFwiU25pbmFcIixcbiAgICBcIlNvYnJhbmNlXCIsXG4gICAgXCJTcGnFoXNrw6EgTm92w6EgVmVzXCIsXG4gICAgXCJTdGFyw6EgxL11Ym92xYhhXCIsXG4gICAgXCJTdHJvcGtvdlwiLFxuICAgIFwiU3ZpZG7DrWtcIixcbiAgICBcIlRvcG/EvsSNYW55XCIsXG4gICAgXCJUcmViacWhb3ZcIixcbiAgICBcIlRyZW7EjcOtblwiLFxuICAgIFwiVHJuYXZhXCIsXG4gICAgXCJUdXLEjWlhbnNrZSBUZXBsaWNlXCIsXG4gICAgXCJUdnJkb8Whw61uXCIsXG4gICAgXCJWZcS+a8O9IEtydMOtxaFcIixcbiAgICBcIlZyYW5vdiBuYWQgVG9wxL5vdVwiLFxuICAgIFwixb1hcm5vdmljYVwiLFxuICAgIFwixb1pYXIgbmFkIEhyb25vbVwiLFxuICAgIFwixb1pbGluYVwiLFxuICAgIFwiWmxhdMOpIE1vcmF2Y2VcIixcbiAgICBcIlp2b2xlblwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldFwiOiBbXG4gICAgXCJBZMOhbWlob1wiLFxuICAgIFwiQWhvalwiLFxuICAgIFwiQWxiw61uYSBCcnVub3Zza8OpaG9cIixcbiAgICBcIkFsYnJlY2h0b3ZhXCIsXG4gICAgXCJBbGVqb3bDoVwiLFxuICAgIFwiQWxlxaFvdmFcIixcbiAgICBcIkFsaWJlcm5ldG92w6FcIixcbiAgICBcIkFsxb5iZXTDrW5za2FcIixcbiAgICBcIkFsxb5iZXR5IEd3ZXJrb3ZlalwiLFxuICAgIFwiQW1icm9zZWhvXCIsXG4gICAgXCJBbWJydcWhb3ZhXCIsXG4gICAgXCJBbWVyaWNrw6FcIixcbiAgICBcIkFtZXJpY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIkFtZXJpY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIkFuZHJlamEgTXLDoXphXCIsXG4gICAgXCJBbmRyZWphIFBsw6F2a3VcIixcbiAgICBcIkFuZHJ1c292b3ZhXCIsXG4gICAgXCJBbmVuc2vDoVwiLFxuICAgIFwiQW5lbnNrw6FcIixcbiAgICBcIkFudG9sc2vDoVwiLFxuICAgIFwiQXN0cm9ub21pY2vDoVwiLFxuICAgIFwiQXN0cm92w6FcIixcbiAgICBcIkF6YWxrb3bDoVwiLFxuICAgIFwiQXpvdnNrw6FcIixcbiAgICBcIkJhYnXFoWtvdmFcIixcbiAgICBcIkJhY2hvdmFcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhanpvdmFcIixcbiAgICBcIkJhbmPDrWtvdmVqXCIsXG4gICAgXCJCYW7DrWNrYVwiLFxuICAgIFwiQmFuw61rb3ZhXCIsXG4gICAgXCJCYW5za29ieXN0cmlja8OhXCIsXG4gICAgXCJCYW7FoWVsb3ZhXCIsXG4gICAgXCJCYXJkZWpvdnNrw6FcIixcbiAgICBcIkJhcnTDs2tvdmFcIixcbiAgICBcIkJhcnRvxYhvdmFcIixcbiAgICBcIkJhcnRvxaFrb3ZhXCIsXG4gICAgXCJCYcWhdG92w6FcIixcbiAgICBcIkJhem92w6FcIixcbiAgICBcIkJhxb5hbnRpYVwiLFxuICAgIFwiQmVibGF2w6lob1wiLFxuICAgIFwiQmVja292c2vDoVwiLFxuICAgIFwiQmVkxL5vdsOhXCIsXG4gICAgXCJCZWzDoW5pa292w6FcIixcbiAgICBcIkJlbGVocmFkc2vDoVwiLFxuICAgIFwiQmVsaW5za8OpaG9cIixcbiAgICBcIkJlbG9wb3RvY2vDqWhvXCIsXG4gICAgXCJCZcWIYWRpY2vDoVwiLFxuICAgIFwiQmVuY8O6cm92YVwiLFxuICAgIFwiQmVuZWRpa3RpaG9cIixcbiAgICBcIkJlbmlha292YVwiLFxuICAgIFwiQmVybm9sw6Frb3ZhXCIsXG4gICAgXCJCZXNreWRza8OhXCIsXG4gICAgXCJCZXRsaWFyc2thXCIsXG4gICAgXCJCZXpydcSNb3ZhXCIsXG4gICAgXCJCaWVsYVwiLFxuICAgIFwiQmllbGtvdmFcIixcbiAgICBcIkJqw7ZybnNvbm92YVwiLFxuICAgIFwiQmxhZ29ldm92YVwiLFxuICAgIFwiQmxhdG5pY2vDoVwiLFxuICAgIFwiQmx1bWVudMOhbHNrYVwiLFxuICAgIFwiQmx5c2vDocSNb3bDoVwiLFxuICAgIFwiQm/EjW7DoVwiLFxuICAgIFwiQm9ocm92YVwiLFxuICAgIFwiQm9ow7rFiG92YVwiLFxuICAgIFwiQm9qbmlja8OhXCIsXG4gICAgXCJCb3JvZMOhxI1vdmFcIixcbiAgICBcIkJvcnNrw6FcIixcbiAgICBcIkJvc8Oha292YVwiLFxuICAgIFwiQm90YW5pY2vDoVwiLFxuICAgIFwiQm90dG92YVwiLFxuICAgIFwiQm/FvmVueSBOxJttY292ZWpcIixcbiAgICBcIkLDtHJpa1wiLFxuICAgIFwiQnJhZMOhxI1vdmFcIixcbiAgICBcIkJyYWRsaWFuc2thXCIsXG4gICAgXCJCcmFuxI1za8OhXCIsXG4gICAgXCJCcmF0c2vDoVwiLFxuICAgIFwiQnJlc3RvdsOhXCIsXG4gICAgXCJCcmV6b3Zza8OhXCIsXG4gICAgXCJCcmllxb5reVwiLFxuICAgIFwiQnJuaWFuc2thXCIsXG4gICAgXCJCcm9kbsOhXCIsXG4gICAgXCJCcm9kc2vDoVwiLFxuICAgIFwiQnJvc2t5xYhvdsOhXCIsXG4gICAgXCJCxZllY2xhdnNrw6FcIixcbiAgICBcIkJ1ZGF0w61uc2thXCIsXG4gICAgXCJCdWRhdMOtbnNrYVwiLFxuICAgIFwiQnVkYXTDrW5za2FcIixcbiAgICBcIkLDumRrb3ZhICBjZXN0YVwiLFxuICAgIFwiQnVkb3ZhdGXEvnNrw6FcIixcbiAgICBcIkJ1ZHnFocOtbnNrYVwiLFxuICAgIFwiQnVkecWhw61uc2thXCIsXG4gICAgXCJCdWtvdsOhXCIsXG4gICAgXCJCdWt1cmXFoXRza8OhXCIsXG4gICAgXCJCdWxoYXJza8OhXCIsXG4gICAgXCJCdWzDrWtvdmFcIixcbiAgICBcIkJ5c3Ryw6lob1wiLFxuICAgIFwiQnpvdsOtY2thXCIsXG4gICAgXCJDYWJsa292YVwiLFxuICAgIFwiQ2VzdGEgbmEgxIxlcnZlbsO9IG1vc3RcIixcbiAgICBcIkNlc3RhIG5hIMSMZXJ2ZW7DvSBtb3N0XCIsXG4gICAgXCJDZXN0YSBuYSBTZW5lY1wiLFxuICAgIFwiQ2lra2Vyb3ZhXCIsXG4gICAgXCJDaW50b3LDrW5za2FcIixcbiAgICBcIkNpbnR1bG92YVwiLFxuICAgIFwiQ3Vrcm92w6FcIixcbiAgICBcIkN5cmlsb3ZhXCIsXG4gICAgXCLEjGFqYWtvdmFcIixcbiAgICBcIsSMYWprb3Zza8OpaG9cIixcbiAgICBcIsSMYWtsb3Zza8OhXCIsXG4gICAgXCLEjGFsb3Zza8OhXCIsXG4gICAgXCLEjGFwYWpldm92YVwiLFxuICAgIFwixIxhcGtvdmFcIixcbiAgICBcIsSMw6Fyc2tlaG9cIixcbiAgICBcIsSMYXZvanNrw6lob1wiLFxuICAgIFwixIxlxI1pbm92w6FcIixcbiAgICBcIsSMZWxha292c2vDqWhvXCIsXG4gICAgXCLEjGVyZcWhxYhvdsOhXCIsXG4gICAgXCLEjGVybnnFoWV2c2vDqWhvXCIsXG4gICAgXCLEjGVydmXFiG92YVwiLFxuICAgIFwixIxlc2vDoVwiLFxuICAgIFwixIxlc2tvc2xvdmVuc2vDvWNoIHBhclwiLFxuICAgIFwixIxpcGvDoXJza2FcIixcbiAgICBcIsSMbWVsw61rb3ZhXCIsXG4gICAgXCLEjG1lxL5vdmVjXCIsXG4gICAgXCLEjHVsZW5vdmFcIixcbiAgICBcIkRhbGlib3Jvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEYW5rb3Zza8OpaG9cIixcbiAgICBcIkRhcmdvdnNrw6FcIixcbiAgICBcIsSOYXRlbGlub3bDoVwiLFxuICAgIFwiRGF4bmVyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiRGV2w61uc2thIGNlc3RhXCIsXG4gICAgXCJEbGjDqSBkaWVseSBJLlwiLFxuICAgIFwiRGxow6kgZGllbHkgSUkuXCIsXG4gICAgXCJEbGjDqSBkaWVseSBJSUkuXCIsXG4gICAgXCJEb2Jyb3ZpxI1vdmFcIixcbiAgICBcIkRvYnJvdmnEjW92YVwiLFxuICAgIFwiRG9icm92c2vDqWhvXCIsXG4gICAgXCJEb2LFoWluc2vDqWhvXCIsXG4gICAgXCJEb2huYWxvdmFcIixcbiAgICBcIkRvaG7DoW55aG9cIixcbiAgICBcIkRvbGXFvmFsb3ZhXCIsXG4gICAgXCJEb2xuw6FcIixcbiAgICBcIkRvbG5vemVtc2vDoSBjZXN0YVwiLFxuICAgIFwiRG9ta8OhcnNrYVwiLFxuICAgIFwiRG9tb3bDqSByb2xlXCIsXG4gICAgXCJEb25uZXJvdmFcIixcbiAgICBcIkRvbm92YWxvdmFcIixcbiAgICBcIkRvc3RvamV2c2vDqWhvIHJhZFwiLFxuICAgIFwiRHIuIFZsYWRpbcOtcmEgQ2xlbWVuXCIsXG4gICAgXCJEcmV2ZW7DoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJ1xb5pY292w6FcIixcbiAgICBcIkRydcW+c3Rldm7DoVwiLFxuICAgIFwiRHVibmlja8OhXCIsXG4gICAgXCJEdWJvdsOhXCIsXG4gICAgXCJEw7picmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiRHVkb3ZhXCIsXG4gICAgXCJEdWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEdWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEdW5hanNrw6FcIixcbiAgICBcIkR2b8WZw6Frb3ZvIG7DoWJyZcW+aWVcIixcbiAgICBcIkVkaXNvbm92YVwiLFxuICAgIFwiRWluc3RlaW5vdmFcIixcbiAgICBcIkVsZWt0csOhcmVuc2vDoVwiLFxuICAgIFwiRXhuw6Fyb3ZhXCIsXG4gICAgXCJGLiBLb3N0a3VcIixcbiAgICBcIkZhZHJ1c3pvdmFcIixcbiAgICBcIkZham5vcm92byBuw6FicmXFvmllXCIsXG4gICAgXCJGw6FuZGx5aG9cIixcbiAgICBcIkZhcmVibsOhXCIsXG4gICAgXCJGYXJza8OhXCIsXG4gICAgXCJGYXJza8OpaG9cIixcbiAgICBcIkZhenXEvm92w6FcIixcbiAgICBcIkZlZGlub3ZhXCIsXG4gICAgXCJGZXJpZW7EjcOta292YVwiLFxuICAgIFwiRmlhbGtvdsOpIMO6ZG9saWVcIixcbiAgICBcIkZpYmljaG92YVwiLFxuICAgIFwiRmlsacOhbG5lIG7DoWRyYcW+aWVcIixcbiAgICBcIkZsw7ZnbG92YVwiLFxuICAgIFwiRmxvcmnDoW5za2UgbsOhbWVzdGllXCIsXG4gICAgXCJGcmHFiGEgS3LDocS+YVwiLFxuICAgIFwiRnJhbmNpc2NpaG9cIixcbiAgICBcIkZyYW5jw7p6c2t5Y2ggcGFydGl6w6FcIixcbiAgICBcIkZyYW50acWha8OhbnNrYVwiLFxuICAgIFwiRnJhbnRpxaFrw6Fuc2tlIG7DoW1lc3RcIixcbiAgICBcIkZ1cmRla292YVwiLFxuICAgIFwiRnVyZGVrb3ZhXCIsXG4gICAgXCJHYWLEjcOta292YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2Fqb3ZhXCIsXG4gICAgXCJHYWxha3RpY2vDoVwiLFxuICAgIFwiR2FsYW5kb3ZhXCIsXG4gICAgXCJHYWxsb3ZhXCIsXG4gICAgXCJHYWx2YW5paG9cIixcbiAgICBcIkdhxaFwYXLDrWtvdmFcIixcbiAgICBcIkdhxaF0YW5vdsOhXCIsXG4gICAgXCJHYXZsb3ZpxI1vdmFcIixcbiAgICBcIkdlbWVyc2vDoVwiLFxuICAgIFwiR2VyY2Vub3ZhXCIsXG4gICAgXCJHZXNzYXlvdmFcIixcbiAgICBcIkdldHRpbmdvdsOhXCIsXG4gICAgXCJHb2Ryb3ZhXCIsXG4gICAgXCJHb2dvxL5vdmFcIixcbiAgICBcIkdvbMOhxYhvdmFcIixcbiAgICBcIkdvbmRvdmFcIixcbiAgICBcIkdvcmFsc2vDoVwiLFxuICAgIFwiR29yYXpkb3ZhXCIsXG4gICAgXCJHb3Jrw6lob1wiLFxuICAgIFwiR3JlZ29yb3ZlalwiLFxuICAgIFwiR3LDtnNzbGluZ292YVwiLFxuICAgIFwiR3J1esOtbnNrYVwiLFxuICAgIFwiR3VuZHVsacSNb3ZhXCIsXG4gICAgXCJHdXNldm92YVwiLFxuICAgIFwiSGFhbm92YVwiLFxuICAgIFwiSGFidXJza8OhXCIsXG4gICAgXCJIYWxhxaFvdmFcIixcbiAgICBcIkjDoWxrb3ZhXCIsXG4gICAgXCJIw6Fsb3ZhXCIsXG4gICAgXCJIYW11bGlha292YVwiLFxuICAgIFwiSGFuw6Fja2FcIixcbiAgICBcIkhhbmRsb3Zza8OhXCIsXG4gICAgXCJIYW55IE1lbGnEjWtvdmVqXCIsXG4gICAgXCJIYXJtYW5lY2vDoVwiLFxuICAgIFwiSGFzacSNc2vDoVwiLFxuICAgIFwiSGF0dGFsb3ZhXCIsXG4gICAgXCJIYXZsw63EjWtvdmFcIixcbiAgICBcIkhhdnJhbmlhXCIsXG4gICAgXCJIYXlkbm92YVwiLFxuICAgIFwiSGVybGlhbnNrYVwiLFxuICAgIFwiSGVybGlhbnNrYVwiLFxuICAgIFwiSGV5ZHVrb3ZhXCIsXG4gICAgXCJIbGF2w6HEjWlrb3ZhXCIsXG4gICAgXCJIbGF2YXTDqWhvXCIsXG4gICAgXCJIbGF2bsOpIG7DoW1lc3RpZVwiLFxuICAgIFwiSGxib2vDoSBjZXN0YVwiLFxuICAgIFwiSGxib2vDoSBjZXN0YVwiLFxuICAgIFwiSGxpdm92w6FcIixcbiAgICBcIkhsdcSNw61uc2thXCIsXG4gICAgXCJIb2TDoWxvdmFcIixcbiAgICBcIkhvZMW+b3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiSG9sZWtvdmFcIixcbiAgICBcIkhvbMOtxI1za2FcIixcbiAgICBcIkhvbGzDqWhvXCIsXG4gICAgXCJIb2x1Ynlob1wiLFxuICAgIFwiSG9udGlhbnNrYVwiLFxuICAgIFwiSG9yw6Fyc2thXCIsXG4gICAgXCJIb3Juw6kgxb1pZGlueVwiLFxuICAgIFwiSG9yc2vDoVwiLFxuICAgIFwiSG9yc2vDoVwiLFxuICAgIFwiSHJhZFwiLFxuICAgIFwiSHJhZG7DqSDDumRvbGllXCIsXG4gICAgXCJIcmFjaG92w6FcIixcbiAgICBcIkhyYW5pxI1uw6FcIixcbiAgICBcIkhyZWJlbmRvdmFcIixcbiAgICBcIkhyw61ib3bDoVwiLFxuICAgIFwiSHJpxYhvdnNrw6FcIixcbiAgICBcIkhyb2LDoWtvdmFcIixcbiAgICBcIkhyb2LDoXJza2FcIixcbiAgICBcIkhyb2JvxYhvdmFcIixcbiAgICBcIkh1ZGVjb3ZhXCIsXG4gICAgXCJIdW1lbnNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJIdW1tZWxvdmFcIixcbiAgICBcIkh1cmJhbm92byBuw6FtZXN0aWVcIixcbiAgICBcIkh1cmJhbm92byBuw6FtZXN0aWVcIixcbiAgICBcIkh2aWV6ZG9zbGF2b3ZvIG7DoW1lc1wiLFxuICAgIFwiSMO9cm/FoW92YVwiLFxuICAgIFwiQ2hhbHVwa292YVwiLFxuICAgIFwiQ2hlbWlja8OhXCIsXG4gICAgXCJDaGx1bWVja8OpaG9cIixcbiAgICBcIkNob3J2w6F0c2thXCIsXG4gICAgXCJDaG9ydsOhdHNrYVwiLFxuICAgIFwiScS+anXFoWlub3ZhXCIsXG4gICAgXCJJbGtvdmnEjW92YVwiLFxuICAgIFwiSW5vdmVja8OhXCIsXG4gICAgXCJJbm92ZWNrw6FcIixcbiAgICBcIklza2VybsOta292w6FcIixcbiAgICBcIkl2YW5hIEhvcnbDoXRoYVwiLFxuICAgIFwiSXbDoW5za2EgY2VzdGFcIixcbiAgICBcIkouQy5Icm9uc2vDqWhvXCIsXG4gICAgXCJKYWJsb8WIb3bDoVwiLFxuICAgIFwiSmFkcm92w6FcIixcbiAgICBcIkpha2Fib3ZhXCIsXG4gICAgXCJKYWt1Ym92byBuw6FtZXN0aWVcIixcbiAgICBcIkphbW5pY2vDqWhvXCIsXG4gICAgXCJKw6FuYSBTdGFuaXNsYXZhXCIsXG4gICAgXCJKYW7DocSNa292YVwiLFxuICAgIFwiSmFuxI1vdmFcIixcbiAgICBcIkphbsOta292ZSByb2xlXCIsXG4gICAgXCJKYW5rb2xvdmFcIixcbiAgICBcIkrDoW5vxaHDrWtvdmFcIixcbiAgICBcIkrDoW5vxaFrb3ZhXCIsXG4gICAgXCJKYW5vdG92YVwiLFxuICAgIFwiSsOhbnNrYVwiLFxuICAgIFwiSmFudMOhcm92w6EgY2VzdGFcIixcbiAgICBcIkphcmFiaW5rb3bDoVwiLFxuICAgIFwiSmFybsOhXCIsXG4gICAgXCJKYXJvc2xhdm92YVwiLFxuICAgIFwiSmFyb8Whb3ZhXCIsXG4gICAgXCJKYXNlxYhvdsOhXCIsXG4gICAgXCJKYXNuw6FcIixcbiAgICBcIkphc292c2vDoVwiLFxuICAgIFwiSmFzdHJhYmlhXCIsXG4gICAgXCJKYcWhw61rb3ZhXCIsXG4gICAgXCJKYXZvcmluc2vDoVwiLFxuICAgIFwiSmF2b3JvdsOhXCIsXG4gICAgXCJKYXpkZWNrw6FcIixcbiAgICBcIkplZGzDrWtvdmFcIixcbiAgICBcIkrDqWfDqWhvXCIsXG4gICAgXCJKZWxhxI1pxI1vdmFcIixcbiAgICBcIkplbGVuaWFcIixcbiAgICBcIkplc2VubsOhXCIsXG4gICAgXCJKZXNlbnNrw6lob1wiLFxuICAgIFwiSmlyw6Fza292YVwiLFxuICAgIFwiSmlza3JvdmFcIixcbiAgICBcIkpvemVmc2vDoVwiLFxuICAgIFwiSnVuw6Fja2FcIixcbiAgICBcIkp1bmdtYW5ub3ZhXCIsXG4gICAgXCJKdXJpZ292byBuw6FtZXN0aWVcIixcbiAgICBcIkp1cm92c2vDqWhvXCIsXG4gICAgXCJKdXJza8OhXCIsXG4gICAgXCJKdXN0acSNbsOhXCIsXG4gICAgXCJLIGxvbXVcIixcbiAgICBcIksgxb1lbGV6bmVqIHN0dWRpZW5rZVwiLFxuICAgIFwiS2FsaW7EjWlha292YVwiLFxuICAgIFwiS2FtZW7DoXJza2FcIixcbiAgICBcIkthbWVubsOpIG7DoW1lc3RpZVwiLFxuICAgIFwiS2FwaWNvdmFcIixcbiAgICBcIkthcGl0dWxza8OhXCIsXG4gICAgXCJLYXBpdHVsc2vDvSBkdm9yXCIsXG4gICAgXCJLYXB1Y8OtbnNrYVwiLFxuICAgIFwiS2FwdcWhaWFuc2thXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJsb3Zlc2vDoVwiLFxuICAgIFwiS2FybG92ZXNrw6kgcmFtZW5vXCIsXG4gICAgXCJLYXJwYXRza8OhXCIsXG4gICAgXCJLYcWhbcOtcnNrYVwiLFxuICAgIFwiS2HFoXRpZWxza2FcIixcbiAgICBcIkthdWthenNrw6FcIixcbiAgICBcIktlbXBlbGVub3ZhXCIsXG4gICAgXCJLZcW+bWFyc2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIktsYWRuaWFuc2thXCIsXG4gICAgXCJLbGFyaXNrw6FcIixcbiAgICBcIktsw6HFoXRvcnNrw6FcIixcbiAgICBcIktsYXRvdnNrw6FcIixcbiAgICBcIktsYXRvdnNrw6FcIixcbiAgICBcIktsZW1lbnNvdmFcIixcbiAgICBcIktsaW5jb3bDoVwiLFxuICAgIFwiS2xvYnXEjW7DrWNrYVwiLFxuICAgIFwiS2xva2/EjW92YVwiLFxuICAgIFwiS8S+dWthdMOhXCIsXG4gICAgXCJLbWXFpW92byBuw6FtZXN0aWVcIixcbiAgICBcIktvY2XEvm92YVwiLFxuICAgIFwiS2/EjcOhbmtvdmFcIixcbiAgICBcIktvaMO6dG92YVwiLFxuICAgIFwiS29sw6Fyc2thXCIsXG4gICAgXCJLb2zDrXNrb3ZhXCIsXG4gICAgXCJLb2xsw6Fyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiS29sbMOhcm92byBuw6FtZXN0aWVcIixcbiAgICBcIktvbG3DoVwiLFxuICAgIFwiS29tw6FyxYhhbnNrw6FcIixcbiAgICBcIktvbcOhcm5pY2vDoVwiLFxuICAgIFwiS29tw6Fybmlja8OhXCIsXG4gICAgXCJLb21lbnNrw6lobyBuw6FtZXN0aWVcIixcbiAgICBcIktvbWluw6Fyc2thXCIsXG4gICAgXCJLb21vbmljb3bDoVwiLFxuICAgIFwiS29ub3Buw6FcIixcbiAgICBcIktvbnZhbGlua292w6FcIixcbiAgICBcIktvbnZlbnRuw6FcIixcbiAgICBcIktvcGFuaWNlXCIsXG4gICAgXCJLb3DEjWlhbnNrYVwiLFxuICAgIFwiS29wZXJuw61rb3ZhXCIsXG4gICAgXCJLb3JhYmluc2vDqWhvXCIsXG4gICAgXCJLb3JlbmnEjW92YVwiLFxuICAgIFwiS29zdGxpdsOpaG9cIixcbiAgICBcIktvc3RvbG7DoVwiLFxuICAgIFwiS2/FoWlja8OhXCIsXG4gICAgXCJLb8WhaWNrw6FcIixcbiAgICBcIktvxaFpY2vDoVwiLFxuICAgIFwiS292w6HEjXNrYVwiLFxuICAgIFwiS292b3JvYm90bsOtY2thXCIsXG4gICAgXCJLb3ppYVwiLFxuICAgIFwiS296aWFya2FcIixcbiAgICBcIktvem1vbmF1dGlja8OhXCIsXG4gICAgXCJLcmFqbsOhXCIsXG4gICAgXCJLcmFrb3Zza8OhXCIsXG4gICAgXCJLcsOhxL5vdnNrw6kgw7pkb2xpZVwiLFxuICAgIFwiS3Jhc2luc2vDqWhvXCIsXG4gICAgXCJLcmFza292YVwiLFxuICAgIFwiS3LDoXNuYVwiLFxuICAgIFwiS3LDoXNub2hvcnNrw6FcIixcbiAgICBcIktyYXNvdnNrw6lob1wiLFxuICAgIFwiS3LDoXRrYVwiLFxuICAgIFwiS3LEjW3DqXJ5aG9cIixcbiAgICBcIktyZW1uaWNrw6FcIixcbiAgICBcIktyZXPDoW5rb3ZhXCIsXG4gICAgXCJLcml2w6FcIixcbiAgICBcIktyacW+a292YVwiLFxuICAgIFwiS3LDrcW+bmFcIixcbiAgICBcIktyw63Fvm5hXCIsXG4gICAgXCJLcsOtxb5uYVwiLFxuICAgIFwiS3LDrcW+bmFcIixcbiAgICBcIktybWFub3ZhXCIsXG4gICAgXCJLcm9tcGHFoXNrw6FcIixcbiAgICBcIktydXBpbnNrw6FcIixcbiAgICBcIktydXBrb3ZhXCIsXG4gICAgXCJLdWLDoW5paG9cIixcbiAgICBcIkt1YsOtbnNrYVwiLFxuICAgIFwiS3VrbG92c2vDoVwiLFxuICAgIFwiS3VrdcSNw61ub3ZhXCIsXG4gICAgXCJLdWt1cmnEjW7DoVwiLFxuICAgIFwiS3Vsw63FoWtvdmFcIixcbiAgICBcIkt1bHTDunJuYVwiLFxuICAgIFwiS3VwZWNrw6lob1wiLFxuICAgIFwiS8O6cGXEvm7DoVwiLFxuICAgIFwiS3V0bMOta292YVwiLFxuICAgIFwiS3V0dXpvdm92YVwiLFxuICAgIFwiS3V6bcOhbnlob1wiLFxuICAgIFwiS3ZhxI1hbG92YVwiLFxuICAgIFwiS3ZldG7DoVwiLFxuICAgIFwiS8O9xI1lcnNrw6lob1wiLFxuICAgIFwiS3lqZXZza8OhXCIsXG4gICAgXCJLeXN1Y2vDoVwiLFxuICAgIFwiTGFib3JlY2vDoVwiLFxuICAgIFwiTGFja292YVwiLFxuICAgIFwiTGFkaXNsYXZhIFPDoXJ1XCIsXG4gICAgXCLEvWFkb3bDoVwiLFxuICAgIFwiTGFjaG92YVwiLFxuICAgIFwixL1hbGlvdsOhXCIsXG4gICAgXCJMYW1hxI1za8OhIGNlc3RhXCIsXG4gICAgXCJMYW1hxI1za8OhIGNlc3RhXCIsXG4gICAgXCJMYW1hbnNrw6lob1wiLFxuICAgIFwiTGFuZGVyZXJvdmFcIixcbiAgICBcIkxhbmdzZmVsZG92YVwiLFxuICAgIFwixL1hbm92w6FcIixcbiAgICBcIkxhc2tvbWVyc2vDqWhvXCIsXG4gICAgXCJMYXXEjWVrb3ZhXCIsXG4gICAgXCJMYXVyaW5za8OhXCIsXG4gICAgXCJMYXphcmV0c2vDoVwiLFxuICAgIFwiTGF6YXJldHNrw6FcIixcbiAgICBcIkxlZ2Vyc2vDqWhvXCIsXG4gICAgXCJMZWdpb27DoXJza2FcIixcbiAgICBcIkxlZ2lvbsOhcnNrYVwiLFxuICAgIFwiTGVob2Nrw6lob1wiLFxuICAgIFwiTGVob2Nrw6lob1wiLFxuICAgIFwiTGVuYXJkb3ZhXCIsXG4gICAgXCJMZXJtb250b3ZvdmFcIixcbiAgICBcIkxlc27DoVwiLFxuICAgIFwiTGXFoWtvdmFcIixcbiAgICBcIkxldGVja8OhXCIsXG4gICAgXCJMZXRpc2tvIE0uUi7FoHRlZsOhbmlrXCIsXG4gICAgXCJMZXRuw6FcIixcbiAgICBcIkxldsOhcnNrYVwiLFxuICAgIFwiTGV2aWNrw6FcIixcbiAgICBcIkxldm/EjXNrw6FcIixcbiAgICBcIkxpZGlja8OhXCIsXG4gICAgXCJMaWV0YXZza8OhXCIsXG4gICAgXCJMaWNoYXJkb3ZhXCIsXG4gICAgXCJMaXBvdsOhXCIsXG4gICAgXCJMaXBvdmlub3bDoVwiLFxuICAgIFwiTGlwdG92c2vDoVwiLFxuICAgIFwiTGlzdG92w6FcIixcbiAgICBcIkzDrcWhxI1pZSBuaXZ5XCIsXG4gICAgXCJMw63FocSNaWUgw7pkb2xpZVwiLFxuICAgIFwiTGl0b3Zza8OhXCIsXG4gICAgXCJMb2Ruw6FcIixcbiAgICBcIkxvbWJhcmRpbmlob1wiLFxuICAgIFwiTG9tb25vc292b3ZhXCIsXG4gICAgXCJMb3BlbsOtY2thXCIsXG4gICAgXCJMb3ZpbnNrw6lob1wiLFxuICAgIFwixL11YmlldG92c2vDoVwiLFxuICAgIFwixL11Ymluc2vDoVwiLFxuICAgIFwixL11YsS+YW5za8OhXCIsXG4gICAgXCLEvXVib2NobmlhbnNrYVwiLFxuICAgIFwixL11Ym92bmlhbnNrYVwiLFxuICAgIFwiTMO6xI1uYVwiLFxuICAgIFwixL11ZG92w6kgbsOhbWVzdGllXCIsXG4gICAgXCLEvXVkb3bDrXRhIEZ1bGx1XCIsXG4gICAgXCJMdWhhxI1vdmlja8OhXCIsXG4gICAgXCJMdcW+aWNrw6FcIixcbiAgICBcIkx1xb5uw6FcIixcbiAgICBcIkzDvWNlam7DoVwiLFxuICAgIFwiTHlrb3Zjb3bDoVwiLFxuICAgIFwiTS4gSGVsbGFcIixcbiAgICBcIk1hZ25ldG92w6FcIixcbiAgICBcIk1hY2hhcm92YVwiLFxuICAgIFwiTWFqYWtvdnNrw6lob1wiLFxuICAgIFwiTWFqZXJuw61rb3ZhXCIsXG4gICAgXCJNw6Fqa292YVwiLFxuICAgIFwiTcOham92w6FcIixcbiAgICBcIk1ha292aWNrw6lob1wiLFxuICAgIFwiTWFsw6FcIixcbiAgICBcIk1hbMOpIHDDoWxlbmlza29cIixcbiAgICBcIk1hbGlub3bDoVwiLFxuICAgIFwiTWFsw70gRHJhxb5kaWFrXCIsXG4gICAgXCJNYWzDvSB0cmhcIixcbiAgICBcIk1hbWF0ZXlvdmFcIixcbiAgICBcIk1hbWF0ZXlvdmFcIixcbiAgICBcIk3DoW5lc292byBuw6FtZXN0aWVcIixcbiAgICBcIk1hcmnDoW5za2FcIixcbiAgICBcIk1hcmllIEN1cmllLVNrbG9kb3dzXCIsXG4gICAgXCJNw6FyaWUgTWVkdmXEj292ZWpcIixcbiAgICBcIk1hcmtvdmFcIixcbiAgICBcIk1hcsOzdHlob1wiLFxuICAgIFwiTWFydMOha292ZWpcIixcbiAgICBcIk1hcnRpbsSNZWtvdmFcIixcbiAgICBcIk1hcnRpbsSNZWtvdmFcIixcbiAgICBcIk1hcnRpbmVuZ292YVwiLFxuICAgIFwiTWFydGluc2vDoVwiLFxuICAgIFwiTWF0ZWphIEJlbGFcIixcbiAgICBcIk1hdGVqa292YVwiLFxuICAgIFwiTWF0acSNbsOhXCIsXG4gICAgXCJNYXTDusWhb3ZhXCIsXG4gICAgXCJNZWRlbsOhXCIsXG4gICAgXCJNZWR6aWVya2FcIixcbiAgICBcIk1lZHppbGFib3JlY2vDoVwiLFxuICAgIFwiTWVybG90b3bDoVwiLFxuICAgIFwiTWVzYcSNbsOhXCIsXG4gICAgXCJNZXN0c2vDoVwiLFxuICAgIFwiTWV0ZW9yb3bDoVwiLFxuICAgIFwiTWV0b2RvdmFcIixcbiAgICBcIk1pY2tpZXdpY3pvdmFcIixcbiAgICBcIk1pZXJvdsOhXCIsXG4gICAgXCJNaWNoYWxza8OhXCIsXG4gICAgXCJNaWtvdsOtbmlob1wiLFxuICAgIFwiTWlrdWzDocWhc2thXCIsXG4gICAgXCJNaWxldGnEjW92YVwiLFxuICAgIFwiTWlsZXRpxI1vdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1saWVrw6FyZW5za8OhXCIsXG4gICAgXCJNbHluYXJvdmnEjW92YVwiLFxuICAgIFwiTWx5bnNrw6EgZG9saW5hXCIsXG4gICAgXCJNbHluc2vDoSBkb2xpbmFcIixcbiAgICBcIk1seW5za8OhIGRvbGluYVwiLFxuICAgIFwiTWx5bnNrw6kgbHVoeVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnlcIixcbiAgICBcIk1vZHJhbnNrw6FcIixcbiAgICBcIk1vam3DrXJvdmFcIixcbiAgICBcIk1va3LDocWIIHrDoWhvblwiLFxuICAgIFwiTW9rcm9ow6Fqc2thIGNlc3RhXCIsXG4gICAgXCJNb2xkYXZza8OhXCIsXG4gICAgXCJNb2xlY292YVwiLFxuICAgIFwiTW9yYXZza8OhXCIsXG4gICAgXCJNb3Nrb3Zza8OhXCIsXG4gICAgXCJNb3N0IFNOUFwiLFxuICAgIFwiTW9zdG92w6FcIixcbiAgICBcIk1vxaFvdnNrw6lob1wiLFxuICAgIFwiTW90w71saWFcIixcbiAgICBcIk1veXplc292YVwiLFxuICAgIFwiTW96YXJ0b3ZhXCIsXG4gICAgXCJNcmF6aWFyZW5za8OhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWNob3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiTXVyZ2HFoW92YVwiLFxuICAgIFwiTXXFoWvDoXRvdsOhXCIsXG4gICAgXCJNdcWhdG92w6FcIixcbiAgICBcIk3Dunplam7DoVwiLFxuICAgIFwiTXlqYXZza8OhXCIsXG4gICAgXCJNw710bmFcIixcbiAgICBcIk3DvXRuYVwiLFxuICAgIFwiTmEgQmFyw6Fua3VcIixcbiAgICBcIk5hIEJyZXppbsOhY2hcIixcbiAgICBcIk5hIEhyZWJpZW5rdVwiLFxuICAgIFwiTmEgS2FsdsOhcmlpXCIsXG4gICAgXCJOYSBLYW1ww6Fya2VcIixcbiAgICBcIk5hIGtvcGNpXCIsXG4gICAgXCJOYSBrcmnFvm92YXRrw6FjaFwiLFxuICAgIFwiTmEgbMOhbm9jaFwiLFxuICAgIFwiTmEgcGHFoWlcIixcbiAgICBcIk5hIHBpZXNrdVwiLFxuICAgIFwiTmEgUml2acOpcmVcIixcbiAgICBcIk5hIFNpdGluZVwiLFxuICAgIFwiTmEgU2xhdsOtbmVcIixcbiAgICBcIk5hIHN0csOhbmlcIixcbiAgICBcIk5hIMWgdHlyaWRzaWF0a3VcIixcbiAgICBcIk5hIMO6dnJhdGlcIixcbiAgICBcIk5hIHbFlcWha3VcIixcbiAgICBcIk5hIHbDvXNsbsOtXCIsXG4gICAgXCJOw6FixJtsa292YVwiLFxuICAgIFwiTsOhYnJlxb5pZSBhcm0uIGdlbi4gTFwiLFxuICAgIFwiTsOhYnJlxb5uw6FcIixcbiAgICBcIk5hZCBEdW5ham9tXCIsXG4gICAgXCJOYWQgbG9tb21cIixcbiAgICBcIk5hZCBsw7rEjWthbWlcIixcbiAgICBcIk5hZCBsw7rEjWthbWlcIixcbiAgICBcIk5hZCBvc3Ryb3ZvbVwiLFxuICAgIFwiTmFkIFNpaG/FpW91XCIsXG4gICAgXCJOw6FtZXN0aWUgMS4gbcOhamFcIixcbiAgICBcIk7DoW1lc3RpZSBBbGV4YW5kcmEgRFwiLFxuICAgIFwiTsOhbWVzdGllIEJpZWx5IGtyw63FvlwiLFxuICAgIFwiTsOhbWVzdGllIEhyYW5pxI1pYXJvdlwiLFxuICAgIFwiTsOhbWVzdGllIErDoW5hIFBhdmxhXCIsXG4gICAgXCJOw6FtZXN0aWUgxL11ZG92w610YSDFoHRcIixcbiAgICBcIk7DoW1lc3RpZSBNYXJ0aW5hIEJlblwiLFxuICAgIFwiTsOhbS4gTS5SLsWgdGVmw6FuaWthXCIsXG4gICAgXCJOw6FtZXN0aWUgc2xvYm9keVwiLFxuICAgIFwiTsOhbWVzdGllIHNsb2JvZHlcIixcbiAgICBcIk7DoW1lc3RpZSBTTlBcIixcbiAgICBcIk7DoW1lc3RpZSBTTlBcIixcbiAgICBcIk7DoW1lc3RpZSBzdi4gRnJhbnRpxaFcIixcbiAgICBcIk5hcmNpc292w6FcIixcbiAgICBcIk5lZGJhbG92YVwiLFxuICAgIFwiTmVrcmFzb3ZvdmFcIixcbiAgICBcIk5lcm9uZXRvdsOhXCIsXG4gICAgXCJOZXJ1ZG92YVwiLFxuICAgIFwiTmV2w6Rkem92w6FcIixcbiAgICBcIk5lesOhYnVka292w6FcIixcbiAgICBcIk5pxaVvdsOhXCIsXG4gICAgXCJOaXRyaWFuc2thXCIsXG4gICAgXCJOw63FvmlubsOhXCIsXG4gICAgXCJOb2JlbG92YVwiLFxuICAgIFwiTm9iZWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJOb3bDoVwiLFxuICAgIFwiTm92w6EgUm/FvsWIYXZza8OhXCIsXG4gICAgXCJOb3ZhY2vDqWhvXCIsXG4gICAgXCJOb3bDqSBww6FsZW5pc2tvXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJSVwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgSUlJXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJVlwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgVlwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgVklcIixcbiAgICBcIk5vdsOpIHrDoWhyYWR5IFZJSVwiLFxuICAgIFwiTm92aW7DoXJza2FcIixcbiAgICBcIk5vdm9iYW5za8OhXCIsXG4gICAgXCJOb3ZvaHJhZHNrw6FcIixcbiAgICBcIk5vdm9zdmV0c2vDoVwiLFxuICAgIFwiTm92b3N2ZXRza8OhXCIsXG4gICAgXCJOb3Zvc3ZldHNrw6FcIixcbiAgICBcIk9iZcW+bsOhXCIsXG4gICAgXCJPYmNob2Ruw6FcIixcbiAgICBcIk/EjW92c2vDoVwiLFxuICAgIFwiT2Rib2rDoXJvdlwiLFxuICAgIFwiT2Rib3LDoXJza2FcIixcbiAgICBcIk9kYm9yw6Fyc2tlIG7DoW1lc3RpZVwiLFxuICAgIFwiT2Rib3LDoXJza2UgbsOhbWVzdGllXCIsXG4gICAgXCJPaG5pY292w6FcIixcbiAgICBcIk9rw6FuaWtvdmFcIixcbiAgICBcIk9rcnXFvm7DoVwiLFxuICAgIFwiT2xicmFjaHRvdmFcIixcbiAgICBcIk9sZWprw6Fyc2thXCIsXG4gICAgXCJPbmRhdnNrw6FcIixcbiAgICBcIk9uZHJlam92b3ZhXCIsXG4gICAgXCJPcmF2c2vDoVwiLFxuICAgIFwiT3JlY2hvdsOhIGNlc3RhXCIsXG4gICAgXCJPcmVjaG92w70gcmFkXCIsXG4gICAgXCJPcmllxaFrb3bDoVwiLFxuICAgIFwiT3JtaXNvdmFcIixcbiAgICBcIk9zYWRuw6FcIixcbiAgICBcIk9zdHJhdnNrw6FcIixcbiAgICBcIk9zdHJlZGtvdsOhXCIsXG4gICAgXCJPc3Vza8OpaG9cIixcbiAgICBcIk9zdmV0b3bDoVwiLFxuICAgIFwiT3RvbmVsc2vDoVwiLFxuICAgIFwiT3ZydcSNc2vDoVwiLFxuICAgIFwiT3ZzacWhdHNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJQYWrFoXTDum5za2FcIixcbiAgICBcIlBhbGFja8OpaG9cIixcbiAgICBcIlBhbMOhcmlrb3ZhXCIsXG4gICAgXCJQYWzDoXJpa292YVwiLFxuICAgIFwiUMOhbGF2c2vDoVwiLFxuICAgIFwiUGFsaXPDoWR5XCIsXG4gICAgXCJQYWxpc8OhZHlcIixcbiAgICBcIlBhbGlzw6FkeVwiLFxuICAgIFwiUGFsa292acSNb3ZhXCIsXG4gICAgXCJQYW5lbnNrw6FcIixcbiAgICBcIlBhbmvDumNob3ZhXCIsXG4gICAgXCJQYW7Ds25za2EgY2VzdGFcIixcbiAgICBcIlBhbnNrw6FcIixcbiAgICBcIlBhcMOhbmtvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJQYXByYcSPb3bDoVwiLFxuICAgIFwiUMOhcmnEjWtvdmFcIixcbiAgICBcIlBhcmtvdsOhXCIsXG4gICAgXCJQYXJ0aXrDoW5za2FcIixcbiAgICBcIlBhc2llbmt5XCIsXG4gICAgXCJQYXVsw61ueWhvXCIsXG4gICAgXCJQYXZsb3ZpxI1vdmFcIixcbiAgICBcIlBhdmxvdm92YVwiLFxuICAgIFwiUGF2bG92c2vDoVwiLFxuICAgIFwiUGHFvmlja8OpaG9cIixcbiAgICBcIlBhxb7DrXRrb3bDoVwiLFxuICAgIFwiUGXEjW5pYW5za2FcIixcbiAgICBcIlBlcm5lY2vDoVwiLFxuICAgIFwiUGVzdG92YXRlxL5za8OhXCIsXG4gICAgXCJQZXRlcnNrw6FcIixcbiAgICBcIlBldHp2YWxvdmFcIixcbiAgICBcIlBlemluc2vDoVwiLFxuICAgIFwiUGllc2/EjW7DoVwiLFxuICAgIFwiUGllxaHFpWFuc2vDoVwiLFxuICAgIFwiUGlmZmxvdmFcIixcbiAgICBcIlBpbMOhcmlrb3ZhXCIsXG4gICAgXCJQaW9uaWVyc2thXCIsXG4gICAgXCJQaXZvxYhrb3bDoVwiLFxuICAgIFwiUGxhbmNrb3ZhXCIsXG4gICAgXCJQbGFuw6l0XCIsXG4gICAgXCJQbMOhdGVuw61ja2FcIixcbiAgICBcIlBsdWhvdsOhXCIsXG4gICAgXCJQbHluw6FyZW5za8OhXCIsXG4gICAgXCJQbHplbnNrw6FcIixcbiAgICBcIlBvYnJlxb5uw6FcIixcbiAgICBcIlBvZCBCw7RyaWtvbVwiLFxuICAgIFwiUG9kIEthbHbDoXJpb3VcIixcbiAgICBcIlBvZCBsZXNvbVwiLFxuICAgIFwiUG9kIFJvdm5pY2FtaVwiLFxuICAgIFwiUG9kIHZpbmljYW1pXCIsXG4gICAgXCJQb2Rob3Jza8OpaG9cIixcbiAgICBcIlBvZGphdm9yaW5za2VqXCIsXG4gICAgXCJQb2RsdcSNaW5za8OpaG9cIixcbiAgICBcIlBvZG5pa292w6FcIixcbiAgICBcIlBvZHRhdHJhbnNrw6lob1wiLFxuICAgIFwiUG9ocm9uc2vDoVwiLFxuICAgIFwiUG9sw6FybmFcIixcbiAgICBcIlBvbG9yZWNrw6lob1wiLFxuICAgIFwiUG/Evm7DoVwiLFxuICAgIFwiUG/EvnNrw6FcIixcbiAgICBcIlBvbHVkbsOta292w6FcIixcbiAgICBcIlBvcnVic2vDqWhvXCIsXG4gICAgXCJQb8WhdG92w6FcIixcbiAgICBcIlBvdmHFvnNrw6FcIixcbiAgICBcIlBvdnJhem7DrWNrYVwiLFxuICAgIFwiUG92cmF6bsOtY2thXCIsXG4gICAgXCJQcmHFvnNrw6FcIixcbiAgICBcIlByZWRzdGFuacSNbsOpIG7DoW1lc3RpXCIsXG4gICAgXCJQcmVwb8WhdHNrw6FcIixcbiAgICBcIlByZcWhZXJub3ZhXCIsXG4gICAgXCJQcmXFoW92c2vDoVwiLFxuICAgIFwiUHJlxaFvdnNrw6FcIixcbiAgICBcIlByZcWhb3Zza8OhXCIsXG4gICAgXCJQcmkgQmllbG9tIGtyw63FvmlcIixcbiAgICBcIlByaSBkdm9yZVwiLFxuICAgIFwiUHJpIER5bmFtaXRrZVwiLFxuICAgIFwiUHJpIEhhYsOhbnNrb20gbWx5bmVcIixcbiAgICBcIlByaSBocmFkbmVqIHN0dWRuaVwiLFxuICAgIFwiUHJpIHNlxI1pXCIsXG4gICAgXCJQcmkgU3RhcmVqIFByYWNow6FybmlcIixcbiAgICBcIlByaSBTdGFyb20gaMOhamlcIixcbiAgICBcIlByaSBTdGFyb20gTcO9dGVcIixcbiAgICBcIlByaSBzdHJlbG5pY2lcIixcbiAgICBcIlByaSBTdWNob20gbWx5bmVcIixcbiAgICBcIlByaSB6dm9uaWNpXCIsXG4gICAgXCJQcmliaW5vdmFcIixcbiAgICBcIlByaWJpbm92YVwiLFxuICAgIFwiUHJpYmlub3ZhXCIsXG4gICAgXCJQcmliacWhb3ZhXCIsXG4gICAgXCJQcmlieWxpbnNrw6FcIixcbiAgICBcIlByaWXEjW5hXCIsXG4gICAgXCJQcmlla29weVwiLFxuICAgIFwiUHJpZW15c2VsbsOhXCIsXG4gICAgXCJQcmllbXlzZWxuw6FcIixcbiAgICBcIlByaWV2b3pza8OhXCIsXG4gICAgXCJQcmlldm96c2vDoVwiLFxuICAgIFwiUHJpZXZvenNrw6FcIixcbiAgICBcIlByw61rb3BvdmFcIixcbiAgICBcIlByaW1hY2nDoWxuZSBuw6FtZXN0aWVcIixcbiAgICBcIlByw61zdGF2XCIsXG4gICAgXCJQcsOtc3Rhdm7DoVwiLFxuICAgIFwiUHJva29maWV2b3ZhXCIsXG4gICAgXCJQcm9rb3BhIFZlxL5rw6lob1wiLFxuICAgIFwiUHJva29wb3ZhXCIsXG4gICAgXCJQcsO6ZG92w6FcIixcbiAgICBcIlBydm9zaWVua292w6FcIixcbiAgICBcIlDDunBhdm92w6FcIixcbiAgICBcIlB1c3TDoVwiLFxuICAgIFwiUHXFoWtpbm92YVwiLFxuICAgIFwiUmHEjWlhbnNrYVwiLFxuICAgIFwiUmHEjWlhbnNrYVwiLFxuICAgIFwiUmHEjWlhbnNrZSBtw710b1wiLFxuICAgIFwiUmFkYXJvdsOhXCIsXG4gICAgXCJSw6FkaW92w6FcIixcbiAgICBcIlJhZGxpbnNrw6lob1wiLFxuICAgIFwiUmFkbmnEjW7DoVwiLFxuICAgIFwiUmFkbmnEjW7DqSBuw6FtZXN0aWVcIixcbiAgICBcIlJhZHZhbnNrw6FcIixcbiAgICBcIlJhanNrw6FcIixcbiAgICBcIlJha2V0b3bDoVwiLFxuICAgIFwiUsOha29zb3bDoVwiLFxuICAgIFwiUmFzdGlzbGF2b3ZhXCIsXG4gICAgXCJSw6F6dXNvdm8gbsOhYnJlxb5pZVwiLFxuICAgIFwiUmVwbsOhXCIsXG4gICAgXCJSZcWhZXRrb3ZhXCIsXG4gICAgXCJSZXZvbHXEjW7DoVwiLFxuICAgIFwiUsOpdm92w6FcIixcbiAgICBcIlJldsO6Y2thXCIsXG4gICAgXCJSZXplZG92w6FcIixcbiAgICBcIlJpYXphbnNrw6FcIixcbiAgICBcIlJpYXphbnNrw6FcIixcbiAgICBcIlJpYmF5b3bDoVwiLFxuICAgIFwiUmllxI1uYVwiLFxuICAgIFwiUmlnZWxlaG9cIixcbiAgICBcIlLDrXpsaW5nb3bDoVwiLFxuICAgIFwiUml6bmVyb3ZhXCIsXG4gICAgXCJSb2JvdG7DrWNrYVwiLFxuICAgIFwiUm9tYW5vdmFcIixcbiAgICBcIlLDtm50Z2Vub3ZhXCIsXG4gICAgXCJSb3Nuw6FcIixcbiAgICBcIlJvdm7DoVwiLFxuICAgIFwiUm92bmlhbmtvdmFcIixcbiAgICBcIlJvdm7DrWtvdsOhXCIsXG4gICAgXCJSb3ptYXLDrW5vdsOhXCIsXG4gICAgXCJSb8W+xYhhdnNrw6FcIixcbiAgICBcIlJvxb7FiGF2c2vDoVwiLFxuICAgIFwiUm/FvsWIYXZza8OhXCIsXG4gICAgXCJSdWJpbnN0ZWlub3ZhXCIsXG4gICAgXCJSdWRuYXlvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJSdW1hbsSNZWtvdsOhXCIsXG4gICAgXCJSdXNvdnNrw6EgY2VzdGFcIixcbiAgICBcIlJ1xb5pxI1rb3bDoVwiLFxuICAgIFwiUnXFvmlub3Zza8OhXCIsXG4gICAgXCJSdcW+aW5vdnNrw6FcIixcbiAgICBcIlJ1xb5pbm92c2vDoVwiLFxuICAgIFwiUnXFvm9tYmVyc2vDoVwiLFxuICAgIFwiUnXFvm92w6EgZG9saW5hXCIsXG4gICAgXCJSdcW+b3bDoSBkb2xpbmFcIixcbiAgICBcIlJ5YsOhcnNrYSBicsOhbmFcIixcbiAgICBcIlJ5Ym7DqSBuw6FtZXN0aWVcIixcbiAgICBcIlLDvWR6aWtvdsOhXCIsXG4gICAgXCJTYWJpbm92c2vDoVwiLFxuICAgIFwiU2FiaW5vdnNrw6FcIixcbiAgICBcIlNhZCBKYW5rYSBLcsOhxL5hXCIsXG4gICAgXCJTYWRvdsOhXCIsXG4gICAgXCJTYXJ0b3Jpc292YVwiLFxuICAgIFwiU2FzaW5rb3ZhXCIsXG4gICAgXCJTZWJlcsOtbmlob1wiLFxuICAgIFwiU2XEjW92c2vDoVwiLFxuICAgIFwiU2VkbMOhcnNrYVwiLFxuICAgIFwiU2VkbW9rcsOhc2tvdsOhXCIsXG4gICAgXCJTZWduZXJvdmFcIixcbiAgICBcIlNla3Vsc2vDoVwiLFxuICAgIFwiU2VtaWFub3ZhXCIsXG4gICAgXCJTZW5pY2vDoVwiLFxuICAgIFwiU2VubsOhXCIsXG4gICAgXCJTY2hpbGxlcm92YVwiLFxuICAgIFwiU2Nob2R5IHByaSBzdGFyZWogdm9cIixcbiAgICBcIlNpYsOtcnNrYVwiLFxuICAgIFwiU2llbmtpZXdpY3pvdmFcIixcbiAgICBcIlNpbHbDoW5za2FcIixcbiAgICBcIlNpbm9rdmV0bsOhXCIsXG4gICAgXCJTa2FsaWNrw6EgY2VzdGFcIixcbiAgICBcIlNrYWxuw6FcIixcbiAgICBcIlNrbGVuw6Fyb3ZhXCIsXG4gICAgXCJTa2xlbsOhcnNrYVwiLFxuICAgIFwiU2zDoWRrb3ZpxI1vdmFcIixcbiAgICBcIlNsYWRvdsOhXCIsXG4gICAgXCJTbMOhdmnEjWllIMO6ZG9saWVcIixcbiAgICBcIlNsYXbDrW5cIixcbiAgICBcIlNsZXDDoVwiLFxuICAgIFwiU2xpYcSNc2thXCIsXG4gICAgXCJTbGllenNrYVwiLFxuICAgIFwiU2xpdmtvdsOhXCIsXG4gICAgXCJTbG5lxI1uw6FcIixcbiAgICBcIlNsb3ZhbnNrw6FcIixcbiAgICBcIlNsb3ZpbnNrw6FcIixcbiAgICBcIlNsb3ZuYWZ0c2vDoVwiLFxuICAgIFwiU2xvd2Fja8OpaG9cIixcbiAgICBcIlNtZXRhbm92YVwiLFxuICAgIFwiU21pa292YVwiLFxuICAgIFwiU21vbGVuaWNrw6FcIixcbiAgICBcIlNtb2xuw61ja2FcIixcbiAgICBcIlNtcmXEjWlhbnNrYVwiLFxuICAgIFwiU29mZXJvdmUgc2Nob2R5XCIsXG4gICAgXCJTb2Now6HFiG92YVwiLFxuICAgIFwiU29rb2xza8OhXCIsXG4gICAgXCJTb2xpdmFyc2vDoVwiLFxuICAgIFwiU29sb8Whbmlja8OhXCIsXG4gICAgXCJTb21vbGlja8OpaG9cIixcbiAgICBcIlNvbW9saWNrw6lob1wiLFxuICAgIFwiU29zbm92w6FcIixcbiAgICBcIlNwacWhc2vDoVwiLFxuICAgIFwiU3Bvam7DoVwiLFxuICAgIFwiU3BvbG/EjWVuc2vDoVwiLFxuICAgIFwiU3B1dG5pa292w6FcIixcbiAgICBcIlNyZXpuZXZza8OpaG9cIixcbiAgICBcIlNybsSNaWFcIixcbiAgICBcIlN0YWNoYW5vdnNrw6FcIixcbiAgICBcIlN0w6FsaWNvdsOhXCIsXG4gICAgXCJTdGFuacSNbsOhXCIsXG4gICAgXCJTdGFyw6EgxIxlcm5pY292w6FcIixcbiAgICBcIlN0YXLDoSBJdsOhbnNrYSBjZXN0YVwiLFxuICAgIFwiU3RhcsOhIFByaWV2b3pza8OhXCIsXG4gICAgXCJTdGFyw6EgVmFqbm9yc2vDoVwiLFxuICAgIFwiU3RhcsOhIHZpbsOhcnNrYVwiLFxuICAgIFwiU3RhcsOpIEdydW50eVwiLFxuICAgIFwiU3RhcsOpIGlocmlza29cIixcbiAgICBcIlN0YXLDqSB6w6FocmFkeVwiLFxuICAgIFwiU3RhcmhyYWRza8OhXCIsXG4gICAgXCJTdGFyb2jDoWpza2FcIixcbiAgICBcIlN0YXJvbWVzdHNrw6FcIixcbiAgICBcIlN0YXJvdHVyc2vDvSBjaG9kbsOta1wiLFxuICAgIFwiU3Rhdml0ZcS+c2vDoVwiLFxuICAgIFwiU3RvZG9sb3ZhXCIsXG4gICAgXCJTdG9rbGFzb3bDoVwiLFxuICAgIFwiU3RyYWtvdmFcIixcbiAgICBcIlN0csOhxb5uaWNrw6FcIixcbiAgICBcIlN0csOhxb5ueSBkb21cIixcbiAgICBcIlN0cmXEjW5pYW5za2FcIixcbiAgICBcIlN0cmVkbsOhXCIsXG4gICAgXCJTdHJlbGVja8OhXCIsXG4gICAgXCJTdHJtw6EgY2VzdGFcIixcbiAgICBcIlN0cm9qbsOtY2thXCIsXG4gICAgXCJTdHJvcGtvdnNrw6FcIixcbiAgICBcIlN0cnVrb3bDoVwiLFxuICAgIFwiU3R1ZGVuw6FcIixcbiAgICBcIlN0dWhvdsOhXCIsXG4gICAgXCJTw7piZcW+bsOhXCIsXG4gICAgXCJTw7podmV6ZG7DoVwiLFxuICAgIFwiU3VjaMOpIG3DvXRvXCIsXG4gICAgXCJTdWNob2hyYWRza8OhXCIsXG4gICAgXCJTw7prZW5uw61ja2FcIixcbiAgICBcIlPDusS+b3Zza8OhXCIsXG4gICAgXCJTdW1iYWxvdmFcIixcbiAgICBcIlPDum1yYcSNbsOhXCIsXG4gICAgXCJTw7rFpWHFvm7DoVwiLFxuICAgIFwiU3bDpHTDqWhvIFZpbmNlbnRhXCIsXG4gICAgXCJTdsOkdG9wbHVrb3ZhXCIsXG4gICAgXCJTdsOkdG9wbHVrb3ZhXCIsXG4gICAgXCJTdsOkdG92b2p0ZcWhc2vDoVwiLFxuICAgIFwiU3ZldGzDoVwiLFxuICAgIFwiU3bDrWJvdsOhXCIsXG4gICAgXCJTdmlkbsOtY2thXCIsXG4gICAgXCJTdm9yYWRvdmFcIixcbiAgICBcIlN2csSNaWFcIixcbiAgICBcIlN5c2xpYVwiLFxuICAgIFwixaBhZsOhcmlrb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaBhZsOhcmlrb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaBhZnLDoW5vdsOhXCIsXG4gICAgXCLFoGFnw6F0b3ZhXCIsXG4gICAgXCLFoGFsdmlvdsOhXCIsXG4gICAgXCLFoGFuY292w6FcIixcbiAgICBcIsWgYW5jb3bDoVwiLFxuICAgIFwixaBhbmNvdsOhXCIsXG4gICAgXCLFoGFuY292w6FcIixcbiAgICBcIsWgw6FuZG9yb3ZhXCIsXG4gICAgXCLFoGFyacWhc2vDoVwiLFxuICAgIFwixaDDocWhb3Zza8OhXCIsXG4gICAgXCLFoGHFoXTDrW5za2FcIixcbiAgICBcIsWgZXbEjWVua292YVwiLFxuICAgIFwixaBpbnRhdnNrw6FcIixcbiAgICBcIsWgw61wa292w6FcIixcbiAgICBcIsWga2FybmljbG92YVwiLFxuICAgIFwixaBrb2xza8OhXCIsXG4gICAgXCLFoGtvdnLDoW7EjWlhXCIsXG4gICAgXCLFoGt1bHTDqXR5aG9cIixcbiAgICBcIsWgb2x0w6lzb3ZlalwiLFxuICAgIFwixaBwaWVzem92YVwiLFxuICAgIFwixaBwaXTDoWxza2FcIixcbiAgICBcIsWgcG9ydG92w6FcIixcbiAgICBcIsWgcm9iw6Fyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaDFpWFzdG7DoVwiLFxuICAgIFwixaB0ZWRyw6FcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmYW5vdmnEjW92YVwiLFxuICAgIFwixaB0ZWZ1bmtvdmFcIixcbiAgICBcIsWgdGV0aW5vdmFcIixcbiAgICBcIsWgdGlhdm5pY2vDoVwiLFxuICAgIFwixaB0w7pyb3ZhXCIsXG4gICAgXCLFoHR5bmRsb3ZhXCIsXG4gICAgXCLFoHVsZWtvdmFcIixcbiAgICBcIsWgdWxla292YVwiLFxuICAgIFwixaB1bGVrb3ZhXCIsXG4gICAgXCLFoHVtYXZza8OhXCIsXG4gICAgXCLFoHXFiGF2Y292YVwiLFxuICAgIFwixaB1c3Rla292YVwiLFxuICAgIFwixaB2YWJpbnNrw6lob1wiLFxuICAgIFwiVGFiYWtvdsOhXCIsXG4gICAgXCJUYWJsaWNvdmFcIixcbiAgICBcIlTDoWJvcnNrw6FcIixcbiAgICBcIlRham92c2vDqWhvXCIsXG4gICAgXCJUYWxsZXJvdmFcIixcbiAgICBcIlRlaGVsbsOhXCIsXG4gICAgXCJUZWNobmlja8OhXCIsXG4gICAgXCJUZWtvdnNrw6FcIixcbiAgICBcIlRlbG9jdmnEjW7DoVwiLFxuICAgIFwiVGVtYXTDrW5za2FcIixcbiAgICBcIlRlcGxpY2vDoVwiLFxuICAgIFwiVGVyY2hvdnNrw6FcIixcbiAgICBcIlRlc2xvdmFcIixcbiAgICBcIlRldG1heWVyb3ZhXCIsXG4gICAgXCJUaHVyem92YVwiLFxuICAgIFwiVGljaMOhXCIsXG4gICAgXCJUaWxnbmVyb3ZhXCIsXG4gICAgXCJUaW1yYXZpbmFcIixcbiAgICBcIlRvYnJ1Y2vDoVwiLFxuICAgIFwiVG9rYWrDrWNrYVwiLFxuICAgIFwiVG9sc3TDqWhvXCIsXG4gICAgXCJUb23DoW5rb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvbcOhxaFpa292YVwiLFxuICAgIFwiVG9tw6HFoWlrb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvbcOhxaFpa292YVwiLFxuICAgIFwiVG9wb8S+xI1pYW5za2FcIixcbiAgICBcIlRvcG/Evm92w6FcIixcbiAgICBcIlRvdsOhcmVuc2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlbsSNaWFuc2thXCIsXG4gICAgXCJUcmVza2/FiG92YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6EgY2VzdGFcIixcbiAgICBcIlRybmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6EgY2VzdGFcIixcbiAgICBcIlRybmF2c2vDqSBtw710b1wiLFxuICAgIFwiVMWVxYhvdsOhXCIsXG4gICAgXCJUcm9qZG9teVwiLFxuICAgIFwiVHXEjWtvdmFcIixcbiAgICBcIlR1cG9sZXZvdmFcIixcbiAgICBcIlR1cmLDrW5vdmFcIixcbiAgICBcIlR1csSNaWFuc2thXCIsXG4gICAgXCJUdXJuaWFuc2thXCIsXG4gICAgXCJUdmFyb8W+a292YVwiLFxuICAgIFwiVHlsb3ZhXCIsXG4gICAgXCJUeXLFoW92byBuw6FicmXFvmllXCIsXG4gICAgXCLDmmRlcm7DrWNrYVwiLFxuICAgIFwiw5pkb2xuw6FcIixcbiAgICBcIlVob3Jrb3bDoVwiLFxuICAgIFwiVWtyYWppbnNrw6FcIixcbiAgICBcIlVsaWNhIDI5LiBhdWd1c3RhXCIsXG4gICAgXCJVbGljYSAyOS4gYXVndXN0YVwiLFxuICAgIFwiVWxpY2EgMjkuIGF1Z3VzdGFcIixcbiAgICBcIlVsaWNhIDI5LiBhdWd1c3RhXCIsXG4gICAgXCJVbGljYSBJbXJpY2hhIEthcnZhxaFcIixcbiAgICBcIlVsaWNhIEpvemVmYSBLcsOzbmVyYVwiLFxuICAgIFwiVWxpY2EgVmlrdG9yYSBUZWdlbGhcIixcbiAgICBcIsOacHJrb3ZhXCIsXG4gICAgXCLDmnJhZG7DrWNrYVwiLFxuICAgIFwiVXLDoW5vdsOhXCIsXG4gICAgXCJVcmLDoW5rb3ZhXCIsXG4gICAgXCJVcnPDrW55aG9cIixcbiAgICBcIlVyxaF1bMOtbnNrYVwiLFxuICAgIFwiw5p6a2FcIixcbiAgICBcIlYgesOhaHJhZMOhY2hcIixcbiAgICBcIlZhamFuc2vDqWhvIG7DoWJyZcW+aWVcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZhbGHFoXNrw6FcIixcbiAgICBcIlZhbGNow6Fyc2thXCIsXG4gICAgXCJWYW5zb3ZlalwiLFxuICAgIFwiVsOhcGVubsOhXCIsXG4gICAgXCJWYXLDrW5za2FcIixcbiAgICBcIlZhcsWhYXZza8OhXCIsXG4gICAgXCJWYXLFoWF2c2vDoVwiLFxuICAgIFwiVmF2aWxvdm92YVwiLFxuICAgIFwiVmF2csOtbm92YVwiLFxuICAgIFwiVmF6b3ZvdmFcIixcbiAgICBcIlbEjWVsw6Fyc2thXCIsXG4gICAgXCJWZWxlaHJhZHNrw6FcIixcbiAgICBcIlZlbHRsw61uc2thXCIsXG4gICAgXCJWZW50w7pyc2thXCIsXG4gICAgXCJWZXRlcm7DoVwiLFxuICAgIFwiVmV0ZXJuaWNvdsOhXCIsXG4gICAgXCJWZXR2b3bDoVwiLFxuICAgIFwiVmllZGVuc2vDoSBjZXN0YVwiLFxuICAgIFwiVmllZGVuc2vDoSBjZXN0YVwiLFxuICAgIFwiVmlldG5hbXNrw6FcIixcbiAgICBcIlbDrWfEvmHFoXNrw6FcIixcbiAgICBcIlZpaG9ybGF0c2vDoVwiLFxuICAgIFwiVmlrdG9yw61ub3ZhXCIsXG4gICAgXCJWaWxvdsOhXCIsXG4gICAgXCJWaW5jZW50YSBIbG/Fvm7DrWthXCIsXG4gICAgXCJWw61ubmFcIixcbiAgICBcIlZsYXN0ZW5lY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIlZsxI1rb3ZhXCIsXG4gICAgXCJWbMSNa292YVwiLFxuICAgIFwiVmzEjWtvdmFcIixcbiAgICBcIlZvZG7DvSB2cmNoXCIsXG4gICAgXCJWb3RydWJvdmFcIixcbiAgICBcIlZyw6FiZcS+c2vDoVwiLFxuICAgIFwiVnJha3Vuc2vDoSBjZXN0YVwiLFxuICAgIFwiVnJhbm92c2vDoVwiLFxuICAgIFwiVnJldGVub3bDoVwiLFxuICAgIFwiVnJjaG7DoVwiLFxuICAgIFwiVnLDunRvY2vDoVwiLFxuICAgIFwiVnlobGlhZGthXCIsXG4gICAgXCJWeWhuaWFuc2thIGNlc3RhXCIsXG4gICAgXCJWeXNva8OhXCIsXG4gICAgXCJWecWhZWhyYWRza8OhXCIsXG4gICAgXCJWecWhbsOhXCIsXG4gICAgXCJXYXR0b3ZhXCIsXG4gICAgXCJXaWxzb25vdmFcIixcbiAgICBcIldvbGtyb3ZhXCIsXG4gICAgXCJaYSBLYXPDoXLFiG91XCIsXG4gICAgXCJaYSBzb2tvbG92xYhvdVwiLFxuICAgIFwiWmEgU3Rhbmljb3VcIixcbiAgICBcIlphIHRlaGVsxYhvdVwiLFxuICAgIFwiWsOhYm9yc2vDqWhvXCIsXG4gICAgXCJaYWR1bmFqc2vDoSBjZXN0YVwiLFxuICAgIFwiWsOhaG9yw6Fja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyZWJza8OhXCIsXG4gICAgXCJaw6FocmVic2vDoVwiLFxuICAgIFwiWsOhbHXFvmlja8OhXCIsXG4gICAgXCJaw6Ftb2Nrw6FcIixcbiAgICBcIlrDoW1vY2vDqSBzY2hvZHlcIixcbiAgICBcIlrDoW1vxI1uw61ja2FcIixcbiAgICBcIlrDoXBhZG7DoVwiLFxuICAgIFwiWsOhcGFkbsO9IHJhZFwiLFxuICAgIFwiWsOhcG9yb8W+c2vDoVwiLFxuICAgIFwiWsOhdGnFoWllXCIsXG4gICAgXCJaw6F2b2Ruw61rb3ZhXCIsXG4gICAgXCJaZWxlbsOhXCIsXG4gICAgXCJaZWxpbsOhcnNrYVwiLFxuICAgIFwiWmltbsOhXCIsXG4gICAgXCJabGF0w6kgcGllc2t5XCIsXG4gICAgXCJabGF0w6kgc2Nob2R5XCIsXG4gICAgXCJabmlldnNrYVwiLFxuICAgIFwiWm9ob3Jza8OhXCIsXG4gICAgXCJab2Nob3ZhXCIsXG4gICAgXCJacmluc2vDqWhvXCIsXG4gICAgXCJadm9sZW5za8OhXCIsXG4gICAgXCLFvWFiw60gbWFqZXJcIixcbiAgICBcIsW9YWJvdG92YVwiLFxuICAgIFwixb1laHJpYW5za2FcIixcbiAgICBcIsW9ZWxlem7DoVwiLFxuICAgIFwixb1lbGV6bmnEjWlhcnNrYVwiLFxuICAgIFwixb1lbGxvdmFcIixcbiAgICBcIsW9aWFyc2thXCIsXG4gICAgXCLFvWlkb3Zza8OhXCIsXG4gICAgXCLFvWlsaW5za8OhXCIsXG4gICAgXCLFvWlsaW5za8OhXCIsXG4gICAgXCLFvWl2bm9zdGVuc2vDoVwiLFxuICAgIFwixb1pxb5rb3ZhXCIsXG4gICAgXCLFvXVwbsOpIG7DoW1lc3RpZVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXR9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJTbG92ZW5za29cIlxuICBdXG59O1xuc2suY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwicy5yLm8uXCIsXG4gICAgXCJhLnMuXCIsXG4gICAgXCJ2Lm8ucy5cIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOlxuICAgIFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjpcbiAgICBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcImNsaWNrcy1hbmQtbW9ydGFyXCIsXG4gICAgICBcInZhbHVlLWFkZGVkXCIsXG4gICAgICBcInZlcnRpY2FsXCIsXG4gICAgICBcInByb2FjdGl2ZVwiLFxuICAgICAgXCJyb2J1c3RcIixcbiAgICAgIFwicmV2b2x1dGlvbmFyeVwiLFxuICAgICAgXCJzY2FsYWJsZVwiLFxuICAgICAgXCJsZWFkaW5nLWVkZ2VcIixcbiAgICAgIFwiaW5ub3ZhdGl2ZVwiLFxuICAgICAgXCJpbnR1aXRpdmVcIixcbiAgICAgIFwic3RyYXRlZ2ljXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJzdGlja3lcIixcbiAgICAgIFwib25lLXRvLW9uZVwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcImVuZC10by1lbmRcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcIkIyQlwiLFxuICAgICAgXCJCMkNcIixcbiAgICAgIFwiZ3JhbnVsYXJcIixcbiAgICAgIFwiZnJpY3Rpb25sZXNzXCIsXG4gICAgICBcInZpcnR1YWxcIixcbiAgICAgIFwidmlyYWxcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCIyNC8zNjVcIixcbiAgICAgIFwiYmVzdC1vZi1icmVlZFwiLFxuICAgICAgXCJraWxsZXJcIixcbiAgICAgIFwibWFnbmV0aWNcIixcbiAgICAgIFwiYmxlZWRpbmctZWRnZVwiLFxuICAgICAgXCJ3ZWItZW5hYmxlZFwiLFxuICAgICAgXCJpbnRlcmFjdGl2ZVwiLFxuICAgICAgXCJkb3QtY29tXCIsXG4gICAgICBcInNleHlcIixcbiAgICAgIFwiYmFjay1lbmRcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcImVmZmljaWVudFwiLFxuICAgICAgXCJmcm9udC1lbmRcIixcbiAgICAgIFwiZGlzdHJpYnV0ZWRcIixcbiAgICAgIFwic2VhbWxlc3NcIixcbiAgICAgIFwiZXh0ZW5zaWJsZVwiLFxuICAgICAgXCJ0dXJuLWtleVwiLFxuICAgICAgXCJ3b3JsZC1jbGFzc1wiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJjcm9zcy1tZWRpYVwiLFxuICAgICAgXCJzeW5lcmdpc3RpY1wiLFxuICAgICAgXCJicmlja3MtYW5kLWNsaWNrc1wiLFxuICAgICAgXCJvdXQtb2YtdGhlLWJveFwiLFxuICAgICAgXCJlbnRlcnByaXNlXCIsXG4gICAgICBcImludGVncmF0ZWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcIndpcmVsZXNzXCIsXG4gICAgICBcInRyYW5zcGFyZW50XCIsXG4gICAgICBcIm5leHQtZ2VuZXJhdGlvblwiLFxuICAgICAgXCJjdXR0aW5nLWVkZ2VcIixcbiAgICAgIFwidXNlci1jZW50cmljXCIsXG4gICAgICBcInZpc2lvbmFyeVwiLFxuICAgICAgXCJjdXN0b21pemVkXCIsXG4gICAgICBcInViaXF1aXRvdXNcIixcbiAgICAgIFwicGx1Zy1hbmQtcGxheVwiLFxuICAgICAgXCJjb2xsYWJvcmF0aXZlXCIsXG4gICAgICBcImNvbXBlbGxpbmdcIixcbiAgICAgIFwiaG9saXN0aWNcIixcbiAgICAgIFwicmljaFwiLFxuICAgICAgXCJzeW5lcmdpZXNcIixcbiAgICAgIFwid2ViLXJlYWRpbmVzc1wiLFxuICAgICAgXCJwYXJhZGlnbXNcIixcbiAgICAgIFwibWFya2V0c1wiLFxuICAgICAgXCJwYXJ0bmVyc2hpcHNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVzXCIsXG4gICAgICBcInBsYXRmb3Jtc1wiLFxuICAgICAgXCJpbml0aWF0aXZlc1wiLFxuICAgICAgXCJjaGFubmVsc1wiLFxuICAgICAgXCJleWViYWxsc1wiLFxuICAgICAgXCJjb21tdW5pdGllc1wiLFxuICAgICAgXCJST0lcIixcbiAgICAgIFwic29sdXRpb25zXCIsXG4gICAgICBcImUtdGFpbGVyc1wiLFxuICAgICAgXCJlLXNlcnZpY2VzXCIsXG4gICAgICBcImFjdGlvbi1pdGVtc1wiLFxuICAgICAgXCJwb3J0YWxzXCIsXG4gICAgICBcIm5pY2hlc1wiLFxuICAgICAgXCJ0ZWNobm9sb2dpZXNcIixcbiAgICAgIFwiY29udGVudFwiLFxuICAgICAgXCJ2b3J0YWxzXCIsXG4gICAgICBcInN1cHBseS1jaGFpbnNcIixcbiAgICAgIFwiY29udmVyZ2VuY2VcIixcbiAgICAgIFwicmVsYXRpb25zaGlwc1wiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVzXCIsXG4gICAgICBcImludGVyZmFjZXNcIixcbiAgICAgIFwiZS1tYXJrZXRzXCIsXG4gICAgICBcImUtY29tbWVyY2VcIixcbiAgICAgIFwic3lzdGVtc1wiLFxuICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgIFwiaW5mb21lZGlhcmllc1wiLFxuICAgICAgXCJtb2RlbHNcIixcbiAgICAgIFwibWluZHNoYXJlXCIsXG4gICAgICBcImRlbGl2ZXJhYmxlc1wiLFxuICAgICAgXCJ1c2Vyc1wiLFxuICAgICAgXCJzY2hlbWFzXCIsXG4gICAgICBcIm5ldHdvcmtzXCIsXG4gICAgICBcImFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJtZXRyaWNzXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcImV4cGVyaWVuY2VzXCIsXG4gICAgICBcIndlYiBzZXJ2aWNlc1wiLFxuICAgICAgXCJtZXRob2RvbG9naWVzXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubWFuX2xhc3RfbmFtZX0gYSAje05hbWUubWFuX2xhc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbnNrLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ6b3puYW0uc2tcIixcbiAgICBcImF6ZXQuc2tcIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwic2tcIixcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJldVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnNrLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xuc2submFtZSA9IHtcbiAgXCJtYW5fZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJEcmFob3NsYXZcIixcbiAgICBcIlNldmVyw61uXCIsXG4gICAgXCJBbGV4ZWpcIixcbiAgICBcIkVybmVzdFwiLFxuICAgIFwiUmFzdGlzbGF2XCIsXG4gICAgXCJSYWRvdmFuXCIsXG4gICAgXCJEb2Jyb3NsYXZcIixcbiAgICBcIkRhbGlib3JcIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIk1pbG/FoVwiLFxuICAgIFwiVGltb3RlalwiLFxuICAgIFwiR2VqemFcIixcbiAgICBcIkJvaHXFoVwiLFxuICAgIFwiQWxmb256XCIsXG4gICAgXCJHYcWhcGFyXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJCbGHFvmVqXCIsXG4gICAgXCJaZGVua29cIixcbiAgICBcIkRlemlkZXJcIixcbiAgICBcIkFycMOhZFwiLFxuICAgIFwiVmFsZW50w61uXCIsXG4gICAgXCJQcmF2b3NsYXZcIixcbiAgICBcIkphcm9tw61yXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiTWF0ZWpcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJWaWt0b3JcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiUmFkb23DrXJcIixcbiAgICBcIkFsYsOtblwiLFxuICAgIFwiQm9odW1pbFwiLFxuICAgIFwiS2F6aW3DrXJcIixcbiAgICBcIkZyaWRyaWNoXCIsXG4gICAgXCJSYWRvc2xhdlwiLFxuICAgIFwiVG9tw6HFoVwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQnJhbmlzbGF2XCIsXG4gICAgXCJCcnVub1wiLFxuICAgIFwiR3JlZ29yXCIsXG4gICAgXCJWbGFzdGltaWxcIixcbiAgICBcIkJvbGVzbGF2XCIsXG4gICAgXCJFZHVhcmRcIixcbiAgICBcIkpvemVmXCIsXG4gICAgXCJWw63FpWF6b3NsYXZcIixcbiAgICBcIkJsYWhvc2xhdlwiLFxuICAgIFwiQmXFiGFkaWtcIixcbiAgICBcIkFkcmnDoW5cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIk1hcmnDoW5cIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIk1pcm9zbGF2XCIsXG4gICAgXCJCZW5qYW3DrW5cIixcbiAgICBcIkh1Z29cIixcbiAgICBcIlJpY2hhcmRcIixcbiAgICBcIkl6aWRvclwiLFxuICAgIFwiWm9sdMOhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJJZ29yXCIsXG4gICAgXCJKw7psaXVzXCIsXG4gICAgXCJBbGXFoVwiLFxuICAgIFwiRmVkb3JcIixcbiAgICBcIlJ1ZG9sZlwiLFxuICAgIFwiVmFsw6lyXCIsXG4gICAgXCJNYXJjZWxcIixcbiAgICBcIkVydsOtblwiLFxuICAgIFwiU2xhdm9tw61yXCIsXG4gICAgXCJWb2p0ZWNoXCIsXG4gICAgXCJKdXJhalwiLFxuICAgIFwiTWFyZWtcIixcbiAgICBcIkphcm9zbGF2XCIsXG4gICAgXCLFvWlnbXVuZFwiLFxuICAgIFwiRmxvcmnDoW5cIixcbiAgICBcIlJvbGFuZFwiLFxuICAgIFwiUGFua3LDoWNcIixcbiAgICBcIlNlcnbDoWNcIixcbiAgICBcIkJvbmlmw6FjXCIsXG4gICAgXCJTdmV0b3rDoXJcIixcbiAgICBcIkJlcm5hcmRcIixcbiAgICBcIkrDumxpYVwiLFxuICAgIFwiVXJiYW5cIixcbiAgICBcIkR1xaFhblwiLFxuICAgIFwiVmlsaWFtXCIsXG4gICAgXCJGZXJkaW5hbmRcIixcbiAgICBcIk5vcmJlcnRcIixcbiAgICBcIlLDs2JlcnRcIixcbiAgICBcIk1lZGFyZFwiLFxuICAgIFwiWmxhdGtvXCIsXG4gICAgXCJBbnRvblwiLFxuICAgIFwiVmFzaWxcIixcbiAgICBcIlbDrXRcIixcbiAgICBcIkFkb2xmXCIsXG4gICAgXCJWcmF0aXNsYXZcIixcbiAgICBcIkFsZnLDqWRcIixcbiAgICBcIkFsb2p6XCIsXG4gICAgXCJKw6FuXCIsXG4gICAgXCJUYWRlw6HFoVwiLFxuICAgIFwiTGFkaXNsYXZcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQYXZvbFwiLFxuICAgIFwiTWlsb3NsYXZcIixcbiAgICBcIlByb2tvcFwiLFxuICAgIFwiQ3lyaWxcIixcbiAgICBcIk1ldG9kXCIsXG4gICAgXCJQYXRyaWtcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiSXZhblwiLFxuICAgIFwiS2FtaWxcIixcbiAgICBcIkhlbnJpY2hcIixcbiAgICBcIkRyYWhvbcOtclwiLFxuICAgIFwiQm9odXNsYXZcIixcbiAgICBcIknEvmphXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIlZsYWRpbcOtclwiLFxuICAgIFwiSmFrdWJcIixcbiAgICBcIktyacWhdG9mXCIsXG4gICAgXCJJZ27DoWNcIixcbiAgICBcIkd1c3TDoXZcIixcbiAgICBcIkplcmd1xaFcIixcbiAgICBcIkRvbWluaWtcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJWYXZyaW5lY1wiLFxuICAgIFwixL11Ym9tw61yXCIsXG4gICAgXCJNb2ptw61yXCIsXG4gICAgXCJMZW9uYXJkXCIsXG4gICAgXCJUaWNob23DrXJcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJCYXJ0b2xvbWVqXCIsXG4gICAgXCLEvXVkb3bDrXRcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiQXVndXN0w61uXCIsXG4gICAgXCJCZWxvXCIsXG4gICAgXCJPbGVnXCIsXG4gICAgXCJCeXN0csOta1wiLFxuICAgIFwiQ3RpYm9yXCIsXG4gICAgXCLEvXVkb21pbFwiLFxuICAgIFwiS29uxaF0YW50w61uXCIsXG4gICAgXCLEvXVib3NsYXZcIixcbiAgICBcIk1hdMO6xaFcIixcbiAgICBcIk3Ds3JpY1wiLFxuICAgIFwixL11Ym/FoVwiLFxuICAgIFwixL11Ym9yXCIsXG4gICAgXCJWbGFkaXNsYXZcIixcbiAgICBcIkN5cHJpw6FuXCIsXG4gICAgXCJWw6FjbGF2XCIsXG4gICAgXCJNaWNoYWxcIixcbiAgICBcIkphcm9sw61tXCIsXG4gICAgXCJBcm5vbGRcIixcbiAgICBcIkxldm9zbGF2XCIsXG4gICAgXCJGcmFudGnFoWVrXCIsXG4gICAgXCJEaW9uw716XCIsXG4gICAgXCJNYXhpbWlsacOhblwiLFxuICAgIFwiS29sb21hblwiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkx1a8OhxaFcIixcbiAgICBcIktyaXN0acOhblwiLFxuICAgIFwiVmVuZGVsw61uXCIsXG4gICAgXCJTZXJnZWpcIixcbiAgICBcIkF1cmVsXCIsXG4gICAgXCJEZW1ldGVyXCIsXG4gICAgXCJEZW5pc1wiLFxuICAgIFwiSHViZXJ0XCIsXG4gICAgXCJLYXJvbFwiLFxuICAgIFwiSW1yaWNoXCIsXG4gICAgXCJSZW7DqVwiLFxuICAgIFwiQm9odW3DrXJcIixcbiAgICBcIlRlb2RvclwiLFxuICAgIFwiVGlib3JcIixcbiAgICBcIk1hcm/FoVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJTdsOkdG9wbHVrXCIsXG4gICAgXCJTdGFuaXNsYXZcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkV1Z2VuXCIsXG4gICAgXCJGw6lsaXhcIixcbiAgICBcIktsZW1lbnRcIixcbiAgICBcIktvcm5lbFwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIlZyYXRrb1wiLFxuICAgIFwiT25kcmVqXCIsXG4gICAgXCJBbmRyZWpcIixcbiAgICBcIkVkbXVuZFwiLFxuICAgIFwiT2xkcmljaFwiLFxuICAgIFwiT3RvXCIsXG4gICAgXCJNaWt1bMOhxaFcIixcbiAgICBcIkFtYnLDs3pcIixcbiAgICBcIlJhZMO6elwiLFxuICAgIFwiQm9oZGFuXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCLFoHRlZmFuXCIsXG4gICAgXCJEw6F2aWRcIixcbiAgICBcIlNpbHZlc3RlclwiXG4gIF0sXG4gIFwid29tYW5fZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJBbnTDs25pYVwiLFxuICAgIFwiQm9odXNsYXZhXCIsXG4gICAgXCJEw6HFoWFcIixcbiAgICBcIk1hbHbDrW5hXCIsXG4gICAgXCJLcmlzdMOtbmFcIixcbiAgICBcIk5hdGHFoWFcIixcbiAgICBcIkJvaGRhbmFcIixcbiAgICBcIkRyYWhvbcOtcmFcIixcbiAgICBcIlPDoXJhXCIsXG4gICAgXCJab3JhXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIkVtYVwiLFxuICAgIFwiVGF0aWFuYVwiLFxuICAgIFwiRXJpa2FcIixcbiAgICBcIlZlcm9uaWthXCIsXG4gICAgXCJBZ8OhdGFcIixcbiAgICBcIkRvcm90YVwiLFxuICAgIFwiVmFuZGFcIixcbiAgICBcIlpvamFcIixcbiAgICBcIkdhYnJpZWxhXCIsXG4gICAgXCJQZXJsYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTWlsb3NsYXZhXCIsXG4gICAgXCJWbGFzdGFcIixcbiAgICBcIkzDrXZpYVwiLFxuICAgIFwiRWxlb27Ds3JhXCIsXG4gICAgXCJFdGVsYVwiLFxuICAgIFwiUm9tYW5hXCIsXG4gICAgXCJabGF0aWNhXCIsXG4gICAgXCJBbmXFvmthXCIsXG4gICAgXCJCb2h1bWlsYVwiLFxuICAgIFwiRnJhbnRpxaFrYVwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJNYXRpbGRhXCIsXG4gICAgXCJTdmV0bGFuYVwiLFxuICAgIFwixL11YmljYVwiLFxuICAgIFwiQWxlbmFcIixcbiAgICBcIlNvxYhhXCIsXG4gICAgXCJWaWVyb3NsYXZhXCIsXG4gICAgXCJaaXRhXCIsXG4gICAgXCJNaXJvc2xhdmFcIixcbiAgICBcIklyZW5hXCIsXG4gICAgXCJNaWxlbmFcIixcbiAgICBcIkVzdGVyYVwiLFxuICAgIFwiSnVzdMOtbmFcIixcbiAgICBcIkRhbmFcIixcbiAgICBcIkRhbmljYVwiLFxuICAgIFwiSmVsYVwiLFxuICAgIFwiSmFyb3NsYXZhXCIsXG4gICAgXCJKYXJtaWxhXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkFuYXN0w6F6aWFcIixcbiAgICBcIkdhbGluYVwiLFxuICAgIFwiTGVzYW5hXCIsXG4gICAgXCJIZXJtw61uYVwiLFxuICAgIFwiTW9uaWthXCIsXG4gICAgXCJJbmdyaWRhXCIsXG4gICAgXCJWaWt0w7NyaWFcIixcbiAgICBcIkJsYcW+ZW5hXCIsXG4gICAgXCLFvW9maWFcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJHaXplbGFcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJHZXJ0csO6ZGFcIixcbiAgICBcIlppbmFcIixcbiAgICBcIkrDumxpYVwiLFxuICAgIFwiSnVsaWFuYVwiLFxuICAgIFwixb1lbG3DrXJhXCIsXG4gICAgXCJFbGFcIixcbiAgICBcIlZhbmVzYVwiLFxuICAgIFwiSXZldGFcIixcbiAgICBcIlZpbG1hXCIsXG4gICAgXCJQZXRyb25lbGFcIixcbiAgICBcIsW9YW5ldGFcIixcbiAgICBcIljDqW5pYVwiLFxuICAgIFwiS2Fyb2zDrW5hXCIsXG4gICAgXCJMZW5rYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIlN0YW5pc2xhdmFcIixcbiAgICBcIk1hcmdhcsOpdGFcIixcbiAgICBcIkRvYnJvc2xhdmFcIixcbiAgICBcIkJsYW5rYVwiLFxuICAgIFwiVmFsw6lyaWFcIixcbiAgICBcIlBhdWzDrW5hXCIsXG4gICAgXCJTaWTDs25pYVwiLFxuICAgIFwiQWRyacOhbmFcIixcbiAgICBcIkJlw6F0YVwiLFxuICAgIFwiUGV0cmFcIixcbiAgICBcIk1lbMOhbmlhXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiQmVydGFcIixcbiAgICBcIlBhdHLDrWNpYVwiLFxuICAgIFwiTHVqemFcIixcbiAgICBcIkFtw6FsaWFcIixcbiAgICBcIk1pbG90YVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTWFyZ2l0YVwiLFxuICAgIFwiS2FtaWxhXCIsXG4gICAgXCJEdcWhYW5hXCIsXG4gICAgXCJNYWdkYWzDqW5hXCIsXG4gICAgXCJPxL5nYVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiSGFuYVwiLFxuICAgIFwiQm/FvmVuYVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIkxpYnXFoWFcIixcbiAgICBcIkJvxb5pZGFyYVwiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIkhvcnRlbnppYVwiLFxuICAgIFwiSm96ZWbDrW5hXCIsXG4gICAgXCLFoHRlZsOhbmlhXCIsXG4gICAgXCLEvXVib23DrXJhXCIsXG4gICAgXCJadXphbmFcIixcbiAgICBcIkRhcmluYVwiLFxuICAgIFwiTWFyY2VsYVwiLFxuICAgIFwiTWlsaWNhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJMw71kaWFcIixcbiAgICBcIkFuYWJlbGFcIixcbiAgICBcIkphbmFcIixcbiAgICBcIlNpbHZpYVwiLFxuICAgIFwiTmlrb2xhXCIsXG4gICAgXCJSdcW+ZW5hXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJEcmFob3NsYXZhXCIsXG4gICAgXCJMaW5kYVwiLFxuICAgIFwiTWVsaW5kYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSb3rDoWxpYVwiLFxuICAgIFwiUmVnw61uYVwiLFxuICAgIFwiQWxpY2FcIixcbiAgICBcIk1hcmlhbm5hXCIsXG4gICAgXCJNaXJpYW1hXCIsXG4gICAgXCJNYXJ0aW5hXCIsXG4gICAgXCJNw6FyaWFcIixcbiAgICBcIkpvbGFuYVwiLFxuICAgIFwixL11ZG9taWxhXCIsXG4gICAgXCLEvXVkbWlsYVwiLFxuICAgIFwiT2x5bXBpYVwiLFxuICAgIFwiRXVnw6luaWFcIixcbiAgICBcIsS9dWJvc2xhdmFcIixcbiAgICBcIlpkZW5rYVwiLFxuICAgIFwiRWRpdGFcIixcbiAgICBcIk1pY2hhZWxhXCIsXG4gICAgXCJTdGVsYVwiLFxuICAgIFwiVmllcmFcIixcbiAgICBcIk5hdMOhbGlhXCIsXG4gICAgXCJFbGnFoWthXCIsXG4gICAgXCJCcmlnaXRhXCIsXG4gICAgXCJWYWxlbnTDrW5hXCIsXG4gICAgXCJUZXLDqXppYVwiLFxuICAgIFwiVmxhZGltw61yYVwiLFxuICAgIFwiSGVkdmlnYVwiLFxuICAgIFwiVXLFoXXEvmFcIixcbiAgICBcIkFsb2p6YVwiLFxuICAgIFwiS3ZldG9zbGF2YVwiLFxuICAgIFwiU2Fiw61uYVwiLFxuICAgIFwiRG9icm9taWxhXCIsXG4gICAgXCJLbMOhcmFcIixcbiAgICBcIlNpbW9uYVwiLFxuICAgIFwiQXVyw6lsaWFcIixcbiAgICBcIkRlbmlzYVwiLFxuICAgIFwiUmVuw6F0YVwiLFxuICAgIFwiSXJtYVwiLFxuICAgIFwiQWduZXNhXCIsXG4gICAgXCJLbGF1ZGlhXCIsXG4gICAgXCJBbMW+YmV0YVwiLFxuICAgIFwiRWx2w61yYVwiLFxuICAgIFwiQ2Vjw61saWFcIixcbiAgICBcIkVtw61saWFcIixcbiAgICBcIkthdGFyw61uYVwiLFxuICAgIFwiSGVucmlldGFcIixcbiAgICBcIkJpYmnDoW5hXCIsXG4gICAgXCJCYXJib3JhXCIsXG4gICAgXCJNYXLDrW5hXCIsXG4gICAgXCJJemFiZWxhXCIsXG4gICAgXCJIaWxkYVwiLFxuICAgIFwiT3TDrWxpYVwiLFxuICAgIFwiTHVjaWFcIixcbiAgICBcIkJyYW5pc2xhdmFcIixcbiAgICBcIkJyb25pc2xhdmFcIixcbiAgICBcIkl2aWNhXCIsXG4gICAgXCJBbGLDrW5hXCIsXG4gICAgXCJLb3Juw6lsaWFcIixcbiAgICBcIlNsw6F2YVwiLFxuICAgIFwiU2zDoXZrYVwiLFxuICAgIFwiSnVkaXRhXCIsXG4gICAgXCJEYWdtYXJhXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiTmFkZcW+ZGFcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRmlsb23DqW5hXCIsXG4gICAgXCJJdmFuYVwiLFxuICAgIFwiTWlsYWRhXCJcbiAgXSxcbiAgXCJtYW5fbGFzdF9uYW1lXCI6IFtcbiAgICBcIkFudGFsXCIsXG4gICAgXCJCYWJrYVwiLFxuICAgIFwiQmFobmFcIixcbiAgICBcIkJhaG5vXCIsXG4gICAgXCJCYWzDocW+XCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyYW5rYVwiLFxuICAgIFwiQmFydG92acSNXCIsXG4gICAgXCJCYXJ0b8WhXCIsXG4gICAgXCJCYcSNYVwiLFxuICAgIFwiQmVybm9sw6FrXCIsXG4gICAgXCJCZcWIb1wiLFxuICAgIFwiQmljZWtcIixcbiAgICBcIkJpZWxpa1wiLFxuICAgIFwiQmxhaG9cIixcbiAgICBcIkJvbmRyYVwiLFxuICAgIFwiQm9zw6FrXCIsXG4gICAgXCJCb8Wha2FcIixcbiAgICBcIkJyZXppbmFcIixcbiAgICBcIkJ1a292c2vDvVwiLFxuICAgIFwiQ2hhbHVwa2FcIixcbiAgICBcIkNodWTDrWtcIixcbiAgICBcIkNpYnVsYVwiLFxuICAgIFwiQ2lidWxrYVwiLFxuICAgIFwiQ2lidcS+YVwiLFxuICAgIFwiQ3lwcmljaFwiLFxuICAgIFwiQ8OtZ2VyXCIsXG4gICAgXCJEYW5rb1wiLFxuICAgIFwiRGHFiGtvXCIsXG4gICAgXCJEYcWIb1wiLFxuICAgIFwiRGVibsOhclwiLFxuICAgIFwiRGVqXCIsXG4gICAgXCJEZWvDvcWhXCIsXG4gICAgXCJEb2xlxb5hbFwiLFxuICAgIFwiRG/EjW9sb21hbnNrw71cIixcbiAgICBcIkRyb3BwYVwiLFxuICAgIFwiRHVib3Zza8O9XCIsXG4gICAgXCJEdWRla1wiLFxuICAgIFwiRHVsYVwiLFxuICAgIFwiRHVsbGFcIixcbiAgICBcIkR1c8Ota1wiLFxuICAgIFwiRHZvbsSNXCIsXG4gICAgXCJEenVyamFuaW5cIixcbiAgICBcIkTDoXZpZFwiLFxuICAgIFwiRmFiaWFuXCIsXG4gICAgXCJGYWJpw6FuXCIsXG4gICAgXCJGYWpub3JcIixcbiAgICBcIkZhcmthxaFvdnNrw71cIixcbiAgICBcIkZpY29cIixcbiAgICBcIkZpbGNcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJGaW5rYVwiLFxuICAgIFwiRnRvcmVrXCIsXG4gICAgXCJHYcWhcGFyXCIsXG4gICAgXCJHYcWhcGFyb3ZpxI1cIixcbiAgICBcIkdvY27DrWtcIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiR3JlZ3XFoVwiLFxuICAgIFwiR3J6bsOhclwiLFxuICAgIFwiSGFibMOha1wiLFxuICAgIFwiSGFixaF1ZGFcIixcbiAgICBcIkhhbGRhXCIsXG4gICAgXCJIYWx1xaFrYVwiLFxuICAgIFwiSGFsw6FrXCIsXG4gICAgXCJIYW5rb1wiLFxuICAgIFwiSGFuemFsXCIsXG4gICAgXCJIYcWhxI3DoWtcIixcbiAgICBcIkhlcmV0aWtcIixcbiAgICBcIkhlxI1rb1wiLFxuICAgIFwiSGxhdsOhxI1la1wiLFxuICAgIFwiSGxpbmthXCIsXG4gICAgXCJIb2x1YlwiLFxuICAgIFwiSG9sdWJ5XCIsXG4gICAgXCJIb3NzYVwiLFxuICAgIFwiSG96YVwiLFxuICAgIFwiSHJhxaFrb1wiLFxuICAgIFwiSHJpY1wiLFxuICAgIFwiSHJtb1wiLFxuICAgIFwiSHJ1xaFvdnNrw71cIixcbiAgICBcIkh1YmFcIixcbiAgICBcIklobmHEjcOha1wiLFxuICAgIFwiSmFuZcSNZWtcIixcbiAgICBcIkphbm/FoWthXCIsXG4gICAgXCJKYW50b8Whb3ZpxI1cIixcbiAgICBcIkphbsOta1wiLFxuICAgIFwiSmFuxI1la1wiLFxuICAgIFwiSmVkxL5vdnNrw71cIixcbiAgICBcIkplbmRla1wiLFxuICAgIFwiSm9uYXRhXCIsXG4gICAgXCJKdXJpbmFcIixcbiAgICBcIkp1cmtvdmnEjVwiLFxuICAgIFwiSnVyw61rXCIsXG4gICAgXCJKw6Fub8Whw61rXCIsXG4gICAgXCJLYWZlbmRhXCIsXG4gICAgXCJLYWxpc2vDvVwiLFxuICAgIFwiS2FydWxcIixcbiAgICBcIktlbsOtxb5cIixcbiAgICBcIktsYXBrYVwiLFxuICAgIFwiS21lxaVcIixcbiAgICBcIktvbGVzw6FyXCIsXG4gICAgXCJLb2xsw6FyXCIsXG4gICAgXCJLb2xuaWtcIixcbiAgICBcIktvbG7DrWtcIixcbiAgICBcIktvbMOhclwiLFxuICAgIFwiS29yZWNcIixcbiAgICBcIktvc3RrYVwiLFxuICAgIFwiS29zdHJlY1wiLFxuICAgIFwiS292w6HEjVwiLFxuICAgIFwiS292w6HEjWlrXCIsXG4gICAgXCJLb3phXCIsXG4gICAgXCJLb8SNacWhXCIsXG4gICAgXCJLcmFqw63EjWVrXCIsXG4gICAgXCJLcmFqxI1pXCIsXG4gICAgXCJLcmFqxI1vXCIsXG4gICAgXCJLcmFqxI1vdmnEjVwiLFxuICAgIFwiS3JhasSNw61yXCIsXG4gICAgXCJLcsOhbGlrXCIsXG4gICAgXCJLcsO6cGFcIixcbiAgICBcIkt1YsOta1wiLFxuICAgIFwiS3lzZcS+XCIsXG4gICAgXCJLw6FsbGF5XCIsXG4gICAgXCJMYWJ1ZGFcIixcbiAgICBcIkxlcMWhw61rXCIsXG4gICAgXCJMaXB0w6FrXCIsXG4gICAgXCJMaXNpY2vDvVwiLFxuICAgIFwiTHViaW5hXCIsXG4gICAgXCJMdWvDocSNXCIsXG4gICAgXCJMdXB0w6FrXCIsXG4gICAgXCJMw63FoWthXCIsXG4gICAgXCJNYWRlalwiLFxuICAgIFwiTWFqZXNrw71cIixcbiAgICBcIk1hbGFjaG92c2vDvVwiLFxuICAgIFwiTWFsw63FoWVrXCIsXG4gICAgXCJNYW1vamthXCIsXG4gICAgXCJNYXJjaW5rb1wiLFxuICAgIFwiTWFyacOhblwiLFxuICAgIFwiTWFzYXJ5a1wiLFxuICAgIFwiTWFzbG9cIixcbiAgICBcIk1hdGlhxaFrb1wiLFxuICAgIFwiTWVkdmXEj1wiLFxuICAgIFwiTWVsY2VyXCIsXG4gICAgXCJNZcSNaWFyXCIsXG4gICAgXCJNaWNoYWzDrWtcIixcbiAgICBcIk1paGFsaWtcIixcbiAgICBcIk1paMOhbFwiLFxuICAgIFwiTWlow6FsaWtcIixcbiAgICBcIk1pa2xvxaFrb1wiLFxuICAgIFwiTWlrdWzDrWtcIixcbiAgICBcIk1pa3XFoVwiLFxuICAgIFwiTWlrw7rFoVwiLFxuICAgIFwiTWlsb3RhXCIsXG4gICAgXCJNaW7DocSNXCIsXG4gICAgXCJNacWhw61rXCIsXG4gICAgXCJNb2rFvmnFoVwiLFxuICAgIFwiTW9rcm/FoVwiLFxuICAgIFwiTW9yYVwiLFxuICAgIFwiTW9yYXbEjcOta1wiLFxuICAgIFwiTXlkbG9cIixcbiAgICBcIk5lbWVjXCIsXG4gICAgXCJOaXRyYVwiLFxuICAgIFwiTm92w6FrXCIsXG4gICAgXCJPYsWhdXRcIixcbiAgICBcIk9uZHJ1xaFcIixcbiAgICBcIk90xI1lbsOhxaFcIixcbiAgICBcIlBhdWtvXCIsXG4gICAgXCJQYXZsaWtvdnNrw71cIixcbiAgICBcIlBhdsO6a1wiLFxuICAgIFwiUGHFoWVrXCIsXG4gICAgXCJQYcWha2FcIixcbiAgICBcIlBhxaFrb1wiLFxuICAgIFwiUGVsaWvDoW5cIixcbiAgICBcIlBldHJvdmlja8O9XCIsXG4gICAgXCJQZXRydcWha2FcIixcbiAgICBcIlBlxaFrb1wiLFxuICAgIFwiUGxjaFwiLFxuICAgIFwiUGxla2FuZWNcIixcbiAgICBcIlBvZGhyYWRza8O9XCIsXG4gICAgXCJQb2Rrb25pY2vDvVwiLFxuICAgIFwiUG9saWFrXCIsXG4gICAgXCJQdXDDoWtcIixcbiAgICBcIlJha1wiLFxuICAgIFwiUmVwaXNrw71cIixcbiAgICBcIlJvbWFuxI3DrWtcIixcbiAgICBcIlJ1c1wiLFxuICAgIFwiUnXFvmnEjWthXCIsXG4gICAgXCJSeWJuw63EjWVrXCIsXG4gICAgXCJSeWLDoXJcIixcbiAgICBcIlJ5YsOhcmlrXCIsXG4gICAgXCJTYW1zb25cIixcbiAgICBcIlNlZGxpYWtcIixcbiAgICBcIlNlbmtvXCIsXG4gICAgXCJTa2xlbmthXCIsXG4gICAgXCJTa29rYW5cIixcbiAgICBcIlNrdXRlY2vDvVwiLFxuICAgIFwiU2xhxaHFpWFuXCIsXG4gICAgXCJTbG9ib2RhXCIsXG4gICAgXCJTbG9ib2Ruw61rXCIsXG4gICAgXCJTbG90YVwiLFxuICAgIFwiU2xvdsOha1wiLFxuICAgIFwiU21yZWtcIixcbiAgICBcIlN0b2RvbGFcIixcbiAgICBcIlN0cmFrYVwiLFxuICAgIFwiU3Rybmlza29cIixcbiAgICBcIlN2cmLDrWtcIixcbiAgICBcIlPDoW1lbFwiLFxuICAgIFwiU8O9a29yYVwiLFxuICAgIFwiVGF0YXJcIixcbiAgICBcIlRhdGFya2FcIixcbiAgICBcIlRhdMOhclwiLFxuICAgIFwiVGF0w6Fya2FcIixcbiAgICBcIlRob21rYVwiLFxuICAgIFwiVG9tZcSNZWtcIixcbiAgICBcIlRvbWthXCIsXG4gICAgXCJUb21rb1wiLFxuICAgIFwiVHJ1YmVuXCIsXG4gICAgXCJUdXLEjW9rXCIsXG4gICAgXCJVcmFtXCIsXG4gICAgXCJVcmJsw61rXCIsXG4gICAgXCJWYWpjw61rXCIsXG4gICAgXCJWYWpkYVwiLFxuICAgIFwiVmFsYWNoXCIsXG4gICAgXCJWYWxhY2hvdmnEjVwiLFxuICAgIFwiVmFsZW50XCIsXG4gICAgXCJWYWx1xaFrYVwiLFxuICAgIFwiVmFuZWtcIixcbiAgICBcIlZlc2VsXCIsXG4gICAgXCJWaWNlblwiLFxuICAgIFwiVmnFocWIb3Zza8O9XCIsXG4gICAgXCJWbGFjaFwiLFxuICAgIFwiVm9qdGVrXCIsXG4gICAgXCJWeWRhcmVuw71cIixcbiAgICBcIlphamFjXCIsXG4gICAgXCJaaW1hXCIsXG4gICAgXCJaaW1rYVwiLFxuICAgIFwiWsOhYm9yc2vDvVwiLFxuICAgIFwiWsO6YnJpa1wiLFxuICAgIFwixIxhcGtvdmnEjVwiLFxuICAgIFwixIxhcGxvdmnEjVwiLFxuICAgIFwixIxhcm5vZ3Vyc2vDvVwiLFxuICAgIFwixIxpZXJueVwiLFxuICAgIFwixIxvYnJkYVwiLFxuICAgIFwixI5hxI9vXCIsXG4gICAgXCLEjnVyaWNhXCIsXG4gICAgXCLEjnVyacWhXCIsXG4gICAgXCLFoGlkbG9cIixcbiAgICBcIsWgaW1vbm92acSNXCIsXG4gICAgXCLFoGtyaW5pYXJcIixcbiAgICBcIsWga3VsdMOpdHlcIixcbiAgICBcIsWgbWFqZGFcIixcbiAgICBcIsWgb2x0w6lzXCIsXG4gICAgXCLFoG9sdMO9c1wiLFxuICAgIFwixaB0ZWZhblwiLFxuICAgIFwixaB0ZWZhbmthXCIsXG4gICAgXCLFoHVsY1wiLFxuICAgIFwixaB1cmthXCIsXG4gICAgXCLFoHZlaGxhXCIsXG4gICAgXCLFoMWlYXN0bsO9XCJcbiAgXSxcbiAgXCJ3b21hbl9sYXN0X25hbWVcIjogW1xuICAgIFwiQW50YWxvdsOhXCIsXG4gICAgXCJCYWJrb3bDoVwiLFxuICAgIFwiQmFobm92w6FcIixcbiAgICBcIkJhbMOhxb5vdsOhXCIsXG4gICAgXCJCYXJhbm92w6FcIixcbiAgICBcIkJhcmFua292w6FcIixcbiAgICBcIkJhcnRvdmnEjW92w6FcIixcbiAgICBcIkJhcnRvxaFvdsOhXCIsXG4gICAgXCJCYcSNb3bDoVwiLFxuICAgIFwiQmVybm9sw6Frb3bDoVwiLFxuICAgIFwiQmXFiG92w6FcIixcbiAgICBcIkJpY2Vrb3bDoVwiLFxuICAgIFwiQmllbGlrb3bDoVwiLFxuICAgIFwiQmxhaG92w6FcIixcbiAgICBcIkJvbmRyb3bDoVwiLFxuICAgIFwiQm9zw6Frb3bDoVwiLFxuICAgIFwiQm/FoWtvdsOhXCIsXG4gICAgXCJCcmV6aW5vdsOhXCIsXG4gICAgXCJCdWtvdnNrw6FcIixcbiAgICBcIkNoYWx1cGtvdsOhXCIsXG4gICAgXCJDaHVkw61rb3bDoVwiLFxuICAgIFwiQ2lidWxvdsOhXCIsXG4gICAgXCJDaWJ1bGtvdsOhXCIsXG4gICAgXCJDeXByaWNob3bDoVwiLFxuICAgIFwiQ8OtZ2Vyb3bDoVwiLFxuICAgIFwiRGFua292w6FcIixcbiAgICBcIkRhxYhrb3bDoVwiLFxuICAgIFwiRGHFiG92w6FcIixcbiAgICBcIkRlYm7DoXJvdsOhXCIsXG4gICAgXCJEZWpvdsOhXCIsXG4gICAgXCJEZWvDvcWhb3bDoVwiLFxuICAgIFwiRG9sZcW+YWxvdsOhXCIsXG4gICAgXCJEb8SNb2xvbWFuc2vDoVwiLFxuICAgIFwiRHJvcHBvdsOhXCIsXG4gICAgXCJEdWJvdnNrw6FcIixcbiAgICBcIkR1ZGVrb3bDoVwiLFxuICAgIFwiRHVsb3bDoVwiLFxuICAgIFwiRHVsbG92w6FcIixcbiAgICBcIkR1c8Ota292w6FcIixcbiAgICBcIkR2b27EjW92w6FcIixcbiAgICBcIkR6dXJqYW5pbm92w6FcIixcbiAgICBcIkTDoXZpZG92w6FcIixcbiAgICBcIkZhYmlhbm92w6FcIixcbiAgICBcIkZhYmnDoW5vdsOhXCIsXG4gICAgXCJGYWpub3JvdsOhXCIsXG4gICAgXCJGYXJrYcWhb3Zza8OhXCIsXG4gICAgXCJGaWNvdsOhXCIsXG4gICAgXCJGaWxjb3bDoVwiLFxuICAgIFwiRmlsaXBvdsOhXCIsXG4gICAgXCJGaW5rb3bDoVwiLFxuICAgIFwiRnRvcmVrb3bDoVwiLFxuICAgIFwiR2HFoXBhcm92w6FcIixcbiAgICBcIkdhxaFwYXJvdmnEjW92w6FcIixcbiAgICBcIkdvY27DrWtvdsOhXCIsXG4gICAgXCJHcmVnb3JvdsOhXCIsXG4gICAgXCJHcmVndcWhb3bDoVwiLFxuICAgIFwiR3J6bsOhcm92w6FcIixcbiAgICBcIkhhYmzDoWtvdsOhXCIsXG4gICAgXCJIYWLFoXVkb3bDoVwiLFxuICAgIFwiSGFsZG92w6FcIixcbiAgICBcIkhhbHXFoWtvdsOhXCIsXG4gICAgXCJIYWzDoWtvdsOhXCIsXG4gICAgXCJIYW5rb3bDoVwiLFxuICAgIFwiSGFuemFsb3bDoVwiLFxuICAgIFwiSGHFocSNw6Frb3bDoVwiLFxuICAgIFwiSGVyZXRpa292w6FcIixcbiAgICBcIkhlxI1rb3bDoVwiLFxuICAgIFwiSGxhdsOhxI1la292w6FcIixcbiAgICBcIkhsaW5rb3bDoVwiLFxuICAgIFwiSG9sdWJvdsOhXCIsXG4gICAgXCJIb2x1YnlvdsOhXCIsXG4gICAgXCJIb3Nzb3bDoVwiLFxuICAgIFwiSG96b3bDoVwiLFxuICAgIFwiSHJhxaFrb3bDoVwiLFxuICAgIFwiSHJpY292w6FcIixcbiAgICBcIkhybW92w6FcIixcbiAgICBcIkhydcWhb3Zza8OhXCIsXG4gICAgXCJIdWJvdsOhXCIsXG4gICAgXCJJaG5hxI3DoWtvdsOhXCIsXG4gICAgXCJKYW5lxI1la292w6FcIixcbiAgICBcIkphbm/FoWtvdsOhXCIsXG4gICAgXCJKYW50b8Whb3ZpxI1vdsOhXCIsXG4gICAgXCJKYW7DrWtvdsOhXCIsXG4gICAgXCJKYW7EjWVrb3bDoVwiLFxuICAgIFwiSmVkxL5vdnNrw6FcIixcbiAgICBcIkplbmRla292w6FcIixcbiAgICBcIkpvbmF0b3bDoVwiLFxuICAgIFwiSnVyaW5vdsOhXCIsXG4gICAgXCJKdXJrb3ZpxI1vdsOhXCIsXG4gICAgXCJKdXLDrWtvdsOhXCIsXG4gICAgXCJKw6Fub8Whw61rb3bDoVwiLFxuICAgIFwiS2FmZW5kb3bDoVwiLFxuICAgIFwiS2FsaXNrw6FcIixcbiAgICBcIkthcnVsb3bDoVwiLFxuICAgIFwiS2Vuw63Fvm92w6FcIixcbiAgICBcIktsYXBrb3bDoVwiLFxuICAgIFwiS21lxaVvdsOhXCIsXG4gICAgXCJLb2xlc8Ohcm92w6FcIixcbiAgICBcIktvbGzDoXJvdsOhXCIsXG4gICAgXCJLb2xuaWtvdsOhXCIsXG4gICAgXCJLb2xuw61rb3bDoVwiLFxuICAgIFwiS29sw6Fyb3bDoVwiLFxuICAgIFwiS29yZWNvdsOhXCIsXG4gICAgXCJLb3N0a2FvdsOhXCIsXG4gICAgXCJLb3N0cmVjb3bDoVwiLFxuICAgIFwiS292w6HEjW92w6FcIixcbiAgICBcIktvdsOhxI1pa292w6FcIixcbiAgICBcIktvem92w6FcIixcbiAgICBcIktvxI1pxaFvdsOhXCIsXG4gICAgXCJLcmFqw63EjWVrb3bDoVwiLFxuICAgIFwiS3JhasSNb3bDoVwiLFxuICAgIFwiS3JhasSNb3ZpxI1vdsOhXCIsXG4gICAgXCJLcmFqxI3DrXJvdsOhXCIsXG4gICAgXCJLcsOhbGlrb3bDoVwiLFxuICAgIFwiS3LDunBvdsOhXCIsXG4gICAgXCJLdWLDrWtvdsOhXCIsXG4gICAgXCJLeXNlxL5vdsOhXCIsXG4gICAgXCJLw6FsbGF5b3bDoVwiLFxuICAgIFwiTGFidWRvdsOhXCIsXG4gICAgXCJMZXDFocOta292w6FcIixcbiAgICBcIkxpcHTDoWtvdsOhXCIsXG4gICAgXCJMaXNpY2vDoVwiLFxuICAgIFwiTHViaW5vdsOhXCIsXG4gICAgXCJMdWvDocSNb3bDoVwiLFxuICAgIFwiTHVwdMOha292w6FcIixcbiAgICBcIkzDrcWha292w6FcIixcbiAgICBcIk1hZGVqb3bDoVwiLFxuICAgIFwiTWFqZXNrw6FcIixcbiAgICBcIk1hbGFjaG92c2vDoVwiLFxuICAgIFwiTWFsw63FoWVrb3bDoVwiLFxuICAgIFwiTWFtb2prb3bDoVwiLFxuICAgIFwiTWFyY2lua292w6FcIixcbiAgICBcIk1hcmnDoW5vdsOhXCIsXG4gICAgXCJNYXNhcnlrb3bDoVwiLFxuICAgIFwiTWFzbG92w6FcIixcbiAgICBcIk1hdGlhxaFrb3bDoVwiLFxuICAgIFwiTWVkdmXEj292w6FcIixcbiAgICBcIk1lbGNlcm92w6FcIixcbiAgICBcIk1lxI1pYXJvdsOhXCIsXG4gICAgXCJNaWNoYWzDrWtvdsOhXCIsXG4gICAgXCJNaWhhbGlrb3bDoVwiLFxuICAgIFwiTWlow6Fsb3bDoVwiLFxuICAgIFwiTWlow6FsaWtvdsOhXCIsXG4gICAgXCJNaWtsb8Wha292w6FcIixcbiAgICBcIk1pa3Vsw61rb3bDoVwiLFxuICAgIFwiTWlrdcWhb3bDoVwiLFxuICAgIFwiTWlrw7rFoW92w6FcIixcbiAgICBcIk1pbG90b3bDoVwiLFxuICAgIFwiTWluw6HEjW92w6FcIixcbiAgICBcIk1pxaHDrWtvdsOhXCIsXG4gICAgXCJNb2rFvmnFoW92w6FcIixcbiAgICBcIk1va3JvxaFvdsOhXCIsXG4gICAgXCJNb3JvdsOhXCIsXG4gICAgXCJNb3JhdsSNw61rb3bDoVwiLFxuICAgIFwiTXlkbG92w6FcIixcbiAgICBcIk5lbWNvdsOhXCIsXG4gICAgXCJOb3bDoWtvdsOhXCIsXG4gICAgXCJPYsWhdXRvdsOhXCIsXG4gICAgXCJPbmRydcWhb3bDoVwiLFxuICAgIFwiT3TEjWVuw6HFoW92w6FcIixcbiAgICBcIlBhdWtvdsOhXCIsXG4gICAgXCJQYXZsaWtvdnNrw6FcIixcbiAgICBcIlBhdsO6a292w6FcIixcbiAgICBcIlBhxaFla292w6FcIixcbiAgICBcIlBhxaFrb3bDoVwiLFxuICAgIFwiUGVsaWvDoW5vdsOhXCIsXG4gICAgXCJQZXRyb3ZpY2vDoVwiLFxuICAgIFwiUGV0cnXFoWtvdsOhXCIsXG4gICAgXCJQZcWha292w6FcIixcbiAgICBcIlBsY2hvdsOhXCIsXG4gICAgXCJQbGVrYW5lY292w6FcIixcbiAgICBcIlBvZGhyYWRza8OhXCIsXG4gICAgXCJQb2Rrb25pY2vDoVwiLFxuICAgIFwiUG9saWFrb3bDoVwiLFxuICAgIFwiUHVww6Frb3bDoVwiLFxuICAgIFwiUmFrb3bDoVwiLFxuICAgIFwiUmVwaXNrw6FcIixcbiAgICBcIlJvbWFuxI3DrWtvdsOhXCIsXG4gICAgXCJSdXNvdsOhXCIsXG4gICAgXCJSdcW+acSNa292w6FcIixcbiAgICBcIlJ5Ym7DrcSNZWtvdsOhXCIsXG4gICAgXCJSeWLDoXJvdsOhXCIsXG4gICAgXCJSeWLDoXJpa292w6FcIixcbiAgICBcIlNhbXNvbm92w6FcIixcbiAgICBcIlNlZGxpYWtvdsOhXCIsXG4gICAgXCJTZW5rb3bDoVwiLFxuICAgIFwiU2tsZW5rb3bDoVwiLFxuICAgIFwiU2tva2Fub3bDoVwiLFxuICAgIFwiU2t1dGVja8OhXCIsXG4gICAgXCJTbGHFocWlYW5vdsOhXCIsXG4gICAgXCJTbG9ib2RvdsOhXCIsXG4gICAgXCJTbG9ib2Ruw61rb3bDoVwiLFxuICAgIFwiU2xvdG92w6FcIixcbiAgICBcIlNsb3bDoWtvdsOhXCIsXG4gICAgXCJTbXJla292w6FcIixcbiAgICBcIlN0b2RvbG92w6FcIixcbiAgICBcIlN0cmFrb3bDoVwiLFxuICAgIFwiU3Rybmlza292w6FcIixcbiAgICBcIlN2cmLDrWtvdsOhXCIsXG4gICAgXCJTw6FtZWxvdsOhXCIsXG4gICAgXCJTw71rb3JvdsOhXCIsXG4gICAgXCJUYXRhcm92w6FcIixcbiAgICBcIlRhdGFya292w6FcIixcbiAgICBcIlRhdMOhcm92w6FcIixcbiAgICBcIlRhdMOhcmthb3bDoVwiLFxuICAgIFwiVGhvbWtvdsOhXCIsXG4gICAgXCJUb21lxI1la292w6FcIixcbiAgICBcIlRvbWtvdsOhXCIsXG4gICAgXCJUcnViZW5vdsOhXCIsXG4gICAgXCJUdXLEjW9rb3bDoVwiLFxuICAgIFwiVXJhbW92w6FcIixcbiAgICBcIlVyYmzDrWtvdsOhXCIsXG4gICAgXCJWYWpjw61rb3bDoVwiLFxuICAgIFwiVmFqZG92w6FcIixcbiAgICBcIlZhbGFjaG92w6FcIixcbiAgICBcIlZhbGFjaG92acSNb3bDoVwiLFxuICAgIFwiVmFsZW50b3bDoVwiLFxuICAgIFwiVmFsdcWha292w6FcIixcbiAgICBcIlZhbmVrb3bDoVwiLFxuICAgIFwiVmVzZWxvdsOhXCIsXG4gICAgXCJWaWNlbm92w6FcIixcbiAgICBcIlZpxaHFiG92c2vDoVwiLFxuICAgIFwiVmxhY2hvdsOhXCIsXG4gICAgXCJWb2p0ZWtvdsOhXCIsXG4gICAgXCJWeWRhcmVuw6FcIixcbiAgICBcIlphamFjb3bDoVwiLFxuICAgIFwiWmltb3bDoVwiLFxuICAgIFwiWmlta292w6FcIixcbiAgICBcIlrDoWJvcnNrw6FcIixcbiAgICBcIlrDumJyaWtvdsOhXCIsXG4gICAgXCLEjGFwa292acSNb3bDoVwiLFxuICAgIFwixIxhcGxvdmnEjW92w6FcIixcbiAgICBcIsSMYXJub2d1cnNrw6FcIixcbiAgICBcIsSMaWVybsOhXCIsXG4gICAgXCLEjG9icmRvdsOhXCIsXG4gICAgXCLEjmHEj292w6FcIixcbiAgICBcIsSOdXJpY292w6FcIixcbiAgICBcIsSOdXJpxaFvdsOhXCIsXG4gICAgXCLFoGlkbG92w6FcIixcbiAgICBcIsWgaW1vbm92acSNb3bDoVwiLFxuICAgIFwixaBrcmluaWFyb3bDoVwiLFxuICAgIFwixaBrdWx0w6l0eW92w6FcIixcbiAgICBcIsWgbWFqZG92w6FcIixcbiAgICBcIsWgb2x0w6lzb3bDoVwiLFxuICAgIFwixaBvbHTDvXNvdsOhXCIsXG4gICAgXCLFoHRlZmFub3bDoVwiLFxuICAgIFwixaB0ZWZhbmtvdsOhXCIsXG4gICAgXCLFoHVsY292w6FcIixcbiAgICBcIsWgdXJrb3bDoVwiLFxuICAgIFwixaB2ZWhsb3bDoVwiLFxuICAgIFwixaDFpWFzdG7DoVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkluZy5cIixcbiAgICBcIk1nci5cIixcbiAgICBcIkpVRHIuXCIsXG4gICAgXCJNVURyLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlBoZC5cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJMZWFkXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RcIixcbiAgICAgIFwiQ29ycG9yYXRlXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiRnV0dXJlXCIsXG4gICAgICBcIlByb2R1Y3RcIixcbiAgICAgIFwiTmF0aW9uYWxcIixcbiAgICAgIFwiUmVnaW9uYWxcIixcbiAgICAgIFwiRGlzdHJpY3RcIixcbiAgICAgIFwiQ2VudHJhbFwiLFxuICAgICAgXCJHbG9iYWxcIixcbiAgICAgIFwiQ3VzdG9tZXJcIixcbiAgICAgIFwiSW52ZXN0b3JcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJJbnRlcm5hdGlvbmFsXCIsXG4gICAgICBcIkxlZ2FjeVwiLFxuICAgICAgXCJGb3J3YXJkXCIsXG4gICAgICBcIkludGVybmFsXCIsXG4gICAgICBcIkh1bWFuXCIsXG4gICAgICBcIkNoaWVmXCIsXG4gICAgICBcIlByaW5jaXBhbFwiXG4gICAgXSxcbiAgICBcImxldmVsXCI6IFtcbiAgICAgIFwiU29sdXRpb25zXCIsXG4gICAgICBcIlByb2dyYW1cIixcbiAgICAgIFwiQnJhbmRcIixcbiAgICAgIFwiU2VjdXJpdHlcIixcbiAgICAgIFwiUmVzZWFyY2hcIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIkRpcmVjdGl2ZXNcIixcbiAgICAgIFwiSW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiSW50ZWdyYXRpb25cIixcbiAgICAgIFwiRnVuY3Rpb25hbGl0eVwiLFxuICAgICAgXCJSZXNwb25zZVwiLFxuICAgICAgXCJQYXJhZGlnbVwiLFxuICAgICAgXCJUYWN0aWNzXCIsXG4gICAgICBcIklkZW50aXR5XCIsXG4gICAgICBcIk1hcmtldHNcIixcbiAgICAgIFwiR3JvdXBcIixcbiAgICAgIFwiRGl2aXNpb25cIixcbiAgICAgIFwiQXBwbGljYXRpb25zXCIsXG4gICAgICBcIk9wdGltaXphdGlvblwiLFxuICAgICAgXCJPcGVyYXRpb25zXCIsXG4gICAgICBcIkluZnJhc3RydWN0dXJlXCIsXG4gICAgICBcIkludHJhbmV0XCIsXG4gICAgICBcIkNvbW11bmljYXRpb25zXCIsXG4gICAgICBcIldlYlwiLFxuICAgICAgXCJCcmFuZGluZ1wiLFxuICAgICAgXCJRdWFsaXR5XCIsXG4gICAgICBcIkFzc3VyYW5jZVwiLFxuICAgICAgXCJNb2JpbGl0eVwiLFxuICAgICAgXCJBY2NvdW50c1wiLFxuICAgICAgXCJEYXRhXCIsXG4gICAgICBcIkNyZWF0aXZlXCIsXG4gICAgICBcIkNvbmZpZ3VyYXRpb25cIixcbiAgICAgIFwiQWNjb3VudGFiaWxpdHlcIixcbiAgICAgIFwiSW50ZXJhY3Rpb25zXCIsXG4gICAgICBcIkZhY3RvcnNcIixcbiAgICAgIFwiVXNhYmlsaXR5XCIsXG4gICAgICBcIk1ldHJpY3NcIlxuICAgIF0sXG4gICAgXCJqb2JcIjogW1xuICAgICAgXCJTdXBlcnZpc29yXCIsXG4gICAgICBcIkFzc29jaWF0ZVwiLFxuICAgICAgXCJFeGVjdXRpdmVcIixcbiAgICAgIFwiTGlhc29uXCIsXG4gICAgICBcIk9mZmljZXJcIixcbiAgICAgIFwiTWFuYWdlclwiLFxuICAgICAgXCJFbmdpbmVlclwiLFxuICAgICAgXCJTcGVjaWFsaXN0XCIsXG4gICAgICBcIkRpcmVjdG9yXCIsXG4gICAgICBcIkNvb3JkaW5hdG9yXCIsXG4gICAgICBcIkFkbWluaXN0cmF0b3JcIixcbiAgICAgIFwiQXJjaGl0ZWN0XCIsXG4gICAgICBcIkFuYWx5c3RcIixcbiAgICAgIFwiRGVzaWduZXJcIixcbiAgICAgIFwiUGxhbm5lclwiLFxuICAgICAgXCJPcmNoZXN0cmF0b3JcIixcbiAgICAgIFwiVGVjaG5pY2lhblwiLFxuICAgICAgXCJEZXZlbG9wZXJcIixcbiAgICAgIFwiUHJvZHVjZXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiRmFjaWxpdGF0b3JcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiUmVwcmVzZW50YXRpdmVcIixcbiAgICAgIFwiU3RyYXRlZ2lzdFwiXG4gICAgXVxuICB9LFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7bWFuX2ZpcnN0X25hbWV9ICN7bWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7d29tYW5fZmlyc3RfbmFtZX0gI3t3b21hbl9sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3t3b21hbl9maXJzdF9uYW1lfSAje3dvbWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7d29tYW5fZmlyc3RfbmFtZX0gI3t3b21hbl9sYXN0X25hbWV9XCIsXG4gICAgXCIje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfVwiXG4gIF1cbn07XG5zay5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwOSMjICMjIyAjIyNcIixcbiAgICBcIjAjIyAjIyMjICMjIyNcIixcbiAgICBcIjAjICMjIyMgIyMjI1wiLFxuICAgIFwiKzQyMSAjIyMgIyMjICMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgc3YgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBzdjtcbnN2LnRpdGxlID0gXCJTd2VkaXNoXCI7XG5zdi5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIlPDtmRlclwiLFxuICAgIFwiTm9yclwiLFxuICAgIFwiVsOkc3RcIixcbiAgICBcIsOWc3RlclwiLFxuICAgIFwiQWxpbmdcIixcbiAgICBcIkFyXCIsXG4gICAgXCJBdlwiLFxuICAgIFwiQm9cIixcbiAgICBcIkJyXCIsXG4gICAgXCJCw6VcIixcbiAgICBcIkVrXCIsXG4gICAgXCJFblwiLFxuICAgIFwiRXNrXCIsXG4gICAgXCJGYWxcIixcbiAgICBcIkfDpHZcIixcbiAgICBcIkfDtnRlXCIsXG4gICAgXCJIYVwiLFxuICAgIFwiSGVsc2luZ1wiLFxuICAgIFwiS2FybFwiLFxuICAgIFwiS3Jpc3RcIixcbiAgICBcIktyYW1cIixcbiAgICBcIkt1bmdcIixcbiAgICBcIkvDtlwiLFxuICAgIFwiTHlja1wiLFxuICAgIFwiTnlcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcInN0YWRcIixcbiAgICBcImxhbmRcIixcbiAgICBcInPDpXNcIixcbiAgICBcIsOlc1wiLFxuICAgIFwiaG9sbVwiLFxuICAgIFwidHVuYVwiLFxuICAgIFwic3RhXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCJsw7Z2XCIsXG4gICAgXCJib3JnXCIsXG4gICAgXCJtb3JhXCIsXG4gICAgXCJoYW1uXCIsXG4gICAgXCJmb3JzXCIsXG4gICAgXCJrw7ZwaW5nXCIsXG4gICAgXCJieVwiLFxuICAgIFwiaHVsdFwiLFxuICAgIFwidG9ycFwiLFxuICAgIFwiZnJlZFwiLFxuICAgIFwidmlrXCJcbiAgXSxcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIlJ5c3NsYW5kXCIsXG4gICAgXCJLYW5hZGFcIixcbiAgICBcIktpbmFcIixcbiAgICBcIlVTQVwiLFxuICAgIFwiQnJhc2lsaWVuXCIsXG4gICAgXCJBdXN0cmFsaWVuXCIsXG4gICAgXCJJbmRpZW5cIixcbiAgICBcIkFyZ2VudGluYVwiLFxuICAgIFwiS2F6YWtzdGFuXCIsXG4gICAgXCJBbGdlcmlldFwiLFxuICAgIFwiRFIgS29uZ29cIixcbiAgICBcIkRhbm1hcmtcIixcbiAgICBcIkbDpHLDtmFybmFcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiU2F1ZGlhcmFiaWVuXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIkluZG9uZXNpZW5cIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJMaWJ5ZW5cIixcbiAgICBcIklyYW5cIixcbiAgICBcIk1vbmdvbGlldFwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiVGNoYWRcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIlN5ZGFmcmlrYVwiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkV0aW9waWVuXCIsXG4gICAgXCJCb2xpdmlhXCIsXG4gICAgXCJNYXVyZXRhbmllblwiLFxuICAgIFwiRWd5cHRlblwiLFxuICAgIFwiVGFuemFuaWFcIixcbiAgICBcIk5pZ2VyaWFcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIk1vw6dhbWJpcXVlXCIsXG4gICAgXCJUdXJraWV0XCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJNYXJvY2tvXCIsXG4gICAgXCJWw6RzdHNhaGFyYVwiLFxuICAgIFwiQnVybWFcIixcbiAgICBcIkFmZ2hhbmlzdGFuXCIsXG4gICAgXCJTb21hbGlhXCIsXG4gICAgXCJDZW50cmFsYWZyaWthbnNrYSByZXB1Ymxpa2VuXCIsXG4gICAgXCJTeWRzdWRhblwiLFxuICAgIFwiVWtyYWluYVwiLFxuICAgIFwiQm90c3dhbmFcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJGcmFua3Jpa2VcIixcbiAgICBcIkZyYW5za2EgR3V5YW5hXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlNwYW5pZW5cIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiUGFwdWEgTnlhIEd1aW5lYVwiLFxuICAgIFwiU3ZlcmlnZVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlppbWJhYndlXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiVHlza2xhbmRcIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJGaW5sYW5kXCIsXG4gICAgXCJNYWxheXNpYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiTm9yZ2VcIixcbiAgICBcIlN2YWxiYXJkXCIsXG4gICAgXCJKYW4gTWF5ZW5cIixcbiAgICBcIkVsZmVuYmVuc2t1c3RlblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIkl0YWxpZW5cIixcbiAgICBcIkZpbGlwcGluZXJuYVwiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJOeWEgWmVlbGFuZFwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiU3RvcmJyaXRhbm5pZW5cIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJSdW3DpG5pZW5cIixcbiAgICBcIkxhb3NcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJWaXRyeXNzbGFuZFwiLFxuICAgIFwiS2lyZ2l6aXN0YW5cIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlN5cmllblwiLFxuICAgIFwiS2FtYm9kamFcIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlR1bmlzaWVuXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiVGFkemppa2lzdGFuXCIsXG4gICAgXCJHcmVrbGFuZFwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJOb3Jka29yZWFcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJCdWxnYXJpZW5cIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJTeWRrb3JlYVwiLFxuICAgIFwiVW5nZXJuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiSm9yZGFuaWVuXCIsXG4gICAgXCJTZXJiaWVuXCIsXG4gICAgXCJBemVyYmFqZHpqYW5cIixcbiAgICBcIsOWc3RlcnJpa2VcIixcbiAgICBcIkbDtnJlbmFkZSBBcmFiZW1pcmF0ZW5cIixcbiAgICBcIlRqZWNraWVuXCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiSXJsYW5kXCIsXG4gICAgXCJHZW9yZ2llblwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJMaXRhdWVuXCIsXG4gICAgXCJMZXR0bGFuZFwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiS3JvYXRpZW5cIixcbiAgICBcIkJvc25pZW4gb2NoIEhlcmNlZ292aW5hXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJTbG92YWtpZW5cIixcbiAgICBcIkRvbWluaWthbnNrYSByZXB1Ymxpa2VuXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkVzdGxhbmRcIixcbiAgICBcIkRhbm1hcmtcIixcbiAgICBcIkbDpHLDtmFybmFcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiTmVkZXJsw6RuZGVybmFcIixcbiAgICBcIlNjaHdlaXpcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiTW9sZGF2aWVuXCIsXG4gICAgXCJCZWxnaWVuXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJBcm1lbmllblwiLFxuICAgIFwiQWxiYW5pZW5cIixcbiAgICBcIlNhbG9tb27DtmFybmFcIixcbiAgICBcIkVrdmF0b3JpYWxndWluZWFcIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkhhaXRpXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIk1ha2Vkb25pZW5cIixcbiAgICBcIkRqaWJvdXRpXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIlNsb3ZlbmllblwiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlRpbW9yLUxlc3RlXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJRYXRhclwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJLb3Nvdm9cIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkN5cGVyblwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJUcmluaWRhZCBvY2ggVG9iYWdvXCIsXG4gICAgXCJLYXAgVmVyZGVcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJMdXhlbWJ1cmdcIixcbiAgICBcIktvbW9yZXJuYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJTw6NvIFRvbcOpIG9jaCBQcsOtbmNpcGVcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIk1pa3JvbmVzaWVucyBmZWRlcmVyYWRlIHN0YXRlclwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJTYWludCBMdWNpYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlNleWNoZWxsZXJuYVwiLFxuICAgIFwiQW50aWd1YSBvY2ggQmFyYnVkYVwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIlNhaW50IFZpbmNlbnQgb2NoIEdyZW5hZGluZXJuYVwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hbGRpdmVybmFcIixcbiAgICBcIlNhaW50IEtpdHRzIG9jaCBOZXZpc1wiLFxuICAgIFwiTWFyc2hhbGzDtmFybmFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiVmF0aWthbnN0YXRlblwiXG4gIF0sXG4gIFwiY29tbW9uX3N0cmVldF9zdWZmaXhcIjogW1xuICAgIFwicyBWw6RnXCIsXG4gICAgXCJzIEdhdGFcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiVsOkc3RyYVwiLFxuICAgIFwiw5ZzdHJhXCIsXG4gICAgXCJOb3JyYVwiLFxuICAgIFwiU8O2ZHJhXCIsXG4gICAgXCLDlnZyZVwiLFxuICAgIFwiVW5kcmVcIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkJqw7Zya1wiLFxuICAgIFwiSsOkcm52w6Rnc1wiLFxuICAgIFwiUmluZ1wiLFxuICAgIFwiU2tvbFwiLFxuICAgIFwiU2tvZ3NcIixcbiAgICBcIk55XCIsXG4gICAgXCJHcmFuXCIsXG4gICAgXCJJZHJvdHRzXCIsXG4gICAgXCJTdG9yXCIsXG4gICAgXCJLeXJrXCIsXG4gICAgXCJJbmR1c3RyaVwiLFxuICAgIFwiUGFya1wiLFxuICAgIFwiU3RyYW5kXCIsXG4gICAgXCJTa29sXCIsXG4gICAgXCJUcsOkZGfDpXJkXCIsXG4gICAgXCLDhG5nc1wiLFxuICAgIFwiS3lya29cIixcbiAgICBcIlZpbGxhXCIsXG4gICAgXCJFa1wiLFxuICAgIFwiS3Zhcm5cIixcbiAgICBcIlN0YXRpb25zXCIsXG4gICAgXCJCYWNrXCIsXG4gICAgXCJGdXJ1XCIsXG4gICAgXCJHZW5cIixcbiAgICBcIkZhYnJpa3NcIixcbiAgICBcIsOFa2VyXCIsXG4gICAgXCJCw6Rja1wiLFxuICAgIFwiQXNwXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcInbDpGdlblwiLFxuICAgIFwiZ2F0YW5cIixcbiAgICBcImdyw6RuZGVuXCIsXG4gICAgXCJnw6RyZGV0XCIsXG4gICAgXCJhbGzDqW5cIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkJsZWtpbmdlXCIsXG4gICAgXCJEYWxhcm5hXCIsXG4gICAgXCJHb3RsYW5kXCIsXG4gICAgXCJHw6R2bGVib3JnXCIsXG4gICAgXCJHw7Z0ZWJvcmdcIixcbiAgICBcIkhhbGxhbmRcIixcbiAgICBcIkrDpG10bGFuZFwiLFxuICAgIFwiSsO2bmvDtnBpbmdcIixcbiAgICBcIkthbG1hclwiLFxuICAgIFwiS3Jvbm9iZXJnXCIsXG4gICAgXCJOb3JyYm90dGVuXCIsXG4gICAgXCJTa2FyYWJvcmdcIixcbiAgICBcIlNrw6VuZVwiLFxuICAgIFwiU3RvY2tob2xtXCIsXG4gICAgXCJTw7ZkZXJtYW5sYW5kXCIsXG4gICAgXCJVcHBzYWxhXCIsXG4gICAgXCJWw6RybWxhbmRcIixcbiAgICBcIlbDpHN0ZXJib3R0ZW5cIixcbiAgICBcIlbDpHN0ZXJub3JybGFuZFwiLFxuICAgIFwiVsOkc3RtYW5sYW5kXCIsXG4gICAgXCLDhGx2c2JvcmdcIixcbiAgICBcIsOWcmVicm9cIixcbiAgICBcIsOWc3RlcmfDtnRsYW5kXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9I3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tzdHJlZXRfcHJlZml4fSAje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y29tbW9uX3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7Y29tbW9uX3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkxnaC4gIyMjXCIsXG4gICAgXCJIdXMgIyMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJTdmVyaWdlXCJcbiAgXVxufTtcbnN2LmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkdydXBwZW5cIixcbiAgICBcIkFCXCIsXG4gICAgXCJIQlwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkludmVzdG1lbnRcIixcbiAgICBcIktvbW1hbmRpdGJvbGFnXCIsXG4gICAgXCJBa3RpZWJvbGFnXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIlxuICBdXG59O1xuc3YuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJzZVwiLFxuICAgIFwibnVcIixcbiAgICBcImluZm9cIixcbiAgICBcImNvbVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnN2Lm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZV93b21lblwiOiBbXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiTWFyZ2FyZXRhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiQmlyZ2l0dGFcIixcbiAgICBcIktyaXN0aW5hXCIsXG4gICAgXCJLYXJpblwiLFxuICAgIFwiRWxpc2FiZXRcIixcbiAgICBcIk1hcmllXCJcbiAgXSxcbiAgXCJmaXJzdF9uYW1lX21lblwiOiBbXG4gICAgXCJFcmlrXCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJLYXJsXCIsXG4gICAgXCJBbmRlcnNcIixcbiAgICBcIlBlclwiLFxuICAgIFwiSm9oYW5cIixcbiAgICBcIk5pbHNcIixcbiAgICBcIkxlbm5hcnRcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkhhbnNcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJKb2hhbnNzb25cIixcbiAgICBcIkFuZGVyc3NvblwiLFxuICAgIFwiS2FybHNzb25cIixcbiAgICBcIk5pbHNzb25cIixcbiAgICBcIkVyaWtzc29uXCIsXG4gICAgXCJMYXJzc29uXCIsXG4gICAgXCJPbHNzb25cIixcbiAgICBcIlBlcnNzb25cIixcbiAgICBcIlN2ZW5zc29uXCIsXG4gICAgXCJHdXN0YWZzc29uXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiRHIuXCIsXG4gICAgXCJQcm9mLlwiLFxuICAgIFwiUGhELlwiXG4gIF0sXG4gIFwidGl0bGVcIjoge1xuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIkxlYWRcIixcbiAgICAgIFwiU2VuaW9yXCIsXG4gICAgICBcIkRpcmVjdFwiLFxuICAgICAgXCJDb3Jwb3JhdGVcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJGdXR1cmVcIixcbiAgICAgIFwiUHJvZHVjdFwiLFxuICAgICAgXCJOYXRpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cmljdFwiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDdXN0b21lclwiLFxuICAgICAgXCJJbnZlc3RvclwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiTGVnYWN5XCIsXG4gICAgICBcIkZvcndhcmRcIixcbiAgICAgIFwiSW50ZXJuYWxcIixcbiAgICAgIFwiSHVtYW5cIixcbiAgICAgIFwiQ2hpZWZcIixcbiAgICAgIFwiUHJpbmNpcGFsXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1dGlvbnNcIixcbiAgICAgIFwiUHJvZ3JhbVwiLFxuICAgICAgXCJCcmFuZFwiLFxuICAgICAgXCJTZWN1cml0eVwiLFxuICAgICAgXCJSZXNlYXJjaFwiLFxuICAgICAgXCJNYXJrZXRpbmdcIixcbiAgICAgIFwiRGlyZWN0aXZlc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJJbnRlZ3JhdGlvblwiLFxuICAgICAgXCJGdW5jdGlvbmFsaXR5XCIsXG4gICAgICBcIlJlc3BvbnNlXCIsXG4gICAgICBcIlBhcmFkaWdtXCIsXG4gICAgICBcIlRhY3RpY3NcIixcbiAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgIFwiTWFya2V0c1wiLFxuICAgICAgXCJHcm91cFwiLFxuICAgICAgXCJEaXZpc2lvblwiLFxuICAgICAgXCJBcHBsaWNhdGlvbnNcIixcbiAgICAgIFwiT3B0aW1pemF0aW9uXCIsXG4gICAgICBcIk9wZXJhdGlvbnNcIixcbiAgICAgIFwiSW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tbXVuaWNhdGlvbnNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkJyYW5kaW5nXCIsXG4gICAgICBcIlF1YWxpdHlcIixcbiAgICAgIFwiQXNzdXJhbmNlXCIsXG4gICAgICBcIk1vYmlsaXR5XCIsXG4gICAgICBcIkFjY291bnRzXCIsXG4gICAgICBcIkRhdGFcIixcbiAgICAgIFwiQ3JlYXRpdmVcIixcbiAgICAgIFwiQ29uZmlndXJhdGlvblwiLFxuICAgICAgXCJBY2NvdW50YWJpbGl0eVwiLFxuICAgICAgXCJJbnRlcmFjdGlvbnNcIixcbiAgICAgIFwiRmFjdG9yc1wiLFxuICAgICAgXCJVc2FiaWxpdHlcIixcbiAgICAgIFwiTWV0cmljc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNzb2NpYXRlXCIsXG4gICAgICBcIkV4ZWN1dGl2ZVwiLFxuICAgICAgXCJMaWFzb25cIixcbiAgICAgIFwiT2ZmaWNlclwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkVuZ2luZWVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmF0b3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRvclwiLFxuICAgICAgXCJBcmNoaXRlY3RcIixcbiAgICAgIFwiQW5hbHlzdFwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJQbGFubmVyXCIsXG4gICAgICBcIk9yY2hlc3RyYXRvclwiLFxuICAgICAgXCJUZWNobmljaWFuXCIsXG4gICAgICBcIkRldmVsb3BlclwiLFxuICAgICAgXCJQcm9kdWNlclwiLFxuICAgICAgXCJDb25zdWx0YW50XCIsXG4gICAgICBcIkFzc2lzdGFudFwiLFxuICAgICAgXCJGYWNpbGl0YXRvclwiLFxuICAgICAgXCJBZ2VudFwiLFxuICAgICAgXCJSZXByZXNlbnRhdGl2ZVwiLFxuICAgICAgXCJTdHJhdGVnaXN0XCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lX3dvbWVufSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuc3YucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjIy0jIyMjI1wiLFxuICAgIFwiIyMjIy0jIyMjIyNcIlxuICBdXG59O1xuc3YuY2VsbF9waG9uZSA9IHtcbiAgXCJjb21tb25fY2VsbF9wcmVmaXhcIjogW1xuICAgIDU2LFxuICAgIDYyLFxuICAgIDU5XG4gIF0sXG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIje2NvbW1vbl9jZWxsX3ByZWZpeH0tIyMjLSMjIyNcIlxuICBdXG59O1xuc3YuY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwidml0XCIsXG4gICAgXCJzaWx2ZXJcIixcbiAgICBcImdyw6VcIixcbiAgICBcInN2YXJ0XCIsXG4gICAgXCJyw7ZkXCIsXG4gICAgXCJncsO2blwiLFxuICAgIFwiYmzDpVwiLFxuICAgIFwiZ3VsXCIsXG4gICAgXCJsaWxhXCIsXG4gICAgXCJpbmRpZ29cIixcbiAgICBcImd1bGRcIixcbiAgICBcImJydW5cIixcbiAgICBcInJvc2FcIixcbiAgICBcInB1cnB1clwiLFxuICAgIFwia29yYWxsXCJcbiAgXSxcbiAgXCJkZXBhcnRtZW50XCI6IFtcbiAgICBcIkLDtmNrZXJcIixcbiAgICBcIkZpbG1lclwiLFxuICAgIFwiTXVzaWtcIixcbiAgICBcIlNwZWxcIixcbiAgICBcIkVsZWt0cm9uaWtcIixcbiAgICBcIkRhdG9yZXJcIixcbiAgICBcIkhlbVwiLFxuICAgIFwiVHLDpGRnw6VyZFwiLFxuICAgIFwiVmVya3R5Z1wiLFxuICAgIFwiTGl2c21lZGVsXCIsXG4gICAgXCJIw6Rsc2FcIixcbiAgICBcIlNrw7ZuaGV0XCIsXG4gICAgXCJMZWtzYWtlclwiLFxuICAgIFwiS2zDpGRzZWxcIixcbiAgICBcIlNrb3JcIixcbiAgICBcIlNteWNrZW5cIixcbiAgICBcIlNwb3J0XCJcbiAgXSxcbiAgXCJwcm9kdWN0X25hbWVcIjoge1xuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiTGl0ZW5cIixcbiAgICAgIFwiRXJnb25vbWlza1wiLFxuICAgICAgXCJSb2J1c3RcIixcbiAgICAgIFwiSW50ZWxsaWdlbnRcIixcbiAgICAgIFwiU8O2dFwiLFxuICAgICAgXCJPdHJvbGlnXCIsXG4gICAgICBcIkZhdGFzdGlza1wiLFxuICAgICAgXCJQcmFrdGlza1wiLFxuICAgICAgXCJTbGltbWFkXCIsXG4gICAgICBcIkdyeW1cIlxuICAgIF0sXG4gICAgXCJtYXRlcmlhbFwiOiBbXG4gICAgICBcIlN0w6VsXCIsXG4gICAgICBcIk1ldGFsbFwiLFxuICAgICAgXCJUcsOkXCIsXG4gICAgICBcIkJldG9uZ1wiLFxuICAgICAgXCJQbGFzdFwiLFxuICAgICAgXCJCb211bFwiLFxuICAgICAgXCJHcm5pdFwiLFxuICAgICAgXCJHdW1taVwiLFxuICAgICAgXCJMYXRleFwiXG4gICAgXSxcbiAgICBcInByb2R1Y3RcIjogW1xuICAgICAgXCJTdG9sXCIsXG4gICAgICBcIkJpbFwiLFxuICAgICAgXCJEYXRvclwiLFxuICAgICAgXCJIYW5kc2thclwiLFxuICAgICAgXCJQYW50c1wiLFxuICAgICAgXCJTaGlydFwiLFxuICAgICAgXCJUYWJsZVwiLFxuICAgICAgXCJTaG9lc1wiLFxuICAgICAgXCJIYXRcIlxuICAgIF1cbiAgfVxufTtcbnN2LnRlYW0gPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIklGXCIsXG4gICAgXCJGRlwiLFxuICAgIFwiQktcIixcbiAgICBcIkhLXCIsXG4gICAgXCJBSUZcIixcbiAgICBcIlNLXCIsXG4gICAgXCJGQ1wiLFxuICAgIFwiU0tcIixcbiAgICBcIkJvSVNcIixcbiAgICBcIkZLXCIsXG4gICAgXCJCSVNcIixcbiAgICBcIkZJRlwiLFxuICAgIFwiSUtcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tBZGRyZXNzLmNpdHl9ICN7c3VmZml4fVwiXG4gIF1cbn07XG4iLCJ2YXIgdmkgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSB2aTtcbnZpLnRpdGxlID0gXCJWaWV0bmFtZXNlXCI7XG52aS5hZGRyZXNzID0ge1xuICBcImNpdHlfcm9vdFwiOiBbXG4gICAgXCJC4bqvYyBHaWFuZ1wiLFxuICAgIFwiQuG6r2MgS+G6oW5cIixcbiAgICBcIkLhuq9jIE5pbmhcIixcbiAgICBcIkNhbyBC4bqxbmdcIixcbiAgICBcIsSQaeG7h24gQmnDqm5cIixcbiAgICBcIkjDoCBHaWFuZ1wiLFxuICAgIFwiSMOgIE5hbVwiLFxuICAgIFwiSMOgIFTDonlcIixcbiAgICBcIkjhuqNpIETGsMahbmdcIixcbiAgICBcIlRQIEjhuqNpIFBow7JuZ1wiLFxuICAgIFwiSMOyYSBCw6xuaFwiLFxuICAgIFwiSMawbmcgWcOqblwiLFxuICAgIFwiTGFpIENow6J1XCIsXG4gICAgXCJMw6BvIENhaVwiLFxuICAgIFwiTOG6oW5nIFPGoW5cIixcbiAgICBcIk5hbSDEkOG7i25oXCIsXG4gICAgXCJOaW5oIELDrG5oXCIsXG4gICAgXCJQaMO6IFRo4buNXCIsXG4gICAgXCJRdeG6o25nIE5pbmhcIixcbiAgICBcIlPGoW4gTGFcIixcbiAgICBcIlRow6FpIELDrG5oXCIsXG4gICAgXCJUaMOhaSBOZ3V5w6puXCIsXG4gICAgXCJUdXnDqm4gUXVhbmdcIixcbiAgICBcIlbEqW5oIFBow7pjXCIsXG4gICAgXCJZw6puIELDoWlcIixcbiAgICBcIlRQIMSQw6AgTuG6tW5nXCIsXG4gICAgXCJCw6xuaCDEkOG7i25oXCIsXG4gICAgXCLEkOG6r2sgTOG6r2tcIixcbiAgICBcIsSQ4bqvayBOw7RuZ1wiLFxuICAgIFwiR2lhIExhaVwiLFxuICAgIFwiSMOgIFTEqW5oXCIsXG4gICAgXCJLaMOhbmggSMOyYVwiLFxuICAgIFwiS29uIFR1bVwiLFxuICAgIFwiTmdo4buHIEFuXCIsXG4gICAgXCJQaMO6IFnDqm5cIixcbiAgICBcIlF14bqjbmcgQsOsbmhcIixcbiAgICBcIlF14bqjbmcgTmFtXCIsXG4gICAgXCJRdeG6o25nIE5nw6NpXCIsXG4gICAgXCJRdeG6o25nIFRy4buLXCIsXG4gICAgXCJUaGFuaCBIw7NhXCIsXG4gICAgXCJUaOG7q2EgVGhpw6puIEh14bq/XCIsXG4gICAgXCJUUCBUUC4gSOG7kyBDaMOtIE1pbmhcIixcbiAgICBcIkFuIEdpYW5nXCIsXG4gICAgXCJCw6AgUuG7i2EgVsWpbmcgVMOgdVwiLFxuICAgIFwiQuG6oWMgTGnDqnVcIixcbiAgICBcIkLhur9uIFRyZVwiLFxuICAgIFwiQsOsbmggRMawxqFuZ1wiLFxuICAgIFwiQsOsbmggUGjGsOG7m2NcIixcbiAgICBcIkLDrG5oIFRodeG6rW5cIixcbiAgICBcIkPDoCBNYXVcIixcbiAgICBcIlRQIEPhuqduIFRoxqFcIixcbiAgICBcIsSQ4buTbmcgTmFpXCIsXG4gICAgXCLEkOG7k25nIFRow6FwXCIsXG4gICAgXCJI4bqtdSBHaWFuZ1wiLFxuICAgIFwiS2nDqm4gR2lhbmdcIixcbiAgICBcIkzDom0gxJDhu5NuZ1wiLFxuICAgIFwiTG9uZyBBblwiLFxuICAgIFwiTmluaCBUaHXhuq1uXCIsXG4gICAgXCJTw7NjIFRyxINuZ1wiLFxuICAgIFwiVMOieSBOaW5oXCIsXG4gICAgXCJUaeG7gW4gR2lhbmdcIixcbiAgICBcIlRyw6AgVmluaFwiLFxuICAgIFwiVsSpbmggTG9uZ1wiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcm9vdH1cIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFwiL1tBLVBSLVVXWVowLTldW0EtSEstWTAtOV1bQUVITU5QUlRWWFkwLTldP1tBQkVITU5QUlZXWFkwLTldPyB7MSwyfVswLTldW0FCRC1ISkxOLVVXLVpdezJ9L1wiLFxuICBcImNvdW50eVwiOiBbXG4gICAgXCJBdm9uXCIsXG4gICAgXCJCZWRmb3Jkc2hpcmVcIixcbiAgICBcIkJlcmtzaGlyZVwiLFxuICAgIFwiQm9yZGVyc1wiLFxuICAgIFwiQnVja2luZ2hhbXNoaXJlXCIsXG4gICAgXCJDYW1icmlkZ2VzaGlyZVwiLFxuICAgIFwiQ2VudHJhbFwiLFxuICAgIFwiQ2hlc2hpcmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2x3eWRcIixcbiAgICBcIkNvcm53YWxsXCIsXG4gICAgXCJDb3VudHkgQW50cmltXCIsXG4gICAgXCJDb3VudHkgQXJtYWdoXCIsXG4gICAgXCJDb3VudHkgRG93blwiLFxuICAgIFwiQ291bnR5IEZlcm1hbmFnaFwiLFxuICAgIFwiQ291bnR5IExvbmRvbmRlcnJ5XCIsXG4gICAgXCJDb3VudHkgVHlyb25lXCIsXG4gICAgXCJDdW1icmlhXCIsXG4gICAgXCJEZXJieXNoaXJlXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRG9yc2V0XCIsXG4gICAgXCJEdW1mcmllcyBhbmQgR2FsbG93YXlcIixcbiAgICBcIkR1cmhhbVwiLFxuICAgIFwiRHlmZWRcIixcbiAgICBcIkVhc3QgU3Vzc2V4XCIsXG4gICAgXCJFc3NleFwiLFxuICAgIFwiRmlmZVwiLFxuICAgIFwiR2xvdWNlc3RlcnNoaXJlXCIsXG4gICAgXCJHcmFtcGlhblwiLFxuICAgIFwiR3JlYXRlciBNYW5jaGVzdGVyXCIsXG4gICAgXCJHd2VudFwiLFxuICAgIFwiR3d5bmVkZCBDb3VudHlcIixcbiAgICBcIkhhbXBzaGlyZVwiLFxuICAgIFwiSGVyZWZvcmRzaGlyZVwiLFxuICAgIFwiSGVydGZvcmRzaGlyZVwiLFxuICAgIFwiSGlnaGxhbmRzIGFuZCBJc2xhbmRzXCIsXG4gICAgXCJIdW1iZXJzaWRlXCIsXG4gICAgXCJJc2xlIG9mIFdpZ2h0XCIsXG4gICAgXCJLZW50XCIsXG4gICAgXCJMYW5jYXNoaXJlXCIsXG4gICAgXCJMZWljZXN0ZXJzaGlyZVwiLFxuICAgIFwiTGluY29sbnNoaXJlXCIsXG4gICAgXCJMb3RoaWFuXCIsXG4gICAgXCJNZXJzZXlzaWRlXCIsXG4gICAgXCJNaWQgR2xhbW9yZ2FuXCIsXG4gICAgXCJOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aCBZb3Jrc2hpcmVcIixcbiAgICBcIk5vcnRoYW1wdG9uc2hpcmVcIixcbiAgICBcIk5vcnRodW1iZXJsYW5kXCIsXG4gICAgXCJOb3R0aW5naGFtc2hpcmVcIixcbiAgICBcIk94Zm9yZHNoaXJlXCIsXG4gICAgXCJQb3d5c1wiLFxuICAgIFwiUnV0bGFuZFwiLFxuICAgIFwiU2hyb3BzaGlyZVwiLFxuICAgIFwiU29tZXJzZXRcIixcbiAgICBcIlNvdXRoIEdsYW1vcmdhblwiLFxuICAgIFwiU291dGggWW9ya3NoaXJlXCIsXG4gICAgXCJTdGFmZm9yZHNoaXJlXCIsXG4gICAgXCJTdHJhdGhjbHlkZVwiLFxuICAgIFwiU3VmZm9sa1wiLFxuICAgIFwiU3VycmV5XCIsXG4gICAgXCJUYXlzaWRlXCIsXG4gICAgXCJUeW5lIGFuZCBXZWFyXCIsXG4gICAgXCJWaeG7h3QgTmFtXCIsXG4gICAgXCJXYXJ3aWNrc2hpcmVcIixcbiAgICBcIldlc3QgR2xhbW9yZ2FuXCIsXG4gICAgXCJXZXN0IE1pZGxhbmRzXCIsXG4gICAgXCJXZXN0IFN1c3NleFwiLFxuICAgIFwiV2VzdCBZb3Jrc2hpcmVcIixcbiAgICBcIldpbHRzaGlyZVwiLFxuICAgIFwiV29yY2VzdGVyc2hpcmVcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJWaeG7h3QgTmFtXCJcbiAgXVxufTtcbnZpLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcImluZm9cIixcbiAgICBcInZuXCIsXG4gICAgXCJjb20udm5cIlxuICBdXG59O1xudmkucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDEjIyMjICMjIyMjXCIsXG4gICAgXCIwMSMjIyAjIyMjIyNcIixcbiAgICBcIjAxIzEgIyMjICMjIyNcIixcbiAgICBcIjAxMSMgIyMjICMjIyNcIixcbiAgICBcIjAyIyAjIyMjICMjIyNcIixcbiAgICBcIjAzIyMgIyMjICMjIyNcIixcbiAgICBcIjA1NSAjIyMjICMjIyNcIixcbiAgICBcIjA1NiAjIyMjICMjIyNcIixcbiAgICBcIjA4MDAgIyMjICMjIyNcIixcbiAgICBcIjA4IyMgIyMjICMjIyNcIixcbiAgICBcIjA5IyMgIyMjICMjIyNcIixcbiAgICBcIjAxNjk3NyAjIyMjXCIsXG4gICAgXCIwMSMjIyAjIyMjI1wiLFxuICAgIFwiMDUwMCAjIyMjIyNcIixcbiAgICBcIjA4MDAgIyMjIyMjXCJcbiAgXVxufTtcbnZpLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwNzQjIyAjIyMjIyNcIixcbiAgICBcIjA3NSMjICMjIyMjI1wiLFxuICAgIFwiMDc2IyMgIyMjIyMjXCIsXG4gICAgXCIwNzcjIyAjIyMjIyNcIixcbiAgICBcIjA3OCMjICMjIyMjI1wiLFxuICAgIFwiMDc5IyMgIyMjIyMjXCJcbiAgXVxufTtcbnZpLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJQaOG6oW1cIixcbiAgICBcIk5ndXnhu4VuXCIsXG4gICAgXCJUcuG6p25cIixcbiAgICBcIkzDqlwiLFxuICAgIFwiTMO9XCIsXG4gICAgXCJIb8OgbmdcIixcbiAgICBcIlBoYW5cIixcbiAgICBcIlbFqVwiLFxuICAgIFwiVMSDbmdcIixcbiAgICBcIsSQ4bq3bmdcIixcbiAgICBcIkLDuWlcIixcbiAgICBcIsSQ4buXXCIsXG4gICAgXCJI4buTXCIsXG4gICAgXCJOZ8O0XCIsXG4gICAgXCJExrDGoW5nXCIsXG4gICAgXCLEkMOgb1wiLFxuICAgIFwixJBvw6BuXCIsXG4gICAgXCJWxrDGoW5nXCIsXG4gICAgXCJUcuG7i25oXCIsXG4gICAgXCLEkGluaFwiLFxuICAgIFwiTMOibVwiLFxuICAgIFwiUGjDuW5nXCIsXG4gICAgXCJNYWlcIixcbiAgICBcIlTDtFwiLFxuICAgIFwiVHLGsMahbmdcIixcbiAgICBcIkjDoFwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIk5hbVwiLFxuICAgIFwiVHJ1bmdcIixcbiAgICBcIlRoYW5oXCIsXG4gICAgXCJUaOG7i1wiLFxuICAgIFwiVsSDblwiLFxuICAgIFwiRMawxqFuZ1wiLFxuICAgIFwiVMSDbmdcIixcbiAgICBcIlF14buRY1wiLFxuICAgIFwiTmjGsFwiLFxuICAgIFwiUGjhuqFtXCIsXG4gICAgXCJOZ3V54buFblwiLFxuICAgIFwiVHLhuqduXCIsXG4gICAgXCJMw6pcIixcbiAgICBcIkzDvVwiLFxuICAgIFwiSG/DoG5nXCIsXG4gICAgXCJQaGFuXCIsXG4gICAgXCJWxalcIixcbiAgICBcIlTEg25nXCIsXG4gICAgXCLEkOG6t25nXCIsXG4gICAgXCJCw7lpXCIsXG4gICAgXCLEkOG7l1wiLFxuICAgIFwiSOG7k1wiLFxuICAgIFwiTmfDtFwiLFxuICAgIFwiRMawxqFuZ1wiLFxuICAgIFwixJDDoG9cIixcbiAgICBcIsSQb8OgblwiLFxuICAgIFwiVsawxqFuZ1wiLFxuICAgIFwiVHLhu4tuaFwiLFxuICAgIFwixJBpbmhcIixcbiAgICBcIkzDom1cIixcbiAgICBcIlBow7luZ1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJUw7RcIixcbiAgICBcIlRyxrDGoW5nXCIsXG4gICAgXCJIw6BcIixcbiAgICBcIlZpbmhcIixcbiAgICBcIk5odW5nXCIsXG4gICAgXCJIw7JhXCIsXG4gICAgXCJUaeG6v25cIixcbiAgICBcIlTDom1cIixcbiAgICBcIkLhu611XCIsXG4gICAgXCJMb2FuXCIsXG4gICAgXCJIaeG7gW5cIixcbiAgICBcIkjhuqNpXCIsXG4gICAgXCJWw6JuXCIsXG4gICAgXCJLaGFcIixcbiAgICBcIk1pbmhcIixcbiAgICBcIk5ow6JuXCIsXG4gICAgXCJUcmnhu4d1XCIsXG4gICAgXCJUdcOiblwiLFxuICAgIFwiSOG7r3VcIixcbiAgICBcIsSQ4bupY1wiLFxuICAgIFwiUGjDulwiLFxuICAgIFwiS2hvYVwiLFxuICAgIFwiVGjhuq9nblwiLFxuICAgIFwiU8ahblwiLFxuICAgIFwiRHVuZ1wiLFxuICAgIFwiVMO6XCIsXG4gICAgXCJUcmluaFwiLFxuICAgIFwiVGjhuqNvXCIsXG4gICAgXCJTYVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJMb25nXCIsXG4gICAgXCJUaGlcIixcbiAgICBcIkPGsOG7nW5nXCIsXG4gICAgXCJOZ+G7jWNcIixcbiAgICBcIlNpbmhcIixcbiAgICBcIktoYW5nXCIsXG4gICAgXCJQaG9uZ1wiLFxuICAgIFwiVGjhuq9tXCIsXG4gICAgXCJUaHVcIixcbiAgICBcIlRo4buneVwiLFxuICAgIFwiTmjDoG5cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG52aS5jb21wYW55ID0ge1xuICBcInByZWZpeFwiOiBbXG4gICAgXCJDw7RuZyB0eVwiLFxuICAgIFwiQ3R5IFROSEhcIixcbiAgICBcIkN0eVwiLFxuICAgIFwiQ+G7rWEgaMOgbmdcIixcbiAgICBcIlRydW5nIHTDom1cIixcbiAgICBcIkNoaSBuaMOhbmhcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbnZpLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcIsSRw6NcIixcbiAgICBcIsSRYW5nXCIsXG4gICAgXCLhu6tcIixcbiAgICBcIuG7nVwiLFxuICAgIFwiw6FcIixcbiAgICBcImtow7RuZ1wiLFxuICAgIFwiYmnhur90XCIsXG4gICAgXCJnw6xcIixcbiAgICBcImjhur90XCIsXG4gICAgXCLEkcOidVwiLFxuICAgIFwibmhhXCIsXG4gICAgXCJ0aOG6v1wiLFxuICAgIFwidGjDrFwiLFxuICAgIFwibMOgXCIsXG4gICAgXCLEkcOhbmhcIixcbiAgICBcIsSRw6FcIixcbiAgICBcIsSR4bqtcFwiLFxuICAgIFwicGjDoVwiLFxuICAgIFwidmnhur90XCIsXG4gICAgXCJ24bq9XCIsXG4gICAgXCJ0w7RcIixcbiAgICBcInRodcOqXCIsXG4gICAgXCJtxrDhu5tuXCIsXG4gICAgXCJtxrDhu6NuXCIsXG4gICAgXCJtdWFcIixcbiAgICBcIm3hu5l0XCIsXG4gICAgXCJoYWlcIixcbiAgICBcImJhXCIsXG4gICAgXCJi4buRblwiLFxuICAgIFwibsSDbVwiLFxuICAgIFwic8OhdVwiLFxuICAgIFwiYuG6o3lcIixcbiAgICBcInTDoW1cIixcbiAgICBcImNow61uXCIsXG4gICAgXCJtxrDhu51pXCIsXG4gICAgXCJ0aMO0aVwiLFxuICAgIFwidmnhu4djXCIsXG4gICAgXCJuZ2jhu4lcIixcbiAgICBcImzDoG1cIixcbiAgICBcIm5ow6BcIixcbiAgICBcImPhu61hXCIsXG4gICAgXCJ4ZVwiLFxuICAgIFwixJHhuqFwXCIsXG4gICAgXCLDoWNcIixcbiAgICBcIsSR4buZY1wiLFxuICAgIFwia2hv4bqjbmdcIixcbiAgICBcImtob2FuXCIsXG4gICAgXCJ0aHV54buBblwiLFxuICAgIFwidMOgdVwiLFxuICAgIFwiYsOoXCIsXG4gICAgXCJs4bqndVwiLFxuICAgIFwieGFuaFwiLFxuICAgIFwixJHhu49cIixcbiAgICBcInTDrW1cIixcbiAgICBcInbDoG5nXCIsXG4gICAgXCJraW1cIixcbiAgICBcImNo4buJXCIsXG4gICAgXCJraMOidVwiLFxuICAgIFwibWF5XCIsXG4gICAgXCJ2w6FcIixcbiAgICBcImVtXCIsXG4gICAgXCJhbmhcIixcbiAgICBcInnDqnVcIixcbiAgICBcInRoxrDGoW5nXCIsXG4gICAgXCJ0aMOtY2hcIixcbiAgICBcImNvblwiLFxuICAgIFwiY8OhaVwiLFxuICAgIFwiYsOgblwiLFxuICAgIFwiZ2jhur9cIixcbiAgICBcInThu6dcIixcbiAgICBcInF14bqnblwiLFxuICAgIFwiw6FvXCIsXG4gICAgXCJuw7NuXCIsXG4gICAgXCJkw6lwXCIsXG4gICAgXCJnacOgeVwiLFxuICAgIFwibOG7l2lcIixcbiAgICBcIsSRxrDhu6NjXCIsXG4gICAgXCJnaMOpdFwiLFxuICAgIFwiZ2nhur90XCIsXG4gICAgXCJjaOG6v3RcIixcbiAgICBcImjhur90XCIsXG4gICAgXCJ0w7RpXCIsXG4gICAgXCJi4bqhblwiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0cuG7nWlcIixcbiAgICBcInRyxINuZ1wiLFxuICAgIFwibcOieVwiLFxuICAgIFwiZ2nDs1wiLFxuICAgIFwibcOheVwiLFxuICAgIFwiaMOgbmdcIixcbiAgICBcImjDs2FcIixcbiAgICBcImxlb1wiLFxuICAgIFwibsO6aVwiLFxuICAgIFwiYsahaVwiLFxuICAgIFwiYmnhu4NuXCIsXG4gICAgXCJjaMOsbVwiLFxuICAgIFwieHXhu5NuZ1wiLFxuICAgIFwibsaw4bubY1wiLFxuICAgIFwibmfhu410XCIsXG4gICAgXCJydeG7mW5nXCIsXG4gICAgXCLEkeG7k25nXCIsXG4gICAgXCJxdcOqXCIsXG4gICAgXCJoxrDGoW5nXCJcbiAgXVxufTtcbiIsInZhciB6aF9DTiA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHpoX0NOO1xuemhfQ04udGl0bGUgPSBcIkNoaW5lc2VcIjtcbnpoX0NOLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwi6ZW/XCIsXG4gICAgXCLkuIpcIixcbiAgICBcIuWNl1wiLFxuICAgIFwi6KW/XCIsXG4gICAgXCLljJdcIixcbiAgICBcIuivuFwiLFxuICAgIFwi5a6BXCIsXG4gICAgXCLnj6BcIixcbiAgICBcIuatplwiLFxuICAgIFwi6KGhXCIsXG4gICAgXCLmiJBcIixcbiAgICBcIuemj1wiLFxuICAgIFwi5Y6mXCIsXG4gICAgXCLotLVcIixcbiAgICBcIuWQiVwiLFxuICAgIFwi5rW3XCIsXG4gICAgXCLlpKpcIixcbiAgICBcIua1jlwiLFxuICAgIFwi5a6JXCIsXG4gICAgXCLlkIlcIixcbiAgICBcIuWMhVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwi5rKZ5biCXCIsXG4gICAgXCLkuqzluIJcIixcbiAgICBcIuWugeW4glwiLFxuICAgIFwi5a6J5biCXCIsXG4gICAgXCLkuaHljr9cIixcbiAgICBcIua1t+W4glwiLFxuICAgIFwi56CB5biCXCIsXG4gICAgXCLmsYnluIJcIixcbiAgICBcIumYs+W4glwiLFxuICAgIFwi6YO95biCXCIsXG4gICAgXCLlt57luIJcIixcbiAgICBcIumXqOW4glwiLFxuICAgIFwi6Ziz5biCXCIsXG4gICAgXCLlj6PluIJcIixcbiAgICBcIuWOn+W4glwiLFxuICAgIFwi5Y2X5biCXCIsXG4gICAgXCLlvr3luIJcIixcbiAgICBcIuael+W4glwiLFxuICAgIFwi5aS05biCXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwi5be3XCIsXG4gICAgXCLooZdcIixcbiAgICBcIui3r1wiLFxuICAgIFwi5qGlXCIsXG4gICAgXCLkvqxcIixcbiAgICBcIuaXgVwiLFxuICAgIFwi5Lit5b+DXCIsXG4gICAgXCLmoItcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwi5YyX5Lqs5biCXCIsXG4gICAgXCLkuIrmtbfluIJcIixcbiAgICBcIuWkqea0peW4glwiLFxuICAgIFwi6YeN5bqG5biCXCIsXG4gICAgXCLpu5HpvpnmsZ/nnIFcIixcbiAgICBcIuWQieael+ecgVwiLFxuICAgIFwi6L695a6B55yBXCIsXG4gICAgXCLlhoXokpnlj6RcIixcbiAgICBcIuays+WMl+ecgVwiLFxuICAgIFwi5paw55aGXCIsXG4gICAgXCLnlJjogoPnnIFcIixcbiAgICBcIumdkua1t+ecgVwiLFxuICAgIFwi6ZmV6KW/55yBXCIsXG4gICAgXCLlroHlpI9cIixcbiAgICBcIuays+WNl+ecgVwiLFxuICAgIFwi5bGx5Lic55yBXCIsXG4gICAgXCLlsbHopb/nnIFcIixcbiAgICBcIuWuieW+veecgVwiLFxuICAgIFwi5rmW5YyX55yBXCIsXG4gICAgXCLmuZbljZfnnIFcIixcbiAgICBcIuaxn+iLj+ecgVwiLFxuICAgIFwi5Zub5bed55yBXCIsXG4gICAgXCLotLXlt57nnIFcIixcbiAgICBcIuS6keWNl+ecgVwiLFxuICAgIFwi5bm/6KW/55yBXCIsXG4gICAgXCLopb/ol49cIixcbiAgICBcIua1meaxn+ecgVwiLFxuICAgIFwi5rGf6KW/55yBXCIsXG4gICAgXCLlub/kuJznnIFcIixcbiAgICBcIuemj+W7uuecgVwiLFxuICAgIFwi5Y+w5rm+55yBXCIsXG4gICAgXCLmtbfljZfnnIFcIixcbiAgICBcIummmea4r1wiLFxuICAgIFwi5r6z6ZeoXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIuS6rFwiLFxuICAgIFwi5rKqXCIsXG4gICAgXCLmtKVcIixcbiAgICBcIua4nVwiLFxuICAgIFwi6buRXCIsXG4gICAgXCLlkIlcIixcbiAgICBcIui+vVwiLFxuICAgIFwi6JKZXCIsXG4gICAgXCLlhoBcIixcbiAgICBcIuaWsFwiLFxuICAgIFwi55SYXCIsXG4gICAgXCLpnZJcIixcbiAgICBcIumZlVwiLFxuICAgIFwi5a6BXCIsXG4gICAgXCLosatcIixcbiAgICBcIumygVwiLFxuICAgIFwi5pmLXCIsXG4gICAgXCLnmpZcIixcbiAgICBcIumEglwiLFxuICAgIFwi5rmYXCIsXG4gICAgXCLoi49cIixcbiAgICBcIuW3nVwiLFxuICAgIFwi6buUXCIsXG4gICAgXCLmu4dcIixcbiAgICBcIuahglwiLFxuICAgIFwi6JePXCIsXG4gICAgXCLmtZlcIixcbiAgICBcIui1o1wiLFxuICAgIFwi57KkXCIsXG4gICAgXCLpl71cIixcbiAgICBcIuWPsFwiLFxuICAgIFwi55C8XCIsXG4gICAgXCLmuK9cIixcbiAgICBcIua+s1wiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9I3tidWlsZGluZ19udW1iZXJ95Y+3XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwi5Lit5Zu9XCJcbiAgXVxufTtcbnpoX0NOLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLnjotcIixcbiAgICBcIuadjlwiLFxuICAgIFwi5bygXCIsXG4gICAgXCLliJhcIixcbiAgICBcIumZiFwiLFxuICAgIFwi5p2oXCIsXG4gICAgXCLpu4RcIixcbiAgICBcIuWQtFwiLFxuICAgIFwi6LW1XCIsXG4gICAgXCLlkahcIixcbiAgICBcIuW+kFwiLFxuICAgIFwi5a2ZXCIsXG4gICAgXCLpqaxcIixcbiAgICBcIuacsVwiLFxuICAgIFwi6IOhXCIsXG4gICAgXCLmnpdcIixcbiAgICBcIumDrVwiLFxuICAgIFwi5L2VXCIsXG4gICAgXCLpq5hcIixcbiAgICBcIue9l1wiLFxuICAgIFwi6YORXCIsXG4gICAgXCLmooFcIixcbiAgICBcIuiwolwiLFxuICAgIFwi5a6LXCIsXG4gICAgXCLllJBcIixcbiAgICBcIuiuuFwiLFxuICAgIFwi6YKTXCIsXG4gICAgXCLlhq9cIixcbiAgICBcIumfqVwiLFxuICAgIFwi5pu5XCIsXG4gICAgXCLmm75cIixcbiAgICBcIuW9rVwiLFxuICAgIFwi6JCnXCIsXG4gICAgXCLolKFcIixcbiAgICBcIua9mFwiLFxuICAgIFwi55SwXCIsXG4gICAgXCLokaNcIixcbiAgICBcIuiigVwiLFxuICAgIFwi5LqOXCIsXG4gICAgXCLkvZlcIixcbiAgICBcIuWPtlwiLFxuICAgIFwi6JKLXCIsXG4gICAgXCLmnZxcIixcbiAgICBcIuiLj1wiLFxuICAgIFwi6a2PXCIsXG4gICAgXCLnqItcIixcbiAgICBcIuWQlVwiLFxuICAgIFwi5LiBXCIsXG4gICAgXCLmsohcIixcbiAgICBcIuS7u1wiLFxuICAgIFwi5aeaXCIsXG4gICAgXCLljaJcIixcbiAgICBcIuWChVwiLFxuICAgIFwi6ZKfXCIsXG4gICAgXCLlp5xcIixcbiAgICBcIuW0lFwiLFxuICAgIFwi6LCtXCIsXG4gICAgXCLlu5ZcIixcbiAgICBcIuiMg1wiLFxuICAgIFwi5rGqXCIsXG4gICAgXCLpmYZcIixcbiAgICBcIumHkVwiLFxuICAgIFwi55+zXCIsXG4gICAgXCLmiLRcIixcbiAgICBcIui0vlwiLFxuICAgIFwi6Z+mXCIsXG4gICAgXCLlpI9cIixcbiAgICBcIumCsVwiLFxuICAgIFwi5pa5XCIsXG4gICAgXCLkvq9cIixcbiAgICBcIumCuVwiLFxuICAgIFwi54aKXCIsXG4gICAgXCLlrZ9cIixcbiAgICBcIuenplwiLFxuICAgIFwi55m9XCIsXG4gICAgXCLmsZ9cIixcbiAgICBcIumYjlwiLFxuICAgIFwi6JabXCIsXG4gICAgXCLlsLlcIixcbiAgICBcIuautVwiLFxuICAgIFwi6Zu3XCIsXG4gICAgXCLpu45cIixcbiAgICBcIuWPslwiLFxuICAgIFwi6b6ZXCIsXG4gICAgXCLpmbZcIixcbiAgICBcIui0ulwiLFxuICAgIFwi6aG+XCIsXG4gICAgXCLmr5tcIixcbiAgICBcIumDnVwiLFxuICAgIFwi6b6aXCIsXG4gICAgXCLpgrVcIixcbiAgICBcIuS4h1wiLFxuICAgIFwi6ZKxXCIsXG4gICAgXCLkuKVcIixcbiAgICBcIui1llwiLFxuICAgIFwi6KaDXCIsXG4gICAgXCLmtKpcIixcbiAgICBcIuatplwiLFxuICAgIFwi6I6rXCIsXG4gICAgXCLlrZRcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCLnu43pvZBcIixcbiAgICBcIuWNmuaWh1wiLFxuICAgIFwi5qKT5pmoXCIsXG4gICAgXCLog6TnpaVcIixcbiAgICBcIueRnumcllwiLFxuICAgIFwi5piO5ZOyXCIsXG4gICAgXCLlpKnnv4pcIixcbiAgICBcIuWHr+eRnlwiLFxuICAgIFwi5YGl6ZuEXCIsXG4gICAgXCLogIDmnbBcIixcbiAgICBcIua9h+eEtlwiLFxuICAgIFwi5a2Q5ra1XCIsXG4gICAgXCLotorlvaxcIixcbiAgICBcIumSsOi9qVwiLFxuICAgIFwi5pm66L6JXCIsXG4gICAgXCLoh7Tov5xcIixcbiAgICBcIuS/iumpsFwiLFxuICAgIFwi6Zuo5rO9XCIsXG4gICAgXCLng6jno4pcIixcbiAgICBcIuaZn+edv1wiLFxuICAgIFwi5paH5piKXCIsXG4gICAgXCLkv67mtIFcIixcbiAgICBcIum7juaYlVwiLFxuICAgIFwi6L+c6IiqXCIsXG4gICAgXCLml63lsKdcIixcbiAgICBcIum4v+a2m1wiLFxuICAgIFwi5Lyf56W6XCIsXG4gICAgXCLojaPovalcIixcbiAgICBcIui2iuazvVwiLFxuICAgIFwi5rWp5a6HXCIsXG4gICAgXCLnkb7nkZxcIixcbiAgICBcIueak+i9qVwiLFxuICAgIFwi5pOO6IuNXCIsXG4gICAgXCLmk47lrodcIixcbiAgICBcIuW/l+azvVwiLFxuICAgIFwi5a2Q6L2pXCIsXG4gICAgXCLnnb/muIpcIixcbiAgICBcIuW8mOaWh1wiLFxuICAgIFwi5ZOy54CaXCIsXG4gICAgXCLpm6jms71cIixcbiAgICBcIualt+eRnlwiLFxuICAgIFwi5bu66L6JXCIsXG4gICAgXCLmmYvpuY9cIixcbiAgICBcIuWkqeejilwiLFxuICAgIFwi57uN6L6JXCIsXG4gICAgXCLms73mtItcIixcbiAgICBcIumRq+ejilwiLFxuICAgIFwi6bmP54WKXCIsXG4gICAgXCLmmIrlvLpcIixcbiAgICBcIuS8n+WuuFwiLFxuICAgIFwi5Y2a6LaFXCIsXG4gICAgXCLlkJvmtalcIixcbiAgICBcIuWtkOmqnlwiLFxuICAgIFwi6bmP5rabXCIsXG4gICAgXCLngo7lvaxcIixcbiAgICBcIum5pOi9qVwiLFxuICAgIFwi6LaK5b2sXCIsXG4gICAgXCLpo47ljY5cIixcbiAgICBcIumdlueQqlwiLFxuICAgIFwi5piO6L6JXCIsXG4gICAgXCLkvJ/or5pcIixcbiAgICBcIuaYjui9qVwiLFxuICAgIFwi5YGl5p+PXCIsXG4gICAgXCLkv67mnbBcIixcbiAgICBcIuW/l+azvVwiLFxuICAgIFwi5byY5paHXCIsXG4gICAgXCLls7vnhplcIixcbiAgICBcIuWYieaHv1wiLFxuICAgIFwi54Wc5Z+OXCIsXG4gICAgXCLmh7/ovalcIixcbiAgICBcIueDqOS8n1wiLFxuICAgIFwi6IuR5Y2aXCIsXG4gICAgXCLkvJ/ms71cIixcbiAgICBcIueGoOW9pFwiLFxuICAgIFwi6bi/54WKXCIsXG4gICAgXCLljZrmtptcIixcbiAgICBcIueDqOmcllwiLFxuICAgIFwi54Oo5Y2OXCIsXG4gICAgXCLnhZznpbpcIixcbiAgICBcIuaZuuWuuFwiLFxuICAgIFwi5q2j6LGqXCIsXG4gICAgXCLmmIrnhLZcIixcbiAgICBcIuaYjuadsFwiLFxuICAgIFwi56uL6K+aXCIsXG4gICAgXCLnq4vovalcIixcbiAgICBcIueri+i+iVwiLFxuICAgIFwi5bO754aZXCIsXG4gICAgXCLlvJjmlodcIixcbiAgICBcIueGoOW9pFwiLFxuICAgIFwi6bi/54WKXCIsXG4gICAgXCLng6jpnJZcIixcbiAgICBcIuWTsueAmlwiLFxuICAgIFwi6ZGr6bmPXCIsXG4gICAgXCLmmIrlpKlcIixcbiAgICBcIuaAneiBqlwiLFxuICAgIFwi5bGV6bmPXCIsXG4gICAgXCLnrJHmhJpcIixcbiAgICBcIuW/l+W8ulwiLFxuICAgIFwi54Kr5piOXCIsXG4gICAgXCLpm6rmnb5cIixcbiAgICBcIuaAnea6kFwiLFxuICAgIFwi5pm65riKXCIsXG4gICAgXCLmgJ3mt7xcIixcbiAgICBcIuaZk+WVuFwiLFxuICAgIFwi5aSp5a6HXCIsXG4gICAgXCLmtannhLZcIixcbiAgICBcIuaWh+i9qVwiLFxuICAgIFwi6bmt5rSLXCIsXG4gICAgXCLmjK/lrrZcIixcbiAgICBcIuS5kOmpuVwiLFxuICAgIFwi5pmT5Y2aXCIsXG4gICAgXCLmlofljZpcIixcbiAgICBcIuaYiueEsVwiLFxuICAgIFwi56uL5p6cXCIsXG4gICAgXCLph5HpkatcIixcbiAgICBcIumUpueoi1wiLFxuICAgIFwi5ZiJ54aZXCIsXG4gICAgXCLpuY/po55cIixcbiAgICBcIuWtkOm7mFwiLFxuICAgIFwi5oCd6L+cXCIsXG4gICAgXCLmtanovalcIixcbiAgICBcIuivreWgglwiLFxuICAgIFwi6IGq5YGlXCIsXG4gICAgXCLmmI5cIixcbiAgICBcIuaWh1wiLFxuICAgIFwi5p6cXCIsXG4gICAgXCLmgJ1cIixcbiAgICBcIum5j1wiLFxuICAgIFwi6amwXCIsXG4gICAgXCLmtptcIixcbiAgICBcIueQqlwiLFxuICAgIFwi5rWpXCIsXG4gICAgXCLoiKpcIixcbiAgICBcIuW9rFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2ZpcnN0X25hbWV9I3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbnpoX0NOLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMjIyMjI1wiLFxuICAgIFwiIyMjIy0jIyMjIyMjI1wiLFxuICAgIFwiIyMjIyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcbnZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbnZhciBsb3JlbSA9IHtcbiAgICB3b3JkczogZnVuY3Rpb24gKG51bSkge1xuICAgICAgICBpZiAodHlwZW9mIG51bSA9PSAndW5kZWZpbmVkJykgeyBudW0gPSAzOyB9XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnNodWZmbGUoZmFrZXIuZGVmaW5pdGlvbnMubG9yZW0ud29yZHMpLnNsaWNlKDAsIG51bSk7XG4gICAgfSxcblxuICAgIHNlbnRlbmNlOiBmdW5jdGlvbiAod29yZENvdW50LCByYW5nZSkge1xuICAgICAgICBpZiAodHlwZW9mIHdvcmRDb3VudCA9PSAndW5kZWZpbmVkJykgeyB3b3JkQ291bnQgPSAzOyB9XG4gICAgICAgIGlmICh0eXBlb2YgcmFuZ2UgPT0gJ3VuZGVmaW5lZCcpIHsgcmFuZ2UgPSA3OyB9XG5cbiAgICAgICAgLy8gc3RyYW5nZSBpc3N1ZSB3aXRoIHRoZSBub2RlX21pbl90ZXN0IGZhaWxpbmcgZm9yIGNhcHRpYWxpemUsIHBsZWFzZSBmaXggYW5kIGFkZCBmYWtlci5sb3JlbS5iYWNrXG4gICAgICAgIC8vcmV0dXJuICBmYWtlci5sb3JlbS53b3Jkcyh3b3JkQ291bnQgKyBIZWxwZXJzLnJhbmRvbU51bWJlcihyYW5nZSkpLmpvaW4oJyAnKS5jYXBpdGFsaXplKCk7XG5cbiAgICAgICAgcmV0dXJuICBmYWtlci5sb3JlbS53b3Jkcyh3b3JkQ291bnQgKyBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKSkuam9pbignICcpO1xuICAgIH0sXG5cbiAgICBzZW50ZW5jZXM6IGZ1bmN0aW9uIChzZW50ZW5jZUNvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VudGVuY2VDb3VudCA9PSAndW5kZWZpbmVkJykgeyBzZW50ZW5jZUNvdW50ID0gMzsgfVxuICAgICAgICB2YXIgc2VudGVuY2VzID0gW107XG4gICAgICAgIGZvciAoc2VudGVuY2VDb3VudDsgc2VudGVuY2VDb3VudCA+IDA7IHNlbnRlbmNlQ291bnQtLSkge1xuICAgICAgICAgICAgc2VudGVuY2VzLnB1c2goZmFrZXIubG9yZW0uc2VudGVuY2UoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbnRlbmNlcy5qb2luKFwiXFxuXCIpO1xuICAgIH0sXG5cbiAgICBwYXJhZ3JhcGg6IGZ1bmN0aW9uIChzZW50ZW5jZUNvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VudGVuY2VDb3VudCA9PSAndW5kZWZpbmVkJykgeyBzZW50ZW5jZUNvdW50ID0gMzsgfVxuICAgICAgICByZXR1cm4gZmFrZXIubG9yZW0uc2VudGVuY2VzKHNlbnRlbmNlQ291bnQgKyBmYWtlci5yYW5kb20ubnVtYmVyKDMpKTtcbiAgICB9LFxuXG4gICAgcGFyYWdyYXBoczogZnVuY3Rpb24gKHBhcmFncmFwaENvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyYWdyYXBoQ291bnQgPT0gJ3VuZGVmaW5lZCcpIHsgcGFyYWdyYXBoQ291bnQgPSAzOyB9XG4gICAgICAgIHZhciBwYXJhZ3JhcGhzID0gW107XG4gICAgICAgIGZvciAocGFyYWdyYXBoQ291bnQ7IHBhcmFncmFwaENvdW50ID4gMDsgcGFyYWdyYXBoQ291bnQtLSkge1xuICAgICAgICAgICAgcGFyYWdyYXBocy5wdXNoKGZha2VyLmxvcmVtLnBhcmFncmFwaCgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYWdyYXBocy5qb2luKFwiXFxuIFxcclxcdFwiKTtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGxvcmVtO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIF9uYW1lID0ge1xuXG4gICAgZmlyc3ROYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAodHlwZW9mIGZha2VyLmRlZmluaXRpb25zLm5hbWUubWFsZV9maXJzdF9uYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBmYWtlci5kZWZpbml0aW9ucy5uYW1lLmZlbWFsZV9maXJzdF9uYW1lICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIC8vIHNvbWUgbG9jYWxlIGRhdGFzZXRzICggbGlrZSBydSApIGhhdmUgZmlyc3RfbmFtZSBzcGxpdCBieSBnZW5kZXIuIHNpbmNlIHRoZSBuYW1lLmZpcnN0X25hbWUgZmllbGQgZG9lcyBub3QgZXhpc3QgaW4gdGhlc2UgZGF0YXNldHMsXG4gICAgICAgIC8vIHdlIG11c3QgcmFuZG9tbHkgcGljayBhIG5hbWUgZnJvbSBlaXRoZXIgZ2VuZGVyIGFycmF5IHNvIGZha2VyLm5hbWUuZmlyc3ROYW1lIHdpbGwgcmV0dXJuIHRoZSBjb3JyZWN0IGxvY2FsZSBkYXRhICggYW5kIG5vdCBmYWxsYmFjayApXG4gICAgICAgIHZhciByYW5kID0gZmFrZXIucmFuZG9tLm51bWJlcigxKTtcbiAgICAgICAgaWYgKHJhbmQgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIubG9jYWxlc1tmYWtlci5sb2NhbGVdLm5hbWUubWFsZV9maXJzdF9uYW1lKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5sb2NhbGVzW2Zha2VyLmxvY2FsZV0ubmFtZS5mZW1hbGVfZmlyc3RfbmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLm5hbWUuZmlyc3RfbmFtZSlcbiAgICB9LFxuXG4gICAgbGFzdE5hbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICh0eXBlb2YgZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5tYWxlX2xhc3RfbmFtZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgZmFrZXIuZGVmaW50aW9ucy5uYW1lLmZlbWFsZV9sYXN0X25hbWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgLy8gc29tZSBsb2NhbGUgZGF0YXNldHMgKCBsaWtlIHJ1ICkgaGF2ZSBsYXN0X25hbWUgc3BsaXQgYnkgZ2VuZGVyLiBpIGhhdmUgbm8gaWRlYSBob3cgbGFzdCBuYW1lcyBjYW4gaGF2ZSBnZW5kZXJzLCBidXQgYWxzbyBpIGRvIG5vdCBzcGVhayBydXNzaWFuXG4gICAgICAgIC8vIHNlZSBhYm92ZSBjb21tZW50IG9mIGZpcnN0TmFtZSBtZXRob2RcbiAgICAgICAgdmFyIHJhbmQgPSBmYWtlci5yYW5kb20ubnVtYmVyKDEpO1xuICAgICAgICBpZiAocmFuZCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5sb2NhbGVzW2Zha2VyLmxvY2FsZV0ubmFtZS5tYWxlX2xhc3RfbmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmxvY2FsZXNbZmFrZXIubG9jYWxlXS5uYW1lLmZlbWFsZV9sYXN0X25hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5sYXN0X25hbWUpO1xuICAgIH0sXG5cbiAgICBmaW5kTmFtZTogZnVuY3Rpb24gKGZpcnN0TmFtZSwgbGFzdE5hbWUpIHtcbiAgICAgICAgdmFyIHIgPSBmYWtlci5yYW5kb20ubnVtYmVyKDgpO1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgfHwgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSB8fCBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIHN3aXRjaCAocikge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5wcmVmaXgoKSArIFwiIFwiICsgZmlyc3ROYW1lICsgXCIgXCIgKyBsYXN0TmFtZTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0TmFtZSArIFwiIFwiICsgbGFzdE5hbWUgKyBcIiBcIiArIGZha2VyLm5hbWUuc3VmZml4KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlyc3ROYW1lICsgXCIgXCIgKyBsYXN0TmFtZTtcbiAgICB9LFxuXG4gICAgcHJlZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5uYW1lLnByZWZpeCk7XG4gICAgfSxcblxuICAgIHN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5zdWZmaXgpO1xuICAgIH0sXG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gX25hbWU7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgcGhvbmUgPSB7XG4gICAgcGhvbmVOdW1iZXI6IGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8IGZha2VyLnBob25lLnBob25lRm9ybWF0cygpO1xuICAgICAgICByZXR1cm4gZmFrZXIuaGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmb3JtYXQpO1xuICAgIH0sXG5cbiAgICAvLyBGSVhNRTogdGhpcyBpcyBzdHJhbmdlIHBhc3NpbmcgaW4gYW4gYXJyYXkgaW5kZXguXG4gICAgcGhvbmVOdW1iZXJGb3JtYXQ6IGZ1bmN0aW9uIChwaG9uZUZvcm1hdHNBcnJheUluZGV4KSB7XG4gICAgICAgIHBob25lRm9ybWF0c0FycmF5SW5kZXggPSBwaG9uZUZvcm1hdHNBcnJheUluZGV4IHx8IDA7XG4gICAgICAgIHJldHVybiBmYWtlci5oZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKGZha2VyLmRlZmluaXRpb25zLnBob25lX251bWJlci5mb3JtYXRzW3Bob25lRm9ybWF0c0FycmF5SW5kZXhdKTtcbiAgICB9LFxuXG4gICAgcGhvbmVGb3JtYXRzOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMucGhvbmVfbnVtYmVyLmZvcm1hdHMpO1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBwaG9uZTtcbiIsInZhciBtZXJzZW5uZSA9IHJlcXVpcmUoJy4uL3ZlbmRvci9tZXJzZW5uZScpO1xudmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIHJhbmRvbSA9IHtcbiAgICAvLyByZXR1cm5zIGEgc2luZ2xlIHJhbmRvbSBudW1iZXIgYmFzZWQgb24gYSBtYXggbnVtYmVyIG9yIHJhbmdlXG4gICAgbnVtYmVyOiBmdW5jdGlvbiAob3B0aW9ucykge1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBtYXg6IG9wdGlvbnNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm1pbiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIG9wdGlvbnMubWluID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5tYXggPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBvcHRpb25zLm1heCA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnByZWNpc2lvbiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIG9wdGlvbnMucHJlY2lzaW9uID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgdGhlIHJhbmdlIGluY2x1c2l2ZSBvZiB0aGUgbWF4IHZhbHVlXG4gICAgICAgIHZhciBtYXggPSBvcHRpb25zLm1heDtcbiAgICAgICAgaWYgKG1heCA+IDApIHtcbiAgICAgICAgICBtYXggKz0gb3B0aW9ucy5wcmVjaXNpb247XG4gICAgICAgIH0gXG4gICAgICAgICAgXG4gICAgICAgIHZhciByYW5kb21OdW1iZXIgPSBvcHRpb25zLnByZWNpc2lvbiAqIE1hdGguZmxvb3IoXG4gICAgICAgICAgbWVyc2VubmUucmFuZChtYXggLyBvcHRpb25zLnByZWNpc2lvbiwgb3B0aW9ucy5taW4gLyBvcHRpb25zLnByZWNpc2lvbikpO1xuXG4gICAgICAgIHJldHVybiByYW5kb21OdW1iZXI7XG5cbiAgICB9LFxuXG4gICAgLy8gdGFrZXMgYW4gYXJyYXkgYW5kIHJldHVybnMgYSByYW5kb20gZWxlbWVudCBvZiB0aGUgYXJyYXlcbiAgICBhcnJheV9lbGVtZW50OiBmdW5jdGlvbiAoYXJyYXkpIHtcbiAgICAgICAgYXJyYXkgPSBhcnJheSB8fCBbXCJhXCIsIFwiYlwiLCBcImNcIl07XG4gICAgICAgIHZhciByID0gZmFrZXIucmFuZG9tLm51bWJlcih7IG1heDogYXJyYXkubGVuZ3RoIC0gMSB9KTtcbiAgICAgICAgcmV0dXJuIGFycmF5W3JdO1xuICAgIH0sXG5cbiAgICAvLyB0YWtlcyBhbiBvYmplY3QgYW5kIHJldHVybnMgdGhlIHJhbmRvbWx5IGtleSBvciB2YWx1ZVxuICAgIG9iamVjdF9lbGVtZW50OiBmdW5jdGlvbiAob2JqZWN0LCBmaWVsZCkge1xuICAgICAgICBvYmplY3QgPSBvYmplY3QgfHwge307XG4gICAgICAgIHZhciBhcnJheSA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgICAgIHZhciBrZXkgPSBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChhcnJheSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkID09PSBcImtleVwiID8ga2V5IDogb2JqZWN0W2tleV07XG4gICAgfSxcblxuICAgIHV1aWQgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBSRkM0MTIyX1RFTVBMQVRFID0gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCc7XG4gICAgICAgIHZhciByZXBsYWNlUGxhY2Vob2xkZXJzID0gZnVuY3Rpb24gKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB2YXIgcmFuZG9tID0gTWF0aC5yYW5kb20oKSoxNnwwO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gcGxhY2Vob2xkZXIgPT0gJ3gnID8gcmFuZG9tIDogKHJhbmRvbSAmMHgzIHwgMHg4KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygxNik7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBSRkM0MTIyX1RFTVBMQVRFLnJlcGxhY2UoL1t4eV0vZywgcmVwbGFjZVBsYWNlaG9sZGVycyk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSByYW5kb207XG4iLCIvLyB0aGlzIHByb2dyYW0gaXMgYSBKYXZhU2NyaXB0IHZlcnNpb24gb2YgTWVyc2VubmUgVHdpc3Rlciwgd2l0aCBjb25jZWFsbWVudCBhbmQgZW5jYXBzdWxhdGlvbiBpbiBjbGFzcyxcbi8vIGFuIGFsbW9zdCBzdHJhaWdodCBjb252ZXJzaW9uIGZyb20gdGhlIG9yaWdpbmFsIHByb2dyYW0sIG10MTk5Mzdhci5jLFxuLy8gdHJhbnNsYXRlZCBieSB5LiBva2FkYSBvbiBKdWx5IDE3LCAyMDA2LlxuLy8gYW5kIG1vZGlmaWVkIGEgbGl0dGxlIGF0IGp1bHkgMjAsIDIwMDYsIGJ1dCB0aGVyZSBhcmUgbm90IGFueSBzdWJzdGFudGlhbCBkaWZmZXJlbmNlcy5cbi8vIGluIHRoaXMgcHJvZ3JhbSwgcHJvY2VkdXJlIGRlc2NyaXB0aW9ucyBhbmQgY29tbWVudHMgb2Ygb3JpZ2luYWwgc291cmNlIGNvZGUgd2VyZSBub3QgcmVtb3ZlZC5cbi8vIGxpbmVzIGNvbW1lbnRlZCB3aXRoIC8vYy8vIHdlcmUgb3JpZ2luYWxseSBkZXNjcmlwdGlvbnMgb2YgYyBwcm9jZWR1cmUuIGFuZCBhIGZldyBmb2xsb3dpbmcgbGluZXMgYXJlIGFwcHJvcHJpYXRlIEphdmFTY3JpcHQgZGVzY3JpcHRpb25zLlxuLy8gbGluZXMgY29tbWVudGVkIHdpdGggLyogYW5kICovIGFyZSBvcmlnaW5hbCBjb21tZW50cy5cbi8vIGxpbmVzIGNvbW1lbnRlZCB3aXRoIC8vIGFyZSBhZGRpdGlvbmFsIGNvbW1lbnRzIGluIHRoaXMgSmF2YVNjcmlwdCB2ZXJzaW9uLlxuLy8gYmVmb3JlIHVzaW5nIHRoaXMgdmVyc2lvbiwgY3JlYXRlIGF0IGxlYXN0IG9uZSBpbnN0YW5jZSBvZiBNZXJzZW5uZVR3aXN0ZXIxOTkzNyBjbGFzcywgYW5kIGluaXRpYWxpemUgdGhlIGVhY2ggc3RhdGUsIGdpdmVuIGJlbG93IGluIGMgY29tbWVudHMsIG9mIGFsbCB0aGUgaW5zdGFuY2VzLlxuLypcbiAgIEEgQy1wcm9ncmFtIGZvciBNVDE5OTM3LCB3aXRoIGluaXRpYWxpemF0aW9uIGltcHJvdmVkIDIwMDIvMS8yNi5cbiAgIENvZGVkIGJ5IFRha3VqaSBOaXNoaW11cmEgYW5kIE1ha290byBNYXRzdW1vdG8uXG5cbiAgIEJlZm9yZSB1c2luZywgaW5pdGlhbGl6ZSB0aGUgc3RhdGUgYnkgdXNpbmcgaW5pdF9nZW5yYW5kKHNlZWQpXG4gICBvciBpbml0X2J5X2FycmF5KGluaXRfa2V5LCBrZXlfbGVuZ3RoKS5cblxuICAgQ29weXJpZ2h0IChDKSAxOTk3IC0gMjAwMiwgTWFrb3RvIE1hdHN1bW90byBhbmQgVGFrdWppIE5pc2hpbXVyYSxcbiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cbiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zXG4gICBhcmUgbWV0OlxuXG4gICAgIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cblxuICAgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlXG4gICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cbiAgICAgMy4gVGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZVxuICAgICAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW5cbiAgICAgICAgcGVybWlzc2lvbi5cblxuICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SU1xuICAgXCJBUyBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVFxuICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SXG4gICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1JcbiAgIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLFxuICAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLFxuICAgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SXG4gICBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GXG4gICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElOR1xuICAgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTXG4gICBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cblxuXG4gICBBbnkgZmVlZGJhY2sgaXMgdmVyeSB3ZWxjb21lLlxuICAgaHR0cDovL3d3dy5tYXRoLnNjaS5oaXJvc2hpbWEtdS5hYy5qcC9+bS1tYXQvTVQvZW10Lmh0bWxcbiAgIGVtYWlsOiBtLW1hdCBAIG1hdGguc2NpLmhpcm9zaGltYS11LmFjLmpwIChyZW1vdmUgc3BhY2UpXG4qL1xuXG5mdW5jdGlvbiBNZXJzZW5uZVR3aXN0ZXIxOTkzNygpXG57XG5cdC8qIGNvbnN0YW50cyBzaG91bGQgYmUgc2NvcGVkIGluc2lkZSB0aGUgY2xhc3MgKi9cblx0dmFyIE4sIE0sIE1BVFJJWF9BLCBVUFBFUl9NQVNLLCBMT1dFUl9NQVNLO1xuXHQvKiBQZXJpb2QgcGFyYW1ldGVycyAqL1xuXHQvL2MvLyNkZWZpbmUgTiA2MjRcblx0Ly9jLy8jZGVmaW5lIE0gMzk3XG5cdC8vYy8vI2RlZmluZSBNQVRSSVhfQSAweDk5MDhiMGRmVUwgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuXHQvL2MvLyNkZWZpbmUgVVBQRVJfTUFTSyAweDgwMDAwMDAwVUwgLyogbW9zdCBzaWduaWZpY2FudCB3LXIgYml0cyAqL1xuXHQvL2MvLyNkZWZpbmUgTE9XRVJfTUFTSyAweDdmZmZmZmZmVUwgLyogbGVhc3Qgc2lnbmlmaWNhbnQgciBiaXRzICovXG5cdE4gPSA2MjQ7XG5cdE0gPSAzOTc7XG5cdE1BVFJJWF9BID0gMHg5OTA4YjBkZjsgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuXHRVUFBFUl9NQVNLID0gMHg4MDAwMDAwMDsgLyogbW9zdCBzaWduaWZpY2FudCB3LXIgYml0cyAqL1xuXHRMT1dFUl9NQVNLID0gMHg3ZmZmZmZmZjsgLyogbGVhc3Qgc2lnbmlmaWNhbnQgciBiaXRzICovXG5cdC8vYy8vc3RhdGljIHVuc2lnbmVkIGxvbmcgbXRbTl07IC8qIHRoZSBhcnJheSBmb3IgdGhlIHN0YXRlIHZlY3RvciAgKi9cblx0Ly9jLy9zdGF0aWMgaW50IG10aT1OKzE7IC8qIG10aT09TisxIG1lYW5zIG10W05dIGlzIG5vdCBpbml0aWFsaXplZCAqL1xuXHR2YXIgbXQgPSBuZXcgQXJyYXkoTik7ICAgLyogdGhlIGFycmF5IGZvciB0aGUgc3RhdGUgdmVjdG9yICAqL1xuXHR2YXIgbXRpID0gTisxOyAgICAgICAgICAgLyogbXRpPT1OKzEgbWVhbnMgbXRbTl0gaXMgbm90IGluaXRpYWxpemVkICovXG5cblx0ZnVuY3Rpb24gdW5zaWduZWQzMiAobjEpIC8vIHJldHVybnMgYSAzMi1iaXRzIHVuc2lnZWQgaW50ZWdlciBmcm9tIGFuIG9wZXJhbmQgdG8gd2hpY2ggYXBwbGllZCBhIGJpdCBvcGVyYXRvci5cblx0e1xuXHRcdHJldHVybiBuMSA8IDAgPyAobjEgXiBVUFBFUl9NQVNLKSArIFVQUEVSX01BU0sgOiBuMTtcblx0fVxuXG5cdGZ1bmN0aW9uIHN1YnRyYWN0aW9uMzIgKG4xLCBuMikgLy8gZW11bGF0ZXMgbG93ZXJmbG93IG9mIGEgYyAzMi1iaXRzIHVuc2lnZWQgaW50ZWdlciB2YXJpYWJsZSwgaW5zdGVhZCBvZiB0aGUgb3BlcmF0b3IgLS4gdGhlc2UgYm90aCBhcmd1bWVudHMgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlcnMgZXhwcmVzc2libGUgdXNpbmcgdW5zaWduZWQgMzIgYml0cy5cblx0e1xuXHRcdHJldHVybiBuMSA8IG4yID8gdW5zaWduZWQzMigoMHgxMDAwMDAwMDAgLSAobjIgLSBuMSkpICYgMHhmZmZmZmZmZikgOiBuMSAtIG4yO1xuXHR9XG5cblx0ZnVuY3Rpb24gYWRkaXRpb24zMiAobjEsIG4yKSAvLyBlbXVsYXRlcyBvdmVyZmxvdyBvZiBhIGMgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgdmFyaWFibGUsIGluc3RlYWQgb2YgdGhlIG9wZXJhdG9yICsuIHRoZXNlIGJvdGggYXJndW1lbnRzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzIGV4cHJlc3NpYmxlIHVzaW5nIHVuc2lnbmVkIDMyIGJpdHMuXG5cdHtcblx0XHRyZXR1cm4gdW5zaWduZWQzMigobjEgKyBuMikgJiAweGZmZmZmZmZmKVxuXHR9XG5cblx0ZnVuY3Rpb24gbXVsdGlwbGljYXRpb24zMiAobjEsIG4yKSAvLyBlbXVsYXRlcyBvdmVyZmxvdyBvZiBhIGMgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgdmFyaWFibGUsIGluc3RlYWQgb2YgdGhlIG9wZXJhdG9yICouIHRoZXNlIGJvdGggYXJndW1lbnRzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzIGV4cHJlc3NpYmxlIHVzaW5nIHVuc2lnbmVkIDMyIGJpdHMuXG5cdHtcblx0XHR2YXIgc3VtID0gMDtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDMyOyArK2kpe1xuXHRcdFx0aWYgKChuMSA+Pj4gaSkgJiAweDEpe1xuXHRcdFx0XHRzdW0gPSBhZGRpdGlvbjMyKHN1bSwgdW5zaWduZWQzMihuMiA8PCBpKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzdW07XG5cdH1cblxuXHQvKiBpbml0aWFsaXplcyBtdFtOXSB3aXRoIGEgc2VlZCAqL1xuXHQvL2MvL3ZvaWQgaW5pdF9nZW5yYW5kKHVuc2lnbmVkIGxvbmcgcylcblx0dGhpcy5pbml0X2dlbnJhbmQgPSBmdW5jdGlvbiAocylcblx0e1xuXHRcdC8vYy8vbXRbMF09IHMgJiAweGZmZmZmZmZmO1xuXHRcdG10WzBdPSB1bnNpZ25lZDMyKHMgJiAweGZmZmZmZmZmKTtcblx0XHRmb3IgKG10aT0xOyBtdGk8TjsgbXRpKyspIHtcblx0XHRcdG10W210aV0gPSBcblx0XHRcdC8vYy8vKDE4MTI0MzMyNTMgKiAobXRbbXRpLTFdIF4gKG10W210aS0xXSA+PiAzMCkpICsgbXRpKTtcblx0XHRcdGFkZGl0aW9uMzIobXVsdGlwbGljYXRpb24zMigxODEyNDMzMjUzLCB1bnNpZ25lZDMyKG10W210aS0xXSBeIChtdFttdGktMV0gPj4+IDMwKSkpLCBtdGkpO1xuXHRcdFx0LyogU2VlIEtudXRoIFRBT0NQIFZvbDIuIDNyZCBFZC4gUC4xMDYgZm9yIG11bHRpcGxpZXIuICovXG5cdFx0XHQvKiBJbiB0aGUgcHJldmlvdXMgdmVyc2lvbnMsIE1TQnMgb2YgdGhlIHNlZWQgYWZmZWN0ICAgKi9cblx0XHRcdC8qIG9ubHkgTVNCcyBvZiB0aGUgYXJyYXkgbXRbXS4gICAgICAgICAgICAgICAgICAgICAgICAqL1xuXHRcdFx0LyogMjAwMi8wMS8wOSBtb2RpZmllZCBieSBNYWtvdG8gTWF0c3Vtb3RvICAgICAgICAgICAgICovXG5cdFx0XHQvL2MvL210W210aV0gJj0gMHhmZmZmZmZmZjtcblx0XHRcdG10W210aV0gPSB1bnNpZ25lZDMyKG10W210aV0gJiAweGZmZmZmZmZmKTtcblx0XHRcdC8qIGZvciA+MzIgYml0IG1hY2hpbmVzICovXG5cdFx0fVxuXHR9XG5cblx0LyogaW5pdGlhbGl6ZSBieSBhbiBhcnJheSB3aXRoIGFycmF5LWxlbmd0aCAqL1xuXHQvKiBpbml0X2tleSBpcyB0aGUgYXJyYXkgZm9yIGluaXRpYWxpemluZyBrZXlzICovXG5cdC8qIGtleV9sZW5ndGggaXMgaXRzIGxlbmd0aCAqL1xuXHQvKiBzbGlnaHQgY2hhbmdlIGZvciBDKyssIDIwMDQvMi8yNiAqL1xuXHQvL2MvL3ZvaWQgaW5pdF9ieV9hcnJheSh1bnNpZ25lZCBsb25nIGluaXRfa2V5W10sIGludCBrZXlfbGVuZ3RoKVxuXHR0aGlzLmluaXRfYnlfYXJyYXkgPSBmdW5jdGlvbiAoaW5pdF9rZXksIGtleV9sZW5ndGgpXG5cdHtcblx0XHQvL2MvL2ludCBpLCBqLCBrO1xuXHRcdHZhciBpLCBqLCBrO1xuXHRcdC8vYy8vaW5pdF9nZW5yYW5kKDE5NjUwMjE4KTtcblx0XHR0aGlzLmluaXRfZ2VucmFuZCgxOTY1MDIxOCk7XG5cdFx0aT0xOyBqPTA7XG5cdFx0ayA9IChOPmtleV9sZW5ndGggPyBOIDoga2V5X2xlbmd0aCk7XG5cdFx0Zm9yICg7IGs7IGstLSkge1xuXHRcdFx0Ly9jLy9tdFtpXSA9IChtdFtpXSBeICgobXRbaS0xXSBeIChtdFtpLTFdID4+IDMwKSkgKiAxNjY0NTI1KSlcblx0XHRcdC8vYy8vXHQrIGluaXRfa2V5W2pdICsgajsgLyogbm9uIGxpbmVhciAqL1xuXHRcdFx0bXRbaV0gPSBhZGRpdGlvbjMyKGFkZGl0aW9uMzIodW5zaWduZWQzMihtdFtpXSBeIG11bHRpcGxpY2F0aW9uMzIodW5zaWduZWQzMihtdFtpLTFdIF4gKG10W2ktMV0gPj4+IDMwKSksIDE2NjQ1MjUpKSwgaW5pdF9rZXlbal0pLCBqKTtcblx0XHRcdG10W2ldID0gXG5cdFx0XHQvL2MvL210W2ldICY9IDB4ZmZmZmZmZmY7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG5cdFx0XHR1bnNpZ25lZDMyKG10W2ldICYgMHhmZmZmZmZmZik7XG5cdFx0XHRpKys7IGorKztcblx0XHRcdGlmIChpPj1OKSB7IG10WzBdID0gbXRbTi0xXTsgaT0xOyB9XG5cdFx0XHRpZiAoaj49a2V5X2xlbmd0aCkgaj0wO1xuXHRcdH1cblx0XHRmb3IgKGs9Ti0xOyBrOyBrLS0pIHtcblx0XHRcdC8vYy8vbXRbaV0gPSAobXRbaV0gXiAoKG10W2ktMV0gXiAobXRbaS0xXSA+PiAzMCkpICogMTU2NjA4Mzk0MSkpXG5cdFx0XHQvL2MvLy0gaTsgLyogbm9uIGxpbmVhciAqL1xuXHRcdFx0bXRbaV0gPSBzdWJ0cmFjdGlvbjMyKHVuc2lnbmVkMzIoKGRiZz1tdFtpXSkgXiBtdWx0aXBsaWNhdGlvbjMyKHVuc2lnbmVkMzIobXRbaS0xXSBeIChtdFtpLTFdID4+PiAzMCkpLCAxNTY2MDgzOTQxKSksIGkpO1xuXHRcdFx0Ly9jLy9tdFtpXSAmPSAweGZmZmZmZmZmOyAvKiBmb3IgV09SRFNJWkUgPiAzMiBtYWNoaW5lcyAqL1xuXHRcdFx0bXRbaV0gPSB1bnNpZ25lZDMyKG10W2ldICYgMHhmZmZmZmZmZik7XG5cdFx0XHRpKys7XG5cdFx0XHRpZiAoaT49TikgeyBtdFswXSA9IG10W04tMV07IGk9MTsgfVxuXHRcdH1cblx0XHRtdFswXSA9IDB4ODAwMDAwMDA7IC8qIE1TQiBpcyAxOyBhc3N1cmluZyBub24temVybyBpbml0aWFsIGFycmF5ICovXG5cdH1cblxuICAgIC8qIG1vdmVkIG91dHNpZGUgb2YgZ2VucmFuZF9pbnQzMigpIGJ5IGp3YXR0ZSAyMDEwLTExLTE3OyBnZW5lcmF0ZSBsZXNzIGdhcmJhZ2UgKi9cbiAgICB2YXIgbWFnMDEgPSBbMHgwLCBNQVRSSVhfQV07XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweGZmZmZmZmZmXS1pbnRlcnZhbCAqL1xuXHQvL2MvL3Vuc2lnbmVkIGxvbmcgZ2VucmFuZF9pbnQzMih2b2lkKVxuXHR0aGlzLmdlbnJhbmRfaW50MzIgPSBmdW5jdGlvbiAoKVxuXHR7XG5cdFx0Ly9jLy91bnNpZ25lZCBsb25nIHk7XG5cdFx0Ly9jLy9zdGF0aWMgdW5zaWduZWQgbG9uZyBtYWcwMVsyXT17MHgwVUwsIE1BVFJJWF9BfTtcblx0XHR2YXIgeTtcblx0XHQvKiBtYWcwMVt4XSA9IHggKiBNQVRSSVhfQSAgZm9yIHg9MCwxICovXG5cblx0XHRpZiAobXRpID49IE4pIHsgLyogZ2VuZXJhdGUgTiB3b3JkcyBhdCBvbmUgdGltZSAqL1xuXHRcdFx0Ly9jLy9pbnQga2s7XG5cdFx0XHR2YXIga2s7XG5cblx0XHRcdGlmIChtdGkgPT0gTisxKSAgIC8qIGlmIGluaXRfZ2VucmFuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQsICovXG5cdFx0XHRcdC8vYy8vaW5pdF9nZW5yYW5kKDU0ODkpOyAvKiBhIGRlZmF1bHQgaW5pdGlhbCBzZWVkIGlzIHVzZWQgKi9cblx0XHRcdFx0dGhpcy5pbml0X2dlbnJhbmQoNTQ4OSk7IC8qIGEgZGVmYXVsdCBpbml0aWFsIHNlZWQgaXMgdXNlZCAqL1xuXG5cdFx0XHRmb3IgKGtrPTA7a2s8Ti1NO2trKyspIHtcblx0XHRcdFx0Ly9jLy95ID0gKG10W2trXSZVUFBFUl9NQVNLKXwobXRba2srMV0mTE9XRVJfTUFTSyk7XG5cdFx0XHRcdC8vYy8vbXRba2tdID0gbXRba2srTV0gXiAoeSA+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXHRcdFx0XHR5ID0gdW5zaWduZWQzMigobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKSk7XG5cdFx0XHRcdG10W2trXSA9IHVuc2lnbmVkMzIobXRba2srTV0gXiAoeSA+Pj4gMSkgXiBtYWcwMVt5ICYgMHgxXSk7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKDtrazxOLTE7a2srKykge1xuXHRcdFx0XHQvL2MvL3kgPSAobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKTtcblx0XHRcdFx0Ly9jLy9tdFtra10gPSBtdFtraysoTS1OKV0gXiAoeSA+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXHRcdFx0XHR5ID0gdW5zaWduZWQzMigobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKSk7XG5cdFx0XHRcdG10W2trXSA9IHVuc2lnbmVkMzIobXRba2srKE0tTildIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV0pO1xuXHRcdFx0fVxuXHRcdFx0Ly9jLy95ID0gKG10W04tMV0mVVBQRVJfTUFTSyl8KG10WzBdJkxPV0VSX01BU0spO1xuXHRcdFx0Ly9jLy9tdFtOLTFdID0gbXRbTS0xXSBeICh5ID4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG5cdFx0XHR5ID0gdW5zaWduZWQzMigobXRbTi0xXSZVUFBFUl9NQVNLKXwobXRbMF0mTE9XRVJfTUFTSykpO1xuXHRcdFx0bXRbTi0xXSA9IHVuc2lnbmVkMzIobXRbTS0xXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdKTtcblx0XHRcdG10aSA9IDA7XG5cdFx0fVxuXG5cdFx0eSA9IG10W210aSsrXTtcblxuXHRcdC8qIFRlbXBlcmluZyAqL1xuXHRcdC8vYy8veSBePSAoeSA+PiAxMSk7XG5cdFx0Ly9jLy95IF49ICh5IDw8IDcpICYgMHg5ZDJjNTY4MDtcblx0XHQvL2MvL3kgXj0gKHkgPDwgMTUpICYgMHhlZmM2MDAwMDtcblx0XHQvL2MvL3kgXj0gKHkgPj4gMTgpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoeSA+Pj4gMTEpKTtcblx0XHR5ID0gdW5zaWduZWQzMih5IF4gKCh5IDw8IDcpICYgMHg5ZDJjNTY4MCkpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoKHkgPDwgMTUpICYgMHhlZmM2MDAwMCkpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoeSA+Pj4gMTgpKTtcblxuXHRcdHJldHVybiB5O1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweDdmZmZmZmZmXS1pbnRlcnZhbCAqL1xuXHQvL2MvL2xvbmcgZ2VucmFuZF9pbnQzMSh2b2lkKVxuXHR0aGlzLmdlbnJhbmRfaW50MzEgPSBmdW5jdGlvbiAoKVxuXHR7XG5cdFx0Ly9jLy9yZXR1cm4gKGdlbnJhbmRfaW50MzIoKT4+MSk7XG5cdFx0cmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKT4+PjEpO1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwxXS1yZWFsLWludGVydmFsICovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVhbDEodm9pZClcblx0dGhpcy5nZW5yYW5kX3JlYWwxID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vcmV0dXJuIGdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTUuMCk7XG5cdFx0cmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpKigxLjAvNDI5NDk2NzI5NS4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzItMSAqL1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwxKS1yZWFsLWludGVydmFsICovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVhbDIodm9pZClcblx0dGhpcy5nZW5yYW5kX3JlYWwyID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vcmV0dXJuIGdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTYuMCk7XG5cdFx0cmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzIgKi9cblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gKDAsMSktcmVhbC1pbnRlcnZhbCAqL1xuXHQvL2MvL2RvdWJsZSBnZW5yYW5kX3JlYWwzKHZvaWQpXG5cdHRoaXMuZ2VucmFuZF9yZWFsMyA9IGZ1bmN0aW9uICgpXG5cdHtcblx0XHQvL2MvL3JldHVybiAoKGdlbnJhbmRfaW50MzIoKSkgKyAwLjUpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHRyZXR1cm4gKCh0aGlzLmdlbnJhbmRfaW50MzIoKSkgKyAwLjUpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzIgKi9cblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSkgd2l0aCA1My1iaXQgcmVzb2x1dGlvbiovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVzNTModm9pZClcblx0dGhpcy5nZW5yYW5kX3JlczUzID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vdW5zaWduZWQgbG9uZyBhPWdlbnJhbmRfaW50MzIoKT4+NSwgYj1nZW5yYW5kX2ludDMyKCk+PjY7XG5cdFx0dmFyIGE9dGhpcy5nZW5yYW5kX2ludDMyKCk+Pj41LCBiPXRoaXMuZ2VucmFuZF9pbnQzMigpPj4+Njtcblx0XHRyZXR1cm4oYSo2NzEwODg2NC4wK2IpKigxLjAvOTAwNzE5OTI1NDc0MDk5Mi4wKTtcblx0fVxuXHQvKiBUaGVzZSByZWFsIHZlcnNpb25zIGFyZSBkdWUgdG8gSXNha3UgV2FkYSwgMjAwMi8wMS8wOSBhZGRlZCAqL1xufVxuXG4vLyAgRXhwb3J0czogUHVibGljIEFQSVxuXG4vLyAgRXhwb3J0IHRoZSB0d2lzdGVyIGNsYXNzXG5leHBvcnRzLk1lcnNlbm5lVHdpc3RlcjE5OTM3ID0gTWVyc2VubmVUd2lzdGVyMTk5Mzc7XG5cbi8vICBFeHBvcnQgYSBzaW1wbGlmaWVkIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIHJhbmRvbSBudW1iZXJzXG52YXIgZ2VuID0gbmV3IE1lcnNlbm5lVHdpc3RlcjE5OTM3O1xuZ2VuLmluaXRfZ2VucmFuZCgobmV3IERhdGUpLmdldFRpbWUoKSAlIDEwMDAwMDAwMDApO1xuXG4vLyBBZGRlZCBtYXgsIG1pbiByYW5nZSBmdW5jdGlvbmFsaXR5LCBNYXJhayBTcXVpcmVzIFNlcHQgMTEgMjAxNFxuZXhwb3J0cy5yYW5kID0gZnVuY3Rpb24obWF4LCBtaW4pIHtcbiAgICBpZiAoIW1heClcbiAgICAgICAge1xuICAgICAgICBtaW4gPSAwO1xuICAgICAgICBtYXggPSAzMjc2ODtcbiAgICAgICAgfVxuICAgIHJldHVybiBNYXRoLmZsb29yKGdlbi5nZW5yYW5kX3JlYWwyKCkgKiAobWF4IC0gbWluKSArIG1pbik7XG59XG5leHBvcnRzLnNlZWQgPSBmdW5jdGlvbihTKSB7XG4gICAgaWYgKHR5cGVvZihTKSAhPSAnbnVtYmVyJylcbiAgICAgICAge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZWVkKFMpIG11c3QgdGFrZSBudW1lcmljIGFyZ3VtZW50OyBpcyBcIiArIHR5cGVvZihTKSk7XG4gICAgICAgIH1cbiAgICBnZW4uaW5pdF9nZW5yYW5kKFMpO1xufVxuZXhwb3J0cy5zZWVkX2FycmF5ID0gZnVuY3Rpb24oQSkge1xuICAgIGlmICh0eXBlb2YoQSkgIT0gJ29iamVjdCcpXG4gICAgICAgIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2VlZF9hcnJheShBKSBtdXN0IHRha2UgYXJyYXkgb2YgbnVtYmVyczsgaXMgXCIgKyB0eXBlb2YoQSkpO1xuICAgICAgICB9XG4gICAgZ2VuLmluaXRfYnlfYXJyYXkoQSk7XG59XG5cbiIsIi8qXG4gKiBwYXNzd29yZC1nZW5lcmF0b3JcbiAqIENvcHlyaWdodChjKSAyMDExLTIwMTMgQmVybWkgRmVycmVyIDxiZXJtaUBiZXJtaWxhYnMuY29tPlxuICogTUlUIExpY2Vuc2VkXG4gKi9cbihmdW5jdGlvbiAocm9vdCkge1xuXG4gIHZhciBsb2NhbE5hbWUsIGNvbnNvbmFudCwgbGV0dGVyLCBwYXNzd29yZCwgdm93ZWw7XG4gIGxldHRlciA9IC9bYS16QS1aXSQvO1xuICB2b3dlbCA9IC9bYWVpb3VBRUlPVV0kLztcbiAgY29uc29uYW50ID0gL1tiY2RmZ2hqa2xtbnBxcnN0dnd4eXpCQ0RGR0hKS0xNTlBRUlNUVldYWVpdJC87XG5cblxuICAvLyBEZWZpbmVzIHRoZSBuYW1lIG9mIHRoZSBsb2NhbCB2YXJpYWJsZSB0aGUgcGFzc3dvcmRHZW5lcmF0b3IgbGlicmFyeSB3aWxsIHVzZVxuICAvLyB0aGlzIGlzIHNwZWNpYWxseSB1c2VmdWwgaWYgd2luZG93LnBhc3N3b3JkR2VuZXJhdG9yIGlzIGFscmVhZHkgYmVpbmcgdXNlZFxuICAvLyBieSB5b3VyIGFwcGxpY2F0aW9uIGFuZCB5b3Ugd2FudCBhIGRpZmZlcmVudCBuYW1lLiBGb3IgZXhhbXBsZTpcbiAgLy8gICAgLy8gRGVjbGFyZSBiZWZvcmUgaW5jbHVkaW5nIHRoZSBwYXNzd29yZEdlbmVyYXRvciBsaWJyYXJ5XG4gIC8vICAgIHZhciBsb2NhbFBhc3N3b3JkR2VuZXJhdG9yTGlicmFyeU5hbWUgPSAncGFzcyc7XG4gIGxvY2FsTmFtZSA9IHJvb3QubG9jYWxQYXNzd29yZEdlbmVyYXRvckxpYnJhcnlOYW1lIHx8IFwiZ2VuZXJhdGVQYXNzd29yZFwiLFxuXG4gIHBhc3N3b3JkID0gZnVuY3Rpb24gKGxlbmd0aCwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpIHtcbiAgICB2YXIgY2hhciwgbjtcbiAgICBpZiAobGVuZ3RoID09IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IDEwO1xuICAgIH1cbiAgICBpZiAobWVtb3JhYmxlID09IG51bGwpIHtcbiAgICAgIG1lbW9yYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChwYXR0ZXJuID09IG51bGwpIHtcbiAgICAgIHBhdHRlcm4gPSAvXFx3LztcbiAgICB9XG4gICAgaWYgKHByZWZpeCA9PSBudWxsKSB7XG4gICAgICBwcmVmaXggPSAnJztcbiAgICB9XG4gICAgaWYgKHByZWZpeC5sZW5ndGggPj0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcHJlZml4O1xuICAgIH1cbiAgICBpZiAobWVtb3JhYmxlKSB7XG4gICAgICBpZiAocHJlZml4Lm1hdGNoKGNvbnNvbmFudCkpIHtcbiAgICAgICAgcGF0dGVybiA9IHZvd2VsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF0dGVybiA9IGNvbnNvbmFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk0KSArIDMzO1xuICAgIGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKG4pO1xuICAgIGlmIChtZW1vcmFibGUpIHtcbiAgICAgIGNoYXIgPSBjaGFyLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIGlmICghY2hhci5tYXRjaChwYXR0ZXJuKSkge1xuICAgICAgcmV0dXJuIHBhc3N3b3JkKGxlbmd0aCwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGFzc3dvcmQobGVuZ3RoLCBtZW1vcmFibGUsIHBhdHRlcm4sIFwiXCIgKyBwcmVmaXggKyBjaGFyKTtcbiAgfTtcblxuXG4gICgodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSA/IGV4cG9ydHMgOiByb290KVtsb2NhbE5hbWVdID0gcGFzc3dvcmQ7XG4gIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAgIG1vZHVsZS5leHBvcnRzID0gcGFzc3dvcmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRXN0YWJsaXNoIHRoZSByb290IG9iamVjdCwgYHdpbmRvd2AgaW4gdGhlIGJyb3dzZXIsIG9yIGBnbG9iYWxgIG9uIHRoZSBzZXJ2ZXIuXG59KHRoaXMpKTsiLCIvKlxuXG5Db3B5cmlnaHQgKGMpIDIwMTItMjAxNCBKZWZmcmV5IE1lYWxvXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZFxuZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb25cbnRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmRcbnRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlXG5Tb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRVxuV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG5DT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG5PVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5CYXNlZCBsb29zZWx5IG9uIEx1a2EgUHVzaWMncyBQSFAgU2NyaXB0OiBodHRwOi8vMzYwcGVyY2VudHMuY29tL3Bvc3RzL3BocC1yYW5kb20tdXNlci1hZ2VudC1nZW5lcmF0b3IvXG5cblRoZSBsaWNlbnNlIGZvciB0aGF0IHNjcmlwdCBpcyBhcyBmb2xsb3dzOlxuXG5cIlRIRSBCRUVSLVdBUkUgTElDRU5TRVwiIChSZXZpc2lvbiA0Mik6XG5cbjxwdXNpYzkzQGdtYWlsLmNvbT4gd3JvdGUgdGhpcyBmaWxlLiBBcyBsb25nIGFzIHlvdSByZXRhaW4gdGhpcyBub3RpY2UgeW91IGNhbiBkbyB3aGF0ZXZlciB5b3Ugd2FudCB3aXRoIHRoaXMgc3R1ZmYuXG5JZiB3ZSBtZWV0IHNvbWUgZGF5LCBhbmQgeW91IHRoaW5rIHRoaXMgc3R1ZmYgaXMgd29ydGggaXQsIHlvdSBjYW4gYnV5IG1lIGEgYmVlciBpbiByZXR1cm4uIEx1a2EgUHVzaWNcbiovXG5cbmZ1bmN0aW9uIHJuZChhLCBiKSB7XG4gICAgLy9jYWxsaW5nIHJuZCgpIHdpdGggbm8gYXJndW1lbnRzIGlzIGlkZW50aWNhbCB0byBybmQoMCwgMTAwKVxuICAgIGEgPSBhIHx8IDA7XG4gICAgYiA9IGIgfHwgMTAwO1xuXG4gICAgaWYgKHR5cGVvZiBiID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgYSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgLy9ybmQoaW50IG1pbiwgaW50IG1heCkgcmV0dXJucyBpbnRlZ2VyIGJldHdlZW4gbWluLCBtYXhcbiAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAobWluLCBtYXgpIHtcbiAgICAgICAgICAgIGlmIChtaW4gPiBtYXgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZXhwZWN0ZWQgbWluIDw9IG1heDsgZ290IG1pbiA9ICcgKyBtaW4gKyAnLCBtYXggPSAnICsgbWF4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpICsgbWluO1xuICAgICAgICB9KGEsIGIpKTtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpID09PSBcIltvYmplY3QgQXJyYXldXCIpIHtcbiAgICAgICAgLy9yZXR1cm5zIGEgcmFuZG9tIGVsZW1lbnQgZnJvbSBhcnJheSAoYSksIGV2ZW4gd2VpZ2h0aW5nXG4gICAgICAgIHJldHVybiBhW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGEubGVuZ3RoKV07XG4gICAgfVxuXG4gICAgaWYgKGEgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vcmV0dXJucyBhIHJhbmRvbSBrZXkgZnJvbSB0aGUgcGFzc2VkIG9iamVjdDsga2V5cyBhcmUgd2VpZ2h0ZWQgYnkgdGhlIGRlY2ltYWwgcHJvYmFiaWxpdHkgaW4gdGhlaXIgdmFsdWVcbiAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICB2YXIgcmFuZCA9IHJuZCgwLCAxMDApIC8gMTAwLCBtaW4gPSAwLCBtYXggPSAwLCBrZXksIHJldHVybl92YWw7XG5cbiAgICAgICAgICAgIGZvciAoa2V5IGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBtYXggPSBvYmpba2V5XSArIG1pbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbCA9IGtleTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmQgPj0gbWluICYmIHJhbmQgPD0gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtaW4gPSBtaW4gKyBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXR1cm5fdmFsO1xuICAgICAgICB9KGEpKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8gcm5kLiAoJyArIChiID8gYSArICcsICcgKyBiIDogYSkgKyAnKScpO1xufVxuXG5mdW5jdGlvbiByYW5kb21MYW5nKCkge1xuICAgIHJldHVybiBybmQoWydBQicsICdBRicsICdBTicsICdBUicsICdBUycsICdBWicsICdCRScsICdCRycsICdCTicsICdCTycsICdCUicsICdCUycsICdDQScsICdDRScsICdDTycsICdDUycsXG4gICAgICAgICAgICAgICAgJ0NVJywgJ0NZJywgJ0RBJywgJ0RFJywgJ0VMJywgJ0VOJywgJ0VPJywgJ0VTJywgJ0VUJywgJ0VVJywgJ0ZBJywgJ0ZJJywgJ0ZKJywgJ0ZPJywgJ0ZSJywgJ0ZZJyxcbiAgICAgICAgICAgICAgICAnR0EnLCAnR0QnLCAnR0wnLCAnR1YnLCAnSEUnLCAnSEknLCAnSFInLCAnSFQnLCAnSFUnLCAnSFknLCAnSUQnLCAnSVMnLCAnSVQnLCAnSkEnLCAnSlYnLCAnS0EnLFxuICAgICAgICAgICAgICAgICdLRycsICdLTycsICdLVScsICdLVycsICdLWScsICdMQScsICdMQicsICdMSScsICdMTicsICdMVCcsICdMVicsICdNRycsICdNSycsICdNTicsICdNTycsICdNUycsXG4gICAgICAgICAgICAgICAgJ01UJywgJ01ZJywgJ05CJywgJ05FJywgJ05MJywgJ05OJywgJ05PJywgJ09DJywgJ1BMJywgJ1BUJywgJ1JNJywgJ1JPJywgJ1JVJywgJ1NDJywgJ1NFJywgJ1NLJyxcbiAgICAgICAgICAgICAgICAnU0wnLCAnU08nLCAnU1EnLCAnU1InLCAnU1YnLCAnU1cnLCAnVEsnLCAnVFInLCAnVFknLCAnVUsnLCAnVVInLCAnVVonLCAnVkknLCAnVk8nLCAnWUknLCAnWkgnXSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbUJyb3dzZXJBbmRPUygpIHtcbiAgICB2YXIgYnJvd3NlciA9IHJuZCh7XG4gICAgICAgIGNocm9tZTogICAgLjQ1MTMyODEwNTY2LFxuICAgICAgICBpZXhwbG9yZXI6IC4yNzQ3NzA2MTgzNixcbiAgICAgICAgZmlyZWZveDogICAuMTkzODQxNzA2MDgsXG4gICAgICAgIHNhZmFyaTogICAgLjA2MTg2NzgxMTE4LFxuICAgICAgICBvcGVyYTogICAgIC4wMTU3NDIzNjk1NVxuICAgIH0pLFxuICAgIG9zID0ge1xuICAgICAgICBjaHJvbWU6ICB7d2luOiAuODksICBtYWM6IC4wOSAsIGxpbjogLjAyfSxcbiAgICAgICAgZmlyZWZveDoge3dpbjogLjgzLCAgbWFjOiAuMTYsICBsaW46IC4wMX0sXG4gICAgICAgIG9wZXJhOiAgIHt3aW46IC45MSwgIG1hYzogLjAzICwgbGluOiAuMDZ9LFxuICAgICAgICBzYWZhcmk6ICB7d2luOiAuMDQgLCBtYWM6IC45NiAgfSxcbiAgICAgICAgaWV4cGxvcmVyOiBbJ3dpbiddXG4gICAgfTtcblxuICAgIHJldHVybiBbYnJvd3Nlciwgcm5kKG9zW2Jyb3dzZXJdKV07XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVByb2MoYXJjaCkge1xuICAgIHZhciBwcm9jcyA9IHtcbiAgICAgICAgbGluOlsnaTY4NicsICd4ODZfNjQnXSxcbiAgICAgICAgbWFjOiB7J0ludGVsJyA6IC40OCwgJ1BQQyc6IC4wMSwgJ1U7IEludGVsJzouNDgsICdVOyBQUEMnIDouMDF9LFxuICAgICAgICB3aW46WycnLCAnV09XNjQnLCAnV2luNjQ7IHg2NCddXG4gICAgfTtcbiAgICByZXR1cm4gcm5kKHByb2NzW2FyY2hdKTtcbn1cblxuZnVuY3Rpb24gcmFuZG9tUmV2aXNpb24oZG90cykge1xuICAgIHZhciByZXR1cm5fdmFsID0gJyc7XG4gICAgLy9nZW5lcmF0ZSBhIHJhbmRvbSByZXZpc2lvblxuICAgIC8vZG90cyA9IDIgcmV0dXJucyAueC55IHdoZXJlIHggJiB5IGFyZSBiZXR3ZWVuIDAgYW5kIDlcbiAgICBmb3IgKHZhciB4ID0gMDsgeCA8IGRvdHM7IHgrKykge1xuICAgICAgICByZXR1cm5fdmFsICs9ICcuJyArIHJuZCgwLCA5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybl92YWw7XG59XG5cbnZhciB2ZXJzaW9uX3N0cmluZyA9IHtcbiAgICBuZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtybmQoMSwgNCksIHJuZCgwLCA5KSwgcm5kKDEwMDAwLCA5OTk5OSksIHJuZCgwLCA5KV0uam9pbignLicpO1xuICAgIH0sXG4gICAgbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJuZCg1LCA2KSArICcuJyArIHJuZCgwLCAzKTtcbiAgICB9LFxuICAgIGllOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBybmQoNywgMTEpO1xuICAgIH0sXG4gICAgdHJpZGVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDMsIDcpICsgJy4nICsgcm5kKDAsIDEpO1xuICAgIH0sXG4gICAgb3N4OiBmdW5jdGlvbiAoZGVsaW0pIHtcbiAgICAgICAgcmV0dXJuIFsxMCwgcm5kKDUsIDEwKSwgcm5kKDAsIDkpXS5qb2luKGRlbGltIHx8ICcuJyk7XG4gICAgfSxcbiAgICBjaHJvbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtybmQoMTMsIDM5KSwgMCwgcm5kKDgwMCwgODk5KSwgMF0uam9pbignLicpO1xuICAgIH0sXG4gICAgcHJlc3RvOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnMi45LicgKyBybmQoMTYwLCAxOTApO1xuICAgIH0sXG4gICAgcHJlc3RvMjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDEwLCAxMikgKyAnLjAwJztcbiAgICB9LFxuICAgIHNhZmFyaTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDUzMSwgNTM4KSArICcuJyArIHJuZCgwLCAyKSArICcuJyArIHJuZCgwLDIpO1xuICAgIH1cbn07XG5cbnZhciBicm93c2VyID0ge1xuICAgIGZpcmVmb3g6IGZ1bmN0aW9uIGZpcmVmb3goYXJjaCkge1xuICAgICAgICAvL2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvR2Vja29fdXNlcl9hZ2VudF9zdHJpbmdfcmVmZXJlbmNlXG4gICAgICAgIHZhciBmaXJlZm94X3ZlciA9IHJuZCg1LCAxNSkgKyByYW5kb21SZXZpc2lvbigyKSxcbiAgICAgICAgICAgIGdlY2tvX3ZlciA9ICdHZWNrby8yMDEwMDEwMSBGaXJlZm94LycgKyBmaXJlZm94X3ZlcixcbiAgICAgICAgICAgIHByb2MgPSByYW5kb21Qcm9jKGFyY2gpLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICd3aW4nKSA/ICcoV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICgocHJvYykgPyAnOyAnICsgcHJvYyA6ICcnKVxuICAgICAgICAgICAgOiAoYXJjaCA9PT0gJ21hYycpID8gJyhNYWNpbnRvc2g7ICcgKyBwcm9jICsgJyBNYWMgT1MgWCAnICsgdmVyc2lvbl9zdHJpbmcub3N4KClcbiAgICAgICAgICAgIDogJyhYMTE7IExpbnV4ICcgKyBwcm9jO1xuXG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgJyArIG9zX3ZlciArICc7IHJ2OicgKyBmaXJlZm94X3Zlci5zbGljZSgwLCAtMikgKyAnKSAnICsgZ2Vja29fdmVyO1xuICAgIH0sXG5cbiAgICBpZXhwbG9yZXI6IGZ1bmN0aW9uIGlleHBsb3JlcigpIHtcbiAgICAgICAgdmFyIHZlciA9IHZlcnNpb25fc3RyaW5nLmllKCk7XG5cbiAgICAgICAgaWYgKHZlciA+PSAxMSkge1xuICAgICAgICAgICAgLy9odHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvaGg4NjkzMDEodj12cy44NSkuYXNweFxuICAgICAgICAgICAgcmV0dXJuICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LicgKyBybmQoMSwzKSArICc7IFRyaWRlbnQvNy4wOyAnICsgcm5kKFsnVG91Y2g7ICcsICcnXSkgKyAncnY6MTEuMCkgbGlrZSBHZWNrbyc7XG4gICAgICAgIH1cblxuICAgICAgICAvL2h0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9tczUzNzUwMyh2PXZzLjg1KS5hc3B4XG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgKGNvbXBhdGlibGU7IE1TSUUgJyArIHZlciArICcuMDsgV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICc7IFRyaWRlbnQvJyArXG4gICAgICAgICAgICB2ZXJzaW9uX3N0cmluZy50cmlkZW50KCkgKyAoKHJuZCgwLCAxKSA9PT0gMSkgPyAnOyAuTkVUIENMUiAnICsgdmVyc2lvbl9zdHJpbmcubmV0KCkgOiAnJykgKyAnKSc7XG4gICAgfSxcblxuICAgIG9wZXJhOiBmdW5jdGlvbiBvcGVyYShhcmNoKSB7XG4gICAgICAgIC8vaHR0cDovL3d3dy5vcGVyYS5jb20vZG9jcy9oaXN0b3J5L1xuICAgICAgICB2YXIgcHJlc3RvX3ZlciA9ICcgUHJlc3RvLycgKyB2ZXJzaW9uX3N0cmluZy5wcmVzdG8oKSArICcgVmVyc2lvbi8nICsgdmVyc2lvbl9zdHJpbmcucHJlc3RvMigpICsgJyknLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICd3aW4nKSA/ICcoV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICc7IFU7ICcgKyByYW5kb21MYW5nKCkgKyBwcmVzdG9fdmVyXG4gICAgICAgICAgICA6IChhcmNoID09PSAnbGluJykgPyAnKFgxMTsgTGludXggJyArIHJhbmRvbVByb2MoYXJjaCkgKyAnOyBVOyAnICsgcmFuZG9tTGFuZygpICsgcHJlc3RvX3ZlclxuICAgICAgICAgICAgOiAnKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggJyArIHZlcnNpb25fc3RyaW5nLm9zeCgpICsgJyBVOyAnICsgcmFuZG9tTGFuZygpICsgJyBQcmVzdG8vJyArXG4gICAgICAgICAgICB2ZXJzaW9uX3N0cmluZy5wcmVzdG8oKSArICcgVmVyc2lvbi8nICsgdmVyc2lvbl9zdHJpbmcucHJlc3RvMigpICsgJyknO1xuXG4gICAgICAgIHJldHVybiAnT3BlcmEvJyArIHJuZCg5LCAxNCkgKyAnLicgKyBybmQoMCwgOTkpICsgJyAnICsgb3NfdmVyO1xuICAgIH0sXG5cbiAgICBzYWZhcmk6IGZ1bmN0aW9uIHNhZmFyaShhcmNoKSB7XG4gICAgICAgIHZhciBzYWZhcmkgPSB2ZXJzaW9uX3N0cmluZy5zYWZhcmkoKSxcbiAgICAgICAgICAgIHZlciA9IHJuZCg0LCA3KSArICcuJyArIHJuZCgwLDEpICsgJy4nICsgcm5kKDAsMTApLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICdtYWMnKSA/ICcoTWFjaW50b3NoOyAnICsgcmFuZG9tUHJvYygnbWFjJykgKyAnIE1hYyBPUyBYICcrIHZlcnNpb25fc3RyaW5nLm9zeCgnXycpICsgJyBydjonICsgcm5kKDIsIDYpICsgJy4wOyAnKyByYW5kb21MYW5nKCkgKyAnKSAnXG4gICAgICAgICAgICA6ICcoV2luZG93czsgVTsgV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICcpJztcblxuICAgICAgICByZXR1cm4gJ01vemlsbGEvNS4wICcgKyBvc192ZXIgKyAnQXBwbGVXZWJLaXQvJyArIHNhZmFyaSArICcgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLycgKyB2ZXIgKyAnIFNhZmFyaS8nICsgc2FmYXJpO1xuICAgIH0sXG5cbiAgICBjaHJvbWU6IGZ1bmN0aW9uIGNocm9tZShhcmNoKSB7XG4gICAgICAgIHZhciBzYWZhcmkgPSB2ZXJzaW9uX3N0cmluZy5zYWZhcmkoKSxcbiAgICAgICAgICAgIG9zX3ZlciA9IChhcmNoID09PSAnbWFjJykgPyAnKE1hY2ludG9zaDsgJyArIHJhbmRvbVByb2MoJ21hYycpICsgJyBNYWMgT1MgWCAnICsgdmVyc2lvbl9zdHJpbmcub3N4KCdfJykgKyAnKSAnXG4gICAgICAgICAgICA6IChhcmNoID09PSAnd2luJykgPyAnKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgJyArIHZlcnNpb25fc3RyaW5nLm50KCkgKyAnKSdcbiAgICAgICAgICAgIDogJyhYMTE7IExpbnV4ICcgKyByYW5kb21Qcm9jKGFyY2gpO1xuXG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgJyArIG9zX3ZlciArICcgQXBwbGVXZWJLaXQvJyArIHNhZmFyaSArICcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvJyArIHZlcnNpb25fc3RyaW5nLmNocm9tZSgpICsgJyBTYWZhcmkvJyArIHNhZmFyaTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmdlbmVyYXRlID0gZnVuY3Rpb24gZ2VuZXJhdGUoKSB7XG4gICAgdmFyIHJhbmRvbSA9IHJhbmRvbUJyb3dzZXJBbmRPUygpO1xuICAgIHJldHVybiBicm93c2VyW3JhbmRvbVswXV0ocmFuZG9tWzFdKTtcbn07XG4iLCJ2YXIgcmV0ID0gcmVxdWlyZSgncmV0Jyk7XG52YXIgRFJhbmdlID0gcmVxdWlyZSgnZGlzY29udGludW91cy1yYW5nZScpO1xudmFyIHR5cGVzID0gcmV0LnR5cGVzO1xuXG5cbi8qKlxuICogSWYgY29kZSBpcyBhbHBoYWJldGljLCBjb252ZXJ0cyB0byBvdGhlciBjYXNlLlxuICogSWYgbm90IGFscGhhYmV0aWMsIHJldHVybnMgYmFjayBjb2RlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb2RlXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIHRvT3RoZXJDYXNlKGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgKyAoOTcgPD0gY29kZSAmJiBjb2RlIDw9IDEyMiA/IC0zMiA6XG4gICAgICAgICAgICAgICAgIDY1IDw9IGNvZGUgJiYgY29kZSA8PSA5MCAgPyAgMzIgOiAwKTtcbn1cblxuXG4vKipcbiAqIFJhbmRvbWx5IHJldHVybnMgYSB0cnVlIG9yIGZhbHNlIHZhbHVlLlxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIHJhbmRCb29sKCkge1xuICByZXR1cm4gIXRoaXMucmFuZEludCgwLCAxKTtcbn07XG5cblxuLyoqXG4gKiBSYW5kb21seSBzZWxlY3RzIGFuZCByZXR1cm5zIGEgdmFsdWUgZnJvbSB0aGUgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtBcnJheS48T2JqZWN0Pn0gYXJyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHJhbmRTZWxlY3QoYXJyKSB7XG4gIGlmIChhcnIgaW5zdGFuY2VvZiBEUmFuZ2UpIHtcbiAgICByZXR1cm4gYXJyLmluZGV4KHRoaXMucmFuZEludCgwLCBhcnIubGVuZ3RoIC0gMSkpO1xuICB9XG4gIHJldHVybiBhcnJbdGhpcy5yYW5kSW50KDAsIGFyci5sZW5ndGggLSAxKV07XG59O1xuXG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIGNoYXJhY3RlciBjb2RlIGlzIGFscGhhYmV0aWMgYW5kIGRlY2lkZVxuICogdG8gc3dpdGNoIGNhc2UgcmFuZG9tbHkuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gaWdub3JlQ2FzZVxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBjaGFyKGNvZGUsIGlnbm9yZUNhc2UpIHtcbiAgY29kZSA9IGlnbm9yZUNhc2UgJiYgcmFuZEJvb2wuY2FsbCh0aGlzKSA/IHRvT3RoZXJDYXNlKGNvZGUpIDogY29kZTtcbiAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG59O1xuXG5cbi8qKlxuICogZXhwYW5kcyBhIHRva2VuIHRvIGEgRGlzY29udGludW91c1JhbmdlIG9mIGNoYXJhY3RlcnMgd2hpY2ggaGFzIGEgXG4gKiBsZW5ndGggYW5kIGFuIGluZGV4IGZ1bmN0aW9uIChmb3IgcmFuZG9tIHNlbGVjdGluZylcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdG9rZW5cbiAqIEByZXR1cm4ge0Rpc2NvbnRpbnVvdXNSYW5nZX1cbiAqL1xuZnVuY3Rpb24gZXhwYW5kKHRva2VuKSB7XG4gIGlmICh0b2tlbi50eXBlID09PSByZXQudHlwZXMuQ0hBUikgcmV0dXJuIG5ldyBEUmFuZ2UodG9rZW4udmFsdWUpO1xuICBpZiAodG9rZW4udHlwZSA9PT0gcmV0LnR5cGVzLlJBTkdFKSByZXR1cm4gbmV3IERSYW5nZSh0b2tlbi5mcm9tLCB0b2tlbi50byk7XG4gIGlmICh0b2tlbi50eXBlID09PSByZXQudHlwZXMuU0VUKSB7XG4gICAgdmFyIGRyYW5nZSA9IG5ldyBEUmFuZ2UoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2VuLnNldC5sZW5ndGg7IGkrKykge1xuICAgICAgZHJhbmdlLmFkZChleHBhbmQuY2FsbCh0aGlzLCB0b2tlbi5zZXRbaV0pKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLm5vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFJhbmdlLmNsb25lKCkuc3VidHJhY3QoZHJhbmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRyYW5nZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGFuZGFibGUgdG9rZW4gdHlwZTogJyArIHRva2VuLnR5cGUpO1xufTtcblxuXG4vKipcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtSZWdFeHB8U3RyaW5nfSByZWdleHBcbiAqIEBwYXJhbSB7U3RyaW5nfSBtXG4gKi9cbnZhciBSYW5kRXhwID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihyZWdleHAsIG0pIHtcbiAgdGhpcy5kZWZhdWx0UmFuZ2UgPSB0aGlzLmRlZmF1bHRSYW5nZS5jbG9uZSgpO1xuICBpZiAocmVnZXhwIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgdGhpcy5pZ25vcmVDYXNlID0gcmVnZXhwLmlnbm9yZUNhc2U7XG4gICAgdGhpcy5tdWx0aWxpbmUgPSByZWdleHAubXVsdGlsaW5lO1xuICAgIGlmICh0eXBlb2YgcmVnZXhwLm1heCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMubWF4ID0gcmVnZXhwLm1heDtcbiAgICB9XG4gICAgcmVnZXhwID0gcmVnZXhwLnNvdXJjZTtcblxuICB9IGVsc2UgaWYgKHR5cGVvZiByZWdleHAgPT09ICdzdHJpbmcnKSB7XG4gICAgdGhpcy5pZ25vcmVDYXNlID0gbSAmJiBtLmluZGV4T2YoJ2knKSAhPT0gLTE7XG4gICAgdGhpcy5tdWx0aWxpbmUgPSBtICYmIG0uaW5kZXhPZignbScpICE9PSAtMTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgcmVnZXhwIG9yIHN0cmluZycpO1xuICB9XG5cbiAgdGhpcy50b2tlbnMgPSByZXQocmVnZXhwKTtcbn07XG5cblxuLy8gV2hlbiBhIHJlcGV0aXRpb25hbCB0b2tlbiBoYXMgaXRzIG1heCBzZXQgdG8gSW5maW5pdGUsXG4vLyByYW5kZXhwIHdvbid0IGFjdHVhbGx5IGdlbmVyYXRlIGEgcmFuZG9tIGFtb3VudCBiZXR3ZWVuIG1pbiBhbmQgSW5maW5pdGVcbi8vIGluc3RlYWQgaXQgd2lsbCBzZWUgSW5maW5pdGUgYXMgbWluICsgMTAwLlxuUmFuZEV4cC5wcm90b3R5cGUubWF4ID0gMTAwO1xuXG5cbi8vIEdlbmVyYXRlcyB0aGUgcmFuZG9tIHN0cmluZy5cblJhbmRFeHAucHJvdG90eXBlLmdlbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZ2VuLmNhbGwodGhpcywgdGhpcy50b2tlbnMsIFtdKTtcbn07XG5cblxuLy8gRW5hYmxlcyB1c2Ugb2YgcmFuZGV4cCB3aXRoIGEgc2hvcnRlciBjYWxsLlxuUmFuZEV4cC5yYW5kZXhwID0gZnVuY3Rpb24ocmVnZXhwLCBtKSB7XG4gIHZhciByYW5kZXhwO1xuXG4gIGlmIChyZWdleHAuX3JhbmRleHAgPT09IHVuZGVmaW5lZCkge1xuICAgIHJhbmRleHAgPSBuZXcgUmFuZEV4cChyZWdleHAsIG0pO1xuICAgIHJlZ2V4cC5fcmFuZGV4cCA9IHJhbmRleHA7XG4gIH0gZWxzZSB7XG4gICAgcmFuZGV4cCA9IHJlZ2V4cC5fcmFuZGV4cDtcbiAgICBpZiAodHlwZW9mIHJlZ2V4cC5tYXggPT09ICdudW1iZXInKSB7XG4gICAgICByYW5kZXhwLm1heCA9IHJlZ2V4cC5tYXg7XG4gICAgfVxuICAgIGlmIChyZWdleHAuZGVmYXVsdFJhbmdlIGluc3RhbmNlb2YgRFJhbmdlKSB7XG4gICAgICByYW5kZXhwLmRlZmF1bHRSYW5nZSA9IHJlZ2V4cC5kZWZhdWx0UmFuZ2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVnZXhwLnJhbmRJbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJhbmRleHAucmFuZEludCA9IHJlZ2V4cC5yYW5kSW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByYW5kZXhwLmdlbigpO1xufTtcblxuXG4vLyBUaGlzIGVuYWJsZXMgc3VnYXJ5IC9yZWdleHAvLmdlbiBzeW50YXguXG5SYW5kRXhwLnN1Z2FyID0gZnVuY3Rpb24oKSB7XG4gIC8qIGpzaGludCBmcmVlemU6ZmFsc2UgKi9cbiAgUmVnRXhwLnByb3RvdHlwZS5nZW4gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gUmFuZEV4cC5yYW5kZXhwKHRoaXMpO1xuICB9O1xufTtcblxuLy8gVGhpcyBhbGxvd3MgZXhwYW5kaW5nIHRvIGluY2x1ZGUgYWRkaXRpb25hbCBjaGFyYWN0ZXJzXG4vLyBmb3IgaW5zdGFuY2U6IFJhbmRFeHAuZGVmYXVsdFJhbmdlLmFkZCgwLCA2NTUzNSk7XG5SYW5kRXhwLnByb3RvdHlwZS5kZWZhdWx0UmFuZ2UgPSBuZXcgRFJhbmdlKDMyLCAxMjYpO1xuXG5cblxuXG5cblxuLyoqXG4gKiBSYW5kb21seSBnZW5lcmF0ZXMgYW5kIHJldHVybnMgYSBudW1iZXIgYmV0d2VlbiBhIGFuZCBiIChpbmNsdXNpdmUpLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBhXG4gKiBAcGFyYW0ge051bWJlcn0gYlxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG5SYW5kRXhwLnByb3RvdHlwZS5yYW5kSW50ID0gZnVuY3Rpb24oYSwgYikge1xuICByZXR1cm4gYSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICgxICsgYiAtIGEpKTtcbn07XG5cblxuLyoqXG4gKiBHZW5lcmF0ZSByYW5kb20gc3RyaW5nIG1vZGVsZWQgYWZ0ZXIgZ2l2ZW4gdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB0b2tlblxuICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gZ3JvdXBzXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdlbih0b2tlbiwgZ3JvdXBzKSB7XG4gIHZhciBzdGFjaywgc3RyLCBuLCBpLCBsO1xuXG4gIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXG5cbiAgICBjYXNlIHR5cGVzLlJPT1Q6XG4gICAgY2FzZSB0eXBlcy5HUk9VUDpcbiAgICAgIGlmICh0b2tlbi5ub3RGb2xsb3dlZEJ5KSB7IHJldHVybiAnJzsgfVxuXG4gICAgICAvLyBJbnNlcnQgcGxhY2Vob2xkZXIgdW50aWwgZ3JvdXAgc3RyaW5nIGlzIGdlbmVyYXRlZC5cbiAgICAgIGlmICh0b2tlbi5yZW1lbWJlciAmJiB0b2tlbi5ncm91cE51bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRva2VuLmdyb3VwTnVtYmVyID0gZ3JvdXBzLnB1c2gobnVsbCkgLSAxO1xuICAgICAgfVxuXG4gICAgICBzdGFjayA9IHRva2VuLm9wdGlvbnMgPyByYW5kU2VsZWN0LmNhbGwodGhpcywgdG9rZW4ub3B0aW9ucykgOiB0b2tlbi5zdGFjaztcblxuICAgICAgc3RyID0gJyc7XG4gICAgICBmb3IgKGkgPSAwLCBsID0gc3RhY2subGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHN0ciArPSBnZW4uY2FsbCh0aGlzLCBzdGFja1tpXSwgZ3JvdXBzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2VuLnJlbWVtYmVyKSB7XG4gICAgICAgIGdyb3Vwc1t0b2tlbi5ncm91cE51bWJlcl0gPSBzdHI7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyO1xuXG5cbiAgICBjYXNlIHR5cGVzLlBPU0lUSU9OOlxuICAgICAgLy8gRG8gbm90aGluZyBmb3Igbm93LlxuICAgICAgcmV0dXJuICcnO1xuXG5cbiAgICBjYXNlIHR5cGVzLlNFVDpcblxuICAgICAgdmFyIGV4cGFuZGVkX3NldCA9IGV4cGFuZC5jYWxsKHRoaXMsIHRva2VuKTtcbiAgICAgIGlmICghZXhwYW5kZWRfc2V0Lmxlbmd0aCkgcmV0dXJuICcnO1xuICAgICAgcmV0dXJuIGNoYXIuY2FsbCh0aGlzLCByYW5kU2VsZWN0LmNhbGwodGhpcywgZXhwYW5kZWRfc2V0KSwgdGhpcy5pZ25vcmVDYXNlKTtcblxuICAgIGNhc2UgdHlwZXMuUkFOR0U6XG4gICAgICByZXR1cm4gY2hhci5jYWxsKHRoaXMsIHRoaXMucmFuZEludCh0b2tlbi5mcm9tLCB0b2tlbi50byksIHRoaXMuaWdub3JlQ2FzZSk7XG5cblxuICAgIGNhc2UgdHlwZXMuUkVQRVRJVElPTjpcbiAgICAgIC8vIFJhbmRvbWx5IGdlbmVyYXRlIG51bWJlciBiZXR3ZWVuIG1pbiBhbmQgbWF4LlxuICAgICAgbiA9IHRoaXMucmFuZEludCh0b2tlbi5taW4sXG4gICAgICAgICAgICAgIHRva2VuLm1heCA9PT0gSW5maW5pdHkgPyB0b2tlbi5taW4gKyB0aGlzLm1heCA6IHRva2VuLm1heCk7XG5cbiAgICAgIHN0ciA9ICcnO1xuICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBzdHIgKz0gZ2VuLmNhbGwodGhpcywgdG9rZW4udmFsdWUsIGdyb3Vwcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHI7XG5cblxuICAgIGNhc2UgdHlwZXMuUkVGRVJFTkNFOlxuICAgICAgcmV0dXJuIGdyb3Vwc1t0b2tlbi52YWx1ZSAtIDFdIHx8ICcnO1xuXG5cbiAgICBjYXNlIHR5cGVzLkNIQVI6XG4gICAgICByZXR1cm4gY2hhci5jYWxsKHRoaXMsIHRva2VuLnZhbHVlLCB0aGlzLmlnbm9yZUNhc2UpO1xuICB9XG59XG5cblxuIiwiLy9wcm90ZWN0ZWQgaGVscGVyIGNsYXNzXG5mdW5jdGlvbiBfU3ViUmFuZ2UobG93LCBoaWdoKSB7XG4gICAgdGhpcy5sb3cgPSBsb3c7XG4gICAgdGhpcy5oaWdoID0gaGlnaDtcbiAgICB0aGlzLmxlbmd0aCA9IDEgKyBoaWdoIC0gbG93O1xufVxuXG5fU3ViUmFuZ2UucHJvdG90eXBlLm92ZXJsYXBzID0gZnVuY3Rpb24gKHJhbmdlKSB7XG4gICAgcmV0dXJuICEodGhpcy5oaWdoIDwgcmFuZ2UubG93IHx8IHRoaXMubG93ID4gcmFuZ2UuaGlnaCk7XG59O1xuXG5fU3ViUmFuZ2UucHJvdG90eXBlLnRvdWNoZXMgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICByZXR1cm4gISh0aGlzLmhpZ2ggKyAxIDwgcmFuZ2UubG93IHx8IHRoaXMubG93IC0gMSA+IHJhbmdlLmhpZ2gpO1xufTtcblxuLy9yZXR1cm5zIGluY2x1c2l2ZSBjb21iaW5hdGlvbiBvZiBfU3ViUmFuZ2VzIGFzIGEgX1N1YlJhbmdlXG5fU3ViUmFuZ2UucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChyYW5nZSkge1xuICAgIHJldHVybiB0aGlzLnRvdWNoZXMocmFuZ2UpICYmIG5ldyBfU3ViUmFuZ2UoTWF0aC5taW4odGhpcy5sb3csIHJhbmdlLmxvdyksIE1hdGgubWF4KHRoaXMuaGlnaCwgcmFuZ2UuaGlnaCkpO1xufTtcblxuLy9yZXR1cm5zIHN1YnRyYWN0aW9uIG9mIF9TdWJSYW5nZXMgYXMgYW4gYXJyYXkgb2YgX1N1YlJhbmdlcyAodGhlcmUncyBhIGNhc2Ugd2hlcmUgc3VidHJhY3Rpb24gZGl2aWRlcyBpdCBpbiAyKVxuX1N1YlJhbmdlLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uIChyYW5nZSkge1xuICAgIGlmICghdGhpcy5vdmVybGFwcyhyYW5nZSkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocmFuZ2UubG93IDw9IHRoaXMubG93ICYmIHJhbmdlLmhpZ2ggPj0gdGhpcy5oaWdoKSByZXR1cm4gW107XG4gICAgaWYgKHJhbmdlLmxvdyA+IHRoaXMubG93ICYmIHJhbmdlLmhpZ2ggPCB0aGlzLmhpZ2gpIHJldHVybiBbbmV3IF9TdWJSYW5nZSh0aGlzLmxvdywgcmFuZ2UubG93IC0gMSksIG5ldyBfU3ViUmFuZ2UocmFuZ2UuaGlnaCArIDEsIHRoaXMuaGlnaCldO1xuICAgIGlmIChyYW5nZS5sb3cgPD0gdGhpcy5sb3cpIHJldHVybiBbbmV3IF9TdWJSYW5nZShyYW5nZS5oaWdoICsgMSwgdGhpcy5oaWdoKV07XG4gICAgcmV0dXJuIFtuZXcgX1N1YlJhbmdlKHRoaXMubG93LCByYW5nZS5sb3cgLSAxKV07XG59O1xuXG5fU3ViUmFuZ2UucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLmxvdyA9PSB0aGlzLmhpZ2gpIHJldHVybiB0aGlzLmxvdy50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmxvdyArICctJyArIHRoaXMuaGlnaDtcbn07XG5cbl9TdWJSYW5nZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG5ldyBfU3ViUmFuZ2UodGhpcy5sb3csIHRoaXMuaGlnaCk7XG59O1xuXG5cblxuXG5mdW5jdGlvbiBEaXNjb250aW51b3VzUmFuZ2UoYSwgYikge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgRGlzY29udGludW91c1JhbmdlKSB7XG4gICAgICAgIHRoaXMucmFuZ2VzID0gW107XG4gICAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICAgICAgaWYgKGEgIT09IHVuZGVmaW5lZCkgdGhpcy5hZGQoYSwgYik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEaXNjb250aW51b3VzUmFuZ2UoYSwgYik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBfdXBkYXRlX2xlbmd0aChzZWxmKSB7XG4gICAgc2VsZi5sZW5ndGggPSBzZWxmLnJhbmdlcy5yZWR1Y2UoZnVuY3Rpb24gKHByZXZpb3VzLCByYW5nZSkge3JldHVybiBwcmV2aW91cyArIHJhbmdlLmxlbmd0aH0sIDApO1xufVxuXG5EaXNjb250aW51b3VzUmFuZ2UucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIF9hZGQoc3VicmFuZ2UpIHtcbiAgICAgICAgdmFyIG5ld19yYW5nZXMgPSBbXTtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiAhc3VicmFuZ2UudG91Y2hlcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMucHVzaChzZWxmLnJhbmdlc1tpXS5jbG9uZSgpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiBzdWJyYW5nZS50b3VjaGVzKHNlbGYucmFuZ2VzW2ldKSkge1xuICAgICAgICAgICAgc3VicmFuZ2UgPSBzdWJyYW5nZS5hZGQoc2VsZi5yYW5nZXNbaV0pO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIG5ld19yYW5nZXMucHVzaChzdWJyYW5nZSk7XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZi5yYW5nZXMgPSBuZXdfcmFuZ2VzO1xuICAgICAgICBfdXBkYXRlX2xlbmd0aChzZWxmKTtcbiAgICB9XG5cbiAgICBpZiAoYSBpbnN0YW5jZW9mIERpc2NvbnRpbnVvdXNSYW5nZSkge1xuICAgICAgICBhLnJhbmdlcy5mb3JFYWNoKF9hZGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhIGluc3RhbmNlb2YgX1N1YlJhbmdlKSB7XG4gICAgICAgICAgICBfYWRkKGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGIgPT09IHVuZGVmaW5lZCkgYiA9IGE7XG4gICAgICAgICAgICBfYWRkKG5ldyBfU3ViUmFuZ2UoYSwgYikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xufTtcblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIF9zdWJ0cmFjdChzdWJyYW5nZSkge1xuICAgICAgICB2YXIgbmV3X3JhbmdlcyA9IFtdO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoICYmICFzdWJyYW5nZS5vdmVybGFwcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMucHVzaChzZWxmLnJhbmdlc1tpXS5jbG9uZSgpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiBzdWJyYW5nZS5vdmVybGFwcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMgPSBuZXdfcmFuZ2VzLmNvbmNhdChzZWxmLnJhbmdlc1tpXS5zdWJ0cmFjdChzdWJyYW5nZSkpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZi5yYW5nZXMgPSBuZXdfcmFuZ2VzO1xuICAgICAgICBfdXBkYXRlX2xlbmd0aChzZWxmKTtcbiAgICB9XG4gICAgaWYgKGEgaW5zdGFuY2VvZiBEaXNjb250aW51b3VzUmFuZ2UpIHtcbiAgICAgICAgYS5yYW5nZXMuZm9yRWFjaChfc3VidHJhY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhIGluc3RhbmNlb2YgX1N1YlJhbmdlKSB7XG4gICAgICAgICAgICBfc3VidHJhY3QoYSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoYiA9PT0gdW5kZWZpbmVkKSBiID0gYTtcbiAgICAgICAgICAgIF9zdWJ0cmFjdChuZXcgX1N1YlJhbmdlKGEsIGIpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbn07XG5cblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS5pbmRleCA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHRoaXMucmFuZ2VzLmxlbmd0aCAmJiB0aGlzLnJhbmdlc1tpXS5sZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgaW5kZXggLT0gdGhpcy5yYW5nZXNbaV0ubGVuZ3RoO1xuICAgICAgICBpKys7XG4gICAgfVxuICAgIGlmIChpID49IHRoaXMucmFuZ2VzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2VzW2ldLmxvdyArIGluZGV4O1xufTtcblxuXG5EaXNjb250aW51b3VzUmFuZ2UucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAnWyAnICsgdGhpcy5yYW5nZXMuam9pbignLCAnKSArICcgXSdcbn07XG5cbkRpc2NvbnRpbnVvdXNSYW5nZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG5ldyBEaXNjb250aW51b3VzUmFuZ2UodGhpcyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERpc2NvbnRpbnVvdXNSYW5nZTtcbiIsInZhciB1dGlsICAgICAgPSByZXF1aXJlKCcuL3V0aWwnKTtcbnZhciB0eXBlcyAgICAgPSByZXF1aXJlKCcuL3R5cGVzJyk7XG52YXIgc2V0cyAgICAgID0gcmVxdWlyZSgnLi9zZXRzJyk7XG52YXIgcG9zaXRpb25zID0gcmVxdWlyZSgnLi9wb3NpdGlvbnMnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHJlZ2V4cFN0cikge1xuICB2YXIgaSA9IDAsIGwsIGMsXG4gICAgICBzdGFydCA9IHsgdHlwZTogdHlwZXMuUk9PVCwgc3RhY2s6IFtdfSxcblxuICAgICAgLy8gS2VlcCB0cmFjayBvZiBsYXN0IGNsYXVzZS9ncm91cCBhbmQgc3RhY2suXG4gICAgICBsYXN0R3JvdXAgPSBzdGFydCxcbiAgICAgIGxhc3QgPSBzdGFydC5zdGFjayxcbiAgICAgIGdyb3VwU3RhY2sgPSBbXTtcblxuXG4gIHZhciByZXBlYXRFcnIgPSBmdW5jdGlvbihpKSB7XG4gICAgdXRpbC5lcnJvcihyZWdleHBTdHIsICdOb3RoaW5nIHRvIHJlcGVhdCBhdCBjb2x1bW4gJyArIChpIC0gMSkpO1xuICB9O1xuXG4gIC8vIERlY29kZSBhIGZldyBlc2NhcGVkIGNoYXJhY3RlcnMuXG4gIHZhciBzdHIgPSB1dGlsLnN0clRvQ2hhcnMocmVnZXhwU3RyKTtcbiAgbCA9IHN0ci5sZW5ndGg7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggY2hhcmFjdGVyIGluIHN0cmluZy5cbiAgd2hpbGUgKGkgPCBsKSB7XG4gICAgYyA9IHN0cltpKytdO1xuXG4gICAgc3dpdGNoIChjKSB7XG4gICAgICAvLyBIYW5kbGUgZXNjYXBlZCBjaGFyYWN0ZXJzLCBpbmNsdWVzIGEgZmV3IHNldHMuXG4gICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgYyA9IHN0cltpKytdO1xuXG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy53b3JkQm91bmRhcnkoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ0InOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy5ub25Xb3JkQm91bmRhcnkoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMud29yZHMoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMubm90V29yZHMoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMuaW50cygpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICBsYXN0LnB1c2goc2V0cy5ub3RJbnRzKCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChzZXRzLndoaXRlc3BhY2UoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1MnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMubm90V2hpdGVzcGFjZSgpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGMgaXMgaW50ZWdlci5cbiAgICAgICAgICAgIC8vIEluIHdoaWNoIGNhc2UgaXQncyBhIHJlZmVyZW5jZS5cbiAgICAgICAgICAgIGlmICgvXFxkLy50ZXN0KGMpKSB7XG4gICAgICAgICAgICAgIGxhc3QucHVzaCh7IHR5cGU6IHR5cGVzLlJFRkVSRU5DRSwgdmFsdWU6IHBhcnNlSW50KGMsIDEwKSB9KTtcblxuICAgICAgICAgICAgLy8gRXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsYXN0LnB1c2goeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogYy5jaGFyQ29kZUF0KDApIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gUG9zaXRpb25hbHMuXG4gICAgICBjYXNlICdeJzpcbiAgICAgICAgICBsYXN0LnB1c2gocG9zaXRpb25zLmJlZ2luKCkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnJCc6XG4gICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy5lbmQoKSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIEhhbmRsZSBjdXN0b20gc2V0cy5cbiAgICAgIGNhc2UgJ1snOlxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGNsYXNzIGlzICdhbnRpJyBpLmUuIFteYWJjXS5cbiAgICAgICAgdmFyIG5vdDtcbiAgICAgICAgaWYgKHN0cltpXSA9PT0gJ14nKSB7XG4gICAgICAgICAgbm90ID0gdHJ1ZTtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm90ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgYWxsIHRoZSBjaGFyYWN0ZXJzIGluIGNsYXNzLlxuICAgICAgICB2YXIgY2xhc3NUb2tlbnMgPSB1dGlsLnRva2VuaXplQ2xhc3Moc3RyLnNsaWNlKGkpLCByZWdleHBTdHIpO1xuXG4gICAgICAgIC8vIEluY3JlYXNlIGluZGV4IGJ5IGxlbmd0aCBvZiBjbGFzcy5cbiAgICAgICAgaSArPSBjbGFzc1Rva2Vuc1sxXTtcbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlNFVFxuICAgICAgICAgICwgc2V0OiBjbGFzc1Rva2Vuc1swXVxuICAgICAgICAgICwgbm90OiBub3RcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gQ2xhc3Mgb2YgYW55IGNoYXJhY3RlciBleGNlcHQgXFxuLlxuICAgICAgY2FzZSAnLic6XG4gICAgICAgIGxhc3QucHVzaChzZXRzLmFueUNoYXIoKSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFB1c2ggZ3JvdXAgb250byBzdGFjay5cbiAgICAgIGNhc2UgJygnOlxuICAgICAgICAvLyBDcmVhdGUgZ3JvdXAuXG4gICAgICAgIHZhciBncm91cCA9IHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLkdST1VQXG4gICAgICAgICAgLCBzdGFjazogW11cbiAgICAgICAgICAsIHJlbWVtYmVyOiB0cnVlXG4gICAgICAgIH07XG5cbiAgICAgICAgYyA9IHN0cltpXTtcblxuICAgICAgICAvLyBpZiBpZiB0aGlzIGlzIGEgc3BlY2lhbCBraW5kIG9mIGdyb3VwLlxuICAgICAgICBpZiAoYyA9PT0gJz8nKSB7XG4gICAgICAgICAgYyA9IHN0cltpICsgMV07XG4gICAgICAgICAgaSArPSAyO1xuXG4gICAgICAgICAgLy8gTWF0Y2ggaWYgZm9sbG93ZWQgYnkuXG4gICAgICAgICAgaWYgKGMgPT09ICc9Jykge1xuICAgICAgICAgICAgZ3JvdXAuZm9sbG93ZWRCeSA9IHRydWU7XG5cbiAgICAgICAgICAvLyBNYXRjaCBpZiBub3QgZm9sbG93ZWQgYnkuXG4gICAgICAgICAgfSBlbHNlIGlmIChjID09PSAnIScpIHtcbiAgICAgICAgICAgIGdyb3VwLm5vdEZvbGxvd2VkQnkgPSB0cnVlO1xuXG4gICAgICAgICAgfSBlbHNlIGlmIChjICE9PSAnOicpIHtcbiAgICAgICAgICAgIHV0aWwuZXJyb3IocmVnZXhwU3RyLFxuICAgICAgICAgICAgICAgICdJbnZhbGlkIGdyb3VwLCBjaGFyYWN0ZXIgXFwnJyArIGMgKyAnXFwnIGFmdGVyIFxcJz9cXCcgYXQgY29sdW1uICcgK1xuICAgICAgICAgICAgICAgIChpIC0gMSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGdyb3VwLnJlbWVtYmVyID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnNlcnQgc3ViZ3JvdXAgaW50byBjdXJyZW50IGdyb3VwIHN0YWNrLlxuICAgICAgICBsYXN0LnB1c2goZ3JvdXApO1xuXG4gICAgICAgIC8vIFJlbWVtYmVyIHRoZSBjdXJyZW50IGdyb3VwIGZvciB3aGVuIHRoZSBncm91cCBjbG9zZXMuXG4gICAgICAgIGdyb3VwU3RhY2sucHVzaChsYXN0R3JvdXApO1xuXG4gICAgICAgIC8vIE1ha2UgdGhpcyBuZXcgZ3JvdXAgdGhlIGN1cnJlbnQgZ3JvdXAuXG4gICAgICAgIGxhc3RHcm91cCA9IGdyb3VwO1xuICAgICAgICBsYXN0ID0gZ3JvdXAuc3RhY2s7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFBvcCBncm91cCBvdXQgb2Ygc3RhY2suXG4gICAgICBjYXNlICcpJzpcbiAgICAgICAgaWYgKGdyb3VwU3RhY2subGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdXRpbC5lcnJvcihyZWdleHBTdHIsICdVbm1hdGNoZWQgKSBhdCBjb2x1bW4gJyArIChpIC0gMSkpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RHcm91cCA9IGdyb3VwU3RhY2sucG9wKCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBncm91cCBoYXMgYSBQSVBFLlxuICAgICAgICAvLyBUbyBnZXQgYmFjayB0aGUgY29ycmVjdCBsYXN0IHN0YWNrLlxuICAgICAgICBsYXN0ID0gbGFzdEdyb3VwLm9wdGlvbnMgPyBsYXN0R3JvdXAub3B0aW9uc1tsYXN0R3JvdXAub3B0aW9ucy5sZW5ndGggLSAxXSA6IGxhc3RHcm91cC5zdGFjaztcbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gVXNlIHBpcGUgY2hhcmFjdGVyIHRvIGdpdmUgbW9yZSBjaG9pY2VzLlxuICAgICAgY2FzZSAnfCc6XG4gICAgICAgIC8vIENyZWF0ZSBhcnJheSB3aGVyZSBvcHRpb25zIGFyZSBpZiB0aGlzIGlzIHRoZSBmaXJzdCBQSVBFXG4gICAgICAgIC8vIGluIHRoaXMgY2xhdXNlLlxuICAgICAgICBpZiAoIWxhc3RHcm91cC5vcHRpb25zKSB7XG4gICAgICAgICAgbGFzdEdyb3VwLm9wdGlvbnMgPSBbbGFzdEdyb3VwLnN0YWNrXTtcbiAgICAgICAgICBkZWxldGUgbGFzdEdyb3VwLnN0YWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHN0YWNrIGFuZCBhZGQgdG8gb3B0aW9ucyBmb3IgcmVzdCBvZiBjbGF1c2UuXG4gICAgICAgIHZhciBzdGFjayA9IFtdO1xuICAgICAgICBsYXN0R3JvdXAub3B0aW9ucy5wdXNoKHN0YWNrKTtcbiAgICAgICAgbGFzdCA9IHN0YWNrO1xuICAgICAgICBicmVhaztcblxuXG4gICAgICAvLyBSZXBldGl0aW9uLlxuICAgICAgLy8gRm9yIGV2ZXJ5IHJlcGV0aXRpb24sIHJlbW92ZSBsYXN0IGVsZW1lbnQgZnJvbSBsYXN0IHN0YWNrXG4gICAgICAvLyB0aGVuIGluc2VydCBiYWNrIGEgUkFOR0Ugb2JqZWN0LlxuICAgICAgLy8gVGhpcyBkZXNpZ24gaXMgY2hvc2VuIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgbW9yZSB0aGFuXG4gICAgICAvLyBvbmUgcmVwZXRpdGlvbiBzeW1ib2xzIGluIGEgcmVnZXggaS5lLiBgYT8rezIsM31gLlxuICAgICAgY2FzZSAneyc6XG4gICAgICAgIHZhciBycyA9IC9eKFxcZCspKCwoXFxkKyk/KT9cXH0vLmV4ZWMoc3RyLnNsaWNlKGkpKSwgbWluLCBtYXg7XG4gICAgICAgIGlmIChycyAhPT0gbnVsbCkge1xuICAgICAgICAgIG1pbiA9IHBhcnNlSW50KHJzWzFdLCAxMCk7XG4gICAgICAgICAgbWF4ID0gcnNbMl0gPyByc1szXSA/IHBhcnNlSW50KHJzWzNdLCAxMCkgOiBJbmZpbml0eSA6IG1pbjtcbiAgICAgICAgICBpICs9IHJzWzBdLmxlbmd0aDtcblxuICAgICAgICAgIGxhc3QucHVzaCh7XG4gICAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAgICwgbWluOiBtaW5cbiAgICAgICAgICAgICwgbWF4OiBtYXhcbiAgICAgICAgICAgICwgdmFsdWU6IGxhc3QucG9wKClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgICB0eXBlOiB0eXBlcy5DSEFSXG4gICAgICAgICAgICAsIHZhbHVlOiAxMjNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnPyc6XG4gICAgICAgIGlmIChsYXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJlcGVhdEVycihpKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgdHlwZTogdHlwZXMuUkVQRVRJVElPTlxuICAgICAgICAgICwgbWluOiAwXG4gICAgICAgICAgLCBtYXg6IDFcbiAgICAgICAgICAsIHZhbHVlOiBsYXN0LnBvcCgpXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnKyc6XG4gICAgICAgIGlmIChsYXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJlcGVhdEVycihpKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgdHlwZTogdHlwZXMuUkVQRVRJVElPTlxuICAgICAgICAgICwgbWluOiAxXG4gICAgICAgICAgLCBtYXg6IEluZmluaXR5XG4gICAgICAgICAgLCB2YWx1ZTogbGFzdC5wb3AoKVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJyonOlxuICAgICAgICBpZiAobGFzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXBlYXRFcnIoaSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAsIG1pbjogMFxuICAgICAgICAgICwgbWF4OiBJbmZpbml0eVxuICAgICAgICAgICwgdmFsdWU6IGxhc3QucG9wKClcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIERlZmF1bHQgaXMgYSBjaGFyYWN0ZXIgdGhhdCBpcyBub3QgYFxcW10oKXt9PysqXiRgLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLkNIQVJcbiAgICAgICAgICAsIHZhbHVlOiBjLmNoYXJDb2RlQXQoMClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gIH1cblxuICAvLyBDaGVjayBpZiBhbnkgZ3JvdXBzIGhhdmUgbm90IGJlZW4gY2xvc2VkLlxuICBpZiAoZ3JvdXBTdGFjay5sZW5ndGggIT09IDApIHtcbiAgICB1dGlsLmVycm9yKHJlZ2V4cFN0ciwgJ1VudGVybWluYXRlZCBncm91cCcpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXJ0O1xufTtcblxubW9kdWxlLmV4cG9ydHMudHlwZXMgPSB0eXBlcztcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxuZXhwb3J0cy53b3JkQm91bmRhcnkgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuUE9TSVRJT04sIHZhbHVlOiAnYicgfTtcbn07XG5cbmV4cG9ydHMubm9uV29yZEJvdW5kYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlBPU0lUSU9OLCB2YWx1ZTogJ0InIH07XG59O1xuXG5leHBvcnRzLmJlZ2luID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlBPU0lUSU9OLCB2YWx1ZTogJ14nIH07XG59O1xuXG5leHBvcnRzLmVuZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5QT1NJVElPTiwgdmFsdWU6ICckJyB9O1xufTtcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxudmFyIElOVFMgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gW3sgdHlwZTogdHlwZXMuUkFOR0UgLCBmcm9tOiA0OCwgdG86IDU3IH1dO1xufTtcblxudmFyIFdPUkRTID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDk1IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuUkFOR0UsIGZyb206IDk3LCB0bzogMTIyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuUkFOR0UsIGZyb206IDY1LCB0bzogOTAgfVxuICBdLmNvbmNhdChJTlRTKCkpO1xufTtcblxudmFyIFdISVRFU1BBQ0UgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gW1xuICAgICAgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogOSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAzMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxNjAgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogNTc2MCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA2MTU4IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5MyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk0IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTUgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5NiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk3IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTggfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5OSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjAwIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMDEgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIwMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjMyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzMgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIzOSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4Mjg3IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEyMjg4IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDY1Mjc5IH1cbiAgXTtcbn07XG5cbnZhciBOT1RBTllDSEFSID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEwIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEzIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIzMyB9XG4gIF07XG59O1xuXG4vLyBwcmVkZWZpbmVkIGNsYXNzIG9iamVjdHNcbmV4cG9ydHMud29yZHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdPUkRTKCksIG5vdDogZmFsc2UgfTtcbn07XG5cbmV4cG9ydHMubm90V29yZHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdPUkRTKCksIG5vdDogdHJ1ZSB9O1xufTtcblxuZXhwb3J0cy5pbnRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlNFVCwgc2V0OiBJTlRTKCksIG5vdDogZmFsc2UgfTtcbn07XG5cbmV4cG9ydHMubm90SW50cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5TRVQsIHNldDogSU5UUygpLCBub3Q6IHRydWUgfTtcbn07XG5cbmV4cG9ydHMud2hpdGVzcGFjZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5TRVQsIHNldDogV0hJVEVTUEFDRSgpLCBub3Q6IGZhbHNlIH07XG59O1xuXG5leHBvcnRzLm5vdFdoaXRlc3BhY2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdISVRFU1BBQ0UoKSwgbm90OiB0cnVlIH07XG59O1xuXG5leHBvcnRzLmFueUNoYXIgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IE5PVEFOWUNIQVIoKSwgbm90OiB0cnVlIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUk9PVCAgICAgICA6IDBcbiAgLCBHUk9VUCAgICAgIDogMVxuICAsIFBPU0lUSU9OICAgOiAyXG4gICwgU0VUICAgICAgICA6IDNcbiAgLCBSQU5HRSAgICAgIDogNFxuICAsIFJFUEVUSVRJT04gOiA1XG4gICwgUkVGRVJFTkNFICA6IDZcbiAgLCBDSEFSICAgICAgIDogN1xufTtcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcbnZhciBzZXRzICA9IHJlcXVpcmUoJy4vc2V0cycpO1xuXG5cbi8vIEFsbCBvZiB0aGVzZSBhcmUgcHJpdmF0ZSBhbmQgb25seSB1c2VkIGJ5IHJhbmRleHAuXG4vLyBJdCdzIGFzc3VtZWQgdGhhdCB0aGV5IHdpbGwgYWx3YXlzIGJlIGNhbGxlZCB3aXRoIHRoZSBjb3JyZWN0IGlucHV0LlxuXG52YXIgQ1RSTCA9ICdAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eID8nO1xudmFyIFNMU0ggPSB7ICcwJzogMCwgJ3QnOiA5LCAnbic6IDEwLCAndic6IDExLCAnZic6IDEyLCAncic6IDEzIH07XG5cbi8qKlxuICogRmluZHMgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9ucyBpbiBzdHIgYW5kIGNvbnZlcnQgYWxsIHRvXG4gKiB0aGVpciByZXNwZWN0aXZlIGNoYXJhY3RlcnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmV4cG9ydHMuc3RyVG9DaGFycyA9IGZ1bmN0aW9uKHN0cikge1xuICB2YXIgY2hhcnNfcmVnZXggPSAvKFxcW1xcXFxiXFxdKXxcXFxcKD86dShbQS1GMC05XXs0fSl8eChbQS1GMC05XXsyfSl8KDA/WzAtN117Mn0pfGMoW0BBLVpcXFtcXFxcXFxdXFxeP10pfChbMHRudmZyXSkpL2c7XG4gIHN0ciA9IHN0ci5yZXBsYWNlKGNoYXJzX3JlZ2V4LCBmdW5jdGlvbihzLCBiLCBhMTYsIGIxNiwgYzgsIGRjdHJsLCBlc2xzaCkge1xuICAgIHZhciBjb2RlID0gYiAgICAgPyA4IDpcbiAgICAgICAgICAgICAgIGExNiAgID8gcGFyc2VJbnQoYTE2LCAxNikgOlxuICAgICAgICAgICAgICAgYjE2ICAgPyBwYXJzZUludChiMTYsIDE2KSA6XG4gICAgICAgICAgICAgICBjOCAgICA/IHBhcnNlSW50KGM4LCAgIDgpIDpcbiAgICAgICAgICAgICAgIGRjdHJsID8gQ1RSTC5pbmRleE9mKGRjdHJsKSA6XG4gICAgICAgICAgICAgICBlc2xzaCA/IFNMU0hbZXNsc2hdIDogdW5kZWZpbmVkO1xuICAgIFxuICAgIHZhciBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcblxuICAgIC8vIEVzY2FwZSBzcGVjaWFsIHJlZ2V4IGNoYXJhY3RlcnMuXG4gICAgaWYgKC9bXFxbXFxde31cXF4kLnw/KisoKV0vLnRlc3QoYykpIHtcbiAgICAgIGMgPSAnXFxcXCcgKyBjO1xuICAgIH1cblxuICAgIHJldHVybiBjO1xuICB9KTtcblxuICByZXR1cm4gc3RyO1xufTtcblxuXG4vKipcbiAqIHR1cm5zIGNsYXNzIGludG8gdG9rZW5zXG4gKiByZWFkcyBzdHIgdW50aWwgaXQgZW5jb3VudGVycyBhIF0gbm90IHByZWNlZWRlZCBieSBhIFxcXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHBhcmFtIHtTdHJpbmd9IHJlZ2V4cFN0clxuICogQHJldHVybiB7QXJyYXkuPEFycmF5LjxPYmplY3Q+LCBOdW1iZXI+fVxuICovXG5leHBvcnRzLnRva2VuaXplQ2xhc3MgPSBmdW5jdGlvbihzdHIsIHJlZ2V4cFN0cikge1xuICB2YXIgdG9rZW5zID0gW11cbiAgICAsIHJlZ2V4cCA9IC9cXFxcKD86KHcpfChkKXwocyl8KFcpfChEKXwoUykpfCgoPzooPzpcXFxcKSguKXwoW15cXF1cXFxcXSkpLSg/OlxcXFwpPyhbXlxcXV0pKXwoXFxdKXwoPzpcXFxcKT8oLikvZ1xuICAgICwgcnMsIGNcbiAgICA7XG5cblxuICB3aGlsZSAoKHJzID0gcmVnZXhwLmV4ZWMoc3RyKSkgIT0gbnVsbCkge1xuICAgIGlmIChyc1sxXSkge1xuICAgICAgdG9rZW5zLnB1c2goc2V0cy53b3JkcygpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbMl0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMuaW50cygpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbM10pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMud2hpdGVzcGFjZSgpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbNF0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMubm90V29yZHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzVdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLm5vdEludHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzZdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLm5vdFdoaXRlc3BhY2UoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzddKSB7XG4gICAgICB0b2tlbnMucHVzaCh7XG4gICAgICAgICAgdHlwZTogdHlwZXMuUkFOR0VcbiAgICAgICAgLCBmcm9tOiAocnNbOF0gfHwgcnNbOV0pLmNoYXJDb2RlQXQoMClcbiAgICAgICAgLCAgIHRvOiByc1sxMF0uY2hhckNvZGVBdCgwKVxuICAgICAgfSk7XG5cbiAgICB9IGVsc2UgaWYgKGMgPSByc1sxMl0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiB0eXBlcy5DSEFSXG4gICAgICAgICwgdmFsdWU6IGMuY2hhckNvZGVBdCgwKVxuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt0b2tlbnMsIHJlZ2V4cC5sYXN0SW5kZXhdO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydHMuZXJyb3IocmVnZXhwU3RyLCAnVW50ZXJtaW5hdGVkIGNoYXJhY3RlciBjbGFzcycpO1xufTtcblxuXG4vKipcbiAqIFNob3J0Y3V0IHRvIHRocm93IGVycm9ycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcmVnZXhwXG4gKiBAcGFyYW0ge1N0cmluZ30gbXNnXG4gKi9cbmV4cG9ydHMuZXJyb3IgPSBmdW5jdGlvbihyZWdleHAsIG1zZykge1xuICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ0ludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiAvJyArIHJlZ2V4cCArICcvOiAnICsgbXNnKTtcbn07XG4iLCIvKiEgTmF0aXZlIFByb21pc2UgT25seVxuICAgIHYwLjcuOC1hIChjKSBLeWxlIFNpbXBzb25cbiAgICBNSVQgTGljZW5zZTogaHR0cDovL2dldGlmeS5taXQtbGljZW5zZS5vcmdcbiovXG4hZnVuY3Rpb24odCxuLGUpe25bdF09blt0XXx8ZSgpLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPW5bdF06XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoZnVuY3Rpb24oKXtyZXR1cm4gblt0XX0pfShcIlByb21pc2VcIixcInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDp0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gdCh0LG4pe2wuYWRkKHQsbiksaHx8KGg9eShsLmRyYWluKSl9ZnVuY3Rpb24gbih0KXt2YXIgbixlPXR5cGVvZiB0O3JldHVybiBudWxsPT10fHxcIm9iamVjdFwiIT1lJiZcImZ1bmN0aW9uXCIhPWV8fChuPXQudGhlbiksXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOiExfWZ1bmN0aW9uIGUoKXtmb3IodmFyIHQ9MDt0PHRoaXMuY2hhaW4ubGVuZ3RoO3QrKylvKHRoaXMsMT09PXRoaXMuc3RhdGU/dGhpcy5jaGFpblt0XS5zdWNjZXNzOnRoaXMuY2hhaW5bdF0uZmFpbHVyZSx0aGlzLmNoYWluW3RdKTt0aGlzLmNoYWluLmxlbmd0aD0wfWZ1bmN0aW9uIG8odCxlLG8pe3ZhciByLGk7dHJ5e2U9PT0hMT9vLnJlamVjdCh0Lm1zZyk6KHI9ZT09PSEwP3QubXNnOmUuY2FsbCh2b2lkIDAsdC5tc2cpLHI9PT1vLnByb21pc2U/by5yZWplY3QoVHlwZUVycm9yKFwiUHJvbWlzZS1jaGFpbiBjeWNsZVwiKSk6KGk9bihyKSk/aS5jYWxsKHIsby5yZXNvbHZlLG8ucmVqZWN0KTpvLnJlc29sdmUocikpfWNhdGNoKGMpe28ucmVqZWN0KGMpfX1mdW5jdGlvbiByKG8pe3ZhciBjLHUsYT10aGlzO2lmKCFhLnRyaWdnZXJlZCl7YS50cmlnZ2VyZWQ9ITAsYS5kZWYmJihhPWEuZGVmKTt0cnl7KGM9bihvKSk/KHU9bmV3IGYoYSksYy5jYWxsKG8sZnVuY3Rpb24oKXtyLmFwcGx5KHUsYXJndW1lbnRzKX0sZnVuY3Rpb24oKXtpLmFwcGx5KHUsYXJndW1lbnRzKX0pKTooYS5tc2c9byxhLnN0YXRlPTEsYS5jaGFpbi5sZW5ndGg+MCYmdChlLGEpKX1jYXRjaChzKXtpLmNhbGwodXx8bmV3IGYoYSkscyl9fX1mdW5jdGlvbiBpKG4pe3ZhciBvPXRoaXM7by50cmlnZ2VyZWR8fChvLnRyaWdnZXJlZD0hMCxvLmRlZiYmKG89by5kZWYpLG8ubXNnPW4sby5zdGF0ZT0yLG8uY2hhaW4ubGVuZ3RoPjAmJnQoZSxvKSl9ZnVuY3Rpb24gYyh0LG4sZSxvKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKykhZnVuY3Rpb24ocil7dC5yZXNvbHZlKG5bcl0pLnRoZW4oZnVuY3Rpb24odCl7ZShyLHQpfSxvKX0ocil9ZnVuY3Rpb24gZih0KXt0aGlzLmRlZj10LHRoaXMudHJpZ2dlcmVkPSExfWZ1bmN0aW9uIHUodCl7dGhpcy5wcm9taXNlPXQsdGhpcy5zdGF0ZT0wLHRoaXMudHJpZ2dlcmVkPSExLHRoaXMuY2hhaW49W10sdGhpcy5tc2c9dm9pZCAwfWZ1bmN0aW9uIGEobil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtpZigwIT09dGhpcy5fX05QT19fKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIHByb21pc2VcIik7dGhpcy5fX05QT19fPTE7dmFyIG89bmV3IHUodGhpcyk7dGhpcy50aGVuPWZ1bmN0aW9uKG4scil7dmFyIGk9e3N1Y2Nlc3M6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOiEwLGZhaWx1cmU6XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOiExfTtyZXR1cm4gaS5wcm9taXNlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdHx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtpLnJlc29sdmU9dCxpLnJlamVjdD1ufSksby5jaGFpbi5wdXNoKGkpLDAhPT1vLnN0YXRlJiZ0KGUsbyksaS5wcm9taXNlfSx0aGlzW1wiY2F0Y2hcIl09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9O3RyeXtuLmNhbGwodm9pZCAwLGZ1bmN0aW9uKHQpe3IuY2FsbChvLHQpfSxmdW5jdGlvbih0KXtpLmNhbGwobyx0KX0pfWNhdGNoKGMpe2kuY2FsbChvLGMpfX12YXIgcyxoLGwscD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHk9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNldEltbWVkaWF0ZT9mdW5jdGlvbih0KXtyZXR1cm4gc2V0SW1tZWRpYXRlKHQpfTpzZXRUaW1lb3V0O3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sXCJ4XCIse30pLHM9ZnVuY3Rpb24odCxuLGUsbyl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4se3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOm8hPT0hMX0pfX1jYXRjaChkKXtzPWZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gdFtuXT1lLHR9fWw9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsbil7dGhpcy5mbj10LHRoaXMuc2VsZj1uLHRoaXMubmV4dD12b2lkIDB9dmFyIG4sZSxvO3JldHVybnthZGQ6ZnVuY3Rpb24ocixpKXtvPW5ldyB0KHIsaSksZT9lLm5leHQ9bzpuPW8sZT1vLG89dm9pZCAwfSxkcmFpbjpmdW5jdGlvbigpe3ZhciB0PW47Zm9yKG49ZT1oPXZvaWQgMDt0Oyl0LmZuLmNhbGwodC5zZWxmKSx0PXQubmV4dH19fSgpO3ZhciBnPXMoe30sXCJjb25zdHJ1Y3RvclwiLGEsITEpO3JldHVybiBhLnByb3RvdHlwZT1nLHMoZyxcIl9fTlBPX19cIiwwLCExKSxzKGEsXCJyZXNvbHZlXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gdCYmXCJvYmplY3RcIj09dHlwZW9mIHQmJjE9PT10Ll9fTlBPX18/dDpuZXcgbihmdW5jdGlvbihuLGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG58fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgZnVuY3Rpb25cIik7bih0KX0pfSkscyhhLFwicmVqZWN0XCIsZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB0aGlzKGZ1bmN0aW9uKG4sZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtlKHQpfSl9KSxzKGEsXCJhbGxcIixmdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVyblwiW29iamVjdCBBcnJheV1cIiE9cC5jYWxsKHQpP24ucmVqZWN0KFR5cGVFcnJvcihcIk5vdCBhbiBhcnJheVwiKSk6MD09PXQubGVuZ3RoP24ucmVzb2x2ZShbXSk6bmV3IG4oZnVuY3Rpb24oZSxvKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBvKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIGZ1bmN0aW9uXCIpO3ZhciByPXQubGVuZ3RoLGk9QXJyYXkociksZj0wO2Mobix0LGZ1bmN0aW9uKHQsbil7aVt0XT1uLCsrZj09PXImJmUoaSl9LG8pfSl9KSxzKGEsXCJyYWNlXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm5cIltvYmplY3QgQXJyYXldXCIhPXAuY2FsbCh0KT9uLnJlamVjdChUeXBlRXJyb3IoXCJOb3QgYW4gYXJyYXlcIikpOm5ldyBuKGZ1bmN0aW9uKGUsbyl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZXx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbyl0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtjKG4sdCxmdW5jdGlvbih0LG4pe2Uobil9LG8pfSl9KSxhfSk7XG4iLCIvKiFcbiAqIENvcHlyaWdodCAoYykgMjAxNSBDaHJpcyBPJ0hhcmEgPGNvaGFyYTg3QGdtYWlsLmNvbT5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiAqIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuICogXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbiAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0b1xuICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlXG4gKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuICogT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4oZnVuY3Rpb24gKG5hbWUsIGRlZmluaXRpb24pIHtcbiAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gZGVmaW5pdGlvbigpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgZGVmaW5lKGRlZmluaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXNbbmFtZV0gPSBkZWZpbml0aW9uKCk7XG4gICAgfVxufSkoJ3ZhbGlkYXRvcicsIGZ1bmN0aW9uICh2YWxpZGF0b3IpIHtcblxuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhbGlkYXRvciA9IHsgdmVyc2lvbjogJzMuNDAuMCcgfTtcblxuICAgIHZhciBlbWFpbFVzZXIgPSAvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXSl8KFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGQtXFx4N2ZdKSkpKigoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oXFx4MjIpKSkkL2k7XG5cbiAgICB2YXIgZW1haWxVc2VyVXRmOCA9IC9eKCgoW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKyhcXC4oW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKykqKXwoKFxceDIyKSgoKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KChbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHg3Zl18XFx4MjF8W1xceDIzLVxceDViXXxbXFx4NWQtXFx4N2VdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoXFxcXChbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGQtXFx4N2ZdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpKSooKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KFxceDIyKSkpJC9pO1xuXG4gICAgdmFyIGRpc3BsYXlOYW1lID0gL14oPzpbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XFwuXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKD86W2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9flxcLl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl18XFxzKSo8KC4rKT4kL2k7XG5cbiAgICB2YXIgY3JlZGl0Q2FyZCA9IC9eKD86NFswLTldezEyfSg/OlswLTldezN9KT98NVsxLTVdWzAtOV17MTR9fDYoPzowMTF8NVswLTldWzAtOV0pWzAtOV17MTJ9fDNbNDddWzAtOV17MTN9fDMoPzowWzAtNV18WzY4XVswLTldKVswLTldezExfXwoPzoyMTMxfDE4MDB8MzVcXGR7M30pXFxkezExfSkkLztcblxuICAgIHZhciBpc2luID0gL15bQS1aXXsyfVswLTlBLVpdezl9WzAtOV0kLztcblxuICAgIHZhciBpc2JuMTBNYXliZSA9IC9eKD86WzAtOV17OX1YfFswLTldezEwfSkkL1xuICAgICAgLCBpc2JuMTNNYXliZSA9IC9eKD86WzAtOV17MTN9KSQvO1xuXG4gICAgdmFyIGlwdjRNYXliZSA9IC9eKFxcZCspXFwuKFxcZCspXFwuKFxcZCspXFwuKFxcZCspJC9cbiAgICAgICwgaXB2NkJsb2NrID0gL15bMC05QS1GXXsxLDR9JC9pO1xuXG4gICAgdmFyIHV1aWQgPSB7XG4gICAgICAgICczJzogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS0zWzAtOUEtRl17M30tWzAtOUEtRl17NH0tWzAtOUEtRl17MTJ9JC9pXG4gICAgICAsICc0JzogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS00WzAtOUEtRl17M30tWzg5QUJdWzAtOUEtRl17M30tWzAtOUEtRl17MTJ9JC9pXG4gICAgICAsICc1JzogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS01WzAtOUEtRl17M30tWzg5QUJdWzAtOUEtRl17M30tWzAtOUEtRl17MTJ9JC9pXG4gICAgICAsIGFsbDogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS1bMC05QS1GXXs0fS1bMC05QS1GXXs0fS1bMC05QS1GXXsxMn0kL2lcbiAgICB9O1xuXG4gICAgdmFyIGFscGhhID0gL15bQS1aXSskL2lcbiAgICAgICwgYWxwaGFudW1lcmljID0gL15bMC05QS1aXSskL2lcbiAgICAgICwgbnVtZXJpYyA9IC9eWy0rXT9bMC05XSskL1xuICAgICAgLCBpbnQgPSAvXig/OlstK10/KD86MHxbMS05XVswLTldKikpJC9cbiAgICAgICwgZmxvYXQgPSAvXig/OlstK10/KD86WzAtOV0rKSk/KD86XFwuWzAtOV0qKT8oPzpbZUVdW1xcK1xcLV0/KD86WzAtOV0rKSk/JC9cbiAgICAgICwgaGV4YWRlY2ltYWwgPSAvXlswLTlBLUZdKyQvaVxuICAgICAgLCBoZXhjb2xvciA9IC9eIz8oWzAtOUEtRl17M318WzAtOUEtRl17Nn0pJC9pO1xuXG4gICAgdmFyIGFzY2lpID0gL15bXFx4MDAtXFx4N0ZdKyQvXG4gICAgICAsIG11bHRpYnl0ZSA9IC9bXlxceDAwLVxceDdGXS9cbiAgICAgICwgZnVsbFdpZHRoID0gL1teXFx1MDAyMC1cXHUwMDdFXFx1RkY2MS1cXHVGRjlGXFx1RkZBMC1cXHVGRkRDXFx1RkZFOC1cXHVGRkVFMC05YS16QS1aXS9cbiAgICAgICwgaGFsZldpZHRoID0gL1tcXHUwMDIwLVxcdTAwN0VcXHVGRjYxLVxcdUZGOUZcXHVGRkEwLVxcdUZGRENcXHVGRkU4LVxcdUZGRUUwLTlhLXpBLVpdLztcblxuICAgIHZhciBzdXJyb2dhdGVQYWlyID0gL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vO1xuXG4gICAgdmFyIGJhc2U2NCA9IC9eKD86W0EtWjAtOStcXC9dezR9KSooPzpbQS1aMC05K1xcL117Mn09PXxbQS1aMC05K1xcL117M309fFtBLVowLTkrXFwvXXs0fSkkL2k7XG5cbiAgICB2YXIgcGhvbmVzID0ge1xuICAgICAgJ3poLUNOJzogL14oXFwrPzA/ODZcXC0/KT8xWzM0NTc4OV1cXGR7OX0kLyxcbiAgICAgICdlbi1aQSc6IC9eKFxcKz8yN3wwKVxcZHs5fSQvLFxuICAgICAgJ2VuLUFVJzogL14oXFwrPzYxfDApNFxcZHs4fSQvLFxuICAgICAgJ2VuLUhLJzogL14oXFwrPzg1MlxcLT8pP1s1NjldXFxkezN9XFwtP1xcZHs0fSQvLFxuICAgICAgJ2ZyLUZSJzogL14oXFwrPzMzfDApWzY3XVxcZHs4fSQvLFxuICAgICAgJ3B0LVBUJzogL14oXFwrMzUxKT85WzEyMzZdXFxkezd9JC8sXG4gICAgICAnZWwtR1InOiAvXihcXCszMCk/KCgyXFxkezl9KXwoNjlcXGR7OH0pKSQvLFxuICAgICAgJ2VuLUdCJzogL14oXFwrPzQ0fDApN1xcZHs5fSQvLFxuICAgICAgJ2VuLVVTJzogL14oXFwrPzEpP1syLTldXFxkezJ9WzItOV0oPyExMSlcXGR7Nn0kLyxcbiAgICAgICdlbi1aTSc6IC9eKFxcKzI2KT8wOVs1NjddXFxkezd9JC9cbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmV4dGVuZCA9IGZ1bmN0aW9uIChuYW1lLCBmbikge1xuICAgICAgICB2YWxpZGF0b3JbbmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBhcmdzWzBdID0gdmFsaWRhdG9yLnRvU3RyaW5nKGFyZ3NbMF0pO1xuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHZhbGlkYXRvciwgYXJncyk7XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIC8vUmlnaHQgYmVmb3JlIGV4cG9ydGluZyB0aGUgdmFsaWRhdG9yIG9iamVjdCwgcGFzcyBlYWNoIG9mIHRoZSBidWlsdGluc1xuICAgIC8vdGhyb3VnaCBleHRlbmQoKSBzbyB0aGF0IHRoZWlyIGZpcnN0IGFyZ3VtZW50IGlzIGNvZXJjZWQgdG8gYSBzdHJpbmdcbiAgICB2YWxpZGF0b3IuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yICh2YXIgbmFtZSBpbiB2YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsaWRhdG9yW25hbWVdICE9PSAnZnVuY3Rpb24nIHx8IG5hbWUgPT09ICd0b1N0cmluZycgfHxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSA9PT0gJ3RvRGF0ZScgfHwgbmFtZSA9PT0gJ2V4dGVuZCcgfHwgbmFtZSA9PT0gJ2luaXQnKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWxpZGF0b3IuZXh0ZW5kKG5hbWUsIHZhbGlkYXRvcltuYW1lXSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRvU3RyaW5nID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnICYmIGlucHV0ICE9PSBudWxsICYmIGlucHV0LnRvU3RyaW5nKSB7XG4gICAgICAgICAgICBpbnB1dCA9IGlucHV0LnRvU3RyaW5nKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT09IG51bGwgfHwgdHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCAoaXNOYU4oaW5wdXQpICYmICFpbnB1dC5sZW5ndGgpKSB7XG4gICAgICAgICAgICBpbnB1dCA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlucHV0ICs9ICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRvRGF0ZSA9IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZGF0ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICAgIH1cbiAgICAgICAgZGF0ZSA9IERhdGUucGFyc2UoZGF0ZSk7XG4gICAgICAgIHJldHVybiAhaXNOYU4oZGF0ZSkgPyBuZXcgRGF0ZShkYXRlKSA6IG51bGw7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50b0Zsb2F0ID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IudG9JbnQgPSBmdW5jdGlvbiAoc3RyLCByYWRpeCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoc3RyLCByYWRpeCB8fCAxMCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50b0Jvb2xlYW4gPSBmdW5jdGlvbiAoc3RyLCBzdHJpY3QpIHtcbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ciA9PT0gJzEnIHx8IHN0ciA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIgIT09ICcwJyAmJiBzdHIgIT09ICdmYWxzZScgJiYgc3RyICE9PSAnJztcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmVxdWFscyA9IGZ1bmN0aW9uIChzdHIsIGNvbXBhcmlzb24pIHtcbiAgICAgICAgcmV0dXJuIHN0ciA9PT0gdmFsaWRhdG9yLnRvU3RyaW5nKGNvbXBhcmlzb24pO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuY29udGFpbnMgPSBmdW5jdGlvbiAoc3RyLCBlbGVtKSB7XG4gICAgICAgIHJldHVybiBzdHIuaW5kZXhPZih2YWxpZGF0b3IudG9TdHJpbmcoZWxlbSkpID49IDA7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5tYXRjaGVzID0gZnVuY3Rpb24gKHN0ciwgcGF0dGVybiwgbW9kaWZpZXJzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocGF0dGVybikgIT09ICdbb2JqZWN0IFJlZ0V4cF0nKSB7XG4gICAgICAgICAgICBwYXR0ZXJuID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCBtb2RpZmllcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRfZW1haWxfb3B0aW9ucyA9IHtcbiAgICAgICAgYWxsb3dfZGlzcGxheV9uYW1lOiBmYWxzZSxcbiAgICAgICAgYWxsb3dfdXRmOF9sb2NhbF9wYXJ0OiB0cnVlLFxuICAgICAgICByZXF1aXJlX3RsZDogdHJ1ZVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNFbWFpbCA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfZW1haWxfb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfZGlzcGxheV9uYW1lKSB7XG4gICAgICAgICAgICB2YXIgZGlzcGxheV9lbWFpbCA9IHN0ci5tYXRjaChkaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICBpZiAoZGlzcGxheV9lbWFpbCkge1xuICAgICAgICAgICAgICAgIHN0ciA9IGRpc3BsYXlfZW1haWxbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoL1xccy8udGVzdChzdHIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoJ0AnKVxuICAgICAgICAgICwgZG9tYWluID0gcGFydHMucG9wKClcbiAgICAgICAgICAsIHVzZXIgPSBwYXJ0cy5qb2luKCdAJyk7XG5cbiAgICAgICAgaWYgKCF2YWxpZGF0b3IuaXNGUUROKGRvbWFpbiwge3JlcXVpcmVfdGxkOiBvcHRpb25zLnJlcXVpcmVfdGxkfSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zLmFsbG93X3V0ZjhfbG9jYWxfcGFydCA/XG4gICAgICAgICAgICBlbWFpbFVzZXJVdGY4LnRlc3QodXNlcikgOlxuICAgICAgICAgICAgZW1haWxVc2VyLnRlc3QodXNlcik7XG4gICAgfTtcblxuICAgIHZhciBkZWZhdWx0X3VybF9vcHRpb25zID0ge1xuICAgICAgICBwcm90b2NvbHM6IFsgJ2h0dHAnLCAnaHR0cHMnLCAnZnRwJyBdXG4gICAgICAsIHJlcXVpcmVfdGxkOiB0cnVlXG4gICAgICAsIHJlcXVpcmVfcHJvdG9jb2w6IGZhbHNlXG4gICAgICAsIGFsbG93X3VuZGVyc2NvcmVzOiBmYWxzZVxuICAgICAgLCBhbGxvd190cmFpbGluZ19kb3Q6IGZhbHNlXG4gICAgICAsIGFsbG93X3Byb3RvY29sX3JlbGF0aXZlX3VybHM6IGZhbHNlXG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc1VSTCA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCF1cmwgfHwgdXJsLmxlbmd0aCA+PSAyMDgzIHx8IC9cXHMvLnRlc3QodXJsKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1cmwuaW5kZXhPZignbWFpbHRvOicpID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfdXJsX29wdGlvbnMpO1xuICAgICAgICB2YXIgcHJvdG9jb2wsIGF1dGgsIGhvc3QsIGhvc3RuYW1lLCBwb3J0LFxuICAgICAgICAgICAgcG9ydF9zdHIsIHNwbGl0O1xuICAgICAgICBzcGxpdCA9IHVybC5zcGxpdCgnOi8vJyk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBwcm90b2NvbCA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wcm90b2NvbHMuaW5kZXhPZihwcm90b2NvbCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMucmVxdWlyZV9wcm90b2NvbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9ICBlbHNlIGlmIChvcHRpb25zLmFsbG93X3Byb3RvY29sX3JlbGF0aXZlX3VybHMgJiYgdXJsLnN1YnN0cigwLCAyKSA9PT0gJy8vJykge1xuICAgICAgICAgICAgc3BsaXRbMF0gPSB1cmwuc3Vic3RyKDIpO1xuICAgICAgICB9XG4gICAgICAgIHVybCA9IHNwbGl0LmpvaW4oJzovLycpO1xuICAgICAgICBzcGxpdCA9IHVybC5zcGxpdCgnIycpO1xuICAgICAgICB1cmwgPSBzcGxpdC5zaGlmdCgpO1xuXG4gICAgICAgIHNwbGl0ID0gdXJsLnNwbGl0KCc/Jyk7XG4gICAgICAgIHVybCA9IHNwbGl0LnNoaWZ0KCk7XG5cbiAgICAgICAgc3BsaXQgPSB1cmwuc3BsaXQoJy8nKTtcbiAgICAgICAgdXJsID0gc3BsaXQuc2hpZnQoKTtcbiAgICAgICAgc3BsaXQgPSB1cmwuc3BsaXQoJ0AnKTtcbiAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGF1dGggPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICAgICAgaWYgKGF1dGguaW5kZXhPZignOicpID49IDAgJiYgYXV0aC5zcGxpdCgnOicpLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaG9zdG5hbWUgPSBzcGxpdC5qb2luKCdAJyk7XG4gICAgICAgIHNwbGl0ID0gaG9zdG5hbWUuc3BsaXQoJzonKTtcbiAgICAgICAgaG9zdCA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBvcnRfc3RyID0gc3BsaXQuam9pbignOicpO1xuICAgICAgICAgICAgcG9ydCA9IHBhcnNlSW50KHBvcnRfc3RyLCAxMCk7XG4gICAgICAgICAgICBpZiAoIS9eWzAtOV0rJC8udGVzdChwb3J0X3N0cikgfHwgcG9ydCA8PSAwIHx8IHBvcnQgPiA2NTUzNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRvci5pc0lQKGhvc3QpICYmICF2YWxpZGF0b3IuaXNGUUROKGhvc3QsIG9wdGlvbnMpICYmXG4gICAgICAgICAgICAgICAgaG9zdCAhPT0gJ2xvY2FsaG9zdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5ob3N0X3doaXRlbGlzdCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnMuaG9zdF93aGl0ZWxpc3QuaW5kZXhPZihob3N0KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5ob3N0X2JsYWNrbGlzdCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnMuaG9zdF9ibGFja2xpc3QuaW5kZXhPZihob3N0KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSVAgPSBmdW5jdGlvbiAoc3RyLCB2ZXJzaW9uKSB7XG4gICAgICAgIHZlcnNpb24gPSB2YWxpZGF0b3IudG9TdHJpbmcodmVyc2lvbik7XG4gICAgICAgIGlmICghdmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0lQKHN0ciwgNCkgfHwgdmFsaWRhdG9yLmlzSVAoc3RyLCA2KTtcbiAgICAgICAgfSBlbHNlIGlmICh2ZXJzaW9uID09PSAnNCcpIHtcbiAgICAgICAgICAgIGlmICghaXB2NE1heWJlLnRlc3Qoc3RyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgnLicpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYSAtIGI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBwYXJ0c1szXSA8PSAyNTU7XG4gICAgICAgIH0gZWxzZSBpZiAodmVyc2lvbiA9PT0gJzYnKSB7XG4gICAgICAgICAgICB2YXIgYmxvY2tzID0gc3RyLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICB2YXIgZm91bmRPbWlzc2lvbkJsb2NrID0gZmFsc2U7IC8vIG1hcmtlciB0byBpbmRpY2F0ZSA6OlxuXG4gICAgICAgICAgICBpZiAoYmxvY2tzLmxlbmd0aCA+IDgpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBpbml0aWFsIG9yIGZpbmFsIDo6XG4gICAgICAgICAgICBpZiAoc3RyID09PSAnOjonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0ci5zdWJzdHIoMCwgMikgPT09ICc6OicpIHtcbiAgICAgICAgICAgICAgICBibG9ja3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICBibG9ja3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICBmb3VuZE9taXNzaW9uQmxvY2sgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHIuc3Vic3RyKHN0ci5sZW5ndGggLSAyKSA9PT0gJzo6Jykge1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wb3AoKTtcbiAgICAgICAgICAgICAgICBibG9ja3MucG9wKCk7XG4gICAgICAgICAgICAgICAgZm91bmRPbWlzc2lvbkJsb2NrID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBibG9ja3MubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICAvLyB0ZXN0IGZvciBhIDo6IHdoaWNoIGNhbiBub3QgYmUgYXQgdGhlIHN0cmluZyBzdGFydC9lbmRcbiAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aG9zZSBjYXNlcyBoYXZlIGJlZW4gaGFuZGxlZCBhYm92ZVxuICAgICAgICAgICAgICAgIGlmIChibG9ja3NbaV0gPT09ICcnICYmIGkgPiAwICYmIGkgPCBibG9ja3MubGVuZ3RoIC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZE9taXNzaW9uQmxvY2spXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG11bHRpcGxlIDo6IGluIGFkZHJlc3NcbiAgICAgICAgICAgICAgICAgICAgZm91bmRPbWlzc2lvbkJsb2NrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpcHY2QmxvY2sudGVzdChibG9ja3NbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3VuZE9taXNzaW9uQmxvY2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2tzLmxlbmd0aCA+PSAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2tzLmxlbmd0aCA9PT0gODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIHZhciBkZWZhdWx0X2ZxZG5fb3B0aW9ucyA9IHtcbiAgICAgICAgcmVxdWlyZV90bGQ6IHRydWVcbiAgICAgICwgYWxsb3dfdW5kZXJzY29yZXM6IGZhbHNlXG4gICAgICAsIGFsbG93X3RyYWlsaW5nX2RvdDogZmFsc2VcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRlFETiA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfZnFkbl9vcHRpb25zKTtcblxuICAgICAgICAvKiBSZW1vdmUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIGRvdCBiZWZvcmUgY2hlY2tpbmcgdmFsaWRpdHkgKi9cbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfdHJhaWxpbmdfZG90ICYmIHN0cltzdHIubGVuZ3RoIC0gMV0gPT09ICcuJykge1xuICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChvcHRpb25zLnJlcXVpcmVfdGxkKSB7XG4gICAgICAgICAgICB2YXIgdGxkID0gcGFydHMucG9wKCk7XG4gICAgICAgICAgICBpZiAoIXBhcnRzLmxlbmd0aCB8fCAhL14oW2EtelxcdTAwYTEtXFx1ZmZmZl17Mix9fHhuW2EtejAtOS1dezIsfSkkL2kudGVzdCh0bGQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIHBhcnQsIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhcnQgPSBwYXJ0c1tpXTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFsbG93X3VuZGVyc2NvcmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnQuaW5kZXhPZignX18nKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFydCA9IHBhcnQucmVwbGFjZSgvXy9nLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIS9eW2EtelxcdTAwYTEtXFx1ZmZmZjAtOS1dKyQvaS50ZXN0KHBhcnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnRbMF0gPT09ICctJyB8fCBwYXJ0W3BhcnQubGVuZ3RoIC0gMV0gPT09ICctJyB8fFxuICAgICAgICAgICAgICAgICAgICBwYXJ0LmluZGV4T2YoJy0tLScpID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0Jvb2xlYW4gPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgICAgcmV0dXJuIChbJ3RydWUnLCAnZmFsc2UnLCAnMScsICcwJ10uaW5kZXhPZihzdHIpID49IDApO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNBbHBoYSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGFscGhhLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQWxwaGFudW1lcmljID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gYWxwaGFudW1lcmljLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTnVtZXJpYyA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIG51bWVyaWMudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNIZXhhZGVjaW1hbCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGhleGFkZWNpbWFsLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSGV4Q29sb3IgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBoZXhjb2xvci50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0xvd2VyY2FzZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN0ciA9PT0gc3RyLnRvTG93ZXJDYXNlKCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc1VwcGVyY2FzZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN0ciA9PT0gc3RyLnRvVXBwZXJDYXNlKCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0ludCA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIHJldHVybiBpbnQudGVzdChzdHIpICYmICghb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnbWluJykgfHwgc3RyID49IG9wdGlvbnMubWluKSAmJiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ21heCcpIHx8IHN0ciA8PSBvcHRpb25zLm1heCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0Zsb2F0ID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHN0ciAhPT0gJycgJiYgZmxvYXQudGVzdChzdHIpICYmICghb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnbWluJykgfHwgc3RyID49IG9wdGlvbnMubWluKSAmJiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ21heCcpIHx8IHN0ciA8PSBvcHRpb25zLm1heCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0RpdmlzaWJsZUJ5ID0gZnVuY3Rpb24gKHN0ciwgbnVtKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IudG9GbG9hdChzdHIpICUgdmFsaWRhdG9yLnRvSW50KG51bSkgPT09IDA7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc051bGwgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIubGVuZ3RoID09PSAwO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNMZW5ndGggPSBmdW5jdGlvbiAoc3RyLCBtaW4sIG1heCkge1xuICAgICAgICB2YXIgc3Vycm9nYXRlUGFpcnMgPSBzdHIubWF0Y2goL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vZykgfHwgW107XG4gICAgICAgIHZhciBsZW4gPSBzdHIubGVuZ3RoIC0gc3Vycm9nYXRlUGFpcnMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gbGVuID49IG1pbiAmJiAodHlwZW9mIG1heCA9PT0gJ3VuZGVmaW5lZCcgfHwgbGVuIDw9IG1heCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0J5dGVMZW5ndGggPSBmdW5jdGlvbiAoc3RyLCBtaW4sIG1heCkge1xuICAgICAgICByZXR1cm4gc3RyLmxlbmd0aCA+PSBtaW4gJiYgKHR5cGVvZiBtYXggPT09ICd1bmRlZmluZWQnIHx8IHN0ci5sZW5ndGggPD0gbWF4KTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzVVVJRCA9IGZ1bmN0aW9uIChzdHIsIHZlcnNpb24pIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSB1dWlkW3ZlcnNpb24gPyB2ZXJzaW9uIDogJ2FsbCddO1xuICAgICAgICByZXR1cm4gcGF0dGVybiAmJiBwYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRGF0ZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuICFpc05hTihEYXRlLnBhcnNlKHN0cikpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNBZnRlciA9IGZ1bmN0aW9uIChzdHIsIGRhdGUpIHtcbiAgICAgICAgdmFyIGNvbXBhcmlzb24gPSB2YWxpZGF0b3IudG9EYXRlKGRhdGUgfHwgbmV3IERhdGUoKSlcbiAgICAgICAgICAsIG9yaWdpbmFsID0gdmFsaWRhdG9yLnRvRGF0ZShzdHIpO1xuICAgICAgICByZXR1cm4gISEob3JpZ2luYWwgJiYgY29tcGFyaXNvbiAmJiBvcmlnaW5hbCA+IGNvbXBhcmlzb24pO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNCZWZvcmUgPSBmdW5jdGlvbiAoc3RyLCBkYXRlKSB7XG4gICAgICAgIHZhciBjb21wYXJpc29uID0gdmFsaWRhdG9yLnRvRGF0ZShkYXRlIHx8IG5ldyBEYXRlKCkpXG4gICAgICAgICAgLCBvcmlnaW5hbCA9IHZhbGlkYXRvci50b0RhdGUoc3RyKTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsICYmIGNvbXBhcmlzb24gJiYgb3JpZ2luYWwgPCBjb21wYXJpc29uO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNJbiA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob3B0aW9ucykgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICAgICAgICAgIHZhciBhcnJheSA9IFtdO1xuICAgICAgICAgICAgZm9yIChpIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHZhbGlkYXRvci50b1N0cmluZyhvcHRpb25zW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcnJheS5pbmRleE9mKHN0cikgPj0gMDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmhhc093blByb3BlcnR5KHN0cik7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pbmRleE9mKHN0cikgPj0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0NyZWRpdENhcmQgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHZhciBzYW5pdGl6ZWQgPSBzdHIucmVwbGFjZSgvW14wLTldKy9nLCAnJyk7XG4gICAgICAgIGlmICghY3JlZGl0Q2FyZC50ZXN0KHNhbml0aXplZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3VtID0gMCwgZGlnaXQsIHRtcE51bSwgc2hvdWxkRG91YmxlO1xuICAgICAgICBmb3IgKHZhciBpID0gc2FuaXRpemVkLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBkaWdpdCA9IHNhbml0aXplZC5zdWJzdHJpbmcoaSwgKGkgKyAxKSk7XG4gICAgICAgICAgICB0bXBOdW0gPSBwYXJzZUludChkaWdpdCwgMTApO1xuICAgICAgICAgICAgaWYgKHNob3VsZERvdWJsZSkge1xuICAgICAgICAgICAgICAgIHRtcE51bSAqPSAyO1xuICAgICAgICAgICAgICAgIGlmICh0bXBOdW0gPj0gMTApIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9ICgodG1wTnVtICUgMTApICsgMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IHRtcE51bTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaG91bGREb3VibGUgPSAhc2hvdWxkRG91YmxlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhISgoc3VtICUgMTApID09PSAwID8gc2FuaXRpemVkIDogZmFsc2UpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNJU0lOID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIWlzaW4udGVzdChzdHIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2hlY2tzdW1TdHIgPSBzdHIucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24oY2hhcmFjdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY2hhcmFjdGVyLCAzNik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBzdW0gPSAwLCBkaWdpdCwgdG1wTnVtLCBzaG91bGREb3VibGUgPSB0cnVlO1xuICAgICAgICBmb3IgKHZhciBpID0gY2hlY2tzdW1TdHIubGVuZ3RoIC0gMjsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGRpZ2l0ID0gY2hlY2tzdW1TdHIuc3Vic3RyaW5nKGksIChpICsgMSkpO1xuICAgICAgICAgICAgdG1wTnVtID0gcGFyc2VJbnQoZGlnaXQsIDEwKTtcbiAgICAgICAgICAgIGlmIChzaG91bGREb3VibGUpIHtcbiAgICAgICAgICAgICAgICB0bXBOdW0gKj0gMjtcbiAgICAgICAgICAgICAgICBpZiAodG1wTnVtID49IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW0gKyAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdW0gKz0gdG1wTnVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hvdWxkRG91YmxlID0gIXNob3VsZERvdWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZUludChzdHIuc3Vic3RyKHN0ci5sZW5ndGggLSAxKSwgMTApID09PSAoMTAwMDAgLSBzdW0pICUgMTA7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0lTQk4gPSBmdW5jdGlvbiAoc3RyLCB2ZXJzaW9uKSB7XG4gICAgICAgIHZlcnNpb24gPSB2YWxpZGF0b3IudG9TdHJpbmcodmVyc2lvbik7XG4gICAgICAgIGlmICghdmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0lTQk4oc3RyLCAxMCkgfHwgdmFsaWRhdG9yLmlzSVNCTihzdHIsIDEzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2FuaXRpemVkID0gc3RyLnJlcGxhY2UoL1tcXHMtXSsvZywgJycpXG4gICAgICAgICAgLCBjaGVja3N1bSA9IDAsIGk7XG4gICAgICAgIGlmICh2ZXJzaW9uID09PSAnMTAnKSB7XG4gICAgICAgICAgICBpZiAoIWlzYm4xME1heWJlLnRlc3Qoc2FuaXRpemVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspIHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bSArPSAoaSArIDEpICogc2FuaXRpemVkLmNoYXJBdChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzYW5pdGl6ZWQuY2hhckF0KDkpID09PSAnWCcpIHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bSArPSAxMCAqIDEwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bSArPSAxMCAqIHNhbml0aXplZC5jaGFyQXQoOSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKGNoZWNrc3VtICUgMTEpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhc2FuaXRpemVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgIGlmICh2ZXJzaW9uID09PSAnMTMnKSB7XG4gICAgICAgICAgICBpZiAoIWlzYm4xM01heWJlLnRlc3Qoc2FuaXRpemVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBmYWN0b3IgPSBbIDEsIDMgXTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gZmFjdG9yW2kgJSAyXSAqIHNhbml0aXplZC5jaGFyQXQoaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2FuaXRpemVkLmNoYXJBdCgxMikgLSAoKDEwIC0gKGNoZWNrc3VtICUgMTApKSAlIDEwKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXNhbml0aXplZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc01vYmlsZVBob25lID0gZnVuY3Rpb24oc3RyLCBsb2NhbGUpIHtcbiAgICAgICAgaWYgKGxvY2FsZSBpbiBwaG9uZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBwaG9uZXNbbG9jYWxlXS50ZXN0KHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICB2YXIgZGVmYXVsdF9jdXJyZW5jeV9vcHRpb25zID0ge1xuICAgICAgICBzeW1ib2w6ICckJ1xuICAgICAgLCByZXF1aXJlX3N5bWJvbDogZmFsc2VcbiAgICAgICwgYWxsb3dfc3BhY2VfYWZ0ZXJfc3ltYm9sOiBmYWxzZVxuICAgICAgLCBzeW1ib2xfYWZ0ZXJfZGlnaXRzOiBmYWxzZVxuICAgICAgLCBhbGxvd19uZWdhdGl2ZXM6IHRydWVcbiAgICAgICwgcGFyZW5zX2Zvcl9uZWdhdGl2ZXM6IGZhbHNlXG4gICAgICAsIG5lZ2F0aXZlX3NpZ25fYmVmb3JlX2RpZ2l0czogZmFsc2VcbiAgICAgICwgbmVnYXRpdmVfc2lnbl9hZnRlcl9kaWdpdHM6IGZhbHNlXG4gICAgICAsIGFsbG93X25lZ2F0aXZlX3NpZ25fcGxhY2Vob2xkZXI6IGZhbHNlXG4gICAgICAsIHRob3VzYW5kc19zZXBhcmF0b3I6ICcsJ1xuICAgICAgLCBkZWNpbWFsX3NlcGFyYXRvcjogJy4nXG4gICAgICAsIGFsbG93X3NwYWNlX2FmdGVyX2RpZ2l0czogZmFsc2VcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQ3VycmVuY3kgPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBtZXJnZShvcHRpb25zLCBkZWZhdWx0X2N1cnJlbmN5X29wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW5jeVJlZ2V4KG9wdGlvbnMpLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSlNPTiA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNNdWx0aWJ5dGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBtdWx0aWJ5dGUudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNBc2NpaSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGFzY2lpLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRnVsbFdpZHRoID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gZnVsbFdpZHRoLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSGFsZldpZHRoID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gaGFsZldpZHRoLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzVmFyaWFibGVXaWR0aCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGZ1bGxXaWR0aC50ZXN0KHN0cikgJiYgaGFsZldpZHRoLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzU3Vycm9nYXRlUGFpciA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN1cnJvZ2F0ZVBhaXIudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNCYXNlNjQgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBiYXNlNjQudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNNb25nb0lkID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzSGV4YWRlY2ltYWwoc3RyKSAmJiBzdHIubGVuZ3RoID09PSAyNDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmx0cmltID0gZnVuY3Rpb24gKHN0ciwgY2hhcnMpIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSBjaGFycyA/IG5ldyBSZWdFeHAoJ15bJyArIGNoYXJzICsgJ10rJywgJ2cnKSA6IC9eXFxzKy9nO1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UocGF0dGVybiwgJycpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IucnRyaW0gPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICB2YXIgcGF0dGVybiA9IGNoYXJzID8gbmV3IFJlZ0V4cCgnWycgKyBjaGFycyArICddKyQnLCAnZycpIDogL1xccyskL2c7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShwYXR0ZXJuLCAnJyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50cmltID0gZnVuY3Rpb24gKHN0ciwgY2hhcnMpIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSBjaGFycyA/IG5ldyBSZWdFeHAoJ15bJyArIGNoYXJzICsgJ10rfFsnICsgY2hhcnMgKyAnXSskJywgJ2cnKSA6IC9eXFxzK3xcXHMrJC9nO1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UocGF0dGVybiwgJycpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuZXNjYXBlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gKHN0ci5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiN4Mjc7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJyYjeDJGOycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxgL2csICcmIzk2OycpKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnN0cmlwTG93ID0gZnVuY3Rpb24gKHN0ciwga2VlcF9uZXdfbGluZXMpIHtcbiAgICAgICAgdmFyIGNoYXJzID0ga2VlcF9uZXdfbGluZXMgPyAnXFxcXHgwMC1cXFxceDA5XFxcXHgwQlxcXFx4MENcXFxceDBFLVxcXFx4MUZcXFxceDdGJyA6ICdcXFxceDAwLVxcXFx4MUZcXFxceDdGJztcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5ibGFja2xpc3Qoc3RyLCBjaGFycyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci53aGl0ZWxpc3QgPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cCgnW14nICsgY2hhcnMgKyAnXSsnLCAnZycpLCAnJyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5ibGFja2xpc3QgPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cCgnWycgKyBjaGFycyArICddKycsICdnJyksICcnKTtcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRfbm9ybWFsaXplX2VtYWlsX29wdGlvbnMgPSB7XG4gICAgICAgIGxvd2VyY2FzZTogdHJ1ZVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3Iubm9ybWFsaXplRW1haWwgPSBmdW5jdGlvbiAoZW1haWwsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfbm9ybWFsaXplX2VtYWlsX29wdGlvbnMpO1xuICAgICAgICBpZiAoIXZhbGlkYXRvci5pc0VtYWlsKGVtYWlsKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwYXJ0cyA9IGVtYWlsLnNwbGl0KCdAJywgMik7XG4gICAgICAgIHBhcnRzWzFdID0gcGFydHNbMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHBhcnRzWzFdID09PSAnZ21haWwuY29tJyB8fCBwYXJ0c1sxXSA9PT0gJ2dvb2dsZW1haWwuY29tJykge1xuICAgICAgICAgICAgcGFydHNbMF0gPSBwYXJ0c1swXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcLi9nLCAnJyk7XG4gICAgICAgICAgICBpZiAocGFydHNbMF1bMF0gPT09ICcrJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNbMF0uc3BsaXQoJysnKVswXTtcbiAgICAgICAgICAgIHBhcnRzWzFdID0gJ2dtYWlsLmNvbSc7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5sb3dlcmNhc2UpIHtcbiAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFydHMuam9pbignQCcpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtZXJnZShvYmosIGRlZmF1bHRzKSB7XG4gICAgICAgIG9iaiA9IG9iaiB8fCB7fTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGRlZmF1bHRzKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIG9ialtrZXldID0gZGVmYXVsdHNba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGN1cnJlbmN5UmVnZXgob3B0aW9ucykge1xuICAgICAgICB2YXIgc3ltYm9sID0gJyhcXFxcJyArIG9wdGlvbnMuc3ltYm9sLnJlcGxhY2UoL1xcLi9nLCAnXFxcXC4nKSArICcpJyArIChvcHRpb25zLnJlcXVpcmVfc3ltYm9sID8gJycgOiAnPycpXG4gICAgICAgICAgICAsIG5lZ2F0aXZlID0gJy0/J1xuICAgICAgICAgICAgLCB3aG9sZV9kb2xsYXJfYW1vdW50X3dpdGhvdXRfc2VwID0gJ1sxLTldXFxcXGQqJ1xuICAgICAgICAgICAgLCB3aG9sZV9kb2xsYXJfYW1vdW50X3dpdGhfc2VwID0gJ1sxLTldXFxcXGR7MCwyfShcXFxcJyArIG9wdGlvbnMudGhvdXNhbmRzX3NlcGFyYXRvciArICdcXFxcZHszfSkqJ1xuICAgICAgICAgICAgLCB2YWxpZF93aG9sZV9kb2xsYXJfYW1vdW50cyA9IFsnMCcsIHdob2xlX2RvbGxhcl9hbW91bnRfd2l0aG91dF9zZXAsIHdob2xlX2RvbGxhcl9hbW91bnRfd2l0aF9zZXBdXG4gICAgICAgICAgICAsIHdob2xlX2RvbGxhcl9hbW91bnQgPSAnKCcgKyB2YWxpZF93aG9sZV9kb2xsYXJfYW1vdW50cy5qb2luKCd8JykgKyAnKT8nXG4gICAgICAgICAgICAsIGRlY2ltYWxfYW1vdW50ID0gJyhcXFxcJyArIG9wdGlvbnMuZGVjaW1hbF9zZXBhcmF0b3IgKyAnXFxcXGR7Mn0pPyc7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gd2hvbGVfZG9sbGFyX2Ftb3VudCArIGRlY2ltYWxfYW1vdW50O1xuICAgICAgICAvLyBkZWZhdWx0IGlzIG5lZ2F0aXZlIHNpZ24gYmVmb3JlIHN5bWJvbCwgYnV0IHRoZXJlIGFyZSB0d28gb3RoZXIgb3B0aW9ucyAoYmVzaWRlcyBwYXJlbnMpXG4gICAgICAgIGlmIChvcHRpb25zLmFsbG93X25lZ2F0aXZlcyAmJiAhb3B0aW9ucy5wYXJlbnNfZm9yX25lZ2F0aXZlcykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMubmVnYXRpdmVfc2lnbl9hZnRlcl9kaWdpdHMpIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuICs9IG5lZ2F0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5uZWdhdGl2ZV9zaWduX2JlZm9yZV9kaWdpdHMpIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuID0gbmVnYXRpdmUgKyBwYXR0ZXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFNvdXRoIEFmcmljYW4gUmFuZCwgZm9yIGV4YW1wbGUsIHVzZXMgUiAxMjMgKHNwYWNlKSBhbmQgUi0xMjMgKG5vIHNwYWNlKVxuICAgICAgICBpZiAob3B0aW9ucy5hbGxvd19uZWdhdGl2ZV9zaWduX3BsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICBwYXR0ZXJuID0gJyggKD8hXFxcXC0pKT8nICsgcGF0dGVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zLmFsbG93X3NwYWNlX2FmdGVyX3N5bWJvbCkge1xuICAgICAgICAgICAgcGF0dGVybiA9ICcgPycgKyBwYXR0ZXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbnMuYWxsb3dfc3BhY2VfYWZ0ZXJfZGlnaXRzKSB7XG4gICAgICAgICAgICBwYXR0ZXJuICs9ICcoICg/ISQpKT8nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnN5bWJvbF9hZnRlcl9kaWdpdHMpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gKz0gc3ltYm9sO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0dGVybiA9IHN5bWJvbCArIHBhdHRlcm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfbmVnYXRpdmVzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wYXJlbnNfZm9yX25lZ2F0aXZlcykge1xuICAgICAgICAgICAgICAgIHBhdHRlcm4gPSAnKFxcXFwoJyArIHBhdHRlcm4gKyAnXFxcXCl8JyArIHBhdHRlcm4gKyAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghKG9wdGlvbnMubmVnYXRpdmVfc2lnbl9iZWZvcmVfZGlnaXRzIHx8IG9wdGlvbnMubmVnYXRpdmVfc2lnbl9hZnRlcl9kaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiA9IG5lZ2F0aXZlICsgcGF0dGVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeJyArXG4gICAgICAgICAgICAvLyBlbnN1cmUgdGhlcmUncyBhIGRvbGxhciBhbmQvb3IgZGVjaW1hbCBhbW91bnQsIGFuZCB0aGF0IGl0IGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIHNwYWNlIG9yIGEgbmVnYXRpdmUgc2lnbiBmb2xsb3dlZCBieSBhIHNwYWNlXG4gICAgICAgICAgICAnKD8hLT8gKSg/PS4qXFxcXGQpJyArXG4gICAgICAgICAgICBwYXR0ZXJuICtcbiAgICAgICAgICAgICckJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhbGlkYXRvci5pbml0KCk7XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yO1xuXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblxuICAgIElOVkFMSURfVFlQRTogICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIHR5cGUgezB9IGJ1dCBmb3VuZCB0eXBlIHsxfVwiLFxuICAgIElOVkFMSURfRk9STUFUOiAgICAgICAgICAgICAgICAgICAgICAgICBcIk9iamVjdCBkaWRuJ3QgcGFzcyB2YWxpZGF0aW9uIGZvciBmb3JtYXQgezB9OiB7MX1cIixcbiAgICBFTlVNX01JU01BVENIOiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJObyBlbnVtIG1hdGNoIGZvcjogezB9XCIsXG4gICAgQU5ZX09GX01JU1NJTkc6ICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YSBkb2VzIG5vdCBtYXRjaCBhbnkgc2NoZW1hcyBmcm9tICdhbnlPZidcIixcbiAgICBPTkVfT0ZfTUlTU0lORzogICAgICAgICAgICAgICAgICAgICAgICAgXCJEYXRhIGRvZXMgbm90IG1hdGNoIGFueSBzY2hlbWFzIGZyb20gJ29uZU9mJ1wiLFxuICAgIE9ORV9PRl9NVUxUSVBMRTogICAgICAgICAgICAgICAgICAgICAgICBcIkRhdGEgaXMgdmFsaWQgYWdhaW5zdCBtb3JlIHRoYW4gb25lIHNjaGVtYSBmcm9tICdvbmVPZidcIixcbiAgICBOT1RfUEFTU0VEOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEYXRhIG1hdGNoZXMgc2NoZW1hIGZyb20gJ25vdCdcIixcblxuICAgIC8vIEFycmF5IGVycm9yc1xuICAgIEFSUkFZX0xFTkdUSF9TSE9SVDogICAgICAgICAgICAgICAgICAgICBcIkFycmF5IGlzIHRvbyBzaG9ydCAoezB9KSwgbWluaW11bSB7MX1cIixcbiAgICBBUlJBWV9MRU5HVEhfTE9ORzogICAgICAgICAgICAgICAgICAgICAgXCJBcnJheSBpcyB0b28gbG9uZyAoezB9KSwgbWF4aW11bSB7MX1cIixcbiAgICBBUlJBWV9VTklRVUU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnJheSBpdGVtcyBhcmUgbm90IHVuaXF1ZSAoaW5kZXhlcyB7MH0gYW5kIHsxfSlcIixcbiAgICBBUlJBWV9BRERJVElPTkFMX0lURU1TOiAgICAgICAgICAgICAgICAgXCJBZGRpdGlvbmFsIGl0ZW1zIG5vdCBhbGxvd2VkXCIsXG5cbiAgICAvLyBOdW1lcmljIGVycm9yc1xuICAgIE1VTFRJUExFX09GOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlIHswfSBpcyBub3QgYSBtdWx0aXBsZSBvZiB7MX1cIixcbiAgICBNSU5JTVVNOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZSB7MH0gaXMgbGVzcyB0aGFuIG1pbmltdW0gezF9XCIsXG4gICAgTUlOSU1VTV9FWENMVVNJVkU6ICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWUgezB9IGlzIGVxdWFsIG9yIGxlc3MgdGhhbiBleGNsdXNpdmUgbWluaW11bSB7MX1cIixcbiAgICBNQVhJTVVNOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZSB7MH0gaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gezF9XCIsXG4gICAgTUFYSU1VTV9FWENMVVNJVkU6ICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWUgezB9IGlzIGVxdWFsIG9yIGdyZWF0ZXIgdGhhbiBleGNsdXNpdmUgbWF4aW11bSB7MX1cIixcblxuICAgIC8vIE9iamVjdCBlcnJvcnNcbiAgICBPQkpFQ1RfUFJPUEVSVElFU19NSU5JTVVNOiAgICAgICAgICAgICAgXCJUb28gZmV3IHByb3BlcnRpZXMgZGVmaW5lZCAoezB9KSwgbWluaW11bSB7MX1cIixcbiAgICBPQkpFQ1RfUFJPUEVSVElFU19NQVhJTVVNOiAgICAgICAgICAgICAgXCJUb28gbWFueSBwcm9wZXJ0aWVzIGRlZmluZWQgKHswfSksIG1heGltdW0gezF9XCIsXG4gICAgT0JKRUNUX01JU1NJTkdfUkVRVUlSRURfUFJPUEVSVFk6ICAgICAgIFwiTWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eTogezB9XCIsXG4gICAgT0JKRUNUX0FERElUSU9OQUxfUFJPUEVSVElFUzogICAgICAgICAgIFwiQWRkaXRpb25hbCBwcm9wZXJ0aWVzIG5vdCBhbGxvd2VkOiB7MH1cIixcbiAgICBPQkpFQ1RfREVQRU5ERU5DWV9LRVk6ICAgICAgICAgICAgICAgICAgXCJEZXBlbmRlbmN5IGZhaWxlZCAtIGtleSBtdXN0IGV4aXN0OiB7MH0gKGR1ZSB0byBrZXk6IHsxfSlcIixcblxuICAgIC8vIFN0cmluZyBlcnJvcnNcbiAgICBNSU5fTEVOR1RIOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgaXMgdG9vIHNob3J0ICh7MH0gY2hhcnMpLCBtaW5pbXVtIHsxfVwiLFxuICAgIE1BWF9MRU5HVEg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN0cmluZyBpcyB0b28gbG9uZyAoezB9IGNoYXJzKSwgbWF4aW11bSB7MX1cIixcbiAgICBQQVRURVJOOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgZG9lcyBub3QgbWF0Y2ggcGF0dGVybiB7MH06IHsxfVwiLFxuXG4gICAgLy8gU2NoZW1hIHZhbGlkYXRpb24gZXJyb3JzXG4gICAgS0VZV09SRF9UWVBFX0VYUEVDVEVEOiAgICAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyBpcyBleHBlY3RlZCB0byBiZSBvZiB0eXBlICd7MX0nXCIsXG4gICAgS0VZV09SRF9VTkRFRklORURfU1RSSUNUOiAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyBtdXN0IGJlIGRlZmluZWQgaW4gc3RyaWN0IG1vZGVcIixcbiAgICBLRVlXT1JEX1VORVhQRUNURUQ6ICAgICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIGlzIG5vdCBleHBlY3RlZCB0byBhcHBlYXIgaW4gdGhlIHNjaGVtYVwiLFxuICAgIEtFWVdPUkRfTVVTVF9CRTogICAgICAgICAgICAgICAgICAgICAgICBcIktleXdvcmQgJ3swfScgbXVzdCBiZSB7MX1cIixcbiAgICBLRVlXT1JEX0RFUEVOREVOQ1k6ICAgICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIHJlcXVpcmVzIGtleXdvcmQgJ3sxfSdcIixcbiAgICBLRVlXT1JEX1BBVFRFUk46ICAgICAgICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIGlzIG5vdCBhIHZhbGlkIFJlZ0V4cCBwYXR0ZXJuOiB7MX1cIixcbiAgICBLRVlXT1JEX1ZBTFVFX1RZUEU6ICAgICAgICAgICAgICAgICAgICAgXCJFYWNoIGVsZW1lbnQgb2Yga2V5d29yZCAnezB9JyBhcnJheSBtdXN0IGJlIGEgJ3sxfSdcIixcbiAgICBVTktOT1dOX0ZPUk1BVDogICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVyZSBpcyBubyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBmb3JtYXQgJ3swfSdcIixcbiAgICBDVVNUT01fTU9ERV9GT1JDRV9QUk9QRVJUSUVTOiAgICAgICAgICAgXCJ7MH0gbXVzdCBkZWZpbmUgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGlmIHByZXNlbnRcIixcblxuICAgIC8vIFJlbW90ZSBlcnJvcnNcbiAgICBSRUZfVU5SRVNPTFZFRDogICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWZlcmVuY2UgaGFzIG5vdCBiZWVuIHJlc29sdmVkIGR1cmluZyBjb21waWxhdGlvbjogezB9XCIsXG4gICAgVU5SRVNPTFZBQkxFX1JFRkVSRU5DRTogICAgICAgICAgICAgICAgIFwiUmVmZXJlbmNlIGNvdWxkIG5vdCBiZSByZXNvbHZlZDogezB9XCIsXG4gICAgU0NIRU1BX05PVF9SRUFDSEFCTEU6ICAgICAgICAgICAgICAgICAgIFwiVmFsaWRhdG9yIHdhcyBub3QgYWJsZSB0byByZWFkIHNjaGVtYSB3aXRoIHVyaTogezB9XCIsXG4gICAgU0NIRU1BX1RZUEVfRVhQRUNURUQ6ICAgICAgICAgICAgICAgICAgIFwiU2NoZW1hIGlzIGV4cGVjdGVkIHRvIGJlIG9mIHR5cGUgJ29iamVjdCdcIixcbiAgICBTQ0hFTUFfTk9UX0FOX09CSkVDVDogICAgICAgICAgICAgICAgICAgXCJTY2hlbWEgaXMgbm90IGFuIG9iamVjdDogezB9XCIsXG4gICAgQVNZTkNfVElNRU9VVDogICAgICAgICAgICAgICAgICAgICAgICAgIFwiezB9IGFzeW5jaHJvbm91cyB0YXNrKHMpIGhhdmUgdGltZWQgb3V0IGFmdGVyIHsxfSBtc1wiLFxuICAgIFBBUkVOVF9TQ0hFTUFfVkFMSURBVElPTl9GQUlMRUQ6ICAgICAgICBcIlNjaGVtYSBmYWlsZWQgdG8gdmFsaWRhdGUgYWdhaW5zdCBpdHMgcGFyZW50IHNjaGVtYSwgc2VlIGlubmVyIGVycm9ycyBmb3IgZGV0YWlscy5cIixcbiAgICBSRU1PVEVfTk9UX1ZBTElEOiAgICAgICAgICAgICAgICAgICAgICAgXCJSZW1vdGUgcmVmZXJlbmNlIGRpZG4ndCBjb21waWxlIHN1Y2Nlc3NmdWxseTogezB9XCJcblxufTtcbiIsIi8qanNoaW50IG1heGxlbjogZmFsc2UqL1xuXG52YXIgdmFsaWRhdG9yID0gcmVxdWlyZShcInZhbGlkYXRvclwiKTtcblxudmFyIEZvcm1hdFZhbGlkYXRvcnMgPSB7XG4gICAgXCJkYXRlXCI6IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZnVsbC1kYXRlIGZyb20gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICAgICAgICB2YXIgbWF0Y2hlcyA9IC9eKFswLTldezR9KS0oWzAtOV17Mn0pLShbMC05XXsyfSkkLy5leGVjKGRhdGUpO1xuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHZhciB5ZWFyID0gbWF0Y2hlc1sxXTtcbiAgICAgICAgLy8gdmFyIG1vbnRoID0gbWF0Y2hlc1syXTtcbiAgICAgICAgLy8gdmFyIGRheSA9IG1hdGNoZXNbM107XG4gICAgICAgIGlmIChtYXRjaGVzWzJdIDwgXCIwMVwiIHx8IG1hdGNoZXNbMl0gPiBcIjEyXCIgfHwgbWF0Y2hlc1szXSA8IFwiMDFcIiB8fCBtYXRjaGVzWzNdID4gXCIzMVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBcImRhdGUtdGltZVwiOiBmdW5jdGlvbiAoZGF0ZVRpbWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRlVGltZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGF0ZS10aW1lIGZyb20gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICAgICAgICB2YXIgcyA9IGRhdGVUaW1lLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCJ0XCIpO1xuICAgICAgICBpZiAoIUZvcm1hdFZhbGlkYXRvcnMuZGF0ZShzWzBdKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtYXRjaGVzID0gL14oWzAtOV17Mn0pOihbMC05XXsyfSk6KFswLTldezJ9KSguWzAtOV0rKT8oenwoWystXVswLTldezJ9OlswLTldezJ9KSkkLy5leGVjKHNbMV0pO1xuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHZhciBob3VyID0gbWF0Y2hlc1sxXTtcbiAgICAgICAgLy8gdmFyIG1pbnV0ZSA9IG1hdGNoZXNbMl07XG4gICAgICAgIC8vIHZhciBzZWNvbmQgPSBtYXRjaGVzWzNdO1xuICAgICAgICAvLyB2YXIgZnJhY3Rpb24gPSBtYXRjaGVzWzRdO1xuICAgICAgICAvLyB2YXIgdGltZXpvbmUgPSBtYXRjaGVzWzVdO1xuICAgICAgICBpZiAobWF0Y2hlc1sxXSA+IFwiMjNcIiB8fCBtYXRjaGVzWzJdID4gXCI1OVwiIHx8IG1hdGNoZXNbM10gPiBcIjU5XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIFwiZW1haWxcIjogZnVuY3Rpb24gKGVtYWlsKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZW1haWwgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNFbWFpbChlbWFpbCwgeyBcInJlcXVpcmVfdGxkXCI6IHRydWUgfSk7XG4gICAgfSxcbiAgICBcImhvc3RuYW1lXCI6IGZ1bmN0aW9uIChob3N0bmFtZSkge1xuICAgICAgICBpZiAodHlwZW9mIGhvc3RuYW1lICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICAgICAgaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI2FuY2hvcjExNFxuICAgICAgICAgICAgQSBzdHJpbmcgaW5zdGFuY2UgaXMgdmFsaWQgYWdhaW5zdCB0aGlzIGF0dHJpYnV0ZSBpZiBpdCBpcyBhIHZhbGlkXG4gICAgICAgICAgICByZXByZXNlbnRhdGlvbiBmb3IgYW4gSW50ZXJuZXQgaG9zdCBuYW1lLCBhcyBkZWZpbmVkIGJ5IFJGQyAxMDM0LCBzZWN0aW9uIDMuMSBbUkZDMTAzNF0uXG5cbiAgICAgICAgICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzEwMzQjc2VjdGlvbi0zLjVcblxuICAgICAgICAgICAgPGRpZ2l0PiA6Oj0gYW55IG9uZSBvZiB0aGUgdGVuIGRpZ2l0cyAwIHRocm91Z2ggOVxuICAgICAgICAgICAgdmFyIGRpZ2l0ID0gL1swLTldLztcblxuICAgICAgICAgICAgPGxldHRlcj4gOjo9IGFueSBvbmUgb2YgdGhlIDUyIGFscGhhYmV0aWMgY2hhcmFjdGVycyBBIHRocm91Z2ggWiBpbiB1cHBlciBjYXNlIGFuZCBhIHRocm91Z2ggeiBpbiBsb3dlciBjYXNlXG4gICAgICAgICAgICB2YXIgbGV0dGVyID0gL1thLXpBLVpdLztcblxuICAgICAgICAgICAgPGxldC1kaWc+IDo6PSA8bGV0dGVyPiB8IDxkaWdpdD5cbiAgICAgICAgICAgIHZhciBsZXREaWcgPSAvWzAtOWEtekEtWl0vO1xuXG4gICAgICAgICAgICA8bGV0LWRpZy1oeXA+IDo6PSA8bGV0LWRpZz4gfCBcIi1cIlxuICAgICAgICAgICAgdmFyIGxldERpZ0h5cCA9IC9bLTAtOWEtekEtWl0vO1xuXG4gICAgICAgICAgICA8bGRoLXN0cj4gOjo9IDxsZXQtZGlnLWh5cD4gfCA8bGV0LWRpZy1oeXA+IDxsZGgtc3RyPlxuICAgICAgICAgICAgdmFyIGxkaFN0ciA9IC9bLTAtOWEtekEtWl0rLztcblxuICAgICAgICAgICAgPGxhYmVsPiA6Oj0gPGxldHRlcj4gWyBbIDxsZGgtc3RyPiBdIDxsZXQtZGlnPiBdXG4gICAgICAgICAgICB2YXIgbGFiZWwgPSAvW2EtekEtWl0oKFstMC05YS16QS1aXSspP1swLTlhLXpBLVpdKT8vO1xuXG4gICAgICAgICAgICA8c3ViZG9tYWluPiA6Oj0gPGxhYmVsPiB8IDxzdWJkb21haW4+IFwiLlwiIDxsYWJlbD5cbiAgICAgICAgICAgIHZhciBzdWJkb21haW4gPSAvXlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KFxcLlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KSokLztcblxuICAgICAgICAgICAgPGRvbWFpbj4gOjo9IDxzdWJkb21haW4+IHwgXCIgXCJcbiAgICAgICAgICAgIHZhciBkb21haW4gPSBudWxsO1xuICAgICAgICAqL1xuICAgICAgICB2YXIgdmFsaWQgPSAvXlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KFxcLlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KSokLy50ZXN0KGhvc3RuYW1lKTtcbiAgICAgICAgaWYgKHZhbGlkKSB7XG4gICAgICAgICAgICAvLyB0aGUgc3VtIG9mIGFsbCBsYWJlbCBvY3RldHMgYW5kIGxhYmVsIGxlbmd0aHMgaXMgbGltaXRlZCB0byAyNTUuXG4gICAgICAgICAgICBpZiAoaG9zdG5hbWUubGVuZ3RoID4gMjU1KSB7IHJldHVybiBmYWxzZTsgfVxuICAgICAgICAgICAgLy8gRWFjaCBub2RlIGhhcyBhIGxhYmVsLCB3aGljaCBpcyB6ZXJvIHRvIDYzIG9jdGV0cyBpbiBsZW5ndGhcbiAgICAgICAgICAgIHZhciBsYWJlbHMgPSBob3N0bmFtZS5zcGxpdChcIi5cIik7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhYmVscy5sZW5ndGg7IGkrKykgeyBpZiAobGFiZWxzW2ldLmxlbmd0aCA+IDYzKSB7IHJldHVybiBmYWxzZTsgfSB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkO1xuICAgIH0sXG4gICAgXCJob3N0LW5hbWVcIjogZnVuY3Rpb24gKGhvc3RuYW1lKSB7XG4gICAgICAgIHJldHVybiBGb3JtYXRWYWxpZGF0b3JzLmhvc3RuYW1lLmNhbGwodGhpcywgaG9zdG5hbWUpO1xuICAgIH0sXG4gICAgXCJpcHY0XCI6IGZ1bmN0aW9uIChpcHY0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXB2NCAhPT0gXCJzdHJpbmdcIikgeyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzSVAoaXB2NCwgNCk7XG4gICAgfSxcbiAgICBcImlwdjZcIjogZnVuY3Rpb24gKGlwdjYpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpcHY2ICE9PSBcInN0cmluZ1wiKSB7IHJldHVybiB0cnVlOyB9XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNJUChpcHY2LCA2KTtcbiAgICB9LFxuICAgIFwicmVnZXhcIjogZnVuY3Rpb24gKHN0cikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgUmVnRXhwKHN0cik7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBcInVyaVwiOiBmdW5jdGlvbiAodXJpKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc3RyaWN0VXJpcykge1xuICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFZhbGlkYXRvcnNbXCJzdHJpY3QtdXJpXCJdLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3phZ2dpbm8vei1zY2hlbWEvaXNzdWVzLzE4XG4gICAgICAgIC8vIFJlZ0V4cCBmcm9tIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjYXBwZW5kaXgtQlxuICAgICAgICByZXR1cm4gdHlwZW9mIHVyaSAhPT0gXCJzdHJpbmdcIiB8fCBSZWdFeHAoXCJeKChbXjovPyNdKyk6KT8oLy8oW14vPyNdKikpPyhbXj8jXSopKFxcXFw/KFteI10qKSk/KCMoLiopKT9cIikudGVzdCh1cmkpO1xuICAgIH0sXG4gICAgXCJzdHJpY3QtdXJpXCI6IGZ1bmN0aW9uICh1cmkpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB1cmkgIT09IFwic3RyaW5nXCIgfHwgdmFsaWRhdG9yLmlzVVJMKHVyaSk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBGb3JtYXRWYWxpZGF0b3JzO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBGb3JtYXRWYWxpZGF0b3JzICA9IHJlcXVpcmUoXCIuL0Zvcm1hdFZhbGlkYXRvcnNcIiksXG4gICAgUmVwb3J0ICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9SZXBvcnRcIiksXG4gICAgVXRpbHMgICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcblxudmFyIEpzb25WYWxpZGF0b3JzID0ge1xuICAgIG11bHRpcGxlT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjEuMlxuICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24gLyBzY2hlbWEubXVsdGlwbGVPZikgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNVUxUSVBMRV9PRlwiLCBbanNvbiwgc2NoZW1hLm11bHRpcGxlT2ZdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhpbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4yLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoanNvbiA+IHNjaGVtYS5tYXhpbXVtKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUFYSU1VTVwiLCBbanNvbiwgc2NoZW1hLm1heGltdW1dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24gPj0gc2NoZW1hLm1heGltdW0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNQVhJTVVNX0VYQ0xVU0lWRVwiLCBbanNvbiwgc2NoZW1hLm1heGltdW1dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBleGNsdXNpdmVNYXhpbXVtOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIGNvdmVyZWQgaW4gbWF4aW11bVxuICAgIH0sXG4gICAgbWluaW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMy4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEuZXhjbHVzaXZlTWluaW11bSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKGpzb24gPCBzY2hlbWEubWluaW11bSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1JTklNVU1cIiwgW2pzb24sIHNjaGVtYS5taW5pbXVtXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uIDw9IHNjaGVtYS5taW5pbXVtKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUlOSU1VTV9FWENMVVNJVkVcIiwgW2pzb24sIHNjaGVtYS5taW5pbXVtXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZXhjbHVzaXZlTWluaW11bTogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBjb3ZlcmVkIGluIG1pbmltdW1cbiAgICB9LFxuICAgIG1heExlbmd0aDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMS4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChVdGlscy51Y3MyZGVjb2RlKGpzb24pLmxlbmd0aCA+IHNjaGVtYS5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1BWF9MRU5HVEhcIiwgW2pzb24ubGVuZ3RoLCBzY2hlbWEubWF4TGVuZ3RoXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluTGVuZ3RoOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4yLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFV0aWxzLnVjczJkZWNvZGUoanNvbikubGVuZ3RoIDwgc2NoZW1hLm1pbkxlbmd0aCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUlOX0xFTkdUSFwiLCBbanNvbi5sZW5ndGgsIHNjaGVtYS5taW5MZW5ndGhdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwYXR0ZXJuOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4zLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFJlZ0V4cChzY2hlbWEucGF0dGVybikudGVzdChqc29uKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlBBVFRFUk5cIiwgW3NjaGVtYS5wYXR0ZXJuLCBqc29uXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRkaXRpb25hbEl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4xLjJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIHZhbHVlIG9mIFwiYWRkaXRpb25hbEl0ZW1zXCIgaXMgYm9vbGVhbiB2YWx1ZSBmYWxzZSBhbmQgdGhlIHZhbHVlIG9mIFwiaXRlbXNcIiBpcyBhbiBhcnJheSxcbiAgICAgICAgLy8gdGhlIGpzb24gaXMgdmFsaWQgaWYgaXRzIHNpemUgaXMgbGVzcyB0aGFuLCBvciBlcXVhbCB0bywgdGhlIHNpemUgb2YgXCJpdGVtc1wiLlxuICAgICAgICBpZiAoc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gZmFsc2UgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgICAgICBpZiAoanNvbi5sZW5ndGggPiBzY2hlbWEuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQVJSQVlfQURESVRJT05BTF9JVEVNU1wiLCBudWxsLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBpdGVtczogZnVuY3Rpb24gKCkgeyAvKnJlcG9ydCwgc2NoZW1hLCBqc29uKi9cbiAgICAgICAgLy8gY292ZXJlZCBpbiBhZGRpdGlvbmFsSXRlbXNcbiAgICB9LFxuICAgIG1heEl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4yLjJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGpzb24ubGVuZ3RoID4gc2NoZW1hLm1heEl0ZW1zKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBUlJBWV9MRU5HVEhfTE9OR1wiLCBbanNvbi5sZW5ndGgsIHNjaGVtYS5tYXhJdGVtc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pbkl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4zLjJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGpzb24ubGVuZ3RoIDwgc2NoZW1hLm1pbkl0ZW1zKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBUlJBWV9MRU5HVEhfU0hPUlRcIiwgW2pzb24ubGVuZ3RoLCBzY2hlbWEubWluSXRlbXNdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB1bmlxdWVJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuNC4yXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEudW5pcXVlSXRlbXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHZhciBtYXRjaGVzID0gW107XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNVbmlxdWVBcnJheShqc29uLCBtYXRjaGVzKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBUlJBWV9VTklRVUVcIiwgbWF0Y2hlcywgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4UHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuMS4yXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbikgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5c0NvdW50ID0gT2JqZWN0LmtleXMoanNvbikubGVuZ3RoO1xuICAgICAgICBpZiAoa2V5c0NvdW50ID4gc2NoZW1hLm1heFByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9CSkVDVF9QUk9QRVJUSUVTX01BWElNVU1cIiwgW2tleXNDb3VudCwgc2NoZW1hLm1heFByb3BlcnRpZXNdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5Qcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4yLjJcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBrZXlzQ291bnQgPSBPYmplY3Qua2V5cyhqc29uKS5sZW5ndGg7XG4gICAgICAgIGlmIChrZXlzQ291bnQgPCBzY2hlbWEubWluUHJvcGVydGllcykge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT0JKRUNUX1BST1BFUlRJRVNfTUlOSU1VTVwiLCBba2V5c0NvdW50LCBzY2hlbWEubWluUHJvcGVydGllc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJlcXVpcmVkOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4zLjJcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpZHggPSBzY2hlbWEucmVxdWlyZWQubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciByZXF1aXJlZFByb3BlcnR5TmFtZSA9IHNjaGVtYS5yZXF1aXJlZFtpZHhdO1xuICAgICAgICAgICAgaWYgKGpzb25bcmVxdWlyZWRQcm9wZXJ0eU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPQkpFQ1RfTUlTU0lOR19SRVFVSVJFRF9QUk9QRVJUWVwiLCBbcmVxdWlyZWRQcm9wZXJ0eU5hbWVdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGNvdmVyZWQgaW4gcHJvcGVydGllcyBhbmQgcGF0dGVyblByb3BlcnRpZXNcbiAgICAgICAgaWYgKHNjaGVtYS5wcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgJiYgc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBKc29uVmFsaWRhdG9ycy5wcm9wZXJ0aWVzLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwYXR0ZXJuUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGNvdmVyZWQgaW4gcHJvcGVydGllc1xuICAgICAgICBpZiAoc2NoZW1hLnByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIEpzb25WYWxpZGF0b3JzLnByb3BlcnRpZXMuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSwganNvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjQuMlxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24pICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBzY2hlbWEucHJvcGVydGllcyAhPT0gdW5kZWZpbmVkID8gc2NoZW1hLnByb3BlcnRpZXMgOiB7fTtcbiAgICAgICAgdmFyIHBhdHRlcm5Qcm9wZXJ0aWVzID0gc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQgPyBzY2hlbWEucGF0dGVyblByb3BlcnRpZXMgOiB7fTtcbiAgICAgICAgaWYgKHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBzZXQgb2YgdGhlIGpzb24gdG8gdmFsaWRhdGUuXG4gICAgICAgICAgICB2YXIgcyA9IE9iamVjdC5rZXlzKGpzb24pO1xuICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHNldCBmcm9tIFwicHJvcGVydGllc1wiLlxuICAgICAgICAgICAgdmFyIHAgPSBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBzZXQgZnJvbSBcInBhdHRlcm5Qcm9wZXJ0aWVzXCIuXG4gICAgICAgICAgICB2YXIgcHAgPSBPYmplY3Qua2V5cyhwYXR0ZXJuUHJvcGVydGllcyk7XG4gICAgICAgICAgICAvLyByZW1vdmUgZnJvbSBcInNcIiBhbGwgZWxlbWVudHMgb2YgXCJwXCIsIGlmIGFueTtcbiAgICAgICAgICAgIHMgPSBVdGlscy5kaWZmZXJlbmNlKHMsIHApO1xuICAgICAgICAgICAgLy8gZm9yIGVhY2ggcmVnZXggaW4gXCJwcFwiLCByZW1vdmUgYWxsIGVsZW1lbnRzIG9mIFwic1wiIHdoaWNoIHRoaXMgcmVnZXggbWF0Y2hlcy5cbiAgICAgICAgICAgIHZhciBpZHggPSBwcC5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVnRXhwID0gUmVnRXhwKHBwW2lkeF0pLFxuICAgICAgICAgICAgICAgICAgICBpZHgyID0gcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVnRXhwLnRlc3Qoc1tpZHgyXSkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMuc3BsaWNlKGlkeDIsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVmFsaWRhdGlvbiBvZiB0aGUganNvbiBzdWNjZWVkcyBpZiwgYWZ0ZXIgdGhlc2UgdHdvIHN0ZXBzLCBzZXQgXCJzXCIgaXMgZW1wdHkuXG4gICAgICAgICAgICBpZiAocy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT0JKRUNUX0FERElUSU9OQUxfUFJPUEVSVElFU1wiLCBbc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNS4yXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbikgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLmRlcGVuZGVuY2llcyksXG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcblxuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIC8vIGl0ZXJhdGUgYWxsIGRlcGVuZGVuY2llc1xuICAgICAgICAgICAgdmFyIGRlcGVuZGVuY3lOYW1lID0ga2V5c1tpZHhdO1xuICAgICAgICAgICAgaWYgKGpzb25bZGVwZW5kZW5jeU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRlcGVuZGVuY3lEZWZpbml0aW9uID0gc2NoZW1hLmRlcGVuZGVuY2llc1tkZXBlbmRlbmN5TmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhkZXBlbmRlbmN5RGVmaW5pdGlvbikgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgZGVwZW5kZW5jeSBpcyBhIHNjaGVtYSwgdmFsaWRhdGUgYWdhaW5zdCB0aGlzIHNjaGVtYVxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBkZXBlbmRlbmN5RGVmaW5pdGlvbiwganNvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gQXJyYXlcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgZGVwZW5kZW5jeSBpcyBhbiBhcnJheSwgb2JqZWN0IG5lZWRzIHRvIGhhdmUgYWxsIHByb3BlcnRpZXMgaW4gdGhpcyBhcnJheVxuICAgICAgICAgICAgICAgICAgICB2YXIgaWR4MiA9IGRlcGVuZGVuY3lEZWZpbml0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcXVpcmVkUHJvcGVydHlOYW1lID0gZGVwZW5kZW5jeURlZmluaXRpb25baWR4Ml07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbltyZXF1aXJlZFByb3BlcnR5TmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9CSkVDVF9ERVBFTkRFTkNZX0tFWVwiLCBbcmVxdWlyZWRQcm9wZXJ0eU5hbWUsIGRlcGVuZGVuY3lOYW1lXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZW51bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMS4yXG4gICAgICAgIHZhciBtYXRjaCA9IGZhbHNlLFxuICAgICAgICAgICAgaWR4ID0gc2NoZW1hLmVudW0ubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIGlmIChVdGlscy5hcmVFcXVhbChqc29uLCBzY2hlbWEuZW51bVtpZHhdKSkge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2ggPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJFTlVNX01JU01BVENIXCIsIFtqc29uXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgLypcbiAgICB0eXBlOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4yLjJcbiAgICAgICAgLy8gdHlwZSBpcyBoYW5kbGVkIGJlZm9yZSB0aGlzIGlzIGNhbGxlZCBzbyBpZ25vcmVcbiAgICB9LFxuICAgICovXG4gICAgYWxsT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjMuMlxuICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLmFsbE9mLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICBpZiAoZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFsbE9mW2lkeF0sIGpzb24pID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhbnlPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNC4yXG4gICAgICAgIHZhciBzdWJSZXBvcnRzID0gW10sXG4gICAgICAgICAgICBwYXNzZWQgPSBmYWxzZSxcbiAgICAgICAgICAgIGlkeCA9IHNjaGVtYS5hbnlPZi5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGlkeC0tICYmIHBhc3NlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHZhciBzdWJSZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCk7XG4gICAgICAgICAgICBzdWJSZXBvcnRzLnB1c2goc3ViUmVwb3J0KTtcbiAgICAgICAgICAgIHBhc3NlZCA9IGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCBzdWJSZXBvcnQsIHNjaGVtYS5hbnlPZltpZHhdLCBqc29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXNzZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBTllfT0ZfTUlTU0lOR1wiLCB1bmRlZmluZWQsIHN1YlJlcG9ydHMsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG9uZU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS41LjJcbiAgICAgICAgdmFyIHBhc3NlcyA9IDAsXG4gICAgICAgICAgICBzdWJSZXBvcnRzID0gW10sXG4gICAgICAgICAgICBpZHggPSBzY2hlbWEub25lT2YubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIHN1YlJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0LCB7IG1heEVycm9yczogMSB9KTtcbiAgICAgICAgICAgIHN1YlJlcG9ydHMucHVzaChzdWJSZXBvcnQpO1xuICAgICAgICAgICAgaWYgKGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCBzdWJSZXBvcnQsIHNjaGVtYS5vbmVPZltpZHhdLCBqc29uKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHBhc3NlcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhc3NlcyA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT05FX09GX01JU1NJTkdcIiwgdW5kZWZpbmVkLCBzdWJSZXBvcnRzLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKHBhc3NlcyA+IDEpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9ORV9PRl9NVUxUSVBMRVwiLCBudWxsLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBub3Q6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjYuMlxuICAgICAgICB2YXIgc3ViUmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQpO1xuICAgICAgICBpZiAoZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHN1YlJlcG9ydCwgc2NoZW1hLm5vdCwganNvbikgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk5PVF9QQVNTRURcIiwgbnVsbCwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVmaW5pdGlvbnM6IGZ1bmN0aW9uICgpIHsgLypyZXBvcnQsIHNjaGVtYSwganNvbiovXG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNy4yXG4gICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZVxuICAgIH0sXG4gICAgZm9ybWF0OiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjcuMlxuICAgICAgICB2YXIgZm9ybWF0VmFsaWRhdG9yRm4gPSBGb3JtYXRWYWxpZGF0b3JzW3NjaGVtYS5mb3JtYXRdO1xuICAgICAgICBpZiAodHlwZW9mIGZvcm1hdFZhbGlkYXRvckZuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXRWYWxpZGF0b3JGbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICAvLyBhc3luY1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRBc3luY1Rhc2soZm9ybWF0VmFsaWRhdG9yRm4sIFtqc29uXSwgZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJJTlZBTElEX0ZPUk1BVFwiLCBbc2NoZW1hLmZvcm1hdCwganNvbl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gc3luY1xuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRWYWxpZGF0b3JGbi5jYWxsKHRoaXMsIGpzb24pICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIklOVkFMSURfRk9STUFUXCIsIFtzY2hlbWEuZm9ybWF0LCBqc29uXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJVTktOT1dOX0ZPUk1BVFwiLCBbc2NoZW1hLmZvcm1hdF0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG52YXIgcmVjdXJzZUFycmF5ID0gZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjguMlxuXG4gICAgdmFyIGlkeCA9IGpzb24ubGVuZ3RoO1xuXG4gICAgLy8gSWYgXCJpdGVtc1wiIGlzIGFuIGFycmF5LCB0aGlzIHNpdHVhdGlvbiwgdGhlIHNjaGVtYSBkZXBlbmRzIG9uIHRoZSBpbmRleDpcbiAgICAvLyBpZiB0aGUgaW5kZXggaXMgbGVzcyB0aGFuLCBvciBlcXVhbCB0bywgdGhlIHNpemUgb2YgXCJpdGVtc1wiLFxuICAgIC8vIHRoZSBjaGlsZCBpbnN0YW5jZSBtdXN0IGJlIHZhbGlkIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgc2NoZW1hIGluIHRoZSBcIml0ZW1zXCIgYXJyYXk7XG4gICAgLy8gb3RoZXJ3aXNlLCBpdCBtdXN0IGJlIHZhbGlkIGFnYWluc3QgdGhlIHNjaGVtYSBkZWZpbmVkIGJ5IFwiYWRkaXRpb25hbEl0ZW1zXCIuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuXG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgLy8gZXF1YWwgdG8gZG9lc250IG1ha2Ugc2Vuc2UgaGVyZVxuICAgICAgICAgICAgaWYgKGlkeCA8IHNjaGVtYS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuaXRlbXNbaWR4XSwganNvbltpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbWlnaHQgYmUgYm9vbGVhbiwgc28gY2hlY2sgdGhhdCBpdCdzIGFuIG9iamVjdFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFkZGl0aW9uYWxJdGVtcywganNvbltpZHhdKTtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEuaXRlbXMgPT09IFwib2JqZWN0XCIpIHtcblxuICAgICAgICAvLyBJZiBpdGVtcyBpcyBhIHNjaGVtYSwgdGhlbiB0aGUgY2hpbGQgaW5zdGFuY2UgbXVzdCBiZSB2YWxpZCBhZ2FpbnN0IHRoaXMgc2NoZW1hLFxuICAgICAgICAvLyByZWdhcmRsZXNzIG9mIGl0cyBpbmRleCwgYW5kIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIFwiYWRkaXRpb25hbEl0ZW1zXCIuXG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuaXRlbXMsIGpzb25baWR4XSk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuXG4gICAgfVxufTtcblxudmFyIHJlY3Vyc2VPYmplY3QgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uOC4zXG5cbiAgICAvLyBJZiBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIgaXMgYWJzZW50LCBpdCBpcyBjb25zaWRlcmVkIHByZXNlbnQgd2l0aCBhbiBlbXB0eSBzY2hlbWEgYXMgYSB2YWx1ZS5cbiAgICAvLyBJbiBhZGRpdGlvbiwgYm9vbGVhbiB2YWx1ZSB0cnVlIGlzIGNvbnNpZGVyZWQgZXF1aXZhbGVudCB0byBhbiBlbXB0eSBzY2hlbWEuXG4gICAgdmFyIGFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzO1xuICAgIGlmIChhZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdHJ1ZSB8fCBhZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzID0ge307XG4gICAgfVxuXG4gICAgLy8gcCAtIFRoZSBwcm9wZXJ0eSBzZXQgZnJvbSBcInByb3BlcnRpZXNcIi5cbiAgICB2YXIgcCA9IHNjaGVtYS5wcm9wZXJ0aWVzID8gT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMpIDogW107XG5cbiAgICAvLyBwcCAtIFRoZSBwcm9wZXJ0eSBzZXQgZnJvbSBcInBhdHRlcm5Qcm9wZXJ0aWVzXCIuIEVsZW1lbnRzIG9mIHRoaXMgc2V0IHdpbGwgYmUgY2FsbGVkIHJlZ2V4ZXMgZm9yIGNvbnZlbmllbmNlLlxuICAgIHZhciBwcCA9IHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyA/IE9iamVjdC5rZXlzKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcykgOiBbXTtcblxuICAgIC8vIG0gLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgY2hpbGQuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhqc29uKSxcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIG0gPSBrZXlzW2lkeF0sXG4gICAgICAgICAgICBwcm9wZXJ0eVZhbHVlID0ganNvblttXTtcblxuICAgICAgICAvLyBzIC0gVGhlIHNldCBvZiBzY2hlbWFzIGZvciB0aGUgY2hpbGQgaW5zdGFuY2UuXG4gICAgICAgIHZhciBzID0gW107XG5cbiAgICAgICAgLy8gMS4gSWYgc2V0IFwicFwiIGNvbnRhaW5zIHZhbHVlIFwibVwiLCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIHNjaGVtYSBpbiBcInByb3BlcnRpZXNcIiBpcyBhZGRlZCB0byBcInNcIi5cbiAgICAgICAgaWYgKHAuaW5kZXhPZihtKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHMucHVzaChzY2hlbWEucHJvcGVydGllc1ttXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBGb3IgZWFjaCByZWdleCBpbiBcInBwXCIsIGlmIGl0IG1hdGNoZXMgXCJtXCIgc3VjY2Vzc2Z1bGx5LCB0aGUgY29ycmVzcG9uZGluZyBzY2hlbWEgaW4gXCJwYXR0ZXJuUHJvcGVydGllc1wiIGlzIGFkZGVkIHRvIFwic1wiLlxuICAgICAgICB2YXIgaWR4MiA9IHBwLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgdmFyIHJlZ2V4U3RyaW5nID0gcHBbaWR4Ml07XG4gICAgICAgICAgICBpZiAoUmVnRXhwKHJlZ2V4U3RyaW5nKS50ZXN0KG0pID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcy5wdXNoKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllc1tyZWdleFN0cmluZ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gVGhlIHNjaGVtYSBkZWZpbmVkIGJ5IFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIiBpcyBhZGRlZCB0byBcInNcIiBpZiBhbmQgb25seSBpZiwgYXQgdGhpcyBzdGFnZSwgXCJzXCIgaXMgZW1wdHkuXG4gICAgICAgIGlmIChzLmxlbmd0aCA9PT0gMCAmJiBhZGRpdGlvbmFsUHJvcGVydGllcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHMucHVzaChhZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3ZSBhcmUgcGFzc2luZyB0ZXN0cyBldmVuIHdpdGhvdXQgdGhpcyBhc3NlcnQgYmVjYXVzZSB0aGlzIGlzIGNvdmVyZWQgYnkgcHJvcGVydGllcyBjaGVja1xuICAgICAgICAvLyBpZiBzIGlzIGVtcHR5IGluIHRoaXMgc3RhZ2UsIG5vIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIGFyZSBhbGxvd2VkXG4gICAgICAgIC8vIHJlcG9ydC5leHBlY3Qocy5sZW5ndGggIT09IDAsICdFMDAxJywgbSk7XG5cbiAgICAgICAgLy8gSW5zdGFuY2UgcHJvcGVydHkgdmFsdWUgbXVzdCBwYXNzIGFsbCBzY2hlbWFzIGZyb20gc1xuICAgICAgICBpZHgyID0gcy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2gobSk7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzW2lkeDJdLCBwcm9wZXJ0eVZhbHVlKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0cy52YWxpZGF0ZSA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuXG4gICAgcmVwb3J0LmNvbW1vbkVycm9yTWVzc2FnZSA9IFwiSlNPTl9PQkpFQ1RfVkFMSURBVElPTl9GQUlMRURcIjtcblxuICAgIC8vIGNoZWNrIGlmIHNjaGVtYSBpcyBhbiBvYmplY3RcbiAgICB2YXIgdG8gPSBVdGlscy53aGF0SXMoc2NoZW1hKTtcbiAgICBpZiAodG8gIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiU0NIRU1BX05PVF9BTl9PQkpFQ1RcIiwgW3RvXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHNjaGVtYSBpcyBlbXB0eSwgZXZlcnl0aGluZyBpcyB2YWxpZCBhZ2FpbnN0IGVtcHR5IHNjaGVtYVxuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCByZWN1cnNpdmVseSwgc28gd2UgbmVlZCB0byByZW1lbWJlciBvdXIgcm9vdFxuICAgIHZhciBpc1Jvb3QgPSBmYWxzZTtcbiAgICBpZiAoIXJlcG9ydC5yb290U2NoZW1hKSB7XG4gICAgICAgIHJlcG9ydC5yb290U2NoZW1hID0gc2NoZW1hO1xuICAgICAgICBpc1Jvb3QgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIGZvbGxvdyBzY2hlbWEuJHJlZiBrZXlzXG4gICAgaWYgKHNjaGVtYS4kcmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gYXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIG1heFJlZnNcbiAgICAgICAgdmFyIG1heFJlZnMgPSA5OTtcbiAgICAgICAgd2hpbGUgKHNjaGVtYS4kcmVmICYmIG1heFJlZnMgPiAwKSB7XG4gICAgICAgICAgICBpZiAoIXNjaGVtYS5fXyRyZWZSZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlJFRl9VTlJFU09MVkVEXCIsIFtzY2hlbWEuJHJlZl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5fXyRyZWZSZXNvbHZlZCA9PT0gc2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjaGVtYSA9IHNjaGVtYS5fXyRyZWZSZXNvbHZlZDtcbiAgICAgICAgICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1heFJlZnMtLTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4UmVmcyA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2lyY3VsYXIgZGVwZW5kZW5jeSBieSAkcmVmIHJlZmVyZW5jZXMhXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHlwZSBjaGVja2luZyBmaXJzdFxuICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMi4yXG4gICAgdmFyIGpzb25UeXBlID0gVXRpbHMud2hhdElzKGpzb24pO1xuICAgIGlmIChzY2hlbWEudHlwZSkge1xuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZiAoanNvblR5cGUgIT09IHNjaGVtYS50eXBlICYmIChqc29uVHlwZSAhPT0gXCJpbnRlZ2VyXCIgfHwgc2NoZW1hLnR5cGUgIT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiSU5WQUxJRF9UWVBFXCIsIFtzY2hlbWEudHlwZSwganNvblR5cGVdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYnJlYWtPbkZpcnN0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZS5pbmRleE9mKGpzb25UeXBlKSA9PT0gLTEgJiYgKGpzb25UeXBlICE9PSBcImludGVnZXJcIiB8fCBzY2hlbWEudHlwZS5pbmRleE9mKFwibnVtYmVyXCIpID09PSAtMSkpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJJTlZBTElEX1RZUEVcIiwgW3NjaGVtYS50eXBlLCBqc29uVHlwZV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5icmVha09uRmlyc3RFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gbm93IGl0ZXJhdGUgYWxsIHRoZSBrZXlzIGluIHNjaGVtYSBhbmQgZXhlY3V0ZSB2YWxpZGF0aW9uIG1ldGhvZHNcbiAgICB2YXIgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIGlmIChKc29uVmFsaWRhdG9yc1trZXlzW2lkeF1dKSB7XG4gICAgICAgICAgICBKc29uVmFsaWRhdG9yc1trZXlzW2lkeF1dLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgICAgICAgICAgaWYgKHJlcG9ydC5lcnJvcnMubGVuZ3RoICYmIHRoaXMub3B0aW9ucy5icmVha09uRmlyc3RFcnJvcikgeyBicmVhazsgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlcG9ydC5lcnJvcnMubGVuZ3RoID09PSAwIHx8IHRoaXMub3B0aW9ucy5icmVha09uRmlyc3RFcnJvciA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGpzb25UeXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHJlY3Vyc2VBcnJheS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICAgICAgfSBlbHNlIGlmIChqc29uVHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVjdXJzZU9iamVjdC5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdlIGRvbid0IG5lZWQgdGhlIHJvb3QgcG9pbnRlciBhbnltb3JlXG4gICAgaWYgKGlzUm9vdCkge1xuICAgICAgICByZXBvcnQucm9vdFNjaGVtYSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyByZXR1cm4gdmFsaWQganVzdCB0byBiZSBhYmxlIHRvIGJyZWFrIGF0IHNvbWUgY29kZSBwb2ludHNcbiAgICByZXR1cm4gcmVwb3J0LmVycm9ycy5sZW5ndGggPT09IDA7XG5cbn07XG4iLCIvLyBOdW1iZXIuaXNGaW5pdGUgcG9seWZpbGxcbi8vIGh0dHA6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW51bWJlci5pc2Zpbml0ZVxuaWYgKHR5cGVvZiBOdW1iZXIuaXNGaW5pdGUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIE51bWJlci5pc0Zpbml0ZSA9IGZ1bmN0aW9uIGlzRmluaXRlKHZhbHVlKSB7XG4gICAgICAgIC8vIDEuIElmIFR5cGUobnVtYmVyKSBpcyBub3QgTnVtYmVyLCByZXR1cm4gZmFsc2UuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyAyLiBJZiBudW1iZXIgaXMgTmFOLCAr4oieLCBvciDiiJLiiJ4sIHJldHVybiBmYWxzZS5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB2YWx1ZSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkgfHwgdmFsdWUgPT09IC1JbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuIE90aGVyd2lzZSwgcmV0dXJuIHRydWUuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIEVycm9ycyA9IHJlcXVpcmUoXCIuL0Vycm9yc1wiKTtcbnZhciBVdGlscyAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcblxuZnVuY3Rpb24gUmVwb3J0KHBhcmVudE9yT3B0aW9ucywgcmVwb3J0T3B0aW9ucykge1xuICAgIHRoaXMucGFyZW50UmVwb3J0ID0gcGFyZW50T3JPcHRpb25zIGluc3RhbmNlb2YgUmVwb3J0ID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRPck9wdGlvbnMgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcblxuICAgIHRoaXMub3B0aW9ucyA9IHBhcmVudE9yT3B0aW9ucyBpbnN0YW5jZW9mIFJlcG9ydCA/XG4gICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE9yT3B0aW9ucy5vcHRpb25zIDpcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50T3JPcHRpb25zIHx8IHt9O1xuXG4gICAgdGhpcy5yZXBvcnRPcHRpb25zID0gcmVwb3J0T3B0aW9ucyB8fCB7fTtcblxuICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgdGhpcy5wYXRoID0gW107XG4gICAgdGhpcy5hc3luY1Rhc2tzID0gW107XG59XG5cblJlcG9ydC5wcm90b3R5cGUuaXNWYWxpZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5hc3luY1Rhc2tzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXN5bmMgdGFza3MgcGVuZGluZywgY2FuJ3QgYW5zd2VyIGlzVmFsaWRcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPT09IDA7XG59O1xuXG5SZXBvcnQucHJvdG90eXBlLmFkZEFzeW5jVGFzayA9IGZ1bmN0aW9uIChmbiwgYXJncywgYXN5bmNUYXNrUmVzdWx0UHJvY2Vzc0ZuKSB7XG4gICAgdGhpcy5hc3luY1Rhc2tzLnB1c2goW2ZuLCBhcmdzLCBhc3luY1Rhc2tSZXN1bHRQcm9jZXNzRm5dKTtcbn07XG5cblJlcG9ydC5wcm90b3R5cGUucHJvY2Vzc0FzeW5jVGFza3MgPSBmdW5jdGlvbiAodGltZW91dCwgY2FsbGJhY2spIHtcblxuICAgIHZhciB2YWxpZGF0aW9uVGltZW91dCA9IHRpbWVvdXQgfHwgMjAwMCxcbiAgICAgICAgdGFza3NDb3VudCAgICAgICAgPSB0aGlzLmFzeW5jVGFza3MubGVuZ3RoLFxuICAgICAgICBpZHggICAgICAgICAgICAgICA9IHRhc2tzQ291bnQsXG4gICAgICAgIHRpbWVkT3V0ICAgICAgICAgID0gZmFsc2UsXG4gICAgICAgIHNlbGYgICAgICAgICAgICAgID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIGZpbmlzaCgpIHtcbiAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdmFsaWQgPSBzZWxmLmVycm9ycy5sZW5ndGggPT09IDAsXG4gICAgICAgICAgICAgICAgZXJyICAgPSB2YWxpZCA/IHVuZGVmaW5lZCA6IHNlbGYuZXJyb3JzO1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyLCB2YWxpZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc3BvbmQoYXN5bmNUYXNrUmVzdWx0UHJvY2Vzc0ZuKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoYXN5bmNUYXNrUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAodGltZWRPdXQpIHsgcmV0dXJuOyB9XG4gICAgICAgICAgICBhc3luY1Rhc2tSZXN1bHRQcm9jZXNzRm4oYXN5bmNUYXNrUmVzdWx0KTtcbiAgICAgICAgICAgIGlmICgtLXRhc2tzQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGFza3NDb3VudCA9PT0gMCB8fCB0aGlzLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbmlzaCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciB0YXNrID0gdGhpcy5hc3luY1Rhc2tzW2lkeF07XG4gICAgICAgIHRhc2tbMF0uYXBwbHkobnVsbCwgdGFza1sxXS5jb25jYXQocmVzcG9uZCh0YXNrWzJdKSkpO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGFza3NDb3VudCA+IDApIHtcbiAgICAgICAgICAgIHRpbWVkT3V0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHNlbGYuYWRkRXJyb3IoXCJBU1lOQ19USU1FT1VUXCIsIFt0YXNrc0NvdW50LCB2YWxpZGF0aW9uVGltZW91dF0pO1xuICAgICAgICAgICAgY2FsbGJhY2soc2VsZi5lcnJvcnMsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0sIHZhbGlkYXRpb25UaW1lb3V0KTtcblxufTtcblxuUmVwb3J0LnByb3RvdHlwZS5nZXRQYXRoID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBwYXRoID0gW107XG4gICAgaWYgKHRoaXMucGFyZW50UmVwb3J0KSB7XG4gICAgICAgIHBhdGggPSBwYXRoLmNvbmNhdCh0aGlzLnBhcmVudFJlcG9ydC5wYXRoKTtcbiAgICB9XG4gICAgcGF0aCA9IHBhdGguY29uY2F0KHRoaXMucGF0aCk7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlcG9ydFBhdGhBc0FycmF5ICE9PSB0cnVlKSB7XG4gICAgICAgIC8vIFNhbml0aXplIHRoZSBwYXRoIHNlZ21lbnRzIChodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2OTAxI3NlY3Rpb24tNClcbiAgICAgICAgcGF0aCA9IFwiIy9cIiArIHBhdGgubWFwKGZ1bmN0aW9uIChzZWdtZW50KSB7XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc0Fic29sdXRlVXJpKHNlZ21lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidXJpKFwiICsgc2VnbWVudCArIFwiKVwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc2VnbWVudC5yZXBsYWNlKFwiflwiLCBcIn4wXCIpLnJlcGxhY2UoXCIvXCIsIFwifjFcIik7XG4gICAgICAgIH0pLmpvaW4oXCIvXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn07XG5cblJlcG9ydC5wcm90b3R5cGUuYWRkRXJyb3IgPSBmdW5jdGlvbiAoZXJyb3JDb2RlLCBwYXJhbXMsIHN1YlJlcG9ydHMsIHNjaGVtYURlc2NyaXB0aW9uKSB7XG4gICAgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCA+PSB0aGlzLnJlcG9ydE9wdGlvbnMubWF4RXJyb3JzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWVycm9yQ29kZSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJObyBlcnJvckNvZGUgcGFzc2VkIGludG8gYWRkRXJyb3IoKVwiKTsgfVxuICAgIGlmICghRXJyb3JzW2Vycm9yQ29kZV0pIHsgdGhyb3cgbmV3IEVycm9yKFwiTm8gZXJyb3JNZXNzYWdlIGtub3duIGZvciBjb2RlIFwiICsgZXJyb3JDb2RlKTsgfVxuXG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IFtdO1xuXG4gICAgdmFyIGlkeCA9IHBhcmFtcy5sZW5ndGgsXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IEVycm9yc1tlcnJvckNvZGVdO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICB2YXIgd2hhdElzID0gVXRpbHMud2hhdElzKHBhcmFtc1tpZHhdKTtcbiAgICAgICAgdmFyIHBhcmFtID0gKHdoYXRJcyA9PT0gXCJvYmplY3RcIiB8fCB3aGF0SXMgPT09IFwibnVsbFwiKSA/IEpTT04uc3RyaW5naWZ5KHBhcmFtc1tpZHhdKSA6IHBhcmFtc1tpZHhdO1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UucmVwbGFjZShcIntcIiArIGlkeCArIFwifVwiLCBwYXJhbSk7XG4gICAgfVxuXG4gICAgdmFyIGVyciA9IHtcbiAgICAgICAgY29kZTogZXJyb3JDb2RlLFxuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICBwYXRoOiB0aGlzLmdldFBhdGgoKVxuICAgIH07XG5cbiAgICBpZiAoc2NoZW1hRGVzY3JpcHRpb24pIHtcbiAgICAgICAgZXJyLmRlc2NyaXB0aW9uID0gc2NoZW1hRGVzY3JpcHRpb247XG4gICAgfVxuXG4gICAgaWYgKHN1YlJlcG9ydHMgIT0gbnVsbCkge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3ViUmVwb3J0cykpIHtcbiAgICAgICAgICAgIHN1YlJlcG9ydHMgPSBbc3ViUmVwb3J0c107XG4gICAgICAgIH1cbiAgICAgICAgZXJyLmlubmVyID0gW107XG4gICAgICAgIGlkeCA9IHN1YlJlcG9ydHMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBzdWJSZXBvcnQgPSBzdWJSZXBvcnRzW2lkeF0sXG4gICAgICAgICAgICAgICAgaWR4MiA9IHN1YlJlcG9ydC5lcnJvcnMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgIGVyci5pbm5lci5wdXNoKHN1YlJlcG9ydC5lcnJvcnNbaWR4Ml0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIuaW5uZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBlcnIuaW5uZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVycm9ycy5wdXNoKGVycik7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlcG9ydDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgUmVwb3J0ICAgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKTtcbnZhciBTY2hlbWFDb21waWxhdGlvbiAgID0gcmVxdWlyZShcIi4vU2NoZW1hQ29tcGlsYXRpb25cIik7XG52YXIgU2NoZW1hVmFsaWRhdGlvbiAgICA9IHJlcXVpcmUoXCIuL1NjaGVtYVZhbGlkYXRpb25cIik7XG52YXIgVXRpbHMgICAgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuXG5mdW5jdGlvbiBkZWNvZGVKU09OUG9pbnRlcihzdHIpIHtcbiAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWFwcHNhd2ctanNvbi1wb2ludGVyLTA3I3NlY3Rpb24tM1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC9+WzAtMV0vZywgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgcmV0dXJuIHggPT09IFwifjFcIiA/IFwiL1wiIDogXCJ+XCI7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbW90ZVBhdGgodXJpKSB7XG4gICAgdmFyIGlvID0gdXJpLmluZGV4T2YoXCIjXCIpO1xuICAgIHJldHVybiBpbyA9PT0gLTEgPyB1cmkgOiB1cmkuc2xpY2UoMCwgaW8pO1xufVxuXG5mdW5jdGlvbiBnZXRRdWVyeVBhdGgodXJpKSB7XG4gICAgdmFyIGlvID0gdXJpLmluZGV4T2YoXCIjXCIpO1xuICAgIHZhciByZXMgPSBpbyA9PT0gLTEgPyB1bmRlZmluZWQgOiB1cmkuc2xpY2UoaW8gKyAxKTtcbiAgICAvLyBXQVJOOiBkbyBub3Qgc2xpY2Ugc2xhc2gsICMvIG1lYW5zIHRha2Ugcm9vdCBhbmQgZ28gZG93biBmcm9tIGl0XG4gICAgLy8gaWYgKHJlcyAmJiByZXNbMF0gPT09IFwiL1wiKSB7IHJlcyA9IHJlcy5zbGljZSgxKTsgfVxuICAgIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIGZpbmRJZChzY2hlbWEsIGlkKSB7XG4gICAgLy8gcHJvY2VzcyBvbmx5IGFycmF5cyBhbmQgb2JqZWN0c1xuICAgIGlmICh0eXBlb2Ygc2NoZW1hICE9PSBcIm9iamVjdFwiIHx8IHNjaGVtYSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gbm8gaWQgbWVhbnMgcm9vdCBzbyByZXR1cm4gaXRzZWxmXG4gICAgaWYgKCFpZCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIGlmIChzY2hlbWEuaWQpIHtcbiAgICAgICAgaWYgKHNjaGVtYS5pZCA9PT0gaWQgfHwgc2NoZW1hLmlkWzBdID09PSBcIiNcIiAmJiBzY2hlbWEuaWQuc3Vic3RyaW5nKDEpID09PSBpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBpZHgsIHJlc3VsdDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgICAgIGlkeCA9IHNjaGVtYS5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZmluZElkKHNjaGVtYVtpZHhdLCBpZCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7IHJldHVybiByZXN1bHQ7IH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hKTtcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIGsgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICBpZiAoay5pbmRleE9mKFwiX18kXCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQgPSBmaW5kSWQoc2NoZW1hW2tdLCBpZCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7IHJldHVybiByZXN1bHQ7IH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0cy5jYWNoZVNjaGVtYUJ5VXJpID0gZnVuY3Rpb24gKHVyaSwgc2NoZW1hKSB7XG4gICAgdmFyIHJlbW90ZVBhdGggPSBnZXRSZW1vdGVQYXRoKHVyaSk7XG4gICAgaWYgKHJlbW90ZVBhdGgpIHtcbiAgICAgICAgdGhpcy5jYWNoZVtyZW1vdGVQYXRoXSA9IHNjaGVtYTtcbiAgICB9XG59O1xuXG5leHBvcnRzLnJlbW92ZUZyb21DYWNoZUJ5VXJpID0gZnVuY3Rpb24gKHVyaSkge1xuICAgIHZhciByZW1vdGVQYXRoID0gZ2V0UmVtb3RlUGF0aCh1cmkpO1xuICAgIGlmIChyZW1vdGVQYXRoKSB7XG4gICAgICAgIHRoaXMuY2FjaGVbcmVtb3RlUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgfVxufTtcblxuZXhwb3J0cy5jaGVja0NhY2hlRm9yVXJpID0gZnVuY3Rpb24gKHVyaSkge1xuICAgIHZhciByZW1vdGVQYXRoID0gZ2V0UmVtb3RlUGF0aCh1cmkpO1xuICAgIHJldHVybiByZW1vdGVQYXRoID8gdGhpcy5jYWNoZVtyZW1vdGVQYXRoXSAhPSBudWxsIDogZmFsc2U7XG59O1xuXG5leHBvcnRzLmdldFNjaGVtYSA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgIGlmICh0eXBlb2Ygc2NoZW1hID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHNjaGVtYSA9IGV4cG9ydHMuZ2V0U2NoZW1hQnlSZWZlcmVuY2UuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygc2NoZW1hID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHNjaGVtYSA9IGV4cG9ydHMuZ2V0U2NoZW1hQnlVcmkuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiBzY2hlbWE7XG59O1xuXG5leHBvcnRzLmdldFNjaGVtYUJ5UmVmZXJlbmNlID0gZnVuY3Rpb24gKHJlcG9ydCwga2V5KSB7XG4gICAgdmFyIGkgPSB0aGlzLnJlZmVyZW5jZUNhY2hlLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIGlmICh0aGlzLnJlZmVyZW5jZUNhY2hlW2ldWzBdID09PSBrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZUNhY2hlW2ldWzFdO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIG5vdCBmb3VuZFxuICAgIHZhciBzY2hlbWEgPSBVdGlscy5jbG9uZURlZXAoa2V5KTtcbiAgICB0aGlzLnJlZmVyZW5jZUNhY2hlLnB1c2goW2tleSwgc2NoZW1hXSk7XG4gICAgcmV0dXJuIHNjaGVtYTtcbn07XG5cbmV4cG9ydHMuZ2V0U2NoZW1hQnlVcmkgPSBmdW5jdGlvbiAocmVwb3J0LCB1cmksIHJvb3QpIHtcbiAgICB2YXIgcmVtb3RlUGF0aCA9IGdldFJlbW90ZVBhdGgodXJpKSxcbiAgICAgICAgcXVlcnlQYXRoID0gZ2V0UXVlcnlQYXRoKHVyaSksXG4gICAgICAgIHJlc3VsdCA9IHJlbW90ZVBhdGggPyB0aGlzLmNhY2hlW3JlbW90ZVBhdGhdIDogcm9vdDtcblxuICAgIGlmIChyZXN1bHQgJiYgcmVtb3RlUGF0aCkge1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIGF2b2lkIGNvbXBpbGluZyBzY2hlbWFzIGluIGEgcmVjdXJzaXZlIGxvb3BcbiAgICAgICAgdmFyIGNvbXBpbGVSZW1vdGUgPSByZXN1bHQgIT09IHJvb3Q7XG4gICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGNvbXBpbGUgYW5kIHZhbGlkYXRlIHJlc29sdmVkIHNjaGVtYSAoaW4gY2FzZSBpdCdzIG5vdCBhbHJlYWR5KVxuICAgICAgICBpZiAoY29tcGlsZVJlbW90ZSkge1xuXG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKHJlbW90ZVBhdGgpO1xuXG4gICAgICAgICAgICB2YXIgcmVtb3RlUmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQpO1xuICAgICAgICAgICAgaWYgKFNjaGVtYUNvbXBpbGF0aW9uLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCByZW1vdGVSZXBvcnQsIHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICBTY2hlbWFWYWxpZGF0aW9uLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVtb3RlUmVwb3J0LCByZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHJlbW90ZVJlcG9ydElzVmFsaWQgPSByZW1vdGVSZXBvcnQuaXNWYWxpZCgpO1xuICAgICAgICAgICAgaWYgKCFyZW1vdGVSZXBvcnRJc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiUkVNT1RFX05PVF9WQUxJRFwiLCBbdXJpXSwgcmVtb3RlUmVwb3J0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG5cbiAgICAgICAgICAgIGlmICghcmVtb3RlUmVwb3J0SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0ICYmIHF1ZXJ5UGF0aCkge1xuICAgICAgICB2YXIgcGFydHMgPSBxdWVyeVBhdGguc3BsaXQoXCIvXCIpO1xuICAgICAgICBmb3IgKHZhciBpZHggPSAwLCBsaW0gPSBwYXJ0cy5sZW5ndGg7IGlkeCA8IGxpbTsgaWR4KyspIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBkZWNvZGVKU09OUG9pbnRlcihwYXJ0c1tpZHhdKTtcbiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsgLy8gaXQncyBhbiBpZFxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpbmRJZChyZXN1bHQsIGtleSk7XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBpdCdzIGEgcGF0aCBiZWhpbmQgaWRcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHRba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnRzLmdldFJlbW90ZVBhdGggPSBnZXRSZW1vdGVQYXRoO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBSZXBvcnQgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKTtcbnZhciBTY2hlbWFDYWNoZSA9IHJlcXVpcmUoXCIuL1NjaGVtYUNhY2hlXCIpO1xudmFyIFV0aWxzICAgICAgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5cbmZ1bmN0aW9uIG1lcmdlUmVmZXJlbmNlKHNjb3BlLCByZWYpIHtcbiAgICBpZiAoVXRpbHMuaXNBYnNvbHV0ZVVyaShyZWYpKSB7XG4gICAgICAgIHJldHVybiByZWY7XG4gICAgfVxuXG4gICAgdmFyIGpvaW5lZFNjb3BlID0gc2NvcGUuam9pbihcIlwiKSxcbiAgICAgICAgaXNTY29wZUFic29sdXRlID0gVXRpbHMuaXNBYnNvbHV0ZVVyaShqb2luZWRTY29wZSksXG4gICAgICAgIGlzU2NvcGVSZWxhdGl2ZSA9IFV0aWxzLmlzUmVsYXRpdmVVcmkoam9pbmVkU2NvcGUpLFxuICAgICAgICBpc1JlZlJlbGF0aXZlID0gVXRpbHMuaXNSZWxhdGl2ZVVyaShyZWYpLFxuICAgICAgICB0b1JlbW92ZTtcblxuICAgIGlmIChpc1Njb3BlQWJzb2x1dGUgJiYgaXNSZWZSZWxhdGl2ZSkge1xuICAgICAgICB0b1JlbW92ZSA9IGpvaW5lZFNjb3BlLm1hdGNoKC9cXC9bXlxcL10qJC8pO1xuICAgICAgICBpZiAodG9SZW1vdmUpIHtcbiAgICAgICAgICAgIGpvaW5lZFNjb3BlID0gam9pbmVkU2NvcGUuc2xpY2UoMCwgdG9SZW1vdmUuaW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNTY29wZVJlbGF0aXZlICYmIGlzUmVmUmVsYXRpdmUpIHtcbiAgICAgICAgam9pbmVkU2NvcGUgPSBcIlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRvUmVtb3ZlID0gam9pbmVkU2NvcGUubWF0Y2goL1teIy9dKyQvKTtcbiAgICAgICAgaWYgKHRvUmVtb3ZlKSB7XG4gICAgICAgICAgICBqb2luZWRTY29wZSA9IGpvaW5lZFNjb3BlLnNsaWNlKDAsIHRvUmVtb3ZlLmluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZXMgPSBqb2luZWRTY29wZSArIHJlZjtcbiAgICByZXMgPSByZXMucmVwbGFjZSgvIyMvLCBcIiNcIik7XG4gICAgcmV0dXJuIHJlcztcbn1cblxuZnVuY3Rpb24gY29sbGVjdFJlZmVyZW5jZXMob2JqLCByZXN1bHRzLCBzY29wZSwgcGF0aCkge1xuICAgIHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuICAgIHNjb3BlID0gc2NvcGUgfHwgW107XG4gICAgcGF0aCA9IHBhdGggfHwgW107XG5cbiAgICBpZiAodHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCBvYmogPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouaWQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc2NvcGUucHVzaChvYmouaWQpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb2JqLiRyZWYgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIG9iai5fXyRyZWZSZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXN1bHRzLnB1c2goe1xuICAgICAgICAgICAgcmVmOiBtZXJnZVJlZmVyZW5jZShzY29wZSwgb2JqLiRyZWYpLFxuICAgICAgICAgICAga2V5OiBcIiRyZWZcIixcbiAgICAgICAgICAgIG9iajogb2JqLFxuICAgICAgICAgICAgcGF0aDogcGF0aC5zbGljZSgwKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvYmouJHNjaGVtYSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2Ygb2JqLl9fJHNjaGVtYVJlc29sdmVkID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgICByZWY6IG1lcmdlUmVmZXJlbmNlKHNjb3BlLCBvYmouJHNjaGVtYSksXG4gICAgICAgICAgICBrZXk6IFwiJHNjaGVtYVwiLFxuICAgICAgICAgICAgb2JqOiBvYmosXG4gICAgICAgICAgICBwYXRoOiBwYXRoLnNsaWNlKDApXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciBpZHg7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICBpZHggPSBvYmoubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBjb2xsZWN0UmVmZXJlbmNlcyhvYmpbaWR4XSwgcmVzdWx0cywgc2NvcGUsIHBhdGgpO1xuICAgICAgICAgICAgcGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgLy8gZG8gbm90IHJlY3Vyc2UgdGhyb3VnaCByZXNvbHZlZCByZWZlcmVuY2VzIGFuZCBvdGhlciB6LXNjaGVtYSBwcm9wc1xuICAgICAgICAgICAgaWYgKGtleXNbaWR4XS5pbmRleE9mKFwiX18kXCIpID09PSAwKSB7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICBwYXRoLnB1c2goa2V5c1tpZHhdKTtcbiAgICAgICAgICAgIGNvbGxlY3RSZWZlcmVuY2VzKG9ialtrZXlzW2lkeF1dLCByZXN1bHRzLCBzY29wZSwgcGF0aCk7XG4gICAgICAgICAgICBwYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouaWQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc2NvcGUucG9wKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbnZhciBjb21waWxlQXJyYXlPZlNjaGVtYXNMb29wID0gZnVuY3Rpb24gKG1haW5SZXBvcnQsIGFycikge1xuICAgIHZhciBpZHggPSBhcnIubGVuZ3RoLFxuICAgICAgICBjb21waWxlZENvdW50ID0gMDtcblxuICAgIHdoaWxlIChpZHgtLSkge1xuXG4gICAgICAgIC8vIHRyeSB0byBjb21waWxlIGVhY2ggc2NoZW1hIHNlcGFyYXRlbHlcbiAgICAgICAgdmFyIHJlcG9ydCA9IG5ldyBSZXBvcnQobWFpblJlcG9ydCk7XG4gICAgICAgIHZhciBpc1ZhbGlkID0gZXhwb3J0cy5jb21waWxlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBhcnJbaWR4XSk7XG4gICAgICAgIGlmIChpc1ZhbGlkKSB7IGNvbXBpbGVkQ291bnQrKzsgfVxuXG4gICAgICAgIC8vIGNvcHkgZXJyb3JzIHRvIHJlcG9ydFxuICAgICAgICBtYWluUmVwb3J0LmVycm9ycyA9IG1haW5SZXBvcnQuZXJyb3JzLmNvbmNhdChyZXBvcnQuZXJyb3JzKTtcblxuICAgIH1cblxuICAgIHJldHVybiBjb21waWxlZENvdW50O1xufTtcblxuZnVuY3Rpb24gZmluZElkKGFyciwgaWQpIHtcbiAgICB2YXIgaWR4ID0gYXJyLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgaWYgKGFycltpZHhdLmlkID09PSBpZCkge1xuICAgICAgICAgICAgcmV0dXJuIGFycltpZHhdO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG52YXIgY29tcGlsZUFycmF5T2ZTY2hlbWFzID0gZnVuY3Rpb24gKHJlcG9ydCwgYXJyKSB7XG5cbiAgICB2YXIgY29tcGlsZWQgPSAwLFxuICAgICAgICBsYXN0TG9vcENvbXBpbGVkO1xuXG4gICAgZG8ge1xuXG4gICAgICAgIC8vIHJlbW92ZSBhbGwgVU5SRVNPTFZBQkxFX1JFRkVSRU5DRSBlcnJvcnMgYmVmb3JlIGNvbXBpbGluZyBhcnJheSBhZ2FpblxuICAgICAgICB2YXIgaWR4ID0gcmVwb3J0LmVycm9ycy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgaWYgKHJlcG9ydC5lcnJvcnNbaWR4XS5jb2RlID09PSBcIlVOUkVTT0xWQUJMRV9SRUZFUkVOQ0VcIikge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5lcnJvcnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZW1lbWJlciBob3cgbWFueSB3ZXJlIGNvbXBpbGVkIGluIHRoZSBsYXN0IGxvb3BcbiAgICAgICAgbGFzdExvb3BDb21waWxlZCA9IGNvbXBpbGVkO1xuXG4gICAgICAgIC8vIGNvdW50IGhvdyBtYW55IGFyZSBjb21waWxlZCBub3dcbiAgICAgICAgY29tcGlsZWQgPSBjb21waWxlQXJyYXlPZlNjaGVtYXNMb29wLmNhbGwodGhpcywgcmVwb3J0LCBhcnIpO1xuXG4gICAgICAgIC8vIGZpeCBfXyRtaXNzaW5nUmVmZXJlbmNlcyBpZiBwb3NzaWJsZVxuICAgICAgICBpZHggPSBhcnIubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBzY2ggPSBhcnJbaWR4XTtcbiAgICAgICAgICAgIGlmIChzY2guX18kbWlzc2luZ1JlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWR4MiA9IHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVmT2JqID0gc2NoLl9fJG1pc3NpbmdSZWZlcmVuY2VzW2lkeDJdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBmaW5kSWQoYXJyLCByZWZPYmoucmVmKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1pZ2h0IGNyZWF0ZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZPYmoub2JqW1wiX19cIiArIHJlZk9iai5rZXkgKyBcIlJlc29sdmVkXCJdID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIHJlc29sdmVkIG5vdyBzbyBkZWxldGUgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcy5zcGxpY2UoaWR4MiwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBrZWVwIHJlcGVhdGluZyBpZiBub3QgYWxsIGNvbXBpbGVkIGFuZCBhdCBsZWFzdCBvbmUgbW9yZSB3YXMgY29tcGlsZWQgaW4gdGhlIGxhc3QgbG9vcFxuICAgIH0gd2hpbGUgKGNvbXBpbGVkICE9PSBhcnIubGVuZ3RoICYmIGNvbXBpbGVkICE9PSBsYXN0TG9vcENvbXBpbGVkKTtcblxuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xuXG59O1xuXG5leHBvcnRzLmNvbXBpbGVTY2hlbWEgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcblxuICAgIHJlcG9ydC5jb21tb25FcnJvck1lc3NhZ2UgPSBcIlNDSEVNQV9DT01QSUxBVElPTl9GQUlMRURcIjtcblxuICAgIC8vIGlmIHNjaGVtYSBpcyBhIHN0cmluZywgYXNzdW1lIGl0J3MgYSB1cmlcbiAgICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB2YXIgbG9hZGVkU2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hQnlVcmkuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgICAgIGlmICghbG9hZGVkU2NoZW1hKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJTQ0hFTUFfTk9UX1JFQUNIQUJMRVwiLCBbc2NoZW1hXSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgc2NoZW1hID0gbG9hZGVkU2NoZW1hO1xuICAgIH1cblxuICAgIC8vIGlmIHNjaGVtYSBpcyBhbiBhcnJheSwgYXNzdW1lIGl0J3MgYW4gYXJyYXkgb2Ygc2NoZW1hc1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBpbGVBcnJheU9mU2NoZW1hcy5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGFuIGlkIHRoYW4gaXQgc2hvdWxkIGJlIGNhY2hlZCBhbHJlYWR5IChpZiB0aGlzIGluc3RhbmNlIGhhcyBjb21waWxlZCBpdClcbiAgICBpZiAoc2NoZW1hLl9fJGNvbXBpbGVkICYmIHNjaGVtYS5pZCAmJiBTY2hlbWFDYWNoZS5jaGVja0NhY2hlRm9yVXJpLmNhbGwodGhpcywgc2NoZW1hLmlkKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgc2NoZW1hLl9fJGNvbXBpbGVkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGRvIG5vdCByZS1jb21waWxlIHNjaGVtYXNcbiAgICBpZiAoc2NoZW1hLl9fJGNvbXBpbGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzY2hlbWEuaWQpIHtcbiAgICAgICAgLy8gYWRkIHRoaXMgdG8gb3VyIHNjaGVtYUNhY2hlIChiZWZvcmUgY29tcGlsYXRpb24gaW4gY2FzZSB3ZSBoYXZlIHJlZmVyZW5jZXMgaW5jbHVkaW5nIGlkKVxuICAgICAgICBTY2hlbWFDYWNoZS5jYWNoZVNjaGVtYUJ5VXJpLmNhbGwodGhpcywgc2NoZW1hLmlkLCBzY2hlbWEpO1xuICAgIH1cblxuICAgIC8vIGRlbGV0ZSBhbGwgX18kbWlzc2luZ1JlZmVyZW5jZXMgZnJvbSBwcmV2aW91cyBjb21waWxhdGlvbiBhdHRlbXB0c1xuICAgIHZhciBpc1ZhbGlkRXhjZXB0UmVmZXJlbmNlcyA9IHJlcG9ydC5pc1ZhbGlkKCk7XG4gICAgZGVsZXRlIHNjaGVtYS5fXyRtaXNzaW5nUmVmZXJlbmNlcztcblxuICAgIC8vIGNvbGxlY3QgYWxsIHJlZmVyZW5jZXMgdGhhdCBuZWVkIHRvIGJlIHJlc29sdmVkIC0gJHJlZiBhbmQgJHNjaGVtYVxuICAgIHZhciByZWZzID0gY29sbGVjdFJlZmVyZW5jZXMuY2FsbCh0aGlzLCBzY2hlbWEpLFxuICAgICAgICBpZHggPSByZWZzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgLy8gcmVzb2x2ZSBhbGwgdGhlIGNvbGxlY3RlZCByZWZlcmVuY2VzIGludG8gX194eHhSZXNvbHZlZCBwb2ludGVyXG4gICAgICAgIHZhciByZWZPYmogPSByZWZzW2lkeF07XG4gICAgICAgIHZhciByZXNwb25zZSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYUJ5VXJpLmNhbGwodGhpcywgcmVwb3J0LCByZWZPYmoucmVmLCBzY2hlbWEpO1xuXG4gICAgICAgIC8vIHdlIGNhbiB0cnkgdG8gdXNlIGN1c3RvbSBzY2hlbWFSZWFkZXIgaWYgYXZhaWxhYmxlXG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBzY2hlbWFSZWFkZXIgPSB0aGlzLmdldFNjaGVtYVJlYWRlcigpO1xuICAgICAgICAgICAgaWYgKHNjaGVtYVJlYWRlcikge1xuICAgICAgICAgICAgICAgIC8vIGl0J3Mgc3VwcG9zZWQgdG8gcmV0dXJuIGEgdmFsaWQgc2NoZW1hXG4gICAgICAgICAgICAgICAgdmFyIHMgPSBzY2hlbWFSZWFkZXIocmVmT2JqLnJlZik7XG4gICAgICAgICAgICAgICAgaWYgKHMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQgbmVlZHMgdG8gaGF2ZSB0aGUgaWRcbiAgICAgICAgICAgICAgICAgICAgcy5pZCA9IHJlZk9iai5yZWY7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRyeSB0byBjb21waWxlIHRoZSBzY2hlbWFcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1YnJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleHBvcnRzLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzdWJyZXBvcnQsIHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3B5IGVycm9ycyB0byByZXBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5lcnJvcnMgPSByZXBvcnQuZXJyb3JzLmNvbmNhdChzdWJyZXBvcnQuZXJyb3JzKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hQnlVcmkuY2FsbCh0aGlzLCByZXBvcnQsIHJlZk9iai5yZWYsIHNjaGVtYSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG5cbiAgICAgICAgICAgIHZhciBpc0Fic29sdXRlID0gVXRpbHMuaXNBYnNvbHV0ZVVyaShyZWZPYmoucmVmKTtcbiAgICAgICAgICAgIHZhciBpc0Rvd25sb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBpZ25vcmVVbnJlc29sdmFibGVSZW1vdGVzID0gdGhpcy5vcHRpb25zLmlnbm9yZVVucmVzb2x2YWJsZVJlZmVyZW5jZXMgPT09IHRydWU7XG5cbiAgICAgICAgICAgIGlmIChpc0Fic29sdXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IGFkZCBVTlJFU09MVkFCTEVfUkVGRVJFTkNFIGZvciBzY2hlbWFzIHdlIGFscmVhZHkgaGF2ZSBkb3dubG9hZGVkXG4gICAgICAgICAgICAgICAgLy8gYW5kIHNldCB0aHJvdWdoIHNldFJlbW90ZVJlZmVyZW5jZSBtZXRob2RcbiAgICAgICAgICAgICAgICBpc0Rvd25sb2FkZWQgPSBTY2hlbWFDYWNoZS5jaGVja0NhY2hlRm9yVXJpLmNhbGwodGhpcywgcmVmT2JqLnJlZik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNBYnNvbHV0ZSB8fCAhaXNEb3dubG9hZGVkICYmICFpZ25vcmVVbnJlc29sdmFibGVSZW1vdGVzKSB7XG4gICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkocmVwb3J0LnBhdGgsIHJlZk9iai5wYXRoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJVTlJFU09MVkFCTEVfUkVGRVJFTkNFXCIsIFtyZWZPYmoucmVmXSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGguc2xpY2UoMCwgLXJlZk9iai5wYXRoLmxlbmd0aCk7XG5cbiAgICAgICAgICAgICAgICAvLyBwdXNibGlzaCB1bnJlc29sdmVkIHJlZmVyZW5jZXMgb3V0XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRFeGNlcHRSZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5fXyRtaXNzaW5nUmVmZXJlbmNlcyA9IHNjaGVtYS5fXyRtaXNzaW5nUmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLl9fJG1pc3NpbmdSZWZlcmVuY2VzLnB1c2gocmVmT2JqKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcyBtaWdodCBjcmVhdGUgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICByZWZPYmoub2JqW1wiX19cIiArIHJlZk9iai5rZXkgKyBcIlJlc29sdmVkXCJdID0gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgdmFyIGlzVmFsaWQgPSByZXBvcnQuaXNWYWxpZCgpO1xuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIHNjaGVtYS5fXyRjb21waWxlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNjaGVtYS5pZCkge1xuICAgICAgICAgICAgLy8gcmVtb3ZlIHRoaXMgc2NoZW1hIGZyb20gc2NoZW1hQ2FjaGUgYmVjYXVzZSBpdCBmYWlsZWQgdG8gY29tcGlsZVxuICAgICAgICAgICAgU2NoZW1hQ2FjaGUucmVtb3ZlRnJvbUNhY2hlQnlVcmkuY2FsbCh0aGlzLCBzY2hlbWEuaWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkO1xuXG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBGb3JtYXRWYWxpZGF0b3JzID0gcmVxdWlyZShcIi4vRm9ybWF0VmFsaWRhdG9yc1wiKSxcbiAgICBKc29uVmFsaWRhdGlvbiAgID0gcmVxdWlyZShcIi4vSnNvblZhbGlkYXRpb25cIiksXG4gICAgUmVwb3J0ICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKSxcbiAgICBVdGlscyAgICAgICAgICAgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5cbnZhciBTY2hlbWFWYWxpZGF0b3JzID0ge1xuICAgICRyZWY6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWFwcHNhd2ctanNvbi1wb2ludGVyLTA3XG4gICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXBicnlhbi16eXAtanNvbi1yZWYtMDNcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuJHJlZiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIiRyZWZcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICAkc2NoZW1hOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5zZWN0aW9uLjZcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuJHNjaGVtYSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIiRzY2hlbWFcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtdWx0aXBsZU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4xLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEubXVsdGlwbGVPZiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm11bHRpcGxlT2ZcIiwgXCJudW1iZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5tdWx0aXBsZU9mIDw9IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtdWx0aXBsZU9mXCIsIFwic3RyaWN0bHkgZ3JlYXRlciB0aGFuIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhpbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4yLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEubWF4aW11bSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1heGltdW1cIiwgXCJudW1iZXJcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBleGNsdXNpdmVNYXhpbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4yLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuZXhjbHVzaXZlTWF4aW11bSAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJleGNsdXNpdmVNYXhpbXVtXCIsIFwiYm9vbGVhblwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heGltdW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9ERVBFTkRFTkNZXCIsIFtcImV4Y2x1c2l2ZU1heGltdW1cIiwgXCJtYXhpbXVtXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluaW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMy4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLm1pbmltdW0gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtaW5pbXVtXCIsIFwibnVtYmVyXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZXhjbHVzaXZlTWluaW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMy4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmV4Y2x1c2l2ZU1pbmltdW0gIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZXhjbHVzaXZlTWluaW11bVwiLCBcImJvb2xlYW5cIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5taW5pbXVtID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfREVQRU5ERU5DWVwiLCBbXCJleGNsdXNpdmVNaW5pbXVtXCIsIFwibWluaW11bVwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heExlbmd0aDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMS4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLm1heExlbmd0aCkgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWF4TGVuZ3RoXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heExlbmd0aCA8IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtYXhMZW5ndGhcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5MZW5ndGg6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4yLjIuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5taW5MZW5ndGgpICE9PSBcImludGVnZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1pbkxlbmd0aFwiLCBcImludGVnZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5taW5MZW5ndGggPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWluTGVuZ3RoXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGF0dGVybjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMy4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLnBhdHRlcm4gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJwYXR0ZXJuXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgUmVnRXhwKHNjaGVtYS5wYXR0ZXJuKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1BBVFRFUk5cIiwgW1wicGF0dGVyblwiLCBzY2hlbWEucGF0dGVybl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhZGRpdGlvbmFsSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjEuMVxuICAgICAgICB2YXIgdHlwZSA9IFV0aWxzLndoYXRJcyhzY2hlbWEuYWRkaXRpb25hbEl0ZW1zKTtcbiAgICAgICAgaWYgKHR5cGUgIT09IFwiYm9vbGVhblwiICYmIHR5cGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJhZGRpdGlvbmFsSXRlbXNcIiwgW1wiYm9vbGVhblwiLCBcIm9iamVjdFwiXV0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJhZGRpdGlvbmFsSXRlbXNcIik7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMS4xXG4gICAgICAgIHZhciB0eXBlID0gVXRpbHMud2hhdElzKHNjaGVtYS5pdGVtcyk7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJpdGVtc1wiKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5pdGVtcyk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEuaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5pdGVtc1tpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJpdGVtc1wiLCBbXCJhcnJheVwiLCBcIm9iamVjdFwiXV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3VzdG9tIC0gc3RyaWN0IG1vZGVcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZUFkZGl0aW9uYWwgPT09IHRydWUgJiYgc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gdW5kZWZpbmVkICYmIEFycmF5LmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcImFkZGl0aW9uYWxJdGVtc1wiXSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VzdG9tZSAtIGFzc3VtZSBkZWZpbmVkIGZhbHNlIG1vZGVcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hc3N1bWVBZGRpdGlvbmFsID09PSB0cnVlICYmIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMgPT09IHVuZGVmaW5lZCAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgICAgIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4SXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjIuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5tYXhJdGVtcyAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1heEl0ZW1zXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heEl0ZW1zIDwgMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm1heEl0ZW1zXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjMuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5taW5JdGVtcykgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWluSXRlbXNcIiwgXCJpbnRlZ2VyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWluSXRlbXMgPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWluSXRlbXNcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB1bmlxdWVJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuNC4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLnVuaXF1ZUl0ZW1zICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInVuaXF1ZUl0ZW1zXCIsIFwiYm9vbGVhblwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heFByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjEuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5tYXhQcm9wZXJ0aWVzKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtYXhQcm9wZXJ0aWVzXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heFByb3BlcnRpZXMgPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWF4UHJvcGVydGllc1wiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pblByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjIuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5taW5Qcm9wZXJ0aWVzKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtaW5Qcm9wZXJ0aWVzXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1pblByb3BlcnRpZXMgPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWluUHJvcGVydGllc1wiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJlcXVpcmVkOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4zLjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEucmVxdWlyZWQpICE9PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJyZXF1aXJlZFwiLCBcImFycmF5XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEucmVxdWlyZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wicmVxdWlyZWRcIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEucmVxdWlyZWQubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEucmVxdWlyZWRbaWR4XSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1ZBTFVFX1RZUEVcIiwgW1wicmVxdWlyZWRcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYS5yZXF1aXJlZCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcInJlcXVpcmVkXCIsIFwiYW4gYXJyYXkgd2l0aCB1bmlxdWUgaXRlbXNcIl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNC4xXG4gICAgICAgIHZhciB0eXBlID0gVXRpbHMud2hhdElzKHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgIGlmICh0eXBlICE9PSBcImJvb2xlYW5cIiAmJiB0eXBlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiYWRkaXRpb25hbFByb3BlcnRpZXNcIiwgW1wiYm9vbGVhblwiLCBcIm9iamVjdFwiXV0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNC4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLnByb3BlcnRpZXMpICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wicHJvcGVydGllc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5wcm9wZXJ0aWVzKSxcbiAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF0sXG4gICAgICAgICAgICAgICAgdmFsID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJwcm9wZXJ0aWVzXCIpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChrZXkpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgdmFsKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjdXN0b20gLSBzdHJpY3QgbW9kZVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlQWRkaXRpb25hbCA9PT0gdHJ1ZSAmJiBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjdXN0b21lIC0gYXNzdW1lIGRlZmluZWQgZmFsc2UgbW9kZVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFzc3VtZUFkZGl0aW9uYWwgPT09IHRydWUgJiYgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGN1c3RvbSAtIGZvcmNlUHJvcGVydGllc1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlUHJvcGVydGllcyA9PT0gdHJ1ZSAmJiBrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQ1VTVE9NX01PREVfRk9SQ0VfUFJPUEVSVElFU1wiLCBbXCJwcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGF0dGVyblByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjQuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcykgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJwYXR0ZXJuUHJvcGVydGllc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyksXG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdLFxuICAgICAgICAgICAgICAgIHZhbCA9IHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllc1trZXldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBSZWdFeHAoa2V5KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1BBVFRFUk5cIiwgW1wicGF0dGVyblByb3BlcnRpZXNcIiwga2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwicGF0dGVyblByb3BlcnRpZXNcIik7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGtleS50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHZhbCk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3VzdG9tIC0gZm9yY2VQcm9wZXJ0aWVzXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VQcm9wZXJ0aWVzID09PSB0cnVlICYmIGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJDVVNUT01fTU9ERV9GT1JDRV9QUk9QRVJUSUVTXCIsIFtcInBhdHRlcm5Qcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC41LjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEuZGVwZW5kZW5jaWVzKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImRlcGVuZGVuY2llc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNjaGVtYUtleSA9IGtleXNbaWR4XSxcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hRGVwZW5kZW5jeSA9IHNjaGVtYS5kZXBlbmRlbmNpZXNbc2NoZW1hS2V5XSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFV0aWxzLndoYXRJcyhzY2hlbWFEZXBlbmRlbmN5KTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJkZXBlbmRlbmNpZXNcIik7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goc2NoZW1hS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hRGVwZW5kZW5jeSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaWR4MiA9IHNjaGVtYURlcGVuZGVuY3kubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaWR4MiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImRlcGVuZGVuY2llc1wiLCBcIm5vdCBlbXB0eSBhcnJheVwiXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWFEZXBlbmRlbmN5W2lkeDJdICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9WQUxVRV9UWVBFXCIsIFtcImRlcGVuZGVuc2ljZXNcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYURlcGVuZGVuY3kpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImRlcGVuZGVuY2llc1wiLCBcImFuIGFycmF5IHdpdGggdW5pcXVlIGl0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVkFMVUVfVFlQRVwiLCBbXCJkZXBlbmRlbmNpZXNcIiwgXCJvYmplY3Qgb3IgYXJyYXlcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZW51bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMS4xXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5lbnVtKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJlbnVtXCIsIFwiYXJyYXlcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5lbnVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImVudW1cIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYS5lbnVtKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJlbnVtXCIsIFwiYW4gYXJyYXkgd2l0aCB1bmlxdWUgZWxlbWVudHNcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB0eXBlOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4yLjFcbiAgICAgICAgdmFyIHByaW1pdGl2ZVR5cGVzID0gW1wiYXJyYXlcIiwgXCJib29sZWFuXCIsIFwiaW50ZWdlclwiLCBcIm51bWJlclwiLCBcIm51bGxcIiwgXCJvYmplY3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICBwcmltaXRpdmVUeXBlU3RyID0gcHJpbWl0aXZlVHlwZXMuam9pbihcIixcIiksXG4gICAgICAgICAgICBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShzY2hlbWEudHlwZSk7XG5cbiAgICAgICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEudHlwZS5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVHlwZXMuaW5kZXhPZihzY2hlbWEudHlwZVtpZHhdKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInR5cGVcIiwgcHJpbWl0aXZlVHlwZVN0cl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYS50eXBlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1widHlwZVwiLCBcImFuIG9iamVjdCB3aXRoIHVuaXF1ZSBwcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2NoZW1hLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGlmIChwcmltaXRpdmVUeXBlcy5pbmRleE9mKHNjaGVtYS50eXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1widHlwZVwiLCBwcmltaXRpdmVUeXBlU3RyXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1widHlwZVwiLCBbXCJzdHJpbmdcIiwgXCJhcnJheVwiXV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ub0VtcHR5U3RyaW5ncyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcInN0cmluZ1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1pbkxlbmd0aCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5lbnVtID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLm1pbkxlbmd0aCA9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubm9FbXB0eUFycmF5cyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcImFycmF5XCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwiYXJyYXlcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5taW5JdGVtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5taW5JdGVtcyA9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VQcm9wZXJ0aWVzID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwib2JqZWN0XCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwib2JqZWN0XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEucHJvcGVydGllcyA9PT0gdW5kZWZpbmVkICYmIHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJwcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZUl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYXJyYXlcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJhcnJheVwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLml0ZW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIml0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZU1pbkl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYXJyYXlcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJhcnJheVwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1pbkl0ZW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIm1pbkl0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZU1heEl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYXJyYXlcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJhcnJheVwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1heEl0ZW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIm1heEl0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZU1pbkxlbmd0aCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcInN0cmluZ1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1pbkxlbmd0aCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5mb3JtYXQgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZW51bSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5wYXR0ZXJuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIm1pbkxlbmd0aFwiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VNYXhMZW5ndGggPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJzdHJpbmdcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5tYXhMZW5ndGggPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZm9ybWF0ID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmVudW0gPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEucGF0dGVybiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJtYXhMZW5ndGhcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWxsT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjMuMVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuYWxsT2YpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImFsbE9mXCIsIFwiYXJyYXlcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5hbGxPZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJhbGxPZlwiLCBcImFuIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnRcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5hbGxPZi5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiYWxsT2ZcIik7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFsbE9mW2lkeF0pO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhbnlPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNC4xXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5hbnlPZikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiYW55T2ZcIiwgXCJhcnJheVwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLmFueU9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImFueU9mXCIsIFwiYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLmFueU9mLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJhbnlPZlwiKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYW55T2ZbaWR4XSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG9uZU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS41LjFcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLm9uZU9mKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJvbmVPZlwiLCBcImFycmF5XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEub25lT2YubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wib25lT2ZcIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEub25lT2YubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcIm9uZU9mXCIpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5vbmVPZltpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgbm90OiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS42LjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEubm90KSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm5vdFwiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwibm90XCIpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLm5vdCk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVmaW5pdGlvbnM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjcuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5kZWZpbml0aW9ucykgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJkZWZpbml0aW9uc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5kZWZpbml0aW9ucyksXG4gICAgICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdLFxuICAgICAgICAgICAgICAgICAgICB2YWwgPSBzY2hlbWEuZGVmaW5pdGlvbnNba2V5XTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiZGVmaW5pdGlvbnNcIik7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHZhbCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGZvcm1hdDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmZvcm1hdCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImZvcm1hdFwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoRm9ybWF0VmFsaWRhdG9yc1tzY2hlbWEuZm9ybWF0XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiVU5LTk9XTl9GT1JNQVRcIiwgW3NjaGVtYS5mb3JtYXRdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgaWQ6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS1jb3JlLmh0bWwjcmZjLnNlY3Rpb24uNy4yXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmlkICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiaWRcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB0aXRsZTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi42LjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEudGl0bGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJ0aXRsZVwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGRlc2NyaXB0aW9uOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjYuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5kZXNjcmlwdGlvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImRlc2NyaXB0aW9uXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJkZWZhdWx0XCI6IGZ1bmN0aW9uICgvKiByZXBvcnQsIHNjaGVtYSAqLykge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNi4yXG4gICAgICAgIC8vIFRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgcGxhY2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGlzIGtleXdvcmQuXG4gICAgfVxufTtcblxudmFyIHZhbGlkYXRlQXJyYXlPZlNjaGVtYXMgPSBmdW5jdGlvbiAocmVwb3J0LCBhcnIpIHtcbiAgICB2YXIgaWR4ID0gYXJyLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgYXJyW2lkeF0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVwb3J0LmlzVmFsaWQoKTtcbn07XG5cbmV4cG9ydHMudmFsaWRhdGVTY2hlbWEgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcblxuICAgIHJlcG9ydC5jb21tb25FcnJvck1lc3NhZ2UgPSBcIlNDSEVNQV9WQUxJREFUSU9OX0ZBSUxFRFwiO1xuXG4gICAgLy8gaWYgc2NoZW1hIGlzIGFuIGFycmF5LCBhc3N1bWUgaXQncyBhbiBhcnJheSBvZiBzY2hlbWFzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hKSkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVBcnJheU9mU2NoZW1hcy5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG5cbiAgICAvLyBkbyBub3QgcmV2YWxpZGF0ZSBzY2hlbWEgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZCBvbmNlXG4gICAgaWYgKHNjaGVtYS5fXyR2YWxpZGF0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaWYgJHNjaGVtYSBpcyBwcmVzZW50LCB0aGlzIHNjaGVtYSBzaG91bGQgdmFsaWRhdGUgYWdhaW5zdCB0aGF0ICRzY2hlbWFcbiAgICB2YXIgaGFzUGFyZW50U2NoZW1hID0gc2NoZW1hLiRzY2hlbWEgJiYgc2NoZW1hLmlkICE9PSBzY2hlbWEuJHNjaGVtYTtcbiAgICBpZiAoaGFzUGFyZW50U2NoZW1hKSB7XG4gICAgICAgIGlmIChzY2hlbWEuX18kc2NoZW1hUmVzb2x2ZWQgJiYgc2NoZW1hLl9fJHNjaGVtYVJlc29sdmVkICE9PSBzY2hlbWEpIHtcbiAgICAgICAgICAgIHZhciBzdWJSZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCk7XG4gICAgICAgICAgICB2YXIgdmFsaWQgPSBKc29uVmFsaWRhdGlvbi52YWxpZGF0ZS5jYWxsKHRoaXMsIHN1YlJlcG9ydCwgc2NoZW1hLl9fJHNjaGVtYVJlc29sdmVkLCBzY2hlbWEpO1xuICAgICAgICAgICAgaWYgKHZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlBBUkVOVF9TQ0hFTUFfVkFMSURBVElPTl9GQUlMRURcIiwgbnVsbCwgc3ViUmVwb3J0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlVW5yZXNvbHZhYmxlUmVmZXJlbmNlcyAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlJFRl9VTlJFU09MVkVEXCIsIFtzY2hlbWEuJHNjaGVtYV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5ub1R5cGVsZXNzID09PSB0cnVlKSB7XG4gICAgICAgIC8vIGlzc3VlICMzNiAtIGluaGVyaXQgdHlwZSB0byBhbnlPZiwgb25lT2YsIGFsbE9mIGlmIG5vVHlwZWxlc3MgaXMgZGVmaW5lZFxuICAgICAgICBpZiAoc2NoZW1hLnR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFyIHNjaGVtYXMgPSBbXTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5hbnlPZikpIHsgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHNjaGVtYS5hbnlPZik7IH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5vbmVPZikpIHsgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHNjaGVtYS5vbmVPZik7IH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5hbGxPZikpIHsgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHNjaGVtYS5hbGxPZik7IH1cbiAgICAgICAgICAgIHNjaGVtYXMuZm9yRWFjaChmdW5jdGlvbiAoc2NoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzY2gudHlwZSkgeyBzY2gudHlwZSA9IHNjaGVtYS50eXBlOyB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbmQgaXNzdWUgIzM2XG4gICAgICAgIGlmIChzY2hlbWEuZW51bSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBzY2hlbWEudHlwZSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBzY2hlbWEuYW55T2YgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgc2NoZW1hLm9uZU9mID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHNjaGVtYS5ub3QgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgc2NoZW1hLiRyZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcInR5cGVcIl0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEpLFxuICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XTtcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKFwiX19cIikgPT09IDApIHsgY29udGludWU7IH1cbiAgICAgICAgaWYgKFNjaGVtYVZhbGlkYXRvcnNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBTY2hlbWFWYWxpZGF0b3JzW2tleV0uY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc1BhcmVudFNjaGVtYSkge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ub0V4dHJhS2V5d29yZHMgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VORVhQRUNURURcIiwgW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlzVmFsaWQgPSByZXBvcnQuaXNWYWxpZCgpO1xuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIHNjaGVtYS5fXyR2YWxpZGF0ZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZDtcblxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLmlzQWJzb2x1dGVVcmkgPSBmdW5jdGlvbiAodXJpKSB7XG4gICAgcmV0dXJuIC9eaHR0cHM/OlxcL1xcLy8udGVzdCh1cmkpO1xufTtcblxuZXhwb3J0cy5pc1JlbGF0aXZlVXJpID0gZnVuY3Rpb24gKHVyaSkge1xuICAgIC8vIHJlbGF0aXZlIFVSSXMgdGhhdCBlbmQgd2l0aCBhIGhhc2ggc2lnbiwgaXNzdWUgIzU2XG4gICAgcmV0dXJuIC8uKyMvLnRlc3QodXJpKTtcbn07XG5cbmV4cG9ydHMud2hhdElzID0gZnVuY3Rpb24gKHdoYXQpIHtcblxuICAgIHZhciB0byA9IHR5cGVvZiB3aGF0O1xuXG4gICAgaWYgKHRvID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGlmICh3aGF0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkod2hhdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFycmF5XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwib2JqZWN0XCI7IC8vIHR5cGVvZiB3aGF0ID09PSAnb2JqZWN0JyAmJiB3aGF0ID09PSBPYmplY3Qod2hhdCkgJiYgIUFycmF5LmlzQXJyYXkod2hhdCk7XG4gICAgfVxuXG4gICAgaWYgKHRvID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIGlmIChOdW1iZXIuaXNGaW5pdGUod2hhdCkpIHtcbiAgICAgICAgICAgIGlmICh3aGF0ICUgMSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcImludGVnZXJcIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnVtYmVyXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTih3aGF0KSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibm90LWEtbnVtYmVyXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwidW5rbm93bi1udW1iZXJcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gdG87IC8vIHVuZGVmaW5lZCwgYm9vbGVhbiwgc3RyaW5nLCBmdW5jdGlvblxuXG59O1xuXG5leHBvcnRzLmFyZUVxdWFsID0gZnVuY3Rpb24gYXJlRXF1YWwoanNvbjEsIGpzb24yKSB7XG4gICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5zZWN0aW9uLjMuNlxuXG4gICAgLy8gVHdvIEpTT04gdmFsdWVzIGFyZSBzYWlkIHRvIGJlIGVxdWFsIGlmIGFuZCBvbmx5IGlmOlxuICAgIC8vIGJvdGggYXJlIG51bGxzOyBvclxuICAgIC8vIGJvdGggYXJlIGJvb2xlYW5zLCBhbmQgaGF2ZSB0aGUgc2FtZSB2YWx1ZTsgb3JcbiAgICAvLyBib3RoIGFyZSBzdHJpbmdzLCBhbmQgaGF2ZSB0aGUgc2FtZSB2YWx1ZTsgb3JcbiAgICAvLyBib3RoIGFyZSBudW1iZXJzLCBhbmQgaGF2ZSB0aGUgc2FtZSBtYXRoZW1hdGljYWwgdmFsdWU7IG9yXG4gICAgaWYgKGpzb24xID09PSBqc29uMikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgaSwgbGVuO1xuXG4gICAgLy8gYm90aCBhcmUgYXJyYXlzLCBhbmQ6XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbjEpICYmIEFycmF5LmlzQXJyYXkoanNvbjIpKSB7XG4gICAgICAgIC8vIGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIGl0ZW1zOyBhbmRcbiAgICAgICAgaWYgKGpzb24xLmxlbmd0aCAhPT0ganNvbjIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaXRlbXMgYXQgdGhlIHNhbWUgaW5kZXggYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGlzIGRlZmluaXRpb247IG9yXG4gICAgICAgIGxlbiA9IGpzb24xLmxlbmd0aDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIWFyZUVxdWFsKGpzb24xW2ldLCBqc29uMltpXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gYm90aCBhcmUgb2JqZWN0cywgYW5kOlxuICAgIGlmIChleHBvcnRzLndoYXRJcyhqc29uMSkgPT09IFwib2JqZWN0XCIgJiYgZXhwb3J0cy53aGF0SXMoanNvbjIpID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIC8vIGhhdmUgdGhlIHNhbWUgc2V0IG9mIHByb3BlcnR5IG5hbWVzOyBhbmRcbiAgICAgICAgdmFyIGtleXMxID0gT2JqZWN0LmtleXMoanNvbjEpO1xuICAgICAgICB2YXIga2V5czIgPSBPYmplY3Qua2V5cyhqc29uMik7XG4gICAgICAgIGlmICghYXJlRXF1YWwoa2V5czEsIGtleXMyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHZhbHVlcyBmb3IgYSBzYW1lIHByb3BlcnR5IG5hbWUgYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGlzIGRlZmluaXRpb24uXG4gICAgICAgIGxlbiA9IGtleXMxLmxlbmd0aDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIWFyZUVxdWFsKGpzb24xW2tleXMxW2ldXSwganNvbjJba2V5czFbaV1dKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnRzLmlzVW5pcXVlQXJyYXkgPSBmdW5jdGlvbiAoYXJyLCBpbmRleGVzKSB7XG4gICAgdmFyIGksIGosIGwgPSBhcnIubGVuZ3RoO1xuICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCBsOyBqKyspIHtcbiAgICAgICAgICAgIGlmIChleHBvcnRzLmFyZUVxdWFsKGFycltpXSwgYXJyW2pdKSkge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleGVzKSB7IGluZGV4ZXMucHVzaChpLCBqKTsgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydHMuZGlmZmVyZW5jZSA9IGZ1bmN0aW9uIChiaWdTZXQsIHN1YlNldCkge1xuICAgIHZhciBhcnIgPSBbXSxcbiAgICAgICAgaWR4ID0gYmlnU2V0Lmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgaWYgKHN1YlNldC5pbmRleE9mKGJpZ1NldFtpZHhdKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKGJpZ1NldFtpZHhdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyO1xufTtcblxuLy8gTk9UIGEgZGVlcCB2ZXJzaW9uIG9mIGNsb25lXG5leHBvcnRzLmNsb25lID0gZnVuY3Rpb24gKHNyYykge1xuICAgIGlmICh0eXBlb2Ygc3JjICE9PSBcIm9iamVjdFwiIHx8IHNyYyA9PT0gbnVsbCkgeyByZXR1cm4gc3JjOyB9XG4gICAgdmFyIHJlcywgaWR4O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNyYykpIHtcbiAgICAgICAgcmVzID0gW107XG4gICAgICAgIGlkeCA9IHNyYy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgcmVzW2lkeF0gPSBzcmNbaWR4XTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcyA9IHt9O1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNyYyk7XG4gICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICByZXNba2V5XSA9IHNyY1trZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59O1xuXG5leHBvcnRzLmNsb25lRGVlcCA9IGZ1bmN0aW9uIChzcmMpIHtcbiAgICB2YXIgdmlzaXRlZCA9IFtdLCBjbG9uZWQgPSBbXTtcbiAgICBmdW5jdGlvbiBjbG9uZURlZXAoc3JjKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3JjICE9PSBcIm9iamVjdFwiIHx8IHNyYyA9PT0gbnVsbCkgeyByZXR1cm4gc3JjOyB9XG4gICAgICAgIHZhciByZXMsIGlkeCwgY2lkeDtcblxuICAgICAgICBjaWR4ID0gdmlzaXRlZC5pbmRleE9mKHNyYyk7XG4gICAgICAgIGlmIChjaWR4ICE9PSAtMSkgeyByZXR1cm4gY2xvbmVkW2NpZHhdOyB9XG5cbiAgICAgICAgdmlzaXRlZC5wdXNoKHNyYyk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNyYykpIHtcbiAgICAgICAgICAgIHJlcyA9IFtdO1xuICAgICAgICAgICAgY2xvbmVkLnB1c2gocmVzKTtcbiAgICAgICAgICAgIGlkeCA9IHNyYy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICByZXNbaWR4XSA9IGNsb25lRGVlcChzcmNbaWR4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMgPSB7fTtcbiAgICAgICAgICAgIGNsb25lZC5wdXNoKHJlcyk7XG4gICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNyYyk7XG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICAgICAgcmVzW2tleV0gPSBjbG9uZURlZXAoc3JjW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZURlZXAoc3JjKTtcbn07XG5cbi8qXG4gIGZvbGxvd2luZyBmdW5jdGlvbiBjb21lcyBmcm9tIHB1bnljb2RlLmpzIGxpYnJhcnlcbiAgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYmVzdGllanMvcHVueWNvZGUuanNcbiovXG4vKmpzaGludCAtVzAxNiovXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgbnVtZXJpYyBjb2RlIHBvaW50cyBvZiBlYWNoIFVuaWNvZGVcbiAqIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nLiBXaGlsZSBKYXZhU2NyaXB0IHVzZXMgVUNTLTIgaW50ZXJuYWxseSxcbiAqIHRoaXMgZnVuY3Rpb24gd2lsbCBjb252ZXJ0IGEgcGFpciBvZiBzdXJyb2dhdGUgaGFsdmVzIChlYWNoIG9mIHdoaWNoXG4gKiBVQ1MtMiBleHBvc2VzIGFzIHNlcGFyYXRlIGNoYXJhY3RlcnMpIGludG8gYSBzaW5nbGUgY29kZSBwb2ludCxcbiAqIG1hdGNoaW5nIFVURi0xNi5cbiAqIEBzZWUgYHB1bnljb2RlLnVjczIuZW5jb2RlYFxuICogQHNlZSA8aHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmc+XG4gKiBAbWVtYmVyT2YgcHVueWNvZGUudWNzMlxuICogQG5hbWUgZGVjb2RlXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyaW5nIFRoZSBVbmljb2RlIGlucHV0IHN0cmluZyAoVUNTLTIpLlxuICogQHJldHVybnMge0FycmF5fSBUaGUgbmV3IGFycmF5IG9mIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnRzLnVjczJkZWNvZGUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgdmFyIG91dHB1dCA9IFtdLFxuICAgICAgICBjb3VudGVyID0gMCxcbiAgICAgICAgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGV4dHJhO1xuICAgIHdoaWxlIChjb3VudGVyIDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhbHVlID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcbiAgICAgICAgaWYgKHZhbHVlID49IDB4RDgwMCAmJiB2YWx1ZSA8PSAweERCRkYgJiYgY291bnRlciA8IGxlbmd0aCkge1xuICAgICAgICAgICAgLy8gaGlnaCBzdXJyb2dhdGUsIGFuZCB0aGVyZSBpcyBhIG5leHQgY2hhcmFjdGVyXG4gICAgICAgICAgICBleHRyYSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG4gICAgICAgICAgICBpZiAoKGV4dHJhICYgMHhGQzAwKSA9PSAweERDMDApIHsgLy8gbG93IHN1cnJvZ2F0ZVxuICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKCgodmFsdWUgJiAweDNGRikgPDwgMTApICsgKGV4dHJhICYgMHgzRkYpICsgMHgxMDAwMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHVubWF0Y2hlZCBzdXJyb2dhdGU7IG9ubHkgYXBwZW5kIHRoaXMgY29kZSB1bml0LCBpbiBjYXNlIHRoZSBuZXh0XG4gICAgICAgICAgICAgICAgLy8gY29kZSB1bml0IGlzIHRoZSBoaWdoIHN1cnJvZ2F0ZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgICAgICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvdW50ZXItLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dHB1dC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xufTtcbi8qanNoaW50ICtXMDE2Ki9cbiIsIlwidXNlIHN0cmljdFwiO1xuXG5yZXF1aXJlKFwiLi9Qb2x5ZmlsbHNcIik7XG52YXIgUmVwb3J0ICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9SZXBvcnRcIik7XG52YXIgRm9ybWF0VmFsaWRhdG9ycyAgPSByZXF1aXJlKFwiLi9Gb3JtYXRWYWxpZGF0b3JzXCIpO1xudmFyIEpzb25WYWxpZGF0aW9uICAgID0gcmVxdWlyZShcIi4vSnNvblZhbGlkYXRpb25cIik7XG52YXIgU2NoZW1hQ2FjaGUgICAgICAgPSByZXF1aXJlKFwiLi9TY2hlbWFDYWNoZVwiKTtcbnZhciBTY2hlbWFDb21waWxhdGlvbiA9IHJlcXVpcmUoXCIuL1NjaGVtYUNvbXBpbGF0aW9uXCIpO1xudmFyIFNjaGVtYVZhbGlkYXRpb24gID0gcmVxdWlyZShcIi4vU2NoZW1hVmFsaWRhdGlvblwiKTtcbnZhciBVdGlscyAgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xudmFyIERyYWZ0NFNjaGVtYSAgICAgID0gcmVxdWlyZShcIi4vc2NoZW1hcy9zY2hlbWEuanNvblwiKTtcbnZhciBEcmFmdDRIeXBlclNjaGVtYSA9IHJlcXVpcmUoXCIuL3NjaGVtYXMvaHlwZXItc2NoZW1hLmpzb25cIik7XG5cbi8qXG4gICAgZGVmYXVsdCBvcHRpb25zXG4qL1xudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICAgIC8vIGRlZmF1bHQgdGltZW91dCBmb3IgYWxsIGFzeW5jIHRhc2tzXG4gICAgYXN5bmNUaW1lb3V0OiAyMDAwLFxuICAgIC8vIGZvcmNlIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIGFuZCBhZGRpdGlvbmFsSXRlbXMgdG8gYmUgZGVmaW5lZCBvbiBcIm9iamVjdFwiIGFuZCBcImFycmF5XCIgdHlwZXNcbiAgICBmb3JjZUFkZGl0aW9uYWw6IGZhbHNlLFxuICAgIC8vIGFzc3VtZSBhZGRpdGlvbmFsUHJvcGVydGllcyBhbmQgYWRkaXRpb25hbEl0ZW1zIGFyZSBkZWZpbmVkIGFzIFwiZmFsc2VcIiB3aGVyZSBhcHByb3ByaWF0ZVxuICAgIGFzc3VtZUFkZGl0aW9uYWw6IGZhbHNlLFxuICAgIC8vIGZvcmNlIGl0ZW1zIHRvIGJlIGRlZmluZWQgb24gXCJhcnJheVwiIHR5cGVzXG4gICAgZm9yY2VJdGVtczogZmFsc2UsXG4gICAgLy8gZm9yY2UgbWluSXRlbXMgdG8gYmUgZGVmaW5lZCBvbiBcImFycmF5XCIgdHlwZXNcbiAgICBmb3JjZU1pbkl0ZW1zOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBtYXhJdGVtcyB0byBiZSBkZWZpbmVkIG9uIFwiYXJyYXlcIiB0eXBlc1xuICAgIGZvcmNlTWF4SXRlbXM6IGZhbHNlLFxuICAgIC8vIGZvcmNlIG1pbkxlbmd0aCB0byBiZSBkZWZpbmVkIG9uIFwic3RyaW5nXCIgdHlwZXNcbiAgICBmb3JjZU1pbkxlbmd0aDogZmFsc2UsXG4gICAgLy8gZm9yY2UgbWF4TGVuZ3RoIHRvIGJlIGRlZmluZWQgb24gXCJzdHJpbmdcIiB0eXBlc1xuICAgIGZvcmNlTWF4TGVuZ3RoOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBwcm9wZXJ0aWVzIG9yIHBhdHRlcm5Qcm9wZXJ0aWVzIHRvIGJlIGRlZmluZWQgb24gXCJvYmplY3RcIiB0eXBlc1xuICAgIGZvcmNlUHJvcGVydGllczogZmFsc2UsXG4gICAgLy8gaWdub3JlIHJlZmVyZW5jZXMgdGhhdCBjYW5ub3QgYmUgcmVzb2x2ZWQgKHJlbW90ZSBzY2hlbWFzKSAvLyBUT0RPOiBtYWtlIHN1cmUgdGhpcyBpcyBvbmx5IGZvciByZW1vdGUgc2NoZW1hcywgbm90IGxvY2FsIG9uZXNcbiAgICBpZ25vcmVVbnJlc29sdmFibGVSZWZlcmVuY2VzOiBmYWxzZSxcbiAgICAvLyBkaXNhbGxvdyB1c2FnZSBvZiBrZXl3b3JkcyB0aGF0IHRoaXMgdmFsaWRhdG9yIGNhbid0IGhhbmRsZVxuICAgIG5vRXh0cmFLZXl3b3JkczogZmFsc2UsXG4gICAgLy8gZGlzYWxsb3cgdXNhZ2Ugb2Ygc2NoZW1hJ3Mgd2l0aG91dCBcInR5cGVcIiBkZWZpbmVkXG4gICAgbm9UeXBlbGVzczogZmFsc2UsXG4gICAgLy8gZGlzYWxsb3cgemVybyBsZW5ndGggc3RyaW5ncyBpbiB2YWxpZGF0ZWQgb2JqZWN0c1xuICAgIG5vRW1wdHlTdHJpbmdzOiBmYWxzZSxcbiAgICAvLyBkaXNhbGxvdyB6ZXJvIGxlbmd0aCBhcnJheXMgaW4gdmFsaWRhdGVkIG9iamVjdHNcbiAgICBub0VtcHR5QXJyYXlzOiBmYWxzZSxcbiAgICAvLyBmb3JjZXMgXCJ1cmlcIiBmb3JtYXQgdG8gYmUgaW4gZnVsbHkgcmZjMzk4NiBjb21wbGlhbnRcbiAgICBzdHJpY3RVcmlzOiBmYWxzZSxcbiAgICAvLyB0dXJuIG9uIHNvbWUgb2YgdGhlIGFib3ZlXG4gICAgc3RyaWN0TW9kZTogZmFsc2UsXG4gICAgLy8gcmVwb3J0IGVycm9yIHBhdGhzIGFzIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMgdG8gZ2V0IHRvIHRoZSBvZmZlbmRpbmcgbm9kZVxuICAgIHJlcG9ydFBhdGhBc0FycmF5OiBmYWxzZSxcbiAgICAvLyBzdG9wcyB2YWxpZGF0aW9uIGFzIHNvb24gYXMgYW4gZXJyb3IgaXMgZm91bmQsIHRydWUgYnkgZGVmYXVsdCBidXQgY2FuIGJlIHR1cm5lZCBvZmZcbiAgICBicmVha09uRmlyc3RFcnJvcjogdHJ1ZVxufTtcblxuLypcbiAgICBjb25zdHJ1Y3RvclxuKi9cbmZ1bmN0aW9uIFpTY2hlbWEob3B0aW9ucykge1xuICAgIHRoaXMuY2FjaGUgPSB7fTtcbiAgICB0aGlzLnJlZmVyZW5jZUNhY2hlID0gW107XG5cbiAgICB0aGlzLnNldFJlbW90ZVJlZmVyZW5jZShcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hXCIsIERyYWZ0NFNjaGVtYSk7XG4gICAgdGhpcy5zZXRSZW1vdGVSZWZlcmVuY2UoXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L2h5cGVyLXNjaGVtYVwiLCBEcmFmdDRIeXBlclNjaGVtYSk7XG5cbiAgICAvLyBvcHRpb25zXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob3B0aW9ucyksXG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdO1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRPcHRpb25zW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgb3B0aW9uIHBhc3NlZCB0byBjb25zdHJ1Y3RvcjogXCIgKyBrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gVXRpbHMuY2xvbmUoZGVmYXVsdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuc3RyaWN0TW9kZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yY2VBZGRpdGlvbmFsICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5mb3JjZUl0ZW1zICAgICAgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvcmNlTWF4TGVuZ3RoICAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yY2VQcm9wZXJ0aWVzICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5ub0V4dHJhS2V5d29yZHMgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5vVHlwZWxlc3MgICAgICAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMubm9FbXB0eVN0cmluZ3MgICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5ub0VtcHR5QXJyYXlzICAgID0gdHJ1ZTtcbiAgICB9XG5cbn1cblxuLypcbiAgICBpbnN0YW5jZSBtZXRob2RzXG4qL1xuWlNjaGVtYS5wcm90b3R5cGUuY29tcGlsZVNjaGVtYSA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgICB2YXIgcmVwb3J0ID0gbmV3IFJlcG9ydCh0aGlzLm9wdGlvbnMpO1xuXG4gICAgc2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgU2NoZW1hQ29tcGlsYXRpb24uY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcblxuICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICByZXR1cm4gcmVwb3J0LmlzVmFsaWQoKTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS52YWxpZGF0ZVNjaGVtYSA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpICYmIHNjaGVtYS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiLnZhbGlkYXRlU2NoZW1hIHdhcyBjYWxsZWQgd2l0aCBhbiBlbXB0eSBhcnJheVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcmVwb3J0ID0gbmV3IFJlcG9ydCh0aGlzLm9wdGlvbnMpO1xuXG4gICAgc2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgdmFyIGNvbXBpbGVkID0gU2NoZW1hQ29tcGlsYXRpb24uY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICBpZiAoY29tcGlsZWQpIHsgU2NoZW1hVmFsaWRhdGlvbi52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTsgfVxuXG4gICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLnZhbGlkYXRlID0gZnVuY3Rpb24gKGpzb24sIHNjaGVtYSwgY2FsbGJhY2spIHtcbiAgICB2YXIgd2hhdElzID0gVXRpbHMud2hhdElzKHNjaGVtYSk7XG4gICAgaWYgKHdoYXRJcyAhPT0gXCJzdHJpbmdcIiAmJiB3aGF0SXMgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoXCJJbnZhbGlkIC52YWxpZGF0ZSBjYWxsIC0gc2NoZW1hIG11c3QgYmUgYW4gc3RyaW5nIG9yIG9iamVjdCBidXQgXCIgKyB3aGF0SXMgKyBcIiB3YXMgcGFzc2VkIVwiKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlLCBmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIHZhciBmb3VuZEVycm9yID0gZmFsc2U7XG4gICAgdmFyIHJlcG9ydCA9IG5ldyBSZXBvcnQodGhpcy5vcHRpb25zKTtcblxuICAgIHNjaGVtYSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcblxuICAgIHZhciBjb21waWxlZCA9IGZhbHNlO1xuICAgIGlmICghZm91bmRFcnJvcikge1xuICAgICAgICBjb21waWxlZCA9IFNjaGVtYUNvbXBpbGF0aW9uLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgICAgICBmb3VuZEVycm9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgdmFsaWRhdGVkID0gZmFsc2U7XG4gICAgaWYgKCFmb3VuZEVycm9yKSB7XG4gICAgICAgIHZhbGlkYXRlZCA9IFNjaGVtYVZhbGlkYXRpb24udmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIGlmICghdmFsaWRhdGVkKSB7XG4gICAgICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICAgICAgZm91bmRFcnJvciA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFmb3VuZEVycm9yKSB7XG4gICAgICAgIEpzb25WYWxpZGF0aW9uLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICByZXBvcnQucHJvY2Vzc0FzeW5jVGFza3ModGhpcy5vcHRpb25zLmFzeW5jVGltZW91dCwgY2FsbGJhY2spO1xuICAgICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChyZXBvcnQuYXN5bmNUYXNrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgdmFsaWRhdGlvbiBoYXMgYXN5bmMgdGFza3MgYW5kIGNhbm5vdCBiZSBkb25lIGluIHN5bmMgbW9kZSwgcGxlYXNlIHByb3ZpZGUgY2FsbGJhY2sgYXJndW1lbnQuXCIpO1xuICAgIH1cblxuICAgIC8vIGFzc2lnbiBsYXN0UmVwb3J0IHNvIGVycm9ycyBhcmUgcmV0cmlldmFibGUgaW4gc3luYyBtb2RlXG4gICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldExhc3RFcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5sYXN0UmVwb3J0LmVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBlID0gbmV3IEVycm9yKCk7XG4gICAgZS5uYW1lID0gXCJ6LXNjaGVtYSB2YWxpZGF0aW9uIGVycm9yXCI7XG4gICAgZS5tZXNzYWdlID0gdGhpcy5sYXN0UmVwb3J0LmNvbW1vbkVycm9yTWVzc2FnZTtcbiAgICBlLmRldGFpbHMgPSB0aGlzLmxhc3RSZXBvcnQuZXJyb3JzO1xuICAgIHJldHVybiBlO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldExhc3RFcnJvcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFzdFJlcG9ydC5lcnJvcnMubGVuZ3RoID4gMCA/IHRoaXMubGFzdFJlcG9ydC5lcnJvcnMgOiB1bmRlZmluZWQ7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0TWlzc2luZ1JlZmVyZW5jZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlcyA9IFtdLFxuICAgICAgICBpZHggPSB0aGlzLmxhc3RSZXBvcnQuZXJyb3JzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5sYXN0UmVwb3J0LmVycm9yc1tpZHhdO1xuICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gXCJVTlJFU09MVkFCTEVfUkVGRVJFTkNFXCIpIHtcbiAgICAgICAgICAgIHZhciByZWZlcmVuY2UgPSBlcnJvci5wYXJhbXNbMF07XG4gICAgICAgICAgICBpZiAocmVzLmluZGV4T2YocmVmZXJlbmNlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0TWlzc2luZ1JlbW90ZVJlZmVyZW5jZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG1pc3NpbmdSZWZlcmVuY2VzID0gdGhpcy5nZXRNaXNzaW5nUmVmZXJlbmNlcygpLFxuICAgICAgICBtaXNzaW5nUmVtb3RlUmVmZXJlbmNlcyA9IFtdLFxuICAgICAgICBpZHggPSBtaXNzaW5nUmVmZXJlbmNlcy5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciByZW1vdGVSZWZlcmVuY2UgPSBTY2hlbWFDYWNoZS5nZXRSZW1vdGVQYXRoKG1pc3NpbmdSZWZlcmVuY2VzW2lkeF0pO1xuICAgICAgICBpZiAocmVtb3RlUmVmZXJlbmNlICYmIG1pc3NpbmdSZW1vdGVSZWZlcmVuY2VzLmluZGV4T2YocmVtb3RlUmVmZXJlbmNlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIG1pc3NpbmdSZW1vdGVSZWZlcmVuY2VzLnB1c2gocmVtb3RlUmVmZXJlbmNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWlzc2luZ1JlbW90ZVJlZmVyZW5jZXM7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuc2V0UmVtb3RlUmVmZXJlbmNlID0gZnVuY3Rpb24gKHVyaSwgc2NoZW1hKSB7XG4gICAgaWYgKHR5cGVvZiBzY2hlbWEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc2NoZW1hID0gSlNPTi5wYXJzZShzY2hlbWEpO1xuICAgIH1cbiAgICBTY2hlbWFDYWNoZS5jYWNoZVNjaGVtYUJ5VXJpLmNhbGwodGhpcywgdXJpLCBzY2hlbWEpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldFJlc29sdmVkU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICAgIHZhciByZXBvcnQgPSBuZXcgUmVwb3J0KHRoaXMub3B0aW9ucyk7XG4gICAgc2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgLy8gY2xvbmUgYmVmb3JlIG1ha2luZyBhbnkgbW9kaWZpY2F0aW9uc1xuICAgIHNjaGVtYSA9IFV0aWxzLmNsb25lRGVlcChzY2hlbWEpO1xuXG4gICAgdmFyIHZpc2l0ZWQgPSBbXTtcblxuICAgIC8vIGNsZWFuLXVwIHRoZSBzY2hlbWEgYW5kIHJlc29sdmUgcmVmZXJlbmNlc1xuICAgIHZhciBjbGVhbnVwID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICAgICAgICB2YXIga2V5LFxuICAgICAgICAgICAgdHlwZU9mID0gVXRpbHMud2hhdElzKHNjaGVtYSk7XG4gICAgICAgIGlmICh0eXBlT2YgIT09IFwib2JqZWN0XCIgJiYgdHlwZU9mICE9PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzY2hlbWEuX19fJHZpc2l0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNjaGVtYS5fX18kdmlzaXRlZCA9IHRydWU7XG4gICAgICAgIHZpc2l0ZWQucHVzaChzY2hlbWEpO1xuXG4gICAgICAgIGlmIChzY2hlbWEuJHJlZiAmJiBzY2hlbWEuX18kcmVmUmVzb2x2ZWQpIHtcbiAgICAgICAgICAgIHZhciBmcm9tID0gc2NoZW1hLl9fJHJlZlJlc29sdmVkO1xuICAgICAgICAgICAgdmFyIHRvID0gc2NoZW1hO1xuICAgICAgICAgICAgZGVsZXRlIHNjaGVtYS4kcmVmO1xuICAgICAgICAgICAgZGVsZXRlIHNjaGVtYS5fXyRyZWZSZXNvbHZlZDtcbiAgICAgICAgICAgIGZvciAoa2V5IGluIGZyb20pIHtcbiAgICAgICAgICAgICAgICBpZiAoZnJvbS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvW2tleV0gPSBmcm9tW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoa2V5IGluIHNjaGVtYSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleS5pbmRleE9mKFwiX18kXCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWFba2V5XTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbnVwKHNjaGVtYVtrZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY2xlYW51cChzY2hlbWEpO1xuICAgIHZpc2l0ZWQuZm9yRWFjaChmdW5jdGlvbiAocykge1xuICAgICAgICBkZWxldGUgcy5fX18kdmlzaXRlZDtcbiAgICB9KTtcblxuICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICBpZiAocmVwb3J0LmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHRoaXMuZ2V0TGFzdEVycm9yKCk7XG4gICAgfVxufTtcblpTY2hlbWEucHJvdG90eXBlLnNldFNjaGVtYVJlYWRlciA9IGZ1bmN0aW9uIChzY2hlbWFSZWFkZXIpIHtcbiAgICByZXR1cm4gWlNjaGVtYS5zZXRTY2hlbWFSZWFkZXIoc2NoZW1hUmVhZGVyKTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5nZXRTY2hlbWFSZWFkZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFpTY2hlbWEuc2NoZW1hUmVhZGVyO1xufTtcblxuLypcbiAgICBzdGF0aWMgbWV0aG9kc1xuKi9cblpTY2hlbWEuc2V0U2NoZW1hUmVhZGVyID0gZnVuY3Rpb24gKHNjaGVtYVJlYWRlcikge1xuICAgIFpTY2hlbWEuc2NoZW1hUmVhZGVyID0gc2NoZW1hUmVhZGVyO1xufTtcblpTY2hlbWEucmVnaXN0ZXJGb3JtYXQgPSBmdW5jdGlvbiAoZm9ybWF0TmFtZSwgdmFsaWRhdG9yRnVuY3Rpb24pIHtcbiAgICBGb3JtYXRWYWxpZGF0b3JzW2Zvcm1hdE5hbWVdID0gdmFsaWRhdG9yRnVuY3Rpb247XG59O1xuWlNjaGVtYS5nZXREZWZhdWx0T3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gVXRpbHMuY2xvbmVEZWVwKGRlZmF1bHRPcHRpb25zKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gWlNjaGVtYTtcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgICBcIiRzY2hlbWFcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L2h5cGVyLXNjaGVtYSNcIixcbiAgICBcImlkXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9oeXBlci1zY2hlbWEjXCIsXG4gICAgXCJ0aXRsZVwiOiBcIkpTT04gSHlwZXItU2NoZW1hXCIsXG4gICAgXCJhbGxPZlwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiXG4gICAgICAgIH1cbiAgICBdLFxuICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYWRkaXRpb25hbEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFsbE9mXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcImFueU9mXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcIm9uZU9mXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5vdFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgfSxcblxuICAgICAgICBcImxpbmtzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2xpbmtEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZnJhZ21lbnRSZXNvbHV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVkaWFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIG1lZGlhIHR5cGUsIGFzIGRlc2NyaWJlZCBpbiBSRkMgMjA0NlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJiaW5hcnlFbmNvZGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGNvbnRlbnQgZW5jb2Rpbmcgc2NoZW1lLCBhcyBkZXNjcmliZWQgaW4gUkZDIDIwNDVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0aFN0YXJ0XCI6IHtcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJbnN0YW5jZXMnIFVSSXMgbXVzdCBzdGFydCB3aXRoIHRoaXMgdmFsdWUgZm9yIHRoaXMgc2NoZW1hIHRvIGFwcGx5IHRvIHRoZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9XG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgXCJzY2hlbWFBcnJheVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibGlua0Rlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidGl0bGVcIjogXCJMaW5rIERlc2NyaXB0aW9uIE9iamVjdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFsgXCJocmVmXCIsIFwicmVsXCIgXSxcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJocmVmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImEgVVJJIHRlbXBsYXRlLCBhcyBkZWZpbmVkIGJ5IFJGQyA2NTcwLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiB0aGUgJCwgKCBhbmQgKSBjaGFyYWN0ZXJzIGZvciBwcmUtcHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVsYXRpb24gdG8gdGhlIHRhcmdldCByZXNvdXJjZSBvZiB0aGUgbGlua1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0aXRsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIHRpdGxlIGZvciB0aGUgbGlua1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRTY2hlbWFcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSlNPTiBTY2hlbWEgZGVzY3JpYmluZyB0aGUgbGluayB0YXJnZXRcIixcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1lZGlhVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtZWRpYSB0eXBlIChhcyBkZWZpbmVkIGJ5IFJGQyAyMDQ2KSBkZXNjcmliaW5nIHRoZSBsaW5rIHRhcmdldFwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJtZXRob2RcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWV0aG9kIGZvciByZXF1ZXN0aW5nIHRoZSB0YXJnZXQgb2YgdGhlIGxpbmsgKGUuZy4gZm9yIEhUVFAgdGhpcyBtaWdodCBiZSBcXFwiR0VUXFxcIiBvciBcXFwiREVMRVRFXFxcIilcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZW5jVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbWVkaWEgdHlwZSBpbiB3aGljaCB0byBzdWJtaXQgZGF0YSBhbG9uZyB3aXRoIHRoZSByZXF1ZXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlNjaGVtYSBkZXNjcmliaW5nIHRoZSBkYXRhIHRvIHN1Ym1pdCBhbG9uZyB3aXRoIHRoZSByZXF1ZXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuIl19 +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJpbmRleC5qcyIsImxpYi9oZWxwZXJzLmpzIiwibGliL2pzb24tc2NoZW1hLWRyYWZ0LTA0Lmpzb24iLCJsaWIvdHlwZXMuanMiLCJsaWIvdmVyc2lvbnMvMi4wL2Zvcm1hdC1nZW5lcmF0b3JzLmpzIiwibGliL3ZlcnNpb25zLzIuMC9mb3JtYXQtdmFsaWRhdG9ycy5qcyIsImxpYi92ZXJzaW9ucy8yLjAvaGVscGVycy5qcyIsImxpYi92ZXJzaW9ucy8yLjAvaW5kZXguanMiLCJsaWIvdmVyc2lvbnMvMi4wL3NjaGVtYS5qc29uIiwibGliL3ZlcnNpb25zLzIuMC92YWxpZGF0b3JzLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9saWIvYjY0LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2lzLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9kZWJ1Zy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2RlYnVnL2RlYnVnLmpzIiwibm9kZV9tb2R1bGVzL2RlYnVnL25vZGVfbW9kdWxlcy9tcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qcy1iYXNlNjQvYmFzZTY0LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvYXJyYXkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2Jvb2xlYW4uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL2ludGVnZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bGwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL251bWJlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdHlwZXMvb2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL2xpYi90eXBlcy9zdHJpbmcuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvY29tYmluZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9jb250YWluZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZXJyb3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvZm9ybWF0cy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9oYXMtcHJvcHMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvaW5mZXJyZWQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvcHJpbWl0aXZlcy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9saWIvdXRpbC9yYW5kb20uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbGliL3V0aWwvdHJhdmVyc2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2NoYW5jZS9jaGFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvY2xvbmUtb2JqLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9kZXJlZi9saWIvdXRpbC9maW5kLXJlZmVyZW5jZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvbm9ybWFsaXplLXNjaGVtYS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZGVyZWYvbGliL3V0aWwvcmVzb2x2ZS1zY2hlbWEuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2RlcmVmL2xpYi91dGlsL3VyaS1oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2FkZHJlc3MuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9jb21wYW55LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvZGF0ZS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2ZpbmFuY2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oYWNrZXIuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9oZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvaW1hZ2UuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9pbnRlcm5ldC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2RlLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9kZV9BVC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZGVfQ0guanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9BVS5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQk9SSy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZW5fQ0EuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX0dCLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9JTkQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2VuX1VTLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9lbl9hdV9vY2tlci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvZXMuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2ZhLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9mci5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvaXQuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL2phLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9rby5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmJfTk8uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL25lcC5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvbmwuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3BsLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9wdF9CUi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvcnUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3NrLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9jYWxlcy9zdi5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvZmFrZXIvbGliL2xvY2FsZXMvdmkuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9sb2NhbGVzL3poX0NOLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvbG9yZW0uanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL2xpYi9uYW1lLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcGhvbmVfbnVtYmVyLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci9saWIvcmFuZG9tLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9mYWtlci92ZW5kb3IvbWVyc2VubmUuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci9wYXNzd29yZC1nZW5lcmF0b3IuanMiLCJub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtZmFrZXIvbm9kZV9tb2R1bGVzL2Zha2VyL3ZlbmRvci91c2VyLWFnZW50LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL2xpYi9yYW5kZXhwLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9kaXNjb250aW51b3VzLXJhbmdlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3Bvc2l0aW9ucy5qcyIsIm5vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1mYWtlci9ub2RlX21vZHVsZXMvcmFuZGV4cC9ub2RlX21vZHVsZXMvcmV0L2xpYi9zZXRzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3R5cGVzLmpzIiwibm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWZha2VyL25vZGVfbW9kdWxlcy9yYW5kZXhwL25vZGVfbW9kdWxlcy9yZXQvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvbmF0aXZlLXByb21pc2Utb25seS9ucG8uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvbm9kZV9tb2R1bGVzL3ZhbGlkYXRvci92YWxpZGF0b3IuanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL0Vycm9ycy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvRm9ybWF0VmFsaWRhdG9ycy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvSnNvblZhbGlkYXRpb24uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1BvbHlmaWxscy5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvUmVwb3J0LmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9TY2hlbWFDYWNoZS5qcyIsIm5vZGVfbW9kdWxlcy96LXNjaGVtYS9zcmMvU2NoZW1hQ29tcGlsYXRpb24uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1NjaGVtYVZhbGlkYXRpb24uanMiLCJub2RlX21vZHVsZXMvei1zY2hlbWEvc3JjL1V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9aU2NoZW1hLmpzIiwibm9kZV9tb2R1bGVzL3otc2NoZW1hL3NyYy9zY2hlbWFzL2h5cGVyLXNjaGVtYS5qc29uIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0OUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0NENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDck1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaE1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3JHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDaDlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMzdJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3g5R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMy9RQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3psQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcDlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdm9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzc0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNubUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDajNDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwaUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcmxEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcjFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6M0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDblpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDMUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaHVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN0SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeGtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDeE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3hTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSAod2luZG93Ll8pO1xudmFyIHBhdGhMb2FkZXIgPSAod2luZG93LlBhdGhMb2FkZXIpO1xudmFyIFlBTUwgPSAod2luZG93LmpzeWFtbCk7XG5cbi8vIExvYWQgcHJvbWlzZXMgcG9seWZpbGwgaWYgbmVjZXNzYXJ5XG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmICh0eXBlb2YgUHJvbWlzZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgcmVxdWlyZSgnbmF0aXZlLXByb21pc2Utb25seScpO1xufVxuXG52YXIgc3VwcG9ydGVkVmVyc2lvbnMgPSB7XG4gICcyLjAnOiByZXF1aXJlKCcuL2xpYi92ZXJzaW9ucy8yLjAvJylcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIFN3YWdnZXJBcGkgb2JqZWN0IGZyb20gaXRzIFN3YWdnZXIgZGVmaW5pdGlvbihzKS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBsb2FkaW5nIHRoZSBkZWZpbml0aW9uKHMpXG4gKiBAcGFyYW0ge29iamVjdHxzdHJpbmd9IG9wdGlvbnMuZGVmaW5pdGlvbiAtIFRoZSBTd2FnZ2VyIGRlZmluaXRpb24gbG9jYXRpb24gb3Igc3RydWN0dXJlXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMubG9hZGVyT3B0aW9uc10gLSBUaGUgb3B0aW9ucyB0byBwYXNzIHRvIHBhdGgtbG9hZGVyXG4gKiBAcGFyYW0ge3ZhbGlkYXRvckNhbGxiYWNrW119IFtvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnNdIC0gVGhlIGN1c3RvbSB2YWxpZGF0b3JzXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gTm9kZS5qcyBlcnJvci1maXJzdCBjYWxsYmFja1xuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgaXMgYWx3YXlzIHJldHVybmVkIGV2ZW4gaWYgeW91IHByb3ZpZGUgYSBjYWxsYmFjayBidXQgaXQgaXMgbm90IHJlcXVpcmVkIHRvIGJlIHVzZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBwcm9taXNlc1xuICogU3dhZ2dlckFwaS5jcmVhdGUoe2RlZmluaXRpb246ICdodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLnlhbWwnfSlcbiAqICAgLnRoZW4oZnVuY3Rpb24gKGFwaSkge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSB1c2luZyBjYWxsYmFja3NcbiAqIFN3YWdnZXJBcGkuY3JlYXRlKHtkZWZpbml0aW9uOiAnaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci55YW1sJ30sIGZ1bmN0aW9uIChlcnIsIGFwaSkge1xuICogICBpZiAoZXJyKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhY2spO1xuICogICB9IGVsc2Uge1xuICogICAgIGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uIFVSTDogJywgYXBpLmRvY3VtZW50YXRpb24pO1xuICogICB9KTtcbiAqL1xubW9kdWxlLmV4cG9ydHMuY3JlYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciBhbGxUYXNrcyA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8vIFZhbGlkYXRlIGFyZ3VtZW50c1xuICBhbGxUYXNrcyA9IGFsbFRhc2tzLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMuZGVmaW5pdGlvbiBpcyByZXF1aXJlZCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wdGlvbnMuZGVmaW5pdGlvbikgJiYgIV8uaXNTdHJpbmcob3B0aW9ucy5kZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmRlZmluaXRpb24gbXVzdCBiZSBlaXRoZXIgYW4gb2JqZWN0IG9yIGEgc3RyaW5nJyk7XG4gICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnMubG9hZGVyT3B0aW9ucykgJiYgIV8uaXNQbGFpbk9iamVjdChvcHRpb25zLmxvYWRlck9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMubG9hZGVyT3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMpICYmICFfLmlzQXJyYXkob3B0aW9ucy5jdXN0b21WYWxpZGF0b3JzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChjYWxsYmFjaykgJiYgIV8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIF8uZm9yRWFjaChvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMsIGZ1bmN0aW9uICh2YWxpZGF0b3IsIGluZGV4KSB7XG4gICAgICAgIGlmICghXy5pc0Z1bmN0aW9uKHZhbGlkYXRvcikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zLmN1c3RvbVZhbGlkYXRvcnMgYXQgaW5kZXggJyArIGluZGV4ICsgJyBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGlucHV0IG9wdGlvbnMgc28gYXMgbm90IHRvIGFsdGVyIHRoZW1cbiAgb3B0aW9ucyA9IF8uY2xvbmVEZWVwKG9wdGlvbnMpO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBkZWZpbml0aW9uIGlmIGl0IGlzIGEgcGF0aC9VUkxcbiAgYWxsVGFza3MgPSBhbGxUYXNrc1xuICAgIC8vIExvYWQgdGhlIHJlbW90ZSBkZWZpbml0aW9uIG9yIHJldHVybiBvcHRpb25zLmRlZmluaXRpb25cbiAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoXy5pc1N0cmluZyhvcHRpb25zLmRlZmluaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBwYXRoTG9hZGVyLmxvYWQob3B0aW9ucy5kZWZpbml0aW9uLCBvcHRpb25zLmxvYWRlck9wdGlvbnMgfHwge30pLnRoZW4oWUFNTC5zYWZlTG9hZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5kZWZpbml0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIFByb2Nlc3MgdGhlIFN3YWdnZXIgZGVmaW5pdGlvbiAoaWYgcG9zc2libGUpXG4gIGFsbFRhc2tzID0gYWxsVGFza3NcbiAgICAudGhlbihmdW5jdGlvbiAoYXBpRGVmaW5pdGlvbikge1xuICAgICAgdmFyIGRlZmluaXRpb24gPSBfLmZpbmQoc3VwcG9ydGVkVmVyc2lvbnMsIGZ1bmN0aW9uIChwRGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gcERlZmluaXRpb24uY2FuUHJvY2VzcyhhcGlEZWZpbml0aW9uKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChkZWZpbml0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmFibGUgdG8gaWRlbnRpZnkgdGhlIFN3YWdnZXIgdmVyc2lvbiBvciB0aGUgU3dhZ2dlciB2ZXJzaW9uIGlzIHVuc3VwcG9ydGVkJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uLmNyZWF0ZVN3YWdnZXJBcGkoYXBpRGVmaW5pdGlvbiwgb3B0aW9ucyk7XG4gICAgfSk7XG5cbiAgLy8gVXNlIHRoZSBjYWxsYmFjayBpZiBwcm92aWRlZCBhbmQgaXQgaXMgYSBmdW5jdGlvblxuICBpZiAoIV8uaXNVbmRlZmluZWQoY2FsbGJhY2spICYmIF8uaXNGdW5jdGlvbihjYWxsYmFjaykpIHtcbiAgICBhbGxUYXNrcyA9IGFsbFRhc2tzXG4gICAgICAudGhlbihmdW5jdGlvbiAoc3dhZ2dlckFwaSkge1xuICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIHN3YWdnZXJBcGkpO1xuICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4gYWxsVGFza3M7XG59O1xuIiwiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNSBBcGlnZWUgQ29ycG9yYXRpb25cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSAod2luZG93Ll8pO1xudmFyIG1vY2tlciA9IHJlcXVpcmUoJ2pzb24tc2NoZW1hLWZha2VyJyk7XG52YXIgWlNjaGVtYSA9IHJlcXVpcmUoJ3otc2NoZW1hJyk7XG5cbnZhciBkcmFmdDA0SnNvbiA9IHJlcXVpcmUoJy4vanNvbi1zY2hlbWEtZHJhZnQtMDQuanNvbicpO1xudmFyIGRyYWZ0MDRVcmwgPSAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEnO1xuXG5mdW5jdGlvbiByZW1vdmVWYWxpZGF0aW9uRXJyb3JQYXJhbXMgKG9iaikge1xuICBkZWxldGUgb2JqLnBhcmFtcztcblxuICBpZiAob2JqLmlubmVyKSB7XG4gICAgXy5lYWNoKG9iai5pbm5lciwgZnVuY3Rpb24gKG5PYmopIHtcbiAgICAgIHJlbW92ZVZhbGlkYXRpb25FcnJvclBhcmFtcyhuT2JqKTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGEgSlNPTiBTY2hlbWEgTW9ja2VyLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBUaGUgbW9ja2VyIG9wdGlvbnNcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5mb3JtYXRHZW5lcmF0b3JzXSAtIFRoZSBjdXN0b20gZm9ybWF0IGdlbmVyYXRvcnMgdG8gdXNlXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIEpTT04gU2NoZW1hIG1vY2tlclxuICovXG5tb2R1bGUuZXhwb3J0cy5jcmVhdGVKU09OU2NoZW1hTW9ja2VyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjdXN0b20gZm9ybWF0IGdlbmVyYXRvcnNcbiAgXy5lYWNoKG9wdGlvbnMuZm9ybWF0R2VuZXJhdG9ycywgZnVuY3Rpb24gKGhhbmRsZXIsIG5hbWUpIHtcbiAgICBtb2NrZXIuZm9ybWF0cyhuYW1lLCBoYW5kbGVyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1vY2tlcjtcbn07XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSBKU09OIFZhbGlkYXRvci5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gVGhlIHZhbGlkYXRvciBvcHRpb25zXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuZm9ybWF0VmFsaWRhdG9yc10gLSBUaGUgY3VzdG9tIGZvcm1hdCB2YWxpZGF0b3JzIHRvIHVzZVxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSBKU09OIFNjaGVtYSB2YWxpZGF0b3JcbiAqL1xubW9kdWxlLmV4cG9ydHMuY3JlYXRlSlNPTlZhbGlkYXRvciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIHZhciB2YWxpZGF0b3IgPSBuZXcgWlNjaGVtYSh7XG4gICAgcmVwb3J0UGF0aEFzQXJyYXk6IHRydWVcbiAgfSk7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgLy8gQWRkIHRoZSBkcmFmdC0wNCBzcGVjXG4gIHZhbGlkYXRvci5zZXRSZW1vdGVSZWZlcmVuY2UoZHJhZnQwNFVybCwgZHJhZnQwNEpzb24pO1xuXG4gIC8vIEFkZCB0aGUgY3VzdG9tIHZhbGlkYXRvcnNcbiAgXy5lYWNoKG9wdGlvbnMuZm9ybWF0VmFsaWRhdG9ycywgZnVuY3Rpb24gKGhhbmRsZXIsIG5hbWUpIHtcbiAgICBaU2NoZW1hLnJlZ2lzdGVyRm9ybWF0KG5hbWUsIGhhbmRsZXIpO1xuICB9KTtcblxuICByZXR1cm4gdmFsaWRhdG9yO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHByb3ZpZGVkIHZhbHVlIGFnYWluc3QgdGhlIEpTT04gU2NoZW1hIGJ5IG5hbWUgb3IgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHZhbGlkYXRvciAtIFRoZSBKU09OIFNjaGVtYSB2YWxpZGF0b3IgY3JlYXRlZCB2aWEge0BsaW5rICNjcmVhdGVKU09OVmFsaWRhdG9yfVxuICogQHBhcmFtIHtvYmplY3R9IHNjaGVtYSAtIFRoZSBKU09OIFNjaGVtYVxuICogQHBhcmFtIHsqfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIG9mIHRoZSB2YWxpZGF0aW9uXG4gKi9cbm1vZHVsZS5leHBvcnRzLnZhbGlkYXRlQWdhaW5zdFNjaGVtYSA9IGZ1bmN0aW9uICh2YWxpZGF0b3IsIHNjaGVtYSwgdmFsdWUpIHtcbiAgc2NoZW1hID0gXy5jbG9uZURlZXAoc2NoZW1hKTsgLy8gQ2xvbmUgdGhlIHNjaGVtYSBhcyB6LXNjaGVtYSBhbHRlcnMgdGhlIHByb3ZpZGVkIGRvY3VtZW50XG5cbiAgdmFyIHJlc3BvbnNlID0ge1xuICAgIGVycm9yczogW10sXG4gICAgd2FybmluZ3M6IFtdXG4gIH07XG5cbiAgaWYgKCF2YWxpZGF0b3IudmFsaWRhdGUodmFsdWUsIHNjaGVtYSkpIHtcbiAgICByZXNwb25zZS5lcnJvcnMgPSBfLm1hcCh2YWxpZGF0b3IuZ2V0TGFzdEVycm9ycygpLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICByZW1vdmVWYWxpZGF0aW9uRXJyb3JQYXJhbXMoZXJyKTtcblxuICAgICAgcmV0dXJuIGVycjtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gICAgXCJpZFwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiLFxuICAgIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJDb3JlIHNjaGVtYSBtZXRhLXNjaGVtYVwiLFxuICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICBcInNjaGVtYUFycmF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3NpdGl2ZUludGVnZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJtaW5pbXVtXCI6IDBcbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiOiB7XG4gICAgICAgICAgICBcImFsbE9mXCI6IFsgeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sIHsgXCJkZWZhdWx0XCI6IDAgfSBdXG4gICAgICAgIH0sXG4gICAgICAgIFwic2ltcGxlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJlbnVtXCI6IFsgXCJhcnJheVwiLCBcImJvb2xlYW5cIiwgXCJpbnRlZ2VyXCIsIFwibnVsbFwiLCBcIm51bWJlclwiLCBcIm9iamVjdFwiLCBcInN0cmluZ1wiIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzdHJpbmdBcnJheVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7IFwidHlwZVwiOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCIkc2NoZW1hXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHt9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcIm1pbmltdW1cIjogMCxcbiAgICAgICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIiB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInJlZ2V4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcInR5cGVcIjogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCIgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIiB9LFxuICAgICAgICBcIm1pblByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCIgfSxcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXlcIiB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHsgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjXCIgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheVwiIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXNcIiB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxPZlwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9LFxuICAgICAgICBcImFueU9mXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH0sXG4gICAgICAgIFwib25lT2ZcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCIgfSxcbiAgICAgICAgXCJub3RcIjogeyBcIiRyZWZcIjogXCIjXCIgfVxuICAgIH0sXG4gICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjogWyBcIm1heGltdW1cIiBdLFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjogWyBcIm1pbmltdW1cIiBdXG4gICAgfSxcbiAgICBcImRlZmF1bHRcIjoge31cbn1cbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gKHdpbmRvdy5fKTtcbnZhciBkZWJ1ZyA9IHJlcXVpcmUoJ2RlYnVnJykoJ3N3YWdnZXItY29yZS1hcGknKTtcblxuLyoqXG4gKiBUaGUgU3dhZ2dlciBPcGVyYXRpb24gb2JqZWN0LlxuICpcbiAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRG8gbm90IHVzZSBkaXJlY3RseS5cbiAqXG4gKiBAcGFyYW0ge1N3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyIEFQSSBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gVGhlIG9wZXJhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gVGhlIG9wZXJhdGlvbiBtZXRob2RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwdHIgLSBUaGUgSlNPTiBQb2ludGVyIHRvIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIG9wZXJhdGlvbiBkZWZpbml0aW9uXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIE9wZXJhdGlvbiAoYXBpLCBwYXRoLCBtZXRob2QsIHB0ciwgZGVmaW5pdGlvbikge1xuICB0aGlzLmFwaSA9IGFwaTtcbiAgdGhpcy5wYXRoID0gcGF0aDtcbiAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gIHRoaXMucHRyID0gcHRyO1xuICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuXG4gIC8vIEFzc2lnbiBTd2FnZ2VyIGRlZmluaXRpb24gcHJvcGVydGllcyB0byB0aGUgb3BlcmF0aW9uIGZvciBlYXN5IGFjY2Vzc1xuICBfLmFzc2lnbih0aGlzLCBkZWZpbml0aW9uKTtcblxuICBkZWJ1ZygnRm91bmQgb3BlcmF0aW9uIGF0ICVzJywgcHRyKTtcblxuICB0aGlzLnBhcmFtZXRlck9iamVjdHMgPSBhcGkucGx1Z2luLmdldE9wZXJhdGlvblBhcmFtZXRlcnModGhpcyk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbGwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi5cbiAqXG4gKiBAcmV0dXJucyB7UGFyYW1ldGVyW119IEFsbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLlxuICovXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnBhcmFtZXRlck9iamVjdHM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIEpTT04gU2NoZW1hIGZvciB0aGUgcmVxdWVzdGVkIGNvZGUgb3IgdGhlIGRlZmF1bHQgcmVzcG9uc2UgaWYgbm8gY29kZSBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IFtjb2RlPWRlZmF1bHRdIC0gVGhlIHJlc3BvbnNlIGNvZGVcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgSlNPTiBTY2hlbWEgZm9yIHRoZSByZXNwb25zZSwgd2hpY2ggY2FuIGJlIHVuZGVmaW5lZCBpZiB0aGUgcmVzcG9uc2Ugc2NoZW1hIGlzIG5vdCBwcm92aWRlZFxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBUaHJvd24gd2hlbmV2ZXIgdGhlIHJlcXVlc3RlZCBjb2RlIGRvZXMgbm90IGV4aXN0IChUaHJvd2luZyBhbiBlcnJvciBpbnN0ZWFkIG9mIHJldHVybmluZyB1bmRlZmluZWRcbiAqICAgICAgICAgICAgICAgICBpcyByZXF1aXJlZCBkdWUgdG8gdW5kZWZpbmVkIGJlaW5nIGEgdmFsaWQgcmVzcG9uc2Ugc2NoZW1hIGluZGljYXRpbmcgYSB2b2lkIHJlc3BvbnNlKVxuICovXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFJlc3BvbnNlU2NoZW1hID0gZnVuY3Rpb24gKGNvZGUpIHtcbiAgdmFyIHJlc3BvbnNlO1xuXG4gIGlmIChfLmlzVW5kZWZpbmVkKGNvZGUpKSB7XG4gICAgY29kZSA9ICdkZWZhdWx0JztcbiAgfSBlbHNlIGlmIChfLmlzTnVtYmVyKGNvZGUpKSB7XG4gICAgY29kZSA9IChNYXRoLmZsb29yKDEwMCAqIGNvZGUpIC8gMTAwKS50b0ZpeGVkKCk7IC8vIE92ZXJseSBjYXV0aW91cyBidXQgb2ggd2VsbC4uLlxuICB9XG5cbiAgcmVzcG9uc2UgPSB0aGlzLmRlZmluaXRpb24ucmVzcG9uc2VzW2NvZGVdO1xuXG4gIGlmIChfLmlzVW5kZWZpbmVkKHJlc3BvbnNlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBvcGVyYXRpb24gZG9lcyBub3QgaGF2ZSBhIGRlZmluZWQgXFwnJyArIGNvZGUgKyAnXFwnIHJlc3BvbnNlIGNvZGUnKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmVzcG9uc2Uuc2NoZW1hO1xuICB9XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSBzYW1wbGUgdmFsdWUgYmFzZWQgb24gdGhlIHJlcXVlc3RlZCBjb2RlIG9yIHRoZSBkZWZhdWx0IHJlc3BvbnNlIGlmIG5vIGNvZGUgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBbY29kZT1kZWZhdWx0XSAtIFRoZSByZXNwb25zZSBjb2RlXG4gKlxuICogQHJldHVybnMgeyp9IFRoZSBzYW1wbGUgdmFsdWUgZm9yIHRoZSByZXNwb25zZSwgd2hpY2ggY2FuIGJlIHVuZGVmaW5lZCBpZiB0aGUgcmVzcG9uc2Ugc2NoZW1hIGlzIG5vdCBwcm92aWRlZFxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBUaHJvd24gd2hlbmV2ZXIgdGhlIHJlcXVlc3RlZCBjb2RlIGRvZXMgbm90IGV4aXN0IChUaHJvd2luZyBhbiBlcnJvciBpbnN0ZWFkIG9mIHJldHVybmluZyB1bmRlZmluZWRcbiAqICAgICAgICAgICAgICAgICBpcyByZXF1aXJlZCBkdWUgdG8gdW5kZWZpbmVkIGJlaW5nIGEgdmFsaWQgcmVzcG9uc2Ugc2NoZW1hIGluZGljYXRpbmcgYSB2b2lkIHJlc3BvbnNlKVxuICovXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFJlc3BvbnNlU2FtcGxlID0gZnVuY3Rpb24gKGNvZGUpIHtcbiAgdmFyIHNjaGVtYSA9IHRoaXMuZ2V0UmVzcG9uc2VTY2hlbWEoY29kZSk7XG4gIHZhciBzYW1wbGU7XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKHNjaGVtYSkpIHtcbiAgICBzYW1wbGUgPSB0aGlzLmFwaS5wbHVnaW4uZ2V0U2FtcGxlKHNjaGVtYSk7XG4gIH1cblxuICByZXR1cm4gc2FtcGxlO1xufTtcblxuLyoqXG4gKiBUaGUgU3dhZ2dlciBQYXJhbWV0ZXIgb2JqZWN0LlxuICpcbiAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRG8gbm90IHVzZSBkaXJlY3RseS5cbiAqXG4gKiBAcGFyYW0ge09wZXJhdGlvbn0gb3BlcmF0aW9uIC0gVGhlIFN3YWdnZXIgT3BlcmF0aW9uIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IHB0ciAtIFRoZSBKU09OIFBvaW50ZXIgdG8gdGhlIHBhcmFtZXRlclxuICogQHBhcmFtIHtvYmplY3R9IGRlZmluaXRpb24gLSBUaGUgcGFyYW1ldGVyIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBzY2hlbWEgLSBUaGUgSlNPTiBTY2hlbWEgZm9yIHRoZSBwYXJhbWV0ZXJcbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gUGFyYW1ldGVyIChvcGVyYXRpb24sIHB0ciwgZGVmaW5pdGlvbiwgc2NoZW1hKSB7XG4gIHRoaXMub3BlcmF0aW9uID0gb3BlcmF0aW9uO1xuICB0aGlzLnB0ciA9IHB0cjtcbiAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgdGhpcy5jb21wdXRlZFNjaGVtYSA9IHNjaGVtYTtcblxuICAvLyBBc3NpZ24gU3dhZ2dlciBkZWZpbml0aW9uIHByb3BlcnRpZXMgdG8gdGhlIHBhcmFtZXRlciBmb3IgZWFzeSBhY2Nlc3NcbiAgXy5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG5cbiAgZGVidWcoJ0ZvdW5kIG9wZXJhdGlvbiBwYXJhbWV0ZXIgKCVzICVzKSBhdCAlcycsIG9wZXJhdGlvbi5tZXRob2QudG9VcHBlckNhc2UoKSwgb3BlcmF0aW9uLnBhdGgsIHB0cik7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY29tcHV0ZWQgSlNPTiBTY2hlbWEgZm9yIHRoaXMgcGFyYW1ldGVyIG9iamVjdC5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgSlNPTiBTY2hlbWFcbiAqL1xuUGFyYW1ldGVyLnByb3RvdHlwZS5nZXRTY2hlbWEgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmNvbXB1dGVkU2NoZW1hO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgc2FtcGxlIHZhbHVlIGZvciB0aGUgcGFyYW1ldGVyIGJhc2VkIG9uIGl0cyBzY2hlbWE7XG4gKlxuICogQHJldHVybnMgeyp9IFRoZSBzYW1wbGUgdmFsdWVcbiAqL1xuUGFyYW1ldGVyLnByb3RvdHlwZS5nZXRTYW1wbGUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzYW1wbGU7XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuY29tcHV0ZWRTY2hlbWEpKSB7XG4gICAgc2FtcGxlID0gdGhpcy5vcGVyYXRpb24uYXBpLnBsdWdpbi5nZXRTYW1wbGUodGhpcy5jb21wdXRlZFNjaGVtYSk7XG4gIH1cblxuICByZXR1cm4gc2FtcGxlO1xufTtcblxuLyoqXG4gKiBDYWxsYmFjayB1c2VkIGZvciB2YWxpZGF0aW9uLlxuICpcbiAqIEBwYXJhbSB7U3dhZ2dlckFwaX0gYXBpIC0gVGhlIFN3YWdnZXIgQVBJIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIG9mIHRoZSB2YWxpZGF0aW9uXG4gKlxuICogQGNhbGxiYWNrIHZhbGlkYXRvckNhbGxiYWNrXG4gKi9cblxuLyoqXG4gKiBUaGUgU3dhZ2dlciBBUEkgb2JqZWN0LlxuICpcbiAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRG8gbm90IHVzZSBkaXJlY3RseS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gcGx1Z2luIC0gVGhlIFN3YWdnZXIgdmVyc2lvbiBwbHVnaW5cbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZpbml0aW9uIC0gVGhlIFN3YWdnZXIgZGVmaW5pdGlvblxuICogQHBhcmFtIHtvYmplY3R9IHJlc29sdmVkIC0gVGhlIGZ1bGx5IHJlc29sdmVkIFN3YWdnZXIgZGVmaW5pdGlvblxuICogQHBhcmFtIHtvYmplY3R9IHJlZmVyZW5jZXMgLSBUaGUgbG9jYXRpb24gYW5kIHJlc29sdXRpb24gb2YgdGhlIHJlc29sdmVkIHJlZmVyZW5jZXMgaW4gdGhlIFN3YWdnZXIgZGVmaW5pdGlvblxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBwYXNzZWQgdG8gc3dhZ2dlckFwaS5jcmVhdGVcbiAqIEBwYXJhbSB7dmFsaWRhdG9yQ2FsbGJhY2tbXX0gW29wdGlvbnMuY3VzdG9tVmFsaWRhdG9yc10gLSBUaGUgY3VzdG9tIHZhbGlkYXRvcnNcbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gU3dhZ2dlckFwaSAocGx1Z2luLCBkZWZpbml0aW9uLCByZXNvbHZlZCwgcmVmZXJlbmNlcywgb3B0aW9ucykge1xuICB0aGlzLmN1c3RvbVZhbGlkYXRvcnMgPSBbXTtcbiAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgdGhpcy5kb2N1bWVudGF0aW9uID0gcGx1Z2luLmRvY3VtZW50YXRpb247XG4gIHRoaXMuZXJyb3JzID0gdW5kZWZpbmVkO1xuICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcbiAgdGhpcy5yZWZlcmVuY2VzID0gcmVmZXJlbmNlcztcbiAgdGhpcy5yZXNvbHZlZCA9IHJlc29sdmVkO1xuICB0aGlzLnZlcnNpb24gPSBwbHVnaW4udmVyc2lvbjtcbiAgdGhpcy53YXJuaW5ncyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAvLyBBc3NpZ24gU3dhZ2dlciBkZWZpbml0aW9uIHByb3BlcnRpZXMgdG8gdGhlIGFwaSBmb3IgZWFzeSBhY2Nlc3NcbiAgXy5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG5cbiAgZGVidWcoJ05ldyBTd2FnZ2VyIEFQSSAoJXMpJywgXy5pc1N0cmluZyhvcHRpb25zLmRlZmluaXRpb24pID8gb3B0aW9ucy5kZWZpbml0aW9uIDogJ0phdmFTY3JpcHQgT2JqZWN0Jyk7XG5cbiAgdGhpcy5vcGVyYXRpb25PYmplY3RzID0gcGx1Z2luLmdldE9wZXJhdGlvbnModGhpcyk7XG5cbiAgLy8gUmVnaXN0ZXIgY3VzdG9tIHZhbGlkYXRvcnNcbiAgXy5mb3JFYWNoKG9wdGlvbnMudmFsaWRhdG9ycywgdGhpcy5yZWdpc3RlclZhbGlkYXRvcik7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZXJyb3JzIGZyb20gdGhlIGxhc3QgdmFsaWRhdGUgY2FsbC5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0W119IFRoZSBlcnJvcnMgZnJvbSB0aGUgcHJldmlvdXMgY2FsbCB0byB2YWxpZGF0ZSBvciB1bmRlZmluZWQgaWYgdmFsaWRhdGUgd2FzIG5ldmVyIGNhbGxlZFxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRMYXN0RXJyb3JzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5lcnJvcnM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHdhcm5pbmdzIGZyb20gdGhlIGxhc3QgdmFsaWRhdGUgY2FsbC5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0W119IFRoZSB3YXJuaW5ncyBmcm9tIHRoZSBwcmV2aW91cyBjYWxsIHRvIHZhbGlkYXRlIG9yIHVuZGVmaW5lZCBpZiB2YWxpZGF0ZSB3YXMgbmV2ZXIgY2FsbGVkXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLmdldExhc3RXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMud2FybmluZ3M7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9wZXJhdGlvbiBmb3IgdGhlIHByb3ZpZGVkIHBhdGggYW5kIG1ldGhvZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSBTd2FnZ2VyIHBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2QgLSBUaGUgU3dhZ2dlciBvcGVyYXRpb24gbWV0aG9kXG4gKlxuICogQHJldHVybnMge09wZXJhdGlvbn0gVGhlIG9wZXJhdGlvbiBmb3IgdGhlIHByb3ZpZGVkIHBhdGggYW5kIG1ldGhvZCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gb3BlcmF0aW9uIGZvciB0aGF0XG4gKiAgICAgICAgICAgICAgICAgICAgICBwYXRoIGFuZCBtZXRob2QgY29tYmluYXRpb24uXG4gKi9cblN3YWdnZXJBcGkucHJvdG90eXBlLmdldE9wZXJhdGlvbiA9IGZ1bmN0aW9uIChwYXRoLCBtZXRob2QpIHtcbiAgcmV0dXJuIF8uZmluZCh0aGlzLm9wZXJhdGlvbk9iamVjdHMsIGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICByZXR1cm4gb3BlcmF0aW9uLnBhdGggPT09IHBhdGggJiYgb3BlcmF0aW9uLm1ldGhvZCA9PT0gbWV0aG9kLnRvTG93ZXJDYXNlKCk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBvcGVyYXRpb25zIGZvciB0aGUgcHJvdmlkZWQgcGF0aCBvciBhbGwgb3BlcmF0aW9ucyBpbiB0aGUgQVBJLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcGF0aF0gLSBUaGUgU3dhZ2dlciBwYXRoXG4gKlxuICogQHJldHVybnMge09wZXJhdGlvbltdfSBBbGwgb3BlcmF0aW9ucyBmb3IgdGhlIHByb3ZpZGVkIHBhdGggb3IgYWxsIEFQSSBvcGVyYXRpb25zLlxuICovXG5Td2FnZ2VyQXBpLnByb3RvdHlwZS5nZXRPcGVyYXRpb25zID0gZnVuY3Rpb24gKHBhdGgpIHtcbiAgcmV0dXJuIF8uZmlsdGVyKHRoaXMub3BlcmF0aW9uT2JqZWN0cywgZnVuY3Rpb24gKG9wZXJhdGlvbikge1xuICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKHBhdGgpID8gdHJ1ZSA6IG9wZXJhdGlvbi5wYXRoID09PSBwYXRoO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmVnaXN0ZXJzIGEgdmFsaWRhdG9yLlxuICpcbiAqIEBwYXJhbSB7dmFsaWRhdG9yQ2FsbGJhY2t9IHZhbGlkYXRvciAtIFRoZSB2YWxpZGF0b3JcbiAqXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IElmIHRoZSB2YWxpZGF0b3IgaXMgbm90IGEgZnVuY3Rpb25cbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUucmVnaXN0ZXJWYWxpZGF0b3IgPSBmdW5jdGlvbiAodmFsaWRhdG9yKSB7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHZhbGlkYXRvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWxpZGF0b3IgaXMgcmVxdWlyZWQnKTtcbiAgfSBlbHNlIGlmICghXy5pc0Z1bmN0aW9uKHZhbGlkYXRvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWxpZGF0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICB0aGlzLmN1c3RvbVZhbGlkYXRvcnMucHVzaCh2YWxpZGF0b3IpO1xufTtcblxuLyoqXG4gKiBQZXJmb3JtcyB2YWxpZGF0aW9uIG9mIHRoZSBTd2FnZ2VyIEFQSSBkb2N1bWVudChzKS5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBhbGwgdmFsaWRhdG9ycyBwcm9kdWNlIHplcm8gZXJyb3JzIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuU3dhZ2dlckFwaS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBSZXNldCB0aGUgZXJyb3JzIGFuZCB3YXJuaW5nc1xuICB0aGlzLmVycm9ycyA9IFtdO1xuICB0aGlzLndhcm5pbmdzID0gW107XG5cbiAgZnVuY3Rpb24gZG9WYWxpZGF0aW9uICh2YWxpZGF0b3IpIHtcbiAgICB2YXIgcmVzdWx0cyA9IHZhbGlkYXRvcihzZWxmKTtcblxuICAgIGlmIChyZXN1bHRzLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxmLmVycm9ycyA9IHNlbGYuZXJyb3JzLmNvbmNhdChyZXN1bHRzLmVycm9ycyk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMud2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZi53YXJuaW5ncyA9IHNlbGYud2FybmluZ3MuY29uY2F0KHJlc3VsdHMud2FybmluZ3MpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmFsbHlcbiAgZG9WYWxpZGF0aW9uKHRoaXMucGx1Z2luLmdldEpTT05TY2hlbWFWYWxpZGF0b3IoKSk7XG5cbiAgLy8gUGVyZm9ybSByZW1haW5pbmcgdmFsaWRhdGlvbiBvbmx5IGlmIHRoZSBkb2N1bWVudCBpcyBzdHJ1Y3R1cmFsbHkgdmFsaWRcbiAgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIFJ1biBwbHVnaW4gdmFsaWRhdG9yc1xuICAgIF8uZm9yRWFjaCh0aGlzLnBsdWdpbi5nZXRTZW1hbnRpY1ZhbGlkYXRvcnMoKSwgZG9WYWxpZGF0aW9uKTtcblxuICAgIC8vIFJ1biBjdXN0b20gdmFsaWRhdG9yc1xuICAgIF8uZm9yRWFjaCh0aGlzLmN1c3RvbVZhbGlkYXRvcnMsIGRvVmFsaWRhdGlvbik7XG4gIH1cblxuICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID09PSAwO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIE9wZXJhdGlvbjogT3BlcmF0aW9uLFxuICBQYXJhbWV0ZXI6IFBhcmFtZXRlcixcbiAgU3dhZ2dlckFwaTogU3dhZ2dlckFwaVxufTtcbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gKHdpbmRvdy5fKTtcbnZhciBCYXNlNjQgPSByZXF1aXJlKCdqcy1iYXNlNjQnKS5CYXNlNjQ7XG52YXIgc3RyaW5nTW9ja2VyID0gcmVxdWlyZSgnanNvbi1zY2hlbWEtZmFrZXIvbGliL3R5cGVzL3N0cmluZycpO1xuXG4vLyBCdWlsZCB0aGUgbGlzdCBvZiBjdXN0b20gSlNPTiBTY2hlbWEgZ2VuZXJhdG9yIGZvcm1hdHNcbm1vZHVsZS5leHBvcnRzLmJ5dGUgPSBmdW5jdGlvbiAoZ2VuLCBzY2hlbWEpIHtcbiAgdmFyIGNTY2hlbWEgPSBfLmNsb25lRGVlcChzY2hlbWEpO1xuICB2YXIgc2FtcGxlO1xuXG4gIGRlbGV0ZSBjU2NoZW1hLmZvcm1hdDtcblxuICBzYW1wbGUgPSBzdHJpbmdNb2NrZXIoY1NjaGVtYSk7XG5cbiAgcmV0dXJuIEJhc2U2NC5lbmNvZGUoc2FtcGxlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLnBhc3N3b3JkID0gZnVuY3Rpb24gKGdlbiwgc2NoZW1hKSB7XG4gIHJldHVybiBzdHJpbmdNb2NrZXIoc2NoZW1hKTtcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9ICh3aW5kb3cuXyk7XG5cbm1vZHVsZS5leHBvcnRzLmludDMyID0gbW9kdWxlLmV4cG9ydHMuaW50NjQgPSBmdW5jdGlvbiAodmFsKSB7XG4gIHZhciB2YWxpZCA9IHRydWU7XG4gIHZhciBjVmFsO1xuXG4gIGlmICghXy5pc051bWJlcih2YWwpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNWYWwgPSBwYXJzZUludCh2YWwsIDEwKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKF8uaXNOdW1iZXIoY1ZhbCkpIHtcbiAgICB2YWxpZCA9IGNWYWwgJSAxID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkO1xufTtcblxubW9kdWxlLmV4cG9ydHMuZG91YmxlID0gbW9kdWxlLmV4cG9ydHMuZmxvYXQgPSBmdW5jdGlvbiAodmFsKSB7XG4gIHZhciB2YWxpZCA9IHRydWU7XG5cbiAgaWYgKCFfLmlzTnVtYmVyKHZhbCkpIHtcbiAgICB0cnkge1xuICAgICAgcGFyc2VGbG9hdCh2YWwpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ieXRlID0gZnVuY3Rpb24gKHZhbCkge1xuICAvLyBUT0RPOiBXZSBjb3VsZCBkbyBtb3JlIGhlcmUgc2luY2UgdGVjaG5pY2FsbHkgJ2J5dGUnIG1lYW5zIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nXG4gIHJldHVybiBfLmlzU3RyaW5nKHZhbCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5wYXNzd29yZCA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgcmV0dXJuIF8uaXNTdHJpbmcodmFsKTtcbn07XG4iLCIvKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IEFwaWdlZSBDb3Jwb3JhdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cy5zdXBwb3J0ZWRIdHRwTWV0aG9kcyA9IFsnZ2V0JywgJ3B1dCcsICdwb3N0JywgJ2RlbGV0ZScsICdvcHRpb25zJywgJ2hlYWQnLCAncGF0Y2gnXTtcbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gKHdpbmRvdy5fKTtcbnZhciBKc29uUmVmcyA9ICh3aW5kb3cuSnNvblJlZnMpO1xudmFyIGZvcm1hdEdlbmVyYXRvcnMgPSByZXF1aXJlKCcuL2Zvcm1hdC1nZW5lcmF0b3JzJyk7XG52YXIgaGVscGVycyA9IHJlcXVpcmUoJy4uLy4uL2hlbHBlcnMnKTtcbnZhciB0eXBlcyA9IHJlcXVpcmUoJy4uLy4uL3R5cGVzJyk7XG52YXIgdmFsaWRhdG9ycyA9IHJlcXVpcmUoJy4vdmFsaWRhdG9ycycpO1xudmFyIHZIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbnZhciBkb2NzVXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kJztcbnZhciBtb2NrZXIgPSBoZWxwZXJzLmNyZWF0ZUpTT05TY2hlbWFNb2NrZXIoe1xuICBmb3JtYXRHZW5lcmF0b3JzOiBmb3JtYXRHZW5lcmF0b3JzXG59KTtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI3BhcmFtZXRlci1vYmplY3RcbnZhciBwYXJhbWV0ZXJTY2hlbWFQcm9wZXJ0aWVzID0gW1xuICAnZGVmYXVsdCcsXG4gICdkZXNjcmlwdGlvbicsXG4gICdlbnVtJyxcbiAgJ2V4Y2x1c2l2ZU1heGltdW0nLFxuICAnZXhjbHVzaXZlTWluaW11bScsXG4gICdmb3JtYXQnLFxuICAnaXRlbXMnLFxuICAnbWF4SXRlbXMnLFxuICAnbWF4TGVuZ3RoJyxcbiAgJ21heGltdW0nLFxuICAnbWluSXRlbXMnLFxuICAnbWluTGVuZ3RoJyxcbiAgJ21pbmltdW0nLFxuICAnbXVsdGlwbGVPZicsXG4gICdwYXR0ZXJuJyxcbiAgJ3R5cGUnLFxuICAndW5pcXVlSXRlbXMnXG5dO1xudmFyIHZlcnNpb24gPSAnMi4wJztcblxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyU2NoZW1hIChwYXJhbWV0ZXIpIHtcbiAgdmFyIHNjaGVtYTtcblxuICBpZiAoXy5pc1VuZGVmaW5lZChwYXJhbWV0ZXIuc2NoZW1hKSkge1xuICAgIHNjaGVtYSA9IHt9O1xuXG4gICAgLy8gQnVpbGQgdGhlIHNjaGVtYSBmcm9tIHRoZSBzY2hlbWEtbGlrZSBwYXJhbWV0ZXIgc3RydWN0dXJlXG4gICAgXy5lYWNoKHBhcmFtZXRlclNjaGVtYVByb3BlcnRpZXMsIGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQocGFyYW1ldGVyW25hbWVdKSkge1xuICAgICAgICBzY2hlbWFbbmFtZV0gPSBwYXJhbWV0ZXJbbmFtZV07XG4gICAgICB9XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgc2NoZW1hID0gcGFyYW1ldGVyLnNjaGVtYTtcbiAgfVxuXG4gIHJldHVybiBzY2hlbWE7XG59XG5cbi8vIFRoZSBVUkwgdG8gdGhlIFN3YWdnZXIgMi4wIGRvY3VtZW50YXRpb25cbm1vZHVsZS5leHBvcnRzLmRvY3VtZW50YXRpb24gPSBkb2NzVXJsO1xuXG4vLyBUaGUgYXJyYXkgb2Ygc3VwcG9ydGVkIEhUVFAgbWV0aG9kcyBmb3IgZWFjaCBwYXRoXG5tb2R1bGUuZXhwb3J0cy5zdXBwb3J0ZWRIdHRwTWV0aG9kcyA9IHZIZWxwZXJzLnN1cHBvcnRlZEh0dHBNZXRob2RzO1xuXG4vLyBUaGUgdmVyc2lvbiBmb3IgdGhpcyBTd2FnZ2VyIHZlcnNpb25cbm1vZHVsZS5leHBvcnRzLnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHByb3ZpZGVkIGRlZmluaXRpb24gY2FuIGJlIHByb2Nlc3NlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmaW5pdGlvbiAtIFRoZSBwb3RlbnRpYWwgU3dhZ2dlciBkZWZpbml0aW9uIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIG9ubHkgaWYgdGhlIGRlZmluaXRpb24gcmVwcmVzZW50cyBhIFN3YWdnZXIgMi4wIGRlZmluaXRpb25cbiAqL1xubW9kdWxlLmV4cG9ydHMuY2FuUHJvY2VzcyA9IGZ1bmN0aW9uIChkZWZpbml0aW9uKSB7XG4gIHJldHVybiBkZWZpbml0aW9uLnN3YWdnZXIgPT09IHZlcnNpb247XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTd2FnZ2VyQXBpIG9iamVjdCBmcm9tIHRoZSBwcm92aWRlZCBTd2FnZ2VyIGRlZmluaXRpb24uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGRlZmluaXRpb24gLSBUaGUgU3dhZ2dlciBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHBhc3NlZCB0byBzd2FnZ2VyQXBpLmNyZWF0ZVxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0aGUgU3dhZ2dlckFwaSBhZnRlciBwcm9jZXNzaW5nXG4gKi9cbm1vZHVsZS5leHBvcnRzLmNyZWF0ZVN3YWdnZXJBcGkgPSBmdW5jdGlvbiAoZGVmaW5pdGlvbiwgb3B0aW9ucykge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIEpzb25SZWZzLnJlc29sdmVSZWZzKGRlZmluaXRpb24sIG9wdGlvbnMubG9hZGVyT3B0aW9ucyB8fCB7fSwgZnVuY3Rpb24gKGVyciwgcmVzb2x2ZWQsIG1ldGFkYXRhKSB7XG4gICAgICB2YXIgYXBpO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcGkgPSBuZXcgdHlwZXMuU3dhZ2dlckFwaShtb2R1bGUuZXhwb3J0cywgZGVmaW5pdGlvbiwgcmVzb2x2ZWQsIG1ldGFkYXRhLCBvcHRpb25zKTtcblxuICAgICAgICByZXNvbHZlKGFwaSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdXNlZCB0byB2YWxpZGF0ZSBTd2FnZ2VyIDIuMCBkb2N1bWVudHMgYWdhaW5zdCBpdHMgSlNPTiBTY2hlbWEuXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBUaGUgdmFsaWRhdG9yIHRvIHVzZVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRKU09OU2NoZW1hVmFsaWRhdG9yID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdmFsaWRhdG9ycy5qc29uU2NoZW1hVmFsaWRhdG9yO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIE9wZXJhdGlvbiBvYmplY3RzIGZvciBlYWNoIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBTd2FnZ2VyIGRvY3VtZW50XG4gKlxuICogQHBhcmFtIHt0eXBlcy5Td2FnZ2VyQXBpfSBhcGkgLSBUaGUgU3dhZ2dlciBBUEkgb2JqZWN0XG4gKlxuICogQHJldHVybnMge3R5cGVzLk9wZXJhdGlvbltdfSBUaGUgT3BlcmF0aW9uIG9iamVjdCBhcnJheVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRPcGVyYXRpb25zID0gZnVuY3Rpb24gKGFwaSkge1xuICB2YXIgb3BlcmF0aW9ucyA9IFtdO1xuXG4gIF8uZm9yRWFjaChhcGkucmVzb2x2ZWQucGF0aHMsIGZ1bmN0aW9uIChwYXRoRGVmLCBwYXRoKSB7XG4gICAgdmFyIHBQYXRoID0gWydwYXRocycsIHBhdGhdO1xuICAgIHZhciBwUGFyYW1zID0gXy5yZWR1Y2UocGF0aERlZi5wYXJhbWV0ZXJzIHx8IHt9LCBmdW5jdGlvbiAocGFyYW1ldGVycywgcGFyYW1EZWYsIGluZGV4KSB7XG4gICAgICBwYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWUgKyAnOicgKyBwYXJhbURlZi5pbl0gPSB7XG4gICAgICAgIHBhdGg6IHBQYXRoLmNvbmNhdChbJ3BhcmFtZXRlcnMnLCBpbmRleC50b1N0cmluZygpXSksXG4gICAgICAgIGRlZmluaXRpb246IHBhcmFtRGVmXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9LCB7fSk7XG5cbiAgICBfLmZvckVhY2gocGF0aERlZiwgZnVuY3Rpb24gKG9wZXJhdGlvbiwgbWV0aG9kKSB7XG4gICAgICAvLyBEbyBub3QgcHJvY2VzcyBub24tb3BlcmF0aW9uc1xuICAgICAgaWYgKF8uaW5kZXhPZih2SGVscGVycy5zdXBwb3J0ZWRIdHRwTWV0aG9kcywgbWV0aG9kKSA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgY09wZXJhdGlvbiA9IF8uY2xvbmVEZWVwKG9wZXJhdGlvbik7IC8vIENsb25lIHNvIHdlIGRvIG5vdCBhbHRlciB0aGUgaW5wdXRcbiAgICAgIHZhciBvUGFyYW1zID0ge307IC8vIFVzZWQgdG8ga2VlcCB0cmFjayBvZiB1bmlxdWUgcGFyYW1ldGVyc1xuICAgICAgdmFyIG9QYXRoID0gcFBhdGguY29uY2F0KG1ldGhvZCk7XG5cbiAgICAgIC8vIEFkZCBwYXRoIHBhcmFtZXRlcnNcbiAgICAgIF8uZm9yRWFjaChwUGFyYW1zLCBmdW5jdGlvbiAocFBhcmFtLCBrZXkpIHtcbiAgICAgICAgb1BhcmFtc1trZXldID0gcFBhcmFtO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEFkZCBvcGVyYXRpb24gcGFyYW1ldGVycyAoT3ZlcnJpZGVzIHBhdGgtbGV2ZWwgcGFyYW1ldGVycyBvZiBzYW1lIG5hbWUraW4gY29tYmluYXRpb24pXG4gICAgICBfLmZvckVhY2gob3BlcmF0aW9uLnBhcmFtZXRlcnMsIGZ1bmN0aW9uIChwYXJhbURlZiwgaW5kZXgpIHtcbiAgICAgICAgb1BhcmFtc1twYXJhbURlZi5uYW1lICsgJzonICsgcGFyYW1EZWYuaW5dID0ge1xuICAgICAgICAgIHBhdGg6IG9QYXRoLmNvbmNhdChbJ3BhcmFtZXRlcnMnLCBpbmRleC50b1N0cmluZygpXSksXG4gICAgICAgICAgZGVmaW5pdGlvbjogcGFyYW1EZWZcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBBdHRhY2ggb3VyIGNvbXB1dGVkIHBhcmFtZXRlcnMvc2VjdXJpdHkgdG8gdGhlIG9wZXJhdGlvblxuICAgICAgY09wZXJhdGlvbi5wYXJhbWV0ZXJzID0gXy5tYXAoXy52YWx1ZXMob1BhcmFtcyksIGZ1bmN0aW9uIChwYXJhbWV0ZXIpIHtcbiAgICAgICAgLy8gVXNlZCBsYXRlciBieSBnZXRPcGVyYXRpb25QYXJhbWV0ZXJzIHRvIGNpcmN1bXZlbnQgdGhlIGNoaWNrZW4vZWdnIHNpdHVhdGlvbiAoUmVtb3ZlZCB0aGVyZSBhcyB3ZWxsKVxuICAgICAgICBwYXJhbWV0ZXIuZGVmaW5pdGlvbi4kJCRwdHIkJCQgPSBKc29uUmVmcy5wYXRoVG9Qb2ludGVyKHBhcmFtZXRlci5wYXRoKTtcblxuICAgICAgICByZXR1cm4gcGFyYW1ldGVyLmRlZmluaXRpb247XG4gICAgICB9KTtcblxuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChjT3BlcmF0aW9uLnNlY3VyaXR5KSkge1xuICAgICAgICBjT3BlcmF0aW9uLnNlY3VyaXR5ID0gYXBpLnJlc29sdmVkLnNlY3VyaXR5O1xuICAgICAgfVxuXG4gICAgICBvcGVyYXRpb25zLnB1c2gobmV3IHR5cGVzLk9wZXJhdGlvbihhcGksIHBhdGgsIG1ldGhvZCwgSnNvblJlZnMucGF0aFRvUG9pbnRlcihvUGF0aCksIGNPcGVyYXRpb24pKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG9wZXJhdGlvbnM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gYXJyYXkgb2YgUGFyYW1ldGVyIG9iamVjdHMgZm9yIHRoZSBwcm92aWNlZCBPcGVyYXRpb24uXG4gKlxuICogQHBhcmFtIHt0eXBlcy5PcGVyYXRpb259IG9wZXJhdGlvbiAtIFRoZSBPcGVyYXRpb24gb2JqZWN0XG4gKlxuICogQHJldHVybnMge3R5cGVzLlBhcmFtZXRlcltdfSBUaGUgUGFyYW1ldGVyIG9iamVjdCBhcnJheVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRPcGVyYXRpb25QYXJhbWV0ZXJzID0gZnVuY3Rpb24gKG9wZXJhdGlvbikge1xuICByZXR1cm4gXy5tYXAob3BlcmF0aW9uLnBhcmFtZXRlcnMsIGZ1bmN0aW9uIChwYXJhbURlZikge1xuICAgIHZhciBwdHIgPSBwYXJhbURlZi4kJCRwdHIkJCQ7XG5cbiAgICAvLyBSZW1vdmUgc28gd2UgZG8gbm90IGhhdmUgdGhlc2UgcHJvcGVydGllcyBsaXRlcmVkIHRocm91Z2hvdXQgdGhlIGRvY3VtZW50XG4gICAgZGVsZXRlIHBhcmFtRGVmLiQkJHB0ciQkJDtcblxuICAgIHJldHVybiBuZXcgdHlwZXMuUGFyYW1ldGVyKG9wZXJhdGlvbiwgcHRyLCBwYXJhbURlZiwgZ2V0UGFyYW1ldGVyU2NoZW1hKHBhcmFtRGVmKSk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc2FtcGxlIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgSlNPTiBTY2hlbWEuXG4gKlxuICogQHBhcmFtIHsqfSBzY2hlbWEgLSBUaGUgSlNPTiBTY2hlbWFcbiAqXG4gKiBAcmV0dXJucyB7Kn0gVGhlIHNhbXBsZSB2YWx1ZVxuICovXG5tb2R1bGUuZXhwb3J0cy5nZXRTYW1wbGUgPSBmdW5jdGlvbiAoc2NoZW1hKSB7XG4gIHJldHVybiBtb2NrZXIoc2NoZW1hKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBmdW5jdGlvbnMgdXNlZCB0byB2YWxpZGF0ZSBTd2FnZ2VyIDIuMCBkb2N1bWVudHMgc2VtYW50aWNhbGx5LlxuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbltdfSBUaGUgdmFsaWRhdG9ycyB0byB1c2VcbiAqL1xubW9kdWxlLmV4cG9ydHMuZ2V0U2VtYW50aWNWYWxpZGF0b3JzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdmFsaWRhdG9ycy5zZW1hbnRpY1ZhbGlkYXRvcnM7XG59O1xuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInRpdGxlXCI6IFwiQSBKU09OIFNjaGVtYSBmb3IgU3dhZ2dlciAyLjAgQVBJLlwiLFxuICBcImlkXCI6IFwiaHR0cDovL3N3YWdnZXIuaW8vdjIvc2NoZW1hLmpzb24jXCIsXG4gIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiLFxuICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgXCJyZXF1aXJlZFwiOiBbXG4gICAgXCJzd2FnZ2VyXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJwYXRoc1wiXG4gIF0sXG4gIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgIFwiXngtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICB9XG4gIH0sXG4gIFwicHJvcGVydGllc1wiOiB7XG4gICAgXCJzd2FnZ2VyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgXCIyLjBcIlxuICAgICAgXSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgU3dhZ2dlciB2ZXJzaW9uIG9mIHRoaXMgZG9jdW1lbnQuXCJcbiAgICB9LFxuICAgIFwiaW5mb1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luZm9cIlxuICAgIH0sXG4gICAgXCJob3N0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIixcbiAgICAgIFwicGF0dGVyblwiOiBcIl5bXnt9LyA6XFxcXFxcXFxdKyg/OjpcXFxcZCspPyRcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgZnVsbHkgcXVhbGlmaWVkIFVSSSB0byB0aGUgaG9zdCBvZiB0aGUgQVBJLlwiXG4gICAgfSxcbiAgICBcImJhc2VQYXRoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJwYXR0ZXJuXCI6IFwiXi9cIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgYmFzZSBwYXRoIHRvIHRoZSBBUEkuIEV4YW1wbGU6ICcvYXBpJy5cIlxuICAgIH0sXG4gICAgXCJzY2hlbWVzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1lc0xpc3RcIlxuICAgIH0sXG4gICAgXCJjb25zdW1lc1wiOiB7XG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIE1JTUUgdHlwZXMgYWNjZXB0ZWQgYnkgdGhlIEFQSS5cIixcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWVkaWFUeXBlTGlzdFwiXG4gICAgfSxcbiAgICBcInByb2R1Y2VzXCI6IHtcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgTUlNRSB0eXBlcyB0aGUgQVBJIGNhbiBwcm9kdWNlLlwiLFxuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tZWRpYVR5cGVMaXN0XCJcbiAgICB9LFxuICAgIFwicGF0aHNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXRoc1wiXG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmaW5pdGlvbnNcIlxuICAgIH0sXG4gICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyRGVmaW5pdGlvbnNcIlxuICAgIH0sXG4gICAgXCJyZXNwb25zZXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZURlZmluaXRpb25zXCJcbiAgICB9LFxuICAgIFwic2VjdXJpdHlcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eVwiXG4gICAgfSxcbiAgICBcInNlY3VyaXR5RGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eURlZmluaXRpb25zXCJcbiAgICB9LFxuICAgIFwidGFnc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdGFnXCJcbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwiZXh0ZXJuYWxEb2NzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXh0ZXJuYWxEb2NzXCJcbiAgICB9XG4gIH0sXG4gIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgIFwiaW5mb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBBUEkuXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ2ZXJzaW9uXCIsXG4gICAgICAgIFwidGl0bGVcIlxuICAgICAgXSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidGl0bGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIHVuaXF1ZSBhbmQgcHJlY2lzZSB0aXRsZSBvZiB0aGUgQVBJLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIgb2YgdGhlIEFQSS5cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsb25nZXIgZGVzY3JpcHRpb24gb2YgdGhlIEFQSS4gU2hvdWxkIGJlIGRpZmZlcmVudCBmcm9tIHRoZSB0aXRsZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGVybXNPZlNlcnZpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgdGVybXMgb2Ygc2VydmljZSBmb3IgdGhlIEFQSS5cIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbnRhY3RcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29udGFjdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGljZW5zZVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9saWNlbnNlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJjb250YWN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbnRhY3QgaW5mb3JtYXRpb24gZm9yIHRoZSBvd25lcnMgb2YgdGhlIEFQSS5cIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgaWRlbnRpZnlpbmcgbmFtZSBvZiB0aGUgY29udGFjdCBwZXJzb24vb3JnYW5pemF0aW9uLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIFVSTCBwb2ludGluZyB0byB0aGUgY29udGFjdCBpbmZvcm1hdGlvbi5cIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW1haWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgY29udGFjdCBwZXJzb24vb3JnYW5pemF0aW9uLlwiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwiZW1haWxcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcImxpY2Vuc2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJuYW1lXCJcbiAgICAgIF0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIGxpY2Vuc2UgdHlwZS4gSXQncyBlbmNvdXJhZ2VkIHRvIHVzZSBhbiBPU0kgY29tcGF0aWJsZSBsaWNlbnNlLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIFVSTCBwb2ludGluZyB0byB0aGUgbGljZW5zZS5cIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicGF0aHNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVsYXRpdmUgcGF0aHMgdG8gdGhlIGluZGl2aWR1YWwgZW5kcG9pbnRzLiBUaGV5IG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlICdiYXNlUGF0aCcuXCIsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJeL1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXRoSXRlbVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgIH0sXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiT25lIG9yIG1vcmUgSlNPTiBvYmplY3RzIGRlc2NyaWJpbmcgdGhlIHNjaGVtYXMgYmVpbmcgY29uc3VtZWQgYW5kIHByb2R1Y2VkIGJ5IHRoZSBBUEkuXCJcbiAgICB9LFxuICAgIFwicGFyYW1ldGVyRGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbWV0ZXJcIlxuICAgICAgfSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJPbmUgb3IgbW9yZSBKU09OIHJlcHJlc2VudGF0aW9ucyBmb3IgcGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcInJlc3BvbnNlRGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZVwiXG4gICAgICB9LFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk9uZSBvciBtb3JlIEpTT04gcmVwcmVzZW50YXRpb25zIGZvciBwYXJhbWV0ZXJzXCJcbiAgICB9LFxuICAgIFwiZXh0ZXJuYWxEb2NzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpbmZvcm1hdGlvbiBhYm91dCBleHRlcm5hbCBkb2N1bWVudGF0aW9uXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ1cmxcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiZXhhbXBsZXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeW2EtejAtOS1dKy9bYS16MC05XFxcXC0rXSskXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJtaW1lVHlwZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgTUlNRSB0eXBlIG9mIHRoZSBIVFRQIG1lc3NhZ2UuXCJcbiAgICB9LFxuICAgIFwib3BlcmF0aW9uXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwicmVzcG9uc2VzXCJcbiAgICAgIF0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwic3VtbWFyeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgc3VtbWFyeSBvZiB0aGUgb3BlcmF0aW9uLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxvbmdlciBkZXNjcmlwdGlvbiBvZiB0aGUgb3BlcmF0aW9uLCBnaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4dGVybmFsRG9jc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leHRlcm5hbERvY3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIm9wZXJhdGlvbklkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBmcmllbmRseSBuYW1lIG9mIHRoZSBvcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInByb2R1Y2VzXCI6IHtcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIE1JTUUgdHlwZXMgdGhlIEFQSSBjYW4gcHJvZHVjZS5cIixcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21lZGlhVHlwZUxpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbnN1bWVzXCI6IHtcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIE1JTUUgdHlwZXMgdGhlIEFQSSBjYW4gY29uc3VtZS5cIixcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21lZGlhVHlwZUxpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyc0xpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInNjaGVtZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1lc0xpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZWN1cml0eVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicGF0aEl0ZW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2V0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHV0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicG9zdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlbGV0ZVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcGVyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIm9wdGlvbnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJoZWFkXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wZXJhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0Y2hcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3BlcmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFtZXRlcnNMaXN0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJyZXNwb25zZXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVzcG9uc2Ugb2JqZWN0cyBuYW1lcyBjYW4gZWl0aGVyIGJlIGFueSB2YWxpZCBIVFRQIHN0YXR1cyBjb2RlIG9yICdkZWZhdWx0Jy5cIixcbiAgICAgIFwibWluUHJvcGVydGllc1wiOiAxLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl4oWzAtOV17M30pJHxeKGRlZmF1bHQpJFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXNwb25zZVZhbHVlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwibm90XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwicmVzcG9uc2VWYWx1ZVwiOiB7XG4gICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmVzcG9uc2VcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qc29uUmVmZXJlbmNlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJyZXNwb25zZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcImRlc2NyaXB0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInNjaGVtYVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICB9LFxuICAgICAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaGVhZGVyc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhhbXBsZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhhbXBsZXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJoZWFkZXJzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaGVhZGVyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiaGVhZGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiYXJyYXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJ2ZW5kb3JFeHRlbnNpb25cIjoge1xuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkFueSBwcm9wZXJ0eSBzdGFydGluZyB3aXRoIHgtIGlzIHZhbGlkLlwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJhZGRpdGlvbmFsSXRlbXNcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJib2R5UGFyYW1ldGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiLFxuICAgICAgICBcImluXCIsXG4gICAgICAgIFwic2NoZW1hXCJcbiAgICAgIF0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZiB1c2UuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGFyYW1ldGVyLlwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImJvZHlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcInNjaGVtYVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJoZWFkZXJQYXJhbWV0ZXJTdWJTY2hlbWFcIjoge1xuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcImluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB0aGUgbG9jYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJoZWFkZXJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJhcnJheVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInF1ZXJ5UGFyYW1ldGVyU3ViU2NoZW1hXCI6IHtcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBvciBvcHRpb25hbC5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwicXVlcnlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS4gIEdpdGh1Yi1mbGF2b3JlZCBtYXJrZG93biBpcyBhbGxvd2VkLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxvd0VtcHR5VmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2UsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbG93cyBzZW5kaW5nIGEgcGFyYW1ldGVyIGJ5IG5hbWUgb25seSBvciB3aXRoIGFuIGVtcHR5IHZhbHVlLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYXJyYXlcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRXaXRoTXVsdGlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJmb3JtRGF0YVBhcmFtZXRlclN1YlNjaGVtYVwiOiB7XG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGFyYW1ldGVyLlwiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImZvcm1EYXRhXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZiB1c2UuICBHaXRodWItZmxhdm9yZWQgbWFya2Rvd24gaXMgYWxsb3dlZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxsb3dFbXB0eVZhbHVlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGxvd3Mgc2VuZGluZyBhIHBhcmFtZXRlciBieSBuYW1lIG9ubHkgb3Igd2l0aCBhbiBlbXB0eSB2YWx1ZS5cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICBcImZpbGVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcHJpbWl0aXZlc0l0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2xsZWN0aW9uRm9ybWF0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NvbGxlY3Rpb25Gb3JtYXRXaXRoTXVsdGlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4TGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5MZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluTGVuZ3RoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhdHRlcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heEl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5JdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5JdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdW5pcXVlSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZW51bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibXVsdGlwbGVPZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJwYXRoUGFyYW1ldGVyU3ViU2NoZW1hXCI6IHtcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRldGVybWluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwicGF0aFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVyLiBUaGlzIGNvdWxkIGNvbnRhaW4gZXhhbXBsZXMgb2YgdXNlLiAgR2l0aHViLWZsYXZvcmVkIG1hcmtkb3duIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImFycmF5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ByaW1pdGl2ZXNJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb2xsZWN0aW9uRm9ybWF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2RlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWluaW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heExlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkxlbmd0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWluSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbXVsdGlwbGVPZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwibm9uQm9keVBhcmFtZXRlclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgXCJpblwiLFxuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9oZWFkZXJQYXJhbWV0ZXJTdWJTY2hlbWFcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9mb3JtRGF0YVBhcmFtZXRlclN1YlNjaGVtYVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3F1ZXJ5UGFyYW1ldGVyU3ViU2NoZW1hXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0aFBhcmFtZXRlclN1YlNjaGVtYVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwicGFyYW1ldGVyXCI6IHtcbiAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ib2R5UGFyYW1ldGVyXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbm9uQm9keVBhcmFtZXRlclwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwic2NoZW1hXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgZGV0ZXJtaW5pc3RpYyB2ZXJzaW9uIG9mIGEgSlNPTiBTY2hlbWEgb2JqZWN0LlwiLFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRyZWZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy90aXRsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9tdWx0aXBsZU9mXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9tYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9leGNsdXNpdmVNYXhpbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9leGNsdXNpdmVNaW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9wYXR0ZXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3VuaXF1ZUl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2VudW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvcHJvcGVydGllcy9hZGRpdGlvbmFsUHJvcGVydGllc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvdHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxsT2ZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImRpc2NyaW1pbmF0b3JcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJ4bWxcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMveG1sXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleHRlcm5hbERvY3NcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXh0ZXJuYWxEb2NzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGFtcGxlXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJwcmltaXRpdmVzSXRlbXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJhcnJheVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wcmltaXRpdmVzSXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbGxlY3Rpb25Gb3JtYXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY29sbGVjdGlvbkZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9kZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21heGltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1heGltdW1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhjbHVzaXZlTWF4aW11bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5pbXVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heExlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9tYXhMZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW5MZW5ndGhcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGF0dGVyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbWF4SXRlbXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL21pbkl0ZW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy91bmlxdWVJdGVtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9lbnVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL211bHRpcGxlT2ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcInNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zZWN1cml0eVJlcXVpcmVtZW50XCJcbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwic2VjdXJpdHlSZXF1aXJlbWVudFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIFwieG1sXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJlZml4XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcIndyYXBwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJ0YWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4dGVybmFsRG9jc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9leHRlcm5hbERvY3NcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwic2VjdXJpdHlEZWZpbml0aW9uc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2Jhc2ljQXV0aGVudGljYXRpb25TZWN1cml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FwaUtleVNlY3VyaXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgySW1wbGljaXRTZWN1cml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29hdXRoMlBhc3N3b3JkU2VjdXJpdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJBcHBsaWNhdGlvblNlY3VyaXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyQWNjZXNzQ29kZVNlY3VyaXR5XCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiYmFzaWNBdXRoZW50aWNhdGlvblNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYmFzaWNcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcImFwaUtleVNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwiaW5cIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYXBpS2V5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcInF1ZXJ5XCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJvYXV0aDJJbXBsaWNpdFNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJmbG93XCIsXG4gICAgICAgIFwiYXV0aG9yaXphdGlvblVybFwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJvYXV0aDJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmbG93XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJpbXBsaWNpdFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJTY29wZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhvcml6YXRpb25VcmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm9hdXRoMlBhc3N3b3JkU2VjdXJpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcImZsb3dcIixcbiAgICAgICAgXCJ0b2tlblVybFwiXG4gICAgICBdLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJvYXV0aDJcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmbG93XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJwYXNzd29yZFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vYXV0aDJTY29wZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInRva2VuVXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJeeC1cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdmVuZG9yRXh0ZW5zaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJvYXV0aDJBcHBsaWNhdGlvblNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJmbG93XCIsXG4gICAgICAgIFwidG9rZW5VcmxcIlxuICAgICAgXSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwib2F1dGgyXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmxvd1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwiYXBwbGljYXRpb25cIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyU2NvcGVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0b2tlblVybFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiXngtXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3ZlbmRvckV4dGVuc2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwib2F1dGgyQWNjZXNzQ29kZVNlY3VyaXR5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJmbG93XCIsXG4gICAgICAgIFwiYXV0aG9yaXphdGlvblVybFwiLFxuICAgICAgICBcInRva2VuVXJsXCJcbiAgICAgIF0sXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcIm9hdXRoMlwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImZsb3dcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcImFjY2Vzc0NvZGVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb2F1dGgyU2NvcGVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRob3JpemF0aW9uVXJsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidG9rZW5VcmxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl54LVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy92ZW5kb3JFeHRlbnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIm9hdXRoMlNjb3Blc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJtZWRpYVR5cGVMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9taW1lVHlwZVwiXG4gICAgICB9LFxuICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcInBhcmFtZXRlcnNMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIHBhcmFtZXRlcnMgbmVlZGVkIHRvIHNlbmQgYSB2YWxpZCBBUEkgY2FsbC5cIixcbiAgICAgIFwiYWRkaXRpb25hbEl0ZW1zXCI6IGZhbHNlLFxuICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvanNvblJlZmVyZW5jZVwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgfSxcbiAgICBcInNjaGVtZXNMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIHRyYW5zZmVyIHByb3RvY29sIG9mIHRoZSBBUEkuXCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgXCJodHRwXCIsXG4gICAgICAgICAgXCJodHRwc1wiLFxuICAgICAgICAgIFwid3NcIixcbiAgICAgICAgICBcIndzc1wiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICB9LFxuICAgIFwiY29sbGVjdGlvbkZvcm1hdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgIFwiY3N2XCIsXG4gICAgICAgIFwic3N2XCIsXG4gICAgICAgIFwidHN2XCIsXG4gICAgICAgIFwicGlwZXNcIlxuICAgICAgXSxcbiAgICAgIFwiZGVmYXVsdFwiOiBcImNzdlwiXG4gICAgfSxcbiAgICBcImNvbGxlY3Rpb25Gb3JtYXRXaXRoTXVsdGlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcImVudW1cIjogW1xuICAgICAgICBcImNzdlwiLFxuICAgICAgICBcInNzdlwiLFxuICAgICAgICBcInRzdlwiLFxuICAgICAgICBcInBpcGVzXCIsXG4gICAgICAgIFwibXVsdGlcIlxuICAgICAgXSxcbiAgICAgIFwiZGVmYXVsdFwiOiBcImNzdlwiXG4gICAgfSxcbiAgICBcInRpdGxlXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3RpdGxlXCJcbiAgICB9LFxuICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvZGVzY3JpcHRpb25cIlxuICAgIH0sXG4gICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2RlZmF1bHRcIlxuICAgIH0sXG4gICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL211bHRpcGxlT2ZcIlxuICAgIH0sXG4gICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL21heGltdW1cIlxuICAgIH0sXG4gICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2V4Y2x1c2l2ZU1heGltdW1cIlxuICAgIH0sXG4gICAgXCJtaW5pbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL21pbmltdW1cIlxuICAgIH0sXG4gICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2V4Y2x1c2l2ZU1pbmltdW1cIlxuICAgIH0sXG4gICAgXCJtYXhMZW5ndGhcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlclwiXG4gICAgfSxcbiAgICBcIm1pbkxlbmd0aFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDBcIlxuICAgIH0sXG4gICAgXCJwYXR0ZXJuXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL3BhdHRlcm5cIlxuICAgIH0sXG4gICAgXCJtYXhJdGVtc1wiOiB7XG4gICAgICBcIiRyZWZcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyXCJcbiAgICB9LFxuICAgIFwibWluSXRlbXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwXCJcbiAgICB9LFxuICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjL3Byb3BlcnRpZXMvdW5pcXVlSXRlbXNcIlxuICAgIH0sXG4gICAgXCJlbnVtXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIy9wcm9wZXJ0aWVzL2VudW1cIlxuICAgIH0sXG4gICAgXCJqc29uUmVmZXJlbmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBpZ2VlIENvcnBvcmF0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gKHdpbmRvdy5fKTtcbnZhciBjdXN0b21Gb3JtYXRWYWxpZGF0b3JzID0gcmVxdWlyZSgnLi9mb3JtYXQtdmFsaWRhdG9ycycpO1xudmFyIGhlbHBlcnMgPSByZXF1aXJlKCcuLi8uLi9oZWxwZXJzJyk7XG52YXIgSnNvblJlZnMgPSAod2luZG93Lkpzb25SZWZzKTtcbnZhciBzd2FnZ2VyU2NoZW1hID0gcmVxdWlyZSgnLi9zY2hlbWEuanNvbicpO1xudmFyIHZIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbmZ1bmN0aW9uIHdhbGtTY2hlbWEgKGJsYWNrbGlzdCwgc2NoZW1hLCBwYXRoLCBoYW5kbGVyKSB7XG4gIHZhciB0eXBlID0gc2NoZW1hLnR5cGUgfHwgJ29iamVjdCc7XG5cbiAgZnVuY3Rpb24gc2hvdWxkU2tpcCAoY1BhdGgpIHtcbiAgICByZXR1cm4gXy5pbmRleE9mKGJsYWNrbGlzdCwgSnNvblJlZnMucGF0aFRvUG9pbnRlcihjUGF0aCkpID4gLTE7XG4gIH1cblxuICAvLyBEbyBub3QgcHJvY2VzcyBpdGVtcyBpbiB0aGUgYmxhY2tsaXN0IGFzIHRoZXkndmUgYmVlbiBwcm9jZXNzZWQgYWxyZWFkeVxuICBpZiAoc2hvdWxkU2tpcChwYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdhbGtlciAocFNjaGVtYSwgcFBhdGgpIHtcbiAgICAvLyBEbyBub3QgcHJvY2VzcyBpdGVtcyBpbiB0aGUgYmxhY2tsaXN0IGFzIHRoZXkndmUgYmVlbiBwcm9jZXNzZWQgYWxyZWFkeVxuICAgIGlmIChzaG91bGRTa2lwKHBQYXRoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIF8uZm9yRWFjaChwU2NoZW1hLCBmdW5jdGlvbiAoaXRlbSwgbmFtZSkge1xuICAgICAgaWYgKF8uaXNOdW1iZXIobmFtZSkpIHtcbiAgICAgICAgbmFtZSA9IG5hbWUudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgd2Fsa1NjaGVtYShibGFja2xpc3QsIGl0ZW0sIHBQYXRoLmNvbmNhdChuYW1lKSwgaGFuZGxlcik7XG4gICAgfSk7XG5cbiAgICBoYW5kbGVyKHBTY2hlbWEsIHBQYXRoKTtcbiAgfVxuXG4gIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWEuc2NoZW1hKSkge1xuICAgIHdhbGtTY2hlbWEoYmxhY2tsaXN0LCBzY2hlbWEuc2NoZW1hLCBwYXRoLmNvbmNhdCgnc2NoZW1hJyksIGhhbmRsZXIpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheScgJiYgIV8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zKSkge1xuICAgIHdhbGtlcihzY2hlbWEuaXRlbXMsIHBhdGguY29uY2F0KCdpdGVtcycpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMpKSB7XG4gICAgICB3YWxrU2NoZW1hKGJsYWNrbGlzdCwgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLCBwYXRoLmNvbmNhdCgnYWRkaXRpb25hbFByb3BlcnRpZXMnKSwgaGFuZGxlcik7XG4gICAgfVxuXG4gICAgXy5mb3JFYWNoKFsnYWxsT2YnLCAncHJvcGVydGllcyddLCBmdW5jdGlvbiAocHJvcE5hbWUpIHtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZChzY2hlbWFbcHJvcE5hbWVdKSkge1xuICAgICAgICB3YWxrZXIoc2NoZW1hW3Byb3BOYW1lXSwgcGF0aC5jb25jYXQocHJvcE5hbWUpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZXIoc2NoZW1hLCBwYXRoKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHJlc29sdmVkIFN3YWdnZXIgZG9jdW1lbnQgYWdhaW5zdCB0aGUgU3dhZ2dlciAyLjAgSlNPTiBTY2hlbWEuXG4gKlxuICogQHBhcmFtIHtTd2FnZ2VyQXBpfSBhcGkgLSBUaGUgU3dhZ2dlckFwaSBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBPYmplY3QgY29udGFpbmluZyB0aGUgZXJyb3JzIGFuZCB3YXJuaW5ncyBvZiB0aGUgdmFsaWRhdGlvblxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVN0cnVjdHVyZSAoYXBpKSB7XG4gIHJldHVybiBoZWxwZXJzLnZhbGlkYXRlQWdhaW5zdFNjaGVtYShoZWxwZXJzLmNyZWF0ZUpTT05WYWxpZGF0b3Ioe1xuICAgIGZvcm1hdFZhbGlkYXRvcnM6IGN1c3RvbUZvcm1hdFZhbGlkYXRvcnNcbiAgfSksIHN3YWdnZXJTY2hlbWEsIGFwaS5yZXNvbHZlZCk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoYXQgYWxsIGFycmF5cyBoYXZlIHRoZWlyIHJlcXVpcmVkIGl0ZW1zIHByb3BlcnR5LlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvaXNzdWVzLzE3NH1cbiAqXG4gKiBAcGFyYW0ge1N3YWdnZXJBcGl9IGFwaSAtIFRoZSBTd2FnZ2VyQXBpIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIG9mIHRoZSB2YWxpZGF0aW9uXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlQXJyYXlJdGVtcyAoYXBpKSB7XG4gIC8vIEJ1aWxkIGEgYmxhY2tsaXN0IHRvIGF2b2lkIGNhc2NhZGluZyBlcnJvcnMvd2FybmluZ3NcbiAgdmFyIGJsYWNrbGlzdCA9IF8ucmVkdWNlKGFwaS5yZWZlcmVuY2VzLCBmdW5jdGlvbiAobGlzdCwgbWV0YWRhdGEsIHB0cikge1xuICAgIHZhciByZWZQYXRoID0gSnNvblJlZnMucGF0aEZyb21Qb2ludGVyKHB0cik7XG5cbiAgICAvLyBSZW1vdmUgdGhlICRyZWYgcGFydCBvZiB0aGUgcGF0aFxuICAgIHJlZlBhdGgucG9wKCk7XG5cbiAgICBsaXN0LnB1c2goSnNvblJlZnMucGF0aFRvUG9pbnRlcihyZWZQYXRoKSk7XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfSwgW10pO1xuICB2YXIgcmVzcG9uc2UgPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW11cbiAgfTtcblxuICBmdW5jdGlvbiB2YWxpZGF0ZSAoc2NoZW1hLCBwYXRoKSB7XG4gICAgaWYgKHNjaGVtYS50eXBlID09PSAnYXJyYXknICYmIF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgcmVzcG9uc2UuZXJyb3JzLnB1c2goe1xuICAgICAgICBjb2RlOiAnT0JKRUNUX01JU1NJTkdfUkVRVUlSRURfUFJPUEVSVFknLFxuICAgICAgICBtZXNzYWdlOiAnTWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eTogaXRlbXMnLFxuICAgICAgICBwYXRoOiBwYXRoXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB2YWxpZGF0ZVBhcmFtZXRlcnMgKHBhcmFtZXRlcnMsIHBhdGgpIHtcbiAgICBfLmZvckVhY2gocGFyYW1ldGVycywgZnVuY3Rpb24gKHBhcmFtZXRlckRlZiwgbmFtZSkge1xuICAgICAgaWYgKF8uaXNOdW1iZXIobmFtZSkpIHtcbiAgICAgICAgbmFtZSA9IG5hbWUudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgd2Fsa1NjaGVtYShibGFja2xpc3QsIHBhcmFtZXRlckRlZiwgcGF0aC5jb25jYXQobmFtZSksIHZhbGlkYXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHZhbGlkYXRlUmVzcG9uc2VzIChyZXNwb25zZXMsIHBhdGgpIHtcbiAgICBfLmZvckVhY2gocmVzcG9uc2VzLCBmdW5jdGlvbiAocmVzcG9uc2VEZWYsIG5hbWUpIHtcbiAgICAgIHZhciByUGF0aCA9IHBhdGguY29uY2F0KG5hbWUpO1xuXG4gICAgICBfLmZvckVhY2gocmVzcG9uc2VEZWYuaGVhZGVycywgZnVuY3Rpb24gKGhlYWRlciwgaE5hbWUpIHtcbiAgICAgICAgd2Fsa1NjaGVtYShibGFja2xpc3QsIGhlYWRlciwgclBhdGguY29uY2F0KFsnaGVhZGVycycsIGhOYW1lXSksIHZhbGlkYXRlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQocmVzcG9uc2VEZWYuc2NoZW1hKSkge1xuICAgICAgICB3YWxrU2NoZW1hKGJsYWNrbGlzdCwgcmVzcG9uc2VEZWYuc2NoZW1hLCByUGF0aC5jb25jYXQoJ3NjaGVtYScpLCB2YWxpZGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBkZWZpbml0aW9uc1xuICBfLmZvckVhY2goYXBpLnJlc29sdmVkLmRlZmluaXRpb25zLCBmdW5jdGlvbiAoZGVmaW5pdGlvbkRlZiwgbmFtZSkge1xuICAgIHdhbGtTY2hlbWEoYmxhY2tsaXN0LCBkZWZpbml0aW9uRGVmLCBbJ2RlZmluaXRpb25zJywgbmFtZV0sIHZhbGlkYXRlKTtcbiAgfSk7XG5cbiAgLy8gVmFsaWRhdGUgZ2xvYmFsIHBhcmFtZXRlciBkZWZpbml0aW9uc1xuICB2YWxpZGF0ZVBhcmFtZXRlcnMoYXBpLnJlc29sdmVkLnBhcmFtZXRlcnMsIFsncGFyYW1ldGVycyddKTtcblxuICAvLyBWYWxpZGF0ZSBnbG9iYWwgcmVzcG9uc2UgZGVmaW5pdGlvbnNcbiAgdmFsaWRhdGVSZXNwb25zZXMoYXBpLnJlc29sdmVkLnJlc3BvbnNlcywgWydyZXNwb25zZXMnXSk7XG5cbiAgLy8gVmFsaWRhdGUgcGF0aHMgYW5kIG9wZXJhdGlvbnNcbiAgXy5mb3JFYWNoKGFwaS5yZXNvbHZlZC5wYXRocywgZnVuY3Rpb24gKHBhdGhEZWYsIHBhdGgpIHtcbiAgICB2YXIgcFBhdGggPSBbJ3BhdGhzJywgcGF0aF07XG5cbiAgICAvLyBWYWxpZGF0ZSBwYXRoLWxldmVsIHBhcmFtZXRlciBkZWZpbml0aW9uc1xuICAgIHZhbGlkYXRlUGFyYW1ldGVycyhwYXRoRGVmLnBhcmFtZXRlcnMsIHBQYXRoLmNvbmNhdCgncGFyYW1ldGVycycpKTtcblxuICAgIF8uZm9yRWFjaChwYXRoRGVmLCBmdW5jdGlvbiAob3BlcmF0aW9uRGVmLCBtZXRob2QpIHtcbiAgICAgIHZhciBvUGF0aCA9IHBQYXRoLmNvbmNhdChtZXRob2QpO1xuXG4gICAgICAvLyBEbyBub3QgcHJvY2VzcyBub24tb3BlcmF0aW9uc1xuICAgICAgaWYgKF8uaW5kZXhPZih2SGVscGVycy5zdXBwb3J0ZWRIdHRwTWV0aG9kcywgbWV0aG9kKSA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSBvcGVyYXRpb24gcGFyYW1ldGVyIGRlZmluaXRpb25zXG4gICAgICB2YWxpZGF0ZVBhcmFtZXRlcnMob3BlcmF0aW9uRGVmLnBhcmFtZXRlcnMsIG9QYXRoLmNvbmNhdCgncGFyYW1ldGVycycpKTtcblxuICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0aW9uIHJlc3BvbnNlIGRlZmluaXRpb25zXG4gICAgICB2YWxpZGF0ZVJlc3BvbnNlcyhvcGVyYXRpb25EZWYucmVzcG9uc2VzLCBvUGF0aC5jb25jYXQoJ3Jlc3BvbnNlcycpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAganNvblNjaGVtYVZhbGlkYXRvcjogdmFsaWRhdGVTdHJ1Y3R1cmUsXG4gIHNlbWFudGljVmFsaWRhdG9yczogW1xuICAgIHZhbGlkYXRlQXJyYXlJdGVtc1xuICBdXG59O1xuIiwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzLWFycmF5JylcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbnZhciBrTWF4TGVuZ3RoID0gMHgzZmZmZmZmZlxudmFyIHJvb3RQYXJlbnQgPSB7fVxuXG4vKipcbiAqIElmIGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGA6XG4gKiAgID09PSB0cnVlICAgIFVzZSBVaW50OEFycmF5IGltcGxlbWVudGF0aW9uIChmYXN0ZXN0KVxuICogICA9PT0gZmFsc2UgICBVc2UgT2JqZWN0IGltcGxlbWVudGF0aW9uIChtb3N0IGNvbXBhdGlibGUsIGV2ZW4gSUU2KVxuICpcbiAqIEJyb3dzZXJzIHRoYXQgc3VwcG9ydCB0eXBlZCBhcnJheXMgYXJlIElFIDEwKywgRmlyZWZveCA0KywgQ2hyb21lIDcrLCBTYWZhcmkgNS4xKyxcbiAqIE9wZXJhIDExLjYrLCBpT1MgNC4yKy5cbiAqXG4gKiBOb3RlOlxuICpcbiAqIC0gSW1wbGVtZW50YXRpb24gbXVzdCBzdXBwb3J0IGFkZGluZyBuZXcgcHJvcGVydGllcyB0byBgVWludDhBcnJheWAgaW5zdGFuY2VzLlxuICogICBGaXJlZm94IDQtMjkgbGFja2VkIHN1cHBvcnQsIGZpeGVkIGluIEZpcmVmb3ggMzArLlxuICogICBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQzOC5cbiAqXG4gKiAgLSBDaHJvbWUgOS0xMCBpcyBtaXNzaW5nIHRoZSBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uLlxuICpcbiAqICAtIElFMTAgaGFzIGEgYnJva2VuIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhcnJheXMgb2ZcbiAqICAgIGluY29ycmVjdCBsZW5ndGggaW4gc29tZSBzaXR1YXRpb25zLlxuICpcbiAqIFdlIGRldGVjdCB0aGVzZSBidWdneSBicm93c2VycyBhbmQgc2V0IGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGAgdG8gYGZhbHNlYCBzbyB0aGV5IHdpbGxcbiAqIGdldCB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyBzbG93ZXIgYnV0IHdpbGwgd29yayBjb3JyZWN0bHkuXG4gKi9cbkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gKGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgYnVmID0gbmV3IEFycmF5QnVmZmVyKDApXG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KGJ1ZilcbiAgICBhcnIuZm9vID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNDIgfVxuICAgIHJldHVybiBhcnIuZm9vKCkgPT09IDQyICYmIC8vIHR5cGVkIGFycmF5IGluc3RhbmNlcyBjYW4gYmUgYXVnbWVudGVkXG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgJiYgLy8gY2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gICAgICAgIG5ldyBVaW50OEFycmF5KDEpLnN1YmFycmF5KDEsIDEpLmJ5dGVMZW5ndGggPT09IDAgLy8gaWUxMCBoYXMgYnJva2VuIGBzdWJhcnJheWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59KSgpXG5cbi8qKlxuICogQ2xhc3M6IEJ1ZmZlclxuICogPT09PT09PT09PT09PVxuICpcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgYXJlIGF1Z21lbnRlZFxuICogd2l0aCBmdW5jdGlvbiBwcm9wZXJ0aWVzIGZvciBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgQVBJIGZ1bmN0aW9ucy4gV2UgdXNlXG4gKiBgVWludDhBcnJheWAgc28gdGhhdCBzcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdCByZXR1cm5zXG4gKiBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBCeSBhdWdtZW50aW5nIHRoZSBpbnN0YW5jZXMsIHdlIGNhbiBhdm9pZCBtb2RpZnlpbmcgdGhlIGBVaW50OEFycmF5YFxuICogcHJvdG90eXBlLlxuICovXG5mdW5jdGlvbiBCdWZmZXIgKGFyZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQnVmZmVyKSkge1xuICAgIC8vIEF2b2lkIGdvaW5nIHRocm91Z2ggYW4gQXJndW1lbnRzQWRhcHRvclRyYW1wb2xpbmUgaW4gdGhlIGNvbW1vbiBjYXNlLlxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBhcmd1bWVudHNbMV0pXG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnKVxuICB9XG5cbiAgdGhpcy5sZW5ndGggPSAwXG4gIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkXG5cbiAgLy8gQ29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBmcm9tTnVtYmVyKHRoaXMsIGFyZylcbiAgfVxuXG4gIC8vIFNsaWdodGx5IGxlc3MgY29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoaXMsIGFyZywgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiAndXRmOCcpXG4gIH1cblxuICAvLyBVbnVzdWFsLlxuICByZXR1cm4gZnJvbU9iamVjdCh0aGlzLCBhcmcpXG59XG5cbmZ1bmN0aW9uIGZyb21OdW1iZXIgKHRoYXQsIGxlbmd0aCkge1xuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoIDwgMCA/IDAgOiBjaGVja2VkKGxlbmd0aCkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgdGhhdFtpXSA9IDBcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgLy8gQXNzdW1wdGlvbjogYnl0ZUxlbmd0aCgpIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBrTWF4TGVuZ3RoLlxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcblxuICB0aGF0LndyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHJldHVybiBmcm9tQnVmZmVyKHRoYXQsIG9iamVjdClcblxuICBpZiAoaXNBcnJheShvYmplY3QpKSByZXR1cm4gZnJvbUFycmF5KHRoYXQsIG9iamVjdClcblxuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHN0YXJ0IHdpdGggbnVtYmVyLCBidWZmZXIsIGFycmF5IG9yIHN0cmluZycpXG4gIH1cblxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBvYmplY3QuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbVR5cGVkQXJyYXkodGhhdCwgb2JqZWN0KVxuICB9XG5cbiAgaWYgKG9iamVjdC5sZW5ndGgpIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iamVjdClcblxuICByZXR1cm4gZnJvbUpzb25PYmplY3QodGhhdCwgb2JqZWN0KVxufVxuXG5mdW5jdGlvbiBmcm9tQnVmZmVyICh0aGF0LCBidWZmZXIpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYnVmZmVyLmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGJ1ZmZlci5jb3B5KHRoYXQsIDAsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5ICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLy8gRHVwbGljYXRlIG9mIGZyb21BcnJheSgpIHRvIGtlZXAgZnJvbUFycmF5KCkgbW9ub21vcnBoaWMuXG5mdW5jdGlvbiBmcm9tVHlwZWRBcnJheSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgLy8gVHJ1bmNhdGluZyB0aGUgZWxlbWVudHMgaXMgcHJvYmFibHkgbm90IHdoYXQgcGVvcGxlIGV4cGVjdCBmcm9tIHR5cGVkXG4gIC8vIGFycmF5cyB3aXRoIEJZVEVTX1BFUl9FTEVNRU5UID4gMSBidXQgaXQncyBjb21wYXRpYmxlIHdpdGggdGhlIGJlaGF2aW9yXG4gIC8vIG9mIHRoZSBvbGQgQnVmZmVyIGNvbnN0cnVjdG9yLlxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5TGlrZSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8vIERlc2VyaWFsaXplIHsgdHlwZTogJ0J1ZmZlcicsIGRhdGE6IFsxLDIsMywuLi5dIH0gaW50byBhIEJ1ZmZlciBvYmplY3QuXG4vLyBSZXR1cm5zIGEgemVyby1sZW5ndGggYnVmZmVyIGZvciBpbnB1dHMgdGhhdCBkb24ndCBjb25mb3JtIHRvIHRoZSBzcGVjLlxuZnVuY3Rpb24gZnJvbUpzb25PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICB2YXIgYXJyYXlcbiAgdmFyIGxlbmd0aCA9IDBcblxuICBpZiAob2JqZWN0LnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqZWN0LmRhdGEpKSB7XG4gICAgYXJyYXkgPSBvYmplY3QuZGF0YVxuICAgIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgfVxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBhbGxvY2F0ZSAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBCdWZmZXIuX2F1Z21lbnQobmV3IFVpbnQ4QXJyYXkobGVuZ3RoKSlcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGF0Ll9pc0J1ZmZlciA9IHRydWVcbiAgfVxuXG4gIHZhciBmcm9tUG9vbCA9IGxlbmd0aCAhPT0gMCAmJiBsZW5ndGggPD0gQnVmZmVyLnBvb2xTaXplID4+PiAxXG4gIGlmIChmcm9tUG9vbCkgdGhhdC5wYXJlbnQgPSByb290UGFyZW50XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGhgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICdzaXplOiAweCcgKyBrTWF4TGVuZ3RoLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKVxuICB9XG4gIHJldHVybiBsZW5ndGggfCAwXG59XG5cbmZ1bmN0aW9uIFNsb3dCdWZmZXIgKHN1YmplY3QsIGVuY29kaW5nKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTbG93QnVmZmVyKSkgcmV0dXJuIG5ldyBTbG93QnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuICBkZWxldGUgYnVmLnBhcmVudFxuICByZXR1cm4gYnVmXG59XG5cbkJ1ZmZlci5pc0J1ZmZlciA9IGZ1bmN0aW9uIGlzQnVmZmVyIChiKSB7XG4gIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpXG59XG5cbkJ1ZmZlci5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYSwgYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihhKSB8fCAhQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIG11c3QgYmUgQnVmZmVycycpXG4gIH1cblxuICBpZiAoYSA9PT0gYikgcmV0dXJuIDBcblxuICB2YXIgeCA9IGEubGVuZ3RoXG4gIHZhciB5ID0gYi5sZW5ndGhcblxuICB2YXIgaSA9IDBcbiAgdmFyIGxlbiA9IE1hdGgubWluKHgsIHkpXG4gIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgaWYgKGFbaV0gIT09IGJbaV0pIGJyZWFrXG5cbiAgICArK2lcbiAgfVxuXG4gIGlmIChpICE9PSBsZW4pIHtcbiAgICB4ID0gYVtpXVxuICAgIHkgPSBiW2ldXG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbkJ1ZmZlci5pc0VuY29kaW5nID0gZnVuY3Rpb24gaXNFbmNvZGluZyAoZW5jb2RpbmcpIHtcbiAgc3dpdGNoIChTdHJpbmcoZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlICdoZXgnOlxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3V0Zi04JzpcbiAgICBjYXNlICdhc2NpaSc6XG4gICAgY2FzZSAnYmluYXJ5JzpcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgIGNhc2UgJ3Jhdyc6XG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldHVybiB0cnVlXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbkJ1ZmZlci5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQgKGxpc3QsIGxlbmd0aCkge1xuICBpZiAoIWlzQXJyYXkobGlzdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2xpc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzLicpXG5cbiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoMClcbiAgfSBlbHNlIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBsaXN0WzBdXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKGxlbmd0aClcbiAgdmFyIHBvcyA9IDBcbiAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV1cbiAgICBpdGVtLmNvcHkoYnVmLCBwb3MpXG4gICAgcG9zICs9IGl0ZW0ubGVuZ3RoXG4gIH1cbiAgcmV0dXJuIGJ1ZlxufVxuXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykgc3RyaW5nID0gU3RyaW5nKHN0cmluZylcblxuICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDBcblxuICBzd2l0Y2ggKGVuY29kaW5nIHx8ICd1dGY4Jykge1xuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdiaW5hcnknOlxuICAgIGNhc2UgJ3Jhdyc6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gc3RyaW5nLmxlbmd0aCAqIDJcbiAgICBjYXNlICdoZXgnOlxuICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGggPj4+IDFcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgcmV0dXJuIGJhc2U2NFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGhcbiAgfVxufVxuQnVmZmVyLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoXG5cbi8vIHByZS1zZXQgZm9yIHZhbHVlcyB0aGF0IG1heSBleGlzdCBpbiB0aGUgZnV0dXJlXG5CdWZmZXIucHJvdG90eXBlLmxlbmd0aCA9IHVuZGVmaW5lZFxuQnVmZmVyLnByb3RvdHlwZS5wYXJlbnQgPSB1bmRlZmluZWRcblxuLy8gdG9TdHJpbmcoZW5jb2RpbmcsIHN0YXJ0PTAsIGVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nIChlbmNvZGluZywgc3RhcnQsIGVuZCkge1xuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuXG4gIHN0YXJ0ID0gc3RhcnQgfCAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA9PT0gSW5maW5pdHkgPyB0aGlzLmxlbmd0aCA6IGVuZCB8IDBcblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAoZW5kIDw9IHN0YXJ0KSByZXR1cm4gJydcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBiaW5hcnlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbWF4KSBzdHIgKz0gJyAuLi4gJ1xuICB9XG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIDBcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIGluZGV4T2YgKHZhbCwgYnl0ZU9mZnNldCkge1xuICBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIGJ5dGVPZmZzZXQgPSAweDdmZmZmZmZmXG4gIGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAtMHg4MDAwMDAwMCkgYnl0ZU9mZnNldCA9IC0weDgwMDAwMDAwXG4gIGJ5dGVPZmZzZXQgPj49IDBcblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiAtMVxuICBpZiAoYnl0ZU9mZnNldCA+PSB0aGlzLmxlbmd0aCkgcmV0dXJuIC0xXG5cbiAgLy8gTmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBNYXRoLm1heCh0aGlzLmxlbmd0aCArIGJ5dGVPZmZzZXQsIDApXG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHJldHVybiAtMSAvLyBzcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZyBhbHdheXMgZmFpbHNcbiAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgIHJldHVybiBhcnJheUluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZih0aGlzLCBbIHZhbCBdLCBieXRlT2Zmc2V0KVxuICB9XG5cbiAgZnVuY3Rpb24gYXJyYXlJbmRleE9mIChhcnIsIHZhbCwgYnl0ZU9mZnNldCkge1xuICAgIHZhciBmb3VuZEluZGV4ID0gLTFcbiAgICBmb3IgKHZhciBpID0gMDsgYnl0ZU9mZnNldCArIGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJbYnl0ZU9mZnNldCArIGldID09PSB2YWxbZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXhdKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsLmxlbmd0aCkgcmV0dXJuIGJ5dGVPZmZzZXQgKyBmb3VuZEluZGV4XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3VuZEluZGV4ID0gLTFcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG4vLyBgZ2V0YCB3aWxsIGJlIHJlbW92ZWQgaW4gTm9kZSAwLjEzK1xuQnVmZmVyLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiBnZXQgKG9mZnNldCkge1xuICBjb25zb2xlLmxvZygnLmdldCgpIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB1c2luZyBhcnJheSBpbmRleGVzIGluc3RlYWQuJylcbiAgcmV0dXJuIHRoaXMucmVhZFVJbnQ4KG9mZnNldClcbn1cblxuLy8gYHNldGAgd2lsbCBiZSByZW1vdmVkIGluIE5vZGUgMC4xMytcbkJ1ZmZlci5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gc2V0ICh2LCBvZmZzZXQpIHtcbiAgY29uc29sZS5sb2coJy5zZXQoKSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdXNpbmcgYXJyYXkgaW5kZXhlcyBpbnN0ZWFkLicpXG4gIHJldHVybiB0aGlzLndyaXRlVUludDgodiwgb2Zmc2V0KVxufVxuXG5mdW5jdGlvbiBoZXhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDBcbiAgdmFyIHJlbWFpbmluZyA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSBOdW1iZXIobGVuZ3RoKVxuICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHtcbiAgICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICAgIH1cbiAgfVxuXG4gIC8vIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YgZGlnaXRzXG4gIHZhciBzdHJMZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChzdHJMZW4gJSAyICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpXG5cbiAgaWYgKGxlbmd0aCA+IHN0ckxlbiAvIDIpIHtcbiAgICBsZW5ndGggPSBzdHJMZW4gLyAyXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJzZWQgPSBwYXJzZUludChzdHJpbmcuc3Vic3RyKGkgKiAyLCAyKSwgMTYpXG4gICAgaWYgKGlzTmFOKHBhcnNlZCkpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSBwYXJzZWRcbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBhc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGJpbmFyeVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgICBpZiAoaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoIHwgMFxuICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kaW5nID0gbGVuZ3RoXG4gICAgICBsZW5ndGggPSB1bmRlZmluZWRcbiAgICB9XG4gIC8vIGxlZ2FjeSB3cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXQsIGxlbmd0aCkgLSByZW1vdmUgaW4gdjAuMTNcbiAgfSBlbHNlIHtcbiAgICB2YXIgc3dhcCA9IGVuY29kaW5nXG4gICAgZW5jb2RpbmcgPSBvZmZzZXRcbiAgICBvZmZzZXQgPSBsZW5ndGggfCAwXG4gICAgbGVuZ3RoID0gc3dhcFxuICB9XG5cbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBsZW5ndGggPiByZW1haW5pbmcpIGxlbmd0aCA9IHJlbWFpbmluZ1xuXG4gIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2F0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzJylcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBiaW5hcnlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICAvLyBXYXJuaW5nOiBtYXhMZW5ndGggbm90IHRha2VuIGludG8gYWNjb3VudCBpbiBiYXNlNjRXcml0ZVxuICAgICAgICByZXR1cm4gYmFzZTY0V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHVjczJXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiB0b0pTT04gKCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCdWZmZXInLFxuICAgIGRhdGE6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2FyciB8fCB0aGlzLCAwKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKHN0YXJ0ID09PSAwICYmIGVuZCA9PT0gYnVmLmxlbmd0aCkge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1Zi5zbGljZShzdGFydCwgZW5kKSlcbiAgfVxufVxuXG5mdW5jdGlvbiB1dGY4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmVzID0gJydcbiAgdmFyIHRtcCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIGlmIChidWZbaV0gPD0gMHg3Rikge1xuICAgICAgcmVzICs9IGRlY29kZVV0ZjhDaGFyKHRtcCkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSlcbiAgICAgIHRtcCA9ICcnXG4gICAgfSBlbHNlIHtcbiAgICAgIHRtcCArPSAnJScgKyBidWZbaV0udG9TdHJpbmcoMTYpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcyArIGRlY29kZVV0ZjhDaGFyKHRtcClcbn1cblxuZnVuY3Rpb24gYXNjaWlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0gJiAweDdGKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gYmluYXJ5U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gaGV4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuXG4gIGlmICghc3RhcnQgfHwgc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgfHwgZW5kIDwgMCB8fCBlbmQgPiBsZW4pIGVuZCA9IGxlblxuXG4gIHZhciBvdXQgPSAnJ1xuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIG91dCArPSB0b0hleChidWZbaV0pXG4gIH1cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiB1dGYxNmxlU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgYnl0ZXMgPSBidWYuc2xpY2Uoc3RhcnQsIGVuZClcbiAgdmFyIHJlcyA9ICcnXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSArIGJ5dGVzW2kgKyAxXSAqIDI1NilcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiBzbGljZSAoc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgc3RhcnQgPSB+fnN0YXJ0XG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogfn5lbmRcblxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgKz0gbGVuXG4gICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIH0gZWxzZSBpZiAoc3RhcnQgPiBsZW4pIHtcbiAgICBzdGFydCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuXG4gICAgaWYgKGVuZCA8IDApIGVuZCA9IDBcbiAgfSBlbHNlIGlmIChlbmQgPiBsZW4pIHtcbiAgICBlbmQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICB2YXIgbmV3QnVmXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIG5ld0J1ZiA9IEJ1ZmZlci5fYXVnbWVudCh0aGlzLnN1YmFycmF5KHN0YXJ0LCBlbmQpKVxuICB9IGVsc2Uge1xuICAgIHZhciBzbGljZUxlbiA9IGVuZCAtIHN0YXJ0XG4gICAgbmV3QnVmID0gbmV3IEJ1ZmZlcihzbGljZUxlbiwgdW5kZWZpbmVkKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VMZW47IGkrKykge1xuICAgICAgbmV3QnVmW2ldID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9XG5cbiAgaWYgKG5ld0J1Zi5sZW5ndGgpIG5ld0J1Zi5wYXJlbnQgPSB0aGlzLnBhcmVudCB8fCB0aGlzXG5cbiAgcmV0dXJuIG5ld0J1ZlxufVxuXG4vKlxuICogTmVlZCB0byBtYWtlIHN1cmUgdGhhdCBidWZmZXIgaXNuJ3QgdHJ5aW5nIHRvIHdyaXRlIG91dCBvZiBib3VuZHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrT2Zmc2V0IChvZmZzZXQsIGV4dCwgbGVuZ3RoKSB7XG4gIGlmICgob2Zmc2V0ICUgMSkgIT09IDAgfHwgb2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBpcyBub3QgdWludCcpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBsZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFID0gZnVuY3Rpb24gcmVhZFVJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFID0gZnVuY3Rpb24gcmVhZFVJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcbiAgfVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF1cbiAgdmFyIG11bCA9IDFcbiAgd2hpbGUgKGJ5dGVMZW5ndGggPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OCA9IGZ1bmN0aW9uIHJlYWRVSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkxFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCA4KSB8IHRoaXNbb2Zmc2V0ICsgMV1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyTEUgPSBmdW5jdGlvbiByZWFkVUludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKCh0aGlzW29mZnNldF0pIHxcbiAgICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSkgK1xuICAgICAgKHRoaXNbb2Zmc2V0ICsgM10gKiAweDEwMDAwMDApXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkJFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gKiAweDEwMDAwMDApICtcbiAgICAoKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgdGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEUgPSBmdW5jdGlvbiByZWFkSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50QkUgPSBmdW5jdGlvbiByZWFkSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgaSA9IGJ5dGVMZW5ndGhcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1pXVxuICB3aGlsZSAoaSA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OCA9IGZ1bmN0aW9uIHJlYWRJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIGlmICghKHRoaXNbb2Zmc2V0XSAmIDB4ODApKSByZXR1cm4gKHRoaXNbb2Zmc2V0XSlcbiAgcmV0dXJuICgoMHhmZiAtIHRoaXNbb2Zmc2V0XSArIDEpICogLTEpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2TEUgPSBmdW5jdGlvbiByZWFkSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkJFID0gZnVuY3Rpb24gcmVhZEludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgMV0gfCAodGhpc1tvZmZzZXRdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0pIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSA8PCAyNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgMjQpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdExFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdEJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFID0gZnVuY3Rpb24gcmVhZERvdWJsZUxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCA1MiwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlQkUgPSBmdW5jdGlvbiByZWFkRG91YmxlQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCA1MiwgOClcbn1cblxuZnVuY3Rpb24gY2hlY2tJbnQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdidWZmZXIgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpXG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3ZhbHVlIGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50OCA9IGZ1bmN0aW9uIHdyaXRlVUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHhmZiwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQxNiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCAyKTsgaSA8IGo7IGkrKykge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSAmICgweGZmIDw8ICg4ICogKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkpKSkgPj4+XG4gICAgICAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSAqIDhcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgNCk7IGkgPCBqOyBpKyspIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgPj4+IChsaXR0bGVFbmRpYW4gPyBpIDogMyAtIGkpICogOCkgJiAweGZmXG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEUgPSBmdW5jdGlvbiB3cml0ZUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gMFxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gdmFsdWUgPCAwID8gMSA6IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFID0gZnVuY3Rpb24gd3JpdGVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSB2YWx1ZSA8IDAgPyAxIDogMFxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4N2YsIC0weDgwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMVxuICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5mdW5jdGlvbiBjaGVja0lFRUU3NTQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCd2YWx1ZSBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxuICBpZiAob2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvYXQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgNCwgMy40MDI4MjM0NjYzODUyODg2ZSszOCwgLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpXG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFID0gZnVuY3Rpb24gd3JpdGVGbG9hdExFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgOCwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCA1MiwgOClcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG4vLyBjb3B5KHRhcmdldEJ1ZmZlciwgdGFyZ2V0U3RhcnQ9MCwgc291cmNlU3RhcnQ9MCwgc291cmNlRW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5ICh0YXJnZXQsIHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXRTdGFydCA+PSB0YXJnZXQubGVuZ3RoKSB0YXJnZXRTdGFydCA9IHRhcmdldC5sZW5ndGhcbiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwXG4gIGlmIChlbmQgPiAwICYmIGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuIDBcbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgdGhpcy5sZW5ndGggPT09IDApIHJldHVybiAwXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBpZiAodGFyZ2V0U3RhcnQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICB9XG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgLy8gQXJlIHdlIG9vYj9cbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0IDwgZW5kIC0gc3RhcnQpIHtcbiAgICBlbmQgPSB0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgKyBzdGFydFxuICB9XG5cbiAgdmFyIGxlbiA9IGVuZCAtIHN0YXJ0XG5cbiAgaWYgKGxlbiA8IDEwMDAgfHwgIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0Ll9zZXQodGhpcy5zdWJhcnJheShzdGFydCwgc3RhcnQgKyBsZW4pLCB0YXJnZXRTdGFydClcbiAgfVxuXG4gIHJldHVybiBsZW5cbn1cblxuLy8gZmlsbCh2YWx1ZSwgc3RhcnQ9MCwgZW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiBmaWxsICh2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXZhbHVlKSB2YWx1ZSA9IDBcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kKSBlbmQgPSB0aGlzLmxlbmd0aFxuXG4gIGlmIChlbmQgPCBzdGFydCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2VuZCA8IHN0YXJ0JylcblxuICAvLyBGaWxsIDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVyblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVyblxuXG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDAgfHwgZW5kID4gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdlbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgdmFyIGlcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICB0aGlzW2ldID0gdmFsdWVcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ5dGVzID0gdXRmOFRvQnl0ZXModmFsdWUudG9TdHJpbmcoKSlcbiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdGhpc1tpXSA9IGJ5dGVzW2kgJSBsZW5dXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBBcnJheUJ1ZmZlcmAgd2l0aCB0aGUgKmNvcGllZCogbWVtb3J5IG9mIHRoZSBidWZmZXIgaW5zdGFuY2UuXG4gKiBBZGRlZCBpbiBOb2RlIDAuMTIuIE9ubHkgYXZhaWxhYmxlIGluIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBBcnJheUJ1ZmZlci5cbiAqL1xuQnVmZmVyLnByb3RvdHlwZS50b0FycmF5QnVmZmVyID0gZnVuY3Rpb24gdG9BcnJheUJ1ZmZlciAoKSB7XG4gIGlmICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAgIHJldHVybiAobmV3IEJ1ZmZlcih0aGlzKSkuYnVmZmVyXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh0aGlzLmxlbmd0aClcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBidWYubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgYnVmW2ldID0gdGhpc1tpXVxuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1Zi5idWZmZXJcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQnVmZmVyLnRvQXJyYXlCdWZmZXIgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXInKVxuICB9XG59XG5cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT1cblxudmFyIEJQID0gQnVmZmVyLnByb3RvdHlwZVxuXG4vKipcbiAqIEF1Z21lbnQgYSBVaW50OEFycmF5ICppbnN0YW5jZSogKG5vdCB0aGUgVWludDhBcnJheSBjbGFzcyEpIHdpdGggQnVmZmVyIG1ldGhvZHNcbiAqL1xuQnVmZmVyLl9hdWdtZW50ID0gZnVuY3Rpb24gX2F1Z21lbnQgKGFycikge1xuICBhcnIuY29uc3RydWN0b3IgPSBCdWZmZXJcbiAgYXJyLl9pc0J1ZmZlciA9IHRydWVcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byBvcmlnaW5hbCBVaW50OEFycmF5IHNldCBtZXRob2QgYmVmb3JlIG92ZXJ3cml0aW5nXG4gIGFyci5fc2V0ID0gYXJyLnNldFxuXG4gIC8vIGRlcHJlY2F0ZWQsIHdpbGwgYmUgcmVtb3ZlZCBpbiBub2RlIDAuMTMrXG4gIGFyci5nZXQgPSBCUC5nZXRcbiAgYXJyLnNldCA9IEJQLnNldFxuXG4gIGFyci53cml0ZSA9IEJQLndyaXRlXG4gIGFyci50b1N0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0xvY2FsZVN0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0pTT04gPSBCUC50b0pTT05cbiAgYXJyLmVxdWFscyA9IEJQLmVxdWFsc1xuICBhcnIuY29tcGFyZSA9IEJQLmNvbXBhcmVcbiAgYXJyLmluZGV4T2YgPSBCUC5pbmRleE9mXG4gIGFyci5jb3B5ID0gQlAuY29weVxuICBhcnIuc2xpY2UgPSBCUC5zbGljZVxuICBhcnIucmVhZFVJbnRMRSA9IEJQLnJlYWRVSW50TEVcbiAgYXJyLnJlYWRVSW50QkUgPSBCUC5yZWFkVUludEJFXG4gIGFyci5yZWFkVUludDggPSBCUC5yZWFkVUludDhcbiAgYXJyLnJlYWRVSW50MTZMRSA9IEJQLnJlYWRVSW50MTZMRVxuICBhcnIucmVhZFVJbnQxNkJFID0gQlAucmVhZFVJbnQxNkJFXG4gIGFyci5yZWFkVUludDMyTEUgPSBCUC5yZWFkVUludDMyTEVcbiAgYXJyLnJlYWRVSW50MzJCRSA9IEJQLnJlYWRVSW50MzJCRVxuICBhcnIucmVhZEludExFID0gQlAucmVhZEludExFXG4gIGFyci5yZWFkSW50QkUgPSBCUC5yZWFkSW50QkVcbiAgYXJyLnJlYWRJbnQ4ID0gQlAucmVhZEludDhcbiAgYXJyLnJlYWRJbnQxNkxFID0gQlAucmVhZEludDE2TEVcbiAgYXJyLnJlYWRJbnQxNkJFID0gQlAucmVhZEludDE2QkVcbiAgYXJyLnJlYWRJbnQzMkxFID0gQlAucmVhZEludDMyTEVcbiAgYXJyLnJlYWRJbnQzMkJFID0gQlAucmVhZEludDMyQkVcbiAgYXJyLnJlYWRGbG9hdExFID0gQlAucmVhZEZsb2F0TEVcbiAgYXJyLnJlYWRGbG9hdEJFID0gQlAucmVhZEZsb2F0QkVcbiAgYXJyLnJlYWREb3VibGVMRSA9IEJQLnJlYWREb3VibGVMRVxuICBhcnIucmVhZERvdWJsZUJFID0gQlAucmVhZERvdWJsZUJFXG4gIGFyci53cml0ZVVJbnQ4ID0gQlAud3JpdGVVSW50OFxuICBhcnIud3JpdGVVSW50TEUgPSBCUC53cml0ZVVJbnRMRVxuICBhcnIud3JpdGVVSW50QkUgPSBCUC53cml0ZVVJbnRCRVxuICBhcnIud3JpdGVVSW50MTZMRSA9IEJQLndyaXRlVUludDE2TEVcbiAgYXJyLndyaXRlVUludDE2QkUgPSBCUC53cml0ZVVJbnQxNkJFXG4gIGFyci53cml0ZVVJbnQzMkxFID0gQlAud3JpdGVVSW50MzJMRVxuICBhcnIud3JpdGVVSW50MzJCRSA9IEJQLndyaXRlVUludDMyQkVcbiAgYXJyLndyaXRlSW50TEUgPSBCUC53cml0ZUludExFXG4gIGFyci53cml0ZUludEJFID0gQlAud3JpdGVJbnRCRVxuICBhcnIud3JpdGVJbnQ4ID0gQlAud3JpdGVJbnQ4XG4gIGFyci53cml0ZUludDE2TEUgPSBCUC53cml0ZUludDE2TEVcbiAgYXJyLndyaXRlSW50MTZCRSA9IEJQLndyaXRlSW50MTZCRVxuICBhcnIud3JpdGVJbnQzMkxFID0gQlAud3JpdGVJbnQzMkxFXG4gIGFyci53cml0ZUludDMyQkUgPSBCUC53cml0ZUludDMyQkVcbiAgYXJyLndyaXRlRmxvYXRMRSA9IEJQLndyaXRlRmxvYXRMRVxuICBhcnIud3JpdGVGbG9hdEJFID0gQlAud3JpdGVGbG9hdEJFXG4gIGFyci53cml0ZURvdWJsZUxFID0gQlAud3JpdGVEb3VibGVMRVxuICBhcnIud3JpdGVEb3VibGVCRSA9IEJQLndyaXRlRG91YmxlQkVcbiAgYXJyLmZpbGwgPSBCUC5maWxsXG4gIGFyci5pbnNwZWN0ID0gQlAuaW5zcGVjdFxuICBhcnIudG9BcnJheUJ1ZmZlciA9IEJQLnRvQXJyYXlCdWZmZXJcblxuICByZXR1cm4gYXJyXG59XG5cbnZhciBJTlZBTElEX0JBU0U2NF9SRSA9IC9bXitcXC8wLTlBLXpcXC1dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHN0cmlwcyBvdXQgaW52YWxpZCBjaGFyYWN0ZXJzIGxpa2UgXFxuIGFuZCBcXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgc3RyID0gc3RyaW5ndHJpbShzdHIpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbmZ1bmN0aW9uIHRvSGV4IChuKSB7XG4gIGlmIChuIDwgMTYpIHJldHVybiAnMCcgKyBuLnRvU3RyaW5nKDE2KVxuICByZXR1cm4gbi50b1N0cmluZygxNilcbn1cblxuZnVuY3Rpb24gdXRmOFRvQnl0ZXMgKHN0cmluZywgdW5pdHMpIHtcbiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eVxuICB2YXIgY29kZVBvaW50XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICB2YXIgYnl0ZXMgPSBbXVxuICB2YXIgaSA9IDBcblxuICBmb3IgKDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgY29kZVBvaW50ID0gc3RyaW5nLmNoYXJDb2RlQXQoaSlcblxuICAgIC8vIGlzIHN1cnJvZ2F0ZSBjb21wb25lbnRcbiAgICBpZiAoY29kZVBvaW50ID4gMHhEN0ZGICYmIGNvZGVQb2ludCA8IDB4RTAwMCkge1xuICAgICAgLy8gbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAgIC8vIDIgbGVhZHMgaW4gYSByb3dcbiAgICAgICAgaWYgKGNvZGVQb2ludCA8IDB4REMwMCkge1xuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgICAgY29kZVBvaW50ID0gbGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCA8PCAxMCB8IGNvZGVQb2ludCAtIDB4REMwMCB8IDB4MTAwMDBcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBubyBsZWFkIHlldFxuXG4gICAgICAgIGlmIChjb2RlUG9pbnQgPiAweERCRkYpIHtcbiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdW5wYWlyZWQgbGVhZFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdmFsaWQgbGVhZFxuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAvLyB2YWxpZCBibXAgY2hhciwgYnV0IGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gICAgfVxuXG4gICAgLy8gZW5jb2RlIHV0ZjhcbiAgICBpZiAoY29kZVBvaW50IDwgMHg4MCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKGNvZGVQb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4ODAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgfCAweEMwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDIHwgMHhFMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgyMDAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gNCkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyLCB1bml0cykge1xuICB2YXIgYywgaGksIGxvXG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoKGkgKyBvZmZzZXQgPj0gZHN0Lmxlbmd0aCkgfHwgKGkgPj0gc3JjLmxlbmd0aCkpIGJyZWFrXG4gICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gZGVjb2RlVXRmOENoYXIgKHN0cikge1xuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgweEZGRkQpIC8vIFVURiA4IGludmFsaWQgY2hhclxuICB9XG59XG4iLCJ2YXIgbG9va3VwID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuXG47KGZ1bmN0aW9uIChleHBvcnRzKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuICB2YXIgQXJyID0gKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJylcbiAgICA/IFVpbnQ4QXJyYXlcbiAgICA6IEFycmF5XG5cblx0dmFyIFBMVVMgICA9ICcrJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSCAgPSAnLycuY2hhckNvZGVBdCgwKVxuXHR2YXIgTlVNQkVSID0gJzAnLmNoYXJDb2RlQXQoMClcblx0dmFyIExPV0VSICA9ICdhJy5jaGFyQ29kZUF0KDApXG5cdHZhciBVUFBFUiAgPSAnQScuY2hhckNvZGVBdCgwKVxuXHR2YXIgUExVU19VUkxfU0FGRSA9ICctJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSF9VUkxfU0FGRSA9ICdfJy5jaGFyQ29kZUF0KDApXG5cblx0ZnVuY3Rpb24gZGVjb2RlIChlbHQpIHtcblx0XHR2YXIgY29kZSA9IGVsdC5jaGFyQ29kZUF0KDApXG5cdFx0aWYgKGNvZGUgPT09IFBMVVMgfHxcblx0XHQgICAgY29kZSA9PT0gUExVU19VUkxfU0FGRSlcblx0XHRcdHJldHVybiA2MiAvLyAnKydcblx0XHRpZiAoY29kZSA9PT0gU0xBU0ggfHxcblx0XHQgICAgY29kZSA9PT0gU0xBU0hfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjMgLy8gJy8nXG5cdFx0aWYgKGNvZGUgPCBOVU1CRVIpXG5cdFx0XHRyZXR1cm4gLTEgLy9ubyBtYXRjaFxuXHRcdGlmIChjb2RlIDwgTlVNQkVSICsgMTApXG5cdFx0XHRyZXR1cm4gY29kZSAtIE5VTUJFUiArIDI2ICsgMjZcblx0XHRpZiAoY29kZSA8IFVQUEVSICsgMjYpXG5cdFx0XHRyZXR1cm4gY29kZSAtIFVQUEVSXG5cdFx0aWYgKGNvZGUgPCBMT1dFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBMT1dFUiArIDI2XG5cdH1cblxuXHRmdW5jdGlvbiBiNjRUb0J5dGVBcnJheSAoYjY0KSB7XG5cdFx0dmFyIGksIGosIGwsIHRtcCwgcGxhY2VIb2xkZXJzLCBhcnJcblxuXHRcdGlmIChiNjQubGVuZ3RoICUgNCA+IDApIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCcpXG5cdFx0fVxuXG5cdFx0Ly8gdGhlIG51bWJlciBvZiBlcXVhbCBzaWducyAocGxhY2UgaG9sZGVycylcblx0XHQvLyBpZiB0aGVyZSBhcmUgdHdvIHBsYWNlaG9sZGVycywgdGhhbiB0aGUgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIGl0XG5cdFx0Ly8gcmVwcmVzZW50IG9uZSBieXRlXG5cdFx0Ly8gaWYgdGhlcmUgaXMgb25seSBvbmUsIHRoZW4gdGhlIHRocmVlIGNoYXJhY3RlcnMgYmVmb3JlIGl0IHJlcHJlc2VudCAyIGJ5dGVzXG5cdFx0Ly8gdGhpcyBpcyBqdXN0IGEgY2hlYXAgaGFjayB0byBub3QgZG8gaW5kZXhPZiB0d2ljZVxuXHRcdHZhciBsZW4gPSBiNjQubGVuZ3RoXG5cdFx0cGxhY2VIb2xkZXJzID0gJz0nID09PSBiNjQuY2hhckF0KGxlbiAtIDIpID8gMiA6ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAxKSA/IDEgOiAwXG5cblx0XHQvLyBiYXNlNjQgaXMgNC8zICsgdXAgdG8gdHdvIGNoYXJhY3RlcnMgb2YgdGhlIG9yaWdpbmFsIGRhdGFcblx0XHRhcnIgPSBuZXcgQXJyKGI2NC5sZW5ndGggKiAzIC8gNCAtIHBsYWNlSG9sZGVycylcblxuXHRcdC8vIGlmIHRoZXJlIGFyZSBwbGFjZWhvbGRlcnMsIG9ubHkgZ2V0IHVwIHRvIHRoZSBsYXN0IGNvbXBsZXRlIDQgY2hhcnNcblx0XHRsID0gcGxhY2VIb2xkZXJzID4gMCA/IGI2NC5sZW5ndGggLSA0IDogYjY0Lmxlbmd0aFxuXG5cdFx0dmFyIEwgPSAwXG5cblx0XHRmdW5jdGlvbiBwdXNoICh2KSB7XG5cdFx0XHRhcnJbTCsrXSA9IHZcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGw7IGkgKz0gNCwgaiArPSAzKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDE4KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDEyKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpIDw8IDYpIHwgZGVjb2RlKGI2NC5jaGFyQXQoaSArIDMpKVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwMDApID4+IDE2KVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwKSA+PiA4KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdGlmIChwbGFjZUhvbGRlcnMgPT09IDIpIHtcblx0XHRcdHRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA+PiA0KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH0gZWxzZSBpZiAocGxhY2VIb2xkZXJzID09PSAxKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDEwKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDQpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAyKSkgPj4gMilcblx0XHRcdHB1c2goKHRtcCA+PiA4KSAmIDB4RkYpXG5cdFx0XHRwdXNoKHRtcCAmIDB4RkYpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFyclxuXHR9XG5cblx0ZnVuY3Rpb24gdWludDhUb0Jhc2U2NCAodWludDgpIHtcblx0XHR2YXIgaSxcblx0XHRcdGV4dHJhQnl0ZXMgPSB1aW50OC5sZW5ndGggJSAzLCAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlc1xuXHRcdFx0b3V0cHV0ID0gXCJcIixcblx0XHRcdHRlbXAsIGxlbmd0aFxuXG5cdFx0ZnVuY3Rpb24gZW5jb2RlIChudW0pIHtcblx0XHRcdHJldHVybiBsb29rdXAuY2hhckF0KG51bSlcblx0XHR9XG5cblx0XHRmdW5jdGlvbiB0cmlwbGV0VG9CYXNlNjQgKG51bSkge1xuXHRcdFx0cmV0dXJuIGVuY29kZShudW0gPj4gMTggJiAweDNGKSArIGVuY29kZShudW0gPj4gMTIgJiAweDNGKSArIGVuY29kZShudW0gPj4gNiAmIDB4M0YpICsgZW5jb2RlKG51bSAmIDB4M0YpXG5cdFx0fVxuXG5cdFx0Ly8gZ28gdGhyb3VnaCB0aGUgYXJyYXkgZXZlcnkgdGhyZWUgYnl0ZXMsIHdlJ2xsIGRlYWwgd2l0aCB0cmFpbGluZyBzdHVmZiBsYXRlclxuXHRcdGZvciAoaSA9IDAsIGxlbmd0aCA9IHVpbnQ4Lmxlbmd0aCAtIGV4dHJhQnl0ZXM7IGkgPCBsZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0dGVtcCA9ICh1aW50OFtpXSA8PCAxNikgKyAodWludDhbaSArIDFdIDw8IDgpICsgKHVpbnQ4W2kgKyAyXSlcblx0XHRcdG91dHB1dCArPSB0cmlwbGV0VG9CYXNlNjQodGVtcClcblx0XHR9XG5cblx0XHQvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG5cdFx0c3dpdGNoIChleHRyYUJ5dGVzKSB7XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRcdHRlbXAgPSB1aW50OFt1aW50OC5sZW5ndGggLSAxXVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMilcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA8PCA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSAnPT0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlIDI6XG5cdFx0XHRcdHRlbXAgPSAodWludDhbdWludDgubGVuZ3RoIC0gMl0gPDwgOCkgKyAodWludDhbdWludDgubGVuZ3RoIC0gMV0pXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUodGVtcCA+PiAxMClcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA+PiA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgMikgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0fVxuXG5cdFx0cmV0dXJuIG91dHB1dFxuXHR9XG5cblx0ZXhwb3J0cy50b0J5dGVBcnJheSA9IGI2NFRvQnl0ZUFycmF5XG5cdGV4cG9ydHMuZnJvbUJ5dGVBcnJheSA9IHVpbnQ4VG9CYXNlNjRcbn0odHlwZW9mIGV4cG9ydHMgPT09ICd1bmRlZmluZWQnID8gKHRoaXMuYmFzZTY0anMgPSB7fSkgOiBleHBvcnRzKSlcbiIsImV4cG9ydHMucmVhZCA9IGZ1bmN0aW9uIChidWZmZXIsIG9mZnNldCwgaXNMRSwgbUxlbiwgbkJ5dGVzKSB7XG4gIHZhciBlLCBtLFxuICAgICAgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMSxcbiAgICAgIGVNYXggPSAoMSA8PCBlTGVuKSAtIDEsXG4gICAgICBlQmlhcyA9IGVNYXggPj4gMSxcbiAgICAgIG5CaXRzID0gLTcsXG4gICAgICBpID0gaXNMRSA/IChuQnl0ZXMgLSAxKSA6IDAsXG4gICAgICBkID0gaXNMRSA/IC0xIDogMSxcbiAgICAgIHMgPSBidWZmZXJbb2Zmc2V0ICsgaV1cblxuICBpICs9IGRcblxuICBlID0gcyAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBzID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBlTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IGUgPSBlICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgbSA9IGUgJiAoKDEgPDwgKC1uQml0cykpIC0gMSlcbiAgZSA+Pj0gKC1uQml0cylcbiAgbkJpdHMgKz0gbUxlblxuICBmb3IgKDsgbkJpdHMgPiAwOyBtID0gbSAqIDI1NiArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGMsXG4gICAgICBlTGVuID0gbkJ5dGVzICogOCAtIG1MZW4gLSAxLFxuICAgICAgZU1heCA9ICgxIDw8IGVMZW4pIC0gMSxcbiAgICAgIGVCaWFzID0gZU1heCA+PiAxLFxuICAgICAgcnQgPSAobUxlbiA9PT0gMjMgPyBNYXRoLnBvdygyLCAtMjQpIC0gTWF0aC5wb3coMiwgLTc3KSA6IDApLFxuICAgICAgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpLFxuICAgICAgZCA9IGlzTEUgPyAxIDogLTEsXG4gICAgICBzID0gdmFsdWUgPCAwIHx8ICh2YWx1ZSA9PT0gMCAmJiAxIC8gdmFsdWUgPCAwKSA/IDEgOiAwXG5cbiAgdmFsdWUgPSBNYXRoLmFicyh2YWx1ZSlcblxuICBpZiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBJbmZpbml0eSkge1xuICAgIG0gPSBpc05hTih2YWx1ZSkgPyAxIDogMFxuICAgIGUgPSBlTWF4XG4gIH0gZWxzZSB7XG4gICAgZSA9IE1hdGguZmxvb3IoTWF0aC5sb2codmFsdWUpIC8gTWF0aC5MTjIpXG4gICAgaWYgKHZhbHVlICogKGMgPSBNYXRoLnBvdygyLCAtZSkpIDwgMSkge1xuICAgICAgZS0tXG4gICAgICBjICo9IDJcbiAgICB9XG4gICAgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICB2YWx1ZSArPSBydCAvIGNcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgKz0gcnQgKiBNYXRoLnBvdygyLCAxIC0gZUJpYXMpXG4gICAgfVxuICAgIGlmICh2YWx1ZSAqIGMgPj0gMikge1xuICAgICAgZSsrXG4gICAgICBjIC89IDJcbiAgICB9XG5cbiAgICBpZiAoZSArIGVCaWFzID49IGVNYXgpIHtcbiAgICAgIG0gPSAwXG4gICAgICBlID0gZU1heFxuICAgIH0gZWxzZSBpZiAoZSArIGVCaWFzID49IDEpIHtcbiAgICAgIG0gPSAodmFsdWUgKiBjIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IGUgKyBlQmlhc1xuICAgIH0gZWxzZSB7XG4gICAgICBtID0gdmFsdWUgKiBNYXRoLnBvdygyLCBlQmlhcyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSAwXG4gICAgfVxuICB9XG5cbiAgZm9yICg7IG1MZW4gPj0gODsgYnVmZmVyW29mZnNldCArIGldID0gbSAmIDB4ZmYsIGkgKz0gZCwgbSAvPSAyNTYsIG1MZW4gLT0gOCkge31cblxuICBlID0gKGUgPDwgbUxlbikgfCBtXG4gIGVMZW4gKz0gbUxlblxuICBmb3IgKDsgZUxlbiA+IDA7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGUgJiAweGZmLCBpICs9IGQsIGUgLz0gMjU2LCBlTGVuIC09IDgpIHt9XG5cbiAgYnVmZmVyW29mZnNldCArIGkgLSBkXSB8PSBzICogMTI4XG59XG4iLCJcbi8qKlxuICogaXNBcnJheVxuICovXG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuLyoqXG4gKiB0b1N0cmluZ1xuICovXG5cbnZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBgdmFsYFxuICogaXMgYW4gYXJyYXkuXG4gKlxuICogZXhhbXBsZTpcbiAqXG4gKiAgICAgICAgaXNBcnJheShbXSk7XG4gKiAgICAgICAgLy8gPiB0cnVlXG4gKiAgICAgICAgaXNBcnJheShhcmd1bWVudHMpO1xuICogICAgICAgIC8vID4gZmFsc2VcbiAqICAgICAgICBpc0FycmF5KCcnKTtcbiAqICAgICAgICAvLyA+IGZhbHNlXG4gKlxuICogQHBhcmFtIHttaXhlZH0gdmFsXG4gKiBAcmV0dXJuIHtib29sfVxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheSB8fCBmdW5jdGlvbiAodmFsKSB7XG4gIHJldHVybiAhISB2YWwgJiYgJ1tvYmplY3QgQXJyYXldJyA9PSBzdHIuY2FsbCh2YWwpO1xufTtcbiIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxuXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmICghZHJhaW5pbmcpIHtcbiAgICAgICAgc2V0VGltZW91dChkcmFpblF1ZXVlLCAwKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbi8vIFRPRE8oc2h0eWxtYW4pXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgd2ViIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gb2YgYGRlYnVnKClgLlxuICpcbiAqIEV4cG9zZSBgZGVidWcoKWAgYXMgdGhlIG1vZHVsZS5cbiAqL1xuXG5leHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2RlYnVnJyk7XG5leHBvcnRzLmxvZyA9IGxvZztcbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5zdG9yYWdlID0gJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZVxuICAgICAgICAgICAgICAgJiYgJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZS5zdG9yYWdlXG4gICAgICAgICAgICAgICAgICA/IGNocm9tZS5zdG9yYWdlLmxvY2FsXG4gICAgICAgICAgICAgICAgICA6IGxvY2Fsc3RvcmFnZSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcbiAgJ2xpZ2h0c2VhZ3JlZW4nLFxuICAnZm9yZXN0Z3JlZW4nLFxuICAnZ29sZGVucm9kJyxcbiAgJ2RvZGdlcmJsdWUnLFxuICAnZGFya29yY2hpZCcsXG4gICdjcmltc29uJ1xuXTtcblxuLyoqXG4gKiBDdXJyZW50bHkgb25seSBXZWJLaXQtYmFzZWQgV2ViIEluc3BlY3RvcnMsIEZpcmVmb3ggPj0gdjMxLFxuICogYW5kIHRoZSBGaXJlYnVnIGV4dGVuc2lvbiAoYW55IEZpcmVmb3ggdmVyc2lvbikgYXJlIGtub3duXG4gKiB0byBzdXBwb3J0IFwiJWNcIiBDU1MgY3VzdG9taXphdGlvbnMuXG4gKlxuICogVE9ETzogYWRkIGEgYGxvY2FsU3RvcmFnZWAgdmFyaWFibGUgdG8gZXhwbGljaXRseSBlbmFibGUvZGlzYWJsZSBjb2xvcnNcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG4gIC8vIGlzIHdlYmtpdD8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTY0NTk2MDYvMzc2NzczXG4gIHJldHVybiAoJ1dlYmtpdEFwcGVhcmFuY2UnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkgfHxcbiAgICAvLyBpcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG4gICAgKHdpbmRvdy5jb25zb2xlICYmIChjb25zb2xlLmZpcmVidWcgfHwgKGNvbnNvbGUuZXhjZXB0aW9uICYmIGNvbnNvbGUudGFibGUpKSkgfHxcbiAgICAvLyBpcyBmaXJlZm94ID49IHYzMT9cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcbiAgICAobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLykgJiYgcGFyc2VJbnQoUmVnRXhwLiQxLCAxMCkgPj0gMzEpO1xufVxuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdHRlcnMuaiA9IGZ1bmN0aW9uKHYpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHYpO1xufTtcblxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoKSB7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICB2YXIgdXNlQ29sb3JzID0gdGhpcy51c2VDb2xvcnM7XG5cbiAgYXJnc1swXSA9ICh1c2VDb2xvcnMgPyAnJWMnIDogJycpXG4gICAgKyB0aGlzLm5hbWVzcGFjZVxuICAgICsgKHVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKVxuICAgICsgYXJnc1swXVxuICAgICsgKHVzZUNvbG9ycyA/ICclYyAnIDogJyAnKVxuICAgICsgJysnICsgZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG4gIGlmICghdXNlQ29sb3JzKSByZXR1cm4gYXJncztcblxuICB2YXIgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG4gIGFyZ3MgPSBbYXJnc1swXSwgYywgJ2NvbG9yOiBpbmhlcml0J10uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MsIDEpKTtcblxuICAvLyB0aGUgZmluYWwgXCIlY1wiIGlzIHNvbWV3aGF0IHRyaWNreSwgYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBvdGhlclxuICAvLyBhcmd1bWVudHMgcGFzc2VkIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlICVjLCBzbyB3ZSBuZWVkIHRvXG4gIC8vIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3QgaW5kZXggdG8gaW5zZXJ0IHRoZSBDU1MgaW50b1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgbGFzdEMgPSAwO1xuICBhcmdzWzBdLnJlcGxhY2UoLyVbYS16JV0vZywgZnVuY3Rpb24obWF0Y2gpIHtcbiAgICBpZiAoJyUlJyA9PT0gbWF0Y2gpIHJldHVybjtcbiAgICBpbmRleCsrO1xuICAgIGlmICgnJWMnID09PSBtYXRjaCkge1xuICAgICAgLy8gd2Ugb25seSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgKmxhc3QqICVjXG4gICAgICAvLyAodGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgdGhlaXIgb3duKVxuICAgICAgbGFzdEMgPSBpbmRleDtcbiAgICB9XG4gIH0pO1xuXG4gIGFyZ3Muc3BsaWNlKGxhc3RDLCAwLCBjKTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5sb2coKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmxvZ2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gbG9nKCkge1xuICAvLyB0aGlzIGhhY2tlcnkgaXMgcmVxdWlyZWQgZm9yIElFOC85LCB3aGVyZVxuICAvLyB0aGUgYGNvbnNvbGUubG9nYCBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgJ2FwcGx5J1xuICByZXR1cm4gJ29iamVjdCcgPT09IHR5cGVvZiBjb25zb2xlXG4gICAgJiYgY29uc29sZS5sb2dcbiAgICAmJiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZywgY29uc29sZSwgYXJndW1lbnRzKTtcbn1cblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG4gIHRyeSB7XG4gICAgaWYgKG51bGwgPT0gbmFtZXNwYWNlcykge1xuICAgICAgZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZyA9IG5hbWVzcGFjZXM7XG4gICAgfVxuICB9IGNhdGNoKGUpIHt9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9hZCgpIHtcbiAgdmFyIHI7XG4gIHRyeSB7XG4gICAgciA9IGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZztcbiAgfSBjYXRjaChlKSB7fVxuICByZXR1cm4gcjtcbn1cblxuLyoqXG4gKiBFbmFibGUgbmFtZXNwYWNlcyBsaXN0ZWQgaW4gYGxvY2FsU3RvcmFnZS5kZWJ1Z2AgaW5pdGlhbGx5LlxuICovXG5cbmV4cG9ydHMuZW5hYmxlKGxvYWQoKSk7XG5cbi8qKlxuICogTG9jYWxzdG9yYWdlIGF0dGVtcHRzIHRvIHJldHVybiB0aGUgbG9jYWxzdG9yYWdlLlxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2FmYXJpIHRocm93c1xuICogd2hlbiBhIHVzZXIgZGlzYWJsZXMgY29va2llcy9sb2NhbHN0b3JhZ2VcbiAqIGFuZCB5b3UgYXR0ZW1wdCB0byBhY2Nlc3MgaXQuXG4gKlxuICogQHJldHVybiB7TG9jYWxTdG9yYWdlfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9jYWxzdG9yYWdlKCl7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gIH0gY2F0Y2ggKGUpIHt9XG59XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqXG4gKiBFeHBvc2UgYGRlYnVnKClgIGFzIHRoZSBtb2R1bGUuXG4gKi9cblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZGVidWc7XG5leHBvcnRzLmNvZXJjZSA9IGNvZXJjZTtcbmV4cG9ydHMuZGlzYWJsZSA9IGRpc2FibGU7XG5leHBvcnRzLmVuYWJsZSA9IGVuYWJsZTtcbmV4cG9ydHMuZW5hYmxlZCA9IGVuYWJsZWQ7XG5leHBvcnRzLmh1bWFuaXplID0gcmVxdWlyZSgnbXMnKTtcblxuLyoqXG4gKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBkZWJ1ZyBtb2RlIG5hbWVzLCBhbmQgbmFtZXMgdG8gc2tpcC5cbiAqL1xuXG5leHBvcnRzLm5hbWVzID0gW107XG5leHBvcnRzLnNraXBzID0gW107XG5cbi8qKlxuICogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuICpcbiAqIFZhbGlkIGtleSBuYW1lcyBhcmUgYSBzaW5nbGUsIGxvd2VyY2FzZWQgbGV0dGVyLCBpLmUuIFwiblwiLlxuICovXG5cbmV4cG9ydHMuZm9ybWF0dGVycyA9IHt9O1xuXG4vKipcbiAqIFByZXZpb3VzbHkgYXNzaWduZWQgY29sb3IuXG4gKi9cblxudmFyIHByZXZDb2xvciA9IDA7XG5cbi8qKlxuICogUHJldmlvdXMgbG9nIHRpbWVzdGFtcC5cbiAqL1xuXG52YXIgcHJldlRpbWU7XG5cbi8qKlxuICogU2VsZWN0IGEgY29sb3IuXG4gKlxuICogQHJldHVybiB7TnVtYmVyfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VsZWN0Q29sb3IoKSB7XG4gIHJldHVybiBleHBvcnRzLmNvbG9yc1twcmV2Q29sb3IrKyAlIGV4cG9ydHMuY29sb3JzLmxlbmd0aF07XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZVxuICogQHJldHVybiB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGRlYnVnKG5hbWVzcGFjZSkge1xuXG4gIC8vIGRlZmluZSB0aGUgYGRpc2FibGVkYCB2ZXJzaW9uXG4gIGZ1bmN0aW9uIGRpc2FibGVkKCkge1xuICB9XG4gIGRpc2FibGVkLmVuYWJsZWQgPSBmYWxzZTtcblxuICAvLyBkZWZpbmUgdGhlIGBlbmFibGVkYCB2ZXJzaW9uXG4gIGZ1bmN0aW9uIGVuYWJsZWQoKSB7XG5cbiAgICB2YXIgc2VsZiA9IGVuYWJsZWQ7XG5cbiAgICAvLyBzZXQgYGRpZmZgIHRpbWVzdGFtcFxuICAgIHZhciBjdXJyID0gK25ldyBEYXRlKCk7XG4gICAgdmFyIG1zID0gY3VyciAtIChwcmV2VGltZSB8fCBjdXJyKTtcbiAgICBzZWxmLmRpZmYgPSBtcztcbiAgICBzZWxmLnByZXYgPSBwcmV2VGltZTtcbiAgICBzZWxmLmN1cnIgPSBjdXJyO1xuICAgIHByZXZUaW1lID0gY3VycjtcblxuICAgIC8vIGFkZCB0aGUgYGNvbG9yYCBpZiBub3Qgc2V0XG4gICAgaWYgKG51bGwgPT0gc2VsZi51c2VDb2xvcnMpIHNlbGYudXNlQ29sb3JzID0gZXhwb3J0cy51c2VDb2xvcnMoKTtcbiAgICBpZiAobnVsbCA9PSBzZWxmLmNvbG9yICYmIHNlbGYudXNlQ29sb3JzKSBzZWxmLmNvbG9yID0gc2VsZWN0Q29sb3IoKTtcblxuICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblxuICAgIGFyZ3NbMF0gPSBleHBvcnRzLmNvZXJjZShhcmdzWzBdKTtcblxuICAgIGlmICgnc3RyaW5nJyAhPT0gdHlwZW9mIGFyZ3NbMF0pIHtcbiAgICAgIC8vIGFueXRoaW5nIGVsc2UgbGV0J3MgaW5zcGVjdCB3aXRoICVvXG4gICAgICBhcmdzID0gWyclbyddLmNvbmNhdChhcmdzKTtcbiAgICB9XG5cbiAgICAvLyBhcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgYXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16JV0pL2csIGZ1bmN0aW9uKG1hdGNoLCBmb3JtYXQpIHtcbiAgICAgIC8vIGlmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcbiAgICAgIGlmIChtYXRjaCA9PT0gJyUlJykgcmV0dXJuIG1hdGNoO1xuICAgICAgaW5kZXgrKztcbiAgICAgIHZhciBmb3JtYXR0ZXIgPSBleHBvcnRzLmZvcm1hdHRlcnNbZm9ybWF0XTtcbiAgICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgZm9ybWF0dGVyKSB7XG4gICAgICAgIHZhciB2YWwgPSBhcmdzW2luZGV4XTtcbiAgICAgICAgbWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG4gICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcbiAgICAgICAgYXJncy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBpbmRleC0tO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1hdGNoO1xuICAgIH0pO1xuXG4gICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBleHBvcnRzLmZvcm1hdEFyZ3MpIHtcbiAgICAgIGFyZ3MgPSBleHBvcnRzLmZvcm1hdEFyZ3MuYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuICAgIHZhciBsb2dGbiA9IGVuYWJsZWQubG9nIHx8IGV4cG9ydHMubG9nIHx8IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7XG4gICAgbG9nRm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gIH1cbiAgZW5hYmxlZC5lbmFibGVkID0gdHJ1ZTtcblxuICB2YXIgZm4gPSBleHBvcnRzLmVuYWJsZWQobmFtZXNwYWNlKSA/IGVuYWJsZWQgOiBkaXNhYmxlZDtcblxuICBmbi5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cbiAgcmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcbiAqIHNlcGFyYXRlZCBieSBhIGNvbG9uIGFuZCB3aWxkY2FyZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcbiAgZXhwb3J0cy5zYXZlKG5hbWVzcGFjZXMpO1xuXG4gIHZhciBzcGxpdCA9IChuYW1lc3BhY2VzIHx8ICcnKS5zcGxpdCgvW1xccyxdKy8pO1xuICB2YXIgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoIXNwbGl0W2ldKSBjb250aW51ZTsgLy8gaWdub3JlIGVtcHR5IHN0cmluZ3NcbiAgICBuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcbiAgICBpZiAobmFtZXNwYWNlc1swXSA9PT0gJy0nKSB7XG4gICAgICBleHBvcnRzLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzLnN1YnN0cigxKSArICckJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHBvcnRzLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkaXNhYmxlKCkge1xuICBleHBvcnRzLmVuYWJsZSgnJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBlbmFibGVkKG5hbWUpIHtcbiAgdmFyIGksIGxlbjtcbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5za2lwcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLnNraXBzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ29lcmNlIGB2YWxgLlxuICpcbiAqIEBwYXJhbSB7TWl4ZWR9IHZhbFxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb2VyY2UodmFsKSB7XG4gIGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikgcmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcbiAgcmV0dXJuIHZhbDtcbn1cbiIsIi8qKlxuICogSGVscGVycy5cbiAqL1xuXG52YXIgcyA9IDEwMDA7XG52YXIgbSA9IHMgKiA2MDtcbnZhciBoID0gbSAqIDYwO1xudmFyIGQgPSBoICogMjQ7XG52YXIgeSA9IGQgKiAzNjUuMjU7XG5cbi8qKlxuICogUGFyc2Ugb3IgZm9ybWF0IHRoZSBnaXZlbiBgdmFsYC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAtIGBsb25nYCB2ZXJib3NlIGZvcm1hdHRpbmcgW2ZhbHNlXVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0gdmFsXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWwsIG9wdGlvbnMpe1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgaWYgKCdzdHJpbmcnID09IHR5cGVvZiB2YWwpIHJldHVybiBwYXJzZSh2YWwpO1xuICByZXR1cm4gb3B0aW9ucy5sb25nXG4gICAgPyBsb25nKHZhbClcbiAgICA6IHNob3J0KHZhbCk7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBgc3RyYCBhbmQgcmV0dXJuIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgc3RyID0gJycgKyBzdHI7XG4gIGlmIChzdHIubGVuZ3RoID4gMTAwMDApIHJldHVybjtcbiAgdmFyIG1hdGNoID0gL14oKD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhzdHIpO1xuICBpZiAoIW1hdGNoKSByZXR1cm47XG4gIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gIHZhciB0eXBlID0gKG1hdGNoWzJdIHx8ICdtcycpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3llYXJzJzpcbiAgICBjYXNlICd5ZWFyJzpcbiAgICBjYXNlICd5cnMnOlxuICAgIGNhc2UgJ3lyJzpcbiAgICBjYXNlICd5JzpcbiAgICAgIHJldHVybiBuICogeTtcbiAgICBjYXNlICdkYXlzJzpcbiAgICBjYXNlICdkYXknOlxuICAgIGNhc2UgJ2QnOlxuICAgICAgcmV0dXJuIG4gKiBkO1xuICAgIGNhc2UgJ2hvdXJzJzpcbiAgICBjYXNlICdob3VyJzpcbiAgICBjYXNlICdocnMnOlxuICAgIGNhc2UgJ2hyJzpcbiAgICBjYXNlICdoJzpcbiAgICAgIHJldHVybiBuICogaDtcbiAgICBjYXNlICdtaW51dGVzJzpcbiAgICBjYXNlICdtaW51dGUnOlxuICAgIGNhc2UgJ21pbnMnOlxuICAgIGNhc2UgJ21pbic6XG4gICAgY2FzZSAnbSc6XG4gICAgICByZXR1cm4gbiAqIG07XG4gICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgY2FzZSAnc2Vjb25kJzpcbiAgICBjYXNlICdzZWNzJzpcbiAgICBjYXNlICdzZWMnOlxuICAgIGNhc2UgJ3MnOlxuICAgICAgcmV0dXJuIG4gKiBzO1xuICAgIGNhc2UgJ21pbGxpc2Vjb25kcyc6XG4gICAgY2FzZSAnbWlsbGlzZWNvbmQnOlxuICAgIGNhc2UgJ21zZWNzJzpcbiAgICBjYXNlICdtc2VjJzpcbiAgICBjYXNlICdtcyc6XG4gICAgICByZXR1cm4gbjtcbiAgfVxufVxuXG4vKipcbiAqIFNob3J0IGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNob3J0KG1zKSB7XG4gIGlmIChtcyA+PSBkKSByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGQpICsgJ2QnO1xuICBpZiAobXMgPj0gaCkgcmV0dXJuIE1hdGgucm91bmQobXMgLyBoKSArICdoJztcbiAgaWYgKG1zID49IG0pIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gbSkgKyAnbSc7XG4gIGlmIChtcyA+PSBzKSByZXR1cm4gTWF0aC5yb3VuZChtcyAvIHMpICsgJ3MnO1xuICByZXR1cm4gbXMgKyAnbXMnO1xufVxuXG4vKipcbiAqIExvbmcgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9uZyhtcykge1xuICByZXR1cm4gcGx1cmFsKG1zLCBkLCAnZGF5JylcbiAgICB8fCBwbHVyYWwobXMsIGgsICdob3VyJylcbiAgICB8fCBwbHVyYWwobXMsIG0sICdtaW51dGUnKVxuICAgIHx8IHBsdXJhbChtcywgcywgJ3NlY29uZCcpXG4gICAgfHwgbXMgKyAnIG1zJztcbn1cblxuLyoqXG4gKiBQbHVyYWxpemF0aW9uIGhlbHBlci5cbiAqL1xuXG5mdW5jdGlvbiBwbHVyYWwobXMsIG4sIG5hbWUpIHtcbiAgaWYgKG1zIDwgbikgcmV0dXJuO1xuICBpZiAobXMgPCBuICogMS41KSByZXR1cm4gTWF0aC5mbG9vcihtcyAvIG4pICsgJyAnICsgbmFtZTtcbiAgcmV0dXJuIE1hdGguY2VpbChtcyAvIG4pICsgJyAnICsgbmFtZSArICdzJztcbn1cbiIsIi8qXG4gKiAkSWQ6IGJhc2U2NC5qcyx2IDIuMTUgMjAxNC8wNC8wNSAxMjo1ODo1NyBkYW5rb2dhaSBFeHAgZGFua29nYWkgJFxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqXG4gKiAgUmVmZXJlbmNlczpcbiAqICAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFzZTY0XG4gKi9cblxuKGZ1bmN0aW9uKGdsb2JhbCkge1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICAvLyBleGlzdGluZyB2ZXJzaW9uIGZvciBub0NvbmZsaWN0KClcbiAgICB2YXIgX0Jhc2U2NCA9IGdsb2JhbC5CYXNlNjQ7XG4gICAgdmFyIHZlcnNpb24gPSBcIjIuMS44XCI7XG4gICAgLy8gaWYgbm9kZS5qcywgd2UgdXNlIEJ1ZmZlclxuICAgIHZhciBidWZmZXI7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgIGJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcbiAgICB9XG4gICAgLy8gY29uc3RhbnRzXG4gICAgdmFyIGI2NGNoYXJzXG4gICAgICAgID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuICAgIHZhciBiNjR0YWIgPSBmdW5jdGlvbihiaW4pIHtcbiAgICAgICAgdmFyIHQgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBiaW4ubGVuZ3RoOyBpIDwgbDsgaSsrKSB0W2Jpbi5jaGFyQXQoaSldID0gaTtcbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfShiNjRjaGFycyk7XG4gICAgdmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG4gICAgLy8gZW5jb2RlciBzdHVmZlxuICAgIHZhciBjYl91dG9iID0gZnVuY3Rpb24oYykge1xuICAgICAgICBpZiAoYy5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICB2YXIgY2MgPSBjLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgICByZXR1cm4gY2MgPCAweDgwID8gY1xuICAgICAgICAgICAgICAgIDogY2MgPCAweDgwMCA/IChmcm9tQ2hhckNvZGUoMHhjMCB8IChjYyA+Pj4gNikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoY2MgJiAweDNmKSkpXG4gICAgICAgICAgICAgICAgOiAoZnJvbUNoYXJDb2RlKDB4ZTAgfCAoKGNjID4+PiAxMikgJiAweDBmKSlcbiAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKChjYyA+Pj4gIDYpICYgMHgzZikpXG4gICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8ICggY2MgICAgICAgICAmIDB4M2YpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgY2MgPSAweDEwMDAwXG4gICAgICAgICAgICAgICAgKyAoYy5jaGFyQ29kZUF0KDApIC0gMHhEODAwKSAqIDB4NDAwXG4gICAgICAgICAgICAgICAgKyAoYy5jaGFyQ29kZUF0KDEpIC0gMHhEQzAwKTtcbiAgICAgICAgICAgIHJldHVybiAoZnJvbUNoYXJDb2RlKDB4ZjAgfCAoKGNjID4+PiAxOCkgJiAweDA3KSlcbiAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoMHg4MCB8ICgoY2MgPj4+IDEyKSAmIDB4M2YpKVxuICAgICAgICAgICAgICAgICAgICArIGZyb21DaGFyQ29kZSgweDgwIHwgKChjYyA+Pj4gIDYpICYgMHgzZikpXG4gICAgICAgICAgICAgICAgICAgICsgZnJvbUNoYXJDb2RlKDB4ODAgfCAoIGNjICAgICAgICAgJiAweDNmKSkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB2YXIgcmVfdXRvYiA9IC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZGXXxbXlxceDAwLVxceDdGXS9nO1xuICAgIHZhciB1dG9iID0gZnVuY3Rpb24odSkge1xuICAgICAgICByZXR1cm4gdS5yZXBsYWNlKHJlX3V0b2IsIGNiX3V0b2IpO1xuICAgIH07XG4gICAgdmFyIGNiX2VuY29kZSA9IGZ1bmN0aW9uKGNjYykge1xuICAgICAgICB2YXIgcGFkbGVuID0gWzAsIDIsIDFdW2NjYy5sZW5ndGggJSAzXSxcbiAgICAgICAgb3JkID0gY2NjLmNoYXJDb2RlQXQoMCkgPDwgMTZcbiAgICAgICAgICAgIHwgKChjY2MubGVuZ3RoID4gMSA/IGNjYy5jaGFyQ29kZUF0KDEpIDogMCkgPDwgOClcbiAgICAgICAgICAgIHwgKChjY2MubGVuZ3RoID4gMiA/IGNjYy5jaGFyQ29kZUF0KDIpIDogMCkpLFxuICAgICAgICBjaGFycyA9IFtcbiAgICAgICAgICAgIGI2NGNoYXJzLmNoYXJBdCggb3JkID4+PiAxOCksXG4gICAgICAgICAgICBiNjRjaGFycy5jaGFyQXQoKG9yZCA+Pj4gMTIpICYgNjMpLFxuICAgICAgICAgICAgcGFkbGVuID49IDIgPyAnPScgOiBiNjRjaGFycy5jaGFyQXQoKG9yZCA+Pj4gNikgJiA2MyksXG4gICAgICAgICAgICBwYWRsZW4gPj0gMSA/ICc9JyA6IGI2NGNoYXJzLmNoYXJBdChvcmQgJiA2MylcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICAgIH07XG4gICAgdmFyIGJ0b2EgPSBnbG9iYWwuYnRvYSA/IGZ1bmN0aW9uKGIpIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbC5idG9hKGIpO1xuICAgIH0gOiBmdW5jdGlvbihiKSB7XG4gICAgICAgIHJldHVybiBiLnJlcGxhY2UoL1tcXHNcXFNdezEsM30vZywgY2JfZW5jb2RlKTtcbiAgICB9O1xuICAgIHZhciBfZW5jb2RlID0gYnVmZmVyID8gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgcmV0dXJuICh1LmNvbnN0cnVjdG9yID09PSBidWZmZXIuY29uc3RydWN0b3IgPyB1IDogbmV3IGJ1ZmZlcih1KSlcbiAgICAgICAgLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgIH1cbiAgICA6IGZ1bmN0aW9uICh1KSB7IHJldHVybiBidG9hKHV0b2IodSkpIH1cbiAgICA7XG4gICAgdmFyIGVuY29kZSA9IGZ1bmN0aW9uKHUsIHVyaXNhZmUpIHtcbiAgICAgICAgcmV0dXJuICF1cmlzYWZlXG4gICAgICAgICAgICA/IF9lbmNvZGUoU3RyaW5nKHUpKVxuICAgICAgICAgICAgOiBfZW5jb2RlKFN0cmluZyh1KSkucmVwbGFjZSgvWytcXC9dL2csIGZ1bmN0aW9uKG0wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG0wID09ICcrJyA/ICctJyA6ICdfJztcbiAgICAgICAgICAgIH0pLnJlcGxhY2UoLz0vZywgJycpO1xuICAgIH07XG4gICAgdmFyIGVuY29kZVVSSSA9IGZ1bmN0aW9uKHUpIHsgcmV0dXJuIGVuY29kZSh1LCB0cnVlKSB9O1xuICAgIC8vIGRlY29kZXIgc3R1ZmZcbiAgICB2YXIgcmVfYnRvdSA9IG5ldyBSZWdFeHAoW1xuICAgICAgICAnW1xceEMwLVxceERGXVtcXHg4MC1cXHhCRl0nLFxuICAgICAgICAnW1xceEUwLVxceEVGXVtcXHg4MC1cXHhCRl17Mn0nLFxuICAgICAgICAnW1xceEYwLVxceEY3XVtcXHg4MC1cXHhCRl17M30nXG4gICAgXS5qb2luKCd8JyksICdnJyk7XG4gICAgdmFyIGNiX2J0b3UgPSBmdW5jdGlvbihjY2NjKSB7XG4gICAgICAgIHN3aXRjaChjY2NjLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICB2YXIgY3AgPSAoKDB4MDcgJiBjY2NjLmNoYXJDb2RlQXQoMCkpIDw8IDE4KVxuICAgICAgICAgICAgICAgIHwgICAgKCgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKSA8PCAxMilcbiAgICAgICAgICAgICAgICB8ICAgICgoMHgzZiAmIGNjY2MuY2hhckNvZGVBdCgyKSkgPDwgIDYpXG4gICAgICAgICAgICAgICAgfCAgICAgKDB4M2YgJiBjY2NjLmNoYXJDb2RlQXQoMykpLFxuICAgICAgICAgICAgb2Zmc2V0ID0gY3AgLSAweDEwMDAwO1xuICAgICAgICAgICAgcmV0dXJuIChmcm9tQ2hhckNvZGUoKG9mZnNldCAgPj4+IDEwKSArIDB4RDgwMClcbiAgICAgICAgICAgICAgICAgICAgKyBmcm9tQ2hhckNvZGUoKG9mZnNldCAmIDB4M0ZGKSArIDB4REMwMCkpO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gZnJvbUNoYXJDb2RlKFxuICAgICAgICAgICAgICAgICgoMHgwZiAmIGNjY2MuY2hhckNvZGVBdCgwKSkgPDwgMTIpXG4gICAgICAgICAgICAgICAgICAgIHwgKCgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKSA8PCA2KVxuICAgICAgICAgICAgICAgICAgICB8ICAoMHgzZiAmIGNjY2MuY2hhckNvZGVBdCgyKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gIGZyb21DaGFyQ29kZShcbiAgICAgICAgICAgICAgICAoKDB4MWYgJiBjY2NjLmNoYXJDb2RlQXQoMCkpIDw8IDYpXG4gICAgICAgICAgICAgICAgICAgIHwgICgweDNmICYgY2NjYy5jaGFyQ29kZUF0KDEpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdmFyIGJ0b3UgPSBmdW5jdGlvbihiKSB7XG4gICAgICAgIHJldHVybiBiLnJlcGxhY2UocmVfYnRvdSwgY2JfYnRvdSk7XG4gICAgfTtcbiAgICB2YXIgY2JfZGVjb2RlID0gZnVuY3Rpb24oY2NjYykge1xuICAgICAgICB2YXIgbGVuID0gY2NjYy5sZW5ndGgsXG4gICAgICAgIHBhZGxlbiA9IGxlbiAlIDQsXG4gICAgICAgIG4gPSAobGVuID4gMCA/IGI2NHRhYltjY2NjLmNoYXJBdCgwKV0gPDwgMTggOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMSA/IGI2NHRhYltjY2NjLmNoYXJBdCgxKV0gPDwgMTIgOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMiA/IGI2NHRhYltjY2NjLmNoYXJBdCgyKV0gPDwgIDYgOiAwKVxuICAgICAgICAgICAgfCAobGVuID4gMyA/IGI2NHRhYltjY2NjLmNoYXJBdCgzKV0gICAgICAgOiAwKSxcbiAgICAgICAgY2hhcnMgPSBbXG4gICAgICAgICAgICBmcm9tQ2hhckNvZGUoIG4gPj4+IDE2KSxcbiAgICAgICAgICAgIGZyb21DaGFyQ29kZSgobiA+Pj4gIDgpICYgMHhmZiksXG4gICAgICAgICAgICBmcm9tQ2hhckNvZGUoIG4gICAgICAgICAmIDB4ZmYpXG4gICAgICAgIF07XG4gICAgICAgIGNoYXJzLmxlbmd0aCAtPSBbMCwgMCwgMiwgMV1bcGFkbGVuXTtcbiAgICAgICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICAgIH07XG4gICAgdmFyIGF0b2IgPSBnbG9iYWwuYXRvYiA/IGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbC5hdG9iKGEpO1xuICAgIH0gOiBmdW5jdGlvbihhKXtcbiAgICAgICAgcmV0dXJuIGEucmVwbGFjZSgvW1xcc1xcU117MSw0fS9nLCBjYl9kZWNvZGUpO1xuICAgIH07XG4gICAgdmFyIF9kZWNvZGUgPSBidWZmZXIgPyBmdW5jdGlvbihhKSB7XG4gICAgICAgIHJldHVybiAoYS5jb25zdHJ1Y3RvciA9PT0gYnVmZmVyLmNvbnN0cnVjdG9yXG4gICAgICAgICAgICAgICAgPyBhIDogbmV3IGJ1ZmZlcihhLCAnYmFzZTY0JykpLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIDogZnVuY3Rpb24oYSkgeyByZXR1cm4gYnRvdShhdG9iKGEpKSB9O1xuICAgIHZhciBkZWNvZGUgPSBmdW5jdGlvbihhKXtcbiAgICAgICAgcmV0dXJuIF9kZWNvZGUoXG4gICAgICAgICAgICBTdHJpbmcoYSkucmVwbGFjZSgvWy1fXS9nLCBmdW5jdGlvbihtMCkgeyByZXR1cm4gbTAgPT0gJy0nID8gJysnIDogJy8nIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1teQS1aYS16MC05XFwrXFwvXS9nLCAnJylcbiAgICAgICAgKTtcbiAgICB9O1xuICAgIHZhciBub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBCYXNlNjQgPSBnbG9iYWwuQmFzZTY0O1xuICAgICAgICBnbG9iYWwuQmFzZTY0ID0gX0Jhc2U2NDtcbiAgICAgICAgcmV0dXJuIEJhc2U2NDtcbiAgICB9O1xuICAgIC8vIGV4cG9ydCBCYXNlNjRcbiAgICBnbG9iYWwuQmFzZTY0ID0ge1xuICAgICAgICBWRVJTSU9OOiB2ZXJzaW9uLFxuICAgICAgICBhdG9iOiBhdG9iLFxuICAgICAgICBidG9hOiBidG9hLFxuICAgICAgICBmcm9tQmFzZTY0OiBkZWNvZGUsXG4gICAgICAgIHRvQmFzZTY0OiBlbmNvZGUsXG4gICAgICAgIHV0b2I6IHV0b2IsXG4gICAgICAgIGVuY29kZTogZW5jb2RlLFxuICAgICAgICBlbmNvZGVVUkk6IGVuY29kZVVSSSxcbiAgICAgICAgYnRvdTogYnRvdSxcbiAgICAgICAgZGVjb2RlOiBkZWNvZGUsXG4gICAgICAgIG5vQ29uZmxpY3Q6IG5vQ29uZmxpY3RcbiAgICB9O1xuICAgIC8vIGlmIEVTNSBpcyBhdmFpbGFibGUsIG1ha2UgQmFzZTY0LmV4dGVuZFN0cmluZygpIGF2YWlsYWJsZVxuICAgIGlmICh0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBub0VudW0gPSBmdW5jdGlvbih2KXtcbiAgICAgICAgICAgIHJldHVybiB7dmFsdWU6dixlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9O1xuICAgICAgICB9O1xuICAgICAgICBnbG9iYWwuQmFzZTY0LmV4dGVuZFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLCAnZnJvbUJhc2U2NCcsIG5vRW51bShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGUodGhpcylcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZSwgJ3RvQmFzZTY0Jywgbm9FbnVtKGZ1bmN0aW9uICh1cmlzYWZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGUodGhpcywgdXJpc2FmZSlcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZSwgJ3RvQmFzZTY0VVJJJywgbm9FbnVtKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZSh0aGlzLCB0cnVlKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gdGhhdCdzIGl0IVxuICAgIGlmIChnbG9iYWxbJ01ldGVvciddKSB7XG4gICAgICAgQmFzZTY0ID0gZ2xvYmFsLkJhc2U2NDsgLy8gZm9yIG5vcm1hbCBleHBvcnQgaW4gTWV0ZW9yLmpzXG4gICAgfVxufSkodGhpcyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuL3V0aWwvY29udGFpbmVyJyksXG4gICAgdHJhdmVyc2UgPSByZXF1aXJlKCcuL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBmb3JtYXRzID0gcmVxdWlyZSgnLi91dGlsL2Zvcm1hdHMnKTtcblxudmFyIGRlcmVmID0gcmVxdWlyZSgnZGVyZWYnKTtcblxuZnVuY3Rpb24gZ2VuZXJhdGUoc2NoZW1hLCByZWZzKSB7XG4gIHZhciAkID0gZGVyZWYoKTtcblxuICB0cnkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlZnMpKSB7XG4gICAgICByZXR1cm4gdHJhdmVyc2UoJChzY2hlbWEsIHJlZnMsIHRydWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJC5yZWZzID0gcmVmcyB8fCB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhdmVyc2UoJChzY2hlbWEsIHRydWUpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlLnBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlLm1lc3NhZ2UgKyAnIGluICcgKyAnLycgKyBlLnBhdGguam9pbignLycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cblxuZ2VuZXJhdGUuZm9ybWF0cyA9IGZvcm1hdHM7XG5nZW5lcmF0ZS5leHRlbmQgPSBjb250YWluZXIuc2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdlbmVyYXRlO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKSxcbiAgICB0cmF2ZXJzZSA9IHJlcXVpcmUoJy4uL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBoYXNQcm9wcyA9IHJlcXVpcmUoJy4uL3V0aWwvaGFzLXByb3BzJyk7XG5cbnZhciBQYXJzZUVycm9yID0gcmVxdWlyZSgnLi4vdXRpbC9lcnJvcicpO1xuXG5mdW5jdGlvbiB1bmlxdWUocGF0aCwgaXRlbXMsIHZhbHVlLCBzYW1wbGUpIHtcbiAgdmFyIHRtcCA9IFtdLFxuICAgICAgc2VlbiA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsob2JqKSB7XG4gICAgdmFyIGpzb24gPSBKU09OLnN0cmluZ2lmeShvYmopO1xuXG4gICAgaWYgKHNlZW4uaW5kZXhPZihqc29uKSA9PT0gLTEpIHtcbiAgICAgIHNlZW4ucHVzaChqc29uKTtcbiAgICAgIHRtcC5wdXNoKG9iaik7XG4gICAgfVxuICB9XG5cbiAgaXRlbXMuZm9yRWFjaCh3YWxrKTtcblxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICB2YXIgbGltaXQgPSAxMDA7XG5cbiAgd2hpbGUgKHRtcC5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aCkge1xuICAgIHdhbGsodHJhdmVyc2UodmFsdWUuaXRlbXMgfHwgc2FtcGxlLCBwYXRoKSk7XG5cbiAgICBpZiAoIWxpbWl0LS0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0bXA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgdmFyIGl0ZW1zID0gW107XG5cbiAgaWYgKCEodmFsdWUuaXRlbXMgfHwgdmFsdWUuYWRkaXRpb25hbEl0ZW1zKSkge1xuICAgIGlmIChoYXNQcm9wcyh2YWx1ZSwgJ21pbkl0ZW1zJywgJ21heEl0ZW1zJywgJ3VuaXF1ZUl0ZW1zJykpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKCdtaXNzaW5nIGl0ZW1zIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUpLCBwYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZS5pdGVtcykpIHtcbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShpdGVtcywgdmFsdWUuaXRlbXMubWFwKGZ1bmN0aW9uKGl0ZW0sIGtleSkge1xuICAgICAgcmV0dXJuIHRyYXZlcnNlKGl0ZW0sIHBhdGguY29uY2F0KFsnaXRlbXMnLCBrZXldKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgdmFyIGxlbmd0aCA9IHJhbmRvbSh2YWx1ZS5taW5JdGVtcywgdmFsdWUubWF4SXRlbXMsIDEsIDUpLFxuICAgICAgc2FtcGxlID0gdHlwZW9mIHZhbHVlLmFkZGl0aW9uYWxJdGVtcyA9PT0gJ29iamVjdCcgPyB2YWx1ZS5hZGRpdGlvbmFsSXRlbXMgOiB7fTtcblxuICBmb3IgKHZhciBjdXJyZW50ID0gaXRlbXMubGVuZ3RoOyBjdXJyZW50IDwgbGVuZ3RoOyBjdXJyZW50ICs9IDEpIHtcbiAgICBpdGVtcy5wdXNoKHRyYXZlcnNlKHZhbHVlLml0ZW1zIHx8IHNhbXBsZSwgcGF0aC5jb25jYXQoWydpdGVtcycsIGN1cnJlbnRdKSkpO1xuICB9XG5cbiAgaWYgKHZhbHVlLnVuaXF1ZUl0ZW1zKSB7XG4gICAgcmV0dXJuIHVuaXF1ZShwYXRoLmNvbmNhdChbJ2l0ZW1zJ10pLCBpdGVtcywgdmFsdWUsIHNhbXBsZSk7XG4gIH1cblxuICByZXR1cm4gaXRlbXM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKSA+IDAuNTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBudW1iZXIgPSByZXF1aXJlKCcuL251bWJlcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHZhbHVlLmhhc1ByZWNpc2lvbiA9IGZhbHNlO1xuXG4gIHJldHVybiBNYXRoLmZsb29yKG51bWJlcih2YWx1ZSkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG51bGw7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgTUlOX0lOVEVHRVIgPSAtMTAwMDAwMDAwLFxuICAgIE1BWF9JTlRFR0VSID0gMTAwMDAwMDAwO1xuXG52YXIgc3RyaW5nID0gcmVxdWlyZSgnLi9zdHJpbmcnKSxcbiAgICByYW5kb20gPSByZXF1aXJlKCcuLi91dGlsL3JhbmRvbScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICh2YWx1ZS5mYWtlciB8fCB2YWx1ZS5jaGFuY2UpIHtcbiAgICByZXR1cm4gc3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHZhciBtaW4gPSB0eXBlb2YgdmFsdWUubWluaW11bSA9PT0gJ3VuZGVmaW5lZCcgPyBNSU5fSU5URUdFUiA6IHZhbHVlLm1pbmltdW0sXG4gICAgICBtYXggPSB0eXBlb2YgdmFsdWUubWF4aW11bSA9PT0gJ3VuZGVmaW5lZCcgPyBNQVhfSU5URUdFUiA6IHZhbHVlLm1heGltdW07XG5cbiAgaWYgKHZhbHVlLmV4Y2x1c2l2ZU1pbmltdW0gJiYgdmFsdWUubWluaW11bSkge1xuICAgIG1pbiArPSAxO1xuICB9XG5cbiAgaWYgKHZhbHVlLmV4Y2x1c2l2ZU1heGltdW0gJiYgdmFsdWUubWF4aW11bSkge1xuICAgIG1heCAtPSAxO1xuICB9XG5cbiAgaWYgKHZhbHVlLm11bHRpcGxlT2YpIHtcbiAgICB2YXIgYmFzZSA9IHJhbmRvbShNYXRoLmZsb29yKG1pbiAvIHZhbHVlLm11bHRpcGxlT2YpLCBNYXRoLmZsb29yKG1heCAvIHZhbHVlLm11bHRpcGxlT2YpKSAqIHZhbHVlLm11bHRpcGxlT2Y7XG5cbiAgICB3aGlsZSAoYmFzZSA8IG1pbikge1xuICAgICAgYmFzZSArPSB2YWx1ZS5tdWx0aXBsZU9mO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgaWYgKHZhbHVlLmhhc1ByZWNpc2lvbikge1xuICAgIHJldHVybiByYW5kb20oZmFsc2UsIG1pbiwgbWF4KTtcbiAgfVxuXG4gIHJldHVybiByYW5kb20oTWF0aC5yYW5kb20oKSA+IDAuNSwgbWluLCBtYXgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbnRhaW5lciA9IHJlcXVpcmUoJy4uL3V0aWwvY29udGFpbmVyJyksXG4gICAgcmFuZG9tID0gcmVxdWlyZSgnLi4vdXRpbC9yYW5kb20nKSxcbiAgICB0cmF2ZXJzZSA9IHJlcXVpcmUoJy4uL3V0aWwvdHJhdmVyc2UnKSxcbiAgICBoYXNQcm9wcyA9IHJlcXVpcmUoJy4uL3V0aWwvaGFzLXByb3BzJyk7XG5cbnZhciBmYWtlciA9IGNvbnRhaW5lci5nZXQoJ2Zha2VyJyksXG4gICAgUmFuZEV4cCA9IGNvbnRhaW5lci5nZXQoJ3JhbmRleHAnKSxcbiAgICByYW5kZXhwID0gUmFuZEV4cC5yYW5kZXhwO1xuXG52YXIgUGFyc2VFcnJvciA9IHJlcXVpcmUoJy4uL3V0aWwvZXJyb3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xuICB2YXIgcHJvcHMgPSB7fTtcblxuICBpZiAoISh2YWx1ZS5wcm9wZXJ0aWVzIHx8IHZhbHVlLnBhdHRlcm5Qcm9wZXJ0aWVzIHx8IHZhbHVlLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKSkge1xuICAgIGlmIChoYXNQcm9wcyh2YWx1ZSwgJ21pblByb3BlcnRpZXMnLCAnbWF4UHJvcGVydGllcycsICdkZXBlbmRlbmNpZXMnLCAncmVxdWlyZWQnKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoJ21pc3NpbmcgcHJvcGVydGllcyBmb3IgJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlKSwgcGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgdmFyIHJlcVByb3BzID0gdmFsdWUucmVxdWlyZWQgfHwgW10sXG4gICAgICBhbGxQcm9wcyA9IHZhbHVlLnByb3BlcnRpZXMgPyBPYmplY3Qua2V5cyh2YWx1ZS5wcm9wZXJ0aWVzKSA6IFtdO1xuXG4gIHJlcVByb3BzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKHZhbHVlLnByb3BlcnRpZXMgJiYgdmFsdWUucHJvcGVydGllc1trZXldKSB7XG4gICAgICBwcm9wc1trZXldID0gdmFsdWUucHJvcGVydGllc1trZXldO1xuICAgIH1cbiAgfSk7XG5cbiAgdmFyIG9wdFByb3BzID0gYWxsUHJvcHMuZmlsdGVyKGZ1bmN0aW9uKHByb3ApIHtcbiAgICByZXR1cm4gcmVxUHJvcHMuaW5kZXhPZihwcm9wKSA9PT0gLTE7XG4gIH0pO1xuXG4gIGlmICh2YWx1ZS5wYXR0ZXJuUHJvcGVydGllcykge1xuICAgIG9wdFByb3BzID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShvcHRQcm9wcywgT2JqZWN0LmtleXModmFsdWUucGF0dGVyblByb3BlcnRpZXMpKTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSByYW5kb20odmFsdWUubWluUHJvcGVydGllcywgdmFsdWUubWF4UHJvcGVydGllcywgMCwgb3B0UHJvcHMubGVuZ3RoKTtcblxuICByYW5kb20uc2h1ZmZsZShvcHRQcm9wcykuc2xpY2UoMCwgbGVuZ3RoKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIGlmICh2YWx1ZS5wcm9wZXJ0aWVzICYmIHZhbHVlLnByb3BlcnRpZXNba2V5XSkge1xuICAgICAgcHJvcHNba2V5XSA9IHZhbHVlLnByb3BlcnRpZXNba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvcHNbcmFuZGV4cChrZXkpXSA9IHZhbHVlLnBhdHRlcm5Qcm9wZXJ0aWVzW2tleV07XG4gICAgfVxuICB9KTtcblxuICB2YXIgY3VycmVudCA9IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgsXG4gICAgICBzYW1wbGUgPSB0eXBlb2YgdmFsdWUuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09ICdvYmplY3QnID8gdmFsdWUuYWRkaXRpb25hbFByb3BlcnRpZXMgOiB7fTtcblxuICBpZiAoY3VycmVudCA8IGxlbmd0aCkge1xuICAgIGZha2VyLmxvcmVtLndvcmRzKGxlbmd0aCAtIGN1cnJlbnQpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICBwcm9wc1trZXkgKyByYW5kZXhwKCdcXFxcd3sxLDEwfScpXSA9IHNhbXBsZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0cmF2ZXJzZShwcm9wcywgcGF0aC5jb25jYXQoWydwcm9wZXJ0aWVzJ10pKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb250YWluZXIgPSByZXF1aXJlKCcuLi91dGlsL2NvbnRhaW5lcicpO1xuXG52YXIgZmFrZXIgPSBjb250YWluZXIuZ2V0KCdmYWtlcicpLFxuICAgIENoYW5jZSA9IGNvbnRhaW5lci5nZXQoJ2NoYW5jZScpLFxuICAgIFJhbmRFeHAgPSBjb250YWluZXIuZ2V0KCdyYW5kZXhwJyksXG4gICAgY2hhbmNlID0gbmV3IENoYW5jZSgpLFxuICAgIHJhbmRleHAgPSBSYW5kRXhwLnJhbmRleHA7XG5cbnZhciByYW5kb20gPSByZXF1aXJlKCcuLi91dGlsL3JhbmRvbScpLFxuICAgIGZvcm1hdHMgPSByZXF1aXJlKCcuLi91dGlsL2Zvcm1hdHMnKTtcblxudmFyIHJlZ2V4cHMgPSB7XG4gIGVtYWlsOiAnW2EtekEtWlxcXFxkXVthLXpBLVpcXFxcZC1dezEsMTN9W2EtekEtWlxcXFxkXUB7aG9zdG5hbWV9JyxcbiAgaG9zdG5hbWU6ICdbYS16QS1aXXsxLDMzfVxcXFwuW2Etel17Miw0fScsXG4gIGlwdjY6ICdbYWJjZGVmXFxcXGRdezR9KDpbYWJjZGVmXFxcXGRdezR9KXs3fScsXG4gIHVyaTogJ1thLXpBLVpcXFxcZF9dW1xcXFx3XFxcXFxcL1xcXFxkXy1dezEsNDB9J1xufTtcblxuZnVuY3Rpb24gZ2V0KG9iaiwga2V5KSB7XG4gIHZhciBwYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuXG4gIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHtcbiAgICB2YXIgcHJvcCA9IHBhcnRzLnNoaWZ0KCk7XG5cbiAgICBpZiAoIW9ialtwcm9wXSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgb2JqID0gb2JqW3Byb3BdO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGUodmFsdWUpIHtcbiAgaWYgKHZhbHVlLnVzZSkge1xuICAgIHZhciBhcmdzID0gW10sXG4gICAgICAgIHBhdGggPSB2YWx1ZS5rZXk7XG5cbiAgICBpZiAodHlwZW9mIHBhdGggPT09ICdvYmplY3QnKSB7XG4gICAgICBwYXRoID0gT2JqZWN0LmtleXMocGF0aClbMF07XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlLmtleVtwYXRoXSkpIHtcbiAgICAgICAgYXJncyA9IHZhbHVlLmtleVtwYXRoXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyZ3MucHVzaCh2YWx1ZS5rZXlbcGF0aF0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBnZW4gPSBnZXQodmFsdWUuZ2VuLCBwYXRoKTtcblxuICAgIGlmICh0eXBlb2YgZ2VuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gJyArIHZhbHVlLnVzZSArICctZ2VuZXJhdG9yIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUua2V5KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdlbi5hcHBseSh2YWx1ZS5nZW4sIGFyZ3MpO1xuICB9XG5cbiAgc3dpdGNoICh2YWx1ZS5mb3JtYXQpIHtcbiAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHJhbmRvbSgwLCAxMDAwMDAwMDAwMDAwMDApKS50b0lTT1N0cmluZygpO1xuXG4gICAgY2FzZSAnZW1haWwnOlxuICAgIGNhc2UgJ2hvc3RuYW1lJzpcbiAgICBjYXNlICdpcHY2JzpcbiAgICBjYXNlICd1cmknOlxuICAgICAgcmV0dXJuIHJhbmRleHAocmVnZXhwc1t2YWx1ZS5mb3JtYXRdKS5yZXBsYWNlKC9cXHsoXFx3KylcXH0vLCBmdW5jdGlvbihtYXRjaGVzLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHJhbmRleHAocmVnZXhwc1trZXldKTtcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnaXB2NCc6XG4gICAgICByZXR1cm4gWzAsIDAsIDAsIDBdLm1hcChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJhbmRvbSgwLCAyNTUpO1xuICAgICAgfSkuam9pbignLicpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHZhciBjYWxsYmFjayA9IGZvcm1hdHModmFsdWUuZm9ybWF0KTtcblxuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gZ2VuZXJhdG9yIGZvciAnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUuZm9ybWF0KSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBnZW5lcmF0b3JzID0ge1xuICAgICAgICBmYWtlcjogZmFrZXIsXG4gICAgICAgIGNoYW5jZTogY2hhbmNlLFxuICAgICAgICByYW5kZXhwOiByYW5kZXhwXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gY2FsbGJhY2soZ2VuZXJhdG9ycywgdmFsdWUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgaWYgKHZhbHVlLmZha2VyIHx8IHZhbHVlLmNoYW5jZSkge1xuICAgIHJldHVybiBnZW5lcmF0ZSh7XG4gICAgICB1c2U6IHZhbHVlLmZha2VyID8gJ2Zha2VyJyA6ICdjaGFuY2UnLFxuICAgICAgZ2VuOiB2YWx1ZS5mYWtlciA/IGZha2VyIDogY2hhbmNlLFxuICAgICAga2V5OiB2YWx1ZS5mYWtlciB8fCB2YWx1ZS5jaGFuY2VcbiAgICB9KTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5mb3JtYXQpIHtcbiAgICByZXR1cm4gZ2VuZXJhdGUodmFsdWUpO1xuICB9XG5cbiAgaWYgKHZhbHVlLnBhdHRlcm4pIHtcbiAgICByZXR1cm4gcmFuZGV4cCh2YWx1ZS5wYXR0ZXJuKTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5taW5MZW5ndGggfHwgdmFsdWUubWF4TGVuZ3RoKSB7XG4gICAgdmFyIG1pbiA9IE1hdGgubWF4KDAsIHZhbHVlLm1pbkxlbmd0aCB8fCAwKSxcbiAgICAgICAgbWF4ID0gcmFuZG9tKG1pbiwgdmFsdWUubWF4TGVuZ3RoKTtcblxuICAgIHJldHVybiByYW5kZXhwKCcueycgKyBtaW4gKyAnLCcgKyBtYXggKyAnfScpO1xuICB9XG5cbiAgcmV0dXJuIGZha2VyLmxvcmVtLndvcmRzKHJhbmRvbSgxLCA1KSkuam9pbignICcpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY29tYmluZSh0YXJnZXQpIHtcbiAgdmFyIHByb3BzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcblxuICBwcm9wcy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikge1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gb2JqW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb21iaW5lO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vLyBzdGF0aWMgcmVxdWlyZXMgLSBoYW5kbGUgYm90aCBpbml0aWFsIGRlcGVuZGVuY3kgbG9hZCAoZGVwcyB3aWxsIGJlIGF2YWlsYWJsZVxuLy8gYW1vbmcgb3RoZXIgbW9kdWxlcykgYXMgd2VsbCBhcyB0aGV5IHdpbGwgYmUgaW5jbHVkZWQgYnkgYnJvd3NlcmlmeSBBU1RcbnZhciBjb250YWluZXIgPSB7XG4gIGZha2VyOiByZXF1aXJlKCdmYWtlcicpLFxuICBjaGFuY2U6IHJlcXVpcmUoJ2NoYW5jZScpLFxuICByYW5kZXhwOiByZXF1aXJlKCdyYW5kZXhwJylcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IGZ1bmN0aW9uKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjb250YWluZXJbbmFtZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ1wiJyArIG5hbWUgKyAnXCIgZGVwZW5kZW5jeSBkb2VzblxcJ3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgY29udGFpbmVyW25hbWVdID0gY2FsbGJhY2soY29udGFpbmVyW25hbWVdKTtcbiAgfSxcbiAgZ2V0OiBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lcltuYW1lXTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gUGFyc2VFcnJvcihtZXNzYWdlLCBwYXRoKSB7XG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMucGF0aCA9IHBhdGg7XG4gIHRoaXMubmFtZSA9ICdQYXJzZUVycm9yJztcbn1cblxuUGFyc2VFcnJvci5wcm90b3R5cGUgPSBFcnJvci5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gUGFyc2VFcnJvcjtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJlZ2lzdHJ5ID0ge307XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obmFtZSwgY2FsbGJhY2spIHtcbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgcmVnaXN0cnlbbmFtZV0gPSBjYWxsYmFjaztcbiAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKHZhciBtZXRob2QgaW4gbmFtZSkge1xuICAgICAgcmVnaXN0cnlbbWV0aG9kXSA9IG5hbWVbbWV0aG9kXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobmFtZSkge1xuICAgIHJldHVybiByZWdpc3RyeVtuYW1lXTtcbiAgfVxuXG4gIHJldHVybiByZWdpc3RyeTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLmZpbHRlcihmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9ialtrZXldICE9PSAndW5kZWZpbmVkJztcbiAgfSkubGVuZ3RoID4gMDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpbmZlcnJlZFByb3BlcnRpZXMgPSB7XG4gIGFycmF5OiBbXG4gICAgJ2FkZGl0aW9uYWxJdGVtcycsXG4gICAgJ2l0ZW1zJyxcbiAgICAnbWF4SXRlbXMnLFxuICAgICdtaW5JdGVtcycsXG4gICAgJ3VuaXF1ZUl0ZW1zJ1xuICBdLFxuICBpbnRlZ2VyOiBbXG4gICAgJ2V4Y2x1c2l2ZU1heGltdW0nLFxuICAgICdleGNsdXNpdmVNaW5pbXVtJyxcbiAgICAnbWF4aW11bScsXG4gICAgJ21pbmltdW0nLFxuICAgICdtdWx0aXBsZU9mJ1xuICBdLFxuICBvYmplY3Q6IFtcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnLFxuICAgICdkZXBlbmRlbmNpZXMnLFxuICAgICdtYXhQcm9wZXJ0aWVzJyxcbiAgICAnbWluUHJvcGVydGllcycsXG4gICAgJ3BhdHRlcm5Qcm9wZXJ0aWVzJyxcbiAgICAncHJvcGVydGllcycsXG4gICAgJ3JlcXVpcmVkJ1xuICBdLFxuICBzdHJpbmc6IFtcbiAgICAnbWF4TGVuZ3RoJyxcbiAgICAnbWVubGVuZ3RoJyxcbiAgICAncGF0dGVybidcbiAgXVxufTtcblxuaW5mZXJyZWRQcm9wZXJ0aWVzLm51bWJlciA9IGluZmVycmVkUHJvcGVydGllcy5pbnRlZ2VyO1xuXG5mdW5jdGlvbiBtYXlIYXZlVHlwZShvYmosIHByb3BzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmZpbHRlcihmdW5jdGlvbihwcm9wKSB7XG4gICAgcmV0dXJuIHByb3BzLmluZGV4T2YocHJvcCkgPiAtMTtcbiAgfSkubGVuZ3RoID4gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvYmopIHtcbiAgZm9yICh2YXIgdHlwZSBpbiBpbmZlcnJlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAobWF5SGF2ZVR5cGUob2JqLCBpbmZlcnJlZFByb3BlcnRpZXNbdHlwZV0pKSB7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhcnJheTogcmVxdWlyZSgnLi4vdHlwZXMvYXJyYXknKSxcbiAgYm9vbGVhbjogcmVxdWlyZSgnLi4vdHlwZXMvYm9vbGVhbicpLFxuICBpbnRlZ2VyOiByZXF1aXJlKCcuLi90eXBlcy9pbnRlZ2VyJyksXG4gIG51bWJlcjogcmVxdWlyZSgnLi4vdHlwZXMvbnVtYmVyJyksXG4gIG51bGw6IHJlcXVpcmUoJy4uL3R5cGVzL251bGwnKSxcbiAgb2JqZWN0OiByZXF1aXJlKCcuLi90eXBlcy9vYmplY3QnKSxcbiAgc3RyaW5nOiByZXF1aXJlKCcuLi90eXBlcy9zdHJpbmcnKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbnRhaW5lciA9IHJlcXVpcmUoJy4vY29udGFpbmVyJyk7XG5cbnZhciBmYWtlciA9IGNvbnRhaW5lci5nZXQoJ2Zha2VyJyk7XG5cbnZhciByYW5kb20gPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1pbiwgbWF4LCBkZWZNaW4sIGRlZk1heCkge1xuICB2YXIgaXNJbnRlZ2VyID0gdHJ1ZTtcblxuICBpZiAodHlwZW9mIG1pbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gbm9uLWludGVnZXIgdmFsdWVzXG4gICAgaXNJbnRlZ2VyID0gbWluO1xuICAgIG1pbiA9IGFyZ3VtZW50c1sxXTtcbiAgICBtYXggPSBhcmd1bWVudHNbMl07XG4gICAgZGVmTWluID0gYXJndW1lbnRzWzNdO1xuICAgIGRlZk1heCA9IGFyZ3VtZW50c1s0XTtcbiAgfVxuXG4gIGRlZk1pbiA9IHR5cGVvZiBkZWZNaW4gPT09ICd1bmRlZmluZWQnID8gcmFuZG9tLk1JTl9OVU1CRVIgOiBkZWZNaW47XG4gIGRlZk1heCA9IHR5cGVvZiBkZWZNYXggPT09ICd1bmRlZmluZWQnID8gcmFuZG9tLk1BWF9OVU1CRVIgOiBkZWZNYXg7XG5cbiAgbWluID0gdHlwZW9mIG1pbiA9PT0gJ3VuZGVmaW5lZCcgPyBkZWZNaW4gOiBtaW47XG4gIG1heCA9IHR5cGVvZiBtYXggPT09ICd1bmRlZmluZWQnID8gZGVmTWF4IDogbWF4O1xuXG4gIGlmIChtYXggPCBtaW4pIHtcbiAgICBtYXggKz0gbWluO1xuICB9XG5cbiAgcmV0dXJuIGZha2VyLnJhbmRvbS5udW1iZXIoe1xuICAgIG1pbjogbWluLFxuICAgIG1heDogTWF0aC5tYXgobWF4LCBtaW4gKyAxKSxcbiAgICBwcmVjaXNpb246IGlzSW50ZWdlciA/IDEgOiBNYXRoLnJhbmRvbSgpXG4gIH0pO1xufTtcblxucmFuZG9tLnNodWZmbGUgPSBmdW5jdGlvbihvYmopIHtcbiAgdmFyIGNvcHkgPSBvYmouc2xpY2UoKSxcbiAgICAgIGxlbmd0aCA9IG9iai5sZW5ndGg7XG5cbiAgZm9yICg7IGxlbmd0aCA+IDA7KSB7XG4gICAgdmFyIGtleSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbmd0aCksXG4gICAgICAgIHRtcCA9IGNvcHlbLS1sZW5ndGhdO1xuXG4gICAgY29weVtsZW5ndGhdID0gY29weVtrZXldO1xuICAgIGNvcHlba2V5XSA9IHRtcDtcbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufTtcblxucmFuZG9tLnBpY2sgPSBmdW5jdGlvbihvYmopIHtcbiAgcmV0dXJuIG9ialtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBvYmoubGVuZ3RoKV07XG59O1xuXG5yYW5kb20uTUlOX05VTUJFUiA9IC0xMDA7XG5yYW5kb20uTUFYX05VTUJFUiA9IDEwMDtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJhbmRvbSA9IHJlcXVpcmUoJy4vcmFuZG9tJyksXG4gICAgY29tYmluZSA9IHJlcXVpcmUoJy4vY29tYmluZScpO1xuXG52YXIgUGFyc2VFcnJvciA9IHJlcXVpcmUoJy4vZXJyb3InKTtcblxudmFyIGluZmVycmVkVHlwZSA9IHJlcXVpcmUoJy4vaW5mZXJyZWQnKTtcblxuZnVuY3Rpb24gcmVkdWNlKG9iaikge1xuICB2YXIgbWl4ID0gb2JqLmFsbE9mIHx8IG9iai5hbnlPZiB8fCBvYmoub25lT2Y7XG5cbiAgaWYgKCEobWl4ICYmIG1peC5sZW5ndGgpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICEoa2V5ID09PSAnZW51bScgfHwga2V5ID09PSAncmVxdWlyZWQnKSkge1xuICAgICAgICByZWR1Y2UodmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICgob2JqLm9uZU9mIHx8IG9iai5hbnlPZikgJiYgbWl4Lmxlbmd0aCkge1xuICAgIG1peCA9IFtyYW5kb20ucGljayhtaXgpXTtcbiAgfVxuXG4gIGRlbGV0ZSBvYmouYWxsT2Y7XG4gIGRlbGV0ZSBvYmouYW55T2Y7XG4gIGRlbGV0ZSBvYmoub25lT2Y7XG5cbiAgdmFyIGZpeGVkID0ge307XG5cbiAgbWl4LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICBjb21iaW5lKGZpeGVkLCB2YWx1ZSk7XG4gIH0pO1xuXG4gIGNvbWJpbmUob2JqLCBmaXhlZCk7XG5cbiAgd2hpbGUgKG9iai5hbGxPZiB8fCBvYmouYW55T2YgfHwgb2JqLm9uZU9mKSB7XG4gICAgcmVkdWNlKG9iaik7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhdmVyc2Uob2JqLCBwYXRoKSB7XG4gIHZhciBwcmltaXRpdmVzID0gcmVxdWlyZSgnLi9wcmltaXRpdmVzJyk7XG5cbiAgdmFyIGNvcHkgPSB7fTtcblxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgY29weSA9IFtdO1xuICB9XG5cbiAgcGF0aCA9IHBhdGggfHwgW107XG5cbiAgcmVkdWNlKG9iaik7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqLmVudW0pKSB7XG4gICAgcmV0dXJuIHJhbmRvbS5waWNrKG9iai5lbnVtKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gb2JqLnR5cGU7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICB0eXBlID0gcmFuZG9tLnBpY2sodHlwZSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gQXR0ZW1wdCB0byBpbmZlciB0aGUgdHlwZVxuICAgIHR5cGUgPSBpbmZlcnJlZFR5cGUob2JqKSB8fCB0eXBlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIGlmICghcHJpbWl0aXZlc1t0eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoJ3Vua25vd24gcHJpbWl0aXZlICcgKyBKU09OLnN0cmluZ2lmeSh0eXBlKSwgcGF0aC5jb25jYXQoWyd0eXBlJ10pKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHByaW1pdGl2ZXNbdHlwZV0ob2JqLCBwYXRoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAodHlwZW9mIGUucGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoZS5tZXNzYWdlLCBwYXRoKVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb3B5W2tleV0gPSB0cmF2ZXJzZSh2YWx1ZSwgcGF0aC5jb25jYXQoW2tleV0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29weVtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvcHk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdHJhdmVyc2U7XG4iLCIvLyAgQ2hhbmNlLmpzIDAuNy41XG4vLyAgaHR0cDovL2NoYW5jZWpzLmNvbVxuLy8gIChjKSAyMDEzIFZpY3RvciBRdWlublxuLy8gIENoYW5jZSBtYXkgYmUgZnJlZWx5IGRpc3RyaWJ1dGVkIG9yIG1vZGlmaWVkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cblxuKGZ1bmN0aW9uICgpIHtcblxuICAgIC8vIENvbnN0YW50c1xuICAgIHZhciBNQVhfSU5UID0gOTAwNzE5OTI1NDc0MDk5MjtcbiAgICB2YXIgTUlOX0lOVCA9IC1NQVhfSU5UO1xuICAgIHZhciBOVU1CRVJTID0gJzAxMjM0NTY3ODknO1xuICAgIHZhciBDSEFSU19MT1dFUiA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgdmFyIENIQVJTX1VQUEVSID0gQ0hBUlNfTE9XRVIudG9VcHBlckNhc2UoKTtcbiAgICB2YXIgSEVYX1BPT0wgID0gTlVNQkVSUyArIFwiYWJjZGVmXCI7XG5cbiAgICAvLyBDYWNoZWQgYXJyYXkgaGVscGVyc1xuICAgIHZhciBzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcblxuICAgIC8vIENvbnN0cnVjdG9yXG4gICAgZnVuY3Rpb24gQ2hhbmNlIChzZWVkKSB7XG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBDaGFuY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VlZCA9PSBudWxsID8gbmV3IENoYW5jZSgpIDogbmV3IENoYW5jZShzZWVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHVzZXIgaGFzIHByb3ZpZGVkIGEgZnVuY3Rpb24sIHVzZSB0aGF0IGFzIHRoZSBnZW5lcmF0b3JcbiAgICAgICAgaWYgKHR5cGVvZiBzZWVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmRvbSA9IHNlZWQ7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWVkbGluZztcblxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gc2V0IGEgc3RhcnRpbmcgdmFsdWUgb2YgemVybyBzbyB3ZSBjYW4gYWRkIHRvIGl0XG4gICAgICAgICAgICB0aGlzLnNlZWQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSwgbGVhdmUgdGhpcy5zZWVkIGJsYW5rIHNvIHRoYXQgTVQgd2lsbCByZWNpZXZlIGEgYmxhbmtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc2VlZGxpbmcgPSAwO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcmd1bWVudHNbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc2VlZGxpbmcgKz0gKGFyZ3VtZW50c1tpXS5sZW5ndGggLSBqKSAqIGFyZ3VtZW50c1tpXS5jaGFyQ29kZUF0KGopO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VlZGxpbmcgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlZWQgKz0gKGFyZ3VtZW50cy5sZW5ndGggLSBpKSAqIHNlZWRsaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgbm8gZ2VuZXJhdG9yIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCwgdXNlIG91ciBNVFxuICAgICAgICB0aGlzLm10ID0gdGhpcy5tZXJzZW5uZV90d2lzdGVyKHRoaXMuc2VlZCk7XG4gICAgICAgIHRoaXMuYmltZDUgPSB0aGlzLmJsdWVpbXBfbWQ1KCk7XG4gICAgICAgIHRoaXMucmFuZG9tID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubXQucmFuZG9tKHRoaXMuc2VlZCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5WRVJTSU9OID0gXCIwLjcuNVwiO1xuXG4gICAgLy8gUmFuZG9tIGhlbHBlciBmdW5jdGlvbnNcbiAgICBmdW5jdGlvbiBpbml0T3B0aW9ucyhvcHRpb25zLCBkZWZhdWx0cykge1xuICAgICAgICBvcHRpb25zIHx8IChvcHRpb25zID0ge30pO1xuXG4gICAgICAgIGlmIChkZWZhdWx0cykge1xuICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBkZWZhdWx0cykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1tpXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1tpXSA9IGRlZmF1bHRzW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRlc3RSYW5nZSh0ZXN0LCBlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHRlc3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmNvZGUgdGhlIGlucHV0IHN0cmluZyB3aXRoIEJhc2U2NC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZTY0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gQmFzZTY0IGVuY29kZXIgYXZhaWxhYmxlLicpO1xuICAgIH07XG5cbiAgICAvLyBTZWxlY3QgcHJvcGVyIEJhc2U2NCBlbmNvZGVyLlxuICAgIChmdW5jdGlvbiBkZXRlcm1pbmVCYXNlNjRFbmNvZGVyKCkge1xuICAgICAgICBpZiAodHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGJhc2U2NCA9IGJ0b2E7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgYmFzZTY0ID0gZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJ1ZmZlcihpbnB1dCkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pKCk7XG5cbiAgICAvLyAtLSBCYXNpY3MgLS1cblxuICAgIC8qKlxuICAgICAqICBSZXR1cm4gYSByYW5kb20gYm9vbCwgZWl0aGVyIHRydWUgb3IgZmFsc2VcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9eyBsaWtlbGlob29kOiA1MCB9XSBhbHRlciB0aGUgbGlrZWxpaG9vZCBvZlxuICAgICAqICAgIHJlY2VpdmluZyBhIHRydWUgb3IgZmFsc2UgdmFsdWUgYmFjay5cbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gaWYgdGhlIGxpa2VsaWhvb2QgaXMgb3V0IG9mIGJvdW5kc1xuICAgICAqICBAcmV0dXJucyB7Qm9vbH0gZWl0aGVyIHRydWUgb3IgZmFsc2VcbiAgICAgKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmJvb2wgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyBsaWtlbGlob29kIG9mIHN1Y2Nlc3MgKHRydWUpXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bGlrZWxpaG9vZCA6IDUwfSk7XG5cbiAgICAgICAgLy8gTm90ZSwgd2UgY291bGQgZ2V0IHNvbWUgbWlub3IgcGVyZiBvcHRpbWl6YXRpb25zIGJ5IGNoZWNraW5nIHJhbmdlXG4gICAgICAgIC8vIHByaW9yIHRvIGluaXRpYWxpemluZyBkZWZhdWx0cywgYnV0IHRoYXQgbWFrZXMgY29kZSBhIGJpdCBtZXNzaWVyXG4gICAgICAgIC8vIGFuZCB0aGUgY2hlY2sgbW9yZSBjb21wbGljYXRlZCBhcyB3ZSBoYXZlIHRvIGNoZWNrIGV4aXN0ZW5jZSBvZlxuICAgICAgICAvLyB0aGUgb2JqZWN0IHRoZW4gZXhpc3RlbmNlIG9mIHRoZSBrZXkgYmVmb3JlIGNoZWNraW5nIGNvbnN0cmFpbnRzLlxuICAgICAgICAvLyBTaW5jZSB0aGUgb3B0aW9ucyBpbml0aWFsaXphdGlvbiBzaG91bGQgYmUgbWlub3IgY29tcHV0YXRpb25hbGx5LFxuICAgICAgICAvLyBkZWNpc2lvbiBtYWRlIGZvciBjb2RlIGNsZWFubGluZXNzIGludGVudGlvbmFsbHkuIFRoaXMgaXMgbWVudGlvbmVkXG4gICAgICAgIC8vIGhlcmUgYXMgaXQncyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSwgd2lsbCBub3QgYmUgbWVudGlvbmVkIGFnYWluLlxuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLmxpa2VsaWhvb2QgPCAwIHx8IG9wdGlvbnMubGlrZWxpaG9vZCA+IDEwMCxcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBMaWtlbGlob29kIGFjY2VwdHMgdmFsdWVzIGZyb20gMCB0byAxMDAuXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yYW5kb20oKSAqIDEwMCA8IG9wdGlvbnMubGlrZWxpaG9vZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBjaGFyYWN0ZXIuXG4gICAgICpcbiAgICAgKiAgQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBjYW4gc3BlY2lmeSBhIGNoYXJhY3RlciBwb29sLCBvbmx5IGFscGhhLFxuICAgICAqICAgIG9ubHkgc3ltYm9scywgYW5kIGNhc2luZyAobG93ZXIgb3IgdXBwZXIpXG4gICAgICogIEByZXR1cm5zIHtTdHJpbmd9IGEgc2luZ2xlIHJhbmRvbSBjaGFyYWN0ZXJcbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gQ2FuIG9ubHkgc3BlY2lmeSBhbHBoYSBvciBzeW1ib2xzLCBub3QgYm90aFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuY2hhcmFjdGVyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICBvcHRpb25zLmFscGhhICYmIG9wdGlvbnMuc3ltYm9scyxcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBDYW5ub3Qgc3BlY2lmeSBib3RoIGFscGhhIGFuZCBzeW1ib2xzLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIHN5bWJvbHMgPSBcIiFAIyQlXiYqKClbXVwiLFxuICAgICAgICAgICAgbGV0dGVycywgcG9vbDtcblxuICAgICAgICBpZiAob3B0aW9ucy5jYXNpbmcgPT09ICdsb3dlcicpIHtcbiAgICAgICAgICAgIGxldHRlcnMgPSBDSEFSU19MT1dFUjtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJykge1xuICAgICAgICAgICAgbGV0dGVycyA9IENIQVJTX1VQUEVSO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0dGVycyA9IENIQVJTX0xPV0VSICsgQ0hBUlNfVVBQRVI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5wb29sKSB7XG4gICAgICAgICAgICBwb29sID0gb3B0aW9ucy5wb29sO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuYWxwaGEpIHtcbiAgICAgICAgICAgIHBvb2wgPSBsZXR0ZXJzO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuc3ltYm9scykge1xuICAgICAgICAgICAgcG9vbCA9IHN5bWJvbHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb29sID0gbGV0dGVycyArIE5VTUJFUlMgKyBzeW1ib2xzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBvb2wuY2hhckF0KHRoaXMubmF0dXJhbCh7bWF4OiAocG9vbC5sZW5ndGggLSAxKX0pKTtcbiAgICB9O1xuXG4gICAgLy8gTm90ZSwgd2FudGVkIHRvIHVzZSBcImZsb2F0XCIgb3IgXCJkb3VibGVcIiBidXQgdGhvc2UgYXJlIGJvdGggSlMgcmVzZXJ2ZWQgd29yZHMuXG5cbiAgICAvLyBOb3RlLCBmaXhlZCBtZWFucyBOIE9SIExFU1MgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsLiBUaGlzIGJlY2F1c2VcbiAgICAvLyBJdCBjb3VsZCBiZSAxNC45MDAwIGJ1dCBpbiBKYXZhU2NyaXB0LCB3aGVuIHRoaXMgaXMgY2FzdCBhcyBhIG51bWJlcixcbiAgICAvLyB0aGUgdHJhaWxpbmcgemVyb2VzIGFyZSBkcm9wcGVkLiBMZWZ0IHRvIHRoZSBjb25zdW1lciBpZiB0cmFpbGluZyB6ZXJvZXMgYXJlXG4gICAgLy8gbmVlZGVkXG4gICAgLyoqXG4gICAgICogIFJldHVybiBhIHJhbmRvbSBmbG9hdGluZyBwb2ludCBudW1iZXJcbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgZml4ZWQgcHJlY2lzaW9uLCBtaW4sIG1heFxuICAgICAqICBAcmV0dXJucyB7TnVtYmVyfSBhIHNpbmdsZSBmbG9hdGluZyBwb2ludCBudW1iZXJcbiAgICAgKiAgQHRocm93cyB7UmFuZ2VFcnJvcn0gQ2FuIG9ubHkgc3BlY2lmeSBmaXhlZCBvciBwcmVjaXNpb24sIG5vdCBib3RoLiBBbHNvXG4gICAgICogICAgbWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4XG4gICAgICovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5mbG9hdGluZyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQgOiA0fSk7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAgICAgICBcIkNoYW5jZTogQ2Fubm90IHNwZWNpZnkgYm90aCBmaXhlZCBhbmQgcHJlY2lzaW9uLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIG51bTtcbiAgICAgICAgdmFyIGZpeGVkID0gTWF0aC5wb3coMTAsIG9wdGlvbnMuZml4ZWQpO1xuXG4gICAgICAgIHZhciBtYXggPSBNQVhfSU5UIC8gZml4ZWQ7XG4gICAgICAgIHZhciBtaW4gPSAtbWF4O1xuXG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMubWluICYmIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5taW4gPCBtaW4sXG4gICAgICAgICAgICBcIkNoYW5jZTogTWluIHNwZWNpZmllZCBpcyBvdXQgb2YgcmFuZ2Ugd2l0aCBmaXhlZC4gTWluIHNob3VsZCBiZSwgYXQgbGVhc3QsIFwiICsgbWluXG4gICAgICAgICk7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIG9wdGlvbnMubWF4ICYmIG9wdGlvbnMuZml4ZWQgJiYgb3B0aW9ucy5tYXggPiBtYXgsXG4gICAgICAgICAgICBcIkNoYW5jZTogTWF4IHNwZWNpZmllZCBpcyBvdXQgb2YgcmFuZ2Ugd2l0aCBmaXhlZC4gTWF4IHNob3VsZCBiZSwgYXQgbW9zdCwgXCIgKyBtYXhcbiAgICAgICAgKTtcblxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBtaW4gOiBtaW4sIG1heCA6IG1heCB9KTtcblxuICAgICAgICAvLyBUb2RvIC0gTWFrZSB0aGlzIHdvcmshXG4gICAgICAgIC8vIG9wdGlvbnMucHJlY2lzaW9uID0gKHR5cGVvZiBvcHRpb25zLnByZWNpc2lvbiAhPT0gXCJ1bmRlZmluZWRcIikgPyBvcHRpb25zLnByZWNpc2lvbiA6IGZhbHNlO1xuXG4gICAgICAgIG51bSA9IHRoaXMuaW50ZWdlcih7bWluOiBvcHRpb25zLm1pbiAqIGZpeGVkLCBtYXg6IG9wdGlvbnMubWF4ICogZml4ZWR9KTtcbiAgICAgICAgdmFyIG51bV9maXhlZCA9IChudW0gLyBmaXhlZCkudG9GaXhlZChvcHRpb25zLmZpeGVkKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW1fZml4ZWQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIGludGVnZXJcbiAgICAgKlxuICAgICAqICBOT1RFIHRoZSBtYXggYW5kIG1pbiBhcmUgSU5DTFVERUQgaW4gdGhlIHJhbmdlLiBTbzpcbiAgICAgKiAgY2hhbmNlLmludGVnZXIoe21pbjogMSwgbWF4OiAzfSk7XG4gICAgICogIHdvdWxkIHJldHVybiBlaXRoZXIgMSwgMiwgb3IgMy5cbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgbWluIGFuZC9vciBtYXhcbiAgICAgKiAgQHJldHVybnMge051bWJlcn0gYSBzaW5nbGUgcmFuZG9tIGludGVnZXIgbnVtYmVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IG1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUuaW50ZWdlciA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIC8vIDkwMDcxOTkyNTQ3NDA5OTIgKDJeNTMpIGlzIHRoZSBtYXggaW50ZWdlciBudW1iZXIgaW4gSmF2YVNjcmlwdFxuICAgICAgICAvLyBTZWU6IGh0dHA6Ly92cS5pby8xMzJzYTJqXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWluOiBNSU5fSU5ULCBtYXg6IE1BWF9JTlR9KTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWluID4gb3B0aW9ucy5tYXgsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBNYXguXCIpO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMucmFuZG9tKCkgKiAob3B0aW9ucy5tYXggLSBvcHRpb25zLm1pbiArIDEpICsgb3B0aW9ucy5taW4pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIG5hdHVyYWxcbiAgICAgKlxuICAgICAqICBOT1RFIHRoZSBtYXggYW5kIG1pbiBhcmUgSU5DTFVERUQgaW4gdGhlIHJhbmdlLiBTbzpcbiAgICAgKiAgY2hhbmNlLm5hdHVyYWwoe21pbjogMSwgbWF4OiAzfSk7XG4gICAgICogIHdvdWxkIHJldHVybiBlaXRoZXIgMSwgMiwgb3IgMy5cbiAgICAgKlxuICAgICAqICBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIGNhbiBzcGVjaWZ5IGEgbWluIGFuZC9vciBtYXhcbiAgICAgKiAgQHJldHVybnMge051bWJlcn0gYSBzaW5nbGUgcmFuZG9tIGludGVnZXIgbnVtYmVyXG4gICAgICogIEB0aHJvd3Mge1JhbmdlRXJyb3J9IG1pbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heFxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUubmF0dXJhbCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7bWluOiAwLCBtYXg6IE1BWF9JTlR9KTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWluIDwgMCwgXCJDaGFuY2U6IE1pbiBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlZ2VyKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAgUmV0dXJuIGEgcmFuZG9tIHN0cmluZ1xuICAgICAqXG4gICAgICogIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gY2FuIHNwZWNpZnkgYSBsZW5ndGhcbiAgICAgKiAgQHJldHVybnMge1N0cmluZ30gYSBzdHJpbmcgb2YgcmFuZG9tIGxlbmd0aFxuICAgICAqICBAdGhyb3dzIHtSYW5nZUVycm9yfSBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvXG4gICAgICovXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdHJpbmcgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywgeyBsZW5ndGg6IHRoaXMubmF0dXJhbCh7bWluOiA1LCBtYXg6IDIwfSkgfSk7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLmxlbmd0aCA8IDAsIFwiQ2hhbmNlOiBMZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvLlwiKTtcbiAgICAgICAgdmFyIGxlbmd0aCA9IG9wdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgdGV4dCA9IHRoaXMubih0aGlzLmNoYXJhY3RlciwgbGVuZ3RoLCBvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gdGV4dC5qb2luKFwiXCIpO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgQmFzaWNzIC0tXG5cbiAgICAvLyAtLSBIZWxwZXJzIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNhcGl0YWxpemUgPSBmdW5jdGlvbiAod29yZCkge1xuICAgICAgICByZXR1cm4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc3Vic3RyKDEpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm1peGluID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgICBmb3IgKHZhciBmdW5jX25hbWUgaW4gb2JqKSB7XG4gICAgICAgICAgICBDaGFuY2UucHJvdG90eXBlW2Z1bmNfbmFtZV0gPSBvYmpbZnVuY19uYW1lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogIEdpdmVuIGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgc29tZXRoaW5nIHJhbmRvbSBhbmQgYSBudW1iZXIgb2YgaXRlbXMgdG8gZ2VuZXJhdGUsXG4gICAgICogICAgcmV0dXJuIGFuIGFycmF5IG9mIGl0ZW1zIHdoZXJlIG5vbmUgcmVwZWF0LlxuICAgICAqXG4gICAgICogIEBwYXJhbSB7RnVuY3Rpb259IGZuIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBzb21ldGhpbmcgcmFuZG9tXG4gICAgICogIEBwYXJhbSB7TnVtYmVyfSBudW0gbnVtYmVyIG9mIHRlcm1zIHRvIGdlbmVyYXRlXG4gICAgICogIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIGFueSBvcHRpb25zIHRvIHBhc3Mgb24gdG8gdGhlIGdlbmVyYXRvciBmdW5jdGlvblxuICAgICAqICBAcmV0dXJucyB7QXJyYXl9IGFuIGFycmF5IG9mIGxlbmd0aCBgbnVtYCB3aXRoIGV2ZXJ5IGl0ZW0gZ2VuZXJhdGVkIGJ5IGBmbmAgYW5kIHVuaXF1ZVxuICAgICAqXG4gICAgICogIFRoZXJlIGNhbiBiZSBtb3JlIHBhcmFtZXRlcnMgYWZ0ZXIgdGhlc2UuIEFsbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkIHRvIHRoZSBnaXZlbiBmdW5jdGlvblxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUudW5pcXVlID0gZnVuY3Rpb24oZm4sIG51bSwgb3B0aW9ucykge1xuICAgICAgICB0ZXN0UmFuZ2UoXG4gICAgICAgICAgICB0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIixcbiAgICAgICAgICAgIFwiQ2hhbmNlOiBUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uLlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIC8vIERlZmF1bHQgY29tcGFyYXRvciB0byBjaGVjayB0aGF0IHZhbCBpcyBub3QgYWxyZWFkeSBpbiBhcnIuXG4gICAgICAgICAgICAvLyBTaG91bGQgcmV0dXJuIGBmYWxzZWAgaWYgaXRlbSBub3QgaW4gYXJyYXksIGB0cnVlYCBvdGhlcndpc2VcbiAgICAgICAgICAgIGNvbXBhcmF0b3I6IGZ1bmN0aW9uKGFyciwgdmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKHZhbCkgIT09IC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgYXJyID0gW10sIGNvdW50ID0gMCwgcmVzdWx0LCBNQVhfRFVQTElDQVRFUyA9IG51bSAqIDUwLCBwYXJhbXMgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG5cbiAgICAgICAgd2hpbGUgKGFyci5sZW5ndGggPCBudW0pIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGZuLmFwcGx5KHRoaXMsIHBhcmFtcyk7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMuY29tcGFyYXRvcihhcnIsIHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICBhcnIucHVzaChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIC8vIHJlc2V0IGNvdW50IHdoZW4gdW5pcXVlIGZvdW5kXG4gICAgICAgICAgICAgICAgY291bnQgPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoKytjb3VudCA+IE1BWF9EVVBMSUNBVEVTKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDaGFuY2U6IG51bSBpcyBsaWtlbHkgdG9vIGxhcmdlIGZvciBzYW1wbGUgc2V0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqICBHaXZlcyBhbiBhcnJheSBvZiBuIHJhbmRvbSB0ZXJtc1xuICAgICAqXG4gICAgICogIEBwYXJhbSB7RnVuY3Rpb259IGZuIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBzb21ldGhpbmcgcmFuZG9tXG4gICAgICogIEBwYXJhbSB7TnVtYmVyfSBuIG51bWJlciBvZiB0ZXJtcyB0byBnZW5lcmF0ZVxuICAgICAqICBAcmV0dXJucyB7QXJyYXl9IGFuIGFycmF5IG9mIGxlbmd0aCBgbmAgd2l0aCBpdGVtcyBnZW5lcmF0ZWQgYnkgYGZuYFxuICAgICAqXG4gICAgICogIFRoZXJlIGNhbiBiZSBtb3JlIHBhcmFtZXRlcnMgYWZ0ZXIgdGhlc2UuIEFsbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkIHRvIHRoZSBnaXZlbiBmdW5jdGlvblxuICAgICAqL1xuICAgIENoYW5jZS5wcm90b3R5cGUubiA9IGZ1bmN0aW9uKGZuLCBuKSB7XG4gICAgICAgIHRlc3RSYW5nZShcbiAgICAgICAgICAgIHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiLFxuICAgICAgICAgICAgXCJDaGFuY2U6IFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24uXCJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodHlwZW9mIG4gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBuID0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaSA9IG4sIGFyciA9IFtdLCBwYXJhbXMgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG5cbiAgICAgICAgLy8gUHJvdmlkaW5nIGEgbmVnYXRpdmUgY291bnQgc2hvdWxkIHJlc3VsdCBpbiBhIG5vb3AuXG4gICAgICAgIGkgPSBNYXRoLm1heCggMCwgaSApO1xuXG4gICAgICAgIGZvciAobnVsbDsgaS0tOyBudWxsKSB7XG4gICAgICAgICAgICBhcnIucHVzaChmbi5hcHBseSh0aGlzLCBwYXJhbXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcblxuICAgIC8vIEgvVCB0byBTTyBmb3IgdGhpcyBvbmU6IGh0dHA6Ly92cS5pby9PdFVyWjVcbiAgICBDaGFuY2UucHJvdG90eXBlLnBhZCA9IGZ1bmN0aW9uIChudW1iZXIsIHdpZHRoLCBwYWQpIHtcbiAgICAgICAgLy8gRGVmYXVsdCBwYWQgdG8gMCBpZiBub25lIHByb3ZpZGVkXG4gICAgICAgIHBhZCA9IHBhZCB8fCAnMCc7XG4gICAgICAgIC8vIENvbnZlcnQgbnVtYmVyIHRvIGEgc3RyaW5nXG4gICAgICAgIG51bWJlciA9IG51bWJlciArICcnO1xuICAgICAgICByZXR1cm4gbnVtYmVyLmxlbmd0aCA+PSB3aWR0aCA/IG51bWJlciA6IG5ldyBBcnJheSh3aWR0aCAtIG51bWJlci5sZW5ndGggKyAxKS5qb2luKHBhZCkgKyBudW1iZXI7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucGljayA9IGZ1bmN0aW9uIChhcnIsIGNvdW50KSB7XG4gICAgICAgIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNoYW5jZTogQ2Fubm90IHBpY2soKSBmcm9tIGFuIGVtcHR5IGFycmF5XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY291bnQgfHwgY291bnQgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnJbdGhpcy5uYXR1cmFsKHttYXg6IGFyci5sZW5ndGggLSAxfSldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2h1ZmZsZShhcnIpLnNsaWNlKDAsIGNvdW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbiAoYXJyKSB7XG4gICAgICAgIHZhciBvbGRfYXJyYXkgPSBhcnIuc2xpY2UoMCksXG4gICAgICAgICAgICBuZXdfYXJyYXkgPSBbXSxcbiAgICAgICAgICAgIGogPSAwLFxuICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyKG9sZF9hcnJheS5sZW5ndGgpO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIC8vIFBpY2sgYSByYW5kb20gaW5kZXggZnJvbSB0aGUgYXJyYXlcbiAgICAgICAgICAgIGogPSB0aGlzLm5hdHVyYWwoe21heDogb2xkX2FycmF5Lmxlbmd0aCAtIDF9KTtcbiAgICAgICAgICAgIC8vIEFkZCBpdCB0byB0aGUgbmV3IGFycmF5XG4gICAgICAgICAgICBuZXdfYXJyYXlbaV0gPSBvbGRfYXJyYXlbal07XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhhdCBlbGVtZW50IGZyb20gdGhlIG9yaWdpbmFsIGFycmF5XG4gICAgICAgICAgICBvbGRfYXJyYXkuc3BsaWNlKGosIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ld19hcnJheTtcbiAgICB9O1xuXG4gICAgLy8gUmV0dXJucyBhIHNpbmdsZSBpdGVtIGZyb20gYW4gYXJyYXkgd2l0aCByZWxhdGl2ZSB3ZWlnaHRpbmcgb2Ygb2Rkc1xuICAgIENoYW5jZS5wcm90b3R5cGUud2VpZ2h0ZWQgPSBmdW5jdGlvbihhcnIsIHdlaWdodHMpIHtcbiAgICAgICAgaWYgKGFyci5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNoYW5jZTogbGVuZ3RoIG9mIGFycmF5IGFuZCB3ZWlnaHRzIG11c3QgbWF0Y2hcIik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGUgd2VpZ2h0cyB0aGF0IGFyZSBsZXNzIG9yIGVxdWFsIHRvIHplcm8uXG4gICAgICAgIGZvciAodmFyIHdlaWdodEluZGV4ID0gd2VpZ2h0cy5sZW5ndGggLSAxOyB3ZWlnaHRJbmRleCA+PSAwOyAtLXdlaWdodEluZGV4KSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgd2VpZ2h0IGlzIGxlc3Mgb3IgZXF1YWwgdG8gemVybywgcmVtb3ZlIGl0IGFuZCB0aGUgdmFsdWUuXG4gICAgICAgICAgICBpZiAod2VpZ2h0c1t3ZWlnaHRJbmRleF0gPD0gMCkge1xuICAgICAgICAgICAgICAgIGFyci5zcGxpY2Uod2VpZ2h0SW5kZXgsMSk7XG4gICAgICAgICAgICAgICAgd2VpZ2h0cy5zcGxpY2Uod2VpZ2h0SW5kZXgsMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBhbnkgb2YgdGhlIHdlaWdodHMgYXJlIGxlc3MgdGhhbiAxLCB3ZSB3YW50IHRvIHNjYWxlIHRoZW0gdXAgdG8gd2hvbGVcbiAgICAgICAgLy8gICBudW1iZXJzIGZvciB0aGUgcmVzdCBvZiB0aGlzIGxvZ2ljIHRvIHdvcmtcbiAgICAgICAgaWYgKHdlaWdodHMuc29tZShmdW5jdGlvbih3ZWlnaHQpIHsgcmV0dXJuIHdlaWdodCA8IDE7IH0pKSB7XG4gICAgICAgICAgICB2YXIgbWluID0gd2VpZ2h0cy5yZWR1Y2UoZnVuY3Rpb24obWluLCB3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHdlaWdodCA8IG1pbikgPyB3ZWlnaHQgOiBtaW47XG4gICAgICAgICAgICB9LCB3ZWlnaHRzWzBdKTtcblxuICAgICAgICAgICAgdmFyIHNjYWxpbmdfZmFjdG9yID0gMSAvIG1pbjtcblxuICAgICAgICAgICAgd2VpZ2h0cyA9IHdlaWdodHMubWFwKGZ1bmN0aW9uKHdlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3ZWlnaHQgKiBzY2FsaW5nX2ZhY3RvcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN1bSA9IHdlaWdodHMucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCB3ZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0b3RhbCArIHdlaWdodDtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgLy8gZ2V0IGFuIGluZGV4XG4gICAgICAgIHZhciBzZWxlY3RlZCA9IHRoaXMubmF0dXJhbCh7IG1pbjogMSwgbWF4OiBzdW0gfSk7XG5cbiAgICAgICAgdmFyIHRvdGFsID0gMDtcbiAgICAgICAgdmFyIGNob3NlbjtcbiAgICAgICAgLy8gVXNpbmcgc29tZSgpIGhlcmUgc28gd2UgY2FuIGJhaWwgYXMgc29vbiBhcyB3ZSBnZXQgb3VyIG1hdGNoXG4gICAgICAgIHdlaWdodHMuc29tZShmdW5jdGlvbih3ZWlnaHQsIGluZGV4KSB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQgPD0gdG90YWwgKyB3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBjaG9zZW4gPSBhcnJbaW5kZXhdO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG90YWwgKz0gd2VpZ2h0O1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY2hvc2VuO1xuICAgIH07XG5cbiAgICAvLyAtLSBFbmQgSGVscGVycyAtLVxuXG4gICAgLy8gLS0gVGV4dCAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wYXJhZ3JhcGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHNlbnRlbmNlcyA9IG9wdGlvbnMuc2VudGVuY2VzIHx8IHRoaXMubmF0dXJhbCh7bWluOiAzLCBtYXg6IDd9KSxcbiAgICAgICAgICAgIHNlbnRlbmNlX2FycmF5ID0gdGhpcy5uKHRoaXMuc2VudGVuY2UsIHNlbnRlbmNlcyk7XG5cbiAgICAgICAgcmV0dXJuIHNlbnRlbmNlX2FycmF5LmpvaW4oJyAnKTtcbiAgICB9O1xuXG4gICAgLy8gQ291bGQgZ2V0IHNtYXJ0ZXIgYWJvdXQgdGhpcyB0aGFuIGdlbmVyYXRpbmcgcmFuZG9tIHdvcmRzIGFuZFxuICAgIC8vIGNoYWluaW5nIHRoZW0gdG9nZXRoZXIuIFN1Y2ggYXM6IGh0dHA6Ly92cS5pby8xYTVjZU9oXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zZW50ZW5jZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB2YXIgd29yZHMgPSBvcHRpb25zLndvcmRzIHx8IHRoaXMubmF0dXJhbCh7bWluOiAxMiwgbWF4OiAxOH0pLFxuICAgICAgICAgICAgdGV4dCwgd29yZF9hcnJheSA9IHRoaXMubih0aGlzLndvcmQsIHdvcmRzKTtcblxuICAgICAgICB0ZXh0ID0gd29yZF9hcnJheS5qb2luKCcgJyk7XG5cbiAgICAgICAgLy8gQ2FwaXRhbGl6ZSBmaXJzdCBsZXR0ZXIgb2Ygc2VudGVuY2UsIGFkZCBwZXJpb2QgYXQgZW5kXG4gICAgICAgIHRleHQgPSB0aGlzLmNhcGl0YWxpemUodGV4dCkgKyAnLic7XG5cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3lsbGFibGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IG9wdGlvbnMubGVuZ3RoIHx8IHRoaXMubmF0dXJhbCh7bWluOiAyLCBtYXg6IDN9KSxcbiAgICAgICAgICAgIGNvbnNvbmFudHMgPSAnYmNkZmdoamtsbW5wcnN0dnd6JywgLy8gY29uc29uYW50cyBleGNlcHQgaGFyZCB0byBzcGVhayBvbmVzXG4gICAgICAgICAgICB2b3dlbHMgPSAnYWVpb3UnLCAvLyB2b3dlbHNcbiAgICAgICAgICAgIGFsbCA9IGNvbnNvbmFudHMgKyB2b3dlbHMsIC8vIGFsbFxuICAgICAgICAgICAgdGV4dCA9ICcnLFxuICAgICAgICAgICAgY2hyO1xuXG4gICAgICAgIC8vIEknbSBzdXJlIHRoZXJlJ3MgYSBtb3JlIGVsZWdhbnQgd2F5IHRvIGRvIHRoaXMsIGJ1dCB0aGlzIHdvcmtzXG4gICAgICAgIC8vIGRlY2VudGx5IHdlbGwuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgLy8gRmlyc3QgY2hhcmFjdGVyIGNhbiBiZSBhbnl0aGluZ1xuICAgICAgICAgICAgICAgIGNociA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiBhbGx9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uc29uYW50cy5pbmRleE9mKGNocikgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gTGFzdCBjaGFyYWN0ZXIgd2FzIGEgdm93ZWwsIG5vdyB3ZSB3YW50IGEgY29uc29uYW50XG4gICAgICAgICAgICAgICAgY2hyID0gdGhpcy5jaGFyYWN0ZXIoe3Bvb2w6IGNvbnNvbmFudHN9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTGFzdCBjaGFyYWN0ZXIgd2FzIGEgY29uc29uYW50LCBub3cgd2Ugd2FudCBhIHZvd2VsXG4gICAgICAgICAgICAgICAgY2hyID0gdGhpcy5jaGFyYWN0ZXIoe3Bvb2w6IHZvd2Vsc30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZXh0ICs9IGNocjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLndvcmQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdGVzdFJhbmdlKFxuICAgICAgICAgICAgb3B0aW9ucy5zeWxsYWJsZXMgJiYgb3B0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICBcIkNoYW5jZTogQ2Fubm90IHNwZWNpZnkgYm90aCBzeWxsYWJsZXMgQU5EIGxlbmd0aC5cIlxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBzeWxsYWJsZXMgPSBvcHRpb25zLnN5bGxhYmxlcyB8fCB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiAzfSksXG4gICAgICAgICAgICB0ZXh0ID0gJyc7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBFaXRoZXIgYm91bmQgd29yZCBieSBsZW5ndGhcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHRoaXMuc3lsbGFibGUoKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKHRleHQubGVuZ3RoIDwgb3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIG9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE9yIGJ5IG51bWJlciBvZiBzeWxsYWJsZXNcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3lsbGFibGVzOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHRoaXMuc3lsbGFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIFRleHQgLS1cblxuICAgIC8vIC0tIFBlcnNvbiAtLVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hZ2UgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBhZ2VSYW5nZTtcblxuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY2hpbGQnOlxuICAgICAgICAgICAgICAgIGFnZVJhbmdlID0ge21pbjogMSwgbWF4OiAxMn07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZWVuJzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDEzLCBtYXg6IDE5fTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FkdWx0JzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDE4LCBtYXg6IDY1fTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Nlbmlvcic6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiA2NSwgbWF4OiAxMDB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWxsJzpcbiAgICAgICAgICAgICAgICBhZ2VSYW5nZSA9IHttaW46IDEsIG1heDogMTAwfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYWdlUmFuZ2UgPSB7bWluOiAxOCwgbWF4OiA2NX07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKGFnZVJhbmdlKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5iaXJ0aGRheSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICB5ZWFyOiAobmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gdGhpcy5hZ2Uob3B0aW9ucykpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUob3B0aW9ucyk7XG4gICAgfTtcblxuICAgIC8vIENQRjsgSUQgdG8gaWRlbnRpZnkgdGF4cGF5ZXJzIGluIEJyYXppbFxuICAgIENoYW5jZS5wcm90b3R5cGUuY3BmID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMubih0aGlzLm5hdHVyYWwsIDksIHsgbWF4OiA5IH0pO1xuICAgICAgICB2YXIgZDEgPSBuWzhdKjIrbls3XSozK25bNl0qNCtuWzVdKjUrbls0XSo2K25bM10qNytuWzJdKjgrblsxXSo5K25bMF0qMTA7XG4gICAgICAgIGQxID0gMTEgLSAoZDEgJSAxMSk7XG4gICAgICAgIGlmIChkMT49MTApIHtcbiAgICAgICAgICAgIGQxID0gMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZDIgPSBkMSoyK25bOF0qMytuWzddKjQrbls2XSo1K25bNV0qNituWzRdKjcrblszXSo4K25bMl0qOStuWzFdKjEwK25bMF0qMTE7XG4gICAgICAgIGQyID0gMTEgLSAoZDIgJSAxMSk7XG4gICAgICAgIGlmIChkMj49MTApIHtcbiAgICAgICAgICAgIGQyID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJycrblswXStuWzFdK25bMl0rJy4nK25bM10rbls0XStuWzVdKycuJytuWzZdK25bN10rbls4XSsnLScrZDErZDI7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZmlyc3QgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2dlbmRlcjogdGhpcy5nZW5kZXIoKX0pO1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKHRoaXMuZ2V0KFwiZmlyc3ROYW1lc1wiKVtvcHRpb25zLmdlbmRlci50b0xvd2VyQ2FzZSgpXSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZ2VuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrKFsnTWFsZScsICdGZW1hbGUnXSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubGFzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayh0aGlzLmdldChcImxhc3ROYW1lc1wiKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubXJ6ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGNoZWNrRGlnaXQgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHZhciBhbHBoYSA9IFwiPEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlYWlwiLnNwbGl0KCcnKSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsaWVycyA9IFsgNywgMywgMSBdLFxuICAgICAgICAgICAgICAgIHJ1bm5pbmdUb3RhbCA9IDA7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dC5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbihjaGFyYWN0ZXIsIGlkeCkge1xuICAgICAgICAgICAgICAgIHZhciBwb3MgPSBhbHBoYS5pbmRleE9mKGNoYXJhY3Rlcik7XG5cbiAgICAgICAgICAgICAgICBpZihwb3MgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciA9IHBvcyA9PT0gMCA/IDAgOiBwb3MgKyA5O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciA9IHBhcnNlSW50KGNoYXJhY3RlciwgMTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgKj0gbXVsdGlwbGllcnNbaWR4ICUgbXVsdGlwbGllcnMubGVuZ3RoXTtcbiAgICAgICAgICAgICAgICBydW5uaW5nVG90YWwgKz0gY2hhcmFjdGVyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcnVubmluZ1RvdGFsICUgMTA7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBnZW5lcmF0ZSA9IGZ1bmN0aW9uIChvcHRzKSB7XG4gICAgICAgICAgICB2YXIgcGFkID0gZnVuY3Rpb24gKGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXkobGVuZ3RoICsgMSkuam9pbignPCcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBudW1iZXIgPSBbICdQPCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmlzc3VlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubGFzdC50b1VwcGVyQ2FzZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgJzw8JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZmlyc3QudG9VcHBlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZCgzOSAtIChvcHRzLmxhc3QubGVuZ3RoICsgb3B0cy5maXJzdC5sZW5ndGggKyAyKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLnBhc3Nwb3J0TnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tEaWdpdChvcHRzLnBhc3Nwb3J0TnVtYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubmF0aW9uYWxpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmRvYixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQob3B0cy5kb2IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5nZW5kZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmV4cGlyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQob3B0cy5leHBpcnkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkKDE0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlnaXQocGFkKDE0KSkgXS5qb2luKCcnKTtcblxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArXG4gICAgICAgICAgICAgICAgKGNoZWNrRGlnaXQobnVtYmVyLnN1YnN0cig0NCwgMTApICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIuc3Vic3RyKDU3LCA3KSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyLnN1YnN0cig2NSwgNykpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0KCksXG4gICAgICAgICAgICBsYXN0OiB0aGlzLmxhc3QoKSxcbiAgICAgICAgICAgIHBhc3Nwb3J0TnVtYmVyOiB0aGlzLmludGVnZXIoe21pbjogMTAwMDAwMDAwLCBtYXg6IDk5OTk5OTk5OX0pLFxuICAgICAgICAgICAgZG9iOiAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRlID0gdGhhdC5iaXJ0aGRheSh7dHlwZTogJ2FkdWx0J30pO1xuICAgICAgICAgICAgICAgIHJldHVybiBbZGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkuc3Vic3RyKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5wYWQoZGF0ZS5nZXRNb250aCgpICsgMSwgMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnBhZChkYXRlLmdldERhdGUoKSwgMildLmpvaW4oJycpO1xuICAgICAgICAgICAgfSgpKSxcbiAgICAgICAgICAgIGV4cGlyeTogKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsoZGF0ZS5nZXRGdWxsWWVhcigpICsgNSkudG9TdHJpbmcoKS5zdWJzdHIoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnBhZChkYXRlLmdldE1vbnRoKCkgKyAxLCAyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucGFkKGRhdGUuZ2V0RGF0ZSgpLCAyKV0uam9pbignJyk7XG4gICAgICAgICAgICB9KCkpLFxuICAgICAgICAgICAgZ2VuZGVyOiB0aGlzLmdlbmRlcigpID09PSAnRmVtYWxlJyA/ICdGJzogJ00nLFxuICAgICAgICAgICAgaXNzdWVyOiAnR0JSJyxcbiAgICAgICAgICAgIG5hdGlvbmFsaXR5OiAnR0JSJ1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlIChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5uYW1lID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBmaXJzdCA9IHRoaXMuZmlyc3Qob3B0aW9ucyksXG4gICAgICAgICAgICBsYXN0ID0gdGhpcy5sYXN0KCksXG4gICAgICAgICAgICBuYW1lO1xuXG4gICAgICAgIGlmIChvcHRpb25zLm1pZGRsZSkge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgdGhpcy5maXJzdChvcHRpb25zKSArICcgJyArIGxhc3Q7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5taWRkbGVfaW5pdGlhbCkge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgdGhpcy5jaGFyYWN0ZXIoe2FscGhhOiB0cnVlLCBjYXNpbmc6ICd1cHBlcid9KSArICcuICcgKyBsYXN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmFtZSA9IGZpcnN0ICsgJyAnICsgbGFzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnByZWZpeCkge1xuICAgICAgICAgICAgbmFtZSA9IHRoaXMucHJlZml4KG9wdGlvbnMpICsgJyAnICsgbmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnN1ZmZpeCkge1xuICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyAnICcgKyB0aGlzLnN1ZmZpeChvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuYW1lO1xuICAgIH07XG5cbiAgICAvLyBSZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG5hbWUgcHJlZml4ZXMgYmFzZWQgb24gc3VwcGxpZWQgZ2VuZGVyLlxuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZV9wcmVmaXhlcyA9IGZ1bmN0aW9uIChnZW5kZXIpIHtcbiAgICAgICAgZ2VuZGVyID0gZ2VuZGVyIHx8IFwiYWxsXCI7XG4gICAgICAgIGdlbmRlciA9IGdlbmRlci50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIHZhciBwcmVmaXhlcyA9IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3RvcicsIGFiYnJldmlhdGlvbjogJ0RyLicgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChnZW5kZXIgPT09IFwibWFsZVwiIHx8IGdlbmRlciA9PT0gXCJhbGxcIikge1xuICAgICAgICAgICAgcHJlZml4ZXMucHVzaCh7IG5hbWU6ICdNaXN0ZXInLCBhYmJyZXZpYXRpb246ICdNci4nIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdlbmRlciA9PT0gXCJmZW1hbGVcIiB8fCBnZW5kZXIgPT09IFwiYWxsXCIpIHtcbiAgICAgICAgICAgIHByZWZpeGVzLnB1c2goeyBuYW1lOiAnTWlzcycsIGFiYnJldmlhdGlvbjogJ01pc3MnIH0pO1xuICAgICAgICAgICAgcHJlZml4ZXMucHVzaCh7IG5hbWU6ICdNaXNzZXMnLCBhYmJyZXZpYXRpb246ICdNcnMuJyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcmVmaXhlcztcbiAgICB9O1xuXG4gICAgLy8gQWxpYXMgZm9yIG5hbWVfcHJlZml4XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wcmVmaXggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lX3ByZWZpeChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5uYW1lX3ByZWZpeCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IGdlbmRlcjogXCJhbGxcIiB9KTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZnVsbCA/XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3ByZWZpeGVzKG9wdGlvbnMuZ2VuZGVyKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3ByZWZpeGVzKG9wdGlvbnMuZ2VuZGVyKSkuYWJicmV2aWF0aW9uO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnNzbiA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7c3NuRm91cjogZmFsc2UsIGRhc2hlczogdHJ1ZX0pO1xuICAgICAgICB2YXIgc3NuX3Bvb2wgPSBcIjEyMzQ1Njc4OTBcIixcbiAgICAgICAgICAgIHNzbixcbiAgICAgICAgICAgIGRhc2ggPSBvcHRpb25zLmRhc2hlcyA/ICctJyA6ICcnO1xuXG4gICAgICAgIGlmKCFvcHRpb25zLnNzbkZvdXIpIHtcbiAgICAgICAgICAgIHNzbiA9IHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiAzfSkgKyBkYXNoICtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiAyfSkgKyBkYXNoICtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nKHtwb29sOiBzc25fcG9vbCwgbGVuZ3RoOiA0fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzc24gPSB0aGlzLnN0cmluZyh7cG9vbDogc3NuX3Bvb2wsIGxlbmd0aDogNH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzc247XG4gICAgfTtcblxuICAgIC8vIFJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbmFtZSBzdWZmaXhlc1xuICAgIENoYW5jZS5wcm90b3R5cGUubmFtZV9zdWZmaXhlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHN1ZmZpeGVzID0gW1xuICAgICAgICAgICAgeyBuYW1lOiAnRG9jdG9yIG9mIE9zdGVvcGF0aGljIE1lZGljaW5lJywgYWJicmV2aWF0aW9uOiAnRC5PLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3RvciBvZiBQaGlsb3NvcGh5JywgYWJicmV2aWF0aW9uOiAnUGguRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdFc3F1aXJlJywgYWJicmV2aWF0aW9uOiAnRXNxLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0p1bmlvcicsIGFiYnJldmlhdGlvbjogJ0pyLicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0p1cmlzIERvY3RvcicsIGFiYnJldmlhdGlvbjogJ0ouRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgQXJ0cycsIGFiYnJldmlhdGlvbjogJ00uQS4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgQnVzaW5lc3MgQWRtaW5pc3RyYXRpb24nLCBhYmJyZXZpYXRpb246ICdNLkIuQS4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNYXN0ZXIgb2YgU2NpZW5jZScsIGFiYnJldmlhdGlvbjogJ00uUy4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdNZWRpY2FsIERvY3RvcicsIGFiYnJldmlhdGlvbjogJ00uRC4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdTZW5pb3InLCBhYmJyZXZpYXRpb246ICdTci4nIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdUaGUgVGhpcmQnLCBhYmJyZXZpYXRpb246ICdJSUknIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdUaGUgRm91cnRoJywgYWJicmV2aWF0aW9uOiAnSVYnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdCYWNoZWxvciBvZiBFbmdpbmVlcmluZycsIGFiYnJldmlhdGlvbjogJ0IuRScgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0JhY2hlbG9yIG9mIFRlY2hub2xvZ3knLCBhYmJyZXZpYXRpb246ICdCLlRFQ0gnIH1cbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIHN1ZmZpeGVzO1xuICAgIH07XG5cbiAgICAvLyBBbGlhcyBmb3IgbmFtZV9zdWZmaXhcbiAgICBDaGFuY2UucHJvdG90eXBlLnN1ZmZpeCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWVfc3VmZml4KG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLm5hbWVfc3VmZml4ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5mdWxsID9cbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLm5hbWVfc3VmZml4ZXMoKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5uYW1lX3N1ZmZpeGVzKCkpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIFBlcnNvbiAtLVxuXG4gICAgLy8gLS0gTW9iaWxlIC0tXG4gICAgLy8gQW5kcm9pZCBHQ00gUmVnaXN0cmF0aW9uIElEXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbmRyb2lkX2lkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gXCJBUEE5MVwiICsgdGhpcy5zdHJpbmcoeyBwb29sOiBcIjAxMjM0NTY3ODlhYmNlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotX1wiLCBsZW5ndGg6IDE3OCB9KTtcbiAgICB9O1xuXG4gICAgLy8gQXBwbGUgUHVzaCBUb2tlblxuICAgIENoYW5jZS5wcm90b3R5cGUuYXBwbGVfdG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZyh7IHBvb2w6IFwiYWJjZGVmMTIzNDU2Nzg5MFwiLCBsZW5ndGg6IDY0IH0pO1xuICAgIH07XG5cbiAgICAvLyBXaW5kb3dzIFBob25lIDggQU5JRDJcbiAgICBDaGFuY2UucHJvdG90eXBlLndwOF9hbmlkMiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGJhc2U2NCggdGhpcy5oYXNoKCB7IGxlbmd0aCA6IDMyIH0gKSApO1xuICAgIH07XG5cbiAgICAvLyBXaW5kb3dzIFBob25lIDcgQU5JRFxuICAgIENoYW5jZS5wcm90b3R5cGUud3A3X2FuaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnQT0nICsgdGhpcy5ndWlkKCkucmVwbGFjZSgvLS9nLCAnJykudG9VcHBlckNhc2UoKSArICcmRT0nICsgdGhpcy5oYXNoKHsgbGVuZ3RoOjMgfSkgKyAnJlc9JyArIHRoaXMuaW50ZWdlcih7IG1pbjowLCBtYXg6OSB9KTtcbiAgICB9O1xuXG4gICAgLy8gQmxhY2tCZXJyeSBEZXZpY2UgUElOXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5iYl9waW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc2goeyBsZW5ndGg6IDggfSk7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBNb2JpbGUgLS1cblxuICAgIC8vIC0tIFdlYiAtLVxuICAgIENoYW5jZS5wcm90b3R5cGUuYXZhdGFyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHVybCA9IG51bGw7XG4gICAgICAgIHZhciBVUkxfQkFTRSA9ICcvL3d3dy5ncmF2YXRhci5jb20vYXZhdGFyLyc7XG4gICAgICAgIHZhciBQUk9UT0NPTFMgPSB7XG4gICAgICAgICAgICBodHRwOiAnaHR0cCcsXG4gICAgICAgICAgICBodHRwczogJ2h0dHBzJ1xuICAgICAgICB9O1xuICAgICAgICB2YXIgRklMRV9UWVBFUyA9IHtcbiAgICAgICAgICAgIGJtcDogJ2JtcCcsXG4gICAgICAgICAgICBnaWY6ICdnaWYnLFxuICAgICAgICAgICAganBnOiAnanBnJyxcbiAgICAgICAgICAgIHBuZzogJ3BuZydcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIEZBTExCQUNLUyA9IHtcbiAgICAgICAgICAgICc0MDQnOiAnNDA0JywgLy8gUmV0dXJuIDQwNCBpZiBub3QgZm91bmRcbiAgICAgICAgICAgIG1tOiAnbW0nLCAvLyBNeXN0ZXJ5IG1hblxuICAgICAgICAgICAgaWRlbnRpY29uOiAnaWRlbnRpY29uJywgLy8gR2VvbWV0cmljIHBhdHRlcm4gYmFzZWQgb24gaGFzaFxuICAgICAgICAgICAgbW9uc3RlcmlkOiAnbW9uc3RlcmlkJywgLy8gQSBnZW5lcmF0ZWQgbW9uc3RlciBpY29uXG4gICAgICAgICAgICB3YXZhdGFyOiAnd2F2YXRhcicsIC8vIEEgZ2VuZXJhdGVkIGZhY2VcbiAgICAgICAgICAgIHJldHJvOiAncmV0cm8nLCAvLyA4LWJpdCBpY29uXG4gICAgICAgICAgICBibGFuazogJ2JsYW5rJyAvLyBBIHRyYW5zcGFyZW50IHBuZ1xuICAgICAgICB9O1xuICAgICAgICB2YXIgUkFUSU5HUyA9IHtcbiAgICAgICAgICAgIGc6ICdnJyxcbiAgICAgICAgICAgIHBnOiAncGcnLFxuICAgICAgICAgICAgcjogJ3InLFxuICAgICAgICAgICAgeDogJ3gnXG4gICAgICAgIH07XG4gICAgICAgIHZhciBvcHRzID0ge1xuICAgICAgICAgICAgcHJvdG9jb2w6IG51bGwsXG4gICAgICAgICAgICBlbWFpbDogbnVsbCxcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb246IG51bGwsXG4gICAgICAgICAgICBzaXplOiBudWxsLFxuICAgICAgICAgICAgZmFsbGJhY2s6IG51bGwsXG4gICAgICAgICAgICByYXRpbmc6IG51bGxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIFNldCB0byBhIHJhbmRvbSBlbWFpbFxuICAgICAgICAgICAgb3B0cy5lbWFpbCA9IHRoaXMuZW1haWwoKTtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIG9wdHMuZW1haWwgPSBvcHRpb25zO1xuICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5jb25zdHJ1Y3RvciA9PT0gJ0FycmF5Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRzID0gaW5pdE9wdGlvbnMob3B0aW9ucywgb3B0cyk7XG5cbiAgICAgICAgaWYgKCFvcHRzLmVtYWlsKSB7XG4gICAgICAgICAgICAvLyBTZXQgdG8gYSByYW5kb20gZW1haWxcbiAgICAgICAgICAgIG9wdHMuZW1haWwgPSB0aGlzLmVtYWlsKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTYWZlIGNoZWNraW5nIGZvciBwYXJhbXNcbiAgICAgICAgb3B0cy5wcm90b2NvbCA9IFBST1RPQ09MU1tvcHRzLnByb3RvY29sXSA/IG9wdHMucHJvdG9jb2wgKyAnOicgOiAnJztcbiAgICAgICAgb3B0cy5zaXplID0gcGFyc2VJbnQob3B0cy5zaXplLCAwKSA/IG9wdHMuc2l6ZSA6ICcnO1xuICAgICAgICBvcHRzLnJhdGluZyA9IFJBVElOR1Nbb3B0cy5yYXRpbmddID8gb3B0cy5yYXRpbmcgOiAnJztcbiAgICAgICAgb3B0cy5mYWxsYmFjayA9IEZBTExCQUNLU1tvcHRzLmZhbGxiYWNrXSA/IG9wdHMuZmFsbGJhY2sgOiAnJztcbiAgICAgICAgb3B0cy5maWxlRXh0ZW5zaW9uID0gRklMRV9UWVBFU1tvcHRzLmZpbGVFeHRlbnNpb25dID8gb3B0cy5maWxlRXh0ZW5zaW9uIDogJyc7XG5cbiAgICAgICAgdXJsID1cbiAgICAgICAgICAgIG9wdHMucHJvdG9jb2wgK1xuICAgICAgICAgICAgVVJMX0JBU0UgK1xuICAgICAgICAgICAgdGhpcy5iaW1kNS5tZDUob3B0cy5lbWFpbCkgK1xuICAgICAgICAgICAgKG9wdHMuZmlsZUV4dGVuc2lvbiA/ICcuJyArIG9wdHMuZmlsZUV4dGVuc2lvbiA6ICcnKSArXG4gICAgICAgICAgICAob3B0cy5zaXplIHx8IG9wdHMucmF0aW5nIHx8IG9wdHMuZmFsbGJhY2sgPyAnPycgOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMuc2l6ZSA/ICcmcz0nICsgb3B0cy5zaXplLnRvU3RyaW5nKCkgOiAnJykgK1xuICAgICAgICAgICAgKG9wdHMucmF0aW5nID8gJyZyPScgKyBvcHRzLnJhdGluZyA6ICcnKSArXG4gICAgICAgICAgICAob3B0cy5mYWxsYmFjayA/ICcmZD0nICsgb3B0cy5mYWxsYmFjayA6ICcnKVxuICAgICAgICAgICAgO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY29sb3IgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBmdW5jdGlvbiBncmF5KHZhbHVlLCBkZWxpbWl0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIHZhbHVlLCB2YWx1ZV0uam9pbihkZWxpbWl0ZXIgfHwgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5waWNrKFsnaGV4JywgJ3Nob3J0aGV4JywgJ3JnYicsICdyZ2JhJywgJzB4J10pLFxuICAgICAgICAgICAgZ3JheXNjYWxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNhc2luZzogJ2xvd2VyJ1xuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgaXNHcmF5c2NhbGUgPSBvcHRpb25zLmdyYXlzY2FsZTtcbiAgICAgICAgdmFyIGNvbG9yVmFsdWU7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnaGV4Jykge1xuICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICcjJyArIChpc0dyYXlzY2FsZSA/IGdyYXkodGhpcy5oYXNoKHtsZW5ndGg6IDJ9KSkgOiB0aGlzLmhhc2goe2xlbmd0aDogNn0pKTtcblxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnc2hvcnRoZXgnKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlID0gJyMnICsgKGlzR3JheXNjYWxlID8gZ3JheSh0aGlzLmhhc2goe2xlbmd0aDogMX0pKSA6IHRoaXMuaGFzaCh7bGVuZ3RoOiAzfSkpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyZ2InKSB7XG4gICAgICAgICAgICBpZiAoaXNHcmF5c2NhbGUpIHtcbiAgICAgICAgICAgICAgICBjb2xvclZhbHVlID0gJ3JnYignICsgZ3JheSh0aGlzLm5hdHVyYWwoe21heDogMjU1fSksICcsJykgKyAnKSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yVmFsdWUgPSAncmdiKCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLCcgKyB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyZ2JhJykge1xuICAgICAgICAgICAgaWYgKGlzR3JheXNjYWxlKSB7XG4gICAgICAgICAgICAgICAgY29sb3JWYWx1ZSA9ICdyZ2JhKCcgKyBncmF5KHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSwgJywnKSArICcsJyArIHRoaXMuZmxvYXRpbmcoe21pbjowLCBtYXg6MX0pICsgJyknO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvclZhbHVlID0gJ3JnYmEoJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcsJyArIHRoaXMuZmxvYXRpbmcoe21pbjowLCBtYXg6MX0pICsgJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnMHgnKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlID0gJzB4JyArIChpc0dyYXlzY2FsZSA/IGdyYXkodGhpcy5oYXNoKHtsZW5ndGg6IDJ9KSkgOiB0aGlzLmhhc2goe2xlbmd0aDogNn0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIGZvcm1hdCBwcm92aWRlZC4gUGxlYXNlIHByb3ZpZGUgb25lIG9mIFwiaGV4XCIsIFwic2hvcnRoZXhcIiwgXCJyZ2JcIiwgXCJyZ2JhXCIsIG9yIFwiMHhcIi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJyApIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUgPSBjb2xvclZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29sb3JWYWx1ZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kb21haW4gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLndvcmQoKSArICcuJyArIChvcHRpb25zLnRsZCB8fCB0aGlzLnRsZCgpKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5lbWFpbCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud29yZCh7bGVuZ3RoOiBvcHRpb25zLmxlbmd0aH0pICsgJ0AnICsgKG9wdGlvbnMuZG9tYWluIHx8IHRoaXMuZG9tYWluKCkpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmZiaWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCgnMTAwMDAnICsgdGhpcy5uYXR1cmFsKHttYXg6IDEwMDAwMDAwMDAwMH0pLCAxMCk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZ29vZ2xlX2FuYWx5dGljcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGFjY291bnQgPSB0aGlzLnBhZCh0aGlzLm5hdHVyYWwoe21heDogOTk5OTk5fSksIDYpO1xuICAgICAgICB2YXIgcHJvcGVydHkgPSB0aGlzLnBhZCh0aGlzLm5hdHVyYWwoe21heDogOTl9KSwgMik7XG5cbiAgICAgICAgcmV0dXJuICdVQS0nICsgYWNjb3VudCArICctJyArIHByb3BlcnR5O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmhhc2h0YWcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLndvcmQoKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5pcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gVG9kbzogVGhpcyBjb3VsZCByZXR1cm4gc29tZSByZXNlcnZlZCBJUHMuIFNlZSBodHRwOi8vdnEuaW8vMTM3ZGdZeVxuICAgICAgICAvLyB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSB1cGRhdGVkIHRvIGFjY291bnQgZm9yIHRoYXQgcmFyZSBhcyBpdCBtYXkgYmVcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KSArICcuJyArXG4gICAgICAgICAgICAgICB0aGlzLm5hdHVyYWwoe21heDogMjU1fSkgKyAnLicgK1xuICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHttYXg6IDI1NX0pICsgJy4nICtcbiAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWF4OiAyNTV9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5pcHY2ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaXBfYWRkciA9IHRoaXMubih0aGlzLmhhc2gsIDgsIHtsZW5ndGg6IDR9KTtcblxuICAgICAgICByZXR1cm4gaXBfYWRkci5qb2luKFwiOlwiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5rbG91dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbCh7bWluOiAxLCBtYXg6IDk5fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudGxkcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFsnY29tJywgJ29yZycsICdlZHUnLCAnZ292JywgJ2NvLnVrJywgJ25ldCcsICdpbyddO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnRsZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGljayh0aGlzLnRsZHMoKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUudHdpdHRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICdAJyArIHRoaXMud29yZCgpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnVybCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7IHByb3RvY29sOiBcImh0dHBcIiwgZG9tYWluOiB0aGlzLmRvbWFpbihvcHRpb25zKSwgZG9tYWluX3ByZWZpeDogXCJcIiwgcGF0aDogdGhpcy53b3JkKCksIGV4dGVuc2lvbnM6IFtdfSk7XG5cbiAgICAgICAgdmFyIGV4dGVuc2lvbiA9IG9wdGlvbnMuZXh0ZW5zaW9ucy5sZW5ndGggPiAwID8gXCIuXCIgKyB0aGlzLnBpY2sob3B0aW9ucy5leHRlbnNpb25zKSA6IFwiXCI7XG4gICAgICAgIHZhciBkb21haW4gPSBvcHRpb25zLmRvbWFpbl9wcmVmaXggPyBvcHRpb25zLmRvbWFpbl9wcmVmaXggKyBcIi5cIiArIG9wdGlvbnMuZG9tYWluIDogb3B0aW9ucy5kb21haW47XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucHJvdG9jb2wgKyBcIjovL1wiICsgZG9tYWluICsgXCIvXCIgKyBvcHRpb25zLnBhdGggKyBleHRlbnNpb247XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBXZWIgLS1cblxuICAgIC8vIC0tIExvY2F0aW9uIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmFkZHJlc3MgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21pbjogNSwgbWF4OiAyMDAwfSkgKyAnICcgKyB0aGlzLnN0cmVldChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbHRpdHVkZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7Zml4ZWQ6IDUsIG1pbjogMCwgbWF4OiA4ODQ4fSk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb2F0aW5nKHtcbiAgICAgICAgICAgIG1pbjogb3B0aW9ucy5taW4sXG4gICAgICAgICAgICBtYXg6IG9wdGlvbnMubWF4LFxuICAgICAgICAgICAgZml4ZWQ6IG9wdGlvbnMuZml4ZWRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuYXJlYWNvZGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge3BhcmVucyA6IHRydWV9KTtcbiAgICAgICAgLy8gRG9uJ3Qgd2FudCBhcmVhIGNvZGVzIHRvIHN0YXJ0IHdpdGggMSwgb3IgaGF2ZSBhIDkgYXMgdGhlIHNlY29uZCBkaWdpdFxuICAgICAgICB2YXIgYXJlYWNvZGUgPSB0aGlzLm5hdHVyYWwoe21pbjogMiwgbWF4OiA5fSkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHttaW46IDAsIG1heDogOH0pLnRvU3RyaW5nKCkgK1xuICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7bWluOiAwLCBtYXg6IDl9KS50b1N0cmluZygpO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnBhcmVucyA/ICcoJyArIGFyZWFjb2RlICsgJyknIDogYXJlYWNvZGU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY2l0eSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwaXRhbGl6ZSh0aGlzLndvcmQoe3N5bGxhYmxlczogM30pKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jb29yZGluYXRlcyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhdGl0dWRlKG9wdGlvbnMpICsgJywgJyArIHRoaXMubG9uZ2l0dWRlKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNvdW50cmllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwiY291bnRyaWVzXCIpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNvdW50cnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBjb3VudHJ5ID0gdGhpcy5waWNrKHRoaXMuY291bnRyaWVzKCkpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5mdWxsID8gY291bnRyeS5uYW1lIDogY291bnRyeS5hYmJyZXZpYXRpb247XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZGVwdGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2ZpeGVkOiA1LCBtaW46IC0yNTUwLCBtYXg6IDB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXRpbmcoe1xuICAgICAgICAgICAgbWluOiBvcHRpb25zLm1pbixcbiAgICAgICAgICAgIG1heDogb3B0aW9ucy5tYXgsXG4gICAgICAgICAgICBmaXhlZDogb3B0aW9ucy5maXhlZFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5nZW9oYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgbGVuZ3RoOiA3IH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmcoeyBsZW5ndGg6IG9wdGlvbnMubGVuZ3RoLCBwb29sOiAnMDEyMzQ1Njc4OWJjZGVmZ2hqa21ucHFyc3R1dnd4eXonIH0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmdlb2pzb24gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXRpdHVkZShvcHRpb25zKSArICcsICcgKyB0aGlzLmxvbmdpdHVkZShvcHRpb25zKSArICcsICcgKyB0aGlzLmFsdGl0dWRlKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmxhdGl0dWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtmaXhlZDogNSwgbWluOiAtOTAsIG1heDogOTB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXRpbmcoe21pbjogb3B0aW9ucy5taW4sIG1heDogb3B0aW9ucy5tYXgsIGZpeGVkOiBvcHRpb25zLmZpeGVkfSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubG9uZ2l0dWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtmaXhlZDogNSwgbWluOiAtMTgwLCBtYXg6IDE4MH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5mbG9hdGluZyh7bWluOiBvcHRpb25zLm1pbiwgbWF4OiBvcHRpb25zLm1heCwgZml4ZWQ6IG9wdGlvbnMuZml4ZWR9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5waG9uZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgICAgIG51bVBpY2ssXG4gICAgICAgICAgICB1a051bSA9IGZ1bmN0aW9uIChwYXJ0cykge1xuICAgICAgICAgICAgICAgIHZhciBzZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgLy9maWxscyB0aGUgc2VjdGlvbiBwYXJ0IG9mIHRoZSBwaG9uZSBudW1iZXIgd2l0aCByYW5kb20gbnVtYmVycy5cbiAgICAgICAgICAgICAgICBwYXJ0cy5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi5wdXNoKHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IG59KSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnRzLmFyZWEgKyBzZWN0aW9uLmpvaW4oJyAnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgICAgICBmb3JtYXR0ZWQ6IHRydWUsXG4gICAgICAgICAgICBjb3VudHJ5OiAndXMnLFxuICAgICAgICAgICAgbW9iaWxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFvcHRpb25zLmZvcm1hdHRlZCkge1xuICAgICAgICAgICAgb3B0aW9ucy5wYXJlbnMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGhvbmU7XG4gICAgICAgIHN3aXRjaCAob3B0aW9ucy5jb3VudHJ5KSB7XG4gICAgICAgICAgICBjYXNlICdmcic6XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLm1vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICBudW1QaWNrID0gdGhpcy5waWNrKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIHpvbmUgYW5kIGTDqXBhcnRlbWVudCBjb2Rlcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICcwMScgKyB0aGlzLnBpY2soWyczMCcsICczNCcsICczOScsICc0MCcsICc0MScsICc0MicsICc0MycsICc0NCcsICc0NScsICc0NicsICc0NycsICc0OCcsICc0OScsICc1MycsICc1NScsICc1NicsICc1OCcsICc2MCcsICc2NCcsICc2OScsICc3MCcsICc3MicsICc3MycsICc3NCcsICc3NScsICc3NicsICc3NycsICc3OCcsICc3OScsICc4MCcsICc4MScsICc4MicsICc4MyddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwMicgKyB0aGlzLnBpY2soWycxNCcsICcxOCcsICcyMicsICcyMycsICcyOCcsICcyOScsICczMCcsICczMScsICczMicsICczMycsICczNCcsICczNScsICczNicsICczNycsICczOCcsICc0MCcsICc0MScsICc0MycsICc0NCcsICc0NScsICc0NicsICc0NycsICc0OCcsICc0OScsICc1MCcsICc1MScsICc1MicsICc1MycsICc1NCcsICc1NicsICc1NycsICc2MScsICc2MicsICc2OScsICc3MicsICc3NicsICc3NycsICc3OCcsICc4NScsICc5MCcsICc5NicsICc5NycsICc5OCcsICc5OSddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwMycgKyB0aGlzLnBpY2soWycxMCcsICcyMCcsICcyMScsICcyMicsICcyMycsICcyNCcsICcyNScsICcyNicsICcyNycsICcyOCcsICcyOScsICczOScsICc0NCcsICc0NScsICc1MScsICc1MicsICc1NCcsICc1NScsICc1NycsICc1OCcsICc1OScsICc2MCcsICc2MScsICc2MicsICc2MycsICc2NCcsICc2NScsICc2NicsICc2NycsICc2OCcsICc2OScsICc3MCcsICc3MScsICc3MicsICc3MycsICc4MCcsICc4MScsICc4MicsICc4MycsICc4NCcsICc4NScsICc4NicsICc4NycsICc4OCcsICc4OScsICc5MCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwNCcgKyB0aGlzLnBpY2soWycxMScsICcxMycsICcxNScsICcyMCcsICcyMicsICcyNicsICcyNycsICczMCcsICczMicsICczNCcsICczNycsICc0MicsICc0MycsICc0NCcsICc1MCcsICc1NicsICc1NycsICc2MycsICc2NicsICc2NycsICc2OCcsICc2OScsICc3MCcsICc3MScsICc3MicsICc3MycsICc3NCcsICc3NScsICc3NicsICc3NycsICc3OCcsICc3OScsICc4MCcsICc4MScsICc4MicsICc4MycsICc4NCcsICc4NScsICc4NicsICc4OCcsICc4OScsICc5MCcsICc5MScsICc5MicsICc5MycsICc5NCcsICc5NScsICc5NycsICc5OCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwNScgKyB0aGlzLnBpY2soWycwOCcsICcxNicsICcxNycsICcxOScsICcyNCcsICczMScsICczMicsICczMycsICczNCcsICczNScsICc0MCcsICc0NScsICc0NicsICc0NycsICc0OScsICc1MycsICc1NScsICc1NicsICc1NycsICc1OCcsICc1OScsICc2MScsICc2MicsICc2MycsICc2NCcsICc2NScsICc2NycsICc3OScsICc4MScsICc4MicsICc4NicsICc4NycsICc5MCcsICc5NCddKSArIHNlbGYuc3RyaW5nKHsgcG9vbDogJzAxMjM0NTY3ODknLCBsZW5ndGg6IDZ9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcwOScgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA4fSksXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gbnVtUGljay5tYXRjaCgvLi4vZykuam9pbignICcpIDogbnVtUGljaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBudW1QaWNrID0gdGhpcy5waWNrKFsnMDYnLCAnMDcnXSkgKyBzZWxmLnN0cmluZyh7IHBvb2w6ICcwMTIzNDU2Nzg5JywgbGVuZ3RoOiA4fSk7XG4gICAgICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyBudW1QaWNrLm1hdGNoKC8uLi9nKS5qb2luKCcgJykgOiBudW1QaWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VrJzpcbiAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMubW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIG51bVBpY2sgPSB0aGlzLnBpY2soW1xuICAgICAgICAgICAgICAgICAgICAgICAgLy92YWxpZCBhcmVhIGNvZGVzIG9mIG1ham9yIGNpdGllcy9jb3VudGllcyBmb2xsb3dlZCBieSByYW5kb20gbnVtYmVycyBpbiByZXF1aXJlZCBmb3JtYXQuXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMScgKyB0aGlzLmNoYXJhY3Rlcih7IHBvb2w6ICcyMzQ1NjknIH0pICsgJzEgJywgc2VjdGlvbnM6IFszLDRdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMjAgJyArIHRoaXMuY2hhcmFjdGVyKHsgcG9vbDogJzM3OCcgfSksIHNlY3Rpb25zOiBbMyw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDIzICcgKyB0aGlzLmNoYXJhY3Rlcih7IHBvb2w6ICc4OScgfSksIHNlY3Rpb25zOiBbMyw0XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDI0IDcnLCBzZWN0aW9uczogWzMsNF0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAyOCAnICsgdGhpcy5waWNrKFsnMjUnLCcyOCcsJzM3JywnNzEnLCc4MicsJzkwJywnOTInLCc5NSddKSwgc2VjdGlvbnM6IFsyLDRdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTInICsgdGhpcy5waWNrKFsnMDQnLCcwOCcsJzU0JywnNzYnLCc5NycsJzk4J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTMnICsgdGhpcy5waWNrKFsnNjMnLCc2NCcsJzg0JywnODYnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNCcgKyB0aGlzLnBpY2soWycwNCcsJzIwJywnNjAnLCc2MScsJzgwJywnODgnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxNScgKyB0aGlzLnBpY2soWycyNCcsJzI3JywnNjInLCc2NiddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDE2JyArIHRoaXMucGljayhbJzA2JywnMjknLCczNScsJzQ3JywnNTknLCc5NSddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhcmVhOiAnMDE3JyArIHRoaXMucGljayhbJzI2JywnNDQnLCc1MCcsJzY4J10pICsgJyAnLCBzZWN0aW9uczogWzVdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwMTgnICsgdGhpcy5waWNrKFsnMjcnLCczNycsJzg0JywnOTcnXSkgKyAnICcsIHNlY3Rpb25zOiBbNV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXJlYTogJzAxOScgKyB0aGlzLnBpY2soWycwMCcsJzA1JywnMzUnLCc0NicsJzQ5JywnNjMnLCc5NSddKSArICcgJywgc2VjdGlvbnM6IFs1XSB9XG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICBwaG9uZSA9IG9wdGlvbnMuZm9ybWF0dGVkID8gdWtOdW0obnVtUGljaykgOiB1a051bShudW1QaWNrKS5yZXBsYWNlKCcgJywgJycsICdnJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtUGljayA9IHRoaXMucGljayhbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwNycgKyB0aGlzLnBpY2soWyc0JywnNScsJzcnLCc4JywnOSddKSwgc2VjdGlvbnM6IFsyLDZdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFyZWE6ICcwNzYyNCAnLCBzZWN0aW9uczogWzZdIH1cbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyB1a051bShudW1QaWNrKSA6IHVrTnVtKG51bVBpY2spLnJlcGxhY2UoJyAnLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXMnOlxuICAgICAgICAgICAgICAgIHZhciBhcmVhY29kZSA9IHRoaXMuYXJlYWNvZGUob3B0aW9ucykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB2YXIgZXhjaGFuZ2UgPSB0aGlzLm5hdHVyYWwoeyBtaW46IDIsIG1heDogOSB9KS50b1N0cmluZygpICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsKHsgbWluOiAwLCBtYXg6IDkgfSkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbCh7IG1pbjogMCwgbWF4OiA5IH0pLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgdmFyIHN1YnNjcmliZXIgPSB0aGlzLm5hdHVyYWwoeyBtaW46IDEwMDAsIG1heDogOTk5OSB9KS50b1N0cmluZygpOyAvLyB0aGlzIGNvdWxkIGJlIHJhbmRvbSBbMC05XXs0fVxuICAgICAgICAgICAgICAgIHBob25lID0gb3B0aW9ucy5mb3JtYXR0ZWQgPyBhcmVhY29kZSArICcgJyArIGV4Y2hhbmdlICsgJy0nICsgc3Vic2NyaWJlciA6IGFyZWFjb2RlICsgZXhjaGFuZ2UgKyBzdWJzY3JpYmVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwaG9uZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5wb3N0YWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIFBvc3RhbCBEaXN0cmljdFxuICAgICAgICB2YXIgcGQgPSB0aGlzLmNoYXJhY3Rlcih7cG9vbDogXCJYVlRTUlBOS0xNSEpHRUNCQVwifSk7XG4gICAgICAgIC8vIEZvcndhcmQgU29ydGF0aW9uIEFyZWEgKEZTQSlcbiAgICAgICAgdmFyIGZzYSA9IHBkICsgdGhpcy5uYXR1cmFsKHttYXg6IDl9KSArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KTtcbiAgICAgICAgLy8gTG9jYWwgRGVsaXZlcnkgVW51dCAoTERVKVxuICAgICAgICB2YXIgbGR1ID0gdGhpcy5uYXR1cmFsKHttYXg6IDl9KSArIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KSArIHRoaXMubmF0dXJhbCh7bWF4OiA5fSk7XG5cbiAgICAgICAgcmV0dXJuIGZzYSArIFwiIFwiICsgbGR1O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnByb3ZpbmNlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwicHJvdmluY2VzXCIpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnByb3ZpbmNlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIChvcHRpb25zICYmIG9wdGlvbnMuZnVsbCkgP1xuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMucHJvdmluY2VzKCkpLm5hbWUgOlxuICAgICAgICAgICAgdGhpcy5waWNrKHRoaXMucHJvdmluY2VzKCkpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdGF0ZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiAob3B0aW9ucyAmJiBvcHRpb25zLmZ1bGwpID9cbiAgICAgICAgICAgIHRoaXMucGljayh0aGlzLnN0YXRlcyhvcHRpb25zKSkubmFtZSA6XG4gICAgICAgICAgICB0aGlzLnBpY2sodGhpcy5zdGF0ZXMob3B0aW9ucykpLmFiYnJldmlhdGlvbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zdGF0ZXMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHN0YXRlcyxcbiAgICAgICAgICAgIHVzX3N0YXRlc19hbmRfZGMgPSB0aGlzLmdldChcInVzX3N0YXRlc19hbmRfZGNcIiksXG4gICAgICAgICAgICB0ZXJyaXRvcmllcyA9IHRoaXMuZ2V0KFwidGVycml0b3JpZXNcIiksXG4gICAgICAgICAgICBhcm1lZF9mb3JjZXMgPSB0aGlzLmdldChcImFybWVkX2ZvcmNlc1wiKTtcblxuICAgICAgICBzdGF0ZXMgPSB1c19zdGF0ZXNfYW5kX2RjO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnRlcnJpdG9yaWVzKSB7XG4gICAgICAgICAgICBzdGF0ZXMgPSBzdGF0ZXMuY29uY2F0KHRlcnJpdG9yaWVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hcm1lZF9mb3JjZXMpIHtcbiAgICAgICAgICAgIHN0YXRlcyA9IHN0YXRlcy5jb25jYXQoYXJtZWRfZm9yY2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZXM7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RyZWV0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBzdHJlZXQgPSB0aGlzLndvcmQoe3N5bGxhYmxlczogMn0pO1xuICAgICAgICBzdHJlZXQgPSB0aGlzLmNhcGl0YWxpemUoc3RyZWV0KTtcbiAgICAgICAgc3RyZWV0ICs9ICcgJztcbiAgICAgICAgc3RyZWV0ICs9IG9wdGlvbnMuc2hvcnRfc3VmZml4ID9cbiAgICAgICAgICAgIHRoaXMuc3RyZWV0X3N1ZmZpeCgpLmFiYnJldmlhdGlvbiA6XG4gICAgICAgICAgICB0aGlzLnN0cmVldF9zdWZmaXgoKS5uYW1lO1xuICAgICAgICByZXR1cm4gc3RyZWV0O1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnN0cmVldF9zdWZmaXggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy5zdHJlZXRfc3VmZml4ZXMoKSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuc3RyZWV0X3N1ZmZpeGVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIG1vc3QgY29tbW9uIHN1ZmZpeGVzLlxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoXCJzdHJlZXRfc3VmZml4ZXNcIik7XG4gICAgfTtcblxuICAgIC8vIE5vdGU6IG9ubHkgcmV0dXJuaW5nIFVTIHppcCBjb2RlcywgaW50ZXJuYXRpb25hbGl6YXRpb24gd2lsbCBiZSBhIHdob2xlXG4gICAgLy8gb3RoZXIgYmVhc3QgdG8gdGFja2xlIGF0IHNvbWUgcG9pbnQuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS56aXAgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgemlwID0gdGhpcy5uKHRoaXMubmF0dXJhbCwgNSwge21heDogOX0pO1xuXG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucGx1c2ZvdXIgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHppcC5wdXNoKCctJyk7XG4gICAgICAgICAgICB6aXAgPSB6aXAuY29uY2F0KHRoaXMubih0aGlzLm5hdHVyYWwsIDQsIHttYXg6IDl9KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gemlwLmpvaW4oXCJcIik7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBMb2NhdGlvbiAtLVxuXG4gICAgLy8gLS0gVGltZVxuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5hbXBtID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ib29sKCkgPyAnYW0nIDogJ3BtJztcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGRhdGVfc3RyaW5nLCBkYXRlO1xuXG4gICAgICAgIC8vIElmIGludGVydmFsIGlzIHNwZWNpZmllZCB3ZSBpZ25vcmUgcHJlc2V0XG4gICAgICAgIGlmKG9wdGlvbnMgJiYgKG9wdGlvbnMubWluIHx8IG9wdGlvbnMubWF4KSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBhbWVyaWNhbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdHJpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBtaW4gPSB0eXBlb2Ygb3B0aW9ucy5taW4gIT09IFwidW5kZWZpbmVkXCIgPyBvcHRpb25zLm1pbi5nZXRUaW1lKCkgOiAxO1xuICAgICAgICAgICAgLy8gMTAwLDAwMCwwMDAgZGF5cyBtZWFzdXJlZCByZWxhdGl2ZSB0byBtaWRuaWdodCBhdCB0aGUgYmVnaW5uaW5nIG9mIDAxIEphbnVhcnksIDE5NzAgVVRDLiBodHRwOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjkuMS4xXG4gICAgICAgICAgICB2YXIgbWF4ID0gdHlwZW9mIG9wdGlvbnMubWF4ICE9PSBcInVuZGVmaW5lZFwiID8gb3B0aW9ucy5tYXguZ2V0VGltZSgpIDogODY0MDAwMDAwMDAwMDAwMDtcblxuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKHRoaXMubmF0dXJhbCh7bWluOiBtaW4sIG1heDogbWF4fSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIG0gPSB0aGlzLm1vbnRoKHtyYXc6IHRydWV9KTtcbiAgICAgICAgICAgIHZhciBkYXlzSW5Nb250aCA9IG0uZGF5cztcblxuICAgICAgICAgICAgaWYob3B0aW9ucyAmJiBvcHRpb25zLm1vbnRoKSB7XG4gICAgICAgICAgICAgICAgLy8gTW9kIDEyIHRvIGFsbG93IG1vbnRocyBvdXRzaWRlIHJhbmdlIG9mIDAtMTEgKG5vdCBlbmNvdXJhZ2VkLCBidXQgYWxzbyBub3QgcHJldmVudGVkKS5cbiAgICAgICAgICAgICAgICBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0KCdtb250aHMnKVsoKG9wdGlvbnMubW9udGggJSAxMikgKyAxMikgJSAxMl0uZGF5cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICB5ZWFyOiBwYXJzZUludCh0aGlzLnllYXIoKSwgMTApLFxuICAgICAgICAgICAgICAgIC8vIE5lY2Vzc2FyeSB0byBzdWJ0cmFjdCAxIGJlY2F1c2UgRGF0ZSgpIDAtaW5kZXhlcyBtb250aCBidXQgbm90IGRheSBvciB5ZWFyXG4gICAgICAgICAgICAgICAgLy8gZm9yIHNvbWUgcmVhc29uLlxuICAgICAgICAgICAgICAgIG1vbnRoOiBtLm51bWVyaWMgLSAxLFxuICAgICAgICAgICAgICAgIGRheTogdGhpcy5uYXR1cmFsKHttaW46IDEsIG1heDogZGF5c0luTW9udGh9KSxcbiAgICAgICAgICAgICAgICBob3VyOiB0aGlzLmhvdXIoKSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMubWludXRlKCksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiB0aGlzLnNlY29uZCgpLFxuICAgICAgICAgICAgICAgIG1pbGxpc2Vjb25kOiB0aGlzLm1pbGxpc2Vjb25kKCksXG4gICAgICAgICAgICAgICAgYW1lcmljYW46IHRydWUsXG4gICAgICAgICAgICAgICAgc3RyaW5nOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShvcHRpb25zLnllYXIsIG9wdGlvbnMubW9udGgsIG9wdGlvbnMuZGF5LCBvcHRpb25zLmhvdXIsIG9wdGlvbnMubWludXRlLCBvcHRpb25zLnNlY29uZCwgb3B0aW9ucy5taWxsaXNlY29uZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5hbWVyaWNhbikge1xuICAgICAgICAgICAgLy8gQWRkaW5nIDEgdG8gdGhlIG1vbnRoIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIERhdGUoKSAwLWluZGV4ZXNcbiAgICAgICAgICAgIC8vIG1vbnRocyBidXQgbm90IGRheSBmb3Igc29tZSBvZGQgcmVhc29uLlxuICAgICAgICAgICAgZGF0ZV9zdHJpbmcgPSAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLycgKyBkYXRlLmdldERhdGUoKSArICcvJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGVfc3RyaW5nID0gZGF0ZS5nZXREYXRlKCkgKyAnLycgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLycgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5zdHJpbmcgPyBkYXRlX3N0cmluZyA6IGRhdGU7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuaGFtbWVydGltZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUob3B0aW9ucykuZ2V0VGltZSgpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmhvdXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMSwgbWF4OiBvcHRpb25zICYmIG9wdGlvbnMudHdlbnR5Zm91ciA/IDI0IDogMTJ9KTtcblxuICAgICAgICB0ZXN0UmFuZ2Uob3B0aW9ucy5taW4gPCAxLCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBsZXNzIHRoYW4gMS5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLnR3ZW50eWZvdXIgJiYgb3B0aW9ucy5tYXggPiAyNCwgXCJDaGFuY2U6IE1heCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDI0IGZvciB0d2VudHlmb3VyIG9wdGlvbi5cIik7XG4gICAgICAgIHRlc3RSYW5nZSghb3B0aW9ucy50d2VudHlmb3VyICYmIG9wdGlvbnMubWF4ID4gMTIsIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMi5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubWlsbGlzZWNvbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21heDogOTk5fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubWludXRlID0gQ2hhbmNlLnByb3RvdHlwZS5zZWNvbmQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMCwgbWF4OiA1OX0pO1xuXG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA8IDAsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGxlc3MgdGhhbiAwLlwiKTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWF4ID4gNTksIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiA1OS5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4fSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubW9udGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge21pbjogMSwgbWF4OiAxMn0pO1xuXG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA8IDEsIFwiQ2hhbmNlOiBNaW4gY2Fubm90IGJlIGxlc3MgdGhhbiAxLlwiKTtcbiAgICAgICAgdGVzdFJhbmdlKG9wdGlvbnMubWF4ID4gMTIsIFwiQ2hhbmNlOiBNYXggY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMi5cIik7XG4gICAgICAgIHRlc3RSYW5nZShvcHRpb25zLm1pbiA+IG9wdGlvbnMubWF4LCBcIkNoYW5jZTogTWluIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gTWF4LlwiKTtcblxuICAgICAgICB2YXIgbW9udGggPSB0aGlzLnBpY2sodGhpcy5tb250aHMoKS5zbGljZShvcHRpb25zLm1pbiAtIDEsIG9wdGlvbnMubWF4KSk7XG4gICAgICAgIHJldHVybiBvcHRpb25zLnJhdyA/IG1vbnRoIDogbW9udGgubmFtZTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5tb250aHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcIm1vbnRoc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5zZWNvbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21heDogNTl9KTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS50aW1lc3RhbXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiBwYXJzZUludChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAsIDEwKX0pO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLnllYXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgeWVhciBhcyBtaW4gaWYgbm9uZSBzcGVjaWZpZWRcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttaW46IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0pO1xuXG4gICAgICAgIC8vIERlZmF1bHQgdG8gb25lIGNlbnR1cnkgYWZ0ZXIgY3VycmVudCB5ZWFyIGFzIG1heCBpZiBub25lIHNwZWNpZmllZFxuICAgICAgICBvcHRpb25zLm1heCA9ICh0eXBlb2Ygb3B0aW9ucy5tYXggIT09IFwidW5kZWZpbmVkXCIpID8gb3B0aW9ucy5tYXggOiBvcHRpb25zLm1pbiArIDEwMDtcblxuICAgICAgICByZXR1cm4gdGhpcy5uYXR1cmFsKG9wdGlvbnMpLnRvU3RyaW5nKCk7XG4gICAgfTtcblxuICAgIC8vIC0tIEVuZCBUaW1lXG5cbiAgICAvLyAtLSBGaW5hbmNlIC0tXG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmNjID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciB0eXBlLCBudW1iZXIsIHRvX2dlbmVyYXRlO1xuXG4gICAgICAgIHR5cGUgPSAob3B0aW9ucy50eXBlKSA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2NfdHlwZSh7IG5hbWU6IG9wdGlvbnMudHlwZSwgcmF3OiB0cnVlIH0pIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jY190eXBlKHsgcmF3OiB0cnVlIH0pO1xuXG4gICAgICAgIG51bWJlciA9IHR5cGUucHJlZml4LnNwbGl0KFwiXCIpO1xuICAgICAgICB0b19nZW5lcmF0ZSA9IHR5cGUubGVuZ3RoIC0gdHlwZS5wcmVmaXgubGVuZ3RoIC0gMTtcblxuICAgICAgICAvLyBHZW5lcmF0ZXMgbiAtIDEgZGlnaXRzXG4gICAgICAgIG51bWJlciA9IG51bWJlci5jb25jYXQodGhpcy5uKHRoaXMuaW50ZWdlciwgdG9fZ2VuZXJhdGUsIHttaW46IDAsIG1heDogOX0pKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZXMgdGhlIGxhc3QgZGlnaXQgYWNjb3JkaW5nIHRvIEx1aG4gYWxnb3JpdGhtXG4gICAgICAgIG51bWJlci5wdXNoKHRoaXMubHVobl9jYWxjdWxhdGUobnVtYmVyLmpvaW4oXCJcIikpKTtcblxuICAgICAgICByZXR1cm4gbnVtYmVyLmpvaW4oXCJcIik7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuY2NfdHlwZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFua19jYXJkX251bWJlciNJc3N1ZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyXy4yOElJTi4yOVxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoXCJjY190eXBlc1wiKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jY190eXBlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgdHlwZXMgPSB0aGlzLmNjX3R5cGVzKCksXG4gICAgICAgICAgICB0eXBlID0gbnVsbDtcblxuICAgICAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgLy8gQWNjZXB0IGVpdGhlciBuYW1lIG9yIHNob3J0X25hbWUgdG8gc3BlY2lmeSBjYXJkIHR5cGVcbiAgICAgICAgICAgICAgICBpZiAodHlwZXNbaV0ubmFtZSA9PT0gb3B0aW9ucy5uYW1lIHx8IHR5cGVzW2ldLnNob3J0X25hbWUgPT09IG9wdGlvbnMubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0eXBlID0gdHlwZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDcmVkaXQgY2FyZCB0eXBlICdcIiArIG9wdGlvbnMubmFtZSArIFwiJycgaXMgbm90IHN1cHBvcnRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHR5cGUgPSB0aGlzLnBpY2sodHlwZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucmF3ID8gdHlwZSA6IHR5cGUubmFtZTtcbiAgICB9O1xuXG4gICAgLy9yZXR1cm4gYWxsIHdvcmxkIGN1cnJlbmN5IGJ5IElTTyA0MjE3XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jdXJyZW5jeV90eXBlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KFwiY3VycmVuY3lfdHlwZXNcIik7XG4gICAgfTtcblxuICAgIC8vcmV0dXJuIHJhbmRvbSB3b3JsZCBjdXJyZW5jeSBieSBJU08gNDIxN1xuICAgIENoYW5jZS5wcm90b3R5cGUuY3VycmVuY3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2sodGhpcy5jdXJyZW5jeV90eXBlcygpKTtcbiAgICB9O1xuXG4gICAgLy9SZXR1cm4gcmFuZG9tIGNvcnJlY3QgY3VycmVuY3kgZXhjaGFuZ2UgcGFpciAoZS5nLiBFVVIvVVNEKSBvciBhcnJheSBvZiBjdXJyZW5jeSBjb2RlXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5jdXJyZW5jeV9wYWlyID0gZnVuY3Rpb24gKHJldHVybkFzU3RyaW5nKSB7XG4gICAgICAgIHZhciBjdXJyZW5jaWVzID0gdGhpcy51bmlxdWUodGhpcy5jdXJyZW5jeSwgMiwge1xuICAgICAgICAgICAgY29tcGFyYXRvcjogZnVuY3Rpb24oYXJyLCB2YWwpIHtcblxuICAgICAgICAgICAgICAgIHJldHVybiBhcnIucmVkdWNlKGZ1bmN0aW9uKGFjYywgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiBhIG1hdGNoIGhhcyBiZWVuIGZvdW5kLCBzaG9ydCBjaXJjdWl0IGNoZWNrIGFuZCBqdXN0IHJldHVyblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjIHx8IChpdGVtLmNvZGUgPT09IHZhbC5jb2RlKTtcbiAgICAgICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXR1cm5Bc1N0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbmNpZXNbMF0uY29kZSArICcvJyArIGN1cnJlbmNpZXNbMV0uY29kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW5jaWVzO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZG9sbGFyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgLy8gQnkgZGVmYXVsdCwgYSBzb21ld2hhdCBtb3JlIHNhbmUgbWF4IGZvciBkb2xsYXIgdGhhbiBhbGwgYXZhaWxhYmxlIG51bWJlcnNcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttYXggOiAxMDAwMCwgbWluIDogMH0pO1xuXG4gICAgICAgIHZhciBkb2xsYXIgPSB0aGlzLmZsb2F0aW5nKHttaW46IG9wdGlvbnMubWluLCBtYXg6IG9wdGlvbnMubWF4LCBmaXhlZDogMn0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBjZW50cyA9IGRvbGxhci5zcGxpdCgnLicpWzFdO1xuXG4gICAgICAgIGlmIChjZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2xsYXIgKz0gJy4wMCc7XG4gICAgICAgIH0gZWxzZSBpZiAoY2VudHMubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgZG9sbGFyID0gZG9sbGFyICsgJzAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRvbGxhciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnLSQnICsgZG9sbGFyLnJlcGxhY2UoJy0nLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyQnICsgZG9sbGFyO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZXhwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgZXhwID0ge307XG5cbiAgICAgICAgZXhwLnllYXIgPSB0aGlzLmV4cF95ZWFyKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIHllYXIgaXMgdGhpcyB5ZWFyLCBuZWVkIHRvIGVuc3VyZSBtb250aCBpcyBncmVhdGVyIHRoYW4gdGhlXG4gICAgICAgIC8vIGN1cnJlbnQgbW9udGggb3IgdGhpcyBleHBpcmF0aW9uIHdpbGwgbm90IGJlIHZhbGlkXG4gICAgICAgIGlmIChleHAueWVhciA9PT0gKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgIGV4cC5tb250aCA9IHRoaXMuZXhwX21vbnRoKHtmdXR1cmU6IHRydWV9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cC5tb250aCA9IHRoaXMuZXhwX21vbnRoKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5yYXcgPyBleHAgOiBleHAubW9udGggKyAnLycgKyBleHAueWVhcjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5leHBfbW9udGggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHZhciBtb250aCwgbW9udGhfaW50LFxuICAgICAgICAgICAgY3VyTW9udGggPSBuZXcgRGF0ZSgpLmdldE1vbnRoKCk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZnV0dXJlKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgbW9udGggPSB0aGlzLm1vbnRoKHtyYXc6IHRydWV9KS5udW1lcmljO1xuICAgICAgICAgICAgICAgIG1vbnRoX2ludCA9IHBhcnNlSW50KG1vbnRoLCAxMCk7XG4gICAgICAgICAgICB9IHdoaWxlIChtb250aF9pbnQgPCBjdXJNb250aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtb250aCA9IHRoaXMubW9udGgoe3JhdzogdHJ1ZX0pLm51bWVyaWM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9udGg7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUuZXhwX3llYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIoe21heDogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICsgMTB9KTtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIEZpbmFuY2VcblxuICAgIC8vIC0tIE1pc2NlbGxhbmVvdXMgLS1cblxuICAgIC8vIERpY2UgLSBGb3IgYWxsIHRoZSBib2FyZCBnYW1lIGdlZWtzIG91dCB0aGVyZSwgbXlzZWxmIGluY2x1ZGVkIDspXG4gICAgZnVuY3Rpb24gZGljZUZuIChyYW5nZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0dXJhbChyYW5nZSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIENoYW5jZS5wcm90b3R5cGUuZDQgPSBkaWNlRm4oe21pbjogMSwgbWF4OiA0fSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kNiA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDZ9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQ4ID0gZGljZUZuKHttaW46IDEsIG1heDogOH0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDEwID0gZGljZUZuKHttaW46IDEsIG1heDogMTB9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQxMiA9IGRpY2VGbih7bWluOiAxLCBtYXg6IDEyfSk7XG4gICAgQ2hhbmNlLnByb3RvdHlwZS5kMjAgPSBkaWNlRm4oe21pbjogMSwgbWF4OiAyMH0pO1xuICAgIENoYW5jZS5wcm90b3R5cGUuZDMwID0gZGljZUZuKHttaW46IDEsIG1heDogMzB9KTtcbiAgICBDaGFuY2UucHJvdG90eXBlLmQxMDAgPSBkaWNlRm4oe21pbjogMSwgbWF4OiAxMDB9KTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUucnBnID0gZnVuY3Rpb24gKHRocm93biwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIGlmICghdGhyb3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkEgdHlwZSBvZiBkaWUgcm9sbCBtdXN0IGJlIGluY2x1ZGVkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGJpdHMgPSB0aHJvd24udG9Mb3dlckNhc2UoKS5zcGxpdChcImRcIiksXG4gICAgICAgICAgICAgICAgcm9sbHMgPSBbXTtcblxuICAgICAgICAgICAgaWYgKGJpdHMubGVuZ3RoICE9PSAyIHx8ICFwYXJzZUludChiaXRzWzBdLCAxMCkgfHwgIXBhcnNlSW50KGJpdHNbMV0sIDEwKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZm9ybWF0IHByb3ZpZGVkLiBQbGVhc2UgcHJvdmlkZSAjZCMgd2hlcmUgdGhlIGZpcnN0ICMgaXMgdGhlIG51bWJlciBvZiBkaWNlIHRvIHJvbGwsIHRoZSBzZWNvbmQgIyBpcyB0aGUgbWF4IG9mIGVhY2ggZGllXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGJpdHNbMF07IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICByb2xsc1tpIC0gMV0gPSB0aGlzLm5hdHVyYWwoe21pbjogMSwgbWF4OiBiaXRzWzFdfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHR5cGVvZiBvcHRpb25zLnN1bSAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucy5zdW0pID8gcm9sbHMucmVkdWNlKGZ1bmN0aW9uIChwLCBjKSB7IHJldHVybiBwICsgYzsgfSkgOiByb2xscztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBHdWlkXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5ndWlkID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHsgdmVyc2lvbjogNSB9KTtcblxuICAgICAgICB2YXIgZ3VpZF9wb29sID0gXCJhYmNkZWYxMjM0NTY3ODkwXCIsXG4gICAgICAgICAgICB2YXJpYW50X3Bvb2wgPSBcImFiODlcIixcbiAgICAgICAgICAgIGd1aWQgPSB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiA4IH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiA0IH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICAvLyBUaGUgVmVyc2lvblxuICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudmVyc2lvbiArXG4gICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoeyBwb29sOiBndWlkX3Bvb2wsIGxlbmd0aDogMyB9KSArICctJyArXG4gICAgICAgICAgICAgICAgICAgLy8gVGhlIFZhcmlhbnRcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IHZhcmlhbnRfcG9vbCwgbGVuZ3RoOiAxIH0pICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiAzIH0pICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZyh7IHBvb2w6IGd1aWRfcG9vbCwgbGVuZ3RoOiAxMiB9KTtcbiAgICAgICAgcmV0dXJuIGd1aWQ7XG4gICAgfTtcblxuICAgIC8vIEhhc2hcbiAgICBDaGFuY2UucHJvdG90eXBlLmhhc2ggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge2xlbmd0aCA6IDQwLCBjYXNpbmc6ICdsb3dlcid9KTtcbiAgICAgICAgdmFyIHBvb2wgPSBvcHRpb25zLmNhc2luZyA9PT0gJ3VwcGVyJyA/IEhFWF9QT09MLnRvVXBwZXJDYXNlKCkgOiBIRVhfUE9PTDtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nKHtwb29sOiBwb29sLCBsZW5ndGg6IG9wdGlvbnMubGVuZ3RofSk7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubHVobl9jaGVjayA9IGZ1bmN0aW9uIChudW0pIHtcbiAgICAgICAgdmFyIHN0ciA9IG51bS50b1N0cmluZygpO1xuICAgICAgICB2YXIgY2hlY2tEaWdpdCA9ICtzdHIuc3Vic3RyaW5nKHN0ci5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrRGlnaXQgPT09IHRoaXMubHVobl9jYWxjdWxhdGUoK3N0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aCAtIDEpKTtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5sdWhuX2NhbGN1bGF0ZSA9IGZ1bmN0aW9uIChudW0pIHtcbiAgICAgICAgdmFyIGRpZ2l0cyA9IG51bS50b1N0cmluZygpLnNwbGl0KFwiXCIpLnJldmVyc2UoKTtcbiAgICAgICAgdmFyIHN1bSA9IDA7XG4gICAgICAgIHZhciBkaWdpdDtcblxuICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGRpZ2l0cy5sZW5ndGg7IGwgPiBpOyArK2kpIHtcbiAgICAgICAgICAgIGRpZ2l0ID0gK2RpZ2l0c1tpXTtcbiAgICAgICAgICAgIGlmIChpICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGRpZ2l0ICo9IDI7XG4gICAgICAgICAgICAgICAgaWYgKGRpZ2l0ID4gOSkge1xuICAgICAgICAgICAgICAgICAgICBkaWdpdCAtPSA5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1bSArPSBkaWdpdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHN1bSAqIDkpICUgMTA7XG4gICAgfTtcblxuICAgIC8vIE1ENSBIYXNoXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5tZDUgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBvcHRzID0geyBzdHI6ICcnLCBrZXk6IG51bGwsIHJhdzogZmFsc2UgfTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIG9wdHMuc3RyID0gdGhpcy5zdHJpbmcoKTtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIG9wdHMuc3RyID0gb3B0aW9ucztcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYob3B0aW9ucy5jb25zdHJ1Y3RvciA9PT0gJ0FycmF5Jykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRzID0gaW5pdE9wdGlvbnMob3B0aW9ucywgb3B0cyk7XG5cbiAgICAgICAgaWYoIW9wdHMuc3RyKXtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gcmV0dXJuIGFuIG1kNSBoYXNoLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYmltZDUubWQ1KG9wdHMuc3RyLCBvcHRzLmtleSwgb3B0cy5yYXcpO1xuICAgIH07XG5cbiAgICB2YXIgZGF0YSA9IHtcblxuICAgICAgICBmaXJzdE5hbWVzOiB7XG4gICAgICAgICAgICBcIm1hbGVcIjogW1wiSmFtZXNcIiwgXCJKb2huXCIsIFwiUm9iZXJ0XCIsIFwiTWljaGFlbFwiLCBcIldpbGxpYW1cIiwgXCJEYXZpZFwiLCBcIlJpY2hhcmRcIiwgXCJKb3NlcGhcIiwgXCJDaGFybGVzXCIsIFwiVGhvbWFzXCIsIFwiQ2hyaXN0b3BoZXJcIiwgXCJEYW5pZWxcIiwgXCJNYXR0aGV3XCIsIFwiR2VvcmdlXCIsIFwiRG9uYWxkXCIsIFwiQW50aG9ueVwiLCBcIlBhdWxcIiwgXCJNYXJrXCIsIFwiRWR3YXJkXCIsIFwiU3RldmVuXCIsIFwiS2VubmV0aFwiLCBcIkFuZHJld1wiLCBcIkJyaWFuXCIsIFwiSm9zaHVhXCIsIFwiS2V2aW5cIiwgXCJSb25hbGRcIiwgXCJUaW1vdGh5XCIsIFwiSmFzb25cIiwgXCJKZWZmcmV5XCIsIFwiRnJhbmtcIiwgXCJHYXJ5XCIsIFwiUnlhblwiLCBcIk5pY2hvbGFzXCIsIFwiRXJpY1wiLCBcIlN0ZXBoZW5cIiwgXCJKYWNvYlwiLCBcIkxhcnJ5XCIsIFwiSm9uYXRoYW5cIiwgXCJTY290dFwiLCBcIlJheW1vbmRcIiwgXCJKdXN0aW5cIiwgXCJCcmFuZG9uXCIsIFwiR3JlZ29yeVwiLCBcIlNhbXVlbFwiLCBcIkJlbmphbWluXCIsIFwiUGF0cmlja1wiLCBcIkphY2tcIiwgXCJIZW5yeVwiLCBcIldhbHRlclwiLCBcIkRlbm5pc1wiLCBcIkplcnJ5XCIsIFwiQWxleGFuZGVyXCIsIFwiUGV0ZXJcIiwgXCJUeWxlclwiLCBcIkRvdWdsYXNcIiwgXCJIYXJvbGRcIiwgXCJBYXJvblwiLCBcIkpvc2VcIiwgXCJBZGFtXCIsIFwiQXJ0aHVyXCIsIFwiWmFjaGFyeVwiLCBcIkNhcmxcIiwgXCJOYXRoYW5cIiwgXCJBbGJlcnRcIiwgXCJLeWxlXCIsIFwiTGF3cmVuY2VcIiwgXCJKb2VcIiwgXCJXaWxsaWVcIiwgXCJHZXJhbGRcIiwgXCJSb2dlclwiLCBcIktlaXRoXCIsIFwiSmVyZW15XCIsIFwiVGVycnlcIiwgXCJIYXJyeVwiLCBcIlJhbHBoXCIsIFwiU2VhblwiLCBcIkplc3NlXCIsIFwiUm95XCIsIFwiTG91aXNcIiwgXCJCaWxseVwiLCBcIkF1c3RpblwiLCBcIkJydWNlXCIsIFwiRXVnZW5lXCIsIFwiQ2hyaXN0aWFuXCIsIFwiQnJ5YW5cIiwgXCJXYXluZVwiLCBcIlJ1c3NlbGxcIiwgXCJIb3dhcmRcIiwgXCJGcmVkXCIsIFwiRXRoYW5cIiwgXCJKb3JkYW5cIiwgXCJQaGlsaXBcIiwgXCJBbGFuXCIsIFwiSnVhblwiLCBcIlJhbmR5XCIsIFwiVmluY2VudFwiLCBcIkJvYmJ5XCIsIFwiRHlsYW5cIiwgXCJKb2hubnlcIiwgXCJQaGlsbGlwXCIsIFwiVmljdG9yXCIsIFwiQ2xhcmVuY2VcIiwgXCJFcm5lc3RcIiwgXCJNYXJ0aW5cIiwgXCJDcmFpZ1wiLCBcIlN0YW5sZXlcIiwgXCJTaGF3blwiLCBcIlRyYXZpc1wiLCBcIkJyYWRsZXlcIiwgXCJMZW9uYXJkXCIsIFwiRWFybFwiLCBcIkdhYnJpZWxcIiwgXCJKaW1teVwiLCBcIkZyYW5jaXNcIiwgXCJUb2RkXCIsIFwiTm9haFwiLCBcIkRhbm55XCIsIFwiRGFsZVwiLCBcIkNvZHlcIiwgXCJDYXJsb3NcIiwgXCJBbGxlblwiLCBcIkZyZWRlcmlja1wiLCBcIkxvZ2FuXCIsIFwiQ3VydGlzXCIsIFwiQWxleFwiLCBcIkpvZWxcIiwgXCJMdWlzXCIsIFwiTm9ybWFuXCIsIFwiTWFydmluXCIsIFwiR2xlbm5cIiwgXCJUb255XCIsIFwiTmF0aGFuaWVsXCIsIFwiUm9kbmV5XCIsIFwiTWVsdmluXCIsIFwiQWxmcmVkXCIsIFwiU3RldmVcIiwgXCJDYW1lcm9uXCIsIFwiQ2hhZFwiLCBcIkVkd2luXCIsIFwiQ2FsZWJcIiwgXCJFdmFuXCIsIFwiQW50b25pb1wiLCBcIkxlZVwiLCBcIkhlcmJlcnRcIiwgXCJKZWZmZXJ5XCIsIFwiSXNhYWNcIiwgXCJEZXJla1wiLCBcIlJpY2t5XCIsIFwiTWFyY3VzXCIsIFwiVGhlb2RvcmVcIiwgXCJFbGlqYWhcIiwgXCJMdWtlXCIsIFwiSmVzdXNcIiwgXCJFZGRpZVwiLCBcIlRyb3lcIiwgXCJNaWtlXCIsIFwiRHVzdGluXCIsIFwiUmF5XCIsIFwiQWRyaWFuXCIsIFwiQmVybmFyZFwiLCBcIkxlcm95XCIsIFwiQW5nZWxcIiwgXCJSYW5kYWxsXCIsIFwiV2VzbGV5XCIsIFwiSWFuXCIsIFwiSmFyZWRcIiwgXCJNYXNvblwiLCBcIkh1bnRlclwiLCBcIkNhbHZpblwiLCBcIk9zY2FyXCIsIFwiQ2xpZmZvcmRcIiwgXCJKYXlcIiwgXCJTaGFuZVwiLCBcIlJvbm5pZVwiLCBcIkJhcnJ5XCIsIFwiTHVjYXNcIiwgXCJDb3JleVwiLCBcIk1hbnVlbFwiLCBcIkxlb1wiLCBcIlRvbW15XCIsIFwiV2FycmVuXCIsIFwiSmFja3NvblwiLCBcIklzYWlhaFwiLCBcIkNvbm5vclwiLCBcIkRvblwiLCBcIkRlYW5cIiwgXCJKb25cIiwgXCJKdWxpYW5cIiwgXCJNaWd1ZWxcIiwgXCJCaWxsXCIsIFwiTGxveWRcIiwgXCJDaGFybGllXCIsIFwiTWl0Y2hlbGxcIiwgXCJMZW9uXCIsIFwiSmVyb21lXCIsIFwiRGFycmVsbFwiLCBcIkplcmVtaWFoXCIsIFwiQWx2aW5cIiwgXCJCcmV0dFwiLCBcIlNldGhcIiwgXCJGbG95ZFwiLCBcIkppbVwiLCBcIkJsYWtlXCIsIFwiTWljaGVhbFwiLCBcIkdvcmRvblwiLCBcIlRyZXZvclwiLCBcIkxld2lzXCIsIFwiRXJpa1wiLCBcIkVkZ2FyXCIsIFwiVmVybm9uXCIsIFwiRGV2aW5cIiwgXCJHYXZpblwiLCBcIkpheWRlblwiLCBcIkNocmlzXCIsIFwiQ2x5ZGVcIiwgXCJUb21cIiwgXCJEZXJyaWNrXCIsIFwiTWFyaW9cIiwgXCJCcmVudFwiLCBcIk1hcmNcIiwgXCJIZXJtYW5cIiwgXCJDaGFzZVwiLCBcIkRvbWluaWNcIiwgXCJSaWNhcmRvXCIsIFwiRnJhbmtsaW5cIiwgXCJNYXVyaWNlXCIsIFwiTWF4XCIsIFwiQWlkZW5cIiwgXCJPd2VuXCIsIFwiTGVzdGVyXCIsIFwiR2lsYmVydFwiLCBcIkVsbWVyXCIsIFwiR2VuZVwiLCBcIkZyYW5jaXNjb1wiLCBcIkdsZW5cIiwgXCJDb3J5XCIsIFwiR2FycmV0dFwiLCBcIkNsYXl0b25cIiwgXCJTYW1cIiwgXCJKb3JnZVwiLCBcIkNoZXN0ZXJcIiwgXCJBbGVqYW5kcm9cIiwgXCJKZWZmXCIsIFwiSGFydmV5XCIsIFwiTWlsdG9uXCIsIFwiQ29sZVwiLCBcIkl2YW5cIiwgXCJBbmRyZVwiLCBcIkR1YW5lXCIsIFwiTGFuZG9uXCJdLFxuICAgICAgICAgICAgXCJmZW1hbGVcIjogW1wiTWFyeVwiLCBcIkVtbWFcIiwgXCJFbGl6YWJldGhcIiwgXCJNaW5uaWVcIiwgXCJNYXJnYXJldFwiLCBcIklkYVwiLCBcIkFsaWNlXCIsIFwiQmVydGhhXCIsIFwiU2FyYWhcIiwgXCJBbm5pZVwiLCBcIkNsYXJhXCIsIFwiRWxsYVwiLCBcIkZsb3JlbmNlXCIsIFwiQ29yYVwiLCBcIk1hcnRoYVwiLCBcIkxhdXJhXCIsIFwiTmVsbGllXCIsIFwiR3JhY2VcIiwgXCJDYXJyaWVcIiwgXCJNYXVkZVwiLCBcIk1hYmVsXCIsIFwiQmVzc2llXCIsIFwiSmVubmllXCIsIFwiR2VydHJ1ZGVcIiwgXCJKdWxpYVwiLCBcIkhhdHRpZVwiLCBcIkVkaXRoXCIsIFwiTWF0dGllXCIsIFwiUm9zZVwiLCBcIkNhdGhlcmluZVwiLCBcIkxpbGxpYW5cIiwgXCJBZGFcIiwgXCJMaWxsaWVcIiwgXCJIZWxlblwiLCBcIkplc3NpZVwiLCBcIkxvdWlzZVwiLCBcIkV0aGVsXCIsIFwiTHVsYVwiLCBcIk15cnRsZVwiLCBcIkV2YVwiLCBcIkZyYW5jZXNcIiwgXCJMZW5hXCIsIFwiTHVjeVwiLCBcIkVkbmFcIiwgXCJNYWdnaWVcIiwgXCJQZWFybFwiLCBcIkRhaXN5XCIsIFwiRmFubmllXCIsIFwiSm9zZXBoaW5lXCIsIFwiRG9yYVwiLCBcIlJvc2FcIiwgXCJLYXRoZXJpbmVcIiwgXCJBZ25lc1wiLCBcIk1hcmllXCIsIFwiTm9yYVwiLCBcIk1heVwiLCBcIk1hbWllXCIsIFwiQmxhbmNoZVwiLCBcIlN0ZWxsYVwiLCBcIkVsbGVuXCIsIFwiTmFuY3lcIiwgXCJFZmZpZVwiLCBcIlNhbGxpZVwiLCBcIk5ldHRpZVwiLCBcIkRlbGxhXCIsIFwiTGl6emllXCIsIFwiRmxvcmFcIiwgXCJTdXNpZVwiLCBcIk1hdWRcIiwgXCJNYWVcIiwgXCJFdHRhXCIsIFwiSGFycmlldFwiLCBcIlNhZGllXCIsIFwiQ2Fyb2xpbmVcIiwgXCJLYXRpZVwiLCBcIkx5ZGlhXCIsIFwiRWxzaWVcIiwgXCJLYXRlXCIsIFwiU3VzYW5cIiwgXCJNb2xsaWVcIiwgXCJBbG1hXCIsIFwiQWRkaWVcIiwgXCJHZW9yZ2lhXCIsIFwiRWxpemFcIiwgXCJMdWx1XCIsIFwiTmFubmllXCIsIFwiTG90dGllXCIsIFwiQW1hbmRhXCIsIFwiQmVsbGVcIiwgXCJDaGFybG90dGVcIiwgXCJSZWJlY2NhXCIsIFwiUnV0aFwiLCBcIlZpb2xhXCIsIFwiT2xpdmVcIiwgXCJBbWVsaWFcIiwgXCJIYW5uYWhcIiwgXCJKYW5lXCIsIFwiVmlyZ2luaWFcIiwgXCJFbWlseVwiLCBcIk1hdGlsZGFcIiwgXCJJcmVuZVwiLCBcIkthdGhyeW5cIiwgXCJFc3RoZXJcIiwgXCJXaWxsaWVcIiwgXCJIZW5yaWV0dGFcIiwgXCJPbGxpZVwiLCBcIkFteVwiLCBcIlJhY2hlbFwiLCBcIlNhcmFcIiwgXCJFc3RlbGxhXCIsIFwiVGhlcmVzYVwiLCBcIkF1Z3VzdGFcIiwgXCJPcmFcIiwgXCJQYXVsaW5lXCIsIFwiSm9zaWVcIiwgXCJMb2xhXCIsIFwiU29waGlhXCIsIFwiTGVvbmFcIiwgXCJBbm5lXCIsIFwiTWlsZHJlZFwiLCBcIkFublwiLCBcIkJldWxhaFwiLCBcIkNhbGxpZVwiLCBcIkxvdVwiLCBcIkRlbGlhXCIsIFwiRWxlYW5vclwiLCBcIkJhcmJhcmFcIiwgXCJJdmFcIiwgXCJMb3Vpc2FcIiwgXCJNYXJpYVwiLCBcIk1heW1lXCIsIFwiRXZlbHluXCIsIFwiRXN0ZWxsZVwiLCBcIk5pbmFcIiwgXCJCZXR0eVwiLCBcIk1hcmlvblwiLCBcIkJldHRpZVwiLCBcIkRvcm90aHlcIiwgXCJMdWVsbGFcIiwgXCJJbmV6XCIsIFwiTGVsYVwiLCBcIlJvc2llXCIsIFwiQWxsaWVcIiwgXCJNaWxsaWVcIiwgXCJKYW5pZVwiLCBcIkNvcm5lbGlhXCIsIFwiVmljdG9yaWFcIiwgXCJSdWJ5XCIsIFwiV2luaWZyZWRcIiwgXCJBbHRhXCIsIFwiQ2VsaWFcIiwgXCJDaHJpc3RpbmVcIiwgXCJCZWF0cmljZVwiLCBcIkJpcmRpZVwiLCBcIkhhcnJpZXR0XCIsIFwiTWFibGVcIiwgXCJNeXJhXCIsIFwiU29waGllXCIsIFwiVGlsbGllXCIsIFwiSXNhYmVsXCIsIFwiU3lsdmlhXCIsIFwiQ2Fyb2x5blwiLCBcIklzYWJlbGxlXCIsIFwiTGVpbGFcIiwgXCJTYWxseVwiLCBcIkluYVwiLCBcIkVzc2llXCIsIFwiQmVydGllXCIsIFwiTmVsbFwiLCBcIkFsYmVydGFcIiwgXCJLYXRoYXJpbmVcIiwgXCJMb3JhXCIsIFwiUmVuYVwiLCBcIk1pbmFcIiwgXCJSaG9kYVwiLCBcIk1hdGhpbGRhXCIsIFwiQWJiaWVcIiwgXCJFdWxhXCIsIFwiRG9sbGllXCIsIFwiSGV0dGllXCIsIFwiRXVuaWNlXCIsIFwiRmFubnlcIiwgXCJPbGFcIiwgXCJMZW5vcmFcIiwgXCJBZGVsYWlkZVwiLCBcIkNocmlzdGluYVwiLCBcIkxlbGlhXCIsIFwiTmVsbGVcIiwgXCJTdWVcIiwgXCJKb2hhbm5hXCIsIFwiTGlsbHlcIiwgXCJMdWNpbmRhXCIsIFwiTWluZXJ2YVwiLCBcIkxldHRpZVwiLCBcIlJveGllXCIsIFwiQ3ludGhpYVwiLCBcIkhlbGVuYVwiLCBcIkhpbGRhXCIsIFwiSHVsZGFcIiwgXCJCZXJuaWNlXCIsIFwiR2VuZXZpZXZlXCIsIFwiSmVhblwiLCBcIkNvcmRlbGlhXCIsIFwiTWFyaWFuXCIsIFwiRnJhbmNpc1wiLCBcIkplYW5ldHRlXCIsIFwiQWRlbGluZVwiLCBcIkd1c3NpZVwiLCBcIkxlYWhcIiwgXCJMb2lzXCIsIFwiTHVyYVwiLCBcIk1pdHRpZVwiLCBcIkhhbGxpZVwiLCBcIklzYWJlbGxhXCIsIFwiT2xnYVwiLCBcIlBob2ViZVwiLCBcIlRlcmVzYVwiLCBcIkhlc3RlclwiLCBcIkxpZGFcIiwgXCJMaW5hXCIsIFwiV2lubmllXCIsIFwiQ2xhdWRpYVwiLCBcIk1hcmd1ZXJpdGVcIiwgXCJWZXJhXCIsIFwiQ2VjZWxpYVwiLCBcIkJlc3NcIiwgXCJFbWlsaWVcIiwgXCJKb2huXCIsIFwiUm9zZXR0YVwiLCBcIlZlcm5hXCIsIFwiTXlydGllXCIsIFwiQ2VjaWxpYVwiLCBcIkVsdmFcIiwgXCJPbGl2aWFcIiwgXCJPcGhlbGlhXCIsIFwiR2VvcmdpZVwiLCBcIkVsbm9yYVwiLCBcIlZpb2xldFwiLCBcIkFkZWxlXCIsIFwiTGlseVwiLCBcIkxpbm5pZVwiLCBcIkxvcmV0dGFcIiwgXCJNYWRnZVwiLCBcIlBvbGx5XCIsIFwiVmlyZ2llXCIsIFwiRXVnZW5pYVwiLCBcIkx1Y2lsZVwiLCBcIkx1Y2lsbGVcIiwgXCJNYWJlbGxlXCIsIFwiUm9zYWxpZVwiXVxuICAgICAgICB9LFxuXG4gICAgICAgIGxhc3ROYW1lczogWydTbWl0aCcsICdKb2huc29uJywgJ1dpbGxpYW1zJywgJ0pvbmVzJywgJ0Jyb3duJywgJ0RhdmlzJywgJ01pbGxlcicsICdXaWxzb24nLCAnTW9vcmUnLCAnVGF5bG9yJywgJ0FuZGVyc29uJywgJ1Rob21hcycsICdKYWNrc29uJywgJ1doaXRlJywgJ0hhcnJpcycsICdNYXJ0aW4nLCAnVGhvbXBzb24nLCAnR2FyY2lhJywgJ01hcnRpbmV6JywgJ1JvYmluc29uJywgJ0NsYXJrJywgJ1JvZHJpZ3VleicsICdMZXdpcycsICdMZWUnLCAnV2Fsa2VyJywgJ0hhbGwnLCAnQWxsZW4nLCAnWW91bmcnLCAnSGVybmFuZGV6JywgJ0tpbmcnLCAnV3JpZ2h0JywgJ0xvcGV6JywgJ0hpbGwnLCAnU2NvdHQnLCAnR3JlZW4nLCAnQWRhbXMnLCAnQmFrZXInLCAnR29uemFsZXonLCAnTmVsc29uJywgJ0NhcnRlcicsICdNaXRjaGVsbCcsICdQZXJleicsICdSb2JlcnRzJywgJ1R1cm5lcicsICdQaGlsbGlwcycsICdDYW1wYmVsbCcsICdQYXJrZXInLCAnRXZhbnMnLCAnRWR3YXJkcycsICdDb2xsaW5zJywgJ1N0ZXdhcnQnLCAnU2FuY2hleicsICdNb3JyaXMnLCAnUm9nZXJzJywgJ1JlZWQnLCAnQ29vaycsICdNb3JnYW4nLCAnQmVsbCcsICdNdXJwaHknLCAnQmFpbGV5JywgJ1JpdmVyYScsICdDb29wZXInLCAnUmljaGFyZHNvbicsICdDb3gnLCAnSG93YXJkJywgJ1dhcmQnLCAnVG9ycmVzJywgJ1BldGVyc29uJywgJ0dyYXknLCAnUmFtaXJleicsICdKYW1lcycsICdXYXRzb24nLCAnQnJvb2tzJywgJ0tlbGx5JywgJ1NhbmRlcnMnLCAnUHJpY2UnLCAnQmVubmV0dCcsICdXb29kJywgJ0Jhcm5lcycsICdSb3NzJywgJ0hlbmRlcnNvbicsICdDb2xlbWFuJywgJ0plbmtpbnMnLCAnUGVycnknLCAnUG93ZWxsJywgJ0xvbmcnLCAnUGF0dGVyc29uJywgJ0h1Z2hlcycsICdGbG9yZXMnLCAnV2FzaGluZ3RvbicsICdCdXRsZXInLCAnU2ltbW9ucycsICdGb3N0ZXInLCAnR29uemFsZXMnLCAnQnJ5YW50JywgJ0FsZXhhbmRlcicsICdSdXNzZWxsJywgJ0dyaWZmaW4nLCAnRGlheicsICdIYXllcycsICdNeWVycycsICdGb3JkJywgJ0hhbWlsdG9uJywgJ0dyYWhhbScsICdTdWxsaXZhbicsICdXYWxsYWNlJywgJ1dvb2RzJywgJ0NvbGUnLCAnV2VzdCcsICdKb3JkYW4nLCAnT3dlbnMnLCAnUmV5bm9sZHMnLCAnRmlzaGVyJywgJ0VsbGlzJywgJ0hhcnJpc29uJywgJ0dpYnNvbicsICdNY0RvbmFsZCcsICdDcnV6JywgJ01hcnNoYWxsJywgJ09ydGl6JywgJ0dvbWV6JywgJ011cnJheScsICdGcmVlbWFuJywgJ1dlbGxzJywgJ1dlYmInLCAnU2ltcHNvbicsICdTdGV2ZW5zJywgJ1R1Y2tlcicsICdQb3J0ZXInLCAnSHVudGVyJywgJ0hpY2tzJywgJ0NyYXdmb3JkJywgJ0hlbnJ5JywgJ0JveWQnLCAnTWFzb24nLCAnTW9yYWxlcycsICdLZW5uZWR5JywgJ1dhcnJlbicsICdEaXhvbicsICdSYW1vcycsICdSZXllcycsICdCdXJucycsICdHb3Jkb24nLCAnU2hhdycsICdIb2xtZXMnLCAnUmljZScsICdSb2JlcnRzb24nLCAnSHVudCcsICdCbGFjaycsICdEYW5pZWxzJywgJ1BhbG1lcicsICdNaWxscycsICdOaWNob2xzJywgJ0dyYW50JywgJ0tuaWdodCcsICdGZXJndXNvbicsICdSb3NlJywgJ1N0b25lJywgJ0hhd2tpbnMnLCAnRHVubicsICdQZXJraW5zJywgJ0h1ZHNvbicsICdTcGVuY2VyJywgJ0dhcmRuZXInLCAnU3RlcGhlbnMnLCAnUGF5bmUnLCAnUGllcmNlJywgJ0JlcnJ5JywgJ01hdHRoZXdzJywgJ0Fybm9sZCcsICdXYWduZXInLCAnV2lsbGlzJywgJ1JheScsICdXYXRraW5zJywgJ09sc29uJywgJ0NhcnJvbGwnLCAnRHVuY2FuJywgJ1NueWRlcicsICdIYXJ0JywgJ0N1bm5pbmdoYW0nLCAnQnJhZGxleScsICdMYW5lJywgJ0FuZHJld3MnLCAnUnVpeicsICdIYXJwZXInLCAnRm94JywgJ1JpbGV5JywgJ0FybXN0cm9uZycsICdDYXJwZW50ZXInLCAnV2VhdmVyJywgJ0dyZWVuZScsICdMYXdyZW5jZScsICdFbGxpb3R0JywgJ0NoYXZleicsICdTaW1zJywgJ0F1c3RpbicsICdQZXRlcnMnLCAnS2VsbGV5JywgJ0ZyYW5rbGluJywgJ0xhd3NvbicsICdGaWVsZHMnLCAnR3V0aWVycmV6JywgJ1J5YW4nLCAnU2NobWlkdCcsICdDYXJyJywgJ1Zhc3F1ZXonLCAnQ2FzdGlsbG8nLCAnV2hlZWxlcicsICdDaGFwbWFuJywgJ09saXZlcicsICdNb250Z29tZXJ5JywgJ1JpY2hhcmRzJywgJ1dpbGxpYW1zb24nLCAnSm9obnN0b24nLCAnQmFua3MnLCAnTWV5ZXInLCAnQmlzaG9wJywgJ01jQ295JywgJ0hvd2VsbCcsICdBbHZhcmV6JywgJ01vcnJpc29uJywgJ0hhbnNlbicsICdGZXJuYW5kZXonLCAnR2FyemEnLCAnSGFydmV5JywgJ0xpdHRsZScsICdCdXJ0b24nLCAnU3RhbmxleScsICdOZ3V5ZW4nLCAnR2VvcmdlJywgJ0phY29icycsICdSZWlkJywgJ0tpbScsICdGdWxsZXInLCAnTHluY2gnLCAnRGVhbicsICdHaWxiZXJ0JywgJ0dhcnJldHQnLCAnUm9tZXJvJywgJ1dlbGNoJywgJ0xhcnNvbicsICdGcmF6aWVyJywgJ0J1cmtlJywgJ0hhbnNvbicsICdEYXknLCAnTWVuZG96YScsICdNb3Jlbm8nLCAnQm93bWFuJywgJ01lZGluYScsICdGb3dsZXInLCAnQnJld2VyJywgJ0hvZmZtYW4nLCAnQ2FybHNvbicsICdTaWx2YScsICdQZWFyc29uJywgJ0hvbGxhbmQnLCAnRG91Z2xhcycsICdGbGVtaW5nJywgJ0plbnNlbicsICdWYXJnYXMnLCAnQnlyZCcsICdEYXZpZHNvbicsICdIb3BraW5zJywgJ01heScsICdUZXJyeScsICdIZXJyZXJhJywgJ1dhZGUnLCAnU290bycsICdXYWx0ZXJzJywgJ0N1cnRpcycsICdOZWFsJywgJ0NhbGR3ZWxsJywgJ0xvd2UnLCAnSmVubmluZ3MnLCAnQmFybmV0dCcsICdHcmF2ZXMnLCAnSmltZW5leicsICdIb3J0b24nLCAnU2hlbHRvbicsICdCYXJyZXR0JywgJ09icmllbicsICdDYXN0cm8nLCAnU3V0dG9uJywgJ0dyZWdvcnknLCAnTWNLaW5uZXknLCAnTHVjYXMnLCAnTWlsZXMnLCAnQ3JhaWcnLCAnUm9kcmlxdWV6JywgJ0NoYW1iZXJzJywgJ0hvbHQnLCAnTGFtYmVydCcsICdGbGV0Y2hlcicsICdXYXR0cycsICdCYXRlcycsICdIYWxlJywgJ1Job2RlcycsICdQZW5hJywgJ0JlY2snLCAnTmV3bWFuJywgJ0hheW5lcycsICdNY0RhbmllbCcsICdNZW5kZXonLCAnQnVzaCcsICdWYXVnaG4nLCAnUGFya3MnLCAnRGF3c29uJywgJ1NhbnRpYWdvJywgJ05vcnJpcycsICdIYXJkeScsICdMb3ZlJywgJ1N0ZWVsZScsICdDdXJyeScsICdQb3dlcnMnLCAnU2NodWx0eicsICdCYXJrZXInLCAnR3V6bWFuJywgJ1BhZ2UnLCAnTXVub3onLCAnQmFsbCcsICdLZWxsZXInLCAnQ2hhbmRsZXInLCAnV2ViZXInLCAnTGVvbmFyZCcsICdXYWxzaCcsICdMeW9ucycsICdSYW1zZXknLCAnV29sZmUnLCAnU2NobmVpZGVyJywgJ011bGxpbnMnLCAnQmVuc29uJywgJ1NoYXJwJywgJ0Jvd2VuJywgJ0RhbmllbCcsICdCYXJiZXInLCAnQ3VtbWluZ3MnLCAnSGluZXMnLCAnQmFsZHdpbicsICdHcmlmZml0aCcsICdWYWxkZXonLCAnSHViYmFyZCcsICdTYWxhemFyJywgJ1JlZXZlcycsICdXYXJuZXInLCAnU3RldmVuc29uJywgJ0J1cmdlc3MnLCAnU2FudG9zJywgJ1RhdGUnLCAnQ3Jvc3MnLCAnR2FybmVyJywgJ01hbm4nLCAnTWFjaycsICdNb3NzJywgJ1Rob3JudG9uJywgJ0Rlbm5pcycsICdNY0dlZScsICdGYXJtZXInLCAnRGVsZ2FkbycsICdBZ3VpbGFyJywgJ1ZlZ2EnLCAnR2xvdmVyJywgJ01hbm5pbmcnLCAnQ29oZW4nLCAnSGFybW9uJywgJ1JvZGdlcnMnLCAnUm9iYmlucycsICdOZXd0b24nLCAnVG9kZCcsICdCbGFpcicsICdIaWdnaW5zJywgJ0luZ3JhbScsICdSZWVzZScsICdDYW5ub24nLCAnU3RyaWNrbGFuZCcsICdUb3duc2VuZCcsICdQb3R0ZXInLCAnR29vZHdpbicsICdXYWx0b24nLCAnUm93ZScsICdIYW1wdG9uJywgJ09ydGVnYScsICdQYXR0b24nLCAnU3dhbnNvbicsICdKb3NlcGgnLCAnRnJhbmNpcycsICdHb29kbWFuJywgJ01hbGRvbmFkbycsICdZYXRlcycsICdCZWNrZXInLCAnRXJpY2tzb24nLCAnSG9kZ2VzJywgJ1Jpb3MnLCAnQ29ubmVyJywgJ0Fka2lucycsICdXZWJzdGVyJywgJ05vcm1hbicsICdNYWxvbmUnLCAnSGFtbW9uZCcsICdGbG93ZXJzJywgJ0NvYmInLCAnTW9vZHknLCAnUXVpbm4nLCAnQmxha2UnLCAnTWF4d2VsbCcsICdQb3BlJywgJ0Zsb3lkJywgJ09zYm9ybmUnLCAnUGF1bCcsICdNY0NhcnRoeScsICdHdWVycmVybycsICdMaW5kc2V5JywgJ0VzdHJhZGEnLCAnU2FuZG92YWwnLCAnR2liYnMnLCAnVHlsZXInLCAnR3Jvc3MnLCAnRml0emdlcmFsZCcsICdTdG9rZXMnLCAnRG95bGUnLCAnU2hlcm1hbicsICdTYXVuZGVycycsICdXaXNlJywgJ0NvbG9uJywgJ0dpbGwnLCAnQWx2YXJhZG8nLCAnR3JlZXInLCAnUGFkaWxsYScsICdTaW1vbicsICdXYXRlcnMnLCAnTnVuZXonLCAnQmFsbGFyZCcsICdTY2h3YXJ0eicsICdNY0JyaWRlJywgJ0hvdXN0b24nLCAnQ2hyaXN0ZW5zZW4nLCAnS2xlaW4nLCAnUHJhdHQnLCAnQnJpZ2dzJywgJ1BhcnNvbnMnLCAnTWNMYXVnaGxpbicsICdaaW1tZXJtYW4nLCAnRnJlbmNoJywgJ0J1Y2hhbmFuJywgJ01vcmFuJywgJ0NvcGVsYW5kJywgJ1JveScsICdQaXR0bWFuJywgJ0JyYWR5JywgJ01jQ29ybWljaycsICdIb2xsb3dheScsICdCcm9jaycsICdQb29sZScsICdGcmFuaycsICdMb2dhbicsICdPd2VuJywgJ0Jhc3MnLCAnTWFyc2gnLCAnRHJha2UnLCAnV29uZycsICdKZWZmZXJzb24nLCAnUGFyaycsICdNb3J0b24nLCAnQWJib3R0JywgJ1NwYXJrcycsICdQYXRyaWNrJywgJ05vcnRvbicsICdIdWZmJywgJ0NsYXl0b24nLCAnTWFzc2V5JywgJ0xsb3lkJywgJ0ZpZ3Vlcm9hJywgJ0NhcnNvbicsICdCb3dlcnMnLCAnUm9iZXJzb24nLCAnQmFydG9uJywgJ1RyYW4nLCAnTGFtYicsICdIYXJyaW5ndG9uJywgJ0Nhc2V5JywgJ0Jvb25lJywgJ0NvcnRleicsICdDbGFya2UnLCAnTWF0aGlzJywgJ1NpbmdsZXRvbicsICdXaWxraW5zJywgJ0NhaW4nLCAnQnJ5YW4nLCAnVW5kZXJ3b29kJywgJ0hvZ2FuJywgJ01jS2VuemllJywgJ0NvbGxpZXInLCAnTHVuYScsICdQaGVscHMnLCAnTWNHdWlyZScsICdBbGxpc29uJywgJ0JyaWRnZXMnLCAnV2lsa2Vyc29uJywgJ05hc2gnLCAnU3VtbWVycycsICdBdGtpbnMnXSxcblxuICAgICAgICAvLyBEYXRhIHRha2VuIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VtcGlyc2t5L2NvdW50cnktbGlzdC9ibG9iL21hc3Rlci9jb3VudHJ5L2NsZHIvZW5fVVMvY291bnRyeS5qc29uXG4gICAgICAgIGNvdW50cmllczogW3tcIm5hbWVcIjpcIkFmZ2hhbmlzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFGXCJ9LHtcIm5hbWVcIjpcIkFsYmFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiQUxcIn0se1wibmFtZVwiOlwiQWxnZXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJEWlwifSx7XCJuYW1lXCI6XCJBbWVyaWNhbiBTYW1vYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBU1wifSx7XCJuYW1lXCI6XCJBbmRvcnJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFEXCJ9LHtcIm5hbWVcIjpcIkFuZ29sYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBT1wifSx7XCJuYW1lXCI6XCJBbmd1aWxsYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJBSVwifSx7XCJuYW1lXCI6XCJBbnRhcmN0aWNhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFRXCJ9LHtcIm5hbWVcIjpcIkFudGlndWEgYW5kIEJhcmJ1ZGFcIixcImFiYnJldmlhdGlvblwiOlwiQUdcIn0se1wibmFtZVwiOlwiQXJnZW50aW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFSXCJ9LHtcIm5hbWVcIjpcIkFybWVuaWFcIixcImFiYnJldmlhdGlvblwiOlwiQU1cIn0se1wibmFtZVwiOlwiQXJ1YmFcIixcImFiYnJldmlhdGlvblwiOlwiQVdcIn0se1wibmFtZVwiOlwiQXVzdHJhbGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFVXCJ9LHtcIm5hbWVcIjpcIkF1c3RyaWFcIixcImFiYnJldmlhdGlvblwiOlwiQVRcIn0se1wibmFtZVwiOlwiQXplcmJhaWphblwiLFwiYWJicmV2aWF0aW9uXCI6XCJBWlwifSx7XCJuYW1lXCI6XCJCYWhhbWFzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJTXCJ9LHtcIm5hbWVcIjpcIkJhaHJhaW5cIixcImFiYnJldmlhdGlvblwiOlwiQkhcIn0se1wibmFtZVwiOlwiQmFuZ2xhZGVzaFwiLFwiYWJicmV2aWF0aW9uXCI6XCJCRFwifSx7XCJuYW1lXCI6XCJCYXJiYWRvc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCQlwifSx7XCJuYW1lXCI6XCJCZWxhcnVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJZXCJ9LHtcIm5hbWVcIjpcIkJlbGdpdW1cIixcImFiYnJldmlhdGlvblwiOlwiQkVcIn0se1wibmFtZVwiOlwiQmVsaXplXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJaXCJ9LHtcIm5hbWVcIjpcIkJlbmluXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJKXCJ9LHtcIm5hbWVcIjpcIkJlcm11ZGFcIixcImFiYnJldmlhdGlvblwiOlwiQk1cIn0se1wibmFtZVwiOlwiQmh1dGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJUXCJ9LHtcIm5hbWVcIjpcIkJvbGl2aWFcIixcImFiYnJldmlhdGlvblwiOlwiQk9cIn0se1wibmFtZVwiOlwiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCQVwifSx7XCJuYW1lXCI6XCJCb3Rzd2FuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJCV1wifSx7XCJuYW1lXCI6XCJCb3V2ZXQgSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJWXCJ9LHtcIm5hbWVcIjpcIkJyYXppbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJCUlwifSx7XCJuYW1lXCI6XCJCcml0aXNoIEFudGFyY3RpYyBUZXJyaXRvcnlcIixcImFiYnJldmlhdGlvblwiOlwiQlFcIn0se1wibmFtZVwiOlwiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5XCIsXCJhYmJyZXZpYXRpb25cIjpcIklPXCJ9LHtcIm5hbWVcIjpcIkJyaXRpc2ggVmlyZ2luIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiVkdcIn0se1wibmFtZVwiOlwiQnJ1bmVpXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJOXCJ9LHtcIm5hbWVcIjpcIkJ1bGdhcmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJHXCJ9LHtcIm5hbWVcIjpcIkJ1cmtpbmEgRmFzb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJCRlwifSx7XCJuYW1lXCI6XCJCdXJ1bmRpXCIsXCJhYmJyZXZpYXRpb25cIjpcIkJJXCJ9LHtcIm5hbWVcIjpcIkNhbWJvZGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIktIXCJ9LHtcIm5hbWVcIjpcIkNhbWVyb29uXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNNXCJ9LHtcIm5hbWVcIjpcIkNhbmFkYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDQVwifSx7XCJuYW1lXCI6XCJDYW50b24gYW5kIEVuZGVyYnVyeSBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNUXCJ9LHtcIm5hbWVcIjpcIkNhcGUgVmVyZGVcIixcImFiYnJldmlhdGlvblwiOlwiQ1ZcIn0se1wibmFtZVwiOlwiQ2F5bWFuIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiS1lcIn0se1wibmFtZVwiOlwiQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNGXCJ9LHtcIm5hbWVcIjpcIkNoYWRcIixcImFiYnJldmlhdGlvblwiOlwiVERcIn0se1wibmFtZVwiOlwiQ2hpbGVcIixcImFiYnJldmlhdGlvblwiOlwiQ0xcIn0se1wibmFtZVwiOlwiQ2hpbmFcIixcImFiYnJldmlhdGlvblwiOlwiQ05cIn0se1wibmFtZVwiOlwiQ2hyaXN0bWFzIElzbGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJDWFwifSx7XCJuYW1lXCI6XCJDb2NvcyBbS2VlbGluZ10gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJDQ1wifSx7XCJuYW1lXCI6XCJDb2xvbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDT1wifSx7XCJuYW1lXCI6XCJDb21vcm9zXCIsXCJhYmJyZXZpYXRpb25cIjpcIktNXCJ9LHtcIm5hbWVcIjpcIkNvbmdvIC0gQnJhenphdmlsbGVcIixcImFiYnJldmlhdGlvblwiOlwiQ0dcIn0se1wibmFtZVwiOlwiQ29uZ28gLSBLaW5zaGFzYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDRFwifSx7XCJuYW1lXCI6XCJDb29rIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiQ0tcIn0se1wibmFtZVwiOlwiQ29zdGEgUmljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJDUlwifSx7XCJuYW1lXCI6XCJDcm9hdGlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkhSXCJ9LHtcIm5hbWVcIjpcIkN1YmFcIixcImFiYnJldmlhdGlvblwiOlwiQ1VcIn0se1wibmFtZVwiOlwiQ3lwcnVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNZXCJ9LHtcIm5hbWVcIjpcIkN6ZWNoIFJlcHVibGljXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNaXCJ9LHtcIm5hbWVcIjpcIkPDtHRlIGTigJlJdm9pcmVcIixcImFiYnJldmlhdGlvblwiOlwiQ0lcIn0se1wibmFtZVwiOlwiRGVubWFya1wiLFwiYWJicmV2aWF0aW9uXCI6XCJES1wifSx7XCJuYW1lXCI6XCJEamlib3V0aVwiLFwiYWJicmV2aWF0aW9uXCI6XCJESlwifSx7XCJuYW1lXCI6XCJEb21pbmljYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJETVwifSx7XCJuYW1lXCI6XCJEb21pbmljYW4gUmVwdWJsaWNcIixcImFiYnJldmlhdGlvblwiOlwiRE9cIn0se1wibmFtZVwiOlwiRHJvbm5pbmcgTWF1ZCBMYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5RXCJ9LHtcIm5hbWVcIjpcIkVhc3QgR2VybWFueVwiLFwiYWJicmV2aWF0aW9uXCI6XCJERFwifSx7XCJuYW1lXCI6XCJFY3VhZG9yXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVDXCJ9LHtcIm5hbWVcIjpcIkVneXB0XCIsXCJhYmJyZXZpYXRpb25cIjpcIkVHXCJ9LHtcIm5hbWVcIjpcIkVsIFNhbHZhZG9yXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNWXCJ9LHtcIm5hbWVcIjpcIkVxdWF0b3JpYWwgR3VpbmVhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdRXCJ9LHtcIm5hbWVcIjpcIkVyaXRyZWFcIixcImFiYnJldmlhdGlvblwiOlwiRVJcIn0se1wibmFtZVwiOlwiRXN0b25pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJFRVwifSx7XCJuYW1lXCI6XCJFdGhpb3BpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJFVFwifSx7XCJuYW1lXCI6XCJGYWxrbGFuZCBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZLXCJ9LHtcIm5hbWVcIjpcIkZhcm9lIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiRk9cIn0se1wibmFtZVwiOlwiRmlqaVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGSlwifSx7XCJuYW1lXCI6XCJGaW5sYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZJXCJ9LHtcIm5hbWVcIjpcIkZyYW5jZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGUlwifSx7XCJuYW1lXCI6XCJGcmVuY2ggR3VpYW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdGXCJ9LHtcIm5hbWVcIjpcIkZyZW5jaCBQb2x5bmVzaWFcIixcImFiYnJldmlhdGlvblwiOlwiUEZcIn0se1wibmFtZVwiOlwiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRGXCJ9LHtcIm5hbWVcIjpcIkZyZW5jaCBTb3V0aGVybiBhbmQgQW50YXJjdGljIFRlcnJpdG9yaWVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkZRXCJ9LHtcIm5hbWVcIjpcIkdhYm9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdBXCJ9LHtcIm5hbWVcIjpcIkdhbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHTVwifSx7XCJuYW1lXCI6XCJHZW9yZ2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdFXCJ9LHtcIm5hbWVcIjpcIkdlcm1hbnlcIixcImFiYnJldmlhdGlvblwiOlwiREVcIn0se1wibmFtZVwiOlwiR2hhbmFcIixcImFiYnJldmlhdGlvblwiOlwiR0hcIn0se1wibmFtZVwiOlwiR2licmFsdGFyXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdJXCJ9LHtcIm5hbWVcIjpcIkdyZWVjZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHUlwifSx7XCJuYW1lXCI6XCJHcmVlbmxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiR0xcIn0se1wibmFtZVwiOlwiR3JlbmFkYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHRFwifSx7XCJuYW1lXCI6XCJHdWFkZWxvdXBlXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdQXCJ9LHtcIm5hbWVcIjpcIkd1YW1cIixcImFiYnJldmlhdGlvblwiOlwiR1VcIn0se1wibmFtZVwiOlwiR3VhdGVtYWxhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkdUXCJ9LHtcIm5hbWVcIjpcIkd1ZXJuc2V5XCIsXCJhYmJyZXZpYXRpb25cIjpcIkdHXCJ9LHtcIm5hbWVcIjpcIkd1aW5lYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHTlwifSx7XCJuYW1lXCI6XCJHdWluZWEtQmlzc2F1XCIsXCJhYmJyZXZpYXRpb25cIjpcIkdXXCJ9LHtcIm5hbWVcIjpcIkd1eWFuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHWVwifSx7XCJuYW1lXCI6XCJIYWl0aVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIVFwifSx7XCJuYW1lXCI6XCJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiSE1cIn0se1wibmFtZVwiOlwiSG9uZHVyYXNcIixcImFiYnJldmlhdGlvblwiOlwiSE5cIn0se1wibmFtZVwiOlwiSG9uZyBLb25nIFNBUiBDaGluYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJIS1wifSx7XCJuYW1lXCI6XCJIdW5nYXJ5XCIsXCJhYmJyZXZpYXRpb25cIjpcIkhVXCJ9LHtcIm5hbWVcIjpcIkljZWxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiSVNcIn0se1wibmFtZVwiOlwiSW5kaWFcIixcImFiYnJldmlhdGlvblwiOlwiSU5cIn0se1wibmFtZVwiOlwiSW5kb25lc2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIklEXCJ9LHtcIm5hbWVcIjpcIklyYW5cIixcImFiYnJldmlhdGlvblwiOlwiSVJcIn0se1wibmFtZVwiOlwiSXJhcVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJUVwifSx7XCJuYW1lXCI6XCJJcmVsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIklFXCJ9LHtcIm5hbWVcIjpcIklzbGUgb2YgTWFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIklNXCJ9LHtcIm5hbWVcIjpcIklzcmFlbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJJTFwifSx7XCJuYW1lXCI6XCJJdGFseVwiLFwiYWJicmV2aWF0aW9uXCI6XCJJVFwifSx7XCJuYW1lXCI6XCJKYW1haWNhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpNXCJ9LHtcIm5hbWVcIjpcIkphcGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpQXCJ9LHtcIm5hbWVcIjpcIkplcnNleVwiLFwiYWJicmV2aWF0aW9uXCI6XCJKRVwifSx7XCJuYW1lXCI6XCJKb2huc3RvbiBJc2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiSlRcIn0se1wibmFtZVwiOlwiSm9yZGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIkpPXCJ9LHtcIm5hbWVcIjpcIkthemFraHN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiS1pcIn0se1wibmFtZVwiOlwiS2VueWFcIixcImFiYnJldmlhdGlvblwiOlwiS0VcIn0se1wibmFtZVwiOlwiS2lyaWJhdGlcIixcImFiYnJldmlhdGlvblwiOlwiS0lcIn0se1wibmFtZVwiOlwiS3V3YWl0XCIsXCJhYmJyZXZpYXRpb25cIjpcIktXXCJ9LHtcIm5hbWVcIjpcIkt5cmd5enN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiS0dcIn0se1wibmFtZVwiOlwiTGFvc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJMQVwifSx7XCJuYW1lXCI6XCJMYXR2aWFcIixcImFiYnJldmlhdGlvblwiOlwiTFZcIn0se1wibmFtZVwiOlwiTGViYW5vblwiLFwiYWJicmV2aWF0aW9uXCI6XCJMQlwifSx7XCJuYW1lXCI6XCJMZXNvdGhvXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxTXCJ9LHtcIm5hbWVcIjpcIkxpYmVyaWFcIixcImFiYnJldmlhdGlvblwiOlwiTFJcIn0se1wibmFtZVwiOlwiTGlieWFcIixcImFiYnJldmlhdGlvblwiOlwiTFlcIn0se1wibmFtZVwiOlwiTGllY2h0ZW5zdGVpblwiLFwiYWJicmV2aWF0aW9uXCI6XCJMSVwifSx7XCJuYW1lXCI6XCJMaXRodWFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiTFRcIn0se1wibmFtZVwiOlwiTHV4ZW1ib3VyZ1wiLFwiYWJicmV2aWF0aW9uXCI6XCJMVVwifSx7XCJuYW1lXCI6XCJNYWNhdSBTQVIgQ2hpbmFcIixcImFiYnJldmlhdGlvblwiOlwiTU9cIn0se1wibmFtZVwiOlwiTWFjZWRvbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1LXCJ9LHtcIm5hbWVcIjpcIk1hZGFnYXNjYXJcIixcImFiYnJldmlhdGlvblwiOlwiTUdcIn0se1wibmFtZVwiOlwiTWFsYXdpXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1XXCJ9LHtcIm5hbWVcIjpcIk1hbGF5c2lhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1ZXCJ9LHtcIm5hbWVcIjpcIk1hbGRpdmVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1WXCJ9LHtcIm5hbWVcIjpcIk1hbGlcIixcImFiYnJldmlhdGlvblwiOlwiTUxcIn0se1wibmFtZVwiOlwiTWFsdGFcIixcImFiYnJldmlhdGlvblwiOlwiTVRcIn0se1wibmFtZVwiOlwiTWFyc2hhbGwgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNSFwifSx7XCJuYW1lXCI6XCJNYXJ0aW5pcXVlXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1RXCJ9LHtcIm5hbWVcIjpcIk1hdXJpdGFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiTVJcIn0se1wibmFtZVwiOlwiTWF1cml0aXVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1VXCJ9LHtcIm5hbWVcIjpcIk1heW90dGVcIixcImFiYnJldmlhdGlvblwiOlwiWVRcIn0se1wibmFtZVwiOlwiTWV0cm9wb2xpdGFuIEZyYW5jZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGWFwifSx7XCJuYW1lXCI6XCJNZXhpY29cIixcImFiYnJldmlhdGlvblwiOlwiTVhcIn0se1wibmFtZVwiOlwiTWljcm9uZXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJGTVwifSx7XCJuYW1lXCI6XCJNaWR3YXkgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNSVwifSx7XCJuYW1lXCI6XCJNb2xkb3ZhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1EXCJ9LHtcIm5hbWVcIjpcIk1vbmFjb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNQ1wifSx7XCJuYW1lXCI6XCJNb25nb2xpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNTlwifSx7XCJuYW1lXCI6XCJNb250ZW5lZ3JvXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1FXCJ9LHtcIm5hbWVcIjpcIk1vbnRzZXJyYXRcIixcImFiYnJldmlhdGlvblwiOlwiTVNcIn0se1wibmFtZVwiOlwiTW9yb2Njb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJNQVwifSx7XCJuYW1lXCI6XCJNb3phbWJpcXVlXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1aXCJ9LHtcIm5hbWVcIjpcIk15YW5tYXIgW0J1cm1hXVwiLFwiYWJicmV2aWF0aW9uXCI6XCJNTVwifSx7XCJuYW1lXCI6XCJOYW1pYmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5BXCJ9LHtcIm5hbWVcIjpcIk5hdXJ1XCIsXCJhYmJyZXZpYXRpb25cIjpcIk5SXCJ9LHtcIm5hbWVcIjpcIk5lcGFsXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5QXCJ9LHtcIm5hbWVcIjpcIk5ldGhlcmxhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5MXCJ9LHtcIm5hbWVcIjpcIk5ldGhlcmxhbmRzIEFudGlsbGVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIkFOXCJ9LHtcIm5hbWVcIjpcIk5ldXRyYWwgWm9uZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOVFwifSx7XCJuYW1lXCI6XCJOZXcgQ2FsZWRvbmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5DXCJ9LHtcIm5hbWVcIjpcIk5ldyBaZWFsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5aXCJ9LHtcIm5hbWVcIjpcIk5pY2FyYWd1YVwiLFwiYWJicmV2aWF0aW9uXCI6XCJOSVwifSx7XCJuYW1lXCI6XCJOaWdlclwiLFwiYWJicmV2aWF0aW9uXCI6XCJORVwifSx7XCJuYW1lXCI6XCJOaWdlcmlhXCIsXCJhYmJyZXZpYXRpb25cIjpcIk5HXCJ9LHtcIm5hbWVcIjpcIk5pdWVcIixcImFiYnJldmlhdGlvblwiOlwiTlVcIn0se1wibmFtZVwiOlwiTm9yZm9sayBJc2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiTkZcIn0se1wibmFtZVwiOlwiTm9ydGggS29yZWFcIixcImFiYnJldmlhdGlvblwiOlwiS1BcIn0se1wibmFtZVwiOlwiTm9ydGggVmlldG5hbVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWRFwifSx7XCJuYW1lXCI6XCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiTVBcIn0se1wibmFtZVwiOlwiTm9yd2F5XCIsXCJhYmJyZXZpYXRpb25cIjpcIk5PXCJ9LHtcIm5hbWVcIjpcIk9tYW5cIixcImFiYnJldmlhdGlvblwiOlwiT01cIn0se1wibmFtZVwiOlwiUGFjaWZpYyBJc2xhbmRzIFRydXN0IFRlcnJpdG9yeVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQQ1wifSx7XCJuYW1lXCI6XCJQYWtpc3RhblwiLFwiYWJicmV2aWF0aW9uXCI6XCJQS1wifSx7XCJuYW1lXCI6XCJQYWxhdVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQV1wifSx7XCJuYW1lXCI6XCJQYWxlc3RpbmlhbiBUZXJyaXRvcmllc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJQU1wifSx7XCJuYW1lXCI6XCJQYW5hbWFcIixcImFiYnJldmlhdGlvblwiOlwiUEFcIn0se1wibmFtZVwiOlwiUGFuYW1hIENhbmFsIFpvbmVcIixcImFiYnJldmlhdGlvblwiOlwiUFpcIn0se1wibmFtZVwiOlwiUGFwdWEgTmV3IEd1aW5lYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQR1wifSx7XCJuYW1lXCI6XCJQYXJhZ3VheVwiLFwiYWJicmV2aWF0aW9uXCI6XCJQWVwifSx7XCJuYW1lXCI6XCJQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljIG9mIFllbWVuXCIsXCJhYmJyZXZpYXRpb25cIjpcIllEXCJ9LHtcIm5hbWVcIjpcIlBlcnVcIixcImFiYnJldmlhdGlvblwiOlwiUEVcIn0se1wibmFtZVwiOlwiUGhpbGlwcGluZXNcIixcImFiYnJldmlhdGlvblwiOlwiUEhcIn0se1wibmFtZVwiOlwiUGl0Y2Fpcm4gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJQTlwifSx7XCJuYW1lXCI6XCJQb2xhbmRcIixcImFiYnJldmlhdGlvblwiOlwiUExcIn0se1wibmFtZVwiOlwiUG9ydHVnYWxcIixcImFiYnJldmlhdGlvblwiOlwiUFRcIn0se1wibmFtZVwiOlwiUHVlcnRvIFJpY29cIixcImFiYnJldmlhdGlvblwiOlwiUFJcIn0se1wibmFtZVwiOlwiUWF0YXJcIixcImFiYnJldmlhdGlvblwiOlwiUUFcIn0se1wibmFtZVwiOlwiUm9tYW5pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJST1wifSx7XCJuYW1lXCI6XCJSdXNzaWFcIixcImFiYnJldmlhdGlvblwiOlwiUlVcIn0se1wibmFtZVwiOlwiUndhbmRhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJXXCJ9LHtcIm5hbWVcIjpcIlLDqXVuaW9uXCIsXCJhYmJyZXZpYXRpb25cIjpcIlJFXCJ9LHtcIm5hbWVcIjpcIlNhaW50IEJhcnRow6lsZW15XCIsXCJhYmJyZXZpYXRpb25cIjpcIkJMXCJ9LHtcIm5hbWVcIjpcIlNhaW50IEhlbGVuYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTSFwifSx7XCJuYW1lXCI6XCJTYWludCBLaXR0cyBhbmQgTmV2aXNcIixcImFiYnJldmlhdGlvblwiOlwiS05cIn0se1wibmFtZVwiOlwiU2FpbnQgTHVjaWFcIixcImFiYnJldmlhdGlvblwiOlwiTENcIn0se1wibmFtZVwiOlwiU2FpbnQgTWFydGluXCIsXCJhYmJyZXZpYXRpb25cIjpcIk1GXCJ9LHtcIm5hbWVcIjpcIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb25cIixcImFiYnJldmlhdGlvblwiOlwiUE1cIn0se1wibmFtZVwiOlwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcImFiYnJldmlhdGlvblwiOlwiVkNcIn0se1wibmFtZVwiOlwiU2Ftb2FcIixcImFiYnJldmlhdGlvblwiOlwiV1NcIn0se1wibmFtZVwiOlwiU2FuIE1hcmlub1wiLFwiYWJicmV2aWF0aW9uXCI6XCJTTVwifSx7XCJuYW1lXCI6XCJTYXVkaSBBcmFiaWFcIixcImFiYnJldmlhdGlvblwiOlwiU0FcIn0se1wibmFtZVwiOlwiU2VuZWdhbFwiLFwiYWJicmV2aWF0aW9uXCI6XCJTTlwifSx7XCJuYW1lXCI6XCJTZXJiaWFcIixcImFiYnJldmlhdGlvblwiOlwiUlNcIn0se1wibmFtZVwiOlwiU2VyYmlhIGFuZCBNb250ZW5lZ3JvXCIsXCJhYmJyZXZpYXRpb25cIjpcIkNTXCJ9LHtcIm5hbWVcIjpcIlNleWNoZWxsZXNcIixcImFiYnJldmlhdGlvblwiOlwiU0NcIn0se1wibmFtZVwiOlwiU2llcnJhIExlb25lXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNMXCJ9LHtcIm5hbWVcIjpcIlNpbmdhcG9yZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTR1wifSx7XCJuYW1lXCI6XCJTbG92YWtpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTS1wifSx7XCJuYW1lXCI6XCJTbG92ZW5pYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTSVwifSx7XCJuYW1lXCI6XCJTb2xvbW9uIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiU0JcIn0se1wibmFtZVwiOlwiU29tYWxpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTT1wifSx7XCJuYW1lXCI6XCJTb3V0aCBBZnJpY2FcIixcImFiYnJldmlhdGlvblwiOlwiWkFcIn0se1wibmFtZVwiOlwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiR1NcIn0se1wibmFtZVwiOlwiU291dGggS29yZWFcIixcImFiYnJldmlhdGlvblwiOlwiS1JcIn0se1wibmFtZVwiOlwiU3BhaW5cIixcImFiYnJldmlhdGlvblwiOlwiRVNcIn0se1wibmFtZVwiOlwiU3JpIExhbmthXCIsXCJhYmJyZXZpYXRpb25cIjpcIkxLXCJ9LHtcIm5hbWVcIjpcIlN1ZGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNEXCJ9LHtcIm5hbWVcIjpcIlN1cmluYW1lXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNSXCJ9LHtcIm5hbWVcIjpcIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW5cIixcImFiYnJldmlhdGlvblwiOlwiU0pcIn0se1wibmFtZVwiOlwiU3dhemlsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIlNaXCJ9LHtcIm5hbWVcIjpcIlN3ZWRlblwiLFwiYWJicmV2aWF0aW9uXCI6XCJTRVwifSx7XCJuYW1lXCI6XCJTd2l0emVybGFuZFwiLFwiYWJicmV2aWF0aW9uXCI6XCJDSFwifSx7XCJuYW1lXCI6XCJTeXJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJTWVwifSx7XCJuYW1lXCI6XCJTw6NvIFRvbcOpIGFuZCBQcsOtbmNpcGVcIixcImFiYnJldmlhdGlvblwiOlwiU1RcIn0se1wibmFtZVwiOlwiVGFpd2FuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRXXCJ9LHtcIm5hbWVcIjpcIlRhamlraXN0YW5cIixcImFiYnJldmlhdGlvblwiOlwiVEpcIn0se1wibmFtZVwiOlwiVGFuemFuaWFcIixcImFiYnJldmlhdGlvblwiOlwiVFpcIn0se1wibmFtZVwiOlwiVGhhaWxhbmRcIixcImFiYnJldmlhdGlvblwiOlwiVEhcIn0se1wibmFtZVwiOlwiVGltb3ItTGVzdGVcIixcImFiYnJldmlhdGlvblwiOlwiVExcIn0se1wibmFtZVwiOlwiVG9nb1wiLFwiYWJicmV2aWF0aW9uXCI6XCJUR1wifSx7XCJuYW1lXCI6XCJUb2tlbGF1XCIsXCJhYmJyZXZpYXRpb25cIjpcIlRLXCJ9LHtcIm5hbWVcIjpcIlRvbmdhXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRPXCJ9LHtcIm5hbWVcIjpcIlRyaW5pZGFkIGFuZCBUb2JhZ29cIixcImFiYnJldmlhdGlvblwiOlwiVFRcIn0se1wibmFtZVwiOlwiVHVuaXNpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJUTlwifSx7XCJuYW1lXCI6XCJUdXJrZXlcIixcImFiYnJldmlhdGlvblwiOlwiVFJcIn0se1wibmFtZVwiOlwiVHVya21lbmlzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlRNXCJ9LHtcIm5hbWVcIjpcIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJUQ1wifSx7XCJuYW1lXCI6XCJUdXZhbHVcIixcImFiYnJldmlhdGlvblwiOlwiVFZcIn0se1wibmFtZVwiOlwiVS5TLiBNaW5vciBPdXRseWluZyBJc2xhbmRzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVNXCJ9LHtcIm5hbWVcIjpcIlUuUy4gTWlzY2VsbGFuZW91cyBQYWNpZmljIElzbGFuZHNcIixcImFiYnJldmlhdGlvblwiOlwiUFVcIn0se1wibmFtZVwiOlwiVS5TLiBWaXJnaW4gSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJWSVwifSx7XCJuYW1lXCI6XCJVZ2FuZGFcIixcImFiYnJldmlhdGlvblwiOlwiVUdcIn0se1wibmFtZVwiOlwiVWtyYWluZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJVQVwifSx7XCJuYW1lXCI6XCJVbmlvbiBvZiBTb3ZpZXQgU29jaWFsaXN0IFJlcHVibGljc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJTVVwifSx7XCJuYW1lXCI6XCJVbml0ZWQgQXJhYiBFbWlyYXRlc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJBRVwifSx7XCJuYW1lXCI6XCJVbml0ZWQgS2luZ2RvbVwiLFwiYWJicmV2aWF0aW9uXCI6XCJHQlwifSx7XCJuYW1lXCI6XCJVbml0ZWQgU3RhdGVzXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVTXCJ9LHtcIm5hbWVcIjpcIlVua25vd24gb3IgSW52YWxpZCBSZWdpb25cIixcImFiYnJldmlhdGlvblwiOlwiWlpcIn0se1wibmFtZVwiOlwiVXJ1Z3VheVwiLFwiYWJicmV2aWF0aW9uXCI6XCJVWVwifSx7XCJuYW1lXCI6XCJVemJla2lzdGFuXCIsXCJhYmJyZXZpYXRpb25cIjpcIlVaXCJ9LHtcIm5hbWVcIjpcIlZhbnVhdHVcIixcImFiYnJldmlhdGlvblwiOlwiVlVcIn0se1wibmFtZVwiOlwiVmF0aWNhbiBDaXR5XCIsXCJhYmJyZXZpYXRpb25cIjpcIlZBXCJ9LHtcIm5hbWVcIjpcIlZlbmV6dWVsYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJWRVwifSx7XCJuYW1lXCI6XCJWaWV0bmFtXCIsXCJhYmJyZXZpYXRpb25cIjpcIlZOXCJ9LHtcIm5hbWVcIjpcIldha2UgSXNsYW5kXCIsXCJhYmJyZXZpYXRpb25cIjpcIldLXCJ9LHtcIm5hbWVcIjpcIldhbGxpcyBhbmQgRnV0dW5hXCIsXCJhYmJyZXZpYXRpb25cIjpcIldGXCJ9LHtcIm5hbWVcIjpcIldlc3Rlcm4gU2FoYXJhXCIsXCJhYmJyZXZpYXRpb25cIjpcIkVIXCJ9LHtcIm5hbWVcIjpcIlllbWVuXCIsXCJhYmJyZXZpYXRpb25cIjpcIllFXCJ9LHtcIm5hbWVcIjpcIlphbWJpYVwiLFwiYWJicmV2aWF0aW9uXCI6XCJaTVwifSx7XCJuYW1lXCI6XCJaaW1iYWJ3ZVwiLFwiYWJicmV2aWF0aW9uXCI6XCJaV1wifSx7XCJuYW1lXCI6XCLDhWxhbmQgSXNsYW5kc1wiLFwiYWJicmV2aWF0aW9uXCI6XCJBWFwifV0sXG5cbiAgICAgICAgcHJvdmluY2VzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FsYmVydGEnLCBhYmJyZXZpYXRpb246ICdBQid9LFxuICAgICAgICAgICAge25hbWU6ICdCcml0aXNoIENvbHVtYmlhJywgYWJicmV2aWF0aW9uOiAnQkMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFuaXRvYmEnLCBhYmJyZXZpYXRpb246ICdNQid9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgQnJ1bnN3aWNrJywgYWJicmV2aWF0aW9uOiAnTkInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3Zm91bmRsYW5kIGFuZCBMYWJyYWRvcicsIGFiYnJldmlhdGlvbjogJ05MJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vdmEgU2NvdGlhJywgYWJicmV2aWF0aW9uOiAnTlMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT250YXJpbycsIGFiYnJldmlhdGlvbjogJ09OJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1ByaW5jZSBFZHdhcmQgSXNsYW5kJywgYWJicmV2aWF0aW9uOiAnUEUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUXVlYmVjJywgYWJicmV2aWF0aW9uOiAnUUMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU2Fza2F0Y2hld2FuJywgYWJicmV2aWF0aW9uOiAnU0snfSxcblxuICAgICAgICAgICAgLy8gVGhlIGNhc2UgY291bGQgYmUgbWFkZSB0aGF0IHRoZSBmb2xsb3dpbmcgYXJlIG5vdCBhY3R1YWxseSBwcm92aW5jZXNcbiAgICAgICAgICAgIC8vIHNpbmNlIHRoZXkgYXJlIHRlY2huaWNhbGx5IGNvbnNpZGVyZWQgXCJ0ZXJyaXRvcmllc1wiIGhvd2V2ZXIgdGhleSBhbGxcbiAgICAgICAgICAgIC8vIGxvb2sgdGhlIHNhbWUgb24gYW4gZW52ZWxvcGUhXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRod2VzdCBUZXJyaXRvcmllcycsIGFiYnJldmlhdGlvbjogJ05UJ30sXG4gICAgICAgICAgICB7bmFtZTogJ051bmF2dXQnLCBhYmJyZXZpYXRpb246ICdOVSd9LFxuICAgICAgICAgICAge25hbWU6ICdZdWtvbicsIGFiYnJldmlhdGlvbjogJ1lUJ31cbiAgICAgICAgXSxcblxuICAgICAgICB1c19zdGF0ZXNfYW5kX2RjOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FsYWJhbWEnLCBhYmJyZXZpYXRpb246ICdBTCd9LFxuICAgICAgICAgICAge25hbWU6ICdBbGFza2EnLCBhYmJyZXZpYXRpb246ICdBSyd9LFxuICAgICAgICAgICAge25hbWU6ICdBcml6b25hJywgYWJicmV2aWF0aW9uOiAnQVonfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXJrYW5zYXMnLCBhYmJyZXZpYXRpb246ICdBUid9LFxuICAgICAgICAgICAge25hbWU6ICdDYWxpZm9ybmlhJywgYWJicmV2aWF0aW9uOiAnQ0EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ29sb3JhZG8nLCBhYmJyZXZpYXRpb246ICdDTyd9LFxuICAgICAgICAgICAge25hbWU6ICdDb25uZWN0aWN1dCcsIGFiYnJldmlhdGlvbjogJ0NUJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0RlbGF3YXJlJywgYWJicmV2aWF0aW9uOiAnREUnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRGlzdHJpY3Qgb2YgQ29sdW1iaWEnLCBhYmJyZXZpYXRpb246ICdEQyd9LFxuICAgICAgICAgICAge25hbWU6ICdGbG9yaWRhJywgYWJicmV2aWF0aW9uOiAnRkwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnR2VvcmdpYScsIGFiYnJldmlhdGlvbjogJ0dBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0hhd2FpaScsIGFiYnJldmlhdGlvbjogJ0hJJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0lkYWhvJywgYWJicmV2aWF0aW9uOiAnSUQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSWxsaW5vaXMnLCBhYmJyZXZpYXRpb246ICdJTCd9LFxuICAgICAgICAgICAge25hbWU6ICdJbmRpYW5hJywgYWJicmV2aWF0aW9uOiAnSU4nfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSW93YScsIGFiYnJldmlhdGlvbjogJ0lBJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0thbnNhcycsIGFiYnJldmlhdGlvbjogJ0tTJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0tlbnR1Y2t5JywgYWJicmV2aWF0aW9uOiAnS1knfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTG91aXNpYW5hJywgYWJicmV2aWF0aW9uOiAnTEEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFpbmUnLCBhYmJyZXZpYXRpb246ICdNRSd9LFxuICAgICAgICAgICAge25hbWU6ICdNYXJ5bGFuZCcsIGFiYnJldmlhdGlvbjogJ01EJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hc3NhY2h1c2V0dHMnLCBhYmJyZXZpYXRpb246ICdNQSd9LFxuICAgICAgICAgICAge25hbWU6ICdNaWNoaWdhbicsIGFiYnJldmlhdGlvbjogJ01JJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pbm5lc290YScsIGFiYnJldmlhdGlvbjogJ01OJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pc3Npc3NpcHBpJywgYWJicmV2aWF0aW9uOiAnTVMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWlzc291cmknLCBhYmJyZXZpYXRpb246ICdNTyd9LFxuICAgICAgICAgICAge25hbWU6ICdNb250YW5hJywgYWJicmV2aWF0aW9uOiAnTVQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmVicmFza2EnLCBhYmJyZXZpYXRpb246ICdORSd9LFxuICAgICAgICAgICAge25hbWU6ICdOZXZhZGEnLCBhYmJyZXZpYXRpb246ICdOVid9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgSGFtcHNoaXJlJywgYWJicmV2aWF0aW9uOiAnTkgnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTmV3IEplcnNleScsIGFiYnJldmlhdGlvbjogJ05KJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05ldyBNZXhpY28nLCBhYmJyZXZpYXRpb246ICdOTSd9LFxuICAgICAgICAgICAge25hbWU6ICdOZXcgWW9yaycsIGFiYnJldmlhdGlvbjogJ05ZJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRoIENhcm9saW5hJywgYWJicmV2aWF0aW9uOiAnTkMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTm9ydGggRGFrb3RhJywgYWJicmV2aWF0aW9uOiAnTkQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT2hpbycsIGFiYnJldmlhdGlvbjogJ09IJ30sXG4gICAgICAgICAgICB7bmFtZTogJ09rbGFob21hJywgYWJicmV2aWF0aW9uOiAnT0snfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT3JlZ29uJywgYWJicmV2aWF0aW9uOiAnT1InfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUGVubnN5bHZhbmlhJywgYWJicmV2aWF0aW9uOiAnUEEnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUmhvZGUgSXNsYW5kJywgYWJicmV2aWF0aW9uOiAnUkknfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU291dGggQ2Fyb2xpbmEnLCBhYmJyZXZpYXRpb246ICdTQyd9LFxuICAgICAgICAgICAge25hbWU6ICdTb3V0aCBEYWtvdGEnLCBhYmJyZXZpYXRpb246ICdTRCd9LFxuICAgICAgICAgICAge25hbWU6ICdUZW5uZXNzZWUnLCBhYmJyZXZpYXRpb246ICdUTid9LFxuICAgICAgICAgICAge25hbWU6ICdUZXhhcycsIGFiYnJldmlhdGlvbjogJ1RYJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1V0YWgnLCBhYmJyZXZpYXRpb246ICdVVCd9LFxuICAgICAgICAgICAge25hbWU6ICdWZXJtb250JywgYWJicmV2aWF0aW9uOiAnVlQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlyZ2luaWEnLCBhYmJyZXZpYXRpb246ICdWQSd9LFxuICAgICAgICAgICAge25hbWU6ICdXYXNoaW5ndG9uJywgYWJicmV2aWF0aW9uOiAnV0EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnV2VzdCBWaXJnaW5pYScsIGFiYnJldmlhdGlvbjogJ1dWJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1dpc2NvbnNpbicsIGFiYnJldmlhdGlvbjogJ1dJJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1d5b21pbmcnLCBhYmJyZXZpYXRpb246ICdXWSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgdGVycml0b3JpZXM6IFtcbiAgICAgICAgICAgIHtuYW1lOiAnQW1lcmljYW4gU2Ftb2EnLCBhYmJyZXZpYXRpb246ICdBUyd9LFxuICAgICAgICAgICAge25hbWU6ICdGZWRlcmF0ZWQgU3RhdGVzIG9mIE1pY3JvbmVzaWEnLCBhYmJyZXZpYXRpb246ICdGTSd9LFxuICAgICAgICAgICAge25hbWU6ICdHdWFtJywgYWJicmV2aWF0aW9uOiAnR1UnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFyc2hhbGwgSXNsYW5kcycsIGFiYnJldmlhdGlvbjogJ01IJ30sXG4gICAgICAgICAgICB7bmFtZTogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsIGFiYnJldmlhdGlvbjogJ01QJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1B1ZXJ0byBSaWNvJywgYWJicmV2aWF0aW9uOiAnUFInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlyZ2luIElzbGFuZHMsIFUuUy4nLCBhYmJyZXZpYXRpb246ICdWSSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgYXJtZWRfZm9yY2VzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0FybWVkIEZvcmNlcyBFdXJvcGUnLCBhYmJyZXZpYXRpb246ICdBRSd9LFxuICAgICAgICAgICAge25hbWU6ICdBcm1lZCBGb3JjZXMgUGFjaWZpYycsIGFiYnJldmlhdGlvbjogJ0FQJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0FybWVkIEZvcmNlcyB0aGUgQW1lcmljYXMnLCBhYmJyZXZpYXRpb246ICdBQSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgc3RyZWV0X3N1ZmZpeGVzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0F2ZW51ZScsIGFiYnJldmlhdGlvbjogJ0F2ZSd9LFxuICAgICAgICAgICAge25hbWU6ICdCb3VsZXZhcmQnLCBhYmJyZXZpYXRpb246ICdCbHZkJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0NlbnRlcicsIGFiYnJldmlhdGlvbjogJ0N0cid9LFxuICAgICAgICAgICAge25hbWU6ICdDaXJjbGUnLCBhYmJyZXZpYXRpb246ICdDaXInfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQ291cnQnLCBhYmJyZXZpYXRpb246ICdDdCd9LFxuICAgICAgICAgICAge25hbWU6ICdEcml2ZScsIGFiYnJldmlhdGlvbjogJ0RyJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0V4dGVuc2lvbicsIGFiYnJldmlhdGlvbjogJ0V4dCd9LFxuICAgICAgICAgICAge25hbWU6ICdHbGVuJywgYWJicmV2aWF0aW9uOiAnR2xuJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0dyb3ZlJywgYWJicmV2aWF0aW9uOiAnR3J2J30sXG4gICAgICAgICAgICB7bmFtZTogJ0hlaWdodHMnLCBhYmJyZXZpYXRpb246ICdIdHMnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnSGlnaHdheScsIGFiYnJldmlhdGlvbjogJ0h3eSd9LFxuICAgICAgICAgICAge25hbWU6ICdKdW5jdGlvbicsIGFiYnJldmlhdGlvbjogJ0pjdCd9LFxuICAgICAgICAgICAge25hbWU6ICdLZXknLCBhYmJyZXZpYXRpb246ICdLZXknfSxcbiAgICAgICAgICAgIHtuYW1lOiAnTGFuZScsIGFiYnJldmlhdGlvbjogJ0xuJ30sXG4gICAgICAgICAgICB7bmFtZTogJ0xvb3AnLCBhYmJyZXZpYXRpb246ICdMb29wJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01hbm9yJywgYWJicmV2aWF0aW9uOiAnTW5yJ30sXG4gICAgICAgICAgICB7bmFtZTogJ01pbGwnLCBhYmJyZXZpYXRpb246ICdNaWxsJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BhcmsnLCBhYmJyZXZpYXRpb246ICdQYXJrJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bhcmt3YXknLCBhYmJyZXZpYXRpb246ICdQa3d5J30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bhc3MnLCBhYmJyZXZpYXRpb246ICdQYXNzJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BhdGgnLCBhYmJyZXZpYXRpb246ICdQYXRoJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1Bpa2UnLCBhYmJyZXZpYXRpb246ICdQaWtlJ30sXG4gICAgICAgICAgICB7bmFtZTogJ1BsYWNlJywgYWJicmV2aWF0aW9uOiAnUGwnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUGxhemEnLCBhYmJyZXZpYXRpb246ICdQbHonfSxcbiAgICAgICAgICAgIHtuYW1lOiAnUG9pbnQnLCBhYmJyZXZpYXRpb246ICdQdCd9LFxuICAgICAgICAgICAge25hbWU6ICdSaWRnZScsIGFiYnJldmlhdGlvbjogJ1JkZyd9LFxuICAgICAgICAgICAge25hbWU6ICdSaXZlcicsIGFiYnJldmlhdGlvbjogJ1Jpdid9LFxuICAgICAgICAgICAge25hbWU6ICdSb2FkJywgYWJicmV2aWF0aW9uOiAnUmQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU3F1YXJlJywgYWJicmV2aWF0aW9uOiAnU3EnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU3RyZWV0JywgYWJicmV2aWF0aW9uOiAnU3QnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVGVycmFjZScsIGFiYnJldmlhdGlvbjogJ1Rlcid9LFxuICAgICAgICAgICAge25hbWU6ICdUcmFpbCcsIGFiYnJldmlhdGlvbjogJ1RybCd9LFxuICAgICAgICAgICAge25hbWU6ICdUdXJucGlrZScsIGFiYnJldmlhdGlvbjogJ1Rwa2UnfSxcbiAgICAgICAgICAgIHtuYW1lOiAnVmlldycsIGFiYnJldmlhdGlvbjogJ1Z3J30sXG4gICAgICAgICAgICB7bmFtZTogJ1dheScsIGFiYnJldmlhdGlvbjogJ1dheSd9XG4gICAgICAgIF0sXG5cbiAgICAgICAgbW9udGhzOiBbXG4gICAgICAgICAgICB7bmFtZTogJ0phbnVhcnknLCBzaG9ydF9uYW1lOiAnSmFuJywgbnVtZXJpYzogJzAxJywgZGF5czogMzF9LFxuICAgICAgICAgICAgLy8gTm90IG1lc3Npbmcgd2l0aCBsZWFwIHllYXJzLi4uXG4gICAgICAgICAgICB7bmFtZTogJ0ZlYnJ1YXJ5Jywgc2hvcnRfbmFtZTogJ0ZlYicsIG51bWVyaWM6ICcwMicsIGRheXM6IDI4fSxcbiAgICAgICAgICAgIHtuYW1lOiAnTWFyY2gnLCBzaG9ydF9uYW1lOiAnTWFyJywgbnVtZXJpYzogJzAzJywgZGF5czogMzF9LFxuICAgICAgICAgICAge25hbWU6ICdBcHJpbCcsIHNob3J0X25hbWU6ICdBcHInLCBudW1lcmljOiAnMDQnLCBkYXlzOiAzMH0sXG4gICAgICAgICAgICB7bmFtZTogJ01heScsIHNob3J0X25hbWU6ICdNYXknLCBudW1lcmljOiAnMDUnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ0p1bmUnLCBzaG9ydF9uYW1lOiAnSnVuJywgbnVtZXJpYzogJzA2JywgZGF5czogMzB9LFxuICAgICAgICAgICAge25hbWU6ICdKdWx5Jywgc2hvcnRfbmFtZTogJ0p1bCcsIG51bWVyaWM6ICcwNycsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIHtuYW1lOiAnQXVndXN0Jywgc2hvcnRfbmFtZTogJ0F1ZycsIG51bWVyaWM6ICcwOCcsIGRheXM6IDMxfSxcbiAgICAgICAgICAgIHtuYW1lOiAnU2VwdGVtYmVyJywgc2hvcnRfbmFtZTogJ1NlcCcsIG51bWVyaWM6ICcwOScsIGRheXM6IDMwfSxcbiAgICAgICAgICAgIHtuYW1lOiAnT2N0b2JlcicsIHNob3J0X25hbWU6ICdPY3QnLCBudW1lcmljOiAnMTAnLCBkYXlzOiAzMX0sXG4gICAgICAgICAgICB7bmFtZTogJ05vdmVtYmVyJywgc2hvcnRfbmFtZTogJ05vdicsIG51bWVyaWM6ICcxMScsIGRheXM6IDMwfSxcbiAgICAgICAgICAgIHtuYW1lOiAnRGVjZW1iZXInLCBzaG9ydF9uYW1lOiAnRGVjJywgbnVtZXJpYzogJzEyJywgZGF5czogMzF9XG4gICAgICAgIF0sXG5cbiAgICAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYW5rX2NhcmRfbnVtYmVyI0lzc3Vlcl9pZGVudGlmaWNhdGlvbl9udW1iZXJfLjI4SUlOLjI5XG4gICAgICAgIGNjX3R5cGVzOiBbXG4gICAgICAgICAgICB7bmFtZTogXCJBbWVyaWNhbiBFeHByZXNzXCIsIHNob3J0X25hbWU6ICdhbWV4JywgcHJlZml4OiAnMzQnLCBsZW5ndGg6IDE1fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkJhbmtjYXJkXCIsIHNob3J0X25hbWU6ICdiYW5rY2FyZCcsIHByZWZpeDogJzU2MTAnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkNoaW5hIFVuaW9uUGF5XCIsIHNob3J0X25hbWU6ICdjaGluYXVuaW9uJywgcHJlZml4OiAnNjInLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIENhcnRlIEJsYW5jaGVcIiwgc2hvcnRfbmFtZTogJ2RjY2FydGUnLCBwcmVmaXg6ICczMDAnLCBsZW5ndGg6IDE0fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIGVuUm91dGVcIiwgc2hvcnRfbmFtZTogJ2RjZW5yb3V0ZScsIHByZWZpeDogJzIwMTQnLCBsZW5ndGg6IDE1fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkRpbmVycyBDbHViIEludGVybmF0aW9uYWxcIiwgc2hvcnRfbmFtZTogJ2RjaW50bCcsIHByZWZpeDogJzM2JywgbGVuZ3RoOiAxNH0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaW5lcnMgQ2x1YiBVbml0ZWQgU3RhdGVzICYgQ2FuYWRhXCIsIHNob3J0X25hbWU6ICdkY3VzYycsIHByZWZpeDogJzU0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJEaXNjb3ZlciBDYXJkXCIsIHNob3J0X25hbWU6ICdkaXNjb3ZlcicsIHByZWZpeDogJzYwMTEnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkluc3RhUGF5bWVudFwiLCBzaG9ydF9uYW1lOiAnaW5zdGFwYXknLCBwcmVmaXg6ICc2MzcnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIkpDQlwiLCBzaG9ydF9uYW1lOiAnamNiJywgcHJlZml4OiAnMzUyOCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiTGFzZXJcIiwgc2hvcnRfbmFtZTogJ2xhc2VyJywgcHJlZml4OiAnNjMwNCcsIGxlbmd0aDogMTZ9LFxuICAgICAgICAgICAge25hbWU6IFwiTWFlc3Ryb1wiLCBzaG9ydF9uYW1lOiAnbWFlc3RybycsIHByZWZpeDogJzUwMTgnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIk1hc3RlcmNhcmRcIiwgc2hvcnRfbmFtZTogJ21jJywgcHJlZml4OiAnNTEnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIlNvbG9cIiwgc2hvcnRfbmFtZTogJ3NvbG8nLCBwcmVmaXg6ICc2MzM0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJTd2l0Y2hcIiwgc2hvcnRfbmFtZTogJ3N3aXRjaCcsIHByZWZpeDogJzQ5MDMnLCBsZW5ndGg6IDE2fSxcbiAgICAgICAgICAgIHtuYW1lOiBcIlZpc2FcIiwgc2hvcnRfbmFtZTogJ3Zpc2EnLCBwcmVmaXg6ICc0JywgbGVuZ3RoOiAxNn0sXG4gICAgICAgICAgICB7bmFtZTogXCJWaXNhIEVsZWN0cm9uXCIsIHNob3J0X25hbWU6ICdlbGVjdHJvbicsIHByZWZpeDogJzQwMjYnLCBsZW5ndGg6IDE2fVxuICAgICAgICBdLFxuXG4gICAgICAgIC8vcmV0dXJuIGFsbCB3b3JsZCBjdXJyZW5jeSBieSBJU08gNDIxN1xuICAgICAgICBjdXJyZW5jeV90eXBlczogW1xuICAgICAgICAgICAgeydjb2RlJyA6ICdBRUQnLCAnbmFtZScgOiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMgRGlyaGFtJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FGTicsICduYW1lJyA6ICdBZmdoYW5pc3RhbiBBZmdoYW5pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FMTCcsICduYW1lJyA6ICdBbGJhbmlhIExlayd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBTUQnLCAnbmFtZScgOiAnQXJtZW5pYSBEcmFtJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FORycsICduYW1lJyA6ICdOZXRoZXJsYW5kcyBBbnRpbGxlcyBHdWlsZGVyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FPQScsICduYW1lJyA6ICdBbmdvbGEgS3dhbnphJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0FSUycsICduYW1lJyA6ICdBcmdlbnRpbmEgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBVUQnLCAnbmFtZScgOiAnQXVzdHJhbGlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBV0cnLCAnbmFtZScgOiAnQXJ1YmEgR3VpbGRlcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdBWk4nLCAnbmFtZScgOiAnQXplcmJhaWphbiBOZXcgTWFuYXQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkFNJywgJ25hbWUnIDogJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEgQ29udmVydGlibGUgTWFya2EnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkJEJywgJ25hbWUnIDogJ0JhcmJhZG9zIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCRFQnLCAnbmFtZScgOiAnQmFuZ2xhZGVzaCBUYWthJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JHTicsICduYW1lJyA6ICdCdWxnYXJpYSBMZXYnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQkhEJywgJ25hbWUnIDogJ0JhaHJhaW4gRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQklGJywgJ25hbWUnIDogJ0J1cnVuZGkgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQk1EJywgJ25hbWUnIDogJ0Jlcm11ZGEgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JORCcsICduYW1lJyA6ICdCcnVuZWkgRGFydXNzYWxhbSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQk9CJywgJ25hbWUnIDogJ0JvbGl2aWEgQm9saXZpYW5vJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0JSTCcsICduYW1lJyA6ICdCcmF6aWwgUmVhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCU0QnLCAnbmFtZScgOiAnQmFoYW1hcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQlROJywgJ25hbWUnIDogJ0JodXRhbiBOZ3VsdHJ1bSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCV1AnLCAnbmFtZScgOiAnQm90c3dhbmEgUHVsYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCWVInLCAnbmFtZScgOiAnQmVsYXJ1cyBSdWJsZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdCWkQnLCAnbmFtZScgOiAnQmVsaXplIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDQUQnLCAnbmFtZScgOiAnQ2FuYWRhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDREYnLCAnbmFtZScgOiAnQ29uZ28vS2luc2hhc2EgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ0hGJywgJ25hbWUnIDogJ1N3aXR6ZXJsYW5kIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NMUCcsICduYW1lJyA6ICdDaGlsZSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NOWScsICduYW1lJyA6ICdDaGluYSBZdWFuIFJlbm1pbmJpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NPUCcsICduYW1lJyA6ICdDb2xvbWJpYSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NSQycsICduYW1lJyA6ICdDb3N0YSBSaWNhIENvbG9uJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0NVQycsICduYW1lJyA6ICdDdWJhIENvbnZlcnRpYmxlIFBlc28nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ1VQJywgJ25hbWUnIDogJ0N1YmEgUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdDVkUnLCAnbmFtZScgOiAnQ2FwZSBWZXJkZSBFc2N1ZG8nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnQ1pLJywgJ25hbWUnIDogJ0N6ZWNoIFJlcHVibGljIEtvcnVuYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdESkYnLCAnbmFtZScgOiAnRGppYm91dGkgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnREtLJywgJ25hbWUnIDogJ0Rlbm1hcmsgS3JvbmUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnRE9QJywgJ25hbWUnIDogJ0RvbWluaWNhbiBSZXB1YmxpYyBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0RaRCcsICduYW1lJyA6ICdBbGdlcmlhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0VHUCcsICduYW1lJyA6ICdFZ3lwdCBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFUk4nLCAnbmFtZScgOiAnRXJpdHJlYSBOYWtmYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFVEInLCAnbmFtZScgOiAnRXRoaW9waWEgQmlycid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdFVVInLCAnbmFtZScgOiAnRXVybyBNZW1iZXIgQ291bnRyaWVzJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0ZKRCcsICduYW1lJyA6ICdGaWppIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdGS1AnLCAnbmFtZScgOiAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dCUCcsICduYW1lJyA6ICdVbml0ZWQgS2luZ2RvbSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHRUwnLCAnbmFtZScgOiAnR2VvcmdpYSBMYXJpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dHUCcsICduYW1lJyA6ICdHdWVybnNleSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHSFMnLCAnbmFtZScgOiAnR2hhbmEgQ2VkaSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdHSVAnLCAnbmFtZScgOiAnR2licmFsdGFyIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dNRCcsICduYW1lJyA6ICdHYW1iaWEgRGFsYXNpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dORicsICduYW1lJyA6ICdHdWluZWEgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnR1RRJywgJ25hbWUnIDogJ0d1YXRlbWFsYSBRdWV0emFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0dZRCcsICduYW1lJyA6ICdHdXlhbmEgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hLRCcsICduYW1lJyA6ICdIb25nIEtvbmcgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hOTCcsICduYW1lJyA6ICdIb25kdXJhcyBMZW1waXJhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0hSSycsICduYW1lJyA6ICdDcm9hdGlhIEt1bmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSFRHJywgJ25hbWUnIDogJ0hhaXRpIEdvdXJkZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdIVUYnLCAnbmFtZScgOiAnSHVuZ2FyeSBGb3JpbnQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSURSJywgJ25hbWUnIDogJ0luZG9uZXNpYSBSdXBpYWgnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSUxTJywgJ25hbWUnIDogJ0lzcmFlbCBTaGVrZWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSU1QJywgJ25hbWUnIDogJ0lzbGUgb2YgTWFuIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lOUicsICduYW1lJyA6ICdJbmRpYSBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJUUQnLCAnbmFtZScgOiAnSXJhcSBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdJUlInLCAnbmFtZScgOiAnSXJhbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0lTSycsICduYW1lJyA6ICdJY2VsYW5kIEtyb25hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pFUCcsICduYW1lJyA6ICdKZXJzZXkgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSk1EJywgJ25hbWUnIDogJ0phbWFpY2EgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0pPRCcsICduYW1lJyA6ICdKb3JkYW4gRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnSlBZJywgJ25hbWUnIDogJ0phcGFuIFllbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLRVMnLCAnbmFtZScgOiAnS2VueWEgU2hpbGxpbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS0dTJywgJ25hbWUnIDogJ0t5cmd5enN0YW4gU29tJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tIUicsICduYW1lJyA6ICdDYW1ib2RpYSBSaWVsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tNRicsICduYW1lJyA6ICdDb21vcm9zIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0tQVycsICduYW1lJyA6ICdLb3JlYSAoTm9ydGgpIFdvbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLUlcnLCAnbmFtZScgOiAnS29yZWEgKFNvdXRoKSBXb24nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnS1dEJywgJ25hbWUnIDogJ0t1d2FpdCBEaW5hcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdLWUQnLCAnbmFtZScgOiAnQ2F5bWFuIElzbGFuZHMgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0taVCcsICduYW1lJyA6ICdLYXpha2hzdGFuIFRlbmdlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xBSycsICduYW1lJyA6ICdMYW9zIEtpcCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMQlAnLCAnbmFtZScgOiAnTGViYW5vbiBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMS1InLCAnbmFtZScgOiAnU3JpIExhbmthIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xSRCcsICduYW1lJyA6ICdMaWJlcmlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdMU0wnLCAnbmFtZScgOiAnTGVzb3RobyBMb3RpJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ0xUTCcsICduYW1lJyA6ICdMaXRodWFuaWEgTGl0YXMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTFlEJywgJ25hbWUnIDogJ0xpYnlhIERpbmFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01BRCcsICduYW1lJyA6ICdNb3JvY2NvIERpcmhhbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNREwnLCAnbmFtZScgOiAnTW9sZG92YSBMZXUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTUdBJywgJ25hbWUnIDogJ01hZGFnYXNjYXIgQXJpYXJ5J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01LRCcsICduYW1lJyA6ICdNYWNlZG9uaWEgRGVuYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTU1LJywgJ25hbWUnIDogJ015YW5tYXIgKEJ1cm1hKSBLeWF0J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01OVCcsICduYW1lJyA6ICdNb25nb2xpYSBUdWdocmlrJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01PUCcsICduYW1lJyA6ICdNYWNhdSBQYXRhY2EnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTVJPJywgJ25hbWUnIDogJ01hdXJpdGFuaWEgT3VndWl5YSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNVVInLCAnbmFtZScgOiAnTWF1cml0aXVzIFJ1cGVlJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01WUicsICduYW1lJyA6ICdNYWxkaXZlcyAoTWFsZGl2ZSBJc2xhbmRzKSBSdWZpeWFhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01XSycsICduYW1lJyA6ICdNYWxhd2kgS3dhY2hhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ01YTicsICduYW1lJyA6ICdNZXhpY28gUGVzbyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNWVInLCAnbmFtZScgOiAnTWFsYXlzaWEgUmluZ2dpdCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdNWk4nLCAnbmFtZScgOiAnTW96YW1iaXF1ZSBNZXRpY2FsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ05BRCcsICduYW1lJyA6ICdOYW1pYmlhIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOR04nLCAnbmFtZScgOiAnTmlnZXJpYSBOYWlyYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOSU8nLCAnbmFtZScgOiAnTmljYXJhZ3VhIENvcmRvYmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTk9LJywgJ25hbWUnIDogJ05vcndheSBLcm9uZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdOUFInLCAnbmFtZScgOiAnTmVwYWwgUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnTlpEJywgJ25hbWUnIDogJ05ldyBaZWFsYW5kIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdPTVInLCAnbmFtZScgOiAnT21hbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BBQicsICduYW1lJyA6ICdQYW5hbWEgQmFsYm9hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BFTicsICduYW1lJyA6ICdQZXJ1IE51ZXZvIFNvbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQR0snLCAnbmFtZScgOiAnUGFwdWEgTmV3IEd1aW5lYSBLaW5hJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BIUCcsICduYW1lJyA6ICdQaGlsaXBwaW5lcyBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BLUicsICduYW1lJyA6ICdQYWtpc3RhbiBSdXBlZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdQTE4nLCAnbmFtZScgOiAnUG9sYW5kIFpsb3R5J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1BZRycsICduYW1lJyA6ICdQYXJhZ3VheSBHdWFyYW5pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1FBUicsICduYW1lJyA6ICdRYXRhciBSaXlhbCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdST04nLCAnbmFtZScgOiAnUm9tYW5pYSBOZXcgTGV1J30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1JTRCcsICduYW1lJyA6ICdTZXJiaWEgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnUlVCJywgJ25hbWUnIDogJ1J1c3NpYSBSdWJsZSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdSV0YnLCAnbmFtZScgOiAnUndhbmRhIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NBUicsICduYW1lJyA6ICdTYXVkaSBBcmFiaWEgUml5YWwnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0JEJywgJ25hbWUnIDogJ1NvbG9tb24gSXNsYW5kcyBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0NSJywgJ25hbWUnIDogJ1NleWNoZWxsZXMgUnVwZWUnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0RHJywgJ25hbWUnIDogJ1N1ZGFuIFBvdW5kJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NFSycsICduYW1lJyA6ICdTd2VkZW4gS3JvbmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0dEJywgJ25hbWUnIDogJ1NpbmdhcG9yZSBEb2xsYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU0hQJywgJ25hbWUnIDogJ1NhaW50IEhlbGVuYSBQb3VuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTTEwnLCAnbmFtZScgOiAnU2llcnJhIExlb25lIExlb25lJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NPUycsICduYW1lJyA6ICdTb21hbGlhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NQTCcsICduYW1lJyA6ICdTZWJvcmdhIEx1aWdpbm8nfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1JEJywgJ25hbWUnIDogJ1N1cmluYW1lIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTVEQnLCAnbmFtZScgOiAnU8OjbyBUb23DqSBhbmQgUHLDrW5jaXBlIERvYnJhJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1NWQycsICduYW1lJyA6ICdFbCBTYWx2YWRvciBDb2xvbid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdTWVAnLCAnbmFtZScgOiAnU3lyaWEgUG91bmQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnU1pMJywgJ25hbWUnIDogJ1N3YXppbGFuZCBMaWxhbmdlbmknfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVEhCJywgJ25hbWUnIDogJ1RoYWlsYW5kIEJhaHQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVEpTJywgJ25hbWUnIDogJ1RhamlraXN0YW4gU29tb25pJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RNVCcsICduYW1lJyA6ICdUdXJrbWVuaXN0YW4gTWFuYXQnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVE5EJywgJ25hbWUnIDogJ1R1bmlzaWEgRGluYXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVE9QJywgJ25hbWUnIDogJ1RvbmdhIFBhXFwnYW5nYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUUlknLCAnbmFtZScgOiAnVHVya2V5IExpcmEnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVFREJywgJ25hbWUnIDogJ1RyaW5pZGFkIGFuZCBUb2JhZ28gRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RWRCcsICduYW1lJyA6ICdUdXZhbHUgRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1RXRCcsICduYW1lJyA6ICdUYWl3YW4gTmV3IERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdUWlMnLCAnbmFtZScgOiAnVGFuemFuaWEgU2hpbGxpbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVUFIJywgJ25hbWUnIDogJ1VrcmFpbmUgSHJ5dm5pYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVR1gnLCAnbmFtZScgOiAnVWdhbmRhIFNoaWxsaW5nJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1VTRCcsICduYW1lJyA6ICdVbml0ZWQgU3RhdGVzIERvbGxhcid9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdVWVUnLCAnbmFtZScgOiAnVXJ1Z3VheSBQZXNvJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1VaUycsICduYW1lJyA6ICdVemJla2lzdGFuIFNvbSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdWRUYnLCAnbmFtZScgOiAnVmVuZXp1ZWxhIEJvbGl2YXInfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVk5EJywgJ25hbWUnIDogJ1ZpZXQgTmFtIERvbmcnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnVlVWJywgJ25hbWUnIDogJ1ZhbnVhdHUgVmF0dSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdXU1QnLCAnbmFtZScgOiAnU2Ftb2EgVGFsYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYQUYnLCAnbmFtZScgOiAnQ29tbXVuYXV0w6kgRmluYW5jacOocmUgQWZyaWNhaW5lIChCRUFDKSBDRkEgRnJhbmMgQkVBQyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYQ0QnLCAnbmFtZScgOiAnRWFzdCBDYXJpYmJlYW4gRG9sbGFyJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1hEUicsICduYW1lJyA6ICdJbnRlcm5hdGlvbmFsIE1vbmV0YXJ5IEZ1bmQgKElNRikgU3BlY2lhbCBEcmF3aW5nIFJpZ2h0cyd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdYT0YnLCAnbmFtZScgOiAnQ29tbXVuYXV0w6kgRmluYW5jacOocmUgQWZyaWNhaW5lIChCQ0VBTykgRnJhbmMnfSxcbiAgICAgICAgICAgIHsnY29kZScgOiAnWFBGJywgJ25hbWUnIDogJ0NvbXB0b2lycyBGcmFuw6dhaXMgZHUgUGFjaWZpcXVlIChDRlApIEZyYW5jJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1lFUicsICduYW1lJyA6ICdZZW1lbiBSaWFsJ30sXG4gICAgICAgICAgICB7J2NvZGUnIDogJ1pBUicsICduYW1lJyA6ICdTb3V0aCBBZnJpY2EgUmFuZCd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdaTVcnLCAnbmFtZScgOiAnWmFtYmlhIEt3YWNoYSd9LFxuICAgICAgICAgICAgeydjb2RlJyA6ICdaV0QnLCAnbmFtZScgOiAnWmltYmFid2UgRG9sbGFyJ31cbiAgICAgICAgXVxuICAgIH07XG5cbiAgICB2YXIgb19oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIG9fa2V5cyA9IChPYmplY3Qua2V5cyB8fCBmdW5jdGlvbihvYmopIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKG9faGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBfY29weU9iamVjdChzb3VyY2UsIHRhcmdldCkge1xuICAgICAgdmFyIGtleXMgPSBvX2tleXMoc291cmNlKTtcbiAgICAgIHZhciBrZXk7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XSB8fCB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBfY29weUFycmF5KHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHNvdXJjZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdGFyZ2V0W2ldID0gc291cmNlW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBfdGFyZ2V0KSB7XG4gICAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuICAgICAgICB2YXIgdGFyZ2V0ID0gX3RhcmdldCB8fCAoaXNBcnJheSA/IG5ldyBBcnJheShzb3VyY2UubGVuZ3RoKSA6IHt9KTtcblxuICAgICAgICBpZiAoaXNBcnJheSkge1xuICAgICAgICAgIF9jb3B5QXJyYXkoc291cmNlLCB0YXJnZXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9jb3B5T2JqZWN0KHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgZGF0YSBiYXNlZCBvbiBrZXkqKi9cbiAgICBDaGFuY2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIHJldHVybiBjb3B5T2JqZWN0KGRhdGFbbmFtZV0pO1xuICAgIH07XG5cbiAgICAvLyBNYWMgQWRkcmVzc1xuICAgIENoYW5jZS5wcm90b3R5cGUubWFjX2FkZHJlc3MgPSBmdW5jdGlvbihvcHRpb25zKXtcbiAgICAgICAgLy8gdHlwaWNhbGx5IG1hYyBhZGRyZXNzZXMgYXJlIHNlcGFyYXRlZCBieSBcIjpcIlxuICAgICAgICAvLyBob3dldmVyIHRoZXkgY2FuIGFsc28gYmUgc2VwYXJhdGVkIGJ5IFwiLVwiXG4gICAgICAgIC8vIHRoZSBuZXR3b3JrIHZhcmlhbnQgdXNlcyBhIGRvdCBldmVyeSBmb3VydGggYnl0ZVxuXG4gICAgICAgIG9wdGlvbnMgPSBpbml0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgaWYoIW9wdGlvbnMuc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zLnNlcGFyYXRvciA9ICBvcHRpb25zLm5ldHdvcmtWZXJzaW9uID8gXCIuXCIgOiBcIjpcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBtYWNfcG9vbD1cIkFCQ0RFRjEyMzQ1Njc4OTBcIixcbiAgICAgICAgICAgIG1hYyA9IFwiXCI7XG4gICAgICAgIGlmKCFvcHRpb25zLm5ldHdvcmtWZXJzaW9uKSB7XG4gICAgICAgICAgICBtYWMgPSB0aGlzLm4odGhpcy5zdHJpbmcsIDYsIHsgcG9vbDogbWFjX3Bvb2wsIGxlbmd0aDoyIH0pLmpvaW4ob3B0aW9ucy5zZXBhcmF0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFjID0gdGhpcy5uKHRoaXMuc3RyaW5nLCAzLCB7IHBvb2w6IG1hY19wb29sLCBsZW5ndGg6NCB9KS5qb2luKG9wdGlvbnMuc2VwYXJhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYWM7XG4gICAgfTtcblxuICAgIENoYW5jZS5wcm90b3R5cGUubm9ybWFsID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGluaXRPcHRpb25zKG9wdGlvbnMsIHttZWFuIDogMCwgZGV2IDogMX0pO1xuXG4gICAgICAgIC8vIFRoZSBNYXJzYWdsaWEgUG9sYXIgbWV0aG9kXG4gICAgICAgIHZhciBzLCB1LCB2LCBub3JtLFxuICAgICAgICAgICAgbWVhbiA9IG9wdGlvbnMubWVhbixcbiAgICAgICAgICAgIGRldiA9IG9wdGlvbnMuZGV2O1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIC8vIFUgYW5kIFYgYXJlIGZyb20gdGhlIHVuaWZvcm0gZGlzdHJpYnV0aW9uIG9uICgtMSwgMSlcbiAgICAgICAgICAgIHUgPSB0aGlzLnJhbmRvbSgpICogMiAtIDE7XG4gICAgICAgICAgICB2ID0gdGhpcy5yYW5kb20oKSAqIDIgLSAxO1xuXG4gICAgICAgICAgICBzID0gdSAqIHUgKyB2ICogdjtcbiAgICAgICAgfSB3aGlsZSAocyA+PSAxKTtcblxuICAgICAgICAvLyBDb21wdXRlIHRoZSBzdGFuZGFyZCBub3JtYWwgdmFyaWF0ZVxuICAgICAgICBub3JtID0gdSAqIE1hdGguc3FydCgtMiAqIE1hdGgubG9nKHMpIC8gcyk7XG5cbiAgICAgICAgLy8gU2hhcGUgYW5kIHNjYWxlXG4gICAgICAgIHJldHVybiBkZXYgKiBub3JtICsgbWVhbjtcbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS5yYWRpbyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIC8vIEluaXRpYWwgTGV0dGVyIChUeXBpY2FsbHkgRGVzaWduYXRlZCBieSBTaWRlIG9mIE1pc3Npc3NpcHBpIFJpdmVyKVxuICAgICAgICBvcHRpb25zID0gaW5pdE9wdGlvbnMob3B0aW9ucywge3NpZGUgOiBcIj9cIn0pO1xuICAgICAgICB2YXIgZmwgPSBcIlwiO1xuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuc2lkZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgXCJlYXN0XCI6XG4gICAgICAgIGNhc2UgXCJlXCI6XG4gICAgICAgICAgICBmbCA9IFwiV1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ3ZXN0XCI6XG4gICAgICAgIGNhc2UgXCJ3XCI6XG4gICAgICAgICAgICBmbCA9IFwiS1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBmbCA9IHRoaXMuY2hhcmFjdGVyKHtwb29sOiBcIktXXCJ9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZsICsgdGhpcy5jaGFyYWN0ZXIoe2FscGhhOiB0cnVlLCBjYXNpbmc6IFwidXBwZXJcIn0pICtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3Rlcih7YWxwaGE6IHRydWUsIGNhc2luZzogXCJ1cHBlclwifSkgK1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyKHthbHBoYTogdHJ1ZSwgY2FzaW5nOiBcInVwcGVyXCJ9KTtcbiAgICB9O1xuXG4gICAgLy8gU2V0IHRoZSBkYXRhIGFzIGtleSBhbmQgZGF0YSBvciB0aGUgZGF0YSBtYXBcbiAgICBDaGFuY2UucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBkYXRhW25hbWVdID0gdmFsdWVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YSA9IGNvcHlPYmplY3QobmFtZSwgZGF0YSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhbmNlLnByb3RvdHlwZS50diA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhZGlvKG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICAvLyBJRCBudW1iZXIgZm9yIEJyYXppbCBjb21wYW5pZXNcbiAgICBDaGFuY2UucHJvdG90eXBlLmNucGogPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5uKHRoaXMubmF0dXJhbCwgOCwgeyBtYXg6IDkgfSk7XG4gICAgICAgIHZhciBkMSA9IDIrbls3XSo2K25bNl0qNytuWzVdKjgrbls0XSo5K25bM10qMituWzJdKjMrblsxXSo0K25bMF0qNTtcbiAgICAgICAgZDEgPSAxMSAtIChkMSAlIDExKTtcbiAgICAgICAgaWYgKGQxPj0xMCl7XG4gICAgICAgICAgICBkMSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGQyID0gZDEqMiszK25bN10qNytuWzZdKjgrbls1XSo5K25bNF0qMituWzNdKjMrblsyXSo0K25bMV0qNStuWzBdKjY7XG4gICAgICAgIGQyID0gMTEgLSAoZDIgJSAxMSk7XG4gICAgICAgIGlmIChkMj49MTApe1xuICAgICAgICAgICAgZDIgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJytuWzBdK25bMV0rJy4nK25bMl0rblszXStuWzRdKycuJytuWzVdK25bNl0rbls3XSsnLzAwMDEtJytkMStkMjtcbiAgICB9O1xuXG4gICAgLy8gLS0gRW5kIE1pc2NlbGxhbmVvdXMgLS1cblxuICAgIENoYW5jZS5wcm90b3R5cGUubWVyc2VubmVfdHdpc3RlciA9IGZ1bmN0aW9uIChzZWVkKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWVyc2VubmVUd2lzdGVyKHNlZWQpO1xuICAgIH07XG5cbiAgICBDaGFuY2UucHJvdG90eXBlLmJsdWVpbXBfbWQ1ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IEJsdWVJbXBNRDUoKTtcbiAgICB9O1xuXG4gICAgLy8gTWVyc2VubmUgVHdpc3RlciBmcm9tIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2JhbmtzZWFuLzMwMDQ5NFxuICAgIHZhciBNZXJzZW5uZVR3aXN0ZXIgPSBmdW5jdGlvbiAoc2VlZCkge1xuICAgICAgICBpZiAoc2VlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBrZXB0IHJhbmRvbSBudW1iZXIgc2FtZSBzaXplIGFzIHRpbWUgdXNlZCBwcmV2aW91c2x5IHRvIGVuc3VyZSBubyB1bmV4cGVjdGVkIHJlc3VsdHMgZG93bnN0cmVhbVxuICAgICAgICAgICAgc2VlZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpNYXRoLnBvdygxMCwxMykpO1xuICAgICAgICB9XG4gICAgICAgIC8qIFBlcmlvZCBwYXJhbWV0ZXJzICovXG4gICAgICAgIHRoaXMuTiA9IDYyNDtcbiAgICAgICAgdGhpcy5NID0gMzk3O1xuICAgICAgICB0aGlzLk1BVFJJWF9BID0gMHg5OTA4YjBkZjsgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuICAgICAgICB0aGlzLlVQUEVSX01BU0sgPSAweDgwMDAwMDAwOyAvKiBtb3N0IHNpZ25pZmljYW50IHctciBiaXRzICovXG4gICAgICAgIHRoaXMuTE9XRVJfTUFTSyA9IDB4N2ZmZmZmZmY7IC8qIGxlYXN0IHNpZ25pZmljYW50IHIgYml0cyAqL1xuXG4gICAgICAgIHRoaXMubXQgPSBuZXcgQXJyYXkodGhpcy5OKTsgLyogdGhlIGFycmF5IGZvciB0aGUgc3RhdGUgdmVjdG9yICovXG4gICAgICAgIHRoaXMubXRpID0gdGhpcy5OICsgMTsgLyogbXRpPT1OICsgMSBtZWFucyBtdFtOXSBpcyBub3QgaW5pdGlhbGl6ZWQgKi9cblxuICAgICAgICB0aGlzLmluaXRfZ2VucmFuZChzZWVkKTtcbiAgICB9O1xuXG4gICAgLyogaW5pdGlhbGl6ZXMgbXRbTl0gd2l0aCBhIHNlZWQgKi9cbiAgICBNZXJzZW5uZVR3aXN0ZXIucHJvdG90eXBlLmluaXRfZ2VucmFuZCA9IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgIHRoaXMubXRbMF0gPSBzID4+PiAwO1xuICAgICAgICBmb3IgKHRoaXMubXRpID0gMTsgdGhpcy5tdGkgPCB0aGlzLk47IHRoaXMubXRpKyspIHtcbiAgICAgICAgICAgIHMgPSB0aGlzLm10W3RoaXMubXRpIC0gMV0gXiAodGhpcy5tdFt0aGlzLm10aSAtIDFdID4+PiAzMCk7XG4gICAgICAgICAgICB0aGlzLm10W3RoaXMubXRpXSA9ICgoKCgocyAmIDB4ZmZmZjAwMDApID4+PiAxNikgKiAxODEyNDMzMjUzKSA8PCAxNikgKyAocyAmIDB4MDAwMGZmZmYpICogMTgxMjQzMzI1MykgKyB0aGlzLm10aTtcbiAgICAgICAgICAgIC8qIFNlZSBLbnV0aCBUQU9DUCBWb2wyLiAzcmQgRWQuIFAuMTA2IGZvciBtdWx0aXBsaWVyLiAqL1xuICAgICAgICAgICAgLyogSW4gdGhlIHByZXZpb3VzIHZlcnNpb25zLCBNU0JzIG9mIHRoZSBzZWVkIGFmZmVjdCAgICovXG4gICAgICAgICAgICAvKiBvbmx5IE1TQnMgb2YgdGhlIGFycmF5IG10W10uICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC8qIDIwMDIvMDEvMDkgbW9kaWZpZWQgYnkgTWFrb3RvIE1hdHN1bW90byAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5tdFt0aGlzLm10aV0gPj4+PSAwO1xuICAgICAgICAgICAgLyogZm9yID4zMiBiaXQgbWFjaGluZXMgKi9cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBpbml0aWFsaXplIGJ5IGFuIGFycmF5IHdpdGggYXJyYXktbGVuZ3RoICovXG4gICAgLyogaW5pdF9rZXkgaXMgdGhlIGFycmF5IGZvciBpbml0aWFsaXppbmcga2V5cyAqL1xuICAgIC8qIGtleV9sZW5ndGggaXMgaXRzIGxlbmd0aCAqL1xuICAgIC8qIHNsaWdodCBjaGFuZ2UgZm9yIEMrKywgMjAwNC8yLzI2ICovXG4gICAgTWVyc2VubmVUd2lzdGVyLnByb3RvdHlwZS5pbml0X2J5X2FycmF5ID0gZnVuY3Rpb24gKGluaXRfa2V5LCBrZXlfbGVuZ3RoKSB7XG4gICAgICAgIHZhciBpID0gMSwgaiA9IDAsIGssIHM7XG4gICAgICAgIHRoaXMuaW5pdF9nZW5yYW5kKDE5NjUwMjE4KTtcbiAgICAgICAgayA9ICh0aGlzLk4gPiBrZXlfbGVuZ3RoID8gdGhpcy5OIDoga2V5X2xlbmd0aCk7XG4gICAgICAgIGZvciAoOyBrOyBrLS0pIHtcbiAgICAgICAgICAgIHMgPSB0aGlzLm10W2kgLSAxXSBeICh0aGlzLm10W2kgLSAxXSA+Pj4gMzApO1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA9ICh0aGlzLm10W2ldIF4gKCgoKChzICYgMHhmZmZmMDAwMCkgPj4+IDE2KSAqIDE2NjQ1MjUpIDw8IDE2KSArICgocyAmIDB4MDAwMGZmZmYpICogMTY2NDUyNSkpKSArIGluaXRfa2V5W2pdICsgajsgLyogbm9uIGxpbmVhciAqL1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA+Pj49IDA7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBqKys7XG4gICAgICAgICAgICBpZiAoaSA+PSB0aGlzLk4pIHsgdGhpcy5tdFswXSA9IHRoaXMubXRbdGhpcy5OIC0gMV07IGkgPSAxOyB9XG4gICAgICAgICAgICBpZiAoaiA+PSBrZXlfbGVuZ3RoKSB7IGogPSAwOyB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChrID0gdGhpcy5OIC0gMTsgazsgay0tKSB7XG4gICAgICAgICAgICBzID0gdGhpcy5tdFtpIC0gMV0gXiAodGhpcy5tdFtpIC0gMV0gPj4+IDMwKTtcbiAgICAgICAgICAgIHRoaXMubXRbaV0gPSAodGhpcy5tdFtpXSBeICgoKCgocyAmIDB4ZmZmZjAwMDApID4+PiAxNikgKiAxNTY2MDgzOTQxKSA8PCAxNikgKyAocyAmIDB4MDAwMGZmZmYpICogMTU2NjA4Mzk0MSkpIC0gaTsgLyogbm9uIGxpbmVhciAqL1xuICAgICAgICAgICAgdGhpcy5tdFtpXSA+Pj49IDA7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBpZiAoaSA+PSB0aGlzLk4pIHsgdGhpcy5tdFswXSA9IHRoaXMubXRbdGhpcy5OIC0gMV07IGkgPSAxOyB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm10WzBdID0gMHg4MDAwMDAwMDsgLyogTVNCIGlzIDE7IGFzc3VyaW5nIG5vbi16ZXJvIGluaXRpYWwgYXJyYXkgKi9cbiAgICB9O1xuXG4gICAgLyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweGZmZmZmZmZmXS1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9pbnQzMiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHk7XG4gICAgICAgIHZhciBtYWcwMSA9IG5ldyBBcnJheSgweDAsIHRoaXMuTUFUUklYX0EpO1xuICAgICAgICAvKiBtYWcwMVt4XSA9IHggKiBNQVRSSVhfQSAgZm9yIHg9MCwxICovXG5cbiAgICAgICAgaWYgKHRoaXMubXRpID49IHRoaXMuTikgeyAvKiBnZW5lcmF0ZSBOIHdvcmRzIGF0IG9uZSB0aW1lICovXG4gICAgICAgICAgICB2YXIga2s7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm10aSA9PT0gdGhpcy5OICsgMSkgeyAgIC8qIGlmIGluaXRfZ2VucmFuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQsICovXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0X2dlbnJhbmQoNTQ4OSk7IC8qIGEgZGVmYXVsdCBpbml0aWFsIHNlZWQgaXMgdXNlZCAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChrayA9IDA7IGtrIDwgdGhpcy5OIC0gdGhpcy5NOyBraysrKSB7XG4gICAgICAgICAgICAgICAgeSA9ICh0aGlzLm10W2trXSZ0aGlzLlVQUEVSX01BU0spfCh0aGlzLm10W2trICsgMV0mdGhpcy5MT1dFUl9NQVNLKTtcbiAgICAgICAgICAgICAgICB0aGlzLm10W2trXSA9IHRoaXMubXRba2sgKyB0aGlzLk1dIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKDtrayA8IHRoaXMuTiAtIDE7IGtrKyspIHtcbiAgICAgICAgICAgICAgICB5ID0gKHRoaXMubXRba2tdJnRoaXMuVVBQRVJfTUFTSyl8KHRoaXMubXRba2sgKyAxXSZ0aGlzLkxPV0VSX01BU0spO1xuICAgICAgICAgICAgICAgIHRoaXMubXRba2tdID0gdGhpcy5tdFtrayArICh0aGlzLk0gLSB0aGlzLk4pXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeSA9ICh0aGlzLm10W3RoaXMuTiAtIDFdJnRoaXMuVVBQRVJfTUFTSyl8KHRoaXMubXRbMF0mdGhpcy5MT1dFUl9NQVNLKTtcbiAgICAgICAgICAgIHRoaXMubXRbdGhpcy5OIC0gMV0gPSB0aGlzLm10W3RoaXMuTSAtIDFdIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG5cbiAgICAgICAgICAgIHRoaXMubXRpID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHkgPSB0aGlzLm10W3RoaXMubXRpKytdO1xuXG4gICAgICAgIC8qIFRlbXBlcmluZyAqL1xuICAgICAgICB5IF49ICh5ID4+PiAxMSk7XG4gICAgICAgIHkgXj0gKHkgPDwgNykgJiAweDlkMmM1NjgwO1xuICAgICAgICB5IF49ICh5IDw8IDE1KSAmIDB4ZWZjNjAwMDA7XG4gICAgICAgIHkgXj0gKHkgPj4+IDE4KTtcblxuICAgICAgICByZXR1cm4geSA+Pj4gMDtcbiAgICB9O1xuXG4gICAgLyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweDdmZmZmZmZmXS1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9pbnQzMSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKSA+Pj4gMSk7XG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMV0tcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9yZWFsMSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpICogKDEuMCAvIDQyOTQ5NjcyOTUuMCk7XG4gICAgICAgIC8qIGRpdmlkZWQgYnkgMl4zMi0xICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSktcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUucmFuZG9tID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZW5yYW5kX2ludDMyKCkgKiAoMS4wIC8gNDI5NDk2NzI5Ni4wKTtcbiAgICAgICAgLyogZGl2aWRlZCBieSAyXjMyICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gKDAsMSktcmVhbC1pbnRlcnZhbCAqL1xuICAgIE1lcnNlbm5lVHdpc3Rlci5wcm90b3R5cGUuZ2VucmFuZF9yZWFsMyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKSArIDAuNSkgKiAoMS4wIC8gNDI5NDk2NzI5Ni4wKTtcbiAgICAgICAgLyogZGl2aWRlZCBieSAyXjMyICovXG4gICAgfTtcblxuICAgIC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSkgd2l0aCA1My1iaXQgcmVzb2x1dGlvbiovXG4gICAgTWVyc2VubmVUd2lzdGVyLnByb3RvdHlwZS5nZW5yYW5kX3JlczUzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgYSA9IHRoaXMuZ2VucmFuZF9pbnQzMigpPj4+NSwgYiA9IHRoaXMuZ2VucmFuZF9pbnQzMigpPj4+NjtcbiAgICAgICAgcmV0dXJuIChhICogNjcxMDg4NjQuMCArIGIpICogKDEuMCAvIDkwMDcxOTkyNTQ3NDA5OTIuMCk7XG4gICAgfTtcblxuICAgIC8vIEJsdWVJbXAgTUQ1IGhhc2hpbmcgYWxnb3JpdGhtIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2JsdWVpbXAvSmF2YVNjcmlwdC1NRDVcbiAgICB2YXIgQmx1ZUltcE1ENSA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuVkVSU0lPTiA9ICcxLjAuMSc7XG5cbiAgICAvKlxuICAgICogQWRkIGludGVnZXJzLCB3cmFwcGluZyBhdCAyXjMyLiBUaGlzIHVzZXMgMTYtYml0IG9wZXJhdGlvbnMgaW50ZXJuYWxseVxuICAgICogdG8gd29yayBhcm91bmQgYnVncyBpbiBzb21lIEpTIGludGVycHJldGVycy5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnNhZmVfYWRkID0gZnVuY3Rpb24gc2FmZV9hZGQoeCwgeSkge1xuICAgICAgICB2YXIgbHN3ID0gKHggJiAweEZGRkYpICsgKHkgJiAweEZGRkYpLFxuICAgICAgICAgICAgbXN3ID0gKHggPj4gMTYpICsgKHkgPj4gMTYpICsgKGxzdyA+PiAxNik7XG4gICAgICAgIHJldHVybiAobXN3IDw8IDE2KSB8IChsc3cgJiAweEZGRkYpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogQml0d2lzZSByb3RhdGUgYSAzMi1iaXQgbnVtYmVyIHRvIHRoZSBsZWZ0LlxuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuYml0X3JvbGwgPSBmdW5jdGlvbiAobnVtLCBjbnQpIHtcbiAgICAgICAgcmV0dXJuIChudW0gPDwgY250KSB8IChudW0gPj4+ICgzMiAtIGNudCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogVGhlc2UgZnVuY3Rpb25zIGltcGxlbWVudCB0aGUgZml2ZSBiYXNpYyBvcGVyYXRpb25zIHRoZSBhbGdvcml0aG0gdXNlcy5cbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNV9jbW4gPSBmdW5jdGlvbiAocSwgYSwgYiwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlX2FkZCh0aGlzLmJpdF9yb2xsKHRoaXMuc2FmZV9hZGQodGhpcy5zYWZlX2FkZChhLCBxKSwgdGhpcy5zYWZlX2FkZCh4LCB0KSksIHMpLCBiKTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNV9mZiA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1kNV9jbW4oKGIgJiBjKSB8ICgofmIpICYgZCksIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUubWQ1X2dnID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWQ1X2NtbigoYiAmIGQpIHwgKGMgJiAofmQpKSwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfaGggPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZDVfY21uKGIgXiBjIF4gZCwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5tZDVfaWkgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZDVfY21uKGMgXiAoYiB8ICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENhbGN1bGF0ZSB0aGUgTUQ1IG9mIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHMsIGFuZCBhIGJpdCBsZW5ndGguXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5iaW5sX21kNSA9IGZ1bmN0aW9uICh4LCBsZW4pIHtcbiAgICAgICAgLyogYXBwZW5kIHBhZGRpbmcgKi9cbiAgICAgICAgeFtsZW4gPj4gNV0gfD0gMHg4MCA8PCAobGVuICUgMzIpO1xuICAgICAgICB4WygoKGxlbiArIDY0KSA+Pj4gOSkgPDwgNCkgKyAxNF0gPSBsZW47XG5cbiAgICAgICAgdmFyIGksIG9sZGEsIG9sZGIsIG9sZGMsIG9sZGQsXG4gICAgICAgICAgICBhID0gIDE3MzI1ODQxOTMsXG4gICAgICAgICAgICBiID0gLTI3MTczMzg3OSxcbiAgICAgICAgICAgIGMgPSAtMTczMjU4NDE5NCxcbiAgICAgICAgICAgIGQgPSAgMjcxNzMzODc4O1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSArPSAxNikge1xuICAgICAgICAgICAgb2xkYSA9IGE7XG4gICAgICAgICAgICBvbGRiID0gYjtcbiAgICAgICAgICAgIG9sZGMgPSBjO1xuICAgICAgICAgICAgb2xkZCA9IGQ7XG5cbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9mZihhLCBiLCBjLCBkLCB4W2ldLCAgICAgICA3LCAtNjgwODc2OTM2KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAgMV0sIDEyLCAtMzg5NTY0NTg2KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9mZihjLCBkLCBhLCBiLCB4W2kgKyAgMl0sIDE3LCAgNjA2MTA1ODE5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAgM10sIDIyLCAtMTA0NDUyNTMzMCk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgIDRdLCAgNywgLTE3NjQxODg5Nyk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgIDVdLCAxMiwgIDEyMDAwODA0MjYpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArICA2XSwgMTcsIC0xNDczMjMxMzQxKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAgN10sIDIyLCAtNDU3MDU5ODMpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArICA4XSwgIDcsICAxNzcwMDM1NDE2KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAgOV0sIDEyLCAtMTk1ODQxNDQxNyk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMTBdLCAxNywgLTQyMDYzKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAxMV0sIDIyLCAtMTk5MDQwNDE2Mik7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgMTJdLCAgNywgIDE4MDQ2MDM2ODIpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2ZmKGQsIGEsIGIsIGMsIHhbaSArIDEzXSwgMTIsIC00MDM0MTEwMSk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMTRdLCAxNywgLTE1MDIwMDIyOTApO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2ZmKGIsIGMsIGQsIGEsIHhbaSArIDE1XSwgMjIsICAxMjM2NTM1MzI5KTtcblxuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArICAxXSwgIDUsIC0xNjU3OTY1MTApO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArICA2XSwgIDksIC0xMDY5NTAxNjMyKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE0LCAgNjQzNzE3NzEzKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2ldLCAgICAgIDIwLCAtMzczODk3MzAyKTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyAgNV0sICA1LCAtNzAxNTU4NjkxKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyAxMF0sICA5LCAgMzgwMTYwODMpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTQsIC02NjA0NzgzMzUpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArICA0XSwgMjAsIC00MDU1Mzc4NDgpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArICA5XSwgIDUsICA1Njg0NDY0MzgpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArIDE0XSwgIDksIC0xMDE5ODAzNjkwKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAgM10sIDE0LCAtMTg3MzYzOTYxKTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyAgOF0sIDIwLCAgMTE2MzUzMTUwMSk7XG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfZ2coYSwgYiwgYywgZCwgeFtpICsgMTNdLCAgNSwgLTE0NDQ2ODE0NjcpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArICAyXSwgIDksIC01MTQwMzc4NCk7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfZ2coYywgZCwgYSwgYiwgeFtpICsgIDddLCAxNCwgIDE3MzUzMjg0NzMpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArIDEyXSwgMjAsIC0xOTI2NjA3NzM0KTtcblxuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArICA1XSwgIDQsIC0zNzg1NTgpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArICA4XSwgMTEsIC0yMDIyNTc0NDYzKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE2LCAgMTgzOTAzMDU2Mik7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaGgoYiwgYywgZCwgYSwgeFtpICsgMTRdLCAyMywgLTM1MzA5NTU2KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAgMV0sICA0LCAtMTUzMDk5MjA2MCk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpICsgIDRdLCAxMSwgIDEyNzI4OTMzNTMpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArICA3XSwgMTYsIC0xNTU0OTc2MzIpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArIDEwXSwgMjMsIC0xMDk0NzMwNjQwKTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAxM10sICA0LCAgNjgxMjc5MTc0KTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9oaChkLCBhLCBiLCBjLCB4W2ldLCAgICAgIDExLCAtMzU4NTM3MjIyKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAgM10sIDE2LCAtNzIyNTIxOTc5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAgNl0sIDIzLCAgNzYwMjkxODkpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArICA5XSwgIDQsIC02NDAzNjQ0ODcpO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArIDEyXSwgMTEsIC00MjE4MTU4MzUpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTYsICA1MzA3NDI1MjApO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArICAyXSwgMjMsIC05OTUzMzg2NTEpO1xuXG4gICAgICAgICAgICBhID0gdGhpcy5tZDVfaWkoYSwgYiwgYywgZCwgeFtpXSwgICAgICAgNiwgLTE5ODYzMDg0NCk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgIDddLCAxMCwgIDExMjY4OTE0MTUpO1xuICAgICAgICAgICAgYyA9IHRoaXMubWQ1X2lpKGMsIGQsIGEsIGIsIHhbaSArIDE0XSwgMTUsIC0xNDE2MzU0OTA1KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAgNV0sIDIxLCAtNTc0MzQwNTUpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArIDEyXSwgIDYsICAxNzAwNDg1NTcxKTtcbiAgICAgICAgICAgIGQgPSB0aGlzLm1kNV9paShkLCBhLCBiLCBjLCB4W2kgKyAgM10sIDEwLCAtMTg5NDk4NjYwNik7XG4gICAgICAgICAgICBjID0gdGhpcy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgMTBdLCAxNSwgLTEwNTE1MjMpO1xuICAgICAgICAgICAgYiA9IHRoaXMubWQ1X2lpKGIsIGMsIGQsIGEsIHhbaSArICAxXSwgMjEsIC0yMDU0OTIyNzk5KTtcbiAgICAgICAgICAgIGEgPSB0aGlzLm1kNV9paShhLCBiLCBjLCBkLCB4W2kgKyAgOF0sICA2LCAgMTg3MzMxMzM1OSk7XG4gICAgICAgICAgICBkID0gdGhpcy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgMTVdLCAxMCwgLTMwNjExNzQ0KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAgNl0sIDE1LCAtMTU2MDE5ODM4MCk7XG4gICAgICAgICAgICBiID0gdGhpcy5tZDVfaWkoYiwgYywgZCwgYSwgeFtpICsgMTNdLCAyMSwgIDEzMDkxNTE2NDkpO1xuICAgICAgICAgICAgYSA9IHRoaXMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArICA0XSwgIDYsIC0xNDU1MjMwNzApO1xuICAgICAgICAgICAgZCA9IHRoaXMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArIDExXSwgMTAsIC0xMTIwMjEwMzc5KTtcbiAgICAgICAgICAgIGMgPSB0aGlzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAgMl0sIDE1LCAgNzE4Nzg3MjU5KTtcbiAgICAgICAgICAgIGIgPSB0aGlzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAgOV0sIDIxLCAtMzQzNDg1NTUxKTtcblxuICAgICAgICAgICAgYSA9IHRoaXMuc2FmZV9hZGQoYSwgb2xkYSk7XG4gICAgICAgICAgICBiID0gdGhpcy5zYWZlX2FkZChiLCBvbGRiKTtcbiAgICAgICAgICAgIGMgPSB0aGlzLnNhZmVfYWRkKGMsIG9sZGMpO1xuICAgICAgICAgICAgZCA9IHRoaXMuc2FmZV9hZGQoZCwgb2xkZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFthLCBiLCBjLCBkXTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENvbnZlcnQgYW4gYXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcyB0byBhIHN0cmluZ1xuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUuYmlubDJyc3RyID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0cHV0ID0gJyc7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGggKiAzMjsgaSArPSA4KSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoaW5wdXRbaSA+PiA1XSA+Pj4gKGkgJSAzMikpICYgMHhGRik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENvbnZlcnQgYSByYXcgc3RyaW5nIHRvIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHNcbiAgICAqIENoYXJhY3RlcnMgPjI1NSBoYXZlIHRoZWlyIGhpZ2gtYnl0ZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucnN0cjJiaW5sID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0cHV0ID0gW107XG4gICAgICAgIG91dHB1dFsoaW5wdXQubGVuZ3RoID4+IDIpIC0gMV0gPSB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBvdXRwdXQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIG91dHB1dFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGlucHV0Lmxlbmd0aCAqIDg7IGkgKz0gOCkge1xuICAgICAgICAgICAgb3V0cHV0W2kgPj4gNV0gfD0gKGlucHV0LmNoYXJDb2RlQXQoaSAvIDgpICYgMHhGRikgPDwgKGkgJSAzMik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAqIENhbGN1bGF0ZSB0aGUgTUQ1IG9mIGEgcmF3IHN0cmluZ1xuICAgICovXG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucnN0cl9tZDUgPSBmdW5jdGlvbiAocykge1xuICAgICAgICByZXR1cm4gdGhpcy5iaW5sMnJzdHIodGhpcy5iaW5sX21kNSh0aGlzLnJzdHIyYmlubChzKSwgcy5sZW5ndGggKiA4KSk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDYWxjdWxhdGUgdGhlIEhNQUMtTUQ1LCBvZiBhIGtleSBhbmQgc29tZSBkYXRhIChyYXcgc3RyaW5ncylcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHJfaG1hY19tZDUgPSBmdW5jdGlvbiAoa2V5LCBkYXRhKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgYmtleSA9IHRoaXMucnN0cjJiaW5sKGtleSksXG4gICAgICAgICAgICBpcGFkID0gW10sXG4gICAgICAgICAgICBvcGFkID0gW10sXG4gICAgICAgICAgICBoYXNoO1xuICAgICAgICBpcGFkWzE1XSA9IG9wYWRbMTVdID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYmtleS5sZW5ndGggPiAxNikge1xuICAgICAgICAgICAgYmtleSA9IHRoaXMuYmlubF9tZDUoYmtleSwga2V5Lmxlbmd0aCAqIDgpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSArPSAxKSB7XG4gICAgICAgICAgICBpcGFkW2ldID0gYmtleVtpXSBeIDB4MzYzNjM2MzY7XG4gICAgICAgICAgICBvcGFkW2ldID0gYmtleVtpXSBeIDB4NUM1QzVDNUM7XG4gICAgICAgIH1cbiAgICAgICAgaGFzaCA9IHRoaXMuYmlubF9tZDUoaXBhZC5jb25jYXQodGhpcy5yc3RyMmJpbmwoZGF0YSkpLCA1MTIgKyBkYXRhLmxlbmd0aCAqIDgpO1xuICAgICAgICByZXR1cm4gdGhpcy5iaW5sMnJzdHIodGhpcy5iaW5sX21kNShvcGFkLmNvbmNhdChoYXNoKSwgNTEyICsgMTI4KSk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBDb252ZXJ0IGEgcmF3IHN0cmluZyB0byBhIGhleCBzdHJpbmdcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnJzdHIyaGV4ID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHZhciBoZXhfdGFiID0gJzAxMjM0NTY3ODlhYmNkZWYnLFxuICAgICAgICAgICAgb3V0cHV0ID0gJycsXG4gICAgICAgICAgICB4LFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICB4ID0gaW5wdXQuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIG91dHB1dCArPSBoZXhfdGFiLmNoYXJBdCgoeCA+Pj4gNCkgJiAweDBGKSArXG4gICAgICAgICAgICAgICAgaGV4X3RhYi5jaGFyQXQoeCAmIDB4MEYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcblxuICAgIC8qXG4gICAgKiBFbmNvZGUgYSBzdHJpbmcgYXMgdXRmLThcbiAgICAqL1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLnN0cjJyc3RyX3V0ZjggPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCkpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICogVGFrZSBzdHJpbmcgYXJndW1lbnRzIGFuZCByZXR1cm4gZWl0aGVyIHJhdyBvciBoZXggZW5jb2RlZCBzdHJpbmdzXG4gICAgKi9cbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5yYXdfbWQ1ID0gZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cl9tZDUodGhpcy5zdHIycnN0cl91dGY4KHMpKTtcbiAgICB9O1xuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLmhleF9tZDUgPSBmdW5jdGlvbiAocykge1xuICAgICAgICByZXR1cm4gdGhpcy5yc3RyMmhleCh0aGlzLnJhd19tZDUocykpO1xuICAgIH07XG4gICAgQmx1ZUltcE1ENS5wcm90b3R5cGUucmF3X2htYWNfbWQ1ID0gZnVuY3Rpb24gKGssIGQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnN0cl9obWFjX21kNSh0aGlzLnN0cjJyc3RyX3V0ZjgoayksIHRoaXMuc3RyMnJzdHJfdXRmOChkKSk7XG4gICAgfTtcbiAgICBCbHVlSW1wTUQ1LnByb3RvdHlwZS5oZXhfaG1hY19tZDUgPSBmdW5jdGlvbiAoaywgZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yc3RyMmhleCh0aGlzLnJhd19obWFjX21kNShrLCBkKSk7XG4gICAgfTtcblxuICAgIEJsdWVJbXBNRDUucHJvdG90eXBlLm1kNSA9IGZ1bmN0aW9uIChzdHJpbmcsIGtleSwgcmF3KSB7XG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICBpZiAoIXJhdykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhleF9tZDUoc3RyaW5nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmF3X21kNShzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhleF9obWFjX21kNShrZXksIHN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5yYXdfaG1hY19tZDUoa2V5LCBzdHJpbmcpO1xuICAgIH07XG5cbiAgICAvLyBDb21tb25KUyBtb2R1bGVcbiAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gQ2hhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydHMuQ2hhbmNlID0gQ2hhbmNlO1xuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBBTUQgbW9kdWxlXG4gICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoW10sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBDaGFuY2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZXJlIGlzIGEgaW1wb3J0c1NjcmlwcyBvYmplY3QgZGVmaW5lIGNoYW5jZSBmb3Igd29ya2VyXG4gICAgaWYgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjaGFuY2UgPSBuZXcgQ2hhbmNlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgYSB3aW5kb3cgb2JqZWN0LCB0aGF0IGF0IGxlYXN0IGhhcyBhIGRvY3VtZW50IHByb3BlcnR5LFxuICAgIC8vIGluc3RhbnRpYXRlIGFuZCBkZWZpbmUgY2hhbmNlIG9uIHRoZSB3aW5kb3dcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygd2luZG93LmRvY3VtZW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHdpbmRvdy5DaGFuY2UgPSBDaGFuY2U7XG4gICAgICAgIHdpbmRvdy5jaGFuY2UgPSBuZXcgQ2hhbmNlKCk7XG4gICAgfVxufSkoKTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyICQgPSByZXF1aXJlKCcuL3V0aWwvdXJpLWhlbHBlcnMnKTtcblxuJC5maW5kQnlSZWYgPSByZXF1aXJlKCcuL3V0aWwvZmluZC1yZWZlcmVuY2UnKTtcbiQucmVzb2x2ZVNjaGVtYSA9IHJlcXVpcmUoJy4vdXRpbC9yZXNvbHZlLXNjaGVtYScpO1xuJC5ub3JtYWxpemVTY2hlbWEgPSByZXF1aXJlKCcuL3V0aWwvbm9ybWFsaXplLXNjaGVtYScpO1xuXG52YXIgaW5zdGFuY2UgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiAkcmVmKGZha2Vyb290LCBzY2hlbWEsIHJlZnMsIGV4KSB7XG4gICAgaWYgKHR5cGVvZiBmYWtlcm9vdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGV4ID0gcmVmcztcbiAgICAgIHJlZnMgPSBzY2hlbWE7XG4gICAgICBzY2hlbWEgPSBmYWtlcm9vdDtcbiAgICAgIGZha2Vyb290ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgZXggPSAhIXJlZnM7XG4gICAgICByZWZzID0gW107XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHVzaChyZWYpIHtcbiAgICAgIGlmICh0eXBlb2YgcmVmLmlkID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YXIgaWQgPSAkLnJlc29sdmVVUkwoZmFrZXJvb3QsIHJlZi5pZCkucmVwbGFjZSgvXFwvIz8kLywgJycpO1xuXG4gICAgICAgIGlmIChpZC5pbmRleE9mKCcjJykgPiAtMSkge1xuICAgICAgICAgIHZhciBwYXJ0cyA9IGlkLnNwbGl0KCcjJyk7XG5cbiAgICAgICAgICBpZiAocGFydHNbMV0uY2hhckF0KCkgPT09ICcvJykge1xuICAgICAgICAgICAgaWQgPSBwYXJ0c1swXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWQgPSBwYXJ0c1sxXSB8fCBwYXJ0c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISRyZWYucmVmc1tpZF0pIHtcbiAgICAgICAgICAkcmVmLnJlZnNbaWRdID0gcmVmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVmcy5jb25jYXQoW3NjaGVtYV0pLmZvckVhY2goZnVuY3Rpb24ocmVmKSB7XG4gICAgICBzY2hlbWEgPSAkLm5vcm1hbGl6ZVNjaGVtYShmYWtlcm9vdCwgcmVmLCBwdXNoKTtcbiAgICAgIHB1c2goc2NoZW1hKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAkLnJlc29sdmVTY2hlbWEoc2NoZW1hLCAkcmVmLnJlZnMsIGV4KTtcbiAgfVxuXG4gICRyZWYucmVmcyA9IHt9O1xuICAkcmVmLnV0aWwgPSAkO1xuXG4gIHJldHVybiAkcmVmO1xufTtcblxuaW5zdGFuY2UudXRpbCA9ICQ7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjbG9uZSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqKSB7XG4gIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHZhciB0YXJnZXQgPSBBcnJheS5pc0FycmF5KG9iaikgPyBbXSA6IHt9O1xuXG4gIGZ1bmN0aW9uIGNvcHkoa2V5LCB2YWx1ZSkge1xuICAgIHRhcmdldFtrZXldID0gY2xvbmUodmFsdWUpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgIG9iai5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgIGNvcHkoa2V5LCB2YWx1ZSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgY29weShrZXksIG9ialtrZXldKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgJCA9IHJlcXVpcmUoJy4vdXJpLWhlbHBlcnMnKTtcblxuZnVuY3Rpb24gZ2V0KG9iaiwgcGF0aCkge1xuICB2YXIgaGFzaCA9IHBhdGguc3BsaXQoJyMnKVsxXTtcblxuICB2YXIgcGFydHMgPSBoYXNoLnNwbGl0KCcvJykuc2xpY2UoMSk7XG5cbiAgd2hpbGUgKHBhcnRzLmxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQocGFydHMuc2hpZnQoKSkucmVwbGFjZSgvfjEvZywgJy8nKS5yZXBsYWNlKC9+MC9nLCAnficpO1xuXG4gICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVmZXJlbmNlIG5vdCBmb3VuZDogJyArIHBhdGgpO1xuICAgIH1cblxuICAgIG9iaiA9IG9ialtrZXldO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxudmFyIGZpbmQgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlkLCByZWZzKSB7XG4gIHZhciB0YXJnZXQgPSByZWZzW2lkXSB8fCByZWZzW2lkLnNwbGl0KCcjJylbMV1dIHx8IHJlZnNbJC5nZXREb2N1bWVudFVSSShpZCldO1xuXG4gIGlmICh0YXJnZXQpIHtcbiAgICB0YXJnZXQgPSBpZC5pbmRleE9mKCcjLycpID4gLTEgPyBnZXQodGFyZ2V0LCBpZCkgOiB0YXJnZXQ7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIga2V5IGluIHJlZnMpIHtcbiAgICAgIGlmICgkLnJlc29sdmVVUkwocmVmc1trZXldLmlkLCBpZCkgPT09IHJlZnNba2V5XS5pZCkge1xuICAgICAgICB0YXJnZXQgPSByZWZzW2tleV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZWZlcmVuY2Ugbm90IGZvdW5kOiAnICsgaWQpO1xuICB9XG5cbiAgd2hpbGUgKHRhcmdldC4kcmVmKSB7XG4gICAgdGFyZ2V0ID0gZmluZCh0YXJnZXQuJHJlZiwgcmVmcyk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyICQgPSByZXF1aXJlKCcuL3VyaS1oZWxwZXJzJyk7XG5cbnZhciBjbG9uZU9iaiA9IHJlcXVpcmUoJy4vY2xvbmUtb2JqJyk7XG5cbnZhciBTQ0hFTUFfVVJJID0gW1xuICAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWEjJyxcbiAgJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIydcbl07XG5cbmZ1bmN0aW9uIGV4cGFuZChvYmosIHBhcmVudCwgY2FsbGJhY2spIHtcbiAgaWYgKG9iaikge1xuICAgIHZhciBpZCA9IHR5cGVvZiBvYmouaWQgPT09ICdzdHJpbmcnID8gb2JqLmlkIDogJyMnO1xuXG4gICAgaWYgKCEkLmlzVVJMKGlkKSkge1xuICAgICAgaWQgPSAkLnJlc29sdmVVUkwocGFyZW50ID09PSBpZCA/IG51bGwgOiBwYXJlbnQsIGlkKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iai4kcmVmID09PSAnc3RyaW5nJyAmJiAhJC5pc1VSTChvYmouJHJlZikpIHtcbiAgICAgIG9iai4kcmVmID0gJC5yZXNvbHZlVVJMKGlkLCBvYmouJHJlZik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvYmouaWQgPSBwYXJlbnQgPSBpZDtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhKGtleSA9PT0gJ2VudW0nIHx8IGtleSA9PT0gJ3JlcXVpcmVkJykpIHtcbiAgICAgIGV4cGFuZCh2YWx1ZSwgcGFyZW50LCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNhbGxiYWNrKG9iaik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihmYWtlcm9vdCwgc2NoZW1hLCBwdXNoKSB7XG4gIGlmICh0eXBlb2YgZmFrZXJvb3QgPT09ICdvYmplY3QnKSB7XG4gICAgcHVzaCA9IHNjaGVtYTtcbiAgICBzY2hlbWEgPSBmYWtlcm9vdDtcbiAgICBmYWtlcm9vdCA9IG51bGw7XG4gIH1cblxuICB2YXIgYmFzZSA9IGZha2Vyb290IHx8ICcnLFxuICAgICAgY29weSA9IGNsb25lT2JqKHNjaGVtYSk7XG5cbiAgaWYgKGNvcHkuJHNjaGVtYSAmJiBTQ0hFTUFfVVJJLmluZGV4T2YoY29weS4kc2NoZW1hKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHNjaGVtYSB2ZXJzaW9uICh2NCBvbmx5KScpO1xuICB9XG5cbiAgYmFzZSA9ICQucmVzb2x2ZVVSTChjb3B5LiRzY2hlbWEgfHwgU0NIRU1BX1VSSVswXSwgYmFzZSk7XG5cbiAgZXhwYW5kKGNvcHksICQucmVzb2x2ZVVSTChjb3B5LmlkLCBiYXNlKSwgcHVzaCk7XG5cbiAgLy8gVE9ETzogcmVxdWlyZWQgZm9yIGpzb24tcG9pbnRlciB0byBpdHNlbGY/XG4gIGNvcHkuaWQgPSBjb3B5LmlkIHx8ICcjJztcblxuICByZXR1cm4gY29weTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciAkID0gcmVxdWlyZSgnLi91cmktaGVscGVycycpO1xuXG52YXIgZmluZCA9IHJlcXVpcmUoJy4vZmluZC1yZWZlcmVuY2UnKTtcblxuZnVuY3Rpb24gY2xvbmUob2JqLCByZWZzLCBjaGlsZCwgZXhwYW5kKSB7XG4gIHZhciBjb3B5ID0ge307XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGNvcHkgPSBbXTtcbiAgfVxuXG4gIGlmICgkLmlzVVJMKG9iai4kcmVmKSkge1xuICAgIHZhciBmaXhlZCA9IGZpbmQob2JqLiRyZWYsIHJlZnMpO1xuXG4gICAgaWYgKGZpeGVkICYmIGV4cGFuZCkge1xuICAgICAgdmFyIGlkID0gdHlwZW9mIGZpeGVkLmlkID09PSAnc3RyaW5nJyA/IGZpeGVkLmlkIDogJyMnO1xuXG4gICAgICBvYmogPSBmaXhlZDtcblxuICAgICAgaWYgKG9iai4kcmVmICE9PSBpZCkge1xuICAgICAgICByZXR1cm4gY2xvbmUoZml4ZWQsIHJlZnMsIHRydWUsIGV4cGFuZCk7XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSBvYmouJHJlZjtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgdmFyIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhKGtleSA9PT0gJ2VudW0nIHx8IGtleSA9PT0gJ3JlcXVpcmVkJykpIHtcbiAgICAgIGNvcHlba2V5XSA9IGNsb25lKHZhbHVlLCByZWZzLCB0cnVlLCBleHBhbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3B5W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiBzZXJpb3VzbHkgYXJlIHJlcXVpcmVkIG9yIG5vdD9cbiAgaWYgKGNoaWxkKSB7XG4gICAgaWYgKHR5cGVvZiBjb3B5LiRzY2hlbWEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZWxldGUgY29weS4kc2NoZW1hO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29weS5pZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRlbGV0ZSBjb3B5LmlkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iaiwgcmVmcywgZXhwYW5kKSB7XG4gIHJldHVybiBjbG9uZShvYmosIHJlZnMsIGZhbHNlLCBleHBhbmQpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGp0MzMvZWZiMmYxMTM0YmFiOTg2MTEzZmRcblxuZnVuY3Rpb24gVVJMVXRpbHModXJsLCBiYXNlVVJMKSB7XG4gIHZhciBtID0gU3RyaW5nKHVybCkucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpLm1hdGNoKC9eKFteOlxcLz8jXSs6KT8oPzpcXC9cXC8oPzooW146QF0qKSg/OjooW146QF0qKSk/QCk/KChbXjpcXC8/I10qKSg/OjooXFxkKikpPykpPyhbXj8jXSopKFxcP1teI10qKT8oI1tcXHNcXFNdKik/Lyk7XG4gIGlmICghbSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCk7XG4gIH1cbiAgdmFyIGhyZWYgPSBtWzBdIHx8ICcnO1xuICB2YXIgcHJvdG9jb2wgPSBtWzFdIHx8ICcnO1xuICB2YXIgdXNlcm5hbWUgPSBtWzJdIHx8ICcnO1xuICB2YXIgcGFzc3dvcmQgPSBtWzNdIHx8ICcnO1xuICB2YXIgaG9zdCA9IG1bNF0gfHwgJyc7XG4gIHZhciBob3N0bmFtZSA9IG1bNV0gfHwgJyc7XG4gIHZhciBwb3J0ID0gbVs2XSB8fCAnJztcbiAgdmFyIHBhdGhuYW1lID0gbVs3XSB8fCAnJztcbiAgdmFyIHNlYXJjaCA9IG1bOF0gfHwgJyc7XG4gIHZhciBoYXNoID0gbVs5XSB8fCAnJztcbiAgaWYgKGJhc2VVUkwgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBiYXNlID0gbmV3IFVSTFV0aWxzKGJhc2VVUkwpO1xuICAgIHZhciBmbGFnID0gcHJvdG9jb2wgPT09ICcnICYmIGhvc3QgPT09ICcnICYmIHVzZXJuYW1lID09PSAnJztcbiAgICBpZiAoZmxhZyAmJiBwYXRobmFtZSA9PT0gJycgJiYgc2VhcmNoID09PSAnJykge1xuICAgICAgc2VhcmNoID0gYmFzZS5zZWFyY2g7XG4gICAgfVxuICAgIGlmIChmbGFnICYmIHBhdGhuYW1lLmNoYXJBdCgwKSAhPT0gJy8nKSB7XG4gICAgICBwYXRobmFtZSA9IChwYXRobmFtZSAhPT0gJycgPyAoYmFzZS5wYXRobmFtZS5zbGljZSgwLCBiYXNlLnBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKSArIHBhdGhuYW1lKSA6IGJhc2UucGF0aG5hbWUpO1xuICAgIH1cbiAgICAvLyBkb3Qgc2VnbWVudHMgcmVtb3ZhbFxuICAgIHZhciBvdXRwdXQgPSBbXTtcblxuICAgIHBhdGhuYW1lLnJlcGxhY2UoL1xcLz9bXlxcL10rL2csIGZ1bmN0aW9uKHApIHtcbiAgICAgIGlmIChwID09PSAnLy4uJykge1xuICAgICAgICBvdXRwdXQucG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXQucHVzaChwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHBhdGhuYW1lID0gb3V0cHV0LmpvaW4oJycpIHx8ICcvJztcblxuICAgIGlmIChmbGFnKSB7XG4gICAgICBwb3J0ID0gYmFzZS5wb3J0O1xuICAgICAgaG9zdG5hbWUgPSBiYXNlLmhvc3RuYW1lO1xuICAgICAgaG9zdCA9IGJhc2UuaG9zdDtcbiAgICAgIHBhc3N3b3JkID0gYmFzZS5wYXNzd29yZDtcbiAgICAgIHVzZXJuYW1lID0gYmFzZS51c2VybmFtZTtcbiAgICB9XG4gICAgaWYgKHByb3RvY29sID09PSAnJykge1xuICAgICAgcHJvdG9jb2wgPSBiYXNlLnByb3RvY29sO1xuICAgIH1cbiAgICBocmVmID0gcHJvdG9jb2wgKyAoaG9zdCAhPT0gJycgPyAnLy8nIDogJycpICsgKHVzZXJuYW1lICE9PSAnJyA/IHVzZXJuYW1lICsgKHBhc3N3b3JkICE9PSAnJyA/ICc6JyArIHBhc3N3b3JkIDogJycpICsgJ0AnIDogJycpICsgaG9zdCArIHBhdGhuYW1lICsgc2VhcmNoICsgaGFzaDtcbiAgfVxuICB0aGlzLmhyZWYgPSBocmVmO1xuICB0aGlzLm9yaWdpbiA9IHByb3RvY29sICsgKGhvc3QgIT09ICcnID8gJy8vJyArIGhvc3QgOiAnJyk7XG4gIHRoaXMucHJvdG9jb2wgPSBwcm90b2NvbDtcbiAgdGhpcy51c2VybmFtZSA9IHVzZXJuYW1lO1xuICB0aGlzLnBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gIHRoaXMuaG9zdCA9IGhvc3Q7XG4gIHRoaXMuaG9zdG5hbWUgPSBob3N0bmFtZTtcbiAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgdGhpcy5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgdGhpcy5oYXNoID0gaGFzaDtcbn1cblxuZnVuY3Rpb24gaXNVUkwocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnICYmIC9eXFx3KzpcXC9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVVSSShocmVmLCBiYXNlKSB7XG4gIHJldHVybiBuZXcgVVJMVXRpbHMoaHJlZiwgYmFzZSk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVVUkwoYmFzZSwgaHJlZikge1xuICBiYXNlID0gYmFzZSB8fCAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWEjJztcblxuICBocmVmID0gcGFyc2VVUkkoaHJlZiwgYmFzZSk7XG4gIGJhc2UgPSBwYXJzZVVSSShiYXNlKTtcblxuICBpZiAoYmFzZS5oYXNoICYmICFocmVmLmhhc2gpIHtcbiAgICByZXR1cm4gaHJlZi5ocmVmICsgYmFzZS5oYXNoO1xuICB9XG5cbiAgcmV0dXJuIGhyZWYuaHJlZjtcbn1cblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRVUkkodXJpKSB7XG4gIHJldHVybiB0eXBlb2YgdXJpID09PSAnc3RyaW5nJyAmJiB1cmkuc3BsaXQoJyMnKVswXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGlzVVJMOiBpc1VSTCxcbiAgcGFyc2VVUkk6IHBhcnNlVVJJLFxuICByZXNvbHZlVVJMOiByZXNvbHZlVVJMLFxuICBnZXREb2N1bWVudFVSSTogZ2V0RG9jdW1lbnRVUklcbn07XG4iLCIvKlxuXG4gICB0aGlzIGluZGV4LmpzIGZpbGUgaXMgdXNlZCBmb3IgaW5jbHVkaW5nIHRoZSBmYWtlciBsaWJyYXJ5IGFzIGEgQ29tbW9uSlMgbW9kdWxlLCBpbnN0ZWFkIG9mIGEgYnVuZGxlXG5cbiAgIHlvdSBjYW4gaW5jbHVkZSB0aGUgZmFrZXIgbGlicmFyeSBpbnRvIHlvdXIgZXhpc3Rpbmcgbm9kZS5qcyBhcHBsaWNhdGlvbiBieSByZXF1aXJpbmcgdGhlIGVudGlyZSAvZmFrZXIgZGlyZWN0b3J5XG5cbiAgICB2YXIgZmFrZXIgPSByZXF1aXJlKC4vZmFrZXIpO1xuICAgIHZhciByYW5kb21OYW1lID0gZmFrZXIubmFtZS5maW5kTmFtZSgpO1xuXG4gICB5b3UgY2FuIGFsc28gc2ltcGx5IGluY2x1ZGUgdGhlIFwiZmFrZXIuanNcIiBmaWxlIHdoaWNoIGlzIHRoZSBhdXRvLWdlbmVyYXRlZCBidW5kbGVkIHZlcnNpb24gb2YgdGhlIGZha2VyIGxpYnJhcnlcblxuICAgIHZhciBmYWtlciA9IHJlcXVpcmUoLi9jdXN0b21BcHBQYXRoL2Zha2VyKTtcbiAgICB2YXIgcmFuZG9tTmFtZSA9IGZha2VyLm5hbWUuZmluZE5hbWUoKTtcblxuXG4gIGlmIHlvdSBwbGFuIG9uIG1vZGlmeWluZyB0aGUgZmFrZXIgbGlicmFyeSB5b3Ugc2hvdWxkIGJlIHBlcmZvcm1pbmcgeW91ciBjaGFuZ2VzIGluIHRoZSAvbGliLyBkaXJlY3RvcnlcblxuKi9cblxuZXhwb3J0cy5uYW1lID0gcmVxdWlyZSgnLi9saWIvbmFtZScpO1xuZXhwb3J0cy5hZGRyZXNzID0gcmVxdWlyZSgnLi9saWIvYWRkcmVzcycpO1xuZXhwb3J0cy5waG9uZSA9IHJlcXVpcmUoJy4vbGliL3Bob25lX251bWJlcicpO1xuZXhwb3J0cy5pbnRlcm5ldCA9IHJlcXVpcmUoJy4vbGliL2ludGVybmV0Jyk7XG5leHBvcnRzLmNvbXBhbnkgPSByZXF1aXJlKCcuL2xpYi9jb21wYW55Jyk7XG5leHBvcnRzLmltYWdlID0gcmVxdWlyZSgnLi9saWIvaW1hZ2UnKTtcbmV4cG9ydHMubG9yZW0gPSByZXF1aXJlKCcuL2xpYi9sb3JlbScpO1xuZXhwb3J0cy5oZWxwZXJzID0gIHJlcXVpcmUoJy4vbGliL2hlbHBlcnMnKTtcbmV4cG9ydHMuZGF0ZSA9IHJlcXVpcmUoJy4vbGliL2RhdGUnKTtcbmV4cG9ydHMucmFuZG9tID0gcmVxdWlyZSgnLi9saWIvcmFuZG9tJyk7XG5leHBvcnRzLmZpbmFuY2UgPSByZXF1aXJlKCcuL2xpYi9maW5hbmNlJyk7XG5leHBvcnRzLmhhY2tlciA9IHJlcXVpcmUoJy4vbGliL2hhY2tlcicpO1xuXG52YXIgbG9jYWxlcyA9IGV4cG9ydHMubG9jYWxlcyA9IHJlcXVpcmUoJy4vbGliL2xvY2FsZXMnKTtcblxuLy8gZGVmYXVsdCBsb2NhbGVcbmV4cG9ydHMubG9jYWxlID0gXCJlblwiO1xuXG4vLyBpbiBjYXNlIGEgbG9jYWxlIGlzIG1pc3NpbmcgYSBkZWZpbml0aW9uLCBmYWxsYmFjayB0byB0aGlzIGxvY2FsZVxuZXhwb3J0cy5sb2NhbGVGYWxsYmFjayA9IFwiZW5cIjtcblxuZXhwb3J0cy5kZWZpbml0aW9ucyA9IHt9O1xuXG52YXIgX2RlZmluaXRpb25zID0ge1xuICBcIm5hbWVcIjogW1wiZmlyc3RfbmFtZVwiLCBcImxhc3RfbmFtZVwiLCBcInByZWZpeFwiLCBcInN1ZmZpeFwiXSxcbiAgXCJhZGRyZXNzXCI6IFtcImNpdHlfcHJlZml4XCIsIFwiY2l0eV9zdWZmaXhcIiwgXCJzdHJlZXRfc3VmZml4XCIsIFwiY291bnR5XCIsIFwiY291bnRyeVwiLCBcInN0YXRlXCIsIFwic3RhdGVfYWJiclwiXSxcbiAgXCJjb21wYW55XCI6IFtcImFkamVjdGl2ZVwiLCBcIm5vdW5cIiwgXCJkZXNjcmlwdG9yXCIsIFwiYnNfYWRqZWN0aXZlXCIsIFwiYnNfbm91blwiLCBcImJzX3ZlcmJcIl0sXG4gIFwibG9yZW1cIjogW1wid29yZHNcIl0sXG4gIFwiaGFja2VyXCI6IFtcImFiYnJldmlhdGlvblwiLCBcImFkamVjdGl2ZVwiLCBcIm5vdW5cIiwgXCJ2ZXJiXCIsIFwiaW5ndmVyYlwiXSxcbiAgXCJwaG9uZV9udW1iZXJcIjogW1wiZm9ybWF0c1wiXSxcbiAgXCJmaW5hbmNlXCI6IFtcImFjY291bnRfdHlwZVwiLCBcInRyYW5zYWN0aW9uX3R5cGVcIiwgXCJjdXJyZW5jeVwiXSxcbiAgXCJpbnRlcm5ldFwiOiBbXCJhdmF0YXJfdXJpXCIsIFwiZG9tYWluX3N1ZmZpeFwiLCBcImZyZWVfZW1haWxcIiwgXCJwYXNzd29yZFwiXVxufTtcblxuLy8gQ3JlYXRlIGEgR2V0dGVyIGZvciBhbGwgZGVmaW5pdGlvbnMuZm9vLmJhciBwcm9wZXRyaWVzXG5PYmplY3Qua2V5cyhfZGVmaW5pdGlvbnMpLmZvckVhY2goZnVuY3Rpb24oZCl7XG4gIGlmICh0eXBlb2YgZXhwb3J0cy5kZWZpbml0aW9uc1tkXSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGV4cG9ydHMuZGVmaW5pdGlvbnNbZF0gPSB7fTtcbiAgfVxuICBfZGVmaW5pdGlvbnNbZF0uZm9yRWFjaChmdW5jdGlvbihwKXtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZpbml0aW9uc1tkXSwgcCwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbG9jYWxlc1tleHBvcnRzLmxvY2FsZV1bZF0gPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mIGxvY2FsZXNbZXhwb3J0cy5sb2NhbGVdW2RdW3BdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgLy8gY2VydGFpbiBsb2NhbGl6YXRpb24gc2V0cyBjb250YWluIGxlc3MgZGF0YSB0aGVuIG90aGVycy5cbiAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBvZiBhIG1pc3NpbmcgZGVmaW50aW9uLCB1c2UgdGhlIGRlZmF1bHQgbG9jYWxlRmFsbGJhY2sgdG8gc3Vic3RpdHV0ZSB0aGUgbWlzc2luZyBzZXQgZGF0YVxuICAgICAgICAgIHJldHVybiBsb2NhbGVzW2V4cG9ydHMubG9jYWxlRmFsbGJhY2tdW2RdW3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHJldHVybiBsb2NhbGl6ZWQgZGF0YVxuICAgICAgICAgIHJldHVybiBsb2NhbGVzW2V4cG9ydHMubG9jYWxlXVtkXVtwXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pOyIsInZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG52YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgYWRkcmVzcyA9IHtcbiAgICB6aXBDb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KFtcIiMjIyMjXCIsICcjIyMjIy0jIyMjJ10pKTtcbiAgICB9LFxuXG4gICAgY2l0eTogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMykpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIuYWRkcmVzcy5jaXR5UHJlZml4KCkgKyBcIiBcIiArIGZha2VyLm5hbWUuZmlyc3ROYW1lKCkgKyBmYWtlci5hZGRyZXNzLmNpdHlTdWZmaXgoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXN1bHQgPSBmYWtlci5hZGRyZXNzLmNpdHlQcmVmaXgoKSArIFwiIFwiICsgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXN1bHQgPSBmYWtlci5uYW1lLmZpcnN0TmFtZSgpICsgZmFrZXIuYWRkcmVzcy5jaXR5U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgZmFrZXIuYWRkcmVzcy5jaXR5U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICBjaXR5UHJlZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5jaXR5X3ByZWZpeCk7XG4gICAgfSxcblxuICAgIGNpdHlTdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNpdHlfc3VmZml4KTtcbiAgICB9LFxuXG4gICAgc3RyZWV0TmFtZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMSkpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCIgXCIgKyBmYWtlci5hZGRyZXNzLnN0cmVldFN1ZmZpeCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJlc3VsdCA9IGZha2VyLm5hbWUuZmlyc3ROYW1lKCkgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0U3VmZml4KCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICAvL1xuICAgIC8vIFRPRE86IGNoYW5nZSBhbGwgdGhlc2UgbWV0aG9kcyB0aGF0IGFjY2VwdCBhIGJvb2xlYW4gdG8gaW5zdGVhZCBhY2NlcHQgYW4gb3B0aW9ucyBoYXNoLlxuICAgIC8vXG4gICAgc3RyZWV0QWRkcmVzczogZnVuY3Rpb24gKHVzZUZ1bGxBZGRyZXNzKSB7XG4gICAgICAgIGlmICh1c2VGdWxsQWRkcmVzcyA9PT0gdW5kZWZpbmVkKSB7IHVzZUZ1bGxBZGRyZXNzID0gZmFsc2U7IH1cbiAgICAgICAgdmFyIGFkZHJlc3MgPSBcIlwiO1xuICAgICAgICBzd2l0Y2ggKGZha2VyLnJhbmRvbS5udW1iZXIoMikpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyMjI1wiKSArIFwiIFwiICsgZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyMjXCIpICsgIFwiIFwiICsgZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgYWRkcmVzcyA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIoXCIjIyNcIikgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc3RyZWV0TmFtZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZUZ1bGxBZGRyZXNzID8gKGFkZHJlc3MgKyBcIiBcIiArIGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpKSA6IGFkZHJlc3M7XG4gICAgfSxcblxuICAgIHN0cmVldFN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuYWRkcmVzcy5zdHJlZXRfc3VmZml4KTtcbiAgICB9LFxuXG4gICAgc2Vjb25kYXJ5QWRkcmVzczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gSGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnQXB0LiAjIyMnLFxuICAgICAgICAgICAgICAgICdTdWl0ZSAjIyMnXG4gICAgICAgICAgICBdXG4gICAgICAgICkpO1xuICAgIH0sXG5cbiAgICBjb3VudHk6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNvdW50eSk7XG4gICAgfSxcblxuICAgIGNvdW50cnk6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5hZGRyZXNzLmNvdW50cnkpO1xuICAgIH0sXG5cbiAgICBzdGF0ZTogZnVuY3Rpb24gKHVzZUFiYnIpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3Muc3RhdGUpO1xuICAgIH0sXG5cbiAgICBzdGF0ZUFiYnI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmFkZHJlc3Muc3RhdGVfYWJicik7XG4gICAgfSxcblxuICAgIGxhdGl0dWRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoZmFrZXIucmFuZG9tLm51bWJlcigxODAgKiAxMDAwMCkgLyAxMDAwMC4wIC0gOTAuMCkudG9GaXhlZCg0KTtcbiAgICB9LFxuXG4gICAgbG9uZ2l0dWRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoZmFrZXIucmFuZG9tLm51bWJlcigzNjAgKiAxMDAwMCkgLyAxMDAwMC4wIC0gMTgwLjApLnRvRml4ZWQoNCk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBhZGRyZXNzO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGNvbXBhbnkgPSB7XG5cbiAgICBzdWZmaXhlczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gW1wiSW5jXCIsIFwiYW5kIFNvbnNcIiwgXCJMTENcIiwgXCJHcm91cFwiLCBcImFuZCBEYXVnaHRlcnNcIl07XG4gICAgfSxcblxuICAgIGNvbXBhbnlOYW1lOiBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHN3aXRjaCAoKGZvcm1hdCA/IGZvcm1hdCA6IGZha2VyLnJhbmRvbS5udW1iZXIoMikpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHJldHVybiBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiBcIiArIGZha2VyLmNvbXBhbnkuY29tcGFueVN1ZmZpeCgpO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5sYXN0TmFtZSgpICsgXCItXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiwgXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCkgKyBcIiBhbmQgXCIgKyBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcGFueVN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuY29tcGFueS5zdWZmaXhlcygpKTtcbiAgICB9LFxuXG4gICAgY2F0Y2hQaHJhc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2VBZGplY3RpdmUoKSArIFwiIFwiICtcbiAgICAgICAgICAgIGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2VEZXNjcmlwdG9yKCkgKyBcIiBcIiArXG4gICAgICAgICAgICBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlTm91bigpO1xuICAgIH0sXG5cbiAgICBiczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIuY29tcGFueS5ic0FkamVjdGl2ZSgpICsgXCIgXCIgK1xuICAgICAgICAgICAgZmFrZXIuY29tcGFueS5ic0J1enooKSArIFwiIFwiICtcbiAgICAgICAgICAgIGZha2VyLmNvbXBhbnkuYnNOb3VuKCk7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlQWRqZWN0aXZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5jb21wYW55LmFkamVjdGl2ZSk7XG4gICAgfSxcblxuICAgIGNhdGNoUGhyYXNlRGVzY3JpcHRvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5kZXNjcmlwdG9yKTtcbiAgICB9LFxuXG4gICAgY2F0Y2hQaHJhc2VOb3VuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5jb21wYW55Lm5vdW4pO1xuICAgIH0sXG5cbiAgICBic0FkamVjdGl2ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5ic19hZGplY3RpdmUpO1xuICAgIH0sXG5cbiAgICBic0J1eno6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmNvbXBhbnkuYnNfdmVyYik7XG4gICAgfSxcblxuICAgIGJzTm91bjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuY29tcGFueS5ic19ub3VuKTtcbiAgICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcGFueTtcbiIsInZhciBmYWtlciA9IHJlcXVpcmUoXCIuLi9pbmRleFwiKTtcblxudmFyIGRhdGUgPSB7XG5cbiAgICBwYXN0OiBmdW5jdGlvbiAoeWVhcnMsIHJlZkRhdGUpIHtcbiAgICAgICAgdmFyIGRhdGUgPSAocmVmRGF0ZSkgPyBuZXcgRGF0ZShEYXRlLnBhcnNlKHJlZkRhdGUpKSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIHZhciByYW5nZSA9IHtcbiAgICAgICAgICBtaW46IDEwMDAsXG4gICAgICAgICAgbWF4OiAoeWVhcnMgfHwgMSkgKiAzNjUgKiAyNCAqIDM2MDAgKiAxMDAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHBhc3QgPSBkYXRlLmdldFRpbWUoKTtcbiAgICAgICAgcGFzdCAtPSBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKTsgLy8gc29tZSB0aW1lIGZyb20gbm93IHRvIE4geWVhcnMgYWdvLCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgZGF0ZS5zZXRUaW1lKHBhc3QpO1xuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH0sXG5cbiAgICBmdXR1cmU6IGZ1bmN0aW9uICh5ZWFycywgcmVmRGF0ZSkge1xuICAgICAgICB2YXIgZGF0ZSA9IChyZWZEYXRlKSA/IG5ldyBEYXRlKERhdGUucGFyc2UocmVmRGF0ZSkpIDogbmV3IERhdGUoKTtcbiAgICAgICAgdmFyIHJhbmdlID0ge1xuICAgICAgICAgIG1pbjogMTAwMCxcbiAgICAgICAgICBtYXg6ICh5ZWFycyB8fCAxKSAqIDM2NSAqIDI0ICogMzYwMCAqIDEwMDBcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZnV0dXJlID0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGZ1dHVyZSArPSBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKTsgLy8gc29tZSB0aW1lIGZyb20gbm93IHRvIE4geWVhcnMgbGF0ZXIsIGluIG1pbGxpc2Vjb25kc1xuICAgICAgICBkYXRlLnNldFRpbWUoZnV0dXJlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9LFxuXG4gICAgYmV0d2VlbjogZnVuY3Rpb24gKGZyb20sIHRvKSB7XG4gICAgICAgIHZhciBmcm9tTWlsbGkgPSBEYXRlLnBhcnNlKGZyb20pO1xuICAgICAgICB2YXIgZGF0ZU9mZnNldCA9IGZha2VyLnJhbmRvbS5udW1iZXIoRGF0ZS5wYXJzZSh0bykgLSBmcm9tTWlsbGkpO1xuXG4gICAgICAgIHZhciBuZXdEYXRlID0gbmV3IERhdGUoZnJvbU1pbGxpICsgZGF0ZU9mZnNldCk7XG5cbiAgICAgICAgcmV0dXJuIG5ld0RhdGU7XG4gICAgfSxcblxuICAgIHJlY2VudDogZnVuY3Rpb24gKGRheXMpIHtcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB2YXIgcmFuZ2UgPSB7XG4gICAgICAgICAgbWluOiAxMDAwLFxuICAgICAgICAgIG1heDogKGRheXMgfHwgMSkgKiAyNCAqIDM2MDAgKiAxMDAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZ1dHVyZSA9IGRhdGUuZ2V0VGltZSgpO1xuICAgICAgICBmdXR1cmUgLT0gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7IC8vIHNvbWUgdGltZSBmcm9tIG5vdyB0byBOIGRheXMgYWdvLCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgZGF0ZS5zZXRUaW1lKGZ1dHVyZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxufTtcbm1vZHVsZS5leHBvcnRzID0gZGF0ZTtcbiIsInZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyksXG4gICAgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgZmluYW5jZSA9IHtcblxuICAgIGFjY291bnQ6IGZ1bmN0aW9uIChsZW5ndGgpIHtcblxuICAgICAgICBsZW5ndGggPSBsZW5ndGggfHwgODtcblxuICAgICAgICB2YXIgdGVtcGxhdGUgPSAnJztcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IHRlbXBsYXRlICsgJyMnO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aCA9IG51bGw7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKHRlbXBsYXRlKTtcbiAgICB9LFxuXG4gICAgYWNjb3VudE5hbWU6IGZ1bmN0aW9uICgpIHtcblxuICAgICAgICByZXR1cm4gW0hlbHBlcnMucmFuZG9taXplKGZha2VyLmRlZmluaXRpb25zLmZpbmFuY2UuYWNjb3VudF90eXBlKSwgJ0FjY291bnQnXS5qb2luKCcgJyk7XG4gICAgfSxcblxuICAgIG1hc2s6IGZ1bmN0aW9uIChsZW5ndGgsIHBhcmVucywgZWxpcHNpcykge1xuXG5cbiAgICAgICAgLy9zZXQgZGVmYXVsdHNcbiAgICAgICAgbGVuZ3RoID0gKGxlbmd0aCA9PSAwIHx8ICFsZW5ndGggfHwgdHlwZW9mIGxlbmd0aCA9PSAndW5kZWZpbmVkJykgPyA0IDogbGVuZ3RoO1xuICAgICAgICBwYXJlbnMgPSAocGFyZW5zID09PSBudWxsKSA/IHRydWUgOiBwYXJlbnM7XG4gICAgICAgIGVsaXBzaXMgPSAoZWxpcHNpcyA9PT0gbnVsbCkgPyB0cnVlIDogZWxpcHNpcztcblxuICAgICAgICAvL2NyZWF0ZSBhIHRlbXBsYXRlIGZvciBsZW5ndGhcbiAgICAgICAgdmFyIHRlbXBsYXRlID0gJyc7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZSArICcjJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vcHJlZml4IHdpdGggZWxpcHNpc1xuICAgICAgICB0ZW1wbGF0ZSA9IChlbGlwc2lzKSA/IFsnLi4uJywgdGVtcGxhdGVdLmpvaW4oJycpIDogdGVtcGxhdGU7XG5cbiAgICAgICAgdGVtcGxhdGUgPSAocGFyZW5zKSA/IFsnKCcsIHRlbXBsYXRlLCAnKSddLmpvaW4oJycpIDogdGVtcGxhdGU7XG5cbiAgICAgICAgLy9nZW5lcmF0ZSByYW5kb20gbnVtYmVyc1xuICAgICAgICB0ZW1wbGF0ZSA9IEhlbHBlcnMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIodGVtcGxhdGUpO1xuXG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZTtcblxuICAgIH0sXG5cbiAgICAvL21pbiBhbmQgbWF4IHRha2UgaW4gbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnRzLCBkZWMgaXMgdGhlIGRlY2ltYWwgcGxhY2UgeW91IHdhbnQgcm91bmRlZCB0bywgc3ltYm9sIGlzICQsIOKCrCwgwqMsIGV0Y1xuICAgIC8vTk9URTogdGhpcyByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSwgaWYgeW91IHdhbnQgYSBudW1iZXIgdXNlIHBhcnNlRmxvYXQgYW5kIG5vIHN5bWJvbFxuXG4gICAgYW1vdW50OiBmdW5jdGlvbiAobWluLCBtYXgsIGRlYywgc3ltYm9sKSB7XG5cbiAgICAgICAgbWluID0gbWluIHx8IDA7XG4gICAgICAgIG1heCA9IG1heCB8fCAxMDAwO1xuICAgICAgICBkZWMgPSBkZWMgfHwgMjtcbiAgICAgICAgc3ltYm9sID0gc3ltYm9sIHx8ICcnO1xuXG4gICAgICAgIHJldHVybiBzeW1ib2wgKyAoTWF0aC5yb3VuZCgoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluKSAqIE1hdGgucG93KDEwLCBkZWMpKSAvIE1hdGgucG93KDEwLCBkZWMpKS50b0ZpeGVkKGRlYyk7XG5cbiAgICB9LFxuXG4gICAgdHJhbnNhY3Rpb25UeXBlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnJhbmRvbWl6ZShmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUpO1xuICAgIH0sXG5cbiAgICBjdXJyZW5jeUNvZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5KVsnY29kZSddO1xuICAgIH0sXG5cbiAgICBjdXJyZW5jeU5hbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5LCAna2V5Jyk7XG4gICAgfSxcblxuICAgIGN1cnJlbmN5U3ltYm9sOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzeW1ib2w7XG5cbiAgICAgICAgd2hpbGUgKCFzeW1ib2wpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGZha2VyLnJhbmRvbS5vYmplY3RfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLmN1cnJlbmN5KVsnc3ltYm9sJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN5bWJvbDtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbmFuY2U7IiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIGhhY2tlciA9IHtcblxuICBhYmJyZXZpYXRpb24gOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci5hYmJyZXZpYXRpb24pO1xuICB9LFxuXG4gIGFkamVjdGl2ZSA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaGFja2VyLmFkamVjdGl2ZSk7XG4gIH0sXG5cbiAgbm91biA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaGFja2VyLm5vdW4pO1xuICB9LFxuXG4gIHZlcmIgOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmhhY2tlci52ZXJiKTtcbiAgfSxcblxuICBpbmd2ZXJiIDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5oYWNrZXIuaW5ndmVyYik7XG4gIH0sXG5cbiAgcGhyYXNlIDogZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGRhdGEgPSB7XG4gICAgICBhYmJyZXZpYXRpb246IGhhY2tlci5hYmJyZXZpYXRpb24oKSxcbiAgICAgIGFkamVjdGl2ZTogaGFja2VyLmFkamVjdGl2ZSgpLFxuICAgICAgaW5ndmVyYjogaGFja2VyLmluZ3ZlcmIoKSxcbiAgICAgIG5vdW46IGhhY2tlci5ub3VuKCksXG4gICAgICB2ZXJiOiBoYWNrZXIudmVyYigpXG4gICAgfTtcblxuICAgIHZhciBwaHJhc2UgPSBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbIFwiSWYgd2Uge3t2ZXJifX0gdGhlIHt7bm91bn19LCB3ZSBjYW4gZ2V0IHRvIHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IHRocm91Z2ggdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSFcIixcbiAgICAgIFwiV2UgbmVlZCB0byB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJUcnkgdG8ge3t2ZXJifX0gdGhlIHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0sIG1heWJlIGl0IHdpbGwge3t2ZXJifX0gdGhlIHt7YWRqZWN0aXZlfX0ge3tub3VufX0hXCIsXG4gICAgICBcIllvdSBjYW4ndCB7e3ZlcmJ9fSB0aGUge3tub3VufX0gd2l0aG91dCB7e2luZ3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJVc2UgdGhlIHt7YWRqZWN0aXZlfX0ge3thYmJyZXZpYXRpb259fSB7e25vdW59fSwgdGhlbiB5b3UgY2FuIHt7dmVyYn19IHRoZSB7e2FkamVjdGl2ZX19IHt7bm91bn19IVwiLFxuICAgICAgXCJUaGUge3thYmJyZXZpYXRpb259fSB7e25vdW59fSBpcyBkb3duLCB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e25vdW59fSBzbyB3ZSBjYW4ge3t2ZXJifX0gdGhlIHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0hXCIsXG4gICAgICBcInt7aW5ndmVyYn19IHRoZSB7e25vdW59fSB3b24ndCBkbyBhbnl0aGluZywgd2UgbmVlZCB0byB7e3ZlcmJ9fSB0aGUge3thZGplY3RpdmV9fSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiLFxuICAgICAgXCJJJ2xsIHt7dmVyYn19IHRoZSB7e2FkamVjdGl2ZX19IHt7YWJicmV2aWF0aW9ufX0ge3tub3VufX0sIHRoYXQgc2hvdWxkIHt7bm91bn19IHRoZSB7e2FiYnJldmlhdGlvbn19IHt7bm91bn19IVwiXG4gICBdKTtcblxuICAgcmV0dXJuIGZha2VyLmhlbHBlcnMubXVzdGFjaGUocGhyYXNlLCBkYXRhKTtcblxuICB9LFxuXG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaGFja2VyO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxuLy8gYmFja3dvcmQtY29tcGF0aWJpbGl0eVxuZXhwb3J0cy5yYW5kb21OdW1iZXIgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICByZXR1cm4gZmFrZXIucmFuZG9tLm51bWJlcihyYW5nZSk7XG59O1xuXG4vLyBiYWNrd29yZC1jb21wYXRpYmlsaXR5XG5leHBvcnRzLnJhbmRvbWl6ZSA9IGZ1bmN0aW9uIChhcnJheSkge1xuICAgIGFycmF5ID0gYXJyYXkgfHwgW1wiYVwiLCBcImJcIiwgXCJjXCJdO1xuICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChhcnJheSk7XG59O1xuXG4vLyBzbHVnaWZpZXMgc3RyaW5nXG5leHBvcnRzLnNsdWdpZnkgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgc3RyaW5nID0gc3RyaW5nIHx8IFwiXCI7XG4gICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8gL2csICctJykucmVwbGFjZSgvW15cXHdcXC5cXC1dKy9nLCAnJyk7XG59O1xuXG4vLyBwYXJzZXMgc3RyaW5nIGZvciBhIHN5bWJvbCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcmFuZG9tIG51bWJlciBmcm9tIDEtMTBcbmV4cG9ydHMucmVwbGFjZVN5bWJvbFdpdGhOdW1iZXIgPSBmdW5jdGlvbiAoc3RyaW5nLCBzeW1ib2wpIHtcbiAgICBzdHJpbmcgPSBzdHJpbmcgfHwgXCJcIjtcbiAgICAvLyBkZWZhdWx0IHN5bWJvbCBpcyAnIydcbiAgICBpZiAoc3ltYm9sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3ltYm9sID0gJyMnO1xuICAgIH1cblxuICAgIHZhciBzdHIgPSAnJztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc3RyaW5nLmNoYXJBdChpKSA9PSBzeW1ib2wpIHtcbiAgICAgICAgICAgIHN0ciArPSBmYWtlci5yYW5kb20ubnVtYmVyKDkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RyICs9IHN0cmluZy5jaGFyQXQoaSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbn07XG5cbi8vIHRha2VzIGFuIGFycmF5IGFuZCByZXR1cm5zIGl0IHJhbmRvbWl6ZWRcbmV4cG9ydHMuc2h1ZmZsZSA9IGZ1bmN0aW9uIChvKSB7XG4gICAgbyA9IG8gfHwgW1wiYVwiLCBcImJcIiwgXCJjXCJdO1xuICAgIGZvciAodmFyIGosIHgsIGkgPSBvLmxlbmd0aC0xOyBpOyBqID0gZmFrZXIucmFuZG9tLm51bWJlcihpKSwgeCA9IG9bLS1pXSwgb1tpXSA9IG9bal0sIG9bal0gPSB4KTtcbiAgICByZXR1cm4gbztcbn07XG5cbmV4cG9ydHMubXVzdGFjaGUgPSBmdW5jdGlvbiAoc3RyLCBkYXRhKSB7XG4gIGZvcih2YXIgcCBpbiBkYXRhKSB7XG4gICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgne3snICsgcCArICd9fScsICdnJylcbiAgICBzdHIgPSBzdHIucmVwbGFjZShyZSwgZGF0YVtwXSk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn07XG5cbmV4cG9ydHMuY3JlYXRlQ2FyZCA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBcIm5hbWVcIjogZmFrZXIubmFtZS5maW5kTmFtZSgpLFxuICAgICAgICBcInVzZXJuYW1lXCI6IGZha2VyLmludGVybmV0LnVzZXJOYW1lKCksXG4gICAgICAgIFwiZW1haWxcIjogZmFrZXIuaW50ZXJuZXQuZW1haWwoKSxcbiAgICAgICAgXCJhZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwic3RyZWV0QVwiOiBmYWtlci5hZGRyZXNzLnN0cmVldE5hbWUoKSxcbiAgICAgICAgICAgIFwic3RyZWV0QlwiOiBmYWtlci5hZGRyZXNzLnN0cmVldEFkZHJlc3MoKSxcbiAgICAgICAgICAgIFwic3RyZWV0Q1wiOiBmYWtlci5hZGRyZXNzLnN0cmVldEFkZHJlc3ModHJ1ZSksXG4gICAgICAgICAgICBcInN0cmVldERcIjogZmFrZXIuYWRkcmVzcy5zZWNvbmRhcnlBZGRyZXNzKCksXG4gICAgICAgICAgICBcImNpdHlcIjogZmFrZXIuYWRkcmVzcy5jaXR5KCksXG4gICAgICAgICAgICBcInN0YXRlXCI6IGZha2VyLmFkZHJlc3Muc3RhdGUoKSxcbiAgICAgICAgICAgIFwiY291bnRyeVwiOiBmYWtlci5hZGRyZXNzLmNvdW50cnkoKSxcbiAgICAgICAgICAgIFwiemlwY29kZVwiOiBmYWtlci5hZGRyZXNzLnppcENvZGUoKSxcbiAgICAgICAgICAgIFwiZ2VvXCI6IHtcbiAgICAgICAgICAgICAgICBcImxhdFwiOiBmYWtlci5hZGRyZXNzLmxhdGl0dWRlKCksXG4gICAgICAgICAgICAgICAgXCJsbmdcIjogZmFrZXIuYWRkcmVzcy5sb25naXR1ZGUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBob25lXCI6IGZha2VyLnBob25lLnBob25lTnVtYmVyKCksXG4gICAgICAgIFwid2Vic2l0ZVwiOiBmYWtlci5pbnRlcm5ldC5kb21haW5OYW1lKCksXG4gICAgICAgIFwiY29tcGFueVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgICAgICAgICAgXCJjYXRjaFBocmFzZVwiOiBmYWtlci5jb21wYW55LmNhdGNoUGhyYXNlKCksXG4gICAgICAgICAgICBcImJzXCI6IGZha2VyLmNvbXBhbnkuYnMoKVxuICAgICAgICB9LFxuICAgICAgICBcInBvc3RzXCI6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIndvcmRzXCI6IGZha2VyLmxvcmVtLndvcmRzKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZVwiOiBmYWtlci5sb3JlbS5zZW50ZW5jZSgpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VzXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlcygpLFxuICAgICAgICAgICAgICAgIFwicGFyYWdyYXBoXCI6IGZha2VyLmxvcmVtLnBhcmFncmFwaCgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwid29yZHNcIjogZmFrZXIubG9yZW0ud29yZHMoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlXCI6IGZha2VyLmxvcmVtLnNlbnRlbmNlKCksXG4gICAgICAgICAgICAgICAgXCJzZW50ZW5jZXNcIjogZmFrZXIubG9yZW0uc2VudGVuY2VzKCksXG4gICAgICAgICAgICAgICAgXCJwYXJhZ3JhcGhcIjogZmFrZXIubG9yZW0ucGFyYWdyYXBoKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJ3b3Jkc1wiOiBmYWtlci5sb3JlbS53b3JkcygpLFxuICAgICAgICAgICAgICAgIFwic2VudGVuY2VcIjogZmFrZXIubG9yZW0uc2VudGVuY2UoKSxcbiAgICAgICAgICAgICAgICBcInNlbnRlbmNlc1wiOiBmYWtlci5sb3JlbS5zZW50ZW5jZXMoKSxcbiAgICAgICAgICAgICAgICBcInBhcmFncmFwaFwiOiBmYWtlci5sb3JlbS5wYXJhZ3JhcGgoKVxuICAgICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBcImFjY291bnRIaXN0b3J5XCI6IFtmYWtlci5oZWxwZXJzLmNyZWF0ZVRyYW5zYWN0aW9uKCksIGZha2VyLmhlbHBlcnMuY3JlYXRlVHJhbnNhY3Rpb24oKSwgZmFrZXIuaGVscGVycy5jcmVhdGVUcmFuc2FjdGlvbigpXVxuICAgIH07XG59O1xuXG5leHBvcnRzLmNvbnRleHR1YWxDYXJkID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbmFtZSA9IGZha2VyLm5hbWUuZmlyc3ROYW1lKCksXG4gICAgICB1c2VyTmFtZSA9IGZha2VyLmludGVybmV0LnVzZXJOYW1lKG5hbWUpO1xuICByZXR1cm4ge1xuICAgICAgXCJuYW1lXCI6IG5hbWUsXG4gICAgICBcInVzZXJuYW1lXCI6IHVzZXJOYW1lLFxuICAgICAgXCJhdmF0YXJcIjogZmFrZXIuaW50ZXJuZXQuYXZhdGFyKCksXG4gICAgICBcImVtYWlsXCI6IGZha2VyLmludGVybmV0LmVtYWlsKHVzZXJOYW1lKSxcbiAgICAgIFwiZG9iXCI6IGZha2VyLmRhdGUucGFzdCg1MCwgbmV3IERhdGUoXCJTYXQgU2VwIDIwIDE5OTIgMjE6MzU6MDIgR01UKzAyMDAgKENFU1QpXCIpKSxcbiAgICAgIFwicGhvbmVcIjogZmFrZXIucGhvbmUucGhvbmVOdW1iZXIoKSxcbiAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgXCJzdHJlZXRcIjogZmFrZXIuYWRkcmVzcy5zdHJlZXROYW1lKHRydWUpLFxuICAgICAgICAgIFwic3VpdGVcIjogZmFrZXIuYWRkcmVzcy5zZWNvbmRhcnlBZGRyZXNzKCksXG4gICAgICAgICAgXCJjaXR5XCI6IGZha2VyLmFkZHJlc3MuY2l0eSgpLFxuICAgICAgICAgIFwiemlwY29kZVwiOiBmYWtlci5hZGRyZXNzLnppcENvZGUoKSxcbiAgICAgICAgICBcImdlb1wiOiB7XG4gICAgICAgICAgICAgIFwibGF0XCI6IGZha2VyLmFkZHJlc3MubGF0aXR1ZGUoKSxcbiAgICAgICAgICAgICAgXCJsbmdcIjogZmFrZXIuYWRkcmVzcy5sb25naXR1ZGUoKVxuICAgICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndlYnNpdGVcIjogZmFrZXIuaW50ZXJuZXQuZG9tYWluTmFtZSgpLFxuICAgICAgXCJjb21wYW55XCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjogZmFrZXIuY29tcGFueS5jb21wYW55TmFtZSgpLFxuICAgICAgICAgIFwiY2F0Y2hQaHJhc2VcIjogZmFrZXIuY29tcGFueS5jYXRjaFBocmFzZSgpLFxuICAgICAgICAgIFwiYnNcIjogZmFrZXIuY29tcGFueS5icygpXG4gICAgICB9XG4gIH07XG59O1xuXG5cbmV4cG9ydHMudXNlckNhcmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgXCJuYW1lXCI6IGZha2VyLm5hbWUuZmluZE5hbWUoKSxcbiAgICAgICAgXCJ1c2VybmFtZVwiOiBmYWtlci5pbnRlcm5ldC51c2VyTmFtZSgpLFxuICAgICAgICBcImVtYWlsXCI6IGZha2VyLmludGVybmV0LmVtYWlsKCksXG4gICAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcInN0cmVldFwiOiBmYWtlci5hZGRyZXNzLnN0cmVldE5hbWUodHJ1ZSksXG4gICAgICAgICAgICBcInN1aXRlXCI6IGZha2VyLmFkZHJlc3Muc2Vjb25kYXJ5QWRkcmVzcygpLFxuICAgICAgICAgICAgXCJjaXR5XCI6IGZha2VyLmFkZHJlc3MuY2l0eSgpLFxuICAgICAgICAgICAgXCJ6aXBjb2RlXCI6IGZha2VyLmFkZHJlc3MuemlwQ29kZSgpLFxuICAgICAgICAgICAgXCJnZW9cIjoge1xuICAgICAgICAgICAgICAgIFwibGF0XCI6IGZha2VyLmFkZHJlc3MubGF0aXR1ZGUoKSxcbiAgICAgICAgICAgICAgICBcImxuZ1wiOiBmYWtlci5hZGRyZXNzLmxvbmdpdHVkZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGhvbmVcIjogZmFrZXIucGhvbmUucGhvbmVOdW1iZXIoKSxcbiAgICAgICAgXCJ3ZWJzaXRlXCI6IGZha2VyLmludGVybmV0LmRvbWFpbk5hbWUoKSxcbiAgICAgICAgXCJjb21wYW55XCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBmYWtlci5jb21wYW55LmNvbXBhbnlOYW1lKCksXG4gICAgICAgICAgICBcImNhdGNoUGhyYXNlXCI6IGZha2VyLmNvbXBhbnkuY2F0Y2hQaHJhc2UoKSxcbiAgICAgICAgICAgIFwiYnNcIjogZmFrZXIuY29tcGFueS5icygpXG4gICAgICAgIH1cbiAgICB9O1xufTtcblxuZXhwb3J0cy5jcmVhdGVUcmFuc2FjdGlvbiA9IGZ1bmN0aW9uKCl7XG4gIHJldHVybiB7XG4gICAgXCJhbW91bnRcIiA6IGZha2VyLmZpbmFuY2UuYW1vdW50KCksXG4gICAgXCJkYXRlXCIgOiBuZXcgRGF0ZSgyMDEyLCAxLCAyKSwgIC8vVE9ETzogYWRkIGEgcmFuZ2VkIGRhdGUgbWV0aG9kXG4gICAgXCJidXNpbmVzc1wiOiBmYWtlci5jb21wYW55LmNvbXBhbnlOYW1lKCksXG4gICAgXCJuYW1lXCI6IFtmYWtlci5maW5hbmNlLmFjY291bnROYW1lKCksIGZha2VyLmZpbmFuY2UubWFzaygpXS5qb2luKCcgJyksXG4gICAgXCJ0eXBlXCIgOiBleHBvcnRzLnJhbmRvbWl6ZShmYWtlci5kZWZpbml0aW9ucy5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUpLFxuICAgIFwiYWNjb3VudFwiIDogZmFrZXIuZmluYW5jZS5hY2NvdW50KClcbiAgfTtcbn07XG5cbi8qXG5TdHJpbmcucHJvdG90eXBlLmNhcGl0YWxpemUgPSBmdW5jdGlvbiAoKSB7IC8vdjEuMFxuICAgIHJldHVybiB0aGlzLnJlcGxhY2UoL1xcdysvZywgZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIGEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBhLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xufTtcbiovXG5cbiIsInZhciBmYWtlciA9IHJlcXVpcmUoJy4uL2luZGV4Jyk7XG5cbnZhciBpbWFnZSA9IHtcbiAgaW1hZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY2F0ZWdvcmllcyA9IFtcImFic3RyYWN0XCIsIFwiYW5pbWFsc1wiLCBcImJ1c2luZXNzXCIsIFwiY2F0c1wiLCBcImNpdHlcIiwgXCJmb29kXCIsIFwibmlnaHRsaWZlXCIsIFwiZmFzaGlvblwiLCBcInBlb3BsZVwiLCBcIm5hdHVyZVwiLCBcInNwb3J0c1wiLCBcInRlY2huaWNzXCIsIFwidHJhbnNwb3J0XCJdO1xuICAgIHJldHVybiBpbWFnZVtmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChjYXRlZ29yaWVzKV0oKTtcbiAgfSxcbiAgYXZhdGFyOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZha2VyLmludGVybmV0LmF2YXRhcigpO1xuICB9LFxuICBpbWFnZVVybDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIGNhdGVnb3J5KSB7XG4gICAgICB2YXIgd2lkdGggPSB3aWR0aCB8fCA2NDA7XG4gICAgICB2YXIgaGVpZ2h0ID0gaGVpZ2h0IHx8IDQ4MDtcblxuICAgICAgdmFyIHVybCA9J2h0dHA6Ly9sb3JlbXBpeGVsLmNvbS8nICsgd2lkdGggKyAnLycgKyBoZWlnaHQ7XG4gICAgICBpZiAodHlwZW9mIGNhdGVnb3J5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB1cmwgKz0gJy8nICsgY2F0ZWdvcnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXJsO1xuICB9LFxuICBhYnN0cmFjdDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2Fic3RyYWN0Jyk7XG4gIH0sXG4gIGFuaW1hbHM6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdhbmltYWxzJyk7XG4gIH0sXG4gIGJ1c2luZXNzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnYnVzaW5lc3MnKTtcbiAgfSxcbiAgY2F0czogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2NhdHMnKTtcbiAgfSxcbiAgY2l0eTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2NpdHknKTtcbiAgfSxcbiAgZm9vZDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ2Zvb2QnKTtcbiAgfSxcbiAgbmlnaHRsaWZlOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnbmlnaHRsaWZlJyk7XG4gIH0sXG4gIGZhc2hpb246IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICdmYXNoaW9uJyk7XG4gIH0sXG4gIHBlb3BsZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgICByZXR1cm4gZmFrZXIuaW1hZ2UuaW1hZ2VVcmwod2lkdGgsIGhlaWdodCwgJ3Blb3BsZScpO1xuICB9LFxuICBuYXR1cmU6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIGZha2VyLmltYWdlLmltYWdlVXJsKHdpZHRoLCBoZWlnaHQsICduYXR1cmUnKTtcbiAgfSxcbiAgc3BvcnRzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAnc3BvcnRzJyk7XG4gIH0sXG4gIHRlY2huaWNzOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAndGVjaG5pY3MnKTtcbiAgfSxcbiAgdHJhbnNwb3J0OiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkge1xuICAgIHJldHVybiBmYWtlci5pbWFnZS5pbWFnZVVybCh3aWR0aCwgaGVpZ2h0LCAndHJhbnNwb3J0Jyk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW1hZ2U7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpLFxuICAgIHBhc3N3b3JkX2dlbmVyYXRvciA9IHJlcXVpcmUoJy4uL3ZlbmRvci9wYXNzd29yZC1nZW5lcmF0b3IuanMnKSxcbiAgICByYW5kb21fdWEgPSByZXF1aXJlKCcuLi92ZW5kb3IvdXNlci1hZ2VudCcpO1xuXG52YXIgaW50ZXJuZXQgPSB7XG5cbiAgICBhdmF0YXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmludGVybmV0LmF2YXRhcl91cmkpO1xuICAgIH0sXG5cbiAgICBlbWFpbDogZnVuY3Rpb24gKGZpcnN0TmFtZSwgbGFzdE5hbWUsIHByb3ZpZGVyKSB7XG4gICAgICAgIHByb3ZpZGVyID0gcHJvdmlkZXIgfHwgZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMuaW50ZXJuZXQuZnJlZV9lbWFpbCk7XG4gICAgICAgIHJldHVybiAgZmFrZXIuaGVscGVycy5zbHVnaWZ5KGZha2VyLmludGVybmV0LnVzZXJOYW1lKGZpcnN0TmFtZSwgbGFzdE5hbWUpKSArIFwiQFwiICsgcHJvdmlkZXI7XG4gICAgfSxcblxuICAgIHVzZXJOYW1lOiBmdW5jdGlvbiAoZmlyc3ROYW1lLCBsYXN0TmFtZSkge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgfHwgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSB8fCBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIHN3aXRjaCAoZmFrZXIucmFuZG9tLm51bWJlcigyKSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20ubnVtYmVyKDk5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbXCIuXCIsIFwiX1wiXSkgKyBsYXN0TmFtZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXN1bHQgPSBmaXJzdE5hbWUgKyBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChbXCIuXCIsIFwiX1wiXSkgKyBsYXN0TmFtZSArIGZha2VyLnJhbmRvbS5udW1iZXIoOTkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLycvZywgXCJcIik7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC8gL2csIFwiXCIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICBkb21haW5OYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5pbnRlcm5ldC5kb21haW5Xb3JkKCkgKyBcIi5cIiArIGZha2VyLmludGVybmV0LmRvbWFpblN1ZmZpeCgpO1xuICAgIH0sXG5cbiAgICBkb21haW5TdWZmaXg6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLmludGVybmV0LmRvbWFpbl9zdWZmaXgpO1xuICAgIH0sXG5cbiAgICBkb21haW5Xb3JkOiAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5maXJzdE5hbWUoKS5yZXBsYWNlKC8oW15BLVowLTkuXyUrLV0pL2lnLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICB9LFxuXG4gICAgaXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJhbmROdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gKGZha2VyLnJhbmRvbS5udW1iZXIoMjU1KSkudG9GaXhlZCgwKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRbaV0gPSByYW5kTnVtKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0LmpvaW4oXCIuXCIpO1xuICAgIH0sXG5cbiAgICB1c2VyQWdlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByYW5kb21fdWEuZ2VuZXJhdGUoKTtcbiAgICB9LFxuXG4gICAgY29sb3I6IGZ1bmN0aW9uIChiYXNlUmVkMjU1LCBiYXNlR3JlZW4yNTUsIGJhc2VCbHVlMjU1KSB7XG4gICAgICAgIGJhc2VSZWQyNTUgPSBiYXNlUmVkMjU1IHx8IDA7XG4gICAgICAgIGJhc2VHcmVlbjI1NSA9IGJhc2VHcmVlbjI1NSB8fCAwO1xuICAgICAgICBiYXNlQmx1ZTI1NSA9IGJhc2VCbHVlMjU1IHx8IDA7XG4gICAgICAgIC8vIGJhc2VkIG9uIGF3ZXNvbWUgcmVzcG9uc2UgOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzMDQ0L2FsZ29yaXRobS10by1yYW5kb21seS1nZW5lcmF0ZS1hbi1hZXN0aGV0aWNhbGx5LXBsZWFzaW5nLWNvbG9yLXBhbGV0dGVcbiAgICAgICAgdmFyIHJlZCA9IE1hdGguZmxvb3IoKGZha2VyLnJhbmRvbS5udW1iZXIoMjU2KSArIGJhc2VSZWQyNTUpIC8gMik7XG4gICAgICAgIHZhciBncmVlbiA9IE1hdGguZmxvb3IoKGZha2VyLnJhbmRvbS5udW1iZXIoMjU2KSArIGJhc2VHcmVlbjI1NSkgLyAyKTtcbiAgICAgICAgdmFyIGJsdWUgPSBNYXRoLmZsb29yKChmYWtlci5yYW5kb20ubnVtYmVyKDI1NikgKyBiYXNlQmx1ZTI1NSkgLyAyKTtcbiAgICAgICAgdmFyIHJlZFN0ciA9IHJlZC50b1N0cmluZygxNik7XG4gICAgICAgIHZhciBncmVlblN0ciA9IGdyZWVuLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgdmFyIGJsdWVTdHIgPSBibHVlLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgcmV0dXJuICcjJyArXG4gICAgICAgICAgKHJlZFN0ci5sZW5ndGggPT09IDEgPyAnMCcgOiAnJykgKyByZWRTdHIgK1xuICAgICAgICAgIChncmVlblN0ci5sZW5ndGggPT09IDEgPyAnMCcgOiAnJykgKyBncmVlblN0ciArXG4gICAgICAgICAgKGJsdWVTdHIubGVuZ3RoID09PSAxID8gJzAnOiAnJykgKyBibHVlU3RyO1xuXG4gICAgfSxcblxuICAgIHBhc3N3b3JkOiBmdW5jdGlvbiAobGVuLCBtZW1vcmFibGUsIHBhdHRlcm4sIHByZWZpeCkge1xuICAgICAgbGVuID0gbGVuIHx8IDE1O1xuICAgICAgaWYgKHR5cGVvZiBtZW1vcmFibGUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbWVtb3JhYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFzc3dvcmRfZ2VuZXJhdG9yKGxlbiwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJuZXQ7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuZXhwb3J0c1snZGUnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZS5qcycpO1xuZXhwb3J0c1snZGVfQVQnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZV9BVC5qcycpO1xuZXhwb3J0c1snZGVfQ0gnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9kZV9DSC5qcycpO1xuZXhwb3J0c1snZW4nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbi5qcycpO1xuZXhwb3J0c1snZW5fQVUnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9BVS5qcycpO1xuZXhwb3J0c1snZW5fQk9SSyddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0JPUksuanMnKTtcbmV4cG9ydHNbJ2VuX0NBJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fQ0EuanMnKTtcbmV4cG9ydHNbJ2VuX0dCJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvZW5fR0IuanMnKTtcbmV4cG9ydHNbJ2VuX0lORCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL2VuX0lORC5qcycpO1xuZXhwb3J0c1snZW5fVVMnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9VUy5qcycpO1xuZXhwb3J0c1snZW5fYXVfb2NrZXInXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lbl9hdV9vY2tlci5qcycpO1xuZXhwb3J0c1snZXMnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9lcy5qcycpO1xuZXhwb3J0c1snZmEnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9mYS5qcycpO1xuZXhwb3J0c1snZnInXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9mci5qcycpO1xuZXhwb3J0c1snaXQnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9pdC5qcycpO1xuZXhwb3J0c1snamEnXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9qYS5qcycpO1xuZXhwb3J0c1sna28nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9rby5qcycpO1xuZXhwb3J0c1snbmJfTk8nXSA9IHJlcXVpcmUoJy4vbG9jYWxlcy9uYl9OTy5qcycpO1xuZXhwb3J0c1snbmVwJ10gPSByZXF1aXJlKCcuL2xvY2FsZXMvbmVwLmpzJyk7XG5leHBvcnRzWydubCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL25sLmpzJyk7XG5leHBvcnRzWydwbCddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3BsLmpzJyk7XG5leHBvcnRzWydwdF9CUiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3B0X0JSLmpzJyk7XG5leHBvcnRzWydydSddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3J1LmpzJyk7XG5leHBvcnRzWydzayddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3NrLmpzJyk7XG5leHBvcnRzWydzdiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3N2LmpzJyk7XG5leHBvcnRzWyd2aSddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3ZpLmpzJyk7XG5leHBvcnRzWyd6aF9DTiddID0gcmVxdWlyZSgnLi9sb2NhbGVzL3poX0NOLmpzJyk7IiwidmFyIGRlID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZGU7XG5kZS50aXRsZSA9IFwiR2VybWFuXCI7XG5kZS5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vcmRcIixcbiAgICBcIk9zdFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiU8O8ZFwiLFxuICAgIFwiTmV1XCIsXG4gICAgXCJBbHRcIixcbiAgICBcIkJhZFwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwic3RhZHRcIixcbiAgICBcImRvcmZcIixcbiAgICBcImxhbmRcIixcbiAgICBcInNjaGVpZFwiLFxuICAgIFwiYnVyZ1wiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCLDhGd5cHRlblwiLFxuICAgIFwiw4RxdWF0b3JpYWxndWluZWFcIixcbiAgICBcIsOEdGhpb3BpZW5cIixcbiAgICBcIsOWc3RlcnJlaWNoXCIsXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pZW5cIixcbiAgICBcIkFsZ2VyaWVuXCIsXG4gICAgXCJBbWVyaWthbmlzY2gtU2Ftb2FcIixcbiAgICBcIkFtZXJpa2FuaXNjaGUgSnVuZ2Zlcm5pbnNlbG5cIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGFya3Rpc1wiLFxuICAgIFwiQW50aWd1YSB1bmQgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5pZW5cIixcbiAgICBcIkFybWVuaWVuXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXNlcmJhaWRzY2hhblwiLFxuICAgIFwiQXVzdHJhbGllblwiLFxuICAgIFwiQmFoYW1hc1wiLFxuICAgIFwiQmFocmFpblwiLFxuICAgIFwiQmFuZ2xhZGVzY2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxhcnVzXCIsXG4gICAgXCJCZWxnaWVuXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJkaWUgQmVybXVkYXNcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpZW5cIixcbiAgICBcIkJvc25pZW4gdW5kIEhlcnplZ293aW5hXCIsXG4gICAgXCJCb3RzdWFuYVwiLFxuICAgIFwiQm91dmV0aW5zZWxcIixcbiAgICBcIkJyYXNpbGllblwiLFxuICAgIFwiQnJpdGlzY2hlIEp1bmdmZXJuaW5zZWxuXCIsXG4gICAgXCJCcml0aXNjaGVzIFRlcnJpdG9yaXVtIGltIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiQnJ1bmVpIERhcnVzc2FsYW1cIixcbiAgICBcIkJ1bGdhcmllblwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIkNvb2tpbnNlbG5cIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkTDpG5lbWFya1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBSZXB1YmxpayBLb25nb1wiLFxuICAgIFwiRGVtb2tyYXRpc2NoZSBWb2xrc3JlcHVibGlrIEtvcmVhXCIsXG4gICAgXCJEZXV0c2NobGFuZFwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIkRvbWluaWthbmlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJEc2NoaWJ1dGlcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJFc3RsYW5kXCIsXG4gICAgXCJGw6Ryw7ZlclwiLFxuICAgIFwiRmFsa2xhbmRpbnNlbG5cIixcbiAgICBcIkZpZHNjaGlcIixcbiAgICBcIkZpbm5sYW5kXCIsXG4gICAgXCJGcmFua3JlaWNoXCIsXG4gICAgXCJGcmFuesO2c2lzY2gtR3VheWFuYVwiLFxuICAgIFwiRnJhbnrDtnNpc2NoLVBvbHluZXNpZW5cIixcbiAgICBcIkZyYW56w7ZzaXNjaGUgR2ViaWV0ZSBpbSBzw7xkbGljaGVuIEluZGlzY2hlbiBPemVhblwiLFxuICAgIFwiR2FidW5cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2VvcmdpZW5cIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiR3JpZWNoZW5sYW5kXCIsXG4gICAgXCJHdWFkZWxvdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgdW5kIE1jRG9uYWxkaW5zZWxuXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZ2tvbmdcIixcbiAgICBcIkluZGllblwiLFxuICAgIFwiSW5kb25lc2llblwiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXJsYW5kXCIsXG4gICAgXCJJc2xhbmRcIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiSXRhbGllblwiLFxuICAgIFwiSmFtYWlrYVwiLFxuICAgIFwiSmFwYW5cIixcbiAgICBcIkplbWVuXCIsXG4gICAgXCJKb3JkYW5pZW5cIixcbiAgICBcIkp1Z29zbGF3aWVuXCIsXG4gICAgXCJLYWltYW5pbnNlbG5cIixcbiAgICBcIkthbWJvZHNjaGFcIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbmFkYVwiLFxuICAgIFwiS2FwIFZlcmRlXCIsXG4gICAgXCJLYXNhY2hzdGFuXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpc2lzdGFuXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS2xlaW5lcmUgYW1lcmlrYW5pc2NoZSDDnGJlcnNlZWluc2VsblwiLFxuICAgIFwiS29rb3NpbnNlbG5cIixcbiAgICBcIktvbHVtYmllblwiLFxuICAgIFwiS29tb3JlblwiLFxuICAgIFwiS29uZ29cIixcbiAgICBcIktyb2F0aWVuXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdXdhaXRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxldHRsYW5kXCIsXG4gICAgXCJMaWJhbm9uXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJ5ZW5cIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdGF1ZW5cIixcbiAgICBcIkx1eGVtYnVyZ1wiLFxuICAgIFwiTWFjYXVcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIk1hbGVkaXZlblwiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcImVoZW1hbGlnZSBqdWdvc2xhd2lzY2hlIFJlcHVibGlrIE1hemVkb25pZW5cIixcbiAgICBcIk1hcm9ra29cIixcbiAgICBcIk1hcnNoYWxsaW5zZWxuXCIsXG4gICAgXCJNYXJ0aW5pcXVlXCIsXG4gICAgXCJNYXVyZXRhbmllblwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIk1pa3JvbmVzaWVuXCIsXG4gICAgXCJNb25hY29cIixcbiAgICBcIk1vbmdvbGVpXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3NhbWJpa1wiLFxuICAgIFwiTXlhbm1hclwiLFxuICAgIFwiTsO2cmRsaWNoZSBNYXJpYW5lblwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJOZXVrYWxlZG9uaWVuXCIsXG4gICAgXCJOZXVzZWVsYW5kXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZWRlcmzDpG5kaXNjaGUgQW50aWxsZW5cIixcbiAgICBcIk5pZWRlcmxhbmRlXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9yZm9sa2luc2VsXCIsXG4gICAgXCJOb3J3ZWdlblwiLFxuICAgIFwiT21hblwiLFxuICAgIFwiT3N0dGltb3JcIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YS1OZXVndWluZWFcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQaGlsaXBwaW5lblwiLFxuICAgIFwiUGl0Y2Fpcm5pbnNlbG5cIixcbiAgICBcIlBvbGVuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlLDqXVuaW9uXCIsXG4gICAgXCJSZXB1YmxpayBLb3JlYVwiLFxuICAgIFwiUmVwdWJsaWsgTW9sZGF1XCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlJ1bcOkbmllblwiLFxuICAgIFwiUnVzc2lzY2hlIEbDtmRlcmF0aW9uXCIsXG4gICAgXCJTw6NvIFRvbcOpIHVuZCBQcsOtbmNpcGVcIixcbiAgICBcIlPDvGRhZnJpa2FcIixcbiAgICBcIlPDvGRnZW9yZ2llbiB1bmQgU8O8ZGxpY2hlIFNhbmR3aWNoaW5zZWxuXCIsXG4gICAgXCJTYWxvbW9uZW5cIixcbiAgICBcIlNhbWJpYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNhdWRpLUFyYWJpZW5cIixcbiAgICBcIlNjaHdlZGVuXCIsXG4gICAgXCJTY2h3ZWl6XCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXljaGVsbGVuXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbWJhYndlXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU2xvd2FrZWlcIixcbiAgICBcIlNsb3dlbmllblwiLFxuICAgIFwiU29tYWxpZW5cIixcbiAgICBcIlNwYW5pZW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3QuIEhlbGVuYVwiLFxuICAgIFwiU3QuIEtpdHRzIHVuZCBOZXZpc1wiLFxuICAgIFwiU3QuIEx1Y2lhXCIsXG4gICAgXCJTdC4gUGllcnJlIHVuZCBNaXF1ZWxvblwiLFxuICAgIFwiU3QuIFZpbmNlbnQgdW5kIGRpZSBHcmVuYWRpbmVuXCIsXG4gICAgXCJTdWRhblwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3ZhbGJhcmQgdW5kIEphbiBNYXllblwiLFxuICAgIFwiU3dhc2lsYW5kXCIsXG4gICAgXCJTeXJpZW5cIixcbiAgICBcIlTDvHJrZWlcIixcbiAgICBcIlRhZHNjaGlraXN0YW5cIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiVGFuc2FuaWFcIixcbiAgICBcIlRoYWlsYW5kXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb2tlbGF1XCIsXG4gICAgXCJUb25nYVwiLFxuICAgIFwiVHJpbmlkYWQgdW5kIFRvYmFnb1wiLFxuICAgIFwiVHNjaGFkXCIsXG4gICAgXCJUc2NoZWNoaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIlR1bmVzaWVuXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1cmtzLSB1bmQgQ2FpY29zaW5zZWxuXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluZVwiLFxuICAgIFwiVW5nYXJuXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVc2Jla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWYXRpa2Fuc3RhZHRcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVyZWluaWd0ZSBBcmFiaXNjaGUgRW1pcmF0ZVwiLFxuICAgIFwiVmVyZWluaWd0ZSBTdGFhdGVuXCIsXG4gICAgXCJWZXJlaW5pZ3RlcyBLw7ZuaWdyZWljaFwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiV2FsbGlzIHVuZCBGdXR1bmFcIixcbiAgICBcIldlaWhuYWNodHNpbnNlbFwiLFxuICAgIFwiV2VzdHNhaGFyYVwiLFxuICAgIFwiWmVudHJhbGFmcmlrYW5pc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiWnlwZXJuXCJcbiAgXSxcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJBY2tlcndlZ1wiLFxuICAgIFwiQWRhbGJlcnQtU3RpZnRlci1TdHIuXCIsXG4gICAgXCJBZGFsYmVydHN0ci5cIixcbiAgICBcIkFkb2xmLUJhZXllci1TdHIuXCIsXG4gICAgXCJBZG9sZi1LYXNjaG55LVN0ci5cIixcbiAgICBcIkFkb2xmLVJlaWNod2Vpbi1TdHIuXCIsXG4gICAgXCJBZG9sZnNzdHIuXCIsXG4gICAgXCJBaG9ybndlZ1wiLFxuICAgIFwiQWhyc3RyLlwiLFxuICAgIFwiQWthemllbndlZ1wiLFxuICAgIFwiQWxiZXJ0LUVpbnN0ZWluLVN0ci5cIixcbiAgICBcIkFsYmVydC1TY2h3ZWl0emVyLVN0ci5cIixcbiAgICBcIkFsYmVydHVzLU1hZ251cy1TdHIuXCIsXG4gICAgXCJBbGJlcnQtWmFydGhlLVdlZ1wiLFxuICAgIFwiQWxiaW4tRWRlbG1hbm4tU3RyLlwiLFxuICAgIFwiQWxicmVjaHQtSGF1c2hvZmVyLVN0ci5cIixcbiAgICBcIkFsZGVndW5kaXNzdHIuXCIsXG4gICAgXCJBbGV4YW5kZXJzdHIuXCIsXG4gICAgXCJBbGZyZWQtRGVscC1TdHIuXCIsXG4gICAgXCJBbGZyZWQtS3ViaW4tU3RyLlwiLFxuICAgIFwiQWxmcmVkLVN0b2NrLVN0ci5cIixcbiAgICBcIkFsa2VucmF0aGVyIFN0ci5cIixcbiAgICBcIkFsbGVuc3RlaW5lciBTdHIuXCIsXG4gICAgXCJBbHNlbnN0ci5cIixcbiAgICBcIkFsdCBTdGVpbmLDvGNoZWxlciBXZWdcIixcbiAgICBcIkFsdGUgR2FydGVuXCIsXG4gICAgXCJBbHRlIEhlaWRlXCIsXG4gICAgXCJBbHRlIExhbmRzdHIuXCIsXG4gICAgXCJBbHRlIFppZWdlbGVpXCIsXG4gICAgXCJBbHRlbmJlcmdlciBTdHIuXCIsXG4gICAgXCJBbHRlbmhvZlwiLFxuICAgIFwiQWx0ZXIgR3Jlbnp3ZWdcIixcbiAgICBcIkFsdHN0YWR0c3RyLlwiLFxuICAgIFwiQW0gQWx0ZW4gR2Fzd2Vya1wiLFxuICAgIFwiQW0gQWx0ZW4gU2NoYWZzdGFsbFwiLFxuICAgIFwiQW0gQXJlbnpiZXJnXCIsXG4gICAgXCJBbSBCZW50aGFsXCIsXG4gICAgXCJBbSBCaXJrZW5iZXJnXCIsXG4gICAgXCJBbSBCbGF1ZW4gQmVyZ1wiLFxuICAgIFwiQW0gQm9yc2JlcmdcIixcbiAgICBcIkFtIEJydW5nZW5cIixcbiAgICBcIkFtIELDvGNoZWx0ZXIgSG9mXCIsXG4gICAgXCJBbSBCdXR0ZXJtYXJrdFwiLFxuICAgIFwiQW0gRWhyZW5mcmllZGhvZlwiLFxuICAgIFwiQW0gRXNlbHNkYW1tXCIsXG4gICAgXCJBbSBGYWxrZW5iZXJnXCIsXG4gICAgXCJBbSBGcmFua2VuYmVyZ1wiLFxuICAgIFwiQW0gR2VzdW5kaGVpdHNwYXJrXCIsXG4gICAgXCJBbSBHaWVybGljaHNob2ZcIixcbiAgICBcIkFtIEdyYWJlblwiLFxuICAgIFwiQW0gSGFnZWxrcmV1elwiLFxuICAgIFwiQW0gSGFuZ1wiLFxuICAgIFwiQW0gSGVpZGthbXBcIixcbiAgICBcIkFtIEhlbW1lbHJhdGhlciBIb2ZcIixcbiAgICBcIkFtIEhvZmFja2VyXCIsXG4gICAgXCJBbSBIb2hlbiBVZmVyXCIsXG4gICAgXCJBbSBIw7ZsbGVycyBFY2tcIixcbiAgICBcIkFtIEjDvGhuZXJiZXJnXCIsXG4gICAgXCJBbSBKw6RnZXJob2ZcIixcbiAgICBcIkFtIEp1bmtlcm5rYW1wXCIsXG4gICAgXCJBbSBLZW1wZXJzdGllZ2VsXCIsXG4gICAgXCJBbSBLZXR0bmVyc2J1c2NoXCIsXG4gICAgXCJBbSBLaWVzYmVyZ1wiLFxuICAgIFwiQW0gS2zDtnN0ZXJjaGVuXCIsXG4gICAgXCJBbSBLbmVjaHRzZ3JhYmVuXCIsXG4gICAgXCJBbSBLw7ZsbGVyd2VnXCIsXG4gICAgXCJBbSBLw7Z0dGVyc2JhY2hcIixcbiAgICBcIkFtIEtyZWlzcGFya1wiLFxuICAgIFwiQW0gS3JvbmVmZWxkXCIsXG4gICAgXCJBbSBLw7xjaGVuaG9mXCIsXG4gICAgXCJBbSBLw7xobnNidXNjaFwiLFxuICAgIFwiQW0gTGluZGVuZmVsZFwiLFxuICAgIFwiQW0gTcOkcmNoZW5cIixcbiAgICBcIkFtIE1pdHRlbGJlcmdcIixcbiAgICBcIkFtIE3Dtm5jaHNob2ZcIixcbiAgICBcIkFtIE3DvGhsZW5iYWNoXCIsXG4gICAgXCJBbSBOZXVlbmhvZlwiLFxuICAgIFwiQW0gTm9ubmVuYnJ1Y2hcIixcbiAgICBcIkFtIFBsYXR0ZW5idXNjaFwiLFxuICAgIFwiQW0gUXVldHRpbmdlciBGZWxkXCIsXG4gICAgXCJBbSBSb3NlbmjDvGdlbFwiLFxuICAgIFwiQW0gU2FuZGJlcmdcIixcbiAgICBcIkFtIFNjaGVyZmVuYnJhbmRcIixcbiAgICBcIkFtIFNjaG9ra2VyXCIsXG4gICAgXCJBbSBTaWxiZXJzZWVcIixcbiAgICBcIkFtIFNvbm5lbmhhbmdcIixcbiAgICBcIkFtIFNwb3J0cGxhdHpcIixcbiAgICBcIkFtIFN0YWR0cGFya1wiLFxuICAgIFwiQW0gU3RlaW5iZXJnXCIsXG4gICAgXCJBbSBUZWxlZ3JhZlwiLFxuICAgIFwiQW0gVGhlbGVuaG9mXCIsXG4gICAgXCJBbSBWb2dlbGtyZXV6XCIsXG4gICAgXCJBbSBWb2dlbHNhbmdcIixcbiAgICBcIkFtIFZvZ2Vsc2ZlbGRjaGVuXCIsXG4gICAgXCJBbSBXYW1iYWNoZXIgSG9mXCIsXG4gICAgXCJBbSBXYXNzZXJ0dXJtXCIsXG4gICAgXCJBbSBXZWlkZW5idXNjaFwiLFxuICAgIFwiQW0gV2VpaGVyXCIsXG4gICAgXCJBbSBXZWluZ2FydGVuXCIsXG4gICAgXCJBbSBXZXJ0aFwiLFxuICAgIFwiQW1zZWx3ZWdcIixcbiAgICBcIkFuIGRlbiBJcmxlblwiLFxuICAgIFwiQW4gZGVuIFJoZWluYXVlblwiLFxuICAgIFwiQW4gZGVyIEJlcmdlcndlaWRlXCIsXG4gICAgXCJBbiBkZXIgRGluZ2JhbmtcIixcbiAgICBcIkFuIGRlciBFdmFuZ2VsaXNjaGVuIEtpcmNoZVwiLFxuICAgIFwiQW4gZGVyIEV2Z2wuIEtpcmNoZVwiLFxuICAgIFwiQW4gZGVyIEZlbGRnYXNzZVwiLFxuICAgIFwiQW4gZGVyIEZldHRlaGVubmVcIixcbiAgICBcIkFuIGRlciBLYW50ZVwiLFxuICAgIFwiQW4gZGVyIExhYWNoXCIsXG4gICAgXCJBbiBkZXIgTGVobWt1aGxlXCIsXG4gICAgXCJBbiBkZXIgTGljaHRlbmJ1cmdcIixcbiAgICBcIkFuIGRlciBMdWlzZW5idXJnXCIsXG4gICAgXCJBbiBkZXIgUm9iZXJ0c2J1cmdcIixcbiAgICBcIkFuIGRlciBTY2htaXR0ZW5cIixcbiAgICBcIkFuIGRlciBTY2h1c3Rlcmluc2VsXCIsXG4gICAgXCJBbiBkZXIgU3RlaW5yw7x0c2NoXCIsXG4gICAgXCJBbiBTdC4gQW5kcmVhc1wiLFxuICAgIFwiQW4gU3QuIFJlbWlnaXVzXCIsXG4gICAgXCJBbmRyZWFzc3RyLlwiLFxuICAgIFwiQW5rZXJ3ZWdcIixcbiAgICBcIkFubmV0dGUtS29sYi1TdHIuXCIsXG4gICAgXCJBcGVucmFkZXIgU3RyLlwiLFxuICAgIFwiQXJub2xkLU9obGV0ei1TdHIuXCIsXG4gICAgXCJBdHpsZW5iYWNoZXIgU3RyLlwiLFxuICAgIFwiQXVlcndlZ1wiLFxuICAgIFwiQXVlc3RyLlwiLFxuICAgIFwiQXVmIGRlbSBBY2tlclwiLFxuICAgIFwiQXVmIGRlbSBCbGFobmVuaG9mXCIsXG4gICAgXCJBdWYgZGVtIEJvaG5iw7xjaGVsXCIsXG4gICAgXCJBdWYgZGVtIEJydWNoXCIsXG4gICAgXCJBdWYgZGVtIEVuZFwiLFxuICAgIFwiQXVmIGRlbSBGb3JzdFwiLFxuICAgIFwiQXVmIGRlbSBIZXJiZXJnXCIsXG4gICAgXCJBdWYgZGVtIExlaG5cIixcbiAgICBcIkF1ZiBkZW0gU3RlaW5cIixcbiAgICBcIkF1ZiBkZW0gV2VpZXJiZXJnXCIsXG4gICAgXCJBdWYgZGVtIFdlaWhlcmhhaG5cIixcbiAgICBcIkF1ZiBkZW4gUmVpZW5cIixcbiAgICBcIkF1ZiBkZXIgRG9ubmVuXCIsXG4gICAgXCJBdWYgZGVyIEdyaWXDn2VcIixcbiAgICBcIkF1ZiBkZXIgT2htZXJcIixcbiAgICBcIkF1ZiBkZXIgV2VpZGVcIixcbiAgICBcIkF1ZidtIEJlcmdcIixcbiAgICBcIkF1ZidtIEthbXBcIixcbiAgICBcIkF1Z3VzdGFzdHIuXCIsXG4gICAgXCJBdWd1c3QtS2VrdWzDqS1TdHIuXCIsXG4gICAgXCJBLi1XLi12Li1Ib2ZtYW5uLVN0ci5cIixcbiAgICBcIkJhaG5hbGxlZVwiLFxuICAgIFwiQmFobmhvZnN0ci5cIixcbiAgICBcIkJhbHRydW1zdHIuXCIsXG4gICAgXCJCYW1iZXJnZXIgU3RyLlwiLFxuICAgIFwiQmF1bWJlcmdlciBTdHIuXCIsXG4gICAgXCJCZWJlbHN0ci5cIixcbiAgICBcIkJlY2tlcnMgS8OkbXBjaGVuXCIsXG4gICAgXCJCZWVyZW5zdHIuXCIsXG4gICAgXCJCZWV0aG92ZW5zdHIuXCIsXG4gICAgXCJCZWhyaW5nc3RyLlwiLFxuICAgIFwiQmVuZGVud2VnXCIsXG4gICAgXCJCZW5zYmVyZ2VyIFN0ci5cIixcbiAgICBcIkJlbnpzdHIuXCIsXG4gICAgXCJCZXJnaXNjaGUgTGFuZHN0ci5cIixcbiAgICBcIkJlcmdzdHIuXCIsXG4gICAgXCJCZXJsaW5lciBQbGF0elwiLFxuICAgIFwiQmVybGluZXIgU3RyLlwiLFxuICAgIFwiQmVybmhhcmQtTGV0dGVyaGF1cy1TdHIuXCIsXG4gICAgXCJCZXJuaGFyZC1MaWNodGVuYmVyZy1TdHIuXCIsXG4gICAgXCJCZXJuaGFyZC1SaWRkZXItU3RyLlwiLFxuICAgIFwiQmVybnN0ZWluc3RyLlwiLFxuICAgIFwiQmVydGhhLU1pZGRlbGhhdXZlLVN0ci5cIixcbiAgICBcIkJlcnRoYS12b24tU3V0dG5lci1TdHIuXCIsXG4gICAgXCJCZXJ0b2x0LUJyZWNodC1TdHIuXCIsXG4gICAgXCJCZXJ6ZWxpdXNzdHIuXCIsXG4gICAgXCJCaWVsZXJ0c3RyLlwiLFxuICAgIFwiQmllc2VuYmFjaFwiLFxuICAgIFwiQmlsbHJvdGhzdHIuXCIsXG4gICAgXCJCaXJrZW5iZXJnc3RyLlwiLFxuICAgIFwiQmlya2VuZ2FydGVuc3RyLlwiLFxuICAgIFwiQmlya2Vud2VnXCIsXG4gICAgXCJCaXNtYXJja3N0ci5cIixcbiAgICBcIkJpdHRlcmZlbGRlciBTdHIuXCIsXG4gICAgXCJCbGFua2VuYnVyZ1wiLFxuICAgIFwiQmxhdWtlaGxjaGVud2VnXCIsXG4gICAgXCJCbMO8dGVuc3RyLlwiLFxuICAgIFwiQm9iZXJzdHIuXCIsXG4gICAgXCJCw7Zja2xlcnN0ci5cIixcbiAgICBcIkJvZGVsc2Nod2luZ2hzdHIuXCIsXG4gICAgXCJCb2Rlc3RyLlwiLFxuICAgIFwiQm9nZW5zdHIuXCIsXG4gICAgXCJCb2huZW5rYW1wc3dlZ1wiLFxuICAgIFwiQm9ob2Zzd2VnXCIsXG4gICAgXCJCb25pZmF0aXVzc3RyLlwiLFxuICAgIFwiQm9ubmVyIFN0ci5cIixcbiAgICBcIkJvcmt1bXN0ci5cIixcbiAgICBcIkJvcm5oZWltZXIgU3RyLlwiLFxuICAgIFwiQm9yc2lnc3RyLlwiLFxuICAgIFwiQm9ydXNzaWFzdHIuXCIsXG4gICAgXCJCcmFja25lbGxzdHIuXCIsXG4gICAgXCJCcmFobXN3ZWdcIixcbiAgICBcIkJyYW5kZW5idXJnZXIgU3RyLlwiLFxuICAgIFwiQnJlaWRlbmJhY2hzdHIuXCIsXG4gICAgXCJCcmVzbGF1ZXIgU3RyLlwiLFxuICAgIFwiQnJ1Y2hoYXVzZXIgU3RyLlwiLFxuICAgIFwiQnLDvGNrZW5zdHIuXCIsXG4gICAgXCJCcnVja25lcnN0ci5cIixcbiAgICBcIkJyw7xkZXItQm9uaG9lZmZlci1TdHIuXCIsXG4gICAgXCJCdWNoZW53ZWdcIixcbiAgICBcIkLDvHJnZXJidXNjaHdlZ1wiLFxuICAgIFwiQnVyZ2xvY2hcIixcbiAgICBcIkJ1cmdwbGF0elwiLFxuICAgIFwiQnVyZ3N0ci5cIixcbiAgICBcIkJ1cmd3ZWdcIixcbiAgICBcIkLDvHJyaWdlciBXZWdcIixcbiAgICBcIkJ1cnNjaGVpZGVyIFN0ci5cIixcbiAgICBcIkJ1c2Noa8OkbXBjaGVuXCIsXG4gICAgXCJCdXR0ZXJoZWlkZXIgU3RyLlwiLFxuICAgIFwiQ2FybC1EdWlzYmVyZy1QbGF0elwiLFxuICAgIFwiQ2FybC1EdWlzYmVyZy1TdHIuXCIsXG4gICAgXCJDYXJsLUxldmVya3VzLVN0ci5cIixcbiAgICBcIkNhcmwtTWFyaWEtdm9uLVdlYmVyLVBsYXR6XCIsXG4gICAgXCJDYXJsLU1hcmlhLXZvbi1XZWJlci1TdHIuXCIsXG4gICAgXCJDYXJsby1NaWVyZW5kb3JmZi1TdHIuXCIsXG4gICAgXCJDYXJsLVJ1bXBmZi1TdHIuXCIsXG4gICAgXCJDYXJsLXZvbi1Pc3NpZXR6a3ktU3RyLlwiLFxuICAgIFwiQ2hhcmxvdHRlbmJ1cmdlciBTdHIuXCIsXG4gICAgXCJDaHJpc3RpYW4tSGXDny1TdHIuXCIsXG4gICAgXCJDbGFhc2JydWNoXCIsXG4gICAgXCJDbGVtZW5zLVdpbmtsZXItU3RyLlwiLFxuICAgIFwiQ29uY29yZGlhc3RyLlwiLFxuICAgIFwiQ3JhbmFjaHN0ci5cIixcbiAgICBcIkRhaGxlbWVyIFN0ci5cIixcbiAgICBcIkRhaW1sZXJzdHIuXCIsXG4gICAgXCJEYW1hc2Noa2VzdHIuXCIsXG4gICAgXCJEYW56aWdlciBTdHIuXCIsXG4gICAgXCJEZWJlbmdhc3NlXCIsXG4gICAgXCJEZWNoYW50LUZlaW4tU3RyLlwiLFxuICAgIFwiRGVjaGFudC1LcmV5LVN0ci5cIixcbiAgICBcIkRlaWNodG9yc3RyLlwiLFxuICAgIFwiRGjDvG5uYmVyZ1wiLFxuICAgIFwiRGjDvG5uc3RyLlwiLFxuICAgIFwiRGlhbmFzdHIuXCIsXG4gICAgXCJEaWVkZW5ob2ZlbmVyIFN0ci5cIixcbiAgICBcIkRpZXBlbnRhbFwiLFxuICAgIFwiRGllcGVudGhhbGVyIFN0ci5cIixcbiAgICBcIkRpZXNlbHN0ci5cIixcbiAgICBcIkRpbGxpbmdlciBTdHIuXCIsXG4gICAgXCJEaXN0ZWxrYW1wXCIsXG4gICAgXCJEb2hyZ2Fzc2VcIixcbiAgICBcIkRvbWJsaWNrXCIsXG4gICAgXCJEw7ZuaG9mZnN0ci5cIixcbiAgICBcIkRvcm5pZXJzdHIuXCIsXG4gICAgXCJEcmFjaGVuZmVsc3N0ci5cIixcbiAgICBcIkRyLi1BdWd1c3QtQmxhbmstU3RyLlwiLFxuICAgIFwiRHJlc2RlbmVyIFN0ci5cIixcbiAgICBcIkRyaWVzY2hlciBIZWNrZVwiLFxuICAgIFwiRHJvc3NlbHdlZ1wiLFxuICAgIFwiRHVkd2VpbGVyc3RyLlwiLFxuICAgIFwiRMO8bmVud2VnXCIsXG4gICAgXCJEw7xuZmVsZGVyIFN0ci5cIixcbiAgICBcIkTDvG5ud2FsZGVyIEdyZW56d2VnXCIsXG4gICAgXCJEw7xwcGVsZXIgU3RyLlwiLFxuICAgIFwiRMO8cmVyc3RyLlwiLFxuICAgIFwiRMO8cnNjaGVpZGVyIFdlZ1wiLFxuICAgIFwiRMO8c3NlbGRvcmZlciBTdHIuXCIsXG4gICAgXCJFZGVscmF0aGVyIFdlZ1wiLFxuICAgIFwiRWRtdW5kLUh1c3NlcmwtU3RyLlwiLFxuICAgIFwiRWR1YXJkLVNwcmFuZ2VyLVN0ci5cIixcbiAgICBcIkVocmxpY2hzdHIuXCIsXG4gICAgXCJFaWNoZW5rYW1wXCIsXG4gICAgXCJFaWNoZW53ZWdcIixcbiAgICBcIkVpZGVjaHNlbndlZ1wiLFxuICAgIFwiRWlmZWxzdHIuXCIsXG4gICAgXCJFaWZnZW5zdHIuXCIsXG4gICAgXCJFaW50cmFjaHRzdHIuXCIsXG4gICAgXCJFbGJlc3RyLlwiLFxuICAgIFwiRWxpc2FiZXRoLUxhbmdnw6Rzc2VyLVN0ci5cIixcbiAgICBcIkVsaXNhYmV0aHN0ci5cIixcbiAgICBcIkVsaXNhYmV0aC12b24tVGhhZGRlbi1TdHIuXCIsXG4gICAgXCJFbGlzZW5zdHIuXCIsXG4gICAgXCJFbHNhLUJyw6RuZHN0csO2bS1TdHIuXCIsXG4gICAgXCJFbHNiYWNoc3RyLlwiLFxuICAgIFwiRWxzZS1MYXNrZXItU2Now7xsZXItU3RyLlwiLFxuICAgIFwiRWxzdGVyc3RyLlwiLFxuICAgIFwiRW1pbC1GaXNjaGVyLVN0ci5cIixcbiAgICBcIkVtaWwtTm9sZGUtU3RyLlwiLFxuICAgIFwiRW5nZWxiZXJ0c3RyLlwiLFxuICAgIFwiRW5nc3RlbmJlcmdlciBXZWdcIixcbiAgICBcIkVudGVucGZ1aGxcIixcbiAgICBcIkVyYmVsZWdhc3NlXCIsXG4gICAgXCJFcmZ0c3RyLlwiLFxuICAgIFwiRXJmdXJ0ZXIgU3RyLlwiLFxuICAgIFwiRXJpY2gtSGVja2VsLVN0ci5cIixcbiAgICBcIkVyaWNoLUtsYXVzZW5lci1TdHIuXCIsXG4gICAgXCJFcmljaC1PbGxlbmhhdWVyLVN0ci5cIixcbiAgICBcIkVybGVud2VnXCIsXG4gICAgXCJFcm5zdC1CbG9jaC1TdHIuXCIsXG4gICAgXCJFcm5zdC1MdWR3aWctS2lyY2huZXItU3RyLlwiLFxuICAgIFwiRXJ6YmVyZ2Vyc3RyLlwiLFxuICAgIFwiRXNjaGVuYWxsZWVcIixcbiAgICBcIkVzY2hlbndlZ1wiLFxuICAgIFwiRXNtYXJjaHN0ci5cIixcbiAgICBcIkVzcGVud2VnXCIsXG4gICAgXCJFdWNrZW5zdHIuXCIsXG4gICAgXCJFdWxlbmdhc3NlXCIsXG4gICAgXCJFdWxlbmthbXBcIixcbiAgICBcIkV3YWxkLUZsYW1tZS1TdHIuXCIsXG4gICAgXCJFd2FsZC1Sw7ZsbC1TdHIuXCIsXG4gICAgXCJGw6RocnN0ci5cIixcbiAgICBcIkZhcm53ZWdcIixcbiAgICBcIkZhc2FuZW53ZWdcIixcbiAgICBcIkZhw59iYWNoZXIgSG9mXCIsXG4gICAgXCJGZWxkZXJzdHIuXCIsXG4gICAgXCJGZWxka2FtcHN0ci5cIixcbiAgICBcIkZlbGRzaWVmZXIgV2VnXCIsXG4gICAgXCJGZWxkc2llZmVyIFdpZXNlblwiLFxuICAgIFwiRmVsZHN0ci5cIixcbiAgICBcIkZlbGR0b3JzdHIuXCIsXG4gICAgXCJGZWxpeC12b24tUm9sbC1TdHIuXCIsXG4gICAgXCJGZXJkaW5hbmQtTGFzc2FsbGUtU3RyLlwiLFxuICAgIFwiRmVzdGVyIFdlZ1wiLFxuICAgIFwiRmV1ZXJiYWNoc3RyLlwiLFxuICAgIFwiRmV1ZXJkb3Jud2VnXCIsXG4gICAgXCJGaWNodGVud2VnXCIsXG4gICAgXCJGaWNodGVzdHIuXCIsXG4gICAgXCJGaW5rZWxzdGVpbnN0ci5cIixcbiAgICBcIkZpbmtlbndlZ1wiLFxuICAgIFwiRml4aGVpZGVyIFN0ci5cIixcbiAgICBcIkZsYWJiZW5ow6R1c2NoZW5cIixcbiAgICBcIkZsZW5zYnVyZ2VyIFN0ci5cIixcbiAgICBcIkZsaWVkZXJ3ZWdcIixcbiAgICBcIkZsb3Jhc3RyLlwiLFxuICAgIFwiRmxvcmlhbndlZ1wiLFxuICAgIFwiRmxvdG93c3RyLlwiLFxuICAgIFwiRmx1cnN0ci5cIixcbiAgICBcIkbDtmhyZW53ZWdcIixcbiAgICBcIkZvbnRhbmVzdHIuXCIsXG4gICAgXCJGb3JlbGxlbnRhbFwiLFxuICAgIFwiRm9ydHVuYXN0ci5cIixcbiAgICBcIkZyYW56LUVzc2VyLVN0ci5cIixcbiAgICBcIkZyYW56LUhpdHplLVN0ci5cIixcbiAgICBcIkZyYW56LUthaWwtU3RyLlwiLFxuICAgIFwiRnJhbnotTWFyYy1TdHIuXCIsXG4gICAgXCJGcmVpYnVyZ2VyIFN0ci5cIixcbiAgICBcIkZyZWloZWl0c3RyLlwiLFxuICAgIFwiRnJlaWhlcnItdm9tLVN0ZWluLVN0ci5cIixcbiAgICBcIkZyZXVkZW50aGFsXCIsXG4gICAgXCJGcmV1ZGVudGhhbGVyIFdlZ1wiLFxuICAgIFwiRnJpZHRqb2YtTmFuc2VuLVN0ci5cIixcbiAgICBcIkZyaWVkZW5iZXJnZXIgU3RyLlwiLFxuICAgIFwiRnJpZWRlbnNzdHIuXCIsXG4gICAgXCJGcmllZGhvZnN0ci5cIixcbiAgICBcIkZyaWVkbGFuZHN0ci5cIixcbiAgICBcIkZyaWVkbGllYi1GZXJkaW5hbmQtUnVuZ2UtU3RyLlwiLFxuICAgIFwiRnJpZWRyaWNoLUJheWVyLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1CZXJnaXVzLVBsYXR6XCIsXG4gICAgXCJGcmllZHJpY2gtRWJlcnQtUGxhdHpcIixcbiAgICBcIkZyaWVkcmljaC1FYmVydC1TdHIuXCIsXG4gICAgXCJGcmllZHJpY2gtRW5nZWxzLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1MaXN0LVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1OYXVtYW5uLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1TZXJ0w7xybmVyLVN0ci5cIixcbiAgICBcIkZyaWVkcmljaHN0ci5cIixcbiAgICBcIkZyaWVkcmljaC1XZXNrb3R0LVN0ci5cIixcbiAgICBcIkZyaWVzZW53ZWdcIixcbiAgICBcIkZyaXNjaGVuYmVyZ1wiLFxuICAgIFwiRnJpdHotRXJsZXItU3RyLlwiLFxuICAgIFwiRnJpdHotSGVuc2VsZXItU3RyLlwiLFxuICAgIFwiRnLDtmJlbHN0ci5cIixcbiAgICBcIkbDvHJzdGVuYmVyZ3BsYXR6XCIsXG4gICAgXCJGw7xyc3RlbmJlcmdzdHIuXCIsXG4gICAgXCJHYWJyaWVsZS1Nw7xudGVyLVN0ci5cIixcbiAgICBcIkdhcnRlbnN0ci5cIixcbiAgICBcIkdlYmhhcmRzdHIuXCIsXG4gICAgXCJHZWliZWxzdHIuXCIsXG4gICAgXCJHZWxsZXJ0c3RyLlwiLFxuICAgIFwiR2Vvcmctdm9uLVZvbGxtYXItU3RyLlwiLFxuICAgIFwiR2VyaGFyZC1Eb21hZ2stU3RyLlwiLFxuICAgIFwiR2VyaGFydC1IYXVwdG1hbm4tU3RyLlwiLFxuICAgIFwiR2VyaWNodHNzdHIuXCIsXG4gICAgXCJHZXNjaHdpc3Rlci1TY2hvbGwtU3RyLlwiLFxuICAgIFwiR2V6ZWxpbmFsbGVlXCIsXG4gICAgXCJHaWVyZW5lciBXZWdcIixcbiAgICBcIkdpbnN0ZXJ3ZWdcIixcbiAgICBcIkdpc2JlcnQtQ3JlbWVyLVN0ci5cIixcbiAgICBcIkdsw7xja3NidXJnZXIgU3RyLlwiLFxuICAgIFwiR2x1Y2tzdHIuXCIsXG4gICAgXCJHbmVpc2VuYXVzdHIuXCIsXG4gICAgXCJHb2V0aGVwbGF0elwiLFxuICAgIFwiR29ldGhlc3RyLlwiLFxuICAgIFwiR29sby1NYW5uLVN0ci5cIixcbiAgICBcIkfDtnJsaXR6ZXIgU3RyLlwiLFxuICAgIFwiR8O2cnJlc3N0ci5cIixcbiAgICBcIkdyYWViZXN0ci5cIixcbiAgICBcIkdyYWYtR2FsZW4tUGxhdHpcIixcbiAgICBcIkdyZWdvci1NZW5kZWwtU3RyLlwiLFxuICAgIFwiR3JlaWZzd2FsZGVyIFN0ci5cIixcbiAgICBcIkdyaWxsZW53ZWdcIixcbiAgICBcIkdyb25lbmJvcm5lciBXZWdcIixcbiAgICBcIkdyb8OfZSBLaXJjaHN0ci5cIixcbiAgICBcIkdydW5kZXIgV2llc2VuXCIsXG4gICAgXCJHcnVuZGVybcO8aGxlXCIsXG4gICAgXCJHcnVuZGVybcO8aGxlbmhvZlwiLFxuICAgIFwiR3J1bmRlcm3DvGhsZW53ZWdcIixcbiAgICBcIkdyw7xuZXIgV2VnXCIsXG4gICAgXCJHcnVuZXdhbGRzdHIuXCIsXG4gICAgXCJHcsO8bnN0ci5cIixcbiAgICBcIkfDvG50aGVyLVdlaXNlbmJvcm4tU3RyLlwiLFxuICAgIFwiR3VzdGF2LUZyZXl0YWctU3RyLlwiLFxuICAgIFwiR3VzdGF2LUhlaW5lbWFubi1TdHIuXCIsXG4gICAgXCJHdXN0YXYtUmFkYnJ1Y2gtU3RyLlwiLFxuICAgIFwiR3V0IFJldXNjaGVuYmVyZ1wiLFxuICAgIFwiR3V0ZW5iZXJnc3RyLlwiLFxuICAgIFwiSGFiZXJzdHIuXCIsXG4gICAgXCJIYWJpY2h0Z2Fzc2VcIixcbiAgICBcIkhhZmVuc3RyLlwiLFxuICAgIFwiSGFnZW5hdWVyIFN0ci5cIixcbiAgICBcIkhhaG5lbmJsZWNoZXJcIixcbiAgICBcIkhhbGVuc2Vlc3RyLlwiLFxuICAgIFwiSGFsZmVubGVpbWJhY2hcIixcbiAgICBcIkhhbGxlc2NoZSBTdHIuXCIsXG4gICAgXCJIYWxsaWdzdHIuXCIsXG4gICAgXCJIYW1iZXJnZXIgU3RyLlwiLFxuICAgIFwiSGFtbWVyd2VnXCIsXG4gICAgXCJIw6RuZGVsc3RyLlwiLFxuICAgIFwiSGFubmFoLUjDtmNoLVN0ci5cIixcbiAgICBcIkhhbnMtQXJwLVN0ci5cIixcbiAgICBcIkhhbnMtR2VyaGFyZC1TdHIuXCIsXG4gICAgXCJIYW5zLVNhY2hzLVN0ci5cIixcbiAgICBcIkhhbnMtU2NobGVoYWhuLVN0ci5cIixcbiAgICBcIkhhbnMtdm9uLURvaG5hbnlpLVN0ci5cIixcbiAgICBcIkhhcmRlbmJlcmdzdHIuXCIsXG4gICAgXCJIYXNlbHdlZ1wiLFxuICAgIFwiSGF1cHRzdHIuXCIsXG4gICAgXCJIYXVzLVZvcnN0ZXItU3RyLlwiLFxuICAgIFwiSGF1d2VnXCIsXG4gICAgXCJIYXZlbHN0ci5cIixcbiAgICBcIkhhdmVuc3RlaW5zdHIuXCIsXG4gICAgXCJIYXlkbnN0ci5cIixcbiAgICBcIkhlYmJlbHN0ci5cIixcbiAgICBcIkhlY2tlbndlZ1wiLFxuICAgIFwiSGVlcndlZ1wiLFxuICAgIFwiSGVnZWxzdHIuXCIsXG4gICAgXCJIZWlkYmVyZ1wiLFxuICAgIFwiSGVpZGVow7ZoZVwiLFxuICAgIFwiSGVpZGVzdHIuXCIsXG4gICAgXCJIZWltc3TDpHR0ZW53ZWdcIixcbiAgICBcIkhlaW5yaWNoLULDtmxsLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUJyw7xuaW5nLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUNsYWVzLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUhlaW5lLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUjDtnJsZWluLVN0ci5cIixcbiAgICBcIkhlaW5yaWNoLUzDvGJrZS1TdHIuXCIsXG4gICAgXCJIZWlucmljaC1Mw7x0emVua2lyY2hlbi1XZWdcIixcbiAgICBcIkhlaW5yaWNoc3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtU3RyZXJhdGgtU3RyLlwiLFxuICAgIFwiSGVpbnJpY2gtdm9uLUtsZWlzdC1TdHIuXCIsXG4gICAgXCJIZWlucmljaC12b24tU3RlcGhhbi1TdHIuXCIsXG4gICAgXCJIZWlzdGVyYmFjaHN0ci5cIixcbiAgICBcIkhlbGVuZW5zdHIuXCIsXG4gICAgXCJIZWxtZXN0ci5cIixcbiAgICBcIkhlbW1lbHJhdGhlciBXZWdcIixcbiAgICBcIkhlbnJ5LVQuLXYuLULDtnR0aW5nZXItU3RyLlwiLFxuICAgIFwiSGVyZGVyc3RyLlwiLFxuICAgIFwiSGVyaWJlcnRzdHIuXCIsXG4gICAgXCJIZXJtYW5uLUVobGVycy1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLUhlc3NlLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tS8O2bmlnLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tTMO2bnMtU3RyLlwiLFxuICAgIFwiSGVybWFubi1NaWxkZS1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLU7DtnJyZW5iZXJnLVN0ci5cIixcbiAgICBcIkhlcm1hbm4tdm9uLUhlbG1ob2x0ei1TdHIuXCIsXG4gICAgXCJIZXJtYW5uLVdhaWJlbC1TdHIuXCIsXG4gICAgXCJIZXJ6b2dzdHIuXCIsXG4gICAgXCJIZXltYW5uc3RyLlwiLFxuICAgIFwiSGluZGVuYnVyZ3N0ci5cIixcbiAgICBcIkhpcnplbmJlcmdcIixcbiAgICBcIkhpdGRvcmZlciBLaXJjaHdlZ1wiLFxuICAgIFwiSGl0ZG9yZmVyIFN0ci5cIixcbiAgICBcIkjDtmZlciBNw7xobGVcIixcbiAgICBcIkjDtmZlciBXZWdcIixcbiAgICBcIkhvaGUgU3RyLlwiLFxuICAgIFwiSMO2aGVuc3RyLlwiLFxuICAgIFwiSMO2bHRnZXN0YWxcIixcbiAgICBcIkhvbHVuZGVyd2VnXCIsXG4gICAgXCJIb2x6ZXIgV2VnXCIsXG4gICAgXCJIb2x6ZXIgV2llc2VuXCIsXG4gICAgXCJIb3JucG90dHdlZ1wiLFxuICAgIFwiSHViZXJ0dXN3ZWdcIixcbiAgICBcIkh1ZmVsYW5kc3RyLlwiLFxuICAgIFwiSHVmZXIgV2VnXCIsXG4gICAgXCJIdW1ib2xkdHN0ci5cIixcbiAgICBcIkh1bW1lbHNoZWltXCIsXG4gICAgXCJIdW1tZWx3ZWdcIixcbiAgICBcIkh1bXBlcmRpbmNrc3RyLlwiLFxuICAgIFwiSMO8c2NoZWlkZXIgR8OkcnRlblwiLFxuICAgIFwiSMO8c2NoZWlkZXIgU3RyLlwiLFxuICAgIFwiSMO8dHRlXCIsXG4gICAgXCJJbG1zdHIuXCIsXG4gICAgXCJJbSBCZXJnaXNjaGVuIEhlaW1cIixcbiAgICBcIkltIEJydWNoXCIsXG4gICAgXCJJbSBCdWNoZW5oYWluXCIsXG4gICAgXCJJbSBCw7xobFwiLFxuICAgIFwiSW0gQnVyZ2ZlbGRcIixcbiAgICBcIkltIERvcmZcIixcbiAgICBcIkltIEVpc2hvbHpcIixcbiAgICBcIkltIEZyaWVkZW5zdGFsXCIsXG4gICAgXCJJbSBGcm9oZW50YWxcIixcbiAgICBcIkltIEdydW5kZVwiLFxuICAgIFwiSW0gSGVkZXJpY2hzZmVsZFwiLFxuICAgIFwiSW0gSsO8Y2hlcmZlbGRcIixcbiAgICBcIkltIEthbGtmZWxkXCIsXG4gICAgXCJJbSBLaXJiZXJnXCIsXG4gICAgXCJJbSBLaXJjaGZlbGRcIixcbiAgICBcIkltIEtyZXV6YnJ1Y2hcIixcbiAgICBcIkltIE3DvGhsZW5mZWxkXCIsXG4gICAgXCJJbSBOZXNzZWxyYWRlciBLYW1wXCIsXG4gICAgXCJJbSBPYmVyZG9yZlwiLFxuICAgIFwiSW0gT2JlcmZlbGRcIixcbiAgICBcIkltIFJvc2VuZ2FydGVuXCIsXG4gICAgXCJJbSBSb3R0bGFuZFwiLFxuICAgIFwiSW0gU2NoZWZmZW5nYXJ0ZW5cIixcbiAgICBcIkltIFN0YWRlcmZlbGRcIixcbiAgICBcIkltIFN0ZWluZmVsZFwiLFxuICAgIFwiSW0gV2VpZGVuYmxlY2hcIixcbiAgICBcIkltIFdpbmtlbFwiLFxuICAgIFwiSW0gWmllZ2VsZmVsZFwiLFxuICAgIFwiSW1iYWNoXCIsXG4gICAgXCJJbWJhY2hlciBXZWdcIixcbiAgICBcIkltbWVud2VnXCIsXG4gICAgXCJJbiBkZW4gQmxlY2hlbmjDtmZlblwiLFxuICAgIFwiSW4gZGVuIERlaGxlblwiLFxuICAgIFwiSW4gZGVyIEJpcmtlbmF1XCIsXG4gICAgXCJJbiBkZXIgRGFzbGFkZW5cIixcbiAgICBcIkluIGRlciBGZWxkZXJow7x0dGVuXCIsXG4gICAgXCJJbiBkZXIgSGFydG1hbm5zd2llc2VcIixcbiAgICBcIkluIGRlciBIw7ZobGVcIixcbiAgICBcIkluIGRlciBTY2hhYWZzZGVsbGVuXCIsXG4gICAgXCJJbiBkZXIgV2Fzc2Vya3VobFwiLFxuICAgIFwiSW4gZGVyIFfDvHN0ZVwiLFxuICAgIFwiSW4gSG9semhhdXNlblwiLFxuICAgIFwiSW5zdGVyc3RyLlwiLFxuICAgIFwiSmFjb2ItRnLDtmhsZW4tU3RyLlwiLFxuICAgIFwiSsOkZ2Vyc3RyLlwiLFxuICAgIFwiSmFobnN0ci5cIixcbiAgICBcIkpha29iLUV1bGVuYmVyZy1XZWdcIixcbiAgICBcIkpha29iaXN0ci5cIixcbiAgICBcIkpha29iLUthaXNlci1TdHIuXCIsXG4gICAgXCJKZW5hZXIgU3RyLlwiLFxuICAgIFwiSm9oYW5uZXMtQmFwdGlzdC1TdHIuXCIsXG4gICAgXCJKb2hhbm5lcy1Eb3R0LVN0ci5cIixcbiAgICBcIkpvaGFubmVzLVBvcGl0ei1TdHIuXCIsXG4gICAgXCJKb2hhbm5lcy1XaXNsaWNlbnVzLVN0ci5cIixcbiAgICBcIkpvaGFubmlzYnVyZ2VyIFN0ci5cIixcbiAgICBcIkpvaGFubi1KYW5zc2VuLVN0ci5cIixcbiAgICBcIkpvaGFubi1XaXJ0ei1XZWdcIixcbiAgICBcIkpvc2Vmc3RyLlwiLFxuICAgIFwiSsO8Y2hcIixcbiAgICBcIkp1bGl1cy1Eb21zLVN0ci5cIixcbiAgICBcIkp1bGl1cy1MZWJlci1TdHIuXCIsXG4gICAgXCJLYWlzZXJwbGF0elwiLFxuICAgIFwiS2Fpc2Vyc3RyLlwiLFxuICAgIFwiS2Fpc2VyLVdpbGhlbG0tQWxsZWVcIixcbiAgICBcIkthbGtzdHIuXCIsXG4gICAgXCJLw6RtcGNoZW5zdHIuXCIsXG4gICAgXCJLw6RtcGVud2llc2VcIixcbiAgICBcIkvDpG1wZXIgV2VnXCIsXG4gICAgXCJLYW1wdGFsd2VnXCIsXG4gICAgXCJLYW5hbHN0ci5cIixcbiAgICBcIkthbmRpbnNreXN0ci5cIixcbiAgICBcIkthbnRzdHIuXCIsXG4gICAgXCJLYXBlbGxlbnN0ci5cIixcbiAgICBcIkthcmwtQXJub2xkLVN0ci5cIixcbiAgICBcIkthcmwtQm9zY2gtU3RyLlwiLFxuICAgIFwiS2FybC1Cw7xja2FydC1TdHIuXCIsXG4gICAgXCJLYXJsLUNhcnN0ZW5zLVJpbmdcIixcbiAgICBcIkthcmwtRnJpZWRyaWNoLUdvZXJkZWxlci1TdHIuXCIsXG4gICAgXCJLYXJsLUphc3BlcnMtU3RyLlwiLFxuICAgIFwiS2FybC1Lw7ZuaWctU3RyLlwiLFxuICAgIFwiS2FybC1LcmVrZWxlci1TdHIuXCIsXG4gICAgXCJLYXJsLU1hcngtU3RyLlwiLFxuICAgIFwiS2FybHN0ci5cIixcbiAgICBcIkthcmwtVWxpdHprYS1TdHIuXCIsXG4gICAgXCJLYXJsLVdpY2htYW5uLVN0ci5cIixcbiAgICBcIkthcmwtV2luZ2NoZW4tU3RyLlwiLFxuICAgIFwiS8Okc2VuYnJvZFwiLFxuICAgIFwiS8OkdGhlLUtvbGx3aXR6LVN0ci5cIixcbiAgICBcIkthdHpiYWNoc3RyLlwiLFxuICAgIFwiS2Vyc2NoZW5zdGVpbmVyc3RyLlwiLFxuICAgIFwiS2llZmVybndlZ1wiLFxuICAgIFwiS2llbGVyIFN0ci5cIixcbiAgICBcIktpZXNlbHN0ci5cIixcbiAgICBcIktpZXN3ZWdcIixcbiAgICBcIktpbmRlcmhhdXNlblwiLFxuICAgIFwiS2xlaWJlcndlZ1wiLFxuICAgIFwiS2xlaW5lIEtpcmNoc3RyLlwiLFxuICAgIFwiS2xlaW5nYW5zd2VnXCIsXG4gICAgXCJLbGVpbmhlaWRlciBXZWdcIixcbiAgICBcIktsaWVmXCIsXG4gICAgXCJLbmVpcHBzdHIuXCIsXG4gICAgXCJLbm9jaGVuYmVyZ3N3ZWdcIixcbiAgICBcIktvY2hlcmdhcnRlblwiLFxuICAgIFwiS29jaGVyc3RyLlwiLFxuICAgIFwiS29ja2Vsc2JlcmdcIixcbiAgICBcIktvbGJlcmdlciBTdHIuXCIsXG4gICAgXCJLb2xtYXJlciBTdHIuXCIsXG4gICAgXCJLw7ZsbmVyIEdhc3NlXCIsXG4gICAgXCJLw7ZsbmVyIFN0ci5cIixcbiAgICBcIktvbHBpbmdzdHIuXCIsXG4gICAgXCJLw7ZuaWdzYmVyZ2VyIFBsYXR6XCIsXG4gICAgXCJLb25yYWQtQWRlbmF1ZXItUGxhdHpcIixcbiAgICBcIkvDtnBlbmlja2VyIFN0ci5cIixcbiAgICBcIktvcGVybmlrdXNzdHIuXCIsXG4gICAgXCJLw7ZybmVyc3RyLlwiLFxuICAgIFwiS8O2c2NoZW5iZXJnXCIsXG4gICAgXCJLw7Z0dGVyc2hvZlwiLFxuICAgIFwiS3JldXpicm9pY2hlciBTdHIuXCIsXG4gICAgXCJLcmV1emthbXBcIixcbiAgICBcIktydW1tZXIgV2VnXCIsXG4gICAgXCJLcnVwcHN0ci5cIixcbiAgICBcIkt1aGxtYW5ud2VnXCIsXG4gICAgXCJLdW1wXCIsXG4gICAgXCJLdW1wZXIgV2VnXCIsXG4gICAgXCJLdW5zdGZlbGRzdHIuXCIsXG4gICAgXCJLw7xwcGVyc3RlZ2VyIFN0ci5cIixcbiAgICBcIkt1cnNpZWZlblwiLFxuICAgIFwiS3Vyc2llZmVyIFdlZ1wiLFxuICAgIFwiS3VydGVrb3R0ZW53ZWdcIixcbiAgICBcIkt1cnQtU2NodW1hY2hlci1SaW5nXCIsXG4gICAgXCJLeWxsc3RyLlwiLFxuICAgIFwiTGFuZ2VuZmVsZGVyIFN0ci5cIixcbiAgICBcIkzDpG5nc2xlaW1iYWNoXCIsXG4gICAgXCJMw6RyY2hlbndlZ1wiLFxuICAgIFwiTGVnaWVuc3RyLlwiLFxuICAgIFwiTGVobmVyIE3DvGhsZVwiLFxuICAgIFwiTGVpY2hsaW5nZXIgU3RyLlwiLFxuICAgIFwiTGVpbWJhY2hlciBIb2ZcIixcbiAgICBcIkxlaW5lc3RyLlwiLFxuICAgIFwiTGVpbmV3ZWJlcnN0ci5cIixcbiAgICBcIkxlaXB6aWdlciBTdHIuXCIsXG4gICAgXCJMZXJjaGVuZ2Fzc2VcIixcbiAgICBcIkxlc3NpbmdzdHIuXCIsXG4gICAgXCJMaWJlbGxlbndlZ1wiLFxuICAgIFwiTGljaHN0ci5cIixcbiAgICBcIkxpZWJpZ3N0ci5cIixcbiAgICBcIkxpbmRlbnN0ci5cIixcbiAgICBcIkxpbmdlbmZlbGRcIixcbiAgICBcIkxpbmllbnN0ci5cIixcbiAgICBcIkxpcHBlXCIsXG4gICAgXCJMw7ZjaGVyZ3JhYmVuXCIsXG4gICAgXCJMw7ZmZmxlcnN0ci5cIixcbiAgICBcIkxvaGV3ZWdcIixcbiAgICBcIkxvaHJiZXJnc3RyLlwiLFxuICAgIFwiTG9ocnN0ci5cIixcbiAgICBcIkzDtmhzdHIuXCIsXG4gICAgXCJMb3J0emluZ3N0ci5cIixcbiAgICBcIkzDtnR6ZW5lciBTdHIuXCIsXG4gICAgXCJMw7Z3ZW5idXJnc3RyLlwiLFxuICAgIFwiTHVjYXNzdHIuXCIsXG4gICAgXCJMdWR3aWctRXJoYXJkLVBsYXR6XCIsXG4gICAgXCJMdWR3aWctR2lydGxlci1TdHIuXCIsXG4gICAgXCJMdWR3aWctS25vcnItU3RyLlwiLFxuICAgIFwiTHVpc2Vuc3RyLlwiLFxuICAgIFwiTHVwaW5lbndlZ1wiLFxuICAgIFwiTHVyY2hlbndlZ1wiLFxuICAgIFwiTMO8dHplbmtpcmNoZW5lciBTdHIuXCIsXG4gICAgXCJMeWNrZXIgU3RyLlwiLFxuICAgIFwiTWFhc2hvZnN0ci5cIixcbiAgICBcIk1hbmZvcnRlciBTdHIuXCIsXG4gICAgXCJNYXJjLUNoYWdhbGwtU3RyLlwiLFxuICAgIFwiTWFyaWEtRHJlc2VuLVN0ci5cIixcbiAgICBcIk1hcmlhLVRlcndpZWwtU3RyLlwiLFxuICAgIFwiTWFyaWUtQ3VyaWUtU3RyLlwiLFxuICAgIFwiTWFyaWVuYnVyZ2VyIFN0ci5cIixcbiAgICBcIk1hcmllbmRvcmZlciBTdHIuXCIsXG4gICAgXCJNYXJpZW53ZXJkZXJzdHIuXCIsXG4gICAgXCJNYXJpZS1TY2hsZWktU3RyLlwiLFxuICAgIFwiTWFya3RwbGF0elwiLFxuICAgIFwiTWFya3Vzd2VnXCIsXG4gICAgXCJNYXJ0aW4tQnViZXItU3RyLlwiLFxuICAgIFwiTWFydGluLUhlaWRlZ2dlci1TdHIuXCIsXG4gICAgXCJNYXJ0aW4tTHV0aGVyLVN0ci5cIixcbiAgICBcIk1hc3VyZW5zdHIuXCIsXG4gICAgXCJNYXRoaWxkZW53ZWdcIixcbiAgICBcIk1hdXJpbnVzc3RyLlwiLFxuICAgIFwiTWF1c3BmYWRcIixcbiAgICBcIk1heC1CZWNrbWFubi1TdHIuXCIsXG4gICAgXCJNYXgtRGVsYnLDvGNrLVN0ci5cIixcbiAgICBcIk1heC1Fcm5zdC1TdHIuXCIsXG4gICAgXCJNYXgtSG9sdGhhdXNlbi1QbGF0elwiLFxuICAgIFwiTWF4LUhvcmtoZWltZXItU3RyLlwiLFxuICAgIFwiTWF4LUxpZWJlcm1hbm4tU3RyLlwiLFxuICAgIFwiTWF4LVBlY2hzdGVpbi1TdHIuXCIsXG4gICAgXCJNYXgtUGxhbmNrLVN0ci5cIixcbiAgICBcIk1heC1TY2hlbGVyLVN0ci5cIixcbiAgICBcIk1heC1TY2jDtm5lbmJlcmctU3RyLlwiLFxuICAgIFwiTWF5YmFjaHN0ci5cIixcbiAgICBcIk1lY2tob2ZlciBGZWxkXCIsXG4gICAgXCJNZWlzZW53ZWdcIixcbiAgICBcIk1lbWVsc3RyLlwiLFxuICAgIFwiTWVuY2hlbmRhaGxlciBTdHIuXCIsXG4gICAgXCJNZW5kZWxzc29obnN0ci5cIixcbiAgICBcIk1lcnppZ2VyIFN0ci5cIixcbiAgICBcIk1ldHRsYWNoZXIgU3RyLlwiLFxuICAgIFwiTWV0emVyIFN0ci5cIixcbiAgICBcIk1pY2hhZWxzd2VnXCIsXG4gICAgXCJNaXNlbG9oZXN0ci5cIixcbiAgICBcIk1pdHRlbHN0ci5cIixcbiAgICBcIk1vaGxlbnN0ci5cIixcbiAgICBcIk1vbHRrZXN0ci5cIixcbiAgICBcIk1vbmhlaW1lciBTdHIuXCIsXG4gICAgXCJNb250YW51c3N0ci5cIixcbiAgICBcIk1vbnRlc3Nvcml3ZWdcIixcbiAgICBcIk1vb3N3ZWdcIixcbiAgICBcIk1vcnNicm9pY2hlciBTdHIuXCIsXG4gICAgXCJNb3NlbHN0ci5cIixcbiAgICBcIk1vc2thdWVyIFN0ci5cIixcbiAgICBcIk1vemFydHN0ci5cIixcbiAgICBcIk3DvGhsZW53ZWdcIixcbiAgICBcIk11aHJnYXNzZVwiLFxuICAgIFwiTXVsZGVzdHIuXCIsXG4gICAgXCJNw7xsaGF1c2VuZXIgU3RyLlwiLFxuICAgIFwiTcO8bGhlaW1lciBTdHIuXCIsXG4gICAgXCJNw7xuc3RlcnMgR8Okw59jaGVuXCIsXG4gICAgXCJNw7xuenN0ci5cIixcbiAgICBcIk3DvHJpdHpzdHIuXCIsXG4gICAgXCJNeWxpdXNzdHIuXCIsXG4gICAgXCJOYWNodGlnYWxsZW53ZWdcIixcbiAgICBcIk5hdWVuZXIgU3RyLlwiLFxuICAgIFwiTmVpw59lc3RyLlwiLFxuICAgIFwiTmVsbHktU2FjaHMtU3RyLlwiLFxuICAgIFwiTmV0emVzdHIuXCIsXG4gICAgXCJOZXVlbmRyaWVzY2hcIixcbiAgICBcIk5ldWVuaGF1c2dhc3NlXCIsXG4gICAgXCJOZXVlbmthbXBcIixcbiAgICBcIk5ldWp1ZGVuaG9mXCIsXG4gICAgXCJOZXVrcm9uZW5iZXJnZXIgU3RyLlwiLFxuICAgIFwiTmV1c3RhZHRzdHIuXCIsXG4gICAgXCJOaWNvbGFpLUhhcnRtYW5uLVN0ci5cIixcbiAgICBcIk5pZWRlcmJsZWNoZXJcIixcbiAgICBcIk5pZWRlcmZlbGRzdHIuXCIsXG4gICAgXCJOaWV0enNjaGVzdHIuXCIsXG4gICAgXCJOaWtvbGF1cy1Hcm/Dny1TdHIuXCIsXG4gICAgXCJOb2JlbHN0ci5cIixcbiAgICBcIk5vcmRlcm5leXN0ci5cIixcbiAgICBcIk5vcmRzdHIuXCIsXG4gICAgXCJPYmVyIGRlbSBIb2ZcIixcbiAgICBcIk9iZXJlIExpbmRlbnN0ci5cIixcbiAgICBcIk9iZXJlIFN0ci5cIixcbiAgICBcIk9iZXLDtmxiYWNoXCIsXG4gICAgXCJPZGVudGhhbGVyIFN0ci5cIixcbiAgICBcIk9kZXJzdHIuXCIsXG4gICAgXCJPa2Vyc3RyLlwiLFxuICAgIFwiT2xvZi1QYWxtZS1TdHIuXCIsXG4gICAgXCJPcGhvdmVuZXIgU3RyLlwiLFxuICAgIFwiT3BsYWRlbmVyIFBsYXR6XCIsXG4gICAgXCJPcGxhZGVuZXIgU3RyLlwiLFxuICAgIFwiT3J0ZWxzYnVyZ2VyIFN0ci5cIixcbiAgICBcIk9za2FyLU1vbGwtU3RyLlwiLFxuICAgIFwiT3NrYXItU2NobGVtbWVyLVN0ci5cIixcbiAgICBcIk9zdHN0ci5cIixcbiAgICBcIk9zd2FsZC1TcGVuZ2xlci1TdHIuXCIsXG4gICAgXCJPdHRvLURpeC1TdHIuXCIsXG4gICAgXCJPdHRvLUdyaW1tLVN0ci5cIixcbiAgICBcIk90dG8tSGFobi1TdHIuXCIsXG4gICAgXCJPdHRvLU3DvGxsZXItU3RyLlwiLFxuICAgIFwiT3R0by1TdGFuZ2UtU3RyLlwiLFxuICAgIFwiT3R0b3N0ci5cIixcbiAgICBcIk90dG8tVmFybmhhZ2VuLVN0ci5cIixcbiAgICBcIk90dG8tV2Vscy1TdHIuXCIsXG4gICAgXCJPdHR3ZWlsZXJzdHIuXCIsXG4gICAgXCJPdWx1c3RyLlwiLFxuICAgIFwiT3ZlcmZlbGR3ZWdcIixcbiAgICBcIlBhcHBlbHdlZ1wiLFxuICAgIFwiUGFyYWNlbHN1c3N0ci5cIixcbiAgICBcIlBhcmtzdHIuXCIsXG4gICAgXCJQYXN0b3ItTG91aXMtU3RyLlwiLFxuICAgIFwiUGFzdG9yLVNjaGVpYmxlci1TdHIuXCIsXG4gICAgXCJQYXN0b3Jza2FtcFwiLFxuICAgIFwiUGF1bC1LbGVlLVN0ci5cIixcbiAgICBcIlBhdWwtTMO2YmUtU3RyLlwiLFxuICAgIFwiUGF1bHN0ci5cIixcbiAgICBcIlBlZW5lc3RyLlwiLFxuICAgIFwiUGVzY2hlciBCdXNjaFwiLFxuICAgIFwiUGVzY2hzdHIuXCIsXG4gICAgXCJQZXN0YWxvenppc3RyLlwiLFxuICAgIFwiUGV0ZXItR3JpZcOfLVN0ci5cIixcbiAgICBcIlBldGVyLUpvc2VwaC1MZW5uw6ktU3RyLlwiLFxuICAgIFwiUGV0ZXItTmV1ZW5oZXVzZXItU3RyLlwiLFxuICAgIFwiUGV0ZXJzYmVyZ3N0ci5cIixcbiAgICBcIlBldGVyc3RyLlwiLFxuICAgIFwiUGZhcnJlci1KZWtlbC1TdHIuXCIsXG4gICAgXCJQZmFycmVyLUtsZWluLVN0ci5cIixcbiAgICBcIlBmYXJyZXItUsO2aHItU3RyLlwiLFxuICAgIFwiUGZlaWxzaG9mc3RyLlwiLFxuICAgIFwiUGhpbGlwcC1PdHQtU3RyLlwiLFxuICAgIFwiUGlldC1Nb25kcmlhbi1TdHIuXCIsXG4gICAgXCJQbGF0YW5lbndlZ1wiLFxuICAgIFwiUG9tbWVybnN0ci5cIixcbiAgICBcIlBvcnNjaGVzdHIuXCIsXG4gICAgXCJQb3N0c3RyLlwiLFxuICAgIFwiUG90c2RhbWVyIFN0ci5cIixcbiAgICBcIlByZWdlbHN0ci5cIixcbiAgICBcIlByaWXDn25pdHpzdHIuXCIsXG4gICAgXCJQw7x0emRlbGxlXCIsXG4gICAgXCJRdWFyenN0ci5cIixcbiAgICBcIlF1ZXR0aW5nZXIgU3RyLlwiLFxuICAgIFwiUmF0LURleWNrcy1TdHIuXCIsXG4gICAgXCJSYXRoZW5hdXN0ci5cIixcbiAgICBcIlJhdGhlcmvDpG1wXCIsXG4gICAgXCJSYXRpYm9yZXIgU3RyLlwiLFxuICAgIFwiUmF1c2hvZnN0ci5cIixcbiAgICBcIlJlZ2Vuc2J1cmdlciBTdHIuXCIsXG4gICAgXCJSZWluaWNrZW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiUmVua2dhc3NlXCIsXG4gICAgXCJSZW5uYmF1bXBsYXR6XCIsXG4gICAgXCJSZW5uYmF1bXN0ci5cIixcbiAgICBcIlJldXNjaGVuYmVyZ2VyIFN0ci5cIixcbiAgICBcIlJldXNyYXRoZXIgU3RyLlwiLFxuICAgIFwiUmV1dGVyc3RyLlwiLFxuICAgIFwiUmhlaW5hbGxlZVwiLFxuICAgIFwiUmhlaW5kb3JmZXIgU3RyLlwiLFxuICAgIFwiUmhlaW5zdHIuXCIsXG4gICAgXCJSaGVpbi1XdXBwZXItUGxhdHpcIixcbiAgICBcIlJpY2hhcmQtV2FnbmVyLVN0ci5cIixcbiAgICBcIlJpbGtlc3RyLlwiLFxuICAgIFwiUmluZ3N0ci5cIixcbiAgICBcIlJvYmVydC1CbHVtLVN0ci5cIixcbiAgICBcIlJvYmVydC1Lb2NoLVN0ci5cIixcbiAgICBcIlJvYmVydC1NZWRlbndhbGQtU3RyLlwiLFxuICAgIFwiUm9sYW5kc3RyLlwiLFxuICAgIFwiUm9tYmVyZ1wiLFxuICAgIFwiUsO2bnRnZW5zdHIuXCIsXG4gICAgXCJSb29uc3RyLlwiLFxuICAgIFwiUm9wZW5zdGFsbFwiLFxuICAgIFwiUm9wZW5zdGFsbGVyIFdlZ1wiLFxuICAgIFwiUm9zZW50aGFsXCIsXG4gICAgXCJSb3N0b2NrZXIgU3RyLlwiLFxuICAgIFwiUm90ZG9ybndlZ1wiLFxuICAgIFwiUsO2dHRnZXJ3ZWdcIixcbiAgICBcIlLDvGNrZXJ0c3RyLlwiLFxuICAgIFwiUnVkb2xmLUJyZWl0c2NoZWlkLVN0ci5cIixcbiAgICBcIlJ1ZG9sZi1NYW5uLVBsYXR6XCIsXG4gICAgXCJSdWRvbGYtU3RyYWNrZS1TdHIuXCIsXG4gICAgXCJSdWhsYWNocGxhdHpcIixcbiAgICBcIlJ1aGxhY2hzdHIuXCIsXG4gICAgXCJSw7x0dGVyc3dlZ1wiLFxuICAgIFwiU2FhbGVzdHIuXCIsXG4gICAgXCJTYWFyYnLDvGNrZXIgU3RyLlwiLFxuICAgIFwiU2FhcmxhdXRlcm5lciBTdHIuXCIsXG4gICAgXCJTYWFyc3RyLlwiLFxuICAgIFwiU2FsYW1hbmRlcndlZ1wiLFxuICAgIFwiU2FtbGFuZHN0ci5cIixcbiAgICBcIlNhbmRkb3Juc3RyLlwiLFxuICAgIFwiU2FuZHN0ci5cIixcbiAgICBcIlNhdWVyYnJ1Y2hzdHIuXCIsXG4gICAgXCJTY2jDpGZlcnNow7x0dGVcIixcbiAgICBcIlNjaGFybmhvcnN0c3RyLlwiLFxuICAgIFwiU2NoZWZmZXJzaG9mXCIsXG4gICAgXCJTY2hlaWRlbWFubnN0ci5cIixcbiAgICBcIlNjaGVsbGluZ3N0ci5cIixcbiAgICBcIlNjaGVua2VuZG9yZnN0ci5cIixcbiAgICBcIlNjaGllw59iZXJnc3RyLlwiLFxuICAgIFwiU2NoaWxsZXJzdHIuXCIsXG4gICAgXCJTY2hsYW5nZW5oZWNrZVwiLFxuICAgIFwiU2NobGVidXNjaGVyIEhlaWRlXCIsXG4gICAgXCJTY2hsZWJ1c2NoZXIgU3RyLlwiLFxuICAgIFwiU2NobGVidXNjaHJhdGhcIixcbiAgICBcIlNjaGxlaGRvcm5zdHIuXCIsXG4gICAgXCJTY2hsZWllcm1hY2hlcnN0ci5cIixcbiAgICBcIlNjaGxvw59zdHIuXCIsXG4gICAgXCJTY2htYWxlbmJydWNoXCIsXG4gICAgXCJTY2huZXBmZW5mbHVjaHRcIixcbiAgICBcIlNjaMO2ZmZlbndlZ1wiLFxuICAgIFwiU2Now7ZsbGVyc3RyLlwiLFxuICAgIFwiU2Now7ZuZSBBdXNzaWNodFwiLFxuICAgIFwiU2Now7ZuZWJlcmdlciBTdHIuXCIsXG4gICAgXCJTY2hvcGVuaGF1ZXJzdHIuXCIsXG4gICAgXCJTY2h1YmVydHBsYXR6XCIsXG4gICAgXCJTY2h1YmVydHN0ci5cIixcbiAgICBcIlNjaHVsYmVyZ1wiLFxuICAgIFwiU2NodWxzdHIuXCIsXG4gICAgXCJTY2h1bWFubnN0ci5cIixcbiAgICBcIlNjaHdhbGJlbndlZ1wiLFxuICAgIFwiU2Nod2FyemFzdHIuXCIsXG4gICAgXCJTZWJhc3RpYW51c3dlZ1wiLFxuICAgIFwiU2VtbWVsd2Vpc3N0ci5cIixcbiAgICBcIlNpZWJlbHBsYXR6XCIsXG4gICAgXCJTaWVtZW5zc3RyLlwiLFxuICAgIFwiU29saW5nZXIgU3RyLlwiLFxuICAgIFwiU29uZGVyYnVyZ2VyIFN0ci5cIixcbiAgICBcIlNwYW5kYXVlciBTdHIuXCIsXG4gICAgXCJTcGVlc3RyLlwiLFxuICAgIFwiU3BlcmJlcndlZ1wiLFxuICAgIFwiU3Blcmxpbmdzd2VnXCIsXG4gICAgXCJTcGl0endlZ3N0ci5cIixcbiAgICBcIlNwb3JyZW5iZXJnZXIgTcO8aGxlXCIsXG4gICAgXCJTcHJlZXN0ci5cIixcbiAgICBcIlN0LiBJbmdiZXJ0ZXIgU3RyLlwiLFxuICAgIFwiU3RhcmVud2VnXCIsXG4gICAgXCJTdGF1ZmZlbmJlcmdzdHIuXCIsXG4gICAgXCJTdGVmYW4tWndlaWctU3RyLlwiLFxuICAgIFwiU3RlZ2Vyd2FsZHN0ci5cIixcbiAgICBcIlN0ZWdsaXR6ZXIgU3RyLlwiLFxuICAgIFwiU3RlaW5iw7xjaGVsZXIgRmVsZFwiLFxuICAgIFwiU3RlaW5iw7xjaGVsZXIgU3RyLlwiLFxuICAgIFwiU3RlaW5zdHIuXCIsXG4gICAgXCJTdGVpbndlZ1wiLFxuICAgIFwiU3RlcGhhbi1Mb2NobmVyLVN0ci5cIixcbiAgICBcIlN0ZXBoYW51c3N0ci5cIixcbiAgICBcIlN0ZXR0aW5lciBTdHIuXCIsXG4gICAgXCJTdGl4Y2hlc3N0ci5cIixcbiAgICBcIlN0w7Zja2Vuc3RyLlwiLFxuICAgIFwiU3RyYWxzdW5kZXIgU3RyLlwiLFxuICAgIFwiU3RyYcOfYnVyZ2VyIFN0ci5cIixcbiAgICBcIlN0cmVzZW1hbm5wbGF0elwiLFxuICAgIFwiU3Ryb21iZXJnc3RyLlwiLFxuICAgIFwiU3Ryb21zdHIuXCIsXG4gICAgXCJTdMO8dHRla29mZW5lciBTdHIuXCIsXG4gICAgXCJTdWRlc3RyLlwiLFxuICAgIFwiU8O8cmRlcnN0ci5cIixcbiAgICBcIlN5bHRzdHIuXCIsXG4gICAgXCJUYWxzdHIuXCIsXG4gICAgXCJUYW5uZW5iZXJnc3RyLlwiLFxuICAgIFwiVGFubmVud2VnXCIsXG4gICAgXCJUYXViZW53ZWdcIixcbiAgICBcIlRlaXRzY2hlaWRlciBXZWdcIixcbiAgICBcIlRlbGVncmFmZW5zdHIuXCIsXG4gICAgXCJUZWx0b3dlciBTdHIuXCIsXG4gICAgXCJUZW1wZWxob2ZlciBTdHIuXCIsXG4gICAgXCJUaGVvZG9yLUFkb3Juby1TdHIuXCIsXG4gICAgXCJUaGVvZG9yLUZsaWVkbmVyLVN0ci5cIixcbiAgICBcIlRoZW9kb3ItR2llcmF0aC1TdHIuXCIsXG4gICAgXCJUaGVvZG9yLUhhdWJhY2gtU3RyLlwiLFxuICAgIFwiVGhlb2Rvci1IZXVzcy1SaW5nXCIsXG4gICAgXCJUaGVvZG9yLVN0b3JtLVN0ci5cIixcbiAgICBcIlRoZW9kb3JzdHIuXCIsXG4gICAgXCJUaG9tYXMtRGVobGVyLVN0ci5cIixcbiAgICBcIlRob21hcy1Nb3J1cy1TdHIuXCIsXG4gICAgXCJUaG9tYXMtdm9uLUFxdWluLVN0ci5cIixcbiAgICBcIlTDtm5nZXMgRmVsZFwiLFxuICAgIFwiVG9yc3RyLlwiLFxuICAgIFwiVHJlcHRvd2VyIFN0ci5cIixcbiAgICBcIlRyZXVidXJnZXIgU3RyLlwiLFxuICAgIFwiVWhsYW5kc3RyLlwiLFxuICAgIFwiVWxtZW53ZWdcIixcbiAgICBcIlVsbWVyIFN0ci5cIixcbiAgICBcIlVscmljaHN0ci5cIixcbiAgICBcIlVscmljaC12b24tSGFzc2VsbC1TdHIuXCIsXG4gICAgXCJVbWxhZ1wiLFxuICAgIFwiVW5zdHJ1dHN0ci5cIixcbiAgICBcIlVudGVyIGRlbSBTY2hpbGRjaGVuXCIsXG4gICAgXCJVbnRlcsO2bGJhY2hcIixcbiAgICBcIlVudGVyc3RyLlwiLFxuICAgIFwiVXBwZXJzYmVyZ1wiLFxuICAgIFwiVmFuXFxcXCd0LUhvZmYtU3RyLlwiLFxuICAgIFwiVmVpdC1TdG/Dny1TdHIuXCIsXG4gICAgXCJWZXJlaW5zc3RyLlwiLFxuICAgIFwiVmlrdG9yLU1leWVyLVN0ci5cIixcbiAgICBcIlZpbmNlbnQtdmFuLUdvZ2gtU3RyLlwiLFxuICAgIFwiVmlyY2hvd3N0ci5cIixcbiAgICBcIlZvaWd0c2xhY2hcIixcbiAgICBcIlZvbGhhcmRzdHIuXCIsXG4gICAgXCJWw7Zsa2xpbmdlciBTdHIuXCIsXG4gICAgXCJWb24tQnJlbnRhbm8tU3RyLlwiLFxuICAgIFwiVm9uLURpZXJnYXJkdC1TdHIuXCIsXG4gICAgXCJWb24tRWljaGVuZG9yZmYtU3RyLlwiLFxuICAgIFwiVm9uLUtldHRlbGVyLVN0ci5cIixcbiAgICBcIlZvbi1Lbm9lcmluZ2VuLVN0ci5cIixcbiAgICBcIlZvbi1QZXR0ZW5rb2Zlci1TdHIuXCIsXG4gICAgXCJWb24tU2llYm9sZC1TdHIuXCIsXG4gICAgXCJXYWNob2xkZXJ3ZWdcIixcbiAgICBcIldhbGRzdHIuXCIsXG4gICAgXCJXYWx0ZXItRmxleC1TdHIuXCIsXG4gICAgXCJXYWx0ZXItSGVtcGVsLVN0ci5cIixcbiAgICBcIldhbHRlci1Ib2NoYXBmZWwtU3RyLlwiLFxuICAgIFwiV2FsdGVyLU5lcm5zdC1TdHIuXCIsXG4gICAgXCJXYW5uc2Vlc3RyLlwiLFxuICAgIFwiV2Fybm93c3RyLlwiLFxuICAgIFwiV2FydGhlc3RyLlwiLFxuICAgIFwiV2VkZGlnZW5zdHIuXCIsXG4gICAgXCJXZWljaHNlbHN0ci5cIixcbiAgICBcIldlaWRlbnN0ci5cIixcbiAgICBcIldlaWRmZWxkc3RyLlwiLFxuICAgIFwiV2VpaGVyZmVsZFwiLFxuICAgIFwiV2VpaGVyc3RyLlwiLFxuICAgIFwiV2VpbmjDpHVzZXIgU3RyLlwiLFxuICAgIFwiV2Vpw59kb3Jud2VnXCIsXG4gICAgXCJXZWnDn2Vuc2Vlc3RyLlwiLFxuICAgIFwiV2VpemthbXBcIixcbiAgICBcIldlcmZ0c3RyLlwiLFxuICAgIFwiV2Vya3N0w6R0dGVuc3RyLlwiLFxuICAgIFwiV2VybmVyLUhlaXNlbmJlcmctU3RyLlwiLFxuICAgIFwiV2VycmFzdHIuXCIsXG4gICAgXCJXZXllcndlZ1wiLFxuICAgIFwiV2lkZGF1ZW5lciBTdHIuXCIsXG4gICAgXCJXaWViZXJ0c2hvZlwiLFxuICAgIFwiV2llaGJhY2h0YWxcIixcbiAgICBcIldpZW1iYWNoYWxsZWVcIixcbiAgICBcIldpZXNkb3JmZXIgUGxhdHpcIixcbiAgICBcIldpZXNlbnN0ci5cIixcbiAgICBcIldpbGhlbG0tQnVzY2gtU3RyLlwiLFxuICAgIFwiV2lsaGVsbS1IYXN0cmljaC1TdHIuXCIsXG4gICAgXCJXaWxoZWxtLUxldXNjaG5lci1TdHIuXCIsXG4gICAgXCJXaWxoZWxtLUxpZWJrbmVjaHQtU3RyLlwiLFxuICAgIFwiV2lsaGVsbXNnYXNzZVwiLFxuICAgIFwiV2lsaGVsbXN0ci5cIixcbiAgICBcIldpbGxpLUJhdW1laXN0ZXItU3RyLlwiLFxuICAgIFwiV2lsbHktQnJhbmR0LVJpbmdcIixcbiAgICBcIldpbmFuZC1Sb3NzaS1TdHIuXCIsXG4gICAgXCJXaW5kdGhvcnN0c3RyLlwiLFxuICAgIFwiV2lua2Vsd2VnXCIsXG4gICAgXCJXaW50ZXJiZXJnXCIsXG4gICAgXCJXaXR0ZW5iZXJnc3RyLlwiLFxuICAgIFwiV29sZi1Wb3N0ZWxsLVN0ci5cIixcbiAgICBcIldvbGtlbmJ1cmdzdHIuXCIsXG4gICAgXCJXdXBwZXJzdHIuXCIsXG4gICAgXCJXdXBwZXJ0YWxzdHIuXCIsXG4gICAgXCJXw7xzdGVuaG9mXCIsXG4gICAgXCJZaXR6aGFrLVJhYmluLVN0ci5cIixcbiAgICBcIlphdWJlcmt1aGxlXCIsXG4gICAgXCJaZWRlcm53ZWdcIixcbiAgICBcIlplaGxlbmRvcmZlciBTdHIuXCIsXG4gICAgXCJaZWhudGVud2VnXCIsXG4gICAgXCJaZWlzaWd3ZWdcIixcbiAgICBcIlplcHBlbGluc3RyLlwiLFxuICAgIFwiWnNjaG9wYXVzdHIuXCIsXG4gICAgXCJadW0gQ2xhYXNow6R1c2NoZW5cIixcbiAgICBcIlrDvG5kaMO8dGNoZW53ZWdcIixcbiAgICBcIlp1ciBBbHRlbiBCcmF1ZXJlaVwiLFxuICAgIFwiWnVyIGFsdGVuIEZhYnJpa1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIixcbiAgICBcIiMjYVwiLFxuICAgIFwiIyNiXCIsXG4gICAgXCIjI2NcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJaaW1tZXIgIyMjXCIsXG4gICAgXCIjIE9HXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkJhZGVuLVfDvHJ0dGVtYmVyZ1wiLFxuICAgIFwiQmF5ZXJuXCIsXG4gICAgXCJCZXJsaW5cIixcbiAgICBcIkJyYW5kZW5idXJnXCIsXG4gICAgXCJCcmVtZW5cIixcbiAgICBcIkhhbWJ1cmdcIixcbiAgICBcIkhlc3NlblwiLFxuICAgIFwiTWVja2xlbmJ1cmctVm9ycG9tbWVyblwiLFxuICAgIFwiTmllZGVyc2FjaHNlblwiLFxuICAgIFwiTm9yZHJoZWluLVdlc3RmYWxlblwiLFxuICAgIFwiUmhlaW5sYW5kLVBmYWx6XCIsXG4gICAgXCJTYWFybGFuZFwiLFxuICAgIFwiU2FjaHNlblwiLFxuICAgIFwiU2FjaHNlbi1BbmhhbHRcIixcbiAgICBcIlNjaGxlc3dpZy1Ib2xzdGVpblwiLFxuICAgIFwiVGjDvHJpbmdlblwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJCV1wiLFxuICAgIFwiQllcIixcbiAgICBcIkJFXCIsXG4gICAgXCJCQlwiLFxuICAgIFwiSEJcIixcbiAgICBcIkhIXCIsXG4gICAgXCJIRVwiLFxuICAgIFwiTVZcIixcbiAgICBcIk5JXCIsXG4gICAgXCJOV1wiLFxuICAgIFwiUlBcIixcbiAgICBcIlNMXCIsXG4gICAgXCJTTlwiLFxuICAgIFwiU1RcIixcbiAgICBcIlNIXCIsXG4gICAgXCJUSFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcm9vdH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkRldXRzY2hsYW5kXCJcbiAgXVxufTtcbmRlLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkdtYkhcIixcbiAgICBcIkFHXCIsXG4gICAgXCJHcnVwcGVcIixcbiAgICBcIktHXCIsXG4gICAgXCJHbWJIICYgQ28uIEtHXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiT0hHXCJcbiAgXSxcbiAgXCJsZWdhbF9mb3JtXCI6IFtcbiAgICBcIkdtYkhcIixcbiAgICBcIkFHXCIsXG4gICAgXCJHcnVwcGVcIixcbiAgICBcIktHXCIsXG4gICAgXCJHbWJIICYgQ28uIEtHXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiT0hHXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSB1bmQgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xuZGUuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiLFxuICAgIFwiZGVcIixcbiAgICBcImNoXCJcbiAgXVxufTtcbmRlLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF1cbn07XG5kZS5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFiZHVsXCIsXG4gICAgXCJBYmR1bGxhaFwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJBZHJpYW5vXCIsXG4gICAgXCJBaG1hZFwiLFxuICAgIFwiQWhtZWRcIixcbiAgICBcIkFobWV0XCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsZXNzYW5kcm9cIixcbiAgICBcIkFsZXNzaW9cIixcbiAgICBcIkFsZXhcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQWxmcmVkXCIsXG4gICAgXCJBbGlcIixcbiAgICBcIkFtYXJcIixcbiAgICBcIkFtaXJcIixcbiAgICBcIkFtb25cIixcbiAgICBcIkFuZHJlXCIsXG4gICAgXCJBbmRyZWFzXCIsXG4gICAgXCJBbmRyZXdcIixcbiAgICBcIkFuZ2Vsb1wiLFxuICAgIFwiQW5zZ2FyXCIsXG4gICAgXCJBbnRob255XCIsXG4gICAgXCJBbnRvblwiLFxuICAgIFwiQW50b25pb1wiLFxuICAgIFwiQXJkYVwiLFxuICAgIFwiQXJpYW5cIixcbiAgICBcIkFybWluXCIsXG4gICAgXCJBcm5lXCIsXG4gICAgXCJBcm5vXCIsXG4gICAgXCJBcnRodXJcIixcbiAgICBcIkFydHVyXCIsXG4gICAgXCJBcnZlZFwiLFxuICAgIFwiQXJ2aWRcIixcbiAgICBcIkF5bWFuXCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyaXNcIixcbiAgICBcIkJhc3RpYW5cIixcbiAgICBcIkJhdHVoYW5cIixcbiAgICBcIkJlbGFcIixcbiAgICBcIkJlblwiLFxuICAgIFwiQmVuZWRpa3RcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJCZW5uZXRcIixcbiAgICBcIkJlbm5ldHRcIixcbiAgICBcIkJlbm5vXCIsXG4gICAgXCJCZW50XCIsXG4gICAgXCJCZXJhdFwiLFxuICAgIFwiQmVya2F5XCIsXG4gICAgXCJCZXJuZFwiLFxuICAgIFwiQmlsYWxcIixcbiAgICBcIkJqYXJuZVwiLFxuICAgIFwiQmrDtnJuXCIsXG4gICAgXCJCb1wiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkJyYW5kb25cIixcbiAgICBcIkJyaWFuXCIsXG4gICAgXCJCcnVub1wiLFxuICAgIFwiQnJ5YW5cIixcbiAgICBcIkJ1cmFrXCIsXG4gICAgXCJDYWx2aW5cIixcbiAgICBcIkNhblwiLFxuICAgIFwiQ2FybFwiLFxuICAgIFwiQ2FybG9cIixcbiAgICBcIkNhcmxvc1wiLFxuICAgIFwiQ2FzcGFyXCIsXG4gICAgXCJDZWRyaWNcIixcbiAgICBcIkNlZHJpa1wiLFxuICAgIFwiQ2VtXCIsXG4gICAgXCJDaGFybGllXCIsXG4gICAgXCJDaHJpc1wiLFxuICAgIFwiQ2hyaXN0aWFuXCIsXG4gICAgXCJDaHJpc3RpYW5vXCIsXG4gICAgXCJDaHJpc3RvcGhcIixcbiAgICBcIkNocmlzdG9waGVyXCIsXG4gICAgXCJDbGFhc1wiLFxuICAgIFwiQ2xlbWVuc1wiLFxuICAgIFwiQ29saW5cIixcbiAgICBcIkNvbGxpblwiLFxuICAgIFwiQ29ubmVyXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIkNvbnN0YW50aW5cIixcbiAgICBcIkNvcnZpblwiLFxuICAgIFwiQ3VydFwiLFxuICAgIFwiRGFtaWFuXCIsXG4gICAgXCJEYW1pZW5cIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFuaWxvXCIsXG4gICAgXCJEYW5ueVwiLFxuICAgIFwiRGFyaWFuXCIsXG4gICAgXCJEYXJpb1wiLFxuICAgIFwiRGFyaXVzXCIsXG4gICAgXCJEYXJyZW5cIixcbiAgICBcIkRhdmlkXCIsXG4gICAgXCJEYXZpZGVcIixcbiAgICBcIkRhdmluXCIsXG4gICAgXCJEZWFuXCIsXG4gICAgXCJEZW5pelwiLFxuICAgIFwiRGVubmlzXCIsXG4gICAgXCJEZW5ueVwiLFxuICAgIFwiRGV2aW5cIixcbiAgICBcIkRpZWdvXCIsXG4gICAgXCJEaW9uXCIsXG4gICAgXCJEb21lbmljXCIsXG4gICAgXCJEb21lbmlrXCIsXG4gICAgXCJEb21pbmljXCIsXG4gICAgXCJEb21pbmlrXCIsXG4gICAgXCJEb3JpYW5cIixcbiAgICBcIkR1c3RpblwiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIkVjcmluXCIsXG4gICAgXCJFZGRpXCIsXG4gICAgXCJFZGR5XCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWR3aW5cIixcbiAgICBcIkVmZVwiLFxuICAgIFwiRWdlXCIsXG4gICAgXCJFbGlhXCIsXG4gICAgXCJFbGlhaFwiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkVsaWphaFwiLFxuICAgIFwiRW1hbnVlbFwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiRW1pbGlhblwiLFxuICAgIFwiRW1pbGlvXCIsXG4gICAgXCJFbWlyXCIsXG4gICAgXCJFbWlyaGFuXCIsXG4gICAgXCJFbXJlXCIsXG4gICAgXCJFbmVzXCIsXG4gICAgXCJFbm5vXCIsXG4gICAgXCJFbnJpY29cIixcbiAgICBcIkVyZW5cIixcbiAgICBcIkVyaWNcIixcbiAgICBcIkVyaWtcIixcbiAgICBcIkV0aWVubmVcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmFiaWVuXCIsXG4gICAgXCJGYWJpb1wiLFxuICAgIFwiRmFicmljZVwiLFxuICAgIFwiRmFsa1wiLFxuICAgIFwiRmVsaXhcIixcbiAgICBcIkZlcmRpbmFuZFwiLFxuICAgIFwiRmlldGVcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJGaW5sYXlcIixcbiAgICBcIkZpbmxleVwiLFxuICAgIFwiRmlublwiLFxuICAgIFwiRmlubmxleVwiLFxuICAgIFwiRmxvcmlhblwiLFxuICAgIFwiRnJhbmNlc2NvXCIsXG4gICAgXCJGcmFuelwiLFxuICAgIFwiRnJlZGVyaWNcIixcbiAgICBcIkZyZWRlcmlja1wiLFxuICAgIFwiRnJlZGVyaWtcIixcbiAgICBcIkZyaWVkcmljaFwiLFxuICAgIFwiRnJpdHpcIixcbiAgICBcIkZ1cmthblwiLFxuICAgIFwiRnlublwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2VvcmdcIixcbiAgICBcIkdlcnJpdFwiLFxuICAgIFwiR2lhblwiLFxuICAgIFwiR2lhbmx1Y2FcIixcbiAgICBcIkdpbm9cIixcbiAgICBcIkdpdWxpYW5vXCIsXG4gICAgXCJHaXVzZXBwZVwiLFxuICAgIFwiR3JlZ29yXCIsXG4gICAgXCJHdXN0YXZcIixcbiAgICBcIkhhZ2VuXCIsXG4gICAgXCJIYW16YVwiLFxuICAgIFwiSGFubmVzXCIsXG4gICAgXCJIYW5ub1wiLFxuICAgIFwiSGFuc1wiLFxuICAgIFwiSGFzYW5cIixcbiAgICBcIkhhc3NhblwiLFxuICAgIFwiSGF1a2VcIixcbiAgICBcIkhlbmRyaWtcIixcbiAgICBcIkhlbm5lc1wiLFxuICAgIFwiSGVubmluZ1wiLFxuICAgIFwiSGVucmlcIixcbiAgICBcIkhlbnJpY2tcIixcbiAgICBcIkhlbnJpa1wiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkh1Z29cIixcbiAgICBcIkh1c3NlaW5cIixcbiAgICBcIklhblwiLFxuICAgIFwiSWJyYWhpbVwiLFxuICAgIFwiSWxpYXNcIixcbiAgICBcIklsamFcIixcbiAgICBcIklseWFzXCIsXG4gICAgXCJJbW1hbnVlbFwiLFxuICAgIFwiSXNtYWVsXCIsXG4gICAgXCJJc21haWxcIixcbiAgICBcIkl2YW5cIixcbiAgICBcIkl2ZW5cIixcbiAgICBcIkphY2tcIixcbiAgICBcIkphY29iXCIsXG4gICAgXCJKYWRlblwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIkphbWFsXCIsXG4gICAgXCJKYW1lc1wiLFxuICAgIFwiSmFtaWVcIixcbiAgICBcIkphblwiLFxuICAgIFwiSmFuZWtcIixcbiAgICBcIkphbmlzXCIsXG4gICAgXCJKYW5uZVwiLFxuICAgIFwiSmFubmVrXCIsXG4gICAgXCJKYW5uZXNcIixcbiAgICBcIkphbm5pa1wiLFxuICAgIFwiSmFubmlzXCIsXG4gICAgXCJKYW5vXCIsXG4gICAgXCJKYW5vc2NoXCIsXG4gICAgXCJKYXJlZFwiLFxuICAgIFwiSmFyaVwiLFxuICAgIFwiSmFybmVcIixcbiAgICBcIkphcm5vXCIsXG4gICAgXCJKYXJvblwiLFxuICAgIFwiSmFzb25cIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSmF5XCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIkpheXNvblwiLFxuICAgIFwiSmVhblwiLFxuICAgIFwiSmVuc1wiLFxuICAgIFwiSmVyZW1pYXNcIixcbiAgICBcIkplcmVtaWVcIixcbiAgICBcIkplcmVteVwiLFxuICAgIFwiSmVybWFpbmVcIixcbiAgICBcIkplcm9tZVwiLFxuICAgIFwiSmVzcGVyXCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiSmltXCIsXG4gICAgXCJKaW1teVwiLFxuICAgIFwiSm9lXCIsXG4gICAgXCJKb2VsXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb2hhbm5cIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJKb2huXCIsXG4gICAgXCJKb2hubnlcIixcbiAgICBcIkpvblwiLFxuICAgIFwiSm9uYVwiLFxuICAgIFwiSm9uYWhcIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiSm9udGVcIixcbiAgICBcIkpvb3N0XCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIkpvcmlzXCIsXG4gICAgXCJKb3NjaGFcIixcbiAgICBcIkpvc2NodWFcIixcbiAgICBcIkpvc2VmXCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkpvc2hcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiSm9zdWFcIixcbiAgICBcIkp1YW5cIixcbiAgICBcIkp1bGlhblwiLFxuICAgIFwiSnVsaWVuXCIsXG4gICAgXCJKdWxpdXNcIixcbiAgICBcIkp1cmlcIixcbiAgICBcIkp1c3RpblwiLFxuICAgIFwiSnVzdHVzXCIsXG4gICAgXCJLYWFuXCIsXG4gICAgXCJLYWlcIixcbiAgICBcIkthbGxlXCIsXG4gICAgXCJLYXJpbVwiLFxuICAgIFwiS2FybFwiLFxuICAgIFwiS2FybG9cIixcbiAgICBcIktheVwiLFxuICAgIFwiS2VhbnVcIixcbiAgICBcIktlbmFuXCIsXG4gICAgXCJLZW5ueVwiLFxuICAgIFwiS2Vub1wiLFxuICAgIFwiS2VyZW1cIixcbiAgICBcIktlcmltXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiS2lhblwiLFxuICAgIFwiS2lsaWFuXCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWlcIixcbiAgICBcIktqZWxsXCIsXG4gICAgXCJLbGFhc1wiLFxuICAgIFwiS2xlbWVuc1wiLFxuICAgIFwiS29ucmFkXCIsXG4gICAgXCJLb25zdGFudGluXCIsXG4gICAgXCJLb3JheVwiLFxuICAgIFwiS29yYmluaWFuXCIsXG4gICAgXCJLdXJ0XCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJMYXNzZVwiLFxuICAgIFwiTGF1cmVuY2VcIixcbiAgICBcIkxhdXJlbnNcIixcbiAgICBcIkxhdXJlbnpcIixcbiAgICBcIkxhdXJpblwiLFxuICAgIFwiTGVhblwiLFxuICAgIFwiTGVhbmRlclwiLFxuICAgIFwiTGVhbmRyb1wiLFxuICAgIFwiTGVpZlwiLFxuICAgIFwiTGVuXCIsXG4gICAgXCJMZW5uXCIsXG4gICAgXCJMZW5uYXJkXCIsXG4gICAgXCJMZW5uYXJ0XCIsXG4gICAgXCJMZW5uZXJ0XCIsXG4gICAgXCJMZW5uaWVcIixcbiAgICBcIkxlbm5veFwiLFxuICAgIFwiTGVubnlcIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVvblwiLFxuICAgIFwiTGVvbmFyZFwiLFxuICAgIFwiTGVvbmFyZG9cIixcbiAgICBcIkxlb25oYXJkXCIsXG4gICAgXCJMZW9uaWRhc1wiLFxuICAgIFwiTGVvcG9sZFwiLFxuICAgIFwiTGVyb3lcIixcbiAgICBcIkxldmVudFwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTGV2aW5cIixcbiAgICBcIkxld2luXCIsXG4gICAgXCJMZXdpc1wiLFxuICAgIFwiTGlhbVwiLFxuICAgIFwiTGlhblwiLFxuICAgIFwiTGlhc1wiLFxuICAgIFwiTGlub1wiLFxuICAgIFwiTGludXNcIixcbiAgICBcIkxpb1wiLFxuICAgIFwiTGlvblwiLFxuICAgIFwiTGlvbmVsXCIsXG4gICAgXCJMb2dhblwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3JlbnpvXCIsXG4gICAgXCJMb3Jpc1wiLFxuICAgIFwiTG91aXNcIixcbiAgICBcIkx1YW5cIixcbiAgICBcIkx1Y1wiLFxuICAgIFwiTHVjYVwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkx1Y2lhblwiLFxuICAgIFwiTHVjaWVuXCIsXG4gICAgXCJMdWR3aWdcIixcbiAgICBcIkx1aXNcIixcbiAgICBcIkx1aXpcIixcbiAgICBcIkx1a1wiLFxuICAgIFwiTHVrYVwiLFxuICAgIFwiTHVrYXNcIixcbiAgICBcIkx1a2VcIixcbiAgICBcIkx1dHpcIixcbiAgICBcIk1hZGRveFwiLFxuICAgIFwiTWFkc1wiLFxuICAgIFwiTWFnbnVzXCIsXG4gICAgXCJNYWlrXCIsXG4gICAgXCJNYWtzaW1cIixcbiAgICBcIk1hbGlrXCIsXG4gICAgXCJNYWx0ZVwiLFxuICAgIFwiTWFudWVsXCIsXG4gICAgXCJNYXJjXCIsXG4gICAgXCJNYXJjZWxcIixcbiAgICBcIk1hcmNvXCIsXG4gICAgXCJNYXJjdXNcIixcbiAgICBcIk1hcmVrXCIsXG4gICAgXCJNYXJpYW5cIixcbiAgICBcIk1hcmlvXCIsXG4gICAgXCJNYXJpdXNcIixcbiAgICBcIk1hcmtcIixcbiAgICBcIk1hcmtvXCIsXG4gICAgXCJNYXJrdXNcIixcbiAgICBcIk1hcmxvXCIsXG4gICAgXCJNYXJsb25cIixcbiAgICBcIk1hcnRlblwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1hcndpblwiLFxuICAgIFwiTWF0ZW9cIixcbiAgICBcIk1hdGhpc1wiLFxuICAgIFwiTWF0aXNcIixcbiAgICBcIk1hdHNcIixcbiAgICBcIk1hdHRlb1wiLFxuICAgIFwiTWF0dGVzXCIsXG4gICAgXCJNYXR0aGlhc1wiLFxuICAgIFwiTWF0dGhpc1wiLFxuICAgIFwiTWF0dGlcIixcbiAgICBcIk1hdHRpc1wiLFxuICAgIFwiTWF1cmljZVwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNYXhpbVwiLFxuICAgIFwiTWF4aW1pbGlhblwiLFxuICAgIFwiTWVobWV0XCIsXG4gICAgXCJNZWlrXCIsXG4gICAgXCJNZWx2aW5cIixcbiAgICBcIk1lcmxpblwiLFxuICAgIFwiTWVydFwiLFxuICAgIFwiTWljaGFlbFwiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWNrXCIsXG4gICAgXCJNaWd1ZWxcIixcbiAgICBcIk1pa2FcIixcbiAgICBcIk1pa2FpbFwiLFxuICAgIFwiTWlrZVwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIk1pbG9cIixcbiAgICBcIk1pb1wiLFxuICAgIFwiTWlyYWNcIixcbiAgICBcIk1pcmNvXCIsXG4gICAgXCJNaXJrb1wiLFxuICAgIFwiTW9oYW1lZFwiLFxuICAgIFwiTW9oYW1tYWRcIixcbiAgICBcIk1vaGFtbWVkXCIsXG4gICAgXCJNb3JpdHpcIixcbiAgICBcIk1vcnRlblwiLFxuICAgIFwiTXVoYW1tZWRcIixcbiAgICBcIk11cmF0XCIsXG4gICAgXCJNdXN0YWZhXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIk5hdGhhbmFlbFwiLFxuICAgIFwiTmVsc29uXCIsXG4gICAgXCJOZW9cIixcbiAgICBcIk5ldmlvXCIsXG4gICAgXCJOaWNrXCIsXG4gICAgXCJOaWNsYXNcIixcbiAgICBcIk5pY29cIixcbiAgICBcIk5pY29sYWlcIixcbiAgICBcIk5pY29sYXNcIixcbiAgICBcIk5pZWxzXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pa2xhc1wiLFxuICAgIFwiTmlrb1wiLFxuICAgIFwiTmlrb2xhaVwiLFxuICAgIFwiTmlrb2xhc1wiLFxuICAgIFwiTmlsc1wiLFxuICAgIFwiTmlub1wiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiTm9ybWFuXCIsXG4gICAgXCJPZGluXCIsXG4gICAgXCJPa2VcIixcbiAgICBcIk9sZVwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJPbWFyXCIsXG4gICAgXCJPbnVyXCIsXG4gICAgXCJPc2NhclwiLFxuICAgIFwiT3NrYXJcIixcbiAgICBcIlBhc2NhbFwiLFxuICAgIFwiUGF0cmljZVwiLFxuICAgIFwiUGF0cmlja1wiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiUGVlclwiLFxuICAgIFwiUGVwZVwiLFxuICAgIFwiUGV0ZXJcIixcbiAgICBcIlBoaWxcIixcbiAgICBcIlBoaWxpcFwiLFxuICAgIFwiUGhpbGlwcFwiLFxuICAgIFwiUGllcnJlXCIsXG4gICAgXCJQaWV0XCIsXG4gICAgXCJQaXRcIixcbiAgICBcIlBpdXNcIixcbiAgICBcIlF1ZW50aW5cIixcbiAgICBcIlF1aXJpblwiLFxuICAgIFwiUmFmYWVsXCIsXG4gICAgXCJSYWlrXCIsXG4gICAgXCJSYW1vblwiLFxuICAgIFwiUmFwaGFlbFwiLFxuICAgIFwiUmFzbXVzXCIsXG4gICAgXCJSYXVsXCIsXG4gICAgXCJSYXlhblwiLFxuICAgIFwiUmVuw6lcIixcbiAgICBcIlJpY2FyZG9cIixcbiAgICBcIlJpY2NhcmRvXCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJSaWNrXCIsXG4gICAgXCJSaWNvXCIsXG4gICAgXCJSb2JlcnRcIixcbiAgICBcIlJvYmluXCIsXG4gICAgXCJSb2Njb1wiLFxuICAgIFwiUm9tYW5cIixcbiAgICBcIlJvbWVvXCIsXG4gICAgXCJSb25cIixcbiAgICBcIlJ1YmVuXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJTYWlkXCIsXG4gICAgXCJTYWxpaFwiLFxuICAgIFwiU2FtXCIsXG4gICAgXCJTYW1pXCIsXG4gICAgXCJTYW1teVwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYW5kcm9cIixcbiAgICBcIlNhbnRpbm9cIixcbiAgICBcIlNhc2NoYVwiLFxuICAgIFwiU2VhblwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZWxpbVwiLFxuICAgIFwiU2VtaWhcIixcbiAgICBcIlNoYXduXCIsXG4gICAgXCJTaWxhc1wiLFxuICAgIFwiU2ltZW9uXCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiU2luYW5cIixcbiAgICBcIlNreVwiLFxuICAgIFwiU3RlZmFuXCIsXG4gICAgXCJTdGVmZmVuXCIsXG4gICAgXCJTdGVwaGFuXCIsXG4gICAgXCJTdGV2ZVwiLFxuICAgIFwiU3RldmVuXCIsXG4gICAgXCJTdmVuXCIsXG4gICAgXCJTw7Zua2VcIixcbiAgICBcIlPDtnJlblwiLFxuICAgIFwiVGFoYVwiLFxuICAgIFwiVGFtaW5vXCIsXG4gICAgXCJUYW1tb1wiLFxuICAgIFwiVGFyaWtcIixcbiAgICBcIlRheWxlclwiLFxuICAgIFwiVGF5bG9yXCIsXG4gICAgXCJUZW9cIixcbiAgICBcIlRoZW9cIixcbiAgICBcIlRoZW9kb3JcIixcbiAgICBcIlRoaWVzXCIsXG4gICAgXCJUaGlsb1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJUaG9yYmVuXCIsXG4gICAgXCJUaG9yZVwiLFxuICAgIFwiVGhvcmdlXCIsXG4gICAgXCJUaWFnb1wiLFxuICAgIFwiVGlsXCIsXG4gICAgXCJUaWxsXCIsXG4gICAgXCJUaWxsbWFublwiLFxuICAgIFwiVGltXCIsXG4gICAgXCJUaW1tXCIsXG4gICAgXCJUaW1vXCIsXG4gICAgXCJUaW1vblwiLFxuICAgIFwiVGltb3RoeVwiLFxuICAgIFwiVGlub1wiLFxuICAgIFwiVGl0dXNcIixcbiAgICBcIlRpemlhblwiLFxuICAgIFwiVGphcmtcIixcbiAgICBcIlRvYmlhc1wiLFxuICAgIFwiVG9tXCIsXG4gICAgXCJUb21teVwiLFxuICAgIFwiVG9uaVwiLFxuICAgIFwiVG9ueVwiLFxuICAgIFwiVG9yYmVuXCIsXG4gICAgXCJUb3JlXCIsXG4gICAgXCJUcmlzdGFuXCIsXG4gICAgXCJUeWxlclwiLFxuICAgIFwiVHlyb25cIixcbiAgICBcIlVtdXRcIixcbiAgICBcIlZhbGVudGluXCIsXG4gICAgXCJWYWxlbnRpbm9cIixcbiAgICBcIlZlaXRcIixcbiAgICBcIlZpY3RvclwiLFxuICAgIFwiVmlrdG9yXCIsXG4gICAgXCJWaW5cIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIlZpdG9cIixcbiAgICBcIlZpdHVzXCIsXG4gICAgXCJXaWxoZWxtXCIsXG4gICAgXCJXaWxsaVwiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiV2lsbHlcIixcbiAgICBcIlhhdmVyXCIsXG4gICAgXCJZYW5uaWNcIixcbiAgICBcIllhbm5pY2tcIixcbiAgICBcIllhbm5pa1wiLFxuICAgIFwiWWFubmlzXCIsXG4gICAgXCJZYXNpblwiLFxuICAgIFwiWW91c3NlZlwiLFxuICAgIFwiWXVudXNcIixcbiAgICBcIll1c3VmXCIsXG4gICAgXCJZdmVuXCIsXG4gICAgXCJZdmVzXCIsXG4gICAgXCLDlm1lclwiLFxuICAgIFwiQWFsaXlhaFwiLFxuICAgIFwiQWJieVwiLFxuICAgIFwiQWJpZ2FpbFwiLFxuICAgIFwiQWRhXCIsXG4gICAgXCJBZGVsaW5hXCIsXG4gICAgXCJBZHJpYW5hXCIsXG4gICAgXCJBaWxlZW5cIixcbiAgICBcIkFpbWVlXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiQWxlYVwiLFxuICAgIFwiQWxlbmFcIixcbiAgICBcIkFsZXNzYVwiLFxuICAgIFwiQWxlc3NpYVwiLFxuICAgIFwiQWxleGFcIixcbiAgICBcIkFsZXhhbmRyYVwiLFxuICAgIFwiQWxleGlhXCIsXG4gICAgXCJBbGV4aXNcIixcbiAgICBcIkFsZXluYVwiLFxuICAgIFwiQWxpYVwiLFxuICAgIFwiQWxpY2FcIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIkFsaW5hXCIsXG4gICAgXCJBbGlzYVwiLFxuICAgIFwiQWxpc2hhXCIsXG4gICAgXCJBbGlzc2FcIixcbiAgICBcIkFsaXlhXCIsXG4gICAgXCJBbGl5YWhcIixcbiAgICBcIkFsbGVncmFcIixcbiAgICBcIkFsbWFcIixcbiAgICBcIkFseXNzYVwiLFxuICAgIFwiQW1hbGlhXCIsXG4gICAgXCJBbWFuZGFcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiQW1lbGllXCIsXG4gICAgXCJBbWluYVwiLFxuICAgIFwiQW1pcmFcIixcbiAgICBcIkFteVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmFiZWxcIixcbiAgICBcIkFuYXN0YXNpYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJBbmdlbGFcIixcbiAgICBcIkFuZ2VsaW5hXCIsXG4gICAgXCJBbmdlbGlxdWVcIixcbiAgICBcIkFuamFcIixcbiAgICBcIkFublwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiQW5uYWJlbFwiLFxuICAgIFwiQW5uYWJlbGxcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiQW5uYWxlbmFcIixcbiAgICBcIkFubmVcIixcbiAgICBcIkFubmVrZVwiLFxuICAgIFwiQW5uZWxpZVwiLFxuICAgIFwiQW5uZW1hcmllXCIsXG4gICAgXCJBbm5pXCIsXG4gICAgXCJBbm5pZVwiLFxuICAgIFwiQW5uaWthXCIsXG4gICAgXCJBbm55XCIsXG4gICAgXCJBbm91a1wiLFxuICAgIFwiQW50b25pYVwiLFxuICAgIFwiQXJkYVwiLFxuICAgIFwiQXJpYW5hXCIsXG4gICAgXCJBcmlhbmVcIixcbiAgICBcIkFyd2VuXCIsXG4gICAgXCJBc2hsZXlcIixcbiAgICBcIkFzeWFcIixcbiAgICBcIkF1cmVsaWFcIixcbiAgICBcIkF1cm9yYVwiLFxuICAgIFwiQXZhXCIsXG4gICAgXCJBeWxlZW5cIixcbiAgICBcIkF5bGluXCIsXG4gICAgXCJBeXNlXCIsXG4gICAgXCJBenJhXCIsXG4gICAgXCJCZXR0eVwiLFxuICAgIFwiQmlhbmNhXCIsXG4gICAgXCJCaWFua2FcIixcbiAgICBcIkNhaXRsaW5cIixcbiAgICBcIkNhcmFcIixcbiAgICBcIkNhcmluYVwiLFxuICAgIFwiQ2FybGFcIixcbiAgICBcIkNhcmxvdHRhXCIsXG4gICAgXCJDYXJtZW5cIixcbiAgICBcIkNhcm9saW5cIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXJvbGluZVwiLFxuICAgIFwiQ2Fzc2FuZHJhXCIsXG4gICAgXCJDYXRoYXJpbmFcIixcbiAgICBcIkNhdHJpblwiLFxuICAgIFwiQ2VjaWxlXCIsXG4gICAgXCJDZWNpbGlhXCIsXG4gICAgXCJDZWxpYVwiLFxuICAgIFwiQ2VsaW5hXCIsXG4gICAgXCJDZWxpbmVcIixcbiAgICBcIkNleWRhXCIsXG4gICAgXCJDZXlsaW5cIixcbiAgICBcIkNoYW50YWxcIixcbiAgICBcIkNoYXJsZWVuXCIsXG4gICAgXCJDaGFybG90dGFcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQ2hheWVubmVcIixcbiAgICBcIkNoZXllbm5lXCIsXG4gICAgXCJDaGlhcmFcIixcbiAgICBcIkNocmlzdGluXCIsXG4gICAgXCJDaHJpc3RpbmFcIixcbiAgICBcIkNpbmR5XCIsXG4gICAgXCJDbGFpcmVcIixcbiAgICBcIkNsYXJhXCIsXG4gICAgXCJDbGFyaXNzYVwiLFxuICAgIFwiQ29sbGVlblwiLFxuICAgIFwiQ29sbGllblwiLFxuICAgIFwiQ29yYVwiLFxuICAgIFwiQ29yaW5uYVwiLFxuICAgIFwiQ29zaW1hXCIsXG4gICAgXCJEYW5hXCIsXG4gICAgXCJEYW5pZWxhXCIsXG4gICAgXCJEYXJpYVwiLFxuICAgIFwiRGFybGVlblwiLFxuICAgIFwiRGVmbmVcIixcbiAgICBcIkRlbGlhXCIsXG4gICAgXCJEZW5pc2VcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEaWxhcmFcIixcbiAgICBcIkRpbmFcIixcbiAgICBcIkRvcm90aGVhXCIsXG4gICAgXCJFY3JpblwiLFxuICAgIFwiRWRhXCIsXG4gICAgXCJFaWxlZW5cIixcbiAgICBcIkVsYVwiLFxuICAgIFwiRWxhaW5lXCIsXG4gICAgXCJFbGFudXJcIixcbiAgICBcIkVsZWFcIixcbiAgICBcIkVsZW5hXCIsXG4gICAgXCJFbGVuaVwiLFxuICAgIFwiRWxlb25vcmFcIixcbiAgICBcIkVsaWFuYVwiLFxuICAgIFwiRWxpZlwiLFxuICAgIFwiRWxpbmFcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkVsbGFcIixcbiAgICBcIkVsbGVuXCIsXG4gICAgXCJFbGxpXCIsXG4gICAgXCJFbGx5XCIsXG4gICAgXCJFbHNhXCIsXG4gICAgXCJFbWVsaWVcIixcbiAgICBcIkVtZWx5XCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVtaWxpZVwiLFxuICAgIFwiRW1pbHlcIixcbiAgICBcIkVtbWFcIixcbiAgICBcIkVtbWVseVwiLFxuICAgIFwiRW1taVwiLFxuICAgIFwiRW1teVwiLFxuICAgIFwiRW5pZVwiLFxuICAgIFwiRW5uYVwiLFxuICAgIFwiRW55YVwiLFxuICAgIFwiRXNtYVwiLFxuICAgIFwiRXN0ZWxsZVwiLFxuICAgIFwiRXN0aGVyXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIkV2ZWxpblwiLFxuICAgIFwiRXZlbGluYVwiLFxuICAgIFwiRXZlbGluZVwiLFxuICAgIFwiRXZlbHluXCIsXG4gICAgXCJGYWJpZW5uZVwiLFxuICAgIFwiRmF0aW1hXCIsXG4gICAgXCJGYXRtYVwiLFxuICAgIFwiRmVsaWNpYVwiLFxuICAgIFwiRmVsaWNpdGFzXCIsXG4gICAgXCJGZWxpbmFcIixcbiAgICBcIkZlbWtlXCIsXG4gICAgXCJGZW5qYVwiLFxuICAgIFwiRmluZVwiLFxuICAgIFwiRmluaWFcIixcbiAgICBcIkZpbmphXCIsXG4gICAgXCJGaW5uamFcIixcbiAgICBcIkZpb25hXCIsXG4gICAgXCJGbG9yYVwiLFxuICAgIFwiRmxvcmVudGluZVwiLFxuICAgIFwiRnJhbmNlc2NhXCIsXG4gICAgXCJGcmFua2FcIixcbiAgICBcIkZyYW56aXNrYVwiLFxuICAgIFwiRnJlZGVyaWtlXCIsXG4gICAgXCJGcmV5YVwiLFxuICAgIFwiRnJpZGFcIixcbiAgICBcIkZyaWVkYVwiLFxuICAgIFwiRnJpZWRlcmlrZVwiLFxuICAgIFwiR2lhZGFcIixcbiAgICBcIkdpbmFcIixcbiAgICBcIkdpdWxpYVwiLFxuICAgIFwiR2l1bGlhbmFcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJIYWlsZXlcIixcbiAgICBcIkhhbmFcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIkhlaWRpXCIsXG4gICAgXCJIZWxlblwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJIZWxlbmVcIixcbiAgICBcIkhlbGluXCIsXG4gICAgXCJIZW5yaWV0dGVcIixcbiAgICBcIkhlbnJpa2VcIixcbiAgICBcIkhlcm1pbmVcIixcbiAgICBcIklkYVwiLFxuICAgIFwiSWxheWRhXCIsXG4gICAgXCJJbWtlXCIsXG4gICAgXCJJbmFcIixcbiAgICBcIkluZXNcIixcbiAgICBcIkluZ2FcIixcbiAgICBcIklua2FcIixcbiAgICBcIklyZW1cIixcbiAgICBcIklzYVwiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxsXCIsXG4gICAgXCJJc2FiZWxsYVwiLFxuICAgIFwiSXNhYmVsbGVcIixcbiAgICBcIkl2b25uZVwiLFxuICAgIFwiSmFjcXVlbGluZVwiLFxuICAgIFwiSmFtaWVcIixcbiAgICBcIkphbWlsYVwiLFxuICAgIFwiSmFuYVwiLFxuICAgIFwiSmFuZVwiLFxuICAgIFwiSmFuaW5cIixcbiAgICBcIkphbmluYVwiLFxuICAgIFwiSmFuaW5lXCIsXG4gICAgXCJKYW5uYVwiLFxuICAgIFwiSmFubmVcIixcbiAgICBcIkphcmFcIixcbiAgICBcIkphc21pblwiLFxuICAgIFwiSmFzbWluYVwiLFxuICAgIFwiSmFzbWluZVwiLFxuICAgIFwiSmVsbGFcIixcbiAgICBcIkplbm5hXCIsXG4gICAgXCJKZW5uaWZlclwiLFxuICAgIFwiSmVubnlcIixcbiAgICBcIkplc3NpY2FcIixcbiAgICBcIkplc3N5XCIsXG4gICAgXCJKZXR0ZVwiLFxuICAgIFwiSmlsXCIsXG4gICAgXCJKaWxsXCIsXG4gICAgXCJKb2FuYVwiLFxuICAgIFwiSm9hbm5hXCIsXG4gICAgXCJKb2VsaW5hXCIsXG4gICAgXCJKb2VsaW5lXCIsXG4gICAgXCJKb2VsbGVcIixcbiAgICBcIkpvaGFubmFcIixcbiAgICBcIkpvbGVlblwiLFxuICAgIFwiSm9saWVcIixcbiAgICBcIkpvbGllblwiLFxuICAgIFwiSm9saW5cIixcbiAgICBcIkpvbGluYVwiLFxuICAgIFwiSm9saW5lXCIsXG4gICAgXCJKb25hXCIsXG4gICAgXCJKb25haFwiLFxuICAgIFwiSm9ubmFcIixcbiAgICBcIkpvc2VmaW5cIixcbiAgICBcIkpvc2VmaW5lXCIsXG4gICAgXCJKb3NlcGhpblwiLFxuICAgIFwiSm9zZXBoaW5lXCIsXG4gICAgXCJKb3NpZVwiLFxuICAgIFwiSm9zeVwiLFxuICAgIFwiSm95XCIsXG4gICAgXCJKb3ljZVwiLFxuICAgIFwiSnVkaXRoXCIsXG4gICAgXCJKdWR5XCIsXG4gICAgXCJKdWxlXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuYVwiLFxuICAgIFwiSnVsaWFuZVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIkp1bGllbm5lXCIsXG4gICAgXCJKdWxpa2FcIixcbiAgICBcIkp1bGluYVwiLFxuICAgIFwiSnVuYVwiLFxuICAgIFwiSnVzdGluZVwiLFxuICAgIFwiS2FqYVwiLFxuICAgIFwiS2FyaW5hXCIsXG4gICAgXCJLYXJsYVwiLFxuICAgIFwiS2FybG90dGFcIixcbiAgICBcIkthcm9saW5hXCIsXG4gICAgXCJLYXJvbGluZVwiLFxuICAgIFwiS2Fzc2FuZHJhXCIsXG4gICAgXCJLYXRhcmluYVwiLFxuICAgIFwiS2F0aGFyaW5hXCIsXG4gICAgXCJLYXRocmluXCIsXG4gICAgXCJLYXRqYVwiLFxuICAgIFwiS2F0cmluXCIsXG4gICAgXCJLYXlhXCIsXG4gICAgXCJLYXlyYVwiLFxuICAgIFwiS2lhbmFcIixcbiAgICBcIktpYXJhXCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWJlcmxleVwiLFxuICAgIFwiS2ltYmVybHlcIixcbiAgICBcIktpcmFcIixcbiAgICBcIktsYXJhXCIsXG4gICAgXCJLb3Jpbm5hXCIsXG4gICAgXCJLcmlzdGluXCIsXG4gICAgXCJLeXJhXCIsXG4gICAgXCJMYWlsYVwiLFxuICAgIFwiTGFuYVwiLFxuICAgIFwiTGFyYVwiLFxuICAgIFwiTGFyaXNzYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkxhdXJlZW5cIixcbiAgICBcIkxhdmluaWFcIixcbiAgICBcIkxlYVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiTGVhbmFcIixcbiAgICBcIkxlYW5kcmFcIixcbiAgICBcIkxlYW5uXCIsXG4gICAgXCJMZWVcIixcbiAgICBcIkxlaWxhXCIsXG4gICAgXCJMZW5hXCIsXG4gICAgXCJMZW5lXCIsXG4gICAgXCJMZW5pXCIsXG4gICAgXCJMZW5pYVwiLFxuICAgIFwiTGVuamFcIixcbiAgICBcIkxlbnlhXCIsXG4gICAgXCJMZW9uYVwiLFxuICAgIFwiTGVvbmlcIixcbiAgICBcIkxlb25pZVwiLFxuICAgIFwiTGVvbm9yYVwiLFxuICAgIFwiTGV0aWNpYVwiLFxuICAgIFwiTGV0aXppYVwiLFxuICAgIFwiTGV2a2VcIixcbiAgICBcIkxleWxhXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpYWhcIixcbiAgICBcIkxpYW5hXCIsXG4gICAgXCJMaWxpXCIsXG4gICAgXCJMaWxpYVwiLFxuICAgIFwiTGlsaWFuXCIsXG4gICAgXCJMaWxpYW5hXCIsXG4gICAgXCJMaWxpdGhcIixcbiAgICBcIkxpbGxpXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJMaWxseVwiLFxuICAgIFwiTGlseVwiLFxuICAgIFwiTGluYVwiLFxuICAgIFwiTGluZGFcIixcbiAgICBcIkxpbmRzYXlcIixcbiAgICBcIkxpbmVcIixcbiAgICBcIkxpbm5cIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiTGlzYW5uXCIsXG4gICAgXCJMaXNhbm5lXCIsXG4gICAgXCJMaXZcIixcbiAgICBcIkxpdmlhXCIsXG4gICAgXCJMaXpcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkxvcmVlblwiLFxuICAgIFwiTG9yZW5hXCIsXG4gICAgXCJMb3R0YVwiLFxuICAgIFwiTG90dGVcIixcbiAgICBcIkxvdWlzYVwiLFxuICAgIFwiTG91aXNlXCIsXG4gICAgXCJMdWFuYVwiLFxuICAgIFwiTHVjYVwiLFxuICAgIFwiTHVjaWFcIixcbiAgICBcIkx1Y2llXCIsXG4gICAgXCJMdWNpZW5uZVwiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiTHVpc2FcIixcbiAgICBcIkx1aXNlXCIsXG4gICAgXCJMdWthXCIsXG4gICAgXCJMdW5hXCIsXG4gICAgXCJMdXppZVwiLFxuICAgIFwiTHlhXCIsXG4gICAgXCJMeWRpYVwiLFxuICAgIFwiTHluXCIsXG4gICAgXCJMeW5uXCIsXG4gICAgXCJNYWRlbGVpbmVcIixcbiAgICBcIk1hZGl0YVwiLFxuICAgIFwiTWFkbGVlblwiLFxuICAgIFwiTWFkbGVuXCIsXG4gICAgXCJNYWdkYWxlbmFcIixcbiAgICBcIk1haWtlXCIsXG4gICAgXCJNYWlsaW5cIixcbiAgICBcIk1haXJhXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJNYWxlbmFcIixcbiAgICBcIk1hbGlhXCIsXG4gICAgXCJNYWxpblwiLFxuICAgIFwiTWFsaW5hXCIsXG4gICAgXCJNYW5keVwiLFxuICAgIFwiTWFyYVwiLFxuICAgIFwiTWFyYWhcIixcbiAgICBcIk1hcmVpa2VcIixcbiAgICBcIk1hcmVuXCIsXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiTWFyaWFtXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiTWFyaWVrZVwiLFxuICAgIFwiTWFyaWVsbGFcIixcbiAgICBcIk1hcmlrYVwiLFxuICAgIFwiTWFyaW5hXCIsXG4gICAgXCJNYXJpc2FcIixcbiAgICBcIk1hcmlzc2FcIixcbiAgICBcIk1hcml0XCIsXG4gICAgXCJNYXJsYVwiLFxuICAgIFwiTWFybGVlblwiLFxuICAgIFwiTWFybGVuXCIsXG4gICAgXCJNYXJsZW5hXCIsXG4gICAgXCJNYXJsZW5lXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydGhhXCIsXG4gICAgXCJNYXJ5XCIsXG4gICAgXCJNYXJ5YW1cIixcbiAgICBcIk1hdGhpbGRhXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWF0aWxkYVwiLFxuICAgIFwiTWF4aVwiLFxuICAgIFwiTWF4aW1hXCIsXG4gICAgXCJNYXhpbmVcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heXJhXCIsXG4gICAgXCJNZWRpbmFcIixcbiAgICBcIk1lZGluZVwiLFxuICAgIFwiTWVpa2VcIixcbiAgICBcIk1lbGFuaWVcIixcbiAgICBcIk1lbGVrXCIsXG4gICAgXCJNZWxpa2VcIixcbiAgICBcIk1lbGluYVwiLFxuICAgIFwiTWVsaW5kYVwiLFxuICAgIFwiTWVsaXNcIixcbiAgICBcIk1lbGlzYVwiLFxuICAgIFwiTWVsaXNzYVwiLFxuICAgIFwiTWVybGVcIixcbiAgICBcIk1lcnZlXCIsXG4gICAgXCJNZXJ5ZW1cIixcbiAgICBcIk1ldHRlXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIk1pY2hhZWxhXCIsXG4gICAgXCJNaWNoZWxsZVwiLFxuICAgIFwiTWlla2VcIixcbiAgICBcIk1pbGFcIixcbiAgICBcIk1pbGFuYVwiLFxuICAgIFwiTWlsZW5hXCIsXG4gICAgXCJNaWxsYVwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiTWlyYVwiLFxuICAgIFwiTWlyYXlcIixcbiAgICBcIk1pcmlhbVwiLFxuICAgIFwiTWlyamFcIixcbiAgICBcIk1vbmFcIixcbiAgICBcIk1vbmlxdWVcIixcbiAgICBcIk5hZGluZVwiLFxuICAgIFwiTmFkamFcIixcbiAgICBcIk5hZW1pXCIsXG4gICAgXCJOYW5jeVwiLFxuICAgIFwiTmFvbWlcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5hdGFsaWVcIixcbiAgICBcIk5hdGhhbGllXCIsXG4gICAgXCJOZWVsZVwiLFxuICAgIFwiTmVsYVwiLFxuICAgIFwiTmVsZVwiLFxuICAgIFwiTmVsbGlcIixcbiAgICBcIk5lbGx5XCIsXG4gICAgXCJOaWFcIixcbiAgICBcIk5pY29sZVwiLFxuICAgIFwiTmlrYVwiLFxuICAgIFwiTmlrZVwiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWxhXCIsXG4gICAgXCJOaW5hXCIsXG4gICAgXCJOaXNhXCIsXG4gICAgXCJOb2VtaVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJQYXRyaWNpYVwiLFxuICAgIFwiUGF0cml6aWFcIixcbiAgICBcIlBhdWxhXCIsXG4gICAgXCJQYXVsaW5hXCIsXG4gICAgXCJQYXVsaW5lXCIsXG4gICAgXCJQZW5lbG9wZVwiLFxuICAgIFwiUGhpbGluZVwiLFxuICAgIFwiUGhvZWJlXCIsXG4gICAgXCJQaWFcIixcbiAgICBcIlJhaGVsXCIsXG4gICAgXCJSYW5pYVwiLFxuICAgIFwiUmViZWNjYVwiLFxuICAgIFwiUmViZWtrYVwiLFxuICAgIFwiUmlhbmFcIixcbiAgICBcIlJpZWtlXCIsXG4gICAgXCJSaWtlXCIsXG4gICAgXCJSb21pbmFcIixcbiAgICBcIlJvbXlcIixcbiAgICBcIlJvbmphXCIsXG4gICAgXCJSb3NhXCIsXG4gICAgXCJSb3NhbGllXCIsXG4gICAgXCJSdWJ5XCIsXG4gICAgXCJTYWJyaW5hXCIsXG4gICAgXCJTYWhyYVwiLFxuICAgIFwiU2FsbHlcIixcbiAgICBcIlNhbG9tZVwiLFxuICAgIFwiU2FtYW50aGFcIixcbiAgICBcIlNhbWlhXCIsXG4gICAgXCJTYW1pcmFcIixcbiAgICBcIlNhbmRyYVwiLFxuICAgIFwiU2FuZHlcIixcbiAgICBcIlNhbmphXCIsXG4gICAgXCJTYXBoaXJhXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiU2Fza2lhXCIsXG4gICAgXCJTZWxpblwiLFxuICAgIFwiU2VsaW5hXCIsXG4gICAgXCJTZWxtYVwiLFxuICAgIFwiU2VuYVwiLFxuICAgIFwiU2lkbmV5XCIsXG4gICAgXCJTaWVubmFcIixcbiAgICBcIlNpbGphXCIsXG4gICAgXCJTaW5hXCIsXG4gICAgXCJTaW5qYVwiLFxuICAgIFwiU21pbGxhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiU29maWVcIixcbiAgICBcIlNvbmphXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiU29yYXlhXCIsXG4gICAgXCJTdGVmYW5pZVwiLFxuICAgIFwiU3RlbGxhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIlN0aW5hXCIsXG4gICAgXCJTdWRlXCIsXG4gICAgXCJTdW1tZXJcIixcbiAgICBcIlN1c2FubmVcIixcbiAgICBcIlN2ZWFcIixcbiAgICBcIlN2ZW5qYVwiLFxuICAgIFwiU3lkbmV5XCIsXG4gICAgXCJUYWJlYVwiLFxuICAgIFwiVGFsZWFcIixcbiAgICBcIlRhbGlhXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIlRhbWlhXCIsXG4gICAgXCJUYW1pbmFcIixcbiAgICBcIlRhbmphXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUYXJqYVwiLFxuICAgIFwiVGVyZXNhXCIsXG4gICAgXCJUZXNzYVwiLFxuICAgIFwiVGhhbGVhXCIsXG4gICAgXCJUaGFsaWFcIixcbiAgICBcIlRoZWFcIixcbiAgICBcIlRoZXJlc2FcIixcbiAgICBcIlRpYVwiLFxuICAgIFwiVGluYVwiLFxuICAgIFwiVG9ta2VcIixcbiAgICBcIlR1YW5hXCIsXG4gICAgXCJWYWxlbnRpbmFcIixcbiAgICBcIlZhbGVyaWFcIixcbiAgICBcIlZhbGVyaWVcIixcbiAgICBcIlZhbmVzc2FcIixcbiAgICBcIlZlcmFcIixcbiAgICBcIlZlcm9uaWthXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiVmlrdG9yaWFcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJWaXZpYW5cIixcbiAgICBcIlZpdmllblwiLFxuICAgIFwiVml2aWVubmVcIixcbiAgICBcIldpYmtlXCIsXG4gICAgXCJXaWVia2VcIixcbiAgICBcIlhlbmlhXCIsXG4gICAgXCJZYXJhXCIsXG4gICAgXCJZYXJlblwiLFxuICAgIFwiWWFzbWluXCIsXG4gICAgXCJZbHZpXCIsXG4gICAgXCJZbHZpZVwiLFxuICAgIFwiWXZvbm5lXCIsXG4gICAgXCJaYXJhXCIsXG4gICAgXCJaZWhyYVwiLFxuICAgIFwiWmV5bmVwXCIsXG4gICAgXCJab2VcIixcbiAgICBcIlpvZXlcIixcbiAgICBcIlpvw6lcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBYmVsXCIsXG4gICAgXCJBYmljaHRcIixcbiAgICBcIkFicmFoYW1cIixcbiAgICBcIkFicmFtb3ZpY1wiLFxuICAgIFwiQWJ0XCIsXG4gICAgXCJBY2hpbGxlc1wiLFxuICAgIFwiQWNoa2luYWR6ZVwiLFxuICAgIFwiQWNrZXJtYW5uXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCJBZGFtc1wiLFxuICAgIFwiQWRlXCIsXG4gICAgXCJBZ29zdGluaVwiLFxuICAgIFwiQWhsa2VcIixcbiAgICBcIkFocmVuYmVyZ1wiLFxuICAgIFwiQWhyZW5zXCIsXG4gICAgXCJBaWduZXJcIixcbiAgICBcIkFsYmVydFwiLFxuICAgIFwiQWxicmVjaHRcIixcbiAgICBcIkFsZXhhXCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkFsaXphZGVoXCIsXG4gICAgXCJBbGxnZXllclwiLFxuICAgIFwiQW1hbm5cIixcbiAgICBcIkFtYmVyZ1wiLFxuICAgIFwiQW5kaW5nXCIsXG4gICAgXCJBbmdncmVueVwiLFxuICAgIFwiQXBpdHpcIixcbiAgICBcIkFyZW5kdFwiLFxuICAgIFwiQXJlbnNcIixcbiAgICBcIkFybmR0XCIsXG4gICAgXCJBcnllZVwiLFxuICAgIFwiQXNjaGVuYnJvaWNoXCIsXG4gICAgXCJBc3NtdXNcIixcbiAgICBcIkFzdGFmZWlcIixcbiAgICBcIkF1ZXJcIixcbiAgICBcIkF4bWFublwiLFxuICAgIFwiQmFhcmNrXCIsXG4gICAgXCJCYWNobWFublwiLFxuICAgIFwiQmFkYW5lXCIsXG4gICAgXCJCYWRlclwiLFxuICAgIFwiQmFnYW56XCIsXG4gICAgXCJCYWhsXCIsXG4gICAgXCJCYWtcIixcbiAgICBcIkJhbGNlclwiLFxuICAgIFwiQmFsY2tcIixcbiAgICBcIkJhbGtvd1wiLFxuICAgIFwiQmFsbnV3ZWl0XCIsXG4gICAgXCJCYWx6ZXJcIixcbiAgICBcIkJhbnNlXCIsXG4gICAgXCJCYXJyXCIsXG4gICAgXCJCYXJ0ZWxzXCIsXG4gICAgXCJCYXJ0aFwiLFxuICAgIFwiQmFyeWxsYVwiLFxuICAgIFwiQmFzZWRhXCIsXG4gICAgXCJCYXR0a2VcIixcbiAgICBcIkJhdWVyXCIsXG4gICAgXCJCYXVlcm1laXN0ZXJcIixcbiAgICBcIkJhdW1hbm5cIixcbiAgICBcIkJhdW1laXN0ZXJcIixcbiAgICBcIkJhdXNjaGluZ2VyXCIsXG4gICAgXCJCYXVzY2hrZVwiLFxuICAgIFwiQmF5ZXJcIixcbiAgICBcIkJlYXZvZ3VpXCIsXG4gICAgXCJCZWNrXCIsXG4gICAgXCJCZWNrZWxcIixcbiAgICBcIkJlY2tlclwiLFxuICAgIFwiQmVja21hbm5cIixcbiAgICBcIkJlZGV3aXR6XCIsXG4gICAgXCJCZWVsZVwiLFxuICAgIFwiQmVlclwiLFxuICAgIFwiQmVnZ2Vyb3dcIixcbiAgICBcIkJlaFwiLFxuICAgIFwiQmVoclwiLFxuICAgIFwiQmVocmVuYnJ1Y2hcIixcbiAgICBcIkJlbHpcIixcbiAgICBcIkJlbmRlclwiLFxuICAgIFwiQmVuZWNrZVwiLFxuICAgIFwiQmVubmVyXCIsXG4gICAgXCJCZW5uaW5nZXJcIixcbiAgICBcIkJlbnppbmdcIixcbiAgICBcIkJlcmVuZHNcIixcbiAgICBcIkJlcmdlclwiLFxuICAgIFwiQmVybmVyXCIsXG4gICAgXCJCZXJuaW5nXCIsXG4gICAgXCJCZXJ0ZW5icmVpdGVyXCIsXG4gICAgXCJCZXN0XCIsXG4gICAgXCJCZXRoa2VcIixcbiAgICBcIkJldHpcIixcbiAgICBcIkJldXNoYXVzZW5cIixcbiAgICBcIkJldXRlbHNwYWNoZXJcIixcbiAgICBcIkJleWVyXCIsXG4gICAgXCJCaWJhXCIsXG4gICAgXCJCaWNobGVyXCIsXG4gICAgXCJCaWNrZWxcIixcbiAgICBcIkJpZWRlcm1hbm5cIixcbiAgICBcIkJpZWxlclwiLFxuICAgIFwiQmllbGVydFwiLFxuICAgIFwiQmllbmFzY2hcIixcbiAgICBcIkJpZW5pYXNcIixcbiAgICBcIkJpZXNlbmJhY2hcIixcbiAgICBcIkJpZ2RlbGlcIixcbiAgICBcIkJpcmtlbWV5ZXJcIixcbiAgICBcIkJpdHRuZXJcIixcbiAgICBcIkJsYW5rXCIsXG4gICAgXCJCbGFzY2hla1wiLFxuICAgIFwiQmxhc3NuZWNrXCIsXG4gICAgXCJCbG9jaFwiLFxuICAgIFwiQmxvY2h3aXR6XCIsXG4gICAgXCJCbG9ja2hhdXNcIixcbiAgICBcIkJsdW1cIixcbiAgICBcIkJsdW1lXCIsXG4gICAgXCJCb2NrXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2dkYXNoaW5cIixcbiAgICBcIkJvZ2VucmllZGVyXCIsXG4gICAgXCJCb2hnZVwiLFxuICAgIFwiQm9sbVwiLFxuICAgIFwiQm9yZ3NjaHVsemVcIixcbiAgICBcIkJvcmtcIixcbiAgICBcIkJvcm1hbm5cIixcbiAgICBcIkJvcm5zY2hldWVyXCIsXG4gICAgXCJCb3JybWFublwiLFxuICAgIFwiQm9yc2NoXCIsXG4gICAgXCJCb3J1c2NoZXdza2lcIixcbiAgICBcIkJvc1wiLFxuICAgIFwiQm9zbGVyXCIsXG4gICAgXCJCb3Vycm91YWdcIixcbiAgICBcIkJvdXNjaGVuXCIsXG4gICAgXCJCb3hoYW1tZXJcIixcbiAgICBcIkJveWRlXCIsXG4gICAgXCJCb3pzaWtcIixcbiAgICBcIkJyYW5kXCIsXG4gICAgXCJCcmFuZGVuYnVyZ1wiLFxuICAgIFwiQnJhbmRpc1wiLFxuICAgIFwiQnJhbmR0XCIsXG4gICAgXCJCcmF1ZXJcIixcbiAgICBcIkJyYXVuXCIsXG4gICAgXCJCcmVobWVyXCIsXG4gICAgXCJCcmVpdGVuc3RlaW5cIixcbiAgICBcIkJyZW1lclwiLFxuICAgIFwiQnJlbXNlclwiLFxuICAgIFwiQnJlbm5lclwiLFxuICAgIFwiQnJldHRzY2huZWlkZXJcIixcbiAgICBcIkJyZXVcIixcbiAgICBcIkJyZXVlclwiLFxuICAgIFwiQnJpZXNlbmlja1wiLFxuICAgIFwiQnJpbmdtYW5uXCIsXG4gICAgXCJCcmlua21hbm5cIixcbiAgICBcIkJyaXhcIixcbiAgICBcIkJyb2VuaW5nXCIsXG4gICAgXCJCcm9zY2hcIixcbiAgICBcIkJydWNrbWFublwiLFxuICAgIFwiQnJ1ZGVyXCIsXG4gICAgXCJCcnVobnNcIixcbiAgICBcIkJydW5uZXJcIixcbiAgICBcIkJydW5zXCIsXG4gICAgXCJCcsOkdXRpZ2FtXCIsXG4gICAgXCJCcsO2bW1lXCIsXG4gICAgXCJCcsO8Z2dtYW5uXCIsXG4gICAgXCJCdWNoaG9selwiLFxuICAgIFwiQnVjaHJ1Y2tlclwiLFxuICAgIFwiQnVkZXJcIixcbiAgICBcIkJ1bHRtYW5uXCIsXG4gICAgXCJCdW5qZXNcIixcbiAgICBcIkJ1cmdlclwiLFxuICAgIFwiQnVyZ2hhZ2VuXCIsXG4gICAgXCJCdXJraGFyZFwiLFxuICAgIFwiQnVya2hhcmR0XCIsXG4gICAgXCJCdXJtZWlzdGVyXCIsXG4gICAgXCJCdXNjaFwiLFxuICAgIFwiQnVzY2hiYXVtXCIsXG4gICAgXCJCdXNlbWFublwiLFxuICAgIFwiQnVzc1wiLFxuICAgIFwiQnVzc2VcIixcbiAgICBcIkJ1c3NtYW5uXCIsXG4gICAgXCJCeXJkXCIsXG4gICAgXCJCw6Rja2VyXCIsXG4gICAgXCJCw7ZobVwiLFxuICAgIFwiQsO2bmlzY2hcIixcbiAgICBcIkLDtnJnZWxpbmdcIixcbiAgICBcIkLDtnJuZXJcIixcbiAgICBcIkLDtnR0bmVyXCIsXG4gICAgXCJCw7xjaGVsZVwiLFxuICAgIFwiQsO8aGxlclwiLFxuICAgIFwiQsO8a2VyXCIsXG4gICAgXCJCw7xuZ2VuZXJcIixcbiAgICBcIkLDvHJnZXJcIixcbiAgICBcIkLDvHJrbGVpblwiLFxuICAgIFwiQsO8c2NoZXJcIixcbiAgICBcIkLDvHR0bmVyXCIsXG4gICAgXCJDYW1hcmFcIixcbiAgICBcIkNhcmxvd2l0elwiLFxuICAgIFwiQ2FybHNvaG5cIixcbiAgICBcIkNhc3BhcmlcIixcbiAgICBcIkNhc3BlcnNcIixcbiAgICBcIkNoYXByb25cIixcbiAgICBcIkNocmlzdFwiLFxuICAgIFwiQ2llcnBpbnNraVwiLFxuICAgIFwiQ2xhcml1c1wiLFxuICAgIFwiQ2xlZW1cIixcbiAgICBcIkNsZXZlXCIsXG4gICAgXCJDb1wiLFxuICAgIFwiQ29ucmFkXCIsXG4gICAgXCJDb3JkZXNcIixcbiAgICBcIkNvcm5lbHNlblwiLFxuICAgIFwiQ29yc1wiLFxuICAgIFwiQ290dGhhcmR0XCIsXG4gICAgXCJDcmV3c1wiLFxuICAgIFwiQ3JvbmrDpGdlclwiLFxuICAgIFwiQ3Jvc3Nrb2ZwXCIsXG4gICAgXCJEYVwiLFxuICAgIFwiRGFobVwiLFxuICAgIFwiRGFobWVuXCIsXG4gICAgXCJEYWltZXJcIixcbiAgICBcIkRhbWFza2VcIixcbiAgICBcIkRhbm5lYmVyZ1wiLFxuICAgIFwiRGFubmVyXCIsXG4gICAgXCJEYXViXCIsXG4gICAgXCJEYXVibmVyXCIsXG4gICAgXCJEYXVkcmljaFwiLFxuICAgIFwiRGF1ZXJcIixcbiAgICBcIkRhdW1cIixcbiAgICBcIkRhdXRoXCIsXG4gICAgXCJEYXV0emVuYmVyZ1wiLFxuICAgIFwiRGVcIixcbiAgICBcIkRlY2tlclwiLFxuICAgIFwiRGVja2VydFwiLFxuICAgIFwiRGVlcmJlcmdcIixcbiAgICBcIkRlaG1lbFwiLFxuICAgIFwiRGVqYVwiLFxuICAgIFwiRGVsb25nZVwiLFxuICAgIFwiRGVtdXRcIixcbiAgICBcIkRlbmdsZXJcIixcbiAgICBcIkRlbm5lclwiLFxuICAgIFwiRGVuemluZ2VyXCIsXG4gICAgXCJEZXJyXCIsXG4gICAgXCJEZXJ0bWFublwiLFxuICAgIFwiRGV0aGxvZmZcIixcbiAgICBcIkRldXNjaGxlXCIsXG4gICAgXCJEaWVja21hbm5cIixcbiAgICBcIkRpZWRyaWNoXCIsXG4gICAgXCJEaWVrbWFublwiLFxuICAgIFwiRGllbmVsXCIsXG4gICAgXCJEaWVzXCIsXG4gICAgXCJEaWV0cmljaFwiLFxuICAgIFwiRGlldHpcIixcbiAgICBcIkRpZXR6c2NoXCIsXG4gICAgXCJEaWV6ZWxcIixcbiAgICBcIkRpbGxhXCIsXG4gICAgXCJEaW5nZWxzdGVkdFwiLFxuICAgIFwiRGlwcGxcIixcbiAgICBcIkRpdHRtYW5uXCIsXG4gICAgXCJEaXR0bWFyXCIsXG4gICAgXCJEaXR0bWVyXCIsXG4gICAgXCJEaXhcIixcbiAgICBcIkRvYmJydW56XCIsXG4gICAgXCJEb2JsZXJcIixcbiAgICBcIkRvaHJpbmdcIixcbiAgICBcIkRvbGNoXCIsXG4gICAgXCJEb2xkXCIsXG4gICAgXCJEb21icm93c2tpXCIsXG4gICAgXCJEb25pZVwiLFxuICAgIFwiRG9za29jenluc2tpXCIsXG4gICAgXCJEcmFndVwiLFxuICAgIFwiRHJlY2hzbGVyXCIsXG4gICAgXCJEcmVlc1wiLFxuICAgIFwiRHJlaGVyXCIsXG4gICAgXCJEcmVpZXJcIixcbiAgICBcIkRyZWlzc2lnYWNrZXJcIixcbiAgICBcIkRyZXNzbGVyXCIsXG4gICAgXCJEcmV3c1wiLFxuICAgIFwiRHVtYVwiLFxuICAgIFwiRHV0a2lld2ljelwiLFxuICAgIFwiRHlldHRcIixcbiAgICBcIkR5bHVzXCIsXG4gICAgXCJEw6RjaGVydFwiLFxuICAgIFwiRMO2YmVsXCIsXG4gICAgXCJEw7ZyaW5nXCIsXG4gICAgXCJEw7ZybmVyXCIsXG4gICAgXCJEw7ZycmVcIixcbiAgICBcIkTDvGNrXCIsXG4gICAgXCJFYmVyaGFyZFwiLFxuICAgIFwiRWJlcmhhcmR0XCIsXG4gICAgXCJFY2tlclwiLFxuICAgIFwiRWNraGFyZHRcIixcbiAgICBcIkVkb3JoXCIsXG4gICAgXCJFZmZsZXJcIixcbiAgICBcIkVnZ2VubXVlbGxlclwiLFxuICAgIFwiRWhtXCIsXG4gICAgXCJFaG1hbm5cIixcbiAgICBcIkVocmlnXCIsXG4gICAgXCJFaWNoXCIsXG4gICAgXCJFaWNobWFublwiLFxuICAgIFwiRWlmZXJ0XCIsXG4gICAgXCJFaW5lcnRcIixcbiAgICBcIkVpc2VubGF1ZXJcIixcbiAgICBcIkVrcG9cIixcbiAgICBcIkVsYmVcIixcbiAgICBcIkVsZXl0aFwiLFxuICAgIFwiRWxzc1wiLFxuICAgIFwiRW1lcnRcIixcbiAgICBcIkVtbWVsbWFublwiLFxuICAgIFwiRW5kZXJcIixcbiAgICBcIkVuZ2VsXCIsXG4gICAgXCJFbmdlbGVuXCIsXG4gICAgXCJFbmdlbG1hbm5cIixcbiAgICBcIkVwbGluaXVzXCIsXG4gICAgXCJFcmRtYW5uXCIsXG4gICAgXCJFcmhhcmR0XCIsXG4gICAgXCJFcmxlaVwiLFxuICAgIFwiRXJtXCIsXG4gICAgXCJFcm5zdFwiLFxuICAgIFwiRXJ0bFwiLFxuICAgIFwiRXJ3ZXNcIixcbiAgICBcIkVzZW53ZWluXCIsXG4gICAgXCJFc3NlclwiLFxuICAgIFwiRXZlcnNcIixcbiAgICBcIkV2ZXJ0c1wiLFxuICAgIFwiRXdhbGRcIixcbiAgICBcIkZhaG5lclwiLFxuICAgIFwiRmFsbGVyXCIsXG4gICAgXCJGYWx0ZXJcIixcbiAgICBcIkZhcmJlclwiLFxuICAgIFwiRmFzc2JlbmRlclwiLFxuICAgIFwiRmF1bGhhYmVyXCIsXG4gICAgXCJGZWhyaWdcIixcbiAgICBcIkZlbGRcIixcbiAgICBcIkZlbGtlXCIsXG4gICAgXCJGZWxsZXJcIixcbiAgICBcIkZlbm5lclwiLFxuICAgIFwiRmVuc2tlXCIsXG4gICAgXCJGZXVlcmJhY2hcIixcbiAgICBcIkZpZXR6XCIsXG4gICAgXCJGaWdsXCIsXG4gICAgXCJGaWd1cmFcIixcbiAgICBcIkZpbGlwb3dza2lcIixcbiAgICBcIkZpbHNpbmdlclwiLFxuICAgIFwiRmluY2tlXCIsXG4gICAgXCJGaW5rXCIsXG4gICAgXCJGaW5rZVwiLFxuICAgIFwiRmlzY2hlclwiLFxuICAgIFwiRml0c2NoZW5cIixcbiAgICBcIkZsZWlzY2hlclwiLFxuICAgIFwiRmxlaXNjaG1hbm5cIixcbiAgICBcIkZsb2RlclwiLFxuICAgIFwiRmxvcmN6YWtcIixcbiAgICBcIkZsb3JlXCIsXG4gICAgXCJGbG90dG1hbm5cIixcbiAgICBcIkZvcmtlbFwiLFxuICAgIFwiRm9yc3RcIixcbiAgICBcIkZyYWhtZWtlXCIsXG4gICAgXCJGcmFua1wiLFxuICAgIFwiRnJhbmtlXCIsXG4gICAgXCJGcmFudGFcIixcbiAgICBcIkZyYW50elwiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyYW56aXNcIixcbiAgICBcIkZyYW56bWFublwiLFxuICAgIFwiRnJhdWVuXCIsXG4gICAgXCJGcmF1ZW5kb3JmXCIsXG4gICAgXCJGcmVpZ2FuZ1wiLFxuICAgIFwiRnJlaW1hbm5cIixcbiAgICBcIkZyZWltdXRoXCIsXG4gICAgXCJGcmVpc2VuXCIsXG4gICAgXCJGcmVuemVsXCIsXG4gICAgXCJGcmV5XCIsXG4gICAgXCJGcmlja2VcIixcbiAgICBcIkZyaWVkXCIsXG4gICAgXCJGcmllZGVrXCIsXG4gICAgXCJGcmllZGVuYmVyZ1wiLFxuICAgIFwiRnJpZWRtYW5uXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaWVzc1wiLFxuICAgIFwiRnJpc2NoXCIsXG4gICAgXCJGcm9oblwiLFxuICAgIFwiRnJvc2NoXCIsXG4gICAgXCJGdWNoc1wiLFxuICAgIFwiRnVobGJyw7xnZ2VcIixcbiAgICBcIkZ1c2VuaWdcIixcbiAgICBcIkZ1c3RcIixcbiAgICBcIkbDtnJzdGVyXCIsXG4gICAgXCJHYWJhXCIsXG4gICAgXCJHYWJpdXNcIixcbiAgICBcIkdhYmxlclwiLFxuICAgIFwiR2Fkc2NoaWV3XCIsXG4gICAgXCJHYWtzdMOkZHRlclwiLFxuICAgIFwiR2FsYW5kZXJcIixcbiAgICBcIkdhbWxpblwiLFxuICAgIFwiR2FtcGVyXCIsXG4gICAgXCJHYW5nbnVzXCIsXG4gICAgXCJHYW56bWFublwiLFxuICAgIFwiR2FyYXR2YVwiLFxuICAgIFwiR2FzdFwiLFxuICAgIFwiR2FzdGVsXCIsXG4gICAgXCJHYXR6a2FcIixcbiAgICBcIkdhdWRlclwiLFxuICAgIFwiR2ViaGFyZHRcIixcbiAgICBcIkdlZXNlXCIsXG4gICAgXCJHZWhyZVwiLFxuICAgIFwiR2VocmlnXCIsXG4gICAgXCJHZWhyaW5nXCIsXG4gICAgXCJHZWhya2VcIixcbiAgICBcIkdlaWdlclwiLFxuICAgIFwiR2Vpc2xlclwiLFxuICAgIFwiR2Vpc3NsZXJcIixcbiAgICBcIkdlbGxpbmdcIixcbiAgICBcIkdlbnNcIixcbiAgICBcIkdlcmJlbm5vd1wiLFxuICAgIFwiR2VyZGVsXCIsXG4gICAgXCJHZXJoYXJkdFwiLFxuICAgIFwiR2Vyc2NobGVyXCIsXG4gICAgXCJHZXJzb25cIixcbiAgICBcIkdlc2VsbFwiLFxuICAgIFwiR2V5ZXJcIixcbiAgICBcIkdoaXJtYWlcIixcbiAgICBcIkdob3NoXCIsXG4gICAgXCJHaWVobFwiLFxuICAgIFwiR2llcmlzY2hcIixcbiAgICBcIkdpZXNhXCIsXG4gICAgXCJHaWVzY2hlXCIsXG4gICAgXCJHaWxkZVwiLFxuICAgIFwiR2xhdHRpbmdcIixcbiAgICBcIkdvZWJlbFwiLFxuICAgIFwiR29lZGlja2VcIixcbiAgICBcIkdvbGRiZWNrXCIsXG4gICAgXCJHb2xkZnVzc1wiLFxuICAgIFwiR29sZGthbXBcIixcbiAgICBcIkdvbGRrw7xobGVcIixcbiAgICBcIkdvbGxlclwiLFxuICAgIFwiR29sbGluZ1wiLFxuICAgIFwiR29sbG5vd1wiLFxuICAgIFwiR29sb21za2lcIixcbiAgICBcIkdvbWJlcnRcIixcbiAgICBcIkdvdHRoYXJkdFwiLFxuICAgIFwiR290dHNjaGFsa1wiLFxuICAgIFwiR290elwiLFxuICAgIFwiR295XCIsXG4gICAgXCJHcmFkemtpXCIsXG4gICAgXCJHcmFmXCIsXG4gICAgXCJHcmFtc1wiLFxuICAgIFwiR3Jhc3NlXCIsXG4gICAgXCJHcmF0emt5XCIsXG4gICAgXCJHcmF1XCIsXG4gICAgXCJHcmViXCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZ2VyXCIsXG4gICAgXCJHcmVpdGhhbm5lclwiLFxuICAgIFwiR3Jlc2NobmVyXCIsXG4gICAgXCJHcmllbVwiLFxuICAgIFwiR3JpZXNlXCIsXG4gICAgXCJHcmltbVwiLFxuICAgIFwiR3JvbWlzY2hcIixcbiAgICBcIkdyb3NzXCIsXG4gICAgXCJHcm9zc2VyXCIsXG4gICAgXCJHcm9zc2hlaW1cIixcbiAgICBcIkdyb3Nza29wZlwiLFxuICAgIFwiR3JvdGhhdXNcIixcbiAgICBcIkdyb3Roa29wcFwiLFxuICAgIFwiR3JvdGtlXCIsXG4gICAgXCJHcnViZVwiLFxuICAgIFwiR3J1YmVyXCIsXG4gICAgXCJHcnVuZG1hbm5cIixcbiAgICBcIkdydW5pbmdcIixcbiAgICBcIkdydXN6ZWNraVwiLFxuICAgIFwiR3LDtnNzXCIsXG4gICAgXCJHcsO2dHppbmdlclwiLFxuICAgIFwiR3LDvG5cIixcbiAgICBcIkdyw7xuZXJcIixcbiAgICBcIkd1bW1lbHRcIixcbiAgICBcIkd1bmtlbFwiLFxuICAgIFwiR3VudGhlclwiLFxuICAgIFwiR3V0amFoclwiLFxuICAgIFwiR3V0b3dpY3pcIixcbiAgICBcIkd1dHNjaGFua1wiLFxuICAgIFwiR8O2YmVsXCIsXG4gICAgXCJHw7Zja2VyaXR6XCIsXG4gICAgXCJHw7ZobGVyXCIsXG4gICAgXCJHw7ZybGljaFwiLFxuICAgIFwiR8O2cm1lclwiLFxuICAgIFwiR8O2dHpcIixcbiAgICBcIkfDtnR6ZWxtYW5uXCIsXG4gICAgXCJHw7xsZGVtZWlzdGVyXCIsXG4gICAgXCJHw7xudGhlclwiLFxuICAgIFwiR8O8bnpcIixcbiAgICBcIkfDvHJiaWdcIixcbiAgICBcIkhhYWNrXCIsXG4gICAgXCJIYWFmXCIsXG4gICAgXCJIYWJlbFwiLFxuICAgIFwiSGFjaGVcIixcbiAgICBcIkhhY2tidXNjaFwiLFxuICAgIFwiSGFja2VsYnVzY2hcIixcbiAgICBcIkhhZGZpZWxkXCIsXG4gICAgXCJIYWR3aWNoXCIsXG4gICAgXCJIYWZlcmthbXBcIixcbiAgICBcIkhhaG5cIixcbiAgICBcIkhhamVrXCIsXG4gICAgXCJIYWxsbWFublwiLFxuICAgIFwiSGFtYW5uXCIsXG4gICAgXCJIYW5lbmJlcmdlclwiLFxuICAgIFwiSGFubmVja2VyXCIsXG4gICAgXCJIYW5uaXNrZVwiLFxuICAgIFwiSGFuc2VuXCIsXG4gICAgXCJIYXJkeVwiLFxuICAgIFwiSGFyZ2Fzc2VyXCIsXG4gICAgXCJIYXJtc1wiLFxuICAgIFwiSGFybmFwcFwiLFxuICAgIFwiSGFydGVyXCIsXG4gICAgXCJIYXJ0aW5nXCIsXG4gICAgXCJIYXJ0bGllYlwiLFxuICAgIFwiSGFydG1hbm5cIixcbiAgICBcIkhhcnR3aWdcIixcbiAgICBcIkhhcnR6XCIsXG4gICAgXCJIYXNjaGtlXCIsXG4gICAgXCJIYXNsZXJcIixcbiAgICBcIkhhc3NlXCIsXG4gICAgXCJIYXNzZmVsZFwiLFxuICAgIFwiSGF1Z1wiLFxuICAgIFwiSGF1a2VcIixcbiAgICBcIkhhdXB0XCIsXG4gICAgXCJIYXZlcm5leVwiLFxuICAgIFwiSGViZXJzdHJlaXRcIixcbiAgICBcIkhlY2hsZXJcIixcbiAgICBcIkhlY2h0XCIsXG4gICAgXCJIZWNrXCIsXG4gICAgXCJIZWRlcm1hbm5cIixcbiAgICBcIkhlaGxcIixcbiAgICBcIkhlaWRlbG1hbm5cIixcbiAgICBcIkhlaWRsZXJcIixcbiAgICBcIkhlaW5lbWFublwiLFxuICAgIFwiSGVpbmlnXCIsXG4gICAgXCJIZWlua2VcIixcbiAgICBcIkhlaW5yaWNoXCIsXG4gICAgXCJIZWluemVcIixcbiAgICBcIkhlaXNlclwiLFxuICAgIFwiSGVpc3RcIixcbiAgICBcIkhlbGxtYW5uXCIsXG4gICAgXCJIZWxtXCIsXG4gICAgXCJIZWxta2VcIixcbiAgICBcIkhlbHBsaW5nXCIsXG4gICAgXCJIZW5nbWl0aFwiLFxuICAgIFwiSGVua2VsXCIsXG4gICAgXCJIZW5uZXNcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIZW5zZVwiLFxuICAgIFwiSGVuc2VsXCIsXG4gICAgXCJIZW50ZWxcIixcbiAgICBcIkhlbnRzY2hlbFwiLFxuICAgIFwiSGVudHNjaGtlXCIsXG4gICAgXCJIZXBwZXJsZVwiLFxuICAgIFwiSGVyYmVyZ2VyXCIsXG4gICAgXCJIZXJicmFuZFwiLFxuICAgIFwiSGVyaW5nXCIsXG4gICAgXCJIZXJtYW5uXCIsXG4gICAgXCJIZXJtZWNrZVwiLFxuICAgIFwiSGVybXNcIixcbiAgICBcIkhlcm9sZFwiLFxuICAgIFwiSGVycm1hbm5cIixcbiAgICBcIkhlcnNjaG1hbm5cIixcbiAgICBcIkhlcnRlbFwiLFxuICAgIFwiSGVyd2VnXCIsXG4gICAgXCJIZXJ3aWdcIixcbiAgICBcIkhlcnplbmJlcmdcIixcbiAgICBcIkhlc3NcIixcbiAgICBcIkhlc3NlXCIsXG4gICAgXCJIZXNzZWtcIixcbiAgICBcIkhlc3NsZXJcIixcbiAgICBcIkhldHpsZXJcIixcbiAgICBcIkhldWNrXCIsXG4gICAgXCJIZXlkZW3DvGxsZXJcIixcbiAgICBcIkhpZWJsXCIsXG4gICAgXCJIaWxkZWJyYW5kXCIsXG4gICAgXCJIaWxkZW5icmFuZFwiLFxuICAgIFwiSGlsZ2VuZG9yZlwiLFxuICAgIFwiSGlsbGFyZFwiLFxuICAgIFwiSGlsbGVyXCIsXG4gICAgXCJIaW5nc2VuXCIsXG4gICAgXCJIaW5nc3RcIixcbiAgICBcIkhpbnJpY2hzXCIsXG4gICAgXCJIaXJzY2hcIixcbiAgICBcIkhpcnNjaGJlcmdcIixcbiAgICBcIkhpcnRcIixcbiAgICBcIkhvZGVhXCIsXG4gICAgXCJIb2ZmbWFuXCIsXG4gICAgXCJIb2ZmbWFublwiLFxuICAgIFwiSG9mbWFublwiLFxuICAgIFwiSG9oZW5iZXJnZXJcIixcbiAgICBcIkhvaGxcIixcbiAgICBcIkhvaG5cIixcbiAgICBcIkhvaG5oZWlzZXJcIixcbiAgICBcIkhvbGRcIixcbiAgICBcIkhvbGR0XCIsXG4gICAgXCJIb2xpbnNraVwiLFxuICAgIFwiSG9sbFwiLFxuICAgIFwiSG9sdGZyZXRlclwiLFxuICAgIFwiSG9selwiLFxuICAgIFwiSG9semRlcHBlXCIsXG4gICAgXCJIb2x6bmVyXCIsXG4gICAgXCJIb21tZWxcIixcbiAgICBcIkhvbnpcIixcbiAgICBcIkhvb3NzXCIsXG4gICAgXCJIb3BwZVwiLFxuICAgIFwiSG9yYWtcIixcbiAgICBcIkhvcm5cIixcbiAgICBcIkhvcm5hXCIsXG4gICAgXCJIb3JudW5nXCIsXG4gICAgXCJIb3J0XCIsXG4gICAgXCJIb3dhcmRcIixcbiAgICBcIkh1YmVyXCIsXG4gICAgXCJIdWNrZXN0ZWluXCIsXG4gICAgXCJIdWRha1wiLFxuICAgIFwiSHVlYmVsXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJIdWhuXCIsXG4gICAgXCJIdWpvXCIsXG4gICAgXCJIdWtlXCIsXG4gICAgXCJIdWxzXCIsXG4gICAgXCJIdW1iZXJ0XCIsXG4gICAgXCJIdW5la2VcIixcbiAgICBcIkh1dGhcIixcbiAgICBcIkjDpGJlclwiLFxuICAgIFwiSMOkZm5lclwiLFxuICAgIFwiSMO2Y2tlXCIsXG4gICAgXCJIw7ZmdFwiLFxuICAgIFwiSMO2aG5lXCIsXG4gICAgXCJIw7ZuaWdcIixcbiAgICBcIkjDtnJkdFwiLFxuICAgIFwiSMO8YmVuYmVja2VyXCIsXG4gICAgXCJIw7xibFwiLFxuICAgIFwiSMO8Ym5lclwiLFxuICAgIFwiSMO8Z2VsXCIsXG4gICAgXCJIw7x0dGNoZXJcIixcbiAgICBcIkjDvHR0ZXJcIixcbiAgICBcIkliZVwiLFxuICAgIFwiSWhseVwiLFxuICAgIFwiSWxsaW5nXCIsXG4gICAgXCJJc2FrXCIsXG4gICAgXCJJc2VrZW5tZWllclwiLFxuICAgIFwiSXR0XCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYWd1c2NoXCIsXG4gICAgXCJKYWhuXCIsXG4gICAgXCJKYWhua2VcIixcbiAgICBcIkpha29ic1wiLFxuICAgIFwiSmFrdWJjenlrXCIsXG4gICAgXCJKYW1ib3JcIixcbiAgICBcIkphbXJvenlcIixcbiAgICBcIkphbmRlclwiLFxuICAgIFwiSmFuaWNoXCIsXG4gICAgXCJKYW5rZVwiLFxuICAgIFwiSmFuc2VuXCIsXG4gICAgXCJKYXJldHNcIixcbiAgICBcIkphcm9zXCIsXG4gICAgXCJKYXNpbnNraVwiLFxuICAgIFwiSmFzcGVyXCIsXG4gICAgXCJKZWdvcm92XCIsXG4gICAgXCJKZWxsaW5naGF1c1wiLFxuICAgIFwiSmVvcmdhXCIsXG4gICAgXCJKZXJzY2hhYmVrXCIsXG4gICAgXCJKZXNzXCIsXG4gICAgXCJKb2huXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9zc2FcIixcbiAgICBcIkp1Y2tlblwiLFxuICAgIFwiSnVuZ1wiLFxuICAgIFwiSnVuZ2JsdXRoXCIsXG4gICAgXCJKdW5ndG9uXCIsXG4gICAgXCJKdXN0XCIsXG4gICAgXCJKw7xyZ2Vuc1wiLFxuICAgIFwiS2Fjem1hcmVrXCIsXG4gICAgXCJLYWVzbWFjaGVyXCIsXG4gICAgXCJLYWhsXCIsXG4gICAgXCJLYWhsZXJ0XCIsXG4gICAgXCJLYWhsZXNcIixcbiAgICBcIkthaGxtZXllclwiLFxuICAgIFwiS2Fpc2VyXCIsXG4gICAgXCJLYWxpbm93c2tpXCIsXG4gICAgXCJLYWxsYWJpc1wiLFxuICAgIFwiS2FsbGVuc2VlXCIsXG4gICAgXCJLYW1wZlwiLFxuICAgIFwiS2FtcHNjaHVsdGVcIixcbiAgICBcIkthcHBlXCIsXG4gICAgXCJLYXBwbGVyXCIsXG4gICAgXCJLYXJob2ZmXCIsXG4gICAgXCJLYXJyYXNzXCIsXG4gICAgXCJLYXJzdFwiLFxuICAgIFwiS2Fyc3RlblwiLFxuICAgIFwiS2FydXNcIixcbiAgICBcIkthc3NcIixcbiAgICBcIkthc3RlblwiLFxuICAgIFwiS2FzdG5lclwiLFxuICAgIFwiS2F0emluc2tpXCIsXG4gICAgXCJLYXVmbWFublwiLFxuICAgIFwiS2F1bFwiLFxuICAgIFwiS2F1c2VtYW5uXCIsXG4gICAgXCJLYXdvaGxcIixcbiAgICBcIkthem1hcmVrXCIsXG4gICAgXCJLZWR6aWVyc2tpXCIsXG4gICAgXCJLZWlsXCIsXG4gICAgXCJLZWluZXJcIixcbiAgICBcIktlbGxlclwiLFxuICAgIFwiS2VsbVwiLFxuICAgIFwiS2VtcGVcIixcbiAgICBcIktlbXBlclwiLFxuICAgIFwiS2VtcHRlclwiLFxuICAgIFwiS2VybFwiLFxuICAgIFwiS2VyblwiLFxuICAgIFwiS2Vzc2VscmluZ1wiLFxuICAgIFwiS2Vzc2Vsc2NobMOkZ2VyXCIsXG4gICAgXCJLZXR0ZVwiLFxuICAgIFwiS2V0dGVuaXNcIixcbiAgICBcIktldXRlbFwiLFxuICAgIFwiS2lja1wiLFxuICAgIFwiS2llc3NsaW5nXCIsXG4gICAgXCJLaW5hZGV0ZXJcIixcbiAgICBcIktpbnplbFwiLFxuICAgIFwiS2luenlcIixcbiAgICBcIktpcmNoXCIsXG4gICAgXCJLaXJzdFwiLFxuICAgIFwiS2lzYWJha2FcIixcbiAgICBcIktsYWFzXCIsXG4gICAgXCJLbGFidWhuXCIsXG4gICAgXCJLbGFwcGVyXCIsXG4gICAgXCJLbGF1ZGVyXCIsXG4gICAgXCJLbGF1c1wiLFxuICAgIFwiS2xlZWJlcmdcIixcbiAgICBcIktsZWliZXJcIixcbiAgICBcIktsZWluXCIsXG4gICAgXCJLbGVpbmVydFwiLFxuICAgIFwiS2xlaW5pbmdlclwiLFxuICAgIFwiS2xlaW5tYW5uXCIsXG4gICAgXCJLbGVpbnN0ZXViZXJcIixcbiAgICBcIktsZWlzc1wiLFxuICAgIFwiS2xlbW1lXCIsXG4gICAgXCJLbGltY3pha1wiLFxuICAgIFwiS2xpbmdlclwiLFxuICAgIFwiS2xpbmtcIixcbiAgICBcIktsb3BzY2hcIixcbiAgICBcIktsb3NlXCIsXG4gICAgXCJLbG9zc1wiLFxuICAgIFwiS2x1Z2VcIixcbiAgICBcIktsdXdlXCIsXG4gICAgXCJLbmFiZVwiLFxuICAgIFwiS25laWZlbFwiLFxuICAgIFwiS25ldHNjaFwiLFxuICAgIFwiS25pZXNcIixcbiAgICBcIktuaXBwZWxcIixcbiAgICBcIktub2JlbFwiLFxuICAgIFwiS25vYmxpY2hcIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJLbm9yclwiLFxuICAgIFwiS25vcnNjaGVpZHRcIixcbiAgICBcIktudXRcIixcbiAgICBcIktvYnNcIixcbiAgICBcIktvY2hcIixcbiAgICBcIktvY2hhblwiLFxuICAgIFwiS29ja1wiLFxuICAgIFwiS29jenVsbGFcIixcbiAgICBcIktvZGVyaXNjaFwiLFxuICAgIFwiS29laGxcIixcbiAgICBcIktvZWhsZXJcIixcbiAgICBcIktvZW5pZ1wiLFxuICAgIFwiS29lc3RlclwiLFxuICAgIFwiS29mZmVyc2NobGFnZXJcIixcbiAgICBcIktvaGFcIixcbiAgICBcIktvaGxlXCIsXG4gICAgXCJLb2hsbWFublwiLFxuICAgIFwiS29obmxlXCIsXG4gICAgXCJLb2hydFwiLFxuICAgIFwiS29qXCIsXG4gICAgXCJLb2xiXCIsXG4gICAgXCJLb2xlaXNraVwiLFxuICAgIFwiS29sb2thc1wiLFxuICAgIFwiS29tb2xsXCIsXG4gICAgXCJLb25pZWN6bnlcIixcbiAgICBcIktvbmlnXCIsXG4gICAgXCJLb25vd1wiLFxuICAgIFwiS29ueWFcIixcbiAgICBcIktvb2JcIixcbiAgICBcIktvcGZcIixcbiAgICBcIktvc2Vua293XCIsXG4gICAgXCJLb3N0ZXJcIixcbiAgICBcIktvc3pld3NraVwiLFxuICAgIFwiS291YmFhXCIsXG4gICAgXCJLb3ZhY3NcIixcbiAgICBcIktvd2FsaWNrXCIsXG4gICAgXCJLb3dhbGluc2tpXCIsXG4gICAgXCJLb3pha2lld2ljelwiLFxuICAgIFwiS3JhYmJlXCIsXG4gICAgXCJLcmFmdFwiLFxuICAgIFwiS3JhbFwiLFxuICAgIFwiS3JhbWVyXCIsXG4gICAgXCJLcmF1ZWxcIixcbiAgICBcIktyYXVzXCIsXG4gICAgXCJLcmF1c2VcIixcbiAgICBcIktyYXVzcGVcIixcbiAgICBcIktyZWJcIixcbiAgICBcIktyZWJzXCIsXG4gICAgXCJLcmVpc3NpZ1wiLFxuICAgIFwiS3Jlc3NlXCIsXG4gICAgXCJLcmV1dHpcIixcbiAgICBcIktyaWVnZXJcIixcbiAgICBcIktyaXBwbmVyXCIsXG4gICAgXCJLcm9kaW5nZXJcIixcbiAgICBcIktyb2huXCIsXG4gICAgXCJLcm9sXCIsXG4gICAgXCJLcm9uXCIsXG4gICAgXCJLcnVlZ2VyXCIsXG4gICAgXCJLcnVnXCIsXG4gICAgXCJLcnVnZXJcIixcbiAgICBcIktydWxsXCIsXG4gICAgXCJLcnVzY2hpbnNraVwiLFxuICAgIFwiS3LDpG1lclwiLFxuICAgIFwiS3LDtmNrZXJ0XCIsXG4gICAgXCJLcsO2Z2VyXCIsXG4gICAgXCJLcsO8Z2VyXCIsXG4gICAgXCJLdWJlcmFcIixcbiAgICBcIkt1ZmFobFwiLFxuICAgIFwiS3VobGVlXCIsXG4gICAgXCJLdWhuZW5cIixcbiAgICBcIkt1bGltYW5uXCIsXG4gICAgXCJLdWxtYVwiLFxuICAgIFwiS3VtYmVybnVzc1wiLFxuICAgIFwiS3VtbWxlXCIsXG4gICAgXCJLdW56XCIsXG4gICAgXCJLdXBmZXJcIixcbiAgICBcIkt1cHByaW9uXCIsXG4gICAgXCJLdXByaW9uXCIsXG4gICAgXCJLdXJuaWNraVwiLFxuICAgIFwiS3VycmF0XCIsXG4gICAgXCJLdXJzY2hpbGdlblwiLFxuICAgIFwiS3VzY2hld2l0elwiLFxuICAgIFwiS3VzY2htYW5uXCIsXG4gICAgXCJLdXNrZVwiLFxuICAgIFwiS3VzdGVybWFublwiLFxuICAgIFwiS3V0c2NoZXJhdWVyXCIsXG4gICAgXCJLdXR6bmVyXCIsXG4gICAgXCJLd2Fkd29cIixcbiAgICBcIkvDpGhsZXJcIixcbiAgICBcIkvDpHRoZXJcIixcbiAgICBcIkvDtmhsZXJcIixcbiAgICBcIkvDtmhyYnLDvGNrXCIsXG4gICAgXCJLw7ZocmVcIixcbiAgICBcIkvDtmxvdHplaVwiLFxuICAgIFwiS8O2bmlnXCIsXG4gICAgXCJLw7ZwZXJuaWNrXCIsXG4gICAgXCJLw7ZzZW9nbHVcIixcbiAgICBcIkvDumhuXCIsXG4gICAgXCJLw7pobmVydFwiLFxuICAgIFwiS8O8aG5cIixcbiAgICBcIkvDvGhuZWxcIixcbiAgICBcIkvDvGhuZW11bmRcIixcbiAgICBcIkvDvGhuZXJ0XCIsXG4gICAgXCJLw7xobmtlXCIsXG4gICAgXCJLw7xzdGVyc1wiLFxuICAgIFwiS8O8dGVyXCIsXG4gICAgXCJMYWFja1wiLFxuICAgIFwiTGFja1wiLFxuICAgIFwiTGFkZXdpZ1wiLFxuICAgIFwiTGFrb215XCIsXG4gICAgXCJMYW1tZXJ0XCIsXG4gICAgXCJMYW1vc1wiLFxuICAgIFwiTGFuZG1hbm5cIixcbiAgICBcIkxhbmdcIixcbiAgICBcIkxhbmdlXCIsXG4gICAgXCJMYW5nZmVsZFwiLFxuICAgIFwiTGFuZ2hpcnRcIixcbiAgICBcIkxhbmlnXCIsXG4gICAgXCJMYXVja25lclwiLFxuICAgIFwiTGF1aW5nZXJcIixcbiAgICBcIkxhdXLDqW5cIixcbiAgICBcIkxhdXNlY2tlclwiLFxuICAgIFwiTGF1eFwiLFxuICAgIFwiTGF3c1wiLFxuICAgIFwiTGF4XCIsXG4gICAgXCJMZWJlcmVyXCIsXG4gICAgXCJMZWhtYW5uXCIsXG4gICAgXCJMZWhuZXJcIixcbiAgICBcIkxlaWJvbGRcIixcbiAgICBcIkxlaWRlXCIsXG4gICAgXCJMZWltYmFjaFwiLFxuICAgIFwiTGVpcG9sZFwiLFxuICAgIFwiTGVpc3RcIixcbiAgICBcIkxlaXRlclwiLFxuICAgIFwiTGVpdGVyaXR6XCIsXG4gICAgXCJMZWl0aGVpbVwiLFxuICAgIFwiTGVpd2VzbWVpZXJcIixcbiAgICBcIkxlbmZlcnNcIixcbiAgICBcIkxlbmtcIixcbiAgICBcIkxlbnpcIixcbiAgICBcIkxlbnplblwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJMZXB0aGluXCIsXG4gICAgXCJMZXNjaFwiLFxuICAgIFwiTGVzY2huaWtcIixcbiAgICBcIkxldHplbHRlclwiLFxuICAgIFwiTGV3aW5cIixcbiAgICBcIkxld2tlXCIsXG4gICAgXCJMZXlja2VzXCIsXG4gICAgXCJMZ1wiLFxuICAgIFwiTGljaHRlbmZlbGRcIixcbiAgICBcIkxpY2h0ZW5oYWdlblwiLFxuICAgIFwiTGljaHRsXCIsXG4gICAgXCJMaWViYWNoXCIsXG4gICAgXCJMaWViZVwiLFxuICAgIFwiTGllYmljaFwiLFxuICAgIFwiTGllYm9sZFwiLFxuICAgIFwiTGllZGVyXCIsXG4gICAgXCJMaWVuc2jDtmZ0XCIsXG4gICAgXCJMaW5kZW5cIixcbiAgICBcIkxpbmRlbmJlcmdcIixcbiAgICBcIkxpbmRlbm1heWVyXCIsXG4gICAgXCJMaW5kbmVyXCIsXG4gICAgXCJMaW5rZVwiLFxuICAgIFwiTGlubmVuYmF1bVwiLFxuICAgIFwiTGlwcGVcIixcbiAgICBcIkxpcHNrZVwiLFxuICAgIFwiTGlwdXNcIixcbiAgICBcIkxpc2Noa2FcIixcbiAgICBcIkxvYmluZ2VyXCIsXG4gICAgXCJMb2dzY2hcIixcbiAgICBcIkxvaG1hbm5cIixcbiAgICBcIkxvaHJlXCIsXG4gICAgXCJMb2hzZVwiLFxuICAgIFwiTG9rYXJcIixcbiAgICBcIkxvb2dlblwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3NjaFwiLFxuICAgIFwiTG9za2FcIixcbiAgICBcIkxvdHRcIixcbiAgICBcIkxveVwiLFxuICAgIFwiTHViaW5hXCIsXG4gICAgXCJMdWRvbGZcIixcbiAgICBcIkx1ZmZ0XCIsXG4gICAgXCJMdWtvc2NoZWtcIixcbiAgICBcIkx1dGplXCIsXG4gICAgXCJMdXR6XCIsXG4gICAgXCJMw7ZzZXJcIixcbiAgICBcIkzDtndhXCIsXG4gICAgXCJMw7xia2VcIixcbiAgICBcIk1hYWtcIixcbiAgICBcIk1hY3pleVwiLFxuICAgIFwiTWFkZXR6a3lcIixcbiAgICBcIk1hZHVidWtvXCIsXG4gICAgXCJNYWlcIixcbiAgICBcIk1haWVyXCIsXG4gICAgXCJNYWlzY2hcIixcbiAgICBcIk1hbGVrXCIsXG4gICAgXCJNYWxrdXNcIixcbiAgICBcIk1hbGxtYW5uXCIsXG4gICAgXCJNYWx1Y2hhXCIsXG4gICAgXCJNYW5uc1wiLFxuICAgIFwiTWFuelwiLFxuICAgIFwiTWFyYWhyZW5zXCIsXG4gICAgXCJNYXJjaGV3c2tpXCIsXG4gICAgXCJNYXJnaXNcIixcbiAgICBcIk1hcmtvd3NraVwiLFxuICAgIFwiTWFybFwiLFxuICAgIFwiTWFybmVyXCIsXG4gICAgXCJNYXJxdWFydFwiLFxuICAgIFwiTWFyc2NoZWtcIixcbiAgICBcIk1hcnRlbFwiLFxuICAgIFwiTWFydGVuXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIk1hcnhcIixcbiAgICBcIk1hcnhlblwiLFxuICAgIFwiTWF0aGVzXCIsXG4gICAgXCJNYXRoaWVzXCIsXG4gICAgXCJNYXRoaXN6aWtcIixcbiAgICBcIk1hdHNjaGtlXCIsXG4gICAgXCJNYXR0ZXJuXCIsXG4gICAgXCJNYXR0aGVzXCIsXG4gICAgXCJNYXR1bGFcIixcbiAgICBcIk1hdVwiLFxuICAgIFwiTWF1cmVyXCIsXG4gICAgXCJNYXVyb2ZmXCIsXG4gICAgXCJNYXlcIixcbiAgICBcIk1heWJhY2hcIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNZWJvbGRcIixcbiAgICBcIk1laGxcIixcbiAgICBcIk1laGxob3JuXCIsXG4gICAgXCJNZWhsb3JuXCIsXG4gICAgXCJNZWllclwiLFxuICAgIFwiTWVpc2NoXCIsXG4gICAgXCJNZWlzc25lclwiLFxuICAgIFwiTWVsb25pXCIsXG4gICAgXCJNZWx6ZXJcIixcbiAgICBcIk1lbmdhXCIsXG4gICAgXCJNZW5uZVwiLFxuICAgIFwiTWVuc2FoXCIsXG4gICAgXCJNZW5zaW5nXCIsXG4gICAgXCJNZXJrZWxcIixcbiAgICBcIk1lcnNlYnVyZ1wiLFxuICAgIFwiTWVydGVuc1wiLFxuICAgIFwiTWVzbG9oXCIsXG4gICAgXCJNZXR6Z2VyXCIsXG4gICAgXCJNZXR6bmVyXCIsXG4gICAgXCJNZXdlc1wiLFxuICAgIFwiTWV5ZXJcIixcbiAgICBcIk1pY2hhbGxla1wiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWVsa2VcIixcbiAgICBcIk1pa2l0ZW5rb1wiLFxuICAgIFwiTWlsZGVcIixcbiAgICBcIk1pbmFoXCIsXG4gICAgXCJNaW50emxhZmZcIixcbiAgICBcIk1vY2tlbmhhdXB0XCIsXG4gICAgXCJNb2VkZVwiLFxuICAgIFwiTW9lZGxcIixcbiAgICBcIk1vZWxsZXJcIixcbiAgICBcIk1vZ3VlbmFyYVwiLFxuICAgIFwiTW9oclwiLFxuICAgIFwiTW9ocmhhcmRcIixcbiAgICBcIk1vbGl0b3JcIixcbiAgICBcIk1vbGxcIixcbiAgICBcIk1vbGxlclwiLFxuICAgIFwiTW9semFuXCIsXG4gICAgXCJNb250YWdcIixcbiAgICBcIk1vb3JtYW5uXCIsXG4gICAgXCJNb3JkaG9yc3RcIixcbiAgICBcIk1vcmdlbnN0ZXJuXCIsXG4gICAgXCJNb3JoZWxmZXJcIixcbiAgICBcIk1vcml0elwiLFxuICAgIFwiTW9zZXJcIixcbiAgICBcIk1vdGNoZWJvblwiLFxuICAgIFwiTW90emVuYmLDpGNrZXJcIixcbiAgICBcIk1ydWdhbGxhXCIsXG4gICAgXCJNdWNrZW50aGFsZXJcIixcbiAgICBcIk11ZXNcIixcbiAgICBcIk11bGxlclwiLFxuICAgIFwiTXVscmFpblwiLFxuICAgIFwiTcOkY2h0aWdcIixcbiAgICBcIk3DpGRlclwiLFxuICAgIFwiTcO2Y2tzXCIsXG4gICAgXCJNw7ZnZW5idXJnXCIsXG4gICAgXCJNw7Zoc25lclwiLFxuICAgIFwiTcO2bGRuZXJcIixcbiAgICBcIk3DtmxsZW5iZWNrXCIsXG4gICAgXCJNw7ZsbGVyXCIsXG4gICAgXCJNw7ZsbGluZ2VyXCIsXG4gICAgXCJNw7Zyc2NoXCIsXG4gICAgXCJNw7xobGVpc1wiLFxuICAgIFwiTcO8bGxlclwiLFxuICAgIFwiTcO8bmNoXCIsXG4gICAgXCJOYWJlaW5cIixcbiAgICBcIk5hYm93XCIsXG4gICAgXCJOYWdlbFwiLFxuICAgIFwiTmFubmVuXCIsXG4gICAgXCJOYXN0dm9nZWxcIixcbiAgICBcIk5hdVwiLFxuICAgIFwiTmF1YmVydFwiLFxuICAgIFwiTmF1bWFublwiLFxuICAgIFwiTmVcIixcbiAgICBcIk5laW1rZVwiLFxuICAgIFwiTmVyaXVzXCIsXG4gICAgXCJOZXViYXVlclwiLFxuICAgIFwiTmV1YmVydFwiLFxuICAgIFwiTmV1ZW5kb3JmXCIsXG4gICAgXCJOZXVtYWlyXCIsXG4gICAgXCJOZXVtYW5uXCIsXG4gICAgXCJOZXVwZXJ0XCIsXG4gICAgXCJOZXVyb2hyXCIsXG4gICAgXCJOZXVzY2h3YW5kZXJcIixcbiAgICBcIk5ld3RvblwiLFxuICAgIFwiTmV5XCIsXG4gICAgXCJOaWNvbGF5XCIsXG4gICAgXCJOaWVkZXJtZWllclwiLFxuICAgIFwiTmlla2xhdXNvblwiLFxuICAgIFwiTmlrbGF1c1wiLFxuICAgIFwiTml0enNjaGVcIixcbiAgICBcIk5vYWNrXCIsXG4gICAgXCJOb2RsZXJcIixcbiAgICBcIk5vbHRlXCIsXG4gICAgXCJOb3JtYW5uXCIsXG4gICAgXCJOb3JyaXNcIixcbiAgICBcIk5vcnRob2ZmXCIsXG4gICAgXCJOb3dha1wiLFxuICAgIFwiTnVzc2JlY2tcIixcbiAgICBcIk53YWNodWt3dVwiLFxuICAgIFwiTnl0cmFcIixcbiAgICBcIk7DtmhcIixcbiAgICBcIk9iZXJlbVwiLFxuICAgIFwiT2Jlcmdmw7ZsbFwiLFxuICAgIFwiT2Jlcm1haWVyXCIsXG4gICAgXCJPY2hzXCIsXG4gICAgXCJPZXNlclwiLFxuICAgIFwiT2xicmljaFwiLFxuICAgIFwiT25uZW5cIixcbiAgICBcIk9waGV5XCIsXG4gICAgXCJPcHBvbmdcIixcbiAgICBcIk9ydGhcIixcbiAgICBcIk9ydGhtYW5uXCIsXG4gICAgXCJPc2Noa2VuYXRcIixcbiAgICBcIk9zZWlcIixcbiAgICBcIk9zZW5iZXJnXCIsXG4gICAgXCJPc3RlbmRhcnBcIixcbiAgICBcIk9zdHdhbGRcIixcbiAgICBcIk90dGVcIixcbiAgICBcIk90dG9cIixcbiAgICBcIlBhZXNsZXJcIixcbiAgICBcIlBham9ua1wiLFxuICAgIFwiUGFsbGVudGluXCIsXG4gICAgXCJQYW56aWdcIixcbiAgICBcIlBhc2Noa2VcIixcbiAgICBcIlBhdHp3YWhsXCIsXG4gICAgXCJQYXVrbmVyXCIsXG4gICAgXCJQZXNlbG1hblwiLFxuICAgIFwiUGV0ZXJcIixcbiAgICBcIlBldGVyc1wiLFxuICAgIFwiUGV0em9sZFwiLFxuICAgIFwiUGZlaWZmZXJcIixcbiAgICBcIlBmZW5uaWdcIixcbiAgICBcIlBmZXJzaWNoXCIsXG4gICAgXCJQZmluZ3N0ZW5cIixcbiAgICBcIlBmbGllZ2VyXCIsXG4gICAgXCJQZmzDvGduZXJcIixcbiAgICBcIlBoaWxpcHBcIixcbiAgICBcIlBpY2hsbWFpZXJcIixcbiAgICBcIlBpZXNrZXJcIixcbiAgICBcIlBpZXRzY2hcIixcbiAgICBcIlBpbmdwYW5rXCIsXG4gICAgXCJQaW5ub2NrXCIsXG4gICAgXCJQaXBwaWdcIixcbiAgICBcIlBpdHNjaHVnaW5cIixcbiAgICBcIlBsYW5rXCIsXG4gICAgXCJQbGFzc1wiLFxuICAgIFwiUGxhdHplclwiLFxuICAgIFwiUGxhdWtcIixcbiAgICBcIlBsYXV0elwiLFxuICAgIFwiUGxldHNjaFwiLFxuICAgIFwiUGxvdHppdHprYVwiLFxuICAgIFwiUG9laG5cIixcbiAgICBcIlBvZXNjaGxcIixcbiAgICBcIlBvZ29yemVsc2tpXCIsXG4gICAgXCJQb2hsXCIsXG4gICAgXCJQb2hsYW5kXCIsXG4gICAgXCJQb2hsZVwiLFxuICAgIFwiUG9saWZrYVwiLFxuICAgIFwiUG9saXp6aVwiLFxuICAgIFwiUG9sbG3DpGNoZXJcIixcbiAgICBcIlBvbXBcIixcbiAgICBcIlBvbml0enNjaFwiLFxuICAgIFwiUG9yc2NoZVwiLFxuICAgIFwiUG9ydGhcIixcbiAgICBcIlBvc2NobWFublwiLFxuICAgIFwiUG9zZXJcIixcbiAgICBcIlBvdHRlbFwiLFxuICAgIFwiUHJhaFwiLFxuICAgIFwiUHJhbmdlXCIsXG4gICAgXCJQcmVkaWdlclwiLFxuICAgIFwiUHJlc3NsZXJcIixcbiAgICBcIlByZXVrXCIsXG4gICAgXCJQcmV1c3NcIixcbiAgICBcIlByZXlcIixcbiAgICBcIlByaWVtZXJcIixcbiAgICBcIlByb3NrZVwiLFxuICAgIFwiUHVzY2hcIixcbiAgICBcIlDDtmNoZVwiLFxuICAgIFwiUMO2Z2VcIixcbiAgICBcIlJhYWJlXCIsXG4gICAgXCJSYWJlbnN0ZWluXCIsXG4gICAgXCJSYWNoXCIsXG4gICAgXCJSYWR0a2VcIixcbiAgICBcIlJhaG5cIixcbiAgICBcIlJhbmZ0bFwiLFxuICAgIFwiUmFuZ2VuXCIsXG4gICAgXCJSYW56XCIsXG4gICAgXCJSYXBwXCIsXG4gICAgXCJSYXRoXCIsXG4gICAgXCJSYXVcIixcbiAgICBcIlJhdWJ1Y2hcIixcbiAgICBcIlJhdWt1Y1wiLFxuICAgIFwiUmF1dGVua3JhbnpcIixcbiAgICBcIlJlaHdhZ2VuXCIsXG4gICAgXCJSZWliZXJcIixcbiAgICBcIlJlaWNoYXJkdFwiLFxuICAgIFwiUmVpY2hlbFwiLFxuICAgIFwiUmVpY2hsaW5nXCIsXG4gICAgXCJSZWlmXCIsXG4gICAgXCJSZWlmZW5yYXRoXCIsXG4gICAgXCJSZWltYW5uXCIsXG4gICAgXCJSZWluYmVyZ1wiLFxuICAgIFwiUmVpbmVsdFwiLFxuICAgIFwiUmVpbmhhcmR0XCIsXG4gICAgXCJSZWlua2VcIixcbiAgICBcIlJlaXR6ZVwiLFxuICAgIFwiUmVua1wiLFxuICAgIFwiUmVudHpcIixcbiAgICBcIlJlbnpcIixcbiAgICBcIlJlcHBpblwiLFxuICAgIFwiUmVzdGxlXCIsXG4gICAgXCJSZXN0b3JmZlwiLFxuICAgIFwiUmV0emtlXCIsXG4gICAgXCJSZXViZXJcIixcbiAgICBcIlJldW1hbm5cIixcbiAgICBcIlJldXNcIixcbiAgICBcIlJldXNzXCIsXG4gICAgXCJSZXVzc2VcIixcbiAgICBcIlJoZWRlclwiLFxuICAgIFwiUmhvZGVuXCIsXG4gICAgXCJSaWNoYXJkc1wiLFxuICAgIFwiUmljaHRlclwiLFxuICAgIFwiUmllZGVsXCIsXG4gICAgXCJSaWVkaWdlclwiLFxuICAgIFwiUmllZ2VyXCIsXG4gICAgXCJSaWVrbWFublwiLFxuICAgIFwiUmllcGxcIixcbiAgICBcIlJpZXJtZWllclwiLFxuICAgIFwiUmllc3RlclwiLFxuICAgIFwiUmlldGhtw7xsbGVyXCIsXG4gICAgXCJSaWV0bcO8bGxlclwiLFxuICAgIFwiUmlldHNjaGVyXCIsXG4gICAgXCJSaW5nZWxcIixcbiAgICBcIlJpbmdlclwiLFxuICAgIFwiUmlua1wiLFxuICAgIFwiUmlwa2VuXCIsXG4gICAgXCJSaXRvc2VrXCIsXG4gICAgXCJSaXRzY2hlbFwiLFxuICAgIFwiUml0dGVyXCIsXG4gICAgXCJSaXR0d2VnXCIsXG4gICAgXCJSaXR6XCIsXG4gICAgXCJSb2JhXCIsXG4gICAgXCJSb2NrbWVpZXJcIixcbiAgICBcIlJvZGVoYXVcIixcbiAgICBcIlJvZG93c2tpXCIsXG4gICAgXCJSb2Vja2VyXCIsXG4gICAgXCJSb2dnYXR6XCIsXG4gICAgXCJSb2hsw6RuZGVyXCIsXG4gICAgXCJSb2hyZXJcIixcbiAgICBcIlJva29zc2FcIixcbiAgICBcIlJvbGVkZXJcIixcbiAgICBcIlJvbG9mZlwiLFxuICAgIFwiUm9vc1wiLFxuICAgIFwiUm9zYmFjaFwiLFxuICAgIFwiUm9zY2hpbnNreVwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiUm9zZW5hdWVyXCIsXG4gICAgXCJSb3NlbmJhdWVyXCIsXG4gICAgXCJSb3NlbnRoYWxcIixcbiAgICBcIlJvc2tzY2hcIixcbiAgICBcIlJvc3NiZXJnXCIsXG4gICAgXCJSb3NzbGVyXCIsXG4gICAgXCJSb3RoXCIsXG4gICAgXCJSb3RoZXJcIixcbiAgICBcIlJ1Y2hcIixcbiAgICBcIlJ1Y2tkZXNjaGVsXCIsXG4gICAgXCJSdW1wZlwiLFxuICAgIFwiUnVwcHJlY2h0XCIsXG4gICAgXCJSdXRoXCIsXG4gICAgXCJSeWppa2hcIixcbiAgICBcIlJ5emloXCIsXG4gICAgXCJSw6RkbGVyXCIsXG4gICAgXCJSw6RudHNjaFwiLFxuICAgIFwiUsO2ZGlnZXJcIixcbiAgICBcIlLDtnNlXCIsXG4gICAgXCJSw7Z0dGdlclwiLFxuICAgIFwiUsO8Y2tlclwiLFxuICAgIFwiUsO8ZGlnZXJcIixcbiAgICBcIlLDvHRlclwiLFxuICAgIFwiU2FjaHNlXCIsXG4gICAgXCJTYWNrXCIsXG4gICAgXCJTYWZsYW5pc1wiLFxuICAgIFwiU2FnYWZlXCIsXG4gICAgXCJTYWdvbmFzXCIsXG4gICAgXCJTYWhuZXJcIixcbiAgICBcIlNhaWxlXCIsXG4gICAgXCJTYWlsZXJcIixcbiAgICBcIlNhbG93XCIsXG4gICAgXCJTYWx6ZXJcIixcbiAgICBcIlNhbHptYW5uXCIsXG4gICAgXCJTYW1tZXJ0XCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIlNhcnZhcmlcIixcbiAgICBcIlNhdHRlbG1haWVyXCIsXG4gICAgXCJTYXVlclwiLFxuICAgIFwiU2F1ZXJsYW5kXCIsXG4gICAgXCJTYXVtd2ViZXJcIixcbiAgICBcIlNhdm9pYVwiLFxuICAgIFwiU2NjXCIsXG4gICAgXCJTY2hhY2h0XCIsXG4gICAgXCJTY2hhZWZlclwiLFxuICAgIFwiU2NoYWZmYXJ6aWtcIixcbiAgICBcIlNjaGFoYmFzaWFuXCIsXG4gICAgXCJTY2hhcmZcIixcbiAgICBcIlNjaGVkbGVyXCIsXG4gICAgXCJTY2hlZXJcIixcbiAgICBcIlNjaGVsa1wiLFxuICAgIFwiU2NoZWxsZW5iZWNrXCIsXG4gICAgXCJTY2hlbWJlcmFcIixcbiAgICBcIlNjaGVua1wiLFxuICAgIFwiU2NoZXJiYXJ0aFwiLFxuICAgIFwiU2NoZXJlclwiLFxuICAgIFwiU2NoZXJzaW5nXCIsXG4gICAgXCJTY2hlcnpcIixcbiAgICBcIlNjaGV1cmVyXCIsXG4gICAgXCJTY2hldXJpbmdcIixcbiAgICBcIlNjaGV5dHRcIixcbiAgICBcIlNjaGllbGtlXCIsXG4gICAgXCJTY2hpZXNrb3dcIixcbiAgICBcIlNjaGlsZGhhdWVyXCIsXG4gICAgXCJTY2hpbGxpbmdcIixcbiAgICBcIlNjaGltYVwiLFxuICAgIFwiU2NoaW1tZXJcIixcbiAgICBcIlNjaGluZHppZWxvcnpcIixcbiAgICBcIlNjaGlybWVyXCIsXG4gICAgXCJTY2hpcnJtZWlzdGVyXCIsXG4gICAgXCJTY2hsYWNodGVyXCIsXG4gICAgXCJTY2hsYW5nZW5cIixcbiAgICBcIlNjaGxhd2l0elwiLFxuICAgIFwiU2NobGVjaHR3ZWdcIixcbiAgICBcIlNjaGxleVwiLFxuICAgIFwiU2NobGljaHRcIixcbiAgICBcIlNjaGxpdHplclwiLFxuICAgIFwiU2NobWFsemxlXCIsXG4gICAgXCJTY2htaWRcIixcbiAgICBcIlNjaG1pZHRcIixcbiAgICBcIlNjaG1pZHRjaGVuXCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJTY2htaXR6XCIsXG4gICAgXCJTY2htdWhsXCIsXG4gICAgXCJTY2huZWlkZXJcIixcbiAgICBcIlNjaG5lbHRpbmdcIixcbiAgICBcIlNjaG5pZWRlclwiLFxuICAgIFwiU2NobmllZGVybWVpZXJcIixcbiAgICBcIlNjaG7DvHJlclwiLFxuICAgIFwiU2Nob2JlcmdcIixcbiAgICBcIlNjaG9selwiLFxuICAgIFwiU2Nob25iZXJnXCIsXG4gICAgXCJTY2hvbmRlbG1haWVyXCIsXG4gICAgXCJTY2hvcnJcIixcbiAgICBcIlNjaG90dFwiLFxuICAgIFwiU2Nob3R0bWFublwiLFxuICAgIFwiU2Nob3VyZW5cIixcbiAgICBcIlNjaHJhZGVyXCIsXG4gICAgXCJTY2hyYW1tXCIsXG4gICAgXCJTY2hyZWNrXCIsXG4gICAgXCJTY2hyZWliZXJcIixcbiAgICBcIlNjaHJlaW5lclwiLFxuICAgIFwiU2NocmVpdGVyXCIsXG4gICAgXCJTY2hyb2RlclwiLFxuICAgIFwiU2NocsO2ZGVyXCIsXG4gICAgXCJTY2h1ZXJtYW5uXCIsXG4gICAgXCJTY2h1ZmZcIixcbiAgICBcIlNjaHVoYWpcIixcbiAgICBcIlNjaHVsZHRcIixcbiAgICBcIlNjaHVsdFwiLFxuICAgIFwiU2NodWx0ZVwiLFxuICAgIFwiU2NodWx0elwiLFxuICAgIFwiU2NodWx0emVcIixcbiAgICBcIlNjaHVselwiLFxuICAgIFwiU2NodWx6ZVwiLFxuICAgIFwiU2NodW1hY2hlclwiLFxuICAgIFwiU2NodW1hbm5cIixcbiAgICBcIlNjaHVwcFwiLFxuICAgIFwiU2NodXJpXCIsXG4gICAgXCJTY2h1c3RlclwiLFxuICAgIFwiU2Nod2FiXCIsXG4gICAgXCJTY2h3YWxtXCIsXG4gICAgXCJTY2h3YW5iZWNrXCIsXG4gICAgXCJTY2h3YW5ka2VcIixcbiAgICBcIlNjaHdhbml0elwiLFxuICAgIFwiU2Nod2FydGhvZmZcIixcbiAgICBcIlNjaHdhcnR6XCIsXG4gICAgXCJTY2h3YXJ6XCIsXG4gICAgXCJTY2h3YXJ6ZXJcIixcbiAgICBcIlNjaHdhcnprb3BmXCIsXG4gICAgXCJTY2h3YXJ6bWVpZXJcIixcbiAgICBcIlNjaHdhdGxvXCIsXG4gICAgXCJTY2h3ZWlzZnVydGhcIixcbiAgICBcIlNjaHdlbm5lblwiLFxuICAgIFwiU2Nod2VyZHRuZXJcIixcbiAgICBcIlNjaHdpZGRlXCIsXG4gICAgXCJTY2h3aXJrc2NobGllc1wiLFxuICAgIFwiU2Nod3VjaG93XCIsXG4gICAgXCJTY2jDpGZlclwiLFxuICAgIFwiU2Now6RmZmVsXCIsXG4gICAgXCJTY2jDpGZmZXJcIixcbiAgICBcIlNjaMOkbmluZ1wiLFxuICAgIFwiU2Now7Zja2VsXCIsXG4gICAgXCJTY2jDtm5iYWxsXCIsXG4gICAgXCJTY2jDtm5iZWNrXCIsXG4gICAgXCJTY2jDtm5iZXJnXCIsXG4gICAgXCJTY2jDtm5lYmVja1wiLFxuICAgIFwiU2Now7ZuZW5iZXJnZXJcIixcbiAgICBcIlNjaMO2bmZlbGRcIixcbiAgICBcIlNjaMO2bmhlcnJcIixcbiAgICBcIlNjaMO2bmxlYmVcIixcbiAgICBcIlNjaMO2dHpcIixcbiAgICBcIlNjaMO8bGVyXCIsXG4gICAgXCJTY2jDvHBwZWxcIixcbiAgICBcIlNjaMO8dHpcIixcbiAgICBcIlNjaMO8dHplXCIsXG4gICAgXCJTZWVnZXJcIixcbiAgICBcIlNlZWxpZ1wiLFxuICAgIFwiU2VobHNcIixcbiAgICBcIlNlaWJvbGRcIixcbiAgICBcIlNlaWRlbFwiLFxuICAgIFwiU2VpZGVyc1wiLFxuICAgIFwiU2VpZ2VsXCIsXG4gICAgXCJTZWlsZXJcIixcbiAgICBcIlNlaXR6XCIsXG4gICAgXCJTZW1pc2NoXCIsXG4gICAgXCJTZW5rZWxcIixcbiAgICBcIlNld2FsZFwiLFxuICAgIFwiU2llYmVsXCIsXG4gICAgXCJTaWViZXJ0XCIsXG4gICAgXCJTaWVnbGluZ1wiLFxuICAgIFwiU2llbGVtYW5uXCIsXG4gICAgXCJTaWVtb25cIixcbiAgICBcIlNpZW5lclwiLFxuICAgIFwiU2lldmVyc1wiLFxuICAgIFwiU2lld2VydFwiLFxuICAgIFwiU2lobGVyXCIsXG4gICAgXCJTaWxsYWhcIixcbiAgICBcIlNpbW9uXCIsXG4gICAgXCJTaW5uaHViZXJcIixcbiAgICBcIlNpc2Noa2FcIixcbiAgICBcIlNraWJpY2tpXCIsXG4gICAgXCJTbGFkZWtcIixcbiAgICBcIlNsb3R0YVwiLFxuICAgIFwiU21pZWphXCIsXG4gICAgXCJTb2JvbGxcIixcbiAgICBcIlNva29sb3dza2lcIixcbiAgICBcIlNvbGxlclwiLFxuICAgIFwiU29sbG5lclwiLFxuICAgIFwiU29tbWVyXCIsXG4gICAgXCJTb21zc2ljaFwiLFxuICAgIFwiU29ublwiLFxuICAgIFwiU29ubmFiZW5kXCIsXG4gICAgXCJTcGFoblwiLFxuICAgIFwiU3BhbmtcIixcbiAgICBcIlNwZWxtZXllclwiLFxuICAgIFwiU3BpZWdlbGJ1cmdcIixcbiAgICBcIlNwaWVsdm9nZWxcIixcbiAgICBcIlNwaW5uZXJcIixcbiAgICBcIlNwaXR6bcO8bGxlclwiLFxuICAgIFwiU3BsaW50ZXJcIixcbiAgICBcIlNwb3JyZXJcIixcbiAgICBcIlNwcmVuZ2VyXCIsXG4gICAgXCJTcMO2dHRlbFwiLFxuICAgIFwiU3RhaGxcIixcbiAgICBcIlN0YW5nXCIsXG4gICAgXCJTdGFuZ2VyXCIsXG4gICAgXCJTdGF1c3NcIixcbiAgICBcIlN0ZWRpbmdcIixcbiAgICBcIlN0ZWZmZW5cIixcbiAgICBcIlN0ZWZmbnlcIixcbiAgICBcIlN0ZWlkbFwiLFxuICAgIFwiU3RlaWdhdWZcIixcbiAgICBcIlN0ZWluXCIsXG4gICAgXCJTdGVpbmVja2VcIixcbiAgICBcIlN0ZWluZXJ0XCIsXG4gICAgXCJTdGVpbmthbXBcIixcbiAgICBcIlN0ZWlubWV0elwiLFxuICAgIFwiU3RlbGtlbnNcIixcbiAgICBcIlN0ZW5nZWxcIixcbiAgICBcIlN0ZW5nbFwiLFxuICAgIFwiU3RlbnplbFwiLFxuICAgIFwiU3RlcGFub3ZcIixcbiAgICBcIlN0ZXBoYW5cIixcbiAgICBcIlN0ZXJuXCIsXG4gICAgXCJTdGV1a1wiLFxuICAgIFwiU3RpZWZcIixcbiAgICBcIlN0aWZlbFwiLFxuICAgIFwiU3RvbGxcIixcbiAgICBcIlN0b2xsZVwiLFxuICAgIFwiU3RvbHpcIixcbiAgICBcIlN0b3JsXCIsXG4gICAgXCJTdG9ycFwiLFxuICAgIFwiU3RvdXRqZXNkaWprXCIsXG4gICAgXCJTdHJhdG1hbm5cIixcbiAgICBcIlN0cmF1YlwiLFxuICAgIFwiU3RyYXVzYVwiLFxuICAgIFwiU3RyZWNrXCIsXG4gICAgXCJTdHJlZXNlXCIsXG4gICAgXCJTdHJlZ2VcIixcbiAgICBcIlN0cmVpdFwiLFxuICAgIFwiU3RyZWxsZXJcIixcbiAgICBcIlN0cmllZGVyXCIsXG4gICAgXCJTdHJpZXplbFwiLFxuICAgIFwiU3Ryb2dpZXNcIixcbiAgICBcIlN0cm9oc2NoYW5rXCIsXG4gICAgXCJTdHJ1bnpcIixcbiAgICBcIlN0cnV0elwiLFxuICAgIFwiU3R1YmVcIixcbiAgICBcIlN0w7Zja2VydFwiLFxuICAgIFwiU3TDtnBwbGVyXCIsXG4gICAgXCJTdMO2d2VyXCIsXG4gICAgXCJTdMO8cm1lclwiLFxuICAgIFwiU3VmZmFcIixcbiAgICBcIlN1amV3XCIsXG4gICAgXCJTdXNzbWFublwiLFxuICAgIFwiU3V0aGVcIixcbiAgICBcIlN1dHNjaGV0XCIsXG4gICAgXCJTd2lsbGltc1wiLFxuICAgIFwiU3plbmRyZWlcIixcbiAgICBcIlPDtnJlblwiLFxuICAgIFwiU8O8cnRoXCIsXG4gICAgXCJUYWZlbG1laWVyXCIsXG4gICAgXCJUYW5nXCIsXG4gICAgXCJUYXNjaGVcIixcbiAgICBcIlRhdWZyYXRzaG9mZXJcIixcbiAgICBcIlRlZ2V0aG9mXCIsXG4gICAgXCJUZWljaG1hbm5cIixcbiAgICBcIlRlcHBlclwiLFxuICAgIFwiVGVyaGVpZGVuXCIsXG4gICAgXCJUZXJsZWNraVwiLFxuICAgIFwiVGV1ZmVsXCIsXG4gICAgXCJUaGVlbGVcIixcbiAgICBcIlRoaWVrZVwiLFxuICAgIFwiVGhpbW1cIixcbiAgICBcIlRoaW9tYXNcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiVGhyaWVuZVwiLFxuICAgIFwiVGhyw6RuaGFyZHRcIixcbiAgICBcIlRodXN0XCIsXG4gICAgXCJUaHlzc2VuXCIsXG4gICAgXCJUaMO2bmVcIixcbiAgICBcIlRpZG93XCIsXG4gICAgXCJUaWVkdGtlXCIsXG4gICAgXCJUaWV0emVcIixcbiAgICBcIlRpbGduZXJcIixcbiAgICBcIlRpbGxhY2tcIixcbiAgICBcIlRpbW1lcm1hbm5cIixcbiAgICBcIlRpc2NobGVyXCIsXG4gICAgXCJUaXNjaG1hbm5cIixcbiAgICBcIlRpdHRtYW5cIixcbiAgICBcIlRpdm9udHNjaGlrXCIsXG4gICAgXCJUb25hdFwiLFxuICAgIFwiVG9ublwiLFxuICAgIFwiVHJhbXBlbGlcIixcbiAgICBcIlRyYXV0aFwiLFxuICAgIFwiVHJhdXRtYW5uXCIsXG4gICAgXCJUcmF2YW5cIixcbiAgICBcIlRyZWZmXCIsXG4gICAgXCJUcmVtbWVsXCIsXG4gICAgXCJUcmVzc1wiLFxuICAgIFwiVHNhbW9uaWtpYW5cIixcbiAgICBcIlRzY2hpZXJzXCIsXG4gICAgXCJUc2NoaXJjaFwiLFxuICAgIFwiVHVjaFwiLFxuICAgIFwiVHVjaG9sa2VcIixcbiAgICBcIlR1ZG93XCIsXG4gICAgXCJUdXNjaG1vXCIsXG4gICAgXCJUw6RjaGxcIixcbiAgICBcIlTDtmJiZW5cIixcbiAgICBcIlTDtnBmZXJcIixcbiAgICBcIlVobGVtYW5uXCIsXG4gICAgXCJVaGxpZ1wiLFxuICAgIFwiVWhyaWdcIixcbiAgICBcIlVpYmVsXCIsXG4gICAgXCJVbGljemthXCIsXG4gICAgXCJVbGxtYW5uXCIsXG4gICAgXCJVbGxyaWNoXCIsXG4gICAgXCJVbWJhY2hcIixcbiAgICBcIlVtbGF1ZnRcIixcbiAgICBcIlVtbWluZ2VyXCIsXG4gICAgXCJVbmdlclwiLFxuICAgIFwiVW50ZXJwYWludG5lclwiLFxuICAgIFwiVXJiYW5cIixcbiAgICBcIlVyYmFuaWFrXCIsXG4gICAgXCJVcmJhbnNreVwiLFxuICAgIFwiVXJoaWdcIixcbiAgICBcIlZhaGxlbnNpZWNrXCIsXG4gICAgXCJWYW5cIixcbiAgICBcIlZhbmdlcm1haW5cIixcbiAgICBcIlZhdGVyXCIsXG4gICAgXCJWZW5naGF1c1wiLFxuICAgIFwiVmVybmllc3RcIixcbiAgICBcIlZlcnppXCIsXG4gICAgXCJWZXlcIixcbiAgICBcIlZpZWxsZWhuZXJcIixcbiAgICBcIlZpZXdlZ1wiLFxuICAgIFwiVm9lbGtlbFwiLFxuICAgIFwiVm9nZWxcIixcbiAgICBcIlZvZ2VsZ3NhbmdcIixcbiAgICBcIlZvZ3RcIixcbiAgICBcIlZvaWd0XCIsXG4gICAgXCJWb2t1aGxcIixcbiAgICBcIlZvbGtcIixcbiAgICBcIlZvbGtlclwiLFxuICAgIFwiVm9sa21hbm5cIixcbiAgICBcIlZvblwiLFxuICAgIFwiVm9uYVwiLFxuICAgIFwiVm9udGVpblwiLFxuICAgIFwiV2FjaGVuYnJ1bm5lclwiLFxuICAgIFwiV2FjaHRlbFwiLFxuICAgIFwiV2FnbmVyXCIsXG4gICAgXCJXYWliZWxcIixcbiAgICBcIldha2FuXCIsXG4gICAgXCJXYWxkbWFublwiLFxuICAgIFwiV2FsbG5lclwiLFxuICAgIFwiV2FsbHN0YWJcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FsdGhlclwiLFxuICAgIFwiV2FsdG9uXCIsXG4gICAgXCJXYWx6XCIsXG4gICAgXCJXYW5uZXJcIixcbiAgICBcIldhcnRlbmJlcmdcIixcbiAgICBcIldhc2NoYsO8c2NoXCIsXG4gICAgXCJXYXNzaWxld1wiLFxuICAgIFwiV2Fzc2lsdWtcIixcbiAgICBcIldlYmVyXCIsXG4gICAgXCJXZWhyc2VuXCIsXG4gICAgXCJXZWlkbGljaFwiLFxuICAgIFwiV2VpZG5lclwiLFxuICAgIFwiV2VpZ2VsXCIsXG4gICAgXCJXZWlnaHRcIixcbiAgICBcIldlaWxlclwiLFxuICAgIFwiV2VpbWVyXCIsXG4gICAgXCJXZWlzXCIsXG4gICAgXCJXZWlzc1wiLFxuICAgIFwiV2VsbGVyXCIsXG4gICAgXCJXZWxzY2hcIixcbiAgICBcIldlbHpcIixcbiAgICBcIldlbHplbFwiLFxuICAgIFwiV2VuaWdlclwiLFxuICAgIFwiV2Vua1wiLFxuICAgIFwiV2VybGVcIixcbiAgICBcIldlcm5lclwiLFxuICAgIFwiV2Vycm1hbm5cIixcbiAgICBcIldlc3NlbFwiLFxuICAgIFwiV2Vzc2luZ2hhZ2VcIixcbiAgICBcIldleWVsXCIsXG4gICAgXCJXZXplbFwiLFxuICAgIFwiV2ljaG1hbm5cIixcbiAgICBcIldpY2tlcnRcIixcbiAgICBcIldpZWJlXCIsXG4gICAgXCJXaWVjaG1hbm5cIixcbiAgICBcIldpZWdlbG1hbm5cIixcbiAgICBcIldpZXJpZ1wiLFxuICAgIFwiV2llc2VcIixcbiAgICBcIldpZXNlclwiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsa3lcIixcbiAgICBcIldpbGxcIixcbiAgICBcIldpbGx3YWNoZXJcIixcbiAgICBcIldpbHRzXCIsXG4gICAgXCJXaW1tZXJcIixcbiAgICBcIldpbmtlbG1hbm5cIixcbiAgICBcIldpbmtsZXJcIixcbiAgICBcIldpbnRlclwiLFxuICAgIFwiV2lzY2hla1wiLFxuICAgIFwiV2lzY2hlclwiLFxuICAgIFwiV2lzc2luZ1wiLFxuICAgIFwiV2l0dGljaFwiLFxuICAgIFwiV2l0dGxcIixcbiAgICBcIldvbGZcIixcbiAgICBcIldvbGZhcnRoXCIsXG4gICAgXCJXb2xmZlwiLFxuICAgIFwiV29sbGVuYmVyZ1wiLFxuICAgIFwiV29sbG1hbm5cIixcbiAgICBcIldveXRrb3dza2FcIixcbiAgICBcIld1amFrXCIsXG4gICAgXCJXdXJtXCIsXG4gICAgXCJXeWx1ZGRhXCIsXG4gICAgXCJXw7ZscGVydFwiLFxuICAgIFwiV8O2c2NobGVyXCIsXG4gICAgXCJXw7xoblwiLFxuICAgIFwiV8O8bnNjaGVcIixcbiAgICBcIlphY2hcIixcbiAgICBcIlphY3praWV3aWN6XCIsXG4gICAgXCJaYWhuXCIsXG4gICAgXCJaYWl0dWNcIixcbiAgICBcIlphbmR0XCIsXG4gICAgXCJaYW5uZXJcIixcbiAgICBcIlphcGxldGFsXCIsXG4gICAgXCJaYXViZXJcIixcbiAgICBcIlplaWRsZXJcIixcbiAgICBcIlpla2xcIixcbiAgICBcIlplbmRlclwiLFxuICAgIFwiWmV1Y2hcIixcbiAgICBcIlpleWVuXCIsXG4gICAgXCJaZXlobGVcIixcbiAgICBcIlppZWdsZXJcIixcbiAgICBcIlppbWFueWlcIixcbiAgICBcIlppbW1lclwiLFxuICAgIFwiWmltbWVybWFublwiLFxuICAgIFwiWmluc2VyXCIsXG4gICAgXCJaaW50bFwiLFxuICAgIFwiWmlwcFwiLFxuICAgIFwiWmlwc2VcIixcbiAgICBcIlpzY2h1bmtlXCIsXG4gICAgXCJadWJlclwiLFxuICAgIFwiWndpZW5lclwiLFxuICAgIFwiWsO8bXNhbmRlXCIsXG4gICAgXCLDlnN0cmluZ2VyXCIsXG4gICAgXCLDnGJlcmFja2VyXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiSHIuXCIsXG4gICAgXCJGci5cIixcbiAgICBcIkRyLlwiLFxuICAgIFwiUHJvZi4gRHIuXCJcbiAgXSxcbiAgXCJub2JpbGl0eV90aXRsZV9wcmVmaXhcIjogW1xuICAgIFwienVcIixcbiAgICBcInZvblwiLFxuICAgIFwidm9tXCIsXG4gICAgXCJ2b24gZGVyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje25vYmlsaXR5X3RpdGxlX3ByZWZpeH0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIoMCMjIykgIyMjIyMjIyMjXCIsXG4gICAgXCIoMCMjIyMpICMjIyMjIyNcIixcbiAgICBcIis0OS0jIyMtIyMjIyMjI1wiLFxuICAgIFwiKzQ5LSMjIyMtIyMjIyMjIyNcIlxuICBdXG59O1xuZGUuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIis0OS0xIyMtIyMjIyMjI1wiLFxuICAgIFwiKzQ5LTEjIyMtIyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGRlX0FUID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZGVfQVQ7XG5kZV9BVC50aXRsZSA9IFwiR2VybWFuIChBdXN0cmlhKVwiO1xuZGVfQVQuYWRkcmVzcyA9IHtcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIsOEZ3lwdGVuXCIsXG4gICAgXCLDhHF1YXRvcmlhbGd1aW5lYVwiLFxuICAgIFwiw4R0aGlvcGllblwiLFxuICAgIFwiw5ZzdGVycmVpY2hcIixcbiAgICBcIkFmZ2hhbmlzdGFuXCIsXG4gICAgXCJBbGJhbmllblwiLFxuICAgIFwiQWxnZXJpZW5cIixcbiAgICBcIkFtZXJpa2FuaXNjaC1TYW1vYVwiLFxuICAgIFwiQW1lcmlrYW5pc2NoZSBKdW5nZmVybmluc2VsblwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmd1aWxsYVwiLFxuICAgIFwiQW50YXJrdGlzXCIsXG4gICAgXCJBbnRpZ3VhIHVuZCBCYXJidWRhXCIsXG4gICAgXCJBcmdlbnRpbmllblwiLFxuICAgIFwiQXJtZW5pZW5cIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBc2VyYmFpZHNjaGFuXCIsXG4gICAgXCJBdXN0cmFsaWVuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJCYW5nbGFkZXNjaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJlbGFydXNcIixcbiAgICBcIkJlbGdpZW5cIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcImRpZSBCZXJtdWRhc1wiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2xpdmllblwiLFxuICAgIFwiQm9zbmllbiB1bmQgSGVyemVnb3dpbmFcIixcbiAgICBcIkJvdHN1YW5hXCIsXG4gICAgXCJCb3V2ZXRpbnNlbFwiLFxuICAgIFwiQnJhc2lsaWVuXCIsXG4gICAgXCJCcml0aXNjaGUgSnVuZ2Zlcm5pbnNlbG5cIixcbiAgICBcIkJyaXRpc2NoZXMgVGVycml0b3JpdW0gaW0gSW5kaXNjaGVuIE96ZWFuXCIsXG4gICAgXCJCcnVuZWkgRGFydXNzYWxhbVwiLFxuICAgIFwiQnVsZ2FyaWVuXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNoaWxlXCIsXG4gICAgXCJDaGluYVwiLFxuICAgIFwiQ29va2luc2VsblwiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiRMOkbmVtYXJrXCIsXG4gICAgXCJEZW1va3JhdGlzY2hlIFJlcHVibGlrIEtvbmdvXCIsXG4gICAgXCJEZW1va3JhdGlzY2hlIFZvbGtzcmVwdWJsaWsgS29yZWFcIixcbiAgICBcIkRldXRzY2hsYW5kXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiRG9taW5pa2FuaXNjaGUgUmVwdWJsaWtcIixcbiAgICBcIkRzY2hpYnV0aVwiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdGxhbmRcIixcbiAgICBcIkbDpHLDtmVyXCIsXG4gICAgXCJGYWxrbGFuZGluc2VsblwiLFxuICAgIFwiRmlkc2NoaVwiLFxuICAgIFwiRmlubmxhbmRcIixcbiAgICBcIkZyYW5rcmVpY2hcIixcbiAgICBcIkZyYW56w7ZzaXNjaC1HdWF5YW5hXCIsXG4gICAgXCJGcmFuesO2c2lzY2gtUG9seW5lc2llblwiLFxuICAgIFwiRnJhbnrDtnNpc2NoZSBHZWJpZXRlIGltIHPDvGRsaWNoZW4gSW5kaXNjaGVuIE96ZWFuXCIsXG4gICAgXCJHYWJ1blwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHZW9yZ2llblwiLFxuICAgIFwiR2hhbmFcIixcbiAgICBcIkdpYnJhbHRhclwiLFxuICAgIFwiR3LDtm5sYW5kXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcmllY2hlbmxhbmRcIixcbiAgICBcIkd1YWRlbG91cGVcIixcbiAgICBcIkd1YW1cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWEtQmlzc2F1XCIsXG4gICAgXCJHdXlhbmFcIixcbiAgICBcIkhhaXRpXCIsXG4gICAgXCJIZWFyZCB1bmQgTWNEb25hbGRpbnNlbG5cIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25na29uZ1wiLFxuICAgIFwiSW5kaWVuXCIsXG4gICAgXCJJbmRvbmVzaWVuXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJcmxhbmRcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNyYWVsXCIsXG4gICAgXCJJdGFsaWVuXCIsXG4gICAgXCJKYW1haWthXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkpvcmRhbmllblwiLFxuICAgIFwiSnVnb3NsYXdpZW5cIixcbiAgICBcIkthaW1hbmluc2VsblwiLFxuICAgIFwiS2FtYm9kc2NoYVwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYXAgVmVyZGVcIixcbiAgICBcIkthc2FjaHN0YW5cIixcbiAgICBcIkthdGFyXCIsXG4gICAgXCJLZW5pYVwiLFxuICAgIFwiS2lyZ2lzaXN0YW5cIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLbGVpbmVyZSBhbWVyaWthbmlzY2hlIMOcYmVyc2VlaW5zZWxuXCIsXG4gICAgXCJLb2tvc2luc2VsblwiLFxuICAgIFwiS29sdW1iaWVuXCIsXG4gICAgXCJLb21vcmVuXCIsXG4gICAgXCJLb25nb1wiLFxuICAgIFwiS3JvYXRpZW5cIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiTGFvc1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGV0dGxhbmRcIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkxpYmVyaWFcIixcbiAgICBcIkxpYnllblwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0YXVlblwiLFxuICAgIFwiTHV4ZW1idXJnXCIsXG4gICAgXCJNYWNhdVwiLFxuICAgIFwiTWFkYWdhc2thclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxheXNpYVwiLFxuICAgIFwiTWFsZWRpdmVuXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiZWhlbWFsaWdlIGp1Z29zbGF3aXNjaGUgUmVwdWJsaWsgTWF6ZWRvbmllblwiLFxuICAgIFwiTWFyb2trb1wiLFxuICAgIFwiTWFyc2hhbGxpbnNlbG5cIixcbiAgICBcIk1hcnRpbmlxdWVcIixcbiAgICBcIk1hdXJldGFuaWVuXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk1leGlrb1wiLFxuICAgIFwiTWlrcm9uZXNpZW5cIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29sZWlcIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1vc2FtYmlrXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOw7ZyZGxpY2hlIE1hcmlhbmVuXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIk5ldWthbGVkb25pZW5cIixcbiAgICBcIk5ldXNlZWxhbmRcIixcbiAgICBcIk5pY2FyYWd1YVwiLFxuICAgIFwiTmllZGVybMOkbmRpc2NoZSBBbnRpbGxlblwiLFxuICAgIFwiTmllZGVybGFuZGVcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJOb3Jmb2xraW5zZWxcIixcbiAgICBcIk5vcndlZ2VuXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJPc3R0aW1vclwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlBhcHVhLU5ldWd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlBoaWxpcHBpbmVuXCIsXG4gICAgXCJQaXRjYWlybmluc2VsblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUsOpdW5pb25cIixcbiAgICBcIlJlcHVibGlrIEtvcmVhXCIsXG4gICAgXCJSZXB1YmxpayBNb2xkYXVcIixcbiAgICBcIlJ1YW5kYVwiLFxuICAgIFwiUnVtw6RuaWVuXCIsXG4gICAgXCJSdXNzaXNjaGUgRsO2ZGVyYXRpb25cIixcbiAgICBcIlPDo28gVG9tw6kgdW5kIFByw61uY2lwZVwiLFxuICAgIFwiU8O8ZGFmcmlrYVwiLFxuICAgIFwiU8O8ZGdlb3JnaWVuIHVuZCBTw7xkbGljaGUgU2FuZHdpY2hpbnNlbG5cIixcbiAgICBcIlNhbG9tb25lblwiLFxuICAgIFwiU2FtYmlhXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2F1ZGktQXJhYmllblwiLFxuICAgIFwiU2Nod2VkZW5cIixcbiAgICBcIlNjaHdlaXpcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNleWNoZWxsZW5cIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2ltYmFid2VcIixcbiAgICBcIlNpbmdhcHVyXCIsXG4gICAgXCJTbG93YWtlaVwiLFxuICAgIFwiU2xvd2VuaWVuXCIsXG4gICAgXCJTb21hbGllblwiLFxuICAgIFwiU3BhbmllblwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdC4gSGVsZW5hXCIsXG4gICAgXCJTdC4gS2l0dHMgdW5kIE5ldmlzXCIsXG4gICAgXCJTdC4gTHVjaWFcIixcbiAgICBcIlN0LiBQaWVycmUgdW5kIE1pcXVlbG9uXCIsXG4gICAgXCJTdC4gVmluY2VudCB1bmQgZGllIEdyZW5hZGluZW5cIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJTdmFsYmFyZCB1bmQgSmFuIE1heWVuXCIsXG4gICAgXCJTd2FzaWxhbmRcIixcbiAgICBcIlN5cmllblwiLFxuICAgIFwiVMO8cmtlaVwiLFxuICAgIFwiVGFkc2NoaWtpc3RhblwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYW5zYW5pYVwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCB1bmQgVG9iYWdvXCIsXG4gICAgXCJUc2NoYWRcIixcbiAgICBcIlRzY2hlY2hpc2NoZSBSZXB1Ymxpa1wiLFxuICAgIFwiVHVuZXNpZW5cIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiVHVya3MtIHVuZCBDYWljb3NpbnNlbG5cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVa3JhaW5lXCIsXG4gICAgXCJVbmdhcm5cIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlVzYmVraXN0YW5cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZhdGlrYW5zdGFkdFwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWZXJlaW5pZ3RlIEFyYWJpc2NoZSBFbWlyYXRlXCIsXG4gICAgXCJWZXJlaW5pZ3RlIFN0YWF0ZW5cIixcbiAgICBcIlZlcmVpbmlndGVzIEvDtm5pZ3JlaWNoXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJXYWxsaXMgdW5kIEZ1dHVuYVwiLFxuICAgIFwiV2VpaG5hY2h0c2luc2VsXCIsXG4gICAgXCJXZXN0c2FoYXJhXCIsXG4gICAgXCJaZW50cmFsYWZyaWthbmlzY2hlIFJlcHVibGlrXCIsXG4gICAgXCJaeXBlcm5cIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkFob3JuXCIsXG4gICAgXCJBaG9ybmdhc3NlIChTdC4gQW5kcsOkKVwiLFxuICAgIFwiQWxsZWVzdHJhw59lIChQb3lzYnJ1bm4pXCIsXG4gICAgXCJBbHBlbmxhbmRzdHJhw59lXCIsXG4gICAgXCJBbHRlIFBvc3RzdHJhw59lXCIsXG4gICAgXCJBbHRlIFVmZXJnYXNzZVwiLFxuICAgIFwiQW0gS3JvbmF3ZXR0IChIYWdlbmJydW5uKVwiLFxuICAgIFwiQW0gTcO8aGx3YXNzZXJcIixcbiAgICBcIkFtIFJlYmVuaGFuZ1wiLFxuICAgIFwiQW0gU3Rlcm53ZWdcIixcbiAgICBcIkFudG9uIFdpbGRnYW5zLVN0cmHDn2VcIixcbiAgICBcIkF1ZXItdm9uLVdlbHNiYWNoLVdlZ1wiLFxuICAgIFwiQXVmIGRlciBTdGlmdFwiLFxuICAgIFwiQXVmZWxkZ2Fzc2VcIixcbiAgICBcIkJhaG5nYXNzZVwiLFxuICAgIFwiQmFobmhvZnN0cmHDn2VcIixcbiAgICBcIkJhaG5zdHJhw59lIChHZXJoYXVzKVwiLFxuICAgIFwiQmFzdGVpZ2Fzc2VcIixcbiAgICBcIkJlcmdnYXNzZVwiLFxuICAgIFwiQmVyZ3N0cmHDn2VcIixcbiAgICBcIkJpcmtlbndlZ1wiLFxuICAgIFwiQmxhc2l1c3N0ZWlnXCIsXG4gICAgXCJCbGF0dHVyXCIsXG4gICAgXCJCcnVkZXJob2ZnYXNzZVwiLFxuICAgIFwiQnJ1bm5lbGxpZ2Fzc2VcIixcbiAgICBcIkLDvGhlbHdlZ1wiLFxuICAgIFwiRGFybmF1dGdhc3NlXCIsXG4gICAgXCJEb25hdWdhc3NlXCIsXG4gICAgXCJEb3JmcGxhdHogKEhhc2VsYmFjaClcIixcbiAgICBcIkRyLi1PYmVycmVpdGVyLVN0cmHDn2VcIixcbiAgICBcIkRyLkthcmwgSG9sb3ViZWstU3RyLlwiLFxuICAgIFwiRHJhdXRhbCBCdW5kZXNzdHJhw59lXCIsXG4gICAgXCJEw7xybnJvaHJlciBTdHJhw59lXCIsXG4gICAgXCJFYmVudGhhbGVyc3RyYcOfZVwiLFxuICAgIFwiRWNrZ3JhYmVud2VnXCIsXG4gICAgXCJFcmxlbnN0cmHDn2VcIixcbiAgICBcIkVybGVud2VnXCIsXG4gICAgXCJFc2NoZW53ZWdcIixcbiAgICBcIkV0cmljaGdhc3NlXCIsXG4gICAgXCJGYXNzZXJnYXNzZVwiLFxuICAgIFwiRmVpY2h0ZWdnZXJ3aWVzZVwiLFxuICAgIFwiRmVsZC1XZWdcIixcbiAgICBcIkZlbGRnYXNzZVwiLFxuICAgIFwiRmVsZHN0YXBmZVwiLFxuICAgIFwiRmlzY2hwb2ludHdlZ1wiLFxuICAgIFwiRmxhY2hiZXJnc3RyYcOfZVwiLFxuICAgIFwiRmx1cndlZ1wiLFxuICAgIFwiRnJhbnogU2NodWJlcnQtR2Fzc2VcIixcbiAgICBcIkZyYW56LVNjaG5lZXdlacOfLVdlZ1wiLFxuICAgIFwiRnJhbnotdm9uLUFzc2lzaS1TdHJhw59lXCIsXG4gICAgXCJGcml0ei1QcmVnbC1TdHJhw59lXCIsXG4gICAgXCJGdWNoc2dydWJlbndlZ1wiLFxuICAgIFwiRsO2ZGxlcndlZ1wiLFxuICAgIFwiRsO2aHJlbndlZ1wiLFxuICAgIFwiRsO8bmZoYXVzIChQYWFzZG9yZilcIixcbiAgICBcIkdhYmVsc2JlcmdlcnN0cmHDn2VcIixcbiAgICBcIkdhcnRlbnN0cmHDn2VcIixcbiAgICBcIkdlaWdlblwiLFxuICAgIFwiR2VpZ2VyZ2Fzc2VcIixcbiAgICBcIkdlbWVpbmRlYXVnYXNzZVwiLFxuICAgIFwiR2VtZWluZGVwbGF0elwiLFxuICAgIFwiR2VvcmctQWljaGluZ2VyLVN0cmHDn2VcIixcbiAgICBcIkdsYW5mZWxkYmFjaHdlZ1wiLFxuICAgIFwiR3JhYmVuIChCdXJnYXViZXJnKVwiLFxuICAgIFwiR3J1YlwiLFxuICAgIFwiR3LDtnJldGdhc3NlXCIsXG4gICAgXCJHcsO8bmJhY2hcIixcbiAgICBcIkfDtnN0aW5nXCIsXG4gICAgXCJIYWluc2Nod2FuZ1wiLFxuICAgIFwiSGFucy1NYXVyYWNoZXItU3RyYcOfZVwiLFxuICAgIFwiSGFydFwiLFxuICAgIFwiVGVpY2hzdHJhw59lXCIsXG4gICAgXCJIYXVwdHBsYXR6XCIsXG4gICAgXCJIYXVwdHN0cmHDn2VcIixcbiAgICBcIkhlaWRld2VnXCIsXG4gICAgXCJIZWlucmljaCBMYW5kYXVlciBHYXNzZVwiLFxuICAgIFwiSGVsZW5lbmdhc3NlXCIsXG4gICAgXCJIZXJtYW5uIHZvbiBHaWxtd2VnXCIsXG4gICAgXCJIZXJtYW5uLUzDtm5zLUdhc3NlXCIsXG4gICAgXCJIZXJtaW5lbmdhc3NlXCIsXG4gICAgXCJIZXJuc3RvcmZlcnN0cmHDn2VcIixcbiAgICBcIkhpcnNkb3JmXCIsXG4gICAgXCJIb2NoZmVpc3RyaXR6XCIsXG4gICAgXCJIb2NoaGF1cyBOZXVlIERvbmF1XCIsXG4gICAgXCJIb2ZcIixcbiAgICBcIkh1c3Nvdml0cyBHYXNzZVwiLFxuICAgIFwiSMO2Z2dlblwiLFxuICAgIFwiSMO8dHRlblwiLFxuICAgIFwiSmFuemdhc3NlXCIsXG4gICAgXCJKb2NocmllbWd1dHN0cmHDn2VcIixcbiAgICBcIkpvaGFubi1TdHJhdcOfLUdhc3NlXCIsXG4gICAgXCJKdWxpdXMtUmFhYi1TdHJhw59lXCIsXG4gICAgXCJLYWhsZW5iZXJnZXIgU3RyYcOfZVwiLFxuICAgIFwiS2FybCBLcmFmdC1TdHJhw59lXCIsXG4gICAgXCJLZWdlbHByaWVsc3RyYcOfZVwiLFxuICAgIFwiS2VsdGVuYmVyZy1FcG9uYXdlZ1wiLFxuICAgIFwiS2VubmVkeWJyw7xja2VcIixcbiAgICBcIktlcnBlbHlzdHJhw59lXCIsXG4gICAgXCJLaW5kZXJnYXJ0ZW5zdHJhw59lXCIsXG4gICAgXCJLaW5kZXJoZWltZ2Fzc2VcIixcbiAgICBcIktpcmNoZW5wbGF0elwiLFxuICAgIFwiS2lyY2h3ZWdcIixcbiAgICBcIktsYWdlbmZ1cnRlciBTdHJhw59lXCIsXG4gICAgXCJLbGFtbVwiLFxuICAgIFwiS2xlaW5iYXVtZ2FydGVuXCIsXG4gICAgXCJLbGluZ2VyZ2Fzc2VcIixcbiAgICBcIktvbG9uaWVzdHJhw59lXCIsXG4gICAgXCJLb25yYWQtRHVkZW4tR2Fzc2VcIixcbiAgICBcIktyYW5rZW5oYXVzc3RyYcOfZVwiLFxuICAgIFwiS3ViaW5zdHJhw59lXCIsXG4gICAgXCJLw7ZobGRvcmZlcmdhc3NlXCIsXG4gICAgXCJMYWNrZW53ZWdcIixcbiAgICBcIkxhbmdlIE1la290dGVcIixcbiAgICBcIkxlaWZsaW5nXCIsXG4gICAgXCJMZW9wb2xkIEZyYW5rLVN0cmHDn2UgKFBlbGxlbmRvcmYpXCIsXG4gICAgXCJMZXJjaGVuZ2Fzc2UgKFBpcmthKVwiLFxuICAgIFwiTGljaHRlbnN0ZXJuc2llZGx1bmcgVlwiLFxuICAgIFwiTGluZGVuaG9mc3RyYcOfZVwiLFxuICAgIFwiTGluZGVud2VnXCIsXG4gICAgXCJMdWVnc3RyYcOfZVwiLFxuICAgIFwiTWFpZXJob2ZcIixcbiAgICBcIk1hbGVyd2VnXCIsXG4gICAgXCJNaXR0ZXJ3ZWdcIixcbiAgICBcIk1pdHRsZXJlIEhhdXB0c3RyYcOfZVwiLFxuICAgIFwiTW9vc2JhY2hnYXNzZVwiLFxuICAgIFwiTW9yZXR0aWdhc3NlXCIsXG4gICAgXCJNdXNpa3BhdmlsbG9uIFJpZXpsZXJuXCIsXG4gICAgXCJNw7xobGJvZGVuXCIsXG4gICAgXCJNw7xobGVcIixcbiAgICBcIk3DvGhsZW53ZWdcIixcbiAgICBcIk5ldXN0aWZ0Z2Fzc2VcIixcbiAgICBcIk5pZWRlcmVnZ1wiLFxuICAgIFwiTmllZGVyZ2Ftc1wiLFxuICAgIFwiTm9yZHdlc3RiYWhuYnLDvGNrZVwiLFxuICAgIFwiT2JlcmLDtmRlbmFsbVwiLFxuICAgIFwiT2JlcmUgQmVyZ2dhc3NlXCIsXG4gICAgXCJPZWR0XCIsXG4gICAgXCJBbSBGw6RyYmVyYmVyZ1wiLFxuICAgIFwiT3R0b2dhc3NlXCIsXG4gICAgXCJQYXVsIFBldGVycy1HYXNzZVwiLFxuICAgIFwiUGVyc3Bla3RpdnN0cmHDn2VcIixcbiAgICBcIlBvcHBpY2hsXCIsXG4gICAgXCJQcml2YXR3ZWdcIixcbiAgICBcIlByaXhnYXNzZVwiLFxuICAgIFwiUHlocmFcIixcbiAgICBcIlJhZGV0emt5c3RyYcOfZVwiLFxuICAgIFwiUmFpZGVuXCIsXG4gICAgXCJSZWljaGVuc3RlaW5zdHJhw59lXCIsXG4gICAgXCJSZWl0YmF1ZXJuc3RyYcOfZVwiLFxuICAgIFwiUmVpdGVyd2VnXCIsXG4gICAgXCJSZWl0c2NodWxnYXNzZVwiLFxuICAgIFwiUmluZ3dlZ1wiLFxuICAgIFwiUnVwZXJ0aXN0cmHDn2VcIixcbiAgICBcIlLDtm1lcnN0cmHDn2VcIixcbiAgICBcIlLDtm1lcndlZ1wiLFxuICAgIFwiU2Fja2dhc3NlXCIsXG4gICAgXCJTY2hhdW5iZXJnZXJzdHJhw59lXCIsXG4gICAgXCJTY2hsb8Ofd2VnXCIsXG4gICAgXCJTY2h1bGdhc3NlIChMYW5nZWNrKVwiLFxuICAgIFwiU2Now7ZuaG9sZHNpZWRsdW5nXCIsXG4gICAgXCJTZWVibGlja1wiLFxuICAgIFwiU2Vlc3RyYcOfZVwiLFxuICAgIFwiU2VtcmlhY2hlcnN0cmHDn2VcIixcbiAgICBcIlNpbWxpbmdcIixcbiAgICBcIlNpcGJhY2h6ZWxsZXIgU3RyYcOfZVwiLFxuICAgIFwiU29ubmVud2VnXCIsXG4gICAgXCJTcGFyZ2VsZmVsZGdhc3NlXCIsXG4gICAgXCJTcGllc21heXJ3ZWdcIixcbiAgICBcIlNwb3J0cGxhdHpzdHJhw59lXCIsXG4gICAgXCJTdC5VbHJpY2hcIixcbiAgICBcIlN0ZWlsbWFubnN0cmHDn2VcIixcbiAgICBcIlN0ZWluZ3LDvG5lcmVkdFwiLFxuICAgIFwiU3RyYXNzZmVsZFwiLFxuICAgIFwiU3RyYcOfZXJhdVwiLFxuICAgIFwiU3TDtnBmbHdlZ1wiLFxuICAgIFwiU3TDvHJhXCIsXG4gICAgXCJUYWZlcm5nYXNzZVwiLFxuICAgIFwiVGVubndlZ1wiLFxuICAgIFwiVGhvbWFzIEtvc2NoYXQtR2Fzc2VcIixcbiAgICBcIlRpcm9sZXIgU3RyYcOfZVwiLFxuICAgIFwiVG9ycm9nYXNzZVwiLFxuICAgIFwiVWZlcnN0cmHDn2UgKFNjaHdhcnphdSBhbSBTdGVpbmZlbGQpXCIsXG4gICAgXCJVbnRlcmTDtnJmbFwiLFxuICAgIFwiVW50ZXJlciBTb25ucmFpbndlZ1wiLFxuICAgIFwiVmVyd2FsdGVyc2llZGx1bmdcIixcbiAgICBcIldhbGRoYW5nXCIsXG4gICAgXCJXYXNlblwiLFxuICAgIFwiV2VpZGVuc3RyYcOfZVwiLFxuICAgIFwiV2VpaGVyd2VnXCIsXG4gICAgXCJXZXR0c3RlaW5nYXNzZVwiLFxuICAgIFwiV2llbmVyIFN0cmHDn2VcIixcbiAgICBcIldpbmRpc2NoXCIsXG4gICAgXCJaZWJyYWdhc3NlXCIsXG4gICAgXCJaZWxsZXJzdHJhw59lXCIsXG4gICAgXCJaaWVocmVyc3RyYcOfZVwiLFxuICAgIFwiWnVsZWNobmVyd2VnXCIsXG4gICAgXCJad2VyZ2pvY2hcIixcbiAgICBcIsOWdHpicnVja1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIixcbiAgICBcIiMjYVwiLFxuICAgIFwiIyNiXCIsXG4gICAgXCIjI2NcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJaaW1tZXIgIyMjXCIsXG4gICAgXCIjIE9HXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCdXJnZW5sYW5kXCIsXG4gICAgXCJLw6RybnRlblwiLFxuICAgIFwiTmllZGVyw7ZzdGVycmVpY2hcIixcbiAgICBcIk9iZXLDtnN0ZXJyZWljaFwiLFxuICAgIFwiU2FsemJ1cmdcIixcbiAgICBcIlN0ZWllcm1hcmtcIixcbiAgICBcIlRpcm9sXCIsXG4gICAgXCJWb3JhcmxiZXJnXCIsXG4gICAgXCJXaWVuXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkJnbGQuXCIsXG4gICAgXCJLdG4uXCIsXG4gICAgXCJOw5ZcIixcbiAgICBcIk/DllwiLFxuICAgIFwiU2JnLlwiLFxuICAgIFwiU3Rtay5cIixcbiAgICBcIlRcIixcbiAgICBcIlZiZy5cIixcbiAgICBcIldcIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCJBaWdlbiBpbSBNw7xobGtyZWlzXCIsXG4gICAgXCJBbGxlcmhlaWxpZ2VuIGJlaSBXaWxkb25cIixcbiAgICBcIkFsdGVuZmVsZGVuXCIsXG4gICAgXCJBcnJpYWNoXCIsXG4gICAgXCJBeGFtc1wiLFxuICAgIFwiQmF1bWdhcnRlbmJlcmdcIixcbiAgICBcIkJlcmdlcm4gaW0gRHVua2Vsc3RlaW5lcndhbGRcIixcbiAgICBcIkJlcm5kb3JmIGJlaSBTYWx6YnVyZ1wiLFxuICAgIFwiQnJlZ2VuelwiLFxuICAgIFwiQnJlaXRlbmJhY2ggYW0gSW5uXCIsXG4gICAgXCJEZXV0c2NoLVdhZ3JhbVwiLFxuICAgIFwiRGllbnRlbiBhbSBIb2Noa8O2bmlnXCIsXG4gICAgXCJEaWV0YWNoXCIsXG4gICAgXCJEb3JuYmlyblwiLFxuICAgIFwiRMO8cm5rcnV0XCIsXG4gICAgXCJFYmVuIGltIFBvbmdhdVwiLFxuICAgIFwiRWJlbnRoYWwgaW4gS8Okcm50ZW5cIixcbiAgICBcIkVpY2hncmFiZW5cIixcbiAgICBcIkVpc2Vuc3RhZHRcIixcbiAgICBcIkVsbG1hdVwiLFxuICAgIFwiRmVpc3RyaXR6IGFtIFdlY2hzZWxcIixcbiAgICBcIkZpbmtlbmJlcmdcIixcbiAgICBcIkZpc3NcIixcbiAgICBcIkZyYW50c2NoYWNoLVN0LiBHZXJ0cmF1ZFwiLFxuICAgIFwiRnJpdHplbnNcIixcbiAgICBcIkdhbXMgYmVpIEhpZWZsYXVcIixcbiAgICBcIkdlaWVyc2JlcmdcIixcbiAgICBcIkdyYXpcIixcbiAgICBcIkdyb8OfaMO2ZmxlaW5cIixcbiAgICBcIkfDtsOfbml0elwiLFxuICAgIFwiSGFydGxcIixcbiAgICBcIkhhdXNsZWl0ZW5cIixcbiAgICBcIkhlcnpvZ2VuYnVyZ1wiLFxuICAgIFwiSGludGVyaG9ybmJhY2hcIixcbiAgICBcIkhvY2h3b2xrZXJzZG9yZlwiLFxuICAgIFwiSWx6XCIsXG4gICAgXCJJbHp0YWxcIixcbiAgICBcIklubmVyYnJhelwiLFxuICAgIFwiSW5uc2JydWNrXCIsXG4gICAgXCJJdHRlclwiLFxuICAgIFwiSmFnZXJiZXJnXCIsXG4gICAgXCJKZWdpbmdcIixcbiAgICBcIkpvaG5zYmFjaFwiLFxuICAgIFwiSm9obnNkb3JmLUJydW5uXCIsXG4gICAgXCJKdW5naG9selwiLFxuICAgIFwiS2lyY2hkb3JmIGFtIElublwiLFxuICAgIFwiS2xhZ2VuZnVydFwiLFxuICAgIFwiS290dGVzLVB1cmtcIixcbiAgICBcIktydW1hdSBhbSBLYW1wXCIsXG4gICAgXCJLcnVtYmFjaFwiLFxuICAgIFwiTGF2YW3DvG5kXCIsXG4gICAgXCJMZWNoXCIsXG4gICAgXCJMaW56XCIsXG4gICAgXCJMdWRlc2NoXCIsXG4gICAgXCJMw7ZkZXJzZG9yZlwiLFxuICAgIFwiTWFyYmFjaCBhbiBkZXIgRG9uYXVcIixcbiAgICBcIk1hdHRzZWVcIixcbiAgICBcIk1hdXRlcm4gYW4gZGVyIERvbmF1XCIsXG4gICAgXCJNYXV0ZXJuZG9yZlwiLFxuICAgIFwiTWl0dGVyYmFjaCBhbSBFcmxhdWZzZWVcIixcbiAgICBcIk5ldWRvcmYgYmVpIFBhc3NhaWxcIixcbiAgICBcIk5ldWRvcmYgYmVpIFN0YWF0elwiLFxuICAgIFwiTmV1a2lyY2hlbiBhbiBkZXIgRW5rbmFjaFwiLFxuICAgIFwiTmV1c3RpZnQgYW4gZGVyIExhZm5pdHpcIixcbiAgICBcIk5pZWRlcmxlaXNcIixcbiAgICBcIk9iZXJuZG9yZiBpbiBUaXJvbFwiLFxuICAgIFwiT2JlcnN0b3JjaGFcIixcbiAgICBcIk9iZXJ3YWx0ZXJzZG9yZlwiLFxuICAgIFwiT2VkLU9laGxpbmdcIixcbiAgICBcIk9ydCBpbSBJbm5rcmVpc1wiLFxuICAgIFwiUGlsZ2Vyc2RvcmZcIixcbiAgICBcIlBpdHNjaGdhdVwiLFxuICAgIFwiUG9sbGhhbVwiLFxuICAgIFwiUHJlaXRlbmVnZ1wiLFxuICAgIFwiUHVyYmFjaCBhbSBOZXVzaWVkbGVyIFNlZVwiLFxuICAgIFwiUmFiZW53YWxkXCIsXG4gICAgXCJSYWlkaW5nXCIsXG4gICAgXCJSYXN0ZW5mZWxkXCIsXG4gICAgXCJSYXR0ZW5cIixcbiAgICBcIlJldHRlbmVnZ1wiLFxuICAgIFwiU2FsemJ1cmdcIixcbiAgICBcIlNhbmt0IEpvaGFubiBpbSBTYWdnYXV0YWxcIixcbiAgICBcIlN0LiBQZXRlciBhbSBLYW1tZXJzYmVyZ1wiLFxuICAgIFwiU3QuIFDDtmx0ZW5cIixcbiAgICBcIlN0LiBWZWl0IGFuIGRlciBHbGFuXCIsXG4gICAgXCJUYXhlbmJhY2hcIixcbiAgICBcIlRyYWd3ZWluXCIsXG4gICAgXCJUcmViZXNpbmdcIixcbiAgICBcIlRyaWViZW5cIixcbiAgICBcIlR1cm5hdVwiLFxuICAgIFwiVW5nZXJkb3JmXCIsXG4gICAgXCJVbnRlcmF1ZXJzYmFjaFwiLFxuICAgIFwiVW50ZXJzdGlua2VuYnJ1bm5cIixcbiAgICBcIlVudGVydGlsbGlhY2hcIixcbiAgICBcIlV0dGVuZG9yZlwiLFxuICAgIFwiVmFsc1wiLFxuICAgIFwiVmVsZGVuIGFtIFfDtnJ0aGVyIFNlZVwiLFxuICAgIFwiVmllaGhvZmVuXCIsXG4gICAgXCJWaWxsYWNoXCIsXG4gICAgXCJWaXRpc1wiLFxuICAgIFwiV2FpZGhvZmVuIGFuIGRlciBUaGF5YVwiLFxuICAgIFwiV2FsZGtpcmNoZW4gYW0gV2VzZW5cIixcbiAgICBcIldlacOfa2lyY2hlbiBhbiBkZXIgVHJhdW5cIixcbiAgICBcIldpZW5cIixcbiAgICBcIldpbXBhc3NpbmcgaW0gU2Nod2FyemF0YWxlXCIsXG4gICAgXCJZYmJzIGFuIGRlciBEb25hdVwiLFxuICAgIFwiWWJic2l0elwiLFxuICAgIFwiWXNwZXJ0YWxcIixcbiAgICBcIlplaWxsZXJuXCIsXG4gICAgXCJaZWxsIGFtIFBldHRlbmZpcnN0XCIsXG4gICAgXCJaZWxsIGFuIGRlciBQcmFtXCIsXG4gICAgXCJaZXJsYWNoXCIsXG4gICAgXCJad8O2bGZheGluZ1wiLFxuICAgIFwiw5ZibGFyblwiLFxuICAgIFwiw5xiZWxiYWNoXCIsXG4gICAgXCLDnGJlcmFja2VyblwiLFxuICAgIFwiw5xiZXJzYXhlblwiLFxuICAgIFwiw5xiZXJzYmFjaFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCLDlnN0ZXJyZWljaFwiXG4gIF1cbn07XG5kZV9BVC5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibGVnYWxfZm9ybVwiOiBbXG4gICAgXCJHbWJIXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJLR1wiLFxuICAgIFwiR21iSCAmIENvLiBLR1wiLFxuICAgIFwiVUdcIixcbiAgICBcIk9IR1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gdW5kICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmRlX0FULmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIixcbiAgICBcImRlXCIsXG4gICAgXCJjaFwiLFxuICAgIFwiYXRcIlxuICBdXG59O1xuZGVfQVQubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJBYmR1bFwiLFxuICAgIFwiQWJkdWxsYWhcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQWRyaWFub1wiLFxuICAgIFwiQWhtYWRcIixcbiAgICBcIkFobWVkXCIsXG4gICAgXCJBaG1ldFwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGVzc2FuZHJvXCIsXG4gICAgXCJBbGVzc2lvXCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJBbGV4YW5kZXJcIixcbiAgICBcIkFsZnJlZFwiLFxuICAgIFwiQWxpXCIsXG4gICAgXCJBbWFyXCIsXG4gICAgXCJBbWlyXCIsXG4gICAgXCJBbW9uXCIsXG4gICAgXCJBbmRyZVwiLFxuICAgIFwiQW5kcmVhc1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbmdlbG9cIixcbiAgICBcIkFuc2dhclwiLFxuICAgIFwiQW50aG9ueVwiLFxuICAgIFwiQW50b25cIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuXCIsXG4gICAgXCJBcm1pblwiLFxuICAgIFwiQXJuZVwiLFxuICAgIFwiQXJub1wiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJBcnR1clwiLFxuICAgIFwiQXJ2ZWRcIixcbiAgICBcIkFydmlkXCIsXG4gICAgXCJBeW1hblwiLFxuICAgIFwiQmFyYW5cIixcbiAgICBcIkJhcmlzXCIsXG4gICAgXCJCYXN0aWFuXCIsXG4gICAgXCJCYXR1aGFuXCIsXG4gICAgXCJCZWxhXCIsXG4gICAgXCJCZW5cIixcbiAgICBcIkJlbmVkaWt0XCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQmVubmV0XCIsXG4gICAgXCJCZW5uZXR0XCIsXG4gICAgXCJCZW5ub1wiLFxuICAgIFwiQmVudFwiLFxuICAgIFwiQmVyYXRcIixcbiAgICBcIkJlcmtheVwiLFxuICAgIFwiQmVybmRcIixcbiAgICBcIkJpbGFsXCIsXG4gICAgXCJCamFybmVcIixcbiAgICBcIkJqw7ZyblwiLFxuICAgIFwiQm9cIixcbiAgICBcIkJvcmlzXCIsXG4gICAgXCJCcmFuZG9uXCIsXG4gICAgXCJCcmlhblwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkJyeWFuXCIsXG4gICAgXCJCdXJha1wiLFxuICAgIFwiQ2FsdmluXCIsXG4gICAgXCJDYW5cIixcbiAgICBcIkNhcmxcIixcbiAgICBcIkNhcmxvXCIsXG4gICAgXCJDYXJsb3NcIixcbiAgICBcIkNhc3BhclwiLFxuICAgIFwiQ2VkcmljXCIsXG4gICAgXCJDZWRyaWtcIixcbiAgICBcIkNlbVwiLFxuICAgIFwiQ2hhcmxpZVwiLFxuICAgIFwiQ2hyaXNcIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiQ2hyaXN0aWFub1wiLFxuICAgIFwiQ2hyaXN0b3BoXCIsXG4gICAgXCJDaHJpc3RvcGhlclwiLFxuICAgIFwiQ2xhYXNcIixcbiAgICBcIkNsZW1lbnNcIixcbiAgICBcIkNvbGluXCIsXG4gICAgXCJDb2xsaW5cIixcbiAgICBcIkNvbm5lclwiLFxuICAgIFwiQ29ubm9yXCIsXG4gICAgXCJDb25zdGFudGluXCIsXG4gICAgXCJDb3J2aW5cIixcbiAgICBcIkN1cnRcIixcbiAgICBcIkRhbWlhblwiLFxuICAgIFwiRGFtaWVuXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIkRhbmlsb1wiLFxuICAgIFwiRGFubnlcIixcbiAgICBcIkRhcmlhblwiLFxuICAgIFwiRGFyaW9cIixcbiAgICBcIkRhcml1c1wiLFxuICAgIFwiRGFycmVuXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiRGF2aWRlXCIsXG4gICAgXCJEYXZpblwiLFxuICAgIFwiRGVhblwiLFxuICAgIFwiRGVuaXpcIixcbiAgICBcIkRlbm5pc1wiLFxuICAgIFwiRGVubnlcIixcbiAgICBcIkRldmluXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRGlvblwiLFxuICAgIFwiRG9tZW5pY1wiLFxuICAgIFwiRG9tZW5pa1wiLFxuICAgIFwiRG9taW5pY1wiLFxuICAgIFwiRG9taW5pa1wiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJEdXN0aW5cIixcbiAgICBcIkR5bGFuXCIsXG4gICAgXCJFY3JpblwiLFxuICAgIFwiRWRkaVwiLFxuICAgIFwiRWRkeVwiLFxuICAgIFwiRWRnYXJcIixcbiAgICBcIkVkd2luXCIsXG4gICAgXCJFZmVcIixcbiAgICBcIkVnZVwiLFxuICAgIFwiRWxpYVwiLFxuICAgIFwiRWxpYWhcIixcbiAgICBcIkVsaWFzXCIsXG4gICAgXCJFbGlqYWhcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtaWxpYW5cIixcbiAgICBcIkVtaWxpb1wiLFxuICAgIFwiRW1pclwiLFxuICAgIFwiRW1pcmhhblwiLFxuICAgIFwiRW1yZVwiLFxuICAgIFwiRW5lc1wiLFxuICAgIFwiRW5ub1wiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFcmVuXCIsXG4gICAgXCJFcmljXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJFdGllbm5lXCIsXG4gICAgXCJGYWJpYW5cIixcbiAgICBcIkZhYmllblwiLFxuICAgIFwiRmFiaW9cIixcbiAgICBcIkZhYnJpY2VcIixcbiAgICBcIkZhbGtcIixcbiAgICBcIkZlbGl4XCIsXG4gICAgXCJGZXJkaW5hbmRcIixcbiAgICBcIkZpZXRlXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiRmlubGF5XCIsXG4gICAgXCJGaW5sZXlcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZpbm5sZXlcIixcbiAgICBcIkZsb3JpYW5cIixcbiAgICBcIkZyYW5jZXNjb1wiLFxuICAgIFwiRnJhbnpcIixcbiAgICBcIkZyZWRlcmljXCIsXG4gICAgXCJGcmVkZXJpY2tcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJGcmllZHJpY2hcIixcbiAgICBcIkZyaXR6XCIsXG4gICAgXCJGdXJrYW5cIixcbiAgICBcIkZ5bm5cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlb3JnXCIsXG4gICAgXCJHZXJyaXRcIixcbiAgICBcIkdpYW5cIixcbiAgICBcIkdpYW5sdWNhXCIsXG4gICAgXCJHaW5vXCIsXG4gICAgXCJHaXVsaWFub1wiLFxuICAgIFwiR2l1c2VwcGVcIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiR3VzdGF2XCIsXG4gICAgXCJIYWdlblwiLFxuICAgIFwiSGFtemFcIixcbiAgICBcIkhhbm5lc1wiLFxuICAgIFwiSGFubm9cIixcbiAgICBcIkhhbnNcIixcbiAgICBcIkhhc2FuXCIsXG4gICAgXCJIYXNzYW5cIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIZW5kcmlrXCIsXG4gICAgXCJIZW5uZXNcIixcbiAgICBcIkhlbm5pbmdcIixcbiAgICBcIkhlbnJpXCIsXG4gICAgXCJIZW5yaWNrXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJIdXNzZWluXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklicmFoaW1cIixcbiAgICBcIklsaWFzXCIsXG4gICAgXCJJbGphXCIsXG4gICAgXCJJbHlhc1wiLFxuICAgIFwiSW1tYW51ZWxcIixcbiAgICBcIklzbWFlbFwiLFxuICAgIFwiSXNtYWlsXCIsXG4gICAgXCJJdmFuXCIsXG4gICAgXCJJdmVuXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSmFkZW5cIixcbiAgICBcIkpha29iXCIsXG4gICAgXCJKYW1hbFwiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW5cIixcbiAgICBcIkphbmVrXCIsXG4gICAgXCJKYW5pc1wiLFxuICAgIFwiSmFubmVcIixcbiAgICBcIkphbm5la1wiLFxuICAgIFwiSmFubmVzXCIsXG4gICAgXCJKYW5uaWtcIixcbiAgICBcIkphbm5pc1wiLFxuICAgIFwiSmFub1wiLFxuICAgIFwiSmFub3NjaFwiLFxuICAgIFwiSmFyZWRcIixcbiAgICBcIkphcmlcIixcbiAgICBcIkphcm5lXCIsXG4gICAgXCJKYXJub1wiLFxuICAgIFwiSmFyb25cIixcbiAgICBcIkphc29uXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJKYXlzb25cIixcbiAgICBcIkplYW5cIixcbiAgICBcIkplbnNcIixcbiAgICBcIkplcmVtaWFzXCIsXG4gICAgXCJKZXJlbWllXCIsXG4gICAgXCJKZXJlbXlcIixcbiAgICBcIkplcm1haW5lXCIsXG4gICAgXCJKZXJvbWVcIixcbiAgICBcIkplc3BlclwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkppbVwiLFxuICAgIFwiSmltbXlcIixcbiAgICBcIkpvZVwiLFxuICAgIFwiSm9lbFwiLFxuICAgIFwiSm9leVwiLFxuICAgIFwiSm9oYW5uXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9obm55XCIsXG4gICAgXCJKb25cIixcbiAgICBcIkpvbmFcIixcbiAgICBcIkpvbmFoXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkpvbnRlXCIsXG4gICAgXCJKb29zdFwiLFxuICAgIFwiSm9yZGFuXCIsXG4gICAgXCJKb3Jpc1wiLFxuICAgIFwiSm9zY2hhXCIsXG4gICAgXCJKb3NjaHVhXCIsXG4gICAgXCJKb3NlZlwiLFxuICAgIFwiSm9zZXBoXCIsXG4gICAgXCJKb3NoXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIkpvc3VhXCIsXG4gICAgXCJKdWFuXCIsXG4gICAgXCJKdWxpYW5cIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiSnVsaXVzXCIsXG4gICAgXCJKdXJpXCIsXG4gICAgXCJKdXN0aW5cIixcbiAgICBcIkp1c3R1c1wiLFxuICAgIFwiS2FhblwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJLYWxsZVwiLFxuICAgIFwiS2FyaW1cIixcbiAgICBcIkthcmxcIixcbiAgICBcIkthcmxvXCIsXG4gICAgXCJLYXlcIixcbiAgICBcIktlYW51XCIsXG4gICAgXCJLZW5hblwiLFxuICAgIFwiS2VubnlcIixcbiAgICBcIktlbm9cIixcbiAgICBcIktlcmVtXCIsXG4gICAgXCJLZXJpbVwiLFxuICAgIFwiS2V2aW5cIixcbiAgICBcIktpYW5cIixcbiAgICBcIktpbGlhblwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1pXCIsXG4gICAgXCJLamVsbFwiLFxuICAgIFwiS2xhYXNcIixcbiAgICBcIktsZW1lbnNcIixcbiAgICBcIktvbnJhZFwiLFxuICAgIFwiS29uc3RhbnRpblwiLFxuICAgIFwiS29yYXlcIixcbiAgICBcIktvcmJpbmlhblwiLFxuICAgIFwiS3VydFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiTGFzc2VcIixcbiAgICBcIkxhdXJlbmNlXCIsXG4gICAgXCJMYXVyZW5zXCIsXG4gICAgXCJMYXVyZW56XCIsXG4gICAgXCJMYXVyaW5cIixcbiAgICBcIkxlYW5cIixcbiAgICBcIkxlYW5kZXJcIixcbiAgICBcIkxlYW5kcm9cIixcbiAgICBcIkxlaWZcIixcbiAgICBcIkxlblwiLFxuICAgIFwiTGVublwiLFxuICAgIFwiTGVubmFyZFwiLFxuICAgIFwiTGVubmFydFwiLFxuICAgIFwiTGVubmVydFwiLFxuICAgIFwiTGVubmllXCIsXG4gICAgXCJMZW5ub3hcIixcbiAgICBcIkxlbm55XCIsXG4gICAgXCJMZW9cIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25hcmRvXCIsXG4gICAgXCJMZW9uaGFyZFwiLFxuICAgIFwiTGVvbmlkYXNcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkxlcm95XCIsXG4gICAgXCJMZXZlbnRcIixcbiAgICBcIkxldmlcIixcbiAgICBcIkxldmluXCIsXG4gICAgXCJMZXdpblwiLFxuICAgIFwiTGV3aXNcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkxpYW5cIixcbiAgICBcIkxpYXNcIixcbiAgICBcIkxpbm9cIixcbiAgICBcIkxpbnVzXCIsXG4gICAgXCJMaW9cIixcbiAgICBcIkxpb25cIixcbiAgICBcIkxpb25lbFwiLFxuICAgIFwiTG9nYW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTG9yaXNcIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJMdWFuXCIsXG4gICAgXCJMdWNcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWNpYW5cIixcbiAgICBcIkx1Y2llblwiLFxuICAgIFwiTHVkd2lnXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWl6XCIsXG4gICAgXCJMdWtcIixcbiAgICBcIkx1a2FcIixcbiAgICBcIkx1a2FzXCIsXG4gICAgXCJMdWtlXCIsXG4gICAgXCJMdXR6XCIsXG4gICAgXCJNYWRkb3hcIixcbiAgICBcIk1hZHNcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFpa1wiLFxuICAgIFwiTWFrc2ltXCIsXG4gICAgXCJNYWxpa1wiLFxuICAgIFwiTWFsdGVcIixcbiAgICBcIk1hbnVlbFwiLFxuICAgIFwiTWFyY1wiLFxuICAgIFwiTWFyY2VsXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyY3VzXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFyaWFuXCIsXG4gICAgXCJNYXJpb1wiLFxuICAgIFwiTWFyaXVzXCIsXG4gICAgXCJNYXJrXCIsXG4gICAgXCJNYXJrb1wiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXJsb1wiLFxuICAgIFwiTWFybG9uXCIsXG4gICAgXCJNYXJ0ZW5cIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXJ3aW5cIixcbiAgICBcIk1hdGVvXCIsXG4gICAgXCJNYXRoaXNcIixcbiAgICBcIk1hdGlzXCIsXG4gICAgXCJNYXRzXCIsXG4gICAgXCJNYXR0ZW9cIixcbiAgICBcIk1hdHRlc1wiLFxuICAgIFwiTWF0dGhpYXNcIixcbiAgICBcIk1hdHRoaXNcIixcbiAgICBcIk1hdHRpXCIsXG4gICAgXCJNYXR0aXNcIixcbiAgICBcIk1hdXJpY2VcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWF4aW1cIixcbiAgICBcIk1heGltaWxpYW5cIixcbiAgICBcIk1laG1ldFwiLFxuICAgIFwiTWVpa1wiLFxuICAgIFwiTWVsdmluXCIsXG4gICAgXCJNZXJsaW5cIixcbiAgICBcIk1lcnRcIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWlja1wiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWthXCIsXG4gICAgXCJNaWthaWxcIixcbiAgICBcIk1pa2VcIixcbiAgICBcIk1pbGFuXCIsXG4gICAgXCJNaWxvXCIsXG4gICAgXCJNaW9cIixcbiAgICBcIk1pcmFjXCIsXG4gICAgXCJNaXJjb1wiLFxuICAgIFwiTWlya29cIixcbiAgICBcIk1vaGFtZWRcIixcbiAgICBcIk1vaGFtbWFkXCIsXG4gICAgXCJNb2hhbW1lZFwiLFxuICAgIFwiTW9yaXR6XCIsXG4gICAgXCJNb3J0ZW5cIixcbiAgICBcIk11aGFtbWVkXCIsXG4gICAgXCJNdXJhdFwiLFxuICAgIFwiTXVzdGFmYVwiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJOYXRoYW5hZWxcIixcbiAgICBcIk5lbHNvblwiLFxuICAgIFwiTmVvXCIsXG4gICAgXCJOZXZpb1wiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmljbGFzXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOaWNvbGFpXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOaWVsc1wiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJOaWtsYXNcIixcbiAgICBcIk5pa29cIixcbiAgICBcIk5pa29sYWlcIixcbiAgICBcIk5pa29sYXNcIixcbiAgICBcIk5pbHNcIixcbiAgICBcIk5pbm9cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIk5vZWxcIixcbiAgICBcIk5vcm1hblwiLFxuICAgIFwiT2RpblwiLFxuICAgIFwiT2tlXCIsXG4gICAgXCJPbGVcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiT21hclwiLFxuICAgIFwiT251clwiLFxuICAgIFwiT3NjYXJcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJQYXNjYWxcIixcbiAgICBcIlBhdHJpY2VcIixcbiAgICBcIlBhdHJpY2tcIixcbiAgICBcIlBhdWxcIixcbiAgICBcIlBlZXJcIixcbiAgICBcIlBlcGVcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQaGlsXCIsXG4gICAgXCJQaGlsaXBcIixcbiAgICBcIlBoaWxpcHBcIixcbiAgICBcIlBpZXJyZVwiLFxuICAgIFwiUGlldFwiLFxuICAgIFwiUGl0XCIsXG4gICAgXCJQaXVzXCIsXG4gICAgXCJRdWVudGluXCIsXG4gICAgXCJRdWlyaW5cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFpa1wiLFxuICAgIFwiUmFtb25cIixcbiAgICBcIlJhcGhhZWxcIixcbiAgICBcIlJhc211c1wiLFxuICAgIFwiUmF1bFwiLFxuICAgIFwiUmF5YW5cIixcbiAgICBcIlJlbsOpXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSaWNjYXJkb1wiLFxuICAgIFwiUmljaGFyZFwiLFxuICAgIFwiUmlja1wiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2JpblwiLFxuICAgIFwiUm9jY29cIixcbiAgICBcIlJvbWFuXCIsXG4gICAgXCJSb21lb1wiLFxuICAgIFwiUm9uXCIsXG4gICAgXCJSdWJlblwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiU2FpZFwiLFxuICAgIFwiU2FsaWhcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiU2FtaVwiLFxuICAgIFwiU2FtbXlcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiU2FuZHJvXCIsXG4gICAgXCJTYW50aW5vXCIsXG4gICAgXCJTYXNjaGFcIixcbiAgICBcIlNlYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiU2VsaW1cIixcbiAgICBcIlNlbWloXCIsXG4gICAgXCJTaGF3blwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlNpbWVvblwiLFxuICAgIFwiU2ltb25cIixcbiAgICBcIlNpbmFuXCIsXG4gICAgXCJTa3lcIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiU3RlZmZlblwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3RldmVcIixcbiAgICBcIlN0ZXZlblwiLFxuICAgIFwiU3ZlblwiLFxuICAgIFwiU8O2bmtlXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlRhaGFcIixcbiAgICBcIlRhbWlub1wiLFxuICAgIFwiVGFtbW9cIixcbiAgICBcIlRhcmlrXCIsXG4gICAgXCJUYXlsZXJcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiVGVvXCIsXG4gICAgXCJUaGVvXCIsXG4gICAgXCJUaGVvZG9yXCIsXG4gICAgXCJUaGllc1wiLFxuICAgIFwiVGhpbG9cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiVGhvcmJlblwiLFxuICAgIFwiVGhvcmVcIixcbiAgICBcIlRob3JnZVwiLFxuICAgIFwiVGlhZ29cIixcbiAgICBcIlRpbFwiLFxuICAgIFwiVGlsbFwiLFxuICAgIFwiVGlsbG1hbm5cIixcbiAgICBcIlRpbVwiLFxuICAgIFwiVGltbVwiLFxuICAgIFwiVGltb1wiLFxuICAgIFwiVGltb25cIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRpbm9cIixcbiAgICBcIlRpdHVzXCIsXG4gICAgXCJUaXppYW5cIixcbiAgICBcIlRqYXJrXCIsXG4gICAgXCJUb2JpYXNcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiVG9tbXlcIixcbiAgICBcIlRvbmlcIixcbiAgICBcIlRvbnlcIixcbiAgICBcIlRvcmJlblwiLFxuICAgIFwiVG9yZVwiLFxuICAgIFwiVHJpc3RhblwiLFxuICAgIFwiVHlsZXJcIixcbiAgICBcIlR5cm9uXCIsXG4gICAgXCJVbXV0XCIsXG4gICAgXCJWYWxlbnRpblwiLFxuICAgIFwiVmFsZW50aW5vXCIsXG4gICAgXCJWZWl0XCIsXG4gICAgXCJWaWN0b3JcIixcbiAgICBcIlZpa3RvclwiLFxuICAgIFwiVmluXCIsXG4gICAgXCJWaW5jZW50XCIsXG4gICAgXCJWaXRvXCIsXG4gICAgXCJWaXR1c1wiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsbGlcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIldpbGx5XCIsXG4gICAgXCJYYXZlclwiLFxuICAgIFwiWWFubmljXCIsXG4gICAgXCJZYW5uaWNrXCIsXG4gICAgXCJZYW5uaWtcIixcbiAgICBcIllhbm5pc1wiLFxuICAgIFwiWWFzaW5cIixcbiAgICBcIllvdXNzZWZcIixcbiAgICBcIll1bnVzXCIsXG4gICAgXCJZdXN1ZlwiLFxuICAgIFwiWXZlblwiLFxuICAgIFwiWXZlc1wiLFxuICAgIFwiw5ZtZXJcIixcbiAgICBcIkFhbGl5YWhcIixcbiAgICBcIkFiYnlcIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIkFkYVwiLFxuICAgIFwiQWRlbGluYVwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWlsZWVuXCIsXG4gICAgXCJBaW1lZVwiLFxuICAgIFwiQWxhbmFcIixcbiAgICBcIkFsZWFcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJBbGVzc2FcIixcbiAgICBcIkFsZXNzaWFcIixcbiAgICBcIkFsZXhhXCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkFsZXhpYVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJBbGV5bmFcIixcbiAgICBcIkFsaWFcIixcbiAgICBcIkFsaWNhXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiQWxpY2lhXCIsXG4gICAgXCJBbGluYVwiLFxuICAgIFwiQWxpc2FcIixcbiAgICBcIkFsaXNoYVwiLFxuICAgIFwiQWxpc3NhXCIsXG4gICAgXCJBbGl5YVwiLFxuICAgIFwiQWxpeWFoXCIsXG4gICAgXCJBbGxlZ3JhXCIsXG4gICAgXCJBbG1hXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbWVsaWFcIixcbiAgICBcIkFtZWxpZVwiLFxuICAgIFwiQW1pbmFcIixcbiAgICBcIkFtaXJhXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFuYVwiLFxuICAgIFwiQW5hYmVsXCIsXG4gICAgXCJBbmFzdGFzaWFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJBbmdlbGluYVwiLFxuICAgIFwiQW5nZWxpcXVlXCIsXG4gICAgXCJBbmphXCIsXG4gICAgXCJBbm5cIixcbiAgICBcIkFubmFcIixcbiAgICBcIkFubmFiZWxcIixcbiAgICBcIkFubmFiZWxsXCIsXG4gICAgXCJBbm5hYmVsbGVcIixcbiAgICBcIkFubmFsZW5hXCIsXG4gICAgXCJBbm5lXCIsXG4gICAgXCJBbm5la2VcIixcbiAgICBcIkFubmVsaWVcIixcbiAgICBcIkFubmVtYXJpZVwiLFxuICAgIFwiQW5uaVwiLFxuICAgIFwiQW5uaWVcIixcbiAgICBcIkFubmlrYVwiLFxuICAgIFwiQW5ueVwiLFxuICAgIFwiQW5vdWtcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFyZGFcIixcbiAgICBcIkFyaWFuYVwiLFxuICAgIFwiQXJpYW5lXCIsXG4gICAgXCJBcndlblwiLFxuICAgIFwiQXNobGV5XCIsXG4gICAgXCJBc3lhXCIsXG4gICAgXCJBdXJlbGlhXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkF2YVwiLFxuICAgIFwiQXlsZWVuXCIsXG4gICAgXCJBeWxpblwiLFxuICAgIFwiQXlzZVwiLFxuICAgIFwiQXpyYVwiLFxuICAgIFwiQmV0dHlcIixcbiAgICBcIkJpYW5jYVwiLFxuICAgIFwiQmlhbmthXCIsXG4gICAgXCJDYWl0bGluXCIsXG4gICAgXCJDYXJhXCIsXG4gICAgXCJDYXJpbmFcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJDYXJsb3R0YVwiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJvbGluXCIsXG4gICAgXCJDYXJvbGluYVwiLFxuICAgIFwiQ2Fyb2xpbmVcIixcbiAgICBcIkNhc3NhbmRyYVwiLFxuICAgIFwiQ2F0aGFyaW5hXCIsXG4gICAgXCJDYXRyaW5cIixcbiAgICBcIkNlY2lsZVwiLFxuICAgIFwiQ2VjaWxpYVwiLFxuICAgIFwiQ2VsaWFcIixcbiAgICBcIkNlbGluYVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJDZXlkYVwiLFxuICAgIFwiQ2V5bGluXCIsXG4gICAgXCJDaGFudGFsXCIsXG4gICAgXCJDaGFybGVlblwiLFxuICAgIFwiQ2hhcmxvdHRhXCIsXG4gICAgXCJDaGFybG90dGVcIixcbiAgICBcIkNoYXllbm5lXCIsXG4gICAgXCJDaGV5ZW5uZVwiLFxuICAgIFwiQ2hpYXJhXCIsXG4gICAgXCJDaHJpc3RpblwiLFxuICAgIFwiQ2hyaXN0aW5hXCIsXG4gICAgXCJDaW5keVwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiQ2xhcmlzc2FcIixcbiAgICBcIkNvbGxlZW5cIixcbiAgICBcIkNvbGxpZW5cIixcbiAgICBcIkNvcmFcIixcbiAgICBcIkNvcmlubmFcIixcbiAgICBcIkNvc2ltYVwiLFxuICAgIFwiRGFuYVwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiRGFyaWFcIixcbiAgICBcIkRhcmxlZW5cIixcbiAgICBcIkRlZm5lXCIsXG4gICAgXCJEZWxpYVwiLFxuICAgIFwiRGVuaXNlXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGlsYXJhXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEb3JvdGhlYVwiLFxuICAgIFwiRWNyaW5cIixcbiAgICBcIkVkYVwiLFxuICAgIFwiRWlsZWVuXCIsXG4gICAgXCJFbGFcIixcbiAgICBcIkVsYWluZVwiLFxuICAgIFwiRWxhbnVyXCIsXG4gICAgXCJFbGVhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxlbmlcIixcbiAgICBcIkVsZW9ub3JhXCIsXG4gICAgXCJFbGlhbmFcIixcbiAgICBcIkVsaWZcIixcbiAgICBcIkVsaW5hXCIsXG4gICAgXCJFbGlzYVwiLFxuICAgIFwiRWxpc2FiZXRoXCIsXG4gICAgXCJFbGxhXCIsXG4gICAgXCJFbGxlblwiLFxuICAgIFwiRWxsaVwiLFxuICAgIFwiRWxseVwiLFxuICAgIFwiRWxzYVwiLFxuICAgIFwiRW1lbGllXCIsXG4gICAgXCJFbWVseVwiLFxuICAgIFwiRW1pbGlhXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkVtaWx5XCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJFbW1lbHlcIixcbiAgICBcIkVtbWlcIixcbiAgICBcIkVtbXlcIixcbiAgICBcIkVuaWVcIixcbiAgICBcIkVubmFcIixcbiAgICBcIkVueWFcIixcbiAgICBcIkVzbWFcIixcbiAgICBcIkVzdGVsbGVcIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJFdmVsaW5cIixcbiAgICBcIkV2ZWxpbmFcIixcbiAgICBcIkV2ZWxpbmVcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiRmFiaWVubmVcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmF0bWFcIixcbiAgICBcIkZlbGljaWFcIixcbiAgICBcIkZlbGljaXRhc1wiLFxuICAgIFwiRmVsaW5hXCIsXG4gICAgXCJGZW1rZVwiLFxuICAgIFwiRmVuamFcIixcbiAgICBcIkZpbmVcIixcbiAgICBcIkZpbmlhXCIsXG4gICAgXCJGaW5qYVwiLFxuICAgIFwiRmlubmphXCIsXG4gICAgXCJGaW9uYVwiLFxuICAgIFwiRmxvcmFcIixcbiAgICBcIkZsb3JlbnRpbmVcIixcbiAgICBcIkZyYW5jZXNjYVwiLFxuICAgIFwiRnJhbmthXCIsXG4gICAgXCJGcmFuemlza2FcIixcbiAgICBcIkZyZWRlcmlrZVwiLFxuICAgIFwiRnJleWFcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJGcmllZGFcIixcbiAgICBcIkZyaWVkZXJpa2VcIixcbiAgICBcIkdpYWRhXCIsXG4gICAgXCJHaW5hXCIsXG4gICAgXCJHaXVsaWFcIixcbiAgICBcIkdpdWxpYW5hXCIsXG4gICAgXCJHcmV0YVwiLFxuICAgIFwiSGFpbGV5XCIsXG4gICAgXCJIYW5hXCIsXG4gICAgXCJIYW5uYVwiLFxuICAgIFwiSGFubmFoXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiSGVsZW5cIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJIZWxpblwiLFxuICAgIFwiSGVucmlldHRlXCIsXG4gICAgXCJIZW5yaWtlXCIsXG4gICAgXCJIZXJtaW5lXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIklsYXlkYVwiLFxuICAgIFwiSW1rZVwiLFxuICAgIFwiSW5hXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJJbmdhXCIsXG4gICAgXCJJbmthXCIsXG4gICAgXCJJcmVtXCIsXG4gICAgXCJJc2FcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNhYmVsbFwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIklzYWJlbGxlXCIsXG4gICAgXCJJdm9ubmVcIixcbiAgICBcIkphY3F1ZWxpbmVcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW1pbGFcIixcbiAgICBcIkphbmFcIixcbiAgICBcIkphbmVcIixcbiAgICBcIkphbmluXCIsXG4gICAgXCJKYW5pbmFcIixcbiAgICBcIkphbmluZVwiLFxuICAgIFwiSmFubmFcIixcbiAgICBcIkphbm5lXCIsXG4gICAgXCJKYXJhXCIsXG4gICAgXCJKYXNtaW5cIixcbiAgICBcIkphc21pbmFcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkplbGxhXCIsXG4gICAgXCJKZW5uYVwiLFxuICAgIFwiSmVubmlmZXJcIixcbiAgICBcIkplbm55XCIsXG4gICAgXCJKZXNzaWNhXCIsXG4gICAgXCJKZXNzeVwiLFxuICAgIFwiSmV0dGVcIixcbiAgICBcIkppbFwiLFxuICAgIFwiSmlsbFwiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkpvYW5uYVwiLFxuICAgIFwiSm9lbGluYVwiLFxuICAgIFwiSm9lbGluZVwiLFxuICAgIFwiSm9lbGxlXCIsXG4gICAgXCJKb2hhbm5hXCIsXG4gICAgXCJKb2xlZW5cIixcbiAgICBcIkpvbGllXCIsXG4gICAgXCJKb2xpZW5cIixcbiAgICBcIkpvbGluXCIsXG4gICAgXCJKb2xpbmFcIixcbiAgICBcIkpvbGluZVwiLFxuICAgIFwiSm9uYVwiLFxuICAgIFwiSm9uYWhcIixcbiAgICBcIkpvbm5hXCIsXG4gICAgXCJKb3NlZmluXCIsXG4gICAgXCJKb3NlZmluZVwiLFxuICAgIFwiSm9zZXBoaW5cIixcbiAgICBcIkpvc2VwaGluZVwiLFxuICAgIFwiSm9zaWVcIixcbiAgICBcIkpvc3lcIixcbiAgICBcIkpveVwiLFxuICAgIFwiSm95Y2VcIixcbiAgICBcIkp1ZGl0aFwiLFxuICAgIFwiSnVkeVwiLFxuICAgIFwiSnVsZVwiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhbmFcIixcbiAgICBcIkp1bGlhbmVcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJKdWxpZW5uZVwiLFxuICAgIFwiSnVsaWthXCIsXG4gICAgXCJKdWxpbmFcIixcbiAgICBcIkp1bmFcIixcbiAgICBcIkp1c3RpbmVcIixcbiAgICBcIkthamFcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiS2FybGFcIixcbiAgICBcIkthcmxvdHRhXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiS2Fyb2xpbmVcIixcbiAgICBcIkthc3NhbmRyYVwiLFxuICAgIFwiS2F0YXJpbmFcIixcbiAgICBcIkthdGhhcmluYVwiLFxuICAgIFwiS2F0aHJpblwiLFxuICAgIFwiS2F0amFcIixcbiAgICBcIkthdHJpblwiLFxuICAgIFwiS2F5YVwiLFxuICAgIFwiS2F5cmFcIixcbiAgICBcIktpYW5hXCIsXG4gICAgXCJLaWFyYVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJLaW1iZXJsZXlcIixcbiAgICBcIktpbWJlcmx5XCIsXG4gICAgXCJLaXJhXCIsXG4gICAgXCJLbGFyYVwiLFxuICAgIFwiS29yaW5uYVwiLFxuICAgIFwiS3Jpc3RpblwiLFxuICAgIFwiS3lyYVwiLFxuICAgIFwiTGFpbGFcIixcbiAgICBcIkxhbmFcIixcbiAgICBcIkxhcmFcIixcbiAgICBcIkxhcmlzc2FcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMYXVyZWVuXCIsXG4gICAgXCJMYXZpbmlhXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlYWhcIixcbiAgICBcIkxlYW5hXCIsXG4gICAgXCJMZWFuZHJhXCIsXG4gICAgXCJMZWFublwiLFxuICAgIFwiTGVlXCIsXG4gICAgXCJMZWlsYVwiLFxuICAgIFwiTGVuYVwiLFxuICAgIFwiTGVuZVwiLFxuICAgIFwiTGVuaVwiLFxuICAgIFwiTGVuaWFcIixcbiAgICBcIkxlbmphXCIsXG4gICAgXCJMZW55YVwiLFxuICAgIFwiTGVvbmFcIixcbiAgICBcIkxlb25pXCIsXG4gICAgXCJMZW9uaWVcIixcbiAgICBcIkxlb25vcmFcIixcbiAgICBcIkxldGljaWFcIixcbiAgICBcIkxldGl6aWFcIixcbiAgICBcIkxldmtlXCIsXG4gICAgXCJMZXlsYVwiLFxuICAgIFwiTGlhXCIsXG4gICAgXCJMaWFoXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTGlsaVwiLFxuICAgIFwiTGlsaWFcIixcbiAgICBcIkxpbGlhblwiLFxuICAgIFwiTGlsaWFuYVwiLFxuICAgIFwiTGlsaXRoXCIsXG4gICAgXCJMaWxsaVwiLFxuICAgIFwiTGlsbGlhblwiLFxuICAgIFwiTGlsbHlcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIkxpbmFcIixcbiAgICBcIkxpbmRhXCIsXG4gICAgXCJMaW5kc2F5XCIsXG4gICAgXCJMaW5lXCIsXG4gICAgXCJMaW5uXCIsXG4gICAgXCJMaW5uZWFcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxpc2FublwiLFxuICAgIFwiTGlzYW5uZVwiLFxuICAgIFwiTGl2XCIsXG4gICAgXCJMaXZpYVwiLFxuICAgIFwiTGl6XCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJMb3JlZW5cIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG90dGFcIixcbiAgICBcIkxvdHRlXCIsXG4gICAgXCJMb3Vpc2FcIixcbiAgICBcIkxvdWlzZVwiLFxuICAgIFwiTHVhbmFcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiTHVjaWVubmVcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkx1aXNhXCIsXG4gICAgXCJMdWlzZVwiLFxuICAgIFwiTHVrYVwiLFxuICAgIFwiTHVuYVwiLFxuICAgIFwiTHV6aWVcIixcbiAgICBcIkx5YVwiLFxuICAgIFwiTHlkaWFcIixcbiAgICBcIkx5blwiLFxuICAgIFwiTHlublwiLFxuICAgIFwiTWFkZWxlaW5lXCIsXG4gICAgXCJNYWRpdGFcIixcbiAgICBcIk1hZGxlZW5cIixcbiAgICBcIk1hZGxlblwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYWlrZVwiLFxuICAgIFwiTWFpbGluXCIsXG4gICAgXCJNYWlyYVwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiTWFsZW5hXCIsXG4gICAgXCJNYWxpYVwiLFxuICAgIFwiTWFsaW5cIixcbiAgICBcIk1hbGluYVwiLFxuICAgIFwiTWFuZHlcIixcbiAgICBcIk1hcmFcIixcbiAgICBcIk1hcmFoXCIsXG4gICAgXCJNYXJlaWtlXCIsXG4gICAgXCJNYXJlblwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhbVwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIk1hcmlla2VcIixcbiAgICBcIk1hcmllbGxhXCIsXG4gICAgXCJNYXJpa2FcIixcbiAgICBcIk1hcmluYVwiLFxuICAgIFwiTWFyaXNhXCIsXG4gICAgXCJNYXJpc3NhXCIsXG4gICAgXCJNYXJpdFwiLFxuICAgIFwiTWFybGFcIixcbiAgICBcIk1hcmxlZW5cIixcbiAgICBcIk1hcmxlblwiLFxuICAgIFwiTWFybGVuYVwiLFxuICAgIFwiTWFybGVuZVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIk1hcnRoYVwiLFxuICAgIFwiTWFyeVwiLFxuICAgIFwiTWFyeWFtXCIsXG4gICAgXCJNYXRoaWxkYVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIk1heGlcIixcbiAgICBcIk1heGltYVwiLFxuICAgIFwiTWF4aW5lXCIsXG4gICAgXCJNYXlhXCIsXG4gICAgXCJNYXlyYVwiLFxuICAgIFwiTWVkaW5hXCIsXG4gICAgXCJNZWRpbmVcIixcbiAgICBcIk1laWtlXCIsXG4gICAgXCJNZWxhbmllXCIsXG4gICAgXCJNZWxla1wiLFxuICAgIFwiTWVsaWtlXCIsXG4gICAgXCJNZWxpbmFcIixcbiAgICBcIk1lbGluZGFcIixcbiAgICBcIk1lbGlzXCIsXG4gICAgXCJNZWxpc2FcIixcbiAgICBcIk1lbGlzc2FcIixcbiAgICBcIk1lcmxlXCIsXG4gICAgXCJNZXJ2ZVwiLFxuICAgIFwiTWVyeWVtXCIsXG4gICAgXCJNZXR0ZVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiTWljaGVsbGVcIixcbiAgICBcIk1pZWtlXCIsXG4gICAgXCJNaWxhXCIsXG4gICAgXCJNaWxhbmFcIixcbiAgICBcIk1pbGVuYVwiLFxuICAgIFwiTWlsbGFcIixcbiAgICBcIk1pbmFcIixcbiAgICBcIk1pcmFcIixcbiAgICBcIk1pcmF5XCIsXG4gICAgXCJNaXJpYW1cIixcbiAgICBcIk1pcmphXCIsXG4gICAgXCJNb25hXCIsXG4gICAgXCJNb25pcXVlXCIsXG4gICAgXCJOYWRpbmVcIixcbiAgICBcIk5hZGphXCIsXG4gICAgXCJOYWVtaVwiLFxuICAgIFwiTmFuY3lcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJOYXRoYWxpZVwiLFxuICAgIFwiTmVlbGVcIixcbiAgICBcIk5lbGFcIixcbiAgICBcIk5lbGVcIixcbiAgICBcIk5lbGxpXCIsXG4gICAgXCJOZWxseVwiLFxuICAgIFwiTmlhXCIsXG4gICAgXCJOaWNvbGVcIixcbiAgICBcIk5pa2FcIixcbiAgICBcIk5pa2VcIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlsYVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTmlzYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIk9saXZpYVwiLFxuICAgIFwiUGF0cmljaWFcIixcbiAgICBcIlBhdHJpemlhXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGF1bGluYVwiLFxuICAgIFwiUGF1bGluZVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBoaWxpbmVcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiUGlhXCIsXG4gICAgXCJSYWhlbFwiLFxuICAgIFwiUmFuaWFcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJlYmVra2FcIixcbiAgICBcIlJpYW5hXCIsXG4gICAgXCJSaWVrZVwiLFxuICAgIFwiUmlrZVwiLFxuICAgIFwiUm9taW5hXCIsXG4gICAgXCJSb215XCIsXG4gICAgXCJSb25qYVwiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zYWxpZVwiLFxuICAgIFwiUnVieVwiLFxuICAgIFwiU2FicmluYVwiLFxuICAgIFwiU2FocmFcIixcbiAgICBcIlNhbGx5XCIsXG4gICAgXCJTYWxvbWVcIixcbiAgICBcIlNhbWFudGhhXCIsXG4gICAgXCJTYW1pYVwiLFxuICAgIFwiU2FtaXJhXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIlNhbmR5XCIsXG4gICAgXCJTYW5qYVwiLFxuICAgIFwiU2FwaGlyYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIlNhc2tpYVwiLFxuICAgIFwiU2VsaW5cIixcbiAgICBcIlNlbGluYVwiLFxuICAgIFwiU2VsbWFcIixcbiAgICBcIlNlbmFcIixcbiAgICBcIlNpZG5leVwiLFxuICAgIFwiU2llbm5hXCIsXG4gICAgXCJTaWxqYVwiLFxuICAgIFwiU2luYVwiLFxuICAgIFwiU2luamFcIixcbiAgICBcIlNtaWxsYVwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIlNvZmllXCIsXG4gICAgXCJTb25qYVwiLFxuICAgIFwiU29waGlhXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIlNvcmF5YVwiLFxuICAgIFwiU3RlZmFuaWVcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlcGhhbmllXCIsXG4gICAgXCJTdGluYVwiLFxuICAgIFwiU3VkZVwiLFxuICAgIFwiU3VtbWVyXCIsXG4gICAgXCJTdXNhbm5lXCIsXG4gICAgXCJTdmVhXCIsXG4gICAgXCJTdmVuamFcIixcbiAgICBcIlN5ZG5leVwiLFxuICAgIFwiVGFiZWFcIixcbiAgICBcIlRhbGVhXCIsXG4gICAgXCJUYWxpYVwiLFxuICAgIFwiVGFtYXJhXCIsXG4gICAgXCJUYW1pYVwiLFxuICAgIFwiVGFtaW5hXCIsXG4gICAgXCJUYW5qYVwiLFxuICAgIFwiVGFyYVwiLFxuICAgIFwiVGFyamFcIixcbiAgICBcIlRlcmVzYVwiLFxuICAgIFwiVGVzc2FcIixcbiAgICBcIlRoYWxlYVwiLFxuICAgIFwiVGhhbGlhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUaGVyZXNhXCIsXG4gICAgXCJUaWFcIixcbiAgICBcIlRpbmFcIixcbiAgICBcIlRvbWtlXCIsXG4gICAgXCJUdWFuYVwiLFxuICAgIFwiVmFsZW50aW5hXCIsXG4gICAgXCJWYWxlcmlhXCIsXG4gICAgXCJWYWxlcmllXCIsXG4gICAgXCJWYW5lc3NhXCIsXG4gICAgXCJWZXJhXCIsXG4gICAgXCJWZXJvbmlrYVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpa3RvcmlhXCIsXG4gICAgXCJWaW9sYVwiLFxuICAgIFwiVml2aWFuXCIsXG4gICAgXCJWaXZpZW5cIixcbiAgICBcIlZpdmllbm5lXCIsXG4gICAgXCJXaWJrZVwiLFxuICAgIFwiV2llYmtlXCIsXG4gICAgXCJYZW5pYVwiLFxuICAgIFwiWWFyYVwiLFxuICAgIFwiWWFyZW5cIixcbiAgICBcIllhc21pblwiLFxuICAgIFwiWWx2aVwiLFxuICAgIFwiWWx2aWVcIixcbiAgICBcIll2b25uZVwiLFxuICAgIFwiWmFyYVwiLFxuICAgIFwiWmVocmFcIixcbiAgICBcIlpleW5lcFwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJab2V5XCIsXG4gICAgXCJab8OpXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJlbFwiLFxuICAgIFwiQWJpY2h0XCIsXG4gICAgXCJBYnJhaGFtXCIsXG4gICAgXCJBYnJhbW92aWNcIixcbiAgICBcIkFidFwiLFxuICAgIFwiQWNoaWxsZXNcIixcbiAgICBcIkFjaGtpbmFkemVcIixcbiAgICBcIkFja2VybWFublwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiQWRhbXNcIixcbiAgICBcIkFkZVwiLFxuICAgIFwiQWdvc3RpbmlcIixcbiAgICBcIkFobGtlXCIsXG4gICAgXCJBaHJlbmJlcmdcIixcbiAgICBcIkFocmVuc1wiLFxuICAgIFwiQWlnbmVyXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsYnJlY2h0XCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGl6YWRlaFwiLFxuICAgIFwiQWxsZ2V5ZXJcIixcbiAgICBcIkFtYW5uXCIsXG4gICAgXCJBbWJlcmdcIixcbiAgICBcIkFuZGluZ1wiLFxuICAgIFwiQW5nZ3JlbnlcIixcbiAgICBcIkFwaXR6XCIsXG4gICAgXCJBcmVuZHRcIixcbiAgICBcIkFyZW5zXCIsXG4gICAgXCJBcm5kdFwiLFxuICAgIFwiQXJ5ZWVcIixcbiAgICBcIkFzY2hlbmJyb2ljaFwiLFxuICAgIFwiQXNzbXVzXCIsXG4gICAgXCJBc3RhZmVpXCIsXG4gICAgXCJBdWVyXCIsXG4gICAgXCJBeG1hbm5cIixcbiAgICBcIkJhYXJja1wiLFxuICAgIFwiQmFjaG1hbm5cIixcbiAgICBcIkJhZGFuZVwiLFxuICAgIFwiQmFkZXJcIixcbiAgICBcIkJhZ2FuelwiLFxuICAgIFwiQmFobFwiLFxuICAgIFwiQmFrXCIsXG4gICAgXCJCYWxjZXJcIixcbiAgICBcIkJhbGNrXCIsXG4gICAgXCJCYWxrb3dcIixcbiAgICBcIkJhbG51d2VpdFwiLFxuICAgIFwiQmFsemVyXCIsXG4gICAgXCJCYW5zZVwiLFxuICAgIFwiQmFyclwiLFxuICAgIFwiQmFydGVsc1wiLFxuICAgIFwiQmFydGhcIixcbiAgICBcIkJhcnlsbGFcIixcbiAgICBcIkJhc2VkYVwiLFxuICAgIFwiQmF0dGtlXCIsXG4gICAgXCJCYXVlclwiLFxuICAgIFwiQmF1ZXJtZWlzdGVyXCIsXG4gICAgXCJCYXVtYW5uXCIsXG4gICAgXCJCYXVtZWlzdGVyXCIsXG4gICAgXCJCYXVzY2hpbmdlclwiLFxuICAgIFwiQmF1c2Noa2VcIixcbiAgICBcIkJheWVyXCIsXG4gICAgXCJCZWF2b2d1aVwiLFxuICAgIFwiQmVja1wiLFxuICAgIFwiQmVja2VsXCIsXG4gICAgXCJCZWNrZXJcIixcbiAgICBcIkJlY2ttYW5uXCIsXG4gICAgXCJCZWRld2l0elwiLFxuICAgIFwiQmVlbGVcIixcbiAgICBcIkJlZXJcIixcbiAgICBcIkJlZ2dlcm93XCIsXG4gICAgXCJCZWhcIixcbiAgICBcIkJlaHJcIixcbiAgICBcIkJlaHJlbmJydWNoXCIsXG4gICAgXCJCZWx6XCIsXG4gICAgXCJCZW5kZXJcIixcbiAgICBcIkJlbmVja2VcIixcbiAgICBcIkJlbm5lclwiLFxuICAgIFwiQmVubmluZ2VyXCIsXG4gICAgXCJCZW56aW5nXCIsXG4gICAgXCJCZXJlbmRzXCIsXG4gICAgXCJCZXJnZXJcIixcbiAgICBcIkJlcm5lclwiLFxuICAgIFwiQmVybmluZ1wiLFxuICAgIFwiQmVydGVuYnJlaXRlclwiLFxuICAgIFwiQmVzdFwiLFxuICAgIFwiQmV0aGtlXCIsXG4gICAgXCJCZXR6XCIsXG4gICAgXCJCZXVzaGF1c2VuXCIsXG4gICAgXCJCZXV0ZWxzcGFjaGVyXCIsXG4gICAgXCJCZXllclwiLFxuICAgIFwiQmliYVwiLFxuICAgIFwiQmljaGxlclwiLFxuICAgIFwiQmlja2VsXCIsXG4gICAgXCJCaWVkZXJtYW5uXCIsXG4gICAgXCJCaWVsZXJcIixcbiAgICBcIkJpZWxlcnRcIixcbiAgICBcIkJpZW5hc2NoXCIsXG4gICAgXCJCaWVuaWFzXCIsXG4gICAgXCJCaWVzZW5iYWNoXCIsXG4gICAgXCJCaWdkZWxpXCIsXG4gICAgXCJCaXJrZW1leWVyXCIsXG4gICAgXCJCaXR0bmVyXCIsXG4gICAgXCJCbGFua1wiLFxuICAgIFwiQmxhc2NoZWtcIixcbiAgICBcIkJsYXNzbmVja1wiLFxuICAgIFwiQmxvY2hcIixcbiAgICBcIkJsb2Nod2l0elwiLFxuICAgIFwiQmxvY2toYXVzXCIsXG4gICAgXCJCbHVtXCIsXG4gICAgXCJCbHVtZVwiLFxuICAgIFwiQm9ja1wiLFxuICAgIFwiQm9kZVwiLFxuICAgIFwiQm9nZGFzaGluXCIsXG4gICAgXCJCb2dlbnJpZWRlclwiLFxuICAgIFwiQm9oZ2VcIixcbiAgICBcIkJvbG1cIixcbiAgICBcIkJvcmdzY2h1bHplXCIsXG4gICAgXCJCb3JrXCIsXG4gICAgXCJCb3JtYW5uXCIsXG4gICAgXCJCb3Juc2NoZXVlclwiLFxuICAgIFwiQm9ycm1hbm5cIixcbiAgICBcIkJvcnNjaFwiLFxuICAgIFwiQm9ydXNjaGV3c2tpXCIsXG4gICAgXCJCb3NcIixcbiAgICBcIkJvc2xlclwiLFxuICAgIFwiQm91cnJvdWFnXCIsXG4gICAgXCJCb3VzY2hlblwiLFxuICAgIFwiQm94aGFtbWVyXCIsXG4gICAgXCJCb3lkZVwiLFxuICAgIFwiQm96c2lrXCIsXG4gICAgXCJCcmFuZFwiLFxuICAgIFwiQnJhbmRlbmJ1cmdcIixcbiAgICBcIkJyYW5kaXNcIixcbiAgICBcIkJyYW5kdFwiLFxuICAgIFwiQnJhdWVyXCIsXG4gICAgXCJCcmF1blwiLFxuICAgIFwiQnJlaG1lclwiLFxuICAgIFwiQnJlaXRlbnN0ZWluXCIsXG4gICAgXCJCcmVtZXJcIixcbiAgICBcIkJyZW1zZXJcIixcbiAgICBcIkJyZW5uZXJcIixcbiAgICBcIkJyZXR0c2NobmVpZGVyXCIsXG4gICAgXCJCcmV1XCIsXG4gICAgXCJCcmV1ZXJcIixcbiAgICBcIkJyaWVzZW5pY2tcIixcbiAgICBcIkJyaW5nbWFublwiLFxuICAgIFwiQnJpbmttYW5uXCIsXG4gICAgXCJCcml4XCIsXG4gICAgXCJCcm9lbmluZ1wiLFxuICAgIFwiQnJvc2NoXCIsXG4gICAgXCJCcnVja21hbm5cIixcbiAgICBcIkJydWRlclwiLFxuICAgIFwiQnJ1aG5zXCIsXG4gICAgXCJCcnVubmVyXCIsXG4gICAgXCJCcnVuc1wiLFxuICAgIFwiQnLDpHV0aWdhbVwiLFxuICAgIFwiQnLDtm1tZVwiLFxuICAgIFwiQnLDvGdnbWFublwiLFxuICAgIFwiQnVjaGhvbHpcIixcbiAgICBcIkJ1Y2hydWNrZXJcIixcbiAgICBcIkJ1ZGVyXCIsXG4gICAgXCJCdWx0bWFublwiLFxuICAgIFwiQnVuamVzXCIsXG4gICAgXCJCdXJnZXJcIixcbiAgICBcIkJ1cmdoYWdlblwiLFxuICAgIFwiQnVya2hhcmRcIixcbiAgICBcIkJ1cmtoYXJkdFwiLFxuICAgIFwiQnVybWVpc3RlclwiLFxuICAgIFwiQnVzY2hcIixcbiAgICBcIkJ1c2NoYmF1bVwiLFxuICAgIFwiQnVzZW1hbm5cIixcbiAgICBcIkJ1c3NcIixcbiAgICBcIkJ1c3NlXCIsXG4gICAgXCJCdXNzbWFublwiLFxuICAgIFwiQnlyZFwiLFxuICAgIFwiQsOkY2tlclwiLFxuICAgIFwiQsO2aG1cIixcbiAgICBcIkLDtm5pc2NoXCIsXG4gICAgXCJCw7ZyZ2VsaW5nXCIsXG4gICAgXCJCw7ZybmVyXCIsXG4gICAgXCJCw7Z0dG5lclwiLFxuICAgIFwiQsO8Y2hlbGVcIixcbiAgICBcIkLDvGhsZXJcIixcbiAgICBcIkLDvGtlclwiLFxuICAgIFwiQsO8bmdlbmVyXCIsXG4gICAgXCJCw7xyZ2VyXCIsXG4gICAgXCJCw7xya2xlaW5cIixcbiAgICBcIkLDvHNjaGVyXCIsXG4gICAgXCJCw7x0dG5lclwiLFxuICAgIFwiQ2FtYXJhXCIsXG4gICAgXCJDYXJsb3dpdHpcIixcbiAgICBcIkNhcmxzb2huXCIsXG4gICAgXCJDYXNwYXJpXCIsXG4gICAgXCJDYXNwZXJzXCIsXG4gICAgXCJDaGFwcm9uXCIsXG4gICAgXCJDaHJpc3RcIixcbiAgICBcIkNpZXJwaW5za2lcIixcbiAgICBcIkNsYXJpdXNcIixcbiAgICBcIkNsZWVtXCIsXG4gICAgXCJDbGV2ZVwiLFxuICAgIFwiQ29cIixcbiAgICBcIkNvbnJhZFwiLFxuICAgIFwiQ29yZGVzXCIsXG4gICAgXCJDb3JuZWxzZW5cIixcbiAgICBcIkNvcnNcIixcbiAgICBcIkNvdHRoYXJkdFwiLFxuICAgIFwiQ3Jld3NcIixcbiAgICBcIkNyb25qw6RnZXJcIixcbiAgICBcIkNyb3Nza29mcFwiLFxuICAgIFwiRGFcIixcbiAgICBcIkRhaG1cIixcbiAgICBcIkRhaG1lblwiLFxuICAgIFwiRGFpbWVyXCIsXG4gICAgXCJEYW1hc2tlXCIsXG4gICAgXCJEYW5uZWJlcmdcIixcbiAgICBcIkRhbm5lclwiLFxuICAgIFwiRGF1YlwiLFxuICAgIFwiRGF1Ym5lclwiLFxuICAgIFwiRGF1ZHJpY2hcIixcbiAgICBcIkRhdWVyXCIsXG4gICAgXCJEYXVtXCIsXG4gICAgXCJEYXV0aFwiLFxuICAgIFwiRGF1dHplbmJlcmdcIixcbiAgICBcIkRlXCIsXG4gICAgXCJEZWNrZXJcIixcbiAgICBcIkRlY2tlcnRcIixcbiAgICBcIkRlZXJiZXJnXCIsXG4gICAgXCJEZWhtZWxcIixcbiAgICBcIkRlamFcIixcbiAgICBcIkRlbG9uZ2VcIixcbiAgICBcIkRlbXV0XCIsXG4gICAgXCJEZW5nbGVyXCIsXG4gICAgXCJEZW5uZXJcIixcbiAgICBcIkRlbnppbmdlclwiLFxuICAgIFwiRGVyclwiLFxuICAgIFwiRGVydG1hbm5cIixcbiAgICBcIkRldGhsb2ZmXCIsXG4gICAgXCJEZXVzY2hsZVwiLFxuICAgIFwiRGllY2ttYW5uXCIsXG4gICAgXCJEaWVkcmljaFwiLFxuICAgIFwiRGlla21hbm5cIixcbiAgICBcIkRpZW5lbFwiLFxuICAgIFwiRGllc1wiLFxuICAgIFwiRGlldHJpY2hcIixcbiAgICBcIkRpZXR6XCIsXG4gICAgXCJEaWV0enNjaFwiLFxuICAgIFwiRGllemVsXCIsXG4gICAgXCJEaWxsYVwiLFxuICAgIFwiRGluZ2Vsc3RlZHRcIixcbiAgICBcIkRpcHBsXCIsXG4gICAgXCJEaXR0bWFublwiLFxuICAgIFwiRGl0dG1hclwiLFxuICAgIFwiRGl0dG1lclwiLFxuICAgIFwiRGl4XCIsXG4gICAgXCJEb2JicnVuelwiLFxuICAgIFwiRG9ibGVyXCIsXG4gICAgXCJEb2hyaW5nXCIsXG4gICAgXCJEb2xjaFwiLFxuICAgIFwiRG9sZFwiLFxuICAgIFwiRG9tYnJvd3NraVwiLFxuICAgIFwiRG9uaWVcIixcbiAgICBcIkRvc2tvY3p5bnNraVwiLFxuICAgIFwiRHJhZ3VcIixcbiAgICBcIkRyZWNoc2xlclwiLFxuICAgIFwiRHJlZXNcIixcbiAgICBcIkRyZWhlclwiLFxuICAgIFwiRHJlaWVyXCIsXG4gICAgXCJEcmVpc3NpZ2Fja2VyXCIsXG4gICAgXCJEcmVzc2xlclwiLFxuICAgIFwiRHJld3NcIixcbiAgICBcIkR1bWFcIixcbiAgICBcIkR1dGtpZXdpY3pcIixcbiAgICBcIkR5ZXR0XCIsXG4gICAgXCJEeWx1c1wiLFxuICAgIFwiRMOkY2hlcnRcIixcbiAgICBcIkTDtmJlbFwiLFxuICAgIFwiRMO2cmluZ1wiLFxuICAgIFwiRMO2cm5lclwiLFxuICAgIFwiRMO2cnJlXCIsXG4gICAgXCJEw7xja1wiLFxuICAgIFwiRWJlcmhhcmRcIixcbiAgICBcIkViZXJoYXJkdFwiLFxuICAgIFwiRWNrZXJcIixcbiAgICBcIkVja2hhcmR0XCIsXG4gICAgXCJFZG9yaFwiLFxuICAgIFwiRWZmbGVyXCIsXG4gICAgXCJFZ2dlbm11ZWxsZXJcIixcbiAgICBcIkVobVwiLFxuICAgIFwiRWhtYW5uXCIsXG4gICAgXCJFaHJpZ1wiLFxuICAgIFwiRWljaFwiLFxuICAgIFwiRWljaG1hbm5cIixcbiAgICBcIkVpZmVydFwiLFxuICAgIFwiRWluZXJ0XCIsXG4gICAgXCJFaXNlbmxhdWVyXCIsXG4gICAgXCJFa3BvXCIsXG4gICAgXCJFbGJlXCIsXG4gICAgXCJFbGV5dGhcIixcbiAgICBcIkVsc3NcIixcbiAgICBcIkVtZXJ0XCIsXG4gICAgXCJFbW1lbG1hbm5cIixcbiAgICBcIkVuZGVyXCIsXG4gICAgXCJFbmdlbFwiLFxuICAgIFwiRW5nZWxlblwiLFxuICAgIFwiRW5nZWxtYW5uXCIsXG4gICAgXCJFcGxpbml1c1wiLFxuICAgIFwiRXJkbWFublwiLFxuICAgIFwiRXJoYXJkdFwiLFxuICAgIFwiRXJsZWlcIixcbiAgICBcIkVybVwiLFxuICAgIFwiRXJuc3RcIixcbiAgICBcIkVydGxcIixcbiAgICBcIkVyd2VzXCIsXG4gICAgXCJFc2Vud2VpblwiLFxuICAgIFwiRXNzZXJcIixcbiAgICBcIkV2ZXJzXCIsXG4gICAgXCJFdmVydHNcIixcbiAgICBcIkV3YWxkXCIsXG4gICAgXCJGYWhuZXJcIixcbiAgICBcIkZhbGxlclwiLFxuICAgIFwiRmFsdGVyXCIsXG4gICAgXCJGYXJiZXJcIixcbiAgICBcIkZhc3NiZW5kZXJcIixcbiAgICBcIkZhdWxoYWJlclwiLFxuICAgIFwiRmVocmlnXCIsXG4gICAgXCJGZWxkXCIsXG4gICAgXCJGZWxrZVwiLFxuICAgIFwiRmVsbGVyXCIsXG4gICAgXCJGZW5uZXJcIixcbiAgICBcIkZlbnNrZVwiLFxuICAgIFwiRmV1ZXJiYWNoXCIsXG4gICAgXCJGaWV0elwiLFxuICAgIFwiRmlnbFwiLFxuICAgIFwiRmlndXJhXCIsXG4gICAgXCJGaWxpcG93c2tpXCIsXG4gICAgXCJGaWxzaW5nZXJcIixcbiAgICBcIkZpbmNrZVwiLFxuICAgIFwiRmlua1wiLFxuICAgIFwiRmlua2VcIixcbiAgICBcIkZpc2NoZXJcIixcbiAgICBcIkZpdHNjaGVuXCIsXG4gICAgXCJGbGVpc2NoZXJcIixcbiAgICBcIkZsZWlzY2htYW5uXCIsXG4gICAgXCJGbG9kZXJcIixcbiAgICBcIkZsb3JjemFrXCIsXG4gICAgXCJGbG9yZVwiLFxuICAgIFwiRmxvdHRtYW5uXCIsXG4gICAgXCJGb3JrZWxcIixcbiAgICBcIkZvcnN0XCIsXG4gICAgXCJGcmFobWVrZVwiLFxuICAgIFwiRnJhbmtcIixcbiAgICBcIkZyYW5rZVwiLFxuICAgIFwiRnJhbnRhXCIsXG4gICAgXCJGcmFudHpcIixcbiAgICBcIkZyYW56XCIsXG4gICAgXCJGcmFuemlzXCIsXG4gICAgXCJGcmFuem1hbm5cIixcbiAgICBcIkZyYXVlblwiLFxuICAgIFwiRnJhdWVuZG9yZlwiLFxuICAgIFwiRnJlaWdhbmdcIixcbiAgICBcIkZyZWltYW5uXCIsXG4gICAgXCJGcmVpbXV0aFwiLFxuICAgIFwiRnJlaXNlblwiLFxuICAgIFwiRnJlbnplbFwiLFxuICAgIFwiRnJleVwiLFxuICAgIFwiRnJpY2tlXCIsXG4gICAgXCJGcmllZFwiLFxuICAgIFwiRnJpZWRla1wiLFxuICAgIFwiRnJpZWRlbmJlcmdcIixcbiAgICBcIkZyaWVkbWFublwiLFxuICAgIFwiRnJpZWRyaWNoXCIsXG4gICAgXCJGcmllc3NcIixcbiAgICBcIkZyaXNjaFwiLFxuICAgIFwiRnJvaG5cIixcbiAgICBcIkZyb3NjaFwiLFxuICAgIFwiRnVjaHNcIixcbiAgICBcIkZ1aGxicsO8Z2dlXCIsXG4gICAgXCJGdXNlbmlnXCIsXG4gICAgXCJGdXN0XCIsXG4gICAgXCJGw7Zyc3RlclwiLFxuICAgIFwiR2FiYVwiLFxuICAgIFwiR2FiaXVzXCIsXG4gICAgXCJHYWJsZXJcIixcbiAgICBcIkdhZHNjaGlld1wiLFxuICAgIFwiR2Frc3TDpGR0ZXJcIixcbiAgICBcIkdhbGFuZGVyXCIsXG4gICAgXCJHYW1saW5cIixcbiAgICBcIkdhbXBlclwiLFxuICAgIFwiR2FuZ251c1wiLFxuICAgIFwiR2Fuem1hbm5cIixcbiAgICBcIkdhcmF0dmFcIixcbiAgICBcIkdhc3RcIixcbiAgICBcIkdhc3RlbFwiLFxuICAgIFwiR2F0emthXCIsXG4gICAgXCJHYXVkZXJcIixcbiAgICBcIkdlYmhhcmR0XCIsXG4gICAgXCJHZWVzZVwiLFxuICAgIFwiR2VocmVcIixcbiAgICBcIkdlaHJpZ1wiLFxuICAgIFwiR2VocmluZ1wiLFxuICAgIFwiR2VocmtlXCIsXG4gICAgXCJHZWlnZXJcIixcbiAgICBcIkdlaXNsZXJcIixcbiAgICBcIkdlaXNzbGVyXCIsXG4gICAgXCJHZWxsaW5nXCIsXG4gICAgXCJHZW5zXCIsXG4gICAgXCJHZXJiZW5ub3dcIixcbiAgICBcIkdlcmRlbFwiLFxuICAgIFwiR2VyaGFyZHRcIixcbiAgICBcIkdlcnNjaGxlclwiLFxuICAgIFwiR2Vyc29uXCIsXG4gICAgXCJHZXNlbGxcIixcbiAgICBcIkdleWVyXCIsXG4gICAgXCJHaGlybWFpXCIsXG4gICAgXCJHaG9zaFwiLFxuICAgIFwiR2llaGxcIixcbiAgICBcIkdpZXJpc2NoXCIsXG4gICAgXCJHaWVzYVwiLFxuICAgIFwiR2llc2NoZVwiLFxuICAgIFwiR2lsZGVcIixcbiAgICBcIkdsYXR0aW5nXCIsXG4gICAgXCJHb2ViZWxcIixcbiAgICBcIkdvZWRpY2tlXCIsXG4gICAgXCJHb2xkYmVja1wiLFxuICAgIFwiR29sZGZ1c3NcIixcbiAgICBcIkdvbGRrYW1wXCIsXG4gICAgXCJHb2xka8O8aGxlXCIsXG4gICAgXCJHb2xsZXJcIixcbiAgICBcIkdvbGxpbmdcIixcbiAgICBcIkdvbGxub3dcIixcbiAgICBcIkdvbG9tc2tpXCIsXG4gICAgXCJHb21iZXJ0XCIsXG4gICAgXCJHb3R0aGFyZHRcIixcbiAgICBcIkdvdHRzY2hhbGtcIixcbiAgICBcIkdvdHpcIixcbiAgICBcIkdveVwiLFxuICAgIFwiR3JhZHpraVwiLFxuICAgIFwiR3JhZlwiLFxuICAgIFwiR3JhbXNcIixcbiAgICBcIkdyYXNzZVwiLFxuICAgIFwiR3JhdHpreVwiLFxuICAgIFwiR3JhdVwiLFxuICAgIFwiR3JlYlwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWdlclwiLFxuICAgIFwiR3JlaXRoYW5uZXJcIixcbiAgICBcIkdyZXNjaG5lclwiLFxuICAgIFwiR3JpZW1cIixcbiAgICBcIkdyaWVzZVwiLFxuICAgIFwiR3JpbW1cIixcbiAgICBcIkdyb21pc2NoXCIsXG4gICAgXCJHcm9zc1wiLFxuICAgIFwiR3Jvc3NlclwiLFxuICAgIFwiR3Jvc3NoZWltXCIsXG4gICAgXCJHcm9zc2tvcGZcIixcbiAgICBcIkdyb3RoYXVzXCIsXG4gICAgXCJHcm90aGtvcHBcIixcbiAgICBcIkdyb3RrZVwiLFxuICAgIFwiR3J1YmVcIixcbiAgICBcIkdydWJlclwiLFxuICAgIFwiR3J1bmRtYW5uXCIsXG4gICAgXCJHcnVuaW5nXCIsXG4gICAgXCJHcnVzemVja2lcIixcbiAgICBcIkdyw7Zzc1wiLFxuICAgIFwiR3LDtnR6aW5nZXJcIixcbiAgICBcIkdyw7xuXCIsXG4gICAgXCJHcsO8bmVyXCIsXG4gICAgXCJHdW1tZWx0XCIsXG4gICAgXCJHdW5rZWxcIixcbiAgICBcIkd1bnRoZXJcIixcbiAgICBcIkd1dGphaHJcIixcbiAgICBcIkd1dG93aWN6XCIsXG4gICAgXCJHdXRzY2hhbmtcIixcbiAgICBcIkfDtmJlbFwiLFxuICAgIFwiR8O2Y2tlcml0elwiLFxuICAgIFwiR8O2aGxlclwiLFxuICAgIFwiR8O2cmxpY2hcIixcbiAgICBcIkfDtnJtZXJcIixcbiAgICBcIkfDtnR6XCIsXG4gICAgXCJHw7Z0emVsbWFublwiLFxuICAgIFwiR8O8bGRlbWVpc3RlclwiLFxuICAgIFwiR8O8bnRoZXJcIixcbiAgICBcIkfDvG56XCIsXG4gICAgXCJHw7xyYmlnXCIsXG4gICAgXCJIYWFja1wiLFxuICAgIFwiSGFhZlwiLFxuICAgIFwiSGFiZWxcIixcbiAgICBcIkhhY2hlXCIsXG4gICAgXCJIYWNrYnVzY2hcIixcbiAgICBcIkhhY2tlbGJ1c2NoXCIsXG4gICAgXCJIYWRmaWVsZFwiLFxuICAgIFwiSGFkd2ljaFwiLFxuICAgIFwiSGFmZXJrYW1wXCIsXG4gICAgXCJIYWhuXCIsXG4gICAgXCJIYWpla1wiLFxuICAgIFwiSGFsbG1hbm5cIixcbiAgICBcIkhhbWFublwiLFxuICAgIFwiSGFuZW5iZXJnZXJcIixcbiAgICBcIkhhbm5lY2tlclwiLFxuICAgIFwiSGFubmlza2VcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyZHlcIixcbiAgICBcIkhhcmdhc3NlclwiLFxuICAgIFwiSGFybXNcIixcbiAgICBcIkhhcm5hcHBcIixcbiAgICBcIkhhcnRlclwiLFxuICAgIFwiSGFydGluZ1wiLFxuICAgIFwiSGFydGxpZWJcIixcbiAgICBcIkhhcnRtYW5uXCIsXG4gICAgXCJIYXJ0d2lnXCIsXG4gICAgXCJIYXJ0elwiLFxuICAgIFwiSGFzY2hrZVwiLFxuICAgIFwiSGFzbGVyXCIsXG4gICAgXCJIYXNzZVwiLFxuICAgIFwiSGFzc2ZlbGRcIixcbiAgICBcIkhhdWdcIixcbiAgICBcIkhhdWtlXCIsXG4gICAgXCJIYXVwdFwiLFxuICAgIFwiSGF2ZXJuZXlcIixcbiAgICBcIkhlYmVyc3RyZWl0XCIsXG4gICAgXCJIZWNobGVyXCIsXG4gICAgXCJIZWNodFwiLFxuICAgIFwiSGVja1wiLFxuICAgIFwiSGVkZXJtYW5uXCIsXG4gICAgXCJIZWhsXCIsXG4gICAgXCJIZWlkZWxtYW5uXCIsXG4gICAgXCJIZWlkbGVyXCIsXG4gICAgXCJIZWluZW1hbm5cIixcbiAgICBcIkhlaW5pZ1wiLFxuICAgIFwiSGVpbmtlXCIsXG4gICAgXCJIZWlucmljaFwiLFxuICAgIFwiSGVpbnplXCIsXG4gICAgXCJIZWlzZXJcIixcbiAgICBcIkhlaXN0XCIsXG4gICAgXCJIZWxsbWFublwiLFxuICAgIFwiSGVsbVwiLFxuICAgIFwiSGVsbWtlXCIsXG4gICAgXCJIZWxwbGluZ1wiLFxuICAgIFwiSGVuZ21pdGhcIixcbiAgICBcIkhlbmtlbFwiLFxuICAgIFwiSGVubmVzXCIsXG4gICAgXCJIZW5yeVwiLFxuICAgIFwiSGVuc2VcIixcbiAgICBcIkhlbnNlbFwiLFxuICAgIFwiSGVudGVsXCIsXG4gICAgXCJIZW50c2NoZWxcIixcbiAgICBcIkhlbnRzY2hrZVwiLFxuICAgIFwiSGVwcGVybGVcIixcbiAgICBcIkhlcmJlcmdlclwiLFxuICAgIFwiSGVyYnJhbmRcIixcbiAgICBcIkhlcmluZ1wiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWVja2VcIixcbiAgICBcIkhlcm1zXCIsXG4gICAgXCJIZXJvbGRcIixcbiAgICBcIkhlcnJtYW5uXCIsXG4gICAgXCJIZXJzY2htYW5uXCIsXG4gICAgXCJIZXJ0ZWxcIixcbiAgICBcIkhlcndlZ1wiLFxuICAgIFwiSGVyd2lnXCIsXG4gICAgXCJIZXJ6ZW5iZXJnXCIsXG4gICAgXCJIZXNzXCIsXG4gICAgXCJIZXNzZVwiLFxuICAgIFwiSGVzc2VrXCIsXG4gICAgXCJIZXNzbGVyXCIsXG4gICAgXCJIZXR6bGVyXCIsXG4gICAgXCJIZXVja1wiLFxuICAgIFwiSGV5ZGVtw7xsbGVyXCIsXG4gICAgXCJIaWVibFwiLFxuICAgIFwiSGlsZGVicmFuZFwiLFxuICAgIFwiSGlsZGVuYnJhbmRcIixcbiAgICBcIkhpbGdlbmRvcmZcIixcbiAgICBcIkhpbGxhcmRcIixcbiAgICBcIkhpbGxlclwiLFxuICAgIFwiSGluZ3NlblwiLFxuICAgIFwiSGluZ3N0XCIsXG4gICAgXCJIaW5yaWNoc1wiLFxuICAgIFwiSGlyc2NoXCIsXG4gICAgXCJIaXJzY2hiZXJnXCIsXG4gICAgXCJIaXJ0XCIsXG4gICAgXCJIb2RlYVwiLFxuICAgIFwiSG9mZm1hblwiLFxuICAgIFwiSG9mZm1hbm5cIixcbiAgICBcIkhvZm1hbm5cIixcbiAgICBcIkhvaGVuYmVyZ2VyXCIsXG4gICAgXCJIb2hsXCIsXG4gICAgXCJIb2huXCIsXG4gICAgXCJIb2huaGVpc2VyXCIsXG4gICAgXCJIb2xkXCIsXG4gICAgXCJIb2xkdFwiLFxuICAgIFwiSG9saW5za2lcIixcbiAgICBcIkhvbGxcIixcbiAgICBcIkhvbHRmcmV0ZXJcIixcbiAgICBcIkhvbHpcIixcbiAgICBcIkhvbHpkZXBwZVwiLFxuICAgIFwiSG9sem5lclwiLFxuICAgIFwiSG9tbWVsXCIsXG4gICAgXCJIb256XCIsXG4gICAgXCJIb29zc1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvcmFrXCIsXG4gICAgXCJIb3JuXCIsXG4gICAgXCJIb3JuYVwiLFxuICAgIFwiSG9ybnVuZ1wiLFxuICAgIFwiSG9ydFwiLFxuICAgIFwiSG93YXJkXCIsXG4gICAgXCJIdWJlclwiLFxuICAgIFwiSHVja2VzdGVpblwiLFxuICAgIFwiSHVkYWtcIixcbiAgICBcIkh1ZWJlbFwiLFxuICAgIFwiSHVnb1wiLFxuICAgIFwiSHVoblwiLFxuICAgIFwiSHVqb1wiLFxuICAgIFwiSHVrZVwiLFxuICAgIFwiSHVsc1wiLFxuICAgIFwiSHVtYmVydFwiLFxuICAgIFwiSHVuZWtlXCIsXG4gICAgXCJIdXRoXCIsXG4gICAgXCJIw6RiZXJcIixcbiAgICBcIkjDpGZuZXJcIixcbiAgICBcIkjDtmNrZVwiLFxuICAgIFwiSMO2ZnRcIixcbiAgICBcIkjDtmhuZVwiLFxuICAgIFwiSMO2bmlnXCIsXG4gICAgXCJIw7ZyZHRcIixcbiAgICBcIkjDvGJlbmJlY2tlclwiLFxuICAgIFwiSMO8YmxcIixcbiAgICBcIkjDvGJuZXJcIixcbiAgICBcIkjDvGdlbFwiLFxuICAgIFwiSMO8dHRjaGVyXCIsXG4gICAgXCJIw7x0dGVyXCIsXG4gICAgXCJJYmVcIixcbiAgICBcIklobHlcIixcbiAgICBcIklsbGluZ1wiLFxuICAgIFwiSXNha1wiLFxuICAgIFwiSXNla2VubWVpZXJcIixcbiAgICBcIkl0dFwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkphY29ic1wiLFxuICAgIFwiSmFndXNjaFwiLFxuICAgIFwiSmFoblwiLFxuICAgIFwiSmFobmtlXCIsXG4gICAgXCJKYWtvYnNcIixcbiAgICBcIkpha3ViY3p5a1wiLFxuICAgIFwiSmFtYm9yXCIsXG4gICAgXCJKYW1yb3p5XCIsXG4gICAgXCJKYW5kZXJcIixcbiAgICBcIkphbmljaFwiLFxuICAgIFwiSmFua2VcIixcbiAgICBcIkphbnNlblwiLFxuICAgIFwiSmFyZXRzXCIsXG4gICAgXCJKYXJvc1wiLFxuICAgIFwiSmFzaW5za2lcIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSmVnb3JvdlwiLFxuICAgIFwiSmVsbGluZ2hhdXNcIixcbiAgICBcIkplb3JnYVwiLFxuICAgIFwiSmVyc2NoYWJla1wiLFxuICAgIFwiSmVzc1wiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkpvc3NhXCIsXG4gICAgXCJKdWNrZW5cIixcbiAgICBcIkp1bmdcIixcbiAgICBcIkp1bmdibHV0aFwiLFxuICAgIFwiSnVuZ3RvblwiLFxuICAgIFwiSnVzdFwiLFxuICAgIFwiSsO8cmdlbnNcIixcbiAgICBcIkthY3ptYXJla1wiLFxuICAgIFwiS2Flc21hY2hlclwiLFxuICAgIFwiS2FobFwiLFxuICAgIFwiS2FobGVydFwiLFxuICAgIFwiS2FobGVzXCIsXG4gICAgXCJLYWhsbWV5ZXJcIixcbiAgICBcIkthaXNlclwiLFxuICAgIFwiS2FsaW5vd3NraVwiLFxuICAgIFwiS2FsbGFiaXNcIixcbiAgICBcIkthbGxlbnNlZVwiLFxuICAgIFwiS2FtcGZcIixcbiAgICBcIkthbXBzY2h1bHRlXCIsXG4gICAgXCJLYXBwZVwiLFxuICAgIFwiS2FwcGxlclwiLFxuICAgIFwiS2FyaG9mZlwiLFxuICAgIFwiS2FycmFzc1wiLFxuICAgIFwiS2Fyc3RcIixcbiAgICBcIkthcnN0ZW5cIixcbiAgICBcIkthcnVzXCIsXG4gICAgXCJLYXNzXCIsXG4gICAgXCJLYXN0ZW5cIixcbiAgICBcIkthc3RuZXJcIixcbiAgICBcIkthdHppbnNraVwiLFxuICAgIFwiS2F1Zm1hbm5cIixcbiAgICBcIkthdWxcIixcbiAgICBcIkthdXNlbWFublwiLFxuICAgIFwiS2F3b2hsXCIsXG4gICAgXCJLYXptYXJla1wiLFxuICAgIFwiS2VkemllcnNraVwiLFxuICAgIFwiS2VpbFwiLFxuICAgIFwiS2VpbmVyXCIsXG4gICAgXCJLZWxsZXJcIixcbiAgICBcIktlbG1cIixcbiAgICBcIktlbXBlXCIsXG4gICAgXCJLZW1wZXJcIixcbiAgICBcIktlbXB0ZXJcIixcbiAgICBcIktlcmxcIixcbiAgICBcIktlcm5cIixcbiAgICBcIktlc3NlbHJpbmdcIixcbiAgICBcIktlc3NlbHNjaGzDpGdlclwiLFxuICAgIFwiS2V0dGVcIixcbiAgICBcIktldHRlbmlzXCIsXG4gICAgXCJLZXV0ZWxcIixcbiAgICBcIktpY2tcIixcbiAgICBcIktpZXNzbGluZ1wiLFxuICAgIFwiS2luYWRldGVyXCIsXG4gICAgXCJLaW56ZWxcIixcbiAgICBcIktpbnp5XCIsXG4gICAgXCJLaXJjaFwiLFxuICAgIFwiS2lyc3RcIixcbiAgICBcIktpc2FiYWthXCIsXG4gICAgXCJLbGFhc1wiLFxuICAgIFwiS2xhYnVoblwiLFxuICAgIFwiS2xhcHBlclwiLFxuICAgIFwiS2xhdWRlclwiLFxuICAgIFwiS2xhdXNcIixcbiAgICBcIktsZWViZXJnXCIsXG4gICAgXCJLbGVpYmVyXCIsXG4gICAgXCJLbGVpblwiLFxuICAgIFwiS2xlaW5lcnRcIixcbiAgICBcIktsZWluaW5nZXJcIixcbiAgICBcIktsZWlubWFublwiLFxuICAgIFwiS2xlaW5zdGV1YmVyXCIsXG4gICAgXCJLbGVpc3NcIixcbiAgICBcIktsZW1tZVwiLFxuICAgIFwiS2xpbWN6YWtcIixcbiAgICBcIktsaW5nZXJcIixcbiAgICBcIktsaW5rXCIsXG4gICAgXCJLbG9wc2NoXCIsXG4gICAgXCJLbG9zZVwiLFxuICAgIFwiS2xvc3NcIixcbiAgICBcIktsdWdlXCIsXG4gICAgXCJLbHV3ZVwiLFxuICAgIFwiS25hYmVcIixcbiAgICBcIktuZWlmZWxcIixcbiAgICBcIktuZXRzY2hcIixcbiAgICBcIktuaWVzXCIsXG4gICAgXCJLbmlwcGVsXCIsXG4gICAgXCJLbm9iZWxcIixcbiAgICBcIktub2JsaWNoXCIsXG4gICAgXCJLbm9sbFwiLFxuICAgIFwiS25vcnJcIixcbiAgICBcIktub3JzY2hlaWR0XCIsXG4gICAgXCJLbnV0XCIsXG4gICAgXCJLb2JzXCIsXG4gICAgXCJLb2NoXCIsXG4gICAgXCJLb2NoYW5cIixcbiAgICBcIktvY2tcIixcbiAgICBcIktvY3p1bGxhXCIsXG4gICAgXCJLb2RlcmlzY2hcIixcbiAgICBcIktvZWhsXCIsXG4gICAgXCJLb2VobGVyXCIsXG4gICAgXCJLb2VuaWdcIixcbiAgICBcIktvZXN0ZXJcIixcbiAgICBcIktvZmZlcnNjaGxhZ2VyXCIsXG4gICAgXCJLb2hhXCIsXG4gICAgXCJLb2hsZVwiLFxuICAgIFwiS29obG1hbm5cIixcbiAgICBcIktvaG5sZVwiLFxuICAgIFwiS29ocnRcIixcbiAgICBcIktvalwiLFxuICAgIFwiS29sYlwiLFxuICAgIFwiS29sZWlza2lcIixcbiAgICBcIktvbG9rYXNcIixcbiAgICBcIktvbW9sbFwiLFxuICAgIFwiS29uaWVjem55XCIsXG4gICAgXCJLb25pZ1wiLFxuICAgIFwiS29ub3dcIixcbiAgICBcIktvbnlhXCIsXG4gICAgXCJLb29iXCIsXG4gICAgXCJLb3BmXCIsXG4gICAgXCJLb3Nlbmtvd1wiLFxuICAgIFwiS29zdGVyXCIsXG4gICAgXCJLb3N6ZXdza2lcIixcbiAgICBcIktvdWJhYVwiLFxuICAgIFwiS292YWNzXCIsXG4gICAgXCJLb3dhbGlja1wiLFxuICAgIFwiS293YWxpbnNraVwiLFxuICAgIFwiS296YWtpZXdpY3pcIixcbiAgICBcIktyYWJiZVwiLFxuICAgIFwiS3JhZnRcIixcbiAgICBcIktyYWxcIixcbiAgICBcIktyYW1lclwiLFxuICAgIFwiS3JhdWVsXCIsXG4gICAgXCJLcmF1c1wiLFxuICAgIFwiS3JhdXNlXCIsXG4gICAgXCJLcmF1c3BlXCIsXG4gICAgXCJLcmViXCIsXG4gICAgXCJLcmVic1wiLFxuICAgIFwiS3JlaXNzaWdcIixcbiAgICBcIktyZXNzZVwiLFxuICAgIFwiS3JldXR6XCIsXG4gICAgXCJLcmllZ2VyXCIsXG4gICAgXCJLcmlwcG5lclwiLFxuICAgIFwiS3JvZGluZ2VyXCIsXG4gICAgXCJLcm9oblwiLFxuICAgIFwiS3JvbFwiLFxuICAgIFwiS3JvblwiLFxuICAgIFwiS3J1ZWdlclwiLFxuICAgIFwiS3J1Z1wiLFxuICAgIFwiS3J1Z2VyXCIsXG4gICAgXCJLcnVsbFwiLFxuICAgIFwiS3J1c2NoaW5za2lcIixcbiAgICBcIktyw6RtZXJcIixcbiAgICBcIktyw7Zja2VydFwiLFxuICAgIFwiS3LDtmdlclwiLFxuICAgIFwiS3LDvGdlclwiLFxuICAgIFwiS3ViZXJhXCIsXG4gICAgXCJLdWZhaGxcIixcbiAgICBcIkt1aGxlZVwiLFxuICAgIFwiS3VobmVuXCIsXG4gICAgXCJLdWxpbWFublwiLFxuICAgIFwiS3VsbWFcIixcbiAgICBcIkt1bWJlcm51c3NcIixcbiAgICBcIkt1bW1sZVwiLFxuICAgIFwiS3VuelwiLFxuICAgIFwiS3VwZmVyXCIsXG4gICAgXCJLdXBwcmlvblwiLFxuICAgIFwiS3VwcmlvblwiLFxuICAgIFwiS3Vybmlja2lcIixcbiAgICBcIkt1cnJhdFwiLFxuICAgIFwiS3Vyc2NoaWxnZW5cIixcbiAgICBcIkt1c2NoZXdpdHpcIixcbiAgICBcIkt1c2NobWFublwiLFxuICAgIFwiS3Vza2VcIixcbiAgICBcIkt1c3Rlcm1hbm5cIixcbiAgICBcIkt1dHNjaGVyYXVlclwiLFxuICAgIFwiS3V0em5lclwiLFxuICAgIFwiS3dhZHdvXCIsXG4gICAgXCJLw6RobGVyXCIsXG4gICAgXCJLw6R0aGVyXCIsXG4gICAgXCJLw7ZobGVyXCIsXG4gICAgXCJLw7ZocmJyw7xja1wiLFxuICAgIFwiS8O2aHJlXCIsXG4gICAgXCJLw7Zsb3R6ZWlcIixcbiAgICBcIkvDtm5pZ1wiLFxuICAgIFwiS8O2cGVybmlja1wiLFxuICAgIFwiS8O2c2VvZ2x1XCIsXG4gICAgXCJLw7poblwiLFxuICAgIFwiS8O6aG5lcnRcIixcbiAgICBcIkvDvGhuXCIsXG4gICAgXCJLw7xobmVsXCIsXG4gICAgXCJLw7xobmVtdW5kXCIsXG4gICAgXCJLw7xobmVydFwiLFxuICAgIFwiS8O8aG5rZVwiLFxuICAgIFwiS8O8c3RlcnNcIixcbiAgICBcIkvDvHRlclwiLFxuICAgIFwiTGFhY2tcIixcbiAgICBcIkxhY2tcIixcbiAgICBcIkxhZGV3aWdcIixcbiAgICBcIkxha29teVwiLFxuICAgIFwiTGFtbWVydFwiLFxuICAgIFwiTGFtb3NcIixcbiAgICBcIkxhbmRtYW5uXCIsXG4gICAgXCJMYW5nXCIsXG4gICAgXCJMYW5nZVwiLFxuICAgIFwiTGFuZ2ZlbGRcIixcbiAgICBcIkxhbmdoaXJ0XCIsXG4gICAgXCJMYW5pZ1wiLFxuICAgIFwiTGF1Y2tuZXJcIixcbiAgICBcIkxhdWluZ2VyXCIsXG4gICAgXCJMYXVyw6luXCIsXG4gICAgXCJMYXVzZWNrZXJcIixcbiAgICBcIkxhdXhcIixcbiAgICBcIkxhd3NcIixcbiAgICBcIkxheFwiLFxuICAgIFwiTGViZXJlclwiLFxuICAgIFwiTGVobWFublwiLFxuICAgIFwiTGVobmVyXCIsXG4gICAgXCJMZWlib2xkXCIsXG4gICAgXCJMZWlkZVwiLFxuICAgIFwiTGVpbWJhY2hcIixcbiAgICBcIkxlaXBvbGRcIixcbiAgICBcIkxlaXN0XCIsXG4gICAgXCJMZWl0ZXJcIixcbiAgICBcIkxlaXRlcml0elwiLFxuICAgIFwiTGVpdGhlaW1cIixcbiAgICBcIkxlaXdlc21laWVyXCIsXG4gICAgXCJMZW5mZXJzXCIsXG4gICAgXCJMZW5rXCIsXG4gICAgXCJMZW56XCIsXG4gICAgXCJMZW56ZW5cIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVwdGhpblwiLFxuICAgIFwiTGVzY2hcIixcbiAgICBcIkxlc2NobmlrXCIsXG4gICAgXCJMZXR6ZWx0ZXJcIixcbiAgICBcIkxld2luXCIsXG4gICAgXCJMZXdrZVwiLFxuICAgIFwiTGV5Y2tlc1wiLFxuICAgIFwiTGdcIixcbiAgICBcIkxpY2h0ZW5mZWxkXCIsXG4gICAgXCJMaWNodGVuaGFnZW5cIixcbiAgICBcIkxpY2h0bFwiLFxuICAgIFwiTGllYmFjaFwiLFxuICAgIFwiTGllYmVcIixcbiAgICBcIkxpZWJpY2hcIixcbiAgICBcIkxpZWJvbGRcIixcbiAgICBcIkxpZWRlclwiLFxuICAgIFwiTGllbnNow7ZmdFwiLFxuICAgIFwiTGluZGVuXCIsXG4gICAgXCJMaW5kZW5iZXJnXCIsXG4gICAgXCJMaW5kZW5tYXllclwiLFxuICAgIFwiTGluZG5lclwiLFxuICAgIFwiTGlua2VcIixcbiAgICBcIkxpbm5lbmJhdW1cIixcbiAgICBcIkxpcHBlXCIsXG4gICAgXCJMaXBza2VcIixcbiAgICBcIkxpcHVzXCIsXG4gICAgXCJMaXNjaGthXCIsXG4gICAgXCJMb2JpbmdlclwiLFxuICAgIFwiTG9nc2NoXCIsXG4gICAgXCJMb2htYW5uXCIsXG4gICAgXCJMb2hyZVwiLFxuICAgIFwiTG9oc2VcIixcbiAgICBcIkxva2FyXCIsXG4gICAgXCJMb29nZW5cIixcbiAgICBcIkxvcmVuelwiLFxuICAgIFwiTG9zY2hcIixcbiAgICBcIkxvc2thXCIsXG4gICAgXCJMb3R0XCIsXG4gICAgXCJMb3lcIixcbiAgICBcIkx1YmluYVwiLFxuICAgIFwiTHVkb2xmXCIsXG4gICAgXCJMdWZmdFwiLFxuICAgIFwiTHVrb3NjaGVrXCIsXG4gICAgXCJMdXRqZVwiLFxuICAgIFwiTHV0elwiLFxuICAgIFwiTMO2c2VyXCIsXG4gICAgXCJMw7Z3YVwiLFxuICAgIFwiTMO8YmtlXCIsXG4gICAgXCJNYWFrXCIsXG4gICAgXCJNYWN6ZXlcIixcbiAgICBcIk1hZGV0emt5XCIsXG4gICAgXCJNYWR1YnVrb1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJNYWllclwiLFxuICAgIFwiTWFpc2NoXCIsXG4gICAgXCJNYWxla1wiLFxuICAgIFwiTWFsa3VzXCIsXG4gICAgXCJNYWxsbWFublwiLFxuICAgIFwiTWFsdWNoYVwiLFxuICAgIFwiTWFubnNcIixcbiAgICBcIk1hbnpcIixcbiAgICBcIk1hcmFocmVuc1wiLFxuICAgIFwiTWFyY2hld3NraVwiLFxuICAgIFwiTWFyZ2lzXCIsXG4gICAgXCJNYXJrb3dza2lcIixcbiAgICBcIk1hcmxcIixcbiAgICBcIk1hcm5lclwiLFxuICAgIFwiTWFycXVhcnRcIixcbiAgICBcIk1hcnNjaGVrXCIsXG4gICAgXCJNYXJ0ZWxcIixcbiAgICBcIk1hcnRlblwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ4XCIsXG4gICAgXCJNYXJ4ZW5cIixcbiAgICBcIk1hdGhlc1wiLFxuICAgIFwiTWF0aGllc1wiLFxuICAgIFwiTWF0aGlzemlrXCIsXG4gICAgXCJNYXRzY2hrZVwiLFxuICAgIFwiTWF0dGVyblwiLFxuICAgIFwiTWF0dGhlc1wiLFxuICAgIFwiTWF0dWxhXCIsXG4gICAgXCJNYXVcIixcbiAgICBcIk1hdXJlclwiLFxuICAgIFwiTWF1cm9mZlwiLFxuICAgIFwiTWF5XCIsXG4gICAgXCJNYXliYWNoXCIsXG4gICAgXCJNYXllclwiLFxuICAgIFwiTWVib2xkXCIsXG4gICAgXCJNZWhsXCIsXG4gICAgXCJNZWhsaG9yblwiLFxuICAgIFwiTWVobG9yblwiLFxuICAgIFwiTWVpZXJcIixcbiAgICBcIk1laXNjaFwiLFxuICAgIFwiTWVpc3NuZXJcIixcbiAgICBcIk1lbG9uaVwiLFxuICAgIFwiTWVsemVyXCIsXG4gICAgXCJNZW5nYVwiLFxuICAgIFwiTWVubmVcIixcbiAgICBcIk1lbnNhaFwiLFxuICAgIFwiTWVuc2luZ1wiLFxuICAgIFwiTWVya2VsXCIsXG4gICAgXCJNZXJzZWJ1cmdcIixcbiAgICBcIk1lcnRlbnNcIixcbiAgICBcIk1lc2xvaFwiLFxuICAgIFwiTWV0emdlclwiLFxuICAgIFwiTWV0em5lclwiLFxuICAgIFwiTWV3ZXNcIixcbiAgICBcIk1leWVyXCIsXG4gICAgXCJNaWNoYWxsZWtcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiTWllbGtlXCIsXG4gICAgXCJNaWtpdGVua29cIixcbiAgICBcIk1pbGRlXCIsXG4gICAgXCJNaW5haFwiLFxuICAgIFwiTWludHpsYWZmXCIsXG4gICAgXCJNb2NrZW5oYXVwdFwiLFxuICAgIFwiTW9lZGVcIixcbiAgICBcIk1vZWRsXCIsXG4gICAgXCJNb2VsbGVyXCIsXG4gICAgXCJNb2d1ZW5hcmFcIixcbiAgICBcIk1vaHJcIixcbiAgICBcIk1vaHJoYXJkXCIsXG4gICAgXCJNb2xpdG9yXCIsXG4gICAgXCJNb2xsXCIsXG4gICAgXCJNb2xsZXJcIixcbiAgICBcIk1vbHphblwiLFxuICAgIFwiTW9udGFnXCIsXG4gICAgXCJNb29ybWFublwiLFxuICAgIFwiTW9yZGhvcnN0XCIsXG4gICAgXCJNb3JnZW5zdGVyblwiLFxuICAgIFwiTW9yaGVsZmVyXCIsXG4gICAgXCJNb3JpdHpcIixcbiAgICBcIk1vc2VyXCIsXG4gICAgXCJNb3RjaGVib25cIixcbiAgICBcIk1vdHplbmJiw6Rja2VyXCIsXG4gICAgXCJNcnVnYWxsYVwiLFxuICAgIFwiTXVja2VudGhhbGVyXCIsXG4gICAgXCJNdWVzXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk11bHJhaW5cIixcbiAgICBcIk3DpGNodGlnXCIsXG4gICAgXCJNw6RkZXJcIixcbiAgICBcIk3DtmNrc1wiLFxuICAgIFwiTcO2Z2VuYnVyZ1wiLFxuICAgIFwiTcO2aHNuZXJcIixcbiAgICBcIk3DtmxkbmVyXCIsXG4gICAgXCJNw7ZsbGVuYmVja1wiLFxuICAgIFwiTcO2bGxlclwiLFxuICAgIFwiTcO2bGxpbmdlclwiLFxuICAgIFwiTcO2cnNjaFwiLFxuICAgIFwiTcO8aGxlaXNcIixcbiAgICBcIk3DvGxsZXJcIixcbiAgICBcIk3DvG5jaFwiLFxuICAgIFwiTmFiZWluXCIsXG4gICAgXCJOYWJvd1wiLFxuICAgIFwiTmFnZWxcIixcbiAgICBcIk5hbm5lblwiLFxuICAgIFwiTmFzdHZvZ2VsXCIsXG4gICAgXCJOYXVcIixcbiAgICBcIk5hdWJlcnRcIixcbiAgICBcIk5hdW1hbm5cIixcbiAgICBcIk5lXCIsXG4gICAgXCJOZWlta2VcIixcbiAgICBcIk5lcml1c1wiLFxuICAgIFwiTmV1YmF1ZXJcIixcbiAgICBcIk5ldWJlcnRcIixcbiAgICBcIk5ldWVuZG9yZlwiLFxuICAgIFwiTmV1bWFpclwiLFxuICAgIFwiTmV1bWFublwiLFxuICAgIFwiTmV1cGVydFwiLFxuICAgIFwiTmV1cm9oclwiLFxuICAgIFwiTmV1c2Nod2FuZGVyXCIsXG4gICAgXCJOZXd0b25cIixcbiAgICBcIk5leVwiLFxuICAgIFwiTmljb2xheVwiLFxuICAgIFwiTmllZGVybWVpZXJcIixcbiAgICBcIk5pZWtsYXVzb25cIixcbiAgICBcIk5pa2xhdXNcIixcbiAgICBcIk5pdHpzY2hlXCIsXG4gICAgXCJOb2Fja1wiLFxuICAgIFwiTm9kbGVyXCIsXG4gICAgXCJOb2x0ZVwiLFxuICAgIFwiTm9ybWFublwiLFxuICAgIFwiTm9ycmlzXCIsXG4gICAgXCJOb3J0aG9mZlwiLFxuICAgIFwiTm93YWtcIixcbiAgICBcIk51c3NiZWNrXCIsXG4gICAgXCJOd2FjaHVrd3VcIixcbiAgICBcIk55dHJhXCIsXG4gICAgXCJOw7ZoXCIsXG4gICAgXCJPYmVyZW1cIixcbiAgICBcIk9iZXJnZsO2bGxcIixcbiAgICBcIk9iZXJtYWllclwiLFxuICAgIFwiT2Noc1wiLFxuICAgIFwiT2VzZXJcIixcbiAgICBcIk9sYnJpY2hcIixcbiAgICBcIk9ubmVuXCIsXG4gICAgXCJPcGhleVwiLFxuICAgIFwiT3Bwb25nXCIsXG4gICAgXCJPcnRoXCIsXG4gICAgXCJPcnRobWFublwiLFxuICAgIFwiT3NjaGtlbmF0XCIsXG4gICAgXCJPc2VpXCIsXG4gICAgXCJPc2VuYmVyZ1wiLFxuICAgIFwiT3N0ZW5kYXJwXCIsXG4gICAgXCJPc3R3YWxkXCIsXG4gICAgXCJPdHRlXCIsXG4gICAgXCJPdHRvXCIsXG4gICAgXCJQYWVzbGVyXCIsXG4gICAgXCJQYWpvbmtcIixcbiAgICBcIlBhbGxlbnRpblwiLFxuICAgIFwiUGFuemlnXCIsXG4gICAgXCJQYXNjaGtlXCIsXG4gICAgXCJQYXR6d2FobFwiLFxuICAgIFwiUGF1a25lclwiLFxuICAgIFwiUGVzZWxtYW5cIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQZXRlcnNcIixcbiAgICBcIlBldHpvbGRcIixcbiAgICBcIlBmZWlmZmVyXCIsXG4gICAgXCJQZmVubmlnXCIsXG4gICAgXCJQZmVyc2ljaFwiLFxuICAgIFwiUGZpbmdzdGVuXCIsXG4gICAgXCJQZmxpZWdlclwiLFxuICAgIFwiUGZsw7xnbmVyXCIsXG4gICAgXCJQaGlsaXBwXCIsXG4gICAgXCJQaWNobG1haWVyXCIsXG4gICAgXCJQaWVza2VyXCIsXG4gICAgXCJQaWV0c2NoXCIsXG4gICAgXCJQaW5ncGFua1wiLFxuICAgIFwiUGlubm9ja1wiLFxuICAgIFwiUGlwcGlnXCIsXG4gICAgXCJQaXRzY2h1Z2luXCIsXG4gICAgXCJQbGFua1wiLFxuICAgIFwiUGxhc3NcIixcbiAgICBcIlBsYXR6ZXJcIixcbiAgICBcIlBsYXVrXCIsXG4gICAgXCJQbGF1dHpcIixcbiAgICBcIlBsZXRzY2hcIixcbiAgICBcIlBsb3R6aXR6a2FcIixcbiAgICBcIlBvZWhuXCIsXG4gICAgXCJQb2VzY2hsXCIsXG4gICAgXCJQb2dvcnplbHNraVwiLFxuICAgIFwiUG9obFwiLFxuICAgIFwiUG9obGFuZFwiLFxuICAgIFwiUG9obGVcIixcbiAgICBcIlBvbGlma2FcIixcbiAgICBcIlBvbGl6emlcIixcbiAgICBcIlBvbGxtw6RjaGVyXCIsXG4gICAgXCJQb21wXCIsXG4gICAgXCJQb25pdHpzY2hcIixcbiAgICBcIlBvcnNjaGVcIixcbiAgICBcIlBvcnRoXCIsXG4gICAgXCJQb3NjaG1hbm5cIixcbiAgICBcIlBvc2VyXCIsXG4gICAgXCJQb3R0ZWxcIixcbiAgICBcIlByYWhcIixcbiAgICBcIlByYW5nZVwiLFxuICAgIFwiUHJlZGlnZXJcIixcbiAgICBcIlByZXNzbGVyXCIsXG4gICAgXCJQcmV1a1wiLFxuICAgIFwiUHJldXNzXCIsXG4gICAgXCJQcmV5XCIsXG4gICAgXCJQcmllbWVyXCIsXG4gICAgXCJQcm9za2VcIixcbiAgICBcIlB1c2NoXCIsXG4gICAgXCJQw7ZjaGVcIixcbiAgICBcIlDDtmdlXCIsXG4gICAgXCJSYWFiZVwiLFxuICAgIFwiUmFiZW5zdGVpblwiLFxuICAgIFwiUmFjaFwiLFxuICAgIFwiUmFkdGtlXCIsXG4gICAgXCJSYWhuXCIsXG4gICAgXCJSYW5mdGxcIixcbiAgICBcIlJhbmdlblwiLFxuICAgIFwiUmFuelwiLFxuICAgIFwiUmFwcFwiLFxuICAgIFwiUmF0aFwiLFxuICAgIFwiUmF1XCIsXG4gICAgXCJSYXVidWNoXCIsXG4gICAgXCJSYXVrdWNcIixcbiAgICBcIlJhdXRlbmtyYW56XCIsXG4gICAgXCJSZWh3YWdlblwiLFxuICAgIFwiUmVpYmVyXCIsXG4gICAgXCJSZWljaGFyZHRcIixcbiAgICBcIlJlaWNoZWxcIixcbiAgICBcIlJlaWNobGluZ1wiLFxuICAgIFwiUmVpZlwiLFxuICAgIFwiUmVpZmVucmF0aFwiLFxuICAgIFwiUmVpbWFublwiLFxuICAgIFwiUmVpbmJlcmdcIixcbiAgICBcIlJlaW5lbHRcIixcbiAgICBcIlJlaW5oYXJkdFwiLFxuICAgIFwiUmVpbmtlXCIsXG4gICAgXCJSZWl0emVcIixcbiAgICBcIlJlbmtcIixcbiAgICBcIlJlbnR6XCIsXG4gICAgXCJSZW56XCIsXG4gICAgXCJSZXBwaW5cIixcbiAgICBcIlJlc3RsZVwiLFxuICAgIFwiUmVzdG9yZmZcIixcbiAgICBcIlJldHprZVwiLFxuICAgIFwiUmV1YmVyXCIsXG4gICAgXCJSZXVtYW5uXCIsXG4gICAgXCJSZXVzXCIsXG4gICAgXCJSZXVzc1wiLFxuICAgIFwiUmV1c3NlXCIsXG4gICAgXCJSaGVkZXJcIixcbiAgICBcIlJob2RlblwiLFxuICAgIFwiUmljaGFyZHNcIixcbiAgICBcIlJpY2h0ZXJcIixcbiAgICBcIlJpZWRlbFwiLFxuICAgIFwiUmllZGlnZXJcIixcbiAgICBcIlJpZWdlclwiLFxuICAgIFwiUmlla21hbm5cIixcbiAgICBcIlJpZXBsXCIsXG4gICAgXCJSaWVybWVpZXJcIixcbiAgICBcIlJpZXN0ZXJcIixcbiAgICBcIlJpZXRobcO8bGxlclwiLFxuICAgIFwiUmlldG3DvGxsZXJcIixcbiAgICBcIlJpZXRzY2hlclwiLFxuICAgIFwiUmluZ2VsXCIsXG4gICAgXCJSaW5nZXJcIixcbiAgICBcIlJpbmtcIixcbiAgICBcIlJpcGtlblwiLFxuICAgIFwiUml0b3Nla1wiLFxuICAgIFwiUml0c2NoZWxcIixcbiAgICBcIlJpdHRlclwiLFxuICAgIFwiUml0dHdlZ1wiLFxuICAgIFwiUml0elwiLFxuICAgIFwiUm9iYVwiLFxuICAgIFwiUm9ja21laWVyXCIsXG4gICAgXCJSb2RlaGF1XCIsXG4gICAgXCJSb2Rvd3NraVwiLFxuICAgIFwiUm9lY2tlclwiLFxuICAgIFwiUm9nZ2F0elwiLFxuICAgIFwiUm9obMOkbmRlclwiLFxuICAgIFwiUm9ocmVyXCIsXG4gICAgXCJSb2tvc3NhXCIsXG4gICAgXCJSb2xlZGVyXCIsXG4gICAgXCJSb2xvZmZcIixcbiAgICBcIlJvb3NcIixcbiAgICBcIlJvc2JhY2hcIixcbiAgICBcIlJvc2NoaW5za3lcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIlJvc2VuYXVlclwiLFxuICAgIFwiUm9zZW5iYXVlclwiLFxuICAgIFwiUm9zZW50aGFsXCIsXG4gICAgXCJSb3Nrc2NoXCIsXG4gICAgXCJSb3NzYmVyZ1wiLFxuICAgIFwiUm9zc2xlclwiLFxuICAgIFwiUm90aFwiLFxuICAgIFwiUm90aGVyXCIsXG4gICAgXCJSdWNoXCIsXG4gICAgXCJSdWNrZGVzY2hlbFwiLFxuICAgIFwiUnVtcGZcIixcbiAgICBcIlJ1cHByZWNodFwiLFxuICAgIFwiUnV0aFwiLFxuICAgIFwiUnlqaWtoXCIsXG4gICAgXCJSeXppaFwiLFxuICAgIFwiUsOkZGxlclwiLFxuICAgIFwiUsOkbnRzY2hcIixcbiAgICBcIlLDtmRpZ2VyXCIsXG4gICAgXCJSw7ZzZVwiLFxuICAgIFwiUsO2dHRnZXJcIixcbiAgICBcIlLDvGNrZXJcIixcbiAgICBcIlLDvGRpZ2VyXCIsXG4gICAgXCJSw7x0ZXJcIixcbiAgICBcIlNhY2hzZVwiLFxuICAgIFwiU2Fja1wiLFxuICAgIFwiU2FmbGFuaXNcIixcbiAgICBcIlNhZ2FmZVwiLFxuICAgIFwiU2Fnb25hc1wiLFxuICAgIFwiU2FobmVyXCIsXG4gICAgXCJTYWlsZVwiLFxuICAgIFwiU2FpbGVyXCIsXG4gICAgXCJTYWxvd1wiLFxuICAgIFwiU2FsemVyXCIsXG4gICAgXCJTYWx6bWFublwiLFxuICAgIFwiU2FtbWVydFwiLFxuICAgIFwiU2FuZGVyXCIsXG4gICAgXCJTYXJ2YXJpXCIsXG4gICAgXCJTYXR0ZWxtYWllclwiLFxuICAgIFwiU2F1ZXJcIixcbiAgICBcIlNhdWVybGFuZFwiLFxuICAgIFwiU2F1bXdlYmVyXCIsXG4gICAgXCJTYXZvaWFcIixcbiAgICBcIlNjY1wiLFxuICAgIFwiU2NoYWNodFwiLFxuICAgIFwiU2NoYWVmZXJcIixcbiAgICBcIlNjaGFmZmFyemlrXCIsXG4gICAgXCJTY2hhaGJhc2lhblwiLFxuICAgIFwiU2NoYXJmXCIsXG4gICAgXCJTY2hlZGxlclwiLFxuICAgIFwiU2NoZWVyXCIsXG4gICAgXCJTY2hlbGtcIixcbiAgICBcIlNjaGVsbGVuYmVja1wiLFxuICAgIFwiU2NoZW1iZXJhXCIsXG4gICAgXCJTY2hlbmtcIixcbiAgICBcIlNjaGVyYmFydGhcIixcbiAgICBcIlNjaGVyZXJcIixcbiAgICBcIlNjaGVyc2luZ1wiLFxuICAgIFwiU2NoZXJ6XCIsXG4gICAgXCJTY2hldXJlclwiLFxuICAgIFwiU2NoZXVyaW5nXCIsXG4gICAgXCJTY2hleXR0XCIsXG4gICAgXCJTY2hpZWxrZVwiLFxuICAgIFwiU2NoaWVza293XCIsXG4gICAgXCJTY2hpbGRoYXVlclwiLFxuICAgIFwiU2NoaWxsaW5nXCIsXG4gICAgXCJTY2hpbWFcIixcbiAgICBcIlNjaGltbWVyXCIsXG4gICAgXCJTY2hpbmR6aWVsb3J6XCIsXG4gICAgXCJTY2hpcm1lclwiLFxuICAgIFwiU2NoaXJybWVpc3RlclwiLFxuICAgIFwiU2NobGFjaHRlclwiLFxuICAgIFwiU2NobGFuZ2VuXCIsXG4gICAgXCJTY2hsYXdpdHpcIixcbiAgICBcIlNjaGxlY2h0d2VnXCIsXG4gICAgXCJTY2hsZXlcIixcbiAgICBcIlNjaGxpY2h0XCIsXG4gICAgXCJTY2hsaXR6ZXJcIixcbiAgICBcIlNjaG1hbHpsZVwiLFxuICAgIFwiU2NobWlkXCIsXG4gICAgXCJTY2htaWR0XCIsXG4gICAgXCJTY2htaWR0Y2hlblwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobWl0elwiLFxuICAgIFwiU2NobXVobFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2huZWx0aW5nXCIsXG4gICAgXCJTY2huaWVkZXJcIixcbiAgICBcIlNjaG5pZWRlcm1laWVyXCIsXG4gICAgXCJTY2huw7xyZXJcIixcbiAgICBcIlNjaG9iZXJnXCIsXG4gICAgXCJTY2hvbHpcIixcbiAgICBcIlNjaG9uYmVyZ1wiLFxuICAgIFwiU2Nob25kZWxtYWllclwiLFxuICAgIFwiU2Nob3JyXCIsXG4gICAgXCJTY2hvdHRcIixcbiAgICBcIlNjaG90dG1hbm5cIixcbiAgICBcIlNjaG91cmVuXCIsXG4gICAgXCJTY2hyYWRlclwiLFxuICAgIFwiU2NocmFtbVwiLFxuICAgIFwiU2NocmVja1wiLFxuICAgIFwiU2NocmVpYmVyXCIsXG4gICAgXCJTY2hyZWluZXJcIixcbiAgICBcIlNjaHJlaXRlclwiLFxuICAgIFwiU2Nocm9kZXJcIixcbiAgICBcIlNjaHLDtmRlclwiLFxuICAgIFwiU2NodWVybWFublwiLFxuICAgIFwiU2NodWZmXCIsXG4gICAgXCJTY2h1aGFqXCIsXG4gICAgXCJTY2h1bGR0XCIsXG4gICAgXCJTY2h1bHRcIixcbiAgICBcIlNjaHVsdGVcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNjaHVsdHplXCIsXG4gICAgXCJTY2h1bHpcIixcbiAgICBcIlNjaHVsemVcIixcbiAgICBcIlNjaHVtYWNoZXJcIixcbiAgICBcIlNjaHVtYW5uXCIsXG4gICAgXCJTY2h1cHBcIixcbiAgICBcIlNjaHVyaVwiLFxuICAgIFwiU2NodXN0ZXJcIixcbiAgICBcIlNjaHdhYlwiLFxuICAgIFwiU2Nod2FsbVwiLFxuICAgIFwiU2Nod2FuYmVja1wiLFxuICAgIFwiU2Nod2FuZGtlXCIsXG4gICAgXCJTY2h3YW5pdHpcIixcbiAgICBcIlNjaHdhcnRob2ZmXCIsXG4gICAgXCJTY2h3YXJ0elwiLFxuICAgIFwiU2Nod2FyelwiLFxuICAgIFwiU2Nod2FyemVyXCIsXG4gICAgXCJTY2h3YXJ6a29wZlwiLFxuICAgIFwiU2Nod2Fyem1laWVyXCIsXG4gICAgXCJTY2h3YXRsb1wiLFxuICAgIFwiU2Nod2Vpc2Z1cnRoXCIsXG4gICAgXCJTY2h3ZW5uZW5cIixcbiAgICBcIlNjaHdlcmR0bmVyXCIsXG4gICAgXCJTY2h3aWRkZVwiLFxuICAgIFwiU2Nod2lya3NjaGxpZXNcIixcbiAgICBcIlNjaHd1Y2hvd1wiLFxuICAgIFwiU2Now6RmZXJcIixcbiAgICBcIlNjaMOkZmZlbFwiLFxuICAgIFwiU2Now6RmZmVyXCIsXG4gICAgXCJTY2jDpG5pbmdcIixcbiAgICBcIlNjaMO2Y2tlbFwiLFxuICAgIFwiU2Now7ZuYmFsbFwiLFxuICAgIFwiU2Now7ZuYmVja1wiLFxuICAgIFwiU2Now7ZuYmVyZ1wiLFxuICAgIFwiU2Now7ZuZWJlY2tcIixcbiAgICBcIlNjaMO2bmVuYmVyZ2VyXCIsXG4gICAgXCJTY2jDtm5mZWxkXCIsXG4gICAgXCJTY2jDtm5oZXJyXCIsXG4gICAgXCJTY2jDtm5sZWJlXCIsXG4gICAgXCJTY2jDtnR6XCIsXG4gICAgXCJTY2jDvGxlclwiLFxuICAgIFwiU2Now7xwcGVsXCIsXG4gICAgXCJTY2jDvHR6XCIsXG4gICAgXCJTY2jDvHR6ZVwiLFxuICAgIFwiU2VlZ2VyXCIsXG4gICAgXCJTZWVsaWdcIixcbiAgICBcIlNlaGxzXCIsXG4gICAgXCJTZWlib2xkXCIsXG4gICAgXCJTZWlkZWxcIixcbiAgICBcIlNlaWRlcnNcIixcbiAgICBcIlNlaWdlbFwiLFxuICAgIFwiU2VpbGVyXCIsXG4gICAgXCJTZWl0elwiLFxuICAgIFwiU2VtaXNjaFwiLFxuICAgIFwiU2Vua2VsXCIsXG4gICAgXCJTZXdhbGRcIixcbiAgICBcIlNpZWJlbFwiLFxuICAgIFwiU2llYmVydFwiLFxuICAgIFwiU2llZ2xpbmdcIixcbiAgICBcIlNpZWxlbWFublwiLFxuICAgIFwiU2llbW9uXCIsXG4gICAgXCJTaWVuZXJcIixcbiAgICBcIlNpZXZlcnNcIixcbiAgICBcIlNpZXdlcnRcIixcbiAgICBcIlNpaGxlclwiLFxuICAgIFwiU2lsbGFoXCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiU2lubmh1YmVyXCIsXG4gICAgXCJTaXNjaGthXCIsXG4gICAgXCJTa2liaWNraVwiLFxuICAgIFwiU2xhZGVrXCIsXG4gICAgXCJTbG90dGFcIixcbiAgICBcIlNtaWVqYVwiLFxuICAgIFwiU29ib2xsXCIsXG4gICAgXCJTb2tvbG93c2tpXCIsXG4gICAgXCJTb2xsZXJcIixcbiAgICBcIlNvbGxuZXJcIixcbiAgICBcIlNvbW1lclwiLFxuICAgIFwiU29tc3NpY2hcIixcbiAgICBcIlNvbm5cIixcbiAgICBcIlNvbm5hYmVuZFwiLFxuICAgIFwiU3BhaG5cIixcbiAgICBcIlNwYW5rXCIsXG4gICAgXCJTcGVsbWV5ZXJcIixcbiAgICBcIlNwaWVnZWxidXJnXCIsXG4gICAgXCJTcGllbHZvZ2VsXCIsXG4gICAgXCJTcGlubmVyXCIsXG4gICAgXCJTcGl0em3DvGxsZXJcIixcbiAgICBcIlNwbGludGVyXCIsXG4gICAgXCJTcG9ycmVyXCIsXG4gICAgXCJTcHJlbmdlclwiLFxuICAgIFwiU3DDtnR0ZWxcIixcbiAgICBcIlN0YWhsXCIsXG4gICAgXCJTdGFuZ1wiLFxuICAgIFwiU3RhbmdlclwiLFxuICAgIFwiU3RhdXNzXCIsXG4gICAgXCJTdGVkaW5nXCIsXG4gICAgXCJTdGVmZmVuXCIsXG4gICAgXCJTdGVmZm55XCIsXG4gICAgXCJTdGVpZGxcIixcbiAgICBcIlN0ZWlnYXVmXCIsXG4gICAgXCJTdGVpblwiLFxuICAgIFwiU3RlaW5lY2tlXCIsXG4gICAgXCJTdGVpbmVydFwiLFxuICAgIFwiU3RlaW5rYW1wXCIsXG4gICAgXCJTdGVpbm1ldHpcIixcbiAgICBcIlN0ZWxrZW5zXCIsXG4gICAgXCJTdGVuZ2VsXCIsXG4gICAgXCJTdGVuZ2xcIixcbiAgICBcIlN0ZW56ZWxcIixcbiAgICBcIlN0ZXBhbm92XCIsXG4gICAgXCJTdGVwaGFuXCIsXG4gICAgXCJTdGVyblwiLFxuICAgIFwiU3RldWtcIixcbiAgICBcIlN0aWVmXCIsXG4gICAgXCJTdGlmZWxcIixcbiAgICBcIlN0b2xsXCIsXG4gICAgXCJTdG9sbGVcIixcbiAgICBcIlN0b2x6XCIsXG4gICAgXCJTdG9ybFwiLFxuICAgIFwiU3RvcnBcIixcbiAgICBcIlN0b3V0amVzZGlqa1wiLFxuICAgIFwiU3RyYXRtYW5uXCIsXG4gICAgXCJTdHJhdWJcIixcbiAgICBcIlN0cmF1c2FcIixcbiAgICBcIlN0cmVja1wiLFxuICAgIFwiU3RyZWVzZVwiLFxuICAgIFwiU3RyZWdlXCIsXG4gICAgXCJTdHJlaXRcIixcbiAgICBcIlN0cmVsbGVyXCIsXG4gICAgXCJTdHJpZWRlclwiLFxuICAgIFwiU3RyaWV6ZWxcIixcbiAgICBcIlN0cm9naWVzXCIsXG4gICAgXCJTdHJvaHNjaGFua1wiLFxuICAgIFwiU3RydW56XCIsXG4gICAgXCJTdHJ1dHpcIixcbiAgICBcIlN0dWJlXCIsXG4gICAgXCJTdMO2Y2tlcnRcIixcbiAgICBcIlN0w7ZwcGxlclwiLFxuICAgIFwiU3TDtndlclwiLFxuICAgIFwiU3TDvHJtZXJcIixcbiAgICBcIlN1ZmZhXCIsXG4gICAgXCJTdWpld1wiLFxuICAgIFwiU3Vzc21hbm5cIixcbiAgICBcIlN1dGhlXCIsXG4gICAgXCJTdXRzY2hldFwiLFxuICAgIFwiU3dpbGxpbXNcIixcbiAgICBcIlN6ZW5kcmVpXCIsXG4gICAgXCJTw7ZyZW5cIixcbiAgICBcIlPDvHJ0aFwiLFxuICAgIFwiVGFmZWxtZWllclwiLFxuICAgIFwiVGFuZ1wiLFxuICAgIFwiVGFzY2hlXCIsXG4gICAgXCJUYXVmcmF0c2hvZmVyXCIsXG4gICAgXCJUZWdldGhvZlwiLFxuICAgIFwiVGVpY2htYW5uXCIsXG4gICAgXCJUZXBwZXJcIixcbiAgICBcIlRlcmhlaWRlblwiLFxuICAgIFwiVGVybGVja2lcIixcbiAgICBcIlRldWZlbFwiLFxuICAgIFwiVGhlZWxlXCIsXG4gICAgXCJUaGlla2VcIixcbiAgICBcIlRoaW1tXCIsXG4gICAgXCJUaGlvbWFzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRocmllbmVcIixcbiAgICBcIlRocsOkbmhhcmR0XCIsXG4gICAgXCJUaHVzdFwiLFxuICAgIFwiVGh5c3NlblwiLFxuICAgIFwiVGjDtm5lXCIsXG4gICAgXCJUaWRvd1wiLFxuICAgIFwiVGllZHRrZVwiLFxuICAgIFwiVGlldHplXCIsXG4gICAgXCJUaWxnbmVyXCIsXG4gICAgXCJUaWxsYWNrXCIsXG4gICAgXCJUaW1tZXJtYW5uXCIsXG4gICAgXCJUaXNjaGxlclwiLFxuICAgIFwiVGlzY2htYW5uXCIsXG4gICAgXCJUaXR0bWFuXCIsXG4gICAgXCJUaXZvbnRzY2hpa1wiLFxuICAgIFwiVG9uYXRcIixcbiAgICBcIlRvbm5cIixcbiAgICBcIlRyYW1wZWxpXCIsXG4gICAgXCJUcmF1dGhcIixcbiAgICBcIlRyYXV0bWFublwiLFxuICAgIFwiVHJhdmFuXCIsXG4gICAgXCJUcmVmZlwiLFxuICAgIFwiVHJlbW1lbFwiLFxuICAgIFwiVHJlc3NcIixcbiAgICBcIlRzYW1vbmlraWFuXCIsXG4gICAgXCJUc2NoaWVyc1wiLFxuICAgIFwiVHNjaGlyY2hcIixcbiAgICBcIlR1Y2hcIixcbiAgICBcIlR1Y2hvbGtlXCIsXG4gICAgXCJUdWRvd1wiLFxuICAgIFwiVHVzY2htb1wiLFxuICAgIFwiVMOkY2hsXCIsXG4gICAgXCJUw7ZiYmVuXCIsXG4gICAgXCJUw7ZwZmVyXCIsXG4gICAgXCJVaGxlbWFublwiLFxuICAgIFwiVWhsaWdcIixcbiAgICBcIlVocmlnXCIsXG4gICAgXCJVaWJlbFwiLFxuICAgIFwiVWxpY3prYVwiLFxuICAgIFwiVWxsbWFublwiLFxuICAgIFwiVWxscmljaFwiLFxuICAgIFwiVW1iYWNoXCIsXG4gICAgXCJVbWxhdWZ0XCIsXG4gICAgXCJVbW1pbmdlclwiLFxuICAgIFwiVW5nZXJcIixcbiAgICBcIlVudGVycGFpbnRuZXJcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJVcmJhbmlha1wiLFxuICAgIFwiVXJiYW5za3lcIixcbiAgICBcIlVyaGlnXCIsXG4gICAgXCJWYWhsZW5zaWVja1wiLFxuICAgIFwiVmFuXCIsXG4gICAgXCJWYW5nZXJtYWluXCIsXG4gICAgXCJWYXRlclwiLFxuICAgIFwiVmVuZ2hhdXNcIixcbiAgICBcIlZlcm5pZXN0XCIsXG4gICAgXCJWZXJ6aVwiLFxuICAgIFwiVmV5XCIsXG4gICAgXCJWaWVsbGVobmVyXCIsXG4gICAgXCJWaWV3ZWdcIixcbiAgICBcIlZvZWxrZWxcIixcbiAgICBcIlZvZ2VsXCIsXG4gICAgXCJWb2dlbGdzYW5nXCIsXG4gICAgXCJWb2d0XCIsXG4gICAgXCJWb2lndFwiLFxuICAgIFwiVm9rdWhsXCIsXG4gICAgXCJWb2xrXCIsXG4gICAgXCJWb2xrZXJcIixcbiAgICBcIlZvbGttYW5uXCIsXG4gICAgXCJWb25cIixcbiAgICBcIlZvbmFcIixcbiAgICBcIlZvbnRlaW5cIixcbiAgICBcIldhY2hlbmJydW5uZXJcIixcbiAgICBcIldhY2h0ZWxcIixcbiAgICBcIldhZ25lclwiLFxuICAgIFwiV2FpYmVsXCIsXG4gICAgXCJXYWthblwiLFxuICAgIFwiV2FsZG1hbm5cIixcbiAgICBcIldhbGxuZXJcIixcbiAgICBcIldhbGxzdGFiXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbHRoZXJcIixcbiAgICBcIldhbHRvblwiLFxuICAgIFwiV2FselwiLFxuICAgIFwiV2FubmVyXCIsXG4gICAgXCJXYXJ0ZW5iZXJnXCIsXG4gICAgXCJXYXNjaGLDvHNjaFwiLFxuICAgIFwiV2Fzc2lsZXdcIixcbiAgICBcIldhc3NpbHVrXCIsXG4gICAgXCJXZWJlclwiLFxuICAgIFwiV2VocnNlblwiLFxuICAgIFwiV2VpZGxpY2hcIixcbiAgICBcIldlaWRuZXJcIixcbiAgICBcIldlaWdlbFwiLFxuICAgIFwiV2VpZ2h0XCIsXG4gICAgXCJXZWlsZXJcIixcbiAgICBcIldlaW1lclwiLFxuICAgIFwiV2Vpc1wiLFxuICAgIFwiV2Vpc3NcIixcbiAgICBcIldlbGxlclwiLFxuICAgIFwiV2Vsc2NoXCIsXG4gICAgXCJXZWx6XCIsXG4gICAgXCJXZWx6ZWxcIixcbiAgICBcIldlbmlnZXJcIixcbiAgICBcIldlbmtcIixcbiAgICBcIldlcmxlXCIsXG4gICAgXCJXZXJuZXJcIixcbiAgICBcIldlcnJtYW5uXCIsXG4gICAgXCJXZXNzZWxcIixcbiAgICBcIldlc3NpbmdoYWdlXCIsXG4gICAgXCJXZXllbFwiLFxuICAgIFwiV2V6ZWxcIixcbiAgICBcIldpY2htYW5uXCIsXG4gICAgXCJXaWNrZXJ0XCIsXG4gICAgXCJXaWViZVwiLFxuICAgIFwiV2llY2htYW5uXCIsXG4gICAgXCJXaWVnZWxtYW5uXCIsXG4gICAgXCJXaWVyaWdcIixcbiAgICBcIldpZXNlXCIsXG4gICAgXCJXaWVzZXJcIixcbiAgICBcIldpbGhlbG1cIixcbiAgICBcIldpbGt5XCIsXG4gICAgXCJXaWxsXCIsXG4gICAgXCJXaWxsd2FjaGVyXCIsXG4gICAgXCJXaWx0c1wiLFxuICAgIFwiV2ltbWVyXCIsXG4gICAgXCJXaW5rZWxtYW5uXCIsXG4gICAgXCJXaW5rbGVyXCIsXG4gICAgXCJXaW50ZXJcIixcbiAgICBcIldpc2NoZWtcIixcbiAgICBcIldpc2NoZXJcIixcbiAgICBcIldpc3NpbmdcIixcbiAgICBcIldpdHRpY2hcIixcbiAgICBcIldpdHRsXCIsXG4gICAgXCJXb2xmXCIsXG4gICAgXCJXb2xmYXJ0aFwiLFxuICAgIFwiV29sZmZcIixcbiAgICBcIldvbGxlbmJlcmdcIixcbiAgICBcIldvbGxtYW5uXCIsXG4gICAgXCJXb3l0a293c2thXCIsXG4gICAgXCJXdWpha1wiLFxuICAgIFwiV3VybVwiLFxuICAgIFwiV3lsdWRkYVwiLFxuICAgIFwiV8O2bHBlcnRcIixcbiAgICBcIlfDtnNjaGxlclwiLFxuICAgIFwiV8O8aG5cIixcbiAgICBcIlfDvG5zY2hlXCIsXG4gICAgXCJaYWNoXCIsXG4gICAgXCJaYWN6a2lld2ljelwiLFxuICAgIFwiWmFoblwiLFxuICAgIFwiWmFpdHVjXCIsXG4gICAgXCJaYW5kdFwiLFxuICAgIFwiWmFubmVyXCIsXG4gICAgXCJaYXBsZXRhbFwiLFxuICAgIFwiWmF1YmVyXCIsXG4gICAgXCJaZWlkbGVyXCIsXG4gICAgXCJaZWtsXCIsXG4gICAgXCJaZW5kZXJcIixcbiAgICBcIlpldWNoXCIsXG4gICAgXCJaZXllblwiLFxuICAgIFwiWmV5aGxlXCIsXG4gICAgXCJaaWVnbGVyXCIsXG4gICAgXCJaaW1hbnlpXCIsXG4gICAgXCJaaW1tZXJcIixcbiAgICBcIlppbW1lcm1hbm5cIixcbiAgICBcIlppbnNlclwiLFxuICAgIFwiWmludGxcIixcbiAgICBcIlppcHBcIixcbiAgICBcIlppcHNlXCIsXG4gICAgXCJac2NodW5rZVwiLFxuICAgIFwiWnViZXJcIixcbiAgICBcIlp3aWVuZXJcIixcbiAgICBcIlrDvG1zYW5kZVwiLFxuICAgIFwiw5ZzdHJpbmdlclwiLFxuICAgIFwiw5xiZXJhY2tlclwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkRyLlwiLFxuICAgIFwiUHJvZi4gRHIuXCJcbiAgXSxcbiAgXCJub2JpbGl0eV90aXRsZV9wcmVmaXhcIjogW1xuICAgIFwienVcIixcbiAgICBcInZvblwiLFxuICAgIFwidm9tXCIsXG4gICAgXCJ2b24gZGVyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje25vYmlsaXR5X3RpdGxlX3ByZWZpeH0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZV9BVC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwMSAjIyMjIyMjXCIsXG4gICAgXCIwMSMjIyMjIyNcIixcbiAgICBcIis0My0xLSMjIyMjIyNcIixcbiAgICBcIis0MzEjIyMjIyMjXCIsXG4gICAgXCIwIyMjIyAjIyMjXCIsXG4gICAgXCIwIyMjIyMjIyMjXCIsXG4gICAgXCIrNDMtIyMjIy0jIyMjXCIsXG4gICAgXCIrNDMgIyMjIyMjIyNcIlxuICBdXG59O1xuZGVfQVQuY2VsbF9waG9uZSA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIis0My02IyMtIyMjIyMjI1wiLFxuICAgIFwiMDYjIy0jIyMjIyMjI1wiLFxuICAgIFwiKzQzNiMjIyMjIyMjI1wiLFxuICAgIFwiMDYjIyMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBkZV9DSCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGRlX0NIO1xuZGVfQ0gudGl0bGUgPSBcIkdlcm1hbiAoU3dpdHplcmxhbmQpXCI7XG5kZV9DSC5hZGRyZXNzID0ge1xuICBcImNvdW50cnlfY29kZVwiOiBbXG4gICAgXCJDSFwiLFxuICAgIFwiQ0hcIixcbiAgICBcIkNIXCIsXG4gICAgXCJERVwiLFxuICAgIFwiQVRcIixcbiAgICBcIlVTXCIsXG4gICAgXCJMSVwiLFxuICAgIFwiVVNcIixcbiAgICBcIkhLXCIsXG4gICAgXCJWTlwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiMSMjI1wiLFxuICAgIFwiMiMjI1wiLFxuICAgIFwiMyMjI1wiLFxuICAgIFwiNCMjI1wiLFxuICAgIFwiNSMjI1wiLFxuICAgIFwiNiMjI1wiLFxuICAgIFwiNyMjI1wiLFxuICAgIFwiOCMjI1wiLFxuICAgIFwiOSMjI1wiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIlNjaHdlaXpcIlxuICBdXG59O1xuZGVfQ0guY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiQUdcIixcbiAgICBcIkdtYkhcIixcbiAgICBcInVuZCBTw7ZobmVcIixcbiAgICBcInVuZCBQYXJ0bmVyXCIsXG4gICAgXCImIENvLlwiLFxuICAgIFwiR3J1cHBlXCIsXG4gICAgXCJMTENcIixcbiAgICBcIkluYy5cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IHVuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5kZV9DSC5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJiaXpcIixcbiAgICBcImNoXCIsXG4gICAgXCJkZVwiLFxuICAgIFwibGlcIixcbiAgICBcImF0XCIsXG4gICAgXCJjaFwiLFxuICAgIFwiY2hcIlxuICBdXG59O1xuZGVfQ0gucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDgwMCAjIyMgIyMjXCIsXG4gICAgXCIwODAwICMjICMjICMjXCIsXG4gICAgXCIwIyMgIyMjICMjICMjXCIsXG4gICAgXCIwIyMgIyMjICMjICMjXCIsXG4gICAgXCIrNDEgIyMgIyMjICMjICMjXCIsXG4gICAgXCIwOTAwICMjIyAjIyNcIixcbiAgICBcIjA3NiAjIyMgIyMgIyNcIixcbiAgICBcIis0MTc4ICMjIyAjIyAjI1wiLFxuICAgIFwiMDA0MSA3OSAjIyMgIyMgIyNcIlxuICBdXG59O1xuIiwidmFyIGVuID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW47XG5lbi50aXRsZSA9IFwiRW5nbGlzaFwiO1xuZW4uc2VwYXJhdG9yID0gXCIgJiBcIjtcbmVuLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiTm9ydGhcIixcbiAgICBcIkVhc3RcIixcbiAgICBcIldlc3RcIixcbiAgICBcIlNvdXRoXCIsXG4gICAgXCJOZXdcIixcbiAgICBcIkxha2VcIixcbiAgICBcIlBvcnRcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcInRvd25cIixcbiAgICBcInRvblwiLFxuICAgIFwibGFuZFwiLFxuICAgIFwidmlsbGVcIixcbiAgICBcImJlcmdcIixcbiAgICBcImJ1cmdoXCIsXG4gICAgXCJib3JvdWdoXCIsXG4gICAgXCJidXJ5XCIsXG4gICAgXCJ2aWV3XCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJtb3V0aFwiLFxuICAgIFwic3RhZFwiLFxuICAgIFwiZnVydFwiLFxuICAgIFwiY2hlc3RlclwiLFxuICAgIFwibW91dGhcIixcbiAgICBcImZvcnRcIixcbiAgICBcImhhdmVuXCIsXG4gICAgXCJzaWRlXCIsXG4gICAgXCJzaGlyZVwiXG4gIF0sXG4gIC8vIFRPRE86IGdldCBjb21tb24gQ291bnR5IG5hbWVzIGluIEFtZXJpY2EgYW5kIHBvcHVsYXRlIGhlcmVcbiAgXCJjb3VudHlcIjogW1xuICAgIFwiQXZvblwiLFxuICAgIFwiQmVkZm9yZHNoaXJlXCIsXG4gICAgXCJCZXJrc2hpcmVcIixcbiAgICBcIkJvcmRlcnNcIixcbiAgICBcIkJ1Y2tpbmdoYW1zaGlyZVwiLFxuICAgIFwiQ2FtYnJpZGdlc2hpcmVcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnaGFuaXN0YW5cIixcbiAgICBcIkFsYmFuaWFcIixcbiAgICBcIkFsZ2VyaWFcIixcbiAgICBcIkFtZXJpY2FuIFNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcmN0aWNhICh0aGUgdGVycml0b3J5IFNvdXRoIG9mIDYwIGRlZyBTKVwiLFxuICAgIFwiQW50aWd1YSBhbmQgQmFyYnVkYVwiLFxuICAgIFwiQXJnZW50aW5hXCIsXG4gICAgXCJBcm1lbmlhXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXVzdHJhbGlhXCIsXG4gICAgXCJBdXN0cmlhXCIsXG4gICAgXCJBemVyYmFpamFuXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJCYW5nbGFkZXNoXCIsXG4gICAgXCJCYXJiYWRvc1wiLFxuICAgIFwiQmVsYXJ1c1wiLFxuICAgIFwiQmVsZ2l1bVwiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZW5pblwiLFxuICAgIFwiQmVybXVkYVwiLFxuICAgIFwiQmh1dGFuXCIsXG4gICAgXCJCb2xpdmlhXCIsXG4gICAgXCJCb3NuaWEgYW5kIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm91dmV0IElzbGFuZCAoQm91dmV0b3lhKVwiLFxuICAgIFwiQnJhemlsXCIsXG4gICAgXCJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkgKENoYWdvcyBBcmNoaXBlbGFnbylcIixcbiAgICBcIkJydW5laSBEYXJ1c3NhbGFtXCIsXG4gICAgXCJCdWxnYXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1ib2RpYVwiLFxuICAgIFwiQ2FtZXJvb25cIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2FwZSBWZXJkZVwiLFxuICAgIFwiQ2F5bWFuIElzbGFuZHNcIixcbiAgICBcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY1wiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJDaHJpc3RtYXMgSXNsYW5kXCIsXG4gICAgXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9yb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJDb25nb1wiLFxuICAgIFwiQ29vayBJc2xhbmRzXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3RlIGQnSXZvaXJlXCIsXG4gICAgXCJDcm9hdGlhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDeXBydXNcIixcbiAgICBcIkN6ZWNoIFJlcHVibGljXCIsXG4gICAgXCJEZW5tYXJrXCIsXG4gICAgXCJEamlib3V0aVwiLFxuICAgIFwiRG9taW5pY2FcIixcbiAgICBcIkRvbWluaWNhbiBSZXB1YmxpY1wiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiRWd5cHRcIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJFcXVhdG9yaWFsIEd1aW5lYVwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRoaW9waWFcIixcbiAgICBcIkZhcm9lIElzbGFuZHNcIixcbiAgICBcIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKVwiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiRmlubGFuZFwiLFxuICAgIFwiRnJhbmNlXCIsXG4gICAgXCJGcmVuY2ggR3VpYW5hXCIsXG4gICAgXCJGcmVuY2ggUG9seW5lc2lhXCIsXG4gICAgXCJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXNcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkdlcm1hbnlcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJyYWx0YXJcIixcbiAgICBcIkdyZWVjZVwiLFxuICAgIFwiR3JlZW5sYW5kXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHdWFkZWxvdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGFpdGlcIixcbiAgICBcIkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kc1wiLFxuICAgIFwiSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSlcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nIEtvbmdcIixcbiAgICBcIkh1bmdhcnlcIixcbiAgICBcIkljZWxhbmRcIixcbiAgICBcIkluZGlhXCIsXG4gICAgXCJJbmRvbmVzaWFcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklyYXFcIixcbiAgICBcIklyZWxhbmRcIixcbiAgICBcIklzbGUgb2YgTWFuXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkl0YWx5XCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIkthemFraHN0YW5cIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiRGVtb2NyYXRpYyBQZW9wbGUncyBSZXB1YmxpYyBvZiBLb3JlYVwiLFxuICAgIFwiUmVwdWJsaWMgb2YgS29yZWFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiS3lyZ3l6IFJlcHVibGljXCIsXG4gICAgXCJMYW8gUGVvcGxlJ3MgRGVtb2NyYXRpYyBSZXB1YmxpY1wiLFxuICAgIFwiTGF0dmlhXCIsXG4gICAgXCJMZWJhbm9uXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXRodWFuaWFcIixcbiAgICBcIkx1eGVtYm91cmdcIixcbiAgICBcIk1hY2FvXCIsXG4gICAgXCJNYWNlZG9uaWFcIixcbiAgICBcIk1hZGFnYXNjYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsYXlzaWFcIixcbiAgICBcIk1hbGRpdmVzXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyc2hhbGwgSXNsYW5kc1wiLFxuICAgIFwiTWFydGluaXF1ZVwiLFxuICAgIFwiTWF1cml0YW5pYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJNYXlvdHRlXCIsXG4gICAgXCJNZXhpY29cIixcbiAgICBcIk1pY3JvbmVzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29saWFcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRzZXJyYXRcIixcbiAgICBcIk1vcm9jY29cIixcbiAgICBcIk1vemFtYmlxdWVcIixcbiAgICBcIk15YW5tYXJcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmV0aGVybGFuZHMgQW50aWxsZXNcIixcbiAgICBcIk5ldGhlcmxhbmRzXCIsXG4gICAgXCJOZXcgQ2FsZWRvbmlhXCIsXG4gICAgXCJOZXcgWmVhbGFuZFwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTml1ZVwiLFxuICAgIFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICBcIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kc1wiLFxuICAgIFwiTm9yd2F5XCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbGVzdGluaWFuIFRlcnJpdG9yeVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YSBOZXcgR3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiUGhpbGlwcGluZXNcIixcbiAgICBcIlBpdGNhaXJuIElzbGFuZHNcIixcbiAgICBcIlBvbGFuZFwiLFxuICAgIFwiUG9ydHVnYWxcIixcbiAgICBcIlB1ZXJ0byBSaWNvXCIsXG4gICAgXCJRYXRhclwiLFxuICAgIFwiUmV1bmlvblwiLFxuICAgIFwiUm9tYW5pYVwiLFxuICAgIFwiUnVzc2lhbiBGZWRlcmF0aW9uXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIlNhaW50IEJhcnRoZWxlbXlcIixcbiAgICBcIlNhaW50IEhlbGVuYVwiLFxuICAgIFwiU2FpbnQgS2l0dHMgYW5kIE5ldmlzXCIsXG4gICAgXCJTYWludCBMdWNpYVwiLFxuICAgIFwiU2FpbnQgTWFydGluXCIsXG4gICAgXCJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uXCIsXG4gICAgXCJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lc1wiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlNhbyBUb21lIGFuZCBQcmluY2lwZVwiLFxuICAgIFwiU2F1ZGkgQXJhYmlhXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTbG92YWtpYSAoU2xvdmFrIFJlcHVibGljKVwiLFxuICAgIFwiU2xvdmVuaWFcIixcbiAgICBcIlNvbG9tb24gSXNsYW5kc1wiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU291dGggQWZyaWNhXCIsXG4gICAgXCJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgIFwiU3BhaW5cIixcbiAgICBcIlNyaSBMYW5rYVwiLFxuICAgIFwiU3VkYW5cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdmFsYmFyZCAmIEphbiBNYXllbiBJc2xhbmRzXCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlN3ZWRlblwiLFxuICAgIFwiU3dpdHplcmxhbmRcIixcbiAgICBcIlN5cmlhbiBBcmFiIFJlcHVibGljXCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIlRhamlraXN0YW5cIixcbiAgICBcIlRhbnphbmlhXCIsXG4gICAgXCJUaGFpbGFuZFwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCBhbmQgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2lhXCIsXG4gICAgXCJUdXJrZXlcIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluZVwiLFxuICAgIFwiVW5pdGVkIEFyYWIgRW1pcmF0ZXNcIixcbiAgICBcIlVuaXRlZCBLaW5nZG9tXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2FcIixcbiAgICBcIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kc1wiLFxuICAgIFwiVXJ1Z3VheVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bmFtXCIsXG4gICAgXCJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaFwiLFxuICAgIFwiVmlyZ2luIElzbGFuZHMsIFUuUy5cIixcbiAgICBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgXCJXZXN0ZXJuIFNhaGFyYVwiLFxuICAgIFwiWWVtZW5cIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiWmltYmFid2VcIlxuICBdLFxuICBcImNvdW50cnlfY29kZVwiOiBbXG4gICAgXCJBRFwiLFxuICAgIFwiQUVcIixcbiAgICBcIkFGXCIsXG4gICAgXCJBR1wiLFxuICAgIFwiQUlcIixcbiAgICBcIkFMXCIsXG4gICAgXCJBTVwiLFxuICAgIFwiQU9cIixcbiAgICBcIkFRXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQVNcIixcbiAgICBcIkFUXCIsXG4gICAgXCJBVVwiLFxuICAgIFwiQVdcIixcbiAgICBcIkFYXCIsXG4gICAgXCJBWlwiLFxuICAgIFwiQkFcIixcbiAgICBcIkJCXCIsXG4gICAgXCJCRFwiLFxuICAgIFwiQkVcIixcbiAgICBcIkJGXCIsXG4gICAgXCJCR1wiLFxuICAgIFwiQkhcIixcbiAgICBcIkJJXCIsXG4gICAgXCJCSlwiLFxuICAgIFwiQkxcIixcbiAgICBcIkJNXCIsXG4gICAgXCJCTlwiLFxuICAgIFwiQk9cIixcbiAgICBcIkJRXCIsXG4gICAgXCJCUVwiLFxuICAgIFwiQlJcIixcbiAgICBcIkJTXCIsXG4gICAgXCJCVFwiLFxuICAgIFwiQlZcIixcbiAgICBcIkJXXCIsXG4gICAgXCJCWVwiLFxuICAgIFwiQlpcIixcbiAgICBcIkNBXCIsXG4gICAgXCJDQ1wiLFxuICAgIFwiQ0RcIixcbiAgICBcIkNGXCIsXG4gICAgXCJDR1wiLFxuICAgIFwiQ0hcIixcbiAgICBcIkNJXCIsXG4gICAgXCJDS1wiLFxuICAgIFwiQ0xcIixcbiAgICBcIkNNXCIsXG4gICAgXCJDTlwiLFxuICAgIFwiQ09cIixcbiAgICBcIkNSXCIsXG4gICAgXCJDVVwiLFxuICAgIFwiQ1ZcIixcbiAgICBcIkNXXCIsXG4gICAgXCJDWFwiLFxuICAgIFwiQ1lcIixcbiAgICBcIkNaXCIsXG4gICAgXCJERVwiLFxuICAgIFwiREpcIixcbiAgICBcIkRLXCIsXG4gICAgXCJETVwiLFxuICAgIFwiRE9cIixcbiAgICBcIkRaXCIsXG4gICAgXCJFQ1wiLFxuICAgIFwiRUVcIixcbiAgICBcIkVHXCIsXG4gICAgXCJFSFwiLFxuICAgIFwiRVJcIixcbiAgICBcIkVTXCIsXG4gICAgXCJFVFwiLFxuICAgIFwiRklcIixcbiAgICBcIkZKXCIsXG4gICAgXCJGS1wiLFxuICAgIFwiRk1cIixcbiAgICBcIkZPXCIsXG4gICAgXCJGUlwiLFxuICAgIFwiR0FcIixcbiAgICBcIkdCXCIsXG4gICAgXCJHRFwiLFxuICAgIFwiR0VcIixcbiAgICBcIkdGXCIsXG4gICAgXCJHR1wiLFxuICAgIFwiR0hcIixcbiAgICBcIkdJXCIsXG4gICAgXCJHTFwiLFxuICAgIFwiR01cIixcbiAgICBcIkdOXCIsXG4gICAgXCJHUFwiLFxuICAgIFwiR1FcIixcbiAgICBcIkdSXCIsXG4gICAgXCJHU1wiLFxuICAgIFwiR1RcIixcbiAgICBcIkdVXCIsXG4gICAgXCJHV1wiLFxuICAgIFwiR1lcIixcbiAgICBcIkhLXCIsXG4gICAgXCJITVwiLFxuICAgIFwiSE5cIixcbiAgICBcIkhSXCIsXG4gICAgXCJIVFwiLFxuICAgIFwiSFVcIixcbiAgICBcIklEXCIsXG4gICAgXCJJRVwiLFxuICAgIFwiSUxcIixcbiAgICBcIklNXCIsXG4gICAgXCJJTlwiLFxuICAgIFwiSU9cIixcbiAgICBcIklRXCIsXG4gICAgXCJJUlwiLFxuICAgIFwiSVNcIixcbiAgICBcIklUXCIsXG4gICAgXCJKRVwiLFxuICAgIFwiSk1cIixcbiAgICBcIkpPXCIsXG4gICAgXCJKUFwiLFxuICAgIFwiS0VcIixcbiAgICBcIktHXCIsXG4gICAgXCJLSFwiLFxuICAgIFwiS0lcIixcbiAgICBcIktNXCIsXG4gICAgXCJLTlwiLFxuICAgIFwiS1BcIixcbiAgICBcIktSXCIsXG4gICAgXCJLV1wiLFxuICAgIFwiS1lcIixcbiAgICBcIktaXCIsXG4gICAgXCJMQVwiLFxuICAgIFwiTEJcIixcbiAgICBcIkxDXCIsXG4gICAgXCJMSVwiLFxuICAgIFwiTEtcIixcbiAgICBcIkxSXCIsXG4gICAgXCJMU1wiLFxuICAgIFwiTFRcIixcbiAgICBcIkxVXCIsXG4gICAgXCJMVlwiLFxuICAgIFwiTFlcIixcbiAgICBcIk1BXCIsXG4gICAgXCJNQ1wiLFxuICAgIFwiTURcIixcbiAgICBcIk1FXCIsXG4gICAgXCJNRlwiLFxuICAgIFwiTUdcIixcbiAgICBcIk1IXCIsXG4gICAgXCJNS1wiLFxuICAgIFwiTUxcIixcbiAgICBcIk1NXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiTU9cIixcbiAgICBcIk1QXCIsXG4gICAgXCJNUVwiLFxuICAgIFwiTVJcIixcbiAgICBcIk1TXCIsXG4gICAgXCJNVFwiLFxuICAgIFwiTVVcIixcbiAgICBcIk1WXCIsXG4gICAgXCJNV1wiLFxuICAgIFwiTVhcIixcbiAgICBcIk1ZXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiTkFcIixcbiAgICBcIk5DXCIsXG4gICAgXCJORVwiLFxuICAgIFwiTkZcIixcbiAgICBcIk5HXCIsXG4gICAgXCJOSVwiLFxuICAgIFwiTkxcIixcbiAgICBcIk5PXCIsXG4gICAgXCJOUFwiLFxuICAgIFwiTlJcIixcbiAgICBcIk5VXCIsXG4gICAgXCJOWlwiLFxuICAgIFwiT01cIixcbiAgICBcIlBBXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUEZcIixcbiAgICBcIlBHXCIsXG4gICAgXCJQSFwiLFxuICAgIFwiUEtcIixcbiAgICBcIlBMXCIsXG4gICAgXCJQTVwiLFxuICAgIFwiUE5cIixcbiAgICBcIlBSXCIsXG4gICAgXCJQU1wiLFxuICAgIFwiUFRcIixcbiAgICBcIlBXXCIsXG4gICAgXCJQWVwiLFxuICAgIFwiUUFcIixcbiAgICBcIlJFXCIsXG4gICAgXCJST1wiLFxuICAgIFwiUlNcIixcbiAgICBcIlJVXCIsXG4gICAgXCJSV1wiLFxuICAgIFwiU0FcIixcbiAgICBcIlNCXCIsXG4gICAgXCJTQ1wiLFxuICAgIFwiU0RcIixcbiAgICBcIlNFXCIsXG4gICAgXCJTR1wiLFxuICAgIFwiU0hcIixcbiAgICBcIlNJXCIsXG4gICAgXCJTSlwiLFxuICAgIFwiU0tcIixcbiAgICBcIlNMXCIsXG4gICAgXCJTTVwiLFxuICAgIFwiU05cIixcbiAgICBcIlNPXCIsXG4gICAgXCJTUlwiLFxuICAgIFwiU1NcIixcbiAgICBcIlNUXCIsXG4gICAgXCJTVlwiLFxuICAgIFwiU1hcIixcbiAgICBcIlNZXCIsXG4gICAgXCJTWlwiLFxuICAgIFwiVENcIixcbiAgICBcIlREXCIsXG4gICAgXCJURlwiLFxuICAgIFwiVEdcIixcbiAgICBcIlRIXCIsXG4gICAgXCJUSlwiLFxuICAgIFwiVEtcIixcbiAgICBcIlRMXCIsXG4gICAgXCJUTVwiLFxuICAgIFwiVE5cIixcbiAgICBcIlRPXCIsXG4gICAgXCJUUlwiLFxuICAgIFwiVFRcIixcbiAgICBcIlRWXCIsXG4gICAgXCJUV1wiLFxuICAgIFwiVFpcIixcbiAgICBcIlVBXCIsXG4gICAgXCJVR1wiLFxuICAgIFwiVU1cIixcbiAgICBcIlVTXCIsXG4gICAgXCJVWVwiLFxuICAgIFwiVVpcIixcbiAgICBcIlZBXCIsXG4gICAgXCJWQ1wiLFxuICAgIFwiVkVcIixcbiAgICBcIlZHXCIsXG4gICAgXCJWSVwiLFxuICAgIFwiVk5cIixcbiAgICBcIlZVXCIsXG4gICAgXCJXRlwiLFxuICAgIFwiV1NcIixcbiAgICBcIllFXCIsXG4gICAgXCJZVFwiLFxuICAgIFwiWkFcIixcbiAgICBcIlpNXCIsXG4gICAgXCJaV1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjXCIsXG4gICAgXCIjIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQWxsZXlcIixcbiAgICBcIkF2ZW51ZVwiLFxuICAgIFwiQnJhbmNoXCIsXG4gICAgXCJCcmlkZ2VcIixcbiAgICBcIkJyb29rXCIsXG4gICAgXCJCcm9va3NcIixcbiAgICBcIkJ1cmdcIixcbiAgICBcIkJ1cmdzXCIsXG4gICAgXCJCeXBhc3NcIixcbiAgICBcIkNhbXBcIixcbiAgICBcIkNhbnlvblwiLFxuICAgIFwiQ2FwZVwiLFxuICAgIFwiQ2F1c2V3YXlcIixcbiAgICBcIkNlbnRlclwiLFxuICAgIFwiQ2VudGVyc1wiLFxuICAgIFwiQ2lyY2xlXCIsXG4gICAgXCJDaXJjbGVzXCIsXG4gICAgXCJDbGlmZlwiLFxuICAgIFwiQ2xpZmZzXCIsXG4gICAgXCJDbHViXCIsXG4gICAgXCJDb21tb25cIixcbiAgICBcIkNvcm5lclwiLFxuICAgIFwiQ29ybmVyc1wiLFxuICAgIFwiQ291cnNlXCIsXG4gICAgXCJDb3VydFwiLFxuICAgIFwiQ291cnRzXCIsXG4gICAgXCJDb3ZlXCIsXG4gICAgXCJDb3Zlc1wiLFxuICAgIFwiQ3JlZWtcIixcbiAgICBcIkNyZXNjZW50XCIsXG4gICAgXCJDcmVzdFwiLFxuICAgIFwiQ3Jvc3NpbmdcIixcbiAgICBcIkNyb3Nzcm9hZFwiLFxuICAgIFwiQ3VydmVcIixcbiAgICBcIkRhbGVcIixcbiAgICBcIkRhbVwiLFxuICAgIFwiRGl2aWRlXCIsXG4gICAgXCJEcml2ZVwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkRyaXZlc1wiLFxuICAgIFwiRXN0YXRlXCIsXG4gICAgXCJFc3RhdGVzXCIsXG4gICAgXCJFeHByZXNzd2F5XCIsXG4gICAgXCJFeHRlbnNpb25cIixcbiAgICBcIkV4dGVuc2lvbnNcIixcbiAgICBcIkZhbGxcIixcbiAgICBcIkZhbGxzXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmllbGRcIixcbiAgICBcIkZpZWxkc1wiLFxuICAgIFwiRmxhdFwiLFxuICAgIFwiRmxhdHNcIixcbiAgICBcIkZvcmRcIixcbiAgICBcIkZvcmRzXCIsXG4gICAgXCJGb3Jlc3RcIixcbiAgICBcIkZvcmdlXCIsXG4gICAgXCJGb3JnZXNcIixcbiAgICBcIkZvcmtcIixcbiAgICBcIkZvcmtzXCIsXG4gICAgXCJGb3J0XCIsXG4gICAgXCJGcmVld2F5XCIsXG4gICAgXCJHYXJkZW5cIixcbiAgICBcIkdhcmRlbnNcIixcbiAgICBcIkdhdGV3YXlcIixcbiAgICBcIkdsZW5cIixcbiAgICBcIkdsZW5zXCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZW5zXCIsXG4gICAgXCJHcm92ZVwiLFxuICAgIFwiR3JvdmVzXCIsXG4gICAgXCJIYXJib3JcIixcbiAgICBcIkhhcmJvcnNcIixcbiAgICBcIkhhdmVuXCIsXG4gICAgXCJIZWlnaHRzXCIsXG4gICAgXCJIaWdod2F5XCIsXG4gICAgXCJIaWxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSG9sbG93XCIsXG4gICAgXCJJbmxldFwiLFxuICAgIFwiSW5sZXRcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJJc2xhbmRzXCIsXG4gICAgXCJJc2xhbmRzXCIsXG4gICAgXCJJc2xlXCIsXG4gICAgXCJJc2xlXCIsXG4gICAgXCJKdW5jdGlvblwiLFxuICAgIFwiSnVuY3Rpb25zXCIsXG4gICAgXCJLZXlcIixcbiAgICBcIktleXNcIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJLbm9sbHNcIixcbiAgICBcIkxha2VcIixcbiAgICBcIkxha2VzXCIsXG4gICAgXCJMYW5kXCIsXG4gICAgXCJMYW5kaW5nXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMaWdodFwiLFxuICAgIFwiTGlnaHRzXCIsXG4gICAgXCJMb2FmXCIsXG4gICAgXCJMb2NrXCIsXG4gICAgXCJMb2Nrc1wiLFxuICAgIFwiTG9ja3NcIixcbiAgICBcIkxvZGdlXCIsXG4gICAgXCJMb2RnZVwiLFxuICAgIFwiTG9vcFwiLFxuICAgIFwiTWFsbFwiLFxuICAgIFwiTWFub3JcIixcbiAgICBcIk1hbm9yc1wiLFxuICAgIFwiTWVhZG93XCIsXG4gICAgXCJNZWFkb3dzXCIsXG4gICAgXCJNZXdzXCIsXG4gICAgXCJNaWxsXCIsXG4gICAgXCJNaWxsc1wiLFxuICAgIFwiTWlzc2lvblwiLFxuICAgIFwiTWlzc2lvblwiLFxuICAgIFwiTW90b3J3YXlcIixcbiAgICBcIk1vdW50XCIsXG4gICAgXCJNb3VudGFpblwiLFxuICAgIFwiTW91bnRhaW5cIixcbiAgICBcIk1vdW50YWluc1wiLFxuICAgIFwiTW91bnRhaW5zXCIsXG4gICAgXCJOZWNrXCIsXG4gICAgXCJPcmNoYXJkXCIsXG4gICAgXCJPdmFsXCIsXG4gICAgXCJPdmVycGFzc1wiLFxuICAgIFwiUGFya1wiLFxuICAgIFwiUGFya3NcIixcbiAgICBcIlBhcmt3YXlcIixcbiAgICBcIlBhcmt3YXlzXCIsXG4gICAgXCJQYXNzXCIsXG4gICAgXCJQYXNzYWdlXCIsXG4gICAgXCJQYXRoXCIsXG4gICAgXCJQaWtlXCIsXG4gICAgXCJQaW5lXCIsXG4gICAgXCJQaW5lc1wiLFxuICAgIFwiUGxhY2VcIixcbiAgICBcIlBsYWluXCIsXG4gICAgXCJQbGFpbnNcIixcbiAgICBcIlBsYWluc1wiLFxuICAgIFwiUGxhemFcIixcbiAgICBcIlBsYXphXCIsXG4gICAgXCJQb2ludFwiLFxuICAgIFwiUG9pbnRzXCIsXG4gICAgXCJQb3J0XCIsXG4gICAgXCJQb3J0XCIsXG4gICAgXCJQb3J0c1wiLFxuICAgIFwiUG9ydHNcIixcbiAgICBcIlByYWlyaWVcIixcbiAgICBcIlByYWlyaWVcIixcbiAgICBcIlJhZGlhbFwiLFxuICAgIFwiUmFtcFwiLFxuICAgIFwiUmFuY2hcIixcbiAgICBcIlJhcGlkXCIsXG4gICAgXCJSYXBpZHNcIixcbiAgICBcIlJlc3RcIixcbiAgICBcIlJpZGdlXCIsXG4gICAgXCJSaWRnZXNcIixcbiAgICBcIlJpdmVyXCIsXG4gICAgXCJSb2FkXCIsXG4gICAgXCJSb2FkXCIsXG4gICAgXCJSb2Fkc1wiLFxuICAgIFwiUm9hZHNcIixcbiAgICBcIlJvdXRlXCIsXG4gICAgXCJSb3dcIixcbiAgICBcIlJ1ZVwiLFxuICAgIFwiUnVuXCIsXG4gICAgXCJTaG9hbFwiLFxuICAgIFwiU2hvYWxzXCIsXG4gICAgXCJTaG9yZVwiLFxuICAgIFwiU2hvcmVzXCIsXG4gICAgXCJTa3l3YXlcIixcbiAgICBcIlNwcmluZ1wiLFxuICAgIFwiU3ByaW5nc1wiLFxuICAgIFwiU3ByaW5nc1wiLFxuICAgIFwiU3B1clwiLFxuICAgIFwiU3B1cnNcIixcbiAgICBcIlNxdWFyZVwiLFxuICAgIFwiU3F1YXJlXCIsXG4gICAgXCJTcXVhcmVzXCIsXG4gICAgXCJTcXVhcmVzXCIsXG4gICAgXCJTdGF0aW9uXCIsXG4gICAgXCJTdGF0aW9uXCIsXG4gICAgXCJTdHJhdmVudWVcIixcbiAgICBcIlN0cmF2ZW51ZVwiLFxuICAgIFwiU3RyZWFtXCIsXG4gICAgXCJTdHJlYW1cIixcbiAgICBcIlN0cmVldFwiLFxuICAgIFwiU3RyZWV0XCIsXG4gICAgXCJTdHJlZXRzXCIsXG4gICAgXCJTdW1taXRcIixcbiAgICBcIlN1bW1pdFwiLFxuICAgIFwiVGVycmFjZVwiLFxuICAgIFwiVGhyb3VnaHdheVwiLFxuICAgIFwiVHJhY2VcIixcbiAgICBcIlRyYWNrXCIsXG4gICAgXCJUcmFmZmljd2F5XCIsXG4gICAgXCJUcmFpbFwiLFxuICAgIFwiVHJhaWxcIixcbiAgICBcIlR1bm5lbFwiLFxuICAgIFwiVHVubmVsXCIsXG4gICAgXCJUdXJucGlrZVwiLFxuICAgIFwiVHVybnBpa2VcIixcbiAgICBcIlVuZGVycGFzc1wiLFxuICAgIFwiVW5pb25cIixcbiAgICBcIlVuaW9uc1wiLFxuICAgIFwiVmFsbGV5XCIsXG4gICAgXCJWYWxsZXlzXCIsXG4gICAgXCJWaWFcIixcbiAgICBcIlZpYWR1Y3RcIixcbiAgICBcIlZpZXdcIixcbiAgICBcIlZpZXdzXCIsXG4gICAgXCJWaWxsYWdlXCIsXG4gICAgXCJWaWxsYWdlXCIsXG4gICAgXCJWaWxsYWdlc1wiLFxuICAgIFwiVmlsbGVcIixcbiAgICBcIlZpc3RhXCIsXG4gICAgXCJWaXN0YVwiLFxuICAgIFwiV2Fsa1wiLFxuICAgIFwiV2Fsa3NcIixcbiAgICBcIldhbGxcIixcbiAgICBcIldheVwiLFxuICAgIFwiV2F5c1wiLFxuICAgIFwiV2VsbFwiLFxuICAgIFwiV2VsbHNcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwdC4gIyMjXCIsXG4gICAgXCJTdWl0ZSAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjXCIsXG4gICAgXCIjIyMjIy0jIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZV9ieV9zdGF0ZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyMtIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxhYmFtYVwiLFxuICAgIFwiQWxhc2thXCIsXG4gICAgXCJBcml6b25hXCIsXG4gICAgXCJBcmthbnNhc1wiLFxuICAgIFwiQ2FsaWZvcm5pYVwiLFxuICAgIFwiQ29sb3JhZG9cIixcbiAgICBcIkNvbm5lY3RpY3V0XCIsXG4gICAgXCJEZWxhd2FyZVwiLFxuICAgIFwiRmxvcmlkYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiSGF3YWlpXCIsXG4gICAgXCJJZGFob1wiLFxuICAgIFwiSWxsaW5vaXNcIixcbiAgICBcIkluZGlhbmFcIixcbiAgICBcIklvd2FcIixcbiAgICBcIkthbnNhc1wiLFxuICAgIFwiS2VudHVja3lcIixcbiAgICBcIkxvdWlzaWFuYVwiLFxuICAgIFwiTWFpbmVcIixcbiAgICBcIk1hcnlsYW5kXCIsXG4gICAgXCJNYXNzYWNodXNldHRzXCIsXG4gICAgXCJNaWNoaWdhblwiLFxuICAgIFwiTWlubmVzb3RhXCIsXG4gICAgXCJNaXNzaXNzaXBwaVwiLFxuICAgIFwiTWlzc291cmlcIixcbiAgICBcIk1vbnRhbmFcIixcbiAgICBcIk5lYnJhc2thXCIsXG4gICAgXCJOZXZhZGFcIixcbiAgICBcIk5ldyBIYW1wc2hpcmVcIixcbiAgICBcIk5ldyBKZXJzZXlcIixcbiAgICBcIk5ldyBNZXhpY29cIixcbiAgICBcIk5ldyBZb3JrXCIsXG4gICAgXCJOb3J0aCBDYXJvbGluYVwiLFxuICAgIFwiTm9ydGggRGFrb3RhXCIsXG4gICAgXCJPaGlvXCIsXG4gICAgXCJPa2xhaG9tYVwiLFxuICAgIFwiT3JlZ29uXCIsXG4gICAgXCJQZW5uc3lsdmFuaWFcIixcbiAgICBcIlJob2RlIElzbGFuZFwiLFxuICAgIFwiU291dGggQ2Fyb2xpbmFcIixcbiAgICBcIlNvdXRoIERha290YVwiLFxuICAgIFwiVGVubmVzc2VlXCIsXG4gICAgXCJUZXhhc1wiLFxuICAgIFwiVXRhaFwiLFxuICAgIFwiVmVybW9udFwiLFxuICAgIFwiVmlyZ2luaWFcIixcbiAgICBcIldhc2hpbmd0b25cIixcbiAgICBcIldlc3QgVmlyZ2luaWFcIixcbiAgICBcIldpc2NvbnNpblwiLFxuICAgIFwiV3lvbWluZ1wiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBTFwiLFxuICAgIFwiQUtcIixcbiAgICBcIkFaXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQ0FcIixcbiAgICBcIkNPXCIsXG4gICAgXCJDVFwiLFxuICAgIFwiREVcIixcbiAgICBcIkZMXCIsXG4gICAgXCJHQVwiLFxuICAgIFwiSElcIixcbiAgICBcIklEXCIsXG4gICAgXCJJTFwiLFxuICAgIFwiSU5cIixcbiAgICBcIklBXCIsXG4gICAgXCJLU1wiLFxuICAgIFwiS1lcIixcbiAgICBcIkxBXCIsXG4gICAgXCJNRVwiLFxuICAgIFwiTURcIixcbiAgICBcIk1BXCIsXG4gICAgXCJNSVwiLFxuICAgIFwiTU5cIixcbiAgICBcIk1TXCIsXG4gICAgXCJNT1wiLFxuICAgIFwiTVRcIixcbiAgICBcIk5FXCIsXG4gICAgXCJOVlwiLFxuICAgIFwiTkhcIixcbiAgICBcIk5KXCIsXG4gICAgXCJOTVwiLFxuICAgIFwiTllcIixcbiAgICBcIk5DXCIsXG4gICAgXCJORFwiLFxuICAgIFwiT0hcIixcbiAgICBcIk9LXCIsXG4gICAgXCJPUlwiLFxuICAgIFwiUEFcIixcbiAgICBcIlJJXCIsXG4gICAgXCJTQ1wiLFxuICAgIFwiU0RcIixcbiAgICBcIlROXCIsXG4gICAgXCJUWFwiLFxuICAgIFwiVVRcIixcbiAgICBcIlZUXCIsXG4gICAgXCJWQVwiLFxuICAgIFwiV0FcIixcbiAgICBcIldWXCIsXG4gICAgXCJXSVwiLFxuICAgIFwiV1lcIlxuICBdLFxuICBcInRpbWVfem9uZVwiOiBbXG4gICAgXCJQYWNpZmljL01pZHdheVwiLFxuICAgIFwiUGFjaWZpYy9QYWdvX1BhZ29cIixcbiAgICBcIlBhY2lmaWMvSG9ub2x1bHVcIixcbiAgICBcIkFtZXJpY2EvSnVuZWF1XCIsXG4gICAgXCJBbWVyaWNhL0xvc19BbmdlbGVzXCIsXG4gICAgXCJBbWVyaWNhL1RpanVhbmFcIixcbiAgICBcIkFtZXJpY2EvRGVudmVyXCIsXG4gICAgXCJBbWVyaWNhL1Bob2VuaXhcIixcbiAgICBcIkFtZXJpY2EvQ2hpaHVhaHVhXCIsXG4gICAgXCJBbWVyaWNhL01hemF0bGFuXCIsXG4gICAgXCJBbWVyaWNhL0NoaWNhZ29cIixcbiAgICBcIkFtZXJpY2EvUmVnaW5hXCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01leGljb19DaXR5XCIsXG4gICAgXCJBbWVyaWNhL01vbnRlcnJleVwiLFxuICAgIFwiQW1lcmljYS9HdWF0ZW1hbGFcIixcbiAgICBcIkFtZXJpY2EvTmV3X1lvcmtcIixcbiAgICBcIkFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXNcIixcbiAgICBcIkFtZXJpY2EvQm9nb3RhXCIsXG4gICAgXCJBbWVyaWNhL0xpbWFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9IYWxpZmF4XCIsXG4gICAgXCJBbWVyaWNhL0NhcmFjYXNcIixcbiAgICBcIkFtZXJpY2EvTGFfUGF6XCIsXG4gICAgXCJBbWVyaWNhL1NhbnRpYWdvXCIsXG4gICAgXCJBbWVyaWNhL1N0X0pvaG5zXCIsXG4gICAgXCJBbWVyaWNhL1Nhb19QYXVsb1wiLFxuICAgIFwiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzXCIsXG4gICAgXCJBbWVyaWNhL0d1eWFuYVwiLFxuICAgIFwiQW1lcmljYS9Hb2R0aGFiXCIsXG4gICAgXCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhXCIsXG4gICAgXCJBdGxhbnRpYy9Bem9yZXNcIixcbiAgICBcIkF0bGFudGljL0NhcGVfVmVyZGVcIixcbiAgICBcIkV1cm9wZS9EdWJsaW5cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkV1cm9wZS9MaXNib25cIixcbiAgICBcIkV1cm9wZS9Mb25kb25cIixcbiAgICBcIkFmcmljYS9DYXNhYmxhbmNhXCIsXG4gICAgXCJBZnJpY2EvTW9ucm92aWFcIixcbiAgICBcIkV0Yy9VVENcIixcbiAgICBcIkV1cm9wZS9CZWxncmFkZVwiLFxuICAgIFwiRXVyb3BlL0JyYXRpc2xhdmFcIixcbiAgICBcIkV1cm9wZS9CdWRhcGVzdFwiLFxuICAgIFwiRXVyb3BlL0xqdWJsamFuYVwiLFxuICAgIFwiRXVyb3BlL1ByYWd1ZVwiLFxuICAgIFwiRXVyb3BlL1NhcmFqZXZvXCIsXG4gICAgXCJFdXJvcGUvU2tvcGplXCIsXG4gICAgXCJFdXJvcGUvV2Fyc2F3XCIsXG4gICAgXCJFdXJvcGUvWmFncmViXCIsXG4gICAgXCJFdXJvcGUvQnJ1c3NlbHNcIixcbiAgICBcIkV1cm9wZS9Db3BlbmhhZ2VuXCIsXG4gICAgXCJFdXJvcGUvTWFkcmlkXCIsXG4gICAgXCJFdXJvcGUvUGFyaXNcIixcbiAgICBcIkV1cm9wZS9BbXN0ZXJkYW1cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9CZXJsaW5cIixcbiAgICBcIkV1cm9wZS9Sb21lXCIsXG4gICAgXCJFdXJvcGUvU3RvY2tob2xtXCIsXG4gICAgXCJFdXJvcGUvVmllbm5hXCIsXG4gICAgXCJBZnJpY2EvQWxnaWVyc1wiLFxuICAgIFwiRXVyb3BlL0J1Y2hhcmVzdFwiLFxuICAgIFwiQWZyaWNhL0NhaXJvXCIsXG4gICAgXCJFdXJvcGUvSGVsc2lua2lcIixcbiAgICBcIkV1cm9wZS9LaWV2XCIsXG4gICAgXCJFdXJvcGUvUmlnYVwiLFxuICAgIFwiRXVyb3BlL1NvZmlhXCIsXG4gICAgXCJFdXJvcGUvVGFsbGlublwiLFxuICAgIFwiRXVyb3BlL1ZpbG5pdXNcIixcbiAgICBcIkV1cm9wZS9BdGhlbnNcIixcbiAgICBcIkV1cm9wZS9Jc3RhbmJ1bFwiLFxuICAgIFwiRXVyb3BlL01pbnNrXCIsXG4gICAgXCJBc2lhL0plcnVzYWxlbVwiLFxuICAgIFwiQWZyaWNhL0hhcmFyZVwiLFxuICAgIFwiQWZyaWNhL0pvaGFubmVzYnVyZ1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiRXVyb3BlL01vc2Nvd1wiLFxuICAgIFwiQXNpYS9LdXdhaXRcIixcbiAgICBcIkFzaWEvUml5YWRoXCIsXG4gICAgXCJBZnJpY2EvTmFpcm9iaVwiLFxuICAgIFwiQXNpYS9CYWdoZGFkXCIsXG4gICAgXCJBc2lhL1RlaHJhblwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvTXVzY2F0XCIsXG4gICAgXCJBc2lhL0Jha3VcIixcbiAgICBcIkFzaWEvVGJpbGlzaVwiLFxuICAgIFwiQXNpYS9ZZXJldmFuXCIsXG4gICAgXCJBc2lhL0thYnVsXCIsXG4gICAgXCJBc2lhL1lla2F0ZXJpbmJ1cmdcIixcbiAgICBcIkFzaWEvS2FyYWNoaVwiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL1Rhc2hrZW50XCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS2F0aG1hbmR1XCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0RoYWthXCIsXG4gICAgXCJBc2lhL0NvbG9tYm9cIixcbiAgICBcIkFzaWEvQWxtYXR5XCIsXG4gICAgXCJBc2lhL05vdm9zaWJpcnNrXCIsXG4gICAgXCJBc2lhL1Jhbmdvb25cIixcbiAgICBcIkFzaWEvQmFuZ2tva1wiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0pha2FydGFcIixcbiAgICBcIkFzaWEvS3Jhc25veWFyc2tcIixcbiAgICBcIkFzaWEvU2hhbmdoYWlcIixcbiAgICBcIkFzaWEvQ2hvbmdxaW5nXCIsXG4gICAgXCJBc2lhL0hvbmdfS29uZ1wiLFxuICAgIFwiQXNpYS9VcnVtcWlcIixcbiAgICBcIkFzaWEvS3VhbGFfTHVtcHVyXCIsXG4gICAgXCJBc2lhL1NpbmdhcG9yZVwiLFxuICAgIFwiQXNpYS9UYWlwZWlcIixcbiAgICBcIkF1c3RyYWxpYS9QZXJ0aFwiLFxuICAgIFwiQXNpYS9Jcmt1dHNrXCIsXG4gICAgXCJBc2lhL1VsYWFuYmFhdGFyXCIsXG4gICAgXCJBc2lhL1Nlb3VsXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1Rva3lvXCIsXG4gICAgXCJBc2lhL1lha3V0c2tcIixcbiAgICBcIkF1c3RyYWxpYS9EYXJ3aW5cIixcbiAgICBcIkF1c3RyYWxpYS9BZGVsYWlkZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL01lbGJvdXJuZVwiLFxuICAgIFwiQXVzdHJhbGlhL1N5ZG5leVwiLFxuICAgIFwiQXVzdHJhbGlhL0JyaXNiYW5lXCIsXG4gICAgXCJBdXN0cmFsaWEvSG9iYXJ0XCIsXG4gICAgXCJBc2lhL1ZsYWRpdm9zdG9rXCIsXG4gICAgXCJQYWNpZmljL0d1YW1cIixcbiAgICBcIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5XCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiUGFjaWZpYy9Ob3VtZWFcIixcbiAgICBcIlBhY2lmaWMvRmlqaVwiLFxuICAgIFwiQXNpYS9LYW1jaGF0a2FcIixcbiAgICBcIlBhY2lmaWMvTWFqdXJvXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL0F1Y2tsYW5kXCIsXG4gICAgXCJQYWNpZmljL1RvbmdhdGFwdVwiLFxuICAgIFwiUGFjaWZpYy9GYWthb2ZvXCIsXG4gICAgXCJQYWNpZmljL0FwaWFcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSAje3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje2J1aWxkaW5nX251bWJlcn0gI3tzdHJlZXRfbmFtZX1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2FcIlxuICBdXG59O1xuZW4uY3JlZGl0X2NhcmQgPSB7XG4gIFwidmlzYVwiOiBbXG4gICAgXCIvNCMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi80IyMjLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwibWFzdGVyY2FyZFwiOiBbXG4gICAgXCIvNVsxLTVdIyMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjc3MS04OSMjLSMjIyMtIyMjTC9cIlxuICBdLFxuICBcImRpc2NvdmVyXCI6IFtcbiAgICBcIi82MDExLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY1IyMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjRbNC05XSMtIyMjIy0jIyMjLSMjI0wvXCIsXG4gICAgXCIvNjAxMS02MiMjLSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY1IyMtNjIjIy0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi82NFs0LTldIy02MiMjLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwiYW1lcmljYW5fZXhwcmVzc1wiOiBbXG4gICAgXCIvMzQjIy0jIyMjIyMtIyMjI0wvXCIsXG4gICAgXCIvMzcjIy0jIyMjIyMtIyMjI0wvXCJcbiAgXSxcbiAgXCJkaW5lcnNfY2x1YlwiOiBbXG4gICAgXCIvMzBbMC01XSMtIyMjIyMjLSMjI0wvXCIsXG4gICAgXCIvMzY4Iy0jIyMjIyMtIyMjTC9cIlxuICBdLFxuICBcImpjYlwiOiBbXG4gICAgXCIvMzUyOC0jIyMjLSMjIyMtIyMjTC9cIixcbiAgICBcIi8zNTI5LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzM1WzMtOF0jLSMjIyMtIyMjIy0jIyNML1wiXG4gIF0sXG4gIFwic3dpdGNoXCI6IFtcbiAgICBcIi82NzU5LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY3NTktIyMjIy0jIyMjLSMjIyMtI0wvXCIsXG4gICAgXCIvNjc1OS0jIyMjLSMjIyMtIyMjIy0jI0wvXCJcbiAgXSxcbiAgXCJzb2xvXCI6IFtcbiAgICBcIi82NzY3LSMjIyMtIyMjIy0jIyNML1wiLFxuICAgIFwiLzY3NjctIyMjIy0jIyMjLSMjIyMtI0wvXCIsXG4gICAgXCIvNjc2Ny0jIyMjLSMjIyMtIyMjIy0jI0wvXCJcbiAgXSxcbiAgXCJkYW5rb3J0XCI6IFwiLzUwMTktIyMjIy0jIyMjLSMjI0wvXCIsXG4gIFwibWFlc3Ryb1wiOiBbXG4gICAgXCIvNTAjezksMTZ9TC9cIixcbiAgICBcIi81WzYtOF0jezksMTZ9TC9cIixcbiAgICBcIi81NiMjezksMTZ9TC9cIlxuICBdLFxuICBcImZvcmJydWdzZm9yZW5pbmdlblwiOiBcIi82MDA3LTIyIyMtIyMjIy0jIyNML1wiLFxuICBcImxhc2VyXCI6IFtcbiAgICBcIi82MzA0IyMjIyMjIyMjIyNML1wiLFxuICAgIFwiLzY3MDYjIyMjIyMjIyMjI0wvXCIsXG4gICAgXCIvNjc3MSMjIyMjIyMjIyMjTC9cIixcbiAgICBcIi82NzA5IyMjIyMjIyMjIyNML1wiLFxuICAgIFwiLzYzMDQjIyMjIyMjIyN7NSw2fUwvXCIsXG4gICAgXCIvNjcwNiMjIyMjIyMjI3s1LDZ9TC9cIixcbiAgICBcIi82NzcxIyMjIyMjIyMjezUsNn1ML1wiLFxuICAgIFwiLzY3MDkjIyMjIyMjIyN7NSw2fUwvXCJcbiAgXVxufTtcbmVuLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkluY1wiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkxMQ1wiLFxuICAgIFwiR3JvdXBcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgXSxcbiAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjogW1xuICAgICAgXCJhYmlsaXR5XCIsXG4gICAgICBcImFjY2Vzc1wiLFxuICAgICAgXCJhZGFwdGVyXCIsXG4gICAgICBcImFsZ29yaXRobVwiLFxuICAgICAgXCJhbGxpYW5jZVwiLFxuICAgICAgXCJhbmFseXplclwiLFxuICAgICAgXCJhcHBsaWNhdGlvblwiLFxuICAgICAgXCJhcHByb2FjaFwiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVcIixcbiAgICAgIFwiYXJjaGl2ZVwiLFxuICAgICAgXCJhcnRpZmljaWFsIGludGVsbGlnZW5jZVwiLFxuICAgICAgXCJhcnJheVwiLFxuICAgICAgXCJhdHRpdHVkZVwiLFxuICAgICAgXCJiZW5jaG1hcmtcIixcbiAgICAgIFwiYnVkZ2V0YXJ5IG1hbmFnZW1lbnRcIixcbiAgICAgIFwiY2FwYWJpbGl0eVwiLFxuICAgICAgXCJjYXBhY2l0eVwiLFxuICAgICAgXCJjaGFsbGVuZ2VcIixcbiAgICAgIFwiY2lyY3VpdFwiLFxuICAgICAgXCJjb2xsYWJvcmF0aW9uXCIsXG4gICAgICBcImNvbXBsZXhpdHlcIixcbiAgICAgIFwiY29uY2VwdFwiLFxuICAgICAgXCJjb25nbG9tZXJhdGlvblwiLFxuICAgICAgXCJjb250aW5nZW5jeVwiLFxuICAgICAgXCJjb3JlXCIsXG4gICAgICBcImN1c3RvbWVyIGxveWFsdHlcIixcbiAgICAgIFwiZGF0YWJhc2VcIixcbiAgICAgIFwiZGF0YS13YXJlaG91c2VcIixcbiAgICAgIFwiZGVmaW5pdGlvblwiLFxuICAgICAgXCJlbXVsYXRpb25cIixcbiAgICAgIFwiZW5jb2RpbmdcIixcbiAgICAgIFwiZW5jcnlwdGlvblwiLFxuICAgICAgXCJleHRyYW5ldFwiLFxuICAgICAgXCJmaXJtd2FyZVwiLFxuICAgICAgXCJmbGV4aWJpbGl0eVwiLFxuICAgICAgXCJmb2N1cyBncm91cFwiLFxuICAgICAgXCJmb3JlY2FzdFwiLFxuICAgICAgXCJmcmFtZVwiLFxuICAgICAgXCJmcmFtZXdvcmtcIixcbiAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcIkdyYXBoaWMgSW50ZXJmYWNlXCIsXG4gICAgICBcImdyb3Vwd2FyZVwiLFxuICAgICAgXCJHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VcIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiaGVscC1kZXNrXCIsXG4gICAgICBcImhpZXJhcmNoeVwiLFxuICAgICAgXCJodWJcIixcbiAgICAgIFwiaW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiaW5mby1tZWRpYXJpZXNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiaW5pdGlhdGl2ZVwiLFxuICAgICAgXCJpbnN0YWxsYXRpb25cIixcbiAgICAgIFwiaW5zdHJ1Y3Rpb24gc2V0XCIsXG4gICAgICBcImludGVyZmFjZVwiLFxuICAgICAgXCJpbnRlcm5ldCBzb2x1dGlvblwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJrbm93bGVkZ2UgdXNlclwiLFxuICAgICAgXCJrbm93bGVkZ2UgYmFzZVwiLFxuICAgICAgXCJsb2NhbCBhcmVhIG5ldHdvcmtcIixcbiAgICAgIFwibGV2ZXJhZ2VcIixcbiAgICAgIFwibWF0cmljZXNcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcIm1ldGhvZG9sb2d5XCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmF0aW9uXCIsXG4gICAgICBcIm1vZGVsXCIsXG4gICAgICBcIm1vZGVyYXRvclwiLFxuICAgICAgXCJtb25pdG9yaW5nXCIsXG4gICAgICBcIm1vcmF0b3JpdW1cIixcbiAgICAgIFwibmV1cmFsLW5ldFwiLFxuICAgICAgXCJvcGVuIGFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJvcGVuIHN5c3RlbVwiLFxuICAgICAgXCJvcmNoZXN0cmF0aW9uXCIsXG4gICAgICBcInBhcmFkaWdtXCIsXG4gICAgICBcInBhcmFsbGVsaXNtXCIsXG4gICAgICBcInBvbGljeVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwicHJpY2luZyBzdHJ1Y3R1cmVcIixcbiAgICAgIFwicHJvY2VzcyBpbXByb3ZlbWVudFwiLFxuICAgICAgXCJwcm9kdWN0XCIsXG4gICAgICBcInByb2R1Y3Rpdml0eVwiLFxuICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICBcInByb2plY3Rpb25cIixcbiAgICAgIFwicHJvdG9jb2xcIixcbiAgICAgIFwic2VjdXJlZCBsaW5lXCIsXG4gICAgICBcInNlcnZpY2UtZGVza1wiLFxuICAgICAgXCJzb2Z0d2FyZVwiLFxuICAgICAgXCJzb2x1dGlvblwiLFxuICAgICAgXCJzdGFuZGFyZGl6YXRpb25cIixcbiAgICAgIFwic3RyYXRlZ3lcIixcbiAgICAgIFwic3RydWN0dXJlXCIsXG4gICAgICBcInN1Y2Nlc3NcIixcbiAgICAgIFwic3VwZXJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VwcG9ydFwiLFxuICAgICAgXCJzeW5lcmd5XCIsXG4gICAgICBcInN5c3RlbSBlbmdpbmVcIixcbiAgICAgIFwidGFzay1mb3JjZVwiLFxuICAgICAgXCJ0aHJvdWdocHV0XCIsXG4gICAgICBcInRpbWUtZnJhbWVcIixcbiAgICAgIFwidG9vbHNldFwiLFxuICAgICAgXCJ1dGlsaXNhdGlvblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcIndvcmtmb3JjZVwiXG4gICBdLFxuICBcImJzX3ZlcmJcIjogW1xuICAgICAgXCJpbXBsZW1lbnRcIixcbiAgICAgIFwidXRpbGl6ZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVcIixcbiAgICAgIFwic3RyZWFtbGluZVwiLFxuICAgICAgXCJvcHRpbWl6ZVwiLFxuICAgICAgXCJldm9sdmVcIixcbiAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICBcImVtYnJhY2VcIixcbiAgICAgIFwiZW5hYmxlXCIsXG4gICAgICBcIm9yY2hlc3RyYXRlXCIsXG4gICAgICBcImxldmVyYWdlXCIsXG4gICAgICBcInJlaW52ZW50XCIsXG4gICAgICBcImFnZ3JlZ2F0ZVwiLFxuICAgICAgXCJhcmNoaXRlY3RcIixcbiAgICAgIFwiZW5oYW5jZVwiLFxuICAgICAgXCJpbmNlbnRpdml6ZVwiLFxuICAgICAgXCJtb3JwaFwiLFxuICAgICAgXCJlbXBvd2VyXCIsXG4gICAgICBcImVudmlzaW9uZWVyXCIsXG4gICAgICBcIm1vbmV0aXplXCIsXG4gICAgICBcImhhcm5lc3NcIixcbiAgICAgIFwiZmFjaWxpdGF0ZVwiLFxuICAgICAgXCJzZWl6ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwic3luZXJnaXplXCIsXG4gICAgICBcInN0cmF0ZWdpemVcIixcbiAgICAgIFwiZGVwbG95XCIsXG4gICAgICBcImJyYW5kXCIsXG4gICAgICBcImdyb3dcIixcbiAgICAgIFwidGFyZ2V0XCIsXG4gICAgICBcInN5bmRpY2F0ZVwiLFxuICAgICAgXCJzeW50aGVzaXplXCIsXG4gICAgICBcImRlbGl2ZXJcIixcbiAgICAgIFwibWVzaFwiLFxuICAgICAgXCJpbmN1YmF0ZVwiLFxuICAgICAgXCJlbmdhZ2VcIixcbiAgICAgIFwibWF4aW1pemVcIixcbiAgICAgIFwiYmVuY2htYXJrXCIsXG4gICAgICBcImV4cGVkaXRlXCIsXG4gICAgICBcInJlaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcIndoaXRlYm9hcmRcIixcbiAgICAgIFwidmlzdWFsaXplXCIsXG4gICAgICBcInJlcHVycG9zZVwiLFxuICAgICAgXCJpbm5vdmF0ZVwiLFxuICAgICAgXCJzY2FsZVwiLFxuICAgICAgXCJ1bmxlYXNoXCIsXG4gICAgICBcImRyaXZlXCIsXG4gICAgICBcImV4dGVuZFwiLFxuICAgICAgXCJlbmdpbmVlclwiLFxuICAgICAgXCJyZXZvbHV0aW9uaXplXCIsXG4gICAgICBcImdlbmVyYXRlXCIsXG4gICAgICBcImV4cGxvaXRcIixcbiAgICAgIFwidHJhbnNpdGlvblwiLFxuICAgICAgXCJlLWVuYWJsZVwiLFxuICAgICAgXCJpdGVyYXRlXCIsXG4gICAgICBcImN1bHRpdmF0ZVwiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwicHJvZHVjdGl6ZVwiLFxuICAgICAgXCJyZWRlZmluZVwiLFxuICAgICAgXCJyZWNvbnRleHR1YWxpemVcIlxuICAgIF0sXG4gICAgXCJic19hZGplY3RpdmVcIjogW1xuICAgICAgXCJjbGlja3MtYW5kLW1vcnRhclwiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ2ZXJ0aWNhbFwiLFxuICAgICAgXCJwcm9hY3RpdmVcIixcbiAgICAgIFwicm9idXN0XCIsXG4gICAgICBcInJldm9sdXRpb25hcnlcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwibGVhZGluZy1lZGdlXCIsXG4gICAgICBcImlubm92YXRpdmVcIixcbiAgICAgIFwiaW50dWl0aXZlXCIsXG4gICAgICBcInN0cmF0ZWdpY1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwic3RpY2t5XCIsXG4gICAgICBcIm9uZS10by1vbmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJlbmQtdG8tZW5kXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyXCIsXG4gICAgICBcImZyaWN0aW9ubGVzc1wiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZpcmFsXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiMjQvMzY1XCIsXG4gICAgICBcImJlc3Qtb2YtYnJlZWRcIixcbiAgICAgIFwia2lsbGVyXCIsXG4gICAgICBcIm1hZ25ldGljXCIsXG4gICAgICBcImJsZWVkaW5nLWVkZ2VcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiZG90LWNvbVwiLFxuICAgICAgXCJzZXh5XCIsXG4gICAgICBcImJhY2stZW5kXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJlZmZpY2llbnRcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGVkXCIsXG4gICAgICBcInNlYW1sZXNzXCIsXG4gICAgICBcImV4dGVuc2libGVcIixcbiAgICAgIFwidHVybi1rZXlcIixcbiAgICAgIFwid29ybGQtY2xhc3NcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiY3Jvc3MtbWVkaWFcIixcbiAgICAgIFwic3luZXJnaXN0aWNcIixcbiAgICAgIFwiYnJpY2tzLWFuZC1jbGlja3NcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInVzZXItY2VudHJpY1wiLFxuICAgICAgXCJ2aXNpb25hcnlcIixcbiAgICAgIFwiY3VzdG9taXplZFwiLFxuICAgICAgXCJ1YmlxdWl0b3VzXCIsXG4gICAgICBcInBsdWctYW5kLXBsYXlcIixcbiAgICAgIFwiY29sbGFib3JhdGl2ZVwiLFxuICAgICAgXCJjb21wZWxsaW5nXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcInJpY2hcIlxuICAgIF0sXG4gICAgXCJic19ub3VuXCI6IFtcbiAgICAgIFwic3luZXJnaWVzXCIsXG4gICAgICBcIndlYi1yZWFkaW5lc3NcIixcbiAgICAgIFwicGFyYWRpZ21zXCIsXG4gICAgICBcIm1hcmtldHNcIixcbiAgICAgIFwicGFydG5lcnNoaXBzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlc1wiLFxuICAgICAgXCJwbGF0Zm9ybXNcIixcbiAgICAgIFwiaW5pdGlhdGl2ZXNcIixcbiAgICAgIFwiY2hhbm5lbHNcIixcbiAgICAgIFwiZXllYmFsbHNcIixcbiAgICAgIFwiY29tbXVuaXRpZXNcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV0aW9uc1wiLFxuICAgICAgXCJlLXRhaWxlcnNcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJhY3Rpb24taXRlbXNcIixcbiAgICAgIFwicG9ydGFsc1wiLFxuICAgICAgXCJuaWNoZXNcIixcbiAgICAgIFwidGVjaG5vbG9naWVzXCIsXG4gICAgICBcImNvbnRlbnRcIixcbiAgICAgIFwidm9ydGFsc1wiLFxuICAgICAgXCJzdXBwbHktY2hhaW5zXCIsXG4gICAgICBcImNvbnZlcmdlbmNlXCIsXG4gICAgICBcInJlbGF0aW9uc2hpcHNcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlc1wiLFxuICAgICAgXCJpbnRlcmZhY2VzXCIsXG4gICAgICBcImUtbWFya2V0c1wiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInN5c3RlbXNcIixcbiAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICBcImluZm9tZWRpYXJpZXNcIixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm1pbmRzaGFyZVwiLFxuICAgICAgXCJkZWxpdmVyYWJsZXNcIixcbiAgICAgIFwidXNlcnNcIixcbiAgICAgIFwic2NoZW1hc1wiLFxuICAgICAgXCJuZXR3b3Jrc1wiLFxuICAgICAgXCJhcHBsaWNhdGlvbnNcIixcbiAgICAgIFwibWV0cmljc1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJleHBlcmllbmNlc1wiLFxuICAgICAgXCJ3ZWIgc2VydmljZXNcIixcbiAgICAgIFwibWV0aG9kb2xvZ2llc1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gYW5kICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmVuLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5cbi8vQWxsIHRoaXMgYXZhdGFyIGhhdmUgYmVlbiBhdXRob3JpemVkIGJ5IGl0cyBhd2Vzb21lIHVzZXJzIHRvIGJlIHVzZSBvbiBsaXZlIHdlYnNpdGVzIChub3QganVzdCBtb2NrdXBzKVxuLy9Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0OiBodHRwOi8vdWlmYWNlcy5jb20vYXV0aG9yaXplZFxudmFyIGF2YXRhclVyaSA9IFtcImphcmphbi8xMjguanBnXCIsXG4gICAgXCJtYWhkaWYvMTI4LmpwZ1wiLFxuICAgIFwic3ByYXlhZ2EvMTI4LmpwZ1wiLFxuICAgIFwicnV6aW5hdi8xMjguanBnXCIsXG4gICAgXCJTa3loYXJ0bWFuLzEyOC5qcGdcIixcbiAgICBcIm1vc2Nvei8xMjguanBnXCIsXG4gICAgXCJrdXJhZmlyZS8xMjguanBnXCIsXG4gICAgXCI5MWJpbGFsLzEyOC5qcGdcIixcbiAgICBcImlnb3JnYXJ5YmFsZGkvMTI4LmpwZ1wiLFxuICAgIFwiY2FsZWJvZ2Rlbi8xMjguanBnXCIsXG4gICAgXCJtYWx5a2hpbnYvMTI4LmpwZ1wiLFxuICAgIFwiam9lbGhlbGluLzEyOC5qcGdcIixcbiAgICBcImt1c2hzb2xpdGFyeS8xMjguanBnXCIsXG4gICAgXCJjb3JleXdlYi8xMjguanBnXCIsXG4gICAgXCJzbm93c2hhZGUvMTI4LmpwZ1wiLFxuICAgIFwiYXJldXMvMTI4LmpwZ1wiLFxuICAgIFwiaG9sZGVud2ViLzEyOC5qcGdcIixcbiAgICBcImhleWltanVhbmkvMTI4LmpwZ1wiLFxuICAgIFwiZW52ZXgvMTI4LmpwZ1wiLFxuICAgIFwidW50ZXJkcmVodC8xMjguanBnXCIsXG4gICAgXCJjb2xsZWdlbWFuLzEyOC5qcGdcIixcbiAgICBcInBlZWpmYW5jaGVyLzEyOC5qcGdcIixcbiAgICBcImFuZHlpc29ubGluZS8xMjguanBnXCIsXG4gICAgXCJ1bHRyYWdleC8xMjguanBnXCIsXG4gICAgXCJmdWNrX3lvdV90d28vMTI4LmpwZ1wiLFxuICAgIFwiYWRlbGxlY2hhcmxlcy8xMjguanBnXCIsXG4gICAgXCJhdGVuZXVwb3B1bGFyLzEyOC5qcGdcIixcbiAgICBcImFobWV0YWxwYmFsa2FuLzEyOC5qcGdcIixcbiAgICBcIlN0aWV2aXVzLzEyOC5qcGdcIixcbiAgICBcImtlcmVtLzEyOC5qcGdcIixcbiAgICBcIm9zdmFsZGFzLzEyOC5qcGdcIixcbiAgICBcImFuZ2VsY2ViYWxsb3MvMTI4LmpwZ1wiLFxuICAgIFwidGhpZXJyeWtvYmxlbnR6LzEyOC5qcGdcIixcbiAgICBcInBldGVybGFuZHQvMTI4LmpwZ1wiLFxuICAgIFwiY2F0YXJpbm8vMTI4LmpwZ1wiLFxuICAgIFwid3IvMTI4LmpwZ1wiLFxuICAgIFwid2VnbG92LzEyOC5qcGdcIixcbiAgICBcImJyYW5kY2xheS8xMjguanBnXCIsXG4gICAgXCJmbGFtZV9rYWl6YXIvMTI4LmpwZ1wiLFxuICAgIFwiYWhtZXRzdWxlay8xMjguanBnXCIsXG4gICAgXCJuaWNvbGFzZm9sbGlvdC8xMjguanBnXCIsXG4gICAgXCJqYXlyb2JpbnNvbi8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3Jlcml4b24vMTI4LmpwZ1wiLFxuICAgIFwia29sYWdlLzEyOC5qcGdcIixcbiAgICBcIm1pY2h6ZW4vMTI4LmpwZ1wiLFxuICAgIFwibWFya2plbmtpbnMvMTI4LmpwZ1wiLFxuICAgIFwibmljb2xhaV9sYXJzZW4vMTI4LmpwZ1wiLFxuICAgIFwiZ3QvMTI4LmpwZ1wiLFxuICAgIFwibm94ZHppbmUvMTI4LmpwZ1wiLFxuICAgIFwiYWxhZ29vbi8xMjguanBnXCIsXG4gICAgXCJpZGlvdC8xMjguanBnXCIsXG4gICAgXCJtaXprby8xMjguanBnXCIsXG4gICAgXCJjaGFkZW5nbGUvMTI4LmpwZ1wiLFxuICAgIFwibXV0bHU4Mi8xMjguanBnXCIsXG4gICAgXCJzaW1vYmVuc28vMTI4LmpwZ1wiLFxuICAgIFwidm9jaW5vLzEyOC5qcGdcIixcbiAgICBcImd1aWlpcG9udGVzLzEyOC5qcGdcIixcbiAgICBcInNveWphdmkvMTI4LmpwZ1wiLFxuICAgIFwiam9zaGF1c3Rpbi8xMjguanBnXCIsXG4gICAgXCJ0b21hc2xhdS8xMjguanBnXCIsXG4gICAgXCJWaW5UaG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwiTWFuaWtSYXRoZWUvMTI4LmpwZ1wiLFxuICAgIFwibGFuZ2F0ZS8xMjguanBnXCIsXG4gICAgXCJjZW1zaGlkLzEyOC5qcGdcIixcbiAgICBcImxlZW11bnJvZS8xMjguanBnXCIsXG4gICAgXCJfc2hhaGVkay8xMjguanBnXCIsXG4gICAgXCJlbmRhLzEyOC5qcGdcIixcbiAgICBcIkJpbGxTS2VubmV5LzEyOC5qcGdcIixcbiAgICBcImRpdnlhLzEyOC5qcGdcIixcbiAgICBcImpvc2hoZW1zbGV5LzEyOC5qcGdcIixcbiAgICBcInNpbmRyZXNvcmh1cy8xMjguanBnXCIsXG4gICAgXCJzb2ZmZXMvMTI4LmpwZ1wiLFxuICAgIFwiOWxlc3NvbnMvMTI4LmpwZ1wiLFxuICAgIFwibGludXgyOS8xMjguanBnXCIsXG4gICAgXCJDaGFraW50b3NoLzEyOC5qcGdcIixcbiAgICBcImFuYWFtaS8xMjguanBnXCIsXG4gICAgXCJqb3JlaXJhLzEyOC5qcGdcIixcbiAgICBcInNoYWRlZWQ5LzEyOC5qcGdcIixcbiAgICBcInNjb3R0a2NsYXJrLzEyOC5qcGdcIixcbiAgICBcImplZGJyaWRnZXMvMTI4LmpwZ1wiLFxuICAgIFwic2FsbGVlZGVzaWduLzEyOC5qcGdcIixcbiAgICBcIm1hcmFrYXNpbmEvMTI4LmpwZ1wiLFxuICAgIFwiYXJpaWwvMTI4LmpwZ1wiLFxuICAgIFwiQnJpYW5QdXJraXNzLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxtYXJ0aW5oby8xMjguanBnXCIsXG4gICAgXCJidWJsaWVua28vMTI4LmpwZ1wiLFxuICAgIFwiZGV2YW5rb3NoYWwvMTI4LmpwZ1wiLFxuICAgIFwiWmFjaGFyeVpvcmJhcy8xMjguanBnXCIsXG4gICAgXCJ0aW1taWxsd29vZC8xMjguanBnXCIsXG4gICAgXCJqb3NodWFzb3J0aW5vLzEyOC5qcGdcIixcbiAgICBcImRhbWVubGVldHVya3MvMTI4LmpwZ1wiLFxuICAgIFwidG9tYXNfamFub3VzZWsvMTI4LmpwZ1wiLFxuICAgIFwiaGVycmhhYXNlLzEyOC5qcGdcIixcbiAgICBcIlJ1c3NlbGxCaXNob3AvMTI4LmpwZ1wiLFxuICAgIFwiYnJhamVzaHdhci8xMjguanBnXCIsXG4gICAgXCJuYWNodG1laXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwiY2JyYWNjby8xMjguanBnXCIsXG4gICAgXCJiZXJtb25wYWludGVyLzEyOC5qcGdcIixcbiAgICBcImFiZHVsbGluZGVuaXMvMTI4LmpwZ1wiLFxuICAgIFwiaXNhY29zdGEvMTI4LmpwZ1wiLFxuICAgIFwic3VwcmIvMTI4LmpwZ1wiLFxuICAgIFwieWFsb3poa2luLzEyOC5qcGdcIixcbiAgICBcImNoYW5kbGVydmR3LzEyOC5qcGdcIixcbiAgICBcImlhbWdhcnRoLzEyOC5qcGdcIixcbiAgICBcIl92aWN0YS8xMjguanBnXCIsXG4gICAgXCJjb21tYWRlbGltaXRlZC8xMjguanBnXCIsXG4gICAgXCJyb3liYXJiZXJ1ay8xMjguanBnXCIsXG4gICAgXCJheGVsLzEyOC5qcGdcIixcbiAgICBcInZsYWRhcmJhdG92LzEyOC5qcGdcIixcbiAgICBcImZmYmVsLzEyOC5qcGdcIixcbiAgICBcInN5cm9waWFuLzEyOC5qcGdcIixcbiAgICBcImFua2l0aW5kLzEyOC5qcGdcIixcbiAgICBcInRyYW5lYmxvdy8xMjguanBnXCIsXG4gICAgXCJmbGFzaG11cnBoeS8xMjguanBnXCIsXG4gICAgXCJDaHJpc0ZhcmluYTc4LzEyOC5qcGdcIixcbiAgICBcImJhbGlvbWVnYS8xMjguanBnXCIsXG4gICAgXCJzYXNjaGFtdC8xMjguanBnXCIsXG4gICAgXCJqbV9kZW5pcy8xMjguanBnXCIsXG4gICAgXCJhbm9mZi8xMjguanBnXCIsXG4gICAgXCJrZW5ueWFkci8xMjguanBnXCIsXG4gICAgXCJjaGF0eXJrby8xMjguanBnXCIsXG4gICAgXCJkaW5neWkvMTI4LmpwZ1wiLFxuICAgIFwibWRzLzEyOC5qcGdcIixcbiAgICBcInRlcnJ5eGxpZmUvMTI4LmpwZ1wiLFxuICAgIFwiYWFyb25pLzEyOC5qcGdcIixcbiAgICBcImtpbmRheS8xMjguanBnXCIsXG4gICAgXCJwcnJzdG4vMTI4LmpwZ1wiLFxuICAgIFwiZWR1YXJkb3N0dWFydC8xMjguanBnXCIsXG4gICAgXCJkaGlsaXBzaXZhLzEyOC5qcGdcIixcbiAgICBcIkdhdmljb0luZC8xMjguanBnXCIsXG4gICAgXCJiYWlyZXMvMTI4LmpwZ1wiLFxuICAgIFwicm9oaXh4LzEyOC5qcGdcIixcbiAgICBcImJpZ21hbmNoby8xMjguanBnXCIsXG4gICAgXCJibGFrZXNpbWtpbnMvMTI4LmpwZ1wiLFxuICAgIFwibGVlaWlvLzEyOC5qcGdcIixcbiAgICBcInRqcnVzLzEyOC5qcGdcIixcbiAgICBcInViZXJzY2hpem8vMTI4LmpwZ1wiLFxuICAgIFwia3lsZWZvdW5kcnkvMTI4LmpwZ1wiLFxuICAgIFwiY2xhdWRpb2d1Z2xpZXJpLzEyOC5qcGdcIixcbiAgICBcInJpcHBsZW1kay8xMjguanBnXCIsXG4gICAgXCJleGVudHJpY2gvMTI4LmpwZ1wiLFxuICAgIFwiamFrZW1vb3JlLzEyOC5qcGdcIixcbiAgICBcImpvYW9lZHVtZWRlaXJvcy8xMjguanBnXCIsXG4gICAgXCJwb29ybWluaS8xMjguanBnXCIsXG4gICAgXCJ0ZXJlc2hlbmtvdi8xMjguanBnXCIsXG4gICAgXCJrZXJ5aWxtYXovMTI4LmpwZ1wiLFxuICAgIFwiaGF5ZG5fd29vZHMvMTI4LmpwZ1wiLFxuICAgIFwicnVkZS8xMjguanBnXCIsXG4gICAgXCJsbHVuLzEyOC5qcGdcIixcbiAgICBcInNnYXVyYXZfYmFnaGVsLzEyOC5qcGdcIixcbiAgICBcImphbWllYnJpdHRhaW4vMTI4LmpwZ1wiLFxuICAgIFwiYmFkbGl0dGxlZHVjay8xMjguanBnXCIsXG4gICAgXCJwaWZhZ29yLzEyOC5qcGdcIixcbiAgICBcImFncm9tb3YvMTI4LmpwZ1wiLFxuICAgIFwiYmVuZWZyaXR6LzEyOC5qcGdcIixcbiAgICBcImVyd2FuaGVzcnkvMTI4LmpwZ1wiLFxuICAgIFwiZGllc2VsbGF3cy8xMjguanBnXCIsXG4gICAgXCJqZXJlbWlhaGEvMTI4LmpwZ1wiLFxuICAgIFwia29yaWRoYW5keS8xMjguanBnXCIsXG4gICAgXCJjaGFlbnNlbC8xMjguanBnXCIsXG4gICAgXCJhbmRyZXdjb2hlbi8xMjguanBnXCIsXG4gICAgXCJzbWFjem55LzEyOC5qcGdcIixcbiAgICBcImdvbnphbG9yb2JhaW5hLzEyOC5qcGdcIixcbiAgICBcIm5hbmRpbmlfbS8xMjguanBnXCIsXG4gICAgXCJzeWRsYXdyZW5jZS8xMjguanBnXCIsXG4gICAgXCJjZGhhcnJpc29uLzEyOC5qcGdcIixcbiAgICBcInRnZXJrZW4vMTI4LmpwZ1wiLFxuICAgIFwibGV3aXNhaW5zbGllLzEyOC5qcGdcIixcbiAgICBcImNoYXJsaWVjd2FpdGUvMTI4LmpwZ1wiLFxuICAgIFwicm9iYnNjaGlsbGVyLzEyOC5qcGdcIixcbiAgICBcImZsZXhycy8xMjguanBnXCIsXG4gICAgXCJtYXR0ZGV0YWlscy8xMjguanBnXCIsXG4gICAgXCJyYXF1ZWx3aWxzb24vMTI4LmpwZ1wiLFxuICAgIFwia2Fyc2gvMTI4LmpwZ1wiLFxuICAgIFwibXJtYXJ0aW5lYXUvMTI4LmpwZ1wiLFxuICAgIFwib3Buc3JjZS8xMjguanBnXCIsXG4gICAgXCJoZ2hhcnJ5Z28vMTI4LmpwZ1wiLFxuICAgIFwibWF4aW1zZXNodWsvMTI4LmpwZ1wiLFxuICAgIFwidXhhbGV4LzEyOC5qcGdcIixcbiAgICBcInNhbWloYWgvMTI4LmpwZ1wiLFxuICAgIFwiY2hhbnBvcnkvMTI4LmpwZ1wiLFxuICAgIFwic2hhcnZpbi8xMjguanBnXCIsXG4gICAgXCJqb3NlbWFycXVlcy8xMjguanBnXCIsXG4gICAgXCJqZWZmZmlzLzEyOC5qcGdcIixcbiAgICBcImtyeXN0YWxmaXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwibG9rZXNoX2NvZGVyLzEyOC5qcGdcIixcbiAgICBcInRoZWRhbWlhbmhkZXovMTI4LmpwZ1wiLFxuICAgIFwiZHBtYWNoYWRvLzEyOC5qcGdcIixcbiAgICBcImZ1bndhdGVyY2F0LzEyOC5qcGdcIixcbiAgICBcInRpbW90aHljZC8xMjguanBnXCIsXG4gICAgXCJpdmFuZmlsaXBvdmJnLzEyOC5qcGdcIixcbiAgICBcInBpY2FyZDEwMi8xMjguanBnXCIsXG4gICAgXCJtYXJjb2JhcmJvc2EvMTI4LmpwZ1wiLFxuICAgIFwia3Jhc25vdWtob3YvMTI4LmpwZ1wiLFxuICAgIFwiZzNkLzEyOC5qcGdcIixcbiAgICBcImFkZW1pbHRlci8xMjguanBnXCIsXG4gICAgXCJyaWNrZHQvMTI4LmpwZ1wiLFxuICAgIFwib3BlcmF0aW5vLzEyOC5qcGdcIixcbiAgICBcImJ1bmdpd2FuLzEyOC5qcGdcIixcbiAgICBcImh1Z29tYW5vLzEyOC5qcGdcIixcbiAgICBcImxvZ29yYWRvLzEyOC5qcGdcIixcbiAgICBcImRjX3VzZXIvMTI4LmpwZ1wiLFxuICAgIFwiaG9yYWNpb2JlbGxhLzEyOC5qcGdcIixcbiAgICBcIlNsYWFwTWUvMTI4LmpwZ1wiLFxuICAgIFwidGVlcmFnaXQvMTI4LmpwZ1wiLFxuICAgIFwiaXFvbmljZC8xMjguanBnXCIsXG4gICAgXCJpbHlhX3Blc3Rvdi8xMjguanBnXCIsXG4gICAgXCJhbmRyZXdhcnJvdy8xMjguanBnXCIsXG4gICAgXCJzc2lza2luZC8xMjguanBnXCIsXG4gICAgXCJzdGFuLzEyOC5qcGdcIixcbiAgICBcIkhlbnJ5SG9mZm1hbi8xMjguanBnXCIsXG4gICAgXCJyZHNhdW5kZXJzLzEyOC5qcGdcIixcbiAgICBcImFkYW1zeHUvMTI4LmpwZ1wiLFxuICAgIFwiY3VyaW91c29mZmljZS8xMjguanBnXCIsXG4gICAgXCJ0aGVtYWRyYXkvMTI4LmpwZ1wiLFxuICAgIFwibWljaGlnYW5ncmFoYW0vMTI4LmpwZ1wiLFxuICAgIFwia29oZXR0ZS8xMjguanBnXCIsXG4gICAgXCJuaWNrZnJhdHRlci8xMjguanBnXCIsXG4gICAgXCJydW5uaW5nc2t1bGwvMTI4LmpwZ1wiLFxuICAgIFwibWFkeXNvbmRlc2lnbnMvMTI4LmpwZ1wiLFxuICAgIFwiYnJlbnRvbl9jbGFya2UvMTI4LmpwZ1wiLFxuICAgIFwiamVubnlzaGVuLzEyOC5qcGdcIixcbiAgICBcImJyYWRlbmhhbW0vMTI4LmpwZ1wiLFxuICAgIFwia3VydGluYy8xMjguanBnXCIsXG4gICAgXCJhbWFucnV6YWluaS8xMjguanBnXCIsXG4gICAgXCJjb3JleWhhZ2dhcmQvMTI4LmpwZ1wiLFxuICAgIFwiS2FyaW1tb3ZlLzEyOC5qcGdcIixcbiAgICBcImFhcm9uYWxmcmVkLzEyOC5qcGdcIixcbiAgICBcInd0cnNsZC8xMjguanBnXCIsXG4gICAgXCJqaXRhY2hpLzEyOC5qcGdcIixcbiAgICBcInRoZXJlYWxtYXJ2aW4vMTI4LmpwZ1wiLFxuICAgIFwicG1laXNzbmVyLzEyOC5qcGdcIixcbiAgICBcIm9vb216LzEyOC5qcGdcIixcbiAgICBcImNoYWNreTE0LzEyOC5qcGdcIixcbiAgICBcImplc3NlZGR5LzEyOC5qcGdcIixcbiAgICBcInRoaW5tYXR0LzEyOC5qcGdcIixcbiAgICBcInNoYW5laHVkc29uLzEyOC5qcGdcIixcbiAgICBcImFrbXVyLzEyOC5qcGdcIixcbiAgICBcIklzYXJ5QW1haXJhbmkvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0aHVyaG9sY29tYmUxLzEyOC5qcGdcIixcbiAgICBcImFuZHljaGlwc3Rlci8xMjguanBnXCIsXG4gICAgXCJib3htb2RlbC8xMjguanBnXCIsXG4gICAgXCJlaHNhbmRpYXJ5LzEyOC5qcGdcIixcbiAgICBcIkx1Y2FzUGVyZGlkYW8vMTI4LmpwZ1wiLFxuICAgIFwic2hhbHQwbmkvMTI4LmpwZ1wiLFxuICAgIFwic3dhcGxvcmQvMTI4LmpwZ1wiLFxuICAgIFwia2FlbGlmYS8xMjguanBnXCIsXG4gICAgXCJwbGJhYmluLzEyOC5qcGdcIixcbiAgICBcImd1aWxsZW1ib3RpLzEyOC5qcGdcIixcbiAgICBcImFyaW5kYW1fLzEyOC5qcGdcIixcbiAgICBcInJlbmJ5cmQvMTI4LmpwZ1wiLFxuICAgIFwidGhpYWdvdmVybmV0dGkvMTI4LmpwZ1wiLFxuICAgIFwiam1pbGxzcGF5c2JpbGxzLzEyOC5qcGdcIixcbiAgICBcIm1pa2VtYWkyYXdlc29tZS8xMjguanBnXCIsXG4gICAgXCJqZXJ2by8xMjguanBnXCIsXG4gICAgXCJtZWthbC8xMjguanBnXCIsXG4gICAgXCJzdGExZXgvMTI4LmpwZ1wiLFxuICAgIFwicm9iZXJnZC8xMjguanBnXCIsXG4gICAgXCJmZWxpcGVjc2wvMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmVhMjExMDg3LzEyOC5qcGdcIixcbiAgICBcImdhcmFuZC8xMjguanBnXCIsXG4gICAgXCJkaG9veWVuZ2EvMTI4LmpwZ1wiLFxuICAgIFwiYWJvdmVmdW5jdGlvbi8xMjguanBnXCIsXG4gICAgXCJwY3JpZGVzYWdhaW4vMTI4LmpwZ1wiLFxuICAgIFwicmFuZG9tbGllcy8xMjguanBnXCIsXG4gICAgXCJCcnlhbkhvcnNleS8xMjguanBnXCIsXG4gICAgXCJoZXlrZW5uZXRoLzEyOC5qcGdcIixcbiAgICBcImRhaHBhcnJhLzEyOC5qcGdcIixcbiAgICBcImFsbHRoaW5nc3NtaXR0eS8xMjguanBnXCIsXG4gICAgXCJkYW52ZXJub24vMTI4LmpwZ1wiLFxuICAgIFwiYmV3ZWlucmVpY2gvMTI4LmpwZ1wiLFxuICAgIFwiaW5jcmVhc2UvMTI4LmpwZ1wiLFxuICAgIFwiZmFsdmFyYWQvMTI4LmpwZ1wiLFxuICAgIFwiYWx4bmRydXN0aW5vdi8xMjguanBnXCIsXG4gICAgXCJzb3V1Zi8xMjguanBnXCIsXG4gICAgXCJvcmt1bmNheWxhci8xMjguanBnXCIsXG4gICAgXCJBTV9LbjIvMTI4LmpwZ1wiLFxuICAgIFwiZ2VhcnBpeGVscy8xMjguanBnXCIsXG4gICAgXCJiYXNzYW1vbG9neS8xMjguanBnXCIsXG4gICAgXCJ2aW1hcmV0aG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwia29zbWFyLzEyOC5qcGdcIixcbiAgICBcIlNVTGlpay8xMjguanBnXCIsXG4gICAgXCJtcmphbWVzbm9ibGUvMTI4LmpwZ1wiLFxuICAgIFwic2lsdmFubXVobGVtYW5uLzEyOC5qcGdcIixcbiAgICBcInNoYW5lSXhELzEyOC5qcGdcIixcbiAgICBcIm5hY2hvLzEyOC5qcGdcIixcbiAgICBcInlpZ2l0cGluYXJiYXNpLzEyOC5qcGdcIixcbiAgICBcImJ1enp1c2Jvcm5lLzEyOC5qcGdcIixcbiAgICBcImFhcm9ua3doaXRlLzEyOC5qcGdcIixcbiAgICBcInJtbGV3aXN1ay8xMjguanBnXCIsXG4gICAgXCJnaWFuY2FybG9uLzEyOC5qcGdcIixcbiAgICBcIm5iaXJja2VsLzEyOC5qcGdcIixcbiAgICBcImRfbm55X21fY2hlci8xMjguanBnXCIsXG4gICAgXCJzZGlkb25hdG8vMTI4LmpwZ1wiLFxuICAgIFwiYXRhcmlib3kvMTI4LmpwZ1wiLFxuICAgIFwiYWJvdGFwLzEyOC5qcGdcIixcbiAgICBcImthcmFsZWsvMTI4LmpwZ1wiLFxuICAgIFwicHNkZXNpZ251ay8xMjguanBnXCIsXG4gICAgXCJsdWR3aWN6YWtwYXdlbC8xMjguanBnXCIsXG4gICAgXCJuZW1hbmphaXZhbm92aWMvMTI4LmpwZ1wiLFxuICAgIFwiYmFsdWxpLzEyOC5qcGdcIixcbiAgICBcImFobWFkYWptaS8xMjguanBnXCIsXG4gICAgXCJ2b3ZrYXNvbG92ZXYvMTI4LmpwZ1wiLFxuICAgIFwic2FtZ3JvdmVyLzEyOC5qcGdcIixcbiAgICBcImRlcmllbnpvNzc3LzEyOC5qcGdcIixcbiAgICBcImpvbmF0aGFuc2ltbW9ucy8xMjguanBnXCIsXG4gICAgXCJuZWxzb25qb3ljZS8xMjguanBnXCIsXG4gICAgXCJTMHVmaTRuMy8xMjguanBnXCIsXG4gICAgXCJ4dG9waGVycGF1bC8xMjguanBnXCIsXG4gICAgXCJvYWt0cmVlbWVkaWEvMTI4LmpwZ1wiLFxuICAgIFwibmF0ZXNjaHVsdGUvMTI4LmpwZ1wiLFxuICAgIFwiZmluZGluZ2plbm55LzEyOC5qcGdcIixcbiAgICBcIm5hbWFua3JlYXRpdmUvMTI4LmpwZ1wiLFxuICAgIFwiYW50b255em90b3YvMTI4LmpwZ1wiLFxuICAgIFwid2Vfc29jaWFsLzEyOC5qcGdcIixcbiAgICBcImxlZWhhbWJsZXkvMTI4LmpwZ1wiLFxuICAgIFwic29saWRfY29sb3IvMTI4LmpwZ1wiLFxuICAgIFwiYWJlbGNhYmFucy8xMjguanBnXCIsXG4gICAgXCJtYmlsZGVyYmFjaC8xMjguanBnXCIsXG4gICAgXCJra3VzYWEvMTI4LmpwZ1wiLFxuICAgIFwiam9yZHl2ZGJvb20vMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zZ2F2aW5hLzEyOC5qcGdcIixcbiAgICBcInBlY2hraW5hdG9yLzEyOC5qcGdcIixcbiAgICBcInZjMjcvMTI4LmpwZ1wiLFxuICAgIFwicmRiYW5ub24vMTI4LmpwZ1wiLFxuICAgIFwiY3JvYWt4LzEyOC5qcGdcIixcbiAgICBcInN1cmliYmxlcy8xMjguanBnXCIsXG4gICAgXCJrZXJpaGVuYXJlLzEyOC5qcGdcIixcbiAgICBcImNhdGFkZWxlb24vMTI4LmpwZ1wiLFxuICAgIFwiZ2Ntb3JsZXkvMTI4LmpwZ1wiLFxuICAgIFwiZHVpdnZ2LzEyOC5qcGdcIixcbiAgICBcInNhc2NoYWRyb3N0ZS8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JEdWJ1Z3Jhcy8xMjguanBnXCIsXG4gICAgXCJ3aW50b3BpYS8xMjguanBnXCIsXG4gICAgXCJtYXR0Ymlsb3R0aS8xMjguanBnXCIsXG4gICAgXCJ0YXlsb3JsaW5nLzEyOC5qcGdcIixcbiAgICBcIm1lZ2RyYXdzLzEyOC5qcGdcIixcbiAgICBcIm1lbG4xa3MvMTI4LmpwZ1wiLFxuICAgIFwibWFobW91ZG1ldHdhbGx5LzEyOC5qcGdcIixcbiAgICBcIlNpbHZlcmVkZ2U5LzEyOC5qcGdcIixcbiAgICBcImRlcmVrZWJyYWRsZXkvMTI4LmpwZ1wiLFxuICAgIFwiaGFwcHlwZXRlcjE5ODMvMTI4LmpwZ1wiLFxuICAgIFwidHJhdmlzX2Fybm9sZC8xMjguanBnXCIsXG4gICAgXCJhcnRlbV9rb3N0ZW5rby8xMjguanBnXCIsXG4gICAgXCJhZG9iaS8xMjguanBnXCIsXG4gICAgXCJkYXlraWluZS8xMjguanBnXCIsXG4gICAgXCJhbGVrX2RqdXJpYy8xMjguanBnXCIsXG4gICAgXCJzY2lwcy8xMjguanBnXCIsXG4gICAgXCJtaWd1ZWxtZW5kZXMvMTI4LmpwZ1wiLFxuICAgIFwianVzdGlucmhlZS8xMjguanBnXCIsXG4gICAgXCJhbHNvYnJvb2tzLzEyOC5qcGdcIixcbiAgICBcImZyb254LzEyOC5qcGdcIixcbiAgICBcIm1jZmx5ZGVzaWduLzEyOC5qcGdcIixcbiAgICBcInNhbnRpX3Vyc28vMTI4LmpwZ1wiLFxuICAgIFwiYWxsZm9yZGVzaWduLzEyOC5qcGdcIixcbiAgICBcInN0YXl1YmVyLzEyOC5qcGdcIixcbiAgICBcImJlcnRib2VybGFuZC8xMjguanBnXCIsXG4gICAgXCJtYXJvc2hvbGx5LzEyOC5qcGdcIixcbiAgICBcImFkYW1uYWMvMTI4LmpwZ1wiLFxuICAgIFwiY3ludGhpYXNhdmFyZC8xMjguanBnXCIsXG4gICAgXCJtdXJpbmdhLzEyOC5qcGdcIixcbiAgICBcImRhbnJvLzEyOC5qcGdcIixcbiAgICBcImhpZW1pbC8xMjguanBnXCIsXG4gICAgXCJqYWNraWVzYWlrLzEyOC5qcGdcIixcbiAgICBcInphY3NuaWRlci8xMjguanBnXCIsXG4gICAgXCJpZHV1Y2svMTI4LmpwZ1wiLFxuICAgIFwiYW50amFudXMvMTI4LmpwZ1wiLFxuICAgIFwiYXJvb25fc2hhcm1hLzEyOC5qcGdcIixcbiAgICBcImRzaHN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwidGhlaGFja2VyLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxicm9va3Nqci8xMjguanBnXCIsXG4gICAgXCJyeWFubWNsYXVnaGxpbi8xMjguanBnXCIsXG4gICAgXCJjbHViYjNycnkvMTI4LmpwZ1wiLFxuICAgIFwidGF5YmVubG9yLzEyOC5qcGdcIixcbiAgICBcInhyaXB1bm92LzEyOC5qcGdcIixcbiAgICBcIm15YXN0cm8vMTI4LmpwZ1wiLFxuICAgIFwiYWRpdHlhc3V0b21vLzEyOC5qcGdcIixcbiAgICBcImRpZ2l0YWxtYXZlcmljay8xMjguanBnXCIsXG4gICAgXCJoamFydHN0cm9ybi8xMjguanBnXCIsXG4gICAgXCJpdG9sbWFjaC8xMjguanBnXCIsXG4gICAgXCJ2YXVnaGFubW9mZml0dC8xMjguanBnXCIsXG4gICAgXCJhYmRvdHMvMTI4LmpwZ1wiLFxuICAgIFwiaXNuaWZlci8xMjguanBnXCIsXG4gICAgXCJzZXJnZXlzYWZvbm92LzEyOC5qcGdcIixcbiAgICBcIm1hei8xMjguanBnXCIsXG4gICAgXCJzY3JhcGRuYi8xMjguanBnXCIsXG4gICAgXCJjaHJpc21qODMvMTI4LmpwZ1wiLFxuICAgIFwidml0b3JsZWFsLzEyOC5qcGdcIixcbiAgICBcInNva2FuaXdhYWwvMTI4LmpwZ1wiLFxuICAgIFwiemFraTNkLzEyOC5qcGdcIixcbiAgICBcImlsbHl6b3Jlbi8xMjguanBnXCIsXG4gICAgXCJtb2NhYnl0ZS8xMjguanBnXCIsXG4gICAgXCJvc21hbmluY2UvMTI4LmpwZ1wiLFxuICAgIFwiZGpzaGVybWFuLzEyOC5qcGdcIixcbiAgICBcImRhdmlkaGVtcGhpbGwvMTI4LmpwZ1wiLFxuICAgIFwid2FnaG5lci8xMjguanBnXCIsXG4gICAgXCJuZWNvZHltaWNvbmVyLzEyOC5qcGdcIixcbiAgICBcInByYXZlZW5fdmlqYXlhLzEyOC5qcGdcIixcbiAgICBcImZhYmJydWNjaS8xMjguanBnXCIsXG4gICAgXCJjbGlmZnNlYWwvMTI4LmpwZ1wiLFxuICAgIFwidHJhdmlzaGluZXMvMTI4LmpwZ1wiLFxuICAgIFwia3VsZGFya2FsdmlrLzEyOC5qcGdcIixcbiAgICBcIkVsdF9uLzEyOC5qcGdcIixcbiAgICBcInBoaWxsYXBpZXIvMTI4LmpwZ1wiLFxuICAgIFwib2tzZWFuamF5LzEyOC5qcGdcIixcbiAgICBcImlkODM1NTU5LzEyOC5qcGdcIixcbiAgICBcImt1ZHJldGtlc2tpbi8xMjguanBnXCIsXG4gICAgXCJhbmpoZXJvLzEyOC5qcGdcIixcbiAgICBcImR1Y2s0ZnVjay8xMjguanBnXCIsXG4gICAgXCJzY290dF9yaWxleS8xMjguanBnXCIsXG4gICAgXCJub3VmYWxpYnJhaGltLzEyOC5qcGdcIixcbiAgICBcImgxYnJkLzEyOC5qcGdcIixcbiAgICBcImJvcmdlc19tYXJjb3MvMTI4LmpwZ1wiLFxuICAgIFwiZGV2aW5oYWxsYWRheS8xMjguanBnXCIsXG4gICAgXCJjaWFyYW5yLzEyOC5qcGdcIixcbiAgICBcInN0ZWZvb28vMTI4LmpwZ1wiLFxuICAgIFwibWlrZWJlZWNoYW0vMTI4LmpwZ1wiLFxuICAgIFwidG9ueW1pbGxpb24vMTI4LmpwZ1wiLFxuICAgIFwiam9zaHVhcmFpY2h1ci8xMjguanBnXCIsXG4gICAgXCJpcmFlLzEyOC5qcGdcIixcbiAgICBcInBldHJhbmdyLzEyOC5qcGdcIixcbiAgICBcImRtaXRyaXljaHV0YS8xMjguanBnXCIsXG4gICAgXCJjaGFybGllZ2Fubi8xMjguanBnXCIsXG4gICAgXCJhcmFzaG1hbnRlZ2hpLzEyOC5qcGdcIixcbiAgICBcImFkaGFtZGFubmF3YXkvMTI4LmpwZ1wiLFxuICAgIFwiYWluc2xleXdhZ29uLzEyOC5qcGdcIixcbiAgICBcInN2ZW5sZW4vMTI4LmpwZ1wiLFxuICAgIFwiZmFpc2FsYWJpZC8xMjguanBnXCIsXG4gICAgXCJiZXNodXIvMTI4LmpwZ1wiLFxuICAgIFwiY2FybHlzb24vMTI4LmpwZ1wiLFxuICAgIFwiZHV0Y2huYWRpYS8xMjguanBnXCIsXG4gICAgXCJ0ZWRkeXpldHRlcmx1bmQvMTI4LmpwZ1wiLFxuICAgIFwic2FtdWVsa3JhZnQvMTI4LmpwZ1wiLFxuICAgIFwiYW9pbWVkaWEvMTI4LmpwZ1wiLFxuICAgIFwidG9kZHJldy8xMjguanBnXCIsXG4gICAgXCJjb2RlcG9ldF9ydS8xMjguanBnXCIsXG4gICAgXCJhcnR2YXZzLzEyOC5qcGdcIixcbiAgICBcImJlbm9pdGJvdWNhcnQvMTI4LmpwZ1wiLFxuICAgIFwiam9tYXJtZW4vMTI4LmpwZ1wiLFxuICAgIFwia29sbWFybG9wZXovMTI4LmpwZ1wiLFxuICAgIFwiY3JlYXJ0aW5jLzEyOC5qcGdcIixcbiAgICBcImhvbWthLzEyOC5qcGdcIixcbiAgICBcImdhYm9yZW50b24vMTI4LmpwZ1wiLFxuICAgIFwicm9iaW5jbGVkaWVyZS8xMjguanBnXCIsXG4gICAgXCJtYXhpbXNvcm9raW4vMTI4LmpwZ1wiLFxuICAgIFwicGxhc3RpY2luZS8xMjguanBnXCIsXG4gICAgXCJqMmRlbWUvMTI4LmpwZ1wiLFxuICAgIFwicGVhY2hhbmFuci8xMjguanBnXCIsXG4gICAgXCJrYXBhbHVjY2lvLzEyOC5qcGdcIixcbiAgICBcImRlX2FzY2FuaW8vMTI4LmpwZ1wiLFxuICAgIFwicmlrYXMvMTI4LmpwZ1wiLFxuICAgIFwiZGF3aWR3dS8xMjguanBnXCIsXG4gICAgXCJtYXJjb3JhbWlyZXMvMTI4LmpwZ1wiLFxuICAgIFwiYW5nZWxjcmVhdGl2ZS8xMjguanBnXCIsXG4gICAgXCJycGF0ZXkvMTI4LmpwZ1wiLFxuICAgIFwicG9wZXkvMTI4LmpwZ1wiLFxuICAgIFwicmVoYXRrYXRodXJpYS8xMjguanBnXCIsXG4gICAgXCJ0aGVfcHVycGxlYnVubnkvMTI4LmpwZ1wiLFxuICAgIFwiMW1hcmtpei8xMjguanBnXCIsXG4gICAgXCJhamF4eV9ydS8xMjguanBnXCIsXG4gICAgXCJicmVubXVycmVsbC8xMjguanBnXCIsXG4gICAgXCJkdWRlc3RlaW4vMTI4LmpwZ1wiLFxuICAgIFwib3NrYXJsZXZpbnNvbi8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JzdHViZXIvMTI4LmpwZ1wiLFxuICAgIFwibmVoZnkvMTI4LmpwZ1wiLFxuICAgIFwidmljaXZhZGVsaW5lLzEyOC5qcGdcIixcbiAgICBcImxlYW5kcm92YXJhbmRhLzEyOC5qcGdcIixcbiAgICBcInNjb3R0Z2FsbGFudC8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JfaGF5ZGluLzEyOC5qcGdcIixcbiAgICBcInNhd3JiLzEyOC5qcGdcIixcbiAgICBcInJ5aGFuaGFzc2FuLzEyOC5qcGdcIixcbiAgICBcImFtYXl2cy8xMjguanBnXCIsXG4gICAgXCJhX2JyaXhlbi8xMjguanBnXCIsXG4gICAgXCJrYXJvbGtyYWtvd2lha18vMTI4LmpwZ1wiLFxuICAgIFwiaGVya3VsYW5vLzEyOC5qcGdcIixcbiAgICBcImdlcmFuNy8xMjguanBnXCIsXG4gICAgXCJjZ2dhdXJhdi8xMjguanBnXCIsXG4gICAgXCJjaHJpc193aXRrby8xMjguanBnXCIsXG4gICAgXCJsb3Nvc2luYS8xMjguanBnXCIsXG4gICAgXCJwb2xhcml0eS8xMjguanBnXCIsXG4gICAgXCJtYXR0bGF0LzEyOC5qcGdcIixcbiAgICBcImJyYW5kb25idXJrZS8xMjguanBnXCIsXG4gICAgXCJjb25zdGFudHgvMTI4LmpwZ1wiLFxuICAgIFwidGV5bG9yZmVsaXovMTI4LmpwZ1wiLFxuICAgIFwiY3JhaWdlbGltZWxpYWgvMTI4LmpwZ1wiLFxuICAgIFwicmFjaGVscmV2ZWxleS8xMjguanBnXCIsXG4gICAgXCJyZWFibzEwMS8xMjguanBnXCIsXG4gICAgXCJyYWhtZWVuLzEyOC5qcGdcIixcbiAgICBcImt5LzEyOC5qcGdcIixcbiAgICBcInJpY2t5eWVhbi8xMjguanBnXCIsXG4gICAgXCJqMDRudG9oLzEyOC5qcGdcIixcbiAgICBcInNwYnJvbWEvMTI4LmpwZ1wiLFxuICAgIFwic2ViYXNodG9uLzEyOC5qcGdcIixcbiAgICBcImpwZW5pY28vMTI4LmpwZ1wiLFxuICAgIFwiZnJhbmNpc192ZWdhLzEyOC5qcGdcIixcbiAgICBcIm9rdGF5ZWxpcGVrLzEyOC5qcGdcIixcbiAgICBcImtpa2lsbG8vMTI4LmpwZ1wiLFxuICAgIFwiZmFiYmlhbnovMTI4LmpwZ1wiLFxuICAgIFwibGFycnlnZXJhcmQvMTI4LmpwZ1wiLFxuICAgIFwiQnJvdW1pWW91c3NlZi8xMjguanBnXCIsXG4gICAgXCIwdGhlcnBsYW5ldC8xMjguanBnXCIsXG4gICAgXCJtYmlsYWxzaWRkaXF1ZTEvMTI4LmpwZ1wiLFxuICAgIFwiaW9udXNzLzEyOC5qcGdcIixcbiAgICBcImdycnJfbmwvMTI4LmpwZ1wiLFxuICAgIFwibGltaW5oYS8xMjguanBnXCIsXG4gICAgXCJyYXdkaWdnaWUvMTI4LmpwZ1wiLFxuICAgIFwicnlhbmRvd25pZS8xMjguanBnXCIsXG4gICAgXCJzZXRobG91ZXkvMTI4LmpwZ1wiLFxuICAgIFwicGl4YWdlLzEyOC5qcGdcIixcbiAgICBcImFycGl0bmovMTI4LmpwZ1wiLFxuICAgIFwic3dpdG1lcjc3Ny8xMjguanBnXCIsXG4gICAgXCJqb3Nldm5jbGNoLzEyOC5qcGdcIixcbiAgICBcImthbmlja2FpcmFqLzEyOC5qcGdcIixcbiAgICBcInB1emlrLzEyOC5qcGdcIixcbiAgICBcInRiYWtkZXNpZ25zLzEyOC5qcGdcIixcbiAgICBcImJlc2J1anVwaS8xMjguanBnXCIsXG4gICAgXCJzdXBqb2V5LzEyOC5qcGdcIixcbiAgICBcImxvd2llLzEyOC5qcGdcIixcbiAgICBcImxpbmtpYm9sLzEyOC5qcGdcIixcbiAgICBcImJhbGludG9yb3N6LzEyOC5qcGdcIixcbiAgICBcImltY29kaW5nLzEyOC5qcGdcIixcbiAgICBcImFndXN0aW5jcnVpei8xMjguanBnXCIsXG4gICAgXCJndXNvdG8vMTI4LmpwZ1wiLFxuICAgIFwidGhvbWFzc2NocmlqZXIvMTI4LmpwZ1wiLFxuICAgIFwic3VwZXJvdXRtYW4vMTI4LmpwZ1wiLFxuICAgIFwia2FsbWVycmF1dGFtLzEyOC5qcGdcIixcbiAgICBcImdhYnJpZWxpemFsby8xMjguanBnXCIsXG4gICAgXCJnb2plYW55bi8xMjguanBnXCIsXG4gICAgXCJkYXZpZGJhbGRpZS8xMjguanBnXCIsXG4gICAgXCJfdm9qdG8vMTI4LmpwZ1wiLFxuICAgIFwibGF1cmVuZ3JheS8xMjguanBnXCIsXG4gICAgXCJqeWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJteW15Ym95LzEyOC5qcGdcIixcbiAgICBcIm5lbGxsZW8vMTI4LmpwZ1wiLFxuICAgIFwibWFyY2lvdG9sZWRvLzEyOC5qcGdcIixcbiAgICBcIm5pbmphZDNtMC8xMjguanBnXCIsXG4gICAgXCJ0b19zb2hhbS8xMjguanBnXCIsXG4gICAgXCJoYXNzbHVuc2ZvcmQvMTI4LmpwZ1wiLFxuICAgIFwibXVyaWRyYWhoYWwvMTI4LmpwZ1wiLFxuICAgIFwibGV2aXNhbi8xMjguanBnXCIsXG4gICAgXCJncmFoYW1rZW5uZXJ5LzEyOC5qcGdcIixcbiAgICBcImxlcGV0aXRvZ3JlLzEyOC5qcGdcIixcbiAgICBcImFudG9uZ2Vua2luLzEyOC5qcGdcIixcbiAgICBcIm5lc3NvaWxhLzEyOC5qcGdcIixcbiAgICBcImFtYW5kYWJ1emFyZC8xMjguanBnXCIsXG4gICAgXCJzYWZyYW5rb3YvMTI4LmpwZ1wiLFxuICAgIFwiY29jb2xlcm8vMTI4LmpwZ1wiLFxuICAgIFwiZHNzNDkvMTI4LmpwZ1wiLFxuICAgIFwibWF0dDMyMjQvMTI4LmpwZ1wiLFxuICAgIFwiYmx1ZXNpeC8xMjguanBnXCIsXG4gICAgXCJxdWFpbGFuZHF1YXNhci8xMjguanBnXCIsXG4gICAgXCJBbGJlcnRvQ29jb2NpLzEyOC5qcGdcIixcbiAgICBcImxlcGluc2tpLzEyOC5qcGdcIixcbiAgICBcInNlbWVudGl5LzEyOC5qcGdcIixcbiAgICBcIm1odWRvYml2bmlrLzEyOC5qcGdcIixcbiAgICBcInRoaWJhdXRfcmUvMTI4LmpwZ1wiLFxuICAgIFwib2xnYXJ5LzEyOC5qcGdcIixcbiAgICBcInNob2piZXJnLzEyOC5qcGdcIixcbiAgICBcIm10b2xva29ubmlrb3YvMTI4LmpwZ1wiLFxuICAgIFwiYmVyZXRvLzEyOC5qcGdcIixcbiAgICBcIm5hdXBpbnRvcy8xMjguanBnXCIsXG4gICAgXCJ3ZWdvdHZpY2VzLzEyOC5qcGdcIixcbiAgICBcInhhZGhpeC8xMjguanBnXCIsXG4gICAgXCJtYWN4aW0vMTI4LmpwZ1wiLFxuICAgIFwicm9kbnlsb2Jvcy8xMjguanBnXCIsXG4gICAgXCJtYWRjYW1wb3MvMTI4LmpwZ1wiLFxuICAgIFwibWFkZWJ5dmFkaW0vMTI4LmpwZ1wiLFxuICAgIFwiYmFydG9zemRhd3lkemlrLzEyOC5qcGdcIixcbiAgICBcInN1cGVydm92YS8xMjguanBnXCIsXG4gICAgXCJtYXJrcmV0emxvZmYvMTI4LmpwZ1wiLFxuICAgIFwidm9uYWNob28vMTI4LmpwZ1wiLFxuICAgIFwiZGFyeWx3cy8xMjguanBnXCIsXG4gICAgXCJzdGV2ZWRlc2lnbmVyLzEyOC5qcGdcIixcbiAgICBcIm15bGVzYi8xMjguanBnXCIsXG4gICAgXCJoZXJiaWd0LzEyOC5qcGdcIixcbiAgICBcImRlcGF1bGF3YWduZXIvMTI4LmpwZ1wiLFxuICAgIFwiZ2VzaGFuLzEyOC5qcGdcIixcbiAgICBcImdpem1lZWRldmlsMTk5MS8xMjguanBnXCIsXG4gICAgXCJfc2NvdHRidXJnZXNzLzEyOC5qcGdcIixcbiAgICBcImxpc292c2t5LzEyOC5qcGdcIixcbiAgICBcImRhdmlkc2FzZGEvMTI4LmpwZ1wiLFxuICAgIFwiYXJ0ZF9zaWduLzEyOC5qcGdcIixcbiAgICBcIllvdW5nQ3V0bGFzcy8xMjguanBnXCIsXG4gICAgXCJtZ29udG8vMTI4LmpwZ1wiLFxuICAgIFwiaXRzdG90YWxseWFteS8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JxdWlubi8xMjguanBnXCIsXG4gICAgXCJvc21vbmQvMTI4LmpwZ1wiLFxuICAgIFwib2tzYW5hZnJld2VyLzEyOC5qcGdcIixcbiAgICBcInphdWVya3JhdXQvMTI4LmpwZ1wiLFxuICAgIFwiaWFta2VpdGhtYXNvbi8xMjguanBnXCIsXG4gICAgXCJuaXRpbmhheWFyYW4vMTI4LmpwZ1wiLFxuICAgIFwibG1qYWJyZXUvMTI4LmpwZ1wiLFxuICAgIFwibWFuZGFsYXJlb3BlbnMvMTI4LmpwZ1wiLFxuICAgIFwidGhpbmtsZWZ0LzEyOC5qcGdcIixcbiAgICBcInBvbmNob21lbmRpdmlsLzEyOC5qcGdcIixcbiAgICBcImp1YW1wZXJyby8xMjguanBnXCIsXG4gICAgXCJicnVub2Rlc2lnbjEyMDYvMTI4LmpwZ1wiLFxuICAgIFwiY2FzZXljYXZhbmFnaC8xMjguanBnXCIsXG4gICAgXCJsdXhlLzEyOC5qcGdcIixcbiAgICBcImRvdGdyaWRsaW5lLzEyOC5qcGdcIixcbiAgICBcInNwZWR3aWcvMTI4LmpwZ1wiLFxuICAgIFwibWFkZXd1bGYvMTI4LmpwZ1wiLFxuICAgIFwibWF0dHNhcGlpLzEyOC5qcGdcIixcbiAgICBcImhlbGRlcmxlYWwvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXNzdHVtcGgvMTI4LmpwZ1wiLFxuICAgIFwiamF5cGhlbi8xMjguanBnXCIsXG4gICAgXCJuc2Ftb3lsb3YvMTI4LmpwZ1wiLFxuICAgIFwiY2hyaXN2YW5kZXJrb29pLzEyOC5qcGdcIixcbiAgICBcImp1c3RtZV90aW1vdGh5Zy8xMjguanBnXCIsXG4gICAgXCJvdG96ay8xMjguanBnXCIsXG4gICAgXCJwcmluemFkaS8xMjguanBnXCIsXG4gICAgXCJndTV0YWYvMTI4LmpwZ1wiLFxuICAgIFwiY3lyaWxfZ2FpbGxhcmQvMTI4LmpwZ1wiLFxuICAgIFwiZF9rb2JlbHlhdHNreS8xMjguanBnXCIsXG4gICAgXCJkYW5pbG9jLzEyOC5qcGdcIixcbiAgICBcIm53ZHNoYS8xMjguanBnXCIsXG4gICAgXCJyb21hbmJ1bGFoLzEyOC5qcGdcIixcbiAgICBcInNra2lyaWxvdi8xMjguanBnXCIsXG4gICAgXCJkdmR3aW5kZW4vMTI4LmpwZ1wiLFxuICAgIFwiZGFubm9sLzEyOC5qcGdcIixcbiAgICBcInRoZWtldmluam9uZXMvMTI4LmpwZ1wiLFxuICAgIFwiandhbHRlcjE0LzEyOC5qcGdcIixcbiAgICBcInRpbWd0aG9tYXMvMTI4LmpwZ1wiLFxuICAgIFwiYnVkZGhhc291cmNlLzEyOC5qcGdcIixcbiAgICBcInV4cGlwZXIvMTI4LmpwZ1wiLFxuICAgIFwidGhhdG9uZXRvbW15LzEyOC5qcGdcIixcbiAgICBcImRpYW5zaWdpdHAvMTI4LmpwZ1wiLFxuICAgIFwiYWRyaWVudGhzLzEyOC5qcGdcIixcbiAgICBcImtsaW1ta2EvMTI4LmpwZ1wiLFxuICAgIFwiZ2thYW0vMTI4LmpwZ1wiLFxuICAgIFwiZGVyZWtjcmFtZXIvMTI4LmpwZ1wiLFxuICAgIFwiamVubnl5by8xMjguanBnXCIsXG4gICAgXCJuZXJyc29mdC8xMjguanBnXCIsXG4gICAgXCJ4YWxpb25tYWxpay8xMjguanBnXCIsXG4gICAgXCJlZGhlbmRlcnNvbi8xMjguanBnXCIsXG4gICAgXCJrZXl1cmk4NS8xMjguanBnXCIsXG4gICAgXCJyb3hhbmVqYW1tZXQvMTI4LmpwZ1wiLFxuICAgIFwia2ltY29vbC8xMjguanBnXCIsXG4gICAgXCJlZGtmLzEyOC5qcGdcIixcbiAgICBcIm1hdGtpbnMvMTI4LmpwZ1wiLFxuICAgIFwiYWxlc3NhbmRyb3JpYmUvMTI4LmpwZ1wiLFxuICAgIFwiamFja3NvbmxhdGthLzEyOC5qcGdcIixcbiAgICBcImxlYnJvbmplbm5hbi8xMjguanBnXCIsXG4gICAgXCJrb3N0YXNwdC8xMjguanBnXCIsXG4gICAgXCJrYXJsa2FuYWxsLzEyOC5qcGdcIixcbiAgICBcIm1veW5paGFuLzEyOC5qcGdcIixcbiAgICBcImRhbnBsaWVnby8xMjguanBnXCIsXG4gICAgXCJzYXVsaWhpcnZpLzEyOC5qcGdcIixcbiAgICBcIndlc2xleXRyYW5raW4vMTI4LmpwZ1wiLFxuICAgIFwiZmphZ3Vlcm8vMTI4LmpwZ1wiLFxuICAgIFwiYm93YnJpY2svMTI4LmpwZ1wiLFxuICAgIFwibWFzaGFhYWFhbC8xMjguanBnXCIsXG4gICAgXCJ5YXNzaXJ5YWh5YS8xMjguanBnXCIsXG4gICAgXCJkcGFycmVsbGkvMTI4LmpwZ1wiLFxuICAgIFwiZm90b21hZ2luLzEyOC5qcGdcIixcbiAgICBcImFrYV9qYW1lcy8xMjguanBnXCIsXG4gICAgXCJkZW5pc2VwaXJlcy8xMjguanBnXCIsXG4gICAgXCJpcWJhbHBlcmthc2EvMTI4LmpwZ1wiLFxuICAgIFwibWFydGluYW5zdHkvMTI4LmpwZ1wiLFxuICAgIFwiamFyc2VuLzEyOC5qcGdcIixcbiAgICBcInJfb3kvMTI4LmpwZ1wiLFxuICAgIFwianVzdGlucm9iLzEyOC5qcGdcIixcbiAgICBcImdhYnJpZWxyb3NzZXIvMTI4LmpwZ1wiLFxuICAgIFwibWFsZ29yZG9uLzEyOC5qcGdcIixcbiAgICBcImNhcmxmYWlyY2xvdWdoLzEyOC5qcGdcIixcbiAgICBcIm1pY2hhZWxhYmVoc2VyYS8xMjguanBnXCIsXG4gICAgXCJwaWVycmVzdG9mZmUvMTI4LmpwZ1wiLFxuICAgIFwiZW5qb3l0aGV0YXUvMTI4LmpwZ1wiLFxuICAgIFwibG9nYW5qbGFtYmVydC8xMjguanBnXCIsXG4gICAgXCJycGVlenkvMTI4LmpwZ1wiLFxuICAgIFwiY29yZXlnaW5uaXZhbi8xMjguanBnXCIsXG4gICAgXCJtaWNoYWxocm9uLzEyOC5qcGdcIixcbiAgICBcIm1zdmVldC8xMjguanBnXCIsXG4gICAgXCJsaW5nZXN3YXJhbi8xMjguanBnXCIsXG4gICAgXCJrb2xzdmVpbi8xMjguanBnXCIsXG4gICAgXCJwZXRlcjU3Ni8xMjguanBnXCIsXG4gICAgXCJyZWlkZWlyZWRhbGUvMTI4LmpwZ1wiLFxuICAgIFwiam9leW11cmRhaC8xMjguanBnXCIsXG4gICAgXCJyYXBoYWVsbmlrc29uLzEyOC5qcGdcIixcbiAgICBcIm12ZGhldXZlbC8xMjguanBnXCIsXG4gICAgXCJtYXhsaW5kZXJtYW4vMTI4LmpwZ1wiLFxuICAgIFwiamltbXVpcmhlYWQvMTI4LmpwZ1wiLFxuICAgIFwiYmVncmVhdGl2ZS8xMjguanBnXCIsXG4gICAgXCJmcmFua2llZnJlZXNiaWUvMTI4LmpwZ1wiLFxuICAgIFwicm9idHVybGluY2t4LzEyOC5qcGdcIixcbiAgICBcIlRhbGJpX0NvblNlcHQvMTI4LmpwZ1wiLFxuICAgIFwibG9uZ2xpdmVteXdvcmQvMTI4LmpwZ1wiLFxuICAgIFwidmFuY2hlc3ovMTI4LmpwZ1wiLFxuICAgIFwibWFpa2xhbS8xMjguanBnXCIsXG4gICAgXCJoZXJtYW5vYnJvdGhlci8xMjguanBnXCIsXG4gICAgXCJyZXpfX19hLzEyOC5qcGdcIixcbiAgICBcImdyZWdzcXVlZWIvMTI4LmpwZ1wiLFxuICAgIFwiZ3JlZW5iZXMvMTI4LmpwZ1wiLFxuICAgIFwiX3JhZ3pvci8xMjguanBnXCIsXG4gICAgXCJhbnRob255c3Vrb3cvMTI4LmpwZ1wiLFxuICAgIFwiZmx1aWRicnVzaC8xMjguanBnXCIsXG4gICAgXCJkYWN0cnRyLzEyOC5qcGdcIixcbiAgICBcImplaG5nbHlubi8xMjguanBnXCIsXG4gICAgXCJiZXJnbWFydGluLzEyOC5qcGdcIixcbiAgICBcImh1Z29jb3JuZWpvLzEyOC5qcGdcIixcbiAgICBcIl9ra2dhLzEyOC5qcGdcIixcbiAgICBcImR6YW50aWV2bS8xMjguanBnXCIsXG4gICAgXCJzYXdhbGF6YXIvMTI4LmpwZ1wiLFxuICAgIFwic292ZXNvdmUvMTI4LmpwZ1wiLFxuICAgIFwiam9uc2dvdHdvb2QvMTI4LmpwZ1wiLFxuICAgIFwiYnlyeWFuLzEyOC5qcGdcIixcbiAgICBcInZ5dGF1dGFzX2EvMTI4LmpwZ1wiLFxuICAgIFwibWl6aGdhbi8xMjguanBnXCIsXG4gICAgXCJjaWNlcm9ici8xMjguanBnXCIsXG4gICAgXCJuaWxzaGVsbWVyc3Nvbi8xMjguanBnXCIsXG4gICAgXCJkMzNwdGhvdWdodC8xMjguanBnXCIsXG4gICAgXCJkYXZlY3JhaWdlLzEyOC5qcGdcIixcbiAgICBcIm5ja2pydnMvMTI4LmpwZ1wiLFxuICAgIFwiYWxleGFuZGVybWF5ZXMvMTI4LmpwZ1wiLFxuICAgIFwiamN1YmljLzEyOC5qcGdcIixcbiAgICBcImNyYWlncmNvbGVzLzEyOC5qcGdcIixcbiAgICBcImJhZ2F3YXJtYW4vMTI4LmpwZ1wiLFxuICAgIFwicm9iX3Rob21hczEwLzEyOC5qcGdcIixcbiAgICBcImNvZmxhLzEyOC5qcGdcIixcbiAgICBcIm1haWtlbGsvMTI4LmpwZ1wiLFxuICAgIFwicnRnaWJib25zLzEyOC5qcGdcIixcbiAgICBcInJ1c3NlbGxfYmF5bGlzLzEyOC5qcGdcIixcbiAgICBcIm1oZXNzbG93LzEyOC5qcGdcIixcbiAgICBcImNvZHlzYW5maWxpcHBvLzEyOC5qcGdcIixcbiAgICBcIndlYnRhbnlhLzEyOC5qcGdcIixcbiAgICBcIm1hZGVieWJyZW50b24vMTI4LmpwZ1wiLFxuICAgIFwiZGNhbG9uYWNpLzEyOC5qcGdcIixcbiAgICBcInBlcmZlY3RmbG93LzEyOC5qcGdcIixcbiAgICBcImpqc2lpaS8xMjguanBnXCIsXG4gICAgXCJzYWFyYWJwcmVldC8xMjguanBnXCIsXG4gICAgXCJrdW1hcnJhamFuMTIxMjMvMTI4LmpwZ1wiLFxuICAgIFwiaWFtc3RlZmZlbi8xMjguanBnXCIsXG4gICAgXCJ0aGVtaWtlbmFnbGUvMTI4LmpwZ1wiLFxuICAgIFwiY2Vla2F5dHdlZXQvMTI4LmpwZ1wiLFxuICAgIFwibGFycnlib2x0LzEyOC5qcGdcIixcbiAgICBcImNvbnNwaXJhdG9yLzEyOC5qcGdcIixcbiAgICBcImRhbGxhc2JwZXRlcnMvMTI4LmpwZ1wiLFxuICAgIFwibjNkbWF4LzEyOC5qcGdcIixcbiAgICBcInRlcnBpbW9zdC8xMjguanBnXCIsXG4gICAgXCJraXJpbGx6LzEyOC5qcGdcIixcbiAgICBcImJ5cm5lY29yZS8xMjguanBnXCIsXG4gICAgXCJqX2RyYWtlXy8xMjguanBnXCIsXG4gICAgXCJjYWxlYmpveWNlLzEyOC5qcGdcIixcbiAgICBcInJ1c3NvZWR1LzEyOC5qcGdcIixcbiAgICBcImhvYW5nbG9pLzEyOC5qcGdcIixcbiAgICBcInRvYnlzYXhvbi8xMjguanBnXCIsXG4gICAgXCJnb2ZyYXNkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwiZGltYXBvc255eS8xMjguanBnXCIsXG4gICAgXCJ0amlzb3VzYS8xMjguanBnXCIsXG4gICAgXCJva2FuZHVuZ2VsLzEyOC5qcGdcIixcbiAgICBcImJpbGx5cm9zaGFuLzEyOC5qcGdcIixcbiAgICBcIm9za2FtYXlhLzEyOC5qcGdcIixcbiAgICBcIm1vdGlvbnRoaW5rcy8xMjguanBnXCIsXG4gICAgXCJrbmlsb2IvMTI4LmpwZ1wiLFxuICAgIFwiYXNob2NrYTE4LzEyOC5qcGdcIixcbiAgICBcIm1hcnJpbW8vMTI4LmpwZ1wiLFxuICAgIFwiYmFydGpvLzEyOC5qcGdcIixcbiAgICBcIm9tbml6eWEvMTI4LmpwZ1wiLFxuICAgIFwiZXJuZXN0c2VtZXJkYS8xMjguanBnXCIsXG4gICAgXCJhbmRyZWFzX3ByLzEyOC5qcGdcIixcbiAgICBcImVkZ2FyY2hyaXM5OS8xMjguanBnXCIsXG4gICAgXCJ0aG9tYXNnZWlzZW4vMTI4LmpwZ1wiLFxuICAgIFwiZ3NlZ3Vpbi8xMjguanBnXCIsXG4gICAgXCJqb2FubmVmb3Vybmllci8xMjguanBnXCIsXG4gICAgXCJkZW1lcnNkZXNpZ25zLzEyOC5qcGdcIixcbiAgICBcImFkYW1tYXJzYmFyLzEyOC5qcGdcIixcbiAgICBcIm5hc2lyd2QvMTI4LmpwZ1wiLFxuICAgIFwibl90YXNzb25lLzEyOC5qcGdcIixcbiAgICBcImphdm9yc3preS8xMjguanBnXCIsXG4gICAgXCJ0aGVtcmRhdmUvMTI4LmpwZ1wiLFxuICAgIFwieWVjaWRzbS8xMjguanBnXCIsXG4gICAgXCJuaWNvbGxlcmljaC8xMjguanBnXCIsXG4gICAgXCJjYW5hcHVkLzEyOC5qcGdcIixcbiAgICBcIm5pY29sZWdseW5uLzEyOC5qcGdcIixcbiAgICBcImp1ZHpoaW5fbWlsZXMvMTI4LmpwZ1wiLFxuICAgIFwiZGVzaWduZXJ2em0vMTI4LmpwZ1wiLFxuICAgIFwia2lhbm9zaHAvMTI4LmpwZ1wiLFxuICAgIFwiZXZhbmRyaXgvMTI4LmpwZ1wiLFxuICAgIFwiYWx0ZXJjaHVjYS8xMjguanBnXCIsXG4gICAgXCJkaHJ1Ym8vMTI4LmpwZ1wiLFxuICAgIFwibWFfdGlheC8xMjguanBnXCIsXG4gICAgXCJzc2JiX21lLzEyOC5qcGdcIixcbiAgICBcImRvcnBoZXJuLzEyOC5qcGdcIixcbiAgICBcIm1hdXJpb2xnLzEyOC5qcGdcIixcbiAgICBcImJydW5vX21hcnQvMTI4LmpwZ1wiLFxuICAgIFwibWFjdG9wdXMvMTI4LmpwZ1wiLFxuICAgIFwidGhlX3dpbnNsZXQvMTI4LmpwZ1wiLFxuICAgIFwiam9lbWRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJTaHJpaWlpaW1wLzEyOC5qcGdcIixcbiAgICBcImphY29iYmVubmV0dC8xMjguanBnXCIsXG4gICAgXCJuZmVkb3JvZmYvMTI4LmpwZ1wiLFxuICAgIFwiaWFtZ2xpbXkvMTI4LmpwZ1wiLFxuICAgIFwiYWxsYWdyaW5nYXVzLzEyOC5qcGdcIixcbiAgICBcImFpaWFpaWFpaS8xMjguanBnXCIsXG4gICAgXCJvbGFvbHVzb2dhLzEyOC5qcGdcIixcbiAgICBcImJ1cnlha25pY2svMTI4LmpwZ1wiLFxuICAgIFwid2ltMWsvMTI4LmpwZ1wiLFxuICAgIFwibmlja2xhY2tlLzEyOC5qcGdcIixcbiAgICBcImExY2hhcG9uZS8xMjguanBnXCIsXG4gICAgXCJzdGV5bnZpbGpvZW4vMTI4LmpwZ1wiLFxuICAgIFwic3RyaWtld2FuLzEyOC5qcGdcIixcbiAgICBcInJ5YW5raXJrbWFuLzEyOC5qcGdcIixcbiAgICBcImFuZHJld2Fib2dhZG8vMTI4LmpwZ1wiLFxuICAgIFwiZG9vb29uLzEyOC5qcGdcIixcbiAgICBcImphZ2FuMTIzLzEyOC5qcGdcIixcbiAgICBcImFyaWZmc2V0aWF3YW4vMTI4LmpwZ1wiLFxuICAgIFwiZWxlbmFkaXNzaS8xMjguanBnXCIsXG4gICAgXCJtd2Fya2VudGluLzEyOC5qcGdcIixcbiAgICBcInRoaWVycnltZWllcl8vMTI4LmpwZ1wiLFxuICAgIFwicl9nYXJjaWEvMTI4LmpwZ1wiLFxuICAgIFwiZG1hY2tlcm1hbi8xMjguanBnXCIsXG4gICAgXCJib3JhbnR1bGEvMTI4LmpwZ1wiLFxuICAgIFwia29udXMvMTI4LmpwZ1wiLFxuICAgIFwic3BhY2V3b29kXy8xMjguanBnXCIsXG4gICAgXCJyeXVjaGkzMTEvMTI4LmpwZ1wiLFxuICAgIFwiZXZhbnNoYWplZC8xMjguanBnXCIsXG4gICAgXCJ0cmlzdGFubGVncm9zLzEyOC5qcGdcIixcbiAgICBcInNob2FpYjI1My8xMjguanBnXCIsXG4gICAgXCJhaXNsaW5ua2VsbHkvMTI4LmpwZ1wiLFxuICAgIFwib2tjb2tlci8xMjguanBnXCIsXG4gICAgXCJ0aW1wZXRyaWNvbGEvMTI4LmpwZ1wiLFxuICAgIFwic3Vuc2hpbmVkZ2lybC8xMjguanBnXCIsXG4gICAgXCJjaGFkYW1pLzEyOC5qcGdcIixcbiAgICBcImFsZWNsYXJzb25pdi8xMjguanBnXCIsXG4gICAgXCJub21pZGVzaWducy8xMjguanBnXCIsXG4gICAgXCJwZXRlYmVybmFyZG8vMTI4LmpwZ1wiLFxuICAgIFwic2NvdHRpZWR1ZGUvMTI4LmpwZ1wiLFxuICAgIFwibWlsbGluZXQvMTI4LmpwZ1wiLFxuICAgIFwiaW1zb3Blci8xMjguanBnXCIsXG4gICAgXCJpbWFtbXVodC8xMjguanBnXCIsXG4gICAgXCJiZW5qYW1pbl9rbmlnaHQvMTI4LmpwZ1wiLFxuICAgIFwibmVwZHVkLzEyOC5qcGdcIixcbiAgICBcImpva2k0LzEyOC5qcGdcIixcbiAgICBcImxhbmNlZ3V5YXR0LzEyOC5qcGdcIixcbiAgICBcImJib3kxODk1LzEyOC5qcGdcIixcbiAgICBcImFteXdlYmJiLzEyOC5qcGdcIixcbiAgICBcInJ3ZXZlLzEyOC5qcGdcIixcbiAgICBcImhhcnVpbnRlc2V0dGRlbi8xMjguanBnXCIsXG4gICAgXCJyaWNidXJ0b24vMTI4LmpwZ1wiLFxuICAgIFwibmVsc2hkLzEyOC5qcGdcIixcbiAgICBcImJhdHNpcmFpLzEyOC5qcGdcIixcbiAgICBcInByaW1vemNpZ2xlci8xMjguanBnXCIsXG4gICAgXCJqZmZncmRuci8xMjguanBnXCIsXG4gICAgXCI4ZDNrLzEyOC5qcGdcIixcbiAgICBcImdlbmVzZWxlem5ldi8xMjguanBnXCIsXG4gICAgXCJhbF9saS8xMjguanBnXCIsXG4gICAgXCJzb3VwZXJwaGx5LzEyOC5qcGdcIixcbiAgICBcIm1zbGFya2luYS8xMjguanBnXCIsXG4gICAgXCIyZm9ja3VzLzEyOC5qcGdcIixcbiAgICBcImNkYXZpczU2NS8xMjguanBnXCIsXG4gICAgXCJ4aWVsLzEyOC5qcGdcIixcbiAgICBcInR1cmt1dHV1bGkvMTI4LmpwZ1wiLFxuICAgIFwidXh3YXJkLzEyOC5qcGdcIixcbiAgICBcImxlYmlub2NsYXJkLzEyOC5qcGdcIixcbiAgICBcImdhdXJhdmphc3NhbC8xMjguanBnXCIsXG4gICAgXCJkYXZpZG1lcnJpcXVlLzEyOC5qcGdcIixcbiAgICBcIm1kc2lzdG8vMTI4LmpwZ1wiLFxuICAgIFwiYW5kcmV3b2ZmaWNlci8xMjguanBnXCIsXG4gICAgXCJrb2pvdXJpbi8xMjguanBnXCIsXG4gICAgXCJkbmlybWFsLzEyOC5qcGdcIixcbiAgICBcImtldmthLzEyOC5qcGdcIixcbiAgICBcIm1yX3NoaXpuaXQvMTI4LmpwZ1wiLFxuICAgIFwiYWx1aXNpb19hemV2ZWRvLzEyOC5qcGdcIixcbiAgICBcImNsb3Vkc3R1ZGlvLzEyOC5qcGdcIixcbiAgICBcImRhbnZpZXJpY2gvMTI4LmpwZ1wiLFxuICAgIFwiYWxleGl2YW5pY2hraW4vMTI4LmpwZ1wiLFxuICAgIFwiZnJhbl9tY2hhbXkvMTI4LmpwZ1wiLFxuICAgIFwicGVycmV0bWFnYWxpLzEyOC5qcGdcIixcbiAgICBcImJldHJheWRhbi8xMjguanBnXCIsXG4gICAgXCJjYWRpa2thcmEvMTI4LmpwZ1wiLFxuICAgIFwibWF0YmVlZG90Y29tLzEyOC5qcGdcIixcbiAgICBcImplcmVteXdvcmJveXMvMTI4LmpwZ1wiLFxuICAgIFwiYnBhcnRyaWRnZS8xMjguanBnXCIsXG4gICAgXCJtaWNoYWVsa29wZXIvMTI4LmpwZ1wiLFxuICAgIFwic2lsdjNyZ3ZuLzEyOC5qcGdcIixcbiAgICBcImFsZXZpemlvLzEyOC5qcGdcIixcbiAgICBcImpvaG5zbWl0aGFnZW5jeS8xMjguanBnXCIsXG4gICAgXCJsYXdsYndveS8xMjguanBnXCIsXG4gICAgXCJ2aXRvcjM3Ni8xMjguanBnXCIsXG4gICAgXCJkZXNhc3Ryb3pvLzEyOC5qcGdcIixcbiAgICBcInRoaW1vX2N6LzEyOC5qcGdcIixcbiAgICBcImphc29ubWFya2pvbmVzLzEyOC5qcGdcIixcbiAgICBcImxoYXVzZXJtYW5uLzEyOC5qcGdcIixcbiAgICBcInhyYXZpbC8xMjguanBnXCIsXG4gICAgXCJndWlzY2htaXR0LzEyOC5qcGdcIixcbiAgICBcInZpZ29icm9ueC8xMjguanBnXCIsXG4gICAgXCJwYW5naGFsMC8xMjguanBnXCIsXG4gICAgXCJtaWd1ZWxrb29yZW1hbi8xMjguanBnXCIsXG4gICAgXCJzdXJnZW9uaXN0LzEyOC5qcGdcIixcbiAgICBcImNocmlzdGlhbm9saWZmLzEyOC5qcGdcIixcbiAgICBcImNhc3BlcmdybC8xMjguanBnXCIsXG4gICAgXCJpYW1rYXJuYS8xMjguanBnXCIsXG4gICAgXCJpcGF2ZWxlay8xMjguanBnXCIsXG4gICAgXCJwaWVycmVfbmVsLzEyOC5qcGdcIixcbiAgICBcInkyZ3JhcGhpYy8xMjguanBnXCIsXG4gICAgXCJzdGVybGluZ3J1bGVzLzEyOC5qcGdcIixcbiAgICBcImVsYnVzY2FpbmZvLzEyOC5qcGdcIixcbiAgICBcImJlbm55amllbi8xMjguanBnXCIsXG4gICAgXCJzdHVzaG9uYS8xMjguanBnXCIsXG4gICAgXCJlc3RlYmFudXJpYmUvMTI4LmpwZ1wiLFxuICAgIFwiZW1icmNlY3JlYXRpb25zLzEyOC5qcGdcIixcbiAgICBcImRhbmlsbG9zLzEyOC5qcGdcIixcbiAgICBcImVsbGlvdGxld2lzLzEyOC5qcGdcIixcbiAgICBcImNoYXJsZXNycHJhdHQvMTI4LmpwZ1wiLFxuICAgIFwidmxhZHluLzEyOC5qcGdcIixcbiAgICBcImVtbWVmZmVzcy8xMjguanBnXCIsXG4gICAgXCJjYXJsb3NibGFuY29fZXUvMTI4LmpwZ1wiLFxuICAgIFwibGVvbmZlZG90b3YvMTI4LmpwZ1wiLFxuICAgIFwicmFuZ2FmYW5ncy8xMjguanBnXCIsXG4gICAgXCJjaHJpc19mcmVlcy8xMjguanBnXCIsXG4gICAgXCJ0Z29ybXR4LzEyOC5qcGdcIixcbiAgICBcImJyeWFuX3RvcGhhbS8xMjguanBnXCIsXG4gICAgXCJqcHNjcmliYmxlcy8xMjguanBnXCIsXG4gICAgXCJtaWdodHk1NS8xMjguanBnXCIsXG4gICAgXCJjYXJib250d2VsdmUvMTI4LmpwZ1wiLFxuICAgIFwiaXNhYWNmaWZ0aC8xMjguanBnXCIsXG4gICAgXCJpYW1qZGVsZW9uLzEyOC5qcGdcIixcbiAgICBcInNub3d3cml0ZS8xMjguanBnXCIsXG4gICAgXCJiYXJwdXRyby8xMjguanBnXCIsXG4gICAgXCJkcmV3YnlyZWVzZS8xMjguanBnXCIsXG4gICAgXCJzYWNoYWNvcmF6emkvMTI4LmpwZ1wiLFxuICAgIFwiYmlzdHJpYW5pb3NpcC8xMjguanBnXCIsXG4gICAgXCJtYWdvbzA0LzEyOC5qcGdcIixcbiAgICBcInBlaGFtb25kZWxsby8xMjguanBnXCIsXG4gICAgXCJ5YXl0ZWVqYXkvMTI4LmpwZ1wiLFxuICAgIFwiYV9oYXJyaXM4OC8xMjguanBnXCIsXG4gICAgXCJhbGd1bnNhbmFicmlhLzEyOC5qcGdcIixcbiAgICBcInpmb3JyZXN0ZXIvMTI4LmpwZ1wiLFxuICAgIFwib3ZhbGwvMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zamdzb3VzYS8xMjguanBnXCIsXG4gICAgXCJnZW9iaWthcy8xMjguanBnXCIsXG4gICAgXCJhaF9saWNlLzEyOC5qcGdcIixcbiAgICBcImxvb25leWRvb2RsZS8xMjguanBnXCIsXG4gICAgXCJuZXJkZ3I4LzEyOC5qcGdcIixcbiAgICBcImRkZ2djY2FhLzEyOC5qcGdcIixcbiAgICBcInphY2tlZWxlci8xMjguanBnXCIsXG4gICAgXCJub3JtYW5ib3gvMTI4LmpwZ1wiLFxuICAgIFwiZWxfZnVlcnRpc2ltby8xMjguanBnXCIsXG4gICAgXCJpc21haWxfYmlsdGFnaS8xMjguanBnXCIsXG4gICAgXCJqdWFuZ29tZXp3LzEyOC5qcGdcIixcbiAgICBcImpubW5yZC8xMjguanBnXCIsXG4gICAgXCJwYXRyaWNrY29vbWJlLzEyOC5qcGdcIixcbiAgICBcInJ5YW5qb2huc29uX21lLzEyOC5qcGdcIixcbiAgICBcIm1hcmtvbHNjaGVza3kvMTI4LmpwZ1wiLFxuICAgIFwiamVmZmdvbGVuc2tpLzEyOC5qcGdcIixcbiAgICBcImt2YXNuaWMvMTI4LmpwZ1wiLFxuICAgIFwibGluZHNleXppbGxhLzEyOC5qcGdcIixcbiAgICBcImdhdWNob21hdHQvMTI4LmpwZ1wiLFxuICAgIFwiYWZ1c2luYXR0by8xMjguanBnXCIsXG4gICAgXCJrZXZpbm9oLzEyOC5qcGdcIixcbiAgICBcIm9rYW5zdXJyZWVsLzEyOC5qcGdcIixcbiAgICBcImFkYW1hd2Vzb21lZmFjZS8xMjguanBnXCIsXG4gICAgXCJlbWlsZWJvdWRlbGluZy8xMjguanBnXCIsXG4gICAgXCJhcmlzaGlfLzEyOC5qcGdcIixcbiAgICBcImp1YW5tYW1hcnRpbmV6LzEyOC5qcGdcIixcbiAgICBcIndpa2l6aW5lci8xMjguanBnXCIsXG4gICAgXCJkYW50aG1zLzEyOC5qcGdcIixcbiAgICBcIm1rZ2luZm8vMTI4LmpwZ1wiLFxuICAgIFwidGVycm9ycGl4ZWwvMTI4LmpwZ1wiLFxuICAgIFwiY3VyaW91c29uYXV0LzEyOC5qcGdcIixcbiAgICBcInByaGVlbW8vMTI4LmpwZ1wiLFxuICAgIFwibWljaGFlbGNvbGVuc28vMTI4LmpwZ1wiLFxuICAgIFwiZm9jenppLzEyOC5qcGdcIixcbiAgICBcIm1hcnRpcDA3LzEyOC5qcGdcIixcbiAgICBcInRoYW9kYW5nMTcvMTI4LmpwZ1wiLFxuICAgIFwiam9obmNhZmF6emEvMTI4LmpwZ1wiLFxuICAgIFwicm9iaW5sYXlmaWVsZC8xMjguanBnXCIsXG4gICAgXCJmcmFuY2lzY29hbWsvMTI4LmpwZ1wiLFxuICAgIFwiYWJkdWxoeWV1ay8xMjguanBnXCIsXG4gICAgXCJtYXJrbGFtYi8xMjguanBnXCIsXG4gICAgXCJlZG9iZW5lLzEyOC5qcGdcIixcbiAgICBcImFuZHJlc2VuZnJlZHJpay8xMjguanBnXCIsXG4gICAgXCJtaWthZWxqb3JodWx0LzEyOC5qcGdcIixcbiAgICBcImNocmlzc2xvd2lrLzEyOC5qcGdcIixcbiAgICBcInZpbmNpYXJ0cy8xMjguanBnXCIsXG4gICAgXCJtZWVsZm9yZC8xMjguanBnXCIsXG4gICAgXCJlbGxpb3Rub2x0ZW4vMTI4LmpwZ1wiLFxuICAgIFwieWVodWRhYi8xMjguanBnXCIsXG4gICAgXCJ2aWpheWthcnRoaWsvMTI4LmpwZ1wiLFxuICAgIFwiYmZyb2hzLzEyOC5qcGdcIixcbiAgICBcImpvc2VwX21hcnRpbnMvMTI4LmpwZ1wiLFxuICAgIFwiYXR0YWNrcy8xMjguanBnXCIsXG4gICAgXCJzdXI0ZHllLzEyOC5qcGdcIixcbiAgICBcInR1bXNraS8xMjguanBnXCIsXG4gICAgXCJpbnN0YWxveC8xMjguanBnXCIsXG4gICAgXCJtYW5nb3NhbmdvLzEyOC5qcGdcIixcbiAgICBcInBhdWxmYXJpbm8vMTI4LmpwZ1wiLFxuICAgIFwia2F6YWt5OTk5LzEyOC5qcGdcIixcbiAgICBcImtpd2l1cG92ZXIvMTI4LmpwZ1wiLFxuICAgIFwibnZrem5lbW8vMTI4LmpwZ1wiLFxuICAgIFwidG9tX2V2ZW4vMTI4LmpwZ1wiLFxuICAgIFwicmF0YnVzLzEyOC5qcGdcIixcbiAgICBcIndvb2RzbWFuMDAxLzEyOC5qcGdcIixcbiAgICBcImpvc2htZWRlc2tpLzEyOC5qcGdcIixcbiAgICBcInRoZXdpbGxiZWFyZC8xMjguanBnXCIsXG4gICAgXCJwc2Fpa2FsaS8xMjguanBnXCIsXG4gICAgXCJqb2VfYmxhY2svMTI4LmpwZ1wiLFxuICAgIFwiYWxlaW5hZHNheXMvMTI4LmpwZ1wiLFxuICAgIFwibWFyY3VzZ29yaWxsaXVzLzEyOC5qcGdcIixcbiAgICBcImhvdGFfdi8xMjguanBnXCIsXG4gICAgXCJqZ2h5bGxlYmVydC8xMjguanBnXCIsXG4gICAgXCJzaGluemUvMTI4LmpwZ1wiLFxuICAgIFwiamFucGFsb3VuZWsvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW1pZXNwb2tlbi8xMjguanBnXCIsXG4gICAgXCJoZXJfcnV1LzEyOC5qcGdcIixcbiAgICBcImRhbnNvd3Rlci8xMjguanBnXCIsXG4gICAgXCJmZWxpcGVhcGlyZXNzLzEyOC5qcGdcIixcbiAgICBcIm1hZ3VnemJyYW5kMmQvMTI4LmpwZ1wiLFxuICAgIFwicG9zdGVyam9iLzEyOC5qcGdcIixcbiAgICBcIm5hdGhhbGllX2ZzLzEyOC5qcGdcIixcbiAgICBcImJvYmJ5dHdvc2hvZXMvMTI4LmpwZ1wiLFxuICAgIFwiZHJlaXpsZS8xMjguanBnXCIsXG4gICAgXCJqZXJlbXltb3V0b24vMTI4LmpwZ1wiLFxuICAgIFwiZWxpc2FiZXRoa2phZXIvMTI4LmpwZ1wiLFxuICAgIFwibm90YmFkYXJ0LzEyOC5qcGdcIixcbiAgICBcIm1vaGFucm9oaXRoLzEyOC5qcGdcIixcbiAgICBcImpsc29sZXJkZWx0b3JvLzEyOC5qcGdcIixcbiAgICBcIml0c2thd3Nhci8xMjguanBnXCIsXG4gICAgXCJzbG93c3BvY2svMTI4LmpwZ1wiLFxuICAgIFwienZjaGtlbGx5LzEyOC5qcGdcIixcbiAgICBcIndpbGphbnNsb2ZzdHJhLzEyOC5qcGdcIixcbiAgICBcImNyYWlnaGVubmViZXJyeS8xMjguanBnXCIsXG4gICAgXCJ0cnViZWF0dG8vMTI4LmpwZ1wiLFxuICAgIFwianVhdW1sb2wvMTI4LmpwZ1wiLFxuICAgIFwic2Ftc2NvdXRvLzEyOC5qcGdcIixcbiAgICBcIkJlbm91YXJyYWRlTS8xMjguanBnXCIsXG4gICAgXCJnaXBzeV9yYWYvMTI4LmpwZ1wiLFxuICAgIFwibmV0b25ldF9pbC8xMjguanBnXCIsXG4gICAgXCJhcmtva29sZXkvMTI4LmpwZ1wiLFxuICAgIFwiaXRzYWppbWl0aGluZy8xMjguanBnXCIsXG4gICAgXCJzbWFsb25zby8xMjguanBnXCIsXG4gICAgXCJ2aWN0b3JkZWFuZGEvMTI4LmpwZ1wiLFxuICAgIFwiX2R3aXRlXy8xMjguanBnXCIsXG4gICAgXCJyaWNoYXJkZ2FycmV0dHMvMTI4LmpwZ1wiLFxuICAgIFwiZ3JlZ3J3aWxraW5zb24vMTI4LmpwZ1wiLFxuICAgIFwiYW5hdG9saW5pY29sYWUvMTI4LmpwZ1wiLFxuICAgIFwibHU0c2gxaS8xMjguanBnXCIsXG4gICAgXCJzdGVmYW5vdGlybG9uaS8xMjguanBnXCIsXG4gICAgXCJvc3RpcmJ1LzEyOC5qcGdcIixcbiAgICBcImRhcmN5c3RvbmdlLzEyOC5qcGdcIixcbiAgICBcIm5haXRhbmFtb3Jlbm8vMTI4LmpwZ1wiLFxuICAgIFwibWljaGFlbGNvbWlza2V5LzEyOC5qcGdcIixcbiAgICBcImFkaGlhcmRhbmEvMTI4LmpwZ1wiLFxuICAgIFwibWFyY29tYW5vXy8xMjguanBnXCIsXG4gICAgXCJkYXZpZGNhemFsaXMvMTI4LmpwZ1wiLFxuICAgIFwiZmFsY29uZXJpZS8xMjguanBnXCIsXG4gICAgXCJncmVna2lsaWFuLzEyOC5qcGdcIixcbiAgICBcImJjcmFkLzEyOC5qcGdcIixcbiAgICBcImJvbHphbm1hcmNvLzEyOC5qcGdcIixcbiAgICBcImxvd19yZXMvMTI4LmpwZ1wiLFxuICAgIFwidmxhamtpLzEyOC5qcGdcIixcbiAgICBcInBldGFyX3Byb2cvMTI4LmpwZ1wiLFxuICAgIFwiam9ua3Nwci8xMjguanBnXCIsXG4gICAgXCJha21hbGZpa3JpLzEyOC5qcGdcIixcbiAgICBcIm1mYWNjaGluZWxsby8xMjguanBnXCIsXG4gICAgXCJhdGFuaXNtLzEyOC5qcGdcIixcbiAgICBcImhhcnJ5X3Npc3RhbGFtLzEyOC5qcGdcIixcbiAgICBcIm11cnJheXN3aWZ0LzEyOC5qcGdcIixcbiAgICBcImJvYndhc3Nlcm1hbm4vMTI4LmpwZ1wiLFxuICAgIFwiZ2F2cjFsMC8xMjguanBnXCIsXG4gICAgXCJtYWRzaGVuc2VsLzEyOC5qcGdcIixcbiAgICBcIm1yX3N1YnRsZS8xMjguanBnXCIsXG4gICAgXCJkZXZpbGpob18vMTI4LmpwZ1wiLFxuICAgIFwic2FsaW1pYW5vZmYvMTI4LmpwZ1wiLFxuICAgIFwiam9ldHJ1ZXNkZWxsLzEyOC5qcGdcIixcbiAgICBcInR3aXR0eXBvcmsvMTI4LmpwZ1wiLFxuICAgIFwiYWlyc2t5bGFyLzEyOC5qcGdcIixcbiAgICBcImRuZXprdW1hci8xMjguanBnXCIsXG4gICAgXCJkZ2FqamFyLzEyOC5qcGdcIixcbiAgICBcImNoZXJpZl9iLzEyOC5qcGdcIixcbiAgICBcInNhbHZhZmMvMTI4LmpwZ1wiLFxuICAgIFwibG91aXNfY3VycmllLzEyOC5qcGdcIixcbiAgICBcImRlZWVucmlnaHQvMTI4LmpwZ1wiLFxuICAgIFwiY3liaW5kLzEyOC5qcGdcIixcbiAgICBcImV5cm9ubi8xMjguanBnXCIsXG4gICAgXCJ2aWNreXNoaXRzLzEyOC5qcGdcIixcbiAgICBcInN3ZWV0ZGVsaXNhLzEyOC5qcGdcIixcbiAgICBcImNib2xsZXIxLzEyOC5qcGdcIixcbiAgICBcImFuZHJlc2RqYXNzby8xMjguanBnXCIsXG4gICAgXCJtZWx2aW5kaWRpdC8xMjguanBnXCIsXG4gICAgXCJhbmR5c29sb21vbi8xMjguanBnXCIsXG4gICAgXCJ0aGFpc3NlbGVuYXRvcl8vMTI4LmpwZ1wiLFxuICAgIFwibHZvdmVub2svMTI4LmpwZ1wiLFxuICAgIFwiZ2l1bGl1c2EvMTI4LmpwZ1wiLFxuICAgIFwiYmVseWFldl9ycy8xMjguanBnXCIsXG4gICAgXCJvdmVyY2xvYWNrZWQvMTI4LmpwZ1wiLFxuICAgIFwia2FtYWxfY2hhbmVtYW4vMTI4LmpwZ1wiLFxuICAgIFwiaW5jdWJvODIvMTI4LmpwZ1wiLFxuICAgIFwiaGVsbG9mZXZlcnJyci8xMjguanBnXCIsXG4gICAgXCJtaGFsaWdvd3NraS8xMjguanBnXCIsXG4gICAgXCJzdW5sYW5kaWN0d2luLzEyOC5qcGdcIixcbiAgICBcImJ1NzkyMS8xMjguanBnXCIsXG4gICAgXCJhbmR5dGxhdy8xMjguanBnXCIsXG4gICAgXCJqZXJlbWVyeS8xMjguanBnXCIsXG4gICAgXCJmaW5jaGprZS8xMjguanBnXCIsXG4gICAgXCJtYW5pZ20vMTI4LmpwZ1wiLFxuICAgIFwidW11cmdkay8xMjguanBnXCIsXG4gICAgXCJzY290dGZlbHRoYW0vMTI4LmpwZ1wiLFxuICAgIFwiZ2Fuc2VyZW5lLzEyOC5qcGdcIixcbiAgICBcIm11dHVfa3Jpc2gvMTI4LmpwZ1wiLFxuICAgIFwiam9keXRhZ2dhcnQvMTI4LmpwZ1wiLFxuICAgIFwibnRmYmxvZy8xMjguanBnXCIsXG4gICAgXCJ0YW52ZWVycmFvLzEyOC5qcGdcIixcbiAgICBcImhmYWx1Y2FzLzEyOC5qcGdcIixcbiAgICBcImFseGxlcm95ZGV2YWwvMTI4LmpwZ1wiLFxuICAgIFwia3VjaW5nYmVsYW5nNC8xMjguanBnXCIsXG4gICAgXCJiYXJnYW9yb2JhbG8vMTI4LmpwZ1wiLFxuICAgIFwiY29sZ3J1di8xMjguanBnXCIsXG4gICAgXCJzdGFsZXdpbmUvMTI4LmpwZ1wiLFxuICAgIFwia3lsZWZyb3N0LzEyOC5qcGdcIixcbiAgICBcImJhdW1hbm56b25lLzEyOC5qcGdcIixcbiAgICBcImFuZ2VsY29sYmVyZy8xMjguanBnXCIsXG4gICAgXCJzYWNoaW5nYXdhcy8xMjguanBnXCIsXG4gICAgXCJqanNoYXcxNC8xMjguanBnXCIsXG4gICAgXCJyYW1hbmF0aGFuX3BkeS8xMjguanBnXCIsXG4gICAgXCJqb2huZGV6ZW1iZXIvMTI4LmpwZ1wiLFxuICAgIFwibmlsc2hvZW5zb24vMTI4LmpwZ1wiLFxuICAgIFwiYnJhbmRvbm1vcnJlYWxlLzEyOC5qcGdcIixcbiAgICBcIm51dHp1bWkvMTI4LmpwZ1wiLFxuICAgIFwiYnJhbmRvbmZsYXRzb2RhLzEyOC5qcGdcIixcbiAgICBcInNlcmdleWFsbW9uZS8xMjguanBnXCIsXG4gICAgXCJrbGVmdWUvMTI4LmpwZ1wiLFxuICAgIFwia2lyYW5nb3BhbC8xMjguanBnXCIsXG4gICAgXCJiYXVtYW5uX2FsZXgvMTI4LmpwZ1wiLFxuICAgIFwibWF0dGhld2theV8vMTI4LmpwZ1wiLFxuICAgIFwiamF5X3dpbGJ1cm4vMTI4LmpwZ1wiLFxuICAgIFwic2hlc2dhcmVkLzEyOC5qcGdcIixcbiAgICBcImFwcmllbmRlYXUvMTI4LmpwZ1wiLFxuICAgIFwiam9obnJpb3JkYW4vMTI4LmpwZ1wiLFxuICAgIFwid2FrZV9ncy8xMjguanBnXCIsXG4gICAgXCJhbGVrc2l0YXBwdXJhLzEyOC5qcGdcIixcbiAgICBcImVtc2d1bGFtLzEyOC5qcGdcIixcbiAgICBcInhpbGFudHJhLzEyOC5qcGdcIixcbiAgICBcImltb21lbnVpLzEyOC5qcGdcIixcbiAgICBcInNpcmNhbGViZ3JvdmUvMTI4LmpwZ1wiLFxuICAgIFwibmV3YnJ1c2hlcy8xMjguanBnXCIsXG4gICAgXCJoc2lueW8yMy8xMjguanBnXCIsXG4gICAgXCJtNHJpby8xMjguanBnXCIsXG4gICAgXCJrYXRpZW1kYWx5LzEyOC5qcGdcIixcbiAgICBcInM0ZjEvMTI4LmpwZ1wiLFxuICAgIFwiZWNvbW1lcmNlaWwvMTI4LmpwZ1wiLFxuICAgIFwibWFybGluamF5YWtvZHkvMTI4LmpwZ1wiLFxuICAgIFwic3dvb3NoeWN1ZWIvMTI4LmpwZ1wiLFxuICAgIFwic2FuZ2R0aC8xMjguanBnXCIsXG4gICAgXCJjb2RlcmRpYXovMTI4LmpwZ1wiLFxuICAgIFwiYmx1ZWZ4Xy8xMjguanBnXCIsXG4gICAgXCJ2aXZla3BydnIvMTI4LmpwZ1wiLFxuICAgIFwic2FzaGFfc2hlc3Rha292LzEyOC5qcGdcIixcbiAgICBcImV1Z2VuZWV3ZWIvMTI4LmpwZ1wiLFxuICAgIFwiZGdjbGVnZy8xMjguanBnXCIsXG4gICAgXCJuMWdodF9jb2Rlci8xMjguanBnXCIsXG4gICAgXCJkaXhjaGVuLzEyOC5qcGdcIixcbiAgICBcImJsYWtlaGF3a3N3b3J0aC8xMjguanBnXCIsXG4gICAgXCJ0cnVlYmxvb2RfMzMvMTI4LmpwZ1wiLFxuICAgIFwiaGFpX25pbmhfbmd1eWVuLzEyOC5qcGdcIixcbiAgICBcIm1hcmNsZ29uemFsZXMvMTI4LmpwZ1wiLFxuICAgIFwieWVzbWVjay8xMjguanBnXCIsXG4gICAgXCJzdGVwaGNvdWUvMTI4LmpwZ1wiLFxuICAgIFwiZG9yb25tYWxraS8xMjguanBnXCIsXG4gICAgXCJydWVobGRlc2lnbi8xMjguanBnXCIsXG4gICAgXCJhbmFzbmFrYXdhLzEyOC5qcGdcIixcbiAgICBcImtpamFubWFoYXJqYW4vMTI4LmpwZ1wiLFxuICAgIFwid2VhcmVzYXZhcy8xMjguanBnXCIsXG4gICAgXCJzdGVmdmRoYW0vMTI4LmpwZ1wiLFxuICAgIFwidHdlZXR1YmhhaS8xMjguanBnXCIsXG4gICAgXCJhbGVjYXJwZW50aWVyLzEyOC5qcGdcIixcbiAgICBcImZpdGVyaWsvMTI4LmpwZ1wiLFxuICAgIFwiYW50b255cnluZHlhLzEyOC5qcGdcIixcbiAgICBcImQwMG1hei8xMjguanBnXCIsXG4gICAgXCJ0aGVvbmx5emVrZS8xMjguanBnXCIsXG4gICAgXCJtaXNzYWFhbXkvMTI4LmpwZ1wiLFxuICAgIFwiY2FybG9zbS8xMjguanBnXCIsXG4gICAgXCJtYW5la2VudGhlLzEyOC5qcGdcIixcbiAgICBcInJlZXRhamF5ZW5kcmEvMTI4LmpwZ1wiLFxuICAgIFwiamVyZW15c2hpbWtvLzEyOC5qcGdcIixcbiAgICBcImp1c3RpbnJncmFoYW0vMTI4LmpwZ1wiLFxuICAgIFwic3RlZmFub3pvZmZvbGkvMTI4LmpwZ1wiLFxuICAgIFwib3ZlcnJhLzEyOC5qcGdcIixcbiAgICBcIm1yZWJheTAwNy8xMjguanBnXCIsXG4gICAgXCJzaHZlbG85Ni8xMjguanBnXCIsXG4gICAgXCJweXJvbml0ZS8xMjguanBnXCIsXG4gICAgXCJ0aGVkanBldGVyc2VuLzEyOC5qcGdcIixcbiAgICBcInJ0eXVrbWFldi8xMjguanBnXCIsXG4gICAgXCJfd2lsbGlhbWd1ZXJyYS8xMjguanBnXCIsXG4gICAgXCJhbGJlcnRhdWd1c3Rpbi8xMjguanBnXCIsXG4gICAgXCJ2aWthc2hwYXRoYWsxOC8xMjguanBnXCIsXG4gICAgXCJrZXZpbmpvaG5kYXl5LzEyOC5qcGdcIixcbiAgICBcInZqX2RlbWllbi8xMjguanBnXCIsXG4gICAgXCJjb2xpcnBpeG9pbC8xMjguanBnXCIsXG4gICAgXCJnb2RkYXJkbGV3aXMvMTI4LmpwZ1wiLFxuICAgIFwibGFhc2xpLzEyOC5qcGdcIixcbiAgICBcImpxaXVzcy8xMjguanBnXCIsXG4gICAgXCJoZXljYW10YXlsb3IvMTI4LmpwZ1wiLFxuICAgIFwibmFzdHlhX21hbmUvMTI4LmpwZ1wiLFxuICAgIFwibWFzdGVybWluZGVzaWduLzEyOC5qcGdcIixcbiAgICBcImNjaW5vamFzc28xLzEyOC5qcGdcIixcbiAgICBcIm55YW5jZWNvbS8xMjguanBnXCIsXG4gICAgXCJzYW5keXdvb2RydWZmLzEyOC5qcGdcIixcbiAgICBcImJpZ2hhbmRkZXNpZ24vMTI4LmpwZ1wiLFxuICAgIFwic2J0cmFuc3BhcmVudC8xMjguanBnXCIsXG4gICAgXCJhdmlkZGF5ZW50b25iYXkvMTI4LmpwZ1wiLFxuICAgIFwicmljaHdpbGQvMTI4LmpwZ1wiLFxuICAgIFwia2F5c2l4X2Rpenp5LzEyOC5qcGdcIixcbiAgICBcInR1cjhsZS8xMjguanBnXCIsXG4gICAgXCJzZXllZGhvc3NlaW4xLzEyOC5qcGdcIixcbiAgICBcInByaXZldHdhZ25lci8xMjguanBnXCIsXG4gICAgXCJlbW1hbmRlbm4vMTI4LmpwZ1wiLFxuICAgIFwiZGV2X2Vzc2VudGlhbHMvMTI4LmpwZ1wiLFxuICAgIFwiam1mc29jaWFsLzEyOC5qcGdcIixcbiAgICBcIl95YXJkZW5vb24vMTI4LmpwZ1wiLFxuICAgIFwibWF0ZWFvZHZpdGV6YS8xMjguanBnXCIsXG4gICAgXCJ3ZWF2ZXJtZWRpYS8xMjguanBnXCIsXG4gICAgXCJtdWZhZGRhbF9tdy8xMjguanBnXCIsXG4gICAgXCJoYWZlZXNraGFuLzEyOC5qcGdcIixcbiAgICBcImFzaGVybmF0YWxpLzEyOC5qcGdcIixcbiAgICBcInN1bGFxby8xMjguanBnXCIsXG4gICAgXCJlZGRpZWNoZW4vMTI4LmpwZ1wiLFxuICAgIFwiam9zZWNhcmxvc3BzaC8xMjguanBnXCIsXG4gICAgXCJ2bV9mLzEyOC5qcGdcIixcbiAgICBcImVucmljb2NpY2NvbmkvMTI4LmpwZ1wiLFxuICAgIFwiZGFubWFydGluNzAvMTI4LmpwZ1wiLFxuICAgIFwiZ21vdXJpZXIvMTI4LmpwZ1wiLFxuICAgIFwiZG9uamFpbi8xMjguanBnXCIsXG4gICAgXCJtcnhsb2thLzEyOC5qcGdcIixcbiAgICBcIl9wZWRyb3BpbmhvLzEyOC5qcGdcIixcbiAgICBcImVpdGFyYWZhLzEyOC5qcGdcIixcbiAgICBcIm9zY2Fyb3d1c3UvMTI4LmpwZ1wiLFxuICAgIFwicmFscGhfbGFtLzEyOC5qcGdcIixcbiAgICBcInBhbmNoYWphbnlhZy8xMjguanBnXCIsXG4gICAgXCJ3b29keWRvdG14LzEyOC5qcGdcIixcbiAgICBcImplcnJ5YmFpMTkwNy8xMjguanBnXCIsXG4gICAgXCJtYXJzaGFsbGNoZW5fLzEyOC5qcGdcIixcbiAgICBcInhhbW9yZXAvMTI4LmpwZ1wiLFxuICAgIFwiYWlvX19fLzEyOC5qcGdcIixcbiAgICBcImNoYWFiYW5lX3dhaWwvMTI4LmpwZ1wiLFxuICAgIFwidHhjeC8xMjguanBnXCIsXG4gICAgXCJha2FzaHNoYXJtYTM5LzEyOC5qcGdcIixcbiAgICBcImZhbGxpbmdfc291bC8xMjguanBnXCIsXG4gICAgXCJzYWlucmFqYS8xMjguanBnXCIsXG4gICAgXCJtdWd1a2FtaWwvMTI4LmpwZ1wiLFxuICAgIFwiam9oYW5uZXNuZXUvMTI4LmpwZ1wiLFxuICAgIFwibWFya3dpZW5hbmRzLzEyOC5qcGdcIixcbiAgICBcImthcnRoaXBhbnJhai8xMjguanBnXCIsXG4gICAgXCJiYWxha2F5dXJpeS8xMjguanBnXCIsXG4gICAgXCJhbGFuX3poYW5nXy8xMjguanBnXCIsXG4gICAgXCJsYXllcnNzc3MvMTI4LmpwZ1wiLFxuICAgIFwia2FzcGVybm9yZGt2aXN0LzEyOC5qcGdcIixcbiAgICBcIm1pcmZhbnF1cmVzaGkvMTI4LmpwZ1wiLFxuICAgIFwiaGFubmFfc21pLzEyOC5qcGdcIixcbiAgICBcIlZNaWxlc2N1LzEyOC5qcGdcIixcbiAgICBcImFlb241Ni8xMjguanBnXCIsXG4gICAgXCJtX2thbGlicnkvMTI4LmpwZ1wiLFxuICAgIFwic3JlZWppdGhleHAvMTI4LmpwZ1wiLFxuICAgIFwiZGljZXNhbGVzLzEyOC5qcGdcIixcbiAgICBcImRob290X2FtaXQvMTI4LmpwZ1wiLFxuICAgIFwic21lbm92LzEyOC5qcGdcIixcbiAgICBcImxvbmVzb21lbGVtb24vMTI4LmpwZ1wiLFxuICAgIFwidmxhZGltaXJkZXZpYy8xMjguanBnXCIsXG4gICAgXCJqb2VsY2lwcmlhbm8vMTI4LmpwZ1wiLFxuICAgIFwiaGFsaWdhbGloYXJ1bi8xMjguanBnXCIsXG4gICAgXCJidWxlc3dhcG5pbC8xMjguanBnXCIsXG4gICAgXCJzZXJlZmthLzEyOC5qcGdcIixcbiAgICBcImlmYXJhZm9ub3cvMTI4LmpwZ1wiLFxuICAgIFwidmlrYXN2aW5mb3RlY2gvMTI4LmpwZ1wiLFxuICAgIFwidXJydXRpbWVvbGkvMTI4LmpwZ1wiLFxuICAgIFwiYXJlYW5kYWNvbS8xMjguanBnXCJcbl07XG5cbmVuLmludGVybmV0LmF2YXRhcl91cmkgPSBbXTtcblxuZm9yICh2YXIgaSA9IDA7IGkgPCBhdmF0YXJVcmkubGVuZ3RoOyBpKyspIHtcbiAgZW4uaW50ZXJuZXQuYXZhdGFyX3VyaS5wdXNoKFwiaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3VpZmFjZXMvZmFjZXMvdHdpdHRlci9cIiArIGF2YXRhclVyaVtpXSk7XG59O1xuXG5lbi5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwicGVyZmVyZW5kaXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwiYWNjdXNhbnRpdW1cIixcbiAgICBcImRvbG9yZW1xdWVcIixcbiAgICBcImFwZXJpYW1cIixcbiAgICBcImVhcXVlXCIsXG4gICAgXCJpcHNhXCIsXG4gICAgXCJxdWFlXCIsXG4gICAgXCJhYlwiLFxuICAgIFwiaWxsb1wiLFxuICAgIFwiaW52ZW50b3JlXCIsXG4gICAgXCJ2ZXJpdGF0aXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzaVwiLFxuICAgIFwiYXJjaGl0ZWN0b1wiLFxuICAgIFwiYmVhdGFlXCIsXG4gICAgXCJ2aXRhZVwiLFxuICAgIFwiZGljdGFcIixcbiAgICBcInN1bnRcIixcbiAgICBcImV4cGxpY2Fib1wiLFxuICAgIFwiYXNwZXJuYXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJvZGl0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImZ1Z2l0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcImNvbnNlcXV1bnR1clwiLFxuICAgIFwibWFnbmlcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImVvc1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJyYXRpb25lXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJzZXF1aVwiLFxuICAgIFwibmVzY2l1bnRcIixcbiAgICBcIm5lcXVlXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJpcHN1bVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInNpdFwiLFxuICAgIFwiYW1ldFwiLFxuICAgIFwiY29uc2VjdGV0dXJcIixcbiAgICBcImFkaXBpc2NpXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJub25cIixcbiAgICBcIm51bXF1YW1cIixcbiAgICBcImVpdXNcIixcbiAgICBcIm1vZGlcIixcbiAgICBcInRlbXBvcmFcIixcbiAgICBcImluY2lkdW50XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwibGFib3JlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3JlXCIsXG4gICAgXCJtYWduYW1cIixcbiAgICBcImFsaXF1YW1cIixcbiAgICBcInF1YWVyYXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInV0XCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJhZFwiLFxuICAgIFwibWluaW1hXCIsXG4gICAgXCJ2ZW5pYW1cIixcbiAgICBcInF1aXNcIixcbiAgICBcIm5vc3RydW1cIixcbiAgICBcImV4ZXJjaXRhdGlvbmVtXCIsXG4gICAgXCJ1bGxhbVwiLFxuICAgIFwiY29ycG9yaXNcIixcbiAgICBcIm5lbW9cIixcbiAgICBcImVuaW1cIixcbiAgICBcImlwc2FtXCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJzdXNjaXBpdFwiLFxuICAgIFwibGFib3Jpb3NhbVwiLFxuICAgIFwibmlzaVwiLFxuICAgIFwidXRcIixcbiAgICBcImFsaXF1aWRcIixcbiAgICBcImV4XCIsXG4gICAgXCJlYVwiLFxuICAgIFwiY29tbW9kaVwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInF1aXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImV1bVwiLFxuICAgIFwiaXVyZVwiLFxuICAgIFwicmVwcmVoZW5kZXJpdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZWFcIixcbiAgICBcInZvbHVwdGF0ZVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcImVzc2VcIixcbiAgICBcInF1YW1cIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcImV0XCIsXG4gICAgXCJpdXN0b1wiLFxuICAgIFwib2Rpb1wiLFxuICAgIFwiZGlnbmlzc2ltb3NcIixcbiAgICBcImR1Y2ltdXNcIixcbiAgICBcInF1aVwiLFxuICAgIFwiYmxhbmRpdGlpc1wiLFxuICAgIFwicHJhZXNlbnRpdW1cIixcbiAgICBcImxhdWRhbnRpdW1cIixcbiAgICBcInRvdGFtXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInZvbHVwdGF0dW1cIixcbiAgICBcImRlbGVuaXRpXCIsXG4gICAgXCJhdHF1ZVwiLFxuICAgIFwiY29ycnVwdGlcIixcbiAgICBcInF1b3NcIixcbiAgICBcImRvbG9yZXNcIixcbiAgICBcImV0XCIsXG4gICAgXCJxdWFzXCIsXG4gICAgXCJtb2xlc3RpYXNcIixcbiAgICBcImV4Y2VwdHVyaVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwib2NjYWVjYXRpXCIsXG4gICAgXCJjdXBpZGl0YXRlXCIsXG4gICAgXCJub25cIixcbiAgICBcInByb3ZpZGVudFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwicGVyc3BpY2lhdGlzXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiaXN0ZVwiLFxuICAgIFwibmF0dXNcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzaW1pbGlxdWVcIixcbiAgICBcInN1bnRcIixcbiAgICBcImluXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJvZmZpY2lhXCIsXG4gICAgXCJkZXNlcnVudFwiLFxuICAgIFwibW9sbGl0aWFcIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJpZFwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJsYWJvcnVtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiZG9sb3J1bVwiLFxuICAgIFwiZnVnYVwiLFxuICAgIFwiZXRcIixcbiAgICBcImhhcnVtXCIsXG4gICAgXCJxdWlkZW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJmYWNpbGlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImV0XCIsXG4gICAgXCJleHBlZGl0YVwiLFxuICAgIFwiZGlzdGluY3Rpb1wiLFxuICAgIFwibmFtXCIsXG4gICAgXCJsaWJlcm9cIixcbiAgICBcInRlbXBvcmVcIixcbiAgICBcImN1bVwiLFxuICAgIFwic29sdXRhXCIsXG4gICAgXCJub2Jpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJlbGlnZW5kaVwiLFxuICAgIFwib3B0aW9cIixcbiAgICBcImN1bXF1ZVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcImltcGVkaXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwicG9ycm9cIixcbiAgICBcInF1aXNxdWFtXCIsXG4gICAgXCJlc3RcIixcbiAgICBcInF1aVwiLFxuICAgIFwibWludXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJxdW9kXCIsXG4gICAgXCJtYXhpbWVcIixcbiAgICBcInBsYWNlYXRcIixcbiAgICBcImZhY2VyZVwiLFxuICAgIFwicG9zc2ltdXNcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwiYXNzdW1lbmRhXCIsXG4gICAgXCJlc3RcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwicmVwZWxsZW5kdXNcIixcbiAgICBcInRlbXBvcmlidXNcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJxdWlidXNkYW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcImlsbHVtXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImV1bVwiLFxuICAgIFwiZnVnaWF0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJudWxsYVwiLFxuICAgIFwicGFyaWF0dXJcIixcbiAgICBcImF0XCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJlb3NcIixcbiAgICBcImV0XCIsXG4gICAgXCJhY2N1c2FtdXNcIixcbiAgICBcIm9mZmljaWlzXCIsXG4gICAgXCJkZWJpdGlzXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJuZWNlc3NpdGF0aWJ1c1wiLFxuICAgIFwic2FlcGVcIixcbiAgICBcImV2ZW5pZXRcIixcbiAgICBcInV0XCIsXG4gICAgXCJldFwiLFxuICAgIFwidm9sdXB0YXRlc1wiLFxuICAgIFwicmVwdWRpYW5kYWVcIixcbiAgICBcInNpbnRcIixcbiAgICBcImV0XCIsXG4gICAgXCJtb2xlc3RpYWVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicmVjdXNhbmRhZVwiLFxuICAgIFwiaXRhcXVlXCIsXG4gICAgXCJlYXJ1bVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImhpY1wiLFxuICAgIFwidGVuZXR1clwiLFxuICAgIFwiYVwiLFxuICAgIFwic2FwaWVudGVcIixcbiAgICBcImRlbGVjdHVzXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZWljaWVuZGlzXCIsXG4gICAgXCJ2b2x1cHRhdGlidXNcIixcbiAgICBcIm1haW9yZXNcIixcbiAgICBcImRvbG9yaWJ1c1wiLFxuICAgIFwiYXNwZXJpb3Jlc1wiLFxuICAgIFwicmVwZWxsYXRcIlxuICBdLFxuICBcInN1cHBsZW1lbnRhbFwiOiBbXG4gICAgXCJhYmJhc1wiLFxuICAgIFwiYWJkdWNvXCIsXG4gICAgXCJhYmVvXCIsXG4gICAgXCJhYnNjaWRvXCIsXG4gICAgXCJhYnNjb25kaXR1c1wiLFxuICAgIFwiYWJzZW5zXCIsXG4gICAgXCJhYnNvcmJlb1wiLFxuICAgIFwiYWJzcXVlXCIsXG4gICAgXCJhYnN0ZXJnb1wiLFxuICAgIFwiYWJzdW1cIixcbiAgICBcImFidW5kYW5zXCIsXG4gICAgXCJhYnV0b3JcIixcbiAgICBcImFjY2Vkb1wiLFxuICAgIFwiYWNjZW5kb1wiLFxuICAgIFwiYWNjZXB0dXNcIixcbiAgICBcImFjY2lwaW9cIixcbiAgICBcImFjY29tbW9kb1wiLFxuICAgIFwiYWNjdXNhdG9yXCIsXG4gICAgXCJhY2VyXCIsXG4gICAgXCJhY2VyYml0YXNcIixcbiAgICBcImFjZXJ2dXNcIixcbiAgICBcImFjaWR1c1wiLFxuICAgIFwiYWNpZXNcIixcbiAgICBcImFjcXVpcm9cIixcbiAgICBcImFjc2lcIixcbiAgICBcImFkYW1vXCIsXG4gICAgXCJhZGF1Z2VvXCIsXG4gICAgXCJhZGRvXCIsXG4gICAgXCJhZGR1Y29cIixcbiAgICBcImFkZW1wdGlvXCIsXG4gICAgXCJhZGVvXCIsXG4gICAgXCJhZGVwdGlvXCIsXG4gICAgXCJhZGZlY3R1c1wiLFxuICAgIFwiYWRmZXJvXCIsXG4gICAgXCJhZGZpY2lvXCIsXG4gICAgXCJhZGZsaWN0b1wiLFxuICAgIFwiYWRoYWVyb1wiLFxuICAgIFwiYWRodWNcIixcbiAgICBcImFkaWNpb1wiLFxuICAgIFwiYWRpbXBsZW9cIixcbiAgICBcImFkaW52ZW50aXRpYXNcIixcbiAgICBcImFkaXBpc2NvclwiLFxuICAgIFwiYWRpdXZvXCIsXG4gICAgXCJhZG1pbmlzdHJhdGlvXCIsXG4gICAgXCJhZG1pcmF0aW9cIixcbiAgICBcImFkbWl0dG9cIixcbiAgICBcImFkbW9uZW9cIixcbiAgICBcImFkbW92ZW9cIixcbiAgICBcImFkbnVvXCIsXG4gICAgXCJhZG9wdG9cIixcbiAgICBcImFkc2lkdWVcIixcbiAgICBcImFkc3RyaW5nb1wiLFxuICAgIFwiYWRzdWVzY29cIixcbiAgICBcImFkc3VtXCIsXG4gICAgXCJhZHVsYXRpb1wiLFxuICAgIFwiYWR1bGVzY2Vuc1wiLFxuICAgIFwiYWR1bHR1c1wiLFxuICAgIFwiYWR1cm9cIixcbiAgICBcImFkdmVuaW9cIixcbiAgICBcImFkdmVyc3VzXCIsXG4gICAgXCJhZHZvY29cIixcbiAgICBcImFlZGlmaWNpdW1cIixcbiAgICBcImFlZ2VyXCIsXG4gICAgXCJhZWdyZVwiLFxuICAgIFwiYWVncm90YXRpb1wiLFxuICAgIFwiYWVncnVzXCIsXG4gICAgXCJhZW5ldXNcIixcbiAgICBcImFlcXVpdGFzXCIsXG4gICAgXCJhZXF1dXNcIixcbiAgICBcImFlclwiLFxuICAgIFwiYWVzdGFzXCIsXG4gICAgXCJhZXN0aXZ1c1wiLFxuICAgIFwiYWVzdHVzXCIsXG4gICAgXCJhZXRhc1wiLFxuICAgIFwiYWV0ZXJudXNcIixcbiAgICBcImFnZXJcIixcbiAgICBcImFnZ2Vyb1wiLFxuICAgIFwiYWdncmVkaW9yXCIsXG4gICAgXCJhZ25pdGlvXCIsXG4gICAgXCJhZ25vc2NvXCIsXG4gICAgXCJhZ29cIixcbiAgICBcImFpdFwiLFxuICAgIFwiYWl1bnRcIixcbiAgICBcImFsaWVudXNcIixcbiAgICBcImFsaWlcIixcbiAgICBcImFsaW9xdWlcIixcbiAgICBcImFsaXF1YVwiLFxuICAgIFwiYWxpdXNcIixcbiAgICBcImFsbGF0dXNcIixcbiAgICBcImFsb1wiLFxuICAgIFwiYWx0ZXJcIixcbiAgICBcImFsdHVzXCIsXG4gICAgXCJhbHZldXNcIixcbiAgICBcImFtYXJpdHVkb1wiLFxuICAgIFwiYW1iaXR1c1wiLFxuICAgIFwiYW1idWxvXCIsXG4gICAgXCJhbWljaXRpYVwiLFxuICAgIFwiYW1pY3VsdW1cIixcbiAgICBcImFtaXNzaW9cIixcbiAgICBcImFtaXRhXCIsXG4gICAgXCJhbWl0dG9cIixcbiAgICBcImFtb1wiLFxuICAgIFwiYW1vclwiLFxuICAgIFwiYW1vdmVvXCIsXG4gICAgXCJhbXBsZXh1c1wiLFxuICAgIFwiYW1wbGl0dWRvXCIsXG4gICAgXCJhbXBsdXNcIixcbiAgICBcImFuY2lsbGFcIixcbiAgICBcImFuZ2VsdXNcIixcbiAgICBcImFuZ3VsdXNcIixcbiAgICBcImFuZ3VzdHVzXCIsXG4gICAgXCJhbmltYWR2ZXJ0b1wiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImFuaW11c1wiLFxuICAgIFwiYW5udXNcIixcbiAgICBcImFuc2VyXCIsXG4gICAgXCJhbnRlXCIsXG4gICAgXCJhbnRlYVwiLFxuICAgIFwiYW50ZXBvbm9cIixcbiAgICBcImFudGlxdXVzXCIsXG4gICAgXCJhcGVyaW9cIixcbiAgICBcImFwZXJ0ZVwiLFxuICAgIFwiYXBvc3RvbHVzXCIsXG4gICAgXCJhcHBhcmF0dXNcIixcbiAgICBcImFwcGVsbG9cIixcbiAgICBcImFwcG9ub1wiLFxuICAgIFwiYXBwb3NpdHVzXCIsXG4gICAgXCJhcHByb2JvXCIsXG4gICAgXCJhcHRvXCIsXG4gICAgXCJhcHR1c1wiLFxuICAgIFwiYXB1ZFwiLFxuICAgIFwiYXF1YVwiLFxuICAgIFwiYXJhXCIsXG4gICAgXCJhcmFuZWFcIixcbiAgICBcImFyYml0cm9cIixcbiAgICBcImFyYm9yXCIsXG4gICAgXCJhcmJ1c3R1bVwiLFxuICAgIFwiYXJjYVwiLFxuICAgIFwiYXJjZW9cIixcbiAgICBcImFyY2Vzc29cIixcbiAgICBcImFyY3VzXCIsXG4gICAgXCJhcmdlbnR1bVwiLFxuICAgIFwiYXJndW1lbnR1bVwiLFxuICAgIFwiYXJndW9cIixcbiAgICBcImFybWFcIixcbiAgICBcImFybWFyaXVtXCIsXG4gICAgXCJhcm1vXCIsXG4gICAgXCJhcm9cIixcbiAgICBcImFyc1wiLFxuICAgIFwiYXJ0aWN1bHVzXCIsXG4gICAgXCJhcnRpZmljaW9zZVwiLFxuICAgIFwiYXJ0b1wiLFxuICAgIFwiYXJ4XCIsXG4gICAgXCJhc2Npc2NvXCIsXG4gICAgXCJhc2NpdFwiLFxuICAgIFwiYXNwZXJcIixcbiAgICBcImFzcGljaW9cIixcbiAgICBcImFzcG9ydG9cIixcbiAgICBcImFzc2VudGF0b3JcIixcbiAgICBcImFzdHJ1bVwiLFxuICAgIFwiYXRhdnVzXCIsXG4gICAgXCJhdGVyXCIsXG4gICAgXCJhdHF1aVwiLFxuICAgIFwiYXRyb2NpdGFzXCIsXG4gICAgXCJhdHJveFwiLFxuICAgIFwiYXR0ZXJvXCIsXG4gICAgXCJhdHRvbGxvXCIsXG4gICAgXCJhdHRvbmJpdHVzXCIsXG4gICAgXCJhdWN0b3JcIixcbiAgICBcImF1Y3R1c1wiLFxuICAgIFwiYXVkYWNpYVwiLFxuICAgIFwiYXVkYXhcIixcbiAgICBcImF1ZGVudGlhXCIsXG4gICAgXCJhdWRlb1wiLFxuICAgIFwiYXVkaW9cIixcbiAgICBcImF1ZGl0b3JcIixcbiAgICBcImF1ZmVyb1wiLFxuICAgIFwiYXVyZXVzXCIsXG4gICAgXCJhdXJpc1wiLFxuICAgIFwiYXVydW1cIixcbiAgICBcImF1dFwiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcImF1dHVzXCIsXG4gICAgXCJhdXhpbGl1bVwiLFxuICAgIFwiYXZhcml0aWFcIixcbiAgICBcImF2YXJ1c1wiLFxuICAgIFwiYXZlaG9cIixcbiAgICBcImF2ZXJ0b1wiLFxuICAgIFwiYXZvY29cIixcbiAgICBcImJhaXVsdXNcIixcbiAgICBcImJhbGJ1c1wiLFxuICAgIFwiYmFyYmFcIixcbiAgICBcImJhcmR1c1wiLFxuICAgIFwiYmFzaXVtXCIsXG4gICAgXCJiZWF0dXNcIixcbiAgICBcImJlbGxpY3VzXCIsXG4gICAgXCJiZWxsdW1cIixcbiAgICBcImJlbmVcIixcbiAgICBcImJlbmVmaWNpdW1cIixcbiAgICBcImJlbmV2b2xlbnRpYVwiLFxuICAgIFwiYmVuaWduZVwiLFxuICAgIFwiYmVzdGlhXCIsXG4gICAgXCJiaWJvXCIsXG4gICAgXCJiaXNcIixcbiAgICBcImJsYW5kaW9yXCIsXG4gICAgXCJib251c1wiLFxuICAgIFwiYm9zXCIsXG4gICAgXCJicmV2aXNcIixcbiAgICBcImNhZG9cIixcbiAgICBcImNhZWN1c1wiLFxuICAgIFwiY2FlbGVzdGlzXCIsXG4gICAgXCJjYWVsdW1cIixcbiAgICBcImNhbGFtaXRhc1wiLFxuICAgIFwiY2FsY2FyXCIsXG4gICAgXCJjYWxjb1wiLFxuICAgIFwiY2FsY3VsdXNcIixcbiAgICBcImNhbGxpZGVcIixcbiAgICBcImNhbXBhbmFcIixcbiAgICBcImNhbmRpZHVzXCIsXG4gICAgXCJjYW5pc1wiLFxuICAgIFwiY2Fub25pY3VzXCIsXG4gICAgXCJjYW50b1wiLFxuICAgIFwiY2FwaWxsdXNcIixcbiAgICBcImNhcGlvXCIsXG4gICAgXCJjYXBpdHVsdXNcIixcbiAgICBcImNhcHRvXCIsXG4gICAgXCJjYXB1dFwiLFxuICAgIFwiY2FyYm9cIixcbiAgICBcImNhcmNlclwiLFxuICAgIFwiY2FyZW9cIixcbiAgICBcImNhcmllc1wiLFxuICAgIFwiY2FyaW9zdXNcIixcbiAgICBcImNhcml0YXNcIixcbiAgICBcImNhcm1lblwiLFxuICAgIFwiY2FycG9cIixcbiAgICBcImNhcnVzXCIsXG4gICAgXCJjYXNzb1wiLFxuICAgIFwiY2FzdGVcIixcbiAgICBcImNhc3VzXCIsXG4gICAgXCJjYXRlbmFcIixcbiAgICBcImNhdGVydmFcIixcbiAgICBcImNhdHR1c1wiLFxuICAgIFwiY2F1ZGFcIixcbiAgICBcImNhdXNhXCIsXG4gICAgXCJjYXV0ZVwiLFxuICAgIFwiY2F2ZW9cIixcbiAgICBcImNhdnVzXCIsXG4gICAgXCJjZWRvXCIsXG4gICAgXCJjZWxlYnJlclwiLFxuICAgIFwiY2VsZXJcIixcbiAgICBcImNlbG9cIixcbiAgICBcImNlbmFcIixcbiAgICBcImNlbmFjdWx1bVwiLFxuICAgIFwiY2Vub1wiLFxuICAgIFwiY2Vuc3VyYVwiLFxuICAgIFwiY2VudHVtXCIsXG4gICAgXCJjZXJub1wiLFxuICAgIFwiY2VybnV1c1wiLFxuICAgIFwiY2VydGVcIixcbiAgICBcImNlcnRvXCIsXG4gICAgXCJjZXJ0dXNcIixcbiAgICBcImNlcnZ1c1wiLFxuICAgIFwiY2V0ZXJhXCIsXG4gICAgXCJjaGFyaXNtYVwiLFxuICAgIFwiY2hpcm9ncmFwaHVtXCIsXG4gICAgXCJjaWJvXCIsXG4gICAgXCJjaWJ1c1wiLFxuICAgIFwiY2ljdXRhXCIsXG4gICAgXCJjaWxpY2l1bVwiLFxuICAgIFwiY2ltZW50YXJpdXNcIixcbiAgICBcImNpbWluYXRpb1wiLFxuICAgIFwiY2luaXNcIixcbiAgICBcImNpcmN1bXZlbmlvXCIsXG4gICAgXCJjaXRvXCIsXG4gICAgXCJjaXZpc1wiLFxuICAgIFwiY2l2aXRhc1wiLFxuICAgIFwiY2xhbVwiLFxuICAgIFwiY2xhbW9cIixcbiAgICBcImNsYXJvXCIsXG4gICAgXCJjbGFydXNcIixcbiAgICBcImNsYXVkZW9cIixcbiAgICBcImNsYXVzdHJ1bVwiLFxuICAgIFwiY2xlbWVudGlhXCIsXG4gICAgXCJjbGliYW51c1wiLFxuICAgIFwiY29hZHVuYXRpb1wiLFxuICAgIFwiY29hZWdyZXNjb1wiLFxuICAgIFwiY29lcGlcIixcbiAgICBcImNvZXJjZW9cIixcbiAgICBcImNvZ2l0b1wiLFxuICAgIFwiY29nbmF0dXNcIixcbiAgICBcImNvZ25vbWVuXCIsXG4gICAgXCJjb2dvXCIsXG4gICAgXCJjb2hhZXJvXCIsXG4gICAgXCJjb2hpYmVvXCIsXG4gICAgXCJjb2hvcnNcIixcbiAgICBcImNvbGxpZ29cIixcbiAgICBcImNvbGxvY29cIixcbiAgICBcImNvbGx1bVwiLFxuICAgIFwiY29sb1wiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbWFcIixcbiAgICBcImNvbWJpYm9cIixcbiAgICBcImNvbWJ1cm9cIixcbiAgICBcImNvbWVkb1wiLFxuICAgIFwiY29tZXNcIixcbiAgICBcImNvbWV0ZXNcIixcbiAgICBcImNvbWlzXCIsXG4gICAgXCJjb21pdGF0dXNcIixcbiAgICBcImNvbW1lbW9yb1wiLFxuICAgIFwiY29tbWlub3JcIixcbiAgICBcImNvbW1vZG9cIixcbiAgICBcImNvbW11bmlzXCIsXG4gICAgXCJjb21wYXJvXCIsXG4gICAgXCJjb21wZWxsb1wiLFxuICAgIFwiY29tcGxlY3R1c1wiLFxuICAgIFwiY29tcG9ub1wiLFxuICAgIFwiY29tcHJlaGVuZG9cIixcbiAgICBcImNvbXB0dXNcIixcbiAgICBcImNvbmF0dXNcIixcbiAgICBcImNvbmNlZG9cIixcbiAgICBcImNvbmNpZG9cIixcbiAgICBcImNvbmN1bGNvXCIsXG4gICAgXCJjb25kaWNvXCIsXG4gICAgXCJjb25kdWNvXCIsXG4gICAgXCJjb25mZXJvXCIsXG4gICAgXCJjb25maWRvXCIsXG4gICAgXCJjb25mb3J0b1wiLFxuICAgIFwiY29uZnVnb1wiLFxuICAgIFwiY29uZ3JlZ2F0aW9cIixcbiAgICBcImNvbmljaW9cIixcbiAgICBcImNvbmllY3RvXCIsXG4gICAgXCJjb25pdG9yXCIsXG4gICAgXCJjb25pdXJhdGlvXCIsXG4gICAgXCJjb25vclwiLFxuICAgIFwiY29ucXVlcm9yXCIsXG4gICAgXCJjb25zY2VuZG9cIixcbiAgICBcImNvbnNlcnZvXCIsXG4gICAgXCJjb25zaWRlcm9cIixcbiAgICBcImNvbnNwZXJnb1wiLFxuICAgIFwiY29uc3RhbnNcIixcbiAgICBcImNvbnN1YXNvclwiLFxuICAgIFwiY29udGFiZXNjb1wiLFxuICAgIFwiY29udGVnb1wiLFxuICAgIFwiY29udGlnb1wiLFxuICAgIFwiY29udHJhXCIsXG4gICAgXCJjb250dXJib1wiLFxuICAgIFwiY29udmVudHVzXCIsXG4gICAgXCJjb252b2NvXCIsXG4gICAgXCJjb3BpYVwiLFxuICAgIFwiY29waW9zZVwiLFxuICAgIFwiY29ybnVcIixcbiAgICBcImNvcm9uYVwiLFxuICAgIFwiY29ycHVzXCIsXG4gICAgXCJjb3JyZXB0aXVzXCIsXG4gICAgXCJjb3JyaWdvXCIsXG4gICAgXCJjb3Jyb2Jvcm9cIixcbiAgICBcImNvcnJ1bXBvXCIsXG4gICAgXCJjb3J1c2N1c1wiLFxuICAgIFwiY290aWRpZVwiLFxuICAgIFwiY3JhcHVsYVwiLFxuICAgIFwiY3Jhc1wiLFxuICAgIFwiY3Jhc3RpbnVzXCIsXG4gICAgXCJjcmVhdG9yXCIsXG4gICAgXCJjcmViZXJcIixcbiAgICBcImNyZWJyb1wiLFxuICAgIFwiY3JlZG9cIixcbiAgICBcImNyZW9cIixcbiAgICBcImNyZXB0aW9cIixcbiAgICBcImNyZXB1c2N1bHVtXCIsXG4gICAgXCJjcmVzY29cIixcbiAgICBcImNyZXRhXCIsXG4gICAgXCJjcmlicm9cIixcbiAgICBcImNyaW5pc1wiLFxuICAgIFwiY3J1Y2lhbWVudHVtXCIsXG4gICAgXCJjcnVkZWxpc1wiLFxuICAgIFwiY3J1ZW50dXNcIixcbiAgICBcImNydXJcIixcbiAgICBcImNydXN0dWx1bVwiLFxuICAgIFwiY3J1eFwiLFxuICAgIFwiY3ViaWN1bGFyaXNcIixcbiAgICBcImN1Yml0dW1cIixcbiAgICBcImN1Ym9cIixcbiAgICBcImN1aVwiLFxuICAgIFwiY3VpdXNcIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJjdWxwb1wiLFxuICAgIFwiY3VsdGVsbHVzXCIsXG4gICAgXCJjdWx0dXJhXCIsXG4gICAgXCJjdW1cIixcbiAgICBcImN1bmFidWxhXCIsXG4gICAgXCJjdW5hZVwiLFxuICAgIFwiY3VuY3RhdGlvXCIsXG4gICAgXCJjdXBpZGl0YXNcIixcbiAgICBcImN1cGlvXCIsXG4gICAgXCJjdXBwZWRpYVwiLFxuICAgIFwiY3VwcmVzc3VzXCIsXG4gICAgXCJjdXJcIixcbiAgICBcImN1cmFcIixcbiAgICBcImN1cmF0aW9cIixcbiAgICBcImN1cmlhXCIsXG4gICAgXCJjdXJpb3NpdGFzXCIsXG4gICAgXCJjdXJpc1wiLFxuICAgIFwiY3Vyb1wiLFxuICAgIFwiY3VycmljdWx1bVwiLFxuICAgIFwiY3VycnVzXCIsXG4gICAgXCJjdXJzaW1cIixcbiAgICBcImN1cnNvXCIsXG4gICAgXCJjdXJzdXNcIixcbiAgICBcImN1cnRvXCIsXG4gICAgXCJjdXJ0dXNcIixcbiAgICBcImN1cnZvXCIsXG4gICAgXCJjdXJ2dXNcIixcbiAgICBcImN1c3RvZGlhXCIsXG4gICAgXCJkYW1uYXRpb1wiLFxuICAgIFwiZGFtbm9cIixcbiAgICBcImRhcGlmZXJcIixcbiAgICBcImRlYmVvXCIsXG4gICAgXCJkZWJpbGl0b1wiLFxuICAgIFwiZGVjZW5zXCIsXG4gICAgXCJkZWNlcm5vXCIsXG4gICAgXCJkZWNldFwiLFxuICAgIFwiZGVjaW11c1wiLFxuICAgIFwiZGVjaXBpb1wiLFxuICAgIFwiZGVjb3JcIixcbiAgICBcImRlY3JldHVtXCIsXG4gICAgXCJkZWN1bWJvXCIsXG4gICAgXCJkZWRlY29yXCIsXG4gICAgXCJkZWRpY29cIixcbiAgICBcImRlZHVjb1wiLFxuICAgIFwiZGVmYWVjb1wiLFxuICAgIFwiZGVmZW5kb1wiLFxuICAgIFwiZGVmZXJvXCIsXG4gICAgXCJkZWZlc3N1c1wiLFxuICAgIFwiZGVmZXRpc2NvclwiLFxuICAgIFwiZGVmaWNpb1wiLFxuICAgIFwiZGVmaWdvXCIsXG4gICAgXCJkZWZsZW9cIixcbiAgICBcImRlZmx1b1wiLFxuICAgIFwiZGVmdW5nb1wiLFxuICAgIFwiZGVnZW5lcm9cIixcbiAgICBcImRlZ2Vyb1wiLFxuICAgIFwiZGVndXN0b1wiLFxuICAgIFwiZGVpbmRlXCIsXG4gICAgXCJkZWxlY3RhdGlvXCIsXG4gICAgXCJkZWxlZ29cIixcbiAgICBcImRlbGVvXCIsXG4gICAgXCJkZWxpYmVyb1wiLFxuICAgIFwiZGVsaWNhdGVcIixcbiAgICBcImRlbGlucXVvXCIsXG4gICAgXCJkZWx1ZG9cIixcbiAgICBcImRlbWVuc1wiLFxuICAgIFwiZGVtZXJnb1wiLFxuICAgIFwiZGVtaXR0b1wiLFxuICAgIFwiZGVtb1wiLFxuICAgIFwiZGVtb25zdHJvXCIsXG4gICAgXCJkZW1vcm9yXCIsXG4gICAgXCJkZW11bGNlb1wiLFxuICAgIFwiZGVtdW1cIixcbiAgICBcImRlbmVnb1wiLFxuICAgIFwiZGVuaXF1ZVwiLFxuICAgIFwiZGVuc1wiLFxuICAgIFwiZGVudW5jaW9cIixcbiAgICBcImRlbnVvXCIsXG4gICAgXCJkZW9yc3VtXCIsXG4gICAgXCJkZXBlcmVvXCIsXG4gICAgXCJkZXBvbm9cIixcbiAgICBcImRlcG9wdWxvXCIsXG4gICAgXCJkZXBvcnRvXCIsXG4gICAgXCJkZXByYWVkb3JcIixcbiAgICBcImRlcHJlY2F0b3JcIixcbiAgICBcImRlcHJpbW9cIixcbiAgICBcImRlcHJvbW9cIixcbiAgICBcImRlcHVsc29cIixcbiAgICBcImRlcHV0b1wiLFxuICAgIFwiZGVyZWxpbnF1b1wiLFxuICAgIFwiZGVyaWRlb1wiLFxuICAgIFwiZGVyaXBpb1wiLFxuICAgIFwiZGVzaWRlcm9cIixcbiAgICBcImRlc2lub1wiLFxuICAgIFwiZGVzaXBpb1wiLFxuICAgIFwiZGVzb2xvXCIsXG4gICAgXCJkZXNwYXJhdHVzXCIsXG4gICAgXCJkZXNwZWN0b1wiLFxuICAgIFwiZGVzcGlybWF0aW9cIixcbiAgICBcImluZml0XCIsXG4gICAgXCJpbmZsYW1tYXRpb1wiLFxuICAgIFwicGFlbnNcIixcbiAgICBcInBhdGlvclwiLFxuICAgIFwicGF0cmlhXCIsXG4gICAgXCJwYXRyb2Npbm9yXCIsXG4gICAgXCJwYXRydXVzXCIsXG4gICAgXCJwYXVjaVwiLFxuICAgIFwicGF1bGF0aW1cIixcbiAgICBcInBhdXBlclwiLFxuICAgIFwicGF4XCIsXG4gICAgXCJwZWNjYXR1c1wiLFxuICAgIFwicGVjY29cIixcbiAgICBcInBlY3RvXCIsXG4gICAgXCJwZWN0dXNcIixcbiAgICBcInBlY3VuaWFcIixcbiAgICBcInBlY3VzXCIsXG4gICAgXCJwZWlvclwiLFxuICAgIFwicGVsXCIsXG4gICAgXCJvY2VyXCIsXG4gICAgXCJzb2NpdXNcIixcbiAgICBcInNvZGFsaXRhc1wiLFxuICAgIFwic29sXCIsXG4gICAgXCJzb2xlb1wiLFxuICAgIFwic29saW9cIixcbiAgICBcInNvbGl0dWRvXCIsXG4gICAgXCJzb2xpdW1cIixcbiAgICBcInNvbGxlcnNcIixcbiAgICBcInNvbGxpY2l0b1wiLFxuICAgIFwic29sdW1cIixcbiAgICBcInNvbHVzXCIsXG4gICAgXCJzb2x1dGlvXCIsXG4gICAgXCJzb2x2b1wiLFxuICAgIFwic29tbmljdWxvc3VzXCIsXG4gICAgXCJzb21udXNcIixcbiAgICBcInNvbml0dXNcIixcbiAgICBcInNvbm9cIixcbiAgICBcInNvcGhpc21hdGFcIixcbiAgICBcInNvcG9yXCIsXG4gICAgXCJzb3JkZW9cIixcbiAgICBcInNvcnRpdHVzXCIsXG4gICAgXCJzcGFyZ29cIixcbiAgICBcInNwZWNpb3N1c1wiLFxuICAgIFwic3BlY3RhY3VsdW1cIixcbiAgICBcInNwZWN1bHVtXCIsXG4gICAgXCJzcGVybm9cIixcbiAgICBcInNwZXJvXCIsXG4gICAgXCJzcGVzXCIsXG4gICAgXCJzcGljdWx1bVwiLFxuICAgIFwic3Bpcml0dXNcIixcbiAgICBcInNwb2xpYXRpb1wiLFxuICAgIFwic3BvbnRlXCIsXG4gICAgXCJzdGFiaWxpc1wiLFxuICAgIFwic3RhdGltXCIsXG4gICAgXCJzdGF0dWFcIixcbiAgICBcInN0ZWxsYVwiLFxuICAgIFwic3RpbGxpY2lkaXVtXCIsXG4gICAgXCJzdGlwZXNcIixcbiAgICBcInN0aXBzXCIsXG4gICAgXCJzdG9cIixcbiAgICBcInN0cmVudXVzXCIsXG4gICAgXCJzdHJ1ZXNcIixcbiAgICBcInN0dWRpb1wiLFxuICAgIFwic3R1bHR1c1wiLFxuICAgIFwic3VhZGVvXCIsXG4gICAgXCJzdWFzb3JpYVwiLFxuICAgIFwic3ViXCIsXG4gICAgXCJzdWJpdG9cIixcbiAgICBcInN1Yml1bmdvXCIsXG4gICAgXCJzdWJsaW1lXCIsXG4gICAgXCJzdWJuZWN0b1wiLFxuICAgIFwic3Vic2Vjb1wiLFxuICAgIFwic3Vic3RhbnRpYVwiLFxuICAgIFwic3VidmVuaW9cIixcbiAgICBcInN1Y2NlZG9cIixcbiAgICBcInN1Y2N1cnJvXCIsXG4gICAgXCJzdWZmaWNpb1wiLFxuICAgIFwic3VmZm9jb1wiLFxuICAgIFwic3VmZnJhZ2l1bVwiLFxuICAgIFwic3VnZ2Vyb1wiLFxuICAgIFwic3VpXCIsXG4gICAgXCJzdWx1bVwiLFxuICAgIFwic3VtXCIsXG4gICAgXCJzdW1tYVwiLFxuICAgIFwic3VtbWlzc2VcIixcbiAgICBcInN1bW1vcGVyZVwiLFxuICAgIFwic3Vtb1wiLFxuICAgIFwic3VtcHR1c1wiLFxuICAgIFwic3VwZWxsZXhcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzdXBwZWxsZXhcIixcbiAgICBcInN1cHBsYW50b1wiLFxuICAgIFwic3VwcG9ub1wiLFxuICAgIFwic3VwcmFcIixcbiAgICBcInN1cmN1bHVzXCIsXG4gICAgXCJzdXJnb1wiLFxuICAgIFwic3Vyc3VtXCIsXG4gICAgXCJzdXNjaXBpb1wiLFxuICAgIFwic3VzcGVuZG9cIixcbiAgICBcInN1c3RpbmVvXCIsXG4gICAgXCJzdXVzXCIsXG4gICAgXCJzeW5hZ29nYVwiLFxuICAgIFwidGFiZWxsYVwiLFxuICAgIFwidGFiZXJudXNcIixcbiAgICBcInRhYmVzY29cIixcbiAgICBcInRhYmdvXCIsXG4gICAgXCJ0YWJ1bGFcIixcbiAgICBcInRhY2VvXCIsXG4gICAgXCJ0YWN0dXNcIixcbiAgICBcInRhZWRpdW1cIixcbiAgICBcInRhbGlvXCIsXG4gICAgXCJ0YWxpc1wiLFxuICAgIFwidGFsdXNcIixcbiAgICBcInRhbVwiLFxuICAgIFwidGFtZGl1XCIsXG4gICAgXCJ0YW1lblwiLFxuICAgIFwidGFtZXRzaVwiLFxuICAgIFwidGFtaXNpdW1cIixcbiAgICBcInRhbXF1YW1cIixcbiAgICBcInRhbmRlbVwiLFxuICAgIFwidGFudGlsbHVzXCIsXG4gICAgXCJ0YW50dW1cIixcbiAgICBcInRhcmR1c1wiLFxuICAgIFwidGVnb1wiLFxuICAgIFwidGVtZXJpdGFzXCIsXG4gICAgXCJ0ZW1wZXJhbnRpYVwiLFxuICAgIFwidGVtcGx1bVwiLFxuICAgIFwidGVtcHRhdGlvXCIsXG4gICAgXCJ0ZW1wdXNcIixcbiAgICBcInRlbmF4XCIsXG4gICAgXCJ0ZW5kb1wiLFxuICAgIFwidGVuZW9cIixcbiAgICBcInRlbmVyXCIsXG4gICAgXCJ0ZW51aXNcIixcbiAgICBcInRlbnVzXCIsXG4gICAgXCJ0ZXBlc2NvXCIsXG4gICAgXCJ0ZXBpZHVzXCIsXG4gICAgXCJ0ZXJcIixcbiAgICBcInRlcmVicm9cIixcbiAgICBcInRlcmVzXCIsXG4gICAgXCJ0ZXJnYVwiLFxuICAgIFwidGVyZ2VvXCIsXG4gICAgXCJ0ZXJnaXZlcnNhdGlvXCIsXG4gICAgXCJ0ZXJnb1wiLFxuICAgIFwidGVyZ3VtXCIsXG4gICAgXCJ0ZXJtZXNcIixcbiAgICBcInRlcm1pbmF0aW9cIixcbiAgICBcInRlcm9cIixcbiAgICBcInRlcnJhXCIsXG4gICAgXCJ0ZXJyZW9cIixcbiAgICBcInRlcnJpdG9cIixcbiAgICBcInRlcnJvclwiLFxuICAgIFwidGVyc3VzXCIsXG4gICAgXCJ0ZXJ0aXVzXCIsXG4gICAgXCJ0ZXN0aW1vbml1bVwiLFxuICAgIFwidGV4b1wiLFxuICAgIFwidGV4dGlsaXNcIixcbiAgICBcInRleHRvclwiLFxuICAgIFwidGV4dHVzXCIsXG4gICAgXCJ0aGFsYXNzaW51c1wiLFxuICAgIFwidGhlYXRydW1cIixcbiAgICBcInRoZWNhXCIsXG4gICAgXCJ0aGVtYVwiLFxuICAgIFwidGhlb2xvZ3VzXCIsXG4gICAgXCJ0aGVybWFlXCIsXG4gICAgXCJ0aGVzYXVydXNcIixcbiAgICBcInRoZXNpc1wiLFxuICAgIFwidGhvcmF4XCIsXG4gICAgXCJ0aHltYnJhXCIsXG4gICAgXCJ0aHltdW1cIixcbiAgICBcInRpYmlcIixcbiAgICBcInRpbWlkdXNcIixcbiAgICBcInRpbW9yXCIsXG4gICAgXCJ0aXR1bHVzXCIsXG4gICAgXCJ0b2xlcm9cIixcbiAgICBcInRvbGxvXCIsXG4gICAgXCJ0b25kZW9cIixcbiAgICBcInRvbnNvclwiLFxuICAgIFwidG9ycXVlb1wiLFxuICAgIFwidG9ycmVuc1wiLFxuICAgIFwidG90XCIsXG4gICAgXCJ0b3RpZGVtXCIsXG4gICAgXCJ0b3RpZXNcIixcbiAgICBcInRvdHVzXCIsXG4gICAgXCJ0cmFjdG9cIixcbiAgICBcInRyYWRvXCIsXG4gICAgXCJ0cmFob1wiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyZWRlY2ltXCIsXG4gICAgXCJ0cmVtb1wiLFxuICAgIFwidHJlcGlkZVwiLFxuICAgIFwidHJlc1wiLFxuICAgIFwidHJpYnVvXCIsXG4gICAgXCJ0cmljZXNpbXVzXCIsXG4gICAgXCJ0cmlkdWFuYVwiLFxuICAgIFwidHJpZ2ludGFcIixcbiAgICBcInRyaXB1ZGlvXCIsXG4gICAgXCJ0cmlzdGlzXCIsXG4gICAgXCJ0cml1bXBodXNcIixcbiAgICBcInRydWNpZG9cIixcbiAgICBcInRydWN1bGVudGVyXCIsXG4gICAgXCJ0dWJpbmV1c1wiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0dW1cIixcbiAgICBcInR1bXVsdHVzXCIsXG4gICAgXCJ0dW5jXCIsXG4gICAgXCJ0dXJiYVwiLFxuICAgIFwidHVyYm9cIixcbiAgICBcInR1cnBlXCIsXG4gICAgXCJ0dXJwaXNcIixcbiAgICBcInR1dGFtZW5cIixcbiAgICBcInR1dGlzXCIsXG4gICAgXCJ0eXJhbm51c1wiLFxuICAgIFwidWJlcnJpbWVcIixcbiAgICBcInViaVwiLFxuICAgIFwidWxjaXNjb3JcIixcbiAgICBcInVsbHVzXCIsXG4gICAgXCJ1bHRlcml1c1wiLFxuICAgIFwidWx0aW9cIixcbiAgICBcInVsdHJhXCIsXG4gICAgXCJ1bWJyYVwiLFxuICAgIFwidW1lcnVzXCIsXG4gICAgXCJ1bXF1YW1cIixcbiAgICBcInVuYVwiLFxuICAgIFwidW5kZVwiLFxuICAgIFwidW5kaXF1ZVwiLFxuICAgIFwidW5pdmVyc2VcIixcbiAgICBcInVudXNcIixcbiAgICBcInVyYmFudXNcIixcbiAgICBcInVyYnNcIixcbiAgICBcInVyZWRvXCIsXG4gICAgXCJ1c2l0YXNcIixcbiAgICBcInVzcXVlXCIsXG4gICAgXCJ1c3RpbG9cIixcbiAgICBcInVzdHVsb1wiLFxuICAgIFwidXN1c1wiLFxuICAgIFwidXRlclwiLFxuICAgIFwidXRlcnF1ZVwiLFxuICAgIFwidXRpbGlzXCIsXG4gICAgXCJ1dGlxdWVcIixcbiAgICBcInV0b3JcIixcbiAgICBcInV0cG90ZVwiLFxuICAgIFwidXRyaW1xdWVcIixcbiAgICBcInV0cm9xdWVcIixcbiAgICBcInV0cnVtXCIsXG4gICAgXCJ1eG9yXCIsXG4gICAgXCJ2YWNvXCIsXG4gICAgXCJ2YWN1dXNcIixcbiAgICBcInZhZG9cIixcbiAgICBcInZhZVwiLFxuICAgIFwidmFsZGVcIixcbiAgICBcInZhbGVuc1wiLFxuICAgIFwidmFsZW9cIixcbiAgICBcInZhbGV0dWRvXCIsXG4gICAgXCJ2YWxpZHVzXCIsXG4gICAgXCJ2YWxsdW1cIixcbiAgICBcInZhcHVsdXNcIixcbiAgICBcInZhcmlldGFzXCIsXG4gICAgXCJ2YXJpdXNcIixcbiAgICBcInZlaGVtZW5zXCIsXG4gICAgXCJ2ZWxcIixcbiAgICBcInZlbG9jaXRlclwiLFxuICAgIFwidmVsdW1cIixcbiAgICBcInZlbHV0XCIsXG4gICAgXCJ2ZW5pYVwiLFxuICAgIFwidmVuaW9cIixcbiAgICBcInZlbnRpdG9cIixcbiAgICBcInZlbnRvc3VzXCIsXG4gICAgXCJ2ZW50dXNcIixcbiAgICBcInZlbnVzdGFzXCIsXG4gICAgXCJ2ZXJcIixcbiAgICBcInZlcmJlcmFcIixcbiAgICBcInZlcmJ1bVwiLFxuICAgIFwidmVyZVwiLFxuICAgIFwidmVyZWN1bmRpYVwiLFxuICAgIFwidmVyZW9yXCIsXG4gICAgXCJ2ZXJnb1wiLFxuICAgIFwidmVyaXRhc1wiLFxuICAgIFwidmVyb1wiLFxuICAgIFwidmVyc3VzXCIsXG4gICAgXCJ2ZXJ0b1wiLFxuICAgIFwidmVydW10YW1lblwiLFxuICAgIFwidmVydXNcIixcbiAgICBcInZlc2NvXCIsXG4gICAgXCJ2ZXNpY2FcIixcbiAgICBcInZlc3BlclwiLFxuICAgIFwidmVzcGlsbG9cIixcbiAgICBcInZlc3RlclwiLFxuICAgIFwidmVzdGlnaXVtXCIsXG4gICAgXCJ2ZXN0cnVtXCIsXG4gICAgXCJ2ZXR1c1wiLFxuICAgIFwidmlhXCIsXG4gICAgXCJ2aWNpbnVzXCIsXG4gICAgXCJ2aWNpc3NpdHVkb1wiLFxuICAgIFwidmljdG9yaWFcIixcbiAgICBcInZpY3R1c1wiLFxuICAgIFwidmlkZWxpY2V0XCIsXG4gICAgXCJ2aWRlb1wiLFxuICAgIFwidmlkdWF0YVwiLFxuICAgIFwidmlkdW9cIixcbiAgICBcInZpZ2lsb1wiLFxuICAgIFwidmlnb3JcIixcbiAgICBcInZpbGljdXNcIixcbiAgICBcInZpbGlzXCIsXG4gICAgXCJ2aWxpdGFzXCIsXG4gICAgXCJ2aWxsYVwiLFxuICAgIFwidmluY29cIixcbiAgICBcInZpbmN1bHVtXCIsXG4gICAgXCJ2aW5kaWNvXCIsXG4gICAgXCJ2aW5pdG9yXCIsXG4gICAgXCJ2aW51bVwiLFxuICAgIFwidmlyXCIsXG4gICAgXCJ2aXJnYVwiLFxuICAgIFwidmlyZ29cIixcbiAgICBcInZpcmlkaXNcIixcbiAgICBcInZpcmlsaXRlclwiLFxuICAgIFwidmlydHVzXCIsXG4gICAgXCJ2aXNcIixcbiAgICBcInZpc2N1c1wiLFxuICAgIFwidml0YVwiLFxuICAgIFwidml0aW9zdXNcIixcbiAgICBcInZpdGl1bVwiLFxuICAgIFwidml0b1wiLFxuICAgIFwidml2b1wiLFxuICAgIFwidml4XCIsXG4gICAgXCJ2b2Jpc1wiLFxuICAgIFwidm9jaWZlcm9yXCIsXG4gICAgXCJ2b2NvXCIsXG4gICAgXCJ2b2xhdGljdXNcIixcbiAgICBcInZvbG9cIixcbiAgICBcInZvbHViaWxpc1wiLFxuICAgIFwidm9sdW50YXJpdXNcIixcbiAgICBcInZvbHVwXCIsXG4gICAgXCJ2b2x1dGFicnVtXCIsXG4gICAgXCJ2b2x2YVwiLFxuICAgIFwidm9tZXJcIixcbiAgICBcInZvbWljYVwiLFxuICAgIFwidm9taXRvXCIsXG4gICAgXCJ2b3JhZ29cIixcbiAgICBcInZvcmF4XCIsXG4gICAgXCJ2b3JvXCIsXG4gICAgXCJ2b3NcIixcbiAgICBcInZvdHVtXCIsXG4gICAgXCJ2b3Zlb1wiLFxuICAgIFwidm94XCIsXG4gICAgXCJ2dWxhcml0ZXJcIixcbiAgICBcInZ1bGdhcmlzXCIsXG4gICAgXCJ2dWxnaXZhZ3VzXCIsXG4gICAgXCJ2dWxnb1wiLFxuICAgIFwidnVsZ3VzXCIsXG4gICAgXCJ2dWxuZXJvXCIsXG4gICAgXCJ2dWxudXNcIixcbiAgICBcInZ1bHBlc1wiLFxuICAgIFwidnVsdGljdWx1c1wiLFxuICAgIFwidnVsdHVvc3VzXCIsXG4gICAgXCJ4aXBoaWFzXCJcbiAgXVxufTtcbmVuLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBYWxpeWFoXCIsXG4gICAgXCJBYXJvblwiLFxuICAgIFwiQWJhZ2FpbFwiLFxuICAgIFwiQWJiZXlcIixcbiAgICBcIkFiYmllXCIsXG4gICAgXCJBYmJpZ2FpbFwiLFxuICAgIFwiQWJieVwiLFxuICAgIFwiQWJkaWVsXCIsXG4gICAgXCJBYmR1bFwiLFxuICAgIFwiQWJkdWxsYWhcIixcbiAgICBcIkFiZVwiLFxuICAgIFwiQWJlbFwiLFxuICAgIFwiQWJlbGFyZG9cIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIkFiaWdhbGVcIixcbiAgICBcIkFiaWdheWxlXCIsXG4gICAgXCJBYm5lclwiLFxuICAgIFwiQWJyYWhhbVwiLFxuICAgIFwiQWRhXCIsXG4gICAgXCJBZGFoXCIsXG4gICAgXCJBZGFsYmVydG9cIixcbiAgICBcIkFkYWxpbmVcIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkYW5cIixcbiAgICBcIkFkZGllXCIsXG4gICAgXCJBZGRpc29uXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiQWRlbGJlcnRcIixcbiAgICBcIkFkZWxlXCIsXG4gICAgXCJBZGVsaWFcIixcbiAgICBcIkFkZWxpbmVcIixcbiAgICBcIkFkZWxsXCIsXG4gICAgXCJBZGVsbGFcIixcbiAgICBcIkFkZWxsZVwiLFxuICAgIFwiQWRpdHlhXCIsXG4gICAgXCJBZG9sZlwiLFxuICAgIFwiQWRvbGZvXCIsXG4gICAgXCJBZG9scGhcIixcbiAgICBcIkFkb2xwaHVzXCIsXG4gICAgXCJBZG9uaXNcIixcbiAgICBcIkFkcmFpblwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJBZHJpYW5hXCIsXG4gICAgXCJBZHJpYW5uYVwiLFxuICAgIFwiQWRyaWVsXCIsXG4gICAgXCJBZHJpZW5cIixcbiAgICBcIkFkcmllbm5lXCIsXG4gICAgXCJBZnRvblwiLFxuICAgIFwiQWdsYWVcIixcbiAgICBcIkFnbmVzXCIsXG4gICAgXCJBZ3VzdGluXCIsXG4gICAgXCJBZ3VzdGluYVwiLFxuICAgIFwiQWhtYWRcIixcbiAgICBcIkFobWVkXCIsXG4gICAgXCJBaWRhXCIsXG4gICAgXCJBaWRhblwiLFxuICAgIFwiQWlkZW5cIixcbiAgICBcIkFpbGVlblwiLFxuICAgIFwiQWltZWVcIixcbiAgICBcIkFpc2hhXCIsXG4gICAgXCJBaXlhbmFcIixcbiAgICBcIkFrZWVtXCIsXG4gICAgXCJBbFwiLFxuICAgIFwiQWxhaW5hXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiQWxhbmlzXCIsXG4gICAgXCJBbGFubmFcIixcbiAgICBcIkFsYXluYVwiLFxuICAgIFwiQWxiYVwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJBbGJlcnRhXCIsXG4gICAgXCJBbGJlcnRoYVwiLFxuICAgIFwiQWxiZXJ0b1wiLFxuICAgIFwiQWxiaW5cIixcbiAgICBcIkFsYmluYVwiLFxuICAgIFwiQWxkYVwiLFxuICAgIFwiQWxkZW5cIixcbiAgICBcIkFsZWNcIixcbiAgICBcIkFsZWVuXCIsXG4gICAgXCJBbGVqYW5kcmFcIixcbiAgICBcIkFsZWphbmRyaW5cIixcbiAgICBcIkFsZWtcIixcbiAgICBcIkFsZW5hXCIsXG4gICAgXCJBbGVuZVwiLFxuICAgIFwiQWxlc3NhbmRyYVwiLFxuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxlc3NpYVwiLFxuICAgIFwiQWxldGhhXCIsXG4gICAgXCJBbGV4XCIsXG4gICAgXCJBbGV4YVwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkFsZXhhbmRyZVwiLFxuICAgIFwiQWxleGFuZHJlYVwiLFxuICAgIFwiQWxleGFuZHJpYVwiLFxuICAgIFwiQWxleGFuZHJpbmVcIixcbiAgICBcIkFsZXhhbmRyb1wiLFxuICAgIFwiQWxleGFuZVwiLFxuICAgIFwiQWxleGFubmVcIixcbiAgICBcIkFsZXhpZVwiLFxuICAgIFwiQWxleGlzXCIsXG4gICAgXCJBbGV4eXNcIixcbiAgICBcIkFsZXh6YW5kZXJcIixcbiAgICBcIkFsZlwiLFxuICAgIFwiQWxmb25zb1wiLFxuICAgIFwiQWxmb256b1wiLFxuICAgIFwiQWxmb3JkXCIsXG4gICAgXCJBbGZyZWRcIixcbiAgICBcIkFsZnJlZGFcIixcbiAgICBcIkFsZnJlZG9cIixcbiAgICBcIkFsaVwiLFxuICAgIFwiQWxpYVwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIkFsaWNpYVwiLFxuICAgIFwiQWxpc2FcIixcbiAgICBcIkFsaXNoYVwiLFxuICAgIFwiQWxpc29uXCIsXG4gICAgXCJBbGl2aWFcIixcbiAgICBcIkFsaXlhXCIsXG4gICAgXCJBbGl5YWhcIixcbiAgICBcIkFsaXphXCIsXG4gICAgXCJBbGl6ZVwiLFxuICAgIFwiQWxsYW5cIixcbiAgICBcIkFsbGVuXCIsXG4gICAgXCJBbGxlbmVcIixcbiAgICBcIkFsbGllXCIsXG4gICAgXCJBbGxpc29uXCIsXG4gICAgXCJBbGx5XCIsXG4gICAgXCJBbHBob25zb1wiLFxuICAgIFwiQWx0YVwiLFxuICAgIFwiQWx0aGVhXCIsXG4gICAgXCJBbHZhXCIsXG4gICAgXCJBbHZhaFwiLFxuICAgIFwiQWx2ZW5hXCIsXG4gICAgXCJBbHZlcmFcIixcbiAgICBcIkFsdmVydGFcIixcbiAgICBcIkFsdmluYVwiLFxuICAgIFwiQWx2aXNcIixcbiAgICBcIkFseWNlXCIsXG4gICAgXCJBbHljaWFcIixcbiAgICBcIkFseXNhXCIsXG4gICAgXCJBbHlzaGFcIixcbiAgICBcIkFseXNvblwiLFxuICAgIFwiQWx5c3NvblwiLFxuICAgIFwiQW1hbGlhXCIsXG4gICAgXCJBbWFuZGFcIixcbiAgICBcIkFtYW5pXCIsXG4gICAgXCJBbWFyYVwiLFxuICAgIFwiQW1hcmlcIixcbiAgICBcIkFtYXlhXCIsXG4gICAgXCJBbWJlclwiLFxuICAgIFwiQW1icm9zZVwiLFxuICAgIFwiQW1lbGlhXCIsXG4gICAgXCJBbWVsaWVcIixcbiAgICBcIkFtZWx5XCIsXG4gICAgXCJBbWVyaWNhXCIsXG4gICAgXCJBbWVyaWNvXCIsXG4gICAgXCJBbWllXCIsXG4gICAgXCJBbWluYVwiLFxuICAgIFwiQW1pclwiLFxuICAgIFwiQW1pcmFcIixcbiAgICBcIkFtaXlhXCIsXG4gICAgXCJBbW9zXCIsXG4gICAgXCJBbXBhcm9cIixcbiAgICBcIkFteVwiLFxuICAgIFwiQW15YVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmFiZWxcIixcbiAgICBcIkFuYWJlbGxlXCIsXG4gICAgXCJBbmFoaVwiLFxuICAgIFwiQW5haXNcIixcbiAgICBcIkFuYXN0YWNpb1wiLFxuICAgIFwiQW5hc3Rhc2lhXCIsXG4gICAgXCJBbmRlcnNvblwiLFxuICAgIFwiQW5kcmVcIixcbiAgICBcIkFuZHJlYW5lXCIsXG4gICAgXCJBbmRyZWFubmVcIixcbiAgICBcIkFuZHJlc1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbmR5XCIsXG4gICAgXCJBbmdlbFwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJBbmdlbGljYVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIkFuZ2VsaW5lXCIsXG4gICAgXCJBbmdlbGl0YVwiLFxuICAgIFwiQW5nZWxvXCIsXG4gICAgXCJBbmdpZVwiLFxuICAgIFwiQW5ndXNcIixcbiAgICBcIkFuaWJhbFwiLFxuICAgIFwiQW5pa2FcIixcbiAgICBcIkFuaXNzYVwiLFxuICAgIFwiQW5pdGFcIixcbiAgICBcIkFuaXlhXCIsXG4gICAgXCJBbml5YWhcIixcbiAgICBcIkFuamFsaVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiQW5uYWJlbFwiLFxuICAgIFwiQW5uYWJlbGxcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiQW5uYWxpc2VcIixcbiAgICBcIkFubmFtYWVcIixcbiAgICBcIkFubmFtYXJpZVwiLFxuICAgIFwiQW5uZVwiLFxuICAgIFwiQW5uZXR0YVwiLFxuICAgIFwiQW5uZXR0ZVwiLFxuICAgIFwiQW5uaWVcIixcbiAgICBcIkFuc2VsXCIsXG4gICAgXCJBbnNsZXlcIixcbiAgICBcIkFudGhvbnlcIixcbiAgICBcIkFudG9pbmV0dGVcIixcbiAgICBcIkFudG9uZVwiLFxuICAgIFwiQW50b25ldHRhXCIsXG4gICAgXCJBbnRvbmV0dGVcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFudG9uaWV0dGFcIixcbiAgICBcIkFudG9uaW5hXCIsXG4gICAgXCJBbnRvbmlvXCIsXG4gICAgXCJBbnR3YW5cIixcbiAgICBcIkFudHdvblwiLFxuICAgIFwiQW55YVwiLFxuICAgIFwiQXByaWxcIixcbiAgICBcIkFyYVwiLFxuICAgIFwiQXJhY2VsaVwiLFxuICAgIFwiQXJhY2VseVwiLFxuICAgIFwiQXJjaFwiLFxuICAgIFwiQXJjaGliYWxkXCIsXG4gICAgXCJBcmRlbGxhXCIsXG4gICAgXCJBcmRlblwiLFxuICAgIFwiQXJkaXRoXCIsXG4gICAgXCJBcmVseVwiLFxuICAgIFwiQXJpXCIsXG4gICAgXCJBcmlhbmVcIixcbiAgICBcIkFyaWFubmFcIixcbiAgICBcIkFyaWNcIixcbiAgICBcIkFyaWVsXCIsXG4gICAgXCJBcmllbGxlXCIsXG4gICAgXCJBcmp1blwiLFxuICAgIFwiQXJsZW5lXCIsXG4gICAgXCJBcmxpZVwiLFxuICAgIFwiQXJsb1wiLFxuICAgIFwiQXJtYW5kXCIsXG4gICAgXCJBcm1hbmRvXCIsXG4gICAgXCJBcm1hbmlcIixcbiAgICBcIkFybmFsZG9cIixcbiAgICBcIkFybmVcIixcbiAgICBcIkFybm9cIixcbiAgICBcIkFybm9sZFwiLFxuICAgIFwiQXJub2xkb1wiLFxuICAgIFwiQXJudWxmb1wiLFxuICAgIFwiQXJvblwiLFxuICAgIFwiQXJ0XCIsXG4gICAgXCJBcnRodXJcIixcbiAgICBcIkFydHVyb1wiLFxuICAgIFwiQXJ2ZWxcIixcbiAgICBcIkFydmlkXCIsXG4gICAgXCJBcnZpbGxhXCIsXG4gICAgXCJBcnlhbm5hXCIsXG4gICAgXCJBc2FcIixcbiAgICBcIkFzaGFcIixcbiAgICBcIkFzaGxlZVwiLFxuICAgIFwiQXNobGVpZ2hcIixcbiAgICBcIkFzaGxleVwiLFxuICAgIFwiQXNobHlcIixcbiAgICBcIkFzaGx5bm5cIixcbiAgICBcIkFzaHRvblwiLFxuICAgIFwiQXNodHluXCIsXG4gICAgXCJBc2lhXCIsXG4gICAgXCJBc3N1bnRhXCIsXG4gICAgXCJBc3RyaWRcIixcbiAgICBcIkF0aGVuYVwiLFxuICAgIFwiQXVicmVlXCIsXG4gICAgXCJBdWJyZXlcIixcbiAgICBcIkF1ZGllXCIsXG4gICAgXCJBdWRyYVwiLFxuICAgIFwiQXVkcmVhbm5lXCIsXG4gICAgXCJBdWRyZXlcIixcbiAgICBcIkF1Z3VzdFwiLFxuICAgIFwiQXVndXN0YVwiLFxuICAgIFwiQXVndXN0aW5lXCIsXG4gICAgXCJBdWd1c3R1c1wiLFxuICAgIFwiQXVyZWxpYVwiLFxuICAgIFwiQXVyZWxpZVwiLFxuICAgIFwiQXVyZWxpb1wiLFxuICAgIFwiQXVyb3JlXCIsXG4gICAgXCJBdXN0ZW5cIixcbiAgICBcIkF1c3RpblwiLFxuICAgIFwiQXVzdHluXCIsXG4gICAgXCJBdXR1bW5cIixcbiAgICBcIkF2YVwiLFxuICAgIFwiQXZlcnlcIixcbiAgICBcIkF2aXNcIixcbiAgICBcIkF4ZWxcIixcbiAgICBcIkF5YW5hXCIsXG4gICAgXCJBeWRlblwiLFxuICAgIFwiQXlsYVwiLFxuICAgIFwiQXlsaW5cIixcbiAgICBcIkJhYnlcIixcbiAgICBcIkJhaWxlZVwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYXJiYXJhXCIsXG4gICAgXCJCYXJuZXlcIixcbiAgICBcIkJhcm9uXCIsXG4gICAgXCJCYXJyZXR0XCIsXG4gICAgXCJCYXJyeVwiLFxuICAgIFwiQmFydFwiLFxuICAgIFwiQmFydGhvbG9tZVwiLFxuICAgIFwiQmFydG9uXCIsXG4gICAgXCJCYXlsZWVcIixcbiAgICBcIkJlYXRyaWNlXCIsXG4gICAgXCJCZWF1XCIsXG4gICAgXCJCZWF1bGFoXCIsXG4gICAgXCJCZWxsXCIsXG4gICAgXCJCZWxsYVwiLFxuICAgIFwiQmVsbGVcIixcbiAgICBcIkJlblwiLFxuICAgIFwiQmVuZWRpY3RcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJCZW5uZXR0XCIsXG4gICAgXCJCZW5uaWVcIixcbiAgICBcIkJlbm55XCIsXG4gICAgXCJCZW50b25cIixcbiAgICBcIkJlcmVuaWNlXCIsXG4gICAgXCJCZXJuYWRldHRlXCIsXG4gICAgXCJCZXJuYWRpbmVcIixcbiAgICBcIkJlcm5hcmRcIixcbiAgICBcIkJlcm5hcmRvXCIsXG4gICAgXCJCZXJuZWljZVwiLFxuICAgIFwiQmVybmhhcmRcIixcbiAgICBcIkJlcm5pY2VcIixcbiAgICBcIkJlcm5pZVwiLFxuICAgIFwiQmVybmllY2VcIixcbiAgICBcIkJlcm5pdGFcIixcbiAgICBcIkJlcnJ5XCIsXG4gICAgXCJCZXJ0XCIsXG4gICAgXCJCZXJ0YVwiLFxuICAgIFwiQmVydGhhXCIsXG4gICAgXCJCZXJ0cmFtXCIsXG4gICAgXCJCZXJ0cmFuZFwiLFxuICAgIFwiQmVyeWxcIixcbiAgICBcIkJlc3NpZVwiLFxuICAgIFwiQmV0aFwiLFxuICAgIFwiQmV0aGFueVwiLFxuICAgIFwiQmV0aGVsXCIsXG4gICAgXCJCZXRzeVwiLFxuICAgIFwiQmV0dGVcIixcbiAgICBcIkJldHRpZVwiLFxuICAgIFwiQmV0dHlcIixcbiAgICBcIkJldHR5ZVwiLFxuICAgIFwiQmV1bGFoXCIsXG4gICAgXCJCZXZlcmx5XCIsXG4gICAgXCJCaWFua2FcIixcbiAgICBcIkJpbGxcIixcbiAgICBcIkJpbGxpZVwiLFxuICAgIFwiQmlsbHlcIixcbiAgICBcIkJpcmRpZVwiLFxuICAgIFwiQmxhaXJcIixcbiAgICBcIkJsYWlzZVwiLFxuICAgIFwiQmxha2VcIixcbiAgICBcIkJsYW5jYVwiLFxuICAgIFwiQmxhbmNoZVwiLFxuICAgIFwiQmxhemVcIixcbiAgICBcIkJvXCIsXG4gICAgXCJCb2JiaWVcIixcbiAgICBcIkJvYmJ5XCIsXG4gICAgXCJCb25pdGFcIixcbiAgICBcIkJvbm5pZVwiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkJveWRcIixcbiAgICBcIkJyYWRcIixcbiAgICBcIkJyYWRlblwiLFxuICAgIFwiQnJhZGZvcmRcIixcbiAgICBcIkJyYWRsZXlcIixcbiAgICBcIkJyYWRseVwiLFxuICAgIFwiQnJhZHlcIixcbiAgICBcIkJyYWVkZW5cIixcbiAgICBcIkJyYWluXCIsXG4gICAgXCJCcmFuZGlcIixcbiAgICBcIkJyYW5kb1wiLFxuICAgIFwiQnJhbmRvblwiLFxuICAgIFwiQnJhbmR0XCIsXG4gICAgXCJCcmFuZHlcIixcbiAgICBcIkJyYW5keW5cIixcbiAgICBcIkJyYW5ub25cIixcbiAgICBcIkJyYW5zb25cIixcbiAgICBcIkJyYW50XCIsXG4gICAgXCJCcmF1bGlvXCIsXG4gICAgXCJCcmF4dG9uXCIsXG4gICAgXCJCcmF5YW5cIixcbiAgICBcIkJyZWFuYVwiLFxuICAgIFwiQnJlYW5uYVwiLFxuICAgIFwiQnJlYW5uZVwiLFxuICAgIFwiQnJlbmRhXCIsXG4gICAgXCJCcmVuZGFuXCIsXG4gICAgXCJCcmVuZGVuXCIsXG4gICAgXCJCcmVuZG9uXCIsXG4gICAgXCJCcmVubmFcIixcbiAgICBcIkJyZW5uYW5cIixcbiAgICBcIkJyZW5ub25cIixcbiAgICBcIkJyZW50XCIsXG4gICAgXCJCcmV0XCIsXG4gICAgXCJCcmV0dFwiLFxuICAgIFwiQnJpYVwiLFxuICAgIFwiQnJpYW5cIixcbiAgICBcIkJyaWFuYVwiLFxuICAgIFwiQnJpYW5uZVwiLFxuICAgIFwiQnJpY2VcIixcbiAgICBcIkJyaWRnZXRcIixcbiAgICBcIkJyaWRnZXR0ZVwiLFxuICAgIFwiQnJpZGllXCIsXG4gICAgXCJCcmllbGxlXCIsXG4gICAgXCJCcmlnaXR0ZVwiLFxuICAgIFwiQnJpb25uYVwiLFxuICAgIFwiQnJpc2FcIixcbiAgICBcIkJyaXRuZXlcIixcbiAgICBcIkJyaXR0YW55XCIsXG4gICAgXCJCcm9ja1wiLFxuICAgIFwiQnJvZGVyaWNrXCIsXG4gICAgXCJCcm9keVwiLFxuICAgIFwiQnJvb2tcIixcbiAgICBcIkJyb29rZVwiLFxuICAgIFwiQnJvb2tseW5cIixcbiAgICBcIkJyb29rc1wiLFxuICAgIFwiQnJvd25cIixcbiAgICBcIkJydWNlXCIsXG4gICAgXCJCcnlhbmFcIixcbiAgICBcIkJyeWNlXCIsXG4gICAgXCJCcnljZW5cIixcbiAgICBcIkJyeW9uXCIsXG4gICAgXCJCdWNrXCIsXG4gICAgXCJCdWRcIixcbiAgICBcIkJ1ZGR5XCIsXG4gICAgXCJCdWZvcmRcIixcbiAgICBcIkJ1bGFoXCIsXG4gICAgXCJCdXJkZXR0ZVwiLFxuICAgIFwiQnVybGV5XCIsXG4gICAgXCJCdXJuaWNlXCIsXG4gICAgXCJCdXN0ZXJcIixcbiAgICBcIkNhZGVcIixcbiAgICBcIkNhZGVuXCIsXG4gICAgXCJDYWVzYXJcIixcbiAgICBcIkNhaXRseW5cIixcbiAgICBcIkNhbGVcIixcbiAgICBcIkNhbGViXCIsXG4gICAgXCJDYWxlaWdoXCIsXG4gICAgXCJDYWxpXCIsXG4gICAgXCJDYWxpc3RhXCIsXG4gICAgXCJDYWxsaWVcIixcbiAgICBcIkNhbWRlblwiLFxuICAgIFwiQ2FtZXJvblwiLFxuICAgIFwiQ2FtaWxhXCIsXG4gICAgXCJDYW1pbGxhXCIsXG4gICAgXCJDYW1pbGxlXCIsXG4gICAgXCJDYW1yZW5cIixcbiAgICBcIkNhbXJvblwiLFxuICAgIFwiQ2FtcnluXCIsXG4gICAgXCJDYW15bGxlXCIsXG4gICAgXCJDYW5kYWNlXCIsXG4gICAgXCJDYW5kZWxhcmlvXCIsXG4gICAgXCJDYW5kaWNlXCIsXG4gICAgXCJDYW5kaWRhXCIsXG4gICAgXCJDYW5kaWRvXCIsXG4gICAgXCJDYXJhXCIsXG4gICAgXCJDYXJleVwiLFxuICAgIFwiQ2FyaXNzYVwiLFxuICAgIFwiQ2FybGVlXCIsXG4gICAgXCJDYXJsZXRvblwiLFxuICAgIFwiQ2FybGV5XCIsXG4gICAgXCJDYXJsaVwiLFxuICAgIFwiQ2FybGllXCIsXG4gICAgXCJDYXJsb1wiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDYXJsb3R0YVwiLFxuICAgIFwiQ2FybWVsXCIsXG4gICAgXCJDYXJtZWxhXCIsXG4gICAgXCJDYXJtZWxsYVwiLFxuICAgIFwiQ2FybWVsb1wiLFxuICAgIFwiQ2FybWVuXCIsXG4gICAgXCJDYXJtaW5lXCIsXG4gICAgXCJDYXJvbFwiLFxuICAgIFwiQ2Fyb2xhbm5lXCIsXG4gICAgXCJDYXJvbGVcIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXJvbGluZVwiLFxuICAgIFwiQ2Fyb2x5blwiLFxuICAgIFwiQ2Fyb2x5bmVcIixcbiAgICBcIkNhcnJpZVwiLFxuICAgIFwiQ2Fycm9sbFwiLFxuICAgIFwiQ2Fyc29uXCIsXG4gICAgXCJDYXJ0ZXJcIixcbiAgICBcIkNhcnlcIixcbiAgICBcIkNhc2FuZHJhXCIsXG4gICAgXCJDYXNleVwiLFxuICAgIFwiQ2FzaW1lclwiLFxuICAgIFwiQ2FzaW1pclwiLFxuICAgIFwiQ2FzcGVyXCIsXG4gICAgXCJDYXNzYW5kcmFcIixcbiAgICBcIkNhc3NhbmRyZVwiLFxuICAgIFwiQ2Fzc2lkeVwiLFxuICAgIFwiQ2Fzc2llXCIsXG4gICAgXCJDYXRhbGluYVwiLFxuICAgIFwiQ2F0ZXJpbmFcIixcbiAgICBcIkNhdGhhcmluZVwiLFxuICAgIFwiQ2F0aGVyaW5lXCIsXG4gICAgXCJDYXRocmluZVwiLFxuICAgIFwiQ2F0aHJ5blwiLFxuICAgIFwiQ2F0aHlcIixcbiAgICBcIkNheWxhXCIsXG4gICAgXCJDZWFzYXJcIixcbiAgICBcIkNlY2VsaWFcIixcbiAgICBcIkNlY2lsXCIsXG4gICAgXCJDZWNpbGVcIixcbiAgICBcIkNlY2lsaWFcIixcbiAgICBcIkNlZHJpY2tcIixcbiAgICBcIkNlbGVzdGluZVwiLFxuICAgIFwiQ2VsZXN0aW5vXCIsXG4gICAgXCJDZWxpYVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJDZXNhclwiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hhZGRcIixcbiAgICBcIkNoYWRyaWNrXCIsXG4gICAgXCJDaGFpbVwiLFxuICAgIFwiQ2hhbmNlXCIsXG4gICAgXCJDaGFuZGxlclwiLFxuICAgIFwiQ2hhbmVsXCIsXG4gICAgXCJDaGFuZWxsZVwiLFxuICAgIFwiQ2hhcml0eVwiLFxuICAgIFwiQ2hhcmxlbmVcIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkNoYXJsZXlcIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiQ2hhc2VcIixcbiAgICBcIkNoYXNpdHlcIixcbiAgICBcIkNoYXVuY2V5XCIsXG4gICAgXCJDaGF5YVwiLFxuICAgIFwiQ2hhelwiLFxuICAgIFwiQ2hlbHNlYVwiLFxuICAgIFwiQ2hlbHNleVwiLFxuICAgIFwiQ2hlbHNpZVwiLFxuICAgIFwiQ2hlc2xleVwiLFxuICAgIFwiQ2hlc3RlclwiLFxuICAgIFwiQ2hldFwiLFxuICAgIFwiQ2hleWFubmVcIixcbiAgICBcIkNoZXllbm5lXCIsXG4gICAgXCJDaGxvZVwiLFxuICAgIFwiQ2hyaXNcIixcbiAgICBcIkNocmlzdFwiLFxuICAgIFwiQ2hyaXN0YVwiLFxuICAgIFwiQ2hyaXN0ZWxsZVwiLFxuICAgIFwiQ2hyaXN0aWFuXCIsXG4gICAgXCJDaHJpc3RpYW5hXCIsXG4gICAgXCJDaHJpc3RpbmFcIixcbiAgICBcIkNocmlzdGluZVwiLFxuICAgIFwiQ2hyaXN0b3BcIixcbiAgICBcIkNocmlzdG9waGVcIixcbiAgICBcIkNocmlzdG9waGVyXCIsXG4gICAgXCJDaHJpc3R5XCIsXG4gICAgXCJDaHluYVwiLFxuICAgIFwiQ2lhcmFcIixcbiAgICBcIkNpY2Vyb1wiLFxuICAgIFwiQ2llbG9cIixcbiAgICBcIkNpZXJyYVwiLFxuICAgIFwiQ2luZHlcIixcbiAgICBcIkNpdGxhbGxpXCIsXG4gICAgXCJDbGFpclwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJDbGFyYVwiLFxuICAgIFwiQ2xhcmFiZWxsZVwiLFxuICAgIFwiQ2xhcmVcIixcbiAgICBcIkNsYXJpc3NhXCIsXG4gICAgXCJDbGFya1wiLFxuICAgIFwiQ2xhdWRcIixcbiAgICBcIkNsYXVkZVwiLFxuICAgIFwiQ2xhdWRpYVwiLFxuICAgIFwiQ2xhdWRpZVwiLFxuICAgIFwiQ2xhdWRpbmVcIixcbiAgICBcIkNsYXlcIixcbiAgICBcIkNsZW1lbnNcIixcbiAgICBcIkNsZW1lbnRcIixcbiAgICBcIkNsZW1lbnRpbmFcIixcbiAgICBcIkNsZW1lbnRpbmVcIixcbiAgICBcIkNsZW1taWVcIixcbiAgICBcIkNsZW9cIixcbiAgICBcIkNsZW9yYVwiLFxuICAgIFwiQ2xldGFcIixcbiAgICBcIkNsZXR1c1wiLFxuICAgIFwiQ2xldmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2xpZmZvcmRcIixcbiAgICBcIkNsaWZ0b25cIixcbiAgICBcIkNsaW50XCIsXG4gICAgXCJDbGludG9uXCIsXG4gICAgXCJDbG90aWxkZVwiLFxuICAgIFwiQ2xvdmlzXCIsXG4gICAgXCJDbG95ZFwiLFxuICAgIFwiQ2x5ZGVcIixcbiAgICBcIkNvYnlcIixcbiAgICBcIkNvZHlcIixcbiAgICBcIkNvbGJ5XCIsXG4gICAgXCJDb2xlXCIsXG4gICAgXCJDb2xlbWFuXCIsXG4gICAgXCJDb2xpblwiLFxuICAgIFwiQ29sbGVlblwiLFxuICAgIFwiQ29sbGluXCIsXG4gICAgXCJDb2x0XCIsXG4gICAgXCJDb2x0ZW5cIixcbiAgICBcIkNvbHRvblwiLFxuICAgIFwiQ29sdW1idXNcIixcbiAgICBcIkNvbmNlcGNpb25cIixcbiAgICBcIkNvbm5lclwiLFxuICAgIFwiQ29ubmllXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIkNvbm9yXCIsXG4gICAgXCJDb25yYWRcIixcbiAgICBcIkNvbnN0YW5jZVwiLFxuICAgIFwiQ29uc3RhbnRpblwiLFxuICAgIFwiQ29uc3VlbG9cIixcbiAgICBcIkNvb3BlclwiLFxuICAgIFwiQ29yYVwiLFxuICAgIFwiQ29yYWxpZVwiLFxuICAgIFwiQ29yYmluXCIsXG4gICAgXCJDb3JkZWxpYVwiLFxuICAgIFwiQ29yZGVsbFwiLFxuICAgIFwiQ29yZGlhXCIsXG4gICAgXCJDb3JkaWVcIixcbiAgICBcIkNvcmVuZVwiLFxuICAgIFwiQ29yaW5lXCIsXG4gICAgXCJDb3JuZWxpdXNcIixcbiAgICBcIkNvcm5lbGxcIixcbiAgICBcIkNvcnJpbmVcIixcbiAgICBcIkNvcnRlelwiLFxuICAgIFwiQ29ydG5leVwiLFxuICAgIFwiQ29yeVwiLFxuICAgIFwiQ290eVwiLFxuICAgIFwiQ291cnRuZXlcIixcbiAgICBcIkNveVwiLFxuICAgIFwiQ3JhaWdcIixcbiAgICBcIkNyYXdmb3JkXCIsXG4gICAgXCJDcmVvbGFcIixcbiAgICBcIkNyaXN0YWxcIixcbiAgICBcIkNyaXN0aWFuXCIsXG4gICAgXCJDcmlzdGluYVwiLFxuICAgIFwiQ3Jpc3RvYmFsXCIsXG4gICAgXCJDcmlzdG9waGVyXCIsXG4gICAgXCJDcnV6XCIsXG4gICAgXCJDcnlzdGFsXCIsXG4gICAgXCJDcnlzdGVsXCIsXG4gICAgXCJDdWxsZW5cIixcbiAgICBcIkN1cnRcIixcbiAgICBcIkN1cnRpc1wiLFxuICAgIFwiQ3lkbmV5XCIsXG4gICAgXCJDeW50aGlhXCIsXG4gICAgXCJDeXJpbFwiLFxuICAgIFwiQ3lydXNcIixcbiAgICBcIkRhZ21hclwiLFxuICAgIFwiRGFobGlhXCIsXG4gICAgXCJEYWlqYVwiLFxuICAgIFwiRGFpc2hhXCIsXG4gICAgXCJEYWlzeVwiLFxuICAgIFwiRGFrb3RhXCIsXG4gICAgXCJEYWxlXCIsXG4gICAgXCJEYWxsYXNcIixcbiAgICBcIkRhbGxpblwiLFxuICAgIFwiRGFsdG9uXCIsXG4gICAgXCJEYW1hcmlzXCIsXG4gICAgXCJEYW1lb25cIixcbiAgICBcIkRhbWlhblwiLFxuICAgIFwiRGFtaWVuXCIsXG4gICAgXCJEYW1pb25cIixcbiAgICBcIkRhbW9uXCIsXG4gICAgXCJEYW5cIixcbiAgICBcIkRhbmFcIixcbiAgICBcIkRhbmRyZVwiLFxuICAgIFwiRGFuZVwiLFxuICAgIFwiRCdhbmdlbG9cIixcbiAgICBcIkRhbmdlbG9cIixcbiAgICBcIkRhbmlhbFwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiRGFuaWVsbGFcIixcbiAgICBcIkRhbmllbGxlXCIsXG4gICAgXCJEYW5pa2FcIixcbiAgICBcIkRhbm5pZVwiLFxuICAgIFwiRGFubnlcIixcbiAgICBcIkRhbnRlXCIsXG4gICAgXCJEYW55a2FcIixcbiAgICBcIkRhcGhuZVwiLFxuICAgIFwiRGFwaG5lZVwiLFxuICAgIFwiRGFwaG5leVwiLFxuICAgIFwiRGFyYnlcIixcbiAgICBcIkRhcmVuXCIsXG4gICAgXCJEYXJpYW5cIixcbiAgICBcIkRhcmlhbmFcIixcbiAgICBcIkRhcmllblwiLFxuICAgIFwiRGFyaW9cIixcbiAgICBcIkRhcmlvblwiLFxuICAgIFwiRGFyaXVzXCIsXG4gICAgXCJEYXJsZW5lXCIsXG4gICAgXCJEYXJvblwiLFxuICAgIFwiRGFycmVsXCIsXG4gICAgXCJEYXJyZWxsXCIsXG4gICAgXCJEYXJyZW5cIixcbiAgICBcIkRhcnJpY2tcIixcbiAgICBcIkRhcnJpblwiLFxuICAgIFwiRGFycmlvblwiLFxuICAgIFwiRGFycm9uXCIsXG4gICAgXCJEYXJyeWxcIixcbiAgICBcIkRhcndpblwiLFxuICAgIFwiRGFyeWxcIixcbiAgICBcIkRhc2hhd25cIixcbiAgICBcIkRhc2lhXCIsXG4gICAgXCJEYXZlXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiRGF2aW5cIixcbiAgICBcIkRhdmlvblwiLFxuICAgIFwiRGF2b25cIixcbiAgICBcIkRhdm9udGVcIixcbiAgICBcIkRhd25cIixcbiAgICBcIkRhd3NvblwiLFxuICAgIFwiRGF4XCIsXG4gICAgXCJEYXlhbmFcIixcbiAgICBcIkRheW5hXCIsXG4gICAgXCJEYXluZVwiLFxuICAgIFwiRGF5dG9uXCIsXG4gICAgXCJEZWFuXCIsXG4gICAgXCJEZWFuZ2Vsb1wiLFxuICAgIFwiRGVhbm5hXCIsXG4gICAgXCJEZWJvcmFoXCIsXG4gICAgXCJEZWNsYW5cIixcbiAgICBcIkRlZHJpY1wiLFxuICAgIFwiRGVkcmlja1wiLFxuICAgIFwiRGVlXCIsXG4gICAgXCJEZWlvblwiLFxuICAgIFwiRGVqYVwiLFxuICAgIFwiRGVqYWhcIixcbiAgICBcIkRlam9uXCIsXG4gICAgXCJEZWp1YW5cIixcbiAgICBcIkRlbGFuZXlcIixcbiAgICBcIkRlbGJlcnRcIixcbiAgICBcIkRlbGZpbmFcIixcbiAgICBcIkRlbGlhXCIsXG4gICAgXCJEZWxpbGFoXCIsXG4gICAgXCJEZWxsXCIsXG4gICAgXCJEZWxsYVwiLFxuICAgIFwiRGVsbWVyXCIsXG4gICAgXCJEZWxvcmVzXCIsXG4gICAgXCJEZWxwaGFcIixcbiAgICBcIkRlbHBoaWFcIixcbiAgICBcIkRlbHBoaW5lXCIsXG4gICAgXCJEZWx0YVwiLFxuICAgIFwiRGVtYXJjb1wiLFxuICAgIFwiRGVtYXJjdXNcIixcbiAgICBcIkRlbWFyaW9cIixcbiAgICBcIkRlbWV0cmlzXCIsXG4gICAgXCJEZW1ldHJpdXNcIixcbiAgICBcIkRlbW9uZFwiLFxuICAgIFwiRGVuYVwiLFxuICAgIFwiRGVuaXNcIixcbiAgICBcIkRlbm5pc1wiLFxuICAgIFwiRGVvblwiLFxuICAgIFwiRGVvbmRyZVwiLFxuICAgIFwiRGVvbnRhZVwiLFxuICAgIFwiRGVvbnRlXCIsXG4gICAgXCJEZXJlY2tcIixcbiAgICBcIkRlcmVrXCIsXG4gICAgXCJEZXJpY2tcIixcbiAgICBcIkRlcm9uXCIsXG4gICAgXCJEZXJyaWNrXCIsXG4gICAgXCJEZXNoYXVuXCIsXG4gICAgXCJEZXNoYXduXCIsXG4gICAgXCJEZXNpcmVlXCIsXG4gICAgXCJEZXNtb25kXCIsXG4gICAgXCJEZXNzaWVcIixcbiAgICBcIkRlc3RhbnlcIixcbiAgICBcIkRlc3RpblwiLFxuICAgIFwiRGVzdGluZWVcIixcbiAgICBcIkRlc3RpbmV5XCIsXG4gICAgXCJEZXN0aW5pXCIsXG4gICAgXCJEZXN0aW55XCIsXG4gICAgXCJEZXZhblwiLFxuICAgIFwiRGV2YW50ZVwiLFxuICAgIFwiRGV2ZW5cIixcbiAgICBcIkRldmluXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRGV2b250ZVwiLFxuICAgIFwiRGV2eW5cIixcbiAgICBcIkRld2F5bmVcIixcbiAgICBcIkRld2l0dFwiLFxuICAgIFwiRGV4dGVyXCIsXG4gICAgXCJEaWFtb25kXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRGlhbm5hXCIsXG4gICAgXCJEaWVnb1wiLFxuICAgIFwiRGlsbGFuXCIsXG4gICAgXCJEaWxsb25cIixcbiAgICBcIkRpbWl0cmlcIixcbiAgICBcIkRpbmFcIixcbiAgICBcIkRpbm9cIixcbiAgICBcIkRpb25cIixcbiAgICBcIkRpeGllXCIsXG4gICAgXCJEb2NrXCIsXG4gICAgXCJEb2xseVwiLFxuICAgIFwiRG9sb3Jlc1wiLFxuICAgIFwiRG9tZW5pY1wiLFxuICAgIFwiRG9tZW5pY2FcIixcbiAgICBcIkRvbWVuaWNrXCIsXG4gICAgXCJEb21lbmljb1wiLFxuICAgIFwiRG9taW5nb1wiLFxuICAgIFwiRG9taW5pY1wiLFxuICAgIFwiRG9taW5pcXVlXCIsXG4gICAgXCJEb25cIixcbiAgICBcIkRvbmFsZFwiLFxuICAgIFwiRG9uYXRvXCIsXG4gICAgXCJEb25hdm9uXCIsXG4gICAgXCJEb25uYVwiLFxuICAgIFwiRG9ubmVsbFwiLFxuICAgIFwiRG9ubmllXCIsXG4gICAgXCJEb25ueVwiLFxuICAgIFwiRG9yYVwiLFxuICAgIFwiRG9yY2FzXCIsXG4gICAgXCJEb3JpYW5cIixcbiAgICBcIkRvcmlzXCIsXG4gICAgXCJEb3JvdGhlYVwiLFxuICAgIFwiRG9yb3RoeVwiLFxuICAgIFwiRG9ycmlzXCIsXG4gICAgXCJEb3J0aGFcIixcbiAgICBcIkRvcnRoeVwiLFxuICAgIFwiRG91Z1wiLFxuICAgIFwiRG91Z2xhc1wiLFxuICAgIFwiRG92aWVcIixcbiAgICBcIkRveWxlXCIsXG4gICAgXCJEcmFrZVwiLFxuICAgIFwiRHJld1wiLFxuICAgIFwiRHVhbmVcIixcbiAgICBcIkR1ZGxleVwiLFxuICAgIFwiRHVsY2VcIixcbiAgICBcIkR1bmNhblwiLFxuICAgIFwiRHVyd2FyZFwiLFxuICAgIFwiRHVzdGluXCIsXG4gICAgXCJEdXN0eVwiLFxuICAgIFwiRHdpZ2h0XCIsXG4gICAgXCJEeWxhblwiLFxuICAgIFwiRWFybFwiLFxuICAgIFwiRWFybGVuZVwiLFxuICAgIFwiRWFybGluZVwiLFxuICAgIFwiRWFybmVzdFwiLFxuICAgIFwiRWFybmVzdGluZVwiLFxuICAgIFwiRWFzdGVyXCIsXG4gICAgXCJFYXN0b25cIixcbiAgICBcIkViYmFcIixcbiAgICBcIkVib255XCIsXG4gICAgXCJFZFwiLFxuICAgIFwiRWRhXCIsXG4gICAgXCJFZGRcIixcbiAgICBcIkVkZGllXCIsXG4gICAgXCJFZGVuXCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWRnYXJkb1wiLFxuICAgIFwiRWRpc29uXCIsXG4gICAgXCJFZG1vbmRcIixcbiAgICBcIkVkbXVuZFwiLFxuICAgIFwiRWRuYVwiLFxuICAgIFwiRWR1YXJkb1wiLFxuICAgIFwiRWR3YXJkXCIsXG4gICAgXCJFZHdhcmRvXCIsXG4gICAgXCJFZHdpblwiLFxuICAgIFwiRWR3aW5hXCIsXG4gICAgXCJFZHl0aFwiLFxuICAgIFwiRWR5dGhlXCIsXG4gICAgXCJFZmZpZVwiLFxuICAgIFwiRWZyYWluXCIsXG4gICAgXCJFZnJlblwiLFxuICAgIFwiRWlsZWVuXCIsXG4gICAgXCJFaW5hclwiLFxuICAgIFwiRWlub1wiLFxuICAgIFwiRWxhZGlvXCIsXG4gICAgXCJFbGFpbmFcIixcbiAgICBcIkVsYmVydFwiLFxuICAgIFwiRWxkYVwiLFxuICAgIFwiRWxkb25cIixcbiAgICBcIkVsZG9yYVwiLFxuICAgIFwiRWxkcmVkXCIsXG4gICAgXCJFbGRyaWRnZVwiLFxuICAgIFwiRWxlYW5vcmFcIixcbiAgICBcIkVsZWFub3JlXCIsXG4gICAgXCJFbGVhemFyXCIsXG4gICAgXCJFbGVjdGFcIixcbiAgICBcIkVsZW5hXCIsXG4gICAgXCJFbGVub3JcIixcbiAgICBcIkVsZW5vcmFcIixcbiAgICBcIkVsZW9ub3JlXCIsXG4gICAgXCJFbGZyaWVkYVwiLFxuICAgIFwiRWxpXCIsXG4gICAgXCJFbGlhblwiLFxuICAgIFwiRWxpYW5lXCIsXG4gICAgXCJFbGlhc1wiLFxuICAgIFwiRWxpZXplclwiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJFbGlub3JcIixcbiAgICBcIkVsaW5vcmVcIixcbiAgICBcIkVsaXNhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkVsaXNlXCIsXG4gICAgXCJFbGlzZW9cIixcbiAgICBcIkVsaXNoYVwiLFxuICAgIFwiRWxpc3NhXCIsXG4gICAgXCJFbGl6YVwiLFxuICAgIFwiRWxpemFiZXRoXCIsXG4gICAgXCJFbGxhXCIsXG4gICAgXCJFbGxlblwiLFxuICAgIFwiRWxsaWVcIixcbiAgICBcIkVsbGlvdFwiLFxuICAgIFwiRWxsaW90dFwiLFxuICAgIFwiRWxsaXNcIixcbiAgICBcIkVsbHN3b3J0aFwiLFxuICAgIFwiRWxtZXJcIixcbiAgICBcIkVsbWlyYVwiLFxuICAgIFwiRWxtb1wiLFxuICAgIFwiRWxtb3JlXCIsXG4gICAgXCJFbG5hXCIsXG4gICAgXCJFbG5vcmFcIixcbiAgICBcIkVsb2R5XCIsXG4gICAgXCJFbG9pc2FcIixcbiAgICBcIkVsb2lzZVwiLFxuICAgIFwiRWxvdWlzZVwiLFxuICAgIFwiRWxveVwiLFxuICAgIFwiRWxyb3lcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVsc2VcIixcbiAgICBcIkVsc2llXCIsXG4gICAgXCJFbHRhXCIsXG4gICAgXCJFbHRvblwiLFxuICAgIFwiRWx2YVwiLFxuICAgIFwiRWx2ZXJhXCIsXG4gICAgXCJFbHZpZVwiLFxuICAgIFwiRWx2aXNcIixcbiAgICBcIkVsd2luXCIsXG4gICAgXCJFbHd5blwiLFxuICAgIFwiRWx5c2VcIixcbiAgICBcIkVseXNzYVwiLFxuICAgIFwiRWx6YVwiLFxuICAgIFwiRW1hbnVlbFwiLFxuICAgIFwiRW1lbGlhXCIsXG4gICAgXCJFbWVsaWVcIixcbiAgICBcIkVtZWx5XCIsXG4gICAgXCJFbWVyYWxkXCIsXG4gICAgXCJFbWVyc29uXCIsXG4gICAgXCJFbWVyeVwiLFxuICAgIFwiRW1pZVwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiRW1pbGVcIixcbiAgICBcIkVtaWxpYVwiLFxuICAgIFwiRW1pbGlhbm9cIixcbiAgICBcIkVtaWxpZVwiLFxuICAgIFwiRW1pbGlvXCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiRW1tYWxlZVwiLFxuICAgIFwiRW1tYW51ZWxcIixcbiAgICBcIkVtbWFudWVsbGVcIixcbiAgICBcIkVtbWV0XCIsXG4gICAgXCJFbW1ldHRcIixcbiAgICBcIkVtbWllXCIsXG4gICAgXCJFbW1pdHRcIixcbiAgICBcIkVtbXlcIixcbiAgICBcIkVtb3J5XCIsXG4gICAgXCJFbmFcIixcbiAgICBcIkVuaWRcIixcbiAgICBcIkVub2NoXCIsXG4gICAgXCJFbm9sYVwiLFxuICAgIFwiRW5vc1wiLFxuICAgIFwiRW5yaWNvXCIsXG4gICAgXCJFbnJpcXVlXCIsXG4gICAgXCJFcGhyYWltXCIsXG4gICAgXCJFcmFcIixcbiAgICBcIkVyaWJlcnRvXCIsXG4gICAgXCJFcmljXCIsXG4gICAgXCJFcmljYVwiLFxuICAgIFwiRXJpY2hcIixcbiAgICBcIkVyaWNrXCIsXG4gICAgXCJFcmlja2FcIixcbiAgICBcIkVyaWtcIixcbiAgICBcIkVyaWthXCIsXG4gICAgXCJFcmluXCIsXG4gICAgXCJFcmxpbmdcIixcbiAgICBcIkVybmFcIixcbiAgICBcIkVybmVzdFwiLFxuICAgIFwiRXJuZXN0aW5hXCIsXG4gICAgXCJFcm5lc3RpbmVcIixcbiAgICBcIkVybmVzdG9cIixcbiAgICBcIkVybmllXCIsXG4gICAgXCJFcnZpblwiLFxuICAgIFwiRXJ3aW5cIixcbiAgICBcIkVyeW5cIixcbiAgICBcIkVzbWVyYWxkYVwiLFxuICAgIFwiRXNwZXJhbnphXCIsXG4gICAgXCJFc3RhXCIsXG4gICAgXCJFc3RlYmFuXCIsXG4gICAgXCJFc3RlZmFuaWFcIixcbiAgICBcIkVzdGVsXCIsXG4gICAgXCJFc3RlbGxcIixcbiAgICBcIkVzdGVsbGFcIixcbiAgICBcIkVzdGVsbGVcIixcbiAgICBcIkVzdGV2YW5cIixcbiAgICBcIkVzdGhlclwiLFxuICAgIFwiRXN0cmVsbGFcIixcbiAgICBcIkV0aGFcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJFdGhlbFwiLFxuICAgIFwiRXRoZWx5blwiLFxuICAgIFwiRXRoeWxcIixcbiAgICBcIkV0dGllXCIsXG4gICAgXCJFdWRvcmFcIixcbiAgICBcIkV1Z2VuZVwiLFxuICAgIFwiRXVnZW5pYVwiLFxuICAgIFwiRXVsYVwiLFxuICAgIFwiRXVsYWhcIixcbiAgICBcIkV1bGFsaWFcIixcbiAgICBcIkV1bmFcIixcbiAgICBcIkV1bmljZVwiLFxuICAgIFwiRXVzZWJpb1wiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJFdmFseW5cIixcbiAgICBcIkV2YW5cIixcbiAgICBcIkV2YW5nZWxpbmVcIixcbiAgICBcIkV2YW5zXCIsXG4gICAgXCJFdmVcIixcbiAgICBcIkV2ZWxpbmVcIixcbiAgICBcIkV2ZWx5blwiLFxuICAgIFwiRXZlcmFyZG9cIixcbiAgICBcIkV2ZXJldHRcIixcbiAgICBcIkV2ZXJldHRlXCIsXG4gICAgXCJFdmVydFwiLFxuICAgIFwiRXZpZVwiLFxuICAgIFwiRXdhbGRcIixcbiAgICBcIkV3ZWxsXCIsXG4gICAgXCJFemVraWVsXCIsXG4gICAgXCJFemVxdWllbFwiLFxuICAgIFwiRXpyYVwiLFxuICAgIFwiRmFiaWFuXCIsXG4gICAgXCJGYWJpb2xhXCIsXG4gICAgXCJGYWVcIixcbiAgICBcIkZhbm5pZVwiLFxuICAgIFwiRmFubnlcIixcbiAgICBcIkZhdGltYVwiLFxuICAgIFwiRmF1c3Rpbm9cIixcbiAgICBcIkZhdXN0b1wiLFxuICAgIFwiRmF2aWFuXCIsXG4gICAgXCJGYXlcIixcbiAgICBcIkZheWVcIixcbiAgICBcIkZlZGVyaWNvXCIsXG4gICAgXCJGZWxpY2lhXCIsXG4gICAgXCJGZWxpY2l0YVwiLFxuICAgIFwiRmVsaWNpdHlcIixcbiAgICBcIkZlbGlwYVwiLFxuICAgIFwiRmVsaXBlXCIsXG4gICAgXCJGZWxpeFwiLFxuICAgIFwiRmVsdG9uXCIsXG4gICAgXCJGZXJtaW5cIixcbiAgICBcIkZlcm5cIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGZXJuZVwiLFxuICAgIFwiRmlkZWxcIixcbiAgICBcIkZpbGliZXJ0b1wiLFxuICAgIFwiRmlsb21lbmFcIixcbiAgICBcIkZpbm5cIixcbiAgICBcIkZpb25hXCIsXG4gICAgXCJGbGF2aWVcIixcbiAgICBcIkZsYXZpb1wiLFxuICAgIFwiRmxldGFcIixcbiAgICBcIkZsZXRjaGVyXCIsXG4gICAgXCJGbG9cIixcbiAgICBcIkZsb3JlbmNlXCIsXG4gICAgXCJGbG9yZW5jaW9cIixcbiAgICBcIkZsb3JpYW5cIixcbiAgICBcIkZsb3JpZGFcIixcbiAgICBcIkZsb3JpbmVcIixcbiAgICBcIkZsb3NzaWVcIixcbiAgICBcIkZsb3lcIixcbiAgICBcIkZsb3lkXCIsXG4gICAgXCJGb3JkXCIsXG4gICAgXCJGb3Jlc3RcIixcbiAgICBcIkZvcnJlc3RcIixcbiAgICBcIkZvc3RlclwiLFxuICAgIFwiRnJhbmNlc1wiLFxuICAgIFwiRnJhbmNlc2NhXCIsXG4gICAgXCJGcmFuY2VzY29cIixcbiAgICBcIkZyYW5jaXNcIixcbiAgICBcIkZyYW5jaXNjYVwiLFxuICAgIFwiRnJhbmNpc2NvXCIsXG4gICAgXCJGcmFuY29cIixcbiAgICBcIkZyYW5rXCIsXG4gICAgXCJGcmFua2llXCIsXG4gICAgXCJGcmFuelwiLFxuICAgIFwiRnJlZFwiLFxuICAgIFwiRnJlZGFcIixcbiAgICBcIkZyZWRkaWVcIixcbiAgICBcIkZyZWRkeVwiLFxuICAgIFwiRnJlZGVyaWNcIixcbiAgICBcIkZyZWRlcmlja1wiLFxuICAgIFwiRnJlZGVyaWtcIixcbiAgICBcIkZyZWRlcmlxdWVcIixcbiAgICBcIkZyZWRyaWNrXCIsXG4gICAgXCJGcmVkeVwiLFxuICAgIFwiRnJlZWRhXCIsXG4gICAgXCJGcmVlbWFuXCIsXG4gICAgXCJGcmVpZGFcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJGcmllZGFcIixcbiAgICBcIkZyaWVkcmljaFwiLFxuICAgIFwiRnJpdHpcIixcbiAgICBcIkZ1cm1hblwiLFxuICAgIFwiR2FiZVwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2FicmllbGxhXCIsXG4gICAgXCJHYWJyaWVsbGVcIixcbiAgICBcIkdhZXRhbm9cIixcbiAgICBcIkdhZ2VcIixcbiAgICBcIkdhaWxcIixcbiAgICBcIkdhcmRuZXJcIixcbiAgICBcIkdhcmV0dFwiLFxuICAgIFwiR2FyZmllbGRcIixcbiAgICBcIkdhcmxhbmRcIixcbiAgICBcIkdhcm5ldFwiLFxuICAgIFwiR2FybmV0dFwiLFxuICAgIFwiR2FycmV0XCIsXG4gICAgXCJHYXJyZXR0XCIsXG4gICAgXCJHYXJyaWNrXCIsXG4gICAgXCJHYXJyaXNvblwiLFxuICAgIFwiR2FycnlcIixcbiAgICBcIkdhcnRoXCIsXG4gICAgXCJHYXN0b25cIixcbiAgICBcIkdhdmluXCIsXG4gICAgXCJHYXlcIixcbiAgICBcIkdheWxlXCIsXG4gICAgXCJHYXlsb3JkXCIsXG4gICAgXCJHZW5lXCIsXG4gICAgXCJHZW5lcmFsXCIsXG4gICAgXCJHZW5lc2lzXCIsXG4gICAgXCJHZW5ldmlldmVcIixcbiAgICBcIkdlbm5hcm9cIixcbiAgICBcIkdlbm92ZXZhXCIsXG4gICAgXCJHZW9cIixcbiAgICBcIkdlb2ZmcmV5XCIsXG4gICAgXCJHZW9yZ2VcIixcbiAgICBcIkdlb3JnZXR0ZVwiLFxuICAgIFwiR2VvcmdpYW5hXCIsXG4gICAgXCJHZW9yZ2lhbm5hXCIsXG4gICAgXCJHZW92YW5uaVwiLFxuICAgIFwiR2VvdmFubnlcIixcbiAgICBcIkdlb3ZhbnlcIixcbiAgICBcIkdlcmFsZFwiLFxuICAgIFwiR2VyYWxkaW5lXCIsXG4gICAgXCJHZXJhcmRcIixcbiAgICBcIkdlcmFyZG9cIixcbiAgICBcIkdlcmRhXCIsXG4gICAgXCJHZXJoYXJkXCIsXG4gICAgXCJHZXJtYWluZVwiLFxuICAgIFwiR2VybWFuXCIsXG4gICAgXCJHZXJyeVwiLFxuICAgIFwiR2Vyc29uXCIsXG4gICAgXCJHZXJ0cnVkZVwiLFxuICAgIFwiR2lhXCIsXG4gICAgXCJHaWFubmlcIixcbiAgICBcIkdpZGVvblwiLFxuICAgIFwiR2lsYmVydFwiLFxuICAgIFwiR2lsYmVydG9cIixcbiAgICBcIkdpbGRhXCIsXG4gICAgXCJHaWxlc1wiLFxuICAgIFwiR2lsbGlhblwiLFxuICAgIFwiR2luYVwiLFxuICAgIFwiR2lub1wiLFxuICAgIFwiR2lvdmFuaVwiLFxuICAgIFwiR2lvdmFubmFcIixcbiAgICBcIkdpb3Zhbm5pXCIsXG4gICAgXCJHaW92YW5ueVwiLFxuICAgIFwiR2lzc2VsbGVcIixcbiAgICBcIkdpdXNlcHBlXCIsXG4gICAgXCJHbGFkeWNlXCIsXG4gICAgXCJHbGFkeXNcIixcbiAgICBcIkdsZW5cIixcbiAgICBcIkdsZW5kYVwiLFxuICAgIFwiR2xlbm5hXCIsXG4gICAgXCJHbGVubmllXCIsXG4gICAgXCJHbG9yaWFcIixcbiAgICBcIkdvZGZyZXlcIixcbiAgICBcIkdvbGRhXCIsXG4gICAgXCJHb2xkZW5cIixcbiAgICBcIkdvbnphbG9cIixcbiAgICBcIkdvcmRvblwiLFxuICAgIFwiR3JhY2VcIixcbiAgICBcIkdyYWNpZVwiLFxuICAgIFwiR3JhY2llbGFcIixcbiAgICBcIkdyYWR5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmFudmlsbGVcIixcbiAgICBcIkdyYXljZVwiLFxuICAgIFwiR3JheXNvblwiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkdyZWdcIixcbiAgICBcIkdyZWdnXCIsXG4gICAgXCJHcmVnb3JpYVwiLFxuICAgIFwiR3JlZ29yaW9cIixcbiAgICBcIkdyZWdvcnlcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJHcmV0Y2hlblwiLFxuICAgIFwiR3JleXNvblwiLFxuICAgIFwiR3JpZmZpblwiLFxuICAgIFwiR3JvdmVyXCIsXG4gICAgXCJHdWFkYWx1cGVcIixcbiAgICBcIkd1ZHJ1blwiLFxuICAgIFwiR3VpZG9cIixcbiAgICBcIkd1aWxsZXJtb1wiLFxuICAgIFwiR3Vpc2VwcGVcIixcbiAgICBcIkd1bm5hclwiLFxuICAgIFwiR3VubmVyXCIsXG4gICAgXCJHdXNcIixcbiAgICBcIkd1c3NpZVwiLFxuICAgIFwiR3VzdFwiLFxuICAgIFwiR3VzdGF2ZVwiLFxuICAgIFwiR3V5XCIsXG4gICAgXCJHd2VuXCIsXG4gICAgXCJHd2VuZG9seW5cIixcbiAgICBcIkhhZGxleVwiLFxuICAgIFwiSGFpbGVlXCIsXG4gICAgXCJIYWlsZXlcIixcbiAgICBcIkhhaWxpZVwiLFxuICAgIFwiSGFsXCIsXG4gICAgXCJIYWxlaWdoXCIsXG4gICAgXCJIYWxleVwiLFxuICAgIFwiSGFsaWVcIixcbiAgICBcIkhhbGxlXCIsXG4gICAgXCJIYWxsaWVcIixcbiAgICBcIkhhbmtcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIkhhbnNcIixcbiAgICBcIkhhcmR5XCIsXG4gICAgXCJIYXJsZXlcIixcbiAgICBcIkhhcm1vblwiLFxuICAgIFwiSGFybW9ueVwiLFxuICAgIFwiSGFyb2xkXCIsXG4gICAgXCJIYXJyaXNvblwiLFxuICAgIFwiSGFycnlcIixcbiAgICBcIkhhcnZleVwiLFxuICAgIFwiSGFza2VsbFwiLFxuICAgIFwiSGFzc2FuXCIsXG4gICAgXCJIYXNzaWVcIixcbiAgICBcIkhhdHRpZVwiLFxuICAgIFwiSGF2ZW5cIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiSGF5bGVlXCIsXG4gICAgXCJIYXlsZXlcIixcbiAgICBcIkhheWxpZVwiLFxuICAgIFwiSGF6ZWxcIixcbiAgICBcIkhhemxlXCIsXG4gICAgXCJIZWF0aFwiLFxuICAgIFwiSGVhdGhlclwiLFxuICAgIFwiSGVhdmVuXCIsXG4gICAgXCJIZWJlclwiLFxuICAgIFwiSGVjdG9yXCIsXG4gICAgXCJIZWlkaVwiLFxuICAgIFwiSGVsZW5cIixcbiAgICBcIkhlbGVuYVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJIZWxnYVwiLFxuICAgIFwiSGVsbGVuXCIsXG4gICAgXCJIZWxtZXJcIixcbiAgICBcIkhlbG9pc2VcIixcbiAgICBcIkhlbmRlcnNvblwiLFxuICAgIFwiSGVucmlcIixcbiAgICBcIkhlbnJpZXR0ZVwiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkhlcmJlcnRcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWluYVwiLFxuICAgIFwiSGVybWluaWFcIixcbiAgICBcIkhlcm1pbmlvXCIsXG4gICAgXCJIZXJzaGVsXCIsXG4gICAgXCJIZXJ0YVwiLFxuICAgIFwiSGVydGhhXCIsXG4gICAgXCJIZXN0ZXJcIixcbiAgICBcIkhldHRpZVwiLFxuICAgIFwiSGlsYXJpb1wiLFxuICAgIFwiSGlsYmVydFwiLFxuICAgIFwiSGlsZGFcIixcbiAgICBcIkhpbGRlZ2FyZFwiLFxuICAgIFwiSGlsbGFyZFwiLFxuICAgIFwiSGlsbGFyeVwiLFxuICAgIFwiSGlsbWFcIixcbiAgICBcIkhpbHRvblwiLFxuICAgIFwiSGlwb2xpdG9cIixcbiAgICBcIkhpcmFtXCIsXG4gICAgXCJIb2JhcnRcIixcbiAgICBcIkhvbGRlblwiLFxuICAgIFwiSG9sbGllXCIsXG4gICAgXCJIb2xsaXNcIixcbiAgICBcIkhvbGx5XCIsXG4gICAgXCJIb3BlXCIsXG4gICAgXCJIb3JhY2VcIixcbiAgICBcIkhvcmFjaW9cIixcbiAgICBcIkhvcnRlbnNlXCIsXG4gICAgXCJIb3NlYVwiLFxuICAgIFwiSG91c3RvblwiLFxuICAgIFwiSG93YXJkXCIsXG4gICAgXCJIb3dlbGxcIixcbiAgICBcIkhveXRcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWdoXCIsXG4gICAgXCJIdWxkYVwiLFxuICAgIFwiSHVtYmVydG9cIixcbiAgICBcIkh1bnRlclwiLFxuICAgIFwiSHltYW5cIixcbiAgICBcIklhblwiLFxuICAgIFwiSWJyYWhpbVwiLFxuICAgIFwiSWNpZVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJJZGVsbFwiLFxuICAgIFwiSWRlbGxhXCIsXG4gICAgXCJJZ25hY2lvXCIsXG4gICAgXCJJZ25hdGl1c1wiLFxuICAgIFwiSWtlXCIsXG4gICAgXCJJbGFcIixcbiAgICBcIklsZW5lXCIsXG4gICAgXCJJbGlhbmFcIixcbiAgICBcIkltYVwiLFxuICAgIFwiSW1hbmlcIixcbiAgICBcIkltZWxkYVwiLFxuICAgIFwiSW1tYW51ZWxcIixcbiAgICBcIkltb2dlbmVcIixcbiAgICBcIkluZXNcIixcbiAgICBcIklybWFcIixcbiAgICBcIklydmluZ1wiLFxuICAgIFwiSXJ3aW5cIixcbiAgICBcIklzYWFjXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzYWJlbGxcIixcbiAgICBcIklzYWJlbGxhXCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiSXNhY1wiLFxuICAgIFwiSXNhZG9yZVwiLFxuICAgIFwiSXNhaVwiLFxuICAgIFwiSXNhaWFoXCIsXG4gICAgXCJJc2FpYXNcIixcbiAgICBcIklzaWRyb1wiLFxuICAgIFwiSXNtYWVsXCIsXG4gICAgXCJJc29iZWxcIixcbiAgICBcIklzb21cIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiSXNzYWNcIixcbiAgICBcIkl0emVsXCIsXG4gICAgXCJJdmFcIixcbiAgICBcIkl2YWhcIixcbiAgICBcIkl2b3J5XCIsXG4gICAgXCJJdnlcIixcbiAgICBcIkl6YWJlbGxhXCIsXG4gICAgXCJJemFpYWhcIixcbiAgICBcIkphYmFyaVwiLFxuICAgIFwiSmFjZVwiLFxuICAgIFwiSmFjZXlcIixcbiAgICBcIkphY2ludGhlXCIsXG4gICAgXCJKYWNpbnRvXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYWNrZWxpbmVcIixcbiAgICBcIkphY2tpZVwiLFxuICAgIFwiSmFja2x5blwiLFxuICAgIFwiSmFja3NvblwiLFxuICAgIFwiSmFja3lcIixcbiAgICBcIkphY2x5blwiLFxuICAgIFwiSmFjcXVlbHluXCIsXG4gICAgXCJKYWNxdWVzXCIsXG4gICAgXCJKYWN5bnRoZVwiLFxuICAgIFwiSmFkYVwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiSmFkZW5cIixcbiAgICBcIkphZG9uXCIsXG4gICAgXCJKYWR5blwiLFxuICAgIFwiSmFlZGVuXCIsXG4gICAgXCJKYWlkYVwiLFxuICAgIFwiSmFpZGVuXCIsXG4gICAgXCJKYWlseW5cIixcbiAgICBcIkphaW1lXCIsXG4gICAgXCJKYWlyb1wiLFxuICAgIFwiSmFrYXlsYVwiLFxuICAgIFwiSmFrZVwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIkphbGVlbFwiLFxuICAgIFwiSmFsZW5cIixcbiAgICBcIkphbG9uXCIsXG4gICAgXCJKYWx5blwiLFxuICAgIFwiSmFtYWFsXCIsXG4gICAgXCJKYW1hbFwiLFxuICAgIFwiSmFtYXJcIixcbiAgICBcIkphbWFyY3VzXCIsXG4gICAgXCJKYW1lbFwiLFxuICAgIFwiSmFtZXNvblwiLFxuICAgIFwiSmFtZXlcIixcbiAgICBcIkphbWllXCIsXG4gICAgXCJKYW1pbFwiLFxuICAgIFwiSmFtaXJcIixcbiAgICBcIkphbWlzb25cIixcbiAgICBcIkphbW1pZVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYW5hXCIsXG4gICAgXCJKYW5hZVwiLFxuICAgIFwiSmFuZVwiLFxuICAgIFwiSmFuZWxsZVwiLFxuICAgIFwiSmFuZXNzYVwiLFxuICAgIFwiSmFuZXRcIixcbiAgICBcIkphbmljZVwiLFxuICAgIFwiSmFuaWNrXCIsXG4gICAgXCJKYW5pZVwiLFxuICAgIFwiSmFuaXNcIixcbiAgICBcIkphbml5YVwiLFxuICAgIFwiSmFubmllXCIsXG4gICAgXCJKYW55XCIsXG4gICAgXCJKYXF1YW5cIixcbiAgICBcIkphcXVlbGluXCIsXG4gICAgXCJKYXF1ZWxpbmVcIixcbiAgICBcIkphcmVkXCIsXG4gICAgXCJKYXJlblwiLFxuICAgIFwiSmFyb2RcIixcbiAgICBcIkphcm9uXCIsXG4gICAgXCJKYXJyZWRcIixcbiAgICBcIkphcnJlbGxcIixcbiAgICBcIkphcnJldFwiLFxuICAgIFwiSmFycmV0dFwiLFxuICAgIFwiSmFycm9kXCIsXG4gICAgXCJKYXJ2aXNcIixcbiAgICBcIkphc2VuXCIsXG4gICAgXCJKYXNtaW5cIixcbiAgICBcIkphc29uXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkphdW5pdGFcIixcbiAgICBcIkphdmllclwiLFxuICAgIFwiSmF2b25cIixcbiAgICBcIkphdm9udGVcIixcbiAgICBcIkpheVwiLFxuICAgIFwiSmF5Y2VcIixcbiAgICBcIkpheWNlZVwiLFxuICAgIFwiSmF5ZGFcIixcbiAgICBcIkpheWRlXCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIkpheWRvblwiLFxuICAgIFwiSmF5bGFuXCIsXG4gICAgXCJKYXlsZW5cIixcbiAgICBcIkpheWxpblwiLFxuICAgIFwiSmF5bG9uXCIsXG4gICAgXCJKYXltZVwiLFxuICAgIFwiSmF5bmVcIixcbiAgICBcIkpheXNvblwiLFxuICAgIFwiSmF6bHluXCIsXG4gICAgXCJKYXptaW5cIixcbiAgICBcIkphem15blwiLFxuICAgIFwiSmF6bXluZVwiLFxuICAgIFwiSmVhblwiLFxuICAgIFwiSmVhbmV0dGVcIixcbiAgICBcIkplYW5pZVwiLFxuICAgIFwiSmVhbm5lXCIsXG4gICAgXCJKZWRcIixcbiAgICBcIkplZGVkaWFoXCIsXG4gICAgXCJKZWRpZGlhaFwiLFxuICAgIFwiSmVmZlwiLFxuICAgIFwiSmVmZmVyZXlcIixcbiAgICBcIkplZmZlcnlcIixcbiAgICBcIkplZmZyZXlcIixcbiAgICBcIkplZmZyeVwiLFxuICAgIFwiSmVuYVwiLFxuICAgIFwiSmVuaWZlclwiLFxuICAgIFwiSmVubmllXCIsXG4gICAgXCJKZW5uaWZlclwiLFxuICAgIFwiSmVubmluZ3NcIixcbiAgICBcIkplbm55ZmVyXCIsXG4gICAgXCJKZW5zZW5cIixcbiAgICBcIkplcmFkXCIsXG4gICAgXCJKZXJhbGRcIixcbiAgICBcIkplcmFtaWVcIixcbiAgICBcIkplcmFteVwiLFxuICAgIFwiSmVyZWxcIixcbiAgICBcIkplcmVtaWVcIixcbiAgICBcIkplcmVteVwiLFxuICAgIFwiSmVybWFpblwiLFxuICAgIFwiSmVybWFpbmVcIixcbiAgICBcIkplcm1leVwiLFxuICAgIFwiSmVyb2RcIixcbiAgICBcIkplcm9tZVwiLFxuICAgIFwiSmVyb215XCIsXG4gICAgXCJKZXJyZWxsXCIsXG4gICAgXCJKZXJyb2RcIixcbiAgICBcIkplcnJvbGRcIixcbiAgICBcIkplcnJ5XCIsXG4gICAgXCJKZXNzXCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiSmVzc2ljYVwiLFxuICAgIFwiSmVzc2llXCIsXG4gICAgXCJKZXNzaWthXCIsXG4gICAgXCJKZXNzeVwiLFxuICAgIFwiSmVzc3ljYVwiLFxuICAgIFwiSmVzdXNcIixcbiAgICBcIkpldHRcIixcbiAgICBcIkpldHRpZVwiLFxuICAgIFwiSmV2b25cIixcbiAgICBcIkpld2VsXCIsXG4gICAgXCJKZXdlbGxcIixcbiAgICBcIkppbGxpYW5cIixcbiAgICBcIkppbW1pZVwiLFxuICAgIFwiSmltbXlcIixcbiAgICBcIkpvXCIsXG4gICAgXCJKb2FuXCIsXG4gICAgXCJKb2FuYVwiLFxuICAgIFwiSm9hbmllXCIsXG4gICAgXCJKb2FubmVcIixcbiAgICBcIkpvYW5uaWVcIixcbiAgICBcIkpvYW5ueVwiLFxuICAgIFwiSm9hbnlcIixcbiAgICBcIkpvYXF1aW5cIixcbiAgICBcIkpvY2VseW5cIixcbiAgICBcIkpvZGllXCIsXG4gICAgXCJKb2R5XCIsXG4gICAgXCJKb2VcIixcbiAgICBcIkpvZWxcIixcbiAgICBcIkpvZWxsZVwiLFxuICAgIFwiSm9lc3BoXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb2hhblwiLFxuICAgIFwiSm9oYW5uXCIsXG4gICAgXCJKb2hhbm5hXCIsXG4gICAgXCJKb2hhdGhhblwiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9obmF0aGFuXCIsXG4gICAgXCJKb2huYXRob25cIixcbiAgICBcIkpvaG5uaWVcIixcbiAgICBcIkpvaG5ueVwiLFxuICAgIFwiSm9obnBhdWxcIixcbiAgICBcIkpvaG5zb25cIixcbiAgICBcIkpvbGllXCIsXG4gICAgXCJKb25cIixcbiAgICBcIkpvbmFzXCIsXG4gICAgXCJKb25hdGFuXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiSm9uYXRob25cIixcbiAgICBcIkpvcmRhblwiLFxuICAgIFwiSm9yZGFuZVwiLFxuICAgIFwiSm9yZGlcIixcbiAgICBcIkpvcmRvblwiLFxuICAgIFwiSm9yZHlcIixcbiAgICBcIkpvcmR5blwiLFxuICAgIFwiSm9yZ2VcIixcbiAgICBcIkpvc2VcIixcbiAgICBcIkpvc2VmYVwiLFxuICAgIFwiSm9zZWZpbmFcIixcbiAgICBcIkpvc2VwaFwiLFxuICAgIFwiSm9zZXBoaW5lXCIsXG4gICAgXCJKb3NoXCIsXG4gICAgXCJKb3NodWFcIixcbiAgICBcIkpvc2h1YWhcIixcbiAgICBcIkpvc2lhaFwiLFxuICAgIFwiSm9zaWFuZVwiLFxuICAgIFwiSm9zaWFubmVcIixcbiAgICBcIkpvc2llXCIsXG4gICAgXCJKb3N1ZVwiLFxuICAgIFwiSm92YW5cIixcbiAgICBcIkpvdmFuaVwiLFxuICAgIFwiSm92YW5ueVwiLFxuICAgIFwiSm92YW55XCIsXG4gICAgXCJKb3lcIixcbiAgICBcIkpveWNlXCIsXG4gICAgXCJKdWFuYVwiLFxuICAgIFwiSnVhbml0YVwiLFxuICAgIFwiSnVkYWhcIixcbiAgICBcIkp1ZGRcIixcbiAgICBcIkp1ZGVcIixcbiAgICBcIkp1ZGdlXCIsXG4gICAgXCJKdWRzb25cIixcbiAgICBcIkp1ZHlcIixcbiAgICBcIkp1bGVzXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJKdWxpYW5hXCIsXG4gICAgXCJKdWxpYW5uZVwiLFxuICAgIFwiSnVsaWVcIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiSnVsaWV0XCIsXG4gICAgXCJKdWxpb1wiLFxuICAgIFwiSnVsaXVzXCIsXG4gICAgXCJKdW5lXCIsXG4gICAgXCJKdW5pb3JcIixcbiAgICBcIkp1bml1c1wiLFxuICAgIFwiSnVzdGVuXCIsXG4gICAgXCJKdXN0aWNlXCIsXG4gICAgXCJKdXN0aW5hXCIsXG4gICAgXCJKdXN0aW5lXCIsXG4gICAgXCJKdXN0b25cIixcbiAgICBcIkp1c3R1c1wiLFxuICAgIFwiSnVzdHluXCIsXG4gICAgXCJKdXZlbmFsXCIsXG4gICAgXCJKdXdhblwiLFxuICAgIFwiS2FjZXlcIixcbiAgICBcIkthY2lcIixcbiAgICBcIkthY2llXCIsXG4gICAgXCJLYWRlXCIsXG4gICAgXCJLYWRlblwiLFxuICAgIFwiS2FkaW5cIixcbiAgICBcIkthZWxhXCIsXG4gICAgXCJLYWVseW5cIixcbiAgICBcIkthaWFcIixcbiAgICBcIkthaWxlZVwiLFxuICAgIFwiS2FpbGV5XCIsXG4gICAgXCJLYWlseW5cIixcbiAgICBcIkthaXRsaW5cIixcbiAgICBcIkthaXRseW5cIixcbiAgICBcIkthbGVcIixcbiAgICBcIkthbGViXCIsXG4gICAgXCJLYWxlaWdoXCIsXG4gICAgXCJLYWxleVwiLFxuICAgIFwiS2FsaVwiLFxuICAgIFwiS2FsbGllXCIsXG4gICAgXCJLYW1lcm9uXCIsXG4gICAgXCJLYW1pbGxlXCIsXG4gICAgXCJLYW1yZW5cIixcbiAgICBcIkthbXJvblwiLFxuICAgIFwiS2FtcnluXCIsXG4gICAgXCJLYW5lXCIsXG4gICAgXCJLYXJhXCIsXG4gICAgXCJLYXJlZW1cIixcbiAgICBcIkthcmVsbGVcIixcbiAgICBcIkthcmVuXCIsXG4gICAgXCJLYXJpXCIsXG4gICAgXCJLYXJpYW5lXCIsXG4gICAgXCJLYXJpYW5uZVwiLFxuICAgIFwiS2FyaW5hXCIsXG4gICAgXCJLYXJpbmVcIixcbiAgICBcIkthcmxcIixcbiAgICBcIkthcmxlZVwiLFxuICAgIFwiS2FybGV5XCIsXG4gICAgXCJLYXJsaVwiLFxuICAgIFwiS2FybGllXCIsXG4gICAgXCJLYXJvbGFublwiLFxuICAgIFwiS2Fyc29uXCIsXG4gICAgXCJLYXNhbmRyYVwiLFxuICAgIFwiS2FzZXlcIixcbiAgICBcIkthc3NhbmRyYVwiLFxuICAgIFwiS2F0YXJpbmFcIixcbiAgICBcIkthdGVsaW5cIixcbiAgICBcIkthdGVseW5cIixcbiAgICBcIkthdGVseW5uXCIsXG4gICAgXCJLYXRoYXJpbmFcIixcbiAgICBcIkthdGhlcmluZVwiLFxuICAgIFwiS2F0aGVyeW5cIixcbiAgICBcIkthdGhsZWVuXCIsXG4gICAgXCJLYXRobHluXCIsXG4gICAgXCJLYXRocnluXCIsXG4gICAgXCJLYXRocnluZVwiLFxuICAgIFwiS2F0bHluXCIsXG4gICAgXCJLYXRseW5uXCIsXG4gICAgXCJLYXRyaW5hXCIsXG4gICAgXCJLYXRyaW5lXCIsXG4gICAgXCJLYXR0aWVcIixcbiAgICBcIkthdm9uXCIsXG4gICAgXCJLYXlcIixcbiAgICBcIktheWFcIixcbiAgICBcIktheWNlZVwiLFxuICAgIFwiS2F5ZGVuXCIsXG4gICAgXCJLYXlsYVwiLFxuICAgIFwiS2F5bGFoXCIsXG4gICAgXCJLYXlsZWVcIixcbiAgICBcIktheWxlaWdoXCIsXG4gICAgXCJLYXlsZXlcIixcbiAgICBcIktheWxpXCIsXG4gICAgXCJLYXlsaWVcIixcbiAgICBcIktheWxpblwiLFxuICAgIFwiS2VhZ2FuXCIsXG4gICAgXCJLZWFudVwiLFxuICAgIFwiS2VhcmFcIixcbiAgICBcIktlYXRvblwiLFxuICAgIFwiS2VlZ2FuXCIsXG4gICAgXCJLZWVsZXlcIixcbiAgICBcIktlZWx5XCIsXG4gICAgXCJLZWVuYW5cIixcbiAgICBcIktlaXJhXCIsXG4gICAgXCJLZWl0aFwiLFxuICAgIFwiS2VsbGVuXCIsXG4gICAgXCJLZWxsZXlcIixcbiAgICBcIktlbGxpXCIsXG4gICAgXCJLZWxsaWVcIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLZWxzaVwiLFxuICAgIFwiS2Vsc2llXCIsXG4gICAgXCJLZWx0b25cIixcbiAgICBcIktlbHZpblwiLFxuICAgIFwiS2VuXCIsXG4gICAgXCJLZW5kYWxsXCIsXG4gICAgXCJLZW5kcmFcIixcbiAgICBcIktlbmRyaWNrXCIsXG4gICAgXCJLZW5uYVwiLFxuICAgIFwiS2VubmVkaVwiLFxuICAgIFwiS2VubmVkeVwiLFxuICAgIFwiS2VubmV0aFwiLFxuICAgIFwiS2Vubml0aFwiLFxuICAgIFwiS2VubnlcIixcbiAgICBcIktlbnRvblwiLFxuICAgIFwiS2VueWFcIixcbiAgICBcIktlbnlhdHRhXCIsXG4gICAgXCJLZW55b25cIixcbiAgICBcIktlb25cIixcbiAgICBcIktlc2hhdW5cIixcbiAgICBcIktlc2hhd25cIixcbiAgICBcIktldmVuXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiS2V2b25cIixcbiAgICBcIktleW9uXCIsXG4gICAgXCJLZXlzaGF3blwiLFxuICAgIFwiS2hhbGlkXCIsXG4gICAgXCJLaGFsaWxcIixcbiAgICBcIktpYW5cIixcbiAgICBcIktpYW5hXCIsXG4gICAgXCJLaWFubmFcIixcbiAgICBcIktpYXJhXCIsXG4gICAgXCJLaWFycmFcIixcbiAgICBcIktpZWxcIixcbiAgICBcIktpZXJhXCIsXG4gICAgXCJLaWVyYW5cIixcbiAgICBcIktpbGV5XCIsXG4gICAgXCJLaW1cIixcbiAgICBcIktpbWJlcmx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJLaXBcIixcbiAgICBcIktpcmFcIixcbiAgICBcIktpcmtcIixcbiAgICBcIktpcnN0ZW5cIixcbiAgICBcIktpcnN0aW5cIixcbiAgICBcIktpdHR5XCIsXG4gICAgXCJLb2JlXCIsXG4gICAgXCJLb2J5XCIsXG4gICAgXCJLb2R5XCIsXG4gICAgXCJLb2xieVwiLFxuICAgIFwiS29sZVwiLFxuICAgIFwiS29yYmluXCIsXG4gICAgXCJLb3JleVwiLFxuICAgIFwiS29yeVwiLFxuICAgIFwiS3JhaWdcIixcbiAgICBcIktyaXNcIixcbiAgICBcIktyaXN0YVwiLFxuICAgIFwiS3Jpc3RpYW5cIixcbiAgICBcIktyaXN0aW5cIixcbiAgICBcIktyaXN0aW5hXCIsXG4gICAgXCJLcmlzdG9mZXJcIixcbiAgICBcIktyaXN0b2ZmZXJcIixcbiAgICBcIktyaXN0b3BoZXJcIixcbiAgICBcIktyaXN0eVwiLFxuICAgIFwiS3J5c3RhbFwiLFxuICAgIFwiS3J5c3RlbFwiLFxuICAgIFwiS3J5c3RpbmFcIixcbiAgICBcIkt1cnRcIixcbiAgICBcIkt1cnRpc1wiLFxuICAgIFwiS3lsYVwiLFxuICAgIFwiS3lsZVwiLFxuICAgIFwiS3lsZWVcIixcbiAgICBcIkt5bGVpZ2hcIixcbiAgICBcIkt5bGVyXCIsXG4gICAgXCJLeWxpZVwiLFxuICAgIFwiS3lyYVwiLFxuICAgIFwiTGFjZXlcIixcbiAgICBcIkxhY3lcIixcbiAgICBcIkxhZGFyaXVzXCIsXG4gICAgXCJMYWZheWV0dGVcIixcbiAgICBcIkxhaWxhXCIsXG4gICAgXCJMYWlzaGFcIixcbiAgICBcIkxhbWFyXCIsXG4gICAgXCJMYW1iZXJ0XCIsXG4gICAgXCJMYW1vbnRcIixcbiAgICBcIkxhbmNlXCIsXG4gICAgXCJMYW5kZW5cIixcbiAgICBcIkxhbmVcIixcbiAgICBcIkxhbmV5XCIsXG4gICAgXCJMYXJpc3NhXCIsXG4gICAgXCJMYXJvblwiLFxuICAgIFwiTGFycnlcIixcbiAgICBcIkxhcnVlXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGF1cmVsXCIsXG4gICAgXCJMYXVyZW5cIixcbiAgICBcIkxhdXJlbmNlXCIsXG4gICAgXCJMYXVyZXR0YVwiLFxuICAgIFwiTGF1cmlhbmVcIixcbiAgICBcIkxhdXJpYW5uZVwiLFxuICAgIFwiTGF1cmllXCIsXG4gICAgXCJMYXVyaW5lXCIsXG4gICAgXCJMYXVyeVwiLFxuICAgIFwiTGF1cnluXCIsXG4gICAgXCJMYXZhZGFcIixcbiAgICBcIkxhdmVyblwiLFxuICAgIFwiTGF2ZXJuYVwiLFxuICAgIFwiTGF2ZXJuZVwiLFxuICAgIFwiTGF2aW5hXCIsXG4gICAgXCJMYXZpbmlhXCIsXG4gICAgXCJMYXZvblwiLFxuICAgIFwiTGF2b25uZVwiLFxuICAgIFwiTGF3cmVuY2VcIixcbiAgICBcIkxhd3NvblwiLFxuICAgIFwiTGF5bGFcIixcbiAgICBcIkxheW5lXCIsXG4gICAgXCJMYXphcm9cIixcbiAgICBcIkxlYVwiLFxuICAgIFwiTGVhbm5cIixcbiAgICBcIkxlYW5uYVwiLFxuICAgIFwiTGVhbm5lXCIsXG4gICAgXCJMZWF0aGFcIixcbiAgICBcIkxlZGFcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiTGVpZlwiLFxuICAgIFwiTGVpbGFcIixcbiAgICBcIkxlaWxhbmlcIixcbiAgICBcIkxlbGFcIixcbiAgICBcIkxlbGFoXCIsXG4gICAgXCJMZWxhbmRcIixcbiAgICBcIkxlbGlhXCIsXG4gICAgXCJMZW1waVwiLFxuICAgIFwiTGVtdWVsXCIsXG4gICAgXCJMZW5uYVwiLFxuICAgIFwiTGVubmllXCIsXG4gICAgXCJMZW5ueVwiLFxuICAgIFwiTGVub3JhXCIsXG4gICAgXCJMZW5vcmVcIixcbiAgICBcIkxlb1wiLFxuICAgIFwiTGVvbGFcIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25hcmRvXCIsXG4gICAgXCJMZW9uZVwiLFxuICAgIFwiTGVvbmVsXCIsXG4gICAgXCJMZW9uaWVcIixcbiAgICBcIkxlb25vclwiLFxuICAgIFwiTGVvbm9yYVwiLFxuICAgIFwiTGVvcG9sZFwiLFxuICAgIFwiTGVvcG9sZG9cIixcbiAgICBcIkxlb3JhXCIsXG4gICAgXCJMZXJhXCIsXG4gICAgXCJMZXNsZXlcIixcbiAgICBcIkxlc2xpZVwiLFxuICAgIFwiTGVzbHlcIixcbiAgICBcIkxlc3NpZVwiLFxuICAgIFwiTGVzdGVyXCIsXG4gICAgXCJMZXRhXCIsXG4gICAgXCJMZXRoYVwiLFxuICAgIFwiTGV0aXRpYVwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTGV3XCIsXG4gICAgXCJMZXdpc1wiLFxuICAgIFwiTGV4aVwiLFxuICAgIFwiTGV4aWVcIixcbiAgICBcIkxleHVzXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkxpYW5hXCIsXG4gICAgXCJMaWJiaWVcIixcbiAgICBcIkxpYmJ5XCIsXG4gICAgXCJMaWxhXCIsXG4gICAgXCJMaWxpYW5cIixcbiAgICBcIkxpbGlhbmFcIixcbiAgICBcIkxpbGlhbmVcIixcbiAgICBcIkxpbGxhXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJMaWxsaWFuYVwiLFxuICAgIFwiTGlsbGllXCIsXG4gICAgXCJMaWxseVwiLFxuICAgIFwiTGlseVwiLFxuICAgIFwiTGlseWFuXCIsXG4gICAgXCJMaW5hXCIsXG4gICAgXCJMaW5jb2xuXCIsXG4gICAgXCJMaW5kYVwiLFxuICAgIFwiTGluZHNheVwiLFxuICAgIFwiTGluZHNleVwiLFxuICAgIFwiTGlubmVhXCIsXG4gICAgXCJMaW5uaWVcIixcbiAgICBcIkxpbndvb2RcIixcbiAgICBcIkxpb25lbFwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiTGlzYW5kcm9cIixcbiAgICBcIkxpc2V0dGVcIixcbiAgICBcIkxpdHp5XCIsXG4gICAgXCJMaXphXCIsXG4gICAgXCJMaXpldGhcIixcbiAgICBcIkxpenppZVwiLFxuICAgIFwiTGxld2VsbHluXCIsXG4gICAgXCJMbG95ZFwiLFxuICAgIFwiTG9nYW5cIixcbiAgICBcIkxvaXNcIixcbiAgICBcIkxvbGFcIixcbiAgICBcIkxvbGl0YVwiLFxuICAgIFwiTG9tYVwiLFxuICAgIFwiTG9uXCIsXG4gICAgXCJMb25kb25cIixcbiAgICBcIkxvbmllXCIsXG4gICAgXCJMb25uaWVcIixcbiAgICBcIkxvbm55XCIsXG4gICAgXCJMb256b1wiLFxuICAgIFwiTG9yYVwiLFxuICAgIFwiTG9yYWluZVwiLFxuICAgIFwiTG9yZW5cIixcbiAgICBcIkxvcmVuYVwiLFxuICAgIFwiTG9yZW56XCIsXG4gICAgXCJMb3JlbnphXCIsXG4gICAgXCJMb3JlbnpvXCIsXG4gICAgXCJMb3JpXCIsXG4gICAgXCJMb3JpbmVcIixcbiAgICBcIkxvcm5hXCIsXG4gICAgXCJMb3R0aWVcIixcbiAgICBcIkxvdVwiLFxuICAgIFwiTG91aWVcIixcbiAgICBcIkxvdWlzYVwiLFxuICAgIFwiTG91cmRlc1wiLFxuICAgIFwiTG91dmVuaWFcIixcbiAgICBcIkxvd2VsbFwiLFxuICAgIFwiTG95XCIsXG4gICAgXCJMb3lhbFwiLFxuICAgIFwiTG95Y2VcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMdWNpYW5vXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiTHVjaWVubmVcIixcbiAgICBcIkx1Y2lsZVwiLFxuICAgIFwiTHVjaW5kYVwiLFxuICAgIFwiTHVjaW9cIixcbiAgICBcIkx1Y2lvdXNcIixcbiAgICBcIkx1Y2l1c1wiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiTHVkaWVcIixcbiAgICBcIkx1ZHdpZ1wiLFxuICAgIFwiTHVlXCIsXG4gICAgXCJMdWVsbGFcIixcbiAgICBcIkx1aWdpXCIsXG4gICAgXCJMdWlzXCIsXG4gICAgXCJMdWlzYVwiLFxuICAgIFwiTHVrYXNcIixcbiAgICBcIkx1bGFcIixcbiAgICBcIkx1bHVcIixcbiAgICBcIkx1bmFcIixcbiAgICBcIkx1cGVcIixcbiAgICBcIkx1cmFcIixcbiAgICBcIkx1cmxpbmVcIixcbiAgICBcIkx1dGhlclwiLFxuICAgIFwiTHV6XCIsXG4gICAgXCJMeWRhXCIsXG4gICAgXCJMeWRpYVwiLFxuICAgIFwiTHlsYVwiLFxuICAgIFwiTHlublwiLFxuICAgIFwiTHlyaWNcIixcbiAgICBcIkx5c2FubmVcIixcbiAgICBcIk1hYmVsXCIsXG4gICAgXCJNYWJlbGxlXCIsXG4gICAgXCJNYWJsZVwiLFxuICAgIFwiTWFjXCIsXG4gICAgXCJNYWNleVwiLFxuICAgIFwiTWFjaVwiLFxuICAgIFwiTWFjaWVcIixcbiAgICBcIk1hY2tcIixcbiAgICBcIk1hY2tlbnppZVwiLFxuICAgIFwiTWFjeVwiLFxuICAgIFwiTWFkYWxpbmVcIixcbiAgICBcIk1hZGFseW5cIixcbiAgICBcIk1hZGRpc29uXCIsXG4gICAgXCJNYWRlbGluZVwiLFxuICAgIFwiTWFkZWx5blwiLFxuICAgIFwiTWFkZWx5bm5cIixcbiAgICBcIk1hZGdlXCIsXG4gICAgXCJNYWRpZVwiLFxuICAgIFwiTWFkaWx5blwiLFxuICAgIFwiTWFkaXNlblwiLFxuICAgIFwiTWFkaXNvblwiLFxuICAgIFwiTWFkaXN5blwiLFxuICAgIFwiTWFkb25uYVwiLFxuICAgIFwiTWFkeXNvblwiLFxuICAgIFwiTWFlXCIsXG4gICAgXCJNYWVnYW5cIixcbiAgICBcIk1hZXZlXCIsXG4gICAgXCJNYWZhbGRhXCIsXG4gICAgXCJNYWdhbGlcIixcbiAgICBcIk1hZ2RhbGVuXCIsXG4gICAgXCJNYWdkYWxlbmFcIixcbiAgICBcIk1hZ2dpZVwiLFxuICAgIFwiTWFnbm9saWFcIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFpYVwiLFxuICAgIFwiTWFpZGFcIixcbiAgICBcIk1haXlhXCIsXG4gICAgXCJNYWpvclwiLFxuICAgIFwiTWFrYXlsYVwiLFxuICAgIFwiTWFrZW5uYVwiLFxuICAgIFwiTWFrZW56aWVcIixcbiAgICBcIk1hbGFjaGlcIixcbiAgICBcIk1hbGNvbG1cIixcbiAgICBcIk1hbGlrYVwiLFxuICAgIFwiTWFsaW5kYVwiLFxuICAgIFwiTWFsbGllXCIsXG4gICAgXCJNYWxsb3J5XCIsXG4gICAgXCJNYWx2aW5hXCIsXG4gICAgXCJNYW5keVwiLFxuICAgIFwiTWFubGV5XCIsXG4gICAgXCJNYW51ZWxcIixcbiAgICBcIk1hbnVlbGFcIixcbiAgICBcIk1hcmFcIixcbiAgICBcIk1hcmNcIixcbiAgICBcIk1hcmNlbFwiLFxuICAgIFwiTWFyY2VsaW5hXCIsXG4gICAgXCJNYXJjZWxpbm9cIixcbiAgICBcIk1hcmNlbGxhXCIsXG4gICAgXCJNYXJjZWxsZVwiLFxuICAgIFwiTWFyY2VsbHVzXCIsXG4gICAgXCJNYXJjZWxvXCIsXG4gICAgXCJNYXJjaWFcIixcbiAgICBcIk1hcmNvXCIsXG4gICAgXCJNYXJjb3NcIixcbiAgICBcIk1hcmN1c1wiLFxuICAgIFwiTWFyZ2FyZXRcIixcbiAgICBcIk1hcmdhcmV0ZVwiLFxuICAgIFwiTWFyZ2FyZXR0XCIsXG4gICAgXCJNYXJnYXJldHRhXCIsXG4gICAgXCJNYXJnYXJldHRlXCIsXG4gICAgXCJNYXJnYXJpdGFcIixcbiAgICBcIk1hcmdlXCIsXG4gICAgXCJNYXJnaWVcIixcbiAgICBcIk1hcmdvdFwiLFxuICAgIFwiTWFyZ3JldFwiLFxuICAgIFwiTWFyZ3Vlcml0ZVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhaFwiLFxuICAgIFwiTWFyaWFtXCIsXG4gICAgXCJNYXJpYW5cIixcbiAgICBcIk1hcmlhbmFcIixcbiAgICBcIk1hcmlhbmVcIixcbiAgICBcIk1hcmlhbm5hXCIsXG4gICAgXCJNYXJpYW5uZVwiLFxuICAgIFwiTWFyaWFub1wiLFxuICAgIFwiTWFyaWJlbFwiLFxuICAgIFwiTWFyaWVcIixcbiAgICBcIk1hcmllbGFcIixcbiAgICBcIk1hcmllbGxlXCIsXG4gICAgXCJNYXJpZXR0YVwiLFxuICAgIFwiTWFyaWxpZVwiLFxuICAgIFwiTWFyaWxvdVwiLFxuICAgIFwiTWFyaWx5bmVcIixcbiAgICBcIk1hcmluYVwiLFxuICAgIFwiTWFyaW9cIixcbiAgICBcIk1hcmlvblwiLFxuICAgIFwiTWFyaXNhXCIsXG4gICAgXCJNYXJpc29sXCIsXG4gICAgXCJNYXJpdHphXCIsXG4gICAgXCJNYXJqb2xhaW5lXCIsXG4gICAgXCJNYXJqb3JpZVwiLFxuICAgIFwiTWFyam9yeVwiLFxuICAgIFwiTWFya1wiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXJsZWVcIixcbiAgICBcIk1hcmxlblwiLFxuICAgIFwiTWFybGVuZVwiLFxuICAgIFwiTWFybGV5XCIsXG4gICAgXCJNYXJsaW5cIixcbiAgICBcIk1hcmxvblwiLFxuICAgIFwiTWFycXVlc1wiLFxuICAgIFwiTWFycXVpc1wiLFxuICAgIFwiTWFycXVpc2VcIixcbiAgICBcIk1hcnNoYWxsXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNYXJ0aW5hXCIsXG4gICAgXCJNYXJ0aW5lXCIsXG4gICAgXCJNYXJ0eVwiLFxuICAgIFwiTWFydmluXCIsXG4gICAgXCJNYXJ5XCIsXG4gICAgXCJNYXJ5YW1cIixcbiAgICBcIk1hcnlqYW5lXCIsXG4gICAgXCJNYXJ5c2VcIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWF0aGV3XCIsXG4gICAgXCJNYXRoaWFzXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWF0aWxkYVwiLFxuICAgIFwiTWF0aWxkZVwiLFxuICAgIFwiTWF0dFwiLFxuICAgIFwiTWF0dGVvXCIsXG4gICAgXCJNYXR0aWVcIixcbiAgICBcIk1hdWRcIixcbiAgICBcIk1hdWRlXCIsXG4gICAgXCJNYXVkaWVcIixcbiAgICBcIk1hdXJlZW5cIixcbiAgICBcIk1hdXJpY2VcIixcbiAgICBcIk1hdXJpY2lvXCIsXG4gICAgXCJNYXVyaW5lXCIsXG4gICAgXCJNYXZlcmlja1wiLFxuICAgIFwiTWF2aXNcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWF4aWVcIixcbiAgICBcIk1heGltZVwiLFxuICAgIFwiTWF4aW1pbGlhblwiLFxuICAgIFwiTWF4aW1pbGxpYVwiLFxuICAgIFwiTWF4aW1pbGxpYW5cIixcbiAgICBcIk1heGltb1wiLFxuICAgIFwiTWF4aW11c1wiLFxuICAgIFwiTWF4aW5lXCIsXG4gICAgXCJNYXh3ZWxsXCIsXG4gICAgXCJNYXlcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heWJlbGxcIixcbiAgICBcIk1heWJlbGxlXCIsXG4gICAgXCJNYXllXCIsXG4gICAgXCJNYXltaWVcIixcbiAgICBcIk1heW5hcmRcIixcbiAgICBcIk1heXJhXCIsXG4gICAgXCJNYXppZVwiLFxuICAgIFwiTWNrYXlsYVwiLFxuICAgIFwiTWNrZW5uYVwiLFxuICAgIFwiTWNrZW56aWVcIixcbiAgICBcIk1lYWdhblwiLFxuICAgIFwiTWVhZ2hhblwiLFxuICAgIFwiTWVkYVwiLFxuICAgIFwiTWVnYW5lXCIsXG4gICAgXCJNZWdnaWVcIixcbiAgICBcIk1lZ2hhblwiLFxuICAgIFwiTWVraGlcIixcbiAgICBcIk1lbGFueVwiLFxuICAgIFwiTWVsYmFcIixcbiAgICBcIk1lbGlzYVwiLFxuICAgIFwiTWVsaXNzYVwiLFxuICAgIFwiTWVsbGllXCIsXG4gICAgXCJNZWxvZHlcIixcbiAgICBcIk1lbHZpblwiLFxuICAgIFwiTWVsdmluYVwiLFxuICAgIFwiTWVseW5hXCIsXG4gICAgXCJNZWx5c3NhXCIsXG4gICAgXCJNZXJjZWRlc1wiLFxuICAgIFwiTWVyZWRpdGhcIixcbiAgICBcIk1lcmxcIixcbiAgICBcIk1lcmxlXCIsXG4gICAgXCJNZXJsaW5cIixcbiAgICBcIk1lcnJpdHRcIixcbiAgICBcIk1lcnRpZVwiLFxuICAgIFwiTWVydmluXCIsXG4gICAgXCJNZXRhXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIk1pY2FlbGFcIixcbiAgICBcIk1pY2FoXCIsXG4gICAgXCJNaWNoYWVsXCIsXG4gICAgXCJNaWNoYWVsYVwiLFxuICAgIFwiTWljaGFsZVwiLFxuICAgIFwiTWljaGVhbFwiLFxuICAgIFwiTWljaGVsXCIsXG4gICAgXCJNaWNoZWxlXCIsXG4gICAgXCJNaWNoZWxsZVwiLFxuICAgIFwiTWlndWVsXCIsXG4gICAgXCJNaWtheWxhXCIsXG4gICAgXCJNaWtlXCIsXG4gICAgXCJNaWtlbFwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIk1pbGVzXCIsXG4gICAgXCJNaWxmb3JkXCIsXG4gICAgXCJNaWxsZXJcIixcbiAgICBcIk1pbGxpZVwiLFxuICAgIFwiTWlsb1wiLFxuICAgIFwiTWlsdG9uXCIsXG4gICAgXCJNaW5hXCIsXG4gICAgXCJNaW5lcnZhXCIsXG4gICAgXCJNaW5uaWVcIixcbiAgICBcIk1pcmFjbGVcIixcbiAgICBcIk1pcmVpbGxlXCIsXG4gICAgXCJNaXJleWFcIixcbiAgICBcIk1pc2FlbFwiLFxuICAgIFwiTWlzc291cmlcIixcbiAgICBcIk1pc3R5XCIsXG4gICAgXCJNaXRjaGVsXCIsXG4gICAgXCJNaXRjaGVsbFwiLFxuICAgIFwiTWl0dGllXCIsXG4gICAgXCJNb2Rlc3RhXCIsXG4gICAgXCJNb2Rlc3RvXCIsXG4gICAgXCJNb2hhbWVkXCIsXG4gICAgXCJNb2hhbW1hZFwiLFxuICAgIFwiTW9oYW1tZWRcIixcbiAgICBcIk1vaXNlc1wiLFxuICAgIFwiTW9sbGllXCIsXG4gICAgXCJNb2xseVwiLFxuICAgIFwiTW9uYVwiLFxuICAgIFwiTW9uaWNhXCIsXG4gICAgXCJNb25pcXVlXCIsXG4gICAgXCJNb25yb2VcIixcbiAgICBcIk1vbnNlcnJhdFwiLFxuICAgIFwiTW9uc2VycmF0ZVwiLFxuICAgIFwiTW9udGFuYVwiLFxuICAgIFwiTW9udGVcIixcbiAgICBcIk1vbnR5XCIsXG4gICAgXCJNb3JnYW5cIixcbiAgICBcIk1vcmlhaFwiLFxuICAgIFwiTW9ycmlzXCIsXG4gICAgXCJNb3J0aW1lclwiLFxuICAgIFwiTW9ydG9uXCIsXG4gICAgXCJNb3NlXCIsXG4gICAgXCJNb3Nlc1wiLFxuICAgIFwiTW9zaGVcIixcbiAgICBcIk1vc3NpZVwiLFxuICAgIFwiTW96ZWxsXCIsXG4gICAgXCJNb3plbGxlXCIsXG4gICAgXCJNdWhhbW1hZFwiLFxuICAgIFwiTXVyaWVsXCIsXG4gICAgXCJNdXJsXCIsXG4gICAgXCJNdXJwaHlcIixcbiAgICBcIk11cnJheVwiLFxuICAgIFwiTXVzdGFmYVwiLFxuICAgIFwiTXlhXCIsXG4gICAgXCJNeWFoXCIsXG4gICAgXCJNeWxlbmVcIixcbiAgICBcIk15bGVzXCIsXG4gICAgXCJNeXJhXCIsXG4gICAgXCJNeXJpYW1cIixcbiAgICBcIk15cmxcIixcbiAgICBcIk15cm5hXCIsXG4gICAgXCJNeXJvblwiLFxuICAgIFwiTXlydGljZVwiLFxuICAgIFwiTXlydGllXCIsXG4gICAgXCJNeXJ0aXNcIixcbiAgICBcIk15cnRsZVwiLFxuICAgIFwiTmFkaWFcIixcbiAgICBcIk5ha2lhXCIsXG4gICAgXCJOYW1lXCIsXG4gICAgXCJOYW5uaWVcIixcbiAgICBcIk5hb21pXCIsXG4gICAgXCJOYW9taWVcIixcbiAgICBcIk5hcG9sZW9uXCIsXG4gICAgXCJOYXJjaXNvXCIsXG4gICAgXCJOYXNoXCIsXG4gICAgXCJOYXNpclwiLFxuICAgIFwiTmF0XCIsXG4gICAgXCJOYXRhbGlhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJOYXRhc2hhXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIk5hdGhhbmFlbFwiLFxuICAgIFwiTmF0aGFuaWFsXCIsXG4gICAgXCJOYXRoYW5pZWxcIixcbiAgICBcIk5hdGhlblwiLFxuICAgIFwiTmF5ZWxpXCIsXG4gICAgXCJOZWFsXCIsXG4gICAgXCJOZWRcIixcbiAgICBcIk5lZHJhXCIsXG4gICAgXCJOZWhhXCIsXG4gICAgXCJOZWlsXCIsXG4gICAgXCJOZWxkYVwiLFxuICAgIFwiTmVsbGFcIixcbiAgICBcIk5lbGxlXCIsXG4gICAgXCJOZWxsaWVcIixcbiAgICBcIk5lbHNcIixcbiAgICBcIk5lbHNvblwiLFxuICAgIFwiTmVvbWFcIixcbiAgICBcIk5lc3RvclwiLFxuICAgIFwiTmV0dGllXCIsXG4gICAgXCJOZXZhXCIsXG4gICAgXCJOZXdlbGxcIixcbiAgICBcIk5ld3RvblwiLFxuICAgIFwiTmlhXCIsXG4gICAgXCJOaWNob2xhc1wiLFxuICAgIFwiTmljaG9sYXVzXCIsXG4gICAgXCJOaWNob2xlXCIsXG4gICAgXCJOaWNrXCIsXG4gICAgXCJOaWNrbGF1c1wiLFxuICAgIFwiTmlja29sYXNcIixcbiAgICBcIk5pY29cIixcbiAgICBcIk5pY29sYVwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiTmljb2xlXCIsXG4gICAgXCJOaWNvbGV0dGVcIixcbiAgICBcIk5pZ2VsXCIsXG4gICAgXCJOaWtpdGFcIixcbiAgICBcIk5pa2tpXCIsXG4gICAgXCJOaWtrb1wiLFxuICAgIFwiTmlrb1wiLFxuICAgIFwiTmlrb2xhc1wiLFxuICAgIFwiTmlsc1wiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTm9ibGVcIixcbiAgICBcIk5vZVwiLFxuICAgIFwiTm9lbFwiLFxuICAgIFwiTm9lbGlhXCIsXG4gICAgXCJOb2VtaVwiLFxuICAgIFwiTm9lbWllXCIsXG4gICAgXCJOb2VteVwiLFxuICAgIFwiTm9sYVwiLFxuICAgIFwiTm9sYW5cIixcbiAgICBcIk5vbmFcIixcbiAgICBcIk5vcmFcIixcbiAgICBcIk5vcmJlcnRcIixcbiAgICBcIk5vcmJlcnRvXCIsXG4gICAgXCJOb3JlbmVcIixcbiAgICBcIk5vcm1hXCIsXG4gICAgXCJOb3JyaXNcIixcbiAgICBcIk5vcnZhbFwiLFxuICAgIFwiTm9yd29vZFwiLFxuICAgIFwiTm92YVwiLFxuICAgIFwiTm92ZWxsYVwiLFxuICAgIFwiTnlhXCIsXG4gICAgXCJOeWFoXCIsXG4gICAgXCJOeWFzaWFcIixcbiAgICBcIk9iaWVcIixcbiAgICBcIk9jZWFuZVwiLFxuICAgIFwiT2NpZVwiLFxuICAgIFwiT2N0YXZpYVwiLFxuICAgIFwiT2RhXCIsXG4gICAgXCJPZGVsbFwiLFxuICAgIFwiT2Rlc3NhXCIsXG4gICAgXCJPZGllXCIsXG4gICAgXCJPZmVsaWFcIixcbiAgICBcIk9rZXlcIixcbiAgICBcIk9sYVwiLFxuICAgIFwiT2xhZlwiLFxuICAgIFwiT2xlXCIsXG4gICAgXCJPbGVuXCIsXG4gICAgXCJPbGV0YVwiLFxuICAgIFwiT2xnYVwiLFxuICAgIFwiT2xpblwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJPbGxpZVwiLFxuICAgIFwiT21hXCIsXG4gICAgXCJPbWFyaVwiLFxuICAgIFwiT21lclwiLFxuICAgIFwiT25hXCIsXG4gICAgXCJPbmllXCIsXG4gICAgXCJPcGFsXCIsXG4gICAgXCJPcGhlbGlhXCIsXG4gICAgXCJPcmFcIixcbiAgICBcIk9yYWxcIixcbiAgICBcIk9yYW5cIixcbiAgICBcIk9yZW5cIixcbiAgICBcIk9yaWVcIixcbiAgICBcIk9yaW5cIixcbiAgICBcIk9yaW9uXCIsXG4gICAgXCJPcmxhbmRcIixcbiAgICBcIk9ybGFuZG9cIixcbiAgICBcIk9ybG9cIixcbiAgICBcIk9ycGhhXCIsXG4gICAgXCJPcnJpblwiLFxuICAgIFwiT3J2YWxcIixcbiAgICBcIk9ydmlsbGVcIixcbiAgICBcIk9zYmFsZG9cIixcbiAgICBcIk9zYm9ybmVcIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJPc3ZhbGRvXCIsXG4gICAgXCJPc3dhbGRcIixcbiAgICBcIk9zd2FsZG9cIixcbiAgICBcIk90aGFcIixcbiAgICBcIk90aG9cIixcbiAgICBcIk90aWxpYVwiLFxuICAgIFwiT3Rpc1wiLFxuICAgIFwiT3R0aWxpZVwiLFxuICAgIFwiT3R0aXNcIixcbiAgICBcIk90dG9cIixcbiAgICBcIk92YVwiLFxuICAgIFwiT3dlblwiLFxuICAgIFwiT3plbGxhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGFpZ2VcIixcbiAgICBcIlBhbG1hXCIsXG4gICAgXCJQYW1lbGFcIixcbiAgICBcIlBhbnN5XCIsXG4gICAgXCJQYW9sb1wiLFxuICAgIFwiUGFyaXNcIixcbiAgICBcIlBhcmtlclwiLFxuICAgIFwiUGFzY2FsZVwiLFxuICAgIFwiUGFzcXVhbGVcIixcbiAgICBcIlBhdFwiLFxuICAgIFwiUGF0aWVuY2VcIixcbiAgICBcIlBhdHJpY2lhXCIsXG4gICAgXCJQYXRyaWNrXCIsXG4gICAgXCJQYXRzeVwiLFxuICAgIFwiUGF0dGllXCIsXG4gICAgXCJQYXVsXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGF1bGluZVwiLFxuICAgIFwiUGF4dG9uXCIsXG4gICAgXCJQYXl0b25cIixcbiAgICBcIlBlYXJsXCIsXG4gICAgXCJQZWFybGllXCIsXG4gICAgXCJQZWFybGluZVwiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlBlZ2dpZVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBlcmNpdmFsXCIsXG4gICAgXCJQZXJjeVwiLFxuICAgIFwiUGVycnlcIixcbiAgICBcIlBldGVcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQZXRyYVwiLFxuICAgIFwiUGV5dG9uXCIsXG4gICAgXCJQaGlsaXBcIixcbiAgICBcIlBob2ViZVwiLFxuICAgIFwiUGh5bGxpc1wiLFxuICAgIFwiUGllcmNlXCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlBpZXRyb1wiLFxuICAgIFwiUGlua1wiLFxuICAgIFwiUGlua2llXCIsXG4gICAgXCJQaXBlclwiLFxuICAgIFwiUG9sbHlcIixcbiAgICBcIlBvcnRlclwiLFxuICAgIFwiUHJlY2lvdXNcIixcbiAgICBcIlByZXNsZXlcIixcbiAgICBcIlByZXN0b25cIixcbiAgICBcIlByaWNlXCIsXG4gICAgXCJQcmluY2VcIixcbiAgICBcIlByaW5jZXNzXCIsXG4gICAgXCJQcmlzY2lsbGFcIixcbiAgICBcIlByb3ZpZGVuY2lcIixcbiAgICBcIlBydWRlbmNlXCIsXG4gICAgXCJRdWVlblwiLFxuICAgIFwiUXVlZW5pZVwiLFxuICAgIFwiUXVlbnRpblwiLFxuICAgIFwiUXVpbmN5XCIsXG4gICAgXCJRdWlublwiLFxuICAgIFwiUXVpbnRlblwiLFxuICAgIFwiUXVpbnRvblwiLFxuICAgIFwiUmFjaGFlbFwiLFxuICAgIFwiUmFjaGVsXCIsXG4gICAgXCJSYWNoZWxsZVwiLFxuICAgIFwiUmFlXCIsXG4gICAgXCJSYWVnYW5cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFmYWVsYVwiLFxuICAgIFwiUmFoZWVtXCIsXG4gICAgXCJSYWhzYWFuXCIsXG4gICAgXCJSYWh1bFwiLFxuICAgIFwiUmFpbmFcIixcbiAgICBcIlJhbGVpZ2hcIixcbiAgICBcIlJhbHBoXCIsXG4gICAgXCJSYW1pcm9cIixcbiAgICBcIlJhbW9uXCIsXG4gICAgXCJSYW1vbmFcIixcbiAgICBcIlJhbmRhbFwiLFxuICAgIFwiUmFuZGFsbFwiLFxuICAgIFwiUmFuZGlcIixcbiAgICBcIlJhbmR5XCIsXG4gICAgXCJSYW5zb21cIixcbiAgICBcIlJhb3VsXCIsXG4gICAgXCJSYXBoYWVsXCIsXG4gICAgXCJSYXBoYWVsbGVcIixcbiAgICBcIlJhcXVlbFwiLFxuICAgIFwiUmFzaGFkXCIsXG4gICAgXCJSYXNoYXduXCIsXG4gICAgXCJSYXNoZWVkXCIsXG4gICAgXCJSYXVsXCIsXG4gICAgXCJSYXZlblwiLFxuICAgIFwiUmF5XCIsXG4gICAgXCJSYXltb25kXCIsXG4gICAgXCJSYXltdW5kb1wiLFxuICAgIFwiUmVhZ2FuXCIsXG4gICAgXCJSZWFubmFcIixcbiAgICBcIlJlYmFcIixcbiAgICBcIlJlYmVjYVwiLFxuICAgIFwiUmViZWNjYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSZWJla2FoXCIsXG4gICAgXCJSZWVjZVwiLFxuICAgIFwiUmVlZFwiLFxuICAgIFwiUmVlc2VcIixcbiAgICBcIlJlZ2FuXCIsXG4gICAgXCJSZWdnaWVcIixcbiAgICBcIlJlZ2luYWxkXCIsXG4gICAgXCJSZWlkXCIsXG4gICAgXCJSZWlsbHlcIixcbiAgICBcIlJlaW5hXCIsXG4gICAgXCJSZWluaG9sZFwiLFxuICAgIFwiUmVtaW5ndG9uXCIsXG4gICAgXCJSZW5lXCIsXG4gICAgXCJSZW5lZVwiLFxuICAgIFwiUmVzc2llXCIsXG4gICAgXCJSZXRhXCIsXG4gICAgXCJSZXRoYVwiLFxuICAgIFwiUmV0dGFcIixcbiAgICBcIlJldWJlblwiLFxuICAgIFwiUmV2YVwiLFxuICAgIFwiUmV4XCIsXG4gICAgXCJSZXlcIixcbiAgICBcIlJleWVzXCIsXG4gICAgXCJSZXltdW5kb1wiLFxuICAgIFwiUmV5bmFcIixcbiAgICBcIlJleW5vbGRcIixcbiAgICBcIlJoZWFcIixcbiAgICBcIlJoZXR0XCIsXG4gICAgXCJSaGlhbm5hXCIsXG4gICAgXCJSaGlhbm5vblwiLFxuICAgIFwiUmhvZGFcIixcbiAgICBcIlJpY2FyZG9cIixcbiAgICBcIlJpY2hhcmRcIixcbiAgICBcIlJpY2hpZVwiLFxuICAgIFwiUmljaG1vbmRcIixcbiAgICBcIlJpY2tcIixcbiAgICBcIlJpY2tleVwiLFxuICAgIFwiUmlja2llXCIsXG4gICAgXCJSaWNreVwiLFxuICAgIFwiUmljb1wiLFxuICAgIFwiUmlnb2JlcnRvXCIsXG4gICAgXCJSaWxleVwiLFxuICAgIFwiUml0YVwiLFxuICAgIFwiUml2ZXJcIixcbiAgICBcIlJvYmJcIixcbiAgICBcIlJvYmJpZVwiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2JlcnRhXCIsXG4gICAgXCJSb2JlcnRvXCIsXG4gICAgXCJSb2JpblwiLFxuICAgIFwiUm9ieW5cIixcbiAgICBcIlJvY2lvXCIsXG4gICAgXCJSb2NreVwiLFxuICAgIFwiUm9kXCIsXG4gICAgXCJSb2Rlcmlja1wiLFxuICAgIFwiUm9kZ2VyXCIsXG4gICAgXCJSb2RvbGZvXCIsXG4gICAgXCJSb2RyaWNrXCIsXG4gICAgXCJSb2RyaWdvXCIsXG4gICAgXCJSb2VsXCIsXG4gICAgXCJSb2dlbGlvXCIsXG4gICAgXCJSb2dlclwiLFxuICAgIFwiUm9nZXJzXCIsXG4gICAgXCJSb2xhbmRvXCIsXG4gICAgXCJSb2xsaW5cIixcbiAgICBcIlJvbWFcIixcbiAgICBcIlJvbWFpbmVcIixcbiAgICBcIlJvbWFuXCIsXG4gICAgXCJSb25cIixcbiAgICBcIlJvbmFsZG9cIixcbiAgICBcIlJvbm55XCIsXG4gICAgXCJSb29zZXZlbHRcIixcbiAgICBcIlJvcnlcIixcbiAgICBcIlJvc2FcIixcbiAgICBcIlJvc2FsZWVcIixcbiAgICBcIlJvc2FsaWFcIixcbiAgICBcIlJvc2FsaW5kXCIsXG4gICAgXCJSb3NhbGluZGFcIixcbiAgICBcIlJvc2FseW5cIixcbiAgICBcIlJvc2Ftb25kXCIsXG4gICAgXCJSb3Nhbm5hXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJSb3Njb2VcIixcbiAgICBcIlJvc2VcIixcbiAgICBcIlJvc2VsbGFcIixcbiAgICBcIlJvc2VseW5cIixcbiAgICBcIlJvc2VtYXJpZVwiLFxuICAgIFwiUm9zZW1hcnlcIixcbiAgICBcIlJvc2VuZG9cIixcbiAgICBcIlJvc2V0dGFcIixcbiAgICBcIlJvc2llXCIsXG4gICAgXCJSb3NpbmFcIixcbiAgICBcIlJvc2x5blwiLFxuICAgIFwiUm9zc1wiLFxuICAgIFwiUm9zc2llXCIsXG4gICAgXCJSb3dhblwiLFxuICAgIFwiUm93ZW5hXCIsXG4gICAgXCJSb3dsYW5kXCIsXG4gICAgXCJSb3hhbmVcIixcbiAgICBcIlJveGFubmVcIixcbiAgICBcIlJveVwiLFxuICAgIFwiUm95YWxcIixcbiAgICBcIlJveWNlXCIsXG4gICAgXCJSb3plbGxhXCIsXG4gICAgXCJSdWJlblwiLFxuICAgIFwiUnViaWVcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIlJ1YnllXCIsXG4gICAgXCJSdWRvbHBoXCIsXG4gICAgXCJSdWR5XCIsXG4gICAgXCJSdXBlcnRcIixcbiAgICBcIlJ1c3NcIixcbiAgICBcIlJ1c3NlbFwiLFxuICAgIFwiUnVzc2VsbFwiLFxuICAgIFwiUnVzdHlcIixcbiAgICBcIlJ1dGhcIixcbiAgICBcIlJ1dGhlXCIsXG4gICAgXCJSdXRoaWVcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJ5YW5uXCIsXG4gICAgXCJSeWRlclwiLFxuICAgIFwiUnlsYW5cIixcbiAgICBcIlJ5bGVlXCIsXG4gICAgXCJSeWxlaWdoXCIsXG4gICAgXCJSeWxleVwiLFxuICAgIFwiU2FiaW5hXCIsXG4gICAgXCJTYWJyaW5hXCIsXG4gICAgXCJTYWJyeW5hXCIsXG4gICAgXCJTYWRpZVwiLFxuICAgIFwiU2FkeWVcIixcbiAgICBcIlNhZ2VcIixcbiAgICBcIlNhaWdlXCIsXG4gICAgXCJTYWxsaWVcIixcbiAgICBcIlNhbGx5XCIsXG4gICAgXCJTYWxtYVwiLFxuICAgIFwiU2FsdmFkb3JcIixcbiAgICBcIlNhbHZhdG9yZVwiLFxuICAgIFwiU2FtXCIsXG4gICAgXCJTYW1hbnRhXCIsXG4gICAgXCJTYW1hbnRoYVwiLFxuICAgIFwiU2FtYXJhXCIsXG4gICAgXCJTYW1pclwiLFxuICAgIFwiU2FtbWllXCIsXG4gICAgXCJTYW1teVwiLFxuICAgIFwiU2Ftc29uXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIlNhbmRyaW5lXCIsXG4gICAgXCJTYW5keVwiLFxuICAgIFwiU2FuZm9yZFwiLFxuICAgIFwiU2FudGFcIixcbiAgICBcIlNhbnRpYWdvXCIsXG4gICAgXCJTYW50aW5hXCIsXG4gICAgXCJTYW50aW5vXCIsXG4gICAgXCJTYW50b3NcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJTYXJhaVwiLFxuICAgIFwiU2FyaW5hXCIsXG4gICAgXCJTYXNoYVwiLFxuICAgIFwiU2F1bFwiLFxuICAgIFwiU2F2YW5haFwiLFxuICAgIFwiU2F2YW5uYVwiLFxuICAgIFwiU2F2YW5uYWhcIixcbiAgICBcIlNhdmlvblwiLFxuICAgIFwiU2NhcmxldHRcIixcbiAgICBcIlNjaHV5bGVyXCIsXG4gICAgXCJTY290XCIsXG4gICAgXCJTY290dGllXCIsXG4gICAgXCJTY290dHlcIixcbiAgICBcIlNlYW11c1wiLFxuICAgIFwiU2VhblwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZWRyaWNrXCIsXG4gICAgXCJTZWxlbmFcIixcbiAgICBcIlNlbGluYVwiLFxuICAgIFwiU2VsbWVyXCIsXG4gICAgXCJTZXJlbmFcIixcbiAgICBcIlNlcmVuaXR5XCIsXG4gICAgXCJTZXRoXCIsXG4gICAgXCJTaGFkXCIsXG4gICAgXCJTaGFpbmFcIixcbiAgICBcIlNoYWtpcmFcIixcbiAgICBcIlNoYW5hXCIsXG4gICAgXCJTaGFuZVwiLFxuICAgIFwiU2hhbmVsXCIsXG4gICAgXCJTaGFuZWxsZVwiLFxuICAgIFwiU2hhbmlhXCIsXG4gICAgXCJTaGFuaWVcIixcbiAgICBcIlNoYW5peWFcIixcbiAgICBcIlNoYW5uYVwiLFxuICAgIFwiU2hhbm5vblwiLFxuICAgIFwiU2hhbm55XCIsXG4gICAgXCJTaGFub25cIixcbiAgICBcIlNoYW55XCIsXG4gICAgXCJTaGFyb25cIixcbiAgICBcIlNoYXVuXCIsXG4gICAgXCJTaGF3blwiLFxuICAgIFwiU2hhd25hXCIsXG4gICAgXCJTaGF5bGVlXCIsXG4gICAgXCJTaGF5bmFcIixcbiAgICBcIlNoYXluZVwiLFxuICAgIFwiU2hlYVwiLFxuICAgIFwiU2hlaWxhXCIsXG4gICAgXCJTaGVsZG9uXCIsXG4gICAgXCJTaGVtYXJcIixcbiAgICBcIlNoZXJpZGFuXCIsXG4gICAgXCJTaGVybWFuXCIsXG4gICAgXCJTaGVyd29vZFwiLFxuICAgIFwiU2hpcmxleVwiLFxuICAgIFwiU2h5YW5uXCIsXG4gICAgXCJTaHlhbm5lXCIsXG4gICAgXCJTaWJ5bFwiLFxuICAgIFwiU2lkXCIsXG4gICAgXCJTaWRuZXlcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiU2llcnJhXCIsXG4gICAgXCJTaWdtdW5kXCIsXG4gICAgXCJTaWdyaWRcIixcbiAgICBcIlNpZ3VyZFwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlNpbVwiLFxuICAgIFwiU2ltZW9uXCIsXG4gICAgXCJTaW1vbmVcIixcbiAgICBcIlNpbmNlcmVcIixcbiAgICBcIlNpc3RlclwiLFxuICAgIFwiU2t5ZVwiLFxuICAgIFwiU2t5bGFcIixcbiAgICBcIlNreWxhclwiLFxuICAgIFwiU29maWFcIixcbiAgICBcIlNvbGVkYWRcIixcbiAgICBcIlNvbG9uXCIsXG4gICAgXCJTb25pYVwiLFxuICAgIFwiU29ubnlcIixcbiAgICBcIlNvbnlhXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiU3BlbmNlclwiLFxuICAgIFwiU3RhY2V5XCIsXG4gICAgXCJTdGFjeVwiLFxuICAgIFwiU3RhblwiLFxuICAgIFwiU3RhbmZvcmRcIixcbiAgICBcIlN0YW5sZXlcIixcbiAgICBcIlN0YW50b25cIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiU3RlZmFuaWVcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlcGhhblwiLFxuICAgIFwiU3RlcGhhbmlhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIlN0ZXBoYW55XCIsXG4gICAgXCJTdGVwaGVuXCIsXG4gICAgXCJTdGVwaG9uXCIsXG4gICAgXCJTdGVybGluZ1wiLFxuICAgIFwiU3RldmVcIixcbiAgICBcIlN0ZXZpZVwiLFxuICAgIFwiU3Rld2FydFwiLFxuICAgIFwiU3RvbmVcIixcbiAgICBcIlN0dWFydFwiLFxuICAgIFwiU3VtbWVyXCIsXG4gICAgXCJTdW5ueVwiLFxuICAgIFwiU3VzYW5cIixcbiAgICBcIlN1c2FuYVwiLFxuICAgIFwiU3VzYW5uYVwiLFxuICAgIFwiU3VzaWVcIixcbiAgICBcIlN1emFubmVcIixcbiAgICBcIlN2ZW5cIixcbiAgICBcIlN5YmxlXCIsXG4gICAgXCJTeWRuZWVcIixcbiAgICBcIlN5ZG5leVwiLFxuICAgIFwiU3lkbmlcIixcbiAgICBcIlN5ZG5pZVwiLFxuICAgIFwiU3lsdmFuXCIsXG4gICAgXCJTeWx2ZXN0ZXJcIixcbiAgICBcIlN5bHZpYVwiLFxuICAgIFwiVGFiaXRoYVwiLFxuICAgIFwiVGFkXCIsXG4gICAgXCJUYWxpYVwiLFxuICAgIFwiVGFsb25cIixcbiAgICBcIlRhbWFyYVwiLFxuICAgIFwiVGFtaWFcIixcbiAgICBcIlRhbmlhXCIsXG4gICAgXCJUYW5uZXJcIixcbiAgICBcIlRhbnlhXCIsXG4gICAgXCJUYXJhXCIsXG4gICAgXCJUYXJ5blwiLFxuICAgIFwiVGF0ZVwiLFxuICAgIFwiVGF0dW1cIixcbiAgICBcIlRhdHlhbmFcIixcbiAgICBcIlRhdXJlYW5cIixcbiAgICBcIlRhdmFyZXNcIixcbiAgICBcIlRheWFcIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiVGVhZ2FuXCIsXG4gICAgXCJUZWRcIixcbiAgICBcIlRlbGx5XCIsXG4gICAgXCJUZXJlbmNlXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIlRlcnJhbmNlXCIsXG4gICAgXCJUZXJyZWxsXCIsXG4gICAgXCJUZXJyZW5jZVwiLFxuICAgIFwiVGVycmlsbFwiLFxuICAgIFwiVGVycnlcIixcbiAgICBcIlRlc3NcIixcbiAgICBcIlRlc3NpZVwiLFxuICAgIFwiVGV2aW5cIixcbiAgICBcIlRoYWRcIixcbiAgICBcIlRoYWRkZXVzXCIsXG4gICAgXCJUaGFsaWFcIixcbiAgICBcIlRoZWFcIixcbiAgICBcIlRoZWxtYVwiLFxuICAgIFwiVGhlb1wiLFxuICAgIFwiVGhlb2RvcmFcIixcbiAgICBcIlRoZW9kb3JlXCIsXG4gICAgXCJUaGVyZXNhXCIsXG4gICAgXCJUaGVyZXNlXCIsXG4gICAgXCJUaGVyZXNpYVwiLFxuICAgIFwiVGhlcm9uXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRob3JhXCIsXG4gICAgXCJUaHVybWFuXCIsXG4gICAgXCJUaWFcIixcbiAgICBcIlRpYW5hXCIsXG4gICAgXCJUaWFubmFcIixcbiAgICBcIlRpYXJhXCIsXG4gICAgXCJUaWVycmFcIixcbiAgICBcIlRpZmZhbnlcIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRpbW1vdGh5XCIsXG4gICAgXCJUaW1teVwiLFxuICAgIFwiVGltb3RoeVwiLFxuICAgIFwiVGluYVwiLFxuICAgIFwiVGl0b1wiLFxuICAgIFwiVGl0dXNcIixcbiAgICBcIlRvYmluXCIsXG4gICAgXCJUb2J5XCIsXG4gICAgXCJUb2RcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiVG9tYXNcIixcbiAgICBcIlRvbWFzYVwiLFxuICAgIFwiVG9tbWllXCIsXG4gICAgXCJUb25leVwiLFxuICAgIFwiVG9uaVwiLFxuICAgIFwiVG9ueVwiLFxuICAgIFwiVG9yZXlcIixcbiAgICBcIlRvcnJhbmNlXCIsXG4gICAgXCJUb3JyZXlcIixcbiAgICBcIlRveVwiLFxuICAgIFwiVHJhY2VcIixcbiAgICBcIlRyYWNleVwiLFxuICAgIFwiVHJhY3lcIixcbiAgICBcIlRyYXZpc1wiLFxuICAgIFwiVHJhdm9uXCIsXG4gICAgXCJUcmVcIixcbiAgICBcIlRyZW1haW5lXCIsXG4gICAgXCJUcmVtYXluZVwiLFxuICAgIFwiVHJlbnRcIixcbiAgICBcIlRyZW50b25cIixcbiAgICBcIlRyZXNzYVwiLFxuICAgIFwiVHJlc3NpZVwiLFxuICAgIFwiVHJldmFcIixcbiAgICBcIlRyZXZlclwiLFxuICAgIFwiVHJldmlvblwiLFxuICAgIFwiVHJldm9yXCIsXG4gICAgXCJUcmV5XCIsXG4gICAgXCJUcmluaXR5XCIsXG4gICAgXCJUcmlzaGFcIixcbiAgICBcIlRyaXN0aWFuXCIsXG4gICAgXCJUcmlzdGluXCIsXG4gICAgXCJUcmlzdG9uXCIsXG4gICAgXCJUcm95XCIsXG4gICAgXCJUcnVkaWVcIixcbiAgICBcIlRyeWNpYVwiLFxuICAgIFwiVHJ5c3RhblwiLFxuICAgIFwiVHVybmVyXCIsXG4gICAgXCJUd2lsYVwiLFxuICAgIFwiVHlsZXJcIixcbiAgICBcIlR5cmFcIixcbiAgICBcIlR5cmVlXCIsXG4gICAgXCJUeXJlZWtcIixcbiAgICBcIlR5cmVsXCIsXG4gICAgXCJUeXJlbGxcIixcbiAgICBcIlR5cmVzZVwiLFxuICAgIFwiVHlyaXF1ZVwiLFxuICAgIFwiVHlzaGF3blwiLFxuICAgIFwiVHlzb25cIixcbiAgICBcIlViYWxkb1wiLFxuICAgIFwiVWxpY2VzXCIsXG4gICAgXCJVbGlzZXNcIixcbiAgICBcIlVuYVwiLFxuICAgIFwiVW5pcXVlXCIsXG4gICAgXCJVcmJhblwiLFxuICAgIFwiVXJpYWhcIixcbiAgICBcIlVyaWVsXCIsXG4gICAgXCJVcnN1bGFcIixcbiAgICBcIlZhZGFcIixcbiAgICBcIlZhbGVudGluXCIsXG4gICAgXCJWYWxlbnRpbmFcIixcbiAgICBcIlZhbGVudGluZVwiLFxuICAgIFwiVmFsZXJpZVwiLFxuICAgIFwiVmFsbGllXCIsXG4gICAgXCJWYW5cIixcbiAgICBcIlZhbmNlXCIsXG4gICAgXCJWYW5lc3NhXCIsXG4gICAgXCJWYXVnaG5cIixcbiAgICBcIlZlZGFcIixcbiAgICBcIlZlbGRhXCIsXG4gICAgXCJWZWxsYVwiLFxuICAgIFwiVmVsbWFcIixcbiAgICBcIlZlbHZhXCIsXG4gICAgXCJWZW5hXCIsXG4gICAgXCJWZXJkYVwiLFxuICAgIFwiVmVyZGllXCIsXG4gICAgXCJWZXJnaWVcIixcbiAgICBcIlZlcmxhXCIsXG4gICAgXCJWZXJsaWVcIixcbiAgICBcIlZlcm5cIixcbiAgICBcIlZlcm5hXCIsXG4gICAgXCJWZXJuZXJcIixcbiAgICBcIlZlcm5pY2VcIixcbiAgICBcIlZlcm5pZVwiLFxuICAgIFwiVmVybm9uXCIsXG4gICAgXCJWZXJvbmFcIixcbiAgICBcIlZlcm9uaWNhXCIsXG4gICAgXCJWZXN0YVwiLFxuICAgIFwiVmljZW50YVwiLFxuICAgIFwiVmljZW50ZVwiLFxuICAgIFwiVmlja2llXCIsXG4gICAgXCJWaWNreVwiLFxuICAgIFwiVmljdG9yXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiVmlkYVwiLFxuICAgIFwiVmlkYWxcIixcbiAgICBcIlZpbG1hXCIsXG4gICAgXCJWaW5jZVwiLFxuICAgIFwiVmluY2VudFwiLFxuICAgIFwiVmluY2VuemFcIixcbiAgICBcIlZpbmNlbnpvXCIsXG4gICAgXCJWaW5uaWVcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJWaW9sZXRcIixcbiAgICBcIlZpb2xldHRlXCIsXG4gICAgXCJWaXJnaWVcIixcbiAgICBcIlZpcmdpbFwiLFxuICAgIFwiVmlyZ2luaWFcIixcbiAgICBcIlZpcmdpbmllXCIsXG4gICAgXCJWaXRhXCIsXG4gICAgXCJWaXRvXCIsXG4gICAgXCJWaXZhXCIsXG4gICAgXCJWaXZpYW5cIixcbiAgICBcIlZpdmlhbmVcIixcbiAgICBcIlZpdmlhbm5lXCIsXG4gICAgXCJWaXZpZW5cIixcbiAgICBcIlZpdmllbm5lXCIsXG4gICAgXCJWbGFkaW1pclwiLFxuICAgIFwiV2FkZVwiLFxuICAgIFwiV2Fpbm9cIixcbiAgICBcIldhbGRvXCIsXG4gICAgXCJXYWxrZXJcIixcbiAgICBcIldhbGxhY2VcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FsdG9uXCIsXG4gICAgXCJXYW5kYVwiLFxuICAgIFwiV2FyZFwiLFxuICAgIFwiV2FycmVuXCIsXG4gICAgXCJXYXRzb25cIixcbiAgICBcIldhdmFcIixcbiAgICBcIldheWxvblwiLFxuICAgIFwiV2F5bmVcIixcbiAgICBcIldlYnN0ZXJcIixcbiAgICBcIldlbGRvblwiLFxuICAgIFwiV2VsbGluZ3RvblwiLFxuICAgIFwiV2VuZGVsbFwiLFxuICAgIFwiV2VuZHlcIixcbiAgICBcIldlcm5lclwiLFxuICAgIFwiV2VzdGxleVwiLFxuICAgIFwiV2VzdG9uXCIsXG4gICAgXCJXaGl0bmV5XCIsXG4gICAgXCJXaWxiZXJcIixcbiAgICBcIldpbGJlcnRcIixcbiAgICBcIldpbGJ1cm5cIixcbiAgICBcIldpbGV5XCIsXG4gICAgXCJXaWxmb3JkXCIsXG4gICAgXCJXaWxmcmVkXCIsXG4gICAgXCJXaWxmcmVkb1wiLFxuICAgIFwiV2lsZnJpZFwiLFxuICAgIFwiV2lsaGVsbVwiLFxuICAgIFwiV2lsaGVsbWluZVwiLFxuICAgIFwiV2lsbFwiLFxuICAgIFwiV2lsbGFcIixcbiAgICBcIldpbGxhcmRcIixcbiAgICBcIldpbGxpYW1cIixcbiAgICBcIldpbGxpZVwiLFxuICAgIFwiV2lsbGlzXCIsXG4gICAgXCJXaWxsb3dcIixcbiAgICBcIldpbGx5XCIsXG4gICAgXCJXaWxtYVwiLFxuICAgIFwiV2lsbWVyXCIsXG4gICAgXCJXaWxzb25cIixcbiAgICBcIldpbHRvblwiLFxuICAgIFwiV2luZmllbGRcIixcbiAgICBcIldpbmlmcmVkXCIsXG4gICAgXCJXaW5uaWZyZWRcIixcbiAgICBcIldpbm9uYVwiLFxuICAgIFwiV2luc3RvblwiLFxuICAgIFwiV29vZHJvd1wiLFxuICAgIFwiV3lhdHRcIixcbiAgICBcIld5bWFuXCIsXG4gICAgXCJYYW5kZXJcIixcbiAgICBcIlhhdmllclwiLFxuICAgIFwiWHphdmllclwiLFxuICAgIFwiWWFkaXJhXCIsXG4gICAgXCJZYXNtZWVuXCIsXG4gICAgXCJZYXNtaW5cIixcbiAgICBcIllhc21pbmVcIixcbiAgICBcIllhem1pblwiLFxuICAgIFwiWWVzZW5pYVwiLFxuICAgIFwiWWVzc2VuaWFcIixcbiAgICBcIllvbGFuZGFcIixcbiAgICBcIllvc2hpa29cIixcbiAgICBcIll2ZXR0ZVwiLFxuICAgIFwiWXZvbm5lXCIsXG4gICAgXCJaYWNoYXJpYWhcIixcbiAgICBcIlphY2hhcnlcIixcbiAgICBcIlphY2hlcnlcIixcbiAgICBcIlphY2tcIixcbiAgICBcIlphY2thcnlcIixcbiAgICBcIlphY2tlcnlcIixcbiAgICBcIlpha2FyeVwiLFxuICAgIFwiWmFuZGVyXCIsXG4gICAgXCJaYW5lXCIsXG4gICAgXCJaYXJpYVwiLFxuICAgIFwiWmVjaGFyaWFoXCIsXG4gICAgXCJaZWxkYVwiLFxuICAgIFwiWmVsbGFcIixcbiAgICBcIlplbG1hXCIsXG4gICAgXCJaZW5hXCIsXG4gICAgXCJaZXR0YVwiLFxuICAgIFwiWmlvblwiLFxuICAgIFwiWml0YVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJab2V5XCIsXG4gICAgXCJab2llXCIsXG4gICAgXCJab2lsYVwiLFxuICAgIFwiWm9sYVwiLFxuICAgIFwiWm9yYVwiLFxuICAgIFwiWnVsYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIkFiYm90dFwiLFxuICAgIFwiQWJlcm5hdGh5XCIsXG4gICAgXCJBYnNoaXJlXCIsXG4gICAgXCJBZGFtc1wiLFxuICAgIFwiQWx0ZW53ZXJ0aFwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIkFua3VuZGluZ1wiLFxuICAgIFwiQXJtc3Ryb25nXCIsXG4gICAgXCJBdWVyXCIsXG4gICAgXCJBdWZkZXJoYXJcIixcbiAgICBcIkJhaHJpbmdlclwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYWxpc3RyZXJpXCIsXG4gICAgXCJCYXJyb3dzXCIsXG4gICAgXCJCYXJ0ZWxsXCIsXG4gICAgXCJCYXJ0b2xldHRpXCIsXG4gICAgXCJCYXJ0b25cIixcbiAgICBcIkJhc2hpcmlhblwiLFxuICAgIFwiQmF0elwiLFxuICAgIFwiQmF1Y2hcIixcbiAgICBcIkJhdW1iYWNoXCIsXG4gICAgXCJCYXllclwiLFxuICAgIFwiQmVhaGFuXCIsXG4gICAgXCJCZWF0dHlcIixcbiAgICBcIkJlY2h0ZWxhclwiLFxuICAgIFwiQmVja2VyXCIsXG4gICAgXCJCZWRuYXJcIixcbiAgICBcIkJlZXJcIixcbiAgICBcIkJlaWVyXCIsXG4gICAgXCJCZXJnZVwiLFxuICAgIFwiQmVyZ25hdW1cIixcbiAgICBcIkJlcmdzdHJvbVwiLFxuICAgIFwiQmVybmhhcmRcIixcbiAgICBcIkJlcm5pZXJcIixcbiAgICBcIkJpbnNcIixcbiAgICBcIkJsYW5kYVwiLFxuICAgIFwiQmxpY2tcIixcbiAgICBcIkJsb2NrXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2VobVwiLFxuICAgIFwiQm9nYW5cIixcbiAgICBcIkJvZ2lzaWNoXCIsXG4gICAgXCJCb3JlclwiLFxuICAgIFwiQm9zY29cIixcbiAgICBcIkJvdHNmb3JkXCIsXG4gICAgXCJCb3llclwiLFxuICAgIFwiQm95bGVcIixcbiAgICBcIkJyYWR0a2VcIixcbiAgICBcIkJyYWt1c1wiLFxuICAgIFwiQnJhdW5cIixcbiAgICBcIkJyZWl0ZW5iZXJnXCIsXG4gICAgXCJCcmVra2VcIixcbiAgICBcIkJyb3duXCIsXG4gICAgXCJCcnVlblwiLFxuICAgIFwiQnVja3JpZGdlXCIsXG4gICAgXCJDYXJyb2xsXCIsXG4gICAgXCJDYXJ0ZXJcIixcbiAgICBcIkNhcnR3cmlnaHRcIixcbiAgICBcIkNhc3BlclwiLFxuICAgIFwiQ2Fzc2luXCIsXG4gICAgXCJDaGFtcGxpblwiLFxuICAgIFwiQ2hyaXN0aWFuc2VuXCIsXG4gICAgXCJDb2xlXCIsXG4gICAgXCJDb2xsaWVyXCIsXG4gICAgXCJDb2xsaW5zXCIsXG4gICAgXCJDb25uXCIsXG4gICAgXCJDb25uZWxseVwiLFxuICAgIFwiQ29ucm95XCIsXG4gICAgXCJDb25zaWRpbmVcIixcbiAgICBcIkNvcmtlcnlcIixcbiAgICBcIkNvcm1pZXJcIixcbiAgICBcIkNvcndpblwiLFxuICAgIFwiQ3JlbWluXCIsXG4gICAgXCJDcmlzdFwiLFxuICAgIFwiQ3JvbmFcIixcbiAgICBcIkNyb25pblwiLFxuICAgIFwiQ3Jvb2tzXCIsXG4gICAgXCJDcnVpY2tzaGFua1wiLFxuICAgIFwiQ3VtbWVyYXRhXCIsXG4gICAgXCJDdW1taW5nc1wiLFxuICAgIFwiRGFjaFwiLFxuICAgIFwiRCdBbW9yZVwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJEYXJlXCIsXG4gICAgXCJEYXVnaGVydHlcIixcbiAgICBcIkRhdmlzXCIsXG4gICAgXCJEZWNrb3dcIixcbiAgICBcIkRlbmVzaWtcIixcbiAgICBcIkRpYmJlcnRcIixcbiAgICBcIkRpY2tlbnNcIixcbiAgICBcIkRpY2tpXCIsXG4gICAgXCJEaWNraW5zb25cIixcbiAgICBcIkRpZXRyaWNoXCIsXG4gICAgXCJEb25uZWxseVwiLFxuICAgIFwiRG9vbGV5XCIsXG4gICAgXCJEb3VnbGFzXCIsXG4gICAgXCJEb3lsZVwiLFxuICAgIFwiRHVCdXF1ZVwiLFxuICAgIFwiRHVyZ2FuXCIsXG4gICAgXCJFYmVydFwiLFxuICAgIFwiRWZmZXJ0elwiLFxuICAgIFwiRWljaG1hbm5cIixcbiAgICBcIkVtYXJkXCIsXG4gICAgXCJFbW1lcmljaFwiLFxuICAgIFwiRXJkbWFuXCIsXG4gICAgXCJFcm5zZXJcIixcbiAgICBcIkZhZGVsXCIsXG4gICAgXCJGYWhleVwiLFxuICAgIFwiRmFycmVsbFwiLFxuICAgIFwiRmF5XCIsXG4gICAgXCJGZWVuZXlcIixcbiAgICBcIkZlZXN0XCIsXG4gICAgXCJGZWlsXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmlzaGVyXCIsXG4gICAgXCJGbGF0bGV5XCIsXG4gICAgXCJGcmFtaVwiLFxuICAgIFwiRnJhbmVja2lcIixcbiAgICBcIkZyaWVzZW5cIixcbiAgICBcIkZyaXRzY2hcIixcbiAgICBcIkZ1bmtcIixcbiAgICBcIkdheWxvcmRcIixcbiAgICBcIkdlcmhvbGRcIixcbiAgICBcIkdlcmxhY2hcIixcbiAgICBcIkdpYnNvblwiLFxuICAgIFwiR2lzbGFzb25cIixcbiAgICBcIkdsZWFzb25cIixcbiAgICBcIkdsZWljaG5lclwiLFxuICAgIFwiR2xvdmVyXCIsXG4gICAgXCJHb2xkbmVyXCIsXG4gICAgXCJHb29kd2luXCIsXG4gICAgXCJHb3JjemFueVwiLFxuICAgIFwiR290dGxpZWJcIixcbiAgICBcIkdveWV0dGVcIixcbiAgICBcIkdyYWR5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmVlblwiLFxuICAgIFwiR3JlZW5mZWxkZXJcIixcbiAgICBcIkdyZWVuaG9sdFwiLFxuICAgIFwiR3JpbWVzXCIsXG4gICAgXCJHdWxnb3dza2lcIixcbiAgICBcIkd1c2lrb3dza2lcIixcbiAgICBcIkd1dGtvd3NraVwiLFxuICAgIFwiR3V0bWFublwiLFxuICAgIFwiSGFhZ1wiLFxuICAgIFwiSGFja2V0dFwiLFxuICAgIFwiSGFnZW5lc1wiLFxuICAgIFwiSGFoblwiLFxuICAgIFwiSGFsZXlcIixcbiAgICBcIkhhbHZvcnNvblwiLFxuICAgIFwiSGFtaWxsXCIsXG4gICAgXCJIYW1tZXNcIixcbiAgICBcIkhhbmRcIixcbiAgICBcIkhhbmVcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyYmVyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkhhcnRtYW5uXCIsXG4gICAgXCJIYXJ2ZXlcIixcbiAgICBcIkhhdWNrXCIsXG4gICAgXCJIYXllc1wiLFxuICAgIFwiSGVhbmV5XCIsXG4gICAgXCJIZWF0aGNvdGVcIixcbiAgICBcIkhlZ21hbm5cIixcbiAgICBcIkhlaWRlbnJlaWNoXCIsXG4gICAgXCJIZWxsZXJcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWlzdG9uXCIsXG4gICAgXCJIZXJ6b2dcIixcbiAgICBcIkhlc3NlbFwiLFxuICAgIFwiSGV0dGluZ2VyXCIsXG4gICAgXCJIaWNrbGVcIixcbiAgICBcIkhpbGxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSGlscGVydFwiLFxuICAgIFwiSGludHpcIixcbiAgICBcIkhpcnRoZVwiLFxuICAgIFwiSG9ka2lld2ljelwiLFxuICAgIFwiSG9lZ2VyXCIsXG4gICAgXCJIb21lbmlja1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvd2VcIixcbiAgICBcIkhvd2VsbFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWVsXCIsXG4gICAgXCJIdWVsc1wiLFxuICAgIFwiSHlhdHRcIixcbiAgICBcIkphY29iaVwiLFxuICAgIFwiSmFjb2JzXCIsXG4gICAgXCJKYWNvYnNvblwiLFxuICAgIFwiSmFrdWJvd3NraVwiLFxuICAgIFwiSmFza29sc2tpXCIsXG4gICAgXCJKYXN0XCIsXG4gICAgXCJKZW5raW5zXCIsXG4gICAgXCJKZXJkZVwiLFxuICAgIFwiSm9obnNcIixcbiAgICBcIkpvaG5zb25cIixcbiAgICBcIkpvaG5zdG9uXCIsXG4gICAgXCJKb25lc1wiLFxuICAgIFwiS2Fzc3Vsa2VcIixcbiAgICBcIkthdXR6ZXJcIixcbiAgICBcIktlZWJsZXJcIixcbiAgICBcIktlZWxpbmdcIixcbiAgICBcIktlbW1lclwiLFxuICAgIFwiS2VybHVrZVwiLFxuICAgIFwiS2VydHptYW5uXCIsXG4gICAgXCJLZXNzbGVyXCIsXG4gICAgXCJLaWVoblwiLFxuICAgIFwiS2loblwiLFxuICAgIFwiS2lsYmFja1wiLFxuICAgIFwiS2luZ1wiLFxuICAgIFwiS2lybGluXCIsXG4gICAgXCJLbGVpblwiLFxuICAgIFwiS2xpbmdcIixcbiAgICBcIktsb2Nrb1wiLFxuICAgIFwiS29jaFwiLFxuICAgIFwiS29lbHBpblwiLFxuICAgIFwiS29lcHBcIixcbiAgICBcIktvaGxlclwiLFxuICAgIFwiS29ub3BlbHNraVwiLFxuICAgIFwiS29zc1wiLFxuICAgIFwiS292YWNla1wiLFxuICAgIFwiS296ZXlcIixcbiAgICBcIktyYWpjaWtcIixcbiAgICBcIktyZWlnZXJcIixcbiAgICBcIktyaXNcIixcbiAgICBcIktzaGxlcmluXCIsXG4gICAgXCJLdWJcIixcbiAgICBcIkt1aGljXCIsXG4gICAgXCJLdWhsbWFuXCIsXG4gICAgXCJLdWhuXCIsXG4gICAgXCJLdWxhc1wiLFxuICAgIFwiS3VuZGVcIixcbiAgICBcIkt1bnplXCIsXG4gICAgXCJLdXBoYWxcIixcbiAgICBcIkt1dGNoXCIsXG4gICAgXCJLdXZhbGlzXCIsXG4gICAgXCJMYWJhZGllXCIsXG4gICAgXCJMYWtpblwiLFxuICAgIFwiTGFuZ1wiLFxuICAgIFwiTGFuZ29zaFwiLFxuICAgIFwiTGFuZ3dvcnRoXCIsXG4gICAgXCJMYXJraW5cIixcbiAgICBcIkxhcnNvblwiLFxuICAgIFwiTGVhbm5vblwiLFxuICAgIFwiTGVic2Fja1wiLFxuICAgIFwiTGVkbmVyXCIsXG4gICAgXCJMZWZmbGVyXCIsXG4gICAgXCJMZWdyb3NcIixcbiAgICBcIkxlaG5lclwiLFxuICAgIFwiTGVta2VcIixcbiAgICBcIkxlc2NoXCIsXG4gICAgXCJMZXVzY2hrZVwiLFxuICAgIFwiTGluZFwiLFxuICAgIFwiTGluZGdyZW5cIixcbiAgICBcIkxpdHRlbFwiLFxuICAgIFwiTGl0dGxlXCIsXG4gICAgXCJMb2NrbWFuXCIsXG4gICAgXCJMb3dlXCIsXG4gICAgXCJMdWJvd2l0elwiLFxuICAgIFwiTHVlaWx3aXR6XCIsXG4gICAgXCJMdWV0dGdlblwiLFxuICAgIFwiTHluY2hcIixcbiAgICBcIk1hY2Vqa292aWNcIixcbiAgICBcIk1hY0d5dmVyXCIsXG4gICAgXCJNYWdnaW9cIixcbiAgICBcIk1hbm5cIixcbiAgICBcIk1hbnRlXCIsXG4gICAgXCJNYXJrc1wiLFxuICAgIFwiTWFycXVhcmR0XCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNYXllcnRcIixcbiAgICBcIk1jQ2x1cmVcIixcbiAgICBcIk1jQ3VsbG91Z2hcIixcbiAgICBcIk1jRGVybW90dFwiLFxuICAgIFwiTWNHbHlublwiLFxuICAgIFwiTWNLZW56aWVcIixcbiAgICBcIk1jTGF1Z2hsaW5cIixcbiAgICBcIk1lZGh1cnN0XCIsXG4gICAgXCJNZXJ0elwiLFxuICAgIFwiTWV0elwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaWxsc1wiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIk1vZW5cIixcbiAgICBcIk1vaHJcIixcbiAgICBcIk1vbmFoYW5cIixcbiAgICBcIk1vb3JlXCIsXG4gICAgXCJNb3JhclwiLFxuICAgIFwiTW9yaXNzZXR0ZVwiLFxuICAgIFwiTW9zY2lza2lcIixcbiAgICBcIk1yYXpcIixcbiAgICBcIk11ZWxsZXJcIixcbiAgICBcIk11bGxlclwiLFxuICAgIFwiTXVyYXppa1wiLFxuICAgIFwiTXVycGh5XCIsXG4gICAgXCJNdXJyYXlcIixcbiAgICBcIk5hZGVyXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOaWVub3dcIixcbiAgICBcIk5pa29sYXVzXCIsXG4gICAgXCJOaXR6c2NoZVwiLFxuICAgIFwiTm9sYW5cIixcbiAgICBcIk9iZXJicnVubmVyXCIsXG4gICAgXCJPJ0Nvbm5lbGxcIixcbiAgICBcIk8nQ29ubmVyXCIsXG4gICAgXCJPJ0hhcmFcIixcbiAgICBcIk8nS2VlZmVcIixcbiAgICBcIk8nS29uXCIsXG4gICAgXCJPa3VuZXZhXCIsXG4gICAgXCJPbHNvblwiLFxuICAgIFwiT25kcmlja2FcIixcbiAgICBcIk8nUmVpbGx5XCIsXG4gICAgXCJPcm5cIixcbiAgICBcIk9ydGl6XCIsXG4gICAgXCJPc2luc2tpXCIsXG4gICAgXCJQYWNvY2hhXCIsXG4gICAgXCJQYWRiZXJnXCIsXG4gICAgXCJQYWdhY1wiLFxuICAgIFwiUGFyaXNpYW5cIixcbiAgICBcIlBhcmtlclwiLFxuICAgIFwiUGF1Y2VrXCIsXG4gICAgXCJQZmFubmVyc3RpbGxcIixcbiAgICBcIlBmZWZmZXJcIixcbiAgICBcIlBvbGxpY2hcIixcbiAgICBcIlBvdXJvc1wiLFxuICAgIFwiUG93bG93c2tpXCIsXG4gICAgXCJQcmVkb3ZpY1wiLFxuICAgIFwiUHJpY2VcIixcbiAgICBcIlByb2hhc2thXCIsXG4gICAgXCJQcm9zYWNjb1wiLFxuICAgIFwiUHVyZHlcIixcbiAgICBcIlF1aWdsZXlcIixcbiAgICBcIlF1aXR6b25cIixcbiAgICBcIlJhdGhcIixcbiAgICBcIlJhdGtlXCIsXG4gICAgXCJSYXVcIixcbiAgICBcIlJheW5vclwiLFxuICAgIFwiUmVpY2hlbFwiLFxuICAgIFwiUmVpY2hlcnRcIixcbiAgICBcIlJlaWxseVwiLFxuICAgIFwiUmVpbmdlclwiLFxuICAgIFwiUmVtcGVsXCIsXG4gICAgXCJSZW5uZXJcIixcbiAgICBcIlJleW5vbGRzXCIsXG4gICAgXCJSaWNlXCIsXG4gICAgXCJSaXBwaW5cIixcbiAgICBcIlJpdGNoaWVcIixcbiAgICBcIlJvYmVsXCIsXG4gICAgXCJSb2JlcnRzXCIsXG4gICAgXCJSb2RyaWd1ZXpcIixcbiAgICBcIlJvZ2FoblwiLFxuICAgIFwiUm9oYW5cIixcbiAgICBcIlJvbGZzb25cIixcbiAgICBcIlJvbWFndWVyYVwiLFxuICAgIFwiUm9vYlwiLFxuICAgIFwiUm9zZW5iYXVtXCIsXG4gICAgXCJSb3dlXCIsXG4gICAgXCJSdWVja2VyXCIsXG4gICAgXCJSdW5vbGZzZG90dGlyXCIsXG4gICAgXCJSdW5vbGZzc29uXCIsXG4gICAgXCJSdW50ZVwiLFxuICAgIFwiUnVzc2VsXCIsXG4gICAgXCJSdXRoZXJmb3JkXCIsXG4gICAgXCJSeWFuXCIsXG4gICAgXCJTYW5mb3JkXCIsXG4gICAgXCJTYXR0ZXJmaWVsZFwiLFxuICAgIFwiU2F1ZXJcIixcbiAgICBcIlNhd2F5blwiLFxuICAgIFwiU2NoYWRlblwiLFxuICAgIFwiU2NoYWVmZXJcIixcbiAgICBcIlNjaGFtYmVyZ2VyXCIsXG4gICAgXCJTY2hpbGxlclwiLFxuICAgIFwiU2NoaW1tZWxcIixcbiAgICBcIlNjaGlubmVyXCIsXG4gICAgXCJTY2htZWxlclwiLFxuICAgIFwiU2NobWlkdFwiLFxuICAgIFwiU2NobWl0dFwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJTY2hvZW5cIixcbiAgICBcIlNjaG93YWx0ZXJcIixcbiAgICBcIlNjaHJvZWRlclwiLFxuICAgIFwiU2NodWxpc3RcIixcbiAgICBcIlNjaHVsdHpcIixcbiAgICBcIlNjaHVtbVwiLFxuICAgIFwiU2NodXBwZVwiLFxuICAgIFwiU2NodXN0ZXJcIixcbiAgICBcIlNlbmdlclwiLFxuICAgIFwiU2hhbmFoYW5cIixcbiAgICBcIlNoaWVsZHNcIixcbiAgICBcIlNpbW9uaXNcIixcbiAgICBcIlNpcGVzXCIsXG4gICAgXCJTa2lsZXNcIixcbiAgICBcIlNtaXRoXCIsXG4gICAgXCJTbWl0aGFtXCIsXG4gICAgXCJTcGVuY2VyXCIsXG4gICAgXCJTcGlua2FcIixcbiAgICBcIlNwb3JlclwiLFxuICAgIFwiU3RhbW1cIixcbiAgICBcIlN0YW50b25cIixcbiAgICBcIlN0YXJrXCIsXG4gICAgXCJTdGVoclwiLFxuICAgIFwiU3RldWJlclwiLFxuICAgIFwiU3RpZWRlbWFublwiLFxuICAgIFwiU3Rva2VzXCIsXG4gICAgXCJTdG9sdGVuYmVyZ1wiLFxuICAgIFwiU3RyYWNrZVwiLFxuICAgIFwiU3RyZWljaFwiLFxuICAgIFwiU3Ryb21hblwiLFxuICAgIFwiU3Ryb3NpblwiLFxuICAgIFwiU3dhbmlhd3NraVwiLFxuICAgIFwiU3dpZnRcIixcbiAgICBcIlRlcnJ5XCIsXG4gICAgXCJUaGllbFwiLFxuICAgIFwiVGhvbXBzb25cIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRvcnBcIixcbiAgICBcIlRvcnBoeVwiLFxuICAgIFwiVG93bmVcIixcbiAgICBcIlRveVwiLFxuICAgIFwiVHJhbnRvd1wiLFxuICAgIFwiVHJlbWJsYXlcIixcbiAgICBcIlRyZXV0ZWxcIixcbiAgICBcIlRyb21wXCIsXG4gICAgXCJUdXJjb3R0ZVwiLFxuICAgIFwiVHVybmVyXCIsXG4gICAgXCJVbGxyaWNoXCIsXG4gICAgXCJVcHRvblwiLFxuICAgIFwiVmFuZGVydm9ydFwiLFxuICAgIFwiVmV1bVwiLFxuICAgIFwiVm9sa21hblwiLFxuICAgIFwiVm9uXCIsXG4gICAgXCJWb25SdWVkZW5cIixcbiAgICBcIldhZWxjaGlcIixcbiAgICBcIldhbGtlclwiLFxuICAgIFwiV2Fsc2hcIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiV2FyZFwiLFxuICAgIFwiV2F0ZXJzXCIsXG4gICAgXCJXYXRzaWNhXCIsXG4gICAgXCJXZWJlclwiLFxuICAgIFwiV2VobmVyXCIsXG4gICAgXCJXZWltYW5uXCIsXG4gICAgXCJXZWlzc25hdFwiLFxuICAgIFwiV2VsY2hcIixcbiAgICBcIldlc3RcIixcbiAgICBcIldoaXRlXCIsXG4gICAgXCJXaWVnYW5kXCIsXG4gICAgXCJXaWxkZXJtYW5cIixcbiAgICBcIldpbGtpbnNvblwiLFxuICAgIFwiV2lsbFwiLFxuICAgIFwiV2lsbGlhbXNvblwiLFxuICAgIFwiV2lsbG1zXCIsXG4gICAgXCJXaW5kbGVyXCIsXG4gICAgXCJXaW50aGVpc2VyXCIsXG4gICAgXCJXaXNva3lcIixcbiAgICBcIldpc296a1wiLFxuICAgIFwiV2l0dGluZ1wiLFxuICAgIFwiV2l6YVwiLFxuICAgIFwiV29sZlwiLFxuICAgIFwiV29sZmZcIixcbiAgICBcIld1Y2tlcnRcIixcbiAgICBcIld1bnNjaFwiLFxuICAgIFwiV3ltYW5cIixcbiAgICBcIllvc3RcIixcbiAgICBcIll1bmR0XCIsXG4gICAgXCJaYm9uY2FrXCIsXG4gICAgXCJaZW1sYWtcIixcbiAgICBcIlppZW1hbm5cIixcbiAgICBcIlppZW1lXCIsXG4gICAgXCJadWxhdWZcIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJNci5cIixcbiAgICBcIk1ycy5cIixcbiAgICBcIk1zLlwiLFxuICAgIFwiTWlzc1wiLFxuICAgIFwiRHIuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiSnIuXCIsXG4gICAgXCJTci5cIixcbiAgICBcIklcIixcbiAgICBcIklJXCIsXG4gICAgXCJJSUlcIixcbiAgICBcIklWXCIsXG4gICAgXCJWXCIsXG4gICAgXCJNRFwiLFxuICAgIFwiRERTXCIsXG4gICAgXCJQaERcIixcbiAgICBcIkRWTVwiXG4gIF0sXG4gIFwidGl0bGVcIjoge1xuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIkxlYWRcIixcbiAgICAgIFwiU2VuaW9yXCIsXG4gICAgICBcIkRpcmVjdFwiLFxuICAgICAgXCJDb3Jwb3JhdGVcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJGdXR1cmVcIixcbiAgICAgIFwiUHJvZHVjdFwiLFxuICAgICAgXCJOYXRpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cmljdFwiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDdXN0b21lclwiLFxuICAgICAgXCJJbnZlc3RvclwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiTGVnYWN5XCIsXG4gICAgICBcIkZvcndhcmRcIixcbiAgICAgIFwiSW50ZXJuYWxcIixcbiAgICAgIFwiSHVtYW5cIixcbiAgICAgIFwiQ2hpZWZcIixcbiAgICAgIFwiUHJpbmNpcGFsXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1dGlvbnNcIixcbiAgICAgIFwiUHJvZ3JhbVwiLFxuICAgICAgXCJCcmFuZFwiLFxuICAgICAgXCJTZWN1cml0eVwiLFxuICAgICAgXCJSZXNlYXJjaFwiLFxuICAgICAgXCJNYXJrZXRpbmdcIixcbiAgICAgIFwiRGlyZWN0aXZlc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJJbnRlZ3JhdGlvblwiLFxuICAgICAgXCJGdW5jdGlvbmFsaXR5XCIsXG4gICAgICBcIlJlc3BvbnNlXCIsXG4gICAgICBcIlBhcmFkaWdtXCIsXG4gICAgICBcIlRhY3RpY3NcIixcbiAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgIFwiTWFya2V0c1wiLFxuICAgICAgXCJHcm91cFwiLFxuICAgICAgXCJEaXZpc2lvblwiLFxuICAgICAgXCJBcHBsaWNhdGlvbnNcIixcbiAgICAgIFwiT3B0aW1pemF0aW9uXCIsXG4gICAgICBcIk9wZXJhdGlvbnNcIixcbiAgICAgIFwiSW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tbXVuaWNhdGlvbnNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkJyYW5kaW5nXCIsXG4gICAgICBcIlF1YWxpdHlcIixcbiAgICAgIFwiQXNzdXJhbmNlXCIsXG4gICAgICBcIk1vYmlsaXR5XCIsXG4gICAgICBcIkFjY291bnRzXCIsXG4gICAgICBcIkRhdGFcIixcbiAgICAgIFwiQ3JlYXRpdmVcIixcbiAgICAgIFwiQ29uZmlndXJhdGlvblwiLFxuICAgICAgXCJBY2NvdW50YWJpbGl0eVwiLFxuICAgICAgXCJJbnRlcmFjdGlvbnNcIixcbiAgICAgIFwiRmFjdG9yc1wiLFxuICAgICAgXCJVc2FiaWxpdHlcIixcbiAgICAgIFwiTWV0cmljc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNzb2NpYXRlXCIsXG4gICAgICBcIkV4ZWN1dGl2ZVwiLFxuICAgICAgXCJMaWFzb25cIixcbiAgICAgIFwiT2ZmaWNlclwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkVuZ2luZWVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmF0b3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRvclwiLFxuICAgICAgXCJBcmNoaXRlY3RcIixcbiAgICAgIFwiQW5hbHlzdFwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJQbGFubmVyXCIsXG4gICAgICBcIk9yY2hlc3RyYXRvclwiLFxuICAgICAgXCJUZWNobmljaWFuXCIsXG4gICAgICBcIkRldmVsb3BlclwiLFxuICAgICAgXCJQcm9kdWNlclwiLFxuICAgICAgXCJDb25zdWx0YW50XCIsXG4gICAgICBcIkFzc2lzdGFudFwiLFxuICAgICAgXCJGYWNpbGl0YXRvclwiLFxuICAgICAgXCJBZ2VudFwiLFxuICAgICAgXCJSZXByZXNlbnRhdGl2ZVwiLFxuICAgICAgXCJTdHJhdGVnaXN0XCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZW4ucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIigjIyMpICMjIy0jIyMjIHgjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjXCIsXG4gICAgXCIjIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIigjIyMpICMjIy0jIyMjIHgjIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjXCIsXG4gICAgXCIjIyMtIyMjLSMjIyMgeCMjIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjI1wiXG4gIF1cbn07XG5lbi5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjLSMjIy0jIyMjXCIsXG4gICAgXCIoIyMjKSAjIyMtIyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjI1wiXG4gIF1cbn07XG5lbi5idXNpbmVzcyA9IHtcbiAgXCJjcmVkaXRfY2FyZF9udW1iZXJzXCI6IFtcbiAgICBcIjEyMzQtMjEyMS0xMjIxLTEyMTFcIixcbiAgICBcIjEyMTItMTIyMS0xMTIxLTEyMzRcIixcbiAgICBcIjEyMTEtMTIyMS0xMjM0LTIyMDFcIixcbiAgICBcIjEyMjgtMTIyMS0xMjIxLTE0MzFcIlxuICBdLFxuICBcImNyZWRpdF9jYXJkX2V4cGlyeV9kYXRlc1wiOiBbXG4gICAgXCIyMDExLTEwLTEyXCIsXG4gICAgXCIyMDEyLTExLTEyXCIsXG4gICAgXCIyMDE1LTExLTExXCIsXG4gICAgXCIyMDEzLTktMTJcIlxuICBdLFxuICBcImNyZWRpdF9jYXJkX3R5cGVzXCI6IFtcbiAgICBcInZpc2FcIixcbiAgICBcIm1hc3RlcmNhcmRcIixcbiAgICBcImFtZXJpY2FuZXhwcmVzc1wiLFxuICAgIFwiZGlzY292ZXJcIlxuICBdXG59O1xuZW4uY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwicmVkXCIsXG4gICAgXCJncmVlblwiLFxuICAgIFwiYmx1ZVwiLFxuICAgIFwieWVsbG93XCIsXG4gICAgXCJwdXJwbGVcIixcbiAgICBcIm1pbnQgZ3JlZW5cIixcbiAgICBcInRlYWxcIixcbiAgICBcIndoaXRlXCIsXG4gICAgXCJibGFja1wiLFxuICAgIFwib3JhbmdlXCIsXG4gICAgXCJwaW5rXCIsXG4gICAgXCJncmV5XCIsXG4gICAgXCJtYXJvb25cIixcbiAgICBcInZpb2xldFwiLFxuICAgIFwidHVycXVvaXNlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInNreSBibHVlXCIsXG4gICAgXCJzYWxtb25cIixcbiAgICBcInBsdW1cIixcbiAgICBcIm9yY2hpZFwiLFxuICAgIFwib2xpdmVcIixcbiAgICBcIm1hZ2VudGFcIixcbiAgICBcImxpbWVcIixcbiAgICBcIml2b3J5XCIsXG4gICAgXCJpbmRpZ29cIixcbiAgICBcImdvbGRcIixcbiAgICBcImZ1Y2hzaWFcIixcbiAgICBcImN5YW5cIixcbiAgICBcImF6dXJlXCIsXG4gICAgXCJsYXZlbmRlclwiLFxuICAgIFwic2lsdmVyXCJcbiAgXSxcbiAgXCJkZXBhcnRtZW50XCI6IFtcbiAgICBcIkJvb2tzXCIsXG4gICAgXCJNb3ZpZXNcIixcbiAgICBcIk11c2ljXCIsXG4gICAgXCJHYW1lc1wiLFxuICAgIFwiRWxlY3Ryb25pY3NcIixcbiAgICBcIkNvbXB1dGVyc1wiLFxuICAgIFwiSG9tZVwiLFxuICAgIFwiR2FyZGVuXCIsXG4gICAgXCJUb29sc1wiLFxuICAgIFwiR3JvY2VyeVwiLFxuICAgIFwiSGVhbHRoXCIsXG4gICAgXCJCZWF1dHlcIixcbiAgICBcIlRveXNcIixcbiAgICBcIktpZHNcIixcbiAgICBcIkJhYnlcIixcbiAgICBcIkNsb3RoaW5nXCIsXG4gICAgXCJTaG9lc1wiLFxuICAgIFwiSmV3ZWxlcnlcIixcbiAgICBcIlNwb3J0c1wiLFxuICAgIFwiT3V0ZG9vcnNcIixcbiAgICBcIkF1dG9tb3RpdmVcIixcbiAgICBcIkluZHVzdHJpYWxcIlxuICBdLFxuICBcInByb2R1Y3RfbmFtZVwiOiB7XG4gICAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJTbWFsbFwiLFxuICAgICAgXCJFcmdvbm9taWNcIixcbiAgICAgIFwiUnVzdGljXCIsXG4gICAgICBcIkludGVsbGlnZW50XCIsXG4gICAgICBcIkdvcmdlb3VzXCIsXG4gICAgICBcIkluY3JlZGlibGVcIixcbiAgICAgIFwiRmFudGFzdGljXCIsXG4gICAgICBcIlByYWN0aWNhbFwiLFxuICAgICAgXCJTbGVla1wiLFxuICAgICAgXCJBd2Vzb21lXCJcbiAgICBdLFxuICAgIFwibWF0ZXJpYWxcIjogW1xuICAgICAgXCJTdGVlbFwiLFxuICAgICAgXCJXb29kZW5cIixcbiAgICAgIFwiQ29uY3JldGVcIixcbiAgICAgIFwiUGxhc3RpY1wiLFxuICAgICAgXCJDb3R0b25cIixcbiAgICAgIFwiR3Jhbml0ZVwiLFxuICAgICAgXCJSdWJiZXJcIlxuICAgIF0sXG4gICAgXCJwcm9kdWN0XCI6IFtcbiAgICAgIFwiQ2hhaXJcIixcbiAgICAgIFwiQ2FyXCIsXG4gICAgICBcIkNvbXB1dGVyXCIsXG4gICAgICBcIkdsb3Zlc1wiLFxuICAgICAgXCJQYW50c1wiLFxuICAgICAgXCJTaGlydFwiLFxuICAgICAgXCJUYWJsZVwiLFxuICAgICAgXCJTaG9lc1wiLFxuICAgICAgXCJIYXRcIlxuICAgIF1cbiAgfVxufTtcbmVuLnRlYW0gPSB7XG4gIFwiY3JlYXR1cmVcIjogW1xuICAgIFwiYW50c1wiLFxuICAgIFwiYmF0c1wiLFxuICAgIFwiYmVhcnNcIixcbiAgICBcImJlZXNcIixcbiAgICBcImJpcmRzXCIsXG4gICAgXCJidWZmYWxvXCIsXG4gICAgXCJjYXRzXCIsXG4gICAgXCJjaGlja2Vuc1wiLFxuICAgIFwiY2F0dGxlXCIsXG4gICAgXCJkb2dzXCIsXG4gICAgXCJkb2xwaGluc1wiLFxuICAgIFwiZHVja3NcIixcbiAgICBcImVsZXBoYW50c1wiLFxuICAgIFwiZmlzaGVzXCIsXG4gICAgXCJmb3hlc1wiLFxuICAgIFwiZnJvZ3NcIixcbiAgICBcImdlZXNlXCIsXG4gICAgXCJnb2F0c1wiLFxuICAgIFwiaG9yc2VzXCIsXG4gICAgXCJrYW5nYXJvb3NcIixcbiAgICBcImxpb25zXCIsXG4gICAgXCJtb25rZXlzXCIsXG4gICAgXCJvd2xzXCIsXG4gICAgXCJveGVuXCIsXG4gICAgXCJwZW5ndWluc1wiLFxuICAgIFwicGVvcGxlXCIsXG4gICAgXCJwaWdzXCIsXG4gICAgXCJyYWJiaXRzXCIsXG4gICAgXCJzaGVlcFwiLFxuICAgIFwidGlnZXJzXCIsXG4gICAgXCJ3aGFsZXNcIixcbiAgICBcIndvbHZlc1wiLFxuICAgIFwiemVicmFzXCIsXG4gICAgXCJiYW5zaGVlc1wiLFxuICAgIFwiY3Jvd3NcIixcbiAgICBcImJsYWNrIGNhdHNcIixcbiAgICBcImNoaW1lcmFzXCIsXG4gICAgXCJnaG9zdHNcIixcbiAgICBcImNvbnNwaXJhdG9yc1wiLFxuICAgIFwiZHJhZ29uc1wiLFxuICAgIFwiZHdhcnZlc1wiLFxuICAgIFwiZWx2ZXNcIixcbiAgICBcImVuY2hhbnRlcnNcIixcbiAgICBcImV4b3JjaXN0c1wiLFxuICAgIFwic29uc1wiLFxuICAgIFwiZm9lc1wiLFxuICAgIFwiZ2lhbnRzXCIsXG4gICAgXCJnbm9tZXNcIixcbiAgICBcImdvYmxpbnNcIixcbiAgICBcImdvb3Nlc1wiLFxuICAgIFwiZ3JpZmZpbnNcIixcbiAgICBcImx5Y2FudGhyb3Blc1wiLFxuICAgIFwibmVtZXNpc1wiLFxuICAgIFwib2dyZXNcIixcbiAgICBcIm9yYWNsZXNcIixcbiAgICBcInByb3BoZXRzXCIsXG4gICAgXCJzb3JjZXJvcnNcIixcbiAgICBcInNwaWRlcnNcIixcbiAgICBcInNwaXJpdHNcIixcbiAgICBcInZhbXBpcmVzXCIsXG4gICAgXCJ3YXJsb2Nrc1wiLFxuICAgIFwidml4ZW5zXCIsXG4gICAgXCJ3ZXJld29sdmVzXCIsXG4gICAgXCJ3aXRjaGVzXCIsXG4gICAgXCJ3b3JzaGlwZXJzXCIsXG4gICAgXCJ6b21iaWVzXCIsXG4gICAgXCJkcnVpZHNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tBZGRyZXNzLnN0YXRlfSAje2NyZWF0dXJlfVwiXG4gIF1cbn07XG5lbi5oYWNrZXIgPSB7XG4gIFwiYWJicmV2aWF0aW9uXCI6IFtcbiAgICBcIlRDUFwiLFxuICAgIFwiSFRUUFwiLFxuICAgIFwiU0REXCIsXG4gICAgXCJSQU1cIixcbiAgICBcIkdCXCIsXG4gICAgXCJDU1NcIixcbiAgICBcIlNTTFwiLFxuICAgIFwiQUdQXCIsXG4gICAgXCJTUUxcIixcbiAgICBcIkZUUFwiLFxuICAgIFwiUENJXCIsXG4gICAgXCJBSVwiLFxuICAgIFwiQURQXCIsXG4gICAgXCJSU1NcIixcbiAgICBcIlhNTFwiLFxuICAgIFwiRVhFXCIsXG4gICAgXCJDT01cIixcbiAgICBcIkhERFwiLFxuICAgIFwiVEhYXCIsXG4gICAgXCJTTVRQXCIsXG4gICAgXCJTTVNcIixcbiAgICBcIlVTQlwiLFxuICAgIFwiUE5HXCIsXG4gICAgXCJTQVNcIixcbiAgICBcIklCXCIsXG4gICAgXCJTQ1NJXCIsXG4gICAgXCJKU09OXCIsXG4gICAgXCJYU1NcIixcbiAgICBcIkpCT0RcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgXCJhdXhpbGlhcnlcIixcbiAgICBcInByaW1hcnlcIixcbiAgICBcImJhY2stZW5kXCIsXG4gICAgXCJkaWdpdGFsXCIsXG4gICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgIFwidmlydHVhbFwiLFxuICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICBcInJlZHVuZGFudFwiLFxuICAgIFwib25saW5lXCIsXG4gICAgXCJoYXB0aWNcIixcbiAgICBcIm11bHRpLWJ5dGVcIixcbiAgICBcImJsdWV0b290aFwiLFxuICAgIFwid2lyZWxlc3NcIixcbiAgICBcIjEwODBwXCIsXG4gICAgXCJuZXVyYWxcIixcbiAgICBcIm9wdGljYWxcIixcbiAgICBcInNvbGlkIHN0YXRlXCIsXG4gICAgXCJtb2JpbGVcIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgIFwiZHJpdmVyXCIsXG4gICAgXCJwcm90b2NvbFwiLFxuICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgXCJwYW5lbFwiLFxuICAgIFwibWljcm9jaGlwXCIsXG4gICAgXCJwcm9ncmFtXCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJjYXJkXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcInNlbnNvclwiLFxuICAgIFwiZmlyZXdhbGxcIixcbiAgICBcImhhcmQgZHJpdmVcIixcbiAgICBcInBpeGVsXCIsXG4gICAgXCJhbGFybVwiLFxuICAgIFwiZmVlZFwiLFxuICAgIFwibW9uaXRvclwiLFxuICAgIFwiYXBwbGljYXRpb25cIixcbiAgICBcInRyYW5zbWl0dGVyXCIsXG4gICAgXCJidXNcIixcbiAgICBcImNpcmN1aXRcIixcbiAgICBcImNhcGFjaXRvclwiLFxuICAgIFwibWF0cml4XCJcbiAgXSxcbiAgXCJ2ZXJiXCI6IFtcbiAgICBcImJhY2sgdXBcIixcbiAgICBcImJ5cGFzc1wiLFxuICAgIFwiaGFja1wiLFxuICAgIFwib3ZlcnJpZGVcIixcbiAgICBcImNvbXByZXNzXCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJuYXZpZ2F0ZVwiLFxuICAgIFwiaW5kZXhcIixcbiAgICBcImNvbm5lY3RcIixcbiAgICBcImdlbmVyYXRlXCIsXG4gICAgXCJxdWFudGlmeVwiLFxuICAgIFwiY2FsY3VsYXRlXCIsXG4gICAgXCJzeW50aGVzaXplXCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwidHJhbnNtaXRcIixcbiAgICBcInByb2dyYW1cIixcbiAgICBcInJlYm9vdFwiLFxuICAgIFwicGFyc2VcIlxuICBdLFxuICBcImluZ3ZlcmJcIjogW1xuICAgIFwiYmFja2luZyB1cFwiLFxuICAgIFwiYnlwYXNzaW5nXCIsXG4gICAgXCJoYWNraW5nXCIsXG4gICAgXCJvdmVycmlkaW5nXCIsXG4gICAgXCJjb21wcmVzc2luZ1wiLFxuICAgIFwiY29weWluZ1wiLFxuICAgIFwibmF2aWdhdGluZ1wiLFxuICAgIFwiaW5kZXhpbmdcIixcbiAgICBcImNvbm5lY3RpbmdcIixcbiAgICBcImdlbmVyYXRpbmdcIixcbiAgICBcInF1YW50aWZ5aW5nXCIsXG4gICAgXCJjYWxjdWxhdGluZ1wiLFxuICAgIFwic3ludGhlc2l6aW5nXCIsXG4gICAgXCJ0cmFuc21pdHRpbmdcIixcbiAgICBcInByb2dyYW1taW5nXCIsXG4gICAgXCJwYXJzaW5nXCJcbiAgXVxufTtcbmVuLmFwcCA9IHtcbiAgXCJuYW1lXCI6IFtcbiAgICBcIlJlZGhvbGRcIixcbiAgICBcIlRyZWVmbGV4XCIsXG4gICAgXCJUcmlwcGxlZGV4XCIsXG4gICAgXCJLYW5sYW1cIixcbiAgICBcIkJpZ3RheFwiLFxuICAgIFwiRGFsdGZyZXNoXCIsXG4gICAgXCJUb3VnaGpveWZheFwiLFxuICAgIFwiTWF0IExhbSBUYW1cIixcbiAgICBcIk90Y29tXCIsXG4gICAgXCJUcmVzLVphcFwiLFxuICAgIFwiWS1Tb2xvd2FybVwiLFxuICAgIFwiVHJlc29tXCIsXG4gICAgXCJWb2x0c2lsbGFtXCIsXG4gICAgXCJCaW9kZXhcIixcbiAgICBcIkdyZWVubGFtXCIsXG4gICAgXCJWaXZhXCIsXG4gICAgXCJNYXRzb2Z0XCIsXG4gICAgXCJUZW1wXCIsXG4gICAgXCJab29sYWJcIixcbiAgICBcIlN1YmluXCIsXG4gICAgXCJSYW5rXCIsXG4gICAgXCJKb2JcIixcbiAgICBcIlN0cmluZ3RvdWdoXCIsXG4gICAgXCJUaW5cIixcbiAgICBcIkl0XCIsXG4gICAgXCJIb21lIEluZ1wiLFxuICAgIFwiWmFtaXRcIixcbiAgICBcIlNvbnNpbmdcIixcbiAgICBcIktvbmtsYWJcIixcbiAgICBcIkFscGhhXCIsXG4gICAgXCJMYXRsdXhcIixcbiAgICBcIlZveWF0b3VjaFwiLFxuICAgIFwiQWxwaGF6YXBcIixcbiAgICBcIkhvbGRsYW1pc1wiLFxuICAgIFwiWmFhbS1Eb3hcIixcbiAgICBcIlN1Yi1FeFwiLFxuICAgIFwiUXVvIEx1eFwiLFxuICAgIFwiQmFtaXR5XCIsXG4gICAgXCJWZW50b3NhbnphcFwiLFxuICAgIFwiTG90c3RyaW5nXCIsXG4gICAgXCJIYXRpdHlcIixcbiAgICBcIlRlbXBzb2Z0XCIsXG4gICAgXCJPdmVyaG9sZFwiLFxuICAgIFwiRml4ZmxleFwiLFxuICAgIFwiS29ua2x1eFwiLFxuICAgIFwiWm9udHJheFwiLFxuICAgIFwiVGFtcGZsZXhcIixcbiAgICBcIlNwYW5cIixcbiAgICBcIk5hbWZpeFwiLFxuICAgIFwiVHJhbnNjb2ZcIixcbiAgICBcIlN0aW1cIixcbiAgICBcIkZpeCBTYW5cIixcbiAgICBcIlNvbmFpclwiLFxuICAgIFwiU3Ryb25naG9sZFwiLFxuICAgIFwiRmludG9uZVwiLFxuICAgIFwiWS1maW5kXCIsXG4gICAgXCJPcGVsYVwiLFxuICAgIFwiTG90bHV4XCIsXG4gICAgXCJSb25zdHJpbmdcIixcbiAgICBcIlphdGhpblwiLFxuICAgIFwiRHVvYmFtXCIsXG4gICAgXCJLZXlsZXhcIlxuICBdLFxuICBcInZlcnNpb25cIjogW1xuICAgIFwiMC4jLiNcIixcbiAgICBcIjAuIyNcIixcbiAgICBcIiMuIyNcIixcbiAgICBcIiMuI1wiLFxuICAgIFwiIy4jLiNcIlxuICBdLFxuICBcImF1dGhvclwiOiBbXG4gICAgXCIje05hbWUubmFtZX1cIixcbiAgICBcIiN7Q29tcGFueS5uYW1lfVwiXG4gIF1cbn07XG5cbmVuLmZpbmFuY2UgPSB7fTtcbmVuLmZpbmFuY2UuYWNjb3VudF90eXBlID0gW1wiQ2hlY2tpbmdcIixcIlNhdmluZ3NcIixcIk1vbmV5IE1hcmtldFwiLCBcIkludmVzdG1lbnRcIiwgXCJIb21lIExvYW5cIiwgXCJDcmVkaXQgQ2FyZFwiLCBcIkF1dG8gTG9hblwiLCBcIlBlcnNvbmFsIExvYW5cIl07XG5lbi5maW5hbmNlLnRyYW5zYWN0aW9uX3R5cGUgPSBbXCJkZXBvc2l0XCIsIFwid2l0aGRyYXdhbFwiLCBcInBheW1lbnRcIiwgXCJpbnZvaWNlXCJdO1xuXG5lbi5maW5hbmNlLmN1cnJlbmN5ID0ge1xuICBcIlVBRSBEaXJoYW1cIjoge1xuICAgIFwiY29kZVwiOiBcIkFFRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJBZmdoYW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJBRk5cIixcbiAgICBcInN5bWJvbFwiOiBcItiLXCJcbiAgfSxcbiAgXCJMZWtcIjoge1xuICAgIFwiY29kZVwiOiBcIkFMTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTGVrXCJcbiAgfSxcbiAgXCJBcm1lbmlhbiBEcmFtXCI6IHtcbiAgICBcImNvZGVcIjogXCJBTURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTmV0aGVybGFuZHMgQW50aWxsaWFuIEd1aWxkZXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkFOR1wiLFxuICAgIFwic3ltYm9sXCI6IFwixpJcIlxuICB9LFxuICBcIkt3YW56YVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQU9BXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkFyZ2VudGluZSBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJBUlNcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkF1c3RyYWxpYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJBVURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkFydWJhbiBHdWlsZGVyXCI6IHtcbiAgICBcImNvZGVcIjogXCJBV0dcIixcbiAgICBcInN5bWJvbFwiOiBcIsaSXCJcbiAgfSxcbiAgXCJBemVyYmFpamFuaWFuIE1hbmF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJBWk5cIixcbiAgICBcInN5bWJvbFwiOiBcItC80LDQvVwiXG4gIH0sXG4gIFwiQ29udmVydGlibGUgTWFya3NcIjoge1xuICAgIFwiY29kZVwiOiBcIkJBTVwiLFxuICAgIFwic3ltYm9sXCI6IFwiS01cIlxuICB9LFxuICBcIkJhcmJhZG9zIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkJEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJUYWthXCI6IHtcbiAgICBcImNvZGVcIjogXCJCRFRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQnVsZ2FyaWFuIExldlwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkdOXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJCYWhyYWluaSBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQkhEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkJ1cnVuZGkgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkJJRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJCZXJtdWRpYW4gRG9sbGFyIChjdXN0b21hcmlseSBrbm93biBhcyBCZXJtdWRhIERvbGxhcilcIjoge1xuICAgIFwiY29kZVwiOiBcIkJNRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiQnJ1bmVpIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQk5EXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJCb2xpdmlhbm8gTXZkb2xcIjoge1xuICAgIFwiY29kZVwiOiBcIkJPQiBCT1ZcIixcbiAgICBcInN5bWJvbFwiOiBcIiRiXCJcbiAgfSxcbiAgXCJCcmF6aWxpYW4gUmVhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQlJMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSJFwiXG4gIH0sXG4gIFwiQmFoYW1pYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJCU0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlB1bGFcIjoge1xuICAgIFwiY29kZVwiOiBcIkJXUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiUFwiXG4gIH0sXG4gIFwiQmVsYXJ1c3NpYW4gUnVibGVcIjoge1xuICAgIFwiY29kZVwiOiBcIkJZUlwiLFxuICAgIFwic3ltYm9sXCI6IFwicC5cIlxuICB9LFxuICBcIkJlbGl6ZSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkJaRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiQlokXCJcbiAgfSxcbiAgXCJDYW5hZGlhbiBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkNBRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiQ29uZ29sZXNlIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJDREZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU3dpc3MgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkNIRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiQ0hGXCJcbiAgfSxcbiAgXCJDaGlsZWFuIFBlc28gVW5pZGFkZXMgZGUgZm9tZW50b1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ0xQIENMRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiWXVhbiBSZW5taW5iaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiQ05ZXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCpVwiXG4gIH0sXG4gIFwiQ29sb21iaWFuIFBlc28gVW5pZGFkIGRlIFZhbG9yIFJlYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIkNPUCBDT1VcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkNvc3RhIFJpY2FuIENvbG9uXCI6IHtcbiAgICBcImNvZGVcIjogXCJDUkNcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCoVwiXG4gIH0sXG4gIFwiQ3ViYW4gUGVzbyBQZXNvIENvbnZlcnRpYmxlXCI6IHtcbiAgICBcImNvZGVcIjogXCJDVVAgQ1VDXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigrFcIlxuICB9LFxuICBcIkNhcGUgVmVyZGUgRXNjdWRvXCI6IHtcbiAgICBcImNvZGVcIjogXCJDVkVcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ3plY2ggS29ydW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJDWktcIixcbiAgICBcInN5bWJvbFwiOiBcIkvEjVwiXG4gIH0sXG4gIFwiRGppYm91dGkgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIkRKRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJEYW5pc2ggS3JvbmVcIjoge1xuICAgIFwiY29kZVwiOiBcIkRLS1wiLFxuICAgIFwic3ltYm9sXCI6IFwia3JcIlxuICB9LFxuICBcIkRvbWluaWNhbiBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJET1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlJEJFwiXG4gIH0sXG4gIFwiQWxnZXJpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkRaRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJLcm9vblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRUVLXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkVneXB0aWFuIFBvdW5kXCI6IHtcbiAgICBcImNvZGVcIjogXCJFR1BcIixcbiAgICBcInN5bWJvbFwiOiBcIsKjXCJcbiAgfSxcbiAgXCJOYWtmYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiRVJOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkV0aGlvcGlhbiBCaXJyXCI6IHtcbiAgICBcImNvZGVcIjogXCJFVEJcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRXVyb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiRVVSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqxcIlxuICB9LFxuICBcIkZpamkgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJGSkRcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkZhbGtsYW5kIElzbGFuZHMgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIkZLUFwiLFxuICAgIFwic3ltYm9sXCI6IFwiwqNcIlxuICB9LFxuICBcIlBvdW5kIFN0ZXJsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJHQlBcIixcbiAgICBcInN5bWJvbFwiOiBcIsKjXCJcbiAgfSxcbiAgXCJMYXJpXCI6IHtcbiAgICBcImNvZGVcIjogXCJHRUxcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ2VkaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0hTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkdpYnJhbHRhciBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR0lQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiRGFsYXNpXCI6IHtcbiAgICBcImNvZGVcIjogXCJHTURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiR3VpbmVhIEZyYW5jXCI6IHtcbiAgICBcImNvZGVcIjogXCJHTkZcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUXVldHphbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiR1RRXCIsXG4gICAgXCJzeW1ib2xcIjogXCJRXCJcbiAgfSxcbiAgXCJHdXlhbmEgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJHWURcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkhvbmcgS29uZyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkhLRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiTGVtcGlyYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSE5MXCIsXG4gICAgXCJzeW1ib2xcIjogXCJMXCJcbiAgfSxcbiAgXCJDcm9hdGlhbiBLdW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJIUktcIixcbiAgICBcInN5bWJvbFwiOiBcImtuXCJcbiAgfSxcbiAgXCJHb3VyZGUgVVMgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJIVEcgVVNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkZvcmludFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSFVGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJGdFwiXG4gIH0sXG4gIFwiUnVwaWFoXCI6IHtcbiAgICBcImNvZGVcIjogXCJJRFJcIixcbiAgICBcInN5bWJvbFwiOiBcIlJwXCJcbiAgfSxcbiAgXCJOZXcgSXNyYWVsaSBTaGVxZWxcIjoge1xuICAgIFwiY29kZVwiOiBcIklMU1wiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKqXCJcbiAgfSxcbiAgXCJJbmRpYW4gUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIklOUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJJbmRpYW4gUnVwZWUgTmd1bHRydW1cIjoge1xuICAgIFwiY29kZVwiOiBcIklOUiBCVE5cIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSXJhcWkgRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIklRRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJJcmFuaWFuIFJpYWxcIjoge1xuICAgIFwiY29kZVwiOiBcIklSUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi77e8XCJcbiAgfSxcbiAgXCJJY2VsYW5kIEtyb25hXCI6IHtcbiAgICBcImNvZGVcIjogXCJJU0tcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJKYW1haWNhbiBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIkpNRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiSiRcIlxuICB9LFxuICBcIkpvcmRhbmlhbiBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSk9EXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlllblwiOiB7XG4gICAgXCJjb2RlXCI6IFwiSlBZXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCpVwiXG4gIH0sXG4gIFwiS2VueWFuIFNoaWxsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJLRVNcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiU29tXCI6IHtcbiAgICBcImNvZGVcIjogXCJLR1NcIixcbiAgICBcInN5bWJvbFwiOiBcItC70LJcIlxuICB9LFxuICBcIlJpZWxcIjoge1xuICAgIFwiY29kZVwiOiBcIktIUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4Z+bXCJcbiAgfSxcbiAgXCJDb21vcm8gRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIktNRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJOb3J0aCBLb3JlYW4gV29uXCI6IHtcbiAgICBcImNvZGVcIjogXCJLUFdcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqVwiXG4gIH0sXG4gIFwiV29uXCI6IHtcbiAgICBcImNvZGVcIjogXCJLUldcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqVwiXG4gIH0sXG4gIFwiS3V3YWl0aSBEaW5hclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1dEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNheW1hbiBJc2xhbmRzIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1lEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJUZW5nZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiS1pUXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJLaXBcIjoge1xuICAgIFwiY29kZVwiOiBcIkxBS1wiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKtXCJcbiAgfSxcbiAgXCJMZWJhbmVzZSBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTEJQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiU3JpIExhbmthIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJMS1JcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqFwiXG4gIH0sXG4gIFwiTGliZXJpYW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJMUkRcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIkxpdGh1YW5pYW4gTGl0YXNcIjoge1xuICAgIFwiY29kZVwiOiBcIkxUTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiTHRcIlxuICB9LFxuICBcIkxhdHZpYW4gTGF0c1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiTFZMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJMc1wiXG4gIH0sXG4gIFwiTGlieWFuIERpbmFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJMWURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTW9yb2NjYW4gRGlyaGFtXCI6IHtcbiAgICBcImNvZGVcIjogXCJNQURcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTW9sZG92YW4gTGV1XCI6IHtcbiAgICBcImNvZGVcIjogXCJNRExcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiTWFsYWdhc3kgQXJpYXJ5XCI6IHtcbiAgICBcImNvZGVcIjogXCJNR0FcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiRGVuYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIk1LRFwiLFxuICAgIFwic3ltYm9sXCI6IFwi0LTQtdC9XCJcbiAgfSxcbiAgXCJLeWF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJNTUtcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVncmlrXCI6IHtcbiAgICBcImNvZGVcIjogXCJNTlRcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCrlwiXG4gIH0sXG4gIFwiUGF0YWNhXCI6IHtcbiAgICBcImNvZGVcIjogXCJNT1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiT3VndWl5YVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVJPXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1hdXJpdGl1cyBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVVSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIlJ1Zml5YWFcIjoge1xuICAgIFwiY29kZVwiOiBcIk1WUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJLd2FjaGFcIjoge1xuICAgIFwiY29kZVwiOiBcIk1XS1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJNZXhpY2FuIFBlc28gTWV4aWNhbiBVbmlkYWQgZGUgSW52ZXJzaW9uIChVREkpXCI6IHtcbiAgICBcImNvZGVcIjogXCJNWE4gTVhWXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJNYWxheXNpYW4gUmluZ2dpdFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVlSXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSTVwiXG4gIH0sXG4gIFwiTWV0aWNhbFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTVpOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJNVFwiXG4gIH0sXG4gIFwiTmFpcmFcIjoge1xuICAgIFwiY29kZVwiOiBcIk5HTlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKmXCJcbiAgfSxcbiAgXCJDb3Jkb2JhIE9yb1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiTklPXCIsXG4gICAgXCJzeW1ib2xcIjogXCJDJFwiXG4gIH0sXG4gIFwiTm9yd2VnaWFuIEtyb25lXCI6IHtcbiAgICBcImNvZGVcIjogXCJOT0tcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJOZXBhbGVzZSBSdXBlZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTlBSXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqhcIlxuICB9LFxuICBcIk5ldyBaZWFsYW5kIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiTlpEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJSaWFsIE9tYW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJPTVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiQmFsYm9hIFVTIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUEFCIFVTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiQi8uXCJcbiAgfSxcbiAgXCJOdWV2byBTb2xcIjoge1xuICAgIFwiY29kZVwiOiBcIlBFTlwiLFxuICAgIFwic3ltYm9sXCI6IFwiUy8uXCJcbiAgfSxcbiAgXCJLaW5hXCI6IHtcbiAgICBcImNvZGVcIjogXCJQR0tcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUGhpbGlwcGluZSBQZXNvXCI6IHtcbiAgICBcImNvZGVcIjogXCJQSFBcIixcbiAgICBcInN5bWJvbFwiOiBcIlBocFwiXG4gIH0sXG4gIFwiUGFraXN0YW4gUnVwZWVcIjoge1xuICAgIFwiY29kZVwiOiBcIlBLUlwiLFxuICAgIFwic3ltYm9sXCI6IFwi4oKoXCJcbiAgfSxcbiAgXCJabG90eVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUExOXCIsXG4gICAgXCJzeW1ib2xcIjogXCJ6xYJcIlxuICB9LFxuICBcIkd1YXJhbmlcIjoge1xuICAgIFwiY29kZVwiOiBcIlBZR1wiLFxuICAgIFwic3ltYm9sXCI6IFwiR3NcIlxuICB9LFxuICBcIlFhdGFyaSBSaWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJRQVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiTmV3IExldVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUk9OXCIsXG4gICAgXCJzeW1ib2xcIjogXCJsZWlcIlxuICB9LFxuICBcIlNlcmJpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlJTRFwiLFxuICAgIFwic3ltYm9sXCI6IFwi0JTQuNC9LlwiXG4gIH0sXG4gIFwiUnVzc2lhbiBSdWJsZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiUlVCXCIsXG4gICAgXCJzeW1ib2xcIjogXCLRgNGD0LFcIlxuICB9LFxuICBcIlJ3YW5kYSBGcmFuY1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiUldGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlNhdWRpIFJpeWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJTQVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiU29sb21vbiBJc2xhbmRzIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0JEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTZXljaGVsbGVzIFJ1cGVlXCI6IHtcbiAgICBcImNvZGVcIjogXCJTQ1JcIixcbiAgICBcInN5bWJvbFwiOiBcIuKCqFwiXG4gIH0sXG4gIFwiU3VkYW5lc2UgUG91bmRcIjoge1xuICAgIFwiY29kZVwiOiBcIlNER1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTd2VkaXNoIEtyb25hXCI6IHtcbiAgICBcImNvZGVcIjogXCJTRUtcIixcbiAgICBcInN5bWJvbFwiOiBcImtyXCJcbiAgfSxcbiAgXCJTaW5nYXBvcmUgRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJTR0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlNhaW50IEhlbGVuYSBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU0hQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTGVvbmVcIjoge1xuICAgIFwiY29kZVwiOiBcIlNMTFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTb21hbGkgU2hpbGxpbmdcIjoge1xuICAgIFwiY29kZVwiOiBcIlNPU1wiLFxuICAgIFwic3ltYm9sXCI6IFwiU1wiXG4gIH0sXG4gIFwiU3VyaW5hbSBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlNSRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiJFwiXG4gIH0sXG4gIFwiRG9icmFcIjoge1xuICAgIFwiY29kZVwiOiBcIlNURFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFbCBTYWx2YWRvciBDb2xvbiBVUyBEb2xsYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlNWQyBVU0RcIixcbiAgICBcInN5bWJvbFwiOiBcIiRcIlxuICB9LFxuICBcIlN5cmlhbiBQb3VuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiU1lQXCIsXG4gICAgXCJzeW1ib2xcIjogXCLCo1wiXG4gIH0sXG4gIFwiTGlsYW5nZW5pXCI6IHtcbiAgICBcImNvZGVcIjogXCJTWkxcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQmFodFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVEhCXCIsXG4gICAgXCJzeW1ib2xcIjogXCLguL9cIlxuICB9LFxuICBcIlNvbW9uaVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVEpTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIk1hbmF0XCI6IHtcbiAgICBcImNvZGVcIjogXCJUTVRcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVuaXNpYW4gRGluYXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlRORFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQYSdhbmdhXCI6IHtcbiAgICBcImNvZGVcIjogXCJUT1BcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiVHVya2lzaCBMaXJhXCI6IHtcbiAgICBcImNvZGVcIjogXCJUUllcIixcbiAgICBcInN5bWJvbFwiOiBcIlRMXCJcbiAgfSxcbiAgXCJUcmluaWRhZCBhbmQgVG9iYWdvIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVFREXCIsXG4gICAgXCJzeW1ib2xcIjogXCJUVCRcIlxuICB9LFxuICBcIk5ldyBUYWl3YW4gRG9sbGFyXCI6IHtcbiAgICBcImNvZGVcIjogXCJUV0RcIixcbiAgICBcInN5bWJvbFwiOiBcIk5UJFwiXG4gIH0sXG4gIFwiVGFuemFuaWFuIFNoaWxsaW5nXCI6IHtcbiAgICBcImNvZGVcIjogXCJUWlNcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiSHJ5dm5pYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVUFIXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigrRcIlxuICB9LFxuICBcIlVnYW5kYSBTaGlsbGluZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiVUdYXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlVTIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVVNEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJQZXNvIFVydWd1YXlvIFVydWd1YXkgUGVzbyBlbiBVbmlkYWRlcyBJbmRleGFkYXNcIjoge1xuICAgIFwiY29kZVwiOiBcIlVZVSBVWUlcIixcbiAgICBcInN5bWJvbFwiOiBcIiRVXCJcbiAgfSxcbiAgXCJVemJla2lzdGFuIFN1bVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVVpTXCIsXG4gICAgXCJzeW1ib2xcIjogXCLQu9CyXCJcbiAgfSxcbiAgXCJCb2xpdmFyIEZ1ZXJ0ZVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiVkVGXCIsXG4gICAgXCJzeW1ib2xcIjogXCJCc1wiXG4gIH0sXG4gIFwiRG9uZ1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiVk5EXCIsXG4gICAgXCJzeW1ib2xcIjogXCLigqtcIlxuICB9LFxuICBcIlZhdHVcIjoge1xuICAgIFwiY29kZVwiOiBcIlZVVlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJUYWxhXCI6IHtcbiAgICBcImNvZGVcIjogXCJXU1RcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQ0ZBIEZyYW5jIEJFQUNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhBRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJTaWx2ZXJcIjoge1xuICAgIFwiY29kZVwiOiBcIlhBR1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJHb2xkXCI6IHtcbiAgICBcImNvZGVcIjogXCJYQVVcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiQm9uZCBNYXJrZXRzIFVuaXRzIEV1cm9wZWFuIENvbXBvc2l0ZSBVbml0IChFVVJDTylcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQVwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBNb25ldGFyeSBVbml0IChFLk0uVS4tNilcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBVbml0IG9mIEFjY291bnQgOShFLlUuQS4tOSlcIjoge1xuICAgIFwiY29kZVwiOiBcIlhCQ1wiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJFdXJvcGVhbiBVbml0IG9mIEFjY291bnQgMTcoRS5VLkEuLTE3KVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWEJEXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkVhc3QgQ2FyaWJiZWFuIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWENEXCIsXG4gICAgXCJzeW1ib2xcIjogXCIkXCJcbiAgfSxcbiAgXCJTRFJcIjoge1xuICAgIFwiY29kZVwiOiBcIlhEUlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJVSUMtRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhGVVwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDRkEgRnJhbmMgQkNFQU9cIjoge1xuICAgIFwiY29kZVwiOiBcIlhPRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQYWxsYWRpdW1cIjoge1xuICAgIFwiY29kZVwiOiBcIlhQRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJDRlAgRnJhbmNcIjoge1xuICAgIFwiY29kZVwiOiBcIlhQRlwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJQbGF0aW51bVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWFBUXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIkNvZGVzIHNwZWNpZmljYWxseSByZXNlcnZlZCBmb3IgdGVzdGluZyBwdXJwb3Nlc1wiOiB7XG4gICAgXCJjb2RlXCI6IFwiWFRTXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlllbWVuaSBSaWFsXCI6IHtcbiAgICBcImNvZGVcIjogXCJZRVJcIixcbiAgICBcInN5bWJvbFwiOiBcIu+3vFwiXG4gIH0sXG4gIFwiUmFuZFwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWkFSXCIsXG4gICAgXCJzeW1ib2xcIjogXCJSXCJcbiAgfSxcbiAgXCJSYW5kIExvdGlcIjoge1xuICAgIFwiY29kZVwiOiBcIlpBUiBMU0xcIixcbiAgICBcInN5bWJvbFwiOiBcIlwiXG4gIH0sXG4gIFwiUmFuZCBOYW1pYmlhIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWkFSIE5BRFwiLFxuICAgIFwic3ltYm9sXCI6IFwiXCJcbiAgfSxcbiAgXCJaYW1iaWFuIEt3YWNoYVwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWk1LXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9LFxuICBcIlppbWJhYndlIERvbGxhclwiOiB7XG4gICAgXCJjb2RlXCI6IFwiWldMXCIsXG4gICAgXCJzeW1ib2xcIjogXCJcIlxuICB9XG59OyIsInZhciBlbl9BVSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVuX0FVO1xuZW5fQVUudGl0bGUgPSBcIkF1c3RyYWxpYSAoRW5nbGlzaClcIjtcbmVuX0FVLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJPbGl2ZXJcIixcbiAgICBcIkpvc2h1YVwiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJMYWNobGFuXCIsXG4gICAgXCJDb29wZXJcIixcbiAgICBcIk5vYWhcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiSmFtZXNcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiSmFjb2JcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIk1heFwiLFxuICAgIFwiSXNhYWNcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiUmlsZXlcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJKYWtlXCIsXG4gICAgXCJNYXR0aGV3XCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIkhhcnJ5XCIsXG4gICAgXCJKYXlkZW5cIixcbiAgICBcIk5pY2hvbGFzXCIsXG4gICAgXCJIYXJyaXNvblwiLFxuICAgIFwiTGV2aVwiLFxuICAgIFwiTHVrZVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiSGVucnlcIixcbiAgICBcIkFpZGVuXCIsXG4gICAgXCJEeWxhblwiLFxuICAgIFwiT3NjYXJcIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIkxvZ2FuXCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkJsYWtlXCIsXG4gICAgXCJOYXRoYW5cIixcbiAgICBcIkNvbm5vclwiLFxuICAgIFwiRWxpamFoXCIsXG4gICAgXCJOYXRlXCIsXG4gICAgXCJBcmNoaWVcIixcbiAgICBcIkJhaWxleVwiLFxuICAgIFwiTWFyY3VzXCIsXG4gICAgXCJDYW1lcm9uXCIsXG4gICAgXCJKb3JkYW5cIixcbiAgICBcIlphY2hhcnlcIixcbiAgICBcIkNhbGViXCIsXG4gICAgXCJIdW50ZXJcIixcbiAgICBcIkFzaHRvblwiLFxuICAgIFwiVG9ieVwiLFxuICAgIFwiQWlkYW5cIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiTWFzb25cIixcbiAgICBcIkhhbWlzaFwiLFxuICAgIFwiRWR3YXJkXCIsXG4gICAgXCJBbmd1c1wiLFxuICAgIFwiRWxpXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIkNocmlzdGlhblwiLFxuICAgIFwiUGF0cmlja1wiLFxuICAgIFwiQW5kcmV3XCIsXG4gICAgXCJBbnRob255XCIsXG4gICAgXCJMdWNhXCIsXG4gICAgXCJLYWlcIixcbiAgICBcIkJlYXVcIixcbiAgICBcIkFsZXhcIixcbiAgICBcIkdlb3JnZVwiLFxuICAgIFwiQ2FsbHVtXCIsXG4gICAgXCJGaW5uXCIsXG4gICAgXCJaYWNcIixcbiAgICBcIk1pdGNoZWxsXCIsXG4gICAgXCJKZXR0XCIsXG4gICAgXCJKZXNzZVwiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiTGVvXCIsXG4gICAgXCJEZWNsYW5cIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkphc3BlclwiLFxuICAgIFwiSm9uYXRoYW5cIixcbiAgICBcIkFhcm9uXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiQ2hyaXN0b3BoZXJcIixcbiAgICBcIkNoYXNlXCIsXG4gICAgXCJPd2VuXCIsXG4gICAgXCJKdXN0aW5cIixcbiAgICBcIkFsaVwiLFxuICAgIFwiRGFyY3lcIixcbiAgICBcIkxpbmNvbG5cIixcbiAgICBcIkNvZHlcIixcbiAgICBcIlBob2VuaXhcIixcbiAgICBcIlNhbVwiLFxuICAgIFwiSm9oblwiLFxuICAgIFwiSm9lbFwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIkNobG9lXCIsXG4gICAgXCJPbGl2aWFcIixcbiAgICBcIkNoYXJsb3R0ZVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJMaWx5XCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiU2llbm5hXCIsXG4gICAgXCJTb3BoaWVcIixcbiAgICBcIkFtZWxpYVwiLFxuICAgIFwiR3JhY2VcIixcbiAgICBcIkF2YVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJTb3BoaWFcIixcbiAgICBcIk1hdGlsZGFcIixcbiAgICBcIkhhbm5haFwiLFxuICAgIFwiSmVzc2ljYVwiLFxuICAgIFwiTHVjeVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiU2FyYWhcIixcbiAgICBcIkFiaWdhaWxcIixcbiAgICBcIlphcmFcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiU2NhcmxldHRcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkNoZWxzZWFcIixcbiAgICBcIkxpbGx5XCIsXG4gICAgXCJJdnlcIixcbiAgICBcIklzbGFcIixcbiAgICBcIkV2aWVcIixcbiAgICBcIklzYWJlbGxlXCIsXG4gICAgXCJNYWRkaXNvblwiLFxuICAgIFwiTGF5bGFcIixcbiAgICBcIlN1bW1lclwiLFxuICAgIFwiQW5uYWJlbGxlXCIsXG4gICAgXCJBbGV4aXNcIixcbiAgICBcIkVsaXphYmV0aFwiLFxuICAgIFwiQmVsbGFcIixcbiAgICBcIkhvbGx5XCIsXG4gICAgXCJMYXJhXCIsXG4gICAgXCJNYWRpc29uXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIk1heWFcIixcbiAgICBcIlRhaGxpYVwiLFxuICAgIFwiQ2xhaXJlXCIsXG4gICAgXCJIYXlsZXlcIixcbiAgICBcIkltb2dlblwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiRWxsaWVcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJBZGRpc29uXCIsXG4gICAgXCJNb2xseVwiLFxuICAgIFwiUGhvZWJlXCIsXG4gICAgXCJBbGljZVwiLFxuICAgIFwiU2F2YW5uYWhcIixcbiAgICBcIkdhYnJpZWxsYVwiLFxuICAgIFwiS2F5bGFcIixcbiAgICBcIk1pa2F5bGFcIixcbiAgICBcIkFiYmV5XCIsXG4gICAgXCJFbGl6YVwiLFxuICAgIFwiV2lsbG93XCIsXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIlBvcHB5XCIsXG4gICAgXCJTYW1hbnRoYVwiLFxuICAgIFwiU3RlbGxhXCIsXG4gICAgXCJBbXlcIixcbiAgICBcIkFtZWxpZVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiUGlwZXJcIixcbiAgICBcIkdlbW1hXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJTdGVwaGFuaWVcIixcbiAgICBcIkNhaXRsaW5cIixcbiAgICBcIkhlaWRpXCIsXG4gICAgXCJQYWlnZVwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiQW1iZXJcIixcbiAgICBcIkF1ZHJleVwiLFxuICAgIFwiQ2xhdWRpYVwiLFxuICAgIFwiVGF5bG9yXCIsXG4gICAgXCJNYWRlbGluZVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIk5hdGFsaWVcIixcbiAgICBcIkNoYXJsaVwiLFxuICAgIFwiTGF1cmVuXCIsXG4gICAgXCJBc2hsZXlcIixcbiAgICBcIlZpb2xldFwiLFxuICAgIFwiTWFja2VuemllXCIsXG4gICAgXCJBYmJ5XCIsXG4gICAgXCJTa3llXCIsXG4gICAgXCJMaWxsaWFuXCIsXG4gICAgXCJBbGFuYVwiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiRXZlXCIsXG4gICAgXCJLaWFyYVwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIlNtaXRoXCIsXG4gICAgXCJKb25lc1wiLFxuICAgIFwiV2lsbGlhbXNcIixcbiAgICBcIkJyb3duXCIsXG4gICAgXCJXaWxzb25cIixcbiAgICBcIlRheWxvclwiLFxuICAgIFwiSm9obnNvblwiLFxuICAgIFwiV2hpdGVcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIlRob21wc29uXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiV2Fsa2VyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiUm9iaW5zb25cIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJEYXZpc1wiLFxuICAgIFwiV3JpZ2h0XCIsXG4gICAgXCJFdmFuc1wiLFxuICAgIFwiUm9iZXJ0c1wiLFxuICAgIFwiR3JlZW5cIixcbiAgICBcIkhhbGxcIixcbiAgICBcIldvb2RcIixcbiAgICBcIkphY2tzb25cIixcbiAgICBcIkNsYXJrZVwiLFxuICAgIFwiUGF0ZWxcIixcbiAgICBcIktoYW5cIixcbiAgICBcIkxld2lzXCIsXG4gICAgXCJKYW1lc1wiLFxuICAgIFwiUGhpbGxpcHNcIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJNaXRjaGVsbFwiLFxuICAgIFwiUm9zZVwiLFxuICAgIFwiRGF2aWVzXCIsXG4gICAgXCJSb2RyaWd1ZXpcIixcbiAgICBcIkNveFwiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJHYXJkZW5cIixcbiAgICBcIkNhbXBiZWxsXCIsXG4gICAgXCJKb2huc3RvblwiLFxuICAgIFwiTW9vcmVcIixcbiAgICBcIlNteXRoXCIsXG4gICAgXCJPJ25laWxsXCIsXG4gICAgXCJEb2hlcnR5XCIsXG4gICAgXCJTdGV3YXJ0XCIsXG4gICAgXCJRdWlublwiLFxuICAgIFwiTXVycGh5XCIsXG4gICAgXCJHcmFoYW1cIixcbiAgICBcIk1jbGF1Z2hsaW5cIixcbiAgICBcIkhhbWlsdG9uXCIsXG4gICAgXCJNdXJyYXlcIixcbiAgICBcIkh1Z2hlc1wiLFxuICAgIFwiUm9iZXJ0c29uXCIsXG4gICAgXCJUaG9tc29uXCIsXG4gICAgXCJTY290dFwiLFxuICAgIFwiTWFjZG9uYWxkXCIsXG4gICAgXCJSZWlkXCIsXG4gICAgXCJDbGFya1wiLFxuICAgIFwiUm9zc1wiLFxuICAgIFwiWW91bmdcIixcbiAgICBcIldhdHNvblwiLFxuICAgIFwiUGF0ZXJzb25cIixcbiAgICBcIk1vcnJpc29uXCIsXG4gICAgXCJNb3JnYW5cIixcbiAgICBcIkdyaWZmaXRoc1wiLFxuICAgIFwiRWR3YXJkc1wiLFxuICAgIFwiUmVlc1wiLFxuICAgIFwiSmVua2luc1wiLFxuICAgIFwiT3dlblwiLFxuICAgIFwiUHJpY2VcIixcbiAgICBcIk1vc3NcIixcbiAgICBcIlJpY2hhcmRzXCIsXG4gICAgXCJBYmJvdHRcIixcbiAgICBcIkFkYW1zXCIsXG4gICAgXCJBcm1zdHJvbmdcIixcbiAgICBcIkJhaHJpbmdlclwiLFxuICAgIFwiQmFpbGV5XCIsXG4gICAgXCJCYXJyb3dzXCIsXG4gICAgXCJCYXJ0ZWxsXCIsXG4gICAgXCJCYXJ0b2xldHRpXCIsXG4gICAgXCJCYXJ0b25cIixcbiAgICBcIkJhdWNoXCIsXG4gICAgXCJCYXVtYmFjaFwiLFxuICAgIFwiQmF5ZXJcIixcbiAgICBcIkJlYWhhblwiLFxuICAgIFwiQmVhdHR5XCIsXG4gICAgXCJCZWNrZXJcIixcbiAgICBcIkJlaWVyXCIsXG4gICAgXCJCZXJnZVwiLFxuICAgIFwiQmVyZ3N0cm9tXCIsXG4gICAgXCJCb2RlXCIsXG4gICAgXCJCb2dhblwiLFxuICAgIFwiQm9yZXJcIixcbiAgICBcIkJvc2NvXCIsXG4gICAgXCJCb3RzZm9yZFwiLFxuICAgIFwiQm95ZXJcIixcbiAgICBcIkJveWxlXCIsXG4gICAgXCJCcmF1blwiLFxuICAgIFwiQnJ1ZW5cIixcbiAgICBcIkNhcnJvbGxcIixcbiAgICBcIkNhcnRlclwiLFxuICAgIFwiQ2FydHdyaWdodFwiLFxuICAgIFwiQ2FzcGVyXCIsXG4gICAgXCJDYXNzaW5cIixcbiAgICBcIkNoYW1wbGluXCIsXG4gICAgXCJDaHJpc3RpYW5zZW5cIixcbiAgICBcIkNvbGVcIixcbiAgICBcIkNvbGxpZXJcIixcbiAgICBcIkNvbGxpbnNcIixcbiAgICBcIkNvbm5lbGx5XCIsXG4gICAgXCJDb25yb3lcIixcbiAgICBcIkNvcmtlcnlcIixcbiAgICBcIkNvcm1pZXJcIixcbiAgICBcIkNvcndpblwiLFxuICAgIFwiQ3JvbmluXCIsXG4gICAgXCJDcm9va3NcIixcbiAgICBcIkNydWlja3NoYW5rXCIsXG4gICAgXCJDdW1taW5nc1wiLFxuICAgIFwiRCdhbW9yZVwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJEYXJlXCIsXG4gICAgXCJEYXVnaGVydHlcIixcbiAgICBcIkRpY2tlbnNcIixcbiAgICBcIkRpY2tpbnNvblwiLFxuICAgIFwiRGlldHJpY2hcIixcbiAgICBcIkRvbm5lbGx5XCIsXG4gICAgXCJEb29sZXlcIixcbiAgICBcIkRvdWdsYXNcIixcbiAgICBcIkRveWxlXCIsXG4gICAgXCJEdXJnYW5cIixcbiAgICBcIkViZXJ0XCIsXG4gICAgXCJFbWFyZFwiLFxuICAgIFwiRW1tZXJpY2hcIixcbiAgICBcIkVyZG1hblwiLFxuICAgIFwiRXJuc2VyXCIsXG4gICAgXCJGYWRlbFwiLFxuICAgIFwiRmFoZXlcIixcbiAgICBcIkZhcnJlbGxcIixcbiAgICBcIkZheVwiLFxuICAgIFwiRmVlbmV5XCIsXG4gICAgXCJGZWlsXCIsXG4gICAgXCJGZXJyeVwiLFxuICAgIFwiRmlzaGVyXCIsXG4gICAgXCJGbGF0bGV5XCIsXG4gICAgXCJHaWJzb25cIixcbiAgICBcIkdsZWFzb25cIixcbiAgICBcIkdsb3ZlclwiLFxuICAgIFwiR29sZG5lclwiLFxuICAgIFwiR29vZHdpblwiLFxuICAgIFwiR3JhZHlcIixcbiAgICBcIkdyYW50XCIsXG4gICAgXCJHcmVlbmZlbGRlclwiLFxuICAgIFwiR3JlZW5ob2x0XCIsXG4gICAgXCJHcmltZXNcIixcbiAgICBcIkd1dG1hbm5cIixcbiAgICBcIkhhY2tldHRcIixcbiAgICBcIkhhaG5cIixcbiAgICBcIkhhbGV5XCIsXG4gICAgXCJIYW1tZXNcIixcbiAgICBcIkhhbmRcIixcbiAgICBcIkhhbmVcIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiSGFyYmVyXCIsXG4gICAgXCJIYXJ0bWFublwiLFxuICAgIFwiSGFydmV5XCIsXG4gICAgXCJIYXllc1wiLFxuICAgIFwiSGVhbmV5XCIsXG4gICAgXCJIZWF0aGNvdGVcIixcbiAgICBcIkhlbGxlclwiLFxuICAgIFwiSGVybWFublwiLFxuICAgIFwiSGVybWlzdG9uXCIsXG4gICAgXCJIZXNzZWxcIixcbiAgICBcIkhldHRpbmdlclwiLFxuICAgIFwiSGlja2xlXCIsXG4gICAgXCJIaWxsXCIsXG4gICAgXCJIaWxsc1wiLFxuICAgIFwiSG9wcGVcIixcbiAgICBcIkhvd2VcIixcbiAgICBcIkhvd2VsbFwiLFxuICAgIFwiSHVkc29uXCIsXG4gICAgXCJIdWVsXCIsXG4gICAgXCJIeWF0dFwiLFxuICAgIFwiSmFjb2JpXCIsXG4gICAgXCJKYWNvYnNcIixcbiAgICBcIkphY29ic29uXCIsXG4gICAgXCJKZXJkZVwiLFxuICAgIFwiSm9obnNcIixcbiAgICBcIktlZWxpbmdcIixcbiAgICBcIktlbW1lclwiLFxuICAgIFwiS2Vzc2xlclwiLFxuICAgIFwiS2llaG5cIixcbiAgICBcIktpcmxpblwiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktvY2hcIixcbiAgICBcIktvZWxwaW5cIixcbiAgICBcIktvaGxlclwiLFxuICAgIFwiS29zc1wiLFxuICAgIFwiS292YWNla1wiLFxuICAgIFwiS3JlaWdlclwiLFxuICAgIFwiS3Jpc1wiLFxuICAgIFwiS3VobG1hblwiLFxuICAgIFwiS3VoblwiLFxuICAgIFwiS3VsYXNcIixcbiAgICBcIkt1bmRlXCIsXG4gICAgXCJLdXRjaFwiLFxuICAgIFwiTGFraW5cIixcbiAgICBcIkxhbmdcIixcbiAgICBcIkxhbmd3b3J0aFwiLFxuICAgIFwiTGFya2luXCIsXG4gICAgXCJMYXJzb25cIixcbiAgICBcIkxlYW5ub25cIixcbiAgICBcIkxlZmZsZXJcIixcbiAgICBcIkxpdHRsZVwiLFxuICAgIFwiTG9ja21hblwiLFxuICAgIFwiTG93ZVwiLFxuICAgIFwiTHluY2hcIixcbiAgICBcIk1hbm5cIixcbiAgICBcIk1hcmtzXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1heWVyXCIsXG4gICAgXCJNY2N1bGxvdWdoXCIsXG4gICAgXCJNY2Rlcm1vdHRcIixcbiAgICBcIk1ja2VuemllXCIsXG4gICAgXCJNaWxsZXJcIixcbiAgICBcIk1pbGxzXCIsXG4gICAgXCJNb25haGFuXCIsXG4gICAgXCJNb3Jpc3NldHRlXCIsXG4gICAgXCJNdWVsbGVyXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIk5hZGVyXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJOb2xhblwiLFxuICAgIFwiTydjb25uZWxsXCIsXG4gICAgXCJPJ2Nvbm5lclwiLFxuICAgIFwiTydoYXJhXCIsXG4gICAgXCJPJ2tlZWZlXCIsXG4gICAgXCJPbHNvblwiLFxuICAgIFwiTydyZWlsbHlcIixcbiAgICBcIlBhcmlzaWFuXCIsXG4gICAgXCJQYXJrZXJcIixcbiAgICBcIlF1aWdsZXlcIixcbiAgICBcIlJlaWxseVwiLFxuICAgIFwiUmV5bm9sZHNcIixcbiAgICBcIlJpY2VcIixcbiAgICBcIlJpdGNoaWVcIixcbiAgICBcIlJvaGFuXCIsXG4gICAgXCJSb2xmc29uXCIsXG4gICAgXCJSb3dlXCIsXG4gICAgXCJSdXNzZWxcIixcbiAgICBcIlJ1dGhlcmZvcmRcIixcbiAgICBcIlNhbmZvcmRcIixcbiAgICBcIlNhdWVyXCIsXG4gICAgXCJTY2htaWR0XCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJTY2huZWlkZXJcIixcbiAgICBcIlNjaHJvZWRlclwiLFxuICAgIFwiU2NodWx0elwiLFxuICAgIFwiU2hpZWxkc1wiLFxuICAgIFwiU21pdGhhbVwiLFxuICAgIFwiU3BlbmNlclwiLFxuICAgIFwiU3RhbnRvblwiLFxuICAgIFwiU3RhcmtcIixcbiAgICBcIlN0b2tlc1wiLFxuICAgIFwiU3dpZnRcIixcbiAgICBcIlRpbGxtYW5cIixcbiAgICBcIlRvd25lXCIsXG4gICAgXCJUcmVtYmxheVwiLFxuICAgIFwiVHJvbXBcIixcbiAgICBcIlR1cmNvdHRlXCIsXG4gICAgXCJUdXJuZXJcIixcbiAgICBcIldhbHNoXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhcmRcIixcbiAgICBcIldhdGVyc1wiLFxuICAgIFwiV2ViZXJcIixcbiAgICBcIldlbGNoXCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJXaWxkZXJtYW5cIixcbiAgICBcIldpbGtpbnNvblwiLFxuICAgIFwiV2lsbGlhbXNvblwiLFxuICAgIFwiV2luZGxlclwiLFxuICAgIFwiV29sZlwiXG4gIF1cbn07XG5lbl9BVS5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJQdHkgTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCIsXG4gICAgXCJQYXJ0bmVyc1wiXG4gIF1cbn07XG5lbl9BVS5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbS5hdVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXQuYXVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnLmF1XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZW5fQVUuYWRkcmVzcyA9IHtcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIk5TV1wiLFxuICAgIFwiUUxEXCIsXG4gICAgXCJOVFwiLFxuICAgIFwiU0FcIixcbiAgICBcIldBXCIsXG4gICAgXCJUQVNcIixcbiAgICBcIkFDVFwiLFxuICAgIFwiVklDXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJOZXcgU291dGggV2FsZXNcIixcbiAgICBcIlF1ZWVuc2xhbmRcIixcbiAgICBcIk5vcnRoZXJuIFRlcnJpdG9yeVwiLFxuICAgIFwiU291dGggQXVzdHJhbGlhXCIsXG4gICAgXCJXZXN0ZXJuIEF1c3RyYWxpYVwiLFxuICAgIFwiVGFzbWFuaWFcIixcbiAgICBcIkF1c3RyYWxpYW4gQ2FwaXRhbCBUZXJyaXRvcnlcIixcbiAgICBcIlZpY3RvcmlhXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIwIyMjXCIsXG4gICAgXCIyIyMjXCIsXG4gICAgXCIzIyMjXCIsXG4gICAgXCI0IyMjXCIsXG4gICAgXCI1IyMjXCIsXG4gICAgXCI2IyMjXCIsXG4gICAgXCI3IyMjXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjXCIsXG4gICAgXCIjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJBdmVudWVcIixcbiAgICBcIkJvdWxldmFyZFwiLFxuICAgIFwiQ2lyY2xlXCIsXG4gICAgXCJDaXJjdWl0XCIsXG4gICAgXCJDb3VydFwiLFxuICAgIFwiQ3Jlc2NlbnRcIixcbiAgICBcIkNyZXN0XCIsXG4gICAgXCJEcml2ZVwiLFxuICAgIFwiRXN0YXRlIERyXCIsXG4gICAgXCJHcm92ZVwiLFxuICAgIFwiSGlsbFwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJKdW5jdGlvblwiLFxuICAgIFwiS25vbGxcIixcbiAgICBcIkxhbmVcIixcbiAgICBcIkxvb3BcIixcbiAgICBcIk1hbGxcIixcbiAgICBcIk1hbm9yXCIsXG4gICAgXCJNZWFkb3dcIixcbiAgICBcIk1ld3NcIixcbiAgICBcIlBhcmFkZVwiLFxuICAgIFwiUGFya3dheVwiLFxuICAgIFwiUGFzc1wiLFxuICAgIFwiUGxhY2VcIixcbiAgICBcIlBsYXphXCIsXG4gICAgXCJSaWRnZVwiLFxuICAgIFwiUm9hZFwiLFxuICAgIFwiUnVuXCIsXG4gICAgXCJTcXVhcmVcIixcbiAgICBcIlN0YXRpb24gU3RcIixcbiAgICBcIlN0cmVldFwiLFxuICAgIFwiU3VtbWl0XCIsXG4gICAgXCJUZXJyYWNlXCIsXG4gICAgXCJUcmFja1wiLFxuICAgIFwiVHJhaWxcIixcbiAgICBcIlZpZXcgUmRcIixcbiAgICBcIldheVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkF1c3RyYWxpYVwiXG4gIF1cbn07XG5lbl9BVS5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwIyAjIyMjICMjIyNcIixcbiAgICBcIis2MSAjICMjIyMgIyMjI1wiLFxuICAgIFwiMDQjIyAjIyMgIyMjXCIsXG4gICAgXCIrNjEgNCMjICMjIyAjIyNcIlxuICBdXG59O1xuIiwidmFyIGVuX0JPUksgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9CT1JLO1xuZW5fQk9SSy50aXRsZSA9IFwiQm9yayAoRW5nbGlzaClcIjtcbmVuX0JPUksubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwiQm9vdFwiLFxuICAgIFwiSVwiLFxuICAgIFwiTnVcIixcbiAgICBcIk51clwiLFxuICAgIFwiVHVcIixcbiAgICBcIlVtXCIsXG4gICAgXCJhXCIsXG4gICAgXCJiZWNvb3NlLWFcIixcbiAgICBcImJvb3RcIixcbiAgICBcImJvcmtcIixcbiAgICBcImJ1cm5cIixcbiAgICBcImNodXVzZXNcIixcbiAgICBcImN1bXBsZXRlLWFcIixcbiAgICBcImN1blwiLFxuICAgIFwiY3Vuc2Vxb29lbmNlc1wiLFxuICAgIFwiY3VyY29vbXN0dW5jZXNcIixcbiAgICBcImRlZVwiLFxuICAgIFwiZGVlc2xpa2VzXCIsXG4gICAgXCJkZW51b29uY2VlbmdcIixcbiAgICBcImRlc3VyZXNcIixcbiAgICBcImR1XCIsXG4gICAgXCJlY2N1b29udFwiLFxuICAgIFwiZWN0b29lbFwiLFxuICAgIFwiZWRmdW50ZWdlLWFcIixcbiAgICBcImVmdWVlZHNcIixcbiAgICBcImVnZWVlblwiLFxuICAgIFwiZWxsXCIsXG4gICAgXCJlcmUtYVwiLFxuICAgIFwiZmVlbmRcIixcbiAgICBcImZvb2x0XCIsXG4gICAgXCJmcnVtXCIsXG4gICAgXCJnZWVmZS1hXCIsXG4gICAgXCJnZXNoXCIsXG4gICAgXCJncmVldFwiLFxuICAgIFwiaGVlbVwiLFxuICAgIFwiaGVwcGVlbmVzc1wiLFxuICAgIFwiaGVzXCIsXG4gICAgXCJob29cIixcbiAgICBcImhvb211blwiLFxuICAgIFwiaWRlYVwiLFxuICAgIFwiaWZlclwiLFxuICAgIFwiaW5cIixcbiAgICBcImluY3Vvb250ZXJcIixcbiAgICBcImluanV5XCIsXG4gICAgXCJpdHNlbGZmXCIsXG4gICAgXCJpeGNlcHRcIixcbiAgICBcIml4ZW1wbGUtYVwiLFxuICAgIFwiaXhlcmNlZXNlLWFcIixcbiAgICBcIml4cGxlZWVuXCIsXG4gICAgXCJpeHBsdXJlclwiLFxuICAgIFwiaXhwdW9vbmRcIixcbiAgICBcIml4dHJlbWVseVwiLFxuICAgIFwia25vb1wiLFxuICAgIFwibGVidXJlZXVvb3NcIixcbiAgICBcImx1ZmVzXCIsXG4gICAgXCJtZWVzdGVrZWVcIixcbiAgICBcIm1lc3Rlci1ib29lZWxkZXJcIixcbiAgICBcIm1vb3N0XCIsXG4gICAgXCJtdW5cIixcbiAgICBcIm51XCIsXG4gICAgXCJudXRcIixcbiAgICBcIm9vYnRlZWVuXCIsXG4gICAgXCJvb2NjZXNlZXVuZWxseVwiLFxuICAgIFwib29jY29vclwiLFxuICAgIFwib29mZlwiLFxuICAgIFwib29uZS1hXCIsXG4gICAgXCJvb3JcIixcbiAgICBcInBlZWVuXCIsXG4gICAgXCJwZWVlbmZmb29sXCIsXG4gICAgXCJwaHlzZWVjZWxcIixcbiAgICBcInBsZWVzb29yZS1hXCIsXG4gICAgXCJwb29yc29vZS1hXCIsXG4gICAgXCJwb29yc29vZXNcIixcbiAgICBcInByZWVlc2luZ1wiLFxuICAgIFwicHJ1Y29vcmUtYVwiLFxuICAgIFwicHJ1ZG9vY2VzXCIsXG4gICAgXCJyZWVnaHRcIixcbiAgICBcInJlc2h1bmVsbHlcIixcbiAgICBcInJlc29vbHR1bnRcIixcbiAgICBcInN1bWUtYVwiLFxuICAgIFwidGVlY2hlZW5nc1wiLFxuICAgIFwidGVrZS1hXCIsXG4gICAgXCJ0aGVlc1wiLFxuICAgIFwidGhldFwiLFxuICAgIFwidGh1c2UtYVwiLFxuICAgIFwidHJlZWZpZWxcIixcbiAgICBcInRyb290XCIsXG4gICAgXCJ0dVwiLFxuICAgIFwidHVlZWxcIixcbiAgICBcInVuZFwiLFxuICAgIFwidW5kZXJ0ZWtlc1wiLFxuICAgIFwidW5udXllZW5nXCIsXG4gICAgXCJ1bnlcIixcbiAgICBcInVueXVuZS1hXCIsXG4gICAgXCJ1c1wiLFxuICAgIFwidmVlbGxcIixcbiAgICBcInZlZXRcIixcbiAgICBcInZlc1wiLFxuICAgIFwidmhlZWNoXCIsXG4gICAgXCJ2aHVcIixcbiAgICBcInl1b29cIixcbiAgICBcInplZVwiLFxuICAgIFwiemVlcmUtYVwiXG4gIF1cbn07XG4iLCJ2YXIgZW5fQ0EgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9DQTtcbmVuX0NBLnRpdGxlID0gXCJDYW5hZGEgKEVuZ2xpc2gpXCI7XG5lbl9DQS5hZGRyZXNzID0ge1xuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIj8jPyAjPyNcIixcbiAgICBcIj8jPyM/I1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxiZXJ0YVwiLFxuICAgIFwiQnJpdGlzaCBDb2x1bWJpYVwiLFxuICAgIFwiTWFuaXRvYmFcIixcbiAgICBcIk5ldyBCcnVuc3dpY2tcIixcbiAgICBcIk5ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3JcIixcbiAgICBcIk5vdmEgU2NvdGlhXCIsXG4gICAgXCJOb3J0aHdlc3QgVGVycml0b3JpZXNcIixcbiAgICBcIk51bmF2dXRcIixcbiAgICBcIk9udGFyaW9cIixcbiAgICBcIlByaW5jZSBFZHdhcmQgSXNsYW5kXCIsXG4gICAgXCJRdWViZWNcIixcbiAgICBcIlNhc2thdGNoZXdhblwiLFxuICAgIFwiWXVrb25cIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiQUJcIixcbiAgICBcIkJDXCIsXG4gICAgXCJNQlwiLFxuICAgIFwiTkJcIixcbiAgICBcIk5MXCIsXG4gICAgXCJOU1wiLFxuICAgIFwiTlVcIixcbiAgICBcIk5UXCIsXG4gICAgXCJPTlwiLFxuICAgIFwiUEVcIixcbiAgICBcIlFDXCIsXG4gICAgXCJTS1wiLFxuICAgIFwiWUtcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJDYW5hZGFcIlxuICBdXG59O1xuZW5fQ0EuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNhXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjYVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX0NBLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMtIyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjXCIsXG4gICAgXCIxLSMjIy0jIyMtIyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyNcIixcbiAgICBcIigjIyMpIyMjLSMjIyMgeCMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyMgeCMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyNcIixcbiAgICBcIiMjIy0jIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjIyB4IyMjI1wiLFxuICAgIFwiMS0jIyMtIyMjLSMjIyMgeCMjIyNcIixcbiAgICBcIiMjIy4jIyMuIyMjIyB4IyMjI1wiLFxuICAgIFwiIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiKCMjIykjIyMtIyMjIyB4IyMjIyNcIixcbiAgICBcIjEtIyMjLSMjIy0jIyMjIHgjIyMjI1wiLFxuICAgIFwiIyMjLiMjIy4jIyMjIHgjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fR0IgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9HQjtcbmVuX0dCLnRpdGxlID0gXCJHcmVhdCBCcml0YWluIChFbmdsaXNoKVwiO1xuZW5fR0IuYWRkcmVzcyA9IHtcbiAgXCJwb3N0Y29kZVwiOiBcIi9bQS1QUi1VV1laXVtBLUhLLVldP1swLTldW0FCRUhNTlBSVldYWTAtOV0/IFswLTldW0FCRC1ISkxOLVVXLVpdezJ9L1wiLFxuICBcImNvdW50eVwiOiBbXG4gICAgXCJBdm9uXCIsXG4gICAgXCJCZWRmb3Jkc2hpcmVcIixcbiAgICBcIkJlcmtzaGlyZVwiLFxuICAgIFwiQm9yZGVyc1wiLFxuICAgIFwiQnVja2luZ2hhbXNoaXJlXCIsXG4gICAgXCJDYW1icmlkZ2VzaGlyZVwiLFxuICAgIFwiQ2VudHJhbFwiLFxuICAgIFwiQ2hlc2hpcmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2x3eWRcIixcbiAgICBcIkNvcm53YWxsXCIsXG4gICAgXCJDb3VudHkgQW50cmltXCIsXG4gICAgXCJDb3VudHkgQXJtYWdoXCIsXG4gICAgXCJDb3VudHkgRG93blwiLFxuICAgIFwiQ291bnR5IEZlcm1hbmFnaFwiLFxuICAgIFwiQ291bnR5IExvbmRvbmRlcnJ5XCIsXG4gICAgXCJDb3VudHkgVHlyb25lXCIsXG4gICAgXCJDdW1icmlhXCIsXG4gICAgXCJEZXJieXNoaXJlXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRG9yc2V0XCIsXG4gICAgXCJEdW1mcmllcyBhbmQgR2FsbG93YXlcIixcbiAgICBcIkR1cmhhbVwiLFxuICAgIFwiRHlmZWRcIixcbiAgICBcIkVhc3QgU3Vzc2V4XCIsXG4gICAgXCJFc3NleFwiLFxuICAgIFwiRmlmZVwiLFxuICAgIFwiR2xvdWNlc3RlcnNoaXJlXCIsXG4gICAgXCJHcmFtcGlhblwiLFxuICAgIFwiR3JlYXRlciBNYW5jaGVzdGVyXCIsXG4gICAgXCJHd2VudFwiLFxuICAgIFwiR3d5bmVkZCBDb3VudHlcIixcbiAgICBcIkhhbXBzaGlyZVwiLFxuICAgIFwiSGVyZWZvcmRzaGlyZVwiLFxuICAgIFwiSGVydGZvcmRzaGlyZVwiLFxuICAgIFwiSGlnaGxhbmRzIGFuZCBJc2xhbmRzXCIsXG4gICAgXCJIdW1iZXJzaWRlXCIsXG4gICAgXCJJc2xlIG9mIFdpZ2h0XCIsXG4gICAgXCJLZW50XCIsXG4gICAgXCJMYW5jYXNoaXJlXCIsXG4gICAgXCJMZWljZXN0ZXJzaGlyZVwiLFxuICAgIFwiTGluY29sbnNoaXJlXCIsXG4gICAgXCJMb3RoaWFuXCIsXG4gICAgXCJNZXJzZXlzaWRlXCIsXG4gICAgXCJNaWQgR2xhbW9yZ2FuXCIsXG4gICAgXCJOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aCBZb3Jrc2hpcmVcIixcbiAgICBcIk5vcnRoYW1wdG9uc2hpcmVcIixcbiAgICBcIk5vcnRodW1iZXJsYW5kXCIsXG4gICAgXCJOb3R0aW5naGFtc2hpcmVcIixcbiAgICBcIk94Zm9yZHNoaXJlXCIsXG4gICAgXCJQb3d5c1wiLFxuICAgIFwiUnV0bGFuZFwiLFxuICAgIFwiU2hyb3BzaGlyZVwiLFxuICAgIFwiU29tZXJzZXRcIixcbiAgICBcIlNvdXRoIEdsYW1vcmdhblwiLFxuICAgIFwiU291dGggWW9ya3NoaXJlXCIsXG4gICAgXCJTdGFmZm9yZHNoaXJlXCIsXG4gICAgXCJTdHJhdGhjbHlkZVwiLFxuICAgIFwiU3VmZm9sa1wiLFxuICAgIFwiU3VycmV5XCIsXG4gICAgXCJUYXlzaWRlXCIsXG4gICAgXCJUeW5lIGFuZCBXZWFyXCIsXG4gICAgXCJXYXJ3aWNrc2hpcmVcIixcbiAgICBcIldlc3QgR2xhbW9yZ2FuXCIsXG4gICAgXCJXZXN0IE1pZGxhbmRzXCIsXG4gICAgXCJXZXN0IFN1c3NleFwiLFxuICAgIFwiV2VzdCBZb3Jrc2hpcmVcIixcbiAgICBcIldpbHRzaGlyZVwiLFxuICAgIFwiV29yY2VzdGVyc2hpcmVcIlxuICBdLFxuICBcInVrX2NvdW50cnlcIjogW1xuICAgIFwiRW5nbGFuZFwiLFxuICAgIFwiU2NvdGxhbmRcIixcbiAgICBcIldhbGVzXCIsXG4gICAgXCJOb3J0aGVybiBJcmVsYW5kXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiRW5nbGFuZFwiLFxuICAgIFwiU2NvdGxhbmRcIixcbiAgICBcIldhbGVzXCIsXG4gICAgXCJOb3J0aGVybiBJcmVsYW5kXCJcbiAgXVxufTtcbmVuX0dCLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY28udWtcIixcbiAgICBcImNvbVwiLFxuICAgIFwiYml6XCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuYW1lXCJcbiAgXVxufTtcbmVuX0dCLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAxIyMjIyAjIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyMjXCIsXG4gICAgXCIwMSMxICMjIyAjIyMjXCIsXG4gICAgXCIwMTEjICMjIyAjIyMjXCIsXG4gICAgXCIwMiMgIyMjIyAjIyMjXCIsXG4gICAgXCIwMyMjICMjIyAjIyMjXCIsXG4gICAgXCIwNTUgIyMjIyAjIyMjXCIsXG4gICAgXCIwNTYgIyMjIyAjIyMjXCIsXG4gICAgXCIwODAwICMjIyAjIyMjXCIsXG4gICAgXCIwOCMjICMjIyAjIyMjXCIsXG4gICAgXCIwOSMjICMjIyAjIyMjXCIsXG4gICAgXCIwMTY5NzcgIyMjI1wiLFxuICAgIFwiMDEjIyMgIyMjIyNcIixcbiAgICBcIjA1MDAgIyMjIyMjXCIsXG4gICAgXCIwODAwICMjIyMjI1wiXG4gIF1cbn07XG5lbl9HQi5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDc0IyMgIyMjIyMjXCIsXG4gICAgXCIwNzUjIyAjIyMjIyNcIixcbiAgICBcIjA3NiMjICMjIyMjI1wiLFxuICAgIFwiMDc3IyMgIyMjIyMjXCIsXG4gICAgXCIwNzgjIyAjIyMjIyNcIixcbiAgICBcIjA3OSMjICMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fSU5EID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZW5fSU5EO1xuZW5fSU5ELnRpdGxlID0gXCJJbmRpYSAoRW5nbGlzaClcIjtcbmVuX0lORC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFkcmlrYVwiLFxuICAgIFwiQWFuYW5kaW5paVwiLFxuICAgIFwiQWFyYXRyaWthXCIsXG4gICAgXCJBYXJ5YVwiLFxuICAgIFwiQXJ5YVwiLFxuICAgIFwiQWFzaHJpdGhhXCIsXG4gICAgXCJBYXRtYWphXCIsXG4gICAgXCJBdG1hamFcIixcbiAgICBcIkFiaGF5YVwiLFxuICAgIFwiQWR3aXRpeWFcIixcbiAgICBcIkFncmF0YVwiLFxuICAgIFwiQWhpbHlhXCIsXG4gICAgXCJBaGFseWFcIixcbiAgICBcIkFpc2hhbmlcIixcbiAgICBcIkFrc2hhaW5pZVwiLFxuICAgIFwiQWtzaGF0YVwiLFxuICAgIFwiQWtzaGl0YVwiLFxuICAgIFwiQWt1bGFcIixcbiAgICBcIkFtYmFyXCIsXG4gICAgXCJBbW9kaW5pXCIsXG4gICAgXCJBbXJpdGFcIixcbiAgICBcIkFtcml0YW1idVwiLFxuICAgIFwiQW5hbGFcIixcbiAgICBcIkFuYW1pa2FcIixcbiAgICBcIkFuYW5kYVwiLFxuICAgIFwiQW5hbmRhbWF5aVwiLFxuICAgIFwiQW5hbnRhXCIsXG4gICAgXCJBbmlsYVwiLFxuICAgIFwiQW5qYWxpXCIsXG4gICAgXCJBbmp1c2hyaVwiLFxuICAgIFwiQW5qdXNocmVlXCIsXG4gICAgXCJBbm5hcHVybmFcIixcbiAgICBcIkFuc2h1bGFcIixcbiAgICBcIkFudWphXCIsXG4gICAgXCJBbnVzdXlhXCIsXG4gICAgXCJBbmFzdXlhXCIsXG4gICAgXCJBbmFzb295YVwiLFxuICAgIFwiQW53ZXNoYVwiLFxuICAgIFwiQXBzYXJhXCIsXG4gICAgXCJBcnVuYVwiLFxuICAgIFwiQXNoYVwiLFxuICAgIFwiQWFzYVwiLFxuICAgIFwiQWFzaGFcIixcbiAgICBcIkFzbGVzaGFcIixcbiAgICBcIkF0cmV5aVwiLFxuICAgIFwiQXRyZXllZVwiLFxuICAgIFwiQXZhbmlcIixcbiAgICBcIkFiYW5pXCIsXG4gICAgXCJBdmFudGlrYVwiLFxuICAgIFwiQXl1c2htYXRpXCIsXG4gICAgXCJCYWlkZWhpXCIsXG4gICAgXCJWYWlkZWhpXCIsXG4gICAgXCJCYWxhXCIsXG4gICAgXCJCYWFsYVwiLFxuICAgIFwiQmFsYW1hbmlcIixcbiAgICBcIkJhc2FudGlcIixcbiAgICBcIlZhc2FudGlcIixcbiAgICBcIkJlbGFcIixcbiAgICBcIkJoYWRyYVwiLFxuICAgIFwiQmhhZ2lyYXRoaVwiLFxuICAgIFwiQmhhZ3dhbnRpXCIsXG4gICAgXCJCaGFnd2F0aVwiLFxuICAgIFwiQmhhbWluaVwiLFxuICAgIFwiQmhhbnVtYXRpXCIsXG4gICAgXCJCaGFhbnVtYXRpXCIsXG4gICAgXCJCaGFyZ2F2aVwiLFxuICAgIFwiQmhhdmFuaVwiLFxuICAgIFwiQmhpbGFuZ2FuYVwiLFxuICAgIFwiQmlsd2FcIixcbiAgICBcIkJpbHZhXCIsXG4gICAgXCJCdWRkaGFuYVwiLFxuICAgIFwiQ2hha3Jpa2FcIixcbiAgICBcIkNoYW5kYVwiLFxuICAgIFwiQ2hhbmRpXCIsXG4gICAgXCJDaGFuZG5pXCIsXG4gICAgXCJDaGFuZGluaVwiLFxuICAgIFwiQ2hhbmRhbmlcIixcbiAgICBcIkNoYW5kcmFcIixcbiAgICBcIkNoYW5kaXJhXCIsXG4gICAgXCJDaGFuZHJhYmhhZ2FcIixcbiAgICBcIkNoYW5kcmFrYWxhXCIsXG4gICAgXCJDaGFuZHJha2luXCIsXG4gICAgXCJDaGFuZHJhbWFuaVwiLFxuICAgIFwiQ2hhbmRyYW5pXCIsXG4gICAgXCJDaGFuZHJhcHJhYmhhXCIsXG4gICAgXCJDaGFuZHJhc3dhcm9vcGFcIixcbiAgICBcIkNoYW5kcmF2YXRpXCIsXG4gICAgXCJDaGFwYWxhXCIsXG4gICAgXCJDaGFydW1hdGlcIixcbiAgICBcIkNoYXJ2aVwiLFxuICAgIFwiQ2hhdHVyYVwiLFxuICAgIFwiQ2hpdHJhbGlcIixcbiAgICBcIkNoaXRyYW1hbGFcIixcbiAgICBcIkNoaXRyYW5nYWRhXCIsXG4gICAgXCJEYWtzaGFcIixcbiAgICBcIkRha3NoYXlhbmlcIixcbiAgICBcIkRhbWF5YW50aVwiLFxuICAgIFwiRGFyc2h3YW5hXCIsXG4gICAgXCJEZWVwYWxpXCIsXG4gICAgXCJEaXBhbGlcIixcbiAgICBcIkRlZXB0aW1veWVlXCIsXG4gICAgXCJEZWVwdGltYXllZVwiLFxuICAgIFwiRGV2YW5nYW5hXCIsXG4gICAgXCJEZXZhbmlcIixcbiAgICBcIkRldmFzcmVlXCIsXG4gICAgXCJEZXZpXCIsXG4gICAgXCJEYWV2aVwiLFxuICAgIFwiRGV2aWthXCIsXG4gICAgXCJEYWV2aWthXCIsXG4gICAgXCJEaGFhbnlhbGFrc2htaVwiLFxuICAgIFwiRGhhbmFsYWtzaG1pXCIsXG4gICAgXCJEaGFuYVwiLFxuICAgIFwiRGhhbmFkZWVwYVwiLFxuICAgIFwiRGhhcmFcIixcbiAgICBcIkRoYXJhbmlcIixcbiAgICBcIkRoYXJpdHJpXCIsXG4gICAgXCJEaGF0cmlcIixcbiAgICBcIkRpa3NoYVwiLFxuICAgIFwiRGVla3NoYVwiLFxuICAgIFwiRGl2eWFcIixcbiAgICBcIkRyYXVwYWRpXCIsXG4gICAgXCJEdWxhcmlcIixcbiAgICBcIkR1cmdhXCIsXG4gICAgXCJEdXJnZXNod2FyaVwiLFxuICAgIFwiRWthcGFybmlrYVwiLFxuICAgIFwiRWxha3NoaVwiLFxuICAgIFwiRW5ha3NoaVwiLFxuICAgIFwiRXNoYVwiLFxuICAgIFwiRXNoYW5hXCIsXG4gICAgXCJFc2hpdGFcIixcbiAgICBcIkdhdXRhbWlcIixcbiAgICBcIkdheWF0cmlcIixcbiAgICBcIkdlZXRhXCIsXG4gICAgXCJHZWV0YW5qYWxpXCIsXG4gICAgXCJHaXRhbmphbGlcIixcbiAgICBcIkdlbWluZVwiLFxuICAgIFwiR2VtaW5pXCIsXG4gICAgXCJHaXJqYVwiLFxuICAgIFwiR2lyaWphXCIsXG4gICAgXCJHaXRhXCIsXG4gICAgXCJIYW1zaW5pXCIsXG4gICAgXCJIYXJpbmFrc2hpXCIsXG4gICAgXCJIYXJpdGFcIixcbiAgICBcIkhlZW1hXCIsXG4gICAgXCJIaW1hZHJpXCIsXG4gICAgXCJIaW1hbmlcIixcbiAgICBcIkhpcmFueWFcIixcbiAgICBcIkluZGlyYVwiLFxuICAgIFwiSmFpbWluaVwiLFxuICAgIFwiSmF5YVwiLFxuICAgIFwiSnlvdGlcIixcbiAgICBcIkp5b3RzYW5hXCIsXG4gICAgXCJLYWxpXCIsXG4gICAgXCJLYWxpbmRhXCIsXG4gICAgXCJLYWxwYW5hXCIsXG4gICAgXCJLYWx5YW5pXCIsXG4gICAgXCJLYW1hXCIsXG4gICAgXCJLYW1hbGFcIixcbiAgICBcIkthbWxhXCIsXG4gICAgXCJLYW5jaGFuXCIsXG4gICAgXCJLYW5pc2hrYVwiLFxuICAgIFwiS2FudGlcIixcbiAgICBcIkthc2h5YXBpXCIsXG4gICAgXCJLdW1hcmlcIixcbiAgICBcIkt1bXVkYVwiLFxuICAgIFwiTGFrc2htaVwiLFxuICAgIFwiTGF4bWlcIixcbiAgICBcIkxhbGl0YVwiLFxuICAgIFwiTGF2YW55YVwiLFxuICAgIFwiTGVlbGFcIixcbiAgICBcIkxpbGFcIixcbiAgICBcIkxlZWxhXCIsXG4gICAgXCJNYWRodXJpXCIsXG4gICAgXCJNYWx0aVwiLFxuICAgIFwiTWFsYXRpXCIsXG4gICAgXCJNYW5kYWtpbmlcIixcbiAgICBcIk1hbmRhYWtpblwiLFxuICAgIFwiTWFuZ2FsYVwiLFxuICAgIFwiTWFuZ2FseWFcIixcbiAgICBcIk1hbmlcIixcbiAgICBcIk1hbmlzaGFcIixcbiAgICBcIk1hbmp1c2hhXCIsXG4gICAgXCJNZWVuYVwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiTWVlbmFrc2hpXCIsXG4gICAgXCJNaW5ha3NoaVwiLFxuICAgIFwiTWVua2FcIixcbiAgICBcIk1lbmFrYVwiLFxuICAgIFwiTW9oYW5hXCIsXG4gICAgXCJNb2hpbmlcIixcbiAgICBcIk5hbGluaVwiLFxuICAgIFwiTmlraXRhXCIsXG4gICAgXCJPamFzd2luaVwiLFxuICAgIFwiT21hbmFcIixcbiAgICBcIk9vcm1pbGFcIixcbiAgICBcIlVybWlsYVwiLFxuICAgIFwiT3BhbGluYVwiLFxuICAgIFwiT3BhbGluZVwiLFxuICAgIFwiUGFkbWFcIixcbiAgICBcIlBhcnZhdGlcIixcbiAgICBcIlBvb3JuaW1hXCIsXG4gICAgXCJQdXJuaW1hXCIsXG4gICAgXCJQcmFtaWxhXCIsXG4gICAgXCJQcmFzYW5uYVwiLFxuICAgIFwiUHJlaXR5XCIsXG4gICAgXCJQcmVtYVwiLFxuICAgIFwiUHJpeWFcIixcbiAgICBcIlByaXlhbGFcIixcbiAgICBcIlB1c2h0aVwiLFxuICAgIFwiUmFkaGFcIixcbiAgICBcIlJhZ2Vzd2FyaVwiLFxuICAgIFwiUmFnZXNod2FyaVwiLFxuICAgIFwiUmFqaW5kZXJcIixcbiAgICBcIlJhbWFhXCIsXG4gICAgXCJSYXRpXCIsXG4gICAgXCJSaXRhXCIsXG4gICAgXCJSb2hhbmFcIixcbiAgICBcIlJ1a2htYW5pXCIsXG4gICAgXCJSdWttaW5cIixcbiAgICBcIlJ1cGluZGVyXCIsXG4gICAgXCJTYW55YVwiLFxuICAgIFwiU2FyYWRhXCIsXG4gICAgXCJTaGFyZGFcIixcbiAgICBcIlNhcmFsYVwiLFxuICAgIFwiU2FybGFcIixcbiAgICBcIlNhcmFzd2F0aVwiLFxuICAgIFwiU2FyaXNoYVwiLFxuICAgIFwiU2Fyb2phXCIsXG4gICAgXCJTaGFrdGlcIixcbiAgICBcIlNoYWt1bnRhbGFcIixcbiAgICBcIlNoYW50aVwiLFxuICAgIFwiU2hhcm1pbGFcIixcbiAgICBcIlNoYXNoaVwiLFxuICAgIFwiU2hhc2hpa2FsYVwiLFxuICAgIFwiU2hlZWxhXCIsXG4gICAgXCJTaGl2YWthcmlcIixcbiAgICBcIlNob2JoYW5hXCIsXG4gICAgXCJTaHJlc3RoXCIsXG4gICAgXCJTaHJlc3RoaVwiLFxuICAgIFwiU2hyZXlhXCIsXG4gICAgXCJTaHJleWFzaGlcIixcbiAgICBcIlNocmlkZXZpXCIsXG4gICAgXCJTaHJpc2h0aVwiLFxuICAgIFwiU2h1YmhhXCIsXG4gICAgXCJTaHViaGFwcmFkYVwiLFxuICAgIFwiU2lkZGhpXCIsXG4gICAgXCJTaXRhcmFcIixcbiAgICBcIlNsb2thXCIsXG4gICAgXCJTbWl0YVwiLFxuICAgIFwiU21yaXRpXCIsXG4gICAgXCJTb21hXCIsXG4gICAgXCJTdWJoYXNoaW5pXCIsXG4gICAgXCJTdWJoYXNpbmlcIixcbiAgICBcIlN1Y2hldGFcIixcbiAgICBcIlN1ZGV2YVwiLFxuICAgIFwiU3VqYXRhXCIsXG4gICAgXCJTdWthbnlhXCIsXG4gICAgXCJTdW1hXCIsXG4gICAgXCJTdW1hXCIsXG4gICAgXCJTdW1pdHJhXCIsXG4gICAgXCJTdW5pdGFcIixcbiAgICBcIlN1cnlha2FudGFtXCIsXG4gICAgXCJTdXNobWFcIixcbiAgICBcIlN3YXJhXCIsXG4gICAgXCJTd2FybmFsYXRhXCIsXG4gICAgXCJTd2V0YVwiLFxuICAgIFwiU2h3ZXRcIixcbiAgICBcIlRhbmlyaWthXCIsXG4gICAgXCJUYW51c2hyZWVcIixcbiAgICBcIlRhbnVzaHJpXCIsXG4gICAgXCJUYW51c2hyaVwiLFxuICAgIFwiVGFueWFcIixcbiAgICBcIlRhcmFcIixcbiAgICBcIlRyaXNoYVwiLFxuICAgIFwiVW1hXCIsXG4gICAgXCJVc2hhXCIsXG4gICAgXCJWYWlqYXlhbnRpXCIsXG4gICAgXCJWYWlqYXlhbnRoaVwiLFxuICAgIFwiQmFpamF5YW50aVwiLFxuICAgIFwiVmFpc2h2aVwiLFxuICAgIFwiVmFpc2huYXZpXCIsXG4gICAgXCJWYWlzaG5vXCIsXG4gICAgXCJWYXJhbGFrc2htaVwiLFxuICAgIFwiVmFzdWRoYVwiLFxuICAgIFwiVmFzdW5kaGFyYVwiLFxuICAgIFwiVmVkYVwiLFxuICAgIFwiVmVkYW5zaGlcIixcbiAgICBcIlZpZHlhXCIsXG4gICAgXCJWaW1hbGFcIixcbiAgICBcIlZyaW5kYVwiLFxuICAgIFwiVnJ1bmRcIixcbiAgICBcIkFhZGlcIixcbiAgICBcIkFhZGlkZXZcIixcbiAgICBcIkFhZGluYXRoXCIsXG4gICAgXCJBYWRpdHlhXCIsXG4gICAgXCJBYWdhbVwiLFxuICAgIFwiQWFnbmV5XCIsXG4gICAgXCJBYW1vZFwiLFxuICAgIFwiQWFuYW5kYXN3YXJ1cFwiLFxuICAgIFwiQW5hbmQgU3dhcnVwXCIsXG4gICAgXCJBYW5qYW5leWFcIixcbiAgICBcIkFuamFuZXlhXCIsXG4gICAgXCJBYXJ5YW5cIixcbiAgICBcIkFyeWFuXCIsXG4gICAgXCJBYXRtYWpcIixcbiAgICBcIkFhdHJleWFcIixcbiAgICBcIkFheXVzaG1hYW5cIixcbiAgICBcIkFheXVzaG1hblwiLFxuICAgIFwiQWJoYWlkZXZcIixcbiAgICBcIkFiaGF5YVwiLFxuICAgIFwiQWJoaXJhdGhcIixcbiAgICBcIkFiaGlzeWFudGFcIixcbiAgICBcIkFjYXJ5YXRhbmF5YVwiLFxuICAgIFwiQWNoYWxlc3ZhcmFcIixcbiAgICBcIkFjaGFyeWFuYW5kYW5hXCIsXG4gICAgXCJBY2hhcnlhc3V0YVwiLFxuICAgIFwiQWNoaW50eWFcIixcbiAgICBcIkFjaHl1dFwiLFxuICAgIFwiQWRoZWVzaFwiLFxuICAgIFwiQWRoaXJhalwiLFxuICAgIFwiQWRocml0XCIsXG4gICAgXCJBZGlrYXZpXCIsXG4gICAgXCJBZGluYXRoXCIsXG4gICAgXCJBZGl0ZXlhXCIsXG4gICAgXCJBZGl0eWFcIixcbiAgICBcIkFkaXR5YW5hbmRhblwiLFxuICAgIFwiQWRpdHlhbmFuZGFuYVwiLFxuICAgIFwiQWRyaXBhdGhpXCIsXG4gICAgXCJBZHZheWFcIixcbiAgICBcIkFnYXN0aVwiLFxuICAgIFwiQWdhc3R5YVwiLFxuICAgIFwiQWduZXlhXCIsXG4gICAgXCJBYWduZXlhXCIsXG4gICAgXCJBZ25pbWl0cmFcIixcbiAgICBcIkFnbmlwcmF2YVwiLFxuICAgIFwiQWduaXZlc2hcIixcbiAgICBcIkFncmF0YVwiLFxuICAgIFwiQWppdFwiLFxuICAgIFwiQWplZXRcIixcbiAgICBcIkFrcm9vclwiLFxuICAgIFwiQWtzaGFqXCIsXG4gICAgXCJBa3NoYXRcIixcbiAgICBcIkFrc2hheWFrZWVydGlcIixcbiAgICBcIkFsb2tcIixcbiAgICBcIkFhbG9rXCIsXG4gICAgXCJBbWFyYW5hYXRoXCIsXG4gICAgXCJBbWFybmF0aFwiLFxuICAgIFwiQW1hcmVzaFwiLFxuICAgIFwiQW1iYXJcIixcbiAgICBcIkFtZXlhdG1hXCIsXG4gICAgXCJBbWlzaFwiLFxuICAgIFwiQW1vZ2hcIixcbiAgICBcIkFtcml0XCIsXG4gICAgXCJBbmFhZGlcIixcbiAgICBcIkFuYWdoXCIsXG4gICAgXCJBbmFsXCIsXG4gICAgXCJBbmFuZFwiLFxuICAgIFwiQWFuYW5kXCIsXG4gICAgXCJBbmFuZ1wiLFxuICAgIFwiQW5pbFwiLFxuICAgIFwiQW5pbGFhYmhcIixcbiAgICBcIkFuaWxhYmhcIixcbiAgICBcIkFuaXNoXCIsXG4gICAgXCJBbmthbFwiLFxuICAgIFwiQW51bmF5XCIsXG4gICAgXCJBbnVyYWdcIixcbiAgICBcIkFudXJhYWdcIixcbiAgICBcIkFyY2hhblwiLFxuICAgIFwiQXJpbmRhbVwiLFxuICAgIFwiQXJqdW5cIixcbiAgICBcIkFybmVzaFwiLFxuICAgIFwiQXJ1blwiLFxuICAgIFwiQXNobGVzaFwiLFxuICAgIFwiQXNob2tcIixcbiAgICBcIkF0bWFuYW5kXCIsXG4gICAgXCJBdG1hbmFuZGFcIixcbiAgICBcIkF2YWRoZXNoXCIsXG4gICAgXCJCYWFsYWFkaXR5YVwiLFxuICAgIFwiQmFsYWRpdHlhXCIsXG4gICAgXCJCYWFsYWdvcGFhbFwiLFxuICAgIFwiQmFsZ29wYWxcIixcbiAgICBcIkJhbGFnb3BhbFwiLFxuICAgIFwiQmFodWxhXCIsXG4gICAgXCJCYWt1bGFcIixcbiAgICBcIkJhbGFcIixcbiAgICBcIkJhbGFhZGl0eWFcIixcbiAgICBcIkJhbGFjaGFuZHJhXCIsXG4gICAgXCJCYWxhZ292aW5kXCIsXG4gICAgXCJCYW5kaHVcIixcbiAgICBcIkJhbmRodWxcIixcbiAgICBcIkJhbmtpbVwiLFxuICAgIFwiQmFua2ltY2hhbmRyYVwiLFxuICAgIFwiQmhhZHJha1wiLFxuICAgIFwiQmhhZHJha3NoXCIsXG4gICAgXCJCaGFkcmFuXCIsXG4gICAgXCJCaGFnYXZhYW5cIixcbiAgICBcIkJoYWd2YW5cIixcbiAgICBcIkJoYXJhZHdhalwiLFxuICAgIFwiQmhhcmR3YWpcIixcbiAgICBcIkJoYXJhdFwiLFxuICAgIFwiQmhhcmdhdmFcIixcbiAgICBcIkJoYXN2YW5cIixcbiAgICBcIkJoYWFzdmFuXCIsXG4gICAgXCJCaGFzd2FyXCIsXG4gICAgXCJCaGFhc3dhclwiLFxuICAgIFwiQmhhdW1pa1wiLFxuICAgIFwiQmhhdmVzXCIsXG4gICAgXCJCaGVlc2htYVwiLFxuICAgIFwiQmhpc2hhbVwiLFxuICAgIFwiQmhpc2htYVwiLFxuICAgIFwiQmhpbWFcIixcbiAgICBcIkJob2pcIixcbiAgICBcIkJocmFtYXJcIixcbiAgICBcIkJodWRldlwiLFxuICAgIFwiQmh1ZGV2YVwiLFxuICAgIFwiQmh1cGF0aVwiLFxuICAgIFwiQmhvb3BhdGlcIixcbiAgICBcIkJob29wYXRcIixcbiAgICBcIkJodXBlblwiLFxuICAgIFwiQmh1c2hhblwiLFxuICAgIFwiQmhvb3NoYW5cIixcbiAgICBcIkJodXNoaXRcIixcbiAgICBcIkJob29zaGl0XCIsXG4gICAgXCJCaHV2YW5lc2hcIixcbiAgICBcIkJodXZhbmVzaHdhclwiLFxuICAgIFwiQmlsdmFcIixcbiAgICBcIkJvZGhhblwiLFxuICAgIFwiQnJhaG1hXCIsXG4gICAgXCJCcmFobWFicmF0YVwiLFxuICAgIFwiQnJhaG1hbmFuZGFtXCIsXG4gICAgXCJCcmFobWFhbmFuZFwiLFxuICAgIFwiQnJhaG1kZXZcIixcbiAgICBcIkJyYWplbmRyYVwiLFxuICAgIFwiQnJhamVzaFwiLFxuICAgIFwiQnJpamVzaFwiLFxuICAgIFwiQmlyamVzaFwiLFxuICAgIFwiQnVkaGlsXCIsXG4gICAgXCJDaGFrb3JcIixcbiAgICBcIkNoYWtyYWRoYXJcIixcbiAgICBcIkNoYWtyYXZhcnRlZVwiLFxuICAgIFwiQ2hha3JhdmFydGlcIixcbiAgICBcIkNoYW5ha3lhXCIsXG4gICAgXCJDaGFhbmFreWFcIixcbiAgICBcIkNoYW5kYWtcIixcbiAgICBcIkNoYW5kYW5cIixcbiAgICBcIkNoYW5kcmFcIixcbiAgICBcIkNoYW5kcmFheWFuXCIsXG4gICAgXCJDaGFuZHJhYmhhblwiLFxuICAgIFwiQ2hhbmRyYWRldlwiLFxuICAgIFwiQ2hhbmRyYWtldHVcIixcbiAgICBcIkNoYW5kcmFtYXVsaVwiLFxuICAgIFwiQ2hhbmRyYW1vaGFuXCIsXG4gICAgXCJDaGFuZHJhblwiLFxuICAgIFwiQ2hhbmRyYW5hdGhcIixcbiAgICBcIkNoYXBhbFwiLFxuICAgIFwiQ2hhcmFrXCIsXG4gICAgXCJDaGFydWNoYW5kcmFcIixcbiAgICBcIkNoYWFydWNoYW5kcmFcIixcbiAgICBcIkNoYXJ1dnJhdFwiLFxuICAgIFwiQ2hhdHVyXCIsXG4gICAgXCJDaGF0dXJhYW5hblwiLFxuICAgIFwiQ2hhdHVyYmh1alwiLFxuICAgIFwiQ2hldGFuXCIsXG4gICAgXCJDaGF0ZW5cIixcbiAgICBcIkNoYWl0YW5cIixcbiAgICBcIkNoZXRhbmFhbmFuZFwiLFxuICAgIFwiQ2hpZGFha2Fhc2hcIixcbiAgICBcIkNoaWRhYXRtYVwiLFxuICAgIFwiQ2hpZGFtYmFyXCIsXG4gICAgXCJDaGlkYW1iYXJhbVwiLFxuICAgIFwiQ2hpZGFuYW5kYVwiLFxuICAgIFwiQ2hpbm1heWFuYW5kXCIsXG4gICAgXCJDaGlubWF5YW5hbmRhXCIsXG4gICAgXCJDaGlyYW5qZWV2XCIsXG4gICAgXCJDaGlyYW5qZWV2ZVwiLFxuICAgIFwiQ2hpdHJha3NoXCIsXG4gICAgXCJEYWl3aWtcIixcbiAgICBcIkRha3NoYVwiLFxuICAgIFwiRGFtb2RhcmFcIixcbiAgICBcIkRhbmRha1wiLFxuICAgIFwiRGFuZGFwYWFuaVwiLFxuICAgIFwiRGFyc2hhblwiLFxuICAgIFwiRGF0dGFcIixcbiAgICBcIkRheWFhbWF5XCIsXG4gICAgXCJEYXlhbWF5ZWVcIixcbiAgICBcIkRheWFhbmFuZGFcIixcbiAgICBcIkRheWFhbmlkaGlcIixcbiAgICBcIktpblwiLFxuICAgIFwiRGVlbmFiYW5kaHVcIixcbiAgICBcIkRlZXBhblwiLFxuICAgIFwiRGVlcGFua2FyXCIsXG4gICAgXCJEaXBhbmthclwiLFxuICAgIFwiRGVlcGVuZHJhXCIsXG4gICAgXCJEaXBlbmRyYVwiLFxuICAgIFwiRGVlcGVzaFwiLFxuICAgIFwiRGlwZXNoXCIsXG4gICAgXCJEZWVwdGFuc2h1XCIsXG4gICAgXCJEZWVwdGVuZHVcIixcbiAgICBcIkRpcHRlbmR1XCIsXG4gICAgXCJEZWVwdGltYW5cIixcbiAgICBcIkRlZXB0aW1veVwiLFxuICAgIFwiRGVlcHRpbWF5XCIsXG4gICAgXCJEZXZcIixcbiAgICBcIkRlYlwiLFxuICAgIFwiRGV2YWRhdHRcIixcbiAgICBcIkRldmFneWFcIixcbiAgICBcIkRldmFqeW90aVwiLFxuICAgIFwiRGV2YWtcIixcbiAgICBcIkRldmRhblwiLFxuICAgIFwiRGV2ZW5cIixcbiAgICBcIkRldmVzaFwiLFxuICAgIFwiRGV2ZXNod2FyXCIsXG4gICAgXCJEZXZpXCIsXG4gICAgXCJEZXZ2cmF0XCIsXG4gICAgXCJEaGFuYW5qYXlcIixcbiAgICBcIkRoYW5hcGF0aVwiLFxuICAgIFwiRGhhbnBhdGlcIixcbiAgICBcIkRoYW5lc2hcIixcbiAgICBcIkRoYW51XCIsXG4gICAgXCJEaGFudmluXCIsXG4gICAgXCJEaGFybWFrZXR1XCIsXG4gICAgXCJEaHJ1dlwiLFxuICAgIFwiRGh5YW5lc2hcIixcbiAgICBcIkRoeWFuZXNod2FyXCIsXG4gICAgXCJEaWdhbWJhclwiLFxuICAgIFwiRGlnYW1iYXJhXCIsXG4gICAgXCJEaW5ha2FyXCIsXG4gICAgXCJEaW5rYXJcIixcbiAgICBcIkRpbmVzaFwiLFxuICAgIFwiRGl2YWFrYXJcIixcbiAgICBcIkRpdmFrYXJcIixcbiAgICBcIkRlZXZha2FyXCIsXG4gICAgXCJEaXZqb3RcIixcbiAgICBcIkRyb25cIixcbiAgICBcIkRyb25hXCIsXG4gICAgXCJEd2FpcGF5YW5cIixcbiAgICBcIkR3YWlwYXlhbmFcIixcbiAgICBcIkVla2FsYWJ5YVwiLFxuICAgIFwiRWthbGF2eWFcIixcbiAgICBcIkVrYWtzaFwiLFxuICAgIFwiRWthYWtzaFwiLFxuICAgIFwiRWthbGluZ1wiLFxuICAgIFwiRWtkYW50XCIsXG4gICAgXCJFa2FkYW50XCIsXG4gICAgXCJHYWphYWRoYXJcIixcbiAgICBcIkdhamFkaGFyXCIsXG4gICAgXCJHYWpiYWFodVwiLFxuICAgIFwiR2FqYWJhaHVcIixcbiAgICBcIkdhbmFrXCIsXG4gICAgXCJHYW5ha2FcIixcbiAgICBcIkdhbmFwYXRpXCIsXG4gICAgXCJHYW5kaGFydlwiLFxuICAgIFwiR2FuZGhhcnZhXCIsXG4gICAgXCJHYW5lc2hcIixcbiAgICBcIkdhbmdlc2hcIixcbiAgICBcIkdhcnVkXCIsXG4gICAgXCJHYXJ1ZGFcIixcbiAgICBcIkdhdGlcIixcbiAgICBcIkdhdGlrXCIsXG4gICAgXCJHYXVyYW5nXCIsXG4gICAgXCJHYXVyYWFuZ1wiLFxuICAgIFwiR2F1cmFuZ2FcIixcbiAgICBcIkdvdXJhbmdhXCIsXG4gICAgXCJHYXV0YW1cIixcbiAgICBcIkdhdXRhbWFcIixcbiAgICBcIkdvdXRhbVwiLFxuICAgIFwiR2hhbmFhbmFuZFwiLFxuICAgIFwiR2hhbnNoeWFtXCIsXG4gICAgXCJHaGFuYXNoeWFtXCIsXG4gICAgXCJHaXJpXCIsXG4gICAgXCJHaXJpa1wiLFxuICAgIFwiR2lyaWthXCIsXG4gICAgXCJHaXJpbmRyYVwiLFxuICAgIFwiR2lyaXJhYWpcIixcbiAgICBcIkdpcmlyYWpcIixcbiAgICBcIkdpcmlzaFwiLFxuICAgIFwiR29wYWxcIixcbiAgICBcIkdvcGFhbFwiLFxuICAgIFwiR29waVwiLFxuICAgIFwiR29wZWVcIixcbiAgICBcIkdvcmFraG5hdGhcIixcbiAgICBcIkdvcmFraGFuYXRoYVwiLFxuICAgIFwiR29zd2FtZWVcIixcbiAgICBcIkdvc3dhbWlcIixcbiAgICBcIkdvdHVtXCIsXG4gICAgXCJHYXV0YW1cIixcbiAgICBcIkdvdmluZGFcIixcbiAgICBcIkdvYmluZGFcIixcbiAgICBcIkd1ZGFrZXNoYVwiLFxuICAgIFwiR3VkYWtlc2FcIixcbiAgICBcIkd1cmRldlwiLFxuICAgIFwiR3VydVwiLFxuICAgIFwiSGFyaVwiLFxuICAgIFwiSGFyaW5hcmF5YW5cIixcbiAgICBcIkhhcml0XCIsXG4gICAgXCJIaW1hZHJpXCIsXG4gICAgXCJIaXJhbm1heVwiLFxuICAgIFwiSGlyYW5tYXlhXCIsXG4gICAgXCJIaXJhbnlhXCIsXG4gICAgXCJJbmRlclwiLFxuICAgIFwiSW5kcmFcIixcbiAgICBcIkluZHJhXCIsXG4gICAgXCJKYWdhZGlzaFwiLFxuICAgIFwiSmFnYWRpc2hhXCIsXG4gICAgXCJKYWdhdGhpXCIsXG4gICAgXCJKYWdkZWVwXCIsXG4gICAgXCJKYWdkaXNoXCIsXG4gICAgXCJKYWdtZWV0XCIsXG4gICAgXCJKYWhudVwiLFxuICAgIFwiSmFpXCIsXG4gICAgXCJKYXZhc1wiLFxuICAgIFwiSmF5XCIsXG4gICAgXCJKaXRlbmRyYVwiLFxuICAgIFwiSml0ZW5kZXJcIixcbiAgICBcIkp5b3Rpc1wiLFxuICAgIFwiS2FpbGFzaFwiLFxuICAgIFwiS2FtYVwiLFxuICAgIFwiS2FtYWxlc2hcIixcbiAgICBcIkthbWxlc2hcIixcbiAgICBcIkthbmFrXCIsXG4gICAgXCJLYW5ha2FcIixcbiAgICBcIkthbm5hblwiLFxuICAgIFwiS2FubmVuXCIsXG4gICAgXCJLYXJhblwiLFxuICAgIFwiS2FydGhpa1wiLFxuICAgIFwiS2FydGlrXCIsXG4gICAgXCJLYXJ1bmFuaWRoaVwiLFxuICAgIFwiS2FzaHlhcFwiLFxuICAgIFwiS2lyYW5cIixcbiAgICBcIktpcnRpXCIsXG4gICAgXCJLZWVydGlcIixcbiAgICBcIktyaXNobmFcIixcbiAgICBcIktyaXNobmFkYXNcIixcbiAgICBcIktyaXNobmFkYXNhXCIsXG4gICAgXCJLdW1hclwiLFxuICAgIFwiTGFpXCIsXG4gICAgXCJMYWtzaG1hblwiLFxuICAgIFwiTGF4bWFuXCIsXG4gICAgXCJMYWtzaG1pZGhhclwiLFxuICAgIFwiTGFrc2htaW5hdGhcIixcbiAgICBcIkxhbFwiLFxuICAgIFwiTGFhbFwiLFxuICAgIFwiTWFoZW5kcmFcIixcbiAgICBcIk1vaGluZGVyXCIsXG4gICAgXCJNYWhlc2hcIixcbiAgICBcIk1haGVzd2FyXCIsXG4gICAgXCJNYW5pXCIsXG4gICAgXCJNYW5pa1wiLFxuICAgIFwiTWFuaWt5YVwiLFxuICAgIFwiTWFub2pcIixcbiAgICBcIk1hcnV0XCIsXG4gICAgXCJNYXlvb3JcIixcbiAgICBcIk1lZ2huYWRcIixcbiAgICBcIk1lZ2huYXRoXCIsXG4gICAgXCJNb2hhblwiLFxuICAgIFwiTXVrZXNoXCIsXG4gICAgXCJNdWt1bFwiLFxuICAgIFwiTmFnYWJodXNoYW5hbVwiLFxuICAgIFwiTmFuZGFcIixcbiAgICBcIk5hcmF5YW5cIixcbiAgICBcIk5hcmVuZHJhXCIsXG4gICAgXCJOYXJpbmRlclwiLFxuICAgIFwiTmF2ZWVuXCIsXG4gICAgXCJOYXZpblwiLFxuICAgIFwiTmF3YWxcIixcbiAgICBcIk5hdmFsXCIsXG4gICAgXCJOaW1pdFwiLFxuICAgIFwiTmlyYW5qYW5cIixcbiAgICBcIk5pcmJoYXlcIixcbiAgICBcIk5pcm9cIixcbiAgICBcIlBhcmFtXCIsXG4gICAgXCJQYXJhbWFydGhhXCIsXG4gICAgXCJQcmFuXCIsXG4gICAgXCJQcmFuYXlcIixcbiAgICBcIlByYXNhZFwiLFxuICAgIFwiUHJhdGhhbWVzaFwiLFxuICAgIFwiUHJheWFnXCIsXG4gICAgXCJQcmVtXCIsXG4gICAgXCJQdW5lZXRcIixcbiAgICBcIlB1cnVzaG90dGFtXCIsXG4gICAgXCJSYWh1bFwiLFxuICAgIFwiUmFqXCIsXG4gICAgXCJSYWphblwiLFxuICAgIFwiUmFqZW5kcmFcIixcbiAgICBcIlJhamluZGVyXCIsXG4gICAgXCJSYWppdlwiLFxuICAgIFwiUmFrZXNoXCIsXG4gICAgXCJSYW1lc2hcIixcbiAgICBcIlJhbWVzaHdhclwiLFxuICAgIFwiUmFuaml0XCIsXG4gICAgXCJSYW5qZWV0XCIsXG4gICAgXCJSYXZpXCIsXG4gICAgXCJSaXRlc2hcIixcbiAgICBcIlJvaGFuXCIsXG4gICAgXCJSb2hpdFwiLFxuICAgIFwiUnVkcmFcIixcbiAgICBcIlNhY2hpblwiLFxuICAgIFwiU2FtZWVyXCIsXG4gICAgXCJTYW1pclwiLFxuICAgIFwiU2FuamF5XCIsXG4gICAgXCJTYW5rYVwiLFxuICAgIFwiU2FydmluXCIsXG4gICAgXCJTYXRpc2hcIixcbiAgICBcIlNhdHllblwiLFxuICAgIFwiU2hhbmthclwiLFxuICAgIFwiU2hhbnRhbnVcIixcbiAgICBcIlNoYXNoaVwiLFxuICAgIFwiU2hlclwiLFxuICAgIFwiU2hpdlwiLFxuICAgIFwiU2lkZGFydGhcIixcbiAgICBcIlNpZGRocmFuXCIsXG4gICAgXCJTb21cIixcbiAgICBcIlNvbXVcIixcbiAgICBcIlNvbW5hdGhcIixcbiAgICBcIlN1Ymhhc2hcIixcbiAgICBcIlN1Ym9kaFwiLFxuICAgIFwiU3VtYW5cIixcbiAgICBcIlN1cmVzaFwiLFxuICAgIFwiU3VyeWFcIixcbiAgICBcIlN1cnlha2FudFwiLFxuICAgIFwiU3VyeWFrYW50YVwiLFxuICAgIFwiU3VzaGlsXCIsXG4gICAgXCJTdXNoZWVsXCIsXG4gICAgXCJTd2FtaVwiLFxuICAgIFwiU3dhcG5pbFwiLFxuICAgIFwiVGFwYW5cIixcbiAgICBcIlRhcmFcIixcbiAgICBcIlRhcnVuXCIsXG4gICAgXCJUZWpcIixcbiAgICBcIlRlamFzXCIsXG4gICAgXCJUcmlsb2NoYW5cIixcbiAgICBcIlRyaWxvY2hhbmFcIixcbiAgICBcIlRyaWxva1wiLFxuICAgIFwiVHJpbG9rZXNoXCIsXG4gICAgXCJUcmlsb2tpXCIsXG4gICAgXCJUcmlsb2tpIE5hdGhcIixcbiAgICBcIlRyaWxva2FuYXRoXCIsXG4gICAgXCJUdXNoYXJcIixcbiAgICBcIlVkYWlcIixcbiAgICBcIlVkaXRcIixcbiAgICBcIlVqamF3YWxcIixcbiAgICBcIlVqandhbFwiLFxuICAgIFwiVW1hbmdcIixcbiAgICBcIlVwZW5kcmFcIixcbiAgICBcIlV0dGFtXCIsXG4gICAgXCJWYXN1ZGV2XCIsXG4gICAgXCJWYXN1ZGV2YVwiLFxuICAgIFwiVmVkYW5nXCIsXG4gICAgXCJWZWRhbmdhXCIsXG4gICAgXCJWaWRoeWFcIixcbiAgICBcIlZpZHVyXCIsXG4gICAgXCJWaWRodXJcIixcbiAgICBcIlZpamF5XCIsXG4gICAgXCJWaW1hbFwiLFxuICAgIFwiVmluYXlcIixcbiAgICBcIlZpc2hudVwiLFxuICAgIFwiQmlzaG51XCIsXG4gICAgXCJWaXNod2FtaXRyYVwiLFxuICAgIFwiVnlhc1wiLFxuICAgIFwiWW9nZW5kcmFcIixcbiAgICBcIllvZ2luZGVyXCIsXG4gICAgXCJZb2dlc2hcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBYmJvdHRcIixcbiAgICBcIkFjaGFyaVwiLFxuICAgIFwiQWNoYXJ5YVwiLFxuICAgIFwiQWRpZ2FcIixcbiAgICBcIkFnYXJ3YWxcIixcbiAgICBcIkFobHV3YWxpYVwiLFxuICAgIFwiQWh1amFcIixcbiAgICBcIkFyb3JhXCIsXG4gICAgXCJBc2FuXCIsXG4gICAgXCJCYW5kb3BhZGh5YXlcIixcbiAgICBcIkJhbmVyamVlXCIsXG4gICAgXCJCaGFyYWR3YWpcIixcbiAgICBcIkJoYXRcIixcbiAgICBcIkJ1dHRcIixcbiAgICBcIkJoYXR0YWNoYXJ5YVwiLFxuICAgIFwiQmhhdHRhdGhpcmlcIixcbiAgICBcIkNoYXR1cnZlZGlcIixcbiAgICBcIkNoYXR0b3BhZGh5YXlcIixcbiAgICBcIkNob3ByYVwiLFxuICAgIFwiRGVzYWlcIixcbiAgICBcIkRlc2hwYW5kZVwiLFxuICAgIFwiRGV2YXJcIixcbiAgICBcIkRoYXdhblwiLFxuICAgIFwiRHViYXNoaVwiLFxuICAgIFwiRHV0dGFcIixcbiAgICBcIkR3aXZlZGlcIixcbiAgICBcIkVtYnJhbnRoaXJpXCIsXG4gICAgXCJHYW5ha2FcIixcbiAgICBcIkdhbmRoaVwiLFxuICAgIFwiR2lsbFwiLFxuICAgIFwiR293ZGFcIixcbiAgICBcIkd1aGFcIixcbiAgICBcIkd1bmV0YVwiLFxuICAgIFwiR3VwdGFcIixcbiAgICBcIkl5ZXJcIixcbiAgICBcIkl5ZW5nYXJcIixcbiAgICBcIkphaW5cIixcbiAgICBcIkpoYVwiLFxuICAgIFwiSm9oYXJcIixcbiAgICBcIkpvc2hpXCIsXG4gICAgXCJLYWtrYXJcIixcbiAgICBcIkthbml5YXJcIixcbiAgICBcIkthcG9vclwiLFxuICAgIFwiS2F1bFwiLFxuICAgIFwiS2F1clwiLFxuICAgIFwiS2hhblwiLFxuICAgIFwiS2hhbm5hXCIsXG4gICAgXCJLaGF0cmlcIixcbiAgICBcIktvY2NoYXJcIixcbiAgICBcIk1haGFqYW5cIixcbiAgICBcIk1hbGlrXCIsXG4gICAgXCJNYXJhclwiLFxuICAgIFwiTWVub25cIixcbiAgICBcIk1laHJhXCIsXG4gICAgXCJNZWhyb3RyYVwiLFxuICAgIFwiTWlzaHJhXCIsXG4gICAgXCJNdWtob3BhZGh5YXlcIixcbiAgICBcIk5heWFyXCIsXG4gICAgXCJOYWlrXCIsXG4gICAgXCJOYWlyXCIsXG4gICAgXCJOYW1iZWVzYW5cIixcbiAgICBcIk5hbWJvb3RoaXJpXCIsXG4gICAgXCJOZWhydVwiLFxuICAgIFwiUGFuZGV5XCIsXG4gICAgXCJQYW5pY2tlclwiLFxuICAgIFwiUGF0ZWxcIixcbiAgICBcIlBhdGlsXCIsXG4gICAgXCJQaWxsYVwiLFxuICAgIFwiUGlsbGFpXCIsXG4gICAgXCJQb3RodXZhYWxcIixcbiAgICBcIlByYWphcGF0XCIsXG4gICAgXCJSYW5hXCIsXG4gICAgXCJSZWRkeVwiLFxuICAgIFwiU2FpbmlcIixcbiAgICBcIlNldGhpXCIsXG4gICAgXCJTaGFoXCIsXG4gICAgXCJTaGFybWFcIixcbiAgICBcIlNodWtsYVwiLFxuICAgIFwiU2luZ2hcIixcbiAgICBcIlNpbmhhXCIsXG4gICAgXCJTb21heWFqaVwiLFxuICAgIFwiVGFnb3JlXCIsXG4gICAgXCJUYWx3YXJcIixcbiAgICBcIlRhbmRvblwiLFxuICAgIFwiVHJpdmVkaVwiLFxuICAgIFwiVmFycmllclwiLFxuICAgIFwiVmFybWFcIixcbiAgICBcIlZhcm1hblwiLFxuICAgIFwiVmVybWFcIlxuICBdXG59O1xuZW5fSU5ELmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiPyM/ICM/I1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQW5kcmEgUHJhZGVzaFwiLFxuICAgIFwiQXJ1bmFjaGFsIFByYWRlc2hcIixcbiAgICBcIkFzc2FtXCIsXG4gICAgXCJCaWhhclwiLFxuICAgIFwiQ2hoYXR0aXNnYXJoXCIsXG4gICAgXCJHb2FcIixcbiAgICBcIkd1amFyYXRcIixcbiAgICBcIkhhcnlhbmFcIixcbiAgICBcIkhpbWFjaGFsIFByYWRlc2hcIixcbiAgICBcIkphbW11IGFuZCBLYXNobWlyXCIsXG4gICAgXCJKaGFya2hhbmRcIixcbiAgICBcIkthcm5hdGFrYVwiLFxuICAgIFwiS2VyYWxhXCIsXG4gICAgXCJNYWR5YSBQcmFkZXNoXCIsXG4gICAgXCJNYWhhcmFzaHRyYVwiLFxuICAgIFwiTWFuaXB1clwiLFxuICAgIFwiTWVnaGFsYXlhXCIsXG4gICAgXCJNaXpvcmFtXCIsXG4gICAgXCJOYWdhbGFuZFwiLFxuICAgIFwiT3Jpc3NhXCIsXG4gICAgXCJQdW5qYWJcIixcbiAgICBcIlJhamFzdGhhblwiLFxuICAgIFwiU2lra2ltXCIsXG4gICAgXCJUYW1pbCBOYWR1XCIsXG4gICAgXCJUcmlwdXJhXCIsXG4gICAgXCJVdHRhcmFuY2hhbFwiLFxuICAgIFwiVXR0YXIgUHJhZGVzaFwiLFxuICAgIFwiV2VzdCBCZW5nYWxcIixcbiAgICBcIkFuZGFtYW4gYW5kIE5pY29iYXIgSXNsYW5kc1wiLFxuICAgIFwiQ2hhbmRpZ2FyaFwiLFxuICAgIFwiRGFkYXIgYW5kIE5hZ2FyIEhhdmVsaVwiLFxuICAgIFwiRGFtYW4gYW5kIERpdVwiLFxuICAgIFwiRGVsaGlcIixcbiAgICBcIkxha3NoYWR3ZWVwXCIsXG4gICAgXCJQb25kaWNoZXJyeVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBUFwiLFxuICAgIFwiQVJcIixcbiAgICBcIkFTXCIsXG4gICAgXCJCUlwiLFxuICAgIFwiQ0dcIixcbiAgICBcIkRMXCIsXG4gICAgXCJHQVwiLFxuICAgIFwiR0pcIixcbiAgICBcIkhSXCIsXG4gICAgXCJIUFwiLFxuICAgIFwiSktcIixcbiAgICBcIkpTXCIsXG4gICAgXCJLQVwiLFxuICAgIFwiS0xcIixcbiAgICBcIk1QXCIsXG4gICAgXCJNSFwiLFxuICAgIFwiTU5cIixcbiAgICBcIk1MXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiTkxcIixcbiAgICBcIk9SXCIsXG4gICAgXCJQQlwiLFxuICAgIFwiUkpcIixcbiAgICBcIlNLXCIsXG4gICAgXCJUTlwiLFxuICAgIFwiVFJcIixcbiAgICBcIlVLXCIsXG4gICAgXCJVUFwiLFxuICAgIFwiV0JcIixcbiAgICBcIkFOXCIsXG4gICAgXCJDSFwiLFxuICAgIFwiRE5cIixcbiAgICBcIkREXCIsXG4gICAgXCJMRFwiLFxuICAgIFwiUFlcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWFuIFJlcHVibGljXCIsXG4gICAgXCJCaGFyYXRcIixcbiAgICBcIkhpbmR1c3RhblwiXG4gIF1cbn07XG5lbl9JTkQuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvLmluXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJpblwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCIsXG4gICAgXCJjby5pblwiXG4gIF1cbn07XG5lbl9JTkQuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHZ0IEx0ZFwiLFxuICAgIFwiTGltaXRlZFwiLFxuICAgIFwiTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCJcbiAgXVxufTtcbmVuX0lORC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIrOTEjIyMtIyMjLSMjIyNcIixcbiAgICBcIis5MSMjIyMjIyMjIyNcIixcbiAgICBcIis5MS0jIyMtIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgZW5fVVMgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9VUztcbmVuX1VTLnRpdGxlID0gXCJVbml0ZWQgU3RhdGVzIChFbmdsaXNoKVwiO1xuZW5fVVMuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcInVzXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbmVuX1VTLmFkZHJlc3MgPSB7XG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIlVuaXRlZCBTdGF0ZXNcIixcbiAgICBcIlVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYVwiLFxuICAgIFwiVVNBXCJcbiAgXSxcbiAgXCJwb3N0Y29kZV9ieV9zdGF0ZVwiOiB7XG4gICAgXCJBTFwiOiBcIjM1MCMjXCIsXG4gICAgXCJBS1wiOiBcIjk5NSMjXCIsXG4gICAgXCJBU1wiOiBcIjk2NyMjXCIsXG4gICAgXCJBWlwiOiBcIjg1MCMjXCIsXG4gICAgXCJBUlwiOiBcIjcxNyMjXCIsXG4gICAgXCJDQVwiOiBcIjkwMCMjXCIsXG4gICAgXCJDT1wiOiBcIjgwMCMjXCIsXG4gICAgXCJDVFwiOiBcIjA2MSMjXCIsXG4gICAgXCJEQ1wiOiBcIjIwNCMjXCIsXG4gICAgXCJERVwiOiBcIjE5OCMjXCIsXG4gICAgXCJGTFwiOiBcIjMyMiMjXCIsXG4gICAgXCJHQVwiOiBcIjMwMSMjXCIsXG4gICAgXCJISVwiOiBcIjk2NyMjXCIsXG4gICAgXCJJRFwiOiBcIjgzMiMjXCIsXG4gICAgXCJJTFwiOiBcIjYwMCMjXCIsXG4gICAgXCJJTlwiOiBcIjQ2MyMjXCIsXG4gICAgXCJJQVwiOiBcIjUxMCMjXCIsXG4gICAgXCJLU1wiOiBcIjY2NiMjXCIsXG4gICAgXCJLWVwiOiBcIjQwNCMjXCIsXG4gICAgXCJMQVwiOiBcIjcwMSMjXCIsXG4gICAgXCJNRVwiOiBcIjA0MiMjXCIsXG4gICAgXCJNRFwiOiBcIjIxMCMjXCIsXG4gICAgXCJNQVwiOiBcIjAyNiMjXCIsXG4gICAgXCJNSVwiOiBcIjQ4MCMjXCIsXG4gICAgXCJNTlwiOiBcIjU1NSMjXCIsXG4gICAgXCJNU1wiOiBcIjM4NyMjXCIsXG4gICAgXCJNT1wiOiBcIjY1MCMjXCIsXG4gICAgXCJNVFwiOiBcIjU5MCMjXCIsXG4gICAgXCJORVwiOiBcIjY4OCMjXCIsXG4gICAgXCJOVlwiOiBcIjg5OCMjXCIsXG4gICAgXCJOSFwiOiBcIjAzNiMjXCIsXG4gICAgXCJOSlwiOiBcIjA3NiMjXCIsXG4gICAgXCJOTVwiOiBcIjg4MCMjXCIsXG4gICAgXCJOWVwiOiBcIjEyMiMjXCIsXG4gICAgXCJOQ1wiOiBcIjI4OCMjXCIsXG4gICAgXCJORFwiOiBcIjU4NiMjXCIsXG4gICAgXCJPSFwiOiBcIjQ0NCMjXCIsXG4gICAgXCJPS1wiOiBcIjczMCMjXCIsXG4gICAgXCJPUlwiOiBcIjk3OSMjXCIsXG4gICAgXCJQQVwiOiBcIjE4NiMjXCIsXG4gICAgXCJSSVwiOiBcIjAyOSMjXCIsXG4gICAgXCJTQ1wiOiBcIjI5OSMjXCIsXG4gICAgXCJTRFwiOiBcIjU3NyMjXCIsXG4gICAgXCJUTlwiOiBcIjM4MyMjXCIsXG4gICAgXCJUWFwiOiBcIjc5OCMjXCIsXG4gICAgXCJVVFwiOiBcIjg0NyMjXCIsXG4gICAgXCJWVFwiOiBcIjA1MCMjXCIsXG4gICAgXCJWQVwiOiBcIjIyMiMjXCIsXG4gICAgXCJXQVwiOiBcIjk5MCMjXCIsXG4gICAgXCJXVlwiOiBcIjI0NyMjXCIsXG4gICAgXCJXSVwiOiBcIjU0OSMjXCIsXG4gICAgXCJXWVwiOiBcIjgzMSMjXCJcbiAgfVxufTtcbmVuX1VTLnBob25lX251bWJlciA9IHtcbiAgXCJhcmVhX2NvZGVcIjogW1xuICAgIFwiMjAxXCIsXG4gICAgXCIyMDJcIixcbiAgICBcIjIwM1wiLFxuICAgIFwiMjA1XCIsXG4gICAgXCIyMDZcIixcbiAgICBcIjIwN1wiLFxuICAgIFwiMjA4XCIsXG4gICAgXCIyMDlcIixcbiAgICBcIjIxMFwiLFxuICAgIFwiMjEyXCIsXG4gICAgXCIyMTNcIixcbiAgICBcIjIxNFwiLFxuICAgIFwiMjE1XCIsXG4gICAgXCIyMTZcIixcbiAgICBcIjIxN1wiLFxuICAgIFwiMjE4XCIsXG4gICAgXCIyMTlcIixcbiAgICBcIjIyNFwiLFxuICAgIFwiMjI1XCIsXG4gICAgXCIyMjdcIixcbiAgICBcIjIyOFwiLFxuICAgIFwiMjI5XCIsXG4gICAgXCIyMzFcIixcbiAgICBcIjIzNFwiLFxuICAgIFwiMjM5XCIsXG4gICAgXCIyNDBcIixcbiAgICBcIjI0OFwiLFxuICAgIFwiMjUxXCIsXG4gICAgXCIyNTJcIixcbiAgICBcIjI1M1wiLFxuICAgIFwiMjU0XCIsXG4gICAgXCIyNTZcIixcbiAgICBcIjI2MFwiLFxuICAgIFwiMjYyXCIsXG4gICAgXCIyNjdcIixcbiAgICBcIjI2OVwiLFxuICAgIFwiMjcwXCIsXG4gICAgXCIyNzZcIixcbiAgICBcIjI4MVwiLFxuICAgIFwiMjgzXCIsXG4gICAgXCIzMDFcIixcbiAgICBcIjMwMlwiLFxuICAgIFwiMzAzXCIsXG4gICAgXCIzMDRcIixcbiAgICBcIjMwNVwiLFxuICAgIFwiMzA3XCIsXG4gICAgXCIzMDhcIixcbiAgICBcIjMwOVwiLFxuICAgIFwiMzEwXCIsXG4gICAgXCIzMTJcIixcbiAgICBcIjMxM1wiLFxuICAgIFwiMzE0XCIsXG4gICAgXCIzMTVcIixcbiAgICBcIjMxNlwiLFxuICAgIFwiMzE3XCIsXG4gICAgXCIzMThcIixcbiAgICBcIjMxOVwiLFxuICAgIFwiMzIwXCIsXG4gICAgXCIzMjFcIixcbiAgICBcIjMyM1wiLFxuICAgIFwiMzMwXCIsXG4gICAgXCIzMzFcIixcbiAgICBcIjMzNFwiLFxuICAgIFwiMzM2XCIsXG4gICAgXCIzMzdcIixcbiAgICBcIjMzOVwiLFxuICAgIFwiMzQ3XCIsXG4gICAgXCIzNTFcIixcbiAgICBcIjM1MlwiLFxuICAgIFwiMzYwXCIsXG4gICAgXCIzNjFcIixcbiAgICBcIjM4NlwiLFxuICAgIFwiNDAxXCIsXG4gICAgXCI0MDJcIixcbiAgICBcIjQwNFwiLFxuICAgIFwiNDA1XCIsXG4gICAgXCI0MDZcIixcbiAgICBcIjQwN1wiLFxuICAgIFwiNDA4XCIsXG4gICAgXCI0MDlcIixcbiAgICBcIjQxMFwiLFxuICAgIFwiNDEyXCIsXG4gICAgXCI0MTNcIixcbiAgICBcIjQxNFwiLFxuICAgIFwiNDE1XCIsXG4gICAgXCI0MTdcIixcbiAgICBcIjQxOVwiLFxuICAgIFwiNDIzXCIsXG4gICAgXCI0MjRcIixcbiAgICBcIjQyNVwiLFxuICAgIFwiNDM0XCIsXG4gICAgXCI0MzVcIixcbiAgICBcIjQ0MFwiLFxuICAgIFwiNDQzXCIsXG4gICAgXCI0NDVcIixcbiAgICBcIjQ2NFwiLFxuICAgIFwiNDY5XCIsXG4gICAgXCI0NzBcIixcbiAgICBcIjQ3NVwiLFxuICAgIFwiNDc4XCIsXG4gICAgXCI0NzlcIixcbiAgICBcIjQ4MFwiLFxuICAgIFwiNDg0XCIsXG4gICAgXCI1MDFcIixcbiAgICBcIjUwMlwiLFxuICAgIFwiNTAzXCIsXG4gICAgXCI1MDRcIixcbiAgICBcIjUwNVwiLFxuICAgIFwiNTA3XCIsXG4gICAgXCI1MDhcIixcbiAgICBcIjUwOVwiLFxuICAgIFwiNTEwXCIsXG4gICAgXCI1MTJcIixcbiAgICBcIjUxM1wiLFxuICAgIFwiNTE1XCIsXG4gICAgXCI1MTZcIixcbiAgICBcIjUxN1wiLFxuICAgIFwiNTE4XCIsXG4gICAgXCI1MjBcIixcbiAgICBcIjUzMFwiLFxuICAgIFwiNTQwXCIsXG4gICAgXCI1NDFcIixcbiAgICBcIjU1MVwiLFxuICAgIFwiNTU3XCIsXG4gICAgXCI1NTlcIixcbiAgICBcIjU2MVwiLFxuICAgIFwiNTYyXCIsXG4gICAgXCI1NjNcIixcbiAgICBcIjU2NFwiLFxuICAgIFwiNTY3XCIsXG4gICAgXCI1NzBcIixcbiAgICBcIjU3MVwiLFxuICAgIFwiNTczXCIsXG4gICAgXCI1NzRcIixcbiAgICBcIjU4MFwiLFxuICAgIFwiNTg1XCIsXG4gICAgXCI1ODZcIixcbiAgICBcIjYwMVwiLFxuICAgIFwiNjAyXCIsXG4gICAgXCI2MDNcIixcbiAgICBcIjYwNVwiLFxuICAgIFwiNjA2XCIsXG4gICAgXCI2MDdcIixcbiAgICBcIjYwOFwiLFxuICAgIFwiNjA5XCIsXG4gICAgXCI2MTBcIixcbiAgICBcIjYxMlwiLFxuICAgIFwiNjE0XCIsXG4gICAgXCI2MTVcIixcbiAgICBcIjYxNlwiLFxuICAgIFwiNjE3XCIsXG4gICAgXCI2MThcIixcbiAgICBcIjYxOVwiLFxuICAgIFwiNjIwXCIsXG4gICAgXCI2MjNcIixcbiAgICBcIjYyNlwiLFxuICAgIFwiNjMwXCIsXG4gICAgXCI2MzFcIixcbiAgICBcIjYzNlwiLFxuICAgIFwiNjQxXCIsXG4gICAgXCI2NDZcIixcbiAgICBcIjY1MFwiLFxuICAgIFwiNjUxXCIsXG4gICAgXCI2NjBcIixcbiAgICBcIjY2MVwiLFxuICAgIFwiNjYyXCIsXG4gICAgXCI2NjdcIixcbiAgICBcIjY3OFwiLFxuICAgIFwiNjgyXCIsXG4gICAgXCI3MDFcIixcbiAgICBcIjcwMlwiLFxuICAgIFwiNzAzXCIsXG4gICAgXCI3MDRcIixcbiAgICBcIjcwNlwiLFxuICAgIFwiNzA3XCIsXG4gICAgXCI3MDhcIixcbiAgICBcIjcxMlwiLFxuICAgIFwiNzEzXCIsXG4gICAgXCI3MTRcIixcbiAgICBcIjcxNVwiLFxuICAgIFwiNzE2XCIsXG4gICAgXCI3MTdcIixcbiAgICBcIjcxOFwiLFxuICAgIFwiNzE5XCIsXG4gICAgXCI3MjBcIixcbiAgICBcIjcyNFwiLFxuICAgIFwiNzI3XCIsXG4gICAgXCI3MzFcIixcbiAgICBcIjczMlwiLFxuICAgIFwiNzM0XCIsXG4gICAgXCI3MzdcIixcbiAgICBcIjc0MFwiLFxuICAgIFwiNzU0XCIsXG4gICAgXCI3NTdcIixcbiAgICBcIjc2MFwiLFxuICAgIFwiNzYzXCIsXG4gICAgXCI3NjVcIixcbiAgICBcIjc3MFwiLFxuICAgIFwiNzcyXCIsXG4gICAgXCI3NzNcIixcbiAgICBcIjc3NFwiLFxuICAgIFwiNzc1XCIsXG4gICAgXCI3ODFcIixcbiAgICBcIjc4NVwiLFxuICAgIFwiNzg2XCIsXG4gICAgXCI4MDFcIixcbiAgICBcIjgwMlwiLFxuICAgIFwiODAzXCIsXG4gICAgXCI4MDRcIixcbiAgICBcIjgwNVwiLFxuICAgIFwiODA2XCIsXG4gICAgXCI4MDhcIixcbiAgICBcIjgxMFwiLFxuICAgIFwiODEyXCIsXG4gICAgXCI4MTNcIixcbiAgICBcIjgxNFwiLFxuICAgIFwiODE1XCIsXG4gICAgXCI4MTZcIixcbiAgICBcIjgxN1wiLFxuICAgIFwiODE4XCIsXG4gICAgXCI4MjhcIixcbiAgICBcIjgzMFwiLFxuICAgIFwiODMxXCIsXG4gICAgXCI4MzJcIixcbiAgICBcIjgzNVwiLFxuICAgIFwiODQzXCIsXG4gICAgXCI4NDVcIixcbiAgICBcIjg0N1wiLFxuICAgIFwiODQ4XCIsXG4gICAgXCI4NTBcIixcbiAgICBcIjg1NlwiLFxuICAgIFwiODU3XCIsXG4gICAgXCI4NThcIixcbiAgICBcIjg1OVwiLFxuICAgIFwiODYwXCIsXG4gICAgXCI4NjJcIixcbiAgICBcIjg2M1wiLFxuICAgIFwiODY0XCIsXG4gICAgXCI4NjVcIixcbiAgICBcIjg3MFwiLFxuICAgIFwiODcyXCIsXG4gICAgXCI4NzhcIixcbiAgICBcIjkwMVwiLFxuICAgIFwiOTAzXCIsXG4gICAgXCI5MDRcIixcbiAgICBcIjkwNlwiLFxuICAgIFwiOTA3XCIsXG4gICAgXCI5MDhcIixcbiAgICBcIjkwOVwiLFxuICAgIFwiOTEwXCIsXG4gICAgXCI5MTJcIixcbiAgICBcIjkxM1wiLFxuICAgIFwiOTE0XCIsXG4gICAgXCI5MTVcIixcbiAgICBcIjkxNlwiLFxuICAgIFwiOTE3XCIsXG4gICAgXCI5MThcIixcbiAgICBcIjkxOVwiLFxuICAgIFwiOTIwXCIsXG4gICAgXCI5MjVcIixcbiAgICBcIjkyOFwiLFxuICAgIFwiOTMxXCIsXG4gICAgXCI5MzZcIixcbiAgICBcIjkzN1wiLFxuICAgIFwiOTQwXCIsXG4gICAgXCI5NDFcIixcbiAgICBcIjk0N1wiLFxuICAgIFwiOTQ5XCIsXG4gICAgXCI5NTJcIixcbiAgICBcIjk1NFwiLFxuICAgIFwiOTU2XCIsXG4gICAgXCI5NTlcIixcbiAgICBcIjk3MFwiLFxuICAgIFwiOTcxXCIsXG4gICAgXCI5NzJcIixcbiAgICBcIjk3M1wiLFxuICAgIFwiOTc1XCIsXG4gICAgXCI5NzhcIixcbiAgICBcIjk3OVwiLFxuICAgIFwiOTgwXCIsXG4gICAgXCI5ODRcIixcbiAgICBcIjk4NVwiLFxuICAgIFwiOTg5XCJcbiAgXSxcbiAgXCJleGNoYW5nZV9jb2RlXCI6IFtcbiAgICBcIjIwMVwiLFxuICAgIFwiMjAyXCIsXG4gICAgXCIyMDNcIixcbiAgICBcIjIwNVwiLFxuICAgIFwiMjA2XCIsXG4gICAgXCIyMDdcIixcbiAgICBcIjIwOFwiLFxuICAgIFwiMjA5XCIsXG4gICAgXCIyMTBcIixcbiAgICBcIjIxMlwiLFxuICAgIFwiMjEzXCIsXG4gICAgXCIyMTRcIixcbiAgICBcIjIxNVwiLFxuICAgIFwiMjE2XCIsXG4gICAgXCIyMTdcIixcbiAgICBcIjIxOFwiLFxuICAgIFwiMjE5XCIsXG4gICAgXCIyMjRcIixcbiAgICBcIjIyNVwiLFxuICAgIFwiMjI3XCIsXG4gICAgXCIyMjhcIixcbiAgICBcIjIyOVwiLFxuICAgIFwiMjMxXCIsXG4gICAgXCIyMzRcIixcbiAgICBcIjIzOVwiLFxuICAgIFwiMjQwXCIsXG4gICAgXCIyNDhcIixcbiAgICBcIjI1MVwiLFxuICAgIFwiMjUyXCIsXG4gICAgXCIyNTNcIixcbiAgICBcIjI1NFwiLFxuICAgIFwiMjU2XCIsXG4gICAgXCIyNjBcIixcbiAgICBcIjI2MlwiLFxuICAgIFwiMjY3XCIsXG4gICAgXCIyNjlcIixcbiAgICBcIjI3MFwiLFxuICAgIFwiMjc2XCIsXG4gICAgXCIyODFcIixcbiAgICBcIjI4M1wiLFxuICAgIFwiMzAxXCIsXG4gICAgXCIzMDJcIixcbiAgICBcIjMwM1wiLFxuICAgIFwiMzA0XCIsXG4gICAgXCIzMDVcIixcbiAgICBcIjMwN1wiLFxuICAgIFwiMzA4XCIsXG4gICAgXCIzMDlcIixcbiAgICBcIjMxMFwiLFxuICAgIFwiMzEyXCIsXG4gICAgXCIzMTNcIixcbiAgICBcIjMxNFwiLFxuICAgIFwiMzE1XCIsXG4gICAgXCIzMTZcIixcbiAgICBcIjMxN1wiLFxuICAgIFwiMzE4XCIsXG4gICAgXCIzMTlcIixcbiAgICBcIjMyMFwiLFxuICAgIFwiMzIxXCIsXG4gICAgXCIzMjNcIixcbiAgICBcIjMzMFwiLFxuICAgIFwiMzMxXCIsXG4gICAgXCIzMzRcIixcbiAgICBcIjMzNlwiLFxuICAgIFwiMzM3XCIsXG4gICAgXCIzMzlcIixcbiAgICBcIjM0N1wiLFxuICAgIFwiMzUxXCIsXG4gICAgXCIzNTJcIixcbiAgICBcIjM2MFwiLFxuICAgIFwiMzYxXCIsXG4gICAgXCIzODZcIixcbiAgICBcIjQwMVwiLFxuICAgIFwiNDAyXCIsXG4gICAgXCI0MDRcIixcbiAgICBcIjQwNVwiLFxuICAgIFwiNDA2XCIsXG4gICAgXCI0MDdcIixcbiAgICBcIjQwOFwiLFxuICAgIFwiNDA5XCIsXG4gICAgXCI0MTBcIixcbiAgICBcIjQxMlwiLFxuICAgIFwiNDEzXCIsXG4gICAgXCI0MTRcIixcbiAgICBcIjQxNVwiLFxuICAgIFwiNDE3XCIsXG4gICAgXCI0MTlcIixcbiAgICBcIjQyM1wiLFxuICAgIFwiNDI0XCIsXG4gICAgXCI0MjVcIixcbiAgICBcIjQzNFwiLFxuICAgIFwiNDM1XCIsXG4gICAgXCI0NDBcIixcbiAgICBcIjQ0M1wiLFxuICAgIFwiNDQ1XCIsXG4gICAgXCI0NjRcIixcbiAgICBcIjQ2OVwiLFxuICAgIFwiNDcwXCIsXG4gICAgXCI0NzVcIixcbiAgICBcIjQ3OFwiLFxuICAgIFwiNDc5XCIsXG4gICAgXCI0ODBcIixcbiAgICBcIjQ4NFwiLFxuICAgIFwiNTAxXCIsXG4gICAgXCI1MDJcIixcbiAgICBcIjUwM1wiLFxuICAgIFwiNTA0XCIsXG4gICAgXCI1MDVcIixcbiAgICBcIjUwN1wiLFxuICAgIFwiNTA4XCIsXG4gICAgXCI1MDlcIixcbiAgICBcIjUxMFwiLFxuICAgIFwiNTEyXCIsXG4gICAgXCI1MTNcIixcbiAgICBcIjUxNVwiLFxuICAgIFwiNTE2XCIsXG4gICAgXCI1MTdcIixcbiAgICBcIjUxOFwiLFxuICAgIFwiNTIwXCIsXG4gICAgXCI1MzBcIixcbiAgICBcIjU0MFwiLFxuICAgIFwiNTQxXCIsXG4gICAgXCI1NTFcIixcbiAgICBcIjU1N1wiLFxuICAgIFwiNTU5XCIsXG4gICAgXCI1NjFcIixcbiAgICBcIjU2MlwiLFxuICAgIFwiNTYzXCIsXG4gICAgXCI1NjRcIixcbiAgICBcIjU2N1wiLFxuICAgIFwiNTcwXCIsXG4gICAgXCI1NzFcIixcbiAgICBcIjU3M1wiLFxuICAgIFwiNTc0XCIsXG4gICAgXCI1ODBcIixcbiAgICBcIjU4NVwiLFxuICAgIFwiNTg2XCIsXG4gICAgXCI2MDFcIixcbiAgICBcIjYwMlwiLFxuICAgIFwiNjAzXCIsXG4gICAgXCI2MDVcIixcbiAgICBcIjYwNlwiLFxuICAgIFwiNjA3XCIsXG4gICAgXCI2MDhcIixcbiAgICBcIjYwOVwiLFxuICAgIFwiNjEwXCIsXG4gICAgXCI2MTJcIixcbiAgICBcIjYxNFwiLFxuICAgIFwiNjE1XCIsXG4gICAgXCI2MTZcIixcbiAgICBcIjYxN1wiLFxuICAgIFwiNjE4XCIsXG4gICAgXCI2MTlcIixcbiAgICBcIjYyMFwiLFxuICAgIFwiNjIzXCIsXG4gICAgXCI2MjZcIixcbiAgICBcIjYzMFwiLFxuICAgIFwiNjMxXCIsXG4gICAgXCI2MzZcIixcbiAgICBcIjY0MVwiLFxuICAgIFwiNjQ2XCIsXG4gICAgXCI2NTBcIixcbiAgICBcIjY1MVwiLFxuICAgIFwiNjYwXCIsXG4gICAgXCI2NjFcIixcbiAgICBcIjY2MlwiLFxuICAgIFwiNjY3XCIsXG4gICAgXCI2NzhcIixcbiAgICBcIjY4MlwiLFxuICAgIFwiNzAxXCIsXG4gICAgXCI3MDJcIixcbiAgICBcIjcwM1wiLFxuICAgIFwiNzA0XCIsXG4gICAgXCI3MDZcIixcbiAgICBcIjcwN1wiLFxuICAgIFwiNzA4XCIsXG4gICAgXCI3MTJcIixcbiAgICBcIjcxM1wiLFxuICAgIFwiNzE0XCIsXG4gICAgXCI3MTVcIixcbiAgICBcIjcxNlwiLFxuICAgIFwiNzE3XCIsXG4gICAgXCI3MThcIixcbiAgICBcIjcxOVwiLFxuICAgIFwiNzIwXCIsXG4gICAgXCI3MjRcIixcbiAgICBcIjcyN1wiLFxuICAgIFwiNzMxXCIsXG4gICAgXCI3MzJcIixcbiAgICBcIjczNFwiLFxuICAgIFwiNzM3XCIsXG4gICAgXCI3NDBcIixcbiAgICBcIjc1NFwiLFxuICAgIFwiNzU3XCIsXG4gICAgXCI3NjBcIixcbiAgICBcIjc2M1wiLFxuICAgIFwiNzY1XCIsXG4gICAgXCI3NzBcIixcbiAgICBcIjc3MlwiLFxuICAgIFwiNzczXCIsXG4gICAgXCI3NzRcIixcbiAgICBcIjc3NVwiLFxuICAgIFwiNzgxXCIsXG4gICAgXCI3ODVcIixcbiAgICBcIjc4NlwiLFxuICAgIFwiODAxXCIsXG4gICAgXCI4MDJcIixcbiAgICBcIjgwM1wiLFxuICAgIFwiODA0XCIsXG4gICAgXCI4MDVcIixcbiAgICBcIjgwNlwiLFxuICAgIFwiODA4XCIsXG4gICAgXCI4MTBcIixcbiAgICBcIjgxMlwiLFxuICAgIFwiODEzXCIsXG4gICAgXCI4MTRcIixcbiAgICBcIjgxNVwiLFxuICAgIFwiODE2XCIsXG4gICAgXCI4MTdcIixcbiAgICBcIjgxOFwiLFxuICAgIFwiODI4XCIsXG4gICAgXCI4MzBcIixcbiAgICBcIjgzMVwiLFxuICAgIFwiODMyXCIsXG4gICAgXCI4MzVcIixcbiAgICBcIjg0M1wiLFxuICAgIFwiODQ1XCIsXG4gICAgXCI4NDdcIixcbiAgICBcIjg0OFwiLFxuICAgIFwiODUwXCIsXG4gICAgXCI4NTZcIixcbiAgICBcIjg1N1wiLFxuICAgIFwiODU4XCIsXG4gICAgXCI4NTlcIixcbiAgICBcIjg2MFwiLFxuICAgIFwiODYyXCIsXG4gICAgXCI4NjNcIixcbiAgICBcIjg2NFwiLFxuICAgIFwiODY1XCIsXG4gICAgXCI4NzBcIixcbiAgICBcIjg3MlwiLFxuICAgIFwiODc4XCIsXG4gICAgXCI5MDFcIixcbiAgICBcIjkwM1wiLFxuICAgIFwiOTA0XCIsXG4gICAgXCI5MDZcIixcbiAgICBcIjkwN1wiLFxuICAgIFwiOTA4XCIsXG4gICAgXCI5MDlcIixcbiAgICBcIjkxMFwiLFxuICAgIFwiOTEyXCIsXG4gICAgXCI5MTNcIixcbiAgICBcIjkxNFwiLFxuICAgIFwiOTE1XCIsXG4gICAgXCI5MTZcIixcbiAgICBcIjkxN1wiLFxuICAgIFwiOTE4XCIsXG4gICAgXCI5MTlcIixcbiAgICBcIjkyMFwiLFxuICAgIFwiOTI1XCIsXG4gICAgXCI5MjhcIixcbiAgICBcIjkzMVwiLFxuICAgIFwiOTM2XCIsXG4gICAgXCI5MzdcIixcbiAgICBcIjk0MFwiLFxuICAgIFwiOTQxXCIsXG4gICAgXCI5NDdcIixcbiAgICBcIjk0OVwiLFxuICAgIFwiOTUyXCIsXG4gICAgXCI5NTRcIixcbiAgICBcIjk1NlwiLFxuICAgIFwiOTU5XCIsXG4gICAgXCI5NzBcIixcbiAgICBcIjk3MVwiLFxuICAgIFwiOTcyXCIsXG4gICAgXCI5NzNcIixcbiAgICBcIjk3NVwiLFxuICAgIFwiOTc4XCIsXG4gICAgXCI5NzlcIixcbiAgICBcIjk4MFwiLFxuICAgIFwiOTg0XCIsXG4gICAgXCI5ODVcIixcbiAgICBcIjk4OVwiXG4gIF1cbn07XG4iLCJ2YXIgZW5fYXVfb2NrZXIgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBlbl9hdV9vY2tlcjtcbmVuX2F1X29ja2VyLnRpdGxlID0gXCJBdXN0cmFsaWEgT2NrZXIgKEVuZ2xpc2gpXCI7XG5lbl9hdV9vY2tlci5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQ2hhcmxvdHRlXCIsXG4gICAgXCJBdmFcIixcbiAgICBcIkNobG9lXCIsXG4gICAgXCJFbWlseVwiLFxuICAgIFwiT2xpdmlhXCIsXG4gICAgXCJab2VcIixcbiAgICBcIkxpbHlcIixcbiAgICBcIlNvcGhpZVwiLFxuICAgIFwiQW1lbGlhXCIsXG4gICAgXCJTb2ZpYVwiLFxuICAgIFwiRWxsYVwiLFxuICAgIFwiSXNhYmVsbGFcIixcbiAgICBcIlJ1YnlcIixcbiAgICBcIlNpZW5uYVwiLFxuICAgIFwiTWlhKzNcIixcbiAgICBcIkdyYWNlXCIsXG4gICAgXCJFbW1hXCIsXG4gICAgXCJJdnlcIixcbiAgICBcIkxheWxhXCIsXG4gICAgXCJBYmlnYWlsXCIsXG4gICAgXCJJc2xhXCIsXG4gICAgXCJIYW5uYWhcIixcbiAgICBcIlphcmFcIixcbiAgICBcIkx1Y3lcIixcbiAgICBcIkV2aWVcIixcbiAgICBcIkFubmFiZWxsZVwiLFxuICAgIFwiTWFkaXNvblwiLFxuICAgIFwiQWxpY2VcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1hZGVsaW5lXCIsXG4gICAgXCJBdWRyZXlcIixcbiAgICBcIlNjYXJsZXR0XCIsXG4gICAgXCJJc2FiZWxsZVwiLFxuICAgIFwiQ2hlbHNlYVwiLFxuICAgIFwiTWlsYVwiLFxuICAgIFwiSG9sbHlcIixcbiAgICBcIkluZGlhbmFcIixcbiAgICBcIlBvcHB5XCIsXG4gICAgXCJIYXJwZXJcIixcbiAgICBcIlNhcmFoXCIsXG4gICAgXCJBbHlzc2FcIixcbiAgICBcIkphc21pbmVcIixcbiAgICBcIkltb2dlblwiLFxuICAgIFwiSGF5bGV5XCIsXG4gICAgXCJQaGVvYmVcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRXZlbHluXCIsXG4gICAgXCJNYWNrZW56aWVcIixcbiAgICBcIkF5bGFcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiSmFja1wiLFxuICAgIFwiSmFja3NvblwiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiRXRoYW5cIixcbiAgICBcIkNoYXJsaWVcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJDb29wZXJcIixcbiAgICBcIkxhY2hsYW5cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIkxpYW1cIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJJc2FhY1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIk9zY2FyXCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiQWlkZW5cIixcbiAgICBcIk1hc29uXCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIkphbWVzXCIsXG4gICAgXCJMZXZpXCIsXG4gICAgXCJSaWxleVwiLFxuICAgIFwiSGFycmlzb25cIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJKYWNvYlwiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJMZW9cIixcbiAgICBcIlphY2hcIixcbiAgICBcIkhhcnJ5XCIsXG4gICAgXCJIdW50ZXJcIixcbiAgICBcIkZseW5uXCIsXG4gICAgXCJBcmNoaWVcIixcbiAgICBcIlR5bGVyXCIsXG4gICAgXCJFbGlqYWhcIixcbiAgICBcIkhheWRlblwiLFxuICAgIFwiSmF5ZGVuXCIsXG4gICAgXCJCbGFrZVwiLFxuICAgIFwiQXJjaGVyXCIsXG4gICAgXCJBc2h0b25cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiWmFjaGVyeVwiLFxuICAgIFwiTGluY29sblwiLFxuICAgIFwiTWl0Y2hlbGxcIixcbiAgICBcIkx1Y2FcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiS2FpXCIsXG4gICAgXCJDb25ub3JcIixcbiAgICBcIlRvbVwiLFxuICAgIFwiTmlnZWxcIixcbiAgICBcIk1hdHRcIixcbiAgICBcIlNlYW5cIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJTbWl0aFwiLFxuICAgIFwiSm9uZXNcIixcbiAgICBcIldpbGxpYW1zXCIsXG4gICAgXCJCcm93blwiLFxuICAgIFwiV2lsc29uXCIsXG4gICAgXCJUYXlsb3JcIixcbiAgICBcIk1vcnRvblwiLFxuICAgIFwiV2hpdGVcIixcbiAgICBcIk1hcnRpblwiLFxuICAgIFwiQW5kZXJzb25cIixcbiAgICBcIlRob21wc29uXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiV2Fsa2VyXCIsXG4gICAgXCJIYXJyaXNcIixcbiAgICBcIkxlZVwiLFxuICAgIFwiUnlhblwiLFxuICAgIFwiUm9iaW5zb25cIixcbiAgICBcIktlbGx5XCIsXG4gICAgXCJLaW5nXCIsXG4gICAgXCJSYXVzY2hcIixcbiAgICBcIlJpZGdlXCIsXG4gICAgXCJDb25ub2xseVwiLFxuICAgIFwiTGVRdWVzbmVcIlxuICBdLFxuICBcIm9ja2VyX2ZpcnN0X25hbWVcIjogW1xuICAgIFwiQmF6emFcIixcbiAgICBcIkJsdWV5XCIsXG4gICAgXCJEYXZvXCIsXG4gICAgXCJKb2hub1wiLFxuICAgIFwiU2hhbm9cIixcbiAgICBcIlNoYXp6YVwiXG4gIF1cbn07XG5lbl9hdV9vY2tlci5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJQdHkgTHRkXCIsXG4gICAgXCJhbmQgU29uc1wiLFxuICAgIFwiQ29ycFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkJyb3RoZXJzXCIsXG4gICAgXCJQYXJ0bmVyc1wiXG4gIF1cbn07XG5lbl9hdV9vY2tlci5pbnRlcm5ldCA9IHtcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvbS5hdVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXQuYXVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnLmF1XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIuYWRkcmVzcyA9IHtcbiAgXCJzdHJlZXRfcm9vdFwiOiBbXG4gICAgXCJSYW1zYXkgU3RyZWV0XCIsXG4gICAgXCJCb25uaWUgRG9vblwiLFxuICAgIFwiQ2F2aWxsIEF2ZW51ZVwiLFxuICAgIFwiUXVlZW4gU3RyZWV0XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fVwiXG4gIF0sXG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiQm9uZGlcIixcbiAgICBcIkJ1cmxlaWdoIEhlYWRzXCIsXG4gICAgXCJDYXJsdG9uXCIsXG4gICAgXCJGaXR6cm95XCIsXG4gICAgXCJGcmVtYW50bGVcIixcbiAgICBcIkdsZW5lbGdcIixcbiAgICBcIk1hbmx5XCIsXG4gICAgXCJOb29zYVwiLFxuICAgIFwiU3RvbmVzIENvcm5lclwiLFxuICAgIFwiU3QgS2lsZGFcIixcbiAgICBcIlN1cnJ5IEhpbGxzXCIsXG4gICAgXCJZYXJyYSBWYWxsZXlcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH1cIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiTlNXXCIsXG4gICAgXCJRTERcIixcbiAgICBcIk5UXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiV0FcIixcbiAgICBcIlRBU1wiLFxuICAgIFwiQUNUXCIsXG4gICAgXCJWSUNcIlxuICBdLFxuICBcInJlZ2lvblwiOiBbXG4gICAgXCJTb3V0aCBFYXN0IFF1ZWVuc2xhbmRcIixcbiAgICBcIldpZGUgQmF5IEJ1cm5ldHRcIixcbiAgICBcIk1hcmdhcmV0IFJpdmVyXCIsXG4gICAgXCJQb3J0IFBpcmllXCIsXG4gICAgXCJHaXBwc2xhbmRcIixcbiAgICBcIkVsaXphYmV0aFwiLFxuICAgIFwiQmFyb3NzYVwiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiTmV3IFNvdXRoIFdhbGVzXCIsXG4gICAgXCJRdWVlbnNsYW5kXCIsXG4gICAgXCJOb3J0aGVybiBUZXJyaXRvcnlcIixcbiAgICBcIlNvdXRoIEF1c3RyYWxpYVwiLFxuICAgIFwiV2VzdGVybiBBdXN0cmFsaWFcIixcbiAgICBcIlRhc21hbmlhXCIsXG4gICAgXCJBdXN0cmFsaWFuIENhcGl0YWwgVGVycml0b3J5XCIsXG4gICAgXCJWaWN0b3JpYVwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiMCMjI1wiLFxuICAgIFwiMiMjI1wiLFxuICAgIFwiMyMjI1wiLFxuICAgIFwiNCMjI1wiLFxuICAgIFwiNSMjI1wiLFxuICAgIFwiNiMjI1wiLFxuICAgIFwiNyMjI1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiQXZlbnVlXCIsXG4gICAgXCJCb3VsZXZhcmRcIixcbiAgICBcIkNpcmNsZVwiLFxuICAgIFwiQ2lyY3VpdFwiLFxuICAgIFwiQ291cnRcIixcbiAgICBcIkNyZXNjZW50XCIsXG4gICAgXCJDcmVzdFwiLFxuICAgIFwiRHJpdmVcIixcbiAgICBcIkVzdGF0ZSBEclwiLFxuICAgIFwiR3JvdmVcIixcbiAgICBcIkhpbGxcIixcbiAgICBcIklzbGFuZFwiLFxuICAgIFwiSnVuY3Rpb25cIixcbiAgICBcIktub2xsXCIsXG4gICAgXCJMYW5lXCIsXG4gICAgXCJMb29wXCIsXG4gICAgXCJNYWxsXCIsXG4gICAgXCJNYW5vclwiLFxuICAgIFwiTWVhZG93XCIsXG4gICAgXCJNZXdzXCIsXG4gICAgXCJQYXJhZGVcIixcbiAgICBcIlBhcmt3YXlcIixcbiAgICBcIlBhc3NcIixcbiAgICBcIlBsYWNlXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUmlkZ2VcIixcbiAgICBcIlJvYWRcIixcbiAgICBcIlJ1blwiLFxuICAgIFwiU3F1YXJlXCIsXG4gICAgXCJTdGF0aW9uIFN0XCIsXG4gICAgXCJTdHJlZXRcIixcbiAgICBcIlN1bW1pdFwiLFxuICAgIFwiVGVycmFjZVwiLFxuICAgIFwiVHJhY2tcIixcbiAgICBcIlRyYWlsXCIsXG4gICAgXCJWaWV3IFJkXCIsXG4gICAgXCJXYXlcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJBdXN0cmFsaWFcIlxuICBdXG59O1xuZW5fYXVfb2NrZXIucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMCMgIyMjIyAjIyMjXCIsXG4gICAgXCIrNjEgIyAjIyMjICMjIyNcIixcbiAgICBcIjA0IyMgIyMjICMjI1wiLFxuICAgIFwiKzYxIDQjIyAjIyMgIyMjXCJcbiAgXVxufTtcbiIsInZhciBlcyA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGVzO1xuZXMudGl0bGUgPSBcIlNwYW5pc2hcIjtcbmVzLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiUGFybGFcIixcbiAgICBcIlRlbGRlXCIsXG4gICAgXCJCYXJhY2FsZG9cIixcbiAgICBcIlNhbiBGZXJuYW5kb1wiLFxuICAgIFwiVG9ycmV2aWVqYVwiLFxuICAgIFwiTHVnb1wiLFxuICAgIFwiU2FudGlhZ28gZGUgQ29tcG9zdGVsYVwiLFxuICAgIFwiR2Vyb25hXCIsXG4gICAgXCJDw6FjZXJlc1wiLFxuICAgIFwiTG9yY2FcIixcbiAgICBcIkNvc2xhZGFcIixcbiAgICBcIlRhbGF2ZXJhIGRlIGxhIFJlaW5hXCIsXG4gICAgXCJFbCBQdWVydG8gZGUgU2FudGEgTWFyw61hXCIsXG4gICAgXCJDb3JuZWxsw6EgZGUgTGxvYnJlZ2F0XCIsXG4gICAgXCJBdmlsw6lzXCIsXG4gICAgXCJQYWxlbmNpYVwiLFxuICAgIFwiR2VjaG9cIixcbiAgICBcIk9yaWh1ZWxhXCIsXG4gICAgXCJQb250ZXZlZHJhXCIsXG4gICAgXCJQb3p1ZWxvIGRlIEFsYXJjw7NuXCIsXG4gICAgXCJUb2xlZG9cIixcbiAgICBcIkVsIEVqaWRvXCIsXG4gICAgXCJHdWFkYWxhamFyYVwiLFxuICAgIFwiR2FuZMOtYVwiLFxuICAgIFwiQ2V1dGFcIixcbiAgICBcIkZlcnJvbFwiLFxuICAgIFwiQ2hpY2xhbmEgZGUgbGEgRnJvbnRlcmFcIixcbiAgICBcIk1hbnJlc2FcIixcbiAgICBcIlJvcXVldGFzIGRlIE1hclwiLFxuICAgIFwiQ2l1ZGFkIFJlYWxcIixcbiAgICBcIlJ1YsOtXCIsXG4gICAgXCJCZW5pZG9ybVwiLFxuICAgIFwiU2FuIFNlYmFzdMOtYW4gZGUgbG9zIFJleWVzXCIsXG4gICAgXCJQb25mZXJyYWRhXCIsXG4gICAgXCJaYW1vcmFcIixcbiAgICBcIkFsY2Fsw6EgZGUgR3VhZGFpcmFcIixcbiAgICBcIkZ1ZW5naXJvbGFcIixcbiAgICBcIk1pamFzXCIsXG4gICAgXCJTYW5sw7pjYXIgZGUgQmFycmFtZWRhXCIsXG4gICAgXCJMYSBMw61uZWEgZGUgbGEgQ29uY2VwY2nDs25cIixcbiAgICBcIk1hamFkYWhvbmRhXCIsXG4gICAgXCJTYWd1bnRvXCIsXG4gICAgXCJFbCBQcmF0IGRlIExMb2JyZWdhdFwiLFxuICAgIFwiVmlsYWRlY2Fuc1wiLFxuICAgIFwiTGluYXJlc1wiLFxuICAgIFwiQWxjb3lcIixcbiAgICBcIklyw7puXCIsXG4gICAgXCJFc3RlcG9uYVwiLFxuICAgIFwiVG9ycmVtb2xpbm9zXCIsXG4gICAgXCJSaXZhcy1WYWNpYW1hZHJpZFwiLFxuICAgIFwiTW9saW5hIGRlIFNlZ3VyYVwiLFxuICAgIFwiUGF0ZXJuYVwiLFxuICAgIFwiR3Jhbm9sbGVyc1wiLFxuICAgIFwiU2FudGEgTHVjw61hIGRlIFRpcmFqYW5hXCIsXG4gICAgXCJNb3RyaWxcIixcbiAgICBcIkNlcmRhw7FvbGEgZGVsIFZhbGzDqXNcIixcbiAgICBcIkFycmVjaWZlXCIsXG4gICAgXCJTZWdvdmlhXCIsXG4gICAgXCJUb3JyZWxhdmVnYVwiLFxuICAgIFwiRWxkYVwiLFxuICAgIFwiTcOpcmlkYVwiLFxuICAgIFwiw4F2aWxhXCIsXG4gICAgXCJWYWxkZW1vcm9cIixcbiAgICBcIkN1ZW50YVwiLFxuICAgIFwiQ29sbGFkbyBWaWxsYWxiYVwiLFxuICAgIFwiQmVuYWxtw6FkZW5hXCIsXG4gICAgXCJNb2xsZXQgZGVsIFZhbGzDqXNcIixcbiAgICBcIlB1ZXJ0b2xsYW5vXCIsXG4gICAgXCJNYWRyaWRcIixcbiAgICBcIkJhcmNlbG9uYVwiLFxuICAgIFwiVmFsZW5jaWFcIixcbiAgICBcIlNldmlsbGFcIixcbiAgICBcIlphcmFnb3phXCIsXG4gICAgXCJNw6FsYWdhXCIsXG4gICAgXCJNdXJjaWFcIixcbiAgICBcIlBhbG1hIGRlIE1hbGxvcmNhXCIsXG4gICAgXCJMYXMgUGFsbWFzIGRlIEdyYW4gQ2FuYXJpYVwiLFxuICAgIFwiQmlsYmFvXCIsXG4gICAgXCJDw7NyZG9iYVwiLFxuICAgIFwiQWxpY2FudGVcIixcbiAgICBcIlZhbGxhZG9saWRcIixcbiAgICBcIlZpZ29cIixcbiAgICBcIkdpasOzblwiLFxuICAgIFwiSG9zcGl0YWxldCBkZSBMTG9icmVnYXRcIixcbiAgICBcIkxhIENvcnXDsWFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIlZpdG9yaWFcIixcbiAgICBcIkVsY2hlXCIsXG4gICAgXCJTYW50YSBDcnV6IGRlIFRlbmVyaWZlXCIsXG4gICAgXCJPdmllZG9cIixcbiAgICBcIkJhZGFsb25hXCIsXG4gICAgXCJDYXJ0YWdlbmFcIixcbiAgICBcIk3Ds3N0b2xlc1wiLFxuICAgIFwiSmVyZXogZGUgbGEgRnJvbnRlcmFcIixcbiAgICBcIlRhcnJhc2FcIixcbiAgICBcIlNhYmFkZWxsXCIsXG4gICAgXCJBbGNhbMOhIGRlIEhlbmFyZXNcIixcbiAgICBcIlBhbXBsb25hXCIsXG4gICAgXCJGdWVubGFicmFkYVwiLFxuICAgIFwiQWxtZXLDrWFcIixcbiAgICBcIlNhbiBTZWJhc3Rpw6FuXCIsXG4gICAgXCJMZWdhbsOpc1wiLFxuICAgIFwiU2FudGFuZGVyXCIsXG4gICAgXCJCdXJnb3NcIixcbiAgICBcIkNhc3RlbGzDs24gZGUgbGEgUGxhbmFcIixcbiAgICBcIkFsY29yY8OzblwiLFxuICAgIFwiQWxiYWNldGVcIixcbiAgICBcIkdldGFmZVwiLFxuICAgIFwiU2FsYW1hbmNhXCIsXG4gICAgXCJIdWVsdmFcIixcbiAgICBcIkxvZ3Jvw7FvXCIsXG4gICAgXCJCYWRham96XCIsXG4gICAgXCJTYW4gQ3Jpc3Ryw7NiYWwgZGUgbGEgTGFndW5hXCIsXG4gICAgXCJMZcOzblwiLFxuICAgIFwiVGFycmFnb25hXCIsXG4gICAgXCJDw6FkaXpcIixcbiAgICBcIkzDqXJpZGFcIixcbiAgICBcIk1hcmJlbGxhXCIsXG4gICAgXCJNYXRhcsOzXCIsXG4gICAgXCJEb3MgSGVybWFuYXNcIixcbiAgICBcIlNhbnRhIENvbG9tYSBkZSBHcmFtYW5ldFwiLFxuICAgIFwiSmHDqW5cIixcbiAgICBcIkFsZ2VjaXJhc1wiLFxuICAgIFwiVG9ycmVqw7NuIGRlIEFyZG96XCIsXG4gICAgXCJPcmVuc2VcIixcbiAgICBcIkFsY29iZW5kYXNcIixcbiAgICBcIlJldXNcIixcbiAgICBcIkNhbGFob3JyYVwiLFxuICAgIFwiSW5jYVwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdhbmlzdMOhblwiLFxuICAgIFwiQWxiYW5pYVwiLFxuICAgIFwiQXJnZWxpYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0cmFsaWFcIixcbiAgICBcIkF1c3RyaWFcIixcbiAgICBcIkF6ZXJiYXnDoW5cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhcmVpblwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJpZWxvcnVzaWFcIixcbiAgICBcIkLDqWxnaWNhXCIsXG4gICAgXCJCZWxpY2VcIixcbiAgICBcIkJlcm11ZGFcIixcbiAgICBcIkJ1dMOhblwiLFxuICAgIFwiQm9saXZpYVwiLFxuICAgIFwiQm9zbmlhIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQnJhc2lsXCIsXG4gICAgXCJCdWxnYXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1ib3lhXCIsXG4gICAgXCJDYW1lcsO6blwiLFxuICAgIFwiQ2FuYWRhXCIsXG4gICAgXCJDYWJvIFZlcmRlXCIsXG4gICAgXCJJc2xhcyBDYWltw6FuXCIsXG4gICAgXCJDaGFkXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIklzbGEgZGUgTmF2aWRhZFwiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9kb3NcIixcbiAgICBcIkNvbmdvXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJDb3N0YSBkZSBNYXJmaWxcIixcbiAgICBcIkNyb2FjaWFcIixcbiAgICBcIkN1YmFcIixcbiAgICBcIkNoaXByZVwiLFxuICAgIFwiUmVww7pibGljYSBDaGVjYVwiLFxuICAgIFwiRGluYW1hcmNhXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiUmVww7pibGljYSBEb21pbmljYW5hXCIsXG4gICAgXCJFY3VhZG9yXCIsXG4gICAgXCJFZ2lwdG9cIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJHdWluZWEgRWN1YXRvcmlhbFwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRpb3DDrWFcIixcbiAgICBcIklzbGFzIEZhcm9cIixcbiAgICBcIkZpamlcIixcbiAgICBcIkZpbmxhbmRpYVwiLFxuICAgIFwiRnJhbmNpYVwiLFxuICAgIFwiR2Fiw7NuXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdlb3JnaWFcIixcbiAgICBcIkFsZW1hbmlhXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR3JlY2lhXCIsXG4gICAgXCJHcm9lbmxhbmRpYVwiLFxuICAgIFwiR3JhbmFkYVwiLFxuICAgIFwiR3VhZGFsdXBlXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc2F1XCIsXG4gICAgXCJHdWF5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmcgS29uZ1wiLFxuICAgIFwiSHVuZ3JpYVwiLFxuICAgIFwiSXNsYW5kaWFcIixcbiAgICBcIkluZGlhXCIsXG4gICAgXCJJbmRvbmVzaWFcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklyYWtcIixcbiAgICBcIklybGFuZGFcIixcbiAgICBcIkl0YWxpYVwiLFxuICAgIFwiSmFtYWljYVwiLFxuICAgIFwiSmFww7NuXCIsXG4gICAgXCJKb3JkYW5pYVwiLFxuICAgIFwiS2F6YWppc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJDb3JlYVwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJMZXRvbmlhXCIsXG4gICAgXCJMw61iYW5vXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXR1YW5pYVwiLFxuICAgIFwiTHV4ZW1idXJnb1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkb25pYVwiLFxuICAgIFwiTWFkYWdhc2NhclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxhc2lhXCIsXG4gICAgXCJNYWxkaXZhc1wiLFxuICAgIFwiTWFsaVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hcnRpbmljYVwiLFxuICAgIFwiTWF1cml0YW5pYVwiLFxuICAgIFwiTcOpamljb1wiLFxuICAgIFwiTWljcm9uZXNpYVwiLFxuICAgIFwiTW9sZGF2aWFcIixcbiAgICBcIk3Ds25hY29cIixcbiAgICBcIk1vbmdvbGlhXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNYXJydWVjb3NcIixcbiAgICBcIk1vemFtYmlxdWVcIixcbiAgICBcIk5hbWliaWFcIixcbiAgICBcIk5hdXJ1XCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiSG9sYW5kYVwiLFxuICAgIFwiTnVldmEgWmVsYW5kYVwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJOaWdlclwiLFxuICAgIFwiTmlnZXJpYVwiLFxuICAgIFwiTm9ydWVnYVwiLFxuICAgIFwiT23DoW5cIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYW5hbcOhXCIsXG4gICAgXCJQYXDDumEgTnVldmEgR3VpbmVhXCIsXG4gICAgXCJQYXJhZ3VheVwiLFxuICAgIFwiUGVyw7pcIixcbiAgICBcIkZpbGlwaW5hc1wiLFxuICAgIFwiUG9sYW5kXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiUHVlcnRvIFJpY29cIixcbiAgICBcIlJ1c2lhXCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW50byBUb23DqSB5IFByaW5jaXBlXCIsXG4gICAgXCJBcmFiaWEgU2F1ZMOtXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uYVwiLFxuICAgIFwiU2luZ2FwdXJcIixcbiAgICBcIkVzbG92YXF1aWFcIixcbiAgICBcIkVzbG92ZW5pYVwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiRXNwYcOxYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdWTDoW5cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdWVjaWFcIixcbiAgICBcIlN1aXphXCIsXG4gICAgXCJTaXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppa2lzdGFuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGFpbGFuZGlhXCIsXG4gICAgXCJUaW1vci1MZXN0ZVwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIlRyaW5pZGFkIHkgVG9iYWdvXCIsXG4gICAgXCJUdW5lelwiLFxuICAgIFwiVHVycXVpYVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3JhbmlhXCIsXG4gICAgXCJFbWlyYXRvcyDDgXJhYmVzIFVuaWRvc1wiLFxuICAgIFwiUmVpbm8gVW5pZG9cIixcbiAgICBcIkVzdGFkb3MgVW5pZG9zIGRlIEFtw6lyaWNhXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIlllbWVuXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIHMvbi5cIixcbiAgICBcIiwgI1wiLFxuICAgIFwiLCAjI1wiLFxuICAgIFwiICNcIixcbiAgICBcIiAjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJBbGRlYVwiLFxuICAgIFwiQXBhcnRhbWVudG9cIixcbiAgICBcIkFycmFiYWxcIixcbiAgICBcIkFycm95b1wiLFxuICAgIFwiQXZlbmlkYVwiLFxuICAgIFwiQmFqYWRhXCIsXG4gICAgXCJCYXJyYW5jb1wiLFxuICAgIFwiQmFycmlvXCIsXG4gICAgXCJCbG9xdWVcIixcbiAgICBcIkNhbGxlXCIsXG4gICAgXCJDYWxsZWphXCIsXG4gICAgXCJDYW1pbm9cIixcbiAgICBcIkNhcnJldGVyYVwiLFxuICAgIFwiQ2FzZXJpb1wiLFxuICAgIFwiQ29sZWdpb1wiLFxuICAgIFwiQ29sb25pYVwiLFxuICAgIFwiQ29uanVudG9cIixcbiAgICBcIkN1ZXN0YVwiLFxuICAgIFwiQ2hhbGV0XCIsXG4gICAgXCJFZGlmaWNpb1wiLFxuICAgIFwiRW50cmFkYVwiLFxuICAgIFwiRXNjYWxpbmF0YVwiLFxuICAgIFwiRXhwbGFuYWRhXCIsXG4gICAgXCJFeHRyYW11cm9zXCIsXG4gICAgXCJFeHRyYXJyYWRpb1wiLFxuICAgIFwiRmVycm9jYXJyaWxcIixcbiAgICBcIkdsb3JpZXRhXCIsXG4gICAgXCJHcmFuIFN1YmlkYVwiLFxuICAgIFwiR3J1cG9cIixcbiAgICBcIkh1ZXJ0YVwiLFxuICAgIFwiSmFyZGluZXNcIixcbiAgICBcIkxhZG9cIixcbiAgICBcIkx1Z2FyXCIsXG4gICAgXCJNYW56YW5hXCIsXG4gICAgXCJNYXPDrWFcIixcbiAgICBcIk1lcmNhZG9cIixcbiAgICBcIk1vbnRlXCIsXG4gICAgXCJNdWVsbGVcIixcbiAgICBcIk11bmljaXBpb1wiLFxuICAgIFwiUGFyY2VsYVwiLFxuICAgIFwiUGFycXVlXCIsXG4gICAgXCJQYXJ0aWRhXCIsXG4gICAgXCJQYXNhamVcIixcbiAgICBcIlBhc2VvXCIsXG4gICAgXCJQbGF6YVwiLFxuICAgIFwiUG9ibGFkb1wiLFxuICAgIFwiUG9sw61nb25vXCIsXG4gICAgXCJQcm9sb25nYWNpw7NuXCIsXG4gICAgXCJQdWVudGVcIixcbiAgICBcIlB1ZXJ0YVwiLFxuICAgIFwiUXVpbnRhXCIsXG4gICAgXCJSYW1hbFwiLFxuICAgIFwiUmFtYmxhXCIsXG4gICAgXCJSYW1wYVwiLFxuICAgIFwiUmllcmFcIixcbiAgICBcIlJpbmPDs25cIixcbiAgICBcIlJvbmRhXCIsXG4gICAgXCJSdWFcIixcbiAgICBcIlNhbGlkYVwiLFxuICAgIFwiU2VjdG9yXCIsXG4gICAgXCJTZWNjacOzblwiLFxuICAgIFwiU2VuZGFcIixcbiAgICBcIlNvbGFyXCIsXG4gICAgXCJTdWJpZGFcIixcbiAgICBcIlRlcnJlbm9zXCIsXG4gICAgXCJUb3JyZW50ZVwiLFxuICAgIFwiVHJhdmVzw61hXCIsXG4gICAgXCJVcmJhbml6YWNpw7NuXCIsXG4gICAgXCJWw61hXCIsXG4gICAgXCJWw61hIFDDumJsaWNhXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJFc2MuICMjI1wiLFxuICAgIFwiUHVlcnRhICMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInByb3ZpbmNlXCI6IFtcbiAgICBcIsOBbGF2YVwiLFxuICAgIFwiQWxiYWNldGVcIixcbiAgICBcIkFsaWNhbnRlXCIsXG4gICAgXCJBbG1lcsOtYVwiLFxuICAgIFwiQXN0dXJpYXNcIixcbiAgICBcIsOBdmlsYVwiLFxuICAgIFwiQmFkYWpvelwiLFxuICAgIFwiQmFyY2Vsb25hXCIsXG4gICAgXCJCdXJnb3NcIixcbiAgICBcIkNhbnRhYnJpYVwiLFxuICAgIFwiQ2FzdGVsbMOzblwiLFxuICAgIFwiQ2l1ZGFkIFJlYWxcIixcbiAgICBcIkN1ZW5jYVwiLFxuICAgIFwiQ8OhY2VyZXNcIixcbiAgICBcIkPDoWRpelwiLFxuICAgIFwiQ8OzcmRvYmFcIixcbiAgICBcIkdlcm9uYVwiLFxuICAgIFwiR3JhbmFkYVwiLFxuICAgIFwiR3VhZGFsYWphcmFcIixcbiAgICBcIkd1aXDDunpjb2FcIixcbiAgICBcIkh1ZWx2YVwiLFxuICAgIFwiSHVlc2NhXCIsXG4gICAgXCJJc2xhcyBCYWxlYXJlc1wiLFxuICAgIFwiSmHDqW5cIixcbiAgICBcIkxhIENvcnXDsWFcIixcbiAgICBcIkxhIFJpb2phXCIsXG4gICAgXCJMYXMgUGFsbWFzXCIsXG4gICAgXCJMZcOzblwiLFxuICAgIFwiTHVnb1wiLFxuICAgIFwibMOpcmlkYVwiLFxuICAgIFwiTWFkcmlkXCIsXG4gICAgXCJNdXJjaWFcIixcbiAgICBcIk3DoWxhZ2FcIixcbiAgICBcIk5hdmFycmFcIixcbiAgICBcIk9yZW5zZVwiLFxuICAgIFwiUGFsZW5jaWFcIixcbiAgICBcIlBvbnRldmVkcmFcIixcbiAgICBcIlNhbGFtYW5jYVwiLFxuICAgIFwiU2FudGEgQ3J1eiBkZSBUZW5lcmlmZVwiLFxuICAgIFwiU2Vnb3ZpYVwiLFxuICAgIFwiU2V2aWxsYVwiLFxuICAgIFwiU29yaWFcIixcbiAgICBcIlRhcnJhZ29uYVwiLFxuICAgIFwiVGVydWVsXCIsXG4gICAgXCJUb2xlZG9cIixcbiAgICBcIlZhbGVuY2lhXCIsXG4gICAgXCJWYWxsYWRvbGlkXCIsXG4gICAgXCJWaXpjYXlhXCIsXG4gICAgXCJaYW1vcmFcIixcbiAgICBcIlphcmFnb3phXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJBbmRhbHVjw61hXCIsXG4gICAgXCJBcmFnw7NuXCIsXG4gICAgXCJQcmluY2lwYWRvIGRlIEFzdHVyaWFzXCIsXG4gICAgXCJCYWxlYXJlc1wiLFxuICAgIFwiQ2FuYXJpYXNcIixcbiAgICBcIkNhbnRhYnJpYVwiLFxuICAgIFwiQ2FzdGlsbGEtTGEgTWFuY2hhXCIsXG4gICAgXCJDYXN0aWxsYSB5IExlw7NuXCIsXG4gICAgXCJDYXRhbHXDsWFcIixcbiAgICBcIkNvbXVuaWRhZCBWYWxlbmNpYW5hXCIsXG4gICAgXCJFeHRyZW1hZHVyYVwiLFxuICAgIFwiR2FsaWNpYVwiLFxuICAgIFwiTGEgUmlvamFcIixcbiAgICBcIkNvbXVuaWRhZCBkZSBNYWRyaWRcIixcbiAgICBcIk5hdmFycmFcIixcbiAgICBcIlBhw61zIFZhc2NvXCIsXG4gICAgXCJSZWdpw7NuIGRlIE11cmNpYVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBbmRcIixcbiAgICBcIkFyYVwiLFxuICAgIFwiQXN0XCIsXG4gICAgXCJCYWxcIixcbiAgICBcIkNhblwiLFxuICAgIFwiQ2JyXCIsXG4gICAgXCJNYW5cIixcbiAgICBcIkxlb1wiLFxuICAgIFwiQ2F0XCIsXG4gICAgXCJDb21cIixcbiAgICBcIkV4dFwiLFxuICAgIFwiR2FsXCIsXG4gICAgXCJSaW9cIixcbiAgICBcIk1hZFwiLFxuICAgIFwiTmF2XCIsXG4gICAgXCJWYXNcIixcbiAgICBcIk11clwiXG4gIF0sXG4gIFwidGltZV96b25lXCI6IFtcbiAgICBcIlBhY8OtZmljby9NaWR3YXlcIixcbiAgICBcIlBhY8OtZmljby9QYWdvX1BhZ29cIixcbiAgICBcIlBhY8OtZmljby9Ib25vbHVsdVwiLFxuICAgIFwiQW1lcmljYS9KdW5lYXVcIixcbiAgICBcIkFtZXJpY2EvTG9zX0FuZ2VsZXNcIixcbiAgICBcIkFtZXJpY2EvVGlqdWFuYVwiLFxuICAgIFwiQW1lcmljYS9EZW52ZXJcIixcbiAgICBcIkFtZXJpY2EvUGhvZW5peFwiLFxuICAgIFwiQW1lcmljYS9DaGlodWFodWFcIixcbiAgICBcIkFtZXJpY2EvTWF6YXRsYW5cIixcbiAgICBcIkFtZXJpY2EvQ2hpY2Fnb1wiLFxuICAgIFwiQW1lcmljYS9SZWdpbmFcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTW9udGVycmV5XCIsXG4gICAgXCJBbWVyaWNhL0d1YXRlbWFsYVwiLFxuICAgIFwiQW1lcmljYS9OZXdfWW9ya1wiLFxuICAgIFwiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpc1wiLFxuICAgIFwiQW1lcmljYS9Cb2dvdGFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9MaW1hXCIsXG4gICAgXCJBbWVyaWNhL0hhbGlmYXhcIixcbiAgICBcIkFtZXJpY2EvQ2FyYWNhc1wiLFxuICAgIFwiQW1lcmljYS9MYV9QYXpcIixcbiAgICBcIkFtZXJpY2EvU2FudGlhZ29cIixcbiAgICBcIkFtZXJpY2EvU3RfSm9obnNcIixcbiAgICBcIkFtZXJpY2EvU2FvX1BhdWxvXCIsXG4gICAgXCJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXNcIixcbiAgICBcIkFtZXJpY2EvR3V5YW5hXCIsXG4gICAgXCJBbWVyaWNhL0dvZHRoYWJcIixcbiAgICBcIkF0bGFudGljL1NvdXRoX0dlb3JnaWFcIixcbiAgICBcIkF0bGFudGljL0F6b3Jlc1wiLFxuICAgIFwiQXRsYW50aWMvQ2FwZV9WZXJkZVwiLFxuICAgIFwiRXVyb3BhL0R1YmxpblwiLFxuICAgIFwiRXVyb3BhL0xvbmRvblwiLFxuICAgIFwiRXVyb3BhL0xpc2JvblwiLFxuICAgIFwiRXVyb3BhL0xvbmRvblwiLFxuICAgIFwiQWZyaWNhL0Nhc2FibGFuY2FcIixcbiAgICBcIkFmcmljYS9Nb25yb3ZpYVwiLFxuICAgIFwiRXRjL1VUQ1wiLFxuICAgIFwiRXVyb3BhL0JlbGdyYWRlXCIsXG4gICAgXCJFdXJvcGEvQnJhdGlzbGF2YVwiLFxuICAgIFwiRXVyb3BhL0J1ZGFwZXN0XCIsXG4gICAgXCJFdXJvcGEvTGp1YmxqYW5hXCIsXG4gICAgXCJFdXJvcGEvUHJhZ3VlXCIsXG4gICAgXCJFdXJvcGEvU2FyYWpldm9cIixcbiAgICBcIkV1cm9wYS9Ta29wamVcIixcbiAgICBcIkV1cm9wYS9XYXJzYXdcIixcbiAgICBcIkV1cm9wYS9aYWdyZWJcIixcbiAgICBcIkV1cm9wYS9CcnVzc2Vsc1wiLFxuICAgIFwiRXVyb3BhL0NvcGVuaGFnZW5cIixcbiAgICBcIkV1cm9wYS9NYWRyaWRcIixcbiAgICBcIkV1cm9wYS9QYXJpc1wiLFxuICAgIFwiRXVyb3BhL0Ftc3RlcmRhbVwiLFxuICAgIFwiRXVyb3BhL0JlcmxpblwiLFxuICAgIFwiRXVyb3BhL0JlcmxpblwiLFxuICAgIFwiRXVyb3BhL1JvbWVcIixcbiAgICBcIkV1cm9wYS9TdG9ja2hvbG1cIixcbiAgICBcIkV1cm9wYS9WaWVubmFcIixcbiAgICBcIkFmcmljYS9BbGdpZXJzXCIsXG4gICAgXCJFdXJvcGEvQnVjaGFyZXN0XCIsXG4gICAgXCJBZnJpY2EvQ2Fpcm9cIixcbiAgICBcIkV1cm9wYS9IZWxzaW5raVwiLFxuICAgIFwiRXVyb3BhL0tpZXZcIixcbiAgICBcIkV1cm9wYS9SaWdhXCIsXG4gICAgXCJFdXJvcGEvU29maWFcIixcbiAgICBcIkV1cm9wYS9UYWxsaW5uXCIsXG4gICAgXCJFdXJvcGEvVmlsbml1c1wiLFxuICAgIFwiRXVyb3BhL0F0aGVuc1wiLFxuICAgIFwiRXVyb3BhL0lzdGFuYnVsXCIsXG4gICAgXCJFdXJvcGEvTWluc2tcIixcbiAgICBcIkFzaWEvSmVydXNhbGVuXCIsXG4gICAgXCJBZnJpY2EvSGFyYXJlXCIsXG4gICAgXCJBZnJpY2EvSm9oYW5uZXNidXJnXCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJFdXJvcGEvTW9zY8O6XCIsXG4gICAgXCJBc2lhL0t1d2FpdFwiLFxuICAgIFwiQXNpYS9SaXlhZGhcIixcbiAgICBcIkFmcmljYS9OYWlyb2JpXCIsXG4gICAgXCJBc2lhL0JhZ2hkYWRcIixcbiAgICBcIkFzaWEvVGVocmFuXCIsXG4gICAgXCJBc2lhL011c2NhdFwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvQmFrdVwiLFxuICAgIFwiQXNpYS9UYmlsaXNpXCIsXG4gICAgXCJBc2lhL1llcmV2YW5cIixcbiAgICBcIkFzaWEvS2FidWxcIixcbiAgICBcIkFzaWEvWWVrYXRlcmluYnVyZ1wiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL0thcmFjaGlcIixcbiAgICBcIkFzaWEvVGFzaGtlbnRcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9LYXRobWFuZHVcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvQ29sb21ib1wiLFxuICAgIFwiQXNpYS9BbG1hdHlcIixcbiAgICBcIkFzaWEvTm92b3NpYmlyc2tcIixcbiAgICBcIkFzaWEvUmFuZ29vblwiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0Jhbmdrb2tcIixcbiAgICBcIkFzaWEvSmFrYXJ0YVwiLFxuICAgIFwiQXNpYS9LcmFzbm95YXJza1wiLFxuICAgIFwiQXNpYS9TaGFuZ2hhaVwiLFxuICAgIFwiQXNpYS9DaG9uZ3FpbmdcIixcbiAgICBcIkFzaWEvSG9uZ19Lb25nXCIsXG4gICAgXCJBc2lhL1VydW1xaVwiLFxuICAgIFwiQXNpYS9LdWFsYV9MdW1wdXJcIixcbiAgICBcIkFzaWEvU2luZ2Fwb3JlXCIsXG4gICAgXCJBc2lhL1RhaXBlaVwiLFxuICAgIFwiQXVzdHJhbGlhL1BlcnRoXCIsXG4gICAgXCJBc2lhL0lya3V0c2tcIixcbiAgICBcIkFzaWEvVWxhYW5iYWF0YXJcIixcbiAgICBcIkFzaWEvU2VvdWxcIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvWWFrdXRza1wiLFxuICAgIFwiQXVzdHJhbGlhL0RhcndpblwiLFxuICAgIFwiQXVzdHJhbGlhL0FkZWxhaWRlXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvU3lkbmV5XCIsXG4gICAgXCJBdXN0cmFsaWEvQnJpc2JhbmVcIixcbiAgICBcIkF1c3RyYWxpYS9Ib2JhcnRcIixcbiAgICBcIkFzaWEvVmxhZGl2b3N0b2tcIixcbiAgICBcIlBhY8OtZmljby9HdWFtXCIsXG4gICAgXCJQYWPDrWZpY28vUG9ydF9Nb3Jlc2J5XCIsXG4gICAgXCJBc2lhL01hZ2FkYW5cIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiUGFjw61maWNvL05vdW1lYVwiLFxuICAgIFwiUGFjw61maWNvL0ZpamlcIixcbiAgICBcIkFzaWEvS2FtY2hhdGthXCIsXG4gICAgXCJQYWPDrWZpY28vTWFqdXJvXCIsXG4gICAgXCJQYWPDrWZpY28vQXVja2xhbmRcIixcbiAgICBcIlBhY8OtZmljby9BdWNrbGFuZFwiLFxuICAgIFwiUGFjw61maWNvL1RvbmdhdGFwdVwiLFxuICAgIFwiUGFjw61maWNvL0Zha2FvZm9cIixcbiAgICBcIlBhY8OtZmljby9BcGlhXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9zdWZmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tzdHJlZXRfc3VmZml4fSAje05hbWUuZmlyc3RfbmFtZX0gI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9I3tidWlsZGluZ19udW1iZXJ9XCIsXG4gICAgXCIje3N0cmVldF9uYW1lfSN7YnVpbGRpbmdfbnVtYmVyfSAje3NlY29uZGFyeV9hZGRyZXNzfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkVzcGHDsWFcIlxuICBdXG59O1xuZXMuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUy5MLlwiLFxuICAgIFwiZSBIaWpvc1wiLFxuICAgIFwiUy5BLlwiLFxuICAgIFwiSGVybWFub3NcIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgICAgXCJoYWJpbGlkYWRcIixcbiAgICAgIFwiYWNjZXNvXCIsXG4gICAgICBcImFkYXB0YWRvclwiLFxuICAgICAgXCJhbGdvcml0bW9cIixcbiAgICAgIFwiYWxpYW56YVwiLFxuICAgICAgXCJhbmFsaXN0YVwiLFxuICAgICAgXCJhcGxpY2FjacOzblwiLFxuICAgICAgXCJlbmZvcXVlXCIsXG4gICAgICBcImFycXVpdGVjdHVyYVwiLFxuICAgICAgXCJhcmNoaXZvXCIsXG4gICAgICBcImludGVsaWdlbmNpYSBhcnRpZmljaWFsXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImFjdGl0dWRcIixcbiAgICAgIFwibWVkaWNpw7NuXCIsXG4gICAgICBcImdlc3Rpw7NuIHByZXN1cHVlc3RhcmlhXCIsXG4gICAgICBcImNhcGFjaWRhZFwiLFxuICAgICAgXCJkZXNhZsOtb1wiLFxuICAgICAgXCJjaXJjdWl0b1wiLFxuICAgICAgXCJjb2xhYm9yYWNpw7NuXCIsXG4gICAgICBcImNvbXBsZWppZGFkXCIsXG4gICAgICBcImNvbmNlcHRvXCIsXG4gICAgICBcImNvbmdsb21lcmFjacOzblwiLFxuICAgICAgXCJjb250aW5nZW5jaWFcIixcbiAgICAgIFwibsO6Y2xlb1wiLFxuICAgICAgXCJmaWRlbGlkYWRcIixcbiAgICAgIFwiYmFzZSBkZSBkYXRvc1wiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbmljacOzblwiLFxuICAgICAgXCJlbXVsYWNpw7NuXCIsXG4gICAgICBcImNvZGlmaWNhclwiLFxuICAgICAgXCJlbmNyaXB0YXJcIixcbiAgICAgIFwiZXh0cmFuZXRcIixcbiAgICAgIFwiZmlybXdhcmVcIixcbiAgICAgIFwiZmxleGliaWxpZGFkXCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcInByZXZpc2nDs25cIixcbiAgICAgIFwiYmFzZSBkZSB0cmFiYWpvXCIsXG4gICAgICBcImZ1bmNpw7NuXCIsXG4gICAgICBcImZ1bmNpb25hbGlkYWRcIixcbiAgICAgIFwiSW50ZXJmYXogR3LDoWZpY2FcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkludGVyZmF6IGdyw6FmaWNvIGRlIHVzdWFyaW9cIixcbiAgICAgIFwiaGFyZHdhcmVcIixcbiAgICAgIFwiU29wb3J0ZVwiLFxuICAgICAgXCJqZXJhcnF1w61hXCIsXG4gICAgICBcImNvbmp1bnRvXCIsXG4gICAgICBcImltcGxlbWVudGFjacOzblwiLFxuICAgICAgXCJpbmZyYWVzdHJ1Y3R1cmFcIixcbiAgICAgIFwiaW5pY2lhdGl2YVwiLFxuICAgICAgXCJpbnN0YWxhY2nDs25cIixcbiAgICAgIFwiY29uanVudG8gZGUgaW5zdHJ1Y2Npb25lc1wiLFxuICAgICAgXCJpbnRlcmZhelwiLFxuICAgICAgXCJpbnRyYW5ldFwiLFxuICAgICAgXCJiYXNlIGRlbCBjb25vY2ltaWVudG9cIixcbiAgICAgIFwicmVkIGRlIGFyZWEgbG9jYWxcIixcbiAgICAgIFwiYXByb3ZlY2hhclwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtZXRvZG9sb2fDrWFzXCIsXG4gICAgICBcIm1pZGRsZXdhcmVcIixcbiAgICAgIFwibWlncmFjacOzblwiLFxuICAgICAgXCJtb2RlbG9cIixcbiAgICAgIFwibW9kZXJhZG9yXCIsXG4gICAgICBcIm1vbml0b3JpemFyXCIsXG4gICAgICBcImFycXVpdGVjdHVyYSBhYmllcnRhXCIsXG4gICAgICBcInNpc3RlbWEgYWJpZXJ0b1wiLFxuICAgICAgXCJvcnF1ZXN0YXJcIixcbiAgICAgIFwicGFyYWRpZ21hXCIsXG4gICAgICBcInBhcmFsZWxpc21vXCIsXG4gICAgICBcInBvbMOtdGljYVwiLFxuICAgICAgXCJwb3J0YWxcIixcbiAgICAgIFwiZXN0cnVjdHVyYSBkZSBwcmVjaW9zXCIsXG4gICAgICBcInByb2Nlc28gZGUgbWVqb3JhXCIsXG4gICAgICBcInByb2R1Y3RvXCIsXG4gICAgICBcInByb2R1Y3RpdmlkYWRcIixcbiAgICAgIFwicHJveWVjdG9cIixcbiAgICAgIFwicHJveWVjY2nDs25cIixcbiAgICAgIFwicHJvdG9jb2xvXCIsXG4gICAgICBcImzDrW5lYSBzZWd1cmFcIixcbiAgICAgIFwic29mdHdhcmVcIixcbiAgICAgIFwic29sdWNpw7NuXCIsXG4gICAgICBcImVzdGFuZGFyZGl6YWNpw7NuXCIsXG4gICAgICBcImVzdHJhdGVnaWFcIixcbiAgICAgIFwiZXN0cnVjdHVyYVwiLFxuICAgICAgXCLDqXhpdG9cIixcbiAgICAgIFwic3VwZXJlc3RydWN0dXJhXCIsXG4gICAgICBcInNvcG9ydGVcIixcbiAgICAgIFwic2luZXJnaWFcIixcbiAgICAgIFwibWVkaWFudGVcIixcbiAgICAgIFwibWFyY28gZGUgdGllbXBvXCIsXG4gICAgICBcImNhamEgZGUgaGVycmFtaWVudGFzXCIsXG4gICAgICBcInV0aWxpemFjacOzblwiLFxuICAgICAgXCJ3ZWJzaXRlXCIsXG4gICAgICBcImZ1ZXJ6YSBkZSB0cmFiYWpvXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIjI0IGhvcmFzXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiM3JkIGdlbmVyYWNpw7NuXCIsXG4gICAgICBcIjR0aCBnZW5lcmFjacOzblwiLFxuICAgICAgXCI1dGggZ2VuZXJhY2nDs25cIixcbiAgICAgIFwiNnRoIGdlbmVyYWNpw7NuXCIsXG4gICAgICBcImFuYWxpemFkYVwiLFxuICAgICAgXCJhc2ltw6l0cmljYVwiLFxuICAgICAgXCJhc8OtbmNyb25hXCIsXG4gICAgICBcIm1vbml0b3JpemFkYSBwb3IgcmVkXCIsXG4gICAgICBcImJpZGlyZWNjaW9uYWxcIixcbiAgICAgIFwiYmlmdXJjYWRhXCIsXG4gICAgICBcImdlbmVyYWRhIHBvciBlbCBjbGllbnRlXCIsXG4gICAgICBcImNsaWVudGUgc2Vydmlkb3JcIixcbiAgICAgIFwiY29oZXJlbnRlXCIsXG4gICAgICBcImNvaGVzaXZhXCIsXG4gICAgICBcImNvbXB1ZXN0b1wiLFxuICAgICAgXCJzZW5zaWJsZSBhbCBjb250ZXh0b1wiLFxuICAgICAgXCJiYXNhZG8gZW4gZWwgY29udGV4dG9cIixcbiAgICAgIFwiYmFzYWRvIGVuIGNvbnRlbmlkb1wiLFxuICAgICAgXCJkZWRpY2FkYVwiLFxuICAgICAgXCJnZW5lcmFkbyBwb3IgbGEgZGVtYW5kYVwiLFxuICAgICAgXCJkaWRhY3RpY2FcIixcbiAgICAgIFwiZGlyZWNjaW9uYWxcIixcbiAgICAgIFwiZGlzY3JldGFcIixcbiAgICAgIFwiZGluw6FtaWNhXCIsXG4gICAgICBcInBvdGVuY2lhZGFcIixcbiAgICAgIFwiYWNvbXBhc2FkYVwiLFxuICAgICAgXCJlamVjdXRpdmFcIixcbiAgICAgIFwiZXhwbMOtY2l0YVwiLFxuICAgICAgXCJ0b2xlcmFudGUgYSBmYWxsb3NcIixcbiAgICAgIFwiaW5ub3ZhZG9yYVwiLFxuICAgICAgXCJhbXBsaW8gw6FiYW5pY29cIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImhldXLDrXN0aWNhXCIsXG4gICAgICBcImFsdG8gbml2ZWxcIixcbiAgICAgIFwiaG9sw61zdGljYVwiLFxuICAgICAgXCJob21vZ8OpbmVhXCIsXG4gICAgICBcImhpYnJpZGFcIixcbiAgICAgIFwiaW5jcmVtZW50YWxcIixcbiAgICAgIFwiaW50YW5naWJsZVwiLFxuICAgICAgXCJpbnRlcmFjdGl2YVwiLFxuICAgICAgXCJpbnRlcm1lZGlhXCIsXG4gICAgICBcImxvY2FsXCIsXG4gICAgICBcImxvZ8Otc3RpY2FcIixcbiAgICAgIFwibWF4aW1pemFkYVwiLFxuICAgICAgXCJtZXTDs2RpY2FcIixcbiAgICAgIFwibWlzacOzbiBjcsOtdGljYVwiLFxuICAgICAgXCJtw7NiaWxcIixcbiAgICAgIFwibW9kdWxhclwiLFxuICAgICAgXCJtb3RpdmFkb3JhXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGllc3RhZG9cIixcbiAgICAgIFwibXVsdGl0YXJlYVwiLFxuICAgICAgXCJuYWNpb25hbFwiLFxuICAgICAgXCJiYXNhZG8gZW4gbmVjZXNpZGFkZXNcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJudWV2YSBnZW5lcmFjacOzblwiLFxuICAgICAgXCJuby12b2zDoXRpbFwiLFxuICAgICAgXCJvcmllbnRhZG8gYSBvYmpldG9zXCIsXG4gICAgICBcIsOzcHRpbWFcIixcbiAgICAgIFwib3B0aW1pemFkYVwiLFxuICAgICAgXCJyYWRpY2FsXCIsXG4gICAgICBcInRpZW1wbyByZWFsXCIsXG4gICAgICBcInJlY8OtcHJvY2FcIixcbiAgICAgIFwicmVnaW9uYWxcIixcbiAgICAgIFwiZXNjYWxhYmxlXCIsXG4gICAgICBcInNlY3VuZGFyaWFcIixcbiAgICAgIFwib3JpZW50YWRhIGEgc29sdWNpb25lc1wiLFxuICAgICAgXCJlc3RhYmxlXCIsXG4gICAgICBcImVzdGF0aWNhXCIsXG4gICAgICBcInNpc3RlbcOhdGljYVwiLFxuICAgICAgXCJzaXN0w6ltaWNhXCIsXG4gICAgICBcInRhbmdpYmxlXCIsXG4gICAgICBcInRlcmNpYXJpYVwiLFxuICAgICAgXCJ0cmFuc2ljaW9uYWxcIixcbiAgICAgIFwidW5pZm9ybWVcIixcbiAgICAgIFwidmFsb3IgYcOxYWRpZG9cIixcbiAgICAgIFwidsOtYSB3ZWJcIixcbiAgICAgIFwiZGVmZWN0b3MgY2Vyb1wiLFxuICAgICAgXCJ0b2xlcmFuY2lhIGNlcm9cIlxuICAgIF0sXG4gICAgXCJhZGplY3RpdmVcIjogW1xuICAgICAgXCJBZGFwdGF0aXZvXCIsXG4gICAgICBcIkF2YW56YWRvXCIsXG4gICAgICBcIkFzaW1pbGFkb1wiLFxuICAgICAgXCJBdXRvbWF0aXphZG9cIixcbiAgICAgIFwiRXF1aWxpYnJhZG9cIixcbiAgICAgIFwiQ2VudHJhZG8gZW4gZWwgbmVnb2Npb1wiLFxuICAgICAgXCJDZW50cmFsaXphZG9cIixcbiAgICAgIFwiQ2xvbmFkb1wiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJNdWx0aSBncnVwb1wiLFxuICAgICAgXCJNdWx0aSBwbGF0YWZvcm1hXCIsXG4gICAgICBcIkNlbnRyYWRvIGVuIGVsIHVzdWFyaW9cIixcbiAgICAgIFwiQ29uZmlndXJhYmxlXCIsXG4gICAgICBcIkRlc2NlbnRyYWxpemFkb1wiLFxuICAgICAgXCJEaWdpdGFsaXphZG9cIixcbiAgICAgIFwiRGlzdHJpYnVpZG9cIixcbiAgICAgIFwiRGl2ZXJzb1wiLFxuICAgICAgXCJSZWR1Y2lkb1wiLFxuICAgICAgXCJNZWpvcmFkb1wiLFxuICAgICAgXCJQYXJhIHRvZGEgbGEgZW1wcmVzYVwiLFxuICAgICAgXCJFcmdvbm9taWNvXCIsXG4gICAgICBcIkV4Y2x1c2l2b1wiLFxuICAgICAgXCJFeHBhbmRpZG9cIixcbiAgICAgIFwiRXh0ZW5kaWRvXCIsXG4gICAgICBcIkNhcmEgYSBjYXJhXCIsXG4gICAgICBcIkVuZm9jYWRvXCIsXG4gICAgICBcIlRvdGFsbWVudGUgY29uZmlndXJhYmxlXCIsXG4gICAgICBcIkZ1bmRhbWVudGFsXCIsXG4gICAgICBcIk9yw61nZW5lc1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGFkb1wiLFxuICAgICAgXCJJbm5vdmFkb3JcIixcbiAgICAgIFwiSW50ZWdyYWRvXCIsXG4gICAgICBcIkludHVpdGl2b1wiLFxuICAgICAgXCJJbnZlcnNvXCIsXG4gICAgICBcIkdlc3Rpb25hZG9cIixcbiAgICAgIFwiT2JsaWdhdG9yaW9cIixcbiAgICAgIFwiTW9uaXRvcml6YWRvXCIsXG4gICAgICBcIk11bHRpIGNhbmFsXCIsXG4gICAgICBcIk11bHRpIGxhdGVyYWxcIixcbiAgICAgIFwiTXVsdGkgY2FwYVwiLFxuICAgICAgXCJFbiByZWRcIixcbiAgICAgIFwiT3JpZW50YWRvIGEgb2JqZXRvc1wiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdm9cIixcbiAgICAgIFwiT3B0aW1pemFkb1wiLFxuICAgICAgXCJPcGNpb25hbFwiLFxuICAgICAgXCJPcmdhbmljb1wiLFxuICAgICAgXCJPcmdhbml6YWRvXCIsXG4gICAgICBcIlBlcnNldmVyYW5kb1wiLFxuICAgICAgXCJQZXJzaXN0ZW50ZVwiLFxuICAgICAgXCJlbiBmYXNlc1wiLFxuICAgICAgXCJQb2xhcml6YWRvXCIsXG4gICAgICBcIlByZS1lbXB0aXZvXCIsXG4gICAgICBcIlByb2FjdGl2b1wiLFxuICAgICAgXCJFbmZvY2FkbyBhIGJlbmZpY2lvc1wiLFxuICAgICAgXCJQcm9mdW5kb1wiLFxuICAgICAgXCJQcm9ncmFtYWJsZVwiLFxuICAgICAgXCJQcm9ncmVzaXZvXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiRW5mb2NhZG8gZW4gbGEgY2FsaWRhZFwiLFxuICAgICAgXCJSZWFjdGl2b1wiLFxuICAgICAgXCJSZWFsaW5lYWRvXCIsXG4gICAgICBcIlJlLWNvbnRleHR1YWxpemFkb1wiLFxuICAgICAgXCJSZS1pbXBsZW1lbnRhZG9cIixcbiAgICAgIFwiUmVkdWNpZG9cIixcbiAgICAgIFwiSW5nZW5pZXJpYSBpbnZlcnNhXCIsXG4gICAgICBcIlJvYnVzdG9cIixcbiAgICAgIFwiRsOhY2lsXCIsXG4gICAgICBcIlNlZ3Vyb1wiLFxuICAgICAgXCJBdXRvIHByb3BvcmNpb25hXCIsXG4gICAgICBcIkNvbXBhcnRpYmxlXCIsXG4gICAgICBcIkludGVyY2FtYmlhYmxlXCIsXG4gICAgICBcIlNpbmNyb25pemFkb1wiLFxuICAgICAgXCJPcmllbnRhZG8gYSBlcXVpcG9zXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlVuaXZlcnNhbFwiLFxuICAgICAgXCJNZWpvcmFkb1wiLFxuICAgICAgXCJBY3R1YWxpemFibGVcIixcbiAgICAgIFwiQ2VudHJhZG8gZW4gZWwgdXN1YXJpb1wiLFxuICAgICAgXCJBbWlnYWJsZVwiLFxuICAgICAgXCJWZXJzYXRpbFwiLFxuICAgICAgXCJWaXJ0dWFsXCIsXG4gICAgICBcIlZpc2lvbmFyaW9cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSB5ICN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSB5ICN7TmFtZS5sYXN0X25hbWV9IEFzb2NpYWRvc1wiXG4gIF1cbn07XG5lcy5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImVzXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJjb20uZXNcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5lcy5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWTDoW5cIixcbiAgICBcIkFndXN0w61uXCIsXG4gICAgXCJBbGJlcnRvXCIsXG4gICAgXCJBbGVqYW5kcm9cIixcbiAgICBcIkFsZm9uc29cIixcbiAgICBcIkFsZnJlZG9cIixcbiAgICBcIkFuZHLDqXNcIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFybWFuZG9cIixcbiAgICBcIkFydHVyb1wiLFxuICAgIFwiQmVuaXRvXCIsXG4gICAgXCJCZW5qYW3DrW5cIixcbiAgICBcIkJlcm5hcmRvXCIsXG4gICAgXCJDYXJsb3NcIixcbiAgICBcIkPDqXNhclwiLFxuICAgIFwiQ2xhdWRpb1wiLFxuICAgIFwiQ2xlbWVudGVcIixcbiAgICBcIkNyaXN0aWFuXCIsXG4gICAgXCJDcmlzdG9iYWxcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGF2aWRcIixcbiAgICBcIkRpZWdvXCIsXG4gICAgXCJFZHVhcmRvXCIsXG4gICAgXCJFbWlsaW9cIixcbiAgICBcIkVucmlxdWVcIixcbiAgICBcIkVybmVzdG9cIixcbiAgICBcIkVzdGViYW5cIixcbiAgICBcIkZlZGVyaWNvXCIsXG4gICAgXCJGZWxpcGVcIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGcmFuY2lzY29cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIkdlcmFyZG9cIixcbiAgICBcIkdlcm3DoW5cIixcbiAgICBcIkdpbGJlcnRvXCIsXG4gICAgXCJHb256YWxvXCIsXG4gICAgXCJHcmVnb3Jpb1wiLFxuICAgIFwiR3VpbGxlcm1vXCIsXG4gICAgXCJHdXN0YXZvXCIsXG4gICAgXCJIZXJuw6FuXCIsXG4gICAgXCJIb21lcm9cIixcbiAgICBcIkhvcmFjaW9cIixcbiAgICBcIkh1Z29cIixcbiAgICBcIklnbmFjaW9cIixcbiAgICBcIkphY29ib1wiLFxuICAgIFwiSmFpbWVcIixcbiAgICBcIkphdmllclwiLFxuICAgIFwiSmVyw7NuaW1vXCIsXG4gICAgXCJKZXPDunNcIixcbiAgICBcIkpvYXF1w61uXCIsXG4gICAgXCJKb3JnZVwiLFxuICAgIFwiSm9yZ2UgTHVpc1wiLFxuICAgIFwiSm9zw6lcIixcbiAgICBcIkpvc8OpIEVkdWFyZG9cIixcbiAgICBcIkpvc8OpIEVtaWxpb1wiLFxuICAgIFwiSm9zw6kgTHVpc1wiLFxuICAgIFwiSm9zw6kgTWFyw61hXCIsXG4gICAgXCJKdWFuXCIsXG4gICAgXCJKdWFuIENhcmxvc1wiLFxuICAgIFwiSnVsaW9cIixcbiAgICBcIkp1bGlvIEPDqXNhclwiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIkx1aXNcIixcbiAgICBcIkx1aXMgTWlndWVsXCIsXG4gICAgXCJNYW51ZWxcIixcbiAgICBcIk1hcmNvIEFudG9uaW9cIixcbiAgICBcIk1hcmNvc1wiLFxuICAgIFwiTWFyaWFub1wiLFxuICAgIFwiTWFyaW9cIixcbiAgICBcIk1hcnTDrW5cIixcbiAgICBcIk1hdGVvXCIsXG4gICAgXCJNaWd1ZWxcIixcbiAgICBcIk1pZ3VlbCDDgW5nZWxcIixcbiAgICBcIk5pY29sw6FzXCIsXG4gICAgXCJPY3RhdmlvXCIsXG4gICAgXCLDk3NjYXJcIixcbiAgICBcIlBhYmxvXCIsXG4gICAgXCJQYXRyaWNpb1wiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFtaXJvXCIsXG4gICAgXCJSYW3Ds25cIixcbiAgICBcIlJhw7psXCIsXG4gICAgXCJSaWNhcmRvXCIsXG4gICAgXCJSb2JlcnRvXCIsXG4gICAgXCJSb2RyaWdvXCIsXG4gICAgXCJSdWLDqW5cIixcbiAgICBcIlNhbHZhZG9yXCIsXG4gICAgXCJTYW11ZWxcIixcbiAgICBcIlNhbmNob1wiLFxuICAgIFwiU2FudGlhZ29cIixcbiAgICBcIlNlcmdpb1wiLFxuICAgIFwiVGVvZG9yb1wiLFxuICAgIFwiVGltb3Rlb1wiLFxuICAgIFwiVG9tw6FzXCIsXG4gICAgXCJWaWNlbnRlXCIsXG4gICAgXCJWw61jdG9yXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiQWRyaWFuYVwiLFxuICAgIFwiQWxlamFuZHJhXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIkFtYWxpYVwiLFxuICAgIFwiQW5hXCIsXG4gICAgXCJBbmEgTHVpc2FcIixcbiAgICBcIkFuYSBNYXLDrWFcIixcbiAgICBcIkFuZHJlYVwiLFxuICAgIFwiQW5pdGFcIixcbiAgICBcIsOBbmdlbGFcIixcbiAgICBcIkFudG9uaWFcIixcbiAgICBcIkFyaWFkbmFcIixcbiAgICBcIkJhcmJhcmFcIixcbiAgICBcIkJlYXRyaXpcIixcbiAgICBcIkJlcnRhXCIsXG4gICAgXCJCbGFuY2FcIixcbiAgICBcIkNhcmlkYWRcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJDYXJsb3RhXCIsXG4gICAgXCJDYXJtZW5cIixcbiAgICBcIkNhcm9saW5hXCIsXG4gICAgXCJDYXRhbGluYVwiLFxuICAgIFwiQ2VjaWxpYVwiLFxuICAgIFwiQ2xhcmFcIixcbiAgICBcIkNsYXVkaWFcIixcbiAgICBcIkNvbmNlcGNpw7NuXCIsXG4gICAgXCJDb25jaGl0YVwiLFxuICAgIFwiQ3Jpc3RpbmFcIixcbiAgICBcIkRhbmllbGFcIixcbiAgICBcIkTDqWJvcmFcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEb2xvcmVzXCIsXG4gICAgXCJMb2xhXCIsXG4gICAgXCJEb3JvdGVhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiRWxpc2FcIixcbiAgICBcIkVsb2lzYVwiLFxuICAgIFwiRWxzYVwiLFxuICAgIFwiRWx2aXJhXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVzcGVyYW56YVwiLFxuICAgIFwiRXN0ZWxhXCIsXG4gICAgXCJFc3RlclwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJGbG9yZW5jaWFcIixcbiAgICBcIkZyYW5jaXNjYVwiLFxuICAgIFwiR2FicmllbGFcIixcbiAgICBcIkdsb3JpYVwiLFxuICAgIFwiR3JhY2llbGFcIixcbiAgICBcIkd1YWRhbHVwZVwiLFxuICAgIFwiR3VpbGxlcm1pbmFcIixcbiAgICBcIkluw6lzXCIsXG4gICAgXCJJcmVuZVwiLFxuICAgIFwiSXNhYmVsXCIsXG4gICAgXCJJc2FiZWxhXCIsXG4gICAgXCJKb3NlZmluYVwiLFxuICAgIFwiSnVhbmFcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGVvbm9yXCIsXG4gICAgXCJMZXRpY2lhXCIsXG4gICAgXCJMaWxpYVwiLFxuICAgIFwiTG9yZW5hXCIsXG4gICAgXCJMb3VyZGVzXCIsXG4gICAgXCJMdWNpYVwiLFxuICAgIFwiTHVpc2FcIixcbiAgICBcIkx1elwiLFxuICAgIFwiTWFnZGFsZW5hXCIsXG4gICAgXCJNYW51ZWxhXCIsXG4gICAgXCJNYXJjZWxhXCIsXG4gICAgXCJNYXJnYXJpdGFcIixcbiAgICBcIk1hcsOtYVwiLFxuICAgIFwiTWFyw61hIGRlbCBDYXJtZW5cIixcbiAgICBcIk1hcsOtYSBDcmlzdGluYVwiLFxuICAgIFwiTWFyw61hIEVsZW5hXCIsXG4gICAgXCJNYXLDrWEgRXVnZW5pYVwiLFxuICAgIFwiTWFyw61hIEpvc8OpXCIsXG4gICAgXCJNYXLDrWEgTHVpc2FcIixcbiAgICBcIk1hcsOtYSBTb2xlZGFkXCIsXG4gICAgXCJNYXLDrWEgVGVyZXNhXCIsXG4gICAgXCJNYXJpYW5hXCIsXG4gICAgXCJNYXJpY2FybWVuXCIsXG4gICAgXCJNYXJpbHVcIixcbiAgICBcIk1hcmlzb2xcIixcbiAgICBcIk1hcnRhXCIsXG4gICAgXCJNYXl0ZVwiLFxuICAgIFwiTWVyY2VkZXNcIixcbiAgICBcIk1pY2FlbGFcIixcbiAgICBcIk3Ds25pY2FcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5vcm1hXCIsXG4gICAgXCJPbGl2aWFcIixcbiAgICBcIlBhdHJpY2lhXCIsXG4gICAgXCJQaWxhclwiLFxuICAgIFwiUmFtb25hXCIsXG4gICAgXCJSYXF1ZWxcIixcbiAgICBcIlJlYmVjYVwiLFxuICAgIFwiUmVpbmFcIixcbiAgICBcIlJvY2lvXCIsXG4gICAgXCJSb3NhXCIsXG4gICAgXCJSb3NhbGlhXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJTaWx2aWFcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJTb2xlZGFkXCIsXG4gICAgXCJTb25pYVwiLFxuICAgIFwiU3VzYW5hXCIsXG4gICAgXCJUZXJlc2FcIixcbiAgICBcIlZlcsOzbmljYVwiLFxuICAgIFwiVmljdG9yaWFcIixcbiAgICBcIlZpcmdpbmlhXCIsXG4gICAgXCJZb2xhbmRhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWJleXRhXCIsXG4gICAgXCJBYnJlZ29cIixcbiAgICBcIkFicmV1XCIsXG4gICAgXCJBY2V2ZWRvXCIsXG4gICAgXCJBY29zdGFcIixcbiAgICBcIkFjdcOxYVwiLFxuICAgIFwiQWRhbWVcIixcbiAgICBcIkFkb3Jub1wiLFxuICAgIFwiQWdvc3RvXCIsXG4gICAgXCJBZ3VheW9cIixcbiAgICBcIsOBZ3VpbGFyXCIsXG4gICAgXCJBZ3VpbGVyYVwiLFxuICAgIFwiQWd1aXJyZVwiLFxuICAgIFwiQWxhbmlzXCIsXG4gICAgXCJBbGFuaXpcIixcbiAgICBcIkFsYXJjw7NuXCIsXG4gICAgXCJBbGJhXCIsXG4gICAgXCJBbGNhbGFcIixcbiAgICBcIkFsY8OhbnRhclwiLFxuICAgIFwiQWxjYXJhelwiLFxuICAgIFwiQWxlamFuZHJvXCIsXG4gICAgXCJBbGVtw6FuXCIsXG4gICAgXCJBbGZhcm9cIixcbiAgICBcIkFsaWNlYVwiLFxuICAgIFwiQWxtYW56YVwiLFxuICAgIFwiQWxtYXJhelwiLFxuICAgIFwiQWxtb250ZVwiLFxuICAgIFwiQWxvbnNvXCIsXG4gICAgXCJBbG9uem9cIixcbiAgICBcIkFsdGFtaXJhbm9cIixcbiAgICBcIkFsdmFcIixcbiAgICBcIkFsdmFyYWRvXCIsXG4gICAgXCJBbHZhcmV6XCIsXG4gICAgXCJBbWFkb3JcIixcbiAgICBcIkFtYXlhXCIsXG4gICAgXCJBbmF5YVwiLFxuICAgIFwiQW5ndWlhbm9cIixcbiAgICBcIkFuZ3Vsb1wiLFxuICAgIFwiQXBhcmljaW9cIixcbiAgICBcIkFwb2RhY2FcIixcbiAgICBcIkFwb250ZVwiLFxuICAgIFwiQXJhZ8OzblwiLFxuICAgIFwiQXJhw7FhXCIsXG4gICAgXCJBcmFuZGFcIixcbiAgICBcIkFyY2VcIixcbiAgICBcIkFyY2h1bGV0YVwiLFxuICAgIFwiQXJlbGxhbm9cIixcbiAgICBcIkFyZW5hc1wiLFxuICAgIFwiQXJldmFsb1wiLFxuICAgIFwiQXJndWVsbG9cIixcbiAgICBcIkFyaWFzXCIsXG4gICAgXCJBcm1hc1wiLFxuICAgIFwiQXJtZW5kw6FyaXpcIixcbiAgICBcIkFybWVudGFcIixcbiAgICBcIkFybWlqb1wiLFxuICAgIFwiQXJyZWRvbmRvXCIsXG4gICAgXCJBcnJlb2xhXCIsXG4gICAgXCJBcnJpYWdhXCIsXG4gICAgXCJBcnJveW9cIixcbiAgICBcIkFydGVhZ2FcIixcbiAgICBcIkF0ZW5jaW9cIixcbiAgICBcIsOBdmFsb3NcIixcbiAgICBcIsOBdmlsYVwiLFxuICAgIFwiQXZpbMOpc1wiLFxuICAgIFwiQXlhbGFcIixcbiAgICBcIkJhY2FcIixcbiAgICBcIkJhZGlsbG9cIixcbiAgICBcIkLDoWV6XCIsXG4gICAgXCJCYWV6YVwiLFxuICAgIFwiQmFoZW5hXCIsXG4gICAgXCJCYWxkZXJhc1wiLFxuICAgIFwiQmFsbGVzdGVyb3NcIixcbiAgICBcIkJhbmRhXCIsXG4gICAgXCJCYcOxdWVsb3NcIixcbiAgICBcIkJhcmFqYXNcIixcbiAgICBcIkJhcmVsYVwiLFxuICAgIFwiQmFycmFnw6FuXCIsXG4gICAgXCJCYXJyYXphXCIsXG4gICAgXCJCYXJyZXJhXCIsXG4gICAgXCJCYXJyZXRvXCIsXG4gICAgXCJCYXJyaWVudG9zXCIsXG4gICAgXCJCYXJyaW9zXCIsXG4gICAgXCJCYXRpc3RhXCIsXG4gICAgXCJCZWNlcnJhXCIsXG4gICAgXCJCZWx0csOhblwiLFxuICAgIFwiQmVuYXZpZGVzXCIsXG4gICAgXCJCZW5hdsOtZGV6XCIsXG4gICAgXCJCZW7DrXRlelwiLFxuICAgIFwiQmVybcO6ZGV6XCIsXG4gICAgXCJCZXJuYWxcIixcbiAgICBcIkJlcnLDrW9zXCIsXG4gICAgXCJCw6l0YW5jb3VydFwiLFxuICAgIFwiQmxhbmNvXCIsXG4gICAgXCJCb25pbGxhXCIsXG4gICAgXCJCb3JyZWdvXCIsXG4gICAgXCJCb3RlbGxvXCIsXG4gICAgXCJCcmF2b1wiLFxuICAgIFwiQnJpb25lc1wiLFxuICAgIFwiQnJpc2XDsW9cIixcbiAgICBcIkJyaXRvXCIsXG4gICAgXCJCdWVub1wiLFxuICAgIFwiQnVyZ29zXCIsXG4gICAgXCJCdXN0YW1hbnRlXCIsXG4gICAgXCJCdXN0b3NcIixcbiAgICBcIkNhYmFsbGVyb1wiLFxuICAgIFwiQ2Fiw6FuXCIsXG4gICAgXCJDYWJyZXJhXCIsXG4gICAgXCJDYWRlbmFcIixcbiAgICBcIkNhbGRlcmFcIixcbiAgICBcIkNhbGRlcsOzblwiLFxuICAgIFwiQ2FsdmlsbG9cIixcbiAgICBcIkNhbWFjaG9cIixcbiAgICBcIkNhbWFyaWxsb1wiLFxuICAgIFwiQ2FtcG9zXCIsXG4gICAgXCJDYW5hbGVzXCIsXG4gICAgXCJDYW5kZWxhcmlhXCIsXG4gICAgXCJDYW5vXCIsXG4gICAgXCJDYW50w7pcIixcbiAgICBcIkNhcmFiYWxsb1wiLFxuICAgIFwiQ2FyYmFqYWxcIixcbiAgICBcIkNhcmRlbmFzXCIsXG4gICAgXCJDYXJkb25hXCIsXG4gICAgXCJDYXJtb25hXCIsXG4gICAgXCJDYXJyYW56YVwiLFxuICAgIFwiQ2FycmFzY29cIixcbiAgICBcIkNhcnJhc3F1aWxsb1wiLFxuICAgIFwiQ2FycmXDs25cIixcbiAgICBcIkNhcnJlcmFcIixcbiAgICBcIkNhcnJlcm9cIixcbiAgICBcIkNhcnJpbGxvXCIsXG4gICAgXCJDYXJyaW9uXCIsXG4gICAgXCJDYXJ2YWphbFwiLFxuICAgIFwiQ2FzYW5vdmFcIixcbiAgICBcIkNhc2FyZXNcIixcbiAgICBcIkNhc8OhcmV6XCIsXG4gICAgXCJDYXNhc1wiLFxuICAgIFwiQ2FzaWxsYXNcIixcbiAgICBcIkNhc3Rhw7FlZGFcIixcbiAgICBcIkNhc3RlbGxhbm9zXCIsXG4gICAgXCJDYXN0aWxsb1wiLFxuICAgIFwiQ2FzdHJvXCIsXG4gICAgXCJDYXZhem9zXCIsXG4gICAgXCJDYXphcmVzXCIsXG4gICAgXCJDZWJhbGxvc1wiLFxuICAgIFwiQ2VkaWxsb1wiLFxuICAgIFwiQ2VqYVwiLFxuICAgIFwiQ2VudGVub1wiLFxuICAgIFwiQ2VwZWRhXCIsXG4gICAgXCJDZXJkYVwiLFxuICAgIFwiQ2VydmFudGVzXCIsXG4gICAgXCJDZXJ2w6FudGV6XCIsXG4gICAgXCJDaGFjw7NuXCIsXG4gICAgXCJDaGFwYVwiLFxuICAgIFwiQ2hhdmFycsOtYVwiLFxuICAgIFwiQ2jDoXZlelwiLFxuICAgIFwiQ2ludHLDs25cIixcbiAgICBcIkNpc25lcm9zXCIsXG4gICAgXCJDb2xsYWRvXCIsXG4gICAgXCJDb2xsYXpvXCIsXG4gICAgXCJDb2zDs25cIixcbiAgICBcIkNvbHVuZ2FcIixcbiAgICBcIkNvbmNlcGNpw7NuXCIsXG4gICAgXCJDb250cmVyYXNcIixcbiAgICBcIkNvcmRlcm9cIixcbiAgICBcIkPDs3Jkb3ZhXCIsXG4gICAgXCJDb3JuZWpvXCIsXG4gICAgXCJDb3JvbmFcIixcbiAgICBcIkNvcm9uYWRvXCIsXG4gICAgXCJDb3JyYWxcIixcbiAgICBcIkNvcnJhbGVzXCIsXG4gICAgXCJDb3JyZWFcIixcbiAgICBcIkNvcnTDqXNcIixcbiAgICBcIkNvcnRlelwiLFxuICAgIFwiQ290dG9cIixcbiAgICBcIkNvdmFycnViaWFzXCIsXG4gICAgXCJDcmVzcG9cIixcbiAgICBcIkNydXpcIixcbiAgICBcIkN1ZWxsYXJcIixcbiAgICBcIkN1cmllbFwiLFxuICAgIFwiRMOhdmlsYVwiLFxuICAgIFwiZGUgQW5kYVwiLFxuICAgIFwiZGUgSmVzw7pzXCIsXG4gICAgXCJEZWxhY3LDunpcIixcbiAgICBcIkRlbGFmdWVudGVcIixcbiAgICBcIkRlbGFnYXJ6YVwiLFxuICAgIFwiRGVsYW9cIixcbiAgICBcIkRlbGFwYXpcIixcbiAgICBcIkRlbGFyb3NhXCIsXG4gICAgXCJEZWxhdG9ycmVcIixcbiAgICBcIkRlbGXDs25cIixcbiAgICBcIkRlbGdhZGlsbG9cIixcbiAgICBcIkRlbGdhZG9cIixcbiAgICBcIkRlbHLDrW9cIixcbiAgICBcIkRlbHZhbGxlXCIsXG4gICAgXCJEw61helwiLFxuICAgIFwiRG9tw61uZ3VlelwiLFxuICAgIFwiRG9tw61ucXVlelwiLFxuICAgIFwiRHVhcnRlXCIsXG4gICAgXCJEdWXDsWFzXCIsXG4gICAgXCJEdXJhblwiLFxuICAgIFwiRWNoZXZhcnLDrWFcIixcbiAgICBcIkVsaXpvbmRvXCIsXG4gICAgXCJFbnLDrXF1ZXpcIixcbiAgICBcIkVzY2FsYW50ZVwiLFxuICAgIFwiRXNjYW1pbGxhXCIsXG4gICAgXCJFc2NvYmFyXCIsXG4gICAgXCJFc2NvYmVkb1wiLFxuICAgIFwiRXNwYXJ6YVwiLFxuICAgIFwiRXNwaW5hbFwiLFxuICAgIFwiRXNwaW5vXCIsXG4gICAgXCJFc3Bpbm9zYVwiLFxuICAgIFwiRXNwaW5vemFcIixcbiAgICBcIkVzcXVpYmVsXCIsXG4gICAgXCJFc3F1aXZlbFwiLFxuICAgIFwiRXN0w6l2ZXpcIixcbiAgICBcIkVzdHJhZGFcIixcbiAgICBcIkZhamFyZG9cIixcbiAgICBcIkZhcsOtYXNcIixcbiAgICBcIkZlbGljaWFub1wiLFxuICAgIFwiRmVybsOhbmRlelwiLFxuICAgIFwiRmVycmVyXCIsXG4gICAgXCJGaWVycm9cIixcbiAgICBcIkZpZ3Vlcm9hXCIsXG4gICAgXCJGbG9yZXNcIixcbiAgICBcIkZsw7NyZXpcIixcbiAgICBcIkZvbnNlY2FcIixcbiAgICBcIkZyYW5jb1wiLFxuICAgIFwiRnLDrWFzXCIsXG4gICAgXCJGdWVudGVzXCIsXG4gICAgXCJHYWl0w6FuXCIsXG4gICAgXCJHYWxhcnphXCIsXG4gICAgXCJHYWxpbmRvXCIsXG4gICAgXCJHYWxsYXJkb1wiLFxuICAgIFwiR2FsbGVnb3NcIixcbiAgICBcIkdhbHbDoW5cIixcbiAgICBcIkfDoWx2ZXpcIixcbiAgICBcIkdhbWJvYVwiLFxuICAgIFwiR2FtZXpcIixcbiAgICBcIkdhb25hXCIsXG4gICAgXCJHYXJheVwiLFxuICAgIFwiR2FyY8OtYVwiLFxuICAgIFwiR2FyaWJheVwiLFxuICAgIFwiR2FyaWNhXCIsXG4gICAgXCJHYXJyaWRvXCIsXG4gICAgXCJHYXJ6YVwiLFxuICAgIFwiR2FzdMOpbHVtXCIsXG4gICAgXCJHYXl0w6FuXCIsXG4gICAgXCJHaWxcIixcbiAgICBcIkdpcsOzblwiLFxuICAgIFwiR29kw61uZXpcIixcbiAgICBcIkdvZG95XCIsXG4gICAgXCJHw7NtZXpcIixcbiAgICBcIkdvbnphbGVzXCIsXG4gICAgXCJHb256w6FsZXpcIixcbiAgICBcIkdvbGx1bVwiLFxuICAgIFwiR3JhY2lhXCIsXG4gICAgXCJHcmFuYWRvXCIsXG4gICAgXCJHcmFuYWRvc1wiLFxuICAgIFwiR3JpZWdvXCIsXG4gICAgXCJHcmlqYWx2YVwiLFxuICAgIFwiR3VhamFyZG9cIixcbiAgICBcIkd1YXJkYWRvXCIsXG4gICAgXCJHdWVycmFcIixcbiAgICBcIkd1ZXJyZXJvXCIsXG4gICAgXCJHdWV2YXJhXCIsXG4gICAgXCJHdWlsbGVuXCIsXG4gICAgXCJHdXJ1bGVcIixcbiAgICBcIkd1dGnDqXJyZXpcIixcbiAgICBcIkd1em3DoW5cIixcbiAgICBcIkhhcm9cIixcbiAgICBcIkhlbnLDrXF1ZXpcIixcbiAgICBcIkhlcmVkaWFcIixcbiAgICBcIkhlcm7DoWRlelwiLFxuICAgIFwiSGVybmFuZGVzXCIsXG4gICAgXCJIZXJuw6FuZGV6XCIsXG4gICAgXCJIZXJyZXJhXCIsXG4gICAgXCJIaWRhbGdvXCIsXG4gICAgXCJIaW5vam9zYVwiLFxuICAgIFwiSG9sZ3XDrW5cIixcbiAgICBcIkh1ZXJ0YVwiLFxuICAgIFwiSHVydGFkb1wiLFxuICAgIFwiSWJhcnJhXCIsXG4gICAgXCJJZ2xlc2lhc1wiLFxuICAgIFwiSXJpemFycnlcIixcbiAgICBcIkphaW1lXCIsXG4gICAgXCJKYWltZXNcIixcbiAgICBcIkrDoXF1ZXpcIixcbiAgICBcIkphcmFtaWxsb1wiLFxuICAgIFwiSmFzc29cIixcbiAgICBcIkppbcOpbmV6XCIsXG4gICAgXCJKaW3DrW5lelwiLFxuICAgIFwiSnXDoXJlelwiLFxuICAgIFwiSnVyYWRvXCIsXG4gICAgXCJMYWJveVwiLFxuICAgIFwiTGFyYVwiLFxuICAgIFwiTGF1cmVhbm9cIixcbiAgICBcIkxlYWxcIixcbiAgICBcIkxlYnLDs25cIixcbiAgICBcIkxlZGVzbWFcIixcbiAgICBcIkxlaXZhXCIsXG4gICAgXCJMZW11c1wiLFxuICAgIFwiTGXDs25cIixcbiAgICBcIkxlcm1hXCIsXG4gICAgXCJMZXl2YVwiLFxuICAgIFwiTGltw7NuXCIsXG4gICAgXCJMaW5hcmVzXCIsXG4gICAgXCJMaXJhXCIsXG4gICAgXCJMbGFtYXNcIixcbiAgICBcIkxvZXJhXCIsXG4gICAgXCJMb21lbGlcIixcbiAgICBcIkxvbmdvcmlhXCIsXG4gICAgXCJMw7NwZXpcIixcbiAgICBcIkxvdmF0b1wiLFxuICAgIFwiTG95YVwiLFxuICAgIFwiTG96YWRhXCIsXG4gICAgXCJMb3phbm9cIixcbiAgICBcIkx1Y2Vyb1wiLFxuICAgIFwiTHVjaW9cIixcbiAgICBcIkx1ZXZhbm9cIixcbiAgICBcIkx1Z29cIixcbiAgICBcIkx1bmFcIixcbiAgICBcIk1hY8OtYXNcIixcbiAgICBcIk1hZGVyYVwiLFxuICAgIFwiTWFkcmlkXCIsXG4gICAgXCJNYWRyaWdhbFwiLFxuICAgIFwiTWFlc3Rhc1wiLFxuICAgIFwiTWFnYcOxYVwiLFxuICAgIFwiTWFsYXZlXCIsXG4gICAgXCJNYWxkb25hZG9cIixcbiAgICBcIk1hbnphbmFyZXNcIixcbiAgICBcIk1hcmVzXCIsXG4gICAgXCJNYXLDrW5cIixcbiAgICBcIk3DoXJxdWV6XCIsXG4gICAgXCJNYXJyZXJvXCIsXG4gICAgXCJNYXJyb3F1w61uXCIsXG4gICAgXCJNYXJ0w61uZXpcIixcbiAgICBcIk1hc2NhcmXDsWFzXCIsXG4gICAgXCJNYXRhXCIsXG4gICAgXCJNYXRlb1wiLFxuICAgIFwiTWF0w61hc1wiLFxuICAgIFwiTWF0b3NcIixcbiAgICBcIk1heWFcIixcbiAgICBcIk1heW9yZ2FcIixcbiAgICBcIk1lZGluYVwiLFxuICAgIFwiTWVkcmFub1wiLFxuICAgIFwiTWVqw61hXCIsXG4gICAgXCJNZWzDqW5kZXpcIixcbiAgICBcIk1lbGdhclwiLFxuICAgIFwiTWVuYVwiLFxuICAgIFwiTWVuY2hhY2FcIixcbiAgICBcIk3DqW5kZXpcIixcbiAgICBcIk1lbmRvemFcIixcbiAgICBcIk1lbsOpbmRlelwiLFxuICAgIFwiTWVyYXpcIixcbiAgICBcIk1lcmNhZG9cIixcbiAgICBcIk1lcmlub1wiLFxuICAgIFwiTWVzYVwiLFxuICAgIFwiTWV6YVwiLFxuICAgIFwiTWlyYW1vbnRlc1wiLFxuICAgIFwiTWlyYW5kYVwiLFxuICAgIFwiTWlyZWxlc1wiLFxuICAgIFwiTW9qaWNhXCIsXG4gICAgXCJNb2xpbmFcIixcbiAgICBcIk1vbmRyYWfDs25cIixcbiAgICBcIk1vbnJveVwiLFxuICAgIFwiTW9udGFsdm9cIixcbiAgICBcIk1vbnRhw7FlelwiLFxuICAgIFwiTW9udGHDsW9cIixcbiAgICBcIk1vbnRlbWF5b3JcIixcbiAgICBcIk1vbnRlbmVncm9cIixcbiAgICBcIk1vbnRlcm9cIixcbiAgICBcIk1vbnRlc1wiLFxuICAgIFwiTW9udGV6XCIsXG4gICAgXCJNb250b3lhXCIsXG4gICAgXCJNb3JhXCIsXG4gICAgXCJNb3JhbGVzXCIsXG4gICAgXCJNb3Jlbm9cIixcbiAgICBcIk1vdGFcIixcbiAgICBcIk1veWFcIixcbiAgICBcIk11bmd1w61hXCIsXG4gICAgXCJNdcOxaXpcIixcbiAgICBcIk11w7FvelwiLFxuICAgIFwiTXVyaWxsb1wiLFxuICAgIFwiTXVyb1wiLFxuICAgIFwiTsOhamVyYVwiLFxuICAgIFwiTmFyYW5qb1wiLFxuICAgIFwiTmFydsOhZXpcIixcbiAgICBcIk5hdmFcIixcbiAgICBcIk5hdmFycmV0ZVwiLFxuICAgIFwiTmF2YXJyb1wiLFxuICAgIFwiTmF6YXJpb1wiLFxuICAgIFwiTmVncmV0ZVwiLFxuICAgIFwiTmVncsOzblwiLFxuICAgIFwiTmV2w6FyZXpcIixcbiAgICBcIk5pZXRvXCIsXG4gICAgXCJOaWV2ZXNcIixcbiAgICBcIk5pw7FvXCIsXG4gICAgXCJOb3JpZWdhXCIsXG4gICAgXCJOw7rDsWV6XCIsXG4gICAgXCJPY2FtcG9cIixcbiAgICBcIk9jYXNpb1wiLFxuICAgIFwiT2Nob2FcIixcbiAgICBcIk9qZWRhXCIsXG4gICAgXCJPbGl2YXJlc1wiLFxuICAgIFwiT2xpdsOhcmV6XCIsXG4gICAgXCJPbGl2YXNcIixcbiAgICBcIk9saXZlcmFcIixcbiAgICBcIk9saXZvXCIsXG4gICAgXCJPbG1vc1wiLFxuICAgIFwiT2x2ZXJhXCIsXG4gICAgXCJPbnRpdmVyb3NcIixcbiAgICBcIk9xdWVuZG9cIixcbiAgICBcIk9yZMOzw7FlelwiLFxuICAgIFwiT3JlbGxhbmFcIixcbiAgICBcIk9ybmVsYXNcIixcbiAgICBcIk9yb3Njb1wiLFxuICAgIFwiT3JvemNvXCIsXG4gICAgXCJPcnRhXCIsXG4gICAgXCJPcnRlZ2FcIixcbiAgICBcIk9ydGl6XCIsXG4gICAgXCJPc29yaW9cIixcbiAgICBcIk90ZXJvXCIsXG4gICAgXCJPenVuYVwiLFxuICAgIFwiUGFiw7NuXCIsXG4gICAgXCJQYWNoZWNvXCIsXG4gICAgXCJQYWRpbGxhXCIsXG4gICAgXCJQYWRyw7NuXCIsXG4gICAgXCJQw6FlelwiLFxuICAgIFwiUGFnYW5cIixcbiAgICBcIlBhbGFjaW9zXCIsXG4gICAgXCJQYWxvbWlub1wiLFxuICAgIFwiUGFsb21vXCIsXG4gICAgXCJQYW50b2phXCIsXG4gICAgXCJQYXJlZGVzXCIsXG4gICAgXCJQYXJyYVwiLFxuICAgIFwiUGFydGlkYVwiLFxuICAgIFwiUGF0acOxb1wiLFxuICAgIFwiUGF6XCIsXG4gICAgXCJQZWRyYXphXCIsXG4gICAgXCJQZWRyb3phXCIsXG4gICAgXCJQZWxheW9cIixcbiAgICBcIlBlw7FhXCIsXG4gICAgXCJQZXJhbGVzXCIsXG4gICAgXCJQZXJhbHRhXCIsXG4gICAgXCJQZXJlYVwiLFxuICAgIFwiUGVyZXNcIixcbiAgICBcIlDDqXJlelwiLFxuICAgIFwiUGljaGFyZG9cIixcbiAgICBcIlBpw7FhXCIsXG4gICAgXCJQaW5lZGFcIixcbiAgICBcIlBpemFycm9cIixcbiAgICBcIlBvbGFuY29cIixcbiAgICBcIlBvbmNlXCIsXG4gICAgXCJQb3JyYXNcIixcbiAgICBcIlBvcnRpbGxvXCIsXG4gICAgXCJQb3NhZGFcIixcbiAgICBcIlByYWRvXCIsXG4gICAgXCJQcmVjaWFkb1wiLFxuICAgIFwiUHJpZXRvXCIsXG4gICAgXCJQdWVudGVcIixcbiAgICBcIlB1Z2FcIixcbiAgICBcIlB1bGlkb1wiLFxuICAgIFwiUXVlc2FkYVwiLFxuICAgIFwiUXVlemFkYVwiLFxuICAgIFwiUXVpw7FvbmVzXCIsXG4gICAgXCJRdWnDscOzbmV6XCIsXG4gICAgXCJRdWludGFuYVwiLFxuICAgIFwiUXVpbnRhbmlsbGFcIixcbiAgICBcIlF1aW50ZXJvXCIsXG4gICAgXCJRdWlyb3pcIixcbiAgICBcIlJhZWxcIixcbiAgICBcIlJhbcOtcmV6XCIsXG4gICAgXCJSYW3Ds25cIixcbiAgICBcIlJhbW9zXCIsXG4gICAgXCJSYW5nZWxcIixcbiAgICBcIlJhc2PDs25cIixcbiAgICBcIlJheWFcIixcbiAgICBcIlJhem9cIixcbiAgICBcIlJlZ2FsYWRvXCIsXG4gICAgXCJSZW5kw7NuXCIsXG4gICAgXCJSZW50ZXLDrWFcIixcbiAgICBcIlJlc8OpbmRlelwiLFxuICAgIFwiUmV5ZXNcIixcbiAgICBcIlJleW5hXCIsXG4gICAgXCJSZXlub3NvXCIsXG4gICAgXCJSaWNvXCIsXG4gICAgXCJSaW5jw7NuXCIsXG4gICAgXCJSaW9qYXNcIixcbiAgICBcIlLDrW9zXCIsXG4gICAgXCJSaXZhc1wiLFxuICAgIFwiUml2ZXJhXCIsXG4gICAgXCJSaXZlcm9cIixcbiAgICBcIlJvYmxlZG9cIixcbiAgICBcIlJvYmxlc1wiLFxuICAgIFwiUm9jaGFcIixcbiAgICBcIlJvZGFydGVcIixcbiAgICBcIlJvZHLDrWdlelwiLFxuICAgIFwiUm9kcsOtZ3VlelwiLFxuICAgIFwiUm9kcsOtcXVlelwiLFxuICAgIFwiUm9qYXNcIixcbiAgICBcIlJvam9cIixcbiAgICBcIlJvbGTDoW5cIixcbiAgICBcIlJvbMOzblwiLFxuICAgIFwiUm9tZXJvXCIsXG4gICAgXCJSb21vXCIsXG4gICAgXCJSb3F1ZVwiLFxuICAgIFwiUm9zYWRvXCIsXG4gICAgXCJSb3NhbGVzXCIsXG4gICAgXCJSb3NhcmlvXCIsXG4gICAgXCJSb3Nhc1wiLFxuICAgIFwiUm95YmFsXCIsXG4gICAgXCJSdWJpb1wiLFxuICAgIFwiUnVlbGFzXCIsXG4gICAgXCJSdWl6XCIsXG4gICAgXCJTYWF2ZWRyYVwiLFxuICAgIFwiU8OhZW56XCIsXG4gICAgXCJTYWl6XCIsXG4gICAgXCJTYWxhc1wiLFxuICAgIFwiU2FsYXphclwiLFxuICAgIFwiU2FsY2Vkb1wiLFxuICAgIFwiU2FsY2lkb1wiLFxuICAgIFwiU2FsZGHDsWFcIixcbiAgICBcIlNhbGRpdmFyXCIsXG4gICAgXCJTYWxnYWRvXCIsXG4gICAgXCJTYWxpbmFzXCIsXG4gICAgXCJTYW1hbmllZ29cIixcbiAgICBcIlNhbmFicmlhXCIsXG4gICAgXCJTYW5jaGVzXCIsXG4gICAgXCJTw6FuY2hlelwiLFxuICAgIFwiU2FuZG92YWxcIixcbiAgICBcIlNhbnRhY3J1elwiLFxuICAgIFwiU2FudGFuYVwiLFxuICAgIFwiU2FudGlhZ29cIixcbiAgICBcIlNhbnRpbGzDoW5cIixcbiAgICBcIlNhcmFiaWFcIixcbiAgICBcIlNhdWNlZGFcIixcbiAgICBcIlNhdWNlZG9cIixcbiAgICBcIlNlZGlsbG9cIixcbiAgICBcIlNlZ292aWFcIixcbiAgICBcIlNlZ3VyYVwiLFxuICAgIFwiU2Vww7psdmVkYVwiLFxuICAgIFwiU2VybmFcIixcbiAgICBcIlNlcnJhbm9cIixcbiAgICBcIlNlcnJhdG9cIixcbiAgICBcIlNldmlsbGFcIixcbiAgICBcIlNpZXJyYVwiLFxuICAgIFwiU2lzbmVyb3NcIixcbiAgICBcIlNvbGFub1wiLFxuICAgIFwiU29sw61zXCIsXG4gICAgXCJTb2xpelwiLFxuICAgIFwiU29sb3Jpb1wiLFxuICAgIFwiU29sb3J6YW5vXCIsXG4gICAgXCJTb3JpYVwiLFxuICAgIFwiU29zYVwiLFxuICAgIFwiU290ZWxvXCIsXG4gICAgXCJTb3RvXCIsXG4gICAgXCJTdcOhcmV6XCIsXG4gICAgXCJUYWZveWFcIixcbiAgICBcIlRhbWF5b1wiLFxuICAgIFwiVGFtZXpcIixcbiAgICBcIlRhcGlhXCIsXG4gICAgXCJUZWphZGFcIixcbiAgICBcIlRlamVkYVwiLFxuICAgIFwiVMOpbGxlelwiLFxuICAgIFwiVGVsbG9cIixcbiAgICBcIlRlcsOhblwiLFxuICAgIFwiVGVycmF6YXNcIixcbiAgICBcIlRpamVyaW5hXCIsXG4gICAgXCJUaXJhZG9cIixcbiAgICBcIlRvbGVkb1wiLFxuICAgIFwiVG9yb1wiLFxuICAgIFwiVG9ycmVzXCIsXG4gICAgXCJUw7NycmV6XCIsXG4gICAgXCJUb3ZhclwiLFxuICAgIFwiVHJlam9cIixcbiAgICBcIlRyZXZpw7FvXCIsXG4gICAgXCJUcnVqaWxsb1wiLFxuICAgIFwiVWxpYmFycmlcIixcbiAgICBcIlVsbG9hXCIsXG4gICAgXCJVcmJpbmFcIixcbiAgICBcIlVyZcOxYVwiLFxuICAgIFwiVXLDrWFzXCIsXG4gICAgXCJVcmliZVwiLFxuICAgIFwiVXJydXRpYVwiLFxuICAgIFwiVmFjYVwiLFxuICAgIFwiVmFsYWRlelwiLFxuICAgIFwiVmFsZMOpc1wiLFxuICAgIFwiVmFsZGV6XCIsXG4gICAgXCJWYWxkaXZpYVwiLFxuICAgIFwiVmFsZW5jaWFcIixcbiAgICBcIlZhbGVudMOtblwiLFxuICAgIFwiVmFsZW56dWVsYVwiLFxuICAgIFwiVmFsbGFkYXJlc1wiLFxuICAgIFwiVmFsbGVcIixcbiAgICBcIlZhbGxlam9cIixcbiAgICBcIlZhbGxlc1wiLFxuICAgIFwiVmFsdmVyZGVcIixcbiAgICBcIlZhbmVnYXNcIixcbiAgICBcIlZhcmVsYVwiLFxuICAgIFwiVmFyZ2FzXCIsXG4gICAgXCJWw6FzcXVlelwiLFxuICAgIFwiVsOhenF1ZXpcIixcbiAgICBcIlZlZ2FcIixcbiAgICBcIlZlbGFcIixcbiAgICBcIlZlbGFzY29cIixcbiAgICBcIlZlbMOhc3F1ZXpcIixcbiAgICBcIlZlbMOhenF1ZXpcIixcbiAgICBcIlbDqWxlelwiLFxuICAgIFwiVsOpbGl6XCIsXG4gICAgXCJWZW5lZ2FzXCIsXG4gICAgXCJWZXJhXCIsXG4gICAgXCJWZXJkdWdvXCIsXG4gICAgXCJWZXJkdXpjb1wiLFxuICAgIFwiVmVyZ2FyYVwiLFxuICAgIFwiVmllcmFcIixcbiAgICBcIlZpZ2lsXCIsXG4gICAgXCJWaWxsYVwiLFxuICAgIFwiVmlsbGFnw7NtZXpcIixcbiAgICBcIlZpbGxhbG9ib3NcIixcbiAgICBcIlZpbGxhbHBhbmRvXCIsXG4gICAgXCJWaWxsYW51ZXZhXCIsXG4gICAgXCJWaWxsYXJlYWxcIixcbiAgICBcIlZpbGxhcnJlYWxcIixcbiAgICBcIlZpbGxhc2XDsW9yXCIsXG4gICAgXCJWaWxsZWdhc1wiLFxuICAgIFwiWcOhw7FlelwiLFxuICAgIFwiWWJhcnJhXCIsXG4gICAgXCJaYW1icmFub1wiLFxuICAgIFwiWmFtb3JhXCIsXG4gICAgXCJaYW11ZGlvXCIsXG4gICAgXCJaYXBhdGFcIixcbiAgICBcIlphcmFnb3phXCIsXG4gICAgXCJaYXJhdGVcIixcbiAgICBcIlphdmFsYVwiLFxuICAgIFwiWmF5YXNcIixcbiAgICBcIlplbGF5YVwiLFxuICAgIFwiWmVwZWRhXCIsXG4gICAgXCJaw7rDsWlnYVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNyLlwiLFxuICAgIFwiU3JhLlwiLFxuICAgIFwiU3RhLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiU3IuXCIsXG4gICAgXCJJXCIsXG4gICAgXCJJSVwiLFxuICAgIFwiSUlJXCIsXG4gICAgXCJJVlwiLFxuICAgIFwiVlwiLFxuICAgIFwiTURcIixcbiAgICBcIkREU1wiLFxuICAgIFwiUGhEXCIsXG4gICAgXCJEVk1cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJKZWZlXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RvXCIsXG4gICAgICBcIkNvcnBvcmF0aXZvXCIsXG4gICAgICBcIkRpbsOhbm1pY29cIixcbiAgICAgIFwiRnV0dXJvXCIsXG4gICAgICBcIlByb2R1Y3RvXCIsXG4gICAgICBcIk5hY2lvbmFsXCIsXG4gICAgICBcIlJlZ2lvbmFsXCIsXG4gICAgICBcIkRpc3RyaXRvXCIsXG4gICAgICBcIkNlbnRyYWxcIixcbiAgICAgIFwiR2xvYmFsXCIsXG4gICAgICBcIkNsaWVudGVcIixcbiAgICAgIFwiSW52ZXJzb3JcIixcbiAgICAgIFwiSW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJIZXJlZGFkb1wiLFxuICAgICAgXCJBZGVsYW50ZVwiLFxuICAgICAgXCJJbnRlcm5vXCIsXG4gICAgICBcIkh1bWFub1wiLFxuICAgICAgXCJHZXJlbnRlXCIsXG4gICAgICBcIkRpcmVjdG9yXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1Y2lvbmVzXCIsXG4gICAgICBcIlByb2dyYW1hXCIsXG4gICAgICBcIk1hcmNhXCIsXG4gICAgICBcIlNlZ3VyaWRhZGFcIixcbiAgICAgIFwiSW52ZXN0aWdhY2nDs25cIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIk5vcm1hc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhY2nDs25cIixcbiAgICAgIFwiSW50ZWdyYWNpw7NuXCIsXG4gICAgICBcIkZ1bmNpb25hbGlkYWRcIixcbiAgICAgIFwiUmVzcHVlc3RhXCIsXG4gICAgICBcIlBhcmFkaWdtYVwiLFxuICAgICAgXCJUw6FjdGljYXNcIixcbiAgICAgIFwiSWRlbnRpZGFkXCIsXG4gICAgICBcIk1lcmNhZG9zXCIsXG4gICAgICBcIkdydXBvXCIsXG4gICAgICBcIkRpdmlzacOzblwiLFxuICAgICAgXCJBcGxpY2FjaW9uZXNcIixcbiAgICAgIFwiT3B0aW1pemFjacOzblwiLFxuICAgICAgXCJPcGVyYWNpb25lc1wiLFxuICAgICAgXCJJbmZyYWVzdHJ1Y3R1cmFcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tdW5pY2FjaW9uZXNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkNhbGlkYWRcIixcbiAgICAgIFwiU2VndXJvXCIsXG4gICAgICBcIk1vYmlsaWRhZFwiLFxuICAgICAgXCJDdWVudGFzXCIsXG4gICAgICBcIkRhdG9zXCIsXG4gICAgICBcIkNyZWF0aXZvXCIsXG4gICAgICBcIkNvbmZpZ3VyYWNpw7NuXCIsXG4gICAgICBcIkNvbnRhYmlsaWRhZFwiLFxuICAgICAgXCJJbnRlcmFjY2lvbmVzXCIsXG4gICAgICBcIkZhY3RvcmVzXCIsXG4gICAgICBcIlVzYWJpbGlkYWRcIixcbiAgICAgIFwiTcOpdHJpY2FzXCJcbiAgICBdLFxuICAgIFwiam9iXCI6IFtcbiAgICAgIFwiU3VwZXJ2aXNvclwiLFxuICAgICAgXCJBc29jaWFkb1wiLFxuICAgICAgXCJFamVjdXRpdm9cIixcbiAgICAgIFwiUmVsYWNjaW9uZXNcIixcbiAgICAgIFwiT2ZpY2lhbFwiLFxuICAgICAgXCJHZXJlbnRlXCIsXG4gICAgICBcIkluZ2VuaWVyb1wiLFxuICAgICAgXCJFc3BlY2lhbGlzdGFcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmFkb3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYWRvclwiLFxuICAgICAgXCJBcnF1aXRlY3RvXCIsXG4gICAgICBcIkFuYWxpc3RhXCIsXG4gICAgICBcIkRpc2XDsWFkb3JcIixcbiAgICAgIFwiUGxhbmlmaWNhZG9yXCIsXG4gICAgICBcIlTDqWNuaWNvXCIsXG4gICAgICBcIkZ1bmNpb25hcmlvXCIsXG4gICAgICBcIkRlc2Fycm9sbGFkb3JcIixcbiAgICAgIFwiUHJvZHVjdG9yXCIsXG4gICAgICBcIkNvbnN1bHRvclwiLFxuICAgICAgXCJBc2lzdGVudGVcIixcbiAgICAgIFwiRmFjaWxpdGFkb3JcIixcbiAgICAgIFwiQWdlbnRlXCIsXG4gICAgICBcIlJlcHJlc2VudGFudGVcIixcbiAgICAgIFwiRXN0cmF0ZWdhXCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuZXMucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiOSMjLSMjIy0jIyNcIixcbiAgICBcIjkjIy4jIyMuIyMjXCIsXG4gICAgXCI5IyMgIyMjICMjI1wiLFxuICAgIFwiOSMjIyMjIyMjXCJcbiAgXVxufTtcbmVzLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCI2IyMtIyMjLSMjI1wiLFxuICAgIFwiNiMjLiMjIy4jIyNcIixcbiAgICBcIjYjIyAjIyMgIyMjXCIsXG4gICAgXCI2IyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGZhID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gZmE7XG5mYS50aXRsZSA9IFwiRmFyc2lcIjtcbmZhLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLYotio2KfZhiDYr9iu2KpcIixcbiAgICBcItii2KjYqtuM2YZcIixcbiAgICBcItii2KrZiNiz2KdcIixcbiAgICBcItii2YHYsVwiLFxuICAgIFwi2KLZgdix2Ycg2K/YrtiqXCIsXG4gICAgXCLYotiw2LHZhtmI2LTigIxcIixcbiAgICBcItii2LDbjNmGXCIsXG4gICAgXCLYotix2KfZh1wiLFxuICAgIFwi2KLYsdiy2YhcIixcbiAgICBcItii2LHYtFwiLFxuICAgIFwi2KLYsdiq24zZhlwiLFxuICAgIFwi2KLYsdiq2KfZhVwiLFxuICAgIFwi2KLYsdiq2YXZhlwiLFxuICAgIFwi2KLYsdi02KfZhVwiLFxuICAgIFwi2KLYsdmF2KfZhlwiLFxuICAgIFwi2KLYsdmF24zZhlwiLFxuICAgIFwi2KLYsdmF24zYqtinXCIsXG4gICAgXCLYotix24zYpyDZgdixXCIsXG4gICAgXCLYotix24zYp1wiLFxuICAgIFwi2KLYsduM2Kcg2YXZh9ixXCIsXG4gICAgXCLYotix24zZhlwiLFxuICAgIFwi2KLYstin2K/Zh1wiLFxuICAgIFwi2KLYstix2YVcIixcbiAgICBcItii2LLYsdmF2K/YrtiqXCIsXG4gICAgXCLYotiy24zYqtinXCIsXG4gICAgXCLYotmG2KfZh9uM2KrYp1wiLFxuICAgIFwi2KLZiNmG2q9cIixcbiAgICBcItii2YfZiFwiLFxuICAgIFwi2KLbjNiv2KdcIixcbiAgICBcItin2KrYs9iyXCIsXG4gICAgXCLYp9iu2KrYsVwiLFxuICAgIFwi2KfYsdivXCIsXG4gICAgXCLYp9ix2K8g2LTbjNixXCIsXG4gICAgXCLYp9ix2K/ZiNin2YZcIixcbiAgICBcItin2LHamNmGXCIsXG4gICAgXCLYp9ix2pjZhtqvXCIsXG4gICAgXCLYp9ix2LPZhNin2YZcIixcbiAgICBcItin2LHYutmI2KfZhlwiLFxuICAgIFwi2KfYsdmF2LrYp9mGXCIsXG4gICAgXCLYp9ix2YbZiNin2LJcIixcbiAgICBcItin2LHZiNin2YbZh1wiLFxuICAgIFwi2KfYs9iq2LFcIixcbiAgICBcItin2LPZgdmG2K/bjNin2LFcIixcbiAgICBcItin2LTaqdin2YZcIixcbiAgICBcItin2LTaqdio2YjYs1wiLFxuICAgIFwi2KfZgdiz2KfZhtmHXCIsXG4gICAgXCLYp9mB2LPZiNmGXCIsXG4gICAgXCLYp9mB2LTbjNmGXCIsXG4gICAgXCLYp9mF24zYr1wiLFxuICAgIFwi2KfZhtmI2LQgKOKAjCDYotmG2YjYtNinIClcIixcbiAgICBcItin2YbZiNi02LHZiNin2YZcIixcbiAgICBcItin2YjYsdmG2q9cIixcbiAgICBcItin2YjamNmGXCIsXG4gICAgXCLYp9mI2LPYqtinXCIsXG4gICAgXCLYp9mH2YjYsdinXCIsXG4gICAgXCLYp9uM2KfYslwiLFxuICAgIFwi2KfbjNix2KfZhlwiLFxuICAgIFwi2KfbjNix2KfZhtiv2K7YqlwiLFxuICAgIFwi2KfbjNix2KxcIixcbiAgICBcItin24zYstiv24zYp9ixXCIsXG4gICAgXCLYqNin2KjaqVwiLFxuICAgIFwi2KjYp9m+2YjaqVwiLFxuICAgIFwi2KjYp9ix2KjYr1wiLFxuICAgIFwi2KjYp9ix2YXYp9mGXCIsXG4gICAgXCLYqNin2YXYr9in2K9cIixcbiAgICBcItio2KfZhdi02KfYr1wiLFxuICAgIFwi2KjYp9mG2YhcIixcbiAgICBcItio2K7YqtuM2KfYsVwiLFxuICAgIFwi2KjYsdin2YbZiNi0XCIsXG4gICAgXCLYqNix2K/bjNinXCIsXG4gICAgXCLYqNix2LLZiFwiLFxuICAgIFwi2KjYsdiy2YjbjNmHXCIsXG4gICAgXCLYqNix2LLbjNmGXCIsXG4gICAgXCLYqNix2YXaqVwiLFxuICAgIFwi2KjYstix2q/ZhdmH2LFcIixcbiAgICBcItio2YbZgdi02YdcIixcbiAgICBcItio2YjamNin2YZcIixcbiAgICBcItio2YjbjNin2YZcIixcbiAgICBcItio2YfYp9ixXCIsXG4gICAgXCLYqNmH2KfYsdqpXCIsXG4gICAgXCLYqNmH2KfYsdmHXCIsXG4gICAgXCLYqNmH2KrYp9i0XCIsXG4gICAgXCLYqNmH2K/Yp9ivXCIsXG4gICAgXCLYqNmH2LHYp9mFXCIsXG4gICAgXCLYqNmH2K/bjNizXCIsXG4gICAgXCLYqNmH2LHYrlwiLFxuICAgIFwi2KjZh9ix2Ybar1wiLFxuICAgIFwi2KjZh9ix2YjYslwiLFxuICAgIFwi2KjZh9iy2KfYr1wiLFxuICAgIFwi2KjZh9i02KfYr1wiLFxuICAgIFwi2KjZh9mF2YZcIixcbiAgICBcItio2YfZhtin2LJcIixcbiAgICBcItio2YfZhtin2YVcIixcbiAgICBcItio2YfZhtmI2K9cIixcbiAgICBcItio2YfZhtmI2LRcIixcbiAgICBcItio24zYqtinXCIsXG4gICAgXCLYqNuM2pjZhlwiLFxuICAgIFwi2b7Yp9ix2LPYp1wiLFxuICAgIFwi2b7Yp9qp2KfZhlwiLFxuICAgIFwi2b7Yp9qp2KrZhlwiLFxuICAgIFwi2b7Yp9qp2K/YrtiqXCIsXG4gICAgXCLZvtin2YbYqtmHINiiXCIsXG4gICAgXCLZvtiv2LHYp9mFXCIsXG4gICAgXCLZvtix2KrZiFwiLFxuICAgIFwi2b7Ysdi02Ybar1wiLFxuICAgIFwi2b7Ysdiq2YhcIixcbiAgICBcItm+2LHYs9iq2YhcIixcbiAgICBcItm+2LHZiNuM2LJcIixcbiAgICBcItm+2LHYr9uM2LNcIixcbiAgICBcItm+2LHZh9in2YVcIixcbiAgICBcItm+2pjZhdin2YZcIixcbiAgICBcItm+2pjZiNinXCIsXG4gICAgXCLZvtix2YbbjNinXCIsXG4gICAgXCLZvti02Ybar1wiLFxuICAgIFwi2b7YsdmI2KfZhtmHXCIsXG4gICAgXCLZvtix2YjbjNmGXCIsXG4gICAgXCLZvtix24xcIixcbiAgICBcItm+2LHbjNqG2YfYsVwiLFxuICAgIFwi2b7YsduM2K/YrtiqXCIsXG4gICAgXCLZvtix24zYs9inXCIsXG4gICAgXCLZvtix2YbYp9iyXCIsXG4gICAgXCLZvtix24zZiNi0XCIsXG4gICAgXCLZvtix24zYp1wiLFxuICAgIFwi2b7ZiNm+2qlcIixcbiAgICBcItm+2YjYsdin2YZcIixcbiAgICBcItm+2YjYsdin2YbYr9iu2KpcIixcbiAgICBcItm+2YjYsduM2KdcIixcbiAgICBcItm+2YjZhNin2K9cIixcbiAgICBcItm+2YjbjNinXCIsXG4gICAgXCLZvtmI2YbZh1wiLFxuICAgIFwi2b7bjNin2YVcIixcbiAgICBcItm+24zYsdmI2LJcIixcbiAgICBcItm+24zZhdin2YZcIixcbiAgICBcItiq2KfYqNin2YZcIixcbiAgICBcItiq2KfYqNin2YbYr9iu2KpcIixcbiAgICBcItiq2KfYrNuMXCIsXG4gICAgXCLYqtin2LHYp1wiLFxuICAgIFwi2KrYp9mI24zYp9ixXCIsXG4gICAgXCLYqtix2KfZhtmHXCIsXG4gICAgXCLYqtmG2KfYslwiLFxuICAgIFwi2KrZiNix2KfZhlwiLFxuICAgIFwi2KrZiNix2KfZhtiv2K7YqlwiLFxuICAgIFwi2KrZiNix2KxcIixcbiAgICBcItiq2YjYsdiq2qlcIixcbiAgICBcItiq2YjZgdin2YZcIixcbiAgICBcItiq2YjamNin2YRcIixcbiAgICBcItiq24zYsSDYr9in2K9cIixcbiAgICBcItiq24zZhtinXCIsXG4gICAgXCLYqtuM2YbZiFwiLFxuICAgIFwi2KzYp9io2KfZhlwiLFxuICAgIFwi2KzYp9mF24zZhlwiLFxuICAgIFwi2KzYp9mI24zYr1wiLFxuICAgIFwi2KzYsduM2LHZh1wiLFxuICAgIFwi2KzZhdi024zYr1wiLFxuICAgIFwi2KzZiNin2YZcIixcbiAgICBcItis2YjbjNinXCIsXG4gICAgXCLYrNmH2KfZhlwiLFxuICAgIFwi2KzZh9in2YbYqNiu2KpcIixcbiAgICBcItis2YfYp9mG2KjYrti0XCIsXG4gICAgXCLYrNmH2KfZhtiv2KfYsVwiLFxuICAgIFwi2KzZh9in2Ybar9uM2LFcIixcbiAgICBcItis2YfYp9mGINio2KfZhtmIXCIsXG4gICAgXCLYrNmH2KfZhtiv2K7YqlwiLFxuICAgIFwi2KzZh9in2YYg2YbYp9iyXCIsXG4gICAgXCLYrNuM2LHYp9mGXCIsXG4gICAgXCLahtin2KjaqVwiLFxuICAgIFwi2obYp9mE2KfaqVwiLFxuICAgIFwi2obYp9mI2LRcIixcbiAgICBcItqG2KrYsdinXCIsXG4gICAgXCLahtmI2KjbjNmGXCIsXG4gICAgXCLahtmH2LHYstin2K9cIixcbiAgICBcItiu2KfZiNix2K/YrtiqXCIsXG4gICAgXCLYrtiv2KfYr9in2K9cIixcbiAgICBcItiu2K/Yp9uM2KfYsVwiLFxuICAgIFwi2K7YsdmFXCIsXG4gICAgXCLYrtix2YXYr9iu2KpcIixcbiAgICBcItiu2LPYsdmIXCIsXG4gICAgXCLYrti02KfbjNin2LFcIixcbiAgICBcItiu2YjYsdi024zYr1wiLFxuICAgIFwi2K/Yp9iv2YXZh9ixXCIsXG4gICAgXCLYr9in2LHYp1wiLFxuICAgIFwi2K/Yp9ix2KfYqFwiLFxuICAgIFwi2K/Yp9ix24zYp1wiLFxuICAgIFwi2K/Yp9ix24zZiNi0XCIsXG4gICAgXCLYr9in2YbZiNi0XCIsXG4gICAgXCLYr9in2YjYseKAjFwiLFxuICAgIFwi2K/Yp9uM2KfZhlwiLFxuICAgIFwi2K/YsduM2KdcIixcbiAgICBcItiv2YQg2KLYsdinXCIsXG4gICAgXCLYr9mEINii2YjbjNiyXCIsXG4gICAgXCLYr9mE2KfYsdin2YVcIixcbiAgICBcItiv2YQg2KfZhtqv24zYslwiLFxuICAgIFwi2K/ZhNio2LFcIixcbiAgICBcItiv2YTYqNmG2K9cIixcbiAgICBcItiv2YTYsdio2KdcIixcbiAgICBcItiv2YTYtNin2K9cIixcbiAgICBcItiv2YTaqdi0XCIsXG4gICAgXCLYr9mE2YbYp9iyXCIsXG4gICAgXCLYr9mE2YbZiNin2LJcIixcbiAgICBcItiv2YjYsdi02KfYs9ioXCIsXG4gICAgXCLYr9mG24zYp1wiLFxuICAgIFwi2K/bjNin2KfaqdmIXCIsXG4gICAgXCLYr9uM2KfZhtmI2LRcIixcbiAgICBcItiv24zYqNinXCIsXG4gICAgXCLYr9uM2KjYpyDYr9iu2KpcIixcbiAgICBcItix2KfYqNmIXCIsXG4gICAgXCLYsdin2KjbjNmGXCIsXG4gICAgXCLYsdin2K/YqNin2YbZiFwiLFxuICAgIFwi2LHYp9iv2YXYp9mGXCIsXG4gICAgXCLYsdin2LLYqNin2YZcIixcbiAgICBcItix2KfamNin2YbZh1wiLFxuICAgIFwi2LHYp9iz2KdcIixcbiAgICBcItix2KfZhdiq24zZhlwiLFxuICAgIFwi2LHYp9mF2LRcIixcbiAgICBcItix2KfZhdi02q/YsVwiLFxuICAgIFwi2LHYp9mF2YjZhtinXCIsXG4gICAgXCLYsdin2YXbjNin2LFcIixcbiAgICBcItix2KfZhduM2YTYp1wiLFxuICAgIFwi2LHYp9mF24zZhlwiLFxuICAgIFwi2LHYp9mI24zYp9ixXCIsXG4gICAgXCLYsdqY24zZhtinXCIsXG4gICAgXCLYsdiu2b7Yp9qpXCIsXG4gICAgXCLYsdiu2LPYp9ixXCIsXG4gICAgXCLYsdiu2LTYp9mG2YdcIixcbiAgICBcItix2K7YtNmG2K/Zh1wiLFxuICAgIFwi2LHYstmF24zYp9ixXCIsXG4gICAgXCLYsdiz2KrZhVwiLFxuICAgIFwi2LHaqdiz2KfZhtinXCIsXG4gICAgXCLYsdmI2KjbjNmG2KdcIixcbiAgICBcItix2YjYr9in2KjZh1wiLFxuICAgIFwi2LHZiNiy2KjZh1wiLFxuICAgIFwi2LHZiNi02YbaqVwiLFxuICAgIFwi2LHZiNmG2KfaqVwiLFxuICAgIFwi2LHZh9in2YVcIixcbiAgICBcItix2YfbjFwiLFxuICAgIFwi2LHbjNio2KfYsVwiLFxuICAgIFwi2LHYp9iz2b7bjNmG2KdcIixcbiAgICBcItiy2KfYr9io2K7YqlwiLFxuICAgIFwi2LLYp9ivINio2YdcIixcbiAgICBcItiy2KfYryDahtmH2LFcIixcbiAgICBcItiy2KfYryDZgdixXCIsXG4gICAgXCLYstin2YRcIixcbiAgICBcItiy2KfYr9mF2KfYs9ioXCIsXG4gICAgXCLYstin2YjYp1wiLFxuICAgIFwi2LLYsdiv2LTYqlwiLFxuICAgIFwi2LLYsdmG2q/Yp9ixXCIsXG4gICAgXCLYstix24xcIixcbiAgICBcItiy2LHbjNmGXCIsXG4gICAgXCLYstix24zZhtmHXCIsXG4gICAgXCLYstmF2KfZhtmHXCIsXG4gICAgXCLYstmI2YbYp1wiLFxuICAgIFwi2LLbjNio2KdcIixcbiAgICBcItiy24zYqNin2LFcIixcbiAgICBcItiy24zZhdinXCIsXG4gICAgXCLYstuM2YbZiFwiLFxuICAgIFwi2pjYp9mE2YdcIixcbiAgICBcItqY2KfZhNin2YZcIixcbiAgICBcItqY24zYp9ixXCIsXG4gICAgXCLamNuM2YbYp1wiLFxuICAgIFwi2pjbjNmI2KfYsVwiLFxuICAgIFwi2LPYp9ix2KdcIixcbiAgICBcItiz2KfYsdqpXCIsXG4gICAgXCLYs9in2LHZhtqvXCIsXG4gICAgXCLYs9in2LHZh1wiLFxuICAgIFwi2LPYp9iz2KfZhlwiLFxuICAgIFwi2LPYp9i62LFcIixcbiAgICBcItiz2KfZhVwiLFxuICAgIFwi2LPYp9mF2KfZhlwiLFxuICAgIFwi2LPYp9mG2KdcIixcbiAgICBcItiz2KfZhtin2LJcIixcbiAgICBcItiz2KfZhtuM2KfYsVwiLFxuICAgIFwi2LPYp9mI24zYslwiLFxuICAgIFwi2LPYp9mH24xcIixcbiAgICBcItiz2KfbjNmG2KdcIixcbiAgICBcItiz2KfbjNmHXCIsXG4gICAgXCLYs9m+2YbYqtinXCIsXG4gICAgXCLYs9m+2YbYr1wiLFxuICAgIFwi2LPZvtmH2LFcIixcbiAgICBcItiz2b7Zh9ix2K/Yp9ivXCIsXG4gICAgXCLYs9m+24zYr9in2LFcIixcbiAgICBcItiz2b7bjNivINio2KfZhtmIXCIsXG4gICAgXCLYs9m+24zYr9mHXCIsXG4gICAgXCLYs9iq2KfYsdmHXCIsXG4gICAgXCLYs9iq24xcIixcbiAgICBcItiz2LHYp9mB2LHYp9iyXCIsXG4gICAgXCLYs9ix2YjYsVwiLFxuICAgIFwi2LPYsdmI2LRcIixcbiAgICBcItiz2LHZiNixXCIsXG4gICAgXCLYs9mI2KjYp1wiLFxuICAgIFwi2LPZiNio2KfYsVwiLFxuICAgIFwi2LPZhtio2YTZh1wiLFxuICAgIFwi2LPZiNiv2KfYqNmHXCIsXG4gICAgXCLYs9mI2LHbjFwiLFxuICAgIFwi2LPZiNix2YZcIixcbiAgICBcItiz2YjYsdmG2KdcIixcbiAgICBcItiz2YjYstin2YZcIixcbiAgICBcItiz2YjYstmHXCIsXG4gICAgXCLYs9mI2LPZhlwiLFxuICAgIFwi2LPZiNmF2KfYsVwiLFxuICAgIFwi2LPZiNmE2KfZhlwiLFxuICAgIFwi2LPZiNmE2YXYp9iyXCIsXG4gICAgXCLYs9mI2q/ZhtivXCIsXG4gICAgXCLYs9mH2LHYp9ioXCIsXG4gICAgXCLYs9mH2LHZh1wiLFxuICAgIFwi2LPZh9mG2K9cIixcbiAgICBcItiz24zYp9mF2qlcIixcbiAgICBcItiz24zYp9mI2LRcIixcbiAgICBcItiz24zYqNmI2KjZhyDigIxcIixcbiAgICBcItiz24zZhdinXCIsXG4gICAgXCLYs9uM2YXYr9iu2KpcIixcbiAgICBcItiz24zZhtinXCIsXG4gICAgXCLYs9uM2YXbjNmGXCIsXG4gICAgXCLYs9uM2YXbjNmGINiv2K7YqlwiLFxuICAgIFwi2LTYp9m+2LHaqVwiLFxuICAgIFwi2LTYp9iv24xcIixcbiAgICBcIti02KfYr9mF2YfYsVwiLFxuICAgIFwi2LTYp9ix2KfZhlwiLFxuICAgIFwi2LTYp9mH2b7ZiNixXCIsXG4gICAgXCLYtNin2YfYr9iu2KpcIixcbiAgICBcIti02KfZh9ix2K5cIixcbiAgICBcIti02KfZh9uM2YZcIixcbiAgICBcIti02KfZh9uM2YbYr9iu2KpcIixcbiAgICBcIti02KfbjNiz2KrZh1wiLFxuICAgIFwi2LTYqNin2YfZhtqvXCIsXG4gICAgXCLYtNioINio2YhcIixcbiAgICBcIti02KjYr9uM2LJcIixcbiAgICBcIti02KjZhtmFXCIsXG4gICAgXCLYtNix2KfYsdmHXCIsXG4gICAgXCLYtNix2YXbjNmGXCIsXG4gICAgXCLYtNix2YjbjNmGXCIsXG4gICAgXCLYtNqp2YjZgdmHXCIsXG4gICAgXCLYtNqp2YHYqtmHXCIsXG4gICAgXCLYtNmF2LTYp9ivXCIsXG4gICAgXCLYtNmF24zZhlwiLFxuICAgIFwi2LTZiNin2YZcIixcbiAgICBcIti02YXbjNmE2KdcIixcbiAgICBcIti02YjYsdin2Ybar9uM2LJcIixcbiAgICBcIti02YjYsduMXCIsXG4gICAgXCLYtNmH2KfYqFwiLFxuICAgIFwi2LTZh9io2KfYsVwiLFxuICAgIFwi2LTZh9io2KfYslwiLFxuICAgIFwi2LTZh9io2KfZhFwiLFxuICAgIFwi2LTZh9m+2LFcIixcbiAgICBcIti02YfYr9in2K9cIixcbiAgICBcIti02YfYsdii2LHYp1wiLFxuICAgIFwi2LTZh9ix2KfZhVwiLFxuICAgIFwi2LTZh9ix2KjYp9mG2YhcIixcbiAgICBcIti02YfYsdiy2KfYr1wiLFxuICAgIFwi2LTZh9ix2YbYp9iyXCIsXG4gICAgXCLYtNmH2LHZhtmI2LRcIixcbiAgICBcIti02YfYsdmHXCIsXG4gICAgXCLYtNmH2LHbjNin2LFcIixcbiAgICBcIti02YfYsdiy2KfYr1wiLFxuICAgIFwi2LTZh9mE2KdcIixcbiAgICBcIti02YfZhtmI2KfYslwiLFxuICAgIFwi2LTZh9uM2YZcIixcbiAgICBcIti024zYqNinXCIsXG4gICAgXCLYtNuM2K/Yp1wiLFxuICAgIFwi2LTbjNiv2YdcIixcbiAgICBcIti024zYsdiv2YRcIixcbiAgICBcIti024zYsdiy2KfYr1wiLFxuICAgIFwi2LTbjNix2Ybar1wiLFxuICAgIFwi2LTbjNix2YhcIixcbiAgICBcIti024zYsduM2YYg2K/YrtiqXCIsXG4gICAgXCLYtNuM2YXYp1wiLFxuICAgIFwi2LTbjNmG2KdcIixcbiAgICBcIti024zYsduM2YZcIixcbiAgICBcIti024zZiNinXCIsXG4gICAgXCLYt9mI2LNcIixcbiAgICBcIti32YjYt9uMXCIsXG4gICAgXCLYt9mH2YXYp9iz2KhcIixcbiAgICBcIti32YfZhdmI2LHYq1wiLFxuICAgIFwi2LrZiNi62KdcIixcbiAgICBcIti62YbahtmHXCIsXG4gICAgXCLZgdiq2KfZhtmHXCIsXG4gICAgXCLZgdiv2KdcIixcbiAgICBcItmB2LHYp9iyXCIsXG4gICAgXCLZgdix2KfZhdix2LJcIixcbiAgICBcItmB2LHYp9mG2qlcIixcbiAgICBcItmB2LHYp9mH2KfZhlwiLFxuICAgIFwi2YHYsdio2K9cIixcbiAgICBcItmB2LHYqNi6XCIsXG4gICAgXCLZgdix2KzYp9ivXCIsXG4gICAgXCLZgdix2K5cIixcbiAgICBcItmB2LHYriDZvtuMXCIsXG4gICAgXCLZgdix2K4g2K/Yp9ivXCIsXG4gICAgXCLZgdix2K4g2LHZiFwiLFxuICAgIFwi2YHYsdiuINiy2KfYr1wiLFxuICAgIFwi2YHYsdiuINmE2YLYp1wiLFxuICAgIFwi2YHYsdiuINmF2YfYsVwiLFxuICAgIFwi2YHYsdiv2KfYr1wiLFxuICAgIFwi2YHYsdiv24zYs1wiLFxuICAgIFwi2YHYsduM2YZcIixcbiAgICBcItmB2LHYstin2K9cIixcbiAgICBcItmB2LHYstin2YVcIixcbiAgICBcItmB2LHYstin2YZcIixcbiAgICBcItmB2LHYstin2YbZh1wiLFxuICAgIFwi2YHYsdiy24zZhlwiLFxuICAgIFwi2YHYsdi02KfYr1wiLFxuICAgIFwi2YHYsdi02KrZh1wiLFxuICAgIFwi2YHYsdi024zYr1wiLFxuICAgIFwi2YHYsdmF2KfZhlwiLFxuICAgIFwi2YHYsdmG2KfYslwiLFxuICAgIFwi2YHYsdmG2q/bjNizXCIsXG4gICAgXCLZgdix2YbZiNivXCIsXG4gICAgXCLZgdix2YbZiNi0XCIsXG4gICAgXCLZgdix2YbbjNinXCIsXG4gICAgXCLZgdix2YjYqtmGXCIsXG4gICAgXCLZgdix2YjYr1wiLFxuICAgIFwi2YHYsdmI2LJcIixcbiAgICBcItmB2LHZiNiy2KfZhlwiLFxuICAgIFwi2YHYsdmI2LLYtFwiLFxuICAgIFwi2YHYsdmI2LLZhtiv2YdcIixcbiAgICBcItmB2LHZiNi6XCIsXG4gICAgXCLZgdix2YfYp9ivXCIsXG4gICAgXCLZgdix2YfZhtqvXCIsXG4gICAgXCLZgdix2YfZiNivXCIsXG4gICAgXCLZgdix2KjYp9ixXCIsXG4gICAgXCLZgdix24zYqNinXCIsXG4gICAgXCLZgdix24zYr1wiLFxuICAgIFwi2YHYsduM2K/YrtiqXCIsXG4gICAgXCLZgdix24zYr9mI2YZcIixcbiAgICBcItmB2LHbjNmF2KfZhlwiLFxuICAgIFwi2YHYsduM2YbYp9iyXCIsXG4gICAgXCLZgdix24zZhtmI2LRcIixcbiAgICBcItmB2LHbjNmI2LRcIixcbiAgICBcItmB24zYsdmI2LJcIixcbiAgICBcItmB24zYsdmI2LLZh1wiLFxuICAgIFwi2YLYp9io2YjYs1wiLFxuICAgIFwi2YLYqNin2K9cIixcbiAgICBcItmC2K/Ys9uMXCIsXG4gICAgXCLaqdin2KjYp9mGXCIsXG4gICAgXCLaqdin2KjZiNqpXCIsXG4gICAgXCLaqdin2LHYp1wiLFxuICAgIFwi2qnYp9ix2YhcIixcbiAgICBcItqp2KfYsdin2qnZiFwiLFxuICAgIFwi2qnYp9mF2KjYrtiqXCIsXG4gICAgXCLaqdin2YXYqNiu2LRcIixcbiAgICBcItqp2KfZhdio24zYslwiLFxuICAgIFwi2qnYp9mF2KzZiFwiLFxuICAgIFwi2qnYp9mF2K/bjNmGXCIsXG4gICAgXCLaqdin2YXYsdin2YZcIixcbiAgICBcItqp2KfZhdix2KfZiNinXCIsXG4gICAgXCLaqdin2YXaqVwiLFxuICAgIFwi2qnYp9mF2YbZiNi0XCIsXG4gICAgXCLaqdin2YXbjNin2LFcIixcbiAgICBcItqp2KfZhtuM2KfYsVwiLFxuICAgIFwi2qnYp9mI2YjYs1wiLFxuICAgIFwi2qnYp9mI2YdcIixcbiAgICBcItqp2KrYp9uM2YjZhlwiLFxuICAgIFwi2qnYsdi02YXZh1wiLFxuICAgIFwi2qnYs9ix24xcIixcbiAgICBcItqp2YTYp9mE2YdcIixcbiAgICBcItqp2YXYqNmI2KzbjNmHXCIsXG4gICAgXCLaqdmI2LTYp1wiLFxuICAgIFwi2qnZh9io2K9cIixcbiAgICBcItqp2YfYsdin2YVcIixcbiAgICBcItqp2YfYstin2K9cIixcbiAgICBcItqp24zYp9ix2LRcIixcbiAgICBcItqp24zYp9mGXCIsXG4gICAgXCLaqduM2KfZhtinXCIsXG4gICAgXCLaqduM2KfZhtqG2YfYsVwiLFxuICAgIFwi2qnbjNin2YbYr9iu2KpcIixcbiAgICBcItqp24zYp9mG2YjYtFwiLFxuICAgIFwi2qnbjNin2YjYtFwiLFxuICAgIFwi2qnbjNiu2LPYsdmIXCIsXG4gICAgXCLaqduM2YLYqNin2K9cIixcbiAgICBcItqp24zaqdin2YjZiNizXCIsXG4gICAgXCLaqduM2YjYp9mGXCIsXG4gICAgXCLaqduM2YjYp9mGINiv2K7YqlwiLFxuICAgIFwi2qnbjNmI2YXYsdirXCIsXG4gICAgXCLaqduM2YfYp9mGXCIsXG4gICAgXCLaqduM2KfZhtiv2K7YqlwiLFxuICAgIFwi2qnbjNmH2KfZhtmHXCIsXG4gICAgXCLar9ix2K8g2KLZgdix24zYr1wiLFxuICAgIFwi2q/Ysdiv2KfZhlwiLFxuICAgIFwi2q/Ysdi02KdcIixcbiAgICBcItqv2LHYtNin2LPYqFwiLFxuICAgIFwi2q/Ysdi024zZhlwiLFxuICAgIFwi2q/Ysdqv24zZhlwiLFxuICAgIFwi2q/YstmEXCIsXG4gICAgXCLar9i02KrYp9iz2KhcIixcbiAgICBcItqv2LTYs9ioXCIsXG4gICAgXCLar9i02LPYqCDYqNin2YbZiFwiLFxuICAgIFwi2q/ZhFwiLFxuICAgIFwi2q/ZhCDYotiw24zZhlwiLFxuICAgIFwi2q/ZhCDYotix2KfigIxcIixcbiAgICBcItqv2YTYp9ix2YdcIixcbiAgICBcItqv2YQg2KfZgdix2YjYslwiLFxuICAgIFwi2q/ZhNin2YTZh1wiLFxuICAgIFwi2q/ZhCDYp9mG2K/Yp9mFXCIsXG4gICAgXCLar9mE2KfZiNuM2LJcIixcbiAgICBcItqv2YTYqNin2K9cIixcbiAgICBcItqv2YTYqNin2LFcIixcbiAgICBcItqv2YTYqNin2YVcIixcbiAgICBcItqv2YTYqNin2YZcIixcbiAgICBcItqv2YTYqNin2YbZiFwiLFxuICAgIFwi2q/ZhNio2LHar1wiLFxuICAgIFwi2q/ZhNio2YhcIixcbiAgICBcItqv2YTYqNmH2KfYsVwiLFxuICAgIFwi2q/ZhNio24zYslwiLFxuICAgIFwi2q/ZhNm+2KfYsdmHXCIsXG4gICAgXCLar9mE2b7YsVwiLFxuICAgIFwi2q/ZhNm+2LHbjFwiLFxuICAgIFwi2q/ZhNm+2YjYtFwiLFxuICAgIFwi2q/ZhCDZvtmI2YbZh1wiLFxuICAgIFwi2q/ZhNqG24zZhlwiLFxuICAgIFwi2q/ZhNiv2K7YqlwiLFxuICAgIFwi2q/ZhNiv24zYs1wiLFxuICAgIFwi2q/ZhNix2KjYp1wiLFxuICAgIFwi2q/ZhNix2K5cIixcbiAgICBcItqv2YTYsdmG2q9cIixcbiAgICBcItqv2YTYsdmIXCIsXG4gICAgXCLar9mE2LTZhlwiLFxuICAgIFwi2q/ZhNix24zYslwiLFxuICAgIFwi2q/ZhNiy2KfYr1wiLFxuICAgIFwi2q/ZhNiy2KfYsVwiLFxuICAgIFwi2q/ZhNiz2KdcIixcbiAgICBcItqv2YTYtNuM2K9cIixcbiAgICBcItqv2YTZhtin2LFcIixcbiAgICBcItqv2YTZhtin2LJcIixcbiAgICBcItqv2YTZhtiz2KdcIixcbiAgICBcItqv2YTZhtmI2KfYslwiLFxuICAgIFwi2q/ZhNmG2YjYtFwiLFxuICAgIFwi2q/ZhNuMXCIsXG4gICAgXCLar9mI2K/YsdiyXCIsXG4gICAgXCLar9mI2YXYp9iq2YhcIixcbiAgICBcItqv2YfYsSDahtmH2LFcIixcbiAgICBcItqv2YjZh9ixINmG2KfYslwiLFxuICAgIFwi2q/bjNiq24xcIixcbiAgICBcItqv24zYs9mIXCIsXG4gICAgXCLar9uM2YTYr9inXCIsXG4gICAgXCLar9uM2YhcIixcbiAgICBcItmE2KfYr9mGXCIsXG4gICAgXCLZhNin2YTZh1wiLFxuICAgIFwi2YTYp9mE2Ycg2LHYrlwiLFxuICAgIFwi2YTYp9mE2Ycg2K/YrtiqXCIsXG4gICAgXCLZhNio2K7ZhtivXCIsXG4gICAgXCLZhNmC2KfYoVwiLFxuICAgIFwi2YTZiNmF2KfZhtinXCIsXG4gICAgXCLZhNmH2LHYp9iz2KhcIixcbiAgICBcItmF2KfYsdin2YRcIixcbiAgICBcItmF2KfYsduMXCIsXG4gICAgXCLZhdin2LLbjNin2LFcIixcbiAgICBcItmF2Kfaqdin2YZcIixcbiAgICBcItmF2KfZhdqpXCIsXG4gICAgXCLZhdin2YbYp1wiLFxuICAgIFwi2YXYp9mG2K/Yp9mG2KdcIixcbiAgICBcItmF2KfZhtmI2LRcIixcbiAgICBcItmF2KfZhtuMXCIsXG4gICAgXCLZhdin2YbbjNinXCIsXG4gICAgXCLZhdin2YfYp9mGXCIsXG4gICAgXCLZhdin2YfYp9mG2K/YrtiqXCIsXG4gICAgXCLZhdin2Ycg2KjYsdiy24zZhlwiLFxuICAgIFwi2YXYp9mHINis2YfYp9mGXCIsXG4gICAgXCLZhdin2YfahtmH2LFcIixcbiAgICBcItmF2KfZh9iv2K7YqlwiLFxuICAgIFwi2YXYp9mH2YjYsVwiLFxuICAgIFwi2YXYp9mH2LHYrlwiLFxuICAgIFwi2YXYp9mH2LLYp9ivXCIsXG4gICAgXCLZhdix2K/YotmI24zYslwiLFxuICAgIFwi2YXYsdiv2KfYs1wiLFxuICAgIFwi2YXYsdiy2KjYp9mGXCIsXG4gICAgXCLZhdix2YXYsVwiLFxuICAgIFwi2YXYstiv2qlcIixcbiAgICBcItmF2pjYr9mHXCIsXG4gICAgXCLZhdqY2q/Yp9mGXCIsXG4gICAgXCLZhdiz2KrYp9mGXCIsXG4gICAgXCLZhdiz2KrYp9mG2YdcIixcbiAgICBcItmF2LTaqdin2YbYr9iu2KpcIixcbiAgICBcItmF2LTaqdmG2KfYslwiLFxuICAgIFwi2YXYtNqp24zZhiDYr9iu2KpcIixcbiAgICBcItmF2YbbjNqY2YdcIixcbiAgICBcItmF2YbZiNqG2YfYsVwiLFxuICAgIFwi2YXZh9io2KfZhtmIXCIsXG4gICAgXCLZhdmH2KjYr1wiLFxuICAgIFwi2YXZhyDYr9in2K9cIixcbiAgICBcItmF2YfYqtin2KhcIixcbiAgICBcItmF2YfYr9uM2LNcIixcbiAgICBcItmF2Ycg2KzYqNuM2YZcIixcbiAgICBcItmF2Ycg2K/YrtiqXCIsXG4gICAgXCLZhdmH2LEg2KLYsNixXCIsXG4gICAgXCLZhdmH2LEg2KLYsdinXCIsXG4gICAgXCLZhdmH2LEg2KLYs9inXCIsXG4gICAgXCLZhdmH2LEg2KLZgdin2YJcIixcbiAgICBcItmF2YfYsSDYp9mB2LHbjNmGXCIsXG4gICAgXCLZhdmH2LHYotioXCIsXG4gICAgXCLZhdmH2LHYr9in2K9cIixcbiAgICBcItmF2YfYsSDYp9mB2LLZiNmGXCIsXG4gICAgXCLZhdmH2LHYp9mFXCIsXG4gICAgXCLZhdmH2LHYp9mGXCIsXG4gICAgXCLZhdmH2LHYp9mG2K/YrtiqXCIsXG4gICAgXCLZhdmH2LHYp9mG2K/bjNi0XCIsXG4gICAgXCLZhdmH2LHYp9mG2YHYsVwiLFxuICAgIFwi2YXZh9ix2KfZhtqv24zYslwiLFxuICAgIFwi2YXZh9ix2K/Yp9ivXCIsXG4gICAgXCLZhdmH2LEg2K/YrtiqXCIsXG4gICAgXCLZhdmH2LHYstin2K/ZhyDigIxcIixcbiAgICBcItmF2YfYsdmG2KfYslwiLFxuICAgIFwi2YXZh9ix2YbZiNi0XCIsXG4gICAgXCLZhdmH2LHZhtqp2KfYsVwiLFxuICAgIFwi2YXZh9ix2YbbjNinXCIsXG4gICAgXCLZhdmH2LHZiNiyXCIsXG4gICAgXCLZhdmH2LHbjFwiLFxuICAgIFwi2YXZh9ix24zYp9ixXCIsXG4gICAgXCLZhdmH2LPYp1wiLFxuICAgIFwi2YXZh9iz2KrbjFwiLFxuICAgIFwi2YXZhyDYs9uM2YXYp1wiLFxuICAgIFwi2YXZh9i02KfYr1wiLFxuICAgIFwi2YXZh9i024zYr1wiLFxuICAgIFwi2YXZh9mG2KfZhVwiLFxuICAgIFwi2YXZh9mG2KfYslwiLFxuICAgIFwi2YXZh9mG2YjYtFwiLFxuICAgIFwi2YXZh9mI2LRcIixcbiAgICBcItmF2YfbjNin2LFcIixcbiAgICBcItmF2YfbjNmGXCIsXG4gICAgXCLZhdmH24zZhiDYr9iu2KpcIixcbiAgICBcItmF24zYqtix2KdcIixcbiAgICBcItmF24zYrtqpXCIsXG4gICAgXCLZhduM2YbYp1wiLFxuICAgIFwi2YXbjNmG2Kcg2K/YrtiqXCIsXG4gICAgXCLZhduM2YbZiFwiLFxuICAgIFwi2YXbjNmG2YjYr9iu2KpcIixcbiAgICBcItmF24zZhtmIINmB2LFcIixcbiAgICBcItmG2KfYr9ixXCIsXG4gICAgXCLZhtin2LIg2KLZgdix24zZhlwiLFxuICAgIFwi2YbYp9iy2KjYp9mG2YhcIixcbiAgICBcItmG2KfYstm+2LHZiNixXCIsXG4gICAgXCLZhtin2LLahtmH2LFcIixcbiAgICBcItmG2KfYstmB2LFcIixcbiAgICBcItmG2KfYstmE24xcIixcbiAgICBcItmG2KfYstuMXCIsXG4gICAgXCLZhtin2LLbjNiv2K7YqlwiLFxuICAgIFwi2YbYp9mF2YjYsVwiLFxuICAgIFwi2YbYp9mH24zYr1wiLFxuICAgIFwi2YbYr9inXCIsXG4gICAgXCLZhtix2LPbjFwiLFxuICAgIFwi2YbYsdqv2LNcIixcbiAgICBcItmG2LHZhdqpXCIsXG4gICAgXCLZhtix2YXbjNmGXCIsXG4gICAgXCLZhtix24zZhdin2YZcIixcbiAgICBcItmG2LPYqtix2YZcIixcbiAgICBcItmG2LPYsduM2YZcIixcbiAgICBcItmG2LPYsduM2YYg2K/YrtiqXCIsXG4gICAgXCLZhtiz2LHbjNmGINmG2YjYtFwiLFxuICAgIFwi2YbaqduM2LPYp1wiLFxuICAgIFwi2Ybar9in2LFcIixcbiAgICBcItmG2q/Yp9ix2YdcIixcbiAgICBcItmG2q/Yp9ix24zZhlwiLFxuICAgIFwi2Ybar9uM2YZcIixcbiAgICBcItmG2YjYp1wiLFxuICAgIFwi2YbZiNi0XCIsXG4gICAgXCLZhtmI2LQg2KLYsNixXCIsXG4gICAgXCLZhtmI2LQg2KLZiNixXCIsXG4gICAgXCLZhtmI2LTYp1wiLFxuICAgIFwi2YbZiNi0INii2YHYsduM2YZcIixcbiAgICBcItmG2YjYtNiv2K7YqlwiLFxuICAgIFwi2YbZiNi02LHZiNin2YZcIixcbiAgICBcItmG2YjYtNmB2LFcIixcbiAgICBcItmG2YjYtNmG2KfYslwiLFxuICAgIFwi2YbZiNi024zZhlwiLFxuICAgIFwi2YbZiNuM2K9cIixcbiAgICBcItmG2YjbjNmGXCIsXG4gICAgXCLZhtmI24zZhiDYr9iu2KpcIixcbiAgICBcItmG24zYtCDYp1wiLFxuICAgIFwi2YbbjNqpINio24zZhlwiLFxuICAgIFwi2YbbjNqpINm+24xcIixcbiAgICBcItmG24zaqSDahtmH2LFcIixcbiAgICBcItmG24zaqSDYrtmI2KfZh1wiLFxuICAgIFwi2YbbjNqp2K/Yp9ivXCIsXG4gICAgXCLZhtuM2qnYr9iu2KpcIixcbiAgICBcItmG24zaqdiv2YRcIixcbiAgICBcItmG24zaqdiy2KfYr1wiLFxuICAgIFwi2YbbjNmE2YjZgdixXCIsXG4gICAgXCLZhtuM2YXYp1wiLFxuICAgIFwi2YjYp9mF2YJcIixcbiAgICBcItmI2LHYrNin2YjZhtivXCIsXG4gICAgXCLZiNix24zYp1wiLFxuICAgIFwi2YjYtNmF2q/bjNixXCIsXG4gICAgXCLZiNmH2LHYslwiLFxuICAgIFwi2YjZh9iz2YjYr9in2YZcIixcbiAgICBcItmI24zYr9inXCIsXG4gICAgXCLZiNuM2LNcIixcbiAgICBcItmI24zYtNiq2KfYs9ioXCIsXG4gICAgXCLZiNuM2q/ZhlwiLFxuICAgIFwi2YfamNuM2LFcIixcbiAgICBcItmH2K7Yp9mF2YbYtFwiLFxuICAgIFwi2YfYsdio2K8oINmH24zYsdio2K8gKVwiLFxuICAgIFwi2YfYsdmF2LJcIixcbiAgICBcItmH2YXYp9uM2YjZhlwiLFxuICAgIFwi2YfZhdinXCIsXG4gICAgXCLZh9mF2KfYr9iu2KpcIixcbiAgICBcItmH2YXYr9mFXCIsXG4gICAgXCLZh9mF2LHYp9iyXCIsXG4gICAgXCLZh9mF2LHYp9mHXCIsXG4gICAgXCLZh9mG2q/Yp9mF2YdcIixcbiAgICBcItmH2YjYqtmGXCIsXG4gICAgXCLZh9mI2LFcIixcbiAgICBcItmH2YjYsdiq2KfYtFwiLFxuICAgIFwi2YfZiNix2obZh9ixXCIsXG4gICAgXCLZh9mI2LHYr9in2K9cIixcbiAgICBcItmH2YjYsdiv2K7YqlwiLFxuICAgIFwi2YfZiNix2LLYp9ivXCIsXG4gICAgXCLZh9mI2LHZhdmG2K9cIixcbiAgICBcItmH2YjYsdmI2LRcIixcbiAgICBcItmH2YjYtNmG2q9cIixcbiAgICBcItmH2YjYtNuM2KfYsVwiLFxuICAgIFwi2YfZiNmF2KfZhlwiLFxuICAgIFwi2YfZiNmF2YZcIixcbiAgICBcItmH2YjZhtin2YVcIixcbiAgICBcItmH2YjbjNiv2KdcIixcbiAgICBcItmH24zYqtin2LPYqFwiLFxuICAgIFwi2YfbjNix2YXZhtivXCIsXG4gICAgXCLZh9uM2YXYp1wiLFxuICAgIFwi2YfbjNmI2KdcIixcbiAgICBcItuM2KfYr9qv2KfYsVwiLFxuICAgIFwi24zYp9iz2YXZhiAoINuM2KfYs9mF24zZhiApXCIsXG4gICAgXCLbjNin2LTYp9ixXCIsXG4gICAgXCLbjNin2YjYsVwiLFxuICAgIFwi24zYstiv2KfZhlwiLFxuICAgIFwi24zar9in2YbZh1wiLFxuICAgIFwi24zZiNi024zYqtinXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi2LnYp9ix2YFcIixcbiAgICBcIti52KfYtNmI2LHbjFwiLFxuICAgIFwi2LnYp9mE24xcIixcbiAgICBcIti52KjYp9iv24xcIixcbiAgICBcIti52KjYr9in2YTaqdix24zZhduMXCIsXG4gICAgXCLYudio2K/Yp9mE2YXZhNqp24xcIixcbiAgICBcIti52LHYp9mC24xcIixcbiAgICBcIti52LLbjNiy24xcIixcbiAgICBcIti52LXYp9ixXCIsXG4gICAgXCLYudmC24zZhNuMXCIsXG4gICAgXCLYudmE2YVcIixcbiAgICBcIti52YTZheKAjNin2YTZh9iv24xcIixcbiAgICBcIti52YTbjCDYudiz2q/YsduMXCIsXG4gICAgXCLYudmE24zigIzYotio2KfYr9uMXCIsXG4gICAgXCLYudmE24zYp1wiLFxuICAgIFwi2LnZhNuM4oCM2b7ZiNixXCIsXG4gICAgXCLYudmE24zigIzYstmF2KfZhtuMXCIsXG4gICAgXCLYudmG2KfbjNiqXCIsXG4gICAgXCLYuti22YbZgdix24xcIixcbiAgICBcIti62YbbjFwiLFxuICAgIFwi2YHYp9ix2LPbjFwiLFxuICAgIFwi2YHYp9i32YXbjFwiLFxuICAgIFwi2YHYp9mG24xcIixcbiAgICBcItmB2KrYp9it24xcIixcbiAgICBcItmB2LHYp9mF2LHYstuMXCIsXG4gICAgXCLZgdix2KxcIixcbiAgICBcItmB2LHYtNuM2K/ZiNix2K9cIixcbiAgICBcItmB2LHZhdin2YbZgdix2YXYp9im24zYp9mGXCIsXG4gICAgXCLZgdix2YjYqtmGXCIsXG4gICAgXCLZgdix2YfZhtqvXCIsXG4gICAgXCLZgdix24zYp9ivXCIsXG4gICAgXCLZgdmG2KfbjNuMXCIsXG4gICAgXCLZgdmG24zigIzYstin2K/Zh1wiLFxuICAgIFwi2YHZiNmE2KfYr9mI2YbYr1wiLFxuICAgIFwi2YHZh9mF24zYr9mHXCIsXG4gICAgXCLZgtin2LbbjFwiLFxuICAgIFwi2YLYp9mG2LnbjFwiLFxuICAgIFwi2YLYp9mG2YjZhtuMXCIsXG4gICAgXCLZgtmF24zYtNuMXCIsXG4gICAgXCLZgtmG2KjYsduMXCIsXG4gICAgXCLZgtmH2LHZhdin2YZcIixcbiAgICBcItmC2YfYsdmF2KfZhtuMXCIsXG4gICAgXCLZgtmH2LHZhdin2YbbjNin2YZcIixcbiAgICBcItmC2YfYs9iq2KfZhtuMXCIsXG4gICAgXCLaqdin2LTbjFwiLFxuICAgIFwi2qnYp9qp2KfZiNmG2K9cIixcbiAgICBcItqp2KfZhdqp2KfYsVwiLFxuICAgIFwi2qnYp9mF2YTbjFwiLFxuICAgIFwi2qnYp9mI24zYp9mG24xcIixcbiAgICBcItqp2K/bjNmI2LFcIixcbiAgICBcItqp2LHYr9io2obZh1wiLFxuICAgIFwi2qnYsdmF2KfZhtuMXCIsXG4gICAgXCLaqdix24zZhduMXCIsXG4gICAgXCLaqdmE2KjYp9iz24xcIixcbiAgICBcItqp2YXYp9mE24xcIixcbiAgICBcItqp2YjYtNqp24xcIixcbiAgICBcItqp2YfZhtmF2YjbjNuMXCIsXG4gICAgXCLaqduM2KfZhlwiLFxuICAgIFwi2qnbjNin2YbbjCAo2YbYp9mFINiu2KfZhtmI2KfYr9qv24wpXCIsXG4gICAgXCLaqduM2YXbjNin24zbjFwiLFxuICAgIFwi2q/ZhCDZhdit2YXYr9uMXCIsXG4gICAgXCLar9mE2b7Yp9uM2q/Yp9mG24xcIixcbiAgICBcItqv2YbYrNuMXCIsXG4gICAgXCLZhNin2KzZiNix2K/bjFwiLFxuICAgIFwi2YTYp9qG24zZhtuMXCIsXG4gICAgXCLZhNin2YfZiNiq24xcIixcbiAgICBcItmE2Ybaqdix2KfZhtuMXCIsXG4gICAgXCLZhNmI2qnYs1wiLFxuICAgIFwi2YXYrNin2YfYr1wiLFxuICAgIFwi2YXYrNiq2KjYp9uM24xcIixcbiAgICBcItmF2KzYqtio2YjbjFwiLFxuICAgIFwi2YXYrNiq2YfYryDYtNio2LPYqtix24xcIixcbiAgICBcItmF2KzYqtmH2K/bjFwiLFxuICAgIFwi2YXYrNix2K9cIixcbiAgICBcItmF2K3YrNmI2KhcIixcbiAgICBcItmF2K3YrNmI2KjbjFwiLFxuICAgIFwi2YXYrdiv2KvbjFwiLFxuICAgIFwi2YXYrdmF2K/Ysdi22KfbjNuMXCIsXG4gICAgXCLZhdit2YXYr9uMXCIsXG4gICAgXCLZhdiv2K/bjFwiLFxuICAgIFwi2YXYsdin2K/Yrtin2YbbjFwiLFxuICAgIFwi2YXYsdiq2LbZiNuMXCIsXG4gICAgXCLZhdiz2KrZiNmB24xcIixcbiAgICBcItmF2LTYp1wiLFxuICAgIFwi2YXYtdin2K3YqFwiLFxuICAgIFwi2YXYtdio2KfYrVwiLFxuICAgIFwi2YXYtdio2KfYreKAjNiy2KfYr9mHXCIsXG4gICAgXCLZhdi32YfYsduMXCIsXG4gICAgXCLZhdi42YHYsVwiLFxuICAgIFwi2YXYudin2LHZgVwiLFxuICAgIFwi2YXYudix2YjZgVwiLFxuICAgIFwi2YXYuduM2YZcIixcbiAgICBcItmF2YHYqtin2K1cIixcbiAgICBcItmF2YHYqtitXCIsXG4gICAgXCLZhdmC2K/ZhVwiLFxuICAgIFwi2YXZhNin24zYsduMXCIsXG4gICAgXCLZhdmE2qlcIixcbiAgICBcItmF2YTaqduM2KfZhlwiLFxuICAgIFwi2YXZhtmI2obZh9ix24xcIixcbiAgICBcItmF2YjYrdivXCIsXG4gICAgXCLZhdmI2LPZiNuMXCIsXG4gICAgXCLZhdmI2LPZiNuM2KfZhlwiLFxuICAgIFwi2YXZh9in2KzYsdin2YbbjFwiLFxuICAgIFwi2YXZh9iv24zigIzZvtmI2LFcIixcbiAgICBcItmF24zYsdio2KfZgtix24xcIixcbiAgICBcItmF24zYsdiv2KfZhdin2K/bjFwiLFxuICAgIFwi2YXbjNix2LLYp9iv2YdcIixcbiAgICBcItmF24zYsdiz2b7Yp9iz24xcIixcbiAgICBcItmF24zYstio2KfZhtuMXCIsXG4gICAgXCLZhtin2LjYsduMXCIsXG4gICAgXCLZhtin2YXZiNixXCIsXG4gICAgXCLZhtis2YHbjFwiLFxuICAgIFwi2YbYr9mI2LTZhlwiLFxuICAgIFwi2YbYsdin2YLbjFwiLFxuICAgIFwi2YbYudmF2KrigIzYstin2K/Zh1wiLFxuICAgIFwi2YbZgtiv24xcIixcbiAgICBcItmG2YLbjNio4oCM2LLYp9iv2YdcIixcbiAgICBcItmG2YjYp9ioXCIsXG4gICAgXCLZhtmI2KjYrtiqXCIsXG4gICAgXCLZhtmI2KjYrtiq24xcIixcbiAgICBcItmG2YfYp9mI2YbYr9uMXCIsXG4gICAgXCLZhtuM2LTYp9io2YjYsduMXCIsXG4gICAgXCLZhtuM2YTZiNmB2LHbjFwiLFxuICAgIFwi2YjYp9ir2YLbjFwiLFxuICAgIFwi2YjYp9i52LhcIixcbiAgICBcItmI2KfYudi44oCM2LLYp9iv2YdcIixcbiAgICBcItmI2KfYudi424xcIixcbiAgICBcItmI2qnbjNmE24xcIixcbiAgICBcItmH2KfYtNmF24xcIixcbiAgICBcItmH2KfYtNmF24wg2LHZgdiz2YbYrNin2YbbjFwiLFxuICAgIFwi2YfYp9i02YXbjNin2YZcIixcbiAgICBcItmH2KfZhdmI2YZcIixcbiAgICBcItmH2K/Yp9uM2KpcIixcbiAgICBcItmH2LHYp9iq24xcIixcbiAgICBcItmH2LHZiNuMXCIsXG4gICAgXCLZh9mF2KfbjNmI2YZcIixcbiAgICBcItmH2YXYqlwiLFxuICAgIFwi2YfZhdiv2KfZhtuMXCIsXG4gICAgXCLZh9mI2LTbjNin2LFcIixcbiAgICBcItmH2YjZhdmGXCIsXG4gICAgXCLbjNin2K3ZgtuMXCIsXG4gICAgXCLbjNin2K/ar9in2LFcIixcbiAgICBcItuM2KvYsdio24xcIixcbiAgICBcItuM2YTYr9inXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwi2KLZgtin24xcIixcbiAgICBcItiu2KfZhtmFXCIsXG4gICAgXCLYr9qp2KrYsVwiXG4gIF1cbn07XG4iLCJ2YXIgZnIgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBmcjtcbmZyLnRpdGxlID0gXCJGcmVuY2hcIjtcbmZyLmFkZHJlc3MgPSB7XG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiQWxsw6llLCBWb2llXCIsXG4gICAgXCJSdWVcIixcbiAgICBcIkF2ZW51ZVwiLFxuICAgIFwiQm91bGV2YXJkXCIsXG4gICAgXCJRdWFpXCIsXG4gICAgXCJQYXNzYWdlXCIsXG4gICAgXCJJbXBhc3NlXCIsXG4gICAgXCJQbGFjZVwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0LiAjIyNcIixcbiAgICBcIiMgw6l0YWdlXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiQWxzYWNlXCIsXG4gICAgXCJBcXVpdGFpbmVcIixcbiAgICBcIkF1dmVyZ25lXCIsXG4gICAgXCJCYXNzZS1Ob3JtYW5kaWVcIixcbiAgICBcIkJvdXJnb2duZVwiLFxuICAgIFwiQnJldGFnbmVcIixcbiAgICBcIkNlbnRyZVwiLFxuICAgIFwiQ2hhbXBhZ25lLUFyZGVubmVcIixcbiAgICBcIkNvcnNlXCIsXG4gICAgXCJGcmFuY2hlLUNvbXTDqVwiLFxuICAgIFwiSGF1dGUtTm9ybWFuZGllXCIsXG4gICAgXCLDjmxlLWRlLUZyYW5jZVwiLFxuICAgIFwiTGFuZ3VlZG9jLVJvdXNzaWxsb25cIixcbiAgICBcIkxpbW91c2luXCIsXG4gICAgXCJMb3JyYWluZVwiLFxuICAgIFwiTWlkaS1QeXLDqW7DqWVzXCIsXG4gICAgXCJOb3JkLVBhcy1kZS1DYWxhaXNcIixcbiAgICBcIlBheXMgZGUgbGEgTG9pcmVcIixcbiAgICBcIlBpY2FyZGllXCIsXG4gICAgXCJQb2l0b3UtQ2hhcmVudGVzXCIsXG4gICAgXCJQcm92ZW5jZS1BbHBlcy1Dw7R0ZSBkJ0F6dXJcIixcbiAgICBcIlJow7RuZS1BbHBlc1wiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIlBhcmlzXCIsXG4gICAgXCJNYXJzZWlsbGVcIixcbiAgICBcIkx5b25cIixcbiAgICBcIlRvdWxvdXNlXCIsXG4gICAgXCJOaWNlXCIsXG4gICAgXCJOYW50ZXNcIixcbiAgICBcIlN0cmFzYm91cmdcIixcbiAgICBcIk1vbnRwZWxsaWVyXCIsXG4gICAgXCJCb3JkZWF1eFwiLFxuICAgIFwiTGlsbGUxM1wiLFxuICAgIFwiUmVubmVzXCIsXG4gICAgXCJSZWltc1wiLFxuICAgIFwiTGUgSGF2cmVcIixcbiAgICBcIlNhaW50LcOJdGllbm5lXCIsXG4gICAgXCJUb3Vsb25cIixcbiAgICBcIkdyZW5vYmxlXCIsXG4gICAgXCJEaWpvblwiLFxuICAgIFwiQW5nZXJzXCIsXG4gICAgXCJTYWludC1EZW5pc1wiLFxuICAgIFwiVmlsbGV1cmJhbm5lXCIsXG4gICAgXCJMZSBNYW5zXCIsXG4gICAgXCJBaXgtZW4tUHJvdmVuY2VcIixcbiAgICBcIkJyZXN0XCIsXG4gICAgXCJOw65tZXNcIixcbiAgICBcIkxpbW9nZXNcIixcbiAgICBcIkNsZXJtb250LUZlcnJhbmRcIixcbiAgICBcIlRvdXJzXCIsXG4gICAgXCJBbWllbnNcIixcbiAgICBcIk1ldHpcIixcbiAgICBcIlBlcnBpZ25hblwiLFxuICAgIFwiQmVzYW7Dp29uXCIsXG4gICAgXCJPcmzDqWFuc1wiLFxuICAgIFwiQm91bG9nbmUtQmlsbGFuY291cnRcIixcbiAgICBcIk11bGhvdXNlXCIsXG4gICAgXCJSb3VlblwiLFxuICAgIFwiQ2FlblwiLFxuICAgIFwiTmFuY3lcIixcbiAgICBcIlNhaW50LURlbmlzXCIsXG4gICAgXCJTYWludC1QYXVsXCIsXG4gICAgXCJNb250cmV1aWxcIixcbiAgICBcIkFyZ2VudGV1aWxcIixcbiAgICBcIlJvdWJhaXhcIixcbiAgICBcIkR1bmtlcnF1ZTE0XCIsXG4gICAgXCJUb3VyY29pbmdcIixcbiAgICBcIk5hbnRlcnJlXCIsXG4gICAgXCJBdmlnbm9uXCIsXG4gICAgXCJDcsOpdGVpbFwiLFxuICAgIFwiUG9pdGllcnNcIixcbiAgICBcIkZvcnQtZGUtRnJhbmNlXCIsXG4gICAgXCJDb3VyYmV2b2llXCIsXG4gICAgXCJWZXJzYWlsbGVzXCIsXG4gICAgXCJWaXRyeS1zdXItU2VpbmVcIixcbiAgICBcIkNvbG9tYmVzXCIsXG4gICAgXCJQYXVcIixcbiAgICBcIkF1bG5heS1zb3VzLUJvaXNcIixcbiAgICBcIkFzbmnDqHJlcy1zdXItU2VpbmVcIixcbiAgICBcIlJ1ZWlsLU1hbG1haXNvblwiLFxuICAgIFwiU2FpbnQtUGllcnJlXCIsXG4gICAgXCJBbnRpYmVzXCIsXG4gICAgXCJTYWludC1NYXVyLWRlcy1Gb3Nzw6lzXCIsXG4gICAgXCJDaGFtcGlnbnktc3VyLU1hcm5lXCIsXG4gICAgXCJMYSBSb2NoZWxsZVwiLFxuICAgIFwiQXViZXJ2aWxsaWVyc1wiLFxuICAgIFwiQ2FsYWlzXCIsXG4gICAgXCJDYW5uZXNcIixcbiAgICBcIkxlIFRhbXBvblwiLFxuICAgIFwiQsOpemllcnNcIixcbiAgICBcIkNvbG1hclwiLFxuICAgIFwiQm91cmdlc1wiLFxuICAgIFwiRHJhbmN5XCIsXG4gICAgXCJNw6lyaWduYWNcIixcbiAgICBcIlNhaW50LU5hemFpcmVcIixcbiAgICBcIlZhbGVuY2VcIixcbiAgICBcIkFqYWNjaW9cIixcbiAgICBcIklzc3ktbGVzLU1vdWxpbmVhdXhcIixcbiAgICBcIlZpbGxlbmV1dmUtZCdBc2NxXCIsXG4gICAgXCJMZXZhbGxvaXMtUGVycmV0XCIsXG4gICAgXCJOb2lzeS1sZS1HcmFuZFwiLFxuICAgIFwiUXVpbXBlclwiLFxuICAgIFwiTGEgU2V5bmUtc3VyLU1lclwiLFxuICAgIFwiQW50b255XCIsXG4gICAgXCJUcm95ZXNcIixcbiAgICBcIk5ldWlsbHktc3VyLVNlaW5lXCIsXG4gICAgXCJTYXJjZWxsZXNcIixcbiAgICBcIkxlcyBBYnltZXNcIixcbiAgICBcIlbDqW5pc3NpZXV4XCIsXG4gICAgXCJDbGljaHlcIixcbiAgICBcIkxvcmllbnRcIixcbiAgICBcIlBlc3NhY1wiLFxuICAgIFwiSXZyeS1zdXItU2VpbmVcIixcbiAgICBcIkNlcmd5XCIsXG4gICAgXCJDYXllbm5lXCIsXG4gICAgXCJOaW9ydFwiLFxuICAgIFwiQ2hhbWLDqXJ5XCIsXG4gICAgXCJNb250YXViYW5cIixcbiAgICBcIlNhaW50LVF1ZW50aW5cIixcbiAgICBcIlZpbGxlanVpZlwiLFxuICAgIFwiSHnDqHJlc1wiLFxuICAgIFwiQmVhdXZhaXNcIixcbiAgICBcIkNob2xldFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwiZGUgbCdBYmJheWVcIixcbiAgICBcIkFkb2xwaGUgTWlsbGVcIixcbiAgICBcImQnQWzDqXNpYVwiLFxuICAgIFwiZCdBcmdlbnRldWlsXCIsXG4gICAgXCJkJ0Fzc2FzXCIsXG4gICAgXCJkdSBCYWNcIixcbiAgICBcImRlIFBhcmlzXCIsXG4gICAgXCJMYSBCb8OpdGllXCIsXG4gICAgXCJCb25hcGFydGVcIixcbiAgICBcImRlIGxhIELDu2NoZXJpZVwiLFxuICAgIFwiZGUgQ2F1bWFydGluXCIsXG4gICAgXCJDaGFybGVtYWduZVwiLFxuICAgIFwiZHUgQ2hhdC1xdWktUMOqY2hlXCIsXG4gICAgXCJkZSBsYSBDaGF1c3PDqWUtZCdBbnRpblwiLFxuICAgIFwiZHUgRGFob21leVwiLFxuICAgIFwiRGF1cGhpbmVcIixcbiAgICBcIkRlbGVzc2V1eFwiLFxuICAgIFwiZHUgRmF1Ym91cmcgU2FpbnQtSG9ub3LDqVwiLFxuICAgIFwiZHUgRmF1Ym91cmctU2FpbnQtRGVuaXNcIixcbiAgICBcImRlIGxhIEZlcnJvbm5lcmllXCIsXG4gICAgXCJkZXMgRnJhbmNzLUJvdXJnZW9pc1wiLFxuICAgIFwiZGVzIEdyYW5kcyBBdWd1c3RpbnNcIixcbiAgICBcImRlIGxhIEhhcnBlXCIsXG4gICAgXCJkdSBIYXZyZVwiLFxuICAgIFwiZGUgbGEgSHVjaGV0dGVcIixcbiAgICBcIkpvdWJlcnRcIixcbiAgICBcIkxhZmZpdHRlXCIsXG4gICAgXCJMZXBpY1wiLFxuICAgIFwiZGVzIExvbWJhcmRzXCIsXG4gICAgXCJNYXJjYWRldFwiLFxuICAgIFwiTW9sacOocmVcIixcbiAgICBcIk1vbnNpZXVyLWxlLVByaW5jZVwiLFxuICAgIFwiZGUgTW9udG1vcmVuY3lcIixcbiAgICBcIk1vbnRvcmd1ZWlsXCIsXG4gICAgXCJNb3VmZmV0YXJkXCIsXG4gICAgXCJkZSBOZXNsZVwiLFxuICAgIFwiT2JlcmthbXBmXCIsXG4gICAgXCJkZSBsJ09kw6lvblwiLFxuICAgIFwiZCdPcnNlbFwiLFxuICAgIFwiZGUgbGEgUGFpeFwiLFxuICAgIFwiZGVzIFBhbm9yYW1hc1wiLFxuICAgIFwiUGFzdG91cmVsbGVcIixcbiAgICBcIlBpZXJyZSBDaGFycm9uXCIsXG4gICAgXCJkZSBsYSBQb21wZVwiLFxuICAgIFwiZGUgUHJlc2JvdXJnXCIsXG4gICAgXCJkZSBQcm92ZW5jZVwiLFxuICAgIFwiZGUgUmljaGVsaWV1XCIsXG4gICAgXCJkZSBSaXZvbGlcIixcbiAgICBcImRlcyBSb3NpZXJzXCIsXG4gICAgXCJSb3lhbGVcIixcbiAgICBcImQnQWJiZXZpbGxlXCIsXG4gICAgXCJTYWludC1Ib25vcsOpXCIsXG4gICAgXCJTYWludC1CZXJuYXJkXCIsXG4gICAgXCJTYWludC1EZW5pc1wiLFxuICAgIFwiU2FpbnQtRG9taW5pcXVlXCIsXG4gICAgXCJTYWludC1KYWNxdWVzXCIsXG4gICAgXCJTYWludC1Tw6l2ZXJpblwiLFxuICAgIFwiZGVzIFNhdXNzYWllc1wiLFxuICAgIFwiZGUgU2VpbmVcIixcbiAgICBcImRlIFNvbGbDqXJpbm9cIixcbiAgICBcIkR1IFNvbW1lcmFyZFwiLFxuICAgIFwiZGUgVGlsc2l0dFwiLFxuICAgIFwiVmFuZWF1XCIsXG4gICAgXCJkZSBWYXVnaXJhcmRcIixcbiAgICBcImRlIGxhIFZpY3RvaXJlXCIsXG4gICAgXCJaYWRraW5lXCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9wcmVmaXh9ICN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7YnVpbGRpbmdfbnVtYmVyfSAje3N0cmVldF9uYW1lfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkZyYW5jZVwiXG4gIF1cbn07XG5mci5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJTQVJMXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiRVVSTFwiLFxuICAgIFwiU0FTXCIsXG4gICAgXCJTRU1cIixcbiAgICBcIlNDT1BcIixcbiAgICBcIkdJRVwiLFxuICAgIFwiRUlcIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOlxuICAgIFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjpcbiAgICBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6XG4gICAgW1xuICAgICAgXCJjbGlja3MtYW5kLW1vcnRhclwiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ2ZXJ0aWNhbFwiLFxuICAgICAgXCJwcm9hY3RpdmVcIixcbiAgICAgIFwicm9idXN0XCIsXG4gICAgICBcInJldm9sdXRpb25hcnlcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwibGVhZGluZy1lZGdlXCIsXG4gICAgICBcImlubm92YXRpdmVcIixcbiAgICAgIFwiaW50dWl0aXZlXCIsXG4gICAgICBcInN0cmF0ZWdpY1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwic3RpY2t5XCIsXG4gICAgICBcIm9uZS10by1vbmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJlbmQtdG8tZW5kXCIsXG4gICAgICBcImdsb2JhbFwiLFxuICAgICAgXCJCMkJcIixcbiAgICAgIFwiQjJDXCIsXG4gICAgICBcImdyYW51bGFyXCIsXG4gICAgICBcImZyaWN0aW9ubGVzc1wiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZpcmFsXCIsXG4gICAgICBcImR5bmFtaWNcIixcbiAgICAgIFwiMjQvMzY1XCIsXG4gICAgICBcImJlc3Qtb2YtYnJlZWRcIixcbiAgICAgIFwia2lsbGVyXCIsXG4gICAgICBcIm1hZ25ldGljXCIsXG4gICAgICBcImJsZWVkaW5nLWVkZ2VcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiZG90LWNvbVwiLFxuICAgICAgXCJzZXh5XCIsXG4gICAgICBcImJhY2stZW5kXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJlZmZpY2llbnRcIixcbiAgICAgIFwiZnJvbnQtZW5kXCIsXG4gICAgICBcImRpc3RyaWJ1dGVkXCIsXG4gICAgICBcInNlYW1sZXNzXCIsXG4gICAgICBcImV4dGVuc2libGVcIixcbiAgICAgIFwidHVybi1rZXlcIixcbiAgICAgIFwid29ybGQtY2xhc3NcIixcbiAgICAgIFwib3Blbi1zb3VyY2VcIixcbiAgICAgIFwiY3Jvc3MtcGxhdGZvcm1cIixcbiAgICAgIFwiY3Jvc3MtbWVkaWFcIixcbiAgICAgIFwic3luZXJnaXN0aWNcIixcbiAgICAgIFwiYnJpY2tzLWFuZC1jbGlja3NcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVkXCIsXG4gICAgICBcImltcGFjdGZ1bFwiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInVzZXItY2VudHJpY1wiLFxuICAgICAgXCJ2aXNpb25hcnlcIixcbiAgICAgIFwiY3VzdG9taXplZFwiLFxuICAgICAgXCJ1YmlxdWl0b3VzXCIsXG4gICAgICBcInBsdWctYW5kLXBsYXlcIixcbiAgICAgIFwiY29sbGFib3JhdGl2ZVwiLFxuICAgICAgXCJjb21wZWxsaW5nXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcInJpY2hcIlxuICAgIF0sXG4gICAgXCJic19ub3VuXCI6IFtcbiAgICAgIFwic3luZXJnaWVzXCIsXG4gICAgICBcIndlYi1yZWFkaW5lc3NcIixcbiAgICAgIFwicGFyYWRpZ21zXCIsXG4gICAgICBcIm1hcmtldHNcIixcbiAgICAgIFwicGFydG5lcnNoaXBzXCIsXG4gICAgICBcImluZnJhc3RydWN0dXJlc1wiLFxuICAgICAgXCJwbGF0Zm9ybXNcIixcbiAgICAgIFwiaW5pdGlhdGl2ZXNcIixcbiAgICAgIFwiY2hhbm5lbHNcIixcbiAgICAgIFwiZXllYmFsbHNcIixcbiAgICAgIFwiY29tbXVuaXRpZXNcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV0aW9uc1wiLFxuICAgICAgXCJlLXRhaWxlcnNcIixcbiAgICAgIFwiZS1zZXJ2aWNlc1wiLFxuICAgICAgXCJhY3Rpb24taXRlbXNcIixcbiAgICAgIFwicG9ydGFsc1wiLFxuICAgICAgXCJuaWNoZXNcIixcbiAgICAgIFwidGVjaG5vbG9naWVzXCIsXG4gICAgICBcImNvbnRlbnRcIixcbiAgICAgIFwidm9ydGFsc1wiLFxuICAgICAgXCJzdXBwbHktY2hhaW5zXCIsXG4gICAgICBcImNvbnZlcmdlbmNlXCIsXG4gICAgICBcInJlbGF0aW9uc2hpcHNcIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlc1wiLFxuICAgICAgXCJpbnRlcmZhY2VzXCIsXG4gICAgICBcImUtbWFya2V0c1wiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInN5c3RlbXNcIixcbiAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICBcImluZm9tZWRpYXJpZXNcIixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm1pbmRzaGFyZVwiLFxuICAgICAgXCJkZWxpdmVyYWJsZXNcIixcbiAgICAgIFwidXNlcnNcIixcbiAgICAgIFwic2NoZW1hc1wiLFxuICAgICAgXCJuZXR3b3Jrc1wiLFxuICAgICAgXCJhcHBsaWNhdGlvbnNcIixcbiAgICAgIFwibWV0cmljc1wiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcImZ1bmN0aW9uYWxpdGllc1wiLFxuICAgICAgXCJleHBlcmllbmNlc1wiLFxuICAgICAgXCJ3ZWIgc2VydmljZXNcIixcbiAgICAgIFwibWV0aG9kb2xvZ2llc1wiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9IGV0ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbmZyLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5mclwiLFxuICAgIFwiaG90bWFpbC5mclwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImZyXCIsXG4gICAgXCJldVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmFtZVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xuZnIubG9yZW0gPSB7XG4gIFwid29yZHNcIjogW1xuICAgIFwiYWxpYXNcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcInBlcmZlcmVuZGlzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcImFjY3VzYW50aXVtXCIsXG4gICAgXCJkb2xvcmVtcXVlXCIsXG4gICAgXCJhcGVyaWFtXCIsXG4gICAgXCJlYXF1ZVwiLFxuICAgIFwiaXBzYVwiLFxuICAgIFwicXVhZVwiLFxuICAgIFwiYWJcIixcbiAgICBcImlsbG9cIixcbiAgICBcImludmVudG9yZVwiLFxuICAgIFwidmVyaXRhdGlzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc2lcIixcbiAgICBcImFyY2hpdGVjdG9cIixcbiAgICBcImJlYXRhZVwiLFxuICAgIFwidml0YWVcIixcbiAgICBcImRpY3RhXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJleHBsaWNhYm9cIixcbiAgICBcImFzcGVybmF0dXJcIixcbiAgICBcImF1dFwiLFxuICAgIFwib2RpdFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJmdWdpdFwiLFxuICAgIFwic2VkXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJjb25zZXF1dW50dXJcIixcbiAgICBcIm1hZ25pXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJlb3NcIixcbiAgICBcInF1aVwiLFxuICAgIFwicmF0aW9uZVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwic2VxdWlcIixcbiAgICBcIm5lc2NpdW50XCIsXG4gICAgXCJuZXF1ZVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiaXBzdW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJzaXRcIixcbiAgICBcImFtZXRcIixcbiAgICBcImNvbnNlY3RldHVyXCIsXG4gICAgXCJhZGlwaXNjaVwiLFxuICAgIFwidmVsaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJudW1xdWFtXCIsXG4gICAgXCJlaXVzXCIsXG4gICAgXCJtb2RpXCIsXG4gICAgXCJ0ZW1wb3JhXCIsXG4gICAgXCJpbmNpZHVudFwiLFxuICAgIFwidXRcIixcbiAgICBcImxhYm9yZVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9yZVwiLFxuICAgIFwibWFnbmFtXCIsXG4gICAgXCJhbGlxdWFtXCIsXG4gICAgXCJxdWFlcmF0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiYWRcIixcbiAgICBcIm1pbmltYVwiLFxuICAgIFwidmVuaWFtXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJub3N0cnVtXCIsXG4gICAgXCJleGVyY2l0YXRpb25lbVwiLFxuICAgIFwidWxsYW1cIixcbiAgICBcImNvcnBvcmlzXCIsXG4gICAgXCJuZW1vXCIsXG4gICAgXCJlbmltXCIsXG4gICAgXCJpcHNhbVwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcInNpdFwiLFxuICAgIFwic3VzY2lwaXRcIixcbiAgICBcImxhYm9yaW9zYW1cIixcbiAgICBcIm5pc2lcIixcbiAgICBcInV0XCIsXG4gICAgXCJhbGlxdWlkXCIsXG4gICAgXCJleFwiLFxuICAgIFwiZWFcIixcbiAgICBcImNvbW1vZGlcIixcbiAgICBcImNvbnNlcXVhdHVyXCIsXG4gICAgXCJxdWlzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJldW1cIixcbiAgICBcIml1cmVcIixcbiAgICBcInJlcHJlaGVuZGVyaXRcIixcbiAgICBcInF1aVwiLFxuICAgIFwiaW5cIixcbiAgICBcImVhXCIsXG4gICAgXCJ2b2x1cHRhdGVcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJlc3NlXCIsXG4gICAgXCJxdWFtXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaXVzdG9cIixcbiAgICBcIm9kaW9cIixcbiAgICBcImRpZ25pc3NpbW9zXCIsXG4gICAgXCJkdWNpbXVzXCIsXG4gICAgXCJxdWlcIixcbiAgICBcImJsYW5kaXRpaXNcIixcbiAgICBcInByYWVzZW50aXVtXCIsXG4gICAgXCJsYXVkYW50aXVtXCIsXG4gICAgXCJ0b3RhbVwiLFxuICAgIFwicmVtXCIsXG4gICAgXCJ2b2x1cHRhdHVtXCIsXG4gICAgXCJkZWxlbml0aVwiLFxuICAgIFwiYXRxdWVcIixcbiAgICBcImNvcnJ1cHRpXCIsXG4gICAgXCJxdW9zXCIsXG4gICAgXCJkb2xvcmVzXCIsXG4gICAgXCJldFwiLFxuICAgIFwicXVhc1wiLFxuICAgIFwibW9sZXN0aWFzXCIsXG4gICAgXCJleGNlcHR1cmlcIixcbiAgICBcInNpbnRcIixcbiAgICBcIm9jY2FlY2F0aVwiLFxuICAgIFwiY3VwaWRpdGF0ZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJwcm92aWRlbnRcIixcbiAgICBcInNlZFwiLFxuICAgIFwidXRcIixcbiAgICBcInBlcnNwaWNpYXRpc1wiLFxuICAgIFwidW5kZVwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImlzdGVcIixcbiAgICBcIm5hdHVzXCIsXG4gICAgXCJlcnJvclwiLFxuICAgIFwic2ltaWxpcXVlXCIsXG4gICAgXCJzdW50XCIsXG4gICAgXCJpblwiLFxuICAgIFwiY3VscGFcIixcbiAgICBcInF1aVwiLFxuICAgIFwib2ZmaWNpYVwiLFxuICAgIFwiZGVzZXJ1bnRcIixcbiAgICBcIm1vbGxpdGlhXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiaWRcIixcbiAgICBcImVzdFwiLFxuICAgIFwibGFib3J1bVwiLFxuICAgIFwiZXRcIixcbiAgICBcImRvbG9ydW1cIixcbiAgICBcImZ1Z2FcIixcbiAgICBcImV0XCIsXG4gICAgXCJoYXJ1bVwiLFxuICAgIFwicXVpZGVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiZmFjaWxpc1wiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJldFwiLFxuICAgIFwiZXhwZWRpdGFcIixcbiAgICBcImRpc3RpbmN0aW9cIixcbiAgICBcIm5hbVwiLFxuICAgIFwibGliZXJvXCIsXG4gICAgXCJ0ZW1wb3JlXCIsXG4gICAgXCJjdW1cIixcbiAgICBcInNvbHV0YVwiLFxuICAgIFwibm9iaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZWxpZ2VuZGlcIixcbiAgICBcIm9wdGlvXCIsXG4gICAgXCJjdW1xdWVcIixcbiAgICBcIm5paGlsXCIsXG4gICAgXCJpbXBlZGl0XCIsXG4gICAgXCJxdW9cIixcbiAgICBcInBvcnJvXCIsXG4gICAgXCJxdWlzcXVhbVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm1pbnVzXCIsXG4gICAgXCJpZFwiLFxuICAgIFwicXVvZFwiLFxuICAgIFwibWF4aW1lXCIsXG4gICAgXCJwbGFjZWF0XCIsXG4gICAgXCJmYWNlcmVcIixcbiAgICBcInBvc3NpbXVzXCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcImFzc3VtZW5kYVwiLFxuICAgIFwiZXN0XCIsXG4gICAgXCJvbW5pc1wiLFxuICAgIFwiZG9sb3JcIixcbiAgICBcInJlcGVsbGVuZHVzXCIsXG4gICAgXCJ0ZW1wb3JpYnVzXCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwicXVpYnVzZGFtXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwidmVsXCIsXG4gICAgXCJpbGx1bVwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJkb2xvcmVtXCIsXG4gICAgXCJldW1cIixcbiAgICBcImZ1Z2lhdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJ2b2x1cHRhc1wiLFxuICAgIFwibnVsbGFcIixcbiAgICBcInBhcmlhdHVyXCIsXG4gICAgXCJhdFwiLFxuICAgIFwidmVyb1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJldFwiLFxuICAgIFwiYWNjdXNhbXVzXCIsXG4gICAgXCJvZmZpY2lpc1wiLFxuICAgIFwiZGViaXRpc1wiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwibmVjZXNzaXRhdGlidXNcIixcbiAgICBcInNhZXBlXCIsXG4gICAgXCJldmVuaWV0XCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiZXRcIixcbiAgICBcInZvbHVwdGF0ZXNcIixcbiAgICBcInJlcHVkaWFuZGFlXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJldFwiLFxuICAgIFwibW9sZXN0aWFlXCIsXG4gICAgXCJub25cIixcbiAgICBcInJlY3VzYW5kYWVcIixcbiAgICBcIml0YXF1ZVwiLFxuICAgIFwiZWFydW1cIixcbiAgICBcInJlcnVtXCIsXG4gICAgXCJoaWNcIixcbiAgICBcInRlbmV0dXJcIixcbiAgICBcImFcIixcbiAgICBcInNhcGllbnRlXCIsXG4gICAgXCJkZWxlY3R1c1wiLFxuICAgIFwidXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVpY2llbmRpc1wiLFxuICAgIFwidm9sdXB0YXRpYnVzXCIsXG4gICAgXCJtYWlvcmVzXCIsXG4gICAgXCJkb2xvcmlidXNcIixcbiAgICBcImFzcGVyaW9yZXNcIixcbiAgICBcInJlcGVsbGF0XCJcbiAgXSxcbiAgXCJzdXBwbGVtZW50YWxcIjogW1xuICAgIFwiYWJiYXNcIixcbiAgICBcImFiZHVjb1wiLFxuICAgIFwiYWJlb1wiLFxuICAgIFwiYWJzY2lkb1wiLFxuICAgIFwiYWJzY29uZGl0dXNcIixcbiAgICBcImFic2Vuc1wiLFxuICAgIFwiYWJzb3JiZW9cIixcbiAgICBcImFic3F1ZVwiLFxuICAgIFwiYWJzdGVyZ29cIixcbiAgICBcImFic3VtXCIsXG4gICAgXCJhYnVuZGFuc1wiLFxuICAgIFwiYWJ1dG9yXCIsXG4gICAgXCJhY2NlZG9cIixcbiAgICBcImFjY2VuZG9cIixcbiAgICBcImFjY2VwdHVzXCIsXG4gICAgXCJhY2NpcGlvXCIsXG4gICAgXCJhY2NvbW1vZG9cIixcbiAgICBcImFjY3VzYXRvclwiLFxuICAgIFwiYWNlclwiLFxuICAgIFwiYWNlcmJpdGFzXCIsXG4gICAgXCJhY2VydnVzXCIsXG4gICAgXCJhY2lkdXNcIixcbiAgICBcImFjaWVzXCIsXG4gICAgXCJhY3F1aXJvXCIsXG4gICAgXCJhY3NpXCIsXG4gICAgXCJhZGFtb1wiLFxuICAgIFwiYWRhdWdlb1wiLFxuICAgIFwiYWRkb1wiLFxuICAgIFwiYWRkdWNvXCIsXG4gICAgXCJhZGVtcHRpb1wiLFxuICAgIFwiYWRlb1wiLFxuICAgIFwiYWRlcHRpb1wiLFxuICAgIFwiYWRmZWN0dXNcIixcbiAgICBcImFkZmVyb1wiLFxuICAgIFwiYWRmaWNpb1wiLFxuICAgIFwiYWRmbGljdG9cIixcbiAgICBcImFkaGFlcm9cIixcbiAgICBcImFkaHVjXCIsXG4gICAgXCJhZGljaW9cIixcbiAgICBcImFkaW1wbGVvXCIsXG4gICAgXCJhZGludmVudGl0aWFzXCIsXG4gICAgXCJhZGlwaXNjb3JcIixcbiAgICBcImFkaXV2b1wiLFxuICAgIFwiYWRtaW5pc3RyYXRpb1wiLFxuICAgIFwiYWRtaXJhdGlvXCIsXG4gICAgXCJhZG1pdHRvXCIsXG4gICAgXCJhZG1vbmVvXCIsXG4gICAgXCJhZG1vdmVvXCIsXG4gICAgXCJhZG51b1wiLFxuICAgIFwiYWRvcHRvXCIsXG4gICAgXCJhZHNpZHVlXCIsXG4gICAgXCJhZHN0cmluZ29cIixcbiAgICBcImFkc3Vlc2NvXCIsXG4gICAgXCJhZHN1bVwiLFxuICAgIFwiYWR1bGF0aW9cIixcbiAgICBcImFkdWxlc2NlbnNcIixcbiAgICBcImFkdWx0dXNcIixcbiAgICBcImFkdXJvXCIsXG4gICAgXCJhZHZlbmlvXCIsXG4gICAgXCJhZHZlcnN1c1wiLFxuICAgIFwiYWR2b2NvXCIsXG4gICAgXCJhZWRpZmljaXVtXCIsXG4gICAgXCJhZWdlclwiLFxuICAgIFwiYWVncmVcIixcbiAgICBcImFlZ3JvdGF0aW9cIixcbiAgICBcImFlZ3J1c1wiLFxuICAgIFwiYWVuZXVzXCIsXG4gICAgXCJhZXF1aXRhc1wiLFxuICAgIFwiYWVxdXVzXCIsXG4gICAgXCJhZXJcIixcbiAgICBcImFlc3Rhc1wiLFxuICAgIFwiYWVzdGl2dXNcIixcbiAgICBcImFlc3R1c1wiLFxuICAgIFwiYWV0YXNcIixcbiAgICBcImFldGVybnVzXCIsXG4gICAgXCJhZ2VyXCIsXG4gICAgXCJhZ2dlcm9cIixcbiAgICBcImFnZ3JlZGlvclwiLFxuICAgIFwiYWduaXRpb1wiLFxuICAgIFwiYWdub3Njb1wiLFxuICAgIFwiYWdvXCIsXG4gICAgXCJhaXRcIixcbiAgICBcImFpdW50XCIsXG4gICAgXCJhbGllbnVzXCIsXG4gICAgXCJhbGlpXCIsXG4gICAgXCJhbGlvcXVpXCIsXG4gICAgXCJhbGlxdWFcIixcbiAgICBcImFsaXVzXCIsXG4gICAgXCJhbGxhdHVzXCIsXG4gICAgXCJhbG9cIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhbHR1c1wiLFxuICAgIFwiYWx2ZXVzXCIsXG4gICAgXCJhbWFyaXR1ZG9cIixcbiAgICBcImFtYml0dXNcIixcbiAgICBcImFtYnVsb1wiLFxuICAgIFwiYW1pY2l0aWFcIixcbiAgICBcImFtaWN1bHVtXCIsXG4gICAgXCJhbWlzc2lvXCIsXG4gICAgXCJhbWl0YVwiLFxuICAgIFwiYW1pdHRvXCIsXG4gICAgXCJhbW9cIixcbiAgICBcImFtb3JcIixcbiAgICBcImFtb3Zlb1wiLFxuICAgIFwiYW1wbGV4dXNcIixcbiAgICBcImFtcGxpdHVkb1wiLFxuICAgIFwiYW1wbHVzXCIsXG4gICAgXCJhbmNpbGxhXCIsXG4gICAgXCJhbmdlbHVzXCIsXG4gICAgXCJhbmd1bHVzXCIsXG4gICAgXCJhbmd1c3R1c1wiLFxuICAgIFwiYW5pbWFkdmVydG9cIixcbiAgICBcImFuaW1pXCIsXG4gICAgXCJhbmltdXNcIixcbiAgICBcImFubnVzXCIsXG4gICAgXCJhbnNlclwiLFxuICAgIFwiYW50ZVwiLFxuICAgIFwiYW50ZWFcIixcbiAgICBcImFudGVwb25vXCIsXG4gICAgXCJhbnRpcXV1c1wiLFxuICAgIFwiYXBlcmlvXCIsXG4gICAgXCJhcGVydGVcIixcbiAgICBcImFwb3N0b2x1c1wiLFxuICAgIFwiYXBwYXJhdHVzXCIsXG4gICAgXCJhcHBlbGxvXCIsXG4gICAgXCJhcHBvbm9cIixcbiAgICBcImFwcG9zaXR1c1wiLFxuICAgIFwiYXBwcm9ib1wiLFxuICAgIFwiYXB0b1wiLFxuICAgIFwiYXB0dXNcIixcbiAgICBcImFwdWRcIixcbiAgICBcImFxdWFcIixcbiAgICBcImFyYVwiLFxuICAgIFwiYXJhbmVhXCIsXG4gICAgXCJhcmJpdHJvXCIsXG4gICAgXCJhcmJvclwiLFxuICAgIFwiYXJidXN0dW1cIixcbiAgICBcImFyY2FcIixcbiAgICBcImFyY2VvXCIsXG4gICAgXCJhcmNlc3NvXCIsXG4gICAgXCJhcmN1c1wiLFxuICAgIFwiYXJnZW50dW1cIixcbiAgICBcImFyZ3VtZW50dW1cIixcbiAgICBcImFyZ3VvXCIsXG4gICAgXCJhcm1hXCIsXG4gICAgXCJhcm1hcml1bVwiLFxuICAgIFwiYXJtb1wiLFxuICAgIFwiYXJvXCIsXG4gICAgXCJhcnNcIixcbiAgICBcImFydGljdWx1c1wiLFxuICAgIFwiYXJ0aWZpY2lvc2VcIixcbiAgICBcImFydG9cIixcbiAgICBcImFyeFwiLFxuICAgIFwiYXNjaXNjb1wiLFxuICAgIFwiYXNjaXRcIixcbiAgICBcImFzcGVyXCIsXG4gICAgXCJhc3BpY2lvXCIsXG4gICAgXCJhc3BvcnRvXCIsXG4gICAgXCJhc3NlbnRhdG9yXCIsXG4gICAgXCJhc3RydW1cIixcbiAgICBcImF0YXZ1c1wiLFxuICAgIFwiYXRlclwiLFxuICAgIFwiYXRxdWlcIixcbiAgICBcImF0cm9jaXRhc1wiLFxuICAgIFwiYXRyb3hcIixcbiAgICBcImF0dGVyb1wiLFxuICAgIFwiYXR0b2xsb1wiLFxuICAgIFwiYXR0b25iaXR1c1wiLFxuICAgIFwiYXVjdG9yXCIsXG4gICAgXCJhdWN0dXNcIixcbiAgICBcImF1ZGFjaWFcIixcbiAgICBcImF1ZGF4XCIsXG4gICAgXCJhdWRlbnRpYVwiLFxuICAgIFwiYXVkZW9cIixcbiAgICBcImF1ZGlvXCIsXG4gICAgXCJhdWRpdG9yXCIsXG4gICAgXCJhdWZlcm9cIixcbiAgICBcImF1cmV1c1wiLFxuICAgIFwiYXVyaXNcIixcbiAgICBcImF1cnVtXCIsXG4gICAgXCJhdXRcIixcbiAgICBcImF1dGVtXCIsXG4gICAgXCJhdXR1c1wiLFxuICAgIFwiYXV4aWxpdW1cIixcbiAgICBcImF2YXJpdGlhXCIsXG4gICAgXCJhdmFydXNcIixcbiAgICBcImF2ZWhvXCIsXG4gICAgXCJhdmVydG9cIixcbiAgICBcImF2b2NvXCIsXG4gICAgXCJiYWl1bHVzXCIsXG4gICAgXCJiYWxidXNcIixcbiAgICBcImJhcmJhXCIsXG4gICAgXCJiYXJkdXNcIixcbiAgICBcImJhc2l1bVwiLFxuICAgIFwiYmVhdHVzXCIsXG4gICAgXCJiZWxsaWN1c1wiLFxuICAgIFwiYmVsbHVtXCIsXG4gICAgXCJiZW5lXCIsXG4gICAgXCJiZW5lZmljaXVtXCIsXG4gICAgXCJiZW5ldm9sZW50aWFcIixcbiAgICBcImJlbmlnbmVcIixcbiAgICBcImJlc3RpYVwiLFxuICAgIFwiYmlib1wiLFxuICAgIFwiYmlzXCIsXG4gICAgXCJibGFuZGlvclwiLFxuICAgIFwiYm9udXNcIixcbiAgICBcImJvc1wiLFxuICAgIFwiYnJldmlzXCIsXG4gICAgXCJjYWRvXCIsXG4gICAgXCJjYWVjdXNcIixcbiAgICBcImNhZWxlc3Rpc1wiLFxuICAgIFwiY2FlbHVtXCIsXG4gICAgXCJjYWxhbWl0YXNcIixcbiAgICBcImNhbGNhclwiLFxuICAgIFwiY2FsY29cIixcbiAgICBcImNhbGN1bHVzXCIsXG4gICAgXCJjYWxsaWRlXCIsXG4gICAgXCJjYW1wYW5hXCIsXG4gICAgXCJjYW5kaWR1c1wiLFxuICAgIFwiY2FuaXNcIixcbiAgICBcImNhbm9uaWN1c1wiLFxuICAgIFwiY2FudG9cIixcbiAgICBcImNhcGlsbHVzXCIsXG4gICAgXCJjYXBpb1wiLFxuICAgIFwiY2FwaXR1bHVzXCIsXG4gICAgXCJjYXB0b1wiLFxuICAgIFwiY2FwdXRcIixcbiAgICBcImNhcmJvXCIsXG4gICAgXCJjYXJjZXJcIixcbiAgICBcImNhcmVvXCIsXG4gICAgXCJjYXJpZXNcIixcbiAgICBcImNhcmlvc3VzXCIsXG4gICAgXCJjYXJpdGFzXCIsXG4gICAgXCJjYXJtZW5cIixcbiAgICBcImNhcnBvXCIsXG4gICAgXCJjYXJ1c1wiLFxuICAgIFwiY2Fzc29cIixcbiAgICBcImNhc3RlXCIsXG4gICAgXCJjYXN1c1wiLFxuICAgIFwiY2F0ZW5hXCIsXG4gICAgXCJjYXRlcnZhXCIsXG4gICAgXCJjYXR0dXNcIixcbiAgICBcImNhdWRhXCIsXG4gICAgXCJjYXVzYVwiLFxuICAgIFwiY2F1dGVcIixcbiAgICBcImNhdmVvXCIsXG4gICAgXCJjYXZ1c1wiLFxuICAgIFwiY2Vkb1wiLFxuICAgIFwiY2VsZWJyZXJcIixcbiAgICBcImNlbGVyXCIsXG4gICAgXCJjZWxvXCIsXG4gICAgXCJjZW5hXCIsXG4gICAgXCJjZW5hY3VsdW1cIixcbiAgICBcImNlbm9cIixcbiAgICBcImNlbnN1cmFcIixcbiAgICBcImNlbnR1bVwiLFxuICAgIFwiY2Vybm9cIixcbiAgICBcImNlcm51dXNcIixcbiAgICBcImNlcnRlXCIsXG4gICAgXCJjZXJ0b1wiLFxuICAgIFwiY2VydHVzXCIsXG4gICAgXCJjZXJ2dXNcIixcbiAgICBcImNldGVyYVwiLFxuICAgIFwiY2hhcmlzbWFcIixcbiAgICBcImNoaXJvZ3JhcGh1bVwiLFxuICAgIFwiY2lib1wiLFxuICAgIFwiY2lidXNcIixcbiAgICBcImNpY3V0YVwiLFxuICAgIFwiY2lsaWNpdW1cIixcbiAgICBcImNpbWVudGFyaXVzXCIsXG4gICAgXCJjaW1pbmF0aW9cIixcbiAgICBcImNpbmlzXCIsXG4gICAgXCJjaXJjdW12ZW5pb1wiLFxuICAgIFwiY2l0b1wiLFxuICAgIFwiY2l2aXNcIixcbiAgICBcImNpdml0YXNcIixcbiAgICBcImNsYW1cIixcbiAgICBcImNsYW1vXCIsXG4gICAgXCJjbGFyb1wiLFxuICAgIFwiY2xhcnVzXCIsXG4gICAgXCJjbGF1ZGVvXCIsXG4gICAgXCJjbGF1c3RydW1cIixcbiAgICBcImNsZW1lbnRpYVwiLFxuICAgIFwiY2xpYmFudXNcIixcbiAgICBcImNvYWR1bmF0aW9cIixcbiAgICBcImNvYWVncmVzY29cIixcbiAgICBcImNvZXBpXCIsXG4gICAgXCJjb2VyY2VvXCIsXG4gICAgXCJjb2dpdG9cIixcbiAgICBcImNvZ25hdHVzXCIsXG4gICAgXCJjb2dub21lblwiLFxuICAgIFwiY29nb1wiLFxuICAgIFwiY29oYWVyb1wiLFxuICAgIFwiY29oaWJlb1wiLFxuICAgIFwiY29ob3JzXCIsXG4gICAgXCJjb2xsaWdvXCIsXG4gICAgXCJjb2xsb2NvXCIsXG4gICAgXCJjb2xsdW1cIixcbiAgICBcImNvbG9cIixcbiAgICBcImNvbG9yXCIsXG4gICAgXCJjb21hXCIsXG4gICAgXCJjb21iaWJvXCIsXG4gICAgXCJjb21idXJvXCIsXG4gICAgXCJjb21lZG9cIixcbiAgICBcImNvbWVzXCIsXG4gICAgXCJjb21ldGVzXCIsXG4gICAgXCJjb21pc1wiLFxuICAgIFwiY29taXRhdHVzXCIsXG4gICAgXCJjb21tZW1vcm9cIixcbiAgICBcImNvbW1pbm9yXCIsXG4gICAgXCJjb21tb2RvXCIsXG4gICAgXCJjb21tdW5pc1wiLFxuICAgIFwiY29tcGFyb1wiLFxuICAgIFwiY29tcGVsbG9cIixcbiAgICBcImNvbXBsZWN0dXNcIixcbiAgICBcImNvbXBvbm9cIixcbiAgICBcImNvbXByZWhlbmRvXCIsXG4gICAgXCJjb21wdHVzXCIsXG4gICAgXCJjb25hdHVzXCIsXG4gICAgXCJjb25jZWRvXCIsXG4gICAgXCJjb25jaWRvXCIsXG4gICAgXCJjb25jdWxjb1wiLFxuICAgIFwiY29uZGljb1wiLFxuICAgIFwiY29uZHVjb1wiLFxuICAgIFwiY29uZmVyb1wiLFxuICAgIFwiY29uZmlkb1wiLFxuICAgIFwiY29uZm9ydG9cIixcbiAgICBcImNvbmZ1Z29cIixcbiAgICBcImNvbmdyZWdhdGlvXCIsXG4gICAgXCJjb25pY2lvXCIsXG4gICAgXCJjb25pZWN0b1wiLFxuICAgIFwiY29uaXRvclwiLFxuICAgIFwiY29uaXVyYXRpb1wiLFxuICAgIFwiY29ub3JcIixcbiAgICBcImNvbnF1ZXJvclwiLFxuICAgIFwiY29uc2NlbmRvXCIsXG4gICAgXCJjb25zZXJ2b1wiLFxuICAgIFwiY29uc2lkZXJvXCIsXG4gICAgXCJjb25zcGVyZ29cIixcbiAgICBcImNvbnN0YW5zXCIsXG4gICAgXCJjb25zdWFzb3JcIixcbiAgICBcImNvbnRhYmVzY29cIixcbiAgICBcImNvbnRlZ29cIixcbiAgICBcImNvbnRpZ29cIixcbiAgICBcImNvbnRyYVwiLFxuICAgIFwiY29udHVyYm9cIixcbiAgICBcImNvbnZlbnR1c1wiLFxuICAgIFwiY29udm9jb1wiLFxuICAgIFwiY29waWFcIixcbiAgICBcImNvcGlvc2VcIixcbiAgICBcImNvcm51XCIsXG4gICAgXCJjb3JvbmFcIixcbiAgICBcImNvcnB1c1wiLFxuICAgIFwiY29ycmVwdGl1c1wiLFxuICAgIFwiY29ycmlnb1wiLFxuICAgIFwiY29ycm9ib3JvXCIsXG4gICAgXCJjb3JydW1wb1wiLFxuICAgIFwiY29ydXNjdXNcIixcbiAgICBcImNvdGlkaWVcIixcbiAgICBcImNyYXB1bGFcIixcbiAgICBcImNyYXNcIixcbiAgICBcImNyYXN0aW51c1wiLFxuICAgIFwiY3JlYXRvclwiLFxuICAgIFwiY3JlYmVyXCIsXG4gICAgXCJjcmVicm9cIixcbiAgICBcImNyZWRvXCIsXG4gICAgXCJjcmVvXCIsXG4gICAgXCJjcmVwdGlvXCIsXG4gICAgXCJjcmVwdXNjdWx1bVwiLFxuICAgIFwiY3Jlc2NvXCIsXG4gICAgXCJjcmV0YVwiLFxuICAgIFwiY3JpYnJvXCIsXG4gICAgXCJjcmluaXNcIixcbiAgICBcImNydWNpYW1lbnR1bVwiLFxuICAgIFwiY3J1ZGVsaXNcIixcbiAgICBcImNydWVudHVzXCIsXG4gICAgXCJjcnVyXCIsXG4gICAgXCJjcnVzdHVsdW1cIixcbiAgICBcImNydXhcIixcbiAgICBcImN1YmljdWxhcmlzXCIsXG4gICAgXCJjdWJpdHVtXCIsXG4gICAgXCJjdWJvXCIsXG4gICAgXCJjdWlcIixcbiAgICBcImN1aXVzXCIsXG4gICAgXCJjdWxwYVwiLFxuICAgIFwiY3VscG9cIixcbiAgICBcImN1bHRlbGx1c1wiLFxuICAgIFwiY3VsdHVyYVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJjdW5hYnVsYVwiLFxuICAgIFwiY3VuYWVcIixcbiAgICBcImN1bmN0YXRpb1wiLFxuICAgIFwiY3VwaWRpdGFzXCIsXG4gICAgXCJjdXBpb1wiLFxuICAgIFwiY3VwcGVkaWFcIixcbiAgICBcImN1cHJlc3N1c1wiLFxuICAgIFwiY3VyXCIsXG4gICAgXCJjdXJhXCIsXG4gICAgXCJjdXJhdGlvXCIsXG4gICAgXCJjdXJpYVwiLFxuICAgIFwiY3VyaW9zaXRhc1wiLFxuICAgIFwiY3VyaXNcIixcbiAgICBcImN1cm9cIixcbiAgICBcImN1cnJpY3VsdW1cIixcbiAgICBcImN1cnJ1c1wiLFxuICAgIFwiY3Vyc2ltXCIsXG4gICAgXCJjdXJzb1wiLFxuICAgIFwiY3Vyc3VzXCIsXG4gICAgXCJjdXJ0b1wiLFxuICAgIFwiY3VydHVzXCIsXG4gICAgXCJjdXJ2b1wiLFxuICAgIFwiY3VydnVzXCIsXG4gICAgXCJjdXN0b2RpYVwiLFxuICAgIFwiZGFtbmF0aW9cIixcbiAgICBcImRhbW5vXCIsXG4gICAgXCJkYXBpZmVyXCIsXG4gICAgXCJkZWJlb1wiLFxuICAgIFwiZGViaWxpdG9cIixcbiAgICBcImRlY2Vuc1wiLFxuICAgIFwiZGVjZXJub1wiLFxuICAgIFwiZGVjZXRcIixcbiAgICBcImRlY2ltdXNcIixcbiAgICBcImRlY2lwaW9cIixcbiAgICBcImRlY29yXCIsXG4gICAgXCJkZWNyZXR1bVwiLFxuICAgIFwiZGVjdW1ib1wiLFxuICAgIFwiZGVkZWNvclwiLFxuICAgIFwiZGVkaWNvXCIsXG4gICAgXCJkZWR1Y29cIixcbiAgICBcImRlZmFlY29cIixcbiAgICBcImRlZmVuZG9cIixcbiAgICBcImRlZmVyb1wiLFxuICAgIFwiZGVmZXNzdXNcIixcbiAgICBcImRlZmV0aXNjb3JcIixcbiAgICBcImRlZmljaW9cIixcbiAgICBcImRlZmlnb1wiLFxuICAgIFwiZGVmbGVvXCIsXG4gICAgXCJkZWZsdW9cIixcbiAgICBcImRlZnVuZ29cIixcbiAgICBcImRlZ2VuZXJvXCIsXG4gICAgXCJkZWdlcm9cIixcbiAgICBcImRlZ3VzdG9cIixcbiAgICBcImRlaW5kZVwiLFxuICAgIFwiZGVsZWN0YXRpb1wiLFxuICAgIFwiZGVsZWdvXCIsXG4gICAgXCJkZWxlb1wiLFxuICAgIFwiZGVsaWJlcm9cIixcbiAgICBcImRlbGljYXRlXCIsXG4gICAgXCJkZWxpbnF1b1wiLFxuICAgIFwiZGVsdWRvXCIsXG4gICAgXCJkZW1lbnNcIixcbiAgICBcImRlbWVyZ29cIixcbiAgICBcImRlbWl0dG9cIixcbiAgICBcImRlbW9cIixcbiAgICBcImRlbW9uc3Ryb1wiLFxuICAgIFwiZGVtb3JvclwiLFxuICAgIFwiZGVtdWxjZW9cIixcbiAgICBcImRlbXVtXCIsXG4gICAgXCJkZW5lZ29cIixcbiAgICBcImRlbmlxdWVcIixcbiAgICBcImRlbnNcIixcbiAgICBcImRlbnVuY2lvXCIsXG4gICAgXCJkZW51b1wiLFxuICAgIFwiZGVvcnN1bVwiLFxuICAgIFwiZGVwZXJlb1wiLFxuICAgIFwiZGVwb25vXCIsXG4gICAgXCJkZXBvcHVsb1wiLFxuICAgIFwiZGVwb3J0b1wiLFxuICAgIFwiZGVwcmFlZG9yXCIsXG4gICAgXCJkZXByZWNhdG9yXCIsXG4gICAgXCJkZXByaW1vXCIsXG4gICAgXCJkZXByb21vXCIsXG4gICAgXCJkZXB1bHNvXCIsXG4gICAgXCJkZXB1dG9cIixcbiAgICBcImRlcmVsaW5xdW9cIixcbiAgICBcImRlcmlkZW9cIixcbiAgICBcImRlcmlwaW9cIixcbiAgICBcImRlc2lkZXJvXCIsXG4gICAgXCJkZXNpbm9cIixcbiAgICBcImRlc2lwaW9cIixcbiAgICBcImRlc29sb1wiLFxuICAgIFwiZGVzcGFyYXR1c1wiLFxuICAgIFwiZGVzcGVjdG9cIixcbiAgICBcImRlc3Bpcm1hdGlvXCIsXG4gICAgXCJpbmZpdFwiLFxuICAgIFwiaW5mbGFtbWF0aW9cIixcbiAgICBcInBhZW5zXCIsXG4gICAgXCJwYXRpb3JcIixcbiAgICBcInBhdHJpYVwiLFxuICAgIFwicGF0cm9jaW5vclwiLFxuICAgIFwicGF0cnV1c1wiLFxuICAgIFwicGF1Y2lcIixcbiAgICBcInBhdWxhdGltXCIsXG4gICAgXCJwYXVwZXJcIixcbiAgICBcInBheFwiLFxuICAgIFwicGVjY2F0dXNcIixcbiAgICBcInBlY2NvXCIsXG4gICAgXCJwZWN0b1wiLFxuICAgIFwicGVjdHVzXCIsXG4gICAgXCJwZWN1bmlhXCIsXG4gICAgXCJwZWN1c1wiLFxuICAgIFwicGVpb3JcIixcbiAgICBcInBlbFwiLFxuICAgIFwib2NlclwiLFxuICAgIFwic29jaXVzXCIsXG4gICAgXCJzb2RhbGl0YXNcIixcbiAgICBcInNvbFwiLFxuICAgIFwic29sZW9cIixcbiAgICBcInNvbGlvXCIsXG4gICAgXCJzb2xpdHVkb1wiLFxuICAgIFwic29saXVtXCIsXG4gICAgXCJzb2xsZXJzXCIsXG4gICAgXCJzb2xsaWNpdG9cIixcbiAgICBcInNvbHVtXCIsXG4gICAgXCJzb2x1c1wiLFxuICAgIFwic29sdXRpb1wiLFxuICAgIFwic29sdm9cIixcbiAgICBcInNvbW5pY3Vsb3N1c1wiLFxuICAgIFwic29tbnVzXCIsXG4gICAgXCJzb25pdHVzXCIsXG4gICAgXCJzb25vXCIsXG4gICAgXCJzb3BoaXNtYXRhXCIsXG4gICAgXCJzb3BvclwiLFxuICAgIFwic29yZGVvXCIsXG4gICAgXCJzb3J0aXR1c1wiLFxuICAgIFwic3BhcmdvXCIsXG4gICAgXCJzcGVjaW9zdXNcIixcbiAgICBcInNwZWN0YWN1bHVtXCIsXG4gICAgXCJzcGVjdWx1bVwiLFxuICAgIFwic3Blcm5vXCIsXG4gICAgXCJzcGVyb1wiLFxuICAgIFwic3Blc1wiLFxuICAgIFwic3BpY3VsdW1cIixcbiAgICBcInNwaXJpdHVzXCIsXG4gICAgXCJzcG9saWF0aW9cIixcbiAgICBcInNwb250ZVwiLFxuICAgIFwic3RhYmlsaXNcIixcbiAgICBcInN0YXRpbVwiLFxuICAgIFwic3RhdHVhXCIsXG4gICAgXCJzdGVsbGFcIixcbiAgICBcInN0aWxsaWNpZGl1bVwiLFxuICAgIFwic3RpcGVzXCIsXG4gICAgXCJzdGlwc1wiLFxuICAgIFwic3RvXCIsXG4gICAgXCJzdHJlbnV1c1wiLFxuICAgIFwic3RydWVzXCIsXG4gICAgXCJzdHVkaW9cIixcbiAgICBcInN0dWx0dXNcIixcbiAgICBcInN1YWRlb1wiLFxuICAgIFwic3Vhc29yaWFcIixcbiAgICBcInN1YlwiLFxuICAgIFwic3ViaXRvXCIsXG4gICAgXCJzdWJpdW5nb1wiLFxuICAgIFwic3VibGltZVwiLFxuICAgIFwic3VibmVjdG9cIixcbiAgICBcInN1YnNlY29cIixcbiAgICBcInN1YnN0YW50aWFcIixcbiAgICBcInN1YnZlbmlvXCIsXG4gICAgXCJzdWNjZWRvXCIsXG4gICAgXCJzdWNjdXJyb1wiLFxuICAgIFwic3VmZmljaW9cIixcbiAgICBcInN1ZmZvY29cIixcbiAgICBcInN1ZmZyYWdpdW1cIixcbiAgICBcInN1Z2dlcm9cIixcbiAgICBcInN1aVwiLFxuICAgIFwic3VsdW1cIixcbiAgICBcInN1bVwiLFxuICAgIFwic3VtbWFcIixcbiAgICBcInN1bW1pc3NlXCIsXG4gICAgXCJzdW1tb3BlcmVcIixcbiAgICBcInN1bW9cIixcbiAgICBcInN1bXB0dXNcIixcbiAgICBcInN1cGVsbGV4XCIsXG4gICAgXCJzdXBlclwiLFxuICAgIFwic3VwcGVsbGV4XCIsXG4gICAgXCJzdXBwbGFudG9cIixcbiAgICBcInN1cHBvbm9cIixcbiAgICBcInN1cHJhXCIsXG4gICAgXCJzdXJjdWx1c1wiLFxuICAgIFwic3VyZ29cIixcbiAgICBcInN1cnN1bVwiLFxuICAgIFwic3VzY2lwaW9cIixcbiAgICBcInN1c3BlbmRvXCIsXG4gICAgXCJzdXN0aW5lb1wiLFxuICAgIFwic3V1c1wiLFxuICAgIFwic3luYWdvZ2FcIixcbiAgICBcInRhYmVsbGFcIixcbiAgICBcInRhYmVybnVzXCIsXG4gICAgXCJ0YWJlc2NvXCIsXG4gICAgXCJ0YWJnb1wiLFxuICAgIFwidGFidWxhXCIsXG4gICAgXCJ0YWNlb1wiLFxuICAgIFwidGFjdHVzXCIsXG4gICAgXCJ0YWVkaXVtXCIsXG4gICAgXCJ0YWxpb1wiLFxuICAgIFwidGFsaXNcIixcbiAgICBcInRhbHVzXCIsXG4gICAgXCJ0YW1cIixcbiAgICBcInRhbWRpdVwiLFxuICAgIFwidGFtZW5cIixcbiAgICBcInRhbWV0c2lcIixcbiAgICBcInRhbWlzaXVtXCIsXG4gICAgXCJ0YW1xdWFtXCIsXG4gICAgXCJ0YW5kZW1cIixcbiAgICBcInRhbnRpbGx1c1wiLFxuICAgIFwidGFudHVtXCIsXG4gICAgXCJ0YXJkdXNcIixcbiAgICBcInRlZ29cIixcbiAgICBcInRlbWVyaXRhc1wiLFxuICAgIFwidGVtcGVyYW50aWFcIixcbiAgICBcInRlbXBsdW1cIixcbiAgICBcInRlbXB0YXRpb1wiLFxuICAgIFwidGVtcHVzXCIsXG4gICAgXCJ0ZW5heFwiLFxuICAgIFwidGVuZG9cIixcbiAgICBcInRlbmVvXCIsXG4gICAgXCJ0ZW5lclwiLFxuICAgIFwidGVudWlzXCIsXG4gICAgXCJ0ZW51c1wiLFxuICAgIFwidGVwZXNjb1wiLFxuICAgIFwidGVwaWR1c1wiLFxuICAgIFwidGVyXCIsXG4gICAgXCJ0ZXJlYnJvXCIsXG4gICAgXCJ0ZXJlc1wiLFxuICAgIFwidGVyZ2FcIixcbiAgICBcInRlcmdlb1wiLFxuICAgIFwidGVyZ2l2ZXJzYXRpb1wiLFxuICAgIFwidGVyZ29cIixcbiAgICBcInRlcmd1bVwiLFxuICAgIFwidGVybWVzXCIsXG4gICAgXCJ0ZXJtaW5hdGlvXCIsXG4gICAgXCJ0ZXJvXCIsXG4gICAgXCJ0ZXJyYVwiLFxuICAgIFwidGVycmVvXCIsXG4gICAgXCJ0ZXJyaXRvXCIsXG4gICAgXCJ0ZXJyb3JcIixcbiAgICBcInRlcnN1c1wiLFxuICAgIFwidGVydGl1c1wiLFxuICAgIFwidGVzdGltb25pdW1cIixcbiAgICBcInRleG9cIixcbiAgICBcInRleHRpbGlzXCIsXG4gICAgXCJ0ZXh0b3JcIixcbiAgICBcInRleHR1c1wiLFxuICAgIFwidGhhbGFzc2ludXNcIixcbiAgICBcInRoZWF0cnVtXCIsXG4gICAgXCJ0aGVjYVwiLFxuICAgIFwidGhlbWFcIixcbiAgICBcInRoZW9sb2d1c1wiLFxuICAgIFwidGhlcm1hZVwiLFxuICAgIFwidGhlc2F1cnVzXCIsXG4gICAgXCJ0aGVzaXNcIixcbiAgICBcInRob3JheFwiLFxuICAgIFwidGh5bWJyYVwiLFxuICAgIFwidGh5bXVtXCIsXG4gICAgXCJ0aWJpXCIsXG4gICAgXCJ0aW1pZHVzXCIsXG4gICAgXCJ0aW1vclwiLFxuICAgIFwidGl0dWx1c1wiLFxuICAgIFwidG9sZXJvXCIsXG4gICAgXCJ0b2xsb1wiLFxuICAgIFwidG9uZGVvXCIsXG4gICAgXCJ0b25zb3JcIixcbiAgICBcInRvcnF1ZW9cIixcbiAgICBcInRvcnJlbnNcIixcbiAgICBcInRvdFwiLFxuICAgIFwidG90aWRlbVwiLFxuICAgIFwidG90aWVzXCIsXG4gICAgXCJ0b3R1c1wiLFxuICAgIFwidHJhY3RvXCIsXG4gICAgXCJ0cmFkb1wiLFxuICAgIFwidHJhaG9cIixcbiAgICBcInRyYW5zXCIsXG4gICAgXCJ0cmVkZWNpbVwiLFxuICAgIFwidHJlbW9cIixcbiAgICBcInRyZXBpZGVcIixcbiAgICBcInRyZXNcIixcbiAgICBcInRyaWJ1b1wiLFxuICAgIFwidHJpY2VzaW11c1wiLFxuICAgIFwidHJpZHVhbmFcIixcbiAgICBcInRyaWdpbnRhXCIsXG4gICAgXCJ0cmlwdWRpb1wiLFxuICAgIFwidHJpc3Rpc1wiLFxuICAgIFwidHJpdW1waHVzXCIsXG4gICAgXCJ0cnVjaWRvXCIsXG4gICAgXCJ0cnVjdWxlbnRlclwiLFxuICAgIFwidHViaW5ldXNcIixcbiAgICBcInR1aVwiLFxuICAgIFwidHVtXCIsXG4gICAgXCJ0dW11bHR1c1wiLFxuICAgIFwidHVuY1wiLFxuICAgIFwidHVyYmFcIixcbiAgICBcInR1cmJvXCIsXG4gICAgXCJ0dXJwZVwiLFxuICAgIFwidHVycGlzXCIsXG4gICAgXCJ0dXRhbWVuXCIsXG4gICAgXCJ0dXRpc1wiLFxuICAgIFwidHlyYW5udXNcIixcbiAgICBcInViZXJyaW1lXCIsXG4gICAgXCJ1YmlcIixcbiAgICBcInVsY2lzY29yXCIsXG4gICAgXCJ1bGx1c1wiLFxuICAgIFwidWx0ZXJpdXNcIixcbiAgICBcInVsdGlvXCIsXG4gICAgXCJ1bHRyYVwiLFxuICAgIFwidW1icmFcIixcbiAgICBcInVtZXJ1c1wiLFxuICAgIFwidW1xdWFtXCIsXG4gICAgXCJ1bmFcIixcbiAgICBcInVuZGVcIixcbiAgICBcInVuZGlxdWVcIixcbiAgICBcInVuaXZlcnNlXCIsXG4gICAgXCJ1bnVzXCIsXG4gICAgXCJ1cmJhbnVzXCIsXG4gICAgXCJ1cmJzXCIsXG4gICAgXCJ1cmVkb1wiLFxuICAgIFwidXNpdGFzXCIsXG4gICAgXCJ1c3F1ZVwiLFxuICAgIFwidXN0aWxvXCIsXG4gICAgXCJ1c3R1bG9cIixcbiAgICBcInVzdXNcIixcbiAgICBcInV0ZXJcIixcbiAgICBcInV0ZXJxdWVcIixcbiAgICBcInV0aWxpc1wiLFxuICAgIFwidXRpcXVlXCIsXG4gICAgXCJ1dG9yXCIsXG4gICAgXCJ1dHBvdGVcIixcbiAgICBcInV0cmltcXVlXCIsXG4gICAgXCJ1dHJvcXVlXCIsXG4gICAgXCJ1dHJ1bVwiLFxuICAgIFwidXhvclwiLFxuICAgIFwidmFjb1wiLFxuICAgIFwidmFjdXVzXCIsXG4gICAgXCJ2YWRvXCIsXG4gICAgXCJ2YWVcIixcbiAgICBcInZhbGRlXCIsXG4gICAgXCJ2YWxlbnNcIixcbiAgICBcInZhbGVvXCIsXG4gICAgXCJ2YWxldHVkb1wiLFxuICAgIFwidmFsaWR1c1wiLFxuICAgIFwidmFsbHVtXCIsXG4gICAgXCJ2YXB1bHVzXCIsXG4gICAgXCJ2YXJpZXRhc1wiLFxuICAgIFwidmFyaXVzXCIsXG4gICAgXCJ2ZWhlbWVuc1wiLFxuICAgIFwidmVsXCIsXG4gICAgXCJ2ZWxvY2l0ZXJcIixcbiAgICBcInZlbHVtXCIsXG4gICAgXCJ2ZWx1dFwiLFxuICAgIFwidmVuaWFcIixcbiAgICBcInZlbmlvXCIsXG4gICAgXCJ2ZW50aXRvXCIsXG4gICAgXCJ2ZW50b3N1c1wiLFxuICAgIFwidmVudHVzXCIsXG4gICAgXCJ2ZW51c3Rhc1wiLFxuICAgIFwidmVyXCIsXG4gICAgXCJ2ZXJiZXJhXCIsXG4gICAgXCJ2ZXJidW1cIixcbiAgICBcInZlcmVcIixcbiAgICBcInZlcmVjdW5kaWFcIixcbiAgICBcInZlcmVvclwiLFxuICAgIFwidmVyZ29cIixcbiAgICBcInZlcml0YXNcIixcbiAgICBcInZlcm9cIixcbiAgICBcInZlcnN1c1wiLFxuICAgIFwidmVydG9cIixcbiAgICBcInZlcnVtdGFtZW5cIixcbiAgICBcInZlcnVzXCIsXG4gICAgXCJ2ZXNjb1wiLFxuICAgIFwidmVzaWNhXCIsXG4gICAgXCJ2ZXNwZXJcIixcbiAgICBcInZlc3BpbGxvXCIsXG4gICAgXCJ2ZXN0ZXJcIixcbiAgICBcInZlc3RpZ2l1bVwiLFxuICAgIFwidmVzdHJ1bVwiLFxuICAgIFwidmV0dXNcIixcbiAgICBcInZpYVwiLFxuICAgIFwidmljaW51c1wiLFxuICAgIFwidmljaXNzaXR1ZG9cIixcbiAgICBcInZpY3RvcmlhXCIsXG4gICAgXCJ2aWN0dXNcIixcbiAgICBcInZpZGVsaWNldFwiLFxuICAgIFwidmlkZW9cIixcbiAgICBcInZpZHVhdGFcIixcbiAgICBcInZpZHVvXCIsXG4gICAgXCJ2aWdpbG9cIixcbiAgICBcInZpZ29yXCIsXG4gICAgXCJ2aWxpY3VzXCIsXG4gICAgXCJ2aWxpc1wiLFxuICAgIFwidmlsaXRhc1wiLFxuICAgIFwidmlsbGFcIixcbiAgICBcInZpbmNvXCIsXG4gICAgXCJ2aW5jdWx1bVwiLFxuICAgIFwidmluZGljb1wiLFxuICAgIFwidmluaXRvclwiLFxuICAgIFwidmludW1cIixcbiAgICBcInZpclwiLFxuICAgIFwidmlyZ2FcIixcbiAgICBcInZpcmdvXCIsXG4gICAgXCJ2aXJpZGlzXCIsXG4gICAgXCJ2aXJpbGl0ZXJcIixcbiAgICBcInZpcnR1c1wiLFxuICAgIFwidmlzXCIsXG4gICAgXCJ2aXNjdXNcIixcbiAgICBcInZpdGFcIixcbiAgICBcInZpdGlvc3VzXCIsXG4gICAgXCJ2aXRpdW1cIixcbiAgICBcInZpdG9cIixcbiAgICBcInZpdm9cIixcbiAgICBcInZpeFwiLFxuICAgIFwidm9iaXNcIixcbiAgICBcInZvY2lmZXJvclwiLFxuICAgIFwidm9jb1wiLFxuICAgIFwidm9sYXRpY3VzXCIsXG4gICAgXCJ2b2xvXCIsXG4gICAgXCJ2b2x1YmlsaXNcIixcbiAgICBcInZvbHVudGFyaXVzXCIsXG4gICAgXCJ2b2x1cFwiLFxuICAgIFwidm9sdXRhYnJ1bVwiLFxuICAgIFwidm9sdmFcIixcbiAgICBcInZvbWVyXCIsXG4gICAgXCJ2b21pY2FcIixcbiAgICBcInZvbWl0b1wiLFxuICAgIFwidm9yYWdvXCIsXG4gICAgXCJ2b3JheFwiLFxuICAgIFwidm9yb1wiLFxuICAgIFwidm9zXCIsXG4gICAgXCJ2b3R1bVwiLFxuICAgIFwidm92ZW9cIixcbiAgICBcInZveFwiLFxuICAgIFwidnVsYXJpdGVyXCIsXG4gICAgXCJ2dWxnYXJpc1wiLFxuICAgIFwidnVsZ2l2YWd1c1wiLFxuICAgIFwidnVsZ29cIixcbiAgICBcInZ1bGd1c1wiLFxuICAgIFwidnVsbmVyb1wiLFxuICAgIFwidnVsbnVzXCIsXG4gICAgXCJ2dWxwZXNcIixcbiAgICBcInZ1bHRpY3VsdXNcIixcbiAgICBcInZ1bHR1b3N1c1wiLFxuICAgIFwieGlwaGlhc1wiXG4gIF1cbn07XG5mci5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiRW56b1wiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk1hdGhpc1wiLFxuICAgIFwiTmF0aGFuXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIkh1Z29cIixcbiAgICBcIlRow6lvXCIsXG4gICAgXCJUb21cIixcbiAgICBcIkxvdWlzXCIsXG4gICAgXCJSYXBoYcOrbFwiLFxuICAgIFwiQ2zDqW1lbnRcIixcbiAgICBcIkzDqW9cIixcbiAgICBcIk1hdGjDqW9cIixcbiAgICBcIk1heGltZVwiLFxuICAgIFwiQWxleGFuZHJlXCIsXG4gICAgXCJBbnRvaW5lXCIsXG4gICAgXCJZYW5pc1wiLFxuICAgIFwiUGF1bFwiLFxuICAgIFwiQmFwdGlzdGVcIixcbiAgICBcIkFsZXhpc1wiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiQXJ0aHVyXCIsXG4gICAgXCJKdWxlc1wiLFxuICAgIFwiRXRoYW5cIixcbiAgICBcIk5vYWhcIixcbiAgICBcIlF1ZW50aW5cIixcbiAgICBcIkF4ZWxcIixcbiAgICBcIkV2YW5cIixcbiAgICBcIk1hdHTDqW9cIixcbiAgICBcIlJvbWFpblwiLFxuICAgIFwiVmFsZW50aW5cIixcbiAgICBcIk1heGVuY2VcIixcbiAgICBcIk5vYVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiTmljb2xhc1wiLFxuICAgIFwiSnVsaWVuXCIsXG4gICAgXCJNYWVsXCIsXG4gICAgXCJQaWVycmVcIixcbiAgICBcIlJheWFuXCIsXG4gICAgXCJWaWN0b3JcIixcbiAgICBcIk1vaGFtZWRcIixcbiAgICBcIkFkcmllblwiLFxuICAgIFwiS3lsaWFuXCIsXG4gICAgXCJTYWNoYVwiLFxuICAgIFwiQmVuamFtaW5cIixcbiAgICBcIkzDqWFcIixcbiAgICBcIkNsYXJhXCIsXG4gICAgXCJNYW5vblwiLFxuICAgIFwiQ2hsb8OpXCIsXG4gICAgXCJDYW1pbGxlXCIsXG4gICAgXCJJbmVzXCIsXG4gICAgXCJTYXJhaFwiLFxuICAgIFwiSmFkZVwiLFxuICAgIFwiTG9sYVwiLFxuICAgIFwiQW5hw69zXCIsXG4gICAgXCJMdWNpZVwiLFxuICAgIFwiT2PDqWFuZVwiLFxuICAgIFwiTGlsb3VcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJFdmFcIixcbiAgICBcIlJvbWFuZVwiLFxuICAgIFwiTGlzYVwiLFxuICAgIFwiWm9lXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIkxvdWlzZVwiLFxuICAgIFwiSnVsaWV0dGVcIixcbiAgICBcIkNsw6ltZW5jZVwiLFxuICAgIFwiQ8OpbGlhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGVuYVwiLFxuICAgIFwiTWHDq2x5c1wiLFxuICAgIFwiQ2hhcmxvdHRlXCIsXG4gICAgXCJBbWJyZVwiLFxuICAgIFwiTWFldmFcIixcbiAgICBcIlBhdWxpbmVcIixcbiAgICBcIkxpbmFcIixcbiAgICBcIkplYW5uZVwiLFxuICAgIFwiTG91XCIsXG4gICAgXCJOb8OpbWllXCIsXG4gICAgXCJKdXN0aW5lXCIsXG4gICAgXCJMb3VuYVwiLFxuICAgIFwiRWxpc2FcIixcbiAgICBcIkFsaWNlXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkNhcmxhXCIsXG4gICAgXCJNYcOrbGxlXCIsXG4gICAgXCJBbGljaWFcIixcbiAgICBcIk3DqWxpc3NhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiTWFydGluXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJEdWJvaXNcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSaWNoYXJkXCIsXG4gICAgXCJQZXRpdFwiLFxuICAgIFwiRHVyYW5kXCIsXG4gICAgXCJMZXJveVwiLFxuICAgIFwiTW9yZWF1XCIsXG4gICAgXCJTaW1vblwiLFxuICAgIFwiTGF1cmVudFwiLFxuICAgIFwiTGVmZWJ2cmVcIixcbiAgICBcIk1pY2hlbFwiLFxuICAgIFwiR2FyY2lhXCIsXG4gICAgXCJEYXZpZFwiLFxuICAgIFwiQmVydHJhbmRcIixcbiAgICBcIlJvdXhcIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIkZvdXJuaWVyXCIsXG4gICAgXCJNb3JlbFwiLFxuICAgIFwiR2lyYXJkXCIsXG4gICAgXCJBbmRyZVwiLFxuICAgIFwiTGVmZXZyZVwiLFxuICAgIFwiTWVyY2llclwiLFxuICAgIFwiRHVwb250XCIsXG4gICAgXCJMYW1iZXJ0XCIsXG4gICAgXCJCb25uZXRcIixcbiAgICBcIkZyYW5jb2lzXCIsXG4gICAgXCJNYXJ0aW5lelwiLFxuICAgIFwiTGVncmFuZFwiLFxuICAgIFwiR2FybmllclwiLFxuICAgIFwiRmF1cmVcIixcbiAgICBcIlJvdXNzZWF1XCIsXG4gICAgXCJCbGFuY1wiLFxuICAgIFwiR3VlcmluXCIsXG4gICAgXCJNdWxsZXJcIixcbiAgICBcIkhlbnJ5XCIsXG4gICAgXCJSb3Vzc2VsXCIsXG4gICAgXCJOaWNvbGFzXCIsXG4gICAgXCJQZXJyaW5cIixcbiAgICBcIk1vcmluXCIsXG4gICAgXCJNYXRoaWV1XCIsXG4gICAgXCJDbGVtZW50XCIsXG4gICAgXCJHYXV0aGllclwiLFxuICAgIFwiRHVtb250XCIsXG4gICAgXCJMb3BlelwiLFxuICAgIFwiRm9udGFpbmVcIixcbiAgICBcIkNoZXZhbGllclwiLFxuICAgIFwiUm9iaW5cIixcbiAgICBcIk1hc3NvblwiLFxuICAgIFwiU2FuY2hlelwiLFxuICAgIFwiR2VyYXJkXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIkJveWVyXCIsXG4gICAgXCJEZW5pc1wiLFxuICAgIFwiTGVtYWlyZVwiLFxuICAgIFwiRHV2YWxcIixcbiAgICBcIkpvbHlcIixcbiAgICBcIkdhdXRpZXJcIixcbiAgICBcIlJvZ2VyXCIsXG4gICAgXCJSb2NoZVwiLFxuICAgIFwiUm95XCIsXG4gICAgXCJOb2VsXCIsXG4gICAgXCJNZXllclwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk1ldW5pZXJcIixcbiAgICBcIkplYW5cIixcbiAgICBcIlBlcmV6XCIsXG4gICAgXCJNYXJjaGFuZFwiLFxuICAgIFwiRHVmb3VyXCIsXG4gICAgXCJCbGFuY2hhcmRcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJCYXJiaWVyXCIsXG4gICAgXCJCcnVuXCIsXG4gICAgXCJEdW1hc1wiLFxuICAgIFwiQnJ1bmV0XCIsXG4gICAgXCJTY2htaXR0XCIsXG4gICAgXCJMZXJvdXhcIixcbiAgICBcIkNvbGluXCIsXG4gICAgXCJGZXJuYW5kZXpcIixcbiAgICBcIlBpZXJyZVwiLFxuICAgIFwiUmVuYXJkXCIsXG4gICAgXCJBcm5hdWRcIixcbiAgICBcIlJvbGxhbmRcIixcbiAgICBcIkNhcm9uXCIsXG4gICAgXCJBdWJlcnRcIixcbiAgICBcIkdpcmF1ZFwiLFxuICAgIFwiTGVjbGVyY1wiLFxuICAgIFwiVmlkYWxcIixcbiAgICBcIkJvdXJnZW9pc1wiLFxuICAgIFwiUmVuYXVkXCIsXG4gICAgXCJMZW1vaW5lXCIsXG4gICAgXCJQaWNhcmRcIixcbiAgICBcIkdhaWxsYXJkXCIsXG4gICAgXCJQaGlsaXBwZVwiLFxuICAgIFwiTGVjbGVyY3FcIixcbiAgICBcIkxhY3JvaXhcIixcbiAgICBcIkZhYnJlXCIsXG4gICAgXCJEdXB1aXNcIixcbiAgICBcIk9saXZpZXJcIixcbiAgICBcIlJvZHJpZ3VlelwiLFxuICAgIFwiRGEgc2lsdmFcIixcbiAgICBcIkh1YmVydFwiLFxuICAgIFwiTG91aXNcIixcbiAgICBcIkNoYXJsZXNcIixcbiAgICBcIkd1aWxsb3RcIixcbiAgICBcIlJpdmllcmVcIixcbiAgICBcIkxlIGdhbGxcIixcbiAgICBcIkd1aWxsYXVtZVwiLFxuICAgIFwiQWRhbVwiLFxuICAgIFwiUmV5XCIsXG4gICAgXCJNb3VsaW5cIixcbiAgICBcIkdvbnphbGV6XCIsXG4gICAgXCJCZXJnZXJcIixcbiAgICBcIkxlY29tdGVcIixcbiAgICBcIk1lbmFyZFwiLFxuICAgIFwiRmxldXJ5XCIsXG4gICAgXCJEZXNjaGFtcHNcIixcbiAgICBcIkNhcnBlbnRpZXJcIixcbiAgICBcIkp1bGllblwiLFxuICAgIFwiQmVub2l0XCIsXG4gICAgXCJQYXJpc1wiLFxuICAgIFwiTWFpbGxhcmRcIixcbiAgICBcIk1hcmNoYWxcIixcbiAgICBcIkF1YnJ5XCIsXG4gICAgXCJWYXNzZXVyXCIsXG4gICAgXCJMZSByb3V4XCIsXG4gICAgXCJSZW5hdWx0XCIsXG4gICAgXCJKYWNxdWV0XCIsXG4gICAgXCJDb2xsZXRcIixcbiAgICBcIlByZXZvc3RcIixcbiAgICBcIlBvaXJpZXJcIixcbiAgICBcIkNoYXJwZW50aWVyXCIsXG4gICAgXCJSb3llclwiLFxuICAgIFwiSHVldFwiLFxuICAgIFwiQmFyb25cIixcbiAgICBcIkR1cHV5XCIsXG4gICAgXCJQb25zXCIsXG4gICAgXCJQYXVsXCIsXG4gICAgXCJMYWluZVwiLFxuICAgIFwiQ2FycmVcIixcbiAgICBcIkJyZXRvblwiLFxuICAgIFwiUmVteVwiLFxuICAgIFwiU2NobmVpZGVyXCIsXG4gICAgXCJQZXJyb3RcIixcbiAgICBcIkd1eW90XCIsXG4gICAgXCJCYXJyZVwiLFxuICAgIFwiTWFydHlcIixcbiAgICBcIkNvdXNpblwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIk1cIixcbiAgICBcIk1tZVwiLFxuICAgIFwiTWxsZVwiLFxuICAgIFwiRHJcIixcbiAgICBcIlByb2ZcIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzZXVyXCIsXG4gICAgICBcIkV4ZWN1dGlmXCIsXG4gICAgICBcIk1hbmFnZXJcIixcbiAgICAgIFwiSW5nZW5pZXVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RlXCIsXG4gICAgICBcIkRpcmVjdGV1clwiLFxuICAgICAgXCJDb29yZGluYXRldXJcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRldXJcIixcbiAgICAgIFwiQXJjaGl0ZWN0ZVwiLFxuICAgICAgXCJBbmFseXN0ZVwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJUZWNobmljaWVuXCIsXG4gICAgICBcIkRldmVsb3BwZXVyXCIsXG4gICAgICBcIlByb2R1Y3RldXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiU3RhZ2lhaXJlXCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2xhc3RfbmFtZX0gI3tmaXJzdF9uYW1lfVwiXG4gIF1cbn07XG5mci5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwMSMjIyMjIyMjXCIsXG4gICAgXCIwMiMjIyMjIyMjXCIsXG4gICAgXCIwMyMjIyMjIyMjXCIsXG4gICAgXCIwNCMjIyMjIyMjXCIsXG4gICAgXCIwNSMjIyMjIyMjXCIsXG4gICAgXCIwNiMjIyMjIyMjXCIsXG4gICAgXCIwNyMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMSMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMiMjIyMjIyMjXCIsXG4gICAgXCIrMzMgMyMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNCMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNSMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNiMjIyMjIyMjXCIsXG4gICAgXCIrMzMgNyMjIyMjIyMjXCJcbiAgXVxufTtcbiIsInZhciBpdCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGl0O1xuaXQudGl0bGUgPSBcIkl0YWxpYW5cIjtcbml0LmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiU2FuXCIsXG4gICAgXCJCb3Jnb1wiLFxuICAgIFwiU2VzdG9cIixcbiAgICBcIlF1YXJ0b1wiLFxuICAgIFwiU2V0dGltb1wiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiYSBtYXJlXCIsXG4gICAgXCJsaWRvXCIsXG4gICAgXCJsaWd1cmVcIixcbiAgICBcImRlbCBmcml1bGlcIixcbiAgICBcInNhbGVudGlub1wiLFxuICAgIFwiY2FsYWJyb1wiLFxuICAgIFwidmVuZXRvXCIsXG4gICAgXCJuZWxsJ2VtaWxpYVwiLFxuICAgIFwidW1icm9cIixcbiAgICBcImxhemlhbGVcIixcbiAgICBcInRlcm1lXCIsXG4gICAgXCJzYXJkb1wiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWxiYW5pYVwiLFxuICAgIFwiQWxnZXJpYVwiLFxuICAgIFwiQW1lcmljYW4gU2Ftb2FcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGFydGlkZSAodGVycml0b3JpIGEgc3VkIGRlbCA2MMKwIHBhcmFsbGVsbylcIixcbiAgICBcIkFudGlndWEgZSBCYXJidWRhXCIsXG4gICAgXCJBcmdlbnRpbmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0cmFsaWFcIixcbiAgICBcIkF1c3RyaWFcIixcbiAgICBcIkF6ZXJiYWlqYW5cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhaHJhaW5cIixcbiAgICBcIkJhbmdsYWRlc2hcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCaWVsb3J1c3NpYVwiLFxuICAgIFwiQmVsZ2lvXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbGl2aWFcIixcbiAgICBcIkJvc25pYSBlIEhlcnplZ292aW5hXCIsXG4gICAgXCJCb3Rzd2FuYVwiLFxuICAgIFwiQm91dmV0IElzbGFuZCAoQm91dmV0b3lhKVwiLFxuICAgIFwiQnJhc2lsZVwiLFxuICAgIFwiVGVycml0b3JpbyBkZWxsJ2FyY2lwZWxhZ28gaW5kaWFub1wiLFxuICAgIFwiSXNvbGUgVmVyZ2luaSBCcml0YW5uaWNoZVwiLFxuICAgIFwiQnJ1bmVpIERhcnVzc2FsYW1cIixcbiAgICBcIkJ1bGdhcmlhXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkNhbWJvZ2lhXCIsXG4gICAgXCJDYW1lcm9vblwiLFxuICAgIFwiQ2FuYWRhXCIsXG4gICAgXCJDYXBvIFZlcmRlXCIsXG4gICAgXCJJc29sZSBDYXltYW5cIixcbiAgICBcIlJlcHViYmxpY2EgQ2VudHJhbGUgQWZyaWNhbmFcIixcbiAgICBcIkNoYWRcIixcbiAgICBcIkNpbGVcIixcbiAgICBcIkNpbmFcIixcbiAgICBcIklzb2xhIGRpIFBhc3F1YVwiLFxuICAgIFwiSXNvbGEgZGkgQ29jb3MgKEtlZWxpbmcpXCIsXG4gICAgXCJDb2xvbWJpYVwiLFxuICAgIFwiQ29tb3Jvc1wiLFxuICAgIFwiQ29uZ29cIixcbiAgICBcIklzb2xlIENvb2tcIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkNvc3RhIGQnQXZvcmlvXCIsXG4gICAgXCJDcm9hemlhXCIsXG4gICAgXCJDdWJhXCIsXG4gICAgXCJDaXByb1wiLFxuICAgIFwiUmVwdWJibGljYSBDZWNhXCIsXG4gICAgXCJEYW5pbWFyY2FcIixcbiAgICBcIkdpYnV0aVwiLFxuICAgIFwiUmVwdWJibGljYSBEb21pbmljYW5hXCIsXG4gICAgXCJFcXVhZG9yXCIsXG4gICAgXCJFZ2l0dG9cIixcbiAgICBcIkVsIFNhbHZhZG9yXCIsXG4gICAgXCJHdWluZWEgRXF1YXRvcmlhbGVcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdG9uaWFcIixcbiAgICBcIkV0aW9waWFcIixcbiAgICBcIklzb2xlIEZhcm9lXCIsXG4gICAgXCJJc29sZSBGYWxrbGFuZCAoTWFsdmluYXMpXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaW5sYW5kaWFcIixcbiAgICBcIkZyYW5jaWFcIixcbiAgICBcIkd1eWFuYSBGcmFuY2VzZVwiLFxuICAgIFwiUG9saW5lc2lhIEZyYW5jZXNlXCIsXG4gICAgXCJUZXJyaXRvcmkgRnJhbmNlc2kgZGVsIHN1ZFwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiR2VybWFuaWFcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaWJpbHRlcnJhXCIsXG4gICAgXCJHcmVjaWFcIixcbiAgICBcIkdyb2VubGFuZGlhXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHdWFkYWx1cGFcIixcbiAgICBcIkd1YW1cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3Vlcm5zZXlcIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXG4gICAgXCJDaXR0w6AgZGVsIFZhdGljYW5vXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZyBLb25nXCIsXG4gICAgXCJVbmdoZXJpYVwiLFxuICAgIFwiSXNsYW5kYVwiLFxuICAgIFwiSW5kaWFcIixcbiAgICBcIkluZG9uZXNpYVwiLFxuICAgIFwiSXJhblwiLFxuICAgIFwiSXJhcVwiLFxuICAgIFwiSXJsYW5kYVwiLFxuICAgIFwiSXNvbGEgZGkgTWFuXCIsXG4gICAgXCJJc3JhZWxlXCIsXG4gICAgXCJJdGFsaWFcIixcbiAgICBcIkdpYW1haWNhXCIsXG4gICAgXCJHaWFwcG9uZVwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJHaW9yZGFuaWFcIixcbiAgICBcIkthemFraHN0YW5cIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJLaXJpYmF0aVwiLFxuICAgIFwiS29yZWFcIixcbiAgICBcIkt1d2FpdFwiLFxuICAgIFwiUmVwdWJsaWNjYSBLaXJnaXphXCIsXG4gICAgXCJSZXB1YmJsaWNhIGRlbCBMYW9zXCIsXG4gICAgXCJMYXR2aWFcIixcbiAgICBcIkxpYmFub1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGlieWFuIEFyYWIgSmFtYWhpcml5YVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0dWFuaWFcIixcbiAgICBcIkx1c3NlbWJ1cmdvXCIsXG4gICAgXCJNYWNhb1wiLFxuICAgIFwiTWFjZWRvbmlhXCIsXG4gICAgXCJNYWRhZ2FzY2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGVzaWFcIixcbiAgICBcIk1hbGRpdmVcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJJc29sZSBNYXJzaGFsbFwiLFxuICAgIFwiTWFydGluaWNhXCIsXG4gICAgXCJNYXVyaXRhbmlhXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1heW90dGVcIixcbiAgICBcIk1lc3NpY29cIixcbiAgICBcIk1pY3JvbmVzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIlByaW5jaXBhdG8gZGkgTW9uYWNvXCIsXG4gICAgXCJNb25nb2xpYVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTWFyb2Njb1wiLFxuICAgIFwiTW96YW1iaWNvXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkFudGlsbGUgT2xhbmRlc2lcIixcbiAgICBcIk9sYW5kYVwiLFxuICAgIFwiTnVvdmEgQ2FsZWRvbmlhXCIsXG4gICAgXCJOdW92YSBaZWxhbmRhXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJJc29sZSBOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcbiAgICBcIk5vcnZlZ2lhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbGVzdGluYVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXB1YSBOdW92YSBHdWluZWFcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJGaWxpcHBpbmVcIixcbiAgICBcIlBpdGNhaXJuIElzbGFuZHNcIixcbiAgICBcIlBvbG9uaWFcIixcbiAgICBcIlBvcnRvZ2FsbG9cIixcbiAgICBcIlBvcnRvIFJpY29cIixcbiAgICBcIlFhdGFyXCIsXG4gICAgXCJSZXVuaW9uXCIsXG4gICAgXCJSb21hbmlhXCIsXG4gICAgXCJSdXNzaWFcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiU2FuIEJhcnRvbG9tZW9cIixcbiAgICBcIlNhbnQnRWxlbmFcIixcbiAgICBcIlNhaW50IEtpdHRzIGFuZCBOZXZpc1wiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIlNhaW50IE1hcnRpblwiLFxuICAgIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW8gVG9tZSBhbmQgUHJpbmNpcGVcIixcbiAgICBcIkFyYWJpYSBTYXVkaXRhXCIsXG4gICAgXCJTZW5lZ2FsXCIsXG4gICAgXCJTZXJiaWFcIixcbiAgICBcIlNleWNoZWxsZXNcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTbG92ZW5pYVwiLFxuICAgIFwiSXNvbGUgU29sb21vblwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU3VkIEFmcmljYVwiLFxuICAgIFwiR2VvcmdpYSBkZWwgc3VkIGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgIFwiU3BhZ25hXCIsXG4gICAgXCJTcmkgTGFua2FcIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kc1wiLFxuICAgIFwiU3dhemlsYW5kXCIsXG4gICAgXCJTdmV6aWFcIixcbiAgICBcIlN2aXp6ZXJhXCIsXG4gICAgXCJTaXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppa2lzdGFuXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGFpbGFuZGlhXCIsXG4gICAgXCJUaW1vci1MZXN0ZVwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiVG9rZWxhdVwiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIlRyaW5pZGFkIGUgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2lhXCIsXG4gICAgXCJUdXJjaGlhXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIklzb2xlIGRpIFR1cmtzIGFuZCBDYWljb3NcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3JhaW5hXCIsXG4gICAgXCJFbWlyYXRpIEFyYWJpIFVuaXRpXCIsXG4gICAgXCJSZWdubyBVbml0b1wiLFxuICAgIFwiU3RhdGkgVW5pdGkgZCdBbWVyaWNhXCIsXG4gICAgXCJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHNcIixcbiAgICBcIklzb2xlIFZlcmdpbmkgU3RhdHVuaXRlbnNpXCIsXG4gICAgXCJVcnVndWF5XCIsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJWZW5lenVlbGFcIixcbiAgICBcIlZpZXRuYW1cIixcbiAgICBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgXCJXZXN0ZXJuIFNhaGFyYVwiLFxuICAgIFwiWWVtZW5cIixcbiAgICBcIlphbWJpYVwiLFxuICAgIFwiWmltYmFid2VcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjIyNcIixcbiAgICBcIiMjXCIsXG4gICAgXCIjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIlBpYXp6YVwiLFxuICAgIFwiU3RyYWRhXCIsXG4gICAgXCJWaWFcIixcbiAgICBcIkJvcmdvXCIsXG4gICAgXCJDb250cmFkYVwiLFxuICAgIFwiUm90b25kYVwiLFxuICAgIFwiSW5jcm9jaW9cIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkFwcGFydGFtZW50byAjI1wiLFxuICAgIFwiUGlhbm8gI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkFncmlnZW50b1wiLFxuICAgIFwiQWxlc3NhbmRyaWFcIixcbiAgICBcIkFuY29uYVwiLFxuICAgIFwiQW9zdGFcIixcbiAgICBcIkFyZXp6b1wiLFxuICAgIFwiQXNjb2xpIFBpY2Vub1wiLFxuICAgIFwiQXN0aVwiLFxuICAgIFwiQXZlbGxpbm9cIixcbiAgICBcIkJhcmlcIixcbiAgICBcIkJhcmxldHRhLUFuZHJpYS1UcmFuaVwiLFxuICAgIFwiQmVsbHVub1wiLFxuICAgIFwiQmVuZXZlbnRvXCIsXG4gICAgXCJCZXJnYW1vXCIsXG4gICAgXCJCaWVsbGFcIixcbiAgICBcIkJvbG9nbmFcIixcbiAgICBcIkJvbHphbm9cIixcbiAgICBcIkJyZXNjaWFcIixcbiAgICBcIkJyaW5kaXNpXCIsXG4gICAgXCJDYWdsaWFyaVwiLFxuICAgIFwiQ2FsdGFuaXNzZXR0YVwiLFxuICAgIFwiQ2FtcG9iYXNzb1wiLFxuICAgIFwiQ2FyYm9uaWEtSWdsZXNpYXNcIixcbiAgICBcIkNhc2VydGFcIixcbiAgICBcIkNhdGFuaWFcIixcbiAgICBcIkNhdGFuemFyb1wiLFxuICAgIFwiQ2hpZXRpXCIsXG4gICAgXCJDb21vXCIsXG4gICAgXCJDb3NlbnphXCIsXG4gICAgXCJDcmVtb25hXCIsXG4gICAgXCJDcm90b25lXCIsXG4gICAgXCJDdW5lb1wiLFxuICAgIFwiRW5uYVwiLFxuICAgIFwiRmVybW9cIixcbiAgICBcIkZlcnJhcmFcIixcbiAgICBcIkZpcmVuemVcIixcbiAgICBcIkZvZ2dpYVwiLFxuICAgIFwiRm9ybMOsLUNlc2VuYVwiLFxuICAgIFwiRnJvc2lub25lXCIsXG4gICAgXCJHZW5vdmFcIixcbiAgICBcIkdvcml6aWFcIixcbiAgICBcIkdyb3NzZXRvXCIsXG4gICAgXCJJbXBlcmlhXCIsXG4gICAgXCJJc2VybmlhXCIsXG4gICAgXCJMYSBTcGV6aWFcIixcbiAgICBcIkwnQXF1aWxhXCIsXG4gICAgXCJMYXRpbmFcIixcbiAgICBcIkxlY2NlXCIsXG4gICAgXCJMZWNjb1wiLFxuICAgIFwiTGl2b3Jub1wiLFxuICAgIFwiTG9kaVwiLFxuICAgIFwiTHVjY2FcIixcbiAgICBcIk1hY2VyYXRhXCIsXG4gICAgXCJNYW50b3ZhXCIsXG4gICAgXCJNYXNzYS1DYXJyYXJhXCIsXG4gICAgXCJNYXRlcmFcIixcbiAgICBcIk1lc3NpbmFcIixcbiAgICBcIk1pbGFub1wiLFxuICAgIFwiTW9kZW5hXCIsXG4gICAgXCJNb256YSBlIGRlbGxhIEJyaWFuemFcIixcbiAgICBcIk5hcG9saVwiLFxuICAgIFwiTm92YXJhXCIsXG4gICAgXCJOdW9yb1wiLFxuICAgIFwiT2xiaWEtVGVtcGlvXCIsXG4gICAgXCJPcmlzdGFub1wiLFxuICAgIFwiUGFkb3ZhXCIsXG4gICAgXCJQYWxlcm1vXCIsXG4gICAgXCJQYXJtYVwiLFxuICAgIFwiUGF2aWFcIixcbiAgICBcIlBlcnVnaWFcIixcbiAgICBcIlBlc2FybyBlIFVyYmlub1wiLFxuICAgIFwiUGVzY2FyYVwiLFxuICAgIFwiUGlhY2VuemFcIixcbiAgICBcIlBpc2FcIixcbiAgICBcIlBpc3RvaWFcIixcbiAgICBcIlBvcmRlbm9uZVwiLFxuICAgIFwiUG90ZW56YVwiLFxuICAgIFwiUHJhdG9cIixcbiAgICBcIlJhZ3VzYVwiLFxuICAgIFwiUmF2ZW5uYVwiLFxuICAgIFwiUmVnZ2lvIENhbGFicmlhXCIsXG4gICAgXCJSZWdnaW8gRW1pbGlhXCIsXG4gICAgXCJSaWV0aVwiLFxuICAgIFwiUmltaW5pXCIsXG4gICAgXCJSb21hXCIsXG4gICAgXCJSb3ZpZ29cIixcbiAgICBcIlNhbGVybm9cIixcbiAgICBcIk1lZGlvIENhbXBpZGFub1wiLFxuICAgIFwiU2Fzc2FyaVwiLFxuICAgIFwiU2F2b25hXCIsXG4gICAgXCJTaWVuYVwiLFxuICAgIFwiU2lyYWN1c2FcIixcbiAgICBcIlNvbmRyaW9cIixcbiAgICBcIlRhcmFudG9cIixcbiAgICBcIlRlcmFtb1wiLFxuICAgIFwiVGVybmlcIixcbiAgICBcIlRvcmlub1wiLFxuICAgIFwiT2dsaWFzdHJhXCIsXG4gICAgXCJUcmFwYW5pXCIsXG4gICAgXCJUcmVudG9cIixcbiAgICBcIlRyZXZpc29cIixcbiAgICBcIlRyaWVzdGVcIixcbiAgICBcIlVkaW5lXCIsXG4gICAgXCJWYXJlc2VcIixcbiAgICBcIlZlbmV6aWFcIixcbiAgICBcIlZlcmJhbm8tQ3VzaW8tT3Nzb2xhXCIsXG4gICAgXCJWZXJjZWxsaVwiLFxuICAgIFwiVmVyb25hXCIsXG4gICAgXCJWaWJvIFZhbGVudGlhXCIsXG4gICAgXCJWaWNlbnphXCIsXG4gICAgXCJWaXRlcmJvXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIkFHXCIsXG4gICAgXCJBTFwiLFxuICAgIFwiQU5cIixcbiAgICBcIkFPXCIsXG4gICAgXCJBUlwiLFxuICAgIFwiQVBcIixcbiAgICBcIkFUXCIsXG4gICAgXCJBVlwiLFxuICAgIFwiQkFcIixcbiAgICBcIkJUXCIsXG4gICAgXCJCTFwiLFxuICAgIFwiQk5cIixcbiAgICBcIkJHXCIsXG4gICAgXCJCSVwiLFxuICAgIFwiQk9cIixcbiAgICBcIkJaXCIsXG4gICAgXCJCU1wiLFxuICAgIFwiQlJcIixcbiAgICBcIkNBXCIsXG4gICAgXCJDTFwiLFxuICAgIFwiQ0JcIixcbiAgICBcIkNJXCIsXG4gICAgXCJDRVwiLFxuICAgIFwiQ1RcIixcbiAgICBcIkNaXCIsXG4gICAgXCJDSFwiLFxuICAgIFwiQ09cIixcbiAgICBcIkNTXCIsXG4gICAgXCJDUlwiLFxuICAgIFwiS1JcIixcbiAgICBcIkNOXCIsXG4gICAgXCJFTlwiLFxuICAgIFwiRk1cIixcbiAgICBcIkZFXCIsXG4gICAgXCJGSVwiLFxuICAgIFwiRkdcIixcbiAgICBcIkZDXCIsXG4gICAgXCJGUlwiLFxuICAgIFwiR0VcIixcbiAgICBcIkdPXCIsXG4gICAgXCJHUlwiLFxuICAgIFwiSU1cIixcbiAgICBcIklTXCIsXG4gICAgXCJTUFwiLFxuICAgIFwiQVFcIixcbiAgICBcIkxUXCIsXG4gICAgXCJMRVwiLFxuICAgIFwiTENcIixcbiAgICBcIkxJXCIsXG4gICAgXCJMT1wiLFxuICAgIFwiTFVcIixcbiAgICBcIk1DXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiTVNcIixcbiAgICBcIk1UXCIsXG4gICAgXCJNRVwiLFxuICAgIFwiTUlcIixcbiAgICBcIk1PXCIsXG4gICAgXCJNQlwiLFxuICAgIFwiTkFcIixcbiAgICBcIk5PXCIsXG4gICAgXCJOVVwiLFxuICAgIFwiT1RcIixcbiAgICBcIk9SXCIsXG4gICAgXCJQRFwiLFxuICAgIFwiUEFcIixcbiAgICBcIlBSXCIsXG4gICAgXCJQVlwiLFxuICAgIFwiUEdcIixcbiAgICBcIlBVXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUENcIixcbiAgICBcIlBJXCIsXG4gICAgXCJQVFwiLFxuICAgIFwiUE5cIixcbiAgICBcIlBaXCIsXG4gICAgXCJQT1wiLFxuICAgIFwiUkdcIixcbiAgICBcIlJBXCIsXG4gICAgXCJSQ1wiLFxuICAgIFwiUkVcIixcbiAgICBcIlJJXCIsXG4gICAgXCJSTlwiLFxuICAgIFwiUk1cIixcbiAgICBcIlJPXCIsXG4gICAgXCJTQVwiLFxuICAgIFwiVlNcIixcbiAgICBcIlNTXCIsXG4gICAgXCJTVlwiLFxuICAgIFwiU0lcIixcbiAgICBcIlNSXCIsXG4gICAgXCJTT1wiLFxuICAgIFwiVEFcIixcbiAgICBcIlRFXCIsXG4gICAgXCJUUlwiLFxuICAgIFwiVE9cIixcbiAgICBcIk9HXCIsXG4gICAgXCJUUFwiLFxuICAgIFwiVE5cIixcbiAgICBcIlRWXCIsXG4gICAgXCJUU1wiLFxuICAgIFwiVURcIixcbiAgICBcIlZBXCIsXG4gICAgXCJWRVwiLFxuICAgIFwiVkJcIixcbiAgICBcIlZDXCIsXG4gICAgXCJWUlwiLFxuICAgIFwiVlZcIixcbiAgICBcIlZJXCIsXG4gICAgXCJWVFwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0gI3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9ICN7TmFtZS5maXJzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9ICN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfc3VmZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9ICN7YnVpbGRpbmdfbnVtYmVyfVwiLFxuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9LCAje3NlY29uZGFyeV9hZGRyZXNzfVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIkl0YWxpYVwiXG4gIF1cbn07XG5pdC5jb21wYW55ID0ge1xuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJTUEFcIixcbiAgICBcImUgZmlnbGlcIixcbiAgICBcIkdyb3VwXCIsXG4gICAgXCJzLnIubC5cIlxuICBdLFxuICBcIm5vdW5cIjogW1xuICAgICAgXCJBYmlsaXTDoFwiLFxuICAgICAgXCJBY2Nlc3NcIixcbiAgICAgIFwiQWRhdHRhdG9yZVwiLFxuICAgICAgXCJBbGdvcml0bW9cIixcbiAgICAgIFwiQWxsZWFuemFcIixcbiAgICAgIFwiQW5hbGl6emF0b3JlXCIsXG4gICAgICBcIkFwcGxpY2F6aW9uZVwiLFxuICAgICAgXCJBcHByb2NjaW9cIixcbiAgICAgIFwiQXJjaGl0ZXR0dXJhXCIsXG4gICAgICBcIkFyY2hpdmlvXCIsXG4gICAgICBcIkludGVsbGlnZW56YSBhcnRpZmljaWFsZVwiLFxuICAgICAgXCJBcnJheVwiLFxuICAgICAgXCJBdHRpdHVkaW5lXCIsXG4gICAgICBcIkJlbmNobWFya1wiLFxuICAgICAgXCJDYXBhY2l0w6BcIixcbiAgICAgIFwiU2ZpZGFcIixcbiAgICAgIFwiQ2lyY3VpdG9cIixcbiAgICAgIFwiQ29sbGFib3JhemlvbmVcIixcbiAgICAgIFwiQ29tcGxlc3NpdMOgXCIsXG4gICAgICBcIkNvbmNldHRvXCIsXG4gICAgICBcIkNvbmdsb21lcmF0b1wiLFxuICAgICAgXCJDb250aW5nZW56YVwiLFxuICAgICAgXCJDb3JlXCIsXG4gICAgICBcIkRhdGFiYXNlXCIsXG4gICAgICBcIkRhdGEtd2FyZWhvdXNlXCIsXG4gICAgICBcIkRlZmluaXppb25lXCIsXG4gICAgICBcIkVtdWxhemlvbmVcIixcbiAgICAgIFwiQ29kaWZpY2FcIixcbiAgICAgIFwiQ3JpcHRhemlvbmVcIixcbiAgICAgIFwiRmlybXdhcmVcIixcbiAgICAgIFwiRmxlc3NpYmlsaXTDoFwiLFxuICAgICAgXCJQcmV2aXNpb25lXCIsXG4gICAgICBcIkZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJGdW56aW9uZVwiLFxuICAgICAgXCJGdW56aW9uYWxpdMOgXCIsXG4gICAgICBcIkludGVyZmFjY2lhIGdyYWZpY2FcIixcbiAgICAgIFwiSGFyZHdhcmVcIixcbiAgICAgIFwiSGVscC1kZXNrXCIsXG4gICAgICBcIkdlcmFyY2hpYVwiLFxuICAgICAgXCJIdWJcIixcbiAgICAgIFwiSW1wbGVtZW50YXppb25lXCIsXG4gICAgICBcIkluZnJhc3RydXR0dXJhXCIsXG4gICAgICBcIkluaXppYXRpdmFcIixcbiAgICAgIFwiSW5zdGFsbGF6aW9uZVwiLFxuICAgICAgXCJTZXQgZGkgaXN0cnV6aW9uaVwiLFxuICAgICAgXCJJbnRlcmZhY2NpYVwiLFxuICAgICAgXCJTb2x1emlvbmUgaW50ZXJuZXRcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29ub3NjZW56YSBiYXNlXCIsXG4gICAgICBcIk1hdHJpY2lcIixcbiAgICAgIFwiTWF0cmljZVwiLFxuICAgICAgXCJNZXRvZG9sb2dpYVwiLFxuICAgICAgXCJNaWRkbGV3YXJlXCIsXG4gICAgICBcIk1pZ3JhemlvbmVcIixcbiAgICAgIFwiTW9kZWxsb1wiLFxuICAgICAgXCJNb2RlcmF6aW9uZVwiLFxuICAgICAgXCJNb25pdG9yYWdnaW9cIixcbiAgICAgIFwiTW9yYXRvcmlhXCIsXG4gICAgICBcIlJldGVcIixcbiAgICAgIFwiQXJjaGl0ZXR0dXJhIGFwZXJ0YVwiLFxuICAgICAgXCJTaXN0ZW1hIGFwZXJ0b1wiLFxuICAgICAgXCJPcmNoZXN0cmF6aW9uZVwiLFxuICAgICAgXCJQYXJhZGlnbWFcIixcbiAgICAgIFwiUGFyYWxsZWxpc21vXCIsXG4gICAgICBcIlBvbGljeVwiLFxuICAgICAgXCJQb3J0YWxlXCIsXG4gICAgICBcIlN0cnV0dHVyYSBkaSBwcmV6em9cIixcbiAgICAgIFwiUHJvZG90dG9cIixcbiAgICAgIFwiUHJvZHV0dGl2aXTDoFwiLFxuICAgICAgXCJQcm9nZXR0b1wiLFxuICAgICAgXCJQcm9pZXppb25lXCIsXG4gICAgICBcIlByb3RvY29sbG9cIixcbiAgICAgIFwiU2Vydml6aW8gY2xpZW50aVwiLFxuICAgICAgXCJTb2Z0d2FyZVwiLFxuICAgICAgXCJTb2x1emlvbmVcIixcbiAgICAgIFwiU3RhbmRhcmRpenphemlvbmVcIixcbiAgICAgIFwiU3RyYXRlZ2lhXCIsXG4gICAgICBcIlN0cnV0dHVyYVwiLFxuICAgICAgXCJTdWNjZXNzb1wiLFxuICAgICAgXCJTb3ZyYXN0cnV0dHVyYVwiLFxuICAgICAgXCJTdXBwb3J0b1wiLFxuICAgICAgXCJTaW5lcmdpYVwiLFxuICAgICAgXCJUYXNrLWZvcmNlXCIsXG4gICAgICBcIkZpbmVzdHJhIHRlbXBvcmFsZVwiLFxuICAgICAgXCJTdHJ1bWVudGlcIixcbiAgICAgIFwiVXRpbGl6emF6aW9uZVwiLFxuICAgICAgXCJTaXRvIHdlYlwiLFxuICAgICAgXCJGb3J6YSBsYXZvcm9cIlxuICAgIF0sXG4gICAgXCJkZXNjcmlwdG9yXCI6W1xuICAgICAgXCJhZGF0dGl2YVwiLFxuICAgICAgXCJhdmFuemF0YVwiLFxuICAgICAgXCJtaWdsaW9yYXRhXCIsXG4gICAgICBcImFzc2ltaWxhdGFcIixcbiAgICAgIFwiYXV0b21hdGl6emF0YVwiLFxuICAgICAgXCJiaWxhbmNpYXRhXCIsXG4gICAgICBcImNlbnRyYWxpenphdGFcIixcbiAgICAgIFwiY29tcGF0aWJpbGVcIixcbiAgICAgIFwiY29uZmlndXJhYmlsZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJkZWNlbnRyYWxpenphdGFcIixcbiAgICAgIFwiZGlnaXRhbGl6emF0YVwiLFxuICAgICAgXCJkaXN0cmlidWl0YVwiLFxuICAgICAgXCJwaWNjb2xhXCIsXG4gICAgICBcImVyZ29ub21pY2FcIixcbiAgICAgIFwiZXNjbHVzaXZhXCIsXG4gICAgICBcImVzcGFuc2FcIixcbiAgICAgIFwiZXN0ZXNhXCIsXG4gICAgICBcImNvbmZpZ3VyYWJpbGVcIixcbiAgICAgIFwiZm9uZGFtZW50YWxlXCIsXG4gICAgICBcIm9yaXp6b250YWxlXCIsXG4gICAgICBcImltcGxlbWVudGF0YVwiLFxuICAgICAgXCJpbm5vdmF0aXZhXCIsXG4gICAgICBcImludGVncmF0YVwiLFxuICAgICAgXCJpbnR1aXRpdmFcIixcbiAgICAgIFwiaW52ZXJzYVwiLFxuICAgICAgXCJnZXN0aXRhXCIsXG4gICAgICBcIm9iYmxpZ2F0b3JpYVwiLFxuICAgICAgXCJtb25pdG9yYXRhXCIsXG4gICAgICBcIm11bHRpLWNhbmFsZVwiLFxuICAgICAgXCJtdWx0aS1sYXRlcmFsZVwiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJvcGVyYXRpdmFcIixcbiAgICAgIFwib3R0aW1penphdGFcIixcbiAgICAgIFwib3JnYW5pY2FcIixcbiAgICAgIFwicGVyc2lzdGVudGVcIixcbiAgICAgIFwicG9sYXJpenphdGFcIixcbiAgICAgIFwicHJvYXR0aXZhXCIsXG4gICAgICBcInByb2dyYW1tYWJpbGVcIixcbiAgICAgIFwicHJvZ3Jlc3NpdmFcIixcbiAgICAgIFwicmVhdHRpdmFcIixcbiAgICAgIFwicmlhbGxpbmVhdGFcIixcbiAgICAgIFwicmljb250ZXN0dWFsaXp6YXRhXCIsXG4gICAgICBcInJpZG90dGFcIixcbiAgICAgIFwicm9idXN0YVwiLFxuICAgICAgXCJzaWN1cmFcIixcbiAgICAgIFwiY29uZGl2aXNpYmlsZVwiLFxuICAgICAgXCJzdGFuZC1hbG9uZVwiLFxuICAgICAgXCJzd2l0Y2hhYmlsZVwiLFxuICAgICAgXCJzaW5jcm9uaXp6YXRhXCIsXG4gICAgICBcInNpbmVyZ2ljYVwiLFxuICAgICAgXCJ0b3RhbGVcIixcbiAgICAgIFwidW5pdmVyc2FsZVwiLFxuICAgICAgXCJ1c2VyLWZyaWVuZGx5XCIsXG4gICAgICBcInZlcnNhdGlsZVwiLFxuICAgICAgXCJ2aXJ0dWFsZVwiLFxuICAgICAgXCJ2aXNpb25hcmlhXCJcbiAgICBdLFxuICAgIFwiYWRqZWN0aXZlXCI6XG4gICAgW1xuICAgICAgXCIyNCBvcmVcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJ0ZXJ6YSBnZW5lcmF6aW9uZVwiLFxuICAgICAgXCJxdWFydGEgZ2VuZXJhemlvbmVcIixcbiAgICAgIFwicXVpbnRhIGdlbmVyYXppb25lXCIsXG4gICAgICBcInNlc3RhIGdlbmVyYXppb25lXCIsXG4gICAgICBcImFzaW1tZXRyaWNhXCIsXG4gICAgICBcImFzaW5jcm9uYVwiLFxuICAgICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgICBcImJpLWRpcmV6aW9uYWxlXCIsXG4gICAgICBcImJpZm9yY2F0YVwiLFxuICAgICAgXCJib3R0b20tbGluZVwiLFxuICAgICAgXCJjb2VyZW50ZVwiLFxuICAgICAgXCJjb2VzaXZhXCIsXG4gICAgICBcImNvbXBvc2l0YVwiLFxuICAgICAgXCJzZW5zaWJpbGUgYWwgY29udGVzdG9cIixcbiAgICAgIFwiYmFzdGEgc3VsIGNvbnRlc3RvXCIsXG4gICAgICBcImJhc2F0YSBzdWwgY29udGVudXRvXCIsXG4gICAgICBcImRlZGljYXRhXCIsXG4gICAgICBcImRpZGF0dGljYVwiLFxuICAgICAgXCJkaXJlemlvbmFsZVwiLFxuICAgICAgXCJkaXNjcmV0YVwiLFxuICAgICAgXCJkaW5hbWljYVwiLFxuICAgICAgXCJlY28tY2VudHJpY2FcIixcbiAgICAgIFwiZXNlY3V0aXZhXCIsXG4gICAgICBcImVzcGxpY2l0YVwiLFxuICAgICAgXCJmdWxsLXJhbmdlXCIsXG4gICAgICBcImdsb2JhbGVcIixcbiAgICAgIFwiZXVyaXN0aWNhXCIsXG4gICAgICBcImFsdG8gbGl2ZWxsb1wiLFxuICAgICAgXCJvbGlzdGljYVwiLFxuICAgICAgXCJvbW9nZW5lYVwiLFxuICAgICAgXCJpYnJpZGFcIixcbiAgICAgIFwiaW1wYXR0YW50ZVwiLFxuICAgICAgXCJpbmNyZW1lbnRhbGVcIixcbiAgICAgIFwiaW50YW5naWJpbGVcIixcbiAgICAgIFwiaW50ZXJhdHRpdmFcIixcbiAgICAgIFwiaW50ZXJtZWRpYXJpYVwiLFxuICAgICAgXCJsb2NhbGVcIixcbiAgICAgIFwibG9naXN0aWNhXCIsXG4gICAgICBcIm1hc3NpbWl6emF0YVwiLFxuICAgICAgXCJtZXRvZGljYVwiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcIm1vYmlsZVwiLFxuICAgICAgXCJtb2R1bGFyZVwiLFxuICAgICAgXCJtb3RpdmF6aW9uYWxlXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGktdGFza2luZ1wiLFxuICAgICAgXCJuYXppb25hbGVcIixcbiAgICAgIFwibmV1dHJhbGVcIixcbiAgICAgIFwibmV4dGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvdHRpbWFcIixcbiAgICAgIFwib3R0aW1penphbnRlXCIsXG4gICAgICBcInJhZGljYWxlXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJyZWNpcHJvY2FcIixcbiAgICAgIFwicmVnaW9uYWxlXCIsXG4gICAgICBcInJlc3BvbnNpdmFcIixcbiAgICAgIFwic2NhbGFiaWxlXCIsXG4gICAgICBcInNlY29uZGFyaWFcIixcbiAgICAgIFwic3RhYmlsZVwiLFxuICAgICAgXCJzdGF0aWNhXCIsXG4gICAgICBcInNpc3RlbWF0aWNhXCIsXG4gICAgICBcInNpc3RlbWljYVwiLFxuICAgICAgXCJ0YW5naWJpbGVcIixcbiAgICAgIFwidGVyemlhcmlhXCIsXG4gICAgICBcInVuaWZvcm1lXCIsXG4gICAgICBcInZhbG9yZSBhZ2dpdW50b1wiXG4gIF0sXG4gIFwiYnNfbm91blwiOiBbXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJjb211bml0w6BcIixcbiAgICAgIFwiUk9JXCIsXG4gICAgICBcInNvbHV6aW9uaVwiLFxuICAgICAgXCJlLXNlcnZpY2VzXCIsXG4gICAgICBcIm5pY2NoaWVcIixcbiAgICAgIFwidGVjbm9sb2dpZVwiLFxuICAgICAgXCJjb250ZW51dGlcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW56ZVwiLFxuICAgICAgXCJyZWxhemlvbmlcIixcbiAgICAgIFwiYXJjaGl0ZXR0dXJlXCIsXG4gICAgICBcImludGVyZmFjY2VcIixcbiAgICAgIFwibWVyY2F0aVwiLFxuICAgICAgXCJlLWNvbW1lcmNlXCIsXG4gICAgICBcInNpc3RlbWlcIixcbiAgICAgIFwibW9kZWxsaVwiLFxuICAgICAgXCJzY2hlbWlcIixcbiAgICAgIFwicmV0aVwiLFxuICAgICAgXCJhcHBsaWNhemlvbmlcIixcbiAgICAgIFwibWV0cmljaGVcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW56aW9uYWxpdMOgXCIsXG4gICAgICBcImVzcGVyaWVuemVcIixcbiAgICAgIFwid2Vic2VydmljZXNcIixcbiAgICAgIFwibWV0b2RvbG9naWVcIlxuICAgIF0sXG4gICAgXCJic192ZXJiXCI6XG4gICAgW1xuICAgICAgXCJpbXBsZW1lbnRhdGVcIixcbiAgICAgIFwidXRpbGl6em9cIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcIm90dGltYWxpXCIsXG4gICAgICBcImV2b2x1dGl2ZVwiLFxuICAgICAgXCJhYmlsaXRhdGVcIixcbiAgICAgIFwicmVpbnZlbnRhdGVcIixcbiAgICAgIFwiYWdncmVnYXRlXCIsXG4gICAgICBcIm1pZ2xpb3JhdGVcIixcbiAgICAgIFwiaW5jZW50aXZhdGVcIixcbiAgICAgIFwibW9uZXRpenphdGVcIixcbiAgICAgIFwic2luZXJnaXp6YXRlXCIsXG4gICAgICBcInN0cmF0ZWdpY2hlXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJtYXJjaGlcIixcbiAgICAgIFwiYWNjcmVzY2l0aXZlXCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzaW50ZXRpenphdGVcIixcbiAgICAgIFwic3BlZGl6aW9uaVwiLFxuICAgICAgXCJtYXNzaW1penphdGVcIixcbiAgICAgIFwiaW5ub3ZhemlvbmVcIixcbiAgICAgIFwiZ3VpZGFcIixcbiAgICAgIFwiZXN0ZW5zaW9uaVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXppb25hbGlcIixcbiAgICAgIFwibWF0cmljaVwiLFxuICAgICAgXCJyaWNvbnRlc3R1YWxpenphdGVcIlxuICAgIF0sXG4gICAgXCJic19hZGplY3RpdmVcIjpcbiAgICBbXG4gICAgICBcInZhbG9yZSBhZ2dpdW50b1wiLFxuICAgICAgXCJ2ZXJ0aWNhbGl6emF0ZVwiLFxuICAgICAgXCJwcm9hdHRpdmVcIixcbiAgICAgIFwiZm9ydGlcIixcbiAgICAgIFwicml2b2x1emlvbmFyaVwiLFxuICAgICAgXCJzY2FsYWJpbGlcIixcbiAgICAgIFwiaW5ub3ZhdGl2aVwiLFxuICAgICAgXCJpbnR1aXRpdmlcIixcbiAgICAgIFwic3RyYXRlZ2ljaVwiLFxuICAgICAgXCJlLWJ1c2luZXNzXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwiMjQvN1wiLFxuICAgICAgXCJnbG9iYWxpXCIsXG4gICAgICBcIkIyQlwiLFxuICAgICAgXCJCMkNcIixcbiAgICAgIFwiZ3JhbnVsYXJpXCIsXG4gICAgICBcInZpcnR1YWxpXCIsXG4gICAgICBcInZpcmFsaVwiLFxuICAgICAgXCJkaW5hbWljaGVcIixcbiAgICAgIFwibWFnbmV0aWNoZVwiLFxuICAgICAgXCJ3ZWJcIixcbiAgICAgIFwiaW50ZXJhdHRpdmVcIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50aVwiLFxuICAgICAgXCJmcm9udC1lbmRcIixcbiAgICAgIFwiZGlzdHJpYnV0aXZpXCIsXG4gICAgICBcImVzdGVuc2liaWxpXCIsXG4gICAgICBcIm1vbmRpYWxpXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcInNpbmVyZ2ljaGVcIixcbiAgICAgIFwib3V0LW9mLXRoZS1ib3hcIixcbiAgICAgIFwiZW50ZXJwcmlzZVwiLFxuICAgICAgXCJpbnRlZ3JhdGVcIixcbiAgICAgIFwiZGkgaW1wYXR0b1wiLFxuICAgICAgXCJ3aXJlbGVzc1wiLFxuICAgICAgXCJ0cmFzcGFyZW50aVwiLFxuICAgICAgXCJuZXh0LWdlbmVyYXRpb25cIixcbiAgICAgIFwiY3V0dGluZy1lZGdlXCIsXG4gICAgICBcInZpc2lvbmFyaVwiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwib2xpc3RpY2hlXCIsXG4gICAgICBcInJpY2NoZVwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IGUgI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbml0LmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCIsXG4gICAgXCJlbWFpbC5pdFwiLFxuICAgIFwibGliZXJvLml0XCIsXG4gICAgXCJ5YWhvby5pdFwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcImNvbVwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiLFxuICAgIFwiaXRcIixcbiAgICBcIml0XCIsXG4gICAgXCJpdFwiXG4gIF1cbn07XG5pdC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFraXJhXCIsXG4gICAgXCJBbGJlcnRvXCIsXG4gICAgXCJBbGVzc2FuZHJvXCIsXG4gICAgXCJBbGlnaGllcmlcIixcbiAgICBcIkFtZWRlb1wiLFxuICAgIFwiQW1vc1wiLFxuICAgIFwiQW5zZWxtb1wiLFxuICAgIFwiQW50b25pbm9cIixcbiAgICBcIkFyY2liYWxkb1wiLFxuICAgIFwiQXJtYW5kb1wiLFxuICAgIFwiQXJ0ZXNcIixcbiAgICBcIkF1ZGVuaWNvXCIsXG4gICAgXCJBdXNvbmlvXCIsXG4gICAgXCJCYWNjaGlzaW9cIixcbiAgICBcIkJhdHRpc3RhXCIsXG4gICAgXCJCZXJuYXJkb1wiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkNhaW9cIixcbiAgICBcIkNhcmxvXCIsXG4gICAgXCJDZWNjb1wiLFxuICAgIFwiQ2lyaW5vXCIsXG4gICAgXCJDbGVyb3NcIixcbiAgICBcIkNvc3RhbnRpbm9cIixcbiAgICBcIkRhbWlhbm9cIixcbiAgICBcIkRhbm55XCIsXG4gICAgXCJEYXZpZGVcIixcbiAgICBcIkRlbWlhblwiLFxuICAgIFwiRGltaXRyaVwiLFxuICAgIFwiRG9taW5nb1wiLFxuICAgIFwiRHlsYW5cIixcbiAgICBcIkVkaWxpb1wiLFxuICAgIFwiRWdpZGlvXCIsXG4gICAgXCJFbGlvXCIsXG4gICAgXCJFbWFudWVsXCIsXG4gICAgXCJFbnJpY29cIixcbiAgICBcIkVyY29sZVwiLFxuICAgIFwiRXJtZXNcIixcbiAgICBcIkV0aGFuXCIsXG4gICAgXCJFdXNlYmlvXCIsXG4gICAgXCJFdmFuZ2VsaXN0YVwiLFxuICAgIFwiRmFiaWFub1wiLFxuICAgIFwiRmVyZGluYW5kb1wiLFxuICAgIFwiRmlvcmVudGlub1wiLFxuICAgIFwiRmxhdmlvXCIsXG4gICAgXCJGdWx2aW9cIixcbiAgICBcIkdhYnJpZWxlXCIsXG4gICAgXCJHYXN0b25lXCIsXG4gICAgXCJHZXJtYW5vXCIsXG4gICAgXCJHaWFjaW50b1wiLFxuICAgIFwiR2lhbmFudG9uaW9cIixcbiAgICBcIkdpYW5sZW9uYXJkb1wiLFxuICAgIFwiR2lhbm1hcmNvXCIsXG4gICAgXCJHaWFucmljY2FyZG9cIixcbiAgICBcIkdpb2FjY2hpbm9cIixcbiAgICBcIkdpb3JkYW5vXCIsXG4gICAgXCJHaXVsaWFub1wiLFxuICAgIFwiR3Jhemlhbm9cIixcbiAgICBcIkd1aWRvXCIsXG4gICAgXCJIYXJyeVwiLFxuICAgIFwiSWFjb3BvXCIsXG4gICAgXCJJbGFyaW9cIixcbiAgICBcIklvbmVcIixcbiAgICBcIkl0YWxvXCIsXG4gICAgXCJKYWNrXCIsXG4gICAgXCJKYXJpXCIsXG4gICAgXCJKb2V5XCIsXG4gICAgXCJKb3NlcGhcIixcbiAgICBcIkthaVwiLFxuICAgIFwiS29jaXNzXCIsXG4gICAgXCJMYWVydGVcIixcbiAgICBcIkxhdXJvXCIsXG4gICAgXCJMZW9uYXJkb1wiLFxuICAgIFwiTGlib3Jpb1wiLFxuICAgIFwiTG9yZW56b1wiLFxuICAgIFwiTHVkb3ZpY29cIixcbiAgICBcIk1hZ2dpb3JlXCIsXG4gICAgXCJNYW51ZWxlXCIsXG4gICAgXCJNYXJpYW5vXCIsXG4gICAgXCJNYXJ2aW5cIixcbiAgICBcIk1hdHRlb1wiLFxuICAgIFwiTWF1cm9cIixcbiAgICBcIk1pY2hhZWxcIixcbiAgICBcIk1pcmNvXCIsXG4gICAgXCJNb2Rlc3RvXCIsXG4gICAgXCJNdXppb1wiLFxuICAgIFwiTmFiaWxcIixcbiAgICBcIk5hdGhhblwiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiT2Rpbm9cIixcbiAgICBcIk9sb1wiLFxuICAgIFwiT3Jlc3RlXCIsXG4gICAgXCJPc2VhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGF0cml6aW9cIixcbiAgICBcIlBpZXJlcm1pbmlvXCIsXG4gICAgXCJQaWVyZnJhbmNlc2NvXCIsXG4gICAgXCJQaWVyc2lsdmlvXCIsXG4gICAgXCJQcmlhbW9cIixcbiAgICBcIlF1YXJ0b1wiLFxuICAgIFwiUXVpcmlub1wiLFxuICAgIFwiUmFkYW1lc1wiLFxuICAgIFwiUmFuaWVyb1wiLFxuICAgIFwiUmVuYXRvXCIsXG4gICAgXCJSb2Njb1wiLFxuICAgIFwiUm9tZW9cIixcbiAgICBcIlJvc2FsaW5vXCIsXG4gICAgXCJSdWR5XCIsXG4gICAgXCJTYWJhdGlub1wiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYW50b1wiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZXJzZVwiLFxuICAgIFwiU2lsdmFub1wiLFxuICAgIFwiU2lyaW9cIixcbiAgICBcIlRhbmNyZWRpXCIsXG4gICAgXCJUZXJ6b1wiLFxuICAgIFwiVGltb3Rlb1wiLFxuICAgIFwiVG9sb21lb1wiLFxuICAgIFwiVHJldmlzXCIsXG4gICAgXCJVYmFsZG9cIixcbiAgICBcIlVscmljb1wiLFxuICAgIFwiVmFsZG9cIixcbiAgICBcIk5lcmlcIixcbiAgICBcIlZpbmljaW9cIixcbiAgICBcIldhbHRlclwiLFxuICAgIFwiWGF2aWVyXCIsXG4gICAgXCJZYWdvXCIsXG4gICAgXCJaYWNjYXJpYVwiLFxuICAgIFwiQWJyYW1vXCIsXG4gICAgXCJBZHJpYW5vXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJpbm9cIixcbiAgICBcIkFsZXNzaW9cIixcbiAgICBcIkFsaWdoaWVyb1wiLFxuICAgIFwiQW1lcmlnb1wiLFxuICAgIFwiQW5hc3Rhc2lvXCIsXG4gICAgXCJBbnRpbW9cIixcbiAgICBcIkFudG9uaW9cIixcbiAgICBcIkFyZHVpbm9cIixcbiAgICBcIkFyb2xkb1wiLFxuICAgIFwiQXJ0dXJvXCIsXG4gICAgXCJBdWd1c3RvXCIsXG4gICAgXCJBdmlkZVwiLFxuICAgIFwiQmFsZGFzc2FycmVcIixcbiAgICBcIkJldHRpbm9cIixcbiAgICBcIkJvcnRvbG9cIixcbiAgICBcIkNhbGlnb2xhXCIsXG4gICAgXCJDYXJtZWxvXCIsXG4gICAgXCJDZWxlc3RlXCIsXG4gICAgXCJDaXJvXCIsXG4gICAgXCJDb3N0YW56b1wiLFxuICAgIFwiRGFudGVcIixcbiAgICBcIkRhbnRob25cIixcbiAgICBcIkRhdmlzXCIsXG4gICAgXCJEZW1pc1wiLFxuICAgIFwiRGluZG9cIixcbiAgICBcIkRvbWl6aWFub1wiLFxuICAgIFwiRWRpcG9cIixcbiAgICBcIkVnaXN0b1wiLFxuICAgIFwiRWxpemlhcmlvXCIsXG4gICAgXCJFbWlkaW9cIixcbiAgICBcIkVuem9cIixcbiAgICBcIkVyaWJlcnRvXCIsXG4gICAgXCJFcm1pbmlvXCIsXG4gICAgXCJFdHRvcmVcIixcbiAgICBcIkV1c3RhY2hpb1wiLFxuICAgIFwiRmFiaW9cIixcbiAgICBcIkZlcm5hbmRvXCIsXG4gICAgXCJGaW9yZW56b1wiLFxuICAgIFwiRm9sY29cIixcbiAgICBcIkZ1cmlvXCIsXG4gICAgXCJHYWV0YW5vXCIsXG4gICAgXCJHYXZpbm9cIixcbiAgICBcIkdlcmxhbmRvXCIsXG4gICAgXCJHaWFjb2JiZVwiLFxuICAgIFwiR2lhbmNhcmxvXCIsXG4gICAgXCJHaWFubWFyaWFcIixcbiAgICBcIkdpb2JiZVwiLFxuICAgIFwiR2lvcmdpb1wiLFxuICAgIFwiR2l1bGlvXCIsXG4gICAgXCJHcmVnb3Jpb1wiLFxuICAgIFwiSGVjdG9yXCIsXG4gICAgXCJJYW5cIixcbiAgICBcIklwcG9saXRvXCIsXG4gICAgXCJJdmFub1wiLFxuICAgIFwiSmFjb3BvXCIsXG4gICAgXCJKYXJub1wiLFxuICAgIFwiSm9hbm5lc1wiLFxuICAgIFwiSm9zaHVhXCIsXG4gICAgXCJLYXJpbVwiLFxuICAgIFwiS3Jpc1wiLFxuICAgIFwiTGFtYmVydG9cIixcbiAgICBcIkxhenphcm9cIixcbiAgICBcIkxlb25lXCIsXG4gICAgXCJMaW5vXCIsXG4gICAgXCJMb3Jpc1wiLFxuICAgIFwiTHVpZ2lcIixcbiAgICBcIk1hbmZyZWRpXCIsXG4gICAgXCJNYXJjb1wiLFxuICAgIFwiTWFyaW5vXCIsXG4gICAgXCJNYXJ6aW9cIixcbiAgICBcIk1hdHRpYVwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNaWNoZWxlXCIsXG4gICAgXCJNaXJrb1wiLFxuICAgIFwiTW9yZW5vXCIsXG4gICAgXCJOYWRpclwiLFxuICAgIFwiTmF6emFyZW5vXCIsXG4gICAgXCJOZXN0b3JlXCIsXG4gICAgXCJOaWNvXCIsXG4gICAgXCJOb2VsXCIsXG4gICAgXCJPZG9uZVwiLFxuICAgIFwiT21hclwiLFxuICAgIFwiT3JmZW9cIixcbiAgICBcIk9zdmFsZG9cIixcbiAgICBcIlBhY2lmaWNvXCIsXG4gICAgXCJQZXJpY2xlXCIsXG4gICAgXCJQaWV0cm9cIixcbiAgICBcIlByaW1vXCIsXG4gICAgXCJRdWFzaW1vZG9cIixcbiAgICBcIlJhZGlvXCIsXG4gICAgXCJSYW91bFwiLFxuICAgIFwiUmVuem9cIixcbiAgICBcIlJvZG9sZm9cIixcbiAgICBcIlJvbW9sb1wiLFxuICAgIFwiUm9zb2xpbm9cIixcbiAgICBcIlJ1Zm9cIixcbiAgICBcIlNhYmlub1wiLFxuICAgIFwiU2FuZHJvXCIsXG4gICAgXCJTYXNoYVwiLFxuICAgIFwiU2Vjb25kb1wiLFxuICAgIFwiU2VzdG9cIixcbiAgICBcIlNpbHZlcmlvXCIsXG4gICAgXCJTaXJvXCIsXG4gICAgXCJUYXppb1wiLFxuICAgIFwiVGVzZW9cIixcbiAgICBcIlRpbW90aHlcIixcbiAgICBcIlRvbW1hc29cIixcbiAgICBcIlRyaXN0YW5vXCIsXG4gICAgXCJVbWJlcnRvXCIsXG4gICAgXCJBcmllbFwiLFxuICAgIFwiQXJ0ZW1pZGVcIixcbiAgICBcIkFzc2lhXCIsXG4gICAgXCJBenVlXCIsXG4gICAgXCJCZW5lZGV0dGFcIixcbiAgICBcIkJpYmlhbmFcIixcbiAgICBcIkJyaWdpdHRhXCIsXG4gICAgXCJDYXJtZWxhXCIsXG4gICAgXCJDYXNzaW9wZWFcIixcbiAgICBcIkNlc2lkaWFcIixcbiAgICBcIkNpcmFcIixcbiAgICBcIkNsZWFcIixcbiAgICBcIkNsZW9wYXRyYVwiLFxuICAgIFwiQ2xvZG92ZWFcIixcbiAgICBcIkNvbmNldHRhXCIsXG4gICAgXCJDb3NldHRhXCIsXG4gICAgXCJDcmlzdHluXCIsXG4gICAgXCJEYW1pYW5hXCIsXG4gICAgXCJEYW51dGFcIixcbiAgICBcIkRlYm9yYWhcIixcbiAgICBcIkRlbWlcIixcbiAgICBcIkRpYW1hbnRlXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiRG9uYXRlbGxhXCIsXG4gICAgXCJEb3JpYW5hXCIsXG4gICAgXCJFZHZpZ2VcIixcbiAgICBcIkVsZGFcIixcbiAgICBcIkVsZ2FcIixcbiAgICBcIkVsc2FcIixcbiAgICBcIkVtaWxpYVwiLFxuICAgIFwiRW5yaWNhXCIsXG4gICAgXCJFcm1pbmlhXCIsXG4gICAgXCJFdWZlbWlhXCIsXG4gICAgXCJFdml0YVwiLFxuICAgIFwiRmF0aW1hXCIsXG4gICAgXCJGZWxpY2lhXCIsXG4gICAgXCJGaWxvbWVuYVwiLFxuICAgIFwiRmxhdmlhbmFcIixcbiAgICBcIkZvcnR1bmF0YVwiLFxuICAgIFwiR2Vsc29taW5hXCIsXG4gICAgXCJHZW56aWFuYVwiLFxuICAgIFwiR2lhY2ludGFcIixcbiAgICBcIkdpbGRhXCIsXG4gICAgXCJHaW92YW5uYVwiLFxuICAgIFwiR2l1bGlldHRhXCIsXG4gICAgXCJHcmF6aWFcIixcbiAgICBcIkd1ZW5kYWxpbmFcIixcbiAgICBcIkhlbGdhXCIsXG4gICAgXCJJbGVhbmFcIixcbiAgICBcIkluZ3JpZFwiLFxuICAgIFwiSXJlbmVcIixcbiAgICBcIklzYWJlbFwiLFxuICAgIFwiSXNpcmFcIixcbiAgICBcIkl2b25uZVwiLFxuICAgIFwiSmVsZW5hXCIsXG4gICAgXCJKb2xlXCIsXG4gICAgXCJDbGF1ZGlhXCIsXG4gICAgXCJLYXlsYVwiLFxuICAgIFwiS3Jpc3RlbFwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIkx1Y2lhXCIsXG4gICAgXCJMaWFcIixcbiAgICBcIkxpZGlhXCIsXG4gICAgXCJMaXNhXCIsXG4gICAgXCJMb3JlZGFuYVwiLFxuICAgIFwiTG9yZXR0YVwiLFxuICAgIFwiTHVjZVwiLFxuICAgIFwiTHVjcmV6aWFcIixcbiAgICBcIkx1bmFcIixcbiAgICBcIk1haWthXCIsXG4gICAgXCJNYXJjZWxsYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hcmlhZ2l1bGlhXCIsXG4gICAgXCJNYXJpYW5pdGFcIixcbiAgICBcIk1hcmlhcGlhXCIsXG4gICAgXCJNYXJpZXZhXCIsXG4gICAgXCJNYXJpbmFcIixcbiAgICBcIk1hcmlzdGVsbGFcIixcbiAgICBcIk1hcnVza2FcIixcbiAgICBcIk1hdGlsZGVcIixcbiAgICBcIk1lY3JlblwiLFxuICAgIFwiTWVyY2VkZXNcIixcbiAgICBcIk1pZXR0YVwiLFxuICAgIFwiTWlyaWFuYVwiLFxuICAgIFwiTWlyaWFtXCIsXG4gICAgXCJNb25pYVwiLFxuICAgIFwiTW9yZ2FuYVwiLFxuICAgIFwiTmFvbWlcIixcbiAgICBcIk5heWFkZVwiLFxuICAgIFwiTmljb2xldHRhXCIsXG4gICAgXCJOaW5mYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk51bnppYVwiLFxuICAgIFwiT2xpbXBpYVwiLFxuICAgIFwiT3JldHRhXCIsXG4gICAgXCJPcnRlbnNpYVwiLFxuICAgIFwiUGVuZWxvcGVcIixcbiAgICBcIlBpY2NhcmRhXCIsXG4gICAgXCJQcmlzY2FcIixcbiAgICBcIlJlYmVjY2FcIixcbiAgICBcIlJpdGFcIixcbiAgICBcIlJvc2FsYmFcIixcbiAgICBcIlJvc2FyaWFcIixcbiAgICBcIlJvc2l0YVwiLFxuICAgIFwiUnV0aFwiLFxuICAgIFwiU2FtaXJhXCIsXG4gICAgXCJTYXJpdGFcIixcbiAgICBcIlNlbHZhZ2dpYVwiLFxuICAgIFwiU2hhaXJhXCIsXG4gICAgXCJTaWJpbGxhXCIsXG4gICAgXCJTb3JpYW5hXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJUb3NjYVwiLFxuICAgIFwiVXJzdWxhXCIsXG4gICAgXCJWYW5pYVwiLFxuICAgIFwiVmVyYVwiLFxuICAgIFwiVmllbm5hXCIsXG4gICAgXCJWaW9sYW50ZVwiLFxuICAgIFwiVml0YWxiYVwiLFxuICAgIFwiWmVsaWRhXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQW1hdG9cIixcbiAgICBcIkJhcmJpZXJpXCIsXG4gICAgXCJCYXJvbmVcIixcbiAgICBcIkJhc2lsZVwiLFxuICAgIFwiQmF0dGFnbGlhXCIsXG4gICAgXCJCZWxsaW5pXCIsXG4gICAgXCJCZW5lZGV0dGlcIixcbiAgICBcIkJlcm5hcmRpXCIsXG4gICAgXCJCaWFuY1wiLFxuICAgIFwiQmlhbmNoaVwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkNhcHV0b1wiLFxuICAgIFwiQ2FyYm9uXCIsXG4gICAgXCJDYXJ1c29cIixcbiAgICBcIkNhdHRhbmVvXCIsXG4gICAgXCJDb2xvbWJvXCIsXG4gICAgXCJDb250XCIsXG4gICAgXCJDb250ZVwiLFxuICAgIFwiQ29wcG9sYVwiLFxuICAgIFwiQ29zdGFcIixcbiAgICBcIkNvc3RhbnRpblwiLFxuICAgIFwiRCdhbWljb1wiLFxuICAgIFwiRCdhbmdlbG9cIixcbiAgICBcIkRhbWljb1wiLFxuICAgIFwiRGUgQW5nZWxpc1wiLFxuICAgIFwiRGUgbHVjYVwiLFxuICAgIFwiRGUgcm9zYVwiLFxuICAgIFwiRGUgU2FudGlzXCIsXG4gICAgXCJEb25hdGlcIixcbiAgICBcIkVzcG9zaXRvXCIsXG4gICAgXCJGYWJicmlcIixcbiAgICBcIkZhcmluXCIsXG4gICAgXCJGZXJyYXJhXCIsXG4gICAgXCJGZXJyYXJpXCIsXG4gICAgXCJGZXJyYXJvXCIsXG4gICAgXCJGZXJyZXR0aVwiLFxuICAgIFwiRmVycmlcIixcbiAgICBcIkZpb3JcIixcbiAgICBcIkZvbnRhbmFcIixcbiAgICBcIkdhbGxpXCIsXG4gICAgXCJHYWxsb1wiLFxuICAgIFwiR2F0dGlcIixcbiAgICBcIkdlbnRpbGVcIixcbiAgICBcIkdpb3JkYW5vXCIsXG4gICAgXCJHaXVsaWFuaVwiLFxuICAgIFwiR3Jhc3NpXCIsXG4gICAgXCJHcmFzc29cIixcbiAgICBcIkdyZWNvXCIsXG4gICAgXCJHdWVycmFcIixcbiAgICBcIkxlb25lXCIsXG4gICAgXCJMb21iYXJkaVwiLFxuICAgIFwiTG9tYmFyZG9cIixcbiAgICBcIkxvbmdvXCIsXG4gICAgXCJNYW5jaW5pXCIsXG4gICAgXCJNYXJjaGV0dGlcIixcbiAgICBcIk1hcmlhblwiLFxuICAgIFwiTWFyaW5pXCIsXG4gICAgXCJNYXJpbm9cIixcbiAgICBcIk1hcnRpbmVsbGlcIixcbiAgICBcIk1hcnRpbmlcIixcbiAgICBcIk1hcnRpbm9cIixcbiAgICBcIk1henphXCIsXG4gICAgXCJNZXNzaW5hXCIsXG4gICAgXCJNaWxhbmlcIixcbiAgICBcIk1vbnRhbmFyaVwiLFxuICAgIFwiTW9udGlcIixcbiAgICBcIk1vcmVsbGlcIixcbiAgICBcIk1vcmV0dGlcIixcbiAgICBcIk5lZ3JpXCIsXG4gICAgXCJOZXJpXCIsXG4gICAgXCJPcmxhbmRvXCIsXG4gICAgXCJQYWdhbm9cIixcbiAgICBcIlBhbG1pZXJpXCIsXG4gICAgXCJQYWx1bWJvXCIsXG4gICAgXCJQYXJpc2lcIixcbiAgICBcIlBlbGxlZ3JpbmlcIixcbiAgICBcIlBlbGxlZ3Jpbm9cIixcbiAgICBcIlBpcmFzXCIsXG4gICAgXCJSaWNjaVwiLFxuICAgIFwiUmluYWxkaVwiLFxuICAgIFwiUml2YVwiLFxuICAgIFwiUml6emlcIixcbiAgICBcIlJpenpvXCIsXG4gICAgXCJSb21hbm9cIixcbiAgICBcIlJvc3NcIixcbiAgICBcIlJvc3NldHRpXCIsXG4gICAgXCJSdWdnaWVyb1wiLFxuICAgIFwiUnVzc29cIixcbiAgICBcIlNhbGFcIixcbiAgICBcIlNhbm5hXCIsXG4gICAgXCJTYW50b3JvXCIsXG4gICAgXCJTYXJ0b3JpXCIsXG4gICAgXCJTZXJyXCIsXG4gICAgXCJTaWx2ZXN0cmlcIixcbiAgICBcIlNvcnJlbnRpbm9cIixcbiAgICBcIlRlc3RhXCIsXG4gICAgXCJWYWxlbnRpbmlcIixcbiAgICBcIlZpbGxhXCIsXG4gICAgXCJWaXRhbGVcIixcbiAgICBcIlZpdGFsaVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNpZy5cIixcbiAgICBcIkRvdHQuXCIsXG4gICAgXCJEci5cIixcbiAgICBcIkluZy5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbml0LnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIisjIyAjIyMgIyMgIyMgIyMjI1wiLFxuICAgIFwiKyMjICMjICMjIyMjIyNcIixcbiAgICBcIisjIyAjIyAjIyMjIyMjI1wiLFxuICAgIFwiKyMjICMjIyAjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjICMjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjIyAjIyMjIyMjXCIsXG4gICAgXCIrIyMgIyMjIyAjIyMjIyMjI1wiLFxuICAgIFwiMCMjICMjIyAjIyMjXCIsXG4gICAgXCIrMzkgMCMjICMjIyAjIyNcIixcbiAgICBcIjMjIyAjIyMgIyMjXCIsXG4gICAgXCIrMzkgMyMjICMjIyAjIyNcIlxuICBdXG59O1xuIiwidmFyIGphID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gamE7XG5qYS50aXRsZSA9IFwiSmFwYW5lc2VcIjtcbmphLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjLSMjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIuWMl+a1t+mBk1wiLFxuICAgIFwi6Z2S5qOu55yMXCIsXG4gICAgXCLlsqnmiYvnnIxcIixcbiAgICBcIuWuruWfjuecjFwiLFxuICAgIFwi56eL55Sw55yMXCIsXG4gICAgXCLlsbHlvaLnnIxcIixcbiAgICBcIuemj+WztuecjFwiLFxuICAgIFwi6Iyo5Z+O55yMXCIsXG4gICAgXCLmoIPmnKjnnIxcIixcbiAgICBcIue+pOmmrOecjFwiLFxuICAgIFwi5Z+8546J55yMXCIsXG4gICAgXCLljYPokYnnnIxcIixcbiAgICBcIuadseS6rOmDvVwiLFxuICAgIFwi56We5aWI5bed55yMXCIsXG4gICAgXCLmlrDmvZ/nnIxcIixcbiAgICBcIuWvjOWxseecjFwiLFxuICAgIFwi55+z5bed55yMXCIsXG4gICAgXCLnpo/kupXnnIxcIixcbiAgICBcIuWxseaiqOecjFwiLFxuICAgIFwi6ZW36YeO55yMXCIsXG4gICAgXCLlspDpmJznnIxcIixcbiAgICBcIumdmeWyoeecjFwiLFxuICAgIFwi5oSb55+l55yMXCIsXG4gICAgXCLkuInph43nnIxcIixcbiAgICBcIua7i+izgOecjFwiLFxuICAgIFwi5Lqs6YO95bqcXCIsXG4gICAgXCLlpKfpmKrlupxcIixcbiAgICBcIuWFteW6q+ecjFwiLFxuICAgIFwi5aWI6Imv55yMXCIsXG4gICAgXCLlkozmrYzlsbHnnIxcIixcbiAgICBcIumzpeWPluecjFwiLFxuICAgIFwi5bO25qC555yMXCIsXG4gICAgXCLlsqHlsbHnnIxcIixcbiAgICBcIuW6g+WztuecjFwiLFxuICAgIFwi5bGx5Y+j55yMXCIsXG4gICAgXCLlvrPls7bnnIxcIixcbiAgICBcIummmeW3neecjFwiLFxuICAgIFwi5oSb5aqb55yMXCIsXG4gICAgXCLpq5jnn6XnnIxcIixcbiAgICBcIuemj+WyoeecjFwiLFxuICAgIFwi5L2Q6LOA55yMXCIsXG4gICAgXCLplbfltI7nnIxcIixcbiAgICBcIueGiuacrOecjFwiLFxuICAgIFwi5aSn5YiG55yMXCIsXG4gICAgXCLlrq7ltI7nnIxcIixcbiAgICBcIum5v+WFkOWztuecjFwiLFxuICAgIFwi5rKW57iE55yMXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIjFcIixcbiAgICBcIjJcIixcbiAgICBcIjNcIixcbiAgICBcIjRcIixcbiAgICBcIjVcIixcbiAgICBcIjZcIixcbiAgICBcIjdcIixcbiAgICBcIjhcIixcbiAgICBcIjlcIixcbiAgICBcIjEwXCIsXG4gICAgXCIxMVwiLFxuICAgIFwiMTJcIixcbiAgICBcIjEzXCIsXG4gICAgXCIxNFwiLFxuICAgIFwiMTVcIixcbiAgICBcIjE2XCIsXG4gICAgXCIxN1wiLFxuICAgIFwiMThcIixcbiAgICBcIjE5XCIsXG4gICAgXCIyMFwiLFxuICAgIFwiMjFcIixcbiAgICBcIjIyXCIsXG4gICAgXCIyM1wiLFxuICAgIFwiMjRcIixcbiAgICBcIjI1XCIsXG4gICAgXCIyNlwiLFxuICAgIFwiMjdcIixcbiAgICBcIjI4XCIsXG4gICAgXCIyOVwiLFxuICAgIFwiMzBcIixcbiAgICBcIjMxXCIsXG4gICAgXCIzMlwiLFxuICAgIFwiMzNcIixcbiAgICBcIjM0XCIsXG4gICAgXCIzNVwiLFxuICAgIFwiMzZcIixcbiAgICBcIjM3XCIsXG4gICAgXCIzOFwiLFxuICAgIFwiMzlcIixcbiAgICBcIjQwXCIsXG4gICAgXCI0MVwiLFxuICAgIFwiNDJcIixcbiAgICBcIjQzXCIsXG4gICAgXCI0NFwiLFxuICAgIFwiNDVcIixcbiAgICBcIjQ2XCIsXG4gICAgXCI0N1wiXG4gIF0sXG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwi5YyXXCIsXG4gICAgXCLmnbFcIixcbiAgICBcIuilv1wiLFxuICAgIFwi5Y2XXCIsXG4gICAgXCLmlrBcIixcbiAgICBcIua5llwiLFxuICAgIFwi5rivXCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCLluIJcIixcbiAgICBcIuWMulwiLFxuICAgIFwi55S6XCIsXG4gICAgXCLmnZFcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tjaXR5X3ByZWZpeH0je05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tjaXR5X3N1ZmZpeH1cIixcbiAgICBcIiN7Y2l0eV9wcmVmaXh9I3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tOYW1lLmZpcnN0X25hbWV9I3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je3N0cmVldF9zdWZmaXh9XCJcbiAgXVxufTtcbmphLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIjAjIyMjLSMtIyMjI1wiLFxuICAgIFwiMCMjIy0jIy0jIyMjXCIsXG4gICAgXCIwIyMtIyMjLSMjIyNcIixcbiAgICBcIjAjLSMjIyMtIyMjI1wiXG4gIF1cbn07XG5qYS5jZWxsX3Bob25lID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDkwLSMjIyMtIyMjI1wiLFxuICAgIFwiMDgwLSMjIyMtIyMjI1wiLFxuICAgIFwiMDcwLSMjIyMtIyMjI1wiXG4gIF1cbn07XG5qYS5uYW1lID0ge1xuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCLkvZDol6RcIixcbiAgICBcIumItOacqFwiLFxuICAgIFwi6auY5qmLXCIsXG4gICAgXCLnlLDkuK1cIixcbiAgICBcIua4oei+ulwiLFxuICAgIFwi5LyK6JekXCIsXG4gICAgXCLlsbHmnKxcIixcbiAgICBcIuS4readkVwiLFxuICAgIFwi5bCP5p6XXCIsXG4gICAgXCLliqDol6RcIixcbiAgICBcIuWQieeUsFwiLFxuICAgIFwi5bGx55SwXCIsXG4gICAgXCLkvZDjgIXmnKhcIixcbiAgICBcIuWxseWPo1wiLFxuICAgIFwi5paO6JekXCIsXG4gICAgXCLmnb7mnKxcIixcbiAgICBcIuS6leS4ilwiLFxuICAgIFwi5pyo5p2RXCIsXG4gICAgXCLmnpdcIixcbiAgICBcIua4heawtFwiXG4gIF0sXG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLlpKfnv5RcIixcbiAgICBcIuiTrlwiLFxuICAgIFwi6aKv5aSqXCIsXG4gICAgXCLmqLlcIixcbiAgICBcIuWkp+WSjFwiLFxuICAgIFwi6Zm957+UXCIsXG4gICAgXCLpmbjmlpdcIixcbiAgICBcIuWkquS4gFwiLFxuICAgIFwi5rW357+UXCIsXG4gICAgXCLokrznqbpcIixcbiAgICBcIue/vFwiLFxuICAgIFwi6Zm96I+cXCIsXG4gICAgXCLntZDmhJtcIixcbiAgICBcIue1kOiho1wiLFxuICAgIFwi5p2PXCIsXG4gICAgXCLojonlrZBcIixcbiAgICBcIue+jue+vVwiLFxuICAgIFwi57WQ6I+cXCIsXG4gICAgXCLlv4PmhJtcIixcbiAgICBcIuaEm+iPnFwiLFxuICAgIFwi576O5ZKyXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7bGFzdF9uYW1lfSAje2ZpcnN0X25hbWV9XCJcbiAgXVxufTtcbiIsInZhciBrbyA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IGtvO1xua28udGl0bGUgPSBcIktvcmVhblwiO1xua28uYWRkcmVzcyA9IHtcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCLqsJXsm5BcIixcbiAgICBcIuqyveq4sFwiLFxuICAgIFwi6rK964KoXCIsXG4gICAgXCLqsr3rtoFcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi64yA6rWsXCIsXG4gICAgXCLrjIDsoIRcIixcbiAgICBcIuu2gOyCsFwiLFxuICAgIFwi7ISc7Jq4XCIsXG4gICAgXCLsmrjsgrBcIixcbiAgICBcIuyduOyynFwiLFxuICAgIFwi7KCE64KoXCIsXG4gICAgXCLsoITrtoFcIixcbiAgICBcIuygnOyjvFwiLFxuICAgIFwi7Lap64KoXCIsXG4gICAgXCLstqnrtoFcIixcbiAgICBcIuyEuOyihVwiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCLqsJXsm5BcIixcbiAgICBcIuqyveq4sFwiLFxuICAgIFwi6rK964KoXCIsXG4gICAgXCLqsr3rtoFcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi64yA6rWsXCIsXG4gICAgXCLrjIDsoIRcIixcbiAgICBcIuu2gOyCsFwiLFxuICAgIFwi7ISc7Jq4XCIsXG4gICAgXCLsmrjsgrBcIixcbiAgICBcIuyduOyynFwiLFxuICAgIFwi7KCE64KoXCIsXG4gICAgXCLsoITrtoFcIixcbiAgICBcIuygnOyjvFwiLFxuICAgIFwi7Lap64KoXCIsXG4gICAgXCLstqnrtoFcIixcbiAgICBcIuyEuOyihVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwi6rWsXCIsXG4gICAgXCLsi5xcIixcbiAgICBcIuq1sFwiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIuqwleumiVwiLFxuICAgIFwi7JaR7JaRXCIsXG4gICAgXCLsnbjsoJxcIixcbiAgICBcIuq0keyjvFwiLFxuICAgIFwi6rWs66asXCIsXG4gICAgXCLrtoDsspxcIixcbiAgICBcIuuwgOyWkVwiLFxuICAgIFwi7Ya17JiBXCIsXG4gICAgXCLssL3sm5BcIixcbiAgICBcIuqxsOywvVwiLFxuICAgIFwi6rOg7ISxXCIsXG4gICAgXCLslpHsgrBcIixcbiAgICBcIuq5gOyynFwiLFxuICAgIFwi6rWs66+4XCIsXG4gICAgXCLsmIHso7xcIixcbiAgICBcIuq0keyCsFwiLFxuICAgIFwi64KoXCIsXG4gICAgXCLrtoFcIixcbiAgICBcIuqzoOywvVwiLFxuICAgIFwi6rWw7IKwXCIsXG4gICAgXCLrgqjsm5BcIixcbiAgICBcIuuPmeyekVwiLFxuICAgIFwi66eI7Y+sXCIsXG4gICAgXCLshqHtjIxcIixcbiAgICBcIuyaqeyCsFwiLFxuICAgIFwi67aA7Y+JXCIsXG4gICAgXCLqsJXtmZRcIixcbiAgICBcIuyImOyEsVwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X3Jvb3RcIjogW1xuICAgIFwi7IOB6rOEXCIsXG4gICAgXCLtmZTqs6FcIixcbiAgICBcIuyLoOyglVwiLFxuICAgIFwi66qpXCIsXG4gICAgXCLsnqDsi6RcIixcbiAgICBcIuuptOuqqVwiLFxuICAgIFwi7KO87JWIXCIsXG4gICAgXCLslYjslpFcIixcbiAgICBcIuykkVwiLFxuICAgIFwi7KCV7JmVXCIsXG4gICAgXCLqtazroZxcIixcbiAgICBcIuyLoOyblFwiLFxuICAgIFwi7Jew7IKwXCIsXG4gICAgXCLrtoDtj4lcIixcbiAgICBcIuywvVwiLFxuICAgIFwi66eM7IiYXCIsXG4gICAgXCLspJHqs4RcIixcbiAgICBcIuqygOuLqFwiLFxuICAgIFwi7Iuc7Z2lXCIsXG4gICAgXCLsg4Hrj4RcIixcbiAgICBcIuuwqeuwsFwiLFxuICAgIFwi7J6l7JygXCIsXG4gICAgXCLsg4FcIixcbiAgICBcIuq0keuqhVwiLFxuICAgIFwi7Iug6ri4XCIsXG4gICAgXCLtlonsi6BcIixcbiAgICBcIuuMgOuqhVwiLFxuICAgIFwi64+Z7YOEXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcIuydjVwiLFxuICAgIFwi66m0XCIsXG4gICAgXCLrj5lcIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9I3tzdHJlZXRfc3VmZml4fVwiXG4gIF1cbn07XG5rby5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwIy0jIyMjIy0jIyMjXCIsXG4gICAgXCIwIyMtIyMjLSMjIyNcIixcbiAgICBcIjAjIy0jIyMjLSMjIyNcIlxuICBdXG59O1xua28uY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwi7Jew6rWs7IaMXCIsXG4gICAgXCLqsozsnoTspohcIixcbiAgICBcIuq3uOujuVwiLFxuICAgIFwi7KCE7J6QXCIsXG4gICAgXCLrrLzsgrBcIixcbiAgICBcIuy9lOumrOyVhFwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIuyjvOyLne2ajOyCrFwiLFxuICAgIFwi7ZWc6rWtXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSAje3N1ZmZpeH1cIlxuICBdXG59O1xua28uaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvLmtyXCIsXG4gICAgXCJoYW5tYWlsLm5ldFwiLFxuICAgIFwibmF2ZXIuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcImNvLmtyXCIsXG4gICAgXCJjb21cIixcbiAgICBcImJpelwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwibmUua3JcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3Iua3JcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5rby5sb3JlbSA9IHtcbiAgXCJ3b3Jkc1wiOiBbXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuuyleuloOydtFwiLFxuICAgIFwi7KCV7ZWY64qUXCIsXG4gICAgXCLrsJTsl5BcIixcbiAgICBcIuydmO2VmOyXrFwiLFxuICAgIFwi7J6s7Jm46rWt66+87J2EXCIsXG4gICAgXCLrs7TtmLjtlaBcIixcbiAgICBcIuydmOustOulvFwiLFxuICAgIFwi7KeE64ukLlwiLFxuICAgIFwi66qo65OgXCIsXG4gICAgXCLqta3rr7zsnYBcIixcbiAgICBcIuyLoOyytOydmFwiLFxuICAgIFwi7J6Q7Jyg66W8XCIsXG4gICAgXCLqsIDsp4Tri6QuXCIsXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuyghO2GteusuO2ZlOydmFwiLFxuICAgIFwi6rOE7Iq5wrfrsJzsoITqs7xcIixcbiAgICBcIuuvvOyhseusuO2ZlOydmFwiLFxuICAgIFwi7LC964us7JeQXCIsXG4gICAgXCLrhbjroKXtlZjsl6zslbxcIixcbiAgICBcIu2VnOuLpC5cIixcbiAgICBcIu2GteyLoMK367Cp7Iah7J2YXCIsXG4gICAgXCLsi5zshKTquLDspIDqs7xcIixcbiAgICBcIuyLoOusuOydmFwiLFxuICAgIFwi6riw64ql7J2EXCIsXG4gICAgXCLrs7TsnqXtlZjquLBcIixcbiAgICBcIuychO2VmOyXrFwiLFxuICAgIFwi7ZWE7JqU7ZWcXCIsXG4gICAgXCLsgqztla3snYBcIixcbiAgICBcIuuyleuloOuhnFwiLFxuICAgIFwi7KCV7ZWc64ukLlwiLFxuICAgIFwi7ZeM67KV7JeQXCIsXG4gICAgXCLsnZjtlZjsl6xcIixcbiAgICBcIuyytOqysMK36rO17Y+s65CcXCIsXG4gICAgXCLsobDslb3qs7xcIixcbiAgICBcIuydvOuwmOyggeycvOuhnFwiLFxuICAgIFwi7Iq57J2465CcXCIsXG4gICAgXCLqta3soJzrspXqt5zripRcIixcbiAgICBcIuq1reuCtOuyleqzvFwiLFxuICAgIFwi6rCZ7J2AXCIsXG4gICAgXCLtmqjroKXsnYRcIixcbiAgICBcIuqwgOynhOuLpC5cIixcbiAgICBcIuuLpOunjCxcIixcbiAgICBcIu2YhO2WieuylOyduOyduFwiLFxuICAgIFwi6rK97Jqw7JmAXCIsXG4gICAgXCLsnqXquLBcIixcbiAgICBcIjPrhYRcIixcbiAgICBcIuydtOyDgeydmFwiLFxuICAgIFwi7ZiV7JeQXCIsXG4gICAgXCLtlbTri7ntlZjripRcIixcbiAgICBcIuyjhOulvFwiLFxuICAgIFwi67KU7ZWY6rOgXCIsXG4gICAgXCLrj4TtlLxcIixcbiAgICBcIuuYkOuKlFwiLFxuICAgIFwi7Kad6rGw7J2466m47J2YXCIsXG4gICAgXCLsl7zroKTqsIBcIixcbiAgICBcIuyeiOydhFwiLFxuICAgIFwi65WM7JeQ64qUXCIsXG4gICAgXCLsgqztm4Tsl5BcIixcbiAgICBcIuyYgeyepeydhFwiLFxuICAgIFwi7LKt6rWs7ZWgXCIsXG4gICAgXCLsiJhcIixcbiAgICBcIuyeiOuLpC5cIixcbiAgICBcIuyggOyekeyekMK367Cc66qF6rCAwrfqs7ztlZnquLDsiKDsnpDsmYBcIixcbiAgICBcIuyYiOyIoOqwgOydmFwiLFxuICAgIFwi6raM66as64qUXCIsXG4gICAgXCLrspXrpaDroZzsjahcIixcbiAgICBcIuuztO2YuO2VnOuLpC5cIixcbiAgICBcIu2YleyCrO2UvOqzoOyduOydgFwiLFxuICAgIFwi7Jyg7KOE7J2YXCIsXG4gICAgXCLtjJDqsrDsnbRcIixcbiAgICBcIu2ZleygleuQoFwiLFxuICAgIFwi65WM6rmM7KeA64qUXCIsXG4gICAgXCLrrLTso4TroZxcIixcbiAgICBcIuy2lOygleuQnOuLpC5cIixcbiAgICBcIuuqqOuToFwiLFxuICAgIFwi6rWt66+87J2AXCIsXG4gICAgXCLtlonsnITsi5zsnZhcIixcbiAgICBcIuuyleuloOyXkFwiLFxuICAgIFwi7J2Y7ZWY7JesXCIsXG4gICAgXCLrspTso4TrpbxcIixcbiAgICBcIuq1rOyEse2VmOyngFwiLFxuICAgIFwi7JWE64uI7ZWY64qUXCIsXG4gICAgXCLtlonsnITroZxcIixcbiAgICBcIuyGjOy2lOuQmOyngFwiLFxuICAgIFwi7JWE64uI7ZWY66mwLFwiLFxuICAgIFwi64+Z7J287ZWcXCIsXG4gICAgXCLrspTso4Tsl5BcIixcbiAgICBcIuuMgO2VmOyXrFwiLFxuICAgIFwi6rGw65OtXCIsXG4gICAgXCLsspjrsozrsJvsp4BcIixcbiAgICBcIuyVhOuLiO2VnOuLpC5cIixcbiAgICBcIuq1reqwgOuKlFwiLFxuICAgIFwi7Y+J7IOd6rWQ7Jyh7J2EXCIsXG4gICAgXCLsp4TtnaXtlZjsl6zslbxcIixcbiAgICBcIu2VnOuLpC5cIixcbiAgICBcIuuqqOuToFwiLFxuICAgIFwi6rWt66+87J2AXCIsXG4gICAgXCLsgqzsg53tmZzsnZhcIixcbiAgICBcIuu5hOuwgOqzvFwiLFxuICAgIFwi7J6Q7Jyg66W8XCIsXG4gICAgXCLsuajtlbTrsJvsp4BcIixcbiAgICBcIuyVhOuLiO2VnOuLpC5cIixcbiAgICBcIuydmOustOq1kOycoeydgFwiLFxuICAgIFwi66y07IOB7Jy866GcXCIsXG4gICAgXCLtlZzri6QuXCIsXG4gICAgXCLsoIDsnpHsnpDCt+uwnOuqheqwgMK36rO87ZWZ6riw7Iig7J6Q7JmAXCIsXG4gICAgXCLsmIjsiKDqsIDsnZhcIixcbiAgICBcIuq2jOumrOuKlFwiLFxuICAgIFwi67KV66Wg66Gc7I2oXCIsXG4gICAgXCLrs7TtmLjtlZzri6QuXCIsXG4gICAgXCLqta3qsIDripRcIixcbiAgICBcIuuqqOyEseydmFwiLFxuICAgIFwi67O07Zi466W8XCIsXG4gICAgXCLsnITtlZjsl6xcIixcbiAgICBcIuuFuOugpe2VmOyXrOyVvFwiLFxuICAgIFwi7ZWc64ukLlwiLFxuICAgIFwi7ZeM67KV7JeQXCIsXG4gICAgXCLsnZjtlZjsl6xcIixcbiAgICBcIuyytOqysMK36rO17Y+s65CcXCIsXG4gICAgXCLsobDslb3qs7xcIixcbiAgICBcIuydvOuwmOyggeycvOuhnFwiLFxuICAgIFwi7Iq57J2465CcXCIsXG4gICAgXCLqta3soJzrspXqt5zripRcIixcbiAgICBcIuq1reuCtOuyleqzvFwiLFxuICAgIFwi6rCZ7J2AXCIsXG4gICAgXCLtmqjroKXsnYRcIixcbiAgICBcIuqwgOynhOuLpC5cIlxuICBdXG59O1xua28ubmFtZSA9IHtcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwi6rmAXCIsXG4gICAgXCLsnbRcIixcbiAgICBcIuuwlVwiLFxuICAgIFwi7LWcXCIsXG4gICAgXCLsoJVcIixcbiAgICBcIuqwlVwiLFxuICAgIFwi7KGwXCIsXG4gICAgXCLsnKRcIixcbiAgICBcIuyepVwiLFxuICAgIFwi7J6EXCIsXG4gICAgXCLsmKRcIixcbiAgICBcIu2VnFwiLFxuICAgIFwi7IugXCIsXG4gICAgXCLshJxcIixcbiAgICBcIuq2jFwiLFxuICAgIFwi7ZmpXCIsXG4gICAgXCLslYhcIixcbiAgICBcIuyGoVwiLFxuICAgIFwi66WYXCIsXG4gICAgXCLtmY1cIlxuICBdLFxuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwi7ISc7JewXCIsXG4gICAgXCLrr7zshJxcIixcbiAgICBcIuyEnO2YhFwiLFxuICAgIFwi7KeA7JqwXCIsXG4gICAgXCLshJzsnKRcIixcbiAgICBcIuyngOuvvFwiLFxuICAgIFwi7IiY67mIXCIsXG4gICAgXCLtlZjsnYBcIixcbiAgICBcIuyYiOydgFwiLFxuICAgIFwi7Jyk7IScXCIsXG4gICAgXCLrr7zspIBcIixcbiAgICBcIuyngO2bhFwiLFxuICAgIFwi7KeA7ZuIXCIsXG4gICAgXCLspIDshJxcIixcbiAgICBcIu2YhOyasFwiLFxuICAgIFwi7JiI7KSAXCIsXG4gICAgXCLqsbTsmrBcIixcbiAgICBcIu2YhOykgFwiLFxuICAgIFwi66+87J6sXCIsXG4gICAgXCLsmrDsp4RcIixcbiAgICBcIuydgOyjvFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2xhc3RfbmFtZX0gI3tmaXJzdF9uYW1lfVwiXG4gIF1cbn07XG4iLCJ2YXIgbmJfTk8gPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBuYl9OTztcbm5iX05PLnRpdGxlID0gXCJOb3J3ZWdpYW5cIjtcbm5iX05PLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9yb290XCI6IFtcbiAgICBcIkZldFwiLFxuICAgIFwiR2plc1wiLFxuICAgIFwiSMO4eVwiLFxuICAgIFwiSW5uXCIsXG4gICAgXCJGYWdlclwiLFxuICAgIFwiTGlsbGVcIixcbiAgICBcIkxvXCIsXG4gICAgXCJNYWxcIixcbiAgICBcIk5vcmRcIixcbiAgICBcIk7DpnJcIixcbiAgICBcIlNhbmRcIixcbiAgICBcIlNtZVwiLFxuICAgIFwiU3RhdlwiLFxuICAgIFwiU3RvclwiLFxuICAgIFwiVGFuZFwiLFxuICAgIFwiVXRcIixcbiAgICBcIlZlc3RcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcImJlcmdcIixcbiAgICBcImJvcmdcIixcbiAgICBcImJ5XCIsXG4gICAgXCJiw7hcIixcbiAgICBcImRhbFwiLFxuICAgIFwiZWlkXCIsXG4gICAgXCJmamVsbFwiLFxuICAgIFwiZmpvcmRcIixcbiAgICBcImZvc3NcIixcbiAgICBcImdydW5uXCIsXG4gICAgXCJoYW1uXCIsXG4gICAgXCJoYXZuXCIsXG4gICAgXCJoZWxsZVwiLFxuICAgIFwibWFya1wiLFxuICAgIFwibmVzXCIsXG4gICAgXCJvZGRlblwiLFxuICAgIFwic2FuZFwiLFxuICAgIFwic2rDuGVuXCIsXG4gICAgXCJzdGFkXCIsXG4gICAgXCJzdHJhbmRcIixcbiAgICBcInN0csO4bVwiLFxuICAgIFwic3VuZFwiLFxuICAgIFwidmlrXCIsXG4gICAgXCJ2w6ZyXCIsXG4gICAgXCJ2w6VnXCIsXG4gICAgXCLDuFwiLFxuICAgIFwiw7h5XCIsXG4gICAgXCLDpXNcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiw5h2cmVcIixcbiAgICBcIk5lZHJlXCIsXG4gICAgXCJTw7huZHJlXCIsXG4gICAgXCJHYW1sZVwiLFxuICAgIFwiw5hzdHJlXCIsXG4gICAgXCJWZXN0cmVcIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkVpa2VcIixcbiAgICBcIkJqw7hya2VcIixcbiAgICBcIkdyYW5cIixcbiAgICBcIlZhc3NcIixcbiAgICBcIkZ1cnVcIixcbiAgICBcIkxpdGpcIixcbiAgICBcIkxpbGxlXCIsXG4gICAgXCJIw7h5XCIsXG4gICAgXCJGb3NzZVwiLFxuICAgIFwiRWx2ZVwiLFxuICAgIFwiS3VcIixcbiAgICBcIktvbnZhbGxcIixcbiAgICBcIlNvbGR1Z2dcIixcbiAgICBcIkhlc3RlbXlyXCIsXG4gICAgXCJHcmFuaXR0XCIsXG4gICAgXCJIZWdnZVwiLFxuICAgIFwiUm9nbmVcIixcbiAgICBcIkZpb2xcIixcbiAgICBcIlNvbFwiLFxuICAgIFwiVGluZ1wiLFxuICAgIFwiTWFsbVwiLFxuICAgIFwiS2xva2tlclwiLFxuICAgIFwiUHJlc3RlXCIsXG4gICAgXCJEYW1cIixcbiAgICBcIkdlaXRlcnlnZ1wiLFxuICAgIFwiQmVra2VcIixcbiAgICBcIkJlcmdcIixcbiAgICBcIktpcmtlXCIsXG4gICAgXCJLb3JzXCIsXG4gICAgXCJCcnVcIixcbiAgICBcIkJsw6V2ZWlzXCIsXG4gICAgXCJUb3JnXCIsXG4gICAgXCJTasO4XCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcImFsbMOpZW5cIixcbiAgICBcImJha2tlblwiLFxuICAgIFwiYmVyZ2V0XCIsXG4gICAgXCJicsOldGVuXCIsXG4gICAgXCJlZ2dlblwiLFxuICAgIFwiZW5nZW5cIixcbiAgICBcImVrcmFcIixcbiAgICBcImZhcmV0XCIsXG4gICAgXCJmbGF0YVwiLFxuICAgIFwiZ2F0YVwiLFxuICAgIFwiZ2plcmRldFwiLFxuICAgIFwiZ3JlbmRhXCIsXG4gICAgXCJncm9wYVwiLFxuICAgIFwiaGFnZW5cIixcbiAgICBcImhhdWdlblwiLFxuICAgIFwiaGF2bmFcIixcbiAgICBcImhvbHRldFwiLFxuICAgIFwiaMO4Z2RhXCIsXG4gICAgXCJqb3JkZXRcIixcbiAgICBcImtvbGxlblwiLFxuICAgIFwia3Jva2VuXCIsXG4gICAgXCJsaWFcIixcbiAgICBcImx1bmRlblwiLFxuICAgIFwibHluZ2VuXCIsXG4gICAgXCJsw7hra2FcIixcbiAgICBcIm1hcmthXCIsXG4gICAgXCJtb2VuXCIsXG4gICAgXCJteXJhXCIsXG4gICAgXCJwbGFzc2VuXCIsXG4gICAgXCJyaW5nZW5cIixcbiAgICBcInJvYVwiLFxuICAgIFwicsO4YVwiLFxuICAgIFwic2tvZ2VuXCIsXG4gICAgXCJza3JlbnRlblwiLFxuICAgIFwic3ByYW5nZXRcIixcbiAgICBcInN0aWVuXCIsXG4gICAgXCJzdHJhbmRhXCIsXG4gICAgXCJzdHViYmVuXCIsXG4gICAgXCJzdHlra2V0XCIsXG4gICAgXCJzdmluZ2VuXCIsXG4gICAgXCJ0amVybmV0XCIsXG4gICAgXCJ0b3BwZW5cIixcbiAgICBcInR1bmV0XCIsXG4gICAgXCJ2b2xsZW5cIixcbiAgICBcInZpa2FcIixcbiAgICBcIsOlc2VuXCJcbiAgXSxcbiAgXCJjb21tb25fc3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJzZ2F0ZVwiLFxuICAgIFwic3ZlaVwiLFxuICAgIFwicyBHYXRlXCIsXG4gICAgXCJzIFZlaVwiLFxuICAgIFwiZ2F0YVwiLFxuICAgIFwidmVpZW5cIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiTGVpbC4gIyMjXCIsXG4gICAgXCJPcHBnYW5nIEFcIixcbiAgICBcIk9wcGdhbmcgQlwiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjI1wiLFxuICAgIFwiIyMjI1wiLFxuICAgIFwiMCMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwiXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9yb290fSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7c3RyZWV0X3ByZWZpeH0gI3tzdHJlZXRfcm9vdH0je3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUuZmlyc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0je2NvbW1vbl9zdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiTm9yZ2VcIlxuICBdXG59O1xubmJfTk8uY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiR3J1cHBlblwiLFxuICAgIFwiQVNcIixcbiAgICBcIkFTQVwiLFxuICAgIFwiQkFcIixcbiAgICBcIlJGSFwiLFxuICAgIFwib2cgU8O4bm5lclwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LSN7TmFtZS5sYXN0X25hbWV9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSwgI3tOYW1lLmxhc3RfbmFtZX0gb2cgI3tOYW1lLmxhc3RfbmFtZX1cIlxuICBdXG59O1xubmJfTk8uaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJub1wiLFxuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5uYl9OTy5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiRW1tYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiVGhlYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJKdWxpZVwiLFxuICAgIFwiTm9yYVwiLFxuICAgIFwiRW1pbGllXCIsXG4gICAgXCJJbmdyaWRcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiU29maWVcIixcbiAgICBcIkFubmFcIixcbiAgICBcIk1hbGluXCIsXG4gICAgXCJBbWFsaWVcIixcbiAgICBcIlZpbGRlXCIsXG4gICAgXCJGcmlkYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJUdXZhXCIsXG4gICAgXCJWaWN0b3JpYVwiLFxuICAgIFwiTWlhXCIsXG4gICAgXCJLYXJvbGluZVwiLFxuICAgIFwiTWF0aGlsZGVcIixcbiAgICBcIk1hcnRpbmVcIixcbiAgICBcIkxpbm5lYVwiLFxuICAgIFwiTWFydGVcIixcbiAgICBcIkhlZGRhXCIsXG4gICAgXCJNYXJpZVwiLFxuICAgIFwiSGVsZW5lXCIsXG4gICAgXCJTaWxqZVwiLFxuICAgIFwiTGVhaFwiLFxuICAgIFwiTWFqYVwiLFxuICAgIFwiRWxpc2VcIixcbiAgICBcIk9kYVwiLFxuICAgIFwiS3Jpc3RpbmVcIixcbiAgICBcIkF1cm9yYVwiLFxuICAgIFwiS2FqYVwiLFxuICAgIFwiQ2FtaWxsYVwiLFxuICAgIFwiTWFyaVwiLFxuICAgIFwiTWFyZW5cIixcbiAgICBcIk1pbmFcIixcbiAgICBcIlNlbG1hXCIsXG4gICAgXCJKZW5ueVwiLFxuICAgIFwiQ2VsaW5lXCIsXG4gICAgXCJFbGluZVwiLFxuICAgIFwiU3Vubml2YVwiLFxuICAgIFwiTmF0YWxpZVwiLFxuICAgIFwiVGlyaWxcIixcbiAgICBcIlN5bm5lXCIsXG4gICAgXCJTYW5kcmFcIixcbiAgICBcIk1hZGVsZWluZVwiLFxuICAgIFwiTWFya3VzXCIsXG4gICAgXCJNYXRoaWFzXCIsXG4gICAgXCJLcmlzdGlhblwiLFxuICAgIFwiSm9uYXNcIixcbiAgICBcIkFuZHJlYXNcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJTYW5kZXJcIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiTWFnbnVzXCIsXG4gICAgXCJIZW5yaWtcIixcbiAgICBcIlRvYmlhc1wiLFxuICAgIFwiS3Jpc3RvZmZlclwiLFxuICAgIFwiRW1pbFwiLFxuICAgIFwiQWRyaWFuXCIsXG4gICAgXCJTZWJhc3RpYW5cIixcbiAgICBcIk1hcml1c1wiLFxuICAgIFwiRWxpYXNcIixcbiAgICBcIkZyZWRyaWtcIixcbiAgICBcIlRob21hc1wiLFxuICAgIFwiU29uZHJlXCIsXG4gICAgXCJCZW5qYW1pblwiLFxuICAgIFwiSmFrb2JcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiTHVjYXNcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJOaWtvbGFpXCIsXG4gICAgXCJGaWxpcFwiLFxuICAgIFwiTWF0c1wiLFxuICAgIFwiV2lsbGlhbVwiLFxuICAgIFwiRXJpa1wiLFxuICAgIFwiU2ltZW5cIixcbiAgICBcIk9sZVwiLFxuICAgIFwiRWlyaWtcIixcbiAgICBcIklzYWtcIixcbiAgICBcIkthc3BlclwiLFxuICAgIFwiTm9haFwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiSm9ha2ltXCIsXG4gICAgXCJKb2hhbm5lc1wiLFxuICAgIFwiSMOla29uXCIsXG4gICAgXCJTaW5kcmVcIixcbiAgICBcIkrDuHJnZW5cIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiQW5kZXJzXCIsXG4gICAgXCJKb25hdGhhblwiLFxuICAgIFwiRXZlblwiLFxuICAgIFwiVGhlb2RvclwiLFxuICAgIFwiTWlra2VsXCIsXG4gICAgXCJBa3NlbFwiXG4gIF0sXG4gIFwiZmVtaW5pbmVfbmFtZVwiOiBbXG4gICAgXCJFbW1hXCIsXG4gICAgXCJTYXJhXCIsXG4gICAgXCJUaGVhXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIkp1bGllXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJFbWlsaWVcIixcbiAgICBcIkluZ3JpZFwiLFxuICAgIFwiSGFubmFcIixcbiAgICBcIk1hcmlhXCIsXG4gICAgXCJTb2ZpZVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiTWFsaW5cIixcbiAgICBcIkFtYWxpZVwiLFxuICAgIFwiVmlsZGVcIixcbiAgICBcIkZyaWRhXCIsXG4gICAgXCJBbmRyZWFcIixcbiAgICBcIlR1dmFcIixcbiAgICBcIlZpY3RvcmlhXCIsXG4gICAgXCJNaWFcIixcbiAgICBcIkthcm9saW5lXCIsXG4gICAgXCJNYXRoaWxkZVwiLFxuICAgIFwiTWFydGluZVwiLFxuICAgIFwiTGlubmVhXCIsXG4gICAgXCJNYXJ0ZVwiLFxuICAgIFwiSGVkZGFcIixcbiAgICBcIk1hcmllXCIsXG4gICAgXCJIZWxlbmVcIixcbiAgICBcIlNpbGplXCIsXG4gICAgXCJMZWFoXCIsXG4gICAgXCJNYWphXCIsXG4gICAgXCJFbGlzZVwiLFxuICAgIFwiT2RhXCIsXG4gICAgXCJLcmlzdGluZVwiLFxuICAgIFwiQXVyb3JhXCIsXG4gICAgXCJLYWphXCIsXG4gICAgXCJDYW1pbGxhXCIsXG4gICAgXCJNYXJpXCIsXG4gICAgXCJNYXJlblwiLFxuICAgIFwiTWluYVwiLFxuICAgIFwiU2VsbWFcIixcbiAgICBcIkplbm55XCIsXG4gICAgXCJDZWxpbmVcIixcbiAgICBcIkVsaW5lXCIsXG4gICAgXCJTdW5uaXZhXCIsXG4gICAgXCJOYXRhbGllXCIsXG4gICAgXCJUaXJpbFwiLFxuICAgIFwiU3lubmVcIixcbiAgICBcIlNhbmRyYVwiLFxuICAgIFwiTWFkZWxlaW5lXCJcbiAgXSxcbiAgXCJtYXNjdWxpbmVfbmFtZVwiOiBbXG4gICAgXCJNYXJrdXNcIixcbiAgICBcIk1hdGhpYXNcIixcbiAgICBcIktyaXN0aWFuXCIsXG4gICAgXCJKb25hc1wiLFxuICAgIFwiQW5kcmVhc1wiLFxuICAgIFwiQWxleGFuZGVyXCIsXG4gICAgXCJNYXJ0aW5cIixcbiAgICBcIlNhbmRlclwiLFxuICAgIFwiRGFuaWVsXCIsXG4gICAgXCJNYWdudXNcIixcbiAgICBcIkhlbnJpa1wiLFxuICAgIFwiVG9iaWFzXCIsXG4gICAgXCJLcmlzdG9mZmVyXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJBZHJpYW5cIixcbiAgICBcIlNlYmFzdGlhblwiLFxuICAgIFwiTWFyaXVzXCIsXG4gICAgXCJFbGlhc1wiLFxuICAgIFwiRnJlZHJpa1wiLFxuICAgIFwiVGhvbWFzXCIsXG4gICAgXCJTb25kcmVcIixcbiAgICBcIkJlbmphbWluXCIsXG4gICAgXCJKYWtvYlwiLFxuICAgIFwiT2xpdmVyXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiT3NrYXJcIixcbiAgICBcIk5pa29sYWlcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJNYXRzXCIsXG4gICAgXCJXaWxsaWFtXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJTaW1lblwiLFxuICAgIFwiT2xlXCIsXG4gICAgXCJFaXJpa1wiLFxuICAgIFwiSXNha1wiLFxuICAgIFwiS2FzcGVyXCIsXG4gICAgXCJOb2FoXCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJKb2FraW1cIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJIw6Vrb25cIixcbiAgICBcIlNpbmRyZVwiLFxuICAgIFwiSsO4cmdlblwiLFxuICAgIFwiSGVybWFuXCIsXG4gICAgXCJBbmRlcnNcIixcbiAgICBcIkpvbmF0aGFuXCIsXG4gICAgXCJFdmVuXCIsXG4gICAgXCJUaGVvZG9yXCIsXG4gICAgXCJNaWtrZWxcIixcbiAgICBcIkFrc2VsXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiSm9oYW5zZW5cIixcbiAgICBcIkhhbnNlblwiLFxuICAgIFwiQW5kZXJzZW5cIixcbiAgICBcIktyaXN0aWFuc2VuXCIsXG4gICAgXCJMYXJzZW5cIixcbiAgICBcIk9sc2VuXCIsXG4gICAgXCJTb2xiZXJnXCIsXG4gICAgXCJBbmRyZXNlblwiLFxuICAgIFwiUGVkZXJzZW5cIixcbiAgICBcIk5pbHNlblwiLFxuICAgIFwiQmVyZ1wiLFxuICAgIFwiSGFsdm9yc2VuXCIsXG4gICAgXCJLYXJsc2VuXCIsXG4gICAgXCJTdmVuZHNlblwiLFxuICAgIFwiSmVuc2VuXCIsXG4gICAgXCJIYXVnZW5cIixcbiAgICBcIk1hcnRpbnNlblwiLFxuICAgIFwiRXJpa3NlblwiLFxuICAgIFwiU8O4cmVuc2VuXCIsXG4gICAgXCJKb2huc2VuXCIsXG4gICAgXCJNeWhyZXJcIixcbiAgICBcIkpvaGFubmVzc2VuXCIsXG4gICAgXCJOaWVsc2VuXCIsXG4gICAgXCJIYWdlblwiLFxuICAgIFwiUGV0dGVyc2VuXCIsXG4gICAgXCJCYWtrZVwiLFxuICAgIFwiU2t1dGVydWRcIixcbiAgICBcIkzDuGtlblwiLFxuICAgIFwiR3VuZGVyc2VuXCIsXG4gICAgXCJTdHJhbmRcIixcbiAgICBcIkrDuHJnZW5zZW5cIixcbiAgICBcIkt2YXJtZVwiLFxuICAgIFwiUsO4ZWRcIixcbiAgICBcIlPDpnRoZXJcIixcbiAgICBcIlN0ZW5zcnVkXCIsXG4gICAgXCJNb2VcIixcbiAgICBcIktyaXN0b2ZmZXJzZW5cIixcbiAgICBcIkpha29ic2VuXCIsXG4gICAgXCJIb2xtXCIsXG4gICAgXCJBYXNcIixcbiAgICBcIkxpZVwiLFxuICAgIFwiTW9lblwiLFxuICAgIFwiQW5kcmVhc3NlblwiLFxuICAgIFwiVmVkdmlrXCIsXG4gICAgXCJOZ3V5ZW5cIixcbiAgICBcIkphY29ic2VuXCIsXG4gICAgXCJUb3JnZXJzZW5cIixcbiAgICBcIlJ1dWRcIixcbiAgICBcIktyb2doXCIsXG4gICAgXCJDaHJpc3RpYW5zZW5cIixcbiAgICBcIkJqZXJrZVwiLFxuICAgIFwiQWFsZXJ1ZFwiLFxuICAgIFwiQm9yZ2VcIixcbiAgICBcIlPDuHJsaWVcIixcbiAgICBcIkJlcmdlXCIsXG4gICAgXCLDmHN0bGlcIixcbiAgICBcIsOYZGVnw6VyZFwiLFxuICAgIFwiVG9ycFwiLFxuICAgIFwiSGVucmlrc2VuXCIsXG4gICAgXCJIYXVrZWxpZHPDpnRlclwiLFxuICAgIFwiRmplbGRcIixcbiAgICBcIkRhbmllbHNlblwiLFxuICAgIFwiQWFzZW5cIixcbiAgICBcIkZyZWRyaWtzZW5cIixcbiAgICBcIkRhaGxcIixcbiAgICBcIkJlcm50c2VuXCIsXG4gICAgXCJBcm5lc2VuXCIsXG4gICAgXCJXb2xkXCIsXG4gICAgXCJUaG9yZXNlblwiLFxuICAgIFwiU29saGVpbVwiLFxuICAgIFwiU2tvZ2x1bmRcIixcbiAgICBcIkJha2tlblwiLFxuICAgIFwiQW11bmRzZW5cIixcbiAgICBcIlNvbGxpXCIsXG4gICAgXCJTbW9nZWxpXCIsXG4gICAgXCJLcmlzdGVuc2VuXCIsXG4gICAgXCJHbG9zbGlcIixcbiAgICBcIkZvc3N1bVwiLFxuICAgIFwiRXZlbnNlblwiLFxuICAgIFwiRWlkZVwiLFxuICAgIFwiQ2FybHNlblwiLFxuICAgIFwiw5hzdGJ5XCIsXG4gICAgXCJWZWdnZVwiLFxuICAgIFwiVGFuZ2VuXCIsXG4gICAgXCJTbWVkc3J1ZFwiLFxuICAgIFwiT2xzdGFkXCIsXG4gICAgXCJMdW5kZVwiLFxuICAgIFwiS2xldmVuXCIsXG4gICAgXCJIdXNlYnlcIixcbiAgICBcIkJqw7hybnN0YWRcIixcbiAgICBcIlJ5YW5cIixcbiAgICBcIlJhc211c3NlblwiLFxuICAgIFwiTnlnw6VyZFwiLFxuICAgIFwiTm9yZHNrYXVnXCIsXG4gICAgXCJOb3JkYnlcIixcbiAgICBcIk1hdGhpc2VuXCIsXG4gICAgXCJIb3BsYW5kXCIsXG4gICAgXCJHcmFuXCIsXG4gICAgXCJGaW5zdGFkXCIsXG4gICAgXCJFZHZhcmRzZW5cIlxuICBdLFxuICBcInByZWZpeFwiOiBbXG4gICAgXCJEci5cIixcbiAgICBcIlByb2YuXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiSnIuXCIsXG4gICAgXCJTci5cIixcbiAgICBcIklcIixcbiAgICBcIklJXCIsXG4gICAgXCJJSUlcIixcbiAgICBcIklWXCIsXG4gICAgXCJWXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje2ZlbWluaW5lX25hbWV9ICN7ZmVtaW5pbmVfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje21hc2N1bGluZV9uYW1lfSAje21hc2N1bGluZV9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xubmJfTk8ucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjIyMjIyNcIixcbiAgICBcIiMjICMjICMjICMjXCIsXG4gICAgXCIjIyMgIyMgIyMjXCIsXG4gICAgXCIrNDcgIyMgIyMgIyMgIyNcIlxuICBdXG59O1xuIiwidmFyIG5lcCA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IG5lcDtcbm5lcC50aXRsZSA9IFwiTmVwYWxlc2VcIjtcbm5lcC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyYXZcIixcbiAgICBcIkFqaXRhXCIsXG4gICAgXCJBbWl0XCIsXG4gICAgXCJBbWl0YVwiLFxuICAgIFwiQW1yaXRcIixcbiAgICBcIkFyaWppdFwiLFxuICAgIFwiQXNobWlcIixcbiAgICBcIkFzbWl0YVwiLFxuICAgIFwiQmliZWtcIixcbiAgICBcIkJpamF5XCIsXG4gICAgXCJCaWthc2hcIixcbiAgICBcIkJpbmFcIixcbiAgICBcIkJpc2hhbFwiLFxuICAgIFwiQmlzaG51XCIsXG4gICAgXCJCdWRkaGFcIixcbiAgICBcIkRlZXBpa2FcIixcbiAgICBcIkRpcGVuZHJhXCIsXG4gICAgXCJHYWdhblwiLFxuICAgIFwiR2FuZXNoXCIsXG4gICAgXCJLaGVtXCIsXG4gICAgXCJLcmlzaG5hXCIsXG4gICAgXCJMYXhtaVwiLFxuICAgIFwiTWFuaXNoYVwiLFxuICAgIFwiTmFiaW5cIixcbiAgICBcIk5pa2l0YVwiLFxuICAgIFwiTmlyYWpcIixcbiAgICBcIk5pc2NoYWxcIixcbiAgICBcIlBhZGFtXCIsXG4gICAgXCJQb29qYVwiLFxuICAgIFwiUHJhYmluXCIsXG4gICAgXCJQcmFrYXNoXCIsXG4gICAgXCJQcmFzaGFudFwiLFxuICAgIFwiUHJlbVwiLFxuICAgIFwiUHVybmFcIixcbiAgICBcIlJhamVuZHJhXCIsXG4gICAgXCJSYWppbmFcIixcbiAgICBcIlJhanVcIixcbiAgICBcIlJha2VzaFwiLFxuICAgIFwiUmFuamFuXCIsXG4gICAgXCJSYXRuYVwiLFxuICAgIFwiU2FnYXJcIixcbiAgICBcIlNhbmRlZXBcIixcbiAgICBcIlNhbmpheVwiLFxuICAgIFwiU2FudG9zaFwiLFxuICAgIFwiU2FyaXRhXCIsXG4gICAgXCJTaGlscGFcIixcbiAgICBcIlNoaXJpc2hhXCIsXG4gICAgXCJTaHJpc3RpXCIsXG4gICAgXCJTaWRkaGFydGhhXCIsXG4gICAgXCJTdWJhc2hcIixcbiAgICBcIlN1bWVldFwiLFxuICAgIFwiU3VuaXRhXCIsXG4gICAgXCJTdXJhalwiLFxuICAgIFwiU3VzYW5cIixcbiAgICBcIlN1c2hhbnRcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJBZGhpa2FyaVwiLFxuICAgIFwiQXJ5YWxcIixcbiAgICBcIkJhcmFsXCIsXG4gICAgXCJCYXNuZXRcIixcbiAgICBcIkJhc3RvbGFcIixcbiAgICBcIkJhc3luYXRcIixcbiAgICBcIkJoYW5kYXJpXCIsXG4gICAgXCJCaGF0dGFyYWlcIixcbiAgICBcIkNoZXR0cmlcIixcbiAgICBcIkRldmtvdGFcIixcbiAgICBcIkRoYWthbFwiLFxuICAgIFwiRG9uZ29sXCIsXG4gICAgXCJHaGFsZVwiLFxuICAgIFwiR3VydW5nXCIsXG4gICAgXCJHeWF3YWxpXCIsXG4gICAgXCJIYW1hbFwiLFxuICAgIFwiSnVuZ1wiLFxuICAgIFwiS0NcIixcbiAgICBcIkthZmxlXCIsXG4gICAgXCJLYXJraVwiLFxuICAgIFwiS2hhZGthXCIsXG4gICAgXCJLb2lyYWxhXCIsXG4gICAgXCJMYW1hXCIsXG4gICAgXCJMaW1idVwiLFxuICAgIFwiTWFnYXJcIixcbiAgICBcIk1haGFyamFuXCIsXG4gICAgXCJOaXJvdWxhXCIsXG4gICAgXCJQYW5kZXlcIixcbiAgICBcIlByYWRoYW5cIixcbiAgICBcIlJhbmFcIixcbiAgICBcIlJhdXRcIixcbiAgICBcIlNhaVwiLFxuICAgIFwiU2hhaVwiLFxuICAgIFwiU2hha3lhXCIsXG4gICAgXCJTaGVycGFcIixcbiAgICBcIlNocmVzdGhhXCIsXG4gICAgXCJTdWJlZGlcIixcbiAgICBcIlRhbWFuZ1wiLFxuICAgIFwiVGhhcGFcIlxuICBdXG59O1xubmVwLmFkZHJlc3MgPSB7XG4gIFwicG9zdGNvZGVcIjogW1xuICAgIDBcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJCYWdsdW5nXCIsXG4gICAgXCJCYW5rZVwiLFxuICAgIFwiQmFyYVwiLFxuICAgIFwiQmFyZGl5YVwiLFxuICAgIFwiQmhha3RhcHVyXCIsXG4gICAgXCJCaG9qdXB1XCIsXG4gICAgXCJDaGl0d2FuXCIsXG4gICAgXCJEYWlsZWtoXCIsXG4gICAgXCJEYW5nXCIsXG4gICAgXCJEaGFkaW5nXCIsXG4gICAgXCJEaGFua3V0YVwiLFxuICAgIFwiRGhhbnVzYVwiLFxuICAgIFwiRG9sYWtoYVwiLFxuICAgIFwiRG9scGhhXCIsXG4gICAgXCJHb3JraGFcIixcbiAgICBcIkd1bG1pXCIsXG4gICAgXCJIdW1sYVwiLFxuICAgIFwiSWxhbVwiLFxuICAgIFwiSmFqYXJrb3RcIixcbiAgICBcIkpoYXBhXCIsXG4gICAgXCJKdW1sYVwiLFxuICAgIFwiS2FiaHJlcGFsYW5jaG9rXCIsXG4gICAgXCJLYWxpa290XCIsXG4gICAgXCJLYXBpbHZhc3R1XCIsXG4gICAgXCJLYXNraVwiLFxuICAgIFwiS2F0aG1hbmR1XCIsXG4gICAgXCJMYWxpdHB1clwiLFxuICAgIFwiTGFtanVuZ1wiLFxuICAgIFwiTWFuYW5nXCIsXG4gICAgXCJNb2hvdHRhcmlcIixcbiAgICBcIk1vcmFuZ1wiLFxuICAgIFwiTXVndVwiLFxuICAgIFwiTXVzdGFuZ1wiLFxuICAgIFwiTXlhZ2RpXCIsXG4gICAgXCJOYXdhbHBhcmFzaVwiLFxuICAgIFwiTnV3YWtvdFwiLFxuICAgIFwiUGFscGFcIixcbiAgICBcIlBhcmJhdFwiLFxuICAgIFwiUGFyc2FcIixcbiAgICBcIlJhbWVjaGhhcFwiLFxuICAgIFwiUmF1c3dhXCIsXG4gICAgXCJSYXV0YWhhdFwiLFxuICAgIFwiUm9scGFcIixcbiAgICBcIlJ1cGFuZGVoaVwiLFxuICAgIFwiU2Fua2h1d2FzYWJoYVwiLFxuICAgIFwiU2FybGFoaVwiLFxuICAgIFwiU2luZGh1bGlcIixcbiAgICBcIlNpbmRodXBhbGNob2tcIixcbiAgICBcIlN1bnNhcmlcIixcbiAgICBcIlN1cmtldFwiLFxuICAgIFwiU3lhbmdqYVwiLFxuICAgIFwiVGFuYWh1XCIsXG4gICAgXCJUZXJoYXRodW1cIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiQmhha3RhcHVyXCIsXG4gICAgXCJCaXJhdG5hZ2FyXCIsXG4gICAgXCJCaXJlbmRyYW5hZ2FyXCIsXG4gICAgXCJCaXJndW5qXCIsXG4gICAgXCJCdXR3YWxcIixcbiAgICBcIkRhbWFrXCIsXG4gICAgXCJEaGFyYW5cIixcbiAgICBcIkdhdXJcIixcbiAgICBcIkdvcmtoYVwiLFxuICAgIFwiSGV0YXVkYVwiLFxuICAgIFwiSXRhaGFyaVwiLFxuICAgIFwiSmFuYWtwdXJcIixcbiAgICBcIkthdGhtYW5kdVwiLFxuICAgIFwiTGFoYW5cIixcbiAgICBcIk5lcGFsZ3VualwiLFxuICAgIFwiUG9raGFyYVwiXG4gIF0sXG4gIFwiZGVmYXVsdF9jb3VudHJ5XCI6IFtcbiAgICBcIk5lcGFsXCJcbiAgXVxufTtcbm5lcC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcIndvcmxkbGluay5jb20ubnBcIixcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJucFwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJuZXRcIixcbiAgICBcIm9yZ1wiXG4gIF1cbn07XG5uZXAuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiUHZ0IEx0ZFwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkx0ZFwiLFxuICAgIFwiTGltaXRlZFwiXG4gIF1cbn07XG5uZXAucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMtIyMjIyMjI1wiLFxuICAgIFwiKzk3Ny0jLSMjIyMjIyNcIixcbiAgICBcIis5NzcjIyMjIyMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgbmwgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBubDtcbm5sLnRpdGxlID0gXCJEdXRjaFwiO1xubmwuYWRkcmVzcyA9IHtcbiAgXCJjaXR5X3ByZWZpeFwiOiBbXG4gICAgXCJOb29yZFwiLFxuICAgIFwiT29zdFwiLFxuICAgIFwiV2VzdFwiLFxuICAgIFwiWnVpZFwiLFxuICAgIFwiTmlldXdcIixcbiAgICBcIk91ZFwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiZGFtXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCIgYWFuIGRlIFJpam5cIixcbiAgICBcIiBhYW4gZGUgSUpzc2VsXCIsXG4gICAgXCJzd2FlcmRcIixcbiAgICBcImVuZHJlY2h0XCIsXG4gICAgXCJyZWNodFwiLFxuICAgIFwiYW1iYWNodFwiLFxuICAgIFwiZW5tYWVzXCIsXG4gICAgXCJ3aWprXCIsXG4gICAgXCJzbGFuZFwiLFxuICAgIFwic3Ryb29tXCIsXG4gICAgXCJzbHV1c1wiLFxuICAgIFwiZGlqa1wiLFxuICAgIFwiZG9ycFwiLFxuICAgIFwiYnVyZ1wiLFxuICAgIFwidmVsZFwiLFxuICAgIFwic2x1aXNcIixcbiAgICBcImtvb3BcIixcbiAgICBcImxla1wiLFxuICAgIFwiaG91dFwiLFxuICAgIFwiZ2Vlc3RcIixcbiAgICBcImtlcmtcIixcbiAgICBcIndvdWRlXCIsXG4gICAgXCJob3ZlblwiLFxuICAgIFwiaG90ZW5cIixcbiAgICBcImluZ2VuXCIsXG4gICAgXCJwbGFzXCIsXG4gICAgXCJtZWVyXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7Y2l0eV9zdWZmaXh9XCIsXG4gICAgXCIje2NpdHlfcHJlZml4fSAje05hbWUuZmlyc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiLFxuICAgIFwiI3tjaXR5X3ByZWZpeH0gI3tOYW1lLmxhc3RfbmFtZX0je2NpdHlfc3VmZml4fVwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdoYW5pc3RhblwiLFxuICAgIFwiQWtyb3RpcmlcIixcbiAgICBcIkFsYmFuacOrXCIsXG4gICAgXCJBbGdlcmlqZVwiLFxuICAgIFwiQW1lcmlrYWFuc2UgTWFhZ2RlbmVpbGFuZGVuXCIsXG4gICAgXCJBbWVyaWthYW5zLVNhbW9hXCIsXG4gICAgXCJBbmRvcnJhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFuZ3VpbGxhXCIsXG4gICAgXCJBbnRhcmN0aWNhXCIsXG4gICAgXCJBbnRpZ3VhIGVuIEJhcmJ1ZGFcIixcbiAgICBcIkFyY3RpYyBPY2VhblwiLFxuICAgIFwiQXJnZW50aW5pw6tcIixcbiAgICBcIkFybWVuacOrXCIsXG4gICAgXCJBcnViYVwiLFxuICAgIFwiQXNobW9yZSBhbmQgQ2FydGllciBJc2xhbmRzXCIsXG4gICAgXCJBdGxhbnRpYyBPY2VhblwiLFxuICAgIFwiQXVzdHJhbGnDq1wiLFxuICAgIFwiQXplcmJlaWR6amFuXCIsXG4gICAgXCJCYWhhbWEnc1wiLFxuICAgIFwiQmFocmVpblwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJlbGFydXNcIixcbiAgICBcIkJlbGdpw6tcIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkJlcm11ZGFcIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQm9saXZpw6tcIixcbiAgICBcIkJvc25pw6stSGVyemVnb3ZpbmFcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCb3V2ZXQgSXNsYW5kXCIsXG4gICAgXCJCcmF6aWxpw6tcIixcbiAgICBcIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeVwiLFxuICAgIFwiQnJpdHNlIE1hYWdkZW5laWxhbmRlblwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJCdWxnYXJpamVcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2FtYm9kamFcIixcbiAgICBcIkNhbmFkYVwiLFxuICAgIFwiQ2F5bWFuZWlsYW5kZW5cIixcbiAgICBcIkNlbnRyYWFsLUFmcmlrYWFuc2UgUmVwdWJsaWVrXCIsXG4gICAgXCJDaGlsaVwiLFxuICAgIFwiQ2hpbmFcIixcbiAgICBcIkNocmlzdG1hcyBJc2xhbmRcIixcbiAgICBcIkNsaXBwZXJ0b24gSXNsYW5kXCIsXG4gICAgXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkNvbW9yZW4gKFVuaWUpXCIsXG4gICAgXCJDb25nbyAoRGVtb2NyYXRpc2NoZSBSZXB1YmxpZWspXCIsXG4gICAgXCJDb25nbyAoVm9sa3NyZXB1YmxpZWspXCIsXG4gICAgXCJDb29rXCIsXG4gICAgXCJDb3JhbCBTZWEgSXNsYW5kc1wiLFxuICAgIFwiQ29zdGEgUmljYVwiLFxuICAgIFwiQ3ViYVwiLFxuICAgIFwiQ3lwcnVzXCIsXG4gICAgXCJEZW5lbWFya2VuXCIsXG4gICAgXCJEaGVrZWxpYVwiLFxuICAgIFwiRGppYm91dGlcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJEb21pbmljYWFuc2UgUmVwdWJsaWVrXCIsXG4gICAgXCJEdWl0c2xhbmRcIixcbiAgICBcIkVjdWFkb3JcIixcbiAgICBcIkVneXB0ZVwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIkVxdWF0b3JpYWFsLUd1aW5lYVwiLFxuICAgIFwiRXJpdHJlYVwiLFxuICAgIFwiRXN0bGFuZFwiLFxuICAgIFwiRXRoaW9wacOrXCIsXG4gICAgXCJFdXJvcGVhbiBVbmlvblwiLFxuICAgIFwiRmFsa2xhbmRcIixcbiAgICBcIkZhcm9lIElzbGFuZHNcIixcbiAgICBcIkZpamlcIixcbiAgICBcIkZpbGlwaWpuZW5cIixcbiAgICBcIkZpbmxhbmRcIixcbiAgICBcIkZyYW5rcmlqa1wiLFxuICAgIFwiRnJhbnMtUG9seW5lc2nDq1wiLFxuICAgIFwiRnJlbmNoIFNvdXRoZXJuIGFuZCBBbnRhcmN0aWMgTGFuZHNcIixcbiAgICBcIkdhYm9uXCIsXG4gICAgXCJHYW1iaWFcIixcbiAgICBcIkdhemEgU3RyaXBcIixcbiAgICBcIkdlb3JnacOrXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR2licmFsdGFyXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcmlla2VubGFuZFwiLFxuICAgIFwiR3JvZW5sYW5kXCIsXG4gICAgXCJHdWFtXCIsXG4gICAgXCJHdWF0ZW1hbGFcIixcbiAgICBcIkd1ZXJuc2V5XCIsXG4gICAgXCJHdWluZWFcIixcbiAgICBcIkd1aW5lZS1CaXNzYXVcIixcbiAgICBcIkd1eWFuYVwiLFxuICAgIFwiSGHDr3RpXCIsXG4gICAgXCJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHNcIixcbiAgICBcIkhlaWxpZ2UgU3RvZWxcIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJIb25nYXJpamVcIixcbiAgICBcIkhvbmdrb25nXCIsXG4gICAgXCJJZXJsYW5kXCIsXG4gICAgXCJJSnNsYW5kXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWFuIE9jZWFuXCIsXG4gICAgXCJJbmRvbmVzacOrXCIsXG4gICAgXCJJcmFrXCIsXG4gICAgXCJJcmFuXCIsXG4gICAgXCJJc2xlIG9mIE1hblwiLFxuICAgIFwiSXNyYcOrbFwiLFxuICAgIFwiSXRhbGnDq1wiLFxuICAgIFwiSXZvb3JrdXN0XCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJKYW4gTWF5ZW5cIixcbiAgICBcIkphcGFuXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3JkYW5pw6tcIixcbiAgICBcIkthYXB2ZXJkacOrXCIsXG4gICAgXCJLYW1lcm9lblwiLFxuICAgIFwiS2F6YWNoc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpenN0YW5cIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLb2V3ZWl0XCIsXG4gICAgXCJLcm9hdGnDq1wiLFxuICAgIFwiTGFvc1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGV0bGFuZFwiLFxuICAgIFwiTGliYW5vblwiLFxuICAgIFwiTGliZXJpYVwiLFxuICAgIFwiTGliacOrXCIsXG4gICAgXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgXCJMaXRvdXdlblwiLFxuICAgIFwiTHV4ZW1idXJnXCIsXG4gICAgXCJNYWNhb1wiLFxuICAgIFwiTWFjZWRvbmnDq1wiLFxuICAgIFwiTWFkYWdhc2thclwiLFxuICAgIFwiTWFsYXdpXCIsXG4gICAgXCJNYWxkaXZlblwiLFxuICAgIFwiTWFsZWlzacOrXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2trb1wiLFxuICAgIFwiTWFyc2hhbGwgSXNsYW5kc1wiLFxuICAgIFwiTWF1cml0YW5pw6tcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTWV4aWNvXCIsXG4gICAgXCJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mXCIsXG4gICAgXCJNb2xkYXZpw6tcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiTW9uZ29sacOrXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJNb250c2VycmF0XCIsXG4gICAgXCJNb3phbWJpcXVlXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmnDq1wiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5hdmFzc2EgSXNsYW5kXCIsXG4gICAgXCJOZWRlcmxhbmRcIixcbiAgICBcIk5lZGVybGFuZHNlIEFudGlsbGVuXCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiTmd3YW5lXCIsXG4gICAgXCJOaWNhcmFndWFcIixcbiAgICBcIk5pZXV3LUNhbGVkb25pw6tcIixcbiAgICBcIk5pZXV3LVplZWxhbmRcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaXVlXCIsXG4gICAgXCJOb29yZGVsaWprZSBNYXJpYW5lblwiLFxuICAgIFwiTm9vcmQtS29yZWFcIixcbiAgICBcIk5vb3J3ZWdlblwiLFxuICAgIFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICBcIk9la3Jhw69uZVwiLFxuICAgIFwiT2V6YmVraXN0YW5cIixcbiAgICBcIk9tYW5cIixcbiAgICBcIk9vc3RlbnJpamtcIixcbiAgICBcIlBhY2lmaWMgT2NlYW5cIixcbiAgICBcIlBha2lzdGFuXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiUGFuYW1hXCIsXG4gICAgXCJQYXBvZWEtTmlldXctR3VpbmVhXCIsXG4gICAgXCJQYXJhY2VsIElzbGFuZHNcIixcbiAgICBcIlBhcmFndWF5XCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQaXRjYWlyblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIlJvZW1lbmnDq1wiLFxuICAgIFwiUnVzbGFuZFwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJTYWludCBIZWxlbmFcIixcbiAgICBcIlNhaW50IEx1Y2lhXCIsXG4gICAgXCJTYWludCBWaW5jZW50IGVuIGRlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhaW50LVBpZXJyZSBlbiBNaXF1ZWxvblwiLFxuICAgIFwiU2Fsb21vblwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlPDo28gVG9tw6kgZW4gUHJpbmNpcGVcIixcbiAgICBcIlNhdWRpLUFyYWJpw6tcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNlcnZpw6tcIixcbiAgICBcIlNleWNoZWxsZW5cIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJTaW50LUtpdHRzIGVuIE5ldmlzXCIsXG4gICAgXCJTbG92ZW5pw6tcIixcbiAgICBcIlNsb3dha2lqZVwiLFxuICAgIFwiU29lZGFuXCIsXG4gICAgXCJTb21hbGnDq1wiLFxuICAgIFwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNvdXRoZXJuIE9jZWFuXCIsXG4gICAgXCJTcGFuamVcIixcbiAgICBcIlNwcmF0bHkgSXNsYW5kc1wiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdXJpbmFtZVwiLFxuICAgIFwiU3ZhbGJhcmRcIixcbiAgICBcIlN5cmnDq1wiLFxuICAgIFwiVGFkemppa2lzdGFuXCIsXG4gICAgXCJUYWl3YW5cIixcbiAgICBcIlRhbnphbmlhXCIsXG4gICAgXCJUaGFpbGFuZFwiLFxuICAgIFwiVGltb3IgTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWRhZCBlbiBUb2JhZ29cIixcbiAgICBcIlRzamFhZFwiLFxuICAgIFwiVHNqZWNoacOrXCIsXG4gICAgXCJUdW5lc2nDq1wiLFxuICAgIFwiVHVya2lqZVwiLFxuICAgIFwiVHVya21lbmlzdGFuXCIsXG4gICAgXCJUdXJrcy1lbiBDYWljb3NlaWxhbmRlblwiLFxuICAgIFwiVHV2YWx1XCIsXG4gICAgXCJVZ2FuZGFcIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVyZW5pZ2QgS29uaW5rcmlqa1wiLFxuICAgIFwiVmVyZW5pZ2RlIEFyYWJpc2NoZSBFbWlyYXRlblwiLFxuICAgIFwiVmVyZW5pZ2RlIFN0YXRlbiB2YW4gQW1lcmlrYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiV2FrZSBJc2xhbmRcIixcbiAgICBcIldhbGxpcyBlbiBGdXR1bmFcIixcbiAgICBcIldlcmVsZFwiLFxuICAgIFwiV2VzdCBCYW5rXCIsXG4gICAgXCJXZXN0ZWxpamtlIFNhaGFyYVwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiWnVpZC1BZnJpa2FcIixcbiAgICBcIlp1aWQtS29yZWFcIixcbiAgICBcIlp3ZWRlblwiLFxuICAgIFwiWndpdHNlcmxhbmRcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiLFxuICAgIFwiIyMjXCIsXG4gICAgXCIjIyNhXCIsXG4gICAgXCIjIyNiXCIsXG4gICAgXCIjIyNjXCIsXG4gICAgXCIjIyMgSVwiLFxuICAgIFwiIyMjIElJXCIsXG4gICAgXCIjIyMgSUlJXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcInN0cmFhdFwiLFxuICAgIFwibGFhblwiLFxuICAgIFwid2VnXCIsXG4gICAgXCJwbGFudHNvZW5cIixcbiAgICBcInBhcmtcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIjEgaG9vZ1wiLFxuICAgIFwiMiBob29nXCIsXG4gICAgXCIzIGhvb2dcIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9I3tzdHJlZXRfc3VmZml4fVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjID8/XCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJOb29yZC1Ib2xsYW5kXCIsXG4gICAgXCJadWlkLUhvbGxhbmRcIixcbiAgICBcIlV0cmVjaHRcIixcbiAgICBcIlplZWxhbmRcIixcbiAgICBcIk92ZXJpanNzZWxcIixcbiAgICBcIkdlbGRlcmxhbmRcIixcbiAgICBcIkRyZW50aGVcIixcbiAgICBcIkZyaWVzbGFuZFwiLFxuICAgIFwiR3JvbmluZ2VuXCIsXG4gICAgXCJOb29yZC1CcmFiYW50XCIsXG4gICAgXCJMaW1idXJnXCIsXG4gICAgXCJGbGV2b2xhbmRcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJOZWRlcmxhbmRcIlxuICBdXG59O1xubmwuY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwiQlZcIixcbiAgICBcIlYuTy5GLlwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcImVuIFpvbmVuXCJcbiAgXVxufTtcbm5sLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCJcbiAgXSxcbiAgXCJkb21haW5fc3VmZml4XCI6IFtcbiAgICBcIm5sXCIsXG4gICAgXCJjb21cIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbm5sLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xubmwubmFtZSA9IHtcbiAgXCJmaXJzdF9uYW1lXCI6IFtcbiAgICBcIkFtYmVyXCIsXG4gICAgXCJBbm5hXCIsXG4gICAgXCJBbm5lXCIsXG4gICAgXCJBbm91a1wiLFxuICAgIFwiQmFzXCIsXG4gICAgXCJCcmFtXCIsXG4gICAgXCJCcml0dFwiLFxuICAgIFwiRGFhblwiLFxuICAgIFwiRW1tYVwiLFxuICAgIFwiRXZhXCIsXG4gICAgXCJGZW1rZVwiLFxuICAgIFwiRmlublwiLFxuICAgIFwiRmxldXJcIixcbiAgICBcIklyaXNcIixcbiAgICBcIklzYVwiLFxuICAgIFwiSmFuXCIsXG4gICAgXCJKYXNwZXJcIixcbiAgICBcIkpheWRlblwiLFxuICAgIFwiSmVzc2VcIixcbiAgICBcIkpvaGFubmVzXCIsXG4gICAgXCJKdWxpYVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJLZXZpblwiLFxuICAgIFwiTGFyc1wiLFxuICAgIFwiTGlla2VcIixcbiAgICBcIkxpc2FcIixcbiAgICBcIkxvdHRlXCIsXG4gICAgXCJMdWNhc1wiLFxuICAgIFwiTHV1a1wiLFxuICAgIFwiTWF1ZFwiLFxuICAgIFwiTWF4XCIsXG4gICAgXCJNaWtlXCIsXG4gICAgXCJNaWxhblwiLFxuICAgIFwiTmlja1wiLFxuICAgIFwiTmllbHNcIixcbiAgICBcIk5vYVwiLFxuICAgIFwiUmlja1wiLFxuICAgIFwiUm9vc1wiLFxuICAgIFwiUnViZW5cIixcbiAgICBcIlNhbmRlclwiLFxuICAgIFwiU2FubmVcIixcbiAgICBcIlNlbVwiLFxuICAgIFwiU29waGllXCIsXG4gICAgXCJTdGlqblwiLFxuICAgIFwiU3ZlblwiLFxuICAgIFwiVGhpanNcIixcbiAgICBcIlRoaWpzXCIsXG4gICAgXCJUaG9tYXNcIixcbiAgICBcIlRpbVwiLFxuICAgIFwiVG9tXCJcbiAgXSxcbiAgXCJ0dXNzZW52b2Vnc2VsXCI6IFtcbiAgICBcInZhblwiLFxuICAgIFwidmFuIGRlXCIsXG4gICAgXCJ2YW4gZGVuXCIsXG4gICAgXCJ2YW4gJ3RcIixcbiAgICBcInZhbiBoZXRcIixcbiAgICBcImRlXCIsXG4gICAgXCJkZW5cIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJCYWtrZXJcIixcbiAgICBcIkJlZWtcIixcbiAgICBcIkJlcmdcIixcbiAgICBcIkJvZXJcIixcbiAgICBcIkJvc1wiLFxuICAgIFwiQm9zY2hcIixcbiAgICBcIkJyaW5rXCIsXG4gICAgXCJCcm9la1wiLFxuICAgIFwiQnJvdXdlclwiLFxuICAgIFwiQnJ1aW5cIixcbiAgICBcIkRhbVwiLFxuICAgIFwiRGVra2VyXCIsXG4gICAgXCJEaWprXCIsXG4gICAgXCJEaWprc3RyYVwiLFxuICAgIFwiR3JhYWZcIixcbiAgICBcIkdyb290XCIsXG4gICAgXCJIYWFuXCIsXG4gICAgXCJIZW5kcmlrc1wiLFxuICAgIFwiSGV1dmVsXCIsXG4gICAgXCJIb2VrXCIsXG4gICAgXCJKYWNvYnNcIixcbiAgICBcIkphbnNlblwiLFxuICAgIFwiSmFuc3NlblwiLFxuICAgIFwiSm9uZ1wiLFxuICAgIFwiS2xlaW5cIixcbiAgICBcIktva1wiLFxuICAgIFwiS29uaW5nXCIsXG4gICAgXCJLb3N0ZXJcIixcbiAgICBcIkxlZXV3ZW5cIixcbiAgICBcIkxpbmRlblwiLFxuICAgIFwiTWFhc1wiLFxuICAgIFwiTWVlclwiLFxuICAgIFwiTWVpamVyXCIsXG4gICAgXCJNdWxkZXJcIixcbiAgICBcIlBldGVyc1wiLFxuICAgIFwiUnVpdGVyXCIsXG4gICAgXCJTY2hvdXRlblwiLFxuICAgIFwiU21pdFwiLFxuICAgIFwiU21pdHNcIixcbiAgICBcIlN0aWNodGluZ1wiLFxuICAgIFwiVmVlblwiLFxuICAgIFwiVmVuXCIsXG4gICAgXCJWZXJtZXVsZW5cIixcbiAgICBcIlZpc3NlclwiLFxuICAgIFwiVmxpZXRcIixcbiAgICBcIlZvc1wiLFxuICAgIFwiVnJpZXNcIixcbiAgICBcIldhbFwiLFxuICAgIFwiV2lsbGVtc1wiLFxuICAgIFwiV2l0XCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiRGhyLlwiLFxuICAgIFwiTWV2ci4gRHIuXCIsXG4gICAgXCJCc2NcIixcbiAgICBcIk1zY1wiLFxuICAgIFwiUHJvZi5cIlxuICBdLFxuICBcInN1ZmZpeFwiOiBbXG4gICAgXCJKci5cIixcbiAgICBcIlNyLlwiLFxuICAgIFwiSVwiLFxuICAgIFwiSUlcIixcbiAgICBcIklJSVwiLFxuICAgIFwiSVZcIixcbiAgICBcIlZcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje3R1c3NlbnZvZWdzZWx9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje3R1c3NlbnZvZWdzZWx9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG5ubC5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIoIyMjIykgIyMjIyMjXCIsXG4gICAgXCIjIyMjIyMjIyMjXCIsXG4gICAgXCIwNiMjIyMjIyMjXCIsXG4gICAgXCIwNiAjIyMjICMjIyNcIlxuICBdXG59O1xuIiwidmFyIHBsID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gcGw7XG5wbC50aXRsZSA9IFwiUG9saXNoXCI7XG5wbC5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWFyb25cIixcbiAgICBcIkFicmFoYW1cIixcbiAgICBcIkFkYW1cIixcbiAgICBcIkFkcmlhblwiLFxuICAgIFwiQXRhbmF6eVwiLFxuICAgIFwiQWdhdG9uXCIsXG4gICAgXCJBbGFuXCIsXG4gICAgXCJBbGJlcnRcIixcbiAgICBcIkFsZWtzYW5kZXJcIixcbiAgICBcIkFsZWtzeVwiLFxuICAgIFwiQWxmcmVkXCIsXG4gICAgXCJBbHdhclwiLFxuICAgIFwiQW1icm/FvHlcIixcbiAgICBcIkFuYXRvbFwiLFxuICAgIFwiQW5kcnplalwiLFxuICAgIFwiQW50b25pXCIsXG4gICAgXCJBcG9sbGluYXJ5XCIsXG4gICAgXCJBcG9sbG9cIixcbiAgICBcIkFya2FkeVwiLFxuICAgIFwiQXJrYWRpdXN6XCIsXG4gICAgXCJBcmNoaWJhbGRcIixcbiAgICBcIkFyeXN0YXJjaFwiLFxuICAgIFwiQXJub2xkXCIsXG4gICAgXCJBcnNlbml1c3pcIixcbiAgICBcIkFydHVyXCIsXG4gICAgXCJBdWd1c3RcIixcbiAgICBcIkJhbGR3aW5cIixcbiAgICBcIkJhenlsaVwiLFxuICAgIFwiQmVuZWR5a3RcIixcbiAgICBcIkJlbmlhbWluXCIsXG4gICAgXCJCZXJuYXJkXCIsXG4gICAgXCJCZXJ0cmFuZFwiLFxuICAgIFwiQmVydHJhbVwiLFxuICAgIFwiQm9yeXNcIixcbiAgICBcIkJyYWphblwiLFxuICAgIFwiQnJ1bm9cIixcbiAgICBcIkNlemFyeVwiLFxuICAgIFwiQ2VjeWxpdXN6XCIsXG4gICAgXCJLYXJvbFwiLFxuICAgIFwiS3J5c3RpYW5cIixcbiAgICBcIktyenlzenRvZlwiLFxuICAgIFwiS2xhcmVuY2p1c3pcIixcbiAgICBcIktsYXVkaXVzelwiLFxuICAgIFwiS2xlbWVuc1wiLFxuICAgIFwiS29ucmFkXCIsXG4gICAgXCJLb25zdGFudHlcIixcbiAgICBcIktvbnN0YW50eW5cIixcbiAgICBcIktvcm5lbFwiLFxuICAgIFwiS29ybmVsaXVzelwiLFxuICAgIFwiS29ybmVsaVwiLFxuICAgIFwiQ3lyeWxcIixcbiAgICBcIkN5cnVzXCIsXG4gICAgXCJEYW1pYW5cIixcbiAgICBcIkRhbmllbFwiLFxuICAgIFwiRGFyaXVzelwiLFxuICAgIFwiRGF3aWRcIixcbiAgICBcIkRpb25penlcIixcbiAgICBcIkRlbWV0cml1c3pcIixcbiAgICBcIkRvbWluaWtcIixcbiAgICBcIkRvbmFsZFwiLFxuICAgIFwiRG9yaWFuXCIsXG4gICAgXCJFZGdhclwiLFxuICAgIFwiRWRtdW5kXCIsXG4gICAgXCJFZHdhcmRcIixcbiAgICBcIkVkd2luXCIsXG4gICAgXCJFZnJlbVwiLFxuICAgIFwiRWZyYWltXCIsXG4gICAgXCJFbGlhc3pcIixcbiAgICBcIkVsZWF6YXJcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIkVyYXN0XCIsXG4gICAgXCJFcm5lc3RcIixcbiAgICBcIkV1Z2VuaXVzelwiLFxuICAgIFwiRXVzdHJhY2p1c3pcIixcbiAgICBcIkZhYmlhblwiLFxuICAgIFwiRmVsaWtzXCIsXG4gICAgXCJGbG9yaWFuXCIsXG4gICAgXCJGcmFuY2lzemVrXCIsXG4gICAgXCJGcnlkZXJ5a1wiLFxuICAgIFwiR2FicmllbFwiLFxuICAgIFwiR2VkZW9uXCIsXG4gICAgXCJHYWxmcnlkXCIsXG4gICAgXCJKZXJ6eVwiLFxuICAgIFwiR2VyYWxkXCIsXG4gICAgXCJHZXJhenltXCIsXG4gICAgXCJHaWxiZXJ0XCIsXG4gICAgXCJHb25zYWx3eVwiLFxuICAgIFwiR3J6ZWdvcnpcIixcbiAgICBcIkd3aWRvXCIsXG4gICAgXCJIYXJhbGRcIixcbiAgICBcIkhlbnJ5a1wiLFxuICAgIFwiSGVyYmVydFwiLFxuICAgIFwiSGVybWFuXCIsXG4gICAgXCJIaWxhcnlcIixcbiAgICBcIkhvcmFjeVwiLFxuICAgIFwiSHViZXJ0XCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJJZ25hY3lcIixcbiAgICBcIklnb3JcIixcbiAgICBcIkhpbGFyaW9uXCIsXG4gICAgXCJJbm5vY2VudHlcIixcbiAgICBcIkhpcG9saXRcIixcbiAgICBcIklyZW5ldXN6XCIsXG4gICAgXCJFcndpblwiLFxuICAgIFwiSXphYWtcIixcbiAgICBcIkl6YWphc3pcIixcbiAgICBcIkl6eWRvclwiLFxuICAgIFwiSmFrdWJcIixcbiAgICBcIkplcmVtaVwiLFxuICAgIFwiSmVyZW1pYXN6XCIsXG4gICAgXCJIaWVyb25pbVwiLFxuICAgIFwiR2VyYWxkXCIsXG4gICAgXCJKb2FjaGltXCIsXG4gICAgXCJKYW5cIixcbiAgICBcIkphbnVzelwiLFxuICAgIFwiSm9uYXRhblwiLFxuICAgIFwiSsOzemVmXCIsXG4gICAgXCJKb3p1ZVwiLFxuICAgIFwiSnVsaWFuXCIsXG4gICAgXCJKdWxpdXN6XCIsXG4gICAgXCJKdXN0eW5cIixcbiAgICBcIkthbGlzdHJhdFwiLFxuICAgIFwiS2F6aW1pZXJ6XCIsXG4gICAgXCJXYXdyenluaWVjXCIsXG4gICAgXCJMYXVyZW50eVwiLFxuICAgIFwiTGF1cmVuY2p1c3pcIixcbiAgICBcIsWBYXphcnpcIixcbiAgICBcIkxlb25cIixcbiAgICBcIkxlb25hcmRcIixcbiAgICBcIkxlb25pZFwiLFxuICAgIFwiTGVvblwiLFxuICAgIFwiTHVkd2lrXCIsXG4gICAgXCLFgXVrYXN6XCIsXG4gICAgXCJMdWNqYW5cIixcbiAgICBcIk1hZ251c1wiLFxuICAgIFwiTWFrYXJ5XCIsXG4gICAgXCJNYXJjZWxpXCIsXG4gICAgXCJNYXJla1wiLFxuICAgIFwiTWFyY2luXCIsXG4gICAgXCJNYXRldXN6XCIsXG4gICAgXCJNYXVyeWN5XCIsXG4gICAgXCJNYWtzeW1cIixcbiAgICBcIk1ha3N5bWlsaWFuXCIsXG4gICAgXCJNaWNoYcWCXCIsXG4gICAgXCJNaXJvblwiLFxuICAgIFwiTW9kZXN0XCIsXG4gICAgXCJNb2rFvGVzelwiLFxuICAgIFwiTmF0YW5cIixcbiAgICBcIk5hdGFuYWVsXCIsXG4gICAgXCJOYXphcml1c3pcIixcbiAgICBcIk5hemFyeVwiLFxuICAgIFwiTmVzdG9yXCIsXG4gICAgXCJNaWtvxYJhalwiLFxuICAgIFwiTmlrb2RlbVwiLFxuICAgIFwiT2xhZlwiLFxuICAgIFwiT2xlZ1wiLFxuICAgIFwiT2xpd2llclwiLFxuICAgIFwiT251ZnJ5XCIsXG4gICAgXCJPcmVzdGVzXCIsXG4gICAgXCJPc2thclwiLFxuICAgIFwiQW5zZ2FyeVwiLFxuICAgIFwiT3NtdW5kXCIsXG4gICAgXCJQYW5rcmFjeVwiLFxuICAgIFwiUGFudGFsZW9uXCIsXG4gICAgXCJQYXRyeWtcIixcbiAgICBcIlBhdHJ5Y2p1c3pcIixcbiAgICBcIlBhdHJ5Y3lcIixcbiAgICBcIlBhd2XFglwiLFxuICAgIFwiUGlvdHJcIixcbiAgICBcIkZpbGVtb25cIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJQbGF0b25cIixcbiAgICBcIlBvbGlrYXJwXCIsXG4gICAgXCJQb3JmaXJ5XCIsXG4gICAgXCJQb3JmaXJpdXN6XCIsXG4gICAgXCJQcm9rbGVzXCIsXG4gICAgXCJQcm9rdWxcIixcbiAgICBcIlByb2tvcFwiLFxuICAgIFwiS3dpbnR5blwiLFxuICAgIFwiUmFuZG9sZlwiLFxuICAgIFwiUmFmYcWCXCIsXG4gICAgXCJSYWptdW5kXCIsXG4gICAgXCJSZWdpbmFsZFwiLFxuICAgIFwiUmFqbm9sZFwiLFxuICAgIFwiUnlzemFyZFwiLFxuICAgIFwiUm9iZXJ0XCIsXG4gICAgXCJSb2RlcnlrXCIsXG4gICAgXCJSb2dlclwiLFxuICAgIFwiUm9sYW5kXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiUm9tZW9cIixcbiAgICBcIlJlZ2luYWxkXCIsXG4gICAgXCJSdWRvbGZcIixcbiAgICBcIlNhbXNvblwiLFxuICAgIFwiU2FtdWVsXCIsXG4gICAgXCJTYWx3YXRvclwiLFxuICAgIFwiU2ViYXN0aWFuXCIsXG4gICAgXCJTZXJhZmluXCIsXG4gICAgXCJTZXJnaXVzelwiLFxuICAgIFwiU2V3ZXJ5blwiLFxuICAgIFwiWnlnbXVudFwiLFxuICAgIFwiU3lsd2VzdGVyXCIsXG4gICAgXCJTenltb25cIixcbiAgICBcIlNhbG9tb25cIixcbiAgICBcIlNwaXJ5ZGlvblwiLFxuICAgIFwiU3RhbmlzxYJhd1wiLFxuICAgIFwiU3pjemVwYW5cIixcbiAgICBcIlN0ZWZhblwiLFxuICAgIFwiVGVyZW5janVzelwiLFxuICAgIFwiVGVvZG9yXCIsXG4gICAgXCJUb21hc3pcIixcbiAgICBcIlR5bW90ZXVzelwiLFxuICAgIFwiVG9iaWFzelwiLFxuICAgIFwiV2FsZW50eVwiLFxuICAgIFwiV2FsZW50eW5cIixcbiAgICBcIldhbGVyaWFuXCIsXG4gICAgXCJXYWxlcnlcIixcbiAgICBcIldpa3RvclwiLFxuICAgIFwiV2luY2VudHlcIixcbiAgICBcIldpdGFsaXNcIixcbiAgICBcIlfFgm9kemltaWVyelwiLFxuICAgIFwiV8WCYWR5c8WCYXdcIixcbiAgICBcIkLFgmHFvGVqXCIsXG4gICAgXCJXYWx0ZXJcIixcbiAgICBcIldhbGdpZXJ6XCIsXG4gICAgXCJXYWPFgmF3XCIsXG4gICAgXCJXaWxmcnlkXCIsXG4gICAgXCJXaWxoZWxtXCIsXG4gICAgXCJLc2F3ZXJ5XCIsXG4gICAgXCJLc2Vub2ZvbnRcIixcbiAgICBcIkplcnp5XCIsXG4gICAgXCJaYWNoYXJpYXN6XCIsXG4gICAgXCJaYWNoYXJ5XCIsXG4gICAgXCJBZGFcIixcbiAgICBcIkFkZWxhamRhXCIsXG4gICAgXCJBZ2F0YVwiLFxuICAgIFwiQWduaWVzemthXCIsXG4gICAgXCJBZ3J5cGluYVwiLFxuICAgIFwiQWlkYVwiLFxuICAgIFwiQWxla3NhbmRyYVwiLFxuICAgIFwiQWxpY2phXCIsXG4gICAgXCJBbGluYVwiLFxuICAgIFwiQW1hbmRhXCIsXG4gICAgXCJBbmFzdGF6amFcIixcbiAgICBcIkFuZ2VsYVwiLFxuICAgIFwiQW5kxbxlbGlrYVwiLFxuICAgIFwiQW5nZWxpbmFcIixcbiAgICBcIkFubmFcIixcbiAgICBcIkhhbm5hXCIsXG4gICAgXCLigJRcIixcbiAgICBcIkFudG9uaW5hXCIsXG4gICAgXCJBcmlhZG5hXCIsXG4gICAgXCJBdXJvcmFcIixcbiAgICBcIkJhcmJhcmFcIixcbiAgICBcIkJlYXRyeWN6ZVwiLFxuICAgIFwiQmVydGFcIixcbiAgICBcIkJyeWdpZGFcIixcbiAgICBcIkthbWlsYVwiLFxuICAgIFwiS2Fyb2xpbmFcIixcbiAgICBcIkthcm9saW5hXCIsXG4gICAgXCJLb3JuZWxpYVwiLFxuICAgIFwiS2F0YXJ6eW5hXCIsXG4gICAgXCJDZWN5bGlhXCIsXG4gICAgXCJLYXJvbGluYVwiLFxuICAgIFwiQ2hsb2VcIixcbiAgICBcIktyeXN0eW5hXCIsXG4gICAgXCJLbGFyYVwiLFxuICAgIFwiS2xhdWRpYVwiLFxuICAgIFwiS2xlbWVudHluYVwiLFxuICAgIFwiS29uc3RhbmNqYVwiLFxuICAgIFwiS29yYWxpYVwiLFxuICAgIFwiRGFyaWFcIixcbiAgICBcIkRpYW5hXCIsXG4gICAgXCJEaW5hXCIsXG4gICAgXCJEb3JvdGFcIixcbiAgICBcIkVkeXRhXCIsXG4gICAgXCJFbGVvbm9yYVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIkVsxbxiaWV0YVwiLFxuICAgIFwiSXphYmVsYVwiLFxuICAgIFwiRWx3aXJhXCIsXG4gICAgXCJFbWlsaWFcIixcbiAgICBcIkVzdGVyYVwiLFxuICAgIFwiRXVkb2tzamFcIixcbiAgICBcIkV1ZG9raWFcIixcbiAgICBcIkV1Z2VuaWFcIixcbiAgICBcIkV3YVwiLFxuICAgIFwiRXdlbGluYVwiLFxuICAgIFwiRmVyZHluYW5kYVwiLFxuICAgIFwiRmxvcmVuY2phXCIsXG4gICAgXCJGcmFuY2lzemthXCIsXG4gICAgXCJHYWJyaWVsYVwiLFxuICAgIFwiR2VydHJ1ZGFcIixcbiAgICBcIkdsb3JpYVwiLFxuICAgIFwiR3JhY2phXCIsXG4gICAgXCJKYWR3aWdhXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIkhlbnJ5a2FcIixcbiAgICBcIk5hZHppZWphXCIsXG4gICAgXCJJZGFcIixcbiAgICBcIklsb25hXCIsXG4gICAgXCJIZWxlbmFcIixcbiAgICBcIklyZW5hXCIsXG4gICAgXCJJcm1hXCIsXG4gICAgXCJJemFiZWxhXCIsXG4gICAgXCJJem9sZGFcIixcbiAgICBcIkpha3ViaW5hXCIsXG4gICAgXCJKb2FubmFcIixcbiAgICBcIkphbmluYVwiLFxuICAgIFwixbthbmV0YVwiLFxuICAgIFwiSm9hbm5hXCIsXG4gICAgXCJHaW5ld3JhXCIsXG4gICAgXCJKw7N6ZWZpbmFcIixcbiAgICBcIkp1ZHl0YVwiLFxuICAgIFwiSnVsaWFcIixcbiAgICBcIkp1bGlhXCIsXG4gICAgXCJKdWxpdGFcIixcbiAgICBcIkp1c3R5bmFcIixcbiAgICBcIktpcmFcIixcbiAgICBcIkN5cmFcIixcbiAgICBcIktsZW9wYXRyYVwiLFxuICAgIFwiTGFyeXNhXCIsXG4gICAgXCJMYXVyYVwiLFxuICAgIFwiTGF1cmVuY2phXCIsXG4gICAgXCJMYXVyZW50eW5hXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkxlaWxhXCIsXG4gICAgXCJFbGVvbm9yYVwiLFxuICAgIFwiTGlsaWFuYVwiLFxuICAgIFwiTGlsaWFubmFcIixcbiAgICBcIkxpbGlhXCIsXG4gICAgXCJMaWxsYVwiLFxuICAgIFwiTGl6YVwiLFxuICAgIFwiRWxpemFcIixcbiAgICBcIkxhdXJhXCIsXG4gICAgXCJMdWR3aWthXCIsXG4gICAgXCJMdWl6YVwiLFxuICAgIFwixYF1Y2phXCIsXG4gICAgXCJMdWNqYVwiLFxuICAgIFwiTGlkaWFcIixcbiAgICBcIkFtYWJlbGFcIixcbiAgICBcIk1hZ2RhbGVuYVwiLFxuICAgIFwiTWFsd2luYVwiLFxuICAgIFwiTWHFgmdvcnphdGFcIixcbiAgICBcIkdyZXRhXCIsXG4gICAgXCJNYXJpYW5uYVwiLFxuICAgIFwiTWFyeW5hXCIsXG4gICAgXCJNYXJ0YVwiLFxuICAgIFwiTWFydHluYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk1hdHlsZGFcIixcbiAgICBcIk1hamFcIixcbiAgICBcIk1hamFcIixcbiAgICBcIk1lbGFuaWFcIixcbiAgICBcIk1pY2hhbGluYVwiLFxuICAgIFwiTW9uaWthXCIsXG4gICAgXCJOYWR6aWVqYVwiLFxuICAgIFwiTm9lbWlcIixcbiAgICBcIk5hdGFsaWFcIixcbiAgICBcIk5pa29sYVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiT2xnYVwiLFxuICAgIFwiT2xpbXBpYVwiLFxuICAgIFwiT2xpd2lhXCIsXG4gICAgXCJPZmVsaWFcIixcbiAgICBcIlBhdHJ5Y2phXCIsXG4gICAgXCJQYXVsYVwiLFxuICAgIFwiUGVsYWdpYVwiLFxuICAgIFwiUGVuZWxvcGFcIixcbiAgICBcIkZpbGlwYVwiLFxuICAgIFwiUGF1bGluYVwiLFxuICAgIFwiUmFjaGVsYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSZWdpbmFcIixcbiAgICBcIlJlbmF0YVwiLFxuICAgIFwiUm96YWxpYVwiLFxuICAgIFwiUsOzxbxhXCIsXG4gICAgXCJSb2tzYW5hXCIsXG4gICAgXCJSdWZpbmFcIixcbiAgICBcIlJ1dGFcIixcbiAgICBcIlNhYmluYVwiLFxuICAgIFwiU2FyYVwiLFxuICAgIFwiU2VyYWZpbmFcIixcbiAgICBcIlN5YmlsbGFcIixcbiAgICBcIlN5bHdpYVwiLFxuICAgIFwiWm9maWFcIixcbiAgICBcIlN0ZWxsYVwiLFxuICAgIFwiU3RlZmFuaWFcIixcbiAgICBcIlp1emFubmFcIixcbiAgICBcIlRhbWFyYVwiLFxuICAgIFwiVGFjamFuYVwiLFxuICAgIFwiVGVrbGFcIixcbiAgICBcIlRlb2RvcmFcIixcbiAgICBcIlRlcmVzYVwiLFxuICAgIFwiV2FsZW50eW5hXCIsXG4gICAgXCJXYWxlcmlhXCIsXG4gICAgXCJXYW5lc2FcIixcbiAgICBcIldpYXJhXCIsXG4gICAgXCJXZXJvbmlrYVwiLFxuICAgIFwiV2lrdG9yaWFcIixcbiAgICBcIldpcmdpbmlhXCIsXG4gICAgXCJCaWJpYW5hXCIsXG4gICAgXCJCaWJpYW5uYVwiLFxuICAgIFwiV2FuZGFcIixcbiAgICBcIldpbGhlbG1pbmFcIixcbiAgICBcIktzYXdlcmFcIixcbiAgICBcIktzZW5pYVwiLFxuICAgIFwiWm9lXCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiQWRhbWN6YWtcIixcbiAgICBcIkFkYW1jenlrXCIsXG4gICAgXCJBZGFtZWtcIixcbiAgICBcIkFkYW1pYWtcIixcbiAgICBcIkFkYW1pZWNcIixcbiAgICBcIkFkYW1vd2ljelwiLFxuICAgIFwiQWRhbXNraVwiLFxuICAgIFwiQWRhbXVzXCIsXG4gICAgXCJBbGVrc2FuZHJvd2ljelwiLFxuICAgIFwiQW5kcnplamN6YWtcIixcbiAgICBcIkFuZHJ6ZWpld3NraVwiLFxuICAgIFwiQW50Y3pha1wiLFxuICAgIFwiQXVndXN0eW5cIixcbiAgICBcIkF1Z3VzdHluaWFrXCIsXG4gICAgXCJCYWdpxYRza2lcIixcbiAgICBcIkJhbGNlcnpha1wiLFxuICAgIFwiQmFuYWNoXCIsXG4gICAgXCJCYW5hc2lha1wiLFxuICAgIFwiQmFuYXNpa1wiLFxuICAgIFwiQmFuYcWbXCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyYW5vd3NraVwiLFxuICAgIFwiQmFyYcWEc2tpXCIsXG4gICAgXCJCYXJ0Y3pha1wiLFxuICAgIFwiQmFydGtvd2lha1wiLFxuICAgIFwiQmFydG5pa1wiLFxuICAgIFwiQmFydG9zaWtcIixcbiAgICBcIkJlZG5hcmN6eWtcIixcbiAgICBcIkJlZG5hcmVrXCIsXG4gICAgXCJCZWRuYXJza2lcIixcbiAgICBcIkJlZG5hcnpcIixcbiAgICBcIkJpYcWCYXNcIixcbiAgICBcIkJpYcWCZWtcIixcbiAgICBcIkJpYcWCa293c2tpXCIsXG4gICAgXCJCaWVsYWtcIixcbiAgICBcIkJpZWxhd3NraVwiLFxuICAgIFwiQmllbGVja2lcIixcbiAgICBcIkJpZWxza2lcIixcbiAgICBcIkJpZW5pZWtcIixcbiAgICBcIkJpZXJuYWNraVwiLFxuICAgIFwiQmllcm5hdFwiLFxuICAgIFwiQmllxYRrb3dza2lcIixcbiAgICBcIkJpbHNraVwiLFxuICAgIFwiQm9iZXJcIixcbiAgICBcIkJvY2hlbmVrXCIsXG4gICAgXCJCb2d1Y2tpXCIsXG4gICAgXCJCb2d1c3pcIixcbiAgICBcIkJvcmVrXCIsXG4gICAgXCJCb3Jrb3dza2lcIixcbiAgICBcIkJvcm93aWVjXCIsXG4gICAgXCJCb3Jvd3NraVwiLFxuICAgIFwiQm/FvGVrXCIsXG4gICAgXCJCcm9kYVwiLFxuICAgIFwiQnJ6ZXppxYRza2lcIixcbiAgICBcIkJyem96b3dza2lcIixcbiAgICBcIkJ1Y3pla1wiLFxuICAgIFwiQnVjemtvd3NraVwiLFxuICAgIFwiQnVjennFhHNraVwiLFxuICAgIFwiQnVkemnFhHNraVwiLFxuICAgIFwiQnVkennFhHNraVwiLFxuICAgIFwiQnVqYWtcIixcbiAgICBcIkJ1a293c2tpXCIsXG4gICAgXCJCdXJ6ecWEc2tpXCIsXG4gICAgXCJCxIVrXCIsXG4gICAgXCJCxIVrb3dza2lcIixcbiAgICBcIkLFgmFzemN6YWtcIixcbiAgICBcIkLFgmFzemN6eWtcIixcbiAgICBcIkNlYnVsYVwiLFxuICAgIFwiQ2htaWVsXCIsXG4gICAgXCJDaG1pZWxld3NraVwiLFxuICAgIFwiQ2htdXJhXCIsXG4gICAgXCJDaG9qbmFja2lcIixcbiAgICBcIkNob2pub3dza2lcIixcbiAgICBcIkNob2xld2FcIixcbiAgICBcIkNocnphbm93c2tpXCIsXG4gICAgXCJDaHVkemlrXCIsXG4gICAgXCJDaWNob2NraVwiLFxuICAgIFwiQ2ljaG/FhFwiLFxuICAgIFwiQ2ljaHlcIixcbiAgICBcIkNpZXNpZWxza2lcIixcbiAgICBcIkNpZcWbbGFcIixcbiAgICBcIkNpZcWbbGFrXCIsXG4gICAgXCJDaWXFm2xpa1wiLFxuICAgIFwiQ2lzemV3c2tpXCIsXG4gICAgXCJDeWJ1bHNraVwiLFxuICAgIFwiQ3lnYW5cIixcbiAgICBcIkN6YWphXCIsXG4gICAgXCJDemFqa2FcIixcbiAgICBcIkN6YWprb3dza2lcIixcbiAgICBcIkN6YXBsYVwiLFxuICAgIFwiQ3phcm5lY2tpXCIsXG4gICAgXCJDemVjaFwiLFxuICAgIFwiQ3plY2hvd3NraVwiLFxuICAgIFwiQ3pla2FqXCIsXG4gICAgXCJDemVybmlha1wiLFxuICAgIFwiQ3plcndpxYRza2lcIixcbiAgICBcIkN6ecW8XCIsXG4gICAgXCJDennFvGV3c2tpXCIsXG4gICAgXCJEZWNcIixcbiAgICBcIkRvYm9zelwiLFxuICAgIFwiRG9icm93b2xza2lcIixcbiAgICBcIkRvYnJ6ecWEc2tpXCIsXG4gICAgXCJEb21hZ2HFgmFcIixcbiAgICBcIkRvbWHFhHNraVwiLFxuICAgIFwiRG9taW5pYWtcIixcbiAgICBcIkRyYWJpa1wiLFxuICAgIFwiRHJvemRcIixcbiAgICBcIkRyb3pkb3dza2lcIixcbiAgICBcIkRyemV3aWVja2lcIixcbiAgICBcIkRyw7PFvGTFvFwiLFxuICAgIFwiRHViaWVsXCIsXG4gICAgXCJEdWRhXCIsXG4gICAgXCJEdWRla1wiLFxuICAgIFwiRHVkemlha1wiLFxuICAgIFwiRHVkemlrXCIsXG4gICAgXCJEdWR6acWEc2tpXCIsXG4gICAgXCJEdXN6ecWEc2tpXCIsXG4gICAgXCJEemllZHppY1wiLFxuICAgIFwiRHppdWJhXCIsXG4gICAgXCJExIViZWtcIixcbiAgICBcIkTEhWJrb3dza2lcIixcbiAgICBcIkTEhWJyb3dza2lcIixcbiAgICBcIkTEmWJvd3NraVwiLFxuICAgIFwiRMSZYnNraVwiLFxuICAgIFwiRMWCdWdvc3pcIixcbiAgICBcIkZhbGtvd3NraVwiLFxuICAgIFwiRmlqYcWCa293c2tpXCIsXG4gICAgXCJGaWxpcGVrXCIsXG4gICAgXCJGaWxpcGlha1wiLFxuICAgIFwiRmlsaXBvd2ljelwiLFxuICAgIFwiRmxha1wiLFxuICAgIFwiRmxpc1wiLFxuICAgIFwiRmxvcmN6YWtcIixcbiAgICBcIkZsb3Jla1wiLFxuICAgIFwiRnJhbmtvd3NraVwiLFxuICAgIFwiRnLEhWNrb3dpYWtcIixcbiAgICBcIkZyxIVjemVrXCIsXG4gICAgXCJGcsSFdGN6YWtcIixcbiAgICBcIkZ1cm1hblwiLFxuICAgIFwiR2Fkb21za2lcIixcbiAgICBcIkdhamRhXCIsXG4gICAgXCJHYWpld3NraVwiLFxuICAgIFwiR2F3ZcWCXCIsXG4gICAgXCJHYXdsaWtcIixcbiAgICBcIkdhd3JvblwiLFxuICAgIFwiR2F3cm/FhHNraVwiLFxuICAgIFwiR2HFgmthXCIsXG4gICAgXCJHYcWCxIV6a2FcIixcbiAgICBcIkdpbFwiLFxuICAgIFwiR29kbGV3c2tpXCIsXG4gICAgXCJHb2xlY1wiLFxuICAgIFwiR2/FgsSFYlwiLFxuICAgIFwiR2/FgsSZYmlld3NraVwiLFxuICAgIFwiR2/FgsSZYmlvd3NraVwiLFxuICAgIFwiR3JhYm93c2tpXCIsXG4gICAgXCJHcmFjenlrXCIsXG4gICAgXCJHcm9jaG93c2tpXCIsXG4gICAgXCJHcnVkemllxYRcIixcbiAgICBcIkdydXN6Y3p5xYRza2lcIixcbiAgICBcIkdydXN6a2FcIixcbiAgICBcIkdyemVnb3JjenlrXCIsXG4gICAgXCJHcnplbGFrXCIsXG4gICAgXCJHcnplc2lha1wiLFxuICAgIFwiR3J6ZXNpa1wiLFxuICAgIFwiR3J6ZcWba293aWFrXCIsXG4gICAgXCJHcnp5YlwiLFxuICAgIFwiR3J6eWJvd3NraVwiLFxuICAgIFwiR3J6eXdhY3pcIixcbiAgICBcIkd1dG93c2tpXCIsXG4gICAgXCJHdXppa1wiLFxuICAgIFwiR3fDs8W6ZMW6XCIsXG4gICAgXCJHw7NyYVwiLFxuICAgIFwiR8OzcmFsXCIsXG4gICAgXCJHw7NyZWNraVwiLFxuICAgIFwiR8OzcmthXCIsXG4gICAgXCJHw7Nybmlha1wiLFxuICAgIFwiR8Ozcm55XCIsXG4gICAgXCJHw7Nyc2tpXCIsXG4gICAgXCJHxIVzaW9yXCIsXG4gICAgXCJHxIVzaW9yb3dza2lcIixcbiAgICBcIkfFgm9nb3dza2lcIixcbiAgICBcIkfFgm93YWNraVwiLFxuICAgIFwiR8WCxIViXCIsXG4gICAgXCJIYWpkdWtcIixcbiAgICBcIkhlcm1hblwiLFxuICAgIFwiSXdhxYRza2lcIixcbiAgICBcIkl6ZGVic2tpXCIsXG4gICAgXCJKYWLFgm/FhHNraVwiLFxuICAgIFwiSmFja293c2tpXCIsXG4gICAgXCJKYWdpZWxza2lcIixcbiAgICBcIkphZ2llxYLFgm9cIixcbiAgICBcIkphZ29kemnFhHNraVwiLFxuICAgIFwiSmFrdWJpYWtcIixcbiAgICBcIkpha3Vib3dza2lcIixcbiAgICBcIkphbmFzXCIsXG4gICAgXCJKYW5pYWtcIixcbiAgICBcIkphbmlja2lcIixcbiAgICBcIkphbmlrXCIsXG4gICAgXCJKYW5pc3pld3NraVwiLFxuICAgIFwiSmFua293aWFrXCIsXG4gICAgXCJKYW5rb3dza2lcIixcbiAgICBcIkphbm93c2tpXCIsXG4gICAgXCJKYW51c1wiLFxuICAgIFwiSmFudXN6XCIsXG4gICAgXCJKYW51c3pld3NraVwiLFxuICAgIFwiSmFyb3NcIixcbiAgICBcIkphcm9zelwiLFxuICAgIFwiSmFyesSFYmVrXCIsXG4gICAgXCJKYXNpxYRza2lcIixcbiAgICBcIkphc3RyesSZYnNraVwiLFxuICAgIFwiSmF3b3Jza2lcIixcbiAgICBcIkphxZtraWV3aWN6XCIsXG4gICAgXCJKZXppZXJza2lcIixcbiAgICBcIkp1cmVrXCIsXG4gICAgXCJKdXJraWV3aWN6XCIsXG4gICAgXCJKdXJrb3dza2lcIixcbiAgICBcIkp1c3pjemFrXCIsXG4gICAgXCJKw7PFundpYWtcIixcbiAgICBcIkrDs8W6d2lrXCIsXG4gICAgXCJKxJlkcnplamN6YWtcIixcbiAgICBcIkrEmWRyemVqY3p5a1wiLFxuICAgIFwiSsSZZHJ6ZWpld3NraVwiLFxuICAgIFwiS2FjcHJ6YWtcIixcbiAgICBcIkthY3ptYXJjenlrXCIsXG4gICAgXCJLYWN6bWFyZWtcIixcbiAgICBcIkthY3ptYXJza2lcIixcbiAgICBcIkthY3pvclwiLFxuICAgIFwiS2Fjem9yb3dza2lcIixcbiAgICBcIkthY3p5xYRza2lcIixcbiAgICBcIkthbGV0YVwiLFxuICAgIFwiS2FsaW5vd3NraVwiLFxuICAgIFwiS2FsaXN6XCIsXG4gICAgXCJLYW1pxYRza2lcIixcbiAgICBcIkthbmlhXCIsXG4gICAgXCJLYW5pZXdza2lcIixcbiAgICBcIkthcHVzdGFcIixcbiAgICBcIkthcmHFm1wiLFxuICAgIFwiS2FyY3pld3NraVwiLFxuICAgIFwiS2FycGnFhHNraVwiLFxuICAgIFwiS2Fyd293c2tpXCIsXG4gICAgXCJLYXNwZXJla1wiLFxuICAgIFwiS2FzcHJ6YWtcIixcbiAgICBcIkthc3ByenlrXCIsXG4gICAgXCJLYXN6dWJhXCIsXG4gICAgXCJLYXdhXCIsXG4gICAgXCJLYXdlY2tpXCIsXG4gICAgXCJLYcWCdcW8YVwiLFxuICAgIFwiS2HFum1pZXJjemFrXCIsXG4gICAgXCJLaWXFgmJhc2FcIixcbiAgICBcIktpc2llbFwiLFxuICAgIFwiS2l0YVwiLFxuICAgIFwiS2xpbWN6YWtcIixcbiAgICBcIktsaW1la1wiLFxuICAgIFwiS21pZWNpa1wiLFxuICAgIFwiS21pZcSHXCIsXG4gICAgXCJLbmFwaWtcIixcbiAgICBcIktvYnVzXCIsXG4gICAgXCJLb2d1dFwiLFxuICAgIFwiS29sYXNhXCIsXG4gICAgXCJLb21vcm93c2tpXCIsXG4gICAgXCJLb25pZWN6bmFcIixcbiAgICBcIktvbmllY3pueVwiLFxuICAgIFwiS29ub3BrYVwiLFxuICAgIFwiS29wY3p5xYRza2lcIixcbiAgICBcIktvcGVyXCIsXG4gICAgXCJLb3BlxIdcIixcbiAgICBcIktvcnplbmlvd3NraVwiLFxuICAgIFwiS29zXCIsXG4gICAgXCJLb3NpxYRza2lcIixcbiAgICBcIktvc293c2tpXCIsXG4gICAgXCJLb3N0ZWNraVwiLFxuICAgIFwiS29zdHJ6ZXdhXCIsXG4gICAgXCJLb3RcIixcbiAgICBcIktvdG93c2tpXCIsXG4gICAgXCJLb3dhbFwiLFxuICAgIFwiS293YWxjenVrXCIsXG4gICAgXCJLb3dhbGN6eWtcIixcbiAgICBcIktvd2FsZXdza2lcIixcbiAgICBcIktvd2FsaWtcIixcbiAgICBcIktvd2Fsc2tpXCIsXG4gICAgXCJLb3phXCIsXG4gICAgXCJLb3pha1wiLFxuICAgIFwiS296aWXFglwiLFxuICAgIFwiS296aW/FglwiLFxuICAgIFwiS296xYJvd3NraVwiLFxuICAgIFwiS2/FgmFrb3dza2lcIixcbiAgICBcIktvxYJvZHppZWpcIixcbiAgICBcIktvxYJvZHppZWpjenlrXCIsXG4gICAgXCJLb8WCb2R6aWVqc2tpXCIsXG4gICAgXCJLcmFqZXdza2lcIixcbiAgICBcIktyYWtvd2lha1wiLFxuICAgIFwiS3Jhd2N6eWtcIixcbiAgICBcIktyYXdpZWNcIixcbiAgICBcIktydWtcIixcbiAgICBcIktydWtvd3NraVwiLFxuICAgIFwiS3J1cGFcIixcbiAgICBcIktydXBpxYRza2lcIixcbiAgICBcIktydXN6ZXdza2lcIixcbiAgICBcIktyeXNpYWtcIixcbiAgICBcIktyemVtacWEc2tpXCIsXG4gICAgXCJLcnp5xbxhbm93c2tpXCIsXG4gICAgXCJLcsOzbFwiLFxuICAgIFwiS3LDs2xpa293c2tpXCIsXG4gICAgXCJLc2nEhcW8ZWtcIixcbiAgICBcIkt1YmFja2lcIixcbiAgICBcIkt1Ymlha1wiLFxuICAgIFwiS3ViaWNhXCIsXG4gICAgXCJLdWJpY2tpXCIsXG4gICAgXCJLdWJpa1wiLFxuICAgIFwiS3VjXCIsXG4gICAgXCJLdWNoYXJjenlrXCIsXG4gICAgXCJLdWNoYXJza2lcIixcbiAgICBcIkt1Y2h0YVwiLFxuICAgIFwiS3VjacWEc2tpXCIsXG4gICAgXCJLdWN6ecWEc2tpXCIsXG4gICAgXCJLdWphd2FcIixcbiAgICBcIkt1amF3c2tpXCIsXG4gICAgXCJLdWxhXCIsXG4gICAgXCJLdWxlc3phXCIsXG4gICAgXCJLdWxpZ1wiLFxuICAgIFwiS3VsaWtcIixcbiAgICBcIkt1bGnFhHNraVwiLFxuICAgIFwiS3VyZWtcIixcbiAgICBcIkt1cm93c2tpXCIsXG4gICAgXCJLdcWbXCIsXG4gICAgXCJLd2HFm25pZXdza2lcIixcbiAgICBcIkt3aWF0a293c2tpXCIsXG4gICAgXCJLd2llY2llxYRcIixcbiAgICBcIkt3aWVjacWEc2tpXCIsXG4gICAgXCJLxJlkemllcnNraVwiLFxuICAgIFwiS8SZZHppb3JhXCIsXG4gICAgXCJLxJlwYVwiLFxuICAgIFwiS8WCb3NcIixcbiAgICBcIkvFgm9zb3dza2lcIixcbiAgICBcIkxhY2hcIixcbiAgICBcIkxhc2tvd3NraVwiLFxuICAgIFwiTGFzb3RhXCIsXG4gICAgXCJMZWNoXCIsXG4gICAgXCJMZW5hcnRcIixcbiAgICBcIkxlc2lha1wiLFxuICAgIFwiTGVzemN6ecWEc2tpXCIsXG4gICAgXCJMZXdhbmRvd3NraVwiLFxuICAgIFwiTGV3aWNraVwiLFxuICAgIFwiTGXFm25pYWtcIixcbiAgICBcIkxlxZtuaWV3c2tpXCIsXG4gICAgXCJMaXBpxYRza2lcIixcbiAgICBcIkxpcGthXCIsXG4gICAgXCJMaXBza2lcIixcbiAgICBcIkxpc1wiLFxuICAgIFwiTGlzaWVja2lcIixcbiAgICBcIkxpc293c2tpXCIsXG4gICAgXCJNYWNpZWpld3NraVwiLFxuICAgIFwiTWFjacSFZ1wiLFxuICAgIFwiTWFja2lld2ljelwiLFxuICAgIFwiTWFkZWpcIixcbiAgICBcIk1halwiLFxuICAgIFwiTWFqY2hlclwiLFxuICAgIFwiTWFqY2hyemFrXCIsXG4gICAgXCJNYWpld3NraVwiLFxuICAgIFwiTWFqa2FcIixcbiAgICBcIk1ha293c2tpXCIsXG4gICAgXCJNYWxlY1wiLFxuICAgIFwiTWFsaWNraVwiLFxuICAgIFwiTWFsaW5vd3NraVwiLFxuICAgIFwiTWFsaXN6ZXdza2lcIixcbiAgICBcIk1hcmNoZXdrYVwiLFxuICAgIFwiTWFyY2luaWFrXCIsXG4gICAgXCJNYXJjaW5rb3dza2lcIixcbiAgICBcIk1hcmN6YWtcIixcbiAgICBcIk1hcmVrXCIsXG4gICAgXCJNYXJraWV3aWN6XCIsXG4gICAgXCJNYXJrb3dza2lcIixcbiAgICBcIk1hcnN6YcWCZWtcIixcbiAgICBcIk1hcnplY1wiLFxuICAgIFwiTWFzxYJvd3NraVwiLFxuICAgIFwiTWF0dXNpYWtcIixcbiAgICBcIk1hdHVzemFrXCIsXG4gICAgXCJNYXR1c3pld3NraVwiLFxuICAgIFwiTWF0eXNpYWtcIixcbiAgICBcIk1henVyXCIsXG4gICAgXCJNYXp1cmVrXCIsXG4gICAgXCJNYXp1cmtpZXdpY3pcIixcbiAgICBcIk1hxIdrb3dpYWtcIixcbiAgICBcIk1hxYJlY2tpXCIsXG4gICAgXCJNYcWCZWtcIixcbiAgICBcIk1hxZtsYW5rYVwiLFxuICAgIFwiTWljaGFsYWtcIixcbiAgICBcIk1pY2hhbGN6eWtcIixcbiAgICBcIk1pY2hhbGlrXCIsXG4gICAgXCJNaWNoYWxza2lcIixcbiAgICBcIk1pY2hhxYJla1wiLFxuICAgIFwiTWljaGHFgm93c2tpXCIsXG4gICAgXCJNaWVsY3phcmVrXCIsXG4gICAgXCJNaWVyemVqZXdza2lcIixcbiAgICBcIk1pa2FcIixcbiAgICBcIk1pa2/FgmFqY3pha1wiLFxuICAgIFwiTWlrb8WCYWpjenlrXCIsXG4gICAgXCJNaWt1bHNraVwiLFxuICAgIFwiTWlsY3phcmVrXCIsXG4gICAgXCJNaWxld3NraVwiLFxuICAgIFwiTWlsbGVyXCIsXG4gICAgXCJNaXNpYWtcIixcbiAgICBcIk1pc3p0YWxcIixcbiAgICBcIk1pxZtraWV3aWN6XCIsXG4gICAgXCJNb2R6ZWxld3NraVwiLFxuICAgIFwiTW9sZW5kYVwiLFxuICAgIFwiTW9yYXdza2lcIixcbiAgICBcIk1vdHlrYVwiLFxuICAgIFwiTXJvY3pla1wiLFxuICAgIFwiTXJvY3prb3dza2lcIixcbiAgICBcIk1yb3pla1wiLFxuICAgIFwiTXLDs3pcIixcbiAgICBcIk11Y2hhXCIsXG4gICAgXCJNdXJhd3NraVwiLFxuICAgIFwiTXVzaWHFglwiLFxuICAgIFwiTXVzennFhHNraVwiLFxuICAgIFwiTcWCeW5hcmN6eWtcIixcbiAgICBcIk5hcGllcmHFgmFcIixcbiAgICBcIk5hd3JvY2tpXCIsXG4gICAgXCJOYXdyb3RcIixcbiAgICBcIk5pZWR6aWVsYVwiLFxuICAgIFwiTmllZHppZWxza2lcIixcbiAgICBcIk5pZWTFundpZWNraVwiLFxuICAgIFwiTmllbWN6eWtcIixcbiAgICBcIk5pZW1pZWNcIixcbiAgICBcIk5pZXdpYWRvbXNraVwiLFxuICAgIFwiTm9nYVwiLFxuICAgIFwiTm93YWNraVwiLFxuICAgIFwiTm93YWN6eWtcIixcbiAgICBcIk5vd2FrXCIsXG4gICAgXCJOb3dha293c2tpXCIsXG4gICAgXCJOb3dpY2tpXCIsXG4gICAgXCJOb3dpxYRza2lcIixcbiAgICBcIk9sY3pha1wiLFxuICAgIFwiT2xlam5pY3pha1wiLFxuICAgIFwiT2xlam5pa1wiLFxuICAgIFwiT2xzemV3c2tpXCIsXG4gICAgXCJPcnplY2hvd3NraVwiLFxuICAgIFwiT3LFgm93c2tpXCIsXG4gICAgXCJPc2nFhHNraVwiLFxuICAgIFwiT3Nzb3dza2lcIixcbiAgICBcIk9zdHJvd3NraVwiLFxuICAgIFwiT3djemFyZWtcIixcbiAgICBcIlBhY3prb3dza2lcIixcbiAgICBcIlBhasSFa1wiLFxuICAgIFwiUGFrdcWCYVwiLFxuICAgIFwiUGFsdWNoXCIsXG4gICAgXCJQYW5la1wiLFxuICAgIFwiUGFydHlrYVwiLFxuICAgIFwiUGFzdGVybmFrXCIsXG4gICAgXCJQYXN6a293c2tpXCIsXG4gICAgXCJQYXdlbGVjXCIsXG4gICAgXCJQYXdsYWtcIixcbiAgICBcIlBhd2xpY2tpXCIsXG4gICAgXCJQYXdsaWtcIixcbiAgICBcIlBhd2xpa293c2tpXCIsXG4gICAgXCJQYXfFgm93c2tpXCIsXG4gICAgXCJQYcWCa2FcIixcbiAgICBcIlBpYXNlY2tpXCIsXG4gICAgXCJQaWVjaG90YVwiLFxuICAgIFwiUGlla2Fyc2tpXCIsXG4gICAgXCJQaWV0cmFzXCIsXG4gICAgXCJQaWV0cnVzemthXCIsXG4gICAgXCJQaWV0cnpha1wiLFxuICAgIFwiUGlldHJ6eWtcIixcbiAgICBcIlBpbGFyc2tpXCIsXG4gICAgXCJQaWxjaFwiLFxuICAgIFwiUGlvdHJvd2ljelwiLFxuICAgIFwiUGlvdHJvd3NraVwiLFxuICAgIFwiUGl3b3dhcmN6eWtcIixcbiAgICBcIlBpw7Nya293c2tpXCIsXG4gICAgXCJQacSFdGVrXCIsXG4gICAgXCJQacSFdGtvd3NraVwiLFxuICAgIFwiUGnFgmF0XCIsXG4gICAgXCJQbHV0YVwiLFxuICAgIFwiUG9kZ8OzcnNraVwiLFxuICAgIFwiUG9sYWtcIixcbiAgICBcIlBvcMWCYXdza2lcIixcbiAgICBcIlBvcsSZYnNraVwiLFxuICAgIFwiUHJva29wXCIsXG4gICAgXCJQcnVzXCIsXG4gICAgXCJQcnp5Ynlsc2tpXCIsXG4gICAgXCJQcnp5YnlzelwiLFxuICAgIFwiUHJ6eWJ5xYJcIixcbiAgICBcIlByenliecWCYVwiLFxuICAgIFwiUHRha1wiLFxuICAgIFwiUHVjaGFsc2tpXCIsXG4gICAgXCJQeXRlbFwiLFxuICAgIFwiUMWCb25rYVwiLFxuICAgIFwiUmFjennFhHNraVwiLFxuICAgIFwiUmFkZWNraVwiLFxuICAgIFwiUmFkb21za2lcIixcbiAgICBcIlJha1wiLFxuICAgIFwiUmFrb3dza2lcIixcbiAgICBcIlJhdGFqY3pha1wiLFxuICAgIFwiUm9iYWtcIixcbiAgICBcIlJvZ2FsYVwiLFxuICAgIFwiUm9nYWxza2lcIixcbiAgICBcIlJvZ293c2tpXCIsXG4gICAgXCJSb2pla1wiLFxuICAgIFwiUm9tYW5vd3NraVwiLFxuICAgIFwiUm9zYVwiLFxuICAgIFwiUm9zaWFrXCIsXG4gICAgXCJSb3NpxYRza2lcIixcbiAgICBcIlJ1Y2nFhHNraVwiLFxuICAgIFwiUnVkbmlja2lcIixcbiAgICBcIlJ1ZHppxYRza2lcIixcbiAgICBcIlJ1ZHpraVwiLFxuICAgIFwiUnVzaW5cIixcbiAgICBcIlJ1dGtvd3NraVwiLFxuICAgIFwiUnliYWtcIixcbiAgICBcIlJ5YmFyY3p5a1wiLFxuICAgIFwiUnliaWNraVwiLFxuICAgIFwiUnplcGthXCIsXG4gICAgXCJSw7PFvGHFhHNraVwiLFxuICAgIFwiUsOzxbx5Y2tpXCIsXG4gICAgXCJTYWRvd3NraVwiLFxuICAgIFwiU2F3aWNraVwiLFxuICAgIFwiU2VyYWZpblwiLFxuICAgIFwiU2llZGxlY2tpXCIsXG4gICAgXCJTaWVua2lld2ljelwiLFxuICAgIFwiU2llcmFkemtpXCIsXG4gICAgXCJTaWtvcmFcIixcbiAgICBcIlNpa29yc2tpXCIsXG4gICAgXCJTaXRla1wiLFxuICAgIFwiU2l3ZWtcIixcbiAgICBcIlNrYWxza2lcIixcbiAgICBcIlNraWJhXCIsXG4gICAgXCJTa2liacWEc2tpXCIsXG4gICAgXCJTa29jenlsYXNcIixcbiAgICBcIlNrb3dyb25cIixcbiAgICBcIlNrb3dyb25la1wiLFxuICAgIFwiU2tvd3JvxYRza2lcIixcbiAgICBcIlNrcnp5cGN6YWtcIixcbiAgICBcIlNrcnp5cGVrXCIsXG4gICAgXCJTa8OzcmFcIixcbiAgICBcIlNtb2xpxYRza2lcIixcbiAgICBcIlNvYmN6YWtcIixcbiAgICBcIlNvYmN6eWtcIixcbiAgICBcIlNvYmllcmFqXCIsXG4gICAgXCJTb2JvbGV3c2tpXCIsXG4gICAgXCJTb2NoYVwiLFxuICAgIFwiU29jaGFja2lcIixcbiAgICBcIlNva2/Fgm93c2tpXCIsXG4gICAgXCJTb2vDs8WCXCIsXG4gICAgXCJTb3Nub3dza2lcIixcbiAgICBcIlNvd2FcIixcbiAgICBcIlNvd2nFhHNraVwiLFxuICAgIFwiU2/FgnR5c1wiLFxuICAgIFwiU2/FgnR5c2lha1wiLFxuICAgIFwiU3Jva2FcIixcbiAgICBcIlN0YWNob3dpYWtcIixcbiAgICBcIlN0YWNob3dpY3pcIixcbiAgICBcIlN0YWNodXJhXCIsXG4gICAgXCJTdGFjaHVyc2tpXCIsXG4gICAgXCJTdGFuZWtcIixcbiAgICBcIlN0YW5pc3pld3NraVwiLFxuICAgIFwiU3RhbmlzxYJhd3NraVwiLFxuICAgIFwiU3RhbmtpZXdpY3pcIixcbiAgICBcIlN0YXNpYWtcIixcbiAgICBcIlN0YXN6ZXdza2lcIixcbiAgICBcIlN0YXdpY2tpXCIsXG4gICAgXCJTdGVjXCIsXG4gICAgXCJTdGVmYW5pYWtcIixcbiAgICBcIlN0ZWZhxYRza2lcIixcbiAgICBcIlN0ZWxtYWNoXCIsXG4gICAgXCJTdG9sYXJjenlrXCIsXG4gICAgXCJTdG9sYXJza2lcIixcbiAgICBcIlN0cnplbGN6eWtcIixcbiAgICBcIlN0cnplbGVja2lcIixcbiAgICBcIlN0xJlwaWXFhFwiLFxuICAgIFwiU3TEmXBuaWFrXCIsXG4gICAgXCJTdXJtYVwiLFxuICAgIFwiU3Vza2lcIixcbiAgICBcIlN6YWZyYcWEc2tpXCIsXG4gICAgXCJTemF0a293c2tpXCIsXG4gICAgXCJTemN6ZXBhbmlha1wiLFxuICAgIFwiU3pjemVwYW5pa1wiLFxuICAgIFwiU3pjemVwYcWEc2tpXCIsXG4gICAgXCJTemN6ZXJiYVwiLFxuICAgIFwiU3pjemXFm25pYWtcIixcbiAgICBcIlN6Y3p5Z2llxYJcIixcbiAgICBcIlN6Y3rEmXNuYVwiLFxuICAgIFwiU3pjesSZc255XCIsXG4gICAgXCJTemVsxIVnXCIsXG4gICAgXCJTemV3Y3p5a1wiLFxuICAgIFwiU3pvc3Rha1wiLFxuICAgIFwiU3p1bGNcIixcbiAgICBcIlN6d2FyY1wiLFxuICAgIFwiU3p3ZWRcIixcbiAgICBcIlN6eWTFgm93c2tpXCIsXG4gICAgXCJTenltYcWEc2tpXCIsXG4gICAgXCJTenltY3pha1wiLFxuICAgIFwiU3p5bWN6eWtcIixcbiAgICBcIlN6eW1rb3dpYWtcIixcbiAgICBcIlN6eXN6a2FcIixcbiAgICBcIlPFgmF3acWEc2tpXCIsXG4gICAgXCJTxYJvd2lrXCIsXG4gICAgXCJTxYJvd2nFhHNraVwiLFxuICAgIFwiVGFybm93c2tpXCIsXG4gICAgXCJUa2FjenlrXCIsXG4gICAgXCJUb2thcnNraVwiLFxuICAgIFwiVG9tYWxhXCIsXG4gICAgXCJUb21hc3pld3NraVwiLFxuICAgIFwiVG9tY3pha1wiLFxuICAgIFwiVG9tY3p5a1wiLFxuICAgIFwiVHJhY3pcIixcbiAgICBcIlRyb2phbm93c2tpXCIsXG4gICAgXCJUcnpjacWEc2tpXCIsXG4gICAgXCJUcnplY2lha1wiLFxuICAgIFwiVHVyZWtcIixcbiAgICBcIlR3YXJkb3dza2lcIixcbiAgICBcIlVyYmFuXCIsXG4gICAgXCJVcmJhbmVrXCIsXG4gICAgXCJVcmJhbmlha1wiLFxuICAgIFwiVXJiYW5vd2ljelwiLFxuICAgIFwiVXJiYcWEY3p5a1wiLFxuICAgIFwiVXJiYcWEc2tpXCIsXG4gICAgXCJXYWxjemFrXCIsXG4gICAgXCJXYWxrb3dpYWtcIixcbiAgICBcIldhcmNob8WCXCIsXG4gICAgXCJXYXNpYWtcIixcbiAgICBcIldhc2lsZXdza2lcIixcbiAgICBcIldhd3J6eW5pYWtcIixcbiAgICBcIldlc2/Fgm93c2tpXCIsXG4gICAgXCJXaWVjem9yZWtcIixcbiAgICBcIldpZXJ6Ymlja2lcIixcbiAgICBcIldpbGN6ZWtcIixcbiAgICBcIldpbGN6ecWEc2tpXCIsXG4gICAgXCJXaWxrXCIsXG4gICAgXCJXaW5pYXJza2lcIixcbiAgICBcIldpdGN6YWtcIixcbiAgICBcIldpdGVrXCIsXG4gICAgXCJXaXRrb3dza2lcIixcbiAgICBcIldpxIVjZWtcIixcbiAgICBcIldpxJljZWtcIixcbiAgICBcIldpxJlja293c2tpXCIsXG4gICAgXCJXacWbbmlld3NraVwiLFxuICAgIFwiV251a1wiLFxuICAgIFwiV29qY2llY2hvd3NraVwiLFxuICAgIFwiV29qdGFzXCIsXG4gICAgXCJXb2p0YXNpa1wiLFxuICAgIFwiV29qdGN6YWtcIixcbiAgICBcIldvanRrb3dpYWtcIixcbiAgICBcIldvbGFrXCIsXG4gICAgXCJXb2xpxYRza2lcIixcbiAgICBcIldvbG55XCIsXG4gICAgXCJXb2xza2lcIixcbiAgICBcIldvxZtcIixcbiAgICBcIldvxbpuaWFrXCIsXG4gICAgXCJXcm9uYVwiLFxuICAgIFwiV3JvxYRza2lcIixcbiAgICBcIldyw7NiZWxcIixcbiAgICBcIldyw7NibGV3c2tpXCIsXG4gICAgXCJXeXB5Y2hcIixcbiAgICBcIld5c29ja2lcIixcbiAgICBcIld5c3p5xYRza2lcIixcbiAgICBcIlfDs2pjaWNraVwiLFxuICAgIFwiV8OzamNpa1wiLFxuICAgIFwiV8OzanRvd2ljelwiLFxuICAgIFwiV8SFc2lrXCIsXG4gICAgXCJXxJlncnp5blwiLFxuICAgIFwiV8WCb2RhcmN6eWtcIixcbiAgICBcIlfFgm9kYXJza2lcIixcbiAgICBcIlphYm9yb3dza2lcIixcbiAgICBcIlphYsWCb2NraVwiLFxuICAgIFwiWmFnw7Nyc2tpXCIsXG4gICAgXCJaYWrEhWNcIixcbiAgICBcIlphasSFY3prb3dza2lcIixcbiAgICBcIlpha3J6ZXdza2lcIixcbiAgICBcIlphbGV3c2tpXCIsXG4gICAgXCJaYXJlbWJhXCIsXG4gICAgXCJaYXJ6eWNraVwiLFxuICAgIFwiWmFyxJliYVwiLFxuICAgIFwiWmF3YWRhXCIsXG4gICAgXCJaYXdhZHpraVwiLFxuICAgIFwiWmR1bmVrXCIsXG4gICAgXCJaaWVsacWEc2tpXCIsXG4gICAgXCJaaWVsb25rYVwiLFxuICAgIFwiWmnDs8WCa293c2tpXCIsXG4gICAgXCJaacSZYmFcIixcbiAgICBcIlppxJl0ZWtcIixcbiAgICBcIlp3b2xpxYRza2lcIixcbiAgICBcIlp5Y2hcIixcbiAgICBcIlp5Z211bnRcIixcbiAgICBcIsWBYXBpxYRza2lcIixcbiAgICBcIsWBdWN6YWtcIixcbiAgICBcIsWBdWthc2lld2ljelwiLFxuICAgIFwixYF1a2FzaWtcIixcbiAgICBcIsWBdWthc3pld3NraVwiLFxuICAgIFwixZpsaXdhXCIsXG4gICAgXCLFmmxpd2nFhHNraVwiLFxuICAgIFwixZpsdXNhcmN6eWtcIixcbiAgICBcIsWad2lkZXJza2lcIixcbiAgICBcIsWad2llcmN6ecWEc2tpXCIsXG4gICAgXCLFmndpxIV0ZWtcIixcbiAgICBcIsW7YWtcIixcbiAgICBcIsW7ZWJyb3dza2lcIixcbiAgICBcIsW7bXVkYVwiLFxuICAgIFwixbt1a1wiLFxuICAgIFwixbt1a293c2tpXCIsXG4gICAgXCLFu3VyYXdza2lcIixcbiAgICBcIsW7dXJla1wiLFxuICAgIFwixbt5xYJhXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiUGFuXCIsXG4gICAgXCJQYW5pXCJcbiAgXSxcbiAgXCJ0aXRsZVwiOiB7XG4gICAgXCJkZXNjcmlwdG9yXCI6IFtcbiAgICAgIFwiTGVhZFwiLFxuICAgICAgXCJTZW5pb3JcIixcbiAgICAgIFwiRGlyZWN0XCIsXG4gICAgICBcIkNvcnBvcmF0ZVwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkZ1dHVyZVwiLFxuICAgICAgXCJQcm9kdWN0XCIsXG4gICAgICBcIk5hdGlvbmFsXCIsXG4gICAgICBcIlJlZ2lvbmFsXCIsXG4gICAgICBcIkRpc3RyaWN0XCIsXG4gICAgICBcIkNlbnRyYWxcIixcbiAgICAgIFwiR2xvYmFsXCIsXG4gICAgICBcIkN1c3RvbWVyXCIsXG4gICAgICBcIkludmVzdG9yXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiSW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJMZWdhY3lcIixcbiAgICAgIFwiRm9yd2FyZFwiLFxuICAgICAgXCJJbnRlcm5hbFwiLFxuICAgICAgXCJIdW1hblwiLFxuICAgICAgXCJDaGllZlwiLFxuICAgICAgXCJQcmluY2lwYWxcIlxuICAgIF0sXG4gICAgXCJsZXZlbFwiOiBbXG4gICAgICBcIlNvbHV0aW9uc1wiLFxuICAgICAgXCJQcm9ncmFtXCIsXG4gICAgICBcIkJyYW5kXCIsXG4gICAgICBcIlNlY3VyaXR5XCIsXG4gICAgICBcIlJlc2VhcmNoXCIsXG4gICAgICBcIk1hcmtldGluZ1wiLFxuICAgICAgXCJEaXJlY3RpdmVzXCIsXG4gICAgICBcIkltcGxlbWVudGF0aW9uXCIsXG4gICAgICBcIkludGVncmF0aW9uXCIsXG4gICAgICBcIkZ1bmN0aW9uYWxpdHlcIixcbiAgICAgIFwiUmVzcG9uc2VcIixcbiAgICAgIFwiUGFyYWRpZ21cIixcbiAgICAgIFwiVGFjdGljc1wiLFxuICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgXCJNYXJrZXRzXCIsXG4gICAgICBcIkdyb3VwXCIsXG4gICAgICBcIkRpdmlzaW9uXCIsXG4gICAgICBcIkFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJPcHRpbWl6YXRpb25cIixcbiAgICAgIFwiT3BlcmF0aW9uc1wiLFxuICAgICAgXCJJbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJJbnRyYW5ldFwiLFxuICAgICAgXCJDb21tdW5pY2F0aW9uc1wiLFxuICAgICAgXCJXZWJcIixcbiAgICAgIFwiQnJhbmRpbmdcIixcbiAgICAgIFwiUXVhbGl0eVwiLFxuICAgICAgXCJBc3N1cmFuY2VcIixcbiAgICAgIFwiTW9iaWxpdHlcIixcbiAgICAgIFwiQWNjb3VudHNcIixcbiAgICAgIFwiRGF0YVwiLFxuICAgICAgXCJDcmVhdGl2ZVwiLFxuICAgICAgXCJDb25maWd1cmF0aW9uXCIsXG4gICAgICBcIkFjY291bnRhYmlsaXR5XCIsXG4gICAgICBcIkludGVyYWN0aW9uc1wiLFxuICAgICAgXCJGYWN0b3JzXCIsXG4gICAgICBcIlVzYWJpbGl0eVwiLFxuICAgICAgXCJNZXRyaWNzXCJcbiAgICBdLFxuICAgIFwiam9iXCI6IFtcbiAgICAgIFwiU3VwZXJ2aXNvclwiLFxuICAgICAgXCJBc3NvY2lhdGVcIixcbiAgICAgIFwiRXhlY3V0aXZlXCIsXG4gICAgICBcIkxpYXNvblwiLFxuICAgICAgXCJPZmZpY2VyXCIsXG4gICAgICBcIk1hbmFnZXJcIixcbiAgICAgIFwiRW5naW5lZXJcIixcbiAgICAgIFwiU3BlY2lhbGlzdFwiLFxuICAgICAgXCJEaXJlY3RvclwiLFxuICAgICAgXCJDb29yZGluYXRvclwiLFxuICAgICAgXCJBZG1pbmlzdHJhdG9yXCIsXG4gICAgICBcIkFyY2hpdGVjdFwiLFxuICAgICAgXCJBbmFseXN0XCIsXG4gICAgICBcIkRlc2lnbmVyXCIsXG4gICAgICBcIlBsYW5uZXJcIixcbiAgICAgIFwiT3JjaGVzdHJhdG9yXCIsXG4gICAgICBcIlRlY2huaWNpYW5cIixcbiAgICAgIFwiRGV2ZWxvcGVyXCIsXG4gICAgICBcIlByb2R1Y2VyXCIsXG4gICAgICBcIkNvbnN1bHRhbnRcIixcbiAgICAgIFwiQXNzaXN0YW50XCIsXG4gICAgICBcIkZhY2lsaXRhdG9yXCIsXG4gICAgICBcIkFnZW50XCIsXG4gICAgICBcIlJlcHJlc2VudGF0aXZlXCIsXG4gICAgICBcIlN0cmF0ZWdpc3RcIlxuICAgIF1cbiAgfSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7cHJlZml4fSAje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbnBsLmFkZHJlc3MgPSB7XG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmdhbmlzdGFuXCIsXG4gICAgXCJBbGJhbmlhXCIsXG4gICAgXCJBbGdpZXJpYVwiLFxuICAgIFwiQW5kb3JhXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIkFudGlndWEgaSBCYXJidWRhXCIsXG4gICAgXCJBcmFiaWEgU2F1ZHlqc2thXCIsXG4gICAgXCJBcmdlbnR5bmFcIixcbiAgICBcIkFybWVuaWFcIixcbiAgICBcIkF1c3RyYWxpYVwiLFxuICAgIFwiQXVzdHJpYVwiLFxuICAgIFwiQXplcmJlamTFvGFuXCIsXG4gICAgXCJCYWhhbXlcIixcbiAgICBcIkJhaHJham5cIixcbiAgICBcIkJhbmdsYWRlc3pcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxnaWFcIixcbiAgICBcIkJlbGl6ZVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkJodXRhblwiLFxuICAgIFwiQmlhxYJvcnXFm1wiLFxuICAgIFwiQmlybWFcIixcbiAgICBcIkJvbGl3aWFcIixcbiAgICBcIlN1Y3JlXCIsXG4gICAgXCJCb8WbbmlhIGkgSGVyY2Vnb3dpbmFcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCcmF6eWxpYVwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJCdcWCZ2FyaWFcIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW55XCIsXG4gICAgXCJDaG9yd2FjamFcIixcbiAgICBcIkN5cHJcIixcbiAgICBcIkN6YWRcIixcbiAgICBcIkN6YXJub2fDs3JhXCIsXG4gICAgXCJDemVjaHlcIixcbiAgICBcIkRhbmlhXCIsXG4gICAgXCJEZW1va3JhdHljem5hIFJlcHVibGlrYSBLb25nYVwiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIkRvbWluaWthbmFcIixcbiAgICBcIkTFvGlidXRpXCIsXG4gICAgXCJFZ2lwdFwiLFxuICAgIFwiRWt3YWRvclwiLFxuICAgIFwiRXJ5dHJlYVwiLFxuICAgIFwiRXN0b25pYVwiLFxuICAgIFwiRXRpb3BpYVwiLFxuICAgIFwiRmlkxbxpXCIsXG4gICAgXCJGaWxpcGlueVwiLFxuICAgIFwiRmlubGFuZGlhXCIsXG4gICAgXCJGcmFuY2phXCIsXG4gICAgXCJHYWJvblwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJHaGFuYVwiLFxuICAgIFwiR3JlY2phXCIsXG4gICAgXCJHcmVuYWRhXCIsXG4gICAgXCJHcnV6amFcIixcbiAgICBcIkd1amFuYVwiLFxuICAgIFwiR3dhdGVtYWxhXCIsXG4gICAgXCJHd2luZWFcIixcbiAgICBcIkd3aW5lYSBCaXNzYXVcIixcbiAgICBcIkd3aW5lYSBSw7N3bmlrb3dhXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGlzenBhbmlhXCIsXG4gICAgXCJIb2xhbmRpYVwiLFxuICAgIFwiSGFnYVwiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkluZGllXCIsXG4gICAgXCJJbmRvbmV6amFcIixcbiAgICBcIklyYWtcIixcbiAgICBcIklyYW5cIixcbiAgICBcIklybGFuZGlhXCIsXG4gICAgXCJJc2xhbmRpYVwiLFxuICAgIFwiSXpyYWVsXCIsXG4gICAgXCJKYW1hamthXCIsXG4gICAgXCJKYXBvbmlhXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiSm9yZGFuaWFcIixcbiAgICBcIkthbWJvZMW8YVwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYXRhclwiLFxuICAgIFwiS2F6YWNoc3RhblwiLFxuICAgIFwiS2VuaWFcIixcbiAgICBcIktpcmdpc3RhblwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIktvbHVtYmlhXCIsXG4gICAgXCJLb21vcnlcIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJLb3JlYSBQb8WCdWRuaW93YVwiLFxuICAgIFwiS29yZWEgUMOzxYJub2NuYVwiLFxuICAgIFwiS29zdGFyeWthXCIsXG4gICAgXCJLdWJhXCIsXG4gICAgXCJLdXdlanRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxlc290aG9cIixcbiAgICBcIkxpYmFuXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJMaWJpYVwiLFxuICAgIFwiTGllY2h0ZW5zdGVpblwiLFxuICAgIFwiTGl0d2FcIixcbiAgICBcIkx1a3NlbWJ1cmdcIixcbiAgICBcIsWBb3R3YVwiLFxuICAgIFwiTWFjZWRvbmlhXCIsXG4gICAgXCJNYWRhZ2Fza2FyXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGVkaXd5XCIsXG4gICAgXCJNYWxlemphXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2tvXCIsXG4gICAgXCJNYXVyZXRhbmlhXCIsXG4gICAgXCJNYXVyaXRpdXNcIixcbiAgICBcIk1la3N5a1wiLFxuICAgIFwiTWlrcm9uZXpqYVwiLFxuICAgIFwiTW/FgmRhd2lhXCIsXG4gICAgXCJNb25ha29cIixcbiAgICBcIk1vbmdvbGlhXCIsXG4gICAgXCJNb3phbWJpa1wiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk5lcGFsXCIsXG4gICAgXCJOaWVtY3lcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcmlhXCIsXG4gICAgXCJOaWthcmFndWFcIixcbiAgICBcIk5vcndlZ2lhXCIsXG4gICAgXCJOb3dhIFplbGFuZGlhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlBhbmFtYVwiLFxuICAgIFwiUGFwdWEtTm93YSBHd2luZWFcIixcbiAgICBcIlBhcmFnd2FqXCIsXG4gICAgXCJQZXJ1XCIsXG4gICAgXCJQb2xza2FcIixcbiAgICBcIjMyMiA1NzVcIixcbiAgICBcIlBvcnR1Z2FsaWFcIixcbiAgICBcIlJlcHVibGlrYSBQb8WCdWRuaW93ZWogQWZyeWtpXCIsXG4gICAgXCJSZXB1Ymxpa2EgxZpyb2Rrb3dvYWZyeWthxYRza2FcIixcbiAgICBcIlJlcHVibGlrYSBaaWVsb25lZ28gUHJ6eWzEhWRrYVwiLFxuICAgIFwiUm9zamFcIixcbiAgICBcIlJ1bXVuaWFcIixcbiAgICBcIlJ3YW5kYVwiLFxuICAgIFwiU2FpbnQgS2l0dHMgaSBOZXZpc1wiLFxuICAgIFwiU2FpbnQgTHVjaWFcIixcbiAgICBcIlNhaW50IFZpbmNlbnQgaSBHcmVuYWR5bnlcIixcbiAgICBcIlNhbHdhZG9yXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiU2FuIE1hcmlub1wiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU2VyYmlhXCIsXG4gICAgXCJTZXN6ZWxlXCIsXG4gICAgXCJTaWVycmEgTGVvbmVcIixcbiAgICBcIlNpbmdhcHVyXCIsXG4gICAgXCJTxYJvd2FjamFcIixcbiAgICBcIlPFgm93ZW5pYVwiLFxuICAgIFwiU29tYWxpYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdGFueSBaamVkbm9jem9uZVwiLFxuICAgIFwiU3VhemlcIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJTdWRhbiBQb8WCdWRuaW93eVwiLFxuICAgIFwiU3VyaW5hbVwiLFxuICAgIFwiU3lyaWFcIixcbiAgICBcIlN6d2FqY2FyaWFcIixcbiAgICBcIlN6d2VjamFcIixcbiAgICBcIlRhZMW8eWtpc3RhblwiLFxuICAgIFwiVGFqbGFuZGlhXCIsXG4gICAgXCJUYW56YW5pYVwiLFxuICAgIFwiVGltb3IgV3NjaG9kbmlcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcnluaWRhZCBpIFRvYmFnb1wiLFxuICAgIFwiVHVuZXpqYVwiLFxuICAgIFwiVHVyY2phXCIsXG4gICAgXCJUdXJrbWVuaXN0YW5cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiRnVuYWZ1dGlcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiVWtyYWluYVwiLFxuICAgIFwiVXJ1Z3dhalwiLFxuICAgIDIwMDgsXG4gICAgXCJVemJla2lzdGFuXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJXYXR5a2FuXCIsXG4gICAgXCJXZW5lenVlbGFcIixcbiAgICBcIlfEmWdyeVwiLFxuICAgIFwiV2llbGthIEJyeXRhbmlhXCIsXG4gICAgXCJXaWV0bmFtXCIsXG4gICAgXCJXxYJvY2h5XCIsXG4gICAgXCJXeWJyemXFvGUgS2/Fm2NpIFPFgm9uaW93ZWpcIixcbiAgICBcIld5c3B5IE1hcnNoYWxsYVwiLFxuICAgIFwiV3lzcHkgU2Fsb21vbmFcIixcbiAgICBcIld5c3B5IMWad2nEmXRlZ28gVG9tYXN6YSBpIEtzacSFxbzEmWNhXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlppbWJhYndlXCIsXG4gICAgXCJaamVkbm9jem9uZSBFbWlyYXR5IEFyYWJza2llXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3ByZWZpeFwiOiBbXG4gICAgXCJ1bC5cIixcbiAgICBcImFsLlwiXG4gIF0sXG4gIFwic2Vjb25kYXJ5X2FkZHJlc3NcIjogW1xuICAgIFwiQXB0LiAjIyNcIixcbiAgICBcIlN1aXRlICMjI1wiXG4gIF0sXG4gIFwicG9zdGNvZGVcIjogW1xuICAgIFwiIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJEb2xub8WbbMSFc2tpZVwiLFxuICAgIFwiS3VqYXdza28tcG9tb3Jza2llXCIsXG4gICAgXCJMdWJlbHNraWVcIixcbiAgICBcIkx1YnVza2llXCIsXG4gICAgXCLFgcOzZHpraWVcIixcbiAgICBcIk1hxYJvcG9sc2tpZVwiLFxuICAgIFwiTWF6b3dpZWNraWVcIixcbiAgICBcIk9wb2xza2llXCIsXG4gICAgXCJQb2RrYXJwYWNraWVcIixcbiAgICBcIlBvZGxhc2tpZVwiLFxuICAgIFwiUG9tb3Jza2llXCIsXG4gICAgXCLFmmzEhXNraWVcIixcbiAgICBcIsWad2nEmXRva3J6eXNraWVcIixcbiAgICBcIldhcm1pxYRza28tbWF6dXJza2llXCIsXG4gICAgXCJXaWVsa29wb2xza2llXCIsXG4gICAgXCJaYWNob2RuaW9wb21vcnNraWVcIlxuICBdLFxuICBcInN0YXRlX2FiYnJcIjogW1xuICAgIFwiRMWaXCIsXG4gICAgXCJLUFwiLFxuICAgIFwiTEJcIixcbiAgICBcIkxTXCIsXG4gICAgXCLFgURcIixcbiAgICBcIk1QXCIsXG4gICAgXCJNWlwiLFxuICAgIFwiT1BcIixcbiAgICBcIlBLXCIsXG4gICAgXCJQTFwiLFxuICAgIFwiUE1cIixcbiAgICBcIsWaTFwiLFxuICAgIFwixZpLXCIsXG4gICAgXCJXTVwiLFxuICAgIFwiV1BcIixcbiAgICBcIlpQXCJcbiAgXSxcbiAgXCJjaXR5X25hbWVcIjogW1xuICAgIFwiQWxla3NhbmRyw7N3IEt1amF3c2tpXCIsXG4gICAgXCJBbGVrc2FuZHLDs3cgxYHDs2R6a2lcIixcbiAgICBcIkFsd2VybmlhXCIsXG4gICAgXCJBbmRyeWNow7N3XCIsXG4gICAgXCJBbm5vcG9sXCIsXG4gICAgXCJBdWd1c3TDs3dcIixcbiAgICBcIkJhYmltb3N0XCIsXG4gICAgXCJCYWJvcsOzd1wiLFxuICAgIFwiQmFyYW7Ds3cgU2FuZG9taWVyc2tpXCIsXG4gICAgXCJCYXJjaW5cIixcbiAgICBcIkJhcmN6ZXdvXCIsXG4gICAgXCJCYXJkb1wiLFxuICAgIFwiQmFybGluZWtcIixcbiAgICBcIkJhcnRvc3p5Y2VcIixcbiAgICBcIkJhcndpY2VcIixcbiAgICBcIkJlxYJjaGF0w7N3XCIsXG4gICAgXCJCZcWCxbx5Y2VcIixcbiAgICBcIkLEmWR6aW5cIixcbiAgICBcIkJpYcWCYVwiLFxuICAgIFwiQmlhxYJhIFBpc2thXCIsXG4gICAgXCJCaWHFgmEgUG9kbGFza2FcIixcbiAgICBcIkJpYcWCYSBSYXdza2FcIixcbiAgICBcIkJpYcWCb2JyemVnaVwiLFxuICAgIFwiQmlhxYJvZ2FyZFwiLFxuICAgIFwiQmlhxYJ5IELDs3JcIixcbiAgICBcIkJpYcWCeXN0b2tcIixcbiAgICBcIkJpZWN6XCIsXG4gICAgXCJCaWVsYXdhXCIsXG4gICAgXCJCaWVsc2sgUG9kbGFza2lcIixcbiAgICBcIkJpZWxza28tQmlhxYJhXCIsXG4gICAgXCJCaWVydcWEXCIsXG4gICAgXCJCaWVydXTDs3dcIixcbiAgICBcIkJpZcW8dcWEXCIsXG4gICAgXCJCacWCZ29yYWpcIixcbiAgICBcIkJpc2t1cGllY1wiLFxuICAgIFwiQmlzenR5bmVrXCIsXG4gICAgXCJCbGFjaG93bmlhXCIsXG4gICAgXCJCxYJhc3praVwiLFxuICAgIFwiQsWCYcW8b3dhXCIsXG4gICAgXCJCxYJvbmllXCIsXG4gICAgXCJCb2JvbGljZVwiLFxuICAgIFwiQm9ib3dhXCIsXG4gICAgXCJCb2NobmlhXCIsXG4gICAgXCJCb2R6ZW50eW5cIixcbiAgICBcIkJvZ2F0eW5pYVwiLFxuICAgIFwiQm9ndWNod2HFgmFcIixcbiAgICBcIkJvZ3VzesOzdy1Hb3JjZVwiLFxuICAgIFwiQm9qYW5vd29cIixcbiAgICBcIkJvbGVzxYJhd2llY1wiLFxuICAgIFwiQm9sa8Ozd1wiLFxuICAgIFwiQm9yZWsgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJCb3JuZSBTdWxpbm93b1wiLFxuICAgIFwiQnJhbmlld29cIixcbiAgICBcIkJyYcWEc2tcIixcbiAgICBcIkJyb2RuaWNhXCIsXG4gICAgXCJCcm9rXCIsXG4gICAgXCJCcnVzeVwiLFxuICAgIFwiQnJ3aW7Ds3dcIixcbiAgICBcIkJyemVnXCIsXG4gICAgXCJCcnplZyBEb2xueVwiLFxuICAgIFwiQnJ6ZXNrb1wiLFxuICAgIFwiQnJ6ZXN6Y3plXCIsXG4gICAgXCJCcnplxZvEhyBLdWphd3NraVwiLFxuICAgIFwiQnJ6ZXppbnlcIixcbiAgICBcIkJyem9zdGVrXCIsXG4gICAgXCJCcnpvesOzd1wiLFxuICAgIFwiQnVrXCIsXG4gICAgXCJCdWtvd25vXCIsXG4gICAgXCJCdXNrby1aZHLDs2pcIixcbiAgICBcIkJ5Y2hhd2FcIixcbiAgICBcIkJ5Y3p5bmFcIixcbiAgICBcIkJ5ZGdvc3pjelwiLFxuICAgIFwiQnlzdHJ6eWNhIEvFgm9kemthXCIsXG4gICAgXCJCeXRvbVwiLFxuICAgIFwiQnl0b20gT2RyemHFhHNraVwiLFxuICAgIFwiQnl0w7N3XCIsXG4gICAgXCJDZWR5bmlhXCIsXG4gICAgXCJDaGXFgm1cIixcbiAgICBcIkNoZcWCbWVrXCIsXG4gICAgXCJDaGXFgm1ub1wiLFxuICAgIFwiQ2hlxYJtxbxhXCIsXG4gICAgXCJDaMSZY2lueVwiLFxuICAgIFwiQ2htaWVsbmlrXCIsXG4gICAgXCJDaG9jaWFuw7N3XCIsXG4gICAgXCJDaG9jaXdlbFwiLFxuICAgIFwiQ2hvZGVjelwiLFxuICAgIFwiQ2hvZHppZcW8XCIsXG4gICAgXCJDaG9qbmFcIixcbiAgICBcIkNob2puaWNlXCIsXG4gICAgXCJDaG9qbsOzd1wiLFxuICAgIFwiQ2hvcm9zemN6XCIsXG4gICAgXCJDaG9yemVsZVwiLFxuICAgIFwiQ2hvcnrDs3dcIixcbiAgICBcIkNob3N6Y3pub1wiLFxuICAgIFwiQ2hyemFuw7N3XCIsXG4gICAgXCJDaWVjaGFub3dpZWNcIixcbiAgICBcIkNpZWNoYW7Ds3dcIixcbiAgICBcIkNpZWNob2NpbmVrXCIsXG4gICAgXCJDaWVzemFuw7N3XCIsXG4gICAgXCJDaWVzenluXCIsXG4gICAgXCJDacSZxbxrb3dpY2VcIixcbiAgICBcIkN5Ymlua2FcIixcbiAgICBcIkN6YXBsaW5la1wiLFxuICAgIFwiQ3phcm5hIEJpYcWCb3N0b2NrYVwiLFxuICAgIFwiQ3phcm5hIFdvZGFcIixcbiAgICBcIkN6YXJuZVwiLFxuICAgIFwiQ3phcm5rw7N3XCIsXG4gICAgXCJDemNow7N3XCIsXG4gICAgXCJDemVjaG93aWNlLUR6aWVkemljZVwiLFxuICAgIFwiQ3plbGFkxbpcIixcbiAgICBcIkN6ZW1wacWEXCIsXG4gICAgXCJDemVybmllamV3b1wiLFxuICAgIFwiQ3plcnNrXCIsXG4gICAgXCJDemVyd2llxYRza1wiLFxuICAgIFwiQ3plcndpb25rYS1MZXN6Y3p5bnlcIixcbiAgICBcIkN6xJlzdG9jaG93YVwiLFxuICAgIFwiQ3rFgm9wYVwiLFxuICAgIFwiQ3rFgnVjaMOzd1wiLFxuICAgIFwiQ3p5xbxld1wiLFxuICAgIFwixIZtaWVsw7N3XCIsXG4gICAgXCJEYWxlc3p5Y2VcIixcbiAgICBcIkRhcsWCb3dvXCIsXG4gICAgXCJExIViaWVcIixcbiAgICBcIkTEhWJyb3dhIEJpYcWCb3N0b2NrYVwiLFxuICAgIFwiRMSFYnJvd2EgR8Ozcm5pY3phXCIsXG4gICAgXCJExIVicm93YSBUYXJub3dza2FcIixcbiAgICBcIkRlYnJ6bm9cIixcbiAgICBcIkTEmWJpY2FcIixcbiAgICBcIkTEmWJsaW5cIixcbiAgICBcIkTEmWJub1wiLFxuICAgIFwiRG9iY3p5Y2VcIixcbiAgICBcIkRvYmllZ25pZXdcIixcbiAgICBcIkRvYnJhIChwb3dpYXQgxYJvYmVza2kpXCIsXG4gICAgXCJEb2JyYSAocG93aWF0IHR1cmVja2kpXCIsXG4gICAgXCJEb2JyZSBNaWFzdG9cIixcbiAgICBcIkRvYnJvZHppZcWEXCIsXG4gICAgXCJEb2JyemFueVwiLFxuICAgIFwiRG9icnp5xYQgbmFkIFdpc8WCxIVcIixcbiAgICBcIkRvbHNrXCIsXG4gICAgXCJEcmF3bm9cIixcbiAgICBcIkRyYXdza28gUG9tb3Jza2llXCIsXG4gICAgXCJEcmV6ZGVua29cIixcbiAgICBcIkRyb2JpblwiLFxuICAgIFwiRHJvaGljenluXCIsXG4gICAgXCJEcnpld2ljYVwiLFxuICAgIFwiRHVrbGFcIixcbiAgICBcIkR1c3puaWtpLVpkcsOzalwiLFxuICAgIFwiRHluw7N3XCIsXG4gICAgXCJEemlhxYJkb3dvXCIsXG4gICAgXCJEemlhxYJvc3p5Y2VcIixcbiAgICBcIkR6aWHFgm9zenluXCIsXG4gICAgXCJEemllcnpnb8WEXCIsXG4gICAgXCJEemllcsW8b25pw7N3XCIsXG4gICAgXCJEeml3bsOzd1wiLFxuICAgIFwiRWxibMSFZ1wiLFxuICAgIFwiRcWCa1wiLFxuICAgIFwiRnJhbXBvbFwiLFxuICAgIFwiRnJvbWJvcmtcIixcbiAgICBcIkdhcndvbGluXCIsXG4gICAgXCJHxIViaW5cIixcbiAgICBcIkdkYcWEc2tcIixcbiAgICBcIkdkeW5pYVwiLFxuICAgIFwiR2nFvHlja29cIixcbiAgICBcIkdsaW5vamVja1wiLFxuICAgIFwiR2xpd2ljZVwiLFxuICAgIFwiR8WCb2fDs3dcIixcbiAgICBcIkfFgm9nw7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJHxYJvZ8Ozd2VrXCIsXG4gICAgXCJHxYJvd25vXCIsXG4gICAgXCJHxYJ1YmN6eWNlXCIsXG4gICAgXCJHxYJ1Y2hvxYJhenlcIixcbiAgICBcIkfFgnVzenljYVwiLFxuICAgIFwiR25pZXdcIixcbiAgICBcIkduaWV3a293b1wiLFxuICAgIFwiR25pZXpub1wiLFxuICAgIFwiR29nb2xpblwiLFxuICAgIFwiR29sY3pld29cIixcbiAgICBcIkdvbGVuacOzd1wiLFxuICAgIFwiR29saW5hXCIsXG4gICAgXCJHb2x1Yi1Eb2JyennFhFwiLFxuICAgIFwiR2/FgmHFhGN6XCIsXG4gICAgXCJHb8WCZGFwXCIsXG4gICAgXCJHb25pxIVkelwiLFxuICAgIFwiR29ybGljZVwiLFxuICAgIFwiR29yesOzdyDFmmzEhXNraVwiLFxuICAgIFwiR29yesOzdyBXaWVsa29wb2xza2lcIixcbiAgICBcIkdvc3R5bmluXCIsXG4gICAgXCJHb3N0ecWEXCIsXG4gICAgXCJHb8WbY2lub1wiLFxuICAgIFwiR296ZG5pY2FcIixcbiAgICBcIkfDs3JhXCIsXG4gICAgXCJHw7NyYSBLYWx3YXJpYVwiLFxuICAgIFwiR8Ozcm93byBJxYJhd2Vja2llXCIsXG4gICAgXCJHw7Nyem5vXCIsXG4gICAgXCJHcmFiw7N3IG5hZCBQcm9zbsSFXCIsXG4gICAgXCJHcmFqZXdvXCIsXG4gICAgXCJHcm9ka8Ozd1wiLFxuICAgIFwiR3JvZHppc2sgTWF6b3dpZWNraVwiLFxuICAgIFwiR3JvZHppc2sgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJHcsOzamVjXCIsXG4gICAgXCJHcnVkemnEhWR6XCIsXG4gICAgXCJHcnliw7N3XCIsXG4gICAgXCJHcnlmaWNlXCIsXG4gICAgXCJHcnlmaW5vXCIsXG4gICAgXCJHcnlmw7N3IMWabMSFc2tpXCIsXG4gICAgXCJHdWJpblwiLFxuICAgIFwiSGFqbsOzd2thXCIsXG4gICAgXCJIYWxpbsOzd1wiLFxuICAgIFwiSGVsXCIsXG4gICAgXCJIcnViaWVzesOzd1wiLFxuICAgIFwiScWCYXdhXCIsXG4gICAgXCJJxYJvd2FcIixcbiAgICBcIknFgsW8YVwiLFxuICAgIFwiSW1pZWxpblwiLFxuICAgIFwiSW5vd3JvY8WCYXdcIixcbiAgICBcIknFhHNrb1wiLFxuICAgIFwiSXdvbmljei1aZHLDs2pcIixcbiAgICBcIkl6YmljYSBLdWphd3NrYVwiLFxuICAgIFwiSmFixYJvbm93byBQb21vcnNraWVcIixcbiAgICBcIkphbmlrb3dvXCIsXG4gICAgXCJKYW5vd2llYyBXaWVsa29wb2xza2lcIixcbiAgICBcIkphbsOzdyBMdWJlbHNraVwiLFxuICAgIFwiSmFyb2NpblwiLFxuICAgIFwiSmFyb3PFgmF3XCIsXG4gICAgXCJKYXNpZcWEXCIsXG4gICAgXCJKYXPFgm9cIixcbiAgICBcIkphc3Rhcm5pYVwiLFxuICAgIFwiSmFzdHJvd2llXCIsXG4gICAgXCJKYXN0cnrEmWJpZS1aZHLDs2pcIixcbiAgICBcIkphd29yXCIsXG4gICAgXCJKYXdvcnpub1wiLFxuICAgIFwiSmF3b3J6eW5hIMWabMSFc2thXCIsXG4gICAgXCJKZWRsaWN6ZVwiLFxuICAgIFwiSmVkbGluYS1aZHLDs2pcIixcbiAgICBcIkplZHdhYm5lXCIsXG4gICAgXCJKZWxjei1MYXNrb3dpY2VcIixcbiAgICBcIkplbGVuaWEgR8OzcmFcIixcbiAgICBcIkplemlvcmFueVwiLFxuICAgIFwiSsSZZHJ6ZWrDs3dcIixcbiAgICBcIkpvcmRhbsOzd1wiLFxuICAgIFwiSsOzemVmw7N3IChwb3dpYXQgYmnFgmdvcmFqc2tpKVwiLFxuICAgIFwiSsOzemVmw7N3IChwb3dpYXQgb3R3b2NraSlcIixcbiAgICBcIkp1dHJvc2luXCIsXG4gICAgXCJLYWxldHlcIixcbiAgICBcIkthbGlzelwiLFxuICAgIFwiS2FsaXN6IFBvbW9yc2tpXCIsXG4gICAgXCJLYWx3YXJpYSBaZWJyenlkb3dza2FcIixcbiAgICBcIkthxYJ1c3p5blwiLFxuICAgIFwiS2FtaWVubmEgR8OzcmFcIixcbiAgICBcIkthbWllxYQgS3JhamXFhHNraVwiLFxuICAgIFwiS2FtaWXFhCBQb21vcnNraVwiLFxuICAgIFwiS2FtaWXFhHNrXCIsXG4gICAgXCJLYcWEY3p1Z2FcIixcbiAgICBcIkthcmN6ZXdcIixcbiAgICBcIkthcmdvd2FcIixcbiAgICBcIkthcmxpbm9cIixcbiAgICBcIkthcnBhY3pcIixcbiAgICBcIkthcnR1enlcIixcbiAgICBcIkthdG93aWNlXCIsXG4gICAgXCJLYXppbWllcnogRG9sbnlcIixcbiAgICBcIkthemltaWVyemEgV2llbGthXCIsXG4gICAgXCJLxIV0eSBXcm9jxYJhd3NraWVcIixcbiAgICBcIktjeW5pYVwiLFxuICAgIFwiS8SZZHppZXJ6eW4tS2/FumxlXCIsXG4gICAgXCJLxJlwaWNlXCIsXG4gICAgXCJLxJlwbm9cIixcbiAgICBcIkvEmXRyenluXCIsXG4gICAgXCJLxJl0eVwiLFxuICAgIFwiS2llbGNlXCIsXG4gICAgXCJLaWV0cnpcIixcbiAgICBcIktpc2llbGljZVwiLFxuICAgIFwiS2xlY3pld1wiLFxuICAgIFwiS2xlc3pjemVsZVwiLFxuICAgIFwiS2x1Y3pib3JrXCIsXG4gICAgXCJLxYJlY2tvXCIsXG4gICAgXCJLxYJvYnVja1wiLFxuICAgIFwiS8WCb2Rhd2FcIixcbiAgICBcIkvFgm9kemtvXCIsXG4gICAgXCJLbnVyw7N3XCIsXG4gICAgXCJLbnlzenluXCIsXG4gICAgXCJLb2J5bGluXCIsXG4gICAgXCJLb2J5xYJrYVwiLFxuICAgIFwiS29ja1wiLFxuICAgIFwiS29sYnVzem93YVwiLFxuICAgIFwiS29sbm9cIixcbiAgICBcIktvbG9ub3dza2llXCIsXG4gICAgXCJLb2x1c3praVwiLFxuICAgIFwiS2/FgmFjenljZVwiLFxuICAgIFwiS2/Fgm9cIixcbiAgICBcIktvxYJvYnJ6ZWdcIixcbiAgICBcIktvbmllY3BvbFwiLFxuICAgIFwiS29uaW5cIixcbiAgICBcIktvbnN0YW5jaW4tSmV6aW9ybmFcIixcbiAgICBcIktvbnN0YW50eW7Ds3cgxYHDs2R6a2lcIixcbiAgICBcIktvxYRza2llXCIsXG4gICAgXCJLb3Byenl3bmljYVwiLFxuICAgIFwiS29yZmFudMOzd1wiLFxuICAgIFwiS29yb25vd29cIixcbiAgICBcIktvcnN6ZVwiLFxuICAgIFwiS29zw7N3IExhY2tpXCIsXG4gICAgXCJLb3N0cnp5blwiLFxuICAgIFwiS29zdHJ6eW4gbmFkIE9kcsSFXCIsXG4gICAgXCJLb3N6YWxpblwiLFxuICAgIFwiS2/Fm2NpYW5cIixcbiAgICBcIktvxZtjaWVyenluYVwiLFxuICAgIFwiS293YWxcIixcbiAgICBcIktvd2FsZXdvIFBvbW9yc2tpZVwiLFxuICAgIFwiS293YXJ5XCIsXG4gICAgXCJLb3ppZWfFgm93eVwiLFxuICAgIFwiS296aWVuaWNlXCIsXG4gICAgXCJLb8W6bWluIFdpZWxrb3BvbHNraVwiLFxuICAgIFwiS2/FvHVjaMOzd1wiLFxuICAgIFwiS8Ozcm5pa1wiLFxuICAgIFwiS3JhamVua2FcIixcbiAgICBcIktyYWvDs3dcIixcbiAgICBcIktyYXBrb3dpY2VcIixcbiAgICBcIktyYXNub2Jyw7NkXCIsXG4gICAgXCJLcmFzbnlzdGF3XCIsXG4gICAgXCJLcmHFm25pa1wiLFxuICAgIFwiS3JvYmlhXCIsXG4gICAgXCJLcm9zbm9cIixcbiAgICBcIktyb3NubyBPZHJ6YcWEc2tpZVwiLFxuICAgIFwiS3JvxZtuaWV3aWNlXCIsXG4gICAgXCJLcm90b3N6eW5cIixcbiAgICBcIktydXN6d2ljYVwiLFxuICAgIFwiS3J5bmljYSBNb3Jza2FcIixcbiAgICBcIktyeW5pY2EtWmRyw7NqXCIsXG4gICAgXCJLcnlua2lcIixcbiAgICBcIktyemFub3dpY2VcIixcbiAgICBcIktyemVwaWNlXCIsXG4gICAgXCJLcnplc3pvd2ljZVwiLFxuICAgIFwiS3J6eXdpxYRcIixcbiAgICBcIktyennFvCBXaWVsa29wb2xza2lcIixcbiAgICBcIktzacSFxbwgV2llbGtvcG9sc2tpXCIsXG4gICAgXCJLdWRvd2EtWmRyw7NqXCIsXG4gICAgXCJLdW7Ds3dcIixcbiAgICBcIkt1dG5vXCIsXG4gICAgXCJLdcW6bmlhIFJhY2lib3Jza2FcIixcbiAgICBcIkt3aWR6eW5cIixcbiAgICBcIkzEhWRlay1aZHLDs2pcIixcbiAgICBcIkxlZ2lvbm93b1wiLFxuICAgIFwiTGVnbmljYVwiLFxuICAgIFwiTGVza29cIixcbiAgICBcIkxlc3pub1wiLFxuICAgIFwiTGXFm25hXCIsXG4gICAgXCJMZcWbbmljYVwiLFxuICAgIFwiTGV3aW4gQnJ6ZXNraVwiLFxuICAgIFwiTGXFvGFqc2tcIixcbiAgICBcIkzEmWJvcmtcIixcbiAgICBcIkzEmWR6aW55XCIsXG4gICAgXCJMaWJpxIXFvFwiLFxuICAgIFwiTGlkemJhcmtcIixcbiAgICBcIkxpZHpiYXJrIFdhcm1pxYRza2lcIixcbiAgICBcIkxpbWFub3dhXCIsXG4gICAgXCJMaXBpYW55XCIsXG4gICAgXCJMaXBub1wiLFxuICAgIFwiTGlwc2tcIixcbiAgICBcIkxpcHNrb1wiLFxuICAgIFwiTHViYWN6w7N3XCIsXG4gICAgXCJMdWJhxYRcIixcbiAgICBcIkx1YmFydMOzd1wiLFxuICAgIFwiTHViYXdhXCIsXG4gICAgXCJMdWJhd2thXCIsXG4gICAgXCJMdWJpZcWEIEt1amF3c2tpXCIsXG4gICAgXCJMdWJpblwiLFxuICAgIFwiTHVibGluXCIsXG4gICAgXCJMdWJsaW5pZWNcIixcbiAgICBcIkx1Ym5pZXdpY2VcIixcbiAgICBcIkx1Ym9taWVyelwiLFxuICAgIFwiTHVib8WEXCIsXG4gICAgXCJMdWJyYW5pZWNcIixcbiAgICBcIkx1YnNrb1wiLFxuICAgIFwiTHfDs3dla1wiLFxuICAgIFwiTHfDs3dlayDFmmzEhXNraVwiLFxuICAgIFwixYFhYmlzenluXCIsXG4gICAgXCLFgWHFhGN1dFwiLFxuICAgIFwixYFhcHlcIixcbiAgICBcIsWBYXNpblwiLFxuICAgIFwixYFhc2tcIixcbiAgICBcIsWBYXNrYXJ6ZXdcIixcbiAgICBcIsWBYXN6Y3rDs3dcIixcbiAgICBcIsWBYXppc2thIEfDs3JuZVwiLFxuICAgIFwixYFhenlcIixcbiAgICBcIsWBZWJhXCIsXG4gICAgXCLFgcSZY3puYVwiLFxuICAgIFwixYHEmWN6eWNhXCIsXG4gICAgXCLFgcSZa25pY2FcIixcbiAgICBcIsWBb2JlelwiLFxuICAgIFwixYFvYsW8ZW5pY2FcIixcbiAgICBcIsWBb2Now7N3XCIsXG4gICAgXCLFgW9taWFua2lcIixcbiAgICBcIsWBb23FvGFcIixcbiAgICBcIsWBb3NpY2VcIixcbiAgICBcIsWBb3dpY3pcIixcbiAgICBcIsWBw7NkxbpcIixcbiAgICBcIsWBdWvDs3dcIixcbiAgICBcIk1ha8OzdyBNYXpvd2llY2tpXCIsXG4gICAgXCJNYWvDs3cgUG9kaGFsYcWEc2tpXCIsXG4gICAgXCJNYWxib3JrXCIsXG4gICAgXCJNYcWCb2dvc3pjelwiLFxuICAgIFwiTWHFgm9taWNlXCIsXG4gICAgXCJNYXJnb25pblwiLFxuICAgIFwiTWFya2lcIixcbiAgICBcIk1hc3pld29cIixcbiAgICBcIk1pYXN0ZWN6a28gxZpsxIVza2llXCIsXG4gICAgXCJNaWFzdGtvXCIsXG4gICAgXCJNaWNoYcWCb3dvXCIsXG4gICAgXCJNaWVjaMOzd1wiLFxuICAgIFwiTWllanNrYSBHw7Nya2FcIixcbiAgICBcIk1pZWxlY1wiLFxuICAgIFwiTWllcm9zesOzd1wiLFxuICAgIFwiTWllc3prb3dpY2VcIixcbiAgICBcIk1pxJlkenliw7NyelwiLFxuICAgIFwiTWnEmWR6eWNow7NkXCIsXG4gICAgXCJNacSZZHp5bGVzaWVcIixcbiAgICBcIk1pxJlkenlyemVjIFBvZGxhc2tpXCIsXG4gICAgXCJNacSZZHp5cnplY3pcIixcbiAgICBcIk1pxJlkenl6ZHJvamVcIixcbiAgICBcIk1pa2/FgmFqa2lcIixcbiAgICBcIk1pa2/FgsOzd1wiLFxuICAgIFwiTWlrc3RhdFwiLFxuICAgIFwiTWlsYW7Ds3dla1wiLFxuICAgIFwiTWlsaWN6XCIsXG4gICAgXCJNacWCYWtvd29cIixcbiAgICBcIk1pxYJvbcWCeW5cIixcbiAgICBcIk1pxYJvc8WCYXdcIixcbiAgICBcIk1pxYRzayBNYXpvd2llY2tpXCIsXG4gICAgXCJNaXJvc8WCYXdpZWNcIixcbiAgICBcIk1pcnNrXCIsXG4gICAgXCJNxYJhd2FcIixcbiAgICBcIk3FgnluYXJ5XCIsXG4gICAgXCJNb2dpZWxuaWNhXCIsXG4gICAgXCJNb2dpbG5vXCIsXG4gICAgXCJNb8WEa2lcIixcbiAgICBcIk1vcsSFZ1wiLFxuICAgIFwiTW9yZHlcIixcbiAgICBcIk1vcnnFhFwiLFxuICAgIFwiTW9zaW5hXCIsXG4gICAgXCJNcsSFZ293b1wiLFxuICAgIFwiTXJvY3phXCIsXG4gICAgXCJNc3phbmEgRG9sbmFcIixcbiAgICBcIk1zemN6b27Ds3dcIixcbiAgICBcIk11cm93YW5hIEdvxZtsaW5hXCIsXG4gICAgXCJNdXN6eW5hXCIsXG4gICAgXCJNeXPFgm93aWNlXCIsXG4gICAgXCJNeXN6a8Ozd1wiLFxuICAgIFwiTXlzenluaWVjXCIsXG4gICAgXCJNecWbbGVuaWNlXCIsXG4gICAgXCJNecWbbGliw7NyelwiLFxuICAgIFwiTmFrxYJvIG5hZCBOb3RlY2nEhVwiLFxuICAgIFwiTmHFgsSZY3rDs3dcIixcbiAgICBcIk5hbXlzxYLDs3dcIixcbiAgICBcIk5hcm9sXCIsXG4gICAgXCJOYXNpZWxza1wiLFxuICAgIFwiTmVrbGFcIixcbiAgICBcIk5pZHppY2FcIixcbiAgICBcIk5pZW1jemFcIixcbiAgICBcIk5pZW1vZGxpblwiLFxuICAgIFwiTmllcG/Fgm9taWNlXCIsXG4gICAgXCJOaWVzemF3YVwiLFxuICAgIFwiTmlza29cIixcbiAgICBcIk5vd2EgRMSZYmFcIixcbiAgICBcIk5vd2EgUnVkYVwiLFxuICAgIFwiTm93YSBTYXJ6eW5hXCIsXG4gICAgXCJOb3dhIFPDs2xcIixcbiAgICBcIk5vd2VcIixcbiAgICBcIk5vd2UgQnJ6ZXNrb1wiLFxuICAgIFwiTm93ZSBNaWFzdGVjemtvXCIsXG4gICAgXCJOb3dlIE1pYXN0byBMdWJhd3NraWVcIixcbiAgICBcIk5vd2UgTWlhc3RvIG5hZCBQaWxpY8SFXCIsXG4gICAgXCJOb3dlIFNrYWxtaWVyenljZVwiLFxuICAgIFwiTm93ZSBXYXJwbm9cIixcbiAgICBcIk5vd29nYXJkXCIsXG4gICAgXCJOb3dvZ3JvZHppZWNcIixcbiAgICBcIk5vd29ncsOzZFwiLFxuICAgIFwiTm93b2dyw7NkIEJvYnJ6YcWEc2tpXCIsXG4gICAgXCJOb3d5IER3w7NyIEdkYcWEc2tpXCIsXG4gICAgXCJOb3d5IER3w7NyIE1hem93aWVja2lcIixcbiAgICBcIk5vd3kgU8SFY3pcIixcbiAgICBcIk5vd3kgU3Rhd1wiLFxuICAgIFwiTm93eSBUYXJnXCIsXG4gICAgXCJOb3d5IFRvbXnFm2xcIixcbiAgICBcIk5vd3kgV2nFm25pY3pcIixcbiAgICBcIk55c2FcIixcbiAgICBcIk9ib3JuaWtpXCIsXG4gICAgXCJPYm9ybmlraSDFmmzEhXNraWVcIixcbiAgICBcIk9icnp5Y2tvXCIsXG4gICAgXCJPZG9sYW7Ds3dcIixcbiAgICBcIk9ncm9kemllbmllY1wiLFxuICAgIFwiT2tvbmVrXCIsXG4gICAgXCJPbGVja29cIixcbiAgICBcIk9sZXNub1wiLFxuICAgIFwiT2xlc3p5Y2VcIixcbiAgICBcIk9sZcWbbmljYVwiLFxuICAgIFwiT2xrdXN6XCIsXG4gICAgXCJPbHN6dHluXCIsXG4gICAgXCJPbHN6dHluZWtcIixcbiAgICBcIk9sc3p5bmFcIixcbiAgICBcIk/FgmF3YVwiLFxuICAgIFwiT3BhbGVuaWNhXCIsXG4gICAgXCJPcGF0w7N3XCIsXG4gICAgXCJPcG9jem5vXCIsXG4gICAgXCJPcG9sZVwiLFxuICAgIFwiT3BvbGUgTHViZWxza2llXCIsXG4gICAgXCJPcm5ldGFcIixcbiAgICBcIk9yemVzemVcIixcbiAgICBcIk9yenlzelwiLFxuICAgIFwiT3NpZWN6bmFcIixcbiAgICBcIk9zaWVrXCIsXG4gICAgXCJPc3Ryb8WCxJlrYVwiLFxuICAgIFwiT3N0cm9yw7NnXCIsXG4gICAgXCJPc3Ryb3dpZWMgxZp3acSZdG9rcnp5c2tpXCIsXG4gICAgXCJPc3Ryw7NkYVwiLFxuICAgIFwiT3N0csOzdyBMdWJlbHNraVwiLFxuICAgIFwiT3N0csOzdyBNYXpvd2llY2thXCIsXG4gICAgXCJPc3Ryw7N3IFdpZWxrb3BvbHNraVwiLFxuICAgIFwiT3N0cnplc3rDs3dcIixcbiAgICBcIk/Fm25vIEx1YnVza2llXCIsXG4gICAgXCJPxZt3acSZY2ltXCIsXG4gICAgXCJPdG11Y2jDs3dcIixcbiAgICBcIk90d29ja1wiLFxuICAgIFwiT3ppbWVrXCIsXG4gICAgXCJPem9ya8Ozd1wiLFxuICAgIFwiT8W8YXLDs3dcIixcbiAgICBcIk/FvGFyw7N3IE1hem93aWVja2lcIixcbiAgICBcIlBhYmlhbmljZVwiLFxuICAgIFwiUGFjemvDs3dcIixcbiAgICBcIlBhasSZY3pub1wiLFxuICAgIFwiUGFrb8WbxIdcIixcbiAgICBcIlBhcmN6ZXdcIixcbiAgICBcIlBhc8WCxJlrXCIsXG4gICAgXCJQYXN5bVwiLFxuICAgIFwiUGVscGxpblwiLFxuICAgIFwiUGXFgmN6eWNlXCIsXG4gICAgXCJQaWFzZWN6bm9cIixcbiAgICBcIlBpYXNraVwiLFxuICAgIFwiUGlhc3TDs3dcIixcbiAgICBcIlBpZWNob3dpY2VcIixcbiAgICBcIlBpZWthcnkgxZpsxIVza2llXCIsXG4gICAgXCJQaWVuacSZxbxub1wiLFxuICAgIFwiUGllxYRza1wiLFxuICAgIFwiUGllc3p5Y2VcIixcbiAgICBcIlBpbGF3YVwiLFxuICAgIFwiUGlsaWNhXCIsXG4gICAgXCJQaWx6bm9cIixcbiAgICBcIlBpxYJhXCIsXG4gICAgXCJQacWCYXdhIEfDs3JuYVwiLFxuICAgIFwiUGnFhGN6w7N3XCIsXG4gICAgXCJQaW9ua2lcIixcbiAgICBcIlBpb3Rya8OzdyBLdWphd3NraVwiLFxuICAgIFwiUGlvdHJrw7N3IFRyeWJ1bmFsc2tpXCIsXG4gICAgXCJQaXN6XCIsXG4gICAgXCJQaXduaWN6bmEtWmRyw7NqXCIsXG4gICAgXCJQbGVzemV3XCIsXG4gICAgXCJQxYJvY2tcIixcbiAgICBcIlDFgm/FhHNrXCIsXG4gICAgXCJQxYJvdHlcIixcbiAgICBcIlBuaWV3eVwiLFxuICAgIFwiUG9iaWVkemlza2FcIixcbiAgICBcIlBvZGTEmWJpY2VcIixcbiAgICBcIlBvZGtvd2EgTGXFm25hXCIsXG4gICAgXCJQb2dvcnplbGFcIixcbiAgICBcIlBvbGFuaWNhLVpkcsOzalwiLFxuICAgIFwiUG9sYW7Ds3dcIixcbiAgICBcIlBvbGljZVwiLFxuICAgIFwiUG9sa293aWNlXCIsXG4gICAgXCJQb8WCYW5pZWNcIixcbiAgICBcIlBvxYJjenluLVpkcsOzalwiLFxuICAgIFwiUG9uaWF0b3dhXCIsXG4gICAgXCJQb25pZWNcIixcbiAgICBcIlBvcsSZYmFcIixcbiAgICBcIlBvem5hxYRcIixcbiAgICBcIlByYWJ1dHlcIixcbiAgICBcIlByYXN6a2FcIixcbiAgICBcIlByb2Nob3dpY2VcIixcbiAgICBcIlByb3N6b3dpY2VcIixcbiAgICBcIlByw7NzemvDs3dcIixcbiAgICBcIlBydWNobmlrXCIsXG4gICAgXCJQcnVkbmlrXCIsXG4gICAgXCJQcnVzaWNlXCIsXG4gICAgXCJQcnVzemN6IEdkYcWEc2tpXCIsXG4gICAgXCJQcnVzemvDs3dcIixcbiAgICBcIlByemFzbnlzelwiLFxuICAgIFwiUHJ6ZWPFgmF3XCIsXG4gICAgXCJQcnplZGLDs3J6XCIsXG4gICAgXCJQcnplZGVjelwiLFxuICAgIFwiUHJ6ZW1rw7N3XCIsXG4gICAgXCJQcnplbXnFm2xcIixcbiAgICBcIlByemV3b3Jza1wiLFxuICAgIFwiUHJ6eXN1Y2hhXCIsXG4gICAgXCJQc3pjenluYVwiLFxuICAgIFwiUHN6w7N3XCIsXG4gICAgXCJQdWNrXCIsXG4gICAgXCJQdcWCYXd5XCIsXG4gICAgXCJQdcWCdHVza1wiLFxuICAgIFwiUHVzemN6eWtvd29cIixcbiAgICBcIlB5cnp5Y2VcIixcbiAgICBcIlB5c2tvd2ljZVwiLFxuICAgIFwiUHl6ZHJ5XCIsXG4gICAgXCJSYWJrYS1aZHLDs2pcIixcbiAgICBcIlJhY2nEhcW8XCIsXG4gICAgXCJSYWNpYsOzcnpcIixcbiAgICBcIlJhZGvDs3dcIixcbiAgICBcIlJhZGxpblwiLFxuICAgIFwiUmFkxYLDs3dcIixcbiAgICBcIlJhZG9tXCIsXG4gICAgXCJSYWRvbXNrb1wiLFxuICAgIFwiUmFkb215xZtsIFdpZWxraVwiLFxuICAgIFwiUmFkeW1ub1wiLFxuICAgIFwiUmFkemllasOzd1wiLFxuICAgIFwiUmFkemlvbmvDs3dcIixcbiAgICBcIlJhZHp5bWluXCIsXG4gICAgXCJSYWR6ecWEIENoZcWCbWnFhHNraVwiLFxuICAgIFwiUmFkennFhCBQb2RsYXNraVwiLFxuICAgIFwiUmFqZ3LDs2RcIixcbiAgICBcIlJha29uaWV3aWNlXCIsXG4gICAgXCJSYXN6a8Ozd1wiLFxuICAgIFwiUmF3YSBNYXpvd2llY2thXCIsXG4gICAgXCJSYXdpY3pcIixcbiAgICBcIlJlY3pcIixcbiAgICBcIlJlZGFcIixcbiAgICBcIlJlam93aWVjIEZhYnJ5Y3pueVwiLFxuICAgIFwiUmVza29cIixcbiAgICBcIlJlc3plbFwiLFxuICAgIFwiUm9nb8W6bm9cIixcbiAgICBcIlJvcGN6eWNlXCIsXG4gICAgXCJSw7PFvGFuXCIsXG4gICAgXCJSdWNpYW5lLU5pZGFcIixcbiAgICBcIlJ1ZGEgxZpsxIVza2FcIixcbiAgICBcIlJ1ZG5payBuYWQgU2FuZW1cIixcbiAgICBcIlJ1bWlhXCIsXG4gICAgXCJSeWJuaWtcIixcbiAgICBcIlJ5Y2h3YcWCXCIsXG4gICAgXCJSeWR1xYJ0b3d5XCIsXG4gICAgXCJSeWR6eW5hXCIsXG4gICAgXCJSeWdsaWNlXCIsXG4gICAgXCJSeWtpXCIsXG4gICAgXCJSeW1hbsOzd1wiLFxuICAgIFwiUnluXCIsXG4gICAgXCJSeXBpblwiLFxuICAgIFwiUnplcGluXCIsXG4gICAgXCJSemVzesOzd1wiLFxuICAgIFwiUnpnw7N3XCIsXG4gICAgXCJTYW5kb21pZXJ6XCIsXG4gICAgXCJTYW5va1wiLFxuICAgIFwiU2VqbnlcIixcbiAgICBcIlNlcm9ja1wiLFxuICAgIFwiU8SZZHppc3rDs3dcIixcbiAgICBcIlPEmWR6aXN6w7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJTxJlwb3BvbFwiLFxuICAgIFwiU8SZcMOzbG5vIEtyYWplxYRza2llXCIsXG4gICAgXCJTaWFuw7N3XCIsXG4gICAgXCJTaWVjaG5pY2VcIixcbiAgICBcIlNpZWRsY2VcIixcbiAgICBcIlNpZW1pYW5vd2ljZSDFmmzEhXNraWVcIixcbiAgICBcIlNpZW1pYXR5Y3plXCIsXG4gICAgXCJTaWVuaWF3YVwiLFxuICAgIFwiU2llcmFkelwiLFxuICAgIFwiU2llcmFrw7N3XCIsXG4gICAgXCJTaWVycGNcIixcbiAgICBcIlNpZXdpZXJ6XCIsXG4gICAgXCJTa2FsYm1pZXJ6XCIsXG4gICAgXCJTa2HFgmFcIixcbiAgICBcIlNrYXJzemV3eVwiLFxuICAgIFwiU2thcnlzemV3XCIsXG4gICAgXCJTa2Fyxbx5c2tvLUthbWllbm5hXCIsXG4gICAgXCJTa2F3aW5hXCIsXG4gICAgXCJTa8SZcGVcIixcbiAgICBcIlNraWVybmlld2ljZVwiLFxuICAgIFwiU2tvY3rDs3dcIixcbiAgICBcIlNrb2tpXCIsXG4gICAgXCJTa8OzcmN6XCIsXG4gICAgXCJTa3dpZXJ6eW5hXCIsXG4gICAgXCJTxYJhd2FcIixcbiAgICBcIlPFgmF3a8Ozd1wiLFxuICAgIFwiU8WCYXdub1wiLFxuICAgIFwiU8WCb21uaWtpXCIsXG4gICAgXCJTxYJ1YmljZVwiLFxuICAgIFwiU8WCdXBjYVwiLFxuICAgIFwiU8WCdXBza1wiLFxuICAgIFwiU29iw7N0a2FcIixcbiAgICBcIlNvY2hhY3pld1wiLFxuICAgIFwiU29rb8WCw7N3IE1hxYJvcG9sc2tpXCIsXG4gICAgXCJTb2tvxYLDs3cgUG9kbGFza2lcIixcbiAgICBcIlNva8OzxYJrYVwiLFxuICAgIFwiU29sZWMgS3VqYXdza2lcIixcbiAgICBcIlNvbXBvbG5vXCIsXG4gICAgXCJTb3BvdFwiLFxuICAgIFwiU29zbm93aWVjXCIsXG4gICAgXCJTb8Wbbmljb3dpY2VcIixcbiAgICBcIlN0YWxvd2EgV29sYVwiLFxuICAgIFwiU3RhcmFjaG93aWNlXCIsXG4gICAgXCJTdGFyZ2FyZCBTemN6ZWNpxYRza2lcIixcbiAgICBcIlN0YXJvZ2FyZCBHZGHFhHNraVwiLFxuICAgIFwiU3RhcnkgU8SFY3pcIixcbiAgICBcIlN0YXN6w7N3XCIsXG4gICAgXCJTdGF3aXNraVwiLFxuICAgIFwiU3Rhd2lzenluXCIsXG4gICAgXCJTdMSFcG9ya8Ozd1wiLFxuICAgIFwiU3TEmXN6ZXdcIixcbiAgICBcIlN0b2N6ZWsgxYF1a293c2tpXCIsXG4gICAgXCJTdHJvbmllIMWabMSFc2tpZVwiLFxuICAgIFwiU3RydW1pZcWEXCIsXG4gICAgXCJTdHJ5a8Ozd1wiLFxuICAgIFwiU3RyemVnb21cIixcbiAgICBcIlN0cnplbGNlIEtyYWplxYRza2llXCIsXG4gICAgXCJTdHJ6ZWxjZSBPcG9sc2tpZVwiLFxuICAgIFwiU3RyemVsaW5cIixcbiAgICBcIlN0cnplbG5vXCIsXG4gICAgXCJTdHJ6ecW8w7N3XCIsXG4gICAgXCJTdWNoYSBCZXNraWR6a2FcIixcbiAgICBcIlN1Y2hhxYRcIixcbiAgICBcIlN1Y2hlZG5pw7N3XCIsXG4gICAgXCJTdWNob3dvbGFcIixcbiAgICBcIlN1bGVjaMOzd1wiLFxuICAgIFwiU3VsZWrDs3dcIixcbiAgICBcIlN1bGVqw7N3ZWtcIixcbiAgICBcIlN1bMSZY2luXCIsXG4gICAgXCJTdWxtaWVyenljZVwiLFxuICAgIFwiU3XFgmtvd2ljZVwiLFxuICAgIFwiU3VwcmHFm2xcIixcbiAgICBcIlN1cmHFvFwiLFxuICAgIFwiU3VzelwiLFxuICAgIFwiU3V3YcWCa2lcIixcbiAgICBcIlN3YXJ6xJlkelwiLFxuICAgIFwiU3ljw7N3XCIsXG4gICAgXCJTemFkZWtcIixcbiAgICBcIlN6YW1vY2luXCIsXG4gICAgXCJTemFtb3R1xYJ5XCIsXG4gICAgXCJTemN6YXduaWNhXCIsXG4gICAgXCJTemN6YXduby1aZHLDs2pcIixcbiAgICBcIlN6Y3plYnJ6ZXN6eW5cIixcbiAgICBcIlN6Y3plY2luXCIsXG4gICAgXCJTemN6ZWNpbmVrXCIsXG4gICAgXCJTemN6ZWtvY2lueVwiLFxuICAgIFwiU3pjenVjaW5cIixcbiAgICBcIlN6Y3p1Y3p5blwiLFxuICAgIFwiU3pjenlya1wiLFxuICAgIFwiU3pjenl0bmFcIixcbiAgICBcIlN6Y3p5dG5vXCIsXG4gICAgXCJTemVwaWV0b3dvXCIsXG4gICAgXCJTemtsYXJza2EgUG9yxJliYVwiLFxuICAgIFwiU3psaWNodHluZ293YVwiLFxuICAgIFwiU3pwcm90YXdhXCIsXG4gICAgXCJTenR1bVwiLFxuICAgIFwiU3p1YmluXCIsXG4gICAgXCJTenlkxYJvd2llY1wiLFxuICAgIFwixZpjaW5hd2FcIixcbiAgICBcIsWabGVzaW5cIixcbiAgICBcIsWabWlnaWVsXCIsXG4gICAgXCLFmnJlbVwiLFxuICAgIFwixZpyb2RhIMWabMSFc2thXCIsXG4gICAgXCLFmnJvZGEgV2llbGtvcG9sc2thXCIsXG4gICAgXCLFmndpxIV0bmlraSBHw7NybmVcIixcbiAgICBcIsWad2lkbmljYVwiLFxuICAgIFwixZp3aWRuaWtcIixcbiAgICBcIsWad2lkd2luXCIsXG4gICAgXCLFmndpZWJvZHppY2VcIixcbiAgICBcIsWad2llYm9kemluXCIsXG4gICAgXCLFmndpZWNpZVwiLFxuICAgIFwixZp3aWVyYWTDs3ctWmRyw7NqXCIsXG4gICAgXCLFmndpZXJ6YXdhXCIsXG4gICAgXCLFmndpxJl0b2NoxYJvd2ljZVwiLFxuICAgIFwixZp3aW5vdWrFm2NpZVwiLFxuICAgIFwiVGFyY3p5blwiLFxuICAgIFwiVGFybm9icnplZ1wiLFxuICAgIFwiVGFybm9ncsOzZFwiLFxuICAgIFwiVGFybm93c2tpZSBHw7NyeVwiLFxuICAgIFwiVGFybsOzd1wiLFxuICAgIFwiVGN6ZXdcIixcbiAgICBcIlRlcmVzcG9sXCIsXG4gICAgXCJUxYJ1c3pjelwiLFxuICAgIFwiVG9sa21pY2tvXCIsXG4gICAgXCJUb21hc3rDs3cgTHViZWxza2lcIixcbiAgICBcIlRvbWFzesOzdyBNYXpvd2llY2tpXCIsXG4gICAgXCJUb3J1xYRcIixcbiAgICBcIlRvcnp5bVwiLFxuICAgIFwiVG9zemVrXCIsXG4gICAgXCJUcnpjaWFua2FcIixcbiAgICBcIlRyemNpZWxcIixcbiAgICBcIlRyemNpxYRza28tWmRyw7NqXCIsXG4gICAgXCJUcnplYmlhdMOzd1wiLFxuICAgIFwiVHJ6ZWJpbmlhXCIsXG4gICAgXCJUcnplYm5pY2FcIixcbiAgICBcIlRyemVtZXN6bm9cIixcbiAgICBcIlR1Y2hvbGFcIixcbiAgICBcIlR1Y2jDs3dcIixcbiAgICBcIlR1Y3pub1wiLFxuICAgIFwiVHVsaXN6a8Ozd1wiLFxuICAgIFwiVHVyZWtcIixcbiAgICBcIlR1c3p5blwiLFxuICAgIFwiVHdhcmRvZ8OzcmFcIixcbiAgICBcIlR5Y2hvd29cIixcbiAgICBcIlR5Y2h5XCIsXG4gICAgXCJUeWN6eW5cIixcbiAgICBcIlR5a29jaW5cIixcbiAgICBcIlR5c3pvd2NlXCIsXG4gICAgXCJVamF6ZFwiLFxuICAgIFwiVWrFm2NpZVwiLFxuICAgIFwiVWxhbsOzd1wiLFxuICAgIFwiVW5pZWrDs3dcIixcbiAgICBcIlVzdGthXCIsXG4gICAgXCJVc3Ryb8WEXCIsXG4gICAgXCJVc3RyenlraSBEb2xuZVwiLFxuICAgIFwiV2Fkb3dpY2VcIixcbiAgICBcIldhxYJicnp5Y2hcIixcbiAgICBcIldhxYJjelwiLFxuICAgIFwiV2Fya2FcIixcbiAgICBcIldhcnN6YXdhXCIsXG4gICAgXCJXYXJ0YVwiLFxuICAgIFwiV2FzaWxrw7N3XCIsXG4gICAgXCJXxIVicnplxbpub1wiLFxuICAgIFwiV8SFY2hvY2tcIixcbiAgICBcIlfEhWdyb3dpZWNcIixcbiAgICBcIlfEhXNvc3pcIixcbiAgICBcIldlamhlcm93b1wiLFxuICAgIFwiV8SZZ2xpbmllY1wiLFxuICAgIFwiV8SZZ29yemV3b1wiLFxuICAgIFwiV8SZZ29yenlub1wiLFxuICAgIFwiV8SZZ3LDs3dcIixcbiAgICBcIldpxIV6w7N3XCIsXG4gICAgXCJXaWVsZcWEXCIsXG4gICAgXCJXaWVsaWNob3dvXCIsXG4gICAgXCJXaWVsaWN6a2FcIixcbiAgICBcIldpZWx1xYRcIixcbiAgICBcIldpZXJ1c3rDs3dcIixcbiAgICBcIldpxJljYm9ya1wiLFxuICAgIFwiV2lsYW1vd2ljZVwiLFxuICAgIFwiV2lzxYJhXCIsXG4gICAgXCJXaXRrb3dvXCIsXG4gICAgXCJXaXRuaWNhXCIsXG4gICAgXCJXbGXFhFwiLFxuICAgIFwiV8WCYWR5c8WCYXdvd29cIixcbiAgICBcIlfFgm9jxYJhd2VrXCIsXG4gICAgXCJXxYJvZGF3YVwiLFxuICAgIFwiV8WCb3N6Y3pvd2FcIixcbiAgICBcIldvZHppc8WCYXcgxZpsxIVza2lcIixcbiAgICBcIldvamNpZXN6w7N3XCIsXG4gICAgXCJXb2prb3dpY2VcIixcbiAgICBcIldvam5pY3pcIixcbiAgICBcIldvbGLDs3J6XCIsXG4gICAgXCJXb2xicm9tXCIsXG4gICAgXCJXb2xpblwiLFxuICAgIFwiV29sc3p0eW5cIixcbiAgICBcIldvxYJjenluXCIsXG4gICAgXCJXb8WCb21pblwiLFxuICAgIFwiV2/FgsOzd1wiLFxuICAgIFwiV2/Fum5pa2lcIixcbiAgICBcIldyb2PFgmF3XCIsXG4gICAgXCJXcm9ua2lcIixcbiAgICBcIldyemXFm25pYVwiLFxuICAgIFwiV3NjaG93YVwiLFxuICAgIFwiV3lyenlza1wiLFxuICAgIFwiV3lzb2thXCIsXG4gICAgXCJXeXNva2llIE1hem93aWVja2llXCIsXG4gICAgXCJXeXN6a8Ozd1wiLFxuICAgIFwiV3lzem9ncsOzZFwiLFxuICAgIFwiV3nFm21pZXJ6eWNlXCIsXG4gICAgXCJaYWLFgnVkw7N3XCIsXG4gICAgXCJaYWJyemVcIixcbiAgICBcIlphZ8OzcsOzd1wiLFxuICAgIFwiWmFnw7NyelwiLFxuICAgIFwiWmFrbGljenluXCIsXG4gICAgXCJaYWtvcGFuZVwiLFxuICAgIFwiWmFrcm9jenltXCIsXG4gICAgXCJaYWxld29cIixcbiAgICBcIlphbWJyw7N3XCIsXG4gICAgXCJaYW1vxZvEh1wiLFxuICAgIFwiWmF0b3JcIixcbiAgICBcIlphd2FkemtpZVwiLFxuICAgIFwiWmF3aWNob3N0XCIsXG4gICAgXCJaYXdpZMOzd1wiLFxuICAgIFwiWmF3aWVyY2llXCIsXG4gICAgXCJaxIVia2lcIixcbiAgICBcIlrEhWJrb3dpY2UgxZpsxIVza2llXCIsXG4gICAgXCJaYsSFc3p5bmVrXCIsXG4gICAgXCJaYsSFc3p5xYRcIixcbiAgICBcIlpkdW55XCIsXG4gICAgXCJaZHXFhHNrYSBXb2xhXCIsXG4gICAgXCJaZHppZXN6b3dpY2VcIixcbiAgICBcIlplbMOzd1wiLFxuICAgIFwiWmdpZXJ6XCIsXG4gICAgXCJaZ29yemVsZWNcIixcbiAgICBcIlppZWxvbmEgR8OzcmFcIixcbiAgICBcIlppZWxvbmthXCIsXG4gICAgXCJaacSZYmljZVwiLFxuICAgIFwiWsWCb2NpZW5pZWNcIixcbiAgICBcIlrFgm9jemV3XCIsXG4gICAgXCJaxYJvdG9yeWphXCIsXG4gICAgXCJaxYJvdMOzd1wiLFxuICAgIFwiWsWCb3R5IFN0b2tcIixcbiAgICBcIlp3aWVyenluaWVjXCIsXG4gICAgXCJad29sZcWEXCIsXG4gICAgXCLFu2Fibm9cIixcbiAgICBcIsW7YWdhxYRcIixcbiAgICBcIsW7YXJraVwiLFxuICAgIFwixbthcsOzd1wiLFxuICAgIFwixbthcnlcIixcbiAgICBcIsW7ZWxlY2jDs3dcIixcbiAgICBcIsW7ZXJrw7N3XCIsXG4gICAgXCLFu21pZ3LDs2RcIixcbiAgICBcIsW7bmluXCIsXG4gICAgXCLFu29yeVwiLFxuICAgIFwixbt1a293b1wiLFxuICAgIFwixbt1cm9taW5cIixcbiAgICBcIsW7eWNobGluXCIsXG4gICAgXCLFu3lyYXJkw7N3XCIsXG4gICAgXCLFu3l3aWVjXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9uYW1lfVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXRfcHJlZml4fSAje05hbWUubGFzdF9uYW1lfVwiXG4gIF0sXG4gIFwic3RyZWV0X2FkZHJlc3NcIjogW1xuICAgIFwiI3tzdHJlZXRfbmFtZX0gI3tidWlsZGluZ19udW1iZXJ9XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiUG9sc2thXCJcbiAgXVxufTtcbnBsLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkluY1wiLFxuICAgIFwiYW5kIFNvbnNcIixcbiAgICBcIkxMQ1wiLFxuICAgIFwiR3JvdXBcIlxuICBdLFxuICBcImFkamV0aXZlXCI6IFtcbiAgICAgIFwiQWRhcHRpdmVcIixcbiAgICAgIFwiQWR2YW5jZWRcIixcbiAgICAgIFwiQW1lbGlvcmF0ZWRcIixcbiAgICAgIFwiQXNzaW1pbGF0ZWRcIixcbiAgICAgIFwiQXV0b21hdGVkXCIsXG4gICAgICBcIkJhbGFuY2VkXCIsXG4gICAgICBcIkJ1c2luZXNzLWZvY3VzZWRcIixcbiAgICAgIFwiQ2VudHJhbGl6ZWRcIixcbiAgICAgIFwiQ2xvbmVkXCIsXG4gICAgICBcIkNvbXBhdGlibGVcIixcbiAgICAgIFwiQ29uZmlndXJhYmxlXCIsXG4gICAgICBcIkNyb3NzLWdyb3VwXCIsXG4gICAgICBcIkNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcIkN1c3RvbWVyLWZvY3VzZWRcIixcbiAgICAgIFwiQ3VzdG9taXphYmxlXCIsXG4gICAgICBcIkRlY2VudHJhbGl6ZWRcIixcbiAgICAgIFwiRGUtZW5naW5lZXJlZFwiLFxuICAgICAgXCJEZXZvbHZlZFwiLFxuICAgICAgXCJEaWdpdGl6ZWRcIixcbiAgICAgIFwiRGlzdHJpYnV0ZWRcIixcbiAgICAgIFwiRGl2ZXJzZVwiLFxuICAgICAgXCJEb3duLXNpemVkXCIsXG4gICAgICBcIkVuaGFuY2VkXCIsXG4gICAgICBcIkVudGVycHJpc2Utd2lkZVwiLFxuICAgICAgXCJFcmdvbm9taWNcIixcbiAgICAgIFwiRXhjbHVzaXZlXCIsXG4gICAgICBcIkV4cGFuZGVkXCIsXG4gICAgICBcIkV4dGVuZGVkXCIsXG4gICAgICBcIkZhY2UgdG8gZmFjZVwiLFxuICAgICAgXCJGb2N1c2VkXCIsXG4gICAgICBcIkZyb250LWxpbmVcIixcbiAgICAgIFwiRnVsbHktY29uZmlndXJhYmxlXCIsXG4gICAgICBcIkZ1bmN0aW9uLWJhc2VkXCIsXG4gICAgICBcIkZ1bmRhbWVudGFsXCIsXG4gICAgICBcIkZ1dHVyZS1wcm9vZmVkXCIsXG4gICAgICBcIkdyYXNzLXJvb3RzXCIsXG4gICAgICBcIkhvcml6b250YWxcIixcbiAgICAgIFwiSW1wbGVtZW50ZWRcIixcbiAgICAgIFwiSW5ub3ZhdGl2ZVwiLFxuICAgICAgXCJJbnRlZ3JhdGVkXCIsXG4gICAgICBcIkludHVpdGl2ZVwiLFxuICAgICAgXCJJbnZlcnNlXCIsXG4gICAgICBcIk1hbmFnZWRcIixcbiAgICAgIFwiTWFuZGF0b3J5XCIsXG4gICAgICBcIk1vbml0b3JlZFwiLFxuICAgICAgXCJNdWx0aS1jaGFubmVsbGVkXCIsXG4gICAgICBcIk11bHRpLWxhdGVyYWxcIixcbiAgICAgIFwiTXVsdGktbGF5ZXJlZFwiLFxuICAgICAgXCJNdWx0aS10aWVyZWRcIixcbiAgICAgIFwiTmV0d29ya2VkXCIsXG4gICAgICBcIk9iamVjdC1iYXNlZFwiLFxuICAgICAgXCJPcGVuLWFyY2hpdGVjdGVkXCIsXG4gICAgICBcIk9wZW4tc291cmNlXCIsXG4gICAgICBcIk9wZXJhdGl2ZVwiLFxuICAgICAgXCJPcHRpbWl6ZWRcIixcbiAgICAgIFwiT3B0aW9uYWxcIixcbiAgICAgIFwiT3JnYW5pY1wiLFxuICAgICAgXCJPcmdhbml6ZWRcIixcbiAgICAgIFwiUGVyc2V2ZXJpbmdcIixcbiAgICAgIFwiUGVyc2lzdGVudFwiLFxuICAgICAgXCJQaGFzZWRcIixcbiAgICAgIFwiUG9sYXJpc2VkXCIsXG4gICAgICBcIlByZS1lbXB0aXZlXCIsXG4gICAgICBcIlByb2FjdGl2ZVwiLFxuICAgICAgXCJQcm9maXQtZm9jdXNlZFwiLFxuICAgICAgXCJQcm9mb3VuZFwiLFxuICAgICAgXCJQcm9ncmFtbWFibGVcIixcbiAgICAgIFwiUHJvZ3Jlc3NpdmVcIixcbiAgICAgIFwiUHVibGljLWtleVwiLFxuICAgICAgXCJRdWFsaXR5LWZvY3VzZWRcIixcbiAgICAgIFwiUmVhY3RpdmVcIixcbiAgICAgIFwiUmVhbGlnbmVkXCIsXG4gICAgICBcIlJlLWNvbnRleHR1YWxpemVkXCIsXG4gICAgICBcIlJlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiUmVkdWNlZFwiLFxuICAgICAgXCJSZXZlcnNlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiUmlnaHQtc2l6ZWRcIixcbiAgICAgIFwiUm9idXN0XCIsXG4gICAgICBcIlNlYW1sZXNzXCIsXG4gICAgICBcIlNlY3VyZWRcIixcbiAgICAgIFwiU2VsZi1lbmFibGluZ1wiLFxuICAgICAgXCJTaGFyYWJsZVwiLFxuICAgICAgXCJTdGFuZC1hbG9uZVwiLFxuICAgICAgXCJTdHJlYW1saW5lZFwiLFxuICAgICAgXCJTd2l0Y2hhYmxlXCIsXG4gICAgICBcIlN5bmNocm9uaXNlZFwiLFxuICAgICAgXCJTeW5lcmdpc3RpY1wiLFxuICAgICAgXCJTeW5lcmdpemVkXCIsXG4gICAgICBcIlRlYW0tb3JpZW50ZWRcIixcbiAgICAgIFwiVG90YWxcIixcbiAgICAgIFwiVHJpcGxlLWJ1ZmZlcmVkXCIsXG4gICAgICBcIlVuaXZlcnNhbFwiLFxuICAgICAgXCJVcC1zaXplZFwiLFxuICAgICAgXCJVcGdyYWRhYmxlXCIsXG4gICAgICBcIlVzZXItY2VudHJpY1wiLFxuICAgICAgXCJVc2VyLWZyaWVuZGx5XCIsXG4gICAgICBcIlZlcnNhdGlsZVwiLFxuICAgICAgXCJWaXJ0dWFsXCIsXG4gICAgICBcIlZpc2lvbmFyeVwiLFxuICAgICAgXCJWaXNpb24tb3JpZW50ZWRcIlxuICAgIF0sXG4gICAgXCJkZXNjcmlwdG9yXCI6W1xuICAgICAgXCIyNCBob3VyXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiM3JkIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNHRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNXRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiNnRoIGdlbmVyYXRpb25cIixcbiAgICAgIFwiYWN0dWF0aW5nXCIsXG4gICAgICBcImFuYWx5emluZ1wiLFxuICAgICAgXCJhc3ltbWV0cmljXCIsXG4gICAgICBcImFzeW5jaHJvbm91c1wiLFxuICAgICAgXCJhdHRpdHVkZS1vcmllbnRlZFwiLFxuICAgICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgICBcImJhbmR3aWR0aC1tb25pdG9yZWRcIixcbiAgICAgIFwiYmktZGlyZWN0aW9uYWxcIixcbiAgICAgIFwiYmlmdXJjYXRlZFwiLFxuICAgICAgXCJib3R0b20tbGluZVwiLFxuICAgICAgXCJjbGVhci10aGlua2luZ1wiLFxuICAgICAgXCJjbGllbnQtZHJpdmVuXCIsXG4gICAgICBcImNsaWVudC1zZXJ2ZXJcIixcbiAgICAgIFwiY29oZXJlbnRcIixcbiAgICAgIFwiY29oZXNpdmVcIixcbiAgICAgIFwiY29tcG9zaXRlXCIsXG4gICAgICBcImNvbnRleHQtc2Vuc2l0aXZlXCIsXG4gICAgICBcImNvbnRleHR1YWxseS1iYXNlZFwiLFxuICAgICAgXCJjb250ZW50LWJhc2VkXCIsXG4gICAgICBcImRlZGljYXRlZFwiLFxuICAgICAgXCJkZW1hbmQtZHJpdmVuXCIsXG4gICAgICBcImRpZGFjdGljXCIsXG4gICAgICBcImRpcmVjdGlvbmFsXCIsXG4gICAgICBcImRpc2NyZXRlXCIsXG4gICAgICBcImRpc2ludGVybWVkaWF0ZVwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcImVjby1jZW50cmljXCIsXG4gICAgICBcImVtcG93ZXJpbmdcIixcbiAgICAgIFwiZW5jb21wYXNzaW5nXCIsXG4gICAgICBcImV2ZW4ta2VlbGVkXCIsXG4gICAgICBcImV4ZWN1dGl2ZVwiLFxuICAgICAgXCJleHBsaWNpdFwiLFxuICAgICAgXCJleHVkaW5nXCIsXG4gICAgICBcImZhdWx0LXRvbGVyYW50XCIsXG4gICAgICBcImZvcmVncm91bmRcIixcbiAgICAgIFwiZnJlc2gtdGhpbmtpbmdcIixcbiAgICAgIFwiZnVsbC1yYW5nZVwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiZ3JpZC1lbmFibGVkXCIsXG4gICAgICBcImhldXJpc3RpY1wiLFxuICAgICAgXCJoaWdoLWxldmVsXCIsXG4gICAgICBcImhvbGlzdGljXCIsXG4gICAgICBcImhvbW9nZW5lb3VzXCIsXG4gICAgICBcImh1bWFuLXJlc291cmNlXCIsXG4gICAgICBcImh5YnJpZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwiaW5jcmVtZW50YWxcIixcbiAgICAgIFwiaW50YW5naWJsZVwiLFxuICAgICAgXCJpbnRlcmFjdGl2ZVwiLFxuICAgICAgXCJpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwibGVhZGluZyBlZGdlXCIsXG4gICAgICBcImxvY2FsXCIsXG4gICAgICBcImxvZ2lzdGljYWxcIixcbiAgICAgIFwibWF4aW1pemVkXCIsXG4gICAgICBcIm1ldGhvZGljYWxcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJtb2JpbGVcIixcbiAgICAgIFwibW9kdWxhclwiLFxuICAgICAgXCJtb3RpdmF0aW5nXCIsXG4gICAgICBcIm11bHRpbWVkaWFcIixcbiAgICAgIFwibXVsdGktc3RhdGVcIixcbiAgICAgIFwibXVsdGktdGFza2luZ1wiLFxuICAgICAgXCJuYXRpb25hbFwiLFxuICAgICAgXCJuZWVkcy1iYXNlZFwiLFxuICAgICAgXCJuZXV0cmFsXCIsXG4gICAgICBcIm5leHQgZ2VuZXJhdGlvblwiLFxuICAgICAgXCJub24tdm9sYXRpbGVcIixcbiAgICAgIFwib2JqZWN0LW9yaWVudGVkXCIsXG4gICAgICBcIm9wdGltYWxcIixcbiAgICAgIFwib3B0aW1pemluZ1wiLFxuICAgICAgXCJyYWRpY2FsXCIsXG4gICAgICBcInJlYWwtdGltZVwiLFxuICAgICAgXCJyZWNpcHJvY2FsXCIsXG4gICAgICBcInJlZ2lvbmFsXCIsXG4gICAgICBcInJlc3BvbnNpdmVcIixcbiAgICAgIFwic2NhbGFibGVcIixcbiAgICAgIFwic2Vjb25kYXJ5XCIsXG4gICAgICBcInNvbHV0aW9uLW9yaWVudGVkXCIsXG4gICAgICBcInN0YWJsZVwiLFxuICAgICAgXCJzdGF0aWNcIixcbiAgICAgIFwic3lzdGVtYXRpY1wiLFxuICAgICAgXCJzeXN0ZW1pY1wiLFxuICAgICAgXCJzeXN0ZW0td29ydGh5XCIsXG4gICAgICBcInRhbmdpYmxlXCIsXG4gICAgICBcInRlcnRpYXJ5XCIsXG4gICAgICBcInRyYW5zaXRpb25hbFwiLFxuICAgICAgXCJ1bmlmb3JtXCIsXG4gICAgICBcInVwd2FyZC10cmVuZGluZ1wiLFxuICAgICAgXCJ1c2VyLWZhY2luZ1wiLFxuICAgICAgXCJ2YWx1ZS1hZGRlZFwiLFxuICAgICAgXCJ3ZWItZW5hYmxlZFwiLFxuICAgICAgXCJ3ZWxsLW1vZHVsYXRlZFwiLFxuICAgICAgXCJ6ZXJvIGFkbWluaXN0cmF0aW9uXCIsXG4gICAgICBcInplcm8gZGVmZWN0XCIsXG4gICAgICBcInplcm8gdG9sZXJhbmNlXCJcbiAgICBdLFxuICAgIFwibm91blwiOiBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiY2xpY2tzLWFuZC1tb3J0YXJcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwidmVydGljYWxcIixcbiAgICAgIFwicHJvYWN0aXZlXCIsXG4gICAgICBcInJvYnVzdFwiLFxuICAgICAgXCJyZXZvbHV0aW9uYXJ5XCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcImxlYWRpbmctZWRnZVwiLFxuICAgICAgXCJpbm5vdmF0aXZlXCIsXG4gICAgICBcImludHVpdGl2ZVwiLFxuICAgICAgXCJzdHJhdGVnaWNcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJtaXNzaW9uLWNyaXRpY2FsXCIsXG4gICAgICBcInN0aWNreVwiLFxuICAgICAgXCJvbmUtdG8tb25lXCIsXG4gICAgICBcIjI0LzdcIixcbiAgICAgIFwiZW5kLXRvLWVuZFwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiQjJCXCIsXG4gICAgICBcIkIyQ1wiLFxuICAgICAgXCJncmFudWxhclwiLFxuICAgICAgXCJmcmljdGlvbmxlc3NcIixcbiAgICAgIFwidmlydHVhbFwiLFxuICAgICAgXCJ2aXJhbFwiLFxuICAgICAgXCJkeW5hbWljXCIsXG4gICAgICBcIjI0LzM2NVwiLFxuICAgICAgXCJiZXN0LW9mLWJyZWVkXCIsXG4gICAgICBcImtpbGxlclwiLFxuICAgICAgXCJtYWduZXRpY1wiLFxuICAgICAgXCJibGVlZGluZy1lZGdlXCIsXG4gICAgICBcIndlYi1lbmFibGVkXCIsXG4gICAgICBcImludGVyYWN0aXZlXCIsXG4gICAgICBcImRvdC1jb21cIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJiYWNrLWVuZFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwiZWZmaWNpZW50XCIsXG4gICAgICBcImZyb250LWVuZFwiLFxuICAgICAgXCJkaXN0cmlidXRlZFwiLFxuICAgICAgXCJzZWFtbGVzc1wiLFxuICAgICAgXCJleHRlbnNpYmxlXCIsXG4gICAgICBcInR1cm4ta2V5XCIsXG4gICAgICBcIndvcmxkLWNsYXNzXCIsXG4gICAgICBcIm9wZW4tc291cmNlXCIsXG4gICAgICBcImNyb3NzLXBsYXRmb3JtXCIsXG4gICAgICBcImNyb3NzLW1lZGlhXCIsXG4gICAgICBcInN5bmVyZ2lzdGljXCIsXG4gICAgICBcImJyaWNrcy1hbmQtY2xpY2tzXCIsXG4gICAgICBcIm91dC1vZi10aGUtYm94XCIsXG4gICAgICBcImVudGVycHJpc2VcIixcbiAgICAgIFwiaW50ZWdyYXRlZFwiLFxuICAgICAgXCJpbXBhY3RmdWxcIixcbiAgICAgIFwid2lyZWxlc3NcIixcbiAgICAgIFwidHJhbnNwYXJlbnRcIixcbiAgICAgIFwibmV4dC1nZW5lcmF0aW9uXCIsXG4gICAgICBcImN1dHRpbmctZWRnZVwiLFxuICAgICAgXCJ1c2VyLWNlbnRyaWNcIixcbiAgICAgIFwidmlzaW9uYXJ5XCIsXG4gICAgICBcImN1c3RvbWl6ZWRcIixcbiAgICAgIFwidWJpcXVpdG91c1wiLFxuICAgICAgXCJwbHVnLWFuZC1wbGF5XCIsXG4gICAgICBcImNvbGxhYm9yYXRpdmVcIixcbiAgICAgIFwiY29tcGVsbGluZ1wiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJyaWNoXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcInN5bmVyZ2llc1wiLFxuICAgICAgXCJ3ZWItcmVhZGluZXNzXCIsXG4gICAgICBcInBhcmFkaWdtc1wiLFxuICAgICAgXCJtYXJrZXRzXCIsXG4gICAgICBcInBhcnRuZXJzaGlwc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZXNcIixcbiAgICAgIFwicGxhdGZvcm1zXCIsXG4gICAgICBcImluaXRpYXRpdmVzXCIsXG4gICAgICBcImNoYW5uZWxzXCIsXG4gICAgICBcImV5ZWJhbGxzXCIsXG4gICAgICBcImNvbW11bml0aWVzXCIsXG4gICAgICBcIlJPSVwiLFxuICAgICAgXCJzb2x1dGlvbnNcIixcbiAgICAgIFwiZS10YWlsZXJzXCIsXG4gICAgICBcImUtc2VydmljZXNcIixcbiAgICAgIFwiYWN0aW9uLWl0ZW1zXCIsXG4gICAgICBcInBvcnRhbHNcIixcbiAgICAgIFwibmljaGVzXCIsXG4gICAgICBcInRlY2hub2xvZ2llc1wiLFxuICAgICAgXCJjb250ZW50XCIsXG4gICAgICBcInZvcnRhbHNcIixcbiAgICAgIFwic3VwcGx5LWNoYWluc1wiLFxuICAgICAgXCJjb252ZXJnZW5jZVwiLFxuICAgICAgXCJyZWxhdGlvbnNoaXBzXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZXNcIixcbiAgICAgIFwiaW50ZXJmYWNlc1wiLFxuICAgICAgXCJlLW1hcmtldHNcIixcbiAgICAgIFwiZS1jb21tZXJjZVwiLFxuICAgICAgXCJzeXN0ZW1zXCIsXG4gICAgICBcImJhbmR3aWR0aFwiLFxuICAgICAgXCJpbmZvbWVkaWFyaWVzXCIsXG4gICAgICBcIm1vZGVsc1wiLFxuICAgICAgXCJtaW5kc2hhcmVcIixcbiAgICAgIFwiZGVsaXZlcmFibGVzXCIsXG4gICAgICBcInVzZXJzXCIsXG4gICAgICBcInNjaGVtYXNcIixcbiAgICAgIFwibmV0d29ya3NcIixcbiAgICAgIFwiYXBwbGljYXRpb25zXCIsXG4gICAgICBcIm1ldHJpY3NcIixcbiAgICAgIFwiZS1idXNpbmVzc1wiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiZXhwZXJpZW5jZXNcIixcbiAgICAgIFwid2ViIHNlcnZpY2VzXCIsXG4gICAgICBcIm1ldGhvZG9sb2dpZXNcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfS0je05hbWUubGFzdF9uYW1lfVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0sICN7TmFtZS5sYXN0X25hbWV9IGFuZCAje05hbWUubGFzdF9uYW1lfVwiXG4gIF1cbn07XG5wbC5pbnRlcm5ldCA9IHtcbiAgXCJmcmVlX2VtYWlsXCI6IFtcbiAgICBcImdtYWlsLmNvbVwiLFxuICAgIFwieWFob28uY29tXCIsXG4gICAgXCJob3RtYWlsLmNvbVwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJjb21cIixcbiAgICBcInBsXCIsXG4gICAgXCJjb20ucGxcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnBsLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xucGwucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMTItIyMjLSMjLSMjXCIsXG4gICAgXCIxMy0jIyMtIyMtIyNcIixcbiAgICBcIjE0LSMjIy0jIy0jI1wiLFxuICAgIFwiMTUtIyMjLSMjLSMjXCIsXG4gICAgXCIxNi0jIyMtIyMtIyNcIixcbiAgICBcIjE3LSMjIy0jIy0jI1wiLFxuICAgIFwiMTgtIyMjLSMjLSMjXCIsXG4gICAgXCIyMi0jIyMtIyMtIyNcIixcbiAgICBcIjIzLSMjIy0jIy0jI1wiLFxuICAgIFwiMjQtIyMjLSMjLSMjXCIsXG4gICAgXCIyNS0jIyMtIyMtIyNcIixcbiAgICBcIjI5LSMjIy0jIy0jI1wiLFxuICAgIFwiMzItIyMjLSMjLSMjXCIsXG4gICAgXCIzMy0jIyMtIyMtIyNcIixcbiAgICBcIjM0LSMjIy0jIy0jI1wiLFxuICAgIFwiNDEtIyMjLSMjLSMjXCIsXG4gICAgXCI0Mi0jIyMtIyMtIyNcIixcbiAgICBcIjQzLSMjIy0jIy0jI1wiLFxuICAgIFwiNDQtIyMjLSMjLSMjXCIsXG4gICAgXCI0Ni0jIyMtIyMtIyNcIixcbiAgICBcIjQ4LSMjIy0jIy0jI1wiLFxuICAgIFwiNTItIyMjLSMjLSMjXCIsXG4gICAgXCI1NC0jIyMtIyMtIyNcIixcbiAgICBcIjU1LSMjIy0jIy0jI1wiLFxuICAgIFwiNTYtIyMjLSMjLSMjXCIsXG4gICAgXCI1OC0jIyMtIyMtIyNcIixcbiAgICBcIjU5LSMjIy0jIy0jI1wiLFxuICAgIFwiNjEtIyMjLSMjLSMjXCIsXG4gICAgXCI2Mi0jIyMtIyMtIyNcIixcbiAgICBcIjYzLSMjIy0jIy0jI1wiLFxuICAgIFwiNjUtIyMjLSMjLSMjXCIsXG4gICAgXCI2Ny0jIyMtIyMtIyNcIixcbiAgICBcIjY4LSMjIy0jIy0jI1wiLFxuICAgIFwiNzEtIyMjLSMjLSMjXCIsXG4gICAgXCI3NC0jIyMtIyMtIyNcIixcbiAgICBcIjc1LSMjIy0jIy0jI1wiLFxuICAgIFwiNzYtIyMjLSMjLSMjXCIsXG4gICAgXCI3Ny0jIyMtIyMtIyNcIixcbiAgICBcIjgxLSMjIy0jIy0jI1wiLFxuICAgIFwiODItIyMjLSMjLSMjXCIsXG4gICAgXCI4My0jIyMtIyMtIyNcIixcbiAgICBcIjg0LSMjIy0jIy0jI1wiLFxuICAgIFwiODUtIyMjLSMjLSMjXCIsXG4gICAgXCI4Ni0jIyMtIyMtIyNcIixcbiAgICBcIjg3LSMjIy0jIy0jI1wiLFxuICAgIFwiODktIyMjLSMjLSMjXCIsXG4gICAgXCI5MS0jIyMtIyMtIyNcIixcbiAgICBcIjk0LSMjIy0jIy0jI1wiLFxuICAgIFwiOTUtIyMjLSMjLSMjXCJcbiAgXVxufTtcbnBsLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCI1MC0jIyMtIyMtIyNcIixcbiAgICBcIjUxLSMjIy0jIy0jI1wiLFxuICAgIFwiNTMtIyMjLSMjLSMjXCIsXG4gICAgXCI1Ny0jIyMtIyMtIyNcIixcbiAgICBcIjYwLSMjIy0jIy0jI1wiLFxuICAgIFwiNjYtIyMjLSMjLSMjXCIsXG4gICAgXCI2OS0jIyMtIyMtIyNcIixcbiAgICBcIjcyLSMjIy0jIy0jI1wiLFxuICAgIFwiNzMtIyMjLSMjLSMjXCIsXG4gICAgXCI3OC0jIyMtIyMtIyNcIixcbiAgICBcIjc5LSMjIy0jIy0jI1wiLFxuICAgIFwiODgtIyMjLSMjLSMjXCJcbiAgXVxufTtcbiIsInZhciBwdF9CUiA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHB0X0JSO1xucHRfQlIudGl0bGUgPSBcIlBvcnR1Z3Vlc2UgKEJyYXppbClcIjtcbnB0X0JSLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwiTm92YVwiLFxuICAgIFwiVmVsaGFcIixcbiAgICBcIkdyYW5kZVwiLFxuICAgIFwiVmlsYVwiLFxuICAgIFwiTXVuaWPDrXBpbyBkZVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwiZG8gRGVzY29iZXJ0b1wiLFxuICAgIFwiZGUgTm9zc2EgU2VuaG9yYVwiLFxuICAgIFwiZG8gTm9ydGVcIixcbiAgICBcImRvIFN1bFwiXG4gIF0sXG4gIFwiY291bnRyeVwiOiBbXG4gICAgXCJBZmVnYW5pc3TDo29cIixcbiAgICBcIkFsYsOibmlhXCIsXG4gICAgXCJBbGfDqXJpYVwiLFxuICAgIFwiU2Ftb2FcIixcbiAgICBcIkFuZG9ycmFcIixcbiAgICBcIkFuZ29sYVwiLFxuICAgIFwiQW5ndWlsbGFcIixcbiAgICBcIkFudGlndWEgYW5kIEJhcmJhZGFcIixcbiAgICBcIkFyZ2VudGluYVwiLFxuICAgIFwiQXJtw6puaWFcIixcbiAgICBcIkFydWJhXCIsXG4gICAgXCJBdXN0csOhbGlhXCIsXG4gICAgXCLDgXVzdHJpYVwiLFxuICAgIFwiQWx6ZXJiYWrDo29cIixcbiAgICBcIkJhaGFtYXNcIixcbiAgICBcIkJhcsOpbVwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiQmFyYmFkb1wiLFxuICAgIFwiQmVsZ3JhZG9cIixcbiAgICBcIkLDqWxnaWNhXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZXJtdWRhXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkJvbMOtdmlhXCIsXG4gICAgXCJCw7RzbmlhXCIsXG4gICAgXCJCb3R1YXN1bmFcIixcbiAgICBcIkJvdXZldG9pYVwiLFxuICAgIFwiQnJhc2lsXCIsXG4gICAgXCJBcnF1aXDDqWxhZ28gZGUgQ2hhZ29zXCIsXG4gICAgXCJJbGhhcyBWaXJnZW5zXCIsXG4gICAgXCJCcnVuZWlcIixcbiAgICBcIkJ1bGfDoXJpYVwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJCdXJ1bmRpXCIsXG4gICAgXCJDYW1iw7NqaWFcIixcbiAgICBcIkNhbWFyw7Vlc1wiLFxuICAgIFwiQ2FuYWTDoVwiLFxuICAgIFwiQ2FibyBWZXJkZVwiLFxuICAgIFwiSWxoYXMgQ2FpbWFuXCIsXG4gICAgXCJSZXDDumJsaWNhIGRhIMOBZnJpY2EgQ2VudHJhbFwiLFxuICAgIFwiQ2hhZFwiLFxuICAgIFwiQ2hpbGVcIixcbiAgICBcIkNoaW5hXCIsXG4gICAgXCJJbGhhcyBOYXRhbFwiLFxuICAgIFwiSWxoYXMgQ29jb3NcIixcbiAgICBcIkNvbMO0bWJpYVwiLFxuICAgIFwiQ29tb3Jvc1wiLFxuICAgIFwiQ29uZ29cIixcbiAgICBcIklsaGFzIENvb2tcIixcbiAgICBcIkNvc3RhIFJpY2FcIixcbiAgICBcIkNvc3RhIGRvIE1hcmZpbVwiLFxuICAgIFwiQ3Jvw6FjaWFcIixcbiAgICBcIkN1YmFcIixcbiAgICBcIkN5cHJ1c1wiLFxuICAgIFwiUmVww7pibGljYSBUY2hlY2FcIixcbiAgICBcIkRpbmFtYXJjYVwiLFxuICAgIFwiRGppYm91dGlcIixcbiAgICBcIkRvbWluaWNhXCIsXG4gICAgXCJSZXDDumJsaWNhIERvbWluaWNhbmFcIixcbiAgICBcIkVxdWFkb3JcIixcbiAgICBcIkVnaXRvXCIsXG4gICAgXCJFbCBTYWx2YWRvclwiLFxuICAgIFwiR3VpbsOpIEVxdWF0b3JpYWxcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVzdMO0bmlhXCIsXG4gICAgXCJFdGnDs3BpYVwiLFxuICAgIFwiSWxoYXMgRmFyb2VcIixcbiAgICBcIk1hbHZpbmFzXCIsXG4gICAgXCJGaWppXCIsXG4gICAgXCJGaW5sw6JuZGlhXCIsXG4gICAgXCJGcmFuw6dhXCIsXG4gICAgXCJHdWluw6kgRnJhbmNlc2FcIixcbiAgICBcIlBvbGluw6lzaWEgRnJhbmNlc2FcIixcbiAgICBcIkdhYsOjb1wiLFxuICAgIFwiR8OibWJpYVwiLFxuICAgIFwiR2VvcmdpYVwiLFxuICAgIFwiQWxlbWFuaGFcIixcbiAgICBcIkdhbmFcIixcbiAgICBcIkdpYnJhbHRhclwiLFxuICAgIFwiR3LDqWNpYVwiLFxuICAgIFwiR3JvZWzDom5kaWFcIixcbiAgICBcIkdyYW5hZGFcIixcbiAgICBcIkd1YWRhbHVwZVwiLFxuICAgIFwiR3Vhbm9cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3Vlcm5zZXlcIixcbiAgICBcIkd1aW7DqVwiLFxuICAgIFwiR3VpbsOpLUJpc3NhdVwiLFxuICAgIFwiR3VpYW5hXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzXCIsXG4gICAgXCJWYXRpY2Fub1wiLFxuICAgIFwiSG9uZHVyYXNcIixcbiAgICBcIkhvbmcgS29uZ1wiLFxuICAgIFwiSHVuZ3JpYVwiLFxuICAgIFwiSWNlbGFuZFwiLFxuICAgIFwiw41uZGlhXCIsXG4gICAgXCJJbmRvbsOpc2lhXCIsXG4gICAgXCJJcsOjXCIsXG4gICAgXCJJcmFxdWVcIixcbiAgICBcIklybGFuZGFcIixcbiAgICBcIklsaGEgZGUgTWFuXCIsXG4gICAgXCJJc3JhZWxcIixcbiAgICBcIkl0w6FsaWFcIixcbiAgICBcIkphbWFpY2FcIixcbiAgICBcIkphcMOjb1wiLFxuICAgIFwiSmVyc2V5XCIsXG4gICAgXCJKb3Jkw6JuaWFcIixcbiAgICBcIkNhemFxdWlzdMOjb1wiLFxuICAgIFwiUXXDqm5pYVwiLFxuICAgIFwiS2lyaWJhdGlcIixcbiAgICBcIkNvcmVpYSBkbyBOb3J0ZVwiLFxuICAgIFwiQ29yZWlhIGRvIFN1bFwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJLeXJneXogUmVwdWJsaWNcIixcbiAgICBcIlJlcMO6YmxpY2EgRGVtb2Nyw6F0aWNhIGRlIExhbyBQZW9wbGVcIixcbiAgICBcIkxhdHZpYVwiLFxuICAgIFwiTMOtYmFub1wiLFxuICAgIFwiTGVzb3Rob1wiLFxuICAgIFwiTGliw6lyaWFcIixcbiAgICBcIkxpYnlhbiBBcmFiIEphbWFoaXJpeWFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIkxpdHXDom5pYVwiLFxuICAgIFwiTHV4ZW1idXJnb1wiLFxuICAgIFwiTWFjYW9cIixcbiAgICBcIk1hY2Vkw7RuaWFcIixcbiAgICBcIk1hZGFnYXNjYXJcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiTWFsw6FzaWFcIixcbiAgICBcIk1hbGRpdmVzXCIsXG4gICAgXCJNYWxpXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiSWxoYXMgTWFyc2hhbGxcIixcbiAgICBcIk1hcnRpbmljYVwiLFxuICAgIFwiTWF1cml0w6JuaWFcIixcbiAgICBcIk1hdXJpdGl1c1wiLFxuICAgIFwiTWF5b3R0ZVwiLFxuICAgIFwiTcOpeGljb1wiLFxuICAgIFwiTWljcm9uw6lzaWFcIixcbiAgICBcIk1vbGRvdmFcIixcbiAgICBcIk3DtG5hY29cIixcbiAgICBcIk1vbmfDs2xpYVwiLFxuICAgIFwiTW9udGVuZWdyb1wiLFxuICAgIFwiTW9udHNlcnJhdFwiLFxuICAgIFwiTWFycm9jb3NcIixcbiAgICBcIk1vw6dhbWJpcXVlXCIsXG4gICAgXCJNeWFubWFyXCIsXG4gICAgXCJOYW1pYmlhXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmVwYWxcIixcbiAgICBcIkFudGlsaGFzIEhvbGFuZGVzYXNcIixcbiAgICBcIkhvbGFuZGFcIixcbiAgICBcIk5vdmEgQ2FsZWRvbmlhXCIsXG4gICAgXCJOb3ZhIFplbMOibmRpYVwiLFxuICAgIFwiTmljYXLDoWd1YVwiLFxuICAgIFwiTmlnw6lyaWFcIixcbiAgICBcIk5pdWVcIixcbiAgICBcIklsaGEgTm9yZm9sa1wiLFxuICAgIFwiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzXCIsXG4gICAgXCJOb3J1ZWdhXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJQYXF1aXN0w6NvXCIsXG4gICAgXCJQYWxhdVwiLFxuICAgIFwiVGVycml0w7NyaW8gZGEgUGFsZXN0aW5hXCIsXG4gICAgXCJQYW5hbcOhXCIsXG4gICAgXCJOb3ZhIEd1aW7DqSBQYXB1YVwiLFxuICAgIFwiUGFyYWd1YWlcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIkZpbGlwaW5hc1wiLFxuICAgIFwiUG9sw7RuaWFcIixcbiAgICBcIlBvcnR1Z2FsXCIsXG4gICAgXCJQdWVydG8gUmljb1wiLFxuICAgIFwiUWF0YXJcIixcbiAgICBcIlJvbcOqbmlhXCIsXG4gICAgXCJSw7pzc2lhXCIsXG4gICAgXCJSdWFuZGFcIixcbiAgICBcIlPDo28gQmFydG9sb21ldVwiLFxuICAgIFwiU2FudGEgSGVsZW5hXCIsXG4gICAgXCJTYW50YSBMw7pjaWFcIixcbiAgICBcIlNhaW50IE1hcnRpblwiLFxuICAgIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgIFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJTYW4gTWFyaW5vXCIsXG4gICAgXCJTYW8gVG9tw6kgZSBQcsOtbmNpcGVcIixcbiAgICBcIkFyw6FiaWEgU2F1ZGl0YVwiLFxuICAgIFwiU2VuZWdhbFwiLFxuICAgIFwiU8OpcnZpYVwiLFxuICAgIFwiU2V5Y2hlbGxlc1wiLFxuICAgIFwiU2VycmEgTGVvYVwiLFxuICAgIFwiU2luZ2FwdXJhXCIsXG4gICAgXCJFc2xvdsOhcXVpYVwiLFxuICAgIFwiRXNsb3bDqm5pYVwiLFxuICAgIFwiSWxoYXMgU2Fsb23Do29cIixcbiAgICBcIlNvbcOhbGlhXCIsXG4gICAgXCLDgWZyaWNhIGRvIFN1bFwiLFxuICAgIFwiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHNcIixcbiAgICBcIlNwYW5oYVwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJTdWTDo29cIixcbiAgICBcIlN1cmluYW1lXCIsXG4gICAgXCJTdmFsYmFyZCAmIEphbiBNYXllbiBJc2xhbmRzXCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlN1w6ljaWFcIixcbiAgICBcIlN1w63Dp2FcIixcbiAgICBcIlPDrXJpYVwiLFxuICAgIFwiVGFpd2FuXCIsXG4gICAgXCJUYWppcXVpc3TDo29cIixcbiAgICBcIlRhbnrDom5pYVwiLFxuICAgIFwiVGFpbMOibmRpYVwiLFxuICAgIFwiVGltb3ItTGVzdGVcIixcbiAgICBcIlRvZ29cIixcbiAgICBcIlRva2VsYXVcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUcmluaWTDoSBlIFRvYmFnb1wiLFxuICAgIFwiVHVuw61zaWFcIixcbiAgICBcIlR1cnF1aWFcIixcbiAgICBcIlR1cmNvbWVuaXN0w6NvXCIsXG4gICAgXCJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHNcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVY3LDom5pYVwiLFxuICAgIFwiRW1pcmFkb3Mgw4FyYWJlcyBVbmlkb3NcIixcbiAgICBcIlJlaW5vIFVuaWRvXCIsXG4gICAgXCJFc3RhZG9zIFVuaWRvcyBkYSBBbcOpcmljYVwiLFxuICAgIFwiRXN0YWRvcyBVbmlkb3MgZGFzIElsaGFzIFZpcmdlbnNcIixcbiAgICBcIlVydWd1YWlcIixcbiAgICBcIlV6YmVxdWlzdMOjb1wiLFxuICAgIFwiVmFudWF0dVwiLFxuICAgIFwiVmVuZXp1ZWxhXCIsXG4gICAgXCJWaWV0bsOjXCIsXG4gICAgXCJXYWxsaXMgYW5kIEZ1dHVuYVwiLFxuICAgIFwiU2FoYXJhXCIsXG4gICAgXCJZZW1lblwiLFxuICAgIFwiWsOibWJpYVwiLFxuICAgIFwiWmltYsOhYnVlXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiXG4gIF0sXG4gIFwic3RyZWV0X3N1ZmZpeFwiOiBbXG4gICAgXCJSdWFcIixcbiAgICBcIkF2ZW5pZGFcIixcbiAgICBcIlRyYXZlc3NhXCIsXG4gICAgXCJQb250ZVwiLFxuICAgIFwiQWxhbWVkYVwiLFxuICAgIFwiTWFyZ2luYWxcIixcbiAgICBcIlZpZWxhXCIsXG4gICAgXCJSb2RvdmlhXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHRvLiAjIyNcIixcbiAgICBcIlNvYnJhZG8gIyNcIixcbiAgICBcIkNhc2EgI1wiLFxuICAgIFwiTG90ZSAjI1wiLFxuICAgIFwiUXVhZHJhICMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjIyMtIyMjXCJcbiAgXSxcbiAgXCJzdGF0ZVwiOiBbXG4gICAgXCJBY3JlXCIsXG4gICAgXCJBbGFnb2FzXCIsXG4gICAgXCJBbWFww6FcIixcbiAgICBcIkFtYXpvbmFzXCIsXG4gICAgXCJCYWhpYVwiLFxuICAgIFwiQ2VhcsOhXCIsXG4gICAgXCJEaXN0cml0byBGZWRlcmFsXCIsXG4gICAgXCJFc3DDrXJpdG8gU2FudG9cIixcbiAgICBcIkdvacOhc1wiLFxuICAgIFwiTWFyYW5ow6NvXCIsXG4gICAgXCJNYXRvIEdyb3Nzb1wiLFxuICAgIFwiTWF0byBHcm9zc28gZG8gU3VsXCIsXG4gICAgXCJNaW5hcyBHZXJhaXNcIixcbiAgICBcIlBhcsOhXCIsXG4gICAgXCJQYXJhw61iYVwiLFxuICAgIFwiUGFyYW7DoVwiLFxuICAgIFwiUGVybmFtYnVjb1wiLFxuICAgIFwiUGlhdcOtXCIsXG4gICAgXCJSaW8gZGUgSmFuZWlyb1wiLFxuICAgIFwiUmlvIEdyYW5kZSBkbyBOb3J0ZVwiLFxuICAgIFwiUmlvIEdyYW5kZSBkbyBTdWxcIixcbiAgICBcIlJvbmTDtG5pYVwiLFxuICAgIFwiUm9yYWltYVwiLFxuICAgIFwiU2FudGEgQ2F0YXJpbmFcIixcbiAgICBcIlPDo28gUGF1bG9cIixcbiAgICBcIlNlcmdpcGVcIixcbiAgICBcIlRvY2FudGluc1wiXG4gIF0sXG4gIFwic3RhdGVfYWJiclwiOiBbXG4gICAgXCJBQ1wiLFxuICAgIFwiQUxcIixcbiAgICBcIkFQXCIsXG4gICAgXCJBTVwiLFxuICAgIFwiQkFcIixcbiAgICBcIkNFXCIsXG4gICAgXCJERlwiLFxuICAgIFwiRVNcIixcbiAgICBcIkdPXCIsXG4gICAgXCJNQVwiLFxuICAgIFwiTVRcIixcbiAgICBcIk1TXCIsXG4gICAgXCJQQVwiLFxuICAgIFwiUEJcIixcbiAgICBcIlBSXCIsXG4gICAgXCJQRVwiLFxuICAgIFwiUElcIixcbiAgICBcIlJKXCIsXG4gICAgXCJSTlwiLFxuICAgIFwiUlNcIixcbiAgICBcIlJPXCIsXG4gICAgXCJSUlwiLFxuICAgIFwiU0NcIixcbiAgICBcIlNQXCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwiQnJhc2lsXCJcbiAgXVxufTtcbnB0X0JSLmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlMuQS5cIixcbiAgICBcIkxUREFcIixcbiAgICBcImUgQXNzb2NpYWRvc1wiLFxuICAgIFwiQ29tw6lyY2lvXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSBlICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbnB0X0JSLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ5YWhvby5jb21cIixcbiAgICBcImhvdG1haWwuY29tXCIsXG4gICAgXCJsaXZlLmNvbVwiLFxuICAgIFwiYm9sLmNvbS5iclwiXG4gIF0sXG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJiclwiLFxuICAgIFwiY29tXCIsXG4gICAgXCJiaXpcIixcbiAgICBcImluZm9cIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5ldFwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnB0X0JSLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF1cbn07XG5wdF9CUi5uYW1lID0ge1xuICBcImZpcnN0X25hbWVcIjogW1xuICAgIFwiQWxlc3NhbmRyb1wiLFxuICAgIFwiQWxlc3NhbmRyYVwiLFxuICAgIFwiQWxleGFuZHJlXCIsXG4gICAgXCJBbGluZVwiLFxuICAgIFwiQW50w7RuaW9cIixcbiAgICBcIkJyZW5vXCIsXG4gICAgXCJCcnVuYVwiLFxuICAgIFwiQ2FybG9zXCIsXG4gICAgXCJDYXJsYVwiLFxuICAgIFwiQ8OpbGlhXCIsXG4gICAgXCJDZWPDrWxpYVwiLFxuICAgIFwiQ8Opc2FyXCIsXG4gICAgXCJEYW5pbG9cIixcbiAgICBcIkRhbGlsYVwiLFxuICAgIFwiRGVuZXZhbFwiLFxuICAgIFwiRWR1YXJkb1wiLFxuICAgIFwiRWR1YXJkYVwiLFxuICAgIFwiRXN0aGVyXCIsXG4gICAgXCJFbMOtc2lvXCIsXG4gICAgXCJGw6FiaW9cIixcbiAgICBcIkZhYnLDrWNpb1wiLFxuICAgIFwiRmFicsOtY2lhXCIsXG4gICAgXCJGw6lsaXhcIixcbiAgICBcIkZlbMOtY2lhXCIsXG4gICAgXCJGZWxpY2lhbm9cIixcbiAgICBcIkZyZWRlcmljb1wiLFxuICAgIFwiRmFiaWFub1wiLFxuICAgIFwiR3VzdGF2b1wiLFxuICAgIFwiR3VpbGhlcm1lXCIsXG4gICAgXCJHw7piaW9cIixcbiAgICBcIkhlaXRvclwiLFxuICAgIFwiSMOpbGlvXCIsXG4gICAgXCJIdWdvXCIsXG4gICAgXCJJc2FiZWxcIixcbiAgICBcIklzYWJlbGFcIixcbiAgICBcIsONZ29yXCIsXG4gICAgXCJKb8Ojb1wiLFxuICAgIFwiSm9hbmFcIixcbiAgICBcIkrDumxpbyBDw6lzYXJcIixcbiAgICBcIkrDumxpb1wiLFxuICAgIFwiSsO6bGlhXCIsXG4gICAgXCJKYW5hw61uYVwiLFxuICAgIFwiS2FybGFcIixcbiAgICBcIktsw6liZXJcIixcbiAgICBcIkx1Y2FzXCIsXG4gICAgXCJMb3JlbmFcIixcbiAgICBcIkxvcnJhaW5lXCIsXG4gICAgXCJMYXJpc3NhXCIsXG4gICAgXCJMYWRpc2xhdVwiLFxuICAgIFwiTWFyY29zXCIsXG4gICAgXCJNZWlyZVwiLFxuICAgIFwiTWFyY2Vsb1wiLFxuICAgIFwiTWFyY2VsYVwiLFxuICAgIFwiTWFyZ2FyaWRhXCIsXG4gICAgXCJNw6lyY2lhXCIsXG4gICAgXCJNw6FyY2lhXCIsXG4gICAgXCJNYXJsaVwiLFxuICAgIFwiTW9yZ2FuYVwiLFxuICAgIFwiTWFyaWFcIixcbiAgICBcIk5vcmJlcnRvXCIsXG4gICAgXCJOYXTDoWxpYVwiLFxuICAgIFwiTmF0YW5pZWxcIixcbiAgICBcIk7DumJpYVwiLFxuICAgIFwiT2bDqWxpYVwiLFxuICAgIFwiUGF1bG9cIixcbiAgICBcIlBhdWxhXCIsXG4gICAgXCJQYWJsb1wiLFxuICAgIFwiUGVkcm9cIixcbiAgICBcIlJhdWxcIixcbiAgICBcIlJhZmFlbFwiLFxuICAgIFwiUmFmYWVsYVwiLFxuICAgIFwiUmljYXJkb1wiLFxuICAgIFwiUm9iZXJ0b1wiLFxuICAgIFwiUm9iZXJ0YVwiLFxuICAgIFwiU8OtbHZpYVwiLFxuICAgIFwiU8OtbHZpYVwiLFxuICAgIFwiU2lsYXNcIixcbiAgICBcIlN1w6lsZW5cIixcbiAgICBcIlNhcmFcIixcbiAgICBcIlNhbHZhZG9yXCIsXG4gICAgXCJTaXJpbmV1XCIsXG4gICAgXCJUYWxpdGFcIixcbiAgICBcIlRlcnR1bGlhbm9cIixcbiAgICBcIlZpY2VudGVcIixcbiAgICBcIlbDrWN0b3JcIixcbiAgICBcIlZpdMOzcmlhXCIsXG4gICAgXCJZYW5nb1wiLFxuICAgIFwiWWFnb1wiLFxuICAgIFwiWXVyaVwiLFxuICAgIFwiV2FzaGluZ3RvblwiLFxuICAgIFwiV2FybGV5XCJcbiAgXSxcbiAgXCJsYXN0X25hbWVcIjogW1xuICAgIFwiU2lsdmFcIixcbiAgICBcIlNvdXphXCIsXG4gICAgXCJDYXJ2YWxob1wiLFxuICAgIFwiU2FudG9zXCIsXG4gICAgXCJSZWlzXCIsXG4gICAgXCJYYXZpZXJcIixcbiAgICBcIkZyYW5jb1wiLFxuICAgIFwiQnJhZ2FcIixcbiAgICBcIk1hY2Vkb1wiLFxuICAgIFwiQmF0aXN0YVwiLFxuICAgIFwiQmFycm9zXCIsXG4gICAgXCJNb3JhZXNcIixcbiAgICBcIkNvc3RhXCIsXG4gICAgXCJQZXJlaXJhXCIsXG4gICAgXCJDYXJ2YWxob1wiLFxuICAgIFwiTWVsb1wiLFxuICAgIFwiU2FyYWl2YVwiLFxuICAgIFwiTm9ndWVpcmFcIixcbiAgICBcIk9saXZlaXJhXCIsXG4gICAgXCJNYXJ0aW5zXCIsXG4gICAgXCJNb3JlaXJhXCIsXG4gICAgXCJBbGJ1cXVlcnF1ZVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIlNyLlwiLFxuICAgIFwiU3JhLlwiLFxuICAgIFwiU3J0YS5cIixcbiAgICBcIkRyLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkpyLlwiLFxuICAgIFwiTmV0b1wiLFxuICAgIFwiRmlsaG9cIlxuICBdXG59O1xucHRfQlIucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKCMjKSAjIyMjLSMjIyNcIixcbiAgICBcIis1NSAoIyMpICMjIyMtIyMjI1wiLFxuICAgIFwiKCMjKSAjIyMjIy0jIyMjXCJcbiAgXVxufTtcbiIsInZhciBydSA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHJ1O1xucnUudGl0bGUgPSBcIlJ1c3NpYW5cIjtcbnJ1LnNlcGFyYXRvciA9IFwiINC4IFwiO1xucnUuYWRkcmVzcyA9IHtcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcItCQ0LLRgdGC0YDQsNC70LjRj1wiLFxuICAgIFwi0JDQstGB0YLRgNC40Y9cIixcbiAgICBcItCQ0LfQtdGA0LHQsNC50LTQttCw0L1cIixcbiAgICBcItCQ0LvQsdCw0L3QuNGPXCIsXG4gICAgXCLQkNC70LbQuNGAXCIsXG4gICAgXCLQkNC80LXRgNC40LrQsNC90YHQutC+0LUg0KHQsNC80L7QsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JDQvdCz0LjQu9GM0Y9cIixcbiAgICBcItCQ0L3Qs9C+0LvQsFwiLFxuICAgIFwi0JDQvdC00L7RgNGA0LBcIixcbiAgICBcItCQ0L3RgtCw0YDQutGC0LjQutCwICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQkNC90YLQuNCz0YPQsCDQuCDQkdCw0YDQsdGD0LTQsFwiLFxuICAgIFwi0JDQvdGC0LjQu9GM0YHQutC40LUg0J7RgdGC0YDQvtCy0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCQ0L7QvNGL0L3RjCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JDRgNCz0LXQvdGC0LjQvdCwXCIsXG4gICAgXCLQkNGA0LzQtdC90LjRj1wiLFxuICAgIFwi0JDRhNCz0LDQvdC40YHRgtCw0L1cIixcbiAgICBcItCR0LDQs9Cw0LzRgdC60LjQtSDQntGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JHQsNC90LPQu9Cw0LTQtdGIXCIsXG4gICAgXCLQkdCw0YDQsdCw0LTQvtGBXCIsXG4gICAgXCLQkdCw0YXRgNC10LnQvVwiLFxuICAgIFwi0JHQtdC70LDRgNGD0YHRjFwiLFxuICAgIFwi0JHQtdC70LjQt1wiLFxuICAgIFwi0JHQtdC70YzQs9C40Y9cIixcbiAgICBcItCR0LXQvdC40L1cIixcbiAgICBcItCR0L7Qu9Cz0LDRgNC40Y9cIixcbiAgICBcItCR0L7Qu9C40LLQuNGPXCIsXG4gICAgXCLQkdC+0YHQvdC40Y8g0Lgg0JPQtdGA0YbQtdCz0L7QstC40L3QsFwiLFxuICAgIFwi0JHQvtGC0YHQstCw0L3QsFwiLFxuICAgIFwi0JHRgNCw0LfQuNC70LjRj1wiLFxuICAgIFwi0JHRgNGD0L3QtdC5XCIsXG4gICAgXCLQkdGD0YDQutC40L3QsC3QpNCw0YHQvlwiLFxuICAgIFwi0JHRg9GA0YPQvdC00LhcIixcbiAgICBcItCR0YPRgtCw0L1cIixcbiAgICBcItCS0LDQvdGD0LDRgtGDXCIsXG4gICAgXCLQktCw0YLQuNC60LDQvVwiLFxuICAgIFwi0JLQtdC70LjQutC+0LHRgNC40YLQsNC90LjRj1wiLFxuICAgIFwi0JLQtdC90LPRgNC40Y9cIixcbiAgICBcItCS0LXQvdC10YHRg9GN0LvQsFwiLFxuICAgIFwi0JLQvtGB0YLQvtGH0L3Ri9C5INCi0LjQvNC+0YBcIixcbiAgICBcItCS0YzQtdGC0L3QsNC8XCIsXG4gICAgXCLQk9Cw0LHQvtC9XCIsXG4gICAgXCLQk9Cw0LjRgtC4XCIsXG4gICAgXCLQk9Cw0LnQsNC90LBcIixcbiAgICBcItCT0LDQvNCx0LjRj1wiLFxuICAgIFwi0JPQsNC90LBcIixcbiAgICBcItCT0LLQsNC00LXQu9GD0L/QsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0JPQstCw0YLQtdC80LDQu9CwXCIsXG4gICAgXCLQk9Cy0LjQsNC90LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCT0LLQuNC90LXRj1wiLFxuICAgIFwi0JPQstC40L3QtdGPLdCR0LjRgdCw0YNcIixcbiAgICBcItCT0LXRgNC80LDQvdC40Y9cIixcbiAgICBcItCT0L7QvdC00YPRgNCw0YFcIixcbiAgICBcItCT0YDQtdC90LDQtNCwXCIsXG4gICAgXCLQk9GA0LXRhtC40Y9cIixcbiAgICBcItCT0YDRg9C30LjRj1wiLFxuICAgIFwi0JTQsNC90LjRj1wiLFxuICAgIFwi0JTQttC40LHRg9GC0LhcIixcbiAgICBcItCU0L7QvNC40L3QuNC60LBcIixcbiAgICBcItCU0L7QvNC40L3QuNC60LDQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQldCz0LjQv9C10YJcIixcbiAgICBcItCX0LDQvNCx0LjRj1wiLFxuICAgIFwi0JfQuNC80LHQsNCx0LLQtVwiLFxuICAgIFwi0JjQt9GA0LDQuNC70YxcIixcbiAgICBcItCY0L3QtNC40Y9cIixcbiAgICBcItCY0L3QtNC+0L3QtdC30LjRj1wiLFxuICAgIFwi0JjQvtGA0LTQsNC90LjRj1wiLFxuICAgIFwi0JjRgNCw0LpcIixcbiAgICBcItCY0YDQsNC9XCIsXG4gICAgXCLQmNGA0LvQsNC90LTQuNGPXCIsXG4gICAgXCLQmNGB0LvQsNC90LTQuNGPXCIsXG4gICAgXCLQmNGB0L/QsNC90LjRj1wiLFxuICAgIFwi0JjRgtCw0LvQuNGPXCIsXG4gICAgXCLQmdC10LzQtdC9XCIsXG4gICAgXCLQmtCw0LHQvi3QktC10YDQtNC1XCIsXG4gICAgXCLQmtCw0LfQsNGF0YHRgtCw0L1cIixcbiAgICBcItCa0LDQvNCx0L7QtNC20LBcIixcbiAgICBcItCa0LDQvNC10YDRg9C9XCIsXG4gICAgXCLQmtCw0L3QsNC00LBcIixcbiAgICBcItCa0LDRgtCw0YBcIixcbiAgICBcItCa0LXQvdC40Y9cIixcbiAgICBcItCa0LjQv9GAXCIsXG4gICAgXCLQmtC40YDQuNCx0LDRgtC4XCIsXG4gICAgXCLQmtC40YLQsNC5XCIsXG4gICAgXCLQmtC+0LvRg9C80LHQuNGPXCIsXG4gICAgXCLQmtC+0LzQvtGA0YHQutC40LUg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCa0L7QvdCz0L5cIixcbiAgICBcItCU0LXQvNC+0LrRgNCw0YLQuNGH0LXRgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsFwiLFxuICAgIFwi0JrQvtGA0LXRjyAo0KHQtdCy0LXRgNC90LDRjylcIixcbiAgICBcItCa0L7RgNC10Y8gKNCu0LbQvdCw0Y8pXCIsXG4gICAgXCLQmtC+0YHQvtCy0L5cIixcbiAgICBcItCa0L7RgdGC0LAt0KDQuNC60LBcIixcbiAgICBcItCa0L7Rgi3QtCfQmNCy0YPQsNGAXCIsXG4gICAgXCLQmtGD0LHQsFwiLFxuICAgIFwi0JrRg9Cy0LXQudGCXCIsXG4gICAgXCLQmtGD0LrQsCDQvtGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JrRi9GA0LPRi9C30YHRgtCw0L1cIixcbiAgICBcItCb0LDQvtGBXCIsXG4gICAgXCLQm9Cw0YLQstC40Y9cIixcbiAgICBcItCb0LXRgdC+0YLQvlwiLFxuICAgIFwi0JvQuNCx0LXRgNC40Y9cIixcbiAgICBcItCb0LjQstCw0L1cIixcbiAgICBcItCb0LjQstC40Y9cIixcbiAgICBcItCb0LjRgtCy0LBcIixcbiAgICBcItCb0LjRhdGC0LXQvdGI0YLQtdC50L1cIixcbiAgICBcItCb0Y7QutGB0LXQvNCx0YPRgNCzXCIsXG4gICAgXCLQnNCw0LLRgNC40LrQuNC5XCIsXG4gICAgXCLQnNCw0LLRgNC40YLQsNC90LjRj1wiLFxuICAgIFwi0JzQsNC00LDQs9Cw0YHQutCw0YBcIixcbiAgICBcItCc0LDQutC10LTQvtC90LjRj1wiLFxuICAgIFwi0JzQsNC70LDQstC4XCIsXG4gICAgXCLQnNCw0LvQsNC50LfQuNGPXCIsXG4gICAgXCLQnNCw0LvQuFwiLFxuICAgIFwi0JzQsNC70YzQtNC40LLRi1wiLFxuICAgIFwi0JzQsNC70YzRgtCwXCIsXG4gICAgXCLQnNCw0YDRiNCw0LvQu9C+0LLRiyDQntGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0JzQtdC60YHQuNC60LBcIixcbiAgICBcItCc0LjQutGA0L7QvdC10LfQuNGPXCIsXG4gICAgXCLQnNC+0LfQsNC80LHQuNC6XCIsXG4gICAgXCLQnNC+0LvQtNC+0LLQsFwiLFxuICAgIFwi0JzQvtC90LDQutC+XCIsXG4gICAgXCLQnNC+0L3Qs9C+0LvQuNGPXCIsXG4gICAgXCLQnNCw0YDQvtC60LrQvlwiLFxuICAgIFwi0JzRjNGP0L3QvNCwXCIsXG4gICAgXCLQndCw0LzQuNCx0LjRj1wiLFxuICAgIFwi0J3QsNGD0YDRg1wiLFxuICAgIFwi0J3QtdC/0LDQu1wiLFxuICAgIFwi0J3QuNCz0LXRgFwiLFxuICAgIFwi0J3QuNCz0LXRgNC40Y9cIixcbiAgICBcItCd0LjQtNC10YDQu9Cw0L3QtNGLXCIsXG4gICAgXCLQndC40LrQsNGA0LDQs9GD0LBcIixcbiAgICBcItCd0L7QstCw0Y8g0JfQtdC70LDQvdC00LjRj1wiLFxuICAgIFwi0J3QvtGA0LLQtdCz0LjRj1wiLFxuICAgIFwi0J7QsdGK0LXQtNC40L3QtdC90L3Ri9C1INCQ0YDQsNCx0YHQutC40LUg0K3QvNC40YDQsNGC0YtcIixcbiAgICBcItCe0LzQsNC9XCIsXG4gICAgXCLQn9Cw0LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQn9Cw0LvQsNGDXCIsXG4gICAgXCLQn9Cw0L3QsNC80LBcIixcbiAgICBcItCf0LDQv9GD0LAg4oCUINCd0L7QstCw0Y8g0JPQstC40L3QtdGPXCIsXG4gICAgXCLQn9Cw0YDQsNCz0LLQsNC5XCIsXG4gICAgXCLQn9C10YDRg1wiLFxuICAgIFwi0J/QvtC70YzRiNCwXCIsXG4gICAgXCLQn9C+0YDRgtGD0LPQsNC70LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQvtC90LPQvlwiLFxuICAgIFwi0KDQvtGB0YHQuNGPXCIsXG4gICAgXCLQoNGD0LDQvdC00LBcIixcbiAgICBcItCg0YPQvNGL0L3QuNGPXCIsXG4gICAgXCLQodCw0LvRjNCy0LDQtNC+0YBcIixcbiAgICBcItCh0LDQvNC+0LBcIixcbiAgICBcItCh0LDQvS3QnNCw0YDQuNC90L5cIixcbiAgICBcItCh0LDQvS3QotC+0LzQtSDQuCDQn9GA0LjQvdGB0LjQv9C4XCIsXG4gICAgXCLQodCw0YPQtNC+0LLRgdC60LDRjyDQkNGA0LDQstC40Y9cIixcbiAgICBcItCh0LLQsNC30LjQu9C10L3QtFwiLFxuICAgIFwi0KHQtdC50YjQtdC70YzRgdC60LjQtSDQvtGB0YLRgNC+0LLQsFwiLFxuICAgIFwi0KHQtdC90LXQs9Cw0LtcIixcbiAgICBcItCh0LXQvdGCLdCS0LjQvdGB0LXQvdGCINC4INCT0YDQtdC90LDQtNC40L3Ri1wiLFxuICAgIFwi0KHQtdC90YIt0JrQuNGC0YLRgSDQuCDQndC10LLQuNGBXCIsXG4gICAgXCLQodC10L3Rgi3Qm9GO0YHQuNGPXCIsXG4gICAgXCLQodC10YDQsdC40Y9cIixcbiAgICBcItCh0LjQvdCz0LDQv9GD0YBcIixcbiAgICBcItCh0LjRgNC40Y9cIixcbiAgICBcItCh0LvQvtCy0LDQutC40Y9cIixcbiAgICBcItCh0LvQvtCy0LXQvdC40Y9cIixcbiAgICBcItCh0L7QtdC00LjQvdC10L3QvdGL0LUg0KjRgtCw0YLRiyDQkNC80LXRgNC40LrQuFwiLFxuICAgIFwi0KHQvtC70L7QvNC+0L3QvtCy0Ysg0J7RgdGC0YDQvtCy0LBcIixcbiAgICBcItCh0L7QvNCw0LvQuFwiLFxuICAgIFwi0KHRg9C00LDQvVwiLFxuICAgIFwi0KHRg9GA0LjQvdCw0LxcIixcbiAgICBcItCh0YzQtdGA0YDQsC3Qm9C10L7QvdC1XCIsXG4gICAgXCLQotCw0LTQttC40LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQotCw0LjQu9Cw0L3QtFwiLFxuICAgIFwi0KLQsNC50LLQsNC90YwgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0LDQvNC40Lst0JjQu9Cw0LwgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0LDQvdC30LDQvdC40Y9cIixcbiAgICBcItCi0ZHRgNC60YEg0Lgg0JrQsNC50LrQvtGBICjQvdC1INC/0YDQuNC30L3QsNC90LApXCIsXG4gICAgXCLQotC+0LPQvlwiLFxuICAgIFwi0KLQvtC60LXQu9Cw0YMgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0L7QvdCz0LBcIixcbiAgICBcItCi0YDQuNC90LjQtNCw0LQg0Lgg0KLQvtCx0LDQs9C+XCIsXG4gICAgXCLQotGD0LLQsNC70YNcIixcbiAgICBcItCi0YPQvdC40YFcIixcbiAgICBcItCi0YPRgNC10YbQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KHQtdCy0LXRgNC90L7Qs9C+INCa0LjQv9GA0LAgKNC90LUg0L/RgNC40LfQvdCw0L3QsClcIixcbiAgICBcItCi0YPRgNC60LzQtdC90LjRgdGC0LDQvVwiLFxuICAgIFwi0KLRg9GA0YbQuNGPXCIsXG4gICAgXCLQo9Cz0LDQvdC00LBcIixcbiAgICBcItCj0LfQsdC10LrQuNGB0YLQsNC9XCIsXG4gICAgXCLQo9C60YDQsNC40L3QsFwiLFxuICAgIFwi0KPRgNGD0LPQstCw0LlcIixcbiAgICBcItCk0LDRgNC10YDRgdC60LjQtSDQntGB0YLRgNC+0LLQsCAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0KTQuNC00LbQuFwiLFxuICAgIFwi0KTQuNC70LjQv9C/0LjQvdGLXCIsXG4gICAgXCLQpNC40L3Qu9GP0L3QtNC40Y9cIixcbiAgICBcItCk0YDQsNC90YbQuNGPXCIsXG4gICAgXCLQpNGA0LDQvdGG0YPQt9GB0LrQsNGPINCf0L7Qu9C40L3QtdC30LjRjyAo0L3QtSDQv9GA0LjQt9C90LDQvdCwKVwiLFxuICAgIFwi0KXQvtGA0LLQsNGC0LjRj1wiLFxuICAgIFwi0KbQtdC90YLRgNCw0LvRjNC90L7QsNGE0YDQuNC60LDQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQp9Cw0LRcIixcbiAgICBcItCn0LXRgNC90L7Qs9C+0YDQuNGPXCIsXG4gICAgXCLQp9C10YXQuNGPXCIsXG4gICAgXCLQp9C40LvQuFwiLFxuICAgIFwi0KjQstC10LnRhtCw0YDQuNGPXCIsXG4gICAgXCLQqNCy0LXRhtC40Y9cIixcbiAgICBcItCo0YDQuC3Qm9Cw0L3QutCwXCIsXG4gICAgXCLQrdC60LLQsNC00L7RgFwiLFxuICAgIFwi0K3QutCy0LDRgtC+0YDQuNCw0LvRjNC90LDRjyDQk9Cy0LjQvdC10Y9cIixcbiAgICBcItCt0YDQuNGC0YDQtdGPXCIsXG4gICAgXCLQrdGB0YLQvtC90LjRj1wiLFxuICAgIFwi0K3RhNC40L7Qv9C40Y9cIixcbiAgICBcItCu0LbQvdC+LdCQ0YTRgNC40LrQsNC90YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCv0LzQsNC50LrQsFwiLFxuICAgIFwi0K/Qv9C+0L3QuNGPXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcItGD0LsuXCIsXG4gICAgXCLRg9C70LjRhtCwXCIsXG4gICAgXCLQv9GA0L7RgdC/0LXQutGCXCIsXG4gICAgXCLQv9GALlwiLFxuICAgIFwi0L/Qu9C+0YnQsNC00YxcIixcbiAgICBcItC/0LsuXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCLQutCyLiAjIyNcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JDQtNGL0LPQtdGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQkdCw0YjQutC+0YDRgtC+0YHRgtCw0L1cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCR0YPRgNGP0YLQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQkNC70YLQsNC5INCg0LXRgdC/0YPQsdC70LjQutCwINCU0LDQs9C10YHRgtCw0L1cIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCY0L3Qs9GD0YjQtdGC0LjRj1wiLFxuICAgIFwi0JrQsNCx0LDRgNC00LjQvdC+LdCR0LDQu9C60LDRgNGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0LvQvNGL0LrQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0YDQsNGH0LDQtdCy0L4t0KfQtdGA0LrQtdGB0YHQuNGPXCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQmtCw0YDQtdC70LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQvtC80LhcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCc0LDRgNC40Lkg0K3Qu1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JzQvtGA0LTQvtCy0LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KHQsNGF0LAgKNCv0LrRg9GC0LjRjylcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCh0LXQstC10YDQvdCw0Y8g0J7RgdC10YLQuNGPLdCQ0LvQsNC90LjRj1wiLFxuICAgIFwi0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KLQsNGC0LDRgNGB0YLQsNC9XCIsXG4gICAgXCLQoNC10YHQv9GD0LHQu9C40LrQsCDQotGL0LLQsFwiLFxuICAgIFwi0KPQtNC80YPRgNGC0YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCg0LXRgdC/0YPQsdC70LjQutCwINCl0LDQutCw0YHQuNGPXCIsXG4gICAgXCLQp9GD0LLQsNGI0YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LBcIixcbiAgICBcItCQ0LvRgtCw0LnRgdC60LjQuSDQutGA0LDQuVwiLFxuICAgIFwi0JrRgNCw0YHQvdC+0LTQsNGA0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCa0YDQsNGB0L3QvtGP0YDRgdC60LjQuSDQutGA0LDQuVwiLFxuICAgIFwi0J/RgNC40LzQvtGA0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCh0YLQsNCy0YDQvtC/0L7Qu9GM0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCl0LDQsdCw0YDQvtCy0YHQutC40Lkg0LrRgNCw0LlcIixcbiAgICBcItCQ0LzRg9GA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCQ0YDRhdCw0L3Qs9C10LvRjNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQkNGB0YLRgNCw0YXQsNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCR0LXQu9Cz0L7RgNC+0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JHRgNGP0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQu9Cw0LTQuNC80LjRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQktC+0LvQs9C+0LPRgNCw0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQvtC70L7Qs9C+0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JLQvtGA0L7QvdC10LbRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JjQstCw0L3QvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCY0YDQutGD0YLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQsNC70LjQvdC40LPRgNCw0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQsNC70YPQttGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtCw0LzRh9Cw0YLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQtdC80LXRgNC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrQuNGA0L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtC+0YHRgtGA0L7QvNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQmtGD0YDQs9Cw0L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JrRg9GA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCb0LXQvdC40L3Qs9GA0LDQtNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQm9C40L/QtdGG0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQnNCw0LPQsNC00LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQnNC+0YHQutC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JzRg9GA0LzQsNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCd0LjQttC10LPQvtGA0L7QtNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQndC+0LLQs9C+0YDQvtC00YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCd0L7QstC+0YHQuNCx0LjRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQntC80YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCe0YDQtdC90LHRg9GA0LPRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J7RgNC70L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQn9C10L3Qt9C10L3RgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J/QtdGA0LzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0J/RgdC60L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQoNC+0YHRgtC+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KDRj9C30LDQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQodCw0LzQsNGA0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LDRgNCw0YLQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LDRhdCw0LvQuNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCh0LLQtdGA0LTQu9C+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KHQvNC+0LvQtdC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCi0LDQvNCx0L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQotCy0LXRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQotC+0LzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLRg9C70YzRgdC60LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0KLRjtC80LXQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQo9C70YzRj9C90L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQp9C10LvRj9Cx0LjQvdGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMXCIsXG4gICAgXCLQp9C40YLQuNC90YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCv0YDQvtGB0LvQsNCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YxcIixcbiAgICBcItCV0LLRgNC10LnRgdC60LDRjyDQsNCy0YLQvtC90L7QvNC90LDRjyDQvtCx0LvQsNGB0YLRjFwiLFxuICAgIFwi0JDQs9C40L3RgdC60LjQuSDQkdGD0YDRj9GC0YHQutC40Lkg0LDQstGCLiDQvtC60YDRg9CzXCIsXG4gICAgXCLQmtC+0LzQuC3Qn9C10YDQvNGP0YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0JrQvtGA0Y/QutGB0LrQuNC5INCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCd0LXQvdC10YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KLQsNC50LzRi9GA0YHQutC40LkgKNCU0L7Qu9Cz0LDQvdC+LdCd0LXQvdC10YbQutC40LkpINCw0LLRgtC+0L3QvtC80L3Ri9C5INC+0LrRgNGD0LNcIixcbiAgICBcItCj0YHRgtGMLdCe0YDQtNGL0L3RgdC60LjQuSDQkdGD0YDRj9GC0YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KXQsNC90YLRiy3QnNCw0L3RgdC40LnRgdC60LjQuSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQp9GD0LrQvtGC0YHQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0K3QstC10L3QutC40LnRgdC60LjQuSDQsNCy0YLQvtC90L7QvNC90YvQuSDQvtC60YDRg9CzXCIsXG4gICAgXCLQr9C80LDQu9C+LdCd0LXQvdC10YbQutC40Lkg0LDQstGC0L7QvdC+0LzQvdGL0Lkg0L7QutGA0YPQs1wiLFxuICAgIFwi0KfQtdGH0LXQvdGB0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwXCJcbiAgXSxcbiAgXCJzdHJlZXRfdGl0bGVcIjogW1xuICAgIFwi0KHQvtCy0LXRgtGB0LrQsNGPXCIsXG4gICAgXCLQnNC+0LvQvtC00LXQttC90LDRj1wiLFxuICAgIFwi0KbQtdC90YLRgNCw0LvRjNC90LDRj1wiLFxuICAgIFwi0KjQutC+0LvRjNC90LDRj1wiLFxuICAgIFwi0J3QvtCy0LDRj1wiLFxuICAgIFwi0KHQsNC00L7QstCw0Y9cIixcbiAgICBcItCb0LXRgdC90LDRj1wiLFxuICAgIFwi0J3QsNCx0LXRgNC10LbQvdCw0Y9cIixcbiAgICBcItCb0LXQvdC40L3QsFwiLFxuICAgIFwi0JzQuNGA0LBcIixcbiAgICBcItCe0LrRgtGP0LHRgNGM0YHQutCw0Y9cIixcbiAgICBcItCX0LXQu9C10L3QsNGPXCIsXG4gICAgXCLQmtC+0LzRgdC+0LzQvtC70YzRgdC60LDRj1wiLFxuICAgIFwi0JfQsNGA0LXRh9C90LDRj1wiLFxuICAgIFwi0J/QtdGA0LLQvtC80LDQudGB0LrQsNGPXCIsXG4gICAgXCLQk9Cw0LPQsNGA0LjQvdCwXCIsXG4gICAgXCLQn9C+0LvQtdCy0LDRj1wiLFxuICAgIFwi0JvRg9Cz0L7QstCw0Y9cIixcbiAgICBcItCf0LjQvtC90LXRgNGB0LrQsNGPXCIsXG4gICAgXCLQmtC40YDQvtCy0LBcIixcbiAgICBcItCu0LHQuNC70LXQudC90LDRj1wiLFxuICAgIFwi0KHQtdCy0LXRgNC90LDRj1wiLFxuICAgIFwi0J/RgNC+0LvQtdGC0LDRgNGB0LrQsNGPXCIsXG4gICAgXCLQodGC0LXQv9C90LDRj1wiLFxuICAgIFwi0J/Rg9GI0LrQuNC90LBcIixcbiAgICBcItCa0LDQu9C40L3QuNC90LBcIixcbiAgICBcItCu0LbQvdCw0Y9cIixcbiAgICBcItCa0L7Qu9GF0L7Qt9C90LDRj1wiLFxuICAgIFwi0KDQsNCx0L7Rh9Cw0Y9cIixcbiAgICBcItCh0L7Qu9C90LXRh9C90LDRj1wiLFxuICAgIFwi0JbQtdC70LXQt9C90L7QtNC+0YDQvtC20L3QsNGPXCIsXG4gICAgXCLQktC+0YHRgtC+0YfQvdCw0Y9cIixcbiAgICBcItCX0LDQstC+0LTRgdC60LDRj1wiLFxuICAgIFwi0KfQsNC/0LDQtdCy0LBcIixcbiAgICBcItCd0LDQs9C+0YDQvdCw0Y9cIixcbiAgICBcItCh0YLRgNC+0LjRgtC10LvQtdC5XCIsXG4gICAgXCLQkdC10YDQtdCz0L7QstCw0Y9cIixcbiAgICBcItCf0L7QsdC10LTRi1wiLFxuICAgIFwi0JPQvtGA0YzQutC+0LPQvlwiLFxuICAgIFwi0JrQvtC+0L/QtdGA0LDRgtC40LLQvdCw0Y9cIixcbiAgICBcItCa0YDQsNGB0L3QvtCw0YDQvNC10LnRgdC60LDRj1wiLFxuICAgIFwi0KHQvtCy0YXQvtC30L3QsNGPXCIsXG4gICAgXCLQoNC10YfQvdCw0Y9cIixcbiAgICBcItCo0LrQvtC70YzQvdGL0LlcIixcbiAgICBcItCh0L/QvtGA0YLQuNCy0L3QsNGPXCIsXG4gICAgXCLQntC30LXRgNC90LDRj1wiLFxuICAgIFwi0KHRgtGA0L7QuNGC0LXQu9GM0L3QsNGPXCIsXG4gICAgXCLQn9Cw0YDQutC+0LLQsNGPXCIsXG4gICAgXCLQp9C60LDQu9C+0LLQsFwiLFxuICAgIFwi0JzQuNGH0YPRgNC40L3QsFwiLFxuICAgIFwi0YDQtdGH0LXQvdGMINGD0LvQuNGGXCIsXG4gICAgXCLQn9C+0LTQs9C+0YDQvdCw0Y9cIixcbiAgICBcItCU0YDRg9C20LHRi1wiLFxuICAgIFwi0J/QvtGH0YLQvtCy0LDRj1wiLFxuICAgIFwi0J/QsNGA0YLQuNC30LDQvdGB0LrQsNGPXCIsXG4gICAgXCLQktC+0LrQt9Cw0LvRjNC90LDRj1wiLFxuICAgIFwi0JvQtdGA0LzQvtC90YLQvtCy0LBcIixcbiAgICBcItCh0LLQvtCx0L7QtNGLXCIsXG4gICAgXCLQlNC+0YDQvtC20L3QsNGPXCIsXG4gICAgXCLQlNCw0YfQvdCw0Y9cIixcbiAgICBcItCc0LDRj9C60L7QstGB0LrQvtCz0L5cIixcbiAgICBcItCX0LDQv9Cw0LTQvdCw0Y9cIixcbiAgICBcItCk0YDRg9C90LfQtVwiLFxuICAgIFwi0JTQt9C10YDQttC40L3RgdC60L7Qs9C+XCIsXG4gICAgXCLQnNC+0YHQutC+0LLRgdC60LDRj1wiLFxuICAgIFwi0KHQstC10YDQtNC70L7QstCwXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCy0LBcIixcbiAgICBcItCT0L7Qs9C+0LvRj1wiLFxuICAgIFwi0JrRgNCw0YHQvdCw0Y9cIixcbiAgICBcItCi0YDRg9C00L7QstCw0Y9cIixcbiAgICBcItCo0L7RgdGB0LXQudC90LDRj1wiLFxuICAgIFwi0KfQtdGF0L7QstCwXCIsXG4gICAgXCLQmtC+0LzQvNGD0L3QuNGB0YLQuNGH0LXRgdC60LDRj1wiLFxuICAgIFwi0KLRgNGD0LTQsFwiLFxuICAgIFwi0JrQvtC80LDRgNC+0LLQsFwiLFxuICAgIFwi0JzQsNGC0YDQvtGB0L7QstCwXCIsXG4gICAgXCLQntGB0YLRgNC+0LLRgdC60L7Qs9C+XCIsXG4gICAgXCLQodC+0YHQvdC+0LLQsNGPXCIsXG4gICAgXCLQmtC70YPQsdC90LDRj1wiLFxuICAgIFwi0JrRg9C50LHRi9GI0LXQstCwXCIsXG4gICAgXCLQmtGA0YPQv9GB0LrQvtC5XCIsXG4gICAgXCLQkdC10YDQtdC30L7QstCw0Y9cIixcbiAgICBcItCa0LDRgNC70LAg0JzQsNGA0LrRgdCwXCIsXG4gICAgXCI4INCc0LDRgNGC0LBcIixcbiAgICBcItCR0L7Qu9GM0L3QuNGH0L3QsNGPXCIsXG4gICAgXCLQodCw0LTQvtCy0YvQuVwiLFxuICAgIFwi0JjQvdGC0LXRgNC90LDRhtC40L7QvdCw0LvRjNC90LDRj1wiLFxuICAgIFwi0KHRg9Cy0L7RgNC+0LLQsFwiLFxuICAgIFwi0KbQstC10YLQvtGH0L3QsNGPXCIsXG4gICAgXCLQotGA0LDQutGC0L7QstCw0Y9cIixcbiAgICBcItCb0L7QvNC+0L3QvtGB0L7QstCwXCIsXG4gICAgXCLQk9C+0YDQvdCw0Y9cIixcbiAgICBcItCa0L7RgdC80L7QvdCw0LLRgtC+0LJcIixcbiAgICBcItCt0L3QtdGA0LPQtdGC0LjQutC+0LJcIixcbiAgICBcItCo0LXQstGH0LXQvdC60L5cIixcbiAgICBcItCS0LXRgdC10L3QvdGP0Y9cIixcbiAgICBcItCc0LXRhdCw0L3QuNC30LDRgtC+0YDQvtCyXCIsXG4gICAgXCLQmtC+0LzQvNGD0L3QsNC70YzQvdCw0Y9cIixcbiAgICBcItCb0LXRgdC90L7QuVwiLFxuICAgIFwiNDAg0LvQtdGCINCf0L7QsdC10LTRi1wiLFxuICAgIFwi0JzQsNC50YHQutCw0Y9cIlxuICBdLFxuICBcImNpdHlfbmFtZVwiOiBbXG4gICAgXCLQnNC+0YHQutCy0LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YBcIixcbiAgICBcItCh0LDQvdC60YIt0J/QtdGC0LXRgNCx0YPRgNCzXCIsXG4gICAgXCLQndC+0LLQvtGB0LjQsdC40YDRgdC6XCIsXG4gICAgXCLQldC60LDRgtC10YDQuNC90LHRg9GA0LNcIixcbiAgICBcItCd0LjQttC90LjQuSDQndC+0LLQs9C+0YDQvtC0XCIsXG4gICAgXCLQodCw0LzQsNGA0LBcIixcbiAgICBcItCa0LDQt9Cw0L3RjFwiLFxuICAgIFwi0J7QvNGB0LpcIixcbiAgICBcItCn0LXQu9GP0LHQuNC90YHQulwiLFxuICAgIFwi0KDQvtGB0YLQvtCyLdC90LAt0JTQvtC90YNcIixcbiAgICBcItCj0YTQsFwiLFxuICAgIFwi0JLQvtC70LPQvtCz0YDQsNC0XCIsXG4gICAgXCLQn9C10YDQvNGMXCIsXG4gICAgXCLQmtGA0LDRgdC90L7Rj9GA0YHQulwiLFxuICAgIFwi0JLQvtGA0L7QvdC10LZcIixcbiAgICBcItCh0LDRgNCw0YLQvtCyXCIsXG4gICAgXCLQmtGA0LDRgdC90L7QtNCw0YBcIixcbiAgICBcItCi0L7Qu9GM0Y/RgtGC0LhcIixcbiAgICBcItCY0LbQtdCy0YHQulwiLFxuICAgIFwi0JHQsNGA0L3QsNGD0LtcIixcbiAgICBcItCj0LvRjNGP0L3QvtCy0YHQulwiLFxuICAgIFwi0KLRjtC80LXQvdGMXCIsXG4gICAgXCLQmNGA0LrRg9GC0YHQulwiLFxuICAgIFwi0JLQu9Cw0LTQuNCy0L7RgdGC0L7QulwiLFxuICAgIFwi0K/RgNC+0YHQu9Cw0LLQu9GMXCIsXG4gICAgXCLQpdCw0LHQsNGA0L7QstGB0LpcIixcbiAgICBcItCc0LDRhdCw0YfQutCw0LvQsFwiLFxuICAgIFwi0J7RgNC10L3QsdGD0YDQs1wiLFxuICAgIFwi0J3QvtCy0L7QutGD0LfQvdC10YbQulwiLFxuICAgIFwi0KLQvtC80YHQulwiLFxuICAgIFwi0JrQtdC80LXRgNC+0LLQvlwiLFxuICAgIFwi0KDRj9C30LDQvdGMXCIsXG4gICAgXCLQkNGB0YLRgNCw0YXQsNC90YxcIixcbiAgICBcItCf0LXQvdC30LBcIixcbiAgICBcItCb0LjQv9C10YbQulwiLFxuICAgIFwi0KLRg9C70LBcIixcbiAgICBcItCa0LjRgNC+0LJcIixcbiAgICBcItCn0LXQsdC+0LrRgdCw0YDRi1wiLFxuICAgIFwi0JrRg9GA0YHQulwiLFxuICAgIFwi0JHRgNGP0L3RgdC6bSDQnNCw0LPQvdC40YLQvtCz0L7RgNGB0LpcIixcbiAgICBcItCY0LLQsNC90L7QstC+XCIsXG4gICAgXCLQotCy0LXRgNGMXCIsXG4gICAgXCLQodGC0LDQstGA0L7Qv9C+0LvRjFwiLFxuICAgIFwi0JHQtdC70LPQvtGA0L7QtFwiLFxuICAgIFwi0KHQvtGH0LhcIlxuICBdLFxuICBcImNpdHlcIjogW1xuICAgIFwiI3tBZGRyZXNzLmNpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3N1ZmZpeH0gI3tBZGRyZXNzLnN0cmVldF90aXRsZX1cIixcbiAgICBcIiN7QWRkcmVzcy5zdHJlZXRfdGl0bGV9ICN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9LCAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCLQoNC+0YHRgdC40Y9cIlxuICBdXG59O1xucnUuaW50ZXJuZXQgPSB7XG4gIFwiZnJlZV9lbWFpbFwiOiBbXG4gICAgXCJ5YW5kZXgucnVcIixcbiAgICBcInlhLnJ1XCIsXG4gICAgXCJtYWlsLnJ1XCIsXG4gICAgXCJnbWFpbC5jb21cIixcbiAgICBcInlhaG9vLmNvbVwiLFxuICAgIFwiaG90bWFpbC5jb21cIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJydVwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwi0YDRhFwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJvcmdcIlxuICBdXG59O1xucnUubmFtZSA9IHtcbiAgXCJtYWxlX2ZpcnN0X25hbWVcIjogW1xuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGAXCIsXG4gICAgXCLQkNC70LXQutGB0LXQuVwiLFxuICAgIFwi0JDQu9GM0LHQtdGA0YJcIixcbiAgICBcItCQ0L3QsNGC0L7Qu9C40LlcIixcbiAgICBcItCQ0L3QtNGA0LXQuVwiLFxuICAgIFwi0JDQvdGC0L7QvVwiLFxuICAgIFwi0JDRgNC60LDQtNC40LlcIixcbiAgICBcItCQ0YDRgdC10L3QuNC5XCIsXG4gICAgXCLQkNGA0YLRkdC8XCIsXG4gICAgXCLQkdC+0YDQuNGBXCIsXG4gICAgXCLQktCw0LTQuNC8XCIsXG4gICAgXCLQktCw0LvQtdC90YLQuNC9XCIsXG4gICAgXCLQktCw0LvQtdGA0LjQuVwiLFxuICAgIFwi0JLQsNGB0LjQu9C40LlcIixcbiAgICBcItCS0LjQutGC0L7RgFwiLFxuICAgIFwi0JLQuNGC0LDQu9C40LlcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YBcIixcbiAgICBcItCS0LvQsNC00LjRgdC70LDQslwiLFxuICAgIFwi0JLRj9GH0LXRgdC70LDQslwiLFxuICAgIFwi0JPQtdC90L3QsNC00LjQuVwiLFxuICAgIFwi0JPQtdC+0YDQs9C40LlcIixcbiAgICBcItCT0LXRgNC80LDQvVwiLFxuICAgIFwi0JPRgNC40LPQvtGA0LjQuVwiLFxuICAgIFwi0JTQsNC90LjQuNC7XCIsXG4gICAgXCLQlNC10L3QuNGBXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQuVwiLFxuICAgIFwi0JXQstCz0LXQvdC40LlcIixcbiAgICBcItCV0LPQvtGAXCIsXG4gICAgXCLQmNCy0LDQvVwiLFxuICAgIFwi0JjQs9C90LDRgtC40LlcIixcbiAgICBcItCY0LPQvtGA0YxcIixcbiAgICBcItCY0LvRjNGPXCIsXG4gICAgXCLQmtC+0L3RgdGC0LDQvdGC0LjQvVwiLFxuICAgIFwi0JvQsNCy0YDQtdC90YLQuNC5XCIsXG4gICAgXCLQm9C10L7QvdC40LRcIixcbiAgICBcItCb0YPQutCwXCIsXG4gICAgXCLQnNCw0LrQsNGAXCIsXG4gICAgXCLQnNCw0LrRgdC40LxcIixcbiAgICBcItCc0LDRgtCy0LXQuVwiLFxuICAgIFwi0JzQuNGF0LDQuNC7XCIsXG4gICAgXCLQndC40LrQuNGC0LBcIixcbiAgICBcItCd0LjQutC+0LvQsNC5XCIsXG4gICAgXCLQntC70LXQs1wiLFxuICAgIFwi0KDQvtC80LDQvVwiLFxuICAgIFwi0KHQtdC80ZHQvVwiLFxuICAgIFwi0KHQtdGA0LPQtdC5XCIsXG4gICAgXCLQodGC0LDQvdC40YHQu9Cw0LJcIixcbiAgICBcItCh0YLQtdC/0LDQvVwiLFxuICAgIFwi0KTRkdC00L7RgFwiLFxuICAgIFwi0K3QtNGD0LDRgNC0XCIsXG4gICAgXCLQrtGA0LjQuVwiLFxuICAgIFwi0K/RgNC+0YHQu9Cw0LJcIlxuICBdLFxuICBcIm1hbGVfbWlkZGxlX25hbWVcIjogW1xuICAgIFwi0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YdcIixcbiAgICBcItCQ0LvQtdC60YHQtdC10LLQuNGHXCIsXG4gICAgXCLQkNC70YzQsdC10YDRgtC+0LLQuNGHXCIsXG4gICAgXCLQkNC90LDRgtC+0LvRjNC10LLQuNGHXCIsXG4gICAgXCLQkNC90LTRgNC10LXQstC40YdcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCy0LjRh1wiLFxuICAgIFwi0JDRgNC60LDQtNGM0LXQstC40YdcIixcbiAgICBcItCQ0YDRgdC10L3RjNC10LLQuNGHXCIsXG4gICAgXCLQkNGA0YLRkdC80L7QstC40YdcIixcbiAgICBcItCR0L7RgNC40YHQvtCy0LjRh1wiLFxuICAgIFwi0JLQsNC00LjQvNC+0LLQuNGHXCIsXG4gICAgXCLQktCw0LvQtdC90YLQuNC90L7QstC40YdcIixcbiAgICBcItCS0LDQu9C10YDRjNC10LLQuNGHXCIsXG4gICAgXCLQktCw0YHQuNC70YzQtdCy0LjRh1wiLFxuICAgIFwi0JLQuNC60YLQvtGA0L7QstC40YdcIixcbiAgICBcItCS0LjRgtCw0LvRjNC10LLQuNGHXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QstC40YdcIixcbiAgICBcItCS0LvQsNC00LjRgdC70LDQstC+0LLQuNGHXCIsXG4gICAgXCLQktGP0YfQtdGB0LvQsNCy0L7QstC40YdcIixcbiAgICBcItCT0LXQvdC90LDQtNGM0LXQstC40YdcIixcbiAgICBcItCT0LXQvtGA0LPQuNC10LLQuNGHXCIsXG4gICAgXCLQk9C10YDQvNCw0L3QvtCy0LjRh1wiLFxuICAgIFwi0JPRgNC40LPQvtGA0YzQtdCy0LjRh1wiLFxuICAgIFwi0JTQsNC90LjQuNC70L7QstC40YdcIixcbiAgICBcItCU0LXQvdC40YHQvtCy0LjRh1wiLFxuICAgIFwi0JTQvNC40YLRgNC40LXQstC40YdcIixcbiAgICBcItCV0LLQs9C10L3RjNC10LLQuNGHXCIsXG4gICAgXCLQldCz0L7RgNC+0LLQuNGHXCIsXG4gICAgXCLQmNCy0LDQvdC+0LLQuNGHXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCy0LjRh1wiLFxuICAgIFwi0JjQs9C+0YDQtdCy0LjRh1wiLFxuICAgIFwi0JjQu9GM0LjRh1wiLFxuICAgIFwi0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRh1wiLFxuICAgIFwi0JvQsNCy0YDQtdC90YLRjNC10LLQuNGHXCIsXG4gICAgXCLQm9C10L7QvdC40LTQvtCy0LjRh1wiLFxuICAgIFwi0JvRg9C60LjRh1wiLFxuICAgIFwi0JzQsNC60LDRgNC+0LLQuNGHXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCy0LjRh1wiLFxuICAgIFwi0JzQsNGC0LLQtdC10LLQuNGHXCIsXG4gICAgXCLQnNC40YXQsNC50LvQvtCy0LjRh1wiLFxuICAgIFwi0J3QuNC60LjRgtC40YdcIixcbiAgICBcItCd0LjQutC+0LvQsNC10LLQuNGHXCIsXG4gICAgXCLQntC70LXQs9C+0LLQuNGHXCIsXG4gICAgXCLQoNC+0LzQsNC90L7QstC40YdcIixcbiAgICBcItCh0LXQvNGR0L3QvtCy0LjRh1wiLFxuICAgIFwi0KHQtdGA0LPQtdC10LLQuNGHXCIsXG4gICAgXCLQodGC0LDQvdC40YHQu9Cw0LLQvtCy0LjRh1wiLFxuICAgIFwi0KHRgtC10L/QsNC90L7QstC40YdcIixcbiAgICBcItCk0ZHQtNC+0YDQvtCy0LjRh1wiLFxuICAgIFwi0K3QtNGD0LDRgNC00L7QstC40YdcIixcbiAgICBcItCu0YDRjNC10LLQuNGHXCIsXG4gICAgXCLQr9GA0L7RgdC70LDQstC+0LLQuNGHXCJcbiAgXSxcbiAgXCJtYWxlX2xhc3RfbmFtZVwiOiBbXG4gICAgXCLQodC80LjRgNC90L7QslwiLFxuICAgIFwi0JjQstCw0L3QvtCyXCIsXG4gICAgXCLQmtGD0LfQvdC10YbQvtCyXCIsXG4gICAgXCLQn9C+0L/QvtCyXCIsXG4gICAgXCLQodC+0LrQvtC70L7QslwiLFxuICAgIFwi0JvQtdCx0LXQtNC10LJcIixcbiAgICBcItCa0L7Qt9C70L7QslwiLFxuICAgIFwi0J3QvtCy0LjQutC+0LJcIixcbiAgICBcItCc0L7RgNC+0LfQvtCyXCIsXG4gICAgXCLQn9C10YLRgNC+0LJcIixcbiAgICBcItCS0L7Qu9C60L7QslwiLFxuICAgIFwi0KHQvtC70L7QstGM0LXQslwiLFxuICAgIFwi0JLQsNGB0LjQu9GM0LXQslwiLFxuICAgIFwi0JfQsNC50YbQtdCyXCIsXG4gICAgXCLQn9Cw0LLQu9C+0LJcIixcbiAgICBcItCh0LXQvNC10L3QvtCyXCIsXG4gICAgXCLQk9C+0LvRg9Cx0LXQslwiLFxuICAgIFwi0JLQuNC90L7Qs9GA0LDQtNC+0LJcIixcbiAgICBcItCR0L7Qs9C00LDQvdC+0LJcIixcbiAgICBcItCS0L7RgNC+0LHRjNC10LJcIixcbiAgICBcItCk0LXQtNC+0YDQvtCyXCIsXG4gICAgXCLQnNC40YXQsNC50LvQvtCyXCIsXG4gICAgXCLQkdC10LvRj9C10LJcIixcbiAgICBcItCi0LDRgNCw0YHQvtCyXCIsXG4gICAgXCLQkdC10LvQvtCyXCIsXG4gICAgXCLQmtC+0LzQsNGA0L7QslwiLFxuICAgIFwi0J7RgNC70L7QslwiLFxuICAgIFwi0JrQuNGB0LXQu9C10LJcIixcbiAgICBcItCc0LDQutCw0YDQvtCyXCIsXG4gICAgXCLQkNC90LTRgNC10LXQslwiLFxuICAgIFwi0JrQvtCy0LDQu9C10LJcIixcbiAgICBcItCY0LvRjNC40L1cIixcbiAgICBcItCT0YPRgdC10LJcIixcbiAgICBcItCi0LjRgtC+0LJcIixcbiAgICBcItCa0YPQt9GM0LzQuNC9XCIsXG4gICAgXCLQmtGD0LTRgNGP0LLRhtC10LJcIixcbiAgICBcItCR0LDRgNCw0L3QvtCyXCIsXG4gICAgXCLQmtGD0LvQuNC60L7QslwiLFxuICAgIFwi0JDQu9C10LrRgdC10LXQslwiLFxuICAgIFwi0KHRgtC10L/QsNC90L7QslwiLFxuICAgIFwi0K/QutC+0LLQu9C10LJcIixcbiAgICBcItCh0L7RgNC+0LrQuNC9XCIsXG4gICAgXCLQodC10YDQs9C10LXQslwiLFxuICAgIFwi0KDQvtC80LDQvdC+0LJcIixcbiAgICBcItCX0LDRhdCw0YDQvtCyXCIsXG4gICAgXCLQkdC+0YDQuNGB0L7QslwiLFxuICAgIFwi0JrQvtGA0L7Qu9C10LJcIixcbiAgICBcItCT0LXRgNCw0YHQuNC80L7QslwiLFxuICAgIFwi0J/QvtC90L7QvNCw0YDQtdCyXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LJcIixcbiAgICBcItCb0LDQt9Cw0YDQtdCyXCIsXG4gICAgXCLQnNC10LTQstC10LTQtdCyXCIsXG4gICAgXCLQldGA0YjQvtCyXCIsXG4gICAgXCLQndC40LrQuNGC0LjQvVwiLFxuICAgIFwi0KHQvtCx0L7Qu9C10LJcIixcbiAgICBcItCg0Y/QsdC+0LJcIixcbiAgICBcItCf0L7Qu9GP0LrQvtCyXCIsXG4gICAgXCLQptCy0LXRgtC60L7QslwiLFxuICAgIFwi0JTQsNC90LjQu9C+0LJcIixcbiAgICBcItCW0YPQutC+0LJcIixcbiAgICBcItCk0YDQvtC70L7QslwiLFxuICAgIFwi0JbRg9GA0LDQstC70LXQslwiLFxuICAgIFwi0J3QuNC60L7Qu9Cw0LXQslwiLFxuICAgIFwi0JrRgNGL0LvQvtCyXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCyXCIsXG4gICAgXCLQodC40LTQvtGA0L7QslwiLFxuICAgIFwi0J7RgdC40L/QvtCyXCIsXG4gICAgXCLQkdC10LvQvtGD0YHQvtCyXCIsXG4gICAgXCLQpNC10LTQvtGC0L7QslwiLFxuICAgIFwi0JTQvtGA0L7RhNC10LXQslwiLFxuICAgIFwi0JXQs9C+0YDQvtCyXCIsXG4gICAgXCLQnNCw0YLQstC10LXQslwiLFxuICAgIFwi0JHQvtCx0YDQvtCyXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCyXCIsXG4gICAgXCLQmtCw0LvQuNC90LjQvVwiLFxuICAgIFwi0JDQvdC40YHQuNC80L7QslwiLFxuICAgIFwi0J/QtdGC0YPRhdC+0LJcIixcbiAgICBcItCQ0L3RgtC+0L3QvtCyXCIsXG4gICAgXCLQotC40LzQvtGE0LXQtdCyXCIsXG4gICAgXCLQndC40LrQuNGE0L7RgNC+0LJcIixcbiAgICBcItCS0LXRgdC10LvQvtCyXCIsXG4gICAgXCLQpNC40LvQuNC/0L/QvtCyXCIsXG4gICAgXCLQnNCw0YDQutC+0LJcIixcbiAgICBcItCR0L7Qu9GM0YjQsNC60L7QslwiLFxuICAgIFwi0KHRg9GF0LDQvdC+0LJcIixcbiAgICBcItCc0LjRgNC+0L3QvtCyXCIsXG4gICAgXCLQqNC40YDRj9C10LJcIixcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgNC+0LJcIixcbiAgICBcItCa0L7QvdC+0LLQsNC70L7QslwiLFxuICAgIFwi0KjQtdGB0YLQsNC60L7QslwiLFxuICAgIFwi0JrQsNC30LDQutC+0LJcIixcbiAgICBcItCV0YTQuNC80L7QslwiLFxuICAgIFwi0JTQtdC90LjRgdC+0LJcIixcbiAgICBcItCT0YDQvtC80L7QslwiLFxuICAgIFwi0KTQvtC80LjQvVwiLFxuICAgIFwi0JTQsNCy0YvQtNC+0LJcIixcbiAgICBcItCc0LXQu9GM0L3QuNC60L7QslwiLFxuICAgIFwi0KnQtdGA0LHQsNC60L7QslwiLFxuICAgIFwi0JHQu9C40L3QvtCyXCIsXG4gICAgXCLQmtC+0LvQtdGB0L3QuNC60L7QslwiLFxuICAgIFwi0JrQsNGA0L/QvtCyXCIsXG4gICAgXCLQkNGE0LDQvdCw0YHRjNC10LJcIixcbiAgICBcItCS0LvQsNGB0L7QslwiLFxuICAgIFwi0JzQsNGB0LvQvtCyXCIsXG4gICAgXCLQmNGB0LDQutC+0LJcIixcbiAgICBcItCi0LjRhdC+0L3QvtCyXCIsXG4gICAgXCLQkNC60YHQtdC90L7QslwiLFxuICAgIFwi0JPQsNCy0YDQuNC70L7QslwiLFxuICAgIFwi0KDQvtC00LjQvtC90L7QslwiLFxuICAgIFwi0JrQvtGC0L7QslwiLFxuICAgIFwi0JPQvtGA0LHRg9C90L7QslwiLFxuICAgIFwi0JrRg9C00YDRj9GI0L7QslwiLFxuICAgIFwi0JHRi9C60L7QslwiLFxuICAgIFwi0JfRg9C10LJcIixcbiAgICBcItCi0YDQtdGC0YzRj9C60L7QslwiLFxuICAgIFwi0KHQsNCy0LXQu9GM0LXQslwiLFxuICAgIFwi0J/QsNC90L7QslwiLFxuICAgIFwi0KDRi9Cx0LDQutC+0LJcIixcbiAgICBcItCh0YPQstC+0YDQvtCyXCIsXG4gICAgXCLQkNCx0YDQsNC80L7QslwiLFxuICAgIFwi0JLQvtGA0L7QvdC+0LJcIixcbiAgICBcItCc0YPRhdC40L1cIixcbiAgICBcItCQ0YDRhdC40L/QvtCyXCIsXG4gICAgXCLQotGA0L7RhNC40LzQvtCyXCIsXG4gICAgXCLQnNCw0YDRgtGL0L3QvtCyXCIsXG4gICAgXCLQldC80LXQu9GM0Y/QvdC+0LJcIixcbiAgICBcItCT0L7RgNGI0LrQvtCyXCIsXG4gICAgXCLQp9C10YDQvdC+0LJcIixcbiAgICBcItCe0LLRh9C40L3QvdC40LrQvtCyXCIsXG4gICAgXCLQodC10LvQtdC30L3QtdCyXCIsXG4gICAgXCLQn9Cw0L3RhNC40LvQvtCyXCIsXG4gICAgXCLQmtC+0L/Ri9C70L7QslwiLFxuICAgIFwi0JzQuNGF0LXQtdCyXCIsXG4gICAgXCLQk9Cw0LvQutC40L1cIixcbiAgICBcItCd0LDQt9Cw0YDQvtCyXCIsXG4gICAgXCLQm9C+0LHQsNC90L7QslwiLFxuICAgIFwi0JvRg9C60LjQvVwiLFxuICAgIFwi0JHQtdC70Y/QutC+0LJcIixcbiAgICBcItCf0L7RgtCw0L/QvtCyXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCyXCIsXG4gICAgXCLQpdC+0YXQu9C+0LJcIixcbiAgICBcItCW0LTQsNC90L7QslwiLFxuICAgIFwi0J3QsNGD0LzQvtCyXCIsXG4gICAgXCLQqNC40LvQvtCyXCIsXG4gICAgXCLQktC+0YDQvtC90YbQvtCyXCIsXG4gICAgXCLQldGA0LzQsNC60L7QslwiLFxuICAgIFwi0JTRgNC+0LfQtNC+0LJcIixcbiAgICBcItCY0LPQvdCw0YLRjNC10LJcIixcbiAgICBcItCh0LDQstC40L1cIixcbiAgICBcItCb0L7Qs9C40L3QvtCyXCIsXG4gICAgXCLQodCw0YTQvtC90L7QslwiLFxuICAgIFwi0JrQsNC/0YPRgdGC0LjQvVwiLFxuICAgIFwi0JrQuNGA0LjQu9C70L7QslwiLFxuICAgIFwi0JzQvtC40YHQtdC10LJcIixcbiAgICBcItCV0LvQuNGB0LXQtdCyXCIsXG4gICAgXCLQmtC+0YjQtdC70LXQslwiLFxuICAgIFwi0JrQvtGB0YLQuNC9XCIsXG4gICAgXCLQk9C+0YDQsdCw0YfQtdCyXCIsXG4gICAgXCLQntGA0LXRhdC+0LJcIixcbiAgICBcItCV0YTRgNC10LzQvtCyXCIsXG4gICAgXCLQmNGB0LDQtdCyXCIsXG4gICAgXCLQldCy0LTQvtC60LjQvNC+0LJcIixcbiAgICBcItCa0LDQu9Cw0YjQvdC40LrQvtCyXCIsXG4gICAgXCLQmtCw0LHQsNC90L7QslwiLFxuICAgIFwi0J3QvtGB0LrQvtCyXCIsXG4gICAgXCLQrtC00LjQvVwiLFxuICAgIFwi0JrRg9C70LDQs9C40L1cIixcbiAgICBcItCb0LDQv9C40L1cIixcbiAgICBcItCf0YDQvtGF0L7RgNC+0LJcIixcbiAgICBcItCd0LXRgdGC0LXRgNC+0LJcIixcbiAgICBcItCl0LDRgNC40YLQvtC90L7QslwiLFxuICAgIFwi0JDQs9Cw0YTQvtC90L7QslwiLFxuICAgIFwi0JzRg9GA0LDQstGM0LXQslwiLFxuICAgIFwi0JvQsNGA0LjQvtC90L7QslwiLFxuICAgIFwi0KTQtdC00L7RgdC10LXQslwiLFxuICAgIFwi0JfQuNC80LjQvVwiLFxuICAgIFwi0J/QsNGF0L7QvNC+0LJcIixcbiAgICBcItCo0YPQsdC40L1cIixcbiAgICBcItCY0LPQvdCw0YLQvtCyXCIsXG4gICAgXCLQpNC40LvQsNGC0L7QslwiLFxuICAgIFwi0JrRgNGO0LrQvtCyXCIsXG4gICAgXCLQoNC+0LPQvtCyXCIsXG4gICAgXCLQmtGD0LvQsNC60L7QslwiLFxuICAgIFwi0KLQtdGA0LXQvdGC0YzQtdCyXCIsXG4gICAgXCLQnNC+0LvRh9Cw0L3QvtCyXCIsXG4gICAgXCLQktC70LDQtNC40LzQuNGA0L7QslwiLFxuICAgIFwi0JDRgNGC0LXQvNGM0LXQslwiLFxuICAgIFwi0JPRg9GA0YzQtdCyXCIsXG4gICAgXCLQl9C40L3QvtCy0YzQtdCyXCIsXG4gICAgXCLQk9GA0LjRiNC40L1cIixcbiAgICBcItCa0L7QvdC+0L3QvtCyXCIsXG4gICAgXCLQlNC10LzQtdC90YLRjNC10LJcIixcbiAgICBcItCh0LjRgtC90LjQutC+0LJcIixcbiAgICBcItCh0LjQvNC+0L3QvtCyXCIsXG4gICAgXCLQnNC40YjQuNC9XCIsXG4gICAgXCLQpNCw0LTQtdC10LJcIixcbiAgICBcItCa0L7QvNC40YHRgdCw0YDQvtCyXCIsXG4gICAgXCLQnNCw0LzQvtC90YLQvtCyXCIsXG4gICAgXCLQndC+0YHQvtCyXCIsXG4gICAgXCLQk9GD0LvRj9C10LJcIixcbiAgICBcItCo0LDRgNC+0LJcIixcbiAgICBcItCj0YHRgtC40L3QvtCyXCIsXG4gICAgXCLQktC40YjQvdGP0LrQvtCyXCIsXG4gICAgXCLQldCy0YHQtdC10LJcIixcbiAgICBcItCb0LDQstGA0LXQvdGC0YzQtdCyXCIsXG4gICAgXCLQkdGA0LDQs9C40L1cIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QslwiLFxuICAgIFwi0JrQvtGA0L3QuNC70L7QslwiLFxuICAgIFwi0JDQstC00LXQtdCyXCIsXG4gICAgXCLQl9GL0LrQvtCyXCIsXG4gICAgXCLQkdC40YDRjtC60L7QslwiLFxuICAgIFwi0KjQsNGA0LDQv9C+0LJcIixcbiAgICBcItCd0LjQutC+0L3QvtCyXCIsXG4gICAgXCLQqdGD0LrQuNC9XCIsXG4gICAgXCLQlNGM0Y/Rh9C60L7QslwiLFxuICAgIFwi0J7QtNC40L3RhtC+0LJcIixcbiAgICBcItCh0LDQt9C+0L3QvtCyXCIsXG4gICAgXCLQr9C60YPRiNC10LJcIixcbiAgICBcItCa0YDQsNGB0LjQu9GM0L3QuNC60L7QslwiLFxuICAgIFwi0JPQvtGA0LTQtdC10LJcIixcbiAgICBcItCh0LDQvNC+0LnQu9C+0LJcIixcbiAgICBcItCa0L3Rj9C30LXQslwiLFxuICAgIFwi0JHQtdGB0L/QsNC70L7QslwiLFxuICAgIFwi0KPQstCw0YDQvtCyXCIsXG4gICAgXCLQqNCw0YjQutC+0LJcIixcbiAgICBcItCR0L7QsdGL0LvQtdCyXCIsXG4gICAgXCLQlNC+0YDQvtC90LjQvVwiLFxuICAgIFwi0JHQtdC70L7Qt9C10YDQvtCyXCIsXG4gICAgXCLQoNC+0LbQutC+0LJcIixcbiAgICBcItCh0LDQvNGB0L7QvdC+0LJcIixcbiAgICBcItCc0Y/RgdC90LjQutC+0LJcIixcbiAgICBcItCb0LjRhdCw0YfQtdCyXCIsXG4gICAgXCLQkdGD0YDQvtCyXCIsXG4gICAgXCLQodGL0YHQvtC10LJcIixcbiAgICBcItCk0L7QvNC40YfQtdCyXCIsXG4gICAgXCLQoNGD0YHQsNC60L7QslwiLFxuICAgIFwi0KHRgtGA0LXQu9C60L7QslwiLFxuICAgIFwi0JPRg9GJ0LjQvVwiLFxuICAgIFwi0KLQtdGC0LXRgNC40L1cIixcbiAgICBcItCa0L7Qu9C+0LHQvtCyXCIsXG4gICAgXCLQodGD0LHQsdC+0YLQuNC9XCIsXG4gICAgXCLQpNC+0LrQuNC9XCIsXG4gICAgXCLQkdC70L7RhdC40L1cIixcbiAgICBcItCh0LXQu9C40LLQtdGA0YHRgtC+0LJcIixcbiAgICBcItCf0LXRgdGC0L7QslwiLFxuICAgIFwi0JrQvtC90LTRgNCw0YLRjNC10LJcIixcbiAgICBcItCh0LjQu9C40L1cIixcbiAgICBcItCc0LXRgNC60YPRiNC10LJcIixcbiAgICBcItCb0YvRgtC60LjQvVwiLFxuICAgIFwi0KLRg9GA0L7QslwiXG4gIF0sXG4gIFwiZmVtYWxlX2ZpcnN0X25hbWVcIjogW1xuICAgIFwi0JDQvdC90LBcIixcbiAgICBcItCQ0LvRkdC90LBcIixcbiAgICBcItCQ0LvQtdCy0YLQuNC90LBcIixcbiAgICBcItCQ0LvQtdC60YHQsNC90LTRgNCwXCIsXG4gICAgXCLQkNC70LjQvdCwXCIsXG4gICAgXCLQkNC70LvQsFwiLFxuICAgIFwi0JDQvdCw0YHRgtCw0YHQuNGPXCIsXG4gICAgXCLQkNC90LPQtdC70LjQvdCwXCIsXG4gICAgXCLQkNC90LbQtdC70LBcIixcbiAgICBcItCQ0L3QttC10LvQuNC60LBcIixcbiAgICBcItCQ0L3RgtC+0L3QuNC00LBcIixcbiAgICBcItCQ0L3RgtC+0L3QuNC90LBcIixcbiAgICBcItCQ0L3RhNC40YHQsFwiLFxuICAgIFwi0JDRgNC40L3QsFwiLFxuICAgIFwi0JLQsNC70LXQvdGC0LjQvdCwXCIsXG4gICAgXCLQktCw0LvQtdGA0LjRj1wiLFxuICAgIFwi0JLQsNGA0LLQsNGA0LBcIixcbiAgICBcItCS0LDRgdC40LvQuNGB0LBcIixcbiAgICBcItCS0LXRgNCwXCIsXG4gICAgXCLQktC10YDQvtC90LjQutCwXCIsXG4gICAgXCLQktC40LrRgtC+0YDQuNGPXCIsXG4gICAgXCLQk9Cw0LvQuNC90LBcIixcbiAgICBcItCU0LDRgNGM0Y9cIixcbiAgICBcItCV0LLQs9C10L3QuNGPXCIsXG4gICAgXCLQldC60LDRgtC10YDQuNC90LBcIixcbiAgICBcItCV0LvQtdC90LBcIixcbiAgICBcItCV0LvQuNC30LDQstC10YLQsFwiLFxuICAgIFwi0JbQsNC90L3QsFwiLFxuICAgIFwi0JfQuNC90LDQuNC00LBcIixcbiAgICBcItCX0L7Rj1wiLFxuICAgIFwi0JjRgNC40L3QsFwiLFxuICAgIFwi0JrQuNGA0LBcIixcbiAgICBcItCa0LvQsNCy0LTQuNGPXCIsXG4gICAgXCLQmtGB0LXQvdC40Y9cIixcbiAgICBcItCb0LDRgNC40YHQsFwiLFxuICAgIFwi0JvQuNC00LjRj1wiLFxuICAgIFwi0JvRjtCx0L7QstGMXCIsXG4gICAgXCLQm9GO0LTQvNC40LvQsFwiLFxuICAgIFwi0JzQsNGA0LPQsNGA0LjRgtCwXCIsXG4gICAgXCLQnNCw0YDQuNC90LBcIixcbiAgICBcItCc0LDRgNC40Y9cIixcbiAgICBcItCd0LDQtNC10LbQtNCwXCIsXG4gICAgXCLQndCw0YLQsNC70YzRj1wiLFxuICAgIFwi0J3QuNC90LBcIixcbiAgICBcItCe0LrRgdCw0L3QsFwiLFxuICAgIFwi0J7Qu9GM0LPQsFwiLFxuICAgIFwi0KDQsNC40YHQsFwiLFxuICAgIFwi0KDQtdCz0LjQvdCwXCIsXG4gICAgXCLQoNC40LzQvNCwXCIsXG4gICAgXCLQodCy0LXRgtC70LDQvdCwXCIsXG4gICAgXCLQodC+0YTQuNGPXCIsXG4gICAgXCLQotCw0LjRgdC40Y9cIixcbiAgICBcItCi0LDQvNCw0YDQsFwiLFxuICAgIFwi0KLQsNGC0YzRj9C90LBcIixcbiAgICBcItCj0LvRjNGP0L3QsFwiLFxuICAgIFwi0K7Qu9C40Y9cIlxuICBdLFxuICBcImZlbWFsZV9taWRkbGVfbmFtZVwiOiBbXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsFwiLFxuICAgIFwi0JDQu9C10LrRgdC10LXQstC90LBcIixcbiAgICBcItCQ0LvRjNCx0LXRgNGC0L7QstC90LBcIixcbiAgICBcItCQ0L3QsNGC0L7Qu9GM0LXQstC90LBcIixcbiAgICBcItCQ0L3QtNGA0LXQtdCy0L3QsFwiLFxuICAgIFwi0JDQvdGC0L7QvdC+0LLQvdCwXCIsXG4gICAgXCLQkNGA0LrQsNC00YzQtdCy0L3QsFwiLFxuICAgIFwi0JDRgNGB0LXQvdGM0LXQstC90LBcIixcbiAgICBcItCQ0YDRgtGR0LzQvtCy0L3QsFwiLFxuICAgIFwi0JHQvtGA0LjRgdC+0LLQvdCwXCIsXG4gICAgXCLQktCw0LTQuNC80L7QstC90LBcIixcbiAgICBcItCS0LDQu9C10L3RgtC40L3QvtCy0L3QsFwiLFxuICAgIFwi0JLQsNC70LXRgNGM0LXQstC90LBcIixcbiAgICBcItCS0LDRgdC40LvRjNC10LLQvdCwXCIsXG4gICAgXCLQktC40LrRgtC+0YDQvtCy0L3QsFwiLFxuICAgIFwi0JLQuNGC0LDQu9GM0LXQstC90LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YDQvtCy0L3QsFwiLFxuICAgIFwi0JLQu9Cw0LTQuNGB0LvQsNCy0L7QstC90LBcIixcbiAgICBcItCS0Y/Rh9C10YHQu9Cw0LLQvtCy0L3QsFwiLFxuICAgIFwi0JPQtdC90L3QsNC00YzQtdCy0L3QsFwiLFxuICAgIFwi0JPQtdC+0YDQs9C40LXQstC90LBcIixcbiAgICBcItCT0LXRgNC80LDQvdC+0LLQvdCwXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LLQvdCwXCIsXG4gICAgXCLQlNCw0L3QuNC40LvQvtCy0L3QsFwiLFxuICAgIFwi0JTQtdC90LjRgdC+0LLQvdCwXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCy0L3QsFwiLFxuICAgIFwi0JXQstCz0LXQvdGM0LXQstC90LBcIixcbiAgICBcItCV0LPQvtGA0L7QstC90LBcIixcbiAgICBcItCY0LLQsNC90L7QstC90LBcIixcbiAgICBcItCY0LPQvdCw0YLRjNC10LLQvdCwXCIsXG4gICAgXCLQmNCz0L7RgNC10LLQvdCwXCIsXG4gICAgXCLQmNC70YzQuNC90LjRh9C90LBcIixcbiAgICBcItCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC90LBcIixcbiAgICBcItCb0LDQstGA0LXQvdGC0YzQtdCy0L3QsFwiLFxuICAgIFwi0JvQtdC+0L3QuNC00L7QstC90LBcIixcbiAgICBcItCc0LDQutCw0YDQvtCy0L3QsFwiLFxuICAgIFwi0JzQsNC60YHQuNC80L7QstC90LBcIixcbiAgICBcItCc0LDRgtCy0LXQtdCy0L3QsFwiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QstC90LBcIixcbiAgICBcItCd0LjQutC40YLQuNGH0L3QsFwiLFxuICAgIFwi0J3QuNC60L7Qu9Cw0LXQstC90LBcIixcbiAgICBcItCe0LvQtdCz0L7QstC90LBcIixcbiAgICBcItCg0L7QvNCw0L3QvtCy0L3QsFwiLFxuICAgIFwi0KHQtdC80ZHQvdC+0LLQvdCwXCIsXG4gICAgXCLQodC10YDQs9C10LXQstC90LBcIixcbiAgICBcItCh0YLQsNC90LjRgdC70LDQstC+0LLQvdCwXCIsXG4gICAgXCLQodGC0LXQv9Cw0L3QvtCy0L3QsFwiLFxuICAgIFwi0KTRkdC00L7RgNC+0LLQvdCwXCIsXG4gICAgXCLQrdC00YPQsNGA0LTQvtCy0L3QsFwiLFxuICAgIFwi0K7RgNGM0LXQstC90LBcIixcbiAgICBcItCv0YDQvtGB0LvQsNCy0L7QstC90LBcIlxuICBdLFxuICBcImZlbWFsZV9sYXN0X25hbWVcIjogW1xuICAgIFwi0KHQvNC40YDQvdC+0LLQsFwiLFxuICAgIFwi0JjQstCw0L3QvtCy0LBcIixcbiAgICBcItCa0YPQt9C90LXRhtC+0LLQsFwiLFxuICAgIFwi0J/QvtC/0L7QstCwXCIsXG4gICAgXCLQodC+0LrQvtC70L7QstCwXCIsXG4gICAgXCLQm9C10LHQtdC00LXQstCwXCIsXG4gICAgXCLQmtC+0LfQu9C+0LLQsFwiLFxuICAgIFwi0J3QvtCy0LjQutC+0LLQsFwiLFxuICAgIFwi0JzQvtGA0L7Qt9C+0LLQsFwiLFxuICAgIFwi0J/QtdGC0YDQvtCy0LBcIixcbiAgICBcItCS0L7Qu9C60L7QstCwXCIsXG4gICAgXCLQodC+0LvQvtCy0YzQtdCy0LBcIixcbiAgICBcItCS0LDRgdC40LvRjNC10LLQsFwiLFxuICAgIFwi0JfQsNC50YbQtdCy0LBcIixcbiAgICBcItCf0LDQstC70L7QstCwXCIsXG4gICAgXCLQodC10LzQtdC90L7QstCwXCIsXG4gICAgXCLQk9C+0LvRg9Cx0LXQstCwXCIsXG4gICAgXCLQktC40L3QvtCz0YDQsNC00L7QstCwXCIsXG4gICAgXCLQkdC+0LPQtNCw0L3QvtCy0LBcIixcbiAgICBcItCS0L7RgNC+0LHRjNC10LLQsFwiLFxuICAgIFwi0KTQtdC00L7RgNC+0LLQsFwiLFxuICAgIFwi0JzQuNGF0LDQudC70L7QstCwXCIsXG4gICAgXCLQkdC10LvRj9C10LLQsFwiLFxuICAgIFwi0KLQsNGA0LDRgdC+0LLQsFwiLFxuICAgIFwi0JHQtdC70L7QstCwXCIsXG4gICAgXCLQmtC+0LzQsNGA0L7QstCwXCIsXG4gICAgXCLQntGA0LvQvtCy0LBcIixcbiAgICBcItCa0LjRgdC10LvQtdCy0LBcIixcbiAgICBcItCc0LDQutCw0YDQvtCy0LBcIixcbiAgICBcItCQ0L3QtNGA0LXQtdCy0LBcIixcbiAgICBcItCa0L7QstCw0LvQtdCy0LBcIixcbiAgICBcItCY0LvRjNC40L3QsFwiLFxuICAgIFwi0JPRg9GB0LXQstCwXCIsXG4gICAgXCLQotC40YLQvtCy0LBcIixcbiAgICBcItCa0YPQt9GM0LzQuNC90LBcIixcbiAgICBcItCa0YPQtNGA0Y/QstGG0LXQstCwXCIsXG4gICAgXCLQkdCw0YDQsNC90L7QstCwXCIsXG4gICAgXCLQmtGD0LvQuNC60L7QstCwXCIsXG4gICAgXCLQkNC70LXQutGB0LXQtdCy0LBcIixcbiAgICBcItCh0YLQtdC/0LDQvdC+0LLQsFwiLFxuICAgIFwi0K/QutC+0LLQu9C10LLQsFwiLFxuICAgIFwi0KHQvtGA0L7QutC40L3QsFwiLFxuICAgIFwi0KHQtdGA0LPQtdC10LLQsFwiLFxuICAgIFwi0KDQvtC80LDQvdC+0LLQsFwiLFxuICAgIFwi0JfQsNGF0LDRgNC+0LLQsFwiLFxuICAgIFwi0JHQvtGA0LjRgdC+0LLQsFwiLFxuICAgIFwi0JrQvtGA0L7Qu9C10LLQsFwiLFxuICAgIFwi0JPQtdGA0LDRgdC40LzQvtCy0LBcIixcbiAgICBcItCf0L7QvdC+0LzQsNGA0LXQstCwXCIsXG4gICAgXCLQk9GA0LjQs9C+0YDRjNC10LLQsFwiLFxuICAgIFwi0JvQsNC30LDRgNC10LLQsFwiLFxuICAgIFwi0JzQtdC00LLQtdC00LXQstCwXCIsXG4gICAgXCLQldGA0YjQvtCy0LBcIixcbiAgICBcItCd0LjQutC40YLQuNC90LBcIixcbiAgICBcItCh0L7QsdC+0LvQtdCy0LBcIixcbiAgICBcItCg0Y/QsdC+0LLQsFwiLFxuICAgIFwi0J/QvtC70Y/QutC+0LLQsFwiLFxuICAgIFwi0KbQstC10YLQutC+0LLQsFwiLFxuICAgIFwi0JTQsNC90LjQu9C+0LLQsFwiLFxuICAgIFwi0JbRg9C60L7QstCwXCIsXG4gICAgXCLQpNGA0L7Qu9C+0LLQsFwiLFxuICAgIFwi0JbRg9GA0LDQstC70LXQstCwXCIsXG4gICAgXCLQndC40LrQvtC70LDQtdCy0LBcIixcbiAgICBcItCa0YDRi9C70L7QstCwXCIsXG4gICAgXCLQnNCw0LrRgdC40LzQvtCy0LBcIixcbiAgICBcItCh0LjQtNC+0YDQvtCy0LBcIixcbiAgICBcItCe0YHQuNC/0L7QstCwXCIsXG4gICAgXCLQkdC10LvQvtGD0YHQvtCy0LBcIixcbiAgICBcItCk0LXQtNC+0YLQvtCy0LBcIixcbiAgICBcItCU0L7RgNC+0YTQtdC10LLQsFwiLFxuICAgIFwi0JXQs9C+0YDQvtCy0LBcIixcbiAgICBcItCc0LDRgtCy0LXQtdCy0LBcIixcbiAgICBcItCR0L7QsdGA0L7QstCwXCIsXG4gICAgXCLQlNC80LjRgtGA0LjQtdCy0LBcIixcbiAgICBcItCa0LDQu9C40L3QuNC90LBcIixcbiAgICBcItCQ0L3QuNGB0LjQvNC+0LLQsFwiLFxuICAgIFwi0J/QtdGC0YPRhdC+0LLQsFwiLFxuICAgIFwi0JDQvdGC0L7QvdC+0LLQsFwiLFxuICAgIFwi0KLQuNC80L7RhNC10LXQstCwXCIsXG4gICAgXCLQndC40LrQuNGE0L7RgNC+0LLQsFwiLFxuICAgIFwi0JLQtdGB0LXQu9C+0LLQsFwiLFxuICAgIFwi0KTQuNC70LjQv9C/0L7QstCwXCIsXG4gICAgXCLQnNCw0YDQutC+0LLQsFwiLFxuICAgIFwi0JHQvtC70YzRiNCw0LrQvtCy0LBcIixcbiAgICBcItCh0YPRhdCw0L3QvtCy0LBcIixcbiAgICBcItCc0LjRgNC+0L3QvtCy0LBcIixcbiAgICBcItCo0LjRgNGP0LXQstCwXCIsXG4gICAgXCLQkNC70LXQutGB0LDQvdC00YDQvtCy0LBcIixcbiAgICBcItCa0L7QvdC+0LLQsNC70L7QstCwXCIsXG4gICAgXCLQqNC10YHRgtCw0LrQvtCy0LBcIixcbiAgICBcItCa0LDQt9Cw0LrQvtCy0LBcIixcbiAgICBcItCV0YTQuNC80L7QstCwXCIsXG4gICAgXCLQlNC10L3QuNGB0L7QstCwXCIsXG4gICAgXCLQk9GA0L7QvNC+0LLQsFwiLFxuICAgIFwi0KTQvtC80LjQvdCwXCIsXG4gICAgXCLQlNCw0LLRi9C00L7QstCwXCIsXG4gICAgXCLQnNC10LvRjNC90LjQutC+0LLQsFwiLFxuICAgIFwi0KnQtdGA0LHQsNC60L7QstCwXCIsXG4gICAgXCLQkdC70LjQvdC+0LLQsFwiLFxuICAgIFwi0JrQvtC70LXRgdC90LjQutC+0LLQsFwiLFxuICAgIFwi0JrQsNGA0L/QvtCy0LBcIixcbiAgICBcItCQ0YTQsNC90LDRgdGM0LXQstCwXCIsXG4gICAgXCLQktC70LDRgdC+0LLQsFwiLFxuICAgIFwi0JzQsNGB0LvQvtCy0LBcIixcbiAgICBcItCY0YHQsNC60L7QstCwXCIsXG4gICAgXCLQotC40YXQvtC90L7QstCwXCIsXG4gICAgXCLQkNC60YHQtdC90L7QstCwXCIsXG4gICAgXCLQk9Cw0LLRgNC40LvQvtCy0LBcIixcbiAgICBcItCg0L7QtNC40L7QvdC+0LLQsFwiLFxuICAgIFwi0JrQvtGC0L7QstCwXCIsXG4gICAgXCLQk9C+0YDQsdGD0L3QvtCy0LBcIixcbiAgICBcItCa0YPQtNGA0Y/RiNC+0LLQsFwiLFxuICAgIFwi0JHRi9C60L7QstCwXCIsXG4gICAgXCLQl9GD0LXQstCwXCIsXG4gICAgXCLQotGA0LXRgtGM0Y/QutC+0LLQsFwiLFxuICAgIFwi0KHQsNCy0LXQu9GM0LXQstCwXCIsXG4gICAgXCLQn9Cw0L3QvtCy0LBcIixcbiAgICBcItCg0YvQsdCw0LrQvtCy0LBcIixcbiAgICBcItCh0YPQstC+0YDQvtCy0LBcIixcbiAgICBcItCQ0LHRgNCw0LzQvtCy0LBcIixcbiAgICBcItCS0L7RgNC+0L3QvtCy0LBcIixcbiAgICBcItCc0YPRhdC40L3QsFwiLFxuICAgIFwi0JDRgNGF0LjQv9C+0LLQsFwiLFxuICAgIFwi0KLRgNC+0YTQuNC80L7QstCwXCIsXG4gICAgXCLQnNCw0YDRgtGL0L3QvtCy0LBcIixcbiAgICBcItCV0LzQtdC70YzRj9C90L7QstCwXCIsXG4gICAgXCLQk9C+0YDRiNC60L7QstCwXCIsXG4gICAgXCLQp9C10YDQvdC+0LLQsFwiLFxuICAgIFwi0J7QstGH0LjQvdC90LjQutC+0LLQsFwiLFxuICAgIFwi0KHQtdC70LXQt9C90LXQstCwXCIsXG4gICAgXCLQn9Cw0L3RhNC40LvQvtCy0LBcIixcbiAgICBcItCa0L7Qv9GL0LvQvtCy0LBcIixcbiAgICBcItCc0LjRhdC10LXQstCwXCIsXG4gICAgXCLQk9Cw0LvQutC40L3QsFwiLFxuICAgIFwi0J3QsNC30LDRgNC+0LLQsFwiLFxuICAgIFwi0JvQvtCx0LDQvdC+0LLQsFwiLFxuICAgIFwi0JvRg9C60LjQvdCwXCIsXG4gICAgXCLQkdC10LvRj9C60L7QstCwXCIsXG4gICAgXCLQn9C+0YLQsNC/0L7QstCwXCIsXG4gICAgXCLQndC10LrRgNCw0YHQvtCy0LBcIixcbiAgICBcItCl0L7RhdC70L7QstCwXCIsXG4gICAgXCLQltC00LDQvdC+0LLQsFwiLFxuICAgIFwi0J3QsNGD0LzQvtCy0LBcIixcbiAgICBcItCo0LjQu9C+0LLQsFwiLFxuICAgIFwi0JLQvtGA0L7QvdGG0L7QstCwXCIsXG4gICAgXCLQldGA0LzQsNC60L7QstCwXCIsXG4gICAgXCLQlNGA0L7Qt9C00L7QstCwXCIsXG4gICAgXCLQmNCz0L3QsNGC0YzQtdCy0LBcIixcbiAgICBcItCh0LDQstC40L3QsFwiLFxuICAgIFwi0JvQvtCz0LjQvdC+0LLQsFwiLFxuICAgIFwi0KHQsNGE0L7QvdC+0LLQsFwiLFxuICAgIFwi0JrQsNC/0YPRgdGC0LjQvdCwXCIsXG4gICAgXCLQmtC40YDQuNC70LvQvtCy0LBcIixcbiAgICBcItCc0L7QuNGB0LXQtdCy0LBcIixcbiAgICBcItCV0LvQuNGB0LXQtdCy0LBcIixcbiAgICBcItCa0L7RiNC10LvQtdCy0LBcIixcbiAgICBcItCa0L7RgdGC0LjQvdCwXCIsXG4gICAgXCLQk9C+0YDQsdCw0YfQtdCy0LBcIixcbiAgICBcItCe0YDQtdGF0L7QstCwXCIsXG4gICAgXCLQldGE0YDQtdC80L7QstCwXCIsXG4gICAgXCLQmNGB0LDQtdCy0LBcIixcbiAgICBcItCV0LLQtNC+0LrQuNC80L7QstCwXCIsXG4gICAgXCLQmtCw0LvQsNGI0L3QuNC60L7QstCwXCIsXG4gICAgXCLQmtCw0LHQsNC90L7QstCwXCIsXG4gICAgXCLQndC+0YHQutC+0LLQsFwiLFxuICAgIFwi0K7QtNC40L3QsFwiLFxuICAgIFwi0JrRg9C70LDQs9C40L3QsFwiLFxuICAgIFwi0JvQsNC/0LjQvdCwXCIsXG4gICAgXCLQn9GA0L7RhdC+0YDQvtCy0LBcIixcbiAgICBcItCd0LXRgdGC0LXRgNC+0LLQsFwiLFxuICAgIFwi0KXQsNGA0LjRgtC+0L3QvtCy0LBcIixcbiAgICBcItCQ0LPQsNGE0L7QvdC+0LLQsFwiLFxuICAgIFwi0JzRg9GA0LDQstGM0LXQstCwXCIsXG4gICAgXCLQm9Cw0YDQuNC+0L3QvtCy0LBcIixcbiAgICBcItCk0LXQtNC+0YHQtdC10LLQsFwiLFxuICAgIFwi0JfQuNC80LjQvdCwXCIsXG4gICAgXCLQn9Cw0YXQvtC80L7QstCwXCIsXG4gICAgXCLQqNGD0LHQuNC90LBcIixcbiAgICBcItCY0LPQvdCw0YLQvtCy0LBcIixcbiAgICBcItCk0LjQu9Cw0YLQvtCy0LBcIixcbiAgICBcItCa0YDRjtC60L7QstCwXCIsXG4gICAgXCLQoNC+0LPQvtCy0LBcIixcbiAgICBcItCa0YPQu9Cw0LrQvtCy0LBcIixcbiAgICBcItCi0LXRgNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQnNC+0LvRh9Cw0L3QvtCy0LBcIixcbiAgICBcItCS0LvQsNC00LjQvNC40YDQvtCy0LBcIixcbiAgICBcItCQ0YDRgtC10LzRjNC10LLQsFwiLFxuICAgIFwi0JPRg9GA0YzQtdCy0LBcIixcbiAgICBcItCX0LjQvdC+0LLRjNC10LLQsFwiLFxuICAgIFwi0JPRgNC40YjQuNC90LBcIixcbiAgICBcItCa0L7QvdC+0L3QvtCy0LBcIixcbiAgICBcItCU0LXQvNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQodC40YLQvdC40LrQvtCy0LBcIixcbiAgICBcItCh0LjQvNC+0L3QvtCy0LBcIixcbiAgICBcItCc0LjRiNC40L3QsFwiLFxuICAgIFwi0KTQsNC00LXQtdCy0LBcIixcbiAgICBcItCa0L7QvNC40YHRgdCw0YDQvtCy0LBcIixcbiAgICBcItCc0LDQvNC+0L3RgtC+0LLQsFwiLFxuICAgIFwi0J3QvtGB0L7QstCwXCIsXG4gICAgXCLQk9GD0LvRj9C10LLQsFwiLFxuICAgIFwi0KjQsNGA0L7QstCwXCIsXG4gICAgXCLQo9GB0YLQuNC90L7QstCwXCIsXG4gICAgXCLQktC40YjQvdGP0LrQvtCy0LBcIixcbiAgICBcItCV0LLRgdC10LXQstCwXCIsXG4gICAgXCLQm9Cw0LLRgNC10L3RgtGM0LXQstCwXCIsXG4gICAgXCLQkdGA0LDQs9C40L3QsFwiLFxuICAgIFwi0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LBcIixcbiAgICBcItCa0L7RgNC90LjQu9C+0LLQsFwiLFxuICAgIFwi0JDQstC00LXQtdCy0LBcIixcbiAgICBcItCX0YvQutC+0LLQsFwiLFxuICAgIFwi0JHQuNGA0Y7QutC+0LLQsFwiLFxuICAgIFwi0KjQsNGA0LDQv9C+0LLQsFwiLFxuICAgIFwi0J3QuNC60L7QvdC+0LLQsFwiLFxuICAgIFwi0KnRg9C60LjQvdCwXCIsXG4gICAgXCLQlNGM0Y/Rh9C60L7QstCwXCIsXG4gICAgXCLQntC00LjQvdGG0L7QstCwXCIsXG4gICAgXCLQodCw0LfQvtC90L7QstCwXCIsXG4gICAgXCLQr9C60YPRiNC10LLQsFwiLFxuICAgIFwi0JrRgNCw0YHQuNC70YzQvdC40LrQvtCy0LBcIixcbiAgICBcItCT0L7RgNC00LXQtdCy0LBcIixcbiAgICBcItCh0LDQvNC+0LnQu9C+0LLQsFwiLFxuICAgIFwi0JrQvdGP0LfQtdCy0LBcIixcbiAgICBcItCR0LXRgdC/0LDQu9C+0LLQsFwiLFxuICAgIFwi0KPQstCw0YDQvtCy0LBcIixcbiAgICBcItCo0LDRiNC60L7QstCwXCIsXG4gICAgXCLQkdC+0LHRi9C70LXQstCwXCIsXG4gICAgXCLQlNC+0YDQvtC90LjQvdCwXCIsXG4gICAgXCLQkdC10LvQvtC30LXRgNC+0LLQsFwiLFxuICAgIFwi0KDQvtC20LrQvtCy0LBcIixcbiAgICBcItCh0LDQvNGB0L7QvdC+0LLQsFwiLFxuICAgIFwi0JzRj9GB0L3QuNC60L7QstCwXCIsXG4gICAgXCLQm9C40YXQsNGH0LXQstCwXCIsXG4gICAgXCLQkdGD0YDQvtCy0LBcIixcbiAgICBcItCh0YvRgdC+0LXQstCwXCIsXG4gICAgXCLQpNC+0LzQuNGH0LXQstCwXCIsXG4gICAgXCLQoNGD0YHQsNC60L7QstCwXCIsXG4gICAgXCLQodGC0YDQtdC70LrQvtCy0LBcIixcbiAgICBcItCT0YPRidC40L3QsFwiLFxuICAgIFwi0KLQtdGC0LXRgNC40L3QsFwiLFxuICAgIFwi0JrQvtC70L7QsdC+0LLQsFwiLFxuICAgIFwi0KHRg9Cx0LHQvtGC0LjQvdCwXCIsXG4gICAgXCLQpNC+0LrQuNC90LBcIixcbiAgICBcItCR0LvQvtGF0LjQvdCwXCIsXG4gICAgXCLQodC10LvQuNCy0LXRgNGB0YLQvtCy0LBcIixcbiAgICBcItCf0LXRgdGC0L7QstCwXCIsXG4gICAgXCLQmtC+0L3QtNGA0LDRgtGM0LXQstCwXCIsXG4gICAgXCLQodC40LvQuNC90LBcIixcbiAgICBcItCc0LXRgNC60YPRiNC10LLQsFwiLFxuICAgIFwi0JvRi9GC0LrQuNC90LBcIixcbiAgICBcItCi0YPRgNC+0LLQsFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje21hbGVfZmlyc3RfbmFtZX0gI3ttYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFsZV9sYXN0X25hbWV9ICN7bWFsZV9maXJzdF9uYW1lfVwiLFxuICAgIFwiI3ttYWxlX2ZpcnN0X25hbWV9ICN7bWFsZV9taWRkbGVfbmFtZX0gI3ttYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7bWFsZV9sYXN0X25hbWV9ICN7bWFsZV9maXJzdF9uYW1lfSAje21hbGVfbWlkZGxlX25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9sYXN0X25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9sYXN0X25hbWV9ICN7ZmVtYWxlX2ZpcnN0X25hbWV9XCIsXG4gICAgXCIje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9taWRkbGVfbmFtZX0gI3tmZW1hbGVfbGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmZW1hbGVfbGFzdF9uYW1lfSAje2ZlbWFsZV9maXJzdF9uYW1lfSAje2ZlbWFsZV9taWRkbGVfbmFtZX1cIlxuICBdXG59O1xucnUucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiKDkjIykjIyMtIyMtIyNcIlxuICBdXG59O1xucnUuY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwi0LrRgNCw0YHQvdGL0LlcIixcbiAgICBcItC30LXQu9C10L3Ri9C5XCIsXG4gICAgXCLRgdC40L3QuNC5XCIsXG4gICAgXCLQttC10LvRgtGL0LlcIixcbiAgICBcItCx0LDQs9GA0L7QstGL0LlcIixcbiAgICBcItC80Y/RgtC90YvQuVwiLFxuICAgIFwi0LfQtdC70LXQvdC+0LLQsNGC0L4t0LPQvtC70YPQsdC+0LlcIixcbiAgICBcItCx0LXQu9GL0LlcIixcbiAgICBcItGH0LXRgNC90YvQuVwiLFxuICAgIFwi0L7RgNCw0L3QttC10LLRi9C5XCIsXG4gICAgXCLRgNC+0LfQvtCy0YvQuVwiLFxuICAgIFwi0YHQtdGA0YvQuVwiLFxuICAgIFwi0LrRgNCw0YHQvdC+LdC60L7RgNC40YfQvdC10LLRi9C5XCIsXG4gICAgXCLRhNC40L7Qu9C10YLQvtCy0YvQuVwiLFxuICAgIFwi0LHQuNGA0Y7Qt9C+0LLRi9C5XCIsXG4gICAgXCLQttC10LvRgtC+LdC60L7RgNC40YfQvdC10LLRi9C5XCIsXG4gICAgXCLQvdC10LHQtdGB0L3QviDQs9C+0LvRg9Cx0L7QuVwiLFxuICAgIFwi0L7RgNCw0L3QttC10LLQvi3RgNC+0LfQvtCy0YvQuVwiLFxuICAgIFwi0YLQtdC80L3Qvi3RhNC40L7Qu9C10YLQvtCy0YvQuVwiLFxuICAgIFwi0L7RgNGF0LjQtNC90YvQuVwiLFxuICAgIFwi0L7Qu9C40LLQutC+0LLRi9C5XCIsXG4gICAgXCLQv9GD0YDQv9GD0YDQvdGL0LlcIixcbiAgICBcItC70LjQvNC+0L3QvdGL0LlcIixcbiAgICBcItC60YDQtdC80L7QstGL0LlcIixcbiAgICBcItGB0LjQvdC1LdGE0LjQvtC70LXRgtC+0LLRi9C5XCIsXG4gICAgXCLQt9C+0LvQvtGC0L7QuVwiLFxuICAgIFwi0LrRgNCw0YHQvdC+LdC/0YPRgNC/0YPRgNC90YvQuVwiLFxuICAgIFwi0LPQvtC70YPQsdC+0LlcIixcbiAgICBcItC70LDQt9GD0YDQvdGL0LlcIixcbiAgICBcItC70LjQu9C+0LLRi9C5XCIsXG4gICAgXCLRgdC10YDQtdCx0YDRj9C90YvQuVwiXG4gIF0sXG4gIFwiZGVwYXJ0bWVudFwiOiBbXG4gICAgXCLQmtC90LjQs9C4XCIsXG4gICAgXCLQpNC40LvRjNC80YtcIixcbiAgICBcItC80YPQt9GL0LrQsFwiLFxuICAgIFwi0LjQs9GA0YtcIixcbiAgICBcItCt0LvQtdC60YLRgNC+0L3QuNC60LBcIixcbiAgICBcItC60L7QvNC/0YzRjtGC0LXRgNGLXCIsXG4gICAgXCLQlNC+0LxcIixcbiAgICBcItGB0LDQtNC40L3RgdGC0YDRg9C80LXQvdGCXCIsXG4gICAgXCLQkdCw0LrQsNC70LXRj1wiLFxuICAgIFwi0LfQtNC+0YDQvtCy0YzQtVwiLFxuICAgIFwi0LrRgNCw0YHQvtGC0LBcIixcbiAgICBcItCY0LPRgNGD0YjQutC4XCIsXG4gICAgXCLQtNC10YLRgdC60L7QtVwiLFxuICAgIFwi0LTQu9GPINC80LDQu9GL0YjQtdC5XCIsXG4gICAgXCLQntC00LXQttC00LBcIixcbiAgICBcItC+0LHRg9Cy0YxcIixcbiAgICBcItGD0LrRgNCw0YjQtdC90LjRj1wiLFxuICAgIFwi0KHQv9C+0YDRglwiLFxuICAgIFwi0YLRg9GA0LjQt9C8XCIsXG4gICAgXCLQkNCy0YLQvtC80L7QsdC40LvRjNC90L7QtVwiLFxuICAgIFwi0L/RgNC+0LzRi9GI0LvQtdC90L3QvtC1XCJcbiAgXSxcbiAgXCJwcm9kdWN0X25hbWVcIjoge1xuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwi0JzQsNC70LXQvdGM0LrQuNC5XCIsXG4gICAgICBcItCt0YDQs9C+0L3QvtC80LjRh9C90YvQuVwiLFxuICAgICAgXCLQk9GA0YPQsdGL0LlcIixcbiAgICAgIFwi0JjQvdGC0LXQu9C70LXQutGC0YPQsNC70YzQvdGL0LlcIixcbiAgICAgIFwi0JLQtdC70LjQutC+0LvQtdC/0L3Ri9C5XCIsXG4gICAgICBcItCd0LXQstC10YDQvtGP0YLQvdGL0LlcIixcbiAgICAgIFwi0KTQsNC90YLQsNGB0YLQuNGH0LXRgdC60LjQuVwiLFxuICAgICAgXCLQn9GA0LDQutGC0YfQuNC90YvQuVwiLFxuICAgICAgXCLQm9C+0YHQvdGP0YnQuNC50YHRj1wiLFxuICAgICAgXCLQn9C+0YLRgNGP0YHQsNGO0YnQuNC5XCJcbiAgICBdLFxuICAgIFwibWF0ZXJpYWxcIjogW1xuICAgICAgXCLQodGC0LDQu9GM0L3QvtC5XCIsXG4gICAgICBcItCU0LXRgNC10LLRj9C90L3Ri9C5XCIsXG4gICAgICBcItCR0LXRgtC+0L3QvdGL0LlcIixcbiAgICAgIFwi0J/Qu9Cw0YHRgtC40LrQvtCy0YvQuVwiLFxuICAgICAgXCLQpdC70L7Qv9C60L7QstGL0LlcIixcbiAgICAgIFwi0JPRgNCw0L3QuNGC0L3Ri9C5XCIsXG4gICAgICBcItCg0LXQt9C40L3QvtCy0YvQuVwiXG4gICAgXSxcbiAgICBcInByb2R1Y3RcIjogW1xuICAgICAgXCLQodGC0YPQu1wiLFxuICAgICAgXCLQkNCy0YLQvtC80L7QsdC40LvRjFwiLFxuICAgICAgXCLQmtC+0LzQv9GM0Y7RgtC10YBcIixcbiAgICAgIFwi0JHQtdGA0LXRglwiLFxuICAgICAgXCLQmtGD0LvQvtC9XCIsXG4gICAgICBcItCh0YLQvtC7XCIsXG4gICAgICBcItCh0LLQuNGC0LXRgFwiLFxuICAgICAgXCLQoNC10LzQtdC90YxcIixcbiAgICAgIFwi0JHQvtGC0LjQvdC+0LpcIlxuICAgIF1cbiAgfVxufTtcbnJ1LmNvbXBhbnkgPSB7XG4gIFwicHJlZml4XCI6IFtcbiAgICBcItCY0J9cIixcbiAgICBcItCe0J7QnlwiLFxuICAgIFwi0JfQkNCeXCIsXG4gICAgXCLQntCQ0J5cIixcbiAgICBcItCd0JrQnlwiLFxuICAgIFwi0KLQodCWXCIsXG4gICAgXCLQntCfXCJcbiAgXSxcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwi0KHQvdCw0LFcIixcbiAgICBcItCi0L7RgNCzXCIsXG4gICAgXCLQn9GA0L7QvFwiLFxuICAgIFwi0KLRgNC10LnQtFwiLFxuICAgIFwi0KHQsdGL0YJcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5mZW1hbGVfZmlyc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje05hbWUubWFsZV9maXJzdF9uYW1lfVwiLFxuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5tYWxlX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje3N1ZmZpeH0je3N1ZmZpeH1cIixcbiAgICBcIiN7cHJlZml4fSAje3N1ZmZpeH0je3N1ZmZpeH0je3N1ZmZpeH1cIixcbiAgICBcIiN7cHJlZml4fSAje0FkZHJlc3MuY2l0eV9uYW1lfSN7c3VmZml4fVwiLFxuICAgIFwiI3twcmVmaXh9ICN7QWRkcmVzcy5jaXR5X25hbWV9I3tzdWZmaXh9I3tzdWZmaXh9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tBZGRyZXNzLmNpdHlfbmFtZX0je3N1ZmZpeH0je3N1ZmZpeH0je3N1ZmZpeH1cIlxuICBdXG59O1xuIiwidmFyIHNrID0ge307XG5tb2R1bGVbXCJleHBvcnRzXCJdID0gc2s7XG5zay50aXRsZSA9IFwiU2xvdmFraWFuXCI7XG5zay5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIk5vcnRoXCIsXG4gICAgXCJFYXN0XCIsXG4gICAgXCJXZXN0XCIsXG4gICAgXCJTb3V0aFwiLFxuICAgIFwiTmV3XCIsXG4gICAgXCJMYWtlXCIsXG4gICAgXCJQb3J0XCJcbiAgXSxcbiAgXCJjaXR5X3N1ZmZpeFwiOiBbXG4gICAgXCJ0b3duXCIsXG4gICAgXCJ0b25cIixcbiAgICBcImxhbmRcIixcbiAgICBcInZpbGxlXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCJidXJnaFwiLFxuICAgIFwiYm9yb3VnaFwiLFxuICAgIFwiYnVyeVwiLFxuICAgIFwidmlld1wiLFxuICAgIFwicG9ydFwiLFxuICAgIFwibW91dGhcIixcbiAgICBcInN0YWRcIixcbiAgICBcImZ1cnRcIixcbiAgICBcImNoZXN0ZXJcIixcbiAgICBcIm1vdXRoXCIsXG4gICAgXCJmb3J0XCIsXG4gICAgXCJoYXZlblwiLFxuICAgIFwic2lkZVwiLFxuICAgIFwic2hpcmVcIlxuICBdLFxuICBcImNvdW50cnlcIjogW1xuICAgIFwiQWZnYW5pc3RhblwiLFxuICAgIFwiQWZnw6Fuc2t5IGlzbGFtc2vDvSDFoXTDoXRcIixcbiAgICBcIkFsYsOhbnNrb1wiLFxuICAgIFwiQWxiw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiQWzFvsOtcnNrb1wiLFxuICAgIFwiQWzFvsOtcnNrYSBkZW1va3JhdGlja8OhIMS+dWRvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiQW5kb3Jyc2vDqSBrbmllxb5hdHN2b1wiLFxuICAgIFwiQW5nb2xhXCIsXG4gICAgXCJBbmdvbHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJBbnRpZ3VhIGEgQmFyYnVkYVwiLFxuICAgIFwiQW50aWd1YSBhIEJhcmJ1ZGFcIixcbiAgICBcIkFyZ2VudMOtbmFcIixcbiAgICBcIkFyZ2VudMOtbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkFybcOpbnNrb1wiLFxuICAgIFwiQXJtw6luc2thIHJlcHVibGlrYVwiLFxuICAgIFwiQXVzdHLDoWxpYVwiLFxuICAgIFwiQXVzdHLDoWxza3kgenbDpHpcIixcbiAgICBcIkF6ZXJiYWpkxb5hblwiLFxuICAgIFwiQXplcmJhamTFvmFuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJhaGFteVwiLFxuICAgIFwiQmFoYW1za8OpIHNwb2xvxI1lbnN0dm9cIixcbiAgICBcIkJhaHJham5cIixcbiAgICBcIkJhaHJham5za8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmFuZ2xhZMOpxaFcIixcbiAgICBcIkJhbmdsYWTDqcWhc2thIMS+dWRvdsOhIHJlcHVibGlrYVwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIkJhcmJhZG9zXCIsXG4gICAgXCJCZWxnaWNrb1wiLFxuICAgIFwiQmVsZ2lja8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmVsaXplXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIkJlbmluXCIsXG4gICAgXCJCZW5pbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCaHV0w6FuXCIsXG4gICAgXCJCaHV0w6Fuc2tlIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiQmllbG9ydXNrb1wiLFxuICAgIFwiQmllbG9ydXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCb2zDrXZpYVwiLFxuICAgIFwiQm9sw612aWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiQm9zbmEgYSBIZXJjZWdvdmluYVwiLFxuICAgIFwiUmVwdWJsaWthIEJvc255IGEgSGVyY2Vnb3ZpbnlcIixcbiAgICBcIkJvdHN3YW5hXCIsXG4gICAgXCJCb3Rzd2Fuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkJyYXrDrWxpYVwiLFxuICAgIFwiQnJhesOtbHNrYSBmZWRlcmF0w612bmEgcmVwdWJsaWthXCIsXG4gICAgXCJCcnVuZWpcIixcbiAgICBcIkJydW5lanNrw70gc3VsdGFuw6F0XCIsXG4gICAgXCJCdWxoYXJza29cIixcbiAgICBcIkJ1bGhhcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJCdXJraW5hIEZhc29cIixcbiAgICBcIkJ1cmtpbmEgRmFzb1wiLFxuICAgIFwiQnVydW5kaVwiLFxuICAgIFwiQnVydW5kc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkN5cHJ1c1wiLFxuICAgIFwiQ3lwZXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwixIxhZFwiLFxuICAgIFwiUmVwdWJsaWthIMSMYWRcIixcbiAgICBcIsSMZXNrb1wiLFxuICAgIFwixIxlc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIsSMw61uYVwiLFxuICAgIFwixIzDrW5za2EgxL51ZG92w6EgcmVwdWJsaWthXCIsXG4gICAgXCJEw6Fuc2tvXCIsXG4gICAgXCJEw6Fuc2tvIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIlNwb2xvxI1lbnN0dm8gRG9taW5pa2FcIixcbiAgICBcIkRvbWluaWvDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJEb21pbmlrw6Fuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRMW+aWJ1dHNrb1wiLFxuICAgIFwiRMW+aWJ1dHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJFZ3lwdFwiLFxuICAgIFwiRWd5cHRza8OhIGFyYWJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiRWt2w6Fkb3JcIixcbiAgICBcIkVrdsOhZG9yc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkVyaXRyZWFcIixcbiAgICBcIkVyaXRyZWpza8O9IMWhdMOhdFwiLFxuICAgIFwiRXN0w7Nuc2tvXCIsXG4gICAgXCJFc3TDs25za2EgcmVwdWJsaWthXCIsXG4gICAgXCJFdGnDs3BpYVwiLFxuICAgIFwiRXRpw7Nwc2thIGZlZGVyYXTDrXZuYSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiRmlkxb5pXCIsXG4gICAgXCJSZXB1Ymxpa2Egb3N0cm92eSBGaWTFvmlcIixcbiAgICBcIkZpbGlww61ueVwiLFxuICAgIFwiRmlsaXDDrW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJGw61uc2tvXCIsXG4gICAgXCJGw61uc2thIHJlcHVibGlrYVwiLFxuICAgIFwiRnJhbmPDunpza29cIixcbiAgICBcIkZyYW5jw7p6c2thIHJlcHVibGlrYVwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkdhYm9uc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdhbWJpYVwiLFxuICAgIFwiR2FtYmlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJHaGFuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkdyw6lja29cIixcbiAgICBcIkhlbMOpbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIkdyZW5hZGFcIixcbiAgICBcIkdydXrDrW5za29cIixcbiAgICBcIkdydXrDrW5za29cIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiR3VhdGVtYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiR3VpbmVhXCIsXG4gICAgXCJHdWluZWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiR3VpbmVhLUJpc3NhdVwiLFxuICAgIFwiUmVwdWJsaWthIEd1aW5lYS1CaXNzYXVcIixcbiAgICBcIkd1YXlhbmFcIixcbiAgICBcIkd1YXlhbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJIYWl0aVwiLFxuICAgIFwiUmVwdWJsaWthIEhhaXRpXCIsXG4gICAgXCJIb2xhbmRza29cIixcbiAgICBcIkhvbGFuZHNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJIb25kdXJhc1wiLFxuICAgIFwiSG9uZHVyYXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwixIzDrWxza2EgcmVwdWJsaWthXCIsXG4gICAgXCJDaG9ydsOhdHNrb1wiLFxuICAgIFwiQ2hvcnbDoXRza2EgcmVwdWJsaWthXCIsXG4gICAgXCJJbmRpYVwiLFxuICAgIFwiSW5kaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJJbmRvbsOpemlhXCIsXG4gICAgXCJJbmRvbsOpenNrYSByZXB1Ymxpa2FcIixcbiAgICBcIklyYWtcIixcbiAgICBcIklyYWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJJcsOhblwiLFxuICAgIFwiSXLDoW5za2EgaXNsYW1za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJJc2xhbmRza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiSXpyYWVsXCIsXG4gICAgXCLFoHTDoXQgSXpyYWVsXCIsXG4gICAgXCLDjXJza29cIixcbiAgICBcIsONcnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkphbWFqa2FcIixcbiAgICBcIkphbWFqa2FcIixcbiAgICBcIkphcG9uc2tvXCIsXG4gICAgXCJKYXBvbnNrb1wiLFxuICAgIFwiSmVtZW5cIixcbiAgICBcIkplbWVuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkpvcmTDoW5za29cIixcbiAgICBcIkpvcmTDoW5za2UgaMOhxaFpbW92c2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkp1xb5uw6EgQWZyaWthXCIsXG4gICAgXCJKdWhvYWZyaWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLYW1ib2TFvmFcIixcbiAgICBcIkthbWJvZMW+c2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIkthbWVydW5cIixcbiAgICBcIkthbWVydW5za8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS2FuYWRhXCIsXG4gICAgXCJLYW5hZGFcIixcbiAgICBcIkthcHZlcmR5XCIsXG4gICAgXCJLYXB2ZXJkc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkthdGFyXCIsXG4gICAgXCLFoHTDoXQgS2F0YXJcIixcbiAgICBcIkthemFjaHN0YW5cIixcbiAgICBcIkthemHFoXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLZcWIYVwiLFxuICAgIFwiS2Vuc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktpcmdpenNrb1wiLFxuICAgIFwiS2lyZ2l6c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJLaXJpYmF0c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIktvbHVtYmlhXCIsXG4gICAgXCJLb2x1bWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLb21vcnlcIixcbiAgICBcIktvbW9yc2vDoSDDum5pYVwiLFxuICAgIFwiS29uZ29cIixcbiAgICBcIktvbsW+c2vDoSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS29uZ28gKFxcXCJCcmF6emF2aWxsZVxcXCIpXCIsXG4gICAgXCJLb27FvnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLw7NyZWEgKFxcXCJKdcW+bsOhXFxcIilcIixcbiAgICBcIkvDs3JlanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJLw7NyZWEgKFxcXCJTZXZlcm7DoVxcXCIpXCIsXG4gICAgXCJLw7NyZWpza8OhIMS+dWRvdm9kZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiS29zdGFyaWthXCIsXG4gICAgXCJLb3N0YXJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkt1YsOhbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIkt1dmFqdFwiLFxuICAgIFwiS3V2YWp0c2vDvSDFoXTDoXRcIixcbiAgICBcIkxhb3NcIixcbiAgICBcIkxhb3Nrw6EgxL51ZG92b2RlbW9rcmF0aWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJMZXNvdGhza8OpIGtyw6HEvm92c3R2b1wiLFxuICAgIFwiTGliYW5vblwiLFxuICAgIFwiTGliYW5vbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMaWLDqXJpYVwiLFxuICAgIFwiTGliw6lyaWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTMOtYnlhXCIsXG4gICAgXCJMw61ieWpza8OhIGFyYWJza8OhIMS+dWRvdsOhIHNvY2lhbGlzdGlja8OhIGTFvmFtw6Fow61yaWphXCIsXG4gICAgXCJMaWNodGVuxaF0YWpuc2tvXCIsXG4gICAgXCJMaWNodGVuxaF0YWpuc2vDqSBrbmllxb5hdHN0dm9cIixcbiAgICBcIkxpdHZhXCIsXG4gICAgXCJMaXRvdnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMb3R5xaFza29cIixcbiAgICBcIkxvdHnFoXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJMdXhlbWJ1cnNrb1wiLFxuICAgIFwiTHV4ZW1idXJza8OpIHZlxL5rb3ZvanZvZHN0dm9cIixcbiAgICBcIk1hY2Vkw7Nuc2tvXCIsXG4gICAgXCJNYWNlZMOzbnNrYSByZXB1Ymxpa2FcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIk1hZGFnYXNrYXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWHEj2Fyc2tvXCIsXG4gICAgXCJNYcSPYXJza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWFsYWp6aWFcIixcbiAgICBcIk1hbGFqemlhXCIsXG4gICAgXCJNYWxhd2lcIixcbiAgICBcIk1hbGF3aWpza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiTWFsZGl2eVwiLFxuICAgIFwiTWFsZGl2c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIk1hbGlqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hbHRhXCIsXG4gICAgXCJNYWx0YVwiLFxuICAgIFwiTWFyb2tvXCIsXG4gICAgXCJNYXJvY2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIk1hcnNoYWxsb3ZlIG9zdHJvdnlcIixcbiAgICBcIlJlcHVibGlrYSBNYXJzaGFsbG92w71jaCBvc3Ryb3Z5XCIsXG4gICAgXCJNYXVyaXTDoW5pYVwiLFxuICAgIFwiTWF1cml0w6Fuc2thIGlzbGFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk1hdXLDrWNpdXNcIixcbiAgICBcIk1hdXLDrWNpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIlNwb2plbsOpIMWhdMOhdHkgbWV4aWNrw6lcIixcbiAgICBcIk1pa3JvbsOpemlhXCIsXG4gICAgXCJNaWtyb27DqXpza2UgZmVkZXJhdMOtdm5lIMWhdMOhdHlcIixcbiAgICBcIk1qYW5tYXJza29cIixcbiAgICBcIk1qYW5tYXJza8O9IHp2w6R6XCIsXG4gICAgXCJNb2xkYXZza29cIixcbiAgICBcIk1vbGRhdnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJNb25ha29cIixcbiAgICBcIk1vbmFja8OpIGtuaWXFvmF0c3R2b1wiLFxuICAgIFwiTW9uZ29sc2tvXCIsXG4gICAgXCJNb25nb2xza29cIixcbiAgICBcIk1vemFtYmlrXCIsXG4gICAgXCJNb3phbWJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk5hbcOtYmlhXCIsXG4gICAgXCJOYW3DrWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOYXVydVwiLFxuICAgIFwiTmF1cnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOZW1lY2tvXCIsXG4gICAgXCJOZW1lY2vDoSBzcG9sa292w6EgcmVwdWJsaWthXCIsXG4gICAgXCJOZXDDoWxcIixcbiAgICBcIk5lcMOhbHNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJOaWdlcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJOaWfDqXJpYVwiLFxuICAgIFwiTmlnw6lyaWpza8OhIGZlZGVyYXTDrXZuYSByZXB1Ymxpa2FcIixcbiAgICBcIk5pa2FyYWd1YVwiLFxuICAgIFwiTmlrYXJhZ3Vqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIk5vdsO9IFrDqWxhbmRcIixcbiAgICBcIk5vdsO9IFrDqWxhbmRcIixcbiAgICBcIk7Ds3Jza29cIixcbiAgICBcIk7Ds3Jza2Uga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJPbcOhblwiLFxuICAgIFwiT23DoW5za3kgc3VsdGFuw6F0XCIsXG4gICAgXCJQYWtpc3RhblwiLFxuICAgIFwiUGFraXN0YW5za8OhIGlzbGFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBhbGF1XCIsXG4gICAgXCJQYWxhdXNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlBhbmFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBhcHVhLU5vdsOhIEd1aW5lYVwiLFxuICAgIFwiTmV6w6F2aXNsw70gxaF0w6F0IFBhcHVhLU5vdsOhIEd1aW5lYVwiLFxuICAgIFwiUGFyYWd1YWpcIixcbiAgICBcIlBhcmFndWFqc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlBlcnVcIixcbiAgICBcIlBlcnXDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJQb2JyZcW+aWUgU2xvbm92aW55XCIsXG4gICAgXCJSZXB1Ymxpa2EgUG9icmXFvmllIFNsb25vdmlueVwiLFxuICAgIFwiUG/EvnNrb1wiLFxuICAgIFwiUG/EvnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJQb3J0dWdhbHNrb1wiLFxuICAgIFwiUG9ydHVnYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiUmFrw7pza29cIixcbiAgICBcIlJha8O6c2thIHJlcHVibGlrYVwiLFxuICAgIFwiUm92bsOta292w6EgR3VpbmVhXCIsXG4gICAgXCJSZXB1Ymxpa2EgUm92bsOta292w6EgR3VpbmVhXCIsXG4gICAgXCJSdW11bnNrb1wiLFxuICAgIFwiUnVtdW5za29cIixcbiAgICBcIlJ1c2tvXCIsXG4gICAgXCJSdXNrw6EgZmVkZXLDoWNpYVwiLFxuICAgIFwiUndhbmRhXCIsXG4gICAgXCJSd2FuZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTYWx2w6Fkb3JcIixcbiAgICBcIlNhbHbDoWRvcnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTYW1vYVwiLFxuICAgIFwiTmV6w6F2aXNsw70gxaF0w6F0IFNhbW9hXCIsXG4gICAgXCJTYW4gTWFyw61ub1wiLFxuICAgIFwiU2FubWFyw61uc2thIHJlcHVibGlrYVwiLFxuICAgIFwiU2F1ZHNrw6EgQXLDoWJpYVwiLFxuICAgIFwiS3LDocS+b3ZzdHZvIFNhdWRza2VqIEFyw6FiaWVcIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlNlbmVnYWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2V5Y2hlbHlcIixcbiAgICBcIlNleWNoZWxza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU2llcnJhIExlb25lXCIsXG4gICAgXCJSZXB1Ymxpa2EgU2llcnJhIExlb25lXCIsXG4gICAgXCJTaW5nYXB1clwiLFxuICAgIFwiU2luZ2FwdXJza2EgcmVwdWJsaWthXCIsXG4gICAgXCJTbG92ZW5za29cIixcbiAgICBcIlNsb3ZlbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTbG92aW5za29cIixcbiAgICBcIlNsb3ZpbnNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJTb23DoWxza29cIixcbiAgICBcIlNvbcOhbHNrYSBkZW1va3JhdGlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU3BvamVuw6kgYXJhYnNrw6kgZW1pcsOhdHlcIixcbiAgICBcIlNwb2plbsOpIGFyYWJza8OpIGVtaXLDoXR5XCIsXG4gICAgXCJTcG9qZW7DqSDFoXTDoXR5IGFtZXJpY2vDqVwiLFxuICAgIFwiU3BvamVuw6kgxaF0w6F0eSBhbWVyaWNrw6lcIixcbiAgICBcIlNyYnNrbyBhIMSMaWVybmEgSG9yYVwiLFxuICAgIFwiU3Jic2tvIGEgxIxpZXJuYSBIb3JhXCIsXG4gICAgXCJTcsOtIExhbmthXCIsXG4gICAgXCJEZW1va3JhdGlja8OhIHNvY2lhbGlzdGlja8OhIHJlcHVibGlrYSBTcsOtIExhbmthXCIsXG4gICAgXCJTdHJlZG9hZnJpY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlN0cmVkb2Fmcmlja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiU3Vkw6FuXCIsXG4gICAgXCJTdWTDoW5za2EgcmVwdWJsaWthXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJTdXJpbmFtc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlN2YXppanNrb1wiLFxuICAgIFwiU3Zhemlqc2vDqSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIlN2w6R0w6EgTHVjaWFcIixcbiAgICBcIlN2w6R0w6EgTHVjaWFcIixcbiAgICBcIlN2w6R0w70gS3JpxaF0b2YgYSBOZXZpc1wiLFxuICAgIFwiRmVkZXLDoWNpYSBTdsOkdMO9IEtyacWhdG9mIGEgTmV2aXNcIixcbiAgICBcIlN2LiBUb23DocWhIGEgUHJpbmNvdiBPc3Ryb3ZcIixcbiAgICBcIkRlbW9rcmF0aWNrw6EgcmVwdWJsaWthIFN2w6R0w70gVG9tw6HFoSBhIFByaW5jb3YgT3N0cm92XCIsXG4gICAgXCJTdi4gVmluY2VudCBhIEdyZW5hZMOtbnlcIixcbiAgICBcIlN2w6R0w70gVmluY2VudCBhIEdyZW5hZMOtbnlcIixcbiAgICBcIlPDvXJpYVwiLFxuICAgIFwiU8O9cnNrYSBhcmFic2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIsWgYWxhbcO6bm92ZSBvc3Ryb3Z5XCIsXG4gICAgXCLFoGFsYW3Dum5vdmUgb3N0cm92eVwiLFxuICAgIFwixaBwYW5pZWxza29cIixcbiAgICBcIsWgcGFuaWVsc2tlIGtyw6HEvm92c3R2b1wiLFxuICAgIFwixaB2YWrEjWlhcnNrb1wiLFxuICAgIFwixaB2YWrEjWlhcnNrYSBrb25mZWRlcsOhY2lhXCIsXG4gICAgXCLFoHbDqWRza29cIixcbiAgICBcIsWgdsOpZHNrZSBrcsOhxL5vdnN0dm9cIixcbiAgICBcIlRhZMW+aWtpc3RhblwiLFxuICAgIFwiVGFkxb5pY2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlRhbGlhbnNrb1wiLFxuICAgIFwiVGFsaWFuc2thIHJlcHVibGlrYVwiLFxuICAgIFwiVGFuesOhbmlhXCIsXG4gICAgXCJUYW56w6FuaWpza8OhIHpqZWRub3RlbsOhIHJlcHVibGlrYVwiLFxuICAgIFwiVGhhanNrb1wiLFxuICAgIFwiVGhhanNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJUb2dvXCIsXG4gICAgXCJUb8W+c2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlRvbmdhXCIsXG4gICAgXCJUb27FvnNrw6kga3LDocS+b3ZzdHZvXCIsXG4gICAgXCJUcmluaWRhZCBhIFRvYmFnb1wiLFxuICAgIFwiUmVwdWJsaWthIFRyaW5pZGFkIGEgVG9iYWdvXCIsXG4gICAgXCJUdW5pc2tvXCIsXG4gICAgXCJUdW5pc2vDoSByZXB1Ymxpa2FcIixcbiAgICBcIlR1cmVja29cIixcbiAgICBcIlR1cmVja8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVHVya23DqW5za29cIixcbiAgICBcIlR1cmttw6luc2tvXCIsXG4gICAgXCJUdXZhbHVcIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiVWdhbmRhXCIsXG4gICAgXCJVZ2FuZHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJVa3JhamluYVwiLFxuICAgIFwiVXJ1Z3VhalwiLFxuICAgIFwiVXJ1Z3VhanNrw6EgdsO9Y2hvZG7DoSByZXB1Ymxpa2FcIixcbiAgICBcIlV6YmVraXN0YW5cIixcbiAgICBcIlZhbnVhdHVcIixcbiAgICBcIlZhbnVhdHNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJWYXRpa8OhblwiLFxuICAgIFwiU3bDpHTDoSBTdG9saWNhXCIsXG4gICAgXCJWZcS+a8OhIEJyaXTDoW5pYVwiLFxuICAgIFwiU3BvamVuw6kga3LDocS+b3ZzdHZvIFZlxL5rZWogQnJpdMOhbmllIGEgU2V2ZXJuw6lobyDDjXJza2FcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiVmVuZXp1ZWxza8OhIGJvbMOtdmFyb3Zza8OhIHJlcHVibGlrYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiVmlldG5hbXNrw6Egc29jaWFsaXN0aWNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJWw71jaG9kbsO9IFRpbW9yXCIsXG4gICAgXCJEZW1va3JhdGlja8OhIHJlcHVibGlrYSBWw71jaG9kbsO9IFRpbW9yXCIsXG4gICAgXCJaYW1iaWFcIixcbiAgICBcIlphbWJpanNrw6EgcmVwdWJsaWthXCIsXG4gICAgXCJaaW1iYWJ3ZVwiLFxuICAgIFwiWmltYmFid2lhbnNrYSByZXB1Ymxpa2FcIlxuICBdLFxuICBcImJ1aWxkaW5nX251bWJlclwiOiBbXG4gICAgXCIjXCIsXG4gICAgXCIjI1wiLFxuICAgIFwiIyMjXCJcbiAgXSxcbiAgXCJzZWNvbmRhcnlfYWRkcmVzc1wiOiBbXG4gICAgXCJBcHQuICMjI1wiLFxuICAgIFwiU3VpdGUgIyMjXCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiLFxuICAgIFwiIyMjICMjXCIsXG4gICAgXCIjIyAjIyNcIlxuICBdLFxuICBcInN0YXRlXCI6IFtdLFxuICBcInN0YXRlX2FiYnJcIjogW10sXG4gIFwidGltZV96b25lXCI6IFtcbiAgICBcIlBhY2lmaWMvTWlkd2F5XCIsXG4gICAgXCJQYWNpZmljL1BhZ29fUGFnb1wiLFxuICAgIFwiUGFjaWZpYy9Ib25vbHVsdVwiLFxuICAgIFwiQW1lcmljYS9KdW5lYXVcIixcbiAgICBcIkFtZXJpY2EvTG9zX0FuZ2VsZXNcIixcbiAgICBcIkFtZXJpY2EvVGlqdWFuYVwiLFxuICAgIFwiQW1lcmljYS9EZW52ZXJcIixcbiAgICBcIkFtZXJpY2EvUGhvZW5peFwiLFxuICAgIFwiQW1lcmljYS9DaGlodWFodWFcIixcbiAgICBcIkFtZXJpY2EvTWF6YXRsYW5cIixcbiAgICBcIkFtZXJpY2EvQ2hpY2Fnb1wiLFxuICAgIFwiQW1lcmljYS9SZWdpbmFcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTWV4aWNvX0NpdHlcIixcbiAgICBcIkFtZXJpY2EvTW9udGVycmV5XCIsXG4gICAgXCJBbWVyaWNhL0d1YXRlbWFsYVwiLFxuICAgIFwiQW1lcmljYS9OZXdfWW9ya1wiLFxuICAgIFwiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpc1wiLFxuICAgIFwiQW1lcmljYS9Cb2dvdGFcIixcbiAgICBcIkFtZXJpY2EvTGltYVwiLFxuICAgIFwiQW1lcmljYS9MaW1hXCIsXG4gICAgXCJBbWVyaWNhL0hhbGlmYXhcIixcbiAgICBcIkFtZXJpY2EvQ2FyYWNhc1wiLFxuICAgIFwiQW1lcmljYS9MYV9QYXpcIixcbiAgICBcIkFtZXJpY2EvU2FudGlhZ29cIixcbiAgICBcIkFtZXJpY2EvU3RfSm9obnNcIixcbiAgICBcIkFtZXJpY2EvU2FvX1BhdWxvXCIsXG4gICAgXCJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXNcIixcbiAgICBcIkFtZXJpY2EvR3V5YW5hXCIsXG4gICAgXCJBbWVyaWNhL0dvZHRoYWJcIixcbiAgICBcIkF0bGFudGljL1NvdXRoX0dlb3JnaWFcIixcbiAgICBcIkF0bGFudGljL0F6b3Jlc1wiLFxuICAgIFwiQXRsYW50aWMvQ2FwZV9WZXJkZVwiLFxuICAgIFwiRXVyb3BlL0R1YmxpblwiLFxuICAgIFwiRXVyb3BlL0xvbmRvblwiLFxuICAgIFwiRXVyb3BlL0xpc2JvblwiLFxuICAgIFwiRXVyb3BlL0xvbmRvblwiLFxuICAgIFwiQWZyaWNhL0Nhc2FibGFuY2FcIixcbiAgICBcIkFmcmljYS9Nb25yb3ZpYVwiLFxuICAgIFwiRXRjL1VUQ1wiLFxuICAgIFwiRXVyb3BlL0JlbGdyYWRlXCIsXG4gICAgXCJFdXJvcGUvQnJhdGlzbGF2YVwiLFxuICAgIFwiRXVyb3BlL0J1ZGFwZXN0XCIsXG4gICAgXCJFdXJvcGUvTGp1YmxqYW5hXCIsXG4gICAgXCJFdXJvcGUvUHJhZ3VlXCIsXG4gICAgXCJFdXJvcGUvU2FyYWpldm9cIixcbiAgICBcIkV1cm9wZS9Ta29wamVcIixcbiAgICBcIkV1cm9wZS9XYXJzYXdcIixcbiAgICBcIkV1cm9wZS9aYWdyZWJcIixcbiAgICBcIkV1cm9wZS9CcnVzc2Vsc1wiLFxuICAgIFwiRXVyb3BlL0NvcGVuaGFnZW5cIixcbiAgICBcIkV1cm9wZS9NYWRyaWRcIixcbiAgICBcIkV1cm9wZS9QYXJpc1wiLFxuICAgIFwiRXVyb3BlL0Ftc3RlcmRhbVwiLFxuICAgIFwiRXVyb3BlL0JlcmxpblwiLFxuICAgIFwiRXVyb3BlL0JlcmxpblwiLFxuICAgIFwiRXVyb3BlL1JvbWVcIixcbiAgICBcIkV1cm9wZS9TdG9ja2hvbG1cIixcbiAgICBcIkV1cm9wZS9WaWVubmFcIixcbiAgICBcIkFmcmljYS9BbGdpZXJzXCIsXG4gICAgXCJFdXJvcGUvQnVjaGFyZXN0XCIsXG4gICAgXCJBZnJpY2EvQ2Fpcm9cIixcbiAgICBcIkV1cm9wZS9IZWxzaW5raVwiLFxuICAgIFwiRXVyb3BlL0tpZXZcIixcbiAgICBcIkV1cm9wZS9SaWdhXCIsXG4gICAgXCJFdXJvcGUvU29maWFcIixcbiAgICBcIkV1cm9wZS9UYWxsaW5uXCIsXG4gICAgXCJFdXJvcGUvVmlsbml1c1wiLFxuICAgIFwiRXVyb3BlL0F0aGVuc1wiLFxuICAgIFwiRXVyb3BlL0lzdGFuYnVsXCIsXG4gICAgXCJFdXJvcGUvTWluc2tcIixcbiAgICBcIkFzaWEvSmVydXNhbGVtXCIsXG4gICAgXCJBZnJpY2EvSGFyYXJlXCIsXG4gICAgXCJBZnJpY2EvSm9oYW5uZXNidXJnXCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJFdXJvcGUvTW9zY293XCIsXG4gICAgXCJBc2lhL0t1d2FpdFwiLFxuICAgIFwiQXNpYS9SaXlhZGhcIixcbiAgICBcIkFmcmljYS9OYWlyb2JpXCIsXG4gICAgXCJBc2lhL0JhZ2hkYWRcIixcbiAgICBcIkFzaWEvVGVocmFuXCIsXG4gICAgXCJBc2lhL011c2NhdFwiLFxuICAgIFwiQXNpYS9NdXNjYXRcIixcbiAgICBcIkFzaWEvQmFrdVwiLFxuICAgIFwiQXNpYS9UYmlsaXNpXCIsXG4gICAgXCJBc2lhL1llcmV2YW5cIixcbiAgICBcIkFzaWEvS2FidWxcIixcbiAgICBcIkFzaWEvWWVrYXRlcmluYnVyZ1wiLFxuICAgIFwiQXNpYS9LYXJhY2hpXCIsXG4gICAgXCJBc2lhL0thcmFjaGlcIixcbiAgICBcIkFzaWEvVGFzaGtlbnRcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9Lb2xrYXRhXCIsXG4gICAgXCJBc2lhL0tvbGthdGFcIixcbiAgICBcIkFzaWEvS29sa2F0YVwiLFxuICAgIFwiQXNpYS9LYXRobWFuZHVcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvRGhha2FcIixcbiAgICBcIkFzaWEvQ29sb21ib1wiLFxuICAgIFwiQXNpYS9BbG1hdHlcIixcbiAgICBcIkFzaWEvTm92b3NpYmlyc2tcIixcbiAgICBcIkFzaWEvUmFuZ29vblwiLFxuICAgIFwiQXNpYS9CYW5na29rXCIsXG4gICAgXCJBc2lhL0Jhbmdrb2tcIixcbiAgICBcIkFzaWEvSmFrYXJ0YVwiLFxuICAgIFwiQXNpYS9LcmFzbm95YXJza1wiLFxuICAgIFwiQXNpYS9TaGFuZ2hhaVwiLFxuICAgIFwiQXNpYS9DaG9uZ3FpbmdcIixcbiAgICBcIkFzaWEvSG9uZ19Lb25nXCIsXG4gICAgXCJBc2lhL1VydW1xaVwiLFxuICAgIFwiQXNpYS9LdWFsYV9MdW1wdXJcIixcbiAgICBcIkFzaWEvU2luZ2Fwb3JlXCIsXG4gICAgXCJBc2lhL1RhaXBlaVwiLFxuICAgIFwiQXVzdHJhbGlhL1BlcnRoXCIsXG4gICAgXCJBc2lhL0lya3V0c2tcIixcbiAgICBcIkFzaWEvVWxhYW5iYWF0YXJcIixcbiAgICBcIkFzaWEvU2VvdWxcIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvVG9reW9cIixcbiAgICBcIkFzaWEvWWFrdXRza1wiLFxuICAgIFwiQXVzdHJhbGlhL0RhcndpblwiLFxuICAgIFwiQXVzdHJhbGlhL0FkZWxhaWRlXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvTWVsYm91cm5lXCIsXG4gICAgXCJBdXN0cmFsaWEvU3lkbmV5XCIsXG4gICAgXCJBdXN0cmFsaWEvQnJpc2JhbmVcIixcbiAgICBcIkF1c3RyYWxpYS9Ib2JhcnRcIixcbiAgICBcIkFzaWEvVmxhZGl2b3N0b2tcIixcbiAgICBcIlBhY2lmaWMvR3VhbVwiLFxuICAgIFwiUGFjaWZpYy9Qb3J0X01vcmVzYnlcIixcbiAgICBcIkFzaWEvTWFnYWRhblwiLFxuICAgIFwiQXNpYS9NYWdhZGFuXCIsXG4gICAgXCJQYWNpZmljL05vdW1lYVwiLFxuICAgIFwiUGFjaWZpYy9GaWppXCIsXG4gICAgXCJBc2lhL0thbWNoYXRrYVwiLFxuICAgIFwiUGFjaWZpYy9NYWp1cm9cIixcbiAgICBcIlBhY2lmaWMvQXVja2xhbmRcIixcbiAgICBcIlBhY2lmaWMvQXVja2xhbmRcIixcbiAgICBcIlBhY2lmaWMvVG9uZ2F0YXB1XCIsXG4gICAgXCJQYWNpZmljL0Zha2FvZm9cIixcbiAgICBcIlBhY2lmaWMvQXBpYVwiXG4gIF0sXG4gIFwiY2l0eV9uYW1lXCI6IFtcbiAgICBcIkLDoW5vdmNlIG5hZCBCZWJyYXZvdVwiLFxuICAgIFwiQmFuc2vDoSBCeXN0cmljYVwiLFxuICAgIFwiQmFuc2vDoSDFoHRpYXZuaWNhXCIsXG4gICAgXCJCYXJkZWpvdlwiLFxuICAgIFwiQnJhdGlzbGF2YSBJXCIsXG4gICAgXCJCcmF0aXNsYXZhIElJXCIsXG4gICAgXCJCcmF0aXNsYXZhIElJSVwiLFxuICAgIFwiQnJhdGlzbGF2YSBJVlwiLFxuICAgIFwiQnJhdGlzbGF2YSBWXCIsXG4gICAgXCJCcmV6bm9cIixcbiAgICBcIkJ5dMSNYVwiLFxuICAgIFwixIxhZGNhXCIsXG4gICAgXCJEZXR2YVwiLFxuICAgIFwiRG9sbsO9IEt1YsOtblwiLFxuICAgIFwiRHVuYWpza8OhIFN0cmVkYVwiLFxuICAgIFwiR2FsYW50YVwiLFxuICAgIFwiR2VsbmljYVwiLFxuICAgIFwiSGxvaG92ZWNcIixcbiAgICBcIkh1bWVubsOpXCIsXG4gICAgXCJJbGF2YVwiLFxuICAgIFwiS2XFvm1hcm9rXCIsXG4gICAgXCJLb23DoXJub1wiLFxuICAgIFwiS2/FoWljZSBJXCIsXG4gICAgXCJLb8WhaWNlIElJXCIsXG4gICAgXCJLb8WhaWNlIElJSVwiLFxuICAgIFwiS2/FoWljZSBJVlwiLFxuICAgIFwiS2/FoWljZS1va29saWVcIixcbiAgICBcIktydXBpbmFcIixcbiAgICBcIkt5c3Vja8OpIE5vdsOpIE1lc3RvXCIsXG4gICAgXCJMZXZpY2VcIixcbiAgICBcIkxldm/EjWFcIixcbiAgICBcIkxpcHRvdnNrw70gTWlrdWzDocWhXCIsXG4gICAgXCJMdcSNZW5lY1wiLFxuICAgIFwiTWFsYWNreVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJNZWR6aWxhYm9yY2VcIixcbiAgICBcIk1pY2hhbG92Y2VcIixcbiAgICBcIk15amF2YVwiLFxuICAgIFwiTsOhbWVzdG92b1wiLFxuICAgIFwiTml0cmFcIixcbiAgICBcIk5vdsOpIE1lc3RvIG4uVsOhaG9tXCIsXG4gICAgXCJOb3bDqSBaw6Fta3lcIixcbiAgICBcIlBhcnRpesOhbnNrZVwiLFxuICAgIFwiUGV6aW5va1wiLFxuICAgIFwiUGllxaHFpWFueVwiLFxuICAgIFwiUG9sdMOhclwiLFxuICAgIFwiUG9wcmFkXCIsXG4gICAgXCJQb3Zhxb5za8OhIEJ5c3RyaWNhXCIsXG4gICAgXCJQcmXFoW92XCIsXG4gICAgXCJQcmlldmlkemFcIixcbiAgICBcIlDDumNob3ZcIixcbiAgICBcIlJldsO6Y2FcIixcbiAgICBcIlJpbWF2c2vDoSBTb2JvdGFcIixcbiAgICBcIlJvxb7FiGF2YVwiLFxuICAgIFwiUnXFvm9tYmVyb2tcIixcbiAgICBcIlNhYmlub3ZcIixcbiAgICBcIsWgYcS+YVwiLFxuICAgIFwiU2VuZWNcIixcbiAgICBcIlNlbmljYVwiLFxuICAgIFwiU2thbGljYVwiLFxuICAgIFwiU25pbmFcIixcbiAgICBcIlNvYnJhbmNlXCIsXG4gICAgXCJTcGnFoXNrw6EgTm92w6EgVmVzXCIsXG4gICAgXCJTdGFyw6EgxL11Ym92xYhhXCIsXG4gICAgXCJTdHJvcGtvdlwiLFxuICAgIFwiU3ZpZG7DrWtcIixcbiAgICBcIlRvcG/EvsSNYW55XCIsXG4gICAgXCJUcmViacWhb3ZcIixcbiAgICBcIlRyZW7EjcOtblwiLFxuICAgIFwiVHJuYXZhXCIsXG4gICAgXCJUdXLEjWlhbnNrZSBUZXBsaWNlXCIsXG4gICAgXCJUdnJkb8Whw61uXCIsXG4gICAgXCJWZcS+a8O9IEtydMOtxaFcIixcbiAgICBcIlZyYW5vdiBuYWQgVG9wxL5vdVwiLFxuICAgIFwixb1hcm5vdmljYVwiLFxuICAgIFwixb1pYXIgbmFkIEhyb25vbVwiLFxuICAgIFwixb1pbGluYVwiLFxuICAgIFwiWmxhdMOpIE1vcmF2Y2VcIixcbiAgICBcIlp2b2xlblwiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfbmFtZX1cIlxuICBdLFxuICBcInN0cmVldFwiOiBbXG4gICAgXCJBZMOhbWlob1wiLFxuICAgIFwiQWhvalwiLFxuICAgIFwiQWxiw61uYSBCcnVub3Zza8OpaG9cIixcbiAgICBcIkFsYnJlY2h0b3ZhXCIsXG4gICAgXCJBbGVqb3bDoVwiLFxuICAgIFwiQWxlxaFvdmFcIixcbiAgICBcIkFsaWJlcm5ldG92w6FcIixcbiAgICBcIkFsxb5iZXTDrW5za2FcIixcbiAgICBcIkFsxb5iZXR5IEd3ZXJrb3ZlalwiLFxuICAgIFwiQW1icm9zZWhvXCIsXG4gICAgXCJBbWJydcWhb3ZhXCIsXG4gICAgXCJBbWVyaWNrw6FcIixcbiAgICBcIkFtZXJpY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIkFtZXJpY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIkFuZHJlamEgTXLDoXphXCIsXG4gICAgXCJBbmRyZWphIFBsw6F2a3VcIixcbiAgICBcIkFuZHJ1c292b3ZhXCIsXG4gICAgXCJBbmVuc2vDoVwiLFxuICAgIFwiQW5lbnNrw6FcIixcbiAgICBcIkFudG9sc2vDoVwiLFxuICAgIFwiQXN0cm9ub21pY2vDoVwiLFxuICAgIFwiQXN0cm92w6FcIixcbiAgICBcIkF6YWxrb3bDoVwiLFxuICAgIFwiQXpvdnNrw6FcIixcbiAgICBcIkJhYnXFoWtvdmFcIixcbiAgICBcIkJhY2hvdmFcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhamthbHNrw6FcIixcbiAgICBcIkJhanpvdmFcIixcbiAgICBcIkJhbmPDrWtvdmVqXCIsXG4gICAgXCJCYW7DrWNrYVwiLFxuICAgIFwiQmFuw61rb3ZhXCIsXG4gICAgXCJCYW5za29ieXN0cmlja8OhXCIsXG4gICAgXCJCYW7FoWVsb3ZhXCIsXG4gICAgXCJCYXJkZWpvdnNrw6FcIixcbiAgICBcIkJhcnTDs2tvdmFcIixcbiAgICBcIkJhcnRvxYhvdmFcIixcbiAgICBcIkJhcnRvxaFrb3ZhXCIsXG4gICAgXCJCYcWhdG92w6FcIixcbiAgICBcIkJhem92w6FcIixcbiAgICBcIkJhxb5hbnRpYVwiLFxuICAgIFwiQmVibGF2w6lob1wiLFxuICAgIFwiQmVja292c2vDoVwiLFxuICAgIFwiQmVkxL5vdsOhXCIsXG4gICAgXCJCZWzDoW5pa292w6FcIixcbiAgICBcIkJlbGVocmFkc2vDoVwiLFxuICAgIFwiQmVsaW5za8OpaG9cIixcbiAgICBcIkJlbG9wb3RvY2vDqWhvXCIsXG4gICAgXCJCZcWIYWRpY2vDoVwiLFxuICAgIFwiQmVuY8O6cm92YVwiLFxuICAgIFwiQmVuZWRpa3RpaG9cIixcbiAgICBcIkJlbmlha292YVwiLFxuICAgIFwiQmVybm9sw6Frb3ZhXCIsXG4gICAgXCJCZXNreWRza8OhXCIsXG4gICAgXCJCZXRsaWFyc2thXCIsXG4gICAgXCJCZXpydcSNb3ZhXCIsXG4gICAgXCJCaWVsYVwiLFxuICAgIFwiQmllbGtvdmFcIixcbiAgICBcIkJqw7ZybnNvbm92YVwiLFxuICAgIFwiQmxhZ29ldm92YVwiLFxuICAgIFwiQmxhdG5pY2vDoVwiLFxuICAgIFwiQmx1bWVudMOhbHNrYVwiLFxuICAgIFwiQmx5c2vDocSNb3bDoVwiLFxuICAgIFwiQm/EjW7DoVwiLFxuICAgIFwiQm9ocm92YVwiLFxuICAgIFwiQm9ow7rFiG92YVwiLFxuICAgIFwiQm9qbmlja8OhXCIsXG4gICAgXCJCb3JvZMOhxI1vdmFcIixcbiAgICBcIkJvcnNrw6FcIixcbiAgICBcIkJvc8Oha292YVwiLFxuICAgIFwiQm90YW5pY2vDoVwiLFxuICAgIFwiQm90dG92YVwiLFxuICAgIFwiQm/FvmVueSBOxJttY292ZWpcIixcbiAgICBcIkLDtHJpa1wiLFxuICAgIFwiQnJhZMOhxI1vdmFcIixcbiAgICBcIkJyYWRsaWFuc2thXCIsXG4gICAgXCJCcmFuxI1za8OhXCIsXG4gICAgXCJCcmF0c2vDoVwiLFxuICAgIFwiQnJlc3RvdsOhXCIsXG4gICAgXCJCcmV6b3Zza8OhXCIsXG4gICAgXCJCcmllxb5reVwiLFxuICAgIFwiQnJuaWFuc2thXCIsXG4gICAgXCJCcm9kbsOhXCIsXG4gICAgXCJCcm9kc2vDoVwiLFxuICAgIFwiQnJvc2t5xYhvdsOhXCIsXG4gICAgXCJCxZllY2xhdnNrw6FcIixcbiAgICBcIkJ1ZGF0w61uc2thXCIsXG4gICAgXCJCdWRhdMOtbnNrYVwiLFxuICAgIFwiQnVkYXTDrW5za2FcIixcbiAgICBcIkLDumRrb3ZhICBjZXN0YVwiLFxuICAgIFwiQnVkb3ZhdGXEvnNrw6FcIixcbiAgICBcIkJ1ZHnFocOtbnNrYVwiLFxuICAgIFwiQnVkecWhw61uc2thXCIsXG4gICAgXCJCdWtvdsOhXCIsXG4gICAgXCJCdWt1cmXFoXRza8OhXCIsXG4gICAgXCJCdWxoYXJza8OhXCIsXG4gICAgXCJCdWzDrWtvdmFcIixcbiAgICBcIkJ5c3Ryw6lob1wiLFxuICAgIFwiQnpvdsOtY2thXCIsXG4gICAgXCJDYWJsa292YVwiLFxuICAgIFwiQ2VzdGEgbmEgxIxlcnZlbsO9IG1vc3RcIixcbiAgICBcIkNlc3RhIG5hIMSMZXJ2ZW7DvSBtb3N0XCIsXG4gICAgXCJDZXN0YSBuYSBTZW5lY1wiLFxuICAgIFwiQ2lra2Vyb3ZhXCIsXG4gICAgXCJDaW50b3LDrW5za2FcIixcbiAgICBcIkNpbnR1bG92YVwiLFxuICAgIFwiQ3Vrcm92w6FcIixcbiAgICBcIkN5cmlsb3ZhXCIsXG4gICAgXCLEjGFqYWtvdmFcIixcbiAgICBcIsSMYWprb3Zza8OpaG9cIixcbiAgICBcIsSMYWtsb3Zza8OhXCIsXG4gICAgXCLEjGFsb3Zza8OhXCIsXG4gICAgXCLEjGFwYWpldm92YVwiLFxuICAgIFwixIxhcGtvdmFcIixcbiAgICBcIsSMw6Fyc2tlaG9cIixcbiAgICBcIsSMYXZvanNrw6lob1wiLFxuICAgIFwixIxlxI1pbm92w6FcIixcbiAgICBcIsSMZWxha292c2vDqWhvXCIsXG4gICAgXCLEjGVyZcWhxYhvdsOhXCIsXG4gICAgXCLEjGVybnnFoWV2c2vDqWhvXCIsXG4gICAgXCLEjGVydmXFiG92YVwiLFxuICAgIFwixIxlc2vDoVwiLFxuICAgIFwixIxlc2tvc2xvdmVuc2vDvWNoIHBhclwiLFxuICAgIFwixIxpcGvDoXJza2FcIixcbiAgICBcIsSMbWVsw61rb3ZhXCIsXG4gICAgXCLEjG1lxL5vdmVjXCIsXG4gICAgXCLEjHVsZW5vdmFcIixcbiAgICBcIkRhbGlib3Jvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEYW5rb3Zza8OpaG9cIixcbiAgICBcIkRhcmdvdnNrw6FcIixcbiAgICBcIsSOYXRlbGlub3bDoVwiLFxuICAgIFwiRGF4bmVyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiRGV2w61uc2thIGNlc3RhXCIsXG4gICAgXCJEbGjDqSBkaWVseSBJLlwiLFxuICAgIFwiRGxow6kgZGllbHkgSUkuXCIsXG4gICAgXCJEbGjDqSBkaWVseSBJSUkuXCIsXG4gICAgXCJEb2Jyb3ZpxI1vdmFcIixcbiAgICBcIkRvYnJvdmnEjW92YVwiLFxuICAgIFwiRG9icm92c2vDqWhvXCIsXG4gICAgXCJEb2LFoWluc2vDqWhvXCIsXG4gICAgXCJEb2huYWxvdmFcIixcbiAgICBcIkRvaG7DoW55aG9cIixcbiAgICBcIkRvbGXFvmFsb3ZhXCIsXG4gICAgXCJEb2xuw6FcIixcbiAgICBcIkRvbG5vemVtc2vDoSBjZXN0YVwiLFxuICAgIFwiRG9ta8OhcnNrYVwiLFxuICAgIFwiRG9tb3bDqSByb2xlXCIsXG4gICAgXCJEb25uZXJvdmFcIixcbiAgICBcIkRvbm92YWxvdmFcIixcbiAgICBcIkRvc3RvamV2c2vDqWhvIHJhZFwiLFxuICAgIFwiRHIuIFZsYWRpbcOtcmEgQ2xlbWVuXCIsXG4gICAgXCJEcmV2ZW7DoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJpZcWIb3bDoVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJvdMOhcnNrYSBjZXN0YVwiLFxuICAgIFwiRHJ1xb5pY292w6FcIixcbiAgICBcIkRydcW+c3Rldm7DoVwiLFxuICAgIFwiRHVibmlja8OhXCIsXG4gICAgXCJEdWJvdsOhXCIsXG4gICAgXCJEw7picmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiRHVkb3ZhXCIsXG4gICAgXCJEdWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEdWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJEdW5hanNrw6FcIixcbiAgICBcIkR2b8WZw6Frb3ZvIG7DoWJyZcW+aWVcIixcbiAgICBcIkVkaXNvbm92YVwiLFxuICAgIFwiRWluc3RlaW5vdmFcIixcbiAgICBcIkVsZWt0csOhcmVuc2vDoVwiLFxuICAgIFwiRXhuw6Fyb3ZhXCIsXG4gICAgXCJGLiBLb3N0a3VcIixcbiAgICBcIkZhZHJ1c3pvdmFcIixcbiAgICBcIkZham5vcm92byBuw6FicmXFvmllXCIsXG4gICAgXCJGw6FuZGx5aG9cIixcbiAgICBcIkZhcmVibsOhXCIsXG4gICAgXCJGYXJza8OhXCIsXG4gICAgXCJGYXJza8OpaG9cIixcbiAgICBcIkZhenXEvm92w6FcIixcbiAgICBcIkZlZGlub3ZhXCIsXG4gICAgXCJGZXJpZW7EjcOta292YVwiLFxuICAgIFwiRmlhbGtvdsOpIMO6ZG9saWVcIixcbiAgICBcIkZpYmljaG92YVwiLFxuICAgIFwiRmlsacOhbG5lIG7DoWRyYcW+aWVcIixcbiAgICBcIkZsw7ZnbG92YVwiLFxuICAgIFwiRmxvcmnDoW5za2UgbsOhbWVzdGllXCIsXG4gICAgXCJGcmHFiGEgS3LDocS+YVwiLFxuICAgIFwiRnJhbmNpc2NpaG9cIixcbiAgICBcIkZyYW5jw7p6c2t5Y2ggcGFydGl6w6FcIixcbiAgICBcIkZyYW50acWha8OhbnNrYVwiLFxuICAgIFwiRnJhbnRpxaFrw6Fuc2tlIG7DoW1lc3RcIixcbiAgICBcIkZ1cmRla292YVwiLFxuICAgIFwiRnVyZGVrb3ZhXCIsXG4gICAgXCJHYWLEjcOta292YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2FnYXJpbm92YVwiLFxuICAgIFwiR2Fqb3ZhXCIsXG4gICAgXCJHYWxha3RpY2vDoVwiLFxuICAgIFwiR2FsYW5kb3ZhXCIsXG4gICAgXCJHYWxsb3ZhXCIsXG4gICAgXCJHYWx2YW5paG9cIixcbiAgICBcIkdhxaFwYXLDrWtvdmFcIixcbiAgICBcIkdhxaF0YW5vdsOhXCIsXG4gICAgXCJHYXZsb3ZpxI1vdmFcIixcbiAgICBcIkdlbWVyc2vDoVwiLFxuICAgIFwiR2VyY2Vub3ZhXCIsXG4gICAgXCJHZXNzYXlvdmFcIixcbiAgICBcIkdldHRpbmdvdsOhXCIsXG4gICAgXCJHb2Ryb3ZhXCIsXG4gICAgXCJHb2dvxL5vdmFcIixcbiAgICBcIkdvbMOhxYhvdmFcIixcbiAgICBcIkdvbmRvdmFcIixcbiAgICBcIkdvcmFsc2vDoVwiLFxuICAgIFwiR29yYXpkb3ZhXCIsXG4gICAgXCJHb3Jrw6lob1wiLFxuICAgIFwiR3JlZ29yb3ZlalwiLFxuICAgIFwiR3LDtnNzbGluZ292YVwiLFxuICAgIFwiR3J1esOtbnNrYVwiLFxuICAgIFwiR3VuZHVsacSNb3ZhXCIsXG4gICAgXCJHdXNldm92YVwiLFxuICAgIFwiSGFhbm92YVwiLFxuICAgIFwiSGFidXJza8OhXCIsXG4gICAgXCJIYWxhxaFvdmFcIixcbiAgICBcIkjDoWxrb3ZhXCIsXG4gICAgXCJIw6Fsb3ZhXCIsXG4gICAgXCJIYW11bGlha292YVwiLFxuICAgIFwiSGFuw6Fja2FcIixcbiAgICBcIkhhbmRsb3Zza8OhXCIsXG4gICAgXCJIYW55IE1lbGnEjWtvdmVqXCIsXG4gICAgXCJIYXJtYW5lY2vDoVwiLFxuICAgIFwiSGFzacSNc2vDoVwiLFxuICAgIFwiSGF0dGFsb3ZhXCIsXG4gICAgXCJIYXZsw63EjWtvdmFcIixcbiAgICBcIkhhdnJhbmlhXCIsXG4gICAgXCJIYXlkbm92YVwiLFxuICAgIFwiSGVybGlhbnNrYVwiLFxuICAgIFwiSGVybGlhbnNrYVwiLFxuICAgIFwiSGV5ZHVrb3ZhXCIsXG4gICAgXCJIbGF2w6HEjWlrb3ZhXCIsXG4gICAgXCJIbGF2YXTDqWhvXCIsXG4gICAgXCJIbGF2bsOpIG7DoW1lc3RpZVwiLFxuICAgIFwiSGxib2vDoSBjZXN0YVwiLFxuICAgIFwiSGxib2vDoSBjZXN0YVwiLFxuICAgIFwiSGxpdm92w6FcIixcbiAgICBcIkhsdcSNw61uc2thXCIsXG4gICAgXCJIb2TDoWxvdmFcIixcbiAgICBcIkhvZMW+b3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiSG9sZWtvdmFcIixcbiAgICBcIkhvbMOtxI1za2FcIixcbiAgICBcIkhvbGzDqWhvXCIsXG4gICAgXCJIb2x1Ynlob1wiLFxuICAgIFwiSG9udGlhbnNrYVwiLFxuICAgIFwiSG9yw6Fyc2thXCIsXG4gICAgXCJIb3Juw6kgxb1pZGlueVwiLFxuICAgIFwiSG9yc2vDoVwiLFxuICAgIFwiSG9yc2vDoVwiLFxuICAgIFwiSHJhZFwiLFxuICAgIFwiSHJhZG7DqSDDumRvbGllXCIsXG4gICAgXCJIcmFjaG92w6FcIixcbiAgICBcIkhyYW5pxI1uw6FcIixcbiAgICBcIkhyZWJlbmRvdmFcIixcbiAgICBcIkhyw61ib3bDoVwiLFxuICAgIFwiSHJpxYhvdnNrw6FcIixcbiAgICBcIkhyb2LDoWtvdmFcIixcbiAgICBcIkhyb2LDoXJza2FcIixcbiAgICBcIkhyb2JvxYhvdmFcIixcbiAgICBcIkh1ZGVjb3ZhXCIsXG4gICAgXCJIdW1lbnNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJIdW1tZWxvdmFcIixcbiAgICBcIkh1cmJhbm92byBuw6FtZXN0aWVcIixcbiAgICBcIkh1cmJhbm92byBuw6FtZXN0aWVcIixcbiAgICBcIkh2aWV6ZG9zbGF2b3ZvIG7DoW1lc1wiLFxuICAgIFwiSMO9cm/FoW92YVwiLFxuICAgIFwiQ2hhbHVwa292YVwiLFxuICAgIFwiQ2hlbWlja8OhXCIsXG4gICAgXCJDaGx1bWVja8OpaG9cIixcbiAgICBcIkNob3J2w6F0c2thXCIsXG4gICAgXCJDaG9ydsOhdHNrYVwiLFxuICAgIFwiScS+anXFoWlub3ZhXCIsXG4gICAgXCJJbGtvdmnEjW92YVwiLFxuICAgIFwiSW5vdmVja8OhXCIsXG4gICAgXCJJbm92ZWNrw6FcIixcbiAgICBcIklza2VybsOta292w6FcIixcbiAgICBcIkl2YW5hIEhvcnbDoXRoYVwiLFxuICAgIFwiSXbDoW5za2EgY2VzdGFcIixcbiAgICBcIkouQy5Icm9uc2vDqWhvXCIsXG4gICAgXCJKYWJsb8WIb3bDoVwiLFxuICAgIFwiSmFkcm92w6FcIixcbiAgICBcIkpha2Fib3ZhXCIsXG4gICAgXCJKYWt1Ym92byBuw6FtZXN0aWVcIixcbiAgICBcIkphbW5pY2vDqWhvXCIsXG4gICAgXCJKw6FuYSBTdGFuaXNsYXZhXCIsXG4gICAgXCJKYW7DocSNa292YVwiLFxuICAgIFwiSmFuxI1vdmFcIixcbiAgICBcIkphbsOta292ZSByb2xlXCIsXG4gICAgXCJKYW5rb2xvdmFcIixcbiAgICBcIkrDoW5vxaHDrWtvdmFcIixcbiAgICBcIkrDoW5vxaFrb3ZhXCIsXG4gICAgXCJKYW5vdG92YVwiLFxuICAgIFwiSsOhbnNrYVwiLFxuICAgIFwiSmFudMOhcm92w6EgY2VzdGFcIixcbiAgICBcIkphcmFiaW5rb3bDoVwiLFxuICAgIFwiSmFybsOhXCIsXG4gICAgXCJKYXJvc2xhdm92YVwiLFxuICAgIFwiSmFyb8Whb3ZhXCIsXG4gICAgXCJKYXNlxYhvdsOhXCIsXG4gICAgXCJKYXNuw6FcIixcbiAgICBcIkphc292c2vDoVwiLFxuICAgIFwiSmFzdHJhYmlhXCIsXG4gICAgXCJKYcWhw61rb3ZhXCIsXG4gICAgXCJKYXZvcmluc2vDoVwiLFxuICAgIFwiSmF2b3JvdsOhXCIsXG4gICAgXCJKYXpkZWNrw6FcIixcbiAgICBcIkplZGzDrWtvdmFcIixcbiAgICBcIkrDqWfDqWhvXCIsXG4gICAgXCJKZWxhxI1pxI1vdmFcIixcbiAgICBcIkplbGVuaWFcIixcbiAgICBcIkplc2VubsOhXCIsXG4gICAgXCJKZXNlbnNrw6lob1wiLFxuICAgIFwiSmlyw6Fza292YVwiLFxuICAgIFwiSmlza3JvdmFcIixcbiAgICBcIkpvemVmc2vDoVwiLFxuICAgIFwiSnVuw6Fja2FcIixcbiAgICBcIkp1bmdtYW5ub3ZhXCIsXG4gICAgXCJKdXJpZ292byBuw6FtZXN0aWVcIixcbiAgICBcIkp1cm92c2vDqWhvXCIsXG4gICAgXCJKdXJza8OhXCIsXG4gICAgXCJKdXN0acSNbsOhXCIsXG4gICAgXCJLIGxvbXVcIixcbiAgICBcIksgxb1lbGV6bmVqIHN0dWRpZW5rZVwiLFxuICAgIFwiS2FsaW7EjWlha292YVwiLFxuICAgIFwiS2FtZW7DoXJza2FcIixcbiAgICBcIkthbWVubsOpIG7DoW1lc3RpZVwiLFxuICAgIFwiS2FwaWNvdmFcIixcbiAgICBcIkthcGl0dWxza8OhXCIsXG4gICAgXCJLYXBpdHVsc2vDvSBkdm9yXCIsXG4gICAgXCJLYXB1Y8OtbnNrYVwiLFxuICAgIFwiS2FwdcWhaWFuc2thXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJhZMW+acSNb3ZhXCIsXG4gICAgXCJLYXJsb3Zlc2vDoVwiLFxuICAgIFwiS2FybG92ZXNrw6kgcmFtZW5vXCIsXG4gICAgXCJLYXJwYXRza8OhXCIsXG4gICAgXCJLYcWhbcOtcnNrYVwiLFxuICAgIFwiS2HFoXRpZWxza2FcIixcbiAgICBcIkthdWthenNrw6FcIixcbiAgICBcIktlbXBlbGVub3ZhXCIsXG4gICAgXCJLZcW+bWFyc2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIktsYWRuaWFuc2thXCIsXG4gICAgXCJLbGFyaXNrw6FcIixcbiAgICBcIktsw6HFoXRvcnNrw6FcIixcbiAgICBcIktsYXRvdnNrw6FcIixcbiAgICBcIktsYXRvdnNrw6FcIixcbiAgICBcIktsZW1lbnNvdmFcIixcbiAgICBcIktsaW5jb3bDoVwiLFxuICAgIFwiS2xvYnXEjW7DrWNrYVwiLFxuICAgIFwiS2xva2/EjW92YVwiLFxuICAgIFwiS8S+dWthdMOhXCIsXG4gICAgXCJLbWXFpW92byBuw6FtZXN0aWVcIixcbiAgICBcIktvY2XEvm92YVwiLFxuICAgIFwiS2/EjcOhbmtvdmFcIixcbiAgICBcIktvaMO6dG92YVwiLFxuICAgIFwiS29sw6Fyc2thXCIsXG4gICAgXCJLb2zDrXNrb3ZhXCIsXG4gICAgXCJLb2xsw6Fyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiS29sbMOhcm92byBuw6FtZXN0aWVcIixcbiAgICBcIktvbG3DoVwiLFxuICAgIFwiS29tw6FyxYhhbnNrw6FcIixcbiAgICBcIktvbcOhcm5pY2vDoVwiLFxuICAgIFwiS29tw6Fybmlja8OhXCIsXG4gICAgXCJLb21lbnNrw6lobyBuw6FtZXN0aWVcIixcbiAgICBcIktvbWluw6Fyc2thXCIsXG4gICAgXCJLb21vbmljb3bDoVwiLFxuICAgIFwiS29ub3Buw6FcIixcbiAgICBcIktvbnZhbGlua292w6FcIixcbiAgICBcIktvbnZlbnRuw6FcIixcbiAgICBcIktvcGFuaWNlXCIsXG4gICAgXCJLb3DEjWlhbnNrYVwiLFxuICAgIFwiS29wZXJuw61rb3ZhXCIsXG4gICAgXCJLb3JhYmluc2vDqWhvXCIsXG4gICAgXCJLb3JlbmnEjW92YVwiLFxuICAgIFwiS29zdGxpdsOpaG9cIixcbiAgICBcIktvc3RvbG7DoVwiLFxuICAgIFwiS2/FoWlja8OhXCIsXG4gICAgXCJLb8WhaWNrw6FcIixcbiAgICBcIktvxaFpY2vDoVwiLFxuICAgIFwiS292w6HEjXNrYVwiLFxuICAgIFwiS292b3JvYm90bsOtY2thXCIsXG4gICAgXCJLb3ppYVwiLFxuICAgIFwiS296aWFya2FcIixcbiAgICBcIktvem1vbmF1dGlja8OhXCIsXG4gICAgXCJLcmFqbsOhXCIsXG4gICAgXCJLcmFrb3Zza8OhXCIsXG4gICAgXCJLcsOhxL5vdnNrw6kgw7pkb2xpZVwiLFxuICAgIFwiS3Jhc2luc2vDqWhvXCIsXG4gICAgXCJLcmFza292YVwiLFxuICAgIFwiS3LDoXNuYVwiLFxuICAgIFwiS3LDoXNub2hvcnNrw6FcIixcbiAgICBcIktyYXNvdnNrw6lob1wiLFxuICAgIFwiS3LDoXRrYVwiLFxuICAgIFwiS3LEjW3DqXJ5aG9cIixcbiAgICBcIktyZW1uaWNrw6FcIixcbiAgICBcIktyZXPDoW5rb3ZhXCIsXG4gICAgXCJLcml2w6FcIixcbiAgICBcIktyacW+a292YVwiLFxuICAgIFwiS3LDrcW+bmFcIixcbiAgICBcIktyw63Fvm5hXCIsXG4gICAgXCJLcsOtxb5uYVwiLFxuICAgIFwiS3LDrcW+bmFcIixcbiAgICBcIktybWFub3ZhXCIsXG4gICAgXCJLcm9tcGHFoXNrw6FcIixcbiAgICBcIktydXBpbnNrw6FcIixcbiAgICBcIktydXBrb3ZhXCIsXG4gICAgXCJLdWLDoW5paG9cIixcbiAgICBcIkt1YsOtbnNrYVwiLFxuICAgIFwiS3VrbG92c2vDoVwiLFxuICAgIFwiS3VrdcSNw61ub3ZhXCIsXG4gICAgXCJLdWt1cmnEjW7DoVwiLFxuICAgIFwiS3Vsw63FoWtvdmFcIixcbiAgICBcIkt1bHTDunJuYVwiLFxuICAgIFwiS3VwZWNrw6lob1wiLFxuICAgIFwiS8O6cGXEvm7DoVwiLFxuICAgIFwiS3V0bMOta292YVwiLFxuICAgIFwiS3V0dXpvdm92YVwiLFxuICAgIFwiS3V6bcOhbnlob1wiLFxuICAgIFwiS3ZhxI1hbG92YVwiLFxuICAgIFwiS3ZldG7DoVwiLFxuICAgIFwiS8O9xI1lcnNrw6lob1wiLFxuICAgIFwiS3lqZXZza8OhXCIsXG4gICAgXCJLeXN1Y2vDoVwiLFxuICAgIFwiTGFib3JlY2vDoVwiLFxuICAgIFwiTGFja292YVwiLFxuICAgIFwiTGFkaXNsYXZhIFPDoXJ1XCIsXG4gICAgXCLEvWFkb3bDoVwiLFxuICAgIFwiTGFjaG92YVwiLFxuICAgIFwixL1hbGlvdsOhXCIsXG4gICAgXCJMYW1hxI1za8OhIGNlc3RhXCIsXG4gICAgXCJMYW1hxI1za8OhIGNlc3RhXCIsXG4gICAgXCJMYW1hbnNrw6lob1wiLFxuICAgIFwiTGFuZGVyZXJvdmFcIixcbiAgICBcIkxhbmdzZmVsZG92YVwiLFxuICAgIFwixL1hbm92w6FcIixcbiAgICBcIkxhc2tvbWVyc2vDqWhvXCIsXG4gICAgXCJMYXXEjWVrb3ZhXCIsXG4gICAgXCJMYXVyaW5za8OhXCIsXG4gICAgXCJMYXphcmV0c2vDoVwiLFxuICAgIFwiTGF6YXJldHNrw6FcIixcbiAgICBcIkxlZ2Vyc2vDqWhvXCIsXG4gICAgXCJMZWdpb27DoXJza2FcIixcbiAgICBcIkxlZ2lvbsOhcnNrYVwiLFxuICAgIFwiTGVob2Nrw6lob1wiLFxuICAgIFwiTGVob2Nrw6lob1wiLFxuICAgIFwiTGVuYXJkb3ZhXCIsXG4gICAgXCJMZXJtb250b3ZvdmFcIixcbiAgICBcIkxlc27DoVwiLFxuICAgIFwiTGXFoWtvdmFcIixcbiAgICBcIkxldGVja8OhXCIsXG4gICAgXCJMZXRpc2tvIE0uUi7FoHRlZsOhbmlrXCIsXG4gICAgXCJMZXRuw6FcIixcbiAgICBcIkxldsOhcnNrYVwiLFxuICAgIFwiTGV2aWNrw6FcIixcbiAgICBcIkxldm/EjXNrw6FcIixcbiAgICBcIkxpZGlja8OhXCIsXG4gICAgXCJMaWV0YXZza8OhXCIsXG4gICAgXCJMaWNoYXJkb3ZhXCIsXG4gICAgXCJMaXBvdsOhXCIsXG4gICAgXCJMaXBvdmlub3bDoVwiLFxuICAgIFwiTGlwdG92c2vDoVwiLFxuICAgIFwiTGlzdG92w6FcIixcbiAgICBcIkzDrcWhxI1pZSBuaXZ5XCIsXG4gICAgXCJMw63FocSNaWUgw7pkb2xpZVwiLFxuICAgIFwiTGl0b3Zza8OhXCIsXG4gICAgXCJMb2Ruw6FcIixcbiAgICBcIkxvbWJhcmRpbmlob1wiLFxuICAgIFwiTG9tb25vc292b3ZhXCIsXG4gICAgXCJMb3BlbsOtY2thXCIsXG4gICAgXCJMb3ZpbnNrw6lob1wiLFxuICAgIFwixL11YmlldG92c2vDoVwiLFxuICAgIFwixL11Ymluc2vDoVwiLFxuICAgIFwixL11YsS+YW5za8OhXCIsXG4gICAgXCLEvXVib2NobmlhbnNrYVwiLFxuICAgIFwixL11Ym92bmlhbnNrYVwiLFxuICAgIFwiTMO6xI1uYVwiLFxuICAgIFwixL11ZG92w6kgbsOhbWVzdGllXCIsXG4gICAgXCLEvXVkb3bDrXRhIEZ1bGx1XCIsXG4gICAgXCJMdWhhxI1vdmlja8OhXCIsXG4gICAgXCJMdcW+aWNrw6FcIixcbiAgICBcIkx1xb5uw6FcIixcbiAgICBcIkzDvWNlam7DoVwiLFxuICAgIFwiTHlrb3Zjb3bDoVwiLFxuICAgIFwiTS4gSGVsbGFcIixcbiAgICBcIk1hZ25ldG92w6FcIixcbiAgICBcIk1hY2hhcm92YVwiLFxuICAgIFwiTWFqYWtvdnNrw6lob1wiLFxuICAgIFwiTWFqZXJuw61rb3ZhXCIsXG4gICAgXCJNw6Fqa292YVwiLFxuICAgIFwiTcOham92w6FcIixcbiAgICBcIk1ha292aWNrw6lob1wiLFxuICAgIFwiTWFsw6FcIixcbiAgICBcIk1hbMOpIHDDoWxlbmlza29cIixcbiAgICBcIk1hbGlub3bDoVwiLFxuICAgIFwiTWFsw70gRHJhxb5kaWFrXCIsXG4gICAgXCJNYWzDvSB0cmhcIixcbiAgICBcIk1hbWF0ZXlvdmFcIixcbiAgICBcIk1hbWF0ZXlvdmFcIixcbiAgICBcIk3DoW5lc292byBuw6FtZXN0aWVcIixcbiAgICBcIk1hcmnDoW5za2FcIixcbiAgICBcIk1hcmllIEN1cmllLVNrbG9kb3dzXCIsXG4gICAgXCJNw6FyaWUgTWVkdmXEj292ZWpcIixcbiAgICBcIk1hcmtvdmFcIixcbiAgICBcIk1hcsOzdHlob1wiLFxuICAgIFwiTWFydMOha292ZWpcIixcbiAgICBcIk1hcnRpbsSNZWtvdmFcIixcbiAgICBcIk1hcnRpbsSNZWtvdmFcIixcbiAgICBcIk1hcnRpbmVuZ292YVwiLFxuICAgIFwiTWFydGluc2vDoVwiLFxuICAgIFwiTWF0ZWphIEJlbGFcIixcbiAgICBcIk1hdGVqa292YVwiLFxuICAgIFwiTWF0acSNbsOhXCIsXG4gICAgXCJNYXTDusWhb3ZhXCIsXG4gICAgXCJNZWRlbsOhXCIsXG4gICAgXCJNZWR6aWVya2FcIixcbiAgICBcIk1lZHppbGFib3JlY2vDoVwiLFxuICAgIFwiTWVybG90b3bDoVwiLFxuICAgIFwiTWVzYcSNbsOhXCIsXG4gICAgXCJNZXN0c2vDoVwiLFxuICAgIFwiTWV0ZW9yb3bDoVwiLFxuICAgIFwiTWV0b2RvdmFcIixcbiAgICBcIk1pY2tpZXdpY3pvdmFcIixcbiAgICBcIk1pZXJvdsOhXCIsXG4gICAgXCJNaWNoYWxza8OhXCIsXG4gICAgXCJNaWtvdsOtbmlob1wiLFxuICAgIFwiTWlrdWzDocWhc2thXCIsXG4gICAgXCJNaWxldGnEjW92YVwiLFxuICAgIFwiTWlsZXRpxI1vdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1pxaHDrWtvdmFcIixcbiAgICBcIk1saWVrw6FyZW5za8OhXCIsXG4gICAgXCJNbHluYXJvdmnEjW92YVwiLFxuICAgIFwiTWx5bnNrw6EgZG9saW5hXCIsXG4gICAgXCJNbHluc2vDoSBkb2xpbmFcIixcbiAgICBcIk1seW5za8OhIGRvbGluYVwiLFxuICAgIFwiTWx5bnNrw6kgbHVoeVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnNrw6kgbml2eVwiLFxuICAgIFwiTWx5bnlcIixcbiAgICBcIk1vZHJhbnNrw6FcIixcbiAgICBcIk1vam3DrXJvdmFcIixcbiAgICBcIk1va3LDocWIIHrDoWhvblwiLFxuICAgIFwiTW9rcm9ow6Fqc2thIGNlc3RhXCIsXG4gICAgXCJNb2xkYXZza8OhXCIsXG4gICAgXCJNb2xlY292YVwiLFxuICAgIFwiTW9yYXZza8OhXCIsXG4gICAgXCJNb3Nrb3Zza8OhXCIsXG4gICAgXCJNb3N0IFNOUFwiLFxuICAgIFwiTW9zdG92w6FcIixcbiAgICBcIk1vxaFvdnNrw6lob1wiLFxuICAgIFwiTW90w71saWFcIixcbiAgICBcIk1veXplc292YVwiLFxuICAgIFwiTW96YXJ0b3ZhXCIsXG4gICAgXCJNcmF6aWFyZW5za8OhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWRyb8WIb3ZhXCIsXG4gICAgXCJNdWNob3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwiTXVyZ2HFoW92YVwiLFxuICAgIFwiTXXFoWvDoXRvdsOhXCIsXG4gICAgXCJNdcWhdG92w6FcIixcbiAgICBcIk3Dunplam7DoVwiLFxuICAgIFwiTXlqYXZza8OhXCIsXG4gICAgXCJNw710bmFcIixcbiAgICBcIk3DvXRuYVwiLFxuICAgIFwiTmEgQmFyw6Fua3VcIixcbiAgICBcIk5hIEJyZXppbsOhY2hcIixcbiAgICBcIk5hIEhyZWJpZW5rdVwiLFxuICAgIFwiTmEgS2FsdsOhcmlpXCIsXG4gICAgXCJOYSBLYW1ww6Fya2VcIixcbiAgICBcIk5hIGtvcGNpXCIsXG4gICAgXCJOYSBrcmnFvm92YXRrw6FjaFwiLFxuICAgIFwiTmEgbMOhbm9jaFwiLFxuICAgIFwiTmEgcGHFoWlcIixcbiAgICBcIk5hIHBpZXNrdVwiLFxuICAgIFwiTmEgUml2acOpcmVcIixcbiAgICBcIk5hIFNpdGluZVwiLFxuICAgIFwiTmEgU2xhdsOtbmVcIixcbiAgICBcIk5hIHN0csOhbmlcIixcbiAgICBcIk5hIMWgdHlyaWRzaWF0a3VcIixcbiAgICBcIk5hIMO6dnJhdGlcIixcbiAgICBcIk5hIHbFlcWha3VcIixcbiAgICBcIk5hIHbDvXNsbsOtXCIsXG4gICAgXCJOw6FixJtsa292YVwiLFxuICAgIFwiTsOhYnJlxb5pZSBhcm0uIGdlbi4gTFwiLFxuICAgIFwiTsOhYnJlxb5uw6FcIixcbiAgICBcIk5hZCBEdW5ham9tXCIsXG4gICAgXCJOYWQgbG9tb21cIixcbiAgICBcIk5hZCBsw7rEjWthbWlcIixcbiAgICBcIk5hZCBsw7rEjWthbWlcIixcbiAgICBcIk5hZCBvc3Ryb3ZvbVwiLFxuICAgIFwiTmFkIFNpaG/FpW91XCIsXG4gICAgXCJOw6FtZXN0aWUgMS4gbcOhamFcIixcbiAgICBcIk7DoW1lc3RpZSBBbGV4YW5kcmEgRFwiLFxuICAgIFwiTsOhbWVzdGllIEJpZWx5IGtyw63FvlwiLFxuICAgIFwiTsOhbWVzdGllIEhyYW5pxI1pYXJvdlwiLFxuICAgIFwiTsOhbWVzdGllIErDoW5hIFBhdmxhXCIsXG4gICAgXCJOw6FtZXN0aWUgxL11ZG92w610YSDFoHRcIixcbiAgICBcIk7DoW1lc3RpZSBNYXJ0aW5hIEJlblwiLFxuICAgIFwiTsOhbS4gTS5SLsWgdGVmw6FuaWthXCIsXG4gICAgXCJOw6FtZXN0aWUgc2xvYm9keVwiLFxuICAgIFwiTsOhbWVzdGllIHNsb2JvZHlcIixcbiAgICBcIk7DoW1lc3RpZSBTTlBcIixcbiAgICBcIk7DoW1lc3RpZSBTTlBcIixcbiAgICBcIk7DoW1lc3RpZSBzdi4gRnJhbnRpxaFcIixcbiAgICBcIk5hcmNpc292w6FcIixcbiAgICBcIk5lZGJhbG92YVwiLFxuICAgIFwiTmVrcmFzb3ZvdmFcIixcbiAgICBcIk5lcm9uZXRvdsOhXCIsXG4gICAgXCJOZXJ1ZG92YVwiLFxuICAgIFwiTmV2w6Rkem92w6FcIixcbiAgICBcIk5lesOhYnVka292w6FcIixcbiAgICBcIk5pxaVvdsOhXCIsXG4gICAgXCJOaXRyaWFuc2thXCIsXG4gICAgXCJOw63FvmlubsOhXCIsXG4gICAgXCJOb2JlbG92YVwiLFxuICAgIFwiTm9iZWxvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJOb3bDoVwiLFxuICAgIFwiTm92w6EgUm/FvsWIYXZza8OhXCIsXG4gICAgXCJOb3ZhY2vDqWhvXCIsXG4gICAgXCJOb3bDqSBww6FsZW5pc2tvXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJSVwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgSUlJXCIsXG4gICAgXCJOb3bDqSB6w6FocmFkeSBJVlwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgVlwiLFxuICAgIFwiTm92w6kgesOhaHJhZHkgVklcIixcbiAgICBcIk5vdsOpIHrDoWhyYWR5IFZJSVwiLFxuICAgIFwiTm92aW7DoXJza2FcIixcbiAgICBcIk5vdm9iYW5za8OhXCIsXG4gICAgXCJOb3ZvaHJhZHNrw6FcIixcbiAgICBcIk5vdm9zdmV0c2vDoVwiLFxuICAgIFwiTm92b3N2ZXRza8OhXCIsXG4gICAgXCJOb3Zvc3ZldHNrw6FcIixcbiAgICBcIk9iZcW+bsOhXCIsXG4gICAgXCJPYmNob2Ruw6FcIixcbiAgICBcIk/EjW92c2vDoVwiLFxuICAgIFwiT2Rib2rDoXJvdlwiLFxuICAgIFwiT2Rib3LDoXJza2FcIixcbiAgICBcIk9kYm9yw6Fyc2tlIG7DoW1lc3RpZVwiLFxuICAgIFwiT2Rib3LDoXJza2UgbsOhbWVzdGllXCIsXG4gICAgXCJPaG5pY292w6FcIixcbiAgICBcIk9rw6FuaWtvdmFcIixcbiAgICBcIk9rcnXFvm7DoVwiLFxuICAgIFwiT2xicmFjaHRvdmFcIixcbiAgICBcIk9sZWprw6Fyc2thXCIsXG4gICAgXCJPbmRhdnNrw6FcIixcbiAgICBcIk9uZHJlam92b3ZhXCIsXG4gICAgXCJPcmF2c2vDoVwiLFxuICAgIFwiT3JlY2hvdsOhIGNlc3RhXCIsXG4gICAgXCJPcmVjaG92w70gcmFkXCIsXG4gICAgXCJPcmllxaFrb3bDoVwiLFxuICAgIFwiT3JtaXNvdmFcIixcbiAgICBcIk9zYWRuw6FcIixcbiAgICBcIk9zdHJhdnNrw6FcIixcbiAgICBcIk9zdHJlZGtvdsOhXCIsXG4gICAgXCJPc3Vza8OpaG9cIixcbiAgICBcIk9zdmV0b3bDoVwiLFxuICAgIFwiT3RvbmVsc2vDoVwiLFxuICAgIFwiT3ZydcSNc2vDoVwiLFxuICAgIFwiT3ZzacWhdHNrw6kgbsOhbWVzdGllXCIsXG4gICAgXCJQYWrFoXTDum5za2FcIixcbiAgICBcIlBhbGFja8OpaG9cIixcbiAgICBcIlBhbMOhcmlrb3ZhXCIsXG4gICAgXCJQYWzDoXJpa292YVwiLFxuICAgIFwiUMOhbGF2c2vDoVwiLFxuICAgIFwiUGFsaXPDoWR5XCIsXG4gICAgXCJQYWxpc8OhZHlcIixcbiAgICBcIlBhbGlzw6FkeVwiLFxuICAgIFwiUGFsa292acSNb3ZhXCIsXG4gICAgXCJQYW5lbnNrw6FcIixcbiAgICBcIlBhbmvDumNob3ZhXCIsXG4gICAgXCJQYW7Ds25za2EgY2VzdGFcIixcbiAgICBcIlBhbnNrw6FcIixcbiAgICBcIlBhcMOhbmtvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJQYXByYcSPb3bDoVwiLFxuICAgIFwiUMOhcmnEjWtvdmFcIixcbiAgICBcIlBhcmtvdsOhXCIsXG4gICAgXCJQYXJ0aXrDoW5za2FcIixcbiAgICBcIlBhc2llbmt5XCIsXG4gICAgXCJQYXVsw61ueWhvXCIsXG4gICAgXCJQYXZsb3ZpxI1vdmFcIixcbiAgICBcIlBhdmxvdm92YVwiLFxuICAgIFwiUGF2bG92c2vDoVwiLFxuICAgIFwiUGHFvmlja8OpaG9cIixcbiAgICBcIlBhxb7DrXRrb3bDoVwiLFxuICAgIFwiUGXEjW5pYW5za2FcIixcbiAgICBcIlBlcm5lY2vDoVwiLFxuICAgIFwiUGVzdG92YXRlxL5za8OhXCIsXG4gICAgXCJQZXRlcnNrw6FcIixcbiAgICBcIlBldHp2YWxvdmFcIixcbiAgICBcIlBlemluc2vDoVwiLFxuICAgIFwiUGllc2/EjW7DoVwiLFxuICAgIFwiUGllxaHFpWFuc2vDoVwiLFxuICAgIFwiUGlmZmxvdmFcIixcbiAgICBcIlBpbMOhcmlrb3ZhXCIsXG4gICAgXCJQaW9uaWVyc2thXCIsXG4gICAgXCJQaXZvxYhrb3bDoVwiLFxuICAgIFwiUGxhbmNrb3ZhXCIsXG4gICAgXCJQbGFuw6l0XCIsXG4gICAgXCJQbMOhdGVuw61ja2FcIixcbiAgICBcIlBsdWhvdsOhXCIsXG4gICAgXCJQbHluw6FyZW5za8OhXCIsXG4gICAgXCJQbHplbnNrw6FcIixcbiAgICBcIlBvYnJlxb5uw6FcIixcbiAgICBcIlBvZCBCw7RyaWtvbVwiLFxuICAgIFwiUG9kIEthbHbDoXJpb3VcIixcbiAgICBcIlBvZCBsZXNvbVwiLFxuICAgIFwiUG9kIFJvdm5pY2FtaVwiLFxuICAgIFwiUG9kIHZpbmljYW1pXCIsXG4gICAgXCJQb2Rob3Jza8OpaG9cIixcbiAgICBcIlBvZGphdm9yaW5za2VqXCIsXG4gICAgXCJQb2RsdcSNaW5za8OpaG9cIixcbiAgICBcIlBvZG5pa292w6FcIixcbiAgICBcIlBvZHRhdHJhbnNrw6lob1wiLFxuICAgIFwiUG9ocm9uc2vDoVwiLFxuICAgIFwiUG9sw6FybmFcIixcbiAgICBcIlBvbG9yZWNrw6lob1wiLFxuICAgIFwiUG/Evm7DoVwiLFxuICAgIFwiUG/EvnNrw6FcIixcbiAgICBcIlBvbHVkbsOta292w6FcIixcbiAgICBcIlBvcnVic2vDqWhvXCIsXG4gICAgXCJQb8WhdG92w6FcIixcbiAgICBcIlBvdmHFvnNrw6FcIixcbiAgICBcIlBvdnJhem7DrWNrYVwiLFxuICAgIFwiUG92cmF6bsOtY2thXCIsXG4gICAgXCJQcmHFvnNrw6FcIixcbiAgICBcIlByZWRzdGFuacSNbsOpIG7DoW1lc3RpXCIsXG4gICAgXCJQcmVwb8WhdHNrw6FcIixcbiAgICBcIlByZcWhZXJub3ZhXCIsXG4gICAgXCJQcmXFoW92c2vDoVwiLFxuICAgIFwiUHJlxaFvdnNrw6FcIixcbiAgICBcIlByZcWhb3Zza8OhXCIsXG4gICAgXCJQcmkgQmllbG9tIGtyw63FvmlcIixcbiAgICBcIlByaSBkdm9yZVwiLFxuICAgIFwiUHJpIER5bmFtaXRrZVwiLFxuICAgIFwiUHJpIEhhYsOhbnNrb20gbWx5bmVcIixcbiAgICBcIlByaSBocmFkbmVqIHN0dWRuaVwiLFxuICAgIFwiUHJpIHNlxI1pXCIsXG4gICAgXCJQcmkgU3RhcmVqIFByYWNow6FybmlcIixcbiAgICBcIlByaSBTdGFyb20gaMOhamlcIixcbiAgICBcIlByaSBTdGFyb20gTcO9dGVcIixcbiAgICBcIlByaSBzdHJlbG5pY2lcIixcbiAgICBcIlByaSBTdWNob20gbWx5bmVcIixcbiAgICBcIlByaSB6dm9uaWNpXCIsXG4gICAgXCJQcmliaW5vdmFcIixcbiAgICBcIlByaWJpbm92YVwiLFxuICAgIFwiUHJpYmlub3ZhXCIsXG4gICAgXCJQcmliacWhb3ZhXCIsXG4gICAgXCJQcmlieWxpbnNrw6FcIixcbiAgICBcIlByaWXEjW5hXCIsXG4gICAgXCJQcmlla29weVwiLFxuICAgIFwiUHJpZW15c2VsbsOhXCIsXG4gICAgXCJQcmllbXlzZWxuw6FcIixcbiAgICBcIlByaWV2b3pza8OhXCIsXG4gICAgXCJQcmlldm96c2vDoVwiLFxuICAgIFwiUHJpZXZvenNrw6FcIixcbiAgICBcIlByw61rb3BvdmFcIixcbiAgICBcIlByaW1hY2nDoWxuZSBuw6FtZXN0aWVcIixcbiAgICBcIlByw61zdGF2XCIsXG4gICAgXCJQcsOtc3Rhdm7DoVwiLFxuICAgIFwiUHJva29maWV2b3ZhXCIsXG4gICAgXCJQcm9rb3BhIFZlxL5rw6lob1wiLFxuICAgIFwiUHJva29wb3ZhXCIsXG4gICAgXCJQcsO6ZG92w6FcIixcbiAgICBcIlBydm9zaWVua292w6FcIixcbiAgICBcIlDDunBhdm92w6FcIixcbiAgICBcIlB1c3TDoVwiLFxuICAgIFwiUHXFoWtpbm92YVwiLFxuICAgIFwiUmHEjWlhbnNrYVwiLFxuICAgIFwiUmHEjWlhbnNrYVwiLFxuICAgIFwiUmHEjWlhbnNrZSBtw710b1wiLFxuICAgIFwiUmFkYXJvdsOhXCIsXG4gICAgXCJSw6FkaW92w6FcIixcbiAgICBcIlJhZGxpbnNrw6lob1wiLFxuICAgIFwiUmFkbmnEjW7DoVwiLFxuICAgIFwiUmFkbmnEjW7DqSBuw6FtZXN0aWVcIixcbiAgICBcIlJhZHZhbnNrw6FcIixcbiAgICBcIlJhanNrw6FcIixcbiAgICBcIlJha2V0b3bDoVwiLFxuICAgIFwiUsOha29zb3bDoVwiLFxuICAgIFwiUmFzdGlzbGF2b3ZhXCIsXG4gICAgXCJSw6F6dXNvdm8gbsOhYnJlxb5pZVwiLFxuICAgIFwiUmVwbsOhXCIsXG4gICAgXCJSZcWhZXRrb3ZhXCIsXG4gICAgXCJSZXZvbHXEjW7DoVwiLFxuICAgIFwiUsOpdm92w6FcIixcbiAgICBcIlJldsO6Y2thXCIsXG4gICAgXCJSZXplZG92w6FcIixcbiAgICBcIlJpYXphbnNrw6FcIixcbiAgICBcIlJpYXphbnNrw6FcIixcbiAgICBcIlJpYmF5b3bDoVwiLFxuICAgIFwiUmllxI1uYVwiLFxuICAgIFwiUmlnZWxlaG9cIixcbiAgICBcIlLDrXpsaW5nb3bDoVwiLFxuICAgIFwiUml6bmVyb3ZhXCIsXG4gICAgXCJSb2JvdG7DrWNrYVwiLFxuICAgIFwiUm9tYW5vdmFcIixcbiAgICBcIlLDtm50Z2Vub3ZhXCIsXG4gICAgXCJSb3Nuw6FcIixcbiAgICBcIlJvdm7DoVwiLFxuICAgIFwiUm92bmlhbmtvdmFcIixcbiAgICBcIlJvdm7DrWtvdsOhXCIsXG4gICAgXCJSb3ptYXLDrW5vdsOhXCIsXG4gICAgXCJSb8W+xYhhdnNrw6FcIixcbiAgICBcIlJvxb7FiGF2c2vDoVwiLFxuICAgIFwiUm/FvsWIYXZza8OhXCIsXG4gICAgXCJSdWJpbnN0ZWlub3ZhXCIsXG4gICAgXCJSdWRuYXlvdm8gbsOhbWVzdGllXCIsXG4gICAgXCJSdW1hbsSNZWtvdsOhXCIsXG4gICAgXCJSdXNvdnNrw6EgY2VzdGFcIixcbiAgICBcIlJ1xb5pxI1rb3bDoVwiLFxuICAgIFwiUnXFvmlub3Zza8OhXCIsXG4gICAgXCJSdcW+aW5vdnNrw6FcIixcbiAgICBcIlJ1xb5pbm92c2vDoVwiLFxuICAgIFwiUnXFvm9tYmVyc2vDoVwiLFxuICAgIFwiUnXFvm92w6EgZG9saW5hXCIsXG4gICAgXCJSdcW+b3bDoSBkb2xpbmFcIixcbiAgICBcIlJ5YsOhcnNrYSBicsOhbmFcIixcbiAgICBcIlJ5Ym7DqSBuw6FtZXN0aWVcIixcbiAgICBcIlLDvWR6aWtvdsOhXCIsXG4gICAgXCJTYWJpbm92c2vDoVwiLFxuICAgIFwiU2FiaW5vdnNrw6FcIixcbiAgICBcIlNhZCBKYW5rYSBLcsOhxL5hXCIsXG4gICAgXCJTYWRvdsOhXCIsXG4gICAgXCJTYXJ0b3Jpc292YVwiLFxuICAgIFwiU2FzaW5rb3ZhXCIsXG4gICAgXCJTZWJlcsOtbmlob1wiLFxuICAgIFwiU2XEjW92c2vDoVwiLFxuICAgIFwiU2VkbMOhcnNrYVwiLFxuICAgIFwiU2VkbW9rcsOhc2tvdsOhXCIsXG4gICAgXCJTZWduZXJvdmFcIixcbiAgICBcIlNla3Vsc2vDoVwiLFxuICAgIFwiU2VtaWFub3ZhXCIsXG4gICAgXCJTZW5pY2vDoVwiLFxuICAgIFwiU2VubsOhXCIsXG4gICAgXCJTY2hpbGxlcm92YVwiLFxuICAgIFwiU2Nob2R5IHByaSBzdGFyZWogdm9cIixcbiAgICBcIlNpYsOtcnNrYVwiLFxuICAgIFwiU2llbmtpZXdpY3pvdmFcIixcbiAgICBcIlNpbHbDoW5za2FcIixcbiAgICBcIlNpbm9rdmV0bsOhXCIsXG4gICAgXCJTa2FsaWNrw6EgY2VzdGFcIixcbiAgICBcIlNrYWxuw6FcIixcbiAgICBcIlNrbGVuw6Fyb3ZhXCIsXG4gICAgXCJTa2xlbsOhcnNrYVwiLFxuICAgIFwiU2zDoWRrb3ZpxI1vdmFcIixcbiAgICBcIlNsYWRvdsOhXCIsXG4gICAgXCJTbMOhdmnEjWllIMO6ZG9saWVcIixcbiAgICBcIlNsYXbDrW5cIixcbiAgICBcIlNsZXDDoVwiLFxuICAgIFwiU2xpYcSNc2thXCIsXG4gICAgXCJTbGllenNrYVwiLFxuICAgIFwiU2xpdmtvdsOhXCIsXG4gICAgXCJTbG5lxI1uw6FcIixcbiAgICBcIlNsb3ZhbnNrw6FcIixcbiAgICBcIlNsb3ZpbnNrw6FcIixcbiAgICBcIlNsb3ZuYWZ0c2vDoVwiLFxuICAgIFwiU2xvd2Fja8OpaG9cIixcbiAgICBcIlNtZXRhbm92YVwiLFxuICAgIFwiU21pa292YVwiLFxuICAgIFwiU21vbGVuaWNrw6FcIixcbiAgICBcIlNtb2xuw61ja2FcIixcbiAgICBcIlNtcmXEjWlhbnNrYVwiLFxuICAgIFwiU29mZXJvdmUgc2Nob2R5XCIsXG4gICAgXCJTb2Now6HFiG92YVwiLFxuICAgIFwiU29rb2xza8OhXCIsXG4gICAgXCJTb2xpdmFyc2vDoVwiLFxuICAgIFwiU29sb8Whbmlja8OhXCIsXG4gICAgXCJTb21vbGlja8OpaG9cIixcbiAgICBcIlNvbW9saWNrw6lob1wiLFxuICAgIFwiU29zbm92w6FcIixcbiAgICBcIlNwacWhc2vDoVwiLFxuICAgIFwiU3Bvam7DoVwiLFxuICAgIFwiU3BvbG/EjWVuc2vDoVwiLFxuICAgIFwiU3B1dG5pa292w6FcIixcbiAgICBcIlNyZXpuZXZza8OpaG9cIixcbiAgICBcIlNybsSNaWFcIixcbiAgICBcIlN0YWNoYW5vdnNrw6FcIixcbiAgICBcIlN0w6FsaWNvdsOhXCIsXG4gICAgXCJTdGFuacSNbsOhXCIsXG4gICAgXCJTdGFyw6EgxIxlcm5pY292w6FcIixcbiAgICBcIlN0YXLDoSBJdsOhbnNrYSBjZXN0YVwiLFxuICAgIFwiU3RhcsOhIFByaWV2b3pza8OhXCIsXG4gICAgXCJTdGFyw6EgVmFqbm9yc2vDoVwiLFxuICAgIFwiU3RhcsOhIHZpbsOhcnNrYVwiLFxuICAgIFwiU3RhcsOpIEdydW50eVwiLFxuICAgIFwiU3RhcsOpIGlocmlza29cIixcbiAgICBcIlN0YXLDqSB6w6FocmFkeVwiLFxuICAgIFwiU3RhcmhyYWRza8OhXCIsXG4gICAgXCJTdGFyb2jDoWpza2FcIixcbiAgICBcIlN0YXJvbWVzdHNrw6FcIixcbiAgICBcIlN0YXJvdHVyc2vDvSBjaG9kbsOta1wiLFxuICAgIFwiU3Rhdml0ZcS+c2vDoVwiLFxuICAgIFwiU3RvZG9sb3ZhXCIsXG4gICAgXCJTdG9rbGFzb3bDoVwiLFxuICAgIFwiU3RyYWtvdmFcIixcbiAgICBcIlN0csOhxb5uaWNrw6FcIixcbiAgICBcIlN0csOhxb5ueSBkb21cIixcbiAgICBcIlN0cmXEjW5pYW5za2FcIixcbiAgICBcIlN0cmVkbsOhXCIsXG4gICAgXCJTdHJlbGVja8OhXCIsXG4gICAgXCJTdHJtw6EgY2VzdGFcIixcbiAgICBcIlN0cm9qbsOtY2thXCIsXG4gICAgXCJTdHJvcGtvdnNrw6FcIixcbiAgICBcIlN0cnVrb3bDoVwiLFxuICAgIFwiU3R1ZGVuw6FcIixcbiAgICBcIlN0dWhvdsOhXCIsXG4gICAgXCJTw7piZcW+bsOhXCIsXG4gICAgXCJTw7podmV6ZG7DoVwiLFxuICAgIFwiU3VjaMOpIG3DvXRvXCIsXG4gICAgXCJTdWNob2hyYWRza8OhXCIsXG4gICAgXCJTw7prZW5uw61ja2FcIixcbiAgICBcIlPDusS+b3Zza8OhXCIsXG4gICAgXCJTdW1iYWxvdmFcIixcbiAgICBcIlPDum1yYcSNbsOhXCIsXG4gICAgXCJTw7rFpWHFvm7DoVwiLFxuICAgIFwiU3bDpHTDqWhvIFZpbmNlbnRhXCIsXG4gICAgXCJTdsOkdG9wbHVrb3ZhXCIsXG4gICAgXCJTdsOkdG9wbHVrb3ZhXCIsXG4gICAgXCJTdsOkdG92b2p0ZcWhc2vDoVwiLFxuICAgIFwiU3ZldGzDoVwiLFxuICAgIFwiU3bDrWJvdsOhXCIsXG4gICAgXCJTdmlkbsOtY2thXCIsXG4gICAgXCJTdm9yYWRvdmFcIixcbiAgICBcIlN2csSNaWFcIixcbiAgICBcIlN5c2xpYVwiLFxuICAgIFwixaBhZsOhcmlrb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaBhZsOhcmlrb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaBhZnLDoW5vdsOhXCIsXG4gICAgXCLFoGFnw6F0b3ZhXCIsXG4gICAgXCLFoGFsdmlvdsOhXCIsXG4gICAgXCLFoGFuY292w6FcIixcbiAgICBcIsWgYW5jb3bDoVwiLFxuICAgIFwixaBhbmNvdsOhXCIsXG4gICAgXCLFoGFuY292w6FcIixcbiAgICBcIsWgw6FuZG9yb3ZhXCIsXG4gICAgXCLFoGFyacWhc2vDoVwiLFxuICAgIFwixaDDocWhb3Zza8OhXCIsXG4gICAgXCLFoGHFoXTDrW5za2FcIixcbiAgICBcIsWgZXbEjWVua292YVwiLFxuICAgIFwixaBpbnRhdnNrw6FcIixcbiAgICBcIsWgw61wa292w6FcIixcbiAgICBcIsWga2FybmljbG92YVwiLFxuICAgIFwixaBrb2xza8OhXCIsXG4gICAgXCLFoGtvdnLDoW7EjWlhXCIsXG4gICAgXCLFoGt1bHTDqXR5aG9cIixcbiAgICBcIsWgb2x0w6lzb3ZlalwiLFxuICAgIFwixaBwaWVzem92YVwiLFxuICAgIFwixaBwaXTDoWxza2FcIixcbiAgICBcIsWgcG9ydG92w6FcIixcbiAgICBcIsWgcm9iw6Fyb3ZvIG7DoW1lc3RpZVwiLFxuICAgIFwixaDFpWFzdG7DoVwiLFxuICAgIFwixaB0ZWRyw6FcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmw6FuaWtvdmFcIixcbiAgICBcIsWgdGVmYW5vdmnEjW92YVwiLFxuICAgIFwixaB0ZWZ1bmtvdmFcIixcbiAgICBcIsWgdGV0aW5vdmFcIixcbiAgICBcIsWgdGlhdm5pY2vDoVwiLFxuICAgIFwixaB0w7pyb3ZhXCIsXG4gICAgXCLFoHR5bmRsb3ZhXCIsXG4gICAgXCLFoHVsZWtvdmFcIixcbiAgICBcIsWgdWxla292YVwiLFxuICAgIFwixaB1bGVrb3ZhXCIsXG4gICAgXCLFoHVtYXZza8OhXCIsXG4gICAgXCLFoHXFiGF2Y292YVwiLFxuICAgIFwixaB1c3Rla292YVwiLFxuICAgIFwixaB2YWJpbnNrw6lob1wiLFxuICAgIFwiVGFiYWtvdsOhXCIsXG4gICAgXCJUYWJsaWNvdmFcIixcbiAgICBcIlTDoWJvcnNrw6FcIixcbiAgICBcIlRham92c2vDqWhvXCIsXG4gICAgXCJUYWxsZXJvdmFcIixcbiAgICBcIlRlaGVsbsOhXCIsXG4gICAgXCJUZWNobmlja8OhXCIsXG4gICAgXCJUZWtvdnNrw6FcIixcbiAgICBcIlRlbG9jdmnEjW7DoVwiLFxuICAgIFwiVGVtYXTDrW5za2FcIixcbiAgICBcIlRlcGxpY2vDoVwiLFxuICAgIFwiVGVyY2hvdnNrw6FcIixcbiAgICBcIlRlc2xvdmFcIixcbiAgICBcIlRldG1heWVyb3ZhXCIsXG4gICAgXCJUaHVyem92YVwiLFxuICAgIFwiVGljaMOhXCIsXG4gICAgXCJUaWxnbmVyb3ZhXCIsXG4gICAgXCJUaW1yYXZpbmFcIixcbiAgICBcIlRvYnJ1Y2vDoVwiLFxuICAgIFwiVG9rYWrDrWNrYVwiLFxuICAgIFwiVG9sc3TDqWhvXCIsXG4gICAgXCJUb23DoW5rb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvbcOhxaFpa292YVwiLFxuICAgIFwiVG9tw6HFoWlrb3ZhXCIsXG4gICAgXCJUb23DocWhaWtvdmFcIixcbiAgICBcIlRvbcOhxaFpa292YVwiLFxuICAgIFwiVG9wb8S+xI1pYW5za2FcIixcbiAgICBcIlRvcG/Evm92w6FcIixcbiAgICBcIlRvdsOhcmVuc2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlYmnFoW92c2vDoVwiLFxuICAgIFwiVHJlbsSNaWFuc2thXCIsXG4gICAgXCJUcmVza2/FiG92YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6EgY2VzdGFcIixcbiAgICBcIlRybmF2c2vDoSBjZXN0YVwiLFxuICAgIFwiVHJuYXZza8OhIGNlc3RhXCIsXG4gICAgXCJUcm5hdnNrw6EgY2VzdGFcIixcbiAgICBcIlRybmF2c2vDqSBtw710b1wiLFxuICAgIFwiVMWVxYhvdsOhXCIsXG4gICAgXCJUcm9qZG9teVwiLFxuICAgIFwiVHXEjWtvdmFcIixcbiAgICBcIlR1cG9sZXZvdmFcIixcbiAgICBcIlR1cmLDrW5vdmFcIixcbiAgICBcIlR1csSNaWFuc2thXCIsXG4gICAgXCJUdXJuaWFuc2thXCIsXG4gICAgXCJUdmFyb8W+a292YVwiLFxuICAgIFwiVHlsb3ZhXCIsXG4gICAgXCJUeXLFoW92byBuw6FicmXFvmllXCIsXG4gICAgXCLDmmRlcm7DrWNrYVwiLFxuICAgIFwiw5pkb2xuw6FcIixcbiAgICBcIlVob3Jrb3bDoVwiLFxuICAgIFwiVWtyYWppbnNrw6FcIixcbiAgICBcIlVsaWNhIDI5LiBhdWd1c3RhXCIsXG4gICAgXCJVbGljYSAyOS4gYXVndXN0YVwiLFxuICAgIFwiVWxpY2EgMjkuIGF1Z3VzdGFcIixcbiAgICBcIlVsaWNhIDI5LiBhdWd1c3RhXCIsXG4gICAgXCJVbGljYSBJbXJpY2hhIEthcnZhxaFcIixcbiAgICBcIlVsaWNhIEpvemVmYSBLcsOzbmVyYVwiLFxuICAgIFwiVWxpY2EgVmlrdG9yYSBUZWdlbGhcIixcbiAgICBcIsOacHJrb3ZhXCIsXG4gICAgXCLDmnJhZG7DrWNrYVwiLFxuICAgIFwiVXLDoW5vdsOhXCIsXG4gICAgXCJVcmLDoW5rb3ZhXCIsXG4gICAgXCJVcnPDrW55aG9cIixcbiAgICBcIlVyxaF1bMOtbnNrYVwiLFxuICAgIFwiw5p6a2FcIixcbiAgICBcIlYgesOhaHJhZMOhY2hcIixcbiAgICBcIlZhamFuc2vDqWhvIG7DoWJyZcW+aWVcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZham5vcnNrw6FcIixcbiAgICBcIlZhbGHFoXNrw6FcIixcbiAgICBcIlZhbGNow6Fyc2thXCIsXG4gICAgXCJWYW5zb3ZlalwiLFxuICAgIFwiVsOhcGVubsOhXCIsXG4gICAgXCJWYXLDrW5za2FcIixcbiAgICBcIlZhcsWhYXZza8OhXCIsXG4gICAgXCJWYXLFoWF2c2vDoVwiLFxuICAgIFwiVmF2aWxvdm92YVwiLFxuICAgIFwiVmF2csOtbm92YVwiLFxuICAgIFwiVmF6b3ZvdmFcIixcbiAgICBcIlbEjWVsw6Fyc2thXCIsXG4gICAgXCJWZWxlaHJhZHNrw6FcIixcbiAgICBcIlZlbHRsw61uc2thXCIsXG4gICAgXCJWZW50w7pyc2thXCIsXG4gICAgXCJWZXRlcm7DoVwiLFxuICAgIFwiVmV0ZXJuaWNvdsOhXCIsXG4gICAgXCJWZXR2b3bDoVwiLFxuICAgIFwiVmllZGVuc2vDoSBjZXN0YVwiLFxuICAgIFwiVmllZGVuc2vDoSBjZXN0YVwiLFxuICAgIFwiVmlldG5hbXNrw6FcIixcbiAgICBcIlbDrWfEvmHFoXNrw6FcIixcbiAgICBcIlZpaG9ybGF0c2vDoVwiLFxuICAgIFwiVmlrdG9yw61ub3ZhXCIsXG4gICAgXCJWaWxvdsOhXCIsXG4gICAgXCJWaW5jZW50YSBIbG/Fvm7DrWthXCIsXG4gICAgXCJWw61ubmFcIixcbiAgICBcIlZsYXN0ZW5lY2vDqSBuw6FtZXN0aWVcIixcbiAgICBcIlZsxI1rb3ZhXCIsXG4gICAgXCJWbMSNa292YVwiLFxuICAgIFwiVmzEjWtvdmFcIixcbiAgICBcIlZvZG7DvSB2cmNoXCIsXG4gICAgXCJWb3RydWJvdmFcIixcbiAgICBcIlZyw6FiZcS+c2vDoVwiLFxuICAgIFwiVnJha3Vuc2vDoSBjZXN0YVwiLFxuICAgIFwiVnJhbm92c2vDoVwiLFxuICAgIFwiVnJldGVub3bDoVwiLFxuICAgIFwiVnJjaG7DoVwiLFxuICAgIFwiVnLDunRvY2vDoVwiLFxuICAgIFwiVnlobGlhZGthXCIsXG4gICAgXCJWeWhuaWFuc2thIGNlc3RhXCIsXG4gICAgXCJWeXNva8OhXCIsXG4gICAgXCJWecWhZWhyYWRza8OhXCIsXG4gICAgXCJWecWhbsOhXCIsXG4gICAgXCJXYXR0b3ZhXCIsXG4gICAgXCJXaWxzb25vdmFcIixcbiAgICBcIldvbGtyb3ZhXCIsXG4gICAgXCJaYSBLYXPDoXLFiG91XCIsXG4gICAgXCJaYSBzb2tvbG92xYhvdVwiLFxuICAgIFwiWmEgU3Rhbmljb3VcIixcbiAgICBcIlphIHRlaGVsxYhvdVwiLFxuICAgIFwiWsOhYm9yc2vDqWhvXCIsXG4gICAgXCJaYWR1bmFqc2vDoSBjZXN0YVwiLFxuICAgIFwiWsOhaG9yw6Fja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyYWRuw61ja2FcIixcbiAgICBcIlrDoWhyZWJza8OhXCIsXG4gICAgXCJaw6FocmVic2vDoVwiLFxuICAgIFwiWsOhbHXFvmlja8OhXCIsXG4gICAgXCJaw6Ftb2Nrw6FcIixcbiAgICBcIlrDoW1vY2vDqSBzY2hvZHlcIixcbiAgICBcIlrDoW1vxI1uw61ja2FcIixcbiAgICBcIlrDoXBhZG7DoVwiLFxuICAgIFwiWsOhcGFkbsO9IHJhZFwiLFxuICAgIFwiWsOhcG9yb8W+c2vDoVwiLFxuICAgIFwiWsOhdGnFoWllXCIsXG4gICAgXCJaw6F2b2Ruw61rb3ZhXCIsXG4gICAgXCJaZWxlbsOhXCIsXG4gICAgXCJaZWxpbsOhcnNrYVwiLFxuICAgIFwiWmltbsOhXCIsXG4gICAgXCJabGF0w6kgcGllc2t5XCIsXG4gICAgXCJabGF0w6kgc2Nob2R5XCIsXG4gICAgXCJabmlldnNrYVwiLFxuICAgIFwiWm9ob3Jza8OhXCIsXG4gICAgXCJab2Nob3ZhXCIsXG4gICAgXCJacmluc2vDqWhvXCIsXG4gICAgXCJadm9sZW5za8OhXCIsXG4gICAgXCLFvWFiw60gbWFqZXJcIixcbiAgICBcIsW9YWJvdG92YVwiLFxuICAgIFwixb1laHJpYW5za2FcIixcbiAgICBcIsW9ZWxlem7DoVwiLFxuICAgIFwixb1lbGV6bmnEjWlhcnNrYVwiLFxuICAgIFwixb1lbGxvdmFcIixcbiAgICBcIsW9aWFyc2thXCIsXG4gICAgXCLFvWlkb3Zza8OhXCIsXG4gICAgXCLFvWlsaW5za8OhXCIsXG4gICAgXCLFvWlsaW5za8OhXCIsXG4gICAgXCLFvWl2bm9zdGVuc2vDoVwiLFxuICAgIFwixb1pxb5rb3ZhXCIsXG4gICAgXCLFvXVwbsOpIG7DoW1lc3RpZVwiXG4gIF0sXG4gIFwic3RyZWV0X25hbWVcIjogW1xuICAgIFwiI3tzdHJlZXR9XCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJTbG92ZW5za29cIlxuICBdXG59O1xuc2suY29tcGFueSA9IHtcbiAgXCJzdWZmaXhcIjogW1xuICAgIFwicy5yLm8uXCIsXG4gICAgXCJhLnMuXCIsXG4gICAgXCJ2Lm8ucy5cIlxuICBdLFxuICBcImFkamVjdGl2ZVwiOiBbXG4gICAgICBcIkFkYXB0aXZlXCIsXG4gICAgICBcIkFkdmFuY2VkXCIsXG4gICAgICBcIkFtZWxpb3JhdGVkXCIsXG4gICAgICBcIkFzc2ltaWxhdGVkXCIsXG4gICAgICBcIkF1dG9tYXRlZFwiLFxuICAgICAgXCJCYWxhbmNlZFwiLFxuICAgICAgXCJCdXNpbmVzcy1mb2N1c2VkXCIsXG4gICAgICBcIkNlbnRyYWxpemVkXCIsXG4gICAgICBcIkNsb25lZFwiLFxuICAgICAgXCJDb21wYXRpYmxlXCIsXG4gICAgICBcIkNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJDcm9zcy1ncm91cFwiLFxuICAgICAgXCJDcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJDdXN0b21lci1mb2N1c2VkXCIsXG4gICAgICBcIkN1c3RvbWl6YWJsZVwiLFxuICAgICAgXCJEZWNlbnRyYWxpemVkXCIsXG4gICAgICBcIkRlLWVuZ2luZWVyZWRcIixcbiAgICAgIFwiRGV2b2x2ZWRcIixcbiAgICAgIFwiRGlnaXRpemVkXCIsXG4gICAgICBcIkRpc3RyaWJ1dGVkXCIsXG4gICAgICBcIkRpdmVyc2VcIixcbiAgICAgIFwiRG93bi1zaXplZFwiLFxuICAgICAgXCJFbmhhbmNlZFwiLFxuICAgICAgXCJFbnRlcnByaXNlLXdpZGVcIixcbiAgICAgIFwiRXJnb25vbWljXCIsXG4gICAgICBcIkV4Y2x1c2l2ZVwiLFxuICAgICAgXCJFeHBhbmRlZFwiLFxuICAgICAgXCJFeHRlbmRlZFwiLFxuICAgICAgXCJGYWNlIHRvIGZhY2VcIixcbiAgICAgIFwiRm9jdXNlZFwiLFxuICAgICAgXCJGcm9udC1saW5lXCIsXG4gICAgICBcIkZ1bGx5LWNvbmZpZ3VyYWJsZVwiLFxuICAgICAgXCJGdW5jdGlvbi1iYXNlZFwiLFxuICAgICAgXCJGdW5kYW1lbnRhbFwiLFxuICAgICAgXCJGdXR1cmUtcHJvb2ZlZFwiLFxuICAgICAgXCJHcmFzcy1yb290c1wiLFxuICAgICAgXCJIb3Jpem9udGFsXCIsXG4gICAgICBcIkltcGxlbWVudGVkXCIsXG4gICAgICBcIklubm92YXRpdmVcIixcbiAgICAgIFwiSW50ZWdyYXRlZFwiLFxuICAgICAgXCJJbnR1aXRpdmVcIixcbiAgICAgIFwiSW52ZXJzZVwiLFxuICAgICAgXCJNYW5hZ2VkXCIsXG4gICAgICBcIk1hbmRhdG9yeVwiLFxuICAgICAgXCJNb25pdG9yZWRcIixcbiAgICAgIFwiTXVsdGktY2hhbm5lbGxlZFwiLFxuICAgICAgXCJNdWx0aS1sYXRlcmFsXCIsXG4gICAgICBcIk11bHRpLWxheWVyZWRcIixcbiAgICAgIFwiTXVsdGktdGllcmVkXCIsXG4gICAgICBcIk5ldHdvcmtlZFwiLFxuICAgICAgXCJPYmplY3QtYmFzZWRcIixcbiAgICAgIFwiT3Blbi1hcmNoaXRlY3RlZFwiLFxuICAgICAgXCJPcGVuLXNvdXJjZVwiLFxuICAgICAgXCJPcGVyYXRpdmVcIixcbiAgICAgIFwiT3B0aW1pemVkXCIsXG4gICAgICBcIk9wdGlvbmFsXCIsXG4gICAgICBcIk9yZ2FuaWNcIixcbiAgICAgIFwiT3JnYW5pemVkXCIsXG4gICAgICBcIlBlcnNldmVyaW5nXCIsXG4gICAgICBcIlBlcnNpc3RlbnRcIixcbiAgICAgIFwiUGhhc2VkXCIsXG4gICAgICBcIlBvbGFyaXNlZFwiLFxuICAgICAgXCJQcmUtZW1wdGl2ZVwiLFxuICAgICAgXCJQcm9hY3RpdmVcIixcbiAgICAgIFwiUHJvZml0LWZvY3VzZWRcIixcbiAgICAgIFwiUHJvZm91bmRcIixcbiAgICAgIFwiUHJvZ3JhbW1hYmxlXCIsXG4gICAgICBcIlByb2dyZXNzaXZlXCIsXG4gICAgICBcIlB1YmxpYy1rZXlcIixcbiAgICAgIFwiUXVhbGl0eS1mb2N1c2VkXCIsXG4gICAgICBcIlJlYWN0aXZlXCIsXG4gICAgICBcIlJlYWxpZ25lZFwiLFxuICAgICAgXCJSZS1jb250ZXh0dWFsaXplZFwiLFxuICAgICAgXCJSZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJlZHVjZWRcIixcbiAgICAgIFwiUmV2ZXJzZS1lbmdpbmVlcmVkXCIsXG4gICAgICBcIlJpZ2h0LXNpemVkXCIsXG4gICAgICBcIlJvYnVzdFwiLFxuICAgICAgXCJTZWFtbGVzc1wiLFxuICAgICAgXCJTZWN1cmVkXCIsXG4gICAgICBcIlNlbGYtZW5hYmxpbmdcIixcbiAgICAgIFwiU2hhcmFibGVcIixcbiAgICAgIFwiU3RhbmQtYWxvbmVcIixcbiAgICAgIFwiU3RyZWFtbGluZWRcIixcbiAgICAgIFwiU3dpdGNoYWJsZVwiLFxuICAgICAgXCJTeW5jaHJvbmlzZWRcIixcbiAgICAgIFwiU3luZXJnaXN0aWNcIixcbiAgICAgIFwiU3luZXJnaXplZFwiLFxuICAgICAgXCJUZWFtLW9yaWVudGVkXCIsXG4gICAgICBcIlRvdGFsXCIsXG4gICAgICBcIlRyaXBsZS1idWZmZXJlZFwiLFxuICAgICAgXCJVbml2ZXJzYWxcIixcbiAgICAgIFwiVXAtc2l6ZWRcIixcbiAgICAgIFwiVXBncmFkYWJsZVwiLFxuICAgICAgXCJVc2VyLWNlbnRyaWNcIixcbiAgICAgIFwiVXNlci1mcmllbmRseVwiLFxuICAgICAgXCJWZXJzYXRpbGVcIixcbiAgICAgIFwiVmlydHVhbFwiLFxuICAgICAgXCJWaXNpb25hcnlcIixcbiAgICAgIFwiVmlzaW9uLW9yaWVudGVkXCJcbiAgICBdLFxuICAgIFwiZGVzY3JpcHRvclwiOlxuICAgIFtcbiAgICAgIFwiMjQgaG91clwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcIjNyZCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjR0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjV0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcIjZ0aCBnZW5lcmF0aW9uXCIsXG4gICAgICBcImFjdHVhdGluZ1wiLFxuICAgICAgXCJhbmFseXppbmdcIixcbiAgICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgICAgXCJhc3luY2hyb25vdXNcIixcbiAgICAgIFwiYXR0aXR1ZGUtb3JpZW50ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJiYW5kd2lkdGgtbW9uaXRvcmVkXCIsXG4gICAgICBcImJpLWRpcmVjdGlvbmFsXCIsXG4gICAgICBcImJpZnVyY2F0ZWRcIixcbiAgICAgIFwiYm90dG9tLWxpbmVcIixcbiAgICAgIFwiY2xlYXItdGhpbmtpbmdcIixcbiAgICAgIFwiY2xpZW50LWRyaXZlblwiLFxuICAgICAgXCJjbGllbnQtc2VydmVyXCIsXG4gICAgICBcImNvaGVyZW50XCIsXG4gICAgICBcImNvaGVzaXZlXCIsXG4gICAgICBcImNvbXBvc2l0ZVwiLFxuICAgICAgXCJjb250ZXh0LXNlbnNpdGl2ZVwiLFxuICAgICAgXCJjb250ZXh0dWFsbHktYmFzZWRcIixcbiAgICAgIFwiY29udGVudC1iYXNlZFwiLFxuICAgICAgXCJkZWRpY2F0ZWRcIixcbiAgICAgIFwiZGVtYW5kLWRyaXZlblwiLFxuICAgICAgXCJkaWRhY3RpY1wiLFxuICAgICAgXCJkaXJlY3Rpb25hbFwiLFxuICAgICAgXCJkaXNjcmV0ZVwiLFxuICAgICAgXCJkaXNpbnRlcm1lZGlhdGVcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCJlY28tY2VudHJpY1wiLFxuICAgICAgXCJlbXBvd2VyaW5nXCIsXG4gICAgICBcImVuY29tcGFzc2luZ1wiLFxuICAgICAgXCJldmVuLWtlZWxlZFwiLFxuICAgICAgXCJleGVjdXRpdmVcIixcbiAgICAgIFwiZXhwbGljaXRcIixcbiAgICAgIFwiZXh1ZGluZ1wiLFxuICAgICAgXCJmYXVsdC10b2xlcmFudFwiLFxuICAgICAgXCJmb3JlZ3JvdW5kXCIsXG4gICAgICBcImZyZXNoLXRoaW5raW5nXCIsXG4gICAgICBcImZ1bGwtcmFuZ2VcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdyaWQtZW5hYmxlZFwiLFxuICAgICAgXCJoZXVyaXN0aWNcIixcbiAgICAgIFwiaGlnaC1sZXZlbFwiLFxuICAgICAgXCJob2xpc3RpY1wiLFxuICAgICAgXCJob21vZ2VuZW91c1wiLFxuICAgICAgXCJodW1hbi1yZXNvdXJjZVwiLFxuICAgICAgXCJoeWJyaWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcImluY3JlbWVudGFsXCIsXG4gICAgICBcImludGFuZ2libGVcIixcbiAgICAgIFwiaW50ZXJhY3RpdmVcIixcbiAgICAgIFwiaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcImxlYWRpbmcgZWRnZVwiLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgXCJsb2dpc3RpY2FsXCIsXG4gICAgICBcIm1heGltaXplZFwiLFxuICAgICAgXCJtZXRob2RpY2FsXCIsXG4gICAgICBcIm1pc3Npb24tY3JpdGljYWxcIixcbiAgICAgIFwibW9iaWxlXCIsXG4gICAgICBcIm1vZHVsYXJcIixcbiAgICAgIFwibW90aXZhdGluZ1wiLFxuICAgICAgXCJtdWx0aW1lZGlhXCIsXG4gICAgICBcIm11bHRpLXN0YXRlXCIsXG4gICAgICBcIm11bHRpLXRhc2tpbmdcIixcbiAgICAgIFwibmF0aW9uYWxcIixcbiAgICAgIFwibmVlZHMtYmFzZWRcIixcbiAgICAgIFwibmV1dHJhbFwiLFxuICAgICAgXCJuZXh0IGdlbmVyYXRpb25cIixcbiAgICAgIFwibm9uLXZvbGF0aWxlXCIsXG4gICAgICBcIm9iamVjdC1vcmllbnRlZFwiLFxuICAgICAgXCJvcHRpbWFsXCIsXG4gICAgICBcIm9wdGltaXppbmdcIixcbiAgICAgIFwicmFkaWNhbFwiLFxuICAgICAgXCJyZWFsLXRpbWVcIixcbiAgICAgIFwicmVjaXByb2NhbFwiLFxuICAgICAgXCJyZWdpb25hbFwiLFxuICAgICAgXCJyZXNwb25zaXZlXCIsXG4gICAgICBcInNjYWxhYmxlXCIsXG4gICAgICBcInNlY29uZGFyeVwiLFxuICAgICAgXCJzb2x1dGlvbi1vcmllbnRlZFwiLFxuICAgICAgXCJzdGFibGVcIixcbiAgICAgIFwic3RhdGljXCIsXG4gICAgICBcInN5c3RlbWF0aWNcIixcbiAgICAgIFwic3lzdGVtaWNcIixcbiAgICAgIFwic3lzdGVtLXdvcnRoeVwiLFxuICAgICAgXCJ0YW5naWJsZVwiLFxuICAgICAgXCJ0ZXJ0aWFyeVwiLFxuICAgICAgXCJ0cmFuc2l0aW9uYWxcIixcbiAgICAgIFwidW5pZm9ybVwiLFxuICAgICAgXCJ1cHdhcmQtdHJlbmRpbmdcIixcbiAgICAgIFwidXNlci1mYWNpbmdcIixcbiAgICAgIFwidmFsdWUtYWRkZWRcIixcbiAgICAgIFwid2ViLWVuYWJsZWRcIixcbiAgICAgIFwid2VsbC1tb2R1bGF0ZWRcIixcbiAgICAgIFwiemVybyBhZG1pbmlzdHJhdGlvblwiLFxuICAgICAgXCJ6ZXJvIGRlZmVjdFwiLFxuICAgICAgXCJ6ZXJvIHRvbGVyYW5jZVwiXG4gICAgXSxcbiAgICBcIm5vdW5cIjpcbiAgICBbXG4gICAgICBcImFiaWxpdHlcIixcbiAgICAgIFwiYWNjZXNzXCIsXG4gICAgICBcImFkYXB0ZXJcIixcbiAgICAgIFwiYWxnb3JpdGhtXCIsXG4gICAgICBcImFsbGlhbmNlXCIsXG4gICAgICBcImFuYWx5emVyXCIsXG4gICAgICBcImFwcGxpY2F0aW9uXCIsXG4gICAgICBcImFwcHJvYWNoXCIsXG4gICAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgICAgXCJhcmNoaXZlXCIsXG4gICAgICBcImFydGlmaWNpYWwgaW50ZWxsaWdlbmNlXCIsXG4gICAgICBcImFycmF5XCIsXG4gICAgICBcImF0dGl0dWRlXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJidWRnZXRhcnkgbWFuYWdlbWVudFwiLFxuICAgICAgXCJjYXBhYmlsaXR5XCIsXG4gICAgICBcImNhcGFjaXR5XCIsXG4gICAgICBcImNoYWxsZW5nZVwiLFxuICAgICAgXCJjaXJjdWl0XCIsXG4gICAgICBcImNvbGxhYm9yYXRpb25cIixcbiAgICAgIFwiY29tcGxleGl0eVwiLFxuICAgICAgXCJjb25jZXB0XCIsXG4gICAgICBcImNvbmdsb21lcmF0aW9uXCIsXG4gICAgICBcImNvbnRpbmdlbmN5XCIsXG4gICAgICBcImNvcmVcIixcbiAgICAgIFwiY3VzdG9tZXIgbG95YWx0eVwiLFxuICAgICAgXCJkYXRhYmFzZVwiLFxuICAgICAgXCJkYXRhLXdhcmVob3VzZVwiLFxuICAgICAgXCJkZWZpbml0aW9uXCIsXG4gICAgICBcImVtdWxhdGlvblwiLFxuICAgICAgXCJlbmNvZGluZ1wiLFxuICAgICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgICBcImV4dHJhbmV0XCIsXG4gICAgICBcImZpcm13YXJlXCIsXG4gICAgICBcImZsZXhpYmlsaXR5XCIsXG4gICAgICBcImZvY3VzIGdyb3VwXCIsXG4gICAgICBcImZvcmVjYXN0XCIsXG4gICAgICBcImZyYW1lXCIsXG4gICAgICBcImZyYW1ld29ya1wiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJmdW5jdGlvbmFsaXRpZXNcIixcbiAgICAgIFwiR3JhcGhpYyBJbnRlcmZhY2VcIixcbiAgICAgIFwiZ3JvdXB3YXJlXCIsXG4gICAgICBcIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZVwiLFxuICAgICAgXCJoYXJkd2FyZVwiLFxuICAgICAgXCJoZWxwLWRlc2tcIixcbiAgICAgIFwiaGllcmFyY2h5XCIsXG4gICAgICBcImh1YlwiLFxuICAgICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJpbmZvLW1lZGlhcmllc1wiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJpbml0aWF0aXZlXCIsXG4gICAgICBcImluc3RhbGxhdGlvblwiLFxuICAgICAgXCJpbnN0cnVjdGlvbiBzZXRcIixcbiAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICBcImludGVybmV0IHNvbHV0aW9uXCIsXG4gICAgICBcImludHJhbmV0XCIsXG4gICAgICBcImtub3dsZWRnZSB1c2VyXCIsXG4gICAgICBcImtub3dsZWRnZSBiYXNlXCIsXG4gICAgICBcImxvY2FsIGFyZWEgbmV0d29ya1wiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJtYXRyaWNlc1wiLFxuICAgICAgXCJtYXRyaXhcIixcbiAgICAgIFwibWV0aG9kb2xvZ3lcIixcbiAgICAgIFwibWlkZGxld2FyZVwiLFxuICAgICAgXCJtaWdyYXRpb25cIixcbiAgICAgIFwibW9kZWxcIixcbiAgICAgIFwibW9kZXJhdG9yXCIsXG4gICAgICBcIm1vbml0b3JpbmdcIixcbiAgICAgIFwibW9yYXRvcml1bVwiLFxuICAgICAgXCJuZXVyYWwtbmV0XCIsXG4gICAgICBcIm9wZW4gYXJjaGl0ZWN0dXJlXCIsXG4gICAgICBcIm9wZW4gc3lzdGVtXCIsXG4gICAgICBcIm9yY2hlc3RyYXRpb25cIixcbiAgICAgIFwicGFyYWRpZ21cIixcbiAgICAgIFwicGFyYWxsZWxpc21cIixcbiAgICAgIFwicG9saWN5XCIsXG4gICAgICBcInBvcnRhbFwiLFxuICAgICAgXCJwcmljaW5nIHN0cnVjdHVyZVwiLFxuICAgICAgXCJwcm9jZXNzIGltcHJvdmVtZW50XCIsXG4gICAgICBcInByb2R1Y3RcIixcbiAgICAgIFwicHJvZHVjdGl2aXR5XCIsXG4gICAgICBcInByb2plY3RcIixcbiAgICAgIFwicHJvamVjdGlvblwiLFxuICAgICAgXCJwcm90b2NvbFwiLFxuICAgICAgXCJzZWN1cmVkIGxpbmVcIixcbiAgICAgIFwic2VydmljZS1kZXNrXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvbHV0aW9uXCIsXG4gICAgICBcInN0YW5kYXJkaXphdGlvblwiLFxuICAgICAgXCJzdHJhdGVneVwiLFxuICAgICAgXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwic3VjY2Vzc1wiLFxuICAgICAgXCJzdXBlcnN0cnVjdHVyZVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN5bmVyZ3lcIixcbiAgICAgIFwic3lzdGVtIGVuZ2luZVwiLFxuICAgICAgXCJ0YXNrLWZvcmNlXCIsXG4gICAgICBcInRocm91Z2hwdXRcIixcbiAgICAgIFwidGltZS1mcmFtZVwiLFxuICAgICAgXCJ0b29sc2V0XCIsXG4gICAgICBcInV0aWxpc2F0aW9uXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid29ya2ZvcmNlXCJcbiAgXSxcbiAgXCJic192ZXJiXCI6IFtcbiAgICAgIFwiaW1wbGVtZW50XCIsXG4gICAgICBcInV0aWxpemVcIixcbiAgICAgIFwiaW50ZWdyYXRlXCIsXG4gICAgICBcInN0cmVhbWxpbmVcIixcbiAgICAgIFwib3B0aW1pemVcIixcbiAgICAgIFwiZXZvbHZlXCIsXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJlbWJyYWNlXCIsXG4gICAgICBcImVuYWJsZVwiLFxuICAgICAgXCJvcmNoZXN0cmF0ZVwiLFxuICAgICAgXCJsZXZlcmFnZVwiLFxuICAgICAgXCJyZWludmVudFwiLFxuICAgICAgXCJhZ2dyZWdhdGVcIixcbiAgICAgIFwiYXJjaGl0ZWN0XCIsXG4gICAgICBcImVuaGFuY2VcIixcbiAgICAgIFwiaW5jZW50aXZpemVcIixcbiAgICAgIFwibW9ycGhcIixcbiAgICAgIFwiZW1wb3dlclwiLFxuICAgICAgXCJlbnZpc2lvbmVlclwiLFxuICAgICAgXCJtb25ldGl6ZVwiLFxuICAgICAgXCJoYXJuZXNzXCIsXG4gICAgICBcImZhY2lsaXRhdGVcIixcbiAgICAgIFwic2VpemVcIixcbiAgICAgIFwiZGlzaW50ZXJtZWRpYXRlXCIsXG4gICAgICBcInN5bmVyZ2l6ZVwiLFxuICAgICAgXCJzdHJhdGVnaXplXCIsXG4gICAgICBcImRlcGxveVwiLFxuICAgICAgXCJicmFuZFwiLFxuICAgICAgXCJncm93XCIsXG4gICAgICBcInRhcmdldFwiLFxuICAgICAgXCJzeW5kaWNhdGVcIixcbiAgICAgIFwic3ludGhlc2l6ZVwiLFxuICAgICAgXCJkZWxpdmVyXCIsXG4gICAgICBcIm1lc2hcIixcbiAgICAgIFwiaW5jdWJhdGVcIixcbiAgICAgIFwiZW5nYWdlXCIsXG4gICAgICBcIm1heGltaXplXCIsXG4gICAgICBcImJlbmNobWFya1wiLFxuICAgICAgXCJleHBlZGl0ZVwiLFxuICAgICAgXCJyZWludGVybWVkaWF0ZVwiLFxuICAgICAgXCJ3aGl0ZWJvYXJkXCIsXG4gICAgICBcInZpc3VhbGl6ZVwiLFxuICAgICAgXCJyZXB1cnBvc2VcIixcbiAgICAgIFwiaW5ub3ZhdGVcIixcbiAgICAgIFwic2NhbGVcIixcbiAgICAgIFwidW5sZWFzaFwiLFxuICAgICAgXCJkcml2ZVwiLFxuICAgICAgXCJleHRlbmRcIixcbiAgICAgIFwiZW5naW5lZXJcIixcbiAgICAgIFwicmV2b2x1dGlvbml6ZVwiLFxuICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgXCJleHBsb2l0XCIsXG4gICAgICBcInRyYW5zaXRpb25cIixcbiAgICAgIFwiZS1lbmFibGVcIixcbiAgICAgIFwiaXRlcmF0ZVwiLFxuICAgICAgXCJjdWx0aXZhdGVcIixcbiAgICAgIFwibWF0cml4XCIsXG4gICAgICBcInByb2R1Y3RpemVcIixcbiAgICAgIFwicmVkZWZpbmVcIixcbiAgICAgIFwicmVjb250ZXh0dWFsaXplXCJcbiAgICBdLFxuICAgIFwiYnNfbm91blwiOiBbXG4gICAgICBcImNsaWNrcy1hbmQtbW9ydGFyXCIsXG4gICAgICBcInZhbHVlLWFkZGVkXCIsXG4gICAgICBcInZlcnRpY2FsXCIsXG4gICAgICBcInByb2FjdGl2ZVwiLFxuICAgICAgXCJyb2J1c3RcIixcbiAgICAgIFwicmV2b2x1dGlvbmFyeVwiLFxuICAgICAgXCJzY2FsYWJsZVwiLFxuICAgICAgXCJsZWFkaW5nLWVkZ2VcIixcbiAgICAgIFwiaW5ub3ZhdGl2ZVwiLFxuICAgICAgXCJpbnR1aXRpdmVcIixcbiAgICAgIFwic3RyYXRlZ2ljXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwibWlzc2lvbi1jcml0aWNhbFwiLFxuICAgICAgXCJzdGlja3lcIixcbiAgICAgIFwib25lLXRvLW9uZVwiLFxuICAgICAgXCIyNC83XCIsXG4gICAgICBcImVuZC10by1lbmRcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcIkIyQlwiLFxuICAgICAgXCJCMkNcIixcbiAgICAgIFwiZ3JhbnVsYXJcIixcbiAgICAgIFwiZnJpY3Rpb25sZXNzXCIsXG4gICAgICBcInZpcnR1YWxcIixcbiAgICAgIFwidmlyYWxcIixcbiAgICAgIFwiZHluYW1pY1wiLFxuICAgICAgXCIyNC8zNjVcIixcbiAgICAgIFwiYmVzdC1vZi1icmVlZFwiLFxuICAgICAgXCJraWxsZXJcIixcbiAgICAgIFwibWFnbmV0aWNcIixcbiAgICAgIFwiYmxlZWRpbmctZWRnZVwiLFxuICAgICAgXCJ3ZWItZW5hYmxlZFwiLFxuICAgICAgXCJpbnRlcmFjdGl2ZVwiLFxuICAgICAgXCJkb3QtY29tXCIsXG4gICAgICBcInNleHlcIixcbiAgICAgIFwiYmFjay1lbmRcIixcbiAgICAgIFwicmVhbC10aW1lXCIsXG4gICAgICBcImVmZmljaWVudFwiLFxuICAgICAgXCJmcm9udC1lbmRcIixcbiAgICAgIFwiZGlzdHJpYnV0ZWRcIixcbiAgICAgIFwic2VhbWxlc3NcIixcbiAgICAgIFwiZXh0ZW5zaWJsZVwiLFxuICAgICAgXCJ0dXJuLWtleVwiLFxuICAgICAgXCJ3b3JsZC1jbGFzc1wiLFxuICAgICAgXCJvcGVuLXNvdXJjZVwiLFxuICAgICAgXCJjcm9zcy1wbGF0Zm9ybVwiLFxuICAgICAgXCJjcm9zcy1tZWRpYVwiLFxuICAgICAgXCJzeW5lcmdpc3RpY1wiLFxuICAgICAgXCJicmlja3MtYW5kLWNsaWNrc1wiLFxuICAgICAgXCJvdXQtb2YtdGhlLWJveFwiLFxuICAgICAgXCJlbnRlcnByaXNlXCIsXG4gICAgICBcImludGVncmF0ZWRcIixcbiAgICAgIFwiaW1wYWN0ZnVsXCIsXG4gICAgICBcIndpcmVsZXNzXCIsXG4gICAgICBcInRyYW5zcGFyZW50XCIsXG4gICAgICBcIm5leHQtZ2VuZXJhdGlvblwiLFxuICAgICAgXCJjdXR0aW5nLWVkZ2VcIixcbiAgICAgIFwidXNlci1jZW50cmljXCIsXG4gICAgICBcInZpc2lvbmFyeVwiLFxuICAgICAgXCJjdXN0b21pemVkXCIsXG4gICAgICBcInViaXF1aXRvdXNcIixcbiAgICAgIFwicGx1Zy1hbmQtcGxheVwiLFxuICAgICAgXCJjb2xsYWJvcmF0aXZlXCIsXG4gICAgICBcImNvbXBlbGxpbmdcIixcbiAgICAgIFwiaG9saXN0aWNcIixcbiAgICAgIFwicmljaFwiLFxuICAgICAgXCJzeW5lcmdpZXNcIixcbiAgICAgIFwid2ViLXJlYWRpbmVzc1wiLFxuICAgICAgXCJwYXJhZGlnbXNcIixcbiAgICAgIFwibWFya2V0c1wiLFxuICAgICAgXCJwYXJ0bmVyc2hpcHNcIixcbiAgICAgIFwiaW5mcmFzdHJ1Y3R1cmVzXCIsXG4gICAgICBcInBsYXRmb3Jtc1wiLFxuICAgICAgXCJpbml0aWF0aXZlc1wiLFxuICAgICAgXCJjaGFubmVsc1wiLFxuICAgICAgXCJleWViYWxsc1wiLFxuICAgICAgXCJjb21tdW5pdGllc1wiLFxuICAgICAgXCJST0lcIixcbiAgICAgIFwic29sdXRpb25zXCIsXG4gICAgICBcImUtdGFpbGVyc1wiLFxuICAgICAgXCJlLXNlcnZpY2VzXCIsXG4gICAgICBcImFjdGlvbi1pdGVtc1wiLFxuICAgICAgXCJwb3J0YWxzXCIsXG4gICAgICBcIm5pY2hlc1wiLFxuICAgICAgXCJ0ZWNobm9sb2dpZXNcIixcbiAgICAgIFwiY29udGVudFwiLFxuICAgICAgXCJ2b3J0YWxzXCIsXG4gICAgICBcInN1cHBseS1jaGFpbnNcIixcbiAgICAgIFwiY29udmVyZ2VuY2VcIixcbiAgICAgIFwicmVsYXRpb25zaGlwc1wiLFxuICAgICAgXCJhcmNoaXRlY3R1cmVzXCIsXG4gICAgICBcImludGVyZmFjZXNcIixcbiAgICAgIFwiZS1tYXJrZXRzXCIsXG4gICAgICBcImUtY29tbWVyY2VcIixcbiAgICAgIFwic3lzdGVtc1wiLFxuICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgIFwiaW5mb21lZGlhcmllc1wiLFxuICAgICAgXCJtb2RlbHNcIixcbiAgICAgIFwibWluZHNoYXJlXCIsXG4gICAgICBcImRlbGl2ZXJhYmxlc1wiLFxuICAgICAgXCJ1c2Vyc1wiLFxuICAgICAgXCJzY2hlbWFzXCIsXG4gICAgICBcIm5ldHdvcmtzXCIsXG4gICAgICBcImFwcGxpY2F0aW9uc1wiLFxuICAgICAgXCJtZXRyaWNzXCIsXG4gICAgICBcImUtYnVzaW5lc3NcIixcbiAgICAgIFwiZnVuY3Rpb25hbGl0aWVzXCIsXG4gICAgICBcImV4cGVyaWVuY2VzXCIsXG4gICAgICBcIndlYiBzZXJ2aWNlc1wiLFxuICAgICAgXCJtZXRob2RvbG9naWVzXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0gI3tzdWZmaXh9XCIsXG4gICAgXCIje05hbWUubWFuX2xhc3RfbmFtZX0gYSAje05hbWUubWFuX2xhc3RfbmFtZX0gI3tzdWZmaXh9XCJcbiAgXVxufTtcbnNrLmludGVybmV0ID0ge1xuICBcImZyZWVfZW1haWxcIjogW1xuICAgIFwiZ21haWwuY29tXCIsXG4gICAgXCJ6b3puYW0uc2tcIixcbiAgICBcImF6ZXQuc2tcIlxuICBdLFxuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwic2tcIixcbiAgICBcImNvbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJldVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnNrLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJwZXJmZXJlbmRpc1wiLFxuICAgIFwic2l0XCIsXG4gICAgXCJ2b2x1cHRhdGVtXCIsXG4gICAgXCJhY2N1c2FudGl1bVwiLFxuICAgIFwiZG9sb3JlbXF1ZVwiLFxuICAgIFwiYXBlcmlhbVwiLFxuICAgIFwiZWFxdWVcIixcbiAgICBcImlwc2FcIixcbiAgICBcInF1YWVcIixcbiAgICBcImFiXCIsXG4gICAgXCJpbGxvXCIsXG4gICAgXCJpbnZlbnRvcmVcIixcbiAgICBcInZlcml0YXRpc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNpXCIsXG4gICAgXCJhcmNoaXRlY3RvXCIsXG4gICAgXCJiZWF0YWVcIixcbiAgICBcInZpdGFlXCIsXG4gICAgXCJkaWN0YVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiZXhwbGljYWJvXCIsXG4gICAgXCJhc3Blcm5hdHVyXCIsXG4gICAgXCJhdXRcIixcbiAgICBcIm9kaXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiZnVnaXRcIixcbiAgICBcInNlZFwiLFxuICAgIFwicXVpYVwiLFxuICAgIFwiY29uc2VxdXVudHVyXCIsXG4gICAgXCJtYWduaVwiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZW9zXCIsXG4gICAgXCJxdWlcIixcbiAgICBcInJhdGlvbmVcIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInNlcXVpXCIsXG4gICAgXCJuZXNjaXVudFwiLFxuICAgIFwibmVxdWVcIixcbiAgICBcImRvbG9yZW1cIixcbiAgICBcImlwc3VtXCIsXG4gICAgXCJxdWlhXCIsXG4gICAgXCJkb2xvclwiLFxuICAgIFwic2l0XCIsXG4gICAgXCJhbWV0XCIsXG4gICAgXCJjb25zZWN0ZXR1clwiLFxuICAgIFwiYWRpcGlzY2lcIixcbiAgICBcInZlbGl0XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInF1aWFcIixcbiAgICBcIm5vblwiLFxuICAgIFwibnVtcXVhbVwiLFxuICAgIFwiZWl1c1wiLFxuICAgIFwibW9kaVwiLFxuICAgIFwidGVtcG9yYVwiLFxuICAgIFwiaW5jaWR1bnRcIixcbiAgICBcInV0XCIsXG4gICAgXCJsYWJvcmVcIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcmVcIixcbiAgICBcIm1hZ25hbVwiLFxuICAgIFwiYWxpcXVhbVwiLFxuICAgIFwicXVhZXJhdFwiLFxuICAgIFwidm9sdXB0YXRlbVwiLFxuICAgIFwidXRcIixcbiAgICBcImVuaW1cIixcbiAgICBcImFkXCIsXG4gICAgXCJtaW5pbWFcIixcbiAgICBcInZlbmlhbVwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwibm9zdHJ1bVwiLFxuICAgIFwiZXhlcmNpdGF0aW9uZW1cIixcbiAgICBcInVsbGFtXCIsXG4gICAgXCJjb3Jwb3Jpc1wiLFxuICAgIFwibmVtb1wiLFxuICAgIFwiZW5pbVwiLFxuICAgIFwiaXBzYW1cIixcbiAgICBcInZvbHVwdGF0ZW1cIixcbiAgICBcInF1aWFcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJzaXRcIixcbiAgICBcInN1c2NpcGl0XCIsXG4gICAgXCJsYWJvcmlvc2FtXCIsXG4gICAgXCJuaXNpXCIsXG4gICAgXCJ1dFwiLFxuICAgIFwiYWxpcXVpZFwiLFxuICAgIFwiZXhcIixcbiAgICBcImVhXCIsXG4gICAgXCJjb21tb2RpXCIsXG4gICAgXCJjb25zZXF1YXR1clwiLFxuICAgIFwicXVpc1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInZlbFwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJpdXJlXCIsXG4gICAgXCJyZXByZWhlbmRlcml0XCIsXG4gICAgXCJxdWlcIixcbiAgICBcImluXCIsXG4gICAgXCJlYVwiLFxuICAgIFwidm9sdXB0YXRlXCIsXG4gICAgXCJ2ZWxpdFwiLFxuICAgIFwiZXNzZVwiLFxuICAgIFwicXVhbVwiLFxuICAgIFwibmloaWxcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwiZXRcIixcbiAgICBcIml1c3RvXCIsXG4gICAgXCJvZGlvXCIsXG4gICAgXCJkaWduaXNzaW1vc1wiLFxuICAgIFwiZHVjaW11c1wiLFxuICAgIFwicXVpXCIsXG4gICAgXCJibGFuZGl0aWlzXCIsXG4gICAgXCJwcmFlc2VudGl1bVwiLFxuICAgIFwibGF1ZGFudGl1bVwiLFxuICAgIFwidG90YW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwidm9sdXB0YXR1bVwiLFxuICAgIFwiZGVsZW5pdGlcIixcbiAgICBcImF0cXVlXCIsXG4gICAgXCJjb3JydXB0aVwiLFxuICAgIFwicXVvc1wiLFxuICAgIFwiZG9sb3Jlc1wiLFxuICAgIFwiZXRcIixcbiAgICBcInF1YXNcIixcbiAgICBcIm1vbGVzdGlhc1wiLFxuICAgIFwiZXhjZXB0dXJpXCIsXG4gICAgXCJzaW50XCIsXG4gICAgXCJvY2NhZWNhdGlcIixcbiAgICBcImN1cGlkaXRhdGVcIixcbiAgICBcIm5vblwiLFxuICAgIFwicHJvdmlkZW50XCIsXG4gICAgXCJzZWRcIixcbiAgICBcInV0XCIsXG4gICAgXCJwZXJzcGljaWF0aXNcIixcbiAgICBcInVuZGVcIixcbiAgICBcIm9tbmlzXCIsXG4gICAgXCJpc3RlXCIsXG4gICAgXCJuYXR1c1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcInNpbWlsaXF1ZVwiLFxuICAgIFwic3VudFwiLFxuICAgIFwiaW5cIixcbiAgICBcImN1bHBhXCIsXG4gICAgXCJxdWlcIixcbiAgICBcIm9mZmljaWFcIixcbiAgICBcImRlc2VydW50XCIsXG4gICAgXCJtb2xsaXRpYVwiLFxuICAgIFwiYW5pbWlcIixcbiAgICBcImlkXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImxhYm9ydW1cIixcbiAgICBcImV0XCIsXG4gICAgXCJkb2xvcnVtXCIsXG4gICAgXCJmdWdhXCIsXG4gICAgXCJldFwiLFxuICAgIFwiaGFydW1cIixcbiAgICBcInF1aWRlbVwiLFxuICAgIFwicmVydW1cIixcbiAgICBcImZhY2lsaXNcIixcbiAgICBcImVzdFwiLFxuICAgIFwiZXRcIixcbiAgICBcImV4cGVkaXRhXCIsXG4gICAgXCJkaXN0aW5jdGlvXCIsXG4gICAgXCJuYW1cIixcbiAgICBcImxpYmVyb1wiLFxuICAgIFwidGVtcG9yZVwiLFxuICAgIFwiY3VtXCIsXG4gICAgXCJzb2x1dGFcIixcbiAgICBcIm5vYmlzXCIsXG4gICAgXCJlc3RcIixcbiAgICBcImVsaWdlbmRpXCIsXG4gICAgXCJvcHRpb1wiLFxuICAgIFwiY3VtcXVlXCIsXG4gICAgXCJuaWhpbFwiLFxuICAgIFwiaW1wZWRpdFwiLFxuICAgIFwicXVvXCIsXG4gICAgXCJwb3Jyb1wiLFxuICAgIFwicXVpc3F1YW1cIixcbiAgICBcImVzdFwiLFxuICAgIFwicXVpXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwiaWRcIixcbiAgICBcInF1b2RcIixcbiAgICBcIm1heGltZVwiLFxuICAgIFwicGxhY2VhdFwiLFxuICAgIFwiZmFjZXJlXCIsXG4gICAgXCJwb3NzaW11c1wiLFxuICAgIFwib21uaXNcIixcbiAgICBcInZvbHVwdGFzXCIsXG4gICAgXCJhc3N1bWVuZGFcIixcbiAgICBcImVzdFwiLFxuICAgIFwib21uaXNcIixcbiAgICBcImRvbG9yXCIsXG4gICAgXCJyZXBlbGxlbmR1c1wiLFxuICAgIFwidGVtcG9yaWJ1c1wiLFxuICAgIFwiYXV0ZW1cIixcbiAgICBcInF1aWJ1c2RhbVwiLFxuICAgIFwiZXRcIixcbiAgICBcImF1dFwiLFxuICAgIFwiY29uc2VxdWF0dXJcIixcbiAgICBcInZlbFwiLFxuICAgIFwiaWxsdW1cIixcbiAgICBcInF1aVwiLFxuICAgIFwiZG9sb3JlbVwiLFxuICAgIFwiZXVtXCIsXG4gICAgXCJmdWdpYXRcIixcbiAgICBcInF1b1wiLFxuICAgIFwidm9sdXB0YXNcIixcbiAgICBcIm51bGxhXCIsXG4gICAgXCJwYXJpYXR1clwiLFxuICAgIFwiYXRcIixcbiAgICBcInZlcm9cIixcbiAgICBcImVvc1wiLFxuICAgIFwiZXRcIixcbiAgICBcImFjY3VzYW11c1wiLFxuICAgIFwib2ZmaWNpaXNcIixcbiAgICBcImRlYml0aXNcIixcbiAgICBcImF1dFwiLFxuICAgIFwicmVydW1cIixcbiAgICBcIm5lY2Vzc2l0YXRpYnVzXCIsXG4gICAgXCJzYWVwZVwiLFxuICAgIFwiZXZlbmlldFwiLFxuICAgIFwidXRcIixcbiAgICBcImV0XCIsXG4gICAgXCJ2b2x1cHRhdGVzXCIsXG4gICAgXCJyZXB1ZGlhbmRhZVwiLFxuICAgIFwic2ludFwiLFxuICAgIFwiZXRcIixcbiAgICBcIm1vbGVzdGlhZVwiLFxuICAgIFwibm9uXCIsXG4gICAgXCJyZWN1c2FuZGFlXCIsXG4gICAgXCJpdGFxdWVcIixcbiAgICBcImVhcnVtXCIsXG4gICAgXCJyZXJ1bVwiLFxuICAgIFwiaGljXCIsXG4gICAgXCJ0ZW5ldHVyXCIsXG4gICAgXCJhXCIsXG4gICAgXCJzYXBpZW50ZVwiLFxuICAgIFwiZGVsZWN0dXNcIixcbiAgICBcInV0XCIsXG4gICAgXCJhdXRcIixcbiAgICBcInJlaWNpZW5kaXNcIixcbiAgICBcInZvbHVwdGF0aWJ1c1wiLFxuICAgIFwibWFpb3Jlc1wiLFxuICAgIFwiZG9sb3JpYnVzXCIsXG4gICAgXCJhc3BlcmlvcmVzXCIsXG4gICAgXCJyZXBlbGxhdFwiXG4gIF0sXG4gIFwic3VwcGxlbWVudGFsXCI6IFtcbiAgICBcImFiYmFzXCIsXG4gICAgXCJhYmR1Y29cIixcbiAgICBcImFiZW9cIixcbiAgICBcImFic2NpZG9cIixcbiAgICBcImFic2NvbmRpdHVzXCIsXG4gICAgXCJhYnNlbnNcIixcbiAgICBcImFic29yYmVvXCIsXG4gICAgXCJhYnNxdWVcIixcbiAgICBcImFic3RlcmdvXCIsXG4gICAgXCJhYnN1bVwiLFxuICAgIFwiYWJ1bmRhbnNcIixcbiAgICBcImFidXRvclwiLFxuICAgIFwiYWNjZWRvXCIsXG4gICAgXCJhY2NlbmRvXCIsXG4gICAgXCJhY2NlcHR1c1wiLFxuICAgIFwiYWNjaXBpb1wiLFxuICAgIFwiYWNjb21tb2RvXCIsXG4gICAgXCJhY2N1c2F0b3JcIixcbiAgICBcImFjZXJcIixcbiAgICBcImFjZXJiaXRhc1wiLFxuICAgIFwiYWNlcnZ1c1wiLFxuICAgIFwiYWNpZHVzXCIsXG4gICAgXCJhY2llc1wiLFxuICAgIFwiYWNxdWlyb1wiLFxuICAgIFwiYWNzaVwiLFxuICAgIFwiYWRhbW9cIixcbiAgICBcImFkYXVnZW9cIixcbiAgICBcImFkZG9cIixcbiAgICBcImFkZHVjb1wiLFxuICAgIFwiYWRlbXB0aW9cIixcbiAgICBcImFkZW9cIixcbiAgICBcImFkZXB0aW9cIixcbiAgICBcImFkZmVjdHVzXCIsXG4gICAgXCJhZGZlcm9cIixcbiAgICBcImFkZmljaW9cIixcbiAgICBcImFkZmxpY3RvXCIsXG4gICAgXCJhZGhhZXJvXCIsXG4gICAgXCJhZGh1Y1wiLFxuICAgIFwiYWRpY2lvXCIsXG4gICAgXCJhZGltcGxlb1wiLFxuICAgIFwiYWRpbnZlbnRpdGlhc1wiLFxuICAgIFwiYWRpcGlzY29yXCIsXG4gICAgXCJhZGl1dm9cIixcbiAgICBcImFkbWluaXN0cmF0aW9cIixcbiAgICBcImFkbWlyYXRpb1wiLFxuICAgIFwiYWRtaXR0b1wiLFxuICAgIFwiYWRtb25lb1wiLFxuICAgIFwiYWRtb3Zlb1wiLFxuICAgIFwiYWRudW9cIixcbiAgICBcImFkb3B0b1wiLFxuICAgIFwiYWRzaWR1ZVwiLFxuICAgIFwiYWRzdHJpbmdvXCIsXG4gICAgXCJhZHN1ZXNjb1wiLFxuICAgIFwiYWRzdW1cIixcbiAgICBcImFkdWxhdGlvXCIsXG4gICAgXCJhZHVsZXNjZW5zXCIsXG4gICAgXCJhZHVsdHVzXCIsXG4gICAgXCJhZHVyb1wiLFxuICAgIFwiYWR2ZW5pb1wiLFxuICAgIFwiYWR2ZXJzdXNcIixcbiAgICBcImFkdm9jb1wiLFxuICAgIFwiYWVkaWZpY2l1bVwiLFxuICAgIFwiYWVnZXJcIixcbiAgICBcImFlZ3JlXCIsXG4gICAgXCJhZWdyb3RhdGlvXCIsXG4gICAgXCJhZWdydXNcIixcbiAgICBcImFlbmV1c1wiLFxuICAgIFwiYWVxdWl0YXNcIixcbiAgICBcImFlcXV1c1wiLFxuICAgIFwiYWVyXCIsXG4gICAgXCJhZXN0YXNcIixcbiAgICBcImFlc3RpdnVzXCIsXG4gICAgXCJhZXN0dXNcIixcbiAgICBcImFldGFzXCIsXG4gICAgXCJhZXRlcm51c1wiLFxuICAgIFwiYWdlclwiLFxuICAgIFwiYWdnZXJvXCIsXG4gICAgXCJhZ2dyZWRpb3JcIixcbiAgICBcImFnbml0aW9cIixcbiAgICBcImFnbm9zY29cIixcbiAgICBcImFnb1wiLFxuICAgIFwiYWl0XCIsXG4gICAgXCJhaXVudFwiLFxuICAgIFwiYWxpZW51c1wiLFxuICAgIFwiYWxpaVwiLFxuICAgIFwiYWxpb3F1aVwiLFxuICAgIFwiYWxpcXVhXCIsXG4gICAgXCJhbGl1c1wiLFxuICAgIFwiYWxsYXR1c1wiLFxuICAgIFwiYWxvXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYWx0dXNcIixcbiAgICBcImFsdmV1c1wiLFxuICAgIFwiYW1hcml0dWRvXCIsXG4gICAgXCJhbWJpdHVzXCIsXG4gICAgXCJhbWJ1bG9cIixcbiAgICBcImFtaWNpdGlhXCIsXG4gICAgXCJhbWljdWx1bVwiLFxuICAgIFwiYW1pc3Npb1wiLFxuICAgIFwiYW1pdGFcIixcbiAgICBcImFtaXR0b1wiLFxuICAgIFwiYW1vXCIsXG4gICAgXCJhbW9yXCIsXG4gICAgXCJhbW92ZW9cIixcbiAgICBcImFtcGxleHVzXCIsXG4gICAgXCJhbXBsaXR1ZG9cIixcbiAgICBcImFtcGx1c1wiLFxuICAgIFwiYW5jaWxsYVwiLFxuICAgIFwiYW5nZWx1c1wiLFxuICAgIFwiYW5ndWx1c1wiLFxuICAgIFwiYW5ndXN0dXNcIixcbiAgICBcImFuaW1hZHZlcnRvXCIsXG4gICAgXCJhbmltaVwiLFxuICAgIFwiYW5pbXVzXCIsXG4gICAgXCJhbm51c1wiLFxuICAgIFwiYW5zZXJcIixcbiAgICBcImFudGVcIixcbiAgICBcImFudGVhXCIsXG4gICAgXCJhbnRlcG9ub1wiLFxuICAgIFwiYW50aXF1dXNcIixcbiAgICBcImFwZXJpb1wiLFxuICAgIFwiYXBlcnRlXCIsXG4gICAgXCJhcG9zdG9sdXNcIixcbiAgICBcImFwcGFyYXR1c1wiLFxuICAgIFwiYXBwZWxsb1wiLFxuICAgIFwiYXBwb25vXCIsXG4gICAgXCJhcHBvc2l0dXNcIixcbiAgICBcImFwcHJvYm9cIixcbiAgICBcImFwdG9cIixcbiAgICBcImFwdHVzXCIsXG4gICAgXCJhcHVkXCIsXG4gICAgXCJhcXVhXCIsXG4gICAgXCJhcmFcIixcbiAgICBcImFyYW5lYVwiLFxuICAgIFwiYXJiaXRyb1wiLFxuICAgIFwiYXJib3JcIixcbiAgICBcImFyYnVzdHVtXCIsXG4gICAgXCJhcmNhXCIsXG4gICAgXCJhcmNlb1wiLFxuICAgIFwiYXJjZXNzb1wiLFxuICAgIFwiYXJjdXNcIixcbiAgICBcImFyZ2VudHVtXCIsXG4gICAgXCJhcmd1bWVudHVtXCIsXG4gICAgXCJhcmd1b1wiLFxuICAgIFwiYXJtYVwiLFxuICAgIFwiYXJtYXJpdW1cIixcbiAgICBcImFybW9cIixcbiAgICBcImFyb1wiLFxuICAgIFwiYXJzXCIsXG4gICAgXCJhcnRpY3VsdXNcIixcbiAgICBcImFydGlmaWNpb3NlXCIsXG4gICAgXCJhcnRvXCIsXG4gICAgXCJhcnhcIixcbiAgICBcImFzY2lzY29cIixcbiAgICBcImFzY2l0XCIsXG4gICAgXCJhc3BlclwiLFxuICAgIFwiYXNwaWNpb1wiLFxuICAgIFwiYXNwb3J0b1wiLFxuICAgIFwiYXNzZW50YXRvclwiLFxuICAgIFwiYXN0cnVtXCIsXG4gICAgXCJhdGF2dXNcIixcbiAgICBcImF0ZXJcIixcbiAgICBcImF0cXVpXCIsXG4gICAgXCJhdHJvY2l0YXNcIixcbiAgICBcImF0cm94XCIsXG4gICAgXCJhdHRlcm9cIixcbiAgICBcImF0dG9sbG9cIixcbiAgICBcImF0dG9uYml0dXNcIixcbiAgICBcImF1Y3RvclwiLFxuICAgIFwiYXVjdHVzXCIsXG4gICAgXCJhdWRhY2lhXCIsXG4gICAgXCJhdWRheFwiLFxuICAgIFwiYXVkZW50aWFcIixcbiAgICBcImF1ZGVvXCIsXG4gICAgXCJhdWRpb1wiLFxuICAgIFwiYXVkaXRvclwiLFxuICAgIFwiYXVmZXJvXCIsXG4gICAgXCJhdXJldXNcIixcbiAgICBcImF1cmlzXCIsXG4gICAgXCJhdXJ1bVwiLFxuICAgIFwiYXV0XCIsXG4gICAgXCJhdXRlbVwiLFxuICAgIFwiYXV0dXNcIixcbiAgICBcImF1eGlsaXVtXCIsXG4gICAgXCJhdmFyaXRpYVwiLFxuICAgIFwiYXZhcnVzXCIsXG4gICAgXCJhdmVob1wiLFxuICAgIFwiYXZlcnRvXCIsXG4gICAgXCJhdm9jb1wiLFxuICAgIFwiYmFpdWx1c1wiLFxuICAgIFwiYmFsYnVzXCIsXG4gICAgXCJiYXJiYVwiLFxuICAgIFwiYmFyZHVzXCIsXG4gICAgXCJiYXNpdW1cIixcbiAgICBcImJlYXR1c1wiLFxuICAgIFwiYmVsbGljdXNcIixcbiAgICBcImJlbGx1bVwiLFxuICAgIFwiYmVuZVwiLFxuICAgIFwiYmVuZWZpY2l1bVwiLFxuICAgIFwiYmVuZXZvbGVudGlhXCIsXG4gICAgXCJiZW5pZ25lXCIsXG4gICAgXCJiZXN0aWFcIixcbiAgICBcImJpYm9cIixcbiAgICBcImJpc1wiLFxuICAgIFwiYmxhbmRpb3JcIixcbiAgICBcImJvbnVzXCIsXG4gICAgXCJib3NcIixcbiAgICBcImJyZXZpc1wiLFxuICAgIFwiY2Fkb1wiLFxuICAgIFwiY2FlY3VzXCIsXG4gICAgXCJjYWVsZXN0aXNcIixcbiAgICBcImNhZWx1bVwiLFxuICAgIFwiY2FsYW1pdGFzXCIsXG4gICAgXCJjYWxjYXJcIixcbiAgICBcImNhbGNvXCIsXG4gICAgXCJjYWxjdWx1c1wiLFxuICAgIFwiY2FsbGlkZVwiLFxuICAgIFwiY2FtcGFuYVwiLFxuICAgIFwiY2FuZGlkdXNcIixcbiAgICBcImNhbmlzXCIsXG4gICAgXCJjYW5vbmljdXNcIixcbiAgICBcImNhbnRvXCIsXG4gICAgXCJjYXBpbGx1c1wiLFxuICAgIFwiY2FwaW9cIixcbiAgICBcImNhcGl0dWx1c1wiLFxuICAgIFwiY2FwdG9cIixcbiAgICBcImNhcHV0XCIsXG4gICAgXCJjYXJib1wiLFxuICAgIFwiY2FyY2VyXCIsXG4gICAgXCJjYXJlb1wiLFxuICAgIFwiY2FyaWVzXCIsXG4gICAgXCJjYXJpb3N1c1wiLFxuICAgIFwiY2FyaXRhc1wiLFxuICAgIFwiY2FybWVuXCIsXG4gICAgXCJjYXJwb1wiLFxuICAgIFwiY2FydXNcIixcbiAgICBcImNhc3NvXCIsXG4gICAgXCJjYXN0ZVwiLFxuICAgIFwiY2FzdXNcIixcbiAgICBcImNhdGVuYVwiLFxuICAgIFwiY2F0ZXJ2YVwiLFxuICAgIFwiY2F0dHVzXCIsXG4gICAgXCJjYXVkYVwiLFxuICAgIFwiY2F1c2FcIixcbiAgICBcImNhdXRlXCIsXG4gICAgXCJjYXZlb1wiLFxuICAgIFwiY2F2dXNcIixcbiAgICBcImNlZG9cIixcbiAgICBcImNlbGVicmVyXCIsXG4gICAgXCJjZWxlclwiLFxuICAgIFwiY2Vsb1wiLFxuICAgIFwiY2VuYVwiLFxuICAgIFwiY2VuYWN1bHVtXCIsXG4gICAgXCJjZW5vXCIsXG4gICAgXCJjZW5zdXJhXCIsXG4gICAgXCJjZW50dW1cIixcbiAgICBcImNlcm5vXCIsXG4gICAgXCJjZXJudXVzXCIsXG4gICAgXCJjZXJ0ZVwiLFxuICAgIFwiY2VydG9cIixcbiAgICBcImNlcnR1c1wiLFxuICAgIFwiY2VydnVzXCIsXG4gICAgXCJjZXRlcmFcIixcbiAgICBcImNoYXJpc21hXCIsXG4gICAgXCJjaGlyb2dyYXBodW1cIixcbiAgICBcImNpYm9cIixcbiAgICBcImNpYnVzXCIsXG4gICAgXCJjaWN1dGFcIixcbiAgICBcImNpbGljaXVtXCIsXG4gICAgXCJjaW1lbnRhcml1c1wiLFxuICAgIFwiY2ltaW5hdGlvXCIsXG4gICAgXCJjaW5pc1wiLFxuICAgIFwiY2lyY3VtdmVuaW9cIixcbiAgICBcImNpdG9cIixcbiAgICBcImNpdmlzXCIsXG4gICAgXCJjaXZpdGFzXCIsXG4gICAgXCJjbGFtXCIsXG4gICAgXCJjbGFtb1wiLFxuICAgIFwiY2xhcm9cIixcbiAgICBcImNsYXJ1c1wiLFxuICAgIFwiY2xhdWRlb1wiLFxuICAgIFwiY2xhdXN0cnVtXCIsXG4gICAgXCJjbGVtZW50aWFcIixcbiAgICBcImNsaWJhbnVzXCIsXG4gICAgXCJjb2FkdW5hdGlvXCIsXG4gICAgXCJjb2FlZ3Jlc2NvXCIsXG4gICAgXCJjb2VwaVwiLFxuICAgIFwiY29lcmNlb1wiLFxuICAgIFwiY29naXRvXCIsXG4gICAgXCJjb2duYXR1c1wiLFxuICAgIFwiY29nbm9tZW5cIixcbiAgICBcImNvZ29cIixcbiAgICBcImNvaGFlcm9cIixcbiAgICBcImNvaGliZW9cIixcbiAgICBcImNvaG9yc1wiLFxuICAgIFwiY29sbGlnb1wiLFxuICAgIFwiY29sbG9jb1wiLFxuICAgIFwiY29sbHVtXCIsXG4gICAgXCJjb2xvXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiY29tYVwiLFxuICAgIFwiY29tYmlib1wiLFxuICAgIFwiY29tYnVyb1wiLFxuICAgIFwiY29tZWRvXCIsXG4gICAgXCJjb21lc1wiLFxuICAgIFwiY29tZXRlc1wiLFxuICAgIFwiY29taXNcIixcbiAgICBcImNvbWl0YXR1c1wiLFxuICAgIFwiY29tbWVtb3JvXCIsXG4gICAgXCJjb21taW5vclwiLFxuICAgIFwiY29tbW9kb1wiLFxuICAgIFwiY29tbXVuaXNcIixcbiAgICBcImNvbXBhcm9cIixcbiAgICBcImNvbXBlbGxvXCIsXG4gICAgXCJjb21wbGVjdHVzXCIsXG4gICAgXCJjb21wb25vXCIsXG4gICAgXCJjb21wcmVoZW5kb1wiLFxuICAgIFwiY29tcHR1c1wiLFxuICAgIFwiY29uYXR1c1wiLFxuICAgIFwiY29uY2Vkb1wiLFxuICAgIFwiY29uY2lkb1wiLFxuICAgIFwiY29uY3VsY29cIixcbiAgICBcImNvbmRpY29cIixcbiAgICBcImNvbmR1Y29cIixcbiAgICBcImNvbmZlcm9cIixcbiAgICBcImNvbmZpZG9cIixcbiAgICBcImNvbmZvcnRvXCIsXG4gICAgXCJjb25mdWdvXCIsXG4gICAgXCJjb25ncmVnYXRpb1wiLFxuICAgIFwiY29uaWNpb1wiLFxuICAgIFwiY29uaWVjdG9cIixcbiAgICBcImNvbml0b3JcIixcbiAgICBcImNvbml1cmF0aW9cIixcbiAgICBcImNvbm9yXCIsXG4gICAgXCJjb25xdWVyb3JcIixcbiAgICBcImNvbnNjZW5kb1wiLFxuICAgIFwiY29uc2Vydm9cIixcbiAgICBcImNvbnNpZGVyb1wiLFxuICAgIFwiY29uc3BlcmdvXCIsXG4gICAgXCJjb25zdGFuc1wiLFxuICAgIFwiY29uc3Vhc29yXCIsXG4gICAgXCJjb250YWJlc2NvXCIsXG4gICAgXCJjb250ZWdvXCIsXG4gICAgXCJjb250aWdvXCIsXG4gICAgXCJjb250cmFcIixcbiAgICBcImNvbnR1cmJvXCIsXG4gICAgXCJjb252ZW50dXNcIixcbiAgICBcImNvbnZvY29cIixcbiAgICBcImNvcGlhXCIsXG4gICAgXCJjb3Bpb3NlXCIsXG4gICAgXCJjb3JudVwiLFxuICAgIFwiY29yb25hXCIsXG4gICAgXCJjb3JwdXNcIixcbiAgICBcImNvcnJlcHRpdXNcIixcbiAgICBcImNvcnJpZ29cIixcbiAgICBcImNvcnJvYm9yb1wiLFxuICAgIFwiY29ycnVtcG9cIixcbiAgICBcImNvcnVzY3VzXCIsXG4gICAgXCJjb3RpZGllXCIsXG4gICAgXCJjcmFwdWxhXCIsXG4gICAgXCJjcmFzXCIsXG4gICAgXCJjcmFzdGludXNcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWJlclwiLFxuICAgIFwiY3JlYnJvXCIsXG4gICAgXCJjcmVkb1wiLFxuICAgIFwiY3Jlb1wiLFxuICAgIFwiY3JlcHRpb1wiLFxuICAgIFwiY3JlcHVzY3VsdW1cIixcbiAgICBcImNyZXNjb1wiLFxuICAgIFwiY3JldGFcIixcbiAgICBcImNyaWJyb1wiLFxuICAgIFwiY3JpbmlzXCIsXG4gICAgXCJjcnVjaWFtZW50dW1cIixcbiAgICBcImNydWRlbGlzXCIsXG4gICAgXCJjcnVlbnR1c1wiLFxuICAgIFwiY3J1clwiLFxuICAgIFwiY3J1c3R1bHVtXCIsXG4gICAgXCJjcnV4XCIsXG4gICAgXCJjdWJpY3VsYXJpc1wiLFxuICAgIFwiY3ViaXR1bVwiLFxuICAgIFwiY3Vib1wiLFxuICAgIFwiY3VpXCIsXG4gICAgXCJjdWl1c1wiLFxuICAgIFwiY3VscGFcIixcbiAgICBcImN1bHBvXCIsXG4gICAgXCJjdWx0ZWxsdXNcIixcbiAgICBcImN1bHR1cmFcIixcbiAgICBcImN1bVwiLFxuICAgIFwiY3VuYWJ1bGFcIixcbiAgICBcImN1bmFlXCIsXG4gICAgXCJjdW5jdGF0aW9cIixcbiAgICBcImN1cGlkaXRhc1wiLFxuICAgIFwiY3VwaW9cIixcbiAgICBcImN1cHBlZGlhXCIsXG4gICAgXCJjdXByZXNzdXNcIixcbiAgICBcImN1clwiLFxuICAgIFwiY3VyYVwiLFxuICAgIFwiY3VyYXRpb1wiLFxuICAgIFwiY3VyaWFcIixcbiAgICBcImN1cmlvc2l0YXNcIixcbiAgICBcImN1cmlzXCIsXG4gICAgXCJjdXJvXCIsXG4gICAgXCJjdXJyaWN1bHVtXCIsXG4gICAgXCJjdXJydXNcIixcbiAgICBcImN1cnNpbVwiLFxuICAgIFwiY3Vyc29cIixcbiAgICBcImN1cnN1c1wiLFxuICAgIFwiY3VydG9cIixcbiAgICBcImN1cnR1c1wiLFxuICAgIFwiY3Vydm9cIixcbiAgICBcImN1cnZ1c1wiLFxuICAgIFwiY3VzdG9kaWFcIixcbiAgICBcImRhbW5hdGlvXCIsXG4gICAgXCJkYW1ub1wiLFxuICAgIFwiZGFwaWZlclwiLFxuICAgIFwiZGViZW9cIixcbiAgICBcImRlYmlsaXRvXCIsXG4gICAgXCJkZWNlbnNcIixcbiAgICBcImRlY2Vybm9cIixcbiAgICBcImRlY2V0XCIsXG4gICAgXCJkZWNpbXVzXCIsXG4gICAgXCJkZWNpcGlvXCIsXG4gICAgXCJkZWNvclwiLFxuICAgIFwiZGVjcmV0dW1cIixcbiAgICBcImRlY3VtYm9cIixcbiAgICBcImRlZGVjb3JcIixcbiAgICBcImRlZGljb1wiLFxuICAgIFwiZGVkdWNvXCIsXG4gICAgXCJkZWZhZWNvXCIsXG4gICAgXCJkZWZlbmRvXCIsXG4gICAgXCJkZWZlcm9cIixcbiAgICBcImRlZmVzc3VzXCIsXG4gICAgXCJkZWZldGlzY29yXCIsXG4gICAgXCJkZWZpY2lvXCIsXG4gICAgXCJkZWZpZ29cIixcbiAgICBcImRlZmxlb1wiLFxuICAgIFwiZGVmbHVvXCIsXG4gICAgXCJkZWZ1bmdvXCIsXG4gICAgXCJkZWdlbmVyb1wiLFxuICAgIFwiZGVnZXJvXCIsXG4gICAgXCJkZWd1c3RvXCIsXG4gICAgXCJkZWluZGVcIixcbiAgICBcImRlbGVjdGF0aW9cIixcbiAgICBcImRlbGVnb1wiLFxuICAgIFwiZGVsZW9cIixcbiAgICBcImRlbGliZXJvXCIsXG4gICAgXCJkZWxpY2F0ZVwiLFxuICAgIFwiZGVsaW5xdW9cIixcbiAgICBcImRlbHVkb1wiLFxuICAgIFwiZGVtZW5zXCIsXG4gICAgXCJkZW1lcmdvXCIsXG4gICAgXCJkZW1pdHRvXCIsXG4gICAgXCJkZW1vXCIsXG4gICAgXCJkZW1vbnN0cm9cIixcbiAgICBcImRlbW9yb3JcIixcbiAgICBcImRlbXVsY2VvXCIsXG4gICAgXCJkZW11bVwiLFxuICAgIFwiZGVuZWdvXCIsXG4gICAgXCJkZW5pcXVlXCIsXG4gICAgXCJkZW5zXCIsXG4gICAgXCJkZW51bmNpb1wiLFxuICAgIFwiZGVudW9cIixcbiAgICBcImRlb3JzdW1cIixcbiAgICBcImRlcGVyZW9cIixcbiAgICBcImRlcG9ub1wiLFxuICAgIFwiZGVwb3B1bG9cIixcbiAgICBcImRlcG9ydG9cIixcbiAgICBcImRlcHJhZWRvclwiLFxuICAgIFwiZGVwcmVjYXRvclwiLFxuICAgIFwiZGVwcmltb1wiLFxuICAgIFwiZGVwcm9tb1wiLFxuICAgIFwiZGVwdWxzb1wiLFxuICAgIFwiZGVwdXRvXCIsXG4gICAgXCJkZXJlbGlucXVvXCIsXG4gICAgXCJkZXJpZGVvXCIsXG4gICAgXCJkZXJpcGlvXCIsXG4gICAgXCJkZXNpZGVyb1wiLFxuICAgIFwiZGVzaW5vXCIsXG4gICAgXCJkZXNpcGlvXCIsXG4gICAgXCJkZXNvbG9cIixcbiAgICBcImRlc3BhcmF0dXNcIixcbiAgICBcImRlc3BlY3RvXCIsXG4gICAgXCJkZXNwaXJtYXRpb1wiLFxuICAgIFwiaW5maXRcIixcbiAgICBcImluZmxhbW1hdGlvXCIsXG4gICAgXCJwYWVuc1wiLFxuICAgIFwicGF0aW9yXCIsXG4gICAgXCJwYXRyaWFcIixcbiAgICBcInBhdHJvY2lub3JcIixcbiAgICBcInBhdHJ1dXNcIixcbiAgICBcInBhdWNpXCIsXG4gICAgXCJwYXVsYXRpbVwiLFxuICAgIFwicGF1cGVyXCIsXG4gICAgXCJwYXhcIixcbiAgICBcInBlY2NhdHVzXCIsXG4gICAgXCJwZWNjb1wiLFxuICAgIFwicGVjdG9cIixcbiAgICBcInBlY3R1c1wiLFxuICAgIFwicGVjdW5pYVwiLFxuICAgIFwicGVjdXNcIixcbiAgICBcInBlaW9yXCIsXG4gICAgXCJwZWxcIixcbiAgICBcIm9jZXJcIixcbiAgICBcInNvY2l1c1wiLFxuICAgIFwic29kYWxpdGFzXCIsXG4gICAgXCJzb2xcIixcbiAgICBcInNvbGVvXCIsXG4gICAgXCJzb2xpb1wiLFxuICAgIFwic29saXR1ZG9cIixcbiAgICBcInNvbGl1bVwiLFxuICAgIFwic29sbGVyc1wiLFxuICAgIFwic29sbGljaXRvXCIsXG4gICAgXCJzb2x1bVwiLFxuICAgIFwic29sdXNcIixcbiAgICBcInNvbHV0aW9cIixcbiAgICBcInNvbHZvXCIsXG4gICAgXCJzb21uaWN1bG9zdXNcIixcbiAgICBcInNvbW51c1wiLFxuICAgIFwic29uaXR1c1wiLFxuICAgIFwic29ub1wiLFxuICAgIFwic29waGlzbWF0YVwiLFxuICAgIFwic29wb3JcIixcbiAgICBcInNvcmRlb1wiLFxuICAgIFwic29ydGl0dXNcIixcbiAgICBcInNwYXJnb1wiLFxuICAgIFwic3BlY2lvc3VzXCIsXG4gICAgXCJzcGVjdGFjdWx1bVwiLFxuICAgIFwic3BlY3VsdW1cIixcbiAgICBcInNwZXJub1wiLFxuICAgIFwic3Blcm9cIixcbiAgICBcInNwZXNcIixcbiAgICBcInNwaWN1bHVtXCIsXG4gICAgXCJzcGlyaXR1c1wiLFxuICAgIFwic3BvbGlhdGlvXCIsXG4gICAgXCJzcG9udGVcIixcbiAgICBcInN0YWJpbGlzXCIsXG4gICAgXCJzdGF0aW1cIixcbiAgICBcInN0YXR1YVwiLFxuICAgIFwic3RlbGxhXCIsXG4gICAgXCJzdGlsbGljaWRpdW1cIixcbiAgICBcInN0aXBlc1wiLFxuICAgIFwic3RpcHNcIixcbiAgICBcInN0b1wiLFxuICAgIFwic3RyZW51dXNcIixcbiAgICBcInN0cnVlc1wiLFxuICAgIFwic3R1ZGlvXCIsXG4gICAgXCJzdHVsdHVzXCIsXG4gICAgXCJzdWFkZW9cIixcbiAgICBcInN1YXNvcmlhXCIsXG4gICAgXCJzdWJcIixcbiAgICBcInN1Yml0b1wiLFxuICAgIFwic3ViaXVuZ29cIixcbiAgICBcInN1YmxpbWVcIixcbiAgICBcInN1Ym5lY3RvXCIsXG4gICAgXCJzdWJzZWNvXCIsXG4gICAgXCJzdWJzdGFudGlhXCIsXG4gICAgXCJzdWJ2ZW5pb1wiLFxuICAgIFwic3VjY2Vkb1wiLFxuICAgIFwic3VjY3Vycm9cIixcbiAgICBcInN1ZmZpY2lvXCIsXG4gICAgXCJzdWZmb2NvXCIsXG4gICAgXCJzdWZmcmFnaXVtXCIsXG4gICAgXCJzdWdnZXJvXCIsXG4gICAgXCJzdWlcIixcbiAgICBcInN1bHVtXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN1bW1hXCIsXG4gICAgXCJzdW1taXNzZVwiLFxuICAgIFwic3VtbW9wZXJlXCIsXG4gICAgXCJzdW1vXCIsXG4gICAgXCJzdW1wdHVzXCIsXG4gICAgXCJzdXBlbGxleFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN1cHBlbGxleFwiLFxuICAgIFwic3VwcGxhbnRvXCIsXG4gICAgXCJzdXBwb25vXCIsXG4gICAgXCJzdXByYVwiLFxuICAgIFwic3VyY3VsdXNcIixcbiAgICBcInN1cmdvXCIsXG4gICAgXCJzdXJzdW1cIixcbiAgICBcInN1c2NpcGlvXCIsXG4gICAgXCJzdXNwZW5kb1wiLFxuICAgIFwic3VzdGluZW9cIixcbiAgICBcInN1dXNcIixcbiAgICBcInN5bmFnb2dhXCIsXG4gICAgXCJ0YWJlbGxhXCIsXG4gICAgXCJ0YWJlcm51c1wiLFxuICAgIFwidGFiZXNjb1wiLFxuICAgIFwidGFiZ29cIixcbiAgICBcInRhYnVsYVwiLFxuICAgIFwidGFjZW9cIixcbiAgICBcInRhY3R1c1wiLFxuICAgIFwidGFlZGl1bVwiLFxuICAgIFwidGFsaW9cIixcbiAgICBcInRhbGlzXCIsXG4gICAgXCJ0YWx1c1wiLFxuICAgIFwidGFtXCIsXG4gICAgXCJ0YW1kaXVcIixcbiAgICBcInRhbWVuXCIsXG4gICAgXCJ0YW1ldHNpXCIsXG4gICAgXCJ0YW1pc2l1bVwiLFxuICAgIFwidGFtcXVhbVwiLFxuICAgIFwidGFuZGVtXCIsXG4gICAgXCJ0YW50aWxsdXNcIixcbiAgICBcInRhbnR1bVwiLFxuICAgIFwidGFyZHVzXCIsXG4gICAgXCJ0ZWdvXCIsXG4gICAgXCJ0ZW1lcml0YXNcIixcbiAgICBcInRlbXBlcmFudGlhXCIsXG4gICAgXCJ0ZW1wbHVtXCIsXG4gICAgXCJ0ZW1wdGF0aW9cIixcbiAgICBcInRlbXB1c1wiLFxuICAgIFwidGVuYXhcIixcbiAgICBcInRlbmRvXCIsXG4gICAgXCJ0ZW5lb1wiLFxuICAgIFwidGVuZXJcIixcbiAgICBcInRlbnVpc1wiLFxuICAgIFwidGVudXNcIixcbiAgICBcInRlcGVzY29cIixcbiAgICBcInRlcGlkdXNcIixcbiAgICBcInRlclwiLFxuICAgIFwidGVyZWJyb1wiLFxuICAgIFwidGVyZXNcIixcbiAgICBcInRlcmdhXCIsXG4gICAgXCJ0ZXJnZW9cIixcbiAgICBcInRlcmdpdmVyc2F0aW9cIixcbiAgICBcInRlcmdvXCIsXG4gICAgXCJ0ZXJndW1cIixcbiAgICBcInRlcm1lc1wiLFxuICAgIFwidGVybWluYXRpb1wiLFxuICAgIFwidGVyb1wiLFxuICAgIFwidGVycmFcIixcbiAgICBcInRlcnJlb1wiLFxuICAgIFwidGVycml0b1wiLFxuICAgIFwidGVycm9yXCIsXG4gICAgXCJ0ZXJzdXNcIixcbiAgICBcInRlcnRpdXNcIixcbiAgICBcInRlc3RpbW9uaXVtXCIsXG4gICAgXCJ0ZXhvXCIsXG4gICAgXCJ0ZXh0aWxpc1wiLFxuICAgIFwidGV4dG9yXCIsXG4gICAgXCJ0ZXh0dXNcIixcbiAgICBcInRoYWxhc3NpbnVzXCIsXG4gICAgXCJ0aGVhdHJ1bVwiLFxuICAgIFwidGhlY2FcIixcbiAgICBcInRoZW1hXCIsXG4gICAgXCJ0aGVvbG9ndXNcIixcbiAgICBcInRoZXJtYWVcIixcbiAgICBcInRoZXNhdXJ1c1wiLFxuICAgIFwidGhlc2lzXCIsXG4gICAgXCJ0aG9yYXhcIixcbiAgICBcInRoeW1icmFcIixcbiAgICBcInRoeW11bVwiLFxuICAgIFwidGliaVwiLFxuICAgIFwidGltaWR1c1wiLFxuICAgIFwidGltb3JcIixcbiAgICBcInRpdHVsdXNcIixcbiAgICBcInRvbGVyb1wiLFxuICAgIFwidG9sbG9cIixcbiAgICBcInRvbmRlb1wiLFxuICAgIFwidG9uc29yXCIsXG4gICAgXCJ0b3JxdWVvXCIsXG4gICAgXCJ0b3JyZW5zXCIsXG4gICAgXCJ0b3RcIixcbiAgICBcInRvdGlkZW1cIixcbiAgICBcInRvdGllc1wiLFxuICAgIFwidG90dXNcIixcbiAgICBcInRyYWN0b1wiLFxuICAgIFwidHJhZG9cIixcbiAgICBcInRyYWhvXCIsXG4gICAgXCJ0cmFuc1wiLFxuICAgIFwidHJlZGVjaW1cIixcbiAgICBcInRyZW1vXCIsXG4gICAgXCJ0cmVwaWRlXCIsXG4gICAgXCJ0cmVzXCIsXG4gICAgXCJ0cmlidW9cIixcbiAgICBcInRyaWNlc2ltdXNcIixcbiAgICBcInRyaWR1YW5hXCIsXG4gICAgXCJ0cmlnaW50YVwiLFxuICAgIFwidHJpcHVkaW9cIixcbiAgICBcInRyaXN0aXNcIixcbiAgICBcInRyaXVtcGh1c1wiLFxuICAgIFwidHJ1Y2lkb1wiLFxuICAgIFwidHJ1Y3VsZW50ZXJcIixcbiAgICBcInR1YmluZXVzXCIsXG4gICAgXCJ0dWlcIixcbiAgICBcInR1bVwiLFxuICAgIFwidHVtdWx0dXNcIixcbiAgICBcInR1bmNcIixcbiAgICBcInR1cmJhXCIsXG4gICAgXCJ0dXJib1wiLFxuICAgIFwidHVycGVcIixcbiAgICBcInR1cnBpc1wiLFxuICAgIFwidHV0YW1lblwiLFxuICAgIFwidHV0aXNcIixcbiAgICBcInR5cmFubnVzXCIsXG4gICAgXCJ1YmVycmltZVwiLFxuICAgIFwidWJpXCIsXG4gICAgXCJ1bGNpc2NvclwiLFxuICAgIFwidWxsdXNcIixcbiAgICBcInVsdGVyaXVzXCIsXG4gICAgXCJ1bHRpb1wiLFxuICAgIFwidWx0cmFcIixcbiAgICBcInVtYnJhXCIsXG4gICAgXCJ1bWVydXNcIixcbiAgICBcInVtcXVhbVwiLFxuICAgIFwidW5hXCIsXG4gICAgXCJ1bmRlXCIsXG4gICAgXCJ1bmRpcXVlXCIsXG4gICAgXCJ1bml2ZXJzZVwiLFxuICAgIFwidW51c1wiLFxuICAgIFwidXJiYW51c1wiLFxuICAgIFwidXJic1wiLFxuICAgIFwidXJlZG9cIixcbiAgICBcInVzaXRhc1wiLFxuICAgIFwidXNxdWVcIixcbiAgICBcInVzdGlsb1wiLFxuICAgIFwidXN0dWxvXCIsXG4gICAgXCJ1c3VzXCIsXG4gICAgXCJ1dGVyXCIsXG4gICAgXCJ1dGVycXVlXCIsXG4gICAgXCJ1dGlsaXNcIixcbiAgICBcInV0aXF1ZVwiLFxuICAgIFwidXRvclwiLFxuICAgIFwidXRwb3RlXCIsXG4gICAgXCJ1dHJpbXF1ZVwiLFxuICAgIFwidXRyb3F1ZVwiLFxuICAgIFwidXRydW1cIixcbiAgICBcInV4b3JcIixcbiAgICBcInZhY29cIixcbiAgICBcInZhY3V1c1wiLFxuICAgIFwidmFkb1wiLFxuICAgIFwidmFlXCIsXG4gICAgXCJ2YWxkZVwiLFxuICAgIFwidmFsZW5zXCIsXG4gICAgXCJ2YWxlb1wiLFxuICAgIFwidmFsZXR1ZG9cIixcbiAgICBcInZhbGlkdXNcIixcbiAgICBcInZhbGx1bVwiLFxuICAgIFwidmFwdWx1c1wiLFxuICAgIFwidmFyaWV0YXNcIixcbiAgICBcInZhcml1c1wiLFxuICAgIFwidmVoZW1lbnNcIixcbiAgICBcInZlbFwiLFxuICAgIFwidmVsb2NpdGVyXCIsXG4gICAgXCJ2ZWx1bVwiLFxuICAgIFwidmVsdXRcIixcbiAgICBcInZlbmlhXCIsXG4gICAgXCJ2ZW5pb1wiLFxuICAgIFwidmVudGl0b1wiLFxuICAgIFwidmVudG9zdXNcIixcbiAgICBcInZlbnR1c1wiLFxuICAgIFwidmVudXN0YXNcIixcbiAgICBcInZlclwiLFxuICAgIFwidmVyYmVyYVwiLFxuICAgIFwidmVyYnVtXCIsXG4gICAgXCJ2ZXJlXCIsXG4gICAgXCJ2ZXJlY3VuZGlhXCIsXG4gICAgXCJ2ZXJlb3JcIixcbiAgICBcInZlcmdvXCIsXG4gICAgXCJ2ZXJpdGFzXCIsXG4gICAgXCJ2ZXJvXCIsXG4gICAgXCJ2ZXJzdXNcIixcbiAgICBcInZlcnRvXCIsXG4gICAgXCJ2ZXJ1bXRhbWVuXCIsXG4gICAgXCJ2ZXJ1c1wiLFxuICAgIFwidmVzY29cIixcbiAgICBcInZlc2ljYVwiLFxuICAgIFwidmVzcGVyXCIsXG4gICAgXCJ2ZXNwaWxsb1wiLFxuICAgIFwidmVzdGVyXCIsXG4gICAgXCJ2ZXN0aWdpdW1cIixcbiAgICBcInZlc3RydW1cIixcbiAgICBcInZldHVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpY2ludXNcIixcbiAgICBcInZpY2lzc2l0dWRvXCIsXG4gICAgXCJ2aWN0b3JpYVwiLFxuICAgIFwidmljdHVzXCIsXG4gICAgXCJ2aWRlbGljZXRcIixcbiAgICBcInZpZGVvXCIsXG4gICAgXCJ2aWR1YXRhXCIsXG4gICAgXCJ2aWR1b1wiLFxuICAgIFwidmlnaWxvXCIsXG4gICAgXCJ2aWdvclwiLFxuICAgIFwidmlsaWN1c1wiLFxuICAgIFwidmlsaXNcIixcbiAgICBcInZpbGl0YXNcIixcbiAgICBcInZpbGxhXCIsXG4gICAgXCJ2aW5jb1wiLFxuICAgIFwidmluY3VsdW1cIixcbiAgICBcInZpbmRpY29cIixcbiAgICBcInZpbml0b3JcIixcbiAgICBcInZpbnVtXCIsXG4gICAgXCJ2aXJcIixcbiAgICBcInZpcmdhXCIsXG4gICAgXCJ2aXJnb1wiLFxuICAgIFwidmlyaWRpc1wiLFxuICAgIFwidmlyaWxpdGVyXCIsXG4gICAgXCJ2aXJ0dXNcIixcbiAgICBcInZpc1wiLFxuICAgIFwidmlzY3VzXCIsXG4gICAgXCJ2aXRhXCIsXG4gICAgXCJ2aXRpb3N1c1wiLFxuICAgIFwidml0aXVtXCIsXG4gICAgXCJ2aXRvXCIsXG4gICAgXCJ2aXZvXCIsXG4gICAgXCJ2aXhcIixcbiAgICBcInZvYmlzXCIsXG4gICAgXCJ2b2NpZmVyb3JcIixcbiAgICBcInZvY29cIixcbiAgICBcInZvbGF0aWN1c1wiLFxuICAgIFwidm9sb1wiLFxuICAgIFwidm9sdWJpbGlzXCIsXG4gICAgXCJ2b2x1bnRhcml1c1wiLFxuICAgIFwidm9sdXBcIixcbiAgICBcInZvbHV0YWJydW1cIixcbiAgICBcInZvbHZhXCIsXG4gICAgXCJ2b21lclwiLFxuICAgIFwidm9taWNhXCIsXG4gICAgXCJ2b21pdG9cIixcbiAgICBcInZvcmFnb1wiLFxuICAgIFwidm9yYXhcIixcbiAgICBcInZvcm9cIixcbiAgICBcInZvc1wiLFxuICAgIFwidm90dW1cIixcbiAgICBcInZvdmVvXCIsXG4gICAgXCJ2b3hcIixcbiAgICBcInZ1bGFyaXRlclwiLFxuICAgIFwidnVsZ2FyaXNcIixcbiAgICBcInZ1bGdpdmFndXNcIixcbiAgICBcInZ1bGdvXCIsXG4gICAgXCJ2dWxndXNcIixcbiAgICBcInZ1bG5lcm9cIixcbiAgICBcInZ1bG51c1wiLFxuICAgIFwidnVscGVzXCIsXG4gICAgXCJ2dWx0aWN1bHVzXCIsXG4gICAgXCJ2dWx0dW9zdXNcIixcbiAgICBcInhpcGhpYXNcIlxuICBdXG59O1xuc2submFtZSA9IHtcbiAgXCJtYW5fZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJEcmFob3NsYXZcIixcbiAgICBcIlNldmVyw61uXCIsXG4gICAgXCJBbGV4ZWpcIixcbiAgICBcIkVybmVzdFwiLFxuICAgIFwiUmFzdGlzbGF2XCIsXG4gICAgXCJSYWRvdmFuXCIsXG4gICAgXCJEb2Jyb3NsYXZcIixcbiAgICBcIkRhbGlib3JcIixcbiAgICBcIlZpbmNlbnRcIixcbiAgICBcIk1pbG/FoVwiLFxuICAgIFwiVGltb3RlalwiLFxuICAgIFwiR2VqemFcIixcbiAgICBcIkJvaHXFoVwiLFxuICAgIFwiQWxmb256XCIsXG4gICAgXCJHYcWhcGFyXCIsXG4gICAgXCJFbWlsXCIsXG4gICAgXCJFcmlrXCIsXG4gICAgXCJCbGHFvmVqXCIsXG4gICAgXCJaZGVua29cIixcbiAgICBcIkRlemlkZXJcIixcbiAgICBcIkFycMOhZFwiLFxuICAgIFwiVmFsZW50w61uXCIsXG4gICAgXCJQcmF2b3NsYXZcIixcbiAgICBcIkphcm9tw61yXCIsXG4gICAgXCJSb21hblwiLFxuICAgIFwiTWF0ZWpcIixcbiAgICBcIkZyZWRlcmlrXCIsXG4gICAgXCJWaWt0b3JcIixcbiAgICBcIkFsZXhhbmRlclwiLFxuICAgIFwiUmFkb23DrXJcIixcbiAgICBcIkFsYsOtblwiLFxuICAgIFwiQm9odW1pbFwiLFxuICAgIFwiS2F6aW3DrXJcIixcbiAgICBcIkZyaWRyaWNoXCIsXG4gICAgXCJSYWRvc2xhdlwiLFxuICAgIFwiVG9tw6HFoVwiLFxuICAgIFwiQWxhblwiLFxuICAgIFwiQnJhbmlzbGF2XCIsXG4gICAgXCJCcnVub1wiLFxuICAgIFwiR3JlZ29yXCIsXG4gICAgXCJWbGFzdGltaWxcIixcbiAgICBcIkJvbGVzbGF2XCIsXG4gICAgXCJFZHVhcmRcIixcbiAgICBcIkpvemVmXCIsXG4gICAgXCJWw63FpWF6b3NsYXZcIixcbiAgICBcIkJsYWhvc2xhdlwiLFxuICAgIFwiQmXFiGFkaWtcIixcbiAgICBcIkFkcmnDoW5cIixcbiAgICBcIkdhYnJpZWxcIixcbiAgICBcIk1hcmnDoW5cIixcbiAgICBcIkVtYW51ZWxcIixcbiAgICBcIk1pcm9zbGF2XCIsXG4gICAgXCJCZW5qYW3DrW5cIixcbiAgICBcIkh1Z29cIixcbiAgICBcIlJpY2hhcmRcIixcbiAgICBcIkl6aWRvclwiLFxuICAgIFwiWm9sdMOhblwiLFxuICAgIFwiQWxiZXJ0XCIsXG4gICAgXCJJZ29yXCIsXG4gICAgXCJKw7psaXVzXCIsXG4gICAgXCJBbGXFoVwiLFxuICAgIFwiRmVkb3JcIixcbiAgICBcIlJ1ZG9sZlwiLFxuICAgIFwiVmFsw6lyXCIsXG4gICAgXCJNYXJjZWxcIixcbiAgICBcIkVydsOtblwiLFxuICAgIFwiU2xhdm9tw61yXCIsXG4gICAgXCJWb2p0ZWNoXCIsXG4gICAgXCJKdXJhalwiLFxuICAgIFwiTWFyZWtcIixcbiAgICBcIkphcm9zbGF2XCIsXG4gICAgXCLFvWlnbXVuZFwiLFxuICAgIFwiRmxvcmnDoW5cIixcbiAgICBcIlJvbGFuZFwiLFxuICAgIFwiUGFua3LDoWNcIixcbiAgICBcIlNlcnbDoWNcIixcbiAgICBcIkJvbmlmw6FjXCIsXG4gICAgXCJTdmV0b3rDoXJcIixcbiAgICBcIkJlcm5hcmRcIixcbiAgICBcIkrDumxpYVwiLFxuICAgIFwiVXJiYW5cIixcbiAgICBcIkR1xaFhblwiLFxuICAgIFwiVmlsaWFtXCIsXG4gICAgXCJGZXJkaW5hbmRcIixcbiAgICBcIk5vcmJlcnRcIixcbiAgICBcIlLDs2JlcnRcIixcbiAgICBcIk1lZGFyZFwiLFxuICAgIFwiWmxhdGtvXCIsXG4gICAgXCJBbnRvblwiLFxuICAgIFwiVmFzaWxcIixcbiAgICBcIlbDrXRcIixcbiAgICBcIkFkb2xmXCIsXG4gICAgXCJWcmF0aXNsYXZcIixcbiAgICBcIkFsZnLDqWRcIixcbiAgICBcIkFsb2p6XCIsXG4gICAgXCJKw6FuXCIsXG4gICAgXCJUYWRlw6HFoVwiLFxuICAgIFwiTGFkaXNsYXZcIixcbiAgICBcIlBldGVyXCIsXG4gICAgXCJQYXZvbFwiLFxuICAgIFwiTWlsb3NsYXZcIixcbiAgICBcIlByb2tvcFwiLFxuICAgIFwiQ3lyaWxcIixcbiAgICBcIk1ldG9kXCIsXG4gICAgXCJQYXRyaWtcIixcbiAgICBcIk9saXZlclwiLFxuICAgIFwiSXZhblwiLFxuICAgIFwiS2FtaWxcIixcbiAgICBcIkhlbnJpY2hcIixcbiAgICBcIkRyYWhvbcOtclwiLFxuICAgIFwiQm9odXNsYXZcIixcbiAgICBcIknEvmphXCIsXG4gICAgXCJEYW5pZWxcIixcbiAgICBcIlZsYWRpbcOtclwiLFxuICAgIFwiSmFrdWJcIixcbiAgICBcIktyacWhdG9mXCIsXG4gICAgXCJJZ27DoWNcIixcbiAgICBcIkd1c3TDoXZcIixcbiAgICBcIkplcmd1xaFcIixcbiAgICBcIkRvbWluaWtcIixcbiAgICBcIk9za2FyXCIsXG4gICAgXCJWYXZyaW5lY1wiLFxuICAgIFwixL11Ym9tw61yXCIsXG4gICAgXCJNb2ptw61yXCIsXG4gICAgXCJMZW9uYXJkXCIsXG4gICAgXCJUaWNob23DrXJcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJCYXJ0b2xvbWVqXCIsXG4gICAgXCLEvXVkb3bDrXRcIixcbiAgICBcIlNhbXVlbFwiLFxuICAgIFwiQXVndXN0w61uXCIsXG4gICAgXCJCZWxvXCIsXG4gICAgXCJPbGVnXCIsXG4gICAgXCJCeXN0csOta1wiLFxuICAgIFwiQ3RpYm9yXCIsXG4gICAgXCLEvXVkb21pbFwiLFxuICAgIFwiS29uxaF0YW50w61uXCIsXG4gICAgXCLEvXVib3NsYXZcIixcbiAgICBcIk1hdMO6xaFcIixcbiAgICBcIk3Ds3JpY1wiLFxuICAgIFwixL11Ym/FoVwiLFxuICAgIFwixL11Ym9yXCIsXG4gICAgXCJWbGFkaXNsYXZcIixcbiAgICBcIkN5cHJpw6FuXCIsXG4gICAgXCJWw6FjbGF2XCIsXG4gICAgXCJNaWNoYWxcIixcbiAgICBcIkphcm9sw61tXCIsXG4gICAgXCJBcm5vbGRcIixcbiAgICBcIkxldm9zbGF2XCIsXG4gICAgXCJGcmFudGnFoWVrXCIsXG4gICAgXCJEaW9uw716XCIsXG4gICAgXCJNYXhpbWlsacOhblwiLFxuICAgIFwiS29sb21hblwiLFxuICAgIFwiQm9yaXNcIixcbiAgICBcIkx1a8OhxaFcIixcbiAgICBcIktyaXN0acOhblwiLFxuICAgIFwiVmVuZGVsw61uXCIsXG4gICAgXCJTZXJnZWpcIixcbiAgICBcIkF1cmVsXCIsXG4gICAgXCJEZW1ldGVyXCIsXG4gICAgXCJEZW5pc1wiLFxuICAgIFwiSHViZXJ0XCIsXG4gICAgXCJLYXJvbFwiLFxuICAgIFwiSW1yaWNoXCIsXG4gICAgXCJSZW7DqVwiLFxuICAgIFwiQm9odW3DrXJcIixcbiAgICBcIlRlb2RvclwiLFxuICAgIFwiVGlib3JcIixcbiAgICBcIk1hcm/FoVwiLFxuICAgIFwiTWFydGluXCIsXG4gICAgXCJTdsOkdG9wbHVrXCIsXG4gICAgXCJTdGFuaXNsYXZcIixcbiAgICBcIkxlb3BvbGRcIixcbiAgICBcIkV1Z2VuXCIsXG4gICAgXCJGw6lsaXhcIixcbiAgICBcIktsZW1lbnRcIixcbiAgICBcIktvcm5lbFwiLFxuICAgIFwiTWlsYW5cIixcbiAgICBcIlZyYXRrb1wiLFxuICAgIFwiT25kcmVqXCIsXG4gICAgXCJBbmRyZWpcIixcbiAgICBcIkVkbXVuZFwiLFxuICAgIFwiT2xkcmljaFwiLFxuICAgIFwiT3RvXCIsXG4gICAgXCJNaWt1bMOhxaFcIixcbiAgICBcIkFtYnLDs3pcIixcbiAgICBcIlJhZMO6elwiLFxuICAgIFwiQm9oZGFuXCIsXG4gICAgXCJBZGFtXCIsXG4gICAgXCLFoHRlZmFuXCIsXG4gICAgXCJEw6F2aWRcIixcbiAgICBcIlNpbHZlc3RlclwiXG4gIF0sXG4gIFwid29tYW5fZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJBbGV4YW5kcmFcIixcbiAgICBcIkthcmluYVwiLFxuICAgIFwiRGFuaWVsYVwiLFxuICAgIFwiQW5kcmVhXCIsXG4gICAgXCJBbnTDs25pYVwiLFxuICAgIFwiQm9odXNsYXZhXCIsXG4gICAgXCJEw6HFoWFcIixcbiAgICBcIk1hbHbDrW5hXCIsXG4gICAgXCJLcmlzdMOtbmFcIixcbiAgICBcIk5hdGHFoWFcIixcbiAgICBcIkJvaGRhbmFcIixcbiAgICBcIkRyYWhvbcOtcmFcIixcbiAgICBcIlPDoXJhXCIsXG4gICAgXCJab3JhXCIsXG4gICAgXCJUYW1hcmFcIixcbiAgICBcIkVtYVwiLFxuICAgIFwiVGF0aWFuYVwiLFxuICAgIFwiRXJpa2FcIixcbiAgICBcIlZlcm9uaWthXCIsXG4gICAgXCJBZ8OhdGFcIixcbiAgICBcIkRvcm90YVwiLFxuICAgIFwiVmFuZGFcIixcbiAgICBcIlpvamFcIixcbiAgICBcIkdhYnJpZWxhXCIsXG4gICAgXCJQZXJsYVwiLFxuICAgIFwiSWRhXCIsXG4gICAgXCJMaWFuYVwiLFxuICAgIFwiTWlsb3NsYXZhXCIsXG4gICAgXCJWbGFzdGFcIixcbiAgICBcIkzDrXZpYVwiLFxuICAgIFwiRWxlb27Ds3JhXCIsXG4gICAgXCJFdGVsYVwiLFxuICAgIFwiUm9tYW5hXCIsXG4gICAgXCJabGF0aWNhXCIsXG4gICAgXCJBbmXFvmthXCIsXG4gICAgXCJCb2h1bWlsYVwiLFxuICAgIFwiRnJhbnRpxaFrYVwiLFxuICAgIFwiQW5nZWxhXCIsXG4gICAgXCJNYXRpbGRhXCIsXG4gICAgXCJTdmV0bGFuYVwiLFxuICAgIFwixL11YmljYVwiLFxuICAgIFwiQWxlbmFcIixcbiAgICBcIlNvxYhhXCIsXG4gICAgXCJWaWVyb3NsYXZhXCIsXG4gICAgXCJaaXRhXCIsXG4gICAgXCJNaXJvc2xhdmFcIixcbiAgICBcIklyZW5hXCIsXG4gICAgXCJNaWxlbmFcIixcbiAgICBcIkVzdGVyYVwiLFxuICAgIFwiSnVzdMOtbmFcIixcbiAgICBcIkRhbmFcIixcbiAgICBcIkRhbmljYVwiLFxuICAgIFwiSmVsYVwiLFxuICAgIFwiSmFyb3NsYXZhXCIsXG4gICAgXCJKYXJtaWxhXCIsXG4gICAgXCJMZWFcIixcbiAgICBcIkFuYXN0w6F6aWFcIixcbiAgICBcIkdhbGluYVwiLFxuICAgIFwiTGVzYW5hXCIsXG4gICAgXCJIZXJtw61uYVwiLFxuICAgIFwiTW9uaWthXCIsXG4gICAgXCJJbmdyaWRhXCIsXG4gICAgXCJWaWt0w7NyaWFcIixcbiAgICBcIkJsYcW+ZW5hXCIsXG4gICAgXCLFvW9maWFcIixcbiAgICBcIlNvZmlhXCIsXG4gICAgXCJHaXplbGFcIixcbiAgICBcIlZpb2xhXCIsXG4gICAgXCJHZXJ0csO6ZGFcIixcbiAgICBcIlppbmFcIixcbiAgICBcIkrDumxpYVwiLFxuICAgIFwiSnVsaWFuYVwiLFxuICAgIFwixb1lbG3DrXJhXCIsXG4gICAgXCJFbGFcIixcbiAgICBcIlZhbmVzYVwiLFxuICAgIFwiSXZldGFcIixcbiAgICBcIlZpbG1hXCIsXG4gICAgXCJQZXRyb25lbGFcIixcbiAgICBcIsW9YW5ldGFcIixcbiAgICBcIljDqW5pYVwiLFxuICAgIFwiS2Fyb2zDrW5hXCIsXG4gICAgXCJMZW5rYVwiLFxuICAgIFwiTGF1cmFcIixcbiAgICBcIlN0YW5pc2xhdmFcIixcbiAgICBcIk1hcmdhcsOpdGFcIixcbiAgICBcIkRvYnJvc2xhdmFcIixcbiAgICBcIkJsYW5rYVwiLFxuICAgIFwiVmFsw6lyaWFcIixcbiAgICBcIlBhdWzDrW5hXCIsXG4gICAgXCJTaWTDs25pYVwiLFxuICAgIFwiQWRyacOhbmFcIixcbiAgICBcIkJlw6F0YVwiLFxuICAgIFwiUGV0cmFcIixcbiAgICBcIk1lbMOhbmlhXCIsXG4gICAgXCJEaWFuYVwiLFxuICAgIFwiQmVydGFcIixcbiAgICBcIlBhdHLDrWNpYVwiLFxuICAgIFwiTHVqemFcIixcbiAgICBcIkFtw6FsaWFcIixcbiAgICBcIk1pbG90YVwiLFxuICAgIFwiTmluYVwiLFxuICAgIFwiTWFyZ2l0YVwiLFxuICAgIFwiS2FtaWxhXCIsXG4gICAgXCJEdcWhYW5hXCIsXG4gICAgXCJNYWdkYWzDqW5hXCIsXG4gICAgXCJPxL5nYVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiSGFuYVwiLFxuICAgIFwiQm/FvmVuYVwiLFxuICAgIFwiTWFydGFcIixcbiAgICBcIkxpYnXFoWFcIixcbiAgICBcIkJvxb5pZGFyYVwiLFxuICAgIFwiRG9taW5pa2FcIixcbiAgICBcIkhvcnRlbnppYVwiLFxuICAgIFwiSm96ZWbDrW5hXCIsXG4gICAgXCLFoHRlZsOhbmlhXCIsXG4gICAgXCLEvXVib23DrXJhXCIsXG4gICAgXCJadXphbmFcIixcbiAgICBcIkRhcmluYVwiLFxuICAgIFwiTWFyY2VsYVwiLFxuICAgIFwiTWlsaWNhXCIsXG4gICAgXCJFbGVuYVwiLFxuICAgIFwiSGVsZW5hXCIsXG4gICAgXCJMw71kaWFcIixcbiAgICBcIkFuYWJlbGFcIixcbiAgICBcIkphbmFcIixcbiAgICBcIlNpbHZpYVwiLFxuICAgIFwiTmlrb2xhXCIsXG4gICAgXCJSdcW+ZW5hXCIsXG4gICAgXCJOb3JhXCIsXG4gICAgXCJEcmFob3NsYXZhXCIsXG4gICAgXCJMaW5kYVwiLFxuICAgIFwiTWVsaW5kYVwiLFxuICAgIFwiUmViZWthXCIsXG4gICAgXCJSb3rDoWxpYVwiLFxuICAgIFwiUmVnw61uYVwiLFxuICAgIFwiQWxpY2FcIixcbiAgICBcIk1hcmlhbm5hXCIsXG4gICAgXCJNaXJpYW1hXCIsXG4gICAgXCJNYXJ0aW5hXCIsXG4gICAgXCJNw6FyaWFcIixcbiAgICBcIkpvbGFuYVwiLFxuICAgIFwixL11ZG9taWxhXCIsXG4gICAgXCLEvXVkbWlsYVwiLFxuICAgIFwiT2x5bXBpYVwiLFxuICAgIFwiRXVnw6luaWFcIixcbiAgICBcIsS9dWJvc2xhdmFcIixcbiAgICBcIlpkZW5rYVwiLFxuICAgIFwiRWRpdGFcIixcbiAgICBcIk1pY2hhZWxhXCIsXG4gICAgXCJTdGVsYVwiLFxuICAgIFwiVmllcmFcIixcbiAgICBcIk5hdMOhbGlhXCIsXG4gICAgXCJFbGnFoWthXCIsXG4gICAgXCJCcmlnaXRhXCIsXG4gICAgXCJWYWxlbnTDrW5hXCIsXG4gICAgXCJUZXLDqXppYVwiLFxuICAgIFwiVmxhZGltw61yYVwiLFxuICAgIFwiSGVkdmlnYVwiLFxuICAgIFwiVXLFoXXEvmFcIixcbiAgICBcIkFsb2p6YVwiLFxuICAgIFwiS3ZldG9zbGF2YVwiLFxuICAgIFwiU2Fiw61uYVwiLFxuICAgIFwiRG9icm9taWxhXCIsXG4gICAgXCJLbMOhcmFcIixcbiAgICBcIlNpbW9uYVwiLFxuICAgIFwiQXVyw6lsaWFcIixcbiAgICBcIkRlbmlzYVwiLFxuICAgIFwiUmVuw6F0YVwiLFxuICAgIFwiSXJtYVwiLFxuICAgIFwiQWduZXNhXCIsXG4gICAgXCJLbGF1ZGlhXCIsXG4gICAgXCJBbMW+YmV0YVwiLFxuICAgIFwiRWx2w61yYVwiLFxuICAgIFwiQ2Vjw61saWFcIixcbiAgICBcIkVtw61saWFcIixcbiAgICBcIkthdGFyw61uYVwiLFxuICAgIFwiSGVucmlldGFcIixcbiAgICBcIkJpYmnDoW5hXCIsXG4gICAgXCJCYXJib3JhXCIsXG4gICAgXCJNYXLDrW5hXCIsXG4gICAgXCJJemFiZWxhXCIsXG4gICAgXCJIaWxkYVwiLFxuICAgIFwiT3TDrWxpYVwiLFxuICAgIFwiTHVjaWFcIixcbiAgICBcIkJyYW5pc2xhdmFcIixcbiAgICBcIkJyb25pc2xhdmFcIixcbiAgICBcIkl2aWNhXCIsXG4gICAgXCJBbGLDrW5hXCIsXG4gICAgXCJLb3Juw6lsaWFcIixcbiAgICBcIlNsw6F2YVwiLFxuICAgIFwiU2zDoXZrYVwiLFxuICAgIFwiSnVkaXRhXCIsXG4gICAgXCJEYWdtYXJhXCIsXG4gICAgXCJBZGVsYVwiLFxuICAgIFwiTmFkZcW+ZGFcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiRmlsb23DqW5hXCIsXG4gICAgXCJJdmFuYVwiLFxuICAgIFwiTWlsYWRhXCJcbiAgXSxcbiAgXCJtYW5fbGFzdF9uYW1lXCI6IFtcbiAgICBcIkFudGFsXCIsXG4gICAgXCJCYWJrYVwiLFxuICAgIFwiQmFobmFcIixcbiAgICBcIkJhaG5vXCIsXG4gICAgXCJCYWzDocW+XCIsXG4gICAgXCJCYXJhblwiLFxuICAgIFwiQmFyYW5rYVwiLFxuICAgIFwiQmFydG92acSNXCIsXG4gICAgXCJCYXJ0b8WhXCIsXG4gICAgXCJCYcSNYVwiLFxuICAgIFwiQmVybm9sw6FrXCIsXG4gICAgXCJCZcWIb1wiLFxuICAgIFwiQmljZWtcIixcbiAgICBcIkJpZWxpa1wiLFxuICAgIFwiQmxhaG9cIixcbiAgICBcIkJvbmRyYVwiLFxuICAgIFwiQm9zw6FrXCIsXG4gICAgXCJCb8Wha2FcIixcbiAgICBcIkJyZXppbmFcIixcbiAgICBcIkJ1a292c2vDvVwiLFxuICAgIFwiQ2hhbHVwa2FcIixcbiAgICBcIkNodWTDrWtcIixcbiAgICBcIkNpYnVsYVwiLFxuICAgIFwiQ2lidWxrYVwiLFxuICAgIFwiQ2lidcS+YVwiLFxuICAgIFwiQ3lwcmljaFwiLFxuICAgIFwiQ8OtZ2VyXCIsXG4gICAgXCJEYW5rb1wiLFxuICAgIFwiRGHFiGtvXCIsXG4gICAgXCJEYcWIb1wiLFxuICAgIFwiRGVibsOhclwiLFxuICAgIFwiRGVqXCIsXG4gICAgXCJEZWvDvcWhXCIsXG4gICAgXCJEb2xlxb5hbFwiLFxuICAgIFwiRG/EjW9sb21hbnNrw71cIixcbiAgICBcIkRyb3BwYVwiLFxuICAgIFwiRHVib3Zza8O9XCIsXG4gICAgXCJEdWRla1wiLFxuICAgIFwiRHVsYVwiLFxuICAgIFwiRHVsbGFcIixcbiAgICBcIkR1c8Ota1wiLFxuICAgIFwiRHZvbsSNXCIsXG4gICAgXCJEenVyamFuaW5cIixcbiAgICBcIkTDoXZpZFwiLFxuICAgIFwiRmFiaWFuXCIsXG4gICAgXCJGYWJpw6FuXCIsXG4gICAgXCJGYWpub3JcIixcbiAgICBcIkZhcmthxaFvdnNrw71cIixcbiAgICBcIkZpY29cIixcbiAgICBcIkZpbGNcIixcbiAgICBcIkZpbGlwXCIsXG4gICAgXCJGaW5rYVwiLFxuICAgIFwiRnRvcmVrXCIsXG4gICAgXCJHYcWhcGFyXCIsXG4gICAgXCJHYcWhcGFyb3ZpxI1cIixcbiAgICBcIkdvY27DrWtcIixcbiAgICBcIkdyZWdvclwiLFxuICAgIFwiR3JlZ3XFoVwiLFxuICAgIFwiR3J6bsOhclwiLFxuICAgIFwiSGFibMOha1wiLFxuICAgIFwiSGFixaF1ZGFcIixcbiAgICBcIkhhbGRhXCIsXG4gICAgXCJIYWx1xaFrYVwiLFxuICAgIFwiSGFsw6FrXCIsXG4gICAgXCJIYW5rb1wiLFxuICAgIFwiSGFuemFsXCIsXG4gICAgXCJIYcWhxI3DoWtcIixcbiAgICBcIkhlcmV0aWtcIixcbiAgICBcIkhlxI1rb1wiLFxuICAgIFwiSGxhdsOhxI1la1wiLFxuICAgIFwiSGxpbmthXCIsXG4gICAgXCJIb2x1YlwiLFxuICAgIFwiSG9sdWJ5XCIsXG4gICAgXCJIb3NzYVwiLFxuICAgIFwiSG96YVwiLFxuICAgIFwiSHJhxaFrb1wiLFxuICAgIFwiSHJpY1wiLFxuICAgIFwiSHJtb1wiLFxuICAgIFwiSHJ1xaFvdnNrw71cIixcbiAgICBcIkh1YmFcIixcbiAgICBcIklobmHEjcOha1wiLFxuICAgIFwiSmFuZcSNZWtcIixcbiAgICBcIkphbm/FoWthXCIsXG4gICAgXCJKYW50b8Whb3ZpxI1cIixcbiAgICBcIkphbsOta1wiLFxuICAgIFwiSmFuxI1la1wiLFxuICAgIFwiSmVkxL5vdnNrw71cIixcbiAgICBcIkplbmRla1wiLFxuICAgIFwiSm9uYXRhXCIsXG4gICAgXCJKdXJpbmFcIixcbiAgICBcIkp1cmtvdmnEjVwiLFxuICAgIFwiSnVyw61rXCIsXG4gICAgXCJKw6Fub8Whw61rXCIsXG4gICAgXCJLYWZlbmRhXCIsXG4gICAgXCJLYWxpc2vDvVwiLFxuICAgIFwiS2FydWxcIixcbiAgICBcIktlbsOtxb5cIixcbiAgICBcIktsYXBrYVwiLFxuICAgIFwiS21lxaVcIixcbiAgICBcIktvbGVzw6FyXCIsXG4gICAgXCJLb2xsw6FyXCIsXG4gICAgXCJLb2xuaWtcIixcbiAgICBcIktvbG7DrWtcIixcbiAgICBcIktvbMOhclwiLFxuICAgIFwiS29yZWNcIixcbiAgICBcIktvc3RrYVwiLFxuICAgIFwiS29zdHJlY1wiLFxuICAgIFwiS292w6HEjVwiLFxuICAgIFwiS292w6HEjWlrXCIsXG4gICAgXCJLb3phXCIsXG4gICAgXCJLb8SNacWhXCIsXG4gICAgXCJLcmFqw63EjWVrXCIsXG4gICAgXCJLcmFqxI1pXCIsXG4gICAgXCJLcmFqxI1vXCIsXG4gICAgXCJLcmFqxI1vdmnEjVwiLFxuICAgIFwiS3JhasSNw61yXCIsXG4gICAgXCJLcsOhbGlrXCIsXG4gICAgXCJLcsO6cGFcIixcbiAgICBcIkt1YsOta1wiLFxuICAgIFwiS3lzZcS+XCIsXG4gICAgXCJLw6FsbGF5XCIsXG4gICAgXCJMYWJ1ZGFcIixcbiAgICBcIkxlcMWhw61rXCIsXG4gICAgXCJMaXB0w6FrXCIsXG4gICAgXCJMaXNpY2vDvVwiLFxuICAgIFwiTHViaW5hXCIsXG4gICAgXCJMdWvDocSNXCIsXG4gICAgXCJMdXB0w6FrXCIsXG4gICAgXCJMw63FoWthXCIsXG4gICAgXCJNYWRlalwiLFxuICAgIFwiTWFqZXNrw71cIixcbiAgICBcIk1hbGFjaG92c2vDvVwiLFxuICAgIFwiTWFsw63FoWVrXCIsXG4gICAgXCJNYW1vamthXCIsXG4gICAgXCJNYXJjaW5rb1wiLFxuICAgIFwiTWFyacOhblwiLFxuICAgIFwiTWFzYXJ5a1wiLFxuICAgIFwiTWFzbG9cIixcbiAgICBcIk1hdGlhxaFrb1wiLFxuICAgIFwiTWVkdmXEj1wiLFxuICAgIFwiTWVsY2VyXCIsXG4gICAgXCJNZcSNaWFyXCIsXG4gICAgXCJNaWNoYWzDrWtcIixcbiAgICBcIk1paGFsaWtcIixcbiAgICBcIk1paMOhbFwiLFxuICAgIFwiTWlow6FsaWtcIixcbiAgICBcIk1pa2xvxaFrb1wiLFxuICAgIFwiTWlrdWzDrWtcIixcbiAgICBcIk1pa3XFoVwiLFxuICAgIFwiTWlrw7rFoVwiLFxuICAgIFwiTWlsb3RhXCIsXG4gICAgXCJNaW7DocSNXCIsXG4gICAgXCJNacWhw61rXCIsXG4gICAgXCJNb2rFvmnFoVwiLFxuICAgIFwiTW9rcm/FoVwiLFxuICAgIFwiTW9yYVwiLFxuICAgIFwiTW9yYXbEjcOta1wiLFxuICAgIFwiTXlkbG9cIixcbiAgICBcIk5lbWVjXCIsXG4gICAgXCJOaXRyYVwiLFxuICAgIFwiTm92w6FrXCIsXG4gICAgXCJPYsWhdXRcIixcbiAgICBcIk9uZHJ1xaFcIixcbiAgICBcIk90xI1lbsOhxaFcIixcbiAgICBcIlBhdWtvXCIsXG4gICAgXCJQYXZsaWtvdnNrw71cIixcbiAgICBcIlBhdsO6a1wiLFxuICAgIFwiUGHFoWVrXCIsXG4gICAgXCJQYcWha2FcIixcbiAgICBcIlBhxaFrb1wiLFxuICAgIFwiUGVsaWvDoW5cIixcbiAgICBcIlBldHJvdmlja8O9XCIsXG4gICAgXCJQZXRydcWha2FcIixcbiAgICBcIlBlxaFrb1wiLFxuICAgIFwiUGxjaFwiLFxuICAgIFwiUGxla2FuZWNcIixcbiAgICBcIlBvZGhyYWRza8O9XCIsXG4gICAgXCJQb2Rrb25pY2vDvVwiLFxuICAgIFwiUG9saWFrXCIsXG4gICAgXCJQdXDDoWtcIixcbiAgICBcIlJha1wiLFxuICAgIFwiUmVwaXNrw71cIixcbiAgICBcIlJvbWFuxI3DrWtcIixcbiAgICBcIlJ1c1wiLFxuICAgIFwiUnXFvmnEjWthXCIsXG4gICAgXCJSeWJuw63EjWVrXCIsXG4gICAgXCJSeWLDoXJcIixcbiAgICBcIlJ5YsOhcmlrXCIsXG4gICAgXCJTYW1zb25cIixcbiAgICBcIlNlZGxpYWtcIixcbiAgICBcIlNlbmtvXCIsXG4gICAgXCJTa2xlbmthXCIsXG4gICAgXCJTa29rYW5cIixcbiAgICBcIlNrdXRlY2vDvVwiLFxuICAgIFwiU2xhxaHFpWFuXCIsXG4gICAgXCJTbG9ib2RhXCIsXG4gICAgXCJTbG9ib2Ruw61rXCIsXG4gICAgXCJTbG90YVwiLFxuICAgIFwiU2xvdsOha1wiLFxuICAgIFwiU21yZWtcIixcbiAgICBcIlN0b2RvbGFcIixcbiAgICBcIlN0cmFrYVwiLFxuICAgIFwiU3Rybmlza29cIixcbiAgICBcIlN2cmLDrWtcIixcbiAgICBcIlPDoW1lbFwiLFxuICAgIFwiU8O9a29yYVwiLFxuICAgIFwiVGF0YXJcIixcbiAgICBcIlRhdGFya2FcIixcbiAgICBcIlRhdMOhclwiLFxuICAgIFwiVGF0w6Fya2FcIixcbiAgICBcIlRob21rYVwiLFxuICAgIFwiVG9tZcSNZWtcIixcbiAgICBcIlRvbWthXCIsXG4gICAgXCJUb21rb1wiLFxuICAgIFwiVHJ1YmVuXCIsXG4gICAgXCJUdXLEjW9rXCIsXG4gICAgXCJVcmFtXCIsXG4gICAgXCJVcmJsw61rXCIsXG4gICAgXCJWYWpjw61rXCIsXG4gICAgXCJWYWpkYVwiLFxuICAgIFwiVmFsYWNoXCIsXG4gICAgXCJWYWxhY2hvdmnEjVwiLFxuICAgIFwiVmFsZW50XCIsXG4gICAgXCJWYWx1xaFrYVwiLFxuICAgIFwiVmFuZWtcIixcbiAgICBcIlZlc2VsXCIsXG4gICAgXCJWaWNlblwiLFxuICAgIFwiVmnFocWIb3Zza8O9XCIsXG4gICAgXCJWbGFjaFwiLFxuICAgIFwiVm9qdGVrXCIsXG4gICAgXCJWeWRhcmVuw71cIixcbiAgICBcIlphamFjXCIsXG4gICAgXCJaaW1hXCIsXG4gICAgXCJaaW1rYVwiLFxuICAgIFwiWsOhYm9yc2vDvVwiLFxuICAgIFwiWsO6YnJpa1wiLFxuICAgIFwixIxhcGtvdmnEjVwiLFxuICAgIFwixIxhcGxvdmnEjVwiLFxuICAgIFwixIxhcm5vZ3Vyc2vDvVwiLFxuICAgIFwixIxpZXJueVwiLFxuICAgIFwixIxvYnJkYVwiLFxuICAgIFwixI5hxI9vXCIsXG4gICAgXCLEjnVyaWNhXCIsXG4gICAgXCLEjnVyacWhXCIsXG4gICAgXCLFoGlkbG9cIixcbiAgICBcIsWgaW1vbm92acSNXCIsXG4gICAgXCLFoGtyaW5pYXJcIixcbiAgICBcIsWga3VsdMOpdHlcIixcbiAgICBcIsWgbWFqZGFcIixcbiAgICBcIsWgb2x0w6lzXCIsXG4gICAgXCLFoG9sdMO9c1wiLFxuICAgIFwixaB0ZWZhblwiLFxuICAgIFwixaB0ZWZhbmthXCIsXG4gICAgXCLFoHVsY1wiLFxuICAgIFwixaB1cmthXCIsXG4gICAgXCLFoHZlaGxhXCIsXG4gICAgXCLFoMWlYXN0bsO9XCJcbiAgXSxcbiAgXCJ3b21hbl9sYXN0X25hbWVcIjogW1xuICAgIFwiQW50YWxvdsOhXCIsXG4gICAgXCJCYWJrb3bDoVwiLFxuICAgIFwiQmFobm92w6FcIixcbiAgICBcIkJhbMOhxb5vdsOhXCIsXG4gICAgXCJCYXJhbm92w6FcIixcbiAgICBcIkJhcmFua292w6FcIixcbiAgICBcIkJhcnRvdmnEjW92w6FcIixcbiAgICBcIkJhcnRvxaFvdsOhXCIsXG4gICAgXCJCYcSNb3bDoVwiLFxuICAgIFwiQmVybm9sw6Frb3bDoVwiLFxuICAgIFwiQmXFiG92w6FcIixcbiAgICBcIkJpY2Vrb3bDoVwiLFxuICAgIFwiQmllbGlrb3bDoVwiLFxuICAgIFwiQmxhaG92w6FcIixcbiAgICBcIkJvbmRyb3bDoVwiLFxuICAgIFwiQm9zw6Frb3bDoVwiLFxuICAgIFwiQm/FoWtvdsOhXCIsXG4gICAgXCJCcmV6aW5vdsOhXCIsXG4gICAgXCJCdWtvdnNrw6FcIixcbiAgICBcIkNoYWx1cGtvdsOhXCIsXG4gICAgXCJDaHVkw61rb3bDoVwiLFxuICAgIFwiQ2lidWxvdsOhXCIsXG4gICAgXCJDaWJ1bGtvdsOhXCIsXG4gICAgXCJDeXByaWNob3bDoVwiLFxuICAgIFwiQ8OtZ2Vyb3bDoVwiLFxuICAgIFwiRGFua292w6FcIixcbiAgICBcIkRhxYhrb3bDoVwiLFxuICAgIFwiRGHFiG92w6FcIixcbiAgICBcIkRlYm7DoXJvdsOhXCIsXG4gICAgXCJEZWpvdsOhXCIsXG4gICAgXCJEZWvDvcWhb3bDoVwiLFxuICAgIFwiRG9sZcW+YWxvdsOhXCIsXG4gICAgXCJEb8SNb2xvbWFuc2vDoVwiLFxuICAgIFwiRHJvcHBvdsOhXCIsXG4gICAgXCJEdWJvdnNrw6FcIixcbiAgICBcIkR1ZGVrb3bDoVwiLFxuICAgIFwiRHVsb3bDoVwiLFxuICAgIFwiRHVsbG92w6FcIixcbiAgICBcIkR1c8Ota292w6FcIixcbiAgICBcIkR2b27EjW92w6FcIixcbiAgICBcIkR6dXJqYW5pbm92w6FcIixcbiAgICBcIkTDoXZpZG92w6FcIixcbiAgICBcIkZhYmlhbm92w6FcIixcbiAgICBcIkZhYmnDoW5vdsOhXCIsXG4gICAgXCJGYWpub3JvdsOhXCIsXG4gICAgXCJGYXJrYcWhb3Zza8OhXCIsXG4gICAgXCJGaWNvdsOhXCIsXG4gICAgXCJGaWxjb3bDoVwiLFxuICAgIFwiRmlsaXBvdsOhXCIsXG4gICAgXCJGaW5rb3bDoVwiLFxuICAgIFwiRnRvcmVrb3bDoVwiLFxuICAgIFwiR2HFoXBhcm92w6FcIixcbiAgICBcIkdhxaFwYXJvdmnEjW92w6FcIixcbiAgICBcIkdvY27DrWtvdsOhXCIsXG4gICAgXCJHcmVnb3JvdsOhXCIsXG4gICAgXCJHcmVndcWhb3bDoVwiLFxuICAgIFwiR3J6bsOhcm92w6FcIixcbiAgICBcIkhhYmzDoWtvdsOhXCIsXG4gICAgXCJIYWLFoXVkb3bDoVwiLFxuICAgIFwiSGFsZG92w6FcIixcbiAgICBcIkhhbHXFoWtvdsOhXCIsXG4gICAgXCJIYWzDoWtvdsOhXCIsXG4gICAgXCJIYW5rb3bDoVwiLFxuICAgIFwiSGFuemFsb3bDoVwiLFxuICAgIFwiSGHFocSNw6Frb3bDoVwiLFxuICAgIFwiSGVyZXRpa292w6FcIixcbiAgICBcIkhlxI1rb3bDoVwiLFxuICAgIFwiSGxhdsOhxI1la292w6FcIixcbiAgICBcIkhsaW5rb3bDoVwiLFxuICAgIFwiSG9sdWJvdsOhXCIsXG4gICAgXCJIb2x1YnlvdsOhXCIsXG4gICAgXCJIb3Nzb3bDoVwiLFxuICAgIFwiSG96b3bDoVwiLFxuICAgIFwiSHJhxaFrb3bDoVwiLFxuICAgIFwiSHJpY292w6FcIixcbiAgICBcIkhybW92w6FcIixcbiAgICBcIkhydcWhb3Zza8OhXCIsXG4gICAgXCJIdWJvdsOhXCIsXG4gICAgXCJJaG5hxI3DoWtvdsOhXCIsXG4gICAgXCJKYW5lxI1la292w6FcIixcbiAgICBcIkphbm/FoWtvdsOhXCIsXG4gICAgXCJKYW50b8Whb3ZpxI1vdsOhXCIsXG4gICAgXCJKYW7DrWtvdsOhXCIsXG4gICAgXCJKYW7EjWVrb3bDoVwiLFxuICAgIFwiSmVkxL5vdnNrw6FcIixcbiAgICBcIkplbmRla292w6FcIixcbiAgICBcIkpvbmF0b3bDoVwiLFxuICAgIFwiSnVyaW5vdsOhXCIsXG4gICAgXCJKdXJrb3ZpxI1vdsOhXCIsXG4gICAgXCJKdXLDrWtvdsOhXCIsXG4gICAgXCJKw6Fub8Whw61rb3bDoVwiLFxuICAgIFwiS2FmZW5kb3bDoVwiLFxuICAgIFwiS2FsaXNrw6FcIixcbiAgICBcIkthcnVsb3bDoVwiLFxuICAgIFwiS2Vuw63Fvm92w6FcIixcbiAgICBcIktsYXBrb3bDoVwiLFxuICAgIFwiS21lxaVvdsOhXCIsXG4gICAgXCJLb2xlc8Ohcm92w6FcIixcbiAgICBcIktvbGzDoXJvdsOhXCIsXG4gICAgXCJLb2xuaWtvdsOhXCIsXG4gICAgXCJLb2xuw61rb3bDoVwiLFxuICAgIFwiS29sw6Fyb3bDoVwiLFxuICAgIFwiS29yZWNvdsOhXCIsXG4gICAgXCJLb3N0a2FvdsOhXCIsXG4gICAgXCJLb3N0cmVjb3bDoVwiLFxuICAgIFwiS292w6HEjW92w6FcIixcbiAgICBcIktvdsOhxI1pa292w6FcIixcbiAgICBcIktvem92w6FcIixcbiAgICBcIktvxI1pxaFvdsOhXCIsXG4gICAgXCJLcmFqw63EjWVrb3bDoVwiLFxuICAgIFwiS3JhasSNb3bDoVwiLFxuICAgIFwiS3JhasSNb3ZpxI1vdsOhXCIsXG4gICAgXCJLcmFqxI3DrXJvdsOhXCIsXG4gICAgXCJLcsOhbGlrb3bDoVwiLFxuICAgIFwiS3LDunBvdsOhXCIsXG4gICAgXCJLdWLDrWtvdsOhXCIsXG4gICAgXCJLeXNlxL5vdsOhXCIsXG4gICAgXCJLw6FsbGF5b3bDoVwiLFxuICAgIFwiTGFidWRvdsOhXCIsXG4gICAgXCJMZXDFocOta292w6FcIixcbiAgICBcIkxpcHTDoWtvdsOhXCIsXG4gICAgXCJMaXNpY2vDoVwiLFxuICAgIFwiTHViaW5vdsOhXCIsXG4gICAgXCJMdWvDocSNb3bDoVwiLFxuICAgIFwiTHVwdMOha292w6FcIixcbiAgICBcIkzDrcWha292w6FcIixcbiAgICBcIk1hZGVqb3bDoVwiLFxuICAgIFwiTWFqZXNrw6FcIixcbiAgICBcIk1hbGFjaG92c2vDoVwiLFxuICAgIFwiTWFsw63FoWVrb3bDoVwiLFxuICAgIFwiTWFtb2prb3bDoVwiLFxuICAgIFwiTWFyY2lua292w6FcIixcbiAgICBcIk1hcmnDoW5vdsOhXCIsXG4gICAgXCJNYXNhcnlrb3bDoVwiLFxuICAgIFwiTWFzbG92w6FcIixcbiAgICBcIk1hdGlhxaFrb3bDoVwiLFxuICAgIFwiTWVkdmXEj292w6FcIixcbiAgICBcIk1lbGNlcm92w6FcIixcbiAgICBcIk1lxI1pYXJvdsOhXCIsXG4gICAgXCJNaWNoYWzDrWtvdsOhXCIsXG4gICAgXCJNaWhhbGlrb3bDoVwiLFxuICAgIFwiTWlow6Fsb3bDoVwiLFxuICAgIFwiTWlow6FsaWtvdsOhXCIsXG4gICAgXCJNaWtsb8Wha292w6FcIixcbiAgICBcIk1pa3Vsw61rb3bDoVwiLFxuICAgIFwiTWlrdcWhb3bDoVwiLFxuICAgIFwiTWlrw7rFoW92w6FcIixcbiAgICBcIk1pbG90b3bDoVwiLFxuICAgIFwiTWluw6HEjW92w6FcIixcbiAgICBcIk1pxaHDrWtvdsOhXCIsXG4gICAgXCJNb2rFvmnFoW92w6FcIixcbiAgICBcIk1va3JvxaFvdsOhXCIsXG4gICAgXCJNb3JvdsOhXCIsXG4gICAgXCJNb3JhdsSNw61rb3bDoVwiLFxuICAgIFwiTXlkbG92w6FcIixcbiAgICBcIk5lbWNvdsOhXCIsXG4gICAgXCJOb3bDoWtvdsOhXCIsXG4gICAgXCJPYsWhdXRvdsOhXCIsXG4gICAgXCJPbmRydcWhb3bDoVwiLFxuICAgIFwiT3TEjWVuw6HFoW92w6FcIixcbiAgICBcIlBhdWtvdsOhXCIsXG4gICAgXCJQYXZsaWtvdnNrw6FcIixcbiAgICBcIlBhdsO6a292w6FcIixcbiAgICBcIlBhxaFla292w6FcIixcbiAgICBcIlBhxaFrb3bDoVwiLFxuICAgIFwiUGVsaWvDoW5vdsOhXCIsXG4gICAgXCJQZXRyb3ZpY2vDoVwiLFxuICAgIFwiUGV0cnXFoWtvdsOhXCIsXG4gICAgXCJQZcWha292w6FcIixcbiAgICBcIlBsY2hvdsOhXCIsXG4gICAgXCJQbGVrYW5lY292w6FcIixcbiAgICBcIlBvZGhyYWRza8OhXCIsXG4gICAgXCJQb2Rrb25pY2vDoVwiLFxuICAgIFwiUG9saWFrb3bDoVwiLFxuICAgIFwiUHVww6Frb3bDoVwiLFxuICAgIFwiUmFrb3bDoVwiLFxuICAgIFwiUmVwaXNrw6FcIixcbiAgICBcIlJvbWFuxI3DrWtvdsOhXCIsXG4gICAgXCJSdXNvdsOhXCIsXG4gICAgXCJSdcW+acSNa292w6FcIixcbiAgICBcIlJ5Ym7DrcSNZWtvdsOhXCIsXG4gICAgXCJSeWLDoXJvdsOhXCIsXG4gICAgXCJSeWLDoXJpa292w6FcIixcbiAgICBcIlNhbXNvbm92w6FcIixcbiAgICBcIlNlZGxpYWtvdsOhXCIsXG4gICAgXCJTZW5rb3bDoVwiLFxuICAgIFwiU2tsZW5rb3bDoVwiLFxuICAgIFwiU2tva2Fub3bDoVwiLFxuICAgIFwiU2t1dGVja8OhXCIsXG4gICAgXCJTbGHFocWlYW5vdsOhXCIsXG4gICAgXCJTbG9ib2RvdsOhXCIsXG4gICAgXCJTbG9ib2Ruw61rb3bDoVwiLFxuICAgIFwiU2xvdG92w6FcIixcbiAgICBcIlNsb3bDoWtvdsOhXCIsXG4gICAgXCJTbXJla292w6FcIixcbiAgICBcIlN0b2RvbG92w6FcIixcbiAgICBcIlN0cmFrb3bDoVwiLFxuICAgIFwiU3Rybmlza292w6FcIixcbiAgICBcIlN2cmLDrWtvdsOhXCIsXG4gICAgXCJTw6FtZWxvdsOhXCIsXG4gICAgXCJTw71rb3JvdsOhXCIsXG4gICAgXCJUYXRhcm92w6FcIixcbiAgICBcIlRhdGFya292w6FcIixcbiAgICBcIlRhdMOhcm92w6FcIixcbiAgICBcIlRhdMOhcmthb3bDoVwiLFxuICAgIFwiVGhvbWtvdsOhXCIsXG4gICAgXCJUb21lxI1la292w6FcIixcbiAgICBcIlRvbWtvdsOhXCIsXG4gICAgXCJUcnViZW5vdsOhXCIsXG4gICAgXCJUdXLEjW9rb3bDoVwiLFxuICAgIFwiVXJhbW92w6FcIixcbiAgICBcIlVyYmzDrWtvdsOhXCIsXG4gICAgXCJWYWpjw61rb3bDoVwiLFxuICAgIFwiVmFqZG92w6FcIixcbiAgICBcIlZhbGFjaG92w6FcIixcbiAgICBcIlZhbGFjaG92acSNb3bDoVwiLFxuICAgIFwiVmFsZW50b3bDoVwiLFxuICAgIFwiVmFsdcWha292w6FcIixcbiAgICBcIlZhbmVrb3bDoVwiLFxuICAgIFwiVmVzZWxvdsOhXCIsXG4gICAgXCJWaWNlbm92w6FcIixcbiAgICBcIlZpxaHFiG92c2vDoVwiLFxuICAgIFwiVmxhY2hvdsOhXCIsXG4gICAgXCJWb2p0ZWtvdsOhXCIsXG4gICAgXCJWeWRhcmVuw6FcIixcbiAgICBcIlphamFjb3bDoVwiLFxuICAgIFwiWmltb3bDoVwiLFxuICAgIFwiWmlta292w6FcIixcbiAgICBcIlrDoWJvcnNrw6FcIixcbiAgICBcIlrDumJyaWtvdsOhXCIsXG4gICAgXCLEjGFwa292acSNb3bDoVwiLFxuICAgIFwixIxhcGxvdmnEjW92w6FcIixcbiAgICBcIsSMYXJub2d1cnNrw6FcIixcbiAgICBcIsSMaWVybsOhXCIsXG4gICAgXCLEjG9icmRvdsOhXCIsXG4gICAgXCLEjmHEj292w6FcIixcbiAgICBcIsSOdXJpY292w6FcIixcbiAgICBcIsSOdXJpxaFvdsOhXCIsXG4gICAgXCLFoGlkbG92w6FcIixcbiAgICBcIsWgaW1vbm92acSNb3bDoVwiLFxuICAgIFwixaBrcmluaWFyb3bDoVwiLFxuICAgIFwixaBrdWx0w6l0eW92w6FcIixcbiAgICBcIsWgbWFqZG92w6FcIixcbiAgICBcIsWgb2x0w6lzb3bDoVwiLFxuICAgIFwixaBvbHTDvXNvdsOhXCIsXG4gICAgXCLFoHRlZmFub3bDoVwiLFxuICAgIFwixaB0ZWZhbmtvdsOhXCIsXG4gICAgXCLFoHVsY292w6FcIixcbiAgICBcIsWgdXJrb3bDoVwiLFxuICAgIFwixaB2ZWhsb3bDoVwiLFxuICAgIFwixaDFpWFzdG7DoVwiXG4gIF0sXG4gIFwicHJlZml4XCI6IFtcbiAgICBcIkluZy5cIixcbiAgICBcIk1nci5cIixcbiAgICBcIkpVRHIuXCIsXG4gICAgXCJNVURyLlwiXG4gIF0sXG4gIFwic3VmZml4XCI6IFtcbiAgICBcIlBoZC5cIlxuICBdLFxuICBcInRpdGxlXCI6IHtcbiAgICBcImRlc2NyaXB0b3JcIjogW1xuICAgICAgXCJMZWFkXCIsXG4gICAgICBcIlNlbmlvclwiLFxuICAgICAgXCJEaXJlY3RcIixcbiAgICAgIFwiQ29ycG9yYXRlXCIsXG4gICAgICBcIkR5bmFtaWNcIixcbiAgICAgIFwiRnV0dXJlXCIsXG4gICAgICBcIlByb2R1Y3RcIixcbiAgICAgIFwiTmF0aW9uYWxcIixcbiAgICAgIFwiUmVnaW9uYWxcIixcbiAgICAgIFwiRGlzdHJpY3RcIixcbiAgICAgIFwiQ2VudHJhbFwiLFxuICAgICAgXCJHbG9iYWxcIixcbiAgICAgIFwiQ3VzdG9tZXJcIixcbiAgICAgIFwiSW52ZXN0b3JcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJJbnRlcm5hdGlvbmFsXCIsXG4gICAgICBcIkxlZ2FjeVwiLFxuICAgICAgXCJGb3J3YXJkXCIsXG4gICAgICBcIkludGVybmFsXCIsXG4gICAgICBcIkh1bWFuXCIsXG4gICAgICBcIkNoaWVmXCIsXG4gICAgICBcIlByaW5jaXBhbFwiXG4gICAgXSxcbiAgICBcImxldmVsXCI6IFtcbiAgICAgIFwiU29sdXRpb25zXCIsXG4gICAgICBcIlByb2dyYW1cIixcbiAgICAgIFwiQnJhbmRcIixcbiAgICAgIFwiU2VjdXJpdHlcIixcbiAgICAgIFwiUmVzZWFyY2hcIixcbiAgICAgIFwiTWFya2V0aW5nXCIsXG4gICAgICBcIkRpcmVjdGl2ZXNcIixcbiAgICAgIFwiSW1wbGVtZW50YXRpb25cIixcbiAgICAgIFwiSW50ZWdyYXRpb25cIixcbiAgICAgIFwiRnVuY3Rpb25hbGl0eVwiLFxuICAgICAgXCJSZXNwb25zZVwiLFxuICAgICAgXCJQYXJhZGlnbVwiLFxuICAgICAgXCJUYWN0aWNzXCIsXG4gICAgICBcIklkZW50aXR5XCIsXG4gICAgICBcIk1hcmtldHNcIixcbiAgICAgIFwiR3JvdXBcIixcbiAgICAgIFwiRGl2aXNpb25cIixcbiAgICAgIFwiQXBwbGljYXRpb25zXCIsXG4gICAgICBcIk9wdGltaXphdGlvblwiLFxuICAgICAgXCJPcGVyYXRpb25zXCIsXG4gICAgICBcIkluZnJhc3RydWN0dXJlXCIsXG4gICAgICBcIkludHJhbmV0XCIsXG4gICAgICBcIkNvbW11bmljYXRpb25zXCIsXG4gICAgICBcIldlYlwiLFxuICAgICAgXCJCcmFuZGluZ1wiLFxuICAgICAgXCJRdWFsaXR5XCIsXG4gICAgICBcIkFzc3VyYW5jZVwiLFxuICAgICAgXCJNb2JpbGl0eVwiLFxuICAgICAgXCJBY2NvdW50c1wiLFxuICAgICAgXCJEYXRhXCIsXG4gICAgICBcIkNyZWF0aXZlXCIsXG4gICAgICBcIkNvbmZpZ3VyYXRpb25cIixcbiAgICAgIFwiQWNjb3VudGFiaWxpdHlcIixcbiAgICAgIFwiSW50ZXJhY3Rpb25zXCIsXG4gICAgICBcIkZhY3RvcnNcIixcbiAgICAgIFwiVXNhYmlsaXR5XCIsXG4gICAgICBcIk1ldHJpY3NcIlxuICAgIF0sXG4gICAgXCJqb2JcIjogW1xuICAgICAgXCJTdXBlcnZpc29yXCIsXG4gICAgICBcIkFzc29jaWF0ZVwiLFxuICAgICAgXCJFeGVjdXRpdmVcIixcbiAgICAgIFwiTGlhc29uXCIsXG4gICAgICBcIk9mZmljZXJcIixcbiAgICAgIFwiTWFuYWdlclwiLFxuICAgICAgXCJFbmdpbmVlclwiLFxuICAgICAgXCJTcGVjaWFsaXN0XCIsXG4gICAgICBcIkRpcmVjdG9yXCIsXG4gICAgICBcIkNvb3JkaW5hdG9yXCIsXG4gICAgICBcIkFkbWluaXN0cmF0b3JcIixcbiAgICAgIFwiQXJjaGl0ZWN0XCIsXG4gICAgICBcIkFuYWx5c3RcIixcbiAgICAgIFwiRGVzaWduZXJcIixcbiAgICAgIFwiUGxhbm5lclwiLFxuICAgICAgXCJPcmNoZXN0cmF0b3JcIixcbiAgICAgIFwiVGVjaG5pY2lhblwiLFxuICAgICAgXCJEZXZlbG9wZXJcIixcbiAgICAgIFwiUHJvZHVjZXJcIixcbiAgICAgIFwiQ29uc3VsdGFudFwiLFxuICAgICAgXCJBc3Npc3RhbnRcIixcbiAgICAgIFwiRmFjaWxpdGF0b3JcIixcbiAgICAgIFwiQWdlbnRcIixcbiAgICAgIFwiUmVwcmVzZW50YXRpdmVcIixcbiAgICAgIFwiU3RyYXRlZ2lzdFwiXG4gICAgXVxuICB9LFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7bWFuX2ZpcnN0X25hbWV9ICN7bWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7cHJlZml4fSAje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfSAje3N1ZmZpeH1cIixcbiAgICBcIiN7d29tYW5fZmlyc3RfbmFtZX0gI3t3b21hbl9sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3ttYW5fZmlyc3RfbmFtZX0gI3ttYW5fbGFzdF9uYW1lfVwiLFxuICAgIFwiI3t3b21hbl9maXJzdF9uYW1lfSAje3dvbWFuX2xhc3RfbmFtZX1cIixcbiAgICBcIiN7d29tYW5fZmlyc3RfbmFtZX0gI3t3b21hbl9sYXN0X25hbWV9XCIsXG4gICAgXCIje3dvbWFuX2ZpcnN0X25hbWV9ICN7d29tYW5fbGFzdF9uYW1lfVwiXG4gIF1cbn07XG5zay5waG9uZV9udW1iZXIgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwOSMjICMjIyAjIyNcIixcbiAgICBcIjAjIyAjIyMjICMjIyNcIixcbiAgICBcIjAjICMjIyMgIyMjI1wiLFxuICAgIFwiKzQyMSAjIyMgIyMjICMjI1wiXG4gIF1cbn07XG4iLCJ2YXIgc3YgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSBzdjtcbnN2LnRpdGxlID0gXCJTd2VkaXNoXCI7XG5zdi5hZGRyZXNzID0ge1xuICBcImNpdHlfcHJlZml4XCI6IFtcbiAgICBcIlPDtmRlclwiLFxuICAgIFwiTm9yclwiLFxuICAgIFwiVsOkc3RcIixcbiAgICBcIsOWc3RlclwiLFxuICAgIFwiQWxpbmdcIixcbiAgICBcIkFyXCIsXG4gICAgXCJBdlwiLFxuICAgIFwiQm9cIixcbiAgICBcIkJyXCIsXG4gICAgXCJCw6VcIixcbiAgICBcIkVrXCIsXG4gICAgXCJFblwiLFxuICAgIFwiRXNrXCIsXG4gICAgXCJGYWxcIixcbiAgICBcIkfDpHZcIixcbiAgICBcIkfDtnRlXCIsXG4gICAgXCJIYVwiLFxuICAgIFwiSGVsc2luZ1wiLFxuICAgIFwiS2FybFwiLFxuICAgIFwiS3Jpc3RcIixcbiAgICBcIktyYW1cIixcbiAgICBcIkt1bmdcIixcbiAgICBcIkvDtlwiLFxuICAgIFwiTHlja1wiLFxuICAgIFwiTnlcIlxuICBdLFxuICBcImNpdHlfc3VmZml4XCI6IFtcbiAgICBcInN0YWRcIixcbiAgICBcImxhbmRcIixcbiAgICBcInPDpXNcIixcbiAgICBcIsOlc1wiLFxuICAgIFwiaG9sbVwiLFxuICAgIFwidHVuYVwiLFxuICAgIFwic3RhXCIsXG4gICAgXCJiZXJnXCIsXG4gICAgXCJsw7Z2XCIsXG4gICAgXCJib3JnXCIsXG4gICAgXCJtb3JhXCIsXG4gICAgXCJoYW1uXCIsXG4gICAgXCJmb3JzXCIsXG4gICAgXCJrw7ZwaW5nXCIsXG4gICAgXCJieVwiLFxuICAgIFwiaHVsdFwiLFxuICAgIFwidG9ycFwiLFxuICAgIFwiZnJlZFwiLFxuICAgIFwidmlrXCJcbiAgXSxcbiAgXCJjb3VudHJ5XCI6IFtcbiAgICBcIlJ5c3NsYW5kXCIsXG4gICAgXCJLYW5hZGFcIixcbiAgICBcIktpbmFcIixcbiAgICBcIlVTQVwiLFxuICAgIFwiQnJhc2lsaWVuXCIsXG4gICAgXCJBdXN0cmFsaWVuXCIsXG4gICAgXCJJbmRpZW5cIixcbiAgICBcIkFyZ2VudGluYVwiLFxuICAgIFwiS2F6YWtzdGFuXCIsXG4gICAgXCJBbGdlcmlldFwiLFxuICAgIFwiRFIgS29uZ29cIixcbiAgICBcIkRhbm1hcmtcIixcbiAgICBcIkbDpHLDtmFybmFcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiU2F1ZGlhcmFiaWVuXCIsXG4gICAgXCJNZXhpa29cIixcbiAgICBcIkluZG9uZXNpZW5cIixcbiAgICBcIlN1ZGFuXCIsXG4gICAgXCJMaWJ5ZW5cIixcbiAgICBcIklyYW5cIixcbiAgICBcIk1vbmdvbGlldFwiLFxuICAgIFwiUGVydVwiLFxuICAgIFwiVGNoYWRcIixcbiAgICBcIk5pZ2VyXCIsXG4gICAgXCJBbmdvbGFcIixcbiAgICBcIk1hbGlcIixcbiAgICBcIlN5ZGFmcmlrYVwiLFxuICAgIFwiQ29sb21iaWFcIixcbiAgICBcIkV0aW9waWVuXCIsXG4gICAgXCJCb2xpdmlhXCIsXG4gICAgXCJNYXVyZXRhbmllblwiLFxuICAgIFwiRWd5cHRlblwiLFxuICAgIFwiVGFuemFuaWFcIixcbiAgICBcIk5pZ2VyaWFcIixcbiAgICBcIlZlbmV6dWVsYVwiLFxuICAgIFwiTmFtaWJpYVwiLFxuICAgIFwiUGFraXN0YW5cIixcbiAgICBcIk1vw6dhbWJpcXVlXCIsXG4gICAgXCJUdXJraWV0XCIsXG4gICAgXCJDaGlsZVwiLFxuICAgIFwiWmFtYmlhXCIsXG4gICAgXCJNYXJvY2tvXCIsXG4gICAgXCJWw6RzdHNhaGFyYVwiLFxuICAgIFwiQnVybWFcIixcbiAgICBcIkFmZ2hhbmlzdGFuXCIsXG4gICAgXCJTb21hbGlhXCIsXG4gICAgXCJDZW50cmFsYWZyaWthbnNrYSByZXB1Ymxpa2VuXCIsXG4gICAgXCJTeWRzdWRhblwiLFxuICAgIFwiVWtyYWluYVwiLFxuICAgIFwiQm90c3dhbmFcIixcbiAgICBcIk1hZGFnYXNrYXJcIixcbiAgICBcIktlbnlhXCIsXG4gICAgXCJGcmFua3Jpa2VcIixcbiAgICBcIkZyYW5za2EgR3V5YW5hXCIsXG4gICAgXCJKZW1lblwiLFxuICAgIFwiVGhhaWxhbmRcIixcbiAgICBcIlNwYW5pZW5cIixcbiAgICBcIlR1cmttZW5pc3RhblwiLFxuICAgIFwiS2FtZXJ1blwiLFxuICAgIFwiUGFwdWEgTnlhIEd1aW5lYVwiLFxuICAgIFwiU3ZlcmlnZVwiLFxuICAgIFwiVXpiZWtpc3RhblwiLFxuICAgIFwiSXJha1wiLFxuICAgIFwiUGFyYWd1YXlcIixcbiAgICBcIlppbWJhYndlXCIsXG4gICAgXCJKYXBhblwiLFxuICAgIFwiVHlza2xhbmRcIixcbiAgICBcIktvbmdvXCIsXG4gICAgXCJGaW5sYW5kXCIsXG4gICAgXCJNYWxheXNpYVwiLFxuICAgIFwiVmlldG5hbVwiLFxuICAgIFwiTm9yZ2VcIixcbiAgICBcIlN2YWxiYXJkXCIsXG4gICAgXCJKYW4gTWF5ZW5cIixcbiAgICBcIkVsZmVuYmVuc2t1c3RlblwiLFxuICAgIFwiUG9sZW5cIixcbiAgICBcIkl0YWxpZW5cIixcbiAgICBcIkZpbGlwcGluZXJuYVwiLFxuICAgIFwiRWN1YWRvclwiLFxuICAgIFwiQnVya2luYSBGYXNvXCIsXG4gICAgXCJOeWEgWmVlbGFuZFwiLFxuICAgIFwiR2Fib25cIixcbiAgICBcIkd1aW5lYVwiLFxuICAgIFwiU3RvcmJyaXRhbm5pZW5cIixcbiAgICBcIkdoYW5hXCIsXG4gICAgXCJSdW3DpG5pZW5cIixcbiAgICBcIkxhb3NcIixcbiAgICBcIlVnYW5kYVwiLFxuICAgIFwiR3V5YW5hXCIsXG4gICAgXCJPbWFuXCIsXG4gICAgXCJWaXRyeXNzbGFuZFwiLFxuICAgIFwiS2lyZ2l6aXN0YW5cIixcbiAgICBcIlNlbmVnYWxcIixcbiAgICBcIlN5cmllblwiLFxuICAgIFwiS2FtYm9kamFcIixcbiAgICBcIlVydWd1YXlcIixcbiAgICBcIlR1bmlzaWVuXCIsXG4gICAgXCJTdXJpbmFtXCIsXG4gICAgXCJOZXBhbFwiLFxuICAgIFwiQmFuZ2xhZGVzaFwiLFxuICAgIFwiVGFkemppa2lzdGFuXCIsXG4gICAgXCJHcmVrbGFuZFwiLFxuICAgIFwiTmljYXJhZ3VhXCIsXG4gICAgXCJFcml0cmVhXCIsXG4gICAgXCJOb3Jka29yZWFcIixcbiAgICBcIk1hbGF3aVwiLFxuICAgIFwiQmVuaW5cIixcbiAgICBcIkhvbmR1cmFzXCIsXG4gICAgXCJMaWJlcmlhXCIsXG4gICAgXCJCdWxnYXJpZW5cIixcbiAgICBcIkt1YmFcIixcbiAgICBcIkd1YXRlbWFsYVwiLFxuICAgIFwiSXNsYW5kXCIsXG4gICAgXCJTeWRrb3JlYVwiLFxuICAgIFwiVW5nZXJuXCIsXG4gICAgXCJQb3J0dWdhbFwiLFxuICAgIFwiSm9yZGFuaWVuXCIsXG4gICAgXCJTZXJiaWVuXCIsXG4gICAgXCJBemVyYmFqZHpqYW5cIixcbiAgICBcIsOWc3RlcnJpa2VcIixcbiAgICBcIkbDtnJlbmFkZSBBcmFiZW1pcmF0ZW5cIixcbiAgICBcIlRqZWNraWVuXCIsXG4gICAgXCJQYW5hbWFcIixcbiAgICBcIlNpZXJyYSBMZW9uZVwiLFxuICAgIFwiSXJsYW5kXCIsXG4gICAgXCJHZW9yZ2llblwiLFxuICAgIFwiU3JpIExhbmthXCIsXG4gICAgXCJMaXRhdWVuXCIsXG4gICAgXCJMZXR0bGFuZFwiLFxuICAgIFwiVG9nb1wiLFxuICAgIFwiS3JvYXRpZW5cIixcbiAgICBcIkJvc25pZW4gb2NoIEhlcmNlZ292aW5hXCIsXG4gICAgXCJDb3N0YSBSaWNhXCIsXG4gICAgXCJTbG92YWtpZW5cIixcbiAgICBcIkRvbWluaWthbnNrYSByZXB1Ymxpa2VuXCIsXG4gICAgXCJCaHV0YW5cIixcbiAgICBcIkVzdGxhbmRcIixcbiAgICBcIkRhbm1hcmtcIixcbiAgICBcIkbDpHLDtmFybmFcIixcbiAgICBcIkdyw7ZubGFuZFwiLFxuICAgIFwiTmVkZXJsw6RuZGVybmFcIixcbiAgICBcIlNjaHdlaXpcIixcbiAgICBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICBcIlRhaXdhblwiLFxuICAgIFwiTW9sZGF2aWVuXCIsXG4gICAgXCJCZWxnaWVuXCIsXG4gICAgXCJMZXNvdGhvXCIsXG4gICAgXCJBcm1lbmllblwiLFxuICAgIFwiQWxiYW5pZW5cIixcbiAgICBcIlNhbG9tb27DtmFybmFcIixcbiAgICBcIkVrdmF0b3JpYWxndWluZWFcIixcbiAgICBcIkJ1cnVuZGlcIixcbiAgICBcIkhhaXRpXCIsXG4gICAgXCJSd2FuZGFcIixcbiAgICBcIk1ha2Vkb25pZW5cIixcbiAgICBcIkRqaWJvdXRpXCIsXG4gICAgXCJCZWxpemVcIixcbiAgICBcIklzcmFlbFwiLFxuICAgIFwiRWwgU2FsdmFkb3JcIixcbiAgICBcIlNsb3ZlbmllblwiLFxuICAgIFwiRmlqaVwiLFxuICAgIFwiS3V3YWl0XCIsXG4gICAgXCJTd2F6aWxhbmRcIixcbiAgICBcIlRpbW9yLUxlc3RlXCIsXG4gICAgXCJNb250ZW5lZ3JvXCIsXG4gICAgXCJCYWhhbWFzXCIsXG4gICAgXCJWYW51YXR1XCIsXG4gICAgXCJRYXRhclwiLFxuICAgIFwiR2FtYmlhXCIsXG4gICAgXCJKYW1haWNhXCIsXG4gICAgXCJLb3Nvdm9cIixcbiAgICBcIkxpYmFub25cIixcbiAgICBcIkN5cGVyblwiLFxuICAgIFwiQnJ1bmVpXCIsXG4gICAgXCJUcmluaWRhZCBvY2ggVG9iYWdvXCIsXG4gICAgXCJLYXAgVmVyZGVcIixcbiAgICBcIlNhbW9hXCIsXG4gICAgXCJMdXhlbWJ1cmdcIixcbiAgICBcIktvbW9yZXJuYVwiLFxuICAgIFwiTWF1cml0aXVzXCIsXG4gICAgXCJTw6NvIFRvbcOpIG9jaCBQcsOtbmNpcGVcIixcbiAgICBcIktpcmliYXRpXCIsXG4gICAgXCJEb21pbmljYVwiLFxuICAgIFwiVG9uZ2FcIixcbiAgICBcIk1pa3JvbmVzaWVucyBmZWRlcmVyYWRlIHN0YXRlclwiLFxuICAgIFwiU2luZ2Fwb3JlXCIsXG4gICAgXCJCYWhyYWluXCIsXG4gICAgXCJTYWludCBMdWNpYVwiLFxuICAgIFwiQW5kb3JyYVwiLFxuICAgIFwiUGFsYXVcIixcbiAgICBcIlNleWNoZWxsZXJuYVwiLFxuICAgIFwiQW50aWd1YSBvY2ggQmFyYnVkYVwiLFxuICAgIFwiQmFyYmFkb3NcIixcbiAgICBcIlNhaW50IFZpbmNlbnQgb2NoIEdyZW5hZGluZXJuYVwiLFxuICAgIFwiR3JlbmFkYVwiLFxuICAgIFwiTWFsdGFcIixcbiAgICBcIk1hbGRpdmVybmFcIixcbiAgICBcIlNhaW50IEtpdHRzIG9jaCBOZXZpc1wiLFxuICAgIFwiTWFyc2hhbGzDtmFybmFcIixcbiAgICBcIkxpZWNodGVuc3RlaW5cIixcbiAgICBcIlNhbiBNYXJpbm9cIixcbiAgICBcIlR1dmFsdVwiLFxuICAgIFwiTmF1cnVcIixcbiAgICBcIk1vbmFjb1wiLFxuICAgIFwiVmF0aWthbnN0YXRlblwiXG4gIF0sXG4gIFwiY29tbW9uX3N0cmVldF9zdWZmaXhcIjogW1xuICAgIFwicyBWw6RnXCIsXG4gICAgXCJzIEdhdGFcIlxuICBdLFxuICBcInN0cmVldF9wcmVmaXhcIjogW1xuICAgIFwiVsOkc3RyYVwiLFxuICAgIFwiw5ZzdHJhXCIsXG4gICAgXCJOb3JyYVwiLFxuICAgIFwiU8O2ZHJhXCIsXG4gICAgXCLDlnZyZVwiLFxuICAgIFwiVW5kcmVcIlxuICBdLFxuICBcInN0cmVldF9yb290XCI6IFtcbiAgICBcIkJqw7Zya1wiLFxuICAgIFwiSsOkcm52w6Rnc1wiLFxuICAgIFwiUmluZ1wiLFxuICAgIFwiU2tvbFwiLFxuICAgIFwiU2tvZ3NcIixcbiAgICBcIk55XCIsXG4gICAgXCJHcmFuXCIsXG4gICAgXCJJZHJvdHRzXCIsXG4gICAgXCJTdG9yXCIsXG4gICAgXCJLeXJrXCIsXG4gICAgXCJJbmR1c3RyaVwiLFxuICAgIFwiUGFya1wiLFxuICAgIFwiU3RyYW5kXCIsXG4gICAgXCJTa29sXCIsXG4gICAgXCJUcsOkZGfDpXJkXCIsXG4gICAgXCLDhG5nc1wiLFxuICAgIFwiS3lya29cIixcbiAgICBcIlZpbGxhXCIsXG4gICAgXCJFa1wiLFxuICAgIFwiS3Zhcm5cIixcbiAgICBcIlN0YXRpb25zXCIsXG4gICAgXCJCYWNrXCIsXG4gICAgXCJGdXJ1XCIsXG4gICAgXCJHZW5cIixcbiAgICBcIkZhYnJpa3NcIixcbiAgICBcIsOFa2VyXCIsXG4gICAgXCJCw6Rja1wiLFxuICAgIFwiQXNwXCJcbiAgXSxcbiAgXCJzdHJlZXRfc3VmZml4XCI6IFtcbiAgICBcInbDpGdlblwiLFxuICAgIFwiZ2F0YW5cIixcbiAgICBcImdyw6RuZGVuXCIsXG4gICAgXCJnw6RyZGV0XCIsXG4gICAgXCJhbGzDqW5cIlxuICBdLFxuICBcInN0YXRlXCI6IFtcbiAgICBcIkJsZWtpbmdlXCIsXG4gICAgXCJEYWxhcm5hXCIsXG4gICAgXCJHb3RsYW5kXCIsXG4gICAgXCJHw6R2bGVib3JnXCIsXG4gICAgXCJHw7Z0ZWJvcmdcIixcbiAgICBcIkhhbGxhbmRcIixcbiAgICBcIkrDpG10bGFuZFwiLFxuICAgIFwiSsO2bmvDtnBpbmdcIixcbiAgICBcIkthbG1hclwiLFxuICAgIFwiS3Jvbm9iZXJnXCIsXG4gICAgXCJOb3JyYm90dGVuXCIsXG4gICAgXCJTa2FyYWJvcmdcIixcbiAgICBcIlNrw6VuZVwiLFxuICAgIFwiU3RvY2tob2xtXCIsXG4gICAgXCJTw7ZkZXJtYW5sYW5kXCIsXG4gICAgXCJVcHBzYWxhXCIsXG4gICAgXCJWw6RybWxhbmRcIixcbiAgICBcIlbDpHN0ZXJib3R0ZW5cIixcbiAgICBcIlbDpHN0ZXJub3JybGFuZFwiLFxuICAgIFwiVsOkc3RtYW5sYW5kXCIsXG4gICAgXCLDhGx2c2JvcmdcIixcbiAgICBcIsOWcmVicm9cIixcbiAgICBcIsOWc3RlcmfDtnRsYW5kXCJcbiAgXSxcbiAgXCJjaXR5XCI6IFtcbiAgICBcIiN7Y2l0eV9wcmVmaXh9I3tjaXR5X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9uYW1lXCI6IFtcbiAgICBcIiN7c3RyZWV0X3Jvb3R9I3tzdHJlZXRfc3VmZml4fVwiLFxuICAgIFwiI3tzdHJlZXRfcHJlZml4fSAje3N0cmVldF9yb290fSN7c3RyZWV0X3N1ZmZpeH1cIixcbiAgICBcIiN7TmFtZS5maXJzdF9uYW1lfSN7Y29tbW9uX3N0cmVldF9zdWZmaXh9XCIsXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7Y29tbW9uX3N0cmVldF9zdWZmaXh9XCJcbiAgXSxcbiAgXCJwb3N0Y29kZVwiOiBbXG4gICAgXCIjIyMjI1wiXG4gIF0sXG4gIFwiYnVpbGRpbmdfbnVtYmVyXCI6IFtcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInNlY29uZGFyeV9hZGRyZXNzXCI6IFtcbiAgICBcIkxnaC4gIyMjXCIsXG4gICAgXCJIdXMgIyMjXCJcbiAgXSxcbiAgXCJzdHJlZXRfYWRkcmVzc1wiOiBbXG4gICAgXCIje3N0cmVldF9uYW1lfSAje2J1aWxkaW5nX251bWJlcn1cIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJTdmVyaWdlXCJcbiAgXVxufTtcbnN2LmNvbXBhbnkgPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIkdydXBwZW5cIixcbiAgICBcIkFCXCIsXG4gICAgXCJIQlwiLFxuICAgIFwiR3JvdXBcIixcbiAgICBcIkludmVzdG1lbnRcIixcbiAgICBcIktvbW1hbmRpdGJvbGFnXCIsXG4gICAgXCJBa3RpZWJvbGFnXCJcbiAgXSxcbiAgXCJuYW1lXCI6IFtcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9ICN7c3VmZml4fVwiLFxuICAgIFwiI3tOYW1lLmxhc3RfbmFtZX0tI3tOYW1lLmxhc3RfbmFtZX1cIixcbiAgICBcIiN7TmFtZS5sYXN0X25hbWV9LCAje05hbWUubGFzdF9uYW1lfSAje3N1ZmZpeH1cIlxuICBdXG59O1xuc3YuaW50ZXJuZXQgPSB7XG4gIFwiZG9tYWluX3N1ZmZpeFwiOiBbXG4gICAgXCJzZVwiLFxuICAgIFwibnVcIixcbiAgICBcImluZm9cIixcbiAgICBcImNvbVwiLFxuICAgIFwib3JnXCJcbiAgXVxufTtcbnN2Lm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZV93b21lblwiOiBbXG4gICAgXCJNYXJpYVwiLFxuICAgIFwiQW5uYVwiLFxuICAgIFwiTWFyZ2FyZXRhXCIsXG4gICAgXCJFbGlzYWJldGhcIixcbiAgICBcIkV2YVwiLFxuICAgIFwiQmlyZ2l0dGFcIixcbiAgICBcIktyaXN0aW5hXCIsXG4gICAgXCJLYXJpblwiLFxuICAgIFwiRWxpc2FiZXRcIixcbiAgICBcIk1hcmllXCJcbiAgXSxcbiAgXCJmaXJzdF9uYW1lX21lblwiOiBbXG4gICAgXCJFcmlrXCIsXG4gICAgXCJMYXJzXCIsXG4gICAgXCJLYXJsXCIsXG4gICAgXCJBbmRlcnNcIixcbiAgICBcIlBlclwiLFxuICAgIFwiSm9oYW5cIixcbiAgICBcIk5pbHNcIixcbiAgICBcIkxlbm5hcnRcIixcbiAgICBcIkVtaWxcIixcbiAgICBcIkhhbnNcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCJKb2hhbnNzb25cIixcbiAgICBcIkFuZGVyc3NvblwiLFxuICAgIFwiS2FybHNzb25cIixcbiAgICBcIk5pbHNzb25cIixcbiAgICBcIkVyaWtzc29uXCIsXG4gICAgXCJMYXJzc29uXCIsXG4gICAgXCJPbHNzb25cIixcbiAgICBcIlBlcnNzb25cIixcbiAgICBcIlN2ZW5zc29uXCIsXG4gICAgXCJHdXN0YWZzc29uXCJcbiAgXSxcbiAgXCJwcmVmaXhcIjogW1xuICAgIFwiRHIuXCIsXG4gICAgXCJQcm9mLlwiLFxuICAgIFwiUGhELlwiXG4gIF0sXG4gIFwidGl0bGVcIjoge1xuICAgIFwiZGVzY3JpcHRvclwiOiBbXG4gICAgICBcIkxlYWRcIixcbiAgICAgIFwiU2VuaW9yXCIsXG4gICAgICBcIkRpcmVjdFwiLFxuICAgICAgXCJDb3Jwb3JhdGVcIixcbiAgICAgIFwiRHluYW1pY1wiLFxuICAgICAgXCJGdXR1cmVcIixcbiAgICAgIFwiUHJvZHVjdFwiLFxuICAgICAgXCJOYXRpb25hbFwiLFxuICAgICAgXCJSZWdpb25hbFwiLFxuICAgICAgXCJEaXN0cmljdFwiLFxuICAgICAgXCJDZW50cmFsXCIsXG4gICAgICBcIkdsb2JhbFwiLFxuICAgICAgXCJDdXN0b21lclwiLFxuICAgICAgXCJJbnZlc3RvclwiLFxuICAgICAgXCJEeW5hbWljXCIsXG4gICAgICBcIkludGVybmF0aW9uYWxcIixcbiAgICAgIFwiTGVnYWN5XCIsXG4gICAgICBcIkZvcndhcmRcIixcbiAgICAgIFwiSW50ZXJuYWxcIixcbiAgICAgIFwiSHVtYW5cIixcbiAgICAgIFwiQ2hpZWZcIixcbiAgICAgIFwiUHJpbmNpcGFsXCJcbiAgICBdLFxuICAgIFwibGV2ZWxcIjogW1xuICAgICAgXCJTb2x1dGlvbnNcIixcbiAgICAgIFwiUHJvZ3JhbVwiLFxuICAgICAgXCJCcmFuZFwiLFxuICAgICAgXCJTZWN1cml0eVwiLFxuICAgICAgXCJSZXNlYXJjaFwiLFxuICAgICAgXCJNYXJrZXRpbmdcIixcbiAgICAgIFwiRGlyZWN0aXZlc1wiLFxuICAgICAgXCJJbXBsZW1lbnRhdGlvblwiLFxuICAgICAgXCJJbnRlZ3JhdGlvblwiLFxuICAgICAgXCJGdW5jdGlvbmFsaXR5XCIsXG4gICAgICBcIlJlc3BvbnNlXCIsXG4gICAgICBcIlBhcmFkaWdtXCIsXG4gICAgICBcIlRhY3RpY3NcIixcbiAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgIFwiTWFya2V0c1wiLFxuICAgICAgXCJHcm91cFwiLFxuICAgICAgXCJEaXZpc2lvblwiLFxuICAgICAgXCJBcHBsaWNhdGlvbnNcIixcbiAgICAgIFwiT3B0aW1pemF0aW9uXCIsXG4gICAgICBcIk9wZXJhdGlvbnNcIixcbiAgICAgIFwiSW5mcmFzdHJ1Y3R1cmVcIixcbiAgICAgIFwiSW50cmFuZXRcIixcbiAgICAgIFwiQ29tbXVuaWNhdGlvbnNcIixcbiAgICAgIFwiV2ViXCIsXG4gICAgICBcIkJyYW5kaW5nXCIsXG4gICAgICBcIlF1YWxpdHlcIixcbiAgICAgIFwiQXNzdXJhbmNlXCIsXG4gICAgICBcIk1vYmlsaXR5XCIsXG4gICAgICBcIkFjY291bnRzXCIsXG4gICAgICBcIkRhdGFcIixcbiAgICAgIFwiQ3JlYXRpdmVcIixcbiAgICAgIFwiQ29uZmlndXJhdGlvblwiLFxuICAgICAgXCJBY2NvdW50YWJpbGl0eVwiLFxuICAgICAgXCJJbnRlcmFjdGlvbnNcIixcbiAgICAgIFwiRmFjdG9yc1wiLFxuICAgICAgXCJVc2FiaWxpdHlcIixcbiAgICAgIFwiTWV0cmljc1wiXG4gICAgXSxcbiAgICBcImpvYlwiOiBbXG4gICAgICBcIlN1cGVydmlzb3JcIixcbiAgICAgIFwiQXNzb2NpYXRlXCIsXG4gICAgICBcIkV4ZWN1dGl2ZVwiLFxuICAgICAgXCJMaWFzb25cIixcbiAgICAgIFwiT2ZmaWNlclwiLFxuICAgICAgXCJNYW5hZ2VyXCIsXG4gICAgICBcIkVuZ2luZWVyXCIsXG4gICAgICBcIlNwZWNpYWxpc3RcIixcbiAgICAgIFwiRGlyZWN0b3JcIixcbiAgICAgIFwiQ29vcmRpbmF0b3JcIixcbiAgICAgIFwiQWRtaW5pc3RyYXRvclwiLFxuICAgICAgXCJBcmNoaXRlY3RcIixcbiAgICAgIFwiQW5hbHlzdFwiLFxuICAgICAgXCJEZXNpZ25lclwiLFxuICAgICAgXCJQbGFubmVyXCIsXG4gICAgICBcIk9yY2hlc3RyYXRvclwiLFxuICAgICAgXCJUZWNobmljaWFuXCIsXG4gICAgICBcIkRldmVsb3BlclwiLFxuICAgICAgXCJQcm9kdWNlclwiLFxuICAgICAgXCJDb25zdWx0YW50XCIsXG4gICAgICBcIkFzc2lzdGFudFwiLFxuICAgICAgXCJGYWNpbGl0YXRvclwiLFxuICAgICAgXCJBZ2VudFwiLFxuICAgICAgXCJSZXByZXNlbnRhdGl2ZVwiLFxuICAgICAgXCJTdHJhdGVnaXN0XCJcbiAgICBdXG4gIH0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje2ZpcnN0X25hbWVfd29tZW59ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lX21lbn0gI3tsYXN0X25hbWV9XCIsXG4gICAgXCIje3ByZWZpeH0gI3tmaXJzdF9uYW1lX3dvbWVufSAje2xhc3RfbmFtZX1cIlxuICBdXG59O1xuc3YucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiIyMjIy0jIyMjI1wiLFxuICAgIFwiIyMjIy0jIyMjIyNcIlxuICBdXG59O1xuc3YuY2VsbF9waG9uZSA9IHtcbiAgXCJjb21tb25fY2VsbF9wcmVmaXhcIjogW1xuICAgIDU2LFxuICAgIDYyLFxuICAgIDU5XG4gIF0sXG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIje2NvbW1vbl9jZWxsX3ByZWZpeH0tIyMjLSMjIyNcIlxuICBdXG59O1xuc3YuY29tbWVyY2UgPSB7XG4gIFwiY29sb3JcIjogW1xuICAgIFwidml0XCIsXG4gICAgXCJzaWx2ZXJcIixcbiAgICBcImdyw6VcIixcbiAgICBcInN2YXJ0XCIsXG4gICAgXCJyw7ZkXCIsXG4gICAgXCJncsO2blwiLFxuICAgIFwiYmzDpVwiLFxuICAgIFwiZ3VsXCIsXG4gICAgXCJsaWxhXCIsXG4gICAgXCJpbmRpZ29cIixcbiAgICBcImd1bGRcIixcbiAgICBcImJydW5cIixcbiAgICBcInJvc2FcIixcbiAgICBcInB1cnB1clwiLFxuICAgIFwia29yYWxsXCJcbiAgXSxcbiAgXCJkZXBhcnRtZW50XCI6IFtcbiAgICBcIkLDtmNrZXJcIixcbiAgICBcIkZpbG1lclwiLFxuICAgIFwiTXVzaWtcIixcbiAgICBcIlNwZWxcIixcbiAgICBcIkVsZWt0cm9uaWtcIixcbiAgICBcIkRhdG9yZXJcIixcbiAgICBcIkhlbVwiLFxuICAgIFwiVHLDpGRnw6VyZFwiLFxuICAgIFwiVmVya3R5Z1wiLFxuICAgIFwiTGl2c21lZGVsXCIsXG4gICAgXCJIw6Rsc2FcIixcbiAgICBcIlNrw7ZuaGV0XCIsXG4gICAgXCJMZWtzYWtlclwiLFxuICAgIFwiS2zDpGRzZWxcIixcbiAgICBcIlNrb3JcIixcbiAgICBcIlNteWNrZW5cIixcbiAgICBcIlNwb3J0XCJcbiAgXSxcbiAgXCJwcm9kdWN0X25hbWVcIjoge1xuICAgIFwiYWRqZWN0aXZlXCI6IFtcbiAgICAgIFwiTGl0ZW5cIixcbiAgICAgIFwiRXJnb25vbWlza1wiLFxuICAgICAgXCJSb2J1c3RcIixcbiAgICAgIFwiSW50ZWxsaWdlbnRcIixcbiAgICAgIFwiU8O2dFwiLFxuICAgICAgXCJPdHJvbGlnXCIsXG4gICAgICBcIkZhdGFzdGlza1wiLFxuICAgICAgXCJQcmFrdGlza1wiLFxuICAgICAgXCJTbGltbWFkXCIsXG4gICAgICBcIkdyeW1cIlxuICAgIF0sXG4gICAgXCJtYXRlcmlhbFwiOiBbXG4gICAgICBcIlN0w6VsXCIsXG4gICAgICBcIk1ldGFsbFwiLFxuICAgICAgXCJUcsOkXCIsXG4gICAgICBcIkJldG9uZ1wiLFxuICAgICAgXCJQbGFzdFwiLFxuICAgICAgXCJCb211bFwiLFxuICAgICAgXCJHcm5pdFwiLFxuICAgICAgXCJHdW1taVwiLFxuICAgICAgXCJMYXRleFwiXG4gICAgXSxcbiAgICBcInByb2R1Y3RcIjogW1xuICAgICAgXCJTdG9sXCIsXG4gICAgICBcIkJpbFwiLFxuICAgICAgXCJEYXRvclwiLFxuICAgICAgXCJIYW5kc2thclwiLFxuICAgICAgXCJQYW50c1wiLFxuICAgICAgXCJTaGlydFwiLFxuICAgICAgXCJUYWJsZVwiLFxuICAgICAgXCJTaG9lc1wiLFxuICAgICAgXCJIYXRcIlxuICAgIF1cbiAgfVxufTtcbnN2LnRlYW0gPSB7XG4gIFwic3VmZml4XCI6IFtcbiAgICBcIklGXCIsXG4gICAgXCJGRlwiLFxuICAgIFwiQktcIixcbiAgICBcIkhLXCIsXG4gICAgXCJBSUZcIixcbiAgICBcIlNLXCIsXG4gICAgXCJGQ1wiLFxuICAgIFwiU0tcIixcbiAgICBcIkJvSVNcIixcbiAgICBcIkZLXCIsXG4gICAgXCJCSVNcIixcbiAgICBcIkZJRlwiLFxuICAgIFwiSUtcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tBZGRyZXNzLmNpdHl9ICN7c3VmZml4fVwiXG4gIF1cbn07XG4iLCJ2YXIgdmkgPSB7fTtcbm1vZHVsZVtcImV4cG9ydHNcIl0gPSB2aTtcbnZpLnRpdGxlID0gXCJWaWV0bmFtZXNlXCI7XG52aS5hZGRyZXNzID0ge1xuICBcImNpdHlfcm9vdFwiOiBbXG4gICAgXCJC4bqvYyBHaWFuZ1wiLFxuICAgIFwiQuG6r2MgS+G6oW5cIixcbiAgICBcIkLhuq9jIE5pbmhcIixcbiAgICBcIkNhbyBC4bqxbmdcIixcbiAgICBcIsSQaeG7h24gQmnDqm5cIixcbiAgICBcIkjDoCBHaWFuZ1wiLFxuICAgIFwiSMOgIE5hbVwiLFxuICAgIFwiSMOgIFTDonlcIixcbiAgICBcIkjhuqNpIETGsMahbmdcIixcbiAgICBcIlRQIEjhuqNpIFBow7JuZ1wiLFxuICAgIFwiSMOyYSBCw6xuaFwiLFxuICAgIFwiSMawbmcgWcOqblwiLFxuICAgIFwiTGFpIENow6J1XCIsXG4gICAgXCJMw6BvIENhaVwiLFxuICAgIFwiTOG6oW5nIFPGoW5cIixcbiAgICBcIk5hbSDEkOG7i25oXCIsXG4gICAgXCJOaW5oIELDrG5oXCIsXG4gICAgXCJQaMO6IFRo4buNXCIsXG4gICAgXCJRdeG6o25nIE5pbmhcIixcbiAgICBcIlPGoW4gTGFcIixcbiAgICBcIlRow6FpIELDrG5oXCIsXG4gICAgXCJUaMOhaSBOZ3V5w6puXCIsXG4gICAgXCJUdXnDqm4gUXVhbmdcIixcbiAgICBcIlbEqW5oIFBow7pjXCIsXG4gICAgXCJZw6puIELDoWlcIixcbiAgICBcIlRQIMSQw6AgTuG6tW5nXCIsXG4gICAgXCJCw6xuaCDEkOG7i25oXCIsXG4gICAgXCLEkOG6r2sgTOG6r2tcIixcbiAgICBcIsSQ4bqvayBOw7RuZ1wiLFxuICAgIFwiR2lhIExhaVwiLFxuICAgIFwiSMOgIFTEqW5oXCIsXG4gICAgXCJLaMOhbmggSMOyYVwiLFxuICAgIFwiS29uIFR1bVwiLFxuICAgIFwiTmdo4buHIEFuXCIsXG4gICAgXCJQaMO6IFnDqm5cIixcbiAgICBcIlF14bqjbmcgQsOsbmhcIixcbiAgICBcIlF14bqjbmcgTmFtXCIsXG4gICAgXCJRdeG6o25nIE5nw6NpXCIsXG4gICAgXCJRdeG6o25nIFRy4buLXCIsXG4gICAgXCJUaGFuaCBIw7NhXCIsXG4gICAgXCJUaOG7q2EgVGhpw6puIEh14bq/XCIsXG4gICAgXCJUUCBUUC4gSOG7kyBDaMOtIE1pbmhcIixcbiAgICBcIkFuIEdpYW5nXCIsXG4gICAgXCJCw6AgUuG7i2EgVsWpbmcgVMOgdVwiLFxuICAgIFwiQuG6oWMgTGnDqnVcIixcbiAgICBcIkLhur9uIFRyZVwiLFxuICAgIFwiQsOsbmggRMawxqFuZ1wiLFxuICAgIFwiQsOsbmggUGjGsOG7m2NcIixcbiAgICBcIkLDrG5oIFRodeG6rW5cIixcbiAgICBcIkPDoCBNYXVcIixcbiAgICBcIlRQIEPhuqduIFRoxqFcIixcbiAgICBcIsSQ4buTbmcgTmFpXCIsXG4gICAgXCLEkOG7k25nIFRow6FwXCIsXG4gICAgXCJI4bqtdSBHaWFuZ1wiLFxuICAgIFwiS2nDqm4gR2lhbmdcIixcbiAgICBcIkzDom0gxJDhu5NuZ1wiLFxuICAgIFwiTG9uZyBBblwiLFxuICAgIFwiTmluaCBUaHXhuq1uXCIsXG4gICAgXCJTw7NjIFRyxINuZ1wiLFxuICAgIFwiVMOieSBOaW5oXCIsXG4gICAgXCJUaeG7gW4gR2lhbmdcIixcbiAgICBcIlRyw6AgVmluaFwiLFxuICAgIFwiVsSpbmggTG9uZ1wiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcm9vdH1cIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFwiL1tBLVBSLVVXWVowLTldW0EtSEstWTAtOV1bQUVITU5QUlRWWFkwLTldP1tBQkVITU5QUlZXWFkwLTldPyB7MSwyfVswLTldW0FCRC1ISkxOLVVXLVpdezJ9L1wiLFxuICBcImNvdW50eVwiOiBbXG4gICAgXCJBdm9uXCIsXG4gICAgXCJCZWRmb3Jkc2hpcmVcIixcbiAgICBcIkJlcmtzaGlyZVwiLFxuICAgIFwiQm9yZGVyc1wiLFxuICAgIFwiQnVja2luZ2hhbXNoaXJlXCIsXG4gICAgXCJDYW1icmlkZ2VzaGlyZVwiLFxuICAgIFwiQ2VudHJhbFwiLFxuICAgIFwiQ2hlc2hpcmVcIixcbiAgICBcIkNsZXZlbGFuZFwiLFxuICAgIFwiQ2x3eWRcIixcbiAgICBcIkNvcm53YWxsXCIsXG4gICAgXCJDb3VudHkgQW50cmltXCIsXG4gICAgXCJDb3VudHkgQXJtYWdoXCIsXG4gICAgXCJDb3VudHkgRG93blwiLFxuICAgIFwiQ291bnR5IEZlcm1hbmFnaFwiLFxuICAgIFwiQ291bnR5IExvbmRvbmRlcnJ5XCIsXG4gICAgXCJDb3VudHkgVHlyb25lXCIsXG4gICAgXCJDdW1icmlhXCIsXG4gICAgXCJEZXJieXNoaXJlXCIsXG4gICAgXCJEZXZvblwiLFxuICAgIFwiRG9yc2V0XCIsXG4gICAgXCJEdW1mcmllcyBhbmQgR2FsbG93YXlcIixcbiAgICBcIkR1cmhhbVwiLFxuICAgIFwiRHlmZWRcIixcbiAgICBcIkVhc3QgU3Vzc2V4XCIsXG4gICAgXCJFc3NleFwiLFxuICAgIFwiRmlmZVwiLFxuICAgIFwiR2xvdWNlc3RlcnNoaXJlXCIsXG4gICAgXCJHcmFtcGlhblwiLFxuICAgIFwiR3JlYXRlciBNYW5jaGVzdGVyXCIsXG4gICAgXCJHd2VudFwiLFxuICAgIFwiR3d5bmVkZCBDb3VudHlcIixcbiAgICBcIkhhbXBzaGlyZVwiLFxuICAgIFwiSGVyZWZvcmRzaGlyZVwiLFxuICAgIFwiSGVydGZvcmRzaGlyZVwiLFxuICAgIFwiSGlnaGxhbmRzIGFuZCBJc2xhbmRzXCIsXG4gICAgXCJIdW1iZXJzaWRlXCIsXG4gICAgXCJJc2xlIG9mIFdpZ2h0XCIsXG4gICAgXCJLZW50XCIsXG4gICAgXCJMYW5jYXNoaXJlXCIsXG4gICAgXCJMZWljZXN0ZXJzaGlyZVwiLFxuICAgIFwiTGluY29sbnNoaXJlXCIsXG4gICAgXCJMb3RoaWFuXCIsXG4gICAgXCJNZXJzZXlzaWRlXCIsXG4gICAgXCJNaWQgR2xhbW9yZ2FuXCIsXG4gICAgXCJOb3Jmb2xrXCIsXG4gICAgXCJOb3J0aCBZb3Jrc2hpcmVcIixcbiAgICBcIk5vcnRoYW1wdG9uc2hpcmVcIixcbiAgICBcIk5vcnRodW1iZXJsYW5kXCIsXG4gICAgXCJOb3R0aW5naGFtc2hpcmVcIixcbiAgICBcIk94Zm9yZHNoaXJlXCIsXG4gICAgXCJQb3d5c1wiLFxuICAgIFwiUnV0bGFuZFwiLFxuICAgIFwiU2hyb3BzaGlyZVwiLFxuICAgIFwiU29tZXJzZXRcIixcbiAgICBcIlNvdXRoIEdsYW1vcmdhblwiLFxuICAgIFwiU291dGggWW9ya3NoaXJlXCIsXG4gICAgXCJTdGFmZm9yZHNoaXJlXCIsXG4gICAgXCJTdHJhdGhjbHlkZVwiLFxuICAgIFwiU3VmZm9sa1wiLFxuICAgIFwiU3VycmV5XCIsXG4gICAgXCJUYXlzaWRlXCIsXG4gICAgXCJUeW5lIGFuZCBXZWFyXCIsXG4gICAgXCJWaeG7h3QgTmFtXCIsXG4gICAgXCJXYXJ3aWNrc2hpcmVcIixcbiAgICBcIldlc3QgR2xhbW9yZ2FuXCIsXG4gICAgXCJXZXN0IE1pZGxhbmRzXCIsXG4gICAgXCJXZXN0IFN1c3NleFwiLFxuICAgIFwiV2VzdCBZb3Jrc2hpcmVcIixcbiAgICBcIldpbHRzaGlyZVwiLFxuICAgIFwiV29yY2VzdGVyc2hpcmVcIlxuICBdLFxuICBcImRlZmF1bHRfY291bnRyeVwiOiBbXG4gICAgXCJWaeG7h3QgTmFtXCJcbiAgXVxufTtcbnZpLmludGVybmV0ID0ge1xuICBcImRvbWFpbl9zdWZmaXhcIjogW1xuICAgIFwiY29tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcImluZm9cIixcbiAgICBcInZuXCIsXG4gICAgXCJjb20udm5cIlxuICBdXG59O1xudmkucGhvbmVfbnVtYmVyID0ge1xuICBcImZvcm1hdHNcIjogW1xuICAgIFwiMDEjIyMjICMjIyMjXCIsXG4gICAgXCIwMSMjIyAjIyMjIyNcIixcbiAgICBcIjAxIzEgIyMjICMjIyNcIixcbiAgICBcIjAxMSMgIyMjICMjIyNcIixcbiAgICBcIjAyIyAjIyMjICMjIyNcIixcbiAgICBcIjAzIyMgIyMjICMjIyNcIixcbiAgICBcIjA1NSAjIyMjICMjIyNcIixcbiAgICBcIjA1NiAjIyMjICMjIyNcIixcbiAgICBcIjA4MDAgIyMjICMjIyNcIixcbiAgICBcIjA4IyMgIyMjICMjIyNcIixcbiAgICBcIjA5IyMgIyMjICMjIyNcIixcbiAgICBcIjAxNjk3NyAjIyMjXCIsXG4gICAgXCIwMSMjIyAjIyMjI1wiLFxuICAgIFwiMDUwMCAjIyMjIyNcIixcbiAgICBcIjA4MDAgIyMjIyMjXCJcbiAgXVxufTtcbnZpLmNlbGxfcGhvbmUgPSB7XG4gIFwiZm9ybWF0c1wiOiBbXG4gICAgXCIwNzQjIyAjIyMjIyNcIixcbiAgICBcIjA3NSMjICMjIyMjI1wiLFxuICAgIFwiMDc2IyMgIyMjIyMjXCIsXG4gICAgXCIwNzcjIyAjIyMjIyNcIixcbiAgICBcIjA3OCMjICMjIyMjI1wiLFxuICAgIFwiMDc5IyMgIyMjIyMjXCJcbiAgXVxufTtcbnZpLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCJQaOG6oW1cIixcbiAgICBcIk5ndXnhu4VuXCIsXG4gICAgXCJUcuG6p25cIixcbiAgICBcIkzDqlwiLFxuICAgIFwiTMO9XCIsXG4gICAgXCJIb8OgbmdcIixcbiAgICBcIlBoYW5cIixcbiAgICBcIlbFqVwiLFxuICAgIFwiVMSDbmdcIixcbiAgICBcIsSQ4bq3bmdcIixcbiAgICBcIkLDuWlcIixcbiAgICBcIsSQ4buXXCIsXG4gICAgXCJI4buTXCIsXG4gICAgXCJOZ8O0XCIsXG4gICAgXCJExrDGoW5nXCIsXG4gICAgXCLEkMOgb1wiLFxuICAgIFwixJBvw6BuXCIsXG4gICAgXCJWxrDGoW5nXCIsXG4gICAgXCJUcuG7i25oXCIsXG4gICAgXCLEkGluaFwiLFxuICAgIFwiTMOibVwiLFxuICAgIFwiUGjDuW5nXCIsXG4gICAgXCJNYWlcIixcbiAgICBcIlTDtFwiLFxuICAgIFwiVHLGsMahbmdcIixcbiAgICBcIkjDoFwiXG4gIF0sXG4gIFwibGFzdF9uYW1lXCI6IFtcbiAgICBcIk5hbVwiLFxuICAgIFwiVHJ1bmdcIixcbiAgICBcIlRoYW5oXCIsXG4gICAgXCJUaOG7i1wiLFxuICAgIFwiVsSDblwiLFxuICAgIFwiRMawxqFuZ1wiLFxuICAgIFwiVMSDbmdcIixcbiAgICBcIlF14buRY1wiLFxuICAgIFwiTmjGsFwiLFxuICAgIFwiUGjhuqFtXCIsXG4gICAgXCJOZ3V54buFblwiLFxuICAgIFwiVHLhuqduXCIsXG4gICAgXCJMw6pcIixcbiAgICBcIkzDvVwiLFxuICAgIFwiSG/DoG5nXCIsXG4gICAgXCJQaGFuXCIsXG4gICAgXCJWxalcIixcbiAgICBcIlTEg25nXCIsXG4gICAgXCLEkOG6t25nXCIsXG4gICAgXCJCw7lpXCIsXG4gICAgXCLEkOG7l1wiLFxuICAgIFwiSOG7k1wiLFxuICAgIFwiTmfDtFwiLFxuICAgIFwiRMawxqFuZ1wiLFxuICAgIFwixJDDoG9cIixcbiAgICBcIsSQb8OgblwiLFxuICAgIFwiVsawxqFuZ1wiLFxuICAgIFwiVHLhu4tuaFwiLFxuICAgIFwixJBpbmhcIixcbiAgICBcIkzDom1cIixcbiAgICBcIlBow7luZ1wiLFxuICAgIFwiTWFpXCIsXG4gICAgXCJUw7RcIixcbiAgICBcIlRyxrDGoW5nXCIsXG4gICAgXCJIw6BcIixcbiAgICBcIlZpbmhcIixcbiAgICBcIk5odW5nXCIsXG4gICAgXCJIw7JhXCIsXG4gICAgXCJUaeG6v25cIixcbiAgICBcIlTDom1cIixcbiAgICBcIkLhu611XCIsXG4gICAgXCJMb2FuXCIsXG4gICAgXCJIaeG7gW5cIixcbiAgICBcIkjhuqNpXCIsXG4gICAgXCJWw6JuXCIsXG4gICAgXCJLaGFcIixcbiAgICBcIk1pbmhcIixcbiAgICBcIk5ow6JuXCIsXG4gICAgXCJUcmnhu4d1XCIsXG4gICAgXCJUdcOiblwiLFxuICAgIFwiSOG7r3VcIixcbiAgICBcIsSQ4bupY1wiLFxuICAgIFwiUGjDulwiLFxuICAgIFwiS2hvYVwiLFxuICAgIFwiVGjhuq9nblwiLFxuICAgIFwiU8ahblwiLFxuICAgIFwiRHVuZ1wiLFxuICAgIFwiVMO6XCIsXG4gICAgXCJUcmluaFwiLFxuICAgIFwiVGjhuqNvXCIsXG4gICAgXCJTYVwiLFxuICAgIFwiS2ltXCIsXG4gICAgXCJMb25nXCIsXG4gICAgXCJUaGlcIixcbiAgICBcIkPGsOG7nW5nXCIsXG4gICAgXCJOZ+G7jWNcIixcbiAgICBcIlNpbmhcIixcbiAgICBcIktoYW5nXCIsXG4gICAgXCJQaG9uZ1wiLFxuICAgIFwiVGjhuq9tXCIsXG4gICAgXCJUaHVcIixcbiAgICBcIlRo4buneVwiLFxuICAgIFwiTmjDoG5cIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX1cIixcbiAgICBcIiN7Zmlyc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiLFxuICAgIFwiI3tmaXJzdF9uYW1lfSAje2xhc3RfbmFtZX0gI3tsYXN0X25hbWV9ICN7bGFzdF9uYW1lfVwiXG4gIF1cbn07XG52aS5jb21wYW55ID0ge1xuICBcInByZWZpeFwiOiBbXG4gICAgXCJDw7RuZyB0eVwiLFxuICAgIFwiQ3R5IFROSEhcIixcbiAgICBcIkN0eVwiLFxuICAgIFwiQ+G7rWEgaMOgbmdcIixcbiAgICBcIlRydW5nIHTDom1cIixcbiAgICBcIkNoaSBuaMOhbmhcIlxuICBdLFxuICBcIm5hbWVcIjogW1xuICAgIFwiI3twcmVmaXh9ICN7TmFtZS5sYXN0X25hbWV9XCJcbiAgXVxufTtcbnZpLmxvcmVtID0ge1xuICBcIndvcmRzXCI6IFtcbiAgICBcIsSRw6NcIixcbiAgICBcIsSRYW5nXCIsXG4gICAgXCLhu6tcIixcbiAgICBcIuG7nVwiLFxuICAgIFwiw6FcIixcbiAgICBcImtow7RuZ1wiLFxuICAgIFwiYmnhur90XCIsXG4gICAgXCJnw6xcIixcbiAgICBcImjhur90XCIsXG4gICAgXCLEkcOidVwiLFxuICAgIFwibmhhXCIsXG4gICAgXCJ0aOG6v1wiLFxuICAgIFwidGjDrFwiLFxuICAgIFwibMOgXCIsXG4gICAgXCLEkcOhbmhcIixcbiAgICBcIsSRw6FcIixcbiAgICBcIsSR4bqtcFwiLFxuICAgIFwicGjDoVwiLFxuICAgIFwidmnhur90XCIsXG4gICAgXCJ24bq9XCIsXG4gICAgXCJ0w7RcIixcbiAgICBcInRodcOqXCIsXG4gICAgXCJtxrDhu5tuXCIsXG4gICAgXCJtxrDhu6NuXCIsXG4gICAgXCJtdWFcIixcbiAgICBcIm3hu5l0XCIsXG4gICAgXCJoYWlcIixcbiAgICBcImJhXCIsXG4gICAgXCJi4buRblwiLFxuICAgIFwibsSDbVwiLFxuICAgIFwic8OhdVwiLFxuICAgIFwiYuG6o3lcIixcbiAgICBcInTDoW1cIixcbiAgICBcImNow61uXCIsXG4gICAgXCJtxrDhu51pXCIsXG4gICAgXCJ0aMO0aVwiLFxuICAgIFwidmnhu4djXCIsXG4gICAgXCJuZ2jhu4lcIixcbiAgICBcImzDoG1cIixcbiAgICBcIm5ow6BcIixcbiAgICBcImPhu61hXCIsXG4gICAgXCJ4ZVwiLFxuICAgIFwixJHhuqFwXCIsXG4gICAgXCLDoWNcIixcbiAgICBcIsSR4buZY1wiLFxuICAgIFwia2hv4bqjbmdcIixcbiAgICBcImtob2FuXCIsXG4gICAgXCJ0aHV54buBblwiLFxuICAgIFwidMOgdVwiLFxuICAgIFwiYsOoXCIsXG4gICAgXCJs4bqndVwiLFxuICAgIFwieGFuaFwiLFxuICAgIFwixJHhu49cIixcbiAgICBcInTDrW1cIixcbiAgICBcInbDoG5nXCIsXG4gICAgXCJraW1cIixcbiAgICBcImNo4buJXCIsXG4gICAgXCJraMOidVwiLFxuICAgIFwibWF5XCIsXG4gICAgXCJ2w6FcIixcbiAgICBcImVtXCIsXG4gICAgXCJhbmhcIixcbiAgICBcInnDqnVcIixcbiAgICBcInRoxrDGoW5nXCIsXG4gICAgXCJ0aMOtY2hcIixcbiAgICBcImNvblwiLFxuICAgIFwiY8OhaVwiLFxuICAgIFwiYsOgblwiLFxuICAgIFwiZ2jhur9cIixcbiAgICBcInThu6dcIixcbiAgICBcInF14bqnblwiLFxuICAgIFwiw6FvXCIsXG4gICAgXCJuw7NuXCIsXG4gICAgXCJkw6lwXCIsXG4gICAgXCJnacOgeVwiLFxuICAgIFwibOG7l2lcIixcbiAgICBcIsSRxrDhu6NjXCIsXG4gICAgXCJnaMOpdFwiLFxuICAgIFwiZ2nhur90XCIsXG4gICAgXCJjaOG6v3RcIixcbiAgICBcImjhur90XCIsXG4gICAgXCJ0w7RpXCIsXG4gICAgXCJi4bqhblwiLFxuICAgIFwidHVpXCIsXG4gICAgXCJ0cuG7nWlcIixcbiAgICBcInRyxINuZ1wiLFxuICAgIFwibcOieVwiLFxuICAgIFwiZ2nDs1wiLFxuICAgIFwibcOheVwiLFxuICAgIFwiaMOgbmdcIixcbiAgICBcImjDs2FcIixcbiAgICBcImxlb1wiLFxuICAgIFwibsO6aVwiLFxuICAgIFwiYsahaVwiLFxuICAgIFwiYmnhu4NuXCIsXG4gICAgXCJjaMOsbVwiLFxuICAgIFwieHXhu5NuZ1wiLFxuICAgIFwibsaw4bubY1wiLFxuICAgIFwibmfhu410XCIsXG4gICAgXCJydeG7mW5nXCIsXG4gICAgXCLEkeG7k25nXCIsXG4gICAgXCJxdcOqXCIsXG4gICAgXCJoxrDGoW5nXCJcbiAgXVxufTtcbiIsInZhciB6aF9DTiA9IHt9O1xubW9kdWxlW1wiZXhwb3J0c1wiXSA9IHpoX0NOO1xuemhfQ04udGl0bGUgPSBcIkNoaW5lc2VcIjtcbnpoX0NOLmFkZHJlc3MgPSB7XG4gIFwiY2l0eV9wcmVmaXhcIjogW1xuICAgIFwi6ZW/XCIsXG4gICAgXCLkuIpcIixcbiAgICBcIuWNl1wiLFxuICAgIFwi6KW/XCIsXG4gICAgXCLljJdcIixcbiAgICBcIuivuFwiLFxuICAgIFwi5a6BXCIsXG4gICAgXCLnj6BcIixcbiAgICBcIuatplwiLFxuICAgIFwi6KGhXCIsXG4gICAgXCLmiJBcIixcbiAgICBcIuemj1wiLFxuICAgIFwi5Y6mXCIsXG4gICAgXCLotLVcIixcbiAgICBcIuWQiVwiLFxuICAgIFwi5rW3XCIsXG4gICAgXCLlpKpcIixcbiAgICBcIua1jlwiLFxuICAgIFwi5a6JXCIsXG4gICAgXCLlkIlcIixcbiAgICBcIuWMhVwiXG4gIF0sXG4gIFwiY2l0eV9zdWZmaXhcIjogW1xuICAgIFwi5rKZ5biCXCIsXG4gICAgXCLkuqzluIJcIixcbiAgICBcIuWugeW4glwiLFxuICAgIFwi5a6J5biCXCIsXG4gICAgXCLkuaHljr9cIixcbiAgICBcIua1t+W4glwiLFxuICAgIFwi56CB5biCXCIsXG4gICAgXCLmsYnluIJcIixcbiAgICBcIumYs+W4glwiLFxuICAgIFwi6YO95biCXCIsXG4gICAgXCLlt57luIJcIixcbiAgICBcIumXqOW4glwiLFxuICAgIFwi6Ziz5biCXCIsXG4gICAgXCLlj6PluIJcIixcbiAgICBcIuWOn+W4glwiLFxuICAgIFwi5Y2X5biCXCIsXG4gICAgXCLlvr3luIJcIixcbiAgICBcIuael+W4glwiLFxuICAgIFwi5aS05biCXCJcbiAgXSxcbiAgXCJidWlsZGluZ19udW1iZXJcIjogW1xuICAgIFwiIyMjIyNcIixcbiAgICBcIiMjIyNcIixcbiAgICBcIiMjI1wiLFxuICAgIFwiIyNcIixcbiAgICBcIiNcIlxuICBdLFxuICBcInN0cmVldF9zdWZmaXhcIjogW1xuICAgIFwi5be3XCIsXG4gICAgXCLooZdcIixcbiAgICBcIui3r1wiLFxuICAgIFwi5qGlXCIsXG4gICAgXCLkvqxcIixcbiAgICBcIuaXgVwiLFxuICAgIFwi5Lit5b+DXCIsXG4gICAgXCLmoItcIlxuICBdLFxuICBcInBvc3Rjb2RlXCI6IFtcbiAgICBcIiMjIyMjI1wiXG4gIF0sXG4gIFwic3RhdGVcIjogW1xuICAgIFwi5YyX5Lqs5biCXCIsXG4gICAgXCLkuIrmtbfluIJcIixcbiAgICBcIuWkqea0peW4glwiLFxuICAgIFwi6YeN5bqG5biCXCIsXG4gICAgXCLpu5HpvpnmsZ/nnIFcIixcbiAgICBcIuWQieael+ecgVwiLFxuICAgIFwi6L695a6B55yBXCIsXG4gICAgXCLlhoXokpnlj6RcIixcbiAgICBcIuays+WMl+ecgVwiLFxuICAgIFwi5paw55aGXCIsXG4gICAgXCLnlJjogoPnnIFcIixcbiAgICBcIumdkua1t+ecgVwiLFxuICAgIFwi6ZmV6KW/55yBXCIsXG4gICAgXCLlroHlpI9cIixcbiAgICBcIuays+WNl+ecgVwiLFxuICAgIFwi5bGx5Lic55yBXCIsXG4gICAgXCLlsbHopb/nnIFcIixcbiAgICBcIuWuieW+veecgVwiLFxuICAgIFwi5rmW5YyX55yBXCIsXG4gICAgXCLmuZbljZfnnIFcIixcbiAgICBcIuaxn+iLj+ecgVwiLFxuICAgIFwi5Zub5bed55yBXCIsXG4gICAgXCLotLXlt57nnIFcIixcbiAgICBcIuS6keWNl+ecgVwiLFxuICAgIFwi5bm/6KW/55yBXCIsXG4gICAgXCLopb/ol49cIixcbiAgICBcIua1meaxn+ecgVwiLFxuICAgIFwi5rGf6KW/55yBXCIsXG4gICAgXCLlub/kuJznnIFcIixcbiAgICBcIuemj+W7uuecgVwiLFxuICAgIFwi5Y+w5rm+55yBXCIsXG4gICAgXCLmtbfljZfnnIFcIixcbiAgICBcIummmea4r1wiLFxuICAgIFwi5r6z6ZeoXCJcbiAgXSxcbiAgXCJzdGF0ZV9hYmJyXCI6IFtcbiAgICBcIuS6rFwiLFxuICAgIFwi5rKqXCIsXG4gICAgXCLmtKVcIixcbiAgICBcIua4nVwiLFxuICAgIFwi6buRXCIsXG4gICAgXCLlkIlcIixcbiAgICBcIui+vVwiLFxuICAgIFwi6JKZXCIsXG4gICAgXCLlhoBcIixcbiAgICBcIuaWsFwiLFxuICAgIFwi55SYXCIsXG4gICAgXCLpnZJcIixcbiAgICBcIumZlVwiLFxuICAgIFwi5a6BXCIsXG4gICAgXCLosatcIixcbiAgICBcIumygVwiLFxuICAgIFwi5pmLXCIsXG4gICAgXCLnmpZcIixcbiAgICBcIumEglwiLFxuICAgIFwi5rmYXCIsXG4gICAgXCLoi49cIixcbiAgICBcIuW3nVwiLFxuICAgIFwi6buUXCIsXG4gICAgXCLmu4dcIixcbiAgICBcIuahglwiLFxuICAgIFwi6JePXCIsXG4gICAgXCLmtZlcIixcbiAgICBcIui1o1wiLFxuICAgIFwi57KkXCIsXG4gICAgXCLpl71cIixcbiAgICBcIuWPsFwiLFxuICAgIFwi55C8XCIsXG4gICAgXCLmuK9cIixcbiAgICBcIua+s1wiXG4gIF0sXG4gIFwiY2l0eVwiOiBbXG4gICAgXCIje2NpdHlfcHJlZml4fSN7Y2l0eV9zdWZmaXh9XCJcbiAgXSxcbiAgXCJzdHJlZXRfbmFtZVwiOiBbXG4gICAgXCIje05hbWUubGFzdF9uYW1lfSN7c3RyZWV0X3N1ZmZpeH1cIlxuICBdLFxuICBcInN0cmVldF9hZGRyZXNzXCI6IFtcbiAgICBcIiN7c3RyZWV0X25hbWV9I3tidWlsZGluZ19udW1iZXJ95Y+3XCJcbiAgXSxcbiAgXCJkZWZhdWx0X2NvdW50cnlcIjogW1xuICAgIFwi5Lit5Zu9XCJcbiAgXVxufTtcbnpoX0NOLm5hbWUgPSB7XG4gIFwiZmlyc3RfbmFtZVwiOiBbXG4gICAgXCLnjotcIixcbiAgICBcIuadjlwiLFxuICAgIFwi5bygXCIsXG4gICAgXCLliJhcIixcbiAgICBcIumZiFwiLFxuICAgIFwi5p2oXCIsXG4gICAgXCLpu4RcIixcbiAgICBcIuWQtFwiLFxuICAgIFwi6LW1XCIsXG4gICAgXCLlkahcIixcbiAgICBcIuW+kFwiLFxuICAgIFwi5a2ZXCIsXG4gICAgXCLpqaxcIixcbiAgICBcIuacsVwiLFxuICAgIFwi6IOhXCIsXG4gICAgXCLmnpdcIixcbiAgICBcIumDrVwiLFxuICAgIFwi5L2VXCIsXG4gICAgXCLpq5hcIixcbiAgICBcIue9l1wiLFxuICAgIFwi6YORXCIsXG4gICAgXCLmooFcIixcbiAgICBcIuiwolwiLFxuICAgIFwi5a6LXCIsXG4gICAgXCLllJBcIixcbiAgICBcIuiuuFwiLFxuICAgIFwi6YKTXCIsXG4gICAgXCLlhq9cIixcbiAgICBcIumfqVwiLFxuICAgIFwi5pu5XCIsXG4gICAgXCLmm75cIixcbiAgICBcIuW9rVwiLFxuICAgIFwi6JCnXCIsXG4gICAgXCLolKFcIixcbiAgICBcIua9mFwiLFxuICAgIFwi55SwXCIsXG4gICAgXCLokaNcIixcbiAgICBcIuiigVwiLFxuICAgIFwi5LqOXCIsXG4gICAgXCLkvZlcIixcbiAgICBcIuWPtlwiLFxuICAgIFwi6JKLXCIsXG4gICAgXCLmnZxcIixcbiAgICBcIuiLj1wiLFxuICAgIFwi6a2PXCIsXG4gICAgXCLnqItcIixcbiAgICBcIuWQlVwiLFxuICAgIFwi5LiBXCIsXG4gICAgXCLmsohcIixcbiAgICBcIuS7u1wiLFxuICAgIFwi5aeaXCIsXG4gICAgXCLljaJcIixcbiAgICBcIuWChVwiLFxuICAgIFwi6ZKfXCIsXG4gICAgXCLlp5xcIixcbiAgICBcIuW0lFwiLFxuICAgIFwi6LCtXCIsXG4gICAgXCLlu5ZcIixcbiAgICBcIuiMg1wiLFxuICAgIFwi5rGqXCIsXG4gICAgXCLpmYZcIixcbiAgICBcIumHkVwiLFxuICAgIFwi55+zXCIsXG4gICAgXCLmiLRcIixcbiAgICBcIui0vlwiLFxuICAgIFwi6Z+mXCIsXG4gICAgXCLlpI9cIixcbiAgICBcIumCsVwiLFxuICAgIFwi5pa5XCIsXG4gICAgXCLkvq9cIixcbiAgICBcIumCuVwiLFxuICAgIFwi54aKXCIsXG4gICAgXCLlrZ9cIixcbiAgICBcIuenplwiLFxuICAgIFwi55m9XCIsXG4gICAgXCLmsZ9cIixcbiAgICBcIumYjlwiLFxuICAgIFwi6JabXCIsXG4gICAgXCLlsLlcIixcbiAgICBcIuautVwiLFxuICAgIFwi6Zu3XCIsXG4gICAgXCLpu45cIixcbiAgICBcIuWPslwiLFxuICAgIFwi6b6ZXCIsXG4gICAgXCLpmbZcIixcbiAgICBcIui0ulwiLFxuICAgIFwi6aG+XCIsXG4gICAgXCLmr5tcIixcbiAgICBcIumDnVwiLFxuICAgIFwi6b6aXCIsXG4gICAgXCLpgrVcIixcbiAgICBcIuS4h1wiLFxuICAgIFwi6ZKxXCIsXG4gICAgXCLkuKVcIixcbiAgICBcIui1llwiLFxuICAgIFwi6KaDXCIsXG4gICAgXCLmtKpcIixcbiAgICBcIuatplwiLFxuICAgIFwi6I6rXCIsXG4gICAgXCLlrZRcIlxuICBdLFxuICBcImxhc3RfbmFtZVwiOiBbXG4gICAgXCLnu43pvZBcIixcbiAgICBcIuWNmuaWh1wiLFxuICAgIFwi5qKT5pmoXCIsXG4gICAgXCLog6TnpaVcIixcbiAgICBcIueRnumcllwiLFxuICAgIFwi5piO5ZOyXCIsXG4gICAgXCLlpKnnv4pcIixcbiAgICBcIuWHr+eRnlwiLFxuICAgIFwi5YGl6ZuEXCIsXG4gICAgXCLogIDmnbBcIixcbiAgICBcIua9h+eEtlwiLFxuICAgIFwi5a2Q5ra1XCIsXG4gICAgXCLotorlvaxcIixcbiAgICBcIumSsOi9qVwiLFxuICAgIFwi5pm66L6JXCIsXG4gICAgXCLoh7Tov5xcIixcbiAgICBcIuS/iumpsFwiLFxuICAgIFwi6Zuo5rO9XCIsXG4gICAgXCLng6jno4pcIixcbiAgICBcIuaZn+edv1wiLFxuICAgIFwi5paH5piKXCIsXG4gICAgXCLkv67mtIFcIixcbiAgICBcIum7juaYlVwiLFxuICAgIFwi6L+c6IiqXCIsXG4gICAgXCLml63lsKdcIixcbiAgICBcIum4v+a2m1wiLFxuICAgIFwi5Lyf56W6XCIsXG4gICAgXCLojaPovalcIixcbiAgICBcIui2iuazvVwiLFxuICAgIFwi5rWp5a6HXCIsXG4gICAgXCLnkb7nkZxcIixcbiAgICBcIueak+i9qVwiLFxuICAgIFwi5pOO6IuNXCIsXG4gICAgXCLmk47lrodcIixcbiAgICBcIuW/l+azvVwiLFxuICAgIFwi5a2Q6L2pXCIsXG4gICAgXCLnnb/muIpcIixcbiAgICBcIuW8mOaWh1wiLFxuICAgIFwi5ZOy54CaXCIsXG4gICAgXCLpm6jms71cIixcbiAgICBcIualt+eRnlwiLFxuICAgIFwi5bu66L6JXCIsXG4gICAgXCLmmYvpuY9cIixcbiAgICBcIuWkqeejilwiLFxuICAgIFwi57uN6L6JXCIsXG4gICAgXCLms73mtItcIixcbiAgICBcIumRq+ejilwiLFxuICAgIFwi6bmP54WKXCIsXG4gICAgXCLmmIrlvLpcIixcbiAgICBcIuS8n+WuuFwiLFxuICAgIFwi5Y2a6LaFXCIsXG4gICAgXCLlkJvmtalcIixcbiAgICBcIuWtkOmqnlwiLFxuICAgIFwi6bmP5rabXCIsXG4gICAgXCLngo7lvaxcIixcbiAgICBcIum5pOi9qVwiLFxuICAgIFwi6LaK5b2sXCIsXG4gICAgXCLpo47ljY5cIixcbiAgICBcIumdlueQqlwiLFxuICAgIFwi5piO6L6JXCIsXG4gICAgXCLkvJ/or5pcIixcbiAgICBcIuaYjui9qVwiLFxuICAgIFwi5YGl5p+PXCIsXG4gICAgXCLkv67mnbBcIixcbiAgICBcIuW/l+azvVwiLFxuICAgIFwi5byY5paHXCIsXG4gICAgXCLls7vnhplcIixcbiAgICBcIuWYieaHv1wiLFxuICAgIFwi54Wc5Z+OXCIsXG4gICAgXCLmh7/ovalcIixcbiAgICBcIueDqOS8n1wiLFxuICAgIFwi6IuR5Y2aXCIsXG4gICAgXCLkvJ/ms71cIixcbiAgICBcIueGoOW9pFwiLFxuICAgIFwi6bi/54WKXCIsXG4gICAgXCLljZrmtptcIixcbiAgICBcIueDqOmcllwiLFxuICAgIFwi54Oo5Y2OXCIsXG4gICAgXCLnhZznpbpcIixcbiAgICBcIuaZuuWuuFwiLFxuICAgIFwi5q2j6LGqXCIsXG4gICAgXCLmmIrnhLZcIixcbiAgICBcIuaYjuadsFwiLFxuICAgIFwi56uL6K+aXCIsXG4gICAgXCLnq4vovalcIixcbiAgICBcIueri+i+iVwiLFxuICAgIFwi5bO754aZXCIsXG4gICAgXCLlvJjmlodcIixcbiAgICBcIueGoOW9pFwiLFxuICAgIFwi6bi/54WKXCIsXG4gICAgXCLng6jpnJZcIixcbiAgICBcIuWTsueAmlwiLFxuICAgIFwi6ZGr6bmPXCIsXG4gICAgXCLmmIrlpKlcIixcbiAgICBcIuaAneiBqlwiLFxuICAgIFwi5bGV6bmPXCIsXG4gICAgXCLnrJHmhJpcIixcbiAgICBcIuW/l+W8ulwiLFxuICAgIFwi54Kr5piOXCIsXG4gICAgXCLpm6rmnb5cIixcbiAgICBcIuaAnea6kFwiLFxuICAgIFwi5pm65riKXCIsXG4gICAgXCLmgJ3mt7xcIixcbiAgICBcIuaZk+WVuFwiLFxuICAgIFwi5aSp5a6HXCIsXG4gICAgXCLmtannhLZcIixcbiAgICBcIuaWh+i9qVwiLFxuICAgIFwi6bmt5rSLXCIsXG4gICAgXCLmjK/lrrZcIixcbiAgICBcIuS5kOmpuVwiLFxuICAgIFwi5pmT5Y2aXCIsXG4gICAgXCLmlofljZpcIixcbiAgICBcIuaYiueEsVwiLFxuICAgIFwi56uL5p6cXCIsXG4gICAgXCLph5HpkatcIixcbiAgICBcIumUpueoi1wiLFxuICAgIFwi5ZiJ54aZXCIsXG4gICAgXCLpuY/po55cIixcbiAgICBcIuWtkOm7mFwiLFxuICAgIFwi5oCd6L+cXCIsXG4gICAgXCLmtanovalcIixcbiAgICBcIuivreWgglwiLFxuICAgIFwi6IGq5YGlXCIsXG4gICAgXCLmmI5cIixcbiAgICBcIuaWh1wiLFxuICAgIFwi5p6cXCIsXG4gICAgXCLmgJ1cIixcbiAgICBcIum5j1wiLFxuICAgIFwi6amwXCIsXG4gICAgXCLmtptcIixcbiAgICBcIueQqlwiLFxuICAgIFwi5rWpXCIsXG4gICAgXCLoiKpcIixcbiAgICBcIuW9rFwiXG4gIF0sXG4gIFwibmFtZVwiOiBbXG4gICAgXCIje2ZpcnN0X25hbWV9I3tsYXN0X25hbWV9XCJcbiAgXVxufTtcbnpoX0NOLnBob25lX251bWJlciA9IHtcbiAgXCJmb3JtYXRzXCI6IFtcbiAgICBcIiMjIy0jIyMjIyMjI1wiLFxuICAgIFwiIyMjIy0jIyMjIyMjI1wiLFxuICAgIFwiIyMjIyMjIyMjIyNcIlxuICBdXG59O1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcbnZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbnZhciBsb3JlbSA9IHtcbiAgICB3b3JkczogZnVuY3Rpb24gKG51bSkge1xuICAgICAgICBpZiAodHlwZW9mIG51bSA9PSAndW5kZWZpbmVkJykgeyBudW0gPSAzOyB9XG4gICAgICAgIHJldHVybiBIZWxwZXJzLnNodWZmbGUoZmFrZXIuZGVmaW5pdGlvbnMubG9yZW0ud29yZHMpLnNsaWNlKDAsIG51bSk7XG4gICAgfSxcblxuICAgIHNlbnRlbmNlOiBmdW5jdGlvbiAod29yZENvdW50LCByYW5nZSkge1xuICAgICAgICBpZiAodHlwZW9mIHdvcmRDb3VudCA9PSAndW5kZWZpbmVkJykgeyB3b3JkQ291bnQgPSAzOyB9XG4gICAgICAgIGlmICh0eXBlb2YgcmFuZ2UgPT0gJ3VuZGVmaW5lZCcpIHsgcmFuZ2UgPSA3OyB9XG5cbiAgICAgICAgLy8gc3RyYW5nZSBpc3N1ZSB3aXRoIHRoZSBub2RlX21pbl90ZXN0IGZhaWxpbmcgZm9yIGNhcHRpYWxpemUsIHBsZWFzZSBmaXggYW5kIGFkZCBmYWtlci5sb3JlbS5iYWNrXG4gICAgICAgIC8vcmV0dXJuICBmYWtlci5sb3JlbS53b3Jkcyh3b3JkQ291bnQgKyBIZWxwZXJzLnJhbmRvbU51bWJlcihyYW5nZSkpLmpvaW4oJyAnKS5jYXBpdGFsaXplKCk7XG5cbiAgICAgICAgcmV0dXJuICBmYWtlci5sb3JlbS53b3Jkcyh3b3JkQ291bnQgKyBmYWtlci5yYW5kb20ubnVtYmVyKHJhbmdlKSkuam9pbignICcpO1xuICAgIH0sXG5cbiAgICBzZW50ZW5jZXM6IGZ1bmN0aW9uIChzZW50ZW5jZUNvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VudGVuY2VDb3VudCA9PSAndW5kZWZpbmVkJykgeyBzZW50ZW5jZUNvdW50ID0gMzsgfVxuICAgICAgICB2YXIgc2VudGVuY2VzID0gW107XG4gICAgICAgIGZvciAoc2VudGVuY2VDb3VudDsgc2VudGVuY2VDb3VudCA+IDA7IHNlbnRlbmNlQ291bnQtLSkge1xuICAgICAgICAgICAgc2VudGVuY2VzLnB1c2goZmFrZXIubG9yZW0uc2VudGVuY2UoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbnRlbmNlcy5qb2luKFwiXFxuXCIpO1xuICAgIH0sXG5cbiAgICBwYXJhZ3JhcGg6IGZ1bmN0aW9uIChzZW50ZW5jZUNvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VudGVuY2VDb3VudCA9PSAndW5kZWZpbmVkJykgeyBzZW50ZW5jZUNvdW50ID0gMzsgfVxuICAgICAgICByZXR1cm4gZmFrZXIubG9yZW0uc2VudGVuY2VzKHNlbnRlbmNlQ291bnQgKyBmYWtlci5yYW5kb20ubnVtYmVyKDMpKTtcbiAgICB9LFxuXG4gICAgcGFyYWdyYXBoczogZnVuY3Rpb24gKHBhcmFncmFwaENvdW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyYWdyYXBoQ291bnQgPT0gJ3VuZGVmaW5lZCcpIHsgcGFyYWdyYXBoQ291bnQgPSAzOyB9XG4gICAgICAgIHZhciBwYXJhZ3JhcGhzID0gW107XG4gICAgICAgIGZvciAocGFyYWdyYXBoQ291bnQ7IHBhcmFncmFwaENvdW50ID4gMDsgcGFyYWdyYXBoQ291bnQtLSkge1xuICAgICAgICAgICAgcGFyYWdyYXBocy5wdXNoKGZha2VyLmxvcmVtLnBhcmFncmFwaCgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYWdyYXBocy5qb2luKFwiXFxuIFxcclxcdFwiKTtcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGxvcmVtO1xuIiwidmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIF9uYW1lID0ge1xuXG4gICAgZmlyc3ROYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAodHlwZW9mIGZha2VyLmRlZmluaXRpb25zLm5hbWUubWFsZV9maXJzdF9uYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBmYWtlci5kZWZpbml0aW9ucy5uYW1lLmZlbWFsZV9maXJzdF9uYW1lICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIC8vIHNvbWUgbG9jYWxlIGRhdGFzZXRzICggbGlrZSBydSApIGhhdmUgZmlyc3RfbmFtZSBzcGxpdCBieSBnZW5kZXIuIHNpbmNlIHRoZSBuYW1lLmZpcnN0X25hbWUgZmllbGQgZG9lcyBub3QgZXhpc3QgaW4gdGhlc2UgZGF0YXNldHMsXG4gICAgICAgIC8vIHdlIG11c3QgcmFuZG9tbHkgcGljayBhIG5hbWUgZnJvbSBlaXRoZXIgZ2VuZGVyIGFycmF5IHNvIGZha2VyLm5hbWUuZmlyc3ROYW1lIHdpbGwgcmV0dXJuIHRoZSBjb3JyZWN0IGxvY2FsZSBkYXRhICggYW5kIG5vdCBmYWxsYmFjayApXG4gICAgICAgIHZhciByYW5kID0gZmFrZXIucmFuZG9tLm51bWJlcigxKTtcbiAgICAgICAgaWYgKHJhbmQgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIubG9jYWxlc1tmYWtlci5sb2NhbGVdLm5hbWUubWFsZV9maXJzdF9uYW1lKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5sb2NhbGVzW2Zha2VyLmxvY2FsZV0ubmFtZS5mZW1hbGVfZmlyc3RfbmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmRlZmluaXRpb25zLm5hbWUuZmlyc3RfbmFtZSlcbiAgICB9LFxuXG4gICAgbGFzdE5hbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICh0eXBlb2YgZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5tYWxlX2xhc3RfbmFtZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgZmFrZXIuZGVmaW50aW9ucy5uYW1lLmZlbWFsZV9sYXN0X25hbWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgLy8gc29tZSBsb2NhbGUgZGF0YXNldHMgKCBsaWtlIHJ1ICkgaGF2ZSBsYXN0X25hbWUgc3BsaXQgYnkgZ2VuZGVyLiBpIGhhdmUgbm8gaWRlYSBob3cgbGFzdCBuYW1lcyBjYW4gaGF2ZSBnZW5kZXJzLCBidXQgYWxzbyBpIGRvIG5vdCBzcGVhayBydXNzaWFuXG4gICAgICAgIC8vIHNlZSBhYm92ZSBjb21tZW50IG9mIGZpcnN0TmFtZSBtZXRob2RcbiAgICAgICAgdmFyIHJhbmQgPSBmYWtlci5yYW5kb20ubnVtYmVyKDEpO1xuICAgICAgICBpZiAocmFuZCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5sb2NhbGVzW2Zha2VyLmxvY2FsZV0ubmFtZS5tYWxlX2xhc3RfbmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheV9lbGVtZW50KGZha2VyLmxvY2FsZXNbZmFrZXIubG9jYWxlXS5uYW1lLmZlbWFsZV9sYXN0X25hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5sYXN0X25hbWUpO1xuICAgIH0sXG5cbiAgICBmaW5kTmFtZTogZnVuY3Rpb24gKGZpcnN0TmFtZSwgbGFzdE5hbWUpIHtcbiAgICAgICAgdmFyIHIgPSBmYWtlci5yYW5kb20ubnVtYmVyKDgpO1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgfHwgZmFrZXIubmFtZS5maXJzdE5hbWUoKTtcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSB8fCBmYWtlci5uYW1lLmxhc3ROYW1lKCk7XG4gICAgICAgIHN3aXRjaCAocikge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gZmFrZXIubmFtZS5wcmVmaXgoKSArIFwiIFwiICsgZmlyc3ROYW1lICsgXCIgXCIgKyBsYXN0TmFtZTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0TmFtZSArIFwiIFwiICsgbGFzdE5hbWUgKyBcIiBcIiArIGZha2VyLm5hbWUuc3VmZml4KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlyc3ROYW1lICsgXCIgXCIgKyBsYXN0TmFtZTtcbiAgICB9LFxuXG4gICAgcHJlZml4OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChmYWtlci5kZWZpbml0aW9ucy5uYW1lLnByZWZpeCk7XG4gICAgfSxcblxuICAgIHN1ZmZpeDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMubmFtZS5zdWZmaXgpO1xuICAgIH0sXG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gX25hbWU7XG4iLCJ2YXIgZmFrZXIgPSByZXF1aXJlKCcuLi9pbmRleCcpO1xuXG52YXIgcGhvbmUgPSB7XG4gICAgcGhvbmVOdW1iZXI6IGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8IGZha2VyLnBob25lLnBob25lRm9ybWF0cygpO1xuICAgICAgICByZXR1cm4gZmFrZXIuaGVscGVycy5yZXBsYWNlU3ltYm9sV2l0aE51bWJlcihmb3JtYXQpO1xuICAgIH0sXG5cbiAgICAvLyBGSVhNRTogdGhpcyBpcyBzdHJhbmdlIHBhc3NpbmcgaW4gYW4gYXJyYXkgaW5kZXguXG4gICAgcGhvbmVOdW1iZXJGb3JtYXQ6IGZ1bmN0aW9uIChwaG9uZUZvcm1hdHNBcnJheUluZGV4KSB7XG4gICAgICAgIHBob25lRm9ybWF0c0FycmF5SW5kZXggPSBwaG9uZUZvcm1hdHNBcnJheUluZGV4IHx8IDA7XG4gICAgICAgIHJldHVybiBmYWtlci5oZWxwZXJzLnJlcGxhY2VTeW1ib2xXaXRoTnVtYmVyKGZha2VyLmRlZmluaXRpb25zLnBob25lX251bWJlci5mb3JtYXRzW3Bob25lRm9ybWF0c0FycmF5SW5kZXhdKTtcbiAgICB9LFxuXG4gICAgcGhvbmVGb3JtYXRzOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZmFrZXIucmFuZG9tLmFycmF5X2VsZW1lbnQoZmFrZXIuZGVmaW5pdGlvbnMucGhvbmVfbnVtYmVyLmZvcm1hdHMpO1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBwaG9uZTtcbiIsInZhciBtZXJzZW5uZSA9IHJlcXVpcmUoJy4uL3ZlbmRvci9tZXJzZW5uZScpO1xudmFyIGZha2VyID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxudmFyIHJhbmRvbSA9IHtcbiAgICAvLyByZXR1cm5zIGEgc2luZ2xlIHJhbmRvbSBudW1iZXIgYmFzZWQgb24gYSBtYXggbnVtYmVyIG9yIHJhbmdlXG4gICAgbnVtYmVyOiBmdW5jdGlvbiAob3B0aW9ucykge1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBtYXg6IG9wdGlvbnNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm1pbiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIG9wdGlvbnMubWluID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5tYXggPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBvcHRpb25zLm1heCA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnByZWNpc2lvbiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIG9wdGlvbnMucHJlY2lzaW9uID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgdGhlIHJhbmdlIGluY2x1c2l2ZSBvZiB0aGUgbWF4IHZhbHVlXG4gICAgICAgIHZhciBtYXggPSBvcHRpb25zLm1heDtcbiAgICAgICAgaWYgKG1heCA+IDApIHtcbiAgICAgICAgICBtYXggKz0gb3B0aW9ucy5wcmVjaXNpb247XG4gICAgICAgIH0gXG4gICAgICAgICAgXG4gICAgICAgIHZhciByYW5kb21OdW1iZXIgPSBvcHRpb25zLnByZWNpc2lvbiAqIE1hdGguZmxvb3IoXG4gICAgICAgICAgbWVyc2VubmUucmFuZChtYXggLyBvcHRpb25zLnByZWNpc2lvbiwgb3B0aW9ucy5taW4gLyBvcHRpb25zLnByZWNpc2lvbikpO1xuXG4gICAgICAgIHJldHVybiByYW5kb21OdW1iZXI7XG5cbiAgICB9LFxuXG4gICAgLy8gdGFrZXMgYW4gYXJyYXkgYW5kIHJldHVybnMgYSByYW5kb20gZWxlbWVudCBvZiB0aGUgYXJyYXlcbiAgICBhcnJheV9lbGVtZW50OiBmdW5jdGlvbiAoYXJyYXkpIHtcbiAgICAgICAgYXJyYXkgPSBhcnJheSB8fCBbXCJhXCIsIFwiYlwiLCBcImNcIl07XG4gICAgICAgIHZhciByID0gZmFrZXIucmFuZG9tLm51bWJlcih7IG1heDogYXJyYXkubGVuZ3RoIC0gMSB9KTtcbiAgICAgICAgcmV0dXJuIGFycmF5W3JdO1xuICAgIH0sXG5cbiAgICAvLyB0YWtlcyBhbiBvYmplY3QgYW5kIHJldHVybnMgdGhlIHJhbmRvbWx5IGtleSBvciB2YWx1ZVxuICAgIG9iamVjdF9lbGVtZW50OiBmdW5jdGlvbiAob2JqZWN0LCBmaWVsZCkge1xuICAgICAgICBvYmplY3QgPSBvYmplY3QgfHwge307XG4gICAgICAgIHZhciBhcnJheSA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgICAgIHZhciBrZXkgPSBmYWtlci5yYW5kb20uYXJyYXlfZWxlbWVudChhcnJheSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkID09PSBcImtleVwiID8ga2V5IDogb2JqZWN0W2tleV07XG4gICAgfSxcblxuICAgIHV1aWQgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBSRkM0MTIyX1RFTVBMQVRFID0gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCc7XG4gICAgICAgIHZhciByZXBsYWNlUGxhY2Vob2xkZXJzID0gZnVuY3Rpb24gKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB2YXIgcmFuZG9tID0gTWF0aC5yYW5kb20oKSoxNnwwO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gcGxhY2Vob2xkZXIgPT0gJ3gnID8gcmFuZG9tIDogKHJhbmRvbSAmMHgzIHwgMHg4KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygxNik7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBSRkM0MTIyX1RFTVBMQVRFLnJlcGxhY2UoL1t4eV0vZywgcmVwbGFjZVBsYWNlaG9sZGVycyk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSByYW5kb207XG4iLCIvLyB0aGlzIHByb2dyYW0gaXMgYSBKYXZhU2NyaXB0IHZlcnNpb24gb2YgTWVyc2VubmUgVHdpc3Rlciwgd2l0aCBjb25jZWFsbWVudCBhbmQgZW5jYXBzdWxhdGlvbiBpbiBjbGFzcyxcbi8vIGFuIGFsbW9zdCBzdHJhaWdodCBjb252ZXJzaW9uIGZyb20gdGhlIG9yaWdpbmFsIHByb2dyYW0sIG10MTk5Mzdhci5jLFxuLy8gdHJhbnNsYXRlZCBieSB5LiBva2FkYSBvbiBKdWx5IDE3LCAyMDA2LlxuLy8gYW5kIG1vZGlmaWVkIGEgbGl0dGxlIGF0IGp1bHkgMjAsIDIwMDYsIGJ1dCB0aGVyZSBhcmUgbm90IGFueSBzdWJzdGFudGlhbCBkaWZmZXJlbmNlcy5cbi8vIGluIHRoaXMgcHJvZ3JhbSwgcHJvY2VkdXJlIGRlc2NyaXB0aW9ucyBhbmQgY29tbWVudHMgb2Ygb3JpZ2luYWwgc291cmNlIGNvZGUgd2VyZSBub3QgcmVtb3ZlZC5cbi8vIGxpbmVzIGNvbW1lbnRlZCB3aXRoIC8vYy8vIHdlcmUgb3JpZ2luYWxseSBkZXNjcmlwdGlvbnMgb2YgYyBwcm9jZWR1cmUuIGFuZCBhIGZldyBmb2xsb3dpbmcgbGluZXMgYXJlIGFwcHJvcHJpYXRlIEphdmFTY3JpcHQgZGVzY3JpcHRpb25zLlxuLy8gbGluZXMgY29tbWVudGVkIHdpdGggLyogYW5kICovIGFyZSBvcmlnaW5hbCBjb21tZW50cy5cbi8vIGxpbmVzIGNvbW1lbnRlZCB3aXRoIC8vIGFyZSBhZGRpdGlvbmFsIGNvbW1lbnRzIGluIHRoaXMgSmF2YVNjcmlwdCB2ZXJzaW9uLlxuLy8gYmVmb3JlIHVzaW5nIHRoaXMgdmVyc2lvbiwgY3JlYXRlIGF0IGxlYXN0IG9uZSBpbnN0YW5jZSBvZiBNZXJzZW5uZVR3aXN0ZXIxOTkzNyBjbGFzcywgYW5kIGluaXRpYWxpemUgdGhlIGVhY2ggc3RhdGUsIGdpdmVuIGJlbG93IGluIGMgY29tbWVudHMsIG9mIGFsbCB0aGUgaW5zdGFuY2VzLlxuLypcbiAgIEEgQy1wcm9ncmFtIGZvciBNVDE5OTM3LCB3aXRoIGluaXRpYWxpemF0aW9uIGltcHJvdmVkIDIwMDIvMS8yNi5cbiAgIENvZGVkIGJ5IFRha3VqaSBOaXNoaW11cmEgYW5kIE1ha290byBNYXRzdW1vdG8uXG5cbiAgIEJlZm9yZSB1c2luZywgaW5pdGlhbGl6ZSB0aGUgc3RhdGUgYnkgdXNpbmcgaW5pdF9nZW5yYW5kKHNlZWQpXG4gICBvciBpbml0X2J5X2FycmF5KGluaXRfa2V5LCBrZXlfbGVuZ3RoKS5cblxuICAgQ29weXJpZ2h0IChDKSAxOTk3IC0gMjAwMiwgTWFrb3RvIE1hdHN1bW90byBhbmQgVGFrdWppIE5pc2hpbXVyYSxcbiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cbiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zXG4gICBhcmUgbWV0OlxuXG4gICAgIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cblxuICAgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlXG4gICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cbiAgICAgMy4gVGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZVxuICAgICAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW5cbiAgICAgICAgcGVybWlzc2lvbi5cblxuICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SU1xuICAgXCJBUyBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVFxuICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SXG4gICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1JcbiAgIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLFxuICAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLFxuICAgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SXG4gICBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GXG4gICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElOR1xuICAgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTXG4gICBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cblxuXG4gICBBbnkgZmVlZGJhY2sgaXMgdmVyeSB3ZWxjb21lLlxuICAgaHR0cDovL3d3dy5tYXRoLnNjaS5oaXJvc2hpbWEtdS5hYy5qcC9+bS1tYXQvTVQvZW10Lmh0bWxcbiAgIGVtYWlsOiBtLW1hdCBAIG1hdGguc2NpLmhpcm9zaGltYS11LmFjLmpwIChyZW1vdmUgc3BhY2UpXG4qL1xuXG5mdW5jdGlvbiBNZXJzZW5uZVR3aXN0ZXIxOTkzNygpXG57XG5cdC8qIGNvbnN0YW50cyBzaG91bGQgYmUgc2NvcGVkIGluc2lkZSB0aGUgY2xhc3MgKi9cblx0dmFyIE4sIE0sIE1BVFJJWF9BLCBVUFBFUl9NQVNLLCBMT1dFUl9NQVNLO1xuXHQvKiBQZXJpb2QgcGFyYW1ldGVycyAqL1xuXHQvL2MvLyNkZWZpbmUgTiA2MjRcblx0Ly9jLy8jZGVmaW5lIE0gMzk3XG5cdC8vYy8vI2RlZmluZSBNQVRSSVhfQSAweDk5MDhiMGRmVUwgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuXHQvL2MvLyNkZWZpbmUgVVBQRVJfTUFTSyAweDgwMDAwMDAwVUwgLyogbW9zdCBzaWduaWZpY2FudCB3LXIgYml0cyAqL1xuXHQvL2MvLyNkZWZpbmUgTE9XRVJfTUFTSyAweDdmZmZmZmZmVUwgLyogbGVhc3Qgc2lnbmlmaWNhbnQgciBiaXRzICovXG5cdE4gPSA2MjQ7XG5cdE0gPSAzOTc7XG5cdE1BVFJJWF9BID0gMHg5OTA4YjBkZjsgICAvKiBjb25zdGFudCB2ZWN0b3IgYSAqL1xuXHRVUFBFUl9NQVNLID0gMHg4MDAwMDAwMDsgLyogbW9zdCBzaWduaWZpY2FudCB3LXIgYml0cyAqL1xuXHRMT1dFUl9NQVNLID0gMHg3ZmZmZmZmZjsgLyogbGVhc3Qgc2lnbmlmaWNhbnQgciBiaXRzICovXG5cdC8vYy8vc3RhdGljIHVuc2lnbmVkIGxvbmcgbXRbTl07IC8qIHRoZSBhcnJheSBmb3IgdGhlIHN0YXRlIHZlY3RvciAgKi9cblx0Ly9jLy9zdGF0aWMgaW50IG10aT1OKzE7IC8qIG10aT09TisxIG1lYW5zIG10W05dIGlzIG5vdCBpbml0aWFsaXplZCAqL1xuXHR2YXIgbXQgPSBuZXcgQXJyYXkoTik7ICAgLyogdGhlIGFycmF5IGZvciB0aGUgc3RhdGUgdmVjdG9yICAqL1xuXHR2YXIgbXRpID0gTisxOyAgICAgICAgICAgLyogbXRpPT1OKzEgbWVhbnMgbXRbTl0gaXMgbm90IGluaXRpYWxpemVkICovXG5cblx0ZnVuY3Rpb24gdW5zaWduZWQzMiAobjEpIC8vIHJldHVybnMgYSAzMi1iaXRzIHVuc2lnZWQgaW50ZWdlciBmcm9tIGFuIG9wZXJhbmQgdG8gd2hpY2ggYXBwbGllZCBhIGJpdCBvcGVyYXRvci5cblx0e1xuXHRcdHJldHVybiBuMSA8IDAgPyAobjEgXiBVUFBFUl9NQVNLKSArIFVQUEVSX01BU0sgOiBuMTtcblx0fVxuXG5cdGZ1bmN0aW9uIHN1YnRyYWN0aW9uMzIgKG4xLCBuMikgLy8gZW11bGF0ZXMgbG93ZXJmbG93IG9mIGEgYyAzMi1iaXRzIHVuc2lnZWQgaW50ZWdlciB2YXJpYWJsZSwgaW5zdGVhZCBvZiB0aGUgb3BlcmF0b3IgLS4gdGhlc2UgYm90aCBhcmd1bWVudHMgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlcnMgZXhwcmVzc2libGUgdXNpbmcgdW5zaWduZWQgMzIgYml0cy5cblx0e1xuXHRcdHJldHVybiBuMSA8IG4yID8gdW5zaWduZWQzMigoMHgxMDAwMDAwMDAgLSAobjIgLSBuMSkpICYgMHhmZmZmZmZmZikgOiBuMSAtIG4yO1xuXHR9XG5cblx0ZnVuY3Rpb24gYWRkaXRpb24zMiAobjEsIG4yKSAvLyBlbXVsYXRlcyBvdmVyZmxvdyBvZiBhIGMgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgdmFyaWFibGUsIGluc3RlYWQgb2YgdGhlIG9wZXJhdG9yICsuIHRoZXNlIGJvdGggYXJndW1lbnRzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzIGV4cHJlc3NpYmxlIHVzaW5nIHVuc2lnbmVkIDMyIGJpdHMuXG5cdHtcblx0XHRyZXR1cm4gdW5zaWduZWQzMigobjEgKyBuMikgJiAweGZmZmZmZmZmKVxuXHR9XG5cblx0ZnVuY3Rpb24gbXVsdGlwbGljYXRpb24zMiAobjEsIG4yKSAvLyBlbXVsYXRlcyBvdmVyZmxvdyBvZiBhIGMgMzItYml0cyB1bnNpZ2VkIGludGVnZXIgdmFyaWFibGUsIGluc3RlYWQgb2YgdGhlIG9wZXJhdG9yICouIHRoZXNlIGJvdGggYXJndW1lbnRzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzIGV4cHJlc3NpYmxlIHVzaW5nIHVuc2lnbmVkIDMyIGJpdHMuXG5cdHtcblx0XHR2YXIgc3VtID0gMDtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDMyOyArK2kpe1xuXHRcdFx0aWYgKChuMSA+Pj4gaSkgJiAweDEpe1xuXHRcdFx0XHRzdW0gPSBhZGRpdGlvbjMyKHN1bSwgdW5zaWduZWQzMihuMiA8PCBpKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzdW07XG5cdH1cblxuXHQvKiBpbml0aWFsaXplcyBtdFtOXSB3aXRoIGEgc2VlZCAqL1xuXHQvL2MvL3ZvaWQgaW5pdF9nZW5yYW5kKHVuc2lnbmVkIGxvbmcgcylcblx0dGhpcy5pbml0X2dlbnJhbmQgPSBmdW5jdGlvbiAocylcblx0e1xuXHRcdC8vYy8vbXRbMF09IHMgJiAweGZmZmZmZmZmO1xuXHRcdG10WzBdPSB1bnNpZ25lZDMyKHMgJiAweGZmZmZmZmZmKTtcblx0XHRmb3IgKG10aT0xOyBtdGk8TjsgbXRpKyspIHtcblx0XHRcdG10W210aV0gPSBcblx0XHRcdC8vYy8vKDE4MTI0MzMyNTMgKiAobXRbbXRpLTFdIF4gKG10W210aS0xXSA+PiAzMCkpICsgbXRpKTtcblx0XHRcdGFkZGl0aW9uMzIobXVsdGlwbGljYXRpb24zMigxODEyNDMzMjUzLCB1bnNpZ25lZDMyKG10W210aS0xXSBeIChtdFttdGktMV0gPj4+IDMwKSkpLCBtdGkpO1xuXHRcdFx0LyogU2VlIEtudXRoIFRBT0NQIFZvbDIuIDNyZCBFZC4gUC4xMDYgZm9yIG11bHRpcGxpZXIuICovXG5cdFx0XHQvKiBJbiB0aGUgcHJldmlvdXMgdmVyc2lvbnMsIE1TQnMgb2YgdGhlIHNlZWQgYWZmZWN0ICAgKi9cblx0XHRcdC8qIG9ubHkgTVNCcyBvZiB0aGUgYXJyYXkgbXRbXS4gICAgICAgICAgICAgICAgICAgICAgICAqL1xuXHRcdFx0LyogMjAwMi8wMS8wOSBtb2RpZmllZCBieSBNYWtvdG8gTWF0c3Vtb3RvICAgICAgICAgICAgICovXG5cdFx0XHQvL2MvL210W210aV0gJj0gMHhmZmZmZmZmZjtcblx0XHRcdG10W210aV0gPSB1bnNpZ25lZDMyKG10W210aV0gJiAweGZmZmZmZmZmKTtcblx0XHRcdC8qIGZvciA+MzIgYml0IG1hY2hpbmVzICovXG5cdFx0fVxuXHR9XG5cblx0LyogaW5pdGlhbGl6ZSBieSBhbiBhcnJheSB3aXRoIGFycmF5LWxlbmd0aCAqL1xuXHQvKiBpbml0X2tleSBpcyB0aGUgYXJyYXkgZm9yIGluaXRpYWxpemluZyBrZXlzICovXG5cdC8qIGtleV9sZW5ndGggaXMgaXRzIGxlbmd0aCAqL1xuXHQvKiBzbGlnaHQgY2hhbmdlIGZvciBDKyssIDIwMDQvMi8yNiAqL1xuXHQvL2MvL3ZvaWQgaW5pdF9ieV9hcnJheSh1bnNpZ25lZCBsb25nIGluaXRfa2V5W10sIGludCBrZXlfbGVuZ3RoKVxuXHR0aGlzLmluaXRfYnlfYXJyYXkgPSBmdW5jdGlvbiAoaW5pdF9rZXksIGtleV9sZW5ndGgpXG5cdHtcblx0XHQvL2MvL2ludCBpLCBqLCBrO1xuXHRcdHZhciBpLCBqLCBrO1xuXHRcdC8vYy8vaW5pdF9nZW5yYW5kKDE5NjUwMjE4KTtcblx0XHR0aGlzLmluaXRfZ2VucmFuZCgxOTY1MDIxOCk7XG5cdFx0aT0xOyBqPTA7XG5cdFx0ayA9IChOPmtleV9sZW5ndGggPyBOIDoga2V5X2xlbmd0aCk7XG5cdFx0Zm9yICg7IGs7IGstLSkge1xuXHRcdFx0Ly9jLy9tdFtpXSA9IChtdFtpXSBeICgobXRbaS0xXSBeIChtdFtpLTFdID4+IDMwKSkgKiAxNjY0NTI1KSlcblx0XHRcdC8vYy8vXHQrIGluaXRfa2V5W2pdICsgajsgLyogbm9uIGxpbmVhciAqL1xuXHRcdFx0bXRbaV0gPSBhZGRpdGlvbjMyKGFkZGl0aW9uMzIodW5zaWduZWQzMihtdFtpXSBeIG11bHRpcGxpY2F0aW9uMzIodW5zaWduZWQzMihtdFtpLTFdIF4gKG10W2ktMV0gPj4+IDMwKSksIDE2NjQ1MjUpKSwgaW5pdF9rZXlbal0pLCBqKTtcblx0XHRcdG10W2ldID0gXG5cdFx0XHQvL2MvL210W2ldICY9IDB4ZmZmZmZmZmY7IC8qIGZvciBXT1JEU0laRSA+IDMyIG1hY2hpbmVzICovXG5cdFx0XHR1bnNpZ25lZDMyKG10W2ldICYgMHhmZmZmZmZmZik7XG5cdFx0XHRpKys7IGorKztcblx0XHRcdGlmIChpPj1OKSB7IG10WzBdID0gbXRbTi0xXTsgaT0xOyB9XG5cdFx0XHRpZiAoaj49a2V5X2xlbmd0aCkgaj0wO1xuXHRcdH1cblx0XHRmb3IgKGs9Ti0xOyBrOyBrLS0pIHtcblx0XHRcdC8vYy8vbXRbaV0gPSAobXRbaV0gXiAoKG10W2ktMV0gXiAobXRbaS0xXSA+PiAzMCkpICogMTU2NjA4Mzk0MSkpXG5cdFx0XHQvL2MvLy0gaTsgLyogbm9uIGxpbmVhciAqL1xuXHRcdFx0bXRbaV0gPSBzdWJ0cmFjdGlvbjMyKHVuc2lnbmVkMzIoKGRiZz1tdFtpXSkgXiBtdWx0aXBsaWNhdGlvbjMyKHVuc2lnbmVkMzIobXRbaS0xXSBeIChtdFtpLTFdID4+PiAzMCkpLCAxNTY2MDgzOTQxKSksIGkpO1xuXHRcdFx0Ly9jLy9tdFtpXSAmPSAweGZmZmZmZmZmOyAvKiBmb3IgV09SRFNJWkUgPiAzMiBtYWNoaW5lcyAqL1xuXHRcdFx0bXRbaV0gPSB1bnNpZ25lZDMyKG10W2ldICYgMHhmZmZmZmZmZik7XG5cdFx0XHRpKys7XG5cdFx0XHRpZiAoaT49TikgeyBtdFswXSA9IG10W04tMV07IGk9MTsgfVxuXHRcdH1cblx0XHRtdFswXSA9IDB4ODAwMDAwMDA7IC8qIE1TQiBpcyAxOyBhc3N1cmluZyBub24temVybyBpbml0aWFsIGFycmF5ICovXG5cdH1cblxuICAgIC8qIG1vdmVkIG91dHNpZGUgb2YgZ2VucmFuZF9pbnQzMigpIGJ5IGp3YXR0ZSAyMDEwLTExLTE3OyBnZW5lcmF0ZSBsZXNzIGdhcmJhZ2UgKi9cbiAgICB2YXIgbWFnMDEgPSBbMHgwLCBNQVRSSVhfQV07XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweGZmZmZmZmZmXS1pbnRlcnZhbCAqL1xuXHQvL2MvL3Vuc2lnbmVkIGxvbmcgZ2VucmFuZF9pbnQzMih2b2lkKVxuXHR0aGlzLmdlbnJhbmRfaW50MzIgPSBmdW5jdGlvbiAoKVxuXHR7XG5cdFx0Ly9jLy91bnNpZ25lZCBsb25nIHk7XG5cdFx0Ly9jLy9zdGF0aWMgdW5zaWduZWQgbG9uZyBtYWcwMVsyXT17MHgwVUwsIE1BVFJJWF9BfTtcblx0XHR2YXIgeTtcblx0XHQvKiBtYWcwMVt4XSA9IHggKiBNQVRSSVhfQSAgZm9yIHg9MCwxICovXG5cblx0XHRpZiAobXRpID49IE4pIHsgLyogZ2VuZXJhdGUgTiB3b3JkcyBhdCBvbmUgdGltZSAqL1xuXHRcdFx0Ly9jLy9pbnQga2s7XG5cdFx0XHR2YXIga2s7XG5cblx0XHRcdGlmIChtdGkgPT0gTisxKSAgIC8qIGlmIGluaXRfZ2VucmFuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQsICovXG5cdFx0XHRcdC8vYy8vaW5pdF9nZW5yYW5kKDU0ODkpOyAvKiBhIGRlZmF1bHQgaW5pdGlhbCBzZWVkIGlzIHVzZWQgKi9cblx0XHRcdFx0dGhpcy5pbml0X2dlbnJhbmQoNTQ4OSk7IC8qIGEgZGVmYXVsdCBpbml0aWFsIHNlZWQgaXMgdXNlZCAqL1xuXG5cdFx0XHRmb3IgKGtrPTA7a2s8Ti1NO2trKyspIHtcblx0XHRcdFx0Ly9jLy95ID0gKG10W2trXSZVUFBFUl9NQVNLKXwobXRba2srMV0mTE9XRVJfTUFTSyk7XG5cdFx0XHRcdC8vYy8vbXRba2tdID0gbXRba2srTV0gXiAoeSA+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXHRcdFx0XHR5ID0gdW5zaWduZWQzMigobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKSk7XG5cdFx0XHRcdG10W2trXSA9IHVuc2lnbmVkMzIobXRba2srTV0gXiAoeSA+Pj4gMSkgXiBtYWcwMVt5ICYgMHgxXSk7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKDtrazxOLTE7a2srKykge1xuXHRcdFx0XHQvL2MvL3kgPSAobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKTtcblx0XHRcdFx0Ly9jLy9tdFtra10gPSBtdFtraysoTS1OKV0gXiAoeSA+PiAxKSBeIG1hZzAxW3kgJiAweDFdO1xuXHRcdFx0XHR5ID0gdW5zaWduZWQzMigobXRba2tdJlVQUEVSX01BU0spfChtdFtraysxXSZMT1dFUl9NQVNLKSk7XG5cdFx0XHRcdG10W2trXSA9IHVuc2lnbmVkMzIobXRba2srKE0tTildIF4gKHkgPj4+IDEpIF4gbWFnMDFbeSAmIDB4MV0pO1xuXHRcdFx0fVxuXHRcdFx0Ly9jLy95ID0gKG10W04tMV0mVVBQRVJfTUFTSyl8KG10WzBdJkxPV0VSX01BU0spO1xuXHRcdFx0Ly9jLy9tdFtOLTFdID0gbXRbTS0xXSBeICh5ID4+IDEpIF4gbWFnMDFbeSAmIDB4MV07XG5cdFx0XHR5ID0gdW5zaWduZWQzMigobXRbTi0xXSZVUFBFUl9NQVNLKXwobXRbMF0mTE9XRVJfTUFTSykpO1xuXHRcdFx0bXRbTi0xXSA9IHVuc2lnbmVkMzIobXRbTS0xXSBeICh5ID4+PiAxKSBeIG1hZzAxW3kgJiAweDFdKTtcblx0XHRcdG10aSA9IDA7XG5cdFx0fVxuXG5cdFx0eSA9IG10W210aSsrXTtcblxuXHRcdC8qIFRlbXBlcmluZyAqL1xuXHRcdC8vYy8veSBePSAoeSA+PiAxMSk7XG5cdFx0Ly9jLy95IF49ICh5IDw8IDcpICYgMHg5ZDJjNTY4MDtcblx0XHQvL2MvL3kgXj0gKHkgPDwgMTUpICYgMHhlZmM2MDAwMDtcblx0XHQvL2MvL3kgXj0gKHkgPj4gMTgpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoeSA+Pj4gMTEpKTtcblx0XHR5ID0gdW5zaWduZWQzMih5IF4gKCh5IDw8IDcpICYgMHg5ZDJjNTY4MCkpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoKHkgPDwgMTUpICYgMHhlZmM2MDAwMCkpO1xuXHRcdHkgPSB1bnNpZ25lZDMyKHkgXiAoeSA+Pj4gMTgpKTtcblxuXHRcdHJldHVybiB5O1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwweDdmZmZmZmZmXS1pbnRlcnZhbCAqL1xuXHQvL2MvL2xvbmcgZ2VucmFuZF9pbnQzMSh2b2lkKVxuXHR0aGlzLmdlbnJhbmRfaW50MzEgPSBmdW5jdGlvbiAoKVxuXHR7XG5cdFx0Ly9jLy9yZXR1cm4gKGdlbnJhbmRfaW50MzIoKT4+MSk7XG5cdFx0cmV0dXJuICh0aGlzLmdlbnJhbmRfaW50MzIoKT4+PjEpO1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwxXS1yZWFsLWludGVydmFsICovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVhbDEodm9pZClcblx0dGhpcy5nZW5yYW5kX3JlYWwxID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vcmV0dXJuIGdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTUuMCk7XG5cdFx0cmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpKigxLjAvNDI5NDk2NzI5NS4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzItMSAqL1xuXHR9XG5cblx0LyogZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvbiBbMCwxKS1yZWFsLWludGVydmFsICovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVhbDIodm9pZClcblx0dGhpcy5nZW5yYW5kX3JlYWwyID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vcmV0dXJuIGdlbnJhbmRfaW50MzIoKSooMS4wLzQyOTQ5NjcyOTYuMCk7XG5cdFx0cmV0dXJuIHRoaXMuZ2VucmFuZF9pbnQzMigpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzIgKi9cblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gKDAsMSktcmVhbC1pbnRlcnZhbCAqL1xuXHQvL2MvL2RvdWJsZSBnZW5yYW5kX3JlYWwzKHZvaWQpXG5cdHRoaXMuZ2VucmFuZF9yZWFsMyA9IGZ1bmN0aW9uICgpXG5cdHtcblx0XHQvL2MvL3JldHVybiAoKGdlbnJhbmRfaW50MzIoKSkgKyAwLjUpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHRyZXR1cm4gKCh0aGlzLmdlbnJhbmRfaW50MzIoKSkgKyAwLjUpKigxLjAvNDI5NDk2NzI5Ni4wKTtcblx0XHQvKiBkaXZpZGVkIGJ5IDJeMzIgKi9cblx0fVxuXG5cdC8qIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSkgd2l0aCA1My1iaXQgcmVzb2x1dGlvbiovXG5cdC8vYy8vZG91YmxlIGdlbnJhbmRfcmVzNTModm9pZClcblx0dGhpcy5nZW5yYW5kX3JlczUzID0gZnVuY3Rpb24gKClcblx0e1xuXHRcdC8vYy8vdW5zaWduZWQgbG9uZyBhPWdlbnJhbmRfaW50MzIoKT4+NSwgYj1nZW5yYW5kX2ludDMyKCk+PjY7XG5cdFx0dmFyIGE9dGhpcy5nZW5yYW5kX2ludDMyKCk+Pj41LCBiPXRoaXMuZ2VucmFuZF9pbnQzMigpPj4+Njtcblx0XHRyZXR1cm4oYSo2NzEwODg2NC4wK2IpKigxLjAvOTAwNzE5OTI1NDc0MDk5Mi4wKTtcblx0fVxuXHQvKiBUaGVzZSByZWFsIHZlcnNpb25zIGFyZSBkdWUgdG8gSXNha3UgV2FkYSwgMjAwMi8wMS8wOSBhZGRlZCAqL1xufVxuXG4vLyAgRXhwb3J0czogUHVibGljIEFQSVxuXG4vLyAgRXhwb3J0IHRoZSB0d2lzdGVyIGNsYXNzXG5leHBvcnRzLk1lcnNlbm5lVHdpc3RlcjE5OTM3ID0gTWVyc2VubmVUd2lzdGVyMTk5Mzc7XG5cbi8vICBFeHBvcnQgYSBzaW1wbGlmaWVkIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIHJhbmRvbSBudW1iZXJzXG52YXIgZ2VuID0gbmV3IE1lcnNlbm5lVHdpc3RlcjE5OTM3O1xuZ2VuLmluaXRfZ2VucmFuZCgobmV3IERhdGUpLmdldFRpbWUoKSAlIDEwMDAwMDAwMDApO1xuXG4vLyBBZGRlZCBtYXgsIG1pbiByYW5nZSBmdW5jdGlvbmFsaXR5LCBNYXJhayBTcXVpcmVzIFNlcHQgMTEgMjAxNFxuZXhwb3J0cy5yYW5kID0gZnVuY3Rpb24obWF4LCBtaW4pIHtcbiAgICBpZiAoIW1heClcbiAgICAgICAge1xuICAgICAgICBtaW4gPSAwO1xuICAgICAgICBtYXggPSAzMjc2ODtcbiAgICAgICAgfVxuICAgIHJldHVybiBNYXRoLmZsb29yKGdlbi5nZW5yYW5kX3JlYWwyKCkgKiAobWF4IC0gbWluKSArIG1pbik7XG59XG5leHBvcnRzLnNlZWQgPSBmdW5jdGlvbihTKSB7XG4gICAgaWYgKHR5cGVvZihTKSAhPSAnbnVtYmVyJylcbiAgICAgICAge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZWVkKFMpIG11c3QgdGFrZSBudW1lcmljIGFyZ3VtZW50OyBpcyBcIiArIHR5cGVvZihTKSk7XG4gICAgICAgIH1cbiAgICBnZW4uaW5pdF9nZW5yYW5kKFMpO1xufVxuZXhwb3J0cy5zZWVkX2FycmF5ID0gZnVuY3Rpb24oQSkge1xuICAgIGlmICh0eXBlb2YoQSkgIT0gJ29iamVjdCcpXG4gICAgICAgIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2VlZF9hcnJheShBKSBtdXN0IHRha2UgYXJyYXkgb2YgbnVtYmVyczsgaXMgXCIgKyB0eXBlb2YoQSkpO1xuICAgICAgICB9XG4gICAgZ2VuLmluaXRfYnlfYXJyYXkoQSk7XG59XG5cbiIsIi8qXG4gKiBwYXNzd29yZC1nZW5lcmF0b3JcbiAqIENvcHlyaWdodChjKSAyMDExLTIwMTMgQmVybWkgRmVycmVyIDxiZXJtaUBiZXJtaWxhYnMuY29tPlxuICogTUlUIExpY2Vuc2VkXG4gKi9cbihmdW5jdGlvbiAocm9vdCkge1xuXG4gIHZhciBsb2NhbE5hbWUsIGNvbnNvbmFudCwgbGV0dGVyLCBwYXNzd29yZCwgdm93ZWw7XG4gIGxldHRlciA9IC9bYS16QS1aXSQvO1xuICB2b3dlbCA9IC9bYWVpb3VBRUlPVV0kLztcbiAgY29uc29uYW50ID0gL1tiY2RmZ2hqa2xtbnBxcnN0dnd4eXpCQ0RGR0hKS0xNTlBRUlNUVldYWVpdJC87XG5cblxuICAvLyBEZWZpbmVzIHRoZSBuYW1lIG9mIHRoZSBsb2NhbCB2YXJpYWJsZSB0aGUgcGFzc3dvcmRHZW5lcmF0b3IgbGlicmFyeSB3aWxsIHVzZVxuICAvLyB0aGlzIGlzIHNwZWNpYWxseSB1c2VmdWwgaWYgd2luZG93LnBhc3N3b3JkR2VuZXJhdG9yIGlzIGFscmVhZHkgYmVpbmcgdXNlZFxuICAvLyBieSB5b3VyIGFwcGxpY2F0aW9uIGFuZCB5b3Ugd2FudCBhIGRpZmZlcmVudCBuYW1lLiBGb3IgZXhhbXBsZTpcbiAgLy8gICAgLy8gRGVjbGFyZSBiZWZvcmUgaW5jbHVkaW5nIHRoZSBwYXNzd29yZEdlbmVyYXRvciBsaWJyYXJ5XG4gIC8vICAgIHZhciBsb2NhbFBhc3N3b3JkR2VuZXJhdG9yTGlicmFyeU5hbWUgPSAncGFzcyc7XG4gIGxvY2FsTmFtZSA9IHJvb3QubG9jYWxQYXNzd29yZEdlbmVyYXRvckxpYnJhcnlOYW1lIHx8IFwiZ2VuZXJhdGVQYXNzd29yZFwiLFxuXG4gIHBhc3N3b3JkID0gZnVuY3Rpb24gKGxlbmd0aCwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpIHtcbiAgICB2YXIgY2hhciwgbjtcbiAgICBpZiAobGVuZ3RoID09IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IDEwO1xuICAgIH1cbiAgICBpZiAobWVtb3JhYmxlID09IG51bGwpIHtcbiAgICAgIG1lbW9yYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChwYXR0ZXJuID09IG51bGwpIHtcbiAgICAgIHBhdHRlcm4gPSAvXFx3LztcbiAgICB9XG4gICAgaWYgKHByZWZpeCA9PSBudWxsKSB7XG4gICAgICBwcmVmaXggPSAnJztcbiAgICB9XG4gICAgaWYgKHByZWZpeC5sZW5ndGggPj0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcHJlZml4O1xuICAgIH1cbiAgICBpZiAobWVtb3JhYmxlKSB7XG4gICAgICBpZiAocHJlZml4Lm1hdGNoKGNvbnNvbmFudCkpIHtcbiAgICAgICAgcGF0dGVybiA9IHZvd2VsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF0dGVybiA9IGNvbnNvbmFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk0KSArIDMzO1xuICAgIGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKG4pO1xuICAgIGlmIChtZW1vcmFibGUpIHtcbiAgICAgIGNoYXIgPSBjaGFyLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIGlmICghY2hhci5tYXRjaChwYXR0ZXJuKSkge1xuICAgICAgcmV0dXJuIHBhc3N3b3JkKGxlbmd0aCwgbWVtb3JhYmxlLCBwYXR0ZXJuLCBwcmVmaXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGFzc3dvcmQobGVuZ3RoLCBtZW1vcmFibGUsIHBhdHRlcm4sIFwiXCIgKyBwcmVmaXggKyBjaGFyKTtcbiAgfTtcblxuXG4gICgodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSA/IGV4cG9ydHMgOiByb290KVtsb2NhbE5hbWVdID0gcGFzc3dvcmQ7XG4gIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAgIG1vZHVsZS5leHBvcnRzID0gcGFzc3dvcmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRXN0YWJsaXNoIHRoZSByb290IG9iamVjdCwgYHdpbmRvd2AgaW4gdGhlIGJyb3dzZXIsIG9yIGBnbG9iYWxgIG9uIHRoZSBzZXJ2ZXIuXG59KHRoaXMpKTsiLCIvKlxuXG5Db3B5cmlnaHQgKGMpIDIwMTItMjAxNCBKZWZmcmV5IE1lYWxvXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZFxuZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb25cbnRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmRcbnRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlXG5Tb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRVxuV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG5DT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG5PVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5CYXNlZCBsb29zZWx5IG9uIEx1a2EgUHVzaWMncyBQSFAgU2NyaXB0OiBodHRwOi8vMzYwcGVyY2VudHMuY29tL3Bvc3RzL3BocC1yYW5kb20tdXNlci1hZ2VudC1nZW5lcmF0b3IvXG5cblRoZSBsaWNlbnNlIGZvciB0aGF0IHNjcmlwdCBpcyBhcyBmb2xsb3dzOlxuXG5cIlRIRSBCRUVSLVdBUkUgTElDRU5TRVwiIChSZXZpc2lvbiA0Mik6XG5cbjxwdXNpYzkzQGdtYWlsLmNvbT4gd3JvdGUgdGhpcyBmaWxlLiBBcyBsb25nIGFzIHlvdSByZXRhaW4gdGhpcyBub3RpY2UgeW91IGNhbiBkbyB3aGF0ZXZlciB5b3Ugd2FudCB3aXRoIHRoaXMgc3R1ZmYuXG5JZiB3ZSBtZWV0IHNvbWUgZGF5LCBhbmQgeW91IHRoaW5rIHRoaXMgc3R1ZmYgaXMgd29ydGggaXQsIHlvdSBjYW4gYnV5IG1lIGEgYmVlciBpbiByZXR1cm4uIEx1a2EgUHVzaWNcbiovXG5cbmZ1bmN0aW9uIHJuZChhLCBiKSB7XG4gICAgLy9jYWxsaW5nIHJuZCgpIHdpdGggbm8gYXJndW1lbnRzIGlzIGlkZW50aWNhbCB0byBybmQoMCwgMTAwKVxuICAgIGEgPSBhIHx8IDA7XG4gICAgYiA9IGIgfHwgMTAwO1xuXG4gICAgaWYgKHR5cGVvZiBiID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgYSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgLy9ybmQoaW50IG1pbiwgaW50IG1heCkgcmV0dXJucyBpbnRlZ2VyIGJldHdlZW4gbWluLCBtYXhcbiAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAobWluLCBtYXgpIHtcbiAgICAgICAgICAgIGlmIChtaW4gPiBtYXgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZXhwZWN0ZWQgbWluIDw9IG1heDsgZ290IG1pbiA9ICcgKyBtaW4gKyAnLCBtYXggPSAnICsgbWF4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpICsgbWluO1xuICAgICAgICB9KGEsIGIpKTtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpID09PSBcIltvYmplY3QgQXJyYXldXCIpIHtcbiAgICAgICAgLy9yZXR1cm5zIGEgcmFuZG9tIGVsZW1lbnQgZnJvbSBhcnJheSAoYSksIGV2ZW4gd2VpZ2h0aW5nXG4gICAgICAgIHJldHVybiBhW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGEubGVuZ3RoKV07XG4gICAgfVxuXG4gICAgaWYgKGEgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vcmV0dXJucyBhIHJhbmRvbSBrZXkgZnJvbSB0aGUgcGFzc2VkIG9iamVjdDsga2V5cyBhcmUgd2VpZ2h0ZWQgYnkgdGhlIGRlY2ltYWwgcHJvYmFiaWxpdHkgaW4gdGhlaXIgdmFsdWVcbiAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICB2YXIgcmFuZCA9IHJuZCgwLCAxMDApIC8gMTAwLCBtaW4gPSAwLCBtYXggPSAwLCBrZXksIHJldHVybl92YWw7XG5cbiAgICAgICAgICAgIGZvciAoa2V5IGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBtYXggPSBvYmpba2V5XSArIG1pbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbCA9IGtleTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmQgPj0gbWluICYmIHJhbmQgPD0gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtaW4gPSBtaW4gKyBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXR1cm5fdmFsO1xuICAgICAgICB9KGEpKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8gcm5kLiAoJyArIChiID8gYSArICcsICcgKyBiIDogYSkgKyAnKScpO1xufVxuXG5mdW5jdGlvbiByYW5kb21MYW5nKCkge1xuICAgIHJldHVybiBybmQoWydBQicsICdBRicsICdBTicsICdBUicsICdBUycsICdBWicsICdCRScsICdCRycsICdCTicsICdCTycsICdCUicsICdCUycsICdDQScsICdDRScsICdDTycsICdDUycsXG4gICAgICAgICAgICAgICAgJ0NVJywgJ0NZJywgJ0RBJywgJ0RFJywgJ0VMJywgJ0VOJywgJ0VPJywgJ0VTJywgJ0VUJywgJ0VVJywgJ0ZBJywgJ0ZJJywgJ0ZKJywgJ0ZPJywgJ0ZSJywgJ0ZZJyxcbiAgICAgICAgICAgICAgICAnR0EnLCAnR0QnLCAnR0wnLCAnR1YnLCAnSEUnLCAnSEknLCAnSFInLCAnSFQnLCAnSFUnLCAnSFknLCAnSUQnLCAnSVMnLCAnSVQnLCAnSkEnLCAnSlYnLCAnS0EnLFxuICAgICAgICAgICAgICAgICdLRycsICdLTycsICdLVScsICdLVycsICdLWScsICdMQScsICdMQicsICdMSScsICdMTicsICdMVCcsICdMVicsICdNRycsICdNSycsICdNTicsICdNTycsICdNUycsXG4gICAgICAgICAgICAgICAgJ01UJywgJ01ZJywgJ05CJywgJ05FJywgJ05MJywgJ05OJywgJ05PJywgJ09DJywgJ1BMJywgJ1BUJywgJ1JNJywgJ1JPJywgJ1JVJywgJ1NDJywgJ1NFJywgJ1NLJyxcbiAgICAgICAgICAgICAgICAnU0wnLCAnU08nLCAnU1EnLCAnU1InLCAnU1YnLCAnU1cnLCAnVEsnLCAnVFInLCAnVFknLCAnVUsnLCAnVVInLCAnVVonLCAnVkknLCAnVk8nLCAnWUknLCAnWkgnXSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbUJyb3dzZXJBbmRPUygpIHtcbiAgICB2YXIgYnJvd3NlciA9IHJuZCh7XG4gICAgICAgIGNocm9tZTogICAgLjQ1MTMyODEwNTY2LFxuICAgICAgICBpZXhwbG9yZXI6IC4yNzQ3NzA2MTgzNixcbiAgICAgICAgZmlyZWZveDogICAuMTkzODQxNzA2MDgsXG4gICAgICAgIHNhZmFyaTogICAgLjA2MTg2NzgxMTE4LFxuICAgICAgICBvcGVyYTogICAgIC4wMTU3NDIzNjk1NVxuICAgIH0pLFxuICAgIG9zID0ge1xuICAgICAgICBjaHJvbWU6ICB7d2luOiAuODksICBtYWM6IC4wOSAsIGxpbjogLjAyfSxcbiAgICAgICAgZmlyZWZveDoge3dpbjogLjgzLCAgbWFjOiAuMTYsICBsaW46IC4wMX0sXG4gICAgICAgIG9wZXJhOiAgIHt3aW46IC45MSwgIG1hYzogLjAzICwgbGluOiAuMDZ9LFxuICAgICAgICBzYWZhcmk6ICB7d2luOiAuMDQgLCBtYWM6IC45NiAgfSxcbiAgICAgICAgaWV4cGxvcmVyOiBbJ3dpbiddXG4gICAgfTtcblxuICAgIHJldHVybiBbYnJvd3Nlciwgcm5kKG9zW2Jyb3dzZXJdKV07XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVByb2MoYXJjaCkge1xuICAgIHZhciBwcm9jcyA9IHtcbiAgICAgICAgbGluOlsnaTY4NicsICd4ODZfNjQnXSxcbiAgICAgICAgbWFjOiB7J0ludGVsJyA6IC40OCwgJ1BQQyc6IC4wMSwgJ1U7IEludGVsJzouNDgsICdVOyBQUEMnIDouMDF9LFxuICAgICAgICB3aW46WycnLCAnV09XNjQnLCAnV2luNjQ7IHg2NCddXG4gICAgfTtcbiAgICByZXR1cm4gcm5kKHByb2NzW2FyY2hdKTtcbn1cblxuZnVuY3Rpb24gcmFuZG9tUmV2aXNpb24oZG90cykge1xuICAgIHZhciByZXR1cm5fdmFsID0gJyc7XG4gICAgLy9nZW5lcmF0ZSBhIHJhbmRvbSByZXZpc2lvblxuICAgIC8vZG90cyA9IDIgcmV0dXJucyAueC55IHdoZXJlIHggJiB5IGFyZSBiZXR3ZWVuIDAgYW5kIDlcbiAgICBmb3IgKHZhciB4ID0gMDsgeCA8IGRvdHM7IHgrKykge1xuICAgICAgICByZXR1cm5fdmFsICs9ICcuJyArIHJuZCgwLCA5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybl92YWw7XG59XG5cbnZhciB2ZXJzaW9uX3N0cmluZyA9IHtcbiAgICBuZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtybmQoMSwgNCksIHJuZCgwLCA5KSwgcm5kKDEwMDAwLCA5OTk5OSksIHJuZCgwLCA5KV0uam9pbignLicpO1xuICAgIH0sXG4gICAgbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJuZCg1LCA2KSArICcuJyArIHJuZCgwLCAzKTtcbiAgICB9LFxuICAgIGllOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBybmQoNywgMTEpO1xuICAgIH0sXG4gICAgdHJpZGVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDMsIDcpICsgJy4nICsgcm5kKDAsIDEpO1xuICAgIH0sXG4gICAgb3N4OiBmdW5jdGlvbiAoZGVsaW0pIHtcbiAgICAgICAgcmV0dXJuIFsxMCwgcm5kKDUsIDEwKSwgcm5kKDAsIDkpXS5qb2luKGRlbGltIHx8ICcuJyk7XG4gICAgfSxcbiAgICBjaHJvbWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtybmQoMTMsIDM5KSwgMCwgcm5kKDgwMCwgODk5KSwgMF0uam9pbignLicpO1xuICAgIH0sXG4gICAgcHJlc3RvOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnMi45LicgKyBybmQoMTYwLCAxOTApO1xuICAgIH0sXG4gICAgcHJlc3RvMjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDEwLCAxMikgKyAnLjAwJztcbiAgICB9LFxuICAgIHNhZmFyaTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcm5kKDUzMSwgNTM4KSArICcuJyArIHJuZCgwLCAyKSArICcuJyArIHJuZCgwLDIpO1xuICAgIH1cbn07XG5cbnZhciBicm93c2VyID0ge1xuICAgIGZpcmVmb3g6IGZ1bmN0aW9uIGZpcmVmb3goYXJjaCkge1xuICAgICAgICAvL2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvR2Vja29fdXNlcl9hZ2VudF9zdHJpbmdfcmVmZXJlbmNlXG4gICAgICAgIHZhciBmaXJlZm94X3ZlciA9IHJuZCg1LCAxNSkgKyByYW5kb21SZXZpc2lvbigyKSxcbiAgICAgICAgICAgIGdlY2tvX3ZlciA9ICdHZWNrby8yMDEwMDEwMSBGaXJlZm94LycgKyBmaXJlZm94X3ZlcixcbiAgICAgICAgICAgIHByb2MgPSByYW5kb21Qcm9jKGFyY2gpLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICd3aW4nKSA/ICcoV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICgocHJvYykgPyAnOyAnICsgcHJvYyA6ICcnKVxuICAgICAgICAgICAgOiAoYXJjaCA9PT0gJ21hYycpID8gJyhNYWNpbnRvc2g7ICcgKyBwcm9jICsgJyBNYWMgT1MgWCAnICsgdmVyc2lvbl9zdHJpbmcub3N4KClcbiAgICAgICAgICAgIDogJyhYMTE7IExpbnV4ICcgKyBwcm9jO1xuXG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgJyArIG9zX3ZlciArICc7IHJ2OicgKyBmaXJlZm94X3Zlci5zbGljZSgwLCAtMikgKyAnKSAnICsgZ2Vja29fdmVyO1xuICAgIH0sXG5cbiAgICBpZXhwbG9yZXI6IGZ1bmN0aW9uIGlleHBsb3JlcigpIHtcbiAgICAgICAgdmFyIHZlciA9IHZlcnNpb25fc3RyaW5nLmllKCk7XG5cbiAgICAgICAgaWYgKHZlciA+PSAxMSkge1xuICAgICAgICAgICAgLy9odHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvaGg4NjkzMDEodj12cy44NSkuYXNweFxuICAgICAgICAgICAgcmV0dXJuICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LicgKyBybmQoMSwzKSArICc7IFRyaWRlbnQvNy4wOyAnICsgcm5kKFsnVG91Y2g7ICcsICcnXSkgKyAncnY6MTEuMCkgbGlrZSBHZWNrbyc7XG4gICAgICAgIH1cblxuICAgICAgICAvL2h0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9tczUzNzUwMyh2PXZzLjg1KS5hc3B4XG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgKGNvbXBhdGlibGU7IE1TSUUgJyArIHZlciArICcuMDsgV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICc7IFRyaWRlbnQvJyArXG4gICAgICAgICAgICB2ZXJzaW9uX3N0cmluZy50cmlkZW50KCkgKyAoKHJuZCgwLCAxKSA9PT0gMSkgPyAnOyAuTkVUIENMUiAnICsgdmVyc2lvbl9zdHJpbmcubmV0KCkgOiAnJykgKyAnKSc7XG4gICAgfSxcblxuICAgIG9wZXJhOiBmdW5jdGlvbiBvcGVyYShhcmNoKSB7XG4gICAgICAgIC8vaHR0cDovL3d3dy5vcGVyYS5jb20vZG9jcy9oaXN0b3J5L1xuICAgICAgICB2YXIgcHJlc3RvX3ZlciA9ICcgUHJlc3RvLycgKyB2ZXJzaW9uX3N0cmluZy5wcmVzdG8oKSArICcgVmVyc2lvbi8nICsgdmVyc2lvbl9zdHJpbmcucHJlc3RvMigpICsgJyknLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICd3aW4nKSA/ICcoV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICc7IFU7ICcgKyByYW5kb21MYW5nKCkgKyBwcmVzdG9fdmVyXG4gICAgICAgICAgICA6IChhcmNoID09PSAnbGluJykgPyAnKFgxMTsgTGludXggJyArIHJhbmRvbVByb2MoYXJjaCkgKyAnOyBVOyAnICsgcmFuZG9tTGFuZygpICsgcHJlc3RvX3ZlclxuICAgICAgICAgICAgOiAnKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggJyArIHZlcnNpb25fc3RyaW5nLm9zeCgpICsgJyBVOyAnICsgcmFuZG9tTGFuZygpICsgJyBQcmVzdG8vJyArXG4gICAgICAgICAgICB2ZXJzaW9uX3N0cmluZy5wcmVzdG8oKSArICcgVmVyc2lvbi8nICsgdmVyc2lvbl9zdHJpbmcucHJlc3RvMigpICsgJyknO1xuXG4gICAgICAgIHJldHVybiAnT3BlcmEvJyArIHJuZCg5LCAxNCkgKyAnLicgKyBybmQoMCwgOTkpICsgJyAnICsgb3NfdmVyO1xuICAgIH0sXG5cbiAgICBzYWZhcmk6IGZ1bmN0aW9uIHNhZmFyaShhcmNoKSB7XG4gICAgICAgIHZhciBzYWZhcmkgPSB2ZXJzaW9uX3N0cmluZy5zYWZhcmkoKSxcbiAgICAgICAgICAgIHZlciA9IHJuZCg0LCA3KSArICcuJyArIHJuZCgwLDEpICsgJy4nICsgcm5kKDAsMTApLFxuICAgICAgICAgICAgb3NfdmVyID0gKGFyY2ggPT09ICdtYWMnKSA/ICcoTWFjaW50b3NoOyAnICsgcmFuZG9tUHJvYygnbWFjJykgKyAnIE1hYyBPUyBYICcrIHZlcnNpb25fc3RyaW5nLm9zeCgnXycpICsgJyBydjonICsgcm5kKDIsIDYpICsgJy4wOyAnKyByYW5kb21MYW5nKCkgKyAnKSAnXG4gICAgICAgICAgICA6ICcoV2luZG93czsgVTsgV2luZG93cyBOVCAnICsgdmVyc2lvbl9zdHJpbmcubnQoKSArICcpJztcblxuICAgICAgICByZXR1cm4gJ01vemlsbGEvNS4wICcgKyBvc192ZXIgKyAnQXBwbGVXZWJLaXQvJyArIHNhZmFyaSArICcgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLycgKyB2ZXIgKyAnIFNhZmFyaS8nICsgc2FmYXJpO1xuICAgIH0sXG5cbiAgICBjaHJvbWU6IGZ1bmN0aW9uIGNocm9tZShhcmNoKSB7XG4gICAgICAgIHZhciBzYWZhcmkgPSB2ZXJzaW9uX3N0cmluZy5zYWZhcmkoKSxcbiAgICAgICAgICAgIG9zX3ZlciA9IChhcmNoID09PSAnbWFjJykgPyAnKE1hY2ludG9zaDsgJyArIHJhbmRvbVByb2MoJ21hYycpICsgJyBNYWMgT1MgWCAnICsgdmVyc2lvbl9zdHJpbmcub3N4KCdfJykgKyAnKSAnXG4gICAgICAgICAgICA6IChhcmNoID09PSAnd2luJykgPyAnKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgJyArIHZlcnNpb25fc3RyaW5nLm50KCkgKyAnKSdcbiAgICAgICAgICAgIDogJyhYMTE7IExpbnV4ICcgKyByYW5kb21Qcm9jKGFyY2gpO1xuXG4gICAgICAgIHJldHVybiAnTW96aWxsYS81LjAgJyArIG9zX3ZlciArICcgQXBwbGVXZWJLaXQvJyArIHNhZmFyaSArICcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvJyArIHZlcnNpb25fc3RyaW5nLmNocm9tZSgpICsgJyBTYWZhcmkvJyArIHNhZmFyaTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmdlbmVyYXRlID0gZnVuY3Rpb24gZ2VuZXJhdGUoKSB7XG4gICAgdmFyIHJhbmRvbSA9IHJhbmRvbUJyb3dzZXJBbmRPUygpO1xuICAgIHJldHVybiBicm93c2VyW3JhbmRvbVswXV0ocmFuZG9tWzFdKTtcbn07XG4iLCJ2YXIgcmV0ID0gcmVxdWlyZSgncmV0Jyk7XG52YXIgRFJhbmdlID0gcmVxdWlyZSgnZGlzY29udGludW91cy1yYW5nZScpO1xudmFyIHR5cGVzID0gcmV0LnR5cGVzO1xuXG5cbi8qKlxuICogSWYgY29kZSBpcyBhbHBoYWJldGljLCBjb252ZXJ0cyB0byBvdGhlciBjYXNlLlxuICogSWYgbm90IGFscGhhYmV0aWMsIHJldHVybnMgYmFjayBjb2RlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb2RlXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIHRvT3RoZXJDYXNlKGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgKyAoOTcgPD0gY29kZSAmJiBjb2RlIDw9IDEyMiA/IC0zMiA6XG4gICAgICAgICAgICAgICAgIDY1IDw9IGNvZGUgJiYgY29kZSA8PSA5MCAgPyAgMzIgOiAwKTtcbn1cblxuXG4vKipcbiAqIFJhbmRvbWx5IHJldHVybnMgYSB0cnVlIG9yIGZhbHNlIHZhbHVlLlxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIHJhbmRCb29sKCkge1xuICByZXR1cm4gIXRoaXMucmFuZEludCgwLCAxKTtcbn07XG5cblxuLyoqXG4gKiBSYW5kb21seSBzZWxlY3RzIGFuZCByZXR1cm5zIGEgdmFsdWUgZnJvbSB0aGUgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtBcnJheS48T2JqZWN0Pn0gYXJyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHJhbmRTZWxlY3QoYXJyKSB7XG4gIGlmIChhcnIgaW5zdGFuY2VvZiBEUmFuZ2UpIHtcbiAgICByZXR1cm4gYXJyLmluZGV4KHRoaXMucmFuZEludCgwLCBhcnIubGVuZ3RoIC0gMSkpO1xuICB9XG4gIHJldHVybiBhcnJbdGhpcy5yYW5kSW50KDAsIGFyci5sZW5ndGggLSAxKV07XG59O1xuXG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIGNoYXJhY3RlciBjb2RlIGlzIGFscGhhYmV0aWMgYW5kIGRlY2lkZVxuICogdG8gc3dpdGNoIGNhc2UgcmFuZG9tbHkuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gaWdub3JlQ2FzZVxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBjaGFyKGNvZGUsIGlnbm9yZUNhc2UpIHtcbiAgY29kZSA9IGlnbm9yZUNhc2UgJiYgcmFuZEJvb2wuY2FsbCh0aGlzKSA/IHRvT3RoZXJDYXNlKGNvZGUpIDogY29kZTtcbiAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG59O1xuXG5cbi8qKlxuICogZXhwYW5kcyBhIHRva2VuIHRvIGEgRGlzY29udGludW91c1JhbmdlIG9mIGNoYXJhY3RlcnMgd2hpY2ggaGFzIGEgXG4gKiBsZW5ndGggYW5kIGFuIGluZGV4IGZ1bmN0aW9uIChmb3IgcmFuZG9tIHNlbGVjdGluZylcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdG9rZW5cbiAqIEByZXR1cm4ge0Rpc2NvbnRpbnVvdXNSYW5nZX1cbiAqL1xuZnVuY3Rpb24gZXhwYW5kKHRva2VuKSB7XG4gIGlmICh0b2tlbi50eXBlID09PSByZXQudHlwZXMuQ0hBUikgcmV0dXJuIG5ldyBEUmFuZ2UodG9rZW4udmFsdWUpO1xuICBpZiAodG9rZW4udHlwZSA9PT0gcmV0LnR5cGVzLlJBTkdFKSByZXR1cm4gbmV3IERSYW5nZSh0b2tlbi5mcm9tLCB0b2tlbi50byk7XG4gIGlmICh0b2tlbi50eXBlID09PSByZXQudHlwZXMuU0VUKSB7XG4gICAgdmFyIGRyYW5nZSA9IG5ldyBEUmFuZ2UoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2VuLnNldC5sZW5ndGg7IGkrKykge1xuICAgICAgZHJhbmdlLmFkZChleHBhbmQuY2FsbCh0aGlzLCB0b2tlbi5zZXRbaV0pKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLm5vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFJhbmdlLmNsb25lKCkuc3VidHJhY3QoZHJhbmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRyYW5nZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGFuZGFibGUgdG9rZW4gdHlwZTogJyArIHRva2VuLnR5cGUpO1xufTtcblxuXG4vKipcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtSZWdFeHB8U3RyaW5nfSByZWdleHBcbiAqIEBwYXJhbSB7U3RyaW5nfSBtXG4gKi9cbnZhciBSYW5kRXhwID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihyZWdleHAsIG0pIHtcbiAgdGhpcy5kZWZhdWx0UmFuZ2UgPSB0aGlzLmRlZmF1bHRSYW5nZS5jbG9uZSgpO1xuICBpZiAocmVnZXhwIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgdGhpcy5pZ25vcmVDYXNlID0gcmVnZXhwLmlnbm9yZUNhc2U7XG4gICAgdGhpcy5tdWx0aWxpbmUgPSByZWdleHAubXVsdGlsaW5lO1xuICAgIGlmICh0eXBlb2YgcmVnZXhwLm1heCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMubWF4ID0gcmVnZXhwLm1heDtcbiAgICB9XG4gICAgcmVnZXhwID0gcmVnZXhwLnNvdXJjZTtcblxuICB9IGVsc2UgaWYgKHR5cGVvZiByZWdleHAgPT09ICdzdHJpbmcnKSB7XG4gICAgdGhpcy5pZ25vcmVDYXNlID0gbSAmJiBtLmluZGV4T2YoJ2knKSAhPT0gLTE7XG4gICAgdGhpcy5tdWx0aWxpbmUgPSBtICYmIG0uaW5kZXhPZignbScpICE9PSAtMTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgcmVnZXhwIG9yIHN0cmluZycpO1xuICB9XG5cbiAgdGhpcy50b2tlbnMgPSByZXQocmVnZXhwKTtcbn07XG5cblxuLy8gV2hlbiBhIHJlcGV0aXRpb25hbCB0b2tlbiBoYXMgaXRzIG1heCBzZXQgdG8gSW5maW5pdGUsXG4vLyByYW5kZXhwIHdvbid0IGFjdHVhbGx5IGdlbmVyYXRlIGEgcmFuZG9tIGFtb3VudCBiZXR3ZWVuIG1pbiBhbmQgSW5maW5pdGVcbi8vIGluc3RlYWQgaXQgd2lsbCBzZWUgSW5maW5pdGUgYXMgbWluICsgMTAwLlxuUmFuZEV4cC5wcm90b3R5cGUubWF4ID0gMTAwO1xuXG5cbi8vIEdlbmVyYXRlcyB0aGUgcmFuZG9tIHN0cmluZy5cblJhbmRFeHAucHJvdG90eXBlLmdlbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZ2VuLmNhbGwodGhpcywgdGhpcy50b2tlbnMsIFtdKTtcbn07XG5cblxuLy8gRW5hYmxlcyB1c2Ugb2YgcmFuZGV4cCB3aXRoIGEgc2hvcnRlciBjYWxsLlxuUmFuZEV4cC5yYW5kZXhwID0gZnVuY3Rpb24ocmVnZXhwLCBtKSB7XG4gIHZhciByYW5kZXhwO1xuXG4gIGlmIChyZWdleHAuX3JhbmRleHAgPT09IHVuZGVmaW5lZCkge1xuICAgIHJhbmRleHAgPSBuZXcgUmFuZEV4cChyZWdleHAsIG0pO1xuICAgIHJlZ2V4cC5fcmFuZGV4cCA9IHJhbmRleHA7XG4gIH0gZWxzZSB7XG4gICAgcmFuZGV4cCA9IHJlZ2V4cC5fcmFuZGV4cDtcbiAgICBpZiAodHlwZW9mIHJlZ2V4cC5tYXggPT09ICdudW1iZXInKSB7XG4gICAgICByYW5kZXhwLm1heCA9IHJlZ2V4cC5tYXg7XG4gICAgfVxuICAgIGlmIChyZWdleHAuZGVmYXVsdFJhbmdlIGluc3RhbmNlb2YgRFJhbmdlKSB7XG4gICAgICByYW5kZXhwLmRlZmF1bHRSYW5nZSA9IHJlZ2V4cC5kZWZhdWx0UmFuZ2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVnZXhwLnJhbmRJbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJhbmRleHAucmFuZEludCA9IHJlZ2V4cC5yYW5kSW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByYW5kZXhwLmdlbigpO1xufTtcblxuXG4vLyBUaGlzIGVuYWJsZXMgc3VnYXJ5IC9yZWdleHAvLmdlbiBzeW50YXguXG5SYW5kRXhwLnN1Z2FyID0gZnVuY3Rpb24oKSB7XG4gIC8qIGpzaGludCBmcmVlemU6ZmFsc2UgKi9cbiAgUmVnRXhwLnByb3RvdHlwZS5nZW4gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gUmFuZEV4cC5yYW5kZXhwKHRoaXMpO1xuICB9O1xufTtcblxuLy8gVGhpcyBhbGxvd3MgZXhwYW5kaW5nIHRvIGluY2x1ZGUgYWRkaXRpb25hbCBjaGFyYWN0ZXJzXG4vLyBmb3IgaW5zdGFuY2U6IFJhbmRFeHAuZGVmYXVsdFJhbmdlLmFkZCgwLCA2NTUzNSk7XG5SYW5kRXhwLnByb3RvdHlwZS5kZWZhdWx0UmFuZ2UgPSBuZXcgRFJhbmdlKDMyLCAxMjYpO1xuXG5cblxuXG5cblxuLyoqXG4gKiBSYW5kb21seSBnZW5lcmF0ZXMgYW5kIHJldHVybnMgYSBudW1iZXIgYmV0d2VlbiBhIGFuZCBiIChpbmNsdXNpdmUpLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBhXG4gKiBAcGFyYW0ge051bWJlcn0gYlxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG5SYW5kRXhwLnByb3RvdHlwZS5yYW5kSW50ID0gZnVuY3Rpb24oYSwgYikge1xuICByZXR1cm4gYSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICgxICsgYiAtIGEpKTtcbn07XG5cblxuLyoqXG4gKiBHZW5lcmF0ZSByYW5kb20gc3RyaW5nIG1vZGVsZWQgYWZ0ZXIgZ2l2ZW4gdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB0b2tlblxuICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gZ3JvdXBzXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdlbih0b2tlbiwgZ3JvdXBzKSB7XG4gIHZhciBzdGFjaywgc3RyLCBuLCBpLCBsO1xuXG4gIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXG5cbiAgICBjYXNlIHR5cGVzLlJPT1Q6XG4gICAgY2FzZSB0eXBlcy5HUk9VUDpcbiAgICAgIGlmICh0b2tlbi5ub3RGb2xsb3dlZEJ5KSB7IHJldHVybiAnJzsgfVxuXG4gICAgICAvLyBJbnNlcnQgcGxhY2Vob2xkZXIgdW50aWwgZ3JvdXAgc3RyaW5nIGlzIGdlbmVyYXRlZC5cbiAgICAgIGlmICh0b2tlbi5yZW1lbWJlciAmJiB0b2tlbi5ncm91cE51bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRva2VuLmdyb3VwTnVtYmVyID0gZ3JvdXBzLnB1c2gobnVsbCkgLSAxO1xuICAgICAgfVxuXG4gICAgICBzdGFjayA9IHRva2VuLm9wdGlvbnMgPyByYW5kU2VsZWN0LmNhbGwodGhpcywgdG9rZW4ub3B0aW9ucykgOiB0b2tlbi5zdGFjaztcblxuICAgICAgc3RyID0gJyc7XG4gICAgICBmb3IgKGkgPSAwLCBsID0gc3RhY2subGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHN0ciArPSBnZW4uY2FsbCh0aGlzLCBzdGFja1tpXSwgZ3JvdXBzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2VuLnJlbWVtYmVyKSB7XG4gICAgICAgIGdyb3Vwc1t0b2tlbi5ncm91cE51bWJlcl0gPSBzdHI7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyO1xuXG5cbiAgICBjYXNlIHR5cGVzLlBPU0lUSU9OOlxuICAgICAgLy8gRG8gbm90aGluZyBmb3Igbm93LlxuICAgICAgcmV0dXJuICcnO1xuXG5cbiAgICBjYXNlIHR5cGVzLlNFVDpcblxuICAgICAgdmFyIGV4cGFuZGVkX3NldCA9IGV4cGFuZC5jYWxsKHRoaXMsIHRva2VuKTtcbiAgICAgIGlmICghZXhwYW5kZWRfc2V0Lmxlbmd0aCkgcmV0dXJuICcnO1xuICAgICAgcmV0dXJuIGNoYXIuY2FsbCh0aGlzLCByYW5kU2VsZWN0LmNhbGwodGhpcywgZXhwYW5kZWRfc2V0KSwgdGhpcy5pZ25vcmVDYXNlKTtcblxuICAgIGNhc2UgdHlwZXMuUkFOR0U6XG4gICAgICByZXR1cm4gY2hhci5jYWxsKHRoaXMsIHRoaXMucmFuZEludCh0b2tlbi5mcm9tLCB0b2tlbi50byksIHRoaXMuaWdub3JlQ2FzZSk7XG5cblxuICAgIGNhc2UgdHlwZXMuUkVQRVRJVElPTjpcbiAgICAgIC8vIFJhbmRvbWx5IGdlbmVyYXRlIG51bWJlciBiZXR3ZWVuIG1pbiBhbmQgbWF4LlxuICAgICAgbiA9IHRoaXMucmFuZEludCh0b2tlbi5taW4sXG4gICAgICAgICAgICAgIHRva2VuLm1heCA9PT0gSW5maW5pdHkgPyB0b2tlbi5taW4gKyB0aGlzLm1heCA6IHRva2VuLm1heCk7XG5cbiAgICAgIHN0ciA9ICcnO1xuICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBzdHIgKz0gZ2VuLmNhbGwodGhpcywgdG9rZW4udmFsdWUsIGdyb3Vwcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHI7XG5cblxuICAgIGNhc2UgdHlwZXMuUkVGRVJFTkNFOlxuICAgICAgcmV0dXJuIGdyb3Vwc1t0b2tlbi52YWx1ZSAtIDFdIHx8ICcnO1xuXG5cbiAgICBjYXNlIHR5cGVzLkNIQVI6XG4gICAgICByZXR1cm4gY2hhci5jYWxsKHRoaXMsIHRva2VuLnZhbHVlLCB0aGlzLmlnbm9yZUNhc2UpO1xuICB9XG59XG5cblxuIiwiLy9wcm90ZWN0ZWQgaGVscGVyIGNsYXNzXG5mdW5jdGlvbiBfU3ViUmFuZ2UobG93LCBoaWdoKSB7XG4gICAgdGhpcy5sb3cgPSBsb3c7XG4gICAgdGhpcy5oaWdoID0gaGlnaDtcbiAgICB0aGlzLmxlbmd0aCA9IDEgKyBoaWdoIC0gbG93O1xufVxuXG5fU3ViUmFuZ2UucHJvdG90eXBlLm92ZXJsYXBzID0gZnVuY3Rpb24gKHJhbmdlKSB7XG4gICAgcmV0dXJuICEodGhpcy5oaWdoIDwgcmFuZ2UubG93IHx8IHRoaXMubG93ID4gcmFuZ2UuaGlnaCk7XG59O1xuXG5fU3ViUmFuZ2UucHJvdG90eXBlLnRvdWNoZXMgPSBmdW5jdGlvbiAocmFuZ2UpIHtcbiAgICByZXR1cm4gISh0aGlzLmhpZ2ggKyAxIDwgcmFuZ2UubG93IHx8IHRoaXMubG93IC0gMSA+IHJhbmdlLmhpZ2gpO1xufTtcblxuLy9yZXR1cm5zIGluY2x1c2l2ZSBjb21iaW5hdGlvbiBvZiBfU3ViUmFuZ2VzIGFzIGEgX1N1YlJhbmdlXG5fU3ViUmFuZ2UucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChyYW5nZSkge1xuICAgIHJldHVybiB0aGlzLnRvdWNoZXMocmFuZ2UpICYmIG5ldyBfU3ViUmFuZ2UoTWF0aC5taW4odGhpcy5sb3csIHJhbmdlLmxvdyksIE1hdGgubWF4KHRoaXMuaGlnaCwgcmFuZ2UuaGlnaCkpO1xufTtcblxuLy9yZXR1cm5zIHN1YnRyYWN0aW9uIG9mIF9TdWJSYW5nZXMgYXMgYW4gYXJyYXkgb2YgX1N1YlJhbmdlcyAodGhlcmUncyBhIGNhc2Ugd2hlcmUgc3VidHJhY3Rpb24gZGl2aWRlcyBpdCBpbiAyKVxuX1N1YlJhbmdlLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uIChyYW5nZSkge1xuICAgIGlmICghdGhpcy5vdmVybGFwcyhyYW5nZSkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocmFuZ2UubG93IDw9IHRoaXMubG93ICYmIHJhbmdlLmhpZ2ggPj0gdGhpcy5oaWdoKSByZXR1cm4gW107XG4gICAgaWYgKHJhbmdlLmxvdyA+IHRoaXMubG93ICYmIHJhbmdlLmhpZ2ggPCB0aGlzLmhpZ2gpIHJldHVybiBbbmV3IF9TdWJSYW5nZSh0aGlzLmxvdywgcmFuZ2UubG93IC0gMSksIG5ldyBfU3ViUmFuZ2UocmFuZ2UuaGlnaCArIDEsIHRoaXMuaGlnaCldO1xuICAgIGlmIChyYW5nZS5sb3cgPD0gdGhpcy5sb3cpIHJldHVybiBbbmV3IF9TdWJSYW5nZShyYW5nZS5oaWdoICsgMSwgdGhpcy5oaWdoKV07XG4gICAgcmV0dXJuIFtuZXcgX1N1YlJhbmdlKHRoaXMubG93LCByYW5nZS5sb3cgLSAxKV07XG59O1xuXG5fU3ViUmFuZ2UucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLmxvdyA9PSB0aGlzLmhpZ2gpIHJldHVybiB0aGlzLmxvdy50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmxvdyArICctJyArIHRoaXMuaGlnaDtcbn07XG5cbl9TdWJSYW5nZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG5ldyBfU3ViUmFuZ2UodGhpcy5sb3csIHRoaXMuaGlnaCk7XG59O1xuXG5cblxuXG5mdW5jdGlvbiBEaXNjb250aW51b3VzUmFuZ2UoYSwgYikge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgRGlzY29udGludW91c1JhbmdlKSB7XG4gICAgICAgIHRoaXMucmFuZ2VzID0gW107XG4gICAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICAgICAgaWYgKGEgIT09IHVuZGVmaW5lZCkgdGhpcy5hZGQoYSwgYik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEaXNjb250aW51b3VzUmFuZ2UoYSwgYik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBfdXBkYXRlX2xlbmd0aChzZWxmKSB7XG4gICAgc2VsZi5sZW5ndGggPSBzZWxmLnJhbmdlcy5yZWR1Y2UoZnVuY3Rpb24gKHByZXZpb3VzLCByYW5nZSkge3JldHVybiBwcmV2aW91cyArIHJhbmdlLmxlbmd0aH0sIDApO1xufVxuXG5EaXNjb250aW51b3VzUmFuZ2UucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIF9hZGQoc3VicmFuZ2UpIHtcbiAgICAgICAgdmFyIG5ld19yYW5nZXMgPSBbXTtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiAhc3VicmFuZ2UudG91Y2hlcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMucHVzaChzZWxmLnJhbmdlc1tpXS5jbG9uZSgpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiBzdWJyYW5nZS50b3VjaGVzKHNlbGYucmFuZ2VzW2ldKSkge1xuICAgICAgICAgICAgc3VicmFuZ2UgPSBzdWJyYW5nZS5hZGQoc2VsZi5yYW5nZXNbaV0pO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIG5ld19yYW5nZXMucHVzaChzdWJyYW5nZSk7XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZi5yYW5nZXMgPSBuZXdfcmFuZ2VzO1xuICAgICAgICBfdXBkYXRlX2xlbmd0aChzZWxmKTtcbiAgICB9XG5cbiAgICBpZiAoYSBpbnN0YW5jZW9mIERpc2NvbnRpbnVvdXNSYW5nZSkge1xuICAgICAgICBhLnJhbmdlcy5mb3JFYWNoKF9hZGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhIGluc3RhbmNlb2YgX1N1YlJhbmdlKSB7XG4gICAgICAgICAgICBfYWRkKGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGIgPT09IHVuZGVmaW5lZCkgYiA9IGE7XG4gICAgICAgICAgICBfYWRkKG5ldyBfU3ViUmFuZ2UoYSwgYikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xufTtcblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIF9zdWJ0cmFjdChzdWJyYW5nZSkge1xuICAgICAgICB2YXIgbmV3X3JhbmdlcyA9IFtdO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoICYmICFzdWJyYW5nZS5vdmVybGFwcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMucHVzaChzZWxmLnJhbmdlc1tpXS5jbG9uZSgpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IHNlbGYucmFuZ2VzLmxlbmd0aCAmJiBzdWJyYW5nZS5vdmVybGFwcyhzZWxmLnJhbmdlc1tpXSkpIHtcbiAgICAgICAgICAgIG5ld19yYW5nZXMgPSBuZXdfcmFuZ2VzLmNvbmNhdChzZWxmLnJhbmdlc1tpXS5zdWJ0cmFjdChzdWJyYW5nZSkpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpIDwgc2VsZi5yYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXdfcmFuZ2VzLnB1c2goc2VsZi5yYW5nZXNbaV0uY2xvbmUoKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZi5yYW5nZXMgPSBuZXdfcmFuZ2VzO1xuICAgICAgICBfdXBkYXRlX2xlbmd0aChzZWxmKTtcbiAgICB9XG4gICAgaWYgKGEgaW5zdGFuY2VvZiBEaXNjb250aW51b3VzUmFuZ2UpIHtcbiAgICAgICAgYS5yYW5nZXMuZm9yRWFjaChfc3VidHJhY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhIGluc3RhbmNlb2YgX1N1YlJhbmdlKSB7XG4gICAgICAgICAgICBfc3VidHJhY3QoYSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoYiA9PT0gdW5kZWZpbmVkKSBiID0gYTtcbiAgICAgICAgICAgIF9zdWJ0cmFjdChuZXcgX1N1YlJhbmdlKGEsIGIpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbn07XG5cblxuRGlzY29udGludW91c1JhbmdlLnByb3RvdHlwZS5pbmRleCA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHRoaXMucmFuZ2VzLmxlbmd0aCAmJiB0aGlzLnJhbmdlc1tpXS5sZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgaW5kZXggLT0gdGhpcy5yYW5nZXNbaV0ubGVuZ3RoO1xuICAgICAgICBpKys7XG4gICAgfVxuICAgIGlmIChpID49IHRoaXMucmFuZ2VzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2VzW2ldLmxvdyArIGluZGV4O1xufTtcblxuXG5EaXNjb250aW51b3VzUmFuZ2UucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAnWyAnICsgdGhpcy5yYW5nZXMuam9pbignLCAnKSArICcgXSdcbn07XG5cbkRpc2NvbnRpbnVvdXNSYW5nZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG5ldyBEaXNjb250aW51b3VzUmFuZ2UodGhpcyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERpc2NvbnRpbnVvdXNSYW5nZTtcbiIsInZhciB1dGlsICAgICAgPSByZXF1aXJlKCcuL3V0aWwnKTtcbnZhciB0eXBlcyAgICAgPSByZXF1aXJlKCcuL3R5cGVzJyk7XG52YXIgc2V0cyAgICAgID0gcmVxdWlyZSgnLi9zZXRzJyk7XG52YXIgcG9zaXRpb25zID0gcmVxdWlyZSgnLi9wb3NpdGlvbnMnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHJlZ2V4cFN0cikge1xuICB2YXIgaSA9IDAsIGwsIGMsXG4gICAgICBzdGFydCA9IHsgdHlwZTogdHlwZXMuUk9PVCwgc3RhY2s6IFtdfSxcblxuICAgICAgLy8gS2VlcCB0cmFjayBvZiBsYXN0IGNsYXVzZS9ncm91cCBhbmQgc3RhY2suXG4gICAgICBsYXN0R3JvdXAgPSBzdGFydCxcbiAgICAgIGxhc3QgPSBzdGFydC5zdGFjayxcbiAgICAgIGdyb3VwU3RhY2sgPSBbXTtcblxuXG4gIHZhciByZXBlYXRFcnIgPSBmdW5jdGlvbihpKSB7XG4gICAgdXRpbC5lcnJvcihyZWdleHBTdHIsICdOb3RoaW5nIHRvIHJlcGVhdCBhdCBjb2x1bW4gJyArIChpIC0gMSkpO1xuICB9O1xuXG4gIC8vIERlY29kZSBhIGZldyBlc2NhcGVkIGNoYXJhY3RlcnMuXG4gIHZhciBzdHIgPSB1dGlsLnN0clRvQ2hhcnMocmVnZXhwU3RyKTtcbiAgbCA9IHN0ci5sZW5ndGg7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggY2hhcmFjdGVyIGluIHN0cmluZy5cbiAgd2hpbGUgKGkgPCBsKSB7XG4gICAgYyA9IHN0cltpKytdO1xuXG4gICAgc3dpdGNoIChjKSB7XG4gICAgICAvLyBIYW5kbGUgZXNjYXBlZCBjaGFyYWN0ZXJzLCBpbmNsdWVzIGEgZmV3IHNldHMuXG4gICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgYyA9IHN0cltpKytdO1xuXG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy53b3JkQm91bmRhcnkoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ0InOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy5ub25Xb3JkQm91bmRhcnkoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMud29yZHMoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMubm90V29yZHMoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMuaW50cygpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICBsYXN0LnB1c2goc2V0cy5ub3RJbnRzKCkpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgIGxhc3QucHVzaChzZXRzLndoaXRlc3BhY2UoKSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1MnOlxuICAgICAgICAgICAgbGFzdC5wdXNoKHNldHMubm90V2hpdGVzcGFjZSgpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGMgaXMgaW50ZWdlci5cbiAgICAgICAgICAgIC8vIEluIHdoaWNoIGNhc2UgaXQncyBhIHJlZmVyZW5jZS5cbiAgICAgICAgICAgIGlmICgvXFxkLy50ZXN0KGMpKSB7XG4gICAgICAgICAgICAgIGxhc3QucHVzaCh7IHR5cGU6IHR5cGVzLlJFRkVSRU5DRSwgdmFsdWU6IHBhcnNlSW50KGMsIDEwKSB9KTtcblxuICAgICAgICAgICAgLy8gRXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsYXN0LnB1c2goeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogYy5jaGFyQ29kZUF0KDApIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gUG9zaXRpb25hbHMuXG4gICAgICBjYXNlICdeJzpcbiAgICAgICAgICBsYXN0LnB1c2gocG9zaXRpb25zLmJlZ2luKCkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnJCc6XG4gICAgICAgICAgbGFzdC5wdXNoKHBvc2l0aW9ucy5lbmQoKSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIEhhbmRsZSBjdXN0b20gc2V0cy5cbiAgICAgIGNhc2UgJ1snOlxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGNsYXNzIGlzICdhbnRpJyBpLmUuIFteYWJjXS5cbiAgICAgICAgdmFyIG5vdDtcbiAgICAgICAgaWYgKHN0cltpXSA9PT0gJ14nKSB7XG4gICAgICAgICAgbm90ID0gdHJ1ZTtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm90ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgYWxsIHRoZSBjaGFyYWN0ZXJzIGluIGNsYXNzLlxuICAgICAgICB2YXIgY2xhc3NUb2tlbnMgPSB1dGlsLnRva2VuaXplQ2xhc3Moc3RyLnNsaWNlKGkpLCByZWdleHBTdHIpO1xuXG4gICAgICAgIC8vIEluY3JlYXNlIGluZGV4IGJ5IGxlbmd0aCBvZiBjbGFzcy5cbiAgICAgICAgaSArPSBjbGFzc1Rva2Vuc1sxXTtcbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlNFVFxuICAgICAgICAgICwgc2V0OiBjbGFzc1Rva2Vuc1swXVxuICAgICAgICAgICwgbm90OiBub3RcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gQ2xhc3Mgb2YgYW55IGNoYXJhY3RlciBleGNlcHQgXFxuLlxuICAgICAgY2FzZSAnLic6XG4gICAgICAgIGxhc3QucHVzaChzZXRzLmFueUNoYXIoKSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFB1c2ggZ3JvdXAgb250byBzdGFjay5cbiAgICAgIGNhc2UgJygnOlxuICAgICAgICAvLyBDcmVhdGUgZ3JvdXAuXG4gICAgICAgIHZhciBncm91cCA9IHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLkdST1VQXG4gICAgICAgICAgLCBzdGFjazogW11cbiAgICAgICAgICAsIHJlbWVtYmVyOiB0cnVlXG4gICAgICAgIH07XG5cbiAgICAgICAgYyA9IHN0cltpXTtcblxuICAgICAgICAvLyBpZiBpZiB0aGlzIGlzIGEgc3BlY2lhbCBraW5kIG9mIGdyb3VwLlxuICAgICAgICBpZiAoYyA9PT0gJz8nKSB7XG4gICAgICAgICAgYyA9IHN0cltpICsgMV07XG4gICAgICAgICAgaSArPSAyO1xuXG4gICAgICAgICAgLy8gTWF0Y2ggaWYgZm9sbG93ZWQgYnkuXG4gICAgICAgICAgaWYgKGMgPT09ICc9Jykge1xuICAgICAgICAgICAgZ3JvdXAuZm9sbG93ZWRCeSA9IHRydWU7XG5cbiAgICAgICAgICAvLyBNYXRjaCBpZiBub3QgZm9sbG93ZWQgYnkuXG4gICAgICAgICAgfSBlbHNlIGlmIChjID09PSAnIScpIHtcbiAgICAgICAgICAgIGdyb3VwLm5vdEZvbGxvd2VkQnkgPSB0cnVlO1xuXG4gICAgICAgICAgfSBlbHNlIGlmIChjICE9PSAnOicpIHtcbiAgICAgICAgICAgIHV0aWwuZXJyb3IocmVnZXhwU3RyLFxuICAgICAgICAgICAgICAgICdJbnZhbGlkIGdyb3VwLCBjaGFyYWN0ZXIgXFwnJyArIGMgKyAnXFwnIGFmdGVyIFxcJz9cXCcgYXQgY29sdW1uICcgK1xuICAgICAgICAgICAgICAgIChpIC0gMSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGdyb3VwLnJlbWVtYmVyID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnNlcnQgc3ViZ3JvdXAgaW50byBjdXJyZW50IGdyb3VwIHN0YWNrLlxuICAgICAgICBsYXN0LnB1c2goZ3JvdXApO1xuXG4gICAgICAgIC8vIFJlbWVtYmVyIHRoZSBjdXJyZW50IGdyb3VwIGZvciB3aGVuIHRoZSBncm91cCBjbG9zZXMuXG4gICAgICAgIGdyb3VwU3RhY2sucHVzaChsYXN0R3JvdXApO1xuXG4gICAgICAgIC8vIE1ha2UgdGhpcyBuZXcgZ3JvdXAgdGhlIGN1cnJlbnQgZ3JvdXAuXG4gICAgICAgIGxhc3RHcm91cCA9IGdyb3VwO1xuICAgICAgICBsYXN0ID0gZ3JvdXAuc3RhY2s7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIFBvcCBncm91cCBvdXQgb2Ygc3RhY2suXG4gICAgICBjYXNlICcpJzpcbiAgICAgICAgaWYgKGdyb3VwU3RhY2subGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdXRpbC5lcnJvcihyZWdleHBTdHIsICdVbm1hdGNoZWQgKSBhdCBjb2x1bW4gJyArIChpIC0gMSkpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RHcm91cCA9IGdyb3VwU3RhY2sucG9wKCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBncm91cCBoYXMgYSBQSVBFLlxuICAgICAgICAvLyBUbyBnZXQgYmFjayB0aGUgY29ycmVjdCBsYXN0IHN0YWNrLlxuICAgICAgICBsYXN0ID0gbGFzdEdyb3VwLm9wdGlvbnMgPyBsYXN0R3JvdXAub3B0aW9uc1tsYXN0R3JvdXAub3B0aW9ucy5sZW5ndGggLSAxXSA6IGxhc3RHcm91cC5zdGFjaztcbiAgICAgICAgYnJlYWs7XG5cblxuICAgICAgLy8gVXNlIHBpcGUgY2hhcmFjdGVyIHRvIGdpdmUgbW9yZSBjaG9pY2VzLlxuICAgICAgY2FzZSAnfCc6XG4gICAgICAgIC8vIENyZWF0ZSBhcnJheSB3aGVyZSBvcHRpb25zIGFyZSBpZiB0aGlzIGlzIHRoZSBmaXJzdCBQSVBFXG4gICAgICAgIC8vIGluIHRoaXMgY2xhdXNlLlxuICAgICAgICBpZiAoIWxhc3RHcm91cC5vcHRpb25zKSB7XG4gICAgICAgICAgbGFzdEdyb3VwLm9wdGlvbnMgPSBbbGFzdEdyb3VwLnN0YWNrXTtcbiAgICAgICAgICBkZWxldGUgbGFzdEdyb3VwLnN0YWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHN0YWNrIGFuZCBhZGQgdG8gb3B0aW9ucyBmb3IgcmVzdCBvZiBjbGF1c2UuXG4gICAgICAgIHZhciBzdGFjayA9IFtdO1xuICAgICAgICBsYXN0R3JvdXAub3B0aW9ucy5wdXNoKHN0YWNrKTtcbiAgICAgICAgbGFzdCA9IHN0YWNrO1xuICAgICAgICBicmVhaztcblxuXG4gICAgICAvLyBSZXBldGl0aW9uLlxuICAgICAgLy8gRm9yIGV2ZXJ5IHJlcGV0aXRpb24sIHJlbW92ZSBsYXN0IGVsZW1lbnQgZnJvbSBsYXN0IHN0YWNrXG4gICAgICAvLyB0aGVuIGluc2VydCBiYWNrIGEgUkFOR0Ugb2JqZWN0LlxuICAgICAgLy8gVGhpcyBkZXNpZ24gaXMgY2hvc2VuIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgbW9yZSB0aGFuXG4gICAgICAvLyBvbmUgcmVwZXRpdGlvbiBzeW1ib2xzIGluIGEgcmVnZXggaS5lLiBgYT8rezIsM31gLlxuICAgICAgY2FzZSAneyc6XG4gICAgICAgIHZhciBycyA9IC9eKFxcZCspKCwoXFxkKyk/KT9cXH0vLmV4ZWMoc3RyLnNsaWNlKGkpKSwgbWluLCBtYXg7XG4gICAgICAgIGlmIChycyAhPT0gbnVsbCkge1xuICAgICAgICAgIG1pbiA9IHBhcnNlSW50KHJzWzFdLCAxMCk7XG4gICAgICAgICAgbWF4ID0gcnNbMl0gPyByc1szXSA/IHBhcnNlSW50KHJzWzNdLCAxMCkgOiBJbmZpbml0eSA6IG1pbjtcbiAgICAgICAgICBpICs9IHJzWzBdLmxlbmd0aDtcblxuICAgICAgICAgIGxhc3QucHVzaCh7XG4gICAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAgICwgbWluOiBtaW5cbiAgICAgICAgICAgICwgbWF4OiBtYXhcbiAgICAgICAgICAgICwgdmFsdWU6IGxhc3QucG9wKClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgICB0eXBlOiB0eXBlcy5DSEFSXG4gICAgICAgICAgICAsIHZhbHVlOiAxMjNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnPyc6XG4gICAgICAgIGlmIChsYXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJlcGVhdEVycihpKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgdHlwZTogdHlwZXMuUkVQRVRJVElPTlxuICAgICAgICAgICwgbWluOiAwXG4gICAgICAgICAgLCBtYXg6IDFcbiAgICAgICAgICAsIHZhbHVlOiBsYXN0LnBvcCgpXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnKyc6XG4gICAgICAgIGlmIChsYXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJlcGVhdEVycihpKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0LnB1c2goe1xuICAgICAgICAgICAgdHlwZTogdHlwZXMuUkVQRVRJVElPTlxuICAgICAgICAgICwgbWluOiAxXG4gICAgICAgICAgLCBtYXg6IEluZmluaXR5XG4gICAgICAgICAgLCB2YWx1ZTogbGFzdC5wb3AoKVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJyonOlxuICAgICAgICBpZiAobGFzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXBlYXRFcnIoaSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLlJFUEVUSVRJT05cbiAgICAgICAgICAsIG1pbjogMFxuICAgICAgICAgICwgbWF4OiBJbmZpbml0eVxuICAgICAgICAgICwgdmFsdWU6IGxhc3QucG9wKClcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG5cbiAgICAgIC8vIERlZmF1bHQgaXMgYSBjaGFyYWN0ZXIgdGhhdCBpcyBub3QgYFxcW10oKXt9PysqXiRgLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGFzdC5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVzLkNIQVJcbiAgICAgICAgICAsIHZhbHVlOiBjLmNoYXJDb2RlQXQoMClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gIH1cblxuICAvLyBDaGVjayBpZiBhbnkgZ3JvdXBzIGhhdmUgbm90IGJlZW4gY2xvc2VkLlxuICBpZiAoZ3JvdXBTdGFjay5sZW5ndGggIT09IDApIHtcbiAgICB1dGlsLmVycm9yKHJlZ2V4cFN0ciwgJ1VudGVybWluYXRlZCBncm91cCcpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXJ0O1xufTtcblxubW9kdWxlLmV4cG9ydHMudHlwZXMgPSB0eXBlcztcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxuZXhwb3J0cy53b3JkQm91bmRhcnkgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuUE9TSVRJT04sIHZhbHVlOiAnYicgfTtcbn07XG5cbmV4cG9ydHMubm9uV29yZEJvdW5kYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlBPU0lUSU9OLCB2YWx1ZTogJ0InIH07XG59O1xuXG5leHBvcnRzLmJlZ2luID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlBPU0lUSU9OLCB2YWx1ZTogJ14nIH07XG59O1xuXG5leHBvcnRzLmVuZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5QT1NJVElPTiwgdmFsdWU6ICckJyB9O1xufTtcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxudmFyIElOVFMgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gW3sgdHlwZTogdHlwZXMuUkFOR0UgLCBmcm9tOiA0OCwgdG86IDU3IH1dO1xufTtcblxudmFyIFdPUkRTID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDk1IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuUkFOR0UsIGZyb206IDk3LCB0bzogMTIyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuUkFOR0UsIGZyb206IDY1LCB0bzogOTAgfVxuICBdLmNvbmNhdChJTlRTKCkpO1xufTtcblxudmFyIFdISVRFU1BBQ0UgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gW1xuICAgICAgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogOSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxMyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAzMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiAxNjAgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogNTc2MCB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA2MTU4IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5MyB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk0IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTUgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5NiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MTk3IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgxOTggfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODE5OSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjAwIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMDEgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIwMiB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4MjMyIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzMgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIzOSB9XG4gICAgLCB7IHR5cGU6IHR5cGVzLkNIQVIsIHZhbHVlOiA4Mjg3IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEyMjg4IH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDY1Mjc5IH1cbiAgXTtcbn07XG5cbnZhciBOT1RBTllDSEFSID0gZnVuY3Rpb24oKSB7XG4gcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEwIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDEzIH1cbiAgICAsIHsgdHlwZTogdHlwZXMuQ0hBUiwgdmFsdWU6IDgyMzIgfVxuICAgICwgeyB0eXBlOiB0eXBlcy5DSEFSLCB2YWx1ZTogODIzMyB9XG4gIF07XG59O1xuXG4vLyBwcmVkZWZpbmVkIGNsYXNzIG9iamVjdHNcbmV4cG9ydHMud29yZHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdPUkRTKCksIG5vdDogZmFsc2UgfTtcbn07XG5cbmV4cG9ydHMubm90V29yZHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdPUkRTKCksIG5vdDogdHJ1ZSB9O1xufTtcblxuZXhwb3J0cy5pbnRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7IHR5cGU6IHR5cGVzLlNFVCwgc2V0OiBJTlRTKCksIG5vdDogZmFsc2UgfTtcbn07XG5cbmV4cG9ydHMubm90SW50cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5TRVQsIHNldDogSU5UUygpLCBub3Q6IHRydWUgfTtcbn07XG5cbmV4cG9ydHMud2hpdGVzcGFjZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4geyB0eXBlOiB0eXBlcy5TRVQsIHNldDogV0hJVEVTUEFDRSgpLCBub3Q6IGZhbHNlIH07XG59O1xuXG5leHBvcnRzLm5vdFdoaXRlc3BhY2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IFdISVRFU1BBQ0UoKSwgbm90OiB0cnVlIH07XG59O1xuXG5leHBvcnRzLmFueUNoYXIgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHsgdHlwZTogdHlwZXMuU0VULCBzZXQ6IE5PVEFOWUNIQVIoKSwgbm90OiB0cnVlIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUk9PVCAgICAgICA6IDBcbiAgLCBHUk9VUCAgICAgIDogMVxuICAsIFBPU0lUSU9OICAgOiAyXG4gICwgU0VUICAgICAgICA6IDNcbiAgLCBSQU5HRSAgICAgIDogNFxuICAsIFJFUEVUSVRJT04gOiA1XG4gICwgUkVGRVJFTkNFICA6IDZcbiAgLCBDSEFSICAgICAgIDogN1xufTtcbiIsInZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcbnZhciBzZXRzICA9IHJlcXVpcmUoJy4vc2V0cycpO1xuXG5cbi8vIEFsbCBvZiB0aGVzZSBhcmUgcHJpdmF0ZSBhbmQgb25seSB1c2VkIGJ5IHJhbmRleHAuXG4vLyBJdCdzIGFzc3VtZWQgdGhhdCB0aGV5IHdpbGwgYWx3YXlzIGJlIGNhbGxlZCB3aXRoIHRoZSBjb3JyZWN0IGlucHV0LlxuXG52YXIgQ1RSTCA9ICdAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eID8nO1xudmFyIFNMU0ggPSB7ICcwJzogMCwgJ3QnOiA5LCAnbic6IDEwLCAndic6IDExLCAnZic6IDEyLCAncic6IDEzIH07XG5cbi8qKlxuICogRmluZHMgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9ucyBpbiBzdHIgYW5kIGNvbnZlcnQgYWxsIHRvXG4gKiB0aGVpciByZXNwZWN0aXZlIGNoYXJhY3RlcnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmV4cG9ydHMuc3RyVG9DaGFycyA9IGZ1bmN0aW9uKHN0cikge1xuICB2YXIgY2hhcnNfcmVnZXggPSAvKFxcW1xcXFxiXFxdKXxcXFxcKD86dShbQS1GMC05XXs0fSl8eChbQS1GMC05XXsyfSl8KDA/WzAtN117Mn0pfGMoW0BBLVpcXFtcXFxcXFxdXFxeP10pfChbMHRudmZyXSkpL2c7XG4gIHN0ciA9IHN0ci5yZXBsYWNlKGNoYXJzX3JlZ2V4LCBmdW5jdGlvbihzLCBiLCBhMTYsIGIxNiwgYzgsIGRjdHJsLCBlc2xzaCkge1xuICAgIHZhciBjb2RlID0gYiAgICAgPyA4IDpcbiAgICAgICAgICAgICAgIGExNiAgID8gcGFyc2VJbnQoYTE2LCAxNikgOlxuICAgICAgICAgICAgICAgYjE2ICAgPyBwYXJzZUludChiMTYsIDE2KSA6XG4gICAgICAgICAgICAgICBjOCAgICA/IHBhcnNlSW50KGM4LCAgIDgpIDpcbiAgICAgICAgICAgICAgIGRjdHJsID8gQ1RSTC5pbmRleE9mKGRjdHJsKSA6XG4gICAgICAgICAgICAgICBlc2xzaCA/IFNMU0hbZXNsc2hdIDogdW5kZWZpbmVkO1xuICAgIFxuICAgIHZhciBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcblxuICAgIC8vIEVzY2FwZSBzcGVjaWFsIHJlZ2V4IGNoYXJhY3RlcnMuXG4gICAgaWYgKC9bXFxbXFxde31cXF4kLnw/KisoKV0vLnRlc3QoYykpIHtcbiAgICAgIGMgPSAnXFxcXCcgKyBjO1xuICAgIH1cblxuICAgIHJldHVybiBjO1xuICB9KTtcblxuICByZXR1cm4gc3RyO1xufTtcblxuXG4vKipcbiAqIHR1cm5zIGNsYXNzIGludG8gdG9rZW5zXG4gKiByZWFkcyBzdHIgdW50aWwgaXQgZW5jb3VudGVycyBhIF0gbm90IHByZWNlZWRlZCBieSBhIFxcXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHBhcmFtIHtTdHJpbmd9IHJlZ2V4cFN0clxuICogQHJldHVybiB7QXJyYXkuPEFycmF5LjxPYmplY3Q+LCBOdW1iZXI+fVxuICovXG5leHBvcnRzLnRva2VuaXplQ2xhc3MgPSBmdW5jdGlvbihzdHIsIHJlZ2V4cFN0cikge1xuICB2YXIgdG9rZW5zID0gW11cbiAgICAsIHJlZ2V4cCA9IC9cXFxcKD86KHcpfChkKXwocyl8KFcpfChEKXwoUykpfCgoPzooPzpcXFxcKSguKXwoW15cXF1cXFxcXSkpLSg/OlxcXFwpPyhbXlxcXV0pKXwoXFxdKXwoPzpcXFxcKT8oLikvZ1xuICAgICwgcnMsIGNcbiAgICA7XG5cblxuICB3aGlsZSAoKHJzID0gcmVnZXhwLmV4ZWMoc3RyKSkgIT0gbnVsbCkge1xuICAgIGlmIChyc1sxXSkge1xuICAgICAgdG9rZW5zLnB1c2goc2V0cy53b3JkcygpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbMl0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMuaW50cygpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbM10pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMud2hpdGVzcGFjZSgpKTtcblxuICAgIH0gZWxzZSBpZiAocnNbNF0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHNldHMubm90V29yZHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzVdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLm5vdEludHMoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzZdKSB7XG4gICAgICB0b2tlbnMucHVzaChzZXRzLm5vdFdoaXRlc3BhY2UoKSk7XG5cbiAgICB9IGVsc2UgaWYgKHJzWzddKSB7XG4gICAgICB0b2tlbnMucHVzaCh7XG4gICAgICAgICAgdHlwZTogdHlwZXMuUkFOR0VcbiAgICAgICAgLCBmcm9tOiAocnNbOF0gfHwgcnNbOV0pLmNoYXJDb2RlQXQoMClcbiAgICAgICAgLCAgIHRvOiByc1sxMF0uY2hhckNvZGVBdCgwKVxuICAgICAgfSk7XG5cbiAgICB9IGVsc2UgaWYgKGMgPSByc1sxMl0pIHtcbiAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiB0eXBlcy5DSEFSXG4gICAgICAgICwgdmFsdWU6IGMuY2hhckNvZGVBdCgwKVxuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt0b2tlbnMsIHJlZ2V4cC5sYXN0SW5kZXhdO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydHMuZXJyb3IocmVnZXhwU3RyLCAnVW50ZXJtaW5hdGVkIGNoYXJhY3RlciBjbGFzcycpO1xufTtcblxuXG4vKipcbiAqIFNob3J0Y3V0IHRvIHRocm93IGVycm9ycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcmVnZXhwXG4gKiBAcGFyYW0ge1N0cmluZ30gbXNnXG4gKi9cbmV4cG9ydHMuZXJyb3IgPSBmdW5jdGlvbihyZWdleHAsIG1zZykge1xuICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ0ludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiAvJyArIHJlZ2V4cCArICcvOiAnICsgbXNnKTtcbn07XG4iLCIvKiEgTmF0aXZlIFByb21pc2UgT25seVxuICAgIHYwLjcuOC1hIChjKSBLeWxlIFNpbXBzb25cbiAgICBNSVQgTGljZW5zZTogaHR0cDovL2dldGlmeS5taXQtbGljZW5zZS5vcmdcbiovXG4hZnVuY3Rpb24odCxuLGUpe25bdF09blt0XXx8ZSgpLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPW5bdF06XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoZnVuY3Rpb24oKXtyZXR1cm4gblt0XX0pfShcIlByb21pc2VcIixcInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDp0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gdCh0LG4pe2wuYWRkKHQsbiksaHx8KGg9eShsLmRyYWluKSl9ZnVuY3Rpb24gbih0KXt2YXIgbixlPXR5cGVvZiB0O3JldHVybiBudWxsPT10fHxcIm9iamVjdFwiIT1lJiZcImZ1bmN0aW9uXCIhPWV8fChuPXQudGhlbiksXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOiExfWZ1bmN0aW9uIGUoKXtmb3IodmFyIHQ9MDt0PHRoaXMuY2hhaW4ubGVuZ3RoO3QrKylvKHRoaXMsMT09PXRoaXMuc3RhdGU/dGhpcy5jaGFpblt0XS5zdWNjZXNzOnRoaXMuY2hhaW5bdF0uZmFpbHVyZSx0aGlzLmNoYWluW3RdKTt0aGlzLmNoYWluLmxlbmd0aD0wfWZ1bmN0aW9uIG8odCxlLG8pe3ZhciByLGk7dHJ5e2U9PT0hMT9vLnJlamVjdCh0Lm1zZyk6KHI9ZT09PSEwP3QubXNnOmUuY2FsbCh2b2lkIDAsdC5tc2cpLHI9PT1vLnByb21pc2U/by5yZWplY3QoVHlwZUVycm9yKFwiUHJvbWlzZS1jaGFpbiBjeWNsZVwiKSk6KGk9bihyKSk/aS5jYWxsKHIsby5yZXNvbHZlLG8ucmVqZWN0KTpvLnJlc29sdmUocikpfWNhdGNoKGMpe28ucmVqZWN0KGMpfX1mdW5jdGlvbiByKG8pe3ZhciBjLHUsYT10aGlzO2lmKCFhLnRyaWdnZXJlZCl7YS50cmlnZ2VyZWQ9ITAsYS5kZWYmJihhPWEuZGVmKTt0cnl7KGM9bihvKSk/KHU9bmV3IGYoYSksYy5jYWxsKG8sZnVuY3Rpb24oKXtyLmFwcGx5KHUsYXJndW1lbnRzKX0sZnVuY3Rpb24oKXtpLmFwcGx5KHUsYXJndW1lbnRzKX0pKTooYS5tc2c9byxhLnN0YXRlPTEsYS5jaGFpbi5sZW5ndGg+MCYmdChlLGEpKX1jYXRjaChzKXtpLmNhbGwodXx8bmV3IGYoYSkscyl9fX1mdW5jdGlvbiBpKG4pe3ZhciBvPXRoaXM7by50cmlnZ2VyZWR8fChvLnRyaWdnZXJlZD0hMCxvLmRlZiYmKG89by5kZWYpLG8ubXNnPW4sby5zdGF0ZT0yLG8uY2hhaW4ubGVuZ3RoPjAmJnQoZSxvKSl9ZnVuY3Rpb24gYyh0LG4sZSxvKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKykhZnVuY3Rpb24ocil7dC5yZXNvbHZlKG5bcl0pLnRoZW4oZnVuY3Rpb24odCl7ZShyLHQpfSxvKX0ocil9ZnVuY3Rpb24gZih0KXt0aGlzLmRlZj10LHRoaXMudHJpZ2dlcmVkPSExfWZ1bmN0aW9uIHUodCl7dGhpcy5wcm9taXNlPXQsdGhpcy5zdGF0ZT0wLHRoaXMudHJpZ2dlcmVkPSExLHRoaXMuY2hhaW49W10sdGhpcy5tc2c9dm9pZCAwfWZ1bmN0aW9uIGEobil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtpZigwIT09dGhpcy5fX05QT19fKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIHByb21pc2VcIik7dGhpcy5fX05QT19fPTE7dmFyIG89bmV3IHUodGhpcyk7dGhpcy50aGVuPWZ1bmN0aW9uKG4scil7dmFyIGk9e3N1Y2Nlc3M6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOiEwLGZhaWx1cmU6XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOiExfTtyZXR1cm4gaS5wcm9taXNlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdHx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtpLnJlc29sdmU9dCxpLnJlamVjdD1ufSksby5jaGFpbi5wdXNoKGkpLDAhPT1vLnN0YXRlJiZ0KGUsbyksaS5wcm9taXNlfSx0aGlzW1wiY2F0Y2hcIl09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9O3RyeXtuLmNhbGwodm9pZCAwLGZ1bmN0aW9uKHQpe3IuY2FsbChvLHQpfSxmdW5jdGlvbih0KXtpLmNhbGwobyx0KX0pfWNhdGNoKGMpe2kuY2FsbChvLGMpfX12YXIgcyxoLGwscD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHk9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNldEltbWVkaWF0ZT9mdW5jdGlvbih0KXtyZXR1cm4gc2V0SW1tZWRpYXRlKHQpfTpzZXRUaW1lb3V0O3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sXCJ4XCIse30pLHM9ZnVuY3Rpb24odCxuLGUsbyl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4se3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOm8hPT0hMX0pfX1jYXRjaChkKXtzPWZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gdFtuXT1lLHR9fWw9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsbil7dGhpcy5mbj10LHRoaXMuc2VsZj1uLHRoaXMubmV4dD12b2lkIDB9dmFyIG4sZSxvO3JldHVybnthZGQ6ZnVuY3Rpb24ocixpKXtvPW5ldyB0KHIsaSksZT9lLm5leHQ9bzpuPW8sZT1vLG89dm9pZCAwfSxkcmFpbjpmdW5jdGlvbigpe3ZhciB0PW47Zm9yKG49ZT1oPXZvaWQgMDt0Oyl0LmZuLmNhbGwodC5zZWxmKSx0PXQubmV4dH19fSgpO3ZhciBnPXMoe30sXCJjb25zdHJ1Y3RvclwiLGEsITEpO3JldHVybiBhLnByb3RvdHlwZT1nLHMoZyxcIl9fTlBPX19cIiwwLCExKSxzKGEsXCJyZXNvbHZlXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gdCYmXCJvYmplY3RcIj09dHlwZW9mIHQmJjE9PT10Ll9fTlBPX18/dDpuZXcgbihmdW5jdGlvbihuLGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG58fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKFwiTm90IGEgZnVuY3Rpb25cIik7bih0KX0pfSkscyhhLFwicmVqZWN0XCIsZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB0aGlzKGZ1bmN0aW9uKG4sZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtlKHQpfSl9KSxzKGEsXCJhbGxcIixmdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVyblwiW29iamVjdCBBcnJheV1cIiE9cC5jYWxsKHQpP24ucmVqZWN0KFR5cGVFcnJvcihcIk5vdCBhbiBhcnJheVwiKSk6MD09PXQubGVuZ3RoP24ucmVzb2x2ZShbXSk6bmV3IG4oZnVuY3Rpb24oZSxvKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBvKXRocm93IFR5cGVFcnJvcihcIk5vdCBhIGZ1bmN0aW9uXCIpO3ZhciByPXQubGVuZ3RoLGk9QXJyYXkociksZj0wO2Mobix0LGZ1bmN0aW9uKHQsbil7aVt0XT1uLCsrZj09PXImJmUoaSl9LG8pfSl9KSxzKGEsXCJyYWNlXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm5cIltvYmplY3QgQXJyYXldXCIhPXAuY2FsbCh0KT9uLnJlamVjdChUeXBlRXJyb3IoXCJOb3QgYW4gYXJyYXlcIikpOm5ldyBuKGZ1bmN0aW9uKGUsbyl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZXx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbyl0aHJvdyBUeXBlRXJyb3IoXCJOb3QgYSBmdW5jdGlvblwiKTtjKG4sdCxmdW5jdGlvbih0LG4pe2Uobil9LG8pfSl9KSxhfSk7XG4iLCIvKiFcbiAqIENvcHlyaWdodCAoYykgMjAxNSBDaHJpcyBPJ0hhcmEgPGNvaGFyYTg3QGdtYWlsLmNvbT5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiAqIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuICogXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbiAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0b1xuICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlXG4gKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuICogT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4oZnVuY3Rpb24gKG5hbWUsIGRlZmluaXRpb24pIHtcbiAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gZGVmaW5pdGlvbigpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgZGVmaW5lKGRlZmluaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXNbbmFtZV0gPSBkZWZpbml0aW9uKCk7XG4gICAgfVxufSkoJ3ZhbGlkYXRvcicsIGZ1bmN0aW9uICh2YWxpZGF0b3IpIHtcblxuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhbGlkYXRvciA9IHsgdmVyc2lvbjogJzMuNDAuMCcgfTtcblxuICAgIHZhciBlbWFpbFVzZXIgPSAvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXSl8KFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGQtXFx4N2ZdKSkpKigoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oXFx4MjIpKSkkL2k7XG5cbiAgICB2YXIgZW1haWxVc2VyVXRmOCA9IC9eKCgoW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKyhcXC4oW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKykqKXwoKFxceDIyKSgoKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KChbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHg3Zl18XFx4MjF8W1xceDIzLVxceDViXXxbXFx4NWQtXFx4N2VdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoXFxcXChbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGQtXFx4N2ZdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpKSooKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KFxceDIyKSkpJC9pO1xuXG4gICAgdmFyIGRpc3BsYXlOYW1lID0gL14oPzpbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XFwuXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKD86W2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9flxcLl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl18XFxzKSo8KC4rKT4kL2k7XG5cbiAgICB2YXIgY3JlZGl0Q2FyZCA9IC9eKD86NFswLTldezEyfSg/OlswLTldezN9KT98NVsxLTVdWzAtOV17MTR9fDYoPzowMTF8NVswLTldWzAtOV0pWzAtOV17MTJ9fDNbNDddWzAtOV17MTN9fDMoPzowWzAtNV18WzY4XVswLTldKVswLTldezExfXwoPzoyMTMxfDE4MDB8MzVcXGR7M30pXFxkezExfSkkLztcblxuICAgIHZhciBpc2luID0gL15bQS1aXXsyfVswLTlBLVpdezl9WzAtOV0kLztcblxuICAgIHZhciBpc2JuMTBNYXliZSA9IC9eKD86WzAtOV17OX1YfFswLTldezEwfSkkL1xuICAgICAgLCBpc2JuMTNNYXliZSA9IC9eKD86WzAtOV17MTN9KSQvO1xuXG4gICAgdmFyIGlwdjRNYXliZSA9IC9eKFxcZCspXFwuKFxcZCspXFwuKFxcZCspXFwuKFxcZCspJC9cbiAgICAgICwgaXB2NkJsb2NrID0gL15bMC05QS1GXXsxLDR9JC9pO1xuXG4gICAgdmFyIHV1aWQgPSB7XG4gICAgICAgICczJzogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS0zWzAtOUEtRl17M30tWzAtOUEtRl17NH0tWzAtOUEtRl17MTJ9JC9pXG4gICAgICAsICc0JzogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS00WzAtOUEtRl17M30tWzg5QUJdWzAtOUEtRl17M30tWzAtOUEtRl17MTJ9JC9pXG4gICAgICAsICc1JzogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS01WzAtOUEtRl17M30tWzg5QUJdWzAtOUEtRl17M30tWzAtOUEtRl17MTJ9JC9pXG4gICAgICAsIGFsbDogL15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS1bMC05QS1GXXs0fS1bMC05QS1GXXs0fS1bMC05QS1GXXsxMn0kL2lcbiAgICB9O1xuXG4gICAgdmFyIGFscGhhID0gL15bQS1aXSskL2lcbiAgICAgICwgYWxwaGFudW1lcmljID0gL15bMC05QS1aXSskL2lcbiAgICAgICwgbnVtZXJpYyA9IC9eWy0rXT9bMC05XSskL1xuICAgICAgLCBpbnQgPSAvXig/OlstK10/KD86MHxbMS05XVswLTldKikpJC9cbiAgICAgICwgZmxvYXQgPSAvXig/OlstK10/KD86WzAtOV0rKSk/KD86XFwuWzAtOV0qKT8oPzpbZUVdW1xcK1xcLV0/KD86WzAtOV0rKSk/JC9cbiAgICAgICwgaGV4YWRlY2ltYWwgPSAvXlswLTlBLUZdKyQvaVxuICAgICAgLCBoZXhjb2xvciA9IC9eIz8oWzAtOUEtRl17M318WzAtOUEtRl17Nn0pJC9pO1xuXG4gICAgdmFyIGFzY2lpID0gL15bXFx4MDAtXFx4N0ZdKyQvXG4gICAgICAsIG11bHRpYnl0ZSA9IC9bXlxceDAwLVxceDdGXS9cbiAgICAgICwgZnVsbFdpZHRoID0gL1teXFx1MDAyMC1cXHUwMDdFXFx1RkY2MS1cXHVGRjlGXFx1RkZBMC1cXHVGRkRDXFx1RkZFOC1cXHVGRkVFMC05YS16QS1aXS9cbiAgICAgICwgaGFsZldpZHRoID0gL1tcXHUwMDIwLVxcdTAwN0VcXHVGRjYxLVxcdUZGOUZcXHVGRkEwLVxcdUZGRENcXHVGRkU4LVxcdUZGRUUwLTlhLXpBLVpdLztcblxuICAgIHZhciBzdXJyb2dhdGVQYWlyID0gL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vO1xuXG4gICAgdmFyIGJhc2U2NCA9IC9eKD86W0EtWjAtOStcXC9dezR9KSooPzpbQS1aMC05K1xcL117Mn09PXxbQS1aMC05K1xcL117M309fFtBLVowLTkrXFwvXXs0fSkkL2k7XG5cbiAgICB2YXIgcGhvbmVzID0ge1xuICAgICAgJ3poLUNOJzogL14oXFwrPzA/ODZcXC0/KT8xWzM0NTc4OV1cXGR7OX0kLyxcbiAgICAgICdlbi1aQSc6IC9eKFxcKz8yN3wwKVxcZHs5fSQvLFxuICAgICAgJ2VuLUFVJzogL14oXFwrPzYxfDApNFxcZHs4fSQvLFxuICAgICAgJ2VuLUhLJzogL14oXFwrPzg1MlxcLT8pP1s1NjldXFxkezN9XFwtP1xcZHs0fSQvLFxuICAgICAgJ2ZyLUZSJzogL14oXFwrPzMzfDApWzY3XVxcZHs4fSQvLFxuICAgICAgJ3B0LVBUJzogL14oXFwrMzUxKT85WzEyMzZdXFxkezd9JC8sXG4gICAgICAnZWwtR1InOiAvXihcXCszMCk/KCgyXFxkezl9KXwoNjlcXGR7OH0pKSQvLFxuICAgICAgJ2VuLUdCJzogL14oXFwrPzQ0fDApN1xcZHs5fSQvLFxuICAgICAgJ2VuLVVTJzogL14oXFwrPzEpP1syLTldXFxkezJ9WzItOV0oPyExMSlcXGR7Nn0kLyxcbiAgICAgICdlbi1aTSc6IC9eKFxcKzI2KT8wOVs1NjddXFxkezd9JC9cbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmV4dGVuZCA9IGZ1bmN0aW9uIChuYW1lLCBmbikge1xuICAgICAgICB2YWxpZGF0b3JbbmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBhcmdzWzBdID0gdmFsaWRhdG9yLnRvU3RyaW5nKGFyZ3NbMF0pO1xuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHZhbGlkYXRvciwgYXJncyk7XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIC8vUmlnaHQgYmVmb3JlIGV4cG9ydGluZyB0aGUgdmFsaWRhdG9yIG9iamVjdCwgcGFzcyBlYWNoIG9mIHRoZSBidWlsdGluc1xuICAgIC8vdGhyb3VnaCBleHRlbmQoKSBzbyB0aGF0IHRoZWlyIGZpcnN0IGFyZ3VtZW50IGlzIGNvZXJjZWQgdG8gYSBzdHJpbmdcbiAgICB2YWxpZGF0b3IuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yICh2YXIgbmFtZSBpbiB2YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsaWRhdG9yW25hbWVdICE9PSAnZnVuY3Rpb24nIHx8IG5hbWUgPT09ICd0b1N0cmluZycgfHxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSA9PT0gJ3RvRGF0ZScgfHwgbmFtZSA9PT0gJ2V4dGVuZCcgfHwgbmFtZSA9PT0gJ2luaXQnKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWxpZGF0b3IuZXh0ZW5kKG5hbWUsIHZhbGlkYXRvcltuYW1lXSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRvU3RyaW5nID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnICYmIGlucHV0ICE9PSBudWxsICYmIGlucHV0LnRvU3RyaW5nKSB7XG4gICAgICAgICAgICBpbnB1dCA9IGlucHV0LnRvU3RyaW5nKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT09IG51bGwgfHwgdHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCAoaXNOYU4oaW5wdXQpICYmICFpbnB1dC5sZW5ndGgpKSB7XG4gICAgICAgICAgICBpbnB1dCA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlucHV0ICs9ICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnRvRGF0ZSA9IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZGF0ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICAgIH1cbiAgICAgICAgZGF0ZSA9IERhdGUucGFyc2UoZGF0ZSk7XG4gICAgICAgIHJldHVybiAhaXNOYU4oZGF0ZSkgPyBuZXcgRGF0ZShkYXRlKSA6IG51bGw7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50b0Zsb2F0ID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IudG9JbnQgPSBmdW5jdGlvbiAoc3RyLCByYWRpeCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoc3RyLCByYWRpeCB8fCAxMCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50b0Jvb2xlYW4gPSBmdW5jdGlvbiAoc3RyLCBzdHJpY3QpIHtcbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ciA9PT0gJzEnIHx8IHN0ciA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIgIT09ICcwJyAmJiBzdHIgIT09ICdmYWxzZScgJiYgc3RyICE9PSAnJztcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmVxdWFscyA9IGZ1bmN0aW9uIChzdHIsIGNvbXBhcmlzb24pIHtcbiAgICAgICAgcmV0dXJuIHN0ciA9PT0gdmFsaWRhdG9yLnRvU3RyaW5nKGNvbXBhcmlzb24pO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuY29udGFpbnMgPSBmdW5jdGlvbiAoc3RyLCBlbGVtKSB7XG4gICAgICAgIHJldHVybiBzdHIuaW5kZXhPZih2YWxpZGF0b3IudG9TdHJpbmcoZWxlbSkpID49IDA7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5tYXRjaGVzID0gZnVuY3Rpb24gKHN0ciwgcGF0dGVybiwgbW9kaWZpZXJzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocGF0dGVybikgIT09ICdbb2JqZWN0IFJlZ0V4cF0nKSB7XG4gICAgICAgICAgICBwYXR0ZXJuID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCBtb2RpZmllcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRfZW1haWxfb3B0aW9ucyA9IHtcbiAgICAgICAgYWxsb3dfZGlzcGxheV9uYW1lOiBmYWxzZSxcbiAgICAgICAgYWxsb3dfdXRmOF9sb2NhbF9wYXJ0OiB0cnVlLFxuICAgICAgICByZXF1aXJlX3RsZDogdHJ1ZVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNFbWFpbCA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfZW1haWxfb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfZGlzcGxheV9uYW1lKSB7XG4gICAgICAgICAgICB2YXIgZGlzcGxheV9lbWFpbCA9IHN0ci5tYXRjaChkaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICBpZiAoZGlzcGxheV9lbWFpbCkge1xuICAgICAgICAgICAgICAgIHN0ciA9IGRpc3BsYXlfZW1haWxbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoL1xccy8udGVzdChzdHIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoJ0AnKVxuICAgICAgICAgICwgZG9tYWluID0gcGFydHMucG9wKClcbiAgICAgICAgICAsIHVzZXIgPSBwYXJ0cy5qb2luKCdAJyk7XG5cbiAgICAgICAgaWYgKCF2YWxpZGF0b3IuaXNGUUROKGRvbWFpbiwge3JlcXVpcmVfdGxkOiBvcHRpb25zLnJlcXVpcmVfdGxkfSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zLmFsbG93X3V0ZjhfbG9jYWxfcGFydCA/XG4gICAgICAgICAgICBlbWFpbFVzZXJVdGY4LnRlc3QodXNlcikgOlxuICAgICAgICAgICAgZW1haWxVc2VyLnRlc3QodXNlcik7XG4gICAgfTtcblxuICAgIHZhciBkZWZhdWx0X3VybF9vcHRpb25zID0ge1xuICAgICAgICBwcm90b2NvbHM6IFsgJ2h0dHAnLCAnaHR0cHMnLCAnZnRwJyBdXG4gICAgICAsIHJlcXVpcmVfdGxkOiB0cnVlXG4gICAgICAsIHJlcXVpcmVfcHJvdG9jb2w6IGZhbHNlXG4gICAgICAsIGFsbG93X3VuZGVyc2NvcmVzOiBmYWxzZVxuICAgICAgLCBhbGxvd190cmFpbGluZ19kb3Q6IGZhbHNlXG4gICAgICAsIGFsbG93X3Byb3RvY29sX3JlbGF0aXZlX3VybHM6IGZhbHNlXG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc1VSTCA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCF1cmwgfHwgdXJsLmxlbmd0aCA+PSAyMDgzIHx8IC9cXHMvLnRlc3QodXJsKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1cmwuaW5kZXhPZignbWFpbHRvOicpID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfdXJsX29wdGlvbnMpO1xuICAgICAgICB2YXIgcHJvdG9jb2wsIGF1dGgsIGhvc3QsIGhvc3RuYW1lLCBwb3J0LFxuICAgICAgICAgICAgcG9ydF9zdHIsIHNwbGl0O1xuICAgICAgICBzcGxpdCA9IHVybC5zcGxpdCgnOi8vJyk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBwcm90b2NvbCA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wcm90b2NvbHMuaW5kZXhPZihwcm90b2NvbCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMucmVxdWlyZV9wcm90b2NvbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9ICBlbHNlIGlmIChvcHRpb25zLmFsbG93X3Byb3RvY29sX3JlbGF0aXZlX3VybHMgJiYgdXJsLnN1YnN0cigwLCAyKSA9PT0gJy8vJykge1xuICAgICAgICAgICAgc3BsaXRbMF0gPSB1cmwuc3Vic3RyKDIpO1xuICAgICAgICB9XG4gICAgICAgIHVybCA9IHNwbGl0LmpvaW4oJzovLycpO1xuICAgICAgICBzcGxpdCA9IHVybC5zcGxpdCgnIycpO1xuICAgICAgICB1cmwgPSBzcGxpdC5zaGlmdCgpO1xuXG4gICAgICAgIHNwbGl0ID0gdXJsLnNwbGl0KCc/Jyk7XG4gICAgICAgIHVybCA9IHNwbGl0LnNoaWZ0KCk7XG5cbiAgICAgICAgc3BsaXQgPSB1cmwuc3BsaXQoJy8nKTtcbiAgICAgICAgdXJsID0gc3BsaXQuc2hpZnQoKTtcbiAgICAgICAgc3BsaXQgPSB1cmwuc3BsaXQoJ0AnKTtcbiAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGF1dGggPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICAgICAgaWYgKGF1dGguaW5kZXhPZignOicpID49IDAgJiYgYXV0aC5zcGxpdCgnOicpLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaG9zdG5hbWUgPSBzcGxpdC5qb2luKCdAJyk7XG4gICAgICAgIHNwbGl0ID0gaG9zdG5hbWUuc3BsaXQoJzonKTtcbiAgICAgICAgaG9zdCA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBvcnRfc3RyID0gc3BsaXQuam9pbignOicpO1xuICAgICAgICAgICAgcG9ydCA9IHBhcnNlSW50KHBvcnRfc3RyLCAxMCk7XG4gICAgICAgICAgICBpZiAoIS9eWzAtOV0rJC8udGVzdChwb3J0X3N0cikgfHwgcG9ydCA8PSAwIHx8IHBvcnQgPiA2NTUzNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRvci5pc0lQKGhvc3QpICYmICF2YWxpZGF0b3IuaXNGUUROKGhvc3QsIG9wdGlvbnMpICYmXG4gICAgICAgICAgICAgICAgaG9zdCAhPT0gJ2xvY2FsaG9zdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5ob3N0X3doaXRlbGlzdCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnMuaG9zdF93aGl0ZWxpc3QuaW5kZXhPZihob3N0KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5ob3N0X2JsYWNrbGlzdCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnMuaG9zdF9ibGFja2xpc3QuaW5kZXhPZihob3N0KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSVAgPSBmdW5jdGlvbiAoc3RyLCB2ZXJzaW9uKSB7XG4gICAgICAgIHZlcnNpb24gPSB2YWxpZGF0b3IudG9TdHJpbmcodmVyc2lvbik7XG4gICAgICAgIGlmICghdmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0lQKHN0ciwgNCkgfHwgdmFsaWRhdG9yLmlzSVAoc3RyLCA2KTtcbiAgICAgICAgfSBlbHNlIGlmICh2ZXJzaW9uID09PSAnNCcpIHtcbiAgICAgICAgICAgIGlmICghaXB2NE1heWJlLnRlc3Qoc3RyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgnLicpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYSAtIGI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBwYXJ0c1szXSA8PSAyNTU7XG4gICAgICAgIH0gZWxzZSBpZiAodmVyc2lvbiA9PT0gJzYnKSB7XG4gICAgICAgICAgICB2YXIgYmxvY2tzID0gc3RyLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICB2YXIgZm91bmRPbWlzc2lvbkJsb2NrID0gZmFsc2U7IC8vIG1hcmtlciB0byBpbmRpY2F0ZSA6OlxuXG4gICAgICAgICAgICBpZiAoYmxvY2tzLmxlbmd0aCA+IDgpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBpbml0aWFsIG9yIGZpbmFsIDo6XG4gICAgICAgICAgICBpZiAoc3RyID09PSAnOjonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0ci5zdWJzdHIoMCwgMikgPT09ICc6OicpIHtcbiAgICAgICAgICAgICAgICBibG9ja3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICBibG9ja3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICBmb3VuZE9taXNzaW9uQmxvY2sgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHIuc3Vic3RyKHN0ci5sZW5ndGggLSAyKSA9PT0gJzo6Jykge1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wb3AoKTtcbiAgICAgICAgICAgICAgICBibG9ja3MucG9wKCk7XG4gICAgICAgICAgICAgICAgZm91bmRPbWlzc2lvbkJsb2NrID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBibG9ja3MubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICAvLyB0ZXN0IGZvciBhIDo6IHdoaWNoIGNhbiBub3QgYmUgYXQgdGhlIHN0cmluZyBzdGFydC9lbmRcbiAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aG9zZSBjYXNlcyBoYXZlIGJlZW4gaGFuZGxlZCBhYm92ZVxuICAgICAgICAgICAgICAgIGlmIChibG9ja3NbaV0gPT09ICcnICYmIGkgPiAwICYmIGkgPCBibG9ja3MubGVuZ3RoIC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZE9taXNzaW9uQmxvY2spXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG11bHRpcGxlIDo6IGluIGFkZHJlc3NcbiAgICAgICAgICAgICAgICAgICAgZm91bmRPbWlzc2lvbkJsb2NrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpcHY2QmxvY2sudGVzdChibG9ja3NbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3VuZE9taXNzaW9uQmxvY2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2tzLmxlbmd0aCA+PSAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2tzLmxlbmd0aCA9PT0gODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIHZhciBkZWZhdWx0X2ZxZG5fb3B0aW9ucyA9IHtcbiAgICAgICAgcmVxdWlyZV90bGQ6IHRydWVcbiAgICAgICwgYWxsb3dfdW5kZXJzY29yZXM6IGZhbHNlXG4gICAgICAsIGFsbG93X3RyYWlsaW5nX2RvdDogZmFsc2VcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRlFETiA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfZnFkbl9vcHRpb25zKTtcblxuICAgICAgICAvKiBSZW1vdmUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIGRvdCBiZWZvcmUgY2hlY2tpbmcgdmFsaWRpdHkgKi9cbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfdHJhaWxpbmdfZG90ICYmIHN0cltzdHIubGVuZ3RoIC0gMV0gPT09ICcuJykge1xuICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChvcHRpb25zLnJlcXVpcmVfdGxkKSB7XG4gICAgICAgICAgICB2YXIgdGxkID0gcGFydHMucG9wKCk7XG4gICAgICAgICAgICBpZiAoIXBhcnRzLmxlbmd0aCB8fCAhL14oW2EtelxcdTAwYTEtXFx1ZmZmZl17Mix9fHhuW2EtejAtOS1dezIsfSkkL2kudGVzdCh0bGQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIHBhcnQsIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhcnQgPSBwYXJ0c1tpXTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFsbG93X3VuZGVyc2NvcmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnQuaW5kZXhPZignX18nKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFydCA9IHBhcnQucmVwbGFjZSgvXy9nLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIS9eW2EtelxcdTAwYTEtXFx1ZmZmZjAtOS1dKyQvaS50ZXN0KHBhcnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnRbMF0gPT09ICctJyB8fCBwYXJ0W3BhcnQubGVuZ3RoIC0gMV0gPT09ICctJyB8fFxuICAgICAgICAgICAgICAgICAgICBwYXJ0LmluZGV4T2YoJy0tLScpID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0Jvb2xlYW4gPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgICAgcmV0dXJuIChbJ3RydWUnLCAnZmFsc2UnLCAnMScsICcwJ10uaW5kZXhPZihzdHIpID49IDApO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNBbHBoYSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGFscGhhLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQWxwaGFudW1lcmljID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gYWxwaGFudW1lcmljLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzTnVtZXJpYyA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIG51bWVyaWMudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNIZXhhZGVjaW1hbCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGhleGFkZWNpbWFsLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSGV4Q29sb3IgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBoZXhjb2xvci50ZXN0KHN0cik7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0xvd2VyY2FzZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN0ciA9PT0gc3RyLnRvTG93ZXJDYXNlKCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc1VwcGVyY2FzZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN0ciA9PT0gc3RyLnRvVXBwZXJDYXNlKCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0ludCA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIHJldHVybiBpbnQudGVzdChzdHIpICYmICghb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnbWluJykgfHwgc3RyID49IG9wdGlvbnMubWluKSAmJiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ21heCcpIHx8IHN0ciA8PSBvcHRpb25zLm1heCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0Zsb2F0ID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHN0ciAhPT0gJycgJiYgZmxvYXQudGVzdChzdHIpICYmICghb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnbWluJykgfHwgc3RyID49IG9wdGlvbnMubWluKSAmJiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ21heCcpIHx8IHN0ciA8PSBvcHRpb25zLm1heCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0RpdmlzaWJsZUJ5ID0gZnVuY3Rpb24gKHN0ciwgbnVtKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IudG9GbG9hdChzdHIpICUgdmFsaWRhdG9yLnRvSW50KG51bSkgPT09IDA7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc051bGwgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIubGVuZ3RoID09PSAwO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNMZW5ndGggPSBmdW5jdGlvbiAoc3RyLCBtaW4sIG1heCkge1xuICAgICAgICB2YXIgc3Vycm9nYXRlUGFpcnMgPSBzdHIubWF0Y2goL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vZykgfHwgW107XG4gICAgICAgIHZhciBsZW4gPSBzdHIubGVuZ3RoIC0gc3Vycm9nYXRlUGFpcnMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gbGVuID49IG1pbiAmJiAodHlwZW9mIG1heCA9PT0gJ3VuZGVmaW5lZCcgfHwgbGVuIDw9IG1heCk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0J5dGVMZW5ndGggPSBmdW5jdGlvbiAoc3RyLCBtaW4sIG1heCkge1xuICAgICAgICByZXR1cm4gc3RyLmxlbmd0aCA+PSBtaW4gJiYgKHR5cGVvZiBtYXggPT09ICd1bmRlZmluZWQnIHx8IHN0ci5sZW5ndGggPD0gbWF4KTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzVVVJRCA9IGZ1bmN0aW9uIChzdHIsIHZlcnNpb24pIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSB1dWlkW3ZlcnNpb24gPyB2ZXJzaW9uIDogJ2FsbCddO1xuICAgICAgICByZXR1cm4gcGF0dGVybiAmJiBwYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRGF0ZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuICFpc05hTihEYXRlLnBhcnNlKHN0cikpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNBZnRlciA9IGZ1bmN0aW9uIChzdHIsIGRhdGUpIHtcbiAgICAgICAgdmFyIGNvbXBhcmlzb24gPSB2YWxpZGF0b3IudG9EYXRlKGRhdGUgfHwgbmV3IERhdGUoKSlcbiAgICAgICAgICAsIG9yaWdpbmFsID0gdmFsaWRhdG9yLnRvRGF0ZShzdHIpO1xuICAgICAgICByZXR1cm4gISEob3JpZ2luYWwgJiYgY29tcGFyaXNvbiAmJiBvcmlnaW5hbCA+IGNvbXBhcmlzb24pO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNCZWZvcmUgPSBmdW5jdGlvbiAoc3RyLCBkYXRlKSB7XG4gICAgICAgIHZhciBjb21wYXJpc29uID0gdmFsaWRhdG9yLnRvRGF0ZShkYXRlIHx8IG5ldyBEYXRlKCkpXG4gICAgICAgICAgLCBvcmlnaW5hbCA9IHZhbGlkYXRvci50b0RhdGUoc3RyKTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsICYmIGNvbXBhcmlzb24gJiYgb3JpZ2luYWwgPCBjb21wYXJpc29uO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNJbiA9IGZ1bmN0aW9uIChzdHIsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob3B0aW9ucykgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICAgICAgICAgIHZhciBhcnJheSA9IFtdO1xuICAgICAgICAgICAgZm9yIChpIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHZhbGlkYXRvci50b1N0cmluZyhvcHRpb25zW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcnJheS5pbmRleE9mKHN0cikgPj0gMDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmhhc093blByb3BlcnR5KHN0cik7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pbmRleE9mKHN0cikgPj0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0NyZWRpdENhcmQgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHZhciBzYW5pdGl6ZWQgPSBzdHIucmVwbGFjZSgvW14wLTldKy9nLCAnJyk7XG4gICAgICAgIGlmICghY3JlZGl0Q2FyZC50ZXN0KHNhbml0aXplZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3VtID0gMCwgZGlnaXQsIHRtcE51bSwgc2hvdWxkRG91YmxlO1xuICAgICAgICBmb3IgKHZhciBpID0gc2FuaXRpemVkLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBkaWdpdCA9IHNhbml0aXplZC5zdWJzdHJpbmcoaSwgKGkgKyAxKSk7XG4gICAgICAgICAgICB0bXBOdW0gPSBwYXJzZUludChkaWdpdCwgMTApO1xuICAgICAgICAgICAgaWYgKHNob3VsZERvdWJsZSkge1xuICAgICAgICAgICAgICAgIHRtcE51bSAqPSAyO1xuICAgICAgICAgICAgICAgIGlmICh0bXBOdW0gPj0gMTApIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9ICgodG1wTnVtICUgMTApICsgMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IHRtcE51bTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaG91bGREb3VibGUgPSAhc2hvdWxkRG91YmxlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhISgoc3VtICUgMTApID09PSAwID8gc2FuaXRpemVkIDogZmFsc2UpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNJU0lOID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIWlzaW4udGVzdChzdHIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2hlY2tzdW1TdHIgPSBzdHIucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24oY2hhcmFjdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY2hhcmFjdGVyLCAzNik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBzdW0gPSAwLCBkaWdpdCwgdG1wTnVtLCBzaG91bGREb3VibGUgPSB0cnVlO1xuICAgICAgICBmb3IgKHZhciBpID0gY2hlY2tzdW1TdHIubGVuZ3RoIC0gMjsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGRpZ2l0ID0gY2hlY2tzdW1TdHIuc3Vic3RyaW5nKGksIChpICsgMSkpO1xuICAgICAgICAgICAgdG1wTnVtID0gcGFyc2VJbnQoZGlnaXQsIDEwKTtcbiAgICAgICAgICAgIGlmIChzaG91bGREb3VibGUpIHtcbiAgICAgICAgICAgICAgICB0bXBOdW0gKj0gMjtcbiAgICAgICAgICAgICAgICBpZiAodG1wTnVtID49IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW0gKyAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSB0bXBOdW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdW0gKz0gdG1wTnVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hvdWxkRG91YmxlID0gIXNob3VsZERvdWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZUludChzdHIuc3Vic3RyKHN0ci5sZW5ndGggLSAxKSwgMTApID09PSAoMTAwMDAgLSBzdW0pICUgMTA7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc0lTQk4gPSBmdW5jdGlvbiAoc3RyLCB2ZXJzaW9uKSB7XG4gICAgICAgIHZlcnNpb24gPSB2YWxpZGF0b3IudG9TdHJpbmcodmVyc2lvbik7XG4gICAgICAgIGlmICghdmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5pc0lTQk4oc3RyLCAxMCkgfHwgdmFsaWRhdG9yLmlzSVNCTihzdHIsIDEzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2FuaXRpemVkID0gc3RyLnJlcGxhY2UoL1tcXHMtXSsvZywgJycpXG4gICAgICAgICAgLCBjaGVja3N1bSA9IDAsIGk7XG4gICAgICAgIGlmICh2ZXJzaW9uID09PSAnMTAnKSB7XG4gICAgICAgICAgICBpZiAoIWlzYm4xME1heWJlLnRlc3Qoc2FuaXRpemVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspIHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bSArPSAoaSArIDEpICogc2FuaXRpemVkLmNoYXJBdChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzYW5pdGl6ZWQuY2hhckF0KDkpID09PSAnWCcpIHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bSArPSAxMCAqIDEwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bSArPSAxMCAqIHNhbml0aXplZC5jaGFyQXQoOSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKGNoZWNrc3VtICUgMTEpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhc2FuaXRpemVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgIGlmICh2ZXJzaW9uID09PSAnMTMnKSB7XG4gICAgICAgICAgICBpZiAoIWlzYm4xM01heWJlLnRlc3Qoc2FuaXRpemVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBmYWN0b3IgPSBbIDEsIDMgXTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gZmFjdG9yW2kgJSAyXSAqIHNhbml0aXplZC5jaGFyQXQoaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2FuaXRpemVkLmNoYXJBdCgxMikgLSAoKDEwIC0gKGNoZWNrc3VtICUgMTApKSAlIDEwKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXNhbml0aXplZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5pc01vYmlsZVBob25lID0gZnVuY3Rpb24oc3RyLCBsb2NhbGUpIHtcbiAgICAgICAgaWYgKGxvY2FsZSBpbiBwaG9uZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBwaG9uZXNbbG9jYWxlXS50ZXN0KHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICB2YXIgZGVmYXVsdF9jdXJyZW5jeV9vcHRpb25zID0ge1xuICAgICAgICBzeW1ib2w6ICckJ1xuICAgICAgLCByZXF1aXJlX3N5bWJvbDogZmFsc2VcbiAgICAgICwgYWxsb3dfc3BhY2VfYWZ0ZXJfc3ltYm9sOiBmYWxzZVxuICAgICAgLCBzeW1ib2xfYWZ0ZXJfZGlnaXRzOiBmYWxzZVxuICAgICAgLCBhbGxvd19uZWdhdGl2ZXM6IHRydWVcbiAgICAgICwgcGFyZW5zX2Zvcl9uZWdhdGl2ZXM6IGZhbHNlXG4gICAgICAsIG5lZ2F0aXZlX3NpZ25fYmVmb3JlX2RpZ2l0czogZmFsc2VcbiAgICAgICwgbmVnYXRpdmVfc2lnbl9hZnRlcl9kaWdpdHM6IGZhbHNlXG4gICAgICAsIGFsbG93X25lZ2F0aXZlX3NpZ25fcGxhY2Vob2xkZXI6IGZhbHNlXG4gICAgICAsIHRob3VzYW5kc19zZXBhcmF0b3I6ICcsJ1xuICAgICAgLCBkZWNpbWFsX3NlcGFyYXRvcjogJy4nXG4gICAgICAsIGFsbG93X3NwYWNlX2FmdGVyX2RpZ2l0czogZmFsc2VcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzQ3VycmVuY3kgPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBtZXJnZShvcHRpb25zLCBkZWZhdWx0X2N1cnJlbmN5X29wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW5jeVJlZ2V4KG9wdGlvbnMpLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSlNPTiA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNNdWx0aWJ5dGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBtdWx0aWJ5dGUudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNBc2NpaSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGFzY2lpLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzRnVsbFdpZHRoID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gZnVsbFdpZHRoLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzSGFsZldpZHRoID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gaGFsZldpZHRoLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzVmFyaWFibGVXaWR0aCA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIGZ1bGxXaWR0aC50ZXN0KHN0cikgJiYgaGFsZldpZHRoLnRlc3Qoc3RyKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmlzU3Vycm9nYXRlUGFpciA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN1cnJvZ2F0ZVBhaXIudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNCYXNlNjQgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBiYXNlNjQudGVzdChzdHIpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuaXNNb25nb0lkID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzSGV4YWRlY2ltYWwoc3RyKSAmJiBzdHIubGVuZ3RoID09PSAyNDtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLmx0cmltID0gZnVuY3Rpb24gKHN0ciwgY2hhcnMpIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSBjaGFycyA/IG5ldyBSZWdFeHAoJ15bJyArIGNoYXJzICsgJ10rJywgJ2cnKSA6IC9eXFxzKy9nO1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UocGF0dGVybiwgJycpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IucnRyaW0gPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICB2YXIgcGF0dGVybiA9IGNoYXJzID8gbmV3IFJlZ0V4cCgnWycgKyBjaGFycyArICddKyQnLCAnZycpIDogL1xccyskL2c7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShwYXR0ZXJuLCAnJyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci50cmltID0gZnVuY3Rpb24gKHN0ciwgY2hhcnMpIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSBjaGFycyA/IG5ldyBSZWdFeHAoJ15bJyArIGNoYXJzICsgJ10rfFsnICsgY2hhcnMgKyAnXSskJywgJ2cnKSA6IC9eXFxzK3xcXHMrJC9nO1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UocGF0dGVybiwgJycpO1xuICAgIH07XG5cbiAgICB2YWxpZGF0b3IuZXNjYXBlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gKHN0ci5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiN4Mjc7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJyYjeDJGOycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxgL2csICcmIzk2OycpKTtcbiAgICB9O1xuXG4gICAgdmFsaWRhdG9yLnN0cmlwTG93ID0gZnVuY3Rpb24gKHN0ciwga2VlcF9uZXdfbGluZXMpIHtcbiAgICAgICAgdmFyIGNoYXJzID0ga2VlcF9uZXdfbGluZXMgPyAnXFxcXHgwMC1cXFxceDA5XFxcXHgwQlxcXFx4MENcXFxceDBFLVxcXFx4MUZcXFxceDdGJyA6ICdcXFxceDAwLVxcXFx4MUZcXFxceDdGJztcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvci5ibGFja2xpc3Qoc3RyLCBjaGFycyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci53aGl0ZWxpc3QgPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cCgnW14nICsgY2hhcnMgKyAnXSsnLCAnZycpLCAnJyk7XG4gICAgfTtcblxuICAgIHZhbGlkYXRvci5ibGFja2xpc3QgPSBmdW5jdGlvbiAoc3RyLCBjaGFycykge1xuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cCgnWycgKyBjaGFycyArICddKycsICdnJyksICcnKTtcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRfbm9ybWFsaXplX2VtYWlsX29wdGlvbnMgPSB7XG4gICAgICAgIGxvd2VyY2FzZTogdHJ1ZVxuICAgIH07XG5cbiAgICB2YWxpZGF0b3Iubm9ybWFsaXplRW1haWwgPSBmdW5jdGlvbiAoZW1haWwsIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG1lcmdlKG9wdGlvbnMsIGRlZmF1bHRfbm9ybWFsaXplX2VtYWlsX29wdGlvbnMpO1xuICAgICAgICBpZiAoIXZhbGlkYXRvci5pc0VtYWlsKGVtYWlsKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwYXJ0cyA9IGVtYWlsLnNwbGl0KCdAJywgMik7XG4gICAgICAgIHBhcnRzWzFdID0gcGFydHNbMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHBhcnRzWzFdID09PSAnZ21haWwuY29tJyB8fCBwYXJ0c1sxXSA9PT0gJ2dvb2dsZW1haWwuY29tJykge1xuICAgICAgICAgICAgcGFydHNbMF0gPSBwYXJ0c1swXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcLi9nLCAnJyk7XG4gICAgICAgICAgICBpZiAocGFydHNbMF1bMF0gPT09ICcrJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNbMF0uc3BsaXQoJysnKVswXTtcbiAgICAgICAgICAgIHBhcnRzWzFdID0gJ2dtYWlsLmNvbSc7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5sb3dlcmNhc2UpIHtcbiAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFydHMuam9pbignQCcpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtZXJnZShvYmosIGRlZmF1bHRzKSB7XG4gICAgICAgIG9iaiA9IG9iaiB8fCB7fTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGRlZmF1bHRzKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIG9ialtrZXldID0gZGVmYXVsdHNba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGN1cnJlbmN5UmVnZXgob3B0aW9ucykge1xuICAgICAgICB2YXIgc3ltYm9sID0gJyhcXFxcJyArIG9wdGlvbnMuc3ltYm9sLnJlcGxhY2UoL1xcLi9nLCAnXFxcXC4nKSArICcpJyArIChvcHRpb25zLnJlcXVpcmVfc3ltYm9sID8gJycgOiAnPycpXG4gICAgICAgICAgICAsIG5lZ2F0aXZlID0gJy0/J1xuICAgICAgICAgICAgLCB3aG9sZV9kb2xsYXJfYW1vdW50X3dpdGhvdXRfc2VwID0gJ1sxLTldXFxcXGQqJ1xuICAgICAgICAgICAgLCB3aG9sZV9kb2xsYXJfYW1vdW50X3dpdGhfc2VwID0gJ1sxLTldXFxcXGR7MCwyfShcXFxcJyArIG9wdGlvbnMudGhvdXNhbmRzX3NlcGFyYXRvciArICdcXFxcZHszfSkqJ1xuICAgICAgICAgICAgLCB2YWxpZF93aG9sZV9kb2xsYXJfYW1vdW50cyA9IFsnMCcsIHdob2xlX2RvbGxhcl9hbW91bnRfd2l0aG91dF9zZXAsIHdob2xlX2RvbGxhcl9hbW91bnRfd2l0aF9zZXBdXG4gICAgICAgICAgICAsIHdob2xlX2RvbGxhcl9hbW91bnQgPSAnKCcgKyB2YWxpZF93aG9sZV9kb2xsYXJfYW1vdW50cy5qb2luKCd8JykgKyAnKT8nXG4gICAgICAgICAgICAsIGRlY2ltYWxfYW1vdW50ID0gJyhcXFxcJyArIG9wdGlvbnMuZGVjaW1hbF9zZXBhcmF0b3IgKyAnXFxcXGR7Mn0pPyc7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gd2hvbGVfZG9sbGFyX2Ftb3VudCArIGRlY2ltYWxfYW1vdW50O1xuICAgICAgICAvLyBkZWZhdWx0IGlzIG5lZ2F0aXZlIHNpZ24gYmVmb3JlIHN5bWJvbCwgYnV0IHRoZXJlIGFyZSB0d28gb3RoZXIgb3B0aW9ucyAoYmVzaWRlcyBwYXJlbnMpXG4gICAgICAgIGlmIChvcHRpb25zLmFsbG93X25lZ2F0aXZlcyAmJiAhb3B0aW9ucy5wYXJlbnNfZm9yX25lZ2F0aXZlcykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMubmVnYXRpdmVfc2lnbl9hZnRlcl9kaWdpdHMpIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuICs9IG5lZ2F0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5uZWdhdGl2ZV9zaWduX2JlZm9yZV9kaWdpdHMpIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuID0gbmVnYXRpdmUgKyBwYXR0ZXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFNvdXRoIEFmcmljYW4gUmFuZCwgZm9yIGV4YW1wbGUsIHVzZXMgUiAxMjMgKHNwYWNlKSBhbmQgUi0xMjMgKG5vIHNwYWNlKVxuICAgICAgICBpZiAob3B0aW9ucy5hbGxvd19uZWdhdGl2ZV9zaWduX3BsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICBwYXR0ZXJuID0gJyggKD8hXFxcXC0pKT8nICsgcGF0dGVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zLmFsbG93X3NwYWNlX2FmdGVyX3N5bWJvbCkge1xuICAgICAgICAgICAgcGF0dGVybiA9ICcgPycgKyBwYXR0ZXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbnMuYWxsb3dfc3BhY2VfYWZ0ZXJfZGlnaXRzKSB7XG4gICAgICAgICAgICBwYXR0ZXJuICs9ICcoICg/ISQpKT8nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnN5bWJvbF9hZnRlcl9kaWdpdHMpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gKz0gc3ltYm9sO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0dGVybiA9IHN5bWJvbCArIHBhdHRlcm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dfbmVnYXRpdmVzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wYXJlbnNfZm9yX25lZ2F0aXZlcykge1xuICAgICAgICAgICAgICAgIHBhdHRlcm4gPSAnKFxcXFwoJyArIHBhdHRlcm4gKyAnXFxcXCl8JyArIHBhdHRlcm4gKyAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghKG9wdGlvbnMubmVnYXRpdmVfc2lnbl9iZWZvcmVfZGlnaXRzIHx8IG9wdGlvbnMubmVnYXRpdmVfc2lnbl9hZnRlcl9kaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiA9IG5lZ2F0aXZlICsgcGF0dGVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeJyArXG4gICAgICAgICAgICAvLyBlbnN1cmUgdGhlcmUncyBhIGRvbGxhciBhbmQvb3IgZGVjaW1hbCBhbW91bnQsIGFuZCB0aGF0IGl0IGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIHNwYWNlIG9yIGEgbmVnYXRpdmUgc2lnbiBmb2xsb3dlZCBieSBhIHNwYWNlXG4gICAgICAgICAgICAnKD8hLT8gKSg/PS4qXFxcXGQpJyArXG4gICAgICAgICAgICBwYXR0ZXJuICtcbiAgICAgICAgICAgICckJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhbGlkYXRvci5pbml0KCk7XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yO1xuXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblxuICAgIElOVkFMSURfVFlQRTogICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIHR5cGUgezB9IGJ1dCBmb3VuZCB0eXBlIHsxfVwiLFxuICAgIElOVkFMSURfRk9STUFUOiAgICAgICAgICAgICAgICAgICAgICAgICBcIk9iamVjdCBkaWRuJ3QgcGFzcyB2YWxpZGF0aW9uIGZvciBmb3JtYXQgezB9OiB7MX1cIixcbiAgICBFTlVNX01JU01BVENIOiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJObyBlbnVtIG1hdGNoIGZvcjogezB9XCIsXG4gICAgQU5ZX09GX01JU1NJTkc6ICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YSBkb2VzIG5vdCBtYXRjaCBhbnkgc2NoZW1hcyBmcm9tICdhbnlPZidcIixcbiAgICBPTkVfT0ZfTUlTU0lORzogICAgICAgICAgICAgICAgICAgICAgICAgXCJEYXRhIGRvZXMgbm90IG1hdGNoIGFueSBzY2hlbWFzIGZyb20gJ29uZU9mJ1wiLFxuICAgIE9ORV9PRl9NVUxUSVBMRTogICAgICAgICAgICAgICAgICAgICAgICBcIkRhdGEgaXMgdmFsaWQgYWdhaW5zdCBtb3JlIHRoYW4gb25lIHNjaGVtYSBmcm9tICdvbmVPZidcIixcbiAgICBOT1RfUEFTU0VEOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEYXRhIG1hdGNoZXMgc2NoZW1hIGZyb20gJ25vdCdcIixcblxuICAgIC8vIEFycmF5IGVycm9yc1xuICAgIEFSUkFZX0xFTkdUSF9TSE9SVDogICAgICAgICAgICAgICAgICAgICBcIkFycmF5IGlzIHRvbyBzaG9ydCAoezB9KSwgbWluaW11bSB7MX1cIixcbiAgICBBUlJBWV9MRU5HVEhfTE9ORzogICAgICAgICAgICAgICAgICAgICAgXCJBcnJheSBpcyB0b28gbG9uZyAoezB9KSwgbWF4aW11bSB7MX1cIixcbiAgICBBUlJBWV9VTklRVUU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnJheSBpdGVtcyBhcmUgbm90IHVuaXF1ZSAoaW5kZXhlcyB7MH0gYW5kIHsxfSlcIixcbiAgICBBUlJBWV9BRERJVElPTkFMX0lURU1TOiAgICAgICAgICAgICAgICAgXCJBZGRpdGlvbmFsIGl0ZW1zIG5vdCBhbGxvd2VkXCIsXG5cbiAgICAvLyBOdW1lcmljIGVycm9yc1xuICAgIE1VTFRJUExFX09GOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlIHswfSBpcyBub3QgYSBtdWx0aXBsZSBvZiB7MX1cIixcbiAgICBNSU5JTVVNOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZSB7MH0gaXMgbGVzcyB0aGFuIG1pbmltdW0gezF9XCIsXG4gICAgTUlOSU1VTV9FWENMVVNJVkU6ICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWUgezB9IGlzIGVxdWFsIG9yIGxlc3MgdGhhbiBleGNsdXNpdmUgbWluaW11bSB7MX1cIixcbiAgICBNQVhJTVVNOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZSB7MH0gaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gezF9XCIsXG4gICAgTUFYSU1VTV9FWENMVVNJVkU6ICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWUgezB9IGlzIGVxdWFsIG9yIGdyZWF0ZXIgdGhhbiBleGNsdXNpdmUgbWF4aW11bSB7MX1cIixcblxuICAgIC8vIE9iamVjdCBlcnJvcnNcbiAgICBPQkpFQ1RfUFJPUEVSVElFU19NSU5JTVVNOiAgICAgICAgICAgICAgXCJUb28gZmV3IHByb3BlcnRpZXMgZGVmaW5lZCAoezB9KSwgbWluaW11bSB7MX1cIixcbiAgICBPQkpFQ1RfUFJPUEVSVElFU19NQVhJTVVNOiAgICAgICAgICAgICAgXCJUb28gbWFueSBwcm9wZXJ0aWVzIGRlZmluZWQgKHswfSksIG1heGltdW0gezF9XCIsXG4gICAgT0JKRUNUX01JU1NJTkdfUkVRVUlSRURfUFJPUEVSVFk6ICAgICAgIFwiTWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eTogezB9XCIsXG4gICAgT0JKRUNUX0FERElUSU9OQUxfUFJPUEVSVElFUzogICAgICAgICAgIFwiQWRkaXRpb25hbCBwcm9wZXJ0aWVzIG5vdCBhbGxvd2VkOiB7MH1cIixcbiAgICBPQkpFQ1RfREVQRU5ERU5DWV9LRVk6ICAgICAgICAgICAgICAgICAgXCJEZXBlbmRlbmN5IGZhaWxlZCAtIGtleSBtdXN0IGV4aXN0OiB7MH0gKGR1ZSB0byBrZXk6IHsxfSlcIixcblxuICAgIC8vIFN0cmluZyBlcnJvcnNcbiAgICBNSU5fTEVOR1RIOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgaXMgdG9vIHNob3J0ICh7MH0gY2hhcnMpLCBtaW5pbXVtIHsxfVwiLFxuICAgIE1BWF9MRU5HVEg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN0cmluZyBpcyB0b28gbG9uZyAoezB9IGNoYXJzKSwgbWF4aW11bSB7MX1cIixcbiAgICBQQVRURVJOOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgZG9lcyBub3QgbWF0Y2ggcGF0dGVybiB7MH06IHsxfVwiLFxuXG4gICAgLy8gU2NoZW1hIHZhbGlkYXRpb24gZXJyb3JzXG4gICAgS0VZV09SRF9UWVBFX0VYUEVDVEVEOiAgICAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyBpcyBleHBlY3RlZCB0byBiZSBvZiB0eXBlICd7MX0nXCIsXG4gICAgS0VZV09SRF9VTkRFRklORURfU1RSSUNUOiAgICAgICAgICAgICAgIFwiS2V5d29yZCAnezB9JyBtdXN0IGJlIGRlZmluZWQgaW4gc3RyaWN0IG1vZGVcIixcbiAgICBLRVlXT1JEX1VORVhQRUNURUQ6ICAgICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIGlzIG5vdCBleHBlY3RlZCB0byBhcHBlYXIgaW4gdGhlIHNjaGVtYVwiLFxuICAgIEtFWVdPUkRfTVVTVF9CRTogICAgICAgICAgICAgICAgICAgICAgICBcIktleXdvcmQgJ3swfScgbXVzdCBiZSB7MX1cIixcbiAgICBLRVlXT1JEX0RFUEVOREVOQ1k6ICAgICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIHJlcXVpcmVzIGtleXdvcmQgJ3sxfSdcIixcbiAgICBLRVlXT1JEX1BBVFRFUk46ICAgICAgICAgICAgICAgICAgICAgICAgXCJLZXl3b3JkICd7MH0nIGlzIG5vdCBhIHZhbGlkIFJlZ0V4cCBwYXR0ZXJuOiB7MX1cIixcbiAgICBLRVlXT1JEX1ZBTFVFX1RZUEU6ICAgICAgICAgICAgICAgICAgICAgXCJFYWNoIGVsZW1lbnQgb2Yga2V5d29yZCAnezB9JyBhcnJheSBtdXN0IGJlIGEgJ3sxfSdcIixcbiAgICBVTktOT1dOX0ZPUk1BVDogICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVyZSBpcyBubyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBmb3JtYXQgJ3swfSdcIixcbiAgICBDVVNUT01fTU9ERV9GT1JDRV9QUk9QRVJUSUVTOiAgICAgICAgICAgXCJ7MH0gbXVzdCBkZWZpbmUgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGlmIHByZXNlbnRcIixcblxuICAgIC8vIFJlbW90ZSBlcnJvcnNcbiAgICBSRUZfVU5SRVNPTFZFRDogICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWZlcmVuY2UgaGFzIG5vdCBiZWVuIHJlc29sdmVkIGR1cmluZyBjb21waWxhdGlvbjogezB9XCIsXG4gICAgVU5SRVNPTFZBQkxFX1JFRkVSRU5DRTogICAgICAgICAgICAgICAgIFwiUmVmZXJlbmNlIGNvdWxkIG5vdCBiZSByZXNvbHZlZDogezB9XCIsXG4gICAgU0NIRU1BX05PVF9SRUFDSEFCTEU6ICAgICAgICAgICAgICAgICAgIFwiVmFsaWRhdG9yIHdhcyBub3QgYWJsZSB0byByZWFkIHNjaGVtYSB3aXRoIHVyaTogezB9XCIsXG4gICAgU0NIRU1BX1RZUEVfRVhQRUNURUQ6ICAgICAgICAgICAgICAgICAgIFwiU2NoZW1hIGlzIGV4cGVjdGVkIHRvIGJlIG9mIHR5cGUgJ29iamVjdCdcIixcbiAgICBTQ0hFTUFfTk9UX0FOX09CSkVDVDogICAgICAgICAgICAgICAgICAgXCJTY2hlbWEgaXMgbm90IGFuIG9iamVjdDogezB9XCIsXG4gICAgQVNZTkNfVElNRU9VVDogICAgICAgICAgICAgICAgICAgICAgICAgIFwiezB9IGFzeW5jaHJvbm91cyB0YXNrKHMpIGhhdmUgdGltZWQgb3V0IGFmdGVyIHsxfSBtc1wiLFxuICAgIFBBUkVOVF9TQ0hFTUFfVkFMSURBVElPTl9GQUlMRUQ6ICAgICAgICBcIlNjaGVtYSBmYWlsZWQgdG8gdmFsaWRhdGUgYWdhaW5zdCBpdHMgcGFyZW50IHNjaGVtYSwgc2VlIGlubmVyIGVycm9ycyBmb3IgZGV0YWlscy5cIixcbiAgICBSRU1PVEVfTk9UX1ZBTElEOiAgICAgICAgICAgICAgICAgICAgICAgXCJSZW1vdGUgcmVmZXJlbmNlIGRpZG4ndCBjb21waWxlIHN1Y2Nlc3NmdWxseTogezB9XCJcblxufTtcbiIsIi8qanNoaW50IG1heGxlbjogZmFsc2UqL1xuXG52YXIgdmFsaWRhdG9yID0gcmVxdWlyZShcInZhbGlkYXRvclwiKTtcblxudmFyIEZvcm1hdFZhbGlkYXRvcnMgPSB7XG4gICAgXCJkYXRlXCI6IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZnVsbC1kYXRlIGZyb20gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICAgICAgICB2YXIgbWF0Y2hlcyA9IC9eKFswLTldezR9KS0oWzAtOV17Mn0pLShbMC05XXsyfSkkLy5leGVjKGRhdGUpO1xuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHZhciB5ZWFyID0gbWF0Y2hlc1sxXTtcbiAgICAgICAgLy8gdmFyIG1vbnRoID0gbWF0Y2hlc1syXTtcbiAgICAgICAgLy8gdmFyIGRheSA9IG1hdGNoZXNbM107XG4gICAgICAgIGlmIChtYXRjaGVzWzJdIDwgXCIwMVwiIHx8IG1hdGNoZXNbMl0gPiBcIjEyXCIgfHwgbWF0Y2hlc1szXSA8IFwiMDFcIiB8fCBtYXRjaGVzWzNdID4gXCIzMVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBcImRhdGUtdGltZVwiOiBmdW5jdGlvbiAoZGF0ZVRpbWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRlVGltZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGF0ZS10aW1lIGZyb20gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICAgICAgICB2YXIgcyA9IGRhdGVUaW1lLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCJ0XCIpO1xuICAgICAgICBpZiAoIUZvcm1hdFZhbGlkYXRvcnMuZGF0ZShzWzBdKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtYXRjaGVzID0gL14oWzAtOV17Mn0pOihbMC05XXsyfSk6KFswLTldezJ9KSguWzAtOV0rKT8oenwoWystXVswLTldezJ9OlswLTldezJ9KSkkLy5leGVjKHNbMV0pO1xuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHZhciBob3VyID0gbWF0Y2hlc1sxXTtcbiAgICAgICAgLy8gdmFyIG1pbnV0ZSA9IG1hdGNoZXNbMl07XG4gICAgICAgIC8vIHZhciBzZWNvbmQgPSBtYXRjaGVzWzNdO1xuICAgICAgICAvLyB2YXIgZnJhY3Rpb24gPSBtYXRjaGVzWzRdO1xuICAgICAgICAvLyB2YXIgdGltZXpvbmUgPSBtYXRjaGVzWzVdO1xuICAgICAgICBpZiAobWF0Y2hlc1sxXSA+IFwiMjNcIiB8fCBtYXRjaGVzWzJdID4gXCI1OVwiIHx8IG1hdGNoZXNbM10gPiBcIjU5XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIFwiZW1haWxcIjogZnVuY3Rpb24gKGVtYWlsKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZW1haWwgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNFbWFpbChlbWFpbCwgeyBcInJlcXVpcmVfdGxkXCI6IHRydWUgfSk7XG4gICAgfSxcbiAgICBcImhvc3RuYW1lXCI6IGZ1bmN0aW9uIChob3N0bmFtZSkge1xuICAgICAgICBpZiAodHlwZW9mIGhvc3RuYW1lICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICAgICAgaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI2FuY2hvcjExNFxuICAgICAgICAgICAgQSBzdHJpbmcgaW5zdGFuY2UgaXMgdmFsaWQgYWdhaW5zdCB0aGlzIGF0dHJpYnV0ZSBpZiBpdCBpcyBhIHZhbGlkXG4gICAgICAgICAgICByZXByZXNlbnRhdGlvbiBmb3IgYW4gSW50ZXJuZXQgaG9zdCBuYW1lLCBhcyBkZWZpbmVkIGJ5IFJGQyAxMDM0LCBzZWN0aW9uIDMuMSBbUkZDMTAzNF0uXG5cbiAgICAgICAgICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzEwMzQjc2VjdGlvbi0zLjVcblxuICAgICAgICAgICAgPGRpZ2l0PiA6Oj0gYW55IG9uZSBvZiB0aGUgdGVuIGRpZ2l0cyAwIHRocm91Z2ggOVxuICAgICAgICAgICAgdmFyIGRpZ2l0ID0gL1swLTldLztcblxuICAgICAgICAgICAgPGxldHRlcj4gOjo9IGFueSBvbmUgb2YgdGhlIDUyIGFscGhhYmV0aWMgY2hhcmFjdGVycyBBIHRocm91Z2ggWiBpbiB1cHBlciBjYXNlIGFuZCBhIHRocm91Z2ggeiBpbiBsb3dlciBjYXNlXG4gICAgICAgICAgICB2YXIgbGV0dGVyID0gL1thLXpBLVpdLztcblxuICAgICAgICAgICAgPGxldC1kaWc+IDo6PSA8bGV0dGVyPiB8IDxkaWdpdD5cbiAgICAgICAgICAgIHZhciBsZXREaWcgPSAvWzAtOWEtekEtWl0vO1xuXG4gICAgICAgICAgICA8bGV0LWRpZy1oeXA+IDo6PSA8bGV0LWRpZz4gfCBcIi1cIlxuICAgICAgICAgICAgdmFyIGxldERpZ0h5cCA9IC9bLTAtOWEtekEtWl0vO1xuXG4gICAgICAgICAgICA8bGRoLXN0cj4gOjo9IDxsZXQtZGlnLWh5cD4gfCA8bGV0LWRpZy1oeXA+IDxsZGgtc3RyPlxuICAgICAgICAgICAgdmFyIGxkaFN0ciA9IC9bLTAtOWEtekEtWl0rLztcblxuICAgICAgICAgICAgPGxhYmVsPiA6Oj0gPGxldHRlcj4gWyBbIDxsZGgtc3RyPiBdIDxsZXQtZGlnPiBdXG4gICAgICAgICAgICB2YXIgbGFiZWwgPSAvW2EtekEtWl0oKFstMC05YS16QS1aXSspP1swLTlhLXpBLVpdKT8vO1xuXG4gICAgICAgICAgICA8c3ViZG9tYWluPiA6Oj0gPGxhYmVsPiB8IDxzdWJkb21haW4+IFwiLlwiIDxsYWJlbD5cbiAgICAgICAgICAgIHZhciBzdWJkb21haW4gPSAvXlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KFxcLlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KSokLztcblxuICAgICAgICAgICAgPGRvbWFpbj4gOjo9IDxzdWJkb21haW4+IHwgXCIgXCJcbiAgICAgICAgICAgIHZhciBkb21haW4gPSBudWxsO1xuICAgICAgICAqL1xuICAgICAgICB2YXIgdmFsaWQgPSAvXlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KFxcLlthLXpBLVpdKChbLTAtOWEtekEtWl0rKT9bMC05YS16QS1aXSk/KSokLy50ZXN0KGhvc3RuYW1lKTtcbiAgICAgICAgaWYgKHZhbGlkKSB7XG4gICAgICAgICAgICAvLyB0aGUgc3VtIG9mIGFsbCBsYWJlbCBvY3RldHMgYW5kIGxhYmVsIGxlbmd0aHMgaXMgbGltaXRlZCB0byAyNTUuXG4gICAgICAgICAgICBpZiAoaG9zdG5hbWUubGVuZ3RoID4gMjU1KSB7IHJldHVybiBmYWxzZTsgfVxuICAgICAgICAgICAgLy8gRWFjaCBub2RlIGhhcyBhIGxhYmVsLCB3aGljaCBpcyB6ZXJvIHRvIDYzIG9jdGV0cyBpbiBsZW5ndGhcbiAgICAgICAgICAgIHZhciBsYWJlbHMgPSBob3N0bmFtZS5zcGxpdChcIi5cIik7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhYmVscy5sZW5ndGg7IGkrKykgeyBpZiAobGFiZWxzW2ldLmxlbmd0aCA+IDYzKSB7IHJldHVybiBmYWxzZTsgfSB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkO1xuICAgIH0sXG4gICAgXCJob3N0LW5hbWVcIjogZnVuY3Rpb24gKGhvc3RuYW1lKSB7XG4gICAgICAgIHJldHVybiBGb3JtYXRWYWxpZGF0b3JzLmhvc3RuYW1lLmNhbGwodGhpcywgaG9zdG5hbWUpO1xuICAgIH0sXG4gICAgXCJpcHY0XCI6IGZ1bmN0aW9uIChpcHY0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXB2NCAhPT0gXCJzdHJpbmdcIikgeyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLmlzSVAoaXB2NCwgNCk7XG4gICAgfSxcbiAgICBcImlwdjZcIjogZnVuY3Rpb24gKGlwdjYpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpcHY2ICE9PSBcInN0cmluZ1wiKSB7IHJldHVybiB0cnVlOyB9XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3IuaXNJUChpcHY2LCA2KTtcbiAgICB9LFxuICAgIFwicmVnZXhcIjogZnVuY3Rpb24gKHN0cikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgUmVnRXhwKHN0cik7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBcInVyaVwiOiBmdW5jdGlvbiAodXJpKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc3RyaWN0VXJpcykge1xuICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFZhbGlkYXRvcnNbXCJzdHJpY3QtdXJpXCJdLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3phZ2dpbm8vei1zY2hlbWEvaXNzdWVzLzE4XG4gICAgICAgIC8vIFJlZ0V4cCBmcm9tIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjYXBwZW5kaXgtQlxuICAgICAgICByZXR1cm4gdHlwZW9mIHVyaSAhPT0gXCJzdHJpbmdcIiB8fCBSZWdFeHAoXCJeKChbXjovPyNdKyk6KT8oLy8oW14vPyNdKikpPyhbXj8jXSopKFxcXFw/KFteI10qKSk/KCMoLiopKT9cIikudGVzdCh1cmkpO1xuICAgIH0sXG4gICAgXCJzdHJpY3QtdXJpXCI6IGZ1bmN0aW9uICh1cmkpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB1cmkgIT09IFwic3RyaW5nXCIgfHwgdmFsaWRhdG9yLmlzVVJMKHVyaSk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBGb3JtYXRWYWxpZGF0b3JzO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBGb3JtYXRWYWxpZGF0b3JzICA9IHJlcXVpcmUoXCIuL0Zvcm1hdFZhbGlkYXRvcnNcIiksXG4gICAgUmVwb3J0ICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9SZXBvcnRcIiksXG4gICAgVXRpbHMgICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcblxudmFyIEpzb25WYWxpZGF0b3JzID0ge1xuICAgIG11bHRpcGxlT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4xLjEuMlxuICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24gLyBzY2hlbWEubXVsdGlwbGVPZikgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNVUxUSVBMRV9PRlwiLCBbanNvbiwgc2NoZW1hLm11bHRpcGxlT2ZdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhpbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4yLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoanNvbiA+IHNjaGVtYS5tYXhpbXVtKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUFYSU1VTVwiLCBbanNvbiwgc2NoZW1hLm1heGltdW1dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24gPj0gc2NoZW1hLm1heGltdW0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJNQVhJTVVNX0VYQ0xVU0lWRVwiLCBbanNvbiwgc2NoZW1hLm1heGltdW1dLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBleGNsdXNpdmVNYXhpbXVtOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIGNvdmVyZWQgaW4gbWF4aW11bVxuICAgIH0sXG4gICAgbWluaW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMy4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEuZXhjbHVzaXZlTWluaW11bSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKGpzb24gPCBzY2hlbWEubWluaW11bSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1JTklNVU1cIiwgW2pzb24sIHNjaGVtYS5taW5pbXVtXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uIDw9IHNjaGVtYS5taW5pbXVtKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUlOSU1VTV9FWENMVVNJVkVcIiwgW2pzb24sIHNjaGVtYS5taW5pbXVtXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZXhjbHVzaXZlTWluaW11bTogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBjb3ZlcmVkIGluIG1pbmltdW1cbiAgICB9LFxuICAgIG1heExlbmd0aDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMS4yXG4gICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChVdGlscy51Y3MyZGVjb2RlKGpzb24pLmxlbmd0aCA+IHNjaGVtYS5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk1BWF9MRU5HVEhcIiwgW2pzb24ubGVuZ3RoLCBzY2hlbWEubWF4TGVuZ3RoXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluTGVuZ3RoOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4yLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFV0aWxzLnVjczJkZWNvZGUoanNvbikubGVuZ3RoIDwgc2NoZW1hLm1pbkxlbmd0aCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiTUlOX0xFTkdUSFwiLCBbanNvbi5sZW5ndGgsIHNjaGVtYS5taW5MZW5ndGhdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwYXR0ZXJuOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMi4zLjJcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFJlZ0V4cChzY2hlbWEucGF0dGVybikudGVzdChqc29uKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlBBVFRFUk5cIiwgW3NjaGVtYS5wYXR0ZXJuLCBqc29uXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRkaXRpb25hbEl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4xLjJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIHZhbHVlIG9mIFwiYWRkaXRpb25hbEl0ZW1zXCIgaXMgYm9vbGVhbiB2YWx1ZSBmYWxzZSBhbmQgdGhlIHZhbHVlIG9mIFwiaXRlbXNcIiBpcyBhbiBhcnJheSxcbiAgICAgICAgLy8gdGhlIGpzb24gaXMgdmFsaWQgaWYgaXRzIHNpemUgaXMgbGVzcyB0aGFuLCBvciBlcXVhbCB0bywgdGhlIHNpemUgb2YgXCJpdGVtc1wiLlxuICAgICAgICBpZiAoc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gZmFsc2UgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgICAgICBpZiAoanNvbi5sZW5ndGggPiBzY2hlbWEuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQVJSQVlfQURESVRJT05BTF9JVEVNU1wiLCBudWxsLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBpdGVtczogZnVuY3Rpb24gKCkgeyAvKnJlcG9ydCwgc2NoZW1hLCBqc29uKi9cbiAgICAgICAgLy8gY292ZXJlZCBpbiBhZGRpdGlvbmFsSXRlbXNcbiAgICB9LFxuICAgIG1heEl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4yLjJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGpzb24ubGVuZ3RoID4gc2NoZW1hLm1heEl0ZW1zKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBUlJBWV9MRU5HVEhfTE9OR1wiLCBbanNvbi5sZW5ndGgsIHNjaGVtYS5tYXhJdGVtc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pbkl0ZW1zOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMy4zLjJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGpzb24ubGVuZ3RoIDwgc2NoZW1hLm1pbkl0ZW1zKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBUlJBWV9MRU5HVEhfU0hPUlRcIiwgW2pzb24ubGVuZ3RoLCBzY2hlbWEubWluSXRlbXNdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB1bmlxdWVJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuNC4yXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEudW5pcXVlSXRlbXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHZhciBtYXRjaGVzID0gW107XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNVbmlxdWVBcnJheShqc29uLCBtYXRjaGVzKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBUlJBWV9VTklRVUVcIiwgbWF0Y2hlcywgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4UHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuMS4yXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbikgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5c0NvdW50ID0gT2JqZWN0LmtleXMoanNvbikubGVuZ3RoO1xuICAgICAgICBpZiAoa2V5c0NvdW50ID4gc2NoZW1hLm1heFByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9CSkVDVF9QUk9QRVJUSUVTX01BWElNVU1cIiwgW2tleXNDb3VudCwgc2NoZW1hLm1heFByb3BlcnRpZXNdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5Qcm9wZXJ0aWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4yLjJcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBrZXlzQ291bnQgPSBPYmplY3Qua2V5cyhqc29uKS5sZW5ndGg7XG4gICAgICAgIGlmIChrZXlzQ291bnQgPCBzY2hlbWEubWluUHJvcGVydGllcykge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT0JKRUNUX1BST1BFUlRJRVNfTUlOSU1VTVwiLCBba2V5c0NvdW50LCBzY2hlbWEubWluUHJvcGVydGllc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJlcXVpcmVkOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4zLjJcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhqc29uKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpZHggPSBzY2hlbWEucmVxdWlyZWQubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciByZXF1aXJlZFByb3BlcnR5TmFtZSA9IHNjaGVtYS5yZXF1aXJlZFtpZHhdO1xuICAgICAgICAgICAgaWYgKGpzb25bcmVxdWlyZWRQcm9wZXJ0eU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJPQkpFQ1RfTUlTU0lOR19SRVFVSVJFRF9QUk9QRVJUWVwiLCBbcmVxdWlyZWRQcm9wZXJ0eU5hbWVdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGNvdmVyZWQgaW4gcHJvcGVydGllcyBhbmQgcGF0dGVyblByb3BlcnRpZXNcbiAgICAgICAgaWYgKHNjaGVtYS5wcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgJiYgc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBKc29uVmFsaWRhdG9ycy5wcm9wZXJ0aWVzLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwYXR0ZXJuUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGNvdmVyZWQgaW4gcHJvcGVydGllc1xuICAgICAgICBpZiAoc2NoZW1hLnByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIEpzb25WYWxpZGF0b3JzLnByb3BlcnRpZXMuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSwganNvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjQuMlxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKGpzb24pICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBzY2hlbWEucHJvcGVydGllcyAhPT0gdW5kZWZpbmVkID8gc2NoZW1hLnByb3BlcnRpZXMgOiB7fTtcbiAgICAgICAgdmFyIHBhdHRlcm5Qcm9wZXJ0aWVzID0gc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQgPyBzY2hlbWEucGF0dGVyblByb3BlcnRpZXMgOiB7fTtcbiAgICAgICAgaWYgKHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBzZXQgb2YgdGhlIGpzb24gdG8gdmFsaWRhdGUuXG4gICAgICAgICAgICB2YXIgcyA9IE9iamVjdC5rZXlzKGpzb24pO1xuICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHNldCBmcm9tIFwicHJvcGVydGllc1wiLlxuICAgICAgICAgICAgdmFyIHAgPSBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBzZXQgZnJvbSBcInBhdHRlcm5Qcm9wZXJ0aWVzXCIuXG4gICAgICAgICAgICB2YXIgcHAgPSBPYmplY3Qua2V5cyhwYXR0ZXJuUHJvcGVydGllcyk7XG4gICAgICAgICAgICAvLyByZW1vdmUgZnJvbSBcInNcIiBhbGwgZWxlbWVudHMgb2YgXCJwXCIsIGlmIGFueTtcbiAgICAgICAgICAgIHMgPSBVdGlscy5kaWZmZXJlbmNlKHMsIHApO1xuICAgICAgICAgICAgLy8gZm9yIGVhY2ggcmVnZXggaW4gXCJwcFwiLCByZW1vdmUgYWxsIGVsZW1lbnRzIG9mIFwic1wiIHdoaWNoIHRoaXMgcmVnZXggbWF0Y2hlcy5cbiAgICAgICAgICAgIHZhciBpZHggPSBwcC5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVnRXhwID0gUmVnRXhwKHBwW2lkeF0pLFxuICAgICAgICAgICAgICAgICAgICBpZHgyID0gcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVnRXhwLnRlc3Qoc1tpZHgyXSkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMuc3BsaWNlKGlkeDIsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVmFsaWRhdGlvbiBvZiB0aGUganNvbiBzdWNjZWVkcyBpZiwgYWZ0ZXIgdGhlc2UgdHdvIHN0ZXBzLCBzZXQgXCJzXCIgaXMgZW1wdHkuXG4gICAgICAgICAgICBpZiAocy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT0JKRUNUX0FERElUSU9OQUxfUFJPUEVSVElFU1wiLCBbc10sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNS4yXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoanNvbikgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLmRlcGVuZGVuY2llcyksXG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcblxuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIC8vIGl0ZXJhdGUgYWxsIGRlcGVuZGVuY2llc1xuICAgICAgICAgICAgdmFyIGRlcGVuZGVuY3lOYW1lID0ga2V5c1tpZHhdO1xuICAgICAgICAgICAgaWYgKGpzb25bZGVwZW5kZW5jeU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRlcGVuZGVuY3lEZWZpbml0aW9uID0gc2NoZW1hLmRlcGVuZGVuY2llc1tkZXBlbmRlbmN5TmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhkZXBlbmRlbmN5RGVmaW5pdGlvbikgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgZGVwZW5kZW5jeSBpcyBhIHNjaGVtYSwgdmFsaWRhdGUgYWdhaW5zdCB0aGlzIHNjaGVtYVxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBkZXBlbmRlbmN5RGVmaW5pdGlvbiwganNvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gQXJyYXlcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgZGVwZW5kZW5jeSBpcyBhbiBhcnJheSwgb2JqZWN0IG5lZWRzIHRvIGhhdmUgYWxsIHByb3BlcnRpZXMgaW4gdGhpcyBhcnJheVxuICAgICAgICAgICAgICAgICAgICB2YXIgaWR4MiA9IGRlcGVuZGVuY3lEZWZpbml0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcXVpcmVkUHJvcGVydHlOYW1lID0gZGVwZW5kZW5jeURlZmluaXRpb25baWR4Ml07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbltyZXF1aXJlZFByb3BlcnR5TmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9CSkVDVF9ERVBFTkRFTkNZX0tFWVwiLCBbcmVxdWlyZWRQcm9wZXJ0eU5hbWUsIGRlcGVuZGVuY3lOYW1lXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZW51bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMS4yXG4gICAgICAgIHZhciBtYXRjaCA9IGZhbHNlLFxuICAgICAgICAgICAgaWR4ID0gc2NoZW1hLmVudW0ubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIGlmIChVdGlscy5hcmVFcXVhbChqc29uLCBzY2hlbWEuZW51bVtpZHhdKSkge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2ggPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJFTlVNX01JU01BVENIXCIsIFtqc29uXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgLypcbiAgICB0eXBlOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4yLjJcbiAgICAgICAgLy8gdHlwZSBpcyBoYW5kbGVkIGJlZm9yZSB0aGlzIGlzIGNhbGxlZCBzbyBpZ25vcmVcbiAgICB9LFxuICAgICovXG4gICAgYWxsT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjMuMlxuICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLmFsbE9mLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICBpZiAoZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFsbE9mW2lkeF0sIGpzb24pID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhbnlPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNC4yXG4gICAgICAgIHZhciBzdWJSZXBvcnRzID0gW10sXG4gICAgICAgICAgICBwYXNzZWQgPSBmYWxzZSxcbiAgICAgICAgICAgIGlkeCA9IHNjaGVtYS5hbnlPZi5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGlkeC0tICYmIHBhc3NlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHZhciBzdWJSZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCk7XG4gICAgICAgICAgICBzdWJSZXBvcnRzLnB1c2goc3ViUmVwb3J0KTtcbiAgICAgICAgICAgIHBhc3NlZCA9IGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCBzdWJSZXBvcnQsIHNjaGVtYS5hbnlPZltpZHhdLCBqc29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXNzZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJBTllfT0ZfTUlTU0lOR1wiLCB1bmRlZmluZWQsIHN1YlJlcG9ydHMsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG9uZU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS41LjJcbiAgICAgICAgdmFyIHBhc3NlcyA9IDAsXG4gICAgICAgICAgICBzdWJSZXBvcnRzID0gW10sXG4gICAgICAgICAgICBpZHggPSBzY2hlbWEub25lT2YubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIHN1YlJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0LCB7IG1heEVycm9yczogMSB9KTtcbiAgICAgICAgICAgIHN1YlJlcG9ydHMucHVzaChzdWJSZXBvcnQpO1xuICAgICAgICAgICAgaWYgKGV4cG9ydHMudmFsaWRhdGUuY2FsbCh0aGlzLCBzdWJSZXBvcnQsIHNjaGVtYS5vbmVPZltpZHhdLCBqc29uKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHBhc3NlcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhc3NlcyA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiT05FX09GX01JU1NJTkdcIiwgdW5kZWZpbmVkLCBzdWJSZXBvcnRzLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKHBhc3NlcyA+IDEpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk9ORV9PRl9NVUxUSVBMRVwiLCBudWxsLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBub3Q6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjYuMlxuICAgICAgICB2YXIgc3ViUmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQpO1xuICAgICAgICBpZiAoZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHN1YlJlcG9ydCwgc2NoZW1hLm5vdCwganNvbikgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIk5PVF9QQVNTRURcIiwgbnVsbCwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVmaW5pdGlvbnM6IGZ1bmN0aW9uICgpIHsgLypyZXBvcnQsIHNjaGVtYSwganNvbiovXG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNy4yXG4gICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZVxuICAgIH0sXG4gICAgZm9ybWF0OiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjcuMlxuICAgICAgICB2YXIgZm9ybWF0VmFsaWRhdG9yRm4gPSBGb3JtYXRWYWxpZGF0b3JzW3NjaGVtYS5mb3JtYXRdO1xuICAgICAgICBpZiAodHlwZW9mIGZvcm1hdFZhbGlkYXRvckZuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXRWYWxpZGF0b3JGbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICAvLyBhc3luY1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRBc3luY1Rhc2soZm9ybWF0VmFsaWRhdG9yRm4sIFtqc29uXSwgZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJJTlZBTElEX0ZPUk1BVFwiLCBbc2NoZW1hLmZvcm1hdCwganNvbl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gc3luY1xuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRWYWxpZGF0b3JGbi5jYWxsKHRoaXMsIGpzb24pICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIklOVkFMSURfRk9STUFUXCIsIFtzY2hlbWEuZm9ybWF0LCBqc29uXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJVTktOT1dOX0ZPUk1BVFwiLCBbc2NoZW1hLmZvcm1hdF0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG52YXIgcmVjdXJzZUFycmF5ID0gZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hLCBqc29uKSB7XG4gICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjguMlxuXG4gICAgdmFyIGlkeCA9IGpzb24ubGVuZ3RoO1xuXG4gICAgLy8gSWYgXCJpdGVtc1wiIGlzIGFuIGFycmF5LCB0aGlzIHNpdHVhdGlvbiwgdGhlIHNjaGVtYSBkZXBlbmRzIG9uIHRoZSBpbmRleDpcbiAgICAvLyBpZiB0aGUgaW5kZXggaXMgbGVzcyB0aGFuLCBvciBlcXVhbCB0bywgdGhlIHNpemUgb2YgXCJpdGVtc1wiLFxuICAgIC8vIHRoZSBjaGlsZCBpbnN0YW5jZSBtdXN0IGJlIHZhbGlkIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgc2NoZW1hIGluIHRoZSBcIml0ZW1zXCIgYXJyYXk7XG4gICAgLy8gb3RoZXJ3aXNlLCBpdCBtdXN0IGJlIHZhbGlkIGFnYWluc3QgdGhlIHNjaGVtYSBkZWZpbmVkIGJ5IFwiYWRkaXRpb25hbEl0ZW1zXCIuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuXG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgLy8gZXF1YWwgdG8gZG9lc250IG1ha2Ugc2Vuc2UgaGVyZVxuICAgICAgICAgICAgaWYgKGlkeCA8IHNjaGVtYS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuaXRlbXNbaWR4XSwganNvbltpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbWlnaHQgYmUgYm9vbGVhbiwgc28gY2hlY2sgdGhhdCBpdCdzIGFuIG9iamVjdFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFkZGl0aW9uYWxJdGVtcywganNvbltpZHhdKTtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEuaXRlbXMgPT09IFwib2JqZWN0XCIpIHtcblxuICAgICAgICAvLyBJZiBpdGVtcyBpcyBhIHNjaGVtYSwgdGhlbiB0aGUgY2hpbGQgaW5zdGFuY2UgbXVzdCBiZSB2YWxpZCBhZ2FpbnN0IHRoaXMgc2NoZW1hLFxuICAgICAgICAvLyByZWdhcmRsZXNzIG9mIGl0cyBpbmRleCwgYW5kIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIFwiYWRkaXRpb25hbEl0ZW1zXCIuXG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuaXRlbXMsIGpzb25baWR4XSk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuXG4gICAgfVxufTtcblxudmFyIHJlY3Vyc2VPYmplY3QgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEsIGpzb24pIHtcbiAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uOC4zXG5cbiAgICAvLyBJZiBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIgaXMgYWJzZW50LCBpdCBpcyBjb25zaWRlcmVkIHByZXNlbnQgd2l0aCBhbiBlbXB0eSBzY2hlbWEgYXMgYSB2YWx1ZS5cbiAgICAvLyBJbiBhZGRpdGlvbiwgYm9vbGVhbiB2YWx1ZSB0cnVlIGlzIGNvbnNpZGVyZWQgZXF1aXZhbGVudCB0byBhbiBlbXB0eSBzY2hlbWEuXG4gICAgdmFyIGFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzO1xuICAgIGlmIChhZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdHJ1ZSB8fCBhZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzID0ge307XG4gICAgfVxuXG4gICAgLy8gcCAtIFRoZSBwcm9wZXJ0eSBzZXQgZnJvbSBcInByb3BlcnRpZXNcIi5cbiAgICB2YXIgcCA9IHNjaGVtYS5wcm9wZXJ0aWVzID8gT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMpIDogW107XG5cbiAgICAvLyBwcCAtIFRoZSBwcm9wZXJ0eSBzZXQgZnJvbSBcInBhdHRlcm5Qcm9wZXJ0aWVzXCIuIEVsZW1lbnRzIG9mIHRoaXMgc2V0IHdpbGwgYmUgY2FsbGVkIHJlZ2V4ZXMgZm9yIGNvbnZlbmllbmNlLlxuICAgIHZhciBwcCA9IHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyA/IE9iamVjdC5rZXlzKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcykgOiBbXTtcblxuICAgIC8vIG0gLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgY2hpbGQuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhqc29uKSxcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIG0gPSBrZXlzW2lkeF0sXG4gICAgICAgICAgICBwcm9wZXJ0eVZhbHVlID0ganNvblttXTtcblxuICAgICAgICAvLyBzIC0gVGhlIHNldCBvZiBzY2hlbWFzIGZvciB0aGUgY2hpbGQgaW5zdGFuY2UuXG4gICAgICAgIHZhciBzID0gW107XG5cbiAgICAgICAgLy8gMS4gSWYgc2V0IFwicFwiIGNvbnRhaW5zIHZhbHVlIFwibVwiLCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIHNjaGVtYSBpbiBcInByb3BlcnRpZXNcIiBpcyBhZGRlZCB0byBcInNcIi5cbiAgICAgICAgaWYgKHAuaW5kZXhPZihtKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHMucHVzaChzY2hlbWEucHJvcGVydGllc1ttXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBGb3IgZWFjaCByZWdleCBpbiBcInBwXCIsIGlmIGl0IG1hdGNoZXMgXCJtXCIgc3VjY2Vzc2Z1bGx5LCB0aGUgY29ycmVzcG9uZGluZyBzY2hlbWEgaW4gXCJwYXR0ZXJuUHJvcGVydGllc1wiIGlzIGFkZGVkIHRvIFwic1wiLlxuICAgICAgICB2YXIgaWR4MiA9IHBwLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgdmFyIHJlZ2V4U3RyaW5nID0gcHBbaWR4Ml07XG4gICAgICAgICAgICBpZiAoUmVnRXhwKHJlZ2V4U3RyaW5nKS50ZXN0KG0pID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcy5wdXNoKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllc1tyZWdleFN0cmluZ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gVGhlIHNjaGVtYSBkZWZpbmVkIGJ5IFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIiBpcyBhZGRlZCB0byBcInNcIiBpZiBhbmQgb25seSBpZiwgYXQgdGhpcyBzdGFnZSwgXCJzXCIgaXMgZW1wdHkuXG4gICAgICAgIGlmIChzLmxlbmd0aCA9PT0gMCAmJiBhZGRpdGlvbmFsUHJvcGVydGllcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHMucHVzaChhZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3ZSBhcmUgcGFzc2luZyB0ZXN0cyBldmVuIHdpdGhvdXQgdGhpcyBhc3NlcnQgYmVjYXVzZSB0aGlzIGlzIGNvdmVyZWQgYnkgcHJvcGVydGllcyBjaGVja1xuICAgICAgICAvLyBpZiBzIGlzIGVtcHR5IGluIHRoaXMgc3RhZ2UsIG5vIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIGFyZSBhbGxvd2VkXG4gICAgICAgIC8vIHJlcG9ydC5leHBlY3Qocy5sZW5ndGggIT09IDAsICdFMDAxJywgbSk7XG5cbiAgICAgICAgLy8gSW5zdGFuY2UgcHJvcGVydHkgdmFsdWUgbXVzdCBwYXNzIGFsbCBzY2hlbWFzIGZyb20gc1xuICAgICAgICBpZHgyID0gcy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgyLS0pIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2gobSk7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzW2lkeDJdLCBwcm9wZXJ0eVZhbHVlKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0cy52YWxpZGF0ZSA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSwganNvbikge1xuXG4gICAgcmVwb3J0LmNvbW1vbkVycm9yTWVzc2FnZSA9IFwiSlNPTl9PQkpFQ1RfVkFMSURBVElPTl9GQUlMRURcIjtcblxuICAgIC8vIGNoZWNrIGlmIHNjaGVtYSBpcyBhbiBvYmplY3RcbiAgICB2YXIgdG8gPSBVdGlscy53aGF0SXMoc2NoZW1hKTtcbiAgICBpZiAodG8gIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiU0NIRU1BX05PVF9BTl9PQkpFQ1RcIiwgW3RvXSwgbnVsbCwgc2NoZW1hLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHNjaGVtYSBpcyBlbXB0eSwgZXZlcnl0aGluZyBpcyB2YWxpZCBhZ2FpbnN0IGVtcHR5IHNjaGVtYVxuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCByZWN1cnNpdmVseSwgc28gd2UgbmVlZCB0byByZW1lbWJlciBvdXIgcm9vdFxuICAgIHZhciBpc1Jvb3QgPSBmYWxzZTtcbiAgICBpZiAoIXJlcG9ydC5yb290U2NoZW1hKSB7XG4gICAgICAgIHJlcG9ydC5yb290U2NoZW1hID0gc2NoZW1hO1xuICAgICAgICBpc1Jvb3QgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIGZvbGxvdyBzY2hlbWEuJHJlZiBrZXlzXG4gICAgaWYgKHNjaGVtYS4kcmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gYXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIG1heFJlZnNcbiAgICAgICAgdmFyIG1heFJlZnMgPSA5OTtcbiAgICAgICAgd2hpbGUgKHNjaGVtYS4kcmVmICYmIG1heFJlZnMgPiAwKSB7XG4gICAgICAgICAgICBpZiAoIXNjaGVtYS5fXyRyZWZSZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlJFRl9VTlJFU09MVkVEXCIsIFtzY2hlbWEuJHJlZl0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5fXyRyZWZSZXNvbHZlZCA9PT0gc2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjaGVtYSA9IHNjaGVtYS5fXyRyZWZSZXNvbHZlZDtcbiAgICAgICAgICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1heFJlZnMtLTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4UmVmcyA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2lyY3VsYXIgZGVwZW5kZW5jeSBieSAkcmVmIHJlZmVyZW5jZXMhXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHlwZSBjaGVja2luZyBmaXJzdFxuICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMi4yXG4gICAgdmFyIGpzb25UeXBlID0gVXRpbHMud2hhdElzKGpzb24pO1xuICAgIGlmIChzY2hlbWEudHlwZSkge1xuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZiAoanNvblR5cGUgIT09IHNjaGVtYS50eXBlICYmIChqc29uVHlwZSAhPT0gXCJpbnRlZ2VyXCIgfHwgc2NoZW1hLnR5cGUgIT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiSU5WQUxJRF9UWVBFXCIsIFtzY2hlbWEudHlwZSwganNvblR5cGVdLCBudWxsLCBzY2hlbWEuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYnJlYWtPbkZpcnN0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZS5pbmRleE9mKGpzb25UeXBlKSA9PT0gLTEgJiYgKGpzb25UeXBlICE9PSBcImludGVnZXJcIiB8fCBzY2hlbWEudHlwZS5pbmRleE9mKFwibnVtYmVyXCIpID09PSAtMSkpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJJTlZBTElEX1RZUEVcIiwgW3NjaGVtYS50eXBlLCBqc29uVHlwZV0sIG51bGwsIHNjaGVtYS5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5icmVha09uRmlyc3RFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gbm93IGl0ZXJhdGUgYWxsIHRoZSBrZXlzIGluIHNjaGVtYSBhbmQgZXhlY3V0ZSB2YWxpZGF0aW9uIG1ldGhvZHNcbiAgICB2YXIgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIGlmIChKc29uVmFsaWRhdG9yc1trZXlzW2lkeF1dKSB7XG4gICAgICAgICAgICBKc29uVmFsaWRhdG9yc1trZXlzW2lkeF1dLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgICAgICAgICAgaWYgKHJlcG9ydC5lcnJvcnMubGVuZ3RoICYmIHRoaXMub3B0aW9ucy5icmVha09uRmlyc3RFcnJvcikgeyBicmVhazsgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlcG9ydC5lcnJvcnMubGVuZ3RoID09PSAwIHx8IHRoaXMub3B0aW9ucy5icmVha09uRmlyc3RFcnJvciA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGpzb25UeXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHJlY3Vyc2VBcnJheS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICAgICAgfSBlbHNlIGlmIChqc29uVHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVjdXJzZU9iamVjdC5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLCBqc29uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdlIGRvbid0IG5lZWQgdGhlIHJvb3QgcG9pbnRlciBhbnltb3JlXG4gICAgaWYgKGlzUm9vdCkge1xuICAgICAgICByZXBvcnQucm9vdFNjaGVtYSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyByZXR1cm4gdmFsaWQganVzdCB0byBiZSBhYmxlIHRvIGJyZWFrIGF0IHNvbWUgY29kZSBwb2ludHNcbiAgICByZXR1cm4gcmVwb3J0LmVycm9ycy5sZW5ndGggPT09IDA7XG5cbn07XG4iLCIvLyBOdW1iZXIuaXNGaW5pdGUgcG9seWZpbGxcbi8vIGh0dHA6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW51bWJlci5pc2Zpbml0ZVxuaWYgKHR5cGVvZiBOdW1iZXIuaXNGaW5pdGUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIE51bWJlci5pc0Zpbml0ZSA9IGZ1bmN0aW9uIGlzRmluaXRlKHZhbHVlKSB7XG4gICAgICAgIC8vIDEuIElmIFR5cGUobnVtYmVyKSBpcyBub3QgTnVtYmVyLCByZXR1cm4gZmFsc2UuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyAyLiBJZiBudW1iZXIgaXMgTmFOLCAr4oieLCBvciDiiJLiiJ4sIHJldHVybiBmYWxzZS5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB2YWx1ZSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkgfHwgdmFsdWUgPT09IC1JbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuIE90aGVyd2lzZSwgcmV0dXJuIHRydWUuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIEVycm9ycyA9IHJlcXVpcmUoXCIuL0Vycm9yc1wiKTtcbnZhciBVdGlscyAgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcblxuZnVuY3Rpb24gUmVwb3J0KHBhcmVudE9yT3B0aW9ucywgcmVwb3J0T3B0aW9ucykge1xuICAgIHRoaXMucGFyZW50UmVwb3J0ID0gcGFyZW50T3JPcHRpb25zIGluc3RhbmNlb2YgUmVwb3J0ID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRPck9wdGlvbnMgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcblxuICAgIHRoaXMub3B0aW9ucyA9IHBhcmVudE9yT3B0aW9ucyBpbnN0YW5jZW9mIFJlcG9ydCA/XG4gICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE9yT3B0aW9ucy5vcHRpb25zIDpcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50T3JPcHRpb25zIHx8IHt9O1xuXG4gICAgdGhpcy5yZXBvcnRPcHRpb25zID0gcmVwb3J0T3B0aW9ucyB8fCB7fTtcblxuICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgdGhpcy5wYXRoID0gW107XG4gICAgdGhpcy5hc3luY1Rhc2tzID0gW107XG59XG5cblJlcG9ydC5wcm90b3R5cGUuaXNWYWxpZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5hc3luY1Rhc2tzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXN5bmMgdGFza3MgcGVuZGluZywgY2FuJ3QgYW5zd2VyIGlzVmFsaWRcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPT09IDA7XG59O1xuXG5SZXBvcnQucHJvdG90eXBlLmFkZEFzeW5jVGFzayA9IGZ1bmN0aW9uIChmbiwgYXJncywgYXN5bmNUYXNrUmVzdWx0UHJvY2Vzc0ZuKSB7XG4gICAgdGhpcy5hc3luY1Rhc2tzLnB1c2goW2ZuLCBhcmdzLCBhc3luY1Rhc2tSZXN1bHRQcm9jZXNzRm5dKTtcbn07XG5cblJlcG9ydC5wcm90b3R5cGUucHJvY2Vzc0FzeW5jVGFza3MgPSBmdW5jdGlvbiAodGltZW91dCwgY2FsbGJhY2spIHtcblxuICAgIHZhciB2YWxpZGF0aW9uVGltZW91dCA9IHRpbWVvdXQgfHwgMjAwMCxcbiAgICAgICAgdGFza3NDb3VudCAgICAgICAgPSB0aGlzLmFzeW5jVGFza3MubGVuZ3RoLFxuICAgICAgICBpZHggICAgICAgICAgICAgICA9IHRhc2tzQ291bnQsXG4gICAgICAgIHRpbWVkT3V0ICAgICAgICAgID0gZmFsc2UsXG4gICAgICAgIHNlbGYgICAgICAgICAgICAgID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIGZpbmlzaCgpIHtcbiAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdmFsaWQgPSBzZWxmLmVycm9ycy5sZW5ndGggPT09IDAsXG4gICAgICAgICAgICAgICAgZXJyICAgPSB2YWxpZCA/IHVuZGVmaW5lZCA6IHNlbGYuZXJyb3JzO1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyLCB2YWxpZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc3BvbmQoYXN5bmNUYXNrUmVzdWx0UHJvY2Vzc0ZuKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoYXN5bmNUYXNrUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAodGltZWRPdXQpIHsgcmV0dXJuOyB9XG4gICAgICAgICAgICBhc3luY1Rhc2tSZXN1bHRQcm9jZXNzRm4oYXN5bmNUYXNrUmVzdWx0KTtcbiAgICAgICAgICAgIGlmICgtLXRhc2tzQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGFza3NDb3VudCA9PT0gMCB8fCB0aGlzLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbmlzaCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciB0YXNrID0gdGhpcy5hc3luY1Rhc2tzW2lkeF07XG4gICAgICAgIHRhc2tbMF0uYXBwbHkobnVsbCwgdGFza1sxXS5jb25jYXQocmVzcG9uZCh0YXNrWzJdKSkpO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGFza3NDb3VudCA+IDApIHtcbiAgICAgICAgICAgIHRpbWVkT3V0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHNlbGYuYWRkRXJyb3IoXCJBU1lOQ19USU1FT1VUXCIsIFt0YXNrc0NvdW50LCB2YWxpZGF0aW9uVGltZW91dF0pO1xuICAgICAgICAgICAgY2FsbGJhY2soc2VsZi5lcnJvcnMsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0sIHZhbGlkYXRpb25UaW1lb3V0KTtcblxufTtcblxuUmVwb3J0LnByb3RvdHlwZS5nZXRQYXRoID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBwYXRoID0gW107XG4gICAgaWYgKHRoaXMucGFyZW50UmVwb3J0KSB7XG4gICAgICAgIHBhdGggPSBwYXRoLmNvbmNhdCh0aGlzLnBhcmVudFJlcG9ydC5wYXRoKTtcbiAgICB9XG4gICAgcGF0aCA9IHBhdGguY29uY2F0KHRoaXMucGF0aCk7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlcG9ydFBhdGhBc0FycmF5ICE9PSB0cnVlKSB7XG4gICAgICAgIC8vIFNhbml0aXplIHRoZSBwYXRoIHNlZ21lbnRzIChodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2OTAxI3NlY3Rpb24tNClcbiAgICAgICAgcGF0aCA9IFwiIy9cIiArIHBhdGgubWFwKGZ1bmN0aW9uIChzZWdtZW50KSB7XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc0Fic29sdXRlVXJpKHNlZ21lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidXJpKFwiICsgc2VnbWVudCArIFwiKVwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc2VnbWVudC5yZXBsYWNlKFwiflwiLCBcIn4wXCIpLnJlcGxhY2UoXCIvXCIsIFwifjFcIik7XG4gICAgICAgIH0pLmpvaW4oXCIvXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn07XG5cblJlcG9ydC5wcm90b3R5cGUuYWRkRXJyb3IgPSBmdW5jdGlvbiAoZXJyb3JDb2RlLCBwYXJhbXMsIHN1YlJlcG9ydHMsIHNjaGVtYURlc2NyaXB0aW9uKSB7XG4gICAgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCA+PSB0aGlzLnJlcG9ydE9wdGlvbnMubWF4RXJyb3JzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWVycm9yQ29kZSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJObyBlcnJvckNvZGUgcGFzc2VkIGludG8gYWRkRXJyb3IoKVwiKTsgfVxuICAgIGlmICghRXJyb3JzW2Vycm9yQ29kZV0pIHsgdGhyb3cgbmV3IEVycm9yKFwiTm8gZXJyb3JNZXNzYWdlIGtub3duIGZvciBjb2RlIFwiICsgZXJyb3JDb2RlKTsgfVxuXG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IFtdO1xuXG4gICAgdmFyIGlkeCA9IHBhcmFtcy5sZW5ndGgsXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IEVycm9yc1tlcnJvckNvZGVdO1xuICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICB2YXIgd2hhdElzID0gVXRpbHMud2hhdElzKHBhcmFtc1tpZHhdKTtcbiAgICAgICAgdmFyIHBhcmFtID0gKHdoYXRJcyA9PT0gXCJvYmplY3RcIiB8fCB3aGF0SXMgPT09IFwibnVsbFwiKSA/IEpTT04uc3RyaW5naWZ5KHBhcmFtc1tpZHhdKSA6IHBhcmFtc1tpZHhdO1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UucmVwbGFjZShcIntcIiArIGlkeCArIFwifVwiLCBwYXJhbSk7XG4gICAgfVxuXG4gICAgdmFyIGVyciA9IHtcbiAgICAgICAgY29kZTogZXJyb3JDb2RlLFxuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICBwYXRoOiB0aGlzLmdldFBhdGgoKVxuICAgIH07XG5cbiAgICBpZiAoc2NoZW1hRGVzY3JpcHRpb24pIHtcbiAgICAgICAgZXJyLmRlc2NyaXB0aW9uID0gc2NoZW1hRGVzY3JpcHRpb247XG4gICAgfVxuXG4gICAgaWYgKHN1YlJlcG9ydHMgIT0gbnVsbCkge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3ViUmVwb3J0cykpIHtcbiAgICAgICAgICAgIHN1YlJlcG9ydHMgPSBbc3ViUmVwb3J0c107XG4gICAgICAgIH1cbiAgICAgICAgZXJyLmlubmVyID0gW107XG4gICAgICAgIGlkeCA9IHN1YlJlcG9ydHMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBzdWJSZXBvcnQgPSBzdWJSZXBvcnRzW2lkeF0sXG4gICAgICAgICAgICAgICAgaWR4MiA9IHN1YlJlcG9ydC5lcnJvcnMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgIGVyci5pbm5lci5wdXNoKHN1YlJlcG9ydC5lcnJvcnNbaWR4Ml0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIuaW5uZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBlcnIuaW5uZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVycm9ycy5wdXNoKGVycik7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlcG9ydDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgUmVwb3J0ICAgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKTtcbnZhciBTY2hlbWFDb21waWxhdGlvbiAgID0gcmVxdWlyZShcIi4vU2NoZW1hQ29tcGlsYXRpb25cIik7XG52YXIgU2NoZW1hVmFsaWRhdGlvbiAgICA9IHJlcXVpcmUoXCIuL1NjaGVtYVZhbGlkYXRpb25cIik7XG52YXIgVXRpbHMgICAgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuXG5mdW5jdGlvbiBkZWNvZGVKU09OUG9pbnRlcihzdHIpIHtcbiAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWFwcHNhd2ctanNvbi1wb2ludGVyLTA3I3NlY3Rpb24tM1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC9+WzAtMV0vZywgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgcmV0dXJuIHggPT09IFwifjFcIiA/IFwiL1wiIDogXCJ+XCI7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbW90ZVBhdGgodXJpKSB7XG4gICAgdmFyIGlvID0gdXJpLmluZGV4T2YoXCIjXCIpO1xuICAgIHJldHVybiBpbyA9PT0gLTEgPyB1cmkgOiB1cmkuc2xpY2UoMCwgaW8pO1xufVxuXG5mdW5jdGlvbiBnZXRRdWVyeVBhdGgodXJpKSB7XG4gICAgdmFyIGlvID0gdXJpLmluZGV4T2YoXCIjXCIpO1xuICAgIHZhciByZXMgPSBpbyA9PT0gLTEgPyB1bmRlZmluZWQgOiB1cmkuc2xpY2UoaW8gKyAxKTtcbiAgICAvLyBXQVJOOiBkbyBub3Qgc2xpY2Ugc2xhc2gsICMvIG1lYW5zIHRha2Ugcm9vdCBhbmQgZ28gZG93biBmcm9tIGl0XG4gICAgLy8gaWYgKHJlcyAmJiByZXNbMF0gPT09IFwiL1wiKSB7IHJlcyA9IHJlcy5zbGljZSgxKTsgfVxuICAgIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIGZpbmRJZChzY2hlbWEsIGlkKSB7XG4gICAgLy8gcHJvY2VzcyBvbmx5IGFycmF5cyBhbmQgb2JqZWN0c1xuICAgIGlmICh0eXBlb2Ygc2NoZW1hICE9PSBcIm9iamVjdFwiIHx8IHNjaGVtYSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gbm8gaWQgbWVhbnMgcm9vdCBzbyByZXR1cm4gaXRzZWxmXG4gICAgaWYgKCFpZCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIGlmIChzY2hlbWEuaWQpIHtcbiAgICAgICAgaWYgKHNjaGVtYS5pZCA9PT0gaWQgfHwgc2NoZW1hLmlkWzBdID09PSBcIiNcIiAmJiBzY2hlbWEuaWQuc3Vic3RyaW5nKDEpID09PSBpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBpZHgsIHJlc3VsdDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgICAgIGlkeCA9IHNjaGVtYS5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZmluZElkKHNjaGVtYVtpZHhdLCBpZCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7IHJldHVybiByZXN1bHQ7IH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hKTtcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgdmFyIGsgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICBpZiAoay5pbmRleE9mKFwiX18kXCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQgPSBmaW5kSWQoc2NoZW1hW2tdLCBpZCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7IHJldHVybiByZXN1bHQ7IH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0cy5jYWNoZVNjaGVtYUJ5VXJpID0gZnVuY3Rpb24gKHVyaSwgc2NoZW1hKSB7XG4gICAgdmFyIHJlbW90ZVBhdGggPSBnZXRSZW1vdGVQYXRoKHVyaSk7XG4gICAgaWYgKHJlbW90ZVBhdGgpIHtcbiAgICAgICAgdGhpcy5jYWNoZVtyZW1vdGVQYXRoXSA9IHNjaGVtYTtcbiAgICB9XG59O1xuXG5leHBvcnRzLnJlbW92ZUZyb21DYWNoZUJ5VXJpID0gZnVuY3Rpb24gKHVyaSkge1xuICAgIHZhciByZW1vdGVQYXRoID0gZ2V0UmVtb3RlUGF0aCh1cmkpO1xuICAgIGlmIChyZW1vdGVQYXRoKSB7XG4gICAgICAgIHRoaXMuY2FjaGVbcmVtb3RlUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgfVxufTtcblxuZXhwb3J0cy5jaGVja0NhY2hlRm9yVXJpID0gZnVuY3Rpb24gKHVyaSkge1xuICAgIHZhciByZW1vdGVQYXRoID0gZ2V0UmVtb3RlUGF0aCh1cmkpO1xuICAgIHJldHVybiByZW1vdGVQYXRoID8gdGhpcy5jYWNoZVtyZW1vdGVQYXRoXSAhPSBudWxsIDogZmFsc2U7XG59O1xuXG5leHBvcnRzLmdldFNjaGVtYSA9IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgIGlmICh0eXBlb2Ygc2NoZW1hID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHNjaGVtYSA9IGV4cG9ydHMuZ2V0U2NoZW1hQnlSZWZlcmVuY2UuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygc2NoZW1hID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHNjaGVtYSA9IGV4cG9ydHMuZ2V0U2NoZW1hQnlVcmkuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiBzY2hlbWE7XG59O1xuXG5leHBvcnRzLmdldFNjaGVtYUJ5UmVmZXJlbmNlID0gZnVuY3Rpb24gKHJlcG9ydCwga2V5KSB7XG4gICAgdmFyIGkgPSB0aGlzLnJlZmVyZW5jZUNhY2hlLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIGlmICh0aGlzLnJlZmVyZW5jZUNhY2hlW2ldWzBdID09PSBrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZUNhY2hlW2ldWzFdO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIG5vdCBmb3VuZFxuICAgIHZhciBzY2hlbWEgPSBVdGlscy5jbG9uZURlZXAoa2V5KTtcbiAgICB0aGlzLnJlZmVyZW5jZUNhY2hlLnB1c2goW2tleSwgc2NoZW1hXSk7XG4gICAgcmV0dXJuIHNjaGVtYTtcbn07XG5cbmV4cG9ydHMuZ2V0U2NoZW1hQnlVcmkgPSBmdW5jdGlvbiAocmVwb3J0LCB1cmksIHJvb3QpIHtcbiAgICB2YXIgcmVtb3RlUGF0aCA9IGdldFJlbW90ZVBhdGgodXJpKSxcbiAgICAgICAgcXVlcnlQYXRoID0gZ2V0UXVlcnlQYXRoKHVyaSksXG4gICAgICAgIHJlc3VsdCA9IHJlbW90ZVBhdGggPyB0aGlzLmNhY2hlW3JlbW90ZVBhdGhdIDogcm9vdDtcblxuICAgIGlmIChyZXN1bHQgJiYgcmVtb3RlUGF0aCkge1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIGF2b2lkIGNvbXBpbGluZyBzY2hlbWFzIGluIGEgcmVjdXJzaXZlIGxvb3BcbiAgICAgICAgdmFyIGNvbXBpbGVSZW1vdGUgPSByZXN1bHQgIT09IHJvb3Q7XG4gICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGNvbXBpbGUgYW5kIHZhbGlkYXRlIHJlc29sdmVkIHNjaGVtYSAoaW4gY2FzZSBpdCdzIG5vdCBhbHJlYWR5KVxuICAgICAgICBpZiAoY29tcGlsZVJlbW90ZSkge1xuXG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKHJlbW90ZVBhdGgpO1xuXG4gICAgICAgICAgICB2YXIgcmVtb3RlUmVwb3J0ID0gbmV3IFJlcG9ydChyZXBvcnQpO1xuICAgICAgICAgICAgaWYgKFNjaGVtYUNvbXBpbGF0aW9uLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCByZW1vdGVSZXBvcnQsIHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICBTY2hlbWFWYWxpZGF0aW9uLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVtb3RlUmVwb3J0LCByZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHJlbW90ZVJlcG9ydElzVmFsaWQgPSByZW1vdGVSZXBvcnQuaXNWYWxpZCgpO1xuICAgICAgICAgICAgaWYgKCFyZW1vdGVSZXBvcnRJc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiUkVNT1RFX05PVF9WQUxJRFwiLCBbdXJpXSwgcmVtb3RlUmVwb3J0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG5cbiAgICAgICAgICAgIGlmICghcmVtb3RlUmVwb3J0SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0ICYmIHF1ZXJ5UGF0aCkge1xuICAgICAgICB2YXIgcGFydHMgPSBxdWVyeVBhdGguc3BsaXQoXCIvXCIpO1xuICAgICAgICBmb3IgKHZhciBpZHggPSAwLCBsaW0gPSBwYXJ0cy5sZW5ndGg7IGlkeCA8IGxpbTsgaWR4KyspIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBkZWNvZGVKU09OUG9pbnRlcihwYXJ0c1tpZHhdKTtcbiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsgLy8gaXQncyBhbiBpZFxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpbmRJZChyZXN1bHQsIGtleSk7XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBpdCdzIGEgcGF0aCBiZWhpbmQgaWRcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHRba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnRzLmdldFJlbW90ZVBhdGggPSBnZXRSZW1vdGVQYXRoO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBSZXBvcnQgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKTtcbnZhciBTY2hlbWFDYWNoZSA9IHJlcXVpcmUoXCIuL1NjaGVtYUNhY2hlXCIpO1xudmFyIFV0aWxzICAgICAgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5cbmZ1bmN0aW9uIG1lcmdlUmVmZXJlbmNlKHNjb3BlLCByZWYpIHtcbiAgICBpZiAoVXRpbHMuaXNBYnNvbHV0ZVVyaShyZWYpKSB7XG4gICAgICAgIHJldHVybiByZWY7XG4gICAgfVxuXG4gICAgdmFyIGpvaW5lZFNjb3BlID0gc2NvcGUuam9pbihcIlwiKSxcbiAgICAgICAgaXNTY29wZUFic29sdXRlID0gVXRpbHMuaXNBYnNvbHV0ZVVyaShqb2luZWRTY29wZSksXG4gICAgICAgIGlzU2NvcGVSZWxhdGl2ZSA9IFV0aWxzLmlzUmVsYXRpdmVVcmkoam9pbmVkU2NvcGUpLFxuICAgICAgICBpc1JlZlJlbGF0aXZlID0gVXRpbHMuaXNSZWxhdGl2ZVVyaShyZWYpLFxuICAgICAgICB0b1JlbW92ZTtcblxuICAgIGlmIChpc1Njb3BlQWJzb2x1dGUgJiYgaXNSZWZSZWxhdGl2ZSkge1xuICAgICAgICB0b1JlbW92ZSA9IGpvaW5lZFNjb3BlLm1hdGNoKC9cXC9bXlxcL10qJC8pO1xuICAgICAgICBpZiAodG9SZW1vdmUpIHtcbiAgICAgICAgICAgIGpvaW5lZFNjb3BlID0gam9pbmVkU2NvcGUuc2xpY2UoMCwgdG9SZW1vdmUuaW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNTY29wZVJlbGF0aXZlICYmIGlzUmVmUmVsYXRpdmUpIHtcbiAgICAgICAgam9pbmVkU2NvcGUgPSBcIlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRvUmVtb3ZlID0gam9pbmVkU2NvcGUubWF0Y2goL1teIy9dKyQvKTtcbiAgICAgICAgaWYgKHRvUmVtb3ZlKSB7XG4gICAgICAgICAgICBqb2luZWRTY29wZSA9IGpvaW5lZFNjb3BlLnNsaWNlKDAsIHRvUmVtb3ZlLmluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZXMgPSBqb2luZWRTY29wZSArIHJlZjtcbiAgICByZXMgPSByZXMucmVwbGFjZSgvIyMvLCBcIiNcIik7XG4gICAgcmV0dXJuIHJlcztcbn1cblxuZnVuY3Rpb24gY29sbGVjdFJlZmVyZW5jZXMob2JqLCByZXN1bHRzLCBzY29wZSwgcGF0aCkge1xuICAgIHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuICAgIHNjb3BlID0gc2NvcGUgfHwgW107XG4gICAgcGF0aCA9IHBhdGggfHwgW107XG5cbiAgICBpZiAodHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCBvYmogPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouaWQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc2NvcGUucHVzaChvYmouaWQpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb2JqLiRyZWYgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIG9iai5fXyRyZWZSZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXN1bHRzLnB1c2goe1xuICAgICAgICAgICAgcmVmOiBtZXJnZVJlZmVyZW5jZShzY29wZSwgb2JqLiRyZWYpLFxuICAgICAgICAgICAga2V5OiBcIiRyZWZcIixcbiAgICAgICAgICAgIG9iajogb2JqLFxuICAgICAgICAgICAgcGF0aDogcGF0aC5zbGljZSgwKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvYmouJHNjaGVtYSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2Ygb2JqLl9fJHNjaGVtYVJlc29sdmVkID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgICByZWY6IG1lcmdlUmVmZXJlbmNlKHNjb3BlLCBvYmouJHNjaGVtYSksXG4gICAgICAgICAgICBrZXk6IFwiJHNjaGVtYVwiLFxuICAgICAgICAgICAgb2JqOiBvYmosXG4gICAgICAgICAgICBwYXRoOiBwYXRoLnNsaWNlKDApXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciBpZHg7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICBpZHggPSBvYmoubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBjb2xsZWN0UmVmZXJlbmNlcyhvYmpbaWR4XSwgcmVzdWx0cywgc2NvcGUsIHBhdGgpO1xuICAgICAgICAgICAgcGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgLy8gZG8gbm90IHJlY3Vyc2UgdGhyb3VnaCByZXNvbHZlZCByZWZlcmVuY2VzIGFuZCBvdGhlciB6LXNjaGVtYSBwcm9wc1xuICAgICAgICAgICAgaWYgKGtleXNbaWR4XS5pbmRleE9mKFwiX18kXCIpID09PSAwKSB7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICBwYXRoLnB1c2goa2V5c1tpZHhdKTtcbiAgICAgICAgICAgIGNvbGxlY3RSZWZlcmVuY2VzKG9ialtrZXlzW2lkeF1dLCByZXN1bHRzLCBzY29wZSwgcGF0aCk7XG4gICAgICAgICAgICBwYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmouaWQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc2NvcGUucG9wKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbnZhciBjb21waWxlQXJyYXlPZlNjaGVtYXNMb29wID0gZnVuY3Rpb24gKG1haW5SZXBvcnQsIGFycikge1xuICAgIHZhciBpZHggPSBhcnIubGVuZ3RoLFxuICAgICAgICBjb21waWxlZENvdW50ID0gMDtcblxuICAgIHdoaWxlIChpZHgtLSkge1xuXG4gICAgICAgIC8vIHRyeSB0byBjb21waWxlIGVhY2ggc2NoZW1hIHNlcGFyYXRlbHlcbiAgICAgICAgdmFyIHJlcG9ydCA9IG5ldyBSZXBvcnQobWFpblJlcG9ydCk7XG4gICAgICAgIHZhciBpc1ZhbGlkID0gZXhwb3J0cy5jb21waWxlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBhcnJbaWR4XSk7XG4gICAgICAgIGlmIChpc1ZhbGlkKSB7IGNvbXBpbGVkQ291bnQrKzsgfVxuXG4gICAgICAgIC8vIGNvcHkgZXJyb3JzIHRvIHJlcG9ydFxuICAgICAgICBtYWluUmVwb3J0LmVycm9ycyA9IG1haW5SZXBvcnQuZXJyb3JzLmNvbmNhdChyZXBvcnQuZXJyb3JzKTtcblxuICAgIH1cblxuICAgIHJldHVybiBjb21waWxlZENvdW50O1xufTtcblxuZnVuY3Rpb24gZmluZElkKGFyciwgaWQpIHtcbiAgICB2YXIgaWR4ID0gYXJyLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgaWYgKGFycltpZHhdLmlkID09PSBpZCkge1xuICAgICAgICAgICAgcmV0dXJuIGFycltpZHhdO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG52YXIgY29tcGlsZUFycmF5T2ZTY2hlbWFzID0gZnVuY3Rpb24gKHJlcG9ydCwgYXJyKSB7XG5cbiAgICB2YXIgY29tcGlsZWQgPSAwLFxuICAgICAgICBsYXN0TG9vcENvbXBpbGVkO1xuXG4gICAgZG8ge1xuXG4gICAgICAgIC8vIHJlbW92ZSBhbGwgVU5SRVNPTFZBQkxFX1JFRkVSRU5DRSBlcnJvcnMgYmVmb3JlIGNvbXBpbGluZyBhcnJheSBhZ2FpblxuICAgICAgICB2YXIgaWR4ID0gcmVwb3J0LmVycm9ycy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgaWYgKHJlcG9ydC5lcnJvcnNbaWR4XS5jb2RlID09PSBcIlVOUkVTT0xWQUJMRV9SRUZFUkVOQ0VcIikge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5lcnJvcnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZW1lbWJlciBob3cgbWFueSB3ZXJlIGNvbXBpbGVkIGluIHRoZSBsYXN0IGxvb3BcbiAgICAgICAgbGFzdExvb3BDb21waWxlZCA9IGNvbXBpbGVkO1xuXG4gICAgICAgIC8vIGNvdW50IGhvdyBtYW55IGFyZSBjb21waWxlZCBub3dcbiAgICAgICAgY29tcGlsZWQgPSBjb21waWxlQXJyYXlPZlNjaGVtYXNMb29wLmNhbGwodGhpcywgcmVwb3J0LCBhcnIpO1xuXG4gICAgICAgIC8vIGZpeCBfXyRtaXNzaW5nUmVmZXJlbmNlcyBpZiBwb3NzaWJsZVxuICAgICAgICBpZHggPSBhcnIubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBzY2ggPSBhcnJbaWR4XTtcbiAgICAgICAgICAgIGlmIChzY2guX18kbWlzc2luZ1JlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWR4MiA9IHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVmT2JqID0gc2NoLl9fJG1pc3NpbmdSZWZlcmVuY2VzW2lkeDJdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBmaW5kSWQoYXJyLCByZWZPYmoucmVmKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1pZ2h0IGNyZWF0ZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZPYmoub2JqW1wiX19cIiArIHJlZk9iai5rZXkgKyBcIlJlc29sdmVkXCJdID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIHJlc29sdmVkIG5vdyBzbyBkZWxldGUgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcy5zcGxpY2UoaWR4MiwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNjaC5fXyRtaXNzaW5nUmVmZXJlbmNlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBrZWVwIHJlcGVhdGluZyBpZiBub3QgYWxsIGNvbXBpbGVkIGFuZCBhdCBsZWFzdCBvbmUgbW9yZSB3YXMgY29tcGlsZWQgaW4gdGhlIGxhc3QgbG9vcFxuICAgIH0gd2hpbGUgKGNvbXBpbGVkICE9PSBhcnIubGVuZ3RoICYmIGNvbXBpbGVkICE9PSBsYXN0TG9vcENvbXBpbGVkKTtcblxuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xuXG59O1xuXG5leHBvcnRzLmNvbXBpbGVTY2hlbWEgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcblxuICAgIHJlcG9ydC5jb21tb25FcnJvck1lc3NhZ2UgPSBcIlNDSEVNQV9DT01QSUxBVElPTl9GQUlMRURcIjtcblxuICAgIC8vIGlmIHNjaGVtYSBpcyBhIHN0cmluZywgYXNzdW1lIGl0J3MgYSB1cmlcbiAgICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB2YXIgbG9hZGVkU2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hQnlVcmkuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgICAgIGlmICghbG9hZGVkU2NoZW1hKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJTQ0hFTUFfTk9UX1JFQUNIQUJMRVwiLCBbc2NoZW1hXSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgc2NoZW1hID0gbG9hZGVkU2NoZW1hO1xuICAgIH1cblxuICAgIC8vIGlmIHNjaGVtYSBpcyBhbiBhcnJheSwgYXNzdW1lIGl0J3MgYW4gYXJyYXkgb2Ygc2NoZW1hc1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBpbGVBcnJheU9mU2NoZW1hcy5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGFuIGlkIHRoYW4gaXQgc2hvdWxkIGJlIGNhY2hlZCBhbHJlYWR5IChpZiB0aGlzIGluc3RhbmNlIGhhcyBjb21waWxlZCBpdClcbiAgICBpZiAoc2NoZW1hLl9fJGNvbXBpbGVkICYmIHNjaGVtYS5pZCAmJiBTY2hlbWFDYWNoZS5jaGVja0NhY2hlRm9yVXJpLmNhbGwodGhpcywgc2NoZW1hLmlkKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgc2NoZW1hLl9fJGNvbXBpbGVkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGRvIG5vdCByZS1jb21waWxlIHNjaGVtYXNcbiAgICBpZiAoc2NoZW1hLl9fJGNvbXBpbGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzY2hlbWEuaWQpIHtcbiAgICAgICAgLy8gYWRkIHRoaXMgdG8gb3VyIHNjaGVtYUNhY2hlIChiZWZvcmUgY29tcGlsYXRpb24gaW4gY2FzZSB3ZSBoYXZlIHJlZmVyZW5jZXMgaW5jbHVkaW5nIGlkKVxuICAgICAgICBTY2hlbWFDYWNoZS5jYWNoZVNjaGVtYUJ5VXJpLmNhbGwodGhpcywgc2NoZW1hLmlkLCBzY2hlbWEpO1xuICAgIH1cblxuICAgIC8vIGRlbGV0ZSBhbGwgX18kbWlzc2luZ1JlZmVyZW5jZXMgZnJvbSBwcmV2aW91cyBjb21waWxhdGlvbiBhdHRlbXB0c1xuICAgIHZhciBpc1ZhbGlkRXhjZXB0UmVmZXJlbmNlcyA9IHJlcG9ydC5pc1ZhbGlkKCk7XG4gICAgZGVsZXRlIHNjaGVtYS5fXyRtaXNzaW5nUmVmZXJlbmNlcztcblxuICAgIC8vIGNvbGxlY3QgYWxsIHJlZmVyZW5jZXMgdGhhdCBuZWVkIHRvIGJlIHJlc29sdmVkIC0gJHJlZiBhbmQgJHNjaGVtYVxuICAgIHZhciByZWZzID0gY29sbGVjdFJlZmVyZW5jZXMuY2FsbCh0aGlzLCBzY2hlbWEpLFxuICAgICAgICBpZHggPSByZWZzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgLy8gcmVzb2x2ZSBhbGwgdGhlIGNvbGxlY3RlZCByZWZlcmVuY2VzIGludG8gX194eHhSZXNvbHZlZCBwb2ludGVyXG4gICAgICAgIHZhciByZWZPYmogPSByZWZzW2lkeF07XG4gICAgICAgIHZhciByZXNwb25zZSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYUJ5VXJpLmNhbGwodGhpcywgcmVwb3J0LCByZWZPYmoucmVmLCBzY2hlbWEpO1xuXG4gICAgICAgIC8vIHdlIGNhbiB0cnkgdG8gdXNlIGN1c3RvbSBzY2hlbWFSZWFkZXIgaWYgYXZhaWxhYmxlXG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBzY2hlbWFSZWFkZXIgPSB0aGlzLmdldFNjaGVtYVJlYWRlcigpO1xuICAgICAgICAgICAgaWYgKHNjaGVtYVJlYWRlcikge1xuICAgICAgICAgICAgICAgIC8vIGl0J3Mgc3VwcG9zZWQgdG8gcmV0dXJuIGEgdmFsaWQgc2NoZW1hXG4gICAgICAgICAgICAgICAgdmFyIHMgPSBzY2hlbWFSZWFkZXIocmVmT2JqLnJlZik7XG4gICAgICAgICAgICAgICAgaWYgKHMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQgbmVlZHMgdG8gaGF2ZSB0aGUgaWRcbiAgICAgICAgICAgICAgICAgICAgcy5pZCA9IHJlZk9iai5yZWY7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRyeSB0byBjb21waWxlIHRoZSBzY2hlbWFcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1YnJlcG9ydCA9IG5ldyBSZXBvcnQocmVwb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleHBvcnRzLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzdWJyZXBvcnQsIHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3B5IGVycm9ycyB0byByZXBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5lcnJvcnMgPSByZXBvcnQuZXJyb3JzLmNvbmNhdChzdWJyZXBvcnQuZXJyb3JzKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hQnlVcmkuY2FsbCh0aGlzLCByZXBvcnQsIHJlZk9iai5yZWYsIHNjaGVtYSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG5cbiAgICAgICAgICAgIHZhciBpc0Fic29sdXRlID0gVXRpbHMuaXNBYnNvbHV0ZVVyaShyZWZPYmoucmVmKTtcbiAgICAgICAgICAgIHZhciBpc0Rvd25sb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBpZ25vcmVVbnJlc29sdmFibGVSZW1vdGVzID0gdGhpcy5vcHRpb25zLmlnbm9yZVVucmVzb2x2YWJsZVJlZmVyZW5jZXMgPT09IHRydWU7XG5cbiAgICAgICAgICAgIGlmIChpc0Fic29sdXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IGFkZCBVTlJFU09MVkFCTEVfUkVGRVJFTkNFIGZvciBzY2hlbWFzIHdlIGFscmVhZHkgaGF2ZSBkb3dubG9hZGVkXG4gICAgICAgICAgICAgICAgLy8gYW5kIHNldCB0aHJvdWdoIHNldFJlbW90ZVJlZmVyZW5jZSBtZXRob2RcbiAgICAgICAgICAgICAgICBpc0Rvd25sb2FkZWQgPSBTY2hlbWFDYWNoZS5jaGVja0NhY2hlRm9yVXJpLmNhbGwodGhpcywgcmVmT2JqLnJlZik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNBYnNvbHV0ZSB8fCAhaXNEb3dubG9hZGVkICYmICFpZ25vcmVVbnJlc29sdmFibGVSZW1vdGVzKSB7XG4gICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkocmVwb3J0LnBhdGgsIHJlZk9iai5wYXRoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJVTlJFU09MVkFCTEVfUkVGRVJFTkNFXCIsIFtyZWZPYmoucmVmXSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGguc2xpY2UoMCwgLXJlZk9iai5wYXRoLmxlbmd0aCk7XG5cbiAgICAgICAgICAgICAgICAvLyBwdXNibGlzaCB1bnJlc29sdmVkIHJlZmVyZW5jZXMgb3V0XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRFeGNlcHRSZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5fXyRtaXNzaW5nUmVmZXJlbmNlcyA9IHNjaGVtYS5fXyRtaXNzaW5nUmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLl9fJG1pc3NpbmdSZWZlcmVuY2VzLnB1c2gocmVmT2JqKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcyBtaWdodCBjcmVhdGUgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICByZWZPYmoub2JqW1wiX19cIiArIHJlZk9iai5rZXkgKyBcIlJlc29sdmVkXCJdID0gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgdmFyIGlzVmFsaWQgPSByZXBvcnQuaXNWYWxpZCgpO1xuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIHNjaGVtYS5fXyRjb21waWxlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNjaGVtYS5pZCkge1xuICAgICAgICAgICAgLy8gcmVtb3ZlIHRoaXMgc2NoZW1hIGZyb20gc2NoZW1hQ2FjaGUgYmVjYXVzZSBpdCBmYWlsZWQgdG8gY29tcGlsZVxuICAgICAgICAgICAgU2NoZW1hQ2FjaGUucmVtb3ZlRnJvbUNhY2hlQnlVcmkuY2FsbCh0aGlzLCBzY2hlbWEuaWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkO1xuXG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBGb3JtYXRWYWxpZGF0b3JzID0gcmVxdWlyZShcIi4vRm9ybWF0VmFsaWRhdG9yc1wiKSxcbiAgICBKc29uVmFsaWRhdGlvbiAgID0gcmVxdWlyZShcIi4vSnNvblZhbGlkYXRpb25cIiksXG4gICAgUmVwb3J0ICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1JlcG9ydFwiKSxcbiAgICBVdGlscyAgICAgICAgICAgID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5cbnZhciBTY2hlbWFWYWxpZGF0b3JzID0ge1xuICAgICRyZWY6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWFwcHNhd2ctanNvbi1wb2ludGVyLTA3XG4gICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXBicnlhbi16eXAtanNvbi1yZWYtMDNcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuJHJlZiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIiRyZWZcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICAkc2NoZW1hOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5zZWN0aW9uLjZcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuJHNjaGVtYSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIiRzY2hlbWFcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtdWx0aXBsZU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4xLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEubXVsdGlwbGVPZiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm11bHRpcGxlT2ZcIiwgXCJudW1iZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5tdWx0aXBsZU9mIDw9IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtdWx0aXBsZU9mXCIsIFwic3RyaWN0bHkgZ3JlYXRlciB0aGFuIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtYXhpbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4yLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEubWF4aW11bSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1heGltdW1cIiwgXCJudW1iZXJcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBleGNsdXNpdmVNYXhpbXVtOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuMS4yLjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuZXhjbHVzaXZlTWF4aW11bSAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJleGNsdXNpdmVNYXhpbXVtXCIsIFwiYm9vbGVhblwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heGltdW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9ERVBFTkRFTkNZXCIsIFtcImV4Y2x1c2l2ZU1heGltdW1cIiwgXCJtYXhpbXVtXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluaW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMy4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLm1pbmltdW0gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtaW5pbXVtXCIsIFwibnVtYmVyXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZXhjbHVzaXZlTWluaW11bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjEuMy4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmV4Y2x1c2l2ZU1pbmltdW0gIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiZXhjbHVzaXZlTWluaW11bVwiLCBcImJvb2xlYW5cIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5taW5pbXVtID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfREVQRU5ERU5DWVwiLCBbXCJleGNsdXNpdmVNaW5pbXVtXCIsIFwibWluaW11bVwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heExlbmd0aDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMS4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLm1heExlbmd0aCkgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWF4TGVuZ3RoXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heExlbmd0aCA8IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJtYXhMZW5ndGhcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtaW5MZW5ndGg6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4yLjIuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5taW5MZW5ndGgpICE9PSBcImludGVnZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1pbkxlbmd0aFwiLCBcImludGVnZXJcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5taW5MZW5ndGggPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWluTGVuZ3RoXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGF0dGVybjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjIuMy4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLnBhdHRlcm4gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJwYXR0ZXJuXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgUmVnRXhwKHNjaGVtYS5wYXR0ZXJuKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1BBVFRFUk5cIiwgW1wicGF0dGVyblwiLCBzY2hlbWEucGF0dGVybl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhZGRpdGlvbmFsSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjEuMVxuICAgICAgICB2YXIgdHlwZSA9IFV0aWxzLndoYXRJcyhzY2hlbWEuYWRkaXRpb25hbEl0ZW1zKTtcbiAgICAgICAgaWYgKHR5cGUgIT09IFwiYm9vbGVhblwiICYmIHR5cGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJhZGRpdGlvbmFsSXRlbXNcIiwgW1wiYm9vbGVhblwiLCBcIm9iamVjdFwiXV0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJhZGRpdGlvbmFsSXRlbXNcIik7XG4gICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuMS4xXG4gICAgICAgIHZhciB0eXBlID0gVXRpbHMud2hhdElzKHNjaGVtYS5pdGVtcyk7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJpdGVtc1wiKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5pdGVtcyk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEuaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5pdGVtc1tpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJpdGVtc1wiLCBbXCJhcnJheVwiLCBcIm9iamVjdFwiXV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3VzdG9tIC0gc3RyaWN0IG1vZGVcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZUFkZGl0aW9uYWwgPT09IHRydWUgJiYgc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gdW5kZWZpbmVkICYmIEFycmF5LmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcImFkZGl0aW9uYWxJdGVtc1wiXSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VzdG9tZSAtIGFzc3VtZSBkZWZpbmVkIGZhbHNlIG1vZGVcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hc3N1bWVBZGRpdGlvbmFsID09PSB0cnVlICYmIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMgPT09IHVuZGVmaW5lZCAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgICAgIHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWF4SXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjIuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5tYXhJdGVtcyAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm1heEl0ZW1zXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heEl0ZW1zIDwgMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcIm1heEl0ZW1zXCIsIFwiZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0byAwXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWluSXRlbXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS4zLjMuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5taW5JdGVtcykgIT09IFwiaW50ZWdlclwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wibWluSXRlbXNcIiwgXCJpbnRlZ2VyXCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEubWluSXRlbXMgPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWluSXRlbXNcIiwgXCJncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvIDBcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB1bmlxdWVJdGVtczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjMuNC4xXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLnVuaXF1ZUl0ZW1zICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInVuaXF1ZUl0ZW1zXCIsIFwiYm9vbGVhblwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1heFByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjEuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5tYXhQcm9wZXJ0aWVzKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtYXhQcm9wZXJ0aWVzXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1heFByb3BlcnRpZXMgPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWF4UHJvcGVydGllc1wiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1pblByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjIuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5taW5Qcm9wZXJ0aWVzKSAhPT0gXCJpbnRlZ2VyXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJtaW5Qcm9wZXJ0aWVzXCIsIFwiaW50ZWdlclwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLm1pblByb3BlcnRpZXMgPCAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wibWluUHJvcGVydGllc1wiLCBcImdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8gMFwiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJlcXVpcmVkOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC4zLjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEucmVxdWlyZWQpICE9PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJyZXF1aXJlZFwiLCBcImFycmF5XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEucmVxdWlyZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wicmVxdWlyZWRcIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEucmVxdWlyZWQubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEucmVxdWlyZWRbaWR4XSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1ZBTFVFX1RZUEVcIiwgW1wicmVxdWlyZWRcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYS5yZXF1aXJlZCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcInJlcXVpcmVkXCIsIFwiYW4gYXJyYXkgd2l0aCB1bmlxdWUgaXRlbXNcIl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNC4xXG4gICAgICAgIHZhciB0eXBlID0gVXRpbHMud2hhdElzKHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgIGlmICh0eXBlICE9PSBcImJvb2xlYW5cIiAmJiB0eXBlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiYWRkaXRpb25hbFByb3BlcnRpZXNcIiwgW1wiYm9vbGVhblwiLCBcIm9iamVjdFwiXV0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcHJvcGVydGllczogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjQuNC4xXG4gICAgICAgIGlmIChVdGlscy53aGF0SXMoc2NoZW1hLnByb3BlcnRpZXMpICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wicHJvcGVydGllc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5wcm9wZXJ0aWVzKSxcbiAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF0sXG4gICAgICAgICAgICAgICAgdmFsID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJwcm9wZXJ0aWVzXCIpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChrZXkpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgdmFsKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjdXN0b20gLSBzdHJpY3QgbW9kZVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlQWRkaXRpb25hbCA9PT0gdHJ1ZSAmJiBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjdXN0b21lIC0gYXNzdW1lIGRlZmluZWQgZmFsc2UgbW9kZVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFzc3VtZUFkZGl0aW9uYWwgPT09IHRydWUgJiYgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGN1c3RvbSAtIGZvcmNlUHJvcGVydGllc1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZvcmNlUHJvcGVydGllcyA9PT0gdHJ1ZSAmJiBrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiQ1VTVE9NX01PREVfRk9SQ0VfUFJPUEVSVElFU1wiLCBbXCJwcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGF0dGVyblByb3BlcnRpZXM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS40LjQuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcykgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJwYXR0ZXJuUHJvcGVydGllc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyksXG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdLFxuICAgICAgICAgICAgICAgIHZhbCA9IHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllc1trZXldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBSZWdFeHAoa2V5KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1BBVFRFUk5cIiwgW1wicGF0dGVyblByb3BlcnRpZXNcIiwga2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwicGF0dGVyblByb3BlcnRpZXNcIik7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGtleS50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHZhbCk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3VzdG9tIC0gZm9yY2VQcm9wZXJ0aWVzXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VQcm9wZXJ0aWVzID09PSB0cnVlICYmIGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJDVVNUT01fTU9ERV9GT1JDRV9QUk9QRVJUSUVTXCIsIFtcInBhdHRlcm5Qcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNC41LjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEuZGVwZW5kZW5jaWVzKSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImRlcGVuZGVuY2llc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNjaGVtYUtleSA9IGtleXNbaWR4XSxcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hRGVwZW5kZW5jeSA9IHNjaGVtYS5kZXBlbmRlbmNpZXNbc2NoZW1hS2V5XSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFV0aWxzLndoYXRJcyhzY2hlbWFEZXBlbmRlbmN5KTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJkZXBlbmRlbmNpZXNcIik7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goc2NoZW1hS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hRGVwZW5kZW5jeSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaWR4MiA9IHNjaGVtYURlcGVuZGVuY3kubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaWR4MiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImRlcGVuZGVuY2llc1wiLCBcIm5vdCBlbXB0eSBhcnJheVwiXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGlkeDItLSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWFEZXBlbmRlbmN5W2lkeDJdICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9WQUxVRV9UWVBFXCIsIFtcImRlcGVuZGVuc2ljZXNcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYURlcGVuZGVuY3kpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImRlcGVuZGVuY2llc1wiLCBcImFuIGFycmF5IHdpdGggdW5pcXVlIGl0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVkFMVUVfVFlQRVwiLCBbXCJkZXBlbmRlbmNpZXNcIiwgXCJvYmplY3Qgb3IgYXJyYXlcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgZW51bTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuMS4xXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5lbnVtKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJlbnVtXCIsIFwiYXJyYXlcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5lbnVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImVudW1cIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYS5lbnVtKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJlbnVtXCIsIFwiYW4gYXJyYXkgd2l0aCB1bmlxdWUgZWxlbWVudHNcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB0eXBlOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS4yLjFcbiAgICAgICAgdmFyIHByaW1pdGl2ZVR5cGVzID0gW1wiYXJyYXlcIiwgXCJib29sZWFuXCIsIFwiaW50ZWdlclwiLCBcIm51bWJlclwiLCBcIm51bGxcIiwgXCJvYmplY3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICBwcmltaXRpdmVUeXBlU3RyID0gcHJpbWl0aXZlVHlwZXMuam9pbihcIixcIiksXG4gICAgICAgICAgICBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShzY2hlbWEudHlwZSk7XG5cbiAgICAgICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEudHlwZS5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVHlwZXMuaW5kZXhPZihzY2hlbWEudHlwZVtpZHhdKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcInR5cGVcIiwgcHJpbWl0aXZlVHlwZVN0cl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChVdGlscy5pc1VuaXF1ZUFycmF5KHNjaGVtYS50eXBlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1widHlwZVwiLCBcImFuIG9iamVjdCB3aXRoIHVuaXF1ZSBwcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2NoZW1hLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGlmIChwcmltaXRpdmVUeXBlcy5pbmRleE9mKHNjaGVtYS50eXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1widHlwZVwiLCBwcmltaXRpdmVUeXBlU3RyXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1widHlwZVwiLCBbXCJzdHJpbmdcIiwgXCJhcnJheVwiXV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ub0VtcHR5U3RyaW5ncyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcInN0cmluZ1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1pbkxlbmd0aCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5lbnVtID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLm1pbkxlbmd0aCA9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubm9FbXB0eUFycmF5cyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcImFycmF5XCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwiYXJyYXlcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5taW5JdGVtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5taW5JdGVtcyA9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VQcm9wZXJ0aWVzID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwib2JqZWN0XCIgfHwgaXNBcnJheSAmJiBzY2hlbWEudHlwZS5pbmRleE9mKFwib2JqZWN0XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEucHJvcGVydGllcyA9PT0gdW5kZWZpbmVkICYmIHNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJwcm9wZXJ0aWVzXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZUl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYXJyYXlcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJhcnJheVwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLml0ZW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIml0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZU1pbkl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYXJyYXlcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJhcnJheVwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1pbkl0ZW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIm1pbkl0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZU1heEl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYXJyYXlcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJhcnJheVwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1heEl0ZW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIm1heEl0ZW1zXCJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JjZU1pbkxlbmd0aCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiIHx8IGlzQXJyYXkgJiYgc2NoZW1hLnR5cGUuaW5kZXhPZihcInN0cmluZ1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm1pbkxlbmd0aCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5mb3JtYXQgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZW51bSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYS5wYXR0ZXJuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcIm1pbkxlbmd0aFwiXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VNYXhMZW5ndGggPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBpc0FycmF5ICYmIHNjaGVtYS50eXBlLmluZGV4T2YoXCJzdHJpbmdcIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5tYXhMZW5ndGggPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEuZm9ybWF0ID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hLmVudW0gPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBzY2hlbWEucGF0dGVybiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVU5ERUZJTkVEX1NUUklDVFwiLCBbXCJtYXhMZW5ndGhcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWxsT2Y6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjMuMVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuYWxsT2YpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImFsbE9mXCIsIFwiYXJyYXlcIl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYS5hbGxPZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfTVVTVF9CRVwiLCBbXCJhbGxPZlwiLCBcImFuIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnRcIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGlkeCA9IHNjaGVtYS5hbGxPZi5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiYWxsT2ZcIik7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChpZHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLmFsbE9mW2lkeF0pO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBhbnlPZjogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi41LjUuNC4xXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5hbnlPZikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiYW55T2ZcIiwgXCJhcnJheVwiXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLmFueU9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9NVVNUX0JFXCIsIFtcImFueU9mXCIsIFwiYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gc2NoZW1hLmFueU9mLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goXCJhbnlPZlwiKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKGlkeC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnZhbGlkYXRlU2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEuYW55T2ZbaWR4XSk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG9uZU9mOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS41LjFcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hLm9uZU9mKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJvbmVPZlwiLCBcImFycmF5XCJdKTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEub25lT2YubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX01VU1RfQkVcIiwgW1wib25lT2ZcIiwgXCJhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50XCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBzY2hlbWEub25lT2YubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChcIm9uZU9mXCIpO1xuICAgICAgICAgICAgICAgIHJlcG9ydC5wYXRoLnB1c2goaWR4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYS5vbmVPZltpZHhdKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgbm90OiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjUuNS42LjFcbiAgICAgICAgaWYgKFV0aWxzLndoYXRJcyhzY2hlbWEubm90KSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcIm5vdFwiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwibm90XCIpO1xuICAgICAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hLm5vdCk7XG4gICAgICAgICAgICByZXBvcnQucGF0aC5wb3AoKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVmaW5pdGlvbnM6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNS41LjcuMVxuICAgICAgICBpZiAoVXRpbHMud2hhdElzKHNjaGVtYS5kZWZpbml0aW9ucykgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJkZWZpbml0aW9uc1wiLCBcIm9iamVjdFwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNjaGVtYS5kZWZpbml0aW9ucyksXG4gICAgICAgICAgICAgICAgaWR4ID0ga2V5cy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdLFxuICAgICAgICAgICAgICAgICAgICB2YWwgPSBzY2hlbWEuZGVmaW5pdGlvbnNba2V5XTtcbiAgICAgICAgICAgICAgICByZXBvcnQucGF0aC5wdXNoKFwiZGVmaW5pdGlvbnNcIik7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIGV4cG9ydHMudmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHZhbCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgcmVwb3J0LnBhdGgucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGZvcm1hdDogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmZvcm1hdCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImZvcm1hdFwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoRm9ybWF0VmFsaWRhdG9yc1tzY2hlbWEuZm9ybWF0XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiVU5LTk9XTl9GT1JNQVRcIiwgW3NjaGVtYS5mb3JtYXRdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgaWQ6IGZ1bmN0aW9uIChyZXBvcnQsIHNjaGVtYSkge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS1jb3JlLmh0bWwjcmZjLnNlY3Rpb24uNy4yXG4gICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hLmlkICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1RZUEVfRVhQRUNURURcIiwgW1wiaWRcIiwgXCJzdHJpbmdcIl0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICB0aXRsZTogZnVuY3Rpb24gKHJlcG9ydCwgc2NoZW1hKSB7XG4gICAgICAgIC8vIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNyZmMuc2VjdGlvbi42LjFcbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEudGl0bGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIktFWVdPUkRfVFlQRV9FWFBFQ1RFRFwiLCBbXCJ0aXRsZVwiLCBcInN0cmluZ1wiXSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGRlc2NyaXB0aW9uOiBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcbiAgICAgICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjYuMVxuICAgICAgICBpZiAodHlwZW9mIHNjaGVtYS5kZXNjcmlwdGlvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9UWVBFX0VYUEVDVEVEXCIsIFtcImRlc2NyaXB0aW9uXCIsIFwic3RyaW5nXCJdKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJkZWZhdWx0XCI6IGZ1bmN0aW9uICgvKiByZXBvcnQsIHNjaGVtYSAqLykge1xuICAgICAgICAvLyBodHRwOi8vanNvbi1zY2hlbWEub3JnL2xhdGVzdC9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWwjcmZjLnNlY3Rpb24uNi4yXG4gICAgICAgIC8vIFRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgcGxhY2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGlzIGtleXdvcmQuXG4gICAgfVxufTtcblxudmFyIHZhbGlkYXRlQXJyYXlPZlNjaGVtYXMgPSBmdW5jdGlvbiAocmVwb3J0LCBhcnIpIHtcbiAgICB2YXIgaWR4ID0gYXJyLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgZXhwb3J0cy52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgYXJyW2lkeF0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVwb3J0LmlzVmFsaWQoKTtcbn07XG5cbmV4cG9ydHMudmFsaWRhdGVTY2hlbWEgPSBmdW5jdGlvbiAocmVwb3J0LCBzY2hlbWEpIHtcblxuICAgIHJlcG9ydC5jb21tb25FcnJvck1lc3NhZ2UgPSBcIlNDSEVNQV9WQUxJREFUSU9OX0ZBSUxFRFwiO1xuXG4gICAgLy8gaWYgc2NoZW1hIGlzIGFuIGFycmF5LCBhc3N1bWUgaXQncyBhbiBhcnJheSBvZiBzY2hlbWFzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hKSkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVBcnJheU9mU2NoZW1hcy5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICB9XG5cbiAgICAvLyBkbyBub3QgcmV2YWxpZGF0ZSBzY2hlbWEgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZCBvbmNlXG4gICAgaWYgKHNjaGVtYS5fXyR2YWxpZGF0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaWYgJHNjaGVtYSBpcyBwcmVzZW50LCB0aGlzIHNjaGVtYSBzaG91bGQgdmFsaWRhdGUgYWdhaW5zdCB0aGF0ICRzY2hlbWFcbiAgICB2YXIgaGFzUGFyZW50U2NoZW1hID0gc2NoZW1hLiRzY2hlbWEgJiYgc2NoZW1hLmlkICE9PSBzY2hlbWEuJHNjaGVtYTtcbiAgICBpZiAoaGFzUGFyZW50U2NoZW1hKSB7XG4gICAgICAgIGlmIChzY2hlbWEuX18kc2NoZW1hUmVzb2x2ZWQgJiYgc2NoZW1hLl9fJHNjaGVtYVJlc29sdmVkICE9PSBzY2hlbWEpIHtcbiAgICAgICAgICAgIHZhciBzdWJSZXBvcnQgPSBuZXcgUmVwb3J0KHJlcG9ydCk7XG4gICAgICAgICAgICB2YXIgdmFsaWQgPSBKc29uVmFsaWRhdGlvbi52YWxpZGF0ZS5jYWxsKHRoaXMsIHN1YlJlcG9ydCwgc2NoZW1hLl9fJHNjaGVtYVJlc29sdmVkLCBzY2hlbWEpO1xuICAgICAgICAgICAgaWYgKHZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlBBUkVOVF9TQ0hFTUFfVkFMSURBVElPTl9GQUlMRURcIiwgbnVsbCwgc3ViUmVwb3J0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlVW5yZXNvbHZhYmxlUmVmZXJlbmNlcyAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJlcG9ydC5hZGRFcnJvcihcIlJFRl9VTlJFU09MVkVEXCIsIFtzY2hlbWEuJHNjaGVtYV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5ub1R5cGVsZXNzID09PSB0cnVlKSB7XG4gICAgICAgIC8vIGlzc3VlICMzNiAtIGluaGVyaXQgdHlwZSB0byBhbnlPZiwgb25lT2YsIGFsbE9mIGlmIG5vVHlwZWxlc3MgaXMgZGVmaW5lZFxuICAgICAgICBpZiAoc2NoZW1hLnR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFyIHNjaGVtYXMgPSBbXTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5hbnlPZikpIHsgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHNjaGVtYS5hbnlPZik7IH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5vbmVPZikpIHsgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHNjaGVtYS5vbmVPZik7IH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5hbGxPZikpIHsgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHNjaGVtYS5hbGxPZik7IH1cbiAgICAgICAgICAgIHNjaGVtYXMuZm9yRWFjaChmdW5jdGlvbiAoc2NoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzY2gudHlwZSkgeyBzY2gudHlwZSA9IHNjaGVtYS50eXBlOyB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbmQgaXNzdWUgIzM2XG4gICAgICAgIGlmIChzY2hlbWEuZW51bSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBzY2hlbWEudHlwZSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBzY2hlbWEuYW55T2YgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgc2NoZW1hLm9uZU9mID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHNjaGVtYS5ub3QgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgc2NoZW1hLiRyZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVwb3J0LmFkZEVycm9yKFwiS0VZV09SRF9VTkRFRklORURfU1RSSUNUXCIsIFtcInR5cGVcIl0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEpLFxuICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNbaWR4XTtcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKFwiX19cIikgPT09IDApIHsgY29udGludWU7IH1cbiAgICAgICAgaWYgKFNjaGVtYVZhbGlkYXRvcnNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBTY2hlbWFWYWxpZGF0b3JzW2tleV0uY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc1BhcmVudFNjaGVtYSkge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ub0V4dHJhS2V5d29yZHMgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXBvcnQuYWRkRXJyb3IoXCJLRVlXT1JEX1VORVhQRUNURURcIiwgW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlzVmFsaWQgPSByZXBvcnQuaXNWYWxpZCgpO1xuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIHNjaGVtYS5fXyR2YWxpZGF0ZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZDtcblxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLmlzQWJzb2x1dGVVcmkgPSBmdW5jdGlvbiAodXJpKSB7XG4gICAgcmV0dXJuIC9eaHR0cHM/OlxcL1xcLy8udGVzdCh1cmkpO1xufTtcblxuZXhwb3J0cy5pc1JlbGF0aXZlVXJpID0gZnVuY3Rpb24gKHVyaSkge1xuICAgIC8vIHJlbGF0aXZlIFVSSXMgdGhhdCBlbmQgd2l0aCBhIGhhc2ggc2lnbiwgaXNzdWUgIzU2XG4gICAgcmV0dXJuIC8uKyMvLnRlc3QodXJpKTtcbn07XG5cbmV4cG9ydHMud2hhdElzID0gZnVuY3Rpb24gKHdoYXQpIHtcblxuICAgIHZhciB0byA9IHR5cGVvZiB3aGF0O1xuXG4gICAgaWYgKHRvID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGlmICh3aGF0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkod2hhdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFycmF5XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwib2JqZWN0XCI7IC8vIHR5cGVvZiB3aGF0ID09PSAnb2JqZWN0JyAmJiB3aGF0ID09PSBPYmplY3Qod2hhdCkgJiYgIUFycmF5LmlzQXJyYXkod2hhdCk7XG4gICAgfVxuXG4gICAgaWYgKHRvID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIGlmIChOdW1iZXIuaXNGaW5pdGUod2hhdCkpIHtcbiAgICAgICAgICAgIGlmICh3aGF0ICUgMSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcImludGVnZXJcIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnVtYmVyXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTih3aGF0KSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibm90LWEtbnVtYmVyXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwidW5rbm93bi1udW1iZXJcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gdG87IC8vIHVuZGVmaW5lZCwgYm9vbGVhbiwgc3RyaW5nLCBmdW5jdGlvblxuXG59O1xuXG5leHBvcnRzLmFyZUVxdWFsID0gZnVuY3Rpb24gYXJlRXF1YWwoanNvbjEsIGpzb24yKSB7XG4gICAgLy8gaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5zZWN0aW9uLjMuNlxuXG4gICAgLy8gVHdvIEpTT04gdmFsdWVzIGFyZSBzYWlkIHRvIGJlIGVxdWFsIGlmIGFuZCBvbmx5IGlmOlxuICAgIC8vIGJvdGggYXJlIG51bGxzOyBvclxuICAgIC8vIGJvdGggYXJlIGJvb2xlYW5zLCBhbmQgaGF2ZSB0aGUgc2FtZSB2YWx1ZTsgb3JcbiAgICAvLyBib3RoIGFyZSBzdHJpbmdzLCBhbmQgaGF2ZSB0aGUgc2FtZSB2YWx1ZTsgb3JcbiAgICAvLyBib3RoIGFyZSBudW1iZXJzLCBhbmQgaGF2ZSB0aGUgc2FtZSBtYXRoZW1hdGljYWwgdmFsdWU7IG9yXG4gICAgaWYgKGpzb24xID09PSBqc29uMikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgaSwgbGVuO1xuXG4gICAgLy8gYm90aCBhcmUgYXJyYXlzLCBhbmQ6XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbjEpICYmIEFycmF5LmlzQXJyYXkoanNvbjIpKSB7XG4gICAgICAgIC8vIGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIGl0ZW1zOyBhbmRcbiAgICAgICAgaWYgKGpzb24xLmxlbmd0aCAhPT0ganNvbjIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaXRlbXMgYXQgdGhlIHNhbWUgaW5kZXggYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGlzIGRlZmluaXRpb247IG9yXG4gICAgICAgIGxlbiA9IGpzb24xLmxlbmd0aDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIWFyZUVxdWFsKGpzb24xW2ldLCBqc29uMltpXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gYm90aCBhcmUgb2JqZWN0cywgYW5kOlxuICAgIGlmIChleHBvcnRzLndoYXRJcyhqc29uMSkgPT09IFwib2JqZWN0XCIgJiYgZXhwb3J0cy53aGF0SXMoanNvbjIpID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIC8vIGhhdmUgdGhlIHNhbWUgc2V0IG9mIHByb3BlcnR5IG5hbWVzOyBhbmRcbiAgICAgICAgdmFyIGtleXMxID0gT2JqZWN0LmtleXMoanNvbjEpO1xuICAgICAgICB2YXIga2V5czIgPSBPYmplY3Qua2V5cyhqc29uMik7XG4gICAgICAgIGlmICghYXJlRXF1YWwoa2V5czEsIGtleXMyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHZhbHVlcyBmb3IgYSBzYW1lIHByb3BlcnR5IG5hbWUgYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGlzIGRlZmluaXRpb24uXG4gICAgICAgIGxlbiA9IGtleXMxLmxlbmd0aDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIWFyZUVxdWFsKGpzb24xW2tleXMxW2ldXSwganNvbjJba2V5czFbaV1dKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnRzLmlzVW5pcXVlQXJyYXkgPSBmdW5jdGlvbiAoYXJyLCBpbmRleGVzKSB7XG4gICAgdmFyIGksIGosIGwgPSBhcnIubGVuZ3RoO1xuICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCBsOyBqKyspIHtcbiAgICAgICAgICAgIGlmIChleHBvcnRzLmFyZUVxdWFsKGFycltpXSwgYXJyW2pdKSkge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleGVzKSB7IGluZGV4ZXMucHVzaChpLCBqKTsgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydHMuZGlmZmVyZW5jZSA9IGZ1bmN0aW9uIChiaWdTZXQsIHN1YlNldCkge1xuICAgIHZhciBhcnIgPSBbXSxcbiAgICAgICAgaWR4ID0gYmlnU2V0Lmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgaWYgKHN1YlNldC5pbmRleE9mKGJpZ1NldFtpZHhdKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKGJpZ1NldFtpZHhdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyO1xufTtcblxuLy8gTk9UIGEgZGVlcCB2ZXJzaW9uIG9mIGNsb25lXG5leHBvcnRzLmNsb25lID0gZnVuY3Rpb24gKHNyYykge1xuICAgIGlmICh0eXBlb2Ygc3JjICE9PSBcIm9iamVjdFwiIHx8IHNyYyA9PT0gbnVsbCkgeyByZXR1cm4gc3JjOyB9XG4gICAgdmFyIHJlcywgaWR4O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNyYykpIHtcbiAgICAgICAgcmVzID0gW107XG4gICAgICAgIGlkeCA9IHNyYy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgcmVzW2lkeF0gPSBzcmNbaWR4XTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcyA9IHt9O1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNyYyk7XG4gICAgICAgIGlkeCA9IGtleXMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICByZXNba2V5XSA9IHNyY1trZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59O1xuXG5leHBvcnRzLmNsb25lRGVlcCA9IGZ1bmN0aW9uIChzcmMpIHtcbiAgICB2YXIgdmlzaXRlZCA9IFtdLCBjbG9uZWQgPSBbXTtcbiAgICBmdW5jdGlvbiBjbG9uZURlZXAoc3JjKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3JjICE9PSBcIm9iamVjdFwiIHx8IHNyYyA9PT0gbnVsbCkgeyByZXR1cm4gc3JjOyB9XG4gICAgICAgIHZhciByZXMsIGlkeCwgY2lkeDtcblxuICAgICAgICBjaWR4ID0gdmlzaXRlZC5pbmRleE9mKHNyYyk7XG4gICAgICAgIGlmIChjaWR4ICE9PSAtMSkgeyByZXR1cm4gY2xvbmVkW2NpZHhdOyB9XG5cbiAgICAgICAgdmlzaXRlZC5wdXNoKHNyYyk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNyYykpIHtcbiAgICAgICAgICAgIHJlcyA9IFtdO1xuICAgICAgICAgICAgY2xvbmVkLnB1c2gocmVzKTtcbiAgICAgICAgICAgIGlkeCA9IHNyYy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgICAgICAgICByZXNbaWR4XSA9IGNsb25lRGVlcChzcmNbaWR4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMgPSB7fTtcbiAgICAgICAgICAgIGNsb25lZC5wdXNoKHJlcyk7XG4gICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNyYyk7XG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChpZHgtLSkge1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2lkeF07XG4gICAgICAgICAgICAgICAgcmVzW2tleV0gPSBjbG9uZURlZXAoc3JjW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZURlZXAoc3JjKTtcbn07XG5cbi8qXG4gIGZvbGxvd2luZyBmdW5jdGlvbiBjb21lcyBmcm9tIHB1bnljb2RlLmpzIGxpYnJhcnlcbiAgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYmVzdGllanMvcHVueWNvZGUuanNcbiovXG4vKmpzaGludCAtVzAxNiovXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgbnVtZXJpYyBjb2RlIHBvaW50cyBvZiBlYWNoIFVuaWNvZGVcbiAqIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nLiBXaGlsZSBKYXZhU2NyaXB0IHVzZXMgVUNTLTIgaW50ZXJuYWxseSxcbiAqIHRoaXMgZnVuY3Rpb24gd2lsbCBjb252ZXJ0IGEgcGFpciBvZiBzdXJyb2dhdGUgaGFsdmVzIChlYWNoIG9mIHdoaWNoXG4gKiBVQ1MtMiBleHBvc2VzIGFzIHNlcGFyYXRlIGNoYXJhY3RlcnMpIGludG8gYSBzaW5nbGUgY29kZSBwb2ludCxcbiAqIG1hdGNoaW5nIFVURi0xNi5cbiAqIEBzZWUgYHB1bnljb2RlLnVjczIuZW5jb2RlYFxuICogQHNlZSA8aHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmc+XG4gKiBAbWVtYmVyT2YgcHVueWNvZGUudWNzMlxuICogQG5hbWUgZGVjb2RlXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyaW5nIFRoZSBVbmljb2RlIGlucHV0IHN0cmluZyAoVUNTLTIpLlxuICogQHJldHVybnMge0FycmF5fSBUaGUgbmV3IGFycmF5IG9mIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnRzLnVjczJkZWNvZGUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgdmFyIG91dHB1dCA9IFtdLFxuICAgICAgICBjb3VudGVyID0gMCxcbiAgICAgICAgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGV4dHJhO1xuICAgIHdoaWxlIChjb3VudGVyIDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhbHVlID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcbiAgICAgICAgaWYgKHZhbHVlID49IDB4RDgwMCAmJiB2YWx1ZSA8PSAweERCRkYgJiYgY291bnRlciA8IGxlbmd0aCkge1xuICAgICAgICAgICAgLy8gaGlnaCBzdXJyb2dhdGUsIGFuZCB0aGVyZSBpcyBhIG5leHQgY2hhcmFjdGVyXG4gICAgICAgICAgICBleHRyYSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG4gICAgICAgICAgICBpZiAoKGV4dHJhICYgMHhGQzAwKSA9PSAweERDMDApIHsgLy8gbG93IHN1cnJvZ2F0ZVxuICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKCgodmFsdWUgJiAweDNGRikgPDwgMTApICsgKGV4dHJhICYgMHgzRkYpICsgMHgxMDAwMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHVubWF0Y2hlZCBzdXJyb2dhdGU7IG9ubHkgYXBwZW5kIHRoaXMgY29kZSB1bml0LCBpbiBjYXNlIHRoZSBuZXh0XG4gICAgICAgICAgICAgICAgLy8gY29kZSB1bml0IGlzIHRoZSBoaWdoIHN1cnJvZ2F0ZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgICAgICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvdW50ZXItLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dHB1dC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xufTtcbi8qanNoaW50ICtXMDE2Ki9cbiIsIlwidXNlIHN0cmljdFwiO1xuXG5yZXF1aXJlKFwiLi9Qb2x5ZmlsbHNcIik7XG52YXIgUmVwb3J0ICAgICAgICAgICAgPSByZXF1aXJlKFwiLi9SZXBvcnRcIik7XG52YXIgRm9ybWF0VmFsaWRhdG9ycyAgPSByZXF1aXJlKFwiLi9Gb3JtYXRWYWxpZGF0b3JzXCIpO1xudmFyIEpzb25WYWxpZGF0aW9uICAgID0gcmVxdWlyZShcIi4vSnNvblZhbGlkYXRpb25cIik7XG52YXIgU2NoZW1hQ2FjaGUgICAgICAgPSByZXF1aXJlKFwiLi9TY2hlbWFDYWNoZVwiKTtcbnZhciBTY2hlbWFDb21waWxhdGlvbiA9IHJlcXVpcmUoXCIuL1NjaGVtYUNvbXBpbGF0aW9uXCIpO1xudmFyIFNjaGVtYVZhbGlkYXRpb24gID0gcmVxdWlyZShcIi4vU2NoZW1hVmFsaWRhdGlvblwiKTtcbnZhciBVdGlscyAgICAgICAgICAgICA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xudmFyIERyYWZ0NFNjaGVtYSAgICAgID0gcmVxdWlyZShcIi4vc2NoZW1hcy9zY2hlbWEuanNvblwiKTtcbnZhciBEcmFmdDRIeXBlclNjaGVtYSA9IHJlcXVpcmUoXCIuL3NjaGVtYXMvaHlwZXItc2NoZW1hLmpzb25cIik7XG5cbi8qXG4gICAgZGVmYXVsdCBvcHRpb25zXG4qL1xudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICAgIC8vIGRlZmF1bHQgdGltZW91dCBmb3IgYWxsIGFzeW5jIHRhc2tzXG4gICAgYXN5bmNUaW1lb3V0OiAyMDAwLFxuICAgIC8vIGZvcmNlIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIGFuZCBhZGRpdGlvbmFsSXRlbXMgdG8gYmUgZGVmaW5lZCBvbiBcIm9iamVjdFwiIGFuZCBcImFycmF5XCIgdHlwZXNcbiAgICBmb3JjZUFkZGl0aW9uYWw6IGZhbHNlLFxuICAgIC8vIGFzc3VtZSBhZGRpdGlvbmFsUHJvcGVydGllcyBhbmQgYWRkaXRpb25hbEl0ZW1zIGFyZSBkZWZpbmVkIGFzIFwiZmFsc2VcIiB3aGVyZSBhcHByb3ByaWF0ZVxuICAgIGFzc3VtZUFkZGl0aW9uYWw6IGZhbHNlLFxuICAgIC8vIGZvcmNlIGl0ZW1zIHRvIGJlIGRlZmluZWQgb24gXCJhcnJheVwiIHR5cGVzXG4gICAgZm9yY2VJdGVtczogZmFsc2UsXG4gICAgLy8gZm9yY2UgbWluSXRlbXMgdG8gYmUgZGVmaW5lZCBvbiBcImFycmF5XCIgdHlwZXNcbiAgICBmb3JjZU1pbkl0ZW1zOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBtYXhJdGVtcyB0byBiZSBkZWZpbmVkIG9uIFwiYXJyYXlcIiB0eXBlc1xuICAgIGZvcmNlTWF4SXRlbXM6IGZhbHNlLFxuICAgIC8vIGZvcmNlIG1pbkxlbmd0aCB0byBiZSBkZWZpbmVkIG9uIFwic3RyaW5nXCIgdHlwZXNcbiAgICBmb3JjZU1pbkxlbmd0aDogZmFsc2UsXG4gICAgLy8gZm9yY2UgbWF4TGVuZ3RoIHRvIGJlIGRlZmluZWQgb24gXCJzdHJpbmdcIiB0eXBlc1xuICAgIGZvcmNlTWF4TGVuZ3RoOiBmYWxzZSxcbiAgICAvLyBmb3JjZSBwcm9wZXJ0aWVzIG9yIHBhdHRlcm5Qcm9wZXJ0aWVzIHRvIGJlIGRlZmluZWQgb24gXCJvYmplY3RcIiB0eXBlc1xuICAgIGZvcmNlUHJvcGVydGllczogZmFsc2UsXG4gICAgLy8gaWdub3JlIHJlZmVyZW5jZXMgdGhhdCBjYW5ub3QgYmUgcmVzb2x2ZWQgKHJlbW90ZSBzY2hlbWFzKSAvLyBUT0RPOiBtYWtlIHN1cmUgdGhpcyBpcyBvbmx5IGZvciByZW1vdGUgc2NoZW1hcywgbm90IGxvY2FsIG9uZXNcbiAgICBpZ25vcmVVbnJlc29sdmFibGVSZWZlcmVuY2VzOiBmYWxzZSxcbiAgICAvLyBkaXNhbGxvdyB1c2FnZSBvZiBrZXl3b3JkcyB0aGF0IHRoaXMgdmFsaWRhdG9yIGNhbid0IGhhbmRsZVxuICAgIG5vRXh0cmFLZXl3b3JkczogZmFsc2UsXG4gICAgLy8gZGlzYWxsb3cgdXNhZ2Ugb2Ygc2NoZW1hJ3Mgd2l0aG91dCBcInR5cGVcIiBkZWZpbmVkXG4gICAgbm9UeXBlbGVzczogZmFsc2UsXG4gICAgLy8gZGlzYWxsb3cgemVybyBsZW5ndGggc3RyaW5ncyBpbiB2YWxpZGF0ZWQgb2JqZWN0c1xuICAgIG5vRW1wdHlTdHJpbmdzOiBmYWxzZSxcbiAgICAvLyBkaXNhbGxvdyB6ZXJvIGxlbmd0aCBhcnJheXMgaW4gdmFsaWRhdGVkIG9iamVjdHNcbiAgICBub0VtcHR5QXJyYXlzOiBmYWxzZSxcbiAgICAvLyBmb3JjZXMgXCJ1cmlcIiBmb3JtYXQgdG8gYmUgaW4gZnVsbHkgcmZjMzk4NiBjb21wbGlhbnRcbiAgICBzdHJpY3RVcmlzOiBmYWxzZSxcbiAgICAvLyB0dXJuIG9uIHNvbWUgb2YgdGhlIGFib3ZlXG4gICAgc3RyaWN0TW9kZTogZmFsc2UsXG4gICAgLy8gcmVwb3J0IGVycm9yIHBhdGhzIGFzIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMgdG8gZ2V0IHRvIHRoZSBvZmZlbmRpbmcgbm9kZVxuICAgIHJlcG9ydFBhdGhBc0FycmF5OiBmYWxzZSxcbiAgICAvLyBzdG9wcyB2YWxpZGF0aW9uIGFzIHNvb24gYXMgYW4gZXJyb3IgaXMgZm91bmQsIHRydWUgYnkgZGVmYXVsdCBidXQgY2FuIGJlIHR1cm5lZCBvZmZcbiAgICBicmVha09uRmlyc3RFcnJvcjogdHJ1ZVxufTtcblxuLypcbiAgICBjb25zdHJ1Y3RvclxuKi9cbmZ1bmN0aW9uIFpTY2hlbWEob3B0aW9ucykge1xuICAgIHRoaXMuY2FjaGUgPSB7fTtcbiAgICB0aGlzLnJlZmVyZW5jZUNhY2hlID0gW107XG5cbiAgICB0aGlzLnNldFJlbW90ZVJlZmVyZW5jZShcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hXCIsIERyYWZ0NFNjaGVtYSk7XG4gICAgdGhpcy5zZXRSZW1vdGVSZWZlcmVuY2UoXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L2h5cGVyLXNjaGVtYVwiLCBEcmFmdDRIeXBlclNjaGVtYSk7XG5cbiAgICAvLyBvcHRpb25zXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob3B0aW9ucyksXG4gICAgICAgICAgICBpZHggPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpZHhdO1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRPcHRpb25zW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgb3B0aW9uIHBhc3NlZCB0byBjb25zdHJ1Y3RvcjogXCIgKyBrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gVXRpbHMuY2xvbmUoZGVmYXVsdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuc3RyaWN0TW9kZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yY2VBZGRpdGlvbmFsICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5mb3JjZUl0ZW1zICAgICAgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvcmNlTWF4TGVuZ3RoICAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yY2VQcm9wZXJ0aWVzICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5ub0V4dHJhS2V5d29yZHMgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5vVHlwZWxlc3MgICAgICAgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wdGlvbnMubm9FbXB0eVN0cmluZ3MgICA9IHRydWU7XG4gICAgICAgIHRoaXMub3B0aW9ucy5ub0VtcHR5QXJyYXlzICAgID0gdHJ1ZTtcbiAgICB9XG5cbn1cblxuLypcbiAgICBpbnN0YW5jZSBtZXRob2RzXG4qL1xuWlNjaGVtYS5wcm90b3R5cGUuY29tcGlsZVNjaGVtYSA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgICB2YXIgcmVwb3J0ID0gbmV3IFJlcG9ydCh0aGlzLm9wdGlvbnMpO1xuXG4gICAgc2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgU2NoZW1hQ29tcGlsYXRpb24uY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcblxuICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICByZXR1cm4gcmVwb3J0LmlzVmFsaWQoKTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS52YWxpZGF0ZVNjaGVtYSA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpICYmIHNjaGVtYS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiLnZhbGlkYXRlU2NoZW1hIHdhcyBjYWxsZWQgd2l0aCBhbiBlbXB0eSBhcnJheVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcmVwb3J0ID0gbmV3IFJlcG9ydCh0aGlzLm9wdGlvbnMpO1xuXG4gICAgc2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgdmFyIGNvbXBpbGVkID0gU2NoZW1hQ29tcGlsYXRpb24uY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcbiAgICBpZiAoY29tcGlsZWQpIHsgU2NoZW1hVmFsaWRhdGlvbi52YWxpZGF0ZVNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTsgfVxuXG4gICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLnZhbGlkYXRlID0gZnVuY3Rpb24gKGpzb24sIHNjaGVtYSwgY2FsbGJhY2spIHtcbiAgICB2YXIgd2hhdElzID0gVXRpbHMud2hhdElzKHNjaGVtYSk7XG4gICAgaWYgKHdoYXRJcyAhPT0gXCJzdHJpbmdcIiAmJiB3aGF0SXMgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoXCJJbnZhbGlkIC52YWxpZGF0ZSBjYWxsIC0gc2NoZW1hIG11c3QgYmUgYW4gc3RyaW5nIG9yIG9iamVjdCBidXQgXCIgKyB3aGF0SXMgKyBcIiB3YXMgcGFzc2VkIVwiKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlLCBmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIHZhciBmb3VuZEVycm9yID0gZmFsc2U7XG4gICAgdmFyIHJlcG9ydCA9IG5ldyBSZXBvcnQodGhpcy5vcHRpb25zKTtcblxuICAgIHNjaGVtYSA9IFNjaGVtYUNhY2hlLmdldFNjaGVtYS5jYWxsKHRoaXMsIHJlcG9ydCwgc2NoZW1hKTtcblxuICAgIHZhciBjb21waWxlZCA9IGZhbHNlO1xuICAgIGlmICghZm91bmRFcnJvcikge1xuICAgICAgICBjb21waWxlZCA9IFNjaGVtYUNvbXBpbGF0aW9uLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgICAgICBmb3VuZEVycm9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgdmFsaWRhdGVkID0gZmFsc2U7XG4gICAgaWYgKCFmb3VuZEVycm9yKSB7XG4gICAgICAgIHZhbGlkYXRlZCA9IFNjaGVtYVZhbGlkYXRpb24udmFsaWRhdGVTY2hlbWEuY2FsbCh0aGlzLCByZXBvcnQsIHNjaGVtYSk7XG4gICAgfVxuICAgIGlmICghdmFsaWRhdGVkKSB7XG4gICAgICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICAgICAgZm91bmRFcnJvciA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFmb3VuZEVycm9yKSB7XG4gICAgICAgIEpzb25WYWxpZGF0aW9uLnZhbGlkYXRlLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEsIGpzb24pO1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICByZXBvcnQucHJvY2Vzc0FzeW5jVGFza3ModGhpcy5vcHRpb25zLmFzeW5jVGltZW91dCwgY2FsbGJhY2spO1xuICAgICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChyZXBvcnQuYXN5bmNUYXNrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgdmFsaWRhdGlvbiBoYXMgYXN5bmMgdGFza3MgYW5kIGNhbm5vdCBiZSBkb25lIGluIHN5bmMgbW9kZSwgcGxlYXNlIHByb3ZpZGUgY2FsbGJhY2sgYXJndW1lbnQuXCIpO1xuICAgIH1cblxuICAgIC8vIGFzc2lnbiBsYXN0UmVwb3J0IHNvIGVycm9ycyBhcmUgcmV0cmlldmFibGUgaW4gc3luYyBtb2RlXG4gICAgdGhpcy5sYXN0UmVwb3J0ID0gcmVwb3J0O1xuICAgIHJldHVybiByZXBvcnQuaXNWYWxpZCgpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldExhc3RFcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5sYXN0UmVwb3J0LmVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBlID0gbmV3IEVycm9yKCk7XG4gICAgZS5uYW1lID0gXCJ6LXNjaGVtYSB2YWxpZGF0aW9uIGVycm9yXCI7XG4gICAgZS5tZXNzYWdlID0gdGhpcy5sYXN0UmVwb3J0LmNvbW1vbkVycm9yTWVzc2FnZTtcbiAgICBlLmRldGFpbHMgPSB0aGlzLmxhc3RSZXBvcnQuZXJyb3JzO1xuICAgIHJldHVybiBlO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldExhc3RFcnJvcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFzdFJlcG9ydC5lcnJvcnMubGVuZ3RoID4gMCA/IHRoaXMubGFzdFJlcG9ydC5lcnJvcnMgOiB1bmRlZmluZWQ7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0TWlzc2luZ1JlZmVyZW5jZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlcyA9IFtdLFxuICAgICAgICBpZHggPSB0aGlzLmxhc3RSZXBvcnQuZXJyb3JzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4LS0pIHtcbiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5sYXN0UmVwb3J0LmVycm9yc1tpZHhdO1xuICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gXCJVTlJFU09MVkFCTEVfUkVGRVJFTkNFXCIpIHtcbiAgICAgICAgICAgIHZhciByZWZlcmVuY2UgPSBlcnJvci5wYXJhbXNbMF07XG4gICAgICAgICAgICBpZiAocmVzLmluZGV4T2YocmVmZXJlbmNlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuZ2V0TWlzc2luZ1JlbW90ZVJlZmVyZW5jZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG1pc3NpbmdSZWZlcmVuY2VzID0gdGhpcy5nZXRNaXNzaW5nUmVmZXJlbmNlcygpLFxuICAgICAgICBtaXNzaW5nUmVtb3RlUmVmZXJlbmNlcyA9IFtdLFxuICAgICAgICBpZHggPSBtaXNzaW5nUmVmZXJlbmNlcy5sZW5ndGg7XG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICAgIHZhciByZW1vdGVSZWZlcmVuY2UgPSBTY2hlbWFDYWNoZS5nZXRSZW1vdGVQYXRoKG1pc3NpbmdSZWZlcmVuY2VzW2lkeF0pO1xuICAgICAgICBpZiAocmVtb3RlUmVmZXJlbmNlICYmIG1pc3NpbmdSZW1vdGVSZWZlcmVuY2VzLmluZGV4T2YocmVtb3RlUmVmZXJlbmNlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIG1pc3NpbmdSZW1vdGVSZWZlcmVuY2VzLnB1c2gocmVtb3RlUmVmZXJlbmNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWlzc2luZ1JlbW90ZVJlZmVyZW5jZXM7XG59O1xuWlNjaGVtYS5wcm90b3R5cGUuc2V0UmVtb3RlUmVmZXJlbmNlID0gZnVuY3Rpb24gKHVyaSwgc2NoZW1hKSB7XG4gICAgaWYgKHR5cGVvZiBzY2hlbWEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc2NoZW1hID0gSlNPTi5wYXJzZShzY2hlbWEpO1xuICAgIH1cbiAgICBTY2hlbWFDYWNoZS5jYWNoZVNjaGVtYUJ5VXJpLmNhbGwodGhpcywgdXJpLCBzY2hlbWEpO1xufTtcblpTY2hlbWEucHJvdG90eXBlLmdldFJlc29sdmVkU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICAgIHZhciByZXBvcnQgPSBuZXcgUmVwb3J0KHRoaXMub3B0aW9ucyk7XG4gICAgc2NoZW1hID0gU2NoZW1hQ2FjaGUuZ2V0U2NoZW1hLmNhbGwodGhpcywgcmVwb3J0LCBzY2hlbWEpO1xuXG4gICAgLy8gY2xvbmUgYmVmb3JlIG1ha2luZyBhbnkgbW9kaWZpY2F0aW9uc1xuICAgIHNjaGVtYSA9IFV0aWxzLmNsb25lRGVlcChzY2hlbWEpO1xuXG4gICAgdmFyIHZpc2l0ZWQgPSBbXTtcblxuICAgIC8vIGNsZWFuLXVwIHRoZSBzY2hlbWEgYW5kIHJlc29sdmUgcmVmZXJlbmNlc1xuICAgIHZhciBjbGVhbnVwID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICAgICAgICB2YXIga2V5LFxuICAgICAgICAgICAgdHlwZU9mID0gVXRpbHMud2hhdElzKHNjaGVtYSk7XG4gICAgICAgIGlmICh0eXBlT2YgIT09IFwib2JqZWN0XCIgJiYgdHlwZU9mICE9PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzY2hlbWEuX19fJHZpc2l0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNjaGVtYS5fX18kdmlzaXRlZCA9IHRydWU7XG4gICAgICAgIHZpc2l0ZWQucHVzaChzY2hlbWEpO1xuXG4gICAgICAgIGlmIChzY2hlbWEuJHJlZiAmJiBzY2hlbWEuX18kcmVmUmVzb2x2ZWQpIHtcbiAgICAgICAgICAgIHZhciBmcm9tID0gc2NoZW1hLl9fJHJlZlJlc29sdmVkO1xuICAgICAgICAgICAgdmFyIHRvID0gc2NoZW1hO1xuICAgICAgICAgICAgZGVsZXRlIHNjaGVtYS4kcmVmO1xuICAgICAgICAgICAgZGVsZXRlIHNjaGVtYS5fXyRyZWZSZXNvbHZlZDtcbiAgICAgICAgICAgIGZvciAoa2V5IGluIGZyb20pIHtcbiAgICAgICAgICAgICAgICBpZiAoZnJvbS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvW2tleV0gPSBmcm9tW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoa2V5IGluIHNjaGVtYSkge1xuICAgICAgICAgICAgaWYgKHNjaGVtYS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleS5pbmRleE9mKFwiX18kXCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWFba2V5XTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbnVwKHNjaGVtYVtrZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY2xlYW51cChzY2hlbWEpO1xuICAgIHZpc2l0ZWQuZm9yRWFjaChmdW5jdGlvbiAocykge1xuICAgICAgICBkZWxldGUgcy5fX18kdmlzaXRlZDtcbiAgICB9KTtcblxuICAgIHRoaXMubGFzdFJlcG9ydCA9IHJlcG9ydDtcbiAgICBpZiAocmVwb3J0LmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHRoaXMuZ2V0TGFzdEVycm9yKCk7XG4gICAgfVxufTtcblpTY2hlbWEucHJvdG90eXBlLnNldFNjaGVtYVJlYWRlciA9IGZ1bmN0aW9uIChzY2hlbWFSZWFkZXIpIHtcbiAgICByZXR1cm4gWlNjaGVtYS5zZXRTY2hlbWFSZWFkZXIoc2NoZW1hUmVhZGVyKTtcbn07XG5aU2NoZW1hLnByb3RvdHlwZS5nZXRTY2hlbWFSZWFkZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFpTY2hlbWEuc2NoZW1hUmVhZGVyO1xufTtcblxuLypcbiAgICBzdGF0aWMgbWV0aG9kc1xuKi9cblpTY2hlbWEuc2V0U2NoZW1hUmVhZGVyID0gZnVuY3Rpb24gKHNjaGVtYVJlYWRlcikge1xuICAgIFpTY2hlbWEuc2NoZW1hUmVhZGVyID0gc2NoZW1hUmVhZGVyO1xufTtcblpTY2hlbWEucmVnaXN0ZXJGb3JtYXQgPSBmdW5jdGlvbiAoZm9ybWF0TmFtZSwgdmFsaWRhdG9yRnVuY3Rpb24pIHtcbiAgICBGb3JtYXRWYWxpZGF0b3JzW2Zvcm1hdE5hbWVdID0gdmFsaWRhdG9yRnVuY3Rpb247XG59O1xuWlNjaGVtYS5nZXREZWZhdWx0T3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gVXRpbHMuY2xvbmVEZWVwKGRlZmF1bHRPcHRpb25zKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gWlNjaGVtYTtcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgICBcIiRzY2hlbWFcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L2h5cGVyLXNjaGVtYSNcIixcbiAgICBcImlkXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9oeXBlci1zY2hlbWEjXCIsXG4gICAgXCJ0aXRsZVwiOiBcIkpTT04gSHlwZXItU2NoZW1hXCIsXG4gICAgXCJhbGxPZlwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hI1wiXG4gICAgICAgIH1cbiAgICBdLFxuICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYWRkaXRpb25hbEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFsbE9mXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcImFueU9mXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcIm9uZU9mXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5vdFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjXCJcbiAgICAgICAgfSxcblxuICAgICAgICBcImxpbmtzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2xpbmtEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZnJhZ21lbnRSZXNvbHV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVkaWFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIG1lZGlhIHR5cGUsIGFzIGRlc2NyaWJlZCBpbiBSRkMgMjA0NlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJiaW5hcnlFbmNvZGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGNvbnRlbnQgZW5jb2Rpbmcgc2NoZW1lLCBhcyBkZXNjcmliZWQgaW4gUkZDIDIwNDVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0aFN0YXJ0XCI6IHtcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJbnN0YW5jZXMnIFVSSXMgbXVzdCBzdGFydCB3aXRoIHRoaXMgdmFsdWUgZm9yIHRoaXMgc2NoZW1hIHRvIGFwcGx5IHRvIHRoZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmlcIlxuICAgICAgICB9XG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgXCJzY2hlbWFBcnJheVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibGlua0Rlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidGl0bGVcIjogXCJMaW5rIERlc2NyaXB0aW9uIE9iamVjdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFsgXCJocmVmXCIsIFwicmVsXCIgXSxcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJocmVmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImEgVVJJIHRlbXBsYXRlLCBhcyBkZWZpbmVkIGJ5IFJGQyA2NTcwLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiB0aGUgJCwgKCBhbmQgKSBjaGFyYWN0ZXJzIGZvciBwcmUtcHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVsYXRpb24gdG8gdGhlIHRhcmdldCByZXNvdXJjZSBvZiB0aGUgbGlua1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0aXRsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIHRpdGxlIGZvciB0aGUgbGlua1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRTY2hlbWFcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSlNPTiBTY2hlbWEgZGVzY3JpYmluZyB0aGUgbGluayB0YXJnZXRcIixcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiI1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1lZGlhVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtZWRpYSB0eXBlIChhcyBkZWZpbmVkIGJ5IFJGQyAyMDQ2KSBkZXNjcmliaW5nIHRoZSBsaW5rIHRhcmdldFwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJtZXRob2RcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWV0aG9kIGZvciByZXF1ZXN0aW5nIHRoZSB0YXJnZXQgb2YgdGhlIGxpbmsgKGUuZy4gZm9yIEhUVFAgdGhpcyBtaWdodCBiZSBcXFwiR0VUXFxcIiBvciBcXFwiREVMRVRFXFxcIilcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZW5jVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbWVkaWEgdHlwZSBpbiB3aGljaCB0byBzdWJtaXQgZGF0YSBhbG9uZyB3aXRoIHRoZSByZXF1ZXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlNjaGVtYSBkZXNjcmliaW5nIHRoZSBkYXRhIHRvIHN1Ym1pdCBhbG9uZyB3aXRoIHRoZSByZXF1ZXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuIl19 diff --git a/docs/README.md b/docs/README.md index 56f3c39..63f79ba 100644 --- a/docs/README.md +++ b/docs/README.md @@ -43,11 +43,36 @@ npm install swagger-core-api --save The swagger-core-api project's API documentation can be found here: https://github.com/apigee-127/swagger-core-api/blob/master/docs/API.md +## Swagger Versions + +swagger-core-api uses [The Factory Method Pattern][factory-method-pattern] to create the `SwaggerApi` object you see +documented in the API documentation above. The core API is concrete but how each version of Swagger generates the +`SwaggerApi` object and its business logic is Swagger version dependent. That being said, below are the supported +versions of Swagger and their documentation: + +* [2.0][version-2.0-documentation] + +## Swagger Validation + +Swagger validation can be broken up into three phases: + +* `Structural Validation`: This is where we use the Swagger provided JSON Schema linked above and use a JSON Schema +validator to validate the structure of your Swagger document +* `Semantic Validation`: This is where to do validation above and beyond the general structure of your Swagger document. +The reason for this is that there are some situations that cannot be described using JSON Schema. There are also +situations where the existing JSON Schema for Swagger is broken or not as strict as it could be. +* `Custom Validation`: This is user-configurable validation that typically fall into stylistic checks. + +`Structural Validation` is the only type of validation that occurs in a special way. If structural validation fails, +no other validation will occur. But once the structural validation happens, `Semantic Validation` and +`Custom Validation` will happen. + ## Dependencies Below is the list of projects being used by swagger-core-api and the purpose(s) they are used for: * [debug][debug]: Used for producing useful debugging information +* [js-base64][js-base64]: Used for generating mock/sample data for the `byte` format * [js-yaml][js-yaml]: Used for parsing YAML Swagger files * [json-refs][json-refs]: Used for dereferncing JSON References in Swagger files * [json-schema-faker][json-schema-faker]: Used for generating mock/sample values from JSON Schemas @@ -61,6 +86,8 @@ they did just in case they wanted to use these libraries.)_ [bower]: http://bower.io/ [debug]: https://www.npmjs.com/package/debug +[factory-method-pattern]: https://en.wikipedia.org/wiki/Factory_method_pattern +[js-base64]: https://www.npmjs.com/package/js-base64 [js-yaml]: https://www.npmjs.com/package/js-yaml [json-refs]: https://www.npmjs.com/package/json-refs [json-schema-faker]: https://www.npmjs.com/package/json-schema-faker @@ -69,5 +96,6 @@ they did just in case they wanted to use these libraries.)_ [path-loader]: https://www.npmjs.com/package/path-loader [promises]: https://www.promisejs.org/ [npm]: https://www.npmjs.org/ +[version-2.0-documentation]: https://github.com/apigee-127/swagger-core-api/blob/master/docs/versions/2.0.md [swagger]: http://swagger.io [z-schema]: https://www.npmjs.com/package/z-schema diff --git a/docs/versions/2.0.md b/docs/versions/2.0.md new file mode 100644 index 0000000..c65c57f --- /dev/null +++ b/docs/versions/2.0.md @@ -0,0 +1,15 @@ +swagger-core-api's Swagger 2.0 support is documented below. There are also some helpful pieces of information about +Swagger 2.0 as well. + +## Swagger 2.0 Resources + +* Specification Documentation: https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md +* JSON Schema: https://github.com/swagger-api/swagger-spec/blob/master/schemas/v2.0/schema.json + +## Semantic Validation + +| Description | Type | +| :---------: | :---: | +| All places where a [Schema Object][schema-object] can be, and primitive parameters, the `items` property is required when `type` is set to `array` but this is **not** enforced in the JSON Schema. _(See [swagger-api/swagger-spec/issues/174](https://github.com/swagger-api/swagger-spec/issues/174))_ | Error | + +[schema-object]: https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#schemaObject diff --git a/lib/versions/2.0/helpers.js b/lib/versions/2.0/helpers.js new file mode 100644 index 0000000..0d85bf4 --- /dev/null +++ b/lib/versions/2.0/helpers.js @@ -0,0 +1,27 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 Apigee Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +'use strict'; + +module.exports.supportedHttpMethods = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch']; diff --git a/lib/versions/2.0/index.js b/lib/versions/2.0/index.js index b8d387a..a4b9688 100644 --- a/lib/versions/2.0/index.js +++ b/lib/versions/2.0/index.js @@ -25,11 +25,12 @@ 'use strict'; var _ = require('lodash-compat'); -var formatGenerators = require('./format-generators'); -var validators = require('./validators'); -var helpers = require('../../helpers'); var JsonRefs = require('json-refs'); +var formatGenerators = require('./format-generators'); +var helpers = require('../../helpers'); var types = require('../../types'); +var validators = require('./validators'); +var vHelpers = require('./helpers'); var docsUrl = 'https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md'; var mocker = helpers.createJSONSchemaMocker({ @@ -55,7 +56,6 @@ var parameterSchemaProperties = [ 'type', 'uniqueItems' ]; -var supportedHttpMethods = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch']; var version = '2.0'; function getParameterSchema (parameter) { @@ -81,7 +81,7 @@ function getParameterSchema (parameter) { module.exports.documentation = docsUrl; // The array of supported HTTP methods for each path -module.exports.supportedHttpMethods = supportedHttpMethods; +module.exports.supportedHttpMethods = vHelpers.supportedHttpMethods; // The version for this Swagger version module.exports.version = version; @@ -154,7 +154,7 @@ module.exports.getOperations = function (api) { _.forEach(pathDef, function (operation, method) { // Do not process non-operations - if (_.indexOf(supportedHttpMethods, method) === -1) { + if (_.indexOf(vHelpers.supportedHttpMethods, method) === -1) { return; } diff --git a/lib/versions/2.0/validators.js b/lib/versions/2.0/validators.js index 71a0c92..5bedd19 100644 --- a/lib/versions/2.0/validators.js +++ b/lib/versions/2.0/validators.js @@ -24,9 +24,60 @@ 'use strict'; +var _ = require('lodash-compat'); var customFormatValidators = require('./format-validators'); var helpers = require('../../helpers'); +var JsonRefs = require('json-refs'); var swaggerSchema = require('./schema.json'); +var vHelpers = require('./helpers'); + +function walkSchema (blacklist, schema, path, handler) { + var type = schema.type || 'object'; + + function shouldSkip (cPath) { + return _.indexOf(blacklist, JsonRefs.pathToPointer(cPath)) > -1; + } + + // Do not process items in the blacklist as they've been processed already + if (shouldSkip(path)) { + return; + } + + function walker (pSchema, pPath) { + // Do not process items in the blacklist as they've been processed already + if (shouldSkip(pPath)) { + return; + } + + _.forEach(pSchema, function (item, name) { + if (_.isNumber(name)) { + name = name.toString(); + } + + walkSchema(blacklist, item, pPath.concat(name), handler); + }); + + handler(pSchema, pPath); + } + + if (!_.isUndefined(schema.schema)) { + walkSchema(blacklist, schema.schema, path.concat('schema'), handler); + } else if (type === 'array' && !_.isUndefined(schema.items)) { + walker(schema.items, path.concat('items')); + } else if (type === 'object') { + if (!_.isUndefined(schema.additionalProperties)) { + walkSchema(blacklist, schema.additionalProperties, path.concat('additionalProperties'), handler); + } + + _.forEach(['allOf', 'properties'], function (propName) { + if (!_.isUndefined(schema[propName])) { + walker(schema[propName], path.concat(propName)); + } + }); + } + + handler(schema, path); +} /** * Validates the resolved Swagger document against the Swagger 2.0 JSON Schema. @@ -41,9 +92,106 @@ function validateStructure (api) { }), swaggerSchema, api.resolved); } +/** + * Validates that all arrays have their required items property. + * + * @see {@link https://github.com/swagger-api/swagger-spec/issues/174} + * + * @param {SwaggerApi} api - The SwaggerApi object + * + * @returns {object} Object containing the errors and warnings of the validation + */ +function validateArrayItems (api) { + // Build a blacklist to avoid cascading errors/warnings + var blacklist = _.reduce(api.references, function (list, metadata, ptr) { + var refPath = JsonRefs.pathFromPointer(ptr); + + // Remove the $ref part of the path + refPath.pop(); + + list.push(JsonRefs.pathToPointer(refPath)); + + return list; + }, []); + var response = { + errors: [], + warnings: [] + }; + + function validate (schema, path) { + if (schema.type === 'array' && _.isUndefined(schema.items)) { + response.errors.push({ + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: path + }); + } + } + + function validateParameters (parameters, path) { + _.forEach(parameters, function (parameterDef, name) { + if (_.isNumber(name)) { + name = name.toString(); + } + + walkSchema(blacklist, parameterDef, path.concat(name), validate); + }); + } + + function validateResponses (responses, path) { + _.forEach(responses, function (responseDef, name) { + var rPath = path.concat(name); + + _.forEach(responseDef.headers, function (header, hName) { + walkSchema(blacklist, header, rPath.concat(['headers', hName]), validate); + }); + + if (!_.isUndefined(responseDef.schema)) { + walkSchema(blacklist, responseDef.schema, rPath.concat('schema'), validate); + } + }); + } + + // Validate definitions + _.forEach(api.resolved.definitions, function (definitionDef, name) { + walkSchema(blacklist, definitionDef, ['definitions', name], validate); + }); + + // Validate global parameter definitions + validateParameters(api.resolved.parameters, ['parameters']); + + // Validate global response definitions + validateResponses(api.resolved.responses, ['responses']); + + // Validate paths and operations + _.forEach(api.resolved.paths, function (pathDef, path) { + var pPath = ['paths', path]; + + // Validate path-level parameter definitions + validateParameters(pathDef.parameters, pPath.concat('parameters')); + + _.forEach(pathDef, function (operationDef, method) { + var oPath = pPath.concat(method); + + // Do not process non-operations + if (_.indexOf(vHelpers.supportedHttpMethods, method) === -1) { + return; + } + + // Validate operation parameter definitions + validateParameters(operationDef.parameters, oPath.concat('parameters')); + + // Validate operation response definitions + validateResponses(operationDef.responses, oPath.concat('responses')); + }); + }); + + return response; +} + module.exports = { jsonSchemaValidator: validateStructure, semanticValidators: [ - + validateArrayItems ] }; diff --git a/test/test-2.0.js b/test/test-2.0.js index 38a7a7a..44db298 100644 --- a/test/test-2.0.js +++ b/test/test-2.0.js @@ -584,38 +584,523 @@ describe('swagger-core-api (Swagger 2.0)', function () { }); describe('should throw an Error for an invalid document', function () { - var resolvedDefinition; - - beforeEach(function () { - resolvedDefinition = swagger.resolved; - }); - - afterEach(function () { - swagger.resolved = resolvedDefinition; - }); - - // For testing we will manipulate the internal state of the SwaggerApi object. This is just for simplicity - // and is not something we support or suggest doing. - - it('does not validate against JSON Schema', function () { - var cSwagger = _.cloneDeep(swagger.resolved); - var result; + it('does not validate against JSON Schema', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); delete cSwagger.paths; - swagger.resolved = cSwagger; + swaggerApi.create({ + definition: cSwagger + }) + .then(function (api) { + var result = api.validate(); - result = swagger.validate(); + assert.ok(result === false); + assert.deepEqual([], api.getLastWarnings()); + assert.deepEqual([ + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: paths', + path: [] + } + ], api.getLastErrors()); + }) + .then(done, done); + }); - assert.ok(result === false); - assert.deepEqual([], swagger.getLastWarnings()); - assert.deepEqual([ - { - code: 'OBJECT_MISSING_REQUIRED_PROPERTY', - message: 'Missing required property: paths', - path: [] - } - ], swagger.getLastErrors()); + describe('array type missing required items property', function () { + function validateBrokenArray (cSwagger, path, done) { + swaggerApi.create({ + definition: cSwagger + }) + .then(function (api) { + var result = api.validate(); + + assert.ok(result === false); + assert.deepEqual([], api.getLastWarnings()); + assert.deepEqual([ + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: path + } + ], api.getLastErrors()); + }) + .then(done, done); + } + + describe('schema definitions', function () { + describe('array', function () { + it('no items', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'array' + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet'], done); + }); + + it('items object', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'array', + items: { + type: 'array' + } + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'items'], done); + }); + + it('items array', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'array', + items: [ + { + type: 'array' + } + ] + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'items', '0'], done); + }); + }); + + describe('object', function () { + describe('additionalProperties', function () { + it('no items', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + additionalProperties: { + type: 'array' + } + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'additionalProperties'], done); + }); + + it('items object', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + additionalProperties: { + type: 'array', + items: { + type: 'array' + } + } + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'additionalProperties', 'items'], done); + }); + + it('items array', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + additionalProperties: { + type: 'array', + items: [ + { + type: 'array' + } + ] + } + }; + + validateBrokenArray(cSwagger, + ['definitions', 'Pet', 'additionalProperties', 'items', '0'], + done); + }); + }); + + describe('properties', function () { + it('no items', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + properties: { + aliases: { + type: 'array' + } + } + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'properties', 'aliases'], done); + }); + + it('items object', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + properties: { + aliases: { + type: 'array', + items: { + type: 'array' + } + } + } + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'properties', 'aliases', 'items'], done); + }); + + it('items array', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + properties: { + aliases: { + type: 'array', + items: [ + { + type: 'array' + } + ] + } + } + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'properties', 'aliases', 'items', '0'], done); + }); + }); + + describe('allOf', function () { + it('no items', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + allOf: [ + { + type: 'array' + } + ] + }; + + validateBrokenArray(cSwagger, ['definitions', 'Pet', 'allOf', '0'], done); + }); + + it('items object', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + allOf: [ + { + type: 'object', + properties: { + aliases: { + type: 'array', + items: { + type: 'array' + } + } + } + } + ] + }; + + validateBrokenArray(cSwagger, + ['definitions', 'Pet', 'allOf', '0', 'properties', 'aliases', 'items'], + done); + }); + + it('items array', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.definitions.Pet = { + type: 'object', + allOf: [ + { + type: 'object', + properties: { + aliases: { + type: 'array', + items: [ + { + type: 'array' + } + ] + } + } + } + ] + }; + + validateBrokenArray(cSwagger, + ['definitions', 'Pet', 'allOf', '0', 'properties', 'aliases', 'items', '0'], + done); + }); + }); + }); + + it('recursive', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + var errorSchema = { + type: 'object', + allOf: [ + { + type: 'array' + } + ], + properties: { + aliases: { + type: 'array' + } + }, + additionalProperties: { + type: 'array' + } + }; + + cSwagger.definitions.Pet = { + allOf: [ + errorSchema + ], + properties: { + aliases: errorSchema + }, + additionalProperties: errorSchema + }; + + swaggerApi.create({ + definition: cSwagger + }) + .then(function (api) { + var result = api.validate(); + + assert.ok(result === false); + assert.deepEqual([], api.getLastWarnings()); + assert.deepEqual([ + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'additionalProperties', 'additionalProperties'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'additionalProperties', 'allOf', '0'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'additionalProperties', 'properties', 'aliases'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'allOf', '0', 'additionalProperties'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'allOf', '0', 'allOf', '0'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'allOf', '0', 'properties', 'aliases'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'properties', 'aliases', 'additionalProperties'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'properties', 'aliases', 'allOf', '0'] + }, + { + code: 'OBJECT_MISSING_REQUIRED_PROPERTY', + message: 'Missing required property: items', + path: ['definitions', 'Pet', 'properties', 'aliases', 'properties', 'aliases'] + } + ], api.getLastErrors()); + }) + .then(done, done); + }); + }); + + describe('parameter definitions', function () { + describe('global', function () { + it('body parameter', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.parameters = { + petInBody: { + in: 'body', + name: 'body', + description: 'A Pet', + required: true, + schema: { + properties: { + aliases: { + type: 'array' + } + } + } + } + }; + + validateBrokenArray(cSwagger, ['parameters', 'petInBody', 'schema', 'properties', 'aliases'], done); + }); + + it('non-body parameter', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.parameters = { + petStatus: _.cloneDeep(cSwagger.paths['/pet/findByStatus'].get.parameters[0]) + }; + + delete cSwagger.parameters.petStatus.items; + + validateBrokenArray(cSwagger, ['parameters', 'petStatus'], done); + }); + }); + + describe('path-level', function () { + it('body parameter', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.paths['/pet'].parameters = [ + { + in: 'body', + name: 'body', + description: 'A Pet', + required: true, + schema: { + properties: { + aliases: { + type: 'array' + } + } + } + } + ]; + + validateBrokenArray(cSwagger, + ['paths', '/pet', 'parameters', '0', 'schema', 'properties', 'aliases'], + done); + }); + + it('non-body parameter', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.paths['/pet'].parameters = [ + _.cloneDeep(cSwagger.paths['/pet/findByStatus'].get.parameters[0]) + ]; + + delete cSwagger.paths['/pet'].parameters[0].items; + + validateBrokenArray(cSwagger, ['paths', '/pet', 'parameters', '0'], done); + }); + }); + + describe('operation', function () { + it('body parameter', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + delete cSwagger.paths['/user/createWithArray'].post.parameters[0].schema.items; + + validateBrokenArray(cSwagger, + ['paths', '/user/createWithArray', 'post', 'parameters', '0', 'schema'], + done); + }); + + it('non-body parameter', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + delete cSwagger.paths['/pet/findByStatus'].get.parameters[0].items; + + validateBrokenArray(cSwagger, ['paths', '/pet/findByStatus', 'get', 'parameters', '0'], done); + }); + }); + }); + + describe('responses', function () { + describe('global', function () { + it('headers', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.responses = { + success: { + description: 'A response indicative of a successful request', + headers: { + 'X-Broken-Array': { + type: 'array' + } + } + } + }; + + validateBrokenArray(cSwagger, ['responses', 'success', 'headers', 'X-Broken-Array'], done); + }); + + it('schema definition', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.responses = { + success: { + description: 'A response indicative of a successful request', + schema: { + type: 'array' + } + } + }; + + validateBrokenArray(cSwagger, ['responses', 'success', 'schema'], done); + }); + }); + + describe('operation', function () { + it('headers', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + cSwagger.paths['/pet/findByStatus'].get.responses['200'].headers = { + 'X-Broken-Array': { + type: 'array' + } + }; + + validateBrokenArray(cSwagger, + [ + 'paths', + '/pet/findByStatus', + 'get', + 'responses', + '200', + 'headers', + 'X-Broken-Array' + ], + done); + }); + + it('schema definition', function (done) { + var cSwagger = _.cloneDeep(swaggerDoc); + + delete cSwagger.paths['/pet/findByStatus'].get.responses['200'].schema.items; + + validateBrokenArray(cSwagger, + ['paths', '/pet/findByStatus', 'get', 'responses', '200', 'schema'], + done); + }); + }); + }); }); }); });